eina-1.7.10/0000775000175000017500000000000012247700051007515 500000000000000eina-1.7.10/Makefile.in0000664000175000017500000007764112247700043011522 00000000000000# Makefile.in generated by automake 1.13.4 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@ subdir = . DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/config.h.in $(srcdir)/eina.pc.in \ $(srcdir)/eina.spec.in ABOUT-NLS COPYING config.guess \ config.sub depcomp install-sh missing ltmain.sh ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = eina.pc eina.spec 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)$(pkgconfigdir)" DATA = $(pkgconfig_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 $(distdir).tar.bz2 GZIP_ENV = --best DIST_TARGETS = dist-bzip2 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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ ACLOCAL_AMFLAGS = -I m4 -I m4/common -I m4/eina SUBDIRS = src doc MAINTAINERCLEANFILES = \ Makefile.in \ aclocal.m4 \ config.guess \ config.h.in \ config.h.in~ \ config.sub \ configure \ depcomp \ install-sh \ ltconfig \ ltmain.sh \ missing \ $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz \ $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2 \ $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc.tar.bz2 \ m4/libtool.m4 \ m4/lt~obsolete.m4 \ m4/ltoptions.m4 \ m4/ltsugar.m4 \ m4/ltversion.m4 pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = eina.pc EXTRA_DIST = \ AUTHORS \ COPYING \ README \ $(pkgconfig_DATA) \ autogen.sh \ eina.pc.in \ eina.spec \ eina.spec.in \ m4/common/efl_attribute.m4 \ m4/common/efl_benchmark.m4 \ m4/common/efl_check_funcs.m4 \ m4/common/efl_compiler_flag.m4 \ m4/common/efl_cpu.m4 \ m4/common/efl_doxygen.m4 \ m4/common/efl_examples.m4 \ m4/common/efl_path_max.m4 \ m4/common/efl_tests.m4 \ m4/common/efl_threads.m4 \ m4/common/efl_voltron.m4 \ m4/eina/eina_bench.m4 \ m4/eina/eina_check.m4 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) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu 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 @if test ! -f $@; then rm -f stamp-h1; else :; fi @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi 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) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 eina.pc: $(top_builddir)/config.status $(srcdir)/eina.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ eina.spec: $(top_builddir)/config.status $(srcdir)/eina.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || 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)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(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 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod 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 --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-local check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgconfigdir)"; 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgconfigDATA 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 mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pkgconfigDATA .MAKE: $(am__recursive_targets) all check-am install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am check-local clean clean-cscope \ clean-generic clean-libtool clean-local 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-libtool \ distclean-tags distcleancheck distdir distuninstallcheck 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-pkgconfigDATA install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am \ uninstall-pkgconfigDATA .PHONY: doc install-doc benchmark # Documentation doc: @echo "entering doc/" @$(MAKE) -C doc doc install-doc: @echo "entering doc/" @$(MAKE) -C doc install-doc # Unit tests @EFL_ENABLE_TESTS_TRUE@lcov-reset: @EFL_ENABLE_TESTS_TRUE@ @rm -rf $(top_builddir)/coverage @EFL_ENABLE_TESTS_TRUE@ @find $(top_builddir) -name "*.gcda" -delete @EFL_ENABLE_TESTS_TRUE@ @lcov --zerocounters --directory $(top_builddir) @EFL_ENABLE_TESTS_TRUE@lcov-report: @EFL_ENABLE_TESTS_TRUE@ @mkdir $(top_builddir)/coverage @EFL_ENABLE_TESTS_TRUE@ lcov --capture --compat-libtool --output-file $(top_builddir)/coverage/coverage.info --directory $(top_builddir) @EFL_ENABLE_TESTS_TRUE@ lcov --remove $(top_builddir)/coverage/coverage.info '*.h' --output-file $(top_builddir)/coverage/coverage.cleaned.info @EFL_ENABLE_TESTS_TRUE@ genhtml -t "$(PACKAGE_STRING)" -o $(top_builddir)/coverage/html $(top_builddir)/coverage/coverage.cleaned.info @EFL_ENABLE_TESTS_TRUE@ @echo "Coverage Report at $(top_builddir)/coverage/html" @EFL_ENABLE_TESTS_TRUE@check-local: @EFL_ENABLE_TESTS_TRUE@ @$(MAKE) lcov-reset @EFL_ENABLE_TESTS_TRUE@ @./src/tests/eina_suite @EFL_ENABLE_TESTS_TRUE@ @$(MAKE) lcov-report @EFL_ENABLE_TESTS_FALSE@lcov-reset: @EFL_ENABLE_TESTS_FALSE@ @echo "reconfigure with --enable-tests" @EFL_ENABLE_TESTS_FALSE@lcov-report: @EFL_ENABLE_TESTS_FALSE@ @echo "reconfigure with --enable-tests" @EFL_ENABLE_TESTS_FALSE@check-local: @EFL_ENABLE_TESTS_FALSE@ @echo "reconfigure with --enable-tests" @EFL_ENABLE_BENCHMARK_TRUE@benchmark: @EFL_ENABLE_BENCHMARK_TRUE@ @cd src && $(MAKE) benchmark @EFL_ENABLE_BENCHMARK_TRUE@ @mkdir result || true @EFL_ENABLE_BENCHMARK_TRUE@ @cd result && ../src/tests/eina_bench `date +%F_%s` @EFL_ENABLE_BENCHMARK_FALSE@benchmark: @EFL_ENABLE_BENCHMARK_FALSE@ @echo "reconfigure with --enable-benchmark" clean-local: @rm -rf coverage benchmark # 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: eina-1.7.10/config.h.in0000664000175000017500000002306612247700050011466 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ #ifndef EFL_CONFIG_H__ #define EFL_CONFIG_H__ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD /* enable bench tests for google hash method */ #undef CITYHASH_BENCH /* 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 /* Assert when forgot to call eina_threads_init */ #undef EFL_DEBUG_THREADS /* Define to mention that ALTIVEC is supported */ #undef EFL_HAVE_ALTIVEC /* Define to mention that MMX is supported */ #undef EFL_HAVE_MMX /* Define to mention that POSIX threads are supported */ #undef EFL_HAVE_POSIX_THREADS /* Define to mention that POSIX threads spinlocks are supported */ #undef EFL_HAVE_POSIX_THREADS_SPINLOCK /* Define to mention that SSE is supported */ #undef EFL_HAVE_SSE /* Define to mention that SSE2 is supported */ #undef EFL_HAVE_SSE2 /* Define to mention that POSIX or Win32 threads are supported */ #undef EFL_HAVE_THREADS /* Define to mention that Win32 threads are supported */ #undef EFL_HAVE_WIN32_THREADS /* make it possible to disable all locks */ #undef EFL_ON_OFF_THREADS /* Set to 1 if no is built */ #undef EINA_BUILD_BUDDY /* Set to 1 if ${enable_chained_pool} is built */ #undef EINA_BUILD_CHAINED_POOL /* Set to 1 if ${enable_ememoa} is built */ #undef EINA_BUILD_EMEMOA_FIXED /* Set to 1 if ${enable_ememoa} is built */ #undef EINA_BUILD_EMEMOA_UNKNOWN /* Set to 1 if no is built */ #undef EINA_BUILD_FIXED_BITMAP /* Set to 1 if ${enable_one_big} is built */ #undef EINA_BUILD_ONE_BIG /* Set to 1 if ${enable_pass_through} is built */ #undef EINA_BUILD_PASS_THROUGH /* Turn on debugging overhead in mempool */ #undef EINA_DEBUG_MALLOC /* if set, logging is limited to this amount. */ #undef EINA_LOG_LEVEL_MAXIMUM /* disable safety checks for NULL pointers and like. */ #undef EINA_SAFETY_CHECKS /* Set to 1 if no is statically built */ #undef EINA_STATIC_BUILD_BUDDY /* Set to 1 if ${enable_chained_pool} is statically built */ #undef EINA_STATIC_BUILD_CHAINED_POOL /* Set to 1 if ${enable_ememoa} is statically built */ #undef EINA_STATIC_BUILD_EMEMOA_FIXED /* Set to 1 if ${enable_ememoa} is statically built */ #undef EINA_STATIC_BUILD_EMEMOA_UNKNOWN /* Set to 1 if no is statically built */ #undef EINA_STATIC_BUILD_FIXED_BITMAP /* Set to 1 if ${enable_one_big} is statically built */ #undef EINA_STATIC_BUILD_ONE_BIG /* Set to 1 if ${enable_pass_through} is statically built */ #undef EINA_STATIC_BUILD_PASS_THROUGH /* Report Eina stringshare usage pattern */ #undef EINA_STRINGSHARE_USAGE /* 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 `backtrace' function. */ #undef HAVE_BACKTRACE /* Define to 1 if you have the `backtrace_symbols' function. */ #undef HAVE_BACKTRACE_SYMBOLS /* Define to 1 if you have a valid header file. */ #undef HAVE_DIRENT_H /* Define to 1 if you have the `dirfd' function. */ #undef HAVE_DIRFD /* Define to 1 if you have the `dladdr' function. */ #undef HAVE_DLADDR /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the `dlopen' function. */ #undef HAVE_DLOPEN /* Set to 1 if Escape package is installed */ #undef HAVE_ESCAPE /* Set to 1 if Evil package is installed */ #undef HAVE_EVIL /* Define to 1 if you have the header file. */ #undef HAVE_EXECINFO_H /* Define to 1 if you have the `execvp' function. */ #undef HAVE_EXECVP /* Define to 1 if you have Exotic. */ #undef HAVE_EXOTIC_H /* Define to 1 if you have the `fnmatch' function. */ #undef HAVE_FNMATCH /* Define to 1 if you have the `fpathconf' function. */ #undef HAVE_FPATHCONF /* Define to 1 if you have the `fstatat' function. */ #undef HAVE_FSTATAT /* Define to 1 if you have the `iconv' function. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_LIBGEN_H /* Define to 1 if we log support is on */ #undef HAVE_LOG /* Define to 1 if you have the `malloc_usable_size' function. */ #undef HAVE_MALLOC_USABLE_SIZE /* Define to 1 if you have the header file. */ #undef HAVE_MCHECK_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `mtrace' function. */ #undef HAVE_MTRACE /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_NDIR_H /* Define to 1 if you have the `openat' function. */ #undef HAVE_OPENAT /* Define to 1 if you have the `setxattr' function. */ #undef HAVE_SETXATTR /* Define to 1 if you have the `shm_open' function. */ #undef HAVE_SHM_OPEN /* Define to 1 if you have the header file. */ #undef HAVE_SIGINFO_H /* Define to 1 if the system has the type `siginfo_t'. */ #undef HAVE_SIGINFO_T /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* 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 `strlcpy' function. */ #undef HAVE_STRLCPY /* Define to 1 if the system has the type `struct dirent'. */ #undef HAVE_STRUCT_DIRENT /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_DIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MMAN_H /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_NDIR_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 header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `listxattr', `setxattr' and `getxattr' functions. */ #undef HAVE_XATTR /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* "Module architecture" */ #undef MODULE_ARCH /* Define to 1 if assertions should be disabled. */ #undef NDEBUG /* Valgrind support disabled */ #undef NVALGRIND /* 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 /* default value since PATH_MAX is not defined */ #undef PATH_MAX /* Suffix for shared objects */ #undef SHARED_LIB_SUFFIX /* The size of `wchar_t', as computed by sizeof. */ #undef SIZEOF_WCHAR_T /* 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 to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* 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 /* Version number of package */ #undef VERSION /* Major version */ #undef VMAJ /* Micro version */ #undef VMIC /* Minor version */ #undef VMIN /* Revison */ #undef VREV /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD # if defined __BIG_ENDIAN__ # define WORDS_BIGENDIAN 1 # endif #else # ifndef WORDS_BIGENDIAN # undef WORDS_BIGENDIAN # endif #endif /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 #endif /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES /* 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 /* __attribute__ ((unused)) is not supported. */ #undef __UNUSED__ /* 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 to `unsigned int' if does not define. */ #undef size_t #endif /* EFL_CONFIG_H__ */ eina-1.7.10/NEWS0000664000175000017500000001326312247136425010151 00000000000000Eina 1.7.10 Changes since Eina 1.7.9: ------------------------- Fixes: * Fix race condition when calling eina_file_open/eina_file_close. Eina 1.7.9 Changes since Eina 1.7.8: ------------------------- No changes, just updating to keep in sync with lastest release. Eina 1.7.8 Changes since Eina 1.7.7: ------------------------- Fixes: * Fix memory leak in eina_xattr_value_ls Eina 1.7.7 Changes since Eina 1.7.6: ------------------------- No changes, just updating to keep in sync with last release. Eina 1.7.6 Changes since Eina 1.7.5: ------------------------- Improvements: * Honor tile size in Eina_Tiler. Fixes: * Prevent denial of service on Eina_Hash function. * Fix map leak in Eina_File infrastructure. * Fix portability issue on 64bits system for Eina_CList. * Fix magic failure in eina_value_array_count when array has not been allocated Eina 1.7.5 Changes since Eina 1.7.4: ------------------------- No changes, just updating to keep in sync with last release. Eina 1.7.4 Changes since Eina 1.7.3: ------------------------- Fixes: * Fix EINA_INLIST_FOREACH_SAFE macro * Add XML output to doc * Add installation rule for doc * Fix build for Windows platforms. Eina 1.7.3 Changes since Eina 1.7.2: ------------------------- * Fix Solaris build. * Don't leak fd after exec. Eina 1.7.2 Changes since Eina 1.7.1: ------------------------- No changes, just updating to keep in sync with last release. Eina 1.7.1 Changes since Eina 1.7.0: ------------------------- Fixes: * Fix return value of eina_mmap_safety_enabled_set() and future eina_mmap_safety_enabled_get() returns after success * Fix eina_stringshare_add_length() to return NULL when wrong. * Add EINA_SAFETY checks are wrong. Eina 1.7.0 Changes since Eina 1.2.0: ------------------------- Additions: * Add backtrace support to Eina_Log, use EINA_LOG_BACKTRACE to enable it. * Add an helper to iterate over line in a mapped file. * Add EINA_SENTINEL to protect variadic functions * Add EINA_SAFETY checks for proper function arguments. * Add check if given arguments (distance and coordinates) in eina_tiler and eina_rectangle are not below zero Fixes: * Add missing files in the tarball. * Rounding issue with eina_f32p32_cos and eina_f32p32_sin when getting close to 1.0. * Portability issue with Eina_Value when char are not signed by default (case on ARM and PPC). * Portability issue with Eina_Value test suite when unsigned where not promoted to unsigned long (case on Itanium). * Fix issue in the XML parser when a tag was in a comment or a CDATA. * Implement eina_file_map_lines() on Windows. * Handle NULL in all eina_*_free function. * eina_log_console_color_set() * Documentation for eina list specified and eina stringshare fixed. * eina_convert_atofp wrong return value if fp is NULL. Removal: * configure options: --disable-posix-threads, --disable-win32-threads, --enable-coverage Eina 1.2.0 Changes since Eina 1.1.0: ------------------------- Additions: * eina_mempool_calloc. * Eina_Semaphore abstraction API. * eina_xattr_fd_ls. * Eina_Xattr iterator : eina_xattr_value_fd_ls and eina_xattr_value_ls. * eina_file_map_faulted. * Xattr iterator for Eina_File : eina_file_xattr_get/value_get. * deprecated eina_array_count_get(), use eina_array_count() instead. * eina_inarray data type. * eina_value data type (generic value storage). * eina_file_stat. * eina_log*level_check. * eina_*buf_manage_new_length. * EINA_C_ARRAY_LENGTH macro. * Eina_Stringshare typedef. * add eina_file_map_faulted() for windows port (was missing). Fixes: * compilation errors in Eina_RWLock when building on Windows newer than XP. * stop leaking Eina_File. * remove dead lock in Eina_File. * bug on eina_shutdown when using eina_error. * NONNULL argument for eina_hash_find. * compilation of eina_semaphore_lock on Windows. * forgotten initialization of eina list count during eina_list_split_list. * leak in Eina_File. * deadlock in Eina_File. * make it possible to force the number of detected CPU on a system. Improvements: * faster implementation of Eina_Rbtree. * let eina_hash_free behave like free. Eina 1.1.0 (2011-12-02) Changes since Eina 1.0.0: ------------------------- Additions: * eina_unicode_strndup API * EINA_INLIST_FOREACH_SAFE API * eina unicode UTF8 convenience calls API * eina_list_move functions to move list nodes from list to list directly * simple SAX XML parser API added * inlist sort and sorted insert API * mempool repack API * eina_file API for portable file memory-mapping with IO saffety traps * thread locks, conditions etc. wrapper API for portability * prefix API for apps or libs to find their runtime prefix location * refcount macro API * binbuf for binary extendable buffers API * eina_hash_free_cb_set API * eina_main_loop_is API * eina_strbuf_manage_new and eina_ustrbuf_manage_new APIs * eina_xattr API's * eina_hash_murmur3 API Fixes: * compilation problems with some configure options * stat issue if file size is in bytes and serial number overran 32bits * uninstall of mempool modules * static build of buddy mempool * stringshare multi-init bug * windows port of eina_sched_prio_drop * eina_hash_set to handle data being NULL like eina_hash_del * static linking to eina (iconv can be avoided) * eina_share_common_del and eina_share_common_ref unlock bug Improvements: * scalability/speed improvements in Chained Mempool * stringshare as storage for eina error strings now eina-1.7.10/INSTALL0000664000175000017500000002243212175475327010510 00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic 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, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. (Caching is disabled by default to prevent problems with accidental use of stale cache files.) 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 you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You only need `configure.ac' 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 awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Defining Variables::, for more details. 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 support 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' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. 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' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS 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 machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. 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. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Here is a another example: /bin/bash ./configure CONFIG_SHELL=/bin/bash Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent configuration-related scripts to be executed by `/bin/bash'. `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. eina-1.7.10/src/0000775000175000017500000000000012247700051010304 500000000000000eina-1.7.10/src/Makefile.in0000664000175000017500000005047212247700043012302 00000000000000# Makefile.in generated by automake 1.13.4 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@ subdir = src DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d 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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ SUBDIRS = lib include modules tests examples MAINTAINERCLEANFILES = Makefile.in 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) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu 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): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool 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 mostlyclean-libtool 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 clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ 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 mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PHONY: benchmark @EFL_ENABLE_BENCHMARK_TRUE@benchmark: all @EFL_ENABLE_BENCHMARK_TRUE@ cd tests && make eina_bench @EFL_ENABLE_BENCHMARK_FALSE@benchmark: @EFL_ENABLE_BENCHMARK_FALSE@ @echo "reconfigure with --enable-benchmark" # 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: eina-1.7.10/src/include/0000775000175000017500000000000012247700051011727 500000000000000eina-1.7.10/src/include/eina_log.h0000664000175000017500000010023712175475327013617 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga, Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_LOG_H_ #define EINA_LOG_H_ #include #include #include #include #include "eina_types.h" #define EINA_COLOR_LIGHTRED "\033[31;1m" #define EINA_COLOR_RED "\033[31m" #define EINA_COLOR_LIGHTBLUE "\033[34;1m" #define EINA_COLOR_BLUE "\033[34m" #define EINA_COLOR_GREEN "\033[32;1m" #define EINA_COLOR_YELLOW "\033[33;1m" #define EINA_COLOR_ORANGE "\033[0;33m" #define EINA_COLOR_WHITE "\033[37;1m" #define EINA_COLOR_LIGHTCYAN "\033[36;1m" #define EINA_COLOR_CYAN "\033[36m" #define EINA_COLOR_RESET "\033[0m" #define EINA_COLOR_HIGH "\033[1m" /** * @page tutorial_log_page Log Tutorial * * @section tutorial_log_introduction Introduction * * The Eina Log module provides logging facilities for libraries and * applications. It provides colored logging, basic logging levels (error, * warning, debug, info, critical) and loggers - called logging domains - * which will be covered on next sections. * * @section tutorial_log_basic_usage Basic Usage * * Log messages can be displayed using the following macros: * * @li EINA_LOG_ERR(), * @li EINA_LOG_INFO(), * @li EINA_LOG_WARN(), * @li EINA_LOG_DBG(). * * Here is an example: * * @include eina_log_02.c * * If you compiled Eina without debug mode, execution will yield only one log * message, which is "argument is negative". * * Here we introduce the concept of logging domains (or loggers), which might * already be familiar to readers. It is basically a way to separate a set of * log messages into a context (e.g. a module) and provide a way of controlling * this set as a whole. * * For example, suppose you have 3 different modules on your application and you * want to get logging only from one of them (e.g. create some sort of filter). * For achieving that, all you need to do is create a logging domain for each * module so that all logging inside a module can be considered as a whole. * * Logging domains are specified by a name, color applied to the name and the * level. The first two (name and color) are set through code, that is, inside * your application/module/library. * * The level is used for controlling which messages should appear. It * specifies the lowest level that should be displayed (e.g. a message * with level 11 being logged on a domain with level set to 10 would be * displayed, while a message with level 9 wouldn't). * * The domain level is set during runtime (in contrast with the name and * color) through the environment variable EINA_LOG_LEVELS. This variable * expects a list in the form domain_name1:level1,domain_name2:level2,... . For * example: * * @verbatim EINA_LOG_LEVELS=mymodule1:5,mymodule2:2,mymodule3:0 ./myapp@endverbatim * * This line would set mymodule1 level to 5, mymodule2 level to 2 and mymodule3 * level to 0. * * There's also a global logger to which EINA_LOG_(ERR, DBG, INFO, CRIT, WARN) * macros do log on. It is a logger that is created internally by Eina Log with * an empty name and can be used for general logging (where logging domains do * not apply). * * Since this global logger doesn't have a name, you can't set its level through * EINA_LOG_LEVELS variable. Here we introduce a second environment variable * that is a bit more special: EINA_LOG_LEVEL. * * This variable specifies the level of the global logging domain and the level * of domains that haven't been set through EINA_LOG_LEVELS. Here's an example: * * @verbatim EINA_LOG_LEVEL=3 EINA_LOG_LEVELS=module1:10,module3:2 ./myapp@endverbatim * * Supposing you have modules named "module1", "module2" and "module3", this * line would result in module1 with level 10, module2 with level 3 and module3 * with level 2. Note that module2's level wasn't specified, so it's level is * set to the global level. This way we can easily apply filters to multiple * domains with only one parameter (EINA_LOG_LEVEL=num). * * The global level (EINA_LOG_LEVEL) can also be set through code, using * eina_log_level_set() function. * * While developing your libraries or applications, you may notice that * EINA_LOG_DOM_(ERR, DBG, INFO, CRIT, WARN) macros also print out * messages from eina itself. Here we introduce another environment variable * that is a bit more special: EINA_LOG_LEVELS_GLOB. * * This variable allows you to disable the logging of any/all code in eina itself. * This is useful when developing your libraries or applications so that you can * see your own domain's messages easier without having to sift through a lot of * internal eina debug messages. Here's an example: * * @verbatim EINA_LOG_LEVEL=3 EINA_LOG_LEVELS_GLOB=eina_*:0 ./myapp@endverbatim * * This will disable eina_log output from all internal eina code thus allowing * you to see your own domain messages easier. * * @section tutorial_log_advanced_display Advanced usage of print callbacks * * The log module allows the user to change the way * eina_log_print() displays the messages. It suffices to pass to * eina_log_print_cb_set() the function used to display the * message. That function must be of type #Eina_Log_Print_Cb. As a * custom data can be passed to that callback, powerful display * messages can be displayed. * * It is suggested to not use __FILE__, __FUNCTION__ or __LINE__ when * writing that callback, but when defining macros (like * EINA_LOG_ERR() and other macros). * * Here is an example of custom callback, whose behavior can be * changed at runtime: * * @include eina_log_03.c * @example eina_log_02.c * @example eina_log_03.c */ /** * @addtogroup Eina_Log_Group Log * * @brief Full-featured logging system. * * Eina provides eina_log_print(), a standard function to manage all * logging messages. This function may be called directly or using the * helper macros such as EINA_LOG_DBG(), EINA_LOG_ERR() or those that * take a specific domain as argument EINA_LOG_DOM_DBG(), * EINA_LOG_DOM_ERR(). Internally, eina_log_print() will call the * function defined with eina_log_print_cb_set(), that defaults to * eina_log_print_cb_stderr(), but may be changed to do whatever you * need, such as networking or syslog logging. * * The logging system is thread safe once initialized with * eina_log_threads_enable(). The thread that calls this function * first is considered "main thread" and other threads will have their * thread id (pthread_self()) printed in the log message so it is easy * to detect from where it is coming. * * Log domains is the Eina way to differentiate messages. There might * be different domains to represent different modules, different * feature-set, different categories and so on. Filtering can be * applied to domain names by means of @c EINA_LOG_LEVELS environment * variable or eina_log_domain_level_set(). * * The different logging levels serve to customize the amount of * debugging one want to take and may be used to automatically call * abort() once some given level message is printed. This is * controlled by environment variable @c EINA_LOG_ABORT and the level * to be considered critical with @c EINA_LOG_ABORT_LEVEL. These can * be changed with eina_log_abort_on_critical_set() and * eina_log_abort_on_critical_level_set(). * * The default maximum level to print is defined by environment * variable @c EINA_LOG_LEVEL, but may be set per-domain with @c * EINA_LOG_LEVELS. It will default to #EINA_LOG_ERR. This can be * changed with eina_log_level_set(). * * To use the log system Eina must be initialized with eina_init() and * later shut down with eina_shutdown(). Here is a straightforward * example: * * @include eina_log_01.c * * Compile this code with the following command: * * @verbatim gcc -Wall -o eina_log_01 eina_log_01.c `pkg-config --cflags --libs eina`@endverbatim * * Now execute the program with: * * @verbatim EINA_LOG_LEVEL=2 ./eina_log_01@endverbatim * * You should see a message displayed in the terminal. * * For more information, you can look at the @ref tutorial_log_page. * * @example eina_log_01.c */ /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @defgroup Eina_Log_Group Log * * @{ */ /** * EINA_LOG_DOMAIN_GLOBAL is the general purpose log domain to be * used, it is always registered and available everywhere. */ EAPI extern int EINA_LOG_DOMAIN_GLOBAL; #ifndef EINA_LOG_DOMAIN_DEFAULT /** * @def EINA_LOG_DOMAIN_DEFAULT * This macro defines the domain to use with the macros EINA_LOG_DOM_DBG(), * EINA_LOG_DOM_INFO(), EINA_LOG_DOM_WARN(), EINA_LOG_DOM_ERR() and * EINA_LOG_DOM_CRIT(). * * If not defined prior to the inclusion of this header, then it * defaults to #EINA_LOG_DOMAIN_GLOBAL. * * @note One may like to redefine this in its code to avoid typing too * much. In this case the recommended way is: * * @code * #include * #undef EINA_LOG_DOMAIN_DEFAULT * #define EINA_LOG_DOMAIN_DEFAULT _log_dom * static int _log_dom = -1; * * int main(void) * { * eina_init(); * _log_dom = eina_log_domain_register("mydom", EINA_COLOR_CYAN); * EINA_LOG_ERR("using my own domain"); * return 0; * } * @endcode * * @warning If one defines the domain prior to inclusion of this * header, the defined log domain symbol must be defined * prior as well, otherwise the inlined functions defined by * Eina will fail to find the symbol, causing build failure. * * @code * #define EINA_LOG_DOMAIN_DEFAULT _log_dom * static int _log_dom = -1; // must come before inclusion of Eina.h! * #include * * int main(void) * { * eina_init(); * _log_dom = eina_log_domain_register("mydom", EINA_COLOR_CYAN); * EINA_LOG_ERR("using my own domain"); * return 0; * } * @endcode * */ # define EINA_LOG_DOMAIN_DEFAULT EINA_LOG_DOMAIN_GLOBAL #endif /* EINA_LOG_DOMAIN_DEFAULT */ /** * @def EINA_LOG(DOM, LEVEL, fmt, ...) * Logs a message on the specified domain, level and format. * * @note if @c EINA_LOG_LEVEL_MAXIMUM is defined, then messages larger * than this value will be ignored regardless of current domain * level, the eina_log_print() is not even called! Most * compilers will just detect the two integers make the branch * impossible and remove the branch and function call all * together. Take this as optimization tip and possible remove * debug messages from binaries to be deployed, saving on hot * paths. Never define @c EINA_LOG_LEVEL_MAXIMUM on public * header files. */ #ifdef EINA_ENABLE_LOG # ifdef EINA_LOG_LEVEL_MAXIMUM # define EINA_LOG(DOM, LEVEL, fmt, ...) \ do { \ if (LEVEL <= EINA_LOG_LEVEL_MAXIMUM) { \ eina_log_print(DOM, LEVEL, __FILE__, __FUNCTION__, __LINE__, \ fmt, ## __VA_ARGS__); } \ } while (0) # else # define EINA_LOG(DOM, LEVEL, fmt, ...) \ eina_log_print(DOM, \ LEVEL, \ __FILE__, \ __FUNCTION__, \ __LINE__, \ fmt, \ ## __VA_ARGS__) # endif #else #define EINA_LOG(DOM, LEVEL, fmt, ...) \ do { (void) DOM; (void) LEVEL; (void) fmt; } while (0) #endif /** * @def EINA_LOG_DOM_CRIT(DOM, fmt, ...) * Logs a message with level CRITICAL on the specified domain and format. */ #define EINA_LOG_DOM_CRIT(DOM, fmt, ...) \ EINA_LOG(DOM, EINA_LOG_LEVEL_CRITICAL, fmt, ## __VA_ARGS__) /** * @def EINA_LOG_DOM_ERR(DOM, fmt, ...) * Logs a message with level ERROR on the specified domain and format. */ #define EINA_LOG_DOM_ERR(DOM, fmt, ...) \ EINA_LOG(DOM, EINA_LOG_LEVEL_ERR, fmt, ## __VA_ARGS__) /** * @def EINA_LOG_DOM_INFO(DOM, fmt, ...) * Logs a message with level INFO on the specified domain and format. */ #define EINA_LOG_DOM_INFO(DOM, fmt, ...) \ EINA_LOG(DOM, EINA_LOG_LEVEL_INFO, fmt, ## __VA_ARGS__) /** * @def EINA_LOG_DOM_DBG(DOM, fmt, ...) * Logs a message with level DEBUG on the specified domain and format. */ #define EINA_LOG_DOM_DBG(DOM, fmt, ...) \ EINA_LOG(DOM, EINA_LOG_LEVEL_DBG, fmt, ## __VA_ARGS__) /** * @def EINA_LOG_DOM_WARN(DOM, fmt, ...) * Logs a message with level WARN on the specified domain and format. */ #define EINA_LOG_DOM_WARN(DOM, fmt, ...) \ EINA_LOG(DOM, EINA_LOG_LEVEL_WARN, fmt, ## __VA_ARGS__) /** * @def EINA_LOG_CRIT(fmt, ...) * Logs a message with level CRITICAL on the default domain with the specified * format. */ #define EINA_LOG_CRIT(fmt, ...) \ EINA_LOG(EINA_LOG_DOMAIN_DEFAULT, \ EINA_LOG_LEVEL_CRITICAL, \ fmt, \ ## __VA_ARGS__) /** * @def EINA_LOG_ERR(fmt, ...) * Logs a message with level ERROR on the default domain with the specified * format. */ #define EINA_LOG_ERR(fmt, ...) \ EINA_LOG(EINA_LOG_DOMAIN_DEFAULT, EINA_LOG_LEVEL_ERR, fmt, ## __VA_ARGS__) /** * @def EINA_LOG_INFO(fmt, ...) * Logs a message with level INFO on the default domain with the specified * format. */ #define EINA_LOG_INFO(fmt, ...) \ EINA_LOG(EINA_LOG_DOMAIN_DEFAULT, EINA_LOG_LEVEL_INFO, fmt, ## __VA_ARGS__) /** * @def EINA_LOG_WARN(fmt, ...) * Logs a message with level WARN on the default domain with the specified * format. */ #define EINA_LOG_WARN(fmt, ...) \ EINA_LOG(EINA_LOG_DOMAIN_DEFAULT, EINA_LOG_LEVEL_WARN, fmt, ## __VA_ARGS__) /** * @def EINA_LOG_DBG(fmt, ...) * Logs a message with level DEBUG on the default domain with the specified * format. */ #define EINA_LOG_DBG(fmt, ...) \ EINA_LOG(EINA_LOG_DOMAIN_DEFAULT, EINA_LOG_LEVEL_DBG, fmt, ## __VA_ARGS__) /** * @typedef Eina_Log_Domain * The domain used for logging. */ typedef struct _Eina_Log_Domain Eina_Log_Domain; /** * @struct _Eina_Log_Domain * The domain used for logging. */ struct _Eina_Log_Domain { int level; /**< Max level to log */ const char *domain_str; /**< Formatted string with color to print */ const char *name; /**< Domain name */ size_t namelen; /**< strlen(name) */ /* Private */ Eina_Bool deleted : 1; /**< Flags deletion of domain, a free slot */ }; /** * Enable logging module to handle threads. * * There is no disable option on purpose, if it is enabled, there is * no way back until you call the last eina_shutdown(). * * There is no function to retrieve if threads are enabled as one is * not supposed to know this from outside. * * After this call is executed at least once, if Eina was compiled * with threads support then logging will lock around debug messages * and threads that are not the main thread will have its identifier * printed. * * The main thread is considered the thread where the first * eina_init() was called. */ EAPI void eina_log_threads_enable(void); /** * @enum _Eina_Log_Level * List of available logging levels. */ typedef enum _Eina_Log_Level { EINA_LOG_LEVEL_CRITICAL, /**< Critical log level */ EINA_LOG_LEVEL_ERR, /**< Error log level */ EINA_LOG_LEVEL_WARN, /**< Warning log level */ EINA_LOG_LEVEL_INFO, /**< Information log level */ EINA_LOG_LEVEL_DBG, /**< Debug log level */ EINA_LOG_LEVELS, /**< Count of default log levels */ EINA_LOG_LEVEL_UNKNOWN = (-2147483647 - 1) /**< Unknown level */ } Eina_Log_Level; /** * @typedef Eina_Log_Print_Cb * Type for print callbacks. */ typedef void (*Eina_Log_Print_Cb)(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args); /* * Customization */ /** * Sets logging method to use. * * @param cb The callback to call when printing a log. * @param data The data to pass to the callback. * * By default, eina_log_print_cb_stderr() is used. * * @note MT: safe to call from any thread. * * @note MT: given function @a cb will be called protected by mutex. * This means you're safe from other calls but you should never * call eina_log_print(), directly or indirectly. */ EAPI void eina_log_print_cb_set(Eina_Log_Print_Cb cb, void *data) EINA_ARG_NONNULL(1); /** * @brief Set the default log level. * * @param level The log level. * * This function sets the log level @p level. It is used in * eina_log_print(). * * @note this is initially set to envvar EINA_LOG_LEVEL by eina_init(). * * @see eina_log_level_get() */ EAPI void eina_log_level_set(int level); /** * @brief Get the default log level. * * @return the log level that limits eina_log_print(). * * @see eina_log_level_set() */ EAPI int eina_log_level_get(void) EINA_WARN_UNUSED_RESULT; static inline Eina_Bool eina_log_level_check(int level); /** * Checks if current thread is the main thread. * * @return #EINA_TRUE if threads were enabled and the current thread * is the one that called eina_log_threads_init(). If there is * no thread support (compiled with --disable-pthreads) or * they were not enabled, then #EINA_TRUE is also * returned. The only case where #EINA_FALSE is returned is * when threads were successfully enabled but the current * thread is not the main (one that called * eina_log_threads_init()). */ EAPI Eina_Bool eina_log_main_thread_check(void) EINA_CONST EINA_WARN_UNUSED_RESULT; /** * @brief Set if color logging should be disabled. * * @param disabled if #EINA_TRUE, color logging should be disabled. * * @note this is initially set to envvar EINA_LOG_COLOR_DISABLE by eina_init(). * * @see eina_log_color_disable_get() */ EAPI void eina_log_color_disable_set(Eina_Bool disabled); /** * @brief Get if color logging should be disabled. * * @return if #EINA_TRUE, color logging should be disabled. * * @see eina_log_color_disable_set() */ EAPI Eina_Bool eina_log_color_disable_get(void) EINA_WARN_UNUSED_RESULT; /** * @brief Set if originating file name logging should be disabled. * * @param disabled if #EINA_TRUE, file name logging should be disabled. * * @note this is initially set to envvar EINA_LOG_FILE_DISABLE by eina_init(). * * @see eina_log_file_disable_get() */ EAPI void eina_log_file_disable_set(Eina_Bool disabled); /** * @brief Get if originating file name logging should be disabled. * * @return if #EINA_TRUE, file name logging should be disabled. * * @see eina_log_file_disable_set() */ EAPI Eina_Bool eina_log_file_disable_get(void) EINA_WARN_UNUSED_RESULT; /** * @brief Set if originating function name logging should be disabled. * * @param disabled if #EINA_TRUE, function name logging should be disabled. * * @note this is initially set to envvar EINA_LOG_FUNCTION_DISABLE by * eina_init(). * * @see eina_log_function_disable_get() */ EAPI void eina_log_function_disable_set(Eina_Bool disabled); /** * @brief Get if originating function name logging should be disabled. * * @return if #EINA_TRUE, function name logging should be disabled. * * @see eina_log_function_disable_set() */ EAPI Eina_Bool eina_log_function_disable_get(void) EINA_WARN_UNUSED_RESULT; /** * @brief Set if critical messages should abort the program. * * @param abort_on_critical if #EINA_TRUE, messages with level equal * or smaller than eina_log_abort_on_critical_level_get() will * abort the program. * * @note this is initially set to envvar EINA_LOG_ABORT by * eina_init(). * * @see eina_log_abort_on_critical_get() * @see eina_log_abort_on_critical_level_set() */ EAPI void eina_log_abort_on_critical_set(Eina_Bool abort_on_critical); /** * @brief Get if critical messages should abort the program. * * @return if #EINA_TRUE, any messages with level equal or smaller * than eina_log_abort_on_critical_level_get() will abort the * program. * * @see eina_log_abort_on_critical_set() * @see eina_log_abort_on_critical_level_set() */ EAPI Eina_Bool eina_log_abort_on_critical_get(void) EINA_WARN_UNUSED_RESULT; /** * @brief Set level that triggers abort if abort-on-critical is set. * * @param critical_level levels equal or smaller than the given value * will trigger program abortion if * eina_log_abort_on_critical_get() returns #EINA_TRUE. * * @note this is initially set to envvar EINA_LOG_ABORT_LEVEL by * eina_init(). * * @see eina_log_abort_on_critical_level_get() * @see eina_log_abort_on_critical_get() */ EAPI void eina_log_abort_on_critical_level_set(int critical_level); /** * @brief Get level that triggers abort if abort-on-critical is set. * * @return critical level equal or smaller than value will trigger * program abortion if eina_log_abort_on_critical_get() * returns #EINA_TRUE. * * @see eina_log_abort_on_critical_level_set() * @see eina_log_abort_on_critical_get() */ EAPI int eina_log_abort_on_critical_level_get(void) EINA_WARN_UNUSED_RESULT; /** * Set the domain level given its name. * * This call has the same effect as setting * EINA_LOG_LEVELS=<@p domain_name>:<@p level> * * @param domain_name domain name to change the level. It may be of a * still not registered domain. If the domain is not registered * yet, it will be saved as a pending set and applied upon * registration. * @param level level to use to limit eina_log_print() for given domain. */ EAPI void eina_log_domain_level_set(const char *domain_name, int level) EINA_ARG_NONNULL(1); /** * Get the domain level given its name. * * @param domain_name domain name to retrieve the level. It may be of * a still not registered domain. If the domain is not * registered yet, but there is a pending value, either from * eina_log_domain_level_set(),EINA_LOG_LEVELS environment * variable or from EINA_LOG_LEVELS_GLOB, these are * returned. If nothing else was found, then the global/default * level (eina_log_level_get()) is returned. * * @return level to use to limit eina_log_print() for given * domain. On error (@p domain_name == NULL), * EINA_LOG_LEVEL_UNKNOWN is returned. * * @see eina_log_domain_level_set() * @see eina_log_domain_registered_level_get() */ EAPI int eina_log_domain_level_get(const char *domain_name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * Get the domain level given its identifier. * * @param domain identifier, so it must be previously registered with * eina_log_domain_register(). It's a much faster version of * eina_log_domain_level_get(), but relies on domain being * present. * * @return #EINA_TRUE if level should be printed, #EINA_FALSE if not. * (domain's level is greater or equal @a level). */ EAPI int eina_log_domain_registered_level_get(int domain) EINA_WARN_UNUSED_RESULT; static inline Eina_Bool eina_log_domain_level_check(int domain, int level); /* * Logging domains */ /** * @param name Domain name * @param color Color of the domain name * * @return Domain index that will be used as the DOMAIN parameter on log * macros. A negative return value means an log occurred. * * @note MT: safe to call from any thread. */ EAPI int eina_log_domain_register(const char *name, const char *color) EINA_ARG_NONNULL(1); /** * Forget about a logging domain registered by eina_log_domain_register() * * @param domain domain identifier as reported by eina_log_domain_register(), * must be >= 0. * * @note MT: safe to call from any thread. */ EAPI void eina_log_domain_unregister(int domain); /* * Logging functions. */ /** * Print out log message using given domain and level. * * @note Usually you'll not use this function directly but the helper * macros EINA_LOG(), EINA_LOG_DOM_CRIT(), EINA_LOG_CRIT() and * so on. See eina_log.h * * @param domain logging domain to use or @c EINA_LOG_DOMAIN_GLOBAL if * you registered none. It is recommended that modules and * applications have their own logging domain. * @param level message level, those with level greater than user * specified value (eina_log_level_set() or environment * variables EINA_LOG_LEVEL, EINA_LOG_LEVELS) will be ignored. * @param file filename that originated the call, must @b not be @c NULL. * @param function function that originated the call, must @b not be @c NULL. * @param line originating line in @a file. * @param fmt printf-like format to use. Should not provide trailing * '\n' as it is automatically included. * * @note MT: this function may be called from different threads if * eina_log_threads_enable() was called before. */ EAPI void eina_log_print(int domain, Eina_Log_Level level, const char *file, const char *function, int line, const char *fmt, ...) EINA_ARG_NONNULL(3, 4, 6) EINA_PRINTF(6, 7) EINA_NOINSTRUMENT; /** * Print out log message using given domain and level. * * @note Usually you'll not use this function directly but the helper * macros EINA_LOG(), EINA_LOG_DOM_CRIT(), EINA_LOG_CRIT() and * so on. See eina_log.h * * @param domain logging domain to use or @c EINA_LOG_DOMAIN_GLOBAL if * you registered none. It is recommended that modules and * applications have their own logging domain. * @param level message level, those with level greater than user * specified value (eina_log_level_set() or environment * variables EINA_LOG_LEVEL, EINA_LOG_LEVELS) will be ignored. * @param file filename that originated the call, must @b not be @c NULL. * @param fnc function that originated the call, must @b not be @c NULL. * @param line originating line in @a file. * @param fmt printf-like format to use. Should not provide trailing * '\n' as it is automatically included. * @param args the arguments needed by the format. * * @note MT: this function may be called from different threads if * eina_log_threads_enable() was called before. * * @see eina_log_print() */ EAPI void eina_log_vprint(int domain, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, va_list args) EINA_ARG_NONNULL(3, 4, 6) EINA_NOINSTRUMENT; /* * Logging methods (change how logging is done). */ /** * @brief Alternative logging method, this will output to standard output stream. * * @param d The domain. * @param level The level. * @param file The file which is logged. * @param fnc The function which is logged. * @param line The line which is logged. * @param fmt The ouptut format to use. * @param data Not used. * @param args The arguments needed by the format. * * This method will colorize output based on domain provided color and * message logging level. To disable color, set environment variable * EINA_LOG_COLOR_DISABLE=1. Similarly, to disable file and line * information, set EINA_LOG_FILE_DISABLE=1 or * EINA_LOG_FUNCTION_DISABLE=1 to avoid function name in output. It is * not acceptable to have both EINA_LOG_FILE_DISABLE and * EINA_LOG_FUNCTION_DISABLE at the same time, in this case just * EINA_LOG_FUNCTION_DISABLE will be considered and file information * will be printed anyways. * * @note MT: if threads are enabled, this function is called within locks. * @note MT: Threads different from main thread will have thread id * appended to domain name. */ EAPI void eina_log_print_cb_stdout(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args); /** * @brief Default logging method, this will output to standard error stream. * * @param d The domain. * @param level The level. * @param file The file which is logged. * @param fnc The function which is logged. * @param line The line which is logged. * @param fmt The ouptut format to use. * @param data Not used. * @param args The arguments needed by the format. * * This method will colorize output based on domain provided color and * message logging level. * * To disable color, set environment variable * EINA_LOG_COLOR_DISABLE=1. To enable color, even if directing to a * file or when using a non-supported color terminal, use * EINA_LOG_COLOR_DISABLE=0. If EINA_LOG_COLOR_DISABLE is unset (or * -1), then Eina will disable color if terminal ($TERM) is * unsupported or if redirecting to a file. . Similarly, to disable file and line * information, set EINA_LOG_FILE_DISABLE=1 or * EINA_LOG_FUNCTION_DISABLE=1 to avoid function name in output. It is * not acceptable to have both EINA_LOG_FILE_DISABLE and * EINA_LOG_FUNCTION_DISABLE at the same time, in this case just * EINA_LOG_FUNCTION_DISABLE will be considered and file information * will be printed anyways. * * @note MT: if threads are enabled, this function is called within locks. * @note MT: Threads different from main thread will have thread id * appended to domain name. */ EAPI void eina_log_print_cb_stderr(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args); /** * Alternative logging method, this will output to given file stream. * * @param d The domain. * @param level Not used. * @param file The file which is logged. * @param fnc The function which is logged. * @param line The line which is logged. * @param fmt The ouptut format to use. * @param data The file which will store the output (as a FILE *). * @param args The arguments needed by the format. * * This method will never output color. * * @note MT: if threads are enabled, this function is called within locks. * @note MT: Threads different from main thread will have thread id * appended to domain name. */ EAPI void eina_log_print_cb_file(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args); /** * Configure console color of given file. * * @param fp file to configure console color (usually stderr or stdout). * @param color a VT color code such as #EINA_COLOR_RED or #EINA_COLOR_RESET. * * @note if color is disabled, nothing is done. See * eina_log_color_disable_get() * @note on windows, both @a fp and @a color is converted automatically. * * @since 1.7 */ EAPI void eina_log_console_color_set(FILE *fp, const char *color) EINA_ARG_NONNULL(1, 2); #include "eina_inline_log.x" /** * @} */ /** * @} */ #endif /* EINA_LOG_H_ */ eina-1.7.10/src/include/eina_config.h.in0000664000175000017500000000401712175475327014707 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_CONFIG_H_ #define EINA_CONFIG_H_ #ifdef EINA_HAVE_EXOTIC_H # undef EINA_HAVE_EXOTIC_H #endif @EINA_CONFIGURE_HAVE_EXOTIC@ #ifdef EINA_HAVE_EXOTIC # include #endif #ifdef EINA_MAGIC_DEBUG # undef EINA_MAGIC_DEBUG #endif @EINA_CONFIGURE_MAGIC_DEBUG@ #ifdef EINA_DEFAULT_MEMPOOL # undef EINA_DEFAULT_MEMPOOL #endif @EINA_CONFIGURE_DEFAULT_MEMPOOL@ #ifdef EINA_SAFETY_CHECKS # undef EINA_SAFETY_CHECKS #endif @EINA_CONFIGURE_SAFETY_CHECKS@ #ifdef EINA_HAVE_INTTYPES_H # undef EINA_HAVE_INTTYPES_H #endif @EINA_CONFIGURE_HAVE_INTTYPES_H@ #ifdef EINA_HAVE_STDINT_H # undef EINA_HAVE_STDINT_H #endif @EINA_CONFIGURE_HAVE_STDINT_H@ #ifdef EINA_HAVE_THREADS # undef EINA_HAVE_THREADS #endif @EINA_CONFIGURE_HAVE_THREADS@ #ifdef EINA_HAVE_DEBUG_THREADS # undef EINA_HAVE_DEBUG_THREADS #endif @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ #ifdef EINA_SIZEOF_WCHAR_T # undef EINA_SIZEOF_WCHAR_T #endif #define EINA_SIZEOF_WCHAR_T @EINA_SIZEOF_WCHAR_T@ #ifdef EINA_HAVE_ON_OFF_THREADS # undef EINA_HAVE_ON_OFF_THREADS #endif @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ #ifdef EINA_CONFIGURE_HAVE_DIRENT_H # undef EINA_CONFIGURE_HAVE_DIRENT_H #endif @EINA_CONFIGURE_HAVE_DIRENT_H@ #ifdef EINA_CONFIGURE_ENABLE_LOG # undef EINA_CONFIGURE_ENABLE_LOG #endif @EINA_CONFIGURE_ENABLE_LOG@ #endif /* EINA_CONFIG_H_ */ eina-1.7.10/src/include/eina_inline_clist.x0000664000175000017500000000661712175475327015541 00000000000000/* * Linked lists support * * Copyright (C) 2002 Alexandre Julliard * Copyright (C) 2011 Mike McCormack (adapted for Eina) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef __EINA_CLIST_INLINE_H__ #define __EINA_CLIST_INLINE_H__ #include static inline void eina_clist_add_after(Eina_Clist *elem, Eina_Clist *to_add) { to_add->next = elem->next; to_add->prev = elem; elem->next->prev = to_add; elem->next = to_add; } static inline void eina_clist_add_before(Eina_Clist *elem, Eina_Clist *to_add) { to_add->next = elem; to_add->prev = elem->prev; elem->prev->next = to_add; elem->prev = to_add; } static inline void eina_clist_add_head(Eina_Clist *list, Eina_Clist *elem) { eina_clist_add_after(list, elem); } static inline void eina_clist_add_tail(Eina_Clist *list, Eina_Clist *elem) { eina_clist_add_before(list, elem); } static inline void eina_clist_element_init(Eina_Clist *elem) { elem->next = NULL; elem->prev = NULL; } static inline int eina_clist_element_is_linked(Eina_Clist *elem) { return (elem->next != NULL && elem->prev != NULL); } static inline void eina_clist_remove(Eina_Clist *elem) { elem->next->prev = elem->prev; elem->prev->next = elem->next; eina_clist_element_init(elem); } static inline Eina_Clist *eina_clist_next(const Eina_Clist *list, const Eina_Clist *elem) { Eina_Clist *ret = elem->next; if (elem->next == list) ret = NULL; return ret; } static inline Eina_Clist *eina_clist_prev(const Eina_Clist *list, const Eina_Clist *elem) { Eina_Clist *ret = elem->prev; if (elem->prev == list) ret = NULL; return ret; } static inline Eina_Clist *eina_clist_head(const Eina_Clist *list) { return eina_clist_next(list, list); } static inline Eina_Clist *eina_clist_tail(const Eina_Clist *list) { return eina_clist_prev(list, list); } static inline int eina_clist_empty(const Eina_Clist *list) { return list->next == list; } static inline void eina_clist_init(Eina_Clist *list) { list->next = list->prev = list; } static inline unsigned int eina_clist_count(const Eina_Clist *list) { unsigned count = 0; const Eina_Clist *ptr; for (ptr = list->next; ptr != list; ptr = ptr->next) count++; return count; } static inline void eina_clist_move_tail(Eina_Clist *dst, Eina_Clist *src) { if (eina_clist_empty(src)) return; dst->prev->next = src->next; src->next->prev = dst->prev; dst->prev = src->prev; src->prev->next = dst; eina_clist_init(src); } static inline void eina_clist_move_head(Eina_Clist *dst, Eina_Clist *src) { if (eina_clist_empty(src)) return; dst->next->prev = src->prev; src->prev->next = dst->next; dst->next = src->next; src->next->prev = dst; eina_clist_init(src); } #endif eina-1.7.10/src/include/eina_array.h0000664000175000017500000003713512175475327014162 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_ARRAY_H_ #define EINA_ARRAY_H_ #include #include "eina_config.h" #include "eina_types.h" #include "eina_error.h" #include "eina_iterator.h" #include "eina_accessor.h" #include "eina_magic.h" /** * @page eina_array_01_example_page Basic array usage * @dontinclude eina_array_01.c * * For this example we add stdlib.h, stdio.h and string.h for some * convenience functions. The first thing to do to be able to use an * @ref Eina_Array is to include Eina.h: * @skip #include * @until Eina.h * * Here we have a callback that prints the element given to it: * @until } * * Now we create our entry point and declare some variables, nothing especial: * @until unsigned * * Before we can start using any array function we need to initialize eina: * @until eina_init * * So now to actually creating our array. The only interesting thing here is the * argument given to the eina_array_new() function, this argument sets how fast * the array grows. * @until array_new * * If you know before hand how big the array will need to be you should set the * step to that. In our case we can set it to the number of string we have and * since we didn't do that in the eina_array_new() we can do it now: * @until array_step_set * * Now let us populate our array with some strings: * @until push * @note Notice we use strdup, so we will have to free that memory later on. * * Now lets check the size of the array: * @until printf * * And now we call a function on every member of our array to print it: * @until foreach * * One of the strengths of @ref Eina_Array over @ref Eina_List is that it has * very fast random access to elements, so this is very efficient: * @until printf * * And now we free up the memory allocated with the strdup()s: * @until free * * And the array memory itself: * @until array_free * * And finally shutdown eina and exit: * @until } * * The full source code can be found on the examples folder * on the @ref eina_array_01_c "eina_array_01.c" file. */ /** * @page eina_array_01_c Basic array usage example * * @include eina_array_01.c * @example eina_array_01.c */ /** * @page eina_array_02_example_page Removing array elements * @dontinclude eina_array_02.c * * Just the usual includes: * @skip #include * @until Eina.h * * This the callback we are going to use to decide which strings stay on the * array and which will be removed, we use something simple, but this can be as * complex as you like: * @until } * * This is the same code we used before to populate the list with the slight * difference of not using strdup: * @until array_push * * So we have added all our elements to the array, but it turns out that is not * the elements we wanted, so let's empty the array and add the correct strings: * @until array_push * * It seems we made a little mistake in one of our strings so we need to replace * it, here is how: * @until data_set * * Now that there is a populated array we can remove elements from it easily: * @until array_remove * * And check that the elements were actually removed: * @until printf * * Since this time we didn't use strdup we don't need to free each string: * @until } * * The full source code can be found on the examples folder * on the @ref eina_array_02_c "eina_array_02.c" file. */ /** * @page eina_array_02_c Basic array usage example * * @include eina_array_02.c * @example eina_array_02.c */ /** * @addtogroup Eina_Array_Group Array * * @brief These functions provide array management. * * The Array data type in Eina is designed to have very fast access to * its data (compared to the Eina @ref Eina_List_Group). On the other hand, * data can be added or removed only at the end of the array. To insert * data at any place, the Eina @ref Eina_List_Group is the correct container * to use. * * To use the array data type, eina_init() must be called before any * other array functions. When no more eina array functions are used, * eina_shutdown() must be called to free all the resources. * * An array must be created with eina_array_new(). It allocates all * the necessary data for an array. When not needed anymore, an array * is freed with eina_array_free(). This function does not free any * allocated memory used to store the data of each element. For that, * just iterate over the array to free them. A convenient way to do * that is by using #EINA_ARRAY_ITER_NEXT. An example of code is given * in the description of this macro. * * @warning Functions do not check if the used array is valid or not. It's up to * the user to be sure of that. It is designed like that for performance * reasons. * * The usual features of an array are classic ones: to append an * element, use eina_array_push() and to remove the last element, use * eina_array_pop(). To retrieve the element at a given position, use * eina_array_data_get(). The number of elements can be retrieved with * eina_array_count(). * * Eina_Array is different from a conventional C array in a number of ways, most * importantly they grow and shrink dynamically, this means that if you add an * element to a full array it grows and that when you remove an element from an * array it @b may shrink. * * When the array needs to grow it allocates memory not just for the element * currently being added since that would mean allocating memory(which is * computationally expensive) often, instead it grows to be able to hold @p step * more elements. Similarly if you remove elements in such a way that that the * array is left holding its capacity - @p step elements it will shrink. * * The following image illustrates how an Eina_Array grows: * * @image html eina_array-growth.png * @image latex eina_array-growth.eps width=\textwidth * * Eina_Array only stores pointers but it can store data of any type in the form * of void pointers. * * See here some examples: * @li @ref eina_array_01_example_page * @li @ref eina_array_02_example_page */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @addtogroup Eina_Containers_Group Containers * * @{ */ /** * @defgroup Eina_Array_Group Array * * @{ */ /** * @typedef Eina_Array * Type for a generic vector. */ typedef struct _Eina_Array Eina_Array; /** * @typedef Eina_Array_Iterator * Type for an iterator on arrays, used with #EINA_ARRAY_ITER_NEXT. */ typedef void **Eina_Array_Iterator; /** * @struct _Eina_Array * Type for an array of data. */ struct _Eina_Array { #define EINA_ARRAY_VERSION 1 int version; /**< Should match EINA_ARRAY_VERSION used when compiled your apps, provided for ABI compatibility */ void **data; /**< Pointer to a vector of pointer to payload */ unsigned int total; /**< Total number of slots in the vector */ unsigned int count; /**< Number of active slots in the vector */ unsigned int step; /**< How much must we grow the vector when it is full */ EINA_MAGIC }; /** * @brief Create a new array. * * @param step The count of pointers to add when increasing the array size. * @return @c NULL on failure, non @c NULL otherwise. * * This function creates a new array. When adding an element, the array * allocates @p step elements. When that buffer is full, then adding * another element will increase the buffer by @p step elements again. * * This function return a valid array on success, or @c NULL if memory * allocation fails. In that case, the error is set * to #EINA_ERROR_OUT_OF_MEMORY. */ EAPI Eina_Array *eina_array_new(unsigned int step) EINA_WARN_UNUSED_RESULT EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Free an array. * * @param array The array to free. * * This function frees @p array. It calls first eina_array_flush() then * free the memory of the pointer. It does not free the memory * allocated for the elements of @p array. To free them, * use #EINA_ARRAY_ITER_NEXT. For performance reasons, there is no check * of @p array. */ EAPI void eina_array_free(Eina_Array *array) EINA_ARG_NONNULL(1); /** * @brief Set the step of an array. * * @param array The array. * @param sizeof_eina_array Should be the value returned by sizeof(Eina_Array). * @param step The count of pointers to add when increasing the array size. * * This function sets the step of @p array to @p step. For performance * reasons, there is no check of @p array. If it is @c NULL or * invalid, the program may crash. * * @warning This function can @b only be called on uninitialized arrays. */ EAPI void eina_array_step_set(Eina_Array *array, unsigned int sizeof_eina_array, unsigned int step) EINA_ARG_NONNULL(1); /** * @brief Clean an array. * * @param array The array to clean. * * This function sets the count member of @p array to 0, however it doesn't free * any space. This is particularly useful if you need to empty the array and * add lots of elements quickly. For performance reasons, there is no check of * @p array. If it is @c NULL or invalid, the program may crash. */ static inline void eina_array_clean(Eina_Array *array) EINA_ARG_NONNULL(1); /** * @brief Flush an array. * * @param array The array to flush. * * This function sets the count and total members of @p array to 0, * frees and set to NULL its data member. For performance reasons, * there is no check of @p array. If it is @c NULL or invalid, the * program may crash. */ EAPI void eina_array_flush(Eina_Array *array) EINA_ARG_NONNULL(1); /** * @brief Rebuild an array by specifying the data to keep. * * @param array The array. * @param keep The functions which selects the data to keep. * @param gdata The data to pass to the function keep. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function rebuilds @p array be specifying the elements to keep with the * function @p keep. No empty/invalid fields are left in the array. @p gdata is * an additional data to pass to @p keep. For performance reasons, there is no * check of @p array. If it is @c NULL or invalid, the program may crash. * * If it wasn't able to remove items due to an allocation failure, it will * return #EINA_FALSE and the error is set to #EINA_ERROR_OUT_OF_MEMORY. */ EAPI Eina_Bool eina_array_remove(Eina_Array * array, Eina_Bool (*keep)(void *data, void *gdata), void *gdata) EINA_ARG_NONNULL(1, 2); static inline Eina_Bool eina_array_push(Eina_Array *array, const void *data) EINA_ARG_NONNULL(1, 2); static inline void *eina_array_pop(Eina_Array *array) EINA_ARG_NONNULL(1); static inline void *eina_array_data_get(const Eina_Array *array, unsigned int idx) EINA_ARG_NONNULL(1); /** * @brief Set the data at a given position in an array. * * @param array The array. * @param idx The position of the data to set. * @param data The data to set. * * This function sets the data at the position @p idx in @p * array to @p data, this effectively replaces the previously held data, you * must therefore get a pointer to it first if you need to free it. For * performance reasons, there is no check of @p array or @p idx. If it is @c * NULL or invalid, the program may crash. */ static inline void eina_array_data_set(const Eina_Array *array, unsigned int idx, const void *data) EINA_ARG_NONNULL(1); static inline unsigned int eina_array_count_get(const Eina_Array *array) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; static inline unsigned int eina_array_count(const Eina_Array *array) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Returned a new iterator associated to an array. * * @param array The array. * @return A new iterator. * * This function returns a newly allocated iterator associated to * @p array. If @p array is @c NULL or the count member of @p array is * less or equal than 0, this function returns @c NULL. If the memory can * not be allocated, NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is * set. Otherwise, a valid iterator is returned. */ EAPI Eina_Iterator *eina_array_iterator_new(const Eina_Array *array) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Returned a new accessor associated to an array. * * @param array The array. * @return A new accessor. * * This function returns a newly allocated accessor associated to * @p array. If @p array is @c NULL or the count member of @p array is * less or equal than 0, this function returns @c NULL. If the memory can * not be allocated, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is * set. Otherwise, a valid accessor is returned. */ EAPI Eina_Accessor *eina_array_accessor_new(const Eina_Array *array) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Provide a safe way to iterate over an array * * @param array The array to iterate over. * @param cb The callback to call for each item. * @param fdata The user data to pass to the callback. * @return #EINA_TRUE if it successfully iterate all items of the array. * * This function provide a safe way to iterate over an array. @p cb should * return #EINA_TRUE as long as you want the function to continue iterating, * by returning #EINA_FALSE it will stop and return #EINA_FALSE as a result. */ static inline Eina_Bool eina_array_foreach(Eina_Array *array, Eina_Each_Cb cb, void *fdata); /** * @def EINA_ARRAY_ITER_NEXT * @brief Macro to iterate over an array easily. * * @param array The array to iterate over. * @param index The integer number that is increased while iterating. * @param item The data * @param iterator The iterator * * This macro allows the iteration over @p array in an easy way. It * iterates from the first element to the last one. @p index is an * integer that increases from 0 to the number of elements. @p item is * the data of each element of @p array, so it is a pointer to a type * chosen by the user. @p iterator is of type #Eina_Array_Iterator. * * This macro can be used for freeing the data of an array, like in * the following example: * * @code * Eina_Array *array; * char *item; * Eina_Array_Iterator iterator; * unsigned int i; * * // array is already filled, * // its elements are just duplicated strings, * // EINA_ARRAY_ITER_NEXT will be used to free those strings * * EINA_ARRAY_ITER_NEXT(array, i, item, iterator) * free(item); * @endcode */ #define EINA_ARRAY_ITER_NEXT(array, index, item, iterator) \ for (index = 0, iterator = (array)->data; \ (index < eina_array_count(array)) && ((item = *((iterator)++))); \ ++(index)) #include "eina_inline_array.x" /** * @} */ /** * @} */ /** * @} */ #endif eina-1.7.10/src/include/Makefile.in0000664000175000017500000005141212247700043013720 00000000000000# Makefile.in generated by automake 1.13.4 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@ # Will be back for developper after 1.2. # eina_model.h # eina_object.h @EINA_HAVE_THREADS_TRUE@@EINA_HAVE_WINCE_TRUE@am__append_1 = eina_inline_lock_wince.x @EINA_HAVE_THREADS_TRUE@@EINA_HAVE_WIN32_TRUE@@EINA_HAVE_WINCE_FALSE@am__append_2 = eina_inline_lock_win32.x @EINA_HAVE_THREADS_TRUE@@EINA_HAVE_WIN32_FALSE@@EINA_HAVE_WINCE_FALSE@am__append_3 = eina_inline_lock_posix.x @EINA_HAVE_THREADS_FALSE@am__append_4 = eina_inline_lock_void.x subdir = src/include DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/eina_config.h.in \ $(am__dist_installed_headers_DATA_DIST) \ $(dist_installed_mainheader_DATA) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = eina_config.h 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__dist_installed_headers_DATA_DIST = eina_safety_checks.h \ eina_error.h eina_log.h eina_inline_log.x eina_fp.h \ eina_inline_f32p32.x eina_inline_f16p16.x eina_inline_f8p24.x \ eina_inline_fp.x eina_hash.h eina_inline_hash.x eina_lalloc.h \ eina_clist.h eina_inline_clist.x eina_inarray.h eina_inlist.h \ eina_list.h eina_file.h eina_mempool.h eina_module.h \ eina_rectangle.h eina_types.h eina_array.h eina_counter.h \ eina_inline_array.x eina_magic.h eina_stringshare.h \ eina_binshare.h eina_binbuf.h eina_ustringshare.h \ eina_inline_stringshare.x eina_inline_ustringshare.x \ eina_inline_list.x eina_accessor.h eina_convert.h \ eina_rbtree.h eina_benchmark.h eina_inline_rbtree.x \ eina_inline_mempool.x eina_inline_rectangle.x \ eina_inline_trash.x eina_trash.h eina_iterator.h eina_main.h \ eina_cpu.h eina_sched.h eina_tiler.h eina_hamster.h \ eina_matrixsparse.h eina_inline_tiler.x eina_str.h \ eina_inline_str.x eina_strbuf.h eina_ustrbuf.h eina_unicode.h \ eina_quadtree.h eina_simple_xml_parser.h eina_lock.h \ eina_prefix.h eina_refcount.h eina_mmap.h eina_xattr.h \ eina_value.h eina_inline_value.x eina_inline_lock_wince.x \ eina_inline_lock_win32.x eina_inline_lock_posix.x \ eina_inline_lock_void.x 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)$(installed_headersdir)" \ "$(DESTDIR)$(installed_mainheaderdir)" DATA = $(dist_installed_headers_DATA) \ $(dist_installed_mainheader_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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ MAINTAINERCLEANFILES = Makefile.in EINAHEADERS = eina_safety_checks.h eina_error.h eina_log.h \ eina_inline_log.x eina_fp.h eina_inline_f32p32.x \ eina_inline_f16p16.x eina_inline_f8p24.x eina_inline_fp.x \ eina_hash.h eina_inline_hash.x eina_lalloc.h eina_clist.h \ eina_inline_clist.x eina_inarray.h eina_inlist.h eina_list.h \ eina_file.h eina_mempool.h eina_module.h eina_rectangle.h \ eina_types.h eina_array.h eina_counter.h eina_inline_array.x \ eina_magic.h eina_stringshare.h eina_binshare.h eina_binbuf.h \ eina_ustringshare.h eina_inline_stringshare.x \ eina_inline_ustringshare.x eina_inline_list.x eina_accessor.h \ eina_convert.h eina_rbtree.h eina_benchmark.h \ eina_inline_rbtree.x eina_inline_mempool.x \ eina_inline_rectangle.x eina_inline_trash.x eina_trash.h \ eina_iterator.h eina_main.h eina_cpu.h eina_sched.h \ eina_tiler.h eina_hamster.h eina_matrixsparse.h \ eina_inline_tiler.x eina_str.h eina_inline_str.x eina_strbuf.h \ eina_ustrbuf.h eina_unicode.h eina_quadtree.h \ eina_simple_xml_parser.h eina_lock.h eina_prefix.h \ eina_refcount.h eina_mmap.h eina_xattr.h eina_value.h \ eina_inline_value.x $(am__append_1) $(am__append_2) \ $(am__append_3) $(am__append_4) installed_mainheaderdir = $(includedir)/eina-@VMAJ@ dist_installed_mainheader_DATA = Eina.h eina_config.h installed_headersdir = $(includedir)/eina-@VMAJ@/eina dist_installed_headers_DATA = $(EINAHEADERS) EXTRA_DIST = \ eina_config.h.in 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) --gnu src/include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/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): eina_config.h: $(top_builddir)/config.status $(srcdir)/eina_config.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_installed_headersDATA: $(dist_installed_headers_DATA) @$(NORMAL_INSTALL) @list='$(dist_installed_headers_DATA)'; test -n "$(installed_headersdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(installed_headersdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(installed_headersdir)" || 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)$(installed_headersdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(installed_headersdir)" || exit $$?; \ done uninstall-dist_installed_headersDATA: @$(NORMAL_UNINSTALL) @list='$(dist_installed_headers_DATA)'; test -n "$(installed_headersdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(installed_headersdir)'; $(am__uninstall_files_from_dir) install-dist_installed_mainheaderDATA: $(dist_installed_mainheader_DATA) @$(NORMAL_INSTALL) @list='$(dist_installed_mainheader_DATA)'; test -n "$(installed_mainheaderdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(installed_mainheaderdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(installed_mainheaderdir)" || 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)$(installed_mainheaderdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(installed_mainheaderdir)" || exit $$?; \ done uninstall-dist_installed_mainheaderDATA: @$(NORMAL_UNINSTALL) @list='$(dist_installed_mainheader_DATA)'; test -n "$(installed_mainheaderdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(installed_mainheaderdir)'; $(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)$(installed_headersdir)" "$(DESTDIR)$(installed_mainheaderdir)"; 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool 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-dist_installed_headersDATA \ install-dist_installed_mainheaderDATA 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 mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_installed_headersDATA \ uninstall-dist_installed_mainheaderDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dist_installed_headersDATA \ install-dist_installed_mainheaderDATA 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 mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am \ uninstall-dist_installed_headersDATA \ uninstall-dist_installed_mainheaderDATA # 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: eina-1.7.10/src/include/eina_inline_f8p24.x0000664000175000017500000000412212175475327015253 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * Copyright (C) 2009 Cedric BAIL * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLINE_F8P24_X_ #define EINA_INLINE_F8P24_X_ static inline Eina_F8p24 eina_f8p24_add(Eina_F8p24 a, Eina_F8p24 b) { return a + b; } static inline Eina_F8p24 eina_f8p24_sub(Eina_F8p24 a, Eina_F8p24 b) { return a - b; } static inline Eina_F8p24 eina_f8p24_mul(Eina_F8p24 a, Eina_F8p24 b) { return (Eina_F8p24)(((int64_t) a * (int64_t) b) >> 24); } static inline Eina_F8p24 eina_f8p24_scale(Eina_F8p24 a, int b) { return a * b; } static inline Eina_F8p24 eina_f8p24_div(Eina_F8p24 a, Eina_F8p24 b) { return (Eina_F8p24) ((((int64_t) a) << 24) / (int64_t) b); } static inline Eina_F8p24 eina_f8p24_sqrt(Eina_F8p24 a) { unsigned int root, remHi, remLo, testDiv, count; root = 0; /* Clear root */ remHi = 0; /* Clear high part of partial remainder */ remLo = a; /* Get argument into low part of partial remainder */ count = (23 + (24 >> 1)); /* Load loop counter */ do { remHi = (remHi << 2) | (remLo >> 30); remLo <<= 2; /* get 2 bits of arg */ root <<= 1; /* Get ready for the next bit in the root */ testDiv = (root << 1) + 1; /* Test radical */ if (remHi >= testDiv) { remHi -= testDiv; root++; } } while (count-- != 0); return (root); } static inline unsigned int eina_f8p24_fracc_get(Eina_F8p24 v) { return (v & 0xffffff); } #endif eina-1.7.10/src/include/eina_list.h0000664000175000017500000016152312175475327014016 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler, Vincent Torri, Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_LIST_H_ #define EINA_LIST_H_ #include #include "eina_config.h" #include "eina_types.h" #include "eina_iterator.h" #include "eina_accessor.h" #include "eina_magic.h" /** * @page eina_list_01_example_page Adding elements to Eina_List * @dontinclude eina_list_01.c * * Creating an @ref Eina_List and adding elements to it is very easy and can be * understood from an example: * First thing is always to include Eina.h, for this example we also * include stdio.h so we can use printf. * @skip #include * @until Eina.h * * Just some boilerplate code, declaring some variable and initializing eina. * @until eina_init * Here we add a sequence of elements to our list. By using append we add * elements to the end of the list, so the list will look like this:@n * @htmlonly * * Full-size * @endhtmlonly * @image rtf eina_list_example_01_a.png * @image latex eina_list_example_01_a.eps width=\textwidth * @until roslin * There are a couple of interesting things happening here, first is that we are * passing a NULL pointer to the first @ref eina_list_append() call, when this * is done a list is created. The other @b very important detail to notice is * that the return value is attributed to the @a list variable, this needs to * be done every time we use a a function that alters the contents of the list. * * Now that we have a list with some elements in it we can look at it's contents. * @until printf * * There are many ways of accessing elements in the list, including by it's * index: * @until nth * @note It should be noted that the index starts at 0. * * @ref eina_list_append() is not the only way to add elements to a a list. A * common requirement is to add an element in a specific position this can be * accomplished using @ref eina_list_append_relative() and * @ref eina_list_append_relative_list(): * @until zarek * First @a "cain" is added after the second element(remember that indexes are * 0 based) and then we add @a "zarek" after @a "cain". * * @ref Eina_List also has prepend analogs to append functions we have used so * far: * @until lampkin * With this additions our list now looks like this:@n * @htmlonly * * Full-size * @endhtmlonly * @image rtf eina_list_example_01_b.png * @image latex eina_list_example_01_b.eps width=\textwidth * * Once done using the list it needs to be freed, and since we are done with * eina that also need to be shutdown: * @until } * * The full source code can be found on the examples folder * on the @ref eina_list_01_c "eina_list_01.c" file. */ /** * @page eina_list_01_c Adding elements to Eina_List example * * @include eina_list_01.c * @example eina_list_01.c */ /** * @page eina_list_02_example_page Sorting Eina_List elements * @dontinclude eina_list_02.c * * If you don't know how to create lists see * @ref eina_list_01_example_page. * * @skip #include * @until boomer * This is the code we have already seen to create a list. Now if we need to * search the list we can do it like this: * @until return * * However if searching the list multiple times it probably is better to sort * the list since the sorted_search functions are much faster: * @until return * * Once the list is sorted it's not a good idea to use append/prepend functions * since that would add the element in the wrong place, instead elements should * be added with @ref eina_list_sorted_insert(): * @until sorted_insert * * A noteworthy use case is adding an element to a list only if it doesn't exist * already, this can accomplished by searching for the element that is closest * to what is being added, and if that doesn't match add: * @until append * @note @ref eina_list_search_sorted_near_list() will tell you not only the * nearest node to what was searched for but how it compares to your term, this * way it is easy to know if you have to add before or after that node. * * It is sometimes useful to get a portion of the list as another list, here we * take every element that comes after "boomer" and split it into "other_list": * @until split_list * * It is also possible to add entire lists of elements using * @ref eina_list_sorted_merge(): * @until sorted_merge * * And as always release memory and shutdown eina before ending: * @until } * * The full source code can be found on the examples folder * on the @ref eina_list_02_c "eina_list_02.c" file. */ /** * @page eina_list_02_c Sorting Eina_List elements example * * @include eina_list_02.c * @example eina_list_02.c */ /** * @page eina_list_03_example_page Reordering Eina_List elements * @dontinclude eina_list_03.c * * If you don't know how to create lists see * @ref eina_list_01_example_page. * * We start out with code that should be familiar by now: * @skip #include * @until gemenon * * You can move elements around in a list using @ref eina_list_move() or using * @ref eina_list_promote_list() and @ref eina_list_demote_list() which move a * list node to the head and end of the list respectevely: * @until demote * * Removing elements from a list can be done with ease: * @until sagitarius * * To replace an element in the list it is not necessary to remove it and then * add with the new value, it is possible to just change the value of a node: * @until aquarius * * We will now take a peek to see if the list still has the right number of * elements: * @until printf * * Now that the list is in alphabetical order let's create a copy of it in * reverse order and print every element to see if worked as expected: * @until iterator_free * @note Always remember to free your iterators when done using them. * * And as always release memory and shutdown eina before ending: * @until } * * The full source code can be found on the examples folder * on the @ref eina_list_03_c "eina_list_03.c" file. */ /** * @page eina_list_03_c Reordering Eina_List elements example * * @include eina_list_03.c * @example eina_list_03.c */ /** * @page eina_list_04_example_page Eina_List and memory allocation * @dontinclude eina_list_04.c * * If you don't know how to create lists see * @ref eina_list_01_example_page. In this example we also use * @ref Eina_Stringshare_Group, however it should be possible to understand the code * regardless of previous knowledge about it. * * Here we have the usual list creation code with a twist, now we are using as * data for the list memory that has to be freed later on. * @skip #include * @until Sharon * * This time we are going to iterate over our list in a different way: * @until printf * * And now we are going to iterate over the list backwards: * @until printf * * And now we need to free up the memory allocated during creation of the list: * @until stringshare_del * @note We don't need to use eina_list_free() since @ref EINA_LIST_FREE takes * care of that. * * And shut everything down: * @until } * * The full source code can be found on the examples folder * on the @ref eina_list_04_c "eina_list_04.c" file. */ /** * @page eina_list_04_c Eina_List and memory allocation example * * @include eina_list_04.c * @example eina_list_04.c */ /** * @addtogroup Eina_List_Group List * * @brief These functions provide double linked list management. * * Eina_List is a doubly linked list. It can store data of any type in the * form of void pointers. It has convenience functions to do all the common * operations which means it should rarely if ever be necessary to directly * access the struct's fields. Nevertheless it can be useful to understand the * inner workings of the data structure being used. * * @ref Eina_List nodes keep references to the previous node, the next node, its * data and to an accounting structure. * * @htmlonly * * Full-size * @endhtmlonly * @image rtf eina_list.png * @image latex eina_list.eps width=5cm * * @ref Eina_List_Accounting is used to improve the performance of some * functions. It is private and should not be modified. It contains a * reference to the end of the list and the number of elements in the list. * * @note Every function that modifies the contents of the list returns a pointer * to the head of the list and it is essential that this be pointer be used in * any future references to the list. * * Most functions have two versions that have the same effect but operate on * different arguments, the @a plain functions operate over data(eg.: * @ref eina_list_append_relative, @ref eina_list_remove, * @ref eina_list_data_find), the @a list versions of these functions operate * on @ref Eina_List nodes. * * @warning You must @b always use the pointer to the first element of the list * as the list! * @warning You must @b never use a pointer to an element in the middle of the * list as the list! * * Here are some examples of @ref Eina_List usage: * @li @ref eina_list_01_example_page * @li @ref eina_list_02_example_page * @li @ref eina_list_03_example_page * @li @ref eina_list_04_example_page */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @addtogroup Eina_Containers_Group Containers * * @{ */ /** * @defgroup Eina_List_Group List * * @{ */ /** * @typedef Eina_List * Type for a generic double linked list. */ typedef struct _Eina_List Eina_List; /** * @typedef Eina_List_Accounting * Cache used to store the last element of a list and the number of * elements, for fast access. */ typedef struct _Eina_List_Accounting Eina_List_Accounting; /** * @struct _Eina_List * Type for a generic double linked list. */ struct _Eina_List { void *data; /**< Pointer to list element payload */ Eina_List *next; /**< Next member in the list */ Eina_List *prev; /**< Previous member in the list */ Eina_List_Accounting *accounting; /**< Private list accounting info - don't touch */ EINA_MAGIC }; /** * @struct _Eina_List_Accounting * Cache used to store the last element of a list and the number of * elements, for fast access. It is for private used and must not be * touched. */ struct _Eina_List_Accounting { Eina_List *last; /**< Pointer to the last element of the list - don't touch */ unsigned int count; /**< Number of elements of the list - don't touch */ EINA_MAGIC }; /** * @brief Append the given data to the given linked list. * * @param list The given list. * @param data The data to append. * @return A list pointer. * * This function appends @p data to @p list. If @p list is @c NULL, a * new list is returned. On success, a new list pointer that should be * used in place of the one given to this function is * returned. Otherwise, the old pointer is returned. * * The following example code demonstrates how to ensure that the * given data has been successfully appended. * * @code * Eina_List *list = NULL; * extern void *my_data; * * list = eina_list_append(list, my_data); * if (eina_error_get()) * { * fprintf(stderr, "ERROR: Memory is low. List allocation failed.\n"); * exit(-1); * } * @endcode * * @warning @p list must be a pointer to the first element of the list(or NULL). */ EAPI Eina_List *eina_list_append(Eina_List *list, const void *data) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * @brief Prepends the given data to the given linked list. * * @param list The given list. * @param data The data to prepend. * @return A list pointer. * * This function prepends @p data to @p list. If @p list is @c NULL, a * new list is returned. On success, a new list pointer that should be * used in place of the one given to this function is * returned. Otherwise, the old pointer is returned. * * The following example code demonstrates how to ensure that the * given data has been successfully prepended. * * Example: * @code * Eina_List *list = NULL; * extern void *my_data; * * list = eina_list_prepend(list, my_data); * if (eina_error_get()) * { * fprintf(stderr, "ERROR: Memory is low. List allocation failed.\n"); * exit(-1); * } * @endcode * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_prepend(Eina_List *list, const void *data) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * @brief Insert the given data into the given linked list after the specified data. * * @param list The given linked list. * @param data The data to insert. * @param relative The data to insert after. * @return A list pointer. * * This function inserts @p data to @p list after @p relative. If * @p relative is not in the list, @p data is appended to the end of * the list. If @p list is @c NULL, a new list is returned. If there * are multiple instances of @p relative in the list, @p data is * inserted after the first instance.On success, a new list pointer * that should be used in place of the one given to this function is * returned. Otherwise, the old pointer is returned. * * The following example code demonstrates how to ensure that the * given data has been successfully inserted. * * @code * Eina_List *list = NULL; * extern void *my_data; * extern void *relative_member; * * list = eina_list_append(list, relative_member); * if (eina_error_get()) * { * fprintf(stderr, "ERROR: Memory is low. List allocation failed.\n"); * exit(-1); * } * list = eina_list_append_relative(list, my_data, relative_member); * if (eina_error_get()) * { * fprintf(stderr, "ERROR: Memory is low. List allocation failed.\n"); * exit(-1); * } * @endcode * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_append_relative(Eina_List *list, const void *data, const void *relative) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * @brief Append a list node to a linked list after the specified member * * @param list The given linked list. * @param data The data to insert. * @param relative The list node to insert after. * @return A list pointer. * * This function inserts @p data to @p list after the list node * @p relative. If @p list or @p relative are @c NULL, @p data is just * appended to @p list using eina_list_append(). If @p list is * @c NULL, a new list is returned. If there are multiple instances * of @p relative in the list, @p data is inserted after the first * instance. On success, a new list pointer that should be used in * place of the one given to this function is returned. Otherwise, the * old pointer is returned. * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_append_relative_list(Eina_List *list, const void *data, Eina_List *relative) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * @brief Prepend a data pointer to a linked list before the specified member * * @param list The given linked list. * @param data The data to insert. * @param relative The data to insert before. * @return A list pointer. * * This function inserts @p data to @p list before @p relative. If * @p relative is not in the list, @p data is prepended to the list * with eina_list_prepend(). If @p list is @c NULL, a new list is * returned. If there are multiple instances of @p relative in the * list, @p data is inserted before the first instance. On success, a * new list pointer that should be used in place of the one given to * this function is returned. Otherwise, the old pointer is returned. * * The following code example demonstrates how to ensure that the * given data has been successfully inserted. * * @code * Eina_List *list = NULL; * extern void *my_data; * extern void *relative_member; * * list = eina_list_append(list, relative_member); * if (eina_error_get_error()) * { * fprintf(stderr, "ERROR: Memory is low. List allocation failed.\n"); * exit(-1); * } * list = eina_list_prepend_relative(list, my_data, relative_member); * if (eina_error_get()) * { * fprintf(stderr, "ERROR: Memory is low. List allocation failed.\n"); * exit(-1); * } * @endcode * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_prepend_relative(Eina_List *list, const void *data, const void *relative) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * @brief Prepend a list node to a linked list before the specified member * * @param list The given linked list. * @param data The data to insert. * @param relative The list node to insert before. * @return A list pointer. * * This function inserts @p data to @p list before the list node * @p relative. If @p list or @p relative are @c NULL, @p data is just * prepended to @p list using eina_list_prepend(). If @p list is * @c NULL, a new list is returned. If there are multiple instances * of @p relative in the list, @p data is inserted before the first * instance. On success, a new list pointer that should be used in * place of the one given to this function is returned. Otherwise, the * old pointer is returned. * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_prepend_relative_list(Eina_List *list, const void *data, Eina_List *relative) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * @brief Insert a new node into a sorted list. * * @param list The given linked list, @b must be sorted. * @param func The function called for the sort. * @param data The data to insert sorted. * @return A list pointer. * * This function inserts values into a linked list assuming it was * sorted and the result will be sorted. If @p list is @c NULLL, a new * list is returned. On success, a new list pointer that should be * used in place of the one given to this function is * returned. Otherwise, the old pointer is returned. See eina_error_get(). * * @note O(log2(n)) comparisons (calls to @p func) average/worst case * performance as it uses eina_list_search_sorted_near_list() and thus * is bounded to that. As said in eina_list_search_sorted_near_list(), * lists do not have O(1) access time, so walking to the correct node * can be costly, consider worst case to be almost O(n) pointer * dereference (list walk). * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_sorted_insert(Eina_List *list, Eina_Compare_Cb func, const void *data) EINA_ARG_NONNULL(2, 3) EINA_WARN_UNUSED_RESULT; /** * @brief Remove the first instance of the specified data from the given list. * * @param list The given list. * @param data The specified data. * @return A list pointer. * * This function removes the first instance of @p data from * @p list. If the specified data is not in the given list (this * includes the case where @p data is @c NULL), nothing is done and the * specified @p list returned. If @p list is @c NULL, @c NULL is returned, * otherwise a new list pointer that should be used in place of the one * passed to this function. * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_remove(Eina_List *list, const void *data) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * @brief Remove the specified list node. * * @param list The given linked list. * @param remove_list The list node which is to be removed. * @return A list pointer. * * This function removes the list node @p remove_list from @p list and * frees the list node structure @p remove_list. If @p list is * @c NULL, this function returns @c NULL. If @p remove_list is * @c NULL, it returns @p list, otherwise, a new list pointer that * should be used in place of the one passed to this function. * * The following code gives an example (notice we use EINA_LIST_FOREACH * instead of EINA_LIST_FOREACH_SAFE because we stop the loop after * removing the current node). * * @code * extern Eina_List *list; * Eina_List *l; * extern void *my_data; * void *data * * EINA_LIST_FOREACH(list, l, data) * { * if (data == my_data) * { * list = eina_list_remove_list(list, l); * break; * } * } * @endcode * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_remove_list(Eina_List *list, Eina_List *remove_list) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * @brief Move the specified data to the head of the list. * * @param list The list handle to move the data. * @param move_list The list node to move. * @return A new list handle to replace the old one * * This function move @p move_list to the front of @p list. If list is * @c NULL, @c NULL is returned. If @p move_list is @c NULL, * @p list is returned. Otherwise, a new list pointer that should be * used in place of the one passed to this function. * * Example: * @code * extern Eina_List *list; * Eina_List *l; * extern void *my_data; * void *data; * * EINA_LIST_FOREACH(list, l, data) * { * if (data == my_data) * { * list = eina_list_promote_list(list, l); * break; * } * } * @endcode * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_promote_list(Eina_List *list, Eina_List *move_list) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * @brief Move the specified data to the tail of the list. * * @param list The list handle to move the data. * @param move_list The list node to move. * @return A new list handle to replace the old one * * This function move @p move_list to the back of @p list. If list is * @c NULL, @c NULL is returned. If @p move_list is @c NULL, * @p list is returned. Otherwise, a new list pointer that should be * used in place of the one passed to this function. * * Example: * @code * extern Eina_List *list; * Eina_List *l; * extern void *my_data; * void *data; * * EINA_LIST_FOREACH(list, l, data) * { * if (data == my_data) * { * list = eina_list_demote_list(list, l); * break; * } * } * @endcode * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_demote_list(Eina_List *list, Eina_List *move_list); /** * @brief Find a member of a list and return the member. * * @param list The list to search for a data. * @param data The data pointer to find in the list. * @return The found member data pointer if found, @c NULL otherwise. * * This function searches in @p list from beginning to end for the * first member whose data pointer is @p data. If it is found, @p data * will be returned, otherwise @c NULL will be returned. * * Example: * @code * extern Eina_List *list; * extern void *my_data; * * if (eina_list_data_find(list, my_data) == my_data) * { * printf("Found member %p\n", my_data); * } * @endcode * * @warning @p list must be a pointer to the first element of the list. */ EAPI void *eina_list_data_find(const Eina_List *list, const void *data) EINA_PURE EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * @brief Find a member of a list and return the list node containing that member. * * @param list The list to search for data. * @param data The data pointer to find in the list. * @return The found members list node on success, @c NULL otherwise. * * This function searches in @p list from beginning to end for the * first member whose data pointer is @p data. If it is found, the * list node containing the specified member is returned, otherwise * @c NULL is returned. * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_data_find_list(const Eina_List *list, const void *data) EINA_PURE EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * @brief Move a data pointer from one list to another * * @param to The list to move the data to * @param from The list to move from * @param data The data to move * @return #EINA_TRUE on success, else #EINA_FALSE * * This function is a shortcut for doing the following: * to = eina_list_append(to, data); * from = eina_list_remove(from, data); * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_Bool eina_list_move(Eina_List **to, Eina_List **from, void *data); /** * @brief Move a list node from one list to another * * @param to The list to move the data to * @param from The list to move from * @param data The list node containing the data to move * @return #EINA_TRUE on success, else #EINA_FALSE * * This function is a shortcut for doing the following: * to = eina_list_append(to, data->data); * from = eina_list_remove_list(from, data); * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_Bool eina_list_move_list(Eina_List **to, Eina_List **from, Eina_List *data); /** * @brief Free an entire list and all the nodes, ignoring the data contained. * @param list The list to free * @return A @c NULL pointer * * This function frees all the nodes of @p list. It does not free the * data of the nodes. To free them, use #EINA_LIST_FREE. */ EAPI Eina_List *eina_list_free(Eina_List *list); /** * @brief Get the nth member's data pointer in a list. * * @param list The list to get the specified member number from. * @param n The number of the element (0 being the first). * @return The data pointer stored in the specified element. * * This function returns the data pointer of element number @p n, in * the @p list. The first element in the array is element number 0. If * the element number @p n does not exist, @c NULL is * returned. Otherwise, the data of the found element is returned. * * @note Worst case is O(n). * * @warning @p list must be a pointer to the first element of the list. */ EAPI void *eina_list_nth(const Eina_List *list, unsigned int n) EINA_PURE EINA_WARN_UNUSED_RESULT; /** * @brief Get the nth member's list node in a list. * * @param list The list to get the specfied member number from. * @param n The number of the element (0 being the first). * @return The list node stored in the numbered element. * * This function returns the list node of element number @p n, in * @p list. The first element in the array is element number 0. If the * element number @p n does not exist or @p list is @c NULL or @p n is * greater than the count of elements in @p list minus 1, @c NULL is * returned. Otherwise the list node stored in the numbered element is * returned. * * @note Worst case is O(n). * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_nth_list(const Eina_List *list, unsigned int n) EINA_PURE EINA_WARN_UNUSED_RESULT; /** * @brief Reverse all the elements in the list. * * @param list The list to reverse. * @return The list head after it has been reversed. * * This function reverses the order of all elements in @p list, so the * last member is now first, and so on. If @p list is @c NULL, this * functon returns @c NULL. * * @note @b in-place: this will change the given list, so you should * now point to the new list head that is returned by this function. * * @warning @p list must be a pointer to the first element of the list. * * @see eina_list_reverse_clone() * @see eina_list_iterator_reversed_new() */ EAPI Eina_List *eina_list_reverse(Eina_List *list) EINA_WARN_UNUSED_RESULT; /** * @brief Clone (copy) all the elements in the list in reverse order. * * @param list The list to reverse. * @return The new list that has been reversed. * * This function reverses the order of all elements in @p list, so the * last member is now first, and so on. If @p list is @c NULL, this * functon returns @c NULL. This returns a copy of the given list. * * @note @b copy: this will copy the list and you should then * eina_list_free() when it is not required anymore. * * @warning @p list must be a pointer to the first element of the list. * * @see eina_list_reverse() * @see eina_list_clone() */ EAPI Eina_List *eina_list_reverse_clone(const Eina_List *list) EINA_WARN_UNUSED_RESULT; /** * @brief Clone (copy) all the elements in the list in exactly same order. * * @param list The list to clone. * @return The new list that has been cloned. * * This function clone in order of all elements in @p list. If @p list * is @c NULL, this functon returns @c NULL. This returns a copy of * the given list. * * @note @b copy: this will copy the list and you should then * eina_list_free() when it is not required anymore. * * @warning @p list must be a pointer to the first element of the list. * * @see eina_list_reverse_clone() */ EAPI Eina_List *eina_list_clone(const Eina_List *list) EINA_WARN_UNUSED_RESULT; /** * @brief Sort a list according to the ordering func will return. * * @param list The list handle to sort. * @param limit The maximum number of list elements to sort. * @param func A function pointer that can handle comparing the list data * nodes. * @return the new head of list. * * This function sorts @p list. @p size if the number of the first * element to sort. If @p limit is 0 or greater than the number of * elements in @p list, all the elements are sorted. @p func is used to * compare two elements of @p list. If @p list or @p func are @c NULL, * this function returns @c NULL. * * @note @b in-place: this will change the given list, so you should * now point to the new list head that is returned by this function. * * @note Worst case is O(n * log2(n)) comparisons (calls to func()). * That means that for 1,000,000 list sort will do 20,000,000 comparisons. * * Example: * @code * int * sort_cb(const void *d1, const void *d2) * { * const char *txt = d1; * const char *txt2 = d2; * * if(!txt) return(1); * if(!txt2) return(-1); * * return(strcmp(txt, txt2)); * } * extern Eina_List *list; * * list = eina_list_sort(list, eina_list_count(list), sort_cb); * @endcode * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_sort(Eina_List *list, unsigned int limit, Eina_Compare_Cb func) EINA_ARG_NONNULL(3) EINA_WARN_UNUSED_RESULT; /** * @brief Merge two list. * * @param left Head list to merge. * @param right Tail list to merge. * @return A new merged list. * * This function puts right at the end of left and returns the head. * * Both left and right do not exist anymore after the merge. * * @note merge cost is O(n), being @b n the size of the smallest * list. This is due the need to fix accounting of that segment, * making count and last access O(1). * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_merge(Eina_List *left, Eina_List *right) EINA_WARN_UNUSED_RESULT; /** * @brief Merge two sorted list according to the ordering func will return. * * @param left First list to merge. * @param right Second list to merge. * @param func A function pointer that can handle comparing the list data * nodes. * @return A new sorted list. * * This function compares the head of @p left and @p right, and choose the * smallest one to be head of the returned list. It will continue this process * for all entry of both list. * * Both left and right lists are not vailid anymore after the merge and should * not be used. If @p func is @c NULL, it will return @c NULL. * * Example: * @code * int * sort_cb(void *d1, void *d2) * { * const char *txt = NULL; * const char *txt2 = NULL; * * if(!d1) return(1); * if(!d2) return(-1); * * return(strcmp((const char*)d1, (const char*)d2)); * } * extern Eina_List *sorted1; * extern Eina_List *sorted2; * * list = eina_list_sorted_merge(sorted1, sorted2, sort_cb); * @endcode * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_sorted_merge(Eina_List *left, Eina_List *right, Eina_Compare_Cb func) EINA_ARG_NONNULL(3) EINA_WARN_UNUSED_RESULT; /** * @brief Split a list into 2 lists. * * @param list List to split. * @param relative The list will be split after @p relative. * @param right The head of the new right list. * @return The new left list * * This function splits @p list into two lists ( left and right ) after the node @p relative. @p Relative * will become the last node of the left list. If @p list or @p right are @c NULL list is returns. * If @p relative is NULL right is set to @p list and @c NULL is returns. * If @p relative is the last node of @p list list is returns and @p right is set to @c NULL. * * list does not exist anymore after the split. * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_List *eina_list_split_list(Eina_List *list, Eina_List *relative, Eina_List **right) EINA_WARN_UNUSED_RESULT; /** * @brief Returns node nearest to data is in the sorted list. * * @param list The list to search for data, @b must be sorted. * @param func A function pointer that can handle comparing the list data nodes. * @param data reference value to search. * @param result_cmp if provided returns the result of * func(node->data, data) node being the last (returned) node. If node * was found (exact match), then it is 0. If returned node is smaller * than requested data, it is less than 0 and if it's bigger it's * greater than 0. It is the last value returned by func(). * @return the nearest node, @c NULL if not found. * * This function searches for a node containing @p data as it's data in @p list, * if such a node exists it will be returned and @p result_cmp will be @p 0. If * the data of no node in @p list is equal to @p data, the node with the nearest * value to that will be returned and @p result_cmp will be the return value of * @p func with @p data and the returned node's data as arguments. * * This function is useful for inserting an element in the list only in case it * isn't already present in the list, the naive way of doing this would be: * @code * void *ptr = eina_list_data_find(list, "my data"); * if (!ptr) * eina_list_sorted_insert(list, "my data"); * @endcode * * However this has the downside of walking through the list twice, once to * check if the data is already present and another to insert the element in the * corret position. This can be done more eficiently: * @code * int cmp_result; * l = eina_list_search_sorted_near_list(list, cmp_func, "my data", * &cmp_result); * if (cmp_result > 0) * list = eina_list_prepend_relative_list(list, "my data", l); * else if (cmp_result < 0) * list = eina_list_append_relative_list(list, "my data", l); * @endcode * * If @a cmp_result is 0 the element is already in the list and we need not * insert it, if @a cmp_result is greater than zero @a "my @a data" needs to * come after @a l(the nearest node present), if less than zero before. * * @note O(log2(n)) average/worst case performance, for 1,000,000 * elements it will do a maximum of 20 comparisons. This is much * faster than the 1,000,000 comparisons made naively walking the list * from head to tail, so depending on the number of searches and * insertions, it may be worth to eina_list_sort() the list and do the * searches later. As lists do not have O(1) access time, walking to * the correct node can be costly, consider worst case to be almost * O(n) pointer dereference (list walk). * * @warning @p list must be a pointer to the first element of the list. * * @see eina_list_search_sorted_list() * @see eina_list_sort() * @see eina_list_sorted_merge() */ EAPI Eina_List *eina_list_search_sorted_near_list(const Eina_List *list, Eina_Compare_Cb func, const void *data, int *result_cmp); /** * @brief Returns node if data is in the sorted list. * * @param list The list to search for data, @b must be sorted. * @param func A function pointer that can handle comparing the list data nodes. * @param data reference value to search. * @return the node if func(node->data, data) == 0, @c NULL if not found. * * This can be used to check if some value is inside the list and get * the container node in this case. It should be used when list is * known to be sorted as it will do binary search for results. * * Example: imagine user gives a string, you check if it's in the list * before duplicating its contents. * * @note O(log2(n)) average/worst case performance, for 1,000,000 * elements it will do a maximum of 20 comparisons. This is much * faster than the 1,000,000 comparisons made by * eina_list_search_unsorted_list(), so depending on the number of * searches and insertions, it may be worth to eina_list_sort() the * list and do the searches later. As said in * eina_list_search_sorted_near_list(), lists do not have O(1) access * time, so walking to the correct node can be costly, consider worst * case to be almost O(n) pointer dereference (list walk). * * @warning @p list must be a pointer to the first element of the list. * * @see eina_list_search_sorted() * @see eina_list_sort() * @see eina_list_sorted_merge() * @see eina_list_search_unsorted_list() * @see eina_list_search_sorted_near_list() */ EAPI Eina_List *eina_list_search_sorted_list(const Eina_List *list, Eina_Compare_Cb func, const void *data); /** * @brief Returns node data if it is in the sorted list. * * @param list The list to search for data, @b must be sorted. * @param func A function pointer that can handle comparing the list data nodes. * @param data reference value to search. * @return the node value (@c node->data) if func(node->data, data) == 0, * NULL if not found. * * This can be used to check if some value is inside the list and get * the existing instance in this case. It should be used when list is * known to be sorted as it will do binary search for results. * * Example: imagine user gives a string, you check if it's in the list * before duplicating its contents. * * @note O(log2(n)) average/worst case performance, for 1,000,000 * elements it will do a maximum of 20 comparisons. This is much * faster than the 1,000,000 comparisons made by * eina_list_search_unsorted(), so depending on the number of * searches and insertions, it may be worth to eina_list_sort() the * list and do the searches later. As said in * eina_list_search_sorted_near_list(), lists do not have O(1) access * time, so walking to the correct node can be costly, consider worst * case to be almost O(n) pointer dereference (list walk). * * @warning @p list must be a pointer to the first element of the list. * * @see eina_list_search_sorted_list() * @see eina_list_sort() * @see eina_list_sorted_merge() * @see eina_list_search_unsorted_list() */ EAPI void *eina_list_search_sorted(const Eina_List *list, Eina_Compare_Cb func, const void *data); /** * @brief Returns node if data is in the unsorted list. * * @param list The list to search for data, may be unsorted. * @param func A function pointer that can handle comparing the list data nodes. * @param data reference value to search. * @return the node if func(node->data, data) == 0, @c NULL if not found. * * This can be used to check if some value is inside the list and get * the container node in this case. * * Example: imagine user gives a string, you check if it's in the list * before duplicating its contents. * * @note this is expensive and may walk the whole list, it's order-N, * that is for 1,000,000 elements list it may walk and compare * 1,000,000 nodes. * * @warning @p list must be a pointer to the first element of the list. * * @see eina_list_search_sorted_list() * @see eina_list_search_unsorted() */ EAPI Eina_List *eina_list_search_unsorted_list(const Eina_List *list, Eina_Compare_Cb func, const void *data); /** * @brief Returns node data if it is in the unsorted list. * * @param list The list to search for data, may be unsorted. * @param func A function pointer that can handle comparing the list data nodes. * @param data reference value to search. * @return the node value (@c node->data) if func(node->data, data) == 0, * @c NULL if not found. * * This can be used to check if some value is inside the list and get * the existing instance in this case. * * Example: imagine user gives a string, you check if it's in the list * before duplicating its contents. * * @note this is expensive and may walk the whole list, it's order-N, * that is for 1,000,000 elements list it may walk and compare * 1,000,000 nodes. * * @warning @p list must be a pointer to the first element of the list. * * @see eina_list_search_sorted() * @see eina_list_search_unsorted_list() */ EAPI void *eina_list_search_unsorted(const Eina_List *list, Eina_Compare_Cb func, const void *data); /** * @brief Get the last list node in the list. * * @param list The list to get the last list node from. * @return The last list node in the list. * * This function returns the last list node in the list @p list. If * @p list is @c NULL or empty, @c NULL is returned. * * This is a order-1 operation (it takes the same short time * regardless of the length of the list). * * @warning @p list must be a pointer to the first element of the list. */ static inline Eina_List *eina_list_last(const Eina_List *list) EINA_PURE EINA_WARN_UNUSED_RESULT; /** * @brief Get the next list node after the specified list node. * * @param list The list node to get the next list node from * @return The next list node on success, @c NULL otherwise. * * This function returns the next list node after the current one in * @p list. It is equivalent to list->next. If @p list is @c NULL or * if no next list node exists, it returns @c NULL. * * @warning @p list must be a pointer to the first element of the list. */ static inline Eina_List *eina_list_next(const Eina_List *list) EINA_PURE EINA_WARN_UNUSED_RESULT; /** * @brief Get the previous list node before the specified list node. * * @param list The list node to get the previous list node from. * @return The previous list node o success, @c NULL otherwise. * if no previous list node exists * * This function returns the previous list node before the current one * in @p list. It is equivalent to list->prev. If @p list is @c NULL or * if no previous list node exists, it returns @c NULL. * * @warning @p list must be a pointer to the first element of the list. */ static inline Eina_List *eina_list_prev(const Eina_List *list) EINA_PURE EINA_WARN_UNUSED_RESULT; /** * @brief Get the list node data member. * * @param list The list node to get the data member of. * @return The data member from the list node. * * This function returns the data member of the specified list node @p * list. It is equivalent to list->data. If @p list is @c NULL, this * function returns @c NULL. * * @warning @p list must be a pointer to the first element of the list. */ static inline void *eina_list_data_get(const Eina_List *list) EINA_PURE EINA_WARN_UNUSED_RESULT; /** * @brief Set the list node data member. * * @param list The list node to get the data member of. * @param data The data member to the list node. * @return The previous data value. * * This function set the data member @p data of the specified list node * @p list. It returns the previous data of the node. If @p list is * @c NULL, this function returns @c NULL. * * @warning @p list must be a pointer to the first element of the list. */ static inline void *eina_list_data_set(Eina_List *list, const void *data); /** * @brief Get the count of the number of items in a list. * * @param list The list whose count to return. * @return The number of members in the list. * * This function returns how many members @p list contains. If the * list is @c NULL, @c 0 is returned. * * NB: This is an order-1 operation and takes the same time regardless * of the length of the list. * * @warning @p list must be a pointer to the first element of the list. */ static inline unsigned int eina_list_count(const Eina_List *list) EINA_PURE; /** * @brief Returned a new iterator associated to a list. * * @param list The list. * @return A new iterator. * * This function returns a newly allocated iterator associated to @p * list. If @p list is @c NULL or the count member of @p list is less * or equal than 0, this function still returns a valid iterator that * will always return false on eina_iterator_next(), thus keeping API * sane. * * If the memory can not be allocated, NULL is returned * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator * is returned. * * @warning @p list must be a pointer to the first element of the list. * * @warning if the list structure changes then the iterator becomes * invalid! That is, if you add or remove nodes this iterator * behavior is undefined and your program may crash! */ EAPI Eina_Iterator *eina_list_iterator_new(const Eina_List *list) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Returned a new reversed iterator associated to a list. * * @param list The list. * @return A new iterator. * * This function returns a newly allocated iterator associated to @p * list. If @p list is @c NULL or the count member of @p list is less * or equal than 0, this function still returns a valid iterator that * will always return false on eina_iterator_next(), thus keeping API * sane. * * Unlike eina_list_iterator_new(), this will walk the list backwards. * * If the memory can not be allocated, NULL is returned * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator * is returned. * * @warning @p list must be a pointer to the first element of the list. * * @warning if the list structure changes then the iterator becomes * invalid! That is, if you add or remove nodes this iterator * behavior is undefined and your program may crash! */ EAPI Eina_Iterator *eina_list_iterator_reversed_new(const Eina_List *list) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Returned a new accessor associated to a list. * * @param list The list. * @return A new accessor. * * This function returns a newly allocated accessor associated to * @p list. If @p list is @c NULL or the count member of @p list is * less or equal than 0, this function returns @c NULL. If the memory can * not be allocated, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is * set. Otherwise, a valid accessor is returned. * * @warning @p list must be a pointer to the first element of the list. */ EAPI Eina_Accessor *eina_list_accessor_new(const Eina_List *list) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @def EINA_LIST_FOREACH * @brief Macro to iterate over a list. * * @param list The list to iterate over. * @param l A list that is used as an iterator and points to the current node. * @param data Current item's data. * * This macro iterates over @p list from the first element to * the last. @p data is the data related to the current element. * @p l is an #Eina_List used as the list iterator. * * The following diagram ilustrates this macro iterating over a list of four * elements("one", "two", "three" and "four"): * @htmlonly * * Full-size * @endhtmlonly * @image latex eina-list-foreach.eps width=\textwidth * * It can be used to free list data, as in the following example: * * @code * Eina_List *list; * Eina_List *l; * char *data; * * // list is already filled, * // its elements are just duplicated strings, * // EINA_LIST_FOREACH will be used to free those strings * * EINA_LIST_FOREACH(list, l, data) * free(data); * eina_list_free(list); * @endcode * * @note This is not the optimal way to release memory allocated to * a list, since it iterates over the list twice. * For an optimized algorithm, use EINA_LIST_FREE(). * * @warning @p list must be a pointer to the first element of the list. * * @warning Be careful when deleting list nodes. * If you remove the current node and continue iterating, * the code will fail because the macro will not be able * to get the next node. Notice that it's OK to remove any * node if you stop the loop after that. * For destructive operations such as this, consider * using EINA_LIST_FOREACH_SAFE(). */ #define EINA_LIST_FOREACH(list, l, data) \ for (l = list, \ data = eina_list_data_get(l); \ l; \ l = eina_list_next(l), \ data = eina_list_data_get(l)) /** * @def EINA_LIST_REVERSE_FOREACH * @brief Macro to iterate over a list in the reverse order. * * @param list The list to iterate over. * @param l A list that is used as an iterator and points to the current node. * @param data Current item's data. * * This macro works like EINA_LIST_FOREACH, but iterates from the * last element of a list to the first. * @p data is the data related to the current element, while @p l * is an #Eina_List that is used as the list iterator. * * The following diagram ilustrates this macro iterating over a list of four * elements("one", "two", "three" and "four"): * @htmlonly * * Full-size * @endhtmlonly * @image latex eina-list-reverse-foreach.eps width=\textwidth * * It can be used to free list data, as in the following example: * * @code * Eina_List *list; * Eina_List *l; * char *data; * * // list is already filled, * // its elements are just duplicated strings, * // EINA_LIST_REVERSE_FOREACH will be used to free those strings * * EINA_LIST_REVERSE_FOREACH(list, l, data) * free(data); * eina_list_free(list); * @endcode * * @note This is not the optimal way to release memory allocated to * a list, since it iterates over the list twice. * For an optimized algorithm, use EINA_LIST_FREE(). * * @warning @p list must be a pointer to the first element of the list. * * @warning Be careful when deleting list nodes. * If you remove the current node and continue iterating, * the code will fail because the macro will not be able * to get the next node. Notice that it's OK to remove any * node if you stop the loop after that. * For destructive operations such as this, consider * using EINA_LIST_REVERSE_FOREACH_SAFE(). */ #define EINA_LIST_REVERSE_FOREACH(list, l, data) \ for (l = eina_list_last(list), \ data = eina_list_data_get(l); \ l; \ l = eina_list_prev(l), \ data = eina_list_data_get(l)) /** * @def EINA_LIST_FOREACH_SAFE * @brief Macro to iterate over a list with support for node deletion. * * @param list The list to iterate over. * @param l A list that is used as an iterator and points to the current node. * @param l_next A list that is used as an iterator and points to the next node. * @param data Current item's data. * * This macro iterates over @p list from the first element to * the last. @p data is the data related to the current element. * @p l is an #Eina_List used as the list iterator. * * Since this macro stores a pointer to the next list node in @p l_next, * deleting the current node and continuing looping is safe. * * The following diagram ilustrates this macro iterating over a list of four * elements("one", "two", "three" and "four"): * @htmlonly * * Full-size * @endhtmlonly * @image latex eina-list-foreach-safe.eps width=\textwidth * * This macro can be used to free list nodes, as in the following example: * * @code * Eina_List *list; * Eina_List *l; * Eina_List *l_next; * char *data; * * // list is already filled, * // its elements are just duplicated strings, * // EINA_LIST_FOREACH_SAFE will be used to free elements that match "key". * * EINA_LIST_FOREACH_SAFE(list, l, l_next, data) * if (strcmp(data, "key") == 0) { * free(data); * list = eina_list_remove_list(list, l); * } * @endcode * * @warning @p list must be a pointer to the first element of the list. */ #define EINA_LIST_FOREACH_SAFE(list, l, l_next, data) \ for (l = list, \ l_next = eina_list_next(l), \ data = eina_list_data_get(l); \ l; \ l = l_next, \ l_next = eina_list_next(l), \ data = eina_list_data_get(l)) /** * @def EINA_LIST_REVERSE_FOREACH_SAFE * @brief Macro to iterate over a list in the reverse order with support * for deletion. * * @param list The list to iterate over. * @param l A list that is used as an iterator and points to the current node. * @param l_prev A list that is used as an iterator and points to the previous node. * @param data Current item's data. * * This macro works like EINA_LIST_FOREACH_SAFE, but iterates from the * last element of a list to the first. * @p data is the data related to the current element, while @p l * is an #Eina_List that is used as the list iterator. * * Since this macro stores a pointer to the previous list node in @p l_prev, * deleting the current node and continuing looping is safe. * * The following diagram ilustrates this macro iterating over a list of four * elements("one", "two", "three" and "four"): * @htmlonly * * Full-size * @endhtmlonly * @image latex eina-list-reverse-foreach-safe.eps width=\textwidth * * This macro can be used to free list nodes, as in the following example: * * @code * Eina_List *list; * Eina_List *l; * Eina_List *l_prev; * char *data; * * // list is already filled, * // its elements are just duplicated strings, * // EINA_LIST_REVERSE_FOREACH_SAFE will be used to free elements that match "key". * * EINA_LIST_REVERSE_FOREACH_SAFE(list, l, l_prev, data) * if (strcmp(data, "key") == 0) { * free(data); * list = eina_list_remove_list(list, l); * } * @endcode * * @warning @p list must be a pointer to the first element of the list. */ #define EINA_LIST_REVERSE_FOREACH_SAFE(list, l, l_prev, data) \ for (l = eina_list_last(list), \ l_prev = eina_list_prev(l), \ data = eina_list_data_get(l); \ l; \ l = l_prev, \ l_prev = eina_list_prev(l), \ data = eina_list_data_get(l)) /** * @def EINA_LIST_FREE * @brief Macro to remove each list node while having access to each node's data. * * @param list The list that will be cleared. * @param data Current node's data. * * This macro will call #eina_list_remove_list for each list node, and store * the data contained in the current node in @p data. * * The following diagram ilustrates this macro iterating over a list of four * elements("one", "two", "three" and "four"): * @htmlonly * * Full-size * @endhtmlonly * @image latex eina-list-free.eps width=\textwidth * * If you do not need to release node data, it is easier to call #eina_list_free(). * * @code * Eina_List *list; * char *data; * * // list is already filled, * // its elements are just duplicated strings, * * EINA_LIST_FREE(list, data) * free(data); * @endcode * * @warning @p list must be a pointer to the first element of the list. * * @see eina_list_free() */ #define EINA_LIST_FREE(list, data) \ for (data = eina_list_data_get(list); \ list; \ list = eina_list_remove_list(list, list), \ data = eina_list_data_get(list)) #include "eina_inline_list.x" /** * @} */ /** * @} */ /** * @} */ #endif /* EINA_LIST_H_ */ eina-1.7.10/src/include/eina_matrixsparse.h0000664000175000017500000003276312175475327015570 00000000000000/* EINA - EFL data type library * Copyright (C) 2009 Gustavo Sverzut Barbieri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_MATRIXSPARSE_H_ #define EINA_MATRIXSPARSE_H_ #include #include "eina_config.h" #include "eina_types.h" #include "eina_iterator.h" #include "eina_accessor.h" /** * @addtogroup Eina_Matrixsparse_Group Sparse Matrix * * @brief These functions provide matrix sparse management. * * For more information, you can look at the @ref tutorial_matrixsparse_page. */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @addtogroup Eina_Containers_Group Containers * * @{ */ /** * @defgroup Eina_Matrixsparse_Group Sparse Matrix * * @{ */ /** * @typedef Eina_Matrixsparse * Type for a generic sparse matrix. */ typedef struct _Eina_Matrixsparse Eina_Matrixsparse; /** * @typedef Eina_Matrixsparse_Row * Type for a generic sparse matrix row, opaque for users. */ typedef struct _Eina_Matrixsparse_Row Eina_Matrixsparse_Row; /** * @typedef Eina_Matrixsparse_Cell * Type for a generic sparse matrix cell, opaque for users. */ typedef struct _Eina_Matrixsparse_Cell Eina_Matrixsparse_Cell; /* constructors and destructors */ /** * @brief Create a new Sparse Matrix. * * @param rows number of rows in matrix. Operations with rows greater than this * value will fail. * @param cols number of columns in matrix. Operations with columns greater * than this value will fail. * @param free_func used to delete cell data contents, used by * eina_matrixsparse_free(), eina_matrixsparse_size_set(), * eina_matrixsparse_row_idx_clear(), * eina_matrixsparse_column_idx_clear(), * eina_matrixsparse_cell_idx_clear() and possible others. * @param user_data given to @a free_func as first parameter. * * @return Newly allocated matrix or @c NULL if allocation failed and eina_error * is set. */ EAPI Eina_Matrixsparse *eina_matrixsparse_new(unsigned long rows, unsigned long cols, void (*free_func)(void *user_data, void *cell_data), const void *user_data); /** * @brief Free resources allocated to Sparse Matrix. * * @param m The Sparse Matrix instance to free, must @b not be @c NULL. */ EAPI void eina_matrixsparse_free(Eina_Matrixsparse *m); /* size manipulation */ /** * @brief Get the current size of Sparse Matrix. * * The given parameters are guaranteed to be set if they're not @c NULL, * even if this function fails (ie: @a m is not a valid matrix instance). * * @param m the sparse matrix to operate on. * @param rows returns the number of rows, may be @c NULL. If @a m is invalid, * returned value is zero, otherwise it's a positive integer. * @param cols returns the number of columns, may be @c NULL. If @a m is * invalid, returned value is zero, otherwise it's a positive integer. */ EAPI void eina_matrixsparse_size_get(const Eina_Matrixsparse *m, unsigned long *rows, unsigned long *cols); /** * @brief Resize the Sparse Matrix. * * This will resize the sparse matrix, possibly freeing cells on rows * and columns that will cease to exist. * * @param m the sparse matrix to operate on. * @param rows the new number of rows, must be greater than zero. * @param cols the new number of columns, must be greater than zero. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * @warning cells, rows or columns are not reference counted and thus * after this call any reference might be invalid if instance were * freed. */ EAPI Eina_Bool eina_matrixsparse_size_set(Eina_Matrixsparse *m, unsigned long rows, unsigned long cols); /* data getting */ /** * Get the cell reference inside Sparse Matrix. * * @param m the sparse matrix to operate on. * @param row the new number of row to clear. * @param col the new number of column to clear. * @param cell pointer to return cell reference, if any exists. * * @return @c 1 on success, @c 0 on failure. It is considered success if did not * exist but index is inside matrix size, in this case @c *cell == NULL * * @see eina_matrixsparse_cell_data_get() * @see eina_matrixsparse_data_idx_get() */ EAPI Eina_Bool eina_matrixsparse_cell_idx_get(const Eina_Matrixsparse *m, unsigned long row, unsigned long col, Eina_Matrixsparse_Cell **cell); /** * Get data associated with given cell reference. * * @param cell given cell reference, must @b not be @c NULL. * * @return data associated with given cell. * * @see eina_matrixsparse_cell_idx_get() * @see eina_matrixsparse_data_idx_get() */ EAPI void *eina_matrixsparse_cell_data_get(const Eina_Matrixsparse_Cell *cell); /** * Get data associated with given cell given its indexes. * * @param m the sparse matrix to operate on. * @param row the new number of row to clear. * @param col the new number of column to clear. * * @return Data associated with given cell or @c NULL if nothing is associated. * * @see eina_matrixsparse_cell_idx_get() * @see eina_matrixsparse_cell_data_get() */ EAPI void *eina_matrixsparse_data_idx_get(const Eina_Matrixsparse *m, unsigned long row, unsigned long col); /** * Get position (indexes) of the given cell. * * @param cell the cell reference, must @b not be @c NULL. * @param row where to store cell row number, may be @c NULL. * @param col where to store cell column number, may be @c NULL. * * @return #EINA_TRUE on success, #EINA_FALSE otherwise (@c cell is @c NULL). */ EAPI Eina_Bool eina_matrixsparse_cell_position_get(const Eina_Matrixsparse_Cell *cell, unsigned long *row, unsigned long *col); /* data setting */ /** * Change cell reference value without freeing the possibly existing old value. * * @param cell the cell reference, must @b not be @c NULL. * @param data new data to set. * @param p_old returns the old value intact (not freed). * * @return #EINA_TRUE on success, #EINA_FALSE otherwise (@a cell is @c NULL). * * @see eina_matrixsparse_cell_data_set() * @see eina_matrixsparse_data_idx_replace() */ EAPI Eina_Bool eina_matrixsparse_cell_data_replace(Eina_Matrixsparse_Cell *cell, const void *data, void **p_old); /** * Change cell value freeing the possibly existing old value. * * In contrast to eina_matrixsparse_cell_data_replace(), this function will * call @c free_func() on existing value. * * @param cell the cell reference, must @b not be @c NULL. * @param data new data to set. * * @return #EINA_TRUE on success, #EINA_FALSE otherwise (@a cell is @c NULL). * * @see eina_matrixsparse_cell_data_replace() * @see eina_matrixsparse_data_idx_set() */ EAPI Eina_Bool eina_matrixsparse_cell_data_set(Eina_Matrixsparse_Cell *cell, const void *data); /** * Change cell value without freeing the possibly existing old value, using * indexes. * * @param m the sparse matrix, must @b not be @c NULL. * @param row the row number to set the value. * @param col the column number to set the value. * @param data new data to set. * @param p_old returns the old value intact (not freed). * * @return #EINA_TRUE on success, #EINA_FALSE otherwise (@a m is @c NULL, indexes are not valid). * * @see eina_matrixsparse_cell_data_replace() * @see eina_matrixsparse_data_idx_set() */ EAPI Eina_Bool eina_matrixsparse_data_idx_replace(Eina_Matrixsparse *m, unsigned long row, unsigned long col, const void *data, void **p_old); /** * Change cell value freeing the possibly existing old value, using * indexes. * * In contrast to eina_matrixsparse_data_idx_replace(), this function will * call @c free_func() on existing value. * * @param m the sparse matrix, must @b not be @c NULL. * @param row the row number to set the value. * @param col the column number to set the value. * @param data new data to set. * * @return #EINA_TRUE on success, #EINA_FALSE otherwise (@a m is @c NULL, indexes are not valid). * * @see eina_matrixsparse_cell_data_replace() */ EAPI Eina_Bool eina_matrixsparse_data_idx_set(Eina_Matrixsparse *m, unsigned long row, unsigned long col, const void *data); /* data deleting */ /** * Clear (erase all cells) of row given its index. * * Existing cells will be cleared with @c free_func() given to * eina_matrixsparse_new(). * * @param m the sparse matrix to operate on. * @param row the new number of row to clear. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. It is considered success if row * had no cells filled. Failure is asking for clear row outside * matrix size. * * @warning cells, rows or columns are not reference counted and thus * after this call any reference might be invalid if instance were * freed. */ EAPI Eina_Bool eina_matrixsparse_row_idx_clear(Eina_Matrixsparse *m, unsigned long row); /** * Clear (erase all cells) of column given its index. * * Existing cells will be cleared with @c free_func() given to * eina_matrixsparse_new(). * * @param m the sparse matrix to operate on. * @param col the new number of column to clear. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. It is considered success if column * had no cells filled. Failure is asking for clear column outside * matrix size. * * @warning cells, rows or columns are not reference counted and thus * after this call any reference might be invalid if instance were * freed. */ EAPI Eina_Bool eina_matrixsparse_column_idx_clear(Eina_Matrixsparse *m, unsigned long col); /** * Clear (erase) cell given its indexes. * * Existing cell will be cleared with @c free_func() given to * eina_matrixsparse_new(). * * @param m the sparse matrix to operate on. * @param row the new number of row to clear. * @param col the new number of column to clear. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. It is considered success if did not * exist but index is inside matrix size. * * @warning cells, rows or columns are not reference counted and thus * after this call any reference might be invalid if instance were * freed. * * @note This call might delete container column and row if this cell was the * last remainder. */ EAPI Eina_Bool eina_matrixsparse_cell_idx_clear(Eina_Matrixsparse *m, unsigned long row, unsigned long col); /** * Clear (erase) cell given its reference. * * @param cell the cell reference, must @b not be @c NULL. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * @warning cells, rows or columns are not reference counted and thus * after this call any reference might be invalid if instance were * freed. * * @note This call might delete container column and row if this cell was the * last remainder. */ EAPI Eina_Bool eina_matrixsparse_cell_clear(Eina_Matrixsparse_Cell *cell); /* iterators */ /** * Creates a new iterator over existing matrix cells. * * This is a cheap walk, it will just report existing cells and holes * in the sparse matrix will be ignored. That means the reported * indexes will not be sequential. * * The iterator data will be the cell reference, one may query current * position with eina_matrixsparse_cell_position_get() and cell value * with eina_matrixsparse_cell_data_get(). * * @param m The Sparse Matrix reference, must @b not be @c NULL. * @return A new iterator. * * @warning if the matrix structure changes then the iterator becomes * invalid! That is, if you add or remove cells this iterator * behavior is undefined and your program may crash! */ EAPI Eina_Iterator *eina_matrixsparse_iterator_new(const Eina_Matrixsparse *m); /** * Creates a new iterator over all matrix cells. * * Unlike eina_matrixsparse_iterator_new() this one will report all * matrix cells, even those that are still empty (holes). These will * be reported as dummy cells that contains no data. * * Be aware that iterating a big matrix (1000x1000) will call your * function that number of times (1000000 times in that case) even if * your matrix have no elements at all! * * The iterator data will be the cell reference, one may query current * position with eina_matrixsparse_cell_position_get() and cell value * with eina_matrixsparse_cell_data_get(). If cell is empty then the * reference will be a dummy/placeholder, thus setting value with * eina_matrixsparse_cell_data_set() will leave pointer unreferenced. * * @param m The Sparse Matrix reference, must @b not be @c NULL. * @return A new iterator. * * @warning if the matrix structure changes then the iterator becomes * invalid! That is, if you add or remove cells this iterator * behavior is undefined and your program may crash! */ EAPI Eina_Iterator *eina_matrixsparse_iterator_complete_new(const Eina_Matrixsparse *m); /** * @} */ /** * @} */ /** * @} */ #endif /* EINA_MATRIXSPARSE_H_ */ eina-1.7.10/src/include/eina_benchmark.h0000664000175000017500000003130312175475327014765 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_BENCHMARK_H_ #define EINA_BENCHMARK_H_ #include "eina_array.h" /** * @page tutorial_benchmark_page Benchmark Tutorial * * The Benchmark module allows you to write easily benchmarks * framework in a project for timing critical part and detect slow * parts of code. In addition it automatically creates data files of * these benchmark, as well as a gnuplot file which can display the * comparison curves of the benchmarks. * * @section tutorial_benchmark_basic_usage Basic Usage * * To create a basic benchmark, you have to follow these steps: * * @li Create a new benchmark * @li Write the functions that wraps the functions you want to * benchmark. * @li Register these wrappers functions. * @li Run the benchmark. * @li Free the memory. * * Here is a basic example of benchmark which creates two functions * that will be run. These functions just print a message. * * @code * #include * #include * * #include * * static * void work1(int request) * { * printf ("work1 in progress... Request: %d\n", request); * } * * static * void work2(int request) * { * printf ("work2 in progress... Request: %d\n", request); * } * * int main() * { * Eina_Benchmark *test; * Eina_Array *ea; * * if (!eina_init()) * return EXIT_FAILURE; * * test = eina_benchmark_new("test", "run"); * if (!test) * goto shutdown_eina; * * eina_benchmark_register(test, "work-1", EINA_BENCHMARK(work1), 200, 300, 10); * eina_benchmark_register(test, "work-2", EINA_BENCHMARK(work2), 100, 150, 5); * * ea = eina_benchmark_run(test); * * eina_benchmark_free(test); * eina_shutdown(); * * return EXIT_SUCCESS; * * shutdown_eina: * eina_shutdown(); * * return EXIT_FAILURE; * } * @endcode * * As "test", "run" are passed to eina_benchmark_new() and as the tests * "work-1" and "work-2" are registered, the data files * bench_test_run.work-1.data and bench_test_run.work-2.data will be * created after the eina_benchmark_run() call. They contain four * columns. The file bench_test_run.work-1.data contains for example: * * @code * # specimen experiment time starting time ending time * 200 23632 2852446 2876078 * 210 6924 2883046 2889970 * 220 6467 2895962 2902429 * 230 6508 2908271 2914779 * 240 6278 2920610 2926888 * 250 6342 2932830 2939172 * 260 6252 2944954 2951206 * 270 6463 2956978 2963441 * 280 6347 2969548 2975895 * 290 6457 2981702 2988159 * @endcode * * The first column (specimen) is the integer passed to the work1() * function when the test is run. The second column (experiment time) * is the time, in nanosecond, that work1() takes. The third and * fourth columnd are self-explicit. * * You can see that the integer passed work1() starts from 200 and * finishes at 290, with a step of 10. These values are computed withe * last 3 values passed to eina_benchmark_register(). See the document * of that function for the detailed behavior. * * The gnuplot file will be named bench_test_run.gnuplot. Just run: * * @code * gnuplot bench_test_run.gnuplot * @endcode * * to create the graphic of the comparison curves. The image file is * named output_test_run.png. * * @section tutorial_benchmark_advanced_usage More Advanced Usage * * In this section, several test will be created and run. The idea is * exactly the same than in the previous section, but with some basic * automatic way to run all the benchmarks. The following code * benchmarks some Eina converts functions, and some Eina containers * types: * * @code * #include * #include * #include * * #include * * static void bench_convert(Eina_Benchmark *bench); * static void bench_container(Eina_Benchmark *bench); * * typedef struct _Benchmark_Case Benchmark_Case; * * struct _Benchmark_Case * { * const char *bench_case; * void (*build)(Eina_Benchmark *bench); * }; * * static const Benchmark_Case benchmarks[] = { * { "Bench 1", bench_convert }, * { "Bench 2", bench_container }, * { NULL, NULL } * }; * * static * void convert1(int request) * { * char tmp[128]; * int i; * * srand(time(NULL)); * * for (i = 0; i < request; ++i) * eina_convert_itoa(rand(), tmp); * } * * static * void convert2(int request) * { * char tmp[128]; * int i; * * srand(time(NULL)); * * for (i = 0; i < request; ++i) * eina_convert_xtoa(rand(), tmp); * } * * static void * bench_convert(Eina_Benchmark *bench) * { * eina_benchmark_register(bench, "convert-1", EINA_BENCHMARK(convert1), 200, 400, 10); * eina_benchmark_register(bench, "convert-2", EINA_BENCHMARK(convert2), 200, 400, 10); * } * * static * void array(int request) * { * Eina_Array *array; * Eina_Array_Iterator it; * int *data; * int i; * * srand(time(NULL)); * * array = eina_array_new(64); * * for (i = 0; i < request; ++i) * { * data = (int *)malloc(sizeof(int)); * if (!data) continue; * *data = rand(); * eina_array_push(array, data); * } * * EINA_ARRAY_ITER_NEXT(array, i, data, it) * free(data); * * eina_array_free(array); * } * * static * void list(int request) * { * Eina_List *l = NULL; * int *data; * int i; * * srand(time(NULL)); * * for (i = 0; i < request; ++i) * { * data = (int *)malloc(sizeof(int)); * if (!data) continue; * *data = rand(); * l = eina_list_prepend(l, data); * } * * while (l) * { * free(eina_list_data_get(l)); * l = eina_list_remove_list(l, l); * } * } * * static void * bench_container(Eina_Benchmark *bench) * { * eina_benchmark_register(bench, "array", EINA_BENCHMARK(array), 200, 300, 10); * eina_benchmark_register(bench, "list", EINA_BENCHMARK(list), 200, 300, 10); * } * * int main() * { * Eina_Benchmark *test; * Eina_Array *ea; * unsigned int i; * * if (!eina_init()) * return EXIT_FAILURE; * * for (i = 0; benchmarks[i].bench_case != NULL; ++i) * { * test = eina_benchmark_new(benchmarks[i].bench_case, "Benchmark example"); * if (!test) * continue; * * benchmarks[i].build(test); * * ea = eina_benchmark_run(test); * * eina_benchmark_free(test); * } * * eina_shutdown(); * * return EXIT_SUCCESS; * } * @endcode * * gnuplot can be used to see how are performed the convert functions * together, as well as how are performed the containers. So it is now * easy to see that the hexadecimal convert function is faster than * the decimal one, and that arrays are faster than lists. * * You can improve all that by executing automatically gnuplot in your * program, or integrate the Eina benchmark framework in an autotooled * project. See that * page * for more informations. * */ /** * @addtogroup Eina_Benchmark_Group Benchmark * * These functions allow you to add benchmark framework in a project * for timing critical part and detect slow parts of code. It is used * in Eina to compare the time used by eina, glib, evas and ecore data * types. * * To use the benchmark module, Eina must be initialized with * eina_init() and later shut down with eina_shutdown(). A benchmark * is created with eina_benchmark_new() and freed with * eina_benchmark_free(). * * eina_benchmark_register() adds a test to a benchmark. That test can * be run a certain amount of times. Adding more than one test to be * executed allows the comparison between several parts of a program, * or different implementations. * * eina_benchmark_run() runs all the tests registered with * eina_benchmark_register(). The amount of time of each test is * written in a gnuplot file. * * For more information, you can look at the @ref tutorial_benchmark_page. */ /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @defgroup Eina_Benchmark_Group Benchmark * * @{ */ /** * @typedef Eina_Benchmark * Type for a benchmark. */ typedef struct _Eina_Benchmark Eina_Benchmark; /** * @typedef Eina_Benchmark_Specimens * Type for a test function to be called when running a benchmark. */ typedef void (*Eina_Benchmark_Specimens)(int request); /** * @def EINA_BENCHMARK * @brief cast to an #Eina_Benchmark_Specimens. * * @param function The function to cast. * * This macro casts @p function to Eina_Benchmark_Specimens. */ #define EINA_BENCHMARK(function) ((Eina_Benchmark_Specimens)function) /** * @brief Create a new array. * * @param name The name of the benchmark. * @param run The name of the run. * @return @c NULL on failure, non @c NULL otherwise. * * This function creates a new benchmark. @p name and @p run are used * to name the gnuplot file that eina_benchmark_run() will create. * * This function return a valid benchmark on success, or @c NULL if * memory allocation fails. In that case, the error is set * to #EINA_ERROR_OUT_OF_MEMORY. * * When the new module is not needed anymore, use * eina_benchmark_free() to free the allocated memory. */ EAPI Eina_Benchmark *eina_benchmark_new(const char *name, const char *run); /** * @brief Free a benchmark object. * * @param bench The benchmark to free. * * This function removes all the benchmark tests that have been * registered and frees @p bench. If @p bench is @c NULL, this * function returns immediately. */ EAPI void eina_benchmark_free(Eina_Benchmark *bench); /** * @brief Add a test to a benchmark. * * @param bench The benchmark. * @param name The name of the test. * @param bench_cb The test function to be called. * @param count_start The start data to be passed to @p bench_cb. * @param count_end The end data to be passed to @p bench_cb. * @param count_step The step data to be passed to @p bench_cb. * @return #EINA_FALSE on failure, #EINA_TRUE otherwise. * * This function adds the test named @p name to @p benchmark. @p * bench_cb is the function called when the test is executed. That * test can be executed a certain amount of time. @p count_start, @p count_end and * @p count_step define a loop with a step increment. The integer that is * increasing by @p count_step from @p count_start to @p count_end is passed to @p * bench_cb when eina_benchmark_run() is called. * * If @p bench is @c NULL, this function returns immediately. If the * allocation of the memory of the test to add fails, the error is set * to #EINA_ERROR_OUT_OF_MEMORY. This function returns #EINA_FALSE * on failure, #EINA_TRUE otherwise. */ EAPI Eina_Bool eina_benchmark_register(Eina_Benchmark *bench, const char *name, Eina_Benchmark_Specimens bench_cb, int count_start, int count_end, int count_step); /** * @brief Run the benchmark tests that have been registered. * * @param bench The benchmark. * @return The list of names of the test files. * * This function runs all the tests that as been registered with * eina_benchmark_register() and save the result in a gnuplot * file. The name of the file has the following format: * * @code * bench_[name]_[run]%s.gnuplot * @endcode * * where [name] and [run] are the values passed to * eina_benchmark_new(). * * Each registered test is executed and timed. The time is written to * the gnuplot file. The number of times each test is executed is * controlled by the parameters passed to eina_benchmark_register(). * * If @p bench is @c NULL, this functions returns @c NULL * immediately. Otherwise, it returns the list of the names of each * test. */ EAPI Eina_Array *eina_benchmark_run(Eina_Benchmark *bench); /** * @} */ /** * @} */ #endif /* EINA_BENCHMARK_H_ */ eina-1.7.10/src/include/eina_magic.h0000664000175000017500000002470212175475327014120 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_MAGIC_H_ #define EINA_MAGIC_H_ #include "eina_config.h" #include "eina_types.h" #include "eina_error.h" /** * @page eina_magic_example_01_page * @dontinclude eina_magic_01.c * * Whenever using Eina we must include it: * @skipline #include * * For this example we are going to define two classes, person and pilot, and * since every pilot is a person we use inheritance. To be type safe we are * going to add EINA_MAGIC to our classes: * @until struct _pilot pilot * @note The values of BASETYPE_MAGIC and SUBTYPE_MAGIC have no meaning, the * only important thing about them is that they be unique. * * Here we have a function to create a perso given a name, nothing too fancy: * @until } * * And now the counterpart, a function the free a person. * @until { * Before we start releasing resources we check that the pointer we were given * actually points to a person, and if not we will print an error message and * quit: * @until } * @note EINA_MAGIC_FAIL is a macro that make's it easy to print an appropriate * (and consistent) error message. * Now knowing that ptr is indeed of type person we prooced to set EINA_MAGIC to * EINA_MAGIC_NONE and free alocated memory: * @until } * @note Setting EINA_MAGIC to EINA_MAGIC_NONE is important to prevent the * struct from being used after freed. * * Now we have our function to create a pilot, this one is a little more complex * because we need to set EINA_MAGIC for the pilot and pilot->base, this is very * important so that checking the EINA_MAGIC of (person*)my_pilot will work: * @until } * * The function to free a pilot is not too different from the one that frees a * person: * @until } * @until } * * We also create functions to print a person or a pilot that check the type of * the pointers they receive: * @until } * @until } * * And on to our main function where we declare some variables and initialize * Eina: * @until eina_init * * For Eina to be able to provide more informative error messages we are going * to give names to our EINA_MAGIC types: * @until string_set * * Since our types won't live longer than the scope of the current function we * can set the name without eina making a copy of the string: * @until static_set * * Now we create a person, a pilot and print both as persons: * @until person * * * Now we try to print both as pilots, which will obvisouly not work since base * is not a pilot: * @until pilot(sub * * That's all folks: * @until } * * See full source @ref eina_magic_example_01_c "here". */ /** * @page eina_magic_example_01_c Eina_Magic * @include eina_magic_01.c * @example eina_magic_01.c */ /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @defgroup Eina_Magic_Group Magic * * @brief Eina_Magic provides run-time type-checking. * * C is a weak statically typed language, in other words, it will just check for * types during compile time and any cast will make the compiler believe the * type is correct. * * In real world code we often need to deal with casts, either explicit or * implicit by means of @c void*. We also need to resort to casts when doing * inheritance in C. * * Eina_Magic give us a way to do casts and still be certain of the type we are * opearting on. * * @note It should be noted that it is considered good practice to @b disable * Eina_Magic for production code. The reasoning is that any Eina_Magic errors * should have been caught during testing and therefore there is no reason to * incur the performance downside of Eina_Magic. * * An @ref eina_magic_example_01_page "example" should elucidate matters. * * @{ */ /** * An abstract type for a magic number. */ typedef unsigned int Eina_Magic; /** * @brief Return the string associated to the given magic identifier. * * @param magic The magic identifier. * @return The string associated to the identifier. * * This function returns the string associated to @p magic. Even if none are * found this function still returns non @c NULL, in this case an identifier * such as "(none)", "(undefined)" or "(unknown)". * * The following identifiers may be returned whenever magic is * invalid, with their meanings: * * - (none): no magic was registered exists at all. * - (undefined): magic was registered and found, but no string associated. * - (unknown): magic was not found in the registry. * * @warning The returned value must not be freed. */ EAPI const char *eina_magic_string_get(Eina_Magic magic) EINA_WARN_UNUSED_RESULT; /** * @brief Set the string associated to the given magic identifier. * * @param magic The magic identifier. * @param magic_name The string associated to the identifier, must not * be @c NULL. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets the string @p magic_name to @p magic. It is not * checked if number or string are already set, in which case you will end with * duplicates. Internally, eina will make a copy of @p magic_name. * * @see eina_magic_string_static_set() */ EAPI Eina_Bool eina_magic_string_set(Eina_Magic magic, const char *magic_name) EINA_ARG_NONNULL(2); /** * @brief Set the string associated to the given magic identifier. * * @param magic The magic identifier. * @param magic_name The string associated to the identifier, must not be * @c NULL. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets the string @p magic_name to @p magic. It is not checked if * number or string are already set, in which case you might end with * duplicates. Eina will @b not make a copy of @p magic_name, this means that * @p magic_name has to be a valid pointer for as long as @p magic is used. * * @see eina_magic_string_set() */ EAPI Eina_Bool eina_magic_string_static_set(Eina_Magic magic, const char *magic_name) EINA_ARG_NONNULL(2); /** * @def EINA_MAGIC_NONE * Random value for specifying that a structure using the magic * feature has already been freed. It is used by eina_magic_fail(). * * If the magic feature of Eina is disabled, #EINA_MAGIC_NONE is just * @c 0. */ #define EINA_MAGIC_NONE 0x1234fedc /** * @var EINA_ERROR_MAGIC_FAILED * Error identifier corresponding to magic check failure. */ EAPI extern Eina_Error EINA_ERROR_MAGIC_FAILED; #ifdef EINA_MAGIC_DEBUG /** * @def EINA_MAGIC * Declaration of a variable of type #Eina_Magic. To put in a structure * when one wants to use the magic feature of Eina with the functions * of that structure, like that: * * @code * struct Foo * { * int i; * * EINA_MAGIC * }; * @endcode * * If the magic feature of Eina is disabled, #EINA_MAGIC does nothing. */ #define EINA_MAGIC Eina_Magic __magic; /** * @def EINA_MAGIC_SET(d, m) * Set the magic number of @p d to @p m. @p d must be a valid pointer * to a structure holding an Eina magic number declaration. * Use #EINA_MAGIC to add such declaration. * * If the magic feature of Eina is disabled, #EINA_MAGIC_CHECK is just * the value @c 0. */ #define EINA_MAGIC_SET(d, m) (d)->__magic = (m) /** * @def EINA_MAGIC_CHECK(d, m) * Test if @p d is @c NULL or not, and if not @c NULL, if * @p d->__eina_magic is equal to @p m. @p d must be a structure that * holds an Eina magic number declaration. Use #EINA_MAGIC to add such * declaration. * * If the magic feature of Eina is disabled, #EINA_MAGIC_CHECK is just * the value @c 1. */ #define EINA_MAGIC_CHECK(d, m) ((d) && ((d)->__magic == (m))) /** * @def EINA_MAGIC_FAIL(d, m) * Call eina_magic_fail() with the parameters @p d, @p d->__magic, @p * m, __FILE__, __FUNCTION__ and __LINE__. @p d must be a structure that * holds an Eina magic number declaration. Use #EINA_MAGIC to add such * declaration. * * If the magic feature of Eina is disabled, #EINA_MAGIC_FAIL does * nothing. */ #define EINA_MAGIC_FAIL(d, m) \ eina_magic_fail((void *)(d), \ (d) ? (d)->__magic : 0, \ (m), \ __FILE__, \ __FUNCTION__, \ __LINE__); /** * @brief Display a message or abort if a magic check failed. * * @param d The checked data pointer. * @param m The magic identifer to check. * @param req_m The requested magic identifier to check. * @param file The file in which the magic check failed. * @param fnc The function in which the magic check failed. * @param line The line at which the magic check failed. * * @warning You should @b strongly consider using @ref EINA_MAGIC_FAIL(d, m) * instead. * * This function displays an error message if a magic check has * failed, using the following logic in the following order: * @li If @p d is @c NULL, a message warns about a @c NULL pointer. * @li Otherwise, if @p m is equal to #EINA_MAGIC_NONE, a message * warns about a handle that was already freed. * @li Otherwise, if @p m is equal to @p req_m, a message warns about * a handle that is of wrong type. * @li Otherwise, a message warns you about ab-using that function... * * If the environment variable EINA_LOG_ABORT is set, abort() is * called and the program stops. It is useful for debugging programs * with gdb. */ EAPI void eina_magic_fail(void *d, Eina_Magic m, Eina_Magic req_m, const char *file, const char *fnc, int line) EINA_ARG_NONNULL(4, 5); #else /** * @cond LOCAL */ #define EINA_MAGIC #define EINA_MAGIC_SET(d, m) ((void)0) #define EINA_MAGIC_CHECK(d, m) (1) #define EINA_MAGIC_FAIL(d, m) ((void)0) #define eina_magic_fail(d, m, req_m, file, fnx, line) ((void)0) /** * @endcond */ #endif /** * @} */ /** * @} */ #endif /* EINA_MAGIC_H_ */ eina-1.7.10/src/include/eina_inline_fp.x0000664000175000017500000000532712175475327015025 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * Copyright (C) 2009 Cedric BAIL * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLINE_FP_X_ # define EINA_INLINE_FP_X_ static inline Eina_F32p32 eina_f32p32_int_from(int32_t v) { return (Eina_F32p32)(v) << 32; } static inline int32_t eina_f32p32_int_to(Eina_F32p32 v) { return (int32_t)(v >> 32); } static inline Eina_F32p32 eina_f32p32_double_from(double v) { Eina_F32p32 r; r = (Eina_F32p32)(v * 4294967296.0 + (v < 0 ? -0.5 : 0.5)); return r; } static inline double eina_f32p32_double_to(Eina_F32p32 v) { double r; r = v / 4294967296.0; return r; } static inline Eina_F16p16 eina_f16p16_int_from(int32_t v) { return v << 16; } static inline int32_t eina_f16p16_int_to(Eina_F16p16 v) { return v >> 16; } static inline Eina_F16p16 eina_f16p16_float_from(float v) { Eina_F16p16 r; r = (Eina_F16p16)(v * 65536.0f + (v < 0 ? -0.5f : 0.5f)); return r; } static inline float eina_f16p16_float_to(Eina_F16p16 v) { float r; r = v / 65536.0f; return r; } static inline Eina_F8p24 eina_f8p24_int_from(int32_t v) { return v << 24; } static inline int32_t eina_f8p24_int_to(Eina_F8p24 v) { return v >> 24; } static inline Eina_F8p24 eina_f8p24_float_from(float v) { Eina_F8p24 r; r = (Eina_F8p24)(v * 16777216.0f + (v < 0 ? -0.5f : 0.5f)); return r; } static inline float eina_f8p24_float_to(Eina_F8p24 v) { float r; r = v / 16777216.0f; return r; } static inline Eina_F32p32 eina_f16p16_to_f32p32(Eina_F16p16 a) { return ((Eina_F32p32) a) << 16; } static inline Eina_F32p32 eina_f8p24_to_f32p32(Eina_F8p24 a) { return ((Eina_F32p32) a) << 8; } static inline Eina_F16p16 eina_f32p32_to_f16p16(Eina_F32p32 a) { return (Eina_F16p16) (a >> 16); } static inline Eina_F16p16 eina_f8p24_to_f16p16(Eina_F8p24 a) { return (Eina_F16p16) (a >> 8); } static inline Eina_F8p24 eina_f32p32_to_f8p24(Eina_F32p32 a) { return (Eina_F8p24) (a >> 8); } static inline Eina_F8p24 eina_f16p16_to_f8p24(Eina_F16p16 a) { return (Eina_F8p24) (a << 8); } #endif eina-1.7.10/src/include/eina_fp.h0000664000175000017500000001117712175475327013447 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * Copyright (C) 2009 Cedric BAIL * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_FP_H_ # define EINA_FP_H_ #include "eina_types.h" #ifdef _MSC_VER typedef unsigned __int64 uint64_t; typedef signed __int64 int64_t; typedef signed int int32_t; #else # include #endif #define EINA_F32P32_PI 0x00000003243f6a89 typedef int64_t Eina_F32p32; typedef int32_t Eina_F16p16; typedef int32_t Eina_F8p24; static inline Eina_F32p32 eina_f32p32_int_from(int32_t v); static inline int32_t eina_f32p32_int_to(Eina_F32p32 v); static inline Eina_F32p32 eina_f32p32_double_from(double v); static inline double eina_f32p32_double_to(Eina_F32p32 v); static inline Eina_F32p32 eina_f32p32_add(Eina_F32p32 a, Eina_F32p32 b); static inline Eina_F32p32 eina_f32p32_sub(Eina_F32p32 a, Eina_F32p32 b); static inline Eina_F32p32 eina_f32p32_mul(Eina_F32p32 a, Eina_F32p32 b); static inline Eina_F32p32 eina_f32p32_scale(Eina_F32p32 a, int b); static inline Eina_F32p32 eina_f32p32_div(Eina_F32p32 a, Eina_F32p32 b); static inline Eina_F32p32 eina_f32p32_sqrt(Eina_F32p32 a); static inline unsigned int eina_f32p32_fracc_get(Eina_F32p32 v); // dont use llabs - issues if not on 64bit #define eina_fp32p32_llabs(a) ((a < 0) ? -(a) : (a)) EAPI Eina_F32p32 eina_f32p32_cos(Eina_F32p32 a); EAPI Eina_F32p32 eina_f32p32_sin(Eina_F32p32 a); static inline Eina_F16p16 eina_f16p16_int_from(int32_t v); static inline int32_t eina_f16p16_int_to(Eina_F16p16 v); static inline Eina_F16p16 eina_f16p16_float_from(float v); static inline float eina_f16p16_float_to(Eina_F16p16 v); static inline Eina_F16p16 eina_f16p16_add(Eina_F16p16 a, Eina_F16p16 b); static inline Eina_F16p16 eina_f16p16_sub(Eina_F16p16 a, Eina_F16p16 b); static inline Eina_F16p16 eina_f16p16_mul(Eina_F16p16 a, Eina_F16p16 b); static inline Eina_F16p16 eina_f16p16_scale(Eina_F16p16 a, int b); static inline Eina_F16p16 eina_f16p16_div(Eina_F16p16 a, Eina_F16p16 b); static inline Eina_F16p16 eina_f16p16_sqrt(Eina_F16p16 a); static inline unsigned int eina_f16p16_fracc_get(Eina_F16p16 v); static inline Eina_F8p24 eina_f8p24_int_from(int32_t v); static inline int32_t eina_f8p24_int_to(Eina_F8p24 v); static inline Eina_F8p24 eina_f8p24_float_from(float v); static inline float eina_f8p24_float_to(Eina_F8p24 v); static inline Eina_F8p24 eina_f8p24_add(Eina_F8p24 a, Eina_F8p24 b); static inline Eina_F8p24 eina_f8p24_sub(Eina_F8p24 a, Eina_F8p24 b); static inline Eina_F8p24 eina_f8p24_mul(Eina_F8p24 a, Eina_F8p24 b); static inline Eina_F8p24 eina_f8p24_scale(Eina_F8p24 a, int b); static inline Eina_F8p24 eina_f8p24_div(Eina_F8p24 a, Eina_F8p24 b); static inline Eina_F8p24 eina_f8p24_sqrt(Eina_F8p24 a); static inline unsigned int eina_f8p24_fracc_get(Eina_F8p24 v); static inline Eina_F32p32 eina_f16p16_to_f32p32(Eina_F16p16 a); static inline Eina_F32p32 eina_f8p24_to_f32p32(Eina_F8p24 a); static inline Eina_F16p16 eina_f32p32_to_f16p16(Eina_F32p32 a); static inline Eina_F16p16 eina_f8p24_to_f16p16(Eina_F8p24 a); static inline Eina_F8p24 eina_f32p32_to_f8p24(Eina_F32p32 a); static inline Eina_F8p24 eina_f16p16_to_f8p24(Eina_F16p16 a); #include "eina_inline_f32p32.x" #include "eina_inline_f16p16.x" #include "eina_inline_f8p24.x" #include "eina_inline_fp.x" #endif eina-1.7.10/src/include/eina_sched.h0000664000175000017500000000266612175475327014133 00000000000000/* EINA - EFL data type library * Copyright (C) 2010 ProFUSION embedded systems * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_SCHED_H_ #define EINA_SCHED_H_ #include "eina_types.h" /** * @brief Lower priority of current thread. * * It's used by worker threads so they use up background cpu and do not stall * the main thread If current thread is running with real-time priority, we * decrease our priority by @c RTNICENESS. This is done in a portable way. * * Otherwise (we are running with SCHED_OTHER policy) there's no portable way to * set the nice level on current thread. In Linux, it does work and it's the * only one that is implemented as of now. In this case the nice level is * incremented on this thread by @c NICENESS. */ EAPI void eina_sched_prio_drop(void); #endif /* EINA_SCHED_H_ */ eina-1.7.10/src/include/eina_inline_str.x0000664000175000017500000000453112175475327015224 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Gustavo Sverzut Barbieri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_STR_INLINE_H_ #define EINA_STR_INLINE_H_ /** * @addtogroup Eina_String_Group String * * @{ */ /** * @brief Count up to a given amount of bytes of the given string. * * @param str The string pointer. * @param maxlen The maximum length to allow. * @return the string size or (size_t)-1 if greater than @a maxlen. * * This function returns the size of @p str, up to @p maxlen * characters. It avoid needless iterations after that size. @p str * must be a valid pointer and MUST not be @c NULL, otherwise this * function will crash. This function returns the string size, or * (size_t)-1 if the size is greater than @a maxlen. */ static inline size_t eina_strlen_bounded(const char *str, size_t maxlen) { const char *itr, *str_maxend = str + maxlen; for (itr = str; *itr != '\0'; itr++) if (itr == str_maxend) return (size_t)-1; return itr - str; } /** * @brief Join two strings of known length. * * @param dst The buffer to store the result. * @param size Size (in byte) of the buffer. * @param sep The separator character to use. * @param a First string to use, before @p sep. * @param b Second string to use, after @p sep. * @return The number of characters printed. * * This function is similar to eina_str_join_len(), but will compute * the length of @p a and @p b using strlen(). * * @see eina_str_join_len() * @see eina_str_join_static() */ static inline size_t eina_str_join(char *dst, size_t size, char sep, const char *a, const char *b) { return eina_str_join_len(dst, size, sep, a, strlen(a), b, strlen(b)); } /** * @} */ #endif /* EINA_STR_INLINE_H_ */ eina-1.7.10/src/include/eina_inline_lock_posix.x0000664000175000017500000003210012175475327016557 00000000000000/* EINA - EFL data type library * Copyright (C) 2011 Vincent Torri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLINE_LOCK_POSIX_X_ #define EINA_INLINE_LOCK_POSIX_X_ #ifdef EINA_UNUSED # undef EINA_UNUSED #endif #ifdef __GNUC__ # define EINA_UNUSED __attribute__((unused)) #else # define EINA_UNUSED #endif #include #ifndef __USE_UNIX98 # define __USE_UNIX98 # include # undef __USE_UNIX98 #else # include #endif #include #include #include #ifdef EINA_HAVE_DEBUG_THREADS #include #include #include #include #define EINA_LOCK_DEBUG_BT_NUM 64 typedef void (*Eina_Lock_Bt_Func) (); #include "eina_inlist.h" #endif typedef struct _Eina_Lock Eina_Lock; typedef struct _Eina_RWLock Eina_RWLock; typedef struct _Eina_Condition Eina_Condition; typedef pthread_key_t Eina_TLS; typedef sem_t Eina_Semaphore; struct _Eina_Lock { #ifdef EINA_HAVE_DEBUG_THREADS EINA_INLIST; #endif pthread_mutex_t mutex; #ifdef EINA_HAVE_DEBUG_THREADS pthread_t lock_thread_id; Eina_Lock_Bt_Func lock_bt[EINA_LOCK_DEBUG_BT_NUM]; int lock_bt_num; Eina_Bool locked : 1; #endif }; struct _Eina_Condition { Eina_Lock *lock; pthread_cond_t condition; }; struct _Eina_RWLock { pthread_rwlock_t mutex; #ifdef EINA_HAVE_DEBUG_THREADS pthread_t lock_thread_wid; #endif }; EAPI extern Eina_Bool _eina_threads_activated; #ifdef EINA_HAVE_DEBUG_THREADS EAPI extern int _eina_threads_debug; EAPI extern pthread_t _eina_main_loop; EAPI extern pthread_mutex_t _eina_tracking_lock; EAPI extern Eina_Inlist *_eina_tracking; #endif static inline void eina_lock_debug(const Eina_Lock *mutex) { #ifdef EINA_HAVE_DEBUG_THREADS printf("lock %p, locked: %i, by %i\n", mutex, (int)mutex->locked, (int)mutex->lock_thread_id); backtrace_symbols_fd((void **)mutex->lock_bt, mutex->lock_bt_num, 1); #else (void) mutex; #endif } static inline Eina_Bool eina_lock_new(Eina_Lock *mutex) { pthread_mutexattr_t attr; #ifdef EINA_HAVE_DEBUG_THREADS if (!_eina_threads_activated) assert(pthread_equal(_eina_main_loop, pthread_self())); #endif if (pthread_mutexattr_init(&attr) != 0) return EINA_FALSE; /* NOTE: PTHREAD_MUTEX_RECURSIVE is not allowed at all, you will break on/off feature for sure with that change. */ #ifdef EINA_HAVE_DEBUG_THREADS if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK) != 0) return EINA_FALSE; memset(mutex, 0, sizeof(Eina_Lock)); #endif if (pthread_mutex_init(&(mutex->mutex), &attr) != 0) return EINA_FALSE; pthread_mutexattr_destroy(&attr); return EINA_TRUE; } static inline void eina_lock_free(Eina_Lock *mutex) { #ifdef EINA_HAVE_DEBUG_THREADS if (!_eina_threads_activated) assert(pthread_equal(_eina_main_loop, pthread_self())); #endif pthread_mutex_destroy(&(mutex->mutex)); #ifdef EINA_HAVE_DEBUG_THREADS memset(mutex, 0, sizeof(Eina_Lock)); #endif } static inline Eina_Lock_Result eina_lock_take(Eina_Lock *mutex) { Eina_Lock_Result ret = EINA_LOCK_FAIL; int ok; #ifdef EINA_HAVE_ON_OFF_THREADS if (!_eina_threads_activated) { #ifdef EINA_HAVE_DEBUG_THREADS assert(pthread_equal(_eina_main_loop, pthread_self())); #endif return EINA_LOCK_SUCCEED; } #endif #ifdef EINA_HAVE_DEBUG_THREADS if (_eina_threads_debug) { struct timeval t0, t1; int dt; gettimeofday(&t0, NULL); ok = pthread_mutex_lock(&(mutex->mutex)); gettimeofday(&t1, NULL); dt = (t1.tv_sec - t0.tv_sec) * 1000000; if (t1.tv_usec > t0.tv_usec) dt += (t1.tv_usec - t0.tv_usec); else dt -= t0.tv_usec - t1.tv_usec; dt /= 1000; if (dt > _eina_threads_debug) abort(); } else { #endif ok = pthread_mutex_lock(&(mutex->mutex)); #ifdef EINA_HAVE_DEBUG_THREADS } #endif if (ok == 0) ret = EINA_LOCK_SUCCEED; else if (ok == EDEADLK) { printf("ERROR ERROR: DEADLOCK on lock %p\n", mutex); eina_lock_debug(mutex); ret = EINA_LOCK_DEADLOCK; // magic #ifdef EINA_HAVE_DEBUG_THREADS if (_eina_threads_debug) abort(); #endif } #ifdef EINA_HAVE_DEBUG_THREADS mutex->locked = 1; mutex->lock_thread_id = pthread_self(); mutex->lock_bt_num = backtrace((void **)(mutex->lock_bt), EINA_LOCK_DEBUG_BT_NUM); pthread_mutex_lock(&_eina_tracking_lock); _eina_tracking = eina_inlist_append(_eina_tracking, EINA_INLIST_GET(mutex)); pthread_mutex_unlock(&_eina_tracking_lock); #endif return ret; } static inline Eina_Lock_Result eina_lock_take_try(Eina_Lock *mutex) { Eina_Lock_Result ret = EINA_LOCK_FAIL; int ok; #ifdef EINA_HAVE_ON_OFF_THREADS if (!_eina_threads_activated) { #ifdef EINA_HAVE_DEBUG_THREADS assert(pthread_equal(_eina_main_loop, pthread_self())); #endif return EINA_LOCK_SUCCEED; } #endif #ifdef EINA_HAVE_DEBUG_THREADS if (!_eina_threads_activated) assert(pthread_equal(_eina_main_loop, pthread_self())); #endif ok = pthread_mutex_trylock(&(mutex->mutex)); if (ok == 0) ret = EINA_LOCK_SUCCEED; else if (ok == EDEADLK) { printf("ERROR ERROR: DEADLOCK on trylock %p\n", mutex); ret = EINA_LOCK_DEADLOCK; // magic } #ifdef EINA_HAVE_DEBUG_THREADS if (ret == EINA_LOCK_SUCCEED) { mutex->locked = 1; mutex->lock_thread_id = pthread_self(); mutex->lock_bt_num = backtrace((void **)(mutex->lock_bt), EINA_LOCK_DEBUG_BT_NUM); pthread_mutex_lock(&_eina_tracking_lock); _eina_tracking = eina_inlist_append(_eina_tracking, EINA_INLIST_GET(mutex)); pthread_mutex_unlock(&_eina_tracking_lock); } #endif return ret; } static inline Eina_Lock_Result eina_lock_release(Eina_Lock *mutex) { Eina_Lock_Result ret; #ifdef EINA_HAVE_ON_OFF_THREADS if (!_eina_threads_activated) { #ifdef EINA_HAVE_DEBUG_THREADS assert(pthread_equal(_eina_main_loop, pthread_self())); #endif return EINA_LOCK_SUCCEED; } #endif #ifdef EINA_HAVE_DEBUG_THREADS pthread_mutex_lock(&_eina_tracking_lock); _eina_tracking = eina_inlist_remove(_eina_tracking, EINA_INLIST_GET(mutex)); pthread_mutex_unlock(&_eina_tracking_lock); mutex->locked = 0; mutex->lock_thread_id = 0; memset(mutex->lock_bt, 0, EINA_LOCK_DEBUG_BT_NUM * sizeof(Eina_Lock_Bt_Func)); mutex->lock_bt_num = 0; #endif ret = (pthread_mutex_unlock(&(mutex->mutex)) == 0) ? EINA_LOCK_SUCCEED : EINA_LOCK_FAIL; return ret; } static inline Eina_Bool eina_condition_new(Eina_Condition *cond, Eina_Lock *mutex) { #ifdef EINA_HAVE_DEBUG_THREADS assert(mutex != NULL); if (!_eina_threads_activated) assert(pthread_equal(_eina_main_loop, pthread_self())); memset(cond, 0, sizeof (Eina_Condition)); #endif cond->lock = mutex; if (pthread_cond_init(&cond->condition, NULL) != 0) { #ifdef EINA_HAVE_DEBUG_THREADS if (errno == EBUSY) printf("eina_condition_new on already initialized Eina_Condition\n"); #endif return EINA_FALSE; } return EINA_TRUE; } static inline void eina_condition_free(Eina_Condition *cond) { #ifdef EINA_HAVE_DEBUG_THREADS if (!_eina_threads_activated) assert(pthread_equal(_eina_main_loop, pthread_self())); #endif pthread_cond_destroy(&(cond->condition)); #ifdef EINA_HAVE_DEBUG_THREADS memset(cond, 0, sizeof (Eina_Condition)); #endif } static inline Eina_Bool eina_condition_wait(Eina_Condition *cond) { Eina_Bool r; #ifdef EINA_HAVE_DEBUG_THREADS assert(_eina_threads_activated); assert(cond->lock != NULL); pthread_mutex_lock(&_eina_tracking_lock); _eina_tracking = eina_inlist_remove(_eina_tracking, EINA_INLIST_GET(cond->lock)); pthread_mutex_unlock(&_eina_tracking_lock); #endif r = pthread_cond_wait(&(cond->condition), &(cond->lock->mutex)) == 0 ? EINA_TRUE : EINA_FALSE; #ifdef EINA_HAVE_DEBUG_THREADS pthread_mutex_lock(&_eina_tracking_lock); _eina_tracking = eina_inlist_append(_eina_tracking, EINA_INLIST_GET(cond->lock)); pthread_mutex_unlock(&_eina_tracking_lock); #endif return r; } static inline Eina_Bool eina_condition_timedwait(Eina_Condition *cond, double t) { struct timespec tv; Eina_Bool r; #ifdef EINA_HAVE_DEBUG_THREADS assert(_eina_threads_activated); assert(cond->lock != NULL); pthread_mutex_lock(&_eina_tracking_lock); _eina_tracking = eina_inlist_remove(_eina_tracking, EINA_INLIST_GET(cond->lock)); pthread_mutex_unlock(&_eina_tracking_lock); #endif tv.tv_sec = t; tv.tv_nsec = (t - (double) tv.tv_sec) * 1000000000; r = pthread_cond_timedwait(&(cond->condition), &(cond->lock->mutex), &tv) == 0 ? EINA_TRUE : EINA_FALSE; #ifdef EINA_HAVE_DEBUG_THREADS pthread_mutex_lock(&_eina_tracking_lock); _eina_tracking = eina_inlist_append(_eina_tracking, EINA_INLIST_GET(cond->lock)); pthread_mutex_unlock(&_eina_tracking_lock); #endif return r; } static inline Eina_Bool eina_condition_broadcast(Eina_Condition *cond) { #ifdef EINA_HAVE_DEBUG_THREADS assert(cond->lock != NULL); #endif return pthread_cond_broadcast(&(cond->condition)) == 0 ? EINA_TRUE : EINA_FALSE; } static inline Eina_Bool eina_condition_signal(Eina_Condition *cond) { #ifdef EINA_HAVE_DEBUG_THREADS assert(cond->lock != NULL); #endif return pthread_cond_signal(&(cond->condition)) == 0 ? EINA_TRUE : EINA_FALSE; } static inline Eina_Bool eina_rwlock_new(Eina_RWLock *mutex) { #ifdef EINA_HAVE_DEBUG_THREADS if (!_eina_threads_activated) assert(pthread_equal(_eina_main_loop, pthread_self())); #endif if (pthread_rwlock_init(&(mutex->mutex), NULL) != 0) return EINA_FALSE; return EINA_TRUE; } static inline void eina_rwlock_free(Eina_RWLock *mutex) { #ifdef EINA_HAVE_DEBUG_THREADS if (!_eina_threads_activated) assert(pthread_equal(_eina_main_loop, pthread_self())); #endif pthread_rwlock_destroy(&(mutex->mutex)); } static inline Eina_Lock_Result eina_rwlock_take_read(Eina_RWLock *mutex) { #ifdef EINA_HAVE_ON_OFF_THREADS if (!_eina_threads_activated) { #ifdef EINA_HAVE_DEBUG_THREADS assert(pthread_equal(_eina_main_loop, pthread_self())); #endif return EINA_LOCK_SUCCEED; } #endif if (pthread_rwlock_rdlock(&(mutex->mutex)) != 0) return EINA_LOCK_FAIL; return EINA_LOCK_SUCCEED; } static inline Eina_Lock_Result eina_rwlock_take_write(Eina_RWLock *mutex) { #ifdef EINA_HAVE_ON_OFF_THREADS if (!_eina_threads_activated) { #ifdef EINA_HAVE_DEBUG_THREADS assert(pthread_equal(_eina_main_loop, pthread_self())); #endif return EINA_LOCK_SUCCEED; } #endif if (pthread_rwlock_wrlock(&(mutex->mutex)) != 0) return EINA_LOCK_FAIL; return EINA_LOCK_SUCCEED; } static inline Eina_Lock_Result eina_rwlock_release(Eina_RWLock *mutex) { #ifdef EINA_HAVE_ON_OFF_THREADS if (!_eina_threads_activated) { #ifdef EINA_HAVE_DEBUG_THREADS assert(pthread_equal(_eina_main_loop, pthread_self())); #endif return EINA_LOCK_SUCCEED; } #endif if (pthread_rwlock_unlock(&(mutex->mutex)) != 0) return EINA_LOCK_FAIL; return EINA_LOCK_SUCCEED; } static inline Eina_Bool eina_tls_new(Eina_TLS *key) { if (pthread_key_create(key, NULL) != 0) return EINA_FALSE; return EINA_TRUE; } static inline void eina_tls_free(Eina_TLS key) { pthread_key_delete(key); } static inline void * eina_tls_get(Eina_TLS key) { return pthread_getspecific(key); } static inline Eina_Bool eina_tls_set(Eina_TLS key, const void *data) { if (pthread_setspecific(key, data) != 0) return EINA_FALSE; return EINA_TRUE; } static inline Eina_Bool eina_semaphore_new(Eina_Semaphore *sem, int count_init) { if (!sem || (count_init <= 0)) return EINA_FALSE; return (sem_init(sem, count_init, 1) == 0) ? EINA_TRUE : EINA_FALSE; } static inline Eina_Bool eina_semaphore_free(Eina_Semaphore *sem) { if (!sem) return EINA_FALSE; return (sem_destroy(sem) == 0) ? EINA_TRUE : EINA_FALSE; } static inline Eina_Bool eina_semaphore_lock(Eina_Semaphore *sem) { if (!sem) return EINA_FALSE; return (sem_wait(sem) == 0) ? EINA_TRUE : EINA_FALSE; } static inline Eina_Bool eina_semaphore_release(Eina_Semaphore *sem, int count_release EINA_UNUSED) { if (!sem) return EINA_FALSE; return (sem_post(sem) == 0) ? EINA_TRUE : EINA_FALSE; } #endif eina-1.7.10/src/include/eina_inline_hash.x0000664000175000017500000000655012175475327015342 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLINE_HASH_X_ #define EINA_INLINE_HASH_X_ EAPI extern unsigned int eina_seed; /* djb2 hash algorithm was first reported by dan bernstein, and was the old default hash function for evas. */ static inline int eina_hash_djb2(const char *key, int len) { unsigned int hash_num = 5381 ^ eina_seed; const unsigned char *ptr; if (!key) return 0; for (ptr = (unsigned char *)key; len; ptr++, len--) hash_num = ((hash_num << 5) + hash_num) ^ *ptr; /* hash * 33 ^ c */ return (int)hash_num; } static inline int eina_hash_djb2_len(const char *key, int *plen) { unsigned int hash_num = 5381 ^ eina_seed; int len = 0; const unsigned char *ptr; if (!key) return 0; for (ptr = (unsigned char *)key; *ptr; ptr++, len++) hash_num = ((hash_num << 5) + hash_num) ^ *ptr; /* hash * 33 ^ c */ *plen = len + 1; return (int)hash_num; } static inline int eina_hash_int32(const unsigned int *pkey, int len) { unsigned int key = *pkey; (void) len; key = ~key + (key << 15); key ^= key >> 12; key += key << 2; key ^= key >> 4; key *= 2057 ^ eina_seed; key ^= key >> 16; return key; } static inline int eina_hash_int64(const unsigned long int *pkey, int len) { unsigned long int key = *pkey; (void) len; key = ~key + (key << 18); key ^= key >> 31; key *= 21 ^ eina_seed; key ^= key >> 11; key += key << 6; key ^= key >> 22; return (int) key; } static inline unsigned int _rotl32(unsigned int x, char r) { return (x << r) | (x >> (32 - r)); } static inline unsigned int _fmix32(unsigned int h) { h ^= h >> 16; h *= 0x85ebca6b; h ^= h >> 13; h *= 0xc2b2ae35; h ^= h >> 16; return h; } static inline int eina_hash_murmur3(const char *key, int len) { const unsigned char * data = (const unsigned char*)key; const int nblocks = len / 4; unsigned int h1 = 0, k1; unsigned int c1 = 0xcc9e2d51 ^ eina_seed; unsigned int c2 = 0x1b873593 ^ eina_seed; const unsigned int * blocks = (const unsigned int *)(data + nblocks*4); int i; const unsigned char *tail; for(i = -nblocks; i; i++) { k1 = blocks[i]; k1 *= c1; k1 = _rotl32(k1, 15); k1 *= c2; h1 ^= k1; h1 = _rotl32(h1, 13); h1 = h1*5+0xe6546b64; } tail = (const unsigned char*)(data + nblocks*4); k1 = 0; switch(len & 3) { case 3: k1 ^= tail[2] << 16; case 2: k1 ^= tail[1] << 8; case 1: k1 ^= tail[0]; k1 *= c1; k1 = _rotl32(k1, 16); k1 *= c2; h1 ^= k1; } h1 ^= len; return _fmix32(h1); } #endif eina-1.7.10/src/include/eina_inlist.h0000664000175000017500000007242712175475327014351 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler, Vincent Torri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLIST_H_ #define EINA_INLIST_H_ #include "eina_types.h" #include "eina_iterator.h" #include "eina_accessor.h" #include /** * @page eina_inlist_01_example_page Eina_Inlist basic usage * @dontinclude eina_inlist_01.c * * To see the full source for this example, click here: @ref * eina_inlist_01_c * * As explained before, inline lists mean its nodes pointers are part of same * memory block/blob. This is done by using the macro @ref EINA_INLIST inside the * data structure that will be used: * * @skip struct * @until }; * * The resulting node representing this struct can be exemplified by the * following picture: * * @image html eina_inlist-node_eg1-my-struct.png * @image rtf eina_inlist-node_eg1-my-struct.png * @image latex eina_inlist-node_eg1-my-struct.eps * * Let's define a comparison function that will be used later during the * sorting of the list: * * @skip int * @until } * * The @ref Eina_Inlist can be used exactly the same way as @ref Eina_List when * appending, prepending and removing items. But since we already have the node * pointers inside the structure, they need to be retrieved with the macro @ref * EINA_INLIST_GET : * * @skip malloc * @until append * * Notice that @ref eina_inlist_append always receives the head of the list as * first argument, and its return value should be used as the list pointer * (head): * * @skip malloc * @until append * * After appending 3 items, the list now should look similar to this: * * @image html eina_inlist-node_eg1-inlist.png * @image rtf eina_inlist-node_eg1-inlist.png * @image latex eina_inlist-node_eg1-inlist.eps width=\textwidth * * The macro @ref EINA_INLIST_FOREACH can be used to iterate over the list: * * @skip printf * @until cur->a * * @ref eina_inlist_promote(), @ref eina_inlist_demote(), @ref * eina_inlist_append_relative() and similar functions all work in the same way * as the @ref Eina_List : * * @skip eina_inlist_promote * @until eina_inlist_demote * * Now let's use the @c sort_cb function declared above to sort our list: * * @skipline eina_inlist_sort * * Removing an element from the inlist is also similar to @ref Eina_List : * * @skip inlist_remove * @until free * * Another way of walking through the inlist. * * @skip for * @until } * * Notice that in the previous piece of code, since we only have the pointers to * the inlist nodes, we have to use the @ref EINA_INLIST_CONTAINER_GET macro * that will return the pointer to the entire structure. Of course, in this case * it is the same as the list pointer, since the @ref EINA_INLIST macro was used * in the beginning of the structure. * * Now to finish this example, lets delete this list: * * @skip while * @until } */ /** * @page eina_inlist_02_example_page Eina_Inlist advanced usage - lists and inlists * @dontinclude eina_inlist_02.c * * This example describes the usage of @ref Eina_Inlist mixed with @ref * Eina_List . We create and add elements to an inlist, and the even members * are also added to a normal list. Later we remove the elements divisible by 3 * from this normal list. * * The struct that is going to be used is the same used in @ref * eina_inlist_01_example_page , since we still need the @ref EINA_INLIST macro to * declare the inlist node info: * * @skip struct * @until }; * * The resulting node representing this struct can be exemplified by the * following picture: * * @image html eina_inlist-node_eg2-my-struct.png * @image rtf eina_inlist-node_eg2-my-struct.png * @image latex eina_inlist-node_eg2-my-struct.eps * * Now we need some pointers and auxiliar variables that will help us iterate on * the lists: * * @skip struct * @until l_next; * * Allocating 100 elements and putting them into an inlist, and the even * elements also go to the normal list: * * @skip for * @until } * * After this point, what we have are two distinct lists that share some * elements. The first list (inlist) is defined by the pointers inside the * elements data structure, while the second list (normal list) has its own node * data structure that is kept outside of the elements. * * The two lists, sharing some elements, can be represented by the following * picture: * * @htmlonly * * @endhtmlonly * @image rtf eina_inlist-node_eg2-list-inlist.png * @image latex eina_inlist-node_eg2-list-inlist.eps width=\textwidth * * Accessing both lists is done normally, as if they didn't have any elements in * common: * * @skip printf * @until eina_list_count * * We can remove elements from the normal list, but we just don't free them * because they are still stored in the inlist: * * @skip EINA_LIST_FOREACH_SAFE * @until eina_list_count * * To finish this example, we want to free both lists, we can't just free all * elements on the second list (normal list) because they are still being used * in the inlist. So we first discard the normal list without freeing its * elements, then we free all elements in the inlist (that contains all elements * allocated until now): * * @skip eina_list_free * @until } * * Here is the full source code for this example: @ref eina_inlist_02_c */ /** * @page eina_inlist_03_example_page Eina_Inlist advanced usage - multi-inlists * @dontinclude eina_inlist_03.c * * This example describes the usage of multiple inlists storing the same data. * It means that some data may appear in more than one inlist at the same time. * We will demonstrate this by creating an inlist with 100 numbers, and adding * the odd numbers to the second inlist, then remove the numbers divisible by 3 * from the second list. * * To accomplish this, it is necessary to have two inlist pointers in the struct * that is going to be stored. We are using the default inlist member @ref * EINA_INLIST, and adding another member @c even that is of type @ref * Eina_Inlist too: * * @skip struct * @until }; * * The representation for this struct is: * * @image html eina_inlist-node_eg3-my-struct.png * @image rtf eina_inlist-node_eg3-my-struct.png * @image latex eina_inlist-node_eg3-my-struct.eps * * And we will define some convenience macros that are equivalent to @ref * EINA_INLIST_GET and @ref EINA_INLIST_CONTAINER_GET : * * @skip define * @until offsetof * * We need two pointers, one for each list, and a pointer that will be used as * an iterator: * * @skipline Eina_Inlist * * Now we allocate and add to the first list every number from 0 to 99. These * nodes data also have the @ref Eina_Inlist node info for the second list (@c * even). We will use them to add just the even numbers to the second list, the * @c list_even. Also notice that we are using our macro @c EVEN_INLIST_GET to * get the pointer to the even list node info: * * @skip for * @until } * * And the resulting lists will be as follow: * * @htmlonly * * @endhtmlonly * @image rtf eina_inlist-node_eg3-two-inlists.png * @image latex eina_inlist-node_eg3-two-inlists.eps width=\textwidth * * For the first list, we can use the macro @ref EINA_INLIST_FOREACH to iterate * over its elements: * * @skip FOREACH * @until printf * * But for the second list, we have to do it manually. Of course we could create * a similar macro to @ref EINA_INLIST_FOREACH, but since this macro is more * complex than the other two and we are using it only once, it's better to just * do it manually: * * @skip for * @until } * * Let's just check that the two lists have the expected number of elements: * * @skip list count * @until list_even count * * And removing the numbers divisible by 3 only from the second list: * * @skip itr * @until list_even count * * Now that we don't need the two lists anymore, we can just free all the items. * Since all of the allocated data was put into the first list, and both lists * are made of pointers to inside the data structures, we can free only the * first list (that contains all the elements) and the second list will be gone * with it: * * @skip while * @until free * * To see the full source code for this example, click here: @ref * eina_inlist_03_c * */ /** * @page eina_inlist_01_c eina_inlist_01.c Eina_Inlist basic usage source * @include eina_inlist_01.c */ /** * @page eina_inlist_02_c eina_inlist_02.c Eina_Inlist advanced usage - lists and inlists source * @include eina_inlist_02.c */ /** * @page eina_inlist_03_c eina_inlist_03.c Eina_Inlist advanced usage - multi-inlists source * @include eina_inlist_03.c */ /** * @addtogroup Eina_Inline_List_Group Inline List * * @brief These functions provide inline list management. * * Inline lists mean its nodes pointers are part of same memory as * data. This has the benefit of fragmenting memory less and avoiding * @c node->data indirection, but has the drawback of higher cost for some * common operations like count and sort. * * It is possible to have inlist nodes to be part of regular lists, created with * @ref eina_list_append() or @ref eina_list_prepend(). It's also possible to * have a structure with two inlist pointers, thus be part of two different * inlists at the same time, but the current convenience macros provided won't * work for both of them. Consult @ref inlist_advanced for more info. * * Inline lists have their purposes, but if you don't know what those purposes are, go with * regular lists instead. * * Tip: When using inlists in more than one place (that is, passing them around * functions or keeping a pointer to them in a structure) it's more correct * to keep a pointer to the first container, and not a pointer to the first * inlist item (mostly they are the same, but that's not always correct). * This lets the compiler to do type checking and let the programmer know * exactly what type this list is. * * A simple example demonstrating the basic usage of an inlist can be found * here: @ref eina_inlist_01_example_page * * @section inlist_algo Algorithm * * The basic structure can be represented by the following picture: * * @image html eina_inlist-node.png * @image rtf eina_inlist-node.png * @image latex eina_inlist-node.eps * * One data structure will also have the node information, with three pointers: * @a prev, @a next and @a last. The @a last pointer is just valid for the first * element (the list head), otherwise each insertion in the list would have to * be done updating every node with the correct pointer. This means that it's * always very important to keep a pointer to the first element of the list, * since it is the only one that has the correct information to allow a proper * O(1) append to the list. * * @section inlist_perf Performance * * Due to the nature of the inlist, there's no accounting information, and no * easy access to the last element from each list node. This means that @ref * eina_inlist_count() is order-N, while @ref eina_list_count() is order-1 (constant * time). * * @section inlist_advanced Advanced Usage * * The basic usage considers a struct that will have the user data, and also * have an inlist node information (prev, next and last pointers) created with * @ref EINA_INLIST during the struct declaration. This allows one to use the * convenience macros @ref EINA_INLIST_GET(), @ref EINA_INLIST_CONTAINER_GET(), * @ref EINA_INLIST_FOREACH() and so. This happens because the @ref EINA_INLIST * macro declares a struct member with the name @a __inlist, and all the other * macros assume that this struct member has this name. * * It may be the case that someone needs to have some inlist nodes added to a * @ref Eina_List too. If this happens, the inlist nodes can be added to the * @ref Eina_List without any problems. This example demonstrates this case: * @ref eina_inlist_02_example_page * * It's also possible to have some data that is part of two different inlists. * If this is the case, then it won't be possible to use the convenience macros * to both of the lists. It will be necessary to create a new set of macros that * will allow access to the second list node info. An example for this usage can * be found here: * @ref eina_inlist_03_example_page * * List of examples: * @li @ref eina_inlist_01_example_page * @li @ref eina_inlist_02_example_page * @li @ref eina_inlist_03_example_page */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @addtogroup Eina_Containers_Group Containers * * @{ */ /** * @defgroup Eina_Inline_List_Group Inline List * * @{ */ /** * @typedef Eina_Inlist * Inlined list type. */ typedef struct _Eina_Inlist Eina_Inlist; /** * @typedef Eina_Inlist_Sorted_State * @since 1.1.0 * State of sorted Eina_Inlist */ typedef struct _Eina_Inlist_Sorted_State Eina_Inlist_Sorted_State; /** * @struct _Eina_Inlist * Inlined list type. */ struct _Eina_Inlist { Eina_Inlist *next; /**< next node */ Eina_Inlist *prev; /**< previous node */ Eina_Inlist *last; /**< last node */ }; /** Used for declaring an inlist member in a struct */ #define EINA_INLIST Eina_Inlist __in_list /** Utility macro to get the inlist object of a struct */ #define EINA_INLIST_GET(Inlist) (& ((Inlist)->__in_list)) /** Utility macro to get the container object of an inlist */ #define EINA_INLIST_CONTAINER_GET(ptr, \ type) ((type *)((char *)ptr - \ offsetof(type, __in_list))) /** * Add a new node to end of a list. * * @note this code is meant to be fast: appends are O(1) and do not * walk @a in_list. * * @note @a in_item is considered to be in no list. If it was in another * list before, eina_inlist_remove() it before adding. No * check of @a new_l prev and next pointers is done, so it's safe * to have them uninitialized. * * @param in_list existing list head or @c NULL to create a new list. * @param in_item new list node, must not be @c NULL. * * @return the new list head. Use it and not @a in_list anymore. */ EAPI Eina_Inlist *eina_inlist_append(Eina_Inlist *in_list, Eina_Inlist *in_item) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * Add a new node to beginning of list. * * @note this code is meant to be fast: appends are O(1) and do not * walk @a in_list. * * @note @a new_l is considered to be in no list. If it was in another * list before, eina_inlist_remove() it before adding. No * check of @a new_l prev and next pointers is done, so it's safe * to have them uninitialized. * * @param in_list existing list head or @c NULL to create a new list. * @param in_item new list node, must not be @c NULL. * * @return the new list head. Use it and not @a in_list anymore. */ EAPI Eina_Inlist *eina_inlist_prepend(Eina_Inlist *in_list, Eina_Inlist *in_item) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * Add a new node after the given relative item in list. * * @note this code is meant to be fast: appends are O(1) and do not * walk @a in_list. * * @note @a in_item_l is considered to be in no list. If it was in another * list before, eina_inlist_remove() it before adding. No * check of @a in_item prev and next pointers is done, so it's safe * to have them uninitialized. * * @note @a in_relative is considered to be inside @a in_list, no checks are * done to confirm that and giving nodes from different lists * will lead to problems. Giving NULL @a in_relative is the same as * eina_list_append(). * * @param in_list existing list head or @c NULL to create a new list. * @param in_item new list node, must not be @c NULL. * @param in_relative reference node, @a in_item will be added after it. * * @return the new list head. Use it and not @a list anymore. */ EAPI Eina_Inlist *eina_inlist_append_relative(Eina_Inlist *in_list, Eina_Inlist *in_item, Eina_Inlist *in_relative) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * Add a new node before the given relative item in list. * * @note this code is meant to be fast: appends are O(1) and do not * walk @a in_list. * * @note @a in_item is considered to be in no list. If it was in another * list before, eina_inlist_remove() it before adding. No * check of @a in_item prev and next pointers is done, so it's safe * to have them uninitialized. * * @note @a in_relative is considered to be inside @a in_list, no checks are * done to confirm that and giving nodes from different lists * will lead to problems. Giving NULL @a in_relative is the same as * eina_list_prepend(). * * @param in_list existing list head or @c NULL to create a new list. * @param in_item new list node, must not be @c NULL. * @param in_relative reference node, @a in_item will be added before it. * * @return the new list head. Use it and not @a in_list anymore. */ EAPI Eina_Inlist *eina_inlist_prepend_relative(Eina_Inlist *in_list, Eina_Inlist *in_item, Eina_Inlist *in_relative) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * Remove node from list. * * @note this code is meant to be fast: appends are O(1) and do not * walk @a list. * * @note @a in_item is considered to be inside @a in_list, no checks are * done to confirm that and giving nodes from different lists * will lead to problems, especially if @a in_item is the head since * it will be different from @a list and the wrong new head will * be returned. * * @param in_list existing list head, must not be @c NULL. * @param in_item existing list node, must not be @c NULL. * * @return the new list head. Use it and not @a list anymore. */ EAPI Eina_Inlist *eina_inlist_remove(Eina_Inlist *in_list, Eina_Inlist *in_item) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT; /** * Find given node in list, returns itself if found, NULL if not. * * @warning this is an expensive call and has O(n) cost, possibly * walking the whole list. * * @param in_list existing list to search @a in_item in, must not be @c NULL. * @param in_item what to search for, must not be @c NULL. * * @return @a in_item if found, @c NULL if not. */ EAPI Eina_Inlist *eina_inlist_find(Eina_Inlist *in_list, Eina_Inlist *in_item) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * Move existing node to beginning of list. * * @note this code is meant to be fast: appends are O(1) and do not * walk @a list. * * @note @a item is considered to be inside @a list. No checks are * done to confirm this, and giving nodes from different lists * will lead to problems. * * @param list existing list head or @c NULL to create a new list. * @param item list node to move to beginning (head), must not be @c NULL. * * @return the new list head. Use it and not @a list anymore. */ EAPI Eina_Inlist *eina_inlist_promote(Eina_Inlist *list, Eina_Inlist *item) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT; /** * Move existing node to end of list. * * @note this code is meant to be fast: appends are O(1) and do not * walk @a list. * * @note @a item is considered to be inside @a list. No checks are * done to confirm this, and giving nodes from different lists * will lead to problems. * * @param list existing list head or @c NULL to create a new list. * @param item list node to move to end (tail), must not be @c NULL. * * @return the new list head. Use it and not @a list anymore. */ EAPI Eina_Inlist *eina_inlist_demote(Eina_Inlist *list, Eina_Inlist *item) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT; /** * @brief Get the count of the number of items in a list. * * @param list The list whose count to return. * @return The number of members in the list. * * This function returns how many members @p list contains. If the * list is @c NULL, @c 0 is returned. * * @warning This is an order-N operation and so the time will depend * on the number of elements on the list, so, it might become * slow for big lists! */ EAPI unsigned int eina_inlist_count(const Eina_Inlist *list) EINA_WARN_UNUSED_RESULT; /** * @brief Returns a new iterator associated to @a list. * * @param in_list The list. * @return A new iterator. * * This function returns a newly allocated iterator associated to @p * in_list. If @p in_list is @c NULL or the count member of @p in_list is less * or equal than 0, this function still returns a valid iterator that * will always return false on eina_iterator_next(), thus keeping API * sane. * * If the memory can not be allocated, @c NULL is returned * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator * is returned. * * @warning if the list structure changes then the iterator becomes * invalid, and if you add or remove nodes iterator * behavior is undefined, and your program may crash! */ EAPI Eina_Iterator *eina_inlist_iterator_new(const Eina_Inlist *in_list) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Returns a new accessor associated to a list. * * @param in_list The list. * @return A new accessor. * * This function returns a newly allocated accessor associated to * @p in_list. If @p in_list is @c NULL or the count member of @p in_list is * less or equal than @c 0, this function returns @c NULL. If the memory can * not be allocated, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is * set. Otherwise, a valid accessor is returned. */ EAPI Eina_Accessor *eina_inlist_accessor_new(const Eina_Inlist *in_list) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Insert a new node into a sorted list. * * @param list The given linked list, @b must be sorted. * @param item list node to insert, must not be @c NULL. * @param func The function called for the sort. * @return A list pointer. * @since 1.1.0 * * This function inserts item into a linked list assuming it was * sorted and the result will be sorted. If @p list is @c NULLL, item * is returned. On success, a new list pointer that should be * used in place of the one given to this function is * returned. Otherwise, the old pointer is returned. See eina_error_get(). * * @note O(log2(n)) comparisons (calls to @p func) average/worst case * performance. As said in eina_list_search_sorted_near_list(), * lists do not have O(1) access time, so walking to the correct node * can be costly, consider worst case to be almost O(n) pointer * dereference (list walk). */ EAPI Eina_Inlist *eina_inlist_sorted_insert(Eina_Inlist *list, Eina_Inlist *item, Eina_Compare_Cb func) EINA_ARG_NONNULL(2, 3) EINA_WARN_UNUSED_RESULT; /** * @brief Create state with valid data in it. * * @return A valid Eina_Inlist_Sorted_State. * @since 1.1.0 * * See eina_inlist_sorted_state_insert() for more information. */ EAPI Eina_Inlist_Sorted_State *eina_inlist_sorted_state_new(void); /** * @brief Force an Eina_Inlist_Sorted_State to match the content of a list. * * @param state The state to update * @param list The list to match * @return The number of item in the actually in the list * @since 1.1.0 * * See eina_inlist_sorted_state_insert() for more information. This function is * usefull if you didn't use eina_inlist_sorted_state_insert() at some point, but * still think you have a sorted list. It will only correctly work on a sorted list. */ EAPI int eina_inlist_sorted_state_init(Eina_Inlist_Sorted_State *state, Eina_Inlist *list); /** * @brief Free an Eina_Inlist_Sorted_State. * * @param state The state to destroy * @since 1.1.0 * * See eina_inlist_sorted_state_insert() for more information. */ EAPI void eina_inlist_sorted_state_free(Eina_Inlist_Sorted_State *state); /** * @brief Insert a new node into a sorted list. * * @param list The given linked list, @b must be sorted. * @param item list node to insert, must not be @c NULL. * @param func The function called for the sort. * @param state The current array for initial dichotomic search * @return A list pointer. * @since 1.1.0 * * This function inserts item into a linked list assuming @p state match * the exact content order of the list. It use @p state to do a fast * first step dichotomic search before starting to walk the inlist itself. * This make this code much faster than eina_inlist_sorted_insert() as it * doesn't need to walk the list at all. The result is of course a sorted * list with an updated state.. If @p list is @c NULLL, item * is returned. On success, a new list pointer that should be * used in place of the one given to this function is * returned. Otherwise, the old pointer is returned. See eina_error_get(). * * @note O(log2(n)) comparisons (calls to @p func) average/worst case * performance. As said in eina_list_search_sorted_near_list(), * lists do not have O(1) access time, so walking to the correct node * can be costly, but this version try to minimize that by making it a * O(log2(n)) for number small number. After n == 256, it start to add a * linear cost again. Consider worst case to be almost O(n) pointer * dereference (list walk). */ EAPI Eina_Inlist *eina_inlist_sorted_state_insert(Eina_Inlist *list, Eina_Inlist *item, Eina_Compare_Cb func, Eina_Inlist_Sorted_State *state); /** * @brief Sort a list according to the ordering func will return. * * @param head The list handle to sort. * @param func A function pointer that can handle comparing the list data * nodes. * @return the new head of list. * * This function sorts all the elements of @p head. @p func is used to * compare two elements of @p head. If @p head or @p func are @c NULL, * this function returns @c NULL. * * @note @b in-place: this will change the given list, so you should * now point to the new list head that is returned by this function. * * @note Worst case is O(n * log2(n)) comparisons (calls to func()). * That means that for 1,000,000 list elements, sort will do 20,000,000 * comparisons. * * Example: * @code * typedef struct _Sort_Ex Sort_Ex; * struct _Sort_Ex * { * INLIST; * const char *text; * }; * * int * sort_cb(const Inlist *l1, const Inlist *l2) * { * const Sort_Ex *x1; * const Sort_Ex *x2; * * x1 = EINA_INLIST_CONTAINER_GET(l1, Sort_Ex); * x2 = EINA_INLIST_CONTAINER_GET(l2, Sort_Ex); * * return(strcmp(x1->text, x2->text)); * } * extern Eina_Inlist *list; * * list = eina_inlist_sort(list, sort_cb); * @endcode */ EAPI Eina_Inlist *eina_inlist_sort(Eina_Inlist *head, Eina_Compare_Cb func); /* This two macros are helpers for the _FOREACH ones, don't use them */ /** * @def _EINA_INLIST_OFFSET * @param ref The reference to be used. */ #define _EINA_INLIST_OFFSET(ref) ((char *)&(ref)->__in_list - (char *)(ref)) #if !defined(__cplusplus) /** * @def _EINA_INLIST_CONTAINER * @param ref The reference to be used. * @param ptr The pointer to be used. */ #define _EINA_INLIST_CONTAINER(ref, ptr) (void *)((char *)(ptr) - \ _EINA_INLIST_OFFSET(ref)) #else /* * In C++ we can't assign a "type*" pointer to void* so we rely on GCC's typeof * operator. */ #define _EINA_INLIST_CONTAINER(ref, ptr) (typeof(ref))((char *)(ptr) - \ _EINA_INLIST_OFFSET(ref)) #endif /** Macro to iterate over an inlist */ #define EINA_INLIST_FOREACH(list, l) \ for (l = NULL, l = (list ? _EINA_INLIST_CONTAINER(l, list) : NULL); l; \ l = (EINA_INLIST_GET(l)->next ? _EINA_INLIST_CONTAINER(l, EINA_INLIST_GET(l)->next) : NULL)) /** * @def EINA_INLIST_FOREACH_SAFE * @param list The first list to be used. * @param list2 The second list to be used. * @param l The auxiliar variable to be used. */ #define EINA_INLIST_FOREACH_SAFE(list, list2, l) \ for (l = (list ? _EINA_INLIST_CONTAINER(l, list) : NULL), list2 = l ? ((EINA_INLIST_GET(l) ? EINA_INLIST_GET(l)->next : NULL)) : NULL; \ l; \ l = list2 ? _EINA_INLIST_CONTAINER(l, list2) : NULL, list2 = list2 ? list2->next : NULL) /** * @def EINA_INLIST_REVERSE_FOREACH * @param list The list to be reversed. * @param l The auxiliar variable to be used. */ #define EINA_INLIST_REVERSE_FOREACH(list, l) \ for (l = NULL, l = (list ? _EINA_INLIST_CONTAINER(l, list->last) : NULL); \ l; l = (EINA_INLIST_GET(l)->prev ? _EINA_INLIST_CONTAINER(l, EINA_INLIST_GET(l)->prev) : NULL)) /** * @} */ /** * @} */ /** * @} */ #endif /*EINA_INLIST_H_*/ eina-1.7.10/src/include/eina_cpu.h0000664000175000017500000000233412175475327013624 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_CPU_H_ #define EINA_CPU_H_ #include "eina_types.h" typedef enum _Eina_Cpu_Features { EINA_CPU_MMX = 0x00000001, EINA_CPU_SSE = 0x00000002, EINA_CPU_SSE2 = 0x00000004, EINA_CPU_SSE3 = 0x00000008, /* TODO 3DNow! */ EINA_CPU_ALTIVEC = 0x00000010, EINA_CPU_VIS = 0x00000020, EINA_CPU_NEON = 0x00000040, } Eina_Cpu_Features; EAPI Eina_Cpu_Features eina_cpu_features_get(void); EAPI int eina_cpu_count(void); #endif /* EINA_CPU_H_ */ eina-1.7.10/src/include/eina_stringshare.h0000664000175000017500000003165312175475327015374 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler, Jorge Luis Zapata Muga, Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . * * This file incorporates work covered by the following copyright and * permission notice: * * Copyright (C) 2008 Peter Wehrfritz * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies of the Software and its Copyright notices. In addition publicly * documented acknowledgment must be given that this software has been used if no * source code of this software is made available publicly. This includes * acknowledgments in either Copyright notices, Manuals, Publicity and Marketing * documents or any documentation provided with any product containing this * software. This License does not apply to any software that links to the * libraries provided by this software (statically or dynamically), but only to * the software provided. * * Please see the OLD-COPYING.PLAIN for a plain-english explanation of this notice * and it's intent. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef EINA_STRINGSHARE_H_ #define EINA_STRINGSHARE_H_ #include #include "eina_types.h" /** * @page eina_stringshare_example_01_page * @dontinclude eina_stringshare_01.c * * Like all examples we start by including Eina: * @skip #include * @line #include * * Here we declare some variables and initialize eina: * @until eina_init * * We start the substantive part of the example by showing how to make a part * of a string shared and how to get the length of a shared string: * @until stringshare_strlen * As we add shared strings we also need to delete them when done using them: * @line del * * There are many ways of creating shared strings including an equivalent to * sprintf: * @until del * * An equivalent to snprintf: * @until printf * * But the simplest way of creating a shared string is through * eina_stringshare_add(): * @until printf * * Sometimes you already have a pointer to a shared string and want to use it, * so to make sure the provider of the pointer won't free it while you're using * it you can increase the shared string's ref count: * @until printf * * Whenever you have a pointer to a shared string and would like to change it's * value you should use eina_stringshare_replace(): * @until printf * @warning @b Don't use eina_stringshare_del() followed by * eina_share_common_add(), under some circunstances you might end up deleting * a shared string some other piece of code is using. * * We created str but haven't deleted it yet, and while we called * eina_stringshare_del() on str2, we created it and then increased the ref * count so it's still alive: * @until str2 * * You can see the full source code @ref eina_stringshare_example_01 "here". */ /** * @page eina_stringshare_example_01 * @include eina_stringshare_01.c * @example eina_stringshare_01.c */ /** * @addtogroup Eina_Stringshare_Group Stringshare * * These functions allow you to store a single copy of a string, and use in * multiple places throughout your program. * * This is a method to reduce the number of duplicated strings kept in * memory. It's pretty common for the same strings to be dynamically * allocated repeatedly between applications and libraries, especially in * circumstances where you could have multiple copies of a structure that * allocates the string. So rather than duplicating and freeing these * strings, you request a read-only pointer to an existing string and * only incur the overhead of a hash lookup. * * It sounds like micro-optimizing, but profiling has shown this can have * a significant impact as you scale the number of copies up. It improves * string creation/destruction speed, reduces memory use and decreases * memory fragmentation, so a win all-around. * * Using eina stringshares usually boils down to: * @code * const char *str = eina_stringshare_add("My string"); * ... * //Use str * ... * eina_stringshare_del(str); * @endcode * @note It's very important to note that string shares are @b @c const, * changing them will result in undefined behavior. * @note eina_stringshare_del() @b doesn't guarantee the string share will be * freed, it releases a reference to it, but if other references to it still * exist the string share will live until those are released. * * The following diagram gives an idea of what happens as you create strings * with eina_stringshare_add(): * * @image html eina_stringshare.png * @image latex eina_stringshare.eps height=\textheight * * For more information, see @ref eina_stringshare_example_01_page * "this example". */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @defgroup Eina_Stringshare_Group Stringshare * * @{ */ /** * @typedef Eina_Stringshare * * Interchangeable with "const char *" but still a good visual hint for the * purpose. Maybe in the far far future we'll even add strict type checking. * * @since 1.2.0 */ typedef const char Eina_Stringshare; /** * @brief Retrieve an instance of a string for use in a program. * * @param str The string to retrieve an instance of. * @param slen The string size (<= strlen(str)). * @return A pointer to an instance of the string on success. * @c NULL on failure. * * This function retrieves an instance of @p str. If @p str is * @c NULL, then @c NULL is returned. If @p str is already stored, it * is just returned and its reference counter is increased. Otherwise * a duplicated string of @p str is returned. * * This function does not check string size, but uses the * exact given size. This can be used to share_common part of a larger * buffer or substring. * * @see eina_share_common_add() */ EAPI Eina_Stringshare *eina_stringshare_add_length(const char *str, unsigned int slen) EINA_WARN_UNUSED_RESULT; /** * @brief Retrieve an instance of a string for use in a program. * * @param str The NULL-terminated string to retrieve an instance of. * @return A pointer to an instance of the string on success. * @c NULL on failure. * * This function retrieves an instance of @p str. If @p str is * @c NULL, then @c NULL is returned. If @p str is already stored, it * is just returned and its reference counter is increased. Otherwise * a duplicated string of @p str is returned. * * The string @p str must be NULL terminated ('@\0') and its full * length will be used. To use part of the string or non-null * terminated, use eina_stringshare_add_length() instead. * * @see eina_stringshare_add_length() */ EAPI Eina_Stringshare *eina_stringshare_add(const char *str) EINA_WARN_UNUSED_RESULT; /** * @brief Retrieve an instance of a string for use in a program * from a format string. * * @param fmt The NULL-terminated format string to retrieve an instance of. * @return A pointer to an instance of the string on success. * @c NULL on failure. * * This function retrieves an instance of @p fmt. If @p fmt is * @c NULL, then @c NULL is returned. If @p fmt is already stored, it * is just returned and its reference counter is increased. Otherwise * a duplicated string is returned. * * The format string @p fmt must be NULL-terminated ('@\0') and its full * length will be used. To use part of the format string or non-null * terminated, use eina_stringshare_nprintf() instead. * * @see eina_stringshare_nprintf() */ EAPI Eina_Stringshare *eina_stringshare_printf(const char *fmt, ...) EINA_WARN_UNUSED_RESULT EINA_PRINTF(1, 2); /** * @brief Retrieve an instance of a string for use in a program * from a format string. * * @param fmt The NULL-terminated format string to retrieve an instance of. * @param args The va_args for @p fmt * @return A pointer to an instance of the string on success. * @c NULL on failure. * * This function retrieves an instance of @p fmt with @p args. If @p fmt is * @c NULL, then @c NULL is returned. If @p fmt with @p args is already stored, it * is just returned and its reference counter is increased. Otherwise * a duplicated string is returned. * * The format string @p fmt must be NULL-terminated ('@\0') and its full * length will be used. To use part of the format string or non-null * terminated, use eina_stringshare_nprintf() instead. * * @see eina_stringshare_nprintf() */ EAPI Eina_Stringshare *eina_stringshare_vprintf(const char *fmt, va_list args) EINA_WARN_UNUSED_RESULT; /** * @brief Retrieve an instance of a string for use in a program * from a format string with size limitation. * @param len The length of the format string to use * @param fmt The format string to retrieve an instance of. * @return A pointer to an instance of the string on success. * @c NULL on failure. * * This function retrieves an instance of @p fmt limited by @p len. If @p fmt is * @c NULL or @p len is < 1, then @c NULL is returned. If the resulting string * is already stored, it is returned and its reference counter is increased. * Otherwise a duplicated string is returned. * * @p len length of the format string will be used. To use the * entire format string, use eina_stringshare_printf() instead. * * @see eina_stringshare_printf() */ EAPI Eina_Stringshare *eina_stringshare_nprintf(unsigned int len, const char *fmt, ...) EINA_WARN_UNUSED_RESULT EINA_PRINTF(2, 3); /** * Increment references of the given shared string. * * @param str The shared string. * @return A pointer to an instance of the string on success. * @c NULL on failure. * * This is similar to eina_share_common_add(), but it's faster since it will * avoid lookups if possible, but on the down side it requires the parameter * to be shared string. In other words, it must be the return of a previous * call to one of the stringshare functions. * * There is no unref since this is the work of eina_share_common_del(). */ EAPI Eina_Stringshare *eina_stringshare_ref(Eina_Stringshare *str); /** * @brief Note that the given string has lost an instance. * * @param str string The given string. * * This function decreases the reference counter associated to @p str * if it exists. If that counter reaches 0, the memory associated to * @p str is freed. If @p str is @c NULL, the function returns * immediately. * * @note If the given pointer is not shared, bad things will happen, likely a * segmentation fault. */ EAPI void eina_stringshare_del(Eina_Stringshare *str); /** * @brief Note that the given string @b must be shared. * * @param str the shared string to know the length. It is safe to * give @c NULL, in that case @c 0 is returned. * @return The length of a shared string. * * This function is a cheap way to known the length of a shared * string. * * @note If the given pointer is not shared, bad things will happen, likely a * segmentation fault. If in doubt, try strlen(). */ EAPI int eina_stringshare_strlen(Eina_Stringshare *str) EINA_PURE EINA_WARN_UNUSED_RESULT; /** * @brief Dump the contents of the share_common. * * This function dumps all strings in the share_common to stdout with a * DDD: prefix per line and a memory usage summary. */ EAPI void eina_stringshare_dump(void); static inline Eina_Bool eina_stringshare_replace(Eina_Stringshare **p_str, const char *news) EINA_ARG_NONNULL(1); static inline Eina_Bool eina_stringshare_replace_length(Eina_Stringshare **p_str, const char *news, unsigned int slen) EINA_ARG_NONNULL(1); #include "eina_inline_stringshare.x" /** * @} */ /** * @} */ #endif /* EINA_STRINGSHARE_H_ */ eina-1.7.10/src/include/eina_lock.h0000664000175000017500000001412012175475327013761 00000000000000/* EINA - EFL data type library * Copyright (C) 2011 Vincent Torri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_LOCK_H_ #define EINA_LOCK_H_ #include "eina_config.h" #include "eina_types.h" #include "eina_error.h" /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @defgroup Eina_Lock_Group Lock * * @{ */ typedef enum { EINA_LOCK_FAIL = EINA_FALSE, EINA_LOCK_SUCCEED = EINA_TRUE, EINA_LOCK_DEADLOCK } Eina_Lock_Result; #ifdef EINA_HAVE_THREADS # ifdef _WIN32_WCE # include "eina_inline_lock_wince.x" # elif defined(_WIN32) # include "eina_inline_lock_win32.x" # else # include "eina_inline_lock_posix.x" # endif #else # include "eina_inline_lock_void.x" #endif EAPI extern Eina_Error EINA_ERROR_NOT_MAIN_LOOP; /** @relates static Eina_Bool eina_lock_new(_Eina_Lock *mutex) */ static inline Eina_Bool eina_lock_new(Eina_Lock *mutex); /** @relates static void eina_lock_free(_Eina_Lock *mutex) */ static inline void eina_lock_free(Eina_Lock *mutex); /** @relates static Eina_Lock_Result eina_lock_take(_Eina_Lock *mutex) */ static inline Eina_Lock_Result eina_lock_take(Eina_Lock *mutex); /** @relates static Eina_Lock_Result eina_lock_take_try(_Eina_Lock *mutex) */ static inline Eina_Lock_Result eina_lock_take_try(Eina_Lock *mutex); /** @relates static Eina_Lock_Result eina_lock_release(_Eina_Lock *mutex) */ static inline Eina_Lock_Result eina_lock_release(Eina_Lock *mutex); /** @relates static void eina_lock_debug(const _Eina_Lock *mutex) */ static inline void eina_lock_debug(const Eina_Lock *mutex); /** @relates static Eina_Bool eina_condition_new(_Eina_Condition *cond, _Eina_Lock *mutex) */ static inline Eina_Bool eina_condition_new(Eina_Condition *cond, Eina_Lock *mutex); /** @relates static void eina_condition_free(_Eina_Condition *cond) */ static inline void eina_condition_free(Eina_Condition *cond); /** @relates static Eina_Bool eina_condition_wait(_Eina_Condition *cond) */ static inline Eina_Bool eina_condition_wait(Eina_Condition *cond); /** @relates static Eina_Bool eina_condition_timedwait(_Eina_Condition *cond, double t) */ static inline Eina_Bool eina_condition_timedwait(Eina_Condition *cond, double t); /** @relates static Eina_Bool eina_condition_broadcast(_Eina_Condition *cond) */ static inline Eina_Bool eina_condition_broadcast(Eina_Condition *cond); /** @relates static Eina_Bool eina_condition_signal(_Eina_Condition *cond) */ static inline Eina_Bool eina_condition_signal(Eina_Condition *cond); /** @relates static Eina_Bool eina_rwlock_new(_Eina_RWLock *mutex) */ static inline Eina_Bool eina_rwlock_new(Eina_RWLock *mutex); /** @relates static void eina_rwlock_free(_Eina_RWLock *mutex) */ static inline void eina_rwlock_free(Eina_RWLock *mutex); /** @relates static Eina_Lock_Result eina_rwlock_take_read(_Eina_RWLock *mutex) */ static inline Eina_Lock_Result eina_rwlock_take_read(Eina_RWLock *mutex); /** @relates static Eina_Lock_Result eina_rwlock_take_write(_Eina_RWLock *mutex) */ static inline Eina_Lock_Result eina_rwlock_take_write(Eina_RWLock *mutex); /** @relates static Eina_Lock_Result eina_rwlock_release(_Eina_RWLock *mutex) */ static inline Eina_Lock_Result eina_rwlock_release(Eina_RWLock *mutex); /** @relates static Eina_Bool eina_tls_new(pthread_key_t *key) */ static inline Eina_Bool eina_tls_new(Eina_TLS *key); /** @relates static void eina_tls_free(pthread_key_t key) */ static inline void eina_tls_free(Eina_TLS key); /** @relates static void eina_tls_get(pthread_key_t key) */ static inline void *eina_tls_get(Eina_TLS key); /** @relates static Eina_Bool eina_tls_set(pthread_key_t key, const void *data) */ static inline Eina_Bool eina_tls_set(Eina_TLS key, const void *data); /** @relates static Eina_Bool eina_semaphore_new(sem_t *sem, int count_init) */ static inline Eina_Bool eina_semaphore_new(Eina_Semaphore *sem, int count_init); /** @relates static Eina_Bool eina_semaphore_free(sem_t *sem) */ static inline Eina_Bool eina_semaphore_free(Eina_Semaphore *sem); /** @relates static Eina_Bool eina_semaphore_lock(sem_t *sem) */ static inline Eina_Bool eina_semaphore_lock(Eina_Semaphore *sem); /** @relates static Eina_Bool eina_semaphore_release(sem_t *sem, int count_release) */ static inline Eina_Bool eina_semaphore_release(Eina_Semaphore *sem, int count_release); #ifdef EINA_HAVE_DEBUG_THREADS # define EINA_MAIN_LOOP_CHECK_RETURN_VAL(val) \ do { \ if (EINA_UNLIKELY(!eina_main_loop_is())) \ { \ eina_error_set(EINA_ERROR_NOT_MAIN_LOOP); \ EINA_LOG_ERR("You are calling %s from outside" \ "of the main loop threads in %s at line %i", \ __FUNCTION__, \ __FILE__, \ __LINE__); \ return val; \ } \ } while (0) # define EINA_MAIN_LOOP_CHECK_RETURN \ do { \ if (EINA_UNLIKELY(!eina_main_loop_is())) \ { \ eina_error_set(EINA_ERROR_NOT_MAIN_LOOP); \ EINA_LOG_ERR("You are calling %s from outside" \ "of the main loop threads in %s at line %i", \ __FUNCTION__, \ __FILE__, \ __LINE__); \ return ; \ } \ } while (0) #else /** * @def EINA_MAIN_LOOP_CHECK_RETURN_VAL * @brief The macro doesn't do anything unless EINA_HAVE_DEBUG_THREADS is defined. * @param val The value to be returned. */ # define EINA_MAIN_LOOP_CHECK_RETURN_VAL(val) /** * @def EINA_MAIN_LOOP_CHECK_RETURN * @brief The macro doesn't do anything unless EINA_HAVE_DEBUG_THREADS is defined. */ # define EINA_MAIN_LOOP_CHECK_RETURN #endif /** * @} */ /** * @} */ #endif eina-1.7.10/src/include/eina_trash.h0000664000175000017500000000457712175475327014171 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler, Vincent Torri, Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_TRASH_H__ #define EINA_TRASH_H__ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @addtogroup Eina_Containers_Group Containers * * @{ */ /** * @defgroup Eina_Trash_Group Trash * * @{ */ /** * @typedef Eina_Trash * Type for a generic container of unused allocated pointer. */ typedef struct _Eina_Trash Eina_Trash; /** * @struct _Eina_Trash * Type for a generic container of unused allocated pointer. */ struct _Eina_Trash { Eina_Trash *next; /**< next item in trash. */ }; static inline void eina_trash_init(Eina_Trash **trash) EINA_ARG_NONNULL(1); static inline void eina_trash_push(Eina_Trash **trash, void *data) EINA_ARG_NONNULL(1); static inline void *eina_trash_pop(Eina_Trash **trash) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @def EINA_TRASH_CLEAN * @brief Macro to remove all pointer from the trash. * * @param trash The trash to clean. * @param data The pointer extracted from the trash. * * This macro allow the cleaning of @p trash in an easy way. It will * remove all pointers from @p trash until it's empty. * * This macro can be used for freeing the data in the trash, like in * the following example: * * @code * Eina_Trash *trash = NULL; * char *data; * * // trash is filled with pointer to some duped strings. * * EINA_TRASH_CLEAN(&trash, data) * free(data); * @endcode * * @note this macro is useful when you implement some memory pool. */ #define EINA_TRASH_CLEAN(trash, data) while ((data = eina_trash_pop(trash))) #include "eina_inline_trash.x" /** * @} */ /** * @} */ /** * @} */ #endif /* EINA_TRASH_H_ */ eina-1.7.10/src/include/eina_hash.h0000664000175000017500000012402212175475327013757 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler, Gustavo Sverzut Barbieri, * Vincent Torri, Jorge Luis Zapata Muga, Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_HASH_H_ #define EINA_HASH_H_ #include "eina_types.h" #include "eina_iterator.h" /** * @page hash_01_example_page Eina_Hash in action * @dontinclude eina_hash_01.c * * We are going to store some tuples into our table, that will map each @a name * to a @a number. The cost to access a given number from the name should be * very small, even with many entries in our table. This is the initial data: * @skip _Phone_Entry * @until // _start_entries * * Before starting to play with the hash, let's write a callback that will be * used to free the elements from it. Since we are just storing strduped * strings, we just need to free them: * * @skip static * @until } * * We also need a callback to iterate over the elements of the list later, so * we are defining it now: * * @skip Eina_Bool * @until } * * Now let's create our @ref Eina_Hash using @ref * eina_hash_string_superfast_new : * * @skip eina_init * @until phone_book * * Now we add the keys and data to the hash using @ref eina_hash_add . This * means that the key is copied inside the table, together with the pointer to * the data (phone numbers). * * @skip for * @until } * * Some basic manipulations with the hash, like finding a value given a key, * deleting an entry, modifying an entry are exemplified in the following lines. * Notice that the @ref eina_hash_modify function returns the old value stored * in that entry, and it needs to be freed, while the @ref eina_hash_del * function already calls our free callback: * * @skip Look for * @until free( * * The @ref eina_hash_set function can be used to set a key-value entry to the * table if it doesn't exist, or to modify an existent entry. It returns the old * entry if it was already set, and NULL otherwise. But since it will * return NULL on error too, we need to check if an error has occurred: * * @skip Modify * @until printf("\n"); * * There are different ways of iterate over the entries of a hash. Here we show * two of them: using @ref eina_hash_foreach and @ref Eina_Iterator . * * @skip List of phones * @until eina_iterator_free(it); * * It's also possible to change the key for a specific entry, without having to * remove the entry from the table and adding it again: * * @skipline eina_hash_move * * We can remove all the elements from the table without free the table itself: * * @skip Empty the phone book * @until eina_hash_population * * Or free the the entire table with its content: * * @skipline eina_hash_free * * * The full code for this example can be seen here: @ref eina_hash_01_c */ /** * @page eina_hash_01_c Hash table in action * * @include eina_hash_01.c * @example eina_hash_01.c */ /** * @page hash_02_example_page Different types of tables * * This example shows two more types of hash tables that can be created using * @ref Eina_Hash . For more types, consult the reference documentation of @ref * eina_hash_new. * @include eina_hash_02.c * @example eina_hash_02.c */ /** * @example eina_hash_03.c * Same example as @ref hash_01_example_page but using a "string small" hash * table instead of "string superfast". */ /** * @example eina_hash_04.c * Same example as @ref hash_01_example_page but using a "string djb2" hash * table instead of "string superfast". */ /** * @example eina_hash_05.c * Same example as @ref hash_01_example_page but using a "int32" hash * table instead of "string superfast". */ /** * @example eina_hash_06.c * Same example as @ref hash_01_example_page but using a "int64" hash * table instead of "string superfast". */ /** * @example eina_hash_07.c * Same example as @ref hash_01_example_page but using a "pointer" hash * table instead of "string superfast". */ /** * @example eina_hash_08.c * This example shows the the usage of eina_hash_add(), eina_hash_add_by_hash(), * eina_hash_direct_add_by_hash(), eina_hash_del(), eina_hash_del_by_key_hash(), * eina_hash_del_by_key(), eina_hash_del_by_data(), eina_hash_find_by_hash() and * eina_hash_modify_by_hash(). */ /** * @addtogroup Eina_Hash_Group Hash Table * * @brief Hash table management. Useful for mapping keys to values. * * The hash table is useful for when one wants to implement a table that maps * keys (usually strings) to data, and have relatively fast access time. The * performance is proportional to the load factor of the table (number of * elements / number of buckets). See @ref hashtable_algo for implementation * details. * * Different implementations exists depending on what kind of key will be used * to access the data: strings, integers, pointers, stringshared or your own. * * Eina hash tables can copy the keys when using eina_hash_add() or not when * using eina_hash_direct_add(). * * @section hashtable_algo Algorithm * * The Eina_Hash is implemented using an array of N "buckets", where each * bucket is a pointer to a structure that is the head of a red-black tree. The * array can then be indexed by the [hash_of_element mod N]. The * hash_of_element is calculated using the hashing function, passed as * parameter to the @ref eina_hash_new function. N is the number of buckets * (array positions), and is calculated based on the buckets_power_size * (argument of @ref eina_hash_new too). The following picture ilustrates the * basic idea: * * @htmlonly * * @endhtmlonly * @image latex 01_hash-table.eps * * Adding an element to the hash table is made of: * @li calculating the hash for that key (using the specified hash function); * @li calculate the array position [hash mod N]; * @li add the element to the rbtree on that position. * * The two first steps have constant time, proportional to the hash function * being used. Adding the key to the rbtree will be proportional on the number * of keys on that bucket. * * The average cost of lookup depends on the number of keys per * bucket (load factor) of the table, if the distribution of keys is * sufficiently uniform. * * @section hashtable_perf Performance * * As said before, the performance depends on the load factor. So trying to keep * the load factor as small as possible will improve the hash table performance. But * increasing the buckets_power_size will also increase the memory consumption. * The default hash table creation functions already have a good number of * buckets, enough for most cases. Particularly for strings, if just a few keys * (less than 30) will be added to the hash table, @ref * eina_hash_string_small_new should be used, since it will reduce the memory * consumption for the buckets, and you still won't have many collisions. * However, @ref eina_hash_string_small_new still uses the same hash calculation * function that @ref eina_hash_string_superfast_new, which is more complex than * @ref eina_hash_string_djb2_new. The latter has a faster hash computation * function, but that will imply on a not so good distribution. But if just a * few keys are being added, this is not a problem, it will still have not many * collisions and be faster to calculate the hash than in a hash created with * @ref eina_hash_string_small_new and @ref eina_hash_string_superfast_new. * * A simple comparison between them would be: * * @li @c djb2 - faster hash function - 256 buckets (higher memory consumption) * @li @c string_small - slower hash function but less collisions - 32 buckets * (lower memory consumption) * @li @c string_superfast - slower hash function but less collisions - 256 buckets * (higher memory consumption) - not randomized, avoid it on public remote interface. * * Basically for a very small number of keys (10 or less), @c djb2 should be * used, or @c string_small if you have a restriction on memory usage. And for a * higher number of keys, @c string_superfast should be preferred if not used on a * public remote interface. * * If just stringshared keys are being added, use @ref * eina_hash_stringshared_new. If a lot of keys will be added to the hash table * (e.g. more than 1000), then it's better to increase the buckets_power_size. * See @ref eina_hash_new for more details. * * When adding a new key to a hash table, use @ref eina_hash_add or @ref * eina_hash_direct_add (the latter if this key is already stored elsewhere). If * the key may be already inside the hash table, instead of checking with * @ref eina_hash_find and then doing @ref eina_hash_add, one can use just @ref * eina_hash_set (this will change the data pointed by this key if it was * already present in the table). * * @section hashtable_tutorial Tutorial * * These examples show many Eina_Hash functions in action: *
    *
  • @ref hash_01_example_page *
  • @ref hash_02_example_page *
  • Different types of hash in use: *
      *
    • @ref eina_hash_03.c "string small" *
    • @ref eina_hash_04.c "string djb2" *
    • @ref eina_hash_05.c "int32" *
    • @ref eina_hash_06.c "int64" *
    • @ref eina_hash_07.c "pointer" *
    *
  • @ref eina_hash_08.c "Different add and delete functions" *
*/ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @addtogroup Eina_Containers_Group Containers * * @{ */ /** * @defgroup Eina_Hash_Group Hash Table * * @{ */ /** * @typedef Eina_Hash * Type for a generic hash table. */ typedef struct _Eina_Hash Eina_Hash; typedef struct _Eina_Hash_Tuple Eina_Hash_Tuple; struct _Eina_Hash_Tuple { const void *key; /**< The key */ void *data; /**< The data associated to the key */ unsigned int key_length; /**< The length of the key */ }; typedef unsigned int (*Eina_Key_Length)(const void *key); /** * @def EINA_KEY_LENGTH * @param Function The function used to calculate length of hash key. */ #define EINA_KEY_LENGTH(Function) ((Eina_Key_Length)Function) typedef int (*Eina_Key_Cmp)(const void *key1, int key1_length, const void *key2, int key2_length); /** * @def EINA_KEY_CMP * @param Function The function used to compare hash key. */ #define EINA_KEY_CMP(Function) ((Eina_Key_Cmp)Function) typedef int (*Eina_Key_Hash)(const void *key, int key_length); /** * @def EINA_KEY_HASH * @param Function The function used to hash key. */ #define EINA_KEY_HASH(Function) ((Eina_Key_Hash)Function) typedef Eina_Bool (*Eina_Hash_Foreach)(const Eina_Hash *hash, const void *key, void *data, void *fdata); /** * @brief Create a new hash table. * * @param key_length_cb The function called when getting the size of the key. * @param key_cmp_cb The function called when comparing the keys. * @param key_hash_cb The function called when getting the values. * @param data_free_cb The function called on each value when the hash table is * freed, or when an item is deleted from it. @c NULL can be passed as * callback. * @param buckets_power_size The size of the buckets. * @return The new hash table. * * This function creates a new hash table using user-defined callbacks * to manage the hash table. On failure, @c NULL is returned * and #EINA_ERROR_OUT_OF_MEMORY is set. If @p key_cmp_cb or @p key_hash_cb * are @c NULL, @c NULL is returned. If @p buckets_power_size is * smaller or equal than 2, or if it is greater or equal than 17, * @c NULL is returned. * * The number of buckets created will be 2 ^ @p buckets_power_size. This means * that if @p buckets_power_size is 5, there will be created 32 buckets. for a * @p buckets_power_size of 8, there will be 256 buckets. * * Pre-defined functions are available to create a hash table. See * eina_hash_string_djb2_new(), eina_hash_string_superfast_new(), * eina_hash_string_small_new(), eina_hash_int32_new(), * eina_hash_int64_new(), eina_hash_pointer_new() and * eina_hash_stringshared_new(). */ EAPI Eina_Hash *eina_hash_new(Eina_Key_Length key_length_cb, Eina_Key_Cmp key_cmp_cb, Eina_Key_Hash key_hash_cb, Eina_Free_Cb data_free_cb, int buckets_power_size) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(2, 3); /** * @brief Redefine the callback that clean the data of a hash * * @param hash The given hash table * @param data_free_cb The function called on each value when the hash * table is freed, or when an item is deleted from it. @c NULL can be passed as * callback to remove an existing callback. * * The argument received by @p data_free_cb will be that data of the item being * removed. * * @since 1.1 * @see eina_hash_new. */ EAPI void eina_hash_free_cb_set(Eina_Hash *hash, Eina_Free_Cb data_free_cb) EINA_ARG_NONNULL(1); /** * @brief Create a new hash table using the djb2 algorithm. * * @param data_free_cb The function called on each value when the hash table * is freed, or when an item is deleted from it. @c NULL can be passed as * callback. * @return The new hash table. * * This function creates a new hash table using the djb2 algorithm for * table management and strcmp() to compare the keys. Values can then * be looked up with pointers other than the original key pointer that * was used to add values. On failure, this function returns @c NULL. */ EAPI Eina_Hash *eina_hash_string_djb2_new(Eina_Free_Cb data_free_cb); /** * @brief Create a new hash table for use with strings. * * @param data_free_cb The function called on each value when the hash table * is freed, or when an item is deleted from it. @c NULL can be passed as * callback. * @return The new hash table. * * This function creates a new hash table using the superfast algorithm * for table management and strcmp() to compare the keys. Values can * then be looked up with pointers other than the original key pointer * that was used to add values. On failure, this function returns * @c NULL. * * NOTE: don't use this kind of hash when their is a possibility to remotely * request and push data in it. This hash is subject to denial of service. */ EAPI Eina_Hash *eina_hash_string_superfast_new(Eina_Free_Cb data_free_cb); /** * @brief Create a new hash table for use with strings with small bucket size. * * @param data_free_cb The function called on each value when the hash table * is freed, or when an item is deleted from it. @c NULL can be passed as * callback. * @return The new hash table. * * This function creates a new hash table using the superfast algorithm * for table management and strcmp() to compare the keys, but with a * smaller bucket size (compared to eina_hash_string_superfast_new()) * which will minimize the memory used by the returned hash * table. Values can then be looked up with pointers other than the * original key pointer that was used to add values. On failure, this * function returns @c NULL. */ EAPI Eina_Hash *eina_hash_string_small_new(Eina_Free_Cb data_free_cb); /** * @brief Create a new hash table for use with 32bit integers. * * @param data_free_cb The function called on each value when the hash table * is freed, or when an item is deleted from it. @c NULL can be passed as * callback. * @return The new hash table. * * This function creates a new hash table where keys are 32bit integers. * When adding or looking up in the hash table, pointers to 32bit integers * must be passed. They can be addresses on the stack if you let the * eina_hash copy the key. Values can then * be looked up with pointers other than the original key pointer that was * used to add values. This method is not suitable to match string keys as * it would only match the first character. * On failure, this function returns @c NULL. */ EAPI Eina_Hash *eina_hash_int32_new(Eina_Free_Cb data_free_cb); /** * @brief Create a new hash table for use with 64bit integers. * * @param data_free_cb The function called on each value when the hash table * is freed, or when an item is deleted from it. @c NULL can be passed as * callback. * @return The new hash table. * * This function creates a new hash table where keys are 64bit integers. * When adding or looking up in the hash table, pointers to 64bit integers * must be passed. They can be addresses on the stack. Values can then * be looked up with pointers other than the original key pointer that was * used to add values. This method is not suitable to match string keys as * it would only match the first character. * On failure, this function returns @c NULL. */ EAPI Eina_Hash *eina_hash_int64_new(Eina_Free_Cb data_free_cb); /** * @brief Create a new hash table for use with pointers. * * @param data_free_cb The function called on each value when the hash table * is freed, or when an item is deleted from it. @c NULL can be passed as * callback. * @return The new hash table. * * This function creates a new hash table using the int64/int32 algorithm for * table management and dereferenced pointers to compare the * keys. Values can then be looked up with pointers other than the * original key pointer that was used to add values. This method may * appear to be able to match string keys, actually it only matches * the first character. On failure, this function returns @c NULL. */ EAPI Eina_Hash *eina_hash_pointer_new(Eina_Free_Cb data_free_cb); /** * @brief Create a new hash table optimized for stringshared values. * * @param data_free_cb The function called on each value when the hash table * is freed, or when an item is deleted from it. @c NULL can be passed as * callback. * @return The new hash table. * * This function creates a new hash table optimized for stringshared * values. Values CAN NOT be looked up with pointers not * equal to the original key pointer that was used to add a value. On failure, * this function returns @c NULL. * * Excerpt of code that will NOT work with this type of hash: * * @code * extern Eina_Hash *hash; * extern const char *value; * const char *a = eina_stringshare_add("key"); * * eina_hash_add(hash, a, value); * eina_hash_find(hash, "key") * @endcode */ EAPI Eina_Hash *eina_hash_stringshared_new(Eina_Free_Cb data_free_cb); /** * @brief Add an entry to the given hash table. * * @param hash The given hash table. Cannot be @c NULL. * @param key A unique key. Cannot be @c NULL. * @param data Data to associate with the string given by @p key. Cannot be @c * NULL. * @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. * * This function adds @p key to @p hash. @p key is * expected to be unique within the hash table. Key uniqueness varies * depending on the type of @p hash: a stringshared @ref Eina_Hash * need to have unique pointers (which implies unique strings). * All other string hash types require the strings * themselves to be unique. Pointer, int32 and int64 hashes need to have these * values as unique. Failure to use sufficient uniqueness will * result in unexpected results when inserting data pointers accessed * with eina_hash_find(), and removed with eina_hash_del(). Key * strings are case sensitive. If an error occurs, eina_error_get() * should be used to determine if an allocation error occurred during * this function. This function returns #EINA_FALSE if an error * occurred, #EINA_TRUE otherwise. */ EAPI Eina_Bool eina_hash_add(Eina_Hash *hash, const void *key, const void *data) EINA_ARG_NONNULL(1, 2, 3); /** * @brief Add an entry to the given hash table without duplicating the string * key. * * @param hash The given hash table. Cannot be @c NULL. * @param key A unique key. Cannot be @c NULL. * @param data Data to associate with the string given by @p key. Cannot be @c * NULL * @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. * * This function adds @p key to @p hash. @p key is * expected to be unique within the hash table. Key uniqueness varies * depending on the type of @p hash: a stringshared @ref Eina_Hash * need have unique pointers (which implies unique strings). * All other string hash types require the strings * themselves to be unique. Pointer, int32 and int64 hashes need to have these * values as unique. Failure to use sufficient uniqueness will * result in unexpected results when inserting data pointers accessed * with eina_hash_find(), and removed with eina_hash_del(). This * function does not make a copy of @p key, so it must be a string * constant or stored elsewhere ( in the object being added). Key * strings are case sensitive. If an error occurs, eina_error_get() * should be used to determine if an allocation error occurred during * this function. This function returns #EINA_FALSE if an error * occurred, #EINA_TRUE otherwise. */ EAPI Eina_Bool eina_hash_direct_add(Eina_Hash *hash, const void *key, const void *data) EINA_ARG_NONNULL(1, 2, 3); /** * @brief Remove the entry identified by a key or a data from the given * hash table. * * @param hash The given hash table. * @param key The key. * @param data The data pointer to remove if the key is @c NULL. * @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. * * This function removes the entry identified by @p key or @p data * from @p hash. If a free function was given to the * callback on creation, it will be called for the data being * deleted. If @p hash is @c NULL, the functions returns immediately #EINA_FALSE. * If @p key is @c NULL, then @p data is used to find the a * match to remove, otherwise @p key is used and @p data is not * required and can be @c NULL. This function returns #EINA_FALSE if * an error occurred, #EINA_TRUE otherwise. * * @note if you know you already have the key, use * eina_hash_del_by_key() or eina_hash_del_by_key_hash(). If you * know you don't have the key, use eina_hash_del_by_data() * directly. */ EAPI Eina_Bool eina_hash_del(Eina_Hash *hash, const void *key, const void *data) EINA_ARG_NONNULL(1); /** * @brief Retrieve a specific entry in the given hash table. * * @param hash The given hash table. * @param key The key of the entry to find. * @return The data pointer for the stored entry on success, @c NULL * otherwise. * * This function retrieves the entry associated to @p key in * @p hash. If @p hash is @c NULL, this function returns immediately * @c NULL. This function returns the data pointer on success, @c NULL * otherwise. */ EAPI void *eina_hash_find(const Eina_Hash *hash, const void *key) EINA_ARG_NONNULL(2); /** * @brief Modify the entry pointer at the specified key and return the old * entry. * @param hash The given hash table. * @param key The key of the entry to modify. * @param data The data to replace the old entry. * @return The data pointer for the old stored entry on success, or * @c NULL otherwise. * * This function modifies the data of @p key with @p data in @p * hash. If no entry is found, nothing is added to @p hash. On success * this function returns the old entry, otherwise it returns @c NULL. */ EAPI void *eina_hash_modify(Eina_Hash *hash, const void *key, const void *data) EINA_ARG_NONNULL(1, 2, 3); /** * @brief Modify the entry pointer at the specified key and return the * old entry or add the entry if not found. * * @param hash The given hash table. * @param key The key of the entry to modify. * @param data The data to replace the old entry * @return The data pointer for the old stored entry, or @c NULL * otherwise. * * This function modifies the data of @p key with @p data in @p * hash. If no entry is found, @p data is added to @p hash with the * key @p key. On success this function returns the old entry, * otherwise it returns @c NULL. To check for errors, use * eina_error_get(). */ EAPI void *eina_hash_set(Eina_Hash *hash, const void *key, const void *data) EINA_ARG_NONNULL(1, 2); /** * @brief Change the key associated with a data without triggering the * free callback. * * @param hash The given hash table. * @param old_key The current key associated with the data * @param new_key The new key to associate data with * @return #EINA_FALSE in any case but success, #EINA_TRUE on success. * * This function allows for the move of data from one key to another, * but does not call the Eina_Free_Cb associated with the hash table * when destroying the old key. */ EAPI Eina_Bool eina_hash_move(Eina_Hash *hash, const void *old_key, const void *new_key) EINA_ARG_NONNULL(1, 2, 3); /** * Free the given hash table resources. * * @param hash The hash table to be freed. * * This function frees up all the memory allocated to storing @p hash, * and call the free callback if it has been passed to the hash table * at creation time. If no free callback has been passed, any entries * in the table that the program has no more pointers for elsewhere * may now be lost, so this should only be called if the program has * already freed any allocated data in the hash table or has the * pointers for data in the table stored elsewhere as well. If @p hash * is @c NULL, the function returns immediately. * * Example: * @code * extern Eina_Hash *hash; * * eina_hash_free(hash); * hash = NULL; * @endcode */ EAPI void eina_hash_free(Eina_Hash *hash) EINA_ARG_NONNULL(1); /** * Free the given hash table buckets resources. * * @param hash The hash table whose buckets have to be freed. * * This function frees up all the memory allocated to storing the * buckets of @p hash, and calls the free callback on all hash table * buckets if it has been passed to the hash table at creation time, * then frees the buckets. If no free callback has been passed, no * buckets value will be freed. If @p hash is @c NULL, the function * returns immediately. */ EAPI void eina_hash_free_buckets(Eina_Hash *hash) EINA_ARG_NONNULL(1); /** * @brief Returns the number of entries in the given hash table. * * @param hash The given hash table. * @return The number of entries in the hash table. * * This function returns the number of entries in @p hash, or 0 on * error. If @p hash is @c NULL, @c 0 is returned. */ EAPI int eina_hash_population(const Eina_Hash *hash) EINA_ARG_NONNULL(1); /** * @brief Add an entry to the given hash table. * * @param hash The given hash table. Cannot be @c NULL. * @param key A unique key. Cannot be @c NULL. * @param key_length The length of the key. * @param key_hash The hash that will always match key. * @param data The data to associate with the string given by the key. Cannot be * @c NULL. * @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. * * This function adds @p key to @p hash. @p hash, @p key and @p data * cannot be @c NULL, in that case #EINA_FALSE is returned. @p key is * expected to be a unique within the hash table. Otherwise, * one cannot be sure which inserted data pointer will be accessed * with @ref eina_hash_find, and removed with @ref eina_hash_del. Do * not forget to count '\\0' for string when setting the value of * @p key_length. @p key_hash is expected to always match * @p key. Otherwise, one cannot be sure to find it again with @ref * eina_hash_find_by_hash. Key strings are case sensitive. If an error * occurs, eina_error_get() should be used to determine if an * allocation error occurred during this function. This function * returns #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. * * @see eina_hash_add() */ EAPI Eina_Bool eina_hash_add_by_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash, const void *data) EINA_ARG_NONNULL(1, 2, 5); /** * @brief Add an entry to the given hash table and do not duplicate the string * key. * * @param hash The given hash table. Cannot be @c NULL. * @param key A unique key. Cannot be @c NULL. * @param key_length Should be the length of @p key (don't forget to count * '\\0' for string). * @param key_hash The hash that will always match key. * @param data Data to associate with the string given by @p key. Cannot be @c * NULL. * @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. * * This function adds @p key to @p hash. @p hash, @p key and @p data * can be @c NULL, in that case #EINA_FALSE is returned. @p key is * expected to be unique within the hash table. Otherwise, * one cannot be sure which inserted data pointer will be accessed * with @ref eina_hash_find, and removed with @ref eina_hash_del. This * function does not make a copy of @p key so it must be a string * constant or stored elsewhere (in the object being added). Do * not forget to count '\\0' for string when setting the value of * @p key_length. @p key_hash is expected to always match * @p key. Otherwise, one cannot be sure to find it again with @ref * eina_hash_find_by_hash. Key strings are case sensitive. If an error * occurs, eina_error_get() should be used to determine if an * allocation error occurred during this function. This function * returns #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. * * @see eina_hash_direct_add() */ EAPI Eina_Bool eina_hash_direct_add_by_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash, const void *data) EINA_ARG_NONNULL(1, 2, 5); /** * @brief Remove the entry identified by a key and a key hash from the given * hash table. * * @param hash The given hash table. Cannot be @c NULL. * @param key The key. Cannot be @c NULL. * @param key_length The length of the key. * @param key_hash The hash that always match the key. * @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. * * This function removes the entry identified by @p key and * @p key_hash from @p hash. If a free function was given to the * callback on creation, it will be called for the data being * deleted. Do not forget to count '\\0' for string when setting the * value of @p key_length. If @p hash or @p key are @c NULL, the * functions returns immediately #EINA_FALSE. This function * returns #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. * * @note if you don't have the key_hash, use eina_hash_del_by_key() instead. * @note if you don't have the key, use eina_hash_del_by_data() instead. */ EAPI Eina_Bool eina_hash_del_by_key_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash) EINA_ARG_NONNULL(1, 2); /** * @brief Remove the entry identified by a key from the given hash table. * * This version will calculate key length and hash by using functions * provided to hash creation function. * * @param hash The given hash table. Cannot be @c NULL. * @param key The key. Cannot be @c NULL. * @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. * * This function removes the entry identified by @p key from @p * hash. The key length and hash will be calculated automatically by * using functiond provided to has creation function. If a free * function was given to the callback on creation, it will be called * for the data being deleted. If @p hash or @p key are @c NULL, the * functions returns immediately #EINA_FALSE. This function * returns #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. * * @note if you already have the key_hash, use eina_hash_del_by_key_hash() * instead. * @note if you don't have the key, use eina_hash_del_by_data() instead. */ EAPI Eina_Bool eina_hash_del_by_key(Eina_Hash *hash, const void *key) EINA_ARG_NONNULL(1, 2); /** * @brief Remove the entry identified by a data from the given hash table. * * This version is slow since there is no quick access to nodes based on data. * * @param hash The given hash table. Cannot be @c NULL. * @param data The data value to search and remove. Cannot be @c NULL. * @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. * thing goes fine. * * This function removes the entry identified by @p data from @p * hash. If a free function was given to the callback on creation, it * will be called for the data being deleted. If @p hash or @p data * are @c NULL, the functions returns immediately #EINA_FALSE. This * function returns #EINA_FALSE if an error occurred, #EINA_TRUE * otherwise. * * @note if you already have the key, use eina_hash_del_by_key() or * eina_hash_del_by_key_hash() instead. */ EAPI Eina_Bool eina_hash_del_by_data(Eina_Hash *hash, const void *data) EINA_ARG_NONNULL(1, 2); /** * @brief Remove the entry identified by a key and a key hash or a * data from the given hash table. * * If @p key is @c NULL, then @p data is used to find a match to * remove. * * @param hash The given hash table. Cannot be @c NULL. * @param key The key. * @param key_length The length of the key. * @param key_hash The hash that always match the key. * @param data The data pointer to remove if the key is @c NULL. * @return #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. * * This function removes the entry identified by @p key and * @p key_hash, or @p data, from @p hash. If a free function was given to * the callback on creation, it will be called for the data being * deleted. If @p hash is @c NULL, the functions returns immediately #EINA_FALSE. * If @p key is @c NULL, then @p key_length and @p key_hash * are ignored and @p data is used to find a match to remove, * otherwise @p key and @p key_hash are used and @p data is not * required and can be @c NULL. Do not forget to count '\\0' for * string when setting the value of @p key_length. This function * returns #EINA_FALSE if an error occurred, #EINA_TRUE otherwise. * * @note if you know you already have the key, use eina_hash_del_by_key_hash(), * if you know you don't have the key, use eina_hash_del_by_data() * directly. */ EAPI Eina_Bool eina_hash_del_by_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash, const void *data) EINA_ARG_NONNULL(1); /** * @brief Retrieve a specific entry in the given hash table. * * @param hash The given hash table. Cannot be @c NULL. * @param key The key of the entry to find. * @param key_length The length of the key. * @param key_hash The hash that always match the key * @return The data pointer for the stored entry on success, @c NULL * otherwise. * * This function retrieves the entry associated to @p key of length * @p key_length in @p hash. @p key_hash is the hash that always match * @p key. It is ignored if @p key is @c NULL. Do not forget to count * '\\0' for string when setting the value of @p key_length. If * @p hash is @c NULL, this function returns immediately @c NULL. This * function returns the data pointer on success, @c NULL otherwise. */ EAPI void *eina_hash_find_by_hash(const Eina_Hash *hash, const void *key, int key_length, int key_hash) EINA_ARG_NONNULL(1, 2); /** * @brief Modify the entry pointer at the specified key and returns * the old entry. * * @param hash The given hash table. * @param key The key of the entry to modify. * @param key_length Should be the length of @p key (don't forget to count * '\\0' for string). * @param key_hash The hash that always match the key. Ignored if @p key is * @c NULL. * @param data The data to replace the old entry, if it exists. * @return The data pointer for the old stored entry, or @c NULL if not * found. If an existing entry is not found, nothing is added to the * hash. */ EAPI void *eina_hash_modify_by_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash, const void *data) EINA_ARG_NONNULL(1, 2, 5); /** * @brief Returned a new iterator associated to hash keys. * * @param hash The hash. * @return A new iterator. * * This function returns a newly allocated iterator associated to @p * hash. If @p hash is not populated, this function still returns a * valid iterator that will always return false on * eina_iterator_next(), thus keeping API sane. * * If the memory can not be allocated, NULL is returned * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is * returned. * * @warning if the hash structure changes then the iterator becomes * invalid! That is, if you add or remove items this iterator * behavior is undefined and your program may crash! */ EAPI Eina_Iterator *eina_hash_iterator_key_new(const Eina_Hash *hash) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Returned a new iterator associated to hash data. * * @param hash The hash. * @return A new iterator. * * This function returns a newly allocated iterator associated to * @p hash. If @p hash is not populated, this function still returns a * valid iterator that will always return false on * eina_iterator_next(), thus keeping API sane. * * If the memory can not be allocated, @c NULL is returned * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is * returned. * * @warning if the hash structure changes then the iterator becomes * invalid. That is, if you add or remove items this iterator behavior * is undefined and your program may crash. */ EAPI Eina_Iterator *eina_hash_iterator_data_new(const Eina_Hash *hash) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Returned a new iterator associated to hash keys and data. * * @param hash The hash. * @return A new iterator. * * This function returns a newly allocated iterator associated to @p * hash. If @p hash is not populated, this function still returns a * valid iterator that will always return false on * eina_iterator_next(), thus keeping API sane. * * If the memory can not be allocated, @c NULL is returned * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is * returned. * * @note iterator data will provide values as Eina_Hash_Tuple that should not * be modified! * * @warning if the hash structure changes then the iterator becomes * invalid! That is, if you add or remove items this iterator * behavior is undefined and your program may crash! */ EAPI Eina_Iterator *eina_hash_iterator_tuple_new(const Eina_Hash *hash) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Call a function on every member stored in the hash table * * @param hash The hash table whose members will be walked * @param func The function to call on each parameter * @param fdata The data pointer to pass to the function being called * * This function goes through every entry in the hash table @p hash and calls * the function @p func on each member. The function should @b not modify the * hash table contents if it returns @c 1. @b If the hash table contents are * modified by this function or the function wishes to stop processing it must * return @c 0, otherwise return @c 1 to keep processing. * * Example: * @code * extern Eina_Hash *hash; * * Eina_Bool hash_fn(const Eina_Hash *hash, const void *key, * void *data, void *fdata) * { * printf("Func data: %s, Hash entry: %s / %p\n", * fdata, (const char *)key, data); * return 1; * } * * int main(int argc, char **argv) * { * char *hash_fn_data; * * hash_fn_data = strdup("Hello World"); * eina_hash_foreach(hash, hash_fn, hash_fn_data); * free(hash_fn_data); * } * @endcode */ EAPI void eina_hash_foreach(const Eina_Hash *hash, Eina_Hash_Foreach func, const void *fdata) EINA_ARG_NONNULL(1, 2); /* Paul Hsieh (http://www.azillionmonkeys.com/qed/hash.html) hash function used by WebCore (http://webkit.org/blog/8/hashtables-part-2/) */ EAPI int eina_hash_superfast(const char *key, int len) EINA_ARG_NONNULL(1); /* Hash function first reported by dan bernstein many years ago in comp.lang.c */ static inline int eina_hash_djb2(const char *key, int len) EINA_ARG_NONNULL(1); static inline int eina_hash_djb2_len(const char *key, int *plen) EINA_ARG_NONNULL(1, 2); /* Hash function from http://www.concentric.net/~Ttwang/tech/inthash.htm */ static inline int eina_hash_int32(const unsigned int *pkey, int len) EINA_ARG_NONNULL(1); static inline int eina_hash_int64(const unsigned long int *pkey, int len) EINA_ARG_NONNULL(1); /* http://sites.google.com/site/murmurhash/ */ static inline int eina_hash_murmur3(const char *key, int len) EINA_ARG_NONNULL(1); #include "eina_inline_hash.x" /** * @} */ /** * @} */ /** * @} */ #endif /*EINA_HASH_H_*/ eina-1.7.10/src/include/eina_inline_f16p16.x0000664000175000017500000000415112175475327015335 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * Copyright (C) 2009 Cedric BAIL * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLINE_F16P16_X_ #define EINA_INLINE_F16P16_X_ static inline Eina_F16p16 eina_f16p16_add(Eina_F16p16 a, Eina_F16p16 b) { return a + b; } static inline Eina_F16p16 eina_f16p16_sub(Eina_F16p16 a, Eina_F16p16 b) { return a - b; } static inline Eina_F16p16 eina_f16p16_mul(Eina_F16p16 a, Eina_F16p16 b) { return (Eina_F16p16)(((int64_t)a * (int64_t)b) >> 16); } static inline Eina_F16p16 eina_f16p16_scale(Eina_F16p16 a, int b) { return a * b; } static inline Eina_F16p16 eina_f16p16_div(Eina_F16p16 a, Eina_F16p16 b) { return (Eina_F16p16) ((((int64_t) a) << 16) / (int64_t) b); } static inline Eina_F16p16 eina_f16p16_sqrt(Eina_F16p16 a) { unsigned int root, remHi, remLo, testDiv, count; root = 0; /* Clear root */ remHi = 0; /* Clear high part of partial remainder */ remLo = a; /* Get argument into low part of partial remainder */ count = (15 + (16 >> 1)); /* Load loop counter */ do { remHi = (remHi << 2) | (remLo >> 30); remLo <<= 2; /* get 2 bits of arg */ root <<= 1; /* Get ready for the next bit in the root */ testDiv = (root << 1) + 1; /* Test radical */ if (remHi >= testDiv) { remHi -= testDiv; root++; } } while (count-- != 0); return root; } static inline unsigned int eina_f16p16_fracc_get(Eina_F16p16 v) { return (v & 0xffff); } #endif eina-1.7.10/src/include/eina_inline_mempool.x0000664000175000017500000001047512175475327016070 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLINE_MEMPOOL_X_ #define EINA_INLINE_MEMPOOL_X_ #include /** * @addtogroup Eina_Memory_Pool_Group Memory Pool * * @{ */ /* Memory Pool */ typedef struct _Eina_Mempool_Backend_ABI1 Eina_Mempool_Backend_ABI1; typedef struct _Eina_Mempool_Backend_ABI2 Eina_Mempool_Backend_ABI2; struct _Eina_Mempool_Backend { const char *name; void *(*init)(const char *context, const char *options, va_list args); void (*free)(void *data, void *element); void *(*alloc)(void *data, unsigned int size); void *(*realloc)(void *data, void *element, unsigned int size); void (*garbage_collect)(void *data); void (*statistics)(void *data); void (*shutdown)(void *data); void (*repack)(void *data, Eina_Mempool_Repack_Cb cb, void *cb_data); }; struct _Eina_Mempool_Backend_ABI1 { const char *name; void *(*init)(const char *context, const char *options, va_list args); void (*free)(void *data, void *element); void *(*alloc)(void *data, unsigned int size); void *(*realloc)(void *data, void *element, unsigned int size); void (*garbage_collect)(void *data); void (*statistics)(void *data); void (*shutdown)(void *data); }; struct _Eina_Mempool_Backend_ABI2 { void (*repack)(void *data, Eina_Mempool_Repack_Cb cb, void *cb_data); }; struct _Eina_Mempool { Eina_Mempool_Backend_ABI1 backend; void *backend_data; Eina_Mempool_Backend_ABI2 *backend2; }; /** * @brief Re-allocate an amount memory by the given mempool. * * @param mp The mempool. * @param element The element to re-allocate. * @param size The size in bytes to re-allocate. * @return The newly re-allocated data. * * This function re-allocates and returns @p element with @p size bytes using the * mempool @p mp. If not used anymore, the data must be freed with eina_mempool_free(). * @warning No checks are done for @p mp. */ static inline void * eina_mempool_realloc(Eina_Mempool *mp, void *element, unsigned int size) { return mp->backend.realloc(mp->backend_data, element, size); } /** * @brief Allocate memory using the given mempool. * * @param mp The mempool. * @param size The size in bytes to allocate. * @return The newly allocated data. * * This function allocates and returns @p size bytes using the mempool @p mp. * If not used anymore, the data must be freed with eina_mempool_free(). * @warning No checks are done for @p mp. */ static inline void * eina_mempool_malloc(Eina_Mempool *mp, unsigned int size) { return mp->backend.alloc(mp->backend_data, size); } /** * @brief Allocate and zero memory using the given mempool. * * @param mp The mempool. * @param size The size in bytes to allocate. * @return The newly allocated data. * * This function allocates, zeroes, and returns @p size bytes using the mempool @p mp. * If not used anymore, the data must be freed with eina_mempool_free(). * @warning No checks are done for @p mp. * @since 1.2 */ static inline void * eina_mempool_calloc(Eina_Mempool *mp, unsigned int size) { void *r = mp->backend.alloc(mp->backend_data, size); if (!r) return NULL; memset(r, 0, size); return r; } /** * @brief Free resources previously allocated by the given mempool. * * @param mp The mempool. * @param element The data to free. * * This function frees @p element allocated by @p mp. @p element must * have been obtained from eina_mempool_malloc(), eina_mempool_calloc(), or * eina_mempool_realloc(). * @warning No checks are done for @p mp. */ static inline void eina_mempool_free(Eina_Mempool *mp, void *element) { if (!element) return ; mp->backend.free(mp->backend_data, element); } /** * @} */ #endif eina-1.7.10/src/include/eina_clist.h0000664000175000017500000003131712175475327014156 00000000000000/* * Linked lists support * * Copyright (C) 2002 Alexandre Julliard * Copyright (C) 2011 Mike McCormack (adapted for Eina) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef __EINA_CLIST_H__ #define __EINA_CLIST_H__ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @addtogroup Eina_Containers_Group Containers * * @{ */ /** * @defgroup Eina_CList_Group Compact List * * @{ * * @brief Eina_Clist is a compact (inline) list implementation * * Elements of this list are members of the structs stored in the list * * Advantages over @ref Eina_List and @ref Eina_Inlist : * - uses less memory (two machine words per item) * - allows removing items without knowing which list they're in using O(1) time * - no need to keep updating the head pointer as the list is changed * * Disadvantages: * - O(N) time to calculate list length * - requires one list entry in a struct per list (i.e. it's an inlist) * - requires a head/tail pointer * - need to know the list head when moving to next or previous pointer * * @note There's no NULL at the end of the list, the last item points to the head. * * @note List heads must be initialized with EINA_CLIST_INIT or by calling eina_clist_element_init * * Define a list like so: * * @code * struct gadget * { * struct Eina_Clist entry; <-- doesn't have to be the first item in the struct * int a, b; * }; * * static Eina_Clist global_gadgets = EINA_CLIST_INIT( global_gadgets ); * @endcode * * or * * @code * struct some_global_thing * { * Eina_Clist gadgets; * }; * * eina_clist_init( &some_global_thing->gadgets ); * @endcode * * Manipulate it like this: * * @code * eina_clist_add_head( &global_gadgets, &new_gadget->entry ); * eina_clist_remove( &new_gadget->entry ); * eina_clist_add_after( &some_random_gadget->entry, &new_gadget->entry ); * @endcode * * And to iterate over it: * * @code * struct gadget *gadget; * EINA_CLIST_FOR_EACH_ENTRY( gadget, &global_gadgets, struct gadget, entry ) * { * ... * } * @endcode * */ /** * @typedef Eina_Clist * This is the list head and the list entry. * @since 1.1.0 */ typedef struct _Eina_Clist Eina_Clist; /** * @struct _Eina_Clist * Compact list type * @note This structure is used as both the list head and the list entry. * @since 1.1.0 */ struct _Eina_Clist { Eina_Clist *next; Eina_Clist *prev; }; /** * Add an element after the specified one. * * @param elem An element in the list * @param to_add The element to add to the list * @pre The list head must be initialized once before adding anything. * @pre The element is not in any list. * * @note There's no need to initialize an element before adding it to the list. * @since 1.1.0 */ static inline void eina_clist_add_after(Eina_Clist *elem, Eina_Clist *to_add); /** * Add an element before the specified one. * * @param elem An element in the list * @param to_add The element to add to the list * @pre The list head must be initialized once before adding anything. * @pre The element is not in any list. * * @note There's no need to initialize an element before adding it to the list. * @since 1.1.0 */ static inline void eina_clist_add_before(Eina_Clist *elem, Eina_Clist *to_add); /** * Add element at the head of the list. * * @param list The list * @param elem An element * @pre The list head must be initialized once before adding anything. * @pre The element is not in any list. * * @note There's no need to initialize an element before adding it to the list. * @since 1.1.0 */ static inline void eina_clist_add_head(Eina_Clist *list, Eina_Clist *elem); /** * Add element at the tail of the list. * * @param list The list * @param elem An element * @pre The list head must be initialized once before adding anything. * @pre The element is not in any list. * * @note There's no need to initialize an element before adding it to the list. * @since 1.1.0 */ static inline void eina_clist_add_tail(Eina_Clist *list, Eina_Clist *elem); /** * Init an (unlinked) element. * * Call this function on elements that have not been added to the list * if you want eina_clist_element_init() to work correctly * * @param elem An element * @pre The element is not in any list. * @post The element is marked as not being in any list * * @note It is not necessary to call this before adding an element to this list. * @since 1.1.0 */ static inline void eina_clist_element_init(Eina_Clist *elem); /** * Check if an element is in a list or not. * * @param elem An element * * @pre Either eina_clist_element_init() has been called on @a elem, * it has been added to a list or remove from a list. * @since 1.1.0 */ static inline int eina_clist_element_is_linked(Eina_Clist *elem); /** * Remove an element from its list. * * @param elem An element * @pre The element is in a list already * @post The element is marked as not being in any list * @since 1.1.0 */ static inline void eina_clist_remove(Eina_Clist *elem); /** * Get the next element. * * @param list The list * @param elem An element * @pre @a elem is in @a list * @return The element after @a elem in @a list or @c NULL if @a elem is last in @a list. * @since 1.1.0 */ static inline Eina_Clist *eina_clist_next(const Eina_Clist *list, const Eina_Clist *elem); /** * Get the previous element. * * @param list The list * @param elem An element * * @return The element before @a elem or @c NULL if @a elem is the first in the list. * @since 1.1.0 */ static inline Eina_Clist *eina_clist_prev(const Eina_Clist *list, const Eina_Clist *elem); /** * Get the first element. * * @param list The list * @returns The first element in @a list or @c NULL if @a list is empty. * @since 1.1.0 */ static inline Eina_Clist *eina_clist_head(const Eina_Clist *list); /** * Get the last element. * * @param list The list * @returns The last element in @a list or @c NULL if @a list is empty. * @since 1.1.0 */ static inline Eina_Clist *eina_clist_tail(const Eina_Clist *list); /** * Check if a list is empty. * * @param list The list * @returns non-zero if @a list is empty, zero if it is not * @since 1.1.0 */ static inline int eina_clist_empty(const Eina_Clist *list); /** * Initialize a list * * @param list The list * @pre The list is uninitialized * @post The list contains no items * * @note Don't call this function on a list with items * @note This function must be called. Don't try do * initialize the list by zero'ing out the list head. * @since 1.1.0 */ static inline void eina_clist_init(Eina_Clist *list); /** * Count the elements of a list * * @param list The list * @returns The number of items in the list * @since 1.1.0 */ static inline unsigned int eina_clist_count(const Eina_Clist *list); /** * Move all elements from src to the tail of dst * * @param dst List to be appended to * @param src List to append * * @post @a src is initialized but empty after this operation * @since 1.1.0 */ static inline void eina_clist_move_tail(Eina_Clist *dst, Eina_Clist *src); /** * move all elements from src to the head of dst * * @param dst List to be prepended to * @param src List to prepend * * @post @a src is initialized but empty after this operation * @since 1.1.0 */ static inline void eina_clist_move_head(Eina_Clist *dst, Eina_Clist *src); /** * @def EINA_CLIST_FOR_EACH * @brief Iterate through the list. * @param cursor The pointer to be used during the interation. * @param list The list to be interated. */ #define EINA_CLIST_FOR_EACH(cursor,list) \ for ((cursor) = (list)->next; (cursor) != (list); (cursor) = (cursor)->next) /** * @def EINA_CLIST_FOR_EACH_SAFE * @brief Iterate through the list, with safety against removal. * @param cursor The pointer to be used during the interation. * @param cursor2 The auxiliar pointer to be used during the interation. * @param list The list to be interated. */ #define EINA_CLIST_FOR_EACH_SAFE(cursor, cursor2, list) \ for ((cursor) = (list)->next, (cursor2) = (cursor)->next; \ (cursor) != (list); \ (cursor) = (cursor2), (cursor2) = (cursor)->next) /** * @def EINA_CLIST_FOR_EACH_ENTRY * @brief Iterate through the list using a list entry. * @param elem The element to be used. * @param list The list to be iterated. * @param type The type of the list. * @param field The field of the element. */ #define EINA_CLIST_FOR_EACH_ENTRY(elem, list, type, field) \ for ((elem) = EINA_CLIST_ENTRY((list)->next, type, field); \ &(elem)->field != (list); \ (elem) = EINA_CLIST_ENTRY((elem)->field.next, type, field)) /** * @def EINA_CLIST_FOR_EACH_ENTRY_SAFE * @brief Iterate through the list using a list entry, with safety against removal. * @param cursor The pointer to be used during the interation. * @param cursor2 The auxiliar pointer to be used during the interation. * @param list The list to be interated. * @param type The type of the list. * @param field The field of the element. */ #define EINA_CLIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field) \ for ((cursor) = EINA_CLIST_ENTRY((list)->next, type, field), \ (cursor2) = EINA_CLIST_ENTRY((cursor)->field.next, type, field); \ &(cursor)->field != (list); \ (cursor) = (cursor2), \ (cursor2) = EINA_CLIST_ENTRY((cursor)->field.next, type, field)) /** * @def EINA_CLIST_FOR_EACH_REV * @brief Iterate through the list in reverse order. * @param cursor The pointer to be used during the interation. * @param list The list to be interated. */ #define EINA_CLIST_FOR_EACH_REV(cursor,list) \ for ((cursor) = (list)->prev; (cursor) != (list); (cursor) = (cursor)->prev) /** * @def EINA_CLIST_FOR_EACH_SAFE_REV * @brief Iterate through the list in reverse order, with safety against removal. * @param cursor The pointer to be used during the interation. * @param cursor2 The auxiliar pointer to be used during the interation. * @param list The list to be interated. */ #define EINA_CLIST_FOR_EACH_SAFE_REV(cursor, cursor2, list) \ for ((cursor) = (list)->prev, (cursor2) = (cursor)->prev; \ (cursor) != (list); \ (cursor) = (cursor2), (cursor2) = (cursor)->prev) /** * @def EINA_CLIST_FOR_EACH_ENTRY_REV * @brief Iterate through the list in reverse order using a list entry. * @param elem The element to be used. * @param list The list to be iterated. * @param type The type of the list. * @param field The field of the element. */ #define EINA_CLIST_FOR_EACH_ENTRY_REV(elem, list, type, field) \ for ((elem) = EINA_CLIST_ENTRY((list)->prev, type, field); \ &(elem)->field != (list); \ (elem) = EINA_CLIST_ENTRY((elem)->field.prev, type, field)) /** * @def EINA_CLIST_FOR_EACH_ENTRY_SAFE_REV * @brief Iterate through the list in reverse order using a list entry, with safety against * removal. * @param cursor The pointer to be used during the interation. * @param cursor2 The auxiliar pointer to be used during the interation. * @param list The list to be interated. * @param type The type of the list. * @param field The field of the element. */ #define EINA_CLIST_FOR_EACH_ENTRY_SAFE_REV(cursor, cursor2, list, type, field) \ for ((cursor) = EINA_CLIST_ENTRY((list)->prev, type, field), \ (cursor2) = EINA_CLIST_ENTRY((cursor)->field.prev, type, field); \ &(cursor)->field != (list); \ (cursor) = (cursor2), \ (cursor2) = EINA_CLIST_ENTRY((cursor)->field.prev, type, field)) /** * @def EINA_CLIST_INIT * @brief Macros for statically initialized lists. * @param list The list to be used. */ #undef EINA_CLIST_INIT #define EINA_CLIST_INIT(list) { &(list), &(list) } /** * @def EINA_CLIST_ENTRY * @brief Get pointer to object containing list element. * @param elem The element to be used. * @param type The type of the element. * @param field The field of the element. */ #undef EINA_CLIST_ENTRY #define EINA_CLIST_ENTRY(elem, type, field) \ ((type *)((char *)(elem) - (uintptr_t)(&((type *)0)->field))) #include "eina_inline_clist.x" /** * @} */ /** * @} */ /** * @} */ #endif /* __EINA_CLIST_H__ */ eina-1.7.10/src/include/eina_inline_list.x0000664000175000017500000000322412175475327015365 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler, Vincent Torri, Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_LIST_INLINE_H_ #define EINA_LIST_INLINE_H_ static inline Eina_List * eina_list_last(const Eina_List *list) { if (!list) return NULL; return list->accounting->last; } static inline Eina_List * eina_list_next(const Eina_List *list) { if (!list) return NULL; return list->next; } static inline Eina_List * eina_list_prev(const Eina_List *list) { if (!list) return NULL; return list->prev; } static inline void * eina_list_data_get(const Eina_List *list) { if (!list) return NULL; return list->data; } static inline void * eina_list_data_set(Eina_List *list, const void *data) { void *tmp; if (!list) return NULL; tmp = list->data; list->data = (void*) data; return tmp; } static inline unsigned int eina_list_count(const Eina_List *list) { if (!list) return 0; return list->accounting->count; } #endif /* EINA_LIST_INLINE_H_ */ eina-1.7.10/src/include/eina_module.h0000664000175000017500000002754512175475327014335 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_MODULE_H_ #define EINA_MODULE_H_ #include "eina_types.h" #include "eina_array.h" #include "eina_error.h" /** * @addtogroup Eina_Module_Group Module * * @brief These functions provide module management. */ /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @defgroup Eina_Module_Group Module * * Eina module provides some helpers over POSIX dlopen(). It is not * meant to replace, abstract or make a "portable" version of the * POSIX, but enhance its usage by defining some good practices. * * Modules are created with eina_module_new() and later loaded with * eina_module_load(). Loads are reference counted and there must be * the same number of eina_module_unload() in order to have it to call * dlclose(). This makes simple to have different users for the same * module. * * The loaded shared objects may have two visible functions that will * be called and might provide initialization and shutdown * procedures. The symbols are @c __eina_module_init and * @c __eina_module_shutdown and will be defined by the macros * EINA_MODULE_INIT() and EINA_MODULE_SHUTDOWN(). * * There are some helpers to automatically create modules based on * directory listing. See eina_module_arch_list_get(), * eina_module_list_get() and eina_module_find(). * * @{ */ /** * @typedef Eina_Module * Dynamic module loader handle. */ typedef struct _Eina_Module Eina_Module; /** * @typedef Eina_Module_Cb * Dynamic module loader callback. */ typedef Eina_Bool (*Eina_Module_Cb)(Eina_Module *m, void *data); /** * @typedef Eina_Module_Init * If a function with such signature is exported by module as * __eina_module_init, it will be called on the first load after * dlopen() and if #EINA_FALSE is returned, load will fail, #EINA_TRUE * means the module was successfully initialized. * @see Eina_Module_Shutdown */ typedef Eina_Bool (*Eina_Module_Init)(void); /** * @typedef Eina_Module_Shutdown * If a function with such signature is exported by module as * __eina_module_shutdown, it will be called before calling dlclose() * @see Eina_Module_Init */ typedef void (*Eina_Module_Shutdown)(void); /** * @def EINA_MODULE_INIT * declares the given function as the module initializer (__eina_module_init). * It must be of signature #Eina_Module_Init */ #define EINA_MODULE_INIT(f) EAPI Eina_Module_Init __eina_module_init = &f /** * @def EINA_MODULE_SHUTDOWN * declares the given function as the module shutdownializer * (__eina_module_shutdown). It must be of signature #Eina_Module_Shutdown */ #define EINA_MODULE_SHUTDOWN(f) EAPI Eina_Module_Shutdown __eina_module_shutdown = &f /** * @var EINA_ERROR_WRONG_MODULE * Error identifier corresponding to a wrong module. */ extern EAPI Eina_Error EINA_ERROR_WRONG_MODULE; /** * @var EINA_ERROR_MODULE_INIT_FAILED * Error identifier corresponding to a failure during the initialisation of a module. */ extern EAPI Eina_Error EINA_ERROR_MODULE_INIT_FAILED; /** * @brief Return a new module. * * @param file The name of the file module to load. * @return A new module. If @p file is @c NULL, the function * returns @c NULL, otherwise, it allocates an Eina_Module, stores * a duplicate string of @p file, sets its reference to @c 0 and * its handle to @c NULL. * * When the new module is not needed anymore, use eina_module_free() * to free the allocated memory. * * @see eina_module_load */ EAPI Eina_Module * eina_module_new(const char *file) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @brief Delete a module. * * @param module The module to delete. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function calls eina_module_unload() if @p module has been previously * loaded and frees the allocated memory. On success this function * returns #EINA_TRUE and #EINA_FALSE otherwise. If @p module is @c NULL, the * function returns immediately. */ EAPI Eina_Bool eina_module_free(Eina_Module *module) EINA_ARG_NONNULL(1); /** * @brief Load a module. * * @param module The module to load. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function load the shared file object passed in * eina_module_new(). If it is a internal Eina module (like the * mempools), it also initialize it. It the shared file object can not * be loaded, the error #EINA_ERROR_WRONG_MODULE is set and * and #EINA_FALSE is returned. If it is a internal Eina module and the * module can not be initialized, the error #EINA_ERROR_MODULE_INIT_FAILED * is set and #EINA_FALSE is returned. If the module has already been loaded, * it's reference counter is increased by one and #EINA_TRUE is returned. * If @p module is @c NULL, the function returns immediately #EINA_FALSE. * * When the symbols of the shared file objects are not needed * anymore, call eina_module_unload() to unload the module. */ EAPI Eina_Bool eina_module_load(Eina_Module *module) EINA_ARG_NONNULL(1); /** * @brief Unload a module. * * @param module The module to load. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function unload the module @p module that has been previously * loaded by eina_module_load(). If the reference counter of @p module is * strictly greater than @c 1, #EINA_FALSE is returned. Otherwise, the * shared object file is closed and if it is a internal Eina module, it * is shutted down just before. In that case, #EINA_TRUE is * returned. In all case, the reference counter is decreased. If @p module * is @c NULL, the function returns immediately #EINA_FALSE. */ EAPI Eina_Bool eina_module_unload(Eina_Module *module) EINA_ARG_NONNULL(1); /** * @brief Retrieve the data associated to a symbol. * * @param module The module. * @param symbol The symbol. * @return The data associated to the symbol, or @c NULL on failure. * * This function returns the data associated to @p symbol of @p module. @p * module must have been loaded before with eina_module_load(). If @p module * is @c NULL, or if it has not been correctly loaded before, the * function returns immediately @c NULL. */ EAPI void * eina_module_symbol_get(const Eina_Module *module, const char *symbol) EINA_PURE EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT; /** * @brief Return the file name associated to the module. * * @param module The module. * @return The file name. * * This function returns the file name passed in eina_module_new(). If * @p module is @c NULL, the function returns immediately @c NULL. The * returned value must no be freed. */ EAPI const char * eina_module_file_get(const Eina_Module *module) EINA_PURE EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @brief Return the path built from the location of a library and a * given sub directory. * * @param symbol The symbol to search for. * @param sub_dir The subdirectory to append. * @return The built path on success, @c NULL otherwise. * * This function returns the path built by concatenating the path of * the library containing the symbol @p symbol and @p sub_dir. @p sub_dir * can be @c NULL. The returned path must be freed when not used * anymore. If the symbol is not found, or dl_addr() is not supported, * or allocation fails, this function returns @c NULL. */ EAPI char * eina_module_symbol_path_get(const void *symbol, const char *sub_dir) EINA_PURE EINA_MALLOC EINA_ARG_NONNULL(1, 2); /** * @brief Return the path built from the value of an environment variable and a * given sub directory. * * @param env The environment variable to expand. * @param sub_dir The subdirectory to append. * @return The built path on success, @c NULL otherwise. * * This function returns the path built by concatenating the value of * the environment variable named @p env and @p sub_dir. @p sub_dir * can be @c NULL. The returned path must be freed when not used * anymore. If the symbol is not found, or @p env does not exist, or * allocation fails, this function returns @c NULL. */ EAPI char * eina_module_environment_path_get(const char *env, const char *sub_dir) EINA_PURE EINA_MALLOC EINA_ARG_NONNULL(1, 2); /** * @brief Get an array of modules found on the directory path matching an arch type. * * @param array The array that stores the list of the modules. * @param path The directory's path to search for modules. * @param arch The architecture string. * @return The array of modules found in @p path matching @p arch. * * This function adds to @p array the module names found in @p path * which match the cpu architecture @p arch. If @p path or @p arch is * @c NULL, the function returns immediately @p array. @p array can be * @c NULL. In that case, it is created with 4 elements. */ EAPI Eina_Array * eina_module_arch_list_get(Eina_Array *array, const char *path, const char *arch); /** * @brief Get a list of modules found on the directory path. * * @param array The array that stores the list of the modules. * @param path The directory's path to search for modules. * @param recursive Iterate recursively on the path. * @param cb Callback function to call on each module. * @param data Data passed to the callback function. * @return The array of modules found in @p path. * * This function adds to @p array the list of modules found in * @p path. If @p recursive is #EINA_TRUE, then recursive search is * done. The callback @p cb is called on each module found, and @p data * is passed to @p cb. If @p path is @c NULL, the function returns * immediately @p array. If the returned value of @p cb is @c 0, the * module will not be added to the list, otherwise it will be added. * @p array can be @c NULL. In that case, it is created with 4 * elements. @p cb can be @c NULL. */ EAPI Eina_Array * eina_module_list_get(Eina_Array *array, const char *path, Eina_Bool recursive, Eina_Module_Cb cb, void *data) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Load every module on the list of modules. * * @param array The array of modules to load. * * This function calls eina_module_load() on each element found in * @p array. If @p array is @c NULL, this function does nothing. */ EAPI void eina_module_list_load(Eina_Array *array) EINA_ARG_NONNULL(1); /** * @brief Unload every module on the list of modules. * * @param array The array of modules to unload. * * This function calls eina_module_unload() on each element found in * @p array. If @p array is @c NULL, this function does nothing. */ EAPI void eina_module_list_unload(Eina_Array *array) EINA_ARG_NONNULL(1); /** * @p Free every module on the list of modules. * * @param array The array of modules to free. * * This function calls eina_module_free() on each element found in * @p array. If @p array is @c NULL, this function does nothing. */ EAPI void eina_module_list_free(Eina_Array *array) EINA_ARG_NONNULL(1); /** * @brief Find an module in array. * * @param array The array to find the module. * @param module The name of module to be searched. * @return The module to find on success, @c NULL otherwise. * * This function finds an @p module in @p array. * If the element is found the function returns the module, else * @c NULL is returned. */ EAPI Eina_Module * eina_module_find(const Eina_Array *array, const char *module) EINA_ARG_NONNULL(1, 2); /** * @} */ /** * @} */ #endif /*EINA_MODULE_H_*/ eina-1.7.10/src/include/eina_ustringshare.h0000664000175000017500000001731012175475327015553 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler, Jorge Luis Zapata Muga, Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . * * This file incorporates work covered by the following copyright and * permission notice: * * Copyright (C) 2008 Peter Wehrfritz * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies of the Software and its Copyright notices. In addition publicly * documented acknowledgment must be given that this software has been used if no * source code of this software is made available publicly. This includes * acknowledgments in either Copyright notices, Manuals, Publicity and Marketing * documents or any documentation provided with any product containing this * software. This License does not apply to any software that links to the * libraries provided by this software (statically or dynamically), but only to * the software provided. * * Please see the OLD-COPYING.PLAIN for a plain-english explanation of this notice * and it's intent. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef EINA_USTRINGSHARE_H_ #define EINA_USTRINGSHARE_H_ #include "eina_types.h" #include "eina_unicode.h" /** * @addtogroup Eina_UStringshare_Group Unicode Stringshare * * These functions allow you to store one copy of a string, and use it * throughout your program. * * This is a method to reduce the number of duplicated strings kept in * memory. It's pretty common for the same strings to be dynamically * allocated repeatedly between applications and libraries, especially in * circumstances where you could have multiple copies of a structure that * allocates the string. So rather than duplicating and freeing these * strings, you request a read-only pointer to an existing string and * only incur the overhead of a hash lookup. * * It sounds like micro-optimizing, but profiling has shown this can have * a significant impact as you scale the number of copies up. It improves * string creation/destruction speed, reduces memory use and decreases * memory fragmentation, so a win all-around. * * For more information, you can look at the @ref tutorial_ustringshare_page. */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @defgroup Eina_UStringshare_Group Unicode Stringshare * * @{ */ /** * @brief Retrieve an instance of a string for use in a program. * * @param str The string to retrieve an instance of. * @param slen The string size (<= strlen(str)). * @return A pointer to an instance of the string on success. * @c NULL on failure. * * This function retrieves an instance of @p str. If @p str is * @c NULL, then @c NULL is returned. If @p str is already stored, it * is just returned and its reference counter is increased. Otherwise * it is added to the strings to be searched and a duplicated string * of @p str is returned. * * This function does not check string size, but uses the * exact given size. This can be used to share_common part of a larger * buffer or substring. * * @see eina_ustringshare_add() */ EAPI const Eina_Unicode *eina_ustringshare_add_length(const Eina_Unicode *str, unsigned int slen) EINA_WARN_UNUSED_RESULT; /** * @brief Retrieve an instance of a string for use in a program. * * @param str The NULL-terminated string to retrieve an instance of. * @return A pointer to an instance of the string on success. * @c NULL on failure. * * This function retrieves an instance of @p str. If @p str is * @c NULL, then @c NULL is returned. If @p str is already stored, it * is just returned and its reference counter is increased. Otherwise * it is added to the strings to be searched and a duplicated string * of @p str is returned. * * The string @p str must be NULL-terminated ('@\0') and its full * length will be used. To use part of the string or non-null * terminated, use eina_stringshare_add_length() instead. * * @see eina_ustringshare_add_length() */ EAPI const Eina_Unicode *eina_ustringshare_add(const Eina_Unicode *str) EINA_WARN_UNUSED_RESULT; /** * Increment references of the given shared string. * * @param str The shared string. * @return A pointer to an instance of the string on success. * @c NULL on failure. * * This is similar to eina_share_common_add(), but it's faster since it will * avoid lookups if possible, but on the down side it requires the parameter * to be shared before, in other words, it must be the return of a previous * eina_ustringshare_add(). * * There is no unref since this is the work of eina_ustringshare_del(). */ EAPI const Eina_Unicode *eina_ustringshare_ref(const Eina_Unicode *str); /** * @brief Note that the given string has lost an instance. * * @param str string The given string. * * This function decreases the reference counter associated to @p str * if it exists. If that counter reaches 0, the memory associated to * @p str is freed. If @p str is @c NULL, the function returns * immediately. * * @note If the given pointer is not shared, bad things will happen, likely a * segmentation fault. */ EAPI void eina_ustringshare_del(const Eina_Unicode *str); /** * @brief Note that the given string @b must be shared. * * @param str the shared string to know the length. It is safe to * give @c NULL, in that case @c -1 is returned. * * This function is a cheap way to known the length of a shared * string. * * @note If the given pointer is not shared, bad things will happen, likely a * segmentation fault. If in doubt, try strlen(). */ EAPI int eina_ustringshare_strlen(const Eina_Unicode *str) EINA_PURE EINA_WARN_UNUSED_RESULT; /** * @brief Dump the contents of the share_common. * * This function dumps all strings in the share_common to stdout with a * DDD: prefix per line and a memory usage summary. */ EAPI void eina_ustringshare_dump(void); static inline Eina_Bool eina_ustringshare_replace(const Eina_Unicode **p_str, const Eina_Unicode *news) EINA_ARG_NONNULL(1); static inline Eina_Bool eina_ustringshare_replace_length(const Eina_Unicode **p_str, const Eina_Unicode *news, unsigned int slen) EINA_ARG_NONNULL(1); #include "eina_inline_ustringshare.x" /** * @} */ /** * @} */ #endif /* EINA_STRINGSHARE_H_ */ eina-1.7.10/src/include/eina_inline_stringshare.x0000664000175000017500000000567012175475327016752 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Gustavo Sverzut Barbieri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_STRINGSHARE_INLINE_H_ #define EINA_STRINGSHARE_INLINE_H_ #include #include "eina_stringshare.h" /** * @addtogroup Eina_Stringshare_Group Stringshare * * @{ */ /** * Replace the previously stringshared pointer with new content. * * The string pointed by @a p_str should be previously stringshared or * @c NULL and it will be eina_stringshare_del(). The new string will * be passed to eina_stringshare_add() and then assigned to @c *p_str. * * @param p_str pointer to the stringhare to be replaced. Must not be * @c NULL, but @c *p_str may be @c NULL as it is a valid * stringshare handle. * @param news new string to be stringshared, may be @c NULL. * * @return #EINA_TRUE if the strings were different and thus replaced, #EINA_FALSE * if the strings were the same after shared. */ static inline Eina_Bool eina_stringshare_replace(Eina_Stringshare **p_str, const char *news) { if (*p_str == news) return EINA_FALSE; news = eina_stringshare_add(news); eina_stringshare_del(*p_str); if (*p_str == news) return EINA_FALSE; *p_str = news; return EINA_TRUE; } /** * Replace the previously stringshared pointer with a new content. * * The string pointed by @a p_str should be previously stringshared or * @c NULL and it will be eina_stringshare_del(). The new string will * be passed to eina_stringshare_add_length() and then assigned to @c *p_str. * * @param p_str pointer to the stringhare to be replaced. Must not be * @c NULL, but @c *p_str may be @c NULL as it is a valid * stringshare handle. * @param news new string to be stringshared, may be @c NULL. * @param slen The string size (<= strlen(str)). * * @return #EINA_TRUE if the strings were different and thus replaced, #EINA_FALSE * if the strings were the same after shared. */ static inline Eina_Bool eina_stringshare_replace_length(Eina_Stringshare **p_str, const char *news, unsigned int slen) { if (*p_str == news) return EINA_FALSE; news = eina_stringshare_add_length(news, slen); eina_stringshare_del(*p_str); if (*p_str == news) return EINA_FALSE; *p_str = news; return EINA_TRUE; } /** * @} */ #endif /* EINA_STRINGSHARE_INLINE_H_ */ eina-1.7.10/src/include/eina_types.h0000664000175000017500000002136112175475327014202 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Carsten Haitzler, Vincent Torri, Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_TYPES_H_ #define EINA_TYPES_H_ /** * @addtogroup Eina_Core_Group Core * * @{ */ /** * @defgroup Eina_Types_Group Types * * @{ */ #ifdef EAPI # undef EAPI #endif #ifdef _WIN32 # ifdef EFL_EINA_BUILD # ifdef DLL_EXPORT # define EAPI __declspec(dllexport) # else # define EAPI # endif /* ! DLL_EXPORT */ # else # define EAPI __declspec(dllimport) # endif /* ! EFL_EINA_BUILD */ #else # ifdef __GNUC__ # if __GNUC__ >= 4 # define EAPI __attribute__ ((visibility("default"))) # else # define EAPI # endif # else /** * @def EAPI * @brief Used to export functions(by changing visibility). */ # define EAPI # endif #endif #include "eina_config.h" #ifdef EINA_WARN_UNUSED_RESULT # undef EINA_WARN_UNUSED_RESULT #endif #ifdef EINA_ARG_NONNULL # undef EINA_ARG_NONNULL #endif #ifdef EINA_DEPRECATED # undef EINA_DEPRECATED #endif #ifdef EINA_MALLOC # undef EINA_MALLOC #endif #ifdef EINA_PURE # undef EINA_PURE #endif #ifdef EINA_PRINTF # undef EINA_PRINTF #endif #ifdef EINA_SCANF # undef EINA_SCANF #endif #ifdef EINA_FORMAT # undef EINA_FORMAT #endif #ifdef EINA_CONST # undef EINA_CONST #endif #ifdef EINA_NOINSTRUMENT # undef EINA_NOINSTRUMENT #endif #ifdef EINA_UNLIKELY # undef EINA_UNLIKELY #endif #ifdef EINA_LIKELY # undef EINA_LIKELY #endif #ifdef EINA_SENTINEL # undef EINA_SENTINEL #endif #ifdef __GNUC__ # if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) # define EINA_WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__)) # else # define EINA_WARN_UNUSED_RESULT # endif # if (!defined(EINA_SAFETY_CHECKS)) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) # define EINA_ARG_NONNULL(...) __attribute__ ((__nonnull__(__VA_ARGS__))) # else # define EINA_ARG_NONNULL(...) # endif # if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) # define EINA_DEPRECATED __attribute__ ((__deprecated__)) # else # define EINA_DEPRECATED # endif # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define EINA_MALLOC __attribute__ ((__malloc__)) # define EINA_PURE __attribute__ ((__pure__)) # else # define EINA_MALLOC # define EINA_PURE # endif # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) # if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 3) # define EINA_PRINTF(fmt, arg) __attribute__((__format__ (__gnu_printf__, fmt, arg))) # else # define EINA_PRINTF(fmt, arg) __attribute__((__format__ (__printf__, fmt, arg))) # endif # define EINA_SCANF(fmt, arg) __attribute__((__format__ (__scanf__, fmt, arg))) # define EINA_FORMAT(fmt) __attribute__((__format_arg__(fmt))) # define EINA_CONST __attribute__((__const__)) # define EINA_NOINSTRUMENT __attribute__((__no_instrument_function__)) # define EINA_UNLIKELY(exp) __builtin_expect((exp), 0) # define EINA_LIKELY(exp) __builtin_expect((exp), 1) # define EINA_SENTINEL __attribute__((__sentinel__)) # else # define EINA_PRINTF(fmt, arg) # define EINA_SCANF(fmt, arg) # define EINA_FORMAT(fmt) # define EINA_CONST # define EINA_NOINSTRUMENT # define EINA_UNLIKELY(exp) exp # define EINA_LIKELY(exp) exp # define EINA_SENTINEL # endif #elif defined(_WIN32) # define EINA_WARN_UNUSED_RESULT # define EINA_ARG_NONNULL(...) # if defined(_MSC_VER) && _MSC_VER >= 1300 # define EINA_DEPRECATED __declspec(deprecated) # else # define EINA_DEPRECATED # endif # define EINA_MALLOC # define EINA_PURE # define EINA_PRINTF(fmt, arg) # define EINA_SCANF(fmt, arg) # define EINA_FORMAT(fmt) # define EINA_CONST # define EINA_NOINSTRUMENT # define EINA_UNLIKELY(exp) exp # define EINA_LIKELY(exp) exp # define EINA_SENTINEL #elif defined(__SUNPRO_C) # define EINA_WARN_UNUSED_RESULT # define EINA_ARG_NONNULL(...) # define EINA_DEPRECATED # if __SUNPRO_C >= 0x590 # define EINA_MALLOC __attribute__ ((malloc)) # define EINA_PURE __attribute__ ((pure)) # else # define EINA_MALLOC # define EINA_PURE # endif # define EINA_PRINTF(fmt, arg) # define EINA_SCANF(fmt, arg) # define EINA_FORMAT(fmt) # if __SUNPRO_C >= 0x590 # define EINA_CONST __attribute__ ((const)) # else # define EINA_CONST # endif # define EINA_NOINSTRUMENT # define EINA_UNLIKELY(exp) exp # define EINA_LIKELY(exp) exp # define EINA_SENTINEL #else /* ! __GNUC__ && ! _WIN32 && ! __SUNPRO_C */ /** * @def EINA_WARN_UNUSED_RESULT * Used to warn when the returned value of the function is not used. */ # define EINA_WARN_UNUSED_RESULT /** * @def EINA_ARG_NONNULL * Used to warn when the specified arguments of the function are @c NULL. */ # define EINA_ARG_NONNULL(...) /** * @def EINA_DEPRECATED * Used to warn when the function is considered as deprecated. */ # define EINA_DEPRECATED /** * @def EINA_MALLOC * @brief EINA_MALLOC is used to tell the compiler that a function may be treated * as if any non-NULL pointer it returns cannot alias any other pointer valid when * the function returns and that the memory has undefined content. */ # define EINA_MALLOC /** * @def EINA_PURE * @brief EINA_PURE is used to tell the compiler this functions has no effects * except the return value and their return value depends only on the parameters * and/or global variables. */ # define EINA_PURE /** * @def EINA_PRINTF * @param fmt The format to be used. * @param arg The argument to be used. */ # define EINA_PRINTF(fmt, arg) /** * @def EINA_SCANF * @param fmt The format to be used. * @param arg The argument to be used. */ # define EINA_SCANF(fmt, arg) /** * @def EINA_FORMAT * @param fmt The format to be used. */ # define EINA_FORMAT(fmt) /** * @def EINA_CONST * @brief Attribute from gcc to prevent the function to read/modify any global memory. */ # define EINA_CONST /** * @def EINA_NOINSTRUMENT * @brief Attribute from gcc to disable instrumentation for a specific function. */ # define EINA_NOINSTRUMENT /** * @def EINA_UNLIKELY * @param exp The expression to be used. */ # define EINA_UNLIKELY(exp) exp /** * @def EINA_LIKELY * @param exp The expression to be used. */ # define EINA_LIKELY(exp) exp /** * @def EINA_SENTINEL * @brief Attribute from gcc to prevent calls without the necessary NULL * sentinel in certain variadic functions * @since 1.7.0 */ # define EINA_SENTINEL #endif /* ! __GNUC__ && ! _WIN32 && ! __SUNPRO_C */ /** * @typedef Eina_Bool * Type to mimic a boolean. * * @note it differs from stdbool.h as this is defined as an unsigned * char to make it usable by bitfields (Eina_Bool name:1) and * also take as few bytes as possible. */ typedef unsigned char Eina_Bool; /** * @def EINA_FALSE * boolean value FALSE (numerical value 0) */ #define EINA_FALSE ((Eina_Bool)0) /** * @def EINA_TRUE * boolean value TRUE (numerical value 1) */ #define EINA_TRUE ((Eina_Bool)1) EAPI extern const unsigned int eina_prime_table[]; /** * @typedef Eina_Compare_Cb * Function used in functions using sorting. It compares @p data1 and * @p data2. If @p data1 is 'less' than @p data2, -1 must be returned, * if it is 'greater', 1 must be returned, and if they are equal, 0 * must be returned. */ typedef int (*Eina_Compare_Cb)(const void *data1, const void *data2); /** * @def EINA_COMPARE_CB * Macro to cast to Eina_Compare_Cb. */ #define EINA_COMPARE_CB(function) ((Eina_Compare_Cb)function) /** * @typedef Eina_Each_Cb * A callback type used when iterating over a container. */ typedef Eina_Bool (*Eina_Each_Cb)(const void *container, void *data, void *fdata); /** * @def EINA_EACH_CB * Macro to cast to Eina_Each. */ #define EINA_EACH_CB(Function) ((Eina_Each_Cb)Function) /** * @typedef Eina_Free_Cb * A callback type used to free data when iterating over a container. */ typedef void (*Eina_Free_Cb)(void *data); /** * @def EINA_FREE_CB * Macro to cast to Eina_Free_Cb. */ #define EINA_FREE_CB(Function) ((Eina_Free_Cb)Function) /** * @def EINA_C_ARRAY_LENGTH * Macro to return the array length of a standard c array. * For example: * int foo[] = { 0, 1, 2, 3 }; * would return 4 and not 4 * sizeof(int). * @since 1.2.0 */ #define EINA_C_ARRAY_LENGTH(arr) (sizeof(arr) / sizeof((arr)[0])) /** * @} */ /** * @} */ #endif /* EINA_TYPES_H_ */ eina-1.7.10/src/include/eina_inline_ustringshare.x0000664000175000017500000000602112175475327017126 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Gustavo Sverzut Barbieri Tom Hacohen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_USTRINGSHARE_INLINE_H_ #define EINA_USTRINGSHARE_INLINE_H_ #include "eina_unicode.h" #include "eina_ustringshare.h" /** * @addtogroup Eina_UStringshare_Group Unicode Stringshare * * @{ */ /** * Replace the previously stringshared pointer with new content. * * The string pointed by @a p_str should be previously stringshared or * @c NULL and it will be eina_ustringshare_del(). The new string will * be passed to eina_ustringshare_add() and then assigned to @c *p_str. * * @param p_str pointer to the stringhare to be replaced. Must not be * @c NULL, but @c *p_str may be @c NULL as it is a valid * stringshare handle. * @param news new string to be stringshared, may be @c NULL. * * @return #EINA_TRUE if the strings were different and thus replaced, #EINA_FALSE * if the strings were the same after shared. */ static inline Eina_Bool eina_ustringshare_replace(const Eina_Unicode **p_str, const Eina_Unicode *news) { if (*p_str == news) return EINA_FALSE; news = eina_ustringshare_add(news); eina_ustringshare_del(*p_str); if (*p_str == news) return EINA_FALSE; *p_str = news; return EINA_TRUE; } /** * Replace the previously stringshared pointer with a new content. * * The string pointed by @a p_str should be previously stringshared or * @c NULL and it will be eina_ustringshare_del(). The new string will * be passed to eina_ustringshare_add_length() and then assigned to @c *p_str. * * @param p_str pointer to the stringhare to be replaced. Must not be * @c NULL, but @c *p_str may be @c NULL as it is a valid * stringshare handle. * @param news new string to be stringshared, may be @c NULL. * @param slen The string size (<= strlen(str)). * * @return #EINA_TRUE if the strings were different and thus replaced, #EINA_FALSE * if the strings were the same after shared. */ static inline Eina_Bool eina_ustringshare_replace_length(const Eina_Unicode **p_str, const Eina_Unicode *news, unsigned int slen) { if (*p_str == news) return EINA_FALSE; news = eina_ustringshare_add_length(news, slen); eina_ustringshare_del(*p_str); if (*p_str == news) return EINA_FALSE; *p_str = news; return EINA_TRUE; } /** * @} */ #endif /* EINA_USTRINGSHARE_INLINE_H_ */ eina-1.7.10/src/include/eina_xattr.h0000664000175000017500000001520512175475327014200 00000000000000/* EINA - EFL data type library * Copyright (C) 2011 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_XATTR_H_ #define EINA_XATTR_H_ #include "eina_types.h" /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @typedef Eina_Xattr_Flags * define extended attribute creation * * @since 1.1 */ typedef enum { EINA_XATTR_INSERT, /**< This is the default behaviour, it will either create or replace the extended attribute */ EINA_XATTR_REPLACE, /**< This will only succeed if the extended attribute previously existed */ EINA_XATTR_CREATED /**< This will only succeed if the extended attribute wasn't previously set */ } Eina_Xattr_Flags; typedef struct _Eina_Xattr Eina_Xattr; struct _Eina_Xattr { const char *name; /**< The eXtended attribute name @since 1.2 */ const char *value; /**< The eXtended attribute value @since 1.2 */ size_t length; /**< The length of the eXtended attribute value @since 1.2 */ }; /** * @brief Get an iterator that list all extended attribute of a file. * * @param file The filename to retrieve the extended attribute list from. * @return an iterator. * * The iterator will not allocate any data during the iteration step, so you need to copy them yourself * if you need. * * @since 1.1 */ EAPI Eina_Iterator *eina_xattr_ls(const char *file); /** * @brief Get an iterator that list all extended attribute value related to a fd. * * @param file The filename to retrieve the extended attribute list from. * @return an iterator. * * The iterator will not allocate any data during the iteration step, so you need to copy them yourself * if you need. The iterator will provide an Eina_Xattr structure. * * @since 1.2 */ EAPI Eina_Iterator *eina_xattr_value_ls(const char *file); /** * @brief Get an iterator that list all extended attribute related to a fd. * * @param fd The file descriptor to retrieve the extended attribute list from. * @return an iterator. * * The iterator will not allocate any data during the iteration step, so you need to copy them yourself * if you need. * * @since 1.2 */ EAPI Eina_Iterator *eina_xattr_fd_ls(int fd); /** * @brief Get an iterator that list all extended attribute value related to a fd. * * @param fd The file descriptor to retrieve the extended attribute list from. * @return an iterator. * * The iterator will not allocate any data during the iteration step, so you need to copy them yourself * if you need. The iterator will provide an Eina_Xattr structure. * * @since 1.2 */ EAPI Eina_Iterator *eina_xattr_value_fd_ls(int fd); /** * @brief Retrieve an extended attribute from a file. * * @param file The file to retrieve the extended attribute from. * @param attribute The extended attribute name to retrieve. * @param size The size of the retrieved extended attribute. * @return the allocated data that hold the extended attribute value. * * It will return @c NULL and *size will be @c 0 if it fails. * * @since 1.1 */ EAPI void *eina_xattr_get(const char *file, const char *attribute, ssize_t *size); /** * @brief Set an extended attribute on a file. * * @param file The file to set the extended attribute to. * @param attribute The attribute to set. * @param data The data to set. * @param length The length of the data to set. * @param flags Define the set policy. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * @since 1.1 */ EAPI Eina_Bool eina_xattr_set(const char *file, const char *attribute, const void *data, ssize_t length, Eina_Xattr_Flags flags); /** * @brief Set a string as a extended attribute properties. * * @param file The file to set the string to. * @param attribute The attribute to set. * @param data The NULL-terminated string to set. * @param flags Define the set policy. * @return EINA_TRUE on success, EINA_FALSE otherwise. * * @since 1.1 */ EAPI Eina_Bool eina_xattr_string_set(const char *file, const char *attribute, const char *data, Eina_Xattr_Flags flags); /** * @brief Get a string from an extended attribute properties. * * @param file The file to get the string from. * @param attribute The attribute to get. * @return A valid string on success, @c NULL otherwise. * * This call check that the string is properly NULL-terminated before returning it. * * @since 1.1 */ EAPI char *eina_xattr_string_get(const char *file, const char *attribute); /** * @brief Set a double as a extended attribute properties. * * @param file The file to set the double to. * @param attribute The attribute to set. * @param value The NULL-terminated double to set. * @param flags Define the set policy. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * @since 1.1 */ EAPI Eina_Bool eina_xattr_double_set(const char *file, const char *attribute, double value, Eina_Xattr_Flags flags); /** * @brief Get a double from an extended attribute properties. * * @param file The file to get the string from. * @param attribute The attribute to get. * @param value Where to put the extracted value * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This call check that the double is correctly set. * * @since 1.1 */ EAPI Eina_Bool eina_xattr_double_get(const char *file, const char *attribute, double *value); /** * @brief Set an int as a extended attribute properties. * * @param file The file to set the int to. * @param attribute The attribute to set. * @param value The NULL-terminated int to set. * @param flags Define the set policy. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * @since 1.1 */ EAPI Eina_Bool eina_xattr_int_set(const char *file, const char *attribute, int value, Eina_Xattr_Flags flags); /** * @brief Get a int from an extended attribute properties. * * @param file The file to get the string from. * @param attribute The attribute to get. * @param value Where to put the extracted value * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This call check that the int is correctly set. * * @since 1.1 */ EAPI Eina_Bool eina_xattr_int_get(const char *file, const char *attribute, int *value); /** * @} */ #endif eina-1.7.10/src/include/eina_binbuf.h0000664000175000017500000001651312175475327014306 00000000000000#ifndef EINA_BINBUF_H #define EINA_BINBUF_H #include #include #include "eina_types.h" /** * @addtogroup Eina_Binary_Buffer_Group Binary Buffer * * @brief These functions provide string buffers management. * * The Binary Buffer data type is designed to be a mutable string, * allowing to append, prepend or insert a string to a buffer. */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @defgroup Eina_Binary_Buffer_Group Binary Buffer * * @{ */ /** * @typedef Eina_Binbuf * Type for a string buffer. */ typedef struct _Eina_Strbuf Eina_Binbuf; /** * @brief Create a new string buffer. * * @return Newly allocated string buffer instance. * * This function creates a new string buffer. On error, @c NULL is * returned and Eina error is set to #EINA_ERROR_OUT_OF_MEMORY. To * free the resources, use eina_binbuf_free(). * * @see eina_binbuf_free() * @see eina_binbuf_append() * @see eina_binbuf_string_get() */ EAPI Eina_Binbuf *eina_binbuf_new(void) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Create a new string buffer using the passed string. The passed * string is used directly as the buffer, it's somehow the opposite function of * @ref eina_binbuf_string_steal . The passed string must be malloced. * * @param str the string to manage * @param length the length of the string. * @return Newly allocated string buffer instance. * * This function creates a new string buffer. On error, @c NULL is * returned and Eina error is set to #EINA_ERROR_OUT_OF_MEMORY. To * free the resources, use eina_binbuf_free(). * * @see eina_binbuf_manage_new() * @since 1.2.0 */ EAPI Eina_Binbuf *eina_binbuf_manage_new_length(unsigned char *str, size_t length) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Free a string buffer. * * @param buf The string buffer to free. * * This function frees the memory of @p buf. @p buf must have been * created by eina_binbuf_new(). */ EAPI void eina_binbuf_free(Eina_Binbuf *buf) EINA_ARG_NONNULL(1); /** * @brief Reset a string buffer. * * @param buf The string buffer to reset. * * This function reset @p buf: the buffer len is set to 0, and the * string is set to '\\0'. No memory is free'd. */ EAPI void eina_binbuf_reset(Eina_Binbuf *buf) EINA_ARG_NONNULL(1); /** * @brief Append a string of exact length to a buffer, reallocating as necessary. * * @param buf The string buffer to append to. * @param str The string to append. * @param length The exact length to use. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function appends @p str to @p buf. @p str must be of size at * most @p length. It is slightly faster than eina_binbuf_append() as * it does not compute the size of @p str. It is useful when dealing * with strings of known size, such as eina_strngshare. If @p buf * can't append it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. * * @see eina_stringshare_length() * @see eina_binbuf_append() * @see eina_binbuf_append_n() */ EAPI Eina_Bool eina_binbuf_append_length(Eina_Binbuf *buf, const unsigned char *str, size_t length) EINA_ARG_NONNULL(1, 2); /** * @brief Append a character to a string buffer, reallocating as * necessary. * * @param buf The string buffer to append to. * @param c The char to append. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p c to @p buf. If it can not insert it, #EINA_FALSE * is returned, otherwise #EINA_TRUE is returned. */ EAPI Eina_Bool eina_binbuf_append_char(Eina_Binbuf *buf, unsigned char c) EINA_ARG_NONNULL(1); /** * @brief Insert a string of exact length to a buffer, reallocating as necessary. * * @param buf The string buffer to insert to. * @param str The string to insert. * @param length The exact length to use. * @param pos The position to insert the string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p str to @p buf. @p str must be of size at * most @p length. It is slightly faster than eina_binbuf_insert() as * it does not compute the size of @p str. It is useful when dealing * with strings of known size, such as eina_strngshare. If @p buf * can't insert it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. * * @see eina_stringshare_length() * @see eina_binbuf_insert() * @see eina_binbuf_insert_n() */ EAPI Eina_Bool eina_binbuf_insert_length(Eina_Binbuf *buf, const unsigned char *str, size_t length, size_t pos) EINA_ARG_NONNULL(1, 2); /** * @brief Insert a character to a string buffer, reallocating as * necessary. * * @param buf The string buffer to insert to. * @param c The char to insert. * @param pos The position to insert the char. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p c to @p buf at position @p pos. If @p buf * can't append it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ EAPI Eina_Bool eina_binbuf_insert_char(Eina_Binbuf *buf, unsigned char c, size_t pos) EINA_ARG_NONNULL(1); /** * @brief Remove a slice of the given string buffer. * * @param buf The string buffer to remove a slice. * @param start The initial (inclusive) slice position to start * removing, in bytes. * @param end The final (non-inclusive) slice position to finish * removing, in bytes. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function removes a slice of @p buf, starting at @p start * (inclusive) and ending at @p end (non-inclusive). Both values are * in bytes. It returns #EINA_FALSE on failure, #EINA_TRUE otherwise. */ EAPI Eina_Bool eina_binbuf_remove(Eina_Binbuf *buf, size_t start, size_t end) EINA_ARG_NONNULL(1); /** * @brief Retrieve a pointer to the contents of a string buffer * * @param buf The string buffer. * @return The current string in the string buffer. * * This function returns the string contained in @p buf. The returned * value must not be modified and will no longer be valid if @p buf is * modified. In other words, any eina_binbuf_append() or similar will * make that pointer invalid. * * @see eina_binbuf_string_steal() */ EAPI const unsigned char *eina_binbuf_string_get(const Eina_Binbuf *buf) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Steal the contents of a string buffer. * * @param buf The string buffer to steal. * @return The current string in the string buffer. * * This function returns the string contained in @p buf. @p buf is * then initialized and does not own the returned string anymore. The * caller must release the memory of the returned string by calling * free(). * * @see eina_binbuf_string_get() */ EAPI unsigned char *eina_binbuf_string_steal(Eina_Binbuf *buf) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @brief Free the contents of a string buffer but not the buffer. * * @param buf The string buffer to free the string of. * * This function frees the string contained in @p buf without freeing * @p buf. */ EAPI void eina_binbuf_string_free(Eina_Binbuf *buf) EINA_ARG_NONNULL(1); /** * @brief Retrieve the length of the string buffer content. * * @param buf The string buffer. * @return The current length of the string, in bytes. * * This function returns the length of @p buf. */ EAPI size_t eina_binbuf_length_get(const Eina_Binbuf *buf) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @} */ /** * @} */ #endif /* EINA_STRBUF_H */ eina-1.7.10/src/include/eina_prefix.h0000664000175000017500000002253712175475327014341 00000000000000#ifndef EINA_PREFIX_H_ #define EINA_PREFIX_H_ /** * @addtogroup Eina_Prefix_Group Prefix Group * * @brief These functions provide the ability to determine the runtime * location of a software package * * @{ * * @since 1.1.0 */ /** * @typedef Eina_Prefix * This is a prefix object that is returned by eina_prefix_new() when trying * to determine the runtime location of the software in question so other * data files such as images, sound files, other executable utilities, * libraries, modules and locale files can be found. * * @since 1.1.0 */ typedef struct _Eina_Prefix Eina_Prefix; /** * @brief Create a new prefix handle given some input information * * @param argv0 If this is an executable this is argv[0] of the binary, or @c NULL if it is used from a shared library * @param symbol This is a symbol (function for example) inside the binary or library to find the source location of. Provide @c NULL if not used * @param envprefix This is the prefix to any environment variables that may override prefix detection and give the exact location of the software * @param sharedir This is the directory inside the standard share or data dir where the software will store data files * @param magicsharefile This is a magic file to check existence of to determine the prefix find was correct, and it must be located in the data * dir under the share dir provided above, or @c NULL if the check is not to be done. * @param pkg_bin This is the compile-time binary install dir * @param pkg_lib This is the compile-time library install dir * @param pkg_data This is the compile-time share/data install dir * @param pkg_locale This is the compile-time locale install dir * @return The prefix handle, or @c NULL on failure. * * Applications and libraries are most often not just single executables nor * single shared library binaries, but also come with extra modules they * have to load, extra binary utilities they need to run, or have data files * they need to load. A very primitive application ASSUMES a fixed install * location at compile-time, but this disallows the ability to re-locate * the application (or library) somewhere else after compilation (if you run * out of space on a given disk, partition etc. for example), or necessitate * the need for having to maintain environment variables for every piece of * software to let it know its location, or have to use large sets of * symlinks pointing from the compiled location to the new one. * * Being re-locatable at runtime allows much easier distribution and * installation into places like the users own home directory, instead of * on a system partition, if the developer wishes for easier distribution * of pre-compiled binaries. * * The prefix system is designed to locate where the given software is * installed (under a common prefix) at runtime and then report specific * locations of this prefix and common directories inside this prefix like * the binary, library, data and locale directories. * * To do this some information needs to be provided to eina_prefix_new(). If * you have developed a binary executable, then provide argv[0] as the @p argv0 * argument. This plus the PATH environment variable help the prefix system * to determine its location. Call eina_prefix_new() early on before you * change working directory or anything about argv[0] so it gets accurate * information. It will use the first argument, being the executable itself, * to look in absolute directories, relative paths and PATH to see if it * finds the right executable to determine just where the actual binary is * installed and being run from. If you develop a share library, just pass * @c NULL as argv0 * * It would prefer to use the @p symbol function to determine location as * that function will be unique inside the application and try and trace * back which file this function comes from (be it a binary or shared library) * as this avoids more expensive searches via @p argv0. It will use this * symbol if given in preference to argv0. * * The @p envprefix parameter, provides a string prefix to prepend before * environment variables to allow a fallback to specific environment variables * to locate the software. For example if "MYAPP" is provided a the prefix, * then it uses "MYAPP_PREFIX" as a master environment variable to specify * the exact install prefix for the software, or more specific environment * variables like "MYAPP_BIN_DIR", "MYAPP_LIB_DIR", "MYAPP_DATA_DIR" and * "MYAPP_LOCALE_DIR" which can be set by the user or scripts before * launching. If not provided (NULL) environment variables will not be * used to override compiled-in defaults or auto detections. * * The @p sharedir string provides a subdirectory inside the system shared * data dir for data files. For example, if the system dir is * /usr/local/share then this dir name is appended, creating * /usr/local/share/appname if this dir was the "appname" string. It is * expected the application or library installs data files in this directory. * * The @p magicsharefile is a filename or path of something inside the share * or data dir to be used to test that the prefix detection worked. For * example, your app will install a wallpaper image as * /usr/local/share/appname/images/wallpaper.jpg and so to check that this * worked, provide "images/wallpaper.jpg" as the @p magicsharefile string * so detection can know if it worked or not. * * The @p pkg_bin, @p pkg_lib, @p pkg_data and @p pkg_locale are compile-time * strings (the kind standard autoconf/automake define) to be passed in * so there can be a fallback to compiled-in defaults as well as use them * to determine actual names of directories like libdirs maybe changing to * be lib32 or lib64 instead of lib etc. * * Compile the following defining at compile time your prefixes like (example): * * gcc appname.c -o appname * -DPACKAGE_BIN_DIR=\\"/usr/local/bin\" * -DPACKAGE_LIB_DIR=\\"/usr/local/lib\" * -DPACKAGE_DATA_DIR=\\"/usr/local/share/appname\" * -DLOCALE_DIR=\\"/usr/local/share/locale\" * `pkg-config --cflags --libs eina` * * (of course add appropriate compile flags to linking etc. etc. and note that * locale dir is optional. if you don't need it provide data dir as the * locale dir. also note that the magicsharefile is optional for testing and * ensuring that the prefix check is correct. this file must be installed * in the application data dir (eg /usr/local/share/appname) and be referred * to using a unix-style relative path from that dir, eg directory/filename.png) * * @code * #include * * static Eina_Prefix *pfx = NULL; * * int main(int argc, char **argv) * { * eina_init(); * * pfx = eina_prefix_new(argv[0], main, "APPNAME", "appname", NULL, * PACKAGE_BIN_DIR, PACKAGE_LIB_DIR, * PACKAGE_DATA_DIR, LOCALE_DIR); * if (!pfx) printf("ERROR: Critical error in finding prefix\n"); * printf("install prefix is: %s\n", eina_prefix_get(pfx)); * printf("binaries are in: %s\n", eina_prefix_bin_get(pfx)); * printf("libraries are in: %s\n", eina_prefix_lib_get(pfx)); * printf("data files are in: %s\n", eina_prefix_data_get(pfx)); * eina_prefix_free(pfx); * * eina_shutdown(); * } * @endcode * * @since 1.1.0 */ EAPI Eina_Prefix * eina_prefix_new(const char *argv0, void *symbol, const char *envprefix, const char *sharedir, const char *magicsharefile, const char *pkg_bin, const char *pkg_lib, const char *pkg_data, const char *pkg_locale); /** * @brief Free the prefix object and all its contents * * @param pfx The prefix object * * Free the prefix object and all its allocated content. It will be invalid * to access the object after being freed. * * @since 1.1.0 */ EAPI void eina_prefix_free(Eina_Prefix *pfx); /** * @brief Get the prefix base directory * * @param pfx The prefix object * @return The base prefix (eg "/usr/local", "/usr", "/opt/appname" or * "/home/user/myapps/appname" etc.) that the software resides in at runtime. * * @since 1.1.0 */ EAPI const char * eina_prefix_get(Eina_Prefix *pfx); /** * @brief Get the binary installation directory * * @param pfx The prefix object * @return The location of installed binaries (eg "/usr/local/bin", * "/usr/bin", "/opt/appname/bin", "/home/user/myapps/appname/bin" etc.). * * @since 1.1.0 */ EAPI const char * eina_prefix_bin_get(Eina_Prefix *pfx); /** * @brief Get the library installation directory * * @param pfx The prefix object * @return The location of installed binaries (eg "/usr/local/lib", * "/usr/lib32", "/opt/appname/lib64", "/home/user/myapps/appname/lib" etc.). * * @since 1.1.0 */ EAPI const char * eina_prefix_lib_get(Eina_Prefix *pfx); /** * @brief Get the data installation directory * * @param pfx The prefix object * @return The location of installed binaries (eg "/usr/local/share/appname", * "/usr/share/appname", "/opt/appname/share/appname", "/home/user/myapps/appname/share/appname" etc.). * * @since 1.1.0 */ EAPI const char * eina_prefix_data_get(Eina_Prefix *pfx); /** * @brief Get the locale installation directory * * @param pfx The prefix object * @return The location of installed binaries (eg "/usr/local/share/locale", * "/usr/share/locale", "/opt/appname/share/locale", "/home/user/myapps/appname/share/locale" etc.). * * @since 1.1.0 */ EAPI const char * eina_prefix_locale_get(Eina_Prefix *pfx); /** * @} */ #endif eina-1.7.10/src/include/eina_refcount.h0000664000175000017500000000412212175475327014657 00000000000000/* EINA - EFL data type library * Copyright (C) 20011 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_REFCOUNT_H_ #define EINA_REFCOUNT_H_ /** * @addtogroup Eina_Refcount References counting * * @brief Small macro that simplify references counting. * * References counting is not a difficult task, but you must * handle it correctly every where, and that the issue. This * set of macro do provide helper that will force to use the * correct code in most case and reduce the bug likeliness. * Of course this without affecting speed ! */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @defgroup Eina_Refcount References counting * * @{ */ /** * @typedef Eina_Refcount * Inlined references counting type. */ typedef int Eina_Refcount; /** Used for declaring a reference counting member in a struct */ #define EINA_REFCOUNT Eina_Refcount __refcount /** Used just after allocating a object */ #define EINA_REFCOUNT_INIT(Variable) (Variable)->__refcount = 1 /** Used when using referring to an object one more time */ #define EINA_REFCOUNT_REF(Variable) (Variable)->__refcount++ /** Used when removing a reference to an object. The code just after will automatically be called when necessary */ #define EINA_REFCOUNT_UNREF(Variable) \ if (--((Variable)->__refcount) == 0) /** Get refcounting value */ #define EINA_REFCOUNT_GET(Variable) (Variable)->__refcount /** * @} */ /** * @} */ #endif /* EINA_REFCOUNT_H_ */ eina-1.7.10/src/include/eina_quadtree.h0000664000175000017500000000406012175475327014645 00000000000000/* EINA - EFL data type library * Copyright (C) 2010 Cedric BAIL * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_QUADTREE_H_ #define EINA_QUADTREE_H_ #include "eina_config.h" #include "eina_inlist.h" typedef struct _Eina_QuadTree Eina_QuadTree; typedef struct _Eina_QuadTree_Item Eina_QuadTree_Item; typedef enum { EINA_QUAD_LEFT, EINA_QUAD_RIGHT, EINA_QUAD_BOTH } Eina_Quad_Direction; typedef Eina_Quad_Direction (*Eina_Quad_Callback)(const void *object, size_t middle); EAPI Eina_QuadTree *eina_quadtree_new(size_t w, size_t h, Eina_Quad_Callback vertical, Eina_Quad_Callback horizontal); EAPI void eina_quadtree_free(Eina_QuadTree *q); EAPI void eina_quadtree_resize(Eina_QuadTree *q, size_t w, size_t h); EAPI void eina_quadtree_cycle(Eina_QuadTree *q); EAPI void eina_quadtree_increase(Eina_QuadTree_Item *object); EAPI Eina_QuadTree_Item *eina_quadtree_add(Eina_QuadTree *q, const void *object); EAPI Eina_Bool eina_quadtree_del(Eina_QuadTree_Item *object); EAPI Eina_Bool eina_quadtree_change(Eina_QuadTree_Item *object); EAPI Eina_Bool eina_quadtree_hide(Eina_QuadTree_Item *object); EAPI Eina_Bool eina_quadtree_show(Eina_QuadTree_Item *object); EAPI Eina_Inlist *eina_quadtree_collide(Eina_QuadTree *q, int x, int y, int w, int h); EAPI void *eina_quadtree_object(Eina_Inlist *list); #endif eina-1.7.10/src/include/eina_mmap.h0000664000175000017500000000363712175475327013776 00000000000000#ifndef EINA_MMAP_H_ #define EINA_MMAP_H_ /** * @addtogroup Eina_Mmap_Group Mmap Group * * @brief These functions provide helpers for safe mmap handling * * @{ * * @since 1.1.0 */ /** * @brief Enable or disable safe mmaped IO handling * * @param enabled The enabled state (to enable, pass #EINA_TRUE) * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This enables (if possible on your platform) a signal handler for * SIGBUS, that replaces the "bad page" with a page of 0's (from /dev/zero) * if a SIGBUS occurs. This allows for safe mmap() of files that may truncate * or from files on devices with IO errors. Normally these cases will result * in a SIGBUS being delivered (and termination of your process), but * when "mmap safety" is enabled, this will not occur. Instead a page of * bytes of the value 0 will replace the "bad page", allowing the process * to continue and allow its own parsing error detection to safely abort * the operation without the process falling apart. * * If you disable mmap safety, the SIGBUS handler will be restored to its * default handler. Note that eina_file_map_all() and eina_file_map_new() * will automatically enable mmap safety as they provide an mmaped file IO * layer, and rely on mmap to not fail for any part of the file. * * If you set up your own SIGBUS handler, then this will effectively disable * the safe mmap handling and make you liable to crashes on IO to or from * such "damaged files" that would take down your process. * * @since 1.1.0 */ EAPI Eina_Bool eina_mmap_safety_enabled_set(Eina_Bool enabled); /** * @brief Get the enabled state of mmap safety. * * @return The safety state (#EINA_TRUE if enabled) * * This returns the mmap safety state set by eina_mmap_safety_enabled_set(). * See eina_mmap_safety_enabled_set() for more information. * * @since 1.1.0 */ EAPI Eina_Bool eina_mmap_safety_enabled_get(void); /** * @} */ #endif eina-1.7.10/src/include/eina_inline_rbtree.x0000664000175000017500000000247512175475327015704 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Cedric BAIL * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_RBTREE_INLINE_H_ #define EINA_RBTREE_INLINE_H_ /** * @addtogroup Eina_Rbtree_Group Red-Black tree * * @brief These functions provide Red-Black trees management. * * @{ */ static inline Eina_Rbtree * eina_rbtree_inline_lookup(const Eina_Rbtree *root, const void *key, int length, Eina_Rbtree_Cmp_Key_Cb cmp, const void *data) { int result; while (root) { result = cmp(root, key, length, (void*) data); if (result == 0) return (Eina_Rbtree*) root; root = root->son[result < 0 ? 0 : 1]; } return NULL; } /** * @} */ #endif eina-1.7.10/src/include/eina_hamster.h0000664000175000017500000000234212175475327014477 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_HAMSTER_H_ #define EINA_HAMSTER_H_ /** * @addtogroup Eina_Hamster_Group Hamster * * @brief These functions provide hamster calls. * * @{ */ /** * @addtogroup Eina_Core_Group Core * * @{ */ /** * @defgroup Eina_Hamster_Group Hamster */ /** * @brief Get the hamster count. * * @return The number of available hamsters. * * This function returns how many hamsters you have. */ EAPI int eina_hamster_count(void); /** * @} */ /** * @} */ #endif /* EINA_HAMSTER_H_ */ eina-1.7.10/src/include/eina_main.h0000664000175000017500000001075312175475327013765 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_MAIN_H_ #define EINA_MAIN_H_ #include "eina_types.h" /** * @addtogroup Eina_Main_Group Main * * @brief These functions provide general initialisation and shut down * functions. */ /** * @addtogroup Eina_Core_Group Core * * @{ */ /** * @defgroup Eina_Main_Group Main * * @{ */ /** * @def EINA_VERSION_MAJOR * @brief Major version of Eina */ #define EINA_VERSION_MAJOR 1 /** * @def EINA_VERSION_MINOR * @brief Minor version of Eina */ #define EINA_VERSION_MINOR 7 /** * @typedef Eina_Version * The version of Eina. */ typedef struct _Eina_Version { int major; /**< Major component of the version */ int minor; /**< Minor component of the version */ int micro; /**< Micro component of the version */ int revision; /**< Revision component of the version */ } Eina_Version; EAPI extern Eina_Version *eina_version; /** * @brief Initialize the Eina library. * * @return 1 or greater on success, 0 on error. * * This function sets up all the eina modules. It returns 0 on * failure (that is, when one of the module fails to initialize), * otherwise it returns the number of times it has already been * called. * * When Eina is not used anymore, call eina_shutdown() to shut down * the Eina library. */ EAPI int eina_init(void); /** * @brief Shut down the Eina library. * * @return 0 when all the modules are completely shut down, 1 or * greater otherwise. * * This function shuts down the Eina library. It returns 0 when it has * been called the same number of times than eina_init(). In that case * it shut down all the Eina modules. * * Once this function succeeds (that is, @c 0 is returned), you must * not call any of the Eina function anymore. You must call * eina_init() again to use the Eina functions again. */ EAPI int eina_shutdown(void); /** * @brief Initialize the mutexes of the Eina library. * * @return 1 or greater on success, 0 on error. * * This function sets up all the mutexes in all eina modules. It returns 0 on * failure (that is, when one of the module fails to initialize), * otherwise it returns the number of times it has already been * called. * * When the mutexes are not used anymore, call eina_threads_shutdown() to shut down * the mutexes. * * This function should never be called outside of the main loop. */ EAPI int eina_threads_init(void); /** * @brief Shut down mutexes in the Eina library. * * @return 0 when all mutexes are completely shut down, 1 or * greater otherwise. * * This function shuts down the mutexes in the Eina library. It returns 0 when it has * been called the same number of times than eina_threads_init(). In that case * it shut down all the mutexes. * * Once this function succeeds (that is, @c 0 is returned), you must * not call any of the Eina function in a thread anymore. You must call * eina_threads_init() again to use the Eina functions in a thread again. * * This function should never be called outside of the main loop. */ EAPI int eina_threads_shutdown(void); /** * @brief Check if you are calling this function from the same thread Eina was initialized or not * * @return #EINA_TRUE is the calling function is the same thread, #EINA_FALSE otherwise. * * @since 1.1.0 * * Most EFL function are not thread safe and all the call need to happen in * the main loop. With this call you could know if you can call an EFL * function or not. */ EAPI Eina_Bool eina_main_loop_is(void); /** * @brief You should never use that function excpet if you really really know what your are doing. * @since 1.1.0 * * If you are reading this documentation, that certainly means you don't know what is the purpose of * this call and you should just not use it. */ EAPI void eina_main_loop_define(void); /** * @} */ /** * @} */ #endif /* EINA_MAIN_H_ */ eina-1.7.10/src/include/eina_inline_lock_win32.x0000664000175000017500000003341512175475327016371 00000000000000/* EINA - EFL data type library * Copyright (C) 2011 Vincent Torri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLINE_LOCK_WIN32_X_ #define EINA_INLINE_LOCK_WIN32_X_ #ifdef EINA_UNUSED # undef EINA_UNUSED #endif #ifdef __GNUC__ # define EINA_UNUSED __attribute__((unused)) #else # define EINA_UNUSED #endif #include typedef CRITICAL_SECTION Eina_Lock; typedef struct _Eina_Condition Eina_Condition; typedef struct _Eina_RWLock Eina_RWLock; typedef DWORD Eina_TLS; typedef HANDLE Eina_Semaphore; #if _WIN32_WINNT >= 0x0600 struct _Eina_Condition { CRITICAL_SECTION *mutex; CONDITION_VARIABLE condition; }; struct _Eina_RWLock { SRWLOCK mutex; Eina_Bool is_read_mode : 1; }; #else struct _Eina_Condition { int waiters_count; CRITICAL_SECTION waiters_count_lock; CRITICAL_SECTION *mutex; HANDLE semaphore; HANDLE waiters_done; Eina_Bool was_broadcast; }; struct _Eina_RWLock { LONG readers_count; LONG writers_count; int readers; int writers; Eina_Lock mutex; Eina_Condition cond_read; Eina_Condition cond_write; }; #endif EAPI extern Eina_Bool _eina_threads_activated; static inline Eina_Bool eina_lock_new(Eina_Lock *mutex) { InitializeCriticalSection(mutex); return EINA_TRUE; } static inline void eina_lock_free(Eina_Lock *mutex) { DeleteCriticalSection(mutex); } static inline Eina_Lock_Result eina_lock_take(Eina_Lock *mutex) { #ifdef EINA_HAVE_ON_OFF_THREADS if (!_eina_threads_activated) return EINA_LOCK_SUCCEED; #endif EnterCriticalSection(mutex); return EINA_LOCK_SUCCEED; } static inline Eina_Lock_Result eina_lock_take_try(Eina_Lock *mutex) { #ifdef EINA_HAVE_ON_OFF_THREADS if (!_eina_threads_activated) return EINA_LOCK_SUCCEED; #endif return TryEnterCriticalSection(mutex) == 0 ? EINA_LOCK_FAIL : EINA_LOCK_SUCCEED; } static inline Eina_Lock_Result eina_lock_release(Eina_Lock *mutex) { #ifdef EINA_HAVE_ON_OFF_THREADS if (!_eina_threads_activated) return EINA_LOCK_SUCCEED; #endif LeaveCriticalSection(mutex); return EINA_LOCK_SUCCEED; } static inline void eina_lock_debug(const Eina_Lock *mutex) { (void)mutex; } static inline Eina_Bool eina_condition_new(Eina_Condition *cond, Eina_Lock *mutex) { cond->mutex = mutex; #if _WIN32_WINNT >= 0x0600 InitializeConditionVariable(&cond->condition); #else cond->waiters_count = 0; cond->was_broadcast = EINA_FALSE; cond->semaphore = CreateSemaphore(NULL, // no security 0, // initially 0 0x7fffffff, // max count NULL); // unnamed if (!cond->semaphore) return EINA_FALSE; InitializeCriticalSection(&cond->waiters_count_lock); cond->waiters_done = CreateEvent(NULL, // no security FALSE, // auto-reset FALSE, // non-signaled initially NULL); // unnamed if (!cond->waiters_done) { CloseHandle(cond->semaphore); return EINA_FALSE; } #endif return EINA_TRUE; } static inline void eina_condition_free(Eina_Condition *cond) { #if _WIN32_WINNT >= 0x0600 /* Nothing to do */ (void)cond; #else CloseHandle(cond->waiters_done); DeleteCriticalSection(&cond->waiters_count_lock); CloseHandle(cond->semaphore); #endif } static inline Eina_Bool _eina_condition_internal_timedwait(Eina_Condition *cond, DWORD t) { #if _WIN32_WINNT >= 0x0600 SleepConditionVariableCS(&cond->condition, cond->mutex, t); #else DWORD ret; Eina_Bool last_waiter; /* Avoid race conditions. */ EnterCriticalSection(&cond->waiters_count_lock); cond->waiters_count++; LeaveCriticalSection(&cond->waiters_count_lock); /* * This call atomically releases the mutex and waits on the * semaphore until or * are called by another thread. */ ret = SignalObjectAndWait(cond->mutex, cond->semaphore, t, FALSE); if (ret == WAIT_FAILED) return EINA_FALSE; /* Reacquire lock to avoid race conditions. */ EnterCriticalSection(&cond->waiters_count_lock); /* We're no longer waiting... */ cond->waiters_count--; /* Check to see if we're the last waiter after . */ last_waiter = (cond->was_broadcast) && (cond->waiters_count == 0); LeaveCriticalSection(&cond->waiters_count_lock); /* * If we're the last waiter thread during this particular broadcast * then let all the other threads proceed. */ if (last_waiter) { /* * This call atomically signals the event and waits until * it can acquire the . This is required to ensure fairness. */ ret = SignalObjectAndWait(cond->waiters_done, cond->mutex, t, FALSE); if (ret == WAIT_FAILED) return EINA_FALSE; } else { /* * Always regain the external mutex since that's the guarantee we * give to our callers. */ ret = WaitForSingleObject(cond->mutex, t); if (ret == WAIT_FAILED) return EINA_FALSE; } #endif return EINA_TRUE; } static inline Eina_Bool eina_condition_timedwait(Eina_Condition *cond, double val) { return _eina_condition_internal_timedwait(cond, (DWORD)(val * 1000)); } static inline Eina_Bool eina_condition_wait(Eina_Condition *cond) { return _eina_condition_internal_timedwait(cond, INFINITE); } static inline Eina_Bool eina_condition_broadcast(Eina_Condition *cond) { #if _WIN32_WINNT >= 0x0600 WakeAllConditionVariable(&cond->condition); return EINA_TRUE; #else Eina_Bool have_waiters; /* * This is needed to ensure that and are * consistent relative to each other. */ EnterCriticalSection(&cond->waiters_count_lock); have_waiters = EINA_FALSE; if (cond->waiters_count > 0) { /* * We are broadcasting, even if there is just one waiter... * Record that we are broadcasting, which helps optimize * for the non-broadcast case. */ cond->was_broadcast = EINA_TRUE; have_waiters = EINA_TRUE; } if (have_waiters) { DWORD ret; /* Wake up all the waiters atomically. */ ret = ReleaseSemaphore(cond->semaphore, cond->waiters_count, 0); LeaveCriticalSection(&cond->waiters_count_lock); if (!ret) return EINA_FALSE; /* * Wait for all the awakened threads to acquire the counting * semaphore. */ ret = WaitForSingleObject(cond->waiters_done, INFINITE); if (ret == WAIT_FAILED) return EINA_FALSE; /* * This assignment is okay, even without the held * because no other waiter threads can wake up to access it. */ cond->was_broadcast = EINA_FALSE; } else LeaveCriticalSection(&cond->waiters_count_lock); return EINA_TRUE; #endif } static inline Eina_Bool eina_condition_signal(Eina_Condition *cond) { #if _WIN32_WINNT >= 0x0600 WakeConditionVariable(&cond->condition); #else Eina_Bool have_waiters; EnterCriticalSection(&cond->waiters_count_lock); have_waiters = (cond->waiters_count > 0); LeaveCriticalSection(&cond->waiters_count_lock); /* If there aren't any waiters, then this is a no-op. */ if (have_waiters) { if (!ReleaseSemaphore(cond->semaphore, 1, 0)) return EINA_FALSE; } #endif return EINA_TRUE; } static inline Eina_Bool eina_rwlock_new(Eina_RWLock *mutex) { #if _WIN32_WINNT >= 0x0600 InitializeSRWLock(&mutex->mutex); return EINA_TRUE; #else if (!eina_lock_new(&(mutex->mutex))) return EINA_FALSE; if (!eina_condition_new(&(mutex->cond_read), &(mutex->mutex))) goto on_error1; if (!eina_condition_new(&(mutex->cond_write), &(mutex->mutex))) goto on_error2; mutex->readers_count = 0; mutex->writers_count = 0; mutex->readers = 0; mutex->writers = 0; return EINA_TRUE; on_error2: eina_condition_free(&(mutex->cond_read)); on_error1: eina_lock_free(&(mutex->mutex)); return EINA_FALSE; #endif } static inline void eina_rwlock_free(Eina_RWLock *mutex) { #if _WIN32_WINNT >= 0x0600 (void)mutex; #else eina_condition_free(&(mutex->cond_read)); eina_condition_free(&(mutex->cond_write)); eina_lock_free(&(mutex->mutex)); #endif } static inline Eina_Lock_Result eina_rwlock_take_read(Eina_RWLock *mutex) { #if _WIN32_WINNT >= 0x0600 AcquireSRWLockShared(&mutex->mutex); mutex->is_read_mode = EINA_TRUE; #else DWORD res = 0; if (eina_lock_take(&(mutex->mutex)) == EINA_LOCK_FAIL) return EINA_LOCK_FAIL; if (mutex->writers) { mutex->readers_count++; while (mutex->writers) { EnterCriticalSection(&mutex->cond_write.waiters_count_lock); mutex->cond_read.waiters_count++; LeaveCriticalSection(&mutex->cond_write.waiters_count_lock); res = WaitForSingleObject(mutex->cond_write.semaphore, INFINITE); if (res != WAIT_OBJECT_0) break; } mutex->readers_count--; } if (res == 0) mutex->readers++; eina_lock_release(&(mutex->mutex)); #endif return EINA_LOCK_SUCCEED; } static inline Eina_Lock_Result eina_rwlock_take_write(Eina_RWLock *mutex) { #if _WIN32_WINNT >= 0x0600 AcquireSRWLockExclusive(&mutex->mutex); mutex->is_read_mode = EINA_FALSE; #else DWORD res = 0; if (eina_lock_take(&(mutex->mutex)) == EINA_LOCK_FAIL) return EINA_LOCK_FAIL; if (mutex->writers || mutex->readers > 0) { mutex->writers_count++; while (mutex->writers || mutex->readers > 0) { EnterCriticalSection(&mutex->cond_write.waiters_count_lock); mutex->cond_read.waiters_count++; LeaveCriticalSection(&mutex->cond_write.waiters_count_lock); res = WaitForSingleObject(mutex->cond_write.semaphore, INFINITE); if (res != WAIT_OBJECT_0) break; } mutex->writers_count--; } if (res == 0) mutex->writers = 1; eina_lock_release(&(mutex->mutex)); #endif return EINA_LOCK_SUCCEED; } static inline Eina_Lock_Result eina_rwlock_release(Eina_RWLock *mutex) { #if _WIN32_WINNT >= 0x0600 if (mutex->is_read_mode) ReleaseSRWLockShared(&mutex->mutex); else ReleaseSRWLockExclusive(&mutex->mutex); #else if (eina_lock_take(&(mutex->mutex)) == EINA_LOCK_FAIL) return EINA_LOCK_FAIL; if (mutex->writers) { mutex->writers = 0; if (mutex->readers_count == 1) { EnterCriticalSection(&mutex->cond_read.waiters_count_lock); if (mutex->cond_read.waiters_count > 0) ReleaseSemaphore(mutex->cond_read.semaphore, 1, 0); LeaveCriticalSection(&mutex->cond_read.waiters_count_lock); } else if (mutex->readers_count > 0) eina_condition_broadcast(&(mutex->cond_read)); else if (mutex->writers_count > 0) { EnterCriticalSection (&mutex->cond_write.waiters_count_lock); if (mutex->cond_write.waiters_count > 0) ReleaseSemaphore(mutex->cond_write.semaphore, 1, 0); LeaveCriticalSection (&mutex->cond_write.waiters_count_lock); } } else if (mutex->readers > 0) { mutex->readers--; if (mutex->readers == 0 && mutex->writers_count > 0) { EnterCriticalSection (&mutex->cond_write.waiters_count_lock); if (mutex->cond_write.waiters_count > 0) ReleaseSemaphore(mutex->cond_write.semaphore, 1, 0); LeaveCriticalSection (&mutex->cond_write.waiters_count_lock); } } eina_lock_release(&(mutex->mutex)); #endif return EINA_LOCK_SUCCEED; } static inline Eina_Bool eina_tls_new(Eina_TLS *key) { if ((*key = TlsAlloc()) == TLS_OUT_OF_INDEXES) return EINA_FALSE; return EINA_TRUE; } static inline void eina_tls_free(Eina_TLS key) { TlsFree(key); } static inline void * eina_tls_get(Eina_TLS key) { return (void*)TlsGetValue(key); } static inline Eina_Bool eina_tls_set(Eina_TLS key, const void *data) { if (TlsSetValue(key, (LPVOID)data) == 0) return EINA_FALSE; return EINA_TRUE; } static inline Eina_Bool eina_semaphore_new(Eina_Semaphore *sem, int count_init) { if (!sem || (count_init <= 0)) return EINA_FALSE; *sem = CreateSemaphore(NULL, count_init, 32767, NULL); if (!*sem) return EINA_FALSE; } static inline Eina_Bool eina_semaphore_free(Eina_Semaphore *sem) { if (!sem) return EINA_FALSE; CloseHandle(*sem); } static inline Eina_Bool eina_semaphore_lock(Eina_Semaphore *sem) { DWORD res; if (!sem) return EINA_FALSE; res = WaitForSingleObject(*sem, 0L); if (res == WAIT_OBJECT_0) return EINA_TRUE; return EINA_FALSE; } static inline Eina_Bool eina_semaphore_release(Eina_Semaphore *sem, int count_release) { if (!sem) return EINA_FALSE; return ReleaseSemaphore(*sem, count_release, NULL) ? EINA_TRUE : EINA_FALSE; } #endif eina-1.7.10/src/include/eina_inline_tiler.x0000664000175000017500000000753412175475327015541 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2009 Rafael Antognolli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_TILER_INLINE_H_ #define EINA_TILER_INLINE_H_ #include "eina_safety_checks.h" /** * @cond LOCAL * This struct should not be accessed directly, it is used by * eina_tile_grid_slicer functions to maintain context and fill "info" * member with correct values for given iteration. */ struct _Eina_Tile_Grid_Slicer { unsigned long col1, col2, row1, row2; // initial and final col,row int tile_w, tile_h; // tile width, height int x_rel, y_rel; // starting x,y coordinates of the first col,row int w1_rel, h1_rel; // width,height of the first col,row int w2_rel, h2_rel; // width,height of the last col,row struct Eina_Tile_Grid_Info info; // info about the current tile Eina_Bool first; }; /** * @endcond */ static inline Eina_Bool eina_tile_grid_slicer_next(Eina_Tile_Grid_Slicer *slc, const Eina_Tile_Grid_Info **rect) { EINA_SAFETY_ON_NULL_RETURN_VAL(slc, 0); if (slc->first) { slc->first = 0; *rect = &slc->info; return EINA_TRUE; } slc->info.col++; if (slc->info.col > slc->col2) { slc->info.row++; if (slc->info.row > slc->row2) return EINA_FALSE; else if (slc->info.row < slc->row2) slc->info.rect.h = slc->tile_h; else slc->info.rect.h = slc->h2_rel; slc->info.rect.y = 0; slc->info.col = slc->col1; slc->info.rect.x = slc->x_rel; slc->info.rect.w = slc->w1_rel; } else { slc->info.rect.x = 0; if (slc->info.col < slc->col2) slc->info.rect.w = slc->tile_w; else slc->info.rect.w = slc->w2_rel; } if (slc->info.rect.w == slc->tile_w && slc->info.rect.h == slc->tile_h) slc->info.full = EINA_TRUE; else slc->info.full = EINA_FALSE; *rect = &slc->info; return EINA_TRUE; } static inline Eina_Bool eina_tile_grid_slicer_setup(Eina_Tile_Grid_Slicer *slc, int x, int y, int w, int h, int tile_w, int tile_h) { int tx1, tx2, ty1, ty2; EINA_SAFETY_ON_NULL_RETURN_VAL(slc, 0); tx1 = x; ty1 = y; tx2 = x + w - 1; ty2 = y + h - 1; if (x < 0 || y < 0 || w <= 0 || h <= 0 || tile_w <= 0 || tile_h <= 0) { slc->first = 0; slc->col1 = slc->row1 = 0; slc->col2 = slc->row2 = 0; slc->info.col = slc->col1; slc->info.row = slc->row1; return EINA_TRUE; } slc->col1 = tx1 / tile_w; slc->row1 = ty1 / tile_h; slc->col2 = (tx2 - 0) / tile_w; slc->row2 = (ty2 - 0) / tile_h; slc->x_rel = tx1 % tile_w; slc->y_rel = ty1 % tile_h; slc->w1_rel = tile_w - slc->x_rel; slc->h1_rel = tile_h - slc->y_rel; slc->w2_rel = tx2 % tile_w + 1; slc->h2_rel = ty2 % tile_h + 1; slc->tile_w = tile_w; slc->tile_h = tile_h; slc->first = 1; slc->info.col = slc->col1; slc->info.row = slc->row1; slc->info.rect.x = slc->x_rel; slc->info.rect.y = slc->y_rel; if (slc->info.col == slc->col2) slc->w1_rel = slc->w2_rel - slc->x_rel; if (slc->info.row == slc->row2) slc->h1_rel = slc->h2_rel - slc->y_rel; slc->info.rect.w = slc->w1_rel; slc->info.rect.h = slc->h1_rel; if (slc->info.rect.w == slc->tile_w && slc->info.rect.h == slc->tile_h) slc->info.full = EINA_TRUE; else slc->info.full = EINA_FALSE; return EINA_TRUE; } #endif eina-1.7.10/src/include/eina_inline_array.x0000664000175000017500000001046212175475327015532 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLINE_ARRAY_X_ #define EINA_INLINE_ARRAY_X_ #include #include /** * @cond LOCAL */ EAPI Eina_Bool eina_array_grow(Eina_Array *array); /** * @endcond */ /** * @addtogroup Eina_Array_Group Array * * @brief These functions provide array management. * * @{ */ /** * @brief Append a data to an array. * * @param array The array. * @param data The data to add. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function appends @p data to @p array. For performance * reasons, there is no check of @p array. If it is @c NULL or * invalid, the program may crash. If @p data is @c NULL, or if an * allocation is necessary and fails, #EINA_FALSE is returned * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, #EINA_TRUE is * returned. */ static inline Eina_Bool eina_array_push(Eina_Array *array, const void *data) { if (!data) return EINA_FALSE; if (EINA_UNLIKELY((array->count + 1) > array->total)) if (!eina_array_grow(array)) return EINA_FALSE; array->data[array->count++] = (void*) data; return EINA_TRUE; } /** * @brief Remove the last data of an array. * * @param array The array. * @return The retrieved data. * * This function removes the last data of @p array, decreases the count * of @p array and returns the data. For performance reasons, there * is no check of @p array. If it is @c NULL or invalid, the program * may crash. If the count member is less or equal than 0, @c NULL is * returned. */ static inline void * eina_array_pop(Eina_Array *array) { void *ret = NULL; if (array->count <= 0) goto on_empty; ret = array->data[--array->count]; on_empty: return ret; } /** * @brief Return the data at a given position in an array. * * @param array The array. * @param idx The potition of the data to retrieve. * @return The retrieved data. * * This function returns the data at the position @p idx in @p * array. For performance reasons, there is no check of @p array or @p * idx. If it is @c NULL or invalid, the program may crash. */ static inline void * eina_array_data_get(const Eina_Array *array, unsigned int idx) { return array->data[idx]; } static inline void eina_array_data_set(const Eina_Array *array, unsigned int idx, const void *data) { array->data[idx] = (void*) data; } /** * @brief Return the number of elements in an array. * * @param array The array. * @return The number of elements. * * This function returns the number of elements in @p array. For * performance reasons, there is no check of @p array. If it is * @c NULL or invalid, the program may crash. * * @deprecated use eina_array_count() */ static inline unsigned int eina_array_count_get(const Eina_Array *array) { return array->count; } /** * @brief Return the number of elements in an array. * * @param array The array. * @return The number of elements. * * This function returns the number of elements in @p array. For * performance reasons, there is no check of @p array. If it is * @c NULL or invalid, the program may crash. */ static inline unsigned int eina_array_count(const Eina_Array *array) { return array->count; } static inline Eina_Bool eina_array_foreach(Eina_Array *array, Eina_Each_Cb cb, void *fdata) { void *data; Eina_Array_Iterator iterator; unsigned int i; Eina_Bool ret = EINA_TRUE; EINA_ARRAY_ITER_NEXT(array, i, data, iterator) if (cb(array, data, fdata) != EINA_TRUE) { ret = EINA_FALSE; break; } return ret; } static inline void eina_array_clean(Eina_Array *array) { array->count = 0; } /** * @} */ #endif eina-1.7.10/src/include/eina_inarray.h0000664000175000017500000005626412175475327014515 00000000000000/* EINA - EFL data type library * Copyright (C) 2012 ProFUSION embedded systems * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INARRAY_H_ #define EINA_INARRAY_H_ #include "eina_types.h" #include "eina_iterator.h" #include "eina_accessor.h" /** * @page eina_inarray_example_01 Eina inline array usage * @dontinclude eina_inarray_01.c * * This example will create an inline array of chars, add some elements, print * it, re-purpose the array to store ints, add some elements and print that. * * We'll start with a function to compare ints we need this because the '>' * operator is not a function and can't be used where Eina_Compare_Cb is needed. * @skip int * @until } * * And then move on to the code we actually care about, starting with variable * declarations and eina initialization: * @until eina_init * * Creating an inline array is very simple, we just need to know what type we * want to store: * @until inarray_new * @note The second parameter(the step) is left at zero which means that eina * will choose an appropriate value, this should @b only be changed if it's * known, beforehand, how many elements the array will have. * * Once we have an array we can start adding elements to it. Because the * insertion function expect a memory address we have to put the value we want * to store in a variable(this should be no problem since in real world usage * that's usually where the value will be anyways): * @until push * @note Because the inline array copies the value given to it we can later * change @c ch, which we do, without affecting the contents of the array. * * So let's add some more elements: * @until push * @until push * @until push * * We will then iterate over our array and print every position of it. The thing * to note here is not so much the values which will be the expected 'a', 'b', * 'c' and 'd', but rather the memory address of these values, they are * sequential: * @until printf * @until printf * * We'll now use our array to store ints, so we need to first erase every member * currently on the array: * @until _flush * * And then to be able to store a different type on the same array we use the * eina_inarray_step_set() function, which is just like the eina_inarray_new() * function except it receives already allocated memory. This time we're going * to ask eina to use a step of size 4 because that's how many elements we'll be * putting on the array: * @until _step_set * @note Strictly speaking the reason to call eina_inarray_step_set() is not * because we're storing different type, but rather because our types have * different sizes. Eina inline arrays don't actually know anything about types, * they only deal in blocks of memory of a given size. * @note Since eina_inarray_step_set() receives already allocated memory you can(and * it is in fact good practice) use inline arrays not declared as pointers: * @code * Eina_Inarray arr; * eina_inarray_step_set(&arr, sizeof(arr), sizeof(int), 4); * @endcode * * And now to add our integer values to the array: * @until push * @until push * @until push * * Just to change things up a bit we've left out the 99 value, but will still * add it in such a way to keep the array ordered. There are many ways to do * this, we could use eina_inarray_insert_at(), or we could change the value * of the last member using eina_inarray_replace_at() and then append the values * in the right order, but for no particular reason we're going to use * eina_inarray_insert_sorted() instead: * @until insert_sorted * * We then print the size of our array, and the array itself, much like last * time the values are not surprising, and neither should it be that the memory * addresses are contiguous: * @until printf * @until printf * * Once done we free our array and shutdown eina: * @until } * * The source for this example: @ref eina_inarray_01_c */ /** * @page eina_inarray_01_c eina_inarray_01.c * @include eina_inarray_01.c * @example eina_inarray_01.c */ /** * @page eina_inarray_example_02 Eina inline array of strings * @dontinclude eina_inarray_02.c * * This example will create an inline array of strings, add some elements and * then print them. This example is based on @ref eina_array_01_example_page and * @ref eina_inarray_example_01. * * We start with some variable declarations and eina initialization: * @skip int * @until eina_init * * We then create the array much like we did on @ref eina_inarray_example_01 : * @until inarray_new * * The point were this example significantly differs from the first eina inline * array example. We'll not be adding the strings themselves to the array since * their size varies, we'll store pointer to the strings instead. We therefore * use @c char** to populate our inline array: * @until } * * The source for this example: @ref eina_inarray_02_c */ /** * @page eina_inarray_02_c eina_inarray_02.c * @include eina_inarray_02.c * @example eina_inarray_02.c */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @since 1.2 * * @{ */ /** * @addtogroup Eina_Containers_Group Containers * * @{ */ /** * @defgroup Eina_Inline_Array_Group Inline Array * * Inline array is a container that stores the data itself not pointers to data, * this means there is no memory fragmentation, also for small data types(such * as char, short, int, etc.) it's more memory efficient. * * Usage of the inline array is very similar to that of other * @ref Eina_Containers_Group, like all arrays adding elements to the beginning * of the array is a lot more costly than appending, so those operations should * be minimized. * * Examples: * @li @ref eina_inarray_example_01 * @li @ref eina_inarray_example_02 * * @{ */ /** * @typedef Eina_Inarray * Inlined array type. * * @since 1.2 */ typedef struct _Eina_Inarray Eina_Inarray; /** * Inline array structure, use #Eina_Inarray typedef instead. * * Do not modify these fields directly, use eina_inarray_step_set() or * eina_inarray_new() instead. * * @since 1.2 */ struct _Eina_Inarray { #define EINA_ARRAY_VERSION 1 int version; /**< Should match EINA_ARRAY_VERSION used when compiled your apps, provided for ABI compatibility */ unsigned int member_size; /**< byte size of each entry in members */ unsigned int len; /**< number of elements used in members */ unsigned int max; /**< number of elements allocated in members */ unsigned int step; /**< amount to grow number of members allocated */ void *members; /**< actual array of elements */ EINA_MAGIC }; /** * @brief Create new inline array. * * @param member_size size of each member in the array. * @param step when resizing the array, do this using the following * extra amount. * @return The new inline array table or @c NULL on failure. * * Create a new array where members are inlined in a sequence. Each * member has @a member_size bytes. * * If the @a step is 0, then a safe default is chosen. * * On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY is * set. If @a member_size is zero, then @c NULL is returned. * * @see eina_inarray_free() * * @since 1.2 */ EAPI Eina_Inarray *eina_inarray_new(unsigned int member_size, unsigned int step) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Free array and its members. * @param array array object * * @see eina_inarray_flush() * * @since 1.2 */ EAPI void eina_inarray_free(Eina_Inarray *array) EINA_ARG_NONNULL(1); /** * @brief Initialize inline array. * @param array array object to initialize. * @param member_size size of each member in the array. * @param step when resizing the array, do this using the following * extra amount. * * Initialize array. If the @a step is @c 0, then a safe default is * chosen. * * This is useful for arrays inlined into other structures or * allocated at stack. * * @see eina_inarray_flush() * * @since 1.2 */ EAPI void eina_inarray_step_set(Eina_Inarray *array, unsigned int sizeof_eina_inarray, unsigned int member_size, unsigned int step) EINA_ARG_NONNULL(1); /** * @brief Remove every member from array. * @param array array object * * @since 1.2 */ EAPI void eina_inarray_flush(Eina_Inarray *array) EINA_ARG_NONNULL(1); /** * @brief Copy the data as the last member of the array. * @param array array object * @param data data to be copied at the end * @return the index of the new member or -1 on errors. * * Copies the given pointer contents at the end of the array. The * pointer is not referenced, instead it's contents is copied to the * members array using the previously defined @c member_size. * * @see eina_inarray_insert_at(). * * @since 1.2 */ EAPI int eina_inarray_push(Eina_Inarray *array, const void *data) EINA_ARG_NONNULL(1, 2); /** * @brief Copy the data to array at position found by comparison function * @param array array object * @param data data to be copied * @param compare compare function * @return the index of the new member or @c -1 on errors. * * Copies the given pointer contents at the array position defined by * given @a compare function. The pointer is not referenced, instead * it's contents is copied to the members array using the previously * defined @c member_size. * * The data given to @a compare function are the pointer to member * memory itself, do no change it. * * @see eina_inarray_insert_sorted() * @see eina_inarray_insert_at() * @see eina_inarray_push() * * @since 1.2 */ EAPI int eina_inarray_insert(Eina_Inarray *array, const void *data, Eina_Compare_Cb compare) EINA_ARG_NONNULL(1, 2, 3); /** * @brief Copy the data to array at position found by comparison function * @param array array object * @param data data to be copied * @param compare compare function * @return the index of the new member or @c -1 on errors. * * Copies the given pointer contents at the array position defined by * given @a compare function. The pointer is not referenced, instead * it's contents is copied to the members array using the previously * defined @c member_size. * * The data given to @a compare function are the pointer to member * memory itself, do no change it. * * This variation will optimize insertion position assuming the array * is already sorted by doing binary search. * * @see eina_inarray_sort() * * @since 1.2 */ EAPI int eina_inarray_insert_sorted(Eina_Inarray *array, const void *data, Eina_Compare_Cb compare) EINA_ARG_NONNULL(1, 2, 3); /** * @brief Find data and remove matching member * @param array array object * @param data data to be found and removed * @return the index of the removed member or @c -1 on errors. * * Find data in the array and remove it. Data may be an existing * member of array (then optimized) or the contents will be matched * using memcmp(). * * @see eina_inarray_pop() * @see eina_inarray_remove_at() * * @since 1.2 */ EAPI int eina_inarray_remove(Eina_Inarray *array, const void *data) EINA_ARG_NONNULL(1, 2); /** * @brief Removes the last member of the array * @param array array object * @return the data poped out of the array. * * Note: The data could be considered valid only until any other operation touch the Inarray. * * @since 1.2 */ EAPI void *eina_inarray_pop(Eina_Inarray *array) EINA_ARG_NONNULL(1); /** * @brief Get the member at given position * @param array array object * @param position member position * @return pointer to current member memory. * * Gets the member given its position in the array. It is a pointer to * its current memory, then it can be invalidated with functions that * changes the array such as eina_inarray_push(), * eina_inarray_insert_at() or eina_inarray_remove_at() or variants. * * See also eina_inarray_lookup() and eina_inarray_lookup_sorted(). * * @since 1.2 */ EAPI void *eina_inarray_nth(const Eina_Inarray *array, unsigned int position) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Copy the data at given position in the array * @param array array object * @param position where to insert the member * @param data data to be copied at position * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * Copies the given pointer contents at the given @a position in the * array. The pointer is not referenced, instead it's contents is * copied to the members array using the previously defined * @c member_size. * * All the members from @a position to the end of the array are * shifted to the end. * * If @a position is equal to the end of the array (equals to * eina_inarray_count()), then the member is appended. * * If @a position is bigger than the array length, it will fail. * * @since 1.2 */ EAPI Eina_Bool eina_inarray_insert_at(Eina_Inarray *array, unsigned int position, const void *data) EINA_ARG_NONNULL(1, 3); /** * @brief Opens a space at given position, returning its pointer. * @param array array object * @param position where to insert first member (open/allocate space) * @param member_count how many times member_size bytes will be allocated. * @return pointer to first member memory allocated or @c NULL on errors. * * This is similar to eina_inarray_insert_at(), but useful if the * members contents are still unknown or unallocated. It will make * room for the required number of items and return the pointer to the * first item, similar to malloc(member_count * member_size), with the * guarantee all memory is within members array. * * The new member memory is undefined, it's not automatically zeroed. * * All the members from @a position to the end of the array are * shifted to the end. * * If @a position is equal to the end of the array (equals to * eina_inarray_count()), then the member is appended. * * If @a position is bigger than the array length, it will fail. * * @since 1.2 */ EAPI void *eina_inarray_alloc_at(Eina_Inarray *array, unsigned int position, unsigned int member_count) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Copy the data over the given position. * @param array array object * @param position where to replace the member * @param data data to be copied at position * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * Copies the given pointer contents at the given @a position in the * array. The pointer is not referenced, instead it's contents is * copied to the members array using the previously defined * @c member_size. * * If @a position does not exist, it will fail. * * @since 1.2 */ EAPI Eina_Bool eina_inarray_replace_at(Eina_Inarray *array, unsigned int position, const void *data) EINA_ARG_NONNULL(1, 3); /** * @brief Remove member at given position * @param array array object * @param position position to be removed * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * The member is removed from array and any members after it are moved * towards the array head. * * See also eina_inarray_pop() and eina_inarray_remove(). * * @since 1.2 */ EAPI Eina_Bool eina_inarray_remove_at(Eina_Inarray *array, unsigned int position) EINA_ARG_NONNULL(1); /** * @brief Reverse members in the array. * @param array array object * * If you do not want to change the array, just walk its elements * backwards, then use EINA_INARRAY_REVERSE_FOREACH() macro. * * @see EINA_INARRAY_REVERSE_FOREACH() * * @since 1.2 */ EAPI void eina_inarray_reverse(Eina_Inarray *array) EINA_ARG_NONNULL(1); /** * @brief Applies quick sort to array * @param array array object * @param compare compare function * * Applies quick sort to the @a array. * * The data given to @a compare function are the pointer to member * memory itself, do no change it. * * @see eina_inarray_insert_sorted() * * @since 1.2 */ EAPI void eina_inarray_sort(Eina_Inarray *array, Eina_Compare_Cb compare) EINA_ARG_NONNULL(1, 2); /** * @brief Search member (linear walk) * @param array array object * @param data member to search using @a compare function. * @param compare compare function * @return the member index or -1 if not found. * * Walks array linearly looking for given data as compared by * @a compare function. * * The data given to @a compare function are the pointer to member * memory itself, do no change it. * * See also eina_inarray_lookup_sorted(). * * @since 1.2 */ EAPI int eina_inarray_search(const Eina_Inarray *array, const void *data, Eina_Compare_Cb compare) EINA_ARG_NONNULL(1, 2, 3); /** * @brief Search member (binary search walk) * @param array array object * @param data member to search using @a compare function. * @param compare compare function * @return the member index or @c -1 if not found. * * Uses binary search for given data as compared by @a compare function. * * The data given to @a compare function are the pointer to member * memory itself, do no change it. * * @since 1.2 */ EAPI int eina_inarray_search_sorted(const Eina_Inarray *array, const void *data, Eina_Compare_Cb compare) EINA_ARG_NONNULL(1, 2, 3); /** * @brief Call function for each array member * @param array array object * @param function callback function * @param user_data user data given to callback @a function * @return #EINA_TRUE if it successfully iterate all items of the array. * * Call @a function for every given data in @a array. * * Safe way to iterate over an array. @p function should return #EINA_TRUE * as long as you want the function to continue iterating, by * returning #EINA_FALSE it will stop and return #EINA_FALSE as a result. * * The data given to @a function are the pointer to member memory * itself. * * @see EINA_INARRAY_FOREACH() * * @since 1.2 */ EAPI Eina_Bool eina_inarray_foreach(const Eina_Inarray *array, Eina_Each_Cb function, const void *user_data) EINA_ARG_NONNULL(1, 2); /** * @brief Remove all members that matched. * @param array array object * @param match match function * @param user_data user data given to callback @a match. * @return number of removed entries or -1 on error. * * Remove all entries in the @a array where @a match function * returns #EINA_TRUE. * * @since 1.2 */ EAPI int eina_inarray_foreach_remove(Eina_Inarray *array, Eina_Each_Cb match, const void *user_data) EINA_ARG_NONNULL(1, 2); /** * @brief number of members in array. * @param array array object * @return number of members in array. * * @since 1.2 */ EAPI unsigned int eina_inarray_count(const Eina_Inarray *array) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Returned a new iterator associated to an array. * @param array array object * @return A new iterator. * * This function returns a newly allocated iterator associated to * @p array. * * If the memory can not be allocated, @c NULL is returned * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is * returned. * * @warning if the array structure changes then the iterator becomes * invalid! That is, if you add or remove members this * iterator behavior is undefined and your program may crash! * * @since 1.2 */ EAPI Eina_Iterator *eina_inarray_iterator_new(const Eina_Inarray *array) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @brief Returned a new reversed iterator associated to an array. * @param array array object * @return A new iterator. * * This function returns a newly allocated iterator associated to * @p array. * * Unlike eina_inarray_iterator_new(), this will walk the array backwards. * * If the memory can not be allocated, @c NULL is returned * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is * returned. * * @warning if the array structure changes then the iterator becomes * invalid! That is, if you add or remove nodes this iterator * behavior is undefined and your program may crash! * * @since 1.2 */ EAPI Eina_Iterator *eina_inarray_iterator_reversed_new(const Eina_Inarray *array) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @brief Returned a new accessor associated to an array. * @param array array object * @return A new accessor. * * This function returns a newly allocated accessor associated to * @p array. * * If the memory can not be allocated, @c NULL is returned * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid accessor is * returned. * * @since 1.2 */ EAPI Eina_Accessor *eina_inarray_accessor_new(const Eina_Inarray *array) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @def EINA_INARRAY_FOREACH * @brief walks array linearly from head to tail * @param array array object * @param itr the iterator pointer * * @a itr must be a pointer with sizeof(itr*) == array->member_size. * * @warning This is fast as it does direct pointer access, but it will * not check for @c NULL pointers or invalid array object! * See eina_inarray_foreach() to do that. * * @warning Do not modify array as you walk it! If that is desired, * then use eina_inarray_foreach_remove() * * @since 1.2 */ #define EINA_INARRAY_FOREACH(array, itr) \ for ((itr) = (array)->members; \ (itr) < (((typeof(*itr)*)(array)->members) + (array)->len); \ (itr)++) /** * @def EINA_INARRAY_REVERSE_FOREACH * @brief walks array linearly from tail to head * @param array array object * @param itr the iterator pointer * * @a itr must be a pointer with sizeof(itr*) == array->member_size. * * @warning This is fast as it does direct pointer access, but it will * not check for @c NULL pointers or invalid array object! * * @warning Do not modify array as you walk it! If that is desired, * then use eina_inarray_foreach_remove() * * @since 1.2 */ #define EINA_INARRAY_REVERSE_FOREACH(array, itr) \ for ((itr) = ((((typeof(*(itr))*)(array)->members) + (array)->len) - 1); \ (((itr) >= (typeof(*(itr))*)(array)->members) \ && ((array)->members != NULL)); \ (itr)--) /** * @} */ /** * @} */ /** * @} */ #endif /*EINA_INARRAY_H_*/ eina-1.7.10/src/include/eina_inline_lock_void.x0000664000175000017500000001435512175475327016372 00000000000000/* EINA - EFL data type library * Copyright (C) 2011 Vincent Torri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLINE_LOCK_VOID_X_ #define EINA_INLINE_LOCK_VOID_X_ #ifdef EINA_UNUSED # undef EINA_UNUSED #endif #ifdef __GNUC__ # define EINA_UNUSED __attribute__((unused)) #else # define EINA_UNUSED #endif /** * @addtogroup Eina_Lock_Group Lock * * @brief These functions provide Mutual Exclusion objects management. * * @note On Windows XP, critical sections are used, while on Windows * CE, standard Mutex objects are used. * * @{ */ /** * @typedef Eina_Lock * Abtract type for a mutual exclusive object. */ typedef void *Eina_Lock; typedef void *Eina_RWLock; typedef void *Eina_Condition; typedef void *Eina_TLS; typedef void *Eina_Semaphore; /** * @brief Create a new #Eina_Lock. * * @param mutex A pointer to the lock object. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function creates a new #Eina_Lock object and stores it in the * @p mutex buffer. On success, this function returns #EINA_TRUE * and #EINA_FALSE otherwise. To free the resources allocated by this * function, use eina_lock_free(). For performance reasons, no check * is done on @p mutex. */ static inline Eina_Bool eina_lock_new(Eina_Lock *mutex EINA_UNUSED) { return EINA_TRUE; } /** * @brief Free the ressources of the given lock object. * * @param mutex The lock object to free. * * This function frees the resources of @p mutex allocated by * eina_lock_new(). For performance reasons, no check is done on * @p mutex. */ static inline void eina_lock_free(Eina_Lock *mutex EINA_UNUSED) { } /** * @brief Lock the given mutual exclusion object. * * @param mutex The lock object to lock. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function locks @p mutex. @p mutex must have been created by * eina_lock_new(). On success, this function returns #EINA_TRUE * and #EINA_FALSE otherwise. For performance reasons, no check is done on * @p mutex. */ static inline Eina_Lock_Result eina_lock_take(Eina_Lock *mutex EINA_UNUSED) { return EINA_LOCK_SUCCEED; } /** * @brief Try to lock the given mutual exclusion object. * * @param mutex The lock object to try to lock. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function tries to lock @p mutex. @p mutex must have been created by * eina_lock_new(). If @p mutex can be locked, this function returns #EINA_TRUE; * if @p mutex can not be locked, or is already locked, it * returns #EINA_FALSE. This function does not block and returns * immediately. For performance reasons, no check is done on * @p mutex. * * @note On Windows CE, this function is actually eina_lock_take(). */ static inline Eina_Lock_Result eina_lock_take_try(Eina_Lock *mutex EINA_UNUSED) { return EINA_LOCK_SUCCEED; } /** * @brief Unlock the given mutual exclusion object. * * @param mutex The lock object to unlock. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function unlocks @p mutex. @p mutex must have been created by * eina_lock_new(). On success, this function returns #EINA_TRUE * and #EINA_FALSE otherwise. For performance reasons, no check is * done on @p mutex. */ static inline Eina_Lock_Result eina_lock_release(Eina_Lock *mutex EINA_UNUSED) { return EINA_LOCK_SUCCEED; } static inline void eina_lock_debug(const Eina_Lock *mutex EINA_UNUSED) { } static inline Eina_Bool eina_condition_new(Eina_Condition *cond EINA_UNUSED, Eina_Lock *mutex EINA_UNUSED) { return EINA_TRUE; } static inline void eina_condition_free(Eina_Condition *cond EINA_UNUSED) { } static inline Eina_Bool eina_condition_wait(Eina_Condition *cond EINA_UNUSED) { return EINA_TRUE; } static inline Eina_Bool eina_condition_timedwait(Eina_Condition *cond EINA_UNUSED, double val EINA_UNUSED) { return EINA_TRUE; } static inline Eina_Bool eina_condition_broadcast(Eina_Condition *cond EINA_UNUSED) { return EINA_TRUE; } static inline Eina_Bool eina_condition_signal(Eina_Condition *cond EINA_UNUSED) { return EINA_TRUE; } static inline Eina_Bool eina_rwlock_new(Eina_RWLock *mutex EINA_UNUSED) { return EINA_TRUE; } static inline void eina_rwlock_free(Eina_RWLock *mutex EINA_UNUSED) { } static inline Eina_Lock_Result eina_rwlock_read_take(Eina_RWLock *mutex EINA_UNUSED) { return EINA_LOCK_SUCCEED; } static inline Eina_Lock_Result eina_rwlock_write_take(Eina_RWLock *mutex EINA_UNUSED) { return EINA_LOCK_SUCCEED; } static inline Eina_Lock_Result eina_rwlock_release(Eina_RWLock *mutex EINA_UNUSED) { return EINA_LOCK_SUCCEED; } static inline Eina_Lock_Result eina_rwlock_take_read(Eina_RWLock *mutex EINA_UNUSED) { return EINA_LOCK_SUCCEED; } static inline Eina_Lock_Result eina_rwlock_take_write(Eina_RWLock *mutex EINA_UNUSED) { return EINA_LOCK_SUCCEED; } static inline Eina_Bool eina_tls_new(Eina_TLS *key EINA_UNUSED) { return EINA_TRUE; } static inline void eina_tls_free(Eina_TLS key EINA_UNUSED) { } static inline void * eina_tls_get(Eina_TLS key EINA_UNUSED) { return NULL; } static inline Eina_Bool eina_tls_set(Eina_TLS key EINA_UNUSED, const void *data EINA_UNUSED) { return EINA_TRUE; } static inline Eina_Bool eina_semaphore_new(Eina_Semaphore *sem EINA_UNUSED, int count_init EINA_UNUSED) { return EINA_TRUE; } static inline Eina_Bool eina_semaphore_free(Eina_Semaphore *sem EINA_UNUSED) { return EINA_TRUE; } static inline Eina_Bool eina_semaphore_lock(Eina_Semaphore *sem EINA_UNUSED) { return EINA_TRUE; } static inline Eina_Bool eina_semaphore_release(Eina_Semaphore *sem EINA_UNUSED, int count_release EINA_UNUSED) { return EINA_TRUE; } /** * @} */ #endif eina-1.7.10/src/include/eina_mempool.h0000664000175000017500000001046312175475327014507 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_MEMPOOL_H_ #define EINA_MEMPOOL_H_ #include "eina_types.h" #include "eina_error.h" #include "eina_module.h" /** * @addtogroup Eina_Memory_Pool_Group Memory Pool * * @brief These functions provide memory pool management. * * Several mempool are available: * * @li @c buddy: It uses the * "buddy * allocator" algorithm but the Eina implementation differs in the * sense that the chunk information is not stored on the chunk itself, * but on another memory area. This is useful for cases where the * memory to manage might be slower to access, or limited (like video * memory). * @li @c chained_pool: It is the default one. It allocates a big * chunk of memory with malloc() and split the result in chunks of the * requested size that are pushed inside a stack. When requested, it * takes this pointer from the stack to give them to whoever wants * them. * @li @c ememoa_fixed and @c ememoa_unknown: experimental allocators * which could be useful when a fixed amount of memory is needed. * @li @c fixed_bitmap: It allocates with malloc) 32* the requested * size and push the pool pointer in an rbtree. To find empty space in * a pool, it will just search for the first bit set in an int (32 * bits). Then, when a pointer is freed, it will do a search inside * the rbtree. * @li @c pass_through: it just call malloc() and free(). It may be * faster on some computers than using our own allocators (like having * a huge L2 cache, over 4MB). * @li @c one_big: It call just one time malloc for the requested number * of items. Useful when you know in advance how many object of some * type will live during the life of the mempool. */ /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @defgroup Eina_Memory_Pool_Group Memory Pool * * @{ */ /** * @typedef Eina_Mempool * Mempool type. */ typedef struct _Eina_Mempool Eina_Mempool; /** * @typedef Eina_Mempool_Backend * Mempool backend type. */ typedef struct _Eina_Mempool_Backend Eina_Mempool_Backend; /** * @typedef Eina_Mempool_Repack_Cb * Type for a callback who need to unreference an old object from a mempool * and reference the new one instead. Memcpy is taken care by the mempool. */ typedef void (*Eina_Mempool_Repack_Cb)(void *dst, void *src, void *data); EAPI extern Eina_Error EINA_ERROR_NOT_MEMPOOL_MODULE; EAPI Eina_Mempool *eina_mempool_add(const char *module, const char *context, const char *options, ...) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); EAPI void eina_mempool_del(Eina_Mempool *mp) EINA_ARG_NONNULL(1); static inline void *eina_mempool_realloc(Eina_Mempool *mp, void *element, unsigned int size) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; static inline void *eina_mempool_malloc(Eina_Mempool *mp, unsigned int size) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; static inline void eina_mempool_free(Eina_Mempool *mp, void *element) EINA_ARG_NONNULL(1); EAPI void eina_mempool_repack(Eina_Mempool *mp, Eina_Mempool_Repack_Cb cb, void *data) EINA_ARG_NONNULL(1, 2); EAPI void eina_mempool_gc(Eina_Mempool *mp) EINA_ARG_NONNULL(1); EAPI void eina_mempool_statistics(Eina_Mempool *mp) EINA_ARG_NONNULL(1); EAPI Eina_Bool eina_mempool_register(Eina_Mempool_Backend *be) EINA_ARG_NONNULL(1); EAPI void eina_mempool_unregister(Eina_Mempool_Backend *be) EINA_ARG_NONNULL(1); EAPI unsigned int eina_mempool_alignof(unsigned int size); #include "eina_inline_mempool.x" /** * @} */ /** * @} */ #endif /* EINA_MEMPOOL_H_ */ eina-1.7.10/src/include/eina_unicode.h0000664000175000017500000001321712175475327014465 00000000000000#ifndef EINA_UNICODE_H #define EINA_UNICODE_H #include #include "eina_config.h" #include "eina_types.h" /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @addtogroup Eina_Unicode_String Unicode String * * @brief These functions provide basic unicode string handling * * Eina_Unicode is a type that holds unicode codepoints. * * @{ */ /** * @typedef Eina_Unicode * A type that holds Unicode codepoints. */ #if EINA_SIZEOF_WCHAR_T >= 4 # include typedef wchar_t Eina_Unicode; #elif defined(EINA_HAVE_INTTYPES_H) # include typedef uint32_t Eina_Unicode; #elif defined(EINA_HAVE_STDINT_H) # include typedef uint32_t Eina_Unicode; #else /* Hope that int is big enough */ typedef unsigned int Eina_Unicode; #endif /** * @brief Same as the standard strlen just with Eina_Unicode instead of char. */ EAPI extern const Eina_Unicode *EINA_UNICODE_EMPTY_STRING; EAPI size_t eina_unicode_strlen(const Eina_Unicode *ustr) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT EINA_PURE; /** * @brief Returns the length of a Eina_Unicode string, up to a limit. * * This function returns the number of characters in string, up to a maximum * of n. If the terminating character is not found in the string, it returns * n. * * @param ustr String to search * @param n Max length to search * @return Number of characters or n. */ EAPI size_t eina_unicode_strnlen(const Eina_Unicode *ustr, int n) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT EINA_PURE; /** * @brief Same as the standard strdup just with Eina_Unicode instead of char. */ EAPI Eina_Unicode *eina_unicode_strdup(const Eina_Unicode *text) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; /** * @brief Same as strdup but cuts on the given size. Assumes n < len * * @param text The text to duplicate. * @param n The maximum size of the text to duplicate. * @return The duplicated string. * * This function duplicates @p text. The resuting string is cut on @p * n. @p n is assumed to be lesser (<) than the length of @p * text. When not needed anymore, the returned string must be freed. * * @since 1.1.0 */ EAPI Eina_Unicode *eina_unicode_strndup(const Eina_Unicode *text, size_t n) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; /** * @brief Same as the standard strcmp just with Eina_Unicode instead of char. */ EAPI int eina_unicode_strcmp(const Eina_Unicode *a, const Eina_Unicode *b) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; /** * @brief Same as the standard strcpy just with Eina_Unicode instead of char. */ EAPI Eina_Unicode *eina_unicode_strcpy(Eina_Unicode *dest, const Eina_Unicode *source) EINA_ARG_NONNULL(1, 2); /** * @brief Same as the standard strstr just with Eina_Unicode instead of char. */ EAPI Eina_Unicode *eina_unicode_strstr(const Eina_Unicode *haystack, const Eina_Unicode *needle) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; /** * @brief Same as the standard strncpy just with Eina_Unicode instead of char. */ EAPI Eina_Unicode *eina_unicode_strncpy(Eina_Unicode *dest, const Eina_Unicode *source, size_t n) EINA_ARG_NONNULL(1, 2); /** * @see eina_str_escape() * * @param str The string to escape. * @return The escaped string. */ EAPI Eina_Unicode *eina_unicode_escape(const Eina_Unicode *str) EINA_ARG_NONNULL(1) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /* UTF-8 Handling */ /** * Reads UTF8 bytes from @p buf, starting at @p iindex and returns * the decoded code point at @p iindex offset, and advances @p iindex * to the next code point after this. @p iindex is always advanced, * unless if the advancement is after the @c NULL. * On error: return a codepoint between DC80 to DCFF where the low 8 bits * are the byte's value. * * @param buf the string * @param iindex the index to look at and return by. * @return the codepoint found. * @since 1.1.0 */ EAPI Eina_Unicode eina_unicode_utf8_get_next(const char *buf, int *iindex) EINA_ARG_NONNULL(1, 2); /** * Reads UTF8 bytes from @p buf, starting at @p iindex and returns * the decoded code point at @p iindex offset, and moves àp iindex * to the previous code point. @p iindex is always moved, as long * as it's not past the start of the string. * On error: return a codepoint between DC80 to DCFF where the low 8 bits * are the byte's value. * * @param buf the string * @param iindex the index to look at and return by. * @return the codepoint found. * @since 1.1.0 */ EAPI Eina_Unicode eina_unicode_utf8_get_prev(const char *buf, int *iindex) EINA_ARG_NONNULL(1, 2); /** * Returns the number of unicode characters in the string. That is, * the number of Eina_Unicodes it'll take to store this string in * an Eina_Unicode string. * * @param buf the string * @return the number of unicode characters (not bytes) in the string * @since 1.1.0 */ EAPI int eina_unicode_utf8_get_len(const char *buf) EINA_ARG_NONNULL(1); /** * Converts a utf-8 string to a newly allocated Eina_Unicode string. * * @param utf the string in utf-8 * @param _len the length of the returned Eina_Unicode string. * @return the newly allocated Eina_Unicode string. * @since 1.1.0 */ EAPI Eina_Unicode *eina_unicode_utf8_to_unicode(const char *utf, int *_len) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; /** * Converts an Eina_Unicode string to a newly allocated utf-8 string. * * @param uni the Eina_Unicode string * @param _len the length byte length of the return utf8 string. * @return the newly allocated utf-8 string. * @since 1.1.0 */ EAPI char * eina_unicode_unicode_to_utf8(const Eina_Unicode *uni, int *_len) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; /** * @} */ /** * @} */ #endif eina-1.7.10/src/include/eina_inline_value.x0000664000175000017500000014116412175475327015534 00000000000000/* Eina - EFL data type library * Copyright (C) 2012 ProFUSION embedded systems * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLINE_VALUE_X_ #define EINA_INLINE_VALUE_X_ #include #include #include "eina_stringshare.h" /* NOTE: most of value is implemented here for performance reasons */ //#define EINA_VALUE_NO_OPTIMIZE 1 #ifdef EINA_VALUE_NO_OPTIMIZE #define EINA_VALUE_TYPE_DEFAULT(type) (0) #else /** * @var _EINA_VALUE_TYPE_BASICS_START * pointer to the first basic type. * @since 1.2 * @private */ EAPI extern const Eina_Value_Type *_EINA_VALUE_TYPE_BASICS_START; /** * @var _EINA_VALUE_TYPE_BASICS_END * pointer to the last (inclusive) basic type. * @since 1.2 * @private */ EAPI extern const Eina_Value_Type *_EINA_VALUE_TYPE_BASICS_END; #define EINA_VALUE_TYPE_DEFAULT(type) \ ((_EINA_VALUE_TYPE_BASICS_START <= type) && \ (type <= _EINA_VALUE_TYPE_BASICS_END)) #endif #define EINA_VALUE_TYPE_CHECK_RETURN(value) \ EINA_SAFETY_ON_NULL_RETURN(value); \ EINA_SAFETY_ON_FALSE_RETURN(eina_value_type_check(value->type)) #define EINA_VALUE_TYPE_CHECK_RETURN_VAL(value, retval) \ EINA_SAFETY_ON_NULL_RETURN_VAL(value, retval); \ EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(value->type), retval) #define EINA_VALUE_TYPE_DISPATCH(type, method, no_method_err, ...) \ do \ { \ if (type->method) \ type->method(type, ##__VA_ARGS__); \ else \ eina_error_set(no_method_err); \ } \ while (0) #define EINA_VALUE_TYPE_DISPATCH_RETURN(value, method, no_method_err, def_ret, ...) \ do \ { \ if (type->method) \ return type->method(type, ##__VA_ARGS__); \ eina_error_set(no_method_err); \ return def_ret; \ } \ while (0) /** * @brief Get memory for given value (inline or allocated buffer). * @since 1.2 * @private */ static inline void * eina_value_memory_get(const Eina_Value *value) { if (value->type->value_size <= 8) return (void *)value->value.buf; return value->value.ptr; } /** * @brief Allocate memory for internal value types. * @since 1.2 * @private */ EAPI void *eina_value_inner_alloc(size_t size); /** * @brief Releases memory for internal value types. * @since 1.2 * @private */ EAPI void eina_value_inner_free(size_t size, void *mem); static inline Eina_Bool eina_value_setup(Eina_Value *value, const Eina_Value_Type *type) { void *mem; EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(type->value_size > 0, EINA_FALSE); value->type = type; if (type->value_size <= 8) mem = &value->value; else { mem = value->value.ptr = eina_value_inner_alloc(type->value_size); EINA_SAFETY_ON_NULL_RETURN_VAL(mem, EINA_FALSE); } memset(mem, 0, type->value_size); if (EINA_VALUE_TYPE_DEFAULT(type)) { eina_error_set(0); return EINA_TRUE; } EINA_VALUE_TYPE_DISPATCH_RETURN(type, setup, EINA_ERROR_VALUE_FAILED, EINA_FALSE, mem); } static inline void eina_value_flush(Eina_Value *value) { const Eina_Value_Type *type; void *mem; EINA_VALUE_TYPE_CHECK_RETURN(value); type = value->type; mem = eina_value_memory_get(value); if (EINA_VALUE_TYPE_DEFAULT(type)) { if (type == EINA_VALUE_TYPE_STRINGSHARE) { if (value->value.ptr) eina_stringshare_del((const char*) value->value.ptr); } else if (type == EINA_VALUE_TYPE_STRING) { if (value->value.ptr) free(value->value.ptr); } else if (type->value_size > 8) eina_value_inner_free(type->value_size, mem); eina_error_set(0); return; } EINA_VALUE_TYPE_DISPATCH(type, flush, EINA_ERROR_VALUE_FAILED, mem); if (type->value_size > 8) eina_value_inner_free(type->value_size, mem); value->type = NULL; } static inline int eina_value_compare(const Eina_Value *a, const Eina_Value *b) { const Eina_Value_Type *type; void *pa, *pb; EINA_VALUE_TYPE_CHECK_RETURN_VAL(a, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(b, -1); EINA_SAFETY_ON_FALSE_RETURN_VAL(a->type == b->type, -1); eina_error_set(0); type = a->type; pa = eina_value_memory_get(a); pb = eina_value_memory_get(b); #ifndef EINA_VALUE_NO_OPTIMIZE if (type == EINA_VALUE_TYPE_UCHAR) { unsigned char *ta = (unsigned char *) pa, *tb = (unsigned char *) pb; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } else if (type == EINA_VALUE_TYPE_USHORT) { unsigned short *ta = (unsigned short *) pa, *tb = (unsigned short *) pb; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } else if (type == EINA_VALUE_TYPE_UINT) { unsigned int *ta = (unsigned int *) pa, *tb = (unsigned int *) pb; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } else if ((type == EINA_VALUE_TYPE_ULONG) || (type == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long *ta = (unsigned long *) pa, *tb = (unsigned long *) pb; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } else if (type == EINA_VALUE_TYPE_UINT64) { uint64_t *ta = (uint64_t *) pa, *tb = (uint64_t *) pb; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } else if (type == EINA_VALUE_TYPE_CHAR) { signed char *ta = (signed char *) pa, *tb = (signed char *) pb; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } else if (type == EINA_VALUE_TYPE_SHORT) { short *ta = (short *) pa, *tb = (short *) pb; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } else if (type == EINA_VALUE_TYPE_INT) { int *ta = (int *) pa, *tb = (int *) pb; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } else if (type == EINA_VALUE_TYPE_LONG) { long *ta = (long *) pa, *tb = (long *) pb; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } else if (type == EINA_VALUE_TYPE_INT64) { int64_t *ta = (int64_t *) pa, *tb = (int64_t *) pb; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } else if (type == EINA_VALUE_TYPE_FLOAT) { float *ta = (float *) pa, *tb = (float *) pb; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } else if (type == EINA_VALUE_TYPE_DOUBLE) { double *ta = (double *) pa, *tb = (double *) pb; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } else if (type == EINA_VALUE_TYPE_STRINGSHARE || type == EINA_VALUE_TYPE_STRING) { const char *sa = *(const char **)pa; const char *sb = *(const char **)pb; if (sa == sb) return 0; if (sa == NULL) return -1; if (sb == NULL) return 1; return strcmp(sa, sb); } #endif EINA_VALUE_TYPE_DISPATCH_RETURN(type, compare, EINA_ERROR_VALUE_FAILED, EINA_FALSE, pa, pb); } static inline Eina_Bool eina_value_set(Eina_Value *value, ...) { va_list args; Eina_Bool ret; va_start(args, value); ret = eina_value_vset(value, args); va_end(args); return ret; } static inline Eina_Bool eina_value_get(const Eina_Value *value, ...) { va_list args; Eina_Bool ret; va_start(args, value); ret = eina_value_vget(value, args); va_end(args); return ret; } static inline Eina_Bool eina_value_vset(Eina_Value *value, va_list args) { const Eina_Value_Type *type; void *mem; EINA_VALUE_TYPE_CHECK_RETURN_VAL(value, EINA_FALSE); type = value->type; mem = eina_value_memory_get(value); eina_error_set(0); #ifndef EINA_VALUE_NO_OPTIMIZE if (type == EINA_VALUE_TYPE_UCHAR) { unsigned char *tmem = (unsigned char *) mem; *tmem = va_arg(args, unsigned int); /* promoted by va_arg */ return EINA_TRUE; } else if (type == EINA_VALUE_TYPE_USHORT) { unsigned short *tmem = (unsigned short *) mem; *tmem = va_arg(args, unsigned int); /* promoted by va_arg */ return EINA_TRUE; } else if (type == EINA_VALUE_TYPE_UINT) { unsigned int *tmem = (unsigned int *) mem; *tmem = va_arg(args, unsigned int); return EINA_TRUE; } else if ((type == EINA_VALUE_TYPE_ULONG) || (type == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long *tmem = (unsigned long *) mem; *tmem = va_arg(args, unsigned long); return EINA_TRUE; } else if (type == EINA_VALUE_TYPE_UINT64) { uint64_t *tmem = (uint64_t *) mem; *tmem = va_arg(args, uint64_t); return EINA_TRUE; } else if (type == EINA_VALUE_TYPE_CHAR) { signed char *tmem = (signed char *) mem; *tmem = va_arg(args, int); /* promoted by va_arg */ return EINA_TRUE; } else if (type == EINA_VALUE_TYPE_SHORT) { short *tmem = (short *) mem; *tmem = va_arg(args, int); /* promoted by va_arg */ return EINA_TRUE; } else if (type == EINA_VALUE_TYPE_INT) { int *tmem = (int *) mem; *tmem = va_arg(args, int); return EINA_TRUE; } else if (type == EINA_VALUE_TYPE_LONG) { long *tmem = (long *) mem; *tmem = va_arg(args, long); return EINA_TRUE; } else if (type == EINA_VALUE_TYPE_INT64) { int64_t *tmem = (int64_t *) mem; *tmem = va_arg(args, int64_t); return EINA_TRUE; } else if (type == EINA_VALUE_TYPE_FLOAT) { float *tmem = (float *) mem; *tmem = va_arg(args, double); /* promoted by va_arg */ return EINA_TRUE; } else if (type == EINA_VALUE_TYPE_DOUBLE) { double *tmem = (double *) mem; *tmem = va_arg(args, double); return EINA_TRUE; } else if (type == EINA_VALUE_TYPE_STRINGSHARE) { const char *str = (const char *) va_arg(args, const char *); return eina_stringshare_replace((const char **)&value->value.ptr, str); } else if (type == EINA_VALUE_TYPE_STRING) { const char *str = (const char *) va_arg(args, const char *); if (value->value.ptr == str) return EINA_TRUE; if (!str) { free(value->value.ptr); value->value.ptr = NULL; } else { char *tmp = strdup(str); if (!tmp) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } free(value->value.ptr); value->value.ptr = tmp; } return EINA_TRUE; } #endif EINA_VALUE_TYPE_DISPATCH_RETURN(value, vset, EINA_ERROR_VALUE_FAILED, EINA_FALSE, mem, args); } static inline Eina_Bool eina_value_vget(const Eina_Value *value, va_list args) { const Eina_Value_Type *type; const void *mem; void *ptr; EINA_VALUE_TYPE_CHECK_RETURN_VAL(value, EINA_FALSE); type = value->type; mem = eina_value_memory_get(value); ptr = va_arg(args, void *); eina_error_set(0); if (EINA_VALUE_TYPE_DEFAULT(type)) { memcpy(ptr, mem, type->value_size); return EINA_TRUE; } EINA_VALUE_TYPE_DISPATCH_RETURN(value, pget, EINA_ERROR_VALUE_FAILED, EINA_FALSE, mem, ptr); } static inline Eina_Bool eina_value_pset(Eina_Value *value, const void *ptr) { const Eina_Value_Type *type; void *mem; EINA_VALUE_TYPE_CHECK_RETURN_VAL(value, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(ptr, EINA_FALSE); type = value->type; mem = eina_value_memory_get(value); eina_error_set(0); if (EINA_VALUE_TYPE_DEFAULT(type)) { if (type == EINA_VALUE_TYPE_STRINGSHARE) { const char *str = *((const char * const *) ptr); return eina_stringshare_replace((const char **)&value->value.ptr, str); } else if (type == EINA_VALUE_TYPE_STRING) { const char *str = *((const char * const *) ptr); if (value->value.ptr == str) return EINA_TRUE; if (!str) { free(value->value.ptr); value->value.ptr = NULL; } else { char *tmp = strdup(str); if (!tmp) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } free(value->value.ptr); value->value.ptr = tmp; } return EINA_TRUE; } else memcpy(mem, ptr, type->value_size); return EINA_TRUE; } EINA_VALUE_TYPE_DISPATCH_RETURN(value, pset, EINA_ERROR_VALUE_FAILED, EINA_FALSE, mem, ptr); } static inline Eina_Bool eina_value_pget(const Eina_Value *value, void *ptr) { const Eina_Value_Type *type; const void *mem; EINA_VALUE_TYPE_CHECK_RETURN_VAL(value, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(ptr, EINA_FALSE); type = value->type; mem = eina_value_memory_get(value); eina_error_set(0); if (EINA_VALUE_TYPE_DEFAULT(type)) { memcpy(ptr, mem, type->value_size); return EINA_TRUE; } EINA_VALUE_TYPE_DISPATCH_RETURN(value, pget, EINA_ERROR_VALUE_FAILED, EINA_FALSE, mem, ptr); } static inline const Eina_Value_Type * eina_value_type_get(const Eina_Value *value) { EINA_VALUE_TYPE_CHECK_RETURN_VAL(value, NULL); return value->type; } #define EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, retval) \ EINA_SAFETY_ON_NULL_RETURN_VAL(value, retval); \ EINA_SAFETY_ON_FALSE_RETURN_VAL(value->type == EINA_VALUE_TYPE_ARRAY, retval) static inline Eina_Bool eina_value_array_setup(Eina_Value *value, const Eina_Value_Type *subtype, unsigned int step) { Eina_Value_Array desc = { subtype, step, NULL }; if (!eina_value_setup(value, EINA_VALUE_TYPE_ARRAY)) return EINA_FALSE; if (!eina_value_pset(value, &desc)) { eina_value_flush(value); return EINA_FALSE; } return EINA_TRUE; } static inline unsigned int eina_value_array_count(const Eina_Value *value) { Eina_Value_Array desc; EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0); if (!eina_value_pget(value, &desc)) return 0; return desc.array ? eina_inarray_count(desc.array) : 0; } static inline Eina_Bool eina_value_array_remove(Eina_Value *value, unsigned int position) { Eina_Value_Array desc; void *mem; EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0); if (!eina_value_pget(value, &desc)) return EINA_FALSE; mem = eina_inarray_nth(desc.array, position); if (!mem) return EINA_FALSE; eina_value_type_flush(desc.subtype, mem); return eina_inarray_remove_at(desc.array, position); } static inline Eina_Bool eina_value_array_vset(Eina_Value *value, unsigned int position, va_list args) { Eina_Value_Array desc; void *mem; EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0); if (!eina_value_pget(value, &desc)) return EINA_FALSE; mem = eina_inarray_nth(desc.array, position); if (!mem) return EINA_FALSE; return eina_value_type_vset(desc.subtype, mem, args); } static inline Eina_Bool eina_value_array_vget(const Eina_Value *value, unsigned int position, va_list args) { Eina_Value_Array desc; const void *mem; void *ptr; Eina_Bool ret; EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0); if (!eina_value_pget(value, &desc)) return EINA_FALSE; mem = eina_inarray_nth(desc.array, position); if (!mem) return EINA_FALSE; ptr = va_arg(args, void *); ret = eina_value_type_pget(desc.subtype, mem, ptr); return ret; } static inline Eina_Bool eina_value_array_vinsert(Eina_Value *value, unsigned int position, va_list args) { Eina_Value_Array desc; void *mem; EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0); if (!eina_value_pget(value, &desc)) return EINA_FALSE; mem = eina_inarray_alloc_at(desc.array, position, 1); if (!mem) return EINA_FALSE; if (!eina_value_type_setup(desc.subtype, mem)) goto error_setup; if (!eina_value_type_vset(desc.subtype, mem, args)) goto error_set; return EINA_TRUE; error_set: eina_value_type_flush(desc.subtype, mem); error_setup: eina_inarray_remove_at(desc.array, position); return EINA_FALSE; } static inline Eina_Bool eina_value_array_vappend(Eina_Value *value, va_list args) { Eina_Value_Array desc; void *mem; int position; EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0); if (!eina_value_pget(value, &desc)) return EINA_FALSE; position = eina_inarray_count(desc.array); mem = eina_inarray_alloc_at(desc.array, position, 1); if (!mem) return EINA_FALSE; if (!eina_value_type_setup(desc.subtype, mem)) goto error_setup; if (!eina_value_type_vset(desc.subtype, mem, args)) goto error_set; return EINA_TRUE; error_set: eina_value_type_flush(desc.subtype, mem); error_setup: eina_inarray_remove_at(desc.array, position); return EINA_FALSE; } static inline Eina_Bool eina_value_array_set(Eina_Value *value, unsigned int position, ...) { va_list args; Eina_Bool ret; va_start(args, position); ret = eina_value_array_vset(value, position, args); va_end(args); return ret; } static inline Eina_Bool eina_value_array_get(const Eina_Value *value, unsigned int position, ...) { va_list args; Eina_Bool ret; va_start(args, position); ret = eina_value_array_vget(value, position, args); va_end(args); return ret; } static inline Eina_Bool eina_value_array_insert(Eina_Value *value, unsigned int position, ...) { va_list args; Eina_Bool ret; va_start(args, position); ret = eina_value_array_vinsert(value, position, args); va_end(args); return ret; } static inline Eina_Bool eina_value_array_append(Eina_Value *value, ...) { va_list args; Eina_Bool ret; va_start(args, value); ret = eina_value_array_vappend(value, args); va_end(args); return ret; } static inline Eina_Bool eina_value_array_pset(Eina_Value *value, unsigned int position, const void *ptr) { Eina_Value_Array desc; void *mem; EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0); if (!eina_value_pget(value, &desc)) return EINA_FALSE; mem = eina_inarray_nth(desc.array, position); if (!mem) return EINA_FALSE; return eina_value_type_pset(desc.subtype, mem, ptr); } static inline Eina_Bool eina_value_array_pget(const Eina_Value *value, unsigned int position, void *ptr) { Eina_Value_Array desc; const void *mem; Eina_Bool ret; EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0); if (!eina_value_pget(value, &desc)) return EINA_FALSE; mem = eina_inarray_nth(desc.array, position); if (!mem) return EINA_FALSE; ret = eina_value_type_pget(desc.subtype, mem, ptr); return ret; } static inline Eina_Bool eina_value_array_pinsert(Eina_Value *value, unsigned int position, const void *ptr) { Eina_Value_Array desc; void *mem; EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0); if (!eina_value_pget(value, &desc)) return EINA_FALSE; mem = eina_inarray_alloc_at(desc.array, position, 1); if (!mem) return EINA_FALSE; if (!eina_value_type_setup(desc.subtype, mem)) goto error_setup; if (!eina_value_type_pset(desc.subtype, mem, ptr)) goto error_set; return EINA_TRUE; error_set: eina_value_type_flush(desc.subtype, mem); error_setup: eina_inarray_remove_at(desc.array, position); return EINA_FALSE; } static inline Eina_Bool eina_value_array_pappend(Eina_Value *value, const void *ptr) { Eina_Value_Array desc; void *mem; int position; EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(value, 0); if (!eina_value_pget(value, &desc)) return EINA_FALSE; position = eina_inarray_count(desc.array); mem = eina_inarray_alloc_at(desc.array, position, 1); if (!mem) return EINA_FALSE; if (!eina_value_type_setup(desc.subtype, mem)) goto error_setup; if (!eina_value_type_pset(desc.subtype, mem, ptr)) goto error_set; return EINA_TRUE; error_set: eina_value_type_flush(desc.subtype, mem); error_setup: eina_inarray_remove_at(desc.array, position); return EINA_FALSE; } static inline Eina_Bool eina_value_array_value_get(const Eina_Value *src, unsigned int position, Eina_Value *dst) { Eina_Value_Array desc; EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL(src, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(dst, EINA_FALSE); if (!eina_value_pget(src, &desc)) return EINA_FALSE; if (position >= eina_inarray_count(desc.array)) return EINA_FALSE; if (!eina_value_setup(dst, desc.subtype)) return EINA_FALSE; if (!eina_value_pset(dst, eina_inarray_nth(desc.array, position))) { eina_value_flush(dst); return EINA_FALSE; } return EINA_TRUE; } #undef EINA_VALUE_TYPE_ARRAY_CHECK_RETURN_VAL #define EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, retval) \ EINA_SAFETY_ON_NULL_RETURN_VAL(value, retval); \ EINA_SAFETY_ON_FALSE_RETURN_VAL(value->type == EINA_VALUE_TYPE_LIST, retval) static inline void * eina_value_list_node_memory_get(const Eina_Value_Type *type, const Eina_List *node) { if (node == NULL) return NULL; if (type->value_size <= sizeof(void*)) return (void *)&(node->data); return node->data; } static inline void * eina_value_list_node_memory_setup(const Eina_Value_Type *type, Eina_List *node) { if (type->value_size <= sizeof(void*)) return (void *)&(node->data); node->data = malloc(type->value_size); return node->data; } static inline void eina_value_list_node_memory_flush(const Eina_Value_Type *type, Eina_List *node) { if (type->value_size <= sizeof(void*)) return; free(node->data); } static inline Eina_Bool eina_value_list_setup(Eina_Value *value, const Eina_Value_Type *subtype) { Eina_Value_List desc = { subtype, NULL }; if (!eina_value_setup(value, EINA_VALUE_TYPE_LIST)) return EINA_FALSE; if (!eina_value_pset(value, &desc)) { eina_value_flush(value); return EINA_FALSE; } return EINA_TRUE; } static inline unsigned int eina_value_list_count(const Eina_Value *value) { Eina_Value_List *desc; EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0); desc = (Eina_Value_List *)eina_value_memory_get(value); if (!desc) return 0; return eina_list_count(desc->list); } static inline Eina_Bool eina_value_list_remove(Eina_Value *value, unsigned int position) { Eina_Value_List *desc; Eina_List *node; void *mem; EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0); desc = (Eina_Value_List *)eina_value_memory_get(value); if (!desc) return EINA_FALSE; node = eina_list_nth_list(desc->list, position); mem = eina_value_list_node_memory_get(desc->subtype, node); if (!mem) return EINA_FALSE; eina_value_type_flush(desc->subtype, mem); eina_value_list_node_memory_flush(desc->subtype, node); desc->list = eina_list_remove_list(desc->list, node); return EINA_TRUE; } static inline Eina_Bool eina_value_list_vset(Eina_Value *value, unsigned int position, va_list args) { Eina_Value_List *desc; Eina_List *node; void *mem; EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0); desc = (Eina_Value_List *)eina_value_memory_get(value); if (!desc) return EINA_FALSE; node = eina_list_nth_list(desc->list, position); mem = eina_value_list_node_memory_get(desc->subtype, node); if (!mem) return EINA_FALSE; return eina_value_type_vset(desc->subtype, mem, args); } static inline Eina_Bool eina_value_list_vget(const Eina_Value *value, unsigned int position, va_list args) { const Eina_Value_List *desc; const Eina_List *node; const void *mem; void *ptr; Eina_Bool ret; EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0); desc = (const Eina_Value_List *)eina_value_memory_get(value); if (!desc) return EINA_FALSE; node = eina_list_nth_list(desc->list, position); mem = eina_value_list_node_memory_get(desc->subtype, node); if (!mem) return EINA_FALSE; ptr = va_arg(args, void *); ret = eina_value_type_pget(desc->subtype, mem, ptr); return ret; } static inline Eina_Bool eina_value_list_vinsert(Eina_Value *value, unsigned int position, va_list args) { Eina_Value_List *desc; Eina_List *node; void *mem; EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0); desc = (Eina_Value_List *)eina_value_memory_get(value); if (!desc) return EINA_FALSE; if (!desc->list) node = desc->list = eina_list_append(NULL, (void*)1L); else if (position == 0) node = desc->list = eina_list_prepend(desc->list, (void*)1L); else { Eina_List *rel = eina_list_nth_list(desc->list, position - 1); desc->list = eina_list_append_relative_list(desc->list, (void*)1L, rel); node = rel->next; } EINA_SAFETY_ON_NULL_RETURN_VAL(node, EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(node->data == (void*)1L, EINA_FALSE); mem = eina_value_list_node_memory_setup(desc->subtype, node); if (!mem) { desc->list = eina_list_remove_list(desc->list, node); return EINA_FALSE; } if (!eina_value_type_setup(desc->subtype, mem)) goto error_setup; if (!eina_value_type_vset(desc->subtype, mem, args)) goto error_set; return EINA_TRUE; error_set: eina_value_type_flush(desc->subtype, mem); error_setup: eina_value_list_node_memory_flush(desc->subtype, node); desc->list = eina_list_remove_list(desc->list, node); return EINA_FALSE; } static inline Eina_Bool eina_value_list_vappend(Eina_Value *value, va_list args) { Eina_Value_List *desc; Eina_List *node; void *mem; EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0); desc = (Eina_Value_List *)eina_value_memory_get(value); if (!desc) return EINA_FALSE; desc->list = eina_list_append(desc->list, (void*)1L); node = eina_list_last(desc->list); EINA_SAFETY_ON_NULL_RETURN_VAL(node, EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(node->data == (void*)1L, EINA_FALSE); mem = eina_value_list_node_memory_setup(desc->subtype, node); if (!mem) { desc->list = eina_list_remove_list(desc->list, node); return EINA_FALSE; } if (!eina_value_type_setup(desc->subtype, mem)) goto error_setup; if (!eina_value_type_vset(desc->subtype, mem, args)) goto error_set; return EINA_TRUE; error_set: eina_value_type_flush(desc->subtype, mem); error_setup: eina_value_list_node_memory_flush(desc->subtype, node); desc->list = eina_list_remove_list(desc->list, node); return EINA_FALSE; } static inline Eina_Bool eina_value_list_set(Eina_Value *value, unsigned int position, ...) { va_list args; Eina_Bool ret; va_start(args, position); ret = eina_value_list_vset(value, position, args); va_end(args); return ret; } static inline Eina_Bool eina_value_list_get(const Eina_Value *value, unsigned int position, ...) { va_list args; Eina_Bool ret; va_start(args, position); ret = eina_value_list_vget(value, position, args); va_end(args); return ret; } static inline Eina_Bool eina_value_list_insert(Eina_Value *value, unsigned int position, ...) { va_list args; Eina_Bool ret; va_start(args, position); ret = eina_value_list_vinsert(value, position, args); va_end(args); return ret; } static inline Eina_Bool eina_value_list_append(Eina_Value *value, ...) { va_list args; Eina_Bool ret; va_start(args, value); ret = eina_value_list_vappend(value, args); va_end(args); return ret; } static inline Eina_Bool eina_value_list_pset(Eina_Value *value, unsigned int position, const void *ptr) { Eina_Value_List *desc; Eina_List *node; void *mem; EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0); desc = (Eina_Value_List *)eina_value_memory_get(value); if (!desc) return EINA_FALSE; node = eina_list_nth_list(desc->list, position); mem = eina_value_list_node_memory_get(desc->subtype, node); if (!mem) return EINA_FALSE; return eina_value_type_pset(desc->subtype, mem, ptr); } static inline Eina_Bool eina_value_list_pget(const Eina_Value *value, unsigned int position, void *ptr) { const Eina_Value_List *desc; const Eina_List *node; const void *mem; Eina_Bool ret; EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0); desc = (const Eina_Value_List *)eina_value_memory_get(value); if (!desc) return EINA_FALSE; node = eina_list_nth_list(desc->list, position); mem = eina_value_list_node_memory_get(desc->subtype, node); if (!mem) return EINA_FALSE; ret = eina_value_type_pget(desc->subtype, mem, ptr); return ret; } static inline Eina_Bool eina_value_list_pinsert(Eina_Value *value, unsigned int position, const void *ptr) { Eina_Value_List *desc; Eina_List *node; void *mem; EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0); desc = (Eina_Value_List *)eina_value_memory_get(value); if (!desc) return EINA_FALSE; if (!desc->list) node = desc->list = eina_list_append(NULL, (void*)1L); else if (position == 0) node = desc->list = eina_list_prepend(desc->list, (void*)1L); else { Eina_List *rel = eina_list_nth_list(desc->list, position - 1); desc->list = eina_list_append_relative_list(desc->list, (void*)1L, rel); node = rel->next; } EINA_SAFETY_ON_NULL_RETURN_VAL(node, EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(node->data == (void*)1L, EINA_FALSE); mem = eina_value_list_node_memory_setup(desc->subtype, node); if (!mem) { desc->list = eina_list_remove_list(desc->list, node); return EINA_FALSE; } if (!eina_value_type_setup(desc->subtype, mem)) goto error_setup; if (!eina_value_type_pset(desc->subtype, mem, ptr)) goto error_set; return EINA_TRUE; error_set: eina_value_type_flush(desc->subtype, mem); error_setup: eina_value_list_node_memory_flush(desc->subtype, node); desc->list = eina_list_remove_list(desc->list, node); return EINA_FALSE; } static inline Eina_Bool eina_value_list_pappend(Eina_Value *value, const void *ptr) { Eina_Value_List *desc; Eina_List *node; void *mem; EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL(value, 0); desc = (Eina_Value_List *)eina_value_memory_get(value); if (!desc) return EINA_FALSE; desc->list = eina_list_append(desc->list, (void*)1L); node = eina_list_last(desc->list); EINA_SAFETY_ON_NULL_RETURN_VAL(node, EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(node->data == (void*)1L, EINA_FALSE); mem = eina_value_list_node_memory_setup(desc->subtype, node); if (!mem) { desc->list = eina_list_remove_list(desc->list, node); return EINA_FALSE; } if (!eina_value_type_setup(desc->subtype, mem)) goto error_setup; if (!eina_value_type_pset(desc->subtype, mem, ptr)) goto error_set; return EINA_TRUE; error_set: eina_value_type_flush(desc->subtype, mem); error_setup: eina_value_list_node_memory_flush(desc->subtype, node); desc->list = eina_list_remove_list(desc->list, node); return EINA_FALSE; } #undef EINA_VALUE_TYPE_LIST_CHECK_RETURN_VAL #define EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL(value, retval) \ EINA_SAFETY_ON_NULL_RETURN_VAL(value, retval); \ EINA_SAFETY_ON_FALSE_RETURN_VAL(value->type == EINA_VALUE_TYPE_HASH, retval) static inline Eina_Bool eina_value_hash_setup(Eina_Value *value, const Eina_Value_Type *subtype, unsigned int buckets_power_size) { Eina_Value_Hash desc = { subtype, buckets_power_size, NULL }; if (!eina_value_setup(value, EINA_VALUE_TYPE_HASH)) return EINA_FALSE; if (!eina_value_pset(value, &desc)) { eina_value_flush(value); return EINA_FALSE; } return EINA_TRUE; } static inline unsigned int eina_value_hash_population(const Eina_Value *value) { Eina_Value_Hash *desc; EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL(value, 0); desc = (Eina_Value_Hash *)eina_value_memory_get(value); if (!desc) return 0; return eina_hash_population(desc->hash); } static inline Eina_Bool eina_value_hash_del(Eina_Value *value, const char *key) { Eina_Value_Hash *desc; void *mem; EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL(value, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE); desc = (Eina_Value_Hash *)eina_value_memory_get(value); if (!desc) return EINA_FALSE; mem = eina_hash_find(desc->hash, key); if (!mem) return EINA_FALSE; eina_value_type_flush(desc->subtype, mem); free(mem); eina_hash_del_by_key(desc->hash, key); return EINA_TRUE; } static inline Eina_Bool eina_value_hash_vset(Eina_Value *value, const char *key, va_list args) { Eina_Value_Hash *desc; void *mem; EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL(value, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE); desc = (Eina_Value_Hash *)eina_value_memory_get(value); if (!desc) return EINA_FALSE; mem = eina_hash_find(desc->hash, key); if (!mem) { mem = malloc(desc->subtype->value_size); if (!mem) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } if (!eina_hash_add(desc->hash, key, mem)) { free(mem); return EINA_FALSE; } if (!eina_value_type_setup(desc->subtype, mem)) { eina_value_type_flush(desc->subtype, mem); eina_hash_del_by_key(desc->hash, key); free(mem); } } return eina_value_type_vset(desc->subtype, mem, args); } static inline Eina_Bool eina_value_hash_vget(const Eina_Value *value, const char *key, va_list args) { const Eina_Value_Hash *desc; const void *mem; void *ptr; Eina_Bool ret; EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL(value, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE); desc = (const Eina_Value_Hash *)eina_value_memory_get(value); if (!desc) return EINA_FALSE; mem = eina_hash_find(desc->hash, key); if (!mem) return EINA_FALSE; ptr = va_arg(args, void *); ret = eina_value_type_pget(desc->subtype, mem, ptr); return ret; } static inline Eina_Bool eina_value_hash_set(Eina_Value *value, const char *key, ...) { va_list args; Eina_Bool ret; va_start(args, key); ret = eina_value_hash_vset(value, key, args); va_end(args); return ret; } static inline Eina_Bool eina_value_hash_get(const Eina_Value *value, const char *key, ...) { va_list args; Eina_Bool ret; va_start(args, key); ret = eina_value_hash_vget(value, key, args); va_end(args); return ret; } static inline Eina_Bool eina_value_hash_pset(Eina_Value *value, const char *key, const void *ptr) { Eina_Value_Hash *desc; void *mem; EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL(value, 0); EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE); desc = (Eina_Value_Hash *)eina_value_memory_get(value); if (!desc) return EINA_FALSE; mem = eina_hash_find(desc->hash, key); if (!mem) { mem = malloc(desc->subtype->value_size); if (!mem) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } if (!eina_hash_add(desc->hash, key, mem)) { free(mem); return EINA_FALSE; } if (!eina_value_type_setup(desc->subtype, mem)) { eina_value_type_flush(desc->subtype, mem); eina_hash_del_by_key(desc->hash, key); free(mem); } } return eina_value_type_pset(desc->subtype, mem, ptr); } static inline Eina_Bool eina_value_hash_pget(const Eina_Value *value, const char *key, void *ptr) { const Eina_Value_Hash *desc; const void *mem; Eina_Bool ret; EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL(value, 0); EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE); desc = (const Eina_Value_Hash *)eina_value_memory_get(value); if (!desc) return EINA_FALSE; mem = eina_hash_find(desc->hash, key); if (!mem) return EINA_FALSE; ret = eina_value_type_pget(desc->subtype, mem, ptr); return ret; } #undef EINA_VALUE_TYPE_HASH_CHECK_RETURN_VAL #define EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(value, retval) \ EINA_SAFETY_ON_NULL_RETURN_VAL(value, retval); \ EINA_SAFETY_ON_FALSE_RETURN_VAL(value->type == EINA_VALUE_TYPE_STRUCT, retval) /** * @brief Find member of struct * @since 1.2 * @internal */ EAPI const Eina_Value_Struct_Member *eina_value_struct_member_find(const Eina_Value_Struct *st, const char *name) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT; static inline Eina_Bool eina_value_struct_setup(Eina_Value *value, const Eina_Value_Struct_Desc *sdesc) { Eina_Value_Struct desc = {sdesc, NULL}; if (!eina_value_setup(value, EINA_VALUE_TYPE_STRUCT)) return EINA_FALSE; if (!eina_value_pset(value, &desc)) { eina_value_flush(value); return EINA_FALSE; } return EINA_TRUE; } static inline void * eina_value_struct_member_memory_get(const Eina_Value_Struct *st, const Eina_Value_Struct_Member *member) { unsigned char *base = (unsigned char *)st->memory; if (!base) return NULL; return base + member->offset; } static inline Eina_Bool eina_value_struct_vset(Eina_Value *value, const char *name, va_list args) { const Eina_Value_Struct_Member *member; Eina_Value_Struct *st; void *mem; EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(value, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE); st = (Eina_Value_Struct *)eina_value_memory_get(value); if (!st) return EINA_FALSE; member = eina_value_struct_member_find(st, name); if (!member) return EINA_FALSE; mem = eina_value_struct_member_memory_get(st, member); if (!mem) return EINA_FALSE; return eina_value_type_vset(member->type, mem, args); } static inline Eina_Bool eina_value_struct_vget(const Eina_Value *value, const char *name, va_list args) { const Eina_Value_Struct_Member *member; const Eina_Value_Struct *st; const void *mem; void *ptr; Eina_Bool ret; EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(value, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE); st = (const Eina_Value_Struct *)eina_value_memory_get(value); if (!st) return EINA_FALSE; member = eina_value_struct_member_find(st, name); if (!member) return EINA_FALSE; mem = eina_value_struct_member_memory_get(st, member); if (!mem) return EINA_FALSE; ptr = va_arg(args, void *); ret = eina_value_type_pget(member->type, mem, ptr); return ret; } static inline Eina_Bool eina_value_struct_set(Eina_Value *value, const char *name, ...) { va_list args; Eina_Bool ret; va_start(args, name); ret = eina_value_struct_vset(value, name, args); va_end(args); return ret; } static inline Eina_Bool eina_value_struct_get(const Eina_Value *value, const char *name, ...) { va_list args; Eina_Bool ret; va_start(args, name); ret = eina_value_struct_vget(value, name, args); va_end(args); return ret; } static inline Eina_Bool eina_value_struct_pset(Eina_Value *value, const char *name, const void *ptr) { const Eina_Value_Struct_Member *member; Eina_Value_Struct *st; void *mem; EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(value, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(ptr, EINA_FALSE); st = (Eina_Value_Struct *)eina_value_memory_get(value); if (!st) return EINA_FALSE; member = eina_value_struct_member_find(st, name); if (!member) return EINA_FALSE; mem = eina_value_struct_member_memory_get(st, member); if (!mem) return EINA_FALSE; return eina_value_type_pset(member->type, mem, ptr); } static inline Eina_Bool eina_value_struct_pget(const Eina_Value *value, const char *name, void *ptr) { const Eina_Value_Struct_Member *member; const Eina_Value_Struct *st; const void *mem; Eina_Bool ret; EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(value, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(ptr, EINA_FALSE); st = (const Eina_Value_Struct *)eina_value_memory_get(value); if (!st) return EINA_FALSE; member = eina_value_struct_member_find(st, name); if (!member) return EINA_FALSE; mem = eina_value_struct_member_memory_get(st, member); if (!mem) return EINA_FALSE; ret = eina_value_type_pget(member->type, mem, ptr); return ret; } static inline Eina_Bool eina_value_struct_value_get(const Eina_Value *src, const char *name, Eina_Value *dst) { const Eina_Value_Struct_Member *member; const Eina_Value_Struct *st; const void *mem; EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(src, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(dst, EINA_FALSE); st = (const Eina_Value_Struct *)eina_value_memory_get(src); if (!st) return EINA_FALSE; member = eina_value_struct_member_find(st, name); if (!member) return EINA_FALSE; mem = eina_value_struct_member_memory_get(st, member); if (!mem) return EINA_FALSE; if (!eina_value_setup(dst, member->type)) return EINA_FALSE; if (!eina_value_pset(dst, mem)) { eina_value_flush(dst); return EINA_FALSE; } return EINA_TRUE; } static inline Eina_Bool eina_value_struct_value_set(Eina_Value *dst, const char *name, const Eina_Value *src) { const Eina_Value_Struct_Member *member; Eina_Value_Struct *st; void *mem; const void *ptr; EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(dst, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(name, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(src, EINA_FALSE); st = (Eina_Value_Struct *)eina_value_memory_get(dst); if (!st) return EINA_FALSE; member = eina_value_struct_member_find(st, name); if (!member) return EINA_FALSE; EINA_SAFETY_ON_FALSE_RETURN_VAL(src->type == member->type, EINA_FALSE); mem = eina_value_struct_member_memory_get(st, member); if (!mem) return EINA_FALSE; ptr = eina_value_memory_get(src); if (!ptr) return EINA_FALSE; return eina_value_type_pset(member->type, mem, ptr); } static inline Eina_Bool eina_value_struct_member_value_get(const Eina_Value *src, const Eina_Value_Struct_Member *member, Eina_Value *dst) { const Eina_Value_Struct *st; const void *mem; EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(src, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(member, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(dst, EINA_FALSE); st = (const Eina_Value_Struct *)eina_value_memory_get(src); if (!st) return EINA_FALSE; mem = eina_value_struct_member_memory_get(st, member); if (!mem) return EINA_FALSE; if (!eina_value_setup(dst, member->type)) return EINA_FALSE; if (!eina_value_pset(dst, mem)) { eina_value_flush(dst); return EINA_FALSE; } return EINA_TRUE; } static inline Eina_Bool eina_value_struct_member_value_set(Eina_Value *dst, const Eina_Value_Struct_Member *member, const Eina_Value *src) { Eina_Value_Struct *st; void *mem; const void *ptr; EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL(dst, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(member, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(src, EINA_FALSE); st = (Eina_Value_Struct *)eina_value_memory_get(dst); if (!st) return EINA_FALSE; EINA_SAFETY_ON_FALSE_RETURN_VAL(src->type == member->type, EINA_FALSE); mem = eina_value_struct_member_memory_get(st, member); if (!mem) return EINA_FALSE; ptr = eina_value_memory_get(src); if (!ptr) return EINA_FALSE; return eina_value_type_pset(member->type, mem, ptr); } #undef EINA_VALUE_TYPE_STRUCT_CHECK_RETURN_VAL static inline Eina_Bool eina_value_type_setup(const Eina_Value_Type *type, void *mem) { EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE); if (!type->setup) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return type->setup(type, mem); } static inline Eina_Bool eina_value_type_flush(const Eina_Value_Type *type, void *mem) { EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE); if (!type->flush) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return type->flush(type, mem); } static inline Eina_Bool eina_value_type_copy(const Eina_Value_Type *type, const void *src, void *dst) { EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE); if (!type->copy) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return type->copy(type, src, dst); } static inline int eina_value_type_compare(const Eina_Value_Type *type, const void *a, const void *b) { EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE); if (!type->compare) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return type->compare(type, a, b); } static inline Eina_Bool eina_value_type_convert_to(const Eina_Value_Type *type, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE); if (!type->convert_to) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return type->convert_to(type, convert, type_mem, convert_mem); } static inline Eina_Bool eina_value_type_convert_from(const Eina_Value_Type *type, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem) { EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE); if (!type->convert_from) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return type->convert_from(type, convert, type_mem, convert_mem); } static inline Eina_Bool eina_value_type_vset(const Eina_Value_Type *type, void *mem, va_list args) { EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE); if (!type->vset) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return type->vset(type, mem, args); } static inline Eina_Bool eina_value_type_pset(const Eina_Value_Type *type, void *mem, const void *ptr) { EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE); if (!type->pset) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return type->pset(type, mem, ptr); } static inline Eina_Bool eina_value_type_pget(const Eina_Value_Type *type, const void *mem, void *ptr) { EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), EINA_FALSE); if (!type->pget) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return type->pget(type, mem, ptr); } #undef EINA_VALUE_TYPE_DEFAULT #undef EINA_VALUE_TYPE_CHECK_RETURN #undef EINA_VALUE_TYPE_CHECK_RETURN_VAL #undef EINA_VALUE_TYPE_DISPATCH #undef EINA_VALUE_TYPE_DISPATCH_RETURN #endif eina-1.7.10/src/include/eina_ustrbuf.h0000664000175000017500000004024412175475327014531 00000000000000#ifndef EINA_USTRBUF_H #define EINA_USTRBUF_H #include #include "eina_types.h" #include "eina_unicode.h" /** * @addtogroup Eina_Unicode_String_Buffer_Group Unicode String Buffer * * @brief These functions provide unicode string buffers management. * * The Unicode String Buffer data type is designed to be a mutable string, * allowing to append, prepend or insert a string to a buffer. */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @defgroup Eina_Unicode_String_Buffer_Group Unicode String Buffer * * @{ */ /** * @typedef Eina_UStrbuf * Type for a string buffer. */ typedef struct _Eina_Strbuf Eina_UStrbuf; /** * @brief Create a new string buffer. * * @return Newly allocated string buffer instance. * * This function creates a new string buffer. On error, @c NULL is * returned and Eina error is set to #EINA_ERROR_OUT_OF_MEMORY. To * free the resources, use eina_ustrbuf_free(). * * @see eina_ustrbuf_free() * @see eina_ustrbuf_append() * @see eina_ustrbuf_string_get() */ EAPI Eina_UStrbuf *eina_ustrbuf_new(void) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Create a new string buffer using the passed string. The passed * string is used directly as the buffer, it's somehow the opposite function of * @ref eina_ustrbuf_string_steal . The passed string must be malloced. * * @param str the string to manage * @return Newly allocated string buffer instance. * * This function creates a new string buffer. On error, @c NULL is * returned and Eina error is set to #EINA_ERROR_OUT_OF_MEMORY. To * free the resources, use eina_strbuf_free(). * * @see eina_ustrbuf_free() * @see eina_ustrbuf_append() * @see eina_ustrbuf_string_get() * @since 1.1.0 */ EAPI Eina_UStrbuf *eina_ustrbuf_manage_new(Eina_Unicode *str) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Create a new string buffer using the passed string. The passed * string is used directly as the buffer, it's somehow the opposite function of * @ref eina_ustrbuf_string_steal . The passed string must be malloced. * * @param str the string to manage * @param length the length of the string. * @return Newly allocated string buffer instance. * * This function creates a new string buffer. On error, @c NULL is * returned and Eina error is set to #EINA_ERROR_OUT_OF_MEMORY. To * free the resources, use eina_ustrbuf_free(). * * @see eina_ustrbuf_manage_new() * @since 1.2.0 */ EAPI Eina_UStrbuf *eina_ustrbuf_manage_new_length(Eina_Unicode *str, size_t length) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Free a string buffer. * * @param buf The string buffer to free. * * This function frees the memory of @p buf. @p buf must have been * created by eina_ustrbuf_new(). */ EAPI void eina_ustrbuf_free(Eina_UStrbuf *buf) EINA_ARG_NONNULL(1); /** * @brief Reset a string buffer. * * @param buf The string buffer to reset. * * This function reset @p buf: the buffer len is set to 0, and the * string is set to '\\0'. No memory is free'd. */ EAPI void eina_ustrbuf_reset(Eina_UStrbuf *buf) EINA_ARG_NONNULL(1); /** * @brief Append a string to a buffer, reallocating as necessary. * * @param buf The string buffer to append to. * @param str The string to append. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function appends @p str to @p buf. It computes the length of * @p str, so is slightly slower than eina_ustrbuf_append_length(). If * the length is known beforehand, consider using that variant. If * @p buf can't append it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. * * @see eina_ustrbuf_append() * @see eina_ustrbuf_append_length() */ EAPI Eina_Bool eina_ustrbuf_append(Eina_UStrbuf *buf, const Eina_Unicode *str) EINA_ARG_NONNULL(1, 2); /** * @brief Append an escaped string to a buffer, reallocating as necessary. * * @param buf The string buffer to append to. * @param str The string to append. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function appends the escaped string @p str to @p buf. If @p * str can not be appended, #EINA_FALSE is returned, otherwise, #EINA_TRUE is * returned. */ EAPI Eina_Bool eina_ustrbuf_append_escaped(Eina_UStrbuf *buf, const Eina_Unicode *str) EINA_ARG_NONNULL(1, 2); /** * @brief Append a string to a buffer, reallocating as necessary, * limited by the given length. * * @param buf The string buffer to append to. * @param str The string to append. * @param maxlen The maximum number of characters to append. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function appends at most @p maxlen characters of @p str to * @p buf. It can't appends more than the length of @p str. It * computes the length of @p str, so is slightly slower than * eina_ustrbuf_append_length(). If the length is known beforehand, * consider using that variant (@p maxlen should then be checked so * that it is greater than the size of @p str). If @p str can not be * appended, #EINA_FALSE is returned, otherwise, #EINA_TRUE is * returned. * * @see eina_ustrbuf_append() * @see eina_ustrbuf_append_length() */ EAPI Eina_Bool eina_ustrbuf_append_n(Eina_UStrbuf *buf, const Eina_Unicode *str, size_t maxlen) EINA_ARG_NONNULL(1, 2); /** * @brief Append a string of exact length to a buffer, reallocating as necessary. * * @param buf The string buffer to append to. * @param str The string to append. * @param length The exact length to use. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function appends @p str to @p buf. @p str must be of size at * most @p length. It is slightly faster than eina_ustrbuf_append() as * it does not compute the size of @p str. It is useful when dealing * with strings of known size, such as eina_strngshare. If @p buf * can't append it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. * * @see eina_stringshare_length() * @see eina_ustrbuf_append() * @see eina_ustrbuf_append_n() */ EAPI Eina_Bool eina_ustrbuf_append_length(Eina_UStrbuf *buf, const Eina_Unicode *str, size_t length) EINA_ARG_NONNULL(1, 2); /** * @brief Append a character to a string buffer, reallocating as * necessary. * * @param buf The string buffer to append to. * @param c The char to append. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p c to @p buf. If it can not insert it, #EINA_FALSE * is returned, otherwise #EINA_TRUE is returned. */ EAPI Eina_Bool eina_ustrbuf_append_char(Eina_UStrbuf *buf, Eina_Unicode c) EINA_ARG_NONNULL(1); /** * @brief Insert a string to a buffer, reallocating as necessary. * * @param buf The string buffer to insert. * @param str The string to insert. * @param pos The position to insert the string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p str to @p buf at position @p pos. It * computes the length of @p str, so is slightly slower than * eina_ustrbuf_insert_length(). If the length is known beforehand, * consider using that variant. If @p buf can't insert it, #EINA_FALSE * is returned, otherwise #EINA_TRUE is returned. */ EAPI Eina_Bool eina_ustrbuf_insert(Eina_UStrbuf *buf, const Eina_Unicode *str, size_t pos) EINA_ARG_NONNULL(1, 2); /** * @brief Insert an escaped string to a buffer, reallocating as * necessary. * * @param buf The string buffer to insert to. * @param str The string to insert. * @param pos The position to insert the string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts the escaped string @p str to @p buf at * position @p pos. If @p buf can't insert @p str, #EINA_FALSE is * returned, otherwise #EINA_TRUE is returned. */ EAPI Eina_Bool eina_ustrbuf_insert_escaped(Eina_UStrbuf *buf, const Eina_Unicode *str, size_t pos) EINA_ARG_NONNULL(1, 2); /** * @brief Insert a string to a buffer, reallocating as necessary. Limited by maxlen. * * @param buf The string buffer to insert to. * @param str The string to insert. * @param maxlen The maximum number of chars to insert. * @param pos The position to insert the string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p str ot @p buf at position @p pos, with at * most @p maxlen bytes. The number of inserted characters can not be * greater than the length of @p str. It computes the length of * @p str, so is slightly slower than eina_ustrbuf_insert_length(). If the * length is known beforehand, consider using that variant (@p maxlen * should then be checked so that it is greater than the size of * @p str). If @p str can not be inserted, #EINA_FALSE is returned, * otherwise, #EINA_TRUE is returned. */ EAPI Eina_Bool eina_ustrbuf_insert_n(Eina_UStrbuf *buf, const Eina_Unicode *str, size_t maxlen, size_t pos) EINA_ARG_NONNULL(1, 2); /** * @brief Insert a string of exact length to a buffer, reallocating as necessary. * * @param buf The string buffer to insert to. * @param str The string to insert. * @param length The exact length to use. * @param pos The position to insert the string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p str to @p buf. @p str must be of size at * most @p length. It is slightly faster than eina_ustrbuf_insert() as * it does not compute the size of @p str. It is useful when dealing * with strings of known size, such as eina_strngshare. If @p buf * can't insert it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. * * @see eina_stringshare_length() * @see eina_ustrbuf_insert() * @see eina_ustrbuf_insert_n() */ EAPI Eina_Bool eina_ustrbuf_insert_length(Eina_UStrbuf *buf, const Eina_Unicode *str, size_t length, size_t pos) EINA_ARG_NONNULL(1, 2); /** * @brief Insert a character to a string buffer, reallocating as * necessary. * * @param buf The string buffer to insert to. * @param c The char to insert. * @param pos The position to insert the char. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p c to @p buf at position @p pos. If @p buf * can't append it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ EAPI Eina_Bool eina_ustrbuf_insert_char(Eina_UStrbuf *buf, Eina_Unicode c, size_t pos) EINA_ARG_NONNULL(1); /** * @def eina_ustrbuf_prepend(buf, str) * @brief Prepend the given string to the given buffer * * @param buf The string buffer to prepend to. * @param str The string to prepend. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_ustrbuf_insert() at position 0.If @p buf * can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ #define eina_ustrbuf_prepend(buf, str) eina_ustrbuf_insert(buf, str, 0) /** * @def eina_ustrbuf_prepend_escaped(buf, str) * @brief Prepend the given escaped string to the given buffer * * @param buf The string buffer to prepend to. * @param str The string to prepend. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_ustrbuf_insert_escaped() at position 0. If * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ #define eina_ustrbuf_prepend_escaped(buf, str) eina_ustrbuf_insert_escaped(buf, str, 0) /** * @def eina_ustrbuf_prepend_n(buf, str) * @brief Prepend the given escaped string to the given buffer * * @param buf The string buffer to prepend to. * @param str The string to prepend. * @param maxlen The maximum number of Eina_Unicode *s to prepend. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_ustrbuf_insert_n() at position 0. If * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ #define eina_ustrbuf_prepend_n(buf, str, maxlen) eina_ustrbuf_insert_n(buf, str, maxlen, 0) /** * @def eina_ustrbuf_prepend_length(buf, str) * @brief Prepend the given escaped string to the given buffer * * @param buf The string buffer to prepend to. * @param str The string to prepend. * @param length The exact length to use. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_ustrbuf_insert_length() at position 0. If * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ #define eina_ustrbuf_prepend_length(buf, str, length) eina_ustrbuf_insert_length(buf, str, length, 0) /** * @def eina_ustrbuf_prepend_char(buf, c) * @brief Prepend the given unicode character to the given buffer * * @param buf The string buffer to prepend to. * @param c The Eina_Unicode character to prepend. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_ustrbuf_insert_Eina_Unicode *() at position 0. If * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ #define eina_ustrbuf_prepend_char(buf, c) eina_ustrbuf_insert_char(buf, c, 0) /** * @def eina_ustrbuf_prepend_printf(buf, fmt, ...) * @brief Prepend the given string to the given buffer * * @param buf The string buffer to prepend to. * @param fmt The string to prepend. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_ustrbuf_insert_printf() at position 0.If @p buf * can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ #define eina_ustrbuf_prepend_printf(buf, fmt, ...) eina_ustrbuf_insert_printf(buf, fmt, 0, ## __VA_ARGS__) /** * @def eina_ustrbuf_prepend_vprintf(buf, fmt, args) * @brief Prepend the given string to the given buffer * * @param buf The string buffer to prepend to. * @param fmt The string to prepend. * @param args The variable arguments. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_ustrbuf_insert_vprintf() at position 0.If @p buf * can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ #define eina_ustrbuf_prepend_vprintf(buf, fmt, args) eina_ustrbuf_insert_vprintf(buf, fmt, 0, args) /** * @brief Remove a slice of the given string buffer. * * @param buf The string buffer to remove a slice. * @param start The initial (inclusive) slice position to start * removing, in bytes. * @param end The final (non-inclusive) slice position to finish * removing, in bytes. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function removes a slice of @p buf, starting at @p start * (inclusive) and ending at @p end (non-inclusive). Both values are * in bytes. It returns #EINA_FALSE on failure, #EINA_TRUE otherwise. */ EAPI Eina_Bool eina_ustrbuf_remove(Eina_UStrbuf *buf, size_t start, size_t end) EINA_ARG_NONNULL(1); /** * @brief Retrieve a pointer to the contents of a string buffer * * @param buf The string buffer. * @return The current string in the string buffer. * * This function returns the string contained in @p buf. The returned * value must not be modified and will no longer be valid if @p buf is * modified. In other words, any eina_ustrbuf_append() or similar will * make that pointer invalid. * * @see eina_ustrbuf_string_steal() */ EAPI const Eina_Unicode * eina_ustrbuf_string_get(const Eina_UStrbuf *buf) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Steal the contents of a string buffer. * * @param buf The string buffer to steal. * @return The current string in the string buffer. * * This function returns the string contained in @p buf. @p buf is * then initialized and does not own the returned string anymore. The * caller must release the memory of the returned string by calling * free(). * * @see eina_ustrbuf_string_get() */ EAPI Eina_Unicode * eina_ustrbuf_string_steal(Eina_UStrbuf *buf) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @brief Free the contents of a string buffer but not the buffer. * * @param buf The string buffer to free the string of. * * This function frees the string contained in @p buf without freeing * @p buf. */ EAPI void eina_ustrbuf_string_free(Eina_UStrbuf *buf) EINA_ARG_NONNULL(1); /** * @brief Retrieve the length of the string buffer content. * * @param buf The string buffer. * @return The current length of the string, in bytes. * * This function returns the length of @p buf. */ EAPI size_t eina_ustrbuf_length_get(const Eina_UStrbuf *buf) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @} */ /** * @} */ #endif /* EINA_STRBUF_H */ eina-1.7.10/src/include/eina_inline_rectangle.x0000664000175000017500000001565012175475327016364 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLINE_RECTANGLE_H__ #define EINA_INLINE_RECTANGLE_H__ /** * @addtogroup Eina_Rectangle_Group Rectangle * * @brief These functions provide rectangle management. * * @{ */ /** * @brief Check if the given spans intersect. * * @param c1 The column of the first span. * @param l1 The length of the first span. * @param c2 The column of the second span. * @param l2 The length of the second span. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function returns #EINA_TRUE if the given spans intersect, #EINA_FALSE * otherwise. */ static inline int eina_spans_intersect(int c1, int l1, int c2, int l2) { return (!(((c2 + l2) <= c1) || (c2 >= (c1 + l1)))); } /** * @brief Check if the given rectangle is empty. * * @param r The rectangle to check. * @return #EINA_TRUE if the rectangle is empty, #EINA_FALSE otherwise. * * This function returns #EINA_TRUE if @p r is empty, #EINA_FALSE * otherwise. No check is done on @p r, so it must be a valid * rectangle. */ static inline Eina_Bool eina_rectangle_is_empty(const Eina_Rectangle *r) { return ((r->w < 1) || (r->h < 1)) ? EINA_TRUE : EINA_FALSE; } /** * @brief Set the coordinates and size of the given rectangle. * * @param r The rectangle. * @param x The top-left x coordinate of the rectangle. * @param y The top-left y coordinate of the rectangle. * @param w The width of the rectangle. * @param h The height of the rectangle. * * This function sets its top-left x coordinate to @p x, its top-left * y coordinate to @p y, its width to @p w and its height to @p h. No * check is done on @p r, so it must be a valid rectangle. */ static inline void eina_rectangle_coords_from(Eina_Rectangle *r, int x, int y, int w, int h) { r->x = x; r->y = y; r->w = w; r->h = h; } /** * @brief Check if the given rectangles intersect. * * @param r1 The first rectangle. * @param r2 The second rectangle. * @return #EINA_TRUE if the rectangles intersect, #EINA_FALSE otherwise. * * This function returns #EINA_TRUE if @p r1 and @p r2 intersect, #EINA_FALSE * otherwise. No check is done on @p r1 and @p r2, so they must be valid * rectangles. */ static inline Eina_Bool eina_rectangles_intersect(const Eina_Rectangle *r1, const Eina_Rectangle *r2) { return (eina_spans_intersect(r1->x, r1->w, r2->x, r2->w) && eina_spans_intersect(r1->y, r1->h, r2->y, r2->h)) ? EINA_TRUE : EINA_FALSE; } /** * @brief Check if the given x-coordinate is in the rectangle . * * @param r The rectangle. * @param x The x coordinate. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function returns #EINA_TRUE if @p x is in @p r with respect to * the horizontal direction, #EINA_FALSE otherwise. No check is done * on @p r, so it must be a valid rectangle. */ static inline Eina_Bool eina_rectangle_xcoord_inside(const Eina_Rectangle *r, int x) { return ((x >= r->x) && (x < (r->x + r->w))) ? EINA_TRUE : EINA_FALSE; } /** * @brief Check if the given y-coordinate is in the rectangle . * * @param r The rectangle. * @param y The y coordinate. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function returns #EINA_TRUE if @p y is in @p r with respect to * the vertical direction, #EINA_FALSE otherwise. No check is done * on @p r, so it must be a valid rectangle. */ static inline Eina_Bool eina_rectangle_ycoord_inside(const Eina_Rectangle *r, int y) { return ((y >= r->y) && (y < (r->y + r->h))) ? EINA_TRUE : EINA_FALSE; } /** * @brief Check if the given point is in the rectangle . * * @param r The rectangle. * @param x The x coordinate of the point. * @param y The y coordinate of the point. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function returns #EINA_TRUE if the point of coordinate (@p x, * @p y) is in @p r, #EINA_FALSE otherwise. No check is done on @p r, * so it must be a valid rectangle. */ static inline Eina_Bool eina_rectangle_coords_inside(const Eina_Rectangle *r, int x, int y) { return (eina_rectangle_xcoord_inside(r, x) && eina_rectangle_ycoord_inside(r, y)) ? EINA_TRUE : EINA_FALSE; } /** * @brief Get the union of two rectangles. * * @param dst The first rectangle. * @param src The second rectangle. * * This function get the union of the rectangles @p dst and @p src. The * result is stored in @p dst. No check is done on @p dst or @p src, * so they must be valid rectangles. */ static inline void eina_rectangle_union(Eina_Rectangle *dst, const Eina_Rectangle *src) { /* left */ if (dst->x > src->x) { dst->w += dst->x - src->x; dst->x = src->x; } /* right */ if ((dst->x + dst->w) < (src->x + src->w)) dst->w = src->x + src->w; /* top */ if (dst->y > src->y) { dst->h += dst->y - src->y; dst->y = src->y; } /* bottom */ if ((dst->y + dst->h) < (src->y + src->h)) dst->h = src->y + src->h; } /** * @brief Get the intersection of two rectangles. * * @param dst The first rectangle. * @param src The second rectangle. * @return #EINA_TRUE if the rectangles intersect, #EINA_FALSE * otherwise. * * This function get the intersection of the rectangles @p dst and * @p src. The result is stored in @p dst. No check is done on @p dst * or @p src, so they must be valid rectangles. */ static inline Eina_Bool eina_rectangle_intersection(Eina_Rectangle *dst, const Eina_Rectangle *src) { if (!(eina_rectangles_intersect(dst, src))) return EINA_FALSE; /* left */ if (dst->x < src->x) { dst->w += dst->x - src->x; dst->x = src->x; if (dst->w < 0) dst->w = 0; } /* right */ if ((dst->x + dst->w) > (src->x + src->w)) dst->w = src->x + src->w - dst->x; /* top */ if (dst->y < src->y) { dst->h += dst->y - src->y; dst->y = src->y; if (dst->h < 0) dst->h = 0; } /* bottom */ if ((dst->y + dst->h) > (src->y + src->h)) dst->h = src->y + src->h - dst->y; return EINA_TRUE; } static inline void eina_rectangle_rescale_in(const Eina_Rectangle *out, const Eina_Rectangle *in, Eina_Rectangle *res) { res->x = in->x - out->x; res->y = in->y - out->y; res->w = in->w; res->h = in->h; } static inline void eina_rectangle_rescale_out(const Eina_Rectangle *out, const Eina_Rectangle *in, Eina_Rectangle *res) { res->x = out->x + in->x; res->y = out->y + in->y; res->w = out->w; res->h = out->h; } /** * @} */ #endif eina-1.7.10/src/include/eina_tiler.h0000664000175000017500000002472012175475327014157 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_TILER_H_ #define EINA_TILER_H_ #include "eina_types.h" #include "eina_iterator.h" #include "eina_rectangle.h" /** * @page eina_tiler_example_01 * @dontinclude eina_tiler_01.c * * This is an example that illustrates how Eina_Tiler works for a given set of * rectangles. The rectangles must be given in the command line in the form: * \x\+\+\ * The example will show two panels, the first(input) will show the given * rectangles(in different colors) and in the seconds(output) it will show the * rectangles given by the tiler. The rectangles will be added one by one every * two seconds. A lot of the example deals with actually painting the rectangles * so we'll skip over quite a bit of code, but you can see all of it in @ref * eina_tiler_01.c "eina_tiler_01.c". * * The first thing of note in our example is the creation of the tiler: * @skipline eina_tiler_new * @note @p maxw and @p maxh are calculated such that the tiler's size will * fully encompass all given rectangles. * * We'll now look at the function that actually adds rectangles to our tiler. It * first checks if we added all rectangles already and if so stops right there: * @dontinclude eina_tiler_01.c * @skip static Eina_Bool * @until } * * Our function then clears all rectangles given to us by tiler from the last * execution. It does this because each rectangle we add may change everything * about the output of eina_tiler: * @until output_rects_reset * * Next we get another rectangle, print it and show it in the input panel: * @until add_input_rect * * We now come to the tiler stuff, we add our new rectangle to it and get a new * iterator for the tiler: * @until itr * * We now iterate over our tiler printing every rect it gives us and sowing it * in the output panel: * @until } * * We of course must remember to free our iterator and that's it for this * function: * @until } * * You should try many different inputs to see how the tiler works, here are a * few suggestions: * @li 100x100+0+0 100x100+200+200 * @li 100x100+0+0 100x100+5+5 100x100+10+10 100x100+15+15 100x100+20+20 * @li 100x100+0+0 100x100+100+100 100x100+200+0 100x100+0+200 100x100+200+200 * @li 10x10+0+0 10x10+10+10 10x10+20+0 10x10+0+20 10x10+20+20 * * @example eina_tiler_01.c */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @defgroup Eina_Tiler_Group Tiler * * @warning This is a very low level tool, in most situations(for example if * you're using evas) you won't need this. * * @section basic Basic usage * * Eina_Tiler is a tool to facilitate calculations of which areas are damaged * and thus need to be re-rendered. The basic usage of Eina_Tiler is to give it * the size of your canvas and a set of rectangular areas that need * re-rendering, from that and using heuristics it'll tell you an efficient way * to re-render in the form of a set of non-overlapping rectangles that covers * the whole area that needs re-rendering. * * The following is pseudo-code showing some simple use of Eina_Tiler: * @code * tiler = eina_tiler_new(MY_CANVAS_WIDTH, MY_CANVAS_HEIGHT); * EINA_LIST_FOREACH(list_of_areas_that_need_re_rendering, l, rect) * eina_tiler_add(tiler, rect); * itr = eina_tiler_iterator_new(tiler); * EINA_ITERATOR_FOREACH(itr, rect) * my_function_that_repaints_areas_of_the_canvas(rect); * @endcode * * @see eina_tiler_new() * @see eina_tiler_rect_add() * @see eina_tiler_iterator_new() * * @warning There are no guarantees that this will be the most efficient way to * re-render for any particular case. * * @section grid_slicer Grid Slicer * * Grid slicer and Eina_Tiler are usually used together, that is however @b not * necessary, they can be used independently. Grid slicer provides an easy API * to divide an area in tiles which is useful in certain applications to divide * the area that will be rendered into tiles. It's customary to, then create one * Eina_Tiler for each tile. * * The following is pseudo-code showing a very simplified use of grid slicer * together with Eina_Tiler: * @code * itr = eina_tile_grid_slicer_iterator_new(0, 0, MY_CANVAS_WIDTH, MY_CANVAS_HEIGHT, TILE_WIDTH, TILE_HEIGHT); * EINA_ITERATOR_FOREACH(itr, grid_info) * { * tiler = eina_tiler_new(grid_info->rect.w, grid_info->rect.w); * EINA_LIST_FOREACH(list_of_areas_that_need_re_rendering_in_this_tile, l, rect) * eina_tiler_add(tiler, rect); * itr = eina_tiler_iterator_new(tiler); * EINA_ITERATOR_FOREACH(itr, rect) * my_function_that_repaints_areas_of_the_canvas(rect); * } * @endcode * * @see eina_tiler_new() * @see eina_tiler_rect_add() * @see eina_tile_grid_slicer_setup() * @see eina_tile_grid_slicer_next() * @see eina_tile_grid_slicer_iterator_new() * * @{ */ /** * @typedef Eina_Tiler * Tiler type. */ typedef struct _Eina_Tiler Eina_Tiler; /** * @typedef Eina_Tile_Grid_Info * Grid type of a tiler. */ typedef struct Eina_Tile_Grid_Info Eina_Tile_Grid_Info; /** * @struct Eina_Tile_Grid_Info * Grid type of a tiler. */ struct Eina_Tile_Grid_Info { unsigned long col; /**< column of the tile grid */ unsigned long row; /**< row of the tile grid*/ Eina_Rectangle rect; /**< rectangle of the tile grid, coordinates are relative to tile*/ Eina_Bool full; /**< whether the grid is full or not */ }; typedef struct _Eina_Tile_Grid_Slicer Eina_Tile_Grid_Slicer; /** * @brief Creates a new tiler with @p w width and @p h height. * * @param w Width of the tiler * @param h Height of the tiler * @return The newly created tiler * * @see eina_tiler_free() */ EAPI Eina_Tiler *eina_tiler_new(int w, int h); /** * @brief Frees a tiler. * * @param t The tiler to free. * * This function frees @p t. It does not free the memory allocated for the * elements of @p t. */ EAPI void eina_tiler_free(Eina_Tiler *t); /** * @brief Sets the size of tiles for a tiler. * * @param t The tiler whose tile size will be set. * @param w Width of the tiles. * @param h Height of the tiles. * * @warning @p w and @p h @b must be greater than zero, otherwise tile size * won't be changed. * @warning Tile size is not used! */ EAPI void eina_tiler_tile_size_set(Eina_Tiler *t, int w, int h); /** * @brief Adds a rectangle to a tiler. * * @param t The tiler in which to add a container. * @param r The rectangle to be added. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * @see eina_tiler_rect_del() */ EAPI Eina_Bool eina_tiler_rect_add(Eina_Tiler *t, const Eina_Rectangle *r); /** * @brief Removes a rectangle from a tiler. * * @param t The tiler in which to add a container. * @param r The rectangle to be removed. * * @see eina_tiler_rect_add() * @see eina_tiler_clear() */ EAPI void eina_tiler_rect_del(Eina_Tiler *t, const Eina_Rectangle *r); /** * @brief Removes all rectangles from tiles. * * @param t The tiler to clear. * * @see eina_tiler_rect_del() */ EAPI void eina_tiler_clear(Eina_Tiler *t); /** * @brief Create a iterator to access the tilers calculated rectangles. * * @param t The tiler to iterate over. * @return A iterator containing Eina_Rectangle. */ EAPI Eina_Iterator *eina_tiler_iterator_new(const Eina_Tiler *t); /** * @brief Creates a new Eina_Iterator that iterates over a list of tiles. * * @param x X axis coordinate. * @param y Y axis coordinate. * @param w width. * @param h height. * @param tile_w tile width. * @param tile_h tile height. * @return A pointer to the Eina_Iterator. @c NULL on failure. * * The region defined by @a x, @a y, @a w, @a h will be divided in to a grid of * tiles of width @a tile_w and height @p tile_h, the returned iterator will * iterate over every tile in the grid having as its data a #Eina_Tile_Grid_Info. * * @note This is a convenience function, iterating over the returned iterator is * equivalent to calling eina_tile_grid_slicer_setup() and calling * eina_tile_grid_slicer_next() untill it returns #EINA_FALSE. */ EAPI Eina_Iterator *eina_tile_grid_slicer_iterator_new(int x, int y, int w, int h, int tile_w, int tile_h); /** * @brief Iterates over the tiles set by eina_tile_grid_slicer_setup(). * * @param slc Pointer to an Eina_Tile_Grid_Slicer struct. * @param rect Pointer to a struct Eina_Tile_Grid_Info *. * @return #EINA_TRUE if the current rect is valid. #EINA_FALSE if there * is no more rects to iterate over (and thus the current one isn't valid). * * This functions iterates over each Eina_Tile_Grid_Info *rect of the grid. * eina_tile_grid_slicer_setup() must be called first, and *rect is only valid * if this function returns #EINA_TRUE. Its content shouldn't be modified. * * @note Consider using eina_tile_grid_slicer_iterator_new() instead. */ static inline Eina_Bool eina_tile_grid_slicer_next(Eina_Tile_Grid_Slicer *slc, const Eina_Tile_Grid_Info **rect); /** * @brief Setup an Eina_Tile_Grid_Slicer struct. * * @param slc Pointer to an Eina_Tile_Grid_Slicer struct. * @param x X axis coordinate. * @param y Y axis coordinate. * @param w width. * @param h height. * @param tile_w tile width. * @param tile_h tile height. * @return A pointer to the Eina_Iterator. @c NULL on failure. * * The region defined by @a x, @a y, @a w, @a h will be divided in to a grid of * tiles of width @a tile_w and height @p tile_h, @p slc can then be used with * eina_tile_grid_slicer_next() to access each tile. * * @note Consider using eina_tile_grid_slicer_iterator_new() instead. */ static inline Eina_Bool eina_tile_grid_slicer_setup(Eina_Tile_Grid_Slicer *slc, int x, int y, int w, int h, int tile_w, int tile_h); #include "eina_inline_tiler.x" /** * @} */ /** * @} */ #endif /* EINA_TILER_H_ */ eina-1.7.10/src/include/eina_safety_checks.h0000664000175000017500000003225612175475327015656 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Gustavo Sverzut Barbieri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_SAFETY_CHECKS_H_ #define EINA_SAFETY_CHECKS_H_ /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @defgroup Eina_Safety_Checks_Group Safety Checks * * @warning @c eina_safety_checks.h should only be included by source * files, after all other includes and before the source file * specific includes. By source file specific includes we * mean those that define the functions that are being * checked. The reason for such complexity is the trick to * avoid compiler optimizations. If compilers are told that * some given function will never receive @c NULL * (EINA_ARG_NONNULL(), then compiler will emit a warning if * it detects so (good!) but will remove any checks for that * condition as it believes it will never happen, removing * all safety checks! By including @c eina_safety_checks.h it * will redefine EINA_ARG_NONNULL() to void and compiler * warning will not be emitted, but checks will be there. The * files already processed with the old macro * EINA_ARG_NONNULL() will still work and emit the warnings. * * * @code * * // all these files will emit warning from EINA_ARG_NONNULL() * #include // third party headers * #include * #include // eina own header * * #include * // all these files below will NOT emit warning from EINA_ARG_NONNULL(), * // but this is required to have the functions defined there to be checked * // for NULL pointers * #include "my_functions1.h" * #include "my_functions2.h" * * @endcode */ /** * @addtogroup Eina_Safety_Checks_Group Safety Checks * * Safety checks are a set of macros to check for parameters or values * that should never happen, it is similar in concept to assert(), but * will log and return instead of abort() your program. * * Since these cases should never happen, one may wantto keep safety * checks enabled during tests but disable then during deploy, not * doing any checks at all. This is a common requirement for embedded * systems. Whenever to check or not should be set during compile time * by using @c --disable-safety-checks or @c --enable-safety-checks * options to @c configure script. * * Whenever these macros capture an error, EINA_LOG_ERR() will be * called and @c eina_error set to @c EINA_ERROR_SAFETY_FAILED and can * be checked with eina_error_get() after call. * * @see EINA_SAFETY_ON_NULL_RETURN(), EINA_SAFETY_ON_NULL_RETURN_VAL() * and other macros. * * @{ */ #include "eina_config.h" #include "eina_error.h" /** * @var EINA_ERROR_SAFETY_FAILED * Error identifier corresponding to safety check failure. */ EAPI extern Eina_Error EINA_ERROR_SAFETY_FAILED; #ifdef EINA_SAFETY_CHECKS #include "eina_log.h" #define EINA_SAFETY_ON_NULL_RETURN(exp) \ do \ { \ if (EINA_UNLIKELY((exp) == NULL)) \ { \ eina_error_set(EINA_ERROR_SAFETY_FAILED); \ EINA_LOG_ERR("%s", "safety check failed: " # exp " == NULL"); \ return; \ } \ } \ while (0) #define EINA_SAFETY_ON_NULL_RETURN_VAL(exp, val) \ do \ { \ if (EINA_UNLIKELY((exp) == NULL)) \ { \ eina_error_set(EINA_ERROR_SAFETY_FAILED); \ EINA_LOG_ERR("%s", "safety check failed: " # exp " == NULL"); \ return (val); \ } \ } \ while (0) #define EINA_SAFETY_ON_NULL_GOTO(exp, label) \ do \ { \ if (EINA_UNLIKELY((exp) == NULL)) \ { \ eina_error_set(EINA_ERROR_SAFETY_FAILED); \ EINA_LOG_ERR("%s", "safety check failed: " # exp " == NULL"); \ goto label; \ } \ } \ while (0) #define EINA_SAFETY_ON_TRUE_RETURN(exp) \ do \ { \ if (EINA_UNLIKELY(exp)) \ { \ eina_error_set(EINA_ERROR_SAFETY_FAILED); \ EINA_LOG_ERR("%s", "safety check failed: " # exp " is true"); \ return; \ } \ } \ while (0) #define EINA_SAFETY_ON_TRUE_RETURN_VAL(exp, val) \ do \ { \ if (EINA_UNLIKELY(exp)) \ { \ eina_error_set(EINA_ERROR_SAFETY_FAILED); \ EINA_LOG_ERR("%s", "safety check failed: " # exp " is true"); \ return val; \ } \ } \ while (0) #define EINA_SAFETY_ON_TRUE_GOTO(exp, label) \ do \ { \ if (EINA_UNLIKELY(exp)) \ { \ eina_error_set(EINA_ERROR_SAFETY_FAILED); \ EINA_LOG_ERR("%s", "safety check failed: " # exp " is true"); \ goto label; \ } \ } \ while (0) #define EINA_SAFETY_ON_FALSE_RETURN(exp) \ do \ { \ if (EINA_UNLIKELY(!(exp))) \ { \ eina_error_set(EINA_ERROR_SAFETY_FAILED); \ EINA_LOG_ERR("%s", "safety check failed: " # exp " is false"); \ return; \ } \ } \ while (0) #define EINA_SAFETY_ON_FALSE_RETURN_VAL(exp, val) \ do \ { \ if (EINA_UNLIKELY(!(exp))) \ { \ eina_error_set(EINA_ERROR_SAFETY_FAILED); \ EINA_LOG_ERR("%s", "safety check failed: " # exp " is false"); \ return val; \ } \ } \ while (0) #define EINA_SAFETY_ON_FALSE_GOTO(exp, label) \ do \ { \ if (EINA_UNLIKELY(!(exp))) \ { \ eina_error_set(EINA_ERROR_SAFETY_FAILED); \ EINA_LOG_ERR("%s", "safety check failed: " # exp " is false"); \ goto label; \ } \ } \ while (0) #ifdef EINA_ARG_NONNULL /* make EINA_ARG_NONNULL void so GCC does not optimize safety checks */ #undef EINA_ARG_NONNULL #define EINA_ARG_NONNULL(...) #endif #else /* no safety checks */ /** * @def EINA_SAFETY_ON_NULL_RETURN * @brief The macro doesn't do anything unless EINA_SAFETY_CHECKS is defined. * @param exp The expression to be evaluated. */ #define EINA_SAFETY_ON_NULL_RETURN(exp) \ do { (void)(!(exp)); } while (0) /** * @def EINA_SAFETY_ON_NULL_RETURN_VAL * @brief The macro doesn't do anything unless EINA_SAFETY_CHECKS is defined. * @param exp The expression to be evaluated. * @param val The value to be returned. */ #define EINA_SAFETY_ON_NULL_RETURN_VAL(exp, val) \ do { if (0 && !(exp)) { (void)val; } } while (0) /** * @def EINA_SAFETY_ON_NULL_GOTO * @brief The macro doesn't do anything unless EINA_SAFETY_CHECKS is defined. * @param exp The expression to be evaluated. * @param label The label to jump to. */ #define EINA_SAFETY_ON_NULL_GOTO(exp, label) \ do { if (0 && (exp) == NULL) { goto label; } } while (0) /** * @def EINA_SAFETY_ON_TRUE_RETURN * @brief The macro doesn't do anything unless EINA_SAFETY_CHECKS is defined. * @param exp The expression to be evaluated. */ #define EINA_SAFETY_ON_TRUE_RETURN(exp) \ do { (void)(exp); } while (0) /** * @def EINA_SAFETY_ON_TRUE_RETURN_VAL * @brief The macro doesn't do anything unless EINA_SAFETY_CHECKS is defined. * @param exp The expression to be evaluated. * @param val The value to be returned. */ #define EINA_SAFETY_ON_TRUE_RETURN_VAL(exp, val) \ do { if (0 && (exp)) { (void)val; } } while (0) /** * @def EINA_SAFETY_ON_TRUE_GOTO * @brief The macro doesn't do anything unless EINA_SAFETY_CHECKS is defined. * @param exp The expression to be evaluated. * @param label The label to jump to. */ #define EINA_SAFETY_ON_TRUE_GOTO(exp, label) \ do { if (0 && (exp)) { goto label; } } while (0) /** * @def EINA_SAFETY_ON_FALSE_RETURN * @brief The macro doesn't do anything unless EINA_SAFETY_CHECKS is defined. * @param exp The expression to be evaluated. */ #define EINA_SAFETY_ON_FALSE_RETURN(exp) \ do { (void)(!(exp)); } while (0) /** * @def EINA_SAFETY_ON_FALSE_RETURN_VAL * @brief The macro doesn't do anything unless EINA_SAFETY_CHECKS is defined. * @param exp The expression to be evaluated. * @param val The value to be returned. */ #define EINA_SAFETY_ON_FALSE_RETURN_VAL(exp, val) \ do { if (0 && !(exp)) { (void)val; } } while (0) /** * @def EINA_SAFETY_ON_FALSE_GOTO * @brief The macro doesn't do anything unless EINA_SAFETY_CHECKS is defined. * @param exp The expression to be evaluated. * @param label The label to jump to. */ #define EINA_SAFETY_ON_FALSE_GOTO(exp, label) \ do { if (0 && !(exp)) { goto label; } } while (0) #endif /* safety checks macros */ #endif /* EINA_SAFETY_CHECKS_H_ */ /** * @} */ /** * @} */ eina-1.7.10/src/include/eina_simple_xml_parser.h0000664000175000017500000003755512175475327016577 00000000000000/* EINA - EFL data type library * Copyright (C) 2011 Gustavo Sverzut Barbieri * Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_SIMPLE_XML_H_ #define EINA_SIMPLE_XML_H_ #include "eina_config.h" #include "eina_types.h" #include "eina_magic.h" #include "eina_inlist.h" /** * @page eina_simple_xml_parser_example_01_page * @dontinclude eina_simple_xml_parser_01.c * * We are going to parse an XML sample file and print the data to stdout. * * Like all examples we start by including Eina: * @skipline #include * * We declare 2 booleans to keep track of tags: * @skipline tag_login * @skipline tag_message * * Here we declare some variables and initialize eina: * @until eina_init * * We fill buffer with the XML data from chat.xml: * @until fread * * We will use an Eina_Array to store the data: * @skipline array * * Here we call eina_simple_xml_parse(). We pass the buffer with data, its size, * we ask to strip leading and trailing whitespace, we give the callback * function and the array to store the formatted data: * @until _xml_tag_cb * * This will loop over the array and print the data using _print callback: * @skipline foreach * * This is the main XML parser callback, it will check for known tags and get * the corresponding values: * @skip static * @until str * * We first check for opening tag: * @skipline type * * If we know the tag should have attributes, then we find them using * eina_simple_xml_tag_attributes_find() and give them to another parsing * function using eina_simple_xml_attributes_parse(): * @until _xml_attr_cb * * We check for other known tags: * @until tag_message * * We then check data for corresponding tag: * @until EINA_FALSE * * We are doing the formatting in same time and put all the \ children * in str. * @until EINA_FALSE * * Finally, we store our string in the array: * @skipline push * * This is the callback to parse the attributes, we check for key name and keep * the value: * @skip static * @until snprintf * * This is the function that simply print items of the array: * @until EINA_TRUE * * You can see the full source code * @ref eina_simple_xml_parser_example_01 "here". */ /** * @page eina_simple_xml_parser_example_01 * @include eina_simple_xml_parser_01.c * @example eina_simple_xml_parser_01.c */ /** * @defgroup Eina_Simple_XML_Group Simple_XML * * Simplistic relaxed SAX-like XML parser. * * This parser is far from being compliant with XML standard, but will * do for most XMLs out there. If you know that your format is simple * and will not vary in future with strange corner cases, then you can * use it safely. * * The parser is SAX like, that is, it will tokenize contents and call * you back so you can take some action. No contents are allocated * during this parser work and it's not recursive, so you can use it * with a very large document without worries. * * It will not validate the document anyhow, neither it will create a * tree hierarchy. That's up to you. * * Accordingly to XML, open tags may contain attributes. This parser * will not tokenize this. If you want you can use * eina_simple_xml_tag_attributes_find() and then * eina_simple_xml_attributes_parse(). * * For more information, see * @ref eina_simple_xml_parser_example_01_page "this example". */ /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @defgroup Eina_Simple_XML_Group Simple_XML * * @{ */ typedef struct _Eina_Simple_XML_Node Eina_Simple_XML_Node; typedef struct _Eina_Simple_XML_Node_Tag Eina_Simple_XML_Node_Root; typedef struct _Eina_Simple_XML_Node_Tag Eina_Simple_XML_Node_Tag; typedef struct _Eina_Simple_XML_Node_Data Eina_Simple_XML_Node_Data; typedef struct _Eina_Simple_XML_Node_Data Eina_Simple_XML_Node_CData; typedef struct _Eina_Simple_XML_Node_Data Eina_Simple_XML_Node_Processing; typedef struct _Eina_Simple_XML_Node_Data Eina_Simple_XML_Node_Doctype; typedef struct _Eina_Simple_XML_Node_Data Eina_Simple_XML_Node_Comment; typedef struct _Eina_Simple_XML_Attribute Eina_Simple_XML_Attribute; struct _Eina_Simple_XML_Attribute { EINA_INLIST; EINA_MAGIC; Eina_Simple_XML_Node_Tag *parent; const char *key; const char *value; }; typedef enum _Eina_Simple_XML_Node_Type { EINA_SIMPLE_XML_NODE_ROOT = 0, EINA_SIMPLE_XML_NODE_TAG, EINA_SIMPLE_XML_NODE_DATA, EINA_SIMPLE_XML_NODE_CDATA, EINA_SIMPLE_XML_NODE_PROCESSING, EINA_SIMPLE_XML_NODE_DOCTYPE, EINA_SIMPLE_XML_NODE_COMMENT } Eina_Simple_XML_Node_Type; struct _Eina_Simple_XML_Node { EINA_INLIST; EINA_MAGIC; Eina_Simple_XML_Node_Tag *parent; Eina_Simple_XML_Node_Type type; }; struct _Eina_Simple_XML_Node_Tag { Eina_Simple_XML_Node base; Eina_Inlist *children; Eina_Inlist *attributes; const char *name; }; struct _Eina_Simple_XML_Node_Data { Eina_Simple_XML_Node base; size_t length; char data[]; }; /** * @typedef _Eina_Simple_XML_Type * a simple XML type. */ typedef enum _Eina_Simple_XML_Type { EINA_SIMPLE_XML_OPEN = 0, /*!< \ */ EINA_SIMPLE_XML_OPEN_EMPTY, /*!< \ */ EINA_SIMPLE_XML_CLOSE, /*!< \ */ EINA_SIMPLE_XML_DATA, /*!< tag text data */ EINA_SIMPLE_XML_CDATA, /*!< \ */ EINA_SIMPLE_XML_ERROR, /*!< error contents */ EINA_SIMPLE_XML_PROCESSING, /*!< \ \ */ EINA_SIMPLE_XML_DOCTYPE, /*!< \ */ EINA_SIMPLE_XML_IGNORED /*!< whatever is ignored by parser, like whitespace */ } Eina_Simple_XML_Type; typedef Eina_Bool (*Eina_Simple_XML_Cb)(void *data, Eina_Simple_XML_Type type, const char *content, unsigned offset, unsigned length); typedef Eina_Bool (*Eina_Simple_XML_Attribute_Cb)(void *data, const char *key, const char *value); /** * Parse a section of XML string text * * @param buf the input string. May not contain \0 terminator. * @param buflen the input string size. * @param strip whenever this parser should strip leading and trailing * whitespace. These whitespace will still be issued, but as type * #EINA_SIMPLE_XML_IGNORED. * @param func what to call back while parse to do some action. The * first parameter is the given user @a data, the second is the * token type, the third is the pointer to content start (it's * not a NULL terminated string!), the forth is where this * content is located inside @a buf (does not include tag * start, for instance "" the offset points at * "value"), the fifth is the size of the content. Whenever this * function return #EINA_FALSE the parser will abort. @param * data what to give as context to @a func. * * @return #EINA_TRUE on success or #EINA_FALSE if it was aborted by user or * parsing error. */ EAPI Eina_Bool eina_simple_xml_parse(const char *buf, unsigned buflen, Eina_Bool strip, Eina_Simple_XML_Cb func, const void *data); /** * Given the contents of a tag, find where the attributes start. * * @param buf the input string. May not contain \0 terminator. * @param buflen the input string size. * @return pointer to the start of attributes, it can be used * to feed eina_simple_xml_attributes_parse(). @c NULL is returned * if no attributes were found. * * The tag contents is returned by eina_simple_xml_parse() when * type is #EINA_SIMPLE_XML_OPEN or #EINA_SIMPLE_XML_OPEN_EMPTY. * */ EAPI const char * eina_simple_xml_tag_attributes_find(const char *buf, unsigned buflen); /** * Given a buffer with xml attributes, parse them to key=value pairs. * * @param buf the input string. May not contain \0 terminator. * @param buflen the input string size. * @param func what to call back while parse to do some action. The * first parameter is the given user @a data, the second is the * key (null-terminated) and the last is the value (null * terminated). These strings should not be modified and * reference is just valid until the function return. * @param data data to pass to the callback function. * * @return #EINA_TRUE on success or #EINA_FALSE if it was aborted by user or * parsing error. */ EAPI Eina_Bool eina_simple_xml_attributes_parse(const char *buf, unsigned buflen, Eina_Simple_XML_Attribute_Cb func, const void *data); /** * Create (and append) new attribute to tag. * * @param parent if provided, will be set in the resulting structure * as well as the attribute will be appended to attributes list. * @param key Null-terminated string. Must not be @c NULL. * @param value Null-terminated string. If @c NULL, the empty string will be used. * * @return Newly allocated memory or @c NULL on error. This memory should be * released with eina_simple_xml_attribute_free() or indirectly * with eina_simple_xml_node_tag_free(). */ EAPI Eina_Simple_XML_Attribute * eina_simple_xml_attribute_new(Eina_Simple_XML_Node_Tag *parent, const char *key, const char *value); /** * Remove attribute from parent and delete it. * * @param attr attribute to release memory. */ EAPI void eina_simple_xml_attribute_free(Eina_Simple_XML_Attribute *attr); /** * Create new tag. If parent is provided, it is automatically appended. * * @param parent if provided, will be set in the resulting structure * as well as the tag will be appended to children list. * @param name Null-terminated string. Must not be @c NULL. * * @return Newly allocated memory or @c NULL on error. This memory should be * released with eina_simple_xml_node_tag_free() or indirectly * with eina_simple_xml_node_tag_free() of the parent. */ EAPI Eina_Simple_XML_Node_Tag * eina_simple_xml_node_tag_new(Eina_Simple_XML_Node_Tag *parent, const char *name); /** * Remove tag from parent and delete it. * * @param tag to release memory. */ EAPI void eina_simple_xml_node_tag_free(Eina_Simple_XML_Node_Tag *tag); /** * Create new data. If parent is provided, it is automatically appended. * * @param parent if provided, will be set in the resulting structure * as well as the data will be appended to children list. * @param contents String to be used. Must not be @c NULL. * @param length size in bytes of @a contents. * * @return Newly allocated memory or NULL on error. This memory should be * released with eina_simple_xml_node_data_free() or indirectly * with eina_simple_xml_node_tag_free() of the parent. */ EAPI Eina_Simple_XML_Node_Data * eina_simple_xml_node_data_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length); /** * Remove data from parent and delete it. * * @param node to release memory. */ EAPI void eina_simple_xml_node_data_free(Eina_Simple_XML_Node_Data *node); /** * Create new cdata. If parent is provided, it is automatically appended. * * @param parent if provided, will be set in the resulting structure * as well as the cdata will be appended to children list. * @param contents String to be used. Must not be @c NULL. * @param length size in bytes of @a content. * * @return Newly allocated memory or @c NULL on error. This memory should be * released with eina_simple_xml_node_cdata_free() or indirectly * with eina_simple_xml_node_tag_free() of the parent. */ EAPI Eina_Simple_XML_Node_CData * eina_simple_xml_node_cdata_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length); /** * Remove cdata from parent and delete it. * * @param node to release memory. */ EAPI void eina_simple_xml_node_cdata_free(Eina_Simple_XML_Node_Data *node); /** * Create new processing. If parent is provided, it is automatically appended. * * @param parent if provided, will be set in the resulting structure * as well as the processing will be appended to children list. * @param contents String to be used. Must not be @c NULL. * @param length size in bytes of @a contents. * * @return Newly allocated memory or @c NULL on error. This memory should be * released with eina_simple_xml_node_processing_free() or indirectly * with eina_simple_xml_node_tag_free() of the parent. */ EAPI Eina_Simple_XML_Node_Processing * eina_simple_xml_node_processing_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length); /** * Remove processing from parent and delete it. * * @param node processing to release memory. */ EAPI void eina_simple_xml_node_processing_free(Eina_Simple_XML_Node_Data *node); /** * Create new doctype. If parent is provided, it is automatically appended. * * @param parent if provided, will be set in the resulting structure * as well as the doctype will be appended to children list. * @param contents String to be used. Must not be @c NULL. * @param length size in bytes of @a contents. * * @return Newly allocated memory or @c NULL on error. This memory should be * released with eina_simple_xml_node_doctype_free() or indirectly * with eina_simple_xml_node_tag_free() of the parent. */ EAPI Eina_Simple_XML_Node_Doctype * eina_simple_xml_node_doctype_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length); /** * Remove doctype from parent and delete it. * * @param node doctype to release memory. */ EAPI void eina_simple_xml_node_doctype_free(Eina_Simple_XML_Node_Data *node); /** * Create new comment. If parent is provided, it is automatically appended. * * @param parent if provided, will be set in the resulting structure * as well as the comment will be appended to children list. * @param contents String to be used. Must not be @c NULL. * @param length size in bytes of @a contents. * * @return Newly allocated memory or @c NULL on error. This memory should be * released with eina_simple_xml_node_comment_free() or indirectly * with eina_simple_xml_node_tag_free() of the parent. */ EAPI Eina_Simple_XML_Node_Comment * eina_simple_xml_node_comment_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length); /** * Remove comment from parent and delete it. * * @param node comment to release memory. */ EAPI void eina_simple_xml_node_comment_free(Eina_Simple_XML_Node_Data *node); /** * Load a XML node tree based on the given string. * * @param buf the input string. May not contain \0 terminator. * @param buflen the input string size. * @param strip whenever this parser should strip leading and trailing * whitespace. * * @return Document root with children tags, or @c NULL on errors. * Document with errors may return partial tree instead of @c NULL, * we'll do our best to avoid returning nothing. */ EAPI Eina_Simple_XML_Node_Root * eina_simple_xml_node_load(const char *buf, unsigned buflen, Eina_Bool strip); /** * Free node tree build with eina_simple_xml_node_load() * * @param root memory returned by eina_simple_xml_node_load() */ EAPI void eina_simple_xml_node_root_free(Eina_Simple_XML_Node_Root *root); /** * Converts the node tree under the given element to a XML string. * * @param node the base node to convert. * @param indent Indentation string, or @c NULL to disable it. * * @return @c NULL on errors or a newly allocated string on success. */ EAPI char * eina_simple_xml_node_dump(Eina_Simple_XML_Node *node, const char *indent); /** * @} */ /** * @} */ #endif /* EINA_SIMPLE_XML_H_ */ eina-1.7.10/src/include/eina_error.h0000664000175000017500000001411412175475327014165 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga, Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_ERROR_H_ #define EINA_ERROR_H_ #include #include "eina_types.h" /** * @page tutorial_error_page Error Tutorial * * @section tutorial_error_registering_msg Registering messages * * The error module can provide a system that mimics the errno system * of the C standard library. It consists in 2 parts: * * @li a way of registering new messages with * eina_error_msg_register() and eina_error_msg_get(), * @li a way of setting / getting last error message with * eina_error_set() / eina_error_get(). * * So one has to fisrt register all the error messages that a program * or a lib should manage. Then, when an error can occur, use * eina_error_set(), and when errors are managed, use * eina_error_get(). If eina_error_set() is used to set an error, do * not forget to call before eina_error_set(), to remove previous set * errors. * * Here is an example of use: * * @include eina_error_01.c * * Of course, instead of printf(), eina_log_print() can be used to * have beautiful error messages. */ /** * @addtogroup Eina_Error_Group Error * * @brief These functions provide error management for projects. * * The Eina error module provides a way to manage errors in a simple but * powerful way in libraries and modules. It is also used in Eina itself. * Similar to libC's @c errno and strerror() facilities, this is extensible and * recommended for other libraries and applications. * * A simple example of how to use this can be seen @ref tutorial_error_page * "here". */ /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @defgroup Eina_Error_Group Error * * @{ */ /** * @typedef Eina_Error * Error type. */ typedef int Eina_Error; /** * @var EINA_ERROR_OUT_OF_MEMORY * Error identifier corresponding to a lack of memory. */ EAPI extern Eina_Error EINA_ERROR_OUT_OF_MEMORY; /** * @brief Register a new error type. * * @param msg The description of the error. It will be duplicated using * eina_stringshare_add(). * @return The unique number identifier for this error. * * This function stores in a list the error message described by * @p msg. The returned value is a unique identifier greater or equal * than 1. The description can be retrieve later by passing to * eina_error_msg_get() the returned value. * * @see eina_error_msg_static_register() */ EAPI Eina_Error eina_error_msg_register(const char *msg) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Register a new error type, statically allocated message. * * @param msg The description of the error. This string will not be * duplicated and thus the given pointer should live during * usage of eina_error. * @return The unique number identifier for this error. * * This function stores in a list the error message described by * @p msg. The returned value is a unique identifier greater or equal * than 1. The description can be retrieve later by passing to * eina_error_msg_get() the returned value. * * @see eina_error_msg_register() */ EAPI Eina_Error eina_error_msg_static_register(const char *msg) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Change the message of an already registered message * * @param error The Eina_Error to change the message of * @param msg The description of the error. This string will be * duplicated only if the error was registered with @ref eina_error_msg_register * otherwise it must remain intact for the duration. * @return #EINA_TRUE if successful, #EINA_FALSE on error. * * This function modifies the message associated with @p error and changes * it to @p msg. If the error was previously registered by @ref eina_error_msg_static_register * then the string will not be duplicated, otherwise the previous message * will be unrefed and @p msg copied. * * @see eina_error_msg_register() */ EAPI Eina_Bool eina_error_msg_modify(Eina_Error error, const char *msg) EINA_ARG_NONNULL(2); /** * @brief Return the last set error. * * @return The last error. * * This function returns the last error set by eina_error_set(). The * description of the message is returned by eina_error_msg_get(). */ EAPI Eina_Error eina_error_get(void); /** * @brief Set the last error. * * @param err The error identifier. * * This function sets the last error identifier. The last error can be * retrieved with eina_error_get(). * * @note This is also used to clear previous errors, in that case @p err should * be @c 0. */ EAPI void eina_error_set(Eina_Error err); /** * @brief Return the description of the given an error number. * * @param error The error number. * @return The description of the error. * * This function returns the description of an error that has been * registered with eina_error_msg_register(). If an incorrect error is * given, then @c NULL is returned. */ EAPI const char *eina_error_msg_get(Eina_Error error) EINA_PURE; /** * @brief Find the #Eina_Error corresponding to a message string * @param msg The error message string to match (NOT @c NULL) * @return The #Eina_Error matching @p msg, or 0 on failure * This function attempts to match @p msg with its corresponding #Eina_Error value. * If no such value is found, 0 is returned. */ EAPI Eina_Error eina_error_find(const char *msg) EINA_ARG_NONNULL(1) EINA_PURE; /** * @} */ /** * @} */ #endif /* EINA_ERROR_H_ */ eina-1.7.10/src/include/eina_lalloc.h0000664000175000017500000000373012175475327014304 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_LALLOC_H_ #define EINA_LALLOC_H_ #include "eina_types.h" /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @defgroup Eina_Lalloc_Group Lazy allocator * * @{ */ typedef Eina_Bool (*Eina_Lalloc_Alloc)(void *user_data, int num); /** * @def EINA_LALLOC_ALLOC * @param function The function to allocate. */ #define EINA_LALLOC_ALLOC(function) ((Eina_Lalloc_Alloc)function) typedef void (*Eina_Lalloc_Free)(void *user_data); /** * @def EINA_LALLOC_FREE * @param function The function to free. */ #define EINA_LALLOC_FREE(function) ((Eina_Lalloc_Free)function) typedef struct _Eina_Lalloc Eina_Lalloc; EAPI Eina_Lalloc *eina_lalloc_new(void *data, Eina_Lalloc_Alloc alloc_cb, Eina_Lalloc_Free free_cb, int num_init) EINA_ARG_NONNULL(2, 3); EAPI void eina_lalloc_free(Eina_Lalloc *a) EINA_ARG_NONNULL(1); EAPI Eina_Bool eina_lalloc_elements_add(Eina_Lalloc *a, int num) EINA_ARG_NONNULL(1); EAPI Eina_Bool eina_lalloc_element_add(Eina_Lalloc *a) EINA_ARG_NONNULL(1); /** * @} */ /** * @} */ #endif /* EINA_LALLOC_H_ */ eina-1.7.10/src/include/eina_inline_lock_wince.x0000664000175000017500000001016712175475327016533 00000000000000/* EINA - EFL data type library * Copyright (C) 2011 Vincent Torri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLINE_LOCK_WINCE_X_ #define EINA_INLINE_LOCK_WINCE_X_ #ifdef EINA_UNUSED # undef EINA_UNUSED #endif #ifdef __GNUC__ # define EINA_UNUSED __attribute__((unused)) #else # define EINA_UNUSED #endif #include EAPI extern Eina_Bool _threads_activated; typedef HANDLE Eina_Lock; typedef Eina_Lock Eina_RWLock; typedef DWORD Eina_TLS; typedef void * Eina_Semaphore; static inline Eina_Bool eina_lock_new(Eina_Lock *mutex) { Eina_Lock m; m = CreateMutex(NULL, FALSE, NULL); if (m) *mutex = m; return (m != NULL); } static inline void eina_lock_free(Eina_Lock *mutex) { CloseHandle(*mutex); } static inline Eina_Lock_Result eina_lock_take(Eina_Lock *mutex) { DWORD res; #ifdef EINA_HAVE_ON_OFF_THREADS if (!_eina_threads_activated) return EINA_LOCK_FAIL; #endif res = WaitForSingleObject(*mutex, INFINITE); if ((res == WAIT_ABANDONED) || (res == WAIT_FAILED)) return EINA_LOCK_FAIL; return EINA_LOCK_SUCCEED; } static inline Eina_Lock_Result eina_lock_take_try(Eina_Lock *mutex) { return eina_lock_take(*mutex); } static inline Eina_Lock_Result eina_lock_release(Eina_Lock *mutex) { #ifdef EINA_HAVE_ON_OFF_THREADS if (!_eina_threads_activated) return ; #endif return ReleaseMutex(*mutex) ? EINA_LOCK_SUCCEED : EINA_LOCK_FAIL; } static inline void eina_lock_debug(const Eina_Lock *mutex) { } static inline Eina_Bool eina_condition_new(Eina_Condition *cond, Eina_Lock *mutex) { return EINA_FALSE; } static inline void eina_condition_free(Eina_Condition *cond) { } static inline Eina_Bool eina_condition_wait(Eina_Condition *cond) { return EINA_FALSE; } static inline Eina_Bool eina_condition_timedwait(Eina_Condition *cond, double t) { return EINA_FALSE; } static inline Eina_Bool eina_condition_broadcast(Eina_Condition *cond) { return EINA_FALSE; } static inline Eina_Bool eina_condition_signal(Eina_Condition *cond) { return EINA_FALSE; } static inline Eina_Bool eina_rwlock_new(Eina_RWLock *mutex) { return eina_lock_new(mutex); } static inline void eina_rwlock_free(Eina_RWLock *mutex) { return eina_lock_free(mutex); } static inline Eina_Lock_Result eina_rwlock_take_read(Eina_RWLock *mutex) { return eina_lock_take(mutex); } static inline Eina_Lock_Result eina_rwlock_take_write(Eina_RWLock *mutex) { return eina_lock_take(mutex); } static inline Eina_Lock_Result eina_rwlock_release(Eina_RWLock *mutex) { return eina_lock_release(mutex); } static inline Eina_Bool eina_tls_new(Eina_TLS *key) { if (TlsAlloc() == TLS_OUT_OF_INDEXES) return EINA_FALSE; return EINA_TRUE; } static inline void eina_tls_free(Eina_TLS key) { TlsFree(key); } static inline void * eina_tls_get(Eina_TLS key) { return (void*)TlsGetValue(key); } static inline Eina_Bool eina_tls_set(Eina_TLS key, const void *data) { if (TlsSetValue(key, (LPVOID)data) == 0) return EINA_FALSE; return EINA_TRUE; } static inline Eina_Bool eina_semaphore_new(Eina_Semaphore *sem EINA_UNUSED, int count_init EINA_UNUSED) { return EINA_FALSE; } static inline Eina_Bool eina_semaphore_free(Eina_Semaphore *sem EINA_UNUSED) { return EINA_FALSE; } static inline Eina_Bool eina_semaphore_lock(Eina_Semaphore *sem EINA_UNUSED) { return EINA_FALSE; } static inline Eina_Bool eina_semaphore_release(Eina_Semaphore *sem EINA_UNUSED, int count_release EINA_UNUSED) { return EINA_FALSE; } #endif eina-1.7.10/src/include/eina_rectangle.h0000664000175000017500000002107212175475327015001 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_RECTANGLE_H_ #define EINA_RECTANGLE_H_ #include "eina_types.h" /** * @addtogroup Eina_Rectangle_Group Rectangle * * @brief These functions provide rectangle management. */ /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @defgroup Eina_Rectangle_Group Rectangle * * @{ */ /** * @typedef Eina_Rectangle * Simple rectangle structure. */ typedef struct _Eina_Rectangle { int x; /**< top-left x co-ordinate of rectangle */ int y; /**< top-left y co-ordinate of rectangle */ int w; /**< width of rectangle */ int h; /**< height of rectangle */ } Eina_Rectangle; /** * @typedef Eina_Rectangle_Pool * Type for an opaque pool of rectangle. */ typedef struct _Eina_Rectangle_Pool Eina_Rectangle_Pool; static inline int eina_spans_intersect(int c1, int l1, int c2, int l2) EINA_WARN_UNUSED_RESULT; static inline Eina_Bool eina_rectangle_is_empty(const Eina_Rectangle *r) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; static inline void eina_rectangle_coords_from(Eina_Rectangle *r, int x, int y, int w, int h) EINA_ARG_NONNULL(1); static inline Eina_Bool eina_rectangles_intersect(const Eina_Rectangle *r1, const Eina_Rectangle *r2) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT; static inline Eina_Bool eina_rectangle_xcoord_inside(const Eina_Rectangle *r, int x) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; static inline Eina_Bool eina_rectangle_ycoord_inside(const Eina_Rectangle *r, int y) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; static inline Eina_Bool eina_rectangle_coords_inside(const Eina_Rectangle *r, int x, int y) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; static inline void eina_rectangle_union(Eina_Rectangle *dst, const Eina_Rectangle *src) EINA_ARG_NONNULL(1, 2); static inline Eina_Bool eina_rectangle_intersection(Eina_Rectangle *dst, const Eina_Rectangle *src) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT; static inline void eina_rectangle_rescale_in(const Eina_Rectangle *out, const Eina_Rectangle *in, Eina_Rectangle *res) EINA_ARG_NONNULL(1, 2, 3); static inline void eina_rectangle_rescale_out(const Eina_Rectangle *out, const Eina_Rectangle *in, Eina_Rectangle *res) EINA_ARG_NONNULL(1, 2, 3); /** * @brief Add a rectangle in a new pool. * * @param w The width of the rectangle. * @param h The height of the rectangle. * @return A newly allocated pool on success, @c NULL otherwise. * * This function adds the rectangle of size (@p width, @p height) to a * new pool. If the pool can not be created, @c NULL is * returned. Otherwise the newly allocated pool is returned. */ EAPI Eina_Rectangle_Pool *eina_rectangle_pool_new(int w, int h) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Return the pool of the given rectangle. * * @param rect The rectangle. * @return The pool of the given rectangle. * * This function returns the pool in which @p rect is. If @p rect is * @c NULL, @c NULL is returned. */ EAPI Eina_Rectangle_Pool *eina_rectangle_pool_get(Eina_Rectangle *rect) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @brief Return the width and height of the given pool. * * @param pool The pool. * @param w The returned width. * @param h The returned height. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function returns the width and height of @p pool and store * them in respectively @p w and @p h if they are not @c NULL. If * @p pool is @c NULL, #EINA_FALSE is returned. Otherwise #EINA_TRUE is * returned. */ EAPI Eina_Bool eina_rectangle_pool_geometry_get(Eina_Rectangle_Pool *pool, int *w, int *h) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Get the data from the given pool. * * @param pool The pool. * @return The returned data. * * This function gets the data from @p pool set by * eina_rectangle_pool_data_set(). If @p pool is @c NULL, this * function returns @c NULL. */ EAPI void *eina_rectangle_pool_data_get(Eina_Rectangle_Pool *pool) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @brief Set the data to the given pool. * * @param pool The pool. * @param data The data to set. * * This function sets @p data to @p pool. If @p pool is @c NULL, this * function does nothing. */ EAPI void eina_rectangle_pool_data_set(Eina_Rectangle_Pool *pool, const void *data) EINA_ARG_NONNULL(1); /** * @brief Free the given pool. * * @param pool The pool to free. * * This function frees the allocated data of @p pool. If @p pool is * @c NULL, this function returned immediately. */ EAPI void eina_rectangle_pool_free(Eina_Rectangle_Pool *pool) EINA_ARG_NONNULL(1); /** * @brief Return the number of rectangles in the given pool. * * @param pool The pool. * @return The number of rectangles in the pool. * * This function returns the number of rectangles in @p pool. */ EAPI int eina_rectangle_pool_count(Eina_Rectangle_Pool *pool) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Request a rectangle of given size in the given pool. * * @param pool The pool. * @param w The width of the rectangle to request. * @param h The height of the rectangle to request. * @return The requested rectangle on success, @c NULL otherwise. * * This function retrieve from @p pool the rectangle of width @p w and * height @p h. If @p pool is @c NULL, or @p w or @p h are non-positive, * the function returns @c NULL. If @p w or @p h are greater than the * pool size, the function returns @c NULL. On success, the function * returns the rectangle which matches the size (@p w, @p h). * Otherwise it returns @c NULL. */ EAPI Eina_Rectangle *eina_rectangle_pool_request(Eina_Rectangle_Pool *pool, int w, int h) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @brief Remove the given rectangle from the pool. * * @param rect The rectangle to remove from the pool. * * This function removes @p rect from the pool. If @p rect is * @c NULL, the function returns immediately. Otherwise it removes @p * rect from the pool. */ EAPI void eina_rectangle_pool_release(Eina_Rectangle *rect) EINA_ARG_NONNULL(1); /** * @def EINA_RECTANGLE_SET * @brief Macro to set the values of a #Eina_Rectangle. * * @param Rectangle The rectangle to set the values. * @param X The X coordinate of the top left corner of the rectangle. * @param Y The Y coordinate of the top left corner of the rectangle. * @param W The width of the rectangle. * @param H The height of the rectangle. * * This macro set the values of @p Rectangle. (@p X, @p Y) is the * coordinates of the top left corner of @p Rectangle, @p W is its * width and @p H is its height. */ #define EINA_RECTANGLE_SET(Rectangle, X, Y, W, H) \ (Rectangle)->x = X; \ (Rectangle)->y = Y; \ (Rectangle)->w = W; \ (Rectangle)->h = H; /** * @brief Create a new rectangle. * * @param x The X coordinate of the top left corner of the rectangle. * @param y The Y coordinate of the top left corner of the rectangle. * @param w The width of the rectangle. * @param h The height of the rectangle. * @return The new rectangle on success, @ NULL otherwise. * * This function creates a rectangle which top left corner has the * coordinates (@p x, @p y), with height @p w and height @p h and adds * it to the rectangles pool. No check is done on @p w and @p h. This * function returns a new rectangle on success, @c NULL otherwhise. */ EAPI Eina_Rectangle *eina_rectangle_new(int x, int y, int w, int h) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Free the given rectangle. * * @param rect The rectangle to free. * * This function removes @p rect from the rectangles pool. */ EAPI void eina_rectangle_free(Eina_Rectangle *rect) EINA_ARG_NONNULL(1); #include "eina_inline_rectangle.x" /** * @} */ /** * @} */ #endif /*_EINA_RECTANGLE_H_*/ eina-1.7.10/src/include/eina_iterator.h0000664000175000017500000002727112175475327014675 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_ITERATOR_H__ #define EINA_ITERATOR_H__ #include "eina_config.h" #include "eina_types.h" #include "eina_magic.h" /** * @page eina_iterator_example_page Eina_Iterator usage * @dontinclude eina_iterator_01.c * * As always when using eina we need to include it: * @skip #include * @until Eina.h * * Here we a declare an unimpressive @ref Eina_Each_Cb "function" that prints * some data: * @until } * @note Returning EINA_TRUE is important so we don't stop iterating over the * container. * * And here a more interesting function, it uses an iterator to print the * contents of a container. What's interesting about it is that it doesn't care * the type of container, it works for anything that can provide an iterator: * @until } * * And on to our main function were we declare some variables and initialize * eina, nothing too special: * @until eina_init * * Next we populate both an array and a list with our strings, for more details * see @ref eina_list_01_example_page and @ref eina_array_01_example_page : * @until } * * And now we create an array and because the first element of the container * doesn't interest us we skip it: * @until iterator_next * * Having our iterator now pointing to interesting data we go ahead and print: * @until print_eina_container * * As always once data with a structure we free it, but just because we can we * do it by asking the iterator for it's container, and then of course free the * iterator itself: * @until eina_iterator_free * * But so far you're not impressed in @ref eina_array_01_example_page an array is * also printed, so now we go to the cool stuff and use an iterator to do same * stuff to a list: * @until eina_iterator_free * @note The only significant diference to the block above is in the * function used to create the iterator. * * And now we free the list and shut eina down: * @until } */ /** * @page eina_iterator_01_c Eina_Iterator usage * @page eina_iterator_01_c Eina_Iterator usage * * @include eina_iterator_01.c * @example eina_iterator_01.c */ /** * @addtogroup Eina_Iterator_Group Iterator Functions * * @brief These functions manage iterators on containers. * * These functions allow to access elements of a container in a * generic way, without knowing which container is used (a bit like * iterators in the C++ STL). Iterators only allows sequential access * (that is, from an element to the next one). For random access, see * @ref Eina_Accessor_Group. * * Getting an iterator to access elements of a given container is done through * the functions of that particular container. There is no function to create * a generic iterator as iterators absolutely depend on the container. This * means you won't find iterator creation function here, those can be found on * the documentation of the container type you're using. Though created with * container specific functions iterators are always deleted with the same * function: eina_iterator_free(). * * To get the data and iterate, use eina_iterator_next(). To call a function on * all the elements of a container, use eina_iterator_foreach(). * * Here an @ref eina_iterator_example_page "example" */ /** * @addtogroup Eina_Content_Access_Group Content Access * * @{ */ /** * @defgroup Eina_Iterator_Group Iterator Functions * * @{ */ /** * @typedef Eina_Iterator * Abstract type for iterators. */ typedef struct _Eina_Iterator Eina_Iterator; /** * @typedef Eina_Iterator_Next_Callback * Type for a callback that returns the next element in a container. */ typedef Eina_Bool (*Eina_Iterator_Next_Callback)(Eina_Iterator *it, void **data); /** * @typedef Eina_Iterator_Get_Container_Callback * Type for a callback that returns the container. */ typedef void *(*Eina_Iterator_Get_Container_Callback)(Eina_Iterator *it); /** * @typedef Eina_Iterator_Free_Callback * Type for a callback that frees the container. */ typedef void (*Eina_Iterator_Free_Callback)(Eina_Iterator *it); /** * @typedef Eina_Iterator_Lock_Callback * Type for a callback that lock the container. */ typedef Eina_Bool (*Eina_Iterator_Lock_Callback)(Eina_Iterator *it); /** * @struct _Eina_Iterator * structure of an iterator * * If creating an iterator remember to set the type using @ref EINA_MAGIC_SET. */ struct _Eina_Iterator { #define EINA_ITERATOR_VERSION 1 int version; /**< Version of the Iterator API. */ Eina_Iterator_Next_Callback next EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT; /**< Callback called when a next element is requested. */ Eina_Iterator_Get_Container_Callback get_container EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /**< Callback called when the container is requested. */ Eina_Iterator_Free_Callback free EINA_ARG_NONNULL(1); /**< Callback called when the container is freed. */ Eina_Iterator_Lock_Callback lock EINA_WARN_UNUSED_RESULT; /**< Callback called when the container is locked. */ Eina_Iterator_Lock_Callback unlock EINA_WARN_UNUSED_RESULT; /**< Callback called when the container is unlocked. */ #define EINA_MAGIC_ITERATOR 0x98761233 EINA_MAGIC }; /** * @def FUNC_ITERATOR_NEXT(Function) * Helper macro to cast @p Function to a Eina_Iterator_Next_Callback. */ #define FUNC_ITERATOR_NEXT(Function) ((Eina_Iterator_Next_Callback)Function) /** * @def FUNC_ITERATOR_GET_CONTAINER(Function) * Helper macro to cast @p Function to a Eina_Iterator_Get_Container_Callback. */ #define FUNC_ITERATOR_GET_CONTAINER(Function) ((Eina_Iterator_Get_Container_Callback)Function) /** * @def FUNC_ITERATOR_FREE(Function) * Helper macro to cast @p Function to a Eina_Iterator_Free_Callback. */ #define FUNC_ITERATOR_FREE(Function) ((Eina_Iterator_Free_Callback)Function) /** * @def FUNC_ITERATOR_LOCK(Function) * Helper macro to cast @p Function to a Eina_Iterator_Lock_Callback. */ #define FUNC_ITERATOR_LOCK(Function) ((Eina_Iterator_Lock_Callback)Function) /** * @brief Free an iterator. * * @param iterator The iterator to free. * * This function frees @p iterator if it is not @c NULL; */ EAPI void eina_iterator_free(Eina_Iterator *iterator); /** * @brief Return the container of an iterator. * * @param iterator The iterator. * @return The container which created the iterator. * * This function returns the container which created @p iterator. If * @p iterator is @c NULL, this function returns @c NULL. */ EAPI void *eina_iterator_container_get(Eina_Iterator *iterator) EINA_ARG_NONNULL(1) EINA_PURE; /** * @brief Return the value of the current element and go to the next one. * * @param iterator The iterator. * @param data The data of the element. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function returns the value of the current element pointed by * @p iterator in @p data, then goes to the next element. If @p * iterator is @c NULL or if a problem occurred, #EINA_FALSE is * returned, otherwise #EINA_TRUE is returned. */ EAPI Eina_Bool eina_iterator_next(Eina_Iterator *iterator, void **data) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT; /** * @brief Iterate over the container and execute a callback on each element. * * @param iterator The iterator. * @param callback The callback called on each iteration. * @param fdata The data passed to the callback. * * This function iterates over the elements pointed by @p iterator, * beginning from the current element. For Each element, the callback * @p cb is called with the data @p fdata. If @p iterator is @c NULL, * the function returns immediately. Also, if @p cb returns #EINA_FALSE, * the iteration stops at that point, if @p cb returns #EINA_TRUE * the iteration continues. */ EAPI void eina_iterator_foreach(Eina_Iterator *iterator, Eina_Each_Cb callback, const void *fdata) EINA_ARG_NONNULL(2); /** * @brief Lock the container of the iterator. * * @param iterator The iterator. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * If the container of the @p iterator permits it, it will be locked. When a * container is locked calling eina_iterator_foreach() on it will return * immediately. If @p iterator is @c NULL or if a problem occurred, #EINA_FALSE * is returned, otherwise #EINA_TRUE is returned. If the container isn't * lockable, it will return #EINA_TRUE. * * @warning None of the existing eina data structures are lockable. */ EAPI Eina_Bool eina_iterator_lock(Eina_Iterator *iterator) EINA_ARG_NONNULL(1); /** * @brief Unlock the container of the iterator. * * @param iterator The iterator. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * If the container of the @p iterator permits it and was previously * locked, it will be unlocked. If @p iterator is @c NULL or if a * problem occurred, #EINA_FALSE is returned, otherwise #EINA_TRUE * is returned. If the container is not lockable, it will * return #EINA_TRUE. * * @warning None of the existing eina data structures are lockable. */ EAPI Eina_Bool eina_iterator_unlock(Eina_Iterator *iterator) EINA_ARG_NONNULL(1); /** * @def EINA_ITERATOR_FOREACH * @brief Macro to iterate over all elements easily. * * @param itr The iterator to use. * @param data Where to store * data, must be a pointer support getting * its address since * eina_iterator_next() requires a pointer * to pointer! * * This macro is a convenient way to use iterators, very similar to * EINA_LIST_FOREACH(). * * This macro can be used for freeing the data of a list, like in the * following example. It has the same goal as the one documented in * EINA_LIST_FOREACH(), but using iterators: * * @code * Eina_List *list; * Eina_Iterator *itr; * char *data; * * // list is already filled, * // its elements are just duplicated strings * * itr = eina_list_iterator_new(list); * EINA_ITERATOR_FOREACH(itr, data) * free(data); * eina_iterator_free(itr); * eina_list_free(list); * @endcode * * @note this example is not optimal algorithm to release a list since * it will walk the list twice, but it serves as an example. For * optimized version use EINA_LIST_FREE() * * @warning The order in which the elements will be traversed depends on the * underlying container and @b shouldn't be relied upon. * * @warning unless explicitly stated in functions returning iterators, * do not modify the iterated object while you walk it, in this * example using lists, do not remove list nodes or you might * crash! This is not a limitiation of iterators themselves, * rather in the iterators implementations to keep them as simple * and fast as possible. */ #define EINA_ITERATOR_FOREACH(itr, \ data) while (eina_iterator_next((itr), \ (void **)(void *)&(data))) /** * @} */ /** * @} */ #endif eina-1.7.10/src/include/eina_str.h0000664000175000017500000003101112175475327013637 00000000000000#ifndef _EINA_STR_H #define _EINA_STR_H #include #include #include "eina_types.h" /** * @page tutorial_eina_string Eina String example * @dontinclude eina_str_01.c * * Whenever using eina we need to include it: * @skipline #include * @line #include * * In our main function we declare(and initialize) some variables and initialize * eina: * @until eina_init * * It's frequently necessary to split a string into its constituent parts, * eina_str_split() make's it easy to do so: * @until printf * * Another common need is to make a string uppercase or lowercase, so let's * create a string and make it uppercase and then make it lowercase again: * @until printf * @until printf * * Next we use eina to check if our @p names string starts or ends with some * values: * @until Has * * When strings will be used in a terminal(or a number of other places) it * necessary to escape certain characters that appear in them: * @until printf * * Much as we previously split a string we will now join two strings: * @until printf * * With strlcpy() we can copy what portion of the @p prologue fits in @p str and * be sure that it's still NULL terminated: * @until printf * * Since we are done with @p prologue and @p str we should free them: * @until free(str * * Finally we see strlcat in action: * @until printf(" * * And then shut eina down and exit: * @until } * @example eina_str_01.c */ /** * @addtogroup Eina_String_Group String * * @brief Provide useful functions for C string manipulation. * * This group of functions allow you to more easily manipulate strings, they * provide functionality not available through string.h. * * @warning Since these functions modify the strings they can't be used with * shared strings(eina_stringshare). * * See an example @ref tutorial_eina_string "here". */ /** * @addtogroup Eina_Tools_Group Tools * * For more information refer to the @ref tutorial_eina_string "string example". * * @{ */ /** * @defgroup Eina_String_Group String * * @{ */ /* strlcpy implementation for libc's lacking it */ /** * @brief Copy a c-string to another. * * @param dst The destination string. * @param src The source string. * @param siz The size of the destination string. * @return The length of the source string. * * This function copies up to @p siz - 1 characters from the * NULL-terminated string @p src to @p dst, NULL-terminating the result * (unless @p siz is equal to 0). The returned value is the length of * @p src. If the returned value is greater than @p siz, truncation * occurred. * * @note The main difference between eina_strlcpy and strncpy is that this * ensures @p dst is NULL-terminated even if no @c NULL byte is found in the first * @p siz bytes of src. */ EAPI size_t eina_strlcpy(char *dst, const char *src, size_t siz) EINA_ARG_NONNULL(1, 2); /** * @brief Append a c-string. * * @param dst The destination string. * @param src The source string. * @param siz The size of the destination string. * @return The length of the source string plus MIN(siz, strlen(initial dst)) * * This function appends @p src to @p dst of size @p siz (unlike * strncat, @p siz is the full size of @p dst, not space left). At * most @p siz - 1 characters will be copied. Always NULL-terminates * (unless @p siz <= strlen(dst)). This function returns strlen(src) + * MIN(siz, strlen(initial dst)). If the returned value is greater or * equal than @p siz, truncation occurred. */ EAPI size_t eina_strlcat(char *dst, const char *src, size_t siz) EINA_ARG_NONNULL(1, 2); /** * @brief Check if the given string has the given prefix. * * @param str The string to work with. * @param prefix The prefix to check for. * @return #EINA_TRUE if the string has the given prefix, #EINA_FALSE otherwise. * * This function returns #EINA_TRUE if @p str has the prefix * @p prefix, #EINA_FALSE otherwise. If the length of @p prefix is * greater than @p str, #EINA_FALSE is returned. */ EAPI Eina_Bool eina_str_has_prefix(const char *str, const char *prefix) EINA_PURE EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT; /** * @brief Check if the given string has the given suffix. * * @param str The string to work with. * @param suffix The suffix to check for. * @return #EINA_TRUE if the string has the given suffix, #EINA_FALSE otherwise. * * This function returns #EINA_TRUE if @p str has the suffix * @p suffix, #EINA_FALSE otherwise. If the length of @p suffix is * greater than @p str, #EINA_FALSE is returned. */ EAPI Eina_Bool eina_str_has_suffix(const char *str, const char *suffix) EINA_PURE EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT; /** * @brief Check if the given string has the given extension. * * @param str The string to work with. * @param ext The extension to check for. * @return #EINA_TRUE if the string has the given extension, #EINA_FALSE otherwise. * * This function does the same as eina_str_has_suffix(), except it's case * insensitive. */ EAPI Eina_Bool eina_str_has_extension(const char *str, const char *ext) EINA_PURE EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT; /** * @brief Split a string using a delimiter. * * @param string The string to split. * @param delimiter The string which specifies the places at which to split the string. * @param max_tokens The maximum number of strings to split string into, or a number less * than 1 to split as many times as possible. This parameter * IGNORES the added @c NULL terminator. * @return A newly-allocated NULL-terminated array of strings or @c NULL if it * fails to allocate the array. * * This function splits @p string into a maximum of @p max_tokens pieces, * using the given delimiter @p delimiter. @p delimiter is not included in any * of the resulting strings, unless @p max_tokens is reached. If * @p max_tokens is less than @c 1, the string is splitted as many times as possible. If * @p max_tokens is reached, the last string in the returned string * array contains the remainder of string. The returned value is a * newly allocated NULL-terminated array of strings or @c NULL if it fails to * allocate the array. To free it, free the first element of the array and the * array itself. * * @note If you need the number of elements in the returned array see * eina_str_split_full(). */ EAPI char **eina_str_split(const char *string, const char *delimiter, int max_tokens) EINA_ARG_NONNULL(1, 2) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Split a string using a delimiter and returns number of elements. * * @param string The string to split. * @param delimiter The string which specifies the places at which to split the string. * @param max_tokens The maximum number of strings to split string into, or a number less * than 1 to split as many times as possible. This parameter * IGNORES the added @c NULL terminator. * @param elements Where to return the number of elements in returned * array. This array is guaranteed to be no greater than @p max_tokens, and * it will NOT count the @c NULL terminator element. * @return A newly-allocated NULL-terminated array of strings or @c NULL if it * fails to allocate the array. * * This function splits @p string into a maximum of @p max_tokens pieces, * using the given delimiter @p delimiter. @p delimiter is not included in any * of the resulting strings, unless @p max_tokens is reached. If * @p max_tokens is less than @c 1, the string is splitted as many times as possible. If * @p max_tokens is reached, the last string in the returned string * array contains the remainder of string. The returned value is a * newly allocated NULL-terminated array of strings or @c NULL if it fails to * allocate the array. To free it, free the first element of the array and the * array itself. * * @note The actual size of the returned array, when @p elements returns greater than zero, * will always be @p elements + 1. This is due to the @c NULL terminator element that * is added to the array for safety. If it returns @c 6, the number of split strings returned * will be 6, but the size of the array (including the @c NULL element) will actually be 7. * * @see eina_str_split() */ EAPI char **eina_str_split_full(const char *string, const char *delimiter, int max_tokens, unsigned int *elements) EINA_ARG_NONNULL(1, 2, 4) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Join two strings of known length. * * @param dst The buffer to store the result. * @param size Size (in byte) of the buffer. * @param sep The separator character to use. * @param a First string to use, before @p sep. * @param a_len length of @p a. * @param b Second string to use, after @p sep. * @param b_len length of @p b. * @return The number of characters printed. * * This function joins the strings @p a and @p b (in that order) and * separate them with @p sep. The result is stored in the buffer * @p dst and at most @p size - 1 characters will be written and the * string is NULL-terminated. @p a_len is the length of @p a (not * including '\\0') and @p b_len is the length of @p b (not including * '\\0'). This function returns the number of characters printed (not * including the trailing '\\0' used to end output to strings). Just * like snprintf(), it will not write more than @p size bytes, thus a * returned value of @p size or more means that the output was * truncated. * * @see eina_str_join() * @see eina_str_join_static() */ EAPI size_t eina_str_join_len(char *dst, size_t size, char sep, const char *a, size_t a_len, const char *b, size_t b_len) EINA_ARG_NONNULL(1, 4, 6); /** * @brief Use Iconv to convert a text string from one encoding to another. * * @param enc_from Encoding to convert from. * @param enc_to Encoding to convert to. * @param text The text to convert. * @return The converted text. * * This function converts @p text, encoded in @p enc_from. On success, * the converted text is returned and is encoded in @p enc_to. On * failure, @c NULL is returned. Iconv is used to convert @p text. If * Iconv is not available, @c NULL is returned. When not used anymore, * the returned value must be freed. */ EAPI char *eina_str_convert(const char *enc_from, const char *enc_to, const char *text) EINA_WARN_UNUSED_RESULT EINA_MALLOC EINA_ARG_NONNULL(1, 2, 3); /** * @brief Escape slashes, spaces and apostrophes in strings. * * @param str The string to escape. * @return The escaped string. * * Escaping is done by adding a slash "\" before any occurrence of slashes "\", * spaces " " or apostrophes "'". This function returns a newly allocated * escaped string on success, @c NULL on failure. When not used anymore, the * returned value must be freed. */ EAPI char *eina_str_escape(const char *str) EINA_WARN_UNUSED_RESULT EINA_MALLOC EINA_ARG_NONNULL(1); /** * @brief Lowercase all the characters in range [A-Z] in the given string. * * @param str The string to lowercase. * * This function modifies the original string, changing all characters * in [A-Z] to lowercase. If @p str is @c NULL or is an empty string, * this function does nothing. */ EAPI void eina_str_tolower(char **str); /** * @brief Uppercase all the characters in range [a-z] in the given string. * * @param str The string to uppercase. * * This function modifies the original string, changing all characters * in [a-z] to uppercase. If @p str is @c NULL or is an empty string, * this function does nothing. */ EAPI void eina_str_toupper(char **str); static inline size_t eina_str_join(char *dst, size_t size, char sep, const char *a, const char *b) EINA_ARG_NONNULL(1, 4, 5); /** * @def eina_str_join_static(dst, sep, a, b) * @brief Join two static strings and store the result in a static buffer. * * @param dst The buffer to store the result. * @param sep The separator character to use. * @param a First string to use, before @p sep. * @param b Second string to use, after @p sep. * @return The number of characters printed. * * This function is similar to eina_str_join_len(), but will assume * string sizes are know using sizeof(X). * * @see eina_str_join() * @see eina_str_join_static() */ #define eina_str_join_static(dst, sep, a, b) eina_str_join_len(dst, sizeof(dst), sep, a, (sizeof(a) > 0) ? sizeof(a) - 1 : 0, b, (sizeof(b) > 0) ? sizeof(b) - 1 : 0) static inline size_t eina_strlen_bounded(const char *str, size_t maxlen) EINA_PURE EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); #include "eina_inline_str.x" /** * @} */ /** * @} */ #endif /* EINA_STR_H */ eina-1.7.10/src/include/eina_strbuf.h0000664000175000017500000005243512175475327014351 00000000000000#ifndef EINA_STRBUF_H #define EINA_STRBUF_H #include #include #include "eina_types.h" /** * @page tutorial_strbuf Eina_Strbuf example * @dontinclude eina_strbuf_01.c * * First thing always is including Eina: * @skipline #include * @until #include * * Next we initialize eina and create a string buffer to play with: * @until strbuf_new * * Here you can see two different ways of creating a buffer with the same * contents. We could create them in simpler ways, but this gives us an * opportunity to demonstrate several functions in action: * @until strbuf_reset * @until strbuf_reset * * Next we use the printf family of functions to create a formated string, * add, remove and replace some content: * @until strbuf_string_get * @until strbuf_string_get * @until strbuf_string_get * * Once done we free our string buffer, shut down Eina and end the application: * @until } * * @example eina_strbuf_01.c */ /** * @addtogroup Eina_String_Buffer_Group String Buffer * * @brief These functions provide string buffers management. * * The String Buffer data type is designed to be a mutable string, * allowing to append, prepend or insert a string to a buffer. * * For more information see @ref tutorial_strbuf "this example". */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @defgroup Eina_String_Buffer_Group String Buffer * * @{ */ /** * @typedef Eina_Strbuf * Type for a string buffer. */ typedef struct _Eina_Strbuf Eina_Strbuf; /** * @brief Create a new string buffer. * * @return Newly allocated string buffer instance. * * This function creates a new string buffer. On error, @c NULL is * returned and Eina error is set to #EINA_ERROR_OUT_OF_MEMORY. To * free the resources, use eina_strbuf_free(). * * @see eina_strbuf_free() * @see eina_strbuf_append() * @see eina_strbuf_string_get() */ EAPI Eina_Strbuf *eina_strbuf_new(void) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Create a new string buffer using the passed string. The passed * string is used directly as the buffer, it's somehow the opposite function of * @ref eina_strbuf_string_steal . The passed string must be malloced. * * @param str the string to manage * @return Newly allocated string buffer instance. * * This function creates a new string buffer. On error, @c NULL is * returned and Eina error is set to #EINA_ERROR_OUT_OF_MEMORY. To * free the resources, use eina_strbuf_free(). * * @see eina_strbuf_free() * @see eina_strbuf_append() * @see eina_strbuf_string_get() * @since 1.1.0 */ EAPI Eina_Strbuf *eina_strbuf_manage_new(char *str) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Create a new string buffer using the passed string. The passed * string is used directly as the buffer, it's somehow the opposite function of * @ref eina_strbuf_string_steal . The passed string must be malloced. * * @param str the string to manage * @param length the length of the string. * @return Newly allocated string buffer instance. * * This function creates a new string buffer. On error, @c NULL is * returned and Eina error is set to #EINA_ERROR_OUT_OF_MEMORY. To * free the resources, use eina_strbuf_free(). * * @see eina_strbuf_manage_new() * @since 1.2.0 */ EAPI Eina_Strbuf *eina_strbuf_manage_new_length(char *str, size_t length) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Free a string buffer. * * @param buf The string buffer to free. * * This function frees the memory of @p buf. @p buf must have been * created by eina_strbuf_new(). */ EAPI void eina_strbuf_free(Eina_Strbuf *buf) EINA_ARG_NONNULL(1); /** * @brief Reset a string buffer. * * @param buf The string buffer to reset. * * This function reset @p buf: the buffer len is set to 0, and the * string is set to '\\0'. No memory is free'd. */ EAPI void eina_strbuf_reset(Eina_Strbuf *buf) EINA_ARG_NONNULL(1); /** * @brief Append a string to a buffer, reallocating as necessary. * * @param buf The string buffer to append to. * @param str The string to append. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function appends @p str to @p buf. It computes the length of * @p str, so is slightly slower than eina_strbuf_append_length(). If * the length is known beforehand, consider using that variant. If * @p buf can't append it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. * * @see eina_strbuf_append() * @see eina_strbuf_append_length() */ EAPI Eina_Bool eina_strbuf_append(Eina_Strbuf *buf, const char *str) EINA_ARG_NONNULL(1, 2); /** * @brief Append an escaped string to a buffer, reallocating as necessary. * * @param buf The string buffer to append to. * @param str The string to append. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function escapes and then appends the string @p str to @p buf. If @p str * can not be appended, #EINA_FALSE is returned, otherwise, #EINA_TRUE is * returned. */ EAPI Eina_Bool eina_strbuf_append_escaped(Eina_Strbuf *buf, const char *str) EINA_ARG_NONNULL(1, 2); /** * @brief Append a string to a buffer, reallocating as necessary, * limited by the given length. * * @param buf The string buffer to append to. * @param str The string to append. * @param maxlen The maximum number of characters to append. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function appends at most @p maxlen characters of @p str to * @p buf. It can't append more than the length of @p str. It * computes the length of @p str, so it is slightly slower than * eina_strbuf_append_length(). If the length is known beforehand, * consider using that variant (@p maxlen should then be checked so * that it is greater than the size of @p str). If @p str can not be * appended, #EINA_FALSE is returned, otherwise, #EINA_TRUE is * returned. * * @see eina_strbuf_append() * @see eina_strbuf_append_length() */ EAPI Eina_Bool eina_strbuf_append_n(Eina_Strbuf *buf, const char *str, size_t maxlen) EINA_ARG_NONNULL(1, 2); /** * @brief Append a string of exact length to a buffer, reallocating as necessary. * * @param buf The string buffer to append to. * @param str The string to append. * @param length The exact length to use. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function appends @p str to @p buf. @p str must be of size at * most @p length. It is slightly faster than eina_strbuf_append() as * it does not compute the size of @p str. It is useful when dealing * with strings of known size, such as eina_stringshare. If @p buf * can't append it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. * * @see eina_stringshare_length() * @see eina_strbuf_append() * @see eina_strbuf_append_n() */ EAPI Eina_Bool eina_strbuf_append_length(Eina_Strbuf *buf, const char *str, size_t length) EINA_ARG_NONNULL(1, 2); /** * @brief Append a character to a string buffer, reallocating as * necessary. * * @param buf The string buffer to append to. * @param c The char to append. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p c to @p buf. If it can not insert it, #EINA_FALSE * is returned, otherwise #EINA_TRUE is returned. */ EAPI Eina_Bool eina_strbuf_append_char(Eina_Strbuf *buf, char c) EINA_ARG_NONNULL(1); /** * @brief Append a string to a buffer, reallocating as necessary. * * @param buf The string buffer to append to. * @param fmt The string to append. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function appends the string defined by the format @p fmt to @p buf. @p * fmt must be of a valid format for printf family of functions. If it can't * insert it, #EINA_FALSE is returned, otherwise #EINA_TRUE is returned. * * @see eina_strbuf_append() */ EAPI Eina_Bool eina_strbuf_append_printf(Eina_Strbuf *buf, const char *fmt, ...) EINA_ARG_NONNULL(1, 2) EINA_PRINTF(2, 3); /** * @brief Append a string to a buffer, reallocating as necessary. * * @param buf The string buffer to append to. * @param fmt The string to append. * @param args The variable arguments. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * @see eina_strbuf_append_printf() */ EAPI Eina_Bool eina_strbuf_append_vprintf(Eina_Strbuf *buf, const char *fmt, va_list args) EINA_ARG_NONNULL(1, 2); /** * @brief Insert a string to a buffer, reallocating as necessary. * * @param buf The string buffer to insert. * @param str The string to insert. * @param pos The position to insert the string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p str to @p buf at position @p pos. It * computes the length of @p str, so is slightly slower than * eina_strbuf_insert_length(). If the length is known beforehand, * consider using that variant. If @p buf can't insert it, #EINA_FALSE * is returned, otherwise #EINA_TRUE is returned. */ EAPI Eina_Bool eina_strbuf_insert(Eina_Strbuf *buf, const char *str, size_t pos) EINA_ARG_NONNULL(1, 2); /** * @brief Insert an escaped string to a buffer, reallocating as * necessary. * * @param buf The string buffer to insert to. * @param str The string to insert. * @param pos The position to insert the string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function escapes and inserts the string @p str to @p buf at * position @p pos. If @p buf can't insert @p str, #EINA_FALSE is * returned, otherwise #EINA_TRUE is returned. */ EAPI Eina_Bool eina_strbuf_insert_escaped(Eina_Strbuf *buf, const char *str, size_t pos) EINA_ARG_NONNULL(1, 2); /** * @brief Insert a string to a buffer, reallocating as necessary. Limited by maxlen. * * @param buf The string buffer to insert to. * @param str The string to insert. * @param maxlen The maximum number of chars to insert. * @param pos The position to insert the string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p str to @p buf at position @p pos, with at * most @p maxlen bytes. The number of inserted characters can not be * greater than the length of @p str. It computes the length of * @p str, so is slightly slower than eina_strbuf_insert_length(). If the * length is known beforehand, consider using that variant (@p maxlen * should then be checked so that it is greater than the size of * @p str). If @p str can not be inserted, #EINA_FALSE is returned, * otherwise, #EINA_TRUE is returned. */ EAPI Eina_Bool eina_strbuf_insert_n(Eina_Strbuf *buf, const char *str, size_t maxlen, size_t pos) EINA_ARG_NONNULL(1, 2); /** * @brief Insert a string of exact length to a buffer, reallocating as necessary. * * @param buf The string buffer to insert to. * @param str The string to insert. * @param length The exact length to use. * @param pos The position to insert the string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p str to @p buf. @p str must be of size at * most @p length. It is slightly faster than eina_strbuf_insert() as * it does not compute the size of @p str. It is useful when dealing * with strings of known size, such as eina_strngshare. If @p buf * can't insert it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. * * @see eina_stringshare_length() * @see eina_strbuf_insert() * @see eina_strbuf_insert_n() */ EAPI Eina_Bool eina_strbuf_insert_length(Eina_Strbuf *buf, const char *str, size_t length, size_t pos) EINA_ARG_NONNULL(1, 2); /** * @brief Insert a character to a string buffer, reallocating as * necessary. * * @param buf The string buffer to insert to. * @param c The char to insert. * @param pos The position to insert the char. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p c to @p buf at position @p pos. If @p buf * can't append it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ EAPI Eina_Bool eina_strbuf_insert_char(Eina_Strbuf *buf, char c, size_t pos) EINA_ARG_NONNULL(1); /** * @brief Insert a string to a buffer, reallocating as necessary. * * @param buf The string buffer to insert. * @param fmt The string to insert. * @param pos The position to insert the string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function insert a string as described by the format @p fmt to @p buf at * the position @p pos. @p fmt must be of a valid format for printf family of * functions. If it can't insert it, #EINA_FALSE is returned, * otherwise #EINA_TRUE is returned. */ EAPI Eina_Bool eina_strbuf_insert_printf(Eina_Strbuf *buf, const char *fmt, size_t pos, ...) EINA_ARG_NONNULL(1, 2) EINA_PRINTF(2, 4); /** * @brief Insert a string to a buffer, reallocating as necessary. * * @param buf The string buffer to insert. * @param fmt The string to insert. * @param pos The position to insert the string. * @param args The variable arguments. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * @see eina_strbuf_insert_printf */ EAPI Eina_Bool eina_strbuf_insert_vprintf(Eina_Strbuf *buf, const char *fmt, size_t pos, va_list args) EINA_ARG_NONNULL(1, 2); /** * @def eina_strbuf_prepend(buf, str) * @brief Prepend the given string to the given buffer * * @param buf The string buffer to prepend to. * @param str The string to prepend. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_strbuf_insert() at position 0. If @p buf * can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ #define eina_strbuf_prepend(buf, str) eina_strbuf_insert(buf, str, 0) /** * @def eina_strbuf_prepend_escaped(buf, str) * @brief Prepend the given escaped string to the given buffer * * @param buf The string buffer to prepend to. * @param str The string to prepend. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_strbuf_insert_escaped() at position 0. If * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ #define eina_strbuf_prepend_escaped(buf, str) eina_strbuf_insert_escaped(buf, str, 0) /** * @def eina_strbuf_prepend_n(buf, str) * @brief Prepend the given escaped string to the given buffer * * @param buf The string buffer to prepend to. * @param str The string to prepend. * @param maxlen The maximum number of chars to prepend. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_strbuf_insert_n() at position 0. If * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ #define eina_strbuf_prepend_n(buf, str, maxlen) eina_strbuf_insert_n(buf, str, maxlen, 0) /** * @def eina_strbuf_prepend_length(buf, str) * @brief Prepend the given escaped string to the given buffer * * @param buf The string buffer to prepend to. * @param str The string to prepend. * @param length The exact length to use. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_strbuf_insert_length() at position 0. If * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ #define eina_strbuf_prepend_length(buf, str, length) eina_strbuf_insert_length(buf, str, length, 0) /** * @def eina_strbuf_prepend_char(buf, str) * @brief Prepend the given character to the given buffer * * @param buf The string buffer to prepend to. * @param c The character to prepend. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_strbuf_insert_char() at position 0. If * @p buf can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE * is returned. */ #define eina_strbuf_prepend_char(buf, c) eina_strbuf_insert_char(buf, c, 0) /** * @def eina_strbuf_prepend_printf(buf, fmt, ...) * @brief Prepend the given string to the given buffer * * @param buf The string buffer to prepend to. * @param fmt The string to prepend. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_strbuf_insert_printf() at position 0. If @p buf * can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ #define eina_strbuf_prepend_printf(buf, fmt, ...) eina_strbuf_insert_printf(buf, fmt, 0, ## __VA_ARGS__) /** * @def eina_strbuf_prepend_vprintf(buf, fmt, args) * @brief Prepend the given string to the given buffer * * @param buf The string buffer to prepend to. * @param fmt The string to prepend. * @param args The variable arguments. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_strbuf_insert_vprintf() at position 0.If @p buf * can't prepend it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ #define eina_strbuf_prepend_vprintf(buf, fmt, args) eina_strbuf_insert_vprintf(buf, fmt, 0, args) /** * @brief Remove a slice of the given string buffer. * * @param buf The string buffer to remove a slice. * @param start The initial (inclusive) slice position to start * removing, in bytes. * @param end The final (non-inclusive) slice position to finish * removing, in bytes. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function removes a slice of @p buf, starting at @p start * (inclusive) and ending at @p end (non-inclusive). Both values are * in bytes. It returns #EINA_FALSE on failure, #EINA_TRUE otherwise. */ EAPI Eina_Bool eina_strbuf_remove(Eina_Strbuf *buf, size_t start, size_t end) EINA_ARG_NONNULL(1); /** * @brief Retrieve a pointer to the contents of a string buffer * * @param buf The string buffer. * @return The current string in the string buffer. * * This function returns the string contained in @p buf. The returned * value must not be modified and will no longer be valid if @p buf is * modified. In other words, any eina_strbuf_append() or similar will * make that pointer invalid. The pointer returned by this function must * not be freed. * * @see eina_strbuf_string_steal() */ EAPI const char *eina_strbuf_string_get(const Eina_Strbuf *buf) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Steal the contents of a string buffer. * * @param buf The string buffer to steal. * @return The current string in the string buffer. * * This function returns the string contained in @p buf. @p buf is * then initialized and does not own the returned string anymore. The * caller must release the memory of the returned string by calling * free(). * * @see eina_strbuf_string_get() */ EAPI char *eina_strbuf_string_steal(Eina_Strbuf *buf) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @brief Free the contents of a string buffer but not the buffer. * * @param buf The string buffer to free the string of. * * This function frees the string contained in @p buf without freeing * @p buf. */ EAPI void eina_strbuf_string_free(Eina_Strbuf *buf) EINA_ARG_NONNULL(1); /** * @brief Retrieve the length of the string buffer content. * * @param buf The string buffer. * @return The current length of the string, in bytes. * * This function returns the length of @p buf. */ EAPI size_t eina_strbuf_length_get(const Eina_Strbuf *buf) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Replace the n-th string with an other string. * * @param buf The string buffer to work with. * @param str The string to replace. * @param with The replaceing string. * @param n The number of the fitting string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function replaces the n-th occurrence of @p str in @p buf with * @p with. It returns #EINA_FALSE on failure, #EINA_TRUE otherwise. */ EAPI Eina_Bool eina_strbuf_replace(Eina_Strbuf *buf, const char *str, const char *with, unsigned int n) EINA_ARG_NONNULL(1, 2, 3); /** * @def eina_strbuf_replace_first(buf, str, with) * @brief Prepend the given character to the given buffer * * @param buf The string buffer to work with. * @param str The string to replace. * @param with The replaceing string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This macro is calling eina_strbuf_replace() with the n-th occurrence * equal to @c 1. If @p buf can't replace it, #EINA_FALSE is returned, * otherwise #EINA_TRUE is returned. */ #define eina_strbuf_replace_first(buf, str, with) eina_strbuf_replace(buf, str, with, 1) /** * @brief Replace all strings with an other string. * @param buf the string buffer to work with. * @param str The string to replace. * @param with The replaceing string. * @return How often the string was replaced. * * This function replaces all the occurrences of @p str in @p buf with * the string @p with. This function returns the number of times @p str * has been replaced. On failure, it returns @c 0. */ EAPI int eina_strbuf_replace_all(Eina_Strbuf *buf, const char *str, const char *with) EINA_ARG_NONNULL(1, 2, 3); /** * @brief Trim the string buffer * @param buf the string buffer to work with. * * This function skips whitespaces in the beginning and the end of the buffer. */ EAPI void eina_strbuf_trim(Eina_Strbuf *buf) EINA_ARG_NONNULL(1); /** * @brief Left trim the string buffer * @param buf the string buffer to work with. * * This function skips whitespaces in the beginning of the buffer. */ EAPI void eina_strbuf_ltrim(Eina_Strbuf *buf) EINA_ARG_NONNULL(1); /** * @brief Right trim the string buffer * @param buf the string buffer to work with. * * This function skips whitespaces in the end of the buffer. */ EAPI void eina_strbuf_rtrim(Eina_Strbuf *buf) EINA_ARG_NONNULL(1); /** * @} */ /** * @} */ /** * @} */ #endif /* EINA_STRBUF_H */ eina-1.7.10/src/include/eina_value.h0000664000175000017500000034674312175475327014170 00000000000000/* EINA - EFL data type library * Copyright (C) 2012 ProFUSION embedded systems * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_VALUE_H_ #define EINA_VALUE_H_ #include #include "eina_types.h" #include "eina_fp.h" /* defines int64_t and uint64_t */ #include "eina_inarray.h" #include "eina_list.h" #include "eina_hash.h" /** * @page eina_value_example_01_page Eina_Value usage * @dontinclude eina_value_01.c * * This very simple example shows how to use some of the basic features of eina * value: setting and getting values, converting between types and printing a * value as a string. * * Our main function starts out with the basic, declaring some variables and * initializing eina: * @until eina_init * * Now we can jump into using eina value. We set a value, get this value and * then print it: * @until printf * * In the above snippet of code we printed an @c int value, we can however print * the value as a string: * @until free * * And once done with a value it's good practice to destroy it: * @until eina_value_flush * * We now reuse @c v to store a string, get its value and print it: * @until printf * @note Since @c s is the value and not returned by @c eina_value_to_string() * we don't need to free it. * * Just because we stored a string doesn't mean we can't use the @c * eina_value_to_string() function, we can and it's important to note that it * will return not the stored string but rather a copy of it(one we have to * free): * @until eina_value_flush * * And now to explore conversions between two type we'll create another value: * @until eina_value_setup * * And make sure @c v and @c otherv have different types: * @until eina_value_setup * * We then set a value to @c v and have it converted, to do this we don't need * to tell to which type we want to convert, we just say were we want to store * the converted value and eina value will figure out what to convert to, and * how: * @until eina_value_convert * * And now let's check the conversion worked: * @until printf * * But converting to strings is not particularly exciting, @c * eina_value_to_string() already did that, so now let's make the conversion the * other way around, from string to @c int: * @until printf * * And once done, destroy the values: * @until } * * Full source code: @ref eina_value_01_c */ /** * @page eina_value_01_c eina_value_01.c * @include eina_value_01.c * @example eina_value_01.c */ /** * @page eina_value_example_02_page Eina_Value struct usage * @dontinclude eina_value_02.c * * This example will examine a hypothetical situation in which we had a * structure(which represented parameters) with two fields, and then need to add * a third field to our structure. If using structs directly we'd need to * rewrite every piece of code that touches the struct, by using eina value, and * thus having the compiler not even know the struct, we can reduce the amount * of changes needed and retain interoperability between the old and new format. * * Our example will start with a function that creates descriptions of both of * our structs for eina value usage. The first step is to create a struct and * describe its members: * @until v1_members[1] * @note We can't pass the types of the members to EINA_VALUE_STRUCT_MEMBER * macro because they are not constant initializers. * * So far it should be pretty easy to understand, we said @c My_Struct_V1 has * two members, one of type @c int and another of type @c char. We now create * the description of the actual struct, again nothing overly complex, we signal * which version of EINA_VALUE_STRUCT we're using, we declare no special * operations, our members and our size: * @until V1_DESC * * We now repeat the process for the second version of our struct, the only * difference is the addition of a third parameter of type @c int : * @until V2_DESC * @until } * * We'll now look at a function that sets the values of our structs. For * simplicity's sake we initialize it we random values, a real world case would * read these values from a file, a database or even from the network. The * fundamental detail here is that this function works for both V1 and V2 * structs, this is because setting a parameter that a struct that doesn't have * does nothing without throwing any errors: * @until } * @note While using eina_value_struct_set() with an in-existing parameter * causes no error, it does return #EINA_FALSE, to notify it was not possible * to set the value. This could be used to determine that we're handling a V1 * struct and take some action based on that. * * The next thing is to do is see what a function that uses the values of the * struct looks like. We'll again be very simplistic in our usage, we'll just * print the values, but a real world case, might send these values to another * process use them to open a network/database connection or anything else. * Since all versions of the struct have @c param1 and @c param2 we'll * unconditionally use them: * @until printf * * The next step is to conditionally use @c param3, which can fortunately be * done in the same step in which we get it's value: * @until } * * There we've now got functions that can both populate and use values from both * our structs, so now let's actually use them in our main function by creating * a struct of each type, initializing them and them using them: * @until } * * This concludes our example. For the full source code see @ref * eina_value_02_c. */ /** * @page eina_value_02_c eina_value_02.c * @include eina_value_02.c * @example eina_value_02.c */ /** * @page eina_value_example_03_page Eina value custom type example * @dontinclude eina_value_03.c * * For this example we'll be creating our own custom type of eina value. Eina * value can already store struct timeval(man gettimeofday for more information) * but it has no type to store struct timezone, so that's what this example will * do. * @note struct timezone is actually obsolete, so using it in real world * programs is probably not a good idea, but this is an example so, bear with * us. * * To create our own custom eina value type we need to define functions to * do the following operations on it: * @li Setup * @li Flush * @li Copy * @li Compare * @li Set * @li Get * @li Conversion * * Most of this functions are very simple, so let's look at them, starting with * setup which only clear the memory so that we can be certain we won't be using * stale data: * @until } * * Now the flush function, which is even simpler, it does nothing, that's * because there is nothing we need to do, all the necessary steps are taken by * eina value itself: * @until } * * Our next function, copy, is a bit more interesting, but not much, it just * casts our void pointers to struct timezone pointers and does the copy: * @until } * @note By now you might be wondering why our functions receive void pointers * instead of pointers to struct timezone, and this is a good point. The reason * for this is that eina value doesn't know anything about our type so it must * use a generic void pointer, casting that pointer into a proper value is the * job of the implementor of the new type. * * Next we have the comparison function, which compares the @c tz_minuteswest * field of struct timezone, we don't compare @c tz_dsttime because that field * is not used in linux: * @until } * * Next we have setting, this however requires not one but rather two functions, * the reason for this is because to be able to receive arguments of any type * eina value uses * variadic functions, so we need a function to get the argument from a * va_list and another to actually to the setting. * * Lets first look at the pset function which sets the received value to a * pointer: * @until } * * Next we have the vset function which get the argument from the va_list and * passes it to the pset function: * @until } * * And now the function to get the value, a very simple copying of the value to * the given pointer: * @until } * * And finally our conversion function, this is our longest and most interesting * one. For numeric type we simply assign the value of @c tz_minuteswest to the * new type and call a set function using it: * @until EINA_VALUE_TYPE_DOUBLE * @until return * @note It would be a good idea to add checks for over and underflow for these * types and return #EINA_FALSE in thoses cases, we omit this here for brevity. * * For string types we use @c snprintf() to format our @c tz_minuteswest field * and put it in a string(again @c tz_dsttime is ignored because it's not used): * @until } * * Finally we handle any other types by returning an error in that case: * @until } * * Now that we have all the functions, we can populate an @c Eina_Value_Type to * later use it with @c eina_value_setup(): * @until } * * We can now finally use our new TZ_TYPE with eina value, so lets conclude our * example by practicing that by setting its value and printing it: * @until } * * For the full source code see @ref eina_value_03_c. */ /** * @page eina_value_03_c eina_value_03.c * @include eina_value_03.c * @example eina_value_03.c */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @since 1.2 * * @{ */ /** * @addtogroup Eina_Containers_Group Containers * * @{ */ /** * @defgroup Eina_Value_Group Generic Value Storage * * Abstracts generic data storage and access to it in an extensible * and efficient way. * * It comes with pre-defined types for numbers, array, list, hash, * blob and structs. It is able to convert between data types, * including to string. * * It is meant for simple data types, providing uniform access and * release functions, useful to exchange data preserving their * types. For more complex hierarchical data, with properties and * children, reference counting, inheritance and interfaces, * * Examples of usage of the Eina_Value API: * @li @ref eina_value_example_01_page * @li @ref eina_value_example_02_page * @li @ref eina_value_example_03_page * * @{ */ /** * @typedef Eina_Value * Store generic values. * * @since 1.2 */ typedef struct _Eina_Value Eina_Value; /** * @typedef Eina_Value_Type * Describes the data contained by the value * * @since 1.2 */ typedef struct _Eina_Value_Type Eina_Value_Type; /** * @typedef Eina_Value_Union * Union of all known value types. * * This is only used to specify the minimum payload memory for #Eina_Value. * * @internal * @since 1.2 */ typedef union _Eina_Value_Union Eina_Value_Union; /** * @union _Eina_Value_Union * All possible value types. * * This is only used to specify the minimum payload memory for #Eina_Value. * * @internal * @since 1.2 */ union _Eina_Value_Union { unsigned char buf[8]; /**< just hold 8-bytes, more goes into ptr */ void *ptr; /**< used as generic pointer */ uint64_t _guarantee; /**< guarantees 8-byte alignment */ }; /** * @var EINA_VALUE_TYPE_UCHAR * manages unsigned char type. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_UCHAR; /** * @var EINA_VALUE_TYPE_USHORT * manages unsigned short type. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_USHORT; /** * @var EINA_VALUE_TYPE_UINT * manages unsigned int type. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_UINT; /** * @var EINA_VALUE_TYPE_ULONG * manages unsigned long type. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_ULONG; /** * @var EINA_VALUE_TYPE_TIMESTAMP * manages unsigned long type used for timestamps. * @note this is identical in function to EINA_VALUE_TYPE_ULONG * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_TIMESTAMP; /** * @var EINA_VALUE_TYPE_UINT64 * manages unsigned integer of 64 bits type. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_UINT64; /** * @var EINA_VALUE_TYPE_CHAR * manages char type. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_CHAR; /** * @var EINA_VALUE_TYPE_SHORT * manages short type. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_SHORT; /** * @var EINA_VALUE_TYPE_INT * manages int type. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_INT; /** * @var EINA_VALUE_TYPE_LONG * manages long type. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_LONG; /** * @var EINA_VALUE_TYPE_INT64 * manages integer of 64 bits type. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_INT64; /** * @var EINA_VALUE_TYPE_FLOAT * manages float type. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_FLOAT; /** * @var EINA_VALUE_TYPE_DOUBLE * manages double type. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_DOUBLE; /** * @var EINA_VALUE_TYPE_STRINGSHARE * manages stringshared string type. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_STRINGSHARE; /** * @var EINA_VALUE_TYPE_STRING * manages string type. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_STRING; /** * @var EINA_VALUE_TYPE_ARRAY * * manages array type. Use the value get/set for arrays: * @li eina_value_array_get() and eina_value_array_set() * @li eina_value_array_vget() and eina_value_array_vset() * @li eina_value_array_pget() and eina_value_array_pset() * * eina_value_set() takes an #Eina_Value_Array where just @c subtype * and @c step are used. If there is an @c array, it will be copied * (including each item) and its contents must be properly * configurable as @c subtype expects. eina_value_pset() takes a * pointer to an #Eina_Value_Array. For your convenience, use * eina_value_array_setup(). * * eina_value_get() and eina_value_pget() takes a pointer * to #Eina_Value_Array, it's an exact copy of the current structure in * use by value, no copies are done. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_ARRAY; /** * @var EINA_VALUE_TYPE_LIST * * manages list type. Use the value get/set for lists: * @li eina_value_list_get() and eina_value_list_set() * @li eina_value_list_vget() and eina_value_list_vset() * @li eina_value_list_pget() and eina_value_list_pset() * * eina_value_set() takes an #Eina_Value_List where just @c subtype is * used. If there is an @c list, it will be copied (including each * item) and its contents must be properly configurable as @c * subtype expects. eina_value_pset() takes a pointer to an #Eina_Value_List. * For your convenience, use eina_value_list_setup(). * * eina_value_get() and eina_value_pget() takes a pointer to #Eina_Value_List, * it's an exact copy of the current structure in use by value, no copies are * done. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_LIST; /** * @var EINA_VALUE_TYPE_HASH * * manages hash type. Use the value get/set for hashes: * @li eina_value_hash_get() and eina_value_hash_set() * @li eina_value_hash_vget() and eina_value_hash_vset() * @li eina_value_hash_pget() and eina_value_hash_pset() * * eina_value_set() takes an #Eina_Value_Hash where just @c subtype * and @c buckets_power_size are used. If there is an @c hash, it will * be copied (including each item) and its contents must be * properly configurable as @c subtype expects. eina_value_pset() * takes a pointer to an #Eina_Value_Hash. For your convenience, use * eina_value_hash_setup(). * * eina_value_get() and eina_value_pget() takes a pointer to #Eina_Value_Hash, * it's an exact copy of the current structure in use by value, no copies are * done. * * @note be aware that hash data is always an allocated memory of size * defined by @c subtype->value_size. If your @c subtype is an * integer, add as data malloc(sizeof(int)). If your @c subtype * is an string, add as data malloc(sizeof(char*)) and this data * value must point to strdup(string)! * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_HASH; /** * @var EINA_VALUE_TYPE_TIMEVAL * manages 'struct timeval' type * * eina_value_set() takes a "struct timeval" from sys/time.h. * eina_value_pset() takes a pointer to "struct timeval". * * eina_value_get() and eina_value_pget() takes a pointer to "struct * timeval" and it's an exact copy of value. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_TIMEVAL; /** * @var EINA_VALUE_TYPE_BLOB * manages blob of bytes type, see @ref Eina_Value_Blob * * eina_value_set() takes an #Eina_Value_Blob * eina_value_pset() takes a pointer to #Eina_Value_Blob. * * eina_value_get() and eina_value_pget() takes a pointer to #Eina_Value_Blob * and it's an exact copy of value, no allocations are made. * * Memory is untouched unless you provide @c ops (operations) pointer. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_BLOB; /** * @var EINA_VALUE_TYPE_STRUCT * * manages struct type. Use the value get/set for structs: * @li eina_value_struct_get() and eina_value_struct_set() * @li eina_value_struct_vget() and eina_value_struct_vset() * @li eina_value_struct_pget() and eina_value_struct_pset() * * eina_value_set() takes an #Eina_Value_Struct where just @c desc is * used. If there is an @c memory, it will be copied (including each * member) and its contents must be properly configurable as @c desc * expects. eina_value_pset() takes a pointer to an #Eina_Value_Struct. For * your convenience, use eina_value_struct_setup(). * * eina_value_get() and eina_value_pget() takes a pointer * to #Eina_Value_Struct, it's an exact copy of the current structure in * use by value, no copies are done. * * @since 1.2 */ EAPI extern const Eina_Value_Type *EINA_VALUE_TYPE_STRUCT; /** * @var EINA_ERROR_VALUE_FAILED * Error identifier corresponding to value check failure. * * @since 1.2 */ EAPI extern int EINA_ERROR_VALUE_FAILED; /** * @defgroup Eina_Value_Value_Group Generic Value management * * @{ */ /** * @struct _Eina_Value * defines the contents of a value * * @since 1.2 */ struct _Eina_Value { const Eina_Value_Type *type; /**< how to access values */ Eina_Value_Union value; /**< to be accessed with type descriptor */ }; /** * @brief Create generic value storage. * @param type how to manage this value. * @return The new value or @c NULL on failure. * * Create a new generic value storage. The members are managed using * the description specified by @a type. * * Some types may specify more operations: * eg. #EINA_VALUE_TYPE_ARRAY uses eina_value_array_set(), * eina_value_array_get() and so on. * * On failure, @c NULL is returned and either #EINA_ERROR_OUT_OF_MEMORY * or #EINA_ERROR_VALUE_FAILED is set. * * @note this calls creates from mempool and then uses * eina_value_setup(). Consider using eina_value_flush() and * eina_value_setup() instead to avoid memory allocations. * * @see eina_value_free() * * @since 1.2 */ EAPI Eina_Value *eina_value_new(const Eina_Value_Type *type) EINA_ARG_NONNULL(1) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Free value and its data. * @param value value object * * @see eina_value_flush() * * @since 1.2 */ EAPI void eina_value_free(Eina_Value *value) EINA_ARG_NONNULL(1); /** * @brief Initialize generic value storage. * @param value value object * @param type how to manage this value. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * Initializes existing generic value storage. The members are managed using the * description specified by @a type. * * Some types may specify more operations, as an example #EINA_VALUE_TYPE_ARRAY * uses eina_value_array_set(), eina_value_array_get() and so on. * * @note Existing contents are ignored! If the value was previously used, then * use eina_value_flush() first. * * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY * or #EINA_ERROR_VALUE_FAILED is set. * * @see eina_value_flush() * * @since 1.2 */ static inline Eina_Bool eina_value_setup(Eina_Value *value, const Eina_Value_Type *type) EINA_ARG_NONNULL(1, 2); /** * @brief Create generic value storage. * @param value value object * * Releases all the resources associated with an #Eina_Value. The * value must be already set with eina_value_setup() or * eina_value_new(). * * After this call returns, the contents of the value are undefined, * but the value can be reused by calling eina_value_setup() again. * * @see eina_value_setup() * @see eina_value_free() * * @since 1.2 */ static inline void eina_value_flush(Eina_Value *value) EINA_ARG_NONNULL(1); /** * @brief Copy generic value storage. * @param value source value object * @param copy destination value object * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The @a copy object is considered uninitialized and its existing * contents are overwritten (just as if eina_value_flush() was called on * it). * * The copy happens by calling eina_value_setup() on @a copy, followed * by getting the contents of @a value and setting it to @a copy. * * @since 1.2 */ EAPI Eina_Bool eina_value_copy(const Eina_Value *value, Eina_Value *copy) EINA_ARG_NONNULL(1, 2); /** * @brief Compare generic value storage. * @param a left side of comparison * @param b right side of comparison * @return less than zero if a < b, greater than zero if a > b, zero * if a == b * * @since 1.2 */ static inline int eina_value_compare(const Eina_Value *a, const Eina_Value *b) EINA_ARG_NONNULL(1, 2); /** * @brief Set the generic value. * @param value source value object * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The variable argument is dependent on chosen type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char * @li EINA_VALUE_TYPE_USHORT: unsigned short * @li EINA_VALUE_TYPE_UINT: unsigned int * @li EINA_VALUE_TYPE_ULONG: unsigned long * @li EINA_VALUE_TYPE_UINT64: uint64_t * @li EINA_VALUE_TYPE_CHAR: char * @li EINA_VALUE_TYPE_SHORT: short * @li EINA_VALUE_TYPE_INT: int * @li EINA_VALUE_TYPE_LONG: long * @li EINA_VALUE_TYPE_INT64: int64_t * @li EINA_VALUE_TYPE_FLOAT: float * @li EINA_VALUE_TYPE_DOUBLE: double * @li EINA_VALUE_TYPE_STRINGSHARE: const char * * @li EINA_VALUE_TYPE_STRING: const char * * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array * @li EINA_VALUE_TYPE_LIST: Eina_Value_List * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct * * @code * Eina_Value *value = eina_value_new(EINA_VALUE_TYPE_INT); * int x = 567; * eina_value_set(value, 1234); * eina_value_set(value, x); * * eina_value_flush(value); * * eina_value_setup(value, EINA_VALUE_TYPE_STRING); * eina_value_set(value, "hello world!"); * * eina_value_free(value); * @endcode * * @note for array member see eina_value_array_set() * @note for list member see eina_value_list_set() * @note for hash member see eina_value_hash_set() * * @see eina_value_get() * @see eina_value_vset() * @see eina_value_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_set(Eina_Value *value, ...) EINA_ARG_NONNULL(1); /** * @brief Get the generic value. * @param value source value object * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in the variable argument parameter, the * actual value is type-dependent, but usually it will be what is * stored inside the object. There shouldn't be any memory allocation, * thus the contents should @b not be freed. * * The variable argument is dependent on chosen type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array* * @li EINA_VALUE_TYPE_LIST: Eina_Value_List* * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @code * Eina_Value *value = eina_value_new(EINA_VALUE_TYPE_INT); * int x; * const char *s; * * eina_value_set(value, 1234); * eina_value_get(value, &x); * * eina_value_flush(value); * * eina_value_setup(value, EINA_VALUE_TYPE_STRING); * eina_value_set(value, "hello world!"); * eina_value_get(value, &s); * * eina_value_free(value); * @endcode * * @note for array member see eina_value_array_get() * @note for list member see eina_value_list_get() * @note for hash member see eina_value_hash_get() * * @see eina_value_set() * @see eina_value_vset() * @see eina_value_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_get(const Eina_Value *value, ...) EINA_ARG_NONNULL(1); /** * @brief Set the generic value. * @param value source value object * @param args variable argument * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * @note for array member see eina_value_array_vset() * @note for list member see eina_value_list_vset() * @note for hash member see eina_value_hash_vset() * * @see eina_value_vget() * @see eina_value_set() * @see eina_value_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_vset(Eina_Value *value, va_list args) EINA_ARG_NONNULL(1); /** * @brief Get the generic value. * @param value source value object * @param args variable argument * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in the variable argument parameter, the * actual value is type-dependent, but usually it will be what is * stored inside the object. There shouldn't be any memory allocation, * thus the contents should @b not be freed. * * @note for array member see eina_value_array_vget() * @note for list member see eina_value_list_vget() * @note for hash member see eina_value_hash_vget() * * @see eina_value_vset() * @see eina_value_get() * @see eina_value_pget() * * @since 1.2 */ static inline Eina_Bool eina_value_vget(const Eina_Value *value, va_list args) EINA_ARG_NONNULL(1); /** * @brief Set the generic value from pointer. * @param value source value object * @param ptr pointer to specify the contents. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The pointer type is dependent on chosen value type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array* * @li EINA_VALUE_TYPE_LIST: Eina_Value_List* * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @note the pointer contents are written using the size defined by * type. It can be larger than void* or uint64_t. * * @code * Eina_Value *value = eina_value_new(EINA_VALUE_TYPE_INT); * int x = 567; * const char *s = "hello world!"; * * eina_value_pset(value, &x); * * eina_value_flush(value); * * eina_value_setup(value, EINA_VALUE_TYPE_STRING); * eina_value_pset(value, &s); * * eina_value_free(value); * @endcode * * @note for array member see eina_value_array_pset() * @note for list member see eina_value_list_pset() * @note for hash member see eina_value_hash_pset() * * @see eina_value_pget() * @see eina_value_set() * @see eina_value_vset() * * @since 1.2 */ static inline Eina_Bool eina_value_pset(Eina_Value *value, const void *ptr) EINA_ARG_NONNULL(1, 2); /** * @brief Get the generic value to pointer. * @param value source value object * @param ptr pointer to receive the contents. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in pointer contents, the actual value is * type-dependent, but usually it will be what is stored inside the * object. There shouldn't be any memory allocation, thus the contents * should @b not be freed. * * The pointer type is dependent on chosen value type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array* * @li EINA_VALUE_TYPE_LIST: Eina_Value_List* * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * * @code * Eina_Value *value = eina_value_new(EINA_VALUE_TYPE_INT); * int x; * const char *s; * * eina_value_set(value, 1234); * eina_value_pget(value, &x); * * eina_value_flush(value); * * eina_value_setup(value, EINA_VALUE_TYPE_STRING); * eina_value_set(value, "hello world!"); * eina_value_pget(value, &s); * * eina_value_free(value); * @endcode * * @note for array member see eina_value_array_get() * @note for list member see eina_value_list_get() * @note for hash member see eina_value_hash_get() * * @see eina_value_set() * @see eina_value_vset() * @see eina_value_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_pget(const Eina_Value *value, void *ptr) EINA_ARG_NONNULL(1, 2); /** * @brief Convert one value to another type. * @param value source value object. * @param convert destination value object. * @return #EINA_TRUE if converted, #EINA_FALSE otherwise. * * Converts one value to another trying first @a value type * @c convert_to() function. If unsuccessful, tries using @c convert_from() * function in @a convert. * * Conversion functions are type defined, and the basic types can convert * between themselves, but conversion is strict! That is, if * converting from negative value to unsigned type, it will fail. It * also fails on value overflow. * * It is recommended that all types implement at least convert to * string, used by eina_value_to_string(). * * @note Both objects must have eina_value_setup() called on them beforehand! * * @since 1.2 */ EAPI Eina_Bool eina_value_convert(const Eina_Value *value, Eina_Value *convert) EINA_ARG_NONNULL(1, 2); /** * @brief Convert value to string. * @param value value object. * @return newly allocated memory or @c NULL on failure. * * @see eina_value_convert() * @since 1.2 */ EAPI char *eina_value_to_string(const Eina_Value *value) EINA_ARG_NONNULL(1); /** * @brief Query value type. * @param value value object. * @return type instance or @c NULL if type is invalid. * * Check if value type is valid and returns it. A type is invalid if * it does not exist or if it is using a different version field. * * @see eina_value_type_check() * * @since 1.2 */ static inline const Eina_Value_Type *eina_value_type_get(const Eina_Value *value) EINA_PURE EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @} */ /** * @defgroup Eina_Value_Array_Group Generic Value Array management * * @{ */ /** * @typedef Eina_Value_Array * Value type for #EINA_VALUE_TYPE_ARRAY. * * @see #_Eina_Value_Array explains fields. * @since 1.2 */ typedef struct _Eina_Value_Array Eina_Value_Array; /** * @struct _Eina_Value_Array * Used to store the array and its subtype. * @since 1.2 */ struct _Eina_Value_Array { const Eina_Value_Type *subtype; /**< how to allocate and access items */ unsigned int step; /**< how to grow the members array */ Eina_Inarray *array; /**< the array that holds data, members are of subtype->value_size bytes. */ }; /** * @brief Create generic value storage of type array. * @param subtype how to manage this array members. * @param step how to grow the members array. * @return The new value or @c NULL on failure. * * Create a new generic value storage of type array. The members are * managed using the description specified by @a subtype. * * On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY * or #EINA_ERROR_VALUE_FAILED is set. * * @note this creates from mempool and then uses * eina_value_array_setup(). @see eina_value_free() @see * eina_value_array_setup() * * @since 1.2 */ EAPI Eina_Value *eina_value_array_new(const Eina_Value_Type *subtype, unsigned int step) EINA_ARG_NONNULL(1); /** * @brief Initialize generic value storage of type array. * @param value value object * @param subtype how to manage array members. * @param step how to grow the members array. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * Initializes new generic value storage of type array with the given * @a subtype. * * This is the same as calling eina_value_set() * with #EINA_VALUE_TYPE_ARRAY followed by eina_value_pset() with * the #Eina_Value_Array description configured. * * @note Existing contents are ignored! If the value was previously used, then * use eina_value_flush() first. * * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY * or #EINA_ERROR_VALUE_FAILED is set. * * @see eina_value_flush() * * @since 1.2 */ static inline Eina_Bool eina_value_array_setup(Eina_Value *value, const Eina_Value_Type *subtype, unsigned int step) EINA_ARG_NONNULL(1, 2); /** * @brief Query number of elements in value of array type. * @param value value object. * @return number of child elements. * @since 1.2 */ static inline unsigned int eina_value_array_count(const Eina_Value *value); /** * @brief Remove element at given position in value of array type. * @param value value object. * @param position index of the member * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @since 1.2 */ static inline Eina_Bool eina_value_array_remove(Eina_Value *value, unsigned int position) EINA_ARG_NONNULL(1); /** * @brief Set the generic value in an array member. * @param value source value object * @param position index of the member * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The variable argument is dependent on chosen subtype. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char * @li EINA_VALUE_TYPE_USHORT: unsigned short * @li EINA_VALUE_TYPE_UINT: unsigned int * @li EINA_VALUE_TYPE_ULONG: unsigned long * @li EINA_VALUE_TYPE_UINT64: uint64_t * @li EINA_VALUE_TYPE_CHAR: char * @li EINA_VALUE_TYPE_SHORT: short * @li EINA_VALUE_TYPE_INT: int * @li EINA_VALUE_TYPE_LONG: long * @li EINA_VALUE_TYPE_INT64: int64_t * @li EINA_VALUE_TYPE_FLOAT: float * @li EINA_VALUE_TYPE_DOUBLE: double * @li EINA_VALUE_TYPE_STRINGSHARE: const char * * @li EINA_VALUE_TYPE_STRING: const char * * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array * @li EINA_VALUE_TYPE_LIST: Eina_Value_List * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct * * @code * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); * int x; * * eina_value_array_append(value, 1234); * eina_value_array_set(value, 0, 5678); * eina_value_array_get(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_array_get() * @see eina_value_array_vset() * @see eina_value_array_pset() * @see eina_value_array_insert() * @see eina_value_array_vinsert() * @see eina_value_array_pinsert() * @see eina_value_array_append() * @see eina_value_array_vappend() * @see eina_value_array_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_array_set(Eina_Value *value, unsigned int position, ...) EINA_ARG_NONNULL(1); /** * @brief Get the generic value from an array member. * @param value source value object * @param position index of the member * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in the variable argument parameter, and the * actual value is type-dependent, but usually it will be what is * stored inside the object. There shouldn't be any memory allocation; * thus the contents should @b not be freed. * * The variable argument is dependent on chosen subtype. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array* * @li EINA_VALUE_TYPE_LIST: Eina_Value_List* * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @code * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); * int x; * * eina_value_array_append(value, 1234); * eina_value_array_get(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_array_set() * @see eina_value_array_vset() * @see eina_value_array_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_array_get(const Eina_Value *value, unsigned int position, ...) EINA_ARG_NONNULL(1); /** * @brief Insert a generic value in an array member position. * @param value source value object * @param position index of the member * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The variable argument is dependent on chosen subtype. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char * @li EINA_VALUE_TYPE_USHORT: unsigned short * @li EINA_VALUE_TYPE_UINT: unsigned int * @li EINA_VALUE_TYPE_ULONG: unsigned long * @li EINA_VALUE_TYPE_UINT64: uint64_t * @li EINA_VALUE_TYPE_CHAR: char * @li EINA_VALUE_TYPE_SHORT: short * @li EINA_VALUE_TYPE_INT: int * @li EINA_VALUE_TYPE_LONG: long * @li EINA_VALUE_TYPE_INT64: int64_t * @li EINA_VALUE_TYPE_FLOAT: float * @li EINA_VALUE_TYPE_DOUBLE: double * @li EINA_VALUE_TYPE_STRINGSHARE: const char * * @li EINA_VALUE_TYPE_STRING: const char * * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array * @li EINA_VALUE_TYPE_LIST: Eina_Value_List * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct * * @code * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); * int x; * * eina_value_array_insert(value, 0, 1234); * eina_value_array_get(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_array_set() * @see eina_value_array_get() * @see eina_value_array_vset() * @see eina_value_array_pset() * @see eina_value_array_vinsert() * @see eina_value_array_pinsert() * @see eina_value_array_append() * @see eina_value_array_vappend() * @see eina_value_array_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_array_insert(Eina_Value *value, unsigned int position, ...) EINA_ARG_NONNULL(1); /** * @brief Append a generic value in an array. * @param value source value object * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The variable argument is dependent on chosen subtype. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char * @li EINA_VALUE_TYPE_USHORT: unsigned short * @li EINA_VALUE_TYPE_UINT: unsigned int * @li EINA_VALUE_TYPE_ULONG: unsigned long * @li EINA_VALUE_TYPE_UINT64: uint64_t * @li EINA_VALUE_TYPE_CHAR: char * @li EINA_VALUE_TYPE_SHORT: short * @li EINA_VALUE_TYPE_INT: int * @li EINA_VALUE_TYPE_LONG: long * @li EINA_VALUE_TYPE_INT64: int64_t * @li EINA_VALUE_TYPE_FLOAT: float * @li EINA_VALUE_TYPE_DOUBLE: double * @li EINA_VALUE_TYPE_STRINGSHARE: const char * * @li EINA_VALUE_TYPE_STRING: const char * * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array * @li EINA_VALUE_TYPE_LIST: Eina_Value_List * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct * * @code * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); * int x; * * eina_value_array_append(value, 1234); * eina_value_array_get(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_array_set() * @see eina_value_array_get() * @see eina_value_array_vset() * @see eina_value_array_pset() * @see eina_value_array_vinsert() * @see eina_value_array_pinsert() * @see eina_value_array_append() * @see eina_value_array_vappend() * @see eina_value_array_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_array_append(Eina_Value *value, ...) EINA_ARG_NONNULL(1); /** * @brief Set a generic value to an array member. * @param value source value object * @param position index of the member * @param args variable argument * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @see eina_value_array_set() * @see eina_value_array_get() * @see eina_value_array_pset() * @see eina_value_array_insert() * @see eina_value_array_vinsert() * @see eina_value_array_pinsert() * @see eina_value_array_append() * @see eina_value_array_vappend() * @see eina_value_array_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_array_vset(Eina_Value *value, unsigned int position, va_list args) EINA_ARG_NONNULL(1); /** * @brief Get the generic value from an array member. * @param value source value object * @param position index of the member * @param args variable argument * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in the variable argument parameter, the * actual value is type-dependent, but usually it will be what is * stored inside the object. There shouldn't be any memory allocation, * thus the contents should @b not be freed. * * @see eina_value_array_vset() * @see eina_value_array_get() * @see eina_value_array_pget() * * @since 1.2 */ static inline Eina_Bool eina_value_array_vget(const Eina_Value *value, unsigned int position, va_list args) EINA_ARG_NONNULL(1); /** * @brief Insert a generic value to an array member position. * @param value source value object * @param position index of the member * @param args variable argument * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @see eina_value_array_set() * @see eina_value_array_get() * @see eina_value_array_vset() * @see eina_value_array_pset() * @see eina_value_array_insert() * @see eina_value_array_pinsert() * @see eina_value_array_append() * @see eina_value_array_vappend() * @see eina_value_array_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_array_vinsert(Eina_Value *value, unsigned int position, va_list args) EINA_ARG_NONNULL(1); /** * @brief Append a generic value to an array. * @param value source value object * @param args variable argument * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @see eina_value_array_set() * @see eina_value_array_get() * @see eina_value_array_vget() * @see eina_value_array_pset() * @see eina_value_array_insert() * @see eina_value_array_vinsert() * @see eina_value_array_pinsert() * @see eina_value_array_append() * @see eina_value_array_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_array_vappend(Eina_Value *value, va_list args) EINA_ARG_NONNULL(1); /** * @brief Set a generic value to an array member from a pointer. * @param value source value object * @param position index of the member * @param ptr pointer to specify the contents. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The pointer type is dependent on chosen value type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array* * @li EINA_VALUE_TYPE_LIST: Eina_Value_List* * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @note the pointer contents are written using the size defined by * type. It can be larger than void* or uint64_t. * * @code * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); * int x = 1234; * * eina_value_array_append(value, 1234); * eina_value_array_pset(value, 0, &x); * eina_value_array_pget(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_array_set() * @see eina_value_array_get() * @see eina_value_array_vset() * @see eina_value_array_insert() * @see eina_value_array_vinsert() * @see eina_value_array_pinsert() * @see eina_value_array_append() * @see eina_value_array_vappend() * @see eina_value_array_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_array_pset(Eina_Value *value, unsigned int position, const void *ptr) EINA_ARG_NONNULL(1, 3); /** * @brief Retrieve a generic value into a pointer from an array member. * @param value source value object * @param position index of the member * @param ptr pointer to receive the contents. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in pointer contents, the actual value is * type-dependent, but usually it will be what is stored inside the * object. There shouldn't be any memory allocation, thus the contents * should @b not be freed. * * The pointer type is dependent on chosen value type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array* * @li EINA_VALUE_TYPE_LIST: Eina_Value_List* * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @code * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); * int x; * * eina_value_array_append(value, 1234); * eina_value_array_pget(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_array_set() * @see eina_value_array_vset() * @see eina_value_array_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_array_pget(const Eina_Value *value, unsigned int position, void *ptr) EINA_ARG_NONNULL(1, 3); /** * @brief Insert a generic value to an array member position from a pointer. * @param value source value object * @param position index of the member * @param ptr pointer to specify the contents. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The pointer type is dependent on chosen value type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array* * @li EINA_VALUE_TYPE_LIST: Eina_Value_List* * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @note the pointer contents are written using the size defined by * type. It can be larger than void* or uint64_t. * * @code * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); * int x = 1234; * * eina_value_array_pinsert(value, 0, &x); * eina_value_array_pget(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_array_set() * @see eina_value_array_get() * @see eina_value_array_vset() * @see eina_value_array_insert() * @see eina_value_array_vinsert() * @see eina_value_array_pinsert() * @see eina_value_array_append() * @see eina_value_array_vappend() * @see eina_value_array_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_array_pinsert(Eina_Value *value, unsigned int position, const void *ptr) EINA_ARG_NONNULL(1); /** * @brief Append a generic value to an array from a pointer. * @param value source value object * @param ptr pointer to specify the contents. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The pointer type is dependent on chosen value type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_ARRAY: Eina_Value_Array* * @li EINA_VALUE_TYPE_LIST: Eina_Value_List* * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @note the pointer contents are written using the size defined by * type. It can be larger than void* or uint64_t. * * @code * Eina_Value *value = eina_value_array_new(EINA_VALUE_TYPE_INT, 0); * int x = 1234; * * eina_value_array_pappend(value, &x); * eina_value_array_pget(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_array_set() * @see eina_value_array_get() * @see eina_value_array_vset() * @see eina_value_array_insert() * @see eina_value_array_vinsert() * @see eina_value_array_pinsert() * @see eina_value_array_append() * @see eina_value_array_vappend() * @see eina_value_array_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_array_pappend(Eina_Value *value, const void *ptr) EINA_ARG_NONNULL(1); /** * @brief Retrieves a value from the array as an Eina_Value copy. * @param src source value object * @param position index of the member * @param dst where to return the array member * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The argument @a dst is considered uninitialized and it's setup to * the type of the member. * * @since 1.2 */ static inline Eina_Bool eina_value_array_value_get(const Eina_Value *src, unsigned int position, Eina_Value *dst) EINA_ARG_NONNULL(1, 3); /** * @} */ /** * @defgroup Eina_Value_List_Group Generic Value List management * * @{ */ /** * @typedef Eina_Value_List * Value type for #EINA_VALUE_TYPE_LIST. * * @see #_Eina_Value_List explains fields. * @since 1.2 */ typedef struct _Eina_Value_List Eina_Value_List; /** * @struct _Eina_Value_List * Used to store the list and its subtype. * @since 1.2 */ struct _Eina_Value_List { const Eina_Value_Type *subtype; /**< how to allocate and access items */ Eina_List *list; /**< the list that holds data, members are of subtype->value_size bytes. */ }; /** * @brief Create generic value storage of type list. * @param subtype how to manage this list members. * @return The new value or @c NULL on failure. * * Create a new generic value storage of type list. The members are * managed using the description specified by @a subtype. * * On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY * or #EINA_ERROR_VALUE_FAILED is set. * * @note this creates from mempool and then uses * eina_value_list_setup(). * * @see eina_value_free() * @see eina_value_list_setup() * * @since 1.2 */ EAPI Eina_Value *eina_value_list_new(const Eina_Value_Type *subtype) EINA_ARG_NONNULL(1); /** * @brief Initialize generic value storage of type list. * @param value value object * @param subtype how to manage this list members. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * Initializes new generic value storage of type list with the given * @a subtype. * * This is the same as calling eina_value_set() * with #EINA_VALUE_TYPE_LIST followed by eina_value_pset() with * the #Eina_Value_List description configured. * * @note Existing contents are ignored! If the value was previously used, then * use eina_value_flush() first. * * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY * or #EINA_ERROR_VALUE_FAILED is set. * * @see eina_value_flush() * * @since 1.2 */ static inline Eina_Bool eina_value_list_setup(Eina_Value *value, const Eina_Value_Type *subtype) EINA_ARG_NONNULL(1, 2); /** * @brief Query number of elements in value of list type. * @param value value object. * @return number of child elements. * @since 1.2 */ static inline unsigned int eina_value_list_count(const Eina_Value *value); /** * @brief Remove element at given position in value of list type. * @param value value object. * @param position index of the member * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @since 1.2 */ static inline Eina_Bool eina_value_list_remove(Eina_Value *value, unsigned int position) EINA_ARG_NONNULL(1); /** * @brief Set the generic value in an list member. * @param value source value object * @param position index of the member * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The variable argument is dependent on chosen subtype. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char * @li EINA_VALUE_TYPE_USHORT: unsigned short * @li EINA_VALUE_TYPE_UINT: unsigned int * @li EINA_VALUE_TYPE_ULONG: unsigned long * @li EINA_VALUE_TYPE_UINT64: uint64_t * @li EINA_VALUE_TYPE_CHAR: char * @li EINA_VALUE_TYPE_SHORT: short * @li EINA_VALUE_TYPE_INT: int * @li EINA_VALUE_TYPE_LONG: long * @li EINA_VALUE_TYPE_INT64: int64_t * @li EINA_VALUE_TYPE_FLOAT: float * @li EINA_VALUE_TYPE_DOUBLE: double * @li EINA_VALUE_TYPE_STRINGSHARE: const char * * @li EINA_VALUE_TYPE_STRING: const char * * @li EINA_VALUE_TYPE_LIST: Eina_Value_List * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct * * @code * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT); * int x; * * eina_value_list_append(value, 1234); * eina_value_list_set(value, 0, 5678); * eina_value_list_get(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_list_get() * @see eina_value_list_vset() * @see eina_value_list_pset() * @see eina_value_list_insert() * @see eina_value_list_vinsert() * @see eina_value_list_pinsert() * @see eina_value_list_append() * @see eina_value_list_vappend() * @see eina_value_list_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_list_set(Eina_Value *value, unsigned int position, ...) EINA_ARG_NONNULL(1); /** * @brief Get the generic value from an list member. * @param value source value object * @param position index of the member * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in the variable argument parameter, the * actual value is type-dependent, but usually it will be what is * stored inside the object. There shouldn't be any memory allocation, * thus the contents should @b not be freed. * * The variable argument is dependent on chosen subtype. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_LIST: Eina_Value_List* * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @code * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT); * int x; * * eina_value_list_append(value, 1234); * eina_value_list_get(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_list_set() * @see eina_value_list_vset() * @see eina_value_list_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_list_get(const Eina_Value *value, unsigned int position, ...) EINA_ARG_NONNULL(1); /** * @brief Insert the generic value in an list member position. * @param value source value object * @param position index of the member * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The variable argument is dependent on chosen subtype. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char * @li EINA_VALUE_TYPE_USHORT: unsigned short * @li EINA_VALUE_TYPE_UINT: unsigned int * @li EINA_VALUE_TYPE_ULONG: unsigned long * @li EINA_VALUE_TYPE_UINT64: uint64_t * @li EINA_VALUE_TYPE_CHAR: char * @li EINA_VALUE_TYPE_SHORT: short * @li EINA_VALUE_TYPE_INT: int * @li EINA_VALUE_TYPE_LONG: long * @li EINA_VALUE_TYPE_INT64: int64_t * @li EINA_VALUE_TYPE_FLOAT: float * @li EINA_VALUE_TYPE_DOUBLE: double * @li EINA_VALUE_TYPE_STRINGSHARE: const char * * @li EINA_VALUE_TYPE_STRING: const char * * @li EINA_VALUE_TYPE_LIST: Eina_Value_List * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct * * @code * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT); * int x; * * eina_value_list_insert(value, 0, 1234); * eina_value_list_get(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_list_set() * @see eina_value_list_get() * @see eina_value_list_vset() * @see eina_value_list_pset() * @see eina_value_list_vinsert() * @see eina_value_list_pinsert() * @see eina_value_list_append() * @see eina_value_list_vappend() * @see eina_value_list_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_list_insert(Eina_Value *value, unsigned int position, ...) EINA_ARG_NONNULL(1); /** * @brief Append the generic value in an list. * @param value source value object * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The variable argument is dependent on chosen subtype. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char * @li EINA_VALUE_TYPE_USHORT: unsigned short * @li EINA_VALUE_TYPE_UINT: unsigned int * @li EINA_VALUE_TYPE_ULONG: unsigned long * @li EINA_VALUE_TYPE_UINT64: uint64_t * @li EINA_VALUE_TYPE_CHAR: char * @li EINA_VALUE_TYPE_SHORT: short * @li EINA_VALUE_TYPE_INT: int * @li EINA_VALUE_TYPE_LONG: long * @li EINA_VALUE_TYPE_INT64: int64_t * @li EINA_VALUE_TYPE_FLOAT: float * @li EINA_VALUE_TYPE_DOUBLE: double * @li EINA_VALUE_TYPE_STRINGSHARE: const char * * @li EINA_VALUE_TYPE_STRING: const char * * @li EINA_VALUE_TYPE_LIST: Eina_Value_List * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct * * @code * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT); * int x; * * eina_value_list_append(value, 1234); * eina_value_list_get(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_list_set() * @see eina_value_list_get() * @see eina_value_list_vset() * @see eina_value_list_pset() * @see eina_value_list_vinsert() * @see eina_value_list_pinsert() * @see eina_value_list_append() * @see eina_value_list_vappend() * @see eina_value_list_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_list_append(Eina_Value *value, ...) EINA_ARG_NONNULL(1); /** * @brief Set the generic value in an list member. * @param value source value object * @param position index of the member * @param args variable argument * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @see eina_value_list_set() * @see eina_value_list_get() * @see eina_value_list_pset() * @see eina_value_list_insert() * @see eina_value_list_vinsert() * @see eina_value_list_pinsert() * @see eina_value_list_append() * @see eina_value_list_vappend() * @see eina_value_list_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_list_vset(Eina_Value *value, unsigned int position, va_list args) EINA_ARG_NONNULL(1); /** * @brief Get the generic value from an list member. * @param value source value object * @param position index of the member * @param args variable argument * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in the variable argument parameter, the * actual value is type-dependent, but usually it will be what is * stored inside the object. There shouldn't be any memory allocation, * thus the contents should @b not be freed. * * @see eina_value_list_vset() * @see eina_value_list_get() * @see eina_value_list_pget() * * @since 1.2 */ static inline Eina_Bool eina_value_list_vget(const Eina_Value *value, unsigned int position, va_list args) EINA_ARG_NONNULL(1); /** * @brief Insert the generic value in an list member position. * @param value source value object * @param position index of the member * @param args variable argument * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @see eina_value_list_set() * @see eina_value_list_get() * @see eina_value_list_vset() * @see eina_value_list_pset() * @see eina_value_list_insert() * @see eina_value_list_pinsert() * @see eina_value_list_append() * @see eina_value_list_vappend() * @see eina_value_list_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_list_vinsert(Eina_Value *value, unsigned int position, va_list args) EINA_ARG_NONNULL(1); /** * @brief Append the generic value in an list. * @param value source value object * @param args variable argument * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @see eina_value_list_set() * @see eina_value_list_get() * @see eina_value_list_vget() * @see eina_value_list_pset() * @see eina_value_list_insert() * @see eina_value_list_vinsert() * @see eina_value_list_pinsert() * @see eina_value_list_append() * @see eina_value_list_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_list_vappend(Eina_Value *value, va_list args) EINA_ARG_NONNULL(1); /** * @brief Set the generic value in an list member from pointer. * @param value source value object * @param position index of the member * @param ptr pointer to specify the contents. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The pointer type is dependent on chosen value type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_LIST: Eina_Value_List* * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @note the pointer contents are written using the size defined by * type. It can be larger than void* or uint64_t. * * @code * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT); * int x = 1234; * * eina_value_list_append(value, 1234); * eina_value_list_pset(value, 0, &x); * eina_value_list_pget(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_list_set() * @see eina_value_list_get() * @see eina_value_list_vset() * @see eina_value_list_insert() * @see eina_value_list_vinsert() * @see eina_value_list_pinsert() * @see eina_value_list_append() * @see eina_value_list_vappend() * @see eina_value_list_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_list_pset(Eina_Value *value, unsigned int position, const void *ptr) EINA_ARG_NONNULL(1, 3); /** * @brief Get the generic value to pointer from an list member. * @param value source value object * @param position index of the member * @param ptr pointer to receive the contents. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in pointer contents, the actual value is * type-dependent, but usually it will be what is stored inside the * object. There shouldn't be any memory allocation, thus the contents * should @b not be freed. * * The pointer type is dependent on chosen value type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_LIST: Eina_Value_List* * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @code * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT); * int x; * * eina_value_list_append(value, 1234); * eina_value_list_pget(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_list_set() * @see eina_value_list_vset() * @see eina_value_list_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_list_pget(const Eina_Value *value, unsigned int position, void *ptr) EINA_ARG_NONNULL(1, 3); /** * @brief Insert the generic value in an list member position from pointer. * @param value source value object * @param position index of the member * @param ptr pointer to specify the contents. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The pointer type is dependent on chosen value type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_LIST: Eina_Value_List* * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @note the pointer contents are written using the size defined by * type. It can be larger than void* or uint64_t. * * @code * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT); * int x = 1234; * * eina_value_list_pinsert(value, 0, &x); * eina_value_list_pget(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_list_set() * @see eina_value_list_get() * @see eina_value_list_vset() * @see eina_value_list_insert() * @see eina_value_list_vinsert() * @see eina_value_list_pinsert() * @see eina_value_list_append() * @see eina_value_list_vappend() * @see eina_value_list_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_list_pinsert(Eina_Value *value, unsigned int position, const void *ptr) EINA_ARG_NONNULL(1); /** * @brief Append the generic value in an list from pointer. * @param value source value object * @param ptr pointer to specify the contents. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The pointer type is dependent on chosen value type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_LIST: Eina_Value_List* * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @note the pointer contents are written using the size defined by * type. It can be larger than void* or uint64_t. * * @code * Eina_Value *value = eina_value_list_new(EINA_VALUE_TYPE_INT); * int x = 1234; * * eina_value_list_pappend(value, &x); * eina_value_list_pget(value, 0, &x); * eina_value_free(value); * @endcode * * @see eina_value_list_set() * @see eina_value_list_get() * @see eina_value_list_vset() * @see eina_value_list_insert() * @see eina_value_list_vinsert() * @see eina_value_list_pinsert() * @see eina_value_list_append() * @see eina_value_list_vappend() * @see eina_value_list_pappend() * * @since 1.2 */ static inline Eina_Bool eina_value_list_pappend(Eina_Value *value, const void *ptr) EINA_ARG_NONNULL(1); /** * @} */ /** * @defgroup Eina_Value_Hash_Group Generic Value Hash management * * @{ */ /** * @typedef Eina_Value_Hash * Value type for #EINA_VALUE_TYPE_HASH. * * @see #_Eina_Value_Hash explains fields. * @since 1.2 */ typedef struct _Eina_Value_Hash Eina_Value_Hash; /** * @struct _Eina_Value_Hash * Used to store the hash and its subtype. * @since 1.2 */ struct _Eina_Value_Hash { const Eina_Value_Type *subtype; /**< how to allocate and access items */ unsigned int buckets_power_size; /**< how to allocate hash buckets, if zero a sane default is chosen. */ Eina_Hash *hash; /**< the hash that holds data, members are of subtype->value_size bytes. */ }; /** * @brief Create generic value storage of type hash. * @param subtype how to manage this hash members. * @param buckets_power_size how to allocate hash buckets (2 ^ * buckets_power_size), if zero then a sane value is chosen. * @return The new value or @c NULL on failure. * * Create a new generic value storage of type hash. The members are * managed using the description specified by @a subtype. * * On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY * or #EINA_ERROR_VALUE_FAILED is set. * * @note this creates from mempool and then uses * eina_value_hash_setup(). * * @see eina_value_free() * @see eina_value_hash_setup() * * @since 1.2 */ EAPI Eina_Value *eina_value_hash_new(const Eina_Value_Type *subtype, unsigned int buckets_power_size) EINA_ARG_NONNULL(1); /** * @brief Initialize generic value storage of type hash. * @param value value object * @param subtype how to manage this hash members. * @param buckets_power_size how to allocate hash buckets (2 ^ * buckets_power_size), if zero then a sane value is chosen. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * Initializes new generic value storage of type hash with the given * @a subtype. * * This is the same as calling eina_value_set() * with #EINA_VALUE_TYPE_HASH followed by eina_value_pset() with * the #Eina_Value_Hash description configured. * * @note Existing contents are ignored! If the value was previously used, then * use eina_value_flush() first. * * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY * or #EINA_ERROR_VALUE_FAILED is set. * * @see eina_value_flush() * * @since 1.2 */ static inline Eina_Bool eina_value_hash_setup(Eina_Value *value, const Eina_Value_Type *subtype, unsigned int buckets_power_size) EINA_ARG_NONNULL(1, 2); /** * @brief Query number of elements in value of hash type. * @param value value object. * @return number of child elements. * @since 1.2 */ static inline unsigned int eina_value_hash_population(const Eina_Value *value); /** * @brief Remove element at given position in value of hash type. * @param value value object. * @param key key to find the member * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @since 1.2 */ static inline Eina_Bool eina_value_hash_del(Eina_Value *value, const char *key) EINA_ARG_NONNULL(1); /** * @brief Set the generic value in an hash member. * @param value source value object * @param key key to find the member * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The variable argument is dependent on chosen subtype. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char * @li EINA_VALUE_TYPE_USHORT: unsigned short * @li EINA_VALUE_TYPE_UINT: unsigned int * @li EINA_VALUE_TYPE_ULONG: unsigned long * @li EINA_VALUE_TYPE_UINT64: uint64_t * @li EINA_VALUE_TYPE_CHAR: char * @li EINA_VALUE_TYPE_SHORT: short * @li EINA_VALUE_TYPE_INT: int * @li EINA_VALUE_TYPE_LONG: long * @li EINA_VALUE_TYPE_INT64: int64_t * @li EINA_VALUE_TYPE_FLOAT: float * @li EINA_VALUE_TYPE_DOUBLE: double * @li EINA_VALUE_TYPE_STRINGSHARE: const char * * @li EINA_VALUE_TYPE_STRING: const char * * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @code * Eina_Value *value = eina_value_hash_new(EINA_VALUE_TYPE_INT, 0); * int x; * * eina_value_hash_set(value, "abc", 5678); * eina_value_hash_get(value, "abc", &x); * eina_value_free(value); * @endcode * * @see eina_value_hash_get() * @see eina_value_hash_vset() * @see eina_value_hash_pset() * @see eina_value_hash_del() * * @since 1.2 */ static inline Eina_Bool eina_value_hash_set(Eina_Value *value, const char *key, ...) EINA_ARG_NONNULL(1); /** * @brief Get the generic value from an hash member. * @param value source value object * @param key key to find the member * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in the variable argument parameter, the * actual value is type-dependent, but usually it will be what is * stored inside the object. There shouldn't be any memory allocation, * thus the contents should @b not be freed. * * The variable argument is dependent on chosen subtype. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @code * Eina_Value *value = eina_value_hash_new(EINA_VALUE_TYPE_INT, 0); * int x; * * eina_value_hash_set(value, "abc", 1234); * eina_value_hash_get(value, "abc", &x); * eina_value_free(value); * @endcode * * @see eina_value_hash_set() * @see eina_value_hash_vset() * @see eina_value_hash_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_hash_get(const Eina_Value *value, const char *key, ...) EINA_ARG_NONNULL(1); /** * @brief Set the generic value in an hash member. * @param value source value object * @param key key to find the member * @param args variable argument * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @see eina_value_hash_set() * @see eina_value_hash_get() * @see eina_value_hash_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_hash_vset(Eina_Value *value, const char *key, va_list args) EINA_ARG_NONNULL(1); /** * @brief Get the generic value from an hash member. * @param value source value object * @param key key to find the member * @param args variable argument * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in the variable argument parameter, the * actual value is type-dependent, but usually it will be what is * stored inside the object. There shouldn't be any memory allocation, * thus the contents should @b not be freed. * * @see eina_value_hash_vset() * @see eina_value_hash_get() * @see eina_value_hash_pget() * * @since 1.2 */ static inline Eina_Bool eina_value_hash_vget(const Eina_Value *value, const char *key, va_list args) EINA_ARG_NONNULL(1); /** * @brief Set the generic value in an hash member from pointer. * @param value source value object * @param key key to find the member * @param ptr pointer to specify the contents. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The pointer type is dependent on chosen value type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @note the pointer contents are written using the size defined by * type. It can be larger than void* or uint64_t. * * @code * Eina_Value *value = eina_value_hash_new(EINA_VALUE_TYPE_INT, 0); * int x = 1234; * * eina_value_hash_pset(value, "abc", &x); * eina_value_hash_pget(value, "abc", &x); * eina_value_free(value); * @endcode * * @see eina_value_hash_set() * @see eina_value_hash_get() * @see eina_value_hash_vset() * * @since 1.2 */ static inline Eina_Bool eina_value_hash_pset(Eina_Value *value, const char *key, const void *ptr) EINA_ARG_NONNULL(1, 3); /** * @brief Get the generic value to pointer from an hash member. * @param value source value object * @param key key to find the member * @param ptr pointer to receive the contents. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in pointer contents, the actual value is * type-dependent, but usually it will be what is stored inside the * object. There shouldn't be any memory allocation, thus the contents * should @b not be freed. * * The pointer type is dependent on chosen value type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @code * Eina_Value *value = eina_value_hash_new(EINA_VALUE_TYPE_INT, 0); * int x; * * eina_value_hash_set(value, "abc", 1234); * eina_value_hash_pget(value, "abc", &x); * eina_value_free(value); * @endcode * * @see eina_value_hash_set() * @see eina_value_hash_vset() * @see eina_value_hash_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_hash_pget(const Eina_Value *value, const char *key, void *ptr) EINA_ARG_NONNULL(1, 3); /** * @} */ /** * @defgroup Eina_Value_Blob_Group Generic Value Blob management * * @{ */ /** * @typedef Eina_Value_Blob_Operations * How to manage blob. Any @c NULL callback is ignored. * @see #_Eina_Value_Blob_Operations explains fields. * @since 1.2 */ typedef struct _Eina_Value_Blob_Operations Eina_Value_Blob_Operations; /** * @def EINA_VALUE_BLOB_OPERATIONS_VERSION * Current API version, used to validate #_Eina_Value_Blob_Operations. */ #define EINA_VALUE_BLOB_OPERATIONS_VERSION (1) /** * @struct _Eina_Value_Blob_Operations * How to manage blob. Any @c NULL callback is ignored. * @since 1.2 */ struct _Eina_Value_Blob_Operations { unsigned int version; /**< must be #EINA_VALUE_BLOB_OPERATIONS_VERSION */ void (*free)(const Eina_Value_Blob_Operations *ops, void *memory, size_t size); void *(*copy)(const Eina_Value_Blob_Operations *ops, const void *memory, size_t size); int (*compare)(const Eina_Value_Blob_Operations *ops, const void *data1, size_t size_data1, const void *data2, size_t size_data2); char *(*to_string)(const Eina_Value_Blob_Operations *ops, const void *memory, size_t size); }; /** * @var EINA_VALUE_BLOB_OPERATIONS_MALLOC * * Assumes @c memory was create with malloc() and applies free() to it * during flush (Eina_Value_Blob_Operations::free). Copy is done with * malloc() as well. * * No compare or to_string are provided, defaults will be used. */ EAPI extern const Eina_Value_Blob_Operations *EINA_VALUE_BLOB_OPERATIONS_MALLOC; /** * @typedef Eina_Value_Blob * Value type for #EINA_VALUE_TYPE_BLOB. * * @see #_Eina_Value_Blob explains fields. * @since 1.2 */ typedef struct _Eina_Value_Blob Eina_Value_Blob; /** * @struct _Eina_Value_Blob * Used to store the blob information and management operations. * @since 1.2 */ struct _Eina_Value_Blob { const Eina_Value_Blob_Operations *ops; /**< if @c NULL, nothing is freed, copy will just copy the memory pointer, not its value. */ const void *memory; unsigned int size; }; /** * @} */ /** * @defgroup Eina_Value_Struct_Group Generic Value Struct management * * @{ */ /** * @typedef Eina_Value_Struct_Operations * How to manage struct. Any @c NULL callback is ignored. * * A structure can specify alternative methods to allocate, free and * copy itself. See structure definition for all methods. * * @see #_Eina_Value_Struct_Operations explains fields. * @since 1.2 */ typedef struct _Eina_Value_Struct_Operations Eina_Value_Struct_Operations; /** * @typedef Eina_Value_Struct_Member * Describes a single member of struct. * * The member holds a name, type and its byte offset within the struct * memory. Most Eina_Value_Struct functions takes the member name as * parameter, as in eina_value_struct_set(). * * @see #_Eina_Value_Struct_Member explains fields. * @since 1.2 */ typedef struct _Eina_Value_Struct_Member Eina_Value_Struct_Member; /** * @typedef Eina_Value_Struct_Desc * Describes the struct by listing its size, members and operations. * @see #_Eina_Value_Struct_Desc explains fields. * @since 1.2 */ typedef struct _Eina_Value_Struct_Desc Eina_Value_Struct_Desc; /** * @typedef Eina_Value_Struct * Value type for #EINA_VALUE_TYPE_STRUCT. * * @see #_Eina_Value_Struct explains fields. * @since 1.2 */ typedef struct _Eina_Value_Struct Eina_Value_Struct; /** * @def EINA_VALUE_STRUCT_OPERATIONS_VERSION * Current API version, used to validate #_Eina_Value_Struct_Operations. */ #define EINA_VALUE_STRUCT_OPERATIONS_VERSION (1) /** * @struct _Eina_Value_Struct_Operations * How to manage struct. Any @c NULL callback is ignored. * @since 1.2 */ struct _Eina_Value_Struct_Operations { unsigned int version; /**< must be #EINA_VALUE_STRUCT_OPERATIONS_VERSION */ void *(*alloc)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc); /**< How to allocate struct memory to be managed by the Eina_Value */ void (*free)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, void *memory); /**< How to release memory managed by the Eina_Value */ void *(*copy)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, const void *memory); /**< How to copy struct memory from an existing Eina_Value, if not provided alloc() will be used, then every member is copied using eina_value_type_copy() with member's type. */ int (*compare)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, const void *data1, const void *data2); /**< How to compare two struct memories */ const Eina_Value_Struct_Member *(*find_member)(const Eina_Value_Struct_Operations *ops, const Eina_Value_Struct_Desc *desc, const char *name); /**< How to find description for member. For huge structures consider using binary search, stringshared, hash or gperf. The default function does linear search using strcmp(). */ }; /** * @var EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH * * Assumes @c members is sorted by name and applies binary search for * names. * * Ideally the @c member_count field is set to speed it up. * * No other methods are set (alloc, free, copy, compare), then it uses * the default operations. */ EAPI extern const Eina_Value_Struct_Operations *EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH; /** * @var EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE * * Assumes @c members name are stringshared and can be compared for * equality without using its contents (simple pointer comparison). * * Ideally the search @c name will be stringshared as well, but it * will do a second loop with a forced stringshare if it did not find * the member. * * No other methods are set (alloc, free, copy, compare), then it uses * the default operations. */ EAPI extern const Eina_Value_Struct_Operations *EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE; /** * @struct _Eina_Value_Struct_Member * Describes a single member of struct. * * The name is used to lookup the member description. This is done as * specified as _Eina_Value_Struct_Operations::find_member(). For * structures with huge number of members, consider using a better * find_member function to quickly finding it! There are two helper * operations provided to help this: #EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH * and #EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE, both depend on properly * set #_Eina_Value_Struct_Desc and #_Eina_Value_Struct_Member. * * @see #EINA_VALUE_STRUCT_MEMBER * @see #EINA_VALUE_STRUCT_MEMBER_SENTINEL * * @since 1.2 */ struct _Eina_Value_Struct_Member { const char *name; /**< member name, used in lookups such as eina_value_struct_get() */ const Eina_Value_Type *type; /**< how to use this member */ unsigned int offset; /**< where this member is located within the structure memory */ }; /** * @def EINA_VALUE_STRUCT_DESC_VERSION * Current API version, used to validate #_Eina_Value_Struct_Desc. */ #define EINA_VALUE_STRUCT_DESC_VERSION (1) /** * @struct _Eina_Value_Struct_Desc * Describes the struct by listing its size, members and operations. * * This is the root of Eina_Value knowledge about the memory it's * handling as a structure. It adds introspection, saying the byte * size of the structure, its members and how to manage such members. * * @since 1.2 */ struct _Eina_Value_Struct_Desc { unsigned int version; /**< must be #EINA_VALUE_STRUCT_DESC_VERSION */ const Eina_Value_Struct_Operations *ops; /**< operations, if @c NULL defaults will be used. You may use operations to optimize member lookup using binary search or gperf hash. */ const Eina_Value_Struct_Member *members; /**< array of member descriptions, if @c member_count is zero, then it must be @c NULL terminated. */ unsigned int member_count; /**< if > 0, specifies number of members. If zero then @c members must be NULL terminated. */ unsigned int size; /**< byte size to allocate, may be bigger than sum of members */ }; /** * @def EINA_VALUE_STRUCT_MEMBER * * Helper to define Eina_Value_Struct_Member fields, uses offsetof() * with type and member. * * @since 1.2 */ #define EINA_VALUE_STRUCT_MEMBER(eina_value_type, type, member) \ {#member, eina_value_type, offsetof(type, member)} /** * @def EINA_VALUE_STRUCT_MEMBER_SENTINEL * * Helper to define Eina_Value_Struct_Member fields for sentinel (last * item), useful if you did not define @c member_count. * * @since 1.2 */ #define EINA_VALUE_STRUCT_MEMBER_SENTINEL {NULL, NULL, 0} /** * @struct _Eina_Value_Struct * Used to store the memory and its description. * @since 1.2 */ struct _Eina_Value_Struct { const Eina_Value_Struct_Desc *desc; /**< How to manage the structure */ void *memory; /**< The managed structure memory */ }; /** * @brief Create generic value storage of type struct. * @param desc how to manage this struct members. * @return The new value or @c NULL on failure. * * Create a new generic value storage of type struct. The members are * managed using the description specified by @a desc. * * On failure, @c NULL is returned and #EINA_ERROR_OUT_OF_MEMORY * or #EINA_ERROR_VALUE_FAILED is set. * * @note this creates from mempool and then uses * eina_value_struct_setup(). * * @see eina_value_free() * @see eina_value_struct_setup() * * @since 1.2 */ EAPI Eina_Value *eina_value_struct_new(const Eina_Value_Struct_Desc *desc) EINA_ARG_NONNULL(1); /** * @brief Initialize generic value storage of type struct. * @param value value object * @param desc how to manage this struct members. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * Initializes new generic value storage of type struct with the given * @a desc. * * This is the same as calling eina_value_set() * with #EINA_VALUE_TYPE_STRUCT followed by eina_value_pset() with * the #Eina_Value_Struct description configured. * * @note Existing contents are ignored! If the value was previously used, then * use eina_value_flush() first. * * On failure, #EINA_FALSE is returned and #EINA_ERROR_OUT_OF_MEMORY * or #EINA_ERROR_VALUE_FAILED is set. * * @see eina_value_flush() * * @since 1.2 */ static inline Eina_Bool eina_value_struct_setup(Eina_Value *value, const Eina_Value_Struct_Desc *desc) EINA_ARG_NONNULL(1, 2); /** * @brief Set the generic value in an struct member. * @param value source value object * @param name name to find the member * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The variable argument is dependent on chosen member type. The list * for basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char * @li EINA_VALUE_TYPE_USHORT: unsigned short * @li EINA_VALUE_TYPE_UINT: unsigned int * @li EINA_VALUE_TYPE_ULONG: unsigned long * @li EINA_VALUE_TYPE_UINT64: uint64_t * @li EINA_VALUE_TYPE_CHAR: char * @li EINA_VALUE_TYPE_SHORT: short * @li EINA_VALUE_TYPE_INT: int * @li EINA_VALUE_TYPE_LONG: long * @li EINA_VALUE_TYPE_INT64: int64_t * @li EINA_VALUE_TYPE_FLOAT: float * @li EINA_VALUE_TYPE_DOUBLE: double * @li EINA_VALUE_TYPE_STRINGSHARE: const char * * @li EINA_VALUE_TYPE_STRING: const char * * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @code * struct myst { * int i; * char c; * }; * const Eina_Value_Struct_Member myst_members[] = { * {"i", EINA_VALUE_TYPE_INT, 0}, * {"c", EINA_VALUE_TYPE_CHAR, 4}, * {NULL, NULL, 0} * }; * const Eina_Value_Struct_Desc myst_desc = { * EINA_VALUE_STRUCT_DESC_VERSION, * NULL, myst_members, 2, sizeof(struct myst) * }; * Eina_Value *value = eina_value_struct_new(&my_desc); * int x; * char y; * * eina_value_struct_set(value, "i", 5678); * eina_value_struct_get(value, "i", &x); * eina_value_struct_set(value, "c", 0xf); * eina_value_struct_get(value, "c", &y); * eina_value_free(value); * @endcode * * @see eina_value_struct_get() * @see eina_value_struct_vset() * @see eina_value_struct_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_struct_set(Eina_Value *value, const char *name, ...) EINA_ARG_NONNULL(1, 2); /** * @brief Get the generic value from an struct member. * @param value source value object * @param name name to find the member * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in the variable argument parameter, the * actual value is type-dependent, but usually it will be what is * stored inside the object. There shouldn't be any memory allocation, * thus the contents should @b not be freed. * * The variable argument is dependent on chosen member type. The list * for basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @code * struct myst { * int i; * char c; * }; * const Eina_Value_Struct_Member myst_members[] = { * {"i", EINA_VALUE_TYPE_INT, 0}, * {"c", EINA_VALUE_TYPE_CHAR, 4}, * {NULL, NULL, 0} * }; * const Eina_Value_Struct_Desc myst_desc = { * EINA_VALUE_STRUCT_DESC_VERSION, * NULL, myst_members, 2, sizeof(struct myst) * }; * Eina_Value *value = eina_value_struct_new(&my_desc); * int x; * char y; * * eina_value_struct_set(value, "i", 5678); * eina_value_struct_get(value, "i", &x); * eina_value_struct_set(value, "c", 0xf); * eina_value_struct_get(value, "c", &y); * eina_value_free(value); * @endcode * * @see eina_value_struct_set() * @see eina_value_struct_vset() * @see eina_value_struct_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_struct_get(const Eina_Value *value, const char *name, ...) EINA_ARG_NONNULL(1, 2); /** * @brief Set the generic value in an struct member. * @param value source value object * @param name name to find the member * @param args variable argument * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @see eina_value_struct_set() * @see eina_value_struct_get() * @see eina_value_struct_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_struct_vset(Eina_Value *value, const char *name, va_list args) EINA_ARG_NONNULL(1, 2); /** * @brief Get the generic value from an struct member. * @param value source value object * @param name name to find the member * @param args variable argument * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in the variable argument parameter, the * actual value is type-dependent, but usually it will be what is * stored inside the object. There shouldn't be any memory allocation, * thus the contents should @b not be freed. * * @see eina_value_struct_vset() * @see eina_value_struct_get() * @see eina_value_struct_pget() * * @since 1.2 */ static inline Eina_Bool eina_value_struct_vget(const Eina_Value *value, const char *name, va_list args) EINA_ARG_NONNULL(1, 2); /** * @brief Set the generic value in an struct member from pointer. * @param value source value object * @param name name to find the member * @param ptr pointer to specify the contents. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The pointer type is dependent on chosen value type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @note the pointer contents are written using the size defined by * type. It can be larger than void* or uint64_t. * * @code * struct myst { * int i; * char c; * }; * const Eina_Value_Struct_Member myst_members[] = { * {"i", EINA_VALUE_TYPE_INT, 0}, * {"c", EINA_VALUE_TYPE_CHAR, 4}, * {NULL, NULL, 0} * }; * const Eina_Value_Struct_Desc myst_desc = { * EINA_VALUE_STRUCT_DESC_VERSION, * NULL, myst_members, 2, sizeof(struct myst) * }; * Eina_Value *value = eina_value_struct_new(&my_desc); * int x = 5678; * char y = 0xf; * * eina_value_struct_pset(value, "i", &); * eina_value_struct_pget(value, "i", &x); * eina_value_struct_pset(value, "c", &y); * eina_value_struct_pget(value, "c", &y); * eina_value_free(value); * @endcode * * @see eina_value_struct_set() * @see eina_value_struct_get() * @see eina_value_struct_vset() * * @since 1.2 */ static inline Eina_Bool eina_value_struct_pset(Eina_Value *value, const char *name, const void *ptr) EINA_ARG_NONNULL(1, 2, 3); /** * @brief Get the generic value to pointer from an struct member. * @param value source value object * @param name name to find the member * @param ptr pointer to receive the contents. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * The value is returned in pointer contents, the actual value is * type-dependent, but usually it will be what is stored inside the * object. There shouldn't be any memory allocation, thus the contents * should @b not be freed. * * The pointer type is dependent on chosen value type. The list for * basic types: * * @li EINA_VALUE_TYPE_UCHAR: unsigned char* * @li EINA_VALUE_TYPE_USHORT: unsigned short* * @li EINA_VALUE_TYPE_UINT: unsigned int* * @li EINA_VALUE_TYPE_ULONG: unsigned long* * @li EINA_VALUE_TYPE_UINT64: uint64_t* * @li EINA_VALUE_TYPE_CHAR: char* * @li EINA_VALUE_TYPE_SHORT: short* * @li EINA_VALUE_TYPE_INT: int* * @li EINA_VALUE_TYPE_LONG: long* * @li EINA_VALUE_TYPE_INT64: int64_t* * @li EINA_VALUE_TYPE_FLOAT: float* * @li EINA_VALUE_TYPE_DOUBLE: double* * @li EINA_VALUE_TYPE_STRINGSHARE: const char ** * @li EINA_VALUE_TYPE_STRING: const char ** * @li EINA_VALUE_TYPE_HASH: Eina_Value_Hash* * @li EINA_VALUE_TYPE_TIMEVAL: struct timeval* * @li EINA_VALUE_TYPE_BLOB: Eina_Value_Blob* * @li EINA_VALUE_TYPE_STRUCT: Eina_Value_Struct* * * @code * struct myst { * int i; * char c; * }; * const Eina_Value_Struct_Member myst_members[] = { * {"i", EINA_VALUE_TYPE_INT, 0}, * {"c", EINA_VALUE_TYPE_CHAR, 4}, * {NULL, NULL, 0} * }; * const Eina_Value_Struct_Desc myst_desc = { * EINA_VALUE_STRUCT_DESC_VERSION, * NULL, myst_members, 2, sizeof(struct myst) * }; * Eina_Value *value = eina_value_struct_new(&my_desc); * int x = 5678; * char y = 0xf; * * eina_value_struct_pset(value, "i", &); * eina_value_struct_pget(value, "i", &x); * eina_value_struct_pset(value, "c", &y); * eina_value_struct_pget(value, "c", &y); * eina_value_free(value); * @endcode * * @see eina_value_struct_set() * @see eina_value_struct_vset() * @see eina_value_struct_pset() * * @since 1.2 */ static inline Eina_Bool eina_value_struct_pget(const Eina_Value *value, const char *name, void *ptr) EINA_ARG_NONNULL(1, 2, 3); /** * @brief Get the member as Eina_Value copy * @param src source value object * @param name name to find the member * @param dst where to return the member value. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * The argument @a dst is considered uninitialized and it's setup to * the type of the member. * * @since 1.2 */ static inline Eina_Bool eina_value_struct_value_get(const Eina_Value *src, const char *name, Eina_Value *dst) EINA_ARG_NONNULL(1, 2, 3); /** * @brief Set the member from Eina_Value source * @param dst destination value object * @param name name to find the member * @param src source value * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * @since 1.2 */ static inline Eina_Bool eina_value_struct_value_set(Eina_Value *dst, const char *name, const Eina_Value *src) EINA_ARG_NONNULL(1, 2, 3); /** * @brief Get the member as Eina_Value copy given its member description. * @param src source value object * @param member the member description to use * @param dst where to return the member value. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * The argument @a dst is considered uninitialized and it's setup to * the type of the member. * * @since 1.2 */ static inline Eina_Bool eina_value_struct_member_value_get(const Eina_Value *src, const Eina_Value_Struct_Member *member, Eina_Value *dst) EINA_ARG_NONNULL(1, 2, 3); /** * @brief Set the member from Eina_Value source * @param dst destination value object * @param member the member description to use * @param src source value * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * @since 1.2 */ static inline Eina_Bool eina_value_struct_member_value_set(Eina_Value *dst, const Eina_Value_Struct_Member *member, const Eina_Value *src) EINA_ARG_NONNULL(1, 2, 3); /** * @} */ /** * @defgroup Eina_Value_Type_Group Generic Value Type management * * @{ */ /** * @def EINA_VALUE_TYPE_VERSION * Current API version, used to validate type. */ #define EINA_VALUE_TYPE_VERSION (1) /** * @struct _Eina_Value_Type * API to access values. * * @since 1.2 */ struct _Eina_Value_Type { unsigned int version; /**< must be #EINA_VALUE_TYPE_VERSION */ unsigned int value_size; /**< byte size of value */ const char *name; /**< name for debug and introspection */ Eina_Bool (*setup)(const Eina_Value_Type *type, void *mem); /**< mem will be malloc(value_size) and should be configured */ Eina_Bool (*flush)(const Eina_Value_Type *type, void *mem); /**< clear any values from mem */ Eina_Bool (*copy)(const Eina_Value_Type *type, const void *src, void *dst); /**< how to copy values, both memory are @c value_size */ int (*compare)(const Eina_Value_Type *type, const void *a, const void *b); /**< how to compare values, both memory are @c value_size */ Eina_Bool (*convert_to)(const Eina_Value_Type *type, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem); /**< how to convert values, both memory are @c value_size */ Eina_Bool (*convert_from)(const Eina_Value_Type *type, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem); /**< how to convert values, both memory are @c value_size */ Eina_Bool (*vset)(const Eina_Value_Type *type, void *mem, va_list args); /**< how to set memory from variable argument */ Eina_Bool (*pset)(const Eina_Value_Type *type, void *mem, const void *ptr); /**< how to set memory from pointer */ Eina_Bool (*pget)(const Eina_Value_Type *type, const void *mem, void *ptr); /**< how to read memory */ }; /** * @brief Query type name. * @param type type reference. * @return string or @c NULL if type is invalid. * @since 1.2 */ EAPI const char *eina_value_type_name_get(const Eina_Value_Type *type) EINA_PURE EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Check if type is valid. * @param type type reference. * @return #EINA_TRUE if valid, #EINA_FALSE otherwise. * * A type is invalid if it's NULL or if version field is not the same * as runtime #EINA_VALUE_TYPE_VERSION. * * @since 1.2 */ EAPI Eina_Bool eina_value_type_check(const Eina_Value_Type *type) EINA_PURE EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /** * @brief Initialize memory using type descriptor. * @param type type reference. * @param mem memory to operate, must be of size @c type->value_size. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @since 1.2 */ static inline Eina_Bool eina_value_type_setup(const Eina_Value_Type *type, void *mem); /** * @brief Flush (clear) memory using type descriptor. * @param type type reference. * @param mem memory to operate, must be of size @c type->value_size. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @since 1.2 */ static inline Eina_Bool eina_value_type_flush(const Eina_Value_Type *type, void *mem); /** * @brief Copy memory using type descriptor. * @param type type reference. * @param src memory to operate, must be of size @c type->value_size. * @param dst memory to operate, must be of size @c type->value_size. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @since 1.2 */ static inline Eina_Bool eina_value_type_copy(const Eina_Value_Type *type, const void *src, void *dst); /** * @brief Compare memory using type descriptor. * @param type type reference. * @param a memory to operate, must be of size @c type->value_size. * @param b memory to operate, must be of size @c type->value_size. * @return less than zero if a < b, greater than zero if a > b, zero if equal. * @since 1.2 */ static inline int eina_value_type_compare(const Eina_Value_Type *type, const void *a, const void *b); /** * @brief Convert memory using type descriptor. * @param type type reference of the source. * @param convert type reference of the destination. * @param type_mem memory to operate, must be of size @c type->value_size. * @param convert_mem memory to operate, must be of size @c convert->value_size. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @since 1.2 */ static inline Eina_Bool eina_value_type_convert_to(const Eina_Value_Type *type, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem); /** * @brief Convert memory using type descriptor. * @param type type reference of the destination. * @param convert type reference of the source. * @param type_mem memory to operate, must be of size @c type->value_size. * @param convert_mem memory to operate, must be of size @c convert->value_size. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @since 1.2 */ static inline Eina_Bool eina_value_type_convert_from(const Eina_Value_Type *type, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem); /** * @brief Set memory using type descriptor and variable argument. * @param type type reference of the source. * @param mem memory to operate, must be of size @c type->value_size. * @param args input value. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @since 1.2 */ static inline Eina_Bool eina_value_type_vset(const Eina_Value_Type *type, void *mem, va_list args); /** * @brief Set memory using type descriptor and pointer. * @param type type reference of the source. * @param mem memory to operate, must be of size @c type->value_size. * @param ptr pointer to input value. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @since 1.2 */ static inline Eina_Bool eina_value_type_pset(const Eina_Value_Type *type, void *mem, const void *ptr); /** * @brief Get memory using type descriptor. * @param type type reference of the source. * @param mem memory to operate, must be of size @c type->value_size. * @param ptr pointer to output. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @since 1.2 */ static inline Eina_Bool eina_value_type_pget(const Eina_Value_Type *type, const void *mem, void *ptr); /** * @} */ #include "eina_inline_value.x" /** * @} */ /** * @} */ /** * @} */ #endif eina-1.7.10/src/include/eina_file.h0000664000175000017500000004216412175475327013761 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * 2011 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_FILE_H_ #define EINA_FILE_H_ #include #include #include #include "eina_types.h" #include "eina_array.h" #include "eina_iterator.h" /** * @page eina_file_example_01_page * @dontinclude eina_file_01.c * * For brevity includes, variable declarations and initialization was omitted * from this page, however the full source code can be seen @ref * eina_file_example_01 "here". * * Here we have a simple callback to print the name of a file and the path that * contains it: * @skip static * @until } * * We can use this callback in the following call: * @skipline eina_file_dir_list * * The above was a way to print the files in a directory, but it is not the only * one: * @until iterator_free * * And now two ways to get more information than just file names: * @until iterator_free * @until iterator_free * * The above ways of getting files on a list may produce the same output, but * they have an important difference, eina_file_direct_ls() will @b not call * stat, this means that on some systems it might not have file type * information. On the other hand it might be faster than eina_file_stat_ls(). */ /** * @page eina_file_example_01 * @include eina_file_01.c * @example eina_file_01.c */ /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @addtogroup Eina_File_Group File * * @brief Functions to handle files and directories. * * This functions make it easier to do a number o file and directory operations * such as getting the list of files in a directory, spliting paths and finding * out file size and type. * * @warning All functions in this group are @b blocking which means they make * take a long time to return, use them carefully. * * See an example @ref eina_file_example_01_page "here". * * @{ */ /** * @typedef Eina_File_Direct_Info * A typedef to #_Eina_File_Direct_Info. */ typedef struct _Eina_File_Direct_Info Eina_File_Direct_Info; /** * @typedef Eina_Stat * A typedef to #_Eina_Stat. * @since 1.2 */ typedef struct _Eina_Stat Eina_Stat; /** * @typedef Eina_File_Lines * A typedef to #_Eina_File_Lines. */ typedef struct _Eina_File_Line Eina_File_Line; /** * @typedef Eina_File_Dir_List_Cb * Type for a callback to be called when iterating over the files of a * directory. * @param The file name EXCLUDING the path * @param path The path passed to eina_file_dir_list() * @param data The data passed to eina_file_dir_list() */ typedef void (*Eina_File_Dir_List_Cb)(const char *name, const char *path, void *data); /** * @typedef Eina_File_Type * file type in Eina_File_Direct_Info. */ typedef enum { EINA_FILE_UNKNOWN, /**< Unknown file type. */ EINA_FILE_FIFO, /**< Named pipe (FIFO) type (unused on Windows). */ EINA_FILE_CHR, /**< Character device type (unused on Windows). */ EINA_FILE_DIR, /**< Directory type. */ EINA_FILE_BLK, /**< Block device type (unused on Windows). */ EINA_FILE_REG, /**< Regular file type. */ EINA_FILE_LNK, /**< Symbolic link type. */ EINA_FILE_SOCK, /**< UNIX domain socket type (unused on Windows). */ EINA_FILE_WHT /**< Whiteout file type (unused on Windows). */ } Eina_File_Type; typedef struct _Eina_File Eina_File; /** * @typedef Eina_File_Populate * File access type used in Eina_File_Direct_info. */ typedef enum { EINA_FILE_RANDOM, /**< Advise random memory access to the mapped memory. */ EINA_FILE_SEQUENTIAL, /**< Advise sequential memory access to the mapped memory. */ EINA_FILE_WILLNEED, /**< Advise need for all the mapped memory. */ EINA_FILE_POPULATE /**< Request all the mapped memory. */ } Eina_File_Populate; /* Why do this? Well PATH_MAX may vary from when eina itself is compiled * to when the app using eina is compiled. exposing the path buffer below * can't safely and portably vary based on how/when you compile. it should * always be the same for both eina inside AND for apps outside that use eina * so define this to 8192 - most PATH_MAX values are like 4096 or 1024 (with * windows i think being 260), so 8192 should cover almost all cases. there * is a possibility that PATH_MAX could be more than 8192. if anyone spots * a path_max that is bigger - let us know, but, for now we will assume * it never happens */ /** * @def EINA_PATH_MAX * @brief The constant defined as the highest value for PATH_MAX. */ #define EINA_PATH_MAX 8192 /** * @struct _Eina_File_Direct_Info * A structure to store informations of a path. */ struct _Eina_File_Direct_Info { size_t path_length; /**< size of the whole path */ size_t name_length; /**< size of the filename/basename component */ size_t name_start; /**< where the filename/basename component starts */ Eina_File_Type type; /**< file type */ char path[EINA_PATH_MAX]; /**< the path */ }; /** * @struct _Eina_Stat * A structure to store informations of a path. * @since 1.2 */ struct _Eina_Stat { unsigned long int dev; unsigned long int ino; unsigned int mode; unsigned int nlink; unsigned int uid; unsigned int gid; unsigned long int rdev; unsigned long int size; unsigned long int blksize; unsigned long int blocks; unsigned long int atime; unsigned long int atimensec; unsigned long int mtime; unsigned long int mtimensec; unsigned long int ctime; unsigned long int ctimensec; }; /** * @struct _Eina_File_Line * A structure to store information of line * @since 1.3 */ struct _Eina_File_Line { const char *start; const char *end; unsigned int index; unsigned long long length; }; /** * @def EINA_FILE_DIR_LIST_CB * @brief cast to an #Eina_File_Dir_List_Cb. * * @param function The function to cast. * * This macro casts @p function to Eina_File_Dir_List_Cb. */ #define EINA_FILE_DIR_LIST_CB(function) ((Eina_File_Dir_List_Cb)function) /** * @brief List all files on the directory calling the function for every file found. * * @param dir The directory name. * @param recursive Iterate recursively in the directory. * @param cb The callback to be called. * @param data The data to pass to the callback. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function calls @p cb for each file that is in @p dir. To have @p cb * called on files that are in subdirectories of @p dir @p recursive should * be #EINA_TRUE. In other words if @p recursive is #EINA_FALSE, only direct children * of @p dir will be operated on, if @p recursive is #EINA_TRUE the entire tree * of files that is below @p dir will be operated on. * * If @p cb or @p dir are @c NULL, or if @p dir is a string of size 0, * or if @p dir can not be opened, this function returns #EINA_FALSE * immediately. otherwise, it returns #EINA_TRUE. */ EAPI Eina_Bool eina_file_dir_list(const char *dir, Eina_Bool recursive, Eina_File_Dir_List_Cb cb, void *data) EINA_ARG_NONNULL(1, 3); /** * @brief Split a path according to the delimiter of the filesystem. * * @param path The path to split. * @return An array of the parts of the path to split. * * This function splits @p path according to the delimiter of the used * filesystem. If @p path is @c NULL or if the array can not be * created, @c NULL is returned, otherwise, an array with each part of @p path * is returned. */ EAPI Eina_Array *eina_file_split(char *path) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; /** * @brief Get an iterator to list the content of a directory. * * @param dir The name of the directory to list * @return Return an Eina_Iterator that will walk over the files and directories * in @p dir. On failure it will return @c NULL. * * Returns an iterator for shared strings, the name of each file in @p dir will * only be fetched when advancing the iterator, which means there is very little * cost associated with creating the list and stopping halfway through it. * * @warning The iterator will hand the user a stringshared value with the full * path. The user must free the string using eina_stringshare_del() on it. * * @note The container for the iterator is of type DIR*. * @note The iterator will walk over '.' and '..' without returning them. * * @see eina_file_direct_ls() */ EAPI Eina_Iterator *eina_file_ls(const char *dir) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; /** * @brief Get an iterator to list the content of a directory, with direct * information. * * @param dir The name of the directory to list * * @return Return an Eina_Iterator that will walk over the files and * directory in the pointed directory. On failure it will * return NULL. * * Returns an iterator for Eina_File_Direct_Info, the name of each file in @p * dir will only be fetched when advancing the iterator, which means there is * cost associated with creating the list and stopping halfway through it. * * @warning The Eina_File_Direct_Info returned by the iterator must not * be modified in any way. * @warning When the iterator is advanced or deleted the Eina_File_Direct_Info * returned is no longer valid. * * @note The container for the iterator is of type DIR*. * @note The iterator will walk over '.' and '..' without returning them. * @note The difference between this function and eina_file_direct_ls() is that * it guarantees the file type information will be correct incurring a * possible performance penalty. * * @see eina_file_direct_ls() */ EAPI Eina_Iterator *eina_file_stat_ls(const char *dir) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; /** * @brief Use information provided by Eina_Iterator of eina_file_stat_ls or eina_file_direct_ls * to call stat in the most efficient way on your system. * * @param container The container returned by the Eina_Iterator using eina_iterator_container_get(). * @param info The content of the current Eina_File_Direct_Info provided by the Eina_Iterator * @param buf Where to put the result of the stat * @return On success @c 0 is returned, On error @c -1 is returned and errno is set appropriately. * * This function calls fstatat or stat depending on what your system supports. This makes it efficient and simple * to use on your side without complex detection already done inside Eina on what the system can do. * * @see eina_file_direct_ls() * @see eina_file_stat_ls() * @since 1.2 */ EAPI int eina_file_statat(void *container, Eina_File_Direct_Info *info, Eina_Stat *buf) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2, 3); /** * @brief Get an iterator to list the content of a directory, with direct * information. * * @param dir The name of the directory to list * * @return Return an Eina_Iterator that will walk over the files and * directory in the pointed directory. On failure it will * return @c NULL. * * Returns an iterator for Eina_File_Direct_Info, the name of each file in @p * dir will only be fetched when advancing the iterator, which means there is * cost associated with creating the list and stopping halfway through it. * * @warning If readdir_r doesn't contain file type information file type will * be DT_UNKNOW. * @warning The Eina_File_Direct_Info returned by the iterator must not * be modified in any way. * @warning When the iterator is advanced or deleted the Eina_File_Direct_Info * returned is no longer valid. * * @note The container for the iterator is of type DIR*. * @note The iterator will walk over '.' and '..' without returning them. * @note The difference between this function and eina_file_stat_ls() is that * it may not get the file type information however it is likely to be * faster. * * @see eina_file_ls() */ EAPI Eina_Iterator *eina_file_direct_ls(const char *dir) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; /** * @brief Sanitize file path. * * @param path The path to sanitize * * @return an allocated string with the sanitized path. * * This function take care of adding the current working directory if it's a * relative path and also remove all '..' and '//' reference in the original * path. * * @since 1.1 */ EAPI char *eina_file_path_sanitize(const char *path); /** * @brief Get a read-only handler to a file. * * @param name Filename to open * @param shared Requested a shm * @return Eina_File handle to the file * * Opens a file in read-only mode. @p name should be an absolute path. An * Eina_File handle can be shared among multiple instances if @p shared * is #EINA_TRUE. * * @since 1.1 */ EAPI Eina_File *eina_file_open(const char *name, Eina_Bool shared) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; /** * @brief Unref file handler. * * @param file File handler to unref. * * Decrement file's refcount and if it reaches zero close it. * * @since 1.1 */ EAPI void eina_file_close(Eina_File *file); /** * @brief Get file size at open time. * * @param file The file handler to request the size from. * @return The length of the file. * * @since 1.1 */ EAPI size_t eina_file_size_get(Eina_File *file); /** * @brief Get the last modification time of an open file. * * @param file The file handler to request the modification time from. * @return The last modification time. * * @since 1.1 */ EAPI time_t eina_file_mtime_get(Eina_File *file); /** * @brief Get the filename of an open file. * * @param file The file handler to request the name from. * @return Stringshared filename of the file. * * @since 1.1 */ EAPI const char *eina_file_filename_get(Eina_File *file); /** * @brief Get the eXtended attribute of an open file. * * @param file The file handler to request the eXtended attribute from. * @return an iterator. * * The iterator will list all eXtended attribute name without allocating * them, so you need to copy them yourself if needed. * * @since 1.2 */ EAPI Eina_Iterator *eina_file_xattr_get(Eina_File *file); /** * @brief Get the eXtended attribute of an open file. * * @param file The file handler to request the eXtended attribute from. * @return an iterator. * * The iterator will list all eXtended attribute without allocating * them, so you need to copy them yourself if needed. It is returning * Eina_Xattr structure. * * @since 1.2 */ EAPI Eina_Iterator *eina_file_xattr_value_get(Eina_File *file); /** * @brief Map all the file to a buffer. * * @param file The file handler to map in memory * @param rule The rule to apply to the mapped memory * @return A pointer to a buffer that map all the file content. @c NULL if it fail. * * @since 1.1 */ EAPI void *eina_file_map_all(Eina_File *file, Eina_File_Populate rule); /** * @brief Map a part of the file. * * @param file The file handler to map in memory * @param rule The rule to apply to the mapped memory * @param offset The offset inside the file * @param length The length of the memory to map * @return A valid pointer to the system memory with @p length valid byte in it. And @c NULL if not inside the file or anything else goes wrong. * * This does handle refcounting so it will share map that target the same memory area. * * @since 1.1 */ EAPI void *eina_file_map_new(Eina_File *file, Eina_File_Populate rule, unsigned long int offset, unsigned long int length); /** * @brief Unref and unmap memory if possible. * * @param file The file handler to unmap memory from. * @param map Memory map to unref and unmap. * * @since 1.1 */ EAPI void eina_file_map_free(Eina_File *file, void *map); /** * @brief Map line by line in memory efficiently with an Eina_Iterator * @param file The file to run over * @return an Eina_Iterator that will produce @typedef Eina_File_Lines. * * This function return an iterator that will act like fgets without the * useless memcpy. Be aware that once eina_iterator_next has been called, * nothing garanty you that the memory will still be mapped. * * @since 1.3 */ EAPI Eina_Iterator *eina_file_map_lines(Eina_File *file); /** * @brief Tell if their was an IO error during the life of a mmaped file * * @param file The file handler to the mmaped file. * @param map Memory map to check if an error occurred on it. * @return #EINA_TRUE if there was an IO error, #EINA_FALSE otherwise. * * @since 1.2 */ EAPI Eina_Bool eina_file_map_faulted(Eina_File *file, void *map); /** * @} */ /** * @} */ #endif /* EINA_FILE_H_ */ eina-1.7.10/src/include/eina_convert.h0000664000175000017500000002514312175475327014520 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric BAIL, Vincent Torri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_CONVERT_H_ #define EINA_CONVERT_H_ #include "eina_types.h" #include "eina_error.h" #include "eina_fp.h" /** * @addtogroup Eina_Convert_Group Convert * * These functions allow you to convert integer or real numbers to * string or conversely. * * To use these functions, you have to call eina_init() * first, and eina_shutdown() when eina is not used anymore. * * @section Eina_Convert_From_Integer_To_Sring Conversion from integer to string * * To convert an integer to a string in the decimal base, * eina_convert_itoa() should be used. If the hexadecimal base is * wanted, eina_convert_xtoa() should be used. They all need a buffer * sufficiently large to store all the cyphers. * * Here is an example of use: * * @code * #include * #include * * #include * * int main(void) * { * char tmp[128]; * * if (!eina_init()) * { * printf ("Error during the initialization of eina.\n"); * return EXIT_FAILURE; * } * * eina_convert_itoa(45, tmp); * printf("value: %s\n", tmp); * eina_convert_xtoa(0xA1, tmp); * printf("value: %s\n", tmp); * * eina_shutdown(); * * return EXIT_SUCCESS; * } * @endcode * * Compile this code with the following command: * * @code * gcc -Wall -o test_eina_convert test_eina.c `pkg-config --cflags --libs eina` * @endcode * * @note * The alphabetical cyphers are in lower case. * * @section Eina_Convert_Double Conversion double / string * * To convert a double to a string, eina_convert_dtoa() should be * used. Like with the integer functions, a buffer must be used. The * resulting string has the following format (which is the result * obtained with snprintf() and the @%a modifier): * * @code * [-]0xh.hhhhhp[+-]e * @endcode * * To convert a string to a double, eina_convert_atod() should be * used. The format of the string must be as above. Then, the double * has the following mantiss and exponent: * * @code * mantiss : [-]hhhhhh * exponent : 2^([+-]e - 4 * n) * @endcode * * with n being number of cypers after the point in the string * format. To obtain the double number from the mantiss and exponent, * use ldexp(). * * Here is an example of use: * * @code * #include * #include * #include * * #include * * int main(void) * { * char tmp[128]; * long long int m = 0; * long int e = 0; * double r; * * if (!eina_init()) * { * printf ("Error during the initialization of eina.\n"); * return EXIT_FAILURE; * } * * printf("initial value : 40.56\n"); * eina_convert_dtoa(40.56, tmp); * printf("result dtoa : %s\n", tmp); * eina_convert_atod(tmp, 128, &m, &e); * r = ldexp((double)m, e); * printf("result atod : %f\n", r); * * eina_shutdown(); * * return EXIT_SUCCESS; * } * @endcode * * Compile this code with the following command: * * @code * gcc -Wall -o test_eina_convert test_eina.c `pkg-config --cflags --libs eina` -lm * @endcode */ /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @defgroup Eina_Convert_Group Convert * * @{ */ /** * @var EINA_ERROR_CONVERT_P_NOT_FOUND * Error identifier corresponding to string not containing 'p'. */ EAPI extern Eina_Error EINA_ERROR_CONVERT_P_NOT_FOUND; /** * @var EINA_ERROR_CONVERT_0X_NOT_FOUND * Error identifier corresponding to string not containing '0x'. */ EAPI extern Eina_Error EINA_ERROR_CONVERT_0X_NOT_FOUND; /** * @var EINA_ERROR_CONVERT_OUTRUN_STRING_LENGTH * Error identifier corresponding to length of the string being too small. */ EAPI extern Eina_Error EINA_ERROR_CONVERT_OUTRUN_STRING_LENGTH; /** * @brief Convert an integer number to a string in decimal base. * * @param n The integer to convert. * @param s The buffer to store the converted integer. * @return The length of the string, including the nul terminated * character. * * This function converts @p n to a nul terminated string. The * converted string is in decimal base. As no check is done, @p s must * be a buffer that is sufficiently large to store the integer. * * The returned value is the length of the string, including the nul * terminated character. */ EAPI int eina_convert_itoa(int n, char *s) EINA_ARG_NONNULL(2); /** * @brief Convert an integer number to a string in hexadecimal base. * * @param n The integer to convert. * @param s The buffer to store the converted integer. * @return The length of the string, including the nul terminated * character. * * This function converts @p n to a nul terminated string. The * converted string is in hexadecimal base and the alphabetical * cyphers are in lower case. As no check is done, @p s must be a * buffer that is sufficiently large to store the integer. * * The returned value is the length of the string, including the nul * terminated character. */ EAPI int eina_convert_xtoa(unsigned int n, char *s) EINA_ARG_NONNULL(2); /** * @brief Convert a double to a string. * * @param d The double to convert. * @param des The destination buffer to store the converted double. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function converts the double @p d to a string. The string is * stored in the buffer pointed by @p des and must be sufficiently * large to contain the converted double. The returned string is nul * terminated and has the following format: * * @code * [-]0xh.hhhhhp[+-]e * @endcode * * where the h are the hexadecimal cyphers of the mantiss and e the * exponent (a decimal number). * * The returned value is the length of the string, including the nul * character. */ EAPI int eina_convert_dtoa(double d, char *des) EINA_ARG_NONNULL(2); /** * @brief Convert a string to a double. * * @param src The string to convert. * @param length The length of the string. * @param m The mantisse. * @param e The exponent. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function converts the string @p s of length @p length that * represent a double in hexadecimal base to a double. It is used to * replace the use of snprintf() with the \%a modifier, which is * missing on some platform (like Windows (tm) or OpenBSD). * * The string must have the following format: * * @code * [-]0xh.hhhhhp[+-]e * @endcode * * where the h are the hexadecimal cyphers of the mantiss and e the * exponent (a decimal number). If n is the number of cypers after the * point, the returned mantiss and exponents are: * * @code * mantiss : [-]hhhhhh * exponent : 2^([+-]e - 4 * n) * @endcode * * The mantiss and exponent are stored in the buffers pointed * respectively by @p m and @p e. * * If the string is invalid, the error is set to: * * @li #EINA_ERROR_CONVERT_0X_NOT_FOUND if no 0x is found, * @li #EINA_ERROR_CONVERT_P_NOT_FOUND if no p is found, * @li #EINA_ERROR_CONVERT_OUTRUN_STRING_LENGTH if @p length is not * correct. * * In those cases, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ EAPI Eina_Bool eina_convert_atod(const char *src, int length, long long *m, long *e) EINA_ARG_NONNULL(1, 3, 4); /** * @brief Convert a 32.32 fixed point number to a string. * * @param fp The fixed point number to convert. * @param des The destination buffer to store the converted fixed point number. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function converts the 32.32 fixed point number @p fp to a * string. The string is stored in the buffer pointed by @p des and * must be sufficiently large to contain the converted fixed point * number. The returned string is terminated and has the following * format: * * @code * [-]0xh.hhhhhp[+-]e * @endcode * * where the h are the hexadecimal cyphers of the mantiss and e the * exponent (a decimal number). * * The returned value is the length of the string, including the nul * character. * * @note The code is the same than eina_convert_dtoa() except that it * implements the frexp() function for fixed point numbers and does * some optimisations. */ EAPI int eina_convert_fptoa(Eina_F32p32 fp, char *des) EINA_ARG_NONNULL(2); /** * @brief Convert a string to a 32.32 fixed point number. * * @param src The string to convert. * @param length The length of the string. * @param fp The fixed point number. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function converts the string @p src of length @p length that * represent a double in hexadecimal base to a 32.32 fixed point * number stored in @p fp. The function always tries to convert the * string with eina_convert_atod(). * * The string must have the following format: * * @code * [-]0xh.hhhhhp[+-]e * @endcode * * where the h are the hexadecimal cyphers of the mantiss and e the * exponent (a decimal number). If n is the number of cypers after the * point, the returned mantiss and exponents are: * * @code * mantiss : [-]hhhhhh * exponent : 2^([+-]e - 4 * n) * @endcode * * The mantiss and exponent are stored in the buffers pointed * respectively by @p m and @p e. * * If the string is invalid, the error is set to: * * @li #EINA_ERROR_CONVERT_0X_NOT_FOUND if no 0x is found, * @li #EINA_ERROR_CONVERT_P_NOT_FOUND if no p is found, * @li #EINA_ERROR_CONVERT_OUTRUN_STRING_LENGTH if @p length is not * correct. * * In those cases, or if @p fp is @c NULL, #EINA_FALSE is returned, * otherwise @p fp is computed and #EINA_TRUE is returned. * * @note The code uses eina_convert_atod() and do the correct bit * shift to compute the fixed point number. */ EAPI Eina_Bool eina_convert_atofp(const char *src, int length, Eina_F32p32 *fp) EINA_ARG_NONNULL(1, 3); /** * @} */ /** * @} */ #endif /* EINA_CONVERT_H_ */ eina-1.7.10/src/include/eina_counter.h0000664000175000017500000001341712175475327014520 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_COUNTER_H_ #define EINA_COUNTER_H_ #include "eina_types.h" /** * @addtogroup Eina_Counter_Group Counter * * @brief These functions allow you to get the time spent in a part of a code. * * Before using the counter system, Eina must be initialized with * eina_init() and later shut down with eina_shutdown(). The create a * counter, use eina_counter_new(). To free it, use * eina_counter_free(). * * To time a part of a code, call eina_counter_start() just before it, * and eina_counter_stop() just after it. Each time you start to time * a code, a clock is added to a list. You can give a number of that * clock with the second argument of eina_counter_stop(). To send all * the registered clocks to a stream (like stdout, ofr a file), use * eina_counter_dump(). * * Here is a straightforward example: * * @code * #include * #include * * #include * * void test_malloc(void) * { * int i; * * for (i = 0; i < 100000; ++i) * { * void *buf; * * buf = malloc(100); * free(buf); * } * } * * int main(void) * { * Eina_Counter *counter; * * if (!eina_init()) * { * printf("Error during the initialization of eina\n"); * return EXIT_FAILURE; * } * * counter = eina_counter_new("malloc"); * * eina_counter_start(counter); * test_malloc(); * eina_counter_stop(counter, 1); * * char* result = eina_counter_dump(counter); * printf("%s", result); * free(result); * * eina_counter_free(counter); * eina_shutdown(); * * return EXIT_SUCCESS; * } * @endcode * * Compile this code with the following commant: * * @verbatim * gcc -Wall -o test_eina_counter test_eina.c `pkg-config --cflags --libs eina` * @endverbatim * * The result should be something like that: * * @verbatim * \# specimen experiment time starting time ending time * 1 9794125 783816 10577941 * @endverbatim * * @note The displayed time is in nanosecond. */ /** * @addtogroup Eina_Tools_Group Tools * * @{ */ /** * @defgroup Eina_Counter_Group Counter * * @{ */ /** * @typedef Eina_Counter * Counter type. */ typedef struct _Eina_Counter Eina_Counter; /** * @brief Return a counter. * * @param name The name of the counter. * @return A newly allocated counter. * * This function returns a new counter. It is characterized by @p * name. If @p name is @c NULL, the function returns @c NULL * immediately. If memory allocation fails, @c NULL is returned and the * error is set to #EINA_ERROR_OUT_OF_MEMORY. * * Whe the new counter is not needed anymore, use eina_counter_free() to * free the allocated memory. */ EAPI Eina_Counter *eina_counter_new(const char *name) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); /** * @brief Delete a counter. * * @param counter The counter to delete. * * This function remove the clock of @p counter from the used clocks * (see eina_counter_start()) and frees the memory allocated for * @p counter. If @p counter is @c NULL, the function returns * immediately. */ EAPI void eina_counter_free(Eina_Counter *counter) EINA_ARG_NONNULL(1); /** * @brief Start the time count. * * @param counter The counter. * * This function specifies that the part of the code beginning just * after its call is being to be timed, using @p counter. If * @p counter is @c NULL, this function returns immediately. * * This function adds the clock associated to @p counter in a list. If * the memory needed by that clock can not be allocated, the function * returns and the error is set to #EINA_ERROR_OUT_OF_MEMORY. * * To stop the timing, eina_counter_stop() must be called with the * same counter. */ EAPI void eina_counter_start(Eina_Counter *counter) EINA_ARG_NONNULL(1); /** * @brief Stop the time count. * * @param counter The counter. * @param specimen The number of the test. * * This function stop the timing that has been started with * eina_counter_start(). @p counter must be the same than the one used * with eina_counter_start(). @p specimen is the number of the * test. If @p counter or its associated clock are @c NULL, or if the * time can't be retrieved the function exits. */ EAPI void eina_counter_stop(Eina_Counter *counter, int specimen) EINA_ARG_NONNULL(1); /** * @brief Dump the result of all clocks of a counter to a stream. * * @return A string with a summary of the test. * @param counter The counter. * * This function returns an malloc'd string containing the dump of * all the valid clocks of @p counter. * If @p counter @c NULL, the functions exits * immediately. Otherwise, the output is formattted like that: * * @verbatim * \# specimen experiment time starting time ending time * 1 208 120000 120208 * @endverbatim * * The unit of time is the nanosecond. */ EAPI char *eina_counter_dump(Eina_Counter *counter) EINA_ARG_NONNULL(1); /** * @} */ /** * @} */ #endif /* EINA_COUNTER_H_ */ eina-1.7.10/src/include/eina_inline_f32p32.x0000664000175000017500000000540012175475327015327 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2009 Jorge Luis Zapata Muga, Cedric BAIL * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLINE_F32P32_X_ # define EINA_INLINE_F32P32_X_ #include static inline Eina_F32p32 eina_f32p32_add(Eina_F32p32 a, Eina_F32p32 b) { return a + b; } static inline Eina_F32p32 eina_f32p32_sub(Eina_F32p32 a, Eina_F32p32 b) { return a - b; } static inline Eina_F32p32 eina_f32p32_mul(Eina_F32p32 a, Eina_F32p32 b) { /* Prevent overflow and do '(a * b) >> 32' */ /* Basically do: Eina_F16p16 * Eina_F16p16 = Eina_F32p32 */ Eina_F32p32 up; Eina_F32p32 down; Eina_F32p32 result; uint64_t as, bs; Eina_F32p32 sign; sign = a ^ b; as = eina_fp32p32_llabs(a); bs = eina_fp32p32_llabs(b); up = (as >> 16) * (bs >> 16); down = (as & 0xFFFF) * (bs & 0xFFFF); result = up + (down >> 32); return sign < 0 ? - result : result; } static inline Eina_F32p32 eina_f32p32_scale(Eina_F32p32 a, int b) { return a * b; } static inline Eina_F32p32 eina_f32p32_div(Eina_F32p32 a, Eina_F32p32 b) { Eina_F32p32 sign; Eina_F32p32 result; sign = a ^ b; if (b == 0) return sign < 0 ? (Eina_F32p32) 0x8000000000000000ull : (Eina_F32p32) 0x7FFFFFFFFFFFFFFFull; result = (eina_f32p32_mul(eina_fp32p32_llabs(a), (((uint64_t) 1 << 62) / ((uint64_t)(eina_fp32p32_llabs(b)) >> 2)))); return sign < 0 ? - result : result; } static inline Eina_F32p32 eina_f32p32_sqrt(Eina_F32p32 a) { uint64_t root, remHi, remLo, testDiv, count; root = 0; /* Clear root */ remHi = 0; /* Clear high part of partial remainder */ remLo = a; /* Get argument into low part of partial remainder */ count = (31 + (32 >> 1)); /* Load loop counter */ do { remHi = (remHi << 2) | (remLo >> 30); remLo <<= 2; /* get 2 bits of arg */ root <<= 1; /* Get ready for the next bit in the root */ testDiv = (root << 1) + 1; /* Test radical */ if (remHi >= testDiv) { remHi -= testDiv; root++; } } while (count-- != 0); return root; } static inline unsigned int eina_f32p32_fracc_get(Eina_F32p32 v) { return (unsigned int)v; } #endif eina-1.7.10/src/include/eina_inline_log.x0000664000175000017500000001230112175475327015167 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Gustavo Sverzut Barbieri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_LOG_INLINE_H_ #define EINA_LOG_INLINE_H_ /** * @addtogroup Eina_Log_Group Log * * @{ */ /** * @brief Checks whenever the given level should be printed out. * * @param level The level to print * * This is useful to enable certain blocks of code just when given * level is to be used. * * @code * #include * * void my_func(void *data) * { * if (eina_log_level_check(EINA_LOG_LEVEL_WARN)) * expensive_debugging_code(data); * * my_func_code(data); * } * @endcode * * @return #EINA_TRUE if level is equal or smaller than the current global * logging level. */ static inline Eina_Bool eina_log_level_check(int level) { return eina_log_level_get() >= level; } /** * @brief Checks whenever the given level should be printed out. * * @param domain The domain to check * @param level The level to print * * This is useful to enable certain blocks of code just when given * level is to be used. * * @code * #include * * extern int _my_log_dom; * * void my_func(void *data) * { * if (eina_log_domain_level_check(_my_log_dom, EINA_LOG_LEVEL_WARN)) * expensive_debugging_code(data); * * my_func_code(data); * } * @endcode * * @return #EINA_TRUE if level is equal or smaller than the current * domain logging level. */ static inline Eina_Bool eina_log_domain_level_check(int domain, int level) { int dom_level = eina_log_domain_registered_level_get(domain); if (EINA_UNLIKELY(dom_level == EINA_LOG_LEVEL_UNKNOWN)) return EINA_FALSE; return dom_level >= level; } /** * Function to format the level as a 3 character (+1 null byte) string. * * This function converts the given level to a known string name (CRI, * ERR, WRN, INF or DBG) or a zero-padded 3-character string. In any * case the last byte will contain a trailing null byte. * * If extreme level values are used (greater than 999 and smaller than * -99), then the value will just consider the less significant * part. This is so uncommon that users should handle this in their * code. * * @param level what level value to use. * @param name where to write the actual value. * * @return pointer to @p name. */ static inline const char * eina_log_level_name_get(int level, char name[4]) { #define BCPY(A, B, C) \ do { name[0] = A; name[1] = B; name[2] = C; } while (0) if (EINA_UNLIKELY(level < 0)) { name[0] = '-'; name[1] = '0' + (-level / 10) % 10; name[2] = '0' + (-level % 10); } else if (EINA_UNLIKELY(level >= EINA_LOG_LEVELS)) { name[0] = '0' + (level / 100) % 10; name[1] = '0' + (level / 10) % 10; name[2] = '0' + level % 10; } else if (level == 0) BCPY('C', 'R', 'I'); else if (level == 1) BCPY('E', 'R', 'R'); else if (level == 2) BCPY('W', 'R', 'N'); else if (level == 3) BCPY('I', 'N', 'F'); else if (level == 4) BCPY('D', 'B', 'G'); else BCPY('?', '?', '?'); name[3] = '\0'; return name; } /** * Function to get recommended color value for level. * * This function will not check if colors are enabled or not before * returning the level color. If you desire such check, use * eina_log_level_color_if_enabled_get(). * * @param level what level value to use. * * @return pointer to null byte terminated ANSI color string to be * used in virtual terminals supporting VT100 color codes. * * @see eina_log_level_color_if_enabled_get() */ static inline const char * eina_log_level_color_get(int level) { if (level <= 0) return EINA_COLOR_LIGHTRED; else if (level == 1) return EINA_COLOR_RED; else if (level == 2) return EINA_COLOR_YELLOW; else if (level == 3) return EINA_COLOR_GREEN; else if (level == 4) return EINA_COLOR_LIGHTBLUE; else return EINA_COLOR_BLUE; } /** * Function to get recommended color value for level, if colors are * enabled. * * This function will check if colors are enabled or not before * returning the level color. If colors are disabled, then empty * string is returned. * * @param level what level value to use. * * @return pointer to null byte terminated ANSI color string to be * used in virtual terminals supporting VT100 color codes. If * colors are disabled, the empty string is returned. */ static inline const char * eina_log_level_color_if_enabled_get(int level) { if (eina_log_color_disable_get()) return ""; return eina_log_level_color_get(level); } /** * @} */ #endif /* EINA_LOG_INLINE_H_ */ eina-1.7.10/src/include/eina_inline_trash.x0000664000175000017500000000471412175475327015540 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_INLINE_TRASH_X__ #define EINA_INLINE_TRASH_X__ /** * @brief Initialize a trash before using it. * * @param trash The trash. * * This function just set to zero the trash to correctly * initialize it. * * @note You can just set *trash to @c NULL and you will have * the same result. */ static inline void eina_trash_init(Eina_Trash **trash) { *trash = NULL; } /** * @brief Push an unused pointer in the trash instead of freeing it. * * @param trash A pointer to an Eina_Trash. * @param data An unused pointer big enougth to put a (void*). * * Instead of freeing a pointer and put pressure on malloc/free * you can push it in a trash for a later use. This function just * provide a fast way to push a now unused pointer into a trash. * * @note Do never use the pointer after insertion or bad things will * happens. * * @note This trash will not resize, nor do anything with the size of * the region pointed by @p data, so it's your duty to manage the size. */ static inline void eina_trash_push(Eina_Trash **trash, void *data) { Eina_Trash *tmp; tmp = (Eina_Trash *)data; tmp->next = *trash; *trash = tmp; } /** * @brief Pop an available pointer from the trash if possible. * * @param trash A pointer to an Eina_Trash. * * Instead of calling malloc, and putting pressure on malloc/free * you can recycle the content of the trash, if it's not empty. * * @note This trash will not resize, nor do anything with the size of * the region pointed by pointer inside the trash, so it's your duty * to manage the size of the returned pointer. */ static inline void* eina_trash_pop(Eina_Trash **trash) { void *tmp; tmp = *trash; if (*trash) *trash = (*trash)->next; return tmp; } #endif eina-1.7.10/src/include/Makefile.am0000664000175000017500000000336712175475327013733 00000000000000MAINTAINERCLEANFILES = Makefile.in EINAHEADERS = \ eina_safety_checks.h \ eina_error.h \ eina_log.h \ eina_inline_log.x \ eina_fp.h \ eina_inline_f32p32.x \ eina_inline_f16p16.x \ eina_inline_f8p24.x \ eina_inline_fp.x \ eina_hash.h \ eina_inline_hash.x \ eina_lalloc.h \ eina_clist.h \ eina_inline_clist.x \ eina_inarray.h \ eina_inlist.h \ eina_list.h \ eina_file.h \ eina_mempool.h \ eina_module.h \ eina_rectangle.h \ eina_types.h \ eina_array.h \ eina_counter.h \ eina_inline_array.x \ eina_magic.h \ eina_stringshare.h \ eina_binshare.h \ eina_binbuf.h \ eina_ustringshare.h \ eina_inline_stringshare.x \ eina_inline_ustringshare.x \ eina_inline_list.x \ eina_accessor.h \ eina_convert.h \ eina_rbtree.h \ eina_benchmark.h \ eina_inline_rbtree.x \ eina_inline_mempool.x \ eina_inline_rectangle.x \ eina_inline_trash.x \ eina_trash.h \ eina_iterator.h \ eina_main.h \ eina_cpu.h \ eina_sched.h \ eina_tiler.h \ eina_hamster.h \ eina_matrixsparse.h \ eina_inline_tiler.x \ eina_str.h \ eina_inline_str.x \ eina_strbuf.h \ eina_ustrbuf.h \ eina_unicode.h \ eina_quadtree.h \ eina_simple_xml_parser.h \ eina_lock.h \ eina_prefix.h \ eina_refcount.h \ eina_mmap.h \ eina_xattr.h \ eina_value.h \ eina_inline_value.x # Will be back for developper after 1.2. # eina_model.h # eina_object.h if EINA_HAVE_THREADS if EINA_HAVE_WINCE EINAHEADERS += eina_inline_lock_wince.x else if EINA_HAVE_WIN32 EINAHEADERS += eina_inline_lock_win32.x else EINAHEADERS += eina_inline_lock_posix.x endif endif else EINAHEADERS += eina_inline_lock_void.x endif installed_mainheaderdir = $(includedir)/eina-@VMAJ@ dist_installed_mainheader_DATA = Eina.h eina_config.h installed_headersdir = $(includedir)/eina-@VMAJ@/eina dist_installed_headers_DATA = $(EINAHEADERS) EXTRA_DIST = \ eina_config.h.in eina-1.7.10/src/include/Eina.h0000664000175000017500000002317112175475327012717 00000000000000/* EINA - EFL data type library * Copyright (C) 2008-2012 Enlightenment Developers: * Albin "Lutin" Tonnerre * Alexandre "diaxen" Becoulet * Andre Dieb * Arnaud de Turckheim "quarium" * Carsten Haitzler * Cedric Bail * Corey "atmos" Donohoe * Fabiano Fidêncio * Gustavo Chaves * Gustavo Sverzut Barbieri * Jorge Luis "turran" Zapata * Peter "pfritz" Wehrfritz * Raphael Kubo da Costa * Tilman Sauerbeck * Vincent "caro" Torri * Tom Hacohen * Jonas M. Gastal * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_H_ #define EINA_H_ /** * @file * @brief Eina Utility library * * These routines are used for Eina. */ /** * @mainpage Eina * * @version 1.7.5 * @date 2008-2013 * * @section eina_intro_sec Introduction * * The Eina library is a library that implements an API for data types * in an efficient way. It also provides some useful tools like * opening shared libraries, errors management, type conversion, * time accounting and memory pool. * * This library is cross-platform and can be compiled and used on * Linux, BSD, Opensolaris and Windows (XP and CE). * * The data types that are available are (see @ref Eina_Data_Types_Group): * @li @ref Eina_Inline_Array_Group standard array of inlined members. * @li @ref Eina_Array_Group standard array of @c void* data. * @li @ref Eina_Hash_Group standard hash of @c void* data. * @li @ref Eina_Inline_List_Group list with nodes inlined into user type. * @li @ref Eina_CList_Group Compact List. * @li @ref Eina_List_Group standard list of @c void* data. * @li @ref Eina_Iterator_Group Iterator functions. * @li @ref Eina_Matrixsparse_Group sparse matrix of @c void* data. * @li @ref Eina_Rbtree_Group red-black tree with nodes inlined into user type. * @li @ref Eina_String_Buffer_Group mutable string to prepend, insert or append strings to a buffer. * @li @ref Eina_Stringshare_Group saves memory by sharing read-only string references. * @li @ref Eina_Tiler_Group split, merge and navigates into 2D tiled regions. * @li @ref Eina_Trash_Group container of unused but allocated data. * @li @ref Eina_Value_Group container for generic value storage and access. * @li @ref Eina_Model_Group container for data with user defined hierarchy/structure. * * The tools that are available are (see @ref Eina_Tools_Group): * @li @ref Eina_Benchmark_Group helper to write benchmarks. * @li @ref Eina_Convert_Group faster conversion from strings to integers, double, etc. * @li @ref Eina_Counter_Group measures number of calls and their time. * @li @ref Eina_Error_Group error identifiers. * @li @ref Eina_File_Group simple file list and path split. * @li @ref Eina_Lalloc_Group simple lazy allocator. * @li @ref Eina_Log_Group full-featured logging system. * @li @ref Eina_Magic_Group provides runtime type checking. * @li @ref Eina_Memory_Pool_Group abstraction for various memory allocators. * @li @ref Eina_Module_Group lists, loads and share modules using Eina_Module standard. * @li @ref Eina_Rectangle_Group rectangle structure and standard manipulation methods. * @li @ref Eina_Safety_Checks_Group extra checks that will report unexpected conditions and can be disabled at compile time. * @li @ref Eina_String_Group a set of functions that manages C strings. * * Please see the @ref authors page for contact details. * * @defgroup Eina_Data_Types_Group Data Types * * Eina provide easy to use and optimized data types and structures. * * * @defgroup Eina_Containers_Group Containers * * @section Intro Introduction * Containers are data types that hold data and allow iteration over * their elements with an @ref Eina_Iterator_Group, or eventually an * @ref Eina_Accessor_Group. * * The containers in eina are designed with performance in mind, one consequence * of this is that they @b don't check the validity of data structures given to * them(@ref Eina_Magic_Group). * * @section Choice Choosing container type * * The choice of which container to use in each situation is very important in * achieving good performance and readable code. The most common container types * to be used are: * @li List * @li Inline list * @li Array * @li Inline array * @li Hash * * All types have virtues and vices. The following considerations are good * starting point in deciding which container to use: * @li Hashes are appropriate for datasets which will be searched often; * @li arrays are good when accessing members by position; * @li lists provide good versatility for adding elements in any position with * minimal overhead; * @li inline arrays use very little memory and don't cause fragmentation and * therefore are a good option in memory constrained systems; * @li inline lists are the appropriate type to use when the flexibility of a * list is required but the overhead of pointer indirection is not acceptable. * @warning These are general considerations, every situation is different, * don't follow these recommendations blindly. * * @section Creation Creating custom container types * * @note Before creating a custom container check if one of the existing ones * doesn't suit your needs. For example, while there is no stack type @ref * Eina_Array_Group is a very good substitute, similarly there is no queue type * however an @ref Eina_List_Group works very well as a queue. * * If creating a custom container type consider allowing access to the data in * your container through @ref Eina_Iterator_Group "Iterators" and @ref * Eina_Accessor_Group "Accessors". To do so your container should have an * iterator creation function and an accessor creation function, these functions * should return properly populated @ref _Eina_Iterator and @ref _Eina_Accessor. * * @defgroup Eina_Tools_Group Tools * * Eina tools aims to help application development, providing ways to * make it safer, log errors, manage memory more efficiently and more. * */ /** * * @page authors Authors * * @author Albin "Lutin" Tonnerre * @author Alexandre "diaxen" Becoulet * @author Andre Dieb * @author Arnaud de Turckheim "quarium" * @author Carsten Haitzler * @author Cedric Bail * @author Corey "atmos" Donohoe * @author Vincent "caro" Torri * @author Fabiano Fidêncio * @author Gustavo Chaves * @author Gustavo Sverzut Barbieri * @author Jorge Luis "turran" Zapata * @author Tilman Sauerbeck * @author Peter "pfritz" Wehrfritz * @author Raphael Kubo da Costa * @author Tom Hacohen * @author Brett Nash * @author Sebastian Dransfeld * @author Myungjae Lee * @author Youness Alaoui * @author Boris "billiob" Faure * @author Sung W. Park * @author Guillaume Friloux * * Please contact to get in * contact with the developers and maintainers. * */ #ifdef _WIN32 # include #endif #ifdef __cplusplus extern "C" { #endif #include "eina_config.h" #include "eina_types.h" #include "eina_main.h" #include "eina_fp.h" #include "eina_rectangle.h" #include "eina_clist.h" #include "eina_inlist.h" #include "eina_file.h" #include "eina_list.h" #include "eina_hash.h" #include "eina_trash.h" #include "eina_lalloc.h" #include "eina_module.h" #include "eina_mempool.h" #include "eina_error.h" #include "eina_log.h" #include "eina_inarray.h" #include "eina_array.h" #include "eina_binshare.h" #include "eina_stringshare.h" #include "eina_ustringshare.h" #include "eina_magic.h" #include "eina_counter.h" #include "eina_rbtree.h" #include "eina_accessor.h" #include "eina_iterator.h" #include "eina_benchmark.h" #include "eina_convert.h" #include "eina_cpu.h" #include "eina_sched.h" #include "eina_tiler.h" #include "eina_hamster.h" #include "eina_matrixsparse.h" #include "eina_str.h" #include "eina_strbuf.h" #include "eina_binbuf.h" #include "eina_ustrbuf.h" #include "eina_unicode.h" #include "eina_quadtree.h" #include "eina_simple_xml_parser.h" #include "eina_lock.h" #include "eina_prefix.h" #include "eina_refcount.h" #include "eina_mmap.h" #include "eina_xattr.h" #include "eina_value.h" #ifdef __cplusplus } #endif #endif /* EINA_H */ eina-1.7.10/src/include/eina_accessor.h0000664000175000017500000002751012175475327014642 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_ACCESSOR_H__ #define EINA_ACCESSOR_H__ #include "eina_config.h" #include "eina_types.h" #include "eina_magic.h" /** * @page eina_accessor_example_01_page Eina_Accessor usage * @dontinclude eina_accessor_01.c * * We start by including necessary headers, declaring variables and * initializing eina: * @skip #include * @until eina_init * * Next we populate our array and list: * @until } * * Now that we have two containers populated we can actually start the example * and create an accessor: * @until accessor_new * * Once having the accessor we can use it to access certain elements in the * container: * @until } * @note Unlike iterators accessors allow us non-linear access, which allows us * to print only the odd elements in the container. * * As with every other resource we allocate we need to free the accessor(and the * array): * @until array_free * * Now we create another accessor, this time for the list: * @until accessor_new * * And now the interesting bit, we use the same code we used above to print * parts of the array to print parts of the list: * @until } * * And to free the list we use a gimmick, instead of freeing @a list, we ask the * accessor for it's container and free that: * @until list_free * * Finally we shut eina down and leave: * @until } * * The full source code can be found on the examples folder * on the @ref eina_accessor_01_c "eina_accessor_01.c" file. */ /** * @page eina_accessor_01_c Eina_Accessor usage example * * @include eina_accessor_01.c * @example eina_accessor_01.c */ /** * @addtogroup Eina_Accessor_Group Accessor Functions * * @brief These functions manage accessor on containers. * * These functions allow to access elements of a container in a * generic way, without knowing which container is used (a bit like * iterators in the C++ STL). Accessors allows random access (that is, any * element in the container). For sequential access, see * @ref Eina_Iterator_Group. * * Getting an accessor to access elements of a given container is done through * the functions of that particular container. There is no function to create * a generic accessor as accessors absolutely depend on the container. This * means you won't find accessor creation function here, those can be found on * the documentation of the container type you're using. Though created with * container specific functions accessors are always deleted with the same * function: eina_accessor_free(). * * To get the data of an element at a given * position, use eina_accessor_data_get(). To call a function on * chosen elements of a container, use eina_accessor_over(). * * See an example @ref eina_accessor_example_01_page "here". */ /** * @addtogroup Eina_Content_Access_Group Content Access * * @{ */ /** * @defgroup Eina_Accessor_Group Accessor Functions * * @{ */ /** * @typedef Eina_Accessor * Abstract type for accessors. */ typedef struct _Eina_Accessor Eina_Accessor; /** * @typedef Eina_Accessor_Get_At_Callback * Type for a callback that returns the data of a container as the given index. */ typedef Eina_Bool (*Eina_Accessor_Get_At_Callback)(Eina_Accessor *it, unsigned int idx, void **data); /** * @typedef Eina_Accessor_Get_Container_Callback * Type for a callback that returns the container. */ typedef void *(*Eina_Accessor_Get_Container_Callback)(Eina_Accessor *it); /** * @typedef Eina_Accessor_Free_Callback * Type for a callback that frees the container. */ typedef void (*Eina_Accessor_Free_Callback)(Eina_Accessor *it); /** * @typedef Eina_Accessor_Lock_Callback * Type for a callback that lock the container. */ typedef Eina_Bool (*Eina_Accessor_Lock_Callback)(Eina_Accessor *it); /** * @struct _Eina_Accessor * Type to provide random access to data structures. * * If creating an accessor remember to set the type using @ref EINA_MAGIC_SET. */ struct _Eina_Accessor { #define EINA_ACCESSOR_VERSION 1 int version; /**< Version of the Accessor API. */ Eina_Accessor_Get_At_Callback get_at EINA_ARG_NONNULL(1, 3) EINA_WARN_UNUSED_RESULT; /**< Callback called when a data element is requested. */ Eina_Accessor_Get_Container_Callback get_container EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT; /**< Callback called when the container is requested. */ Eina_Accessor_Free_Callback free EINA_ARG_NONNULL(1); /**< Callback called when the container is freed. */ Eina_Accessor_Lock_Callback lock EINA_WARN_UNUSED_RESULT; /**< Callback called when the container is locked. */ Eina_Accessor_Lock_Callback unlock EINA_WARN_UNUSED_RESULT; /**< Callback called when the container is unlocked. */ #define EINA_MAGIC_ACCESSOR 0x98761232 EINA_MAGIC }; /** * @def FUNC_ACCESSOR_GET_AT(Function) * Helper macro to cast @p Function to a Eina_Accessor_Get_At_Callback. */ #define FUNC_ACCESSOR_GET_AT(Function) ((Eina_Accessor_Get_At_Callback)Function) /** * @def FUNC_ACCESSOR_GET_CONTAINER(Function) * Helper macro to cast @p Function to a Eina_Accessor_Get_Container_Callback. */ #define FUNC_ACCESSOR_GET_CONTAINER(Function) ((Eina_Accessor_Get_Container_Callback)Function) /** * @def FUNC_ACCESSOR_FREE(Function) * Helper macro to cast @p Function to a Eina_Accessor_Free_Callback. */ #define FUNC_ACCESSOR_FREE(Function) ((Eina_Accessor_Free_Callback)Function) /** * @def FUNC_ACCESSOR_LOCK(Function) * Helper macro to cast @p Function to a Eina_Iterator_Lock_Callback. */ #define FUNC_ACCESSOR_LOCK(Function) ((Eina_Accessor_Lock_Callback)Function) /** * @brief Free an accessor. * * @param accessor The accessor to free. * * This function frees @p accessor if it is not @c NULL; */ EAPI void eina_accessor_free(Eina_Accessor *accessor); /** * @brief Retrieve the data of an accessor at a given position. * * @param accessor The accessor. * @param position The position of the element. * @param data The pointer that stores the data to retrieve. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * This function retrieves the data of the element pointed by * @p accessor at the porition @p position, and stores it in * @p data. If @p accessor is @c NULL or if an error occurred, #EINA_FALSE * is returned, otherwise #EINA_TRUE is returned. */ EAPI Eina_Bool eina_accessor_data_get(Eina_Accessor *accessor, unsigned int position, void **data) EINA_ARG_NONNULL(1); /** * @brief Return the container of an accessor. * * @param accessor The accessor. * @return The container which created the accessor. * * This function returns the container which created @p accessor. If * @p accessor is @c NULL, this function returns @c NULL. */ EAPI void *eina_accessor_container_get(Eina_Accessor *accessor) EINA_ARG_NONNULL(1) EINA_PURE; /** * @brief Iterate over the container and execute a callback on chosen elements. * * @param accessor The accessor. * @param cb The callback called on the chosen elements. * @param start The position of the first element. * @param end The position of the last element. * @param fdata The data passed to the callback. * * This function iterates over the elements pointed by @p accessor, * starting from the element at position @p start and ending to the * element at position @p end. For Each element, the callback * @p cb is called with the data @p fdata. If @p accessor is @c NULL * or if @p start is greter or equal than @p end, the function returns * immediately. */ EAPI void eina_accessor_over(Eina_Accessor *accessor, Eina_Each_Cb cb, unsigned int start, unsigned int end, const void *fdata) EINA_ARG_NONNULL(2); /** * @brief Lock the container of the accessor. * * @param accessor The accessor. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * If the container of the @p accessor permits it, it will be locked. When a * container is locked calling eina_accessor_over() on it will return * immediately. If @p accessor is @c NULL or if a problem occurred, #EINA_FALSE * is returned, otherwise #EINA_TRUE is returned. If the container isn't * lockable, it will return #EINA_TRUE. * * @warning None of the existing eina data structures are lockable. */ EAPI Eina_Bool eina_accessor_lock(Eina_Accessor *accessor) EINA_ARG_NONNULL(1); /** * @brief Unlock the container of the accessor. * * @param accessor The accessor. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * * If the container of the @p accessor permits it and was previously * locked, it will be unlocked. If @p accessor is @c NULL or if a * problem occurred, #EINA_FALSE is returned, otherwise #EINA_TRUE * is returned. If the container is not lockable, it will * return #EINA_TRUE. * * @warning None of the existing eina data structures are lockable. */ EAPI Eina_Bool eina_accessor_unlock(Eina_Accessor *accessor) EINA_ARG_NONNULL(1); /** * @def EINA_ACCESSOR_FOREACH * @brief Macro to iterate over all elements easily. * * @param accessor The accessor to use. * @param counter A counter used by eina_accessor_data_get() when * iterating over the container. * @param data Where to store * data, must be a pointer support getting * its address since * eina_accessor_data_get() requires a pointer to * pointer! * * This macro allows a convenient way to loop over all elements in an * accessor, very similar to EINA_LIST_FOREACH(). * * This macro can be used for freeing the data of a list, like in the * following example. It has the same goal as the one documented in * EINA_LIST_FOREACH(), but using accessors: * * @code * Eina_List *list; * Eina_Accessor *accessor; * unsigned int i; * char *data; * * // list is already filled, * // its elements are just duplicated strings * * accessor = eina_list_accessor_new(list); * EINA_ACCESSOR_FOREACH(accessor, i, data) * free(data); * eina_accessor_free(accessor); * eina_list_free(list); * @endcode * * @note if the datatype provides both iterators and accessors prefer * to use iterators to iterate over, as they're likely to be more * optimized for such task. * * @note this example is not optimal algorithm to release a list since * it will walk the list twice, but it serves as an example. For * optimized version use EINA_LIST_FREE() * * @warning unless explicitly stated in functions returning accessors, * do not modify the accessed object while you walk it, in this * example using lists, do not remove list nodes or you might * crash! This is not a limitation of accessors themselves, * rather in the accessors implementations to keep them as simple * and fast as possible. */ #define EINA_ACCESSOR_FOREACH(accessor, counter, data) \ for ((counter) = 0; \ eina_accessor_data_get((accessor), (counter), (void **)(void *)&(data)); \ (counter)++) /** * @} */ /** * @} */ #endif eina-1.7.10/src/include/eina_rbtree.h0000664000175000017500000002052112175475327014316 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_RBTREE_H__ #define EINA_RBTREE_H__ #include #include "eina_types.h" #include "eina_error.h" #include "eina_iterator.h" /** * @addtogroup Eina_Rbtree_Group Red-Black tree * * @brief These functions provide Red-Black trees management. * * For a brief description look at http://en.wikipedia.org/wiki/Red-black_tree . * This code is largely inspired from a tutorial written by Julienne Walker at : * http://eternallyconfuzzled.com/tuts/datastructures/jsw_tut_rbtree.aspx . The * main difference is that this set of function never allocate any data, making * them particularly useful for memory management. */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @addtogroup Eina_Containers_Group Containers * * @{ */ /** * @defgroup Eina_Rbtree_Group Red-Black tree * * @{ */ /** * @typedef Eina_Rbtree_Color * node color. */ typedef enum { EINA_RBTREE_RED, EINA_RBTREE_BLACK } Eina_Rbtree_Color; /** * @typedef Eina_Rbtree_Direction * walk direction. */ typedef enum { EINA_RBTREE_LEFT = 0, EINA_RBTREE_RIGHT = 1 } Eina_Rbtree_Direction; /** * @typedef Eina_Rbtree * Type for a Red-Black tree node. It should be inlined into user's type. */ typedef struct _Eina_Rbtree Eina_Rbtree; struct _Eina_Rbtree { Eina_Rbtree *son[2]; Eina_Rbtree_Color color : 1; }; /** * @def EINA_RBTREE * recommended way to declare the inlined Eina_Rbtree in your type. * * @code * struct my_type { * EINA_RBTREE; * int my_value; * char *my_name; * }; * @endcode * * @see EINA_RBTREE_GET() */ #define EINA_RBTREE Eina_Rbtree __rbtree /** * @def EINA_RBTREE_GET * access the inlined node if it was created with #EINA_RBTREE. */ #define EINA_RBTREE_GET(Rbtree) (&((Rbtree)->__rbtree)) /** * @def EINA_RBTREE_CONTAINER_GET * find back the container of an red black tree. */ #define EINA_RBTREE_CONTAINER_GET(Ptr, Type) ((Type *)((char *)Ptr - offsetof(Type, __rbtree))) /** * @typedef Eina_Rbtree_Cmp_Node_Cb * Function used compare two nodes and see which direction to navigate. */ typedef Eina_Rbtree_Direction (*Eina_Rbtree_Cmp_Node_Cb)(const Eina_Rbtree *left, const Eina_Rbtree *right, void *data); /** * @def EINA_RBTREE_CMP_NODE_CB * Cast using #Eina_Rbtree_Cmp_Node_Cb */ #define EINA_RBTREE_CMP_NODE_CB(Function) ((Eina_Rbtree_Cmp_Node_Cb)Function) /** * @typedef Eina_Rbtree_Cmp_Key_Cb * Function used compare node with a given key of specified length. */ typedef int (*Eina_Rbtree_Cmp_Key_Cb)(const Eina_Rbtree *node, const void *key, int length, void *data); /** * @def EINA_RBTREE_CMP_KEY_CB * Cast using #Eina_Rbtree_Cmp_Key_Cb */ #define EINA_RBTREE_CMP_KEY_CB(Function) ((Eina_Rbtree_Cmp_Key_Cb)Function) /** * @typedef Eina_Rbtree_Free_Cb * Function used free a node. */ typedef void (*Eina_Rbtree_Free_Cb)(Eina_Rbtree *node, void *data); /** * @def EINA_RBTREE_FREE_CB * Cast using #Eina_Rbtree_Free_Cb */ #define EINA_RBTREE_FREE_CB(Function) ((Eina_Rbtree_Free_Cb)Function) /** * @brief Insert a new node inside an existing red black tree. * * @param root The root of an exisiting valid red black tree. * @param node The new node to insert. * @param cmp The callback that is able to compare two nodes. * @param data Private data to help the compare function. * @return The new root of the red black tree. * * This function insert a new node in a valid red black tree. @c NULL is * an empty valid red black tree. The resulting new tree is a valid red * black tree. This function doesn't allocate any data. */ EAPI Eina_Rbtree *eina_rbtree_inline_insert(Eina_Rbtree *root, Eina_Rbtree *node, Eina_Rbtree_Cmp_Node_Cb cmp, const void *data) EINA_ARG_NONNULL(2, 3) EINA_WARN_UNUSED_RESULT; /** * @brief Remove a node from an existing red black tree. * * @param root The root of a valid red black tree. * @param node The node to remove from the tree. * @param cmp The callback that is able to compare two nodes. * @param data Private data to help the compare function. * @return The new root of the red black tree. * * This function remove a new node in a valid red black tree that should * contain the node that you are removing. This function will return @c NULL * when the red black tree got empty. This function doesn't free any data. */ EAPI Eina_Rbtree *eina_rbtree_inline_remove(Eina_Rbtree *root, Eina_Rbtree *node, Eina_Rbtree_Cmp_Node_Cb cmp, const void *data) EINA_ARG_NONNULL(2, 3) EINA_WARN_UNUSED_RESULT; /** * @brief Delete all nodes from a valid red black tree. * * @param root The root of a valid red black tree. * @param func The callback that will free each node. * @param data Private data to help the compare function. * */ EAPI void eina_rbtree_delete(Eina_Rbtree *root, Eina_Rbtree_Free_Cb func, void *data) EINA_ARG_NONNULL(2); static inline Eina_Rbtree *eina_rbtree_inline_lookup(const Eina_Rbtree *root, const void *key, int length, Eina_Rbtree_Cmp_Key_Cb cmp, const void *data) EINA_PURE EINA_ARG_NONNULL(2, 4) EINA_WARN_UNUSED_RESULT; /** * @brief Returned a new prefix iterator associated to a rbtree. * * @param root The root of rbtree. * @return A new iterator. * * This function returns a newly allocated iterator associated to @p * root. It will iterate the tree using prefix walk. If @p root is @c * NULL, this function still returns a valid iterator that will always * return false on eina_iterator_next(), thus keeping API sane. * * If the memory can not be allocated, @c NULL is returned * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is * returned. * * @warning if the rbtree structure changes then the iterator becomes * invalid! That is, if you add or remove nodes this iterator * behavior is undefined and your program may crash! */ EAPI Eina_Iterator *eina_rbtree_iterator_prefix(const Eina_Rbtree *root) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Returned a new prefix iterator associated to a rbtree. * * @param root The root of rbtree. * @return A new iterator. * * This function returns a newly allocated iterator associated to @p * root. It will iterate the tree using infix walk. If @p root is @c * NULL, this function still returns a valid iterator that will always * return false on eina_iterator_next(), thus keeping API sane. * * If the memory can not be allocated, @c NULL is returned * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is * returned. * * @warning if the rbtree structure changes then the iterator becomes * invalid! That is, if you add or remove nodes this iterator * behavior is undefined and your program may crash! */ EAPI Eina_Iterator *eina_rbtree_iterator_infix(const Eina_Rbtree *root) EINA_MALLOC EINA_WARN_UNUSED_RESULT; /** * @brief Returned a new prefix iterator associated to a rbtree. * * @param root The root of rbtree. * @return A new iterator. * * This function returns a newly allocated iterator associated to @p * root. It will iterate the tree using postfix walk. If @p root is @c * NULL, this function still returns a valid iterator that will always * return false on eina_iterator_next(), thus keeping API sane. * * If the memory can not be allocated, @c NULL is returned * and #EINA_ERROR_OUT_OF_MEMORY is set. Otherwise, a valid iterator is * returned. * * @warning if the rbtree structure changes then the iterator becomes * invalid! That is, if you add or remove nodes this iterator * behavior is undefined and your program may crash! */ EAPI Eina_Iterator *eina_rbtree_iterator_postfix(const Eina_Rbtree *root) EINA_MALLOC EINA_WARN_UNUSED_RESULT; #include "eina_inline_rbtree.x" /** * @} */ /** * @} */ /** * @} */ #endif eina-1.7.10/src/include/eina_binshare.h0000664000175000017500000001535712175475327014641 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler, Jorge Luis Zapata Muga, Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . * * This file incorporates work covered by the following copyright and * permission notice: * * Copyright (C) 2008 Peter Wehrfritz * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies of the Software and its Copyright notices. In addition publicly * documented acknowledgment must be given that this software has been used if no * source code of this software is made available publicly. This includes * acknowledgments in either Copyright notices, Manuals, Publicity and Marketing * documents or any documentation provided with any product containing this * software. This License does not apply to any software that links to the * libraries provided by this software (statically or dynamically), but only to * the software provided. * * Please see the OLD-COPYING.PLAIN for a plain-english explanation of this notice * and it's intent. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef EINA_BINSHARE_H_ #define EINA_BINSHARE_H_ #include "eina_types.h" /** * @page tutorial_binshare_page Binary Share Tutorial * * Should call eina_binshare_init() before usage and eina_binshare_shutdown() after. * to be written... * */ /** * @addtogroup Eina_Binshare_Group Binary Share * * These functions allow you to store one copy of an object, and use it * throughout your program. * * This is a method to reduce the number of duplicated objects kept in * memory. * * For more information, you can look at the @ref tutorial_binshare_page. */ /** * @addtogroup Eina_Data_Types_Group Data Types * * @{ */ /** * @defgroup Eina_Binshare_Group Binary Share * * @{ */ /** * @brief Retrieve an instance of an object for use in a program. * * @param obj The binary object to retrieve an instance of. * @param olen The byte size * @return A pointer to an instance of the object on success. * @c NULL on failure. * * This function retrieves an instance of @p obj. If @p obj is * @c NULL, then @c NULL is returned. If @p obj is already stored, it * is just returned and its reference counter is increased. Otherwise * it is added to the objects to be searched and a duplicated object * of @p obj is returned. * * This function does not check object size, but uses the * exact given size. This can be used to share part of a larger * object or subobject. * * @see eina_binshare_add() */ EAPI const void *eina_binshare_add_length(const void *obj, unsigned int olen) EINA_PURE EINA_WARN_UNUSED_RESULT; /** * Increment references of the given shared object. * * @param obj The shared object. * @return A pointer to an instance of the object on success. * @c NULL on failure. * * This is similar to eina_share_common_add(), but it's faster since it will * avoid lookups if possible, but on the down side it requires the parameter * to be shared before, in other words, it must be the return of a previous * eina_binshare_add(). * * There is no unref since this is the work of eina_binshare_del(). */ EAPI const void *eina_binshare_ref(const void *obj); /** * @brief Note that the given object has lost an instance. * * @param obj object The given object. * * This function decreases the reference counter associated to @p obj * if it exists. If that counter reaches 0, the memory associated to * @p obj is freed. If @p obj is @c NULL, the function returns * immediately. * * @note If the given pointer is not shared, bad things will happen, likely a * segmentation fault. */ EAPI void eina_binshare_del(const void *obj); /** * @brief Note that the given object @b must be shared. * * @param obj the shared object to know the length. It is safe to * give @c NULL, in that case @c -1 is returned. * @return The length of the shared object. * * This function is a cheap way to known the length of a shared * object. * @note If the given pointer is not shared, bad things will happen, likely a * segmentation fault. If in doubt, try strlen(). */ EAPI int eina_binshare_length(const void *obj) EINA_WARN_UNUSED_RESULT; /** * @brief Dump the contents of the share_common. * * This function dumps all objects in the share_common to stdout with a * DDD: prefix per line and a memory usage summary. */ EAPI void eina_binshare_dump(void); /** * @brief Retrieve an instance of a blob for use in a program. * * @param ptr The binary blob to retrieve an instance of. * @return A pointer to an instance of the string on success. * @c NULL on failure. * * This macro retrieves an instance of @p obj. If @p obj is * @c NULL, then @c NULL is returned. If @p obj is already stored, it * is just returned and its reference counter is increased. Otherwise * it is added to the blobs to be searched and a duplicated blob * of @p obj is returned. * * This macro essentially calls eina_binshare_add_length with ptr and sizeof(*ptr) * as the parameters. It's useful for pointers to structures. * * @see eina_stringshare_add_length() */ #define eina_binshare_add(ptr) eina_binshare_add_length(ptr, sizeof(*ptr)) /** * @} */ /** * @} */ #endif /* EINA_STRINGSHARE_H_ */ eina-1.7.10/src/include/eina_config.h0000664000175000017500000000353412247700050014265 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_CONFIG_H_ #define EINA_CONFIG_H_ #ifdef EINA_HAVE_EXOTIC_H # undef EINA_HAVE_EXOTIC_H #endif #ifdef EINA_HAVE_EXOTIC # include #endif #ifdef EINA_MAGIC_DEBUG # undef EINA_MAGIC_DEBUG #endif #define EINA_MAGIC_DEBUG #ifdef EINA_DEFAULT_MEMPOOL # undef EINA_DEFAULT_MEMPOOL #endif #ifdef EINA_SAFETY_CHECKS # undef EINA_SAFETY_CHECKS #endif #define EINA_SAFETY_CHECKS #ifdef EINA_HAVE_INTTYPES_H # undef EINA_HAVE_INTTYPES_H #endif #define EINA_HAVE_INTTYPES_H #ifdef EINA_HAVE_STDINT_H # undef EINA_HAVE_STDINT_H #endif #define EINA_HAVE_STDINT_H #ifdef EINA_HAVE_THREADS # undef EINA_HAVE_THREADS #endif #define EINA_HAVE_THREADS #ifdef EINA_HAVE_DEBUG_THREADS # undef EINA_HAVE_DEBUG_THREADS #endif #ifdef EINA_SIZEOF_WCHAR_T # undef EINA_SIZEOF_WCHAR_T #endif #define EINA_SIZEOF_WCHAR_T 4 #ifdef EINA_HAVE_ON_OFF_THREADS # undef EINA_HAVE_ON_OFF_THREADS #endif #ifdef EINA_CONFIGURE_HAVE_DIRENT_H # undef EINA_CONFIGURE_HAVE_DIRENT_H #endif #define EINA_HAVE_DIRENT_H #ifdef EINA_CONFIGURE_ENABLE_LOG # undef EINA_CONFIGURE_ENABLE_LOG #endif #define EINA_ENABLE_LOG #endif /* EINA_CONFIG_H_ */ eina-1.7.10/src/tests/0000775000175000017500000000000012247700051011446 500000000000000eina-1.7.10/src/tests/evas_mempool.h0000664000175000017500000000061412175475327014245 00000000000000#ifndef _EVAS_MEMPOOL_H #define _EVAS_MEMPOOL_H typedef struct _Evas_Mempool Evas_Mempool; struct _Evas_Mempool { int item_size; int pool_size; int usage; void *first, *last; }; void *evas_mempool_malloc(Evas_Mempool *pool, int size); void evas_mempool_free(Evas_Mempool *pool, void *ptr); void *evas_mempool_calloc(Evas_Mempool *pool, int size); #endif /* _EVAS_MEMPOOL_H */ eina-1.7.10/src/tests/eina_test_convert.c0000664000175000017500000001070012175475327015262 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include "eina_suite.h" #include "Eina.h" START_TEST(eina_convert_simple) { char tmp[128]; fail_if(eina_convert_itoa(0, tmp) != 1); fail_if(strcmp(tmp, "0") != 0); fail_if(eina_convert_itoa(-1, tmp) != 2); fail_if(strcmp(tmp, "-1") != 0); fail_if(eina_convert_itoa(100, tmp) != 3); fail_if(strcmp(tmp, "100") != 0); fail_if(eina_convert_itoa(-100, tmp) != 4); fail_if(strcmp(tmp, "-100") != 0); fail_if(eina_convert_itoa(10000000, tmp) != 8); fail_if(strcmp(tmp, "10000000") != 0); fail_if(eina_convert_xtoa(0, tmp) != 1); fail_if(strcmp(tmp, "0") != 0); fail_if(eina_convert_xtoa(0xA1, tmp) != 2); fail_if(strcmp(tmp, "a1") != 0); fail_if(eina_convert_xtoa(0xFF00EF0E, tmp) != 8); fail_if(strcmp(tmp, "ff00ef0e") != 0); } END_TEST #define EET_TEST_DOUBLE0 123.45689 #define EET_TEST_DOUBLE1 1.0 #define EET_TEST_DOUBLE2 0.25 #define EET_TEST_DOUBLE3 0.0001234 #define EET_TEST_DOUBLE4 123456789.9876543210 static void _eina_convert_check(double test, int length) { char tmp[128]; long long int m = 0; long e = 0; double r; fail_if(eina_convert_dtoa(test, tmp) != length); fail_if(eina_convert_atod(tmp, 128, &m, &e) != EINA_TRUE); r = ldexp((double)m, e); fail_if(fabs(r - test) > DBL_MIN); } START_TEST(eina_convert_double) { long long int m = 0; long e = 0; eina_init(); _eina_convert_check(EET_TEST_DOUBLE0, 20); _eina_convert_check(-EET_TEST_DOUBLE0, 21); _eina_convert_check(EET_TEST_DOUBLE1, 6); _eina_convert_check(EET_TEST_DOUBLE2, 6); _eina_convert_check(EET_TEST_DOUBLE3, 21); _eina_convert_check(EET_TEST_DOUBLE4, 21); fail_if(eina_convert_atod("ah ah ah", 8, &m, &e) != EINA_FALSE); fail_if(eina_convert_atod("0xjo", 8, &m, &e) != EINA_FALSE); fail_if(eina_convert_atod("0xp", 8, &m, &e) != EINA_FALSE); eina_shutdown(); } END_TEST static void _eina_convert_fp_check(double d, Eina_F32p32 fp, int length) { char tmp1[128]; char tmp2[128]; Eina_F32p32 fpc; double fpd; int l1; int l2; l1 = eina_convert_dtoa(d, tmp1); l2 = eina_convert_fptoa(fp, tmp2); /* fprintf(stderr, "[%s](%i) vs [%s](%i)\n", tmp1, l1, tmp2, l2); */ fail_if(l1 != l2); fail_if(length != l1); fail_if(strcmp(tmp1, tmp2) != 0); fail_if(!eina_convert_atofp(tmp2, l2, &fpc)); /* fprintf(stderr, "%016x vs %016x\n", fpc, fp); */ fail_if(fpc != fp); fail_if(!eina_convert_atofp(tmp1, l1, &fpc)); fpd = eina_f32p32_double_to(fpc); /* fprintf(stderr, "%0.16f vs %0.16f\n", fpd, d); */ fail_if(fabs(fpd - d) > DBL_MIN); d = -d; fp = -fp; l1 = eina_convert_dtoa(d, tmp1); l2 = eina_convert_fptoa(fp, tmp2); fail_if(l1 != l2); fail_if(length + 1 != l1); fail_if(strcmp(tmp1, tmp2) != 0); fail_if(!eina_convert_atofp(tmp2, l2, &fpc)); /* fprintf(stderr, "%016x vs %016x\n", fpc, fp); */ fail_if(fpc != fp); fail_if(!eina_convert_atofp(tmp1, l1, &fpc)); fpd = eina_f32p32_double_to(fpc); /* fprintf(stderr, "%0.16f vs %0.16f\n", fpd, d); */ fail_if(fabs(fpd - d) > DBL_MIN); } START_TEST(eina_convert_fp) { _eina_convert_fp_check(1.0, 0x0000000100000000, 6); _eina_convert_fp_check(0.5, 0x0000000080000000, 8); _eina_convert_fp_check(0.625, 0x00000000a0000000, 8); _eina_convert_fp_check(256.0, 0x0000010000000000, 6); _eina_convert_fp_check(0.5, 0x0000000080000000, 8); _eina_convert_fp_check(128.625, 0x00000080a0000000, 10); } END_TEST void eina_test_convert(TCase *tc) { tcase_add_test(tc, eina_convert_simple); tcase_add_test(tc, eina_convert_double); tcase_add_test(tc, eina_convert_fp); } eina-1.7.10/src/tests/eina_test_binbuf.c0000664000175000017500000001735712175475327015066 00000000000000/* EINA - EFL data type library * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_suite.h" #include "Eina.h" START_TEST(binbuf_simple) { Eina_Binbuf *buf; unsigned char *txt; const unsigned char cbuf[] = "Null in the middle \0 and more text afterwards and \0 anotehr null just there and another one \0 here."; size_t size = sizeof(cbuf) - 1; /* We don't care about the real NULL */ eina_init(); buf = eina_binbuf_new(); fail_if(!buf); eina_binbuf_append_length(buf, cbuf, size); fail_if(memcmp(eina_binbuf_string_get(buf), cbuf, size)); fail_if(size != eina_binbuf_length_get(buf)); eina_binbuf_append_length(buf, cbuf, size); fail_if(memcmp(eina_binbuf_string_get(buf), cbuf, size)); fail_if(memcmp(eina_binbuf_string_get(buf) + size, cbuf, size)); fail_if(2 * size != eina_binbuf_length_get(buf)); txt = eina_binbuf_string_steal(buf); fail_if(memcmp(txt, cbuf, size)); fail_if(memcmp(txt + size, cbuf, size)); free(txt); fail_if(eina_binbuf_length_get(buf) != 0); eina_binbuf_append_length(buf, cbuf, size); fail_if(memcmp(eina_binbuf_string_get(buf), cbuf, size)); fail_if(size != eina_binbuf_length_get(buf)); eina_binbuf_reset(buf); fail_if(eina_binbuf_length_get(buf) != 0); eina_binbuf_free(buf); eina_shutdown(); #undef TEXT } END_TEST START_TEST(binbuf_remove) { Eina_Binbuf *buf; const unsigned char cbuf[] = "12\0 456 78\0 abcthis is some more random junk here!"; size_t size = sizeof(cbuf) - 1; /* We don't care about the real NULL */ eina_init(); buf = eina_binbuf_new(); fail_if(!buf); eina_binbuf_append_length(buf, cbuf, size); fail_if(size != eina_binbuf_length_get(buf)); eina_binbuf_remove(buf, 0, 4); fail_if(size - 4 != eina_binbuf_length_get(buf)); eina_binbuf_remove(buf, 8, 1000); fail_if(8 != eina_binbuf_length_get(buf)); eina_binbuf_remove(buf, 7, eina_binbuf_length_get(buf)); fail_if(7 != eina_binbuf_length_get(buf)); eina_binbuf_remove(buf, 2, 4); fail_if(5 != eina_binbuf_length_get(buf)); eina_binbuf_remove(buf, 4, 1); fail_if(5 != eina_binbuf_length_get(buf)); eina_binbuf_remove(buf, 0, eina_binbuf_length_get(buf)); fail_if(0 != eina_binbuf_length_get(buf)); eina_binbuf_free(buf); eina_shutdown(); } END_TEST START_TEST(binbuf_manage_simple) { Eina_Binbuf *buf; const char *_cbuf = "12\0 456 78\0 abcthis is some more random junk here!"; const unsigned char *cbuf = (const unsigned char *) _cbuf; size_t size = sizeof(cbuf) - 1; /* We don't care about the real NULL */ unsigned char *alloc_buf = malloc(size); memcpy(alloc_buf, cbuf, size); eina_init(); buf = eina_binbuf_manage_new_length(alloc_buf, size); fail_if(!buf); fail_if(memcmp(eina_binbuf_string_get(buf), cbuf, size)); fail_if(size != eina_binbuf_length_get(buf)); eina_binbuf_append_length(buf, cbuf, size); fail_if(memcmp(eina_binbuf_string_get(buf), cbuf, size)); fail_if(memcmp(eina_binbuf_string_get(buf) + size, cbuf, size)); fail_if(2 * size != eina_binbuf_length_get(buf)); eina_binbuf_free(buf); eina_shutdown(); } END_TEST START_TEST(binbuf_insert) { #if 0 Eina_Binbuf *buf; eina_init(); buf = eina_binbuf_new(); fail_if(!buf); eina_binbuf_insert(buf, "abc", 10); fail_if(strlen(eina_binbuf_string_get(buf)) != eina_binbuf_length_get(buf)); fail_if(strcmp(eina_binbuf_string_get(buf), "abc")); eina_binbuf_insert(buf, "123", 0); fail_if(strlen(eina_binbuf_string_get(buf)) != eina_binbuf_length_get(buf)); fail_if(strcmp(eina_binbuf_string_get(buf), "123abc")); eina_binbuf_insert(buf, "xyz", eina_binbuf_length_get(buf)); fail_if(strlen(eina_binbuf_string_get(buf)) != eina_binbuf_length_get(buf)); fail_if(strcmp(eina_binbuf_string_get(buf), "123abcxyz")); eina_binbuf_insert(buf, "xyz", 1); fail_if(strlen(eina_binbuf_string_get(buf)) != eina_binbuf_length_get(buf)); fail_if(strcmp(eina_binbuf_string_get(buf), "1xyz23abcxyz")); eina_binbuf_insert_n(buf, "ABCDEF", 2, 1); fail_if(strlen(eina_binbuf_string_get(buf)) != eina_binbuf_length_get(buf)); fail_if(strcmp(eina_binbuf_string_get(buf), "1ABxyz23abcxyz")); eina_binbuf_insert_n(buf, "EINA", 2, 3); fail_if(strlen(eina_binbuf_string_get(buf)) != eina_binbuf_length_get(buf)); fail_if(strcmp(eina_binbuf_string_get(buf), "1ABEIxyz23abcxyz")); eina_binbuf_insert_escaped(buf, "678", 3); fail_if(strlen(eina_binbuf_string_get(buf)) != eina_binbuf_length_get(buf)); fail_if(strncmp(eina_binbuf_string_get(buf) + 3, "678", 3)); eina_binbuf_insert_escaped(buf, "089 '\\", 9); fail_if(strlen(eina_binbuf_string_get( buf)) != eina_binbuf_length_get(buf)); fail_if(strncmp(eina_binbuf_string_get(buf) + 9, "089\\ \\'\\\\", strlen("089\\ \\'\\\\"))); eina_binbuf_reset(buf); eina_binbuf_free(buf); eina_shutdown(); #endif } END_TEST START_TEST(binbuf_realloc) { Eina_Binbuf *buf; unsigned char pattern[1024 * 16]; unsigned int i; size_t sz; for (i = 0; i < sizeof(pattern) - 1; i++) { if (i % 27 == 26) pattern[i] = '\0'; else pattern[i] = 'a' + (i % 27); } pattern[i] = '\0'; eina_init(); buf = eina_binbuf_new(); fail_if(!buf); sz = 0; eina_binbuf_append_length(buf, pattern, 1); fail_if(eina_binbuf_length_get(buf) != sz + 1); fail_if(memcmp(eina_binbuf_string_get(buf) + sz, pattern, 1)); sz += 1; eina_binbuf_append_length(buf, pattern, 32); fail_if(eina_binbuf_length_get(buf) != sz + 32); fail_if(memcmp(eina_binbuf_string_get(buf) + sz, pattern, 32)); sz += 32; eina_binbuf_append_length(buf, pattern, 64); fail_if(eina_binbuf_length_get(buf) != sz + 64); fail_if(memcmp(eina_binbuf_string_get(buf) + sz, pattern, 64)); sz += 64; eina_binbuf_append_length(buf, pattern, 128); fail_if(eina_binbuf_length_get(buf) != sz + 128); fail_if(memcmp(eina_binbuf_string_get(buf) + sz, pattern, 128)); sz += 128; eina_binbuf_append_length(buf, pattern, 4096); fail_if(eina_binbuf_length_get(buf) != sz + 4096); fail_if(memcmp(eina_binbuf_string_get(buf) + sz, pattern, 4096)); sz += 4096; eina_binbuf_append_length(buf, pattern, sizeof(pattern) - 1); fail_if(eina_binbuf_length_get(buf) != sz + sizeof(pattern) - 1); fail_if(memcmp(eina_binbuf_string_get(buf) + sz, pattern, sizeof(pattern) - 1)); sz += sizeof(pattern) - 1; eina_binbuf_remove(buf, 1024, 1024 + 1234); fail_if(eina_binbuf_length_get(buf) != sz - 1234); sz -= 1234; eina_binbuf_remove(buf, 0, 0 + 8192); fail_if(eina_binbuf_length_get(buf) != sz - 8192); sz -= 8192; eina_binbuf_remove(buf, 0, 0 + 32); fail_if(eina_binbuf_length_get(buf) != sz - 32); sz -= 32; eina_binbuf_free(buf); eina_shutdown(); } END_TEST void eina_test_binbuf(TCase *tc) { tcase_add_test(tc, binbuf_simple); tcase_add_test(tc, binbuf_remove); tcase_add_test(tc, binbuf_insert); tcase_add_test(tc, binbuf_realloc); tcase_add_test(tc, binbuf_manage_simple); } eina-1.7.10/src/tests/Makefile.in0000664000175000017500000013377012247700043013447 00000000000000# Makefile.in generated by automake 1.13.4 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@ @EINA_HAVE_GLIB_TRUE@am__append_1 = -DEINA_BENCH_HAVE_GLIB @EINA_ENABLE_BENCHMARK_E17_TRUE@am__append_2 = -DEINA_ENABLE_BENCH_E17 @EFL_ENABLE_TESTS_TRUE@check_PROGRAMS = eina_suite$(EXEEXT) \ @EFL_ENABLE_TESTS_TRUE@ cxx_compile_test$(EXEEXT) @EFL_ENABLE_BENCHMARK_TRUE@bench_PROGRAMS = eina_bench$(EXEEXT) subdir = src/tests DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = 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)$(module_dummydir)" \ "$(DESTDIR)$(benchdir)" LTLIBRARIES = $(module_dummy_LTLIBRARIES) $(noinst_LTLIBRARIES) libcity_la_LIBADD = am__libcity_la_SOURCES_DIST = city.cc city.h @CITYHASH_BENCH_TRUE@@EFL_ENABLE_BENCHMARK_TRUE@am_libcity_la_OBJECTS = \ @CITYHASH_BENCH_TRUE@@EFL_ENABLE_BENCHMARK_TRUE@ city.lo libcity_la_OBJECTS = $(am_libcity_la_OBJECTS) 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 = @CITYHASH_BENCH_TRUE@@EFL_ENABLE_BENCHMARK_TRUE@am_libcity_la_rpath = @EFL_ENABLE_TESTS_TRUE@module_dummy_la_DEPENDENCIES = \ @EFL_ENABLE_TESTS_TRUE@ $(top_builddir)/src/lib/libeina.la am__module_dummy_la_SOURCES_DIST = eina_test_module_dummy.c @EFL_ENABLE_TESTS_TRUE@am_module_dummy_la_OBJECTS = module_dummy_la-eina_test_module_dummy.lo module_dummy_la_OBJECTS = $(am_module_dummy_la_OBJECTS) module_dummy_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(module_dummy_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(module_dummy_la_LDFLAGS) \ $(LDFLAGS) -o $@ @EFL_ENABLE_TESTS_TRUE@am_module_dummy_la_rpath = -rpath \ @EFL_ENABLE_TESTS_TRUE@ $(module_dummydir) PROGRAMS = $(bench_PROGRAMS) am__cxx_compile_test_SOURCES_DIST = cxx_compile_test.cxx @EFL_ENABLE_TESTS_TRUE@am_cxx_compile_test_OBJECTS = \ @EFL_ENABLE_TESTS_TRUE@ cxx_compile_test.$(OBJEXT) cxx_compile_test_OBJECTS = $(am_cxx_compile_test_OBJECTS) @EFL_ENABLE_TESTS_TRUE@cxx_compile_test_DEPENDENCIES = \ @EFL_ENABLE_TESTS_TRUE@ $(top_builddir)/src/lib/libeina.la am__eina_bench_SOURCES_DIST = eina_bench.c eina_bench_sort.c \ eina_bench_hash.c eina_bench_stringshare.c \ eina_bench_convert.c eina_bench_mempool.c \ eina_bench_stringshare_e17.c eina_bench_array.c \ eina_bench_rectangle_pool.c ecore_list.c ecore_strings.c \ ecore_hash.c ecore_sheap.c evas_hash.c evas_list.c \ evas_mempool.c evas_object_list.c evas_stringshare.c \ eina_bench_quad.c eina_bench.h eina_suite.h Ecore_Data.h \ Evas_Data.h evas_mempool.h @EFL_ENABLE_BENCHMARK_TRUE@am_eina_bench_OBJECTS = \ @EFL_ENABLE_BENCHMARK_TRUE@ eina_bench.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ eina_bench_sort.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ eina_bench_hash.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ eina_bench_stringshare.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ eina_bench_convert.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ eina_bench_mempool.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ eina_bench_stringshare_e17.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ eina_bench_array.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ eina_bench_rectangle_pool.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ ecore_list.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ ecore_strings.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ ecore_hash.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ ecore_sheap.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ evas_hash.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ evas_list.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ evas_mempool.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ evas_object_list.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ evas_stringshare.$(OBJEXT) \ @EFL_ENABLE_BENCHMARK_TRUE@ eina_bench_quad.$(OBJEXT) eina_bench_OBJECTS = $(am_eina_bench_OBJECTS) @CITYHASH_BENCH_FALSE@@EFL_ENABLE_BENCHMARK_TRUE@eina_bench_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la @CITYHASH_BENCH_TRUE@@EFL_ENABLE_BENCHMARK_TRUE@eina_bench_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la \ @CITYHASH_BENCH_TRUE@@EFL_ENABLE_BENCHMARK_TRUE@ libcity.la am__eina_suite_SOURCES_DIST = eina_suite.c eina_test_fp.c \ eina_test_stringshare.c eina_test_ustringshare.c \ eina_test_ustr.c eina_test_binshare.c eina_test_binbuf.c \ eina_test_inarray.c eina_test_array.c eina_test_clist.c \ eina_test_error.c eina_test_sched.c eina_test_log.c \ eina_test_magic.c eina_test_inlist.c eina_test_main.c \ eina_test_counter.c eina_test_lalloc.c eina_test_hash.c \ eina_test_iterator.c eina_test_accessor.c eina_test_module.c \ eina_test_convert.c eina_test_rbtree.c eina_test_file.c \ eina_test_benchmark.c eina_test_mempool.c \ eina_test_rectangle.c eina_test_list.c \ eina_test_matrixsparse.c eina_test_tiler.c eina_test_strbuf.c \ eina_test_str.c eina_test_quadtree.c \ eina_test_simple_xml_parser.c eina_test_value.c @EFL_ENABLE_TESTS_TRUE@am_eina_suite_OBJECTS = eina_suite.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_fp.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_stringshare.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_ustringshare.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_ustr.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_binshare.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_binbuf.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_inarray.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_array.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_clist.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_error.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_sched.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_log.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_magic.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_inlist.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_main.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_counter.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_lalloc.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_hash.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_iterator.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_accessor.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_module.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_convert.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_rbtree.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_file.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_benchmark.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_mempool.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_rectangle.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_list.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_matrixsparse.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_tiler.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_strbuf.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_str.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_quadtree.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_simple_xml_parser.$(OBJEXT) \ @EFL_ENABLE_TESTS_TRUE@ eina_test_value.$(OBJEXT) eina_suite_OBJECTS = $(am_eina_suite_OBJECTS) @EFL_ENABLE_TESTS_TRUE@eina_suite_DEPENDENCIES = \ @EFL_ENABLE_TESTS_TRUE@ $(top_builddir)/src/lib/libeina.la 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) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = SOURCES = $(libcity_la_SOURCES) $(module_dummy_la_SOURCES) \ $(cxx_compile_test_SOURCES) $(eina_bench_SOURCES) \ $(nodist_EXTRA_eina_bench_SOURCES) $(eina_suite_SOURCES) DIST_SOURCES = $(am__libcity_la_SOURCES_DIST) \ $(am__module_dummy_la_SOURCES_DIST) \ $(am__cxx_compile_test_SOURCES_DIST) \ $(am__eina_bench_SOURCES_DIST) $(am__eina_suite_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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ MAINTAINERCLEANFILES = Makefile.in benchdir = $(bindir) AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include -I$(top_builddir)/src/lib \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -DPACKAGE_BUILD_DIR=\"`pwd`/$(top_builddir)\" @CHECK_CFLAGS@ \ @EINA_CFLAGS@ @GLIB_CFLAGS@ $(am__append_1) $(am__append_2) @EFL_ENABLE_TESTS_TRUE@eina_suite_SOURCES = \ @EFL_ENABLE_TESTS_TRUE@eina_suite.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_fp.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_stringshare.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_ustringshare.c\ @EFL_ENABLE_TESTS_TRUE@eina_test_ustr.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_binshare.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_binbuf.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_inarray.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_array.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_clist.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_error.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_sched.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_log.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_magic.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_inlist.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_main.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_counter.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_lalloc.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_hash.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_iterator.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_accessor.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_module.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_convert.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_rbtree.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_file.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_benchmark.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_mempool.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_rectangle.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_list.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_matrixsparse.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_tiler.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_strbuf.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_str.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_quadtree.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_simple_xml_parser.c \ @EFL_ENABLE_TESTS_TRUE@eina_test_value.c # eina_test_model.c @EFL_ENABLE_TESTS_TRUE@eina_suite_LDADD = @CHECK_LIBS@ $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ @EFL_PTHREAD_LIBS@ -lm @EFL_ENABLE_TESTS_TRUE@cxx_compile_test_SOURCES = cxx_compile_test.cxx @EFL_ENABLE_TESTS_TRUE@cxx_compile_test_LDADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ @EFL_ENABLE_TESTS_TRUE@module_dummydir = $(libdir)/eina/test @EFL_ENABLE_TESTS_TRUE@module_dummy_LTLIBRARIES = module_dummy.la @EFL_ENABLE_TESTS_TRUE@module_dummy_la_SOURCES = \ @EFL_ENABLE_TESTS_TRUE@eina_test_module_dummy.c @EFL_ENABLE_TESTS_TRUE@module_dummy_la_CPPFLAGS = \ @EFL_ENABLE_TESTS_TRUE@-I$(top_srcdir)/src/lib \ @EFL_ENABLE_TESTS_TRUE@-I$(top_srcdir)/src/include \ @EFL_ENABLE_TESTS_TRUE@-I$(top_builddir)/src/include \ @EFL_ENABLE_TESTS_TRUE@-I$(top_builddir)/src/lib \ @EFL_ENABLE_TESTS_TRUE@@EFL_EINA_BUILD@ @EFL_ENABLE_TESTS_TRUE@module_dummy_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ -lm @EFL_ENABLE_TESTS_TRUE@module_dummy_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version @EFL_ENABLE_TESTS_TRUE@module_dummy_la_LIBTOOLFLAGS = --tag=disable-static @EFL_ENABLE_BENCHMARK_TRUE@eina_bench_SOURCES = \ @EFL_ENABLE_BENCHMARK_TRUE@eina_bench.c \ @EFL_ENABLE_BENCHMARK_TRUE@eina_bench_sort.c \ @EFL_ENABLE_BENCHMARK_TRUE@eina_bench_hash.c \ @EFL_ENABLE_BENCHMARK_TRUE@eina_bench_stringshare.c \ @EFL_ENABLE_BENCHMARK_TRUE@eina_bench_convert.c \ @EFL_ENABLE_BENCHMARK_TRUE@eina_bench_mempool.c \ @EFL_ENABLE_BENCHMARK_TRUE@eina_bench_stringshare_e17.c \ @EFL_ENABLE_BENCHMARK_TRUE@eina_bench_array.c \ @EFL_ENABLE_BENCHMARK_TRUE@eina_bench_rectangle_pool.c \ @EFL_ENABLE_BENCHMARK_TRUE@ecore_list.c \ @EFL_ENABLE_BENCHMARK_TRUE@ecore_strings.c \ @EFL_ENABLE_BENCHMARK_TRUE@ecore_hash.c \ @EFL_ENABLE_BENCHMARK_TRUE@ecore_sheap.c \ @EFL_ENABLE_BENCHMARK_TRUE@evas_hash.c \ @EFL_ENABLE_BENCHMARK_TRUE@evas_list.c \ @EFL_ENABLE_BENCHMARK_TRUE@evas_mempool.c \ @EFL_ENABLE_BENCHMARK_TRUE@evas_object_list.c \ @EFL_ENABLE_BENCHMARK_TRUE@evas_stringshare.c \ @EFL_ENABLE_BENCHMARK_TRUE@eina_bench_quad.c \ @EFL_ENABLE_BENCHMARK_TRUE@eina_bench.h \ @EFL_ENABLE_BENCHMARK_TRUE@eina_suite.h \ @EFL_ENABLE_BENCHMARK_TRUE@Ecore_Data.h \ @EFL_ENABLE_BENCHMARK_TRUE@Evas_Data.h \ @EFL_ENABLE_BENCHMARK_TRUE@evas_mempool.h @CITYHASH_BENCH_TRUE@@EFL_ENABLE_BENCHMARK_TRUE@noinst_LTLIBRARIES = libcity.la @CITYHASH_BENCH_TRUE@@EFL_ENABLE_BENCHMARK_TRUE@libcity_la_SOURCES = city.cc city.h @CITYHASH_BENCH_TRUE@@EFL_ENABLE_BENCHMARK_TRUE@nodist_EXTRA_eina_bench_SOURCES = dummy.cc @CITYHASH_BENCH_FALSE@@EFL_ENABLE_BENCHMARK_TRUE@eina_bench_LDADD = @GLIB_LIBS@ $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ @CITYHASH_BENCH_TRUE@@EFL_ENABLE_BENCHMARK_TRUE@eina_bench_LDADD = @GLIB_LIBS@ $(top_builddir)/src/lib/libeina.la libcity.la @EINA_LIBS@ EXTRA_DIST = strlog all: all-am .SUFFIXES: .SUFFIXES: .c .cc .cxx .lo .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) --gnu src/tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/tests/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-module_dummyLTLIBRARIES: $(module_dummy_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(module_dummy_LTLIBRARIES)'; test -n "$(module_dummydir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(module_dummydir)'"; \ $(MKDIR_P) "$(DESTDIR)$(module_dummydir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(module_dummydir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(module_dummydir)"; \ } uninstall-module_dummyLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(module_dummy_LTLIBRARIES)'; test -n "$(module_dummydir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(module_dummydir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(module_dummydir)/$$f"; \ done clean-module_dummyLTLIBRARIES: -test -z "$(module_dummy_LTLIBRARIES)" || rm -f $(module_dummy_LTLIBRARIES) @list='$(module_dummy_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libcity.la: $(libcity_la_OBJECTS) $(libcity_la_DEPENDENCIES) $(EXTRA_libcity_la_DEPENDENCIES) $(AM_V_CXXLD)$(CXXLINK) $(am_libcity_la_rpath) $(libcity_la_OBJECTS) $(libcity_la_LIBADD) $(LIBS) module_dummy.la: $(module_dummy_la_OBJECTS) $(module_dummy_la_DEPENDENCIES) $(EXTRA_module_dummy_la_DEPENDENCIES) $(AM_V_CCLD)$(module_dummy_la_LINK) $(am_module_dummy_la_rpath) $(module_dummy_la_OBJECTS) $(module_dummy_la_LIBADD) $(LIBS) install-benchPROGRAMS: $(bench_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bench_PROGRAMS)'; test -n "$(benchdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(benchdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(benchdir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; 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) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(benchdir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(benchdir)$$dir" || exit $$?; \ } \ ; done uninstall-benchPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bench_PROGRAMS)'; test -n "$(benchdir)" || 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)$(benchdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(benchdir)" && rm -f $$files clean-benchPROGRAMS: @list='$(bench_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list cxx_compile_test$(EXEEXT): $(cxx_compile_test_OBJECTS) $(cxx_compile_test_DEPENDENCIES) $(EXTRA_cxx_compile_test_DEPENDENCIES) @rm -f cxx_compile_test$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(cxx_compile_test_OBJECTS) $(cxx_compile_test_LDADD) $(LIBS) eina_bench$(EXEEXT): $(eina_bench_OBJECTS) $(eina_bench_DEPENDENCIES) $(EXTRA_eina_bench_DEPENDENCIES) @rm -f eina_bench$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(eina_bench_OBJECTS) $(eina_bench_LDADD) $(LIBS) eina_suite$(EXEEXT): $(eina_suite_OBJECTS) $(eina_suite_DEPENDENCIES) $(EXTRA_eina_suite_DEPENDENCIES) @rm -f eina_suite$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_suite_OBJECTS) $(eina_suite_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/city.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cxx_compile_test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dummy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_hash.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_sheap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecore_strings.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_bench.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_bench_array.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_bench_convert.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_bench_hash.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_bench_mempool.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_bench_quad.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_bench_rectangle_pool.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_bench_sort.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_bench_stringshare.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_bench_stringshare_e17.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_suite.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_accessor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_array.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_benchmark.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_binbuf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_binshare.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_clist.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_convert.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_counter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_error.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_fp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_hash.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_inarray.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_inlist.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_iterator.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_lalloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_log.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_magic.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_matrixsparse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_mempool.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_module.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_quadtree.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_rbtree.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_rectangle.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_sched.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_simple_xml_parser.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_str.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_strbuf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_stringshare.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_tiler.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_ustr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_ustringshare.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_test_value.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_hash.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_mempool.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_object_list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_stringshare.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_dummy_la-eina_test_module_dummy.Plo@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 $< .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 `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< module_dummy_la-eina_test_module_dummy.lo: eina_test_module_dummy.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_dummy_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(module_dummy_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_dummy_la-eina_test_module_dummy.lo -MD -MP -MF $(DEPDIR)/module_dummy_la-eina_test_module_dummy.Tpo -c -o module_dummy_la-eina_test_module_dummy.lo `test -f 'eina_test_module_dummy.c' || echo '$(srcdir)/'`eina_test_module_dummy.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_dummy_la-eina_test_module_dummy.Tpo $(DEPDIR)/module_dummy_la-eina_test_module_dummy.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='eina_test_module_dummy.c' object='module_dummy_la-eina_test_module_dummy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_dummy_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(module_dummy_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_dummy_la-eina_test_module_dummy.lo `test -f 'eina_test_module_dummy.c' || echo '$(srcdir)/'`eina_test_module_dummy.c .cc.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< .cxx.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cxx.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cxx.lo: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs 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 $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(module_dummydir)" "$(DESTDIR)$(benchdir)"; 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-benchPROGRAMS clean-checkPROGRAMS clean-generic \ clean-libtool clean-local clean-module_dummyLTLIBRARIES \ clean-noinstLTLIBRARIES 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-benchPROGRAMS install-module_dummyLTLIBRARIES 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 \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-benchPROGRAMS \ uninstall-module_dummyLTLIBRARIES .MAKE: check-am install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-benchPROGRAMS clean-checkPROGRAMS clean-generic \ clean-libtool clean-local clean-module_dummyLTLIBRARIES \ clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-benchPROGRAMS 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-module_dummyLTLIBRARIES \ 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 mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-benchPROGRAMS uninstall-module_dummyLTLIBRARIES clean-local: rm -rf *.gcno ..\#..\#src\#*.gcov *.gcda # 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: eina-1.7.10/src/tests/eina_test_log.c0000664000175000017500000002615412175475327014375 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include "eina_suite.h" #include "Eina.h" struct log_ctx { int level; int line; const char *msg; const char *fnc; const char *dom; Eina_Bool did; }; /* tests should not output on success, just uncomment this for debugging */ //#define SHOW_LOG 1 static void _eina_test_log(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__) { struct log_ctx *ctx = data; ck_assert_int_eq(ctx->level, level); ck_assert_int_eq(ctx->line, line); ck_assert_str_eq(ctx->msg, fmt); ck_assert_str_eq(ctx->fnc, fnc); ck_assert_str_eq(file, __FILE__); ctx->did = EINA_TRUE; #ifdef SHOW_LOG eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args); #else (void)d; #endif } static void _eina_test_log_domain(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__) { struct log_ctx *ctx = data; ck_assert_int_eq(ctx->level, level); ck_assert_int_eq(ctx->line, line); ck_assert_str_eq(ctx->msg, fmt); ck_assert_str_eq(ctx->fnc, fnc); ck_assert_str_eq(file, __FILE__); ck_assert_str_eq(ctx->dom, d->name); ctx->did = EINA_TRUE; #ifdef SHOW_LOG eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args); #endif } static void _eina_test_log_safety(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__) { struct log_ctx *ctx = data; va_list cp_args; const char *str; va_copy(cp_args, args); str = va_arg(cp_args, const char *); va_end(cp_args); ck_assert_int_eq(ctx->level, level); ck_assert_str_eq(fmt, "%s"); ck_assert_str_eq(ctx->msg, str); ck_assert_str_eq(ctx->fnc, fnc); ctx->did = EINA_TRUE; #ifdef SHOW_LOG eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args); #else (void)d; (void)file; (void)line; #endif } START_TEST(eina_log_macro) { struct log_ctx ctx; int oldlevel; fail_if(!eina_init()); oldlevel = eina_log_level_get(); eina_log_level_set(EINA_LOG_LEVEL_DBG); eina_log_print_cb_set(_eina_test_log, &ctx); #define TEST_LOG_CTX(lvl, _msg) \ ctx.level = lvl; \ ctx.line = __LINE__ + 1; \ ctx.msg = _msg; \ ctx.fnc = __FUNCTION__; \ ctx.did = EINA_FALSE TEST_LOG_CTX(EINA_LOG_LEVEL_CRITICAL, "Critical message"); EINA_LOG_CRIT("Critical message"); fail_unless(ctx.did); TEST_LOG_CTX(EINA_LOG_LEVEL_ERR, "An error"); EINA_LOG_ERR("An error"); fail_unless(ctx.did); TEST_LOG_CTX(EINA_LOG_LEVEL_WARN, "A warning"); EINA_LOG_WARN("A warning"); fail_unless(ctx.did); TEST_LOG_CTX(EINA_LOG_LEVEL_INFO, "An info"); EINA_LOG_INFO("An info"); fail_unless(ctx.did); TEST_LOG_CTX(EINA_LOG_LEVEL_DBG, "A debug"); EINA_LOG_DBG("A debug"); fail_unless(ctx.did); #undef TEST_LOG_CTX eina_log_print_cb_set(eina_log_print_cb_stderr, NULL); eina_log_level_set(oldlevel); eina_shutdown(); } END_TEST START_TEST(eina_log_domains_macros) { struct log_ctx ctx; int oldlevel; fail_if(!eina_init()); /* make global log level blocker */ oldlevel = eina_log_level_get(); eina_log_level_set(EINA_LOG_LEVEL_CRITICAL); eina_log_print_cb_set(_eina_test_log_domain, &ctx); int d = eina_log_domain_register("MyDomain", EINA_COLOR_GREEN); fail_if(d < 0); /* make specific domain permissive */ eina_log_domain_level_set("MyDomain", EINA_LOG_LEVEL_DBG); #define TEST_LOG_CTX(lvl, _msg) \ ctx.level = lvl; \ ctx.line = __LINE__ + 1; \ ctx.msg = _msg; \ ctx.fnc = __FUNCTION__; \ ctx.dom = "MyDomain"; \ ctx.did = EINA_FALSE TEST_LOG_CTX(EINA_LOG_LEVEL_CRITICAL, "A critical message"); EINA_LOG_DOM_CRIT(d, "A critical message"); fail_unless(ctx.did); TEST_LOG_CTX(EINA_LOG_LEVEL_ERR, "An error"); EINA_LOG_DOM_ERR(d, "An error"); fail_unless(ctx.did); TEST_LOG_CTX(EINA_LOG_LEVEL_WARN, "A warning"); EINA_LOG_DOM_WARN(d, "A warning"); fail_unless(ctx.did); TEST_LOG_CTX(EINA_LOG_LEVEL_INFO, "An info"); EINA_LOG_DOM_INFO(d, "An info"); fail_unless(ctx.did); TEST_LOG_CTX(EINA_LOG_LEVEL_DBG, "A debug"); EINA_LOG_DOM_DBG(d, "A debug"); fail_unless(ctx.did); #undef TEST_LOG_CTX eina_log_print_cb_set(eina_log_print_cb_stderr, NULL); eina_log_level_set(oldlevel); eina_shutdown(); } END_TEST START_TEST(eina_log_domains_registry) { fail_if(!eina_init()); int i; int d[50]; for (i = 0; i < 50; i++) { d[i] = eina_log_domain_register("Test", EINA_COLOR_GREEN); fail_if(d[i] < 0); } for (i = 0; i < 50; i++) eina_log_domain_unregister(d[i]); eina_shutdown(); } END_TEST START_TEST(eina_log_domains_slot_reuse) { fail_if(!eina_init()); fail_if(!eina_threads_init()); // Create 9 domains int idx[9]; int i; for (i = 0; i < 9; i++) { idx[i] = eina_log_domain_register("Test1", EINA_COLOR_GREEN); fail_if(idx[i] < 0); } // Slot 0 by default contains the global logger. The above code created // domains for slots indexes from 1 to 9. // // The global logger allocated the first 8 initial slots. The 8th domain // registered on the for loop will create 8 more slots. // // Test will just unregister a domain between 1 and 9 and assure that a new // domain register will be placed on the available slot and not at the end. int removed = idx[5]; eina_log_domain_unregister(removed); int new = eina_log_domain_register("Test Slot", EINA_COLOR_GREEN); // Check for slot reuse fail_if(new != removed); eina_threads_shutdown(); eina_shutdown(); } END_TEST START_TEST(eina_log_level_indexes) { struct log_ctx ctx; fail_if(!eina_init()); fail_if(!eina_threads_init()); fail_if(!eina_threads_init()); int d = eina_log_domain_register("Levels", EINA_COLOR_GREEN); fail_if(d < 0); eina_log_print_cb_set(_eina_test_log_domain, &ctx); #define TEST_LOG_CTX(lvl, _msg) \ ctx.level = lvl; \ ctx.line = __LINE__ + 1; \ ctx.msg = _msg; \ ctx.fnc = __FUNCTION__; \ ctx.dom = "Levels"; \ ctx.did = EINA_FALSE; // Displayed unless user sets level lower than -1 eina_log_domain_level_set("Levels", -1); TEST_LOG_CTX(-1, "Negative index message"); EINA_LOG(d, -1, "Negative index message"); fail_unless(ctx.did); eina_log_domain_level_set("Levels", -2); TEST_LOG_CTX(-1, "Negative index message"); EINA_LOG(d, -1, "Negative index message"); fail_if(ctx.did); // Displayed only if user sets level 6 or higher eina_log_domain_level_set("Levels", 6); TEST_LOG_CTX(6, "Higher level debug"); EINA_LOG(d, 6, "Higher level debug"); fail_unless(ctx.did); eina_log_domain_level_set("Levels", 5); TEST_LOG_CTX(6, "Higher level debug"); EINA_LOG(d, 6, "Higher level debug"); fail_if(ctx.did); #undef TEST_LOG_CTX eina_log_print_cb_set(eina_log_print_cb_stderr, NULL); eina_threads_shutdown(); eina_threads_shutdown(); eina_shutdown(); } END_TEST START_TEST(eina_log_customize) { struct log_ctx ctx; int d; /* please don't define EINA_LOG_LEVELS for it */ #define TEST_DOM "_Test_Log_Dom" fail_if(!eina_init()); #define test_set_get(func, val) \ eina_log_ ## func ## _set(val); \ fail_if(eina_log_ ## func ## _get() != val) test_set_get(level, -1234); test_set_get(level, 4567); #define test_set_get_bool(func) \ test_set_get(func, EINA_FALSE); \ test_set_get(func, EINA_TRUE) test_set_get_bool(color_disable); test_set_get_bool(file_disable); test_set_get_bool(function_disable); test_set_get_bool(abort_on_critical); test_set_get(abort_on_critical_level, -1234); test_set_get(abort_on_critical_level, 4567); fail_if(eina_log_domain_level_get(TEST_DOM) != eina_log_level_get()); eina_log_domain_level_set(TEST_DOM, -123); fail_if(eina_log_domain_level_get(TEST_DOM) != -123); eina_log_domain_level_set(TEST_DOM, 890); fail_if(eina_log_domain_level_get(TEST_DOM) != 890); d = eina_log_domain_register(TEST_DOM, EINA_COLOR_GREEN); fail_if(d < 0); fail_if(eina_log_domain_level_get(TEST_DOM) != 890); fail_if(eina_log_domain_registered_level_get(d) != 890); eina_log_domain_unregister(d); #ifdef EINA_SAFETY_CHECKS #ifdef SHOW_LOG fputs("NOTE: You should see a failed safety check or " "a crash if compiled without safety checks support.\n", stderr); #endif eina_log_abort_on_critical_set(EINA_FALSE); eina_log_function_disable_set(EINA_FALSE); eina_log_print_cb_set(_eina_test_log_safety, &ctx); ctx.level = EINA_LOG_LEVEL_ERR; ctx.msg = "safety check failed: _log_domains[domain].deleted is true"; ctx.fnc = "eina_log_domain_registered_level_get"; ctx.did = EINA_FALSE; fail_if(eina_log_domain_registered_level_get(d) != EINA_LOG_LEVEL_UNKNOWN); fail_unless(ctx.did); eina_log_print_cb_set(eina_log_print_cb_stderr, NULL); #else #warning "Compiled without safety checks" #endif #undef test_set_get_bool #undef test_set_get eina_shutdown(); } END_TEST START_TEST(eina_log_level_name) { char name[4]; fail_if(!eina_init()); #define tst(level, str) \ eina_log_level_name_get(level, name); \ fail_if(strcmp(name, str) != 0) tst(0, "CRI"); tst(1, "ERR"); tst(2, "WRN"); tst(3, "INF"); tst(4, "DBG"); tst(5, "005"); tst(12, "012"); tst(369, "369"); tst(-1, "-01"); tst(-48, "-48"); #undef tst eina_shutdown(); } END_TEST void eina_test_log(TCase *tc) { tcase_add_test(tc, eina_log_macro); tcase_add_test(tc, eina_log_domains_macros); tcase_add_test(tc, eina_log_domains_registry); tcase_add_test(tc, eina_log_domains_slot_reuse); tcase_add_test(tc, eina_log_level_indexes); tcase_add_test(tc, eina_log_customize); tcase_add_test(tc, eina_log_level_name); } eina-1.7.10/src/tests/evas_list.c0000664000175000017500000006602012175475327013546 00000000000000#ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "Evas_Data.h" #include typedef struct _Evas_List_Accounting Evas_List_Accounting; struct _Evas_List_Accounting { Evas_List *last; int count; }; static int _evas_list_alloc_error = 0; static Evas_Mempool _evas_list_mempool = { sizeof(Evas_List), 320, 0, NULL, NULL }; static Evas_Mempool _evas_list_accounting_mempool = { sizeof(Evas_List_Accounting), 80, 0, NULL, NULL }; /** * @defgroup Evas_List_Data_Group Linked List Creation Functions * * Functions that add data to an Evas_List. */ /** * Appends the given data to the given linked list. * * The following example code demonstrates how to ensure that the * given data has been successfully appended. * * @code * Evas_List *list = NULL; * extern void *my_data; * * list = evas_list_append(list, my_data); * if (evas_list_alloc_error()) * { * fprintf(stderr, "ERROR: Memory is low. List allocation failed.\n"); * exit(-1); * } * @endcode * * @param list The given list. If @c NULL is given, then a new list * is created. * @param data The data to append. * @return A new list pointer that should be used in place of the one * given to this function if successful. Otherwise, the old * pointer is returned. * @ingroup Evas_List_Data_Group */ EAPI Evas_List * evas_list_append(Evas_List *list, const void *data) { Evas_List *l, *new_l; _evas_list_alloc_error = 0; new_l = evas_mempool_malloc(&_evas_list_mempool, sizeof(Evas_List)); if (!new_l) { _evas_list_alloc_error = 1; return list; } new_l->next = NULL; new_l->data = (void *)data; if (!list) { new_l->prev = NULL; new_l->accounting = evas_mempool_malloc(&_evas_list_accounting_mempool, sizeof(Evas_List_Accounting)); if (!new_l->accounting) { _evas_list_alloc_error = 1; evas_mempool_free(&_evas_list_mempool, new_l); return list; } new_l->accounting->last = new_l; new_l->accounting->count = 1; return new_l; } l = list->accounting->last; l->next = new_l; new_l->prev = l; new_l->accounting = list->accounting; list->accounting->last = new_l; list->accounting->count++; return list; } /** * Prepends the given data to the given linked list. * * The following example code demonstrates how to ensure that the * given data has been successfully prepended. * * Example: * @code * Evas_List *list = NULL; * extern void *my_data; * * list = evas_list_prepend(list, my_data); * if (evas_list_alloc_error()) * { * fprintf(stderr, "ERROR: Memory is low. List allocation failed.\n"); * exit(-1); * } * @endcode * * @param list The given list. * @param data The given data. * @return A new list pointer that should be used in place of the one * given to this function, if successful. Otherwise, the old * pointer is returned. * @ingroup Evas_List_Data_Group */ EAPI Evas_List * evas_list_prepend(Evas_List *list, const void *data) { Evas_List *new_l; _evas_list_alloc_error = 0; new_l = evas_mempool_malloc(&_evas_list_mempool, sizeof(Evas_List)); if (!new_l) { _evas_list_alloc_error = 1; return list; } new_l->prev = NULL; new_l->data = (void *)data; if (!list) { new_l->next = NULL; new_l->accounting = evas_mempool_malloc(&_evas_list_accounting_mempool, sizeof(Evas_List_Accounting)); if (!new_l->accounting) { _evas_list_alloc_error = 1; evas_mempool_free(&_evas_list_mempool, new_l); return list; } new_l->accounting->last = new_l; new_l->accounting->count = 1; return new_l; } new_l->next = list; list->prev = new_l; new_l->accounting = list->accounting; list->accounting->count++; return new_l; } /** * Inserts the given data into the given linked list after the specified data. * * If @p relative is not in the list, @p data is appended to the end of the * list. If there are multiple instances of @p relative in the list, * @p data is inserted after the first instance. * * The following example code demonstrates how to ensure that the * given data has been successfully inserted. * * @code * Evas_List *list = NULL; * extern void *my_data; * extern void *relative_member; * * list = evas_list_append(list, relative_member); * if (evas_list_alloc_error()) * { * fprintf(stderr, "ERROR: Memory is low. List allocation failed.\n"); * exit(-1); * } * list = evas_list_append_relative(list, my_data, relative_member); * if (evas_list_alloc_error()) * { * fprintf(stderr, "ERROR: Memory is low. List allocation failed.\n"); * exit(-1); * } * @endcode * * @param list The given linked list. * @param data The given data. * @param relative The data to insert after. * @return A new list pointer that should be used in place of the one * given to this function if successful. Otherwise, the old pointer * is returned. * @ingroup Evas_List_Data_Group */ EAPI Evas_List * evas_list_append_relative(Evas_List *list, const void *data, const void *relative) { Evas_List *l; for (l = list; l; l = l->next) { if (l->data == relative) return evas_list_append_relative_list(list, data, l); } return evas_list_append(list, data); } EAPI Evas_List * evas_list_append_relative_list(Evas_List *list, const void *data, Evas_List *relative) { Evas_List *new_l; if ((!list) || (!relative)) return evas_list_append(list, data); _evas_list_alloc_error = 0; new_l = evas_mempool_malloc(&_evas_list_mempool, sizeof(Evas_List)); if (!new_l) { _evas_list_alloc_error = 1; return list; } new_l->data = (void *)data; if (relative->next) { new_l->next = relative->next; relative->next->prev = new_l; } else new_l->next = NULL; relative->next = new_l; new_l->prev = relative; new_l->accounting = list->accounting; list->accounting->count++; if (!new_l->next) new_l->accounting->last = new_l; return list; } /** * Prepend a data pointer to a linked list before the member specified * @param list The list handle to prepend @p data too * @param data The data pointer to prepend to list @p list before @p relative * @param relative The data pointer before which to insert @p data * @return A new list handle to replace the old one * Inserts the given data into the given linked list before the member * specified. * * If @p relative is not in the list, @p data is prepended to the * start of the list. If there are multiple instances of @p relative * in the list, @p data is inserted before the first instance. * * The following code example demonstrates how to ensure that the * given data has been successfully inserted. * * @code * Evas_List *list = NULL; * extern void *my_data; * extern void *relative_member; * * list = evas_list_append(list, relative_member); * if (evas_list_alloc_error()) * { * fprintf(stderr, "ERROR: Memory is low. List allocation failed.\n"); * exit(-1); * } * list = evas_list_prepend_relative(list, my_data, relative_member); * if (evas_list_alloc_error()) * { * fprintf(stderr, "ERROR: Memory is low. List allocation failed.\n"); * exit(-1); * } * @endcode * * @param list The given linked list. * @param data The given data. * @param relative The data to insert before. * @return A new list pointer that should be used in place of the one * given to this function if successful. Otherwise the old pointer * is returned. * @ingroup Evas_List_Data_Group */ EAPI Evas_List * evas_list_prepend_relative(Evas_List *list, const void *data, const void *relative) { Evas_List *l; _evas_list_alloc_error = 0; for (l = list; l; l = l->next) { if (l->data == relative) return evas_list_prepend_relative_list(list, data, l); } return evas_list_prepend(list, data); } EAPI Evas_List * evas_list_prepend_relative_list(Evas_List *list, const void *data, Evas_List *relative) { Evas_List *new_l; if ((!list) || (!relative)) return evas_list_prepend(list, data); _evas_list_alloc_error = 0; new_l = evas_mempool_malloc(&_evas_list_mempool, sizeof(Evas_List)); if (!new_l) { _evas_list_alloc_error = 1; return list; } new_l->data = (void *)data; new_l->prev = relative->prev; new_l->next = relative; if (relative->prev) relative->prev->next = new_l; relative->prev = new_l; new_l->accounting = list->accounting; list->accounting->count++; if (new_l->prev) return list; return new_l; } /** * @defgroup Evas_List_Remove_Group Linked List Remove Functions * * Functions that remove data from linked lists. */ /** * Removes the first instance of the specified data from the given list. * * If the specified data is not in the given list, nothing is done. * * @param list The given list. * @param data The specified data. * @return A new list pointer that should be used in place of the one * passed to this functions. * @ingroup Evas_List_Remove_Group */ EAPI Evas_List * evas_list_remove(Evas_List *list, const void *data) { Evas_List *l; for (l = list; l; l = l->next) { if (l->data == data) return evas_list_remove_list(list, l); } return list; } /** * Removes the specified data * * Remove a specified member from a list * @param list The list handle to remove @p remove_list from * @param remove_list The list node which is to be removed * @return A new list handle to replace the old one * * Calling this function takes the list node @p remove_list and removes it * from the list @p list, freeing the list node structure @p remove_list. * * Example: * @code * extern Evas_List *list; * Evas_List *l; * extern void *my_data; * * for (l = list; l; l= l->next) * { * if (l->data == my_data) * { * list = evas_list_remove_list(list, l); * break; * } * } * @endcode * @ingroup Evas_List_Remove_Group */ EAPI Evas_List * evas_list_remove_list(Evas_List *list, Evas_List *remove_list) { Evas_List *return_l; if (!list) return NULL; if (!remove_list) return list; if (remove_list->next) remove_list->next->prev = remove_list->prev; if (remove_list->prev) { remove_list->prev->next = remove_list->next; return_l = list; } else return_l = remove_list->next; if (remove_list == list->accounting->last) list->accounting->last = remove_list->prev; list->accounting->count--; if (list->accounting->count == 0) evas_mempool_free(&_evas_list_accounting_mempool, list->accounting); evas_mempool_free(&_evas_list_mempool, remove_list); return return_l; } /** * Moves the specified data to the head of the list * * Move a specified member to the head of the list * @param list The list handle to move @p inside * @param move_list The list node which is to be moved * @return A new list handle to replace the old one * * Calling this function takes the list node @p move_list and moves it * to the front of the @p list. * * Example: * @code * extern Evas_List *list; * Evas_List *l; * extern void *my_data; * * for (l = list; l; l= l->next) * { * if (l->data == my_data) * { * list = evas_list_promote_list(list, l); * break; * } * } * @endcode * @ingroup Evas_List_Promote_Group */ EAPI Evas_List * evas_list_promote_list(Evas_List *list, Evas_List *move_list) { Evas_List *return_l; if (!list) return NULL; if (!move_list) return list; if (move_list == list) return list; if (move_list->next) move_list->next->prev = move_list->prev; if (move_list->prev) { move_list->prev->next = move_list->next; return_l = list; } else return_l = move_list->next; if (move_list == list->accounting->last) list->accounting->last = move_list->prev; move_list->prev = return_l->prev; if (return_l->prev) return_l->prev->next = move_list; return_l->prev = move_list; move_list->next = return_l; return move_list; } /** * @defgroup Evas_List_Find_Group Linked List Find Functions * * Functions that find specified data in a linked list. */ /** * Find a member of a list and return the member * @param list The list handle to search for @p data * @param data The data pointer to find in the list @p list * @return The found member data pointer * * A call to this function will search the list @p list from beginning to end * for the first member whose data pointer is @p data. If it is found, @p data * will be returned, otherwise NULL will be returned. * * Example: * @code * extern Evas_List *list; * extern void *my_data; * * if (evas_list_find(list, my_data) == my_data) * { * printf("Found member %p\n", my_data); * } * @endcode * @ingroup Evas_List_Find_Group */ EAPI void * evas_list_find(const Evas_List *list, const void *data) { const Evas_List *l; for (l = list; l; l = l->next) { if (l->data == data) return (void *)data; } return NULL; } /** * Find a member of a list and return the list node containing that member * @param list The list handle to search for @p data * @param data The data pointer to find in the list @p list * @return The found members list node * * A call to this function will search the list @p list from beginning to end * for the first member whose data pointer is @p data. If it is found, the * list node containing the specified member will be returned, otherwise NULL * will be returned. * * Example: * @code * extern Evas_List *list; * extern void *my_data; * Evas_List *found_node; * * found_node = evas_list_find_list(list, my_data); * if (found_node) * { * printf("Found member %p\n", found_node->data); * } * @endcode * @ingroup Evas_List_Find_Group */ EAPI Evas_List * evas_list_find_list(const Evas_List *list, const void *data) { const Evas_List *l; for (l = list; l; l = l->next) { if (l->data == data) return (Evas_List *)l; } return NULL; } /** * Free an entire list and all the nodes, ignoring the data contained * @param list The list to free * @return A NULL pointer * * This function will free all the list nodes in list specified by @p list. * * Example: * @code * extern Evas_List *list; * * list = evas_list_free(list); * @endcode * @ingroup Evas_List_Remove_Group */ EAPI Evas_List * evas_list_free(Evas_List *list) { Evas_List *l, *free_l; if (!list) return NULL; evas_mempool_free(&_evas_list_accounting_mempool, list->accounting); for (l = list; l; ) { free_l = l; l = l->next; evas_mempool_free(&_evas_list_mempool, free_l); } return NULL; } /** * @defgroup Evas_List_Traverse_Group Linked List Traverse Functions * * Functions that you can use to traverse a linked list. */ /** * Get the last list node in the list * @param list The list to get the last list node from * @return The last list node in the list @p list * * This function will return the last list node in the list (or NULL if the * list is empty). * * NB: This is a order-1 operation (it takes the same short time regardless of * the length of the list). * * Example: * @code * extern Evas_List *list; * Evas_List *last, *l; * * last = evas_list_last(list); * printf("The list in reverse:\n"); * for (l = last; l; l = l->prev) * { * printf("%p\n", l->data); * } * @endcode * @ingroup Evas_List_Traverse_Group */ EAPI Evas_List * evas_list_last(const Evas_List *list) { if (!list) return NULL; return list->accounting->last; } /** * Get the next list node after the specified list node * @param list The list node to get the next list node from * @return The next list node, or NULL if no next list node exists * * This function returns the next list node after the current one. It is * equivalent to list->next. * * Example: * @code * extern Evas_List *list; * Evas_List *l; * * printf("The list:\n"); * for (l = list; l; l = evas_list_next(l)) * { * printf("%p\n", l->data); * } * @endcode * @ingroup Evas_List_Traverse_Group */ EAPI Evas_List * evas_list_next(const Evas_List *list) { if (!list) return NULL; return list->next; } /** * Get the previous list node before the specified list node * @param list The list node to get the previous list node from * @return The previous list node, or NULL if no previous list node exists * * This function returns the previous list node before the current one. It is * equivalent to list->prev. * * Example: * @code * extern Evas_List *list; * Evas_List *last, *l; * * last = evas_list_last(list); * printf("The list in reverse:\n"); * for (l = last; l; l = evas_list_prev(l)) * { * printf("%p\n", l->data); * } * @endcode * @ingroup Evas_List_Traverse_Group */ EAPI Evas_List * evas_list_prev(const Evas_List *list) { if (!list) return NULL; return list->prev; } /** * @defgroup Evas_List_General_Group Linked List General Functions * * Miscellaneous functions that work on linked lists. */ /** * Get the list node data member * @param list The list node to get the data member of * @return The data member from the list node @p list * * This function returns the data member of the specified list node @p list. * It is equivalent to list->data. * * Example: * @code * extern Evas_List *list; * Evas_List *l; * * printf("The list:\n"); * for (l = list; l; l = evas_list_next(l)) * { * printf("%p\n", evas_list_data(l)); * } * @endcode * @ingroup Evas_List_General_Group */ EAPI void * evas_list_data(const Evas_List *list) { if (!list) return NULL; return list->data; } /** * Get the count of the number of items in a list * @param list The list whose count to return * @return The number of members in the list @p list * * This function returns how many members in the specified list: @p list. If * the list is empty (NULL), 0 is returned. * * NB: This is an order-1 operation and takes the same time regardless of the * length of the list. * * Example: * @code * extern Evas_List *list; * * printf("The list has %i members\n", evas_list_count(list)); * @endcode * @ingroup Evas_List_General_Group */ EAPI int evas_list_count(const Evas_List *list) { if (!list) return 0; return list->accounting->count; } /** * Get the nth member's data pointer in a list * @param list The list to get member number @p n from * @param n The number of the element (0 being the first) * @return The data pointer stored in the specified element * * This function returns the data pointer of element number @p n, in the list * @p list. The first element in the array is element number 0. If the element * number @p n does not exist, NULL will be returned. * * Example: * @code * extern Evas_List *list; * extern int number; * void *data; * * data = evas_list_nth(list, number); * if (data) * printf("Element number %i has data %p\n", number, data); * @endcode * @ingroup Evas_List_Find_Group */ EAPI void * evas_list_nth(const Evas_List *list, int n) { Evas_List *l; l = evas_list_nth_list(list, n); return l ? l->data : NULL; } /** * Get the nth member's list node in a list * @param list The list to get member number @p n from * @param n The number of the element (0 being the first) * @return The list node stored in the numbered element * * This function returns the list node of element number @p n, in the list * @p list. The first element in the array is element number 0. If the element * number @p n does not exist, NULL will be returned. * * Example: * @code * extern Evas_List *list; * extern int number; * Evas_List *nth_list; * * nth_list = evas_list_nth_list(list, number); * if (nth_list) * printf("Element number %i has data %p\n", number, nth_list->data); * @endcode * @ingroup Evas_List_Find_Group */ EAPI Evas_List * evas_list_nth_list(const Evas_List *list, int n) { int i; const Evas_List *l; /* check for non-existing nodes */ if ((!list) || (n < 0) || (n > (list->accounting->count - 1))) return NULL; /* if the node is in the 2nd half of the list, search from the end * else, search from the beginning. */ if (n > (list->accounting->count / 2)) for (i = list->accounting->count - 1, l = list->accounting->last; l; l = l->prev, i--) { if (i == n) return (Evas_List *)l; } else for (i = 0, l = list; l; l = l->next, i++) { if (i == n) return (Evas_List *)l; } return NULL; } /** * @defgroup Evas_List_Ordering_Group Linked List Ordering Functions * * Functions that change the ordering of data in a linked list. */ /** * Reverse all the elements in the list * @param list The list to reverse * @return The list after it has been reversed * * This takes a list @p list, and reverses the order of all elements in the * list, so the last member is now first, and so on. * * Example: * @code * extern Evas_List *list; * * list = evas_list_reverse(list); * @endcode * @ingroup Evas_List_Ordering_Group */ EAPI Evas_List * evas_list_reverse(Evas_List *list) { Evas_List *l1, *l2; if (!list) return NULL; l1 = list; l2 = list->accounting->last; while (l1 != l2) { void *data; data = l1->data; l1->data = l2->data; l2->data = data; l1 = l1->next; if (l1 == l2) break; l2 = l2->prev; } return list; } /** * Sort a list according to the ordering func will return * @param list The list handle to sort * @param size The length of the list to sort * @param func A function pointer that can handle comparing the list data * nodes * @return A new sorted list * * This function sorts your list. The data in your nodes can be arbitrary, * you just have to be smart enough to know what kind of data is in your * lists * * Example: * @code * int * sort_cb(void *d1, void *d2) * { * const char *txt = NULL; * const char *txt2 = NULL; * * if(!d1) return(1); * if(!d2) return(-1); * * return(strcmp((const char*)d1, (const char*)d2)); * } * extern Evas_List *list; * * list = evas_list_sort(list, evas_list_count(list), sort_cb); * if (evas_list_alloc_error()) * { * fprintf(stderr, "ERROR: Memory is low. List Sorting failed.\n"); * exit(-1); * } * @endcode * @ingroup Evas_List_Ordering_Group */ EAPI Evas_List * evas_list_sort(Evas_List *list, int size, int (*func)(void *, void *)) { Evas_List *last; unsigned int list_number; unsigned int middle; unsigned int list_size; if (!list || !func) return NULL; /* if the caller specified an invalid size, sort the whole list */ if ((size <= 0) || (size > list->accounting->count)) size = list->accounting->count; last = list->accounting->last; middle = size - size / 2; for (list_number = middle, list_size = 1; list_size < middle * 2; list_number >>= 1, list_size <<= 1) { Evas_List *head1 = list; unsigned int limit = size; unsigned int process_list; unsigned int pass_number; unsigned int split_size = list_size; for (process_list = 0; process_list < list_number + 1; ++process_list) { Evas_List *head2; unsigned int size_sum; int size1, size2; int i; size1 = limit < split_size ? limit : split_size; limit -= size1; size2 = limit < split_size ? limit : split_size; limit -= size2; size_sum = size1 + size2; for (head2 = head1, i = 0; i < size1; ++i) head2 = evas_list_next (head2); for (pass_number = 0; pass_number < size_sum; ++pass_number) { Evas_List *next; Evas_List *prev1; Evas_List *prev2; if (size1 == 0 || !head1) /* List1 is empty, head1 is already at the end of the list. So only need to update head2 */ { for (; pass_number < size_sum; ++pass_number) head2 = evas_list_next (head2); break; } else if (size2 == 0 || !head2) /* List2 is empty, just leave */ break; else if (func (head1->data, head2->data) < 0) { head1 = evas_list_next (head1); --size1; } else { next = evas_list_next (head2); prev1 = evas_list_prev (head1); prev2 = evas_list_prev (head2); if (next) next->prev = prev2; if (prev1) prev1->next = head2; if (prev2) prev2->next = next; head2->prev = prev1; head2->next = head1; head1->prev = head2; --size2; if (head1 == list) list = head2; if (head2 == last) last = prev2; head2 = next; } } head1 = head2; } } list->accounting->last = last; return list; } /** * Return the memory allocation failure flag after any operation needin allocation * @return The state of the allocation flag * * This function returns the state of the memory allocation flag. This flag is * set if memory allocations during evas_list_append(), evas_list_prepend(), * evas_list_append_relative(), or evas_list_prepend_relative() fail. If they * do fail, 1 will be returned, otherwise 0 will be returned. The flag will * remain in its current state until the next call that requires allocation * is called, and is then reset. * * Example: * @code * Evas_List *list = NULL; * extern void *my_data; * * list = evas_list_append(list, my_data); * if (evas_list_alloc_error()) * { * fprintf(stderr, "ERROR: Memory is low. List allocation failed.\n"); * exit(-1); * } * @endcode * @ingroup Evas_List_General_Group */ EAPI int evas_list_alloc_error(void) { return _evas_list_alloc_error; } eina-1.7.10/src/tests/eina_bench.c0000664000175000017500000000510012175475327013620 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include "eina_bench.h" #include "Eina.h" typedef struct _Eina_Benchmark_Case Eina_Benchmark_Case; struct _Eina_Benchmark_Case { const char *bench_case; void (*build)(Eina_Benchmark *bench); }; static const Eina_Benchmark_Case etc[] = { { "Hash", eina_bench_hash }, /* { "Array vs List vs Inlist", eina_bench_array }, */ /* { "Stringshare", eina_bench_stringshare }, */ /* { "Convert", eina_bench_convert }, */ /* { "Sort", eina_bench_sort }, */ /* { "Mempool", eina_bench_mempool }, */ /* { "Rectangle_Pool", eina_bench_rectangle_pool }, */ // { "Render Loop", eina_bench_quadtree }, { NULL, NULL } }; /* FIXME this is a copy from eina_test_mempool * we should remove the duplication */ static Eina_Array *_modules; static void _mempool_init(void) { eina_init(); /* force modules to be loaded in case they are not installed */ _modules = eina_module_list_get(NULL, PACKAGE_BUILD_DIR "/src/modules", EINA_TRUE, NULL, NULL); eina_module_list_load(_modules); } static void _mempool_shutdown(void) { eina_module_list_free(_modules); /* TODO delete the list */ eina_shutdown(); } int main(int argc, char **argv) { Eina_Benchmark *test; unsigned int i; if (argc != 2) return -1; _mempool_init(); eina_init(); for (i = 0; etc[i].bench_case; ++i) { test = eina_benchmark_new(etc[i].bench_case, argv[1]); if (!test) continue; etc[i].build(test); eina_benchmark_run(test); eina_benchmark_free(test); } eina_bench_e17(); eina_shutdown(); _mempool_shutdown(); return 0; } eina-1.7.10/src/tests/eina_test_accessor.c0000664000175000017500000001343012175475327015407 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_suite.h" #include "Eina.h" static Eina_Bool eina_accessor_check(__UNUSED__ const Eina_Array *array, int *data, int *fdata) { fail_if(*fdata > *data); *fdata = *data; return EINA_TRUE; } START_TEST(eina_accessor_array_simple) { Eina_Accessor *it; Eina_Array *ea; int *tmp; int i; eina_init(); ea = eina_array_new(11); fail_if(!ea); for (i = 0; i < 200; ++i) { tmp = malloc(sizeof(int)); fail_if(!tmp); *tmp = i; eina_array_push(ea, tmp); } it = eina_array_accessor_new(ea); fail_if(!it); fail_if(eina_accessor_data_get(it, 100, (void **)&tmp) != EINA_TRUE); fail_if(!tmp); fail_if(*tmp != 100); i = 50; eina_accessor_over(it, EINA_EACH_CB(eina_accessor_check), 50, 100, &i); fail_if(i != 99); fail_if(eina_accessor_container_get(it) != ea); eina_accessor_free(it); eina_array_free(ea); eina_shutdown(); } END_TEST typedef struct _Eina_Test_Inlist Eina_Test_Inlist; struct _Eina_Test_Inlist { EINA_INLIST; int i; }; static Eina_Test_Inlist * _eina_test_inlist_build(int i) { Eina_Test_Inlist *tmp; tmp = malloc(sizeof(Eina_Test_Inlist)); fail_if(!tmp); tmp->i = i; return tmp; } static Eina_Bool eina_accessor_inlist_data_check(__UNUSED__ const Eina_Inlist *in_list, Eina_Test_Inlist *data, int *fdata) { switch (*fdata) { case 0: fail_if(data->i != 3227); break; case 1: fail_if(data->i != 1664); break; } (*fdata)++; return EINA_TRUE; } START_TEST(eina_accessor_inlist_simple) { Eina_Inlist *lst = NULL; Eina_Test_Inlist *tmp; Eina_Test_Inlist *prev; Eina_Accessor *it; int i = 0; tmp = _eina_test_inlist_build(42); lst = eina_inlist_append(lst, EINA_INLIST_GET(tmp)); fail_if(!lst); tmp = _eina_test_inlist_build(1664); lst = eina_inlist_append_relative(lst, EINA_INLIST_GET(tmp), lst); fail_if(!lst); fail_if(((Eina_Test_Inlist *)lst)->i != 42); prev = tmp; tmp = _eina_test_inlist_build(3227); lst = eina_inlist_prepend_relative(lst, EINA_INLIST_GET( tmp), EINA_INLIST_GET(prev)); fail_if(!lst); fail_if(((Eina_Test_Inlist *)lst)->i != 42); tmp = _eina_test_inlist_build(27); lst = eina_inlist_prepend_relative(lst, EINA_INLIST_GET(tmp), NULL); tmp = _eina_test_inlist_build(81); lst = eina_inlist_append_relative(lst, EINA_INLIST_GET(tmp), NULL); tmp = _eina_test_inlist_build(7); lst = eina_inlist_append(lst, EINA_INLIST_GET(tmp)); it = eina_inlist_accessor_new(lst); fail_if(!it); fail_if(eina_accessor_container_get(it) != lst); eina_accessor_over(it, EINA_EACH_CB(eina_accessor_inlist_data_check), 2, 4, &i); fail_if(eina_accessor_data_get(it, 5, (void **)&tmp) != EINA_TRUE); fail_if(eina_accessor_data_get(it, 3, (void **)&tmp) != EINA_TRUE); fail_if(tmp->i != 1664); fail_if(eina_accessor_data_get(it, 3, (void **)&tmp) != EINA_TRUE); fail_if(tmp->i != 1664); fail_if(eina_accessor_data_get(it, 1, (void **)&tmp) != EINA_TRUE); fail_if(tmp->i != 42); eina_accessor_free(it); fail_if(i != 2); } END_TEST static Eina_Bool eina_iterator_list_data_check(__UNUSED__ const Eina_List *list, int *data, int *fdata) { switch (*fdata) { case 0: fail_if(*data != 9); break; case 1: fail_if(*data != 6); break; } (*fdata)++; return EINA_TRUE; } START_TEST(eina_accessor_list_simple) { Eina_List *list = NULL; Eina_Accessor *it; int data[] = { 6, 9, 42, 1, 7, 1337, 81, 1664 }; int *j; int i = 0; eina_init(); list = eina_list_append(list, &data[0]); fail_if(list == NULL); list = eina_list_prepend(list, &data[1]); fail_if(list == NULL); list = eina_list_append(list, &data[2]); fail_if(list == NULL); list = eina_list_append(list, &data[3]); fail_if(list == NULL); list = eina_list_prepend(list, &data[4]); fail_if(list == NULL); list = eina_list_append(list, &data[5]); fail_if(list == NULL); list = eina_list_prepend(list, &data[6]); fail_if(list == NULL); it = eina_list_accessor_new(list); fail_if(!it); eina_accessor_over(it, EINA_EACH_CB(eina_iterator_list_data_check), 2, 4, &i); fail_if(eina_accessor_data_get(it, 5, (void **)&j) != EINA_TRUE); fail_if(*j != 1); fail_if(eina_accessor_data_get(it, 3, (void **)&j) != EINA_TRUE); fail_if(*j != 6); fail_if(eina_accessor_data_get(it, 3, (void **)&j) != EINA_TRUE); fail_if(*j != 6); fail_if(eina_accessor_data_get(it, 1, (void **)&j) != EINA_TRUE); fail_if(*j != 7); fail_if(eina_accessor_data_get(it, 5, (void **)&j) != EINA_TRUE); fail_if(*j != 1); eina_accessor_free(it); } END_TEST void eina_test_accessor(TCase *tc) { tcase_add_test(tc, eina_accessor_array_simple); tcase_add_test(tc, eina_accessor_inlist_simple); tcase_add_test(tc, eina_accessor_list_simple); } eina-1.7.10/src/tests/eina_test_module_dummy.c0000664000175000017500000000045612175475327016311 00000000000000#ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "Eina.h" Eina_Bool dummy_module_init(void) { return EINA_TRUE; } void dummy_module_shutdown(void) { } EAPI int dummy_symbol = 0xbad; EINA_MODULE_INIT(dummy_module_init); EINA_MODULE_SHUTDOWN(dummy_module_shutdown); eina-1.7.10/src/tests/eina_test_value.c0000664000175000017500000016726212175475327014736 00000000000000/* EINA - EFL data type library * Copyright (C) 2012 ProFUSION embedded systems * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "eina_suite.h" #include "Eina.h" #define FP_ERR (0.0000001) #define CHECK_FP(a, b) ((a - b) < FP_ERR) START_TEST(eina_value_test_simple) { Eina_Value *value; char c; short s; int i; long l; int64_t i64; unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul; uint64_t u64; float f; double d; eina_init(); value = eina_value_new(EINA_VALUE_TYPE_CHAR); fail_unless(value != NULL); fail_unless(eina_value_set(value, 'x')); fail_unless(eina_value_get(value, &c)); fail_unless(c == 'x'); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_SHORT)); fail_unless(eina_value_set(value, 300)); fail_unless(eina_value_get(value, &s)); fail_unless(s == 300); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_INT)); fail_unless(eina_value_set(value, -12345)); fail_unless(eina_value_get(value, &i)); fail_unless(i == -12345); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_LONG)); fail_unless(eina_value_set(value, 0xb33f)); fail_unless(eina_value_get(value, &l)); fail_unless(l == 0xb33f); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_INT64)); fail_unless(eina_value_set(value, 0x0011223344556677)); fail_unless(eina_value_get(value, &i64)); fail_unless(i64 == 0x0011223344556677); eina_value_flush(value); /* unsigned: */ fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UCHAR)); fail_unless(eina_value_set(value, 200)); fail_unless(eina_value_get(value, &uc)); fail_unless(uc == 200); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_USHORT)); fail_unless(eina_value_set(value, 65535)); fail_unless(eina_value_get(value, &us)); fail_unless(us == 65535); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UINT)); fail_unless(eina_value_set(value, 4000000000U)); fail_unless(eina_value_get(value, &ui)); fail_unless(ui == 4000000000U); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_ULONG)); fail_unless(eina_value_set(value, 3000000001UL)); fail_unless(eina_value_get(value, &ul)); fail_unless(ul == 3000000001UL); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UINT64)); fail_unless(eina_value_set(value, 0x1122334455667788)); fail_unless(eina_value_get(value, &u64)); fail_unless(u64 == 0x1122334455667788); eina_value_flush(value); /* floating point */ fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_FLOAT)); fail_unless(eina_value_set(value, 0.1234)); fail_unless(eina_value_get(value, &f)); fail_unless(CHECK_FP(0.1234, f)); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_DOUBLE)); fail_unless(eina_value_set(value, 34567.8)); fail_unless(eina_value_get(value, &d)); fail_unless(CHECK_FP(34567.8, d)); eina_value_flush(value); eina_value_free(value); eina_shutdown(); } END_TEST START_TEST(eina_value_test_compare) { Eina_Value *a, *b; eina_init(); a = eina_value_new(EINA_VALUE_TYPE_CHAR); fail_unless(a != NULL); b = eina_value_new(EINA_VALUE_TYPE_CHAR); fail_unless(b != NULL); fail_unless(eina_value_set(a, 123)); fail_unless(eina_value_set(b, 123)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_set(a, -10)); fail_unless(eina_value_set(b, 123)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_set(a, 123)); fail_unless(eina_value_set(b, 10)); fail_unless(eina_value_compare(a, b) > 0); eina_value_flush(a); eina_value_flush(b); fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_SHORT)); fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_SHORT)); fail_unless(eina_value_set(a, 1230)); fail_unless(eina_value_set(b, 1230)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_set(a, -100)); fail_unless(eina_value_set(b, 1230)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_set(a, 1230)); fail_unless(eina_value_set(b, -100)); fail_unless(eina_value_compare(a, b) > 0); eina_value_flush(a); eina_value_flush(b); fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_INT)); fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_INT)); fail_unless(eina_value_set(a, 300000)); fail_unless(eina_value_set(b, 300000)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_set(a, -100)); fail_unless(eina_value_set(b, 300000)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_set(a, 300000)); fail_unless(eina_value_set(b, -100)); fail_unless(eina_value_compare(a, b) > 0); eina_value_flush(a); eina_value_flush(b); fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_LONG)); fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_LONG)); fail_unless(eina_value_set(a, 300000L)); fail_unless(eina_value_set(b, 300000L)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_set(a, -100L)); fail_unless(eina_value_set(b, 300000L)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_set(a, 300000L)); fail_unless(eina_value_set(b, -100L)); fail_unless(eina_value_compare(a, b) > 0); eina_value_flush(a); eina_value_flush(b); fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_INT64)); fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_INT64)); fail_unless(eina_value_set(a, (int64_t)800000)); fail_unless(eina_value_set(b, (int64_t)800000)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_set(a, (int64_t)-100)); fail_unless(eina_value_set(b, (int64_t)8000000)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_set(a, (int64_t)8000000)); fail_unless(eina_value_set(b, (int64_t)-100)); fail_unless(eina_value_compare(a, b) > 0); eina_value_flush(a); eina_value_flush(b); fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_UCHAR)); fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_UCHAR)); fail_unless(eina_value_set(a, 123)); fail_unless(eina_value_set(b, 123)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_set(a, 10)); fail_unless(eina_value_set(b, 123)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_set(a, 123)); fail_unless(eina_value_set(b, 10)); fail_unless(eina_value_compare(a, b) > 0); eina_value_flush(a); eina_value_flush(b); fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_USHORT)); fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_USHORT)); fail_unless(eina_value_set(a, 1230)); fail_unless(eina_value_set(b, 1230)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_set(a, 100)); fail_unless(eina_value_set(b, 1230)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_set(a, 1230)); fail_unless(eina_value_set(b, 100)); fail_unless(eina_value_compare(a, b) > 0); eina_value_flush(a); eina_value_flush(b); fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_UINT)); fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_UINT)); fail_unless(eina_value_set(a, 300000)); fail_unless(eina_value_set(b, 300000)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_set(a, 100)); fail_unless(eina_value_set(b, 300000)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_set(a, 300000)); fail_unless(eina_value_set(b, 100)); fail_unless(eina_value_compare(a, b) > 0); eina_value_flush(a); eina_value_flush(b); fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_ULONG)); fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_ULONG)); fail_unless(eina_value_set(a, 300000UL)); fail_unless(eina_value_set(b, 300000UL)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_set(a, 100UL)); fail_unless(eina_value_set(b, 300000UL)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_set(a, 300000UL)); fail_unless(eina_value_set(b, 100UL)); fail_unless(eina_value_compare(a, b) > 0); eina_value_flush(a); eina_value_flush(b); fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_UINT64)); fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_UINT64)); fail_unless(eina_value_set(a, (uint64_t)8000000)); fail_unless(eina_value_set(b, (uint64_t)8000000)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_set(a, (uint64_t)100)); fail_unless(eina_value_set(b, (uint64_t)8000000)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_set(a, (uint64_t)8000000)); fail_unless(eina_value_set(b, (uint64_t)100)); fail_unless(eina_value_compare(a, b) > 0); eina_value_flush(a); eina_value_flush(b); fail_unless(eina_value_setup(a, EINA_VALUE_TYPE_STRING)); fail_unless(eina_value_setup(b, EINA_VALUE_TYPE_STRING)); fail_unless(eina_value_set(a, "aaa")); fail_unless(eina_value_set(b, "aaa")); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_set(a, "abc")); fail_unless(eina_value_set(b, "acd")); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_set(a, "acd")); fail_unless(eina_value_set(b, "abc")); fail_unless(eina_value_compare(a, b) > 0); eina_value_flush(a); eina_value_flush(b); fail_unless(eina_value_array_setup(a, EINA_VALUE_TYPE_CHAR, 0)); fail_unless(eina_value_array_setup(b, EINA_VALUE_TYPE_CHAR, 0)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_array_append(a, 1)); fail_unless(eina_value_array_append(a, 2)); fail_unless(eina_value_array_append(a, 3)); fail_unless(eina_value_array_append(b, 1)); fail_unless(eina_value_array_append(b, 2)); fail_unless(eina_value_array_append(b, 3)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_array_set(a, 0, 0)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_array_set(a, 0, 10)); fail_unless(eina_value_compare(a, b) > 0); fail_unless(eina_value_array_set(a, 0, 1)); fail_unless(eina_value_array_set(b, 0, 0)); fail_unless(eina_value_compare(a, b) > 0); fail_unless(eina_value_array_set(b, 0, 10)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_array_set(b, 0, 1)); fail_unless(eina_value_compare(a, b) == 0); /* bigger arrays are greater */ fail_unless(eina_value_array_append(b, 0)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_array_append(a, 0)); fail_unless(eina_value_array_append(a, 0)); fail_unless(eina_value_compare(a, b) > 0); /* bigger arrays are greater, unless an element says otherwise */ fail_unless(eina_value_array_set(b, 0, 10)); fail_unless(eina_value_compare(a, b) < 0); eina_value_flush(a); eina_value_flush(b); fail_unless(eina_value_list_setup(a, EINA_VALUE_TYPE_CHAR)); fail_unless(eina_value_list_setup(b, EINA_VALUE_TYPE_CHAR)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_list_append(a, 1)); fail_unless(eina_value_list_append(a, 2)); fail_unless(eina_value_list_append(a, 3)); fail_unless(eina_value_list_append(b, 1)); fail_unless(eina_value_list_append(b, 2)); fail_unless(eina_value_list_append(b, 3)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_list_set(a, 0, 0)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_list_set(a, 0, 10)); fail_unless(eina_value_compare(a, b) > 0); fail_unless(eina_value_list_set(a, 0, 1)); fail_unless(eina_value_list_set(b, 0, 0)); fail_unless(eina_value_compare(a, b) > 0); fail_unless(eina_value_list_set(b, 0, 10)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_list_set(b, 0, 1)); fail_unless(eina_value_compare(a, b) == 0); /* bigger lists are greater */ fail_unless(eina_value_list_append(b, 0)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_list_append(a, 0)); fail_unless(eina_value_list_append(a, 0)); fail_unless(eina_value_compare(a, b) > 0); /* bigger lists are greater, unless an element says otherwise */ fail_unless(eina_value_list_set(b, 0, 10)); fail_unless(eina_value_compare(a, b) < 0); eina_value_flush(a); eina_value_flush(b); fail_unless(eina_value_hash_setup(a, EINA_VALUE_TYPE_CHAR, 0)); fail_unless(eina_value_hash_setup(b, EINA_VALUE_TYPE_CHAR, 0)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_hash_set(a, "abc", 1)); fail_unless(eina_value_hash_set(a, "xyz", 2)); fail_unless(eina_value_hash_set(a, "hello", 3)); fail_unless(eina_value_hash_set(b, "abc", 1)); fail_unless(eina_value_hash_set(b, "xyz", 2)); fail_unless(eina_value_hash_set(b, "hello", 3)); fail_unless(eina_value_compare(a, b) == 0); fail_unless(eina_value_hash_set(a, "abc", 0)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_hash_set(a, "abc", 10)); fail_unless(eina_value_compare(a, b) > 0); fail_unless(eina_value_hash_set(a, "abc", 1)); fail_unless(eina_value_hash_set(b, "abc", 0)); fail_unless(eina_value_compare(a, b) > 0); fail_unless(eina_value_hash_set(b, "abc", 10)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_hash_set(b, "abc", 1)); fail_unless(eina_value_compare(a, b) == 0); /* bigger hashs are greater */ fail_unless(eina_value_hash_set(b,"newkey", 0)); fail_unless(eina_value_compare(a, b) < 0); fail_unless(eina_value_hash_set(a, "newkey", 0)); fail_unless(eina_value_hash_set(a, "onemorenewkey", 0)); fail_unless(eina_value_compare(a, b) > 0); /* bigger hashs are greater, unless an element says otherwise */ fail_unless(eina_value_hash_set(b, "abc", 10)); fail_unless(eina_value_compare(a, b) < 0); eina_value_free(a); eina_value_free(b); eina_shutdown(); } END_TEST START_TEST(eina_value_test_string) { Eina_Value *value; const char *s; eina_init(); value = eina_value_new(EINA_VALUE_TYPE_STRING); fail_unless(value != NULL); fail_unless(eina_value_set(value, "hello world!")); fail_unless(eina_value_get(value, &s)); fail_unless(strcmp(s, "hello world!") == 0); fail_unless(eina_value_set(value, "eina-value")); fail_unless(eina_value_get(value, &s)); fail_unless(strcmp(s, "eina-value") == 0); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_STRING)); fail_unless(eina_value_set(value, "profusion")); fail_unless(eina_value_get(value, &s)); fail_unless(strcmp(s, "profusion") == 0); eina_value_free(value); eina_shutdown(); } END_TEST START_TEST(eina_value_test_pvariant) { Eina_Value *value; char c, in_c; short s, in_s; int i, in_i; long l, in_l; int64_t i64, in_i64; unsigned char uc, in_uc; unsigned short us, in_us; unsigned int ui, in_ui; unsigned long ul, in_ul; uint64_t u64, in_u64; float f, in_f; double d, in_d; const char *str, *in_str; eina_init(); value = eina_value_new(EINA_VALUE_TYPE_CHAR); fail_unless(value != NULL); in_c = 'x'; fail_unless(eina_value_pset(value, &in_c)); fail_unless(eina_value_pget(value, &c)); fail_unless(c == 'x'); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_SHORT)); in_s = 300; fail_unless(eina_value_pset(value, &in_s)); fail_unless(eina_value_pget(value, &s)); fail_unless(s == 300); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_INT)); in_i = -12345; fail_unless(eina_value_pset(value, &in_i)); fail_unless(eina_value_pget(value, &i)); fail_unless(i == -12345); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_LONG)); in_l = 0xb33f; fail_unless(eina_value_pset(value, &in_l)); fail_unless(eina_value_pget(value, &l)); fail_unless(l == 0xb33f); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_INT64)); in_i64 = 0x0011223344556677; fail_unless(eina_value_pset(value, &in_i64)); fail_unless(eina_value_pget(value, &i64)); fail_unless(i64 == 0x0011223344556677); eina_value_flush(value); /* unsigned: */ fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UCHAR)); in_uc = 200; fail_unless(eina_value_pset(value, &in_uc)); fail_unless(eina_value_pget(value, &uc)); fail_unless(uc == 200); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_USHORT)); in_us = 65535; fail_unless(eina_value_pset(value, &in_us)); fail_unless(eina_value_pget(value, &us)); fail_unless(us == 65535); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UINT)); in_ui = 4000000000U; fail_unless(eina_value_pset(value, &in_ui)); fail_unless(eina_value_pget(value, &ui)); fail_unless(ui == 4000000000U); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_ULONG)); in_ul = 3000000001UL; fail_unless(eina_value_pset(value, &in_ul)); fail_unless(eina_value_pget(value, &ul)); fail_unless(ul == 3000000001UL); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UINT64)); in_u64 = 0x1122334455667788; fail_unless(eina_value_pset(value, &in_u64)); fail_unless(eina_value_pget(value, &u64)); fail_unless(u64 == 0x1122334455667788); eina_value_flush(value); /* floating point */ fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_FLOAT)); in_f = 0.1234; fail_unless(eina_value_pset(value, &in_f)); fail_unless(eina_value_pget(value, &f)); fail_unless(CHECK_FP(0.1234, f)); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_DOUBLE)); in_d = 34567.8; fail_unless(eina_value_pset(value, &in_d)); fail_unless(eina_value_pget(value, &d)); fail_unless(CHECK_FP(34567.8, d)); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_STRING)); in_str = "hello world!"; fail_unless(eina_value_pset(value, &in_str)); fail_unless(eina_value_pget(value, &str)); fail_unless(strcmp(str, "hello world!") == 0); in_str = "eina-value"; fail_unless(eina_value_pset(value, &in_str)); fail_unless(eina_value_pget(value, &str)); fail_unless(strcmp(str, "eina-value") == 0); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_STRING)); in_str = "profusion"; fail_unless(eina_value_pset(value, &in_str)); fail_unless(eina_value_pget(value, &str)); fail_unless(strcmp(str, "profusion") == 0); eina_value_free(value); eina_shutdown(); } END_TEST START_TEST(eina_value_test_to_string) { Eina_Value *value; char c, in_c; short s, in_s; int i, in_i; long l, in_l; int64_t i64, in_i64; unsigned char uc, in_uc; unsigned short us, in_us; unsigned int ui, in_ui; unsigned long ul, in_ul; uint64_t u64, in_u64; float f, in_f; double d, in_d; const char *str, *in_str; char *out; char buf[256]; eina_init(); value = eina_value_new(EINA_VALUE_TYPE_CHAR); fail_unless(value != NULL); in_c = 'x'; fail_unless(eina_value_pset(value, &in_c)); fail_unless(eina_value_pget(value, &c)); fail_unless(c == 'x'); snprintf(buf, sizeof(buf), "%hhd", in_c); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strcmp(buf, out) == 0); free(out); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_SHORT)); in_s = 300; fail_unless(eina_value_pset(value, &in_s)); fail_unless(eina_value_pget(value, &s)); fail_unless(s == 300); snprintf(buf, sizeof(buf), "%hd", in_s); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strcmp(buf, out) == 0); free(out); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_INT)); in_i = -12345; fail_unless(eina_value_pset(value, &in_i)); fail_unless(eina_value_pget(value, &i)); fail_unless(i == -12345); snprintf(buf, sizeof(buf), "%d", in_i); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strcmp(buf, out) == 0); free(out); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_LONG)); in_l = 0xb33f; fail_unless(eina_value_pset(value, &in_l)); fail_unless(eina_value_pget(value, &l)); fail_unless(l == 0xb33f); snprintf(buf, sizeof(buf), "%ld", in_l); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strcmp(buf, out) == 0); free(out); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_INT64)); in_i64 = 0x0011223344556677; fail_unless(eina_value_pset(value, &in_i64)); fail_unless(eina_value_pget(value, &i64)); fail_unless(i64 == 0x0011223344556677); snprintf(buf, sizeof(buf), "%"PRId64, in_i64); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strcmp(buf, out) == 0); free(out); eina_value_flush(value); /* unsigned: */ fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UCHAR)); in_uc = 200; fail_unless(eina_value_pset(value, &in_uc)); fail_unless(eina_value_pget(value, &uc)); fail_unless(uc == 200); snprintf(buf, sizeof(buf), "%hhu", in_uc); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strcmp(buf, out) == 0); free(out); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_USHORT)); in_us = 65535; fail_unless(eina_value_pset(value, &in_us)); fail_unless(eina_value_pget(value, &us)); fail_unless(us == 65535); snprintf(buf, sizeof(buf), "%hu", in_us); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strcmp(buf, out) == 0); free(out); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UINT)); in_ui = 4000000000U; fail_unless(eina_value_pset(value, &in_ui)); fail_unless(eina_value_pget(value, &ui)); fail_unless(ui == 4000000000U); snprintf(buf, sizeof(buf), "%u", in_ui); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strcmp(buf, out) == 0); free(out); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_ULONG)); in_ul = 3000000001UL; fail_unless(eina_value_pset(value, &in_ul)); fail_unless(eina_value_pget(value, &ul)); fail_unless(ul == 3000000001UL); snprintf(buf, sizeof(buf), "%lu", in_ul); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strcmp(buf, out) == 0); free(out); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UINT64)); in_u64 = 0x1122334455667788; fail_unless(eina_value_pset(value, &in_u64)); fail_unless(eina_value_pget(value, &u64)); fail_unless(u64 == 0x1122334455667788); snprintf(buf, sizeof(buf), "%"PRIu64, in_u64); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strcmp(buf, out) == 0); free(out); eina_value_flush(value); /* floating point */ fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_FLOAT)); in_f = 0.1234; fail_unless(eina_value_pset(value, &in_f)); fail_unless(eina_value_pget(value, &f)); fail_unless(CHECK_FP(0.1234, f)); snprintf(buf, sizeof(buf), "%g", in_f); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strncmp(buf, out, 6) == 0); /* stupid float... */ free(out); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_DOUBLE)); in_d = 34567.8; fail_unless(eina_value_pset(value, &in_d)); fail_unless(eina_value_pget(value, &d)); fail_unless(CHECK_FP(34567.8, d)); snprintf(buf, sizeof(buf), "%g", in_d); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strncmp(buf, out, 7) == 0); /* stupid double... */ free(out); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_STRING)); in_str = "hello world!"; fail_unless(eina_value_pset(value, &in_str)); fail_unless(eina_value_pget(value, &str)); fail_unless(strcmp(str, "hello world!") == 0); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strcmp(in_str, out) == 0); free(out); in_str = "eina-value"; fail_unless(eina_value_pset(value, &in_str)); fail_unless(eina_value_pget(value, &str)); fail_unless(strcmp(str, "eina-value") == 0); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strcmp(in_str, out) == 0); free(out); eina_value_flush(value); fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_STRING)); in_str = "profusion"; fail_unless(eina_value_pset(value, &in_str)); fail_unless(eina_value_pget(value, &str)); fail_unless(strcmp(str, "profusion") == 0); out = eina_value_to_string(value); fail_unless(out != NULL); fail_unless(strcmp(in_str, out) == 0); free(out); eina_value_free(value); eina_shutdown(); } END_TEST START_TEST(eina_value_test_convert_char) { Eina_Value *value, conv; char c; short s; int i; long l; int64_t i64; unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul; uint64_t u64; float f; double d; const char *str; eina_init(); value = eina_value_new(EINA_VALUE_TYPE_CHAR); fail_unless(value != NULL); fail_unless(eina_value_set(value, 123)); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UCHAR)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &uc)); fail_unless(uc == 123); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_USHORT)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &us)); fail_unless(us == 123); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UINT)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &ui)); fail_unless(ui == 123); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_ULONG)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &ul)); fail_unless(ul == 123); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UINT64)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &u64)); fail_unless(u64 == 123); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_CHAR)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &c)); fail_unless(c == 123); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_SHORT)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &s)); fail_unless(s == 123); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_INT)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &i)); fail_unless(i == 123); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_LONG)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &l)); fail_unless(l == 123); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_INT64)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &i64)); fail_unless(i64 == 123); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_FLOAT)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &f)); fail_unless(CHECK_FP(f, 123)); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_DOUBLE)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &d)); fail_unless(CHECK_FP(d, 123)); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_STRING)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &str)); fail_unless(str != NULL); fail_unless(strcmp(str, "123") == 0); eina_value_flush(&conv); /* negative tests */ fail_unless(eina_value_set(value, -123)); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UCHAR)); fail_if(eina_value_convert(value, &conv)); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_USHORT)); fail_if(eina_value_convert(value, &conv)); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UINT)); fail_if(eina_value_convert(value, &conv)); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_ULONG)); fail_if(eina_value_convert(value, &conv)); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UINT64)); fail_if(eina_value_convert(value, &conv)); eina_value_flush(&conv); eina_value_free(value); eina_shutdown(); } END_TEST START_TEST(eina_value_test_convert_uchar) { Eina_Value *value, conv; char c; short s; int i; long l; int64_t i64; unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul; uint64_t u64; float f; double d; const char *str; eina_init(); value = eina_value_new(EINA_VALUE_TYPE_UCHAR); fail_unless(value != NULL); fail_unless(eina_value_set(value, 31)); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UCHAR)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &uc)); fail_unless(uc == 31); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_USHORT)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &us)); fail_unless(us == 31); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UINT)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &ui)); fail_unless(ui == 31); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_ULONG)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &ul)); fail_unless(ul == 31); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_UINT64)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &u64)); fail_unless(u64 == 31); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_CHAR)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &c)); fail_unless(c == 31); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_SHORT)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &s)); fail_unless(s == 31); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_INT)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &i)); fail_unless(i == 31); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_LONG)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &l)); fail_unless(l == 31); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_INT64)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &i64)); fail_unless(i64 == 31); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_FLOAT)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &f)); fail_unless(CHECK_FP(f, 31)); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_DOUBLE)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &d)); fail_unless(CHECK_FP(d, 31)); eina_value_flush(&conv); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_STRING)); fail_unless(eina_value_convert(value, &conv)); fail_unless(eina_value_get(&conv, &str)); fail_unless(str != NULL); fail_unless(strcmp(str, "31") == 0); eina_value_flush(&conv); /* negative tests */ fail_unless(eina_value_set(value, 200)); fail_unless(eina_value_setup(&conv, EINA_VALUE_TYPE_CHAR)); fail_if(eina_value_convert(value, &conv)); eina_value_flush(&conv); eina_value_free(value); eina_shutdown(); } END_TEST START_TEST(eina_value_test_array) { Eina_Value *value, other; Eina_Value_Array desc; Eina_Inarray *inarray; char c; char buf[1024]; char *str; eina_init(); value = eina_value_array_new(EINA_VALUE_TYPE_CHAR, 0); fail_unless(value != NULL); fail_unless(eina_value_array_append(value, 'k')); fail_unless(eina_value_array_append(value, '-')); fail_unless(eina_value_array_append(value, 's')); fail_unless(eina_value_array_get(value, 0, &c)); fail_unless(c == 'k'); fail_unless(eina_value_array_get(value, 1, &c)); fail_unless(c == '-'); fail_unless(eina_value_array_get(value, 2, &c)); fail_unless(c == 's'); fail_unless(eina_value_array_insert(value, 0, '!')); fail_unless(eina_value_array_get(value, 0, &c)); fail_unless(c == '!'); fail_unless(eina_value_array_get(value, 1, &c)); fail_unless(c == 'k'); fail_unless(eina_value_array_get(value, 2, &c)); fail_unless(c == '-'); fail_unless(eina_value_array_get(value, 3, &c)); fail_unless(c == 's'); fail_unless(eina_value_array_set(value, 0, '*')); fail_unless(eina_value_array_get(value, 0, &c)); fail_unless(c == '*'); fail_unless(eina_value_array_get(value, 1, &c)); fail_unless(c == 'k'); fail_unless(eina_value_array_get(value, 2, &c)); fail_unless(c == '-'); fail_unless(eina_value_array_get(value, 3, &c)); fail_unless(c == 's'); snprintf(buf, sizeof(buf), "[%hhd, %hhd, %hhd, %hhd]", '*', 'k', '-', 's'); str = eina_value_to_string(value); fail_unless(str != NULL); fail_unless(strcmp(str, buf) == 0); free(str); eina_value_flush(value); fail_unless(eina_value_array_setup(value, EINA_VALUE_TYPE_STRINGSHARE, 2)); fail_unless(eina_value_array_append(value, "Enlightenment.org")); fail_unless(eina_value_array_append(value, "X11")); fail_unless(eina_value_array_append(value, "Pants")); fail_unless(eina_value_array_append(value, "on!!!")); fail_unless(eina_value_array_append(value, "k-s")); str = eina_value_to_string(value); fail_unless(str != NULL); fail_unless(strcmp(str, "[Enlightenment.org, X11, Pants, on!!!, k-s]") == 0); free(str); eina_value_flush(value); fail_unless(eina_value_array_setup(value, EINA_VALUE_TYPE_CHAR, 0)); fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_CHAR)); fail_unless(eina_value_set(&other, 100)); fail_unless(eina_value_get(&other, &c)); fail_unless(c == 100); fail_unless(eina_value_convert(&other, value)); str = eina_value_to_string(value); fail_unless(str != NULL); fail_unless(strcmp(str, "[100]") == 0); free(str); fail_unless(eina_value_array_set(value, 0, 33)); fail_unless(eina_value_convert(value, &other)); fail_unless(eina_value_get(&other, &c)); fail_unless(c == 33); inarray = eina_inarray_new(sizeof(char), 0); fail_unless(inarray != NULL); c = 11; fail_unless(eina_inarray_push(inarray, &c) >= 0); c = 21; fail_unless(eina_inarray_push(inarray, &c) >= 0); c = 31; fail_unless(eina_inarray_push(inarray, &c) >= 0); desc.subtype = EINA_VALUE_TYPE_CHAR; desc.step = 0; desc.array = inarray; fail_unless(eina_value_set(value, desc)); /* manually configure */ eina_inarray_free(inarray); fail_unless(eina_value_array_get(value, 0, &c)); fail_unless(c == 11); fail_unless(eina_value_array_get(value, 1, &c)); fail_unless(c == 21); fail_unless(eina_value_array_get(value, 2, &c)); fail_unless(c == 31); eina_value_free(value); eina_shutdown(); } END_TEST START_TEST(eina_value_test_list) { Eina_Value *value, other; Eina_Value_List desc; char c; char buf[1024]; char *str; const char *s; eina_init(); value = eina_value_list_new(EINA_VALUE_TYPE_CHAR); fail_unless(value != NULL); fail_unless(eina_value_list_append(value, 'k')); fail_unless(eina_value_list_append(value, '-')); fail_unless(eina_value_list_append(value, 's')); fail_unless(eina_value_list_get(value, 0, &c)); fail_unless(c == 'k'); fail_unless(eina_value_list_get(value, 1, &c)); fail_unless(c == '-'); fail_unless(eina_value_list_get(value, 2, &c)); fail_unless(c == 's'); fail_unless(eina_value_list_insert(value, 0, '!')); fail_unless(eina_value_list_get(value, 0, &c)); fail_unless(c == '!'); fail_unless(eina_value_list_get(value, 1, &c)); fail_unless(c == 'k'); fail_unless(eina_value_list_get(value, 2, &c)); fail_unless(c == '-'); fail_unless(eina_value_list_get(value, 3, &c)); fail_unless(c == 's'); fail_unless(eina_value_list_set(value, 0, '*')); fail_unless(eina_value_list_get(value, 0, &c)); fail_unless(c == '*'); fail_unless(eina_value_list_get(value, 1, &c)); fail_unless(c == 'k'); fail_unless(eina_value_list_get(value, 2, &c)); fail_unless(c == '-'); fail_unless(eina_value_list_get(value, 3, &c)); fail_unless(c == 's'); snprintf(buf, sizeof(buf), "[%hhd, %hhd, %hhd, %hhd]", '*', 'k', '-', 's'); str = eina_value_to_string(value); fail_unless(str != NULL); fail_unless(strcmp(str, buf) == 0); free(str); eina_value_flush(value); fail_unless(eina_value_list_setup(value, EINA_VALUE_TYPE_STRINGSHARE)); fail_unless(eina_value_list_append(value, "Enlightenment.org")); fail_unless(eina_value_list_append(value, "X11")); fail_unless(eina_value_list_append(value, "Pants")); fail_unless(eina_value_list_append(value, "on!!!")); fail_unless(eina_value_list_append(value, "k-s")); str = eina_value_to_string(value); fail_unless(str != NULL); fail_unless(strcmp(str, "[Enlightenment.org, X11, Pants, on!!!, k-s]") == 0); free(str); eina_value_flush(value); fail_unless(eina_value_list_setup(value, EINA_VALUE_TYPE_CHAR)); fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_CHAR)); fail_unless(eina_value_set(&other, 100)); fail_unless(eina_value_get(&other, &c)); fail_unless(c == 100); fail_unless(eina_value_convert(&other, value)); str = eina_value_to_string(value); fail_unless(str != NULL); fail_unless(strcmp(str, "[100]") == 0); free(str); fail_unless(eina_value_list_set(value, 0, 33)); fail_unless(eina_value_convert(value, &other)); fail_unless(eina_value_get(&other, &c)); fail_unless(c == 33); desc.subtype = EINA_VALUE_TYPE_STRING; desc.list = NULL; desc.list = eina_list_append(desc.list, "hello"); desc.list = eina_list_append(desc.list, "world"); desc.list = eina_list_append(desc.list, "eina"); fail_unless(eina_list_count(desc.list) == 3); fail_unless(eina_value_set(value, desc)); eina_list_free(desc.list); fail_unless(eina_value_list_get(value, 0, &s)); fail_unless(s != NULL); fail_unless(strcmp(s, "hello") == 0); fail_unless(eina_value_list_get(value, 1, &s)); fail_unless(s != NULL); fail_unless(strcmp(s, "world") == 0); fail_unless(eina_value_list_get(value, 2, &s)); fail_unless(s != NULL); fail_unless(strcmp(s, "eina") == 0); eina_value_free(value); eina_shutdown(); } END_TEST START_TEST(eina_value_test_hash) { Eina_Value *value, other; Eina_Value_Hash desc; char c; char buf[1024]; char **ptr; char *str; const char *s; eina_init(); value = eina_value_hash_new(EINA_VALUE_TYPE_CHAR, 0); fail_unless(value != NULL); fail_unless(eina_value_hash_set(value, "first", 'k')); fail_unless(eina_value_hash_set(value, "second", '-')); fail_unless(eina_value_hash_set(value, "third", 's')); fail_unless(eina_value_hash_get(value, "first", &c)); fail_unless(c == 'k'); fail_unless(eina_value_hash_get(value, "second", &c)); fail_unless(c == '-'); fail_unless(eina_value_hash_get(value, "third", &c)); fail_unless(c == 's'); fail_unless(eina_value_hash_set(value, "first", '!')); fail_unless(eina_value_hash_get(value, "first", &c)); fail_unless(c == '!'); fail_unless(eina_value_hash_get(value, "second", &c)); fail_unless(c == '-'); fail_unless(eina_value_hash_get(value, "third", &c)); fail_unless(c == 's'); puts("testing hash to string -- may fail due hash algorithm changes!"); /* watchout, this is the order I got -- hash algorithm changes may change * the order! */ snprintf(buf, sizeof(buf), "{first: %hhd, second: %hhd, third: %hhd}", '!', '-', 's'); str = eina_value_to_string(value); fail_unless(str != NULL); printf("want: %s\n", buf); printf("got.: %s\n", str); fail_unless(strcmp(str, buf) == 0); free(str); eina_value_flush(value); fail_unless(eina_value_hash_setup(value, EINA_VALUE_TYPE_STRINGSHARE, 0)); fail_unless(eina_value_hash_set(value, "a", "Enlightenment.org")); fail_unless(eina_value_hash_set(value, "b", "X11")); fail_unless(eina_value_hash_set(value, "c", "Pants")); fail_unless(eina_value_hash_set(value, "d", "on!!!")); fail_unless(eina_value_hash_set(value, "e", "k-s")); /* watchout, this is the order I got -- hash algorithm changes may change * the order! */ strcpy(buf, "{e: k-s, d: on!!!, a: Enlightenment.org, b: X11, c: Pants}"); str = eina_value_to_string(value); fail_unless(str != NULL); printf("want: %s\n", buf); printf("got.: %s\n", str); fail_unless(strcmp(str, buf) == 0); free(str); eina_value_flush(value); fail_unless(eina_value_hash_setup(value, EINA_VALUE_TYPE_CHAR, 0)); fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_CHAR)); fail_unless(eina_value_set(&other, 100)); fail_unless(eina_value_get(&other, &c)); fail_unless(c == 100); fail_unless(eina_value_hash_set(value, "first", 33)); fail_unless(eina_value_convert(value, &other)); fail_unless(eina_value_get(&other, &c)); fail_unless(c == 33); desc.subtype = EINA_VALUE_TYPE_STRING; desc.buckets_power_size = 0; desc.hash = eina_hash_string_small_new(NULL); fail_unless(desc.hash != NULL); /* watch out hash pointer is to a size of subtype->value_size! */ ptr = malloc(sizeof(char *)); *ptr = "there"; fail_unless(eina_hash_add(desc.hash, "hi", ptr)); ptr = malloc(sizeof(char *)); *ptr = "y"; fail_unless(eina_hash_add(desc.hash, "x", ptr)); fail_unless(eina_value_set(value, desc)); free(eina_hash_find(desc.hash, "hi")); free(eina_hash_find(desc.hash, "x")); eina_hash_free(desc.hash); fail_unless(eina_value_hash_get(value, "hi", &s)); fail_unless(s != NULL); fail_unless(strcmp(s, "there") == 0); fail_unless(eina_value_hash_get(value, "x", &s)); fail_unless(s != NULL); fail_unless(strcmp(s, "y") == 0); eina_value_free(value); eina_shutdown(); } END_TEST START_TEST(eina_value_test_timeval) { Eina_Value *value, other; struct timeval itv, otv; char c; char *str; eina_init(); value = eina_value_new(EINA_VALUE_TYPE_TIMEVAL); fail_unless(value != NULL); itv.tv_sec = 1; itv.tv_usec = 123; fail_unless(eina_value_set(value, itv)); fail_unless(eina_value_get(value, &otv)); fail_unless(memcmp(&itv, &otv, sizeof(struct timeval)) == 0); itv.tv_sec = 3; itv.tv_usec = -1; fail_unless(eina_value_set(value, itv)); fail_unless(eina_value_get(value, &otv)); itv.tv_sec = 2; itv.tv_usec = 999999; fail_unless(memcmp(&itv, &otv, sizeof(struct timeval)) == 0); fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_CHAR)); fail_unless(eina_value_convert(value, &other)); fail_unless(eina_value_get(&other, &c)); fail_unless(c == 2); eina_value_flush(&other); itv.tv_sec = 12345; itv.tv_usec = 6789; fail_unless(eina_value_set(value, itv)); str = eina_value_to_string(value); fail_unless(str != NULL); fail_unless(strcmp(str, "12345.006789") == 0); free(str); fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_TIMEVAL)); fail_unless(eina_value_set(&other, itv)); fail_unless(eina_value_compare(value, &other) == 0); itv.tv_sec++; fail_unless(eina_value_set(&other, itv)); fail_unless(eina_value_compare(value, &other) < 0); itv.tv_sec -= 2; fail_unless(eina_value_set(&other, itv)); fail_unless(eina_value_compare(value, &other) > 0); itv.tv_sec++; fail_unless(eina_value_set(&other, itv)); fail_unless(eina_value_compare(value, &other) == 0); itv.tv_usec++; fail_unless(eina_value_set(&other, itv)); fail_unless(eina_value_compare(value, &other) < 0); itv.tv_usec -= 2; fail_unless(eina_value_set(&other, itv)); fail_unless(eina_value_compare(value, &other) > 0); itv.tv_usec++; fail_unless(eina_value_set(&other, itv)); fail_unless(eina_value_compare(value, &other) == 0); eina_value_flush(&other); eina_value_free(value); eina_shutdown(); } END_TEST START_TEST(eina_value_test_blob) { Eina_Value *value, other; Eina_Value_Blob in, out; unsigned char blob[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int i = 0x11223344; char *str; eina_init(); value = eina_value_new(EINA_VALUE_TYPE_BLOB); fail_unless(value != NULL); in.ops = NULL; in.memory = blob; in.size = sizeof(blob); fail_unless(eina_value_set(value, in)); fail_unless(eina_value_get(value, &out)); fail_unless(out.memory == blob); fail_unless(out.size == sizeof(blob)); fail_unless(memcmp(&in, &out, sizeof(Eina_Value_Blob)) == 0); str = eina_value_to_string(value); fail_unless(str != NULL); fail_unless(strcmp(str, "BLOB(10, [01 02 03 04 05 06 07 08 09 0a])") == 0); free(str); fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_INT)); fail_unless(eina_value_set(&other, i)); fail_unless(eina_value_convert(&other, value)); fail_unless(eina_value_get(value, &out)); fail_unless(out.memory != NULL); fail_unless(out.size == sizeof(int)); fail_unless(memcmp(&i, out.memory, sizeof(int)) == 0); eina_value_flush(&other); fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_STRING)); fail_unless(eina_value_set(&other, "hi there!")); fail_unless(eina_value_convert(&other, value)); fail_unless(eina_value_get(value, &out)); fail_unless(out.memory != NULL); fail_unless(out.size == sizeof("hi there!")); fail_unless(strcmp(out.memory, "hi there!") == 0); str = eina_value_to_string(value); fail_unless(str != NULL); fail_unless(strcmp(str, "BLOB(10, [68 69 20 74 68 65 72 65 21 00])") == 0); free(str); eina_value_flush(&other); fail_unless(eina_value_array_setup(&other, EINA_VALUE_TYPE_CHAR, 0)); fail_unless(eina_value_array_append(&other, 0xa)); fail_unless(eina_value_array_append(&other, 0xb)); fail_unless(eina_value_array_append(&other, 0xc)); fail_unless(eina_value_convert(&other, value)); fail_unless(eina_value_get(value, &out)); fail_unless(out.memory != NULL); fail_unless(out.size == 3); str = eina_value_to_string(value); fail_unless(str != NULL); fail_unless(strcmp(str, "BLOB(3, [0a 0b 0c])") == 0); free(str); eina_value_flush(&other); fail_unless(eina_value_setup(&other, EINA_VALUE_TYPE_BLOB)); fail_unless(eina_value_set(&other, in)); fail_unless(eina_value_convert(value, &other)); fail_unless(eina_value_get(&other, &out)); fail_unless(out.memory != NULL); fail_unless(out.size == 3); str = eina_value_to_string(&other); fail_unless(str != NULL); fail_unless(strcmp(str, "BLOB(3, [0a 0b 0c])") == 0); free(str); eina_value_flush(&other); eina_value_free(value); eina_shutdown(); } END_TEST START_TEST(eina_value_test_struct) { struct mybigst { int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, x; }; const Eina_Value_Struct_Member mybigst_members[] = { EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, a), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, b), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, c), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, d), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, e), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, f), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, g), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, h), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, i), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, j), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, k), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, l), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, m), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, n), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, o), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, p), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, q), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, r), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, s), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, t), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, u), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, v), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct mybigst, x), EINA_VALUE_STRUCT_MEMBER_SENTINEL }; const Eina_Value_Struct_Desc mybigst_desc = { EINA_VALUE_STRUCT_DESC_VERSION, EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH, mybigst_members, 23, sizeof(struct mybigst) }; struct myst { int i; char c; }; const Eina_Value_Struct_Member myst_members[] = { {"i", EINA_VALUE_TYPE_INT, 0}, {"c", EINA_VALUE_TYPE_CHAR, 4}, {NULL, NULL, 0} }; const Eina_Value_Struct_Desc myst_desc = { EINA_VALUE_STRUCT_DESC_VERSION, NULL, myst_members, 2, sizeof(struct myst) }; Eina_Value *value, other; int i; char c; char *str; eina_init(); value = eina_value_struct_new(&myst_desc); fail_unless(value != NULL); fail_unless(eina_value_struct_set(value, "i", 5678)); fail_unless(eina_value_struct_set(value, "c", 0xf)); fail_unless(eina_value_struct_get(value, "i", &i)); fail_unless(i == 5678); fail_unless(eina_value_struct_get(value, "c", &c)); fail_unless(c == 0xf); fail_unless(eina_value_struct_member_value_get (value, myst_members + 0, &other)); fail_unless(other.type == EINA_VALUE_TYPE_INT); fail_unless(eina_value_get(&other, &i)); fail_unless(i == 5678); eina_value_flush(&other); fail_unless(eina_value_struct_member_value_get (value, myst_members + 1, &other)); fail_unless(other.type == EINA_VALUE_TYPE_CHAR); fail_unless(eina_value_get(&other, &c)); fail_unless(c = 0xf); eina_value_flush(&other); str = eina_value_to_string(value); fail_unless(str != NULL); fail_unless(strcmp(str, "{i: 5678, c: 15}") == 0); free(str); fail_if(eina_value_struct_get(value, "x", 1234)); i = 0x11223344; fail_unless(eina_value_struct_pset(value, "i", &i)); i = -1; fail_unless(eina_value_struct_pget(value, "i", &i)); fail_unless(i == 0x11223344); fail_unless(eina_value_copy(value, &other)); str = eina_value_to_string(&other); fail_unless(str != NULL); fail_unless(strcmp(str, "{i: 287454020, c: 15}") == 0); free(str); eina_value_flush(&other); fail_unless(eina_value_struct_setup(&other, &mybigst_desc)); fail_unless(eina_value_struct_set(&other, "a", 1) ); fail_unless(eina_value_struct_set(&other, "b", 2)); fail_unless(eina_value_struct_set(&other, "c", 3)); fail_unless(eina_value_struct_set(&other, "d", 4)); fail_unless(eina_value_struct_set(&other, "e", 5)); fail_unless(eina_value_struct_set(&other, "f", 6)); fail_unless(eina_value_struct_set(&other, "g", 7)); fail_unless(eina_value_struct_set(&other, "h", 8)); fail_unless(eina_value_struct_set(&other, "i", 9)); fail_unless(eina_value_struct_set(&other, "j", 10)); fail_unless(eina_value_struct_set(&other, "k", 12)); fail_unless(eina_value_struct_set(&other, "l", 13)); fail_unless(eina_value_struct_set(&other, "m", 14)); fail_unless(eina_value_struct_set(&other, "n", 15)); fail_unless(eina_value_struct_set(&other, "o", 16)); fail_unless(eina_value_struct_set(&other, "p", 17)); fail_unless(eina_value_struct_set(&other, "q", 18)); fail_unless(eina_value_struct_set(&other, "r", 19)); fail_unless(eina_value_struct_set(&other, "s", 20)); fail_unless(eina_value_struct_set(&other, "t", 21)); fail_unless(eina_value_struct_set(&other, "u", 22)); fail_unless(eina_value_struct_set(&other, "v", 23)); fail_unless(eina_value_struct_set(&other, "x", 24)); fail_unless(eina_value_struct_get(&other, "a", &i)); fail_unless(i == 1); fail_unless(eina_value_struct_get(&other, "b", &i)); fail_unless(i == 2); fail_unless(eina_value_struct_get(&other, "c", &i)); fail_unless(i == 3); fail_unless(eina_value_struct_get(&other, "d", &i)); fail_unless(i == 4); fail_unless(eina_value_struct_get(&other, "e", &i)); fail_unless(i == 5); fail_unless(eina_value_struct_get(&other, "f", &i)); fail_unless(i == 6); fail_unless(eina_value_struct_get(&other, "g", &i)); fail_unless(i == 7); fail_unless(eina_value_struct_get(&other, "h", &i)); fail_unless(i == 8); fail_unless(eina_value_struct_get(&other, "i", &i)); fail_unless(i == 9); fail_unless(eina_value_struct_get(&other, "j", &i)); fail_unless(i == 10); fail_unless(eina_value_struct_get(&other, "k", &i)); fail_unless(i == 12); fail_unless(eina_value_struct_get(&other, "l", &i)); fail_unless(i == 13); fail_unless(eina_value_struct_get(&other, "m", &i)); fail_unless(i == 14); fail_unless(eina_value_struct_get(&other, "n", &i)); fail_unless(i == 15); fail_unless(eina_value_struct_get(&other, "o", &i)); fail_unless(i == 16); fail_unless(eina_value_struct_get(&other, "p", &i)); fail_unless(i == 17); fail_unless(eina_value_struct_get(&other, "q", &i)); fail_unless(i == 18); fail_unless(eina_value_struct_get(&other, "r", &i)); fail_unless(i == 19); fail_unless(eina_value_struct_get(&other, "s", &i)); fail_unless(i == 20); fail_unless(eina_value_struct_get(&other, "t", &i)); fail_unless(i == 21); fail_unless(eina_value_struct_get(&other, "u", &i)); fail_unless(i == 22); fail_unless(eina_value_struct_get(&other, "v", &i)); fail_unless(i == 23); fail_unless(eina_value_struct_get(&other, "x", &i)); fail_unless(i == 24); str = eina_value_to_string(&other); fail_unless(str != NULL); fail_unless(strcmp(str, "{a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10, k: 12, l: 13, m: 14, n: 15, o: 16, p: 17, q: 18, r: 19, s: 20, t: 21, u: 22, v: 23, x: 24}") == 0); free(str); eina_value_flush(&other); eina_value_free(value); eina_shutdown(); } END_TEST START_TEST(eina_value_test_array_of_struct) { struct myst { int a, b, c; const char *s; }; const Eina_Value_Struct_Member myst_members[] = { EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct myst, a), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct myst, b), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_INT, struct myst, c), EINA_VALUE_STRUCT_MEMBER(EINA_VALUE_TYPE_STRING, struct myst, s), EINA_VALUE_STRUCT_MEMBER_SENTINEL }; const Eina_Value_Struct_Desc myst_desc = { EINA_VALUE_STRUCT_DESC_VERSION, EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH, myst_members, 4, sizeof(struct myst) }; Eina_Value *value, array_item; char *str; int i; eina_init(); value = eina_value_array_new(EINA_VALUE_TYPE_STRUCT, 0); fail_unless(value != NULL); for (i = 0; i < 10; i++) { Eina_Value_Struct desc; struct myst st; char buf[64]; snprintf(buf, sizeof(buf), "item%02d", i); st.a = i; st.b = i * 10; st.c = i * 100; st.s = buf; desc.desc = &myst_desc; desc.memory = &st; fail_unless(eina_value_array_append(value, desc)); } str = eina_value_to_string(value); fail_unless(str != NULL); fail_unless(strcmp(str, "[" "{a: 0, b: 0, c: 0, s: item00}, " "{a: 1, b: 10, c: 100, s: item01}, " "{a: 2, b: 20, c: 200, s: item02}, " "{a: 3, b: 30, c: 300, s: item03}, " "{a: 4, b: 40, c: 400, s: item04}, " "{a: 5, b: 50, c: 500, s: item05}, " "{a: 6, b: 60, c: 600, s: item06}, " "{a: 7, b: 70, c: 700, s: item07}, " "{a: 8, b: 80, c: 800, s: item08}, " "{a: 9, b: 90, c: 900, s: item09}" "]") == 0); free(str); eina_value_array_value_get(value, 2, &array_item); eina_value_struct_get(&array_item, "a", &i); ck_assert_int_eq(i, 2); eina_value_struct_get(&array_item, "b", &i); ck_assert_int_eq(i, 20); eina_value_struct_get(&array_item, "c", &i); ck_assert_int_eq(i, 200); eina_value_struct_get(&array_item, "s", &str); ck_assert_str_eq(str, "item02"); eina_value_flush(&array_item); eina_value_free(value); eina_shutdown(); } END_TEST #if 0 START_TEST(eina_value_test_model) { Eina_Value *value, inv; Eina_Model *model, *m; char *str; eina_init(); value = eina_value_new(EINA_VALUE_TYPE_MODEL); fail_unless(value != NULL); model = eina_model_new(EINA_MODEL_TYPE_GENERIC); fail_unless(model != NULL); fail_unless(eina_value_setup(&inv, EINA_VALUE_TYPE_INT)); fail_unless(eina_value_set(&inv, 1234)); fail_unless(eina_model_property_set(model, "i", &inv)); eina_value_flush(&inv); fail_unless(eina_value_set(value, model)); fail_unless(eina_model_refcount(model) == 2); fail_unless(eina_value_get(value, &m)); fail_unless(m == model); fail_unless(eina_model_refcount(m) == 2); fail_unless(eina_value_pset(value, &model)); fail_unless(eina_model_refcount(model) == 2); str = eina_value_to_string(value); fail_unless(str != NULL); fail_unless(strcmp(str, "Eina_Model_Type_Generic({i: 1234}, [])") == 0); free(str); eina_value_free(value); fail_unless(eina_model_refcount(model) == 1); eina_model_unref(model); eina_shutdown(); } END_TEST #endif void eina_test_value(TCase *tc) { tcase_add_test(tc, eina_value_test_simple); tcase_add_test(tc, eina_value_test_string); tcase_add_test(tc, eina_value_test_pvariant); tcase_add_test(tc, eina_value_test_compare); tcase_add_test(tc, eina_value_test_to_string); tcase_add_test(tc, eina_value_test_convert_char); tcase_add_test(tc, eina_value_test_convert_uchar); // TODO: other converters... tcase_add_test(tc, eina_value_test_array); tcase_add_test(tc, eina_value_test_list); tcase_add_test(tc, eina_value_test_hash); tcase_add_test(tc, eina_value_test_timeval); tcase_add_test(tc, eina_value_test_blob); tcase_add_test(tc, eina_value_test_struct); tcase_add_test(tc, eina_value_test_array_of_struct); #if 0 tcase_add_test(tc, eina_value_test_model); #endif } eina-1.7.10/src/tests/ecore_sheap.c0000664000175000017500000002611612175475327014034 00000000000000#ifdef HAVE_CONFIG_H # include #endif #include #include #include "Ecore_Data.h" #define HEAP_INCREMENT 4096 #define PARENT(i) (i / 2) #define LEFT(i) (2 * i) #define RIGHT(i) (2 * i + 1) static void _ecore_sheap_heapify(Ecore_Sheap *heap, int i); static void _ecore_sheap_update_data(Ecore_Sheap *heap); /** * Allocate and initialize a new binary heap * @param compare The function for comparing keys, NULL for direct comparison * @param size The number of elements to allow in the heap * @return A pointer to the newly allocated binary heap on success, NULL on * failure. */ EAPI Ecore_Sheap * ecore_sheap_new(Ecore_Compare_Cb compare, int size) { Ecore_Sheap *heap = NULL; heap = (Ecore_Sheap *)malloc(sizeof(Ecore_Sheap)); if (!heap) return NULL; memset(heap, 0, sizeof(Ecore_Sheap)); if (!ecore_sheap_init(heap, compare, size)) { FREE(heap); return NULL; } return heap; } /** * Initialize a binary heap to default values * @param heap The heap to initialize * @param compare The function for comparing keys, NULL for direct comparison * @param size The number of elements to allow in the heap * @return TRUE on success, FALSE on failure */ EAPI int ecore_sheap_init(Ecore_Sheap *heap, Ecore_Compare_Cb compare, int size) { CHECK_PARAM_POINTER_RETURN("heap", heap, FALSE); heap->space = size; if (!compare) heap->compare = ecore_direct_compare; else heap->compare = compare; heap->order = ECORE_SORT_MIN; heap->data = (void **)malloc(heap->space * sizeof(void *)); if (!heap->data) return FALSE; memset(heap->data, 0, heap->space * sizeof(void *)); return TRUE; } /** * Free up the memory used by the heap * * Frees the memory used by @a heap, calls the destroy function on each data * item if necessary. * * @param heap The heap to be freed */ EAPI void ecore_sheap_destroy(Ecore_Sheap *heap) { int i; CHECK_PARAM_POINTER("heap", heap); /* * Free data in heap */ if (heap->free_func) for (i = 0; i < heap->size; i++) heap->free_func(heap->data[i]); FREE(heap->data); FREE(heap); } /** * Set the function for freeing data. * @param heap The heap that will use this function when nodes are * destroyed. * @param free_func The function that will free the key data. * @return @c TRUE on successful set, @c FALSE otherwise. */ EAPI int ecore_sheap_free_cb_set(Ecore_Sheap *heap, Ecore_Free_Cb free_func) { CHECK_PARAM_POINTER_RETURN("heap", heap, FALSE); heap->free_func = free_func; return TRUE; } /** * Insert new data into the heap. * @param heap The heap to insert @a data. * @param data The data to add to @a heap. * @return TRUE on success, NULL on failure. Increases the size of the heap if * it becomes larger than available space. */ EAPI int ecore_sheap_insert(Ecore_Sheap *heap, void *data) { int i; void *temp; int parent; int position; CHECK_PARAM_POINTER_RETURN("heap", heap, FALSE); /* * Increase the size of the allocated data area if there isn't enough * space available to add this data */ if (heap->size >= heap->space) return FALSE; heap->sorted = FALSE; /* * Place the data at the end of the heap initially. Then determine the * parent and position in the array of it's parent. */ heap->data[heap->size] = data; position = heap->size; heap->size++; i = heap->size; parent = PARENT(i) - 1; /* * Check the order of the heap to decide where to place the inserted * data. The loop is placed inside the if statement to reduce the * number of branching decisions that must be predicted. */ if (heap->order == ECORE_SORT_MIN) while ((position > 0) && heap->compare(heap->data[parent], heap->data[position]) > 0) { /* * Swap the data with it's parents to move it up in * the heap. */ temp = heap->data[position]; heap->data[position] = heap->data[parent]; heap->data[parent] = temp; /* * Now determine the new position for the next * iteration of the loop, as well as it's parents * position. */ i = PARENT(i); position = i - 1; parent = PARENT(i) - 1; } else while ((position > 0) && heap->compare(heap->data[parent], heap->data[position]) < 0) { /* * Swap the data with it's parents to move it up in * the heap. */ temp = heap->data[position]; heap->data[position] = heap->data[PARENT(i) - 1]; heap->data[PARENT(i) - 1] = temp; /* * Now determine the new position for the next * iteration of the loop, as well as it's parents * position. */ i = PARENT(i); position = i - 1; parent = PARENT(i) - 1; } return TRUE; } /** * Extract the item at the top of the heap * @param heap The heap to remove the top item * @return The top item of the heap on success, NULL on failure. * @note The extract function maintains the heap properties after the * extract. */ EAPI void * ecore_sheap_extract(Ecore_Sheap *heap) { void *extreme; if (heap->size < 1) return NULL; heap->sorted = FALSE; extreme = heap->data[0]; heap->size--; heap->data[0] = heap->data[heap->size]; _ecore_sheap_heapify(heap, 1); return extreme; } /** * Examine the item at the top of the heap * @param heap The heap to examine the top item * @return The top item of the heap on success, NULL on failure. * @note The function does not alter the heap. */ EAPI void * ecore_sheap_extreme(Ecore_Sheap *heap) { if (heap->size < 1) return NULL; return heap->data[0]; } /** * Change the value of the specified item in the heap * @param heap The heap to search for the item to change * @param item The item in the heap to change * @param newval The new value assigned to the item in the heap * @return TRUE on success, FALSE on failure. * @note The heap does not free the old data since it must be passed * in, so the caller can perform the free if desired. */ EAPI int ecore_sheap_change(Ecore_Sheap *heap, void *item, void *newval) { int i; CHECK_PARAM_POINTER_RETURN("heap", heap, FALSE); for (i = 0; i < heap->size && heap->compare(heap->data[i], item); i++) ; if (i < heap->size) heap->data[i] = newval; else return FALSE; /* * FIXME: This is not the correct procedure when a change occurs. */ _ecore_sheap_heapify(heap, 1); return TRUE; } /** * Change the comparison function for the heap * @param heap The heap to change comparison function * @param compare The new function for comparing nodes * @return TRUE on success, FALSE on failure. * * The comparison function is changed to @compare and the heap is heapified * by the new comparison. */ EAPI int ecore_sheap_compare_set(Ecore_Sheap *heap, Ecore_Compare_Cb compare) { CHECK_PARAM_POINTER_RETURN("heap", heap, FALSE); if (!compare) heap->compare = ecore_direct_compare; else heap->compare = compare; _ecore_sheap_update_data(heap); return TRUE; } /** * Change the order of the heap * @param heap The heap to change the order * @param order The new order of the heap * * Changes the heap order of @heap and re-heapifies the data to this new * order. The default order is a min heap. */ EAPI void ecore_sheap_order_set(Ecore_Sheap *heap, char order) { CHECK_PARAM_POINTER("heap", heap); heap->order = order; _ecore_sheap_update_data(heap); } /** * Sort the data in the heap * @param heap The heap to be sorted * * Sorts the data in the heap into the order that is used for the heap's * data. */ EAPI void ecore_sheap_sort(Ecore_Sheap *heap) { int i = 0; void **new_data; CHECK_PARAM_POINTER("heap", heap); new_data = (void **)malloc(heap->size * sizeof(void *)); /* * Extract the heap and insert into the new data array in order. */ while (heap->size > 0) new_data[i++] = ecore_sheap_extract(heap); /* * Free the old data array and update the heap with the new data, also * mark as sorted. */ FREE(heap->data); heap->data = new_data; heap->size = i; heap->sorted = TRUE; } /* * Access the item at the ith position in the heap * @param heap The heap to access the internal data * @param i The index of the data within the heap * @return The data located at the ith position within @heap on success, * NULL on failure. * @note The data is guaranteed to be in sorted order. */ EAPI inline void * ecore_sheap_item(Ecore_Sheap *heap, int i) { if (i >= heap->size) return NULL; /* * Make sure the data is sorted so we return the correct value. */ if (!heap->sorted) ecore_sheap_sort(heap); return heap->data[i]; } /* * Regain the heap properties starting at position i * @param heap The heap to regain heap properties * @param i The position to start heapifying */ static void _ecore_sheap_heapify(Ecore_Sheap *heap, int i) { int extreme; int left = LEFT(i); int right = RIGHT(i); if (heap->order == ECORE_SORT_MIN) { if (left <= heap->size && heap->compare(heap->data[left - 1], heap->data[i - 1]) < 0) extreme = left; else extreme = i; if (right <= heap->size && heap->compare(heap->data[right - 1], heap->data[extreme - 1]) < 0) extreme = right; } else { if (left <= heap->size && heap->compare(heap->data[left - 1], heap->data[i - 1]) > 0) extreme = left; else extreme = i; if (right <= heap->size && heap->compare(heap->data[right - 1], heap->data[extreme - 1]) > 0) extreme = right; } /* * If the data needs to be swapped down the heap, recurse on * heapifying it's new placement. */ if (extreme != i) { void *temp; temp = heap->data[extreme - 1]; heap->data[extreme - 1] = heap->data[i - 1]; heap->data[i - 1] = temp; _ecore_sheap_heapify(heap, extreme); } } static void _ecore_sheap_update_data(Ecore_Sheap *heap) { int i, old_size; void **data; /* * Track the old values from the heap */ old_size = heap->size; data = heap->data; heap->size = 0; heap->data = malloc(heap->space * sizeof(void *)); for (i = 0; i < old_size; i++) ecore_sheap_insert(heap, data[i]); FREE(data); } int ecore_direct_compare(const void *key1, const void *key2) { unsigned long k1, k2; k1 = (unsigned long)key1; k2 = (unsigned long)key2; if (k1 > k2) return 1; if (k1 < k2) return -1; return 0; } eina-1.7.10/src/tests/eina_bench_stringshare_e17.c0000664000175000017500000000451112175475327016712 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #ifdef EINA_BENCH_HAVE_GLIB # include #endif #include "Evas_Data.h" #include "Ecore_Data.h" #include "Eina.h" #if EINA_ENABLE_BENCH_E17 typedef struct _Eina_Stringshare_Test Eina_Stringshare_Test; struct _Eina_Stringshare_Test { const char *name; int (*init)(void); const char *(*add)(const char *str); void (*del)(const char *str); int (*shutdown)(void); }; static const char *strings[30000]; static Eina_Stringshare_Test eina_str = { "eina", eina_init, eina_stringshare_add, eina_stringshare_del, eina_shutdown }; static Eina_Stringshare_Test evas_str = { "evas", /* evas_stringshare_init, */ evas_stringshare_add, evas_stringshare_del /* evas_stringshare_shutdown */ }; static Eina_Stringshare_Test ecore_str = { "ecore", ecore_string_init, ecore_string_instance, ecore_string_release, ecore_string_shutdown }; static Eina_Stringshare_Test *str[] = { &eina_str, &evas_str, &ecore_str, NULL }; static void eina_bench_e17_stringshare(Eina_Stringshare_Test *str) { Eina_Counter *cnt; cnt = eina_counter_new(str->name); eina_counter_start(cnt); str->init(); #include "strlog" str->shutdown(); eina_counter_stop(cnt, 1); fprintf(stderr, "For `%s`:\n", str->name); eina_counter_dump(cnt); eina_counter_free(cnt); } #endif void eina_bench_e17(void) { #if EINA_ENABLE_BENCH_E17 int i; eina_init(); for (i = 0; str[i]; ++i) eina_bench_e17_stringshare(str[i]); eina_shutdown(); #endif } eina-1.7.10/src/tests/eina_test_stringshare.c0000664000175000017500000001066512175475327016145 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include "eina_suite.h" #include "Eina.h" #define TEST0 "test/0" #define TEST1 "test/1" START_TEST(eina_stringshare_simple) { const char *t0; const char *t1; eina_init(); t0 = eina_stringshare_add(TEST0); t1 = eina_stringshare_add(TEST1); fail_if(t0 == NULL); fail_if(t1 == NULL); fail_if(strcmp(t0, TEST0) != 0); fail_if(strcmp(t1, TEST1) != 0); fail_if((int)strlen(TEST0) != eina_stringshare_strlen(t0)); fail_if((int)strlen(TEST1) != eina_stringshare_strlen(t1)); t0 = eina_stringshare_ref(t0); fail_if(t0 == NULL); fail_if((int)strlen(TEST0) != eina_stringshare_strlen(t0)); eina_stringshare_del(t0); eina_stringshare_del(t0); eina_stringshare_del(t1); eina_shutdown(); } END_TEST START_TEST(eina_stringshare_small) { char buf[4]; int i; eina_init(); for (i = 0; i < 3; i++) { const char *t0, *t1; int j; for (j = 0; j < i; j++) { char c; for (c = 'a'; c <= 'z'; c++) buf[j] = c; } buf[i] = '\0'; t0 = eina_stringshare_add(buf); t1 = eina_stringshare_add(buf); fail_if(t0 == NULL); fail_if(t1 == NULL); fail_if(t0 != t1); fail_if(strcmp(t0, buf) != 0); fail_if((int)strlen(buf) != eina_stringshare_strlen(t0)); fail_if((int)strlen(buf) != eina_stringshare_strlen(t1)); eina_stringshare_del(t0); eina_stringshare_del(t1); } eina_shutdown(); } END_TEST START_TEST(eina_stringshare_test_share) { const char *t0; const char *t1; eina_init(); t0 = eina_stringshare_add(TEST0); t1 = eina_stringshare_add(TEST0); fail_if(t0 == NULL); fail_if(t1 == NULL); fail_if(strcmp(t0, TEST0) != 0); fail_if(strcmp(t1, TEST0) != 0); fail_if(t0 != t1); fail_if((int)strlen(t0) != eina_stringshare_strlen(t0)); eina_stringshare_del(t0); eina_stringshare_del(t1); eina_shutdown(); } END_TEST START_TEST(eina_stringshare_putstuff) { const char *tmp; int i; eina_init(); for (i = 10000; i > 0; --i) { char build[64] = "string_"; eina_convert_xtoa(i, build + 7); tmp = eina_stringshare_add(build); fail_if(tmp != eina_stringshare_add(build)); } eina_shutdown(); } END_TEST START_TEST(eina_stringshare_collision) { Eina_Array *ea; char buffer[50]; int i; srand(time(NULL)); eina_init(); ea = eina_array_new(256); fail_if(!ea); for (i = 0; i < 10000; ++i) { eina_convert_itoa(rand(), buffer); eina_array_push(ea, (void *)eina_stringshare_add(buffer)); if (rand() > RAND_MAX / 2) { const char *r = eina_stringshare_add(buffer); fail_if(r == NULL); } } for (i = 0; i < 10000; ++i) { const char *r; eina_convert_itoa(60000 - i, buffer); eina_array_push(ea, (void *)eina_stringshare_add(buffer)); r = eina_stringshare_add(buffer); fail_if(r == NULL); r = eina_stringshare_add(buffer); fail_if(r == NULL); } for (i = 0; i < 200; ++i) eina_stringshare_del(eina_array_data_get(ea, i)); for (i = 0; i < 1000; ++i) eina_stringshare_del(eina_array_pop(ea)); eina_shutdown(); eina_array_free(ea); } END_TEST void eina_test_stringshare(TCase *tc) { tcase_add_test(tc, eina_stringshare_simple); tcase_add_test(tc, eina_stringshare_small); tcase_add_test(tc, eina_stringshare_test_share); tcase_add_test(tc, eina_stringshare_collision); tcase_add_test(tc, eina_stringshare_putstuff); } eina-1.7.10/src/tests/eina_test_fp.c0000664000175000017500000000415512175475327014216 00000000000000/* EINA - EFL data type library * Copyright (C) 2010 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "eina_suite.h" #include "Eina.h" START_TEST(eina_fp_cos) { Eina_F32p32 fc; Eina_F32p32 fl; Eina_F32p32 step; Eina_F32p32 fresult; double dc; double dresult; double delta; fail_if(!eina_init()); fl = eina_f32p32_scale(EINA_F32P32_PI, 4); step = eina_f32p32_div(fl, eina_f32p32_int_from(2048)); for (fc = 0; fc < fl; fc += step) { fresult = eina_f32p32_cos(fc); dc = eina_f32p32_double_to(fc); dresult = cos(dc); delta = fabs(dresult - eina_f32p32_double_to(fresult)); fail_if(delta > 0.005); } eina_shutdown(); } END_TEST START_TEST(eina_fp_sin) { Eina_F32p32 fc; Eina_F32p32 fl; Eina_F32p32 step; Eina_F32p32 fresult; double dc; double dresult; double delta; fail_if(!eina_init()); fl = eina_f32p32_scale(EINA_F32P32_PI, 4); step = eina_f32p32_div(fl, eina_f32p32_int_from(2048)); for (fc = 0; fc < fl; fc += step) { fresult = eina_f32p32_sin(fc); dc = eina_f32p32_double_to(fc); dresult = sin(dc); delta = fabs(dresult - eina_f32p32_double_to(fresult)); fail_if(delta > 0.005); } eina_shutdown(); } END_TEST void eina_test_fp(TCase *tc) { tcase_add_test(tc, eina_fp_cos); tcase_add_test(tc, eina_fp_sin); } eina-1.7.10/src/tests/eina_suite.h0000664000175000017500000000404012175475327013701 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_SUITE_H_ #define EINA_SUITE_H_ #include void eina_test_stringshare(TCase *tc); void eina_test_ustringshare(TCase *tc); void eina_test_binshare(TCase *tc); void eina_test_inarray(TCase *tc); void eina_test_array(TCase *tc); void eina_test_log(TCase *tc); void eina_test_error(TCase *tc); void eina_test_magic(TCase *tc); void eina_test_inlist(TCase *tc); void eina_test_clist(TCase *tc); void eina_test_lalloc(TCase *tc); void eina_test_main(TCase *tc); void eina_test_counter(TCase *tc); void eina_test_hash(TCase *tc); void eina_test_list(TCase *tc); void eina_test_iterator(TCase *tc); void eina_test_accessor(TCase *tc); void eina_test_module(TCase *tc); void eina_test_convert(TCase *tc); void eina_test_rbtree(TCase *tc); void eina_test_file(TCase *tc); void eina_test_benchmark(TCase *tc); void eina_test_mempool(TCase *tc); void eina_test_rectangle(TCase *tc); void eina_test_matrixsparse(TCase *tc); void eina_test_tiler(TCase *tc); void eina_test_strbuf(TCase *tc); void eina_test_binbuf(TCase *tc); void eina_test_str(TCase *tc); void eina_test_ustr(TCase *tc); void eina_test_quadtree(TCase *tc); void eina_test_fp(TCase *tc); void eina_test_sched(TCase *tc); void eina_test_simple_xml_parser(TCase *tc); void eina_test_value(TCase *tc); void eina_test_model(TCase *tc); #endif /* EINA_SUITE_H_ */ eina-1.7.10/src/tests/eina_test_tiler.c0000664000175000017500000001144212175475327014725 00000000000000/* EINA - EFL data type library * Copyright (C) 2009 Rafael Antognolli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_suite.h" #include "Eina.h" struct test_rect { unsigned long col, row; int x, y, w, h; Eina_Bool full; }; static void check_iterator(Eina_Iterator *it, struct test_rect *cur_test) { unsigned int i = 0; struct Eina_Tile_Grid_Info *tile; EINA_ITERATOR_FOREACH(it, tile) { fail_if(cur_test[i].col != tile->col || cur_test[i].row != tile->row || cur_test[i].x != tile->rect.x || cur_test[i].y != tile->rect.y || cur_test[i].w != tile->rect.w || cur_test[i].h != tile->rect.h || cur_test[i].full != tile->full); i++; } fail_if(i == 0); } START_TEST(eina_test_tile_grid_slicer_iterator) { Eina_Iterator *it; struct test_rect *cur_test; struct test_rect test1[] = {{1, 1, 72, 82, 10, 15, 0}}; struct test_rect test2[] = {{1, 1, 72, 82, 56, 15, 0}, {2, 1, 0, 82, 128, 15, 0}, {3, 1, 0, 82, 116, 15, 0}}; struct test_rect test3[] = {{1, 1, 72, 82, 10, 46, 0}, {1, 2, 72, 0, 10, 128, 0}, {1, 3, 72, 0, 10, 126, 0}}; struct test_rect test4[] = {{1, 1, 72, 82, 56, 46, 0}, {2, 1, 0, 82, 128, 46, 0}, {3, 1, 0, 82, 128, 46, 0}, {4, 1, 0, 82, 88, 46, 0}, {1, 2, 72, 0, 56, 128, 0}, {2, 2, 0, 0, 128, 128, 1}, {3, 2, 0, 0, 128, 128, 1}, {4, 2, 0, 0, 88, 128, 0}, {1, 3, 72, 0, 56, 126, 0}, {2, 3, 0, 0, 128, 126, 0}, {3, 3, 0, 0, 128, 126, 0}, {4, 3, 0, 0, 88, 126, 0}}; struct test_rect test5[] = {{1, 1, 0, 0, 128, 128, 1}}; struct test_rect test6[] = {{1, 1, 0, 0, 1, 1, 0}}; struct test_rect test7[] = {{1, 1, 0, 0, 128, 128, 1}, {2, 1, 0, 0, 1, 128, 0}, {1, 2, 0, 0, 128, 1, 0}, {2, 2, 0, 0, 1, 1, 0}}; eina_init(); cur_test = test1; it = eina_tile_grid_slicer_iterator_new(200, 210, 10, 15, 128, 128); check_iterator(it, cur_test); eina_iterator_free(it); cur_test = test2; it = eina_tile_grid_slicer_iterator_new(200, 210, 300, 15, 128, 128); check_iterator(it, cur_test); eina_iterator_free(it); cur_test = test3; it = eina_tile_grid_slicer_iterator_new(200, 210, 10, 300, 128, 128); check_iterator(it, cur_test); eina_iterator_free(it); cur_test = test4; it = eina_tile_grid_slicer_iterator_new(200, 210, 400, 300, 128, 128); check_iterator(it, cur_test); eina_iterator_free(it); cur_test = test5; it = eina_tile_grid_slicer_iterator_new(128, 128, 128, 128, 128, 128); check_iterator(it, cur_test); eina_iterator_free(it); cur_test = test6; it = eina_tile_grid_slicer_iterator_new(128, 128, 1, 1, 128, 128); check_iterator(it, cur_test); eina_iterator_free(it); cur_test = test7; it = eina_tile_grid_slicer_iterator_new(128, 128, 129, 129, 128, 128); check_iterator(it, cur_test); eina_iterator_free(it); eina_shutdown(); } END_TEST START_TEST(eina_test_tiler_all) { Eina_Tiler *tl; Eina_Iterator *it; Eina_Rectangle *rp; Eina_Rectangle r; int i = 0; eina_init(); tl = eina_tiler_new(640, 480); eina_tiler_tile_size_set(tl, 32, 32); EINA_RECTANGLE_SET(&r, 50, 50, 20, 20); fail_if(!eina_tiler_rect_add(tl, &r)); EINA_RECTANGLE_SET(&r, -10, -10, 5, 5); fail_if(eina_tiler_rect_add(tl, &r)); EINA_RECTANGLE_SET(&r, 40, 40, 20, 20); eina_tiler_rect_del(tl, &r); it = eina_tiler_iterator_new(tl); fail_if(!it); EINA_ITERATOR_FOREACH(it, rp) { fail_if(rp->w <= 0); fail_if(rp->h <= 0); fail_if(rp->x < 0 || rp->x + rp->w > 640); fail_if(rp->y < 0 || rp->y + rp->h > 480); ++i; } fail_if(eina_iterator_container_get(it) != tl); eina_iterator_free(it); fail_if(i == 0); eina_tiler_clear(tl); eina_tiler_free(tl); eina_shutdown(); } END_TEST void eina_test_tiler(TCase *tc) { tcase_add_test(tc, eina_test_tile_grid_slicer_iterator); tcase_add_test(tc, eina_test_tiler_all); } eina-1.7.10/src/tests/ecore_strings.c0000664000175000017500000000731512175475327014425 00000000000000#include #include #include "Ecore_Data.h" static void ecore_string_free_cb(void *data); static Ecore_Hash *ecore_strings = NULL; static int ecore_string_init_count = 0; /** * @defgroup Ecore_String_Group String Instance Functions * * These functions allow you to store one copy of a string, and use it * throughout your program. * * This is a method to reduce the number of duplicated strings kept in * memory. It's pretty common for the same strings to be dynamically * allocated repeatedly between applications and libraries, especially in * circumstances where you could have multiple copies of a structure that * allocates the string. So rather than duplicating and freeing these * strings, you request a read-only pointer to an existing string and * only incur the overhead of a hash lookup. * * It sounds like micro-optimizing, but profiling has shown this can have * a significant impact as you scale the number of copies up. It improves * string creation/destruction speed, reduces memory use and decreases * memory fragmentation, so a win all-around. */ /** * Initialize the ecore string internal structure. * @return Zero on failure, non-zero on successful initialization. */ EAPI int ecore_string_init() { /* * No strings have been loaded at this point, so create the hash * table for storing string info for later. */ if (!ecore_string_init_count) { ecore_strings = ecore_hash_new(ecore_str_hash, ecore_str_compare); if (!ecore_strings) return 0; ecore_hash_free_value_cb_set(ecore_strings, ecore_string_free_cb); } ecore_string_init_count++; return 1; } /** * Retrieves an instance of a string for use in an ecore program. * @param string The string to retrieve an instance of. * @return A pointer to an instance of the string on success. * @c NULL on failure. * @ingroup Ecore_String_Group */ EAPI const char * ecore_string_instance(const char *string) { Ecore_String *str; CHECK_PARAM_POINTER_RETURN("string", string, NULL); /* * Check for a previous instance of the string, if not found, create * it. */ str = ecore_hash_get(ecore_strings, string); if (!str) { int length; /* * Allocate and initialize a new string reference. */ length = strlen(string) + 1; str = (Ecore_String *)malloc(sizeof(Ecore_String) + length * sizeof(char)); str->string = (char *)(str + 1); str->references = 0; memcpy(str->string, string, length); ecore_hash_set(ecore_strings, str->string, str); } str->references++; return str->string; } /** * Notes that the given string has lost an instance. * * It will free the string if no other instances are left. * * @param string The given string. * @ingroup Ecore_String_Group */ EAPI void ecore_string_release(const char *string) { Ecore_String *str; CHECK_PARAM_POINTER("string", string); str = ecore_hash_get(ecore_strings, (char *)string); if (!str) return; str->references--; if (str->references < 1) { ecore_hash_remove(ecore_strings, (char *)string); FREE(str); } } EAPI void ecore_string_hash_dump_graph(void) { ecore_hash_dump_graph(ecore_strings); } EAPI void ecore_string_hash_dump_stats(void) { ecore_hash_dump_stats(ecore_strings); } /** * Shutdown the ecore string internal structures */ EAPI void ecore_string_shutdown() { --ecore_string_init_count; if (!ecore_string_init_count) { ecore_hash_destroy(ecore_strings); ecore_strings = NULL; } } static void ecore_string_free_cb(void *data) { Ecore_String *str; str = data; FREE(str); } eina-1.7.10/src/tests/eina_test_mempool.c0000664000175000017500000001020712175475327015254 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "eina_suite.h" #include "Eina.h" static Eina_Array *_modules; static void _mempool_init(void) { eina_init(); /* force modules to be loaded in case they are not installed */ _modules = eina_module_list_get(NULL, PACKAGE_BUILD_DIR "/src/modules", EINA_TRUE, NULL, NULL); eina_module_list_load(_modules); } static void _mempool_shutdown(void) { eina_module_list_free(_modules); /* TODO delete the list */ eina_shutdown(); } static void _eina_mempool_test(Eina_Mempool *mp, Eina_Bool with_realloc, Eina_Bool with_gc) { int *tbl[512]; int i; fail_if(!mp); for (i = 0; i < 512; ++i) { tbl[i] = eina_mempool_malloc(mp, sizeof (int)); fail_if(!tbl[i]); *tbl[i] = i; } for (i = 0; i < 512; ++i) fail_if(*tbl[i] != i); for (i = 0; i < 256; ++i) eina_mempool_free(mp, tbl[i]); if (with_realloc) fail_if(eina_mempool_realloc(mp, tbl[500], 25) == NULL); else fail_if(eina_mempool_realloc(mp, tbl[500], 25) != NULL); if (with_gc) { eina_mempool_gc(mp); eina_mempool_statistics(mp); } eina_mempool_del(mp); } #ifdef EINA_BUILD_CHAINED_POOL START_TEST(eina_mempool_chained_mempool) { Eina_Mempool *mp; _mempool_init(); mp = eina_mempool_add("chained_mempool", "test", NULL, sizeof (int), 256); _eina_mempool_test(mp, EINA_FALSE, EINA_FALSE); _mempool_shutdown(); } END_TEST #endif #ifdef EINA_BUILD_PASS_THROUGH START_TEST(eina_mempool_pass_through) { Eina_Mempool *mp; _mempool_init(); mp = eina_mempool_add("pass_through", "test", NULL, sizeof (int), 8, 0); _eina_mempool_test(mp, EINA_TRUE, EINA_FALSE); _mempool_shutdown(); } END_TEST #endif #ifdef EINA_BUILD_FIXED_BITMAP START_TEST(eina_mempool_fixed_bitmap) { Eina_Mempool *mp; _mempool_init(); mp = eina_mempool_add("fixed_bitmap", "test", NULL, sizeof (int)); _eina_mempool_test(mp, EINA_FALSE, EINA_FALSE); _mempool_shutdown(); } END_TEST #endif #ifdef EINA_BUILD_EMEMOA_FIXED START_TEST(eina_mempool_ememoa_fixed) { Eina_Mempool *mp; _mempool_init(); mp = eina_mempool_add("ememoa_fixed", "test", NULL, sizeof (int), 8, 0); _eina_mempool_test(mp, EINA_FALSE, EINA_TRUE); _mempool_shutdown(); } END_TEST #endif #ifdef EINA_BUILD_EMEMOA_UNKNOWN START_TEST(eina_mempool_ememoa_unknown) { Eina_Mempool *mp; _mempool_init(); mp = eina_mempool_add("ememoa_unknown", "test", NULL, 0, 2, sizeof (int), 8, sizeof (int) * 2, 8); _eina_mempool_test(mp, EINA_TRUE, EINA_TRUE); _mempool_shutdown(); } END_TEST #endif void eina_test_mempool(TCase *tc) { #ifdef EINA_BUILD_CHAINED_POOL tcase_add_test(tc, eina_mempool_chained_mempool); #endif #ifdef EINA_BUILD_PASS_THROUGH tcase_add_test(tc, eina_mempool_pass_through); #endif #ifdef EINA_BUILD_FIXED_BITMAP tcase_add_test(tc, eina_mempool_fixed_bitmap); #endif #ifdef EINA_BUILD_EMEMOA_FIXED tcase_add_test(tc, eina_mempool_ememoa_fixed); #endif #ifdef EINA_BUILD_EMEMOA_UNKNOWN tcase_add_test(tc, eina_mempool_ememoa_unknown); #endif } eina-1.7.10/src/tests/eina_bench_stringshare.c0000664000175000017500000001050212175475327016233 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #ifdef EINA_BENCH_HAVE_GLIB # include #endif #include "Evas_Data.h" #include "Ecore_Data.h" #include "eina_stringshare.h" #include "eina_bench.h" #include "eina_convert.h" #include "eina_main.h" static void eina_bench_stringshare_job(int request) { const char *tmp; unsigned int j; int i; eina_init(); for (i = 0; i < request; ++i) { char build[64] = "string_"; eina_convert_xtoa(i, build + 7); tmp = eina_stringshare_add(build); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < request; ++i) { char build[64] = "string_"; eina_convert_xtoa(rand() % request, build + 7); tmp = eina_stringshare_add(build); } /* Suppress warnings as we really don't want to do anything. */ (void) tmp; eina_shutdown(); } #ifdef EINA_BENCH_HAVE_GLIB static void eina_bench_stringchunk_job(int request) { GStringChunk *chunk; unsigned int j; int i; chunk = g_string_chunk_new(4096); for (i = 0; i < request; ++i) { char build[64] = "string_"; eina_convert_xtoa(i, build + 7); g_string_chunk_insert_const(chunk, build); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < request; ++i) { char build[64] = "string_"; eina_convert_xtoa(rand() % request, build + 7); g_string_chunk_insert_const(chunk, build); } g_string_chunk_free(chunk); } #endif static void eina_bench_evas_job(int request) { const char *tmp; unsigned int j; int i; for (i = 0; i < request; ++i) { char build[64] = "string_"; eina_convert_xtoa(i, build + 7); tmp = evas_stringshare_add(build); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < request; ++i) { char build[64] = "string_"; eina_convert_xtoa(rand() % request, build + 7); tmp = evas_stringshare_add(build); } /* Suppress warnings as we really don't want to do anything. */ (void) tmp; } static void eina_bench_ecore_job(int request) { const char *tmp; unsigned int j; int i; ecore_string_init(); for (i = 0; i < request; ++i) { char build[64] = "string_"; eina_convert_xtoa(i, build + 7); tmp = ecore_string_instance(build); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < request; ++i) { char build[64] = "string_"; eina_convert_xtoa(rand() % request, build + 7); tmp = ecore_string_instance(build); } /* Suppress warnings as we really don't want to do anything. */ (void) tmp; ecore_string_shutdown(); } void eina_bench_stringshare(Eina_Benchmark *bench) { eina_benchmark_register(bench, "stringshare", EINA_BENCHMARK( eina_bench_stringshare_job), 100, 20100, 500); #ifdef EINA_BENCH_HAVE_GLIB eina_benchmark_register(bench, "stringchunk (glib)", EINA_BENCHMARK( eina_bench_stringchunk_job), 100, 20100, 500); #endif eina_benchmark_register(bench, "stringshare (evas)", EINA_BENCHMARK( eina_bench_evas_job), 100, 20100, 500); eina_benchmark_register(bench, "stringshare (ecore)", EINA_BENCHMARK( eina_bench_ecore_job), 100, 20100, 500); } eina-1.7.10/src/tests/eina_test_hash.c0000664000175000017500000001201712175475327014530 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include "eina_suite.h" #include "Eina.h" static Eina_Bool eina_foreach_check(__UNUSED__ const Eina_Hash *hash, const void *key, void *data, __UNUSED__ void *fdata) { int *j = data; int i; if (strlen(key) <= 0) return EINA_TRUE; i = atoi(key); fail_if(i != *j); return EINA_TRUE; } START_TEST(eina_hash_simple) { Eina_Hash *hash = NULL; int *test; int array[] = { 1, 42, 4, 5, 6 }; /* As mempool is already initialized and it use hash, we should have 2 init. */ fail_if(eina_init() != 2); hash = eina_hash_string_superfast_new(NULL); fail_if(hash == NULL); fail_if(eina_hash_add(hash, "1", &array[0]) != EINA_TRUE); fail_if(eina_hash_add(hash, "42", &array[1]) != EINA_TRUE); fail_if(eina_hash_direct_add(hash, "4", &array[2]) != EINA_TRUE); fail_if(eina_hash_direct_add(hash, "5", &array[3]) != EINA_TRUE); fail_if(eina_hash_add(hash, "", "") != EINA_TRUE); test = eina_hash_find(hash, "4"); fail_if(!test); fail_if(*test != 4); test = eina_hash_find(hash, "42"); fail_if(!test); fail_if(*test != 42); eina_hash_foreach(hash, eina_foreach_check, NULL); test = eina_hash_modify(hash, "5", &array[4]); fail_if(!test); fail_if(*test != 5); test = eina_hash_find(hash, "5"); fail_if(!test); fail_if(*test != 6); fail_if(eina_hash_population(hash) != 5); fail_if(eina_hash_find(hash, "120") != NULL); fail_if(eina_hash_del(hash, "5", NULL) != EINA_TRUE); fail_if(eina_hash_find(hash, "5") != NULL); fail_if(eina_hash_del(hash, NULL, &array[2]) != EINA_TRUE); fail_if(eina_hash_find(hash, "4") != NULL); fail_if(eina_hash_del(hash, NULL, &array[2]) != EINA_FALSE); fail_if(eina_hash_del(hash, "1", NULL) != EINA_TRUE); fail_if(eina_hash_del(hash, "42", NULL) != EINA_TRUE); eina_hash_free(hash); /* Same comment as eina_init */ fail_if(eina_shutdown() != 1); } END_TEST START_TEST(eina_hash_extended) { Eina_Hash *hash = NULL; int i; fail_if(eina_init() != 2); hash = eina_hash_string_djb2_new(NULL); fail_if(hash == NULL); fail_if(eina_hash_direct_add(hash, "42", "42") != EINA_TRUE); for (i = 43; i < 3043; ++i) { char *tmp = malloc(10); fail_if(!tmp); eina_convert_itoa(i, tmp); fail_if(eina_hash_direct_add(hash, tmp, tmp) != EINA_TRUE); } fail_if(eina_hash_find(hash, "42") == NULL); eina_hash_free(hash); fail_if(eina_shutdown() != 1); } END_TEST START_TEST(eina_hash_double_item) { Eina_Hash *hash = NULL; int i[] = { 7, 7 }; int *test; fail_if(eina_init() != 2); hash = eina_hash_string_superfast_new(NULL); fail_if(hash == NULL); fail_if(eina_hash_add(hash, "7", &i[0]) != EINA_TRUE); fail_if(eina_hash_add(hash, "7", &i[1]) != EINA_TRUE); fail_if(eina_hash_del(hash, "7", &i[1]) != EINA_TRUE); test = eina_hash_find(hash, "7"); fail_if(test != &i[0]); eina_hash_free(hash); fail_if(eina_shutdown() != 1); } END_TEST START_TEST(eina_hash_all_int) { Eina_Hash *hash; int64_t j[] = { 4321312301243122, 6, 7, 128 }; int i[] = { 42, 6, 7, 0 }; int64_t *test2; int *test; int it; fail_if(eina_init() != 2); hash = eina_hash_int32_new(NULL); fail_if(hash == NULL); for (it = 0; it < 4; ++it) fail_if(eina_hash_add(hash, &i[it], &i[it]) != EINA_TRUE); fail_if(eina_hash_del(hash, &i[1], &i[1]) != EINA_TRUE); test = eina_hash_find(hash, &i[2]); fail_if(test != &i[2]); test = eina_hash_find(hash, &i[3]); fail_if(test != &i[3]); eina_hash_free(hash); hash = eina_hash_int64_new(NULL); fail_if(hash == NULL); for (it = 0; it < 4; ++it) fail_if(eina_hash_add(hash, &j[it], &j[it]) != EINA_TRUE); fail_if(eina_hash_del(hash, &j[1], &j[1]) != EINA_TRUE); test2 = eina_hash_find(hash, &j[0]); fail_if(test2 != &j[0]); eina_hash_free(hash); fail_if(eina_shutdown() != 1); } END_TEST void eina_test_hash(TCase *tc) { tcase_add_test(tc, eina_hash_simple); tcase_add_test(tc, eina_hash_extended); tcase_add_test(tc, eina_hash_double_item); tcase_add_test(tc, eina_hash_all_int); } eina-1.7.10/src/tests/eina_test_module.c0000664000175000017500000000344612175475327015100 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_suite.h" #include "Eina.h" static Eina_Bool list_cb(Eina_Module *m, void *data __UNUSED__) { int *sym; const char *file; /* the reference count */ eina_module_load(m); /* get */ sym = eina_module_symbol_get(m, "dummy_symbol"); fail_if(!sym); fail_if(*sym != 0xbad); file = eina_module_file_get(m); fail_if(!file); eina_module_unload(m); return EINA_TRUE; } START_TEST(eina_module_load_unload) { Eina_Array *_modules; eina_init(); _modules = eina_module_list_get(NULL, PACKAGE_BUILD_DIR "/src/tests/", EINA_TRUE, &list_cb, NULL); fail_if(!_modules); eina_module_list_load(_modules); eina_module_list_unload(_modules); eina_module_list_free(_modules); /* TODO delete the list */ eina_shutdown(); } END_TEST void eina_test_module(TCase *tc) { tcase_add_test(tc, eina_module_load_unload); } eina-1.7.10/src/tests/evas_mempool.c0000664000175000017500000001054112175475327014240 00000000000000#ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "Evas_Data.h" #include "evas_mempool.h" //#define NOPOOL typedef struct _Pool Pool; struct _Pool { int usage; void *base; Pool *prev, *next; }; Pool * _evas_mp_pool_new(Evas_Mempool *pool) { #ifdef NOPOOL static Pool thepool; return &thepool; #else Pool *p; void **ptr; int item_alloc, i; item_alloc = ((pool->item_size + sizeof(void *) - 1) / sizeof(void *)) * sizeof(void *); p = malloc(sizeof(Pool) + (pool->pool_size * item_alloc)); ptr = (void **)(((unsigned char *)p) + sizeof(Pool)); p->usage = 0; p->base = ptr; for (i = 0; i < pool->pool_size - 1; i++) { *ptr = (void **)(((unsigned char *)ptr) + item_alloc); ptr = *ptr; } *ptr = NULL; return p; #endif } void _evas_mp_pool_free(Pool *p) { #if !defined(NOPOOL) free(p); #endif } void * evas_mempool_malloc(Evas_Mempool *pool, int size __UNUSED__) { #ifdef NOPOOL return malloc(size); #else Pool *p; void *mem; for (p = pool->first; p; p = p->next) // look 4 pool from 2nd bucket on { if (p->base) // base is not NULL - has a free slot { if (p->prev) { if (pool->last == p) pool->last = p->prev; p->prev->next = p->next; p->prev = NULL; p->next = pool->first; p->next->prev = p; pool->first = p; } break; } } if (!p) // we have reached the end of the list - no free pools { p = _evas_mp_pool_new(pool); if (!p) return NULL; p->prev = NULL; p->next = pool->first; if (p->next) p->next->prev = p; if (!pool->last) pool->last = p; pool->first = p; } mem = p->base; // this points to the next free block - so take it p->base = *((void **)mem); // base now points to the next free block if (!p->base) // move to end - it just filled up if (p->next) { if (p->prev) p->prev->next = p->next; else pool->first = p->next; p->next->prev = p->prev; ((Pool *)pool->last)->next = p; p->prev = pool->last; p->next = NULL; pool->last = p; } p->usage++; pool->usage++; return mem; #endif } void evas_mempool_free(Evas_Mempool *pool, void *ptr) { #ifdef NOPOOL free(ptr); #else Pool *p; void *pmem; int item_alloc, psize; item_alloc = ((pool->item_size + sizeof(void *) - 1) / sizeof(void *)) * sizeof(void *); psize = item_alloc * pool->pool_size; for (p = (Pool *)(pool->first); p; p = p->next) // look 4 pool { pmem = (void *)(((unsigned char *)p) + sizeof(Pool)); // pool mem base if ((ptr >= pmem) && ((unsigned char *)ptr < (((unsigned char *)pmem) + psize))) // is it in pool mem? { *((void **)ptr) = p->base; // freed node points to prev free node p->base = ptr; // next free node is now the one we freed p->usage--; pool->usage--; if (p->usage == 0) // free bucket { if (p->prev) p->prev->next = p->next; if (p->next) p->next->prev = p->prev; if (pool->last == p) pool->last = p->prev; if (pool->first == p) pool->first = p->next; _evas_mp_pool_free(p); } else if (p->prev) // if not the first - move to front { p->prev->next = p->next; if (p->next) p->next->prev = p->prev; if (pool->last == p) pool->last = p->prev; p->prev = NULL; p->next = pool->first; p->next->prev = p; pool->first = p; } break; } } #endif } void * evas_mempool_calloc(Evas_Mempool *pool, int size) { #ifdef NOPOOL return calloc(1, size); #else void *mem; mem = evas_mempool_malloc(pool, size); memset(mem, 0, size); return mem; #endif } eina-1.7.10/src/tests/eina_test_lalloc.c0000664000175000017500000000430312175475327015052 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "eina_suite.h" #include "Eina.h" typedef struct _Eina_Lazy_Allocator_Test Eina_Lazy_Allocator_Test; struct _Eina_Lazy_Allocator_Test { void *data; int num; }; static Eina_Bool _test_alloc(Eina_Lazy_Allocator_Test *elat, int num) { if (elat->num == 10 && num == 1) return EINA_FALSE; if (elat->num == 122 && num == 128) return EINA_FALSE; elat->num += num; elat->data = realloc(elat->data, elat->num); return EINA_TRUE; } static void _test_free(Eina_Lazy_Allocator_Test *elat) { free(elat->data); elat->data = NULL; elat->num = 0; } START_TEST(eina_lalloc_simple) { Eina_Lazy_Allocator_Test *elat; Eina_Lalloc *test; int i; elat = calloc(1, sizeof (Eina_Lazy_Allocator_Test)); fail_if(!elat); test = eina_lalloc_new(elat, EINA_LALLOC_ALLOC( _test_alloc), EINA_LALLOC_FREE(_test_free), 10); fail_if(!test); for (i = 0; i < 10; ++i) fail_if(eina_lalloc_element_add(test) != EINA_TRUE); fail_if(eina_lalloc_element_add(test) != EINA_FALSE); fail_if(eina_lalloc_elements_add(test, 5) != EINA_TRUE); for (i = 0; i < 21; ++i) fail_if(eina_lalloc_element_add(test) != EINA_TRUE); fail_if(eina_lalloc_elements_add(test, 50) != EINA_FALSE); eina_lalloc_free(test); } END_TEST void eina_test_lalloc(TCase *tc) { tcase_add_test(tc, eina_lalloc_simple); } eina-1.7.10/src/tests/eina_test_binshare.c0000664000175000017500000001077612175475327015412 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include "eina_suite.h" #include "Eina.h" #define TEST0 "te\0st/0" #define TEST0_SIZE 7 #define TEST1 "te\0st/11" #define TEST1_SIZE 8 START_TEST(eina_binshare_simple) { const char *t0; const char *t1; eina_init(); t0 = eina_binshare_add_length(TEST0, TEST0_SIZE); t1 = eina_binshare_add_length(TEST1, TEST1_SIZE); fail_if(t0 == NULL); fail_if(t1 == NULL); fail_if(memcmp(t0, TEST0, TEST0_SIZE) != 0); fail_if(memcmp(t1, TEST1, TEST1_SIZE) != 0); t0 = eina_binshare_ref(t0); fail_if(t0 == NULL); fail_if(memcmp(t0, TEST0, TEST0_SIZE) != 0); eina_binshare_del(t0); eina_binshare_del(t0); eina_binshare_del(t1); eina_shutdown(); } END_TEST START_TEST(eina_binshare_small) { char buf[4]; int i; eina_init(); for (i = 1; i < 3; i++) { const char *t0, *t1; int j; for (j = 0; j < i; j++) { char c; for (c = 'a'; c <= 'z'; c++) buf[j] = c; } buf[i] = '\0'; t0 = eina_binshare_add_length(buf, i); t1 = eina_binshare_add_length(buf, i); fail_if(t0 == NULL); fail_if(t1 == NULL); fail_if(t0 != t1); fail_if(memcmp(t0, buf, i) != 0); eina_binshare_del(t0); eina_binshare_del(t1); } eina_shutdown(); } END_TEST START_TEST(eina_binshare_test_share) { const char *t0; const char *t1; eina_init(); t0 = eina_binshare_add_length(TEST0, TEST0_SIZE); t1 = eina_binshare_add_length(TEST0, TEST0_SIZE); fail_if(t0 == NULL); fail_if(t1 == NULL); fail_if(memcmp(t0, TEST0, TEST0_SIZE) != 0); fail_if(memcmp(t1, TEST0, TEST0_SIZE) != 0); fail_if(t0 != t1); fail_if(TEST0_SIZE != eina_binshare_length(t0)); eina_binshare_del(t0); eina_binshare_del(t1); eina_shutdown(); } END_TEST START_TEST(eina_binshare_putstuff) { const char *tmp; int i; eina_init(); for (i = 10000; i > 0; --i) { char build[64] = "string_"; eina_convert_xtoa(i, build + 7); tmp = eina_binshare_add_length(build, strlen(build)); fail_if(tmp != eina_binshare_add_length(build, strlen(build))); fail_if((int)strlen(build) != eina_binshare_length(tmp)); } eina_shutdown(); } END_TEST START_TEST(eina_binshare_collision) { Eina_Array *ea; char buffer[50]; int i; srand(time(NULL)); eina_init(); ea = eina_array_new(256); fail_if(!ea); for (i = 0; i < 10000; ++i) { eina_convert_itoa(rand(), buffer); eina_array_push(ea, (void *)eina_binshare_add_length(buffer, strlen(buffer))); if (rand() > RAND_MAX / 2) { const char *r = eina_binshare_add_length(buffer, strlen(buffer)); fail_if(r == NULL); } } for (i = 0; i < 10000; ++i) { const char *r; eina_convert_itoa(60000 - i, buffer); eina_array_push(ea, (void *)eina_binshare_add_length(buffer, strlen(buffer))); r = eina_binshare_add_length(buffer, strlen(buffer)); fail_if(r == NULL); r = eina_binshare_add_length(buffer, strlen(buffer)); fail_if(r == NULL); } for (i = 0; i < 200; ++i) eina_binshare_del(eina_array_data_get(ea, i)); for (i = 0; i < 1000; ++i) eina_binshare_del(eina_array_pop(ea)); eina_shutdown(); eina_array_free(ea); } END_TEST void eina_test_binshare(TCase *tc) { tcase_add_test(tc, eina_binshare_simple); tcase_add_test(tc, eina_binshare_small); tcase_add_test(tc, eina_binshare_test_share); tcase_add_test(tc, eina_binshare_collision); tcase_add_test(tc, eina_binshare_putstuff); } eina-1.7.10/src/tests/eina_test_sched.c0000664000175000017500000000406712175475327014701 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #if defined(EFL_HAVE_THREADS) && defined __linux__ #include #include #include #endif #include "eina_suite.h" #include "Eina.h" #if defined(EFL_HAVE_THREADS) && defined __linux__ /* * TODO: Test if RT priorities are right. However, make check should be run as * root. */ static void * _thread_run(void *arg __UNUSED__) { int niceval = getpriority(PRIO_PROCESS, 0); int niceval2; eina_sched_prio_drop(); niceval2 = getpriority(PRIO_PROCESS, 0); fail_if((niceval2 != 19) && (niceval2 != niceval+5)); return NULL; } START_TEST(eina_test_sched_prio_drop) { int niceval = getpriority(PRIO_PROCESS, 0); int niceval2; pthread_t tid; eina_init(); pthread_create(&tid, NULL, _thread_run, NULL); niceval2 = getpriority(PRIO_PROCESS, 0); /* niceness of main thread should not have changed */ fail_if(niceval2 != niceval); pthread_join(tid, NULL); /* niceness of main thread should not have changed */ fail_if(niceval2 != niceval); eina_shutdown(); } END_TEST #else START_TEST(eina_test_sched_prio_drop) { fprintf(stderr, "scheduler priority is not supported by your configuration.\n"); } END_TEST #endif void eina_test_sched(TCase *tc) { tcase_add_test(tc, eina_test_sched_prio_drop); } eina-1.7.10/src/tests/eina_test_simple_xml_parser.c0000664000175000017500000000373312175475327017337 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include "eina_suite.h" #include "Eina.h" START_TEST(eina_simple_xml_parser_node_dump) { FILE *f; eina_init(); f = fopen("sample.gpx", "rb"); if (f) { long sz; fseek(f, 0, SEEK_END); sz = ftell(f); if (sz > 0) { char *buf; fseek(f, 0, SEEK_SET); buf = malloc(sz + 1); if (buf) { if (fread(buf, 1, sz, f)) { Eina_Simple_XML_Node_Root *root = eina_simple_xml_node_load (buf, sz, EINA_TRUE); buf[sz] = '\0'; char *out = eina_simple_xml_node_dump(&root->base, " "); //puts(out); ck_assert_str_eq(out, buf); free(out); eina_simple_xml_node_root_free(root); free(buf); } } } fclose(f); } eina_shutdown(); } END_TEST void eina_test_simple_xml_parser(TCase *tc) { tcase_add_test(tc, eina_simple_xml_parser_node_dump); } eina-1.7.10/src/tests/strlog0000664000175000017500000612725212175475327012661 00000000000000strings[0] = str->add("extensions"); strings[1] = str->add("Extensions"); strings[2] = str->add("enlightenment/extensions"); strings[3] = str->add("modules"); strings[4] = str->add("Modules"); strings[5] = str->add("enlightenment/modules"); strings[6] = str->add("default.edj"); strings[7] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj"); strings[8] = str->add("Desktop %i, %i"); strings[9] = str->add("en_US.UTF-8"); strings[10] = str->add("note"); strings[11] = str->add("conf_interaction"); strings[12] = str->add("fileman"); strings[13] = str->add("conf_engine"); strings[14] = str->add("conf_winlist"); strings[15] = str->add("conf_window_manipulation"); strings[16] = str->add("conf_window_focus"); strings[17] = str->add("conf_window_display"); strings[18] = str->add("conf_wallpaper"); strings[19] = str->add("conf_transitions"); strings[20] = str->add("conf_theme"); strings[21] = str->add("conf_startup"); strings[22] = str->add("conf_shelves"); strings[23] = str->add("conf_screensaver"); strings[24] = str->add("conf_profiles"); strings[25] = str->add("conf_performance"); strings[26] = str->add("conf_paths"); strings[27] = str->add("conf_mouse_cursor"); strings[28] = str->add("conf_mousebindings"); strings[29] = str->add("conf_mouse"); strings[30] = str->add("conf_mime"); strings[31] = str->add("conf_menus"); strings[32] = str->add("conf_keybindings"); strings[33] = str->add("conf_intl"); strings[34] = str->add("conf_imc"); strings[35] = str->add("conf_icon_theme"); strings[36] = str->add("conf_fonts"); strings[37] = str->add("conf_exebuf"); strings[38] = str->add("conf_dpms"); strings[39] = str->add("conf_display"); strings[40] = str->add("conf_dialogs"); strings[41] = str->add("conf_desks"); strings[42] = str->add("conf_desklock"); strings[43] = str->add("conf_desk"); strings[44] = str->add("conf_colors"); strings[45] = str->add("conf_clientlist"); strings[46] = str->add("conf_borders"); strings[47] = str->add("conf_applications"); strings[48] = str->add("conf"); strings[49] = str->add("winlist"); strings[50] = str->add("exebuf"); strings[51] = str->add("pager"); strings[52] = str->add("temperature"); strings[53] = str->add("cpufreq"); strings[54] = str->add("battery"); strings[55] = str->add("clock"); strings[56] = str->add("dropshadow"); strings[57] = str->add("ibox"); strings[58] = str->add("ibar"); strings[59] = str->add("start"); strings[60] = str->add("gadman"); strings[61] = str->add("default"); strings[62] = str->add("Vera"); strings[63] = str->add("theme"); strings[64] = str->add("/home/cedric/.e/e/themes/b_and_w.edj"); strings[65] = str->add("menu_show"); strings[66] = str->add("main"); strings[67] = str->add("window_move"); strings[65] = str->add(strings[65]); strings[68] = str->add("clients"); strings[69] = str->add("window_resize"); strings[65] = str->add(strings[65]); strings[70] = str->add("favorites"); strings[71] = str->add("window_menu"); strings[72] = str->add("Left"); strings[73] = str->add("desk_flip_by"); strings[74] = str->add("-1 0"); strings[75] = str->add("Right"); strings[73] = str->add(strings[73]); strings[76] = str->add("1 0"); strings[77] = str->add("Up"); strings[73] = str->add(strings[73]); strings[78] = str->add("0 -1"); strings[79] = str->add("Down"); strings[73] = str->add(strings[73]); strings[80] = str->add("0 1"); strings[77] = str->add(strings[77]); strings[81] = str->add("window_raise"); strings[79] = str->add(strings[79]); strings[82] = str->add("window_lower"); strings[83] = str->add("x"); strings[84] = str->add("window_close"); strings[85] = str->add("k"); strings[86] = str->add("window_kill"); strings[87] = str->add("w"); strings[71] = str->add(strings[71]); strings[88] = str->add("s"); strings[89] = str->add("window_sticky_toggle"); strings[90] = str->add("i"); strings[91] = str->add("window_iconic_toggle"); strings[92] = str->add("f"); strings[93] = str->add("window_maximized_toggle"); strings[94] = str->add("F10"); strings[93] = str->add(strings[93]); strings[95] = str->add("default vertical"); strings[94] = str->add(strings[94]); strings[93] = str->add(strings[93]); strings[96] = str->add("default horizontal"); strings[97] = str->add("r"); strings[98] = str->add("window_shaded_toggle"); strings[72] = str->add(strings[72]); strings[99] = str->add("desk_linear_flip_by"); strings[100] = str->add("-1"); strings[75] = str->add(strings[75]); strings[99] = str->add(strings[99]); strings[101] = str->add("1"); strings[102] = str->add("F1"); strings[103] = str->add("desk_linear_flip_to"); strings[104] = str->add("0"); strings[105] = str->add("F2"); strings[103] = str->add(strings[103]); strings[101] = str->add(strings[101]); strings[106] = str->add("F3"); strings[103] = str->add(strings[103]); strings[107] = str->add("2"); strings[108] = str->add("F4"); strings[103] = str->add(strings[103]); strings[109] = str->add("3"); strings[110] = str->add("F5"); strings[103] = str->add(strings[103]); strings[111] = str->add("4"); strings[112] = str->add("F6"); strings[103] = str->add(strings[103]); strings[113] = str->add("5"); strings[114] = str->add("F7"); strings[103] = str->add(strings[103]); strings[115] = str->add("6"); strings[116] = str->add("F8"); strings[103] = str->add(strings[103]); strings[117] = str->add("7"); strings[118] = str->add("F9"); strings[103] = str->add(strings[103]); strings[119] = str->add("8"); strings[94] = str->add(strings[94]); strings[103] = str->add(strings[103]); strings[120] = str->add("9"); strings[121] = str->add("F11"); strings[103] = str->add(strings[103]); strings[122] = str->add("10"); strings[123] = str->add("F12"); strings[103] = str->add(strings[103]); strings[124] = str->add("11"); strings[125] = str->add("m"); strings[65] = str->add(strings[65]); strings[66] = str->add(strings[66]); strings[126] = str->add("a"); strings[65] = str->add(strings[65]); strings[70] = str->add(strings[70]); strings[127] = str->add("Menu"); strings[65] = str->add(strings[65]); strings[66] = str->add(strings[66]); strings[127] = str->add(strings[127]); strings[65] = str->add(strings[65]); strings[68] = str->add(strings[68]); strings[127] = str->add(strings[127]); strings[65] = str->add(strings[65]); strings[70] = str->add(strings[70]); strings[128] = str->add("Insert"); strings[129] = str->add("exec"); strings[130] = str->add("Eterm"); strings[131] = str->add("Tab"); strings[49] = str->add(strings[49]); strings[132] = str->add("next"); strings[131] = str->add(strings[131]); strings[49] = str->add(strings[49]); strings[133] = str->add("prev"); strings[134] = str->add("End"); strings[135] = str->add("restart"); strings[136] = str->add("Delete"); strings[137] = str->add("logout"); strings[138] = str->add("Escape"); strings[50] = str->add(strings[50]); strings[139] = str->add("l"); strings[140] = str->add("desk_lock"); strings[141] = str->add("d"); strings[142] = str->add("desk_deskshow_toggle"); strings[72] = str->add(strings[72]); strings[143] = str->add("screen_send_by"); strings[100] = str->add(strings[100]); strings[75] = str->add(strings[75]); strings[143] = str->add(strings[143]); strings[101] = str->add(strings[101]); strings[102] = str->add(strings[102]); strings[144] = str->add("screen_send_to"); strings[104] = str->add(strings[104]); strings[105] = str->add(strings[105]); strings[144] = str->add(strings[144]); strings[101] = str->add(strings[101]); strings[106] = str->add(strings[106]); strings[144] = str->add(strings[144]); strings[107] = str->add(strings[107]); strings[108] = str->add(strings[108]); strings[144] = str->add(strings[144]); strings[109] = str->add(strings[109]); strings[145] = str->add("mouse,down,1,double"); strings[146] = str->add("e.event.titlebar"); strings[98] = str->add(strings[98]); strings[147] = str->add("up"); strings[148] = str->add("mouse,down,2"); strings[146] = str->add(strings[146]); strings[98] = str->add(strings[98]); strings[147] = str->add(strings[147]); strings[149] = str->add("mouse,wheel,?,1"); strings[146] = str->add(strings[146]); strings[150] = str->add("window_shaded"); strings[151] = str->add("0 up"); strings[152] = str->add("mouse,wheel,?,-1"); strings[146] = str->add(strings[146]); strings[150] = str->add(strings[150]); strings[153] = str->add("1 up"); strings[154] = str->add("mouse,clicked,3"); strings[146] = str->add(strings[146]); strings[71] = str->add(strings[71]); strings[155] = str->add("mouse,clicked,?"); strings[156] = str->add("e.event.icon"); strings[71] = str->add(strings[71]); strings[157] = str->add("mouse,clicked,[12]"); strings[158] = str->add("e.event.close"); strings[84] = str->add(strings[84]); strings[154] = str->add(strings[154]); strings[158] = str->add(strings[158]); strings[86] = str->add(strings[86]); strings[159] = str->add("mouse,clicked,1"); strings[160] = str->add("e.event.maximize"); strings[93] = str->add(strings[93]); strings[161] = str->add("mouse,clicked,2"); strings[160] = str->add(strings[160]); strings[93] = str->add(strings[93]); strings[162] = str->add("smart"); strings[154] = str->add(strings[154]); strings[160] = str->add(strings[160]); strings[93] = str->add(strings[93]); strings[163] = str->add("expand"); strings[155] = str->add(strings[155]); strings[164] = str->add("e.event.minimize"); strings[91] = str->add(strings[91]); strings[155] = str->add(strings[155]); strings[165] = str->add("e.event.shade"); strings[98] = str->add(strings[98]); strings[147] = str->add(strings[147]); strings[155] = str->add(strings[155]); strings[166] = str->add("e.event.lower"); strings[82] = str->add(strings[82]); strings[167] = str->add("mouse,down,1"); strings[156] = str->add(strings[156]); strings[168] = str->add("window_drag_icon"); strings[167] = str->add(strings[167]); strings[146] = str->add(strings[146]); strings[67] = str->add(strings[67]); strings[169] = str->add("mouse,up,1"); strings[146] = str->add(strings[146]); strings[67] = str->add(strings[67]); strings[170] = str->add("end"); strings[167] = str->add(strings[167]); strings[171] = str->add("e.event.resize.tl"); strings[69] = str->add(strings[69]); strings[172] = str->add("tl"); strings[167] = str->add(strings[167]); strings[173] = str->add("e.event.resize.t"); strings[69] = str->add(strings[69]); strings[174] = str->add("t"); strings[167] = str->add(strings[167]); strings[175] = str->add("e.event.resize.tr"); strings[69] = str->add(strings[69]); strings[176] = str->add("tr"); strings[167] = str->add(strings[167]); strings[177] = str->add("e.event.resize.r"); strings[69] = str->add(strings[69]); strings[97] = str->add(strings[97]); strings[167] = str->add(strings[167]); strings[178] = str->add("e.event.resize.br"); strings[69] = str->add(strings[69]); strings[179] = str->add("br"); strings[167] = str->add(strings[167]); strings[180] = str->add("e.event.resize.b"); strings[69] = str->add(strings[69]); strings[181] = str->add("b"); strings[167] = str->add(strings[167]); strings[182] = str->add("e.event.resize.bl"); strings[69] = str->add(strings[69]); strings[183] = str->add("bl"); strings[167] = str->add(strings[167]); strings[184] = str->add("e.event.resize.l"); strings[69] = str->add(strings[69]); strings[139] = str->add(strings[139]); strings[169] = str->add(strings[169]); strings[185] = str->add("e.event.resize.*"); strings[69] = str->add(strings[69]); strings[170] = str->add(strings[170]); strings[186] = str->add("mouse,down,3"); strings[185] = str->add(strings[185]); strings[67] = str->add(strings[67]); strings[187] = str->add("mouse,up,3"); strings[185] = str->add(strings[185]); strings[67] = str->add(strings[67]); strings[170] = str->add(strings[170]); strings[99] = str->add(strings[99]); strings[101] = str->add(strings[101]); strings[99] = str->add(strings[99]); strings[101] = str->add(strings[101]); strings[99] = str->add(strings[99]); strings[101] = str->add(strings[101]); strings[99] = str->add(strings[99]); strings[100] = str->add(strings[100]); strings[99] = str->add(strings[99]); strings[100] = str->add(strings[100]); strings[99] = str->add(strings[99]); strings[100] = str->add(strings[100]); strings[99] = str->add(strings[99]); strings[101] = str->add(strings[101]); strings[99] = str->add(strings[99]); strings[101] = str->add(strings[101]); strings[99] = str->add(strings[99]); strings[101] = str->add(strings[101]); strings[99] = str->add(strings[99]); strings[100] = str->add(strings[100]); strings[99] = str->add(strings[99]); strings[100] = str->add(strings[100]); strings[99] = str->add(strings[99]); strings[100] = str->add(strings[100]); strings[188] = str->add("vswipe"); strings[189] = str->add("crossfade"); strings[190] = str->add("E"); strings[191] = str->add("_config_winlist_dialog...ADVANCED"); strings[192] = str->add("Window List Settings"); strings[193] = str->add("enlightenment -display :1.0"); strings[190] = str->add(strings[190]); strings[194] = str->add("_config_focus_dialog...ADVANCED"); strings[195] = str->add("Focus Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[196] = str->add("_config_window_manipulation_dialog...ADVANCED"); strings[197] = str->add("Window Manipulation"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[198] = str->add("_config_keybindings_dialog...BASIC"); strings[199] = str->add("Key Binding Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[200] = str->add("_fwin:://home/cedric/Videos"); strings[201] = str->add("Videos"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[202] = str->add("_fwin:://home/cedric/Vidéos"); strings[203] = str->add("Vidéos"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[204] = str->add("_fwin:://home/cedric/wav"); strings[205] = str->add("wav"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[206] = str->add("_config_startup_dialog...BASIC"); strings[207] = str->add("Startup Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[208] = str->add("_config_transitions_dialog...BASIC"); strings[209] = str->add("Transition Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[210] = str->add("_config_cursor_dialog...ADVANCED"); strings[211] = str->add("Cursor Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[212] = str->add("_config_fonts_dialog...ADVANCED"); strings[213] = str->add("Font Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[214] = str->add("_config_color_classes_dialog...ADVANCED"); strings[215] = str->add("Colors"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[216] = str->add("_config_imc_dialog...ADVANCED"); strings[217] = str->add("Input Method Configuration"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[218] = str->add("_eap_exec_select_dialog"); strings[219] = str->add("Select an Executable"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[220] = str->add("_desktop_editor_dialog...ADVANCED"); strings[221] = str->add("Desktop Entry Editor"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[222] = str->add("_theme_web_dialog"); strings[223] = str->add("[get-e.org] Download 2 images of 28"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[224] = str->add("_config_desks_dialog...ADVANCED"); strings[225] = str->add("Virtual Desktops Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[226] = str->add("_config_theme_dialog...ADVANCED"); strings[227] = str->add("Theme Selector"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[228] = str->add("_e_modules_gadman_config_dialog...BASIC"); strings[229] = str->add("Gadgets Manager"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[230] = str->add("_config_intl_dialog...ADVANCED"); strings[231] = str->add("Language Configuration"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[232] = str->add("_e_mod_pager_config_dialog...ADVANCED"); strings[233] = str->add("Configuration du Pager"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[234] = str->add("_shelf_config_dialog...ADVANCED"); strings[235] = str->add("Shelf Configuration"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[236] = str->add("_gadcon_config_dialog...BASIC"); strings[237] = str->add("Shelf Contents"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[238] = str->add("_e_mod_temperature_config_dialog...ADVANCED"); strings[239] = str->add("Configuration de la Température"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[240] = str->add("_e_mod_battery_config_dialog...ADVANCED"); strings[241] = str->add("Configuration de la batterie"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[242] = str->add("_config_paths_dialog...BASIC"); strings[243] = str->add("Configuration de dossiers de recherche"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[244] = str->add("_config_profiles_dialog...BASIC"); strings[245] = str->add("Profile Selector"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[246] = str->add("_config_engine_dialog...BASIC"); strings[247] = str->add("Engine Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[248] = str->add("_config_exebuf_dialog...ADVANCED"); strings[249] = str->add("Paramètres de l'exécution de commande"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[250] = str->add("_config_performance_dialog...ADVANCED"); strings[251] = str->add("Performance Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[252] = str->add("_config_config_interaction_dialog...BASIC"); strings[253] = str->add("Interaction Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[254] = str->add("_dpms_capable_dialog"); strings[255] = str->add("Affiché les informations sur la gestion d'énergie"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[256] = str->add("_config_screensaver_dialog...BASIC"); strings[257] = str->add("Paramètres du verrouillage d'écran"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[258] = str->add("_config_desklock_dialog...BASIC"); strings[259] = str->add("Paramètres de verrouillage d'écran"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[260] = str->add("_config_display_dialog...BASIC"); strings[261] = str->add("Paramètre de résolution de l'écran"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[262] = str->add("_mousebind_getmouse_dialog"); strings[263] = str->add("Séquence de raccourci-souris"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[264] = str->add("_config_mousebindings_dialog...BASIC"); strings[265] = str->add("Mouse Binding Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[266] = str->add("_config_border_style_dialog...BASIC"); strings[267] = str->add("Default Border Style"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[268] = str->add("_fwin:://home"); strings[269] = str->add("home"); strings[270] = str->add("/usr/devel/bin/enlightenment -display :1.0"); strings[190] = str->add(strings[190]); strings[271] = str->add("_config_winlist_dialog...BASIC"); strings[272] = str->add("Paramètres de la liste de fenêtres"); strings[270] = str->add(strings[270]); strings[190] = str->add(strings[190]); strings[273] = str->add("_config_config_dialog_dialog...BASIC"); strings[274] = str->add("Dialog Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[275] = str->add("_error_dialog"); strings[276] = str->add("Error - no PAM support"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[277] = str->add("_shelf_config_dialog...BASIC"); strings[278] = str->add("Configuration de gondole"); strings[270] = str->add(strings[270]); strings[190] = str->add(strings[190]); strings[279] = str->add("_config_imc_dialog...BASIC"); strings[280] = str->add("Configuration de la méthode de saisie"); strings[270] = str->add(strings[270]); strings[190] = str->add(strings[190]); strings[281] = str->add("_e_mod_dropshadow_config_dialog...BASIC"); strings[282] = str->add("Dropshadow Configuration"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[283] = str->add("_config_cursor_dialog...BASIC"); strings[284] = str->add("Paramètres du curseur"); strings[270] = str->add(strings[270]); strings[190] = str->add(strings[190]); strings[285] = str->add("_config_desks_dialog...BASIC"); strings[286] = str->add("Configuration des Bureaux virtuels"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[287] = str->add("_config_fileman_dialog...BASIC"); strings[288] = str->add("Fileman Settings"); strings[270] = str->add(strings[270]); strings[190] = str->add(strings[190]); strings[289] = str->add("_fwin:://"); strings[290] = str->add("Root"); strings[270] = str->add(strings[270]); strings[190] = str->add(strings[190]); strings[291] = str->add("_fwin:://home/cedric/tmp"); strings[292] = str->add("tmp"); strings[270] = str->add(strings[270]); strings[190] = str->add(strings[190]); strings[293] = str->add("_fwin:://tmp"); strings[294] = str->add("Temp"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[295] = str->add("_module_unload_dialog"); strings[296] = str->add("Erreur de chargement du module"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[297] = str->add("_e_exec_run_error_dialog"); strings[298] = str->add("Erreur d'exécution d'une application"); strings[270] = str->add(strings[270]); strings[190] = str->add(strings[190]); strings[297] = str->add(strings[297]); strings[298] = str->add(strings[298]); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[297] = str->add(strings[297]); strings[298] = str->add(strings[298]); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[299] = str->add("_sys_logout"); strings[300] = str->add("Logout in progress"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[301] = str->add("_logout_dialog"); strings[302] = str->add("Are you sure you want to log out?"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[299] = str->add(strings[299]); strings[303] = str->add("Fermeture de votre session en cours"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[301] = str->add(strings[301]); strings[304] = str->add("Êtes-vous sur de vouloir fermer votre session ?"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[299] = str->add(strings[299]); strings[303] = str->add(strings[303]); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[301] = str->add(strings[301]); strings[304] = str->add(strings[304]); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[305] = str->add("_configure"); strings[306] = str->add("Enlightenment Configuration"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[307] = str->add("_confirm_dialog"); strings[308] = str->add("Êtes-vous sûr de vouloir supprimer cette gondole ?"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[309] = str->add("_config_shelf_dialog...BASIC"); strings[310] = str->add("Shelf Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[311] = str->add("_config_modules_dialog...BASIC"); strings[312] = str->add("Module Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[313] = str->add("_config_icon_theme_dialog...BASIC"); strings[314] = str->add("Icon Theme Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[315] = str->add("_config_color_classes_dialog...BASIC"); strings[316] = str->add("Couleurs"); strings[270] = str->add(strings[270]); strings[190] = str->add(strings[190]); strings[317] = str->add("_config_wallpaper_dialog...ADVANCED"); strings[318] = str->add("Wallpaper Settings"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[319] = str->add("_fwin:://home/cedric"); strings[320] = str->add("Home Directory"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[321] = str->add("_fwin:://home/cedric/.e/e/fileman/favorites"); strings[70] = str->add(strings[70]); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[322] = str->add("_theme_import_dialog"); strings[323] = str->add("Select a Theme..."); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[324] = str->add("_wallpaper_web_dialog"); strings[325] = str->add("[get-e.org - Static] Choose an image from list"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[326] = str->add("_config_wallpaper_dialog...BASIC"); strings[327] = str->add("Paramètres de fond d'écran"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[305] = str->add(strings[305]); strings[328] = str->add("Configuration d'Enlightenment"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[299] = str->add(strings[299]); strings[303] = str->add(strings[303]); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[301] = str->add(strings[301]); strings[304] = str->add(strings[304]); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[329] = str->add("_theme_about"); strings[330] = str->add("About This Theme"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[331] = str->add("_about"); strings[332] = str->add("About Enlightenment"); strings[193] = str->add(strings[193]); strings[190] = str->add(strings[190]); strings[333] = str->add("_config_theme_dialog...BASIC"); strings[227] = str->add(strings[227]); strings[193] = str->add(strings[193]); strings[334] = str->add("xterm -hold -e"); strings[335] = str->add("shelf"); strings[59] = str->add(strings[59]); strings[59] = str->add(strings[59]); strings[336] = str->add("plain"); strings[51] = str->add(strings[51]); strings[51] = str->add(strings[51]); strings[337] = str->add("inset"); strings[57] = str->add(strings[57]); strings[338] = str->add("ibox.1"); strings[337] = str->add(strings[337]); strings[58] = str->add(strings[58]); strings[339] = str->add("ibar.1"); strings[337] = str->add(strings[337]); strings[52] = str->add(strings[52]); strings[340] = str->add("temperature.1"); strings[336] = str->add(strings[336]); strings[53] = str->add(strings[53]); strings[53] = str->add(strings[53]); strings[336] = str->add(strings[336]); strings[54] = str->add(strings[54]); strings[54] = str->add(strings[54]); strings[336] = str->add(strings[336]); strings[55] = str->add(strings[55]); strings[55] = str->add(strings[55]); strings[336] = str->add(strings[336]); strings[10] = str->add(strings[10]); strings[341] = str->add("note.1"); strings[336] = str->add(strings[336]); strings[335] = str->add(strings[335]); strings[51] = str->add(strings[51]); strings[57] = str->add(strings[57]); strings[335] = str->add(strings[335]); strings[51] = str->add(strings[51]); strings[57] = str->add(strings[57]); strings[335] = str->add(strings[335]); strings[51] = str->add(strings[51]); strings[57] = str->add(strings[57]); strings[342] = str->add("slipshelf_extra"); strings[343] = str->add("slipshelf"); strings[60] = str->add(strings[60]); strings[344] = str->add("gadman_top"); strings[335] = str->add(strings[335]); strings[61] = str->add(strings[61]); strings[335] = str->add(strings[335]); strings[61] = str->add(strings[61]); strings[335] = str->add(strings[335]); strings[61] = str->add(strings[61]); strings[335] = str->add(strings[335]); strings[61] = str->add(strings[61]); strings[345] = str->add("Tango"); strings[346] = str->add("~/"); strings[347] = str->add("/"); strings[61] = str->add(strings[61]); strings[348] = str->add("image/jpeg"); strings[349] = str->add("THUMB"); strings[350] = str->add("image/png"); strings[349] = str->add(strings[349]); strings[351] = str->add("image/x-pixmap"); strings[349] = str->add(strings[349]); strings[352] = str->add("image/x-xpixmap"); strings[349] = str->add(strings[349]); strings[353] = str->add("image/svg+xml"); strings[349] = str->add(strings[349]); strings[354] = str->add("image/gif"); strings[349] = str->add(strings[349]); strings[355] = str->add("image/tiff"); strings[349] = str->add(strings[349]); strings[356] = str->add("application/x-desktop"); strings[357] = str->add("DESKTOP"); strings[358] = str->add("/usr/devel/share/enlightenment/data"); strings[359] = str->add("/home/cedric/.e/e/images"); strings[360] = str->add("/usr/devel/share/enlightenment/data/images"); strings[361] = str->add("/home/cedric/.e/e/fonts"); strings[362] = str->add("/usr/devel/share/enlightenment/data/fonts"); strings[363] = str->add("/home/cedric/.e/e/themes"); strings[364] = str->add("/usr/devel/share/enlightenment/data/themes"); strings[365] = str->add("/home/cedric/.e/e/icons"); strings[366] = str->add("/usr/devel/share/enlightenment/data/icons"); strings[367] = str->add("/home/cedric/.e/e/init"); strings[368] = str->add("/usr/devel/share/enlightenment/data/init"); strings[369] = str->add("/home/cedric/.e/e/modules"); strings[370] = str->add("/usr/devel/lib/enlightenment/modules"); strings[371] = str->add("/usr/devel/lib/enlightenment/modules_extra"); strings[372] = str->add("/home/cedric/.e/e/backgrounds"); strings[373] = str->add("/home/cedric/.e/e/locale"); strings[374] = str->add("/usr/devel/share/locale"); strings[61] = str->add(strings[61]); strings[62] = str->add(strings[62]); strings[375] = str->add("Set As Theme"); strings[376] = str->add("enlightenment/themes"); strings[377] = str->add("base"); strings[6] = str->add(strings[6]); strings[6] = str->add(strings[6]); strings[378] = str->add("base/theme"); strings[64] = str->add(strings[64]); strings[64] = str->add(strings[64]); strings[64] = str->add(strings[64]); strings[379] = str->add("Sans:style=Bold,Edje-Vera-Bold"); strings[380] = str->add("tb_plain"); strings[381] = str->add("align=center valign=center color=#fff style=soft_shadow shadow_color=#0000001f wrap=word"); strings[382] = str->add("\n"); strings[379] = str->add(strings[379]); strings[383] = str->add("tb_light"); strings[384] = str->add("+"); strings[385] = str->add("Sans,Edje-Vera"); strings[380] = str->add(strings[380]); strings[386] = str->add("align=center color=#000 style=shadow shadow_color=#ffffff80 wrap=word"); strings[382] = str->add(strings[382]); strings[379] = str->add(strings[379]); strings[383] = str->add(strings[383]); strings[384] = str->add(strings[384]); strings[385] = str->add(strings[385]); strings[387] = str->add("align=left color=#000 style=shadow shadow_color=#ffffff80 wrap=word"); strings[379] = str->add(strings[379]); strings[388] = str->add("+ style=soft_shadow color=#fff shadow_color=#00000021"); strings[389] = str->add("-"); strings[379] = str->add(strings[379]); strings[390] = str->add("+ style=glow color=#fff glow2_color=#333 glow_color=#b01010"); strings[379] = str->add(strings[379]); strings[384] = str->add(strings[384]); strings[382] = str->add(strings[382]); strings[391] = str->add("e/desktop/background"); strings[392] = str->add("e/widgets/border/default/border"); strings[393] = str->add("e/widgets/border/shaped/border"); strings[394] = str->add("e/widgets/border/noresize/border"); strings[395] = str->add("e/widgets/border/dialog/border"); strings[396] = str->add("e/widgets/border/noresize_dialog/border"); strings[397] = str->add("e/widgets/border/pixel/border"); strings[398] = str->add("e/pointer/enlightenment/default/color"); strings[399] = str->add("e/pointer/enlightenment/default/mono"); strings[400] = str->add("e/widgets/menu/default/background"); strings[401] = str->add("e/widgets/menu/default/separator"); strings[402] = str->add("e/widgets/menu/default/item_bg"); strings[403] = str->add("e/widgets/menu/default/icon"); strings[404] = str->add("e/widgets/menu/default/label"); strings[405] = str->add("e/widgets/menu/default/submenu"); strings[406] = str->add("e/widgets/menu/default/check"); strings[407] = str->add("e/widgets/menu/default/radio"); strings[408] = str->add("e/shelf/default/base"); strings[409] = str->add("e/shelf/default/inset"); strings[410] = str->add("e/shelf/default/plain"); strings[411] = str->add("e/shelf/invisible/base"); strings[412] = str->add("e/shelf/invisible/inset"); strings[413] = str->add("e/shelf/invisible/plain"); strings[414] = str->add("e/shelf/alternate/base"); strings[415] = str->add("e/shelf/alternate/inset"); strings[416] = str->add("e/shelf/alternate/plain"); strings[417] = str->add("e/modules/start/main"); strings[418] = str->add("e/modules/pager/popup"); strings[419] = str->add("e/modules/pager/desk"); strings[420] = str->add("e/modules/pager/window"); strings[421] = str->add("e/modules/battery/main"); strings[422] = str->add("e/modules/temperature/main"); strings[423] = str->add("e/modules/clock/main"); strings[424] = str->add("e/modules/cpufreq/main"); strings[425] = str->add("e/widgets/winlist/main"); strings[426] = str->add("e/widgets/winlist/item"); strings[427] = str->add("e/modules/mixer/main"); strings[428] = str->add("e/sys/logout"); strings[429] = str->add("e/widgets/dialog/main"); strings[430] = str->add("e/widgets/dialog/text"); strings[431] = str->add("e/widgets/configure/main"); strings[432] = str->add("e/widgets/border/default/move"); strings[433] = str->add("e/widgets/border/default/resize"); strings[434] = str->add("e/transpreview/0"); strings[435] = str->add("e/transpreview/1"); strings[436] = str->add("e/transitions/crossfade"); strings[437] = str->add("e/transitions/vswipe"); strings[438] = str->add("e/widgets/check"); strings[439] = str->add("e/widgets/check_icon"); strings[440] = str->add("e/widgets/radio"); strings[441] = str->add("e/widgets/radio_icon"); strings[442] = str->add("e/widgets/button"); strings[443] = str->add("e/widgets/scrollframe"); strings[444] = str->add("e/widgets/ilist"); strings[445] = str->add("e/widgets/ilist_odd"); strings[446] = str->add("e/widgets/ilist_header"); strings[447] = str->add("e/widgets/ilist_header_odd"); strings[448] = str->add("e/widgets/entry"); strings[449] = str->add("e/widgets/entry/text"); strings[450] = str->add("e/widgets/entry/cursor"); strings[451] = str->add("e/widgets/entry/selection"); strings[452] = str->add("e/widgets/preview"); strings[453] = str->add("e/widgets/deskpreview/desk"); strings[454] = str->add("e/widgets/color_well"); strings[455] = str->add("e/widgets/spectrum"); strings[456] = str->add("e/widgets/cslider"); strings[457] = str->add("e/widgets/slider_vertical"); strings[458] = str->add("e/widgets/slider_horizontal"); strings[459] = str->add("e/widgets/frame"); strings[460] = str->add("e/widgets/label"); strings[461] = str->add("e/widgets/fontpreview"); strings[462] = str->add("e/widgets/textblock"); strings[463] = str->add("e/widgets/menu/default/submenu_bg"); strings[464] = str->add("e/sys/halt"); strings[465] = str->add("e/sys/reboot"); strings[466] = str->add("e/sys/suspend"); strings[467] = str->add("e/sys/hibernate"); strings[468] = str->add("e/widgets/gradpreview"); strings[189] = str->add(strings[189]); strings[188] = str->add(strings[188]); str->del(strings[391]); str->del(strings[392]); str->del(strings[393]); str->del(strings[394]); str->del(strings[395]); str->del(strings[396]); str->del(strings[397]); str->del(strings[398]); str->del(strings[399]); str->del(strings[400]); str->del(strings[401]); str->del(strings[402]); str->del(strings[403]); str->del(strings[404]); str->del(strings[405]); str->del(strings[406]); str->del(strings[407]); str->del(strings[408]); str->del(strings[409]); str->del(strings[410]); str->del(strings[411]); str->del(strings[412]); str->del(strings[413]); str->del(strings[414]); str->del(strings[415]); str->del(strings[416]); str->del(strings[417]); str->del(strings[418]); str->del(strings[419]); str->del(strings[420]); str->del(strings[421]); str->del(strings[422]); str->del(strings[423]); str->del(strings[424]); str->del(strings[425]); str->del(strings[426]); str->del(strings[427]); str->del(strings[428]); str->del(strings[429]); str->del(strings[430]); str->del(strings[431]); str->del(strings[432]); str->del(strings[433]); str->del(strings[434]); str->del(strings[435]); str->del(strings[436]); str->del(strings[437]); str->del(strings[438]); str->del(strings[439]); str->del(strings[440]); str->del(strings[441]); str->del(strings[442]); str->del(strings[443]); str->del(strings[444]); str->del(strings[445]); str->del(strings[446]); str->del(strings[447]); str->del(strings[448]); str->del(strings[449]); str->del(strings[450]); str->del(strings[451]); str->del(strings[452]); str->del(strings[453]); str->del(strings[454]); str->del(strings[455]); str->del(strings[456]); str->del(strings[457]); str->del(strings[458]); str->del(strings[459]); str->del(strings[460]); str->del(strings[461]); str->del(strings[462]); str->del(strings[463]); str->del(strings[464]); str->del(strings[465]); str->del(strings[466]); str->del(strings[467]); str->del(strings[468]); strings[469] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj"); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); strings[470] = str->add("fonts/Edje-Vera"); strings[380] = str->add(strings[380]); strings[387] = str->add(strings[387]); strings[382] = str->add(strings[382]); strings[471] = str->add("fonts/Edje-Vera-Bold"); strings[383] = str->add(strings[383]); strings[472] = str->add("+ style=glow color=#fff glow2_color=#fe87 glow_color=#fa14"); strings[470] = str->add(strings[470]); strings[380] = str->add(strings[380]); strings[386] = str->add(strings[386]); strings[382] = str->add(strings[382]); strings[471] = str->add(strings[471]); strings[383] = str->add(strings[383]); strings[472] = str->add(strings[472]); strings[470] = str->add(strings[470]); strings[380] = str->add(strings[380]); strings[386] = str->add(strings[386]); strings[382] = str->add(strings[382]); strings[471] = str->add(strings[471]); strings[383] = str->add(strings[383]); strings[472] = str->add(strings[472]); strings[471] = str->add(strings[471]); strings[473] = str->add("tb_big"); strings[474] = str->add("+ style=soft_shadow color=#fff shadow_color=#00000020"); strings[475] = str->add("- \n \n"); strings[470] = str->add(strings[470]); strings[476] = str->add("style=glow color=#fff glow2_color=#fe87 glow_color=#fa14 align=center wrap=word"); strings[382] = str->add(strings[382]); strings[471] = str->add(strings[471]); strings[384] = str->add(strings[384]); strings[470] = str->add(strings[470]); strings[477] = str->add("+ style=none color=#0002"); strings[470] = str->add(strings[470]); strings[387] = str->add(strings[387]); strings[382] = str->add(strings[382]); strings[471] = str->add(strings[471]); strings[472] = str->add(strings[472]); strings[471] = str->add(strings[471]); strings[474] = str->add(strings[474]); strings[475] = str->add(strings[475]); strings[470] = str->add(strings[470]); strings[387] = str->add(strings[387]); strings[382] = str->add(strings[382]); strings[471] = str->add(strings[471]); strings[472] = str->add(strings[472]); strings[471] = str->add(strings[471]); strings[384] = str->add(strings[384]); strings[471] = str->add(strings[471]); strings[474] = str->add(strings[474]); strings[475] = str->add(strings[475]); strings[471] = str->add(strings[471]); strings[478] = str->add("tb_large"); strings[479] = str->add("align=center color=#fff style=soft_shadow shadow_color=#0002 wrap=word"); strings[382] = str->add(strings[382]); strings[471] = str->add(strings[471]); strings[480] = str->add("tb_large_light"); strings[472] = str->add(strings[472]); strings[470] = str->add(strings[470]); strings[471] = str->add(strings[471]); strings[481] = str->add("e/desktop/background"); strings[482] = str->add("e/modules/battery/main"); strings[483] = str->add("e/modules/battery/popup"); strings[484] = str->add("e/widgets/border/default/border"); strings[485] = str->add("e/widgets/border/shaped/border"); strings[486] = str->add("e/widgets/border/noresize/border"); strings[487] = str->add("e/widgets/border/dialog/border"); strings[488] = str->add("e/widgets/border/noresize_dialog/border"); strings[489] = str->add("e/widgets/border/pixel/border"); strings[490] = str->add("e/widgets/border/default/close"); strings[491] = str->add("e/widgets/border/default/minimize"); strings[492] = str->add("e/widgets/border/default/maximize"); strings[493] = str->add("e/widgets/border/default/shade"); strings[494] = str->add("e/widgets/border/default/stick"); strings[495] = str->add("e/widgets/border/default/kill"); strings[496] = str->add("e/widgets/border/default/locks"); strings[497] = str->add("e/widgets/border/default/locks_user"); strings[498] = str->add("e/widgets/border/default/locks_application"); strings[499] = str->add("e/widgets/border/default/borderless"); strings[500] = str->add("e/widgets/border/default/fullscreen"); strings[501] = str->add("e/widgets/border/default/remember"); strings[502] = str->add("e/widgets/border/default/skip_winlist"); strings[503] = str->add("e/widgets/border/default/skip"); strings[504] = str->add("e/widgets/border/default/skip_pager"); strings[505] = str->add("e/widgets/border/default/sendto"); strings[506] = str->add("e/widgets/border/default/stacking"); strings[507] = str->add("e/widgets/border/default/stack_on_top"); strings[508] = str->add("e/widgets/border/default/stack_normal"); strings[509] = str->add("e/widgets/border/default/stack_below"); strings[510] = str->add("e/widgets/border/default/properties"); strings[511] = str->add("e/modules/clock/main"); strings[512] = str->add("e/gadman/control"); strings[513] = str->add("e/gadman/popup"); strings[514] = str->add("e/gadman/full_bg"); strings[515] = str->add("e/gadman/frame"); strings[516] = str->add("e/modules/ibar/icon"); strings[517] = str->add("e/modules/ibar/icon_overlay"); strings[518] = str->add("e/modules/ibar/drop"); strings[519] = str->add("e/modules/ibar/drop_overlay"); strings[520] = str->add("e/widgets/menu/default/background"); strings[521] = str->add("e/widgets/menu/default/separator"); strings[522] = str->add("e/widgets/menu/default/item_bg"); strings[523] = str->add("e/widgets/menu/default/submenu_bg"); strings[524] = str->add("e/widgets/menu/default/check"); strings[525] = str->add("e/widgets/menu/default/radio"); strings[526] = str->add("e/widgets/menu/default/icon"); strings[527] = str->add("e/widgets/menu/default/label"); strings[528] = str->add("e/widgets/menu/default/submenu"); strings[529] = str->add("e/modules/pager/popup"); strings[530] = str->add("e/modules/pager/desk"); strings[531] = str->add("e/modules/pager/window"); strings[532] = str->add("e/widgets/border/default/resize"); strings[533] = str->add("e/widgets/border/default/move"); strings[534] = str->add("e/modules/temperature/main"); strings[535] = str->add("e/error/main"); strings[536] = str->add("e/modules/cpufreq/main"); strings[537] = str->add("e/modules/ibox/icon"); strings[538] = str->add("e/modules/ibox/icon_overlay"); strings[539] = str->add("e/modules/ibox/drop"); strings[540] = str->add("e/modules/ibox/drop_overlay"); strings[541] = str->add("e/modules/start/main"); strings[542] = str->add("e/widgets/winlist/main"); strings[543] = str->add("e/widgets/winlist/item"); strings[544] = str->add("e/transpreview/0"); strings[545] = str->add("e/transpreview/1"); strings[546] = str->add("e/transitions/crossfade"); strings[547] = str->add("e/transitions/vswipe"); strings[548] = str->add("e/widgets/dialog/main"); strings[549] = str->add("e/widgets/dialog/text"); strings[550] = str->add("e/widgets/configure/main"); strings[551] = str->add("e/icons/enlightenment/e"); strings[552] = str->add("e/icons/enlightenment/reset"); strings[553] = str->add("e/icons/enlightenment/exit"); strings[554] = str->add("e/icons/enlightenment/logout"); strings[555] = str->add("e/icons/enlightenment/halt"); strings[556] = str->add("e/icons/enlightenment/reboot"); strings[557] = str->add("e/icons/enlightenment/suspend"); strings[558] = str->add("e/icons/enlightenment/hibernate"); strings[559] = str->add("e/icons/enlightenment/screen_setup"); strings[560] = str->add("e/icons/enlightenment/themes"); strings[561] = str->add("e/icons/enlightenment/colors"); strings[562] = str->add("e/icons/enlightenment/windows"); strings[563] = str->add("e/icons/enlightenment/lost_windows"); strings[564] = str->add("e/icons/enlightenment/focus"); strings[565] = str->add("e/icons/enlightenment/modules"); strings[566] = str->add("e/icons/enlightenment/favorites"); strings[567] = str->add("e/icons/enlightenment/desktops"); strings[568] = str->add("e/icons/enlightenment/configuration"); strings[569] = str->add("e/icons/enlightenment/intl"); strings[570] = str->add("e/icons/enlightenment/system"); strings[571] = str->add("e/icons/enlightenment/run"); strings[572] = str->add("e/icons/enlightenment/directories"); strings[573] = str->add("e/icons/enlightenment/fileman"); strings[574] = str->add("e/icons/enlightenment/unknown"); strings[575] = str->add("e/icons/widget/new_dialog"); strings[576] = str->add("e/icons/widget/up_arrow"); strings[577] = str->add("e/icons/widget/down_arrow"); strings[578] = str->add("e/icons/widget/up_dir"); strings[579] = str->add("e/icons/enlightenment/mouse"); strings[580] = str->add("e/icons/enlightenment/mouse_left"); strings[581] = str->add("e/icons/enlightenment/mouse_middle"); strings[582] = str->add("e/icons/enlightenment/mouse_right"); strings[583] = str->add("e/icons/enlightenment/mouse_extra"); strings[584] = str->add("e/icons/enlightenment/mouse_wheel"); strings[585] = str->add("e/icons/enlightenment/mouse_clean"); strings[586] = str->add("e/icons/enlightenment/keys"); strings[587] = str->add("e/icons/enlightenment/desklock"); strings[588] = str->add("e/icons/enlightenment/desklock_menu"); strings[589] = str->add("e/icons/enlightenment/regenerate_menus"); strings[590] = str->add("e/icons/enlightenment/screen_resolution"); strings[591] = str->add("e/icons/enlightenment/shelf"); strings[592] = str->add("e/icons/enlightenment/fonts"); strings[593] = str->add("e/icons/enlightenment/background"); strings[594] = str->add("e/icons/enlightenment/icon_theme"); strings[595] = str->add("e/icons/enlightenment/applications"); strings[596] = str->add("e/icons/enlightenment/transitions"); strings[597] = str->add("e/icons/enlightenment/performance"); strings[598] = str->add("e/icons/enlightenment/startup"); strings[599] = str->add("e/icons/enlightenment/winlist"); strings[600] = str->add("e/icons/enlightenment/window_manipulation"); strings[601] = str->add("e/icons/enlightenment/menus"); strings[602] = str->add("e/icons/enlightenment/screen_normal"); strings[603] = str->add("e/icons/enlightenment/screen_around"); strings[604] = str->add("e/icons/enlightenment/screen_left"); strings[605] = str->add("e/icons/enlightenment/screen_right"); strings[606] = str->add("e/icons/enlightenment/screen_vflip"); strings[607] = str->add("e/icons/enlightenment/screen_hflip"); strings[608] = str->add("e/icons/enlightenment/shelf_position_bottom"); strings[609] = str->add("e/icons/enlightenment/shelf_position_bottom_left"); strings[610] = str->add("e/icons/enlightenment/shelf_position_bottom_right"); strings[611] = str->add("e/icons/enlightenment/shelf_position_top"); strings[612] = str->add("e/icons/enlightenment/shelf_position_top_left"); strings[613] = str->add("e/icons/enlightenment/shelf_position_top_right"); strings[614] = str->add("e/icons/enlightenment/shelf_position_left"); strings[615] = str->add("e/icons/enlightenment/shelf_position_left_top"); strings[616] = str->add("e/icons/enlightenment/shelf_position_left_bottom"); strings[617] = str->add("e/icons/enlightenment/shelf_position_right"); strings[618] = str->add("e/icons/enlightenment/shelf_position_right_top"); strings[619] = str->add("e/icons/enlightenment/shelf_position_right_bottom"); strings[620] = str->add("e/icons/enlightenment/shelf_bottom_desk"); strings[621] = str->add("e/icons/enlightenment/shelf_custom"); strings[622] = str->add("e/icons/enlightenment/shelf_dock"); strings[623] = str->add("e/icons/enlightenment/shelf_menu_bar"); strings[624] = str->add("e/icons/enlightenment/shelf_panel"); strings[625] = str->add("e/icons/enlightenment/shelf_top_desk"); strings[626] = str->add("e/icons/enlightenment/wallpaper_stretch"); strings[627] = str->add("e/icons/enlightenment/wallpaper_tile"); strings[628] = str->add("e/icons/enlightenment/wallpaper_center"); strings[629] = str->add("e/icons/enlightenment/wallpaper_scale_aspect_in"); strings[630] = str->add("e/icons/enlightenment/wallpaper_scale_aspect_out"); strings[631] = str->add("e/icons/enlightenment/gradient_h"); strings[632] = str->add("e/icons/enlightenment/gradient_v"); strings[633] = str->add("e/icons/enlightenment/gradient_du"); strings[634] = str->add("e/icons/enlightenment/gradient_dd"); strings[635] = str->add("e/icons/enlightenment/gradient_rad"); strings[636] = str->add("e/icons/enlightenment/advanced"); strings[637] = str->add("e/icons/enlightenment/behavior"); strings[638] = str->add("e/icons/enlightenment/appearance"); strings[639] = str->add("e/icons/enlightenment/extensions"); strings[640] = str->add("e/icons/enlightenment/imc"); strings[641] = str->add("e/icons/enlightenment/file_icons"); strings[642] = str->add("e/icons/enlightenment/menu_settings"); strings[643] = str->add("e/icons/enlightenment/ibar_applications"); strings[644] = str->add("e/icons/enlightenment/restart_applications"); strings[645] = str->add("e/icons/enlightenment/startup_applications"); strings[646] = str->add("e/icons/enlightenment/power_management"); strings[647] = str->add("e/icons/enlightenment/screensaver"); strings[648] = str->add("e/icons/enlightenment/window_remembers"); strings[649] = str->add("e/pointer/enlightenment/default/color"); strings[650] = str->add("e/pointer/enlightenment/default/mono"); strings[651] = str->add("e/widgets/about/main"); strings[652] = str->add("e/theme/about"); strings[653] = str->add("e/widgets/entry"); strings[654] = str->add("e/widgets/entry/text"); strings[655] = str->add("e/widgets/entry/cursor"); strings[656] = str->add("e/widgets/entry/selection"); strings[657] = str->add("e/fileman/default/window/main"); strings[658] = str->add("e/fileman/default/scrollframe"); strings[659] = str->add("e/fileman/default/list/variable"); strings[660] = str->add("e/fileman/default/list_odd/variable"); strings[661] = str->add("e/fileman/default/list/fixed"); strings[662] = str->add("e/fileman/default/list_odd/fixed"); strings[663] = str->add("e/fileman/default/icon/fixed"); strings[664] = str->add("e/fileman/default/icon/variable"); strings[665] = str->add("e/fileman/default/overlay"); strings[666] = str->add("e/fileman/default/list/drop_between"); strings[667] = str->add("e/fileman/default/list/drop_in"); strings[668] = str->add("e/fileman/desktop/scrollframe"); strings[669] = str->add("e/fileman/desktop/icon/fixed"); strings[670] = str->add("e/fileman/desktop/icon/variable"); strings[671] = str->add("e/fileman/desktop/overlay"); strings[672] = str->add("e/fileman/desktop/list/drop_between"); strings[673] = str->add("e/fileman/desktop/list/drop_in"); strings[674] = str->add("e/fileman/default/rubberband"); strings[675] = str->add("e/icons/fileman/folder"); strings[676] = str->add("e/icons/fileman/file"); strings[677] = str->add("e/icons/fileman/home"); strings[678] = str->add("e/icons/fileman/desktop"); strings[679] = str->add("e/icons/fileman/hdd"); strings[680] = str->add("e/icons/fileman/hd"); strings[681] = str->add("e/icons/fileman/mime/application/pdf"); strings[682] = str->add("e/icons/fileman/mime/text/x-csrc"); strings[683] = str->add("e/icons/fileman/mime/text/x-chdr"); strings[684] = str->add("e/icons/fileman/mime/application/x-object"); strings[685] = str->add("e/icons/fileman/mime/application/x-shellscript"); strings[686] = str->add("e/icons/fileman/mime/image/png"); strings[687] = str->add("e/icons/fileman/mime/image/jpeg"); strings[688] = str->add("e/icons/fileman/mime/video/x-msvideo"); strings[689] = str->add("e/icons/fileman/mime/audio/mpeg"); strings[690] = str->add("e/icons/fileman/mime/application/x-xcf"); strings[691] = str->add("e/icons/fileman/mime/text/x-c++src"); strings[692] = str->add("e/icons/fileman/mime/text/x-csharp"); strings[693] = str->add("e/icons/fileman/mime/text/x-patch"); strings[694] = str->add("e/icons/fileman/mime/application/msword"); strings[695] = str->add("e/icons/fileman/mime/application/ogg"); strings[696] = str->add("e/icons/fileman/mime/text/plain"); strings[697] = str->add("e/icons/fileman/mime/application/x-bzip"); strings[698] = str->add("e/icons/fileman/mime/application/x-deb"); strings[699] = str->add("e/icons/fileman/mime/application/x-font-ttf"); strings[700] = str->add("e/icons/fileman/mime/application/x-font-pcf"); strings[701] = str->add("e/icons/fileman/mime/application/x-font-bdf"); strings[702] = str->add("e/icons/fileman/mime/text/css"); strings[703] = str->add("e/icons/fileman/mime/text/html"); strings[703] = str->add(strings[703]); strings[704] = str->add("e/icons/fileman/mime/application/zip"); strings[705] = str->add("e/icons/fileman/mime/application/x-gzip"); strings[706] = str->add("e/icons/fileman/mime/application/x-bzip-compressed-tar"); strings[707] = str->add("e/icons/fileman/mime/application/x-bzip2-compressed-tar"); strings[708] = str->add("e/icons/fileman/mime/application/x-compressed-tar"); strings[709] = str->add("e/icons/fileman/mime/application/x-tar"); strings[710] = str->add("e/icons/fileman/mime/application/x-rar"); strings[711] = str->add("e/icons/fileman/mime/video/mpeg"); strings[712] = str->add("e/icons/fileman/mime/video"); strings[713] = str->add("e/icons/fileman/mime/text"); strings[714] = str->add("e/icons/fileman/mime/image"); strings[715] = str->add("e/icons/fileman/mime/audio"); strings[716] = str->add("e/fileman/default/button/open"); strings[717] = str->add("e/fileman/default/button/copy"); strings[718] = str->add("e/fileman/default/button/cut"); strings[719] = str->add("e/fileman/default/button/paste"); strings[720] = str->add("e/fileman/default/button/delete"); strings[721] = str->add("e/fileman/default/button/rename"); strings[722] = str->add("e/fileman/default/button/properties"); strings[723] = str->add("e/fileman/default/button/arrange_name"); strings[724] = str->add("e/fileman/default/button/arrange"); strings[725] = str->add("e/fileman/default/button/arrange_time"); strings[726] = str->add("e/fileman/default/button/new"); strings[727] = str->add("e/fileman/default/button/new_dir"); strings[728] = str->add("e/fileman/default/button/refresh"); strings[729] = str->add("e/fileman/default/button/view_details"); strings[730] = str->add("e/fileman/default/button/view_name"); strings[731] = str->add("e/fileman/default/button/view"); strings[732] = str->add("e/fileman/default/button/select"); strings[733] = str->add("e/widgets/fileselector/main"); strings[734] = str->add("e/widgets/check"); strings[735] = str->add("e/widgets/check_icon"); strings[736] = str->add("e/widgets/radio"); strings[737] = str->add("e/widgets/radio_icon"); strings[738] = str->add("e/widgets/frame"); strings[739] = str->add("e/widgets/button"); strings[740] = str->add("e/widgets/label"); strings[741] = str->add("e/widgets/scrollframe"); strings[742] = str->add("e/widgets/ilist"); strings[743] = str->add("e/widgets/ilist_odd"); strings[744] = str->add("e/widgets/ilist_header"); strings[745] = str->add("e/widgets/tlist"); strings[746] = str->add("e/widgets/tlist_odd"); strings[747] = str->add("e/widgets/slider_vertical"); strings[748] = str->add("e/widgets/slider_horizontal"); strings[749] = str->add("e/widgets/exebuf/main"); strings[750] = str->add("e/widgets/exebuf/item"); strings[751] = str->add("e/desklock/background"); strings[752] = str->add("e/desklock/login_box"); strings[753] = str->add("e/widgets/textblock"); strings[754] = str->add("e/shelf/default/base"); strings[755] = str->add("e/shelf/default/inset"); strings[756] = str->add("e/shelf/default/plain"); strings[757] = str->add("e/shelf/alternate/base"); strings[758] = str->add("e/shelf/alternate/inset"); strings[759] = str->add("e/shelf/alternate/plain"); strings[760] = str->add("e/shelf/invisible/base"); strings[761] = str->add("e/shelf/invisible/inset"); strings[762] = str->add("e/shelf/invisible/plain"); strings[763] = str->add("e/widgets/preview"); strings[764] = str->add("e/widgets/cslider"); strings[765] = str->add("e/widgets/spectrum"); strings[766] = str->add("e/widgets/color_well"); strings[767] = str->add("e/sys/logout"); strings[768] = str->add("e/sys/halt"); strings[769] = str->add("e/sys/reboot"); strings[770] = str->add("e/sys/suspend"); strings[771] = str->add("e/sys/hibernate"); strings[772] = str->add("e/widgets/deskpreview/desk"); strings[773] = str->add("e/widgets/fontpreview"); strings[774] = str->add("e/wizard/extra"); strings[775] = str->add("e/wizard/main"); strings[776] = str->add("e/toolbar/default/base"); strings[777] = str->add("e/widgets/slidesel"); strings[778] = str->add("e/modules/mixer/main"); strings[779] = str->add("e/modules/connman/main"); strings[780] = str->add("e/modules/connman/network"); strings[781] = str->add("e/widgets/gradpreview"); str->del(strings[481]); str->del(strings[482]); str->del(strings[483]); str->del(strings[484]); str->del(strings[485]); str->del(strings[486]); str->del(strings[487]); str->del(strings[488]); str->del(strings[489]); str->del(strings[490]); str->del(strings[491]); str->del(strings[492]); str->del(strings[493]); str->del(strings[494]); str->del(strings[495]); str->del(strings[496]); str->del(strings[497]); str->del(strings[498]); str->del(strings[499]); str->del(strings[500]); str->del(strings[501]); str->del(strings[502]); str->del(strings[503]); str->del(strings[504]); str->del(strings[505]); str->del(strings[506]); str->del(strings[507]); str->del(strings[508]); str->del(strings[509]); str->del(strings[510]); str->del(strings[511]); str->del(strings[512]); str->del(strings[513]); str->del(strings[514]); str->del(strings[515]); str->del(strings[516]); str->del(strings[517]); str->del(strings[518]); str->del(strings[519]); str->del(strings[520]); str->del(strings[521]); str->del(strings[522]); str->del(strings[523]); str->del(strings[524]); str->del(strings[525]); str->del(strings[526]); str->del(strings[527]); str->del(strings[528]); str->del(strings[529]); str->del(strings[530]); str->del(strings[531]); str->del(strings[532]); str->del(strings[533]); str->del(strings[534]); str->del(strings[535]); str->del(strings[536]); str->del(strings[537]); str->del(strings[538]); str->del(strings[539]); str->del(strings[540]); str->del(strings[541]); str->del(strings[542]); str->del(strings[543]); str->del(strings[544]); str->del(strings[545]); str->del(strings[546]); str->del(strings[547]); str->del(strings[548]); str->del(strings[549]); str->del(strings[550]); str->del(strings[551]); str->del(strings[552]); str->del(strings[553]); str->del(strings[554]); str->del(strings[555]); str->del(strings[556]); str->del(strings[557]); str->del(strings[558]); str->del(strings[559]); str->del(strings[560]); str->del(strings[561]); str->del(strings[562]); str->del(strings[563]); str->del(strings[564]); str->del(strings[565]); str->del(strings[566]); str->del(strings[567]); str->del(strings[568]); str->del(strings[569]); str->del(strings[570]); str->del(strings[571]); str->del(strings[572]); str->del(strings[573]); str->del(strings[574]); str->del(strings[575]); str->del(strings[576]); str->del(strings[577]); str->del(strings[578]); str->del(strings[579]); str->del(strings[580]); str->del(strings[581]); str->del(strings[582]); str->del(strings[583]); str->del(strings[584]); str->del(strings[585]); str->del(strings[586]); str->del(strings[587]); str->del(strings[588]); str->del(strings[589]); str->del(strings[590]); str->del(strings[591]); str->del(strings[592]); str->del(strings[593]); str->del(strings[594]); str->del(strings[595]); str->del(strings[596]); str->del(strings[597]); str->del(strings[598]); str->del(strings[599]); str->del(strings[600]); str->del(strings[601]); str->del(strings[602]); str->del(strings[603]); str->del(strings[604]); str->del(strings[605]); str->del(strings[606]); str->del(strings[607]); str->del(strings[608]); str->del(strings[609]); str->del(strings[610]); str->del(strings[611]); str->del(strings[612]); str->del(strings[613]); str->del(strings[614]); str->del(strings[615]); str->del(strings[616]); str->del(strings[617]); str->del(strings[618]); str->del(strings[619]); str->del(strings[620]); str->del(strings[621]); str->del(strings[622]); str->del(strings[623]); str->del(strings[624]); str->del(strings[625]); str->del(strings[626]); str->del(strings[627]); str->del(strings[628]); str->del(strings[629]); str->del(strings[630]); str->del(strings[631]); str->del(strings[632]); str->del(strings[633]); str->del(strings[634]); str->del(strings[635]); str->del(strings[636]); str->del(strings[637]); str->del(strings[638]); str->del(strings[639]); str->del(strings[640]); str->del(strings[641]); str->del(strings[642]); str->del(strings[643]); str->del(strings[644]); str->del(strings[645]); str->del(strings[646]); str->del(strings[647]); str->del(strings[648]); str->del(strings[649]); str->del(strings[650]); str->del(strings[651]); str->del(strings[652]); str->del(strings[653]); str->del(strings[654]); str->del(strings[655]); str->del(strings[656]); str->del(strings[657]); str->del(strings[658]); str->del(strings[659]); str->del(strings[660]); str->del(strings[661]); str->del(strings[662]); str->del(strings[663]); str->del(strings[664]); str->del(strings[665]); str->del(strings[666]); str->del(strings[667]); str->del(strings[668]); str->del(strings[669]); str->del(strings[670]); str->del(strings[671]); str->del(strings[672]); str->del(strings[673]); str->del(strings[674]); str->del(strings[675]); str->del(strings[676]); str->del(strings[677]); str->del(strings[678]); str->del(strings[679]); str->del(strings[680]); str->del(strings[681]); str->del(strings[682]); str->del(strings[683]); str->del(strings[684]); str->del(strings[685]); str->del(strings[686]); str->del(strings[687]); str->del(strings[688]); str->del(strings[689]); str->del(strings[690]); str->del(strings[691]); str->del(strings[692]); str->del(strings[693]); str->del(strings[694]); str->del(strings[695]); str->del(strings[696]); str->del(strings[697]); str->del(strings[698]); str->del(strings[699]); str->del(strings[700]); str->del(strings[701]); str->del(strings[702]); str->del(strings[703]); str->del(strings[703]); str->del(strings[704]); str->del(strings[705]); str->del(strings[706]); str->del(strings[707]); str->del(strings[708]); str->del(strings[709]); str->del(strings[710]); str->del(strings[711]); str->del(strings[712]); str->del(strings[713]); str->del(strings[714]); str->del(strings[715]); str->del(strings[716]); str->del(strings[717]); str->del(strings[718]); str->del(strings[719]); str->del(strings[720]); str->del(strings[721]); str->del(strings[722]); str->del(strings[723]); str->del(strings[724]); str->del(strings[725]); str->del(strings[726]); str->del(strings[727]); str->del(strings[728]); str->del(strings[729]); str->del(strings[730]); str->del(strings[731]); str->del(strings[732]); str->del(strings[733]); str->del(strings[734]); str->del(strings[735]); str->del(strings[736]); str->del(strings[737]); str->del(strings[738]); str->del(strings[739]); str->del(strings[740]); str->del(strings[741]); str->del(strings[742]); str->del(strings[743]); str->del(strings[744]); str->del(strings[745]); str->del(strings[746]); str->del(strings[747]); str->del(strings[748]); str->del(strings[749]); str->del(strings[750]); str->del(strings[751]); str->del(strings[752]); str->del(strings[753]); str->del(strings[754]); str->del(strings[755]); str->del(strings[756]); str->del(strings[757]); str->del(strings[758]); str->del(strings[759]); str->del(strings[760]); str->del(strings[761]); str->del(strings[762]); str->del(strings[763]); str->del(strings[764]); str->del(strings[765]); str->del(strings[766]); str->del(strings[767]); str->del(strings[768]); str->del(strings[769]); str->del(strings[770]); str->del(strings[771]); str->del(strings[772]); str->del(strings[773]); str->del(strings[774]); str->del(strings[775]); str->del(strings[776]); str->del(strings[777]); str->del(strings[778]); str->del(strings[779]); str->del(strings[780]); str->del(strings[781]); strings[782] = str->add("e/desktop/background"); strings[783] = str->add("e/widgets/border/default/border"); strings[784] = str->add("e/widgets/border/shaped/border"); strings[785] = str->add("e/widgets/border/noresize/border"); strings[786] = str->add("e/widgets/border/dialog/border"); strings[787] = str->add("e/widgets/border/noresize_dialog/border"); strings[788] = str->add("e/widgets/border/pixel/border"); strings[789] = str->add("e/pointer/enlightenment/default/color"); strings[790] = str->add("e/pointer/enlightenment/default/mono"); strings[791] = str->add("e/widgets/menu/default/background"); strings[792] = str->add("e/widgets/menu/default/separator"); strings[793] = str->add("e/widgets/menu/default/item_bg"); strings[794] = str->add("e/widgets/menu/default/icon"); strings[795] = str->add("e/widgets/menu/default/label"); strings[796] = str->add("e/widgets/menu/default/submenu"); strings[797] = str->add("e/widgets/menu/default/check"); strings[798] = str->add("e/widgets/menu/default/radio"); strings[799] = str->add("e/shelf/default/base"); strings[800] = str->add("e/shelf/default/inset"); strings[801] = str->add("e/shelf/default/plain"); strings[802] = str->add("e/shelf/invisible/base"); strings[803] = str->add("e/shelf/invisible/inset"); strings[804] = str->add("e/shelf/invisible/plain"); strings[805] = str->add("e/shelf/alternate/base"); strings[806] = str->add("e/shelf/alternate/inset"); strings[807] = str->add("e/shelf/alternate/plain"); strings[808] = str->add("e/modules/start/main"); strings[809] = str->add("e/modules/pager/popup"); strings[810] = str->add("e/modules/pager/desk"); strings[811] = str->add("e/modules/pager/window"); strings[812] = str->add("e/modules/battery/main"); strings[813] = str->add("e/modules/temperature/main"); strings[814] = str->add("e/modules/clock/main"); strings[815] = str->add("e/modules/cpufreq/main"); strings[816] = str->add("e/widgets/winlist/main"); strings[817] = str->add("e/widgets/winlist/item"); strings[818] = str->add("e/modules/mixer/main"); strings[819] = str->add("e/sys/logout"); strings[820] = str->add("e/widgets/dialog/main"); strings[821] = str->add("e/widgets/dialog/text"); strings[822] = str->add("e/widgets/configure/main"); strings[823] = str->add("e/widgets/border/default/move"); strings[824] = str->add("e/widgets/border/default/resize"); strings[825] = str->add("e/transpreview/0"); strings[826] = str->add("e/transpreview/1"); strings[827] = str->add("e/transitions/crossfade"); strings[828] = str->add("e/transitions/vswipe"); strings[829] = str->add("e/widgets/check"); strings[830] = str->add("e/widgets/check_icon"); strings[831] = str->add("e/widgets/radio"); strings[832] = str->add("e/widgets/radio_icon"); strings[833] = str->add("e/widgets/button"); strings[834] = str->add("e/widgets/scrollframe"); strings[835] = str->add("e/widgets/ilist"); strings[836] = str->add("e/widgets/ilist_odd"); strings[837] = str->add("e/widgets/ilist_header"); strings[838] = str->add("e/widgets/ilist_header_odd"); strings[839] = str->add("e/widgets/entry"); strings[840] = str->add("e/widgets/entry/text"); strings[841] = str->add("e/widgets/entry/cursor"); strings[842] = str->add("e/widgets/entry/selection"); strings[843] = str->add("e/widgets/preview"); strings[844] = str->add("e/widgets/deskpreview/desk"); strings[845] = str->add("e/widgets/color_well"); strings[846] = str->add("e/widgets/spectrum"); strings[847] = str->add("e/widgets/cslider"); strings[848] = str->add("e/widgets/slider_vertical"); strings[849] = str->add("e/widgets/slider_horizontal"); strings[850] = str->add("e/widgets/frame"); strings[851] = str->add("e/widgets/label"); strings[852] = str->add("e/widgets/fontpreview"); strings[853] = str->add("e/widgets/textblock"); strings[854] = str->add("e/widgets/menu/default/submenu_bg"); strings[855] = str->add("e/sys/halt"); strings[856] = str->add("e/sys/reboot"); strings[857] = str->add("e/sys/suspend"); strings[858] = str->add("e/sys/hibernate"); strings[859] = str->add("e/widgets/gradpreview"); strings[61] = str->add(strings[61]); strings[860] = str->add("shaped"); strings[861] = str->add("noresize"); strings[862] = str->add("dialog"); strings[863] = str->add("noresize_dialog"); strings[864] = str->add("pixel"); str->del(strings[782]); str->del(strings[783]); str->del(strings[784]); str->del(strings[785]); str->del(strings[786]); str->del(strings[787]); str->del(strings[788]); str->del(strings[789]); str->del(strings[790]); str->del(strings[791]); str->del(strings[792]); str->del(strings[793]); str->del(strings[794]); str->del(strings[795]); str->del(strings[796]); str->del(strings[797]); str->del(strings[798]); str->del(strings[799]); str->del(strings[800]); str->del(strings[801]); str->del(strings[802]); str->del(strings[803]); str->del(strings[804]); str->del(strings[805]); str->del(strings[806]); str->del(strings[807]); str->del(strings[808]); str->del(strings[809]); str->del(strings[810]); str->del(strings[811]); str->del(strings[812]); str->del(strings[813]); str->del(strings[814]); str->del(strings[815]); str->del(strings[816]); str->del(strings[817]); str->del(strings[818]); str->del(strings[819]); str->del(strings[820]); str->del(strings[821]); str->del(strings[822]); str->del(strings[823]); str->del(strings[824]); str->del(strings[825]); str->del(strings[826]); str->del(strings[827]); str->del(strings[828]); str->del(strings[829]); str->del(strings[830]); str->del(strings[831]); str->del(strings[832]); str->del(strings[833]); str->del(strings[834]); str->del(strings[835]); str->del(strings[836]); str->del(strings[837]); str->del(strings[838]); str->del(strings[839]); str->del(strings[840]); str->del(strings[841]); str->del(strings[842]); str->del(strings[843]); str->del(strings[844]); str->del(strings[845]); str->del(strings[846]); str->del(strings[847]); str->del(strings[848]); str->del(strings[849]); str->del(strings[850]); str->del(strings[851]); str->del(strings[852]); str->del(strings[853]); str->del(strings[854]); str->del(strings[855]); str->del(strings[856]); str->del(strings[857]); str->del(strings[858]); str->del(strings[859]); strings[865] = str->add("e/desktop/background"); strings[866] = str->add("e/modules/battery/main"); strings[867] = str->add("e/modules/battery/popup"); strings[868] = str->add("e/widgets/border/default/border"); strings[869] = str->add("e/widgets/border/shaped/border"); strings[870] = str->add("e/widgets/border/noresize/border"); strings[871] = str->add("e/widgets/border/dialog/border"); strings[872] = str->add("e/widgets/border/noresize_dialog/border"); strings[873] = str->add("e/widgets/border/pixel/border"); strings[874] = str->add("e/widgets/border/default/close"); strings[875] = str->add("e/widgets/border/default/minimize"); strings[876] = str->add("e/widgets/border/default/maximize"); strings[877] = str->add("e/widgets/border/default/shade"); strings[878] = str->add("e/widgets/border/default/stick"); strings[879] = str->add("e/widgets/border/default/kill"); strings[880] = str->add("e/widgets/border/default/locks"); strings[881] = str->add("e/widgets/border/default/locks_user"); strings[882] = str->add("e/widgets/border/default/locks_application"); strings[883] = str->add("e/widgets/border/default/borderless"); strings[884] = str->add("e/widgets/border/default/fullscreen"); strings[885] = str->add("e/widgets/border/default/remember"); strings[886] = str->add("e/widgets/border/default/skip_winlist"); strings[887] = str->add("e/widgets/border/default/skip"); strings[888] = str->add("e/widgets/border/default/skip_pager"); strings[889] = str->add("e/widgets/border/default/sendto"); strings[890] = str->add("e/widgets/border/default/stacking"); strings[891] = str->add("e/widgets/border/default/stack_on_top"); strings[892] = str->add("e/widgets/border/default/stack_normal"); strings[893] = str->add("e/widgets/border/default/stack_below"); strings[894] = str->add("e/widgets/border/default/properties"); strings[895] = str->add("e/modules/clock/main"); strings[896] = str->add("e/gadman/control"); strings[897] = str->add("e/gadman/popup"); strings[898] = str->add("e/gadman/full_bg"); strings[899] = str->add("e/gadman/frame"); strings[900] = str->add("e/modules/ibar/icon"); strings[901] = str->add("e/modules/ibar/icon_overlay"); strings[902] = str->add("e/modules/ibar/drop"); strings[903] = str->add("e/modules/ibar/drop_overlay"); strings[904] = str->add("e/widgets/menu/default/background"); strings[905] = str->add("e/widgets/menu/default/separator"); strings[906] = str->add("e/widgets/menu/default/item_bg"); strings[907] = str->add("e/widgets/menu/default/submenu_bg"); strings[908] = str->add("e/widgets/menu/default/check"); strings[909] = str->add("e/widgets/menu/default/radio"); strings[910] = str->add("e/widgets/menu/default/icon"); strings[911] = str->add("e/widgets/menu/default/label"); strings[912] = str->add("e/widgets/menu/default/submenu"); strings[913] = str->add("e/modules/pager/popup"); strings[914] = str->add("e/modules/pager/desk"); strings[915] = str->add("e/modules/pager/window"); strings[916] = str->add("e/widgets/border/default/resize"); strings[917] = str->add("e/widgets/border/default/move"); strings[918] = str->add("e/modules/temperature/main"); strings[919] = str->add("e/error/main"); strings[920] = str->add("e/modules/cpufreq/main"); strings[921] = str->add("e/modules/ibox/icon"); strings[922] = str->add("e/modules/ibox/icon_overlay"); strings[923] = str->add("e/modules/ibox/drop"); strings[924] = str->add("e/modules/ibox/drop_overlay"); strings[925] = str->add("e/modules/start/main"); strings[926] = str->add("e/widgets/winlist/main"); strings[927] = str->add("e/widgets/winlist/item"); strings[928] = str->add("e/transpreview/0"); strings[929] = str->add("e/transpreview/1"); strings[930] = str->add("e/transitions/crossfade"); strings[931] = str->add("e/transitions/vswipe"); strings[932] = str->add("e/widgets/dialog/main"); strings[933] = str->add("e/widgets/dialog/text"); strings[934] = str->add("e/widgets/configure/main"); strings[935] = str->add("e/icons/enlightenment/e"); strings[936] = str->add("e/icons/enlightenment/reset"); strings[937] = str->add("e/icons/enlightenment/exit"); strings[938] = str->add("e/icons/enlightenment/logout"); strings[939] = str->add("e/icons/enlightenment/halt"); strings[940] = str->add("e/icons/enlightenment/reboot"); strings[941] = str->add("e/icons/enlightenment/suspend"); strings[942] = str->add("e/icons/enlightenment/hibernate"); strings[943] = str->add("e/icons/enlightenment/screen_setup"); strings[944] = str->add("e/icons/enlightenment/themes"); strings[945] = str->add("e/icons/enlightenment/colors"); strings[946] = str->add("e/icons/enlightenment/windows"); strings[947] = str->add("e/icons/enlightenment/lost_windows"); strings[948] = str->add("e/icons/enlightenment/focus"); strings[949] = str->add("e/icons/enlightenment/modules"); strings[950] = str->add("e/icons/enlightenment/favorites"); strings[951] = str->add("e/icons/enlightenment/desktops"); strings[952] = str->add("e/icons/enlightenment/configuration"); strings[953] = str->add("e/icons/enlightenment/intl"); strings[954] = str->add("e/icons/enlightenment/system"); strings[955] = str->add("e/icons/enlightenment/run"); strings[956] = str->add("e/icons/enlightenment/directories"); strings[957] = str->add("e/icons/enlightenment/fileman"); strings[958] = str->add("e/icons/enlightenment/unknown"); strings[959] = str->add("e/icons/widget/new_dialog"); strings[960] = str->add("e/icons/widget/up_arrow"); strings[961] = str->add("e/icons/widget/down_arrow"); strings[962] = str->add("e/icons/widget/up_dir"); strings[963] = str->add("e/icons/enlightenment/mouse"); strings[964] = str->add("e/icons/enlightenment/mouse_left"); strings[965] = str->add("e/icons/enlightenment/mouse_middle"); strings[966] = str->add("e/icons/enlightenment/mouse_right"); strings[967] = str->add("e/icons/enlightenment/mouse_extra"); strings[968] = str->add("e/icons/enlightenment/mouse_wheel"); strings[969] = str->add("e/icons/enlightenment/mouse_clean"); strings[970] = str->add("e/icons/enlightenment/keys"); strings[971] = str->add("e/icons/enlightenment/desklock"); strings[972] = str->add("e/icons/enlightenment/desklock_menu"); strings[973] = str->add("e/icons/enlightenment/regenerate_menus"); strings[974] = str->add("e/icons/enlightenment/screen_resolution"); strings[975] = str->add("e/icons/enlightenment/shelf"); strings[976] = str->add("e/icons/enlightenment/fonts"); strings[977] = str->add("e/icons/enlightenment/background"); strings[978] = str->add("e/icons/enlightenment/icon_theme"); strings[979] = str->add("e/icons/enlightenment/applications"); strings[980] = str->add("e/icons/enlightenment/transitions"); strings[981] = str->add("e/icons/enlightenment/performance"); strings[982] = str->add("e/icons/enlightenment/startup"); strings[983] = str->add("e/icons/enlightenment/winlist"); strings[984] = str->add("e/icons/enlightenment/window_manipulation"); strings[985] = str->add("e/icons/enlightenment/menus"); strings[986] = str->add("e/icons/enlightenment/screen_normal"); strings[987] = str->add("e/icons/enlightenment/screen_around"); strings[988] = str->add("e/icons/enlightenment/screen_left"); strings[989] = str->add("e/icons/enlightenment/screen_right"); strings[990] = str->add("e/icons/enlightenment/screen_vflip"); strings[991] = str->add("e/icons/enlightenment/screen_hflip"); strings[992] = str->add("e/icons/enlightenment/shelf_position_bottom"); strings[993] = str->add("e/icons/enlightenment/shelf_position_bottom_left"); strings[994] = str->add("e/icons/enlightenment/shelf_position_bottom_right"); strings[995] = str->add("e/icons/enlightenment/shelf_position_top"); strings[996] = str->add("e/icons/enlightenment/shelf_position_top_left"); strings[997] = str->add("e/icons/enlightenment/shelf_position_top_right"); strings[998] = str->add("e/icons/enlightenment/shelf_position_left"); strings[999] = str->add("e/icons/enlightenment/shelf_position_left_top"); strings[1000] = str->add("e/icons/enlightenment/shelf_position_left_bottom"); strings[1001] = str->add("e/icons/enlightenment/shelf_position_right"); strings[1002] = str->add("e/icons/enlightenment/shelf_position_right_top"); strings[1003] = str->add("e/icons/enlightenment/shelf_position_right_bottom"); strings[1004] = str->add("e/icons/enlightenment/shelf_bottom_desk"); strings[1005] = str->add("e/icons/enlightenment/shelf_custom"); strings[1006] = str->add("e/icons/enlightenment/shelf_dock"); strings[1007] = str->add("e/icons/enlightenment/shelf_menu_bar"); strings[1008] = str->add("e/icons/enlightenment/shelf_panel"); strings[1009] = str->add("e/icons/enlightenment/shelf_top_desk"); strings[1010] = str->add("e/icons/enlightenment/wallpaper_stretch"); strings[1011] = str->add("e/icons/enlightenment/wallpaper_tile"); strings[1012] = str->add("e/icons/enlightenment/wallpaper_center"); strings[1013] = str->add("e/icons/enlightenment/wallpaper_scale_aspect_in"); strings[1014] = str->add("e/icons/enlightenment/wallpaper_scale_aspect_out"); strings[1015] = str->add("e/icons/enlightenment/gradient_h"); strings[1016] = str->add("e/icons/enlightenment/gradient_v"); strings[1017] = str->add("e/icons/enlightenment/gradient_du"); strings[1018] = str->add("e/icons/enlightenment/gradient_dd"); strings[1019] = str->add("e/icons/enlightenment/gradient_rad"); strings[1020] = str->add("e/icons/enlightenment/advanced"); strings[1021] = str->add("e/icons/enlightenment/behavior"); strings[1022] = str->add("e/icons/enlightenment/appearance"); strings[1023] = str->add("e/icons/enlightenment/extensions"); strings[1024] = str->add("e/icons/enlightenment/imc"); strings[1025] = str->add("e/icons/enlightenment/file_icons"); strings[1026] = str->add("e/icons/enlightenment/menu_settings"); strings[1027] = str->add("e/icons/enlightenment/ibar_applications"); strings[1028] = str->add("e/icons/enlightenment/restart_applications"); strings[1029] = str->add("e/icons/enlightenment/startup_applications"); strings[1030] = str->add("e/icons/enlightenment/power_management"); strings[1031] = str->add("e/icons/enlightenment/screensaver"); strings[1032] = str->add("e/icons/enlightenment/window_remembers"); strings[1033] = str->add("e/pointer/enlightenment/default/color"); strings[1034] = str->add("e/pointer/enlightenment/default/mono"); strings[1035] = str->add("e/widgets/about/main"); strings[1036] = str->add("e/theme/about"); strings[1037] = str->add("e/widgets/entry"); strings[1038] = str->add("e/widgets/entry/text"); strings[1039] = str->add("e/widgets/entry/cursor"); strings[1040] = str->add("e/widgets/entry/selection"); strings[1041] = str->add("e/fileman/default/window/main"); strings[1042] = str->add("e/fileman/default/scrollframe"); strings[1043] = str->add("e/fileman/default/list/variable"); strings[1044] = str->add("e/fileman/default/list_odd/variable"); strings[1045] = str->add("e/fileman/default/list/fixed"); strings[1046] = str->add("e/fileman/default/list_odd/fixed"); strings[1047] = str->add("e/fileman/default/icon/fixed"); strings[1048] = str->add("e/fileman/default/icon/variable"); strings[1049] = str->add("e/fileman/default/overlay"); strings[1050] = str->add("e/fileman/default/list/drop_between"); strings[1051] = str->add("e/fileman/default/list/drop_in"); strings[1052] = str->add("e/fileman/desktop/scrollframe"); strings[1053] = str->add("e/fileman/desktop/icon/fixed"); strings[1054] = str->add("e/fileman/desktop/icon/variable"); strings[1055] = str->add("e/fileman/desktop/overlay"); strings[1056] = str->add("e/fileman/desktop/list/drop_between"); strings[1057] = str->add("e/fileman/desktop/list/drop_in"); strings[1058] = str->add("e/fileman/default/rubberband"); strings[1059] = str->add("e/icons/fileman/folder"); strings[1060] = str->add("e/icons/fileman/file"); strings[1061] = str->add("e/icons/fileman/home"); strings[1062] = str->add("e/icons/fileman/desktop"); strings[1063] = str->add("e/icons/fileman/hdd"); strings[1064] = str->add("e/icons/fileman/hd"); strings[1065] = str->add("e/icons/fileman/mime/application/pdf"); strings[1066] = str->add("e/icons/fileman/mime/text/x-csrc"); strings[1067] = str->add("e/icons/fileman/mime/text/x-chdr"); strings[1068] = str->add("e/icons/fileman/mime/application/x-object"); strings[1069] = str->add("e/icons/fileman/mime/application/x-shellscript"); strings[1070] = str->add("e/icons/fileman/mime/image/png"); strings[1071] = str->add("e/icons/fileman/mime/image/jpeg"); strings[1072] = str->add("e/icons/fileman/mime/video/x-msvideo"); strings[1073] = str->add("e/icons/fileman/mime/audio/mpeg"); strings[1074] = str->add("e/icons/fileman/mime/application/x-xcf"); strings[1075] = str->add("e/icons/fileman/mime/text/x-c++src"); strings[1076] = str->add("e/icons/fileman/mime/text/x-csharp"); strings[1077] = str->add("e/icons/fileman/mime/text/x-patch"); strings[1078] = str->add("e/icons/fileman/mime/application/msword"); strings[1079] = str->add("e/icons/fileman/mime/application/ogg"); strings[1080] = str->add("e/icons/fileman/mime/text/plain"); strings[1081] = str->add("e/icons/fileman/mime/application/x-bzip"); strings[1082] = str->add("e/icons/fileman/mime/application/x-deb"); strings[1083] = str->add("e/icons/fileman/mime/application/x-font-ttf"); strings[1084] = str->add("e/icons/fileman/mime/application/x-font-pcf"); strings[1085] = str->add("e/icons/fileman/mime/application/x-font-bdf"); strings[1086] = str->add("e/icons/fileman/mime/text/css"); strings[1087] = str->add("e/icons/fileman/mime/text/html"); strings[1087] = str->add(strings[1087]); strings[1088] = str->add("e/icons/fileman/mime/application/zip"); strings[1089] = str->add("e/icons/fileman/mime/application/x-gzip"); strings[1090] = str->add("e/icons/fileman/mime/application/x-bzip-compressed-tar"); strings[1091] = str->add("e/icons/fileman/mime/application/x-bzip2-compressed-tar"); strings[1092] = str->add("e/icons/fileman/mime/application/x-compressed-tar"); strings[1093] = str->add("e/icons/fileman/mime/application/x-tar"); strings[1094] = str->add("e/icons/fileman/mime/application/x-rar"); strings[1095] = str->add("e/icons/fileman/mime/video/mpeg"); strings[1096] = str->add("e/icons/fileman/mime/video"); strings[1097] = str->add("e/icons/fileman/mime/text"); strings[1098] = str->add("e/icons/fileman/mime/image"); strings[1099] = str->add("e/icons/fileman/mime/audio"); strings[1100] = str->add("e/fileman/default/button/open"); strings[1101] = str->add("e/fileman/default/button/copy"); strings[1102] = str->add("e/fileman/default/button/cut"); strings[1103] = str->add("e/fileman/default/button/paste"); strings[1104] = str->add("e/fileman/default/button/delete"); strings[1105] = str->add("e/fileman/default/button/rename"); strings[1106] = str->add("e/fileman/default/button/properties"); strings[1107] = str->add("e/fileman/default/button/arrange_name"); strings[1108] = str->add("e/fileman/default/button/arrange"); strings[1109] = str->add("e/fileman/default/button/arrange_time"); strings[1110] = str->add("e/fileman/default/button/new"); strings[1111] = str->add("e/fileman/default/button/new_dir"); strings[1112] = str->add("e/fileman/default/button/refresh"); strings[1113] = str->add("e/fileman/default/button/view_details"); strings[1114] = str->add("e/fileman/default/button/view_name"); strings[1115] = str->add("e/fileman/default/button/view"); strings[1116] = str->add("e/fileman/default/button/select"); strings[1117] = str->add("e/widgets/fileselector/main"); strings[1118] = str->add("e/widgets/check"); strings[1119] = str->add("e/widgets/check_icon"); strings[1120] = str->add("e/widgets/radio"); strings[1121] = str->add("e/widgets/radio_icon"); strings[1122] = str->add("e/widgets/frame"); strings[1123] = str->add("e/widgets/button"); strings[1124] = str->add("e/widgets/label"); strings[1125] = str->add("e/widgets/scrollframe"); strings[1126] = str->add("e/widgets/ilist"); strings[1127] = str->add("e/widgets/ilist_odd"); strings[1128] = str->add("e/widgets/ilist_header"); strings[1129] = str->add("e/widgets/tlist"); strings[1130] = str->add("e/widgets/tlist_odd"); strings[1131] = str->add("e/widgets/slider_vertical"); strings[1132] = str->add("e/widgets/slider_horizontal"); strings[1133] = str->add("e/widgets/exebuf/main"); strings[1134] = str->add("e/widgets/exebuf/item"); strings[1135] = str->add("e/desklock/background"); strings[1136] = str->add("e/desklock/login_box"); strings[1137] = str->add("e/widgets/textblock"); strings[1138] = str->add("e/shelf/default/base"); strings[1139] = str->add("e/shelf/default/inset"); strings[1140] = str->add("e/shelf/default/plain"); strings[1141] = str->add("e/shelf/alternate/base"); strings[1142] = str->add("e/shelf/alternate/inset"); strings[1143] = str->add("e/shelf/alternate/plain"); strings[1144] = str->add("e/shelf/invisible/base"); strings[1145] = str->add("e/shelf/invisible/inset"); strings[1146] = str->add("e/shelf/invisible/plain"); strings[1147] = str->add("e/widgets/preview"); strings[1148] = str->add("e/widgets/cslider"); strings[1149] = str->add("e/widgets/spectrum"); strings[1150] = str->add("e/widgets/color_well"); strings[1151] = str->add("e/sys/logout"); strings[1152] = str->add("e/sys/halt"); strings[1153] = str->add("e/sys/reboot"); strings[1154] = str->add("e/sys/suspend"); strings[1155] = str->add("e/sys/hibernate"); strings[1156] = str->add("e/widgets/deskpreview/desk"); strings[1157] = str->add("e/widgets/fontpreview"); strings[1158] = str->add("e/wizard/extra"); strings[1159] = str->add("e/wizard/main"); strings[1160] = str->add("e/toolbar/default/base"); strings[1161] = str->add("e/widgets/slidesel"); strings[1162] = str->add("e/modules/mixer/main"); strings[1163] = str->add("e/modules/connman/main"); strings[1164] = str->add("e/modules/connman/network"); strings[1165] = str->add("e/widgets/gradpreview"); str->del(strings[865]); str->del(strings[866]); str->del(strings[867]); str->del(strings[868]); str->del(strings[869]); str->del(strings[870]); str->del(strings[871]); str->del(strings[872]); str->del(strings[873]); str->del(strings[874]); str->del(strings[875]); str->del(strings[876]); str->del(strings[877]); str->del(strings[878]); str->del(strings[879]); str->del(strings[880]); str->del(strings[881]); str->del(strings[882]); str->del(strings[883]); str->del(strings[884]); str->del(strings[885]); str->del(strings[886]); str->del(strings[887]); str->del(strings[888]); str->del(strings[889]); str->del(strings[890]); str->del(strings[891]); str->del(strings[892]); str->del(strings[893]); str->del(strings[894]); str->del(strings[895]); str->del(strings[896]); str->del(strings[897]); str->del(strings[898]); str->del(strings[899]); str->del(strings[900]); str->del(strings[901]); str->del(strings[902]); str->del(strings[903]); str->del(strings[904]); str->del(strings[905]); str->del(strings[906]); str->del(strings[907]); str->del(strings[908]); str->del(strings[909]); str->del(strings[910]); str->del(strings[911]); str->del(strings[912]); str->del(strings[913]); str->del(strings[914]); str->del(strings[915]); str->del(strings[916]); str->del(strings[917]); str->del(strings[918]); str->del(strings[919]); str->del(strings[920]); str->del(strings[921]); str->del(strings[922]); str->del(strings[923]); str->del(strings[924]); str->del(strings[925]); str->del(strings[926]); str->del(strings[927]); str->del(strings[928]); str->del(strings[929]); str->del(strings[930]); str->del(strings[931]); str->del(strings[932]); str->del(strings[933]); str->del(strings[934]); str->del(strings[935]); str->del(strings[936]); str->del(strings[937]); str->del(strings[938]); str->del(strings[939]); str->del(strings[940]); str->del(strings[941]); str->del(strings[942]); str->del(strings[943]); str->del(strings[944]); str->del(strings[945]); str->del(strings[946]); str->del(strings[947]); str->del(strings[948]); str->del(strings[949]); str->del(strings[950]); str->del(strings[951]); str->del(strings[952]); str->del(strings[953]); str->del(strings[954]); str->del(strings[955]); str->del(strings[956]); str->del(strings[957]); str->del(strings[958]); str->del(strings[959]); str->del(strings[960]); str->del(strings[961]); str->del(strings[962]); str->del(strings[963]); str->del(strings[964]); str->del(strings[965]); str->del(strings[966]); str->del(strings[967]); str->del(strings[968]); str->del(strings[969]); str->del(strings[970]); str->del(strings[971]); str->del(strings[972]); str->del(strings[973]); str->del(strings[974]); str->del(strings[975]); str->del(strings[976]); str->del(strings[977]); str->del(strings[978]); str->del(strings[979]); str->del(strings[980]); str->del(strings[981]); str->del(strings[982]); str->del(strings[983]); str->del(strings[984]); str->del(strings[985]); str->del(strings[986]); str->del(strings[987]); str->del(strings[988]); str->del(strings[989]); str->del(strings[990]); str->del(strings[991]); str->del(strings[992]); str->del(strings[993]); str->del(strings[994]); str->del(strings[995]); str->del(strings[996]); str->del(strings[997]); str->del(strings[998]); str->del(strings[999]); str->del(strings[1000]); str->del(strings[1001]); str->del(strings[1002]); str->del(strings[1003]); str->del(strings[1004]); str->del(strings[1005]); str->del(strings[1006]); str->del(strings[1007]); str->del(strings[1008]); str->del(strings[1009]); str->del(strings[1010]); str->del(strings[1011]); str->del(strings[1012]); str->del(strings[1013]); str->del(strings[1014]); str->del(strings[1015]); str->del(strings[1016]); str->del(strings[1017]); str->del(strings[1018]); str->del(strings[1019]); str->del(strings[1020]); str->del(strings[1021]); str->del(strings[1022]); str->del(strings[1023]); str->del(strings[1024]); str->del(strings[1025]); str->del(strings[1026]); str->del(strings[1027]); str->del(strings[1028]); str->del(strings[1029]); str->del(strings[1030]); str->del(strings[1031]); str->del(strings[1032]); str->del(strings[1033]); str->del(strings[1034]); str->del(strings[1035]); str->del(strings[1036]); str->del(strings[1037]); str->del(strings[1038]); str->del(strings[1039]); str->del(strings[1040]); str->del(strings[1041]); str->del(strings[1042]); str->del(strings[1043]); str->del(strings[1044]); str->del(strings[1045]); str->del(strings[1046]); str->del(strings[1047]); str->del(strings[1048]); str->del(strings[1049]); str->del(strings[1050]); str->del(strings[1051]); str->del(strings[1052]); str->del(strings[1053]); str->del(strings[1054]); str->del(strings[1055]); str->del(strings[1056]); str->del(strings[1057]); str->del(strings[1058]); str->del(strings[1059]); str->del(strings[1060]); str->del(strings[1061]); str->del(strings[1062]); str->del(strings[1063]); str->del(strings[1064]); str->del(strings[1065]); str->del(strings[1066]); str->del(strings[1067]); str->del(strings[1068]); str->del(strings[1069]); str->del(strings[1070]); str->del(strings[1071]); str->del(strings[1072]); str->del(strings[1073]); str->del(strings[1074]); str->del(strings[1075]); str->del(strings[1076]); str->del(strings[1077]); str->del(strings[1078]); str->del(strings[1079]); str->del(strings[1080]); str->del(strings[1081]); str->del(strings[1082]); str->del(strings[1083]); str->del(strings[1084]); str->del(strings[1085]); str->del(strings[1086]); str->del(strings[1087]); str->del(strings[1087]); str->del(strings[1088]); str->del(strings[1089]); str->del(strings[1090]); str->del(strings[1091]); str->del(strings[1092]); str->del(strings[1093]); str->del(strings[1094]); str->del(strings[1095]); str->del(strings[1096]); str->del(strings[1097]); str->del(strings[1098]); str->del(strings[1099]); str->del(strings[1100]); str->del(strings[1101]); str->del(strings[1102]); str->del(strings[1103]); str->del(strings[1104]); str->del(strings[1105]); str->del(strings[1106]); str->del(strings[1107]); str->del(strings[1108]); str->del(strings[1109]); str->del(strings[1110]); str->del(strings[1111]); str->del(strings[1112]); str->del(strings[1113]); str->del(strings[1114]); str->del(strings[1115]); str->del(strings[1116]); str->del(strings[1117]); str->del(strings[1118]); str->del(strings[1119]); str->del(strings[1120]); str->del(strings[1121]); str->del(strings[1122]); str->del(strings[1123]); str->del(strings[1124]); str->del(strings[1125]); str->del(strings[1126]); str->del(strings[1127]); str->del(strings[1128]); str->del(strings[1129]); str->del(strings[1130]); str->del(strings[1131]); str->del(strings[1132]); str->del(strings[1133]); str->del(strings[1134]); str->del(strings[1135]); str->del(strings[1136]); str->del(strings[1137]); str->del(strings[1138]); str->del(strings[1139]); str->del(strings[1140]); str->del(strings[1141]); str->del(strings[1142]); str->del(strings[1143]); str->del(strings[1144]); str->del(strings[1145]); str->del(strings[1146]); str->del(strings[1147]); str->del(strings[1148]); str->del(strings[1149]); str->del(strings[1150]); str->del(strings[1151]); str->del(strings[1152]); str->del(strings[1153]); str->del(strings[1154]); str->del(strings[1155]); str->del(strings[1156]); str->del(strings[1157]); str->del(strings[1158]); str->del(strings[1159]); str->del(strings[1160]); str->del(strings[1161]); str->del(strings[1162]); str->del(strings[1163]); str->del(strings[1164]); str->del(strings[1165]); strings[1166] = str->add("e/desktop/background"); strings[1167] = str->add("e/widgets/border/default/border"); strings[1168] = str->add("e/widgets/border/shaped/border"); strings[1169] = str->add("e/widgets/border/noresize/border"); strings[1170] = str->add("e/widgets/border/dialog/border"); strings[1171] = str->add("e/widgets/border/noresize_dialog/border"); strings[1172] = str->add("e/widgets/border/pixel/border"); strings[1173] = str->add("e/pointer/enlightenment/default/color"); strings[1174] = str->add("e/pointer/enlightenment/default/mono"); strings[1175] = str->add("e/widgets/menu/default/background"); strings[1176] = str->add("e/widgets/menu/default/separator"); strings[1177] = str->add("e/widgets/menu/default/item_bg"); strings[1178] = str->add("e/widgets/menu/default/icon"); strings[1179] = str->add("e/widgets/menu/default/label"); strings[1180] = str->add("e/widgets/menu/default/submenu"); strings[1181] = str->add("e/widgets/menu/default/check"); strings[1182] = str->add("e/widgets/menu/default/radio"); strings[1183] = str->add("e/shelf/default/base"); strings[1184] = str->add("e/shelf/default/inset"); strings[1185] = str->add("e/shelf/default/plain"); strings[1186] = str->add("e/shelf/invisible/base"); strings[1187] = str->add("e/shelf/invisible/inset"); strings[1188] = str->add("e/shelf/invisible/plain"); strings[1189] = str->add("e/shelf/alternate/base"); strings[1190] = str->add("e/shelf/alternate/inset"); strings[1191] = str->add("e/shelf/alternate/plain"); strings[1192] = str->add("e/modules/start/main"); strings[1193] = str->add("e/modules/pager/popup"); strings[1194] = str->add("e/modules/pager/desk"); strings[1195] = str->add("e/modules/pager/window"); strings[1196] = str->add("e/modules/battery/main"); strings[1197] = str->add("e/modules/temperature/main"); strings[1198] = str->add("e/modules/clock/main"); strings[1199] = str->add("e/modules/cpufreq/main"); strings[1200] = str->add("e/widgets/winlist/main"); strings[1201] = str->add("e/widgets/winlist/item"); strings[1202] = str->add("e/modules/mixer/main"); strings[1203] = str->add("e/sys/logout"); strings[1204] = str->add("e/widgets/dialog/main"); strings[1205] = str->add("e/widgets/dialog/text"); strings[1206] = str->add("e/widgets/configure/main"); strings[1207] = str->add("e/widgets/border/default/move"); strings[1208] = str->add("e/widgets/border/default/resize"); strings[1209] = str->add("e/transpreview/0"); strings[1210] = str->add("e/transpreview/1"); strings[1211] = str->add("e/transitions/crossfade"); strings[1212] = str->add("e/transitions/vswipe"); strings[1213] = str->add("e/widgets/check"); strings[1214] = str->add("e/widgets/check_icon"); strings[1215] = str->add("e/widgets/radio"); strings[1216] = str->add("e/widgets/radio_icon"); strings[1217] = str->add("e/widgets/button"); strings[1218] = str->add("e/widgets/scrollframe"); strings[1219] = str->add("e/widgets/ilist"); strings[1220] = str->add("e/widgets/ilist_odd"); strings[1221] = str->add("e/widgets/ilist_header"); strings[1222] = str->add("e/widgets/ilist_header_odd"); strings[1223] = str->add("e/widgets/entry"); strings[1224] = str->add("e/widgets/entry/text"); strings[1225] = str->add("e/widgets/entry/cursor"); strings[1226] = str->add("e/widgets/entry/selection"); strings[1227] = str->add("e/widgets/preview"); strings[1228] = str->add("e/widgets/deskpreview/desk"); strings[1229] = str->add("e/widgets/color_well"); strings[1230] = str->add("e/widgets/spectrum"); strings[1231] = str->add("e/widgets/cslider"); strings[1232] = str->add("e/widgets/slider_vertical"); strings[1233] = str->add("e/widgets/slider_horizontal"); strings[1234] = str->add("e/widgets/frame"); strings[1235] = str->add("e/widgets/label"); strings[1236] = str->add("e/widgets/fontpreview"); strings[1237] = str->add("e/widgets/textblock"); strings[1238] = str->add("e/widgets/menu/default/submenu_bg"); strings[1239] = str->add("e/sys/halt"); strings[1240] = str->add("e/sys/reboot"); strings[1241] = str->add("e/sys/suspend"); strings[1242] = str->add("e/sys/hibernate"); strings[1243] = str->add("e/widgets/gradpreview"); strings[61] = str->add(strings[61]); strings[1244] = str->add("invisible"); strings[1245] = str->add("alternate"); str->del(strings[1166]); str->del(strings[1167]); str->del(strings[1168]); str->del(strings[1169]); str->del(strings[1170]); str->del(strings[1171]); str->del(strings[1172]); str->del(strings[1173]); str->del(strings[1174]); str->del(strings[1175]); str->del(strings[1176]); str->del(strings[1177]); str->del(strings[1178]); str->del(strings[1179]); str->del(strings[1180]); str->del(strings[1181]); str->del(strings[1182]); str->del(strings[1183]); str->del(strings[1184]); str->del(strings[1185]); str->del(strings[1186]); str->del(strings[1187]); str->del(strings[1188]); str->del(strings[1189]); str->del(strings[1190]); str->del(strings[1191]); str->del(strings[1192]); str->del(strings[1193]); str->del(strings[1194]); str->del(strings[1195]); str->del(strings[1196]); str->del(strings[1197]); str->del(strings[1198]); str->del(strings[1199]); str->del(strings[1200]); str->del(strings[1201]); str->del(strings[1202]); str->del(strings[1203]); str->del(strings[1204]); str->del(strings[1205]); str->del(strings[1206]); str->del(strings[1207]); str->del(strings[1208]); str->del(strings[1209]); str->del(strings[1210]); str->del(strings[1211]); str->del(strings[1212]); str->del(strings[1213]); str->del(strings[1214]); str->del(strings[1215]); str->del(strings[1216]); str->del(strings[1217]); str->del(strings[1218]); str->del(strings[1219]); str->del(strings[1220]); str->del(strings[1221]); str->del(strings[1222]); str->del(strings[1223]); str->del(strings[1224]); str->del(strings[1225]); str->del(strings[1226]); str->del(strings[1227]); str->del(strings[1228]); str->del(strings[1229]); str->del(strings[1230]); str->del(strings[1231]); str->del(strings[1232]); str->del(strings[1233]); str->del(strings[1234]); str->del(strings[1235]); str->del(strings[1236]); str->del(strings[1237]); str->del(strings[1238]); str->del(strings[1239]); str->del(strings[1240]); str->del(strings[1241]); str->del(strings[1242]); str->del(strings[1243]); strings[1246] = str->add("e/desktop/background"); strings[1247] = str->add("e/modules/battery/main"); strings[1248] = str->add("e/modules/battery/popup"); strings[1249] = str->add("e/widgets/border/default/border"); strings[1250] = str->add("e/widgets/border/shaped/border"); strings[1251] = str->add("e/widgets/border/noresize/border"); strings[1252] = str->add("e/widgets/border/dialog/border"); strings[1253] = str->add("e/widgets/border/noresize_dialog/border"); strings[1254] = str->add("e/widgets/border/pixel/border"); strings[1255] = str->add("e/widgets/border/default/close"); strings[1256] = str->add("e/widgets/border/default/minimize"); strings[1257] = str->add("e/widgets/border/default/maximize"); strings[1258] = str->add("e/widgets/border/default/shade"); strings[1259] = str->add("e/widgets/border/default/stick"); strings[1260] = str->add("e/widgets/border/default/kill"); strings[1261] = str->add("e/widgets/border/default/locks"); strings[1262] = str->add("e/widgets/border/default/locks_user"); strings[1263] = str->add("e/widgets/border/default/locks_application"); strings[1264] = str->add("e/widgets/border/default/borderless"); strings[1265] = str->add("e/widgets/border/default/fullscreen"); strings[1266] = str->add("e/widgets/border/default/remember"); strings[1267] = str->add("e/widgets/border/default/skip_winlist"); strings[1268] = str->add("e/widgets/border/default/skip"); strings[1269] = str->add("e/widgets/border/default/skip_pager"); strings[1270] = str->add("e/widgets/border/default/sendto"); strings[1271] = str->add("e/widgets/border/default/stacking"); strings[1272] = str->add("e/widgets/border/default/stack_on_top"); strings[1273] = str->add("e/widgets/border/default/stack_normal"); strings[1274] = str->add("e/widgets/border/default/stack_below"); strings[1275] = str->add("e/widgets/border/default/properties"); strings[1276] = str->add("e/modules/clock/main"); strings[1277] = str->add("e/gadman/control"); strings[1278] = str->add("e/gadman/popup"); strings[1279] = str->add("e/gadman/full_bg"); strings[1280] = str->add("e/gadman/frame"); strings[1281] = str->add("e/modules/ibar/icon"); strings[1282] = str->add("e/modules/ibar/icon_overlay"); strings[1283] = str->add("e/modules/ibar/drop"); strings[1284] = str->add("e/modules/ibar/drop_overlay"); strings[1285] = str->add("e/widgets/menu/default/background"); strings[1286] = str->add("e/widgets/menu/default/separator"); strings[1287] = str->add("e/widgets/menu/default/item_bg"); strings[1288] = str->add("e/widgets/menu/default/submenu_bg"); strings[1289] = str->add("e/widgets/menu/default/check"); strings[1290] = str->add("e/widgets/menu/default/radio"); strings[1291] = str->add("e/widgets/menu/default/icon"); strings[1292] = str->add("e/widgets/menu/default/label"); strings[1293] = str->add("e/widgets/menu/default/submenu"); strings[1294] = str->add("e/modules/pager/popup"); strings[1295] = str->add("e/modules/pager/desk"); strings[1296] = str->add("e/modules/pager/window"); strings[1297] = str->add("e/widgets/border/default/resize"); strings[1298] = str->add("e/widgets/border/default/move"); strings[1299] = str->add("e/modules/temperature/main"); strings[1300] = str->add("e/error/main"); strings[1301] = str->add("e/modules/cpufreq/main"); strings[1302] = str->add("e/modules/ibox/icon"); strings[1303] = str->add("e/modules/ibox/icon_overlay"); strings[1304] = str->add("e/modules/ibox/drop"); strings[1305] = str->add("e/modules/ibox/drop_overlay"); strings[1306] = str->add("e/modules/start/main"); strings[1307] = str->add("e/widgets/winlist/main"); strings[1308] = str->add("e/widgets/winlist/item"); strings[1309] = str->add("e/transpreview/0"); strings[1310] = str->add("e/transpreview/1"); strings[1311] = str->add("e/transitions/crossfade"); strings[1312] = str->add("e/transitions/vswipe"); strings[1313] = str->add("e/widgets/dialog/main"); strings[1314] = str->add("e/widgets/dialog/text"); strings[1315] = str->add("e/widgets/configure/main"); strings[1316] = str->add("e/icons/enlightenment/e"); strings[1317] = str->add("e/icons/enlightenment/reset"); strings[1318] = str->add("e/icons/enlightenment/exit"); strings[1319] = str->add("e/icons/enlightenment/logout"); strings[1320] = str->add("e/icons/enlightenment/halt"); strings[1321] = str->add("e/icons/enlightenment/reboot"); strings[1322] = str->add("e/icons/enlightenment/suspend"); strings[1323] = str->add("e/icons/enlightenment/hibernate"); strings[1324] = str->add("e/icons/enlightenment/screen_setup"); strings[1325] = str->add("e/icons/enlightenment/themes"); strings[1326] = str->add("e/icons/enlightenment/colors"); strings[1327] = str->add("e/icons/enlightenment/windows"); strings[1328] = str->add("e/icons/enlightenment/lost_windows"); strings[1329] = str->add("e/icons/enlightenment/focus"); strings[1330] = str->add("e/icons/enlightenment/modules"); strings[1331] = str->add("e/icons/enlightenment/favorites"); strings[1332] = str->add("e/icons/enlightenment/desktops"); strings[1333] = str->add("e/icons/enlightenment/configuration"); strings[1334] = str->add("e/icons/enlightenment/intl"); strings[1335] = str->add("e/icons/enlightenment/system"); strings[1336] = str->add("e/icons/enlightenment/run"); strings[1337] = str->add("e/icons/enlightenment/directories"); strings[1338] = str->add("e/icons/enlightenment/fileman"); strings[1339] = str->add("e/icons/enlightenment/unknown"); strings[1340] = str->add("e/icons/widget/new_dialog"); strings[1341] = str->add("e/icons/widget/up_arrow"); strings[1342] = str->add("e/icons/widget/down_arrow"); strings[1343] = str->add("e/icons/widget/up_dir"); strings[1344] = str->add("e/icons/enlightenment/mouse"); strings[1345] = str->add("e/icons/enlightenment/mouse_left"); strings[1346] = str->add("e/icons/enlightenment/mouse_middle"); strings[1347] = str->add("e/icons/enlightenment/mouse_right"); strings[1348] = str->add("e/icons/enlightenment/mouse_extra"); strings[1349] = str->add("e/icons/enlightenment/mouse_wheel"); strings[1350] = str->add("e/icons/enlightenment/mouse_clean"); strings[1351] = str->add("e/icons/enlightenment/keys"); strings[1352] = str->add("e/icons/enlightenment/desklock"); strings[1353] = str->add("e/icons/enlightenment/desklock_menu"); strings[1354] = str->add("e/icons/enlightenment/regenerate_menus"); strings[1355] = str->add("e/icons/enlightenment/screen_resolution"); strings[1356] = str->add("e/icons/enlightenment/shelf"); strings[1357] = str->add("e/icons/enlightenment/fonts"); strings[1358] = str->add("e/icons/enlightenment/background"); strings[1359] = str->add("e/icons/enlightenment/icon_theme"); strings[1360] = str->add("e/icons/enlightenment/applications"); strings[1361] = str->add("e/icons/enlightenment/transitions"); strings[1362] = str->add("e/icons/enlightenment/performance"); strings[1363] = str->add("e/icons/enlightenment/startup"); strings[1364] = str->add("e/icons/enlightenment/winlist"); strings[1365] = str->add("e/icons/enlightenment/window_manipulation"); strings[1366] = str->add("e/icons/enlightenment/menus"); strings[1367] = str->add("e/icons/enlightenment/screen_normal"); strings[1368] = str->add("e/icons/enlightenment/screen_around"); strings[1369] = str->add("e/icons/enlightenment/screen_left"); strings[1370] = str->add("e/icons/enlightenment/screen_right"); strings[1371] = str->add("e/icons/enlightenment/screen_vflip"); strings[1372] = str->add("e/icons/enlightenment/screen_hflip"); strings[1373] = str->add("e/icons/enlightenment/shelf_position_bottom"); strings[1374] = str->add("e/icons/enlightenment/shelf_position_bottom_left"); strings[1375] = str->add("e/icons/enlightenment/shelf_position_bottom_right"); strings[1376] = str->add("e/icons/enlightenment/shelf_position_top"); strings[1377] = str->add("e/icons/enlightenment/shelf_position_top_left"); strings[1378] = str->add("e/icons/enlightenment/shelf_position_top_right"); strings[1379] = str->add("e/icons/enlightenment/shelf_position_left"); strings[1380] = str->add("e/icons/enlightenment/shelf_position_left_top"); strings[1381] = str->add("e/icons/enlightenment/shelf_position_left_bottom"); strings[1382] = str->add("e/icons/enlightenment/shelf_position_right"); strings[1383] = str->add("e/icons/enlightenment/shelf_position_right_top"); strings[1384] = str->add("e/icons/enlightenment/shelf_position_right_bottom"); strings[1385] = str->add("e/icons/enlightenment/shelf_bottom_desk"); strings[1386] = str->add("e/icons/enlightenment/shelf_custom"); strings[1387] = str->add("e/icons/enlightenment/shelf_dock"); strings[1388] = str->add("e/icons/enlightenment/shelf_menu_bar"); strings[1389] = str->add("e/icons/enlightenment/shelf_panel"); strings[1390] = str->add("e/icons/enlightenment/shelf_top_desk"); strings[1391] = str->add("e/icons/enlightenment/wallpaper_stretch"); strings[1392] = str->add("e/icons/enlightenment/wallpaper_tile"); strings[1393] = str->add("e/icons/enlightenment/wallpaper_center"); strings[1394] = str->add("e/icons/enlightenment/wallpaper_scale_aspect_in"); strings[1395] = str->add("e/icons/enlightenment/wallpaper_scale_aspect_out"); strings[1396] = str->add("e/icons/enlightenment/gradient_h"); strings[1397] = str->add("e/icons/enlightenment/gradient_v"); strings[1398] = str->add("e/icons/enlightenment/gradient_du"); strings[1399] = str->add("e/icons/enlightenment/gradient_dd"); strings[1400] = str->add("e/icons/enlightenment/gradient_rad"); strings[1401] = str->add("e/icons/enlightenment/advanced"); strings[1402] = str->add("e/icons/enlightenment/behavior"); strings[1403] = str->add("e/icons/enlightenment/appearance"); strings[1404] = str->add("e/icons/enlightenment/extensions"); strings[1405] = str->add("e/icons/enlightenment/imc"); strings[1406] = str->add("e/icons/enlightenment/file_icons"); strings[1407] = str->add("e/icons/enlightenment/menu_settings"); strings[1408] = str->add("e/icons/enlightenment/ibar_applications"); strings[1409] = str->add("e/icons/enlightenment/restart_applications"); strings[1410] = str->add("e/icons/enlightenment/startup_applications"); strings[1411] = str->add("e/icons/enlightenment/power_management"); strings[1412] = str->add("e/icons/enlightenment/screensaver"); strings[1413] = str->add("e/icons/enlightenment/window_remembers"); strings[1414] = str->add("e/pointer/enlightenment/default/color"); strings[1415] = str->add("e/pointer/enlightenment/default/mono"); strings[1416] = str->add("e/widgets/about/main"); strings[1417] = str->add("e/theme/about"); strings[1418] = str->add("e/widgets/entry"); strings[1419] = str->add("e/widgets/entry/text"); strings[1420] = str->add("e/widgets/entry/cursor"); strings[1421] = str->add("e/widgets/entry/selection"); strings[1422] = str->add("e/fileman/default/window/main"); strings[1423] = str->add("e/fileman/default/scrollframe"); strings[1424] = str->add("e/fileman/default/list/variable"); strings[1425] = str->add("e/fileman/default/list_odd/variable"); strings[1426] = str->add("e/fileman/default/list/fixed"); strings[1427] = str->add("e/fileman/default/list_odd/fixed"); strings[1428] = str->add("e/fileman/default/icon/fixed"); strings[1429] = str->add("e/fileman/default/icon/variable"); strings[1430] = str->add("e/fileman/default/overlay"); strings[1431] = str->add("e/fileman/default/list/drop_between"); strings[1432] = str->add("e/fileman/default/list/drop_in"); strings[1433] = str->add("e/fileman/desktop/scrollframe"); strings[1434] = str->add("e/fileman/desktop/icon/fixed"); strings[1435] = str->add("e/fileman/desktop/icon/variable"); strings[1436] = str->add("e/fileman/desktop/overlay"); strings[1437] = str->add("e/fileman/desktop/list/drop_between"); strings[1438] = str->add("e/fileman/desktop/list/drop_in"); strings[1439] = str->add("e/fileman/default/rubberband"); strings[1440] = str->add("e/icons/fileman/folder"); strings[1441] = str->add("e/icons/fileman/file"); strings[1442] = str->add("e/icons/fileman/home"); strings[1443] = str->add("e/icons/fileman/desktop"); strings[1444] = str->add("e/icons/fileman/hdd"); strings[1445] = str->add("e/icons/fileman/hd"); strings[1446] = str->add("e/icons/fileman/mime/application/pdf"); strings[1447] = str->add("e/icons/fileman/mime/text/x-csrc"); strings[1448] = str->add("e/icons/fileman/mime/text/x-chdr"); strings[1449] = str->add("e/icons/fileman/mime/application/x-object"); strings[1450] = str->add("e/icons/fileman/mime/application/x-shellscript"); strings[1451] = str->add("e/icons/fileman/mime/image/png"); strings[1452] = str->add("e/icons/fileman/mime/image/jpeg"); strings[1453] = str->add("e/icons/fileman/mime/video/x-msvideo"); strings[1454] = str->add("e/icons/fileman/mime/audio/mpeg"); strings[1455] = str->add("e/icons/fileman/mime/application/x-xcf"); strings[1456] = str->add("e/icons/fileman/mime/text/x-c++src"); strings[1457] = str->add("e/icons/fileman/mime/text/x-csharp"); strings[1458] = str->add("e/icons/fileman/mime/text/x-patch"); strings[1459] = str->add("e/icons/fileman/mime/application/msword"); strings[1460] = str->add("e/icons/fileman/mime/application/ogg"); strings[1461] = str->add("e/icons/fileman/mime/text/plain"); strings[1462] = str->add("e/icons/fileman/mime/application/x-bzip"); strings[1463] = str->add("e/icons/fileman/mime/application/x-deb"); strings[1464] = str->add("e/icons/fileman/mime/application/x-font-ttf"); strings[1465] = str->add("e/icons/fileman/mime/application/x-font-pcf"); strings[1466] = str->add("e/icons/fileman/mime/application/x-font-bdf"); strings[1467] = str->add("e/icons/fileman/mime/text/css"); strings[1468] = str->add("e/icons/fileman/mime/text/html"); strings[1468] = str->add(strings[1468]); strings[1469] = str->add("e/icons/fileman/mime/application/zip"); strings[1470] = str->add("e/icons/fileman/mime/application/x-gzip"); strings[1471] = str->add("e/icons/fileman/mime/application/x-bzip-compressed-tar"); strings[1472] = str->add("e/icons/fileman/mime/application/x-bzip2-compressed-tar"); strings[1473] = str->add("e/icons/fileman/mime/application/x-compressed-tar"); strings[1474] = str->add("e/icons/fileman/mime/application/x-tar"); strings[1475] = str->add("e/icons/fileman/mime/application/x-rar"); strings[1476] = str->add("e/icons/fileman/mime/video/mpeg"); strings[1477] = str->add("e/icons/fileman/mime/video"); strings[1478] = str->add("e/icons/fileman/mime/text"); strings[1479] = str->add("e/icons/fileman/mime/image"); strings[1480] = str->add("e/icons/fileman/mime/audio"); strings[1481] = str->add("e/fileman/default/button/open"); strings[1482] = str->add("e/fileman/default/button/copy"); strings[1483] = str->add("e/fileman/default/button/cut"); strings[1484] = str->add("e/fileman/default/button/paste"); strings[1485] = str->add("e/fileman/default/button/delete"); strings[1486] = str->add("e/fileman/default/button/rename"); strings[1487] = str->add("e/fileman/default/button/properties"); strings[1488] = str->add("e/fileman/default/button/arrange_name"); strings[1489] = str->add("e/fileman/default/button/arrange"); strings[1490] = str->add("e/fileman/default/button/arrange_time"); strings[1491] = str->add("e/fileman/default/button/new"); strings[1492] = str->add("e/fileman/default/button/new_dir"); strings[1493] = str->add("e/fileman/default/button/refresh"); strings[1494] = str->add("e/fileman/default/button/view_details"); strings[1495] = str->add("e/fileman/default/button/view_name"); strings[1496] = str->add("e/fileman/default/button/view"); strings[1497] = str->add("e/fileman/default/button/select"); strings[1498] = str->add("e/widgets/fileselector/main"); strings[1499] = str->add("e/widgets/check"); strings[1500] = str->add("e/widgets/check_icon"); strings[1501] = str->add("e/widgets/radio"); strings[1502] = str->add("e/widgets/radio_icon"); strings[1503] = str->add("e/widgets/frame"); strings[1504] = str->add("e/widgets/button"); strings[1505] = str->add("e/widgets/label"); strings[1506] = str->add("e/widgets/scrollframe"); strings[1507] = str->add("e/widgets/ilist"); strings[1508] = str->add("e/widgets/ilist_odd"); strings[1509] = str->add("e/widgets/ilist_header"); strings[1510] = str->add("e/widgets/tlist"); strings[1511] = str->add("e/widgets/tlist_odd"); strings[1512] = str->add("e/widgets/slider_vertical"); strings[1513] = str->add("e/widgets/slider_horizontal"); strings[1514] = str->add("e/widgets/exebuf/main"); strings[1515] = str->add("e/widgets/exebuf/item"); strings[1516] = str->add("e/desklock/background"); strings[1517] = str->add("e/desklock/login_box"); strings[1518] = str->add("e/widgets/textblock"); strings[1519] = str->add("e/shelf/default/base"); strings[1520] = str->add("e/shelf/default/inset"); strings[1521] = str->add("e/shelf/default/plain"); strings[1522] = str->add("e/shelf/alternate/base"); strings[1523] = str->add("e/shelf/alternate/inset"); strings[1524] = str->add("e/shelf/alternate/plain"); strings[1525] = str->add("e/shelf/invisible/base"); strings[1526] = str->add("e/shelf/invisible/inset"); strings[1527] = str->add("e/shelf/invisible/plain"); strings[1528] = str->add("e/widgets/preview"); strings[1529] = str->add("e/widgets/cslider"); strings[1530] = str->add("e/widgets/spectrum"); strings[1531] = str->add("e/widgets/color_well"); strings[1532] = str->add("e/sys/logout"); strings[1533] = str->add("e/sys/halt"); strings[1534] = str->add("e/sys/reboot"); strings[1535] = str->add("e/sys/suspend"); strings[1536] = str->add("e/sys/hibernate"); strings[1537] = str->add("e/widgets/deskpreview/desk"); strings[1538] = str->add("e/widgets/fontpreview"); strings[1539] = str->add("e/wizard/extra"); strings[1540] = str->add("e/wizard/main"); strings[1541] = str->add("e/toolbar/default/base"); strings[1542] = str->add("e/widgets/slidesel"); strings[1543] = str->add("e/modules/mixer/main"); strings[1544] = str->add("e/modules/connman/main"); strings[1545] = str->add("e/modules/connman/network"); strings[1546] = str->add("e/widgets/gradpreview"); str->del(strings[1246]); str->del(strings[1247]); str->del(strings[1248]); str->del(strings[1249]); str->del(strings[1250]); str->del(strings[1251]); str->del(strings[1252]); str->del(strings[1253]); str->del(strings[1254]); str->del(strings[1255]); str->del(strings[1256]); str->del(strings[1257]); str->del(strings[1258]); str->del(strings[1259]); str->del(strings[1260]); str->del(strings[1261]); str->del(strings[1262]); str->del(strings[1263]); str->del(strings[1264]); str->del(strings[1265]); str->del(strings[1266]); str->del(strings[1267]); str->del(strings[1268]); str->del(strings[1269]); str->del(strings[1270]); str->del(strings[1271]); str->del(strings[1272]); str->del(strings[1273]); str->del(strings[1274]); str->del(strings[1275]); str->del(strings[1276]); str->del(strings[1277]); str->del(strings[1278]); str->del(strings[1279]); str->del(strings[1280]); str->del(strings[1281]); str->del(strings[1282]); str->del(strings[1283]); str->del(strings[1284]); str->del(strings[1285]); str->del(strings[1286]); str->del(strings[1287]); str->del(strings[1288]); str->del(strings[1289]); str->del(strings[1290]); str->del(strings[1291]); str->del(strings[1292]); str->del(strings[1293]); str->del(strings[1294]); str->del(strings[1295]); str->del(strings[1296]); str->del(strings[1297]); str->del(strings[1298]); str->del(strings[1299]); str->del(strings[1300]); str->del(strings[1301]); str->del(strings[1302]); str->del(strings[1303]); str->del(strings[1304]); str->del(strings[1305]); str->del(strings[1306]); str->del(strings[1307]); str->del(strings[1308]); str->del(strings[1309]); str->del(strings[1310]); str->del(strings[1311]); str->del(strings[1312]); str->del(strings[1313]); str->del(strings[1314]); str->del(strings[1315]); str->del(strings[1316]); str->del(strings[1317]); str->del(strings[1318]); str->del(strings[1319]); str->del(strings[1320]); str->del(strings[1321]); str->del(strings[1322]); str->del(strings[1323]); str->del(strings[1324]); str->del(strings[1325]); str->del(strings[1326]); str->del(strings[1327]); str->del(strings[1328]); str->del(strings[1329]); str->del(strings[1330]); str->del(strings[1331]); str->del(strings[1332]); str->del(strings[1333]); str->del(strings[1334]); str->del(strings[1335]); str->del(strings[1336]); str->del(strings[1337]); str->del(strings[1338]); str->del(strings[1339]); str->del(strings[1340]); str->del(strings[1341]); str->del(strings[1342]); str->del(strings[1343]); str->del(strings[1344]); str->del(strings[1345]); str->del(strings[1346]); str->del(strings[1347]); str->del(strings[1348]); str->del(strings[1349]); str->del(strings[1350]); str->del(strings[1351]); str->del(strings[1352]); str->del(strings[1353]); str->del(strings[1354]); str->del(strings[1355]); str->del(strings[1356]); str->del(strings[1357]); str->del(strings[1358]); str->del(strings[1359]); str->del(strings[1360]); str->del(strings[1361]); str->del(strings[1362]); str->del(strings[1363]); str->del(strings[1364]); str->del(strings[1365]); str->del(strings[1366]); str->del(strings[1367]); str->del(strings[1368]); str->del(strings[1369]); str->del(strings[1370]); str->del(strings[1371]); str->del(strings[1372]); str->del(strings[1373]); str->del(strings[1374]); str->del(strings[1375]); str->del(strings[1376]); str->del(strings[1377]); str->del(strings[1378]); str->del(strings[1379]); str->del(strings[1380]); str->del(strings[1381]); str->del(strings[1382]); str->del(strings[1383]); str->del(strings[1384]); str->del(strings[1385]); str->del(strings[1386]); str->del(strings[1387]); str->del(strings[1388]); str->del(strings[1389]); str->del(strings[1390]); str->del(strings[1391]); str->del(strings[1392]); str->del(strings[1393]); str->del(strings[1394]); str->del(strings[1395]); str->del(strings[1396]); str->del(strings[1397]); str->del(strings[1398]); str->del(strings[1399]); str->del(strings[1400]); str->del(strings[1401]); str->del(strings[1402]); str->del(strings[1403]); str->del(strings[1404]); str->del(strings[1405]); str->del(strings[1406]); str->del(strings[1407]); str->del(strings[1408]); str->del(strings[1409]); str->del(strings[1410]); str->del(strings[1411]); str->del(strings[1412]); str->del(strings[1413]); str->del(strings[1414]); str->del(strings[1415]); str->del(strings[1416]); str->del(strings[1417]); str->del(strings[1418]); str->del(strings[1419]); str->del(strings[1420]); str->del(strings[1421]); str->del(strings[1422]); str->del(strings[1423]); str->del(strings[1424]); str->del(strings[1425]); str->del(strings[1426]); str->del(strings[1427]); str->del(strings[1428]); str->del(strings[1429]); str->del(strings[1430]); str->del(strings[1431]); str->del(strings[1432]); str->del(strings[1433]); str->del(strings[1434]); str->del(strings[1435]); str->del(strings[1436]); str->del(strings[1437]); str->del(strings[1438]); str->del(strings[1439]); str->del(strings[1440]); str->del(strings[1441]); str->del(strings[1442]); str->del(strings[1443]); str->del(strings[1444]); str->del(strings[1445]); str->del(strings[1446]); str->del(strings[1447]); str->del(strings[1448]); str->del(strings[1449]); str->del(strings[1450]); str->del(strings[1451]); str->del(strings[1452]); str->del(strings[1453]); str->del(strings[1454]); str->del(strings[1455]); str->del(strings[1456]); str->del(strings[1457]); str->del(strings[1458]); str->del(strings[1459]); str->del(strings[1460]); str->del(strings[1461]); str->del(strings[1462]); str->del(strings[1463]); str->del(strings[1464]); str->del(strings[1465]); str->del(strings[1466]); str->del(strings[1467]); str->del(strings[1468]); str->del(strings[1468]); str->del(strings[1469]); str->del(strings[1470]); str->del(strings[1471]); str->del(strings[1472]); str->del(strings[1473]); str->del(strings[1474]); str->del(strings[1475]); str->del(strings[1476]); str->del(strings[1477]); str->del(strings[1478]); str->del(strings[1479]); str->del(strings[1480]); str->del(strings[1481]); str->del(strings[1482]); str->del(strings[1483]); str->del(strings[1484]); str->del(strings[1485]); str->del(strings[1486]); str->del(strings[1487]); str->del(strings[1488]); str->del(strings[1489]); str->del(strings[1490]); str->del(strings[1491]); str->del(strings[1492]); str->del(strings[1493]); str->del(strings[1494]); str->del(strings[1495]); str->del(strings[1496]); str->del(strings[1497]); str->del(strings[1498]); str->del(strings[1499]); str->del(strings[1500]); str->del(strings[1501]); str->del(strings[1502]); str->del(strings[1503]); str->del(strings[1504]); str->del(strings[1505]); str->del(strings[1506]); str->del(strings[1507]); str->del(strings[1508]); str->del(strings[1509]); str->del(strings[1510]); str->del(strings[1511]); str->del(strings[1512]); str->del(strings[1513]); str->del(strings[1514]); str->del(strings[1515]); str->del(strings[1516]); str->del(strings[1517]); str->del(strings[1518]); str->del(strings[1519]); str->del(strings[1520]); str->del(strings[1521]); str->del(strings[1522]); str->del(strings[1523]); str->del(strings[1524]); str->del(strings[1525]); str->del(strings[1526]); str->del(strings[1527]); str->del(strings[1528]); str->del(strings[1529]); str->del(strings[1530]); str->del(strings[1531]); str->del(strings[1532]); str->del(strings[1533]); str->del(strings[1534]); str->del(strings[1535]); str->del(strings[1536]); str->del(strings[1537]); str->del(strings[1538]); str->del(strings[1539]); str->del(strings[1540]); str->del(strings[1541]); str->del(strings[1542]); str->del(strings[1543]); str->del(strings[1544]); str->del(strings[1545]); str->del(strings[1546]); strings[1547] = str->add("/usr/devel/share/enlightenment/data/images/test.png"); strings[1548] = str->add("/usr/devel/share/enlightenment/data/images/test.png//://(nil)"); strings[1547] = str->add(strings[1547]); str->del(strings[1547]); strings[1549] = str->add("/usr/devel/share/enlightenment/data/images/test.jpg"); strings[1550] = str->add("/usr/devel/share/enlightenment/data/images/test.jpg//://(nil)"); strings[1549] = str->add(strings[1549]); str->del(strings[1549]); strings[1551] = str->add("/usr/devel/share/enlightenment/data/images/test.edj"); strings[1552] = str->add("images/0"); strings[1553] = str->add("/usr/devel/share/enlightenment/data/images/test.edj//://images/0"); strings[1551] = str->add(strings[1551]); strings[1552] = str->add(strings[1552]); str->del(strings[1551]); str->del(strings[1552]); strings[373] = str->add(strings[373]); strings[374] = str->add(strings[374]); str->del(strings[373]); str->del(strings[374]); strings[1554] = str->add("en"); strings[1555] = str->add("US"); strings[1556] = str->add("UTF-8"); strings[1554] = str->add(strings[1554]); strings[1557] = str->add("AU"); strings[1558] = str->add("utf8"); str->del(strings[1554]); str->del(strings[1557]); str->del(strings[1558]); strings[1554] = str->add(strings[1554]); strings[1559] = str->add("BW"); strings[1560] = str->add("utf8"); str->del(strings[1554]); str->del(strings[1559]); str->del(strings[1560]); strings[1554] = str->add(strings[1554]); strings[1561] = str->add("CA"); strings[1562] = str->add("utf8"); str->del(strings[1554]); str->del(strings[1561]); str->del(strings[1562]); strings[1554] = str->add(strings[1554]); strings[1563] = str->add("DK"); strings[1564] = str->add("utf8"); str->del(strings[1554]); str->del(strings[1563]); str->del(strings[1564]); strings[1554] = str->add(strings[1554]); strings[1565] = str->add("GB"); strings[1566] = str->add("utf8"); str->del(strings[1554]); str->del(strings[1565]); str->del(strings[1566]); strings[1554] = str->add(strings[1554]); strings[1567] = str->add("HK"); strings[1568] = str->add("utf8"); str->del(strings[1554]); str->del(strings[1567]); str->del(strings[1568]); strings[1554] = str->add(strings[1554]); strings[1569] = str->add("IE"); strings[1570] = str->add("utf8"); str->del(strings[1554]); str->del(strings[1569]); str->del(strings[1570]); strings[1554] = str->add(strings[1554]); strings[1571] = str->add("IN"); str->del(strings[1554]); str->del(strings[1571]); strings[1554] = str->add(strings[1554]); strings[1572] = str->add("NZ"); strings[1573] = str->add("utf8"); str->del(strings[1554]); str->del(strings[1572]); str->del(strings[1573]); strings[1554] = str->add(strings[1554]); strings[1574] = str->add("PH"); strings[1575] = str->add("utf8"); str->del(strings[1554]); str->del(strings[1574]); str->del(strings[1575]); strings[1554] = str->add(strings[1554]); strings[1576] = str->add("SG"); strings[1577] = str->add("utf8"); str->del(strings[1554]); str->del(strings[1576]); str->del(strings[1577]); strings[1554] = str->add(strings[1554]); strings[1555] = str->add(strings[1555]); strings[1578] = str->add("utf8"); str->del(strings[1554]); str->del(strings[1555]); str->del(strings[1578]); str->del(strings[1554]); str->del(strings[1555]); str->del(strings[1556]); strings[1579] = str->add("en"); strings[1580] = str->add("US"); strings[1581] = str->add("UTF-8"); str->del(strings[1579]); str->del(strings[1580]); str->del(strings[1581]); strings[373] = str->add(strings[373]); strings[374] = str->add(strings[374]); str->del(strings[373]); str->del(strings[374]); strings[1582] = str->add("en"); strings[1583] = str->add("US"); strings[1584] = str->add("UTF-8"); str->del(strings[1582]); str->del(strings[1583]); str->del(strings[1584]); strings[1585] = str->add("Window : Actions"); strings[1586] = str->add("Move"); strings[67] = str->add(strings[67]); strings[1587] = str->add("Resize"); strings[69] = str->add(strings[69]); strings[127] = str->add(strings[127]); strings[1588] = str->add("Window Menu"); strings[71] = str->add(strings[71]); strings[1589] = str->add("Raise"); strings[81] = str->add(strings[81]); strings[1590] = str->add("Lower"); strings[82] = str->add(strings[82]); strings[1591] = str->add("Close"); strings[84] = str->add(strings[84]); strings[1592] = str->add("Kill"); strings[86] = str->add(strings[86]); strings[1593] = str->add("Window : State"); strings[1594] = str->add("Sticky Mode Toggle"); strings[89] = str->add(strings[89]); strings[1595] = str->add("Iconic Mode Toggle"); strings[91] = str->add(strings[91]); strings[1596] = str->add("Fullscreen Mode Toggle"); strings[1597] = str->add("window_fullscreen_toggle"); strings[1598] = str->add("Maximize"); strings[93] = str->add(strings[93]); strings[1599] = str->add("Maximize Vertically"); strings[93] = str->add(strings[93]); strings[95] = str->add(strings[95]); strings[1600] = str->add("Maximize Horizontally"); strings[93] = str->add(strings[93]); strings[96] = str->add(strings[96]); strings[1601] = str->add("Maximize Fullscreen"); strings[93] = str->add(strings[93]); strings[1602] = str->add("fullscreen"); strings[1603] = str->add("Maximize Mode \"Smart\""); strings[93] = str->add(strings[93]); strings[162] = str->add(strings[162]); strings[1604] = str->add("Maximize Mode \"Expand\""); strings[93] = str->add(strings[93]); strings[163] = str->add(strings[163]); strings[1605] = str->add("Maximize Mode \"Fill\""); strings[93] = str->add(strings[93]); strings[1606] = str->add("fill"); strings[1607] = str->add("Shade Up Mode Toggle"); strings[98] = str->add(strings[98]); strings[147] = str->add(strings[147]); strings[1608] = str->add("Shade Down Mode Toggle"); strings[98] = str->add(strings[98]); strings[1609] = str->add("down"); strings[1610] = str->add("Shade Left Mode Toggle"); strings[98] = str->add(strings[98]); strings[1611] = str->add("left"); strings[1612] = str->add("Shade Right Mode Toggle"); strings[98] = str->add(strings[98]); strings[1613] = str->add("right"); strings[1614] = str->add("Shade Mode Toggle"); strings[98] = str->add(strings[98]); strings[1615] = str->add("Toggle Borderless State"); strings[1616] = str->add("window_borderless_toggle"); strings[1617] = str->add("Toggle Pinned State"); strings[1618] = str->add("window_pinned_toggle"); strings[1619] = str->add("Desktop"); strings[1620] = str->add("Flip Desktop Left"); strings[73] = str->add(strings[73]); strings[74] = str->add(strings[74]); strings[1621] = str->add("Flip Desktop Right"); strings[73] = str->add(strings[73]); strings[76] = str->add(strings[76]); strings[1622] = str->add("Flip Desktop Up"); strings[73] = str->add(strings[73]); strings[78] = str->add(strings[78]); strings[1623] = str->add("Flip Desktop Down"); strings[73] = str->add(strings[73]); strings[80] = str->add(strings[80]); strings[1624] = str->add("Flip Desktop By..."); strings[73] = str->add(strings[73]); strings[1625] = str->add("syntax: X-offset Y-offset, example: -1 0"); strings[1626] = str->add("Show The Desktop"); strings[142] = str->add(strings[142]); strings[1627] = str->add("Flip Desktop To..."); strings[1628] = str->add("desk_flip_to"); strings[1629] = str->add("syntax: X Y, example: 1 2"); strings[1630] = str->add("Flip Desktop Linearly..."); strings[99] = str->add(strings[99]); strings[1631] = str->add("syntax: N-offset, example: -2"); strings[1632] = str->add("Switch To Desktop 0"); strings[103] = str->add(strings[103]); strings[104] = str->add(strings[104]); strings[1633] = str->add("Switch To Desktop 1"); strings[103] = str->add(strings[103]); strings[101] = str->add(strings[101]); strings[1634] = str->add("Switch To Desktop 2"); strings[103] = str->add(strings[103]); strings[107] = str->add(strings[107]); strings[1635] = str->add("Switch To Desktop 3"); strings[103] = str->add(strings[103]); strings[109] = str->add(strings[109]); strings[1636] = str->add("Switch To Desktop 4"); strings[103] = str->add(strings[103]); strings[111] = str->add(strings[111]); strings[1637] = str->add("Switch To Desktop 5"); strings[103] = str->add(strings[103]); strings[113] = str->add(strings[113]); strings[1638] = str->add("Switch To Desktop 6"); strings[103] = str->add(strings[103]); strings[115] = str->add(strings[115]); strings[1639] = str->add("Switch To Desktop 7"); strings[103] = str->add(strings[103]); strings[117] = str->add(strings[117]); strings[1640] = str->add("Switch To Desktop 8"); strings[103] = str->add(strings[103]); strings[119] = str->add(strings[119]); strings[1641] = str->add("Switch To Desktop 9"); strings[103] = str->add(strings[103]); strings[120] = str->add(strings[120]); strings[1642] = str->add("Switch To Desktop 10"); strings[103] = str->add(strings[103]); strings[122] = str->add(strings[122]); strings[1643] = str->add("Switch To Desktop 11"); strings[103] = str->add(strings[103]); strings[124] = str->add(strings[124]); strings[1644] = str->add("Switch To Desktop..."); strings[103] = str->add(strings[103]); strings[1645] = str->add("syntax: N, example: 1"); strings[1646] = str->add("Flip Desktop Left (All Screens)"); strings[1647] = str->add("desk_flip_by_all"); strings[74] = str->add(strings[74]); strings[1648] = str->add("Flip Desktop Right (All Screens)"); strings[1647] = str->add(strings[1647]); strings[76] = str->add(strings[76]); strings[1649] = str->add("Flip Desktop Up (All Screens)"); strings[1647] = str->add(strings[1647]); strings[78] = str->add(strings[78]); strings[1650] = str->add("Flip Desktop Down (All Screens)"); strings[1647] = str->add(strings[1647]); strings[80] = str->add(strings[80]); strings[1651] = str->add("Flip Desktop By... (All Screens)"); strings[1647] = str->add(strings[1647]); strings[1625] = str->add(strings[1625]); strings[1652] = str->add("Flip Desktop To... (All Screens)"); strings[1653] = str->add("desk_flip_to_all"); strings[1629] = str->add(strings[1629]); strings[1654] = str->add("Flip Desktop Linearly... (All Screens)"); strings[1655] = str->add("desk_linear_flip_by_all"); strings[1631] = str->add(strings[1631]); strings[1656] = str->add("Switch To Desktop 0 (All Screens)"); strings[1657] = str->add("desk_linear_flip_to_all"); strings[104] = str->add(strings[104]); strings[1658] = str->add("Switch To Desktop 1 (All Screens)"); strings[1657] = str->add(strings[1657]); strings[101] = str->add(strings[101]); strings[1659] = str->add("Switch To Desktop 2 (All Screens)"); strings[1657] = str->add(strings[1657]); strings[107] = str->add(strings[107]); strings[1660] = str->add("Switch To Desktop 3 (All Screens)"); strings[1657] = str->add(strings[1657]); strings[109] = str->add(strings[109]); strings[1661] = str->add("Switch To Desktop 4 (All Screens)"); strings[1657] = str->add(strings[1657]); strings[111] = str->add(strings[111]); strings[1662] = str->add("Switch To Desktop 5 (All Screens)"); strings[1657] = str->add(strings[1657]); strings[113] = str->add(strings[113]); strings[1663] = str->add("Switch To Desktop 6 (All Screens)"); strings[1657] = str->add(strings[1657]); strings[115] = str->add(strings[115]); strings[1664] = str->add("Switch To Desktop 7 (All Screens)"); strings[1657] = str->add(strings[1657]); strings[117] = str->add(strings[117]); strings[1665] = str->add("Switch To Desktop 8 (All Screens)"); strings[1657] = str->add(strings[1657]); strings[119] = str->add(strings[119]); strings[1666] = str->add("Switch To Desktop 9 (All Screens)"); strings[1657] = str->add(strings[1657]); strings[120] = str->add(strings[120]); strings[1667] = str->add("Switch To Desktop 10 (All Screens)"); strings[1657] = str->add(strings[1657]); strings[122] = str->add(strings[122]); strings[1668] = str->add("Switch To Desktop 11 (All Screens)"); strings[1657] = str->add(strings[1657]); strings[124] = str->add(strings[124]); strings[1669] = str->add("Switch To Desktop... (All Screens)"); strings[1657] = str->add(strings[1657]); strings[1645] = str->add(strings[1645]); strings[1670] = str->add("Screen"); strings[1671] = str->add("Send Mouse To Screen 0"); strings[144] = str->add(strings[144]); strings[104] = str->add(strings[104]); strings[1672] = str->add("Send Mouse To Screen 1"); strings[144] = str->add(strings[144]); strings[101] = str->add(strings[101]); strings[1673] = str->add("Send Mouse To Screen..."); strings[144] = str->add(strings[144]); strings[1674] = str->add("syntax: N, example: 0"); strings[1675] = str->add("Send Mouse Forward 1 Screen"); strings[143] = str->add(strings[143]); strings[101] = str->add(strings[101]); strings[1676] = str->add("Send Mouse Back 1 Screen"); strings[143] = str->add(strings[143]); strings[100] = str->add(strings[100]); strings[1677] = str->add("Send Mouse Forward/Back Screens..."); strings[143] = str->add(strings[143]); strings[1631] = str->add(strings[1631]); strings[1678] = str->add("Move To..."); strings[1679] = str->add("window_move_to"); strings[1680] = str->add("syntax: [ ,-]X [ ,-]Y or * [ ,-]Y or [ , -]X *, example: -1 1"); strings[1681] = str->add("Move By..."); strings[1682] = str->add("window_move_by"); strings[1625] = str->add(strings[1625]); strings[1683] = str->add("Resize By..."); strings[1684] = str->add("window_resize_by"); strings[1685] = str->add("syntax: W H, example: 100 150"); strings[1686] = str->add("Push in Direction..."); strings[1687] = str->add("window_push"); strings[1688] = str->add("syntax: direction, example: up, down, left, right"); strings[1689] = str->add("Drag Icon..."); strings[168] = str->add(strings[168]); strings[1690] = str->add("Window : Moving"); strings[1691] = str->add("To Next Desktop"); strings[1692] = str->add("window_desk_move_by"); strings[76] = str->add(strings[76]); strings[1693] = str->add("To Previous Desktop"); strings[1692] = str->add(strings[1692]); strings[74] = str->add(strings[74]); strings[1694] = str->add("By Desktop #..."); strings[1692] = str->add(strings[1692]); strings[1695] = str->add("syntax: X-offset Y-offset, example: -2 2"); strings[1696] = str->add("To Desktop..."); strings[1697] = str->add("window_desk_move_to"); strings[1698] = str->add("syntax: X Y, example: 0 1"); strings[1699] = str->add("Show Main Menu"); strings[65] = str->add(strings[65]); strings[66] = str->add(strings[66]); strings[1700] = str->add("Show Favorites Menu"); strings[65] = str->add(strings[65]); strings[70] = str->add(strings[70]); strings[1701] = str->add("Show All Applications Menu"); strings[65] = str->add(strings[65]); strings[1702] = str->add("all"); strings[1703] = str->add("Show Clients Menu"); strings[65] = str->add(strings[65]); strings[68] = str->add(strings[68]); strings[1704] = str->add("Show Menu..."); strings[65] = str->add(strings[65]); strings[1705] = str->add("syntax: MenuName, example: MyMenu"); strings[1706] = str->add("Launch"); strings[1707] = str->add("Defined Command"); strings[129] = str->add(strings[129]); strings[1708] = str->add("syntax: CommandName, example: /usr/bin/xmms"); strings[1709] = str->add("Application"); strings[1710] = str->add("app"); strings[1711] = str->add("syntax: , example:"); strings[1712] = str->add("Enlightenment"); strings[1713] = str->add("Restart"); strings[135] = str->add(strings[135]); strings[1714] = str->add("Exit"); strings[1715] = str->add("exit"); strings[1716] = str->add("Log Out"); strings[137] = str->add(strings[137]); strings[1717] = str->add("Exit Immediately"); strings[1718] = str->add("exit_now"); strings[1719] = str->add("Shut Down Immediately"); strings[1720] = str->add("halt_now"); strings[1721] = str->add("System"); strings[1722] = str->add("Shut Down"); strings[1723] = str->add("halt"); strings[1724] = str->add("Reboot"); strings[1725] = str->add("reboot"); strings[1726] = str->add("Suspend"); strings[1727] = str->add("suspend"); strings[1728] = str->add("Suspend to Disk"); strings[1729] = str->add("hibernate"); strings[1730] = str->add("Desktop Lock"); strings[140] = str->add(strings[140]); strings[1731] = str->add("Cleanup Windows"); strings[1732] = str->add("cleanup_windows"); strings[1733] = str->add("Generic : Actions"); strings[1734] = str->add("Delayed Action"); strings[1735] = str->add("delayed_action"); strings[1736] = str->add("[0.0 exec xterm] [0.3 exec xev]"); strings[65] = str->add(strings[65]); strings[66] = str->add(strings[66]); strings[67] = str->add(strings[67]); strings[65] = str->add(strings[65]); strings[68] = str->add(strings[68]); strings[69] = str->add(strings[69]); strings[65] = str->add(strings[65]); strings[70] = str->add(strings[70]); strings[71] = str->add(strings[71]); strings[72] = str->add(strings[72]); strings[73] = str->add(strings[73]); strings[74] = str->add(strings[74]); strings[75] = str->add(strings[75]); strings[73] = str->add(strings[73]); strings[76] = str->add(strings[76]); strings[77] = str->add(strings[77]); strings[73] = str->add(strings[73]); strings[78] = str->add(strings[78]); strings[79] = str->add(strings[79]); strings[73] = str->add(strings[73]); strings[80] = str->add(strings[80]); strings[77] = str->add(strings[77]); strings[81] = str->add(strings[81]); strings[79] = str->add(strings[79]); strings[82] = str->add(strings[82]); strings[83] = str->add(strings[83]); strings[84] = str->add(strings[84]); strings[85] = str->add(strings[85]); strings[86] = str->add(strings[86]); strings[87] = str->add(strings[87]); strings[71] = str->add(strings[71]); strings[88] = str->add(strings[88]); strings[89] = str->add(strings[89]); strings[90] = str->add(strings[90]); strings[91] = str->add(strings[91]); strings[92] = str->add(strings[92]); strings[93] = str->add(strings[93]); strings[94] = str->add(strings[94]); strings[93] = str->add(strings[93]); strings[95] = str->add(strings[95]); strings[94] = str->add(strings[94]); strings[93] = str->add(strings[93]); strings[96] = str->add(strings[96]); strings[97] = str->add(strings[97]); strings[98] = str->add(strings[98]); strings[72] = str->add(strings[72]); strings[99] = str->add(strings[99]); strings[100] = str->add(strings[100]); strings[75] = str->add(strings[75]); strings[99] = str->add(strings[99]); strings[101] = str->add(strings[101]); strings[102] = str->add(strings[102]); strings[103] = str->add(strings[103]); strings[104] = str->add(strings[104]); strings[105] = str->add(strings[105]); strings[103] = str->add(strings[103]); strings[101] = str->add(strings[101]); strings[106] = str->add(strings[106]); strings[103] = str->add(strings[103]); strings[107] = str->add(strings[107]); strings[108] = str->add(strings[108]); strings[103] = str->add(strings[103]); strings[109] = str->add(strings[109]); strings[110] = str->add(strings[110]); strings[103] = str->add(strings[103]); strings[111] = str->add(strings[111]); strings[112] = str->add(strings[112]); strings[103] = str->add(strings[103]); strings[113] = str->add(strings[113]); strings[114] = str->add(strings[114]); strings[103] = str->add(strings[103]); strings[115] = str->add(strings[115]); strings[116] = str->add(strings[116]); strings[103] = str->add(strings[103]); strings[117] = str->add(strings[117]); strings[118] = str->add(strings[118]); strings[103] = str->add(strings[103]); strings[119] = str->add(strings[119]); strings[94] = str->add(strings[94]); strings[103] = str->add(strings[103]); strings[120] = str->add(strings[120]); strings[121] = str->add(strings[121]); strings[103] = str->add(strings[103]); strings[122] = str->add(strings[122]); strings[123] = str->add(strings[123]); strings[103] = str->add(strings[103]); strings[124] = str->add(strings[124]); strings[125] = str->add(strings[125]); strings[65] = str->add(strings[65]); strings[66] = str->add(strings[66]); strings[126] = str->add(strings[126]); strings[65] = str->add(strings[65]); strings[70] = str->add(strings[70]); strings[127] = str->add(strings[127]); strings[65] = str->add(strings[65]); strings[66] = str->add(strings[66]); strings[127] = str->add(strings[127]); strings[65] = str->add(strings[65]); strings[68] = str->add(strings[68]); strings[127] = str->add(strings[127]); strings[65] = str->add(strings[65]); strings[70] = str->add(strings[70]); strings[128] = str->add(strings[128]); strings[129] = str->add(strings[129]); strings[130] = str->add(strings[130]); strings[131] = str->add(strings[131]); strings[49] = str->add(strings[49]); strings[132] = str->add(strings[132]); strings[131] = str->add(strings[131]); strings[49] = str->add(strings[49]); strings[133] = str->add(strings[133]); strings[134] = str->add(strings[134]); strings[135] = str->add(strings[135]); strings[136] = str->add(strings[136]); strings[137] = str->add(strings[137]); strings[138] = str->add(strings[138]); strings[50] = str->add(strings[50]); strings[139] = str->add(strings[139]); strings[140] = str->add(strings[140]); strings[141] = str->add(strings[141]); strings[142] = str->add(strings[142]); strings[72] = str->add(strings[72]); strings[143] = str->add(strings[143]); strings[100] = str->add(strings[100]); strings[75] = str->add(strings[75]); strings[143] = str->add(strings[143]); strings[101] = str->add(strings[101]); strings[102] = str->add(strings[102]); strings[144] = str->add(strings[144]); strings[104] = str->add(strings[104]); strings[105] = str->add(strings[105]); strings[144] = str->add(strings[144]); strings[101] = str->add(strings[101]); strings[106] = str->add(strings[106]); strings[144] = str->add(strings[144]); strings[107] = str->add(strings[107]); strings[108] = str->add(strings[108]); strings[144] = str->add(strings[144]); strings[109] = str->add(strings[109]); strings[145] = str->add(strings[145]); strings[146] = str->add(strings[146]); strings[98] = str->add(strings[98]); strings[147] = str->add(strings[147]); strings[148] = str->add(strings[148]); strings[146] = str->add(strings[146]); strings[98] = str->add(strings[98]); strings[147] = str->add(strings[147]); strings[149] = str->add(strings[149]); strings[146] = str->add(strings[146]); strings[150] = str->add(strings[150]); strings[151] = str->add(strings[151]); strings[152] = str->add(strings[152]); strings[146] = str->add(strings[146]); strings[150] = str->add(strings[150]); strings[153] = str->add(strings[153]); strings[154] = str->add(strings[154]); strings[146] = str->add(strings[146]); strings[71] = str->add(strings[71]); strings[155] = str->add(strings[155]); strings[156] = str->add(strings[156]); strings[71] = str->add(strings[71]); strings[157] = str->add(strings[157]); strings[158] = str->add(strings[158]); strings[84] = str->add(strings[84]); strings[154] = str->add(strings[154]); strings[158] = str->add(strings[158]); strings[86] = str->add(strings[86]); strings[159] = str->add(strings[159]); strings[160] = str->add(strings[160]); strings[93] = str->add(strings[93]); strings[161] = str->add(strings[161]); strings[160] = str->add(strings[160]); strings[93] = str->add(strings[93]); strings[162] = str->add(strings[162]); strings[154] = str->add(strings[154]); strings[160] = str->add(strings[160]); strings[93] = str->add(strings[93]); strings[163] = str->add(strings[163]); strings[155] = str->add(strings[155]); strings[164] = str->add(strings[164]); strings[91] = str->add(strings[91]); strings[155] = str->add(strings[155]); strings[165] = str->add(strings[165]); strings[98] = str->add(strings[98]); strings[147] = str->add(strings[147]); strings[155] = str->add(strings[155]); strings[166] = str->add(strings[166]); strings[82] = str->add(strings[82]); strings[167] = str->add(strings[167]); strings[156] = str->add(strings[156]); strings[168] = str->add(strings[168]); strings[167] = str->add(strings[167]); strings[146] = str->add(strings[146]); strings[67] = str->add(strings[67]); strings[169] = str->add(strings[169]); strings[146] = str->add(strings[146]); strings[67] = str->add(strings[67]); strings[170] = str->add(strings[170]); strings[167] = str->add(strings[167]); strings[171] = str->add(strings[171]); strings[69] = str->add(strings[69]); strings[172] = str->add(strings[172]); strings[1737] = str->add("mouse,in"); strings[171] = str->add(strings[171]); strings[1738] = str->add("pointer_resize_push"); strings[1739] = str->add("resize_tl"); strings[1740] = str->add("mouse,out"); strings[171] = str->add(strings[171]); strings[1741] = str->add("pointer_resize_pop"); strings[1739] = str->add(strings[1739]); strings[167] = str->add(strings[167]); strings[173] = str->add(strings[173]); strings[69] = str->add(strings[69]); strings[174] = str->add(strings[174]); strings[1737] = str->add(strings[1737]); strings[173] = str->add(strings[173]); strings[1738] = str->add(strings[1738]); strings[1742] = str->add("resize_t"); strings[1740] = str->add(strings[1740]); strings[173] = str->add(strings[173]); strings[1741] = str->add(strings[1741]); strings[1742] = str->add(strings[1742]); strings[167] = str->add(strings[167]); strings[175] = str->add(strings[175]); strings[69] = str->add(strings[69]); strings[176] = str->add(strings[176]); strings[1737] = str->add(strings[1737]); strings[175] = str->add(strings[175]); strings[1738] = str->add(strings[1738]); strings[1743] = str->add("resize_tr"); strings[1740] = str->add(strings[1740]); strings[175] = str->add(strings[175]); strings[1741] = str->add(strings[1741]); strings[1743] = str->add(strings[1743]); strings[167] = str->add(strings[167]); strings[177] = str->add(strings[177]); strings[69] = str->add(strings[69]); strings[97] = str->add(strings[97]); strings[1737] = str->add(strings[1737]); strings[177] = str->add(strings[177]); strings[1738] = str->add(strings[1738]); strings[1744] = str->add("resize_r"); strings[1740] = str->add(strings[1740]); strings[177] = str->add(strings[177]); strings[1741] = str->add(strings[1741]); strings[1744] = str->add(strings[1744]); strings[167] = str->add(strings[167]); strings[178] = str->add(strings[178]); strings[69] = str->add(strings[69]); strings[179] = str->add(strings[179]); strings[1737] = str->add(strings[1737]); strings[178] = str->add(strings[178]); strings[1738] = str->add(strings[1738]); strings[1745] = str->add("resize_br"); strings[1740] = str->add(strings[1740]); strings[178] = str->add(strings[178]); strings[1741] = str->add(strings[1741]); strings[1745] = str->add(strings[1745]); strings[167] = str->add(strings[167]); strings[180] = str->add(strings[180]); strings[69] = str->add(strings[69]); strings[181] = str->add(strings[181]); strings[1737] = str->add(strings[1737]); strings[180] = str->add(strings[180]); strings[1738] = str->add(strings[1738]); strings[1746] = str->add("resize_b"); strings[1740] = str->add(strings[1740]); strings[180] = str->add(strings[180]); strings[1741] = str->add(strings[1741]); strings[1746] = str->add(strings[1746]); strings[167] = str->add(strings[167]); strings[182] = str->add(strings[182]); strings[69] = str->add(strings[69]); strings[183] = str->add(strings[183]); strings[1737] = str->add(strings[1737]); strings[182] = str->add(strings[182]); strings[1738] = str->add(strings[1738]); strings[1747] = str->add("resize_bl"); strings[1740] = str->add(strings[1740]); strings[182] = str->add(strings[182]); strings[1741] = str->add(strings[1741]); strings[1747] = str->add(strings[1747]); strings[167] = str->add(strings[167]); strings[184] = str->add(strings[184]); strings[69] = str->add(strings[69]); strings[139] = str->add(strings[139]); strings[1737] = str->add(strings[1737]); strings[184] = str->add(strings[184]); strings[1738] = str->add(strings[1738]); strings[1748] = str->add("resize_l"); strings[1740] = str->add(strings[1740]); strings[184] = str->add(strings[184]); strings[1741] = str->add(strings[1741]); strings[1748] = str->add(strings[1748]); strings[169] = str->add(strings[169]); strings[185] = str->add(strings[185]); strings[69] = str->add(strings[69]); strings[170] = str->add(strings[170]); strings[186] = str->add(strings[186]); strings[185] = str->add(strings[185]); strings[67] = str->add(strings[67]); strings[187] = str->add(strings[187]); strings[185] = str->add(strings[185]); strings[67] = str->add(strings[67]); strings[170] = str->add(strings[170]); strings[99] = str->add(strings[99]); strings[101] = str->add(strings[101]); strings[99] = str->add(strings[99]); strings[101] = str->add(strings[101]); strings[99] = str->add(strings[99]); strings[101] = str->add(strings[101]); strings[99] = str->add(strings[99]); strings[100] = str->add(strings[100]); strings[99] = str->add(strings[99]); strings[100] = str->add(strings[100]); strings[99] = str->add(strings[99]); strings[100] = str->add(strings[100]); strings[99] = str->add(strings[99]); strings[101] = str->add(strings[101]); strings[99] = str->add(strings[99]); strings[101] = str->add(strings[101]); strings[99] = str->add(strings[99]); strings[101] = str->add(strings[101]); strings[99] = str->add(strings[99]); strings[100] = str->add(strings[100]); strings[99] = str->add(strings[99]); strings[100] = str->add(strings[100]); strings[99] = str->add(strings[99]); strings[100] = str->add(strings[100]); strings[1749] = str->add("Set As Background"); strings[1750] = str->add("enlightenment/background"); strings[7] = str->add(strings[7]); strings[61] = str->add(strings[61]); strings[1751] = str->add("resize"); strings[1752] = str->add("show"); strings[1753] = str->add("base/theme/pointer"); str->del(strings[1751]); str->del(strings[1752]); strings[64] = str->add(strings[64]); strings[1754] = str->add("e/pointer/enlightenment/default/mono"); strings[1754] = str->add(strings[1754]); strings[1755] = str->add("load"); strings[64] = str->add(strings[64]); strings[1756] = str->add("images/41"); strings[1757] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/41"); strings[64] = str->add(strings[64]); strings[1756] = str->add(strings[1756]); strings[61] = str->add(strings[61]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[1758] = str->add("Container 0"); strings[1759] = str->add("Zone 0"); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[1760] = str->add("Desktop 0, 0"); strings[1761] = str->add("Desktop 0, 1"); strings[1762] = str->add("Desktop 1, 0"); strings[1763] = str->add("Desktop 1, 1"); strings[1764] = str->add("Desktop 2, 0"); strings[1765] = str->add("Desktop 2, 1"); strings[1766] = str->add("Desktop 3, 0"); strings[1767] = str->add("Desktop 3, 1"); strings[1768] = str->add("Desktop 4, 0"); strings[1769] = str->add("Desktop 4, 1"); strings[1770] = str->add("edje_cc"); strings[1771] = str->add("logo_shad.png"); strings[1772] = str->add("shad.png"); strings[1773] = str->add("tex.png"); strings[1774] = str->add("ref.png"); strings[1775] = str->add("bar_l.png"); strings[1776] = str->add("bar_r.png"); strings[1777] = str->add("bar_l_sh.png"); strings[1778] = str->add("bar_r_sh.png"); strings[1779] = str->add("sm_loop_eintro_121.png"); strings[1780] = str->add("sm_loop_eintro_123.png"); strings[1781] = str->add("sm_loop_eintro_125.png"); strings[1782] = str->add("sm_loop_eintro_127.png"); strings[1783] = str->add("sm_loop_eintro_129.png"); strings[1784] = str->add("sm_loop_eintro_131.png"); strings[1785] = str->add("sm_loop_eintro_133.png"); strings[1786] = str->add("sm_loop_eintro_135.png"); strings[1787] = str->add("sm_loop_eintro_137.png"); strings[1788] = str->add("sm_loop_eintro_139.png"); strings[1789] = str->add("sm_loop_eintro_141.png"); strings[1790] = str->add("sm_loop_eintro_143.png"); strings[1791] = str->add("sm_loop_eintro_145.png"); strings[1792] = str->add("sm_loop_eintro_147.png"); strings[1793] = str->add("sm_loop_eintro_149.png"); strings[1794] = str->add("sm_loop_eintro_151.png"); strings[1795] = str->add("sm_loop_eintro_153.png"); strings[1796] = str->add("sm_loop_eintro_155.png"); strings[1797] = str->add("sm_loop_eintro_157.png"); strings[1798] = str->add("sm_loop_eintro_159.png"); strings[1799] = str->add("sm_loop_eintro_161.png"); strings[1800] = str->add("sm_loop_eintro_163.png"); strings[1801] = str->add("sm_loop_eintro_165.png"); strings[1802] = str->add("sm_loop_eintro_167.png"); strings[1803] = str->add("sm_loop_eintro_169.png"); strings[1804] = str->add("sm_loop_eintro_171.png"); strings[1805] = str->add("sm_loop_eintro_173.png"); strings[1806] = str->add("sm_loop_eintro_175.png"); strings[1807] = str->add("sm_loop_eintro_177.png"); strings[1808] = str->add("sm_loop_eintro_179.png"); strings[1809] = str->add("sm_loop_eintro_181.png"); strings[1810] = str->add("sm_loop_eintro_183.png"); strings[1811] = str->add("sm_loop_eintro_185.png"); strings[1812] = str->add("sm_loop_eintro_187.png"); strings[1813] = str->add("sm_loop_eintro_189.png"); strings[1814] = str->add("sm_loop_eintro_191.png"); strings[1815] = str->add("sm_loop_eintro_193.png"); strings[1816] = str->add("sm_loop_eintro_195.png"); strings[1817] = str->add("sm_loop_eintro_197.png"); strings[1818] = str->add("sm_loop_eintro_199.png"); strings[1819] = str->add("sm_loop_eintro_201.png"); strings[1820] = str->add("sm_loop_eintro_203.png"); strings[1821] = str->add("sm_loop_eintro_205.png"); strings[1822] = str->add("sm_loop_eintro_207.png"); strings[1823] = str->add("sm_loop_eintro_209.png"); strings[1824] = str->add("sm_loop_eintro_211.png"); strings[1825] = str->add("sm_loop_eintro_213.png"); strings[1826] = str->add("sm_loop_eintro_215.png"); strings[1827] = str->add("sm_loop_eintro_217.png"); strings[1828] = str->add("sm_loop_eintro_219.png"); strings[1829] = str->add("sm_loop_eintro_221.png"); strings[1830] = str->add("sm_loop_eintro_223.png"); strings[1831] = str->add("sm_loop_eintro_225.png"); strings[1832] = str->add("sm_loop_eintro_227.png"); strings[1833] = str->add("sm_loop_eintro_229.png"); strings[1834] = str->add("sm_loop_eintro_231.png"); strings[1835] = str->add("sm_loop_eintro_233.png"); strings[1836] = str->add("sm_loop_eintro_235.png"); strings[1837] = str->add("sm_loop_eintro_237.png"); strings[1838] = str->add("sm_loop_eintro_239.png"); strings[1839] = str->add("e/desktop/background"); strings[7] = str->add(strings[7]); strings[1839] = str->add(strings[1839]); str->del(strings[1839]); strings[7] = str->add(strings[7]); strings[1839] = str->add(strings[1839]); strings[1840] = str->add("ref1_1"); strings[1841] = str->add("show"); strings[1842] = str->add(""); strings[1843] = str->add("default2"); strings[1844] = str->add("ref1_2"); strings[61] = str->add(strings[61]); strings[1845] = str->add("ref2_1"); strings[1841] = str->add(strings[1841]); strings[1842] = str->add(strings[1842]); strings[1843] = str->add(strings[1843]); strings[1846] = str->add("ref2_2"); strings[61] = str->add(strings[61]); strings[1847] = str->add("ref3_1"); strings[1841] = str->add(strings[1841]); strings[1842] = str->add(strings[1842]); strings[1843] = str->add(strings[1843]); strings[1848] = str->add("ref3_2"); strings[61] = str->add(strings[61]); strings[1849] = str->add("ref4_1"); strings[1841] = str->add(strings[1841]); strings[1842] = str->add(strings[1842]); strings[1843] = str->add(strings[1843]); strings[1850] = str->add("ref4_2"); strings[61] = str->add(strings[61]); strings[1851] = str->add("logo_animate"); strings[1841] = str->add(strings[1841]); strings[1842] = str->add(strings[1842]); strings[61] = str->add(strings[61]); strings[1852] = str->add("background_image"); strings[61] = str->add(strings[61]); strings[1853] = str->add("shad"); strings[61] = str->add(strings[61]); strings[1854] = str->add("logo_shad"); strings[61] = str->add(strings[61]); strings[1855] = str->add("logo"); strings[61] = str->add(strings[61]); strings[1856] = str->add("bar_l_sh"); strings[61] = str->add(strings[61]); strings[1857] = str->add("bar_r_sh"); strings[61] = str->add(strings[61]); strings[1858] = str->add("bar_l1"); strings[61] = str->add(strings[61]); strings[1843] = str->add(strings[1843]); strings[1859] = str->add("bar_l2"); strings[61] = str->add(strings[61]); strings[1843] = str->add(strings[1843]); strings[1860] = str->add("bar_r1"); strings[61] = str->add(strings[61]); strings[1843] = str->add(strings[1843]); strings[1861] = str->add("bar_r2"); strings[61] = str->add(strings[61]); strings[1843] = str->add(strings[1843]); strings[1862] = str->add("bar_l"); strings[61] = str->add(strings[61]); strings[1863] = str->add("bar_r"); strings[61] = str->add(strings[61]); strings[1839] = str->add(strings[1839]); strings[1755] = str->add(strings[1755]); strings[1864] = str->add("resize"); strings[1841] = str->add(strings[1841]); strings[7] = str->add(strings[7]); strings[1865] = str->add("images/2"); strings[1866] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/2"); strings[7] = str->add(strings[7]); strings[1865] = str->add(strings[1865]); strings[7] = str->add(strings[7]); strings[1867] = str->add("images/1"); strings[1868] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/1"); strings[7] = str->add(strings[7]); strings[1867] = str->add(strings[1867]); strings[7] = str->add(strings[7]); strings[1869] = str->add("images/67"); strings[1870] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/67"); strings[7] = str->add(strings[7]); strings[1869] = str->add(strings[1869]); strings[7] = str->add(strings[7]); strings[1552] = str->add(strings[1552]); strings[1871] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/0"); strings[7] = str->add(strings[7]); strings[1552] = str->add(strings[1552]); strings[7] = str->add(strings[7]); strings[1872] = str->add("images/4"); strings[1873] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/4"); strings[7] = str->add(strings[7]); strings[1872] = str->add(strings[1872]); strings[7] = str->add(strings[7]); strings[1874] = str->add("images/6"); strings[1875] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/6"); strings[7] = str->add(strings[7]); strings[1874] = str->add(strings[1874]); strings[7] = str->add(strings[7]); strings[1876] = str->add("images/5"); strings[1877] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/5"); strings[7] = str->add(strings[7]); strings[1876] = str->add(strings[1876]); strings[7] = str->add(strings[7]); strings[1878] = str->add("images/7"); strings[1879] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/7"); strings[7] = str->add(strings[7]); strings[1878] = str->add(strings[1878]); strings[7] = str->add(strings[7]); strings[1880] = str->add("images/3"); strings[1881] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/3"); strings[7] = str->add(strings[7]); strings[1880] = str->add(strings[1880]); strings[7] = str->add(strings[7]); strings[1880] = str->add(strings[1880]); strings[7] = str->add(strings[7]); strings[1880] = str->add(strings[1880]); strings[7] = str->add(strings[7]); strings[1880] = str->add(strings[1880]); strings[1882] = str->add("/home/cedric/.e/e/applications/startup/.order"); str->del(strings[1882]); strings[1883] = str->add("/usr/devel/lib/enlightenment/modules/start/linux-gnu-x86_64/module.so"); strings[1883] = str->add(strings[1883]); strings[59] = str->add(strings[59]); strings[1884] = str->add("/usr/devel/lib/enlightenment/modules/start"); str->del(strings[1883]); strings[1885] = str->add("/usr/devel/lib/enlightenment/modules/ibar/linux-gnu-x86_64/module.so"); strings[1885] = str->add(strings[1885]); strings[58] = str->add(strings[58]); strings[1886] = str->add("/usr/devel/lib/enlightenment/modules/ibar"); str->del(strings[1885]); strings[104] = str->add(strings[104]); strings[61] = str->add(strings[61]); strings[339] = str->add(strings[339]); strings[339] = str->add(strings[339]); strings[61] = str->add(strings[61]); strings[1887] = str->add("/usr/devel/lib/enlightenment/modules/ibox/linux-gnu-x86_64/module.so"); strings[1887] = str->add(strings[1887]); strings[57] = str->add(strings[57]); strings[1888] = str->add("/usr/devel/lib/enlightenment/modules/ibox"); str->del(strings[1887]); strings[104] = str->add(strings[104]); strings[338] = str->add(strings[338]); strings[1889] = str->add("/usr/devel/lib/enlightenment/modules/dropshadow/linux-gnu-x86_64/module.so"); strings[1889] = str->add(strings[1889]); strings[56] = str->add(strings[56]); strings[1890] = str->add("/usr/devel/lib/enlightenment/modules/dropshadow"); str->del(strings[1889]); strings[1891] = str->add("appearance"); strings[1892] = str->add("Appearance"); strings[1893] = str->add("enlightenment/appearance"); strings[56] = str->add(strings[56]); strings[1894] = str->add("Dropshadow"); strings[1895] = str->add("/usr/devel/lib/enlightenment/modules/dropshadow/e-module-dropshadow.edj"); strings[1896] = str->add("/usr/devel/lib/enlightenment/modules/clock/linux-gnu-x86_64/module.so"); strings[1896] = str->add(strings[1896]); strings[55] = str->add(strings[55]); strings[1897] = str->add("/usr/devel/lib/enlightenment/modules/clock"); str->del(strings[1896]); strings[1898] = str->add("/usr/devel/lib/enlightenment/modules/battery/linux-gnu-x86_64/module.so"); strings[1898] = str->add(strings[1898]); strings[54] = str->add(strings[54]); strings[1899] = str->add("/usr/devel/lib/enlightenment/modules/battery"); str->del(strings[1898]); strings[1900] = str->add("advanced"); strings[1901] = str->add("Advanced"); strings[1902] = str->add("enlightenment/advanced"); strings[54] = str->add(strings[54]); strings[1903] = str->add("Battery Meter"); strings[1904] = str->add("/usr/devel/lib/enlightenment/modules/battery/e-module-battery.edj"); strings[1905] = str->add("/usr/devel/lib/enlightenment/modules/cpufreq/linux-gnu-x86_64/module.so"); strings[1905] = str->add(strings[1905]); strings[53] = str->add(strings[53]); strings[1906] = str->add("/usr/devel/lib/enlightenment/modules/cpufreq"); str->del(strings[1905]); strings[1907] = str->add("/usr/devel/lib/enlightenment/modules/temperature/linux-gnu-x86_64/module.so"); strings[1907] = str->add(strings[1907]); strings[52] = str->add(strings[52]); strings[1908] = str->add("/usr/devel/lib/enlightenment/modules/temperature"); str->del(strings[1907]); strings[340] = str->add(strings[340]); strings[1909] = str->add("/usr/devel/lib/enlightenment/modules/pager/linux-gnu-x86_64/module.so"); strings[1909] = str->add(strings[1909]); strings[51] = str->add(strings[51]); strings[1910] = str->add("/usr/devel/lib/enlightenment/modules/pager"); str->del(strings[1909]); strings[51] = str->add(strings[51]); strings[1911] = str->add("Pager"); strings[1912] = str->add("enlightenment/pager"); strings[1911] = str->add(strings[1911]); strings[1913] = str->add("Show Pager Popup"); strings[1914] = str->add("pager_show"); strings[1915] = str->add(""); strings[1916] = str->add("Popup Desk Right"); strings[1917] = str->add("pager_switch"); strings[1613] = str->add(strings[1613]); strings[1918] = str->add("Popup Desk Left"); strings[1917] = str->add(strings[1917]); strings[1611] = str->add(strings[1611]); strings[1919] = str->add("Popup Desk Up"); strings[1917] = str->add(strings[1917]); strings[147] = str->add(strings[147]); strings[1920] = str->add("Popup Desk Down"); strings[1917] = str->add(strings[1917]); strings[1609] = str->add(strings[1609]); strings[50] = str->add(strings[50]); strings[49] = str->add(strings[49]); strings[48] = str->add(strings[48]); strings[47] = str->add(strings[47]); strings[46] = str->add(strings[46]); strings[45] = str->add(strings[45]); strings[44] = str->add(strings[44]); strings[43] = str->add(strings[43]); strings[42] = str->add(strings[42]); strings[41] = str->add(strings[41]); strings[40] = str->add(strings[40]); strings[39] = str->add(strings[39]); strings[38] = str->add(strings[38]); strings[37] = str->add(strings[37]); strings[36] = str->add(strings[36]); strings[35] = str->add(strings[35]); strings[34] = str->add(strings[34]); strings[33] = str->add(strings[33]); strings[32] = str->add(strings[32]); strings[31] = str->add(strings[31]); strings[30] = str->add(strings[30]); strings[29] = str->add(strings[29]); strings[28] = str->add(strings[28]); strings[27] = str->add(strings[27]); strings[26] = str->add(strings[26]); strings[25] = str->add(strings[25]); strings[24] = str->add(strings[24]); strings[23] = str->add(strings[23]); strings[22] = str->add(strings[22]); strings[21] = str->add(strings[21]); strings[20] = str->add(strings[20]); strings[19] = str->add(strings[19]); strings[18] = str->add(strings[18]); strings[17] = str->add(strings[17]); strings[16] = str->add(strings[16]); strings[15] = str->add(strings[15]); strings[14] = str->add(strings[14]); strings[13] = str->add(strings[13]); strings[12] = str->add(strings[12]); strings[11] = str->add(strings[11]); strings[1921] = str->add("/usr/devel/lib/enlightenment/modules/note/linux-gnu-x86_64/module.so"); strings[1921] = str->add(strings[1921]); strings[10] = str->add(strings[10]); strings[1922] = str->add("/usr/devel/lib/enlightenment/modules/note"); str->del(strings[1921]); strings[1923] = str->add("/usr/devel/lib/enlightenment/modules/gadman/linux-gnu-x86_64/module.so"); strings[1923] = str->add(strings[1923]); strings[60] = str->add(strings[60]); strings[1924] = str->add("/usr/devel/lib/enlightenment/modules/gadman"); str->del(strings[1923]); strings[60] = str->add(strings[60]); strings[1925] = str->add("Gadgets"); strings[1926] = str->add("/usr/devel/lib/enlightenment/modules/gadman/e-module-gadman.edj"); strings[60] = str->add(strings[60]); strings[344] = str->add(strings[344]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[1927] = str->add("base/theme/gadman"); strings[64] = str->add(strings[64]); strings[1928] = str->add("e/gadman/full_bg"); str->del(strings[64]); str->del(strings[1928]); strings[469] = str->add(strings[469]); strings[1929] = str->add("e/gadman/full_bg"); strings[1929] = str->add(strings[1929]); strings[1755] = str->add(strings[1755]); strings[1930] = str->add("mouse,down,*"); strings[1931] = str->add("bg"); strings[1932] = str->add("program,stop"); strings[1933] = str->add("hide"); strings[1864] = str->add(strings[1864]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1934] = str->add("e/gadman/control"); str->del(strings[64]); str->del(strings[1934]); strings[469] = str->add(strings[469]); strings[1935] = str->add("e/gadman/control"); strings[1935] = str->add(strings[1935]); strings[1755] = str->add(strings[1755]); strings[167] = str->add(strings[167]); strings[1936] = str->add("overlay"); strings[169] = str->add(strings[169]); strings[1936] = str->add(strings[1936]); strings[186] = str->add(strings[186]); strings[1936] = str->add(strings[1936]); strings[167] = str->add(strings[167]); strings[1937] = str->add("h1"); strings[169] = str->add(strings[169]); strings[1937] = str->add(strings[1937]); strings[167] = str->add(strings[167]); strings[1938] = str->add("v2"); strings[169] = str->add(strings[169]); strings[1938] = str->add(strings[1938]); strings[167] = str->add(strings[167]); strings[1939] = str->add("h2"); strings[169] = str->add(strings[169]); strings[1939] = str->add(strings[1939]); strings[167] = str->add(strings[167]); strings[1940] = str->add("v1"); strings[169] = str->add(strings[169]); strings[1940] = str->add(strings[1940]); strings[1864] = str->add(strings[1864]); strings[469] = str->add(strings[469]); strings[1935] = str->add(strings[1935]); strings[1755] = str->add(strings[1755]); strings[167] = str->add(strings[167]); strings[1936] = str->add(strings[1936]); strings[169] = str->add(strings[169]); strings[1936] = str->add(strings[1936]); strings[186] = str->add(strings[186]); strings[1936] = str->add(strings[1936]); strings[167] = str->add(strings[167]); strings[1937] = str->add(strings[1937]); strings[169] = str->add(strings[169]); strings[1937] = str->add(strings[1937]); strings[167] = str->add(strings[167]); strings[1938] = str->add(strings[1938]); strings[169] = str->add(strings[169]); strings[1938] = str->add(strings[1938]); strings[167] = str->add(strings[167]); strings[1939] = str->add(strings[1939]); strings[169] = str->add(strings[169]); strings[1939] = str->add(strings[1939]); strings[167] = str->add(strings[167]); strings[1940] = str->add(strings[1940]); strings[169] = str->add(strings[169]); strings[1940] = str->add(strings[1940]); strings[1864] = str->add(strings[1864]); strings[1926] = str->add(strings[1926]); strings[1925] = str->add(strings[1925]); strings[1941] = str->add("Show/hide gadgets"); strings[1942] = str->add("gadman_toggle"); strings[1943] = str->add("g"); strings[1942] = str->add(strings[1942]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[61] = str->add(strings[61]); strings[335] = str->add(strings[335]); strings[1864] = str->add(strings[1864]); strings[1944] = str->add("base/theme/shelf"); str->del(strings[1864]); strings[64] = str->add(strings[64]); strings[1945] = str->add("e/shelf/default/base"); strings[1945] = str->add(strings[1945]); strings[1755] = str->add(strings[1755]); strings[1841] = str->add(strings[1841]); strings[335] = str->add(strings[335]); strings[1946] = str->add("e.swallow.content"); strings[1947] = str->add("size_request"); strings[1948] = str->add("min_size_request"); strings[64] = str->add(strings[64]); strings[1949] = str->add("images/42"); strings[1950] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/42"); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[1951] = str->add("e,state,orientation,top"); strings[1952] = str->add("e"); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1951]); str->del(strings[1952]); strings[1953] = str->add("e,state,orientation,bottom_left"); strings[1954] = str->add("e"); str->del(strings[1953]); str->del(strings[1954]); strings[1864] = str->add(strings[1864]); strings[1955] = str->add("base/theme/modules/start"); strings[1956] = str->add("base/theme/modules"); strings[64] = str->add(strings[64]); strings[1957] = str->add("e/modules/start/main"); strings[1957] = str->add(strings[1957]); strings[1755] = str->add(strings[1755]); strings[1958] = str->add("e,state,unfocused"); strings[1959] = str->add("e"); strings[59] = str->add(strings[59]); strings[64] = str->add(strings[64]); strings[1960] = str->add("e/shelf/default/plain"); strings[1960] = str->add(strings[1960]); strings[1755] = str->add(strings[1755]); strings[1961] = str->add("e,state,orientation,bottom_left"); strings[1959] = str->add(strings[1959]); str->del(strings[1755]); strings[336] = str->add(strings[336]); strings[1841] = str->add(strings[1841]); strings[1841] = str->add(strings[1841]); str->del(strings[336]); strings[336] = str->add(strings[336]); strings[1962] = str->add("base/theme/modules/pager"); strings[64] = str->add(strings[64]); strings[1963] = str->add("e/modules/pager/desk"); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[1755] = str->add(strings[1755]); strings[1760] = str->add(strings[1760]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add("images/63"); strings[1965] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/63"); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add("images/62"); strings[1967] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/62"); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add("images/64"); strings[1969] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/64"); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add("images/66"); strings[1971] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/66"); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1972] = str->add("Sans:style=Bold"); strings[1973] = str->add("Edje-Vera-Bold"); strings[1974] = str->add("Bitstream"); strings[1975] = str->add("Bitstream Vera Sans"); strings[1976] = str->add("bold"); strings[90] = str->add(strings[90]); strings[1977] = str->add("normal"); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add("p"); strings[104] = str->add(strings[104]); strings[1979] = str->add("ascii"); strings[104] = str->add(strings[104]); strings[1980] = str->add("/usr/devel/share/enlightenment/data/fonts/VeraBI.ttf"); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1976] = str->add(strings[1976]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1981] = str->add("fcd8859"); strings[1982] = str->add("15"); strings[1980] = str->add(strings[1980]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1976] = str->add(strings[1976]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add("iso8859"); strings[101] = str->add(strings[101]); strings[1980] = str->add(strings[1980]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1976] = str->add(strings[1976]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[1982] = str->add(strings[1982]); strings[1980] = str->add(strings[1980]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1976] = str->add(strings[1976]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[120] = str->add(strings[120]); strings[1980] = str->add(strings[1980]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1984] = str->add("medium"); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1979] = str->add(strings[1979]); strings[104] = str->add(strings[104]); strings[1985] = str->add("/usr/devel/share/enlightenment/data/fonts/Vera.ttf"); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1984] = str->add(strings[1984]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1981] = str->add(strings[1981]); strings[1982] = str->add(strings[1982]); strings[1985] = str->add(strings[1985]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1984] = str->add(strings[1984]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[101] = str->add(strings[101]); strings[1985] = str->add(strings[1985]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1984] = str->add(strings[1984]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[1982] = str->add(strings[1982]); strings[1985] = str->add(strings[1985]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1984] = str->add(strings[1984]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[120] = str->add(strings[120]); strings[1985] = str->add(strings[1985]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1979] = str->add(strings[1979]); strings[104] = str->add(strings[104]); strings[1986] = str->add("/usr/devel/share/enlightenment/data/fonts/VeraBd.ttf"); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1981] = str->add(strings[1981]); strings[1982] = str->add(strings[1982]); strings[1986] = str->add(strings[1986]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[101] = str->add(strings[101]); strings[1986] = str->add(strings[1986]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[1982] = str->add(strings[1982]); strings[1986] = str->add(strings[1986]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[120] = str->add(strings[120]); strings[1986] = str->add(strings[1986]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1984] = str->add(strings[1984]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1979] = str->add(strings[1979]); strings[104] = str->add(strings[104]); strings[1987] = str->add("/usr/devel/share/enlightenment/data/fonts/VeraIt.ttf"); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1984] = str->add(strings[1984]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1981] = str->add(strings[1981]); strings[1982] = str->add(strings[1982]); strings[1987] = str->add(strings[1987]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1984] = str->add(strings[1984]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[101] = str->add(strings[101]); strings[1987] = str->add(strings[1987]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1984] = str->add(strings[1984]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[1982] = str->add(strings[1982]); strings[1987] = str->add(strings[1987]); strings[1974] = str->add(strings[1974]); strings[1975] = str->add(strings[1975]); strings[1984] = str->add(strings[1984]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[120] = str->add(strings[120]); strings[1987] = str->add(strings[1987]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add("Bitstream Vera Sans Mono"); strings[1976] = str->add(strings[1976]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1979] = str->add(strings[1979]); strings[104] = str->add(strings[104]); strings[1989] = str->add("/usr/devel/share/enlightenment/data/fonts/VeraMoBI.ttf"); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1976] = str->add(strings[1976]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1981] = str->add(strings[1981]); strings[1982] = str->add(strings[1982]); strings[1989] = str->add(strings[1989]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1976] = str->add(strings[1976]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[101] = str->add(strings[101]); strings[1989] = str->add(strings[1989]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1976] = str->add(strings[1976]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[1982] = str->add(strings[1982]); strings[1989] = str->add(strings[1989]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1976] = str->add(strings[1976]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[120] = str->add(strings[120]); strings[1989] = str->add(strings[1989]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1979] = str->add(strings[1979]); strings[104] = str->add(strings[104]); strings[1990] = str->add("/usr/devel/share/enlightenment/data/fonts/VeraMoBd.ttf"); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1981] = str->add(strings[1981]); strings[1982] = str->add(strings[1982]); strings[1990] = str->add(strings[1990]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[101] = str->add(strings[101]); strings[1990] = str->add(strings[1990]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[1982] = str->add(strings[1982]); strings[1990] = str->add(strings[1990]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[120] = str->add(strings[120]); strings[1990] = str->add(strings[1990]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1984] = str->add(strings[1984]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1979] = str->add(strings[1979]); strings[104] = str->add(strings[104]); strings[1991] = str->add("/usr/devel/share/enlightenment/data/fonts/VeraMoIt.ttf"); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1984] = str->add(strings[1984]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1981] = str->add(strings[1981]); strings[1982] = str->add(strings[1982]); strings[1991] = str->add(strings[1991]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1984] = str->add(strings[1984]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[101] = str->add(strings[101]); strings[1991] = str->add(strings[1991]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1984] = str->add(strings[1984]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[1982] = str->add(strings[1982]); strings[1991] = str->add(strings[1991]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1984] = str->add(strings[1984]); strings[90] = str->add(strings[90]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[120] = str->add(strings[120]); strings[1991] = str->add(strings[1991]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1984] = str->add(strings[1984]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1979] = str->add(strings[1979]); strings[104] = str->add(strings[104]); strings[1992] = str->add("/usr/devel/share/enlightenment/data/fonts/VeraMono.ttf"); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1984] = str->add(strings[1984]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1981] = str->add(strings[1981]); strings[1982] = str->add(strings[1982]); strings[1992] = str->add(strings[1992]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1984] = str->add(strings[1984]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[101] = str->add(strings[101]); strings[1992] = str->add(strings[1992]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1984] = str->add(strings[1984]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[1982] = str->add(strings[1982]); strings[1992] = str->add(strings[1992]); strings[1974] = str->add(strings[1974]); strings[1988] = str->add(strings[1988]); strings[1984] = str->add(strings[1984]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[125] = str->add(strings[125]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[120] = str->add(strings[120]); strings[1992] = str->add(strings[1992]); strings[1974] = str->add(strings[1974]); strings[1993] = str->add("Bitstream Vera Serif"); strings[1984] = str->add(strings[1984]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1979] = str->add(strings[1979]); strings[104] = str->add(strings[104]); strings[1994] = str->add("/usr/devel/share/enlightenment/data/fonts/VeraSe.ttf"); strings[1974] = str->add(strings[1974]); strings[1993] = str->add(strings[1993]); strings[1984] = str->add(strings[1984]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1981] = str->add(strings[1981]); strings[1982] = str->add(strings[1982]); strings[1994] = str->add(strings[1994]); strings[1974] = str->add(strings[1974]); strings[1993] = str->add(strings[1993]); strings[1984] = str->add(strings[1984]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[101] = str->add(strings[101]); strings[1994] = str->add(strings[1994]); strings[1974] = str->add(strings[1974]); strings[1993] = str->add(strings[1993]); strings[1984] = str->add(strings[1984]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[1982] = str->add(strings[1982]); strings[1994] = str->add(strings[1994]); strings[1974] = str->add(strings[1974]); strings[1993] = str->add(strings[1993]); strings[1984] = str->add(strings[1984]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[120] = str->add(strings[120]); strings[1994] = str->add(strings[1994]); strings[1974] = str->add(strings[1974]); strings[1993] = str->add(strings[1993]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1979] = str->add(strings[1979]); strings[104] = str->add(strings[104]); strings[1995] = str->add("/usr/devel/share/enlightenment/data/fonts/VeraSeBd.ttf"); strings[1974] = str->add(strings[1974]); strings[1993] = str->add(strings[1993]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1981] = str->add(strings[1981]); strings[1982] = str->add(strings[1982]); strings[1995] = str->add(strings[1995]); strings[1974] = str->add(strings[1974]); strings[1993] = str->add(strings[1993]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[101] = str->add(strings[101]); strings[1995] = str->add(strings[1995]); strings[1974] = str->add(strings[1974]); strings[1993] = str->add(strings[1993]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[1982] = str->add(strings[1982]); strings[1995] = str->add(strings[1995]); strings[1974] = str->add(strings[1974]); strings[1993] = str->add(strings[1993]); strings[1976] = str->add(strings[1976]); strings[97] = str->add(strings[97]); strings[1977] = str->add(strings[1977]); strings[1842] = str->add(strings[1842]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[104] = str->add(strings[104]); strings[1978] = str->add(strings[1978]); strings[104] = str->add(strings[104]); strings[1983] = str->add(strings[1983]); strings[120] = str->add(strings[120]); strings[1995] = str->add(strings[1995]); strings[62] = str->add(strings[62]); strings[1985] = str->add(strings[1985]); strings[1996] = str->add("VeraBI"); strings[1980] = str->add(strings[1980]); strings[1997] = str->add("VeraBd"); strings[1986] = str->add(strings[1986]); strings[1998] = str->add("VeraIt"); strings[1987] = str->add(strings[1987]); strings[1999] = str->add("VeraMoBI"); strings[1989] = str->add(strings[1989]); strings[2000] = str->add("VeraMoBd"); strings[1990] = str->add(strings[1990]); strings[2001] = str->add("VeraMoIt"); strings[1991] = str->add(strings[1991]); strings[2002] = str->add("VeraMono"); strings[1992] = str->add(strings[1992]); strings[2003] = str->add("VeraSe"); strings[1994] = str->add(strings[1994]); strings[2004] = str->add("VeraSeBd"); strings[1995] = str->add(strings[1995]); strings[2005] = str->add("Vera-Bold-Italic"); strings[2006] = str->add("Vera-Normal"); strings[2007] = str->add("Vera-Bold"); strings[2008] = str->add("Vera-Italic"); strings[2009] = str->add("Vera-Mono-Bold-Italic"); strings[2010] = str->add("Vera-Mono-Bold"); strings[2011] = str->add("Vera-Mono-Italic"); strings[2012] = str->add("Vera-Mono"); strings[2013] = str->add("Vera-Serif"); strings[2014] = str->add("Vera-Serif-Bold"); strings[62] = str->add(strings[62]); str->del(strings[1972]); str->del(strings[1973]); strings[2015] = str->add("/var/lib/defoma/fontconfig.d/D/DejaVu-Sans-Bold.ttf"); strings[2016] = str->add("/var/lib/defoma/fontconfig.d/D/DejaVu-Sans-Bold-Oblique.ttf"); strings[2017] = str->add("/var/lib/defoma/fontconfig.d/D/DejaVu-Sans-ExtraLight.ttf"); strings[2018] = str->add("/var/lib/defoma/fontconfig.d/D/DejaVu-Sans.ttf"); strings[2019] = str->add("/var/lib/defoma/fontconfig.d/N/NimbusSanL-Bold.pfb"); strings[2020] = str->add("/var/lib/defoma/fontconfig.d/K/KochiGothic-Regular.ttf"); strings[2021] = str->add("/var/lib/defoma/fontconfig.d/D/Dotum-Regular.ttf"); strings[2022] = str->add("/var/lib/defoma/fontconfig.d/F/FreeSans-Bold.ttf"); strings[2023] = str->add("/var/lib/defoma/fontconfig.d/F/FreeSans-Medium.ttf"); strings[2024] = str->add("/var/lib/defoma/fontconfig.d/L/Loma-Bold.ttf"); strings[2025] = str->add("/var/lib/defoma/fontconfig.d/O/Ouhod.ttf"); strings[2026] = str->add("/var/lib/defoma/fontconfig.d/N/Norasi-Bold.ttf"); strings[2027] = str->add("/var/lib/defoma/fontconfig.d/D/DejaVu-Sans-Mono-Bold.ttf"); strings[2028] = str->add("/var/lib/defoma/fontconfig.d/D/DejaVu-Serif-Bold.ttf"); strings[2029] = str->add("/var/lib/defoma/fontconfig.d/F/FreeSerif-Bold.ttf"); strings[2030] = str->add("/var/lib/defoma/fontconfig.d/F/FreeMono-Bold.ttf"); strings[2031] = str->add("/usr/share/fonts/truetype/ttf-gujarati-fonts/padmaa-Bold.1.1.ttf"); strings[2032] = str->add("/var/lib/defoma/fontconfig.d/B/Batang-Bold.ttf"); strings[2033] = str->add("/var/lib/defoma/fontconfig.d/K/Kedage.ttf"); strings[2034] = str->add("/var/lib/defoma/fontconfig.d/T/TSCuParanar-Bold.ttf"); strings[2035] = str->add("/var/lib/defoma/fontconfig.d/P/Purisa.ttf"); strings[2036] = str->add("/var/lib/defoma/fontconfig.d/F/FreeSerif-Medium.ttf"); strings[2037] = str->add("/var/lib/defoma/fontconfig.d/P/Pothana2000.ttf"); strings[2038] = str->add("/var/lib/defoma/fontconfig.d/F/FreeMono-Medium.ttf"); strings[2039] = str->add("/usr/share/fonts/truetype/ttf-devanagari-fonts/chandas1-2.ttf"); strings[2040] = str->add("/usr/share/fonts/truetype/openoffice/opens___.ttf"); strings[2041] = str->add("/var/lib/defoma/fontconfig.d/G/Gentium-Italic.ttf"); strings[2042] = str->add("/var/lib/defoma/fontconfig.d/L/Lohit-Kannada.ttf"); strings[2043] = str->add("/var/lib/defoma/fontconfig.d/L/Lohit-Oriya.ttf"); strings[2044] = str->add("/var/lib/defoma/fontconfig.d/T/TAMuKadambri-Regular.ttf"); strings[2045] = str->add("/var/lib/defoma/fontconfig.d/T/TAMuKalyani-Regular.ttf"); strings[2046] = str->add("/var/lib/defoma/fontconfig.d/T/TSCuComic-Normal.ttf"); strings[2047] = str->add("/var/lib/defoma/fontconfig.d/T/TSCuParanar-Regular.ttf"); strings[2048] = str->add("/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_gu.ttf"); strings[2049] = str->add("/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_ta.ttf"); strings[2050] = str->add("/var/lib/defoma/fontconfig.d/A/AnjaliOldLipi.ttf"); strings[2051] = str->add("/usr/share/fonts/truetype/arphic/ukai.ttf"); strings[2052] = str->add("/usr/share/fonts/truetype/arphic/uming.ttf"); strings[2053] = str->add("/var/lib/defoma/fontconfig.d/K/KochiMincho-Regular.ttf"); strings[2054] = str->add("/usr/share/fonts/truetype/ttf-malayalam-fonts/Rachana_w01.ttf"); strings[2055] = str->add("/usr/share/fonts/truetype/unfonts/UnBatang.ttf"); strings[2056] = str->add("/var/lib/defoma/fontconfig.d/S/StandardSymL.pfb"); strings[2057] = str->add("/var/lib/defoma/fontconfig.d/T/TSCuParanar-Italic.ttf"); strings[379] = str->add(strings[379]); strings[1760] = str->add(strings[1760]); strings[1760] = str->add(strings[1760]); strings[1842] = str->add(strings[1842]); str->del(strings[1760]); strings[64] = str->add(strings[64]); strings[2058] = str->add("images/65"); strings[2059] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/65"); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[2060] = str->add("e,state,selected"); strings[1959] = str->add(strings[1959]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[1755] = str->add(strings[1755]); strings[1761] = str->add(strings[1761]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1761] = str->add(strings[1761]); strings[1761] = str->add(strings[1761]); strings[1842] = str->add(strings[1842]); str->del(strings[1761]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[1755] = str->add(strings[1755]); strings[1762] = str->add(strings[1762]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1762] = str->add(strings[1762]); strings[1762] = str->add(strings[1762]); strings[1842] = str->add(strings[1842]); str->del(strings[1762]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[1755] = str->add(strings[1755]); strings[1763] = str->add(strings[1763]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1763] = str->add(strings[1763]); strings[1763] = str->add(strings[1763]); strings[1842] = str->add(strings[1842]); str->del(strings[1763]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[1755] = str->add(strings[1755]); strings[1764] = str->add(strings[1764]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1764] = str->add(strings[1764]); strings[1764] = str->add(strings[1764]); strings[1842] = str->add(strings[1842]); str->del(strings[1764]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[1755] = str->add(strings[1755]); strings[1765] = str->add(strings[1765]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1765] = str->add(strings[1765]); strings[1765] = str->add(strings[1765]); strings[1842] = str->add(strings[1842]); str->del(strings[1765]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[1755] = str->add(strings[1755]); strings[1766] = str->add(strings[1766]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1766] = str->add(strings[1766]); strings[1766] = str->add(strings[1766]); strings[1842] = str->add(strings[1842]); str->del(strings[1766]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[1755] = str->add(strings[1755]); strings[1767] = str->add(strings[1767]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1767] = str->add(strings[1767]); strings[1767] = str->add(strings[1767]); strings[1842] = str->add(strings[1842]); str->del(strings[1767]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[1755] = str->add(strings[1755]); strings[1768] = str->add(strings[1768]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1768] = str->add(strings[1768]); strings[1768] = str->add(strings[1768]); strings[1842] = str->add(strings[1842]); str->del(strings[1768]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[1755] = str->add(strings[1755]); strings[1769] = str->add(strings[1769]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1769] = str->add(strings[1769]); strings[1769] = str->add(strings[1769]); strings[1842] = str->add(strings[1842]); str->del(strings[1769]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[51] = str->add(strings[51]); strings[64] = str->add(strings[64]); strings[2061] = str->add("e/shelf/default/inset"); strings[2061] = str->add(strings[2061]); strings[1755] = str->add(strings[1755]); strings[1961] = str->add(strings[1961]); strings[1959] = str->add(strings[1959]); str->del(strings[1755]); strings[337] = str->add(strings[337]); strings[64] = str->add(strings[64]); strings[2062] = str->add("images/54"); strings[2063] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/54"); strings[64] = str->add(strings[64]); strings[2062] = str->add(strings[2062]); strings[1841] = str->add(strings[1841]); str->del(strings[337]); strings[337] = str->add(strings[337]); strings[57] = str->add(strings[57]); strings[64] = str->add(strings[64]); strings[2061] = str->add(strings[2061]); strings[1755] = str->add(strings[1755]); strings[1961] = str->add(strings[1961]); strings[1959] = str->add(strings[1959]); str->del(strings[1755]); strings[337] = str->add(strings[337]); strings[64] = str->add(strings[64]); strings[2062] = str->add(strings[2062]); strings[1841] = str->add(strings[1841]); str->del(strings[337]); strings[337] = str->add(strings[337]); strings[2064] = str->add("/home/cedric/.e/e/applications/bar/default/.order"); strings[2065] = str->add("base/theme/modules/ibar"); strings[64] = str->add(strings[64]); strings[2066] = str->add("e/modules/ibar/icon"); str->del(strings[64]); str->del(strings[2066]); strings[469] = str->add(strings[469]); strings[2067] = str->add("e/modules/ibar/icon"); strings[2067] = str->add(strings[2067]); strings[1755] = str->add(strings[1755]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2068] = str->add("e/modules/ibar/icon_overlay"); str->del(strings[64]); str->del(strings[2068]); strings[469] = str->add(strings[469]); strings[2069] = str->add("e/modules/ibar/icon_overlay"); strings[2069] = str->add(strings[2069]); strings[469] = str->add(strings[469]); strings[1755] = str->add(strings[1755]); strings[1841] = str->add(strings[1841]); strings[2070] = str->add("/usr/devel/share/enlightenment/data/icons/xterm.png"); strings[2071] = str->add("/usr/devel/share/enlightenment/data/icons/xterm.png//://(nil)//@/0/0.00000/64x64"); strings[2070] = str->add(strings[2070]); strings[2070] = str->add(strings[2070]); strings[471] = str->add(strings[471]); strings[471] = str->add(strings[471]); strings[2072] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj/fonts/Edje-Vera-Bold"); str->del(strings[471]); strings[471] = str->add(strings[471]); strings[469] = str->add(strings[469]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[2073] = str->add("XTerm"); strings[469] = str->add(strings[469]); strings[2067] = str->add(strings[2067]); strings[1755] = str->add(strings[1755]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2069] = str->add(strings[2069]); strings[469] = str->add(strings[469]); strings[1755] = str->add(strings[1755]); strings[1841] = str->add(strings[1841]); strings[2074] = str->add("/usr/devel/share/enlightenment/data/icons/web_browser.png"); strings[2075] = str->add("/usr/devel/share/enlightenment/data/icons/web_browser.png//://(nil)//@/0/0.00000/64x64"); strings[2074] = str->add(strings[2074]); strings[2074] = str->add(strings[2074]); strings[471] = str->add(strings[471]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[2076] = str->add("Firefox"); strings[469] = str->add(strings[469]); strings[2067] = str->add(strings[2067]); strings[1755] = str->add(strings[1755]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2069] = str->add(strings[2069]); strings[469] = str->add(strings[469]); strings[1755] = str->add(strings[1755]); strings[1841] = str->add(strings[1841]); strings[2077] = str->add("/usr/devel/share/enlightenment/data/icons/audio_player.png"); strings[2078] = str->add("/usr/devel/share/enlightenment/data/icons/audio_player.png//://(nil)//@/0/0.00000/64x64"); strings[2077] = str->add(strings[2077]); strings[2077] = str->add(strings[2077]); strings[471] = str->add(strings[471]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[2079] = str->add("XMMS"); strings[58] = str->add(strings[58]); strings[64] = str->add(strings[64]); strings[2061] = str->add(strings[2061]); strings[1755] = str->add(strings[1755]); strings[1961] = str->add(strings[1961]); strings[1959] = str->add(strings[1959]); str->del(strings[1755]); strings[337] = str->add(strings[337]); strings[64] = str->add(strings[64]); strings[2062] = str->add(strings[2062]); strings[1841] = str->add(strings[1841]); str->del(strings[337]); strings[337] = str->add(strings[337]); strings[2080] = str->add("base/theme/modules/temperature"); strings[64] = str->add(strings[64]); strings[2081] = str->add("e/modules/temperature/main"); strings[2081] = str->add(strings[2081]); strings[64] = str->add(strings[64]); strings[1755] = str->add(strings[1755]); strings[52] = str->add(strings[52]); strings[64] = str->add(strings[64]); strings[1960] = str->add(strings[1960]); strings[1755] = str->add(strings[1755]); strings[1961] = str->add(strings[1961]); strings[1959] = str->add(strings[1959]); str->del(strings[1755]); strings[336] = str->add(strings[336]); strings[1841] = str->add(strings[1841]); strings[1841] = str->add(strings[1841]); str->del(strings[336]); strings[336] = str->add(strings[336]); strings[2082] = str->add("base/theme/modules/cpufreq"); strings[64] = str->add(strings[64]); strings[2083] = str->add("e/modules/cpufreq/main"); strings[2083] = str->add(strings[2083]); strings[64] = str->add(strings[64]); strings[1755] = str->add(strings[1755]); strings[2084] = str->add("e,action,governor,next"); strings[2085] = str->add("*"); strings[2086] = str->add("e,action,frequency,increase"); strings[2085] = str->add(strings[2085]); strings[2087] = str->add("e,action,frequency,decrease"); strings[2085] = str->add(strings[2085]); strings[53] = str->add(strings[53]); strings[64] = str->add(strings[64]); strings[1960] = str->add(strings[1960]); strings[1755] = str->add(strings[1755]); strings[1961] = str->add(strings[1961]); strings[1959] = str->add(strings[1959]); str->del(strings[1755]); strings[336] = str->add(strings[336]); strings[1841] = str->add(strings[1841]); strings[1841] = str->add(strings[1841]); strings[2088] = str->add("e,state,enabled"); strings[1959] = str->add(strings[1959]); str->del(strings[336]); strings[336] = str->add(strings[336]); strings[2089] = str->add("base/theme/modules/battery"); strings[64] = str->add(strings[64]); strings[2090] = str->add("e/modules/battery/main"); strings[2090] = str->add(strings[2090]); strings[64] = str->add(strings[64]); strings[64] = str->add(strings[64]); strings[1755] = str->add(strings[1755]); strings[54] = str->add(strings[54]); strings[64] = str->add(strings[64]); strings[1960] = str->add(strings[1960]); strings[1755] = str->add(strings[1755]); strings[1961] = str->add(strings[1961]); strings[1959] = str->add(strings[1959]); str->del(strings[1755]); strings[336] = str->add(strings[336]); strings[1841] = str->add(strings[1841]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2091] = str->add("images/75"); strings[2092] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/75"); strings[64] = str->add(strings[64]); strings[2091] = str->add(strings[2091]); strings[64] = str->add(strings[64]); strings[2093] = str->add("images/76"); strings[2094] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/76"); strings[64] = str->add(strings[64]); strings[2093] = str->add(strings[2093]); strings[64] = str->add(strings[64]); strings[2095] = str->add("images/69"); strings[2096] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/69"); strings[64] = str->add(strings[64]); strings[2095] = str->add(strings[2095]); strings[64] = str->add(strings[64]); strings[2097] = str->add("images/70"); strings[2098] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/70"); strings[64] = str->add(strings[64]); strings[2097] = str->add(strings[2097]); strings[64] = str->add(strings[64]); strings[2099] = str->add("images/71"); strings[2100] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/71"); strings[64] = str->add(strings[64]); strings[2099] = str->add(strings[2099]); strings[64] = str->add(strings[64]); strings[2101] = str->add("images/72"); strings[2102] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/72"); strings[64] = str->add(strings[64]); strings[2101] = str->add(strings[2101]); strings[64] = str->add(strings[64]); strings[2103] = str->add("images/73"); strings[2104] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/73"); strings[64] = str->add(strings[64]); strings[2103] = str->add(strings[2103]); strings[64] = str->add(strings[64]); strings[2105] = str->add("images/74"); strings[2106] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/74"); strings[64] = str->add(strings[64]); strings[2105] = str->add(strings[2105]); strings[64] = str->add(strings[64]); strings[2107] = str->add("images/77"); strings[2108] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/77"); strings[64] = str->add(strings[64]); strings[2107] = str->add(strings[2107]); strings[64] = str->add(strings[64]); strings[2109] = str->add("images/78"); strings[2110] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/78"); strings[64] = str->add(strings[64]); strings[2109] = str->add(strings[2109]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[336]); strings[336] = str->add(strings[336]); strings[2111] = str->add("base/theme/modules/clock"); strings[64] = str->add(strings[64]); strings[2112] = str->add("e/modules/clock/main"); strings[2112] = str->add(strings[2112]); strings[1755] = str->add(strings[1755]); strings[1841] = str->add(strings[1841]); strings[55] = str->add(strings[55]); strings[64] = str->add(strings[64]); strings[1960] = str->add(strings[1960]); strings[1755] = str->add(strings[1755]); strings[1961] = str->add(strings[1961]); strings[1959] = str->add(strings[1959]); str->del(strings[1755]); strings[336] = str->add(strings[336]); strings[1841] = str->add(strings[1841]); str->del(strings[336]); strings[336] = str->add(strings[336]); strings[341] = str->add(strings[341]); strings[2113] = str->add("/usr/devel/lib/enlightenment/modules/note/e-module-note.edj"); strings[2114] = str->add("modules/note/main"); strings[2113] = str->add(strings[2113]); strings[379] = str->add(strings[379]); strings[2115] = str->add("module_normal"); strings[2116] = str->add("align=left color=#000000 wrap=word"); strings[382] = str->add(strings[382]); strings[2114] = str->add(strings[2114]); strings[1755] = str->add(strings[1755]); strings[10] = str->add(strings[10]); strings[64] = str->add(strings[64]); strings[1960] = str->add(strings[1960]); strings[1755] = str->add(strings[1755]); strings[1961] = str->add(strings[1961]); strings[1959] = str->add(strings[1959]); str->del(strings[1755]); strings[336] = str->add(strings[336]); strings[1841] = str->add(strings[1841]); strings[1841] = str->add(strings[1841]); str->del(strings[336]); strings[336] = str->add(strings[336]); strings[1864] = str->add(strings[1864]); strings[1864] = str->add(strings[1864]); strings[1864] = str->add(strings[1864]); strings[1864] = str->add(strings[1864]); strings[1864] = str->add(strings[1864]); strings[1864] = str->add(strings[1864]); strings[1864] = str->add(strings[1864]); strings[1864] = str->add(strings[1864]); strings[1864] = str->add(strings[1864]); strings[1864] = str->add(strings[1864]); strings[1864] = str->add(strings[1864]); str->del(strings[1755]); str->del(strings[1755]); str->del(strings[1864]); strings[2117] = str->add("program,start"); strings[1840] = str->add(strings[1840]); strings[2117] = str->add(strings[2117]); strings[1845] = str->add(strings[1845]); strings[2117] = str->add(strings[2117]); strings[1847] = str->add(strings[1847]); strings[2117] = str->add(strings[2117]); strings[1849] = str->add(strings[1849]); strings[2117] = str->add(strings[2117]); strings[1851] = str->add(strings[1851]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1864]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1864]); str->del(strings[1755]); str->del(strings[1864]); str->del(strings[1864]); str->del(strings[1755]); strings[2117] = str->add(strings[2117]); strings[2118] = str->add("off"); str->del(strings[1958]); str->del(strings[1959]); str->del(strings[1961]); str->del(strings[1959]); str->del(strings[1841]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); strings[2117] = str->add(strings[2117]); strings[2119] = str->add("on"); str->del(strings[2060]); str->del(strings[1959]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1961]); str->del(strings[1959]); str->del(strings[1841]); str->del(strings[1961]); str->del(strings[1959]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1961]); str->del(strings[1959]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1961]); str->del(strings[1959]); str->del(strings[1841]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1961]); str->del(strings[1959]); str->del(strings[1841]); str->del(strings[1841]); strings[2120] = str->add("2.4"); strings[2117] = str->add(strings[2117]); strings[2121] = str->add("enabled"); strings[1932] = str->add(strings[1932]); strings[2121] = str->add(strings[2121]); str->del(strings[2088]); str->del(strings[1959]); str->del(strings[1755]); str->del(strings[1961]); str->del(strings[1959]); str->del(strings[1841]); str->del(strings[1841]); strings[2117] = str->add(strings[2117]); strings[2122] = str->add("init"); strings[1932] = str->add(strings[1932]); strings[2122] = str->add(strings[2122]); str->del(strings[1755]); str->del(strings[1841]); str->del(strings[1961]); str->del(strings[1959]); str->del(strings[1841]); str->del(strings[1755]); str->del(strings[1961]); str->del(strings[1959]); str->del(strings[1841]); str->del(strings[1841]); str->del(strings[1864]); str->del(strings[1864]); str->del(strings[1864]); str->del(strings[1864]); str->del(strings[1864]); str->del(strings[1864]); str->del(strings[1864]); str->del(strings[1864]); str->del(strings[1864]); str->del(strings[1864]); str->del(strings[1864]); str->del(strings[2117]); str->del(strings[1840]); str->del(strings[2117]); str->del(strings[1845]); str->del(strings[2117]); str->del(strings[1847]); str->del(strings[2117]); str->del(strings[1849]); str->del(strings[2117]); str->del(strings[1851]); str->del(strings[2117]); str->del(strings[2118]); str->del(strings[2117]); str->del(strings[2119]); str->del(strings[2117]); str->del(strings[2121]); str->del(strings[1932]); str->del(strings[2121]); str->del(strings[2117]); str->del(strings[2122]); str->del(strings[1932]); str->del(strings[2122]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add("load"); strings[1760] = str->add(strings[1760]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1760] = str->add(strings[1760]); strings[1760] = str->add(strings[1760]); strings[1842] = str->add(strings[1842]); str->del(strings[1760]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[2124] = str->add("e,state,selected"); strings[2125] = str->add("e"); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1761] = str->add(strings[1761]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1761] = str->add(strings[1761]); strings[1761] = str->add(strings[1761]); strings[1842] = str->add(strings[1842]); str->del(strings[1761]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1762] = str->add(strings[1762]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1762] = str->add(strings[1762]); strings[1762] = str->add(strings[1762]); strings[1842] = str->add(strings[1842]); str->del(strings[1762]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1763] = str->add(strings[1763]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1763] = str->add(strings[1763]); strings[1763] = str->add(strings[1763]); strings[1842] = str->add(strings[1842]); str->del(strings[1763]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1764] = str->add(strings[1764]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1764] = str->add(strings[1764]); strings[1764] = str->add(strings[1764]); strings[1842] = str->add(strings[1842]); str->del(strings[1764]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1765] = str->add(strings[1765]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1765] = str->add(strings[1765]); strings[1765] = str->add(strings[1765]); strings[1842] = str->add(strings[1842]); str->del(strings[1765]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1766] = str->add(strings[1766]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1766] = str->add(strings[1766]); strings[1766] = str->add(strings[1766]); strings[1842] = str->add(strings[1842]); str->del(strings[1766]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1767] = str->add(strings[1767]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1767] = str->add(strings[1767]); strings[1767] = str->add(strings[1767]); strings[1842] = str->add(strings[1842]); str->del(strings[1767]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1768] = str->add(strings[1768]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1768] = str->add(strings[1768]); strings[1768] = str->add(strings[1768]); strings[1842] = str->add(strings[1842]); str->del(strings[1768]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1769] = str->add(strings[1769]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1769] = str->add(strings[1769]); strings[1769] = str->add(strings[1769]); strings[1842] = str->add(strings[1842]); str->del(strings[1769]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[2126] = str->add("resize"); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[64] = str->add(strings[64]); strings[2127] = str->add("e/modules/pager/popup"); strings[2127] = str->add(strings[2127]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1760] = str->add(strings[1760]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[2128] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/3"); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[2129] = str->add("Sans:style=Bold"); strings[2130] = str->add("Edje-Vera-Bold"); str->del(strings[2129]); str->del(strings[2130]); strings[379] = str->add(strings[379]); strings[1760] = str->add(strings[1760]); strings[1760] = str->add(strings[1760]); strings[1760] = str->add(strings[1760]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); strings[2131] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/5"); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[2132] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/6"); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[2126] = str->add(strings[2126]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1760]); str->del(strings[1760]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1761]); str->del(strings[1761]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1762]); str->del(strings[1762]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1763]); str->del(strings[1763]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1764]); str->del(strings[1764]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1765]); str->del(strings[1765]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1766]); str->del(strings[1766]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1767]); str->del(strings[1767]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1768]); str->del(strings[1768]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1769]); str->del(strings[1769]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1760] = str->add(strings[1760]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1760] = str->add(strings[1760]); strings[1760] = str->add(strings[1760]); strings[1842] = str->add(strings[1842]); str->del(strings[1760]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[2124] = str->add(strings[2124]); strings[2125] = str->add(strings[2125]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1761] = str->add(strings[1761]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1761] = str->add(strings[1761]); strings[1761] = str->add(strings[1761]); strings[1842] = str->add(strings[1842]); str->del(strings[1761]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1762] = str->add(strings[1762]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1762] = str->add(strings[1762]); strings[1762] = str->add(strings[1762]); strings[1842] = str->add(strings[1842]); str->del(strings[1762]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1763] = str->add(strings[1763]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1763] = str->add(strings[1763]); strings[1763] = str->add(strings[1763]); strings[1842] = str->add(strings[1842]); str->del(strings[1763]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1764] = str->add(strings[1764]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1764] = str->add(strings[1764]); strings[1764] = str->add(strings[1764]); strings[1842] = str->add(strings[1842]); str->del(strings[1764]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1765] = str->add(strings[1765]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1765] = str->add(strings[1765]); strings[1765] = str->add(strings[1765]); strings[1842] = str->add(strings[1842]); str->del(strings[1765]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1766] = str->add(strings[1766]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1766] = str->add(strings[1766]); strings[1766] = str->add(strings[1766]); strings[1842] = str->add(strings[1842]); str->del(strings[1766]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1767] = str->add(strings[1767]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1767] = str->add(strings[1767]); strings[1767] = str->add(strings[1767]); strings[1842] = str->add(strings[1842]); str->del(strings[1767]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1768] = str->add(strings[1768]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1768] = str->add(strings[1768]); strings[1768] = str->add(strings[1768]); strings[1842] = str->add(strings[1842]); str->del(strings[1768]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1769] = str->add(strings[1769]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1769] = str->add(strings[1769]); strings[1769] = str->add(strings[1769]); strings[1842] = str->add(strings[1842]); str->del(strings[1769]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[2126] = str->add(strings[2126]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2124]); str->del(strings[2125]); str->del(strings[2126]); str->del(strings[1933]); str->del(strings[1760]); str->del(strings[1760]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2126]); str->del(strings[1933]); str->del(strings[1761]); str->del(strings[1761]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2126]); str->del(strings[1933]); str->del(strings[1762]); str->del(strings[1762]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2126]); str->del(strings[1933]); str->del(strings[1763]); str->del(strings[1763]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2126]); str->del(strings[1933]); str->del(strings[1764]); str->del(strings[1764]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2126]); str->del(strings[1933]); str->del(strings[1765]); str->del(strings[1765]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2126]); str->del(strings[1933]); str->del(strings[1766]); str->del(strings[1766]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2126]); str->del(strings[1933]); str->del(strings[1767]); str->del(strings[1767]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2126]); str->del(strings[1933]); str->del(strings[1768]); str->del(strings[1768]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2126]); str->del(strings[1933]); str->del(strings[1769]); str->del(strings[1769]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[1963]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1760] = str->add(strings[1760]); strings[2126] = str->add(strings[2126]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1760] = str->add(strings[1760]); strings[1760] = str->add(strings[1760]); strings[1760] = str->add(strings[1760]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[2124] = str->add(strings[2124]); strings[2125] = str->add(strings[2125]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1761] = str->add(strings[1761]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1761] = str->add(strings[1761]); strings[1761] = str->add(strings[1761]); strings[1761] = str->add(strings[1761]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1762] = str->add(strings[1762]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1762] = str->add(strings[1762]); strings[1762] = str->add(strings[1762]); strings[1762] = str->add(strings[1762]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1763] = str->add(strings[1763]); strings[2126] = str->add(strings[2126]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1763] = str->add(strings[1763]); strings[1763] = str->add(strings[1763]); strings[1763] = str->add(strings[1763]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1764] = str->add(strings[1764]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1764] = str->add(strings[1764]); strings[1764] = str->add(strings[1764]); strings[1764] = str->add(strings[1764]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1765] = str->add(strings[1765]); strings[2126] = str->add(strings[2126]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1765] = str->add(strings[1765]); strings[1765] = str->add(strings[1765]); strings[1765] = str->add(strings[1765]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1766] = str->add(strings[1766]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1766] = str->add(strings[1766]); strings[1766] = str->add(strings[1766]); strings[1766] = str->add(strings[1766]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1767] = str->add(strings[1767]); strings[2126] = str->add(strings[2126]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1767] = str->add(strings[1767]); strings[1767] = str->add(strings[1767]); strings[1767] = str->add(strings[1767]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1768] = str->add(strings[1768]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[2126] = str->add(strings[2126]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1768] = str->add(strings[1768]); strings[1768] = str->add(strings[1768]); strings[1768] = str->add(strings[1768]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[64] = str->add(strings[64]); strings[1963] = str->add(strings[1963]); strings[64] = str->add(strings[64]); strings[2123] = str->add(strings[2123]); strings[1769] = str->add(strings[1769]); strings[2126] = str->add(strings[2126]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1964] = str->add(strings[1964]); strings[64] = str->add(strings[64]); strings[1966] = str->add(strings[1966]); strings[64] = str->add(strings[64]); strings[1968] = str->add(strings[1968]); strings[64] = str->add(strings[64]); strings[1970] = str->add(strings[1970]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1769] = str->add(strings[1769]); strings[1769] = str->add(strings[1769]); strings[1769] = str->add(strings[1769]); strings[64] = str->add(strings[64]); strings[2058] = str->add(strings[2058]); strings[2073] = str->add(strings[2073]); str->del(strings[1842]); strings[2073] = str->add(strings[2073]); str->del(strings[1842]); strings[2073] = str->add(strings[2073]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2067]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2073]); str->del(strings[2073]); str->del(strings[2073]); str->del(strings[469]); str->del(strings[2069]); strings[2076] = str->add(strings[2076]); str->del(strings[1842]); strings[2076] = str->add(strings[2076]); str->del(strings[1842]); strings[2076] = str->add(strings[2076]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2067]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2076]); str->del(strings[2076]); str->del(strings[2076]); str->del(strings[469]); str->del(strings[2069]); strings[2079] = str->add(strings[2079]); str->del(strings[1842]); strings[2079] = str->add(strings[2079]); str->del(strings[1842]); strings[2079] = str->add(strings[2079]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2067]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2079]); str->del(strings[2079]); str->del(strings[2079]); str->del(strings[469]); str->del(strings[2069]); strings[469] = str->add(strings[469]); strings[2067] = str->add(strings[2067]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2069] = str->add(strings[2069]); strings[469] = str->add(strings[469]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[2070] = str->add(strings[2070]); strings[2070] = str->add(strings[2070]); strings[471] = str->add(strings[471]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[2073] = str->add(strings[2073]); strings[469] = str->add(strings[469]); strings[2067] = str->add(strings[2067]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2069] = str->add(strings[2069]); strings[469] = str->add(strings[469]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[2074] = str->add(strings[2074]); strings[2074] = str->add(strings[2074]); strings[471] = str->add(strings[471]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[2076] = str->add(strings[2076]); strings[469] = str->add(strings[469]); strings[2067] = str->add(strings[2067]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2069] = str->add(strings[2069]); strings[469] = str->add(strings[469]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[2077] = str->add(strings[2077]); strings[2077] = str->add(strings[2077]); strings[471] = str->add(strings[471]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[2079] = str->add(strings[2079]); strings[2073] = str->add(strings[2073]); str->del(strings[1842]); strings[2073] = str->add(strings[2073]); str->del(strings[1842]); strings[2073] = str->add(strings[2073]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2067]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[2073]); str->del(strings[2073]); str->del(strings[2073]); str->del(strings[469]); str->del(strings[2069]); strings[2076] = str->add(strings[2076]); str->del(strings[1842]); strings[2076] = str->add(strings[2076]); str->del(strings[1842]); strings[2076] = str->add(strings[2076]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2067]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[2076]); str->del(strings[2076]); str->del(strings[2076]); str->del(strings[469]); str->del(strings[2069]); strings[2079] = str->add(strings[2079]); str->del(strings[1842]); strings[2079] = str->add(strings[2079]); str->del(strings[1842]); strings[2079] = str->add(strings[2079]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2067]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[2079]); str->del(strings[2079]); str->del(strings[2079]); str->del(strings[469]); str->del(strings[2069]); strings[469] = str->add(strings[469]); strings[2067] = str->add(strings[2067]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2069] = str->add(strings[2069]); strings[469] = str->add(strings[469]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[2070] = str->add(strings[2070]); strings[2070] = str->add(strings[2070]); strings[471] = str->add(strings[471]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[2073] = str->add(strings[2073]); strings[469] = str->add(strings[469]); strings[2067] = str->add(strings[2067]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2069] = str->add(strings[2069]); strings[469] = str->add(strings[469]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[2074] = str->add(strings[2074]); strings[2074] = str->add(strings[2074]); strings[471] = str->add(strings[471]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[2076] = str->add(strings[2076]); strings[469] = str->add(strings[469]); strings[2067] = str->add(strings[2067]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2069] = str->add(strings[2069]); strings[469] = str->add(strings[469]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[2077] = str->add(strings[2077]); strings[2077] = str->add(strings[2077]); strings[471] = str->add(strings[471]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[2079] = str->add(strings[2079]); strings[2073] = str->add(strings[2073]); str->del(strings[1842]); strings[2073] = str->add(strings[2073]); str->del(strings[1842]); strings[2073] = str->add(strings[2073]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2067]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[2073]); str->del(strings[2073]); str->del(strings[2073]); str->del(strings[469]); str->del(strings[2069]); strings[2076] = str->add(strings[2076]); str->del(strings[1842]); strings[2076] = str->add(strings[2076]); str->del(strings[1842]); strings[2076] = str->add(strings[2076]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2067]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[2076]); str->del(strings[2076]); str->del(strings[2076]); str->del(strings[469]); str->del(strings[2069]); strings[2079] = str->add(strings[2079]); str->del(strings[1842]); strings[2079] = str->add(strings[2079]); str->del(strings[1842]); strings[2079] = str->add(strings[2079]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2067]); strings[1933] = str->add(strings[1933]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[2079]); str->del(strings[2079]); str->del(strings[2079]); str->del(strings[469]); str->del(strings[2069]); strings[469] = str->add(strings[469]); strings[2067] = str->add(strings[2067]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2069] = str->add(strings[2069]); strings[469] = str->add(strings[469]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[2070] = str->add(strings[2070]); strings[2070] = str->add(strings[2070]); strings[471] = str->add(strings[471]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[2073] = str->add(strings[2073]); strings[469] = str->add(strings[469]); strings[2067] = str->add(strings[2067]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2069] = str->add(strings[2069]); strings[469] = str->add(strings[469]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[2074] = str->add(strings[2074]); strings[2074] = str->add(strings[2074]); strings[471] = str->add(strings[471]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[2076] = str->add(strings[2076]); strings[469] = str->add(strings[469]); strings[2067] = str->add(strings[2067]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2069] = str->add(strings[2069]); strings[469] = str->add(strings[469]); strings[2123] = str->add(strings[2123]); strings[1841] = str->add(strings[1841]); strings[2077] = str->add(strings[2077]); strings[2077] = str->add(strings[2077]); strings[471] = str->add(strings[471]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[2079] = str->add(strings[2079]); strings[2133] = str->add("e,action,mouse,move"); strings[2125] = str->add(strings[2125]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[1737] = str->add(strings[1737]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2133] = str->add(strings[2133]); strings[2125] = str->add(strings[2125]); strings[2134] = str->add(strings[2134]); strings[1853] = str->add(strings[1853]); strings[2135] = str->add("e,state,known"); strings[1842] = str->add(strings[1842]); strings[2136] = str->add("40°C"); strings[2137] = str->add("e,state,discharging"); strings[2125] = str->add(strings[2125]); strings[2138] = str->add("0%"); str->del(strings[2138]); strings[2139] = str->add("N/A"); strings[2140] = str->add("0:00"); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2126]); str->del(strings[2123]); str->del(strings[1841]); strings[2141] = str->add("program,start"); strings[2142] = str->add("on"); str->del(strings[2124]); str->del(strings[2125]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2126]); str->del(strings[2123]); str->del(strings[2126]); str->del(strings[1841]); strings[2141] = str->add(strings[2141]); strings[2142] = str->add(strings[2142]); str->del(strings[2124]); str->del(strings[2125]); str->del(strings[2123]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[2126]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[2126]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[2126]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[2126]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[2126]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2123]); str->del(strings[1841]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[1737]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2133]); str->del(strings[2125]); str->del(strings[2134]); str->del(strings[1853]); str->del(strings[2135]); str->del(strings[1842]); strings[2143] = str->add("drag,set"); strings[2144] = str->add("temp_top"); strings[2141] = str->add(strings[2141]); strings[2145] = str->add("discharge"); strings[1932] = str->add(strings[1932]); strings[2145] = str->add(strings[2145]); strings[2141] = str->add(strings[2141]); strings[2146] = str->add("discharge2"); strings[1932] = str->add(strings[1932]); strings[2146] = str->add(strings[2146]); str->del(strings[2137]); str->del(strings[2125]); strings[2147] = str->add("custom"); strings[2147] = str->add(strings[2147]); strings[2147] = str->add(strings[2147]); strings[2147] = str->add(strings[2147]); str->del(strings[2141]); str->del(strings[2142]); str->del(strings[2141]); str->del(strings[2142]); str->del(strings[2143]); str->del(strings[2144]); str->del(strings[2141]); str->del(strings[2145]); str->del(strings[1932]); str->del(strings[2145]); str->del(strings[2141]); str->del(strings[2146]); str->del(strings[1932]); str->del(strings[2146]); str->del(strings[1760]); strings[1760] = str->add(strings[1760]); str->del(strings[1760]); strings[1760] = str->add(strings[1760]); str->del(strings[1760]); strings[1760] = str->add(strings[1760]); str->del(strings[1760]); strings[1760] = str->add(strings[1760]); str->del(strings[1761]); strings[1761] = str->add(strings[1761]); str->del(strings[1761]); strings[1761] = str->add(strings[1761]); str->del(strings[1762]); strings[1762] = str->add(strings[1762]); str->del(strings[1762]); strings[1762] = str->add(strings[1762]); str->del(strings[1763]); strings[1763] = str->add(strings[1763]); str->del(strings[1763]); strings[1763] = str->add(strings[1763]); str->del(strings[1764]); strings[1764] = str->add(strings[1764]); str->del(strings[1764]); strings[1764] = str->add(strings[1764]); str->del(strings[1765]); strings[1765] = str->add(strings[1765]); str->del(strings[1765]); strings[1765] = str->add(strings[1765]); str->del(strings[1766]); strings[1766] = str->add(strings[1766]); str->del(strings[1766]); strings[1766] = str->add(strings[1766]); str->del(strings[1767]); strings[1767] = str->add(strings[1767]); str->del(strings[1767]); strings[1767] = str->add(strings[1767]); strings[64] = str->add(strings[64]); strings[2148] = str->add("images/60"); strings[2149] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/60"); strings[64] = str->add(strings[64]); strings[2148] = str->add(strings[2148]); strings[64] = str->add(strings[64]); strings[2150] = str->add("images/61"); strings[2151] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/61"); strings[64] = str->add(strings[64]); strings[2150] = str->add(strings[2150]); strings[2152] = str->add("resize"); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[2152] = str->add(strings[2152]); strings[64] = str->add(strings[64]); strings[2153] = str->add("images/79"); strings[2154] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/79"); strings[64] = str->add(strings[64]); strings[2153] = str->add(strings[2153]); strings[64] = str->add(strings[64]); strings[2155] = str->add("images/80"); strings[2156] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/80"); strings[64] = str->add(strings[64]); strings[2155] = str->add(strings[2155]); strings[64] = str->add(strings[64]); strings[2157] = str->add("images/81"); strings[2158] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/81"); strings[64] = str->add(strings[64]); strings[2157] = str->add(strings[2157]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[2136] = str->add(strings[2136]); strings[2136] = str->add(strings[2136]); strings[2136] = str->add(strings[2136]); strings[2152] = str->add(strings[2152]); strings[64] = str->add(strings[64]); strings[2159] = str->add("images/204"); strings[2160] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/204"); strings[64] = str->add(strings[64]); strings[2159] = str->add(strings[2159]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[2161] = str->add("Sans:style=Bold"); strings[2162] = str->add("Edje-Vera-Bold"); str->del(strings[2161]); str->del(strings[2162]); strings[379] = str->add(strings[379]); strings[2120] = str->add(strings[2120]); strings[2120] = str->add(strings[2120]); strings[2120] = str->add(strings[2120]); strings[64] = str->add(strings[64]); strings[2163] = str->add("images/205"); strings[2164] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/205"); strings[64] = str->add(strings[64]); strings[2163] = str->add(strings[2163]); strings[64] = str->add(strings[64]); strings[2165] = str->add("images/83"); strings[2166] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/83"); strings[64] = str->add(strings[64]); strings[2165] = str->add(strings[2165]); strings[2152] = str->add(strings[2152]); strings[2139] = str->add(strings[2139]); str->del(strings[1842]); strings[2139] = str->add(strings[2139]); str->del(strings[1842]); strings[2139] = str->add(strings[2139]); strings[2140] = str->add(strings[2140]); str->del(strings[1842]); strings[2140] = str->add(strings[2140]); str->del(strings[1842]); strings[2140] = str->add(strings[2140]); strings[2152] = str->add(strings[2152]); strings[64] = str->add(strings[64]); strings[2167] = str->add("images/82"); strings[2168] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/82"); strings[64] = str->add(strings[64]); strings[2167] = str->add(strings[2167]); strings[64] = str->add(strings[64]); strings[2169] = str->add("images/115"); strings[2170] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/115"); strings[64] = str->add(strings[64]); strings[2169] = str->add(strings[2169]); strings[64] = str->add(strings[64]); strings[2171] = str->add("images/201"); strings[2172] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/201"); strings[64] = str->add(strings[64]); strings[2171] = str->add(strings[2171]); strings[64] = str->add(strings[64]); strings[2165] = str->add(strings[2165]); strings[2152] = str->add(strings[2152]); strings[2113] = str->add(strings[2113]); strings[1552] = str->add(strings[1552]); strings[2173] = str->add("/usr/devel/lib/enlightenment/modules/note/e-module-note.edj//://images/0"); strings[2113] = str->add(strings[2113]); strings[1552] = str->add(strings[1552]); strings[2152] = str->add(strings[2152]); str->del(strings[1760]); strings[1760] = str->add(strings[1760]); strings[1760] = str->add(strings[1760]); str->del(strings[1760]); strings[2174] = str->add("D..."); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[2174]); str->del(strings[1761]); strings[1761] = str->add(strings[1761]); strings[1761] = str->add(strings[1761]); str->del(strings[1761]); strings[2175] = str->add("D..."); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[2175]); str->del(strings[1762]); strings[1762] = str->add(strings[1762]); strings[1762] = str->add(strings[1762]); str->del(strings[1762]); strings[2176] = str->add("D..."); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[2176]); str->del(strings[1763]); strings[1763] = str->add(strings[1763]); strings[1763] = str->add(strings[1763]); str->del(strings[1763]); strings[2177] = str->add("D..."); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[2177]); str->del(strings[1764]); strings[1764] = str->add(strings[1764]); strings[1764] = str->add(strings[1764]); str->del(strings[1764]); strings[2178] = str->add("D..."); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[2178]); str->del(strings[1765]); strings[1765] = str->add(strings[1765]); strings[1765] = str->add(strings[1765]); str->del(strings[1765]); strings[2179] = str->add("D..."); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[2179]); str->del(strings[1766]); strings[1766] = str->add(strings[1766]); strings[1766] = str->add(strings[1766]); str->del(strings[1766]); strings[2180] = str->add("D..."); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[2180]); str->del(strings[1767]); strings[1767] = str->add(strings[1767]); strings[1767] = str->add(strings[1767]); str->del(strings[1767]); strings[2181] = str->add("D..."); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[2181]); str->del(strings[1768]); strings[1768] = str->add(strings[1768]); strings[1768] = str->add(strings[1768]); str->del(strings[1768]); strings[2182] = str->add("D..."); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[2182]); str->del(strings[1769]); strings[1769] = str->add(strings[1769]); strings[1769] = str->add(strings[1769]); str->del(strings[1769]); strings[2183] = str->add("D..."); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[2183]); strings[2073] = str->add(strings[2073]); str->del(strings[1842]); strings[2073] = str->add(strings[2073]); str->del(strings[1842]); strings[2073] = str->add(strings[2073]); strings[2076] = str->add(strings[2076]); str->del(strings[1842]); strings[2076] = str->add(strings[2076]); str->del(strings[1842]); strings[2076] = str->add(strings[2076]); strings[2079] = str->add(strings[2079]); str->del(strings[1842]); strings[2079] = str->add(strings[2079]); str->del(strings[1842]); strings[2079] = str->add(strings[2079]); strings[469] = str->add(strings[469]); strings[2184] = str->add("images/249"); strings[2185] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/249"); strings[469] = str->add(strings[469]); strings[2184] = str->add(strings[2184]); strings[469] = str->add(strings[469]); strings[2186] = str->add("images/250"); strings[2187] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/250"); strings[469] = str->add(strings[469]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[2188] = str->add("images/243"); strings[2189] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/243"); strings[469] = str->add(strings[469]); strings[2188] = str->add(strings[2188]); strings[469] = str->add(strings[469]); strings[2190] = str->add("images/240"); strings[2191] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/240"); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2188] = str->add(strings[2188]); strings[469] = str->add(strings[469]); strings[2192] = str->add("images/241"); strings[2193] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/241"); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2194] = str->add("images/247"); strings[2195] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/247"); strings[469] = str->add(strings[469]); strings[2194] = str->add(strings[2194]); strings[469] = str->add(strings[469]); strings[2196] = str->add("images/242"); strings[2197] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/242"); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2194] = str->add(strings[2194]); strings[469] = str->add(strings[469]); strings[2198] = str->add("images/239"); strings[2199] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/239"); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2200] = str->add("images/245"); strings[2201] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/245"); strings[469] = str->add(strings[469]); strings[2200] = str->add(strings[2200]); strings[469] = str->add(strings[469]); strings[2200] = str->add(strings[2200]); strings[469] = str->add(strings[469]); strings[2202] = str->add("images/246"); strings[2203] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/246"); strings[469] = str->add(strings[469]); strings[2202] = str->add(strings[2202]); strings[469] = str->add(strings[469]); strings[2202] = str->add(strings[2202]); strings[469] = str->add(strings[469]); strings[2184] = str->add(strings[2184]); strings[469] = str->add(strings[469]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[2188] = str->add(strings[2188]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2188] = str->add(strings[2188]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2194] = str->add(strings[2194]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2194] = str->add(strings[2194]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2200] = str->add(strings[2200]); strings[469] = str->add(strings[469]); strings[2200] = str->add(strings[2200]); strings[469] = str->add(strings[469]); strings[2202] = str->add(strings[2202]); strings[469] = str->add(strings[469]); strings[2202] = str->add(strings[2202]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[2152]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[2163]); strings[64] = str->add(strings[64]); strings[2204] = str->add("images/220"); strings[2205] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/220"); strings[64] = str->add(strings[64]); strings[2204] = str->add(strings[2204]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[2070]); str->del(strings[2070]); str->del(strings[2073]); str->del(strings[471]); str->del(strings[469]); str->del(strings[2074]); str->del(strings[2074]); str->del(strings[2076]); str->del(strings[471]); str->del(strings[469]); str->del(strings[2077]); str->del(strings[2077]); str->del(strings[2079]); str->del(strings[471]); str->del(strings[469]); str->del(strings[2070]); str->del(strings[2070]); str->del(strings[2073]); str->del(strings[471]); str->del(strings[469]); str->del(strings[2074]); str->del(strings[2074]); str->del(strings[2076]); str->del(strings[471]); str->del(strings[469]); str->del(strings[2077]); str->del(strings[2077]); str->del(strings[2079]); str->del(strings[471]); str->del(strings[469]); str->del(strings[2070]); str->del(strings[2070]); str->del(strings[2073]); str->del(strings[471]); str->del(strings[469]); str->del(strings[2074]); str->del(strings[2074]); str->del(strings[2076]); str->del(strings[471]); str->del(strings[469]); str->del(strings[2077]); str->del(strings[2077]); str->del(strings[2079]); str->del(strings[471]); str->del(strings[469]); str->del(strings[7]); str->del(strings[1869]); strings[7] = str->add(strings[7]); strings[2206] = str->add("images/10"); strings[2207] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/10"); strings[7] = str->add(strings[7]); strings[2206] = str->add(strings[2206]); strings[1932] = str->add(strings[1932]); strings[2208] = str->add("on"); strings[1932] = str->add(strings[1932]); strings[2208] = str->add(strings[2208]); str->del(strings[1932]); str->del(strings[2208]); str->del(strings[1932]); str->del(strings[2208]); strings[2209] = str->add("/usr/devel/lib/enlightenment/modules/exebuf/linux-gnu-x86_64/module.so"); strings[2209] = str->add(strings[2209]); strings[50] = str->add(strings[50]); strings[2210] = str->add("/usr/devel/lib/enlightenment/modules/exebuf"); str->del(strings[2209]); strings[2211] = str->add("Run Command Dialog"); strings[50] = str->add(strings[50]); str->del(strings[50]); strings[1932] = str->add(strings[1932]); strings[2212] = str->add("off"); str->del(strings[1932]); str->del(strings[2212]); str->del(strings[7]); str->del(strings[2206]); strings[7] = str->add(strings[7]); strings[2213] = str->add("images/11"); strings[2214] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/11"); strings[7] = str->add(strings[7]); strings[2213] = str->add(strings[2213]); strings[2215] = str->add("/usr/devel/lib/enlightenment/modules/winlist/linux-gnu-x86_64/module.so"); strings[2215] = str->add(strings[2215]); strings[49] = str->add(strings[49]); strings[2216] = str->add("/usr/devel/lib/enlightenment/modules/winlist"); str->del(strings[2215]); strings[2217] = str->add("Window : List"); strings[2218] = str->add("Next Window"); strings[49] = str->add(strings[49]); strings[132] = str->add(strings[132]); strings[2219] = str->add("Previous Window"); strings[49] = str->add(strings[49]); strings[133] = str->add(strings[133]); str->del(strings[49]); str->del(strings[7]); str->del(strings[2213]); strings[7] = str->add(strings[7]); strings[2220] = str->add("images/12"); strings[2221] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/12"); strings[7] = str->add(strings[7]); strings[2220] = str->add(strings[2220]); strings[2222] = str->add("/usr/devel/lib/enlightenment/modules/conf/linux-gnu-x86_64/module.so"); strings[2222] = str->add(strings[2222]); strings[48] = str->add(strings[48]); strings[2223] = str->add("/usr/devel/lib/enlightenment/modules/conf"); str->del(strings[2222]); strings[2224] = str->add("Configuration Panel"); strings[2225] = str->add("configuration"); str->del(strings[48]); str->del(strings[7]); str->del(strings[2220]); strings[7] = str->add(strings[7]); strings[2226] = str->add("images/13"); strings[2227] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/13"); strings[7] = str->add(strings[7]); strings[2226] = str->add(strings[2226]); strings[2228] = str->add("/usr/devel/lib/enlightenment/modules/conf_applications/linux-gnu-x86_64/module.so"); strings[2228] = str->add(strings[2228]); strings[47] = str->add(strings[47]); strings[2229] = str->add("/usr/devel/lib/enlightenment/modules/conf_applications"); str->del(strings[2228]); strings[2230] = str->add("applications"); strings[2231] = str->add("Applications"); strings[2232] = str->add("enlightenment/applications"); strings[2233] = str->add("new_application"); strings[2234] = str->add("New Application"); strings[2235] = str->add("enlightenment/add_application"); strings[2236] = str->add("ibar_applications"); strings[2237] = str->add("IBar Applications"); strings[2238] = str->add("enlightenment/ibar_applications"); strings[2239] = str->add("restart_applications"); strings[2240] = str->add("Restart Applications"); strings[2241] = str->add("enlightenment/restart_applications"); strings[2242] = str->add("startup_applications"); strings[2243] = str->add("Startup Applications"); strings[2244] = str->add("enlightenment/startup_applications"); strings[2245] = str->add("internal"); strings[2246] = str->add("Internal"); strings[2247] = str->add("enlightenment/internal"); strings[2248] = str->add("ibar_other"); strings[2249] = str->add("IBar Other"); strings[2250] = str->add("enlightenment/windows"); strings[2251] = str->add("menus"); strings[2252] = str->add("Menus"); strings[2253] = str->add("enlightenment/menus"); strings[2254] = str->add("favorites_menu"); strings[2255] = str->add("Favorites Menu"); strings[2256] = str->add("enlightenment/favorites"); str->del(strings[47]); str->del(strings[7]); str->del(strings[2226]); strings[7] = str->add(strings[7]); strings[2257] = str->add("images/14"); strings[2258] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/14"); strings[7] = str->add(strings[7]); strings[2257] = str->add(strings[2257]); strings[2259] = str->add("/usr/devel/lib/enlightenment/modules/conf_borders/linux-gnu-x86_64/module.so"); strings[2259] = str->add(strings[2259]); strings[46] = str->add(strings[46]); strings[2260] = str->add("/usr/devel/lib/enlightenment/modules/conf_borders"); str->del(strings[2259]); strings[2261] = str->add("borders"); strings[2262] = str->add("Borders"); strings[2250] = str->add(strings[2250]); strings[2263] = str->add("borders_border"); strings[2264] = str->add("Border"); strings[2250] = str->add(strings[2250]); str->del(strings[46]); strings[2265] = str->add("/usr/devel/lib/enlightenment/modules/conf_clientlist/linux-gnu-x86_64/module.so"); strings[2265] = str->add(strings[2265]); strings[45] = str->add(strings[45]); strings[2266] = str->add("/usr/devel/lib/enlightenment/modules/conf_clientlist"); str->del(strings[2265]); strings[2267] = str->add("client_list_menu"); strings[2268] = str->add("Client List Menu"); strings[2269] = str->add("enlightenment/winlist"); str->del(strings[45]); str->del(strings[7]); str->del(strings[2257]); strings[7] = str->add(strings[7]); strings[2270] = str->add("images/15"); strings[2271] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/15"); strings[7] = str->add(strings[7]); strings[2270] = str->add(strings[2270]); strings[2272] = str->add("/usr/devel/lib/enlightenment/modules/conf_colors/linux-gnu-x86_64/module.so"); strings[2272] = str->add(strings[2272]); strings[44] = str->add(strings[44]); strings[2273] = str->add("/usr/devel/lib/enlightenment/modules/conf_colors"); str->del(strings[2272]); strings[2274] = str->add("colors"); strings[215] = str->add(strings[215]); strings[2275] = str->add("enlightenment/colors"); str->del(strings[44]); str->del(strings[7]); str->del(strings[2270]); strings[7] = str->add(strings[7]); strings[2276] = str->add("images/16"); strings[2277] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/16"); strings[7] = str->add(strings[7]); strings[2276] = str->add(strings[2276]); strings[2278] = str->add("/usr/devel/lib/enlightenment/modules/conf_desk/linux-gnu-x86_64/module.so"); strings[2278] = str->add(strings[2278]); strings[43] = str->add(strings[43]); strings[2279] = str->add("/usr/devel/lib/enlightenment/modules/conf_desk"); str->del(strings[2278]); strings[2280] = str->add("desk"); strings[2281] = str->add("Desk"); strings[2250] = str->add(strings[2250]); str->del(strings[43]); strings[2282] = str->add("/usr/devel/lib/enlightenment/modules/conf_desklock/linux-gnu-x86_64/module.so"); strings[2282] = str->add(strings[2282]); strings[42] = str->add(strings[42]); strings[2283] = str->add("/usr/devel/lib/enlightenment/modules/conf_desklock"); str->del(strings[2282]); strings[2284] = str->add("screen"); strings[1670] = str->add(strings[1670]); strings[2285] = str->add("enlightenment/screen_setup"); strings[2286] = str->add("screen_lock"); strings[2287] = str->add("Screen Lock"); strings[2288] = str->add("enlightenment/desklock"); str->del(strings[42]); strings[2289] = str->add("e,action,mouse,move"); strings[2290] = str->add("e"); strings[2291] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2289] = str->add(strings[2289]); strings[2290] = str->add(strings[2290]); strings[2291] = str->add(strings[2291]); strings[1853] = str->add(strings[1853]); strings[2289] = str->add(strings[2289]); strings[2290] = str->add(strings[2290]); strings[2291] = str->add(strings[2291]); strings[1853] = str->add(strings[1853]); strings[2289] = str->add(strings[2289]); strings[2290] = str->add(strings[2290]); strings[2291] = str->add(strings[2291]); strings[1853] = str->add(strings[1853]); strings[2289] = str->add(strings[2289]); strings[2290] = str->add(strings[2290]); strings[2291] = str->add(strings[2291]); strings[1853] = str->add(strings[1853]); strings[2289] = str->add(strings[2289]); strings[2290] = str->add(strings[2290]); strings[2291] = str->add(strings[2291]); strings[1853] = str->add(strings[1853]); strings[2289] = str->add(strings[2289]); strings[2290] = str->add(strings[2290]); strings[2291] = str->add(strings[2291]); strings[1853] = str->add(strings[1853]); str->del(strings[2289]); str->del(strings[2290]); str->del(strings[2291]); str->del(strings[1853]); str->del(strings[2289]); str->del(strings[2290]); str->del(strings[2291]); str->del(strings[1853]); str->del(strings[2289]); str->del(strings[2290]); str->del(strings[2291]); str->del(strings[1853]); str->del(strings[2289]); str->del(strings[2290]); str->del(strings[2291]); str->del(strings[1853]); str->del(strings[2289]); str->del(strings[2290]); str->del(strings[2291]); str->del(strings[1853]); str->del(strings[2289]); str->del(strings[2290]); str->del(strings[2291]); str->del(strings[1853]); str->del(strings[2289]); str->del(strings[2290]); str->del(strings[2291]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[2276]); strings[7] = str->add(strings[7]); strings[2292] = str->add("images/18"); strings[2293] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/18"); strings[7] = str->add(strings[7]); strings[2292] = str->add(strings[2292]); strings[2294] = str->add("/usr/devel/lib/enlightenment/modules/conf_desks/linux-gnu-x86_64/module.so"); strings[2294] = str->add(strings[2294]); strings[41] = str->add(strings[41]); strings[2295] = str->add("/usr/devel/lib/enlightenment/modules/conf_desks"); str->del(strings[2294]); strings[2296] = str->add("virtual_desktops"); strings[2297] = str->add("Virtual Desktops"); strings[2298] = str->add("enlightenment/desktops"); str->del(strings[41]); strings[2299] = str->add("e,action,mouse,move"); strings[2300] = str->add("e"); strings[2301] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2299] = str->add(strings[2299]); strings[2300] = str->add(strings[2300]); strings[2301] = str->add(strings[2301]); strings[1853] = str->add(strings[1853]); strings[2299] = str->add(strings[2299]); strings[2300] = str->add(strings[2300]); strings[2301] = str->add(strings[2301]); strings[1853] = str->add(strings[1853]); strings[2299] = str->add(strings[2299]); strings[2300] = str->add(strings[2300]); strings[2301] = str->add(strings[2301]); strings[1853] = str->add(strings[1853]); strings[2299] = str->add(strings[2299]); strings[2300] = str->add(strings[2300]); strings[2301] = str->add(strings[2301]); strings[1853] = str->add(strings[1853]); str->del(strings[2299]); str->del(strings[2300]); str->del(strings[2301]); str->del(strings[1853]); str->del(strings[2299]); str->del(strings[2300]); str->del(strings[2301]); str->del(strings[1853]); str->del(strings[2299]); str->del(strings[2300]); str->del(strings[2301]); str->del(strings[1853]); str->del(strings[2299]); str->del(strings[2300]); str->del(strings[2301]); str->del(strings[1853]); str->del(strings[2299]); str->del(strings[2300]); str->del(strings[2301]); str->del(strings[1853]); strings[2302] = str->add("/usr/devel/lib/enlightenment/modules/conf_dialogs/linux-gnu-x86_64/module.so"); strings[2302] = str->add(strings[2302]); strings[40] = str->add(strings[40]); strings[2303] = str->add("/usr/devel/lib/enlightenment/modules/conf_dialogs"); str->del(strings[2302]); strings[2304] = str->add("dialogs"); strings[2305] = str->add("Dialogs"); strings[2306] = str->add("enlightenment/configuration"); str->del(strings[40]); strings[2307] = str->add("e,action,mouse,move"); strings[2308] = str->add("e"); strings[2309] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2307] = str->add(strings[2307]); strings[2308] = str->add(strings[2308]); strings[2309] = str->add(strings[2309]); strings[1853] = str->add(strings[1853]); strings[2307] = str->add(strings[2307]); strings[2308] = str->add(strings[2308]); strings[2309] = str->add(strings[2309]); strings[1853] = str->add(strings[1853]); strings[2307] = str->add(strings[2307]); strings[2308] = str->add(strings[2308]); strings[2309] = str->add(strings[2309]); strings[1853] = str->add(strings[1853]); strings[2307] = str->add(strings[2307]); strings[2308] = str->add(strings[2308]); strings[2309] = str->add(strings[2309]); strings[1853] = str->add(strings[1853]); strings[2307] = str->add(strings[2307]); strings[2308] = str->add(strings[2308]); strings[2309] = str->add(strings[2309]); strings[1853] = str->add(strings[1853]); strings[2307] = str->add(strings[2307]); strings[2308] = str->add(strings[2308]); strings[2309] = str->add(strings[2309]); strings[1853] = str->add(strings[1853]); strings[2307] = str->add(strings[2307]); strings[2308] = str->add(strings[2308]); strings[2309] = str->add(strings[2309]); strings[1853] = str->add(strings[1853]); str->del(strings[2307]); str->del(strings[2308]); str->del(strings[2309]); str->del(strings[1853]); str->del(strings[2307]); str->del(strings[2308]); str->del(strings[2309]); str->del(strings[1853]); str->del(strings[2307]); str->del(strings[2308]); str->del(strings[2309]); str->del(strings[1853]); str->del(strings[2307]); str->del(strings[2308]); str->del(strings[2309]); str->del(strings[1853]); str->del(strings[2307]); str->del(strings[2308]); str->del(strings[2309]); str->del(strings[1853]); str->del(strings[2307]); str->del(strings[2308]); str->del(strings[2309]); str->del(strings[1853]); str->del(strings[2307]); str->del(strings[2308]); str->del(strings[2309]); str->del(strings[1853]); str->del(strings[2307]); str->del(strings[2308]); str->del(strings[2309]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[2292]); strings[7] = str->add(strings[7]); strings[2310] = str->add("images/19"); strings[2311] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/19"); strings[7] = str->add(strings[7]); strings[2310] = str->add(strings[2310]); strings[2312] = str->add("/usr/devel/lib/enlightenment/modules/conf_display/linux-gnu-x86_64/module.so"); strings[2312] = str->add(strings[2312]); strings[39] = str->add(strings[39]); strings[2313] = str->add("/usr/devel/lib/enlightenment/modules/conf_display"); str->del(strings[2312]); strings[2314] = str->add("screen_resolution"); strings[2315] = str->add("Screen Resolution"); strings[2316] = str->add("enlightenment/screen_resolution"); str->del(strings[39]); strings[2317] = str->add("e,action,mouse,move"); strings[2318] = str->add("e"); strings[2319] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2317] = str->add(strings[2317]); strings[2318] = str->add(strings[2318]); strings[2319] = str->add(strings[2319]); strings[1853] = str->add(strings[1853]); strings[2317] = str->add(strings[2317]); strings[2318] = str->add(strings[2318]); strings[2319] = str->add(strings[2319]); strings[1853] = str->add(strings[1853]); strings[2317] = str->add(strings[2317]); strings[2318] = str->add(strings[2318]); strings[2319] = str->add(strings[2319]); strings[1853] = str->add(strings[1853]); strings[2317] = str->add(strings[2317]); strings[2318] = str->add(strings[2318]); strings[2319] = str->add(strings[2319]); strings[1853] = str->add(strings[1853]); strings[2317] = str->add(strings[2317]); strings[2318] = str->add(strings[2318]); strings[2319] = str->add(strings[2319]); strings[1853] = str->add(strings[1853]); strings[2317] = str->add(strings[2317]); strings[2318] = str->add(strings[2318]); strings[2319] = str->add(strings[2319]); strings[1853] = str->add(strings[1853]); strings[2317] = str->add(strings[2317]); strings[2318] = str->add(strings[2318]); strings[2319] = str->add(strings[2319]); strings[1853] = str->add(strings[1853]); strings[2317] = str->add(strings[2317]); strings[2318] = str->add(strings[2318]); strings[2319] = str->add(strings[2319]); strings[1853] = str->add(strings[1853]); strings[2317] = str->add(strings[2317]); strings[2318] = str->add(strings[2318]); strings[2319] = str->add(strings[2319]); strings[1853] = str->add(strings[1853]); str->del(strings[2317]); str->del(strings[2318]); str->del(strings[2319]); str->del(strings[1853]); str->del(strings[2317]); str->del(strings[2318]); str->del(strings[2319]); str->del(strings[1853]); str->del(strings[2317]); str->del(strings[2318]); str->del(strings[2319]); str->del(strings[1853]); str->del(strings[2317]); str->del(strings[2318]); str->del(strings[2319]); str->del(strings[1853]); str->del(strings[2317]); str->del(strings[2318]); str->del(strings[2319]); str->del(strings[1853]); str->del(strings[2317]); str->del(strings[2318]); str->del(strings[2319]); str->del(strings[1853]); str->del(strings[2317]); str->del(strings[2318]); str->del(strings[2319]); str->del(strings[1853]); str->del(strings[2317]); str->del(strings[2318]); str->del(strings[2319]); str->del(strings[1853]); str->del(strings[2317]); str->del(strings[2318]); str->del(strings[2319]); str->del(strings[1853]); str->del(strings[2317]); str->del(strings[2318]); str->del(strings[2319]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[2310]); strings[7] = str->add(strings[7]); strings[2320] = str->add("images/21"); strings[2321] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/21"); strings[7] = str->add(strings[7]); strings[2320] = str->add(strings[2320]); strings[2322] = str->add("/usr/devel/lib/enlightenment/modules/conf_dpms/linux-gnu-x86_64/module.so"); strings[2322] = str->add(strings[2322]); strings[38] = str->add(strings[38]); strings[2323] = str->add("/usr/devel/lib/enlightenment/modules/conf_dpms"); str->del(strings[2322]); strings[2324] = str->add("power_management"); strings[2325] = str->add("Power Management"); strings[2326] = str->add("enlightenment/power_management"); str->del(strings[38]); strings[2327] = str->add("e,action,mouse,move"); strings[2328] = str->add("e"); strings[2329] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2327] = str->add(strings[2327]); strings[2328] = str->add(strings[2328]); strings[2329] = str->add(strings[2329]); strings[1853] = str->add(strings[1853]); strings[2327] = str->add(strings[2327]); strings[2328] = str->add(strings[2328]); strings[2329] = str->add(strings[2329]); strings[1853] = str->add(strings[1853]); strings[2327] = str->add(strings[2327]); strings[2328] = str->add(strings[2328]); strings[2329] = str->add(strings[2329]); strings[1853] = str->add(strings[1853]); strings[2327] = str->add(strings[2327]); strings[2328] = str->add(strings[2328]); strings[2329] = str->add(strings[2329]); strings[1853] = str->add(strings[1853]); strings[2327] = str->add(strings[2327]); strings[2328] = str->add(strings[2328]); strings[2329] = str->add(strings[2329]); strings[1853] = str->add(strings[1853]); strings[2327] = str->add(strings[2327]); strings[2328] = str->add(strings[2328]); strings[2329] = str->add(strings[2329]); strings[1853] = str->add(strings[1853]); strings[2327] = str->add(strings[2327]); strings[2328] = str->add(strings[2328]); strings[2329] = str->add(strings[2329]); strings[1853] = str->add(strings[1853]); strings[2327] = str->add(strings[2327]); strings[2328] = str->add(strings[2328]); strings[2329] = str->add(strings[2329]); strings[1853] = str->add(strings[1853]); strings[2327] = str->add(strings[2327]); strings[2328] = str->add(strings[2328]); strings[2329] = str->add(strings[2329]); strings[1853] = str->add(strings[1853]); strings[2327] = str->add(strings[2327]); strings[2328] = str->add(strings[2328]); strings[2329] = str->add(strings[2329]); strings[1853] = str->add(strings[1853]); strings[2327] = str->add(strings[2327]); strings[2328] = str->add(strings[2328]); strings[2329] = str->add(strings[2329]); strings[1853] = str->add(strings[1853]); strings[2327] = str->add(strings[2327]); strings[2328] = str->add(strings[2328]); strings[2329] = str->add(strings[2329]); strings[1853] = str->add(strings[1853]); str->del(strings[2327]); str->del(strings[2328]); str->del(strings[2329]); str->del(strings[1853]); str->del(strings[2327]); str->del(strings[2328]); str->del(strings[2329]); str->del(strings[1853]); str->del(strings[2327]); str->del(strings[2328]); str->del(strings[2329]); str->del(strings[1853]); str->del(strings[2327]); str->del(strings[2328]); str->del(strings[2329]); str->del(strings[1853]); str->del(strings[2327]); str->del(strings[2328]); str->del(strings[2329]); str->del(strings[1853]); str->del(strings[2327]); str->del(strings[2328]); str->del(strings[2329]); str->del(strings[1853]); str->del(strings[2327]); str->del(strings[2328]); str->del(strings[2329]); str->del(strings[1853]); str->del(strings[2327]); str->del(strings[2328]); str->del(strings[2329]); str->del(strings[1853]); str->del(strings[2327]); str->del(strings[2328]); str->del(strings[2329]); str->del(strings[1853]); str->del(strings[2327]); str->del(strings[2328]); str->del(strings[2329]); str->del(strings[1853]); str->del(strings[2327]); str->del(strings[2328]); str->del(strings[2329]); str->del(strings[1853]); str->del(strings[2327]); str->del(strings[2328]); str->del(strings[2329]); str->del(strings[1853]); str->del(strings[2327]); str->del(strings[2328]); str->del(strings[2329]); str->del(strings[1853]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1760]); str->del(strings[1760]); str->del(strings[1760]); str->del(strings[64]); str->del(strings[2127]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1760]); str->del(strings[1760]); str->del(strings[1760]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1761]); str->del(strings[1761]); str->del(strings[1761]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1762]); str->del(strings[1762]); str->del(strings[1762]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1763]); str->del(strings[1763]); str->del(strings[1763]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1764]); str->del(strings[1764]); str->del(strings[1764]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1765]); str->del(strings[1765]); str->del(strings[1765]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1766]); str->del(strings[1766]); str->del(strings[1766]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1767]); str->del(strings[1767]); str->del(strings[1767]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1768]); str->del(strings[1768]); str->del(strings[1768]); str->del(strings[64]); str->del(strings[1963]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1769]); str->del(strings[1769]); str->del(strings[1769]); str->del(strings[64]); str->del(strings[1963]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[1760]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[1760]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[1761]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[1762]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[1763]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[1764]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[1765]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[1766]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[1767]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[1768]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[64]); str->del(strings[1964]); str->del(strings[64]); str->del(strings[1966]); str->del(strings[64]); str->del(strings[1970]); str->del(strings[1769]); str->del(strings[379]); str->del(strings[64]); str->del(strings[2058]); str->del(strings[64]); str->del(strings[1968]); str->del(strings[361]); str->del(strings[362]); str->del(strings[7]); str->del(strings[2320]); strings[7] = str->add(strings[7]); strings[2330] = str->add("images/22"); strings[2331] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/22"); strings[7] = str->add(strings[7]); strings[2330] = str->add(strings[2330]); strings[2332] = str->add("e,action,mouse,move"); strings[2333] = str->add("e"); strings[2334] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[2332]); str->del(strings[2333]); str->del(strings[2334]); str->del(strings[1853]); strings[2335] = str->add("/usr/devel/lib/enlightenment/modules/conf_exebuf/linux-gnu-x86_64/module.so"); strings[2335] = str->add(strings[2335]); strings[37] = str->add(strings[37]); strings[2336] = str->add("/usr/devel/lib/enlightenment/modules/conf_exebuf"); str->del(strings[2335]); strings[2337] = str->add("run_command"); strings[2338] = str->add("Run Command"); strings[2339] = str->add("enlightenment/run"); str->del(strings[37]); strings[2340] = str->add("e,action,mouse,move"); strings[2341] = str->add("e"); strings[2342] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2340] = str->add(strings[2340]); strings[2341] = str->add(strings[2341]); strings[2342] = str->add(strings[2342]); strings[1853] = str->add(strings[1853]); strings[2340] = str->add(strings[2340]); strings[2341] = str->add(strings[2341]); strings[2342] = str->add(strings[2342]); strings[1853] = str->add(strings[1853]); strings[2340] = str->add(strings[2340]); strings[2341] = str->add(strings[2341]); strings[2342] = str->add(strings[2342]); strings[1853] = str->add(strings[1853]); strings[2340] = str->add(strings[2340]); strings[2341] = str->add(strings[2341]); strings[2342] = str->add(strings[2342]); strings[1853] = str->add(strings[1853]); strings[2340] = str->add(strings[2340]); strings[2341] = str->add(strings[2341]); strings[2342] = str->add(strings[2342]); strings[1853] = str->add(strings[1853]); strings[2340] = str->add(strings[2340]); strings[2341] = str->add(strings[2341]); strings[2342] = str->add(strings[2342]); strings[1853] = str->add(strings[1853]); strings[2340] = str->add(strings[2340]); strings[2341] = str->add(strings[2341]); strings[2342] = str->add(strings[2342]); strings[1853] = str->add(strings[1853]); str->del(strings[2340]); str->del(strings[2341]); str->del(strings[2342]); str->del(strings[1853]); str->del(strings[2340]); str->del(strings[2341]); str->del(strings[2342]); str->del(strings[1853]); str->del(strings[2340]); str->del(strings[2341]); str->del(strings[2342]); str->del(strings[1853]); str->del(strings[2340]); str->del(strings[2341]); str->del(strings[2342]); str->del(strings[1853]); str->del(strings[2340]); str->del(strings[2341]); str->del(strings[2342]); str->del(strings[1853]); str->del(strings[2340]); str->del(strings[2341]); str->del(strings[2342]); str->del(strings[1853]); str->del(strings[2340]); str->del(strings[2341]); str->del(strings[2342]); str->del(strings[1853]); str->del(strings[2340]); str->del(strings[2341]); str->del(strings[2342]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[2330]); strings[7] = str->add(strings[7]); strings[2343] = str->add("images/23"); strings[2344] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/23"); strings[7] = str->add(strings[7]); strings[2343] = str->add(strings[2343]); strings[2345] = str->add("/usr/devel/lib/enlightenment/modules/conf_fonts/linux-gnu-x86_64/module.so"); strings[2345] = str->add(strings[2345]); strings[36] = str->add(strings[36]); strings[2346] = str->add("/usr/devel/lib/enlightenment/modules/conf_fonts"); str->del(strings[2345]); strings[2347] = str->add("fonts"); strings[2348] = str->add("Fonts"); strings[2349] = str->add("enlightenment/fonts"); str->del(strings[36]); strings[2350] = str->add("e,action,mouse,move"); strings[2351] = str->add("e"); strings[2352] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2350] = str->add(strings[2350]); strings[2351] = str->add(strings[2351]); strings[2352] = str->add(strings[2352]); strings[1853] = str->add(strings[1853]); strings[2350] = str->add(strings[2350]); strings[2351] = str->add(strings[2351]); strings[2352] = str->add(strings[2352]); strings[1853] = str->add(strings[1853]); strings[2350] = str->add(strings[2350]); strings[2351] = str->add(strings[2351]); strings[2352] = str->add(strings[2352]); strings[1853] = str->add(strings[1853]); strings[2350] = str->add(strings[2350]); strings[2351] = str->add(strings[2351]); strings[2352] = str->add(strings[2352]); strings[1853] = str->add(strings[1853]); strings[2350] = str->add(strings[2350]); strings[2351] = str->add(strings[2351]); strings[2352] = str->add(strings[2352]); strings[1853] = str->add(strings[1853]); str->del(strings[2350]); str->del(strings[2351]); str->del(strings[2352]); str->del(strings[1853]); str->del(strings[2350]); str->del(strings[2351]); str->del(strings[2352]); str->del(strings[1853]); str->del(strings[2350]); str->del(strings[2351]); str->del(strings[2352]); str->del(strings[1853]); str->del(strings[2350]); str->del(strings[2351]); str->del(strings[2352]); str->del(strings[1853]); str->del(strings[2350]); str->del(strings[2351]); str->del(strings[2352]); str->del(strings[1853]); str->del(strings[2350]); str->del(strings[2351]); str->del(strings[2352]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[2343]); strings[7] = str->add(strings[7]); strings[2353] = str->add("images/24"); strings[2354] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/24"); strings[7] = str->add(strings[7]); strings[2353] = str->add(strings[2353]); strings[2355] = str->add("/usr/devel/lib/enlightenment/modules/conf_icon_theme/linux-gnu-x86_64/module.so"); strings[2355] = str->add(strings[2355]); strings[35] = str->add(strings[35]); strings[2356] = str->add("/usr/devel/lib/enlightenment/modules/conf_icon_theme"); str->del(strings[2355]); strings[2357] = str->add("icon_theme"); strings[2358] = str->add("Icon Theme"); strings[2359] = str->add("enlightenment/icon_theme"); str->del(strings[35]); strings[2360] = str->add("e,action,mouse,move"); strings[2361] = str->add("e"); strings[2362] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2360] = str->add(strings[2360]); strings[2361] = str->add(strings[2361]); strings[2362] = str->add(strings[2362]); strings[1853] = str->add(strings[1853]); strings[2360] = str->add(strings[2360]); strings[2361] = str->add(strings[2361]); strings[2362] = str->add(strings[2362]); strings[1853] = str->add(strings[1853]); strings[2360] = str->add(strings[2360]); strings[2361] = str->add(strings[2361]); strings[2362] = str->add(strings[2362]); strings[1853] = str->add(strings[1853]); strings[2360] = str->add(strings[2360]); strings[2361] = str->add(strings[2361]); strings[2362] = str->add(strings[2362]); strings[1853] = str->add(strings[1853]); strings[2360] = str->add(strings[2360]); strings[2361] = str->add(strings[2361]); strings[2362] = str->add(strings[2362]); strings[1853] = str->add(strings[1853]); str->del(strings[2360]); str->del(strings[2361]); str->del(strings[2362]); str->del(strings[1853]); str->del(strings[2360]); str->del(strings[2361]); str->del(strings[2362]); str->del(strings[1853]); str->del(strings[2360]); str->del(strings[2361]); str->del(strings[2362]); str->del(strings[1853]); str->del(strings[2360]); str->del(strings[2361]); str->del(strings[2362]); str->del(strings[1853]); str->del(strings[2360]); str->del(strings[2361]); str->del(strings[2362]); str->del(strings[1853]); str->del(strings[2360]); str->del(strings[2361]); str->del(strings[2362]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[2353]); strings[7] = str->add(strings[7]); strings[2363] = str->add("images/25"); strings[2364] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/25"); strings[7] = str->add(strings[7]); strings[2363] = str->add(strings[2363]); strings[2365] = str->add("/usr/devel/lib/enlightenment/modules/conf_imc/linux-gnu-x86_64/module.so"); strings[2365] = str->add(strings[2365]); strings[34] = str->add(strings[34]); strings[2366] = str->add("/usr/devel/lib/enlightenment/modules/conf_imc"); str->del(strings[2365]); strings[2367] = str->add("language"); strings[2368] = str->add("Language"); strings[2369] = str->add("enlightenment/intl"); strings[2370] = str->add("input_method_settings"); strings[2371] = str->add("Input Method Settings"); strings[2372] = str->add("enlightenment/imc"); str->del(strings[34]); strings[2373] = str->add("e,action,mouse,move"); strings[2374] = str->add("e"); strings[2375] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2373] = str->add(strings[2373]); strings[2374] = str->add(strings[2374]); strings[2375] = str->add(strings[2375]); strings[1853] = str->add(strings[1853]); strings[2373] = str->add(strings[2373]); strings[2374] = str->add(strings[2374]); strings[2375] = str->add(strings[2375]); strings[1853] = str->add(strings[1853]); strings[2373] = str->add(strings[2373]); strings[2374] = str->add(strings[2374]); strings[2375] = str->add(strings[2375]); strings[1853] = str->add(strings[1853]); strings[2373] = str->add(strings[2373]); strings[2374] = str->add(strings[2374]); strings[2375] = str->add(strings[2375]); strings[1853] = str->add(strings[1853]); str->del(strings[2373]); str->del(strings[2374]); str->del(strings[2375]); str->del(strings[1853]); str->del(strings[2373]); str->del(strings[2374]); str->del(strings[2375]); str->del(strings[1853]); str->del(strings[2373]); str->del(strings[2374]); str->del(strings[2375]); str->del(strings[1853]); str->del(strings[2373]); str->del(strings[2374]); str->del(strings[2375]); str->del(strings[1853]); str->del(strings[2373]); str->del(strings[2374]); str->del(strings[2375]); str->del(strings[1853]); strings[2376] = str->add("/usr/devel/lib/enlightenment/modules/conf_intl/linux-gnu-x86_64/module.so"); strings[2376] = str->add(strings[2376]); strings[33] = str->add(strings[33]); strings[2377] = str->add("/usr/devel/lib/enlightenment/modules/conf_intl"); str->del(strings[2376]); strings[2378] = str->add("language_settings"); strings[2379] = str->add("Language Settings"); strings[2369] = str->add(strings[2369]); str->del(strings[33]); strings[2380] = str->add("e,action,mouse,move"); strings[2381] = str->add("e"); strings[2382] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2380] = str->add(strings[2380]); strings[2381] = str->add(strings[2381]); strings[2382] = str->add(strings[2382]); strings[1853] = str->add(strings[1853]); strings[2380] = str->add(strings[2380]); strings[2381] = str->add(strings[2381]); strings[2382] = str->add(strings[2382]); strings[1853] = str->add(strings[1853]); strings[2380] = str->add(strings[2380]); strings[2381] = str->add(strings[2381]); strings[2382] = str->add(strings[2382]); strings[1853] = str->add(strings[1853]); strings[2380] = str->add(strings[2380]); strings[2381] = str->add(strings[2381]); strings[2382] = str->add(strings[2382]); strings[1853] = str->add(strings[1853]); str->del(strings[2380]); str->del(strings[2381]); str->del(strings[2382]); str->del(strings[1853]); str->del(strings[2380]); str->del(strings[2381]); str->del(strings[2382]); str->del(strings[1853]); str->del(strings[2380]); str->del(strings[2381]); str->del(strings[2382]); str->del(strings[1853]); str->del(strings[2380]); str->del(strings[2381]); str->del(strings[2382]); str->del(strings[1853]); str->del(strings[2380]); str->del(strings[2381]); str->del(strings[2382]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[2363]); strings[7] = str->add(strings[7]); strings[2383] = str->add("images/26"); strings[2384] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/26"); strings[7] = str->add(strings[7]); strings[2383] = str->add(strings[2383]); strings[2385] = str->add("/usr/devel/lib/enlightenment/modules/conf_keybindings/linux-gnu-x86_64/module.so"); strings[2385] = str->add(strings[2385]); strings[32] = str->add(strings[32]); strings[2386] = str->add("/usr/devel/lib/enlightenment/modules/conf_keybindings"); str->del(strings[2385]); strings[2387] = str->add("keyboard_and_mouse"); strings[2388] = str->add("Keyboard & Mouse"); strings[2389] = str->add("enlightenment/behavior"); strings[2390] = str->add("key_bindings"); strings[2391] = str->add("Key Bindings"); strings[2392] = str->add("enlightenment/keys"); str->del(strings[32]); strings[2393] = str->add("e,action,mouse,move"); strings[2394] = str->add("e"); strings[2395] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2393] = str->add(strings[2393]); strings[2394] = str->add(strings[2394]); strings[2395] = str->add(strings[2395]); strings[1853] = str->add(strings[1853]); strings[2393] = str->add(strings[2393]); strings[2394] = str->add(strings[2394]); strings[2395] = str->add(strings[2395]); strings[1853] = str->add(strings[1853]); strings[2393] = str->add(strings[2393]); strings[2394] = str->add(strings[2394]); strings[2395] = str->add(strings[2395]); strings[1853] = str->add(strings[1853]); str->del(strings[2393]); str->del(strings[2394]); str->del(strings[2395]); str->del(strings[1853]); str->del(strings[2393]); str->del(strings[2394]); str->del(strings[2395]); str->del(strings[1853]); str->del(strings[2393]); str->del(strings[2394]); str->del(strings[2395]); str->del(strings[1853]); str->del(strings[2393]); str->del(strings[2394]); str->del(strings[2395]); str->del(strings[1853]); strings[2396] = str->add("/usr/devel/lib/enlightenment/modules/conf_menus/linux-gnu-x86_64/module.so"); strings[2396] = str->add(strings[2396]); strings[31] = str->add(strings[31]); strings[2397] = str->add("/usr/devel/lib/enlightenment/modules/conf_menus"); str->del(strings[2396]); strings[2398] = str->add("menu_settings"); strings[2399] = str->add("Menu Settings"); strings[2400] = str->add("enlightenment/menu_settings"); str->del(strings[31]); strings[2401] = str->add("e,action,mouse,move"); strings[2402] = str->add("e"); strings[2403] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2401] = str->add(strings[2401]); strings[2402] = str->add(strings[2402]); strings[2403] = str->add(strings[2403]); strings[1853] = str->add(strings[1853]); strings[2401] = str->add(strings[2401]); strings[2402] = str->add(strings[2402]); strings[2403] = str->add(strings[2403]); strings[1853] = str->add(strings[1853]); strings[2401] = str->add(strings[2401]); strings[2402] = str->add(strings[2402]); strings[2403] = str->add(strings[2403]); strings[1853] = str->add(strings[1853]); strings[2401] = str->add(strings[2401]); strings[2402] = str->add(strings[2402]); strings[2403] = str->add(strings[2403]); strings[1853] = str->add(strings[1853]); strings[2401] = str->add(strings[2401]); strings[2402] = str->add(strings[2402]); strings[2403] = str->add(strings[2403]); strings[1853] = str->add(strings[1853]); strings[2401] = str->add(strings[2401]); strings[2402] = str->add(strings[2402]); strings[2403] = str->add(strings[2403]); strings[1853] = str->add(strings[1853]); strings[2401] = str->add(strings[2401]); strings[2402] = str->add(strings[2402]); strings[2403] = str->add(strings[2403]); strings[1853] = str->add(strings[1853]); str->del(strings[2401]); str->del(strings[2402]); str->del(strings[2403]); str->del(strings[1853]); str->del(strings[2401]); str->del(strings[2402]); str->del(strings[2403]); str->del(strings[1853]); str->del(strings[2401]); str->del(strings[2402]); str->del(strings[2403]); str->del(strings[1853]); str->del(strings[2401]); str->del(strings[2402]); str->del(strings[2403]); str->del(strings[1853]); str->del(strings[2401]); str->del(strings[2402]); str->del(strings[2403]); str->del(strings[1853]); str->del(strings[2401]); str->del(strings[2402]); str->del(strings[2403]); str->del(strings[1853]); str->del(strings[2401]); str->del(strings[2402]); str->del(strings[2403]); str->del(strings[1853]); str->del(strings[2401]); str->del(strings[2402]); str->del(strings[2403]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[2383]); strings[7] = str->add(strings[7]); strings[2404] = str->add("images/27"); strings[2405] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/27"); strings[7] = str->add(strings[7]); strings[2404] = str->add(strings[2404]); strings[2406] = str->add("/usr/devel/lib/enlightenment/modules/conf_mime/linux-gnu-x86_64/module.so"); strings[2406] = str->add(strings[2406]); strings[30] = str->add(strings[30]); strings[2407] = str->add("/usr/devel/lib/enlightenment/modules/conf_mime"); str->del(strings[2406]); strings[12] = str->add(strings[12]); strings[2408] = str->add("File Manager"); strings[2409] = str->add("enlightenment/fileman"); strings[2410] = str->add("file_icons"); strings[2411] = str->add("File Icons"); strings[2412] = str->add("enlightenment/file_icons"); str->del(strings[30]); strings[2413] = str->add("e,action,mouse,move"); strings[2414] = str->add("e"); strings[2415] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2413] = str->add(strings[2413]); strings[2414] = str->add(strings[2414]); strings[2415] = str->add(strings[2415]); strings[1853] = str->add(strings[1853]); strings[2413] = str->add(strings[2413]); strings[2414] = str->add(strings[2414]); strings[2415] = str->add(strings[2415]); strings[1853] = str->add(strings[1853]); strings[2413] = str->add(strings[2413]); strings[2414] = str->add(strings[2414]); strings[2415] = str->add(strings[2415]); strings[1853] = str->add(strings[1853]); strings[2413] = str->add(strings[2413]); strings[2414] = str->add(strings[2414]); strings[2415] = str->add(strings[2415]); strings[1853] = str->add(strings[1853]); strings[2413] = str->add(strings[2413]); strings[2414] = str->add(strings[2414]); strings[2415] = str->add(strings[2415]); strings[1853] = str->add(strings[1853]); str->del(strings[2413]); str->del(strings[2414]); str->del(strings[2415]); str->del(strings[1853]); str->del(strings[2413]); str->del(strings[2414]); str->del(strings[2415]); str->del(strings[1853]); str->del(strings[2413]); str->del(strings[2414]); str->del(strings[2415]); str->del(strings[1853]); str->del(strings[2413]); str->del(strings[2414]); str->del(strings[2415]); str->del(strings[1853]); str->del(strings[2413]); str->del(strings[2414]); str->del(strings[2415]); str->del(strings[1853]); str->del(strings[2413]); str->del(strings[2414]); str->del(strings[2415]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[2404]); strings[7] = str->add(strings[7]); strings[2416] = str->add("images/28"); strings[2417] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/28"); strings[7] = str->add(strings[7]); strings[2416] = str->add(strings[2416]); strings[2418] = str->add("/usr/devel/lib/enlightenment/modules/conf_mouse/linux-gnu-x86_64/module.so"); strings[2418] = str->add(strings[2418]); strings[29] = str->add(strings[29]); strings[2419] = str->add("/usr/devel/lib/enlightenment/modules/conf_mouse"); str->del(strings[2418]); strings[2420] = str->add("mouse_acceleration"); strings[2421] = str->add("Mouse Acceleration"); strings[2422] = str->add("enlightenment/mouse_clean"); str->del(strings[29]); strings[2423] = str->add("e,action,mouse,move"); strings[2424] = str->add("e"); strings[2425] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2423] = str->add(strings[2423]); strings[2424] = str->add(strings[2424]); strings[2425] = str->add(strings[2425]); strings[1853] = str->add(strings[1853]); strings[2423] = str->add(strings[2423]); strings[2424] = str->add(strings[2424]); strings[2425] = str->add(strings[2425]); strings[1853] = str->add(strings[1853]); strings[2423] = str->add(strings[2423]); strings[2424] = str->add(strings[2424]); strings[2425] = str->add(strings[2425]); strings[1853] = str->add(strings[1853]); strings[2423] = str->add(strings[2423]); strings[2424] = str->add(strings[2424]); strings[2425] = str->add(strings[2425]); strings[1853] = str->add(strings[1853]); strings[2423] = str->add(strings[2423]); strings[2424] = str->add(strings[2424]); strings[2425] = str->add(strings[2425]); strings[1853] = str->add(strings[1853]); strings[2423] = str->add(strings[2423]); strings[2424] = str->add(strings[2424]); strings[2425] = str->add(strings[2425]); strings[1853] = str->add(strings[1853]); strings[2423] = str->add(strings[2423]); strings[2424] = str->add(strings[2424]); strings[2425] = str->add(strings[2425]); strings[1853] = str->add(strings[1853]); str->del(strings[2423]); str->del(strings[2424]); str->del(strings[2425]); str->del(strings[1853]); str->del(strings[2423]); str->del(strings[2424]); str->del(strings[2425]); str->del(strings[1853]); str->del(strings[2423]); str->del(strings[2424]); str->del(strings[2425]); str->del(strings[1853]); str->del(strings[2423]); str->del(strings[2424]); str->del(strings[2425]); str->del(strings[1853]); str->del(strings[2423]); str->del(strings[2424]); str->del(strings[2425]); str->del(strings[1853]); str->del(strings[2423]); str->del(strings[2424]); str->del(strings[2425]); str->del(strings[1853]); str->del(strings[2423]); str->del(strings[2424]); str->del(strings[2425]); str->del(strings[1853]); str->del(strings[2423]); str->del(strings[2424]); str->del(strings[2425]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[2416]); strings[7] = str->add(strings[7]); strings[2426] = str->add("images/29"); strings[2427] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/29"); strings[7] = str->add(strings[7]); strings[2426] = str->add(strings[2426]); strings[2428] = str->add("/usr/devel/lib/enlightenment/modules/conf_mousebindings/linux-gnu-x86_64/module.so"); strings[2428] = str->add(strings[2428]); strings[28] = str->add(strings[28]); strings[2429] = str->add("/usr/devel/lib/enlightenment/modules/conf_mousebindings"); str->del(strings[2428]); strings[2430] = str->add("mouse_bindings"); strings[2431] = str->add("Mouse Bindings"); strings[2422] = str->add(strings[2422]); str->del(strings[28]); strings[2432] = str->add("e,action,mouse,move"); strings[2433] = str->add("e"); strings[2434] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2432] = str->add(strings[2432]); strings[2433] = str->add(strings[2433]); strings[2434] = str->add(strings[2434]); strings[1853] = str->add(strings[1853]); strings[2432] = str->add(strings[2432]); strings[2433] = str->add(strings[2433]); strings[2434] = str->add(strings[2434]); strings[1853] = str->add(strings[1853]); strings[2432] = str->add(strings[2432]); strings[2433] = str->add(strings[2433]); strings[2434] = str->add(strings[2434]); strings[1853] = str->add(strings[1853]); strings[2432] = str->add(strings[2432]); strings[2433] = str->add(strings[2433]); strings[2434] = str->add(strings[2434]); strings[1853] = str->add(strings[1853]); strings[2432] = str->add(strings[2432]); strings[2433] = str->add(strings[2433]); strings[2434] = str->add(strings[2434]); strings[1853] = str->add(strings[1853]); strings[2432] = str->add(strings[2432]); strings[2433] = str->add(strings[2433]); strings[2434] = str->add(strings[2434]); strings[1853] = str->add(strings[1853]); str->del(strings[2432]); str->del(strings[2433]); str->del(strings[2434]); str->del(strings[1853]); str->del(strings[2432]); str->del(strings[2433]); str->del(strings[2434]); str->del(strings[1853]); str->del(strings[2432]); str->del(strings[2433]); str->del(strings[2434]); str->del(strings[1853]); str->del(strings[2432]); str->del(strings[2433]); str->del(strings[2434]); str->del(strings[1853]); str->del(strings[2432]); str->del(strings[2433]); str->del(strings[2434]); str->del(strings[1853]); str->del(strings[2432]); str->del(strings[2433]); str->del(strings[2434]); str->del(strings[1853]); str->del(strings[2432]); str->del(strings[2433]); str->del(strings[2434]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[2426]); strings[7] = str->add(strings[7]); strings[2435] = str->add("images/30"); strings[2436] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/30"); strings[7] = str->add(strings[7]); strings[2435] = str->add(strings[2435]); strings[2437] = str->add("e,action,mouse,move"); strings[2438] = str->add("e"); strings[2439] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[2437]); str->del(strings[2438]); str->del(strings[2439]); str->del(strings[1853]); strings[2440] = str->add("/usr/devel/lib/enlightenment/modules/conf_mouse_cursor/linux-gnu-x86_64/module.so"); strings[2440] = str->add(strings[2440]); strings[27] = str->add(strings[27]); strings[2441] = str->add("/usr/devel/lib/enlightenment/modules/conf_mouse_cursor"); str->del(strings[2440]); strings[2442] = str->add("mouse_cursor"); strings[2443] = str->add("Mouse Cursor"); strings[2444] = str->add("enlightenment/mouse"); str->del(strings[27]); strings[2445] = str->add("e,action,mouse,move"); strings[2446] = str->add("e"); strings[2447] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2445] = str->add(strings[2445]); strings[2446] = str->add(strings[2446]); strings[2447] = str->add(strings[2447]); strings[1853] = str->add(strings[1853]); strings[2445] = str->add(strings[2445]); strings[2446] = str->add(strings[2446]); strings[2447] = str->add(strings[2447]); strings[1853] = str->add(strings[1853]); strings[2445] = str->add(strings[2445]); strings[2446] = str->add(strings[2446]); strings[2447] = str->add(strings[2447]); strings[1853] = str->add(strings[1853]); str->del(strings[2445]); str->del(strings[2446]); str->del(strings[2447]); str->del(strings[1853]); str->del(strings[2445]); str->del(strings[2446]); str->del(strings[2447]); str->del(strings[1853]); str->del(strings[2445]); str->del(strings[2446]); str->del(strings[2447]); str->del(strings[1853]); str->del(strings[2445]); str->del(strings[2446]); str->del(strings[2447]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[2435]); strings[7] = str->add(strings[7]); strings[2448] = str->add("images/31"); strings[2449] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/31"); strings[7] = str->add(strings[7]); strings[2448] = str->add(strings[2448]); strings[2450] = str->add("/usr/devel/lib/enlightenment/modules/conf_paths/linux-gnu-x86_64/module.so"); strings[2450] = str->add(strings[2450]); strings[26] = str->add(strings[26]); strings[2451] = str->add("/usr/devel/lib/enlightenment/modules/conf_paths"); str->del(strings[2450]); strings[2452] = str->add("search_directories"); strings[2453] = str->add("Search Directories"); strings[2454] = str->add("enlightenment/directories"); str->del(strings[26]); strings[2455] = str->add("e,action,mouse,move"); strings[2456] = str->add("e"); strings[2457] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2455] = str->add(strings[2455]); strings[2456] = str->add(strings[2456]); strings[2457] = str->add(strings[2457]); strings[1853] = str->add(strings[1853]); strings[2455] = str->add(strings[2455]); strings[2456] = str->add(strings[2456]); strings[2457] = str->add(strings[2457]); strings[1853] = str->add(strings[1853]); strings[2455] = str->add(strings[2455]); strings[2456] = str->add(strings[2456]); strings[2457] = str->add(strings[2457]); strings[1853] = str->add(strings[1853]); strings[2455] = str->add(strings[2455]); strings[2456] = str->add(strings[2456]); strings[2457] = str->add(strings[2457]); strings[1853] = str->add(strings[1853]); strings[2455] = str->add(strings[2455]); strings[2456] = str->add(strings[2456]); strings[2457] = str->add(strings[2457]); strings[1853] = str->add(strings[1853]); strings[2455] = str->add(strings[2455]); strings[2456] = str->add(strings[2456]); strings[2457] = str->add(strings[2457]); strings[1853] = str->add(strings[1853]); str->del(strings[2455]); str->del(strings[2456]); str->del(strings[2457]); str->del(strings[1853]); str->del(strings[2455]); str->del(strings[2456]); str->del(strings[2457]); str->del(strings[1853]); str->del(strings[2455]); str->del(strings[2456]); str->del(strings[2457]); str->del(strings[1853]); str->del(strings[2455]); str->del(strings[2456]); str->del(strings[2457]); str->del(strings[1853]); str->del(strings[2455]); str->del(strings[2456]); str->del(strings[2457]); str->del(strings[1853]); str->del(strings[2455]); str->del(strings[2456]); str->del(strings[2457]); str->del(strings[1853]); str->del(strings[2455]); str->del(strings[2456]); str->del(strings[2457]); str->del(strings[1853]); strings[2458] = str->add("/usr/devel/lib/enlightenment/modules/conf_performance/linux-gnu-x86_64/module.so"); strings[2458] = str->add(strings[2458]); strings[25] = str->add(strings[25]); strings[2459] = str->add("/usr/devel/lib/enlightenment/modules/conf_performance"); str->del(strings[2458]); strings[2460] = str->add("performance"); strings[2461] = str->add("Performance"); strings[2462] = str->add("enlightenment/performance"); str->del(strings[25]); strings[2463] = str->add("e,action,mouse,move"); strings[2464] = str->add("e"); strings[2465] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2463] = str->add(strings[2463]); strings[2464] = str->add(strings[2464]); strings[2465] = str->add(strings[2465]); strings[1853] = str->add(strings[1853]); strings[2463] = str->add(strings[2463]); strings[2464] = str->add(strings[2464]); strings[2465] = str->add(strings[2465]); strings[1853] = str->add(strings[1853]); strings[2463] = str->add(strings[2463]); strings[2464] = str->add(strings[2464]); strings[2465] = str->add(strings[2465]); strings[1853] = str->add(strings[1853]); strings[2463] = str->add(strings[2463]); strings[2464] = str->add(strings[2464]); strings[2465] = str->add(strings[2465]); strings[1853] = str->add(strings[1853]); str->del(strings[2463]); str->del(strings[2464]); str->del(strings[2465]); str->del(strings[1853]); str->del(strings[2463]); str->del(strings[2464]); str->del(strings[2465]); str->del(strings[1853]); str->del(strings[2463]); str->del(strings[2464]); str->del(strings[2465]); str->del(strings[1853]); str->del(strings[2463]); str->del(strings[2464]); str->del(strings[2465]); str->del(strings[1853]); str->del(strings[2463]); str->del(strings[2464]); str->del(strings[2465]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[2448]); strings[7] = str->add(strings[7]); strings[2466] = str->add("images/32"); strings[2467] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/32"); strings[7] = str->add(strings[7]); strings[2466] = str->add(strings[2466]); strings[2468] = str->add("e,action,mouse,move"); strings[2469] = str->add("e"); strings[2470] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[2468]); str->del(strings[2469]); str->del(strings[2470]); str->del(strings[1853]); strings[2471] = str->add("/usr/devel/lib/enlightenment/modules/conf_profiles/linux-gnu-x86_64/module.so"); strings[2471] = str->add(strings[2471]); strings[24] = str->add(strings[24]); strings[2472] = str->add("/usr/devel/lib/enlightenment/modules/conf_profiles"); str->del(strings[2471]); strings[2473] = str->add("profiles"); strings[2474] = str->add("Profiles"); strings[2475] = str->add("enlightenment/profiles"); str->del(strings[24]); strings[2476] = str->add("e,action,mouse,move"); strings[2477] = str->add("e"); strings[2478] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[2476] = str->add(strings[2476]); strings[2477] = str->add(strings[2477]); strings[2478] = str->add(strings[2478]); strings[1853] = str->add(strings[1853]); strings[2476] = str->add(strings[2476]); strings[2477] = str->add(strings[2477]); strings[1740] = str->add(strings[1740]); strings[1853] = str->add(strings[1853]); strings[1737] = str->add(strings[1737]); strings[1856] = str->add(strings[1856]); strings[2476] = str->add(strings[2476]); strings[2477] = str->add(strings[2477]); strings[1740] = str->add(strings[1740]); strings[1856] = str->add(strings[1856]); strings[1737] = str->add(strings[1737]); strings[1862] = str->add(strings[1862]); strings[2476] = str->add(strings[2476]); strings[2477] = str->add(strings[2477]); strings[2478] = str->add(strings[2478]); strings[1862] = str->add(strings[1862]); strings[2476] = str->add(strings[2476]); strings[2477] = str->add(strings[2477]); strings[2478] = str->add(strings[2478]); strings[1862] = str->add(strings[1862]); str->del(strings[2476]); str->del(strings[2477]); str->del(strings[2478]); str->del(strings[1853]); str->del(strings[2476]); str->del(strings[2477]); str->del(strings[2478]); str->del(strings[1853]); str->del(strings[2476]); str->del(strings[2477]); str->del(strings[1740]); str->del(strings[1853]); str->del(strings[1737]); str->del(strings[1856]); str->del(strings[2476]); str->del(strings[2477]); str->del(strings[1740]); str->del(strings[1856]); str->del(strings[1737]); str->del(strings[1862]); str->del(strings[2476]); str->del(strings[2477]); str->del(strings[2478]); str->del(strings[1862]); str->del(strings[2476]); str->del(strings[2477]); str->del(strings[2478]); str->del(strings[1862]); str->del(strings[7]); str->del(strings[2466]); strings[7] = str->add(strings[7]); strings[2479] = str->add("images/33"); strings[2480] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/33"); strings[7] = str->add(strings[7]); strings[2479] = str->add(strings[2479]); strings[2481] = str->add("/usr/devel/lib/enlightenment/modules/conf_screensaver/linux-gnu-x86_64/module.so"); strings[2481] = str->add(strings[2481]); strings[23] = str->add(strings[23]); strings[2482] = str->add("/usr/devel/lib/enlightenment/modules/conf_screensaver"); str->del(strings[2481]); strings[2483] = str->add("screen_saver"); strings[2484] = str->add("Screen Saver"); strings[2485] = str->add("enlightenment/screensaver"); str->del(strings[23]); strings[2486] = str->add("e,action,mouse,move"); strings[2487] = str->add("e"); strings[2488] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); strings[2486] = str->add(strings[2486]); strings[2487] = str->add(strings[2487]); strings[2488] = str->add(strings[2488]); strings[1862] = str->add(strings[1862]); strings[2486] = str->add(strings[2486]); strings[2487] = str->add(strings[2487]); strings[2488] = str->add(strings[2488]); strings[1862] = str->add(strings[1862]); strings[2486] = str->add(strings[2486]); strings[2487] = str->add(strings[2487]); strings[2488] = str->add(strings[2488]); strings[1862] = str->add(strings[1862]); strings[2486] = str->add(strings[2486]); strings[2487] = str->add(strings[2487]); strings[2488] = str->add(strings[2488]); strings[1862] = str->add(strings[1862]); strings[2486] = str->add(strings[2486]); strings[2487] = str->add(strings[2487]); strings[2488] = str->add(strings[2488]); strings[1862] = str->add(strings[1862]); strings[2486] = str->add(strings[2486]); strings[2487] = str->add(strings[2487]); strings[2488] = str->add(strings[2488]); strings[1862] = str->add(strings[1862]); str->del(strings[2486]); str->del(strings[2487]); str->del(strings[2488]); str->del(strings[1862]); str->del(strings[2486]); str->del(strings[2487]); str->del(strings[2488]); str->del(strings[1862]); str->del(strings[2486]); str->del(strings[2487]); str->del(strings[2488]); str->del(strings[1862]); str->del(strings[2486]); str->del(strings[2487]); str->del(strings[2488]); str->del(strings[1862]); str->del(strings[2486]); str->del(strings[2487]); str->del(strings[2488]); str->del(strings[1862]); str->del(strings[2486]); str->del(strings[2487]); str->del(strings[2488]); str->del(strings[1862]); str->del(strings[2486]); str->del(strings[2487]); str->del(strings[2488]); str->del(strings[1862]); str->del(strings[7]); str->del(strings[2479]); strings[7] = str->add(strings[7]); strings[2489] = str->add("images/34"); strings[2490] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/34"); strings[7] = str->add(strings[7]); strings[2489] = str->add(strings[2489]); strings[2491] = str->add("/usr/devel/lib/enlightenment/modules/conf_shelves/linux-gnu-x86_64/module.so"); strings[2491] = str->add(strings[2491]); strings[22] = str->add(strings[22]); strings[2492] = str->add("/usr/devel/lib/enlightenment/modules/conf_shelves"); str->del(strings[2491]); strings[2493] = str->add("shelves"); strings[2494] = str->add("Shelves"); strings[2495] = str->add("enlightenment/shelf"); str->del(strings[22]); strings[2496] = str->add("e,action,mouse,move"); strings[2497] = str->add("e"); strings[2498] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); strings[2496] = str->add(strings[2496]); strings[2497] = str->add(strings[2497]); strings[2498] = str->add(strings[2498]); strings[1862] = str->add(strings[1862]); strings[2496] = str->add(strings[2496]); strings[2497] = str->add(strings[2497]); strings[2498] = str->add(strings[2498]); strings[1862] = str->add(strings[1862]); strings[2496] = str->add(strings[2496]); strings[2497] = str->add(strings[2497]); strings[1740] = str->add(strings[1740]); strings[1862] = str->add(strings[1862]); strings[1737] = str->add(strings[1737]); strings[1856] = str->add(strings[1856]); strings[2496] = str->add(strings[2496]); strings[2497] = str->add(strings[2497]); strings[2498] = str->add(strings[2498]); strings[1856] = str->add(strings[1856]); strings[2496] = str->add(strings[2496]); strings[2497] = str->add(strings[2497]); strings[2498] = str->add(strings[2498]); strings[1856] = str->add(strings[1856]); str->del(strings[2496]); str->del(strings[2497]); str->del(strings[2498]); str->del(strings[1862]); str->del(strings[2496]); str->del(strings[2497]); str->del(strings[2498]); str->del(strings[1862]); str->del(strings[2496]); str->del(strings[2497]); str->del(strings[2498]); str->del(strings[1862]); str->del(strings[2496]); str->del(strings[2497]); str->del(strings[1740]); str->del(strings[1862]); str->del(strings[1737]); str->del(strings[1856]); str->del(strings[2496]); str->del(strings[2497]); str->del(strings[2498]); str->del(strings[1856]); str->del(strings[2496]); str->del(strings[2497]); str->del(strings[2498]); str->del(strings[1856]); strings[2499] = str->add("/usr/devel/lib/enlightenment/modules/conf_startup/linux-gnu-x86_64/module.so"); strings[2499] = str->add(strings[2499]); strings[21] = str->add(strings[21]); strings[2500] = str->add("/usr/devel/lib/enlightenment/modules/conf_startup"); str->del(strings[2499]); strings[2501] = str->add("startup"); strings[2502] = str->add("Startup"); strings[2503] = str->add("enlightenment/startup"); str->del(strings[21]); strings[2504] = str->add("e,action,mouse,move"); strings[2505] = str->add("e"); strings[2506] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); strings[2504] = str->add(strings[2504]); strings[2505] = str->add(strings[2505]); strings[2506] = str->add(strings[2506]); strings[1856] = str->add(strings[1856]); strings[2504] = str->add(strings[2504]); strings[2505] = str->add(strings[2505]); strings[2506] = str->add(strings[2506]); strings[1856] = str->add(strings[1856]); strings[2504] = str->add(strings[2504]); strings[2505] = str->add(strings[2505]); strings[1740] = str->add(strings[1740]); strings[1856] = str->add(strings[1856]); strings[1737] = str->add(strings[1737]); strings[1853] = str->add(strings[1853]); strings[2504] = str->add(strings[2504]); strings[2505] = str->add(strings[2505]); strings[2506] = str->add(strings[2506]); strings[1853] = str->add(strings[1853]); strings[2504] = str->add(strings[2504]); strings[2505] = str->add(strings[2505]); strings[2506] = str->add(strings[2506]); strings[1853] = str->add(strings[1853]); strings[1740] = str->add(strings[1740]); strings[1853] = str->add(strings[1853]); strings[2504] = str->add(strings[2504]); strings[2505] = str->add(strings[2505]); strings[2504] = str->add(strings[2504]); strings[2505] = str->add(strings[2505]); strings[2507] = str->add("e,state,focused"); strings[2505] = str->add(strings[2505]); strings[2504] = str->add(strings[2504]); strings[2505] = str->add(strings[2505]); str->del(strings[2504]); str->del(strings[2505]); str->del(strings[2506]); str->del(strings[1856]); str->del(strings[2504]); str->del(strings[2505]); str->del(strings[2506]); str->del(strings[1856]); str->del(strings[2504]); str->del(strings[2505]); str->del(strings[2506]); str->del(strings[1856]); str->del(strings[2504]); str->del(strings[2505]); str->del(strings[1740]); str->del(strings[1856]); str->del(strings[1737]); str->del(strings[1853]); str->del(strings[2504]); str->del(strings[2505]); str->del(strings[2506]); str->del(strings[1853]); str->del(strings[2504]); str->del(strings[2505]); str->del(strings[2506]); str->del(strings[1853]); str->del(strings[1740]); str->del(strings[1853]); str->del(strings[2504]); str->del(strings[2505]); str->del(strings[2504]); str->del(strings[2505]); str->del(strings[2507]); str->del(strings[2505]); str->del(strings[2504]); str->del(strings[2505]); str->del(strings[7]); str->del(strings[2489]); strings[7] = str->add(strings[7]); strings[2508] = str->add("images/35"); strings[2509] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/35"); strings[7] = str->add(strings[7]); strings[2508] = str->add(strings[2508]); strings[2510] = str->add("e,action,mouse,move"); strings[2511] = str->add("e"); str->del(strings[2510]); str->del(strings[2511]); strings[2512] = str->add("/usr/devel/lib/enlightenment/modules/conf_theme/linux-gnu-x86_64/module.so"); strings[2512] = str->add(strings[2512]); strings[20] = str->add(strings[20]); strings[2513] = str->add("/usr/devel/lib/enlightenment/modules/conf_theme"); str->del(strings[2512]); strings[63] = str->add(strings[63]); strings[2514] = str->add("Theme"); strings[376] = str->add(strings[376]); str->del(strings[20]); strings[2515] = str->add("e,action,mouse,move"); strings[2516] = str->add("e"); strings[1737] = str->add(strings[1737]); strings[377] = str->add(strings[377]); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); strings[2515] = str->add(strings[2515]); strings[2516] = str->add(strings[2516]); strings[2517] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[2517] = str->add(strings[2517]); strings[1946] = str->add(strings[1946]); strings[2517] = str->add(strings[2517]); strings[1946] = str->add(strings[1946]); strings[2515] = str->add(strings[2515]); strings[2516] = str->add(strings[2516]); strings[2517] = str->add(strings[2517]); strings[377] = str->add(strings[377]); strings[2517] = str->add(strings[2517]); strings[1946] = str->add(strings[1946]); strings[2517] = str->add(strings[2517]); strings[1946] = str->add(strings[1946]); strings[2515] = str->add(strings[2515]); strings[2516] = str->add(strings[2516]); strings[2517] = str->add(strings[2517]); strings[377] = str->add(strings[377]); strings[2517] = str->add(strings[2517]); strings[1946] = str->add(strings[1946]); strings[2517] = str->add(strings[2517]); strings[1946] = str->add(strings[1946]); str->del(strings[2515]); str->del(strings[2516]); str->del(strings[1737]); str->del(strings[377]); str->del(strings[1737]); str->del(strings[1946]); str->del(strings[1737]); str->del(strings[1946]); str->del(strings[2515]); str->del(strings[2516]); str->del(strings[2517]); str->del(strings[377]); str->del(strings[2517]); str->del(strings[1946]); str->del(strings[2517]); str->del(strings[1946]); str->del(strings[2515]); str->del(strings[2516]); str->del(strings[2517]); str->del(strings[377]); str->del(strings[2517]); str->del(strings[1946]); str->del(strings[2517]); str->del(strings[1946]); str->del(strings[2515]); str->del(strings[2516]); str->del(strings[2517]); str->del(strings[377]); str->del(strings[2517]); str->del(strings[1946]); str->del(strings[2517]); str->del(strings[1946]); str->del(strings[7]); str->del(strings[2508]); strings[7] = str->add(strings[7]); strings[2518] = str->add("images/36"); strings[2519] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/36"); strings[7] = str->add(strings[7]); strings[2518] = str->add(strings[2518]); strings[2520] = str->add("e,action,mouse,move"); strings[2521] = str->add("e"); strings[2522] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[2522] = str->add(strings[2522]); strings[1946] = str->add(strings[1946]); strings[2522] = str->add(strings[2522]); strings[1946] = str->add(strings[1946]); str->del(strings[2520]); str->del(strings[2521]); str->del(strings[2522]); str->del(strings[377]); str->del(strings[2522]); str->del(strings[1946]); str->del(strings[2522]); str->del(strings[1946]); strings[2523] = str->add("/usr/devel/lib/enlightenment/modules/conf_transitions/linux-gnu-x86_64/module.so"); strings[2523] = str->add(strings[2523]); strings[19] = str->add(strings[19]); strings[2524] = str->add("/usr/devel/lib/enlightenment/modules/conf_transitions"); str->del(strings[2523]); strings[2525] = str->add("transitions"); strings[2526] = str->add("Transitions"); strings[2527] = str->add("enlightenment/transitions"); str->del(strings[19]); strings[2528] = str->add("e,action,mouse,move"); strings[2529] = str->add("e"); strings[2530] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[2530] = str->add(strings[2530]); strings[1946] = str->add(strings[1946]); strings[2530] = str->add(strings[2530]); strings[1946] = str->add(strings[1946]); strings[2528] = str->add(strings[2528]); strings[2529] = str->add(strings[2529]); strings[2530] = str->add(strings[2530]); strings[377] = str->add(strings[377]); strings[2530] = str->add(strings[2530]); strings[1946] = str->add(strings[1946]); strings[2530] = str->add(strings[2530]); strings[1946] = str->add(strings[1946]); strings[2528] = str->add(strings[2528]); strings[2529] = str->add(strings[2529]); strings[2530] = str->add(strings[2530]); strings[377] = str->add(strings[377]); strings[2530] = str->add(strings[2530]); strings[1946] = str->add(strings[1946]); strings[2530] = str->add(strings[2530]); strings[1946] = str->add(strings[1946]); strings[2528] = str->add(strings[2528]); strings[2529] = str->add(strings[2529]); strings[2530] = str->add(strings[2530]); strings[377] = str->add(strings[377]); strings[2530] = str->add(strings[2530]); strings[1946] = str->add(strings[1946]); strings[2530] = str->add(strings[2530]); strings[1946] = str->add(strings[1946]); strings[2528] = str->add(strings[2528]); strings[2529] = str->add(strings[2529]); strings[2530] = str->add(strings[2530]); strings[377] = str->add(strings[377]); strings[2530] = str->add(strings[2530]); strings[1946] = str->add(strings[1946]); strings[2530] = str->add(strings[2530]); strings[1946] = str->add(strings[1946]); str->del(strings[2528]); str->del(strings[2529]); str->del(strings[2530]); str->del(strings[377]); str->del(strings[2530]); str->del(strings[1946]); str->del(strings[2530]); str->del(strings[1946]); str->del(strings[2528]); str->del(strings[2529]); str->del(strings[2530]); str->del(strings[377]); str->del(strings[2530]); str->del(strings[1946]); str->del(strings[2530]); str->del(strings[1946]); str->del(strings[2528]); str->del(strings[2529]); str->del(strings[2530]); str->del(strings[377]); str->del(strings[2530]); str->del(strings[1946]); str->del(strings[2530]); str->del(strings[1946]); str->del(strings[2528]); str->del(strings[2529]); str->del(strings[2530]); str->del(strings[377]); str->del(strings[2530]); str->del(strings[1946]); str->del(strings[2530]); str->del(strings[1946]); str->del(strings[2528]); str->del(strings[2529]); str->del(strings[2530]); str->del(strings[377]); str->del(strings[2530]); str->del(strings[1946]); str->del(strings[2530]); str->del(strings[1946]); str->del(strings[7]); str->del(strings[2518]); strings[7] = str->add(strings[7]); strings[2531] = str->add("images/37"); strings[2532] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/37"); strings[7] = str->add(strings[7]); strings[2531] = str->add(strings[2531]); strings[2533] = str->add("/usr/devel/lib/enlightenment/modules/conf_wallpaper/linux-gnu-x86_64/module.so"); strings[2533] = str->add(strings[2533]); strings[18] = str->add(strings[18]); strings[2534] = str->add("/usr/devel/lib/enlightenment/modules/conf_wallpaper"); str->del(strings[2533]); strings[2535] = str->add("wallpaper"); strings[2536] = str->add("Wallpaper"); strings[1750] = str->add(strings[1750]); strings[2537] = str->add("wallpaper_desk"); strings[2536] = str->add(strings[2536]); strings[2250] = str->add(strings[2250]); strings[1749] = str->add(strings[1749]); strings[1750] = str->add(strings[1750]); str->del(strings[18]); strings[2538] = str->add("e,action,mouse,move"); strings[2539] = str->add("e"); strings[2540] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2538] = str->add(strings[2538]); strings[2539] = str->add(strings[2539]); strings[2540] = str->add(strings[2540]); strings[377] = str->add(strings[377]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2538] = str->add(strings[2538]); strings[2539] = str->add(strings[2539]); strings[2540] = str->add(strings[2540]); strings[377] = str->add(strings[377]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2538] = str->add(strings[2538]); strings[2539] = str->add(strings[2539]); strings[2540] = str->add(strings[2540]); strings[377] = str->add(strings[377]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2538] = str->add(strings[2538]); strings[2539] = str->add(strings[2539]); strings[2540] = str->add(strings[2540]); strings[377] = str->add(strings[377]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2538] = str->add(strings[2538]); strings[2539] = str->add(strings[2539]); strings[2540] = str->add(strings[2540]); strings[377] = str->add(strings[377]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2538] = str->add(strings[2538]); strings[2539] = str->add(strings[2539]); strings[2540] = str->add(strings[2540]); strings[377] = str->add(strings[377]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2538] = str->add(strings[2538]); strings[2539] = str->add(strings[2539]); strings[2540] = str->add(strings[2540]); strings[377] = str->add(strings[377]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2538] = str->add(strings[2538]); strings[2539] = str->add(strings[2539]); strings[2540] = str->add(strings[2540]); strings[377] = str->add(strings[377]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); strings[2540] = str->add(strings[2540]); strings[1946] = str->add(strings[1946]); str->del(strings[2538]); str->del(strings[2539]); str->del(strings[2540]); str->del(strings[377]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2538]); str->del(strings[2539]); str->del(strings[2540]); str->del(strings[377]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2538]); str->del(strings[2539]); str->del(strings[2540]); str->del(strings[377]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2538]); str->del(strings[2539]); str->del(strings[2540]); str->del(strings[377]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2538]); str->del(strings[2539]); str->del(strings[2540]); str->del(strings[377]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2538]); str->del(strings[2539]); str->del(strings[2540]); str->del(strings[377]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2538]); str->del(strings[2539]); str->del(strings[2540]); str->del(strings[377]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2538]); str->del(strings[2539]); str->del(strings[2540]); str->del(strings[377]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2538]); str->del(strings[2539]); str->del(strings[2540]); str->del(strings[377]); str->del(strings[2540]); str->del(strings[1946]); str->del(strings[2540]); str->del(strings[1946]); strings[2541] = str->add("e,action,mouse,move"); strings[2542] = str->add("e"); strings[2543] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[2543] = str->add(strings[2543]); strings[1946] = str->add(strings[1946]); strings[2543] = str->add(strings[2543]); strings[1946] = str->add(strings[1946]); str->del(strings[2541]); str->del(strings[2542]); str->del(strings[2543]); str->del(strings[377]); str->del(strings[2543]); str->del(strings[1946]); str->del(strings[2543]); str->del(strings[1946]); str->del(strings[7]); str->del(strings[2531]); strings[7] = str->add(strings[7]); strings[2544] = str->add("images/38"); strings[2545] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/38"); strings[7] = str->add(strings[7]); strings[2544] = str->add(strings[2544]); strings[2546] = str->add("e,action,mouse,move"); strings[2547] = str->add("e"); strings[2548] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[2548] = str->add(strings[2548]); strings[1946] = str->add(strings[1946]); strings[2548] = str->add(strings[2548]); strings[1946] = str->add(strings[1946]); str->del(strings[2546]); str->del(strings[2547]); str->del(strings[2548]); str->del(strings[377]); str->del(strings[2548]); str->del(strings[1946]); str->del(strings[2548]); str->del(strings[1946]); strings[2549] = str->add("/usr/devel/lib/enlightenment/modules/conf_window_display/linux-gnu-x86_64/module.so"); strings[2549] = str->add(strings[2549]); strings[17] = str->add(strings[17]); strings[2550] = str->add("/usr/devel/lib/enlightenment/modules/conf_window_display"); str->del(strings[2549]); strings[2551] = str->add("windows"); strings[2552] = str->add("Windows"); strings[2250] = str->add(strings[2250]); strings[2553] = str->add("window_display"); strings[2554] = str->add("Window Display"); strings[2250] = str->add(strings[2250]); str->del(strings[17]); strings[2555] = str->add("e,action,mouse,move"); strings[2556] = str->add("e"); strings[2557] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[2557] = str->add(strings[2557]); strings[1946] = str->add(strings[1946]); strings[2557] = str->add(strings[2557]); strings[1946] = str->add(strings[1946]); strings[2555] = str->add(strings[2555]); strings[2556] = str->add(strings[2556]); strings[2557] = str->add(strings[2557]); strings[377] = str->add(strings[377]); strings[2557] = str->add(strings[2557]); strings[1946] = str->add(strings[1946]); strings[2557] = str->add(strings[2557]); strings[1946] = str->add(strings[1946]); str->del(strings[2555]); str->del(strings[2556]); str->del(strings[2557]); str->del(strings[377]); str->del(strings[2557]); str->del(strings[1946]); str->del(strings[2557]); str->del(strings[1946]); str->del(strings[2555]); str->del(strings[2556]); str->del(strings[2557]); str->del(strings[377]); str->del(strings[2557]); str->del(strings[1946]); str->del(strings[2557]); str->del(strings[1946]); strings[2558] = str->add("e,action,mouse,move"); strings[2559] = str->add("e"); strings[2560] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[2560] = str->add(strings[2560]); strings[1946] = str->add(strings[1946]); strings[2560] = str->add(strings[2560]); strings[1946] = str->add(strings[1946]); str->del(strings[2558]); str->del(strings[2559]); str->del(strings[2560]); str->del(strings[377]); str->del(strings[2560]); str->del(strings[1946]); str->del(strings[2560]); str->del(strings[1946]); str->del(strings[7]); str->del(strings[2544]); strings[7] = str->add(strings[7]); strings[2561] = str->add("images/39"); strings[2562] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/39"); strings[7] = str->add(strings[7]); strings[2561] = str->add(strings[2561]); strings[2563] = str->add("/usr/devel/lib/enlightenment/modules/conf_window_focus/linux-gnu-x86_64/module.so"); strings[2563] = str->add(strings[2563]); strings[16] = str->add(strings[16]); strings[2564] = str->add("/usr/devel/lib/enlightenment/modules/conf_window_focus"); str->del(strings[2563]); strings[2565] = str->add("window_focus"); strings[2566] = str->add("Window Focus"); strings[2567] = str->add("enlightenment/focus"); str->del(strings[16]); strings[2568] = str->add("e,action,mouse,move"); strings[2569] = str->add("e"); strings[2570] = str->add("e,action,mouse,down"); strings[2569] = str->add(strings[2569]); strings[167] = str->add(strings[167]); strings[377] = str->add(strings[377]); strings[2571] = str->add("Main"); strings[66] = str->add(strings[66]); strings[2572] = str->add("Favorite Applications"); strings[2573] = str->add("base/theme/icons"); strings[1839] = str->add(strings[1839]); strings[2574] = str->add("e/widgets/border/default/border"); strings[2575] = str->add("e/widgets/border/shaped/border"); strings[2576] = str->add("e/widgets/border/noresize/border"); strings[2577] = str->add("e/widgets/border/dialog/border"); strings[2578] = str->add("e/widgets/border/noresize_dialog/border"); strings[2579] = str->add("e/widgets/border/pixel/border"); strings[2580] = str->add("e/pointer/enlightenment/default/color"); strings[1754] = str->add(strings[1754]); strings[2581] = str->add("e/widgets/menu/default/background"); strings[2582] = str->add("e/widgets/menu/default/separator"); strings[2583] = str->add("e/widgets/menu/default/item_bg"); strings[2584] = str->add("e/widgets/menu/default/icon"); strings[2585] = str->add("e/widgets/menu/default/label"); strings[2586] = str->add("e/widgets/menu/default/submenu"); strings[2587] = str->add("e/widgets/menu/default/check"); strings[2588] = str->add("e/widgets/menu/default/radio"); strings[1945] = str->add(strings[1945]); strings[2061] = str->add(strings[2061]); strings[1960] = str->add(strings[1960]); strings[2589] = str->add("e/shelf/invisible/base"); strings[2590] = str->add("e/shelf/invisible/inset"); strings[2591] = str->add("e/shelf/invisible/plain"); strings[2592] = str->add("e/shelf/alternate/base"); strings[2593] = str->add("e/shelf/alternate/inset"); strings[2594] = str->add("e/shelf/alternate/plain"); strings[1957] = str->add(strings[1957]); strings[2127] = str->add(strings[2127]); strings[1963] = str->add(strings[1963]); strings[2595] = str->add("e/modules/pager/window"); strings[2090] = str->add(strings[2090]); strings[2081] = str->add(strings[2081]); strings[2112] = str->add(strings[2112]); strings[2083] = str->add(strings[2083]); strings[2596] = str->add("e/widgets/winlist/main"); strings[2597] = str->add("e/widgets/winlist/item"); strings[2598] = str->add("e/modules/mixer/main"); strings[2599] = str->add("e/sys/logout"); strings[2600] = str->add("e/widgets/dialog/main"); strings[2601] = str->add("e/widgets/dialog/text"); strings[2602] = str->add("e/widgets/configure/main"); strings[2603] = str->add("e/widgets/border/default/move"); strings[2604] = str->add("e/widgets/border/default/resize"); strings[2605] = str->add("e/transpreview/0"); strings[2606] = str->add("e/transpreview/1"); strings[2607] = str->add("e/transitions/crossfade"); strings[2608] = str->add("e/transitions/vswipe"); strings[2609] = str->add("e/widgets/check"); strings[2610] = str->add("e/widgets/check_icon"); strings[2611] = str->add("e/widgets/radio"); strings[2612] = str->add("e/widgets/radio_icon"); strings[2613] = str->add("e/widgets/button"); strings[2614] = str->add("e/widgets/scrollframe"); strings[2615] = str->add("e/widgets/ilist"); strings[2616] = str->add("e/widgets/ilist_odd"); strings[2617] = str->add("e/widgets/ilist_header"); strings[2618] = str->add("e/widgets/ilist_header_odd"); strings[2619] = str->add("e/widgets/entry"); strings[2620] = str->add("e/widgets/entry/text"); strings[2621] = str->add("e/widgets/entry/cursor"); strings[2622] = str->add("e/widgets/entry/selection"); strings[2623] = str->add("e/widgets/preview"); strings[2624] = str->add("e/widgets/deskpreview/desk"); strings[2625] = str->add("e/widgets/color_well"); strings[2626] = str->add("e/widgets/spectrum"); strings[2627] = str->add("e/widgets/cslider"); strings[2628] = str->add("e/widgets/slider_vertical"); strings[2629] = str->add("e/widgets/slider_horizontal"); strings[2630] = str->add("e/widgets/frame"); strings[2631] = str->add("e/widgets/label"); strings[2632] = str->add("e/widgets/fontpreview"); strings[2633] = str->add("e/widgets/textblock"); strings[2634] = str->add("e/widgets/menu/default/submenu_bg"); strings[2635] = str->add("e/sys/halt"); strings[2636] = str->add("e/sys/reboot"); strings[2637] = str->add("e/sys/suspend"); strings[2638] = str->add("e/sys/hibernate"); strings[2639] = str->add("e/widgets/gradpreview"); strings[1839] = str->add(strings[1839]); strings[2574] = str->add(strings[2574]); strings[2575] = str->add(strings[2575]); strings[2576] = str->add(strings[2576]); strings[2577] = str->add(strings[2577]); strings[2578] = str->add(strings[2578]); strings[2579] = str->add(strings[2579]); strings[2580] = str->add(strings[2580]); strings[1754] = str->add(strings[1754]); strings[2581] = str->add(strings[2581]); strings[2582] = str->add(strings[2582]); strings[2583] = str->add(strings[2583]); strings[2584] = str->add(strings[2584]); strings[2585] = str->add(strings[2585]); strings[2586] = str->add(strings[2586]); strings[2587] = str->add(strings[2587]); strings[2588] = str->add(strings[2588]); strings[1945] = str->add(strings[1945]); strings[2061] = str->add(strings[2061]); strings[1960] = str->add(strings[1960]); strings[2589] = str->add(strings[2589]); strings[2590] = str->add(strings[2590]); strings[2591] = str->add(strings[2591]); strings[2592] = str->add(strings[2592]); strings[2593] = str->add(strings[2593]); strings[2594] = str->add(strings[2594]); strings[1957] = str->add(strings[1957]); strings[2127] = str->add(strings[2127]); strings[1963] = str->add(strings[1963]); strings[2595] = str->add(strings[2595]); strings[2090] = str->add(strings[2090]); strings[2081] = str->add(strings[2081]); strings[2112] = str->add(strings[2112]); strings[2083] = str->add(strings[2083]); strings[2596] = str->add(strings[2596]); strings[2597] = str->add(strings[2597]); strings[2598] = str->add(strings[2598]); strings[2599] = str->add(strings[2599]); strings[2600] = str->add(strings[2600]); strings[2601] = str->add(strings[2601]); strings[2602] = str->add(strings[2602]); strings[2603] = str->add(strings[2603]); strings[2604] = str->add(strings[2604]); strings[2605] = str->add(strings[2605]); strings[2606] = str->add(strings[2606]); strings[2607] = str->add(strings[2607]); strings[2608] = str->add(strings[2608]); strings[2609] = str->add(strings[2609]); strings[2610] = str->add(strings[2610]); strings[2611] = str->add(strings[2611]); strings[2612] = str->add(strings[2612]); strings[2613] = str->add(strings[2613]); strings[2614] = str->add(strings[2614]); strings[2615] = str->add(strings[2615]); strings[2616] = str->add(strings[2616]); strings[2617] = str->add(strings[2617]); strings[2618] = str->add(strings[2618]); strings[2619] = str->add(strings[2619]); strings[2620] = str->add(strings[2620]); strings[2621] = str->add(strings[2621]); strings[2622] = str->add(strings[2622]); strings[2623] = str->add(strings[2623]); strings[2624] = str->add(strings[2624]); strings[2625] = str->add(strings[2625]); strings[2626] = str->add(strings[2626]); strings[2627] = str->add(strings[2627]); strings[2628] = str->add(strings[2628]); strings[2629] = str->add(strings[2629]); strings[2630] = str->add(strings[2630]); strings[2631] = str->add(strings[2631]); strings[2632] = str->add(strings[2632]); strings[2633] = str->add(strings[2633]); strings[2634] = str->add(strings[2634]); strings[2635] = str->add(strings[2635]); strings[2636] = str->add(strings[2636]); strings[2637] = str->add(strings[2637]); strings[2638] = str->add(strings[2638]); strings[2639] = str->add(strings[2639]); str->del(strings[1839]); str->del(strings[2574]); str->del(strings[2575]); str->del(strings[2576]); str->del(strings[2577]); str->del(strings[2578]); str->del(strings[2579]); str->del(strings[2580]); str->del(strings[1754]); str->del(strings[2581]); str->del(strings[2582]); str->del(strings[2583]); str->del(strings[2584]); str->del(strings[2585]); str->del(strings[2586]); str->del(strings[2587]); str->del(strings[2588]); str->del(strings[1945]); str->del(strings[2061]); str->del(strings[1960]); str->del(strings[2589]); str->del(strings[2590]); str->del(strings[2591]); str->del(strings[2592]); str->del(strings[2593]); str->del(strings[2594]); str->del(strings[1957]); str->del(strings[2127]); str->del(strings[1963]); str->del(strings[2595]); str->del(strings[2090]); str->del(strings[2081]); str->del(strings[2112]); str->del(strings[2083]); str->del(strings[2596]); str->del(strings[2597]); str->del(strings[2598]); str->del(strings[2599]); str->del(strings[2600]); str->del(strings[2601]); str->del(strings[2602]); str->del(strings[2603]); str->del(strings[2604]); str->del(strings[2605]); str->del(strings[2606]); str->del(strings[2607]); str->del(strings[2608]); str->del(strings[2609]); str->del(strings[2610]); str->del(strings[2611]); str->del(strings[2612]); str->del(strings[2613]); str->del(strings[2614]); str->del(strings[2615]); str->del(strings[2616]); str->del(strings[2617]); str->del(strings[2618]); str->del(strings[2619]); str->del(strings[2620]); str->del(strings[2621]); str->del(strings[2622]); str->del(strings[2623]); str->del(strings[2624]); str->del(strings[2625]); str->del(strings[2626]); str->del(strings[2627]); str->del(strings[2628]); str->del(strings[2629]); str->del(strings[2630]); str->del(strings[2631]); str->del(strings[2632]); str->del(strings[2633]); str->del(strings[2634]); str->del(strings[2635]); str->del(strings[2636]); str->del(strings[2637]); str->del(strings[2638]); str->del(strings[2639]); strings[1839] = str->add(strings[1839]); strings[2090] = str->add(strings[2090]); strings[2640] = str->add("e/modules/battery/popup"); strings[2574] = str->add(strings[2574]); strings[2575] = str->add(strings[2575]); strings[2576] = str->add(strings[2576]); strings[2577] = str->add(strings[2577]); strings[2578] = str->add(strings[2578]); strings[2579] = str->add(strings[2579]); strings[2641] = str->add("e/widgets/border/default/close"); strings[2642] = str->add("e/widgets/border/default/minimize"); strings[2643] = str->add("e/widgets/border/default/maximize"); strings[2644] = str->add("e/widgets/border/default/shade"); strings[2645] = str->add("e/widgets/border/default/stick"); strings[2646] = str->add("e/widgets/border/default/kill"); strings[2647] = str->add("e/widgets/border/default/locks"); strings[2648] = str->add("e/widgets/border/default/locks_user"); strings[2649] = str->add("e/widgets/border/default/locks_application"); strings[2650] = str->add("e/widgets/border/default/borderless"); strings[2651] = str->add("e/widgets/border/default/fullscreen"); strings[2652] = str->add("e/widgets/border/default/remember"); strings[2653] = str->add("e/widgets/border/default/skip_winlist"); strings[2654] = str->add("e/widgets/border/default/skip"); strings[2655] = str->add("e/widgets/border/default/skip_pager"); strings[2656] = str->add("e/widgets/border/default/sendto"); strings[2657] = str->add("e/widgets/border/default/stacking"); strings[2658] = str->add("e/widgets/border/default/stack_on_top"); strings[2659] = str->add("e/widgets/border/default/stack_normal"); strings[2660] = str->add("e/widgets/border/default/stack_below"); strings[2661] = str->add("e/widgets/border/default/properties"); strings[2112] = str->add(strings[2112]); strings[1935] = str->add(strings[1935]); strings[2662] = str->add("e/gadman/popup"); strings[1929] = str->add(strings[1929]); strings[2663] = str->add("e/gadman/frame"); strings[2067] = str->add(strings[2067]); strings[2069] = str->add(strings[2069]); strings[2664] = str->add("e/modules/ibar/drop"); strings[2665] = str->add("e/modules/ibar/drop_overlay"); strings[2581] = str->add(strings[2581]); strings[2582] = str->add(strings[2582]); strings[2583] = str->add(strings[2583]); strings[2634] = str->add(strings[2634]); strings[2587] = str->add(strings[2587]); strings[2588] = str->add(strings[2588]); strings[2584] = str->add(strings[2584]); strings[2585] = str->add(strings[2585]); strings[2586] = str->add(strings[2586]); strings[2127] = str->add(strings[2127]); strings[1963] = str->add(strings[1963]); strings[2595] = str->add(strings[2595]); strings[2604] = str->add(strings[2604]); strings[2603] = str->add(strings[2603]); strings[2081] = str->add(strings[2081]); strings[2666] = str->add("e/error/main"); strings[2083] = str->add(strings[2083]); strings[2667] = str->add("e/modules/ibox/icon"); strings[2668] = str->add("e/modules/ibox/icon_overlay"); strings[2669] = str->add("e/modules/ibox/drop"); strings[2670] = str->add("e/modules/ibox/drop_overlay"); strings[1957] = str->add(strings[1957]); strings[2596] = str->add(strings[2596]); strings[2597] = str->add(strings[2597]); strings[2605] = str->add(strings[2605]); strings[2606] = str->add(strings[2606]); strings[2607] = str->add(strings[2607]); strings[2608] = str->add(strings[2608]); strings[2600] = str->add(strings[2600]); strings[2601] = str->add(strings[2601]); strings[2602] = str->add(strings[2602]); strings[2671] = str->add("e/icons/enlightenment/e"); strings[2672] = str->add("e/icons/enlightenment/reset"); strings[2673] = str->add("e/icons/enlightenment/exit"); strings[2674] = str->add("e/icons/enlightenment/logout"); strings[2675] = str->add("e/icons/enlightenment/halt"); strings[2676] = str->add("e/icons/enlightenment/reboot"); strings[2677] = str->add("e/icons/enlightenment/suspend"); strings[2678] = str->add("e/icons/enlightenment/hibernate"); strings[2679] = str->add("e/icons/enlightenment/screen_setup"); strings[2680] = str->add("e/icons/enlightenment/themes"); strings[2681] = str->add("e/icons/enlightenment/colors"); strings[2682] = str->add("e/icons/enlightenment/windows"); strings[2683] = str->add("e/icons/enlightenment/lost_windows"); strings[2684] = str->add("e/icons/enlightenment/focus"); strings[2685] = str->add("e/icons/enlightenment/modules"); strings[2686] = str->add("e/icons/enlightenment/favorites"); strings[2687] = str->add("e/icons/enlightenment/desktops"); strings[2688] = str->add("e/icons/enlightenment/configuration"); strings[2689] = str->add("e/icons/enlightenment/intl"); strings[2690] = str->add("e/icons/enlightenment/system"); strings[2691] = str->add("e/icons/enlightenment/run"); strings[2692] = str->add("e/icons/enlightenment/directories"); strings[2693] = str->add("e/icons/enlightenment/fileman"); strings[2694] = str->add("e/icons/enlightenment/unknown"); strings[2695] = str->add("e/icons/widget/new_dialog"); strings[2696] = str->add("e/icons/widget/up_arrow"); strings[2697] = str->add("e/icons/widget/down_arrow"); strings[2698] = str->add("e/icons/widget/up_dir"); strings[2699] = str->add("e/icons/enlightenment/mouse"); strings[2700] = str->add("e/icons/enlightenment/mouse_left"); strings[2701] = str->add("e/icons/enlightenment/mouse_middle"); strings[2702] = str->add("e/icons/enlightenment/mouse_right"); strings[2703] = str->add("e/icons/enlightenment/mouse_extra"); strings[2704] = str->add("e/icons/enlightenment/mouse_wheel"); strings[2705] = str->add("e/icons/enlightenment/mouse_clean"); strings[2706] = str->add("e/icons/enlightenment/keys"); strings[2707] = str->add("e/icons/enlightenment/desklock"); strings[2708] = str->add("e/icons/enlightenment/desklock_menu"); strings[2709] = str->add("e/icons/enlightenment/regenerate_menus"); strings[2710] = str->add("e/icons/enlightenment/screen_resolution"); strings[2711] = str->add("e/icons/enlightenment/shelf"); strings[2712] = str->add("e/icons/enlightenment/fonts"); strings[2713] = str->add("e/icons/enlightenment/background"); strings[2714] = str->add("e/icons/enlightenment/icon_theme"); strings[2715] = str->add("e/icons/enlightenment/applications"); strings[2716] = str->add("e/icons/enlightenment/transitions"); strings[2717] = str->add("e/icons/enlightenment/performance"); strings[2718] = str->add("e/icons/enlightenment/startup"); strings[2719] = str->add("e/icons/enlightenment/winlist"); strings[2720] = str->add("e/icons/enlightenment/window_manipulation"); strings[2721] = str->add("e/icons/enlightenment/menus"); strings[2722] = str->add("e/icons/enlightenment/screen_normal"); strings[2723] = str->add("e/icons/enlightenment/screen_around"); strings[2724] = str->add("e/icons/enlightenment/screen_left"); strings[2725] = str->add("e/icons/enlightenment/screen_right"); strings[2726] = str->add("e/icons/enlightenment/screen_vflip"); strings[2727] = str->add("e/icons/enlightenment/screen_hflip"); strings[2728] = str->add("e/icons/enlightenment/shelf_position_bottom"); strings[2729] = str->add("e/icons/enlightenment/shelf_position_bottom_left"); strings[2730] = str->add("e/icons/enlightenment/shelf_position_bottom_right"); strings[2731] = str->add("e/icons/enlightenment/shelf_position_top"); strings[2732] = str->add("e/icons/enlightenment/shelf_position_top_left"); strings[2733] = str->add("e/icons/enlightenment/shelf_position_top_right"); strings[2734] = str->add("e/icons/enlightenment/shelf_position_left"); strings[2735] = str->add("e/icons/enlightenment/shelf_position_left_top"); strings[2736] = str->add("e/icons/enlightenment/shelf_position_left_bottom"); strings[2737] = str->add("e/icons/enlightenment/shelf_position_right"); strings[2738] = str->add("e/icons/enlightenment/shelf_position_right_top"); strings[2739] = str->add("e/icons/enlightenment/shelf_position_right_bottom"); strings[2740] = str->add("e/icons/enlightenment/shelf_bottom_desk"); strings[2741] = str->add("e/icons/enlightenment/shelf_custom"); strings[2742] = str->add("e/icons/enlightenment/shelf_dock"); strings[2743] = str->add("e/icons/enlightenment/shelf_menu_bar"); strings[2744] = str->add("e/icons/enlightenment/shelf_panel"); strings[2745] = str->add("e/icons/enlightenment/shelf_top_desk"); strings[2746] = str->add("e/icons/enlightenment/wallpaper_stretch"); strings[2747] = str->add("e/icons/enlightenment/wallpaper_tile"); strings[2748] = str->add("e/icons/enlightenment/wallpaper_center"); strings[2749] = str->add("e/icons/enlightenment/wallpaper_scale_aspect_in"); strings[2750] = str->add("e/icons/enlightenment/wallpaper_scale_aspect_out"); strings[2751] = str->add("e/icons/enlightenment/gradient_h"); strings[2752] = str->add("e/icons/enlightenment/gradient_v"); strings[2753] = str->add("e/icons/enlightenment/gradient_du"); strings[2754] = str->add("e/icons/enlightenment/gradient_dd"); strings[2755] = str->add("e/icons/enlightenment/gradient_rad"); strings[2756] = str->add("e/icons/enlightenment/advanced"); strings[2757] = str->add("e/icons/enlightenment/behavior"); strings[2758] = str->add("e/icons/enlightenment/appearance"); strings[2759] = str->add("e/icons/enlightenment/extensions"); strings[2760] = str->add("e/icons/enlightenment/imc"); strings[2761] = str->add("e/icons/enlightenment/file_icons"); strings[2762] = str->add("e/icons/enlightenment/menu_settings"); strings[2763] = str->add("e/icons/enlightenment/ibar_applications"); strings[2764] = str->add("e/icons/enlightenment/restart_applications"); strings[2765] = str->add("e/icons/enlightenment/startup_applications"); strings[2766] = str->add("e/icons/enlightenment/power_management"); strings[2767] = str->add("e/icons/enlightenment/screensaver"); strings[2768] = str->add("e/icons/enlightenment/window_remembers"); strings[2580] = str->add(strings[2580]); strings[1754] = str->add(strings[1754]); strings[2769] = str->add("e/widgets/about/main"); strings[2770] = str->add("e/theme/about"); strings[2619] = str->add(strings[2619]); strings[2620] = str->add(strings[2620]); strings[2621] = str->add(strings[2621]); strings[2622] = str->add(strings[2622]); strings[2771] = str->add("e/fileman/default/window/main"); strings[2772] = str->add("e/fileman/default/scrollframe"); strings[2773] = str->add("e/fileman/default/list/variable"); strings[2774] = str->add("e/fileman/default/list_odd/variable"); strings[2775] = str->add("e/fileman/default/list/fixed"); strings[2776] = str->add("e/fileman/default/list_odd/fixed"); strings[2777] = str->add("e/fileman/default/icon/fixed"); strings[2778] = str->add("e/fileman/default/icon/variable"); strings[2779] = str->add("e/fileman/default/overlay"); strings[2780] = str->add("e/fileman/default/list/drop_between"); strings[2781] = str->add("e/fileman/default/list/drop_in"); strings[2782] = str->add("e/fileman/desktop/scrollframe"); strings[2783] = str->add("e/fileman/desktop/icon/fixed"); strings[2784] = str->add("e/fileman/desktop/icon/variable"); strings[2785] = str->add("e/fileman/desktop/overlay"); strings[2786] = str->add("e/fileman/desktop/list/drop_between"); strings[2787] = str->add("e/fileman/desktop/list/drop_in"); strings[2788] = str->add("e/fileman/default/rubberband"); strings[2789] = str->add("e/icons/fileman/folder"); strings[2790] = str->add("e/icons/fileman/file"); strings[2791] = str->add("e/icons/fileman/home"); strings[2792] = str->add("e/icons/fileman/desktop"); strings[2793] = str->add("e/icons/fileman/hdd"); strings[2794] = str->add("e/icons/fileman/hd"); strings[2795] = str->add("e/icons/fileman/mime/application/pdf"); strings[2796] = str->add("e/icons/fileman/mime/text/x-csrc"); strings[2797] = str->add("e/icons/fileman/mime/text/x-chdr"); strings[2798] = str->add("e/icons/fileman/mime/application/x-object"); strings[2799] = str->add("e/icons/fileman/mime/application/x-shellscript"); strings[2800] = str->add("e/icons/fileman/mime/image/png"); strings[2801] = str->add("e/icons/fileman/mime/image/jpeg"); strings[2802] = str->add("e/icons/fileman/mime/video/x-msvideo"); strings[2803] = str->add("e/icons/fileman/mime/audio/mpeg"); strings[2804] = str->add("e/icons/fileman/mime/application/x-xcf"); strings[2805] = str->add("e/icons/fileman/mime/text/x-c++src"); strings[2806] = str->add("e/icons/fileman/mime/text/x-csharp"); strings[2807] = str->add("e/icons/fileman/mime/text/x-patch"); strings[2808] = str->add("e/icons/fileman/mime/application/msword"); strings[2809] = str->add("e/icons/fileman/mime/application/ogg"); strings[2810] = str->add("e/icons/fileman/mime/text/plain"); strings[2811] = str->add("e/icons/fileman/mime/application/x-bzip"); strings[2812] = str->add("e/icons/fileman/mime/application/x-deb"); strings[2813] = str->add("e/icons/fileman/mime/application/x-font-ttf"); strings[2814] = str->add("e/icons/fileman/mime/application/x-font-pcf"); strings[2815] = str->add("e/icons/fileman/mime/application/x-font-bdf"); strings[2816] = str->add("e/icons/fileman/mime/text/css"); strings[2817] = str->add("e/icons/fileman/mime/text/html"); strings[2817] = str->add(strings[2817]); strings[2818] = str->add("e/icons/fileman/mime/application/zip"); strings[2819] = str->add("e/icons/fileman/mime/application/x-gzip"); strings[2820] = str->add("e/icons/fileman/mime/application/x-bzip-compressed-tar"); strings[2821] = str->add("e/icons/fileman/mime/application/x-bzip2-compressed-tar"); strings[2822] = str->add("e/icons/fileman/mime/application/x-compressed-tar"); strings[2823] = str->add("e/icons/fileman/mime/application/x-tar"); strings[2824] = str->add("e/icons/fileman/mime/application/x-rar"); strings[2825] = str->add("e/icons/fileman/mime/video/mpeg"); strings[2826] = str->add("e/icons/fileman/mime/video"); strings[2827] = str->add("e/icons/fileman/mime/text"); strings[2828] = str->add("e/icons/fileman/mime/image"); strings[2829] = str->add("e/icons/fileman/mime/audio"); strings[2830] = str->add("e/fileman/default/button/open"); strings[2831] = str->add("e/fileman/default/button/copy"); strings[2832] = str->add("e/fileman/default/button/cut"); strings[2833] = str->add("e/fileman/default/button/paste"); strings[2834] = str->add("e/fileman/default/button/delete"); strings[2835] = str->add("e/fileman/default/button/rename"); strings[2836] = str->add("e/fileman/default/button/properties"); strings[2837] = str->add("e/fileman/default/button/arrange_name"); strings[2838] = str->add("e/fileman/default/button/arrange"); strings[2839] = str->add("e/fileman/default/button/arrange_time"); strings[2840] = str->add("e/fileman/default/button/new"); strings[2841] = str->add("e/fileman/default/button/new_dir"); strings[2842] = str->add("e/fileman/default/button/refresh"); strings[2843] = str->add("e/fileman/default/button/view_details"); strings[2844] = str->add("e/fileman/default/button/view_name"); strings[2845] = str->add("e/fileman/default/button/view"); strings[2846] = str->add("e/fileman/default/button/select"); strings[2847] = str->add("e/widgets/fileselector/main"); strings[2609] = str->add(strings[2609]); strings[2610] = str->add(strings[2610]); strings[2611] = str->add(strings[2611]); strings[2612] = str->add(strings[2612]); strings[2630] = str->add(strings[2630]); strings[2613] = str->add(strings[2613]); strings[2631] = str->add(strings[2631]); strings[2614] = str->add(strings[2614]); strings[2615] = str->add(strings[2615]); strings[2616] = str->add(strings[2616]); strings[2617] = str->add(strings[2617]); strings[2848] = str->add("e/widgets/tlist"); strings[2849] = str->add("e/widgets/tlist_odd"); strings[2628] = str->add(strings[2628]); strings[2629] = str->add(strings[2629]); strings[2850] = str->add("e/widgets/exebuf/main"); strings[2851] = str->add("e/widgets/exebuf/item"); strings[2852] = str->add("e/desklock/background"); strings[2853] = str->add("e/desklock/login_box"); strings[2633] = str->add(strings[2633]); strings[1945] = str->add(strings[1945]); strings[2061] = str->add(strings[2061]); strings[1960] = str->add(strings[1960]); strings[2592] = str->add(strings[2592]); strings[2593] = str->add(strings[2593]); strings[2594] = str->add(strings[2594]); strings[2589] = str->add(strings[2589]); strings[2590] = str->add(strings[2590]); strings[2591] = str->add(strings[2591]); strings[2623] = str->add(strings[2623]); strings[2627] = str->add(strings[2627]); strings[2626] = str->add(strings[2626]); strings[2625] = str->add(strings[2625]); strings[2599] = str->add(strings[2599]); strings[2635] = str->add(strings[2635]); strings[2636] = str->add(strings[2636]); strings[2637] = str->add(strings[2637]); strings[2638] = str->add(strings[2638]); strings[2624] = str->add(strings[2624]); strings[2632] = str->add(strings[2632]); strings[2854] = str->add("e/wizard/extra"); strings[2855] = str->add("e/wizard/main"); strings[2856] = str->add("e/toolbar/default/base"); strings[2857] = str->add("e/widgets/slidesel"); strings[2598] = str->add(strings[2598]); strings[2858] = str->add("e/modules/connman/main"); strings[2859] = str->add("e/modules/connman/network"); strings[2639] = str->add(strings[2639]); strings[1839] = str->add(strings[1839]); strings[2090] = str->add(strings[2090]); strings[2640] = str->add(strings[2640]); strings[2574] = str->add(strings[2574]); strings[2575] = str->add(strings[2575]); strings[2576] = str->add(strings[2576]); strings[2577] = str->add(strings[2577]); strings[2578] = str->add(strings[2578]); strings[2579] = str->add(strings[2579]); strings[2641] = str->add(strings[2641]); strings[2642] = str->add(strings[2642]); strings[2643] = str->add(strings[2643]); strings[2644] = str->add(strings[2644]); strings[2645] = str->add(strings[2645]); strings[2646] = str->add(strings[2646]); strings[2647] = str->add(strings[2647]); strings[2648] = str->add(strings[2648]); strings[2649] = str->add(strings[2649]); strings[2650] = str->add(strings[2650]); strings[2651] = str->add(strings[2651]); strings[2652] = str->add(strings[2652]); strings[2653] = str->add(strings[2653]); strings[2654] = str->add(strings[2654]); strings[2655] = str->add(strings[2655]); strings[2656] = str->add(strings[2656]); strings[2657] = str->add(strings[2657]); strings[2658] = str->add(strings[2658]); strings[2659] = str->add(strings[2659]); strings[2660] = str->add(strings[2660]); strings[2661] = str->add(strings[2661]); strings[2112] = str->add(strings[2112]); strings[1935] = str->add(strings[1935]); strings[2662] = str->add(strings[2662]); strings[1929] = str->add(strings[1929]); strings[2663] = str->add(strings[2663]); strings[2067] = str->add(strings[2067]); strings[2069] = str->add(strings[2069]); strings[2664] = str->add(strings[2664]); strings[2665] = str->add(strings[2665]); strings[2581] = str->add(strings[2581]); strings[2582] = str->add(strings[2582]); strings[2583] = str->add(strings[2583]); strings[2634] = str->add(strings[2634]); strings[2587] = str->add(strings[2587]); strings[2588] = str->add(strings[2588]); strings[2584] = str->add(strings[2584]); strings[2585] = str->add(strings[2585]); strings[2586] = str->add(strings[2586]); strings[2127] = str->add(strings[2127]); strings[1963] = str->add(strings[1963]); strings[2595] = str->add(strings[2595]); strings[2604] = str->add(strings[2604]); strings[2603] = str->add(strings[2603]); strings[2081] = str->add(strings[2081]); strings[2666] = str->add(strings[2666]); strings[2083] = str->add(strings[2083]); strings[2667] = str->add(strings[2667]); strings[2668] = str->add(strings[2668]); strings[2669] = str->add(strings[2669]); strings[2670] = str->add(strings[2670]); strings[1957] = str->add(strings[1957]); strings[2596] = str->add(strings[2596]); strings[2597] = str->add(strings[2597]); strings[2605] = str->add(strings[2605]); strings[2606] = str->add(strings[2606]); strings[2607] = str->add(strings[2607]); strings[2608] = str->add(strings[2608]); strings[2600] = str->add(strings[2600]); strings[2601] = str->add(strings[2601]); strings[2602] = str->add(strings[2602]); strings[2671] = str->add(strings[2671]); strings[2672] = str->add(strings[2672]); strings[2673] = str->add(strings[2673]); strings[2674] = str->add(strings[2674]); strings[2675] = str->add(strings[2675]); strings[2676] = str->add(strings[2676]); strings[2677] = str->add(strings[2677]); strings[2678] = str->add(strings[2678]); strings[2679] = str->add(strings[2679]); strings[2680] = str->add(strings[2680]); strings[2681] = str->add(strings[2681]); strings[2682] = str->add(strings[2682]); strings[2683] = str->add(strings[2683]); strings[2684] = str->add(strings[2684]); strings[2685] = str->add(strings[2685]); strings[2686] = str->add(strings[2686]); strings[2687] = str->add(strings[2687]); strings[2688] = str->add(strings[2688]); strings[2689] = str->add(strings[2689]); strings[2690] = str->add(strings[2690]); strings[2691] = str->add(strings[2691]); strings[2692] = str->add(strings[2692]); strings[2693] = str->add(strings[2693]); strings[2694] = str->add(strings[2694]); strings[2695] = str->add(strings[2695]); strings[2696] = str->add(strings[2696]); strings[2697] = str->add(strings[2697]); strings[2698] = str->add(strings[2698]); strings[2699] = str->add(strings[2699]); strings[2700] = str->add(strings[2700]); strings[2701] = str->add(strings[2701]); strings[2702] = str->add(strings[2702]); strings[2703] = str->add(strings[2703]); strings[2704] = str->add(strings[2704]); strings[2705] = str->add(strings[2705]); strings[2706] = str->add(strings[2706]); strings[2707] = str->add(strings[2707]); strings[2708] = str->add(strings[2708]); strings[2709] = str->add(strings[2709]); strings[2710] = str->add(strings[2710]); strings[2711] = str->add(strings[2711]); strings[2712] = str->add(strings[2712]); strings[2713] = str->add(strings[2713]); strings[2714] = str->add(strings[2714]); strings[2715] = str->add(strings[2715]); strings[2716] = str->add(strings[2716]); strings[2717] = str->add(strings[2717]); strings[2718] = str->add(strings[2718]); strings[2719] = str->add(strings[2719]); strings[2720] = str->add(strings[2720]); strings[2721] = str->add(strings[2721]); strings[2722] = str->add(strings[2722]); strings[2723] = str->add(strings[2723]); strings[2724] = str->add(strings[2724]); strings[2725] = str->add(strings[2725]); strings[2726] = str->add(strings[2726]); strings[2727] = str->add(strings[2727]); strings[2728] = str->add(strings[2728]); strings[2729] = str->add(strings[2729]); strings[2730] = str->add(strings[2730]); strings[2731] = str->add(strings[2731]); strings[2732] = str->add(strings[2732]); strings[2733] = str->add(strings[2733]); strings[2734] = str->add(strings[2734]); strings[2735] = str->add(strings[2735]); strings[2736] = str->add(strings[2736]); strings[2737] = str->add(strings[2737]); strings[2738] = str->add(strings[2738]); strings[2739] = str->add(strings[2739]); strings[2740] = str->add(strings[2740]); strings[2741] = str->add(strings[2741]); strings[2742] = str->add(strings[2742]); strings[2743] = str->add(strings[2743]); strings[2744] = str->add(strings[2744]); strings[2745] = str->add(strings[2745]); strings[2746] = str->add(strings[2746]); strings[2747] = str->add(strings[2747]); strings[2748] = str->add(strings[2748]); strings[2749] = str->add(strings[2749]); strings[2750] = str->add(strings[2750]); strings[2751] = str->add(strings[2751]); strings[2752] = str->add(strings[2752]); strings[2753] = str->add(strings[2753]); strings[2754] = str->add(strings[2754]); strings[2755] = str->add(strings[2755]); strings[2756] = str->add(strings[2756]); strings[2757] = str->add(strings[2757]); strings[2758] = str->add(strings[2758]); strings[2759] = str->add(strings[2759]); strings[2760] = str->add(strings[2760]); strings[2761] = str->add(strings[2761]); strings[2762] = str->add(strings[2762]); strings[2763] = str->add(strings[2763]); strings[2764] = str->add(strings[2764]); strings[2765] = str->add(strings[2765]); strings[2766] = str->add(strings[2766]); strings[2767] = str->add(strings[2767]); strings[2768] = str->add(strings[2768]); strings[2580] = str->add(strings[2580]); strings[1754] = str->add(strings[1754]); strings[2769] = str->add(strings[2769]); strings[2770] = str->add(strings[2770]); strings[2619] = str->add(strings[2619]); strings[2620] = str->add(strings[2620]); strings[2621] = str->add(strings[2621]); strings[2622] = str->add(strings[2622]); strings[2771] = str->add(strings[2771]); strings[2772] = str->add(strings[2772]); strings[2773] = str->add(strings[2773]); strings[2774] = str->add(strings[2774]); strings[2775] = str->add(strings[2775]); strings[2776] = str->add(strings[2776]); strings[2777] = str->add(strings[2777]); strings[2778] = str->add(strings[2778]); strings[2779] = str->add(strings[2779]); strings[2780] = str->add(strings[2780]); strings[2781] = str->add(strings[2781]); strings[2782] = str->add(strings[2782]); strings[2783] = str->add(strings[2783]); strings[2784] = str->add(strings[2784]); strings[2785] = str->add(strings[2785]); strings[2786] = str->add(strings[2786]); strings[2787] = str->add(strings[2787]); strings[2788] = str->add(strings[2788]); strings[2789] = str->add(strings[2789]); strings[2790] = str->add(strings[2790]); strings[2791] = str->add(strings[2791]); strings[2792] = str->add(strings[2792]); strings[2793] = str->add(strings[2793]); strings[2794] = str->add(strings[2794]); strings[2795] = str->add(strings[2795]); strings[2796] = str->add(strings[2796]); strings[2797] = str->add(strings[2797]); strings[2798] = str->add(strings[2798]); strings[2799] = str->add(strings[2799]); strings[2800] = str->add(strings[2800]); strings[2801] = str->add(strings[2801]); strings[2802] = str->add(strings[2802]); strings[2803] = str->add(strings[2803]); strings[2804] = str->add(strings[2804]); strings[2805] = str->add(strings[2805]); strings[2806] = str->add(strings[2806]); strings[2807] = str->add(strings[2807]); strings[2808] = str->add(strings[2808]); strings[2809] = str->add(strings[2809]); strings[2810] = str->add(strings[2810]); strings[2811] = str->add(strings[2811]); strings[2812] = str->add(strings[2812]); strings[2813] = str->add(strings[2813]); strings[2814] = str->add(strings[2814]); strings[2815] = str->add(strings[2815]); strings[2816] = str->add(strings[2816]); strings[2817] = str->add(strings[2817]); strings[2817] = str->add(strings[2817]); strings[2818] = str->add(strings[2818]); strings[2819] = str->add(strings[2819]); strings[2820] = str->add(strings[2820]); strings[2821] = str->add(strings[2821]); strings[2822] = str->add(strings[2822]); strings[2823] = str->add(strings[2823]); strings[2824] = str->add(strings[2824]); strings[2825] = str->add(strings[2825]); strings[2826] = str->add(strings[2826]); strings[2827] = str->add(strings[2827]); strings[2828] = str->add(strings[2828]); strings[2829] = str->add(strings[2829]); strings[2830] = str->add(strings[2830]); strings[2831] = str->add(strings[2831]); strings[2832] = str->add(strings[2832]); strings[2833] = str->add(strings[2833]); strings[2834] = str->add(strings[2834]); strings[2835] = str->add(strings[2835]); strings[2836] = str->add(strings[2836]); strings[2837] = str->add(strings[2837]); strings[2838] = str->add(strings[2838]); strings[2839] = str->add(strings[2839]); strings[2840] = str->add(strings[2840]); strings[2841] = str->add(strings[2841]); strings[2842] = str->add(strings[2842]); strings[2843] = str->add(strings[2843]); strings[2844] = str->add(strings[2844]); strings[2845] = str->add(strings[2845]); strings[2846] = str->add(strings[2846]); strings[2847] = str->add(strings[2847]); strings[2609] = str->add(strings[2609]); strings[2610] = str->add(strings[2610]); strings[2611] = str->add(strings[2611]); strings[2612] = str->add(strings[2612]); strings[2630] = str->add(strings[2630]); strings[2613] = str->add(strings[2613]); strings[2631] = str->add(strings[2631]); strings[2614] = str->add(strings[2614]); strings[2615] = str->add(strings[2615]); strings[2616] = str->add(strings[2616]); strings[2617] = str->add(strings[2617]); strings[2848] = str->add(strings[2848]); strings[2849] = str->add(strings[2849]); strings[2628] = str->add(strings[2628]); strings[2629] = str->add(strings[2629]); strings[2850] = str->add(strings[2850]); strings[2851] = str->add(strings[2851]); strings[2852] = str->add(strings[2852]); strings[2853] = str->add(strings[2853]); strings[2633] = str->add(strings[2633]); strings[1945] = str->add(strings[1945]); strings[2061] = str->add(strings[2061]); strings[1960] = str->add(strings[1960]); strings[2592] = str->add(strings[2592]); strings[2593] = str->add(strings[2593]); strings[2594] = str->add(strings[2594]); strings[2589] = str->add(strings[2589]); strings[2590] = str->add(strings[2590]); strings[2591] = str->add(strings[2591]); strings[2623] = str->add(strings[2623]); strings[2627] = str->add(strings[2627]); strings[2626] = str->add(strings[2626]); strings[2625] = str->add(strings[2625]); strings[2599] = str->add(strings[2599]); strings[2635] = str->add(strings[2635]); strings[2636] = str->add(strings[2636]); strings[2637] = str->add(strings[2637]); strings[2638] = str->add(strings[2638]); strings[2624] = str->add(strings[2624]); strings[2632] = str->add(strings[2632]); strings[2854] = str->add(strings[2854]); strings[2855] = str->add(strings[2855]); strings[2856] = str->add(strings[2856]); strings[2857] = str->add(strings[2857]); strings[2598] = str->add(strings[2598]); strings[2858] = str->add(strings[2858]); strings[2859] = str->add(strings[2859]); strings[2639] = str->add(strings[2639]); str->del(strings[1839]); str->del(strings[2090]); str->del(strings[2640]); str->del(strings[2574]); str->del(strings[2575]); str->del(strings[2576]); str->del(strings[2577]); str->del(strings[2578]); str->del(strings[2579]); str->del(strings[2641]); str->del(strings[2642]); str->del(strings[2643]); str->del(strings[2644]); str->del(strings[2645]); str->del(strings[2646]); str->del(strings[2647]); str->del(strings[2648]); str->del(strings[2649]); str->del(strings[2650]); str->del(strings[2651]); str->del(strings[2652]); str->del(strings[2653]); str->del(strings[2654]); str->del(strings[2655]); str->del(strings[2656]); str->del(strings[2657]); str->del(strings[2658]); str->del(strings[2659]); str->del(strings[2660]); str->del(strings[2661]); str->del(strings[2112]); str->del(strings[1935]); str->del(strings[2662]); str->del(strings[1929]); str->del(strings[2663]); str->del(strings[2067]); str->del(strings[2069]); str->del(strings[2664]); str->del(strings[2665]); str->del(strings[2581]); str->del(strings[2582]); str->del(strings[2583]); str->del(strings[2634]); str->del(strings[2587]); str->del(strings[2588]); str->del(strings[2584]); str->del(strings[2585]); str->del(strings[2586]); str->del(strings[2127]); str->del(strings[1963]); str->del(strings[2595]); str->del(strings[2604]); str->del(strings[2603]); str->del(strings[2081]); str->del(strings[2666]); str->del(strings[2083]); str->del(strings[2667]); str->del(strings[2668]); str->del(strings[2669]); str->del(strings[2670]); str->del(strings[1957]); str->del(strings[2596]); str->del(strings[2597]); str->del(strings[2605]); str->del(strings[2606]); str->del(strings[2607]); str->del(strings[2608]); str->del(strings[2600]); str->del(strings[2601]); str->del(strings[2602]); str->del(strings[2671]); str->del(strings[2672]); str->del(strings[2673]); str->del(strings[2674]); str->del(strings[2675]); str->del(strings[2676]); str->del(strings[2677]); str->del(strings[2678]); str->del(strings[2679]); str->del(strings[2680]); str->del(strings[2681]); str->del(strings[2682]); str->del(strings[2683]); str->del(strings[2684]); str->del(strings[2685]); str->del(strings[2686]); str->del(strings[2687]); str->del(strings[2688]); str->del(strings[2689]); str->del(strings[2690]); str->del(strings[2691]); str->del(strings[2692]); str->del(strings[2693]); str->del(strings[2694]); str->del(strings[2695]); str->del(strings[2696]); str->del(strings[2697]); str->del(strings[2698]); str->del(strings[2699]); str->del(strings[2700]); str->del(strings[2701]); str->del(strings[2702]); str->del(strings[2703]); str->del(strings[2704]); str->del(strings[2705]); str->del(strings[2706]); str->del(strings[2707]); str->del(strings[2708]); str->del(strings[2709]); str->del(strings[2710]); str->del(strings[2711]); str->del(strings[2712]); str->del(strings[2713]); str->del(strings[2714]); str->del(strings[2715]); str->del(strings[2716]); str->del(strings[2717]); str->del(strings[2718]); str->del(strings[2719]); str->del(strings[2720]); str->del(strings[2721]); str->del(strings[2722]); str->del(strings[2723]); str->del(strings[2724]); str->del(strings[2725]); str->del(strings[2726]); str->del(strings[2727]); str->del(strings[2728]); str->del(strings[2729]); str->del(strings[2730]); str->del(strings[2731]); str->del(strings[2732]); str->del(strings[2733]); str->del(strings[2734]); str->del(strings[2735]); str->del(strings[2736]); str->del(strings[2737]); str->del(strings[2738]); str->del(strings[2739]); str->del(strings[2740]); str->del(strings[2741]); str->del(strings[2742]); str->del(strings[2743]); str->del(strings[2744]); str->del(strings[2745]); str->del(strings[2746]); str->del(strings[2747]); str->del(strings[2748]); str->del(strings[2749]); str->del(strings[2750]); str->del(strings[2751]); str->del(strings[2752]); str->del(strings[2753]); str->del(strings[2754]); str->del(strings[2755]); str->del(strings[2756]); str->del(strings[2757]); str->del(strings[2758]); str->del(strings[2759]); str->del(strings[2760]); str->del(strings[2761]); str->del(strings[2762]); str->del(strings[2763]); str->del(strings[2764]); str->del(strings[2765]); str->del(strings[2766]); str->del(strings[2767]); str->del(strings[2768]); str->del(strings[2580]); str->del(strings[1754]); str->del(strings[2769]); str->del(strings[2770]); str->del(strings[2619]); str->del(strings[2620]); str->del(strings[2621]); str->del(strings[2622]); str->del(strings[2771]); str->del(strings[2772]); str->del(strings[2773]); str->del(strings[2774]); str->del(strings[2775]); str->del(strings[2776]); str->del(strings[2777]); str->del(strings[2778]); str->del(strings[2779]); str->del(strings[2780]); str->del(strings[2781]); str->del(strings[2782]); str->del(strings[2783]); str->del(strings[2784]); str->del(strings[2785]); str->del(strings[2786]); str->del(strings[2787]); str->del(strings[2788]); str->del(strings[2789]); str->del(strings[2790]); str->del(strings[2791]); str->del(strings[2792]); str->del(strings[2793]); str->del(strings[2794]); str->del(strings[2795]); str->del(strings[2796]); str->del(strings[2797]); str->del(strings[2798]); str->del(strings[2799]); str->del(strings[2800]); str->del(strings[2801]); str->del(strings[2802]); str->del(strings[2803]); str->del(strings[2804]); str->del(strings[2805]); str->del(strings[2806]); str->del(strings[2807]); str->del(strings[2808]); str->del(strings[2809]); str->del(strings[2810]); str->del(strings[2811]); str->del(strings[2812]); str->del(strings[2813]); str->del(strings[2814]); str->del(strings[2815]); str->del(strings[2816]); str->del(strings[2817]); str->del(strings[2817]); str->del(strings[2818]); str->del(strings[2819]); str->del(strings[2820]); str->del(strings[2821]); str->del(strings[2822]); str->del(strings[2823]); str->del(strings[2824]); str->del(strings[2825]); str->del(strings[2826]); str->del(strings[2827]); str->del(strings[2828]); str->del(strings[2829]); str->del(strings[2830]); str->del(strings[2831]); str->del(strings[2832]); str->del(strings[2833]); str->del(strings[2834]); str->del(strings[2835]); str->del(strings[2836]); str->del(strings[2837]); str->del(strings[2838]); str->del(strings[2839]); str->del(strings[2840]); str->del(strings[2841]); str->del(strings[2842]); str->del(strings[2843]); str->del(strings[2844]); str->del(strings[2845]); str->del(strings[2846]); str->del(strings[2847]); str->del(strings[2609]); str->del(strings[2610]); str->del(strings[2611]); str->del(strings[2612]); str->del(strings[2630]); str->del(strings[2613]); str->del(strings[2631]); str->del(strings[2614]); str->del(strings[2615]); str->del(strings[2616]); str->del(strings[2617]); str->del(strings[2848]); str->del(strings[2849]); str->del(strings[2628]); str->del(strings[2629]); str->del(strings[2850]); str->del(strings[2851]); str->del(strings[2852]); str->del(strings[2853]); str->del(strings[2633]); str->del(strings[1945]); str->del(strings[2061]); str->del(strings[1960]); str->del(strings[2592]); str->del(strings[2593]); str->del(strings[2594]); str->del(strings[2589]); str->del(strings[2590]); str->del(strings[2591]); str->del(strings[2623]); str->del(strings[2627]); str->del(strings[2626]); str->del(strings[2625]); str->del(strings[2599]); str->del(strings[2635]); str->del(strings[2636]); str->del(strings[2637]); str->del(strings[2638]); str->del(strings[2624]); str->del(strings[2632]); str->del(strings[2854]); str->del(strings[2855]); str->del(strings[2856]); str->del(strings[2857]); str->del(strings[2598]); str->del(strings[2858]); str->del(strings[2859]); str->del(strings[2639]); strings[469] = str->add(strings[469]); strings[2686] = str->add(strings[2686]); strings[2231] = str->add(strings[2231]); strings[469] = str->add(strings[469]); strings[2715] = str->add(strings[2715]); strings[2338] = str->add(strings[2338]); strings[469] = str->add(strings[469]); strings[2691] = str->add(strings[2691]); strings[2860] = str->add("Virtual"); strings[469] = str->add(strings[469]); strings[2687] = str->add(strings[2687]); strings[2494] = str->add(strings[2494]); strings[469] = str->add(strings[469]); strings[2711] = str->add(strings[2711]); strings[2861] = str->add("Show/Hide All Windows"); strings[1619] = str->add(strings[1619]); strings[469] = str->add(strings[469]); strings[2687] = str->add(strings[2687]); strings[2552] = str->add(strings[2552]); strings[469] = str->add(strings[469]); strings[2682] = str->add(strings[2682]); strings[1712] = str->add(strings[1712]); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[2862] = str->add("About"); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[2514] = str->add(strings[2514]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[1713] = str->add(strings[1713]); strings[469] = str->add(strings[469]); strings[2672] = str->add(strings[2672]); strings[1714] = str->add(strings[1714]); strings[469] = str->add(strings[469]); strings[2673] = str->add(strings[2673]); strings[2863] = str->add("Configuration"); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[1721] = str->add(strings[1721]); strings[469] = str->add(strings[469]); strings[2690] = str->add(strings[2690]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[2864] = str->add("resize"); strings[2865] = str->add("base/theme/menus"); str->del(strings[2864]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[2866] = str->add("load"); strings[2571] = str->add(strings[2571]); strings[2867] = str->add("e,action,show,title"); strings[2569] = str->add(strings[2569]); str->del(strings[2866]); strings[2868] = str->add("program,start"); strings[2869] = str->add("on"); strings[1932] = str->add(strings[1932]); strings[2869] = str->add(strings[2869]); str->del(strings[2867]); str->del(strings[2569]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[2571] = str->add(strings[2571]); strings[2571] = str->add(strings[2571]); strings[2571] = str->add(strings[2571]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[2634] = str->add(strings[2634]); strings[2870] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[2584] = str->add(strings[2584]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2686] = str->add(strings[2686]); strings[2686] = str->add(strings[2686]); strings[2870] = str->add(strings[2870]); strings[469] = str->add(strings[469]); strings[2871] = str->add("images/322"); strings[2872] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/322"); strings[469] = str->add(strings[469]); strings[2871] = str->add(strings[2871]); strings[1841] = str->add(strings[1841]); strings[2873] = str->add("resize"); strings[2873] = str->add(strings[2873]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[2870] = str->add(strings[2870]); strings[2572] = str->add(strings[2572]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2874] = str->add("Sans"); strings[2875] = str->add("Edje-Vera"); str->del(strings[2874]); str->del(strings[2875]); strings[2876] = str->add("/var/lib/defoma/fontconfig.d/N/NimbusSanL-Regu.pfb"); strings[2877] = str->add("/var/lib/defoma/fontconfig.d/L/Loma.ttf"); strings[2878] = str->add("/var/lib/defoma/fontconfig.d/P/PadmaaMedium.ttf"); strings[2879] = str->add("/var/lib/defoma/fontconfig.d/P/Padmaa.ttf"); strings[2880] = str->add("/usr/share/fonts/truetype/ttf-indic-fonts-core/utkal.ttf"); strings[2881] = str->add("/var/lib/defoma/fontconfig.d/A/AlArabiya.ttf"); strings[2882] = str->add("/var/lib/defoma/fontconfig.d/B/Batang-Regular.ttf"); strings[2883] = str->add("/var/lib/defoma/fontconfig.d/D/DejaVu-Sans-Mono.ttf"); strings[2884] = str->add("/var/lib/defoma/fontconfig.d/G/Gentium.ttf"); strings[2885] = str->add("/var/lib/defoma/fontconfig.d/N/Nakula.ttf"); strings[385] = str->add(strings[385]); strings[2572] = str->add(strings[2572]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[2586] = str->add(strings[2586]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add("images/44"); strings[2887] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/44"); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add("images/45"); strings[2889] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/45"); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2715] = str->add(strings[2715]); strings[2715] = str->add(strings[2715]); strings[2870] = str->add(strings[2870]); strings[469] = str->add(strings[469]); strings[2890] = str->add("images/340"); strings[2891] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/340"); strings[469] = str->add(strings[469]); strings[2890] = str->add(strings[2890]); strings[1841] = str->add(strings[1841]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[2870] = str->add(strings[2870]); strings[2231] = str->add(strings[2231]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2231] = str->add(strings[2231]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[2583] = str->add(strings[2583]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2691] = str->add(strings[2691]); strings[2691] = str->add(strings[2691]); strings[2870] = str->add(strings[2870]); strings[469] = str->add(strings[469]); strings[2892] = str->add("images/326"); strings[2893] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/326"); strings[469] = str->add(strings[469]); strings[2892] = str->add(strings[2892]); strings[1841] = str->add(strings[1841]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[2870] = str->add(strings[2870]); strings[2338] = str->add(strings[2338]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2338] = str->add(strings[2338]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[2582] = str->add(strings[2582]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2687] = str->add(strings[2687]); strings[2687] = str->add(strings[2687]); strings[2870] = str->add(strings[2870]); strings[469] = str->add(strings[469]); strings[2894] = str->add("images/323"); strings[2895] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/323"); strings[469] = str->add(strings[469]); strings[2894] = str->add(strings[2894]); strings[1841] = str->add(strings[1841]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[2870] = str->add(strings[2870]); strings[1619] = str->add(strings[1619]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1619] = str->add(strings[1619]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2682] = str->add(strings[2682]); strings[2682] = str->add(strings[2682]); strings[2870] = str->add(strings[2870]); strings[469] = str->add(strings[469]); strings[2896] = str->add("images/319"); strings[2897] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/319"); strings[469] = str->add(strings[469]); strings[2896] = str->add(strings[2896]); strings[1841] = str->add(strings[1841]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[2870] = str->add(strings[2870]); strings[2552] = str->add(strings[2552]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2552] = str->add(strings[2552]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[2671] = str->add(strings[2671]); strings[2870] = str->add(strings[2870]); strings[469] = str->add(strings[469]); strings[2898] = str->add("images/314"); strings[2899] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/314"); strings[469] = str->add(strings[469]); strings[2898] = str->add(strings[2898]); strings[469] = str->add(strings[469]); strings[2900] = str->add("images/315"); strings[2901] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/315"); strings[469] = str->add(strings[469]); strings[2900] = str->add(strings[2900]); strings[1841] = str->add(strings[1841]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[2870] = str->add(strings[2870]); strings[1712] = str->add(strings[1712]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1712] = str->add(strings[1712]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[2688] = str->add(strings[2688]); strings[2870] = str->add(strings[2870]); strings[469] = str->add(strings[469]); strings[2902] = str->add("images/324"); strings[2903] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/324"); strings[469] = str->add(strings[469]); strings[2902] = str->add(strings[2902]); strings[1841] = str->add(strings[1841]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[2870] = str->add(strings[2870]); strings[2863] = str->add(strings[2863]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2863] = str->add(strings[2863]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2690] = str->add(strings[2690]); strings[2690] = str->add(strings[2690]); strings[2870] = str->add(strings[2870]); strings[469] = str->add(strings[469]); strings[2904] = str->add("images/327"); strings[2905] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/327"); strings[469] = str->add(strings[469]); strings[2904] = str->add(strings[2904]); strings[1841] = str->add(strings[1841]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[2870] = str->add(strings[2870]); strings[1721] = str->add(strings[1721]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1721] = str->add(strings[1721]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[2870] = str->add(strings[2870]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2873] = str->add(strings[2873]); strings[2906] = str->add("e,state,focused"); strings[2569] = str->add(strings[2569]); strings[167] = str->add(strings[167]); strings[1946] = str->add(strings[1946]); strings[167] = str->add(strings[167]); strings[1946] = str->add(strings[1946]); str->del(strings[2568]); str->del(strings[2569]); str->del(strings[2570]); str->del(strings[2569]); str->del(strings[167]); str->del(strings[377]); str->del(strings[2868]); str->del(strings[2869]); str->del(strings[1932]); str->del(strings[2869]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2870]); str->del(strings[1841]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); str->del(strings[2873]); strings[2907] = str->add("program,start"); strings[2908] = str->add("on"); str->del(strings[2906]); str->del(strings[2569]); str->del(strings[167]); str->del(strings[1946]); str->del(strings[167]); str->del(strings[1946]); str->del(strings[2907]); str->del(strings[2908]); strings[2909] = str->add("e,action,mouse,move"); strings[2910] = str->add("e"); strings[2909] = str->add(strings[2909]); strings[2910] = str->add(strings[2910]); strings[169] = str->add(strings[169]); strings[377] = str->add(strings[377]); strings[159] = str->add(strings[159]); strings[377] = str->add(strings[377]); strings[169] = str->add(strings[169]); strings[1946] = str->add(strings[1946]); strings[159] = str->add(strings[159]); strings[1946] = str->add(strings[1946]); strings[169] = str->add(strings[169]); strings[1946] = str->add(strings[1946]); strings[159] = str->add(strings[159]); strings[1946] = str->add(strings[1946]); strings[1740] = str->add(strings[1740]); strings[377] = str->add(strings[377]); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); strings[2909] = str->add(strings[2909]); strings[2910] = str->add(strings[2910]); strings[2911] = str->add("e,action,mouse,up"); strings[2910] = str->add(strings[2910]); str->del(strings[2909]); str->del(strings[2910]); str->del(strings[2909]); str->del(strings[2910]); str->del(strings[169]); str->del(strings[377]); str->del(strings[159]); str->del(strings[377]); str->del(strings[169]); str->del(strings[1946]); str->del(strings[159]); str->del(strings[1946]); str->del(strings[169]); str->del(strings[1946]); str->del(strings[159]); str->del(strings[1946]); str->del(strings[1740]); str->del(strings[377]); str->del(strings[1740]); str->del(strings[1946]); str->del(strings[1740]); str->del(strings[1946]); str->del(strings[2909]); str->del(strings[2910]); str->del(strings[2911]); str->del(strings[2910]); str->del(strings[2571]); strings[2571] = str->add(strings[2571]); str->del(strings[2571]); strings[2571] = str->add(strings[2571]); strings[2912] = str->add("resize"); strings[2572] = str->add(strings[2572]); strings[2572] = str->add(strings[2572]); strings[64] = str->add(strings[64]); strings[2913] = str->add("images/46"); strings[2914] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/46"); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[2912] = str->add(strings[2912]); strings[2231] = str->add(strings[2231]); strings[2231] = str->add(strings[2231]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[2912] = str->add(strings[2912]); strings[2338] = str->add(strings[2338]); strings[2338] = str->add(strings[2338]); strings[64] = str->add(strings[64]); strings[2915] = str->add("images/43"); strings[2916] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/43"); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[2912] = str->add(strings[2912]); strings[1619] = str->add(strings[1619]); strings[1619] = str->add(strings[1619]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[2912] = str->add(strings[2912]); strings[2552] = str->add(strings[2552]); strings[2552] = str->add(strings[2552]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[2912] = str->add(strings[2912]); strings[1712] = str->add(strings[1712]); strings[1712] = str->add(strings[1712]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[2912] = str->add(strings[2912]); strings[2863] = str->add(strings[2863]); strings[2863] = str->add(strings[2863]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[2912] = str->add(strings[2912]); strings[1721] = str->add(strings[1721]); strings[1721] = str->add(strings[1721]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); str->del(strings[2912]); str->del(strings[2912]); str->del(strings[2912]); str->del(strings[2912]); str->del(strings[2912]); str->del(strings[2912]); str->del(strings[2912]); str->del(strings[2912]); str->del(strings[7]); str->del(strings[2561]); strings[7] = str->add(strings[7]); strings[2915] = str->add(strings[2915]); strings[2917] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/43"); strings[7] = str->add(strings[7]); strings[2915] = str->add(strings[2915]); strings[2918] = str->add("/usr/devel/lib/enlightenment/modules/conf_window_manipulation/linux-gnu-x86_64/module.so"); strings[2918] = str->add(strings[2918]); strings[15] = str->add(strings[15]); strings[2919] = str->add("/usr/devel/lib/enlightenment/modules/conf_window_manipulation"); str->del(strings[2918]); strings[2920] = str->add("window_manipulation"); strings[197] = str->add(strings[197]); strings[2921] = str->add("enlightenment/window_manipulation"); str->del(strings[15]); str->del(strings[7]); str->del(strings[2915]); strings[7] = str->add(strings[7]); strings[2886] = str->add(strings[2886]); strings[2922] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/44"); strings[7] = str->add(strings[7]); strings[2886] = str->add(strings[2886]); strings[2923] = str->add("/usr/devel/lib/enlightenment/modules/conf_winlist/linux-gnu-x86_64/module.so"); strings[2923] = str->add(strings[2923]); strings[14] = str->add(strings[14]); strings[2924] = str->add("/usr/devel/lib/enlightenment/modules/conf_winlist"); str->del(strings[2923]); strings[2925] = str->add("window_list"); strings[2926] = str->add("Window List"); strings[2269] = str->add(strings[2269]); str->del(strings[14]); str->del(strings[7]); str->del(strings[2886]); strings[7] = str->add(strings[7]); strings[2888] = str->add(strings[2888]); strings[2927] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/45"); strings[7] = str->add(strings[7]); strings[2888] = str->add(strings[2888]); strings[2928] = str->add("/usr/devel/lib/enlightenment/modules/conf_engine/linux-gnu-x86_64/module.so"); strings[2928] = str->add(strings[2928]); strings[13] = str->add(strings[13]); strings[2929] = str->add("/usr/devel/lib/enlightenment/modules/conf_engine"); str->del(strings[2928]); strings[2930] = str->add("engine"); strings[2931] = str->add("Engine"); strings[2932] = str->add("enlightenment/engine"); str->del(strings[13]); strings[1932] = str->add(strings[1932]); strings[2933] = str->add("on"); str->del(strings[1932]); str->del(strings[2933]); str->del(strings[7]); str->del(strings[2888]); strings[7] = str->add(strings[7]); strings[2913] = str->add(strings[2913]); strings[2934] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/46"); strings[7] = str->add(strings[7]); strings[2913] = str->add(strings[2913]); strings[2935] = str->add("/usr/devel/lib/enlightenment/modules/fileman/linux-gnu-x86_64/module.so"); strings[2935] = str->add(strings[2935]); strings[12] = str->add(strings[12]); strings[2936] = str->add("/usr/devel/lib/enlightenment/modules/fileman"); str->del(strings[2935]); strings[12] = str->add(strings[12]); strings[2408] = str->add(strings[2408]); strings[2409] = str->add(strings[2409]); strings[2408] = str->add(strings[2408]); strings[12] = str->add(strings[12]); strings[2937] = str->add("base/theme/fileman"); strings[64] = str->add(strings[64]); strings[2780] = str->add(strings[2780]); str->del(strings[64]); str->del(strings[2780]); strings[469] = str->add(strings[469]); strings[2780] = str->add(strings[2780]); strings[2780] = str->add(strings[2780]); strings[2938] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2781] = str->add(strings[2781]); str->del(strings[64]); str->del(strings[2781]); strings[469] = str->add(strings[469]); strings[2781] = str->add(strings[2781]); strings[2781] = str->add(strings[2781]); strings[2938] = str->add(strings[2938]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2779] = str->add(strings[2779]); str->del(strings[64]); str->del(strings[2779]); strings[469] = str->add(strings[469]); strings[2779] = str->add(strings[2779]); strings[2779] = str->add(strings[2779]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); strings[2938] = str->add(strings[2938]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2788] = str->add(strings[2788]); str->del(strings[64]); str->del(strings[2788]); strings[469] = str->add(strings[469]); strings[2788] = str->add(strings[2788]); strings[2788] = str->add(strings[2788]); strings[2938] = str->add(strings[2938]); strings[2939] = str->add("desktop"); str->del(strings[2938]); str->del(strings[1841]); str->del(strings[469]); str->del(strings[2780]); strings[64] = str->add(strings[64]); strings[2786] = str->add(strings[2786]); str->del(strings[64]); str->del(strings[2786]); strings[469] = str->add(strings[469]); strings[2786] = str->add(strings[2786]); strings[2786] = str->add(strings[2786]); strings[2938] = str->add(strings[2938]); str->del(strings[2938]); str->del(strings[1841]); str->del(strings[469]); str->del(strings[2781]); strings[64] = str->add(strings[64]); strings[2787] = str->add(strings[2787]); str->del(strings[64]); str->del(strings[2787]); strings[469] = str->add(strings[469]); strings[2787] = str->add(strings[2787]); strings[2787] = str->add(strings[2787]); strings[2938] = str->add(strings[2938]); str->del(strings[2938]); str->del(strings[1841]); str->del(strings[469]); str->del(strings[2779]); strings[64] = str->add(strings[64]); strings[2785] = str->add(strings[2785]); str->del(strings[64]); str->del(strings[2785]); strings[469] = str->add(strings[469]); strings[2785] = str->add(strings[2785]); strings[2785] = str->add(strings[2785]); strings[2938] = str->add(strings[2938]); strings[2940] = str->add("dir_changed"); strings[2941] = str->add("dir_deleted"); strings[2942] = str->add("selected"); strings[2943] = str->add("selection_change"); strings[2944] = str->add("base/theme/widgets"); strings[64] = str->add(strings[64]); strings[2614] = str->add(strings[2614]); strings[2614] = str->add(strings[2614]); strings[2938] = str->add(strings[2938]); strings[2945] = str->add("drag*"); strings[2946] = str->add("e.dragable.vbar"); strings[2945] = str->add(strings[2945]); strings[2947] = str->add("e.dragable.hbar"); str->del(strings[2938]); str->del(strings[64]); str->del(strings[2614]); strings[64] = str->add(strings[64]); strings[2782] = str->add(strings[2782]); str->del(strings[64]); str->del(strings[2782]); strings[469] = str->add(strings[469]); strings[2782] = str->add(strings[2782]); strings[2782] = str->add(strings[2782]); strings[2938] = str->add(strings[2938]); strings[2948] = str->add("changed"); strings[2949] = str->add("pan_changed"); strings[469] = str->add(strings[469]); strings[2950] = str->add("images/422"); strings[2951] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/422"); strings[469] = str->add(strings[469]); strings[2950] = str->add(strings[2950]); strings[469] = str->add(strings[469]); strings[2952] = str->add("images/420"); strings[2953] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/420"); strings[469] = str->add(strings[469]); strings[2952] = str->add(strings[2952]); strings[469] = str->add(strings[469]); strings[2954] = str->add("images/433"); strings[2955] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/433"); strings[469] = str->add(strings[469]); strings[2954] = str->add(strings[2954]); strings[469] = str->add(strings[469]); strings[2956] = str->add("images/430"); strings[2957] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/430"); strings[469] = str->add(strings[469]); strings[2956] = str->add(strings[2956]); strings[469] = str->add(strings[469]); strings[2958] = str->add("images/435"); strings[2959] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/435"); strings[469] = str->add(strings[469]); strings[2958] = str->add(strings[2958]); strings[469] = str->add(strings[469]); strings[2960] = str->add("images/424"); strings[2961] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/424"); strings[469] = str->add(strings[469]); strings[2960] = str->add(strings[2960]); strings[469] = str->add(strings[469]); strings[2962] = str->add("images/426"); strings[2963] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/426"); strings[469] = str->add(strings[469]); strings[2962] = str->add(strings[2962]); strings[469] = str->add(strings[469]); strings[2964] = str->add("images/432"); strings[2965] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/432"); strings[469] = str->add(strings[469]); strings[2964] = str->add(strings[2964]); strings[469] = str->add(strings[469]); strings[2966] = str->add("images/428"); strings[2967] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/428"); strings[469] = str->add(strings[469]); strings[2966] = str->add(strings[2966]); strings[469] = str->add(strings[469]); strings[2968] = str->add("images/434"); strings[2969] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/434"); strings[469] = str->add(strings[469]); strings[2968] = str->add(strings[2968]); strings[2970] = str->add("resize"); strings[2970] = str->add(strings[2970]); strings[1841] = str->add(strings[1841]); strings[2971] = str->add("/home/cedric/Desktop"); strings[2939] = str->add(strings[2939]); strings[347] = str->add(strings[347]); strings[2972] = str->add("e,state,typebuf,stop"); strings[2973] = str->add("e"); strings[2974] = str->add("e,action,hide,hbar"); strings[2973] = str->add(strings[2973]); str->del(strings[2938]); str->del(strings[2970]); str->del(strings[1841]); strings[2975] = str->add("program,start"); strings[2976] = str->add("sb_hbar_hide"); strings[1932] = str->add(strings[1932]); strings[2976] = str->add(strings[2976]); str->del(strings[2974]); str->del(strings[2973]); strings[2970] = str->add(strings[2970]); strings[2977] = str->add("e,action,hide,vbar"); strings[2973] = str->add(strings[2973]); str->del(strings[2975]); str->del(strings[2976]); str->del(strings[1932]); str->del(strings[2976]); strings[2978] = str->add("program,start"); strings[2979] = str->add("sb_vbar_hide"); strings[1932] = str->add(strings[1932]); strings[2979] = str->add(strings[2979]); str->del(strings[2977]); str->del(strings[2973]); strings[2970] = str->add(strings[2970]); str->del(strings[12]); str->del(strings[2938]); str->del(strings[2938]); str->del(strings[2938]); str->del(strings[2938]); str->del(strings[2970]); str->del(strings[2972]); str->del(strings[2973]); str->del(strings[2970]); str->del(strings[2978]); str->del(strings[2979]); str->del(strings[1932]); str->del(strings[2979]); str->del(strings[2970]); strings[2980] = str->add("e,action,mouse,move"); strings[2981] = str->add("e"); strings[2980] = str->add(strings[2980]); strings[2981] = str->add(strings[2981]); strings[2980] = str->add(strings[2980]); strings[2981] = str->add(strings[2981]); strings[2980] = str->add(strings[2980]); strings[2981] = str->add(strings[2981]); strings[2980] = str->add(strings[2980]); strings[2981] = str->add(strings[2981]); strings[2980] = str->add(strings[2980]); strings[2981] = str->add(strings[2981]); str->del(strings[2980]); str->del(strings[2981]); str->del(strings[2980]); str->del(strings[2981]); str->del(strings[2980]); str->del(strings[2981]); str->del(strings[2980]); str->del(strings[2981]); str->del(strings[2980]); str->del(strings[2981]); str->del(strings[2980]); str->del(strings[2981]); strings[2982] = str->add("e,action,mouse,move"); strings[2983] = str->add("e"); str->del(strings[2982]); str->del(strings[2983]); strings[2984] = str->add("e,action,mouse,move"); strings[2985] = str->add("e"); str->del(strings[2984]); str->del(strings[2985]); strings[469] = str->add(strings[469]); strings[2986] = str->add("images/251"); strings[2987] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/251"); strings[469] = str->add(strings[469]); strings[2986] = str->add(strings[2986]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2986] = str->add(strings[2986]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2192] = str->add(strings[2192]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2190] = str->add(strings[2190]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2198] = str->add(strings[2198]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2196] = str->add(strings[2196]); strings[469] = str->add(strings[469]); strings[2988] = str->add("images/448"); strings[2989] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/448"); strings[469] = str->add(strings[469]); strings[2988] = str->add(strings[2988]); str->del(strings[7]); str->del(strings[2913]); strings[7] = str->add(strings[7]); strings[2990] = str->add("images/51"); strings[2991] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/51"); strings[7] = str->add(strings[7]); strings[2990] = str->add(strings[2990]); str->del(strings[469]); str->del(strings[469]); strings[2992] = str->add("e,action,mouse,move"); strings[2993] = str->add("e"); strings[2992] = str->add(strings[2992]); strings[2993] = str->add(strings[2993]); strings[2992] = str->add(strings[2992]); strings[2993] = str->add(strings[2993]); strings[2992] = str->add(strings[2992]); strings[2993] = str->add(strings[2993]); strings[2992] = str->add(strings[2992]); strings[2993] = str->add(strings[2993]); strings[2992] = str->add(strings[2992]); strings[2993] = str->add(strings[2993]); strings[2992] = str->add(strings[2992]); strings[2993] = str->add(strings[2993]); strings[2992] = str->add(strings[2992]); strings[2993] = str->add(strings[2993]); str->del(strings[2992]); str->del(strings[2993]); str->del(strings[2992]); str->del(strings[2993]); str->del(strings[2992]); str->del(strings[2993]); str->del(strings[2992]); str->del(strings[2993]); str->del(strings[2992]); str->del(strings[2993]); str->del(strings[2992]); str->del(strings[2993]); str->del(strings[2992]); str->del(strings[2993]); str->del(strings[2992]); str->del(strings[2993]); strings[2994] = str->add("/usr/devel/lib/enlightenment/modules/conf_interaction/linux-gnu-x86_64/module.so"); strings[2994] = str->add(strings[2994]); strings[11] = str->add(strings[11]); strings[2995] = str->add("/usr/devel/lib/enlightenment/modules/conf_interaction"); str->del(strings[2994]); strings[2996] = str->add("interaction"); strings[2997] = str->add("Interaction"); strings[2306] = str->add(strings[2306]); str->del(strings[11]); strings[2998] = str->add("e,action,mouse,move"); strings[2999] = str->add("e"); strings[2998] = str->add(strings[2998]); strings[2999] = str->add(strings[2999]); strings[2998] = str->add(strings[2998]); strings[2999] = str->add(strings[2999]); strings[2998] = str->add(strings[2998]); strings[2999] = str->add(strings[2999]); strings[3000] = str->add("e,state,selected"); strings[2999] = str->add(strings[2999]); strings[3000] = str->add(strings[3000]); strings[2999] = str->add(strings[2999]); strings[3000] = str->add(strings[3000]); strings[2999] = str->add(strings[2999]); strings[3000] = str->add(strings[3000]); strings[2999] = str->add(strings[2999]); strings[3000] = str->add(strings[3000]); strings[2999] = str->add(strings[2999]); strings[3000] = str->add(strings[3000]); strings[2999] = str->add(strings[2999]); strings[3001] = str->add("Lock Screen"); strings[469] = str->add(strings[469]); strings[2708] = str->add(strings[2708]); strings[1726] = str->add(strings[1726]); strings[469] = str->add(strings[469]); strings[2677] = str->add(strings[2677]); strings[3002] = str->add("Hibernate"); strings[469] = str->add(strings[469]); strings[2678] = str->add(strings[2678]); strings[1724] = str->add(strings[1724]); strings[469] = str->add(strings[469]); strings[2676] = str->add(strings[2676]); strings[1722] = str->add(strings[1722]); strings[469] = str->add(strings[469]); strings[2675] = str->add(strings[2675]); strings[3003] = str->add("Logout"); strings[469] = str->add(strings[469]); strings[2674] = str->add(strings[2674]); strings[2998] = str->add(strings[2998]); strings[2999] = str->add(strings[2999]); strings[2998] = str->add(strings[2998]); strings[2999] = str->add(strings[2999]); str->del(strings[2998]); str->del(strings[2999]); str->del(strings[2998]); str->del(strings[2999]); str->del(strings[2998]); str->del(strings[2999]); str->del(strings[2998]); str->del(strings[2999]); strings[3004] = str->add("program,start"); strings[3005] = str->add("sel"); str->del(strings[3000]); str->del(strings[2999]); str->del(strings[3000]); str->del(strings[2999]); strings[3004] = str->add(strings[3004]); strings[3005] = str->add(strings[3005]); str->del(strings[3000]); str->del(strings[2999]); strings[3004] = str->add(strings[3004]); strings[3005] = str->add(strings[3005]); strings[1932] = str->add(strings[1932]); strings[3005] = str->add(strings[3005]); str->del(strings[3000]); str->del(strings[2999]); str->del(strings[3000]); str->del(strings[2999]); str->del(strings[3000]); str->del(strings[2999]); str->del(strings[2998]); str->del(strings[2999]); str->del(strings[2998]); str->del(strings[2999]); str->del(strings[3004]); str->del(strings[3005]); str->del(strings[3004]); str->del(strings[3005]); str->del(strings[3004]); str->del(strings[3005]); str->del(strings[1932]); str->del(strings[3005]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[3006] = str->add("resize"); str->del(strings[3006]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[3007] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3007] = str->add(strings[3007]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3007] = str->add(strings[3007]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2708] = str->add(strings[2708]); strings[2708] = str->add(strings[2708]); strings[3007] = str->add(strings[3007]); strings[469] = str->add(strings[469]); strings[3008] = str->add("images/396"); strings[3009] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/396"); strings[469] = str->add(strings[469]); strings[3008] = str->add(strings[3008]); strings[1841] = str->add(strings[1841]); strings[3010] = str->add("resize"); strings[3010] = str->add(strings[3010]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3007] = str->add(strings[3007]); strings[3001] = str->add(strings[3001]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3001] = str->add(strings[3001]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[3007] = str->add(strings[3007]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3007] = str->add(strings[3007]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3007] = str->add(strings[3007]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2677] = str->add(strings[2677]); strings[2677] = str->add(strings[2677]); strings[3007] = str->add(strings[3007]); strings[469] = str->add(strings[469]); strings[3011] = str->add("images/386"); strings[3012] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/386"); strings[469] = str->add(strings[469]); strings[3011] = str->add(strings[3011]); strings[1841] = str->add(strings[1841]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3007] = str->add(strings[3007]); strings[1726] = str->add(strings[1726]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1726] = str->add(strings[1726]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3007] = str->add(strings[3007]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3007] = str->add(strings[3007]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2678] = str->add(strings[2678]); strings[2678] = str->add(strings[2678]); strings[3007] = str->add(strings[3007]); strings[469] = str->add(strings[469]); strings[3013] = str->add("images/385"); strings[3014] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/385"); strings[469] = str->add(strings[469]); strings[3013] = str->add(strings[3013]); strings[1841] = str->add(strings[1841]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3007] = str->add(strings[3007]); strings[3002] = str->add(strings[3002]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3002] = str->add(strings[3002]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3007] = str->add(strings[3007]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3007] = str->add(strings[3007]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2676] = str->add(strings[2676]); strings[2676] = str->add(strings[2676]); strings[3007] = str->add(strings[3007]); strings[469] = str->add(strings[469]); strings[3015] = str->add("images/388"); strings[3016] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/388"); strings[469] = str->add(strings[469]); strings[3015] = str->add(strings[3015]); strings[1841] = str->add(strings[1841]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3007] = str->add(strings[3007]); strings[1724] = str->add(strings[1724]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1724] = str->add(strings[1724]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3007] = str->add(strings[3007]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3007] = str->add(strings[3007]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2675] = str->add(strings[2675]); strings[2675] = str->add(strings[2675]); strings[3007] = str->add(strings[3007]); strings[469] = str->add(strings[469]); strings[3017] = str->add("images/387"); strings[3018] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/387"); strings[469] = str->add(strings[469]); strings[3017] = str->add(strings[3017]); strings[1841] = str->add(strings[1841]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3007] = str->add(strings[3007]); strings[1722] = str->add(strings[1722]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1722] = str->add(strings[1722]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[3007] = str->add(strings[3007]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3007] = str->add(strings[3007]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3007] = str->add(strings[3007]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2674] = str->add(strings[2674]); strings[2674] = str->add(strings[2674]); strings[3007] = str->add(strings[3007]); strings[469] = str->add(strings[469]); strings[3019] = str->add("images/384"); strings[3020] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/384"); strings[469] = str->add(strings[469]); strings[3019] = str->add(strings[3019]); strings[1841] = str->add(strings[1841]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3007] = str->add(strings[3007]); strings[3003] = str->add(strings[3003]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3003] = str->add(strings[3003]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); strings[3010] = str->add(strings[3010]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); strings[3010] = str->add(strings[3010]); strings[3001] = str->add(strings[3001]); strings[3001] = str->add(strings[3001]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[3010] = str->add(strings[3010]); strings[1726] = str->add(strings[1726]); strings[1726] = str->add(strings[1726]); strings[3010] = str->add(strings[3010]); strings[3002] = str->add(strings[3002]); strings[3002] = str->add(strings[3002]); strings[3010] = str->add(strings[3010]); strings[1724] = str->add(strings[1724]); strings[1724] = str->add(strings[1724]); strings[3010] = str->add(strings[3010]); strings[1722] = str->add(strings[1722]); strings[1722] = str->add(strings[1722]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[3010] = str->add(strings[3010]); strings[3003] = str->add(strings[3003]); strings[3003] = str->add(strings[3003]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add("images/47"); strings[3022] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/47"); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3007]); str->del(strings[1841]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); str->del(strings[3010]); strings[3023] = str->add("e,action,mouse,move"); strings[3024] = str->add("e"); strings[3023] = str->add(strings[3023]); strings[3024] = str->add(strings[3024]); str->del(strings[3023]); str->del(strings[3024]); str->del(strings[3023]); str->del(strings[3024]); strings[3025] = str->add("e,action,mouse,move"); strings[3026] = str->add("e"); str->del(strings[3025]); str->del(strings[3026]); str->del(strings[7]); str->del(strings[2990]); strings[7] = str->add(strings[7]); strings[3027] = str->add("images/52"); strings[3028] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/52"); strings[7] = str->add(strings[7]); strings[3027] = str->add(strings[3027]); strings[3029] = str->add("e,action,mouse,move"); strings[3030] = str->add("e"); strings[3029] = str->add(strings[3029]); strings[3030] = str->add(strings[3030]); str->del(strings[3029]); str->del(strings[3030]); str->del(strings[3029]); str->del(strings[3030]); strings[3031] = str->add("e,action,mouse,move"); strings[3032] = str->add("e"); strings[3031] = str->add(strings[3031]); strings[3032] = str->add(strings[3032]); str->del(strings[3031]); str->del(strings[3032]); str->del(strings[3031]); str->del(strings[3032]); str->del(strings[7]); str->del(strings[3027]); strings[7] = str->add(strings[7]); strings[3033] = str->add("images/53"); strings[3034] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/53"); strings[7] = str->add(strings[7]); strings[3033] = str->add(strings[3033]); strings[3035] = str->add("e,action,mouse,move"); strings[3036] = str->add("e"); str->del(strings[3035]); str->del(strings[3036]); strings[3037] = str->add("e,state,busy,start"); strings[3038] = str->add("e"); strings[3039] = str->add("print.pdf"); strings[3040] = str->add("application/pdf"); strings[64] = str->add(strings[64]); strings[2784] = str->add(strings[2784]); str->del(strings[64]); str->del(strings[2784]); strings[469] = str->add(strings[469]); strings[2784] = str->add(strings[2784]); strings[2784] = str->add(strings[2784]); strings[469] = str->add(strings[469]); strings[3041] = str->add("load"); strings[3039] = str->add(strings[3039]); strings[469] = str->add(strings[469]); strings[3042] = str->add("images/419"); strings[3043] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/419"); strings[469] = str->add(strings[469]); strings[3042] = str->add(strings[3042]); str->del(strings[469]); strings[379] = str->add(strings[379]); strings[3039] = str->add(strings[3039]); strings[3039] = str->add(strings[3039]); strings[3039] = str->add(strings[3039]); strings[469] = str->add(strings[469]); strings[3027] = str->add(strings[3027]); strings[3044] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/52"); strings[469] = str->add(strings[469]); strings[3027] = str->add(strings[3027]); strings[469] = str->add(strings[469]); strings[3045] = str->add("images/418"); strings[3046] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/418"); strings[469] = str->add(strings[469]); strings[3045] = str->add(strings[3045]); strings[3047] = str->add("3899_001.pdf"); strings[3040] = str->add(strings[3040]); str->del(strings[3039]); strings[3047] = str->add(strings[3047]); str->del(strings[3039]); strings[3047] = str->add(strings[3047]); strings[3048] = str->add("ACCORD EDF MR BAIL.pdf"); strings[3040] = str->add(strings[3040]); str->del(strings[3047]); strings[3048] = str->add(strings[3048]); str->del(strings[3047]); strings[3048] = str->add(strings[3048]); strings[3049] = str->add("3817_001.pdf"); strings[3040] = str->add(strings[3040]); str->del(strings[3048]); strings[3049] = str->add(strings[3049]); str->del(strings[3048]); strings[3049] = str->add(strings[3049]); strings[3050] = str->add("NVIDIA-Linux-x86_64-173.14.12-pkg2.run"); str->del(strings[3049]); strings[3050] = str->add(strings[3050]); str->del(strings[3049]); strings[3050] = str->add(strings[3050]); str->del(strings[3037]); str->del(strings[3038]); str->del(strings[3041]); strings[3051] = str->add("e,action,mouse,move"); strings[3052] = str->add("e"); strings[3051] = str->add(strings[3051]); strings[3052] = str->add(strings[3052]); str->del(strings[3051]); str->del(strings[3052]); str->del(strings[3051]); str->del(strings[3052]); str->del(strings[3039]); strings[3050] = str->add(strings[3050]); str->del(strings[3039]); strings[3050] = str->add(strings[3050]); strings[3053] = str->add("e,action,mouse,move"); strings[3054] = str->add("e"); strings[3053] = str->add(strings[3053]); strings[3054] = str->add(strings[3054]); strings[3053] = str->add(strings[3053]); strings[3054] = str->add(strings[3054]); str->del(strings[3053]); str->del(strings[3054]); str->del(strings[3053]); str->del(strings[3054]); str->del(strings[3053]); str->del(strings[3054]); strings[3055] = str->add("e,state,busy,stop"); strings[3056] = str->add("e"); str->del(strings[3050]); str->del(strings[3050]); str->del(strings[3050]); str->del(strings[469]); str->del(strings[2784]); strings[469] = str->add(strings[469]); strings[2784] = str->add(strings[2784]); strings[469] = str->add(strings[469]); strings[3057] = str->add("load"); strings[3049] = str->add(strings[3049]); strings[3058] = str->add("resize"); strings[1839] = str->add(strings[1839]); strings[2090] = str->add(strings[2090]); strings[2640] = str->add(strings[2640]); strings[2574] = str->add(strings[2574]); strings[2575] = str->add(strings[2575]); strings[2576] = str->add(strings[2576]); strings[2577] = str->add(strings[2577]); strings[2578] = str->add(strings[2578]); strings[2579] = str->add(strings[2579]); strings[2641] = str->add(strings[2641]); strings[2642] = str->add(strings[2642]); strings[2643] = str->add(strings[2643]); strings[2644] = str->add(strings[2644]); strings[2645] = str->add(strings[2645]); strings[2646] = str->add(strings[2646]); strings[2647] = str->add(strings[2647]); strings[2648] = str->add(strings[2648]); strings[2649] = str->add(strings[2649]); strings[2650] = str->add(strings[2650]); strings[2651] = str->add(strings[2651]); strings[2652] = str->add(strings[2652]); strings[2653] = str->add(strings[2653]); strings[2654] = str->add(strings[2654]); strings[2655] = str->add(strings[2655]); strings[2656] = str->add(strings[2656]); strings[2657] = str->add(strings[2657]); strings[2658] = str->add(strings[2658]); strings[2659] = str->add(strings[2659]); strings[2660] = str->add(strings[2660]); strings[2661] = str->add(strings[2661]); strings[2112] = str->add(strings[2112]); strings[1935] = str->add(strings[1935]); strings[2662] = str->add(strings[2662]); strings[1929] = str->add(strings[1929]); strings[2663] = str->add(strings[2663]); strings[2067] = str->add(strings[2067]); strings[2069] = str->add(strings[2069]); strings[2664] = str->add(strings[2664]); strings[2665] = str->add(strings[2665]); strings[2581] = str->add(strings[2581]); strings[2582] = str->add(strings[2582]); strings[2583] = str->add(strings[2583]); strings[2634] = str->add(strings[2634]); strings[2587] = str->add(strings[2587]); strings[2588] = str->add(strings[2588]); strings[2584] = str->add(strings[2584]); strings[2585] = str->add(strings[2585]); strings[2586] = str->add(strings[2586]); strings[2127] = str->add(strings[2127]); strings[1963] = str->add(strings[1963]); strings[2595] = str->add(strings[2595]); strings[2604] = str->add(strings[2604]); strings[2603] = str->add(strings[2603]); strings[2081] = str->add(strings[2081]); strings[2666] = str->add(strings[2666]); strings[2083] = str->add(strings[2083]); strings[2667] = str->add(strings[2667]); strings[2668] = str->add(strings[2668]); strings[2669] = str->add(strings[2669]); strings[2670] = str->add(strings[2670]); strings[1957] = str->add(strings[1957]); strings[2596] = str->add(strings[2596]); strings[2597] = str->add(strings[2597]); strings[2605] = str->add(strings[2605]); strings[2606] = str->add(strings[2606]); strings[2607] = str->add(strings[2607]); strings[2608] = str->add(strings[2608]); strings[2600] = str->add(strings[2600]); strings[2601] = str->add(strings[2601]); strings[2602] = str->add(strings[2602]); strings[2671] = str->add(strings[2671]); strings[2672] = str->add(strings[2672]); strings[2673] = str->add(strings[2673]); strings[2674] = str->add(strings[2674]); strings[2675] = str->add(strings[2675]); strings[2676] = str->add(strings[2676]); strings[2677] = str->add(strings[2677]); strings[2678] = str->add(strings[2678]); strings[2679] = str->add(strings[2679]); strings[2680] = str->add(strings[2680]); strings[2681] = str->add(strings[2681]); strings[2682] = str->add(strings[2682]); strings[2683] = str->add(strings[2683]); strings[2684] = str->add(strings[2684]); strings[2685] = str->add(strings[2685]); strings[2686] = str->add(strings[2686]); strings[2687] = str->add(strings[2687]); strings[2688] = str->add(strings[2688]); strings[2689] = str->add(strings[2689]); strings[2690] = str->add(strings[2690]); strings[2691] = str->add(strings[2691]); strings[2692] = str->add(strings[2692]); strings[2693] = str->add(strings[2693]); strings[2694] = str->add(strings[2694]); strings[2695] = str->add(strings[2695]); strings[2696] = str->add(strings[2696]); strings[2697] = str->add(strings[2697]); strings[2698] = str->add(strings[2698]); strings[2699] = str->add(strings[2699]); strings[2700] = str->add(strings[2700]); strings[2701] = str->add(strings[2701]); strings[2702] = str->add(strings[2702]); strings[2703] = str->add(strings[2703]); strings[2704] = str->add(strings[2704]); strings[2705] = str->add(strings[2705]); strings[2706] = str->add(strings[2706]); strings[2707] = str->add(strings[2707]); strings[2708] = str->add(strings[2708]); strings[2709] = str->add(strings[2709]); strings[2710] = str->add(strings[2710]); strings[2711] = str->add(strings[2711]); strings[2712] = str->add(strings[2712]); strings[2713] = str->add(strings[2713]); strings[2714] = str->add(strings[2714]); strings[2715] = str->add(strings[2715]); strings[2716] = str->add(strings[2716]); strings[2717] = str->add(strings[2717]); strings[2718] = str->add(strings[2718]); strings[2719] = str->add(strings[2719]); strings[2720] = str->add(strings[2720]); strings[2721] = str->add(strings[2721]); strings[2722] = str->add(strings[2722]); strings[2723] = str->add(strings[2723]); strings[2724] = str->add(strings[2724]); strings[2725] = str->add(strings[2725]); strings[2726] = str->add(strings[2726]); strings[2727] = str->add(strings[2727]); strings[2728] = str->add(strings[2728]); strings[2729] = str->add(strings[2729]); strings[2730] = str->add(strings[2730]); strings[2731] = str->add(strings[2731]); strings[2732] = str->add(strings[2732]); strings[2733] = str->add(strings[2733]); strings[2734] = str->add(strings[2734]); strings[2735] = str->add(strings[2735]); strings[2736] = str->add(strings[2736]); strings[2737] = str->add(strings[2737]); strings[2738] = str->add(strings[2738]); strings[2739] = str->add(strings[2739]); strings[2740] = str->add(strings[2740]); strings[2741] = str->add(strings[2741]); strings[2742] = str->add(strings[2742]); strings[2743] = str->add(strings[2743]); strings[2744] = str->add(strings[2744]); strings[2745] = str->add(strings[2745]); strings[2746] = str->add(strings[2746]); strings[2747] = str->add(strings[2747]); strings[2748] = str->add(strings[2748]); strings[2749] = str->add(strings[2749]); strings[2750] = str->add(strings[2750]); strings[2751] = str->add(strings[2751]); strings[2752] = str->add(strings[2752]); strings[2753] = str->add(strings[2753]); strings[2754] = str->add(strings[2754]); strings[2755] = str->add(strings[2755]); strings[2756] = str->add(strings[2756]); strings[2757] = str->add(strings[2757]); strings[2758] = str->add(strings[2758]); strings[2759] = str->add(strings[2759]); strings[2760] = str->add(strings[2760]); strings[2761] = str->add(strings[2761]); strings[2762] = str->add(strings[2762]); strings[2763] = str->add(strings[2763]); strings[2764] = str->add(strings[2764]); strings[2765] = str->add(strings[2765]); strings[2766] = str->add(strings[2766]); strings[2767] = str->add(strings[2767]); strings[2768] = str->add(strings[2768]); strings[2580] = str->add(strings[2580]); strings[1754] = str->add(strings[1754]); strings[2769] = str->add(strings[2769]); strings[2770] = str->add(strings[2770]); strings[2619] = str->add(strings[2619]); strings[2620] = str->add(strings[2620]); strings[2621] = str->add(strings[2621]); strings[2622] = str->add(strings[2622]); strings[2771] = str->add(strings[2771]); strings[2772] = str->add(strings[2772]); strings[2773] = str->add(strings[2773]); strings[2774] = str->add(strings[2774]); strings[2775] = str->add(strings[2775]); strings[2776] = str->add(strings[2776]); strings[2777] = str->add(strings[2777]); strings[2778] = str->add(strings[2778]); strings[2779] = str->add(strings[2779]); strings[2780] = str->add(strings[2780]); strings[2781] = str->add(strings[2781]); strings[2782] = str->add(strings[2782]); strings[2783] = str->add(strings[2783]); strings[2784] = str->add(strings[2784]); strings[2785] = str->add(strings[2785]); strings[2786] = str->add(strings[2786]); strings[2787] = str->add(strings[2787]); strings[2788] = str->add(strings[2788]); strings[2789] = str->add(strings[2789]); strings[2790] = str->add(strings[2790]); strings[2791] = str->add(strings[2791]); strings[2792] = str->add(strings[2792]); strings[2793] = str->add(strings[2793]); strings[2794] = str->add(strings[2794]); strings[2795] = str->add(strings[2795]); strings[2796] = str->add(strings[2796]); strings[2797] = str->add(strings[2797]); strings[2798] = str->add(strings[2798]); strings[2799] = str->add(strings[2799]); strings[2800] = str->add(strings[2800]); strings[2801] = str->add(strings[2801]); strings[2802] = str->add(strings[2802]); strings[2803] = str->add(strings[2803]); strings[2804] = str->add(strings[2804]); strings[2805] = str->add(strings[2805]); strings[2806] = str->add(strings[2806]); strings[2807] = str->add(strings[2807]); strings[2808] = str->add(strings[2808]); strings[2809] = str->add(strings[2809]); strings[2810] = str->add(strings[2810]); strings[2811] = str->add(strings[2811]); strings[2812] = str->add(strings[2812]); strings[2813] = str->add(strings[2813]); strings[2814] = str->add(strings[2814]); strings[2815] = str->add(strings[2815]); strings[2816] = str->add(strings[2816]); strings[2817] = str->add(strings[2817]); strings[2817] = str->add(strings[2817]); strings[2818] = str->add(strings[2818]); strings[2819] = str->add(strings[2819]); strings[2820] = str->add(strings[2820]); strings[2821] = str->add(strings[2821]); strings[2822] = str->add(strings[2822]); strings[2823] = str->add(strings[2823]); strings[2824] = str->add(strings[2824]); strings[2825] = str->add(strings[2825]); strings[2826] = str->add(strings[2826]); strings[2827] = str->add(strings[2827]); strings[2828] = str->add(strings[2828]); strings[2829] = str->add(strings[2829]); strings[2830] = str->add(strings[2830]); strings[2831] = str->add(strings[2831]); strings[2832] = str->add(strings[2832]); strings[2833] = str->add(strings[2833]); strings[2834] = str->add(strings[2834]); strings[2835] = str->add(strings[2835]); strings[2836] = str->add(strings[2836]); strings[2837] = str->add(strings[2837]); strings[2838] = str->add(strings[2838]); strings[2839] = str->add(strings[2839]); strings[2840] = str->add(strings[2840]); strings[2841] = str->add(strings[2841]); strings[2842] = str->add(strings[2842]); strings[2843] = str->add(strings[2843]); strings[2844] = str->add(strings[2844]); strings[2845] = str->add(strings[2845]); strings[2846] = str->add(strings[2846]); strings[2847] = str->add(strings[2847]); strings[2609] = str->add(strings[2609]); strings[2610] = str->add(strings[2610]); strings[2611] = str->add(strings[2611]); strings[2612] = str->add(strings[2612]); strings[2630] = str->add(strings[2630]); strings[2613] = str->add(strings[2613]); strings[2631] = str->add(strings[2631]); strings[2614] = str->add(strings[2614]); strings[2615] = str->add(strings[2615]); strings[2616] = str->add(strings[2616]); strings[2617] = str->add(strings[2617]); strings[2848] = str->add(strings[2848]); strings[2849] = str->add(strings[2849]); strings[2628] = str->add(strings[2628]); strings[2629] = str->add(strings[2629]); strings[2850] = str->add(strings[2850]); strings[2851] = str->add(strings[2851]); strings[2852] = str->add(strings[2852]); strings[2853] = str->add(strings[2853]); strings[2633] = str->add(strings[2633]); strings[1945] = str->add(strings[1945]); strings[2061] = str->add(strings[2061]); strings[1960] = str->add(strings[1960]); strings[2592] = str->add(strings[2592]); strings[2593] = str->add(strings[2593]); strings[2594] = str->add(strings[2594]); strings[2589] = str->add(strings[2589]); strings[2590] = str->add(strings[2590]); strings[2591] = str->add(strings[2591]); strings[2623] = str->add(strings[2623]); strings[2627] = str->add(strings[2627]); strings[2626] = str->add(strings[2626]); strings[2625] = str->add(strings[2625]); strings[2599] = str->add(strings[2599]); strings[2635] = str->add(strings[2635]); strings[2636] = str->add(strings[2636]); strings[2637] = str->add(strings[2637]); strings[2638] = str->add(strings[2638]); strings[2624] = str->add(strings[2624]); strings[2632] = str->add(strings[2632]); strings[2854] = str->add(strings[2854]); strings[2855] = str->add(strings[2855]); strings[2856] = str->add(strings[2856]); strings[2857] = str->add(strings[2857]); strings[2598] = str->add(strings[2598]); strings[2858] = str->add(strings[2858]); strings[2859] = str->add(strings[2859]); strings[2639] = str->add(strings[2639]); str->del(strings[1839]); str->del(strings[2090]); str->del(strings[2640]); str->del(strings[2574]); str->del(strings[2575]); str->del(strings[2576]); str->del(strings[2577]); str->del(strings[2578]); str->del(strings[2579]); str->del(strings[2641]); str->del(strings[2642]); str->del(strings[2643]); str->del(strings[2644]); str->del(strings[2645]); str->del(strings[2646]); str->del(strings[2647]); str->del(strings[2648]); str->del(strings[2649]); str->del(strings[2650]); str->del(strings[2651]); str->del(strings[2652]); str->del(strings[2653]); str->del(strings[2654]); str->del(strings[2655]); str->del(strings[2656]); str->del(strings[2657]); str->del(strings[2658]); str->del(strings[2659]); str->del(strings[2660]); str->del(strings[2661]); str->del(strings[2112]); str->del(strings[1935]); str->del(strings[2662]); str->del(strings[1929]); str->del(strings[2663]); str->del(strings[2067]); str->del(strings[2069]); str->del(strings[2664]); str->del(strings[2665]); str->del(strings[2581]); str->del(strings[2582]); str->del(strings[2583]); str->del(strings[2634]); str->del(strings[2587]); str->del(strings[2588]); str->del(strings[2584]); str->del(strings[2585]); str->del(strings[2586]); str->del(strings[2127]); str->del(strings[1963]); str->del(strings[2595]); str->del(strings[2604]); str->del(strings[2603]); str->del(strings[2081]); str->del(strings[2666]); str->del(strings[2083]); str->del(strings[2667]); str->del(strings[2668]); str->del(strings[2669]); str->del(strings[2670]); str->del(strings[1957]); str->del(strings[2596]); str->del(strings[2597]); str->del(strings[2605]); str->del(strings[2606]); str->del(strings[2607]); str->del(strings[2608]); str->del(strings[2600]); str->del(strings[2601]); str->del(strings[2602]); str->del(strings[2671]); str->del(strings[2672]); str->del(strings[2673]); str->del(strings[2674]); str->del(strings[2675]); str->del(strings[2676]); str->del(strings[2677]); str->del(strings[2678]); str->del(strings[2679]); str->del(strings[2680]); str->del(strings[2681]); str->del(strings[2682]); str->del(strings[2683]); str->del(strings[2684]); str->del(strings[2685]); str->del(strings[2686]); str->del(strings[2687]); str->del(strings[2688]); str->del(strings[2689]); str->del(strings[2690]); str->del(strings[2691]); str->del(strings[2692]); str->del(strings[2693]); str->del(strings[2694]); str->del(strings[2695]); str->del(strings[2696]); str->del(strings[2697]); str->del(strings[2698]); str->del(strings[2699]); str->del(strings[2700]); str->del(strings[2701]); str->del(strings[2702]); str->del(strings[2703]); str->del(strings[2704]); str->del(strings[2705]); str->del(strings[2706]); str->del(strings[2707]); str->del(strings[2708]); str->del(strings[2709]); str->del(strings[2710]); str->del(strings[2711]); str->del(strings[2712]); str->del(strings[2713]); str->del(strings[2714]); str->del(strings[2715]); str->del(strings[2716]); str->del(strings[2717]); str->del(strings[2718]); str->del(strings[2719]); str->del(strings[2720]); str->del(strings[2721]); str->del(strings[2722]); str->del(strings[2723]); str->del(strings[2724]); str->del(strings[2725]); str->del(strings[2726]); str->del(strings[2727]); str->del(strings[2728]); str->del(strings[2729]); str->del(strings[2730]); str->del(strings[2731]); str->del(strings[2732]); str->del(strings[2733]); str->del(strings[2734]); str->del(strings[2735]); str->del(strings[2736]); str->del(strings[2737]); str->del(strings[2738]); str->del(strings[2739]); str->del(strings[2740]); str->del(strings[2741]); str->del(strings[2742]); str->del(strings[2743]); str->del(strings[2744]); str->del(strings[2745]); str->del(strings[2746]); str->del(strings[2747]); str->del(strings[2748]); str->del(strings[2749]); str->del(strings[2750]); str->del(strings[2751]); str->del(strings[2752]); str->del(strings[2753]); str->del(strings[2754]); str->del(strings[2755]); str->del(strings[2756]); str->del(strings[2757]); str->del(strings[2758]); str->del(strings[2759]); str->del(strings[2760]); str->del(strings[2761]); str->del(strings[2762]); str->del(strings[2763]); str->del(strings[2764]); str->del(strings[2765]); str->del(strings[2766]); str->del(strings[2767]); str->del(strings[2768]); str->del(strings[2580]); str->del(strings[1754]); str->del(strings[2769]); str->del(strings[2770]); str->del(strings[2619]); str->del(strings[2620]); str->del(strings[2621]); str->del(strings[2622]); str->del(strings[2771]); str->del(strings[2772]); str->del(strings[2773]); str->del(strings[2774]); str->del(strings[2775]); str->del(strings[2776]); str->del(strings[2777]); str->del(strings[2778]); str->del(strings[2779]); str->del(strings[2780]); str->del(strings[2781]); str->del(strings[2782]); str->del(strings[2783]); str->del(strings[2784]); str->del(strings[2785]); str->del(strings[2786]); str->del(strings[2787]); str->del(strings[2788]); str->del(strings[2789]); str->del(strings[2790]); str->del(strings[2791]); str->del(strings[2792]); str->del(strings[2793]); str->del(strings[2794]); str->del(strings[2795]); str->del(strings[2796]); str->del(strings[2797]); str->del(strings[2798]); str->del(strings[2799]); str->del(strings[2800]); str->del(strings[2801]); str->del(strings[2802]); str->del(strings[2803]); str->del(strings[2804]); str->del(strings[2805]); str->del(strings[2806]); str->del(strings[2807]); str->del(strings[2808]); str->del(strings[2809]); str->del(strings[2810]); str->del(strings[2811]); str->del(strings[2812]); str->del(strings[2813]); str->del(strings[2814]); str->del(strings[2815]); str->del(strings[2816]); str->del(strings[2817]); str->del(strings[2817]); str->del(strings[2818]); str->del(strings[2819]); str->del(strings[2820]); str->del(strings[2821]); str->del(strings[2822]); str->del(strings[2823]); str->del(strings[2824]); str->del(strings[2825]); str->del(strings[2826]); str->del(strings[2827]); str->del(strings[2828]); str->del(strings[2829]); str->del(strings[2830]); str->del(strings[2831]); str->del(strings[2832]); str->del(strings[2833]); str->del(strings[2834]); str->del(strings[2835]); str->del(strings[2836]); str->del(strings[2837]); str->del(strings[2838]); str->del(strings[2839]); str->del(strings[2840]); str->del(strings[2841]); str->del(strings[2842]); str->del(strings[2843]); str->del(strings[2844]); str->del(strings[2845]); str->del(strings[2846]); str->del(strings[2847]); str->del(strings[2609]); str->del(strings[2610]); str->del(strings[2611]); str->del(strings[2612]); str->del(strings[2630]); str->del(strings[2613]); str->del(strings[2631]); str->del(strings[2614]); str->del(strings[2615]); str->del(strings[2616]); str->del(strings[2617]); str->del(strings[2848]); str->del(strings[2849]); str->del(strings[2628]); str->del(strings[2629]); str->del(strings[2850]); str->del(strings[2851]); str->del(strings[2852]); str->del(strings[2853]); str->del(strings[2633]); str->del(strings[1945]); str->del(strings[2061]); str->del(strings[1960]); str->del(strings[2592]); str->del(strings[2593]); str->del(strings[2594]); str->del(strings[2589]); str->del(strings[2590]); str->del(strings[2591]); str->del(strings[2623]); str->del(strings[2627]); str->del(strings[2626]); str->del(strings[2625]); str->del(strings[2599]); str->del(strings[2635]); str->del(strings[2636]); str->del(strings[2637]); str->del(strings[2638]); str->del(strings[2624]); str->del(strings[2632]); str->del(strings[2854]); str->del(strings[2855]); str->del(strings[2856]); str->del(strings[2857]); str->del(strings[2598]); str->del(strings[2858]); str->del(strings[2859]); str->del(strings[2639]); strings[2795] = str->add(strings[2795]); strings[469] = str->add(strings[469]); strings[2795] = str->add(strings[2795]); strings[2795] = str->add(strings[2795]); strings[3057] = str->add(strings[3057]); strings[469] = str->add(strings[469]); strings[3059] = str->add("images/457"); strings[3060] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/457"); strings[469] = str->add(strings[469]); strings[3059] = str->add(strings[3059]); strings[1841] = str->add(strings[1841]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2784] = str->add(strings[2784]); strings[469] = str->add(strings[469]); strings[3057] = str->add(strings[3057]); strings[3047] = str->add(strings[3047]); strings[3058] = str->add(strings[3058]); strings[469] = str->add(strings[469]); strings[2795] = str->add(strings[2795]); strings[3057] = str->add(strings[3057]); strings[469] = str->add(strings[469]); strings[3059] = str->add(strings[3059]); strings[1841] = str->add(strings[1841]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2784] = str->add(strings[2784]); strings[469] = str->add(strings[469]); strings[3057] = str->add(strings[3057]); strings[3048] = str->add(strings[3048]); strings[3058] = str->add(strings[3058]); strings[469] = str->add(strings[469]); strings[2795] = str->add(strings[2795]); strings[3057] = str->add(strings[3057]); strings[469] = str->add(strings[469]); strings[3059] = str->add(strings[3059]); strings[1841] = str->add(strings[1841]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2784] = str->add(strings[2784]); strings[469] = str->add(strings[469]); strings[3057] = str->add(strings[3057]); strings[3050] = str->add(strings[3050]); strings[3058] = str->add(strings[3058]); strings[64] = str->add(strings[64]); strings[2790] = str->add(strings[2790]); str->del(strings[64]); str->del(strings[2790]); strings[469] = str->add(strings[469]); strings[2790] = str->add(strings[2790]); strings[2790] = str->add(strings[2790]); strings[3057] = str->add(strings[3057]); strings[469] = str->add(strings[469]); strings[3061] = str->add("images/451"); strings[3062] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/451"); strings[469] = str->add(strings[469]); strings[3061] = str->add(strings[3061]); strings[1841] = str->add(strings[1841]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2784] = str->add(strings[2784]); strings[469] = str->add(strings[469]); strings[3057] = str->add(strings[3057]); strings[3039] = str->add(strings[3039]); strings[3058] = str->add(strings[3058]); strings[469] = str->add(strings[469]); strings[2795] = str->add(strings[2795]); strings[3057] = str->add(strings[3057]); strings[469] = str->add(strings[469]); strings[3059] = str->add(strings[3059]); strings[1841] = str->add(strings[1841]); strings[1841] = str->add(strings[1841]); str->del(strings[3055]); str->del(strings[3056]); str->del(strings[3057]); str->del(strings[3058]); str->del(strings[3057]); str->del(strings[1841]); str->del(strings[1841]); str->del(strings[3057]); str->del(strings[3058]); str->del(strings[3057]); str->del(strings[1841]); str->del(strings[1841]); str->del(strings[3057]); str->del(strings[3058]); str->del(strings[3057]); str->del(strings[1841]); str->del(strings[1841]); str->del(strings[3057]); str->del(strings[3058]); str->del(strings[3057]); str->del(strings[1841]); str->del(strings[1841]); str->del(strings[3057]); str->del(strings[3058]); str->del(strings[3057]); str->del(strings[1841]); str->del(strings[1841]); strings[3063] = str->add("e,action,mouse,move"); strings[3064] = str->add("e"); strings[3065] = str->add("e,state,unselected"); strings[3064] = str->add(strings[3064]); strings[3065] = str->add(strings[3065]); strings[3064] = str->add(strings[3064]); strings[3065] = str->add(strings[3065]); strings[3064] = str->add(strings[3064]); strings[3065] = str->add(strings[3065]); strings[3064] = str->add(strings[3064]); strings[3065] = str->add(strings[3065]); strings[3064] = str->add(strings[3064]); strings[3065] = str->add(strings[3065]); strings[3064] = str->add(strings[3064]); strings[3063] = str->add(strings[3063]); strings[3064] = str->add(strings[3064]); strings[3063] = str->add(strings[3063]); strings[3064] = str->add(strings[3064]); str->del(strings[3063]); str->del(strings[3064]); strings[1932] = str->add(strings[1932]); strings[3066] = str->add("sel"); strings[3067] = str->add("program,start"); strings[3068] = str->add("unsel"); str->del(strings[3065]); str->del(strings[3064]); str->del(strings[3065]); str->del(strings[3064]); strings[1932] = str->add(strings[1932]); strings[3066] = str->add(strings[3066]); strings[3067] = str->add(strings[3067]); strings[3068] = str->add(strings[3068]); str->del(strings[3065]); str->del(strings[3064]); strings[3067] = str->add(strings[3067]); strings[3068] = str->add(strings[3068]); strings[1932] = str->add(strings[1932]); strings[3068] = str->add(strings[3068]); str->del(strings[3065]); str->del(strings[3064]); str->del(strings[3065]); str->del(strings[3064]); str->del(strings[3065]); str->del(strings[3064]); str->del(strings[3063]); str->del(strings[3064]); str->del(strings[3063]); str->del(strings[3064]); str->del(strings[1932]); str->del(strings[3066]); str->del(strings[3067]); str->del(strings[3068]); str->del(strings[1932]); str->del(strings[3066]); str->del(strings[3067]); str->del(strings[3068]); str->del(strings[3067]); str->del(strings[3068]); str->del(strings[1932]); str->del(strings[3068]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[469] = str->add(strings[469]); strings[3042] = str->add(strings[3042]); strings[3069] = str->add("resize"); str->del(strings[469]); strings[379] = str->add(strings[379]); strings[3049] = str->add(strings[3049]); strings[3049] = str->add(strings[3049]); str->del(strings[3049]); strings[3070] = str->add("3817_001...."); str->del(strings[3070]); strings[3071] = str->add("3817_001..."); strings[3071] = str->add(strings[3071]); strings[3069] = str->add(strings[3069]); strings[469] = str->add(strings[469]); strings[3027] = str->add(strings[3027]); strings[469] = str->add(strings[469]); strings[3045] = str->add(strings[3045]); str->del(strings[3071]); strings[3049] = str->add(strings[3049]); str->del(strings[3049]); strings[3071] = str->add(strings[3071]); strings[469] = str->add(strings[469]); strings[3042] = str->add(strings[3042]); strings[3069] = str->add(strings[3069]); str->del(strings[469]); strings[379] = str->add(strings[379]); strings[3047] = str->add(strings[3047]); strings[3047] = str->add(strings[3047]); str->del(strings[3047]); strings[3072] = str->add("3899_001...."); str->del(strings[3072]); strings[3073] = str->add("3899_001..."); strings[3073] = str->add(strings[3073]); strings[3069] = str->add(strings[3069]); strings[469] = str->add(strings[469]); strings[3027] = str->add(strings[3027]); strings[469] = str->add(strings[469]); strings[3045] = str->add(strings[3045]); str->del(strings[3073]); strings[3047] = str->add(strings[3047]); str->del(strings[3047]); strings[3073] = str->add(strings[3073]); strings[469] = str->add(strings[469]); strings[3042] = str->add(strings[3042]); strings[3069] = str->add(strings[3069]); str->del(strings[469]); strings[379] = str->add(strings[379]); strings[3048] = str->add(strings[3048]); strings[3048] = str->add(strings[3048]); str->del(strings[3048]); strings[3074] = str->add("ACCORD E..."); strings[3074] = str->add(strings[3074]); strings[3069] = str->add(strings[3069]); strings[469] = str->add(strings[469]); strings[3027] = str->add(strings[3027]); strings[469] = str->add(strings[469]); strings[3045] = str->add(strings[3045]); str->del(strings[3074]); strings[3048] = str->add(strings[3048]); str->del(strings[3048]); strings[3074] = str->add(strings[3074]); strings[469] = str->add(strings[469]); strings[3042] = str->add(strings[3042]); strings[3069] = str->add(strings[3069]); str->del(strings[469]); strings[379] = str->add(strings[379]); strings[3050] = str->add(strings[3050]); strings[3050] = str->add(strings[3050]); str->del(strings[3050]); strings[3075] = str->add("NVIDIA-Lin..."); str->del(strings[3075]); strings[3076] = str->add("NVIDIA-Li..."); strings[3076] = str->add(strings[3076]); strings[3069] = str->add(strings[3069]); strings[469] = str->add(strings[469]); strings[3027] = str->add(strings[3027]); strings[469] = str->add(strings[469]); strings[3045] = str->add(strings[3045]); str->del(strings[3076]); strings[3050] = str->add(strings[3050]); str->del(strings[3050]); strings[3076] = str->add(strings[3076]); strings[469] = str->add(strings[469]); strings[3042] = str->add(strings[3042]); strings[3069] = str->add(strings[3069]); str->del(strings[469]); strings[379] = str->add(strings[379]); strings[3039] = str->add(strings[3039]); strings[3039] = str->add(strings[3039]); strings[3039] = str->add(strings[3039]); strings[3069] = str->add(strings[3069]); strings[469] = str->add(strings[469]); strings[3027] = str->add(strings[3027]); strings[469] = str->add(strings[469]); strings[3045] = str->add(strings[3045]); str->del(strings[3069]); str->del(strings[3069]); str->del(strings[3069]); str->del(strings[3069]); str->del(strings[3069]); str->del(strings[3069]); str->del(strings[3069]); str->del(strings[3069]); str->del(strings[3069]); str->del(strings[3069]); strings[3077] = str->add("e,action,mouse,move"); strings[3078] = str->add("e"); str->del(strings[3077]); str->del(strings[3078]); str->del(strings[7]); str->del(strings[3033]); strings[7] = str->add(strings[7]); strings[2062] = str->add(strings[2062]); strings[3079] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/54"); strings[7] = str->add(strings[7]); strings[2062] = str->add(strings[2062]); str->del(strings[469]); str->del(strings[3042]); str->del(strings[469]); str->del(strings[3027]); str->del(strings[469]); str->del(strings[3045]); str->del(strings[3050]); str->del(strings[379]); strings[3080] = str->add("e,action,mouse,move"); strings[3081] = str->add("e"); strings[3082] = str->add("e,state,selected"); strings[3081] = str->add(strings[3081]); strings[3082] = str->add(strings[3082]); strings[3081] = str->add(strings[3081]); strings[3082] = str->add(strings[3082]); strings[3081] = str->add(strings[3081]); strings[3082] = str->add(strings[3082]); strings[3081] = str->add(strings[3081]); strings[3082] = str->add(strings[3082]); strings[3081] = str->add(strings[3081]); strings[3082] = str->add(strings[3082]); strings[3081] = str->add(strings[3081]); strings[2224] = str->add(strings[2224]); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[4] = str->add(strings[4]); strings[469] = str->add(strings[469]); strings[2685] = str->add(strings[2685]); strings[1925] = str->add(strings[1925]); strings[1926] = str->add(strings[1926]); strings[3083] = str->add("icon"); strings[2494] = str->add(strings[2494]); strings[469] = str->add(strings[469]); strings[2711] = str->add(strings[2711]); strings[2514] = str->add(strings[2514]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[2536] = str->add(strings[2536]); strings[469] = str->add(strings[469]); strings[2713] = str->add(strings[2713]); strings[3080] = str->add(strings[3080]); strings[3081] = str->add(strings[3081]); strings[3080] = str->add(strings[3080]); strings[3081] = str->add(strings[3081]); strings[3080] = str->add(strings[3080]); strings[3081] = str->add(strings[3081]); str->del(strings[3080]); str->del(strings[3081]); strings[3084] = str->add("program,start"); strings[3085] = str->add("sel"); str->del(strings[3082]); str->del(strings[3081]); str->del(strings[3082]); str->del(strings[3081]); strings[3084] = str->add(strings[3084]); strings[3085] = str->add(strings[3085]); str->del(strings[3082]); str->del(strings[3081]); strings[3084] = str->add(strings[3084]); strings[3085] = str->add(strings[3085]); strings[1932] = str->add(strings[1932]); strings[3085] = str->add(strings[3085]); str->del(strings[3082]); str->del(strings[3081]); str->del(strings[3082]); str->del(strings[3081]); str->del(strings[3082]); str->del(strings[3081]); str->del(strings[3080]); str->del(strings[3081]); str->del(strings[3080]); str->del(strings[3081]); str->del(strings[3080]); str->del(strings[3081]); str->del(strings[3084]); str->del(strings[3085]); str->del(strings[3084]); str->del(strings[3085]); str->del(strings[3084]); str->del(strings[3085]); str->del(strings[1932]); str->del(strings[3085]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[3086] = str->add("resize"); str->del(strings[3086]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[3087] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3087] = str->add(strings[3087]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3087] = str->add(strings[3087]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[3087] = str->add(strings[3087]); strings[469] = str->add(strings[469]); strings[2902] = str->add(strings[2902]); strings[1841] = str->add(strings[1841]); strings[3088] = str->add("resize"); strings[3088] = str->add(strings[3088]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3087] = str->add(strings[3087]); strings[2224] = str->add(strings[2224]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2224] = str->add(strings[2224]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[3087] = str->add(strings[3087]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3087] = str->add(strings[3087]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3087] = str->add(strings[3087]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2685] = str->add(strings[2685]); strings[2685] = str->add(strings[2685]); strings[3087] = str->add(strings[3087]); strings[469] = str->add(strings[469]); strings[3089] = str->add("images/321"); strings[3090] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/321"); strings[469] = str->add(strings[469]); strings[3089] = str->add(strings[3089]); strings[1841] = str->add(strings[1841]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3087] = str->add(strings[3087]); strings[4] = str->add(strings[4]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[4] = str->add(strings[4]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3087] = str->add(strings[3087]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3087] = str->add(strings[3087]); strings[1841] = str->add(strings[1841]); strings[1926] = str->add(strings[1926]); strings[3083] = str->add(strings[3083]); strings[1926] = str->add(strings[1926]); strings[3083] = str->add(strings[3083]); strings[3087] = str->add(strings[3087]); strings[1926] = str->add(strings[1926]); strings[1552] = str->add(strings[1552]); strings[3091] = str->add("/usr/devel/lib/enlightenment/modules/gadman/e-module-gadman.edj//://images/0"); strings[1926] = str->add(strings[1926]); strings[1552] = str->add(strings[1552]); strings[1841] = str->add(strings[1841]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3087] = str->add(strings[3087]); strings[1925] = str->add(strings[1925]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1925] = str->add(strings[1925]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3087] = str->add(strings[3087]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3087] = str->add(strings[3087]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2711] = str->add(strings[2711]); strings[2711] = str->add(strings[2711]); strings[3087] = str->add(strings[3087]); strings[469] = str->add(strings[469]); strings[3092] = str->add("images/335"); strings[3093] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/335"); strings[469] = str->add(strings[469]); strings[3092] = str->add(strings[3092]); strings[1841] = str->add(strings[1841]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3087] = str->add(strings[3087]); strings[2494] = str->add(strings[2494]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2494] = str->add(strings[2494]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3087] = str->add(strings[3087]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3087] = str->add(strings[3087]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[2680] = str->add(strings[2680]); strings[3087] = str->add(strings[3087]); strings[469] = str->add(strings[469]); strings[3094] = str->add("images/317"); strings[3095] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/317"); strings[469] = str->add(strings[469]); strings[3094] = str->add(strings[3094]); strings[1841] = str->add(strings[1841]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3087] = str->add(strings[3087]); strings[2514] = str->add(strings[2514]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2514] = str->add(strings[2514]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3087] = str->add(strings[3087]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3087] = str->add(strings[3087]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2713] = str->add(strings[2713]); strings[2713] = str->add(strings[2713]); strings[3087] = str->add(strings[3087]); strings[469] = str->add(strings[469]); strings[3096] = str->add("images/330"); strings[3097] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/330"); strings[469] = str->add(strings[469]); strings[3096] = str->add(strings[3096]); strings[1841] = str->add(strings[1841]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3087] = str->add(strings[3087]); strings[2536] = str->add(strings[2536]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2536] = str->add(strings[2536]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[3088] = str->add(strings[3088]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2708]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3001]); str->del(strings[3001]); str->del(strings[3001]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2677]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1726]); str->del(strings[1726]); str->del(strings[1726]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2678]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3002]); str->del(strings[3002]); str->del(strings[3002]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2676]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1724]); str->del(strings[1724]); str->del(strings[1724]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2675]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1722]); str->del(strings[1722]); str->del(strings[1722]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2674]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3003]); str->del(strings[3003]); str->del(strings[3003]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3008]); str->del(strings[3001]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3011]); str->del(strings[1726]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3013]); str->del(strings[3002]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3015]); str->del(strings[1724]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3017]); str->del(strings[1722]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3019]); str->del(strings[3003]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); strings[3088] = str->add(strings[3088]); strings[2224] = str->add(strings[2224]); strings[2224] = str->add(strings[2224]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[3088] = str->add(strings[3088]); strings[4] = str->add(strings[4]); strings[4] = str->add(strings[4]); strings[3088] = str->add(strings[3088]); strings[1925] = str->add(strings[1925]); strings[1925] = str->add(strings[1925]); strings[3088] = str->add(strings[3088]); strings[2494] = str->add(strings[2494]); strings[2494] = str->add(strings[2494]); strings[3088] = str->add(strings[3088]); strings[2514] = str->add(strings[2514]); strings[2514] = str->add(strings[2514]); strings[3088] = str->add(strings[3088]); strings[2536] = str->add(strings[2536]); strings[2536] = str->add(strings[2536]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3087]); str->del(strings[1841]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); str->del(strings[3088]); strings[3098] = str->add("e,action,mouse,move"); strings[3099] = str->add("e"); strings[3098] = str->add(strings[3098]); strings[3099] = str->add(strings[3099]); strings[3098] = str->add(strings[3098]); strings[3099] = str->add(strings[3099]); strings[3098] = str->add(strings[3098]); strings[3099] = str->add(strings[3099]); strings[3098] = str->add(strings[3098]); strings[3099] = str->add(strings[3099]); str->del(strings[3098]); str->del(strings[3099]); str->del(strings[3098]); str->del(strings[3099]); str->del(strings[3098]); str->del(strings[3099]); str->del(strings[3098]); str->del(strings[3099]); str->del(strings[3098]); str->del(strings[3099]); str->del(strings[7]); str->del(strings[2062]); strings[7] = str->add(strings[7]); strings[3100] = str->add("images/55"); strings[3101] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/55"); strings[7] = str->add(strings[7]); strings[3100] = str->add(strings[3100]); strings[3102] = str->add("e,action,mouse,move"); strings[3103] = str->add("e"); str->del(strings[3102]); str->del(strings[3103]); strings[3104] = str->add("e,action,mouse,move"); strings[3105] = str->add("e"); strings[3104] = str->add(strings[3104]); strings[3105] = str->add(strings[3105]); str->del(strings[3104]); str->del(strings[3105]); str->del(strings[3104]); str->del(strings[3105]); strings[1932] = str->add(strings[1932]); strings[3106] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3106]); strings[3107] = str->add("e,action,mouse,move"); strings[3108] = str->add("e"); strings[3107] = str->add(strings[3107]); strings[3108] = str->add(strings[3108]); str->del(strings[3107]); str->del(strings[3108]); str->del(strings[3107]); str->del(strings[3108]); strings[3109] = str->add("e,action,mouse,move"); strings[3110] = str->add("e"); strings[3109] = str->add(strings[3109]); strings[3110] = str->add(strings[3110]); str->del(strings[3109]); str->del(strings[3110]); str->del(strings[3109]); str->del(strings[3110]); str->del(strings[7]); str->del(strings[3100]); strings[7] = str->add(strings[7]); strings[3111] = str->add("images/56"); strings[3112] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/56"); strings[7] = str->add(strings[7]); strings[3111] = str->add(strings[3111]); strings[3113] = str->add("e,action,mouse,move"); strings[3114] = str->add("e"); strings[3115] = str->add("e,state,unselected"); strings[3114] = str->add(strings[3114]); strings[3115] = str->add(strings[3115]); strings[3114] = str->add(strings[3114]); strings[3115] = str->add(strings[3115]); strings[3114] = str->add(strings[3114]); strings[3115] = str->add(strings[3115]); strings[3114] = str->add(strings[3114]); strings[3115] = str->add(strings[3115]); strings[3114] = str->add(strings[3114]); strings[3115] = str->add(strings[3115]); strings[3114] = str->add(strings[3114]); strings[3113] = str->add(strings[3113]); strings[3114] = str->add(strings[3114]); str->del(strings[3113]); str->del(strings[3114]); strings[1932] = str->add(strings[1932]); strings[3116] = str->add("sel"); strings[3117] = str->add("program,start"); strings[3118] = str->add("unsel"); str->del(strings[3115]); str->del(strings[3114]); str->del(strings[3115]); str->del(strings[3114]); strings[1932] = str->add(strings[1932]); strings[3116] = str->add(strings[3116]); strings[3117] = str->add(strings[3117]); strings[3118] = str->add(strings[3118]); str->del(strings[3115]); str->del(strings[3114]); strings[3117] = str->add(strings[3117]); strings[3118] = str->add(strings[3118]); strings[1932] = str->add(strings[1932]); strings[3118] = str->add(strings[3118]); str->del(strings[3115]); str->del(strings[3114]); str->del(strings[3115]); str->del(strings[3114]); str->del(strings[3115]); str->del(strings[3114]); str->del(strings[3113]); str->del(strings[3114]); str->del(strings[1932]); str->del(strings[3116]); str->del(strings[3117]); str->del(strings[3118]); str->del(strings[1932]); str->del(strings[3116]); str->del(strings[3117]); str->del(strings[3118]); str->del(strings[3117]); str->del(strings[3118]); str->del(strings[1932]); str->del(strings[3118]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3119] = str->add("e,action,mouse,move"); strings[3120] = str->add("e"); strings[3119] = str->add(strings[3119]); strings[3120] = str->add(strings[3120]); strings[3121] = str->add("e,state,selected"); strings[3120] = str->add(strings[3120]); strings[3121] = str->add(strings[3121]); strings[3120] = str->add(strings[3120]); strings[3121] = str->add(strings[3121]); strings[3120] = str->add(strings[3120]); strings[3121] = str->add(strings[3121]); strings[3120] = str->add(strings[3120]); strings[3121] = str->add(strings[3121]); strings[3120] = str->add(strings[3120]); strings[3121] = str->add(strings[3121]); strings[3120] = str->add(strings[3120]); str->del(strings[3119]); str->del(strings[3120]); str->del(strings[3119]); str->del(strings[3120]); strings[3122] = str->add("program,start"); strings[3123] = str->add("sel"); str->del(strings[3121]); str->del(strings[3120]); str->del(strings[3121]); str->del(strings[3120]); strings[3122] = str->add(strings[3122]); strings[3123] = str->add(strings[3123]); str->del(strings[3121]); str->del(strings[3120]); strings[3122] = str->add(strings[3122]); strings[3123] = str->add(strings[3123]); strings[1932] = str->add(strings[1932]); strings[3123] = str->add(strings[3123]); str->del(strings[3121]); str->del(strings[3120]); strings[3122] = str->add(strings[3122]); strings[3124] = str->add("e_in"); str->del(strings[3121]); str->del(strings[3120]); str->del(strings[3121]); str->del(strings[3120]); str->del(strings[3122]); str->del(strings[3123]); str->del(strings[3122]); str->del(strings[3123]); str->del(strings[3122]); str->del(strings[3123]); str->del(strings[1932]); str->del(strings[3123]); str->del(strings[3122]); str->del(strings[3124]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); strings[3125] = str->add("e,action,mouse,move"); strings[3126] = str->add("e"); str->del(strings[3125]); str->del(strings[3126]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[3127] = str->add("resize"); str->del(strings[3127]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[3128] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3128] = str->add(strings[3128]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3128] = str->add(strings[3128]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[3128] = str->add(strings[3128]); strings[469] = str->add(strings[469]); strings[2898] = str->add(strings[2898]); strings[469] = str->add(strings[469]); strings[2900] = str->add(strings[2900]); strings[1841] = str->add(strings[1841]); strings[3129] = str->add("resize"); strings[3129] = str->add(strings[3129]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3128] = str->add(strings[3128]); strings[2862] = str->add(strings[2862]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2862] = str->add(strings[2862]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3128] = str->add(strings[3128]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3128] = str->add(strings[3128]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[3128] = str->add(strings[3128]); strings[469] = str->add(strings[469]); strings[3094] = str->add(strings[3094]); strings[1841] = str->add(strings[1841]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3128] = str->add(strings[3128]); strings[2514] = str->add(strings[2514]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2514] = str->add(strings[2514]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[3128] = str->add(strings[3128]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3128] = str->add(strings[3128]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3128] = str->add(strings[3128]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2672] = str->add(strings[2672]); strings[2672] = str->add(strings[2672]); strings[3128] = str->add(strings[3128]); strings[469] = str->add(strings[469]); strings[3130] = str->add("images/383"); strings[3131] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/383"); strings[469] = str->add(strings[469]); strings[3130] = str->add(strings[3130]); strings[1841] = str->add(strings[1841]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3128] = str->add(strings[3128]); strings[1713] = str->add(strings[1713]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1713] = str->add(strings[1713]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3128] = str->add(strings[3128]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3128] = str->add(strings[3128]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2673] = str->add(strings[2673]); strings[2673] = str->add(strings[2673]); strings[3128] = str->add(strings[3128]); strings[469] = str->add(strings[469]); strings[3132] = str->add("images/382"); strings[3133] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/382"); strings[469] = str->add(strings[469]); strings[3132] = str->add(strings[3132]); strings[1841] = str->add(strings[1841]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3128] = str->add(strings[3128]); strings[1714] = str->add(strings[1714]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1714] = str->add(strings[1714]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[3129] = str->add(strings[3129]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2688]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2224]); str->del(strings[2224]); str->del(strings[2224]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2685]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[4]); str->del(strings[4]); str->del(strings[4]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1926]); str->del(strings[3083]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1925]); str->del(strings[1925]); str->del(strings[1925]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2711]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2494]); str->del(strings[2494]); str->del(strings[2494]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2680]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2713]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2536]); str->del(strings[2536]); str->del(strings[2536]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2902]); str->del(strings[2224]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3089]); str->del(strings[4]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[1926]); str->del(strings[1552]); str->del(strings[1925]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3092]); str->del(strings[2494]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3094]); str->del(strings[2514]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3096]); str->del(strings[2536]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); strings[3129] = str->add(strings[3129]); strings[2862] = str->add(strings[2862]); strings[2862] = str->add(strings[2862]); strings[3129] = str->add(strings[3129]); strings[2514] = str->add(strings[2514]); strings[2514] = str->add(strings[2514]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[3129] = str->add(strings[3129]); strings[1713] = str->add(strings[1713]); strings[1713] = str->add(strings[1713]); strings[3129] = str->add(strings[3129]); strings[1714] = str->add(strings[1714]); strings[1714] = str->add(strings[1714]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3128]); str->del(strings[1841]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); str->del(strings[3129]); strings[3134] = str->add("e,action,mouse,move"); strings[3135] = str->add("e"); strings[3134] = str->add(strings[3134]); strings[3135] = str->add(strings[3135]); strings[3134] = str->add(strings[3134]); strings[3135] = str->add(strings[3135]); strings[3134] = str->add(strings[3134]); strings[3135] = str->add(strings[3135]); str->del(strings[3134]); str->del(strings[3135]); str->del(strings[3134]); str->del(strings[3135]); str->del(strings[3134]); str->del(strings[3135]); str->del(strings[3134]); str->del(strings[3135]); str->del(strings[7]); str->del(strings[3111]); strings[7] = str->add(strings[7]); strings[3136] = str->add("images/57"); strings[3137] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/57"); strings[7] = str->add(strings[7]); strings[3136] = str->add(strings[3136]); strings[3138] = str->add("e,action,mouse,move"); strings[3139] = str->add("e"); str->del(strings[3138]); str->del(strings[3139]); strings[3140] = str->add("e,action,mouse,move"); strings[3141] = str->add("e"); strings[3140] = str->add(strings[3140]); strings[3141] = str->add(strings[3141]); str->del(strings[3140]); str->del(strings[3141]); str->del(strings[3140]); str->del(strings[3141]); strings[3142] = str->add("e,action,mouse,move"); strings[3143] = str->add("e"); str->del(strings[3142]); str->del(strings[3143]); strings[3144] = str->add("e,action,mouse,move"); strings[3145] = str->add("e"); strings[3146] = str->add("e,state,unselected"); strings[3145] = str->add(strings[3145]); strings[3146] = str->add(strings[3146]); strings[3145] = str->add(strings[3145]); strings[3146] = str->add(strings[3146]); strings[3145] = str->add(strings[3145]); strings[3146] = str->add(strings[3146]); strings[3145] = str->add(strings[3145]); strings[3146] = str->add(strings[3146]); strings[3145] = str->add(strings[3145]); strings[3146] = str->add(strings[3146]); strings[3145] = str->add(strings[3145]); str->del(strings[3144]); str->del(strings[3145]); strings[1932] = str->add(strings[1932]); strings[3147] = str->add("sel"); strings[3148] = str->add("program,start"); strings[3149] = str->add("unsel"); str->del(strings[3146]); str->del(strings[3145]); str->del(strings[3146]); str->del(strings[3145]); strings[1932] = str->add(strings[1932]); strings[3147] = str->add(strings[3147]); strings[3148] = str->add(strings[3148]); strings[3149] = str->add(strings[3149]); str->del(strings[3146]); str->del(strings[3145]); strings[3148] = str->add(strings[3148]); strings[3149] = str->add(strings[3149]); strings[1932] = str->add(strings[1932]); strings[3149] = str->add(strings[3149]); str->del(strings[3146]); str->del(strings[3145]); strings[1932] = str->add(strings[1932]); strings[3150] = str->add("e_in"); strings[3148] = str->add(strings[3148]); strings[3151] = str->add("e_out"); str->del(strings[3146]); str->del(strings[3145]); str->del(strings[3146]); str->del(strings[3145]); str->del(strings[1932]); str->del(strings[3147]); str->del(strings[3148]); str->del(strings[3149]); str->del(strings[1932]); str->del(strings[3147]); str->del(strings[3148]); str->del(strings[3149]); str->del(strings[3148]); str->del(strings[3149]); str->del(strings[1932]); str->del(strings[3149]); str->del(strings[1932]); str->del(strings[3150]); str->del(strings[3148]); str->del(strings[3151]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3152] = str->add("e,action,mouse,move"); strings[3153] = str->add("e"); strings[3154] = str->add("e,state,selected"); strings[3153] = str->add(strings[3153]); strings[3154] = str->add(strings[3154]); strings[3153] = str->add(strings[3153]); strings[3154] = str->add(strings[3154]); strings[3153] = str->add(strings[3153]); strings[3154] = str->add(strings[3154]); strings[3153] = str->add(strings[3153]); strings[3154] = str->add(strings[3154]); strings[3153] = str->add(strings[3153]); strings[3154] = str->add(strings[3154]); strings[3153] = str->add(strings[3153]); strings[3152] = str->add(strings[3152]); strings[3153] = str->add(strings[3153]); strings[3155] = str->add("(No Windows)"); strings[1731] = str->add(strings[1731]); strings[469] = str->add(strings[469]); strings[2682] = str->add(strings[2682]); strings[3156] = str->add("Lost Windows"); strings[469] = str->add(strings[469]); strings[2683] = str->add(strings[2683]); str->del(strings[3152]); str->del(strings[3153]); strings[3157] = str->add("program,start"); strings[3158] = str->add("sel"); str->del(strings[3154]); str->del(strings[3153]); str->del(strings[3154]); str->del(strings[3153]); strings[3157] = str->add(strings[3157]); strings[3158] = str->add(strings[3158]); str->del(strings[3154]); str->del(strings[3153]); strings[3157] = str->add(strings[3157]); strings[3158] = str->add(strings[3158]); strings[1932] = str->add(strings[1932]); strings[3158] = str->add(strings[3158]); str->del(strings[3154]); str->del(strings[3153]); str->del(strings[3154]); str->del(strings[3153]); str->del(strings[3154]); str->del(strings[3153]); str->del(strings[3152]); str->del(strings[3153]); str->del(strings[3157]); str->del(strings[3158]); str->del(strings[3157]); str->del(strings[3158]); str->del(strings[3157]); str->del(strings[3158]); str->del(strings[1932]); str->del(strings[3158]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[3159] = str->add("resize"); str->del(strings[3159]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[3160] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3160] = str->add(strings[3160]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3160] = str->add(strings[3160]); strings[3155] = str->add(strings[3155]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3155] = str->add(strings[3155]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[3160] = str->add(strings[3160]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3160] = str->add(strings[3160]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3160] = str->add(strings[3160]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2682] = str->add(strings[2682]); strings[3160] = str->add(strings[3160]); strings[469] = str->add(strings[469]); strings[2896] = str->add(strings[2896]); strings[1841] = str->add(strings[1841]); strings[3161] = str->add("resize"); strings[3161] = str->add(strings[3161]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3160] = str->add(strings[3160]); strings[1731] = str->add(strings[1731]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1731] = str->add(strings[1731]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[3160] = str->add(strings[3160]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3160] = str->add(strings[3160]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3160] = str->add(strings[3160]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2683] = str->add(strings[2683]); strings[2683] = str->add(strings[2683]); strings[3160] = str->add(strings[3160]); strings[469] = str->add(strings[469]); strings[3162] = str->add("images/320"); strings[3163] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/320"); strings[469] = str->add(strings[469]); strings[3162] = str->add(strings[3162]); strings[1841] = str->add(strings[1841]); strings[3161] = str->add(strings[3161]); strings[3161] = str->add(strings[3161]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3160] = str->add(strings[3160]); strings[3156] = str->add(strings[3156]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3156] = str->add(strings[3156]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3160] = str->add(strings[3160]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[3161] = str->add(strings[3161]); strings[3161] = str->add(strings[3161]); strings[3161] = str->add(strings[3161]); strings[3161] = str->add(strings[3161]); strings[3161] = str->add(strings[3161]); strings[3161] = str->add(strings[3161]); strings[3161] = str->add(strings[3161]); strings[3161] = str->add(strings[3161]); strings[3161] = str->add(strings[3161]); strings[3161] = str->add(strings[3161]); strings[3161] = str->add(strings[3161]); strings[3161] = str->add(strings[3161]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2671]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2862]); str->del(strings[2862]); str->del(strings[2862]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2680]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2672]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1713]); str->del(strings[1713]); str->del(strings[1713]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2673]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1714]); str->del(strings[1714]); str->del(strings[1714]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2898]); str->del(strings[469]); str->del(strings[2900]); str->del(strings[2862]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3094]); str->del(strings[2514]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3130]); str->del(strings[1713]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3132]); str->del(strings[1714]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); strings[3155] = str->add(strings[3155]); strings[3155] = str->add(strings[3155]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[3161] = str->add(strings[3161]); strings[1731] = str->add(strings[1731]); strings[1731] = str->add(strings[1731]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[3161] = str->add(strings[3161]); strings[3156] = str->add(strings[3156]); strings[3156] = str->add(strings[3156]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); strings[1932] = str->add(strings[1932]); strings[3164] = str->add("unsel"); str->del(strings[3160]); str->del(strings[1841]); str->del(strings[3160]); str->del(strings[1841]); str->del(strings[3160]); str->del(strings[1841]); str->del(strings[3160]); str->del(strings[1841]); str->del(strings[3160]); str->del(strings[1841]); str->del(strings[3160]); str->del(strings[1841]); str->del(strings[3160]); str->del(strings[1841]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[3160]); str->del(strings[1841]); str->del(strings[3160]); str->del(strings[1841]); str->del(strings[3160]); str->del(strings[1841]); str->del(strings[3160]); str->del(strings[1841]); str->del(strings[3160]); str->del(strings[1841]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[3160]); str->del(strings[1841]); str->del(strings[3160]); str->del(strings[1841]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[3161]); str->del(strings[1932]); str->del(strings[3164]); strings[3165] = str->add("e,action,mouse,move"); strings[3166] = str->add("e"); str->del(strings[3165]); str->del(strings[3166]); str->del(strings[7]); str->del(strings[3136]); strings[7] = str->add(strings[7]); strings[3167] = str->add("images/58"); strings[3168] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/58"); strings[7] = str->add(strings[7]); strings[3167] = str->add(strings[3167]); strings[3169] = str->add("e,action,mouse,move"); strings[3170] = str->add("e"); str->del(strings[3169]); str->del(strings[3170]); strings[3171] = str->add("e,action,mouse,move"); strings[3172] = str->add("e"); str->del(strings[3171]); str->del(strings[3172]); strings[3173] = str->add("e,action,mouse,move"); strings[3174] = str->add("e"); str->del(strings[3173]); str->del(strings[3174]); strings[3175] = str->add("e,action,mouse,move"); strings[3176] = str->add("e"); str->del(strings[3175]); str->del(strings[3176]); strings[1932] = str->add(strings[1932]); strings[3177] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3177]); strings[3178] = str->add("e,action,mouse,move"); strings[3179] = str->add("e"); strings[3180] = str->add("e,state,unselected"); strings[3179] = str->add(strings[3179]); strings[3180] = str->add(strings[3180]); strings[3179] = str->add(strings[3179]); strings[3180] = str->add(strings[3180]); strings[3179] = str->add(strings[3179]); strings[3180] = str->add(strings[3180]); strings[3179] = str->add(strings[3179]); strings[3180] = str->add(strings[3180]); strings[3179] = str->add(strings[3179]); strings[3180] = str->add(strings[3180]); strings[3179] = str->add(strings[3179]); strings[3181] = str->add("e,state,selected"); strings[3179] = str->add(strings[3179]); strings[3181] = str->add(strings[3181]); strings[3179] = str->add(strings[3179]); strings[3181] = str->add(strings[3181]); strings[3179] = str->add(strings[3179]); strings[3181] = str->add(strings[3181]); strings[3179] = str->add(strings[3179]); strings[3181] = str->add(strings[3181]); strings[3179] = str->add(strings[3179]); strings[3181] = str->add(strings[3181]); strings[3179] = str->add(strings[3179]); str->del(strings[3178]); str->del(strings[3179]); strings[1932] = str->add(strings[1932]); strings[3182] = str->add("sel"); strings[3183] = str->add("program,start"); strings[3184] = str->add("unsel"); str->del(strings[3180]); str->del(strings[3179]); str->del(strings[3180]); str->del(strings[3179]); strings[1932] = str->add(strings[1932]); strings[3182] = str->add(strings[3182]); strings[3183] = str->add(strings[3183]); strings[3184] = str->add(strings[3184]); str->del(strings[3180]); str->del(strings[3179]); strings[3183] = str->add(strings[3183]); strings[3184] = str->add(strings[3184]); strings[1932] = str->add(strings[1932]); strings[3184] = str->add(strings[3184]); str->del(strings[3180]); str->del(strings[3179]); str->del(strings[3180]); str->del(strings[3179]); str->del(strings[3180]); str->del(strings[3179]); strings[3183] = str->add(strings[3183]); strings[3182] = str->add(strings[3182]); str->del(strings[3181]); str->del(strings[3179]); str->del(strings[3181]); str->del(strings[3179]); strings[3183] = str->add(strings[3183]); strings[3182] = str->add(strings[3182]); str->del(strings[3181]); str->del(strings[3179]); strings[3183] = str->add(strings[3183]); strings[3182] = str->add(strings[3182]); strings[1932] = str->add(strings[1932]); strings[3182] = str->add(strings[3182]); str->del(strings[3181]); str->del(strings[3179]); str->del(strings[3181]); str->del(strings[3179]); str->del(strings[3181]); str->del(strings[3179]); str->del(strings[1932]); str->del(strings[3182]); str->del(strings[3183]); str->del(strings[3184]); str->del(strings[1932]); str->del(strings[3182]); str->del(strings[3183]); str->del(strings[3184]); str->del(strings[3183]); str->del(strings[3184]); str->del(strings[1932]); str->del(strings[3184]); str->del(strings[3183]); str->del(strings[3182]); str->del(strings[3183]); str->del(strings[3182]); str->del(strings[3183]); str->del(strings[3182]); str->del(strings[1932]); str->del(strings[3182]); strings[3185] = str->add("e,action,mouse,move"); strings[3186] = str->add("e"); str->del(strings[3185]); str->del(strings[3186]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[3187] = str->add("resize"); str->del(strings[3187]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[3188] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3188] = str->add(strings[3188]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3188] = str->add(strings[3188]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2687] = str->add(strings[2687]); strings[3188] = str->add(strings[3188]); strings[469] = str->add(strings[469]); strings[2894] = str->add(strings[2894]); strings[1841] = str->add(strings[1841]); strings[3189] = str->add("resize"); strings[3189] = str->add(strings[3189]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3188] = str->add(strings[3188]); strings[2860] = str->add(strings[2860]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2860] = str->add(strings[2860]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3188] = str->add(strings[3188]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3188] = str->add(strings[3188]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3188] = str->add(strings[3188]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2711] = str->add(strings[2711]); strings[3188] = str->add(strings[3188]); strings[469] = str->add(strings[469]); strings[3092] = str->add(strings[3092]); strings[1841] = str->add(strings[1841]); strings[3189] = str->add(strings[3189]); strings[3189] = str->add(strings[3189]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3188] = str->add(strings[3188]); strings[2494] = str->add(strings[2494]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2494] = str->add(strings[2494]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3188] = str->add(strings[3188]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[3188] = str->add(strings[3188]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3188] = str->add(strings[3188]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3188] = str->add(strings[3188]); strings[2861] = str->add(strings[2861]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2861] = str->add(strings[2861]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[3189] = str->add(strings[3189]); strings[3189] = str->add(strings[3189]); strings[3189] = str->add(strings[3189]); strings[3189] = str->add(strings[3189]); strings[3189] = str->add(strings[3189]); strings[3189] = str->add(strings[3189]); strings[3189] = str->add(strings[3189]); strings[3189] = str->add(strings[3189]); strings[3189] = str->add(strings[3189]); strings[3189] = str->add(strings[3189]); strings[3189] = str->add(strings[3189]); strings[3189] = str->add(strings[3189]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3155]); str->del(strings[3155]); str->del(strings[3155]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2682]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1731]); str->del(strings[1731]); str->del(strings[1731]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2683]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3156]); str->del(strings[3156]); str->del(strings[3156]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3155]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2896]); str->del(strings[1731]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3162]); str->del(strings[3156]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); strings[3189] = str->add(strings[3189]); strings[2860] = str->add(strings[2860]); strings[2860] = str->add(strings[2860]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3189] = str->add(strings[3189]); strings[2494] = str->add(strings[2494]); strings[2494] = str->add(strings[2494]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[2861] = str->add(strings[2861]); strings[2861] = str->add(strings[2861]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); str->del(strings[3188]); str->del(strings[1841]); str->del(strings[3188]); str->del(strings[1841]); str->del(strings[3188]); str->del(strings[1841]); str->del(strings[3188]); str->del(strings[1841]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[3188]); str->del(strings[1841]); str->del(strings[3188]); str->del(strings[1841]); str->del(strings[3188]); str->del(strings[1841]); str->del(strings[3188]); str->del(strings[1841]); str->del(strings[3188]); str->del(strings[1841]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[3188]); str->del(strings[1841]); str->del(strings[3188]); str->del(strings[1841]); str->del(strings[3188]); str->del(strings[1841]); str->del(strings[3188]); str->del(strings[1841]); str->del(strings[3188]); str->del(strings[1841]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[3189]); str->del(strings[7]); str->del(strings[3167]); strings[7] = str->add(strings[7]); strings[3190] = str->add("images/59"); strings[3191] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/59"); strings[7] = str->add(strings[7]); strings[3190] = str->add(strings[3190]); strings[3192] = str->add("e,action,mouse,move"); strings[3193] = str->add("e"); strings[3192] = str->add(strings[3192]); strings[3193] = str->add(strings[3193]); str->del(strings[3192]); str->del(strings[3193]); str->del(strings[3192]); str->del(strings[3193]); strings[3194] = str->add("e,action,mouse,move"); strings[3195] = str->add("e"); str->del(strings[3194]); str->del(strings[3195]); strings[1932] = str->add(strings[1932]); strings[1847] = str->add(strings[1847]); strings[3196] = str->add("program,start"); strings[1848] = str->add(strings[1848]); strings[1932] = str->add(strings[1932]); strings[1848] = str->add(strings[1848]); strings[3196] = str->add(strings[3196]); strings[1847] = str->add(strings[1847]); strings[1932] = str->add(strings[1932]); strings[3197] = str->add("unsel"); str->del(strings[1932]); str->del(strings[1847]); str->del(strings[3196]); str->del(strings[1848]); str->del(strings[1932]); str->del(strings[1848]); str->del(strings[3196]); str->del(strings[1847]); str->del(strings[1932]); str->del(strings[3197]); strings[3198] = str->add("e,action,mouse,move"); strings[3199] = str->add("e"); str->del(strings[3198]); str->del(strings[3199]); strings[3200] = str->add("e,action,mouse,move"); strings[3201] = str->add("e"); strings[3200] = str->add(strings[3200]); strings[3201] = str->add(strings[3201]); strings[3202] = str->add("e,state,unselected"); strings[3201] = str->add(strings[3201]); strings[3202] = str->add(strings[3202]); strings[3201] = str->add(strings[3201]); strings[3202] = str->add(strings[3202]); strings[3201] = str->add(strings[3201]); strings[3202] = str->add(strings[3202]); strings[3201] = str->add(strings[3201]); strings[3202] = str->add(strings[3202]); strings[3201] = str->add(strings[3201]); strings[3202] = str->add(strings[3202]); strings[3201] = str->add(strings[3201]); str->del(strings[3200]); str->del(strings[3201]); str->del(strings[3200]); str->del(strings[3201]); strings[1932] = str->add(strings[1932]); strings[3203] = str->add("sel"); strings[3204] = str->add("program,start"); strings[3205] = str->add("unsel"); str->del(strings[3202]); str->del(strings[3201]); str->del(strings[3202]); str->del(strings[3201]); strings[1932] = str->add(strings[1932]); strings[3203] = str->add(strings[3203]); strings[3204] = str->add(strings[3204]); strings[3205] = str->add(strings[3205]); str->del(strings[3202]); str->del(strings[3201]); strings[3204] = str->add(strings[3204]); strings[3205] = str->add(strings[3205]); strings[1932] = str->add(strings[1932]); strings[3205] = str->add(strings[3205]); str->del(strings[3202]); str->del(strings[3201]); str->del(strings[3202]); str->del(strings[3201]); str->del(strings[3202]); str->del(strings[3201]); str->del(strings[1932]); str->del(strings[3203]); str->del(strings[3204]); str->del(strings[3205]); str->del(strings[1932]); str->del(strings[3203]); str->del(strings[3204]); str->del(strings[3205]); str->del(strings[3204]); str->del(strings[3205]); str->del(strings[1932]); str->del(strings[3205]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3206] = str->add("e,action,mouse,move"); strings[3207] = str->add("e"); strings[3208] = str->add("e,state,selected"); strings[3207] = str->add(strings[3207]); strings[3208] = str->add(strings[3208]); strings[3207] = str->add(strings[3207]); strings[3208] = str->add(strings[3208]); strings[3207] = str->add(strings[3207]); strings[3208] = str->add(strings[3208]); strings[3207] = str->add(strings[3207]); strings[3208] = str->add(strings[3208]); strings[3207] = str->add(strings[3207]); strings[3206] = str->add(strings[3206]); strings[3207] = str->add(strings[3207]); str->del(strings[3206]); str->del(strings[3207]); strings[3209] = str->add("program,start"); strings[3210] = str->add("sel"); str->del(strings[3208]); str->del(strings[3207]); str->del(strings[3208]); str->del(strings[3207]); strings[3209] = str->add(strings[3209]); strings[3210] = str->add(strings[3210]); str->del(strings[3208]); str->del(strings[3207]); str->del(strings[3208]); str->del(strings[3207]); str->del(strings[3208]); str->del(strings[3207]); str->del(strings[3206]); str->del(strings[3207]); str->del(strings[3209]); str->del(strings[3210]); str->del(strings[3209]); str->del(strings[3210]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2687]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2860]); str->del(strings[2860]); str->del(strings[2860]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2711]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2494]); str->del(strings[2494]); str->del(strings[2494]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2861]); str->del(strings[2861]); str->del(strings[2861]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2894]); str->del(strings[2860]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3092]); str->del(strings[2494]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[2861]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); strings[3211] = str->add("e,action,mouse,move"); strings[3212] = str->add("e"); str->del(strings[3211]); str->del(strings[3212]); str->del(strings[7]); str->del(strings[3190]); strings[7] = str->add(strings[7]); strings[2148] = str->add(strings[2148]); strings[3213] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/60"); strings[7] = str->add(strings[7]); strings[2148] = str->add(strings[2148]); strings[3214] = str->add("e,action,mouse,move"); strings[3215] = str->add("e"); str->del(strings[3214]); str->del(strings[3215]); strings[3216] = str->add("e,action,mouse,move"); strings[3217] = str->add("e"); strings[3218] = str->add("e,state,unselected"); strings[3217] = str->add(strings[3217]); strings[3218] = str->add(strings[3218]); strings[3217] = str->add(strings[3217]); strings[3218] = str->add(strings[3218]); strings[3217] = str->add(strings[3217]); strings[3218] = str->add(strings[3218]); strings[3217] = str->add(strings[3217]); strings[3218] = str->add(strings[3218]); strings[3217] = str->add(strings[3217]); strings[3219] = str->add("e,state,selected"); strings[3217] = str->add(strings[3217]); strings[3219] = str->add(strings[3219]); strings[3217] = str->add(strings[3217]); strings[3219] = str->add(strings[3219]); strings[3217] = str->add(strings[3217]); strings[3219] = str->add(strings[3219]); strings[3217] = str->add(strings[3217]); strings[3219] = str->add(strings[3219]); strings[3217] = str->add(strings[3217]); strings[3219] = str->add(strings[3219]); strings[3217] = str->add(strings[3217]); strings[3216] = str->add(strings[3216]); strings[3217] = str->add(strings[3217]); strings[3220] = str->add("Accessories"); strings[3221] = str->add("Development"); strings[3222] = str->add("Games"); strings[3223] = str->add("Graphics"); strings[3224] = str->add("/usr/share/icons/Tango/24x24/categories/package_graphics.png"); strings[3225] = str->add("Internet"); strings[3226] = str->add("Multimedia"); strings[3227] = str->add("Office"); strings[3228] = str->add("Other"); strings[1721] = str->add(strings[1721]); strings[3229] = str->add("System Settings"); str->del(strings[3216]); str->del(strings[3217]); strings[1932] = str->add(strings[1932]); strings[3230] = str->add("sel"); strings[3231] = str->add("program,start"); strings[3232] = str->add("unsel"); str->del(strings[3218]); str->del(strings[3217]); str->del(strings[3218]); str->del(strings[3217]); strings[1932] = str->add(strings[1932]); strings[3230] = str->add(strings[3230]); strings[3231] = str->add(strings[3231]); strings[3232] = str->add(strings[3232]); str->del(strings[3218]); str->del(strings[3217]); str->del(strings[3218]); str->del(strings[3217]); str->del(strings[3218]); str->del(strings[3217]); strings[3231] = str->add(strings[3231]); strings[3230] = str->add(strings[3230]); str->del(strings[3219]); str->del(strings[3217]); str->del(strings[3219]); str->del(strings[3217]); strings[3231] = str->add(strings[3231]); strings[3230] = str->add(strings[3230]); str->del(strings[3219]); str->del(strings[3217]); strings[3231] = str->add(strings[3231]); strings[3230] = str->add(strings[3230]); strings[1932] = str->add(strings[1932]); strings[3230] = str->add(strings[3230]); str->del(strings[3219]); str->del(strings[3217]); str->del(strings[3219]); str->del(strings[3217]); str->del(strings[3219]); str->del(strings[3217]); str->del(strings[3216]); str->del(strings[3217]); str->del(strings[1932]); str->del(strings[3230]); str->del(strings[3231]); str->del(strings[3232]); str->del(strings[1932]); str->del(strings[3230]); str->del(strings[3231]); str->del(strings[3232]); str->del(strings[3231]); str->del(strings[3230]); str->del(strings[3231]); str->del(strings[3230]); str->del(strings[3231]); str->del(strings[3230]); str->del(strings[1932]); str->del(strings[3230]); strings[3233] = str->add("e,action,mouse,move"); strings[3234] = str->add("e"); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3235] = str->add("e,state,unselected"); strings[3234] = str->add(strings[3234]); strings[3235] = str->add(strings[3235]); strings[3234] = str->add(strings[3234]); strings[3235] = str->add(strings[3235]); strings[3234] = str->add(strings[3234]); strings[3235] = str->add(strings[3235]); strings[3234] = str->add(strings[3234]); strings[3235] = str->add(strings[3235]); strings[3234] = str->add(strings[3234]); strings[3235] = str->add(strings[3235]); strings[3234] = str->add(strings[3234]); strings[3236] = str->add("e,state,selected"); strings[3234] = str->add(strings[3234]); strings[3236] = str->add(strings[3236]); strings[3234] = str->add(strings[3234]); strings[3236] = str->add(strings[3236]); strings[3234] = str->add(strings[3234]); strings[3236] = str->add(strings[3236]); strings[3234] = str->add(strings[3234]); strings[3236] = str->add(strings[3236]); strings[3234] = str->add(strings[3234]); strings[3236] = str->add(strings[3236]); strings[3234] = str->add(strings[3234]); strings[3237] = str->add("Firefox (Web Browser)"); strings[2074] = str->add(strings[2074]); strings[3238] = str->add("XMMS (Music Player)"); strings[2077] = str->add(strings[2077]); strings[3239] = str->add("XTerm (Terminal)"); strings[2070] = str->add(strings[2070]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3235] = str->add(strings[3235]); strings[3234] = str->add(strings[3234]); strings[3235] = str->add(strings[3235]); strings[3234] = str->add(strings[3234]); strings[3235] = str->add(strings[3235]); strings[3234] = str->add(strings[3234]); strings[3235] = str->add(strings[3235]); strings[3234] = str->add(strings[3234]); strings[3235] = str->add(strings[3235]); strings[3234] = str->add(strings[3234]); strings[3235] = str->add(strings[3235]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3236] = str->add(strings[3236]); strings[3234] = str->add(strings[3234]); strings[3236] = str->add(strings[3236]); strings[3234] = str->add(strings[3234]); strings[3236] = str->add(strings[3236]); strings[3234] = str->add(strings[3234]); strings[3236] = str->add(strings[3236]); strings[3234] = str->add(strings[3234]); strings[3236] = str->add(strings[3236]); strings[3234] = str->add(strings[3234]); strings[3236] = str->add(strings[3236]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); strings[3233] = str->add(strings[3233]); strings[3234] = str->add(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); strings[1932] = str->add(strings[1932]); strings[3240] = str->add("sel"); strings[3241] = str->add("program,start"); strings[3242] = str->add("unsel"); str->del(strings[3235]); str->del(strings[3234]); str->del(strings[3235]); str->del(strings[3234]); strings[1932] = str->add(strings[1932]); strings[3240] = str->add(strings[3240]); strings[3241] = str->add(strings[3241]); strings[3242] = str->add(strings[3242]); str->del(strings[3235]); str->del(strings[3234]); strings[3241] = str->add(strings[3241]); strings[3242] = str->add(strings[3242]); strings[1932] = str->add(strings[1932]); strings[3242] = str->add(strings[3242]); str->del(strings[3235]); str->del(strings[3234]); str->del(strings[3235]); str->del(strings[3234]); str->del(strings[3235]); str->del(strings[3234]); strings[3241] = str->add(strings[3241]); strings[3240] = str->add(strings[3240]); str->del(strings[3236]); str->del(strings[3234]); str->del(strings[3236]); str->del(strings[3234]); strings[3241] = str->add(strings[3241]); strings[3240] = str->add(strings[3240]); str->del(strings[3236]); str->del(strings[3234]); strings[3241] = str->add(strings[3241]); strings[3240] = str->add(strings[3240]); strings[1932] = str->add(strings[1932]); strings[3240] = str->add(strings[3240]); str->del(strings[3236]); str->del(strings[3234]); str->del(strings[3236]); str->del(strings[3234]); str->del(strings[3236]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); strings[1932] = str->add(strings[1932]); strings[3240] = str->add(strings[3240]); strings[3241] = str->add(strings[3241]); strings[3242] = str->add(strings[3242]); str->del(strings[3235]); str->del(strings[3234]); str->del(strings[3235]); str->del(strings[3234]); strings[1932] = str->add(strings[1932]); strings[3240] = str->add(strings[3240]); strings[3241] = str->add(strings[3241]); strings[3242] = str->add(strings[3242]); str->del(strings[3235]); str->del(strings[3234]); strings[3241] = str->add(strings[3241]); strings[3242] = str->add(strings[3242]); strings[1932] = str->add(strings[1932]); strings[3242] = str->add(strings[3242]); str->del(strings[3235]); str->del(strings[3234]); str->del(strings[3235]); str->del(strings[3234]); str->del(strings[3235]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); strings[1932] = str->add(strings[1932]); strings[3242] = str->add(strings[3242]); strings[3241] = str->add(strings[3241]); strings[3240] = str->add(strings[3240]); str->del(strings[3236]); str->del(strings[3234]); str->del(strings[3236]); str->del(strings[3234]); strings[1932] = str->add(strings[1932]); strings[3242] = str->add(strings[3242]); strings[3241] = str->add(strings[3241]); strings[3240] = str->add(strings[3240]); str->del(strings[3236]); str->del(strings[3234]); strings[3241] = str->add(strings[3241]); strings[3240] = str->add(strings[3240]); strings[1932] = str->add(strings[1932]); strings[3240] = str->add(strings[3240]); str->del(strings[3236]); str->del(strings[3234]); str->del(strings[3236]); str->del(strings[3234]); str->del(strings[3236]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[3233]); str->del(strings[3234]); str->del(strings[1932]); str->del(strings[3240]); str->del(strings[3241]); str->del(strings[3242]); str->del(strings[1932]); str->del(strings[3240]); str->del(strings[3241]); str->del(strings[3242]); str->del(strings[3241]); str->del(strings[3242]); str->del(strings[1932]); str->del(strings[3242]); str->del(strings[3241]); str->del(strings[3240]); str->del(strings[3241]); str->del(strings[3240]); str->del(strings[3241]); str->del(strings[3240]); str->del(strings[1932]); str->del(strings[3240]); str->del(strings[1932]); str->del(strings[3240]); str->del(strings[3241]); str->del(strings[3242]); str->del(strings[1932]); str->del(strings[3240]); str->del(strings[3241]); str->del(strings[3242]); str->del(strings[3241]); str->del(strings[3242]); str->del(strings[1932]); str->del(strings[3242]); str->del(strings[1932]); str->del(strings[3242]); str->del(strings[3241]); str->del(strings[3240]); str->del(strings[1932]); str->del(strings[3242]); str->del(strings[3241]); str->del(strings[3240]); str->del(strings[3241]); str->del(strings[3240]); str->del(strings[1932]); str->del(strings[3240]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[3243] = str->add("resize"); str->del(strings[3243]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[3244] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3244] = str->add(strings[3244]); strings[3220] = str->add(strings[3220]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3220] = str->add(strings[3220]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3244] = str->add(strings[3244]); strings[3221] = str->add(strings[3221]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3221] = str->add(strings[3221]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3244] = str->add(strings[3244]); strings[3222] = str->add(strings[3222]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3222] = str->add(strings[3222]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[3224] = str->add(strings[3224]); strings[3245] = str->add("/usr/share/icons/Tango/24x24/categories/package_graphics.png//://(nil)//@/0/0.00000/64x64"); strings[3224] = str->add(strings[3224]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3244] = str->add(strings[3244]); strings[3223] = str->add(strings[3223]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3223] = str->add(strings[3223]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3244] = str->add(strings[3244]); strings[3225] = str->add(strings[3225]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3225] = str->add(strings[3225]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3244] = str->add(strings[3244]); strings[3226] = str->add(strings[3226]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3226] = str->add(strings[3226]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3244] = str->add(strings[3244]); strings[3227] = str->add(strings[3227]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3227] = str->add(strings[3227]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3244] = str->add(strings[3244]); strings[3228] = str->add(strings[3228]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3228] = str->add(strings[3228]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3244] = str->add(strings[3244]); strings[1721] = str->add(strings[1721]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1721] = str->add(strings[1721]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3244] = str->add(strings[3244]); strings[3229] = str->add(strings[3229]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3229] = str->add(strings[3229]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[3246] = str->add("resize"); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[3246] = str->add(strings[3246]); str->del(strings[3246]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[2074] = str->add(strings[2074]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3244] = str->add(strings[3244]); strings[3237] = str->add(strings[3237]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3237] = str->add(strings[3237]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[2077] = str->add(strings[2077]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3244] = str->add(strings[3244]); strings[3238] = str->add(strings[3238]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3238] = str->add(strings[3238]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3244] = str->add(strings[3244]); strings[1841] = str->add(strings[1841]); strings[2070] = str->add(strings[2070]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3244] = str->add(strings[3244]); strings[3239] = str->add(strings[3239]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3239] = str->add(strings[3239]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[3246] = str->add(strings[3246]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[3220]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[3221]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[3222]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[3223]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[3225]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[3226]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[3227]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[3228]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[1721]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[3229]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3220]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3221]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3222]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3224]); str->del(strings[3223]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3225]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3226]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3227]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3228]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[1721]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3229]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); strings[3237] = str->add(strings[3237]); strings[3237] = str->add(strings[3237]); strings[3238] = str->add(strings[3238]); strings[3238] = str->add(strings[3238]); strings[3239] = str->add(strings[3239]); strings[3239] = str->add(strings[3239]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); strings[1932] = str->add(strings[1932]); strings[1840] = str->add(strings[1840]); strings[3247] = str->add("program,start"); strings[1844] = str->add(strings[1844]); strings[1932] = str->add(strings[1932]); strings[1844] = str->add(strings[1844]); strings[3247] = str->add(strings[3247]); strings[1840] = str->add(strings[1840]); strings[1932] = str->add(strings[1932]); strings[1851] = str->add(strings[1851]); strings[3247] = str->add(strings[3247]); strings[1851] = str->add(strings[1851]); strings[1932] = str->add(strings[1932]); strings[3248] = str->add("unsel"); strings[1932] = str->add(strings[1932]); strings[3248] = str->add(strings[3248]); strings[1932] = str->add(strings[1932]); strings[3249] = str->add("e_out"); strings[1932] = str->add(strings[1932]); strings[3248] = str->add(strings[3248]); strings[1932] = str->add(strings[1932]); strings[3248] = str->add(strings[3248]); strings[1932] = str->add(strings[1932]); strings[3248] = str->add(strings[3248]); strings[1932] = str->add(strings[1932]); strings[3248] = str->add(strings[3248]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3244]); str->del(strings[1841]); str->del(strings[3246]); str->del(strings[3246]); str->del(strings[3246]); str->del(strings[3246]); str->del(strings[3246]); str->del(strings[3246]); str->del(strings[3246]); str->del(strings[3246]); str->del(strings[3246]); str->del(strings[3246]); str->del(strings[1932]); str->del(strings[1840]); str->del(strings[3247]); str->del(strings[1844]); str->del(strings[1932]); str->del(strings[1844]); str->del(strings[3247]); str->del(strings[1840]); str->del(strings[1932]); str->del(strings[1851]); str->del(strings[3247]); str->del(strings[1851]); str->del(strings[1932]); str->del(strings[3248]); str->del(strings[1932]); str->del(strings[3248]); str->del(strings[1932]); str->del(strings[3249]); str->del(strings[1932]); str->del(strings[3248]); str->del(strings[1932]); str->del(strings[3248]); str->del(strings[1932]); str->del(strings[3248]); str->del(strings[1932]); str->del(strings[3248]); str->del(strings[7]); str->del(strings[2148]); strings[7] = str->add(strings[7]); strings[1869] = str->add(strings[1869]); strings[1932] = str->add(strings[1932]); strings[3250] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3250]); str->del(strings[7]); str->del(strings[1869]); strings[7] = str->add(strings[7]); strings[3251] = str->add("images/8"); strings[3252] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/8"); strings[7] = str->add(strings[7]); strings[3251] = str->add(strings[3251]); strings[1932] = str->add(strings[1932]); strings[3253] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3253]); str->del(strings[7]); str->del(strings[3251]); strings[7] = str->add(strings[7]); strings[3254] = str->add("images/9"); strings[3255] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/9"); strings[7] = str->add(strings[7]); strings[3254] = str->add(strings[3254]); strings[1932] = str->add(strings[1932]); strings[3256] = str->add("sel"); strings[1932] = str->add(strings[1932]); strings[3256] = str->add(strings[3256]); str->del(strings[1932]); str->del(strings[3256]); str->del(strings[1932]); str->del(strings[3256]); str->del(strings[7]); str->del(strings[3254]); strings[7] = str->add(strings[7]); strings[2206] = str->add(strings[2206]); strings[1932] = str->add(strings[1932]); strings[3257] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3257]); str->del(strings[7]); str->del(strings[2206]); strings[7] = str->add(strings[7]); strings[2213] = str->add(strings[2213]); strings[1932] = str->add(strings[1932]); strings[3258] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3258]); str->del(strings[7]); str->del(strings[2213]); strings[7] = str->add(strings[7]); strings[2220] = str->add(strings[2220]); str->del(strings[7]); str->del(strings[2220]); strings[7] = str->add(strings[7]); strings[2226] = str->add(strings[2226]); str->del(strings[7]); str->del(strings[2226]); strings[7] = str->add(strings[7]); strings[2257] = str->add(strings[2257]); str->del(strings[7]); str->del(strings[2257]); strings[7] = str->add(strings[7]); strings[2270] = str->add(strings[2270]); str->del(strings[7]); str->del(strings[2270]); strings[7] = str->add(strings[7]); strings[2276] = str->add(strings[2276]); str->del(strings[7]); str->del(strings[2276]); strings[7] = str->add(strings[7]); strings[3259] = str->add("images/17"); strings[3260] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/17"); strings[7] = str->add(strings[7]); strings[3259] = str->add(strings[3259]); str->del(strings[7]); str->del(strings[3259]); strings[7] = str->add(strings[7]); strings[2292] = str->add(strings[2292]); strings[3261] = str->add("e,action,mouse,move"); strings[3262] = str->add("e"); str->del(strings[3261]); str->del(strings[3262]); strings[3263] = str->add("e,action,mouse,move"); strings[3264] = str->add("e"); str->del(strings[3263]); str->del(strings[3264]); strings[3265] = str->add("e,action,mouse,move"); strings[3266] = str->add("e"); str->del(strings[3265]); str->del(strings[3266]); strings[3267] = str->add("e,action,mouse,move"); strings[3268] = str->add("e"); str->del(strings[3267]); str->del(strings[3268]); str->del(strings[7]); str->del(strings[2292]); strings[7] = str->add(strings[7]); strings[2310] = str->add(strings[2310]); strings[3269] = str->add("e,action,mouse,move"); strings[3270] = str->add("e"); str->del(strings[3269]); str->del(strings[3270]); strings[3271] = str->add("e,action,mouse,move"); strings[3272] = str->add("e"); str->del(strings[3271]); str->del(strings[3272]); strings[3273] = str->add("e,action,mouse,move"); strings[3274] = str->add("e"); str->del(strings[3273]); str->del(strings[3274]); strings[3275] = str->add("e,action,mouse,move"); strings[3276] = str->add("e"); str->del(strings[3275]); str->del(strings[3276]); strings[3277] = str->add("e,action,mouse,move"); strings[3278] = str->add("e"); str->del(strings[3277]); str->del(strings[3278]); str->del(strings[7]); str->del(strings[2310]); strings[7] = str->add(strings[7]); strings[3279] = str->add("images/20"); strings[3280] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/20"); strings[7] = str->add(strings[7]); strings[3279] = str->add(strings[3279]); strings[3281] = str->add("e,action,mouse,move"); strings[3282] = str->add("e"); str->del(strings[3281]); str->del(strings[3282]); strings[3283] = str->add("e,action,mouse,move"); strings[3284] = str->add("e"); str->del(strings[3283]); str->del(strings[3284]); strings[3285] = str->add("e,action,mouse,move"); strings[3286] = str->add("e"); str->del(strings[3285]); str->del(strings[3286]); strings[3287] = str->add("e,action,mouse,move"); strings[3288] = str->add("e"); str->del(strings[3287]); str->del(strings[3288]); strings[3289] = str->add("e,action,mouse,move"); strings[3290] = str->add("e"); str->del(strings[3289]); str->del(strings[3290]); strings[3291] = str->add("e,action,mouse,move"); strings[3292] = str->add("e"); strings[3293] = str->add("e,state,unselected"); strings[3292] = str->add(strings[3292]); strings[3293] = str->add(strings[3293]); strings[3292] = str->add(strings[3292]); strings[3293] = str->add(strings[3293]); strings[3292] = str->add(strings[3292]); strings[3293] = str->add(strings[3293]); strings[3292] = str->add(strings[3292]); strings[3293] = str->add(strings[3293]); strings[3292] = str->add(strings[3292]); strings[3293] = str->add(strings[3293]); strings[3292] = str->add(strings[3292]); strings[3294] = str->add("e,state,selected"); strings[3292] = str->add(strings[3292]); strings[3294] = str->add(strings[3294]); strings[3292] = str->add(strings[3292]); strings[3294] = str->add(strings[3294]); strings[3292] = str->add(strings[3292]); strings[3294] = str->add(strings[3294]); strings[3292] = str->add(strings[3292]); strings[3294] = str->add(strings[3294]); strings[3292] = str->add(strings[3292]); strings[3294] = str->add(strings[3294]); strings[3292] = str->add(strings[3292]); str->del(strings[3291]); str->del(strings[3292]); strings[3295] = str->add("program,start"); strings[3296] = str->add("unsel"); str->del(strings[3293]); str->del(strings[3292]); str->del(strings[3293]); str->del(strings[3292]); strings[3295] = str->add(strings[3295]); strings[3296] = str->add(strings[3296]); str->del(strings[3293]); str->del(strings[3292]); strings[3295] = str->add(strings[3295]); strings[3296] = str->add(strings[3296]); strings[1932] = str->add(strings[1932]); strings[3296] = str->add(strings[3296]); str->del(strings[3293]); str->del(strings[3292]); str->del(strings[3293]); str->del(strings[3292]); str->del(strings[3293]); str->del(strings[3292]); strings[3295] = str->add(strings[3295]); strings[3297] = str->add("sel"); str->del(strings[3294]); str->del(strings[3292]); str->del(strings[3294]); str->del(strings[3292]); strings[3295] = str->add(strings[3295]); strings[3297] = str->add(strings[3297]); str->del(strings[3294]); str->del(strings[3292]); strings[3295] = str->add(strings[3295]); strings[3297] = str->add(strings[3297]); strings[1932] = str->add(strings[1932]); strings[3297] = str->add(strings[3297]); str->del(strings[3294]); str->del(strings[3292]); str->del(strings[3294]); str->del(strings[3292]); str->del(strings[3294]); str->del(strings[3292]); str->del(strings[3295]); str->del(strings[3296]); str->del(strings[3295]); str->del(strings[3296]); str->del(strings[3295]); str->del(strings[3296]); str->del(strings[1932]); str->del(strings[3296]); str->del(strings[3295]); str->del(strings[3297]); str->del(strings[3295]); str->del(strings[3297]); str->del(strings[3295]); str->del(strings[3297]); str->del(strings[1932]); str->del(strings[3297]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[3298] = str->add("resize"); str->del(strings[3298]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[3299] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3299] = str->add(strings[3299]); strings[3220] = str->add(strings[3220]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3220] = str->add(strings[3220]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3299] = str->add(strings[3299]); strings[3221] = str->add(strings[3221]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3221] = str->add(strings[3221]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3299] = str->add(strings[3299]); strings[3222] = str->add(strings[3222]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3222] = str->add(strings[3222]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[3224] = str->add(strings[3224]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3299] = str->add(strings[3299]); strings[3223] = str->add(strings[3223]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3223] = str->add(strings[3223]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3299] = str->add(strings[3299]); strings[3225] = str->add(strings[3225]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3225] = str->add(strings[3225]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3299] = str->add(strings[3299]); strings[3226] = str->add(strings[3226]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3226] = str->add(strings[3226]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3299] = str->add(strings[3299]); strings[3227] = str->add(strings[3227]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3227] = str->add(strings[3227]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3299] = str->add(strings[3299]); strings[3228] = str->add(strings[3228]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3228] = str->add(strings[3228]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3299] = str->add(strings[3299]); strings[1721] = str->add(strings[1721]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1721] = str->add(strings[1721]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3299] = str->add(strings[3299]); strings[3229] = str->add(strings[3229]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3229] = str->add(strings[3229]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3299] = str->add(strings[3299]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[3300] = str->add("resize"); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[3300] = str->add(strings[3300]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3237]); str->del(strings[3237]); str->del(strings[3237]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3238]); str->del(strings[3238]); str->del(strings[3238]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3239]); str->del(strings[3239]); str->del(strings[3239]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[2074]); str->del(strings[3237]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[2077]); str->del(strings[3238]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[2070]); str->del(strings[3239]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); strings[3220] = str->add(strings[3220]); strings[3220] = str->add(strings[3220]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3221] = str->add(strings[3221]); strings[3221] = str->add(strings[3221]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3222] = str->add(strings[3222]); strings[3222] = str->add(strings[3222]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3223] = str->add(strings[3223]); strings[3223] = str->add(strings[3223]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3225] = str->add(strings[3225]); strings[3225] = str->add(strings[3225]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3226] = str->add(strings[3226]); strings[3226] = str->add(strings[3226]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3227] = str->add(strings[3227]); strings[3227] = str->add(strings[3227]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3228] = str->add(strings[3228]); strings[3228] = str->add(strings[3228]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[1721] = str->add(strings[1721]); strings[1721] = str->add(strings[1721]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3229] = str->add(strings[3229]); strings[3229] = str->add(strings[3229]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3299]); str->del(strings[1841]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); str->del(strings[3300]); strings[3301] = str->add("e,action,mouse,move"); strings[3302] = str->add("e"); str->del(strings[3301]); str->del(strings[3302]); str->del(strings[7]); str->del(strings[3279]); strings[7] = str->add(strings[7]); strings[2320] = str->add(strings[2320]); strings[3303] = str->add("e,action,mouse,move"); strings[3304] = str->add("e"); str->del(strings[3303]); str->del(strings[3304]); strings[3305] = str->add("e,action,mouse,move"); strings[3306] = str->add("e"); str->del(strings[3305]); str->del(strings[3306]); strings[3307] = str->add("e,action,mouse,move"); strings[3308] = str->add("e"); str->del(strings[3307]); str->del(strings[3308]); strings[3309] = str->add("e,action,mouse,move"); strings[3310] = str->add("e"); str->del(strings[3309]); str->del(strings[3310]); strings[3311] = str->add("e,action,mouse,move"); strings[3312] = str->add("e"); str->del(strings[3311]); str->del(strings[3312]); strings[3313] = str->add("e,action,mouse,move"); strings[3314] = str->add("e"); str->del(strings[3313]); str->del(strings[3314]); strings[3315] = str->add("e,action,mouse,move"); strings[3316] = str->add("e"); str->del(strings[3315]); str->del(strings[3316]); str->del(strings[7]); str->del(strings[2320]); strings[7] = str->add(strings[7]); strings[2330] = str->add(strings[2330]); strings[3317] = str->add("e,action,mouse,move"); strings[3318] = str->add("e"); str->del(strings[3317]); str->del(strings[3318]); strings[3319] = str->add("e,action,mouse,move"); strings[3320] = str->add("e"); str->del(strings[3319]); str->del(strings[3320]); strings[3321] = str->add("e,action,mouse,move"); strings[3322] = str->add("e"); str->del(strings[3321]); str->del(strings[3322]); strings[3323] = str->add("e,action,mouse,move"); strings[3324] = str->add("e"); str->del(strings[3323]); str->del(strings[3324]); strings[3325] = str->add("e,action,mouse,move"); strings[3326] = str->add("e"); str->del(strings[3325]); str->del(strings[3326]); strings[3327] = str->add("e,action,mouse,move"); strings[3328] = str->add("e"); str->del(strings[3327]); str->del(strings[3328]); strings[3329] = str->add("e,action,mouse,move"); strings[3330] = str->add("e"); str->del(strings[3329]); str->del(strings[3330]); strings[1932] = str->add(strings[1932]); strings[3331] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3331]); str->del(strings[7]); str->del(strings[2330]); strings[7] = str->add(strings[7]); strings[2343] = str->add(strings[2343]); strings[3332] = str->add("e,action,mouse,move"); strings[3333] = str->add("e"); str->del(strings[3332]); str->del(strings[3333]); strings[3334] = str->add("e,action,mouse,move"); strings[3335] = str->add("e"); str->del(strings[3334]); str->del(strings[3335]); strings[3336] = str->add("e,action,mouse,move"); strings[3337] = str->add("e"); str->del(strings[3336]); str->del(strings[3337]); strings[1932] = str->add(strings[1932]); strings[1845] = str->add(strings[1845]); strings[3338] = str->add("program,start"); strings[1846] = str->add(strings[1846]); strings[1932] = str->add(strings[1932]); strings[1846] = str->add(strings[1846]); strings[3338] = str->add(strings[3338]); strings[1845] = str->add(strings[1845]); strings[1932] = str->add(strings[1932]); strings[3339] = str->add("sel"); strings[1932] = str->add(strings[1932]); strings[3339] = str->add(strings[3339]); str->del(strings[1932]); str->del(strings[1845]); str->del(strings[3338]); str->del(strings[1846]); str->del(strings[1932]); str->del(strings[1846]); str->del(strings[3338]); str->del(strings[1845]); str->del(strings[1932]); str->del(strings[3339]); str->del(strings[1932]); str->del(strings[3339]); str->del(strings[7]); str->del(strings[2343]); strings[7] = str->add(strings[7]); strings[2353] = str->add(strings[2353]); strings[3340] = str->add("e,action,mouse,move"); strings[3341] = str->add("e"); str->del(strings[3340]); str->del(strings[3341]); str->del(strings[7]); str->del(strings[2353]); strings[7] = str->add(strings[7]); strings[2363] = str->add(strings[2363]); strings[3342] = str->add("e,action,mouse,move"); strings[3343] = str->add("e"); str->del(strings[3342]); str->del(strings[3343]); strings[3344] = str->add("e,action,mouse,move"); strings[3345] = str->add("e"); strings[3346] = str->add("e,state,unselected"); strings[3345] = str->add(strings[3345]); strings[3346] = str->add(strings[3346]); strings[3345] = str->add(strings[3345]); strings[3346] = str->add(strings[3346]); strings[3345] = str->add(strings[3345]); strings[3346] = str->add(strings[3346]); strings[3345] = str->add(strings[3345]); strings[3346] = str->add(strings[3346]); strings[3345] = str->add(strings[3345]); strings[3346] = str->add(strings[3346]); strings[3345] = str->add(strings[3345]); strings[3347] = str->add("e,state,selected"); strings[3345] = str->add(strings[3345]); strings[3347] = str->add(strings[3347]); strings[3345] = str->add(strings[3345]); strings[3347] = str->add(strings[3347]); strings[3345] = str->add(strings[3345]); strings[3347] = str->add(strings[3347]); strings[3345] = str->add(strings[3345]); strings[3347] = str->add(strings[3347]); strings[3345] = str->add(strings[3345]); str->del(strings[3344]); str->del(strings[3345]); strings[3348] = str->add("program,start"); strings[3349] = str->add("unsel"); str->del(strings[3346]); str->del(strings[3345]); str->del(strings[3346]); str->del(strings[3345]); strings[3348] = str->add(strings[3348]); strings[3349] = str->add(strings[3349]); str->del(strings[3346]); str->del(strings[3345]); strings[3348] = str->add(strings[3348]); strings[3349] = str->add(strings[3349]); strings[1932] = str->add(strings[1932]); strings[3349] = str->add(strings[3349]); str->del(strings[3346]); str->del(strings[3345]); str->del(strings[3346]); str->del(strings[3345]); str->del(strings[3346]); str->del(strings[3345]); strings[3348] = str->add(strings[3348]); strings[3350] = str->add("sel"); str->del(strings[3347]); str->del(strings[3345]); str->del(strings[3347]); str->del(strings[3345]); strings[3348] = str->add(strings[3348]); strings[3350] = str->add(strings[3350]); str->del(strings[3347]); str->del(strings[3345]); str->del(strings[3347]); str->del(strings[3345]); str->del(strings[3347]); str->del(strings[3345]); str->del(strings[3348]); str->del(strings[3349]); str->del(strings[3348]); str->del(strings[3349]); str->del(strings[3348]); str->del(strings[3349]); str->del(strings[1932]); str->del(strings[3349]); str->del(strings[3348]); str->del(strings[3350]); str->del(strings[3348]); str->del(strings[3350]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3220]); str->del(strings[3220]); str->del(strings[3220]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3221]); str->del(strings[3221]); str->del(strings[3221]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3222]); str->del(strings[3222]); str->del(strings[3222]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3223]); str->del(strings[3223]); str->del(strings[3223]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3225]); str->del(strings[3225]); str->del(strings[3225]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3226]); str->del(strings[3226]); str->del(strings[3226]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3227]); str->del(strings[3227]); str->del(strings[3227]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3228]); str->del(strings[3228]); str->del(strings[3228]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1721]); str->del(strings[1721]); str->del(strings[1721]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3229]); str->del(strings[3229]); str->del(strings[3229]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3220]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3221]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3222]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3224]); str->del(strings[3223]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3225]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3226]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3227]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3228]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[1721]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3229]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3351] = str->add("e,action,mouse,move"); strings[3352] = str->add("e"); str->del(strings[3351]); str->del(strings[3352]); strings[3353] = str->add("e,action,mouse,move"); strings[3354] = str->add("e"); str->del(strings[3353]); str->del(strings[3354]); strings[3355] = str->add("e,action,mouse,move"); strings[3356] = str->add("e"); str->del(strings[3355]); str->del(strings[3356]); strings[3357] = str->add("e,action,mouse,move"); strings[3358] = str->add("e"); str->del(strings[3357]); str->del(strings[3358]); strings[3359] = str->add("e,action,mouse,move"); strings[3360] = str->add("e"); str->del(strings[3359]); str->del(strings[3360]); strings[3361] = str->add("e,action,mouse,move"); strings[3362] = str->add("e"); str->del(strings[3361]); str->del(strings[3362]); strings[1932] = str->add(strings[1932]); strings[3363] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3363]); str->del(strings[7]); str->del(strings[2363]); strings[7] = str->add(strings[7]); strings[2383] = str->add(strings[2383]); strings[3364] = str->add("e,action,mouse,move"); strings[3365] = str->add("e"); str->del(strings[3364]); str->del(strings[3365]); strings[3366] = str->add("e,action,mouse,move"); strings[3367] = str->add("e"); str->del(strings[3366]); str->del(strings[3367]); strings[3368] = str->add("e,action,mouse,move"); strings[3369] = str->add("e"); str->del(strings[3368]); str->del(strings[3369]); strings[3370] = str->add("e,action,mouse,move"); strings[3371] = str->add("e"); str->del(strings[3370]); str->del(strings[3371]); strings[3372] = str->add("e,action,mouse,move"); strings[3373] = str->add("e"); str->del(strings[3372]); str->del(strings[3373]); strings[3374] = str->add("e,action,mouse,move"); strings[3375] = str->add("e"); str->del(strings[3374]); str->del(strings[3375]); strings[3376] = str->add("e,action,mouse,move"); strings[3377] = str->add("e"); str->del(strings[3376]); str->del(strings[3377]); strings[3378] = str->add("e,action,mouse,move"); strings[3379] = str->add("e"); str->del(strings[3378]); str->del(strings[3379]); strings[1932] = str->add(strings[1932]); strings[3380] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3380]); str->del(strings[7]); str->del(strings[2383]); strings[7] = str->add(strings[7]); strings[2404] = str->add(strings[2404]); strings[3381] = str->add("e,action,mouse,move"); strings[3382] = str->add("e"); str->del(strings[3381]); str->del(strings[3382]); strings[3383] = str->add("e,action,mouse,move"); strings[3384] = str->add("e"); strings[3385] = str->add("e,state,unselected"); strings[3384] = str->add(strings[3384]); strings[3385] = str->add(strings[3385]); strings[3384] = str->add(strings[3384]); strings[3385] = str->add(strings[3385]); strings[3384] = str->add(strings[3384]); strings[3385] = str->add(strings[3385]); strings[3384] = str->add(strings[3384]); strings[3385] = str->add(strings[3385]); strings[3384] = str->add(strings[3384]); str->del(strings[3383]); str->del(strings[3384]); strings[1932] = str->add(strings[1932]); strings[3386] = str->add("sel"); strings[3387] = str->add("program,start"); strings[3388] = str->add("unsel"); str->del(strings[3385]); str->del(strings[3384]); str->del(strings[3385]); str->del(strings[3384]); strings[1932] = str->add(strings[1932]); strings[3386] = str->add(strings[3386]); strings[3387] = str->add(strings[3387]); strings[3388] = str->add(strings[3388]); str->del(strings[3385]); str->del(strings[3384]); str->del(strings[3385]); str->del(strings[3384]); str->del(strings[3385]); str->del(strings[3384]); str->del(strings[1932]); str->del(strings[3386]); str->del(strings[3387]); str->del(strings[3388]); str->del(strings[1932]); str->del(strings[3386]); str->del(strings[3387]); str->del(strings[3388]); strings[3389] = str->add("e,action,mouse,move"); strings[3390] = str->add("e"); str->del(strings[3389]); str->del(strings[3390]); strings[3391] = str->add("e,action,mouse,move"); strings[3392] = str->add("e"); str->del(strings[3391]); str->del(strings[3392]); strings[3393] = str->add("e,action,mouse,move"); strings[3394] = str->add("e"); str->del(strings[3393]); str->del(strings[3394]); strings[3395] = str->add("e,action,mouse,move"); strings[3396] = str->add("e"); str->del(strings[3395]); str->del(strings[3396]); strings[3397] = str->add("e,action,mouse,move"); strings[3398] = str->add("e"); strings[3399] = str->add("e,state,selected"); strings[3398] = str->add(strings[3398]); strings[3399] = str->add(strings[3399]); strings[3398] = str->add(strings[3398]); strings[3399] = str->add(strings[3399]); strings[3398] = str->add(strings[3398]); strings[3399] = str->add(strings[3399]); strings[3398] = str->add(strings[3398]); strings[3399] = str->add(strings[3399]); strings[3398] = str->add(strings[3398]); strings[3399] = str->add(strings[3399]); strings[3398] = str->add(strings[3398]); str->del(strings[3397]); str->del(strings[3398]); strings[3400] = str->add("program,start"); strings[3401] = str->add("sel"); str->del(strings[3399]); str->del(strings[3398]); str->del(strings[3399]); str->del(strings[3398]); strings[3400] = str->add(strings[3400]); strings[3401] = str->add(strings[3401]); str->del(strings[3399]); str->del(strings[3398]); strings[3400] = str->add(strings[3400]); strings[3401] = str->add(strings[3401]); strings[1932] = str->add(strings[1932]); strings[3401] = str->add(strings[3401]); str->del(strings[3399]); str->del(strings[3398]); str->del(strings[3399]); str->del(strings[3398]); str->del(strings[3399]); str->del(strings[3398]); str->del(strings[3400]); str->del(strings[3401]); str->del(strings[3400]); str->del(strings[3401]); str->del(strings[3400]); str->del(strings[3401]); str->del(strings[1932]); str->del(strings[3401]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[3402] = str->add("resize"); str->del(strings[3402]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[3403] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3403] = str->add(strings[3403]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3403] = str->add(strings[3403]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2687] = str->add(strings[2687]); strings[3403] = str->add(strings[3403]); strings[469] = str->add(strings[469]); strings[2894] = str->add(strings[2894]); strings[1841] = str->add(strings[1841]); strings[3404] = str->add("resize"); strings[3404] = str->add(strings[3404]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3403] = str->add(strings[3403]); strings[2860] = str->add(strings[2860]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2860] = str->add(strings[2860]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3403] = str->add(strings[3403]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3403] = str->add(strings[3403]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3403] = str->add(strings[3403]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2711] = str->add(strings[2711]); strings[3403] = str->add(strings[3403]); strings[469] = str->add(strings[469]); strings[3092] = str->add(strings[3092]); strings[1841] = str->add(strings[1841]); strings[3404] = str->add(strings[3404]); strings[3404] = str->add(strings[3404]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3403] = str->add(strings[3403]); strings[2494] = str->add(strings[2494]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2494] = str->add(strings[2494]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3403] = str->add(strings[3403]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[3403] = str->add(strings[3403]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3403] = str->add(strings[3403]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3403] = str->add(strings[3403]); strings[2861] = str->add(strings[2861]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2861] = str->add(strings[2861]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[3404] = str->add(strings[3404]); strings[3404] = str->add(strings[3404]); strings[3404] = str->add(strings[3404]); strings[3404] = str->add(strings[3404]); strings[3404] = str->add(strings[3404]); strings[3404] = str->add(strings[3404]); strings[3404] = str->add(strings[3404]); strings[3404] = str->add(strings[3404]); strings[3404] = str->add(strings[3404]); strings[3404] = str->add(strings[3404]); strings[3404] = str->add(strings[3404]); strings[3404] = str->add(strings[3404]); strings[2860] = str->add(strings[2860]); strings[2860] = str->add(strings[2860]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3404] = str->add(strings[3404]); strings[2494] = str->add(strings[2494]); strings[2494] = str->add(strings[2494]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[2861] = str->add(strings[2861]); strings[2861] = str->add(strings[2861]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); str->del(strings[3403]); str->del(strings[1841]); str->del(strings[3403]); str->del(strings[1841]); str->del(strings[3403]); str->del(strings[1841]); str->del(strings[3403]); str->del(strings[1841]); str->del(strings[3404]); str->del(strings[3404]); str->del(strings[3403]); str->del(strings[1841]); str->del(strings[3403]); str->del(strings[1841]); str->del(strings[3403]); str->del(strings[1841]); str->del(strings[3403]); str->del(strings[1841]); str->del(strings[3403]); str->del(strings[1841]); str->del(strings[3404]); str->del(strings[3404]); str->del(strings[3403]); str->del(strings[1841]); str->del(strings[3403]); str->del(strings[1841]); str->del(strings[3403]); str->del(strings[1841]); str->del(strings[3403]); str->del(strings[1841]); str->del(strings[3403]); str->del(strings[1841]); str->del(strings[3404]); str->del(strings[3404]); str->del(strings[3404]); str->del(strings[3404]); str->del(strings[3404]); str->del(strings[3404]); str->del(strings[3404]); str->del(strings[3404]); str->del(strings[3404]); str->del(strings[3404]); str->del(strings[3404]); str->del(strings[3404]); str->del(strings[3404]); str->del(strings[7]); str->del(strings[2404]); strings[7] = str->add(strings[7]); strings[2416] = str->add(strings[2416]); strings[3405] = str->add("e,action,mouse,move"); strings[3406] = str->add("e"); str->del(strings[3405]); str->del(strings[3406]); strings[3407] = str->add("e,action,mouse,move"); strings[3408] = str->add("e"); str->del(strings[3407]); str->del(strings[3408]); strings[3409] = str->add("e,action,mouse,move"); strings[3410] = str->add("e"); str->del(strings[3409]); str->del(strings[3410]); strings[3411] = str->add("e,action,mouse,move"); strings[3412] = str->add("e"); str->del(strings[3411]); str->del(strings[3412]); strings[3413] = str->add("e,action,mouse,move"); strings[3414] = str->add("e"); str->del(strings[3413]); str->del(strings[3414]); strings[3415] = str->add("e,action,mouse,move"); strings[3416] = str->add("e"); str->del(strings[3415]); str->del(strings[3416]); strings[3417] = str->add("e,action,mouse,move"); strings[3418] = str->add("e"); str->del(strings[3417]); str->del(strings[3418]); strings[3419] = str->add("e,action,mouse,move"); strings[3420] = str->add("e"); str->del(strings[3419]); str->del(strings[3420]); strings[3421] = str->add("e,action,mouse,move"); strings[3422] = str->add("e"); str->del(strings[3421]); str->del(strings[3422]); strings[3423] = str->add("e,action,mouse,move"); strings[3424] = str->add("e"); str->del(strings[3423]); str->del(strings[3424]); strings[1932] = str->add(strings[1932]); strings[3425] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3425]); str->del(strings[7]); str->del(strings[2416]); strings[7] = str->add(strings[7]); strings[2426] = str->add(strings[2426]); strings[3426] = str->add("e,action,mouse,move"); strings[3427] = str->add("e"); str->del(strings[3426]); str->del(strings[3427]); strings[3428] = str->add("e,action,mouse,move"); strings[3429] = str->add("e"); str->del(strings[3428]); str->del(strings[3429]); strings[3430] = str->add("e,action,mouse,move"); strings[3431] = str->add("e"); str->del(strings[3430]); str->del(strings[3431]); strings[3432] = str->add("e,action,mouse,move"); strings[3433] = str->add("e"); str->del(strings[3432]); str->del(strings[3433]); strings[3434] = str->add("e,action,mouse,move"); strings[3435] = str->add("e"); str->del(strings[3434]); str->del(strings[3435]); strings[3436] = str->add("e,action,mouse,move"); strings[3437] = str->add("e"); str->del(strings[3436]); str->del(strings[3437]); strings[3438] = str->add("e,action,mouse,move"); strings[3439] = str->add("e"); str->del(strings[3438]); str->del(strings[3439]); strings[3440] = str->add("e,action,mouse,move"); strings[3441] = str->add("e"); str->del(strings[3440]); str->del(strings[3441]); strings[1932] = str->add(strings[1932]); strings[3442] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3442]); str->del(strings[7]); str->del(strings[2426]); strings[7] = str->add(strings[7]); strings[2435] = str->add(strings[2435]); strings[3443] = str->add("e,action,mouse,move"); strings[3444] = str->add("e"); strings[3445] = str->add("e,state,unselected"); strings[3444] = str->add(strings[3444]); strings[3445] = str->add(strings[3445]); strings[3444] = str->add(strings[3444]); strings[3445] = str->add(strings[3445]); strings[3444] = str->add(strings[3444]); strings[3445] = str->add(strings[3445]); strings[3444] = str->add(strings[3444]); strings[3445] = str->add(strings[3445]); strings[3444] = str->add(strings[3444]); strings[3445] = str->add(strings[3445]); strings[3444] = str->add(strings[3444]); strings[3446] = str->add("e,state,selected"); strings[3444] = str->add(strings[3444]); strings[3446] = str->add(strings[3446]); strings[3444] = str->add(strings[3444]); strings[3446] = str->add(strings[3446]); strings[3444] = str->add(strings[3444]); strings[3446] = str->add(strings[3446]); strings[3444] = str->add(strings[3444]); strings[3446] = str->add(strings[3446]); strings[3444] = str->add(strings[3444]); strings[3446] = str->add(strings[3446]); strings[3444] = str->add(strings[3444]); str->del(strings[3443]); str->del(strings[3444]); strings[1932] = str->add(strings[1932]); strings[3447] = str->add("sel"); strings[3448] = str->add("program,start"); strings[3449] = str->add("unsel"); str->del(strings[3445]); str->del(strings[3444]); str->del(strings[3445]); str->del(strings[3444]); strings[1932] = str->add(strings[1932]); strings[3447] = str->add(strings[3447]); strings[3448] = str->add(strings[3448]); strings[3449] = str->add(strings[3449]); str->del(strings[3445]); str->del(strings[3444]); strings[3448] = str->add(strings[3448]); strings[3449] = str->add(strings[3449]); strings[1932] = str->add(strings[1932]); strings[3449] = str->add(strings[3449]); str->del(strings[3445]); str->del(strings[3444]); str->del(strings[3445]); str->del(strings[3444]); str->del(strings[3445]); str->del(strings[3444]); strings[3448] = str->add(strings[3448]); strings[3447] = str->add(strings[3447]); str->del(strings[3446]); str->del(strings[3444]); str->del(strings[3446]); str->del(strings[3444]); strings[3448] = str->add(strings[3448]); strings[3447] = str->add(strings[3447]); str->del(strings[3446]); str->del(strings[3444]); strings[3448] = str->add(strings[3448]); strings[3447] = str->add(strings[3447]); strings[1932] = str->add(strings[1932]); strings[3447] = str->add(strings[3447]); str->del(strings[3446]); str->del(strings[3444]); str->del(strings[3446]); str->del(strings[3444]); str->del(strings[3446]); str->del(strings[3444]); str->del(strings[1932]); str->del(strings[3447]); str->del(strings[3448]); str->del(strings[3449]); str->del(strings[1932]); str->del(strings[3447]); str->del(strings[3448]); str->del(strings[3449]); str->del(strings[3448]); str->del(strings[3449]); str->del(strings[1932]); str->del(strings[3449]); str->del(strings[3448]); str->del(strings[3447]); str->del(strings[3448]); str->del(strings[3447]); str->del(strings[3448]); str->del(strings[3447]); str->del(strings[1932]); str->del(strings[3447]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[3450] = str->add("resize"); str->del(strings[3450]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[3451] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3451] = str->add(strings[3451]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3451] = str->add(strings[3451]); strings[3155] = str->add(strings[3155]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3155] = str->add(strings[3155]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[3451] = str->add(strings[3451]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3451] = str->add(strings[3451]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3451] = str->add(strings[3451]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2682] = str->add(strings[2682]); strings[3451] = str->add(strings[3451]); strings[469] = str->add(strings[469]); strings[2896] = str->add(strings[2896]); strings[1841] = str->add(strings[1841]); strings[3452] = str->add("resize"); strings[3452] = str->add(strings[3452]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3451] = str->add(strings[3451]); strings[1731] = str->add(strings[1731]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1731] = str->add(strings[1731]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[3451] = str->add(strings[3451]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[3451] = str->add(strings[3451]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3451] = str->add(strings[3451]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2683] = str->add(strings[2683]); strings[3451] = str->add(strings[3451]); strings[469] = str->add(strings[469]); strings[3162] = str->add(strings[3162]); strings[1841] = str->add(strings[1841]); strings[3452] = str->add(strings[3452]); strings[3452] = str->add(strings[3452]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3451] = str->add(strings[3451]); strings[3156] = str->add(strings[3156]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[3156] = str->add(strings[3156]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[3451] = str->add(strings[3451]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[3452] = str->add(strings[3452]); strings[3452] = str->add(strings[3452]); strings[3452] = str->add(strings[3452]); strings[3452] = str->add(strings[3452]); strings[3452] = str->add(strings[3452]); strings[3452] = str->add(strings[3452]); strings[3452] = str->add(strings[3452]); strings[3452] = str->add(strings[3452]); strings[3452] = str->add(strings[3452]); strings[3452] = str->add(strings[3452]); strings[3452] = str->add(strings[3452]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2687]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2860]); str->del(strings[2860]); str->del(strings[2860]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2711]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2494]); str->del(strings[2494]); str->del(strings[2494]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2861]); str->del(strings[2861]); str->del(strings[2861]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2894]); str->del(strings[2860]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3092]); str->del(strings[2494]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[2861]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); strings[3155] = str->add(strings[3155]); strings[3155] = str->add(strings[3155]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[3452] = str->add(strings[3452]); strings[1731] = str->add(strings[1731]); strings[1731] = str->add(strings[1731]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[3452] = str->add(strings[3452]); strings[3156] = str->add(strings[3156]); strings[3156] = str->add(strings[3156]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); str->del(strings[3451]); str->del(strings[1841]); str->del(strings[3451]); str->del(strings[1841]); str->del(strings[3451]); str->del(strings[1841]); str->del(strings[3451]); str->del(strings[1841]); str->del(strings[3451]); str->del(strings[1841]); str->del(strings[3451]); str->del(strings[1841]); str->del(strings[3451]); str->del(strings[1841]); str->del(strings[3452]); str->del(strings[3452]); str->del(strings[3451]); str->del(strings[1841]); str->del(strings[3451]); str->del(strings[1841]); str->del(strings[3451]); str->del(strings[1841]); str->del(strings[3451]); str->del(strings[1841]); str->del(strings[3451]); str->del(strings[1841]); str->del(strings[3452]); str->del(strings[3452]); str->del(strings[3451]); str->del(strings[1841]); str->del(strings[3451]); str->del(strings[1841]); str->del(strings[3452]); str->del(strings[3452]); str->del(strings[3452]); str->del(strings[3452]); str->del(strings[3452]); str->del(strings[3452]); str->del(strings[3452]); str->del(strings[3452]); str->del(strings[3452]); str->del(strings[3452]); str->del(strings[3452]); str->del(strings[3452]); str->del(strings[3452]); strings[3453] = str->add("e,action,mouse,move"); strings[3454] = str->add("e"); str->del(strings[3453]); str->del(strings[3454]); strings[3455] = str->add("e,action,mouse,move"); strings[3456] = str->add("e"); str->del(strings[3455]); str->del(strings[3456]); strings[3457] = str->add("e,action,mouse,move"); strings[3458] = str->add("e"); str->del(strings[3457]); str->del(strings[3458]); strings[3459] = str->add("e,action,mouse,move"); strings[3460] = str->add("e"); str->del(strings[3459]); str->del(strings[3460]); strings[3461] = str->add("e,action,mouse,move"); strings[3462] = str->add("e"); str->del(strings[3461]); str->del(strings[3462]); strings[3463] = str->add("e,action,mouse,move"); strings[3464] = str->add("e"); str->del(strings[3463]); str->del(strings[3464]); strings[3465] = str->add("e,action,mouse,move"); strings[3466] = str->add("e"); str->del(strings[3465]); str->del(strings[3466]); str->del(strings[7]); str->del(strings[2435]); strings[7] = str->add(strings[7]); strings[2448] = str->add(strings[2448]); strings[3467] = str->add("e,action,mouse,move"); strings[3468] = str->add("e"); str->del(strings[3467]); str->del(strings[3468]); strings[3469] = str->add("e,action,mouse,move"); strings[3470] = str->add("e"); str->del(strings[3469]); str->del(strings[3470]); strings[3471] = str->add("e,action,mouse,move"); strings[3472] = str->add("e"); str->del(strings[3471]); str->del(strings[3472]); strings[3473] = str->add("e,action,mouse,move"); strings[3474] = str->add("e"); str->del(strings[3473]); str->del(strings[3474]); strings[3475] = str->add("e,action,mouse,move"); strings[3476] = str->add("e"); str->del(strings[3475]); str->del(strings[3476]); strings[3477] = str->add("e,action,mouse,move"); strings[3478] = str->add("e"); str->del(strings[3477]); str->del(strings[3478]); strings[3479] = str->add("e,action,mouse,move"); strings[3480] = str->add("e"); str->del(strings[3479]); str->del(strings[3480]); strings[3481] = str->add("e,action,mouse,move"); strings[3482] = str->add("e"); str->del(strings[3481]); str->del(strings[3482]); strings[1932] = str->add(strings[1932]); strings[3483] = str->add("unsel"); strings[1932] = str->add(strings[1932]); strings[3483] = str->add(strings[3483]); str->del(strings[1932]); str->del(strings[3483]); str->del(strings[1932]); str->del(strings[3483]); str->del(strings[7]); str->del(strings[2448]); strings[7] = str->add(strings[7]); strings[2466] = str->add(strings[2466]); strings[3484] = str->add("e,action,mouse,move"); strings[3485] = str->add("e"); str->del(strings[3484]); str->del(strings[3485]); strings[3486] = str->add("e,action,mouse,move"); strings[3487] = str->add("e"); str->del(strings[3486]); str->del(strings[3487]); strings[3488] = str->add("e,action,mouse,move"); strings[3489] = str->add("e"); str->del(strings[3488]); str->del(strings[3489]); strings[3490] = str->add("e,action,mouse,move"); strings[3491] = str->add("e"); str->del(strings[3490]); str->del(strings[3491]); strings[3492] = str->add("e,action,mouse,move"); strings[3493] = str->add("e"); strings[3494] = str->add("e,state,unselected"); strings[3493] = str->add(strings[3493]); strings[3494] = str->add(strings[3494]); strings[3493] = str->add(strings[3493]); strings[3494] = str->add(strings[3494]); strings[3493] = str->add(strings[3493]); strings[3494] = str->add(strings[3494]); strings[3493] = str->add(strings[3493]); strings[3494] = str->add(strings[3494]); strings[3493] = str->add(strings[3493]); strings[3494] = str->add(strings[3494]); strings[3493] = str->add(strings[3493]); str->del(strings[3492]); str->del(strings[3493]); strings[1932] = str->add(strings[1932]); strings[3495] = str->add("sel"); strings[3496] = str->add("program,start"); strings[3497] = str->add("unsel"); str->del(strings[3494]); str->del(strings[3493]); str->del(strings[3494]); str->del(strings[3493]); strings[1932] = str->add(strings[1932]); strings[3495] = str->add(strings[3495]); strings[3496] = str->add(strings[3496]); strings[3497] = str->add(strings[3497]); str->del(strings[3494]); str->del(strings[3493]); strings[3496] = str->add(strings[3496]); strings[3497] = str->add(strings[3497]); strings[1932] = str->add(strings[1932]); strings[3497] = str->add(strings[3497]); str->del(strings[3494]); str->del(strings[3493]); str->del(strings[3494]); str->del(strings[3493]); str->del(strings[3494]); str->del(strings[3493]); str->del(strings[1932]); str->del(strings[3495]); str->del(strings[3496]); str->del(strings[3497]); str->del(strings[1932]); str->del(strings[3495]); str->del(strings[3496]); str->del(strings[3497]); str->del(strings[3496]); str->del(strings[3497]); str->del(strings[1932]); str->del(strings[3497]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3498] = str->add("e,action,mouse,move"); strings[3499] = str->add("e"); str->del(strings[3498]); str->del(strings[3499]); strings[3500] = str->add("e,action,mouse,move"); strings[3501] = str->add("e"); str->del(strings[3500]); str->del(strings[3501]); strings[3502] = str->add("e,action,mouse,move"); strings[3503] = str->add("e"); str->del(strings[3502]); str->del(strings[3503]); str->del(strings[7]); str->del(strings[2466]); strings[7] = str->add(strings[7]); strings[2479] = str->add(strings[2479]); strings[3504] = str->add("e,action,mouse,move"); strings[3505] = str->add("e"); str->del(strings[3504]); str->del(strings[3505]); strings[3506] = str->add("e,action,mouse,move"); strings[3507] = str->add("e"); strings[3508] = str->add("e,state,selected"); strings[3507] = str->add(strings[3507]); strings[3508] = str->add(strings[3508]); strings[3507] = str->add(strings[3507]); strings[3508] = str->add(strings[3508]); strings[3507] = str->add(strings[3507]); strings[3508] = str->add(strings[3508]); strings[3507] = str->add(strings[3507]); strings[3508] = str->add(strings[3508]); strings[3507] = str->add(strings[3507]); strings[3508] = str->add(strings[3508]); strings[3507] = str->add(strings[3507]); str->del(strings[3506]); str->del(strings[3507]); strings[3509] = str->add("program,start"); strings[3510] = str->add("sel"); str->del(strings[3508]); str->del(strings[3507]); str->del(strings[3508]); str->del(strings[3507]); strings[3509] = str->add(strings[3509]); strings[3510] = str->add(strings[3510]); str->del(strings[3508]); str->del(strings[3507]); strings[3509] = str->add(strings[3509]); strings[3510] = str->add(strings[3510]); strings[1932] = str->add(strings[1932]); strings[3510] = str->add(strings[3510]); str->del(strings[3508]); str->del(strings[3507]); strings[3509] = str->add(strings[3509]); strings[3511] = str->add("e_in"); str->del(strings[3508]); str->del(strings[3507]); str->del(strings[3508]); str->del(strings[3507]); str->del(strings[3509]); str->del(strings[3510]); str->del(strings[3509]); str->del(strings[3510]); str->del(strings[3509]); str->del(strings[3510]); str->del(strings[1932]); str->del(strings[3510]); str->del(strings[3509]); str->del(strings[3511]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[3512] = str->add("resize"); str->del(strings[3512]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[3513] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3513] = str->add(strings[3513]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3513] = str->add(strings[3513]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[3513] = str->add(strings[3513]); strings[469] = str->add(strings[469]); strings[2898] = str->add(strings[2898]); strings[469] = str->add(strings[469]); strings[2900] = str->add(strings[2900]); strings[1841] = str->add(strings[1841]); strings[3514] = str->add("resize"); strings[3514] = str->add(strings[3514]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3513] = str->add(strings[3513]); strings[2862] = str->add(strings[2862]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2862] = str->add(strings[2862]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3513] = str->add(strings[3513]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3513] = str->add(strings[3513]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[3513] = str->add(strings[3513]); strings[469] = str->add(strings[469]); strings[3094] = str->add(strings[3094]); strings[1841] = str->add(strings[1841]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3513] = str->add(strings[3513]); strings[2514] = str->add(strings[2514]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2514] = str->add(strings[2514]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[3513] = str->add(strings[3513]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3513] = str->add(strings[3513]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3513] = str->add(strings[3513]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2672] = str->add(strings[2672]); strings[3513] = str->add(strings[3513]); strings[469] = str->add(strings[469]); strings[3130] = str->add(strings[3130]); strings[1841] = str->add(strings[1841]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3513] = str->add(strings[3513]); strings[1713] = str->add(strings[1713]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1713] = str->add(strings[1713]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[3513] = str->add(strings[3513]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[3513] = str->add(strings[3513]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2673] = str->add(strings[2673]); strings[3513] = str->add(strings[3513]); strings[469] = str->add(strings[469]); strings[3132] = str->add(strings[3132]); strings[1841] = str->add(strings[1841]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[3513] = str->add(strings[3513]); strings[1714] = str->add(strings[1714]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1714] = str->add(strings[1714]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[3514] = str->add(strings[3514]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3155]); str->del(strings[3155]); str->del(strings[3155]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2682]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1731]); str->del(strings[1731]); str->del(strings[1731]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2683]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[3156]); str->del(strings[3156]); str->del(strings[3156]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[3155]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2896]); str->del(strings[1731]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3162]); str->del(strings[3156]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); strings[3514] = str->add(strings[3514]); strings[2862] = str->add(strings[2862]); strings[2862] = str->add(strings[2862]); strings[3514] = str->add(strings[3514]); strings[2514] = str->add(strings[2514]); strings[2514] = str->add(strings[2514]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[3514] = str->add(strings[3514]); strings[1713] = str->add(strings[1713]); strings[1713] = str->add(strings[1713]); strings[3514] = str->add(strings[3514]); strings[1714] = str->add(strings[1714]); strings[1714] = str->add(strings[1714]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3513]); str->del(strings[1841]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); str->del(strings[3514]); strings[3515] = str->add("e,action,mouse,move"); strings[3516] = str->add("e"); str->del(strings[3515]); str->del(strings[3516]); strings[3517] = str->add("e,action,mouse,move"); strings[3518] = str->add("e"); str->del(strings[3517]); str->del(strings[3518]); strings[1932] = str->add(strings[1932]); strings[1849] = str->add(strings[1849]); strings[3519] = str->add("program,start"); strings[1850] = str->add(strings[1850]); strings[1932] = str->add(strings[1932]); strings[1850] = str->add(strings[1850]); strings[3519] = str->add(strings[3519]); strings[1849] = str->add(strings[1849]); str->del(strings[1932]); str->del(strings[1849]); str->del(strings[3519]); str->del(strings[1850]); str->del(strings[1932]); str->del(strings[1850]); str->del(strings[3519]); str->del(strings[1849]); strings[3520] = str->add("e,action,mouse,move"); strings[3521] = str->add("e"); str->del(strings[3520]); str->del(strings[3521]); strings[3522] = str->add("e,action,mouse,move"); strings[3523] = str->add("e"); str->del(strings[3522]); str->del(strings[3523]); strings[3524] = str->add("e,action,mouse,move"); strings[3525] = str->add("e"); str->del(strings[3524]); str->del(strings[3525]); strings[3526] = str->add("e,action,mouse,move"); strings[3527] = str->add("e"); str->del(strings[3526]); str->del(strings[3527]); str->del(strings[7]); str->del(strings[2479]); strings[7] = str->add(strings[7]); strings[2489] = str->add(strings[2489]); strings[3528] = str->add("e,action,mouse,move"); strings[3529] = str->add("e"); str->del(strings[3528]); str->del(strings[3529]); strings[3530] = str->add("e,action,mouse,move"); strings[3531] = str->add("e"); str->del(strings[3530]); str->del(strings[3531]); strings[3532] = str->add("e,action,mouse,move"); strings[3533] = str->add("e"); str->del(strings[3532]); str->del(strings[3533]); strings[3534] = str->add("e,action,mouse,move"); strings[3535] = str->add("e"); str->del(strings[3534]); str->del(strings[3535]); strings[1932] = str->add(strings[1932]); strings[3536] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3536]); strings[3537] = str->add("e,action,mouse,move"); strings[3538] = str->add("e"); str->del(strings[3537]); str->del(strings[3538]); strings[3539] = str->add("e,action,mouse,move"); strings[3540] = str->add("e"); str->del(strings[3539]); str->del(strings[3540]); strings[3541] = str->add("e,action,mouse,move"); strings[3542] = str->add("e"); str->del(strings[3541]); str->del(strings[3542]); strings[3543] = str->add("e,action,mouse,move"); strings[3544] = str->add("e"); str->del(strings[3543]); str->del(strings[3544]); strings[1932] = str->add(strings[1932]); strings[3545] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3545]); str->del(strings[7]); str->del(strings[2489]); strings[7] = str->add(strings[7]); strings[2508] = str->add(strings[2508]); strings[3546] = str->add("e,action,mouse,move"); strings[3547] = str->add("e"); str->del(strings[3546]); str->del(strings[3547]); strings[3548] = str->add("e,action,mouse,move"); strings[3549] = str->add("e"); str->del(strings[3548]); str->del(strings[3549]); strings[3550] = str->add("e,action,mouse,move"); strings[3551] = str->add("e"); str->del(strings[3550]); str->del(strings[3551]); strings[3552] = str->add("e,action,mouse,move"); strings[3553] = str->add("e"); str->del(strings[3552]); str->del(strings[3553]); strings[3554] = str->add("e,action,mouse,move"); strings[3555] = str->add("e"); str->del(strings[3554]); str->del(strings[3555]); strings[3556] = str->add("e,action,mouse,move"); strings[3557] = str->add("e"); str->del(strings[3556]); str->del(strings[3557]); str->del(strings[7]); str->del(strings[2508]); strings[7] = str->add(strings[7]); strings[2518] = str->add(strings[2518]); strings[3558] = str->add("e,action,mouse,move"); strings[3559] = str->add("e"); str->del(strings[3558]); str->del(strings[3559]); strings[3560] = str->add("e,action,mouse,move"); strings[3561] = str->add("e"); strings[3562] = str->add("e,state,unselected"); strings[3561] = str->add(strings[3561]); strings[3562] = str->add(strings[3562]); strings[3561] = str->add(strings[3561]); strings[3562] = str->add(strings[3562]); strings[3561] = str->add(strings[3561]); strings[3562] = str->add(strings[3562]); strings[3561] = str->add(strings[3561]); strings[3562] = str->add(strings[3562]); strings[3561] = str->add(strings[3561]); strings[3562] = str->add(strings[3562]); strings[3561] = str->add(strings[3561]); str->del(strings[3560]); str->del(strings[3561]); strings[1932] = str->add(strings[1932]); strings[3563] = str->add("sel"); strings[3564] = str->add("program,start"); strings[3565] = str->add("unsel"); str->del(strings[3562]); str->del(strings[3561]); str->del(strings[3562]); str->del(strings[3561]); strings[1932] = str->add(strings[1932]); strings[3563] = str->add(strings[3563]); strings[3564] = str->add(strings[3564]); strings[3565] = str->add(strings[3565]); str->del(strings[3562]); str->del(strings[3561]); strings[3564] = str->add(strings[3564]); strings[3565] = str->add(strings[3565]); strings[1932] = str->add(strings[1932]); strings[3565] = str->add(strings[3565]); str->del(strings[3562]); str->del(strings[3561]); strings[1932] = str->add(strings[1932]); strings[3566] = str->add("e_in"); strings[3564] = str->add(strings[3564]); strings[3567] = str->add("e_out"); str->del(strings[3562]); str->del(strings[3561]); str->del(strings[3562]); str->del(strings[3561]); str->del(strings[1932]); str->del(strings[3563]); str->del(strings[3564]); str->del(strings[3565]); str->del(strings[1932]); str->del(strings[3563]); str->del(strings[3564]); str->del(strings[3565]); str->del(strings[3564]); str->del(strings[3565]); str->del(strings[1932]); str->del(strings[3565]); str->del(strings[1932]); str->del(strings[3566]); str->del(strings[3564]); str->del(strings[3567]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3568] = str->add("e,action,mouse,move"); strings[3569] = str->add("e"); str->del(strings[3568]); str->del(strings[3569]); strings[3570] = str->add("e,action,mouse,move"); strings[3571] = str->add("e"); str->del(strings[3570]); str->del(strings[3571]); str->del(strings[7]); str->del(strings[2518]); strings[7] = str->add(strings[7]); strings[2531] = str->add(strings[2531]); strings[3572] = str->add("e,action,mouse,move"); strings[3573] = str->add("e"); str->del(strings[3572]); str->del(strings[3573]); strings[1932] = str->add(strings[1932]); strings[3574] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3574]); strings[3575] = str->add("e,action,mouse,move"); strings[3576] = str->add("e"); str->del(strings[3575]); str->del(strings[3576]); strings[3577] = str->add("e,action,mouse,move"); strings[3578] = str->add("e"); str->del(strings[3577]); str->del(strings[3578]); strings[1932] = str->add(strings[1932]); strings[3579] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3579]); str->del(strings[7]); str->del(strings[2531]); strings[7] = str->add(strings[7]); strings[2544] = str->add(strings[2544]); str->del(strings[7]); str->del(strings[2544]); strings[7] = str->add(strings[7]); strings[2561] = str->add(strings[2561]); str->del(strings[7]); str->del(strings[2561]); strings[7] = str->add(strings[7]); strings[3580] = str->add("images/40"); strings[3581] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/40"); strings[7] = str->add(strings[7]); strings[3580] = str->add(strings[3580]); strings[3582] = str->add("e,action,mouse,move"); strings[3583] = str->add("e"); str->del(strings[3582]); str->del(strings[3583]); strings[3584] = str->add("e,action,mouse,move"); strings[3585] = str->add("e"); str->del(strings[3584]); str->del(strings[3585]); strings[3586] = str->add("e,action,mouse,move"); strings[3587] = str->add("e"); str->del(strings[3586]); str->del(strings[3587]); strings[3588] = str->add("e,action,mouse,move"); strings[3589] = str->add("e"); str->del(strings[3588]); str->del(strings[3589]); strings[1932] = str->add(strings[1932]); strings[3590] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3590]); str->del(strings[7]); str->del(strings[3580]); strings[7] = str->add(strings[7]); strings[1756] = str->add(strings[1756]); strings[3591] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/41"); strings[7] = str->add(strings[7]); strings[1756] = str->add(strings[1756]); strings[3592] = str->add("e,action,mouse,move"); strings[3593] = str->add("e"); str->del(strings[3592]); str->del(strings[3593]); strings[3594] = str->add("e,action,mouse,move"); strings[3595] = str->add("e"); strings[3596] = str->add("e,state,selected"); strings[3595] = str->add(strings[3595]); strings[3596] = str->add(strings[3596]); strings[3595] = str->add(strings[3595]); strings[3596] = str->add(strings[3596]); strings[3595] = str->add(strings[3595]); strings[3596] = str->add(strings[3596]); strings[3595] = str->add(strings[3595]); strings[3596] = str->add(strings[3596]); strings[3595] = str->add(strings[3595]); strings[3596] = str->add(strings[3596]); strings[3595] = str->add(strings[3595]); str->del(strings[3594]); str->del(strings[3595]); strings[3597] = str->add("program,start"); strings[3598] = str->add("sel"); str->del(strings[3596]); str->del(strings[3595]); str->del(strings[3596]); str->del(strings[3595]); strings[3597] = str->add(strings[3597]); strings[3598] = str->add(strings[3598]); str->del(strings[3596]); str->del(strings[3595]); strings[3597] = str->add(strings[3597]); strings[3598] = str->add(strings[3598]); strings[1932] = str->add(strings[1932]); strings[3598] = str->add(strings[3598]); str->del(strings[3596]); str->del(strings[3595]); strings[1932] = str->add(strings[1932]); strings[3599] = str->add("e_out"); strings[3597] = str->add(strings[3597]); strings[3600] = str->add("e_in"); str->del(strings[3596]); str->del(strings[3595]); str->del(strings[3596]); str->del(strings[3595]); str->del(strings[3597]); str->del(strings[3598]); str->del(strings[3597]); str->del(strings[3598]); str->del(strings[3597]); str->del(strings[3598]); str->del(strings[1932]); str->del(strings[3598]); str->del(strings[1932]); str->del(strings[3599]); str->del(strings[3597]); str->del(strings[3600]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); strings[3601] = str->add("e,action,mouse,move"); strings[3602] = str->add("e"); str->del(strings[3601]); str->del(strings[3602]); strings[3603] = str->add("e,action,mouse,move"); strings[3604] = str->add("e"); str->del(strings[3603]); str->del(strings[3604]); strings[3605] = str->add("e,action,mouse,move"); strings[3606] = str->add("e"); str->del(strings[3605]); str->del(strings[3606]); strings[3607] = str->add("e,action,mouse,move"); strings[3608] = str->add("e"); str->del(strings[3607]); str->del(strings[3608]); strings[3609] = str->add("e,action,mouse,move"); strings[3610] = str->add("e"); str->del(strings[3609]); str->del(strings[3610]); strings[3611] = str->add("e,action,mouse,move"); strings[3612] = str->add("e"); str->del(strings[3611]); str->del(strings[3612]); str->del(strings[7]); str->del(strings[1756]); strings[7] = str->add(strings[7]); strings[1949] = str->add(strings[1949]); strings[3613] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/42"); strings[7] = str->add(strings[7]); strings[1949] = str->add(strings[1949]); strings[3614] = str->add("e,action,mouse,move"); strings[3615] = str->add("e"); str->del(strings[3614]); str->del(strings[3615]); strings[3616] = str->add("e,action,mouse,move"); strings[3617] = str->add("e"); str->del(strings[3616]); str->del(strings[3617]); strings[3618] = str->add("e,action,mouse,move"); strings[3619] = str->add("e"); str->del(strings[3618]); str->del(strings[3619]); strings[3620] = str->add("e,action,mouse,move"); strings[3621] = str->add("e"); str->del(strings[3620]); str->del(strings[3621]); strings[1932] = str->add(strings[1932]); strings[1847] = str->add(strings[1847]); strings[3622] = str->add("program,start"); strings[1848] = str->add(strings[1848]); strings[1932] = str->add(strings[1932]); strings[1848] = str->add(strings[1848]); strings[3622] = str->add(strings[3622]); strings[1847] = str->add(strings[1847]); str->del(strings[1932]); str->del(strings[1847]); str->del(strings[3622]); str->del(strings[1848]); str->del(strings[1932]); str->del(strings[1848]); str->del(strings[3622]); str->del(strings[1847]); strings[3623] = str->add("e,action,mouse,move"); strings[3624] = str->add("e"); str->del(strings[3623]); str->del(strings[3624]); strings[3625] = str->add("e,action,mouse,move"); strings[3626] = str->add("e"); str->del(strings[3625]); str->del(strings[3626]); strings[3627] = str->add("e,action,mouse,move"); strings[3628] = str->add("e"); str->del(strings[3627]); str->del(strings[3628]); strings[3629] = str->add("e,action,mouse,move"); strings[3630] = str->add("e"); str->del(strings[3629]); str->del(strings[3630]); str->del(strings[7]); str->del(strings[1949]); strings[7] = str->add(strings[7]); strings[2915] = str->add(strings[2915]); strings[3631] = str->add("e,action,mouse,move"); strings[3632] = str->add("e"); str->del(strings[3631]); str->del(strings[3632]); strings[3633] = str->add("e,action,mouse,move"); strings[3634] = str->add("e"); str->del(strings[3633]); str->del(strings[3634]); strings[3635] = str->add("e,action,mouse,move"); strings[3636] = str->add("e"); str->del(strings[3635]); str->del(strings[3636]); strings[3637] = str->add("e,action,mouse,move"); strings[3638] = str->add("e"); str->del(strings[3637]); str->del(strings[3638]); strings[3639] = str->add("e,action,mouse,move"); strings[3640] = str->add("e"); str->del(strings[3639]); str->del(strings[3640]); strings[3641] = str->add("e,action,mouse,move"); strings[3642] = str->add("e"); str->del(strings[3641]); str->del(strings[3642]); strings[3643] = str->add("e,action,mouse,move"); strings[3644] = str->add("e"); str->del(strings[3643]); str->del(strings[3644]); strings[3645] = str->add("e,action,mouse,move"); strings[3646] = str->add("e"); str->del(strings[3645]); str->del(strings[3646]); strings[3647] = str->add("e,action,mouse,move"); strings[3648] = str->add("e"); str->del(strings[3647]); str->del(strings[3648]); str->del(strings[7]); str->del(strings[2915]); strings[7] = str->add(strings[7]); strings[2886] = str->add(strings[2886]); strings[3649] = str->add("e,action,mouse,move"); strings[3650] = str->add("e"); str->del(strings[3649]); str->del(strings[3650]); strings[3651] = str->add("e,action,mouse,move"); strings[3652] = str->add("e"); str->del(strings[3651]); str->del(strings[3652]); strings[3653] = str->add("e,action,mouse,move"); strings[3654] = str->add("e"); str->del(strings[3653]); str->del(strings[3654]); strings[3655] = str->add("e,action,mouse,move"); strings[3656] = str->add("e"); str->del(strings[3655]); str->del(strings[3656]); strings[1932] = str->add(strings[1932]); strings[3657] = str->add("sel"); strings[1932] = str->add(strings[1932]); strings[3657] = str->add(strings[3657]); str->del(strings[1932]); str->del(strings[3657]); str->del(strings[1932]); str->del(strings[3657]); strings[3658] = str->add("e,action,mouse,move"); strings[3659] = str->add("e"); str->del(strings[3658]); str->del(strings[3659]); strings[3660] = str->add("e,action,mouse,move"); strings[3661] = str->add("e"); str->del(strings[3660]); str->del(strings[3661]); strings[3662] = str->add("e,action,mouse,move"); strings[3663] = str->add("e"); str->del(strings[3662]); str->del(strings[3663]); strings[3664] = str->add("e,action,mouse,move"); strings[3665] = str->add("e"); str->del(strings[3664]); str->del(strings[3665]); str->del(strings[7]); str->del(strings[2886]); strings[7] = str->add(strings[7]); strings[2888] = str->add(strings[2888]); strings[3666] = str->add("e,action,mouse,move"); strings[3667] = str->add("e"); str->del(strings[3666]); str->del(strings[3667]); strings[3668] = str->add("e,action,mouse,move"); strings[3669] = str->add("e"); str->del(strings[3668]); str->del(strings[3669]); strings[3670] = str->add("e,action,mouse,move"); strings[3671] = str->add("e"); strings[3672] = str->add("e,state,unselected"); strings[3671] = str->add(strings[3671]); strings[3672] = str->add(strings[3672]); strings[3671] = str->add(strings[3671]); strings[3672] = str->add(strings[3672]); strings[3671] = str->add(strings[3671]); strings[3672] = str->add(strings[3672]); strings[3671] = str->add(strings[3671]); strings[3672] = str->add(strings[3672]); strings[3671] = str->add(strings[3671]); strings[3672] = str->add(strings[3672]); strings[3671] = str->add(strings[3671]); strings[3673] = str->add("e,state,selected"); strings[3671] = str->add(strings[3671]); strings[3673] = str->add(strings[3673]); strings[3671] = str->add(strings[3671]); strings[3673] = str->add(strings[3673]); strings[3671] = str->add(strings[3671]); strings[3673] = str->add(strings[3673]); strings[3671] = str->add(strings[3671]); strings[3673] = str->add(strings[3673]); strings[3671] = str->add(strings[3671]); str->del(strings[3670]); str->del(strings[3671]); strings[3674] = str->add("program,start"); strings[3675] = str->add("unsel"); str->del(strings[3672]); str->del(strings[3671]); str->del(strings[3672]); str->del(strings[3671]); strings[3674] = str->add(strings[3674]); strings[3675] = str->add(strings[3675]); str->del(strings[3672]); str->del(strings[3671]); strings[3674] = str->add(strings[3674]); strings[3675] = str->add(strings[3675]); strings[1932] = str->add(strings[1932]); strings[3675] = str->add(strings[3675]); str->del(strings[3672]); str->del(strings[3671]); strings[1932] = str->add(strings[1932]); strings[3676] = str->add("e_in"); strings[3674] = str->add(strings[3674]); strings[3677] = str->add("e_out"); str->del(strings[3672]); str->del(strings[3671]); str->del(strings[3672]); str->del(strings[3671]); strings[3674] = str->add(strings[3674]); strings[3678] = str->add("sel"); str->del(strings[3673]); str->del(strings[3671]); str->del(strings[3673]); str->del(strings[3671]); strings[3674] = str->add(strings[3674]); strings[3678] = str->add(strings[3678]); str->del(strings[3673]); str->del(strings[3671]); strings[3674] = str->add(strings[3674]); strings[3676] = str->add(strings[3676]); str->del(strings[3673]); str->del(strings[3671]); str->del(strings[3673]); str->del(strings[3671]); str->del(strings[3674]); str->del(strings[3675]); str->del(strings[3674]); str->del(strings[3675]); str->del(strings[3674]); str->del(strings[3675]); str->del(strings[1932]); str->del(strings[3675]); str->del(strings[1932]); str->del(strings[3676]); str->del(strings[3674]); str->del(strings[3677]); str->del(strings[3674]); str->del(strings[3678]); str->del(strings[3674]); str->del(strings[3678]); str->del(strings[3674]); str->del(strings[3676]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[3679] = str->add("e,action,mouse,move"); strings[3680] = str->add("e"); str->del(strings[3679]); str->del(strings[3680]); strings[3681] = str->add("e,action,mouse,move"); strings[3682] = str->add("e"); str->del(strings[3681]); str->del(strings[3682]); strings[3683] = str->add("e,action,mouse,move"); strings[3684] = str->add("e"); str->del(strings[3683]); str->del(strings[3684]); str->del(strings[7]); str->del(strings[2888]); strings[7] = str->add(strings[7]); strings[2913] = str->add(strings[2913]); strings[3685] = str->add("e,action,mouse,move"); strings[3686] = str->add("e"); str->del(strings[3685]); str->del(strings[3686]); strings[3687] = str->add("e,action,mouse,move"); strings[3688] = str->add("e"); str->del(strings[3687]); str->del(strings[3688]); strings[3689] = str->add("e,action,mouse,move"); strings[3690] = str->add("e"); str->del(strings[3689]); str->del(strings[3690]); strings[3691] = str->add("e,action,mouse,move"); strings[3692] = str->add("e"); str->del(strings[3691]); str->del(strings[3692]); str->del(strings[7]); str->del(strings[2913]); strings[7] = str->add(strings[7]); strings[3021] = str->add(strings[3021]); strings[3693] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/47"); strings[7] = str->add(strings[7]); strings[3021] = str->add(strings[3021]); strings[1932] = str->add(strings[1932]); strings[3694] = str->add("unsel"); str->del(strings[1932]); str->del(strings[3694]); str->del(strings[7]); str->del(strings[3021]); strings[7] = str->add(strings[7]); strings[3695] = str->add("images/48"); strings[3696] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/48"); strings[7] = str->add(strings[7]); strings[3695] = str->add(strings[3695]); strings[1932] = str->add(strings[1932]); strings[3697] = str->add("sel"); strings[1932] = str->add(strings[1932]); strings[3697] = str->add(strings[3697]); str->del(strings[1932]); str->del(strings[3697]); str->del(strings[1932]); str->del(strings[3697]); str->del(strings[7]); str->del(strings[3695]); strings[7] = str->add(strings[7]); strings[3698] = str->add("images/49"); strings[3699] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/49"); strings[7] = str->add(strings[7]); strings[3698] = str->add(strings[3698]); strings[3700] = str->add("e,action,mouse,move"); strings[3701] = str->add("e"); strings[3702] = str->add("e,action,mouse,down"); strings[3701] = str->add(strings[3701]); str->del(strings[3700]); str->del(strings[3701]); str->del(strings[3702]); str->del(strings[3701]); str->del(strings[7]); str->del(strings[3698]); strings[7] = str->add(strings[7]); strings[3703] = str->add("images/50"); strings[3704] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/50"); strings[7] = str->add(strings[7]); strings[3703] = str->add(strings[3703]); strings[3705] = str->add("e,action,mouse,move"); strings[3706] = str->add("e"); strings[3707] = str->add("e,action,mouse,up"); strings[3706] = str->add(strings[3706]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[3708] = str->add("base/theme/about"); strings[64] = str->add(strings[64]); strings[2769] = str->add(strings[2769]); str->del(strings[64]); str->del(strings[2769]); strings[469] = str->add(strings[469]); strings[2769] = str->add(strings[2769]); strings[2769] = str->add(strings[2769]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); strings[3709] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[1712] = str->add(strings[1712]); strings[3710] = str->add("0.16.999.043"); strings[3711] = str->add("Copyright © 1999-2008, by the Enlightenment Development Team.

We hope you enjoy using this software as much as we enjoyed writing it.

This software is provided as-is with no explicit or implied warranty. This software is governed by licensing conditions, so please see the COPYING and COPYING-PLAIN licence files installed on your system.

Enlightenment is under HEAVY DEVELOPMENT and it is not stable. Many features are incomplete or even non-existent yet and may have many bugs. You have been WARNED!"); strings[3712] = str->add("e,action,close"); strings[3713] = str->add("The TeamThe Rasterman (Carsten Haitzler)
Ibukun Olumuyiwa
Sebastian Dransfeld
HandyAndE (Andrew Williams)
CodeWarrior (Hisham Mardam Bey)
dj2 (Dan Sinclair)
Tilman Sauerbeck
Aleksej Struk
Brian Mattern
devilhorns (Christopher Michael)
/dev/urandom (Viktor Kojouharov)
ilLogict
Stafford Horne
Cedric Bail
onefang (David Seikel)
Stephen Houston
Byron Hillis
Ravenlock (Eric Schuele)
ManoWarrior (Luchezar Petkov)
morlenxus (Brian Miculcy)
"); strings[3714] = str->add("font"); strings[3715] = str->add("font_fallbacks"); strings[3716] = str->add("font_size"); strings[3717] = str->add("font_source"); strings[3718] = str->add("color"); strings[3719] = str->add("underline_color"); strings[3720] = str->add("underline2_color"); strings[3721] = str->add("outline_color"); strings[3722] = str->add("shadow_color"); strings[3723] = str->add("glow_color"); strings[3724] = str->add("glow2_color"); strings[3725] = str->add("backing_color"); strings[3726] = str->add("strikethrough_color"); strings[3727] = str->add("align"); strings[3728] = str->add("valign"); strings[3729] = str->add("wrap"); strings[3730] = str->add("left_margin"); strings[3731] = str->add("right_margin"); strings[3732] = str->add("underline"); strings[3733] = str->add("strikethrough"); strings[3734] = str->add("backing"); strings[3735] = str->add("style"); strings[3736] = str->add("tabstops"); strings[3727] = str->add(strings[3727]); strings[3737] = str->add("center"); str->del(strings[3727]); str->del(strings[3737]); strings[3718] = str->add(strings[3718]); strings[3738] = str->add("#000"); str->del(strings[3718]); str->del(strings[3738]); strings[3735] = str->add(strings[3735]); strings[3739] = str->add("shadow"); str->del(strings[3735]); str->del(strings[3739]); strings[3722] = str->add(strings[3722]); strings[3740] = str->add("#ffffff80"); str->del(strings[3722]); str->del(strings[3740]); strings[3729] = str->add(strings[3729]); strings[3741] = str->add("word"); str->del(strings[3729]); str->del(strings[3741]); strings[3717] = str->add(strings[3717]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[3717]); str->del(strings[469]); strings[3716] = str->add(strings[3716]); strings[3742] = str->add("10.000000"); str->del(strings[3716]); str->del(strings[3742]); strings[3714] = str->add(strings[3714]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); strings[3743] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj/fonts/Edje-Vera"); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); str->del(strings[3714]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[3735] = str->add(strings[3735]); strings[3744] = str->add("glow"); str->del(strings[3735]); str->del(strings[3744]); strings[3718] = str->add(strings[3718]); strings[3745] = str->add("#fff"); str->del(strings[3718]); str->del(strings[3745]); strings[3724] = str->add(strings[3724]); strings[3746] = str->add("#fe87"); str->del(strings[3724]); str->del(strings[3746]); strings[3723] = str->add(strings[3723]); strings[3747] = str->add("#fa14"); str->del(strings[3723]); str->del(strings[3747]); strings[3714] = str->add(strings[3714]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3714]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[3735] = str->add(strings[3735]); strings[3748] = str->add("glow"); str->del(strings[3735]); str->del(strings[3748]); strings[3718] = str->add(strings[3718]); strings[3749] = str->add("#fff"); str->del(strings[3718]); str->del(strings[3749]); strings[3724] = str->add(strings[3724]); strings[3750] = str->add("#fe87"); str->del(strings[3724]); str->del(strings[3750]); strings[3723] = str->add(strings[3723]); strings[3751] = str->add("#fa14"); str->del(strings[3723]); str->del(strings[3751]); strings[3714] = str->add(strings[3714]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3714]); str->del(strings[471]); strings[3714] = str->add(strings[3714]); strings[3715] = str->add(strings[3715]); strings[3716] = str->add(strings[3716]); strings[3717] = str->add(strings[3717]); strings[3718] = str->add(strings[3718]); strings[3719] = str->add(strings[3719]); strings[3720] = str->add(strings[3720]); strings[3721] = str->add(strings[3721]); strings[3722] = str->add(strings[3722]); strings[3723] = str->add(strings[3723]); strings[3724] = str->add(strings[3724]); strings[3725] = str->add(strings[3725]); strings[3726] = str->add(strings[3726]); strings[3727] = str->add(strings[3727]); strings[3728] = str->add(strings[3728]); strings[3729] = str->add(strings[3729]); strings[3730] = str->add(strings[3730]); strings[3731] = str->add(strings[3731]); strings[3732] = str->add(strings[3732]); strings[3733] = str->add(strings[3733]); strings[3734] = str->add(strings[3734]); strings[3735] = str->add(strings[3735]); strings[3736] = str->add(strings[3736]); strings[3727] = str->add(strings[3727]); strings[3752] = str->add("center"); str->del(strings[3727]); str->del(strings[3752]); strings[3718] = str->add(strings[3718]); strings[3753] = str->add("#000"); str->del(strings[3718]); str->del(strings[3753]); strings[3735] = str->add(strings[3735]); strings[3754] = str->add("shadow"); str->del(strings[3735]); str->del(strings[3754]); strings[3722] = str->add(strings[3722]); strings[3755] = str->add("#ffffff80"); str->del(strings[3722]); str->del(strings[3755]); strings[3729] = str->add(strings[3729]); strings[3756] = str->add("word"); str->del(strings[3729]); str->del(strings[3756]); strings[3717] = str->add(strings[3717]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[3717]); str->del(strings[469]); strings[3716] = str->add(strings[3716]); strings[3757] = str->add("10.000000"); str->del(strings[3716]); str->del(strings[3757]); strings[3714] = str->add(strings[3714]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[3714]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[3735] = str->add(strings[3735]); strings[3758] = str->add("glow"); str->del(strings[3735]); str->del(strings[3758]); strings[3718] = str->add(strings[3718]); strings[3759] = str->add("#fff"); str->del(strings[3718]); str->del(strings[3759]); strings[3724] = str->add(strings[3724]); strings[3760] = str->add("#fe87"); str->del(strings[3724]); str->del(strings[3760]); strings[3723] = str->add(strings[3723]); strings[3761] = str->add("#fa14"); str->del(strings[3723]); str->del(strings[3761]); strings[3714] = str->add(strings[3714]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3714]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[3735] = str->add(strings[3735]); strings[3762] = str->add("glow"); str->del(strings[3735]); str->del(strings[3762]); strings[3718] = str->add(strings[3718]); strings[3763] = str->add("#fff"); str->del(strings[3718]); str->del(strings[3763]); strings[3724] = str->add(strings[3724]); strings[3764] = str->add("#fe87"); str->del(strings[3724]); str->del(strings[3764]); strings[3723] = str->add(strings[3723]); strings[3765] = str->add("#fa14"); str->del(strings[3723]); str->del(strings[3765]); strings[3714] = str->add(strings[3714]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3714]); str->del(strings[471]); str->del(strings[3714]); str->del(strings[3715]); str->del(strings[3716]); str->del(strings[3717]); str->del(strings[3718]); str->del(strings[3719]); str->del(strings[3720]); str->del(strings[3721]); str->del(strings[3722]); str->del(strings[3723]); str->del(strings[3724]); str->del(strings[3725]); str->del(strings[3726]); str->del(strings[3727]); str->del(strings[3728]); str->del(strings[3729]); str->del(strings[3730]); str->del(strings[3731]); str->del(strings[3732]); str->del(strings[3733]); str->del(strings[3734]); str->del(strings[3735]); str->del(strings[3736]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); str->del(strings[3714]); str->del(strings[3715]); str->del(strings[3716]); str->del(strings[3717]); str->del(strings[3718]); str->del(strings[3719]); str->del(strings[3720]); str->del(strings[3721]); str->del(strings[3722]); str->del(strings[3723]); str->del(strings[3724]); str->del(strings[3725]); str->del(strings[3726]); str->del(strings[3727]); str->del(strings[3728]); str->del(strings[3729]); str->del(strings[3730]); str->del(strings[3731]); str->del(strings[3732]); str->del(strings[3733]); str->del(strings[3734]); str->del(strings[3735]); str->del(strings[3736]); str->del(strings[469]); strings[379] = str->add(strings[379]); strings[3766] = str->add("Sans:style=Bold"); strings[3767] = str->add("Edje-Vera-Bold"); str->del(strings[3766]); str->del(strings[3767]); strings[379] = str->add(strings[379]); strings[1712] = str->add(strings[1712]); str->del(strings[469]); strings[379] = str->add(strings[379]); strings[3768] = str->add("Sans:style=Bold"); strings[3769] = str->add("Edje-Vera-Bold"); str->del(strings[3768]); str->del(strings[3769]); strings[379] = str->add(strings[379]); strings[3710] = str->add(strings[3710]); strings[3770] = str->add("font"); strings[3771] = str->add("font_fallbacks"); strings[3772] = str->add("font_size"); strings[3773] = str->add("font_source"); strings[3774] = str->add("color"); strings[3775] = str->add("underline_color"); strings[3776] = str->add("underline2_color"); strings[3777] = str->add("outline_color"); strings[3778] = str->add("shadow_color"); strings[3779] = str->add("glow_color"); strings[3780] = str->add("glow2_color"); strings[3781] = str->add("backing_color"); strings[3782] = str->add("strikethrough_color"); strings[3783] = str->add("align"); strings[3784] = str->add("valign"); strings[3785] = str->add("wrap"); strings[3786] = str->add("left_margin"); strings[3787] = str->add("right_margin"); strings[3788] = str->add("underline"); strings[3789] = str->add("strikethrough"); strings[3790] = str->add("backing"); strings[3791] = str->add("style"); strings[3792] = str->add("tabstops"); strings[3783] = str->add(strings[3783]); strings[3793] = str->add("center"); str->del(strings[3783]); str->del(strings[3793]); strings[3774] = str->add(strings[3774]); strings[3794] = str->add("#000"); str->del(strings[3774]); str->del(strings[3794]); strings[3791] = str->add(strings[3791]); strings[3795] = str->add("shadow"); str->del(strings[3791]); str->del(strings[3795]); strings[3778] = str->add(strings[3778]); strings[3796] = str->add("#ffffff80"); str->del(strings[3778]); str->del(strings[3796]); strings[3785] = str->add(strings[3785]); strings[3797] = str->add("word"); str->del(strings[3785]); str->del(strings[3797]); strings[3773] = str->add(strings[3773]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[3773]); str->del(strings[469]); strings[3772] = str->add(strings[3772]); strings[3798] = str->add("10.000000"); str->del(strings[3772]); str->del(strings[3798]); strings[3770] = str->add(strings[3770]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[3770]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[3791] = str->add(strings[3791]); strings[3799] = str->add("soft_shadow"); str->del(strings[3791]); str->del(strings[3799]); strings[3774] = str->add(strings[3774]); strings[3800] = str->add("#fff"); str->del(strings[3774]); str->del(strings[3800]); strings[3778] = str->add(strings[3778]); strings[3801] = str->add("#00000020"); str->del(strings[3778]); str->del(strings[3801]); strings[3772] = str->add(strings[3772]); strings[3802] = str->add("12.000000"); strings[470] = str->add(strings[470]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); str->del(strings[3772]); str->del(strings[3802]); strings[3770] = str->add(strings[3770]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); strings[471] = str->add(strings[471]); str->del(strings[471]); strings[471] = str->add(strings[471]); strings[469] = str->add(strings[469]); str->del(strings[3770]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[3770] = str->add(strings[3770]); strings[3771] = str->add(strings[3771]); strings[3772] = str->add(strings[3772]); strings[3773] = str->add(strings[3773]); strings[3774] = str->add(strings[3774]); strings[3775] = str->add(strings[3775]); strings[3776] = str->add(strings[3776]); strings[3777] = str->add(strings[3777]); strings[3778] = str->add(strings[3778]); strings[3779] = str->add(strings[3779]); strings[3780] = str->add(strings[3780]); strings[3781] = str->add(strings[3781]); strings[3782] = str->add(strings[3782]); strings[3783] = str->add(strings[3783]); strings[3784] = str->add(strings[3784]); strings[3785] = str->add(strings[3785]); strings[3786] = str->add(strings[3786]); strings[3787] = str->add(strings[3787]); strings[3788] = str->add(strings[3788]); strings[3789] = str->add(strings[3789]); strings[3790] = str->add(strings[3790]); strings[3791] = str->add(strings[3791]); strings[3792] = str->add(strings[3792]); strings[3783] = str->add(strings[3783]); strings[3803] = str->add("center"); str->del(strings[3783]); str->del(strings[3803]); strings[3774] = str->add(strings[3774]); strings[3804] = str->add("#000"); str->del(strings[3774]); str->del(strings[3804]); strings[3791] = str->add(strings[3791]); strings[3805] = str->add("shadow"); str->del(strings[3791]); str->del(strings[3805]); strings[3778] = str->add(strings[3778]); strings[3806] = str->add("#ffffff80"); str->del(strings[3778]); str->del(strings[3806]); strings[3785] = str->add(strings[3785]); strings[3807] = str->add("word"); str->del(strings[3785]); str->del(strings[3807]); strings[3773] = str->add(strings[3773]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[3773]); str->del(strings[469]); strings[3772] = str->add(strings[3772]); strings[3808] = str->add("10.000000"); str->del(strings[3772]); str->del(strings[3808]); strings[3770] = str->add(strings[3770]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[3770]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[3791] = str->add(strings[3791]); strings[3809] = str->add("soft_shadow"); str->del(strings[3791]); str->del(strings[3809]); strings[3774] = str->add(strings[3774]); strings[3810] = str->add("#fff"); str->del(strings[3774]); str->del(strings[3810]); strings[3778] = str->add(strings[3778]); strings[3811] = str->add("#00000020"); str->del(strings[3778]); str->del(strings[3811]); strings[3772] = str->add(strings[3772]); strings[3812] = str->add("12.000000"); str->del(strings[3772]); str->del(strings[3812]); strings[3770] = str->add(strings[3770]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3770]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[3770]); str->del(strings[3771]); str->del(strings[3772]); str->del(strings[3773]); str->del(strings[3774]); str->del(strings[3775]); str->del(strings[3776]); str->del(strings[3777]); str->del(strings[3778]); str->del(strings[3779]); str->del(strings[3780]); str->del(strings[3781]); str->del(strings[3782]); str->del(strings[3783]); str->del(strings[3784]); str->del(strings[3785]); str->del(strings[3786]); str->del(strings[3787]); str->del(strings[3788]); str->del(strings[3789]); str->del(strings[3790]); str->del(strings[3791]); str->del(strings[3792]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[3770]); str->del(strings[3771]); str->del(strings[3772]); str->del(strings[3773]); str->del(strings[3774]); str->del(strings[3775]); str->del(strings[3776]); str->del(strings[3777]); str->del(strings[3778]); str->del(strings[3779]); str->del(strings[3780]); str->del(strings[3781]); str->del(strings[3782]); str->del(strings[3783]); str->del(strings[3784]); str->del(strings[3785]); str->del(strings[3786]); str->del(strings[3787]); str->del(strings[3788]); str->del(strings[3789]); str->del(strings[3790]); str->del(strings[3791]); str->del(strings[3792]); strings[3813] = str->add("font"); strings[3814] = str->add("font_fallbacks"); strings[3815] = str->add("font_size"); strings[3816] = str->add("font_source"); strings[3817] = str->add("color"); strings[3818] = str->add("underline_color"); strings[3819] = str->add("underline2_color"); strings[3820] = str->add("outline_color"); strings[3821] = str->add("shadow_color"); strings[3822] = str->add("glow_color"); strings[3823] = str->add("glow2_color"); strings[3824] = str->add("backing_color"); strings[3825] = str->add("strikethrough_color"); strings[3826] = str->add("align"); strings[3827] = str->add("valign"); strings[3828] = str->add("wrap"); strings[3829] = str->add("left_margin"); strings[3830] = str->add("right_margin"); strings[3831] = str->add("underline"); strings[3832] = str->add("strikethrough"); strings[3833] = str->add("backing"); strings[3834] = str->add("style"); strings[3835] = str->add("tabstops"); strings[3826] = str->add(strings[3826]); strings[3836] = str->add("center"); str->del(strings[3826]); str->del(strings[3836]); strings[3817] = str->add(strings[3817]); strings[3837] = str->add("#000"); str->del(strings[3817]); str->del(strings[3837]); strings[3834] = str->add(strings[3834]); strings[3838] = str->add("shadow"); str->del(strings[3834]); str->del(strings[3838]); strings[3821] = str->add(strings[3821]); strings[3839] = str->add("#ffffff80"); str->del(strings[3821]); str->del(strings[3839]); strings[3828] = str->add(strings[3828]); strings[3840] = str->add("word"); str->del(strings[3828]); str->del(strings[3840]); strings[3816] = str->add(strings[3816]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[3816]); str->del(strings[469]); strings[3815] = str->add(strings[3815]); strings[3841] = str->add("10.000000"); str->del(strings[3815]); str->del(strings[3841]); strings[3813] = str->add(strings[3813]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[3813]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[3834] = str->add(strings[3834]); strings[3842] = str->add("soft_shadow"); str->del(strings[3834]); str->del(strings[3842]); strings[3817] = str->add(strings[3817]); strings[3843] = str->add("#fff"); str->del(strings[3817]); str->del(strings[3843]); strings[3821] = str->add(strings[3821]); strings[3844] = str->add("#00000020"); str->del(strings[3821]); str->del(strings[3844]); strings[3815] = str->add(strings[3815]); strings[3845] = str->add("12.000000"); str->del(strings[3815]); str->del(strings[3845]); strings[3813] = str->add(strings[3813]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3813]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[3813]); str->del(strings[3814]); str->del(strings[3815]); str->del(strings[3816]); str->del(strings[3817]); str->del(strings[3818]); str->del(strings[3819]); str->del(strings[3820]); str->del(strings[3821]); str->del(strings[3822]); str->del(strings[3823]); str->del(strings[3824]); str->del(strings[3825]); str->del(strings[3826]); str->del(strings[3827]); str->del(strings[3828]); str->del(strings[3829]); str->del(strings[3830]); str->del(strings[3831]); str->del(strings[3832]); str->del(strings[3833]); str->del(strings[3834]); str->del(strings[3835]); strings[3846] = str->add("font"); strings[3847] = str->add("font_fallbacks"); strings[3848] = str->add("font_size"); strings[3849] = str->add("font_source"); strings[3850] = str->add("color"); strings[3851] = str->add("underline_color"); strings[3852] = str->add("underline2_color"); strings[3853] = str->add("outline_color"); strings[3854] = str->add("shadow_color"); strings[3855] = str->add("glow_color"); strings[3856] = str->add("glow2_color"); strings[3857] = str->add("backing_color"); strings[3858] = str->add("strikethrough_color"); strings[3859] = str->add("align"); strings[3860] = str->add("valign"); strings[3861] = str->add("wrap"); strings[3862] = str->add("left_margin"); strings[3863] = str->add("right_margin"); strings[3864] = str->add("underline"); strings[3865] = str->add("strikethrough"); strings[3866] = str->add("backing"); strings[3867] = str->add("style"); strings[3868] = str->add("tabstops"); strings[3859] = str->add(strings[3859]); strings[3869] = str->add("center"); str->del(strings[3859]); str->del(strings[3869]); strings[3850] = str->add(strings[3850]); strings[3870] = str->add("#000"); str->del(strings[3850]); str->del(strings[3870]); strings[3867] = str->add(strings[3867]); strings[3871] = str->add("shadow"); str->del(strings[3867]); str->del(strings[3871]); strings[3854] = str->add(strings[3854]); strings[3872] = str->add("#ffffff80"); str->del(strings[3854]); str->del(strings[3872]); strings[3861] = str->add(strings[3861]); strings[3873] = str->add("word"); str->del(strings[3861]); str->del(strings[3873]); strings[3849] = str->add(strings[3849]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[3849]); str->del(strings[469]); strings[3848] = str->add(strings[3848]); strings[3874] = str->add("10.000000"); str->del(strings[3848]); str->del(strings[3874]); strings[3846] = str->add(strings[3846]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[3846]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[3867] = str->add(strings[3867]); strings[3875] = str->add("soft_shadow"); str->del(strings[3867]); str->del(strings[3875]); strings[3850] = str->add(strings[3850]); strings[3876] = str->add("#fff"); str->del(strings[3850]); str->del(strings[3876]); strings[3854] = str->add(strings[3854]); strings[3877] = str->add("#00000020"); str->del(strings[3854]); str->del(strings[3877]); strings[3848] = str->add(strings[3848]); strings[3878] = str->add("12.000000"); str->del(strings[3848]); str->del(strings[3878]); strings[3846] = str->add(strings[3846]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3846]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[3846]); str->del(strings[3847]); str->del(strings[3848]); str->del(strings[3849]); str->del(strings[3850]); str->del(strings[3851]); str->del(strings[3852]); str->del(strings[3853]); str->del(strings[3854]); str->del(strings[3855]); str->del(strings[3856]); str->del(strings[3857]); str->del(strings[3858]); str->del(strings[3859]); str->del(strings[3860]); str->del(strings[3861]); str->del(strings[3862]); str->del(strings[3863]); str->del(strings[3864]); str->del(strings[3865]); str->del(strings[3866]); str->del(strings[3867]); str->del(strings[3868]); strings[470] = str->add(strings[470]); strings[3879] = str->add("OK"); strings[3880] = str->add("font"); strings[3881] = str->add("font_fallbacks"); strings[3882] = str->add("font_size"); strings[3883] = str->add("font_source"); strings[3884] = str->add("color"); strings[3885] = str->add("underline_color"); strings[3886] = str->add("underline2_color"); strings[3887] = str->add("outline_color"); strings[3888] = str->add("shadow_color"); strings[3889] = str->add("glow_color"); strings[3890] = str->add("glow2_color"); strings[3891] = str->add("backing_color"); strings[3892] = str->add("strikethrough_color"); strings[3893] = str->add("align"); strings[3894] = str->add("valign"); strings[3895] = str->add("wrap"); strings[3896] = str->add("left_margin"); strings[3897] = str->add("right_margin"); strings[3898] = str->add("underline"); strings[3899] = str->add("strikethrough"); strings[3900] = str->add("backing"); strings[3901] = str->add("style"); strings[3902] = str->add("tabstops"); strings[3893] = str->add(strings[3893]); strings[3903] = str->add("center"); str->del(strings[3893]); str->del(strings[3903]); strings[3884] = str->add(strings[3884]); strings[3904] = str->add("#000"); str->del(strings[3884]); str->del(strings[3904]); strings[3901] = str->add(strings[3901]); strings[3905] = str->add("shadow"); str->del(strings[3901]); str->del(strings[3905]); strings[3888] = str->add(strings[3888]); strings[3906] = str->add("#ffffff80"); str->del(strings[3888]); str->del(strings[3906]); strings[3895] = str->add(strings[3895]); strings[3907] = str->add("word"); str->del(strings[3895]); str->del(strings[3907]); strings[3883] = str->add(strings[3883]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[3883]); str->del(strings[469]); strings[3882] = str->add(strings[3882]); strings[3908] = str->add("10.000000"); str->del(strings[3882]); str->del(strings[3908]); strings[3880] = str->add(strings[3880]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[3880]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[3901] = str->add(strings[3901]); strings[3909] = str->add("glow"); str->del(strings[3901]); str->del(strings[3909]); strings[3884] = str->add(strings[3884]); strings[3910] = str->add("#fff"); str->del(strings[3884]); str->del(strings[3910]); strings[3890] = str->add(strings[3890]); strings[3911] = str->add("#fe87"); str->del(strings[3890]); str->del(strings[3911]); strings[3889] = str->add(strings[3889]); strings[3912] = str->add("#fa14"); str->del(strings[3889]); str->del(strings[3912]); strings[3880] = str->add(strings[3880]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3880]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[3901] = str->add(strings[3901]); strings[3913] = str->add("glow"); str->del(strings[3901]); str->del(strings[3913]); strings[3884] = str->add(strings[3884]); strings[3914] = str->add("#fff"); str->del(strings[3884]); str->del(strings[3914]); strings[3890] = str->add(strings[3890]); strings[3915] = str->add("#fe87"); str->del(strings[3890]); str->del(strings[3915]); strings[3889] = str->add(strings[3889]); strings[3916] = str->add("#fa14"); str->del(strings[3889]); str->del(strings[3916]); strings[3880] = str->add(strings[3880]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3880]); str->del(strings[471]); str->del(strings[3880]); str->del(strings[3881]); str->del(strings[3882]); str->del(strings[3883]); str->del(strings[3884]); str->del(strings[3885]); str->del(strings[3886]); str->del(strings[3887]); str->del(strings[3888]); str->del(strings[3889]); str->del(strings[3890]); str->del(strings[3891]); str->del(strings[3892]); str->del(strings[3893]); str->del(strings[3894]); str->del(strings[3895]); str->del(strings[3896]); str->del(strings[3897]); str->del(strings[3898]); str->del(strings[3899]); str->del(strings[3900]); str->del(strings[3901]); str->del(strings[3902]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[3917] = str->add("font"); strings[3918] = str->add("font_fallbacks"); strings[3919] = str->add("font_size"); strings[3920] = str->add("font_source"); strings[3921] = str->add("color"); strings[3922] = str->add("underline_color"); strings[3923] = str->add("underline2_color"); strings[3924] = str->add("outline_color"); strings[3925] = str->add("shadow_color"); strings[3926] = str->add("glow_color"); strings[3927] = str->add("glow2_color"); strings[3928] = str->add("backing_color"); strings[3929] = str->add("strikethrough_color"); strings[3930] = str->add("align"); strings[3931] = str->add("valign"); strings[3932] = str->add("wrap"); strings[3933] = str->add("left_margin"); strings[3934] = str->add("right_margin"); strings[3935] = str->add("underline"); strings[3936] = str->add("strikethrough"); strings[3937] = str->add("backing"); strings[3938] = str->add("style"); strings[3939] = str->add("tabstops"); strings[3930] = str->add(strings[3930]); strings[3940] = str->add("center"); str->del(strings[3930]); str->del(strings[3940]); strings[3921] = str->add(strings[3921]); strings[3941] = str->add("#000"); str->del(strings[3921]); str->del(strings[3941]); strings[3938] = str->add(strings[3938]); strings[3942] = str->add("shadow"); str->del(strings[3938]); str->del(strings[3942]); strings[3925] = str->add(strings[3925]); strings[3943] = str->add("#ffffff80"); str->del(strings[3925]); str->del(strings[3943]); strings[3932] = str->add(strings[3932]); strings[3944] = str->add("word"); str->del(strings[3932]); str->del(strings[3944]); strings[3920] = str->add(strings[3920]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[3920]); str->del(strings[469]); strings[3919] = str->add(strings[3919]); strings[3945] = str->add("10.000000"); str->del(strings[3919]); str->del(strings[3945]); strings[3917] = str->add(strings[3917]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[3917]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[3938] = str->add(strings[3938]); strings[3946] = str->add("glow"); str->del(strings[3938]); str->del(strings[3946]); strings[3921] = str->add(strings[3921]); strings[3947] = str->add("#fff"); str->del(strings[3921]); str->del(strings[3947]); strings[3927] = str->add(strings[3927]); strings[3948] = str->add("#fe87"); str->del(strings[3927]); str->del(strings[3948]); strings[3926] = str->add(strings[3926]); strings[3949] = str->add("#fa14"); str->del(strings[3926]); str->del(strings[3949]); strings[3917] = str->add(strings[3917]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3917]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[3938] = str->add(strings[3938]); strings[3950] = str->add("glow"); str->del(strings[3938]); str->del(strings[3950]); strings[3921] = str->add(strings[3921]); strings[3951] = str->add("#fff"); str->del(strings[3921]); str->del(strings[3951]); strings[3927] = str->add(strings[3927]); strings[3952] = str->add("#fe87"); str->del(strings[3927]); str->del(strings[3952]); strings[3926] = str->add(strings[3926]); strings[3953] = str->add("#fa14"); str->del(strings[3926]); str->del(strings[3953]); strings[3917] = str->add(strings[3917]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3917]); str->del(strings[471]); str->del(strings[3917]); str->del(strings[3918]); str->del(strings[3919]); str->del(strings[3920]); str->del(strings[3921]); str->del(strings[3922]); str->del(strings[3923]); str->del(strings[3924]); str->del(strings[3925]); str->del(strings[3926]); str->del(strings[3927]); str->del(strings[3928]); str->del(strings[3929]); str->del(strings[3930]); str->del(strings[3931]); str->del(strings[3932]); str->del(strings[3933]); str->del(strings[3934]); str->del(strings[3935]); str->del(strings[3936]); str->del(strings[3937]); str->del(strings[3938]); str->del(strings[3939]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[3954] = str->add("font"); strings[3955] = str->add("font_fallbacks"); strings[3956] = str->add("font_size"); strings[3957] = str->add("font_source"); strings[3958] = str->add("color"); strings[3959] = str->add("underline_color"); strings[3960] = str->add("underline2_color"); strings[3961] = str->add("outline_color"); strings[3962] = str->add("shadow_color"); strings[3963] = str->add("glow_color"); strings[3964] = str->add("glow2_color"); strings[3965] = str->add("backing_color"); strings[3966] = str->add("strikethrough_color"); strings[3967] = str->add("align"); strings[3968] = str->add("valign"); strings[3969] = str->add("wrap"); strings[3970] = str->add("left_margin"); strings[3971] = str->add("right_margin"); strings[3972] = str->add("underline"); strings[3973] = str->add("strikethrough"); strings[3974] = str->add("backing"); strings[3975] = str->add("style"); strings[3976] = str->add("tabstops"); strings[3967] = str->add(strings[3967]); strings[3977] = str->add("center"); str->del(strings[3967]); str->del(strings[3977]); strings[3958] = str->add(strings[3958]); strings[3978] = str->add("#000"); str->del(strings[3958]); str->del(strings[3978]); strings[3975] = str->add(strings[3975]); strings[3979] = str->add("shadow"); str->del(strings[3975]); str->del(strings[3979]); strings[3962] = str->add(strings[3962]); strings[3980] = str->add("#ffffff80"); str->del(strings[3962]); str->del(strings[3980]); strings[3969] = str->add(strings[3969]); strings[3981] = str->add("word"); str->del(strings[3969]); str->del(strings[3981]); strings[3957] = str->add(strings[3957]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[3957]); str->del(strings[469]); strings[3956] = str->add(strings[3956]); strings[3982] = str->add("10.000000"); str->del(strings[3956]); str->del(strings[3982]); strings[3954] = str->add(strings[3954]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[3954]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[3975] = str->add(strings[3975]); strings[3983] = str->add("glow"); str->del(strings[3975]); str->del(strings[3983]); strings[3958] = str->add(strings[3958]); strings[3984] = str->add("#fff"); str->del(strings[3958]); str->del(strings[3984]); strings[3964] = str->add(strings[3964]); strings[3985] = str->add("#fe87"); str->del(strings[3964]); str->del(strings[3985]); strings[3963] = str->add(strings[3963]); strings[3986] = str->add("#fa14"); str->del(strings[3963]); str->del(strings[3986]); strings[3954] = str->add(strings[3954]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3954]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[3975] = str->add(strings[3975]); strings[3987] = str->add("glow"); str->del(strings[3975]); str->del(strings[3987]); strings[3958] = str->add(strings[3958]); strings[3988] = str->add("#fff"); str->del(strings[3958]); str->del(strings[3988]); strings[3964] = str->add(strings[3964]); strings[3989] = str->add("#fe87"); str->del(strings[3964]); str->del(strings[3989]); strings[3963] = str->add(strings[3963]); strings[3990] = str->add("#fa14"); str->del(strings[3963]); str->del(strings[3990]); strings[3954] = str->add(strings[3954]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3954]); str->del(strings[471]); str->del(strings[3954]); str->del(strings[3955]); str->del(strings[3956]); str->del(strings[3957]); str->del(strings[3958]); str->del(strings[3959]); str->del(strings[3960]); str->del(strings[3961]); str->del(strings[3962]); str->del(strings[3963]); str->del(strings[3964]); str->del(strings[3965]); str->del(strings[3966]); str->del(strings[3967]); str->del(strings[3968]); str->del(strings[3969]); str->del(strings[3970]); str->del(strings[3971]); str->del(strings[3972]); str->del(strings[3973]); str->del(strings[3974]); str->del(strings[3975]); str->del(strings[3976]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[3991] = str->add("font"); strings[3992] = str->add("font_fallbacks"); strings[3993] = str->add("font_size"); strings[3994] = str->add("font_source"); strings[3995] = str->add("color"); strings[3996] = str->add("underline_color"); strings[3997] = str->add("underline2_color"); strings[3998] = str->add("outline_color"); strings[3999] = str->add("shadow_color"); strings[4000] = str->add("glow_color"); strings[4001] = str->add("glow2_color"); strings[4002] = str->add("backing_color"); strings[4003] = str->add("strikethrough_color"); strings[4004] = str->add("align"); strings[4005] = str->add("valign"); strings[4006] = str->add("wrap"); strings[4007] = str->add("left_margin"); strings[4008] = str->add("right_margin"); strings[4009] = str->add("underline"); strings[4010] = str->add("strikethrough"); strings[4011] = str->add("backing"); strings[4012] = str->add("style"); strings[4013] = str->add("tabstops"); strings[4004] = str->add(strings[4004]); strings[4014] = str->add("center"); str->del(strings[4004]); str->del(strings[4014]); strings[3995] = str->add(strings[3995]); strings[4015] = str->add("#000"); str->del(strings[3995]); str->del(strings[4015]); strings[4012] = str->add(strings[4012]); strings[4016] = str->add("shadow"); str->del(strings[4012]); str->del(strings[4016]); strings[3999] = str->add(strings[3999]); strings[4017] = str->add("#ffffff80"); str->del(strings[3999]); str->del(strings[4017]); strings[4006] = str->add(strings[4006]); strings[4018] = str->add("word"); str->del(strings[4006]); str->del(strings[4018]); strings[3994] = str->add(strings[3994]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[3994]); str->del(strings[469]); strings[3993] = str->add(strings[3993]); strings[4019] = str->add("10.000000"); str->del(strings[3993]); str->del(strings[4019]); strings[3991] = str->add(strings[3991]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[3991]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4012] = str->add(strings[4012]); strings[4020] = str->add("glow"); str->del(strings[4012]); str->del(strings[4020]); strings[3995] = str->add(strings[3995]); strings[4021] = str->add("#fff"); str->del(strings[3995]); str->del(strings[4021]); strings[4001] = str->add(strings[4001]); strings[4022] = str->add("#fe87"); str->del(strings[4001]); str->del(strings[4022]); strings[4000] = str->add(strings[4000]); strings[4023] = str->add("#fa14"); str->del(strings[4000]); str->del(strings[4023]); strings[3991] = str->add(strings[3991]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3991]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4012] = str->add(strings[4012]); strings[4024] = str->add("glow"); str->del(strings[4012]); str->del(strings[4024]); strings[3995] = str->add(strings[3995]); strings[4025] = str->add("#fff"); str->del(strings[3995]); str->del(strings[4025]); strings[4001] = str->add(strings[4001]); strings[4026] = str->add("#fe87"); str->del(strings[4001]); str->del(strings[4026]); strings[4000] = str->add(strings[4000]); strings[4027] = str->add("#fa14"); str->del(strings[4000]); str->del(strings[4027]); strings[3991] = str->add(strings[3991]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[3991]); str->del(strings[471]); str->del(strings[3991]); str->del(strings[3992]); str->del(strings[3993]); str->del(strings[3994]); str->del(strings[3995]); str->del(strings[3996]); str->del(strings[3997]); str->del(strings[3998]); str->del(strings[3999]); str->del(strings[4000]); str->del(strings[4001]); str->del(strings[4002]); str->del(strings[4003]); str->del(strings[4004]); str->del(strings[4005]); str->del(strings[4006]); str->del(strings[4007]); str->del(strings[4008]); str->del(strings[4009]); str->del(strings[4010]); str->del(strings[4011]); str->del(strings[4012]); str->del(strings[4013]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[4028] = str->add("font"); strings[4029] = str->add("font_fallbacks"); strings[4030] = str->add("font_size"); strings[4031] = str->add("font_source"); strings[4032] = str->add("color"); strings[4033] = str->add("underline_color"); strings[4034] = str->add("underline2_color"); strings[4035] = str->add("outline_color"); strings[4036] = str->add("shadow_color"); strings[4037] = str->add("glow_color"); strings[4038] = str->add("glow2_color"); strings[4039] = str->add("backing_color"); strings[4040] = str->add("strikethrough_color"); strings[4041] = str->add("align"); strings[4042] = str->add("valign"); strings[4043] = str->add("wrap"); strings[4044] = str->add("left_margin"); strings[4045] = str->add("right_margin"); strings[4046] = str->add("underline"); strings[4047] = str->add("strikethrough"); strings[4048] = str->add("backing"); strings[4049] = str->add("style"); strings[4050] = str->add("tabstops"); strings[4041] = str->add(strings[4041]); strings[4051] = str->add("center"); str->del(strings[4041]); str->del(strings[4051]); strings[4032] = str->add(strings[4032]); strings[4052] = str->add("#000"); str->del(strings[4032]); str->del(strings[4052]); strings[4049] = str->add(strings[4049]); strings[4053] = str->add("shadow"); str->del(strings[4049]); str->del(strings[4053]); strings[4036] = str->add(strings[4036]); strings[4054] = str->add("#ffffff80"); str->del(strings[4036]); str->del(strings[4054]); strings[4043] = str->add(strings[4043]); strings[4055] = str->add("word"); str->del(strings[4043]); str->del(strings[4055]); strings[4031] = str->add(strings[4031]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4031]); str->del(strings[469]); strings[4030] = str->add(strings[4030]); strings[4056] = str->add("10.000000"); str->del(strings[4030]); str->del(strings[4056]); strings[4028] = str->add(strings[4028]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4028]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4049] = str->add(strings[4049]); strings[4057] = str->add("glow"); str->del(strings[4049]); str->del(strings[4057]); strings[4032] = str->add(strings[4032]); strings[4058] = str->add("#fff"); str->del(strings[4032]); str->del(strings[4058]); strings[4038] = str->add(strings[4038]); strings[4059] = str->add("#fe87"); str->del(strings[4038]); str->del(strings[4059]); strings[4037] = str->add(strings[4037]); strings[4060] = str->add("#fa14"); str->del(strings[4037]); str->del(strings[4060]); strings[4028] = str->add(strings[4028]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4028]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4049] = str->add(strings[4049]); strings[4061] = str->add("glow"); str->del(strings[4049]); str->del(strings[4061]); strings[4032] = str->add(strings[4032]); strings[4062] = str->add("#fff"); str->del(strings[4032]); str->del(strings[4062]); strings[4038] = str->add(strings[4038]); strings[4063] = str->add("#fe87"); str->del(strings[4038]); str->del(strings[4063]); strings[4037] = str->add(strings[4037]); strings[4064] = str->add("#fa14"); str->del(strings[4037]); str->del(strings[4064]); strings[4028] = str->add(strings[4028]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4028]); str->del(strings[471]); str->del(strings[4028]); str->del(strings[4029]); str->del(strings[4030]); str->del(strings[4031]); str->del(strings[4032]); str->del(strings[4033]); str->del(strings[4034]); str->del(strings[4035]); str->del(strings[4036]); str->del(strings[4037]); str->del(strings[4038]); str->del(strings[4039]); str->del(strings[4040]); str->del(strings[4041]); str->del(strings[4042]); str->del(strings[4043]); str->del(strings[4044]); str->del(strings[4045]); str->del(strings[4046]); str->del(strings[4047]); str->del(strings[4048]); str->del(strings[4049]); str->del(strings[4050]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[4065] = str->add("font"); strings[4066] = str->add("font_fallbacks"); strings[4067] = str->add("font_size"); strings[4068] = str->add("font_source"); strings[4069] = str->add("color"); strings[4070] = str->add("underline_color"); strings[4071] = str->add("underline2_color"); strings[4072] = str->add("outline_color"); strings[4073] = str->add("shadow_color"); strings[4074] = str->add("glow_color"); strings[4075] = str->add("glow2_color"); strings[4076] = str->add("backing_color"); strings[4077] = str->add("strikethrough_color"); strings[4078] = str->add("align"); strings[4079] = str->add("valign"); strings[4080] = str->add("wrap"); strings[4081] = str->add("left_margin"); strings[4082] = str->add("right_margin"); strings[4083] = str->add("underline"); strings[4084] = str->add("strikethrough"); strings[4085] = str->add("backing"); strings[4086] = str->add("style"); strings[4087] = str->add("tabstops"); strings[4078] = str->add(strings[4078]); strings[4088] = str->add("center"); str->del(strings[4078]); str->del(strings[4088]); strings[4069] = str->add(strings[4069]); strings[4089] = str->add("#000"); str->del(strings[4069]); str->del(strings[4089]); strings[4086] = str->add(strings[4086]); strings[4090] = str->add("shadow"); str->del(strings[4086]); str->del(strings[4090]); strings[4073] = str->add(strings[4073]); strings[4091] = str->add("#ffffff80"); str->del(strings[4073]); str->del(strings[4091]); strings[4080] = str->add(strings[4080]); strings[4092] = str->add("word"); str->del(strings[4080]); str->del(strings[4092]); strings[4068] = str->add(strings[4068]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4068]); str->del(strings[469]); strings[4067] = str->add(strings[4067]); strings[4093] = str->add("10.000000"); str->del(strings[4067]); str->del(strings[4093]); strings[4065] = str->add(strings[4065]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4065]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4086] = str->add(strings[4086]); strings[4094] = str->add("glow"); str->del(strings[4086]); str->del(strings[4094]); strings[4069] = str->add(strings[4069]); strings[4095] = str->add("#fff"); str->del(strings[4069]); str->del(strings[4095]); strings[4075] = str->add(strings[4075]); strings[4096] = str->add("#fe87"); str->del(strings[4075]); str->del(strings[4096]); strings[4074] = str->add(strings[4074]); strings[4097] = str->add("#fa14"); str->del(strings[4074]); str->del(strings[4097]); strings[4065] = str->add(strings[4065]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4065]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4086] = str->add(strings[4086]); strings[4098] = str->add("glow"); str->del(strings[4086]); str->del(strings[4098]); strings[4069] = str->add(strings[4069]); strings[4099] = str->add("#fff"); str->del(strings[4069]); str->del(strings[4099]); strings[4075] = str->add(strings[4075]); strings[4100] = str->add("#fe87"); str->del(strings[4075]); str->del(strings[4100]); strings[4074] = str->add(strings[4074]); strings[4101] = str->add("#fa14"); str->del(strings[4074]); str->del(strings[4101]); strings[4065] = str->add(strings[4065]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4065]); str->del(strings[471]); str->del(strings[4065]); str->del(strings[4066]); str->del(strings[4067]); str->del(strings[4068]); str->del(strings[4069]); str->del(strings[4070]); str->del(strings[4071]); str->del(strings[4072]); str->del(strings[4073]); str->del(strings[4074]); str->del(strings[4075]); str->del(strings[4076]); str->del(strings[4077]); str->del(strings[4078]); str->del(strings[4079]); str->del(strings[4080]); str->del(strings[4081]); str->del(strings[4082]); str->del(strings[4083]); str->del(strings[4084]); str->del(strings[4085]); str->del(strings[4086]); str->del(strings[4087]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[4102] = str->add("font"); strings[4103] = str->add("font_fallbacks"); strings[4104] = str->add("font_size"); strings[4105] = str->add("font_source"); strings[4106] = str->add("color"); strings[4107] = str->add("underline_color"); strings[4108] = str->add("underline2_color"); strings[4109] = str->add("outline_color"); strings[4110] = str->add("shadow_color"); strings[4111] = str->add("glow_color"); strings[4112] = str->add("glow2_color"); strings[4113] = str->add("backing_color"); strings[4114] = str->add("strikethrough_color"); strings[4115] = str->add("align"); strings[4116] = str->add("valign"); strings[4117] = str->add("wrap"); strings[4118] = str->add("left_margin"); strings[4119] = str->add("right_margin"); strings[4120] = str->add("underline"); strings[4121] = str->add("strikethrough"); strings[4122] = str->add("backing"); strings[4123] = str->add("style"); strings[4124] = str->add("tabstops"); strings[4115] = str->add(strings[4115]); strings[4125] = str->add("center"); str->del(strings[4115]); str->del(strings[4125]); strings[4106] = str->add(strings[4106]); strings[4126] = str->add("#000"); str->del(strings[4106]); str->del(strings[4126]); strings[4123] = str->add(strings[4123]); strings[4127] = str->add("shadow"); str->del(strings[4123]); str->del(strings[4127]); strings[4110] = str->add(strings[4110]); strings[4128] = str->add("#ffffff80"); str->del(strings[4110]); str->del(strings[4128]); strings[4117] = str->add(strings[4117]); strings[4129] = str->add("word"); str->del(strings[4117]); str->del(strings[4129]); strings[4105] = str->add(strings[4105]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4105]); str->del(strings[469]); strings[4104] = str->add(strings[4104]); strings[4130] = str->add("10.000000"); str->del(strings[4104]); str->del(strings[4130]); strings[4102] = str->add(strings[4102]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4102]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4123] = str->add(strings[4123]); strings[4131] = str->add("glow"); str->del(strings[4123]); str->del(strings[4131]); strings[4106] = str->add(strings[4106]); strings[4132] = str->add("#fff"); str->del(strings[4106]); str->del(strings[4132]); strings[4112] = str->add(strings[4112]); strings[4133] = str->add("#fe87"); str->del(strings[4112]); str->del(strings[4133]); strings[4111] = str->add(strings[4111]); strings[4134] = str->add("#fa14"); str->del(strings[4111]); str->del(strings[4134]); strings[4102] = str->add(strings[4102]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4102]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4123] = str->add(strings[4123]); strings[4135] = str->add("glow"); str->del(strings[4123]); str->del(strings[4135]); strings[4106] = str->add(strings[4106]); strings[4136] = str->add("#fff"); str->del(strings[4106]); str->del(strings[4136]); strings[4112] = str->add(strings[4112]); strings[4137] = str->add("#fe87"); str->del(strings[4112]); str->del(strings[4137]); strings[4111] = str->add(strings[4111]); strings[4138] = str->add("#fa14"); str->del(strings[4111]); str->del(strings[4138]); strings[4102] = str->add(strings[4102]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4102]); str->del(strings[471]); str->del(strings[4102]); str->del(strings[4103]); str->del(strings[4104]); str->del(strings[4105]); str->del(strings[4106]); str->del(strings[4107]); str->del(strings[4108]); str->del(strings[4109]); str->del(strings[4110]); str->del(strings[4111]); str->del(strings[4112]); str->del(strings[4113]); str->del(strings[4114]); str->del(strings[4115]); str->del(strings[4116]); str->del(strings[4117]); str->del(strings[4118]); str->del(strings[4119]); str->del(strings[4120]); str->del(strings[4121]); str->del(strings[4122]); str->del(strings[4123]); str->del(strings[4124]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[4139] = str->add("font"); strings[4140] = str->add("font_fallbacks"); strings[4141] = str->add("font_size"); strings[4142] = str->add("font_source"); strings[4143] = str->add("color"); strings[4144] = str->add("underline_color"); strings[4145] = str->add("underline2_color"); strings[4146] = str->add("outline_color"); strings[4147] = str->add("shadow_color"); strings[4148] = str->add("glow_color"); strings[4149] = str->add("glow2_color"); strings[4150] = str->add("backing_color"); strings[4151] = str->add("strikethrough_color"); strings[4152] = str->add("align"); strings[4153] = str->add("valign"); strings[4154] = str->add("wrap"); strings[4155] = str->add("left_margin"); strings[4156] = str->add("right_margin"); strings[4157] = str->add("underline"); strings[4158] = str->add("strikethrough"); strings[4159] = str->add("backing"); strings[4160] = str->add("style"); strings[4161] = str->add("tabstops"); strings[4152] = str->add(strings[4152]); strings[4162] = str->add("center"); str->del(strings[4152]); str->del(strings[4162]); strings[4143] = str->add(strings[4143]); strings[4163] = str->add("#000"); str->del(strings[4143]); str->del(strings[4163]); strings[4160] = str->add(strings[4160]); strings[4164] = str->add("shadow"); str->del(strings[4160]); str->del(strings[4164]); strings[4147] = str->add(strings[4147]); strings[4165] = str->add("#ffffff80"); str->del(strings[4147]); str->del(strings[4165]); strings[4154] = str->add(strings[4154]); strings[4166] = str->add("word"); str->del(strings[4154]); str->del(strings[4166]); strings[4142] = str->add(strings[4142]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4142]); str->del(strings[469]); strings[4141] = str->add(strings[4141]); strings[4167] = str->add("10.000000"); str->del(strings[4141]); str->del(strings[4167]); strings[4139] = str->add(strings[4139]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4139]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4160] = str->add(strings[4160]); strings[4168] = str->add("glow"); str->del(strings[4160]); str->del(strings[4168]); strings[4143] = str->add(strings[4143]); strings[4169] = str->add("#fff"); str->del(strings[4143]); str->del(strings[4169]); strings[4149] = str->add(strings[4149]); strings[4170] = str->add("#fe87"); str->del(strings[4149]); str->del(strings[4170]); strings[4148] = str->add(strings[4148]); strings[4171] = str->add("#fa14"); str->del(strings[4148]); str->del(strings[4171]); strings[4139] = str->add(strings[4139]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4139]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4160] = str->add(strings[4160]); strings[4172] = str->add("glow"); str->del(strings[4160]); str->del(strings[4172]); strings[4143] = str->add(strings[4143]); strings[4173] = str->add("#fff"); str->del(strings[4143]); str->del(strings[4173]); strings[4149] = str->add(strings[4149]); strings[4174] = str->add("#fe87"); str->del(strings[4149]); str->del(strings[4174]); strings[4148] = str->add(strings[4148]); strings[4175] = str->add("#fa14"); str->del(strings[4148]); str->del(strings[4175]); strings[4139] = str->add(strings[4139]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4139]); str->del(strings[471]); str->del(strings[4139]); str->del(strings[4140]); str->del(strings[4141]); str->del(strings[4142]); str->del(strings[4143]); str->del(strings[4144]); str->del(strings[4145]); str->del(strings[4146]); str->del(strings[4147]); str->del(strings[4148]); str->del(strings[4149]); str->del(strings[4150]); str->del(strings[4151]); str->del(strings[4152]); str->del(strings[4153]); str->del(strings[4154]); str->del(strings[4155]); str->del(strings[4156]); str->del(strings[4157]); str->del(strings[4158]); str->del(strings[4159]); str->del(strings[4160]); str->del(strings[4161]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[4176] = str->add("resize"); strings[469] = str->add(strings[469]); strings[4177] = str->add("images/408"); strings[4178] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/408"); strings[469] = str->add(strings[469]); strings[4177] = str->add(strings[4177]); strings[469] = str->add(strings[469]); strings[4179] = str->add("images/409"); strings[4180] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/409"); strings[469] = str->add(strings[469]); strings[4179] = str->add(strings[4179]); strings[469] = str->add(strings[469]); strings[4181] = str->add("images/412"); strings[4182] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/412"); strings[469] = str->add(strings[469]); strings[4181] = str->add(strings[4181]); strings[469] = str->add(strings[469]); strings[4183] = str->add("images/410"); strings[4184] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/410"); strings[469] = str->add(strings[469]); strings[4183] = str->add(strings[4183]); strings[469] = str->add(strings[469]); strings[4185] = str->add("images/411"); strings[4186] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/411"); strings[469] = str->add(strings[469]); strings[4185] = str->add(strings[4185]); strings[469] = str->add(strings[469]); strings[4187] = str->add("images/413"); strings[4188] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/413"); strings[469] = str->add(strings[469]); strings[4187] = str->add(strings[4187]); strings[469] = str->add(strings[469]); strings[4189] = str->add("images/414"); strings[4190] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/414"); strings[469] = str->add(strings[469]); strings[4189] = str->add(strings[4189]); strings[469] = str->add(strings[469]); strings[4191] = str->add("images/287"); strings[4192] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/287"); strings[469] = str->add(strings[469]); strings[4191] = str->add(strings[4191]); strings[1712] = str->add(strings[1712]); strings[1712] = str->add(strings[1712]); strings[3710] = str->add(strings[3710]); strings[3710] = str->add(strings[3710]); strings[469] = str->add(strings[469]); strings[4193] = str->add("images/406"); strings[4194] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/406"); strings[469] = str->add(strings[469]); strings[4193] = str->add(strings[4193]); strings[4195] = str->add("font"); strings[4196] = str->add("font_fallbacks"); strings[4197] = str->add("font_size"); strings[4198] = str->add("font_source"); strings[4199] = str->add("color"); strings[4200] = str->add("underline_color"); strings[4201] = str->add("underline2_color"); strings[4202] = str->add("outline_color"); strings[4203] = str->add("shadow_color"); strings[4204] = str->add("glow_color"); strings[4205] = str->add("glow2_color"); strings[4206] = str->add("backing_color"); strings[4207] = str->add("strikethrough_color"); strings[4208] = str->add("align"); strings[4209] = str->add("valign"); strings[4210] = str->add("wrap"); strings[4211] = str->add("left_margin"); strings[4212] = str->add("right_margin"); strings[4213] = str->add("underline"); strings[4214] = str->add("strikethrough"); strings[4215] = str->add("backing"); strings[4216] = str->add("style"); strings[4217] = str->add("tabstops"); strings[4208] = str->add(strings[4208]); strings[4218] = str->add("center"); str->del(strings[4208]); str->del(strings[4218]); strings[4199] = str->add(strings[4199]); strings[4219] = str->add("#000"); str->del(strings[4199]); str->del(strings[4219]); strings[4216] = str->add(strings[4216]); strings[4220] = str->add("shadow"); str->del(strings[4216]); str->del(strings[4220]); strings[4203] = str->add(strings[4203]); strings[4221] = str->add("#ffffff80"); str->del(strings[4203]); str->del(strings[4221]); strings[4210] = str->add(strings[4210]); strings[4222] = str->add("word"); str->del(strings[4210]); str->del(strings[4222]); strings[4198] = str->add(strings[4198]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4198]); str->del(strings[469]); strings[4197] = str->add(strings[4197]); strings[4223] = str->add("10.000000"); str->del(strings[4197]); str->del(strings[4223]); strings[4195] = str->add(strings[4195]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4195]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4216] = str->add(strings[4216]); strings[4224] = str->add("soft_shadow"); str->del(strings[4216]); str->del(strings[4224]); strings[4199] = str->add(strings[4199]); strings[4225] = str->add("#fff"); str->del(strings[4199]); str->del(strings[4225]); strings[4203] = str->add(strings[4203]); strings[4226] = str->add("#00000020"); str->del(strings[4203]); str->del(strings[4226]); strings[4197] = str->add(strings[4197]); strings[4227] = str->add("12.000000"); str->del(strings[4197]); str->del(strings[4227]); strings[4195] = str->add(strings[4195]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4195]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[4195]); str->del(strings[4196]); str->del(strings[4197]); str->del(strings[4198]); str->del(strings[4199]); str->del(strings[4200]); str->del(strings[4201]); str->del(strings[4202]); str->del(strings[4203]); str->del(strings[4204]); str->del(strings[4205]); str->del(strings[4206]); str->del(strings[4207]); str->del(strings[4208]); str->del(strings[4209]); str->del(strings[4210]); str->del(strings[4211]); str->del(strings[4212]); str->del(strings[4213]); str->del(strings[4214]); str->del(strings[4215]); str->del(strings[4216]); str->del(strings[4217]); strings[4228] = str->add("font"); strings[4229] = str->add("font_fallbacks"); strings[4230] = str->add("font_size"); strings[4231] = str->add("font_source"); strings[4232] = str->add("color"); strings[4233] = str->add("underline_color"); strings[4234] = str->add("underline2_color"); strings[4235] = str->add("outline_color"); strings[4236] = str->add("shadow_color"); strings[4237] = str->add("glow_color"); strings[4238] = str->add("glow2_color"); strings[4239] = str->add("backing_color"); strings[4240] = str->add("strikethrough_color"); strings[4241] = str->add("align"); strings[4242] = str->add("valign"); strings[4243] = str->add("wrap"); strings[4244] = str->add("left_margin"); strings[4245] = str->add("right_margin"); strings[4246] = str->add("underline"); strings[4247] = str->add("strikethrough"); strings[4248] = str->add("backing"); strings[4249] = str->add("style"); strings[4250] = str->add("tabstops"); strings[4241] = str->add(strings[4241]); strings[4251] = str->add("center"); str->del(strings[4241]); str->del(strings[4251]); strings[4232] = str->add(strings[4232]); strings[4252] = str->add("#000"); str->del(strings[4232]); str->del(strings[4252]); strings[4249] = str->add(strings[4249]); strings[4253] = str->add("shadow"); str->del(strings[4249]); str->del(strings[4253]); strings[4236] = str->add(strings[4236]); strings[4254] = str->add("#ffffff80"); str->del(strings[4236]); str->del(strings[4254]); strings[4243] = str->add(strings[4243]); strings[4255] = str->add("word"); str->del(strings[4243]); str->del(strings[4255]); strings[4231] = str->add(strings[4231]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4231]); str->del(strings[469]); strings[4230] = str->add(strings[4230]); strings[4256] = str->add("10.000000"); str->del(strings[4230]); str->del(strings[4256]); strings[4228] = str->add(strings[4228]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4228]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4249] = str->add(strings[4249]); strings[4257] = str->add("soft_shadow"); str->del(strings[4249]); str->del(strings[4257]); strings[4232] = str->add(strings[4232]); strings[4258] = str->add("#fff"); str->del(strings[4232]); str->del(strings[4258]); strings[4236] = str->add(strings[4236]); strings[4259] = str->add("#00000020"); str->del(strings[4236]); str->del(strings[4259]); strings[4230] = str->add(strings[4230]); strings[4260] = str->add("12.000000"); str->del(strings[4230]); str->del(strings[4260]); strings[4228] = str->add(strings[4228]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4228]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[4228]); str->del(strings[4229]); str->del(strings[4230]); str->del(strings[4231]); str->del(strings[4232]); str->del(strings[4233]); str->del(strings[4234]); str->del(strings[4235]); str->del(strings[4236]); str->del(strings[4237]); str->del(strings[4238]); str->del(strings[4239]); str->del(strings[4240]); str->del(strings[4241]); str->del(strings[4242]); str->del(strings[4243]); str->del(strings[4244]); str->del(strings[4245]); str->del(strings[4246]); str->del(strings[4247]); str->del(strings[4248]); str->del(strings[4249]); str->del(strings[4250]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); strings[4261] = str->add("font"); strings[4262] = str->add("font_fallbacks"); strings[4263] = str->add("font_size"); strings[4264] = str->add("font_source"); strings[4265] = str->add("color"); strings[4266] = str->add("underline_color"); strings[4267] = str->add("underline2_color"); strings[4268] = str->add("outline_color"); strings[4269] = str->add("shadow_color"); strings[4270] = str->add("glow_color"); strings[4271] = str->add("glow2_color"); strings[4272] = str->add("backing_color"); strings[4273] = str->add("strikethrough_color"); strings[4274] = str->add("align"); strings[4275] = str->add("valign"); strings[4276] = str->add("wrap"); strings[4277] = str->add("left_margin"); strings[4278] = str->add("right_margin"); strings[4279] = str->add("underline"); strings[4280] = str->add("strikethrough"); strings[4281] = str->add("backing"); strings[4282] = str->add("style"); strings[4283] = str->add("tabstops"); strings[4274] = str->add(strings[4274]); strings[4284] = str->add("center"); str->del(strings[4274]); str->del(strings[4284]); strings[4265] = str->add(strings[4265]); strings[4285] = str->add("#000"); str->del(strings[4265]); str->del(strings[4285]); strings[4282] = str->add(strings[4282]); strings[4286] = str->add("shadow"); str->del(strings[4282]); str->del(strings[4286]); strings[4269] = str->add(strings[4269]); strings[4287] = str->add("#ffffff80"); str->del(strings[4269]); str->del(strings[4287]); strings[4276] = str->add(strings[4276]); strings[4288] = str->add("word"); str->del(strings[4276]); str->del(strings[4288]); strings[4264] = str->add(strings[4264]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4264]); str->del(strings[469]); strings[4263] = str->add(strings[4263]); strings[4289] = str->add("10.000000"); str->del(strings[4263]); str->del(strings[4289]); strings[4261] = str->add(strings[4261]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4261]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4282] = str->add(strings[4282]); strings[4290] = str->add("soft_shadow"); str->del(strings[4282]); str->del(strings[4290]); strings[4265] = str->add(strings[4265]); strings[4291] = str->add("#fff"); str->del(strings[4265]); str->del(strings[4291]); strings[4269] = str->add(strings[4269]); strings[4292] = str->add("#00000020"); str->del(strings[4269]); str->del(strings[4292]); strings[4263] = str->add(strings[4263]); strings[4293] = str->add("12.000000"); str->del(strings[4263]); str->del(strings[4293]); strings[4261] = str->add(strings[4261]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4261]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[4261]); str->del(strings[4262]); str->del(strings[4263]); str->del(strings[4264]); str->del(strings[4265]); str->del(strings[4266]); str->del(strings[4267]); str->del(strings[4268]); str->del(strings[4269]); str->del(strings[4270]); str->del(strings[4271]); str->del(strings[4272]); str->del(strings[4273]); str->del(strings[4274]); str->del(strings[4275]); str->del(strings[4276]); str->del(strings[4277]); str->del(strings[4278]); str->del(strings[4279]); str->del(strings[4280]); str->del(strings[4281]); str->del(strings[4282]); str->del(strings[4283]); strings[469] = str->add(strings[469]); strings[4193] = str->add(strings[4193]); strings[469] = str->add(strings[469]); strings[4294] = str->add("images/313"); strings[4295] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/313"); strings[469] = str->add(strings[469]); strings[4294] = str->add(strings[4294]); strings[469] = str->add(strings[469]); strings[4296] = str->add("images/254"); strings[4297] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/254"); strings[469] = str->add(strings[469]); strings[4296] = str->add(strings[4296]); strings[469] = str->add(strings[469]); strings[4298] = str->add("images/407"); strings[4299] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/407"); strings[469] = str->add(strings[469]); strings[4298] = str->add(strings[4298]); strings[469] = str->add(strings[469]); strings[4298] = str->add(strings[4298]); strings[469] = str->add(strings[469]); strings[4300] = str->add("images/288"); strings[4301] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/288"); strings[469] = str->add(strings[469]); strings[4300] = str->add(strings[4300]); strings[469] = str->add(strings[469]); strings[4302] = str->add("images/289"); strings[4303] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/289"); strings[469] = str->add(strings[469]); strings[4302] = str->add(strings[4302]); strings[469] = str->add(strings[469]); strings[4304] = str->add("images/290"); strings[4305] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/290"); strings[469] = str->add(strings[469]); strings[4304] = str->add(strings[4304]); strings[469] = str->add(strings[469]); strings[4306] = str->add("images/291"); strings[4307] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/291"); strings[469] = str->add(strings[469]); strings[4306] = str->add(strings[4306]); strings[469] = str->add(strings[469]); strings[4308] = str->add("images/292"); strings[4309] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/292"); strings[469] = str->add(strings[469]); strings[4308] = str->add(strings[4308]); strings[469] = str->add(strings[469]); strings[4310] = str->add("images/293"); strings[4311] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/293"); strings[469] = str->add(strings[469]); strings[4310] = str->add(strings[4310]); strings[469] = str->add(strings[469]); strings[4312] = str->add("images/294"); strings[4313] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/294"); strings[469] = str->add(strings[469]); strings[4312] = str->add(strings[4312]); strings[469] = str->add(strings[469]); strings[4314] = str->add("images/295"); strings[4315] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/295"); strings[469] = str->add(strings[469]); strings[4314] = str->add(strings[4314]); strings[469] = str->add(strings[469]); strings[4316] = str->add("images/296"); strings[4317] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/296"); strings[469] = str->add(strings[469]); strings[4316] = str->add(strings[4316]); strings[469] = str->add(strings[469]); strings[4318] = str->add("images/297"); strings[4319] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/297"); strings[469] = str->add(strings[469]); strings[4318] = str->add(strings[4318]); strings[469] = str->add(strings[469]); strings[4320] = str->add("images/298"); strings[4321] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/298"); strings[469] = str->add(strings[469]); strings[4320] = str->add(strings[4320]); strings[469] = str->add(strings[469]); strings[4322] = str->add("images/299"); strings[4323] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/299"); strings[469] = str->add(strings[469]); strings[4322] = str->add(strings[4322]); strings[469] = str->add(strings[469]); strings[4324] = str->add("images/300"); strings[4325] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/300"); strings[469] = str->add(strings[469]); strings[4324] = str->add(strings[4324]); strings[469] = str->add(strings[469]); strings[4326] = str->add("images/301"); strings[4327] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/301"); strings[469] = str->add(strings[469]); strings[4326] = str->add(strings[4326]); strings[469] = str->add(strings[469]); strings[4328] = str->add("images/302"); strings[4329] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/302"); strings[469] = str->add(strings[469]); strings[4328] = str->add(strings[4328]); strings[469] = str->add(strings[469]); strings[4330] = str->add("images/303"); strings[4331] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/303"); strings[469] = str->add(strings[469]); strings[4330] = str->add(strings[4330]); strings[469] = str->add(strings[469]); strings[4332] = str->add("images/304"); strings[4333] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/304"); strings[469] = str->add(strings[469]); strings[4332] = str->add(strings[4332]); strings[469] = str->add(strings[469]); strings[4334] = str->add("images/305"); strings[4335] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/305"); strings[469] = str->add(strings[469]); strings[4334] = str->add(strings[4334]); strings[469] = str->add(strings[469]); strings[4336] = str->add("images/268"); strings[4337] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/268"); strings[469] = str->add(strings[469]); strings[4336] = str->add(strings[4336]); strings[3879] = str->add(strings[3879]); strings[3879] = str->add(strings[3879]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[4338] = str->add("e,state,unfocused"); strings[3706] = str->add(strings[3706]); str->del(strings[3705]); str->del(strings[3706]); str->del(strings[3707]); str->del(strings[3706]); str->del(strings[3709]); strings[4339] = str->add("program,start"); strings[4340] = str->add("go_active_pre"); strings[1932] = str->add(strings[1932]); strings[4340] = str->add(strings[4340]); strings[4339] = str->add(strings[4339]); strings[4341] = str->add("go_active1"); strings[1932] = str->add(strings[1932]); strings[4341] = str->add(strings[4341]); strings[4339] = str->add(strings[4339]); strings[4342] = str->add("go_activeb1"); strings[4339] = str->add(strings[4339]); strings[4343] = str->add("go_active29"); strings[1932] = str->add(strings[1932]); strings[4343] = str->add(strings[4343]); strings[4339] = str->add(strings[4339]); strings[4344] = str->add("go_activeb29"); strings[4339] = str->add(strings[4339]); strings[4345] = str->add("anim_sky1a"); strings[4339] = str->add(strings[4339]); strings[4346] = str->add("anim_sky4a"); strings[4339] = str->add(strings[4339]); strings[4347] = str->add("anim_sky2a"); strings[4339] = str->add(strings[4339]); strings[4348] = str->add("anim_sky3a"); str->del(strings[1841]); str->del(strings[4176]); strings[4339] = str->add(strings[4339]); strings[4349] = str->add("off"); str->del(strings[4338]); str->del(strings[3706]); str->del(strings[4339]); str->del(strings[4340]); str->del(strings[1932]); str->del(strings[4340]); str->del(strings[4339]); str->del(strings[4341]); str->del(strings[1932]); str->del(strings[4341]); str->del(strings[4339]); str->del(strings[4342]); str->del(strings[4339]); str->del(strings[4343]); str->del(strings[1932]); str->del(strings[4343]); str->del(strings[4339]); str->del(strings[4344]); str->del(strings[4339]); str->del(strings[4345]); str->del(strings[4339]); str->del(strings[4346]); str->del(strings[4339]); str->del(strings[4347]); str->del(strings[4339]); str->del(strings[4348]); str->del(strings[4339]); str->del(strings[4349]); strings[4350] = str->add("e,action,mouse,move"); strings[4351] = str->add("e"); strings[4350] = str->add(strings[4350]); strings[4351] = str->add(strings[4351]); strings[4350] = str->add(strings[4350]); strings[4351] = str->add(strings[4351]); strings[4350] = str->add(strings[4350]); strings[4351] = str->add(strings[4351]); str->del(strings[4350]); str->del(strings[4351]); str->del(strings[4350]); str->del(strings[4351]); str->del(strings[4350]); str->del(strings[4351]); str->del(strings[4350]); str->del(strings[4351]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2686]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2572]); str->del(strings[2572]); str->del(strings[2572]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2715]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2231]); str->del(strings[2231]); str->del(strings[2231]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2691]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2338]); str->del(strings[2338]); str->del(strings[2338]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2687]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1619]); str->del(strings[1619]); str->del(strings[1619]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2682]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2552]); str->del(strings[2552]); str->del(strings[2552]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2671]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1712]); str->del(strings[1712]); str->del(strings[1712]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2688]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2863]); str->del(strings[2863]); str->del(strings[2863]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2690]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1721]); str->del(strings[1721]); str->del(strings[1721]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2571]); str->del(strings[2571]); str->del(strings[2571]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2871]); str->del(strings[2572]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2890]); str->del(strings[2231]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2892]); str->del(strings[2338]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2894]); str->del(strings[1619]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2896]); str->del(strings[2552]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2898]); str->del(strings[469]); str->del(strings[2900]); str->del(strings[1712]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2902]); str->del(strings[2863]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2904]); str->del(strings[1721]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[2571]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2671]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2862]); str->del(strings[2862]); str->del(strings[2862]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2680]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2672]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1713]); str->del(strings[1713]); str->del(strings[1713]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2673]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1714]); str->del(strings[1714]); str->del(strings[1714]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2898]); str->del(strings[469]); str->del(strings[2900]); str->del(strings[2862]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3094]); str->del(strings[2514]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3130]); str->del(strings[1713]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3132]); str->del(strings[1714]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); str->del(strings[2074]); str->del(strings[3237]); str->del(strings[2077]); str->del(strings[3238]); str->del(strings[2070]); str->del(strings[3239]); str->del(strings[469]); str->del(strings[2686]); str->del(strings[2572]); str->del(strings[3220]); str->del(strings[3221]); str->del(strings[3222]); str->del(strings[3224]); str->del(strings[3223]); str->del(strings[3225]); str->del(strings[3226]); str->del(strings[3227]); str->del(strings[3228]); str->del(strings[1721]); str->del(strings[3229]); str->del(strings[469]); str->del(strings[2715]); str->del(strings[2231]); str->del(strings[469]); str->del(strings[2691]); str->del(strings[2338]); str->del(strings[469]); str->del(strings[2687]); str->del(strings[2860]); str->del(strings[469]); str->del(strings[2711]); str->del(strings[2494]); str->del(strings[2861]); str->del(strings[469]); str->del(strings[2687]); str->del(strings[1619]); str->del(strings[3155]); str->del(strings[469]); str->del(strings[2682]); str->del(strings[1731]); str->del(strings[469]); str->del(strings[2683]); str->del(strings[3156]); str->del(strings[469]); str->del(strings[2682]); str->del(strings[2552]); str->del(strings[469]); str->del(strings[2671]); str->del(strings[1712]); str->del(strings[469]); str->del(strings[2688]); str->del(strings[2224]); str->del(strings[469]); str->del(strings[2685]); str->del(strings[4]); str->del(strings[1926]); str->del(strings[3083]); str->del(strings[1925]); str->del(strings[469]); str->del(strings[2711]); str->del(strings[2494]); str->del(strings[469]); str->del(strings[2680]); str->del(strings[2514]); str->del(strings[469]); str->del(strings[2713]); str->del(strings[2536]); str->del(strings[469]); str->del(strings[2688]); str->del(strings[2863]); str->del(strings[469]); str->del(strings[2708]); str->del(strings[3001]); str->del(strings[469]); str->del(strings[2677]); str->del(strings[1726]); str->del(strings[469]); str->del(strings[2678]); str->del(strings[3002]); str->del(strings[469]); str->del(strings[2676]); str->del(strings[1724]); str->del(strings[469]); str->del(strings[2675]); str->del(strings[1722]); str->del(strings[469]); str->del(strings[2674]); str->del(strings[3003]); str->del(strings[469]); str->del(strings[2690]); str->del(strings[1721]); str->del(strings[2571]); str->del(strings[469]); str->del(strings[2671]); str->del(strings[2862]); str->del(strings[469]); str->del(strings[2680]); str->del(strings[2514]); str->del(strings[469]); str->del(strings[2672]); str->del(strings[1713]); str->del(strings[469]); str->del(strings[2673]); str->del(strings[1714]); strings[863] = str->add(strings[863]); strings[4352] = str->add("base/theme/borders"); strings[64] = str->add(strings[64]); strings[2578] = str->add(strings[2578]); strings[2578] = str->add(strings[2578]); strings[64] = str->add(strings[64]); strings[64] = str->add(strings[64]); strings[4353] = str->add("load"); strings[332] = str->add(strings[332]); strings[4354] = str->add("resize"); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[332] = str->add(strings[332]); strings[332] = str->add(strings[332]); strings[1842] = str->add(strings[1842]); str->del(strings[332]); strings[64] = str->add(strings[64]); strings[1865] = str->add(strings[1865]); strings[4355] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/2"); strings[64] = str->add(strings[64]); strings[1865] = str->add(strings[1865]); strings[332] = str->add(strings[332]); str->del(strings[332]); strings[64] = str->add(strings[64]); strings[2276] = str->add(strings[2276]); strings[4356] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/16"); strings[64] = str->add(strings[64]); strings[2276] = str->add(strings[2276]); strings[64] = str->add(strings[64]); strings[3259] = str->add(strings[3259]); strings[4357] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/17"); strings[64] = str->add(strings[64]); strings[3259] = str->add(strings[3259]); strings[64] = str->add(strings[64]); strings[3259] = str->add(strings[3259]); strings[64] = str->add(strings[64]); strings[2292] = str->add(strings[2292]); strings[4358] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/18"); strings[64] = str->add(strings[64]); strings[2292] = str->add(strings[2292]); strings[332] = str->add(strings[332]); str->del(strings[332]); strings[332] = str->add(strings[332]); str->del(strings[1842]); strings[332] = str->add(strings[332]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[3279] = str->add(strings[3279]); strings[4359] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/20"); strings[64] = str->add(strings[64]); strings[3279] = str->add(strings[3279]); strings[64] = str->add(strings[64]); strings[2310] = str->add(strings[2310]); strings[4360] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/19"); strings[64] = str->add(strings[64]); strings[2310] = str->add(strings[2310]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[332] = str->add(strings[332]); strings[332] = str->add(strings[332]); strings[332] = str->add(strings[332]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[2085] = str->add(strings[2085]); strings[2085] = str->add(strings[2085]); strings[4354] = str->add(strings[4354]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[4353] = str->add(strings[4353]); strings[1841] = str->add(strings[1841]); str->del(strings[332]); strings[332] = str->add(strings[332]); str->del(strings[332]); strings[332] = str->add(strings[332]); str->del(strings[332]); strings[332] = str->add(strings[332]); str->del(strings[332]); strings[332] = str->add(strings[332]); strings[469] = str->add(strings[469]); strings[2898] = str->add(strings[2898]); strings[469] = str->add(strings[469]); strings[2900] = str->add(strings[2900]); strings[4354] = str->add(strings[4354]); strings[4361] = str->add("e,state,focused"); strings[4362] = str->add("e"); strings[4361] = str->add(strings[4361]); strings[4362] = str->add(strings[4362]); str->del(strings[190]); str->del(strings[331]); str->del(strings[332]); str->del(strings[193]); strings[190] = str->add(strings[190]); strings[4363] = str->add("_about"); strings[332] = str->add(strings[332]); strings[193] = str->add(strings[193]); strings[4364] = str->add("font"); strings[4365] = str->add("font_fallbacks"); strings[4366] = str->add("font_size"); strings[4367] = str->add("font_source"); strings[4368] = str->add("color"); strings[4369] = str->add("underline_color"); strings[4370] = str->add("underline2_color"); strings[4371] = str->add("outline_color"); strings[4372] = str->add("shadow_color"); strings[4373] = str->add("glow_color"); strings[4374] = str->add("glow2_color"); strings[4375] = str->add("backing_color"); strings[4376] = str->add("strikethrough_color"); strings[4377] = str->add("align"); strings[4378] = str->add("valign"); strings[4379] = str->add("wrap"); strings[4380] = str->add("left_margin"); strings[4381] = str->add("right_margin"); strings[4382] = str->add("underline"); strings[4383] = str->add("strikethrough"); strings[4384] = str->add("backing"); strings[4385] = str->add("style"); strings[4386] = str->add("tabstops"); strings[4377] = str->add(strings[4377]); strings[4387] = str->add("center"); str->del(strings[4377]); str->del(strings[4387]); strings[4368] = str->add(strings[4368]); strings[4388] = str->add("#000"); str->del(strings[4368]); str->del(strings[4388]); strings[4385] = str->add(strings[4385]); strings[4389] = str->add("shadow"); str->del(strings[4385]); str->del(strings[4389]); strings[4372] = str->add(strings[4372]); strings[4390] = str->add("#ffffff80"); str->del(strings[4372]); str->del(strings[4390]); strings[4379] = str->add(strings[4379]); strings[4391] = str->add("word"); str->del(strings[4379]); str->del(strings[4391]); strings[4367] = str->add(strings[4367]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4367]); str->del(strings[469]); strings[4366] = str->add(strings[4366]); strings[4392] = str->add("10.000000"); str->del(strings[4366]); str->del(strings[4392]); strings[4364] = str->add(strings[4364]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4364]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4385] = str->add(strings[4385]); strings[4393] = str->add("glow"); str->del(strings[4385]); str->del(strings[4393]); strings[4368] = str->add(strings[4368]); strings[4394] = str->add("#fff"); str->del(strings[4368]); str->del(strings[4394]); strings[4374] = str->add(strings[4374]); strings[4395] = str->add("#fe87"); str->del(strings[4374]); str->del(strings[4395]); strings[4373] = str->add(strings[4373]); strings[4396] = str->add("#fa14"); str->del(strings[4373]); str->del(strings[4396]); strings[4364] = str->add(strings[4364]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4364]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4385] = str->add(strings[4385]); strings[4397] = str->add("glow"); str->del(strings[4385]); str->del(strings[4397]); strings[4368] = str->add(strings[4368]); strings[4398] = str->add("#fff"); str->del(strings[4368]); str->del(strings[4398]); strings[4374] = str->add(strings[4374]); strings[4399] = str->add("#fe87"); str->del(strings[4374]); str->del(strings[4399]); strings[4373] = str->add(strings[4373]); strings[4400] = str->add("#fa14"); str->del(strings[4373]); str->del(strings[4400]); strings[4364] = str->add(strings[4364]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4364]); str->del(strings[471]); str->del(strings[4364]); str->del(strings[4365]); str->del(strings[4366]); str->del(strings[4367]); str->del(strings[4368]); str->del(strings[4369]); str->del(strings[4370]); str->del(strings[4371]); str->del(strings[4372]); str->del(strings[4373]); str->del(strings[4374]); str->del(strings[4375]); str->del(strings[4376]); str->del(strings[4377]); str->del(strings[4378]); str->del(strings[4379]); str->del(strings[4380]); str->del(strings[4381]); str->del(strings[4382]); str->del(strings[4383]); str->del(strings[4384]); str->del(strings[4385]); str->del(strings[4386]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[4401] = str->add("font"); strings[4402] = str->add("font_fallbacks"); strings[4403] = str->add("font_size"); strings[4404] = str->add("font_source"); strings[4405] = str->add("color"); strings[4406] = str->add("underline_color"); strings[4407] = str->add("underline2_color"); strings[4408] = str->add("outline_color"); strings[4409] = str->add("shadow_color"); strings[4410] = str->add("glow_color"); strings[4411] = str->add("glow2_color"); strings[4412] = str->add("backing_color"); strings[4413] = str->add("strikethrough_color"); strings[4414] = str->add("align"); strings[4415] = str->add("valign"); strings[4416] = str->add("wrap"); strings[4417] = str->add("left_margin"); strings[4418] = str->add("right_margin"); strings[4419] = str->add("underline"); strings[4420] = str->add("strikethrough"); strings[4421] = str->add("backing"); strings[4422] = str->add("style"); strings[4423] = str->add("tabstops"); strings[4414] = str->add(strings[4414]); strings[4424] = str->add("center"); str->del(strings[4414]); str->del(strings[4424]); strings[4405] = str->add(strings[4405]); strings[4425] = str->add("#000"); str->del(strings[4405]); str->del(strings[4425]); strings[4422] = str->add(strings[4422]); strings[4426] = str->add("shadow"); str->del(strings[4422]); str->del(strings[4426]); strings[4409] = str->add(strings[4409]); strings[4427] = str->add("#ffffff80"); str->del(strings[4409]); str->del(strings[4427]); strings[4416] = str->add(strings[4416]); strings[4428] = str->add("word"); str->del(strings[4416]); str->del(strings[4428]); strings[4404] = str->add(strings[4404]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4404]); str->del(strings[469]); strings[4403] = str->add(strings[4403]); strings[4429] = str->add("10.000000"); str->del(strings[4403]); str->del(strings[4429]); strings[4401] = str->add(strings[4401]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4401]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4422] = str->add(strings[4422]); strings[4430] = str->add("soft_shadow"); str->del(strings[4422]); str->del(strings[4430]); strings[4405] = str->add(strings[4405]); strings[4431] = str->add("#fff"); str->del(strings[4405]); str->del(strings[4431]); strings[4409] = str->add(strings[4409]); strings[4432] = str->add("#00000020"); str->del(strings[4409]); str->del(strings[4432]); strings[4403] = str->add(strings[4403]); strings[4433] = str->add("12.000000"); str->del(strings[4403]); str->del(strings[4433]); strings[4401] = str->add(strings[4401]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4401]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[4401]); str->del(strings[4402]); str->del(strings[4403]); str->del(strings[4404]); str->del(strings[4405]); str->del(strings[4406]); str->del(strings[4407]); str->del(strings[4408]); str->del(strings[4409]); str->del(strings[4410]); str->del(strings[4411]); str->del(strings[4412]); str->del(strings[4413]); str->del(strings[4414]); str->del(strings[4415]); str->del(strings[4416]); str->del(strings[4417]); str->del(strings[4418]); str->del(strings[4419]); str->del(strings[4420]); str->del(strings[4421]); str->del(strings[4422]); str->del(strings[4423]); strings[4434] = str->add("font"); strings[4435] = str->add("font_fallbacks"); strings[4436] = str->add("font_size"); strings[4437] = str->add("font_source"); strings[4438] = str->add("color"); strings[4439] = str->add("underline_color"); strings[4440] = str->add("underline2_color"); strings[4441] = str->add("outline_color"); strings[4442] = str->add("shadow_color"); strings[4443] = str->add("glow_color"); strings[4444] = str->add("glow2_color"); strings[4445] = str->add("backing_color"); strings[4446] = str->add("strikethrough_color"); strings[4447] = str->add("align"); strings[4448] = str->add("valign"); strings[4449] = str->add("wrap"); strings[4450] = str->add("left_margin"); strings[4451] = str->add("right_margin"); strings[4452] = str->add("underline"); strings[4453] = str->add("strikethrough"); strings[4454] = str->add("backing"); strings[4455] = str->add("style"); strings[4456] = str->add("tabstops"); strings[4447] = str->add(strings[4447]); strings[4457] = str->add("center"); str->del(strings[4447]); str->del(strings[4457]); strings[4438] = str->add(strings[4438]); strings[4458] = str->add("#000"); str->del(strings[4438]); str->del(strings[4458]); strings[4455] = str->add(strings[4455]); strings[4459] = str->add("shadow"); str->del(strings[4455]); str->del(strings[4459]); strings[4442] = str->add(strings[4442]); strings[4460] = str->add("#ffffff80"); str->del(strings[4442]); str->del(strings[4460]); strings[4449] = str->add(strings[4449]); strings[4461] = str->add("word"); str->del(strings[4449]); str->del(strings[4461]); strings[4437] = str->add(strings[4437]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4437]); str->del(strings[469]); strings[4436] = str->add(strings[4436]); strings[4462] = str->add("10.000000"); str->del(strings[4436]); str->del(strings[4462]); strings[4434] = str->add(strings[4434]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4434]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4455] = str->add(strings[4455]); strings[4463] = str->add("soft_shadow"); str->del(strings[4455]); str->del(strings[4463]); strings[4438] = str->add(strings[4438]); strings[4464] = str->add("#fff"); str->del(strings[4438]); str->del(strings[4464]); strings[4442] = str->add(strings[4442]); strings[4465] = str->add("#00000020"); str->del(strings[4442]); str->del(strings[4465]); strings[4436] = str->add(strings[4436]); strings[4466] = str->add("12.000000"); str->del(strings[4436]); str->del(strings[4466]); strings[4434] = str->add(strings[4434]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4434]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[4434]); str->del(strings[4435]); str->del(strings[4436]); str->del(strings[4437]); str->del(strings[4438]); str->del(strings[4439]); str->del(strings[4440]); str->del(strings[4441]); str->del(strings[4442]); str->del(strings[4443]); str->del(strings[4444]); str->del(strings[4445]); str->del(strings[4446]); str->del(strings[4447]); str->del(strings[4448]); str->del(strings[4449]); str->del(strings[4450]); str->del(strings[4451]); str->del(strings[4452]); str->del(strings[4453]); str->del(strings[4454]); str->del(strings[4455]); str->del(strings[4456]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); strings[4467] = str->add("font"); strings[4468] = str->add("font_fallbacks"); strings[4469] = str->add("font_size"); strings[4470] = str->add("font_source"); strings[4471] = str->add("color"); strings[4472] = str->add("underline_color"); strings[4473] = str->add("underline2_color"); strings[4474] = str->add("outline_color"); strings[4475] = str->add("shadow_color"); strings[4476] = str->add("glow_color"); strings[4477] = str->add("glow2_color"); strings[4478] = str->add("backing_color"); strings[4479] = str->add("strikethrough_color"); strings[4480] = str->add("align"); strings[4481] = str->add("valign"); strings[4482] = str->add("wrap"); strings[4483] = str->add("left_margin"); strings[4484] = str->add("right_margin"); strings[4485] = str->add("underline"); strings[4486] = str->add("strikethrough"); strings[4487] = str->add("backing"); strings[4488] = str->add("style"); strings[4489] = str->add("tabstops"); strings[4480] = str->add(strings[4480]); strings[4490] = str->add("center"); str->del(strings[4480]); str->del(strings[4490]); strings[4471] = str->add(strings[4471]); strings[4491] = str->add("#000"); str->del(strings[4471]); str->del(strings[4491]); strings[4488] = str->add(strings[4488]); strings[4492] = str->add("shadow"); str->del(strings[4488]); str->del(strings[4492]); strings[4475] = str->add(strings[4475]); strings[4493] = str->add("#ffffff80"); str->del(strings[4475]); str->del(strings[4493]); strings[4482] = str->add(strings[4482]); strings[4494] = str->add("word"); str->del(strings[4482]); str->del(strings[4494]); strings[4470] = str->add(strings[4470]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4470]); str->del(strings[469]); strings[4469] = str->add(strings[4469]); strings[4495] = str->add("10.000000"); str->del(strings[4469]); str->del(strings[4495]); strings[4467] = str->add(strings[4467]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4467]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4488] = str->add(strings[4488]); strings[4496] = str->add("soft_shadow"); str->del(strings[4488]); str->del(strings[4496]); strings[4471] = str->add(strings[4471]); strings[4497] = str->add("#fff"); str->del(strings[4471]); str->del(strings[4497]); strings[4475] = str->add(strings[4475]); strings[4498] = str->add("#00000020"); str->del(strings[4475]); str->del(strings[4498]); strings[4469] = str->add(strings[4469]); strings[4499] = str->add("12.000000"); str->del(strings[4469]); str->del(strings[4499]); strings[4467] = str->add(strings[4467]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4467]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[4467]); str->del(strings[4468]); str->del(strings[4469]); str->del(strings[4470]); str->del(strings[4471]); str->del(strings[4472]); str->del(strings[4473]); str->del(strings[4474]); str->del(strings[4475]); str->del(strings[4476]); str->del(strings[4477]); str->del(strings[4478]); str->del(strings[4479]); str->del(strings[4480]); str->del(strings[4481]); str->del(strings[4482]); str->del(strings[4483]); str->del(strings[4484]); str->del(strings[4485]); str->del(strings[4486]); str->del(strings[4487]); str->del(strings[4488]); str->del(strings[4489]); str->del(strings[4353]); str->del(strings[4354]); str->del(strings[4354]); str->del(strings[1841]); str->del(strings[4353]); str->del(strings[1841]); str->del(strings[4354]); strings[4500] = str->add("program,start"); strings[4501] = str->add("focus_in"); str->del(strings[4361]); str->del(strings[4362]); str->del(strings[4361]); str->del(strings[4362]); str->del(strings[4500]); str->del(strings[4501]); strings[64] = str->add(strings[64]); strings[2595] = str->add(strings[2595]); strings[2595] = str->add(strings[2595]); strings[4502] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[4502] = str->add(strings[4502]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[4503] = str->add("images/68"); strings[4504] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/68"); strings[64] = str->add(strings[64]); strings[4503] = str->add(strings[4503]); strings[64] = str->add(strings[64]); strings[3259] = str->add(strings[3259]); strings[64] = str->add(strings[64]); strings[3259] = str->add(strings[3259]); strings[469] = str->add(strings[469]); strings[2898] = str->add(strings[2898]); strings[469] = str->add(strings[469]); strings[2900] = str->add(strings[2900]); strings[4505] = str->add("resize"); strings[1933] = str->add(strings[1933]); str->del(strings[4502]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2671]); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[4502] = str->add(strings[4502]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2898] = str->add(strings[2898]); strings[469] = str->add(strings[469]); strings[2900] = str->add(strings[2900]); strings[4505] = str->add(strings[4505]); strings[4506] = str->add("e,state,focused"); strings[4507] = str->add("e"); strings[4508] = str->add("e,action,mouse,move"); strings[4507] = str->add(strings[4507]); strings[4508] = str->add(strings[4508]); strings[4507] = str->add(strings[4507]); strings[4508] = str->add(strings[4508]); strings[4507] = str->add(strings[4507]); strings[4508] = str->add(strings[4508]); strings[4507] = str->add(strings[4507]); strings[4508] = str->add(strings[4508]); strings[4507] = str->add(strings[4507]); strings[1737] = str->add(strings[1737]); strings[1853] = str->add(strings[1853]); strings[4508] = str->add(strings[4508]); strings[4507] = str->add(strings[4507]); strings[4509] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4502]); str->del(strings[1841]); str->del(strings[4505]); str->del(strings[4502]); str->del(strings[1841]); str->del(strings[4505]); strings[4510] = str->add("program,start"); strings[4511] = str->add("focus_in"); strings[1932] = str->add(strings[1932]); strings[4511] = str->add(strings[4511]); str->del(strings[4506]); str->del(strings[4507]); str->del(strings[4508]); str->del(strings[4507]); str->del(strings[4508]); str->del(strings[4507]); str->del(strings[4508]); str->del(strings[4507]); str->del(strings[4508]); str->del(strings[4507]); str->del(strings[4508]); str->del(strings[4507]); str->del(strings[1737]); str->del(strings[1853]); str->del(strings[4508]); str->del(strings[4507]); str->del(strings[4509]); str->del(strings[1853]); str->del(strings[4510]); str->del(strings[4511]); str->del(strings[1932]); str->del(strings[4511]); strings[4512] = str->add("e,action,mouse,move"); strings[4513] = str->add("e"); strings[4514] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4512]); str->del(strings[4513]); str->del(strings[4514]); str->del(strings[1853]); str->del(strings[190]); str->del(strings[4363]); str->del(strings[332]); str->del(strings[193]); strings[190] = str->add(strings[190]); strings[4515] = str->add("_about"); strings[332] = str->add(strings[332]); strings[193] = str->add(strings[193]); strings[4516] = str->add("font"); strings[4517] = str->add("font_fallbacks"); strings[4518] = str->add("font_size"); strings[4519] = str->add("font_source"); strings[4520] = str->add("color"); strings[4521] = str->add("underline_color"); strings[4522] = str->add("underline2_color"); strings[4523] = str->add("outline_color"); strings[4524] = str->add("shadow_color"); strings[4525] = str->add("glow_color"); strings[4526] = str->add("glow2_color"); strings[4527] = str->add("backing_color"); strings[4528] = str->add("strikethrough_color"); strings[4529] = str->add("align"); strings[4530] = str->add("valign"); strings[4531] = str->add("wrap"); strings[4532] = str->add("left_margin"); strings[4533] = str->add("right_margin"); strings[4534] = str->add("underline"); strings[4535] = str->add("strikethrough"); strings[4536] = str->add("backing"); strings[4537] = str->add("style"); strings[4538] = str->add("tabstops"); strings[4529] = str->add(strings[4529]); strings[4539] = str->add("center"); str->del(strings[4529]); str->del(strings[4539]); strings[4520] = str->add(strings[4520]); strings[4540] = str->add("#000"); str->del(strings[4520]); str->del(strings[4540]); strings[4537] = str->add(strings[4537]); strings[4541] = str->add("shadow"); str->del(strings[4537]); str->del(strings[4541]); strings[4524] = str->add(strings[4524]); strings[4542] = str->add("#ffffff80"); str->del(strings[4524]); str->del(strings[4542]); strings[4531] = str->add(strings[4531]); strings[4543] = str->add("word"); str->del(strings[4531]); str->del(strings[4543]); strings[4519] = str->add(strings[4519]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4519]); str->del(strings[469]); strings[4518] = str->add(strings[4518]); strings[4544] = str->add("10.000000"); str->del(strings[4518]); str->del(strings[4544]); strings[4516] = str->add(strings[4516]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4516]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4537] = str->add(strings[4537]); strings[4545] = str->add("glow"); str->del(strings[4537]); str->del(strings[4545]); strings[4520] = str->add(strings[4520]); strings[4546] = str->add("#fff"); str->del(strings[4520]); str->del(strings[4546]); strings[4526] = str->add(strings[4526]); strings[4547] = str->add("#fe87"); str->del(strings[4526]); str->del(strings[4547]); strings[4525] = str->add(strings[4525]); strings[4548] = str->add("#fa14"); str->del(strings[4525]); str->del(strings[4548]); strings[4516] = str->add(strings[4516]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4516]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4537] = str->add(strings[4537]); strings[4549] = str->add("glow"); str->del(strings[4537]); str->del(strings[4549]); strings[4520] = str->add(strings[4520]); strings[4550] = str->add("#fff"); str->del(strings[4520]); str->del(strings[4550]); strings[4526] = str->add(strings[4526]); strings[4551] = str->add("#fe87"); str->del(strings[4526]); str->del(strings[4551]); strings[4525] = str->add(strings[4525]); strings[4552] = str->add("#fa14"); str->del(strings[4525]); str->del(strings[4552]); strings[4516] = str->add(strings[4516]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4516]); str->del(strings[471]); str->del(strings[4516]); str->del(strings[4517]); str->del(strings[4518]); str->del(strings[4519]); str->del(strings[4520]); str->del(strings[4521]); str->del(strings[4522]); str->del(strings[4523]); str->del(strings[4524]); str->del(strings[4525]); str->del(strings[4526]); str->del(strings[4527]); str->del(strings[4528]); str->del(strings[4529]); str->del(strings[4530]); str->del(strings[4531]); str->del(strings[4532]); str->del(strings[4533]); str->del(strings[4534]); str->del(strings[4535]); str->del(strings[4536]); str->del(strings[4537]); str->del(strings[4538]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[4553] = str->add("font"); strings[4554] = str->add("font_fallbacks"); strings[4555] = str->add("font_size"); strings[4556] = str->add("font_source"); strings[4557] = str->add("color"); strings[4558] = str->add("underline_color"); strings[4559] = str->add("underline2_color"); strings[4560] = str->add("outline_color"); strings[4561] = str->add("shadow_color"); strings[4562] = str->add("glow_color"); strings[4563] = str->add("glow2_color"); strings[4564] = str->add("backing_color"); strings[4565] = str->add("strikethrough_color"); strings[4566] = str->add("align"); strings[4567] = str->add("valign"); strings[4568] = str->add("wrap"); strings[4569] = str->add("left_margin"); strings[4570] = str->add("right_margin"); strings[4571] = str->add("underline"); strings[4572] = str->add("strikethrough"); strings[4573] = str->add("backing"); strings[4574] = str->add("style"); strings[4575] = str->add("tabstops"); strings[4566] = str->add(strings[4566]); strings[4576] = str->add("center"); str->del(strings[4566]); str->del(strings[4576]); strings[4557] = str->add(strings[4557]); strings[4577] = str->add("#000"); str->del(strings[4557]); str->del(strings[4577]); strings[4574] = str->add(strings[4574]); strings[4578] = str->add("shadow"); str->del(strings[4574]); str->del(strings[4578]); strings[4561] = str->add(strings[4561]); strings[4579] = str->add("#ffffff80"); str->del(strings[4561]); str->del(strings[4579]); strings[4568] = str->add(strings[4568]); strings[4580] = str->add("word"); str->del(strings[4568]); str->del(strings[4580]); strings[4556] = str->add(strings[4556]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4556]); str->del(strings[469]); strings[4555] = str->add(strings[4555]); strings[4581] = str->add("10.000000"); str->del(strings[4555]); str->del(strings[4581]); strings[4553] = str->add(strings[4553]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4553]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4574] = str->add(strings[4574]); strings[4582] = str->add("soft_shadow"); str->del(strings[4574]); str->del(strings[4582]); strings[4557] = str->add(strings[4557]); strings[4583] = str->add("#fff"); str->del(strings[4557]); str->del(strings[4583]); strings[4561] = str->add(strings[4561]); strings[4584] = str->add("#00000020"); str->del(strings[4561]); str->del(strings[4584]); strings[4555] = str->add(strings[4555]); strings[4585] = str->add("12.000000"); str->del(strings[4555]); str->del(strings[4585]); strings[4553] = str->add(strings[4553]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4553]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[4553]); str->del(strings[4554]); str->del(strings[4555]); str->del(strings[4556]); str->del(strings[4557]); str->del(strings[4558]); str->del(strings[4559]); str->del(strings[4560]); str->del(strings[4561]); str->del(strings[4562]); str->del(strings[4563]); str->del(strings[4564]); str->del(strings[4565]); str->del(strings[4566]); str->del(strings[4567]); str->del(strings[4568]); str->del(strings[4569]); str->del(strings[4570]); str->del(strings[4571]); str->del(strings[4572]); str->del(strings[4573]); str->del(strings[4574]); str->del(strings[4575]); strings[4586] = str->add("font"); strings[4587] = str->add("font_fallbacks"); strings[4588] = str->add("font_size"); strings[4589] = str->add("font_source"); strings[4590] = str->add("color"); strings[4591] = str->add("underline_color"); strings[4592] = str->add("underline2_color"); strings[4593] = str->add("outline_color"); strings[4594] = str->add("shadow_color"); strings[4595] = str->add("glow_color"); strings[4596] = str->add("glow2_color"); strings[4597] = str->add("backing_color"); strings[4598] = str->add("strikethrough_color"); strings[4599] = str->add("align"); strings[4600] = str->add("valign"); strings[4601] = str->add("wrap"); strings[4602] = str->add("left_margin"); strings[4603] = str->add("right_margin"); strings[4604] = str->add("underline"); strings[4605] = str->add("strikethrough"); strings[4606] = str->add("backing"); strings[4607] = str->add("style"); strings[4608] = str->add("tabstops"); strings[4599] = str->add(strings[4599]); strings[4609] = str->add("center"); str->del(strings[4599]); str->del(strings[4609]); strings[4590] = str->add(strings[4590]); strings[4610] = str->add("#000"); str->del(strings[4590]); str->del(strings[4610]); strings[4607] = str->add(strings[4607]); strings[4611] = str->add("shadow"); str->del(strings[4607]); str->del(strings[4611]); strings[4594] = str->add(strings[4594]); strings[4612] = str->add("#ffffff80"); str->del(strings[4594]); str->del(strings[4612]); strings[4601] = str->add(strings[4601]); strings[4613] = str->add("word"); str->del(strings[4601]); str->del(strings[4613]); strings[4589] = str->add(strings[4589]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4589]); str->del(strings[469]); strings[4588] = str->add(strings[4588]); strings[4614] = str->add("10.000000"); str->del(strings[4588]); str->del(strings[4614]); strings[4586] = str->add(strings[4586]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4586]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4607] = str->add(strings[4607]); strings[4615] = str->add("soft_shadow"); str->del(strings[4607]); str->del(strings[4615]); strings[4590] = str->add(strings[4590]); strings[4616] = str->add("#fff"); str->del(strings[4590]); str->del(strings[4616]); strings[4594] = str->add(strings[4594]); strings[4617] = str->add("#00000020"); str->del(strings[4594]); str->del(strings[4617]); strings[4588] = str->add(strings[4588]); strings[4618] = str->add("12.000000"); str->del(strings[4588]); str->del(strings[4618]); strings[4586] = str->add(strings[4586]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4586]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[4586]); str->del(strings[4587]); str->del(strings[4588]); str->del(strings[4589]); str->del(strings[4590]); str->del(strings[4591]); str->del(strings[4592]); str->del(strings[4593]); str->del(strings[4594]); str->del(strings[4595]); str->del(strings[4596]); str->del(strings[4597]); str->del(strings[4598]); str->del(strings[4599]); str->del(strings[4600]); str->del(strings[4601]); str->del(strings[4602]); str->del(strings[4603]); str->del(strings[4604]); str->del(strings[4605]); str->del(strings[4606]); str->del(strings[4607]); str->del(strings[4608]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); strings[4619] = str->add("font"); strings[4620] = str->add("font_fallbacks"); strings[4621] = str->add("font_size"); strings[4622] = str->add("font_source"); strings[4623] = str->add("color"); strings[4624] = str->add("underline_color"); strings[4625] = str->add("underline2_color"); strings[4626] = str->add("outline_color"); strings[4627] = str->add("shadow_color"); strings[4628] = str->add("glow_color"); strings[4629] = str->add("glow2_color"); strings[4630] = str->add("backing_color"); strings[4631] = str->add("strikethrough_color"); strings[4632] = str->add("align"); strings[4633] = str->add("valign"); strings[4634] = str->add("wrap"); strings[4635] = str->add("left_margin"); strings[4636] = str->add("right_margin"); strings[4637] = str->add("underline"); strings[4638] = str->add("strikethrough"); strings[4639] = str->add("backing"); strings[4640] = str->add("style"); strings[4641] = str->add("tabstops"); strings[4632] = str->add(strings[4632]); strings[4642] = str->add("center"); str->del(strings[4632]); str->del(strings[4642]); strings[4623] = str->add(strings[4623]); strings[4643] = str->add("#000"); str->del(strings[4623]); str->del(strings[4643]); strings[4640] = str->add(strings[4640]); strings[4644] = str->add("shadow"); str->del(strings[4640]); str->del(strings[4644]); strings[4627] = str->add(strings[4627]); strings[4645] = str->add("#ffffff80"); str->del(strings[4627]); str->del(strings[4645]); strings[4634] = str->add(strings[4634]); strings[4646] = str->add("word"); str->del(strings[4634]); str->del(strings[4646]); strings[4622] = str->add(strings[4622]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4622]); str->del(strings[469]); strings[4621] = str->add(strings[4621]); strings[4647] = str->add("10.000000"); str->del(strings[4621]); str->del(strings[4647]); strings[4619] = str->add(strings[4619]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4619]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4640] = str->add(strings[4640]); strings[4648] = str->add("soft_shadow"); str->del(strings[4640]); str->del(strings[4648]); strings[4623] = str->add(strings[4623]); strings[4649] = str->add("#fff"); str->del(strings[4623]); str->del(strings[4649]); strings[4627] = str->add(strings[4627]); strings[4650] = str->add("#00000020"); str->del(strings[4627]); str->del(strings[4650]); strings[4621] = str->add(strings[4621]); strings[4651] = str->add("12.000000"); str->del(strings[4621]); str->del(strings[4651]); strings[4619] = str->add(strings[4619]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4619]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[4619]); str->del(strings[4620]); str->del(strings[4621]); str->del(strings[4622]); str->del(strings[4623]); str->del(strings[4624]); str->del(strings[4625]); str->del(strings[4626]); str->del(strings[4627]); str->del(strings[4628]); str->del(strings[4629]); str->del(strings[4630]); str->del(strings[4631]); str->del(strings[4632]); str->del(strings[4633]); str->del(strings[4634]); str->del(strings[4635]); str->del(strings[4636]); str->del(strings[4637]); str->del(strings[4638]); str->del(strings[4639]); str->del(strings[4640]); str->del(strings[4641]); str->del(strings[64]); str->del(strings[4503]); strings[64] = str->add(strings[64]); strings[1869] = str->add(strings[1869]); strings[4652] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/67"); strings[64] = str->add(strings[64]); strings[1869] = str->add(strings[1869]); str->del(strings[7]); str->del(strings[3703]); strings[7] = str->add(strings[7]); strings[3027] = str->add(strings[3027]); strings[4653] = str->add("e,action,mouse,move"); strings[4654] = str->add("e"); strings[4655] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[4653] = str->add(strings[4653]); strings[4654] = str->add(strings[4654]); strings[4655] = str->add(strings[4655]); strings[1853] = str->add(strings[1853]); strings[4653] = str->add(strings[4653]); strings[4654] = str->add(strings[4654]); strings[4655] = str->add(strings[4655]); strings[1853] = str->add(strings[1853]); strings[4653] = str->add(strings[4653]); strings[4654] = str->add(strings[4654]); strings[4655] = str->add(strings[4655]); strings[1853] = str->add(strings[1853]); str->del(strings[4653]); str->del(strings[4654]); str->del(strings[4655]); str->del(strings[1853]); str->del(strings[4653]); str->del(strings[4654]); str->del(strings[4655]); str->del(strings[1853]); str->del(strings[4653]); str->del(strings[4654]); str->del(strings[4655]); str->del(strings[1853]); str->del(strings[4653]); str->del(strings[4654]); str->del(strings[4655]); str->del(strings[1853]); str->del(strings[469]); str->del(strings[2898]); str->del(strings[469]); str->del(strings[2900]); str->del(strings[7]); str->del(strings[3027]); strings[7] = str->add(strings[7]); strings[3033] = str->add(strings[3033]); strings[4656] = str->add("e,action,mouse,move"); strings[4657] = str->add("e"); strings[4658] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[4656] = str->add(strings[4656]); strings[4657] = str->add(strings[4657]); strings[4658] = str->add(strings[4658]); strings[1853] = str->add(strings[1853]); str->del(strings[4656]); str->del(strings[4657]); str->del(strings[4658]); str->del(strings[1853]); str->del(strings[4656]); str->del(strings[4657]); str->del(strings[4658]); str->del(strings[1853]); strings[4659] = str->add("e,action,mouse,move"); strings[4660] = str->add("e"); strings[4661] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4659]); str->del(strings[4660]); str->del(strings[4661]); str->del(strings[1853]); strings[4662] = str->add("e,action,mouse,move"); strings[4663] = str->add("e"); strings[4664] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4662]); str->del(strings[4663]); str->del(strings[4664]); str->del(strings[1853]); strings[4665] = str->add("e,action,mouse,move"); strings[4666] = str->add("e"); strings[4667] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4665]); str->del(strings[4666]); str->del(strings[4667]); str->del(strings[1853]); strings[4668] = str->add("e,action,mouse,move"); strings[4669] = str->add("e"); strings[4670] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4668]); str->del(strings[4669]); str->del(strings[4670]); str->del(strings[1853]); strings[4671] = str->add("e,action,mouse,move"); strings[4672] = str->add("e"); strings[4673] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4671]); str->del(strings[4672]); str->del(strings[4673]); str->del(strings[1853]); strings[4674] = str->add("e,action,mouse,move"); strings[4675] = str->add("e"); strings[4676] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4674]); str->del(strings[4675]); str->del(strings[4676]); str->del(strings[1853]); strings[4677] = str->add("e,action,mouse,move"); strings[4678] = str->add("e"); strings[4679] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4677]); str->del(strings[4678]); str->del(strings[4679]); str->del(strings[1853]); strings[4680] = str->add("e,action,mouse,move"); strings[4681] = str->add("e"); strings[4682] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4680]); str->del(strings[4681]); str->del(strings[4682]); str->del(strings[1853]); strings[4683] = str->add("e,action,mouse,move"); strings[4684] = str->add("e"); strings[4685] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4683]); str->del(strings[4684]); str->del(strings[4685]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[3033]); strings[7] = str->add(strings[7]); strings[2062] = str->add(strings[2062]); strings[4686] = str->add("e,action,mouse,move"); strings[4687] = str->add("e"); strings[4688] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4686]); str->del(strings[4687]); str->del(strings[4688]); str->del(strings[1853]); strings[4689] = str->add("e,action,mouse,move"); strings[4690] = str->add("e"); strings[4691] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4689]); str->del(strings[4690]); str->del(strings[4691]); str->del(strings[1853]); strings[4692] = str->add("e,action,mouse,move"); strings[4693] = str->add("e"); strings[4694] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4692]); str->del(strings[4693]); str->del(strings[4694]); str->del(strings[1853]); strings[4695] = str->add("e,action,mouse,move"); strings[4696] = str->add("e"); strings[4697] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4695]); str->del(strings[4696]); str->del(strings[4697]); str->del(strings[1853]); strings[4698] = str->add("e,action,mouse,move"); strings[4699] = str->add("e"); strings[4700] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4698]); str->del(strings[4699]); str->del(strings[4700]); str->del(strings[1853]); strings[4701] = str->add("e,action,mouse,move"); strings[4702] = str->add("e"); strings[4703] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4701]); str->del(strings[4702]); str->del(strings[4703]); str->del(strings[1853]); strings[4704] = str->add("e,action,mouse,move"); strings[4705] = str->add("e"); strings[1740] = str->add(strings[1740]); strings[1853] = str->add(strings[1853]); strings[1737] = str->add(strings[1737]); strings[1856] = str->add(strings[1856]); str->del(strings[4704]); str->del(strings[4705]); str->del(strings[1740]); str->del(strings[1853]); str->del(strings[1737]); str->del(strings[1856]); strings[4706] = str->add("e,action,mouse,move"); strings[4707] = str->add("e"); strings[4708] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); str->del(strings[4706]); str->del(strings[4707]); str->del(strings[4708]); str->del(strings[1856]); strings[4709] = str->add("program,start"); strings[4710] = str->add("go_active28"); strings[1932] = str->add(strings[1932]); strings[4710] = str->add(strings[4710]); strings[4709] = str->add(strings[4709]); strings[4711] = str->add("go_activeb28"); strings[4709] = str->add(strings[4709]); strings[4712] = str->add("go_active2"); strings[1932] = str->add(strings[1932]); strings[4712] = str->add(strings[4712]); strings[4709] = str->add(strings[4709]); strings[4713] = str->add("go_activeb2"); str->del(strings[4709]); str->del(strings[4710]); str->del(strings[1932]); str->del(strings[4710]); str->del(strings[4709]); str->del(strings[4711]); str->del(strings[4709]); str->del(strings[4712]); str->del(strings[1932]); str->del(strings[4712]); str->del(strings[4709]); str->del(strings[4713]); str->del(strings[7]); str->del(strings[2062]); strings[7] = str->add(strings[7]); strings[3100] = str->add(strings[3100]); strings[4714] = str->add("e,action,mouse,move"); strings[4715] = str->add("e"); strings[4716] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); str->del(strings[4714]); str->del(strings[4715]); str->del(strings[4716]); str->del(strings[1856]); strings[4717] = str->add("e,action,mouse,move"); strings[4718] = str->add("e"); strings[4719] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); str->del(strings[4717]); str->del(strings[4718]); str->del(strings[4719]); str->del(strings[1856]); strings[4720] = str->add("e,action,mouse,move"); strings[4721] = str->add("e"); strings[4722] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); str->del(strings[4720]); str->del(strings[4721]); str->del(strings[4722]); str->del(strings[1856]); strings[4723] = str->add("e,action,mouse,move"); strings[4724] = str->add("e"); strings[1740] = str->add(strings[1740]); strings[1856] = str->add(strings[1856]); strings[1737] = str->add(strings[1737]); strings[1862] = str->add(strings[1862]); str->del(strings[4723]); str->del(strings[4724]); str->del(strings[1740]); str->del(strings[1856]); str->del(strings[1737]); str->del(strings[1862]); strings[1932] = str->add(strings[1932]); strings[4725] = str->add("focus_in"); str->del(strings[1932]); str->del(strings[4725]); strings[4726] = str->add("e,action,mouse,move"); strings[4727] = str->add("e"); strings[4728] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4726]); str->del(strings[4727]); str->del(strings[4728]); str->del(strings[1862]); strings[4729] = str->add("e,action,mouse,move"); strings[4730] = str->add("e"); strings[4731] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4729]); str->del(strings[4730]); str->del(strings[4731]); str->del(strings[1862]); strings[4732] = str->add("e,action,mouse,move"); strings[4733] = str->add("e"); strings[4734] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4732]); str->del(strings[4733]); str->del(strings[4734]); str->del(strings[1862]); strings[4735] = str->add("e,action,mouse,move"); strings[4736] = str->add("e"); strings[4737] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4735]); str->del(strings[4736]); str->del(strings[4737]); str->del(strings[1862]); strings[4738] = str->add("e,action,mouse,move"); strings[4739] = str->add("e"); strings[4740] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4738]); str->del(strings[4739]); str->del(strings[4740]); str->del(strings[1862]); str->del(strings[7]); str->del(strings[3100]); strings[7] = str->add(strings[7]); strings[3111] = str->add(strings[3111]); strings[4741] = str->add("e,action,mouse,move"); strings[4742] = str->add("e"); strings[4743] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4741]); str->del(strings[4742]); str->del(strings[4743]); str->del(strings[1862]); strings[4744] = str->add("e,action,mouse,move"); strings[4745] = str->add("e"); strings[4746] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4744]); str->del(strings[4745]); str->del(strings[4746]); str->del(strings[1862]); strings[4747] = str->add("e,action,mouse,move"); strings[4748] = str->add("e"); strings[4749] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4747]); str->del(strings[4748]); str->del(strings[4749]); str->del(strings[1862]); strings[4750] = str->add("e,action,mouse,move"); strings[4751] = str->add("e"); strings[4752] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4750]); str->del(strings[4751]); str->del(strings[4752]); str->del(strings[1862]); strings[1932] = str->add(strings[1932]); strings[4753] = str->add("off"); str->del(strings[1932]); str->del(strings[4753]); str->del(strings[7]); str->del(strings[3111]); strings[7] = str->add(strings[7]); strings[3136] = str->add(strings[3136]); strings[4754] = str->add("e,action,mouse,move"); strings[4755] = str->add("e"); strings[4756] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4754]); str->del(strings[4755]); str->del(strings[4756]); str->del(strings[1862]); strings[4757] = str->add("e,action,mouse,move"); strings[4758] = str->add("e"); strings[4759] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4757]); str->del(strings[4758]); str->del(strings[4759]); str->del(strings[1862]); strings[4760] = str->add("e,action,mouse,move"); strings[4761] = str->add("e"); strings[4762] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4760]); str->del(strings[4761]); str->del(strings[4762]); str->del(strings[1862]); strings[4763] = str->add("e,action,mouse,move"); strings[4764] = str->add("e"); strings[4765] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4763]); str->del(strings[4764]); str->del(strings[4765]); str->del(strings[1862]); strings[4766] = str->add("e,action,mouse,move"); strings[4767] = str->add("e"); strings[4768] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4766]); str->del(strings[4767]); str->del(strings[4768]); str->del(strings[1862]); strings[4769] = str->add("e,action,mouse,move"); strings[4770] = str->add("e"); strings[4771] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4769]); str->del(strings[4770]); str->del(strings[4771]); str->del(strings[1862]); strings[4772] = str->add("e,action,mouse,move"); strings[4773] = str->add("e"); strings[4774] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4772]); str->del(strings[4773]); str->del(strings[4774]); str->del(strings[1862]); strings[4775] = str->add("e,action,mouse,move"); strings[4776] = str->add("e"); strings[4777] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4775]); str->del(strings[4776]); str->del(strings[4777]); str->del(strings[1862]); strings[4778] = str->add("e,action,mouse,move"); strings[4779] = str->add("e"); strings[4780] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4778]); str->del(strings[4779]); str->del(strings[4780]); str->del(strings[1862]); strings[4781] = str->add("e,action,mouse,move"); strings[4782] = str->add("e"); strings[4783] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4781]); str->del(strings[4782]); str->del(strings[4783]); str->del(strings[1862]); strings[4784] = str->add("e,action,mouse,move"); strings[4785] = str->add("e"); strings[4786] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4784]); str->del(strings[4785]); str->del(strings[4786]); str->del(strings[1862]); strings[4787] = str->add("e,action,mouse,move"); strings[4788] = str->add("e"); strings[4789] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4787]); str->del(strings[4788]); str->del(strings[4789]); str->del(strings[1862]); strings[4790] = str->add("program,start"); strings[4791] = str->add("go_active27"); strings[1932] = str->add(strings[1932]); strings[4791] = str->add(strings[4791]); strings[4790] = str->add(strings[4790]); strings[4792] = str->add("go_activeb27"); strings[4790] = str->add(strings[4790]); strings[4793] = str->add("go_active3"); strings[1932] = str->add(strings[1932]); strings[4793] = str->add(strings[4793]); strings[4790] = str->add(strings[4790]); strings[4794] = str->add("go_activeb3"); str->del(strings[4790]); str->del(strings[4791]); str->del(strings[1932]); str->del(strings[4791]); str->del(strings[4790]); str->del(strings[4792]); str->del(strings[4790]); str->del(strings[4793]); str->del(strings[1932]); str->del(strings[4793]); str->del(strings[4790]); str->del(strings[4794]); str->del(strings[7]); str->del(strings[3136]); strings[7] = str->add(strings[7]); strings[3167] = str->add(strings[3167]); strings[4795] = str->add("e,action,mouse,move"); strings[4796] = str->add("e"); strings[4797] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[4795]); str->del(strings[4796]); str->del(strings[4797]); str->del(strings[1862]); strings[4798] = str->add("e,action,mouse,move"); strings[4799] = str->add("e"); strings[1740] = str->add(strings[1740]); strings[1862] = str->add(strings[1862]); strings[1737] = str->add(strings[1737]); strings[1856] = str->add(strings[1856]); str->del(strings[4798]); str->del(strings[4799]); str->del(strings[1740]); str->del(strings[1862]); str->del(strings[1737]); str->del(strings[1856]); strings[4800] = str->add("e,action,mouse,move"); strings[4801] = str->add("e"); strings[4802] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); str->del(strings[4800]); str->del(strings[4801]); str->del(strings[4802]); str->del(strings[1856]); strings[4803] = str->add("e,action,mouse,move"); strings[4804] = str->add("e"); strings[4805] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); str->del(strings[4803]); str->del(strings[4804]); str->del(strings[4805]); str->del(strings[1856]); strings[4806] = str->add("e,action,mouse,move"); strings[4807] = str->add("e"); strings[4808] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); str->del(strings[4806]); str->del(strings[4807]); str->del(strings[4808]); str->del(strings[1856]); strings[4809] = str->add("e,action,mouse,move"); strings[4810] = str->add("e"); strings[4811] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); str->del(strings[4809]); str->del(strings[4810]); str->del(strings[4811]); str->del(strings[1856]); strings[4812] = str->add("e,action,mouse,move"); strings[4813] = str->add("e"); strings[1740] = str->add(strings[1740]); strings[1856] = str->add(strings[1856]); strings[1737] = str->add(strings[1737]); strings[1853] = str->add(strings[1853]); str->del(strings[4812]); str->del(strings[4813]); str->del(strings[1740]); str->del(strings[1856]); str->del(strings[1737]); str->del(strings[1853]); strings[4814] = str->add("e,action,mouse,move"); strings[4815] = str->add("e"); strings[4816] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[4814]); str->del(strings[4815]); str->del(strings[4816]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[3167]); strings[7] = str->add(strings[7]); strings[3190] = str->add(strings[3190]); strings[4817] = str->add("e,action,mouse,move"); strings[4818] = str->add("e"); strings[4819] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[1740] = str->add(strings[1740]); strings[1853] = str->add(strings[1853]); strings[4817] = str->add(strings[4817]); strings[4818] = str->add(strings[4818]); strings[4817] = str->add(strings[4817]); strings[4818] = str->add(strings[4818]); strings[4820] = str->add("e,state,focused"); strings[4818] = str->add(strings[4818]); str->del(strings[4817]); str->del(strings[4818]); str->del(strings[4819]); str->del(strings[1853]); str->del(strings[1740]); str->del(strings[1853]); str->del(strings[4817]); str->del(strings[4818]); str->del(strings[4817]); str->del(strings[4818]); str->del(strings[4820]); str->del(strings[4818]); strings[4821] = str->add("e,action,mouse,move"); strings[4822] = str->add("e"); str->del(strings[4821]); str->del(strings[4822]); strings[4823] = str->add("e,action,mouse,move"); strings[4824] = str->add("e"); str->del(strings[4823]); str->del(strings[4824]); strings[4825] = str->add("e,action,mouse,move"); strings[4826] = str->add("e"); str->del(strings[4825]); str->del(strings[4826]); strings[1932] = str->add(strings[1932]); strings[4827] = str->add("go_activeb1"); strings[4828] = str->add("program,start"); strings[4829] = str->add("go_activec1"); strings[1932] = str->add(strings[1932]); strings[4830] = str->add("go_activeb29"); strings[4828] = str->add(strings[4828]); strings[4831] = str->add("go_activec29"); str->del(strings[1932]); str->del(strings[4827]); str->del(strings[4828]); str->del(strings[4829]); str->del(strings[1932]); str->del(strings[4830]); str->del(strings[4828]); str->del(strings[4831]); str->del(strings[7]); str->del(strings[3190]); strings[7] = str->add(strings[7]); strings[2148] = str->add(strings[2148]); strings[4832] = str->add("e,action,mouse,move"); strings[4833] = str->add("e"); strings[1737] = str->add(strings[1737]); strings[4834] = str->add("base2"); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); str->del(strings[4832]); str->del(strings[4833]); str->del(strings[1737]); str->del(strings[4834]); str->del(strings[1737]); str->del(strings[1946]); str->del(strings[1737]); str->del(strings[1946]); strings[4835] = str->add("e,action,mouse,move"); strings[4836] = str->add("e"); strings[4837] = str->add("mouse,move"); strings[4838] = str->add("base2"); strings[4837] = str->add(strings[4837]); strings[1946] = str->add(strings[1946]); strings[4837] = str->add(strings[4837]); strings[1946] = str->add(strings[1946]); str->del(strings[4835]); str->del(strings[4836]); str->del(strings[4837]); str->del(strings[4838]); str->del(strings[4837]); str->del(strings[1946]); str->del(strings[4837]); str->del(strings[1946]); strings[4839] = str->add("e,action,mouse,move"); strings[4840] = str->add("e"); strings[4841] = str->add("mouse,move"); strings[4842] = str->add("base2"); strings[4841] = str->add(strings[4841]); strings[1946] = str->add(strings[1946]); strings[4841] = str->add(strings[4841]); strings[1946] = str->add(strings[1946]); str->del(strings[4839]); str->del(strings[4840]); str->del(strings[4841]); str->del(strings[4842]); str->del(strings[4841]); str->del(strings[1946]); str->del(strings[4841]); str->del(strings[1946]); strings[4843] = str->add("e,action,mouse,move"); strings[4844] = str->add("e"); strings[4845] = str->add("mouse,move"); strings[4846] = str->add("base2"); strings[4845] = str->add(strings[4845]); strings[1946] = str->add(strings[1946]); strings[4845] = str->add(strings[4845]); strings[1946] = str->add(strings[1946]); str->del(strings[4843]); str->del(strings[4844]); str->del(strings[4845]); str->del(strings[4846]); str->del(strings[4845]); str->del(strings[1946]); str->del(strings[4845]); str->del(strings[1946]); strings[4847] = str->add("e,action,mouse,move"); strings[4848] = str->add("e"); strings[1740] = str->add(strings[1740]); strings[4849] = str->add("base2"); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); strings[1737] = str->add(strings[1737]); strings[4850] = str->add("icon_area"); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); str->del(strings[4847]); str->del(strings[4848]); str->del(strings[1740]); str->del(strings[4849]); str->del(strings[1740]); str->del(strings[1946]); str->del(strings[1740]); str->del(strings[1946]); str->del(strings[1737]); str->del(strings[4850]); str->del(strings[1737]); str->del(strings[1946]); str->del(strings[1737]); str->del(strings[1946]); str->del(strings[1737]); str->del(strings[1946]); strings[4851] = str->add("e,action,mouse,move"); strings[4852] = str->add("e"); strings[4853] = str->add("mouse,move"); strings[4854] = str->add("icon_area"); strings[4853] = str->add(strings[4853]); strings[1946] = str->add(strings[1946]); strings[4853] = str->add(strings[4853]); strings[1946] = str->add(strings[1946]); strings[4853] = str->add(strings[4853]); strings[1946] = str->add(strings[1946]); str->del(strings[4851]); str->del(strings[4852]); str->del(strings[4853]); str->del(strings[4854]); str->del(strings[4853]); str->del(strings[1946]); str->del(strings[4853]); str->del(strings[1946]); str->del(strings[4853]); str->del(strings[1946]); strings[4855] = str->add("e,action,mouse,move"); strings[4856] = str->add("e"); strings[1740] = str->add(strings[1740]); strings[4857] = str->add("icon_area"); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); strings[1737] = str->add(strings[1737]); strings[4858] = str->add("base2"); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); str->del(strings[4855]); str->del(strings[4856]); str->del(strings[1740]); str->del(strings[4857]); str->del(strings[1740]); str->del(strings[1946]); str->del(strings[1740]); str->del(strings[1946]); str->del(strings[1740]); str->del(strings[1946]); str->del(strings[1737]); str->del(strings[4858]); str->del(strings[1737]); str->del(strings[1946]); str->del(strings[1737]); str->del(strings[1946]); strings[4859] = str->add("e,action,mouse,move"); strings[4860] = str->add("e"); strings[4861] = str->add("mouse,move"); strings[4862] = str->add("base2"); strings[4861] = str->add(strings[4861]); strings[1946] = str->add(strings[1946]); strings[4861] = str->add(strings[4861]); strings[1946] = str->add(strings[1946]); str->del(strings[4859]); str->del(strings[4860]); str->del(strings[4861]); str->del(strings[4862]); str->del(strings[4861]); str->del(strings[1946]); str->del(strings[4861]); str->del(strings[1946]); str->del(strings[7]); str->del(strings[2148]); strings[7] = str->add(strings[7]); strings[2150] = str->add(strings[2150]); strings[4863] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/61"); strings[7] = str->add(strings[7]); strings[2150] = str->add(strings[2150]); strings[4864] = str->add("e,action,mouse,move"); strings[4865] = str->add("e"); strings[4866] = str->add("mouse,move"); strings[4867] = str->add("base2"); strings[4866] = str->add(strings[4866]); strings[1946] = str->add(strings[1946]); strings[4866] = str->add(strings[4866]); strings[1946] = str->add(strings[1946]); str->del(strings[4864]); str->del(strings[4865]); str->del(strings[4866]); str->del(strings[4867]); str->del(strings[4866]); str->del(strings[1946]); str->del(strings[4866]); str->del(strings[1946]); strings[4868] = str->add("e,action,mouse,move"); strings[4869] = str->add("e"); strings[4870] = str->add("mouse,move"); strings[4871] = str->add("base2"); strings[4870] = str->add(strings[4870]); strings[1946] = str->add(strings[1946]); strings[4870] = str->add(strings[4870]); strings[1946] = str->add(strings[1946]); str->del(strings[4868]); str->del(strings[4869]); str->del(strings[4870]); str->del(strings[4871]); str->del(strings[4870]); str->del(strings[1946]); str->del(strings[4870]); str->del(strings[1946]); strings[4872] = str->add("e,action,mouse,move"); strings[4873] = str->add("e"); strings[4874] = str->add("mouse,move"); strings[4875] = str->add("base2"); strings[4874] = str->add(strings[4874]); strings[1946] = str->add(strings[1946]); strings[4874] = str->add(strings[4874]); strings[1946] = str->add(strings[1946]); str->del(strings[4872]); str->del(strings[4873]); str->del(strings[4874]); str->del(strings[4875]); str->del(strings[4874]); str->del(strings[1946]); str->del(strings[4874]); str->del(strings[1946]); strings[4876] = str->add("e,action,mouse,move"); strings[4877] = str->add("e"); strings[4878] = str->add("mouse,move"); strings[4879] = str->add("base2"); strings[4878] = str->add(strings[4878]); strings[1946] = str->add(strings[1946]); strings[4878] = str->add(strings[4878]); strings[1946] = str->add(strings[1946]); str->del(strings[4876]); str->del(strings[4877]); str->del(strings[4878]); str->del(strings[4879]); str->del(strings[4878]); str->del(strings[1946]); str->del(strings[4878]); str->del(strings[1946]); strings[4880] = str->add("program,start"); strings[4881] = str->add("go_active26"); strings[1932] = str->add(strings[1932]); strings[4881] = str->add(strings[4881]); strings[4880] = str->add(strings[4880]); strings[4882] = str->add("go_activeb26"); strings[4880] = str->add(strings[4880]); strings[4883] = str->add("go_active4"); strings[1932] = str->add(strings[1932]); strings[4883] = str->add(strings[4883]); strings[4880] = str->add(strings[4880]); strings[4884] = str->add("go_activeb4"); str->del(strings[4880]); str->del(strings[4881]); str->del(strings[1932]); str->del(strings[4881]); str->del(strings[4880]); str->del(strings[4882]); str->del(strings[4880]); str->del(strings[4883]); str->del(strings[1932]); str->del(strings[4883]); str->del(strings[4880]); str->del(strings[4884]); strings[4885] = str->add("e,action,mouse,move"); strings[4886] = str->add("e"); strings[4887] = str->add("mouse,move"); strings[4888] = str->add("base2"); strings[4887] = str->add(strings[4887]); strings[1946] = str->add(strings[1946]); strings[4887] = str->add(strings[4887]); strings[1946] = str->add(strings[1946]); str->del(strings[4885]); str->del(strings[4886]); str->del(strings[4887]); str->del(strings[4888]); str->del(strings[4887]); str->del(strings[1946]); str->del(strings[4887]); str->del(strings[1946]); strings[4889] = str->add("e,action,mouse,move"); strings[4890] = str->add("e"); strings[4891] = str->add("mouse,move"); strings[4892] = str->add("base2"); strings[4891] = str->add(strings[4891]); strings[1946] = str->add(strings[1946]); strings[4891] = str->add(strings[4891]); strings[1946] = str->add(strings[1946]); str->del(strings[4889]); str->del(strings[4890]); str->del(strings[4891]); str->del(strings[4892]); str->del(strings[4891]); str->del(strings[1946]); str->del(strings[4891]); str->del(strings[1946]); strings[4893] = str->add("e,action,mouse,move"); strings[4894] = str->add("e"); strings[1740] = str->add(strings[1740]); strings[4895] = str->add("base2"); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); strings[1737] = str->add(strings[1737]); strings[377] = str->add(strings[377]); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); str->del(strings[4893]); str->del(strings[4894]); str->del(strings[1740]); str->del(strings[4895]); str->del(strings[1740]); str->del(strings[1946]); str->del(strings[1740]); str->del(strings[1946]); str->del(strings[1737]); str->del(strings[377]); str->del(strings[1737]); str->del(strings[1946]); str->del(strings[1737]); str->del(strings[1946]); strings[4896] = str->add("e,action,mouse,move"); strings[4897] = str->add("e"); strings[1740] = str->add(strings[1740]); strings[377] = str->add(strings[377]); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); str->del(strings[4896]); str->del(strings[4897]); str->del(strings[1740]); str->del(strings[377]); str->del(strings[1740]); str->del(strings[1946]); str->del(strings[1740]); str->del(strings[1946]); strings[4898] = str->add("e,action,mouse,move"); strings[4899] = str->add("e"); str->del(strings[4898]); str->del(strings[4899]); strings[4900] = str->add("e,action,mouse,move"); strings[4901] = str->add("e"); str->del(strings[4900]); str->del(strings[4901]); strings[4902] = str->add("e,action,mouse,move"); strings[4903] = str->add("e"); strings[1737] = str->add(strings[1737]); strings[377] = str->add(strings[377]); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); str->del(strings[4902]); str->del(strings[4903]); str->del(strings[1737]); str->del(strings[377]); str->del(strings[1737]); str->del(strings[1946]); str->del(strings[1737]); str->del(strings[1946]); strings[4904] = str->add("e,action,mouse,move"); strings[4905] = str->add("e"); strings[4906] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[4906] = str->add(strings[4906]); strings[1946] = str->add(strings[1946]); strings[4906] = str->add(strings[4906]); strings[1946] = str->add(strings[1946]); str->del(strings[4904]); str->del(strings[4905]); str->del(strings[4906]); str->del(strings[377]); str->del(strings[4906]); str->del(strings[1946]); str->del(strings[4906]); str->del(strings[1946]); strings[4907] = str->add("e,action,mouse,move"); strings[4908] = str->add("e"); strings[4909] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[4909] = str->add(strings[4909]); strings[1946] = str->add(strings[1946]); strings[4909] = str->add(strings[4909]); strings[1946] = str->add(strings[1946]); str->del(strings[4907]); str->del(strings[4908]); str->del(strings[4909]); str->del(strings[377]); str->del(strings[4909]); str->del(strings[1946]); str->del(strings[4909]); str->del(strings[1946]); str->del(strings[7]); str->del(strings[2150]); strings[7] = str->add(strings[7]); strings[1966] = str->add(strings[1966]); strings[4910] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/62"); strings[7] = str->add(strings[7]); strings[1966] = str->add(strings[1966]); strings[4911] = str->add("e,action,mouse,move"); strings[4912] = str->add("e"); strings[4913] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[4913] = str->add(strings[4913]); strings[1946] = str->add(strings[1946]); strings[4913] = str->add(strings[4913]); strings[1946] = str->add(strings[1946]); str->del(strings[4911]); str->del(strings[4912]); str->del(strings[4913]); str->del(strings[377]); str->del(strings[4913]); str->del(strings[1946]); str->del(strings[4913]); str->del(strings[1946]); strings[4914] = str->add("e,action,mouse,move"); strings[4915] = str->add("e"); strings[4916] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[4916] = str->add(strings[4916]); strings[1946] = str->add(strings[1946]); strings[4916] = str->add(strings[4916]); strings[1946] = str->add(strings[1946]); str->del(strings[4914]); str->del(strings[4915]); str->del(strings[4916]); str->del(strings[377]); str->del(strings[4916]); str->del(strings[1946]); str->del(strings[4916]); str->del(strings[1946]); strings[4917] = str->add("e,action,mouse,move"); strings[4918] = str->add("e"); strings[4919] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[4919] = str->add(strings[4919]); strings[1946] = str->add(strings[1946]); strings[4919] = str->add(strings[4919]); strings[1946] = str->add(strings[1946]); str->del(strings[4917]); str->del(strings[4918]); str->del(strings[4919]); str->del(strings[377]); str->del(strings[4919]); str->del(strings[1946]); str->del(strings[4919]); str->del(strings[1946]); strings[4920] = str->add("e,action,mouse,move"); strings[4921] = str->add("e"); strings[4922] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[4922] = str->add(strings[4922]); strings[1946] = str->add(strings[1946]); strings[4922] = str->add(strings[4922]); strings[1946] = str->add(strings[1946]); str->del(strings[4920]); str->del(strings[4921]); str->del(strings[4922]); str->del(strings[377]); str->del(strings[4922]); str->del(strings[1946]); str->del(strings[4922]); str->del(strings[1946]); strings[1932] = str->add(strings[1932]); strings[4923] = str->add("go_activeb28"); strings[4924] = str->add("program,start"); strings[4925] = str->add("go_activec28"); strings[1932] = str->add(strings[1932]); strings[4926] = str->add("go_activeb2"); strings[4924] = str->add(strings[4924]); strings[4927] = str->add("go_activec2"); str->del(strings[1932]); str->del(strings[4923]); str->del(strings[4924]); str->del(strings[4925]); str->del(strings[1932]); str->del(strings[4926]); str->del(strings[4924]); str->del(strings[4927]); str->del(strings[7]); str->del(strings[1966]); strings[7] = str->add(strings[7]); strings[1964] = str->add(strings[1964]); strings[4928] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/63"); strings[7] = str->add(strings[7]); strings[1964] = str->add(strings[1964]); strings[4929] = str->add("e,action,mouse,move"); strings[4930] = str->add("e"); strings[4931] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[4931] = str->add(strings[4931]); strings[1946] = str->add(strings[1946]); strings[4931] = str->add(strings[4931]); strings[1946] = str->add(strings[1946]); str->del(strings[4929]); str->del(strings[4930]); str->del(strings[4931]); str->del(strings[377]); str->del(strings[4931]); str->del(strings[1946]); str->del(strings[4931]); str->del(strings[1946]); strings[4932] = str->add("e,action,mouse,move"); strings[4933] = str->add("e"); strings[4934] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[4934] = str->add(strings[4934]); strings[1946] = str->add(strings[1946]); strings[4934] = str->add(strings[4934]); strings[1946] = str->add(strings[1946]); str->del(strings[4932]); str->del(strings[4933]); str->del(strings[4934]); str->del(strings[377]); str->del(strings[4934]); str->del(strings[1946]); str->del(strings[4934]); str->del(strings[1946]); strings[4935] = str->add("e,action,mouse,move"); strings[4936] = str->add("e"); strings[4937] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[4937] = str->add(strings[4937]); strings[1946] = str->add(strings[1946]); strings[4937] = str->add(strings[4937]); strings[1946] = str->add(strings[1946]); str->del(strings[4935]); str->del(strings[4936]); str->del(strings[4937]); str->del(strings[377]); str->del(strings[4937]); str->del(strings[1946]); str->del(strings[4937]); str->del(strings[1946]); strings[4938] = str->add("e,action,mouse,move"); strings[4939] = str->add("e"); strings[4940] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[4940] = str->add(strings[4940]); strings[1946] = str->add(strings[1946]); strings[4940] = str->add(strings[4940]); strings[1946] = str->add(strings[1946]); str->del(strings[4938]); str->del(strings[4939]); str->del(strings[4940]); str->del(strings[377]); str->del(strings[4940]); str->del(strings[1946]); str->del(strings[4940]); str->del(strings[1946]); str->del(strings[7]); str->del(strings[1964]); strings[7] = str->add(strings[7]); strings[1968] = str->add(strings[1968]); strings[4941] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/64"); strings[7] = str->add(strings[7]); strings[1968] = str->add(strings[1968]); strings[4942] = str->add("program,start"); strings[4943] = str->add("go_active25"); strings[1932] = str->add(strings[1932]); strings[4943] = str->add(strings[4943]); strings[4942] = str->add(strings[4942]); strings[4944] = str->add("go_activeb25"); strings[4942] = str->add(strings[4942]); strings[4945] = str->add("go_active5"); strings[1932] = str->add(strings[1932]); strings[4945] = str->add(strings[4945]); strings[4942] = str->add(strings[4942]); strings[4946] = str->add("go_activeb5"); str->del(strings[4942]); str->del(strings[4943]); str->del(strings[1932]); str->del(strings[4943]); str->del(strings[4942]); str->del(strings[4944]); str->del(strings[4942]); str->del(strings[4945]); str->del(strings[1932]); str->del(strings[4945]); str->del(strings[4942]); str->del(strings[4946]); str->del(strings[7]); str->del(strings[1968]); strings[7] = str->add(strings[7]); strings[2058] = str->add(strings[2058]); strings[4947] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/65"); strings[7] = str->add(strings[7]); strings[2058] = str->add(strings[2058]); strings[4948] = str->add("e,action,mouse,move"); strings[4949] = str->add("e"); strings[4950] = str->add("e,action,mouse,down"); strings[4949] = str->add(strings[4949]); strings[167] = str->add(strings[167]); strings[377] = str->add(strings[377]); strings[4951] = str->add("Main"); strings[66] = str->add(strings[66]); strings[4952] = str->add("Favorite Applications"); strings[469] = str->add(strings[469]); strings[2686] = str->add(strings[2686]); strings[2231] = str->add(strings[2231]); strings[469] = str->add(strings[469]); strings[2715] = str->add(strings[2715]); strings[2338] = str->add(strings[2338]); strings[469] = str->add(strings[469]); strings[2691] = str->add(strings[2691]); strings[4953] = str->add("Files"); strings[469] = str->add(strings[469]); strings[2693] = str->add(strings[2693]); strings[4954] = str->add("Virtual"); strings[469] = str->add(strings[469]); strings[2687] = str->add(strings[2687]); strings[2494] = str->add(strings[2494]); strings[469] = str->add(strings[469]); strings[2711] = str->add(strings[2711]); strings[4955] = str->add("Show/Hide All Windows"); strings[1619] = str->add(strings[1619]); strings[469] = str->add(strings[469]); strings[2687] = str->add(strings[2687]); strings[2552] = str->add(strings[2552]); strings[469] = str->add(strings[469]); strings[2682] = str->add(strings[2682]); strings[1712] = str->add(strings[1712]); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[4956] = str->add("About"); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[2514] = str->add(strings[2514]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[1713] = str->add(strings[1713]); strings[469] = str->add(strings[469]); strings[2672] = str->add(strings[2672]); strings[1714] = str->add(strings[1714]); strings[469] = str->add(strings[469]); strings[2673] = str->add(strings[2673]); strings[4957] = str->add("Configuration"); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[1721] = str->add(strings[1721]); strings[469] = str->add(strings[469]); strings[2690] = str->add(strings[2690]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[4958] = str->add("resize"); str->del(strings[4958]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[4959] = str->add("load"); strings[4951] = str->add(strings[4951]); strings[4960] = str->add("e,action,show,title"); strings[4949] = str->add(strings[4949]); str->del(strings[4959]); strings[4961] = str->add("program,start"); strings[4962] = str->add("on"); strings[1932] = str->add(strings[1932]); strings[4962] = str->add(strings[4962]); str->del(strings[4960]); str->del(strings[4949]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[4951] = str->add(strings[4951]); strings[4951] = str->add(strings[4951]); strings[4951] = str->add(strings[4951]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[4963] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2686] = str->add(strings[2686]); strings[4963] = str->add(strings[4963]); strings[469] = str->add(strings[469]); strings[2871] = str->add(strings[2871]); strings[1841] = str->add(strings[1841]); strings[4964] = str->add("resize"); strings[4964] = str->add(strings[4964]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[4963] = str->add(strings[4963]); strings[4952] = str->add(strings[4952]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[4952] = str->add(strings[4952]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2715] = str->add(strings[2715]); strings[4963] = str->add(strings[4963]); strings[469] = str->add(strings[469]); strings[2890] = str->add(strings[2890]); strings[1841] = str->add(strings[1841]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[4963] = str->add(strings[4963]); strings[2231] = str->add(strings[2231]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2231] = str->add(strings[2231]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2691] = str->add(strings[2691]); strings[4963] = str->add(strings[4963]); strings[469] = str->add(strings[469]); strings[2892] = str->add(strings[2892]); strings[1841] = str->add(strings[1841]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[4963] = str->add(strings[4963]); strings[2338] = str->add(strings[2338]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2338] = str->add(strings[2338]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2693] = str->add(strings[2693]); strings[2693] = str->add(strings[2693]); strings[4963] = str->add(strings[4963]); strings[469] = str->add(strings[469]); strings[4965] = str->add("images/449"); strings[4966] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/449"); strings[469] = str->add(strings[469]); strings[4965] = str->add(strings[4965]); strings[469] = str->add(strings[469]); strings[4967] = str->add("images/450"); strings[4968] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/450"); strings[469] = str->add(strings[469]); strings[4967] = str->add(strings[4967]); strings[1841] = str->add(strings[1841]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[4963] = str->add(strings[4963]); strings[4953] = str->add(strings[4953]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[4953] = str->add(strings[4953]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2687] = str->add(strings[2687]); strings[4963] = str->add(strings[4963]); strings[469] = str->add(strings[469]); strings[2894] = str->add(strings[2894]); strings[1841] = str->add(strings[1841]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[4963] = str->add(strings[4963]); strings[1619] = str->add(strings[1619]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1619] = str->add(strings[1619]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2682] = str->add(strings[2682]); strings[4963] = str->add(strings[4963]); strings[469] = str->add(strings[469]); strings[2896] = str->add(strings[2896]); strings[1841] = str->add(strings[1841]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[4963] = str->add(strings[4963]); strings[2552] = str->add(strings[2552]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2552] = str->add(strings[2552]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[4963] = str->add(strings[4963]); strings[469] = str->add(strings[469]); strings[2898] = str->add(strings[2898]); strings[469] = str->add(strings[469]); strings[2900] = str->add(strings[2900]); strings[1841] = str->add(strings[1841]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[4963] = str->add(strings[4963]); strings[1712] = str->add(strings[1712]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1712] = str->add(strings[1712]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[4963] = str->add(strings[4963]); strings[469] = str->add(strings[469]); strings[2902] = str->add(strings[2902]); strings[1841] = str->add(strings[1841]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[4963] = str->add(strings[4963]); strings[4957] = str->add(strings[4957]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[4957] = str->add(strings[4957]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2690] = str->add(strings[2690]); strings[4963] = str->add(strings[4963]); strings[469] = str->add(strings[469]); strings[2904] = str->add(strings[2904]); strings[1841] = str->add(strings[1841]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[4963] = str->add(strings[4963]); strings[1721] = str->add(strings[1721]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1721] = str->add(strings[1721]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[4963] = str->add(strings[4963]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4964] = str->add(strings[4964]); strings[4969] = str->add("e,state,focused"); strings[4949] = str->add(strings[4949]); strings[167] = str->add(strings[167]); strings[1946] = str->add(strings[1946]); strings[167] = str->add(strings[167]); strings[1946] = str->add(strings[1946]); str->del(strings[4948]); str->del(strings[4949]); str->del(strings[4950]); str->del(strings[4949]); str->del(strings[167]); str->del(strings[377]); str->del(strings[4961]); str->del(strings[4962]); str->del(strings[1932]); str->del(strings[4962]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4963]); str->del(strings[1841]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); str->del(strings[4964]); strings[4970] = str->add("program,start"); strings[4971] = str->add("on"); str->del(strings[4969]); str->del(strings[4949]); str->del(strings[167]); str->del(strings[1946]); str->del(strings[167]); str->del(strings[1946]); str->del(strings[4970]); str->del(strings[4971]); strings[4972] = str->add("e,action,mouse,move"); strings[4973] = str->add("e"); strings[4972] = str->add(strings[4972]); strings[4973] = str->add(strings[4973]); strings[169] = str->add(strings[169]); strings[377] = str->add(strings[377]); strings[159] = str->add(strings[159]); strings[377] = str->add(strings[377]); strings[169] = str->add(strings[169]); strings[1946] = str->add(strings[1946]); strings[159] = str->add(strings[159]); strings[1946] = str->add(strings[1946]); strings[169] = str->add(strings[169]); strings[1946] = str->add(strings[1946]); strings[159] = str->add(strings[159]); strings[1946] = str->add(strings[1946]); strings[1740] = str->add(strings[1740]); strings[377] = str->add(strings[377]); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); str->del(strings[4972]); str->del(strings[4973]); str->del(strings[4972]); str->del(strings[4973]); str->del(strings[169]); str->del(strings[377]); str->del(strings[159]); str->del(strings[377]); str->del(strings[169]); str->del(strings[1946]); str->del(strings[159]); str->del(strings[1946]); str->del(strings[169]); str->del(strings[1946]); str->del(strings[159]); str->del(strings[1946]); str->del(strings[1740]); str->del(strings[377]); str->del(strings[1740]); str->del(strings[1946]); str->del(strings[1740]); str->del(strings[1946]); str->del(strings[4951]); strings[4951] = str->add(strings[4951]); str->del(strings[4951]); strings[4951] = str->add(strings[4951]); strings[4974] = str->add("resize"); strings[4952] = str->add(strings[4952]); strings[4952] = str->add(strings[4952]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[4974] = str->add(strings[4974]); strings[2231] = str->add(strings[2231]); strings[2231] = str->add(strings[2231]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[4974] = str->add(strings[4974]); strings[2338] = str->add(strings[2338]); strings[2338] = str->add(strings[2338]); strings[4974] = str->add(strings[4974]); strings[4953] = str->add(strings[4953]); strings[4953] = str->add(strings[4953]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[4974] = str->add(strings[4974]); strings[1619] = str->add(strings[1619]); strings[1619] = str->add(strings[1619]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[4974] = str->add(strings[4974]); strings[2552] = str->add(strings[2552]); strings[2552] = str->add(strings[2552]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[4974] = str->add(strings[4974]); strings[1712] = str->add(strings[1712]); strings[1712] = str->add(strings[1712]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[4974] = str->add(strings[4974]); strings[4957] = str->add(strings[4957]); strings[4957] = str->add(strings[4957]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[4974] = str->add(strings[4974]); strings[1721] = str->add(strings[1721]); strings[1721] = str->add(strings[1721]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[4975] = str->add("font"); strings[4976] = str->add("font_fallbacks"); strings[4977] = str->add("font_size"); strings[4978] = str->add("font_source"); strings[4979] = str->add("color"); strings[4980] = str->add("underline_color"); strings[4981] = str->add("underline2_color"); strings[4982] = str->add("outline_color"); strings[4983] = str->add("shadow_color"); strings[4984] = str->add("glow_color"); strings[4985] = str->add("glow2_color"); strings[4986] = str->add("backing_color"); strings[4987] = str->add("strikethrough_color"); strings[4988] = str->add("align"); strings[4989] = str->add("valign"); strings[4990] = str->add("wrap"); strings[4991] = str->add("left_margin"); strings[4992] = str->add("right_margin"); strings[4993] = str->add("underline"); strings[4994] = str->add("strikethrough"); strings[4995] = str->add("backing"); strings[4996] = str->add("style"); strings[4997] = str->add("tabstops"); strings[4988] = str->add(strings[4988]); strings[4998] = str->add("center"); str->del(strings[4988]); str->del(strings[4998]); strings[4979] = str->add(strings[4979]); strings[4999] = str->add("#000"); str->del(strings[4979]); str->del(strings[4999]); strings[4996] = str->add(strings[4996]); strings[5000] = str->add("shadow"); str->del(strings[4996]); str->del(strings[5000]); strings[4983] = str->add(strings[4983]); strings[5001] = str->add("#ffffff80"); str->del(strings[4983]); str->del(strings[5001]); strings[4990] = str->add(strings[4990]); strings[5002] = str->add("word"); str->del(strings[4990]); str->del(strings[5002]); strings[4978] = str->add(strings[4978]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[4978]); str->del(strings[469]); strings[4977] = str->add(strings[4977]); strings[5003] = str->add("10.000000"); str->del(strings[4977]); str->del(strings[5003]); strings[4975] = str->add(strings[4975]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[4975]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4996] = str->add(strings[4996]); strings[5004] = str->add("glow"); str->del(strings[4996]); str->del(strings[5004]); strings[4979] = str->add(strings[4979]); strings[5005] = str->add("#fff"); str->del(strings[4979]); str->del(strings[5005]); strings[4985] = str->add(strings[4985]); strings[5006] = str->add("#fe87"); str->del(strings[4985]); str->del(strings[5006]); strings[4984] = str->add(strings[4984]); strings[5007] = str->add("#fa14"); str->del(strings[4984]); str->del(strings[5007]); strings[4975] = str->add(strings[4975]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4975]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[4996] = str->add(strings[4996]); strings[5008] = str->add("glow"); str->del(strings[4996]); str->del(strings[5008]); strings[4979] = str->add(strings[4979]); strings[5009] = str->add("#fff"); str->del(strings[4979]); str->del(strings[5009]); strings[4985] = str->add(strings[4985]); strings[5010] = str->add("#fe87"); str->del(strings[4985]); str->del(strings[5010]); strings[4984] = str->add(strings[4984]); strings[5011] = str->add("#fa14"); str->del(strings[4984]); str->del(strings[5011]); strings[4975] = str->add(strings[4975]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[4975]); str->del(strings[471]); str->del(strings[4975]); str->del(strings[4976]); str->del(strings[4977]); str->del(strings[4978]); str->del(strings[4979]); str->del(strings[4980]); str->del(strings[4981]); str->del(strings[4982]); str->del(strings[4983]); str->del(strings[4984]); str->del(strings[4985]); str->del(strings[4986]); str->del(strings[4987]); str->del(strings[4988]); str->del(strings[4989]); str->del(strings[4990]); str->del(strings[4991]); str->del(strings[4992]); str->del(strings[4993]); str->del(strings[4994]); str->del(strings[4995]); str->del(strings[4996]); str->del(strings[4997]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[5012] = str->add("font"); strings[5013] = str->add("font_fallbacks"); strings[5014] = str->add("font_size"); strings[5015] = str->add("font_source"); strings[5016] = str->add("color"); strings[5017] = str->add("underline_color"); strings[5018] = str->add("underline2_color"); strings[5019] = str->add("outline_color"); strings[5020] = str->add("shadow_color"); strings[5021] = str->add("glow_color"); strings[5022] = str->add("glow2_color"); strings[5023] = str->add("backing_color"); strings[5024] = str->add("strikethrough_color"); strings[5025] = str->add("align"); strings[5026] = str->add("valign"); strings[5027] = str->add("wrap"); strings[5028] = str->add("left_margin"); strings[5029] = str->add("right_margin"); strings[5030] = str->add("underline"); strings[5031] = str->add("strikethrough"); strings[5032] = str->add("backing"); strings[5033] = str->add("style"); strings[5034] = str->add("tabstops"); strings[5025] = str->add(strings[5025]); strings[5035] = str->add("center"); str->del(strings[5025]); str->del(strings[5035]); strings[5016] = str->add(strings[5016]); strings[5036] = str->add("#000"); str->del(strings[5016]); str->del(strings[5036]); strings[5033] = str->add(strings[5033]); strings[5037] = str->add("shadow"); str->del(strings[5033]); str->del(strings[5037]); strings[5020] = str->add(strings[5020]); strings[5038] = str->add("#ffffff80"); str->del(strings[5020]); str->del(strings[5038]); strings[5027] = str->add(strings[5027]); strings[5039] = str->add("word"); str->del(strings[5027]); str->del(strings[5039]); strings[5015] = str->add(strings[5015]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[5015]); str->del(strings[469]); strings[5014] = str->add(strings[5014]); strings[5040] = str->add("10.000000"); str->del(strings[5014]); str->del(strings[5040]); strings[5012] = str->add(strings[5012]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[5012]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5033] = str->add(strings[5033]); strings[5041] = str->add("soft_shadow"); str->del(strings[5033]); str->del(strings[5041]); strings[5016] = str->add(strings[5016]); strings[5042] = str->add("#fff"); str->del(strings[5016]); str->del(strings[5042]); strings[5020] = str->add(strings[5020]); strings[5043] = str->add("#00000020"); str->del(strings[5020]); str->del(strings[5043]); strings[5014] = str->add(strings[5014]); strings[5044] = str->add("12.000000"); str->del(strings[5014]); str->del(strings[5044]); strings[5012] = str->add(strings[5012]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5012]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[5012]); str->del(strings[5013]); str->del(strings[5014]); str->del(strings[5015]); str->del(strings[5016]); str->del(strings[5017]); str->del(strings[5018]); str->del(strings[5019]); str->del(strings[5020]); str->del(strings[5021]); str->del(strings[5022]); str->del(strings[5023]); str->del(strings[5024]); str->del(strings[5025]); str->del(strings[5026]); str->del(strings[5027]); str->del(strings[5028]); str->del(strings[5029]); str->del(strings[5030]); str->del(strings[5031]); str->del(strings[5032]); str->del(strings[5033]); str->del(strings[5034]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[4974]); str->del(strings[4974]); str->del(strings[4974]); str->del(strings[4974]); str->del(strings[4974]); str->del(strings[4974]); str->del(strings[4974]); str->del(strings[4974]); str->del(strings[4974]); strings[5045] = str->add("font"); strings[5046] = str->add("font_fallbacks"); strings[5047] = str->add("font_size"); strings[5048] = str->add("font_source"); strings[5049] = str->add("color"); strings[5050] = str->add("underline_color"); strings[5051] = str->add("underline2_color"); strings[5052] = str->add("outline_color"); strings[5053] = str->add("shadow_color"); strings[5054] = str->add("glow_color"); strings[5055] = str->add("glow2_color"); strings[5056] = str->add("backing_color"); strings[5057] = str->add("strikethrough_color"); strings[5058] = str->add("align"); strings[5059] = str->add("valign"); strings[5060] = str->add("wrap"); strings[5061] = str->add("left_margin"); strings[5062] = str->add("right_margin"); strings[5063] = str->add("underline"); strings[5064] = str->add("strikethrough"); strings[5065] = str->add("backing"); strings[5066] = str->add("style"); strings[5067] = str->add("tabstops"); strings[5058] = str->add(strings[5058]); strings[5068] = str->add("center"); str->del(strings[5058]); str->del(strings[5068]); strings[5049] = str->add(strings[5049]); strings[5069] = str->add("#000"); str->del(strings[5049]); str->del(strings[5069]); strings[5066] = str->add(strings[5066]); strings[5070] = str->add("shadow"); str->del(strings[5066]); str->del(strings[5070]); strings[5053] = str->add(strings[5053]); strings[5071] = str->add("#ffffff80"); str->del(strings[5053]); str->del(strings[5071]); strings[5060] = str->add(strings[5060]); strings[5072] = str->add("word"); str->del(strings[5060]); str->del(strings[5072]); strings[5048] = str->add(strings[5048]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[5048]); str->del(strings[469]); strings[5047] = str->add(strings[5047]); strings[5073] = str->add("10.000000"); str->del(strings[5047]); str->del(strings[5073]); strings[5045] = str->add(strings[5045]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[5045]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5066] = str->add(strings[5066]); strings[5074] = str->add("soft_shadow"); str->del(strings[5066]); str->del(strings[5074]); strings[5049] = str->add(strings[5049]); strings[5075] = str->add("#fff"); str->del(strings[5049]); str->del(strings[5075]); strings[5053] = str->add(strings[5053]); strings[5076] = str->add("#00000020"); str->del(strings[5053]); str->del(strings[5076]); strings[5047] = str->add(strings[5047]); strings[5077] = str->add("12.000000"); str->del(strings[5047]); str->del(strings[5077]); strings[5045] = str->add(strings[5045]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5045]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[5045]); str->del(strings[5046]); str->del(strings[5047]); str->del(strings[5048]); str->del(strings[5049]); str->del(strings[5050]); str->del(strings[5051]); str->del(strings[5052]); str->del(strings[5053]); str->del(strings[5054]); str->del(strings[5055]); str->del(strings[5056]); str->del(strings[5057]); str->del(strings[5058]); str->del(strings[5059]); str->del(strings[5060]); str->del(strings[5061]); str->del(strings[5062]); str->del(strings[5063]); str->del(strings[5064]); str->del(strings[5065]); str->del(strings[5066]); str->del(strings[5067]); strings[1932] = str->add(strings[1932]); strings[5078] = str->add("go_activeb27"); strings[5079] = str->add("program,start"); strings[5080] = str->add("go_activec27"); strings[1932] = str->add(strings[1932]); strings[5081] = str->add("go_activeb3"); strings[5079] = str->add(strings[5079]); strings[5082] = str->add("go_activec3"); str->del(strings[1932]); str->del(strings[5078]); str->del(strings[5079]); str->del(strings[5080]); str->del(strings[1932]); str->del(strings[5081]); str->del(strings[5079]); str->del(strings[5082]); str->del(strings[7]); str->del(strings[2058]); strings[7] = str->add(strings[7]); strings[1970] = str->add(strings[1970]); strings[5083] = str->add("/usr/devel/share/enlightenment/data/backgrounds/Cracked_Earth.edj//://images/66"); strings[7] = str->add(strings[7]); strings[1970] = str->add(strings[1970]); strings[5084] = str->add("e,action,mouse,move"); strings[5085] = str->add("e"); strings[5086] = str->add("e,action,mouse,up"); strings[5085] = str->add(strings[5085]); str->del(strings[5084]); str->del(strings[5085]); str->del(strings[5086]); str->del(strings[5085]); str->del(strings[7]); str->del(strings[1970]); strings[7] = str->add(strings[7]); strings[1869] = str->add(strings[1869]); strings[1932] = str->add(strings[1932]); strings[1840] = str->add(strings[1840]); strings[5087] = str->add("program,start"); strings[1844] = str->add(strings[1844]); strings[1932] = str->add(strings[1932]); strings[1844] = str->add(strings[1844]); strings[5087] = str->add(strings[5087]); strings[1840] = str->add(strings[1840]); strings[1932] = str->add(strings[1932]); strings[1851] = str->add(strings[1851]); strings[5087] = str->add(strings[5087]); strings[1851] = str->add(strings[1851]); strings[5087] = str->add(strings[5087]); strings[5088] = str->add("go_active24"); strings[1932] = str->add(strings[1932]); strings[5088] = str->add(strings[5088]); strings[5087] = str->add(strings[5087]); strings[5089] = str->add("go_activeb24"); strings[5087] = str->add(strings[5087]); strings[5090] = str->add("go_active6"); strings[1932] = str->add(strings[1932]); strings[5090] = str->add(strings[5090]); strings[5087] = str->add(strings[5087]); strings[5091] = str->add("go_activeb6"); str->del(strings[1932]); str->del(strings[1840]); str->del(strings[5087]); str->del(strings[1844]); str->del(strings[1932]); str->del(strings[1844]); str->del(strings[5087]); str->del(strings[1840]); str->del(strings[1932]); str->del(strings[1851]); str->del(strings[5087]); str->del(strings[1851]); str->del(strings[5087]); str->del(strings[5088]); str->del(strings[1932]); str->del(strings[5088]); str->del(strings[5087]); str->del(strings[5089]); str->del(strings[5087]); str->del(strings[5090]); str->del(strings[1932]); str->del(strings[5090]); str->del(strings[5087]); str->del(strings[5091]); str->del(strings[7]); str->del(strings[1869]); strings[7] = str->add(strings[7]); strings[3251] = str->add(strings[3251]); strings[1932] = str->add(strings[1932]); strings[5092] = str->add("go_activeb26"); strings[5093] = str->add("program,start"); strings[5094] = str->add("go_activec26"); strings[1932] = str->add(strings[1932]); strings[5095] = str->add("go_activeb4"); strings[5093] = str->add(strings[5093]); strings[5096] = str->add("go_activec4"); strings[1932] = str->add(strings[1932]); strings[5097] = str->add("on"); str->del(strings[1932]); str->del(strings[5092]); str->del(strings[5093]); str->del(strings[5094]); str->del(strings[1932]); str->del(strings[5095]); str->del(strings[5093]); str->del(strings[5096]); str->del(strings[1932]); str->del(strings[5097]); strings[5098] = str->add("e,action,mouse,move"); strings[5099] = str->add("e"); str->del(strings[5098]); str->del(strings[5099]); strings[5100] = str->add("e,action,mouse,move"); strings[5101] = str->add("e"); str->del(strings[5100]); str->del(strings[5101]); strings[5102] = str->add("e,action,mouse,move"); strings[5103] = str->add("e"); str->del(strings[5102]); str->del(strings[5103]); strings[5104] = str->add("e,action,mouse,move"); strings[5105] = str->add("e"); str->del(strings[5104]); str->del(strings[5105]); str->del(strings[7]); str->del(strings[3251]); strings[7] = str->add(strings[7]); strings[3254] = str->add(strings[3254]); strings[5106] = str->add("e,action,mouse,move"); strings[5107] = str->add("e"); str->del(strings[5106]); str->del(strings[5107]); strings[5108] = str->add("e,action,mouse,move"); strings[5109] = str->add("e"); str->del(strings[5108]); str->del(strings[5109]); strings[5110] = str->add("e,action,mouse,move"); strings[5111] = str->add("e"); str->del(strings[5110]); str->del(strings[5111]); strings[5112] = str->add("e,action,mouse,move"); strings[5113] = str->add("e"); str->del(strings[5112]); str->del(strings[5113]); strings[5114] = str->add("e,action,mouse,move"); strings[5115] = str->add("e"); str->del(strings[5114]); str->del(strings[5115]); strings[5116] = str->add("e,action,mouse,move"); strings[5117] = str->add("e"); str->del(strings[5116]); str->del(strings[5117]); strings[5118] = str->add("e,action,mouse,move"); strings[5119] = str->add("e"); str->del(strings[5118]); str->del(strings[5119]); strings[5120] = str->add("e,action,mouse,move"); strings[5121] = str->add("e"); str->del(strings[5120]); str->del(strings[5121]); strings[5122] = str->add("program,start"); strings[5123] = str->add("go_active23"); strings[1932] = str->add(strings[1932]); strings[5123] = str->add(strings[5123]); strings[5122] = str->add(strings[5122]); strings[5124] = str->add("go_activeb23"); strings[5122] = str->add(strings[5122]); strings[5125] = str->add("go_active7"); strings[1932] = str->add(strings[1932]); strings[5125] = str->add(strings[5125]); strings[5122] = str->add(strings[5122]); strings[5126] = str->add("go_activeb7"); str->del(strings[5122]); str->del(strings[5123]); str->del(strings[1932]); str->del(strings[5123]); str->del(strings[5122]); str->del(strings[5124]); str->del(strings[5122]); str->del(strings[5125]); str->del(strings[1932]); str->del(strings[5125]); str->del(strings[5122]); str->del(strings[5126]); strings[5127] = str->add("e,action,mouse,move"); strings[5128] = str->add("e"); str->del(strings[5127]); str->del(strings[5128]); strings[5129] = str->add("e,action,mouse,move"); strings[5130] = str->add("e"); str->del(strings[5129]); str->del(strings[5130]); strings[5131] = str->add("e,action,mouse,move"); strings[5132] = str->add("e"); str->del(strings[5131]); str->del(strings[5132]); strings[5133] = str->add("e,action,mouse,move"); strings[5134] = str->add("e"); str->del(strings[5133]); str->del(strings[5134]); str->del(strings[7]); str->del(strings[3254]); strings[7] = str->add(strings[7]); strings[2206] = str->add(strings[2206]); strings[5135] = str->add("e,action,mouse,move"); strings[5136] = str->add("e"); str->del(strings[5135]); str->del(strings[5136]); strings[5137] = str->add("e,action,mouse,move"); strings[5138] = str->add("e"); str->del(strings[5137]); str->del(strings[5138]); strings[5139] = str->add("e,action,mouse,move"); strings[5140] = str->add("e"); str->del(strings[5139]); str->del(strings[5140]); strings[5141] = str->add("e,action,mouse,move"); strings[5142] = str->add("e"); str->del(strings[5141]); str->del(strings[5142]); str->del(strings[7]); str->del(strings[2206]); strings[7] = str->add(strings[7]); strings[2213] = str->add(strings[2213]); strings[5143] = str->add("e,action,mouse,move"); strings[5144] = str->add("e"); strings[5145] = str->add("e,state,selected"); strings[5144] = str->add(strings[5144]); strings[5145] = str->add(strings[5145]); strings[5144] = str->add(strings[5144]); strings[5145] = str->add(strings[5145]); strings[5144] = str->add(strings[5144]); strings[5145] = str->add(strings[5145]); strings[5144] = str->add(strings[5144]); strings[5145] = str->add(strings[5145]); strings[5144] = str->add(strings[5144]); strings[5145] = str->add(strings[5145]); strings[5144] = str->add(strings[5144]); strings[5146] = str->add("Lock Screen"); strings[469] = str->add(strings[469]); strings[2708] = str->add(strings[2708]); strings[1726] = str->add(strings[1726]); strings[469] = str->add(strings[469]); strings[2677] = str->add(strings[2677]); strings[5147] = str->add("Hibernate"); strings[469] = str->add(strings[469]); strings[2678] = str->add(strings[2678]); strings[1724] = str->add(strings[1724]); strings[469] = str->add(strings[469]); strings[2676] = str->add(strings[2676]); strings[1722] = str->add(strings[1722]); strings[469] = str->add(strings[469]); strings[2675] = str->add(strings[2675]); strings[5148] = str->add("Logout"); strings[469] = str->add(strings[469]); strings[2674] = str->add(strings[2674]); str->del(strings[5143]); str->del(strings[5144]); strings[5149] = str->add("program,start"); strings[5150] = str->add("sel"); str->del(strings[5145]); str->del(strings[5144]); str->del(strings[5145]); str->del(strings[5144]); strings[5149] = str->add(strings[5149]); strings[5150] = str->add(strings[5150]); str->del(strings[5145]); str->del(strings[5144]); strings[5149] = str->add(strings[5149]); strings[5150] = str->add(strings[5150]); strings[1932] = str->add(strings[1932]); strings[5150] = str->add(strings[5150]); str->del(strings[5145]); str->del(strings[5144]); str->del(strings[5145]); str->del(strings[5144]); str->del(strings[5145]); str->del(strings[5144]); str->del(strings[5149]); str->del(strings[5150]); str->del(strings[5149]); str->del(strings[5150]); str->del(strings[5149]); str->del(strings[5150]); str->del(strings[1932]); str->del(strings[5150]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[5151] = str->add("resize"); str->del(strings[5151]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[5152] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5152] = str->add(strings[5152]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5152] = str->add(strings[5152]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2708] = str->add(strings[2708]); strings[5152] = str->add(strings[5152]); strings[469] = str->add(strings[469]); strings[3008] = str->add(strings[3008]); strings[1841] = str->add(strings[1841]); strings[5153] = str->add("resize"); strings[5153] = str->add(strings[5153]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5152] = str->add(strings[5152]); strings[5146] = str->add(strings[5146]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[5146] = str->add(strings[5146]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[5152] = str->add(strings[5152]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5152] = str->add(strings[5152]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5152] = str->add(strings[5152]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2677] = str->add(strings[2677]); strings[5152] = str->add(strings[5152]); strings[469] = str->add(strings[469]); strings[3011] = str->add(strings[3011]); strings[1841] = str->add(strings[1841]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5152] = str->add(strings[5152]); strings[1726] = str->add(strings[1726]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1726] = str->add(strings[1726]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5152] = str->add(strings[5152]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5152] = str->add(strings[5152]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2678] = str->add(strings[2678]); strings[5152] = str->add(strings[5152]); strings[469] = str->add(strings[469]); strings[3013] = str->add(strings[3013]); strings[1841] = str->add(strings[1841]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5152] = str->add(strings[5152]); strings[5147] = str->add(strings[5147]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[5147] = str->add(strings[5147]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5152] = str->add(strings[5152]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5152] = str->add(strings[5152]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2676] = str->add(strings[2676]); strings[5152] = str->add(strings[5152]); strings[469] = str->add(strings[469]); strings[3015] = str->add(strings[3015]); strings[1841] = str->add(strings[1841]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5152] = str->add(strings[5152]); strings[1724] = str->add(strings[1724]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1724] = str->add(strings[1724]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5152] = str->add(strings[5152]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5152] = str->add(strings[5152]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2675] = str->add(strings[2675]); strings[5152] = str->add(strings[5152]); strings[469] = str->add(strings[469]); strings[3017] = str->add(strings[3017]); strings[1841] = str->add(strings[1841]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5152] = str->add(strings[5152]); strings[1722] = str->add(strings[1722]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1722] = str->add(strings[1722]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[5152] = str->add(strings[5152]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5152] = str->add(strings[5152]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5152] = str->add(strings[5152]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2674] = str->add(strings[2674]); strings[5152] = str->add(strings[5152]); strings[469] = str->add(strings[469]); strings[3019] = str->add(strings[3019]); strings[1841] = str->add(strings[1841]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5152] = str->add(strings[5152]); strings[5148] = str->add(strings[5148]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[5148] = str->add(strings[5148]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); strings[5153] = str->add(strings[5153]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); strings[5153] = str->add(strings[5153]); strings[5146] = str->add(strings[5146]); strings[5146] = str->add(strings[5146]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[5153] = str->add(strings[5153]); strings[1726] = str->add(strings[1726]); strings[1726] = str->add(strings[1726]); strings[5153] = str->add(strings[5153]); strings[5147] = str->add(strings[5147]); strings[5147] = str->add(strings[5147]); strings[5153] = str->add(strings[5153]); strings[1724] = str->add(strings[1724]); strings[1724] = str->add(strings[1724]); strings[5153] = str->add(strings[5153]); strings[1722] = str->add(strings[1722]); strings[1722] = str->add(strings[1722]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[5153] = str->add(strings[5153]); strings[5148] = str->add(strings[5148]); strings[5148] = str->add(strings[5148]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); strings[5154] = str->add("font"); strings[5155] = str->add("font_fallbacks"); strings[5156] = str->add("font_size"); strings[5157] = str->add("font_source"); strings[5158] = str->add("color"); strings[5159] = str->add("underline_color"); strings[5160] = str->add("underline2_color"); strings[5161] = str->add("outline_color"); strings[5162] = str->add("shadow_color"); strings[5163] = str->add("glow_color"); strings[5164] = str->add("glow2_color"); strings[5165] = str->add("backing_color"); strings[5166] = str->add("strikethrough_color"); strings[5167] = str->add("align"); strings[5168] = str->add("valign"); strings[5169] = str->add("wrap"); strings[5170] = str->add("left_margin"); strings[5171] = str->add("right_margin"); strings[5172] = str->add("underline"); strings[5173] = str->add("strikethrough"); strings[5174] = str->add("backing"); strings[5175] = str->add("style"); strings[5176] = str->add("tabstops"); strings[5167] = str->add(strings[5167]); strings[5177] = str->add("center"); str->del(strings[5167]); str->del(strings[5177]); strings[5158] = str->add(strings[5158]); strings[5178] = str->add("#000"); str->del(strings[5158]); str->del(strings[5178]); strings[5175] = str->add(strings[5175]); strings[5179] = str->add("shadow"); str->del(strings[5175]); str->del(strings[5179]); strings[5162] = str->add(strings[5162]); strings[5180] = str->add("#ffffff80"); str->del(strings[5162]); str->del(strings[5180]); strings[5169] = str->add(strings[5169]); strings[5181] = str->add("word"); str->del(strings[5169]); str->del(strings[5181]); strings[5157] = str->add(strings[5157]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[5157]); str->del(strings[469]); strings[5156] = str->add(strings[5156]); strings[5182] = str->add("10.000000"); str->del(strings[5156]); str->del(strings[5182]); strings[5154] = str->add(strings[5154]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[5154]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5175] = str->add(strings[5175]); strings[5183] = str->add("glow"); str->del(strings[5175]); str->del(strings[5183]); strings[5158] = str->add(strings[5158]); strings[5184] = str->add("#fff"); str->del(strings[5158]); str->del(strings[5184]); strings[5164] = str->add(strings[5164]); strings[5185] = str->add("#fe87"); str->del(strings[5164]); str->del(strings[5185]); strings[5163] = str->add(strings[5163]); strings[5186] = str->add("#fa14"); str->del(strings[5163]); str->del(strings[5186]); strings[5154] = str->add(strings[5154]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5154]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5175] = str->add(strings[5175]); strings[5187] = str->add("glow"); str->del(strings[5175]); str->del(strings[5187]); strings[5158] = str->add(strings[5158]); strings[5188] = str->add("#fff"); str->del(strings[5158]); str->del(strings[5188]); strings[5164] = str->add(strings[5164]); strings[5189] = str->add("#fe87"); str->del(strings[5164]); str->del(strings[5189]); strings[5163] = str->add(strings[5163]); strings[5190] = str->add("#fa14"); str->del(strings[5163]); str->del(strings[5190]); strings[5154] = str->add(strings[5154]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5154]); str->del(strings[471]); str->del(strings[5154]); str->del(strings[5155]); str->del(strings[5156]); str->del(strings[5157]); str->del(strings[5158]); str->del(strings[5159]); str->del(strings[5160]); str->del(strings[5161]); str->del(strings[5162]); str->del(strings[5163]); str->del(strings[5164]); str->del(strings[5165]); str->del(strings[5166]); str->del(strings[5167]); str->del(strings[5168]); str->del(strings[5169]); str->del(strings[5170]); str->del(strings[5171]); str->del(strings[5172]); str->del(strings[5173]); str->del(strings[5174]); str->del(strings[5175]); str->del(strings[5176]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[5191] = str->add("font"); strings[5192] = str->add("font_fallbacks"); strings[5193] = str->add("font_size"); strings[5194] = str->add("font_source"); strings[5195] = str->add("color"); strings[5196] = str->add("underline_color"); strings[5197] = str->add("underline2_color"); strings[5198] = str->add("outline_color"); strings[5199] = str->add("shadow_color"); strings[5200] = str->add("glow_color"); strings[5201] = str->add("glow2_color"); strings[5202] = str->add("backing_color"); strings[5203] = str->add("strikethrough_color"); strings[5204] = str->add("align"); strings[5205] = str->add("valign"); strings[5206] = str->add("wrap"); strings[5207] = str->add("left_margin"); strings[5208] = str->add("right_margin"); strings[5209] = str->add("underline"); strings[5210] = str->add("strikethrough"); strings[5211] = str->add("backing"); strings[5212] = str->add("style"); strings[5213] = str->add("tabstops"); strings[5204] = str->add(strings[5204]); strings[5214] = str->add("center"); str->del(strings[5204]); str->del(strings[5214]); strings[5195] = str->add(strings[5195]); strings[5215] = str->add("#000"); str->del(strings[5195]); str->del(strings[5215]); strings[5212] = str->add(strings[5212]); strings[5216] = str->add("shadow"); str->del(strings[5212]); str->del(strings[5216]); strings[5199] = str->add(strings[5199]); strings[5217] = str->add("#ffffff80"); str->del(strings[5199]); str->del(strings[5217]); strings[5206] = str->add(strings[5206]); strings[5218] = str->add("word"); str->del(strings[5206]); str->del(strings[5218]); strings[5194] = str->add(strings[5194]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[5194]); str->del(strings[469]); strings[5193] = str->add(strings[5193]); strings[5219] = str->add("10.000000"); str->del(strings[5193]); str->del(strings[5219]); strings[5191] = str->add(strings[5191]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[5191]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5212] = str->add(strings[5212]); strings[5220] = str->add("soft_shadow"); str->del(strings[5212]); str->del(strings[5220]); strings[5195] = str->add(strings[5195]); strings[5221] = str->add("#fff"); str->del(strings[5195]); str->del(strings[5221]); strings[5199] = str->add(strings[5199]); strings[5222] = str->add("#00000020"); str->del(strings[5199]); str->del(strings[5222]); strings[5193] = str->add(strings[5193]); strings[5223] = str->add("12.000000"); str->del(strings[5193]); str->del(strings[5223]); strings[5191] = str->add(strings[5191]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5191]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[5191]); str->del(strings[5192]); str->del(strings[5193]); str->del(strings[5194]); str->del(strings[5195]); str->del(strings[5196]); str->del(strings[5197]); str->del(strings[5198]); str->del(strings[5199]); str->del(strings[5200]); str->del(strings[5201]); str->del(strings[5202]); str->del(strings[5203]); str->del(strings[5204]); str->del(strings[5205]); str->del(strings[5206]); str->del(strings[5207]); str->del(strings[5208]); str->del(strings[5209]); str->del(strings[5210]); str->del(strings[5211]); str->del(strings[5212]); str->del(strings[5213]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5152]); str->del(strings[1841]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); str->del(strings[5153]); strings[5224] = str->add("e,action,mouse,move"); strings[5225] = str->add("e"); str->del(strings[5224]); str->del(strings[5225]); strings[5226] = str->add("font"); strings[5227] = str->add("font_fallbacks"); strings[5228] = str->add("font_size"); strings[5229] = str->add("font_source"); strings[5230] = str->add("color"); strings[5231] = str->add("underline_color"); strings[5232] = str->add("underline2_color"); strings[5233] = str->add("outline_color"); strings[5234] = str->add("shadow_color"); strings[5235] = str->add("glow_color"); strings[5236] = str->add("glow2_color"); strings[5237] = str->add("backing_color"); strings[5238] = str->add("strikethrough_color"); strings[5239] = str->add("align"); strings[5240] = str->add("valign"); strings[5241] = str->add("wrap"); strings[5242] = str->add("left_margin"); strings[5243] = str->add("right_margin"); strings[5244] = str->add("underline"); strings[5245] = str->add("strikethrough"); strings[5246] = str->add("backing"); strings[5247] = str->add("style"); strings[5248] = str->add("tabstops"); strings[5239] = str->add(strings[5239]); strings[5249] = str->add("center"); str->del(strings[5239]); str->del(strings[5249]); strings[5230] = str->add(strings[5230]); strings[5250] = str->add("#000"); str->del(strings[5230]); str->del(strings[5250]); strings[5247] = str->add(strings[5247]); strings[5251] = str->add("shadow"); str->del(strings[5247]); str->del(strings[5251]); strings[5234] = str->add(strings[5234]); strings[5252] = str->add("#ffffff80"); str->del(strings[5234]); str->del(strings[5252]); strings[5241] = str->add(strings[5241]); strings[5253] = str->add("word"); str->del(strings[5241]); str->del(strings[5253]); strings[5229] = str->add(strings[5229]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[5229]); str->del(strings[469]); strings[5228] = str->add(strings[5228]); strings[5254] = str->add("10.000000"); str->del(strings[5228]); str->del(strings[5254]); strings[5226] = str->add(strings[5226]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[5226]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5247] = str->add(strings[5247]); strings[5255] = str->add("soft_shadow"); str->del(strings[5247]); str->del(strings[5255]); strings[5230] = str->add(strings[5230]); strings[5256] = str->add("#fff"); str->del(strings[5230]); str->del(strings[5256]); strings[5234] = str->add(strings[5234]); strings[5257] = str->add("#00000020"); str->del(strings[5234]); str->del(strings[5257]); strings[5228] = str->add(strings[5228]); strings[5258] = str->add("12.000000"); str->del(strings[5228]); str->del(strings[5258]); strings[5226] = str->add(strings[5226]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5226]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[5226]); str->del(strings[5227]); str->del(strings[5228]); str->del(strings[5229]); str->del(strings[5230]); str->del(strings[5231]); str->del(strings[5232]); str->del(strings[5233]); str->del(strings[5234]); str->del(strings[5235]); str->del(strings[5236]); str->del(strings[5237]); str->del(strings[5238]); str->del(strings[5239]); str->del(strings[5240]); str->del(strings[5241]); str->del(strings[5242]); str->del(strings[5243]); str->del(strings[5244]); str->del(strings[5245]); str->del(strings[5246]); str->del(strings[5247]); str->del(strings[5248]); strings[5259] = str->add("e,action,mouse,move"); strings[5260] = str->add("e"); str->del(strings[5259]); str->del(strings[5260]); strings[5261] = str->add("e,action,mouse,move"); strings[5262] = str->add("e"); str->del(strings[5261]); str->del(strings[5262]); strings[5263] = str->add("e,action,mouse,move"); strings[5264] = str->add("e"); str->del(strings[5263]); str->del(strings[5264]); strings[1932] = str->add(strings[1932]); strings[5265] = str->add("go_activeb25"); strings[5266] = str->add("program,start"); strings[5267] = str->add("go_activec25"); strings[1932] = str->add(strings[1932]); strings[5268] = str->add("go_activeb5"); strings[5266] = str->add(strings[5266]); strings[5269] = str->add("go_activec5"); str->del(strings[1932]); str->del(strings[5265]); str->del(strings[5266]); str->del(strings[5267]); str->del(strings[1932]); str->del(strings[5268]); str->del(strings[5266]); str->del(strings[5269]); str->del(strings[7]); str->del(strings[2213]); strings[7] = str->add(strings[7]); strings[2220] = str->add(strings[2220]); strings[5270] = str->add("e,action,mouse,move"); strings[5271] = str->add("e"); str->del(strings[5270]); str->del(strings[5271]); strings[5272] = str->add("e,action,mouse,move"); strings[5273] = str->add("e"); str->del(strings[5272]); str->del(strings[5273]); strings[5274] = str->add("program,start"); strings[5275] = str->add("go_active22"); strings[1932] = str->add(strings[1932]); strings[5275] = str->add(strings[5275]); strings[5274] = str->add(strings[5274]); strings[5276] = str->add("go_activeb22"); strings[5274] = str->add(strings[5274]); strings[5277] = str->add("go_active8"); strings[1932] = str->add(strings[1932]); strings[5277] = str->add(strings[5277]); strings[5274] = str->add(strings[5274]); strings[5278] = str->add("go_activeb8"); str->del(strings[5274]); str->del(strings[5275]); str->del(strings[1932]); str->del(strings[5275]); str->del(strings[5274]); str->del(strings[5276]); str->del(strings[5274]); str->del(strings[5277]); str->del(strings[1932]); str->del(strings[5277]); str->del(strings[5274]); str->del(strings[5278]); str->del(strings[7]); str->del(strings[2220]); strings[7] = str->add(strings[7]); strings[2226] = str->add(strings[2226]); str->del(strings[7]); str->del(strings[2226]); strings[7] = str->add(strings[7]); strings[2257] = str->add(strings[2257]); strings[5279] = str->add("e,action,mouse,move"); strings[5280] = str->add("e"); str->del(strings[5279]); str->del(strings[5280]); strings[5281] = str->add("e,action,mouse,move"); strings[5282] = str->add("e"); str->del(strings[5281]); str->del(strings[5282]); strings[5283] = str->add("e,action,mouse,move"); strings[5284] = str->add("e"); str->del(strings[5283]); str->del(strings[5284]); strings[1932] = str->add(strings[1932]); strings[5285] = str->add("go_activeb24"); strings[5286] = str->add("program,start"); strings[5287] = str->add("go_activec24"); strings[1932] = str->add(strings[1932]); strings[5288] = str->add("go_activeb6"); strings[5286] = str->add(strings[5286]); strings[5289] = str->add("go_activec6"); strings[1932] = str->add(strings[1932]); strings[5290] = str->add("sel"); strings[1932] = str->add(strings[1932]); strings[5290] = str->add(strings[5290]); str->del(strings[1932]); str->del(strings[5285]); str->del(strings[5286]); str->del(strings[5287]); str->del(strings[1932]); str->del(strings[5288]); str->del(strings[5286]); str->del(strings[5289]); str->del(strings[1932]); str->del(strings[5290]); str->del(strings[1932]); str->del(strings[5290]); strings[5291] = str->add("e,action,mouse,move"); strings[5292] = str->add("e"); str->del(strings[5291]); str->del(strings[5292]); strings[5293] = str->add("e,action,mouse,move"); strings[5294] = str->add("e"); str->del(strings[5293]); str->del(strings[5294]); strings[5295] = str->add("e,action,mouse,move"); strings[5296] = str->add("e"); str->del(strings[5295]); str->del(strings[5296]); str->del(strings[7]); str->del(strings[2257]); strings[7] = str->add(strings[7]); strings[2270] = str->add(strings[2270]); strings[5297] = str->add("e,action,mouse,move"); strings[5298] = str->add("e"); str->del(strings[5297]); str->del(strings[5298]); strings[5299] = str->add("e,action,mouse,move"); strings[5300] = str->add("e"); str->del(strings[5299]); str->del(strings[5300]); strings[5301] = str->add("e,action,mouse,move"); strings[5302] = str->add("e"); str->del(strings[5301]); str->del(strings[5302]); strings[5303] = str->add("e,action,mouse,move"); strings[5304] = str->add("e"); str->del(strings[5303]); str->del(strings[5304]); strings[5305] = str->add("e,action,mouse,move"); strings[5306] = str->add("e"); str->del(strings[5305]); str->del(strings[5306]); strings[5307] = str->add("e,action,mouse,move"); strings[5308] = str->add("e"); str->del(strings[5307]); str->del(strings[5308]); strings[5309] = str->add("program,start"); strings[5310] = str->add("go_active21"); strings[1932] = str->add(strings[1932]); strings[5310] = str->add(strings[5310]); strings[5309] = str->add(strings[5309]); strings[5311] = str->add("go_activeb21"); strings[5309] = str->add(strings[5309]); strings[5312] = str->add("go_active9"); strings[1932] = str->add(strings[1932]); strings[5312] = str->add(strings[5312]); strings[5309] = str->add(strings[5309]); strings[5313] = str->add("go_activeb9"); str->del(strings[5309]); str->del(strings[5310]); str->del(strings[1932]); str->del(strings[5310]); str->del(strings[5309]); str->del(strings[5311]); str->del(strings[5309]); str->del(strings[5312]); str->del(strings[1932]); str->del(strings[5312]); str->del(strings[5309]); str->del(strings[5313]); str->del(strings[7]); str->del(strings[2270]); strings[7] = str->add(strings[7]); strings[2276] = str->add(strings[2276]); str->del(strings[7]); str->del(strings[2276]); strings[7] = str->add(strings[7]); strings[3259] = str->add(strings[3259]); strings[1932] = str->add(strings[1932]); strings[5314] = str->add("go_activec1"); strings[5315] = str->add("program,start"); strings[5316] = str->add("go_activeb1"); strings[1932] = str->add(strings[1932]); strings[5317] = str->add("go_activec29"); strings[5315] = str->add(strings[5315]); strings[5318] = str->add("go_activeb29"); strings[1932] = str->add(strings[1932]); strings[5319] = str->add("go_activeb23"); strings[5315] = str->add(strings[5315]); strings[5320] = str->add("go_activec23"); strings[1932] = str->add(strings[1932]); strings[5321] = str->add("go_activeb7"); strings[5315] = str->add(strings[5315]); strings[5322] = str->add("go_activec7"); str->del(strings[1932]); str->del(strings[5314]); str->del(strings[5315]); str->del(strings[5316]); str->del(strings[1932]); str->del(strings[5317]); str->del(strings[5315]); str->del(strings[5318]); str->del(strings[1932]); str->del(strings[5319]); str->del(strings[5315]); str->del(strings[5320]); str->del(strings[1932]); str->del(strings[5321]); str->del(strings[5315]); str->del(strings[5322]); strings[5323] = str->add("e,action,mouse,move"); strings[5324] = str->add("e"); str->del(strings[5323]); str->del(strings[5324]); strings[5325] = str->add("e,action,mouse,move"); strings[5326] = str->add("e"); str->del(strings[5325]); str->del(strings[5326]); str->del(strings[7]); str->del(strings[3259]); strings[7] = str->add(strings[7]); strings[2292] = str->add(strings[2292]); strings[5327] = str->add("e,action,mouse,move"); strings[5328] = str->add("e"); str->del(strings[5327]); str->del(strings[5328]); strings[5329] = str->add("e,action,mouse,move"); strings[5330] = str->add("e"); str->del(strings[5329]); str->del(strings[5330]); strings[5331] = str->add("e,action,mouse,move"); strings[5332] = str->add("e"); str->del(strings[5331]); str->del(strings[5332]); strings[5333] = str->add("e,action,mouse,move"); strings[5334] = str->add("e"); str->del(strings[5333]); str->del(strings[5334]); strings[5335] = str->add("e,action,mouse,move"); strings[5336] = str->add("e"); str->del(strings[5335]); str->del(strings[5336]); str->del(strings[7]); str->del(strings[2292]); strings[7] = str->add(strings[7]); strings[2310] = str->add(strings[2310]); strings[5337] = str->add("e,action,mouse,move"); strings[5338] = str->add("e"); str->del(strings[5337]); str->del(strings[5338]); strings[5339] = str->add("e,action,mouse,move"); strings[5340] = str->add("e"); str->del(strings[5339]); str->del(strings[5340]); strings[5341] = str->add("e,action,mouse,move"); strings[5342] = str->add("e"); str->del(strings[5341]); str->del(strings[5342]); str->del(strings[7]); str->del(strings[2310]); strings[7] = str->add(strings[7]); strings[3279] = str->add(strings[3279]); strings[5343] = str->add("e,action,mouse,move"); strings[5344] = str->add("e"); strings[5345] = str->add("e,state,unselected"); strings[5344] = str->add(strings[5344]); strings[5345] = str->add(strings[5345]); strings[5344] = str->add(strings[5344]); strings[5345] = str->add(strings[5345]); strings[5344] = str->add(strings[5344]); strings[5345] = str->add(strings[5345]); strings[5344] = str->add(strings[5344]); strings[5345] = str->add(strings[5345]); strings[5344] = str->add(strings[5344]); strings[5345] = str->add(strings[5345]); strings[5344] = str->add(strings[5344]); str->del(strings[5343]); str->del(strings[5344]); strings[5346] = str->add("program,start"); strings[5347] = str->add("unsel"); str->del(strings[5345]); str->del(strings[5344]); str->del(strings[5345]); str->del(strings[5344]); strings[5346] = str->add(strings[5346]); strings[5347] = str->add(strings[5347]); str->del(strings[5345]); str->del(strings[5344]); strings[5346] = str->add(strings[5346]); strings[5347] = str->add(strings[5347]); strings[1932] = str->add(strings[1932]); strings[5347] = str->add(strings[5347]); str->del(strings[5345]); str->del(strings[5344]); str->del(strings[5345]); str->del(strings[5344]); str->del(strings[5345]); str->del(strings[5344]); str->del(strings[5346]); str->del(strings[5347]); str->del(strings[5346]); str->del(strings[5347]); str->del(strings[5346]); str->del(strings[5347]); str->del(strings[1932]); str->del(strings[5347]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[1932] = str->add(strings[1932]); strings[5348] = str->add("go_activec28"); strings[5349] = str->add("program,start"); strings[5350] = str->add("go_activeb28"); strings[1932] = str->add(strings[1932]); strings[5351] = str->add("go_activec2"); strings[5349] = str->add(strings[5349]); strings[5352] = str->add("go_activeb2"); strings[1932] = str->add(strings[1932]); strings[5353] = str->add("go_activeb22"); strings[5349] = str->add(strings[5349]); strings[5354] = str->add("go_activec22"); strings[1932] = str->add(strings[1932]); strings[5355] = str->add("go_activeb8"); strings[5349] = str->add(strings[5349]); strings[5356] = str->add("go_activec8"); str->del(strings[1932]); str->del(strings[5348]); str->del(strings[5349]); str->del(strings[5350]); str->del(strings[1932]); str->del(strings[5351]); str->del(strings[5349]); str->del(strings[5352]); str->del(strings[1932]); str->del(strings[5353]); str->del(strings[5349]); str->del(strings[5354]); str->del(strings[1932]); str->del(strings[5355]); str->del(strings[5349]); str->del(strings[5356]); strings[5357] = str->add("e,action,mouse,move"); strings[5358] = str->add("e"); str->del(strings[5357]); str->del(strings[5358]); strings[5359] = str->add("e,action,mouse,move"); strings[5360] = str->add("e"); str->del(strings[5359]); str->del(strings[5360]); str->del(strings[7]); str->del(strings[3279]); strings[7] = str->add(strings[7]); strings[2320] = str->add(strings[2320]); strings[5361] = str->add("e,action,mouse,move"); strings[5362] = str->add("e"); str->del(strings[5361]); str->del(strings[5362]); strings[1932] = str->add(strings[1932]); strings[5363] = str->add("unsel"); str->del(strings[1932]); str->del(strings[5363]); str->del(strings[7]); str->del(strings[2320]); strings[7] = str->add(strings[7]); strings[2330] = str->add(strings[2330]); str->del(strings[7]); str->del(strings[2330]); strings[7] = str->add(strings[7]); strings[2343] = str->add(strings[2343]); strings[1932] = str->add(strings[1932]); strings[5364] = str->add("go_activeb21"); strings[5365] = str->add("program,start"); strings[5366] = str->add("go_activec21"); strings[1932] = str->add(strings[1932]); strings[5367] = str->add("go_activeb9"); strings[5365] = str->add(strings[5365]); strings[5368] = str->add("go_activec9"); str->del(strings[1932]); str->del(strings[5364]); str->del(strings[5365]); str->del(strings[5366]); str->del(strings[1932]); str->del(strings[5367]); str->del(strings[5365]); str->del(strings[5368]); strings[5369] = str->add("e,action,mouse,move"); strings[5370] = str->add("e"); str->del(strings[5369]); str->del(strings[5370]); strings[5371] = str->add("e,action,mouse,move"); strings[5372] = str->add("e"); str->del(strings[5371]); str->del(strings[5372]); strings[1932] = str->add(strings[1932]); strings[5373] = str->add("go_activec27"); strings[5374] = str->add("program,start"); strings[5375] = str->add("go_activeb27"); strings[1932] = str->add(strings[1932]); strings[5376] = str->add("go_activec3"); strings[5374] = str->add(strings[5374]); strings[5377] = str->add("go_activeb3"); str->del(strings[1932]); str->del(strings[5373]); str->del(strings[5374]); str->del(strings[5375]); str->del(strings[1932]); str->del(strings[5376]); str->del(strings[5374]); str->del(strings[5377]); str->del(strings[7]); str->del(strings[2343]); strings[7] = str->add(strings[7]); strings[2353] = str->add(strings[2353]); strings[5378] = str->add("e,action,mouse,move"); strings[5379] = str->add("e"); str->del(strings[5378]); str->del(strings[5379]); strings[5380] = str->add("e,action,mouse,move"); strings[5381] = str->add("e"); str->del(strings[5380]); str->del(strings[5381]); strings[5382] = str->add("e,action,mouse,move"); strings[5383] = str->add("e"); strings[5384] = str->add("e,state,selected"); strings[5383] = str->add(strings[5383]); strings[5384] = str->add(strings[5384]); strings[5383] = str->add(strings[5383]); strings[5384] = str->add(strings[5384]); strings[5383] = str->add(strings[5383]); strings[5384] = str->add(strings[5384]); strings[5383] = str->add(strings[5383]); strings[5384] = str->add(strings[5384]); strings[5383] = str->add(strings[5383]); strings[5384] = str->add(strings[5384]); strings[5383] = str->add(strings[5383]); strings[2224] = str->add(strings[2224]); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[4] = str->add(strings[4]); strings[469] = str->add(strings[469]); strings[2685] = str->add(strings[2685]); strings[1925] = str->add(strings[1925]); strings[1926] = str->add(strings[1926]); strings[3083] = str->add(strings[3083]); strings[2494] = str->add(strings[2494]); strings[469] = str->add(strings[469]); strings[2711] = str->add(strings[2711]); strings[2514] = str->add(strings[2514]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[2536] = str->add(strings[2536]); strings[469] = str->add(strings[469]); strings[2713] = str->add(strings[2713]); str->del(strings[5382]); str->del(strings[5383]); strings[5385] = str->add("program,start"); strings[5386] = str->add("sel"); str->del(strings[5384]); str->del(strings[5383]); str->del(strings[5384]); str->del(strings[5383]); strings[5385] = str->add(strings[5385]); strings[5386] = str->add(strings[5386]); str->del(strings[5384]); str->del(strings[5383]); strings[5385] = str->add(strings[5385]); strings[5386] = str->add(strings[5386]); strings[1932] = str->add(strings[1932]); strings[5386] = str->add(strings[5386]); str->del(strings[5384]); str->del(strings[5383]); str->del(strings[5384]); str->del(strings[5383]); str->del(strings[5384]); str->del(strings[5383]); str->del(strings[5385]); str->del(strings[5386]); str->del(strings[5385]); str->del(strings[5386]); str->del(strings[5385]); str->del(strings[5386]); str->del(strings[1932]); str->del(strings[5386]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[5387] = str->add("resize"); str->del(strings[5387]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[5388] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5388] = str->add(strings[5388]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5388] = str->add(strings[5388]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[5388] = str->add(strings[5388]); strings[469] = str->add(strings[469]); strings[2902] = str->add(strings[2902]); strings[1841] = str->add(strings[1841]); strings[5389] = str->add("resize"); strings[5389] = str->add(strings[5389]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5388] = str->add(strings[5388]); strings[2224] = str->add(strings[2224]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2224] = str->add(strings[2224]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[5388] = str->add(strings[5388]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5388] = str->add(strings[5388]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5388] = str->add(strings[5388]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2685] = str->add(strings[2685]); strings[5388] = str->add(strings[5388]); strings[469] = str->add(strings[469]); strings[3089] = str->add(strings[3089]); strings[1841] = str->add(strings[1841]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5388] = str->add(strings[5388]); strings[4] = str->add(strings[4]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[4] = str->add(strings[4]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5388] = str->add(strings[5388]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5388] = str->add(strings[5388]); strings[1841] = str->add(strings[1841]); strings[1926] = str->add(strings[1926]); strings[3083] = str->add(strings[3083]); strings[5388] = str->add(strings[5388]); strings[1926] = str->add(strings[1926]); strings[1552] = str->add(strings[1552]); strings[1841] = str->add(strings[1841]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5388] = str->add(strings[5388]); strings[1925] = str->add(strings[1925]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1925] = str->add(strings[1925]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5388] = str->add(strings[5388]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5388] = str->add(strings[5388]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2711] = str->add(strings[2711]); strings[5388] = str->add(strings[5388]); strings[469] = str->add(strings[469]); strings[3092] = str->add(strings[3092]); strings[1841] = str->add(strings[1841]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5388] = str->add(strings[5388]); strings[2494] = str->add(strings[2494]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2494] = str->add(strings[2494]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5388] = str->add(strings[5388]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5388] = str->add(strings[5388]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[5388] = str->add(strings[5388]); strings[469] = str->add(strings[469]); strings[3094] = str->add(strings[3094]); strings[1841] = str->add(strings[1841]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5388] = str->add(strings[5388]); strings[2514] = str->add(strings[2514]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2514] = str->add(strings[2514]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5388] = str->add(strings[5388]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5388] = str->add(strings[5388]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2713] = str->add(strings[2713]); strings[5388] = str->add(strings[5388]); strings[469] = str->add(strings[469]); strings[3096] = str->add(strings[3096]); strings[1841] = str->add(strings[1841]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5388] = str->add(strings[5388]); strings[2536] = str->add(strings[2536]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2536] = str->add(strings[2536]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[5389] = str->add(strings[5389]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2708]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[5146]); str->del(strings[5146]); str->del(strings[5146]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2677]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1726]); str->del(strings[1726]); str->del(strings[1726]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2678]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[5147]); str->del(strings[5147]); str->del(strings[5147]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2676]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1724]); str->del(strings[1724]); str->del(strings[1724]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2675]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1722]); str->del(strings[1722]); str->del(strings[1722]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2674]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[5148]); str->del(strings[5148]); str->del(strings[5148]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3008]); str->del(strings[5146]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3011]); str->del(strings[1726]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3013]); str->del(strings[5147]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3015]); str->del(strings[1724]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3017]); str->del(strings[1722]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3019]); str->del(strings[5148]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); strings[5389] = str->add(strings[5389]); strings[2224] = str->add(strings[2224]); strings[2224] = str->add(strings[2224]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[5389] = str->add(strings[5389]); strings[4] = str->add(strings[4]); strings[4] = str->add(strings[4]); strings[5389] = str->add(strings[5389]); strings[1925] = str->add(strings[1925]); strings[1925] = str->add(strings[1925]); strings[5389] = str->add(strings[5389]); strings[2494] = str->add(strings[2494]); strings[2494] = str->add(strings[2494]); strings[5389] = str->add(strings[5389]); strings[2514] = str->add(strings[2514]); strings[2514] = str->add(strings[2514]); strings[5389] = str->add(strings[5389]); strings[2536] = str->add(strings[2536]); strings[2536] = str->add(strings[2536]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); strings[5390] = str->add("font"); strings[5391] = str->add("font_fallbacks"); strings[5392] = str->add("font_size"); strings[5393] = str->add("font_source"); strings[5394] = str->add("color"); strings[5395] = str->add("underline_color"); strings[5396] = str->add("underline2_color"); strings[5397] = str->add("outline_color"); strings[5398] = str->add("shadow_color"); strings[5399] = str->add("glow_color"); strings[5400] = str->add("glow2_color"); strings[5401] = str->add("backing_color"); strings[5402] = str->add("strikethrough_color"); strings[5403] = str->add("align"); strings[5404] = str->add("valign"); strings[5405] = str->add("wrap"); strings[5406] = str->add("left_margin"); strings[5407] = str->add("right_margin"); strings[5408] = str->add("underline"); strings[5409] = str->add("strikethrough"); strings[5410] = str->add("backing"); strings[5411] = str->add("style"); strings[5412] = str->add("tabstops"); strings[5403] = str->add(strings[5403]); strings[5413] = str->add("center"); str->del(strings[5403]); str->del(strings[5413]); strings[5394] = str->add(strings[5394]); strings[5414] = str->add("#000"); str->del(strings[5394]); str->del(strings[5414]); strings[5411] = str->add(strings[5411]); strings[5415] = str->add("shadow"); str->del(strings[5411]); str->del(strings[5415]); strings[5398] = str->add(strings[5398]); strings[5416] = str->add("#ffffff80"); str->del(strings[5398]); str->del(strings[5416]); strings[5405] = str->add(strings[5405]); strings[5417] = str->add("word"); str->del(strings[5405]); str->del(strings[5417]); strings[5393] = str->add(strings[5393]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[5393]); str->del(strings[469]); strings[5392] = str->add(strings[5392]); strings[5418] = str->add("10.000000"); str->del(strings[5392]); str->del(strings[5418]); strings[5390] = str->add(strings[5390]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[5390]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5411] = str->add(strings[5411]); strings[5419] = str->add("glow"); str->del(strings[5411]); str->del(strings[5419]); strings[5394] = str->add(strings[5394]); strings[5420] = str->add("#fff"); str->del(strings[5394]); str->del(strings[5420]); strings[5400] = str->add(strings[5400]); strings[5421] = str->add("#fe87"); str->del(strings[5400]); str->del(strings[5421]); strings[5399] = str->add(strings[5399]); strings[5422] = str->add("#fa14"); str->del(strings[5399]); str->del(strings[5422]); strings[5390] = str->add(strings[5390]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5390]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5411] = str->add(strings[5411]); strings[5423] = str->add("glow"); str->del(strings[5411]); str->del(strings[5423]); strings[5394] = str->add(strings[5394]); strings[5424] = str->add("#fff"); str->del(strings[5394]); str->del(strings[5424]); strings[5400] = str->add(strings[5400]); strings[5425] = str->add("#fe87"); str->del(strings[5400]); str->del(strings[5425]); strings[5399] = str->add(strings[5399]); strings[5426] = str->add("#fa14"); str->del(strings[5399]); str->del(strings[5426]); strings[5390] = str->add(strings[5390]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5390]); str->del(strings[471]); str->del(strings[5390]); str->del(strings[5391]); str->del(strings[5392]); str->del(strings[5393]); str->del(strings[5394]); str->del(strings[5395]); str->del(strings[5396]); str->del(strings[5397]); str->del(strings[5398]); str->del(strings[5399]); str->del(strings[5400]); str->del(strings[5401]); str->del(strings[5402]); str->del(strings[5403]); str->del(strings[5404]); str->del(strings[5405]); str->del(strings[5406]); str->del(strings[5407]); str->del(strings[5408]); str->del(strings[5409]); str->del(strings[5410]); str->del(strings[5411]); str->del(strings[5412]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[5427] = str->add("font"); strings[5428] = str->add("font_fallbacks"); strings[5429] = str->add("font_size"); strings[5430] = str->add("font_source"); strings[5431] = str->add("color"); strings[5432] = str->add("underline_color"); strings[5433] = str->add("underline2_color"); strings[5434] = str->add("outline_color"); strings[5435] = str->add("shadow_color"); strings[5436] = str->add("glow_color"); strings[5437] = str->add("glow2_color"); strings[5438] = str->add("backing_color"); strings[5439] = str->add("strikethrough_color"); strings[5440] = str->add("align"); strings[5441] = str->add("valign"); strings[5442] = str->add("wrap"); strings[5443] = str->add("left_margin"); strings[5444] = str->add("right_margin"); strings[5445] = str->add("underline"); strings[5446] = str->add("strikethrough"); strings[5447] = str->add("backing"); strings[5448] = str->add("style"); strings[5449] = str->add("tabstops"); strings[5440] = str->add(strings[5440]); strings[5450] = str->add("center"); str->del(strings[5440]); str->del(strings[5450]); strings[5431] = str->add(strings[5431]); strings[5451] = str->add("#000"); str->del(strings[5431]); str->del(strings[5451]); strings[5448] = str->add(strings[5448]); strings[5452] = str->add("shadow"); str->del(strings[5448]); str->del(strings[5452]); strings[5435] = str->add(strings[5435]); strings[5453] = str->add("#ffffff80"); str->del(strings[5435]); str->del(strings[5453]); strings[5442] = str->add(strings[5442]); strings[5454] = str->add("word"); str->del(strings[5442]); str->del(strings[5454]); strings[5430] = str->add(strings[5430]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[5430]); str->del(strings[469]); strings[5429] = str->add(strings[5429]); strings[5455] = str->add("10.000000"); str->del(strings[5429]); str->del(strings[5455]); strings[5427] = str->add(strings[5427]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[5427]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5448] = str->add(strings[5448]); strings[5456] = str->add("soft_shadow"); str->del(strings[5448]); str->del(strings[5456]); strings[5431] = str->add(strings[5431]); strings[5457] = str->add("#fff"); str->del(strings[5431]); str->del(strings[5457]); strings[5435] = str->add(strings[5435]); strings[5458] = str->add("#00000020"); str->del(strings[5435]); str->del(strings[5458]); strings[5429] = str->add(strings[5429]); strings[5459] = str->add("12.000000"); str->del(strings[5429]); str->del(strings[5459]); strings[5427] = str->add(strings[5427]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5427]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[5427]); str->del(strings[5428]); str->del(strings[5429]); str->del(strings[5430]); str->del(strings[5431]); str->del(strings[5432]); str->del(strings[5433]); str->del(strings[5434]); str->del(strings[5435]); str->del(strings[5436]); str->del(strings[5437]); str->del(strings[5438]); str->del(strings[5439]); str->del(strings[5440]); str->del(strings[5441]); str->del(strings[5442]); str->del(strings[5443]); str->del(strings[5444]); str->del(strings[5445]); str->del(strings[5446]); str->del(strings[5447]); str->del(strings[5448]); str->del(strings[5449]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5388]); str->del(strings[1841]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); str->del(strings[5389]); strings[5460] = str->add("e,action,mouse,move"); strings[5461] = str->add("e"); str->del(strings[5460]); str->del(strings[5461]); strings[1932] = str->add(strings[1932]); strings[5462] = str->add("unsel"); str->del(strings[1932]); str->del(strings[5462]); strings[5463] = str->add("font"); strings[5464] = str->add("font_fallbacks"); strings[5465] = str->add("font_size"); strings[5466] = str->add("font_source"); strings[5467] = str->add("color"); strings[5468] = str->add("underline_color"); strings[5469] = str->add("underline2_color"); strings[5470] = str->add("outline_color"); strings[5471] = str->add("shadow_color"); strings[5472] = str->add("glow_color"); strings[5473] = str->add("glow2_color"); strings[5474] = str->add("backing_color"); strings[5475] = str->add("strikethrough_color"); strings[5476] = str->add("align"); strings[5477] = str->add("valign"); strings[5478] = str->add("wrap"); strings[5479] = str->add("left_margin"); strings[5480] = str->add("right_margin"); strings[5481] = str->add("underline"); strings[5482] = str->add("strikethrough"); strings[5483] = str->add("backing"); strings[5484] = str->add("style"); strings[5485] = str->add("tabstops"); strings[5476] = str->add(strings[5476]); strings[5486] = str->add("center"); str->del(strings[5476]); str->del(strings[5486]); strings[5467] = str->add(strings[5467]); strings[5487] = str->add("#000"); str->del(strings[5467]); str->del(strings[5487]); strings[5484] = str->add(strings[5484]); strings[5488] = str->add("shadow"); str->del(strings[5484]); str->del(strings[5488]); strings[5471] = str->add(strings[5471]); strings[5489] = str->add("#ffffff80"); str->del(strings[5471]); str->del(strings[5489]); strings[5478] = str->add(strings[5478]); strings[5490] = str->add("word"); str->del(strings[5478]); str->del(strings[5490]); strings[5466] = str->add(strings[5466]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[5466]); str->del(strings[469]); strings[5465] = str->add(strings[5465]); strings[5491] = str->add("10.000000"); str->del(strings[5465]); str->del(strings[5491]); strings[5463] = str->add(strings[5463]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[5463]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5484] = str->add(strings[5484]); strings[5492] = str->add("soft_shadow"); str->del(strings[5484]); str->del(strings[5492]); strings[5467] = str->add(strings[5467]); strings[5493] = str->add("#fff"); str->del(strings[5467]); str->del(strings[5493]); strings[5471] = str->add(strings[5471]); strings[5494] = str->add("#00000020"); str->del(strings[5471]); str->del(strings[5494]); strings[5465] = str->add(strings[5465]); strings[5495] = str->add("12.000000"); str->del(strings[5465]); str->del(strings[5495]); strings[5463] = str->add(strings[5463]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5463]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[5463]); str->del(strings[5464]); str->del(strings[5465]); str->del(strings[5466]); str->del(strings[5467]); str->del(strings[5468]); str->del(strings[5469]); str->del(strings[5470]); str->del(strings[5471]); str->del(strings[5472]); str->del(strings[5473]); str->del(strings[5474]); str->del(strings[5475]); str->del(strings[5476]); str->del(strings[5477]); str->del(strings[5478]); str->del(strings[5479]); str->del(strings[5480]); str->del(strings[5481]); str->del(strings[5482]); str->del(strings[5483]); str->del(strings[5484]); str->del(strings[5485]); str->del(strings[7]); str->del(strings[2353]); strings[7] = str->add(strings[7]); strings[2363] = str->add(strings[2363]); strings[5496] = str->add("e,action,mouse,move"); strings[5497] = str->add("e"); str->del(strings[5496]); str->del(strings[5497]); strings[5498] = str->add("e,action,mouse,move"); strings[5499] = str->add("e"); str->del(strings[5498]); str->del(strings[5499]); strings[1932] = str->add(strings[1932]); strings[5500] = str->add("go_activeb1"); strings[5501] = str->add("program,start"); strings[5502] = str->add("go_activec1"); strings[1932] = str->add(strings[1932]); strings[5503] = str->add("go_activeb29"); strings[5501] = str->add(strings[5501]); strings[5504] = str->add("go_activec29"); str->del(strings[1932]); str->del(strings[5500]); str->del(strings[5501]); str->del(strings[5502]); str->del(strings[1932]); str->del(strings[5503]); str->del(strings[5501]); str->del(strings[5504]); strings[5505] = str->add("e,action,mouse,move"); strings[5506] = str->add("e"); str->del(strings[5505]); str->del(strings[5506]); strings[5507] = str->add("e,action,mouse,move"); strings[5508] = str->add("e"); str->del(strings[5507]); str->del(strings[5508]); strings[5509] = str->add("e,action,mouse,move"); strings[5510] = str->add("e"); str->del(strings[5509]); str->del(strings[5510]); strings[5511] = str->add("e,action,mouse,move"); strings[5512] = str->add("e"); str->del(strings[5511]); str->del(strings[5512]); strings[5513] = str->add("e,action,mouse,move"); strings[5514] = str->add("e"); str->del(strings[5513]); str->del(strings[5514]); str->del(strings[7]); str->del(strings[2363]); strings[7] = str->add(strings[7]); strings[2383] = str->add(strings[2383]); strings[5515] = str->add("e,action,mouse,move"); strings[5516] = str->add("e"); str->del(strings[5515]); str->del(strings[5516]); strings[5517] = str->add("e,action,mouse,move"); strings[5518] = str->add("e"); str->del(strings[5517]); str->del(strings[5518]); strings[5519] = str->add("e,action,mouse,move"); strings[5520] = str->add("e"); str->del(strings[5519]); str->del(strings[5520]); strings[5521] = str->add("e,action,mouse,move"); strings[5522] = str->add("e"); str->del(strings[5521]); str->del(strings[5522]); strings[5523] = str->add("e,action,mouse,move"); strings[5524] = str->add("e"); str->del(strings[5523]); str->del(strings[5524]); strings[5525] = str->add("e,action,mouse,move"); strings[5526] = str->add("e"); str->del(strings[5525]); str->del(strings[5526]); strings[5527] = str->add("e,action,mouse,move"); strings[5528] = str->add("e"); str->del(strings[5527]); str->del(strings[5528]); strings[1932] = str->add(strings[1932]); strings[5529] = str->add("go_activec26"); strings[5530] = str->add("program,start"); strings[5531] = str->add("go_activeb26"); strings[1932] = str->add(strings[1932]); strings[5532] = str->add("go_activec4"); strings[5530] = str->add(strings[5530]); strings[5533] = str->add("go_activeb4"); str->del(strings[1932]); str->del(strings[5529]); str->del(strings[5530]); str->del(strings[5531]); str->del(strings[1932]); str->del(strings[5532]); str->del(strings[5530]); str->del(strings[5533]); str->del(strings[7]); str->del(strings[2383]); strings[7] = str->add(strings[7]); strings[2404] = str->add(strings[2404]); strings[5534] = str->add("e,action,mouse,move"); strings[5535] = str->add("e"); str->del(strings[5534]); str->del(strings[5535]); strings[5536] = str->add("e,action,mouse,move"); strings[5537] = str->add("e"); str->del(strings[5536]); str->del(strings[5537]); strings[5538] = str->add("e,action,mouse,move"); strings[5539] = str->add("e"); str->del(strings[5538]); str->del(strings[5539]); strings[5540] = str->add("e,action,mouse,move"); strings[5541] = str->add("e"); str->del(strings[5540]); str->del(strings[5541]); strings[5542] = str->add("e,action,mouse,move"); strings[5543] = str->add("e"); str->del(strings[5542]); str->del(strings[5543]); strings[5544] = str->add("e,action,mouse,move"); strings[5545] = str->add("e"); str->del(strings[5544]); str->del(strings[5545]); strings[5546] = str->add("e,action,mouse,move"); strings[5547] = str->add("e"); str->del(strings[5546]); str->del(strings[5547]); strings[5548] = str->add("e,action,mouse,move"); strings[5549] = str->add("e"); str->del(strings[5548]); str->del(strings[5549]); strings[1932] = str->add(strings[1932]); strings[5550] = str->add("sel"); strings[1932] = str->add(strings[1932]); strings[5550] = str->add(strings[5550]); str->del(strings[1932]); str->del(strings[5550]); str->del(strings[1932]); str->del(strings[5550]); str->del(strings[7]); str->del(strings[2404]); strings[7] = str->add(strings[7]); strings[2416] = str->add(strings[2416]); strings[5551] = str->add("e,action,mouse,move"); strings[5552] = str->add("e"); str->del(strings[5551]); str->del(strings[5552]); strings[5553] = str->add("e,action,mouse,move"); strings[5554] = str->add("e"); str->del(strings[5553]); str->del(strings[5554]); strings[5555] = str->add("e,action,mouse,move"); strings[5556] = str->add("e"); strings[5557] = str->add("e,state,unselected"); strings[5556] = str->add(strings[5556]); strings[5557] = str->add(strings[5557]); strings[5556] = str->add(strings[5556]); strings[5557] = str->add(strings[5557]); strings[5556] = str->add(strings[5556]); strings[5557] = str->add(strings[5557]); strings[5556] = str->add(strings[5556]); strings[5557] = str->add(strings[5557]); strings[5556] = str->add(strings[5556]); strings[5557] = str->add(strings[5557]); strings[5556] = str->add(strings[5556]); str->del(strings[5555]); str->del(strings[5556]); strings[5558] = str->add("program,start"); strings[5559] = str->add("unsel"); str->del(strings[5557]); str->del(strings[5556]); str->del(strings[5557]); str->del(strings[5556]); strings[5558] = str->add(strings[5558]); strings[5559] = str->add(strings[5559]); str->del(strings[5557]); str->del(strings[5556]); strings[5558] = str->add(strings[5558]); strings[5559] = str->add(strings[5559]); strings[1932] = str->add(strings[1932]); strings[5559] = str->add(strings[5559]); str->del(strings[5557]); str->del(strings[5556]); str->del(strings[5557]); str->del(strings[5556]); str->del(strings[5557]); str->del(strings[5556]); str->del(strings[5558]); str->del(strings[5559]); str->del(strings[5558]); str->del(strings[5559]); str->del(strings[5558]); str->del(strings[5559]); str->del(strings[1932]); str->del(strings[5559]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[5560] = str->add("e,action,mouse,move"); strings[5561] = str->add("e"); str->del(strings[5560]); str->del(strings[5561]); strings[1932] = str->add(strings[1932]); strings[5562] = str->add("go_activeb28"); strings[5563] = str->add("program,start"); strings[5564] = str->add("go_activec28"); strings[1932] = str->add(strings[1932]); strings[5565] = str->add("go_activeb2"); strings[5563] = str->add(strings[5563]); strings[5566] = str->add("go_activec2"); str->del(strings[1932]); str->del(strings[5562]); str->del(strings[5563]); str->del(strings[5564]); str->del(strings[1932]); str->del(strings[5565]); str->del(strings[5563]); str->del(strings[5566]); strings[5567] = str->add("e,action,mouse,move"); strings[5568] = str->add("e"); str->del(strings[5567]); str->del(strings[5568]); strings[5569] = str->add("e,action,mouse,move"); strings[5570] = str->add("e"); str->del(strings[5569]); str->del(strings[5570]); strings[5571] = str->add("e,action,mouse,move"); strings[5572] = str->add("e"); str->del(strings[5571]); str->del(strings[5572]); str->del(strings[7]); str->del(strings[2416]); strings[7] = str->add(strings[7]); strings[2426] = str->add(strings[2426]); strings[5573] = str->add("e,action,mouse,move"); strings[5574] = str->add("e"); str->del(strings[5573]); str->del(strings[5574]); strings[1932] = str->add(strings[1932]); strings[5575] = str->add("unsel"); str->del(strings[1932]); str->del(strings[5575]); str->del(strings[7]); str->del(strings[2426]); strings[7] = str->add(strings[7]); strings[2435] = str->add(strings[2435]); strings[5576] = str->add("e,action,mouse,move"); strings[5577] = str->add("e"); str->del(strings[5576]); str->del(strings[5577]); strings[1932] = str->add(strings[1932]); strings[5578] = str->add("go_activec25"); strings[5579] = str->add("program,start"); strings[5580] = str->add("go_activeb25"); strings[1932] = str->add(strings[1932]); strings[5581] = str->add("go_activec5"); strings[5579] = str->add(strings[5579]); strings[5582] = str->add("go_activeb5"); str->del(strings[1932]); str->del(strings[5578]); str->del(strings[5579]); str->del(strings[5580]); str->del(strings[1932]); str->del(strings[5581]); str->del(strings[5579]); str->del(strings[5582]); strings[5583] = str->add("e,action,mouse,move"); strings[5584] = str->add("e"); str->del(strings[5583]); str->del(strings[5584]); strings[5585] = str->add("e,action,mouse,move"); strings[5586] = str->add("e"); str->del(strings[5585]); str->del(strings[5586]); str->del(strings[7]); str->del(strings[2435]); strings[7] = str->add(strings[7]); strings[2448] = str->add(strings[2448]); strings[5587] = str->add("e,action,mouse,move"); strings[5588] = str->add("e"); str->del(strings[5587]); str->del(strings[5588]); strings[5589] = str->add("e,action,mouse,move"); strings[5590] = str->add("e"); str->del(strings[5589]); str->del(strings[5590]); strings[5591] = str->add("e,action,mouse,move"); strings[5592] = str->add("e"); str->del(strings[5591]); str->del(strings[5592]); strings[5593] = str->add("e,action,mouse,move"); strings[5594] = str->add("e"); str->del(strings[5593]); str->del(strings[5594]); strings[5595] = str->add("e,action,mouse,move"); strings[5596] = str->add("e"); str->del(strings[5595]); str->del(strings[5596]); strings[5597] = str->add("e,action,mouse,move"); strings[5598] = str->add("e"); str->del(strings[5597]); str->del(strings[5598]); strings[5599] = str->add("e,action,mouse,move"); strings[5600] = str->add("e"); str->del(strings[5599]); str->del(strings[5600]); strings[1932] = str->add(strings[1932]); strings[5601] = str->add("go_activeb27"); strings[5602] = str->add("program,start"); strings[5603] = str->add("go_activec27"); strings[1932] = str->add(strings[1932]); strings[5604] = str->add("go_activeb3"); strings[5602] = str->add(strings[5602]); strings[5605] = str->add("go_activec3"); str->del(strings[1932]); str->del(strings[5601]); str->del(strings[5602]); str->del(strings[5603]); str->del(strings[1932]); str->del(strings[5604]); str->del(strings[5602]); str->del(strings[5605]); str->del(strings[7]); str->del(strings[2448]); strings[7] = str->add(strings[7]); strings[2466] = str->add(strings[2466]); strings[5606] = str->add("e,action,mouse,move"); strings[5607] = str->add("e"); str->del(strings[5606]); str->del(strings[5607]); strings[5608] = str->add("e,action,mouse,move"); strings[5609] = str->add("e"); str->del(strings[5608]); str->del(strings[5609]); strings[5610] = str->add("e,action,mouse,move"); strings[5611] = str->add("e"); str->del(strings[5610]); str->del(strings[5611]); strings[5612] = str->add("e,action,mouse,move"); strings[5613] = str->add("e"); str->del(strings[5612]); str->del(strings[5613]); strings[5614] = str->add("e,action,mouse,move"); strings[5615] = str->add("e"); str->del(strings[5614]); str->del(strings[5615]); strings[5616] = str->add("e,action,mouse,move"); strings[5617] = str->add("e"); str->del(strings[5616]); str->del(strings[5617]); strings[5618] = str->add("e,action,mouse,move"); strings[5619] = str->add("e"); str->del(strings[5618]); str->del(strings[5619]); strings[1932] = str->add(strings[1932]); strings[5620] = str->add("go_activec24"); strings[5621] = str->add("program,start"); strings[5622] = str->add("go_activeb24"); strings[1932] = str->add(strings[1932]); strings[5623] = str->add("go_activec6"); strings[5621] = str->add(strings[5621]); strings[5624] = str->add("go_activeb6"); strings[1932] = str->add(strings[1932]); strings[5625] = str->add("unsel"); str->del(strings[1932]); str->del(strings[5620]); str->del(strings[5621]); str->del(strings[5622]); str->del(strings[1932]); str->del(strings[5623]); str->del(strings[5621]); str->del(strings[5624]); str->del(strings[1932]); str->del(strings[5625]); str->del(strings[7]); str->del(strings[2466]); strings[7] = str->add(strings[7]); strings[2479] = str->add(strings[2479]); strings[5626] = str->add("e,action,mouse,move"); strings[5627] = str->add("e"); strings[5628] = str->add("e,state,selected"); strings[5627] = str->add(strings[5627]); strings[5628] = str->add(strings[5628]); strings[5627] = str->add(strings[5627]); strings[5628] = str->add(strings[5628]); strings[5627] = str->add(strings[5627]); strings[5628] = str->add(strings[5628]); strings[5627] = str->add(strings[5627]); strings[5628] = str->add(strings[5628]); strings[5627] = str->add(strings[5627]); strings[5628] = str->add(strings[5628]); strings[5627] = str->add(strings[5627]); str->del(strings[5626]); str->del(strings[5627]); strings[5629] = str->add("program,start"); strings[5630] = str->add("sel"); str->del(strings[5628]); str->del(strings[5627]); str->del(strings[5628]); str->del(strings[5627]); strings[5629] = str->add(strings[5629]); strings[5630] = str->add(strings[5630]); str->del(strings[5628]); str->del(strings[5627]); strings[5629] = str->add(strings[5629]); strings[5630] = str->add(strings[5630]); strings[1932] = str->add(strings[1932]); strings[5630] = str->add(strings[5630]); str->del(strings[5628]); str->del(strings[5627]); strings[5629] = str->add(strings[5629]); strings[5631] = str->add("e_in"); str->del(strings[5628]); str->del(strings[5627]); str->del(strings[5628]); str->del(strings[5627]); str->del(strings[5629]); str->del(strings[5630]); str->del(strings[5629]); str->del(strings[5630]); str->del(strings[5629]); str->del(strings[5630]); str->del(strings[1932]); str->del(strings[5630]); str->del(strings[5629]); str->del(strings[5631]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[5632] = str->add("resize"); str->del(strings[5632]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[5633] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5633] = str->add(strings[5633]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5633] = str->add(strings[5633]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[5633] = str->add(strings[5633]); strings[469] = str->add(strings[469]); strings[2898] = str->add(strings[2898]); strings[469] = str->add(strings[469]); strings[2900] = str->add(strings[2900]); strings[1841] = str->add(strings[1841]); strings[5634] = str->add("resize"); strings[5634] = str->add(strings[5634]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5633] = str->add(strings[5633]); strings[4956] = str->add(strings[4956]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[4956] = str->add(strings[4956]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5633] = str->add(strings[5633]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5633] = str->add(strings[5633]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[5633] = str->add(strings[5633]); strings[469] = str->add(strings[469]); strings[3094] = str->add(strings[3094]); strings[1841] = str->add(strings[1841]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5633] = str->add(strings[5633]); strings[2514] = str->add(strings[2514]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2514] = str->add(strings[2514]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[5633] = str->add(strings[5633]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5633] = str->add(strings[5633]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5633] = str->add(strings[5633]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2672] = str->add(strings[2672]); strings[5633] = str->add(strings[5633]); strings[469] = str->add(strings[469]); strings[3130] = str->add(strings[3130]); strings[1841] = str->add(strings[1841]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5633] = str->add(strings[5633]); strings[1713] = str->add(strings[1713]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1713] = str->add(strings[1713]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[5633] = str->add(strings[5633]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[5633] = str->add(strings[5633]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2673] = str->add(strings[2673]); strings[5633] = str->add(strings[5633]); strings[469] = str->add(strings[469]); strings[3132] = str->add(strings[3132]); strings[1841] = str->add(strings[1841]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[5633] = str->add(strings[5633]); strings[1714] = str->add(strings[1714]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1714] = str->add(strings[1714]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[5634] = str->add(strings[5634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2688]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2224]); str->del(strings[2224]); str->del(strings[2224]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2685]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[4]); str->del(strings[4]); str->del(strings[4]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1926]); str->del(strings[3083]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1925]); str->del(strings[1925]); str->del(strings[1925]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2711]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2494]); str->del(strings[2494]); str->del(strings[2494]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2680]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2713]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2536]); str->del(strings[2536]); str->del(strings[2536]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2902]); str->del(strings[2224]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3089]); str->del(strings[4]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[1926]); str->del(strings[1552]); str->del(strings[1925]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3092]); str->del(strings[2494]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3094]); str->del(strings[2514]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3096]); str->del(strings[2536]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); strings[5634] = str->add(strings[5634]); strings[4956] = str->add(strings[4956]); strings[4956] = str->add(strings[4956]); strings[5634] = str->add(strings[5634]); strings[2514] = str->add(strings[2514]); strings[2514] = str->add(strings[2514]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[5634] = str->add(strings[5634]); strings[1713] = str->add(strings[1713]); strings[1713] = str->add(strings[1713]); strings[5634] = str->add(strings[5634]); strings[1714] = str->add(strings[1714]); strings[1714] = str->add(strings[1714]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); strings[5635] = str->add("font"); strings[5636] = str->add("font_fallbacks"); strings[5637] = str->add("font_size"); strings[5638] = str->add("font_source"); strings[5639] = str->add("color"); strings[5640] = str->add("underline_color"); strings[5641] = str->add("underline2_color"); strings[5642] = str->add("outline_color"); strings[5643] = str->add("shadow_color"); strings[5644] = str->add("glow_color"); strings[5645] = str->add("glow2_color"); strings[5646] = str->add("backing_color"); strings[5647] = str->add("strikethrough_color"); strings[5648] = str->add("align"); strings[5649] = str->add("valign"); strings[5650] = str->add("wrap"); strings[5651] = str->add("left_margin"); strings[5652] = str->add("right_margin"); strings[5653] = str->add("underline"); strings[5654] = str->add("strikethrough"); strings[5655] = str->add("backing"); strings[5656] = str->add("style"); strings[5657] = str->add("tabstops"); strings[5648] = str->add(strings[5648]); strings[5658] = str->add("center"); str->del(strings[5648]); str->del(strings[5658]); strings[5639] = str->add(strings[5639]); strings[5659] = str->add("#000"); str->del(strings[5639]); str->del(strings[5659]); strings[5656] = str->add(strings[5656]); strings[5660] = str->add("shadow"); str->del(strings[5656]); str->del(strings[5660]); strings[5643] = str->add(strings[5643]); strings[5661] = str->add("#ffffff80"); str->del(strings[5643]); str->del(strings[5661]); strings[5650] = str->add(strings[5650]); strings[5662] = str->add("word"); str->del(strings[5650]); str->del(strings[5662]); strings[5638] = str->add(strings[5638]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[5638]); str->del(strings[469]); strings[5637] = str->add(strings[5637]); strings[5663] = str->add("10.000000"); str->del(strings[5637]); str->del(strings[5663]); strings[5635] = str->add(strings[5635]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[5635]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5656] = str->add(strings[5656]); strings[5664] = str->add("glow"); str->del(strings[5656]); str->del(strings[5664]); strings[5639] = str->add(strings[5639]); strings[5665] = str->add("#fff"); str->del(strings[5639]); str->del(strings[5665]); strings[5645] = str->add(strings[5645]); strings[5666] = str->add("#fe87"); str->del(strings[5645]); str->del(strings[5666]); strings[5644] = str->add(strings[5644]); strings[5667] = str->add("#fa14"); str->del(strings[5644]); str->del(strings[5667]); strings[5635] = str->add(strings[5635]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5635]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5656] = str->add(strings[5656]); strings[5668] = str->add("glow"); str->del(strings[5656]); str->del(strings[5668]); strings[5639] = str->add(strings[5639]); strings[5669] = str->add("#fff"); str->del(strings[5639]); str->del(strings[5669]); strings[5645] = str->add(strings[5645]); strings[5670] = str->add("#fe87"); str->del(strings[5645]); str->del(strings[5670]); strings[5644] = str->add(strings[5644]); strings[5671] = str->add("#fa14"); str->del(strings[5644]); str->del(strings[5671]); strings[5635] = str->add(strings[5635]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5635]); str->del(strings[471]); str->del(strings[5635]); str->del(strings[5636]); str->del(strings[5637]); str->del(strings[5638]); str->del(strings[5639]); str->del(strings[5640]); str->del(strings[5641]); str->del(strings[5642]); str->del(strings[5643]); str->del(strings[5644]); str->del(strings[5645]); str->del(strings[5646]); str->del(strings[5647]); str->del(strings[5648]); str->del(strings[5649]); str->del(strings[5650]); str->del(strings[5651]); str->del(strings[5652]); str->del(strings[5653]); str->del(strings[5654]); str->del(strings[5655]); str->del(strings[5656]); str->del(strings[5657]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[5672] = str->add("font"); strings[5673] = str->add("font_fallbacks"); strings[5674] = str->add("font_size"); strings[5675] = str->add("font_source"); strings[5676] = str->add("color"); strings[5677] = str->add("underline_color"); strings[5678] = str->add("underline2_color"); strings[5679] = str->add("outline_color"); strings[5680] = str->add("shadow_color"); strings[5681] = str->add("glow_color"); strings[5682] = str->add("glow2_color"); strings[5683] = str->add("backing_color"); strings[5684] = str->add("strikethrough_color"); strings[5685] = str->add("align"); strings[5686] = str->add("valign"); strings[5687] = str->add("wrap"); strings[5688] = str->add("left_margin"); strings[5689] = str->add("right_margin"); strings[5690] = str->add("underline"); strings[5691] = str->add("strikethrough"); strings[5692] = str->add("backing"); strings[5693] = str->add("style"); strings[5694] = str->add("tabstops"); strings[5685] = str->add(strings[5685]); strings[5695] = str->add("center"); str->del(strings[5685]); str->del(strings[5695]); strings[5676] = str->add(strings[5676]); strings[5696] = str->add("#000"); str->del(strings[5676]); str->del(strings[5696]); strings[5693] = str->add(strings[5693]); strings[5697] = str->add("shadow"); str->del(strings[5693]); str->del(strings[5697]); strings[5680] = str->add(strings[5680]); strings[5698] = str->add("#ffffff80"); str->del(strings[5680]); str->del(strings[5698]); strings[5687] = str->add(strings[5687]); strings[5699] = str->add("word"); str->del(strings[5687]); str->del(strings[5699]); strings[5675] = str->add(strings[5675]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[5675]); str->del(strings[469]); strings[5674] = str->add(strings[5674]); strings[5700] = str->add("10.000000"); str->del(strings[5674]); str->del(strings[5700]); strings[5672] = str->add(strings[5672]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[5672]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5693] = str->add(strings[5693]); strings[5701] = str->add("soft_shadow"); str->del(strings[5693]); str->del(strings[5701]); strings[5676] = str->add(strings[5676]); strings[5702] = str->add("#fff"); str->del(strings[5676]); str->del(strings[5702]); strings[5680] = str->add(strings[5680]); strings[5703] = str->add("#00000020"); str->del(strings[5680]); str->del(strings[5703]); strings[5674] = str->add(strings[5674]); strings[5704] = str->add("12.000000"); str->del(strings[5674]); str->del(strings[5704]); strings[5672] = str->add(strings[5672]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5672]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[5672]); str->del(strings[5673]); str->del(strings[5674]); str->del(strings[5675]); str->del(strings[5676]); str->del(strings[5677]); str->del(strings[5678]); str->del(strings[5679]); str->del(strings[5680]); str->del(strings[5681]); str->del(strings[5682]); str->del(strings[5683]); str->del(strings[5684]); str->del(strings[5685]); str->del(strings[5686]); str->del(strings[5687]); str->del(strings[5688]); str->del(strings[5689]); str->del(strings[5690]); str->del(strings[5691]); str->del(strings[5692]); str->del(strings[5693]); str->del(strings[5694]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5633]); str->del(strings[1841]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); str->del(strings[5634]); strings[5705] = str->add("e,action,mouse,move"); strings[5706] = str->add("e"); strings[5705] = str->add(strings[5705]); strings[5706] = str->add(strings[5706]); str->del(strings[5705]); str->del(strings[5706]); str->del(strings[5705]); str->del(strings[5706]); strings[5707] = str->add("e,action,mouse,move"); strings[5708] = str->add("e"); str->del(strings[5707]); str->del(strings[5708]); strings[5709] = str->add("font"); strings[5710] = str->add("font_fallbacks"); strings[5711] = str->add("font_size"); strings[5712] = str->add("font_source"); strings[5713] = str->add("color"); strings[5714] = str->add("underline_color"); strings[5715] = str->add("underline2_color"); strings[5716] = str->add("outline_color"); strings[5717] = str->add("shadow_color"); strings[5718] = str->add("glow_color"); strings[5719] = str->add("glow2_color"); strings[5720] = str->add("backing_color"); strings[5721] = str->add("strikethrough_color"); strings[5722] = str->add("align"); strings[5723] = str->add("valign"); strings[5724] = str->add("wrap"); strings[5725] = str->add("left_margin"); strings[5726] = str->add("right_margin"); strings[5727] = str->add("underline"); strings[5728] = str->add("strikethrough"); strings[5729] = str->add("backing"); strings[5730] = str->add("style"); strings[5731] = str->add("tabstops"); strings[5722] = str->add(strings[5722]); strings[5732] = str->add("center"); str->del(strings[5722]); str->del(strings[5732]); strings[5713] = str->add(strings[5713]); strings[5733] = str->add("#000"); str->del(strings[5713]); str->del(strings[5733]); strings[5730] = str->add(strings[5730]); strings[5734] = str->add("shadow"); str->del(strings[5730]); str->del(strings[5734]); strings[5717] = str->add(strings[5717]); strings[5735] = str->add("#ffffff80"); str->del(strings[5717]); str->del(strings[5735]); strings[5724] = str->add(strings[5724]); strings[5736] = str->add("word"); str->del(strings[5724]); str->del(strings[5736]); strings[5712] = str->add(strings[5712]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[5712]); str->del(strings[469]); strings[5711] = str->add(strings[5711]); strings[5737] = str->add("10.000000"); str->del(strings[5711]); str->del(strings[5737]); strings[5709] = str->add(strings[5709]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[5709]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5730] = str->add(strings[5730]); strings[5738] = str->add("soft_shadow"); str->del(strings[5730]); str->del(strings[5738]); strings[5713] = str->add(strings[5713]); strings[5739] = str->add("#fff"); str->del(strings[5713]); str->del(strings[5739]); strings[5717] = str->add(strings[5717]); strings[5740] = str->add("#00000020"); str->del(strings[5717]); str->del(strings[5740]); strings[5711] = str->add(strings[5711]); strings[5741] = str->add("12.000000"); str->del(strings[5711]); str->del(strings[5741]); strings[5709] = str->add(strings[5709]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5709]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[5709]); str->del(strings[5710]); str->del(strings[5711]); str->del(strings[5712]); str->del(strings[5713]); str->del(strings[5714]); str->del(strings[5715]); str->del(strings[5716]); str->del(strings[5717]); str->del(strings[5718]); str->del(strings[5719]); str->del(strings[5720]); str->del(strings[5721]); str->del(strings[5722]); str->del(strings[5723]); str->del(strings[5724]); str->del(strings[5725]); str->del(strings[5726]); str->del(strings[5727]); str->del(strings[5728]); str->del(strings[5729]); str->del(strings[5730]); str->del(strings[5731]); strings[5742] = str->add("e,action,mouse,move"); strings[5743] = str->add("e"); str->del(strings[5742]); str->del(strings[5743]); strings[5744] = str->add("e,action,mouse,move"); strings[5745] = str->add("e"); str->del(strings[5744]); str->del(strings[5745]); strings[5746] = str->add("e,action,mouse,move"); strings[5747] = str->add("e"); str->del(strings[5746]); str->del(strings[5747]); strings[5748] = str->add("e,action,mouse,move"); strings[5749] = str->add("e"); str->del(strings[5748]); str->del(strings[5749]); str->del(strings[7]); str->del(strings[2479]); strings[7] = str->add(strings[7]); strings[2489] = str->add(strings[2489]); strings[5750] = str->add("e,action,mouse,move"); strings[5751] = str->add("e"); str->del(strings[5750]); str->del(strings[5751]); strings[5752] = str->add("e,action,mouse,move"); strings[5753] = str->add("e"); str->del(strings[5752]); str->del(strings[5753]); strings[5754] = str->add("e,action,mouse,move"); strings[5755] = str->add("e"); str->del(strings[5754]); str->del(strings[5755]); strings[5756] = str->add("e,action,mouse,move"); strings[5757] = str->add("e"); str->del(strings[5756]); str->del(strings[5757]); strings[1932] = str->add(strings[1932]); strings[1847] = str->add(strings[1847]); strings[5758] = str->add("program,start"); strings[1848] = str->add(strings[1848]); strings[1932] = str->add(strings[1932]); strings[1848] = str->add(strings[1848]); strings[5758] = str->add(strings[5758]); strings[1847] = str->add(strings[1847]); str->del(strings[1932]); str->del(strings[1847]); str->del(strings[5758]); str->del(strings[1848]); str->del(strings[1932]); str->del(strings[1848]); str->del(strings[5758]); str->del(strings[1847]); strings[5759] = str->add("e,action,mouse,move"); strings[5760] = str->add("e"); str->del(strings[5759]); str->del(strings[5760]); strings[5761] = str->add("e,action,mouse,move"); strings[5762] = str->add("e"); str->del(strings[5761]); str->del(strings[5762]); strings[5763] = str->add("e,action,mouse,move"); strings[5764] = str->add("e"); str->del(strings[5763]); str->del(strings[5764]); strings[5765] = str->add("e,action,mouse,move"); strings[5766] = str->add("e"); str->del(strings[5765]); str->del(strings[5766]); strings[5767] = str->add("e,action,mouse,move"); strings[5768] = str->add("e"); str->del(strings[5767]); str->del(strings[5768]); strings[1932] = str->add(strings[1932]); strings[5769] = str->add("go_activeb26"); strings[5770] = str->add("program,start"); strings[5771] = str->add("go_activec26"); strings[1932] = str->add(strings[1932]); strings[5772] = str->add("go_activeb4"); strings[5770] = str->add(strings[5770]); strings[5773] = str->add("go_activec4"); str->del(strings[1932]); str->del(strings[5769]); str->del(strings[5770]); str->del(strings[5771]); str->del(strings[1932]); str->del(strings[5772]); str->del(strings[5770]); str->del(strings[5773]); str->del(strings[7]); str->del(strings[2489]); strings[7] = str->add(strings[7]); strings[2508] = str->add(strings[2508]); strings[5774] = str->add("e,action,mouse,move"); strings[5775] = str->add("e"); str->del(strings[5774]); str->del(strings[5775]); strings[5776] = str->add("e,action,mouse,move"); strings[5777] = str->add("e"); str->del(strings[5776]); str->del(strings[5777]); strings[5778] = str->add("e,action,mouse,move"); strings[5779] = str->add("e"); str->del(strings[5778]); str->del(strings[5779]); strings[5780] = str->add("e,action,mouse,move"); strings[5781] = str->add("e"); str->del(strings[5780]); str->del(strings[5781]); strings[5782] = str->add("e,action,mouse,move"); strings[5783] = str->add("e"); str->del(strings[5782]); str->del(strings[5783]); strings[5784] = str->add("e,action,mouse,move"); strings[5785] = str->add("e"); str->del(strings[5784]); str->del(strings[5785]); strings[5786] = str->add("e,action,mouse,move"); strings[5787] = str->add("e"); str->del(strings[5786]); str->del(strings[5787]); strings[5788] = str->add("e,action,mouse,move"); strings[5789] = str->add("e"); str->del(strings[5788]); str->del(strings[5789]); strings[1932] = str->add(strings[1932]); strings[5790] = str->add("go_activec23"); strings[5791] = str->add("program,start"); strings[5792] = str->add("go_activeb23"); strings[1932] = str->add(strings[1932]); strings[5793] = str->add("go_activec7"); strings[5791] = str->add(strings[5791]); strings[5794] = str->add("go_activeb7"); str->del(strings[1932]); str->del(strings[5790]); str->del(strings[5791]); str->del(strings[5792]); str->del(strings[1932]); str->del(strings[5793]); str->del(strings[5791]); str->del(strings[5794]); str->del(strings[7]); str->del(strings[2508]); strings[7] = str->add(strings[7]); strings[2518] = str->add(strings[2518]); strings[5795] = str->add("e,action,mouse,move"); strings[5796] = str->add("e"); str->del(strings[5795]); str->del(strings[5796]); strings[5797] = str->add("e,action,mouse,move"); strings[5798] = str->add("e"); str->del(strings[5797]); str->del(strings[5798]); strings[5799] = str->add("e,action,mouse,move"); strings[5800] = str->add("e"); str->del(strings[5799]); str->del(strings[5800]); strings[5801] = str->add("e,action,mouse,move"); strings[5802] = str->add("e"); str->del(strings[5801]); str->del(strings[5802]); strings[1932] = str->add(strings[1932]); strings[5803] = str->add("sel"); strings[1932] = str->add(strings[1932]); strings[5803] = str->add(strings[5803]); str->del(strings[1932]); str->del(strings[5803]); str->del(strings[1932]); str->del(strings[5803]); strings[5804] = str->add("e,action,mouse,move"); strings[5805] = str->add("e"); str->del(strings[5804]); str->del(strings[5805]); strings[5806] = str->add("e,action,mouse,move"); strings[5807] = str->add("e"); str->del(strings[5806]); str->del(strings[5807]); strings[5808] = str->add("e,action,mouse,move"); strings[5809] = str->add("e"); str->del(strings[5808]); str->del(strings[5809]); strings[5810] = str->add("e,action,mouse,move"); strings[5811] = str->add("e"); str->del(strings[5810]); str->del(strings[5811]); str->del(strings[7]); str->del(strings[2518]); strings[7] = str->add(strings[7]); strings[2531] = str->add(strings[2531]); strings[5812] = str->add("e,action,mouse,move"); strings[5813] = str->add("e"); str->del(strings[5812]); str->del(strings[5813]); strings[5814] = str->add("e,action,mouse,move"); strings[5815] = str->add("e"); str->del(strings[5814]); str->del(strings[5815]); strings[5816] = str->add("e,action,mouse,move"); strings[5817] = str->add("e"); str->del(strings[5816]); str->del(strings[5817]); strings[5818] = str->add("e,action,mouse,move"); strings[5819] = str->add("e"); str->del(strings[5818]); str->del(strings[5819]); strings[5820] = str->add("e,action,mouse,move"); strings[5821] = str->add("e"); str->del(strings[5820]); str->del(strings[5821]); strings[5822] = str->add("e,action,mouse,move"); strings[5823] = str->add("e"); str->del(strings[5822]); str->del(strings[5823]); strings[5824] = str->add("e,action,mouse,move"); strings[5825] = str->add("e"); str->del(strings[5824]); str->del(strings[5825]); strings[5826] = str->add("e,action,mouse,move"); strings[5827] = str->add("e"); str->del(strings[5826]); str->del(strings[5827]); strings[5828] = str->add("e,action,mouse,move"); strings[5829] = str->add("e"); strings[5830] = str->add("e,state,unselected"); strings[5829] = str->add(strings[5829]); strings[5830] = str->add(strings[5830]); strings[5829] = str->add(strings[5829]); strings[5830] = str->add(strings[5830]); strings[5829] = str->add(strings[5829]); strings[5830] = str->add(strings[5830]); strings[5829] = str->add(strings[5829]); strings[5830] = str->add(strings[5830]); strings[5829] = str->add(strings[5829]); strings[5830] = str->add(strings[5830]); strings[5829] = str->add(strings[5829]); str->del(strings[5828]); str->del(strings[5829]); strings[5831] = str->add("program,start"); strings[5832] = str->add("unsel"); str->del(strings[5830]); str->del(strings[5829]); str->del(strings[5830]); str->del(strings[5829]); strings[5831] = str->add(strings[5831]); strings[5832] = str->add(strings[5832]); str->del(strings[5830]); str->del(strings[5829]); strings[5831] = str->add(strings[5831]); strings[5832] = str->add(strings[5832]); strings[1932] = str->add(strings[1932]); strings[5832] = str->add(strings[5832]); str->del(strings[5830]); str->del(strings[5829]); strings[1932] = str->add(strings[1932]); strings[5833] = str->add("e_in"); strings[5831] = str->add(strings[5831]); strings[5834] = str->add("e_out"); str->del(strings[5830]); str->del(strings[5829]); str->del(strings[5830]); str->del(strings[5829]); str->del(strings[5831]); str->del(strings[5832]); str->del(strings[5831]); str->del(strings[5832]); str->del(strings[5831]); str->del(strings[5832]); str->del(strings[1932]); str->del(strings[5832]); str->del(strings[1932]); str->del(strings[5833]); str->del(strings[5831]); str->del(strings[5834]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[1932] = str->add(strings[1932]); strings[5835] = str->add("go_activeb25"); strings[5836] = str->add("program,start"); strings[5837] = str->add("go_activec25"); strings[1932] = str->add(strings[1932]); strings[5838] = str->add("go_activeb5"); strings[5836] = str->add(strings[5836]); strings[5839] = str->add("go_activec5"); str->del(strings[1932]); str->del(strings[5835]); str->del(strings[5836]); str->del(strings[5837]); str->del(strings[1932]); str->del(strings[5838]); str->del(strings[5836]); str->del(strings[5839]); str->del(strings[7]); str->del(strings[2531]); strings[7] = str->add(strings[7]); strings[2544] = str->add(strings[2544]); strings[5840] = str->add("e,action,mouse,move"); strings[5841] = str->add("e"); strings[5842] = str->add("e,state,selected"); strings[5841] = str->add(strings[5841]); strings[5842] = str->add(strings[5842]); strings[5841] = str->add(strings[5841]); strings[5842] = str->add(strings[5842]); strings[5841] = str->add(strings[5841]); strings[5842] = str->add(strings[5842]); strings[5841] = str->add(strings[5841]); strings[5842] = str->add(strings[5842]); strings[5841] = str->add(strings[5841]); str->del(strings[5840]); str->del(strings[5841]); strings[5843] = str->add("program,start"); strings[5844] = str->add("sel"); str->del(strings[5842]); str->del(strings[5841]); str->del(strings[5842]); str->del(strings[5841]); strings[5843] = str->add(strings[5843]); strings[5844] = str->add(strings[5844]); str->del(strings[5842]); str->del(strings[5841]); strings[5843] = str->add(strings[5843]); strings[5845] = str->add("e_in"); str->del(strings[5842]); str->del(strings[5841]); str->del(strings[5842]); str->del(strings[5841]); str->del(strings[5843]); str->del(strings[5844]); str->del(strings[5843]); str->del(strings[5844]); str->del(strings[5843]); str->del(strings[5845]); strings[5846] = str->add("e,action,mouse,move"); strings[5847] = str->add("e"); str->del(strings[5846]); str->del(strings[5847]); strings[5848] = str->add("e,action,mouse,move"); strings[5849] = str->add("e"); str->del(strings[5848]); str->del(strings[5849]); strings[5850] = str->add("e,action,mouse,move"); strings[5851] = str->add("e"); str->del(strings[5850]); str->del(strings[5851]); strings[5852] = str->add("e,action,mouse,move"); strings[5853] = str->add("e"); str->del(strings[5852]); str->del(strings[5853]); strings[5854] = str->add("e,action,mouse,move"); strings[5855] = str->add("e"); str->del(strings[5854]); str->del(strings[5855]); strings[1932] = str->add(strings[1932]); strings[5856] = str->add("go_activec22"); strings[5857] = str->add("program,start"); strings[5858] = str->add("go_activeb22"); strings[1932] = str->add(strings[1932]); strings[5859] = str->add("go_activec8"); strings[5857] = str->add(strings[5857]); strings[5860] = str->add("go_activeb8"); str->del(strings[1932]); str->del(strings[5856]); str->del(strings[5857]); str->del(strings[5858]); str->del(strings[1932]); str->del(strings[5859]); str->del(strings[5857]); str->del(strings[5860]); str->del(strings[7]); str->del(strings[2544]); strings[7] = str->add(strings[7]); strings[2561] = str->add(strings[2561]); strings[5861] = str->add("e,action,mouse,move"); strings[5862] = str->add("e"); str->del(strings[5861]); str->del(strings[5862]); strings[5863] = str->add("e,action,mouse,move"); strings[5864] = str->add("e"); str->del(strings[5863]); str->del(strings[5864]); strings[5865] = str->add("e,action,mouse,move"); strings[5866] = str->add("e"); str->del(strings[5865]); str->del(strings[5866]); strings[5867] = str->add("e,action,mouse,move"); strings[5868] = str->add("e"); str->del(strings[5867]); str->del(strings[5868]); strings[5869] = str->add("e,action,mouse,move"); strings[5870] = str->add("e"); str->del(strings[5869]); str->del(strings[5870]); strings[5871] = str->add("e,action,mouse,move"); strings[5872] = str->add("e"); str->del(strings[5871]); str->del(strings[5872]); strings[5873] = str->add("e,action,mouse,move"); strings[5874] = str->add("e"); str->del(strings[5873]); str->del(strings[5874]); strings[5875] = str->add("e,action,mouse,move"); strings[5876] = str->add("e"); str->del(strings[5875]); str->del(strings[5876]); strings[1932] = str->add(strings[1932]); strings[5877] = str->add("unsel"); str->del(strings[1932]); str->del(strings[5877]); str->del(strings[7]); str->del(strings[2561]); strings[7] = str->add(strings[7]); strings[3580] = str->add(strings[3580]); strings[5878] = str->add("e,action,mouse,move"); strings[5879] = str->add("e"); str->del(strings[5878]); str->del(strings[5879]); strings[5880] = str->add("e,action,mouse,move"); strings[5881] = str->add("e"); str->del(strings[5880]); str->del(strings[5881]); strings[5882] = str->add("e,action,mouse,move"); strings[5883] = str->add("e"); str->del(strings[5882]); str->del(strings[5883]); strings[1932] = str->add(strings[1932]); strings[5884] = str->add("go_activeb24"); strings[5885] = str->add("program,start"); strings[5886] = str->add("go_activec24"); strings[1932] = str->add(strings[1932]); strings[5887] = str->add("go_activeb6"); strings[5885] = str->add(strings[5885]); strings[5888] = str->add("go_activec6"); str->del(strings[1932]); str->del(strings[5884]); str->del(strings[5885]); str->del(strings[5886]); str->del(strings[1932]); str->del(strings[5887]); str->del(strings[5885]); str->del(strings[5888]); strings[5889] = str->add("e,action,mouse,move"); strings[5890] = str->add("e"); str->del(strings[5889]); str->del(strings[5890]); strings[5891] = str->add("e,action,mouse,move"); strings[5892] = str->add("e"); str->del(strings[5891]); str->del(strings[5892]); str->del(strings[7]); str->del(strings[3580]); strings[7] = str->add(strings[7]); strings[1756] = str->add(strings[1756]); strings[5893] = str->add("e,action,mouse,move"); strings[5894] = str->add("e"); str->del(strings[5893]); str->del(strings[5894]); strings[5895] = str->add("e,action,mouse,move"); strings[5896] = str->add("e"); strings[5897] = str->add("e,state,unselected"); strings[5896] = str->add(strings[5896]); strings[5897] = str->add(strings[5897]); strings[5896] = str->add(strings[5896]); strings[5897] = str->add(strings[5897]); strings[5896] = str->add(strings[5896]); strings[5897] = str->add(strings[5897]); strings[5896] = str->add(strings[5896]); strings[5897] = str->add(strings[5897]); strings[5896] = str->add(strings[5896]); strings[5898] = str->add("e,state,selected"); strings[5896] = str->add(strings[5896]); strings[5898] = str->add(strings[5898]); strings[5896] = str->add(strings[5896]); strings[5898] = str->add(strings[5898]); strings[5896] = str->add(strings[5896]); strings[5898] = str->add(strings[5898]); strings[5896] = str->add(strings[5896]); strings[5898] = str->add(strings[5898]); strings[5896] = str->add(strings[5896]); str->del(strings[5895]); str->del(strings[5896]); strings[1932] = str->add(strings[1932]); strings[5899] = str->add("sel"); strings[5900] = str->add("program,start"); strings[5901] = str->add("unsel"); str->del(strings[5897]); str->del(strings[5896]); str->del(strings[5897]); str->del(strings[5896]); strings[1932] = str->add(strings[1932]); strings[5899] = str->add(strings[5899]); strings[5900] = str->add(strings[5900]); strings[5901] = str->add(strings[5901]); str->del(strings[5897]); str->del(strings[5896]); strings[1932] = str->add(strings[1932]); strings[5902] = str->add("e_in"); strings[5900] = str->add(strings[5900]); strings[5903] = str->add("e_out"); str->del(strings[5897]); str->del(strings[5896]); str->del(strings[5897]); str->del(strings[5896]); strings[5900] = str->add(strings[5900]); strings[5899] = str->add(strings[5899]); str->del(strings[5898]); str->del(strings[5896]); str->del(strings[5898]); str->del(strings[5896]); strings[5900] = str->add(strings[5900]); strings[5899] = str->add(strings[5899]); str->del(strings[5898]); str->del(strings[5896]); str->del(strings[5898]); str->del(strings[5896]); str->del(strings[5898]); str->del(strings[5896]); str->del(strings[1932]); str->del(strings[5899]); str->del(strings[5900]); str->del(strings[5901]); str->del(strings[1932]); str->del(strings[5899]); str->del(strings[5900]); str->del(strings[5901]); str->del(strings[1932]); str->del(strings[5902]); str->del(strings[5900]); str->del(strings[5903]); str->del(strings[5900]); str->del(strings[5899]); str->del(strings[5900]); str->del(strings[5899]); strings[5904] = str->add("e,action,mouse,move"); strings[5905] = str->add("e"); str->del(strings[5904]); str->del(strings[5905]); strings[5906] = str->add("e,action,mouse,move"); strings[5907] = str->add("e"); str->del(strings[5906]); str->del(strings[5907]); strings[5908] = str->add("e,action,mouse,move"); strings[5909] = str->add("e"); str->del(strings[5908]); str->del(strings[5909]); strings[5910] = str->add("e,action,mouse,move"); strings[5911] = str->add("e"); str->del(strings[5910]); str->del(strings[5911]); strings[5912] = str->add("e,action,mouse,move"); strings[5913] = str->add("e"); str->del(strings[5912]); str->del(strings[5913]); strings[5914] = str->add("e,action,mouse,move"); strings[5915] = str->add("e"); str->del(strings[5914]); str->del(strings[5915]); strings[5916] = str->add("e,action,mouse,move"); strings[5917] = str->add("e"); str->del(strings[5916]); str->del(strings[5917]); strings[1932] = str->add(strings[1932]); strings[5918] = str->add("go_activec21"); strings[5919] = str->add("program,start"); strings[5920] = str->add("go_activeb21"); strings[1932] = str->add(strings[1932]); strings[5921] = str->add("go_activec9"); strings[5919] = str->add(strings[5919]); strings[5922] = str->add("go_activeb9"); str->del(strings[1932]); str->del(strings[5918]); str->del(strings[5919]); str->del(strings[5920]); str->del(strings[1932]); str->del(strings[5921]); str->del(strings[5919]); str->del(strings[5922]); str->del(strings[7]); str->del(strings[1756]); strings[7] = str->add(strings[7]); strings[1949] = str->add(strings[1949]); strings[5923] = str->add("e,action,mouse,move"); strings[5924] = str->add("e"); str->del(strings[5923]); str->del(strings[5924]); strings[5925] = str->add("e,action,mouse,move"); strings[5926] = str->add("e"); str->del(strings[5925]); str->del(strings[5926]); strings[5927] = str->add("e,action,mouse,move"); strings[5928] = str->add("e"); str->del(strings[5927]); str->del(strings[5928]); strings[5929] = str->add("e,action,mouse,move"); strings[5930] = str->add("e"); str->del(strings[5929]); str->del(strings[5930]); strings[5931] = str->add("e,action,mouse,move"); strings[5932] = str->add("e"); str->del(strings[5931]); str->del(strings[5932]); strings[5933] = str->add("e,action,mouse,move"); strings[5934] = str->add("e"); str->del(strings[5933]); str->del(strings[5934]); strings[1932] = str->add(strings[1932]); strings[5935] = str->add("unsel"); strings[1932] = str->add(strings[1932]); strings[5935] = str->add(strings[5935]); str->del(strings[1932]); str->del(strings[5935]); str->del(strings[1932]); str->del(strings[5935]); str->del(strings[7]); str->del(strings[1949]); strings[7] = str->add(strings[7]); strings[2915] = str->add(strings[2915]); strings[5936] = str->add("e,action,mouse,move"); strings[5937] = str->add("e"); str->del(strings[5936]); str->del(strings[5937]); strings[5938] = str->add("e,action,mouse,move"); strings[5939] = str->add("e"); str->del(strings[5938]); str->del(strings[5939]); strings[1932] = str->add(strings[1932]); strings[5940] = str->add("go_activec1"); strings[5941] = str->add("program,start"); strings[5942] = str->add("go_activeb1"); strings[1932] = str->add(strings[1932]); strings[5943] = str->add("go_activec29"); strings[5941] = str->add(strings[5941]); strings[5944] = str->add("go_activeb29"); strings[1932] = str->add(strings[1932]); strings[5945] = str->add("go_activeb23"); strings[5941] = str->add(strings[5941]); strings[5946] = str->add("go_activec23"); strings[1932] = str->add(strings[1932]); strings[5947] = str->add("go_activeb7"); strings[5941] = str->add(strings[5941]); strings[5948] = str->add("go_activec7"); str->del(strings[1932]); str->del(strings[5940]); str->del(strings[5941]); str->del(strings[5942]); str->del(strings[1932]); str->del(strings[5943]); str->del(strings[5941]); str->del(strings[5944]); str->del(strings[1932]); str->del(strings[5945]); str->del(strings[5941]); str->del(strings[5946]); str->del(strings[1932]); str->del(strings[5947]); str->del(strings[5941]); str->del(strings[5948]); strings[5949] = str->add("e,action,mouse,move"); strings[5950] = str->add("e"); str->del(strings[5949]); str->del(strings[5950]); strings[5951] = str->add("e,action,mouse,move"); strings[5952] = str->add("e"); str->del(strings[5951]); str->del(strings[5952]); strings[5953] = str->add("e,action,mouse,move"); strings[5954] = str->add("e"); str->del(strings[5953]); str->del(strings[5954]); str->del(strings[7]); str->del(strings[2915]); strings[7] = str->add(strings[7]); strings[2886] = str->add(strings[2886]); strings[5955] = str->add("e,action,mouse,move"); strings[5956] = str->add("e"); str->del(strings[5955]); str->del(strings[5956]); strings[1932] = str->add(strings[1932]); strings[5957] = str->add("sel"); strings[1932] = str->add(strings[1932]); strings[5957] = str->add(strings[5957]); str->del(strings[1932]); str->del(strings[5957]); str->del(strings[1932]); str->del(strings[5957]); str->del(strings[7]); str->del(strings[2886]); strings[7] = str->add(strings[7]); strings[2888] = str->add(strings[2888]); strings[1932] = str->add(strings[1932]); strings[5958] = str->add("e_out"); str->del(strings[1932]); str->del(strings[5958]); strings[1932] = str->add(strings[1932]); strings[5959] = str->add("unsel"); str->del(strings[1932]); str->del(strings[5959]); str->del(strings[7]); str->del(strings[2888]); strings[7] = str->add(strings[7]); strings[2913] = str->add(strings[2913]); strings[5960] = str->add("e,action,mouse,move"); strings[5961] = str->add("e"); str->del(strings[5960]); str->del(strings[5961]); strings[5962] = str->add("e,action,mouse,move"); strings[5963] = str->add("e"); str->del(strings[5962]); str->del(strings[5963]); strings[5964] = str->add("e,action,mouse,move"); strings[5965] = str->add("e"); str->del(strings[5964]); str->del(strings[5965]); strings[5966] = str->add("e,action,mouse,move"); strings[5967] = str->add("e"); str->del(strings[5966]); str->del(strings[5967]); strings[5968] = str->add("e,action,mouse,move"); strings[5969] = str->add("e"); str->del(strings[5968]); str->del(strings[5969]); strings[5970] = str->add("e,action,mouse,move"); strings[5971] = str->add("e"); str->del(strings[5970]); str->del(strings[5971]); strings[1932] = str->add(strings[1932]); strings[5972] = str->add("go_activec28"); strings[5973] = str->add("program,start"); strings[5974] = str->add("go_activeb28"); strings[1932] = str->add(strings[1932]); strings[5975] = str->add("go_activec2"); strings[5973] = str->add(strings[5973]); strings[5976] = str->add("go_activeb2"); strings[1932] = str->add(strings[1932]); strings[5977] = str->add("go_activeb22"); strings[5973] = str->add(strings[5973]); strings[5978] = str->add("go_activec22"); strings[1932] = str->add(strings[1932]); strings[5979] = str->add("go_activeb8"); strings[5973] = str->add(strings[5973]); strings[5980] = str->add("go_activec8"); str->del(strings[1932]); str->del(strings[5972]); str->del(strings[5973]); str->del(strings[5974]); str->del(strings[1932]); str->del(strings[5975]); str->del(strings[5973]); str->del(strings[5976]); str->del(strings[1932]); str->del(strings[5977]); str->del(strings[5973]); str->del(strings[5978]); str->del(strings[1932]); str->del(strings[5979]); str->del(strings[5973]); str->del(strings[5980]); str->del(strings[7]); str->del(strings[2913]); strings[7] = str->add(strings[7]); strings[3021] = str->add(strings[3021]); str->del(strings[7]); str->del(strings[3021]); strings[7] = str->add(strings[7]); strings[3695] = str->add(strings[3695]); strings[5981] = str->add("e,action,mouse,move"); strings[5982] = str->add("e"); strings[5983] = str->add("e,action,mouse,down"); strings[5982] = str->add(strings[5982]); str->del(strings[5981]); str->del(strings[5982]); str->del(strings[5983]); str->del(strings[5982]); strings[1932] = str->add(strings[1932]); strings[5984] = str->add("e_out"); str->del(strings[1932]); str->del(strings[5984]); str->del(strings[7]); str->del(strings[3695]); strings[7] = str->add(strings[7]); strings[3698] = str->add(strings[3698]); strings[5985] = str->add("e,action,mouse,move"); strings[5986] = str->add("e"); strings[5987] = str->add("e,action,mouse,up"); strings[5986] = str->add(strings[5986]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[64] = str->add(strings[64]); strings[2770] = str->add(strings[2770]); str->del(strings[64]); str->del(strings[2770]); strings[469] = str->add(strings[469]); strings[2770] = str->add(strings[2770]); strings[2770] = str->add(strings[2770]); strings[469] = str->add(strings[469]); strings[5988] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[3712] = str->add(strings[3712]); strings[5989] = str->add("resize"); strings[469] = str->add(strings[469]); strings[4177] = str->add(strings[4177]); strings[469] = str->add(strings[469]); strings[4179] = str->add(strings[4179]); strings[469] = str->add(strings[469]); strings[4181] = str->add(strings[4181]); strings[469] = str->add(strings[469]); strings[5990] = str->add("images/267"); strings[5991] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/267"); strings[469] = str->add(strings[469]); strings[5990] = str->add(strings[5990]); strings[469] = str->add(strings[469]); strings[4336] = str->add(strings[4336]); strings[5992] = str->add("font"); strings[5993] = str->add("font_fallbacks"); strings[5994] = str->add("font_size"); strings[5995] = str->add("font_source"); strings[5996] = str->add("color"); strings[5997] = str->add("underline_color"); strings[5998] = str->add("underline2_color"); strings[5999] = str->add("outline_color"); strings[6000] = str->add("shadow_color"); strings[6001] = str->add("glow_color"); strings[6002] = str->add("glow2_color"); strings[6003] = str->add("backing_color"); strings[6004] = str->add("strikethrough_color"); strings[6005] = str->add("align"); strings[6006] = str->add("valign"); strings[6007] = str->add("wrap"); strings[6008] = str->add("left_margin"); strings[6009] = str->add("right_margin"); strings[6010] = str->add("underline"); strings[6011] = str->add("strikethrough"); strings[6012] = str->add("backing"); strings[6013] = str->add("style"); strings[6014] = str->add("tabstops"); strings[6013] = str->add(strings[6013]); strings[6015] = str->add("glow"); str->del(strings[6013]); str->del(strings[6015]); strings[5996] = str->add(strings[5996]); strings[6016] = str->add("#fff"); str->del(strings[5996]); str->del(strings[6016]); strings[6002] = str->add(strings[6002]); strings[6017] = str->add("#fe87"); str->del(strings[6002]); str->del(strings[6017]); strings[6001] = str->add(strings[6001]); strings[6018] = str->add("#fa14"); str->del(strings[6001]); str->del(strings[6018]); strings[6005] = str->add(strings[6005]); strings[6019] = str->add("center"); str->del(strings[6005]); str->del(strings[6019]); strings[6007] = str->add(strings[6007]); strings[6020] = str->add("word"); str->del(strings[6007]); str->del(strings[6020]); strings[5995] = str->add(strings[5995]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[5995]); str->del(strings[469]); strings[5994] = str->add(strings[5994]); strings[6021] = str->add("12.000000"); str->del(strings[5994]); str->del(strings[6021]); strings[5992] = str->add(strings[5992]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[5992]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5992] = str->add(strings[5992]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5992]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6013] = str->add(strings[6013]); strings[6022] = str->add("none"); str->del(strings[6013]); str->del(strings[6022]); strings[5996] = str->add(strings[5996]); strings[6023] = str->add("#0002"); str->del(strings[5996]); str->del(strings[6023]); strings[5994] = str->add(strings[5994]); strings[6024] = str->add("7.000000"); strings[470] = str->add(strings[470]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); str->del(strings[5994]); str->del(strings[6024]); strings[5992] = str->add(strings[5992]); strings[470] = str->add(strings[470]); str->del(strings[5992]); str->del(strings[470]); strings[5992] = str->add(strings[5992]); strings[5993] = str->add(strings[5993]); strings[5994] = str->add(strings[5994]); strings[5995] = str->add(strings[5995]); strings[5996] = str->add(strings[5996]); strings[5997] = str->add(strings[5997]); strings[5998] = str->add(strings[5998]); strings[5999] = str->add(strings[5999]); strings[6000] = str->add(strings[6000]); strings[6001] = str->add(strings[6001]); strings[6002] = str->add(strings[6002]); strings[6003] = str->add(strings[6003]); strings[6004] = str->add(strings[6004]); strings[6005] = str->add(strings[6005]); strings[6006] = str->add(strings[6006]); strings[6007] = str->add(strings[6007]); strings[6008] = str->add(strings[6008]); strings[6009] = str->add(strings[6009]); strings[6010] = str->add(strings[6010]); strings[6011] = str->add(strings[6011]); strings[6012] = str->add(strings[6012]); strings[6013] = str->add(strings[6013]); strings[6014] = str->add(strings[6014]); strings[6013] = str->add(strings[6013]); strings[6025] = str->add("glow"); str->del(strings[6013]); str->del(strings[6025]); strings[5996] = str->add(strings[5996]); strings[6026] = str->add("#fff"); str->del(strings[5996]); str->del(strings[6026]); strings[6002] = str->add(strings[6002]); strings[6027] = str->add("#fe87"); str->del(strings[6002]); str->del(strings[6027]); strings[6001] = str->add(strings[6001]); strings[6028] = str->add("#fa14"); str->del(strings[6001]); str->del(strings[6028]); strings[6005] = str->add(strings[6005]); strings[6029] = str->add("center"); str->del(strings[6005]); str->del(strings[6029]); strings[6007] = str->add(strings[6007]); strings[6030] = str->add("word"); str->del(strings[6007]); str->del(strings[6030]); strings[5995] = str->add(strings[5995]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[5995]); str->del(strings[469]); strings[5994] = str->add(strings[5994]); strings[6031] = str->add("12.000000"); str->del(strings[5994]); str->del(strings[6031]); strings[5992] = str->add(strings[5992]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[5992]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[5992] = str->add(strings[5992]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[5992]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6013] = str->add(strings[6013]); strings[6032] = str->add("none"); str->del(strings[6013]); str->del(strings[6032]); strings[5996] = str->add(strings[5996]); strings[6033] = str->add("#0002"); str->del(strings[5996]); str->del(strings[6033]); strings[5994] = str->add(strings[5994]); strings[6034] = str->add("7.000000"); str->del(strings[5994]); str->del(strings[6034]); strings[5992] = str->add(strings[5992]); strings[470] = str->add(strings[470]); str->del(strings[5992]); str->del(strings[470]); str->del(strings[5992]); str->del(strings[5993]); str->del(strings[5994]); str->del(strings[5995]); str->del(strings[5996]); str->del(strings[5997]); str->del(strings[5998]); str->del(strings[5999]); str->del(strings[6000]); str->del(strings[6001]); str->del(strings[6002]); str->del(strings[6003]); str->del(strings[6004]); str->del(strings[6005]); str->del(strings[6006]); str->del(strings[6007]); str->del(strings[6008]); str->del(strings[6009]); str->del(strings[6010]); str->del(strings[6011]); str->del(strings[6012]); str->del(strings[6013]); str->del(strings[6014]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[5992]); str->del(strings[5993]); str->del(strings[5994]); str->del(strings[5995]); str->del(strings[5996]); str->del(strings[5997]); str->del(strings[5998]); str->del(strings[5999]); str->del(strings[6000]); str->del(strings[6001]); str->del(strings[6002]); str->del(strings[6003]); str->del(strings[6004]); str->del(strings[6005]); str->del(strings[6006]); str->del(strings[6007]); str->del(strings[6008]); str->del(strings[6009]); str->del(strings[6010]); str->del(strings[6011]); str->del(strings[6012]); str->del(strings[6013]); str->del(strings[6014]); strings[469] = str->add(strings[469]); strings[4183] = str->add(strings[4183]); strings[469] = str->add(strings[469]); strings[4185] = str->add(strings[4185]); strings[469] = str->add(strings[469]); strings[4187] = str->add(strings[4187]); strings[470] = str->add(strings[470]); strings[3879] = str->add(strings[3879]); strings[3879] = str->add(strings[3879]); strings[3879] = str->add(strings[3879]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[376] = str->add(strings[376]); strings[6035] = str->add("e,state,unfocused"); strings[5986] = str->add(strings[5986]); str->del(strings[5985]); str->del(strings[5986]); str->del(strings[5987]); str->del(strings[5986]); str->del(strings[5988]); strings[6036] = str->add("program,start"); strings[6037] = str->add("anim_sky1a"); strings[6036] = str->add(strings[6036]); strings[6038] = str->add("anim_sky4a"); strings[6036] = str->add(strings[6036]); strings[6039] = str->add("anim_sky2a"); strings[6036] = str->add(strings[6036]); strings[6040] = str->add("anim_sky3a"); str->del(strings[1841]); str->del(strings[5989]); strings[6036] = str->add(strings[6036]); strings[6041] = str->add("off"); str->del(strings[6035]); str->del(strings[5986]); str->del(strings[6036]); str->del(strings[6037]); str->del(strings[6036]); str->del(strings[6038]); str->del(strings[6036]); str->del(strings[6039]); str->del(strings[6036]); str->del(strings[6040]); str->del(strings[6036]); str->del(strings[6041]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2686]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[4952]); str->del(strings[4952]); str->del(strings[4952]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2715]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2231]); str->del(strings[2231]); str->del(strings[2231]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2691]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2338]); str->del(strings[2338]); str->del(strings[2338]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2693]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[4953]); str->del(strings[4953]); str->del(strings[4953]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2687]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1619]); str->del(strings[1619]); str->del(strings[1619]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2682]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2552]); str->del(strings[2552]); str->del(strings[2552]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2671]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1712]); str->del(strings[1712]); str->del(strings[1712]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2688]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[4957]); str->del(strings[4957]); str->del(strings[4957]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2690]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1721]); str->del(strings[1721]); str->del(strings[1721]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[4951]); str->del(strings[4951]); str->del(strings[4951]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2871]); str->del(strings[4952]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2890]); str->del(strings[2231]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2892]); str->del(strings[2338]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[4965]); str->del(strings[469]); str->del(strings[4967]); str->del(strings[4953]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2894]); str->del(strings[1619]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2896]); str->del(strings[2552]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2898]); str->del(strings[469]); str->del(strings[2900]); str->del(strings[1712]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2902]); str->del(strings[4957]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2904]); str->del(strings[1721]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[4951]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2671]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[4956]); str->del(strings[4956]); str->del(strings[4956]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2680]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2672]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1713]); str->del(strings[1713]); str->del(strings[1713]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2673]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1714]); str->del(strings[1714]); str->del(strings[1714]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2898]); str->del(strings[469]); str->del(strings[2900]); str->del(strings[4956]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3094]); str->del(strings[2514]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3130]); str->del(strings[1713]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3132]); str->del(strings[1714]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); str->del(strings[469]); str->del(strings[2686]); str->del(strings[4952]); str->del(strings[469]); str->del(strings[2715]); str->del(strings[2231]); str->del(strings[469]); str->del(strings[2691]); str->del(strings[2338]); str->del(strings[469]); str->del(strings[2693]); str->del(strings[4953]); str->del(strings[469]); str->del(strings[2687]); str->del(strings[4954]); str->del(strings[469]); str->del(strings[2711]); str->del(strings[2494]); str->del(strings[4955]); str->del(strings[469]); str->del(strings[2687]); str->del(strings[1619]); str->del(strings[469]); str->del(strings[2682]); str->del(strings[2552]); str->del(strings[469]); str->del(strings[2671]); str->del(strings[1712]); str->del(strings[469]); str->del(strings[2688]); str->del(strings[2224]); str->del(strings[469]); str->del(strings[2685]); str->del(strings[4]); str->del(strings[1926]); str->del(strings[3083]); str->del(strings[1925]); str->del(strings[469]); str->del(strings[2711]); str->del(strings[2494]); str->del(strings[469]); str->del(strings[2680]); str->del(strings[2514]); str->del(strings[469]); str->del(strings[2713]); str->del(strings[2536]); str->del(strings[469]); str->del(strings[2688]); str->del(strings[4957]); str->del(strings[469]); str->del(strings[2708]); str->del(strings[5146]); str->del(strings[469]); str->del(strings[2677]); str->del(strings[1726]); str->del(strings[469]); str->del(strings[2678]); str->del(strings[5147]); str->del(strings[469]); str->del(strings[2676]); str->del(strings[1724]); str->del(strings[469]); str->del(strings[2675]); str->del(strings[1722]); str->del(strings[469]); str->del(strings[2674]); str->del(strings[5148]); str->del(strings[469]); str->del(strings[2690]); str->del(strings[1721]); str->del(strings[4951]); str->del(strings[469]); str->del(strings[2671]); str->del(strings[4956]); str->del(strings[469]); str->del(strings[2680]); str->del(strings[2514]); str->del(strings[469]); str->del(strings[2672]); str->del(strings[1713]); str->del(strings[469]); str->del(strings[2673]); str->del(strings[1714]); strings[863] = str->add(strings[863]); strings[64] = str->add(strings[64]); strings[2578] = str->add(strings[2578]); strings[64] = str->add(strings[64]); strings[64] = str->add(strings[64]); strings[6042] = str->add("load"); strings[330] = str->add(strings[330]); strings[6043] = str->add("resize"); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[330] = str->add(strings[330]); strings[330] = str->add(strings[330]); strings[1842] = str->add(strings[1842]); str->del(strings[330]); strings[64] = str->add(strings[64]); strings[1865] = str->add(strings[1865]); strings[330] = str->add(strings[330]); str->del(strings[330]); strings[64] = str->add(strings[64]); strings[2276] = str->add(strings[2276]); strings[64] = str->add(strings[64]); strings[3259] = str->add(strings[3259]); strings[64] = str->add(strings[64]); strings[3259] = str->add(strings[3259]); strings[64] = str->add(strings[64]); strings[2292] = str->add(strings[2292]); strings[330] = str->add(strings[330]); str->del(strings[330]); strings[330] = str->add(strings[330]); str->del(strings[1842]); strings[330] = str->add(strings[330]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[3279] = str->add(strings[3279]); strings[64] = str->add(strings[64]); strings[2310] = str->add(strings[2310]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[330] = str->add(strings[330]); strings[330] = str->add(strings[330]); strings[330] = str->add(strings[330]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[2085] = str->add(strings[2085]); strings[2085] = str->add(strings[2085]); strings[6043] = str->add(strings[6043]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[6042] = str->add(strings[6042]); strings[1841] = str->add(strings[1841]); str->del(strings[330]); strings[330] = str->add(strings[330]); str->del(strings[330]); strings[330] = str->add(strings[330]); str->del(strings[330]); strings[330] = str->add(strings[330]); str->del(strings[330]); strings[330] = str->add(strings[330]); strings[469] = str->add(strings[469]); strings[3094] = str->add(strings[3094]); strings[6043] = str->add(strings[6043]); str->del(strings[190]); str->del(strings[329]); str->del(strings[330]); str->del(strings[193]); strings[190] = str->add(strings[190]); strings[6044] = str->add("_theme_about"); strings[330] = str->add(strings[330]); strings[193] = str->add(strings[193]); strings[6045] = str->add("font"); strings[6046] = str->add("font_fallbacks"); strings[6047] = str->add("font_size"); strings[6048] = str->add("font_source"); strings[6049] = str->add("color"); strings[6050] = str->add("underline_color"); strings[6051] = str->add("underline2_color"); strings[6052] = str->add("outline_color"); strings[6053] = str->add("shadow_color"); strings[6054] = str->add("glow_color"); strings[6055] = str->add("glow2_color"); strings[6056] = str->add("backing_color"); strings[6057] = str->add("strikethrough_color"); strings[6058] = str->add("align"); strings[6059] = str->add("valign"); strings[6060] = str->add("wrap"); strings[6061] = str->add("left_margin"); strings[6062] = str->add("right_margin"); strings[6063] = str->add("underline"); strings[6064] = str->add("strikethrough"); strings[6065] = str->add("backing"); strings[6066] = str->add("style"); strings[6067] = str->add("tabstops"); strings[6058] = str->add(strings[6058]); strings[6068] = str->add("center"); str->del(strings[6058]); str->del(strings[6068]); strings[6049] = str->add(strings[6049]); strings[6069] = str->add("#000"); str->del(strings[6049]); str->del(strings[6069]); strings[6066] = str->add(strings[6066]); strings[6070] = str->add("shadow"); str->del(strings[6066]); str->del(strings[6070]); strings[6053] = str->add(strings[6053]); strings[6071] = str->add("#ffffff80"); str->del(strings[6053]); str->del(strings[6071]); strings[6060] = str->add(strings[6060]); strings[6072] = str->add("word"); str->del(strings[6060]); str->del(strings[6072]); strings[6048] = str->add(strings[6048]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6048]); str->del(strings[469]); strings[6047] = str->add(strings[6047]); strings[6073] = str->add("10.000000"); str->del(strings[6047]); str->del(strings[6073]); strings[6045] = str->add(strings[6045]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6045]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6066] = str->add(strings[6066]); strings[6074] = str->add("glow"); str->del(strings[6066]); str->del(strings[6074]); strings[6049] = str->add(strings[6049]); strings[6075] = str->add("#fff"); str->del(strings[6049]); str->del(strings[6075]); strings[6055] = str->add(strings[6055]); strings[6076] = str->add("#fe87"); str->del(strings[6055]); str->del(strings[6076]); strings[6054] = str->add(strings[6054]); strings[6077] = str->add("#fa14"); str->del(strings[6054]); str->del(strings[6077]); strings[6045] = str->add(strings[6045]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6045]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6066] = str->add(strings[6066]); strings[6078] = str->add("glow"); str->del(strings[6066]); str->del(strings[6078]); strings[6049] = str->add(strings[6049]); strings[6079] = str->add("#fff"); str->del(strings[6049]); str->del(strings[6079]); strings[6055] = str->add(strings[6055]); strings[6080] = str->add("#fe87"); str->del(strings[6055]); str->del(strings[6080]); strings[6054] = str->add(strings[6054]); strings[6081] = str->add("#fa14"); str->del(strings[6054]); str->del(strings[6081]); strings[6045] = str->add(strings[6045]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6045]); str->del(strings[471]); str->del(strings[6045]); str->del(strings[6046]); str->del(strings[6047]); str->del(strings[6048]); str->del(strings[6049]); str->del(strings[6050]); str->del(strings[6051]); str->del(strings[6052]); str->del(strings[6053]); str->del(strings[6054]); str->del(strings[6055]); str->del(strings[6056]); str->del(strings[6057]); str->del(strings[6058]); str->del(strings[6059]); str->del(strings[6060]); str->del(strings[6061]); str->del(strings[6062]); str->del(strings[6063]); str->del(strings[6064]); str->del(strings[6065]); str->del(strings[6066]); str->del(strings[6067]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[6082] = str->add("font"); strings[6083] = str->add("font_fallbacks"); strings[6084] = str->add("font_size"); strings[6085] = str->add("font_source"); strings[6086] = str->add("color"); strings[6087] = str->add("underline_color"); strings[6088] = str->add("underline2_color"); strings[6089] = str->add("outline_color"); strings[6090] = str->add("shadow_color"); strings[6091] = str->add("glow_color"); strings[6092] = str->add("glow2_color"); strings[6093] = str->add("backing_color"); strings[6094] = str->add("strikethrough_color"); strings[6095] = str->add("align"); strings[6096] = str->add("valign"); strings[6097] = str->add("wrap"); strings[6098] = str->add("left_margin"); strings[6099] = str->add("right_margin"); strings[6100] = str->add("underline"); strings[6101] = str->add("strikethrough"); strings[6102] = str->add("backing"); strings[6103] = str->add("style"); strings[6104] = str->add("tabstops"); strings[6095] = str->add(strings[6095]); strings[6105] = str->add("center"); str->del(strings[6095]); str->del(strings[6105]); strings[6086] = str->add(strings[6086]); strings[6106] = str->add("#000"); str->del(strings[6086]); str->del(strings[6106]); strings[6103] = str->add(strings[6103]); strings[6107] = str->add("shadow"); str->del(strings[6103]); str->del(strings[6107]); strings[6090] = str->add(strings[6090]); strings[6108] = str->add("#ffffff80"); str->del(strings[6090]); str->del(strings[6108]); strings[6097] = str->add(strings[6097]); strings[6109] = str->add("word"); str->del(strings[6097]); str->del(strings[6109]); strings[6085] = str->add(strings[6085]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6085]); str->del(strings[469]); strings[6084] = str->add(strings[6084]); strings[6110] = str->add("10.000000"); str->del(strings[6084]); str->del(strings[6110]); strings[6082] = str->add(strings[6082]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6082]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6103] = str->add(strings[6103]); strings[6111] = str->add("soft_shadow"); str->del(strings[6103]); str->del(strings[6111]); strings[6086] = str->add(strings[6086]); strings[6112] = str->add("#fff"); str->del(strings[6086]); str->del(strings[6112]); strings[6090] = str->add(strings[6090]); strings[6113] = str->add("#00000020"); str->del(strings[6090]); str->del(strings[6113]); strings[6084] = str->add(strings[6084]); strings[6114] = str->add("12.000000"); str->del(strings[6084]); str->del(strings[6114]); strings[6082] = str->add(strings[6082]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6082]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[6082]); str->del(strings[6083]); str->del(strings[6084]); str->del(strings[6085]); str->del(strings[6086]); str->del(strings[6087]); str->del(strings[6088]); str->del(strings[6089]); str->del(strings[6090]); str->del(strings[6091]); str->del(strings[6092]); str->del(strings[6093]); str->del(strings[6094]); str->del(strings[6095]); str->del(strings[6096]); str->del(strings[6097]); str->del(strings[6098]); str->del(strings[6099]); str->del(strings[6100]); str->del(strings[6101]); str->del(strings[6102]); str->del(strings[6103]); str->del(strings[6104]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); strings[1932] = str->add(strings[1932]); strings[6115] = str->add("go_activeb21"); strings[6116] = str->add("program,start"); strings[6117] = str->add("go_activec21"); strings[1932] = str->add(strings[1932]); strings[6118] = str->add("go_activeb9"); strings[6116] = str->add(strings[6116]); strings[6119] = str->add("go_activec9"); str->del(strings[6042]); str->del(strings[6043]); str->del(strings[6043]); str->del(strings[1841]); str->del(strings[6042]); str->del(strings[1841]); str->del(strings[6043]); str->del(strings[1932]); str->del(strings[6115]); str->del(strings[6116]); str->del(strings[6117]); str->del(strings[1932]); str->del(strings[6118]); str->del(strings[6116]); str->del(strings[6119]); strings[64] = str->add(strings[64]); strings[2595] = str->add(strings[2595]); strings[6120] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[6120] = str->add(strings[6120]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[4503] = str->add(strings[4503]); strings[64] = str->add(strings[64]); strings[3259] = str->add(strings[3259]); strings[64] = str->add(strings[64]); strings[3259] = str->add(strings[3259]); strings[469] = str->add(strings[469]); strings[3094] = str->add(strings[3094]); strings[6121] = str->add("resize"); strings[1933] = str->add(strings[1933]); str->del(strings[6120]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2680]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[6120] = str->add(strings[6120]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[3094] = str->add(strings[3094]); strings[6121] = str->add(strings[6121]); strings[6122] = str->add("e,action,mouse,move"); strings[6123] = str->add("e"); strings[6122] = str->add(strings[6122]); strings[6123] = str->add(strings[6123]); strings[6122] = str->add(strings[6122]); strings[6123] = str->add(strings[6123]); strings[6122] = str->add(strings[6122]); strings[6123] = str->add(strings[6123]); strings[1737] = str->add(strings[1737]); strings[1856] = str->add(strings[1856]); str->del(strings[6120]); str->del(strings[1841]); str->del(strings[6121]); str->del(strings[6120]); str->del(strings[1841]); str->del(strings[6121]); str->del(strings[6122]); str->del(strings[6123]); str->del(strings[6122]); str->del(strings[6123]); str->del(strings[6122]); str->del(strings[6123]); str->del(strings[6122]); str->del(strings[6123]); str->del(strings[1737]); str->del(strings[1856]); str->del(strings[190]); str->del(strings[6044]); str->del(strings[330]); str->del(strings[193]); strings[190] = str->add(strings[190]); strings[6124] = str->add("_theme_about"); strings[330] = str->add(strings[330]); strings[193] = str->add(strings[193]); strings[6125] = str->add("font"); strings[6126] = str->add("font_fallbacks"); strings[6127] = str->add("font_size"); strings[6128] = str->add("font_source"); strings[6129] = str->add("color"); strings[6130] = str->add("underline_color"); strings[6131] = str->add("underline2_color"); strings[6132] = str->add("outline_color"); strings[6133] = str->add("shadow_color"); strings[6134] = str->add("glow_color"); strings[6135] = str->add("glow2_color"); strings[6136] = str->add("backing_color"); strings[6137] = str->add("strikethrough_color"); strings[6138] = str->add("align"); strings[6139] = str->add("valign"); strings[6140] = str->add("wrap"); strings[6141] = str->add("left_margin"); strings[6142] = str->add("right_margin"); strings[6143] = str->add("underline"); strings[6144] = str->add("strikethrough"); strings[6145] = str->add("backing"); strings[6146] = str->add("style"); strings[6147] = str->add("tabstops"); strings[6138] = str->add(strings[6138]); strings[6148] = str->add("center"); str->del(strings[6138]); str->del(strings[6148]); strings[6129] = str->add(strings[6129]); strings[6149] = str->add("#000"); str->del(strings[6129]); str->del(strings[6149]); strings[6146] = str->add(strings[6146]); strings[6150] = str->add("shadow"); str->del(strings[6146]); str->del(strings[6150]); strings[6133] = str->add(strings[6133]); strings[6151] = str->add("#ffffff80"); str->del(strings[6133]); str->del(strings[6151]); strings[6140] = str->add(strings[6140]); strings[6152] = str->add("word"); str->del(strings[6140]); str->del(strings[6152]); strings[6128] = str->add(strings[6128]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6128]); str->del(strings[469]); strings[6127] = str->add(strings[6127]); strings[6153] = str->add("10.000000"); str->del(strings[6127]); str->del(strings[6153]); strings[6125] = str->add(strings[6125]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6125]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6146] = str->add(strings[6146]); strings[6154] = str->add("glow"); str->del(strings[6146]); str->del(strings[6154]); strings[6129] = str->add(strings[6129]); strings[6155] = str->add("#fff"); str->del(strings[6129]); str->del(strings[6155]); strings[6135] = str->add(strings[6135]); strings[6156] = str->add("#fe87"); str->del(strings[6135]); str->del(strings[6156]); strings[6134] = str->add(strings[6134]); strings[6157] = str->add("#fa14"); str->del(strings[6134]); str->del(strings[6157]); strings[6125] = str->add(strings[6125]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6125]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6146] = str->add(strings[6146]); strings[6158] = str->add("glow"); str->del(strings[6146]); str->del(strings[6158]); strings[6129] = str->add(strings[6129]); strings[6159] = str->add("#fff"); str->del(strings[6129]); str->del(strings[6159]); strings[6135] = str->add(strings[6135]); strings[6160] = str->add("#fe87"); str->del(strings[6135]); str->del(strings[6160]); strings[6134] = str->add(strings[6134]); strings[6161] = str->add("#fa14"); str->del(strings[6134]); str->del(strings[6161]); strings[6125] = str->add(strings[6125]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6125]); str->del(strings[471]); str->del(strings[6125]); str->del(strings[6126]); str->del(strings[6127]); str->del(strings[6128]); str->del(strings[6129]); str->del(strings[6130]); str->del(strings[6131]); str->del(strings[6132]); str->del(strings[6133]); str->del(strings[6134]); str->del(strings[6135]); str->del(strings[6136]); str->del(strings[6137]); str->del(strings[6138]); str->del(strings[6139]); str->del(strings[6140]); str->del(strings[6141]); str->del(strings[6142]); str->del(strings[6143]); str->del(strings[6144]); str->del(strings[6145]); str->del(strings[6146]); str->del(strings[6147]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[6162] = str->add("font"); strings[6163] = str->add("font_fallbacks"); strings[6164] = str->add("font_size"); strings[6165] = str->add("font_source"); strings[6166] = str->add("color"); strings[6167] = str->add("underline_color"); strings[6168] = str->add("underline2_color"); strings[6169] = str->add("outline_color"); strings[6170] = str->add("shadow_color"); strings[6171] = str->add("glow_color"); strings[6172] = str->add("glow2_color"); strings[6173] = str->add("backing_color"); strings[6174] = str->add("strikethrough_color"); strings[6175] = str->add("align"); strings[6176] = str->add("valign"); strings[6177] = str->add("wrap"); strings[6178] = str->add("left_margin"); strings[6179] = str->add("right_margin"); strings[6180] = str->add("underline"); strings[6181] = str->add("strikethrough"); strings[6182] = str->add("backing"); strings[6183] = str->add("style"); strings[6184] = str->add("tabstops"); strings[6175] = str->add(strings[6175]); strings[6185] = str->add("center"); str->del(strings[6175]); str->del(strings[6185]); strings[6166] = str->add(strings[6166]); strings[6186] = str->add("#000"); str->del(strings[6166]); str->del(strings[6186]); strings[6183] = str->add(strings[6183]); strings[6187] = str->add("shadow"); str->del(strings[6183]); str->del(strings[6187]); strings[6170] = str->add(strings[6170]); strings[6188] = str->add("#ffffff80"); str->del(strings[6170]); str->del(strings[6188]); strings[6177] = str->add(strings[6177]); strings[6189] = str->add("word"); str->del(strings[6177]); str->del(strings[6189]); strings[6165] = str->add(strings[6165]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6165]); str->del(strings[469]); strings[6164] = str->add(strings[6164]); strings[6190] = str->add("10.000000"); str->del(strings[6164]); str->del(strings[6190]); strings[6162] = str->add(strings[6162]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6162]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6183] = str->add(strings[6183]); strings[6191] = str->add("soft_shadow"); str->del(strings[6183]); str->del(strings[6191]); strings[6166] = str->add(strings[6166]); strings[6192] = str->add("#fff"); str->del(strings[6166]); str->del(strings[6192]); strings[6170] = str->add(strings[6170]); strings[6193] = str->add("#00000020"); str->del(strings[6170]); str->del(strings[6193]); strings[6164] = str->add(strings[6164]); strings[6194] = str->add("12.000000"); str->del(strings[6164]); str->del(strings[6194]); strings[6162] = str->add(strings[6162]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6162]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[6162]); str->del(strings[6163]); str->del(strings[6164]); str->del(strings[6165]); str->del(strings[6166]); str->del(strings[6167]); str->del(strings[6168]); str->del(strings[6169]); str->del(strings[6170]); str->del(strings[6171]); str->del(strings[6172]); str->del(strings[6173]); str->del(strings[6174]); str->del(strings[6175]); str->del(strings[6176]); str->del(strings[6177]); str->del(strings[6178]); str->del(strings[6179]); str->del(strings[6180]); str->del(strings[6181]); str->del(strings[6182]); str->del(strings[6183]); str->del(strings[6184]); strings[6195] = str->add("font"); strings[6196] = str->add("font_fallbacks"); strings[6197] = str->add("font_size"); strings[6198] = str->add("font_source"); strings[6199] = str->add("color"); strings[6200] = str->add("underline_color"); strings[6201] = str->add("underline2_color"); strings[6202] = str->add("outline_color"); strings[6203] = str->add("shadow_color"); strings[6204] = str->add("glow_color"); strings[6205] = str->add("glow2_color"); strings[6206] = str->add("backing_color"); strings[6207] = str->add("strikethrough_color"); strings[6208] = str->add("align"); strings[6209] = str->add("valign"); strings[6210] = str->add("wrap"); strings[6211] = str->add("left_margin"); strings[6212] = str->add("right_margin"); strings[6213] = str->add("underline"); strings[6214] = str->add("strikethrough"); strings[6215] = str->add("backing"); strings[6216] = str->add("style"); strings[6217] = str->add("tabstops"); strings[6208] = str->add(strings[6208]); strings[6218] = str->add("center"); str->del(strings[6208]); str->del(strings[6218]); strings[6199] = str->add(strings[6199]); strings[6219] = str->add("#000"); str->del(strings[6199]); str->del(strings[6219]); strings[6216] = str->add(strings[6216]); strings[6220] = str->add("shadow"); str->del(strings[6216]); str->del(strings[6220]); strings[6203] = str->add(strings[6203]); strings[6221] = str->add("#ffffff80"); str->del(strings[6203]); str->del(strings[6221]); strings[6210] = str->add(strings[6210]); strings[6222] = str->add("word"); str->del(strings[6210]); str->del(strings[6222]); strings[6198] = str->add(strings[6198]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6198]); str->del(strings[469]); strings[6197] = str->add(strings[6197]); strings[6223] = str->add("10.000000"); str->del(strings[6197]); str->del(strings[6223]); strings[6195] = str->add(strings[6195]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6195]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6216] = str->add(strings[6216]); strings[6224] = str->add("soft_shadow"); str->del(strings[6216]); str->del(strings[6224]); strings[6199] = str->add(strings[6199]); strings[6225] = str->add("#fff"); str->del(strings[6199]); str->del(strings[6225]); strings[6203] = str->add(strings[6203]); strings[6226] = str->add("#00000020"); str->del(strings[6203]); str->del(strings[6226]); strings[6197] = str->add(strings[6197]); strings[6227] = str->add("12.000000"); str->del(strings[6197]); str->del(strings[6227]); strings[6195] = str->add(strings[6195]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6195]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[6195]); str->del(strings[6196]); str->del(strings[6197]); str->del(strings[6198]); str->del(strings[6199]); str->del(strings[6200]); str->del(strings[6201]); str->del(strings[6202]); str->del(strings[6203]); str->del(strings[6204]); str->del(strings[6205]); str->del(strings[6206]); str->del(strings[6207]); str->del(strings[6208]); str->del(strings[6209]); str->del(strings[6210]); str->del(strings[6211]); str->del(strings[6212]); str->del(strings[6213]); str->del(strings[6214]); str->del(strings[6215]); str->del(strings[6216]); str->del(strings[6217]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); strings[6228] = str->add("font"); strings[6229] = str->add("font_fallbacks"); strings[6230] = str->add("font_size"); strings[6231] = str->add("font_source"); strings[6232] = str->add("color"); strings[6233] = str->add("underline_color"); strings[6234] = str->add("underline2_color"); strings[6235] = str->add("outline_color"); strings[6236] = str->add("shadow_color"); strings[6237] = str->add("glow_color"); strings[6238] = str->add("glow2_color"); strings[6239] = str->add("backing_color"); strings[6240] = str->add("strikethrough_color"); strings[6241] = str->add("align"); strings[6242] = str->add("valign"); strings[6243] = str->add("wrap"); strings[6244] = str->add("left_margin"); strings[6245] = str->add("right_margin"); strings[6246] = str->add("underline"); strings[6247] = str->add("strikethrough"); strings[6248] = str->add("backing"); strings[6249] = str->add("style"); strings[6250] = str->add("tabstops"); strings[6241] = str->add(strings[6241]); strings[6251] = str->add("center"); str->del(strings[6241]); str->del(strings[6251]); strings[6232] = str->add(strings[6232]); strings[6252] = str->add("#000"); str->del(strings[6232]); str->del(strings[6252]); strings[6249] = str->add(strings[6249]); strings[6253] = str->add("shadow"); str->del(strings[6249]); str->del(strings[6253]); strings[6236] = str->add(strings[6236]); strings[6254] = str->add("#ffffff80"); str->del(strings[6236]); str->del(strings[6254]); strings[6243] = str->add(strings[6243]); strings[6255] = str->add("word"); str->del(strings[6243]); str->del(strings[6255]); strings[6231] = str->add(strings[6231]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6231]); str->del(strings[469]); strings[6230] = str->add(strings[6230]); strings[6256] = str->add("10.000000"); str->del(strings[6230]); str->del(strings[6256]); strings[6228] = str->add(strings[6228]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6228]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6249] = str->add(strings[6249]); strings[6257] = str->add("soft_shadow"); str->del(strings[6249]); str->del(strings[6257]); strings[6232] = str->add(strings[6232]); strings[6258] = str->add("#fff"); str->del(strings[6232]); str->del(strings[6258]); strings[6236] = str->add(strings[6236]); strings[6259] = str->add("#00000020"); str->del(strings[6236]); str->del(strings[6259]); strings[6230] = str->add(strings[6230]); strings[6260] = str->add("12.000000"); str->del(strings[6230]); str->del(strings[6260]); strings[6228] = str->add(strings[6228]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6228]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[6228]); str->del(strings[6229]); str->del(strings[6230]); str->del(strings[6231]); str->del(strings[6232]); str->del(strings[6233]); str->del(strings[6234]); str->del(strings[6235]); str->del(strings[6236]); str->del(strings[6237]); str->del(strings[6238]); str->del(strings[6239]); str->del(strings[6240]); str->del(strings[6241]); str->del(strings[6242]); str->del(strings[6243]); str->del(strings[6244]); str->del(strings[6245]); str->del(strings[6246]); str->del(strings[6247]); str->del(strings[6248]); str->del(strings[6249]); str->del(strings[6250]); str->del(strings[7]); str->del(strings[3698]); strings[7] = str->add(strings[7]); strings[3703] = str->add(strings[3703]); strings[1932] = str->add(strings[1932]); strings[1845] = str->add(strings[1845]); strings[6261] = str->add("program,start"); strings[1846] = str->add(strings[1846]); strings[1932] = str->add(strings[1932]); strings[1846] = str->add(strings[1846]); strings[6261] = str->add(strings[6261]); strings[1845] = str->add(strings[1845]); strings[1932] = str->add(strings[1932]); strings[6262] = str->add("go_activec27"); strings[6261] = str->add(strings[6261]); strings[6263] = str->add("go_activeb27"); strings[1932] = str->add(strings[1932]); strings[6264] = str->add("go_activec3"); strings[6261] = str->add(strings[6261]); strings[6265] = str->add("go_activeb3"); str->del(strings[1932]); str->del(strings[1845]); str->del(strings[6261]); str->del(strings[1846]); str->del(strings[1932]); str->del(strings[1846]); str->del(strings[6261]); str->del(strings[1845]); str->del(strings[1932]); str->del(strings[6262]); str->del(strings[6261]); str->del(strings[6263]); str->del(strings[1932]); str->del(strings[6264]); str->del(strings[6261]); str->del(strings[6265]); strings[6266] = str->add("e,action,mouse,move"); strings[6267] = str->add("e"); strings[6268] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); str->del(strings[6266]); str->del(strings[6267]); str->del(strings[6268]); str->del(strings[1856]); str->del(strings[469]); str->del(strings[3094]); strings[6269] = str->add("e,action,mouse,move"); strings[6270] = str->add("e"); strings[6271] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); strings[6269] = str->add(strings[6269]); strings[6270] = str->add(strings[6270]); strings[6271] = str->add(strings[6271]); strings[1856] = str->add(strings[1856]); strings[6269] = str->add(strings[6269]); strings[6270] = str->add(strings[6270]); strings[1740] = str->add(strings[1740]); strings[1856] = str->add(strings[1856]); strings[1737] = str->add(strings[1737]); strings[1853] = str->add(strings[1853]); str->del(strings[6269]); str->del(strings[6270]); str->del(strings[6271]); str->del(strings[1856]); str->del(strings[6269]); str->del(strings[6270]); str->del(strings[6271]); str->del(strings[1856]); str->del(strings[6269]); str->del(strings[6270]); str->del(strings[1740]); str->del(strings[1856]); str->del(strings[1737]); str->del(strings[1853]); strings[6272] = str->add("e,action,mouse,move"); strings[6273] = str->add("e"); strings[6274] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6272]); str->del(strings[6273]); str->del(strings[6274]); str->del(strings[1853]); strings[6275] = str->add("e,action,mouse,move"); strings[6276] = str->add("e"); strings[6277] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[6275] = str->add(strings[6275]); strings[6276] = str->add(strings[6276]); strings[6277] = str->add(strings[6277]); strings[1853] = str->add(strings[1853]); str->del(strings[6275]); str->del(strings[6276]); str->del(strings[6277]); str->del(strings[1853]); str->del(strings[6275]); str->del(strings[6276]); str->del(strings[6277]); str->del(strings[1853]); strings[6278] = str->add("e,action,mouse,move"); strings[6279] = str->add("e"); strings[6280] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6278]); str->del(strings[6279]); str->del(strings[6280]); str->del(strings[1853]); strings[6281] = str->add("e,action,mouse,move"); strings[6282] = str->add("e"); strings[6283] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6281]); str->del(strings[6282]); str->del(strings[6283]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[3703]); strings[7] = str->add(strings[7]); strings[2990] = str->add(strings[2990]); strings[6284] = str->add("e,action,mouse,move"); strings[6285] = str->add("e"); strings[6286] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[6284] = str->add(strings[6284]); strings[6285] = str->add(strings[6285]); strings[6286] = str->add(strings[6286]); strings[1853] = str->add(strings[1853]); str->del(strings[6284]); str->del(strings[6285]); str->del(strings[6286]); str->del(strings[1853]); str->del(strings[6284]); str->del(strings[6285]); str->del(strings[6286]); str->del(strings[1853]); strings[6287] = str->add("e,action,mouse,move"); strings[6288] = str->add("e"); strings[6289] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6287]); str->del(strings[6288]); str->del(strings[6289]); str->del(strings[1853]); strings[6290] = str->add("e,action,mouse,move"); strings[6291] = str->add("e"); strings[6292] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6290]); str->del(strings[6291]); str->del(strings[6292]); str->del(strings[1853]); strings[1932] = str->add(strings[1932]); strings[6293] = str->add("go_activeb1"); strings[6294] = str->add("program,start"); strings[6295] = str->add("go_activec1"); strings[1932] = str->add(strings[1932]); strings[6296] = str->add("go_activeb29"); strings[6294] = str->add(strings[6294]); strings[6297] = str->add("go_activec29"); str->del(strings[1932]); str->del(strings[6293]); str->del(strings[6294]); str->del(strings[6295]); str->del(strings[1932]); str->del(strings[6296]); str->del(strings[6294]); str->del(strings[6297]); strings[6298] = str->add("e,action,mouse,move"); strings[6299] = str->add("e"); strings[6300] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[6298] = str->add(strings[6298]); strings[6299] = str->add(strings[6299]); strings[6300] = str->add(strings[6300]); strings[1853] = str->add(strings[1853]); str->del(strings[6298]); str->del(strings[6299]); str->del(strings[6300]); str->del(strings[1853]); str->del(strings[6298]); str->del(strings[6299]); str->del(strings[6300]); str->del(strings[1853]); strings[6301] = str->add("e,action,mouse,move"); strings[6302] = str->add("e"); strings[6303] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6301]); str->del(strings[6302]); str->del(strings[6303]); str->del(strings[1853]); strings[6304] = str->add("e,action,mouse,move"); strings[6305] = str->add("e"); strings[6306] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6304]); str->del(strings[6305]); str->del(strings[6306]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[2990]); strings[7] = str->add(strings[7]); strings[3027] = str->add(strings[3027]); strings[6307] = str->add("e,action,mouse,move"); strings[6308] = str->add("e"); strings[6309] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[6307] = str->add(strings[6307]); strings[6308] = str->add(strings[6308]); strings[6309] = str->add(strings[6309]); strings[1853] = str->add(strings[1853]); str->del(strings[6307]); str->del(strings[6308]); str->del(strings[6309]); str->del(strings[1853]); str->del(strings[6307]); str->del(strings[6308]); str->del(strings[6309]); str->del(strings[1853]); strings[6310] = str->add("e,action,mouse,move"); strings[6311] = str->add("e"); strings[6312] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6310]); str->del(strings[6311]); str->del(strings[6312]); str->del(strings[1853]); strings[6313] = str->add("e,action,mouse,move"); strings[6314] = str->add("e"); strings[6315] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6313]); str->del(strings[6314]); str->del(strings[6315]); str->del(strings[1853]); strings[6316] = str->add("e,action,mouse,move"); strings[6317] = str->add("e"); strings[6318] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[6316] = str->add(strings[6316]); strings[6317] = str->add(strings[6317]); strings[6318] = str->add(strings[6318]); strings[1853] = str->add(strings[1853]); str->del(strings[6316]); str->del(strings[6317]); str->del(strings[6318]); str->del(strings[1853]); str->del(strings[6316]); str->del(strings[6317]); str->del(strings[6318]); str->del(strings[1853]); strings[6319] = str->add("e,action,mouse,move"); strings[6320] = str->add("e"); strings[6321] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6319]); str->del(strings[6320]); str->del(strings[6321]); str->del(strings[1853]); strings[6322] = str->add("e,action,mouse,move"); strings[6323] = str->add("e"); strings[6324] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6322]); str->del(strings[6323]); str->del(strings[6324]); str->del(strings[1853]); strings[6325] = str->add("e,action,mouse,move"); strings[6326] = str->add("e"); strings[6327] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6325]); str->del(strings[6326]); str->del(strings[6327]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[3027]); strings[7] = str->add(strings[7]); strings[3033] = str->add(strings[3033]); strings[6328] = str->add("e,action,mouse,move"); strings[6329] = str->add("e"); strings[6330] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[6328] = str->add(strings[6328]); strings[6329] = str->add(strings[6329]); strings[6330] = str->add(strings[6330]); strings[1853] = str->add(strings[1853]); str->del(strings[6328]); str->del(strings[6329]); str->del(strings[6330]); str->del(strings[1853]); str->del(strings[6328]); str->del(strings[6329]); str->del(strings[6330]); str->del(strings[1853]); strings[6331] = str->add("e,action,mouse,move"); strings[6332] = str->add("e"); strings[6333] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6331]); str->del(strings[6332]); str->del(strings[6333]); str->del(strings[1853]); strings[6334] = str->add("e,action,mouse,move"); strings[6335] = str->add("e"); strings[6336] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6334]); str->del(strings[6335]); str->del(strings[6336]); str->del(strings[1853]); strings[1932] = str->add(strings[1932]); strings[6337] = str->add("go_activec26"); strings[6338] = str->add("program,start"); strings[6339] = str->add("go_activeb26"); strings[1932] = str->add(strings[1932]); strings[6340] = str->add("go_activec4"); strings[6338] = str->add(strings[6338]); strings[6341] = str->add("go_activeb4"); str->del(strings[1932]); str->del(strings[6337]); str->del(strings[6338]); str->del(strings[6339]); str->del(strings[1932]); str->del(strings[6340]); str->del(strings[6338]); str->del(strings[6341]); strings[6342] = str->add("e,action,mouse,move"); strings[6343] = str->add("e"); strings[6344] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[6342] = str->add(strings[6342]); strings[6343] = str->add(strings[6343]); strings[6344] = str->add(strings[6344]); strings[1853] = str->add(strings[1853]); str->del(strings[6342]); str->del(strings[6343]); str->del(strings[6344]); str->del(strings[1853]); str->del(strings[6342]); str->del(strings[6343]); str->del(strings[6344]); str->del(strings[1853]); strings[6345] = str->add("e,action,mouse,move"); strings[6346] = str->add("e"); strings[6347] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6345]); str->del(strings[6346]); str->del(strings[6347]); str->del(strings[1853]); strings[6348] = str->add("e,action,mouse,move"); strings[6349] = str->add("e"); strings[6350] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6348]); str->del(strings[6349]); str->del(strings[6350]); str->del(strings[1853]); strings[1932] = str->add(strings[1932]); strings[6351] = str->add("off"); str->del(strings[1932]); str->del(strings[6351]); str->del(strings[7]); str->del(strings[3033]); strings[7] = str->add(strings[7]); strings[2062] = str->add(strings[2062]); strings[6352] = str->add("e,action,mouse,move"); strings[6353] = str->add("e"); strings[6354] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[6352] = str->add(strings[6352]); strings[6353] = str->add(strings[6353]); strings[6354] = str->add(strings[6354]); strings[1853] = str->add(strings[1853]); str->del(strings[6352]); str->del(strings[6353]); str->del(strings[6354]); str->del(strings[1853]); str->del(strings[6352]); str->del(strings[6353]); str->del(strings[6354]); str->del(strings[1853]); strings[6355] = str->add("e,action,mouse,move"); strings[6356] = str->add("e"); strings[6357] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6355]); str->del(strings[6356]); str->del(strings[6357]); str->del(strings[1853]); strings[6358] = str->add("e,action,mouse,move"); strings[6359] = str->add("e"); strings[6360] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6358]); str->del(strings[6359]); str->del(strings[6360]); str->del(strings[1853]); strings[6361] = str->add("e,action,mouse,move"); strings[6362] = str->add("e"); strings[1740] = str->add(strings[1740]); strings[1853] = str->add(strings[1853]); strings[1737] = str->add(strings[1737]); strings[1856] = str->add(strings[1856]); strings[6361] = str->add(strings[6361]); strings[6362] = str->add(strings[6362]); strings[1740] = str->add(strings[1740]); strings[1856] = str->add(strings[1856]); strings[1737] = str->add(strings[1737]); strings[1862] = str->add(strings[1862]); str->del(strings[6361]); str->del(strings[6362]); str->del(strings[1740]); str->del(strings[1853]); str->del(strings[1737]); str->del(strings[1856]); str->del(strings[6361]); str->del(strings[6362]); str->del(strings[1740]); str->del(strings[1856]); str->del(strings[1737]); str->del(strings[1862]); strings[6363] = str->add("e,action,mouse,move"); strings[6364] = str->add("e"); strings[6365] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[6363]); str->del(strings[6364]); str->del(strings[6365]); str->del(strings[1862]); strings[6366] = str->add("e,action,mouse,move"); strings[6367] = str->add("e"); strings[6368] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[6366]); str->del(strings[6367]); str->del(strings[6368]); str->del(strings[1862]); strings[1932] = str->add(strings[1932]); strings[6369] = str->add("go_activeb28"); strings[6370] = str->add("program,start"); strings[6371] = str->add("go_activec28"); strings[1932] = str->add(strings[1932]); strings[6372] = str->add("go_activeb2"); strings[6370] = str->add(strings[6370]); strings[6373] = str->add("go_activec2"); str->del(strings[1932]); str->del(strings[6369]); str->del(strings[6370]); str->del(strings[6371]); str->del(strings[1932]); str->del(strings[6372]); str->del(strings[6370]); str->del(strings[6373]); str->del(strings[7]); str->del(strings[2062]); strings[7] = str->add(strings[7]); strings[3100] = str->add(strings[3100]); strings[6374] = str->add("e,action,mouse,move"); strings[6375] = str->add("e"); strings[6376] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); strings[6374] = str->add(strings[6374]); strings[6375] = str->add(strings[6375]); strings[6376] = str->add(strings[6376]); strings[1862] = str->add(strings[1862]); str->del(strings[6374]); str->del(strings[6375]); str->del(strings[6376]); str->del(strings[1862]); str->del(strings[6374]); str->del(strings[6375]); str->del(strings[6376]); str->del(strings[1862]); strings[6377] = str->add("e,action,mouse,move"); strings[6378] = str->add("e"); strings[6379] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[6377]); str->del(strings[6378]); str->del(strings[6379]); str->del(strings[1862]); strings[6380] = str->add("e,action,mouse,move"); strings[6381] = str->add("e"); strings[6382] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[6380]); str->del(strings[6381]); str->del(strings[6382]); str->del(strings[1862]); strings[6383] = str->add("e,action,mouse,move"); strings[6384] = str->add("e"); strings[6385] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[6383]); str->del(strings[6384]); str->del(strings[6385]); str->del(strings[1862]); strings[6386] = str->add("e,action,mouse,move"); strings[6387] = str->add("e"); strings[6388] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[6386]); str->del(strings[6387]); str->del(strings[6388]); str->del(strings[1862]); strings[6389] = str->add("e,action,mouse,move"); strings[6390] = str->add("e"); strings[6391] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[6389]); str->del(strings[6390]); str->del(strings[6391]); str->del(strings[1862]); strings[6392] = str->add("e,action,mouse,move"); strings[6393] = str->add("e"); strings[6394] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[6392]); str->del(strings[6393]); str->del(strings[6394]); str->del(strings[1862]); strings[6395] = str->add("e,action,mouse,move"); strings[6396] = str->add("e"); strings[6397] = str->add("mouse,move"); strings[1862] = str->add(strings[1862]); str->del(strings[6395]); str->del(strings[6396]); str->del(strings[6397]); str->del(strings[1862]); str->del(strings[7]); str->del(strings[3100]); strings[7] = str->add(strings[7]); strings[3111] = str->add(strings[3111]); strings[6398] = str->add("e,action,mouse,move"); strings[6399] = str->add("e"); strings[1740] = str->add(strings[1740]); strings[1862] = str->add(strings[1862]); strings[1737] = str->add(strings[1737]); strings[1856] = str->add(strings[1856]); strings[6398] = str->add(strings[6398]); strings[6399] = str->add(strings[6399]); strings[6400] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); str->del(strings[6398]); str->del(strings[6399]); str->del(strings[1740]); str->del(strings[1862]); str->del(strings[1737]); str->del(strings[1856]); str->del(strings[6398]); str->del(strings[6399]); str->del(strings[6400]); str->del(strings[1856]); strings[6401] = str->add("e,action,mouse,move"); strings[6402] = str->add("e"); strings[6403] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); str->del(strings[6401]); str->del(strings[6402]); str->del(strings[6403]); str->del(strings[1856]); strings[6404] = str->add("e,action,mouse,move"); strings[6405] = str->add("e"); strings[6406] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); str->del(strings[6404]); str->del(strings[6405]); str->del(strings[6406]); str->del(strings[1856]); strings[1932] = str->add(strings[1932]); strings[6407] = str->add("go_activec25"); strings[6408] = str->add("program,start"); strings[6409] = str->add("go_activeb25"); strings[1932] = str->add(strings[1932]); strings[6410] = str->add("go_activec5"); strings[6408] = str->add(strings[6408]); strings[6411] = str->add("go_activeb5"); str->del(strings[1932]); str->del(strings[6407]); str->del(strings[6408]); str->del(strings[6409]); str->del(strings[1932]); str->del(strings[6410]); str->del(strings[6408]); str->del(strings[6411]); strings[6412] = str->add("e,action,mouse,move"); strings[6413] = str->add("e"); strings[6414] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); str->del(strings[6412]); str->del(strings[6413]); str->del(strings[6414]); str->del(strings[1856]); strings[6415] = str->add("e,action,mouse,move"); strings[6416] = str->add("e"); strings[6417] = str->add("mouse,move"); strings[1856] = str->add(strings[1856]); str->del(strings[6415]); str->del(strings[6416]); str->del(strings[6417]); str->del(strings[1856]); strings[6418] = str->add("e,action,mouse,move"); strings[6419] = str->add("e"); strings[1740] = str->add(strings[1740]); strings[1856] = str->add(strings[1856]); strings[1737] = str->add(strings[1737]); strings[1853] = str->add(strings[1853]); str->del(strings[6418]); str->del(strings[6419]); str->del(strings[1740]); str->del(strings[1856]); str->del(strings[1737]); str->del(strings[1853]); str->del(strings[7]); str->del(strings[3111]); strings[7] = str->add(strings[7]); strings[3136] = str->add(strings[3136]); strings[6420] = str->add("e,action,mouse,move"); strings[6421] = str->add("e"); strings[6422] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[6420]); str->del(strings[6421]); str->del(strings[6422]); str->del(strings[1853]); strings[6423] = str->add("e,action,mouse,move"); strings[6424] = str->add("e"); strings[6425] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[1740] = str->add(strings[1740]); strings[1853] = str->add(strings[1853]); strings[6423] = str->add(strings[6423]); strings[6424] = str->add(strings[6424]); strings[6423] = str->add(strings[6423]); strings[6424] = str->add(strings[6424]); strings[6426] = str->add("e,state,focused"); strings[6424] = str->add(strings[6424]); str->del(strings[6423]); str->del(strings[6424]); str->del(strings[6425]); str->del(strings[1853]); str->del(strings[1740]); str->del(strings[1853]); str->del(strings[6423]); str->del(strings[6424]); str->del(strings[6423]); str->del(strings[6424]); str->del(strings[6426]); str->del(strings[6424]); strings[6427] = str->add("e,action,mouse,move"); strings[6428] = str->add("e"); str->del(strings[6427]); str->del(strings[6428]); strings[6429] = str->add("e,action,mouse,move"); strings[6430] = str->add("e"); strings[1737] = str->add(strings[1737]); strings[377] = str->add(strings[377]); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); strings[1737] = str->add(strings[1737]); strings[1946] = str->add(strings[1946]); str->del(strings[6429]); str->del(strings[6430]); str->del(strings[1737]); str->del(strings[377]); str->del(strings[1737]); str->del(strings[1946]); str->del(strings[1737]); str->del(strings[1946]); strings[6431] = str->add("e,action,mouse,move"); strings[6432] = str->add("e"); strings[6433] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[6433] = str->add(strings[6433]); strings[1946] = str->add(strings[1946]); strings[6433] = str->add(strings[6433]); strings[1946] = str->add(strings[1946]); str->del(strings[6431]); str->del(strings[6432]); str->del(strings[6433]); str->del(strings[377]); str->del(strings[6433]); str->del(strings[1946]); str->del(strings[6433]); str->del(strings[1946]); strings[1932] = str->add(strings[1932]); strings[6434] = str->add("go_activeb27"); strings[6435] = str->add("program,start"); strings[6436] = str->add("go_activec27"); strings[1932] = str->add(strings[1932]); strings[6437] = str->add("go_activeb3"); strings[6435] = str->add(strings[6435]); strings[6438] = str->add("go_activec3"); str->del(strings[1932]); str->del(strings[6434]); str->del(strings[6435]); str->del(strings[6436]); str->del(strings[1932]); str->del(strings[6437]); str->del(strings[6435]); str->del(strings[6438]); str->del(strings[7]); str->del(strings[3136]); strings[7] = str->add(strings[7]); strings[3167] = str->add(strings[3167]); strings[6439] = str->add("e,action,mouse,move"); strings[6440] = str->add("e"); strings[6441] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[6441] = str->add(strings[6441]); strings[1946] = str->add(strings[1946]); strings[6441] = str->add(strings[6441]); strings[1946] = str->add(strings[1946]); strings[6439] = str->add(strings[6439]); strings[6440] = str->add(strings[6440]); strings[6441] = str->add(strings[6441]); strings[377] = str->add(strings[377]); strings[6441] = str->add(strings[6441]); strings[1946] = str->add(strings[1946]); strings[6441] = str->add(strings[6441]); strings[1946] = str->add(strings[1946]); str->del(strings[6439]); str->del(strings[6440]); str->del(strings[6441]); str->del(strings[377]); str->del(strings[6441]); str->del(strings[1946]); str->del(strings[6441]); str->del(strings[1946]); str->del(strings[6439]); str->del(strings[6440]); str->del(strings[6441]); str->del(strings[377]); str->del(strings[6441]); str->del(strings[1946]); str->del(strings[6441]); str->del(strings[1946]); strings[6442] = str->add("e,action,mouse,move"); strings[6443] = str->add("e"); strings[6444] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[6444] = str->add(strings[6444]); strings[1946] = str->add(strings[1946]); strings[6444] = str->add(strings[6444]); strings[1946] = str->add(strings[1946]); str->del(strings[6442]); str->del(strings[6443]); str->del(strings[6444]); str->del(strings[377]); str->del(strings[6444]); str->del(strings[1946]); str->del(strings[6444]); str->del(strings[1946]); strings[6445] = str->add("e,action,mouse,move"); strings[6446] = str->add("e"); strings[6447] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[6447] = str->add(strings[6447]); strings[1946] = str->add(strings[1946]); strings[6447] = str->add(strings[6447]); strings[1946] = str->add(strings[1946]); strings[6445] = str->add(strings[6445]); strings[6446] = str->add(strings[6446]); strings[6447] = str->add(strings[6447]); strings[377] = str->add(strings[377]); strings[6447] = str->add(strings[6447]); strings[1946] = str->add(strings[1946]); strings[6447] = str->add(strings[6447]); strings[1946] = str->add(strings[1946]); str->del(strings[6445]); str->del(strings[6446]); str->del(strings[6447]); str->del(strings[377]); str->del(strings[6447]); str->del(strings[1946]); str->del(strings[6447]); str->del(strings[1946]); str->del(strings[6445]); str->del(strings[6446]); str->del(strings[6447]); str->del(strings[377]); str->del(strings[6447]); str->del(strings[1946]); str->del(strings[6447]); str->del(strings[1946]); strings[6448] = str->add("e,action,mouse,move"); strings[6449] = str->add("e"); strings[6450] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[6450] = str->add(strings[6450]); strings[1946] = str->add(strings[1946]); strings[6450] = str->add(strings[6450]); strings[1946] = str->add(strings[1946]); str->del(strings[6448]); str->del(strings[6449]); str->del(strings[6450]); str->del(strings[377]); str->del(strings[6450]); str->del(strings[1946]); str->del(strings[6450]); str->del(strings[1946]); strings[1932] = str->add(strings[1932]); strings[6451] = str->add("go_activec24"); strings[6452] = str->add("program,start"); strings[6453] = str->add("go_activeb24"); strings[1932] = str->add(strings[1932]); strings[6454] = str->add("go_activec6"); strings[6452] = str->add(strings[6452]); strings[6455] = str->add("go_activeb6"); str->del(strings[1932]); str->del(strings[6451]); str->del(strings[6452]); str->del(strings[6453]); str->del(strings[1932]); str->del(strings[6454]); str->del(strings[6452]); str->del(strings[6455]); str->del(strings[7]); str->del(strings[3167]); strings[7] = str->add(strings[7]); strings[3190] = str->add(strings[3190]); strings[6456] = str->add("e,action,mouse,move"); strings[6457] = str->add("e"); strings[6458] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[6458] = str->add(strings[6458]); strings[1946] = str->add(strings[1946]); strings[6458] = str->add(strings[6458]); strings[1946] = str->add(strings[1946]); str->del(strings[6456]); str->del(strings[6457]); str->del(strings[6458]); str->del(strings[377]); str->del(strings[6458]); str->del(strings[1946]); str->del(strings[6458]); str->del(strings[1946]); strings[6459] = str->add("e,action,mouse,move"); strings[6460] = str->add("e"); strings[6461] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[6461] = str->add(strings[6461]); strings[1946] = str->add(strings[1946]); strings[6461] = str->add(strings[6461]); strings[1946] = str->add(strings[1946]); str->del(strings[6459]); str->del(strings[6460]); str->del(strings[6461]); str->del(strings[377]); str->del(strings[6461]); str->del(strings[1946]); str->del(strings[6461]); str->del(strings[1946]); strings[6462] = str->add("e,action,mouse,move"); strings[6463] = str->add("e"); strings[6464] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[6464] = str->add(strings[6464]); strings[1946] = str->add(strings[1946]); strings[6464] = str->add(strings[6464]); strings[1946] = str->add(strings[1946]); str->del(strings[6462]); str->del(strings[6463]); str->del(strings[6464]); str->del(strings[377]); str->del(strings[6464]); str->del(strings[1946]); str->del(strings[6464]); str->del(strings[1946]); strings[6465] = str->add("e,action,mouse,move"); strings[6466] = str->add("e"); strings[6467] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[6467] = str->add(strings[6467]); strings[1946] = str->add(strings[1946]); strings[6467] = str->add(strings[6467]); strings[1946] = str->add(strings[1946]); str->del(strings[6465]); str->del(strings[6466]); str->del(strings[6467]); str->del(strings[377]); str->del(strings[6467]); str->del(strings[1946]); str->del(strings[6467]); str->del(strings[1946]); str->del(strings[7]); str->del(strings[3190]); strings[7] = str->add(strings[7]); strings[2148] = str->add(strings[2148]); strings[6468] = str->add("e,action,mouse,move"); strings[6469] = str->add("e"); strings[6470] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[6470] = str->add(strings[6470]); strings[1946] = str->add(strings[1946]); strings[6470] = str->add(strings[6470]); strings[1946] = str->add(strings[1946]); str->del(strings[6468]); str->del(strings[6469]); str->del(strings[6470]); str->del(strings[377]); str->del(strings[6470]); str->del(strings[1946]); str->del(strings[6470]); str->del(strings[1946]); strings[6471] = str->add("e,action,mouse,move"); strings[6472] = str->add("e"); strings[6473] = str->add("mouse,move"); strings[377] = str->add(strings[377]); strings[6473] = str->add(strings[6473]); strings[1946] = str->add(strings[1946]); strings[6473] = str->add(strings[6473]); strings[1946] = str->add(strings[1946]); str->del(strings[6471]); str->del(strings[6472]); str->del(strings[6473]); str->del(strings[377]); str->del(strings[6473]); str->del(strings[1946]); str->del(strings[6473]); str->del(strings[1946]); strings[1932] = str->add(strings[1932]); strings[6474] = str->add("go_activeb26"); strings[6475] = str->add("program,start"); strings[6476] = str->add("go_activec26"); strings[1932] = str->add(strings[1932]); strings[6477] = str->add("go_activeb4"); strings[6475] = str->add(strings[6475]); strings[6478] = str->add("go_activec4"); str->del(strings[1932]); str->del(strings[6474]); str->del(strings[6475]); str->del(strings[6476]); str->del(strings[1932]); str->del(strings[6477]); str->del(strings[6475]); str->del(strings[6478]); str->del(strings[7]); str->del(strings[2148]); strings[7] = str->add(strings[7]); strings[2150] = str->add(strings[2150]); strings[6479] = str->add("e,action,mouse,move"); strings[6480] = str->add("e"); strings[6481] = str->add("e,action,mouse,down"); strings[6480] = str->add(strings[6480]); strings[167] = str->add(strings[167]); strings[377] = str->add(strings[377]); strings[6482] = str->add("Main"); strings[66] = str->add(strings[66]); strings[6483] = str->add("Favorite Applications"); strings[469] = str->add(strings[469]); strings[2686] = str->add(strings[2686]); strings[2231] = str->add(strings[2231]); strings[469] = str->add(strings[469]); strings[2715] = str->add(strings[2715]); strings[2338] = str->add(strings[2338]); strings[469] = str->add(strings[469]); strings[2691] = str->add(strings[2691]); strings[6484] = str->add("Files"); strings[469] = str->add(strings[469]); strings[2693] = str->add(strings[2693]); strings[6485] = str->add("Virtual"); strings[469] = str->add(strings[469]); strings[2687] = str->add(strings[2687]); strings[2494] = str->add(strings[2494]); strings[469] = str->add(strings[469]); strings[2711] = str->add(strings[2711]); strings[6486] = str->add("Show/Hide All Windows"); strings[1619] = str->add(strings[1619]); strings[469] = str->add(strings[469]); strings[2687] = str->add(strings[2687]); strings[2552] = str->add(strings[2552]); strings[469] = str->add(strings[469]); strings[2682] = str->add(strings[2682]); strings[1712] = str->add(strings[1712]); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[6487] = str->add("About"); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[2514] = str->add(strings[2514]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[1713] = str->add(strings[1713]); strings[469] = str->add(strings[469]); strings[2672] = str->add(strings[2672]); strings[1714] = str->add(strings[1714]); strings[469] = str->add(strings[469]); strings[2673] = str->add(strings[2673]); strings[6488] = str->add("Configuration"); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[1721] = str->add(strings[1721]); strings[469] = str->add(strings[469]); strings[2690] = str->add(strings[2690]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[6489] = str->add("resize"); str->del(strings[6489]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[6490] = str->add("load"); strings[6482] = str->add(strings[6482]); strings[6491] = str->add("e,action,show,title"); strings[6480] = str->add(strings[6480]); str->del(strings[6490]); strings[6492] = str->add("program,start"); strings[6493] = str->add("on"); strings[1932] = str->add(strings[1932]); strings[6493] = str->add(strings[6493]); str->del(strings[6491]); str->del(strings[6480]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[6482] = str->add(strings[6482]); strings[6482] = str->add(strings[6482]); strings[6482] = str->add(strings[6482]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[6494] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2686] = str->add(strings[2686]); strings[6494] = str->add(strings[6494]); strings[469] = str->add(strings[469]); strings[2871] = str->add(strings[2871]); strings[1841] = str->add(strings[1841]); strings[6495] = str->add("resize"); strings[6495] = str->add(strings[6495]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6494] = str->add(strings[6494]); strings[6483] = str->add(strings[6483]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[6483] = str->add(strings[6483]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2715] = str->add(strings[2715]); strings[6494] = str->add(strings[6494]); strings[469] = str->add(strings[469]); strings[2890] = str->add(strings[2890]); strings[1841] = str->add(strings[1841]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6494] = str->add(strings[6494]); strings[2231] = str->add(strings[2231]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2231] = str->add(strings[2231]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2691] = str->add(strings[2691]); strings[6494] = str->add(strings[6494]); strings[469] = str->add(strings[469]); strings[2892] = str->add(strings[2892]); strings[1841] = str->add(strings[1841]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6494] = str->add(strings[6494]); strings[2338] = str->add(strings[2338]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2338] = str->add(strings[2338]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2693] = str->add(strings[2693]); strings[6494] = str->add(strings[6494]); strings[469] = str->add(strings[469]); strings[4965] = str->add(strings[4965]); strings[469] = str->add(strings[469]); strings[4967] = str->add(strings[4967]); strings[1841] = str->add(strings[1841]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6494] = str->add(strings[6494]); strings[6484] = str->add(strings[6484]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[6484] = str->add(strings[6484]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2687] = str->add(strings[2687]); strings[6494] = str->add(strings[6494]); strings[469] = str->add(strings[469]); strings[2894] = str->add(strings[2894]); strings[1841] = str->add(strings[1841]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6494] = str->add(strings[6494]); strings[1619] = str->add(strings[1619]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1619] = str->add(strings[1619]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2682] = str->add(strings[2682]); strings[6494] = str->add(strings[6494]); strings[469] = str->add(strings[469]); strings[2896] = str->add(strings[2896]); strings[1841] = str->add(strings[1841]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6494] = str->add(strings[6494]); strings[2552] = str->add(strings[2552]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2552] = str->add(strings[2552]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[6494] = str->add(strings[6494]); strings[469] = str->add(strings[469]); strings[2898] = str->add(strings[2898]); strings[469] = str->add(strings[469]); strings[2900] = str->add(strings[2900]); strings[1841] = str->add(strings[1841]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6494] = str->add(strings[6494]); strings[1712] = str->add(strings[1712]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1712] = str->add(strings[1712]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[6494] = str->add(strings[6494]); strings[469] = str->add(strings[469]); strings[2902] = str->add(strings[2902]); strings[1841] = str->add(strings[1841]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6494] = str->add(strings[6494]); strings[6488] = str->add(strings[6488]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[6488] = str->add(strings[6488]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2634] = str->add(strings[2634]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2690] = str->add(strings[2690]); strings[6494] = str->add(strings[6494]); strings[469] = str->add(strings[469]); strings[2904] = str->add(strings[2904]); strings[1841] = str->add(strings[1841]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6494] = str->add(strings[6494]); strings[1721] = str->add(strings[1721]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1721] = str->add(strings[1721]); strings[64] = str->add(strings[64]); strings[2586] = str->add(strings[2586]); strings[6494] = str->add(strings[6494]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6495] = str->add(strings[6495]); strings[6496] = str->add("e,state,focused"); strings[6480] = str->add(strings[6480]); strings[167] = str->add(strings[167]); strings[1946] = str->add(strings[1946]); strings[167] = str->add(strings[167]); strings[1946] = str->add(strings[1946]); str->del(strings[6479]); str->del(strings[6480]); str->del(strings[6481]); str->del(strings[6480]); str->del(strings[167]); str->del(strings[377]); str->del(strings[6492]); str->del(strings[6493]); str->del(strings[1932]); str->del(strings[6493]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6494]); str->del(strings[1841]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); str->del(strings[6495]); strings[6497] = str->add("program,start"); strings[6498] = str->add("on"); str->del(strings[6496]); str->del(strings[6480]); str->del(strings[167]); str->del(strings[1946]); str->del(strings[167]); str->del(strings[1946]); str->del(strings[6497]); str->del(strings[6498]); strings[6499] = str->add("e,action,mouse,move"); strings[6500] = str->add("e"); strings[6499] = str->add(strings[6499]); strings[6500] = str->add(strings[6500]); strings[169] = str->add(strings[169]); strings[377] = str->add(strings[377]); strings[159] = str->add(strings[159]); strings[377] = str->add(strings[377]); strings[169] = str->add(strings[169]); strings[1946] = str->add(strings[1946]); strings[159] = str->add(strings[159]); strings[1946] = str->add(strings[1946]); strings[169] = str->add(strings[169]); strings[1946] = str->add(strings[1946]); strings[159] = str->add(strings[159]); strings[1946] = str->add(strings[1946]); strings[1740] = str->add(strings[1740]); strings[377] = str->add(strings[377]); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); strings[1740] = str->add(strings[1740]); strings[1946] = str->add(strings[1946]); str->del(strings[6499]); str->del(strings[6500]); str->del(strings[6499]); str->del(strings[6500]); str->del(strings[169]); str->del(strings[377]); str->del(strings[159]); str->del(strings[377]); str->del(strings[169]); str->del(strings[1946]); str->del(strings[159]); str->del(strings[1946]); str->del(strings[169]); str->del(strings[1946]); str->del(strings[159]); str->del(strings[1946]); str->del(strings[1740]); str->del(strings[377]); str->del(strings[1740]); str->del(strings[1946]); str->del(strings[1740]); str->del(strings[1946]); str->del(strings[6482]); strings[6482] = str->add(strings[6482]); str->del(strings[6482]); strings[6482] = str->add(strings[6482]); strings[6501] = str->add("resize"); strings[6483] = str->add(strings[6483]); strings[6483] = str->add(strings[6483]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[6501] = str->add(strings[6501]); strings[2231] = str->add(strings[2231]); strings[2231] = str->add(strings[2231]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[6501] = str->add(strings[6501]); strings[2338] = str->add(strings[2338]); strings[2338] = str->add(strings[2338]); strings[6501] = str->add(strings[6501]); strings[6484] = str->add(strings[6484]); strings[6484] = str->add(strings[6484]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[6501] = str->add(strings[6501]); strings[1619] = str->add(strings[1619]); strings[1619] = str->add(strings[1619]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[6501] = str->add(strings[6501]); strings[2552] = str->add(strings[2552]); strings[2552] = str->add(strings[2552]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[6501] = str->add(strings[6501]); strings[1712] = str->add(strings[1712]); strings[1712] = str->add(strings[1712]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[6501] = str->add(strings[6501]); strings[6488] = str->add(strings[6488]); strings[6488] = str->add(strings[6488]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[6501] = str->add(strings[6501]); strings[1721] = str->add(strings[1721]); strings[1721] = str->add(strings[1721]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[6502] = str->add("font"); strings[6503] = str->add("font_fallbacks"); strings[6504] = str->add("font_size"); strings[6505] = str->add("font_source"); strings[6506] = str->add("color"); strings[6507] = str->add("underline_color"); strings[6508] = str->add("underline2_color"); strings[6509] = str->add("outline_color"); strings[6510] = str->add("shadow_color"); strings[6511] = str->add("glow_color"); strings[6512] = str->add("glow2_color"); strings[6513] = str->add("backing_color"); strings[6514] = str->add("strikethrough_color"); strings[6515] = str->add("align"); strings[6516] = str->add("valign"); strings[6517] = str->add("wrap"); strings[6518] = str->add("left_margin"); strings[6519] = str->add("right_margin"); strings[6520] = str->add("underline"); strings[6521] = str->add("strikethrough"); strings[6522] = str->add("backing"); strings[6523] = str->add("style"); strings[6524] = str->add("tabstops"); strings[6515] = str->add(strings[6515]); strings[6525] = str->add("center"); str->del(strings[6515]); str->del(strings[6525]); strings[6506] = str->add(strings[6506]); strings[6526] = str->add("#000"); str->del(strings[6506]); str->del(strings[6526]); strings[6523] = str->add(strings[6523]); strings[6527] = str->add("shadow"); str->del(strings[6523]); str->del(strings[6527]); strings[6510] = str->add(strings[6510]); strings[6528] = str->add("#ffffff80"); str->del(strings[6510]); str->del(strings[6528]); strings[6517] = str->add(strings[6517]); strings[6529] = str->add("word"); str->del(strings[6517]); str->del(strings[6529]); strings[6505] = str->add(strings[6505]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6505]); str->del(strings[469]); strings[6504] = str->add(strings[6504]); strings[6530] = str->add("10.000000"); str->del(strings[6504]); str->del(strings[6530]); strings[6502] = str->add(strings[6502]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6502]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6523] = str->add(strings[6523]); strings[6531] = str->add("glow"); str->del(strings[6523]); str->del(strings[6531]); strings[6506] = str->add(strings[6506]); strings[6532] = str->add("#fff"); str->del(strings[6506]); str->del(strings[6532]); strings[6512] = str->add(strings[6512]); strings[6533] = str->add("#fe87"); str->del(strings[6512]); str->del(strings[6533]); strings[6511] = str->add(strings[6511]); strings[6534] = str->add("#fa14"); str->del(strings[6511]); str->del(strings[6534]); strings[6502] = str->add(strings[6502]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6502]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6523] = str->add(strings[6523]); strings[6535] = str->add("glow"); str->del(strings[6523]); str->del(strings[6535]); strings[6506] = str->add(strings[6506]); strings[6536] = str->add("#fff"); str->del(strings[6506]); str->del(strings[6536]); strings[6512] = str->add(strings[6512]); strings[6537] = str->add("#fe87"); str->del(strings[6512]); str->del(strings[6537]); strings[6511] = str->add(strings[6511]); strings[6538] = str->add("#fa14"); str->del(strings[6511]); str->del(strings[6538]); strings[6502] = str->add(strings[6502]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6502]); str->del(strings[471]); str->del(strings[6502]); str->del(strings[6503]); str->del(strings[6504]); str->del(strings[6505]); str->del(strings[6506]); str->del(strings[6507]); str->del(strings[6508]); str->del(strings[6509]); str->del(strings[6510]); str->del(strings[6511]); str->del(strings[6512]); str->del(strings[6513]); str->del(strings[6514]); str->del(strings[6515]); str->del(strings[6516]); str->del(strings[6517]); str->del(strings[6518]); str->del(strings[6519]); str->del(strings[6520]); str->del(strings[6521]); str->del(strings[6522]); str->del(strings[6523]); str->del(strings[6524]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[6539] = str->add("font"); strings[6540] = str->add("font_fallbacks"); strings[6541] = str->add("font_size"); strings[6542] = str->add("font_source"); strings[6543] = str->add("color"); strings[6544] = str->add("underline_color"); strings[6545] = str->add("underline2_color"); strings[6546] = str->add("outline_color"); strings[6547] = str->add("shadow_color"); strings[6548] = str->add("glow_color"); strings[6549] = str->add("glow2_color"); strings[6550] = str->add("backing_color"); strings[6551] = str->add("strikethrough_color"); strings[6552] = str->add("align"); strings[6553] = str->add("valign"); strings[6554] = str->add("wrap"); strings[6555] = str->add("left_margin"); strings[6556] = str->add("right_margin"); strings[6557] = str->add("underline"); strings[6558] = str->add("strikethrough"); strings[6559] = str->add("backing"); strings[6560] = str->add("style"); strings[6561] = str->add("tabstops"); strings[6552] = str->add(strings[6552]); strings[6562] = str->add("center"); str->del(strings[6552]); str->del(strings[6562]); strings[6543] = str->add(strings[6543]); strings[6563] = str->add("#000"); str->del(strings[6543]); str->del(strings[6563]); strings[6560] = str->add(strings[6560]); strings[6564] = str->add("shadow"); str->del(strings[6560]); str->del(strings[6564]); strings[6547] = str->add(strings[6547]); strings[6565] = str->add("#ffffff80"); str->del(strings[6547]); str->del(strings[6565]); strings[6554] = str->add(strings[6554]); strings[6566] = str->add("word"); str->del(strings[6554]); str->del(strings[6566]); strings[6542] = str->add(strings[6542]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6542]); str->del(strings[469]); strings[6541] = str->add(strings[6541]); strings[6567] = str->add("10.000000"); str->del(strings[6541]); str->del(strings[6567]); strings[6539] = str->add(strings[6539]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6539]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6560] = str->add(strings[6560]); strings[6568] = str->add("soft_shadow"); str->del(strings[6560]); str->del(strings[6568]); strings[6543] = str->add(strings[6543]); strings[6569] = str->add("#fff"); str->del(strings[6543]); str->del(strings[6569]); strings[6547] = str->add(strings[6547]); strings[6570] = str->add("#00000020"); str->del(strings[6547]); str->del(strings[6570]); strings[6541] = str->add(strings[6541]); strings[6571] = str->add("12.000000"); str->del(strings[6541]); str->del(strings[6571]); strings[6539] = str->add(strings[6539]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6539]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[6539]); str->del(strings[6540]); str->del(strings[6541]); str->del(strings[6542]); str->del(strings[6543]); str->del(strings[6544]); str->del(strings[6545]); str->del(strings[6546]); str->del(strings[6547]); str->del(strings[6548]); str->del(strings[6549]); str->del(strings[6550]); str->del(strings[6551]); str->del(strings[6552]); str->del(strings[6553]); str->del(strings[6554]); str->del(strings[6555]); str->del(strings[6556]); str->del(strings[6557]); str->del(strings[6558]); str->del(strings[6559]); str->del(strings[6560]); str->del(strings[6561]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); strings[1932] = str->add(strings[1932]); strings[6572] = str->add("go_activec23"); strings[6573] = str->add("program,start"); strings[6574] = str->add("go_activeb23"); strings[1932] = str->add(strings[1932]); strings[6575] = str->add("go_activec7"); strings[6573] = str->add(strings[6573]); strings[6576] = str->add("go_activeb7"); str->del(strings[6501]); str->del(strings[6501]); str->del(strings[6501]); str->del(strings[6501]); str->del(strings[6501]); str->del(strings[6501]); str->del(strings[6501]); str->del(strings[6501]); str->del(strings[6501]); str->del(strings[1932]); str->del(strings[6572]); str->del(strings[6573]); str->del(strings[6574]); str->del(strings[1932]); str->del(strings[6575]); str->del(strings[6573]); str->del(strings[6576]); strings[6577] = str->add("font"); strings[6578] = str->add("font_fallbacks"); strings[6579] = str->add("font_size"); strings[6580] = str->add("font_source"); strings[6581] = str->add("color"); strings[6582] = str->add("underline_color"); strings[6583] = str->add("underline2_color"); strings[6584] = str->add("outline_color"); strings[6585] = str->add("shadow_color"); strings[6586] = str->add("glow_color"); strings[6587] = str->add("glow2_color"); strings[6588] = str->add("backing_color"); strings[6589] = str->add("strikethrough_color"); strings[6590] = str->add("align"); strings[6591] = str->add("valign"); strings[6592] = str->add("wrap"); strings[6593] = str->add("left_margin"); strings[6594] = str->add("right_margin"); strings[6595] = str->add("underline"); strings[6596] = str->add("strikethrough"); strings[6597] = str->add("backing"); strings[6598] = str->add("style"); strings[6599] = str->add("tabstops"); strings[6590] = str->add(strings[6590]); strings[6600] = str->add("center"); str->del(strings[6590]); str->del(strings[6600]); strings[6581] = str->add(strings[6581]); strings[6601] = str->add("#000"); str->del(strings[6581]); str->del(strings[6601]); strings[6598] = str->add(strings[6598]); strings[6602] = str->add("shadow"); str->del(strings[6598]); str->del(strings[6602]); strings[6585] = str->add(strings[6585]); strings[6603] = str->add("#ffffff80"); str->del(strings[6585]); str->del(strings[6603]); strings[6592] = str->add(strings[6592]); strings[6604] = str->add("word"); str->del(strings[6592]); str->del(strings[6604]); strings[6580] = str->add(strings[6580]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6580]); str->del(strings[469]); strings[6579] = str->add(strings[6579]); strings[6605] = str->add("10.000000"); str->del(strings[6579]); str->del(strings[6605]); strings[6577] = str->add(strings[6577]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6577]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6598] = str->add(strings[6598]); strings[6606] = str->add("soft_shadow"); str->del(strings[6598]); str->del(strings[6606]); strings[6581] = str->add(strings[6581]); strings[6607] = str->add("#fff"); str->del(strings[6581]); str->del(strings[6607]); strings[6585] = str->add(strings[6585]); strings[6608] = str->add("#00000020"); str->del(strings[6585]); str->del(strings[6608]); strings[6579] = str->add(strings[6579]); strings[6609] = str->add("12.000000"); str->del(strings[6579]); str->del(strings[6609]); strings[6577] = str->add(strings[6577]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6577]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[6577]); str->del(strings[6578]); str->del(strings[6579]); str->del(strings[6580]); str->del(strings[6581]); str->del(strings[6582]); str->del(strings[6583]); str->del(strings[6584]); str->del(strings[6585]); str->del(strings[6586]); str->del(strings[6587]); str->del(strings[6588]); str->del(strings[6589]); str->del(strings[6590]); str->del(strings[6591]); str->del(strings[6592]); str->del(strings[6593]); str->del(strings[6594]); str->del(strings[6595]); str->del(strings[6596]); str->del(strings[6597]); str->del(strings[6598]); str->del(strings[6599]); str->del(strings[7]); str->del(strings[2150]); strings[7] = str->add(strings[7]); strings[1966] = str->add(strings[1966]); strings[6610] = str->add("e,action,mouse,move"); strings[6611] = str->add("e"); strings[6612] = str->add("e,action,mouse,up"); strings[6611] = str->add(strings[6611]); str->del(strings[6610]); str->del(strings[6611]); str->del(strings[6612]); str->del(strings[6611]); strings[6613] = str->add("e,action,mouse,move"); strings[6614] = str->add("e"); str->del(strings[6613]); str->del(strings[6614]); str->del(strings[7]); str->del(strings[1966]); strings[7] = str->add(strings[7]); strings[1964] = str->add(strings[1964]); strings[6615] = str->add("e,action,mouse,move"); strings[6616] = str->add("e"); strings[6615] = str->add(strings[6615]); strings[6616] = str->add(strings[6616]); str->del(strings[6615]); str->del(strings[6616]); str->del(strings[6615]); str->del(strings[6616]); strings[6617] = str->add("e,action,mouse,move"); strings[6618] = str->add("e"); str->del(strings[6617]); str->del(strings[6618]); str->del(strings[7]); str->del(strings[1964]); strings[7] = str->add(strings[7]); strings[1968] = str->add(strings[1968]); strings[6619] = str->add("e,action,mouse,move"); strings[6620] = str->add("e"); strings[6619] = str->add(strings[6619]); strings[6620] = str->add(strings[6620]); str->del(strings[6619]); str->del(strings[6620]); str->del(strings[6619]); str->del(strings[6620]); strings[6621] = str->add("e,action,mouse,move"); strings[6622] = str->add("e"); str->del(strings[6621]); str->del(strings[6622]); strings[6623] = str->add("e,action,mouse,move"); strings[6624] = str->add("e"); str->del(strings[6623]); str->del(strings[6624]); strings[6625] = str->add("e,action,mouse,move"); strings[6626] = str->add("e"); strings[6625] = str->add(strings[6625]); strings[6626] = str->add(strings[6626]); str->del(strings[6625]); str->del(strings[6626]); str->del(strings[6625]); str->del(strings[6626]); strings[6627] = str->add("e,action,mouse,move"); strings[6628] = str->add("e"); str->del(strings[6627]); str->del(strings[6628]); strings[6629] = str->add("e,action,mouse,move"); strings[6630] = str->add("e"); str->del(strings[6629]); str->del(strings[6630]); strings[1932] = str->add(strings[1932]); strings[6631] = str->add("go_activeb25"); strings[6632] = str->add("program,start"); strings[6633] = str->add("go_activec25"); strings[1932] = str->add(strings[1932]); strings[6634] = str->add("go_activeb5"); strings[6632] = str->add(strings[6632]); strings[6635] = str->add("go_activec5"); strings[1932] = str->add(strings[1932]); strings[6636] = str->add("on"); str->del(strings[1932]); str->del(strings[6631]); str->del(strings[6632]); str->del(strings[6633]); str->del(strings[1932]); str->del(strings[6634]); str->del(strings[6632]); str->del(strings[6635]); str->del(strings[1932]); str->del(strings[6636]); strings[6637] = str->add("e,action,mouse,move"); strings[6638] = str->add("e"); strings[6639] = str->add("e,state,selected"); strings[6638] = str->add(strings[6638]); strings[6639] = str->add(strings[6639]); strings[6638] = str->add(strings[6638]); strings[6639] = str->add(strings[6639]); strings[6638] = str->add(strings[6638]); strings[6639] = str->add(strings[6639]); strings[6638] = str->add(strings[6638]); strings[6639] = str->add(strings[6639]); strings[6638] = str->add(strings[6638]); strings[6639] = str->add(strings[6639]); strings[6638] = str->add(strings[6638]); strings[6640] = str->add("Lock Screen"); strings[469] = str->add(strings[469]); strings[2708] = str->add(strings[2708]); strings[1726] = str->add(strings[1726]); strings[469] = str->add(strings[469]); strings[2677] = str->add(strings[2677]); strings[6641] = str->add("Hibernate"); strings[469] = str->add(strings[469]); strings[2678] = str->add(strings[2678]); strings[1724] = str->add(strings[1724]); strings[469] = str->add(strings[469]); strings[2676] = str->add(strings[2676]); strings[1722] = str->add(strings[1722]); strings[469] = str->add(strings[469]); strings[2675] = str->add(strings[2675]); strings[6642] = str->add("Logout"); strings[469] = str->add(strings[469]); strings[2674] = str->add(strings[2674]); str->del(strings[6637]); str->del(strings[6638]); strings[6643] = str->add("program,start"); strings[6644] = str->add("sel"); str->del(strings[6639]); str->del(strings[6638]); str->del(strings[6639]); str->del(strings[6638]); strings[6643] = str->add(strings[6643]); strings[6644] = str->add(strings[6644]); str->del(strings[6639]); str->del(strings[6638]); strings[6643] = str->add(strings[6643]); strings[6644] = str->add(strings[6644]); strings[1932] = str->add(strings[1932]); strings[6644] = str->add(strings[6644]); str->del(strings[6639]); str->del(strings[6638]); str->del(strings[6639]); str->del(strings[6638]); str->del(strings[6639]); str->del(strings[6638]); str->del(strings[6643]); str->del(strings[6644]); str->del(strings[6643]); str->del(strings[6644]); str->del(strings[6643]); str->del(strings[6644]); str->del(strings[1932]); str->del(strings[6644]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[6645] = str->add("resize"); str->del(strings[6645]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[6646] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6646] = str->add(strings[6646]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6646] = str->add(strings[6646]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2708] = str->add(strings[2708]); strings[6646] = str->add(strings[6646]); strings[469] = str->add(strings[469]); strings[3008] = str->add(strings[3008]); strings[1841] = str->add(strings[1841]); strings[6647] = str->add("resize"); strings[6647] = str->add(strings[6647]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6646] = str->add(strings[6646]); strings[6640] = str->add(strings[6640]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[6640] = str->add(strings[6640]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[6646] = str->add(strings[6646]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6646] = str->add(strings[6646]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6646] = str->add(strings[6646]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2677] = str->add(strings[2677]); strings[6646] = str->add(strings[6646]); strings[469] = str->add(strings[469]); strings[3011] = str->add(strings[3011]); strings[1841] = str->add(strings[1841]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6646] = str->add(strings[6646]); strings[1726] = str->add(strings[1726]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1726] = str->add(strings[1726]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6646] = str->add(strings[6646]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6646] = str->add(strings[6646]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2678] = str->add(strings[2678]); strings[6646] = str->add(strings[6646]); strings[469] = str->add(strings[469]); strings[3013] = str->add(strings[3013]); strings[1841] = str->add(strings[1841]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6646] = str->add(strings[6646]); strings[6641] = str->add(strings[6641]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[6641] = str->add(strings[6641]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6646] = str->add(strings[6646]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6646] = str->add(strings[6646]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2676] = str->add(strings[2676]); strings[6646] = str->add(strings[6646]); strings[469] = str->add(strings[469]); strings[3015] = str->add(strings[3015]); strings[1841] = str->add(strings[1841]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6646] = str->add(strings[6646]); strings[1724] = str->add(strings[1724]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1724] = str->add(strings[1724]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6646] = str->add(strings[6646]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6646] = str->add(strings[6646]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2675] = str->add(strings[2675]); strings[6646] = str->add(strings[6646]); strings[469] = str->add(strings[469]); strings[3017] = str->add(strings[3017]); strings[1841] = str->add(strings[1841]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6646] = str->add(strings[6646]); strings[1722] = str->add(strings[1722]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1722] = str->add(strings[1722]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[6646] = str->add(strings[6646]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6646] = str->add(strings[6646]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6646] = str->add(strings[6646]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2674] = str->add(strings[2674]); strings[6646] = str->add(strings[6646]); strings[469] = str->add(strings[469]); strings[3019] = str->add(strings[3019]); strings[1841] = str->add(strings[1841]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6646] = str->add(strings[6646]); strings[6642] = str->add(strings[6642]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[6642] = str->add(strings[6642]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); strings[6647] = str->add(strings[6647]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); strings[6647] = str->add(strings[6647]); strings[6640] = str->add(strings[6640]); strings[6640] = str->add(strings[6640]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[6647] = str->add(strings[6647]); strings[1726] = str->add(strings[1726]); strings[1726] = str->add(strings[1726]); strings[6647] = str->add(strings[6647]); strings[6641] = str->add(strings[6641]); strings[6641] = str->add(strings[6641]); strings[6647] = str->add(strings[6647]); strings[1724] = str->add(strings[1724]); strings[1724] = str->add(strings[1724]); strings[6647] = str->add(strings[6647]); strings[1722] = str->add(strings[1722]); strings[1722] = str->add(strings[1722]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[6647] = str->add(strings[6647]); strings[6642] = str->add(strings[6642]); strings[6642] = str->add(strings[6642]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); strings[6648] = str->add("font"); strings[6649] = str->add("font_fallbacks"); strings[6650] = str->add("font_size"); strings[6651] = str->add("font_source"); strings[6652] = str->add("color"); strings[6653] = str->add("underline_color"); strings[6654] = str->add("underline2_color"); strings[6655] = str->add("outline_color"); strings[6656] = str->add("shadow_color"); strings[6657] = str->add("glow_color"); strings[6658] = str->add("glow2_color"); strings[6659] = str->add("backing_color"); strings[6660] = str->add("strikethrough_color"); strings[6661] = str->add("align"); strings[6662] = str->add("valign"); strings[6663] = str->add("wrap"); strings[6664] = str->add("left_margin"); strings[6665] = str->add("right_margin"); strings[6666] = str->add("underline"); strings[6667] = str->add("strikethrough"); strings[6668] = str->add("backing"); strings[6669] = str->add("style"); strings[6670] = str->add("tabstops"); strings[6661] = str->add(strings[6661]); strings[6671] = str->add("center"); str->del(strings[6661]); str->del(strings[6671]); strings[6652] = str->add(strings[6652]); strings[6672] = str->add("#000"); str->del(strings[6652]); str->del(strings[6672]); strings[6669] = str->add(strings[6669]); strings[6673] = str->add("shadow"); str->del(strings[6669]); str->del(strings[6673]); strings[6656] = str->add(strings[6656]); strings[6674] = str->add("#ffffff80"); str->del(strings[6656]); str->del(strings[6674]); strings[6663] = str->add(strings[6663]); strings[6675] = str->add("word"); str->del(strings[6663]); str->del(strings[6675]); strings[6651] = str->add(strings[6651]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6651]); str->del(strings[469]); strings[6650] = str->add(strings[6650]); strings[6676] = str->add("10.000000"); str->del(strings[6650]); str->del(strings[6676]); strings[6648] = str->add(strings[6648]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6648]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6669] = str->add(strings[6669]); strings[6677] = str->add("glow"); str->del(strings[6669]); str->del(strings[6677]); strings[6652] = str->add(strings[6652]); strings[6678] = str->add("#fff"); str->del(strings[6652]); str->del(strings[6678]); strings[6658] = str->add(strings[6658]); strings[6679] = str->add("#fe87"); str->del(strings[6658]); str->del(strings[6679]); strings[6657] = str->add(strings[6657]); strings[6680] = str->add("#fa14"); str->del(strings[6657]); str->del(strings[6680]); strings[6648] = str->add(strings[6648]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6648]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6669] = str->add(strings[6669]); strings[6681] = str->add("glow"); str->del(strings[6669]); str->del(strings[6681]); strings[6652] = str->add(strings[6652]); strings[6682] = str->add("#fff"); str->del(strings[6652]); str->del(strings[6682]); strings[6658] = str->add(strings[6658]); strings[6683] = str->add("#fe87"); str->del(strings[6658]); str->del(strings[6683]); strings[6657] = str->add(strings[6657]); strings[6684] = str->add("#fa14"); str->del(strings[6657]); str->del(strings[6684]); strings[6648] = str->add(strings[6648]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6648]); str->del(strings[471]); str->del(strings[6648]); str->del(strings[6649]); str->del(strings[6650]); str->del(strings[6651]); str->del(strings[6652]); str->del(strings[6653]); str->del(strings[6654]); str->del(strings[6655]); str->del(strings[6656]); str->del(strings[6657]); str->del(strings[6658]); str->del(strings[6659]); str->del(strings[6660]); str->del(strings[6661]); str->del(strings[6662]); str->del(strings[6663]); str->del(strings[6664]); str->del(strings[6665]); str->del(strings[6666]); str->del(strings[6667]); str->del(strings[6668]); str->del(strings[6669]); str->del(strings[6670]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[6685] = str->add("font"); strings[6686] = str->add("font_fallbacks"); strings[6687] = str->add("font_size"); strings[6688] = str->add("font_source"); strings[6689] = str->add("color"); strings[6690] = str->add("underline_color"); strings[6691] = str->add("underline2_color"); strings[6692] = str->add("outline_color"); strings[6693] = str->add("shadow_color"); strings[6694] = str->add("glow_color"); strings[6695] = str->add("glow2_color"); strings[6696] = str->add("backing_color"); strings[6697] = str->add("strikethrough_color"); strings[6698] = str->add("align"); strings[6699] = str->add("valign"); strings[6700] = str->add("wrap"); strings[6701] = str->add("left_margin"); strings[6702] = str->add("right_margin"); strings[6703] = str->add("underline"); strings[6704] = str->add("strikethrough"); strings[6705] = str->add("backing"); strings[6706] = str->add("style"); strings[6707] = str->add("tabstops"); strings[6698] = str->add(strings[6698]); strings[6708] = str->add("center"); str->del(strings[6698]); str->del(strings[6708]); strings[6689] = str->add(strings[6689]); strings[6709] = str->add("#000"); str->del(strings[6689]); str->del(strings[6709]); strings[6706] = str->add(strings[6706]); strings[6710] = str->add("shadow"); str->del(strings[6706]); str->del(strings[6710]); strings[6693] = str->add(strings[6693]); strings[6711] = str->add("#ffffff80"); str->del(strings[6693]); str->del(strings[6711]); strings[6700] = str->add(strings[6700]); strings[6712] = str->add("word"); str->del(strings[6700]); str->del(strings[6712]); strings[6688] = str->add(strings[6688]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6688]); str->del(strings[469]); strings[6687] = str->add(strings[6687]); strings[6713] = str->add("10.000000"); str->del(strings[6687]); str->del(strings[6713]); strings[6685] = str->add(strings[6685]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6685]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6706] = str->add(strings[6706]); strings[6714] = str->add("soft_shadow"); str->del(strings[6706]); str->del(strings[6714]); strings[6689] = str->add(strings[6689]); strings[6715] = str->add("#fff"); str->del(strings[6689]); str->del(strings[6715]); strings[6693] = str->add(strings[6693]); strings[6716] = str->add("#00000020"); str->del(strings[6693]); str->del(strings[6716]); strings[6687] = str->add(strings[6687]); strings[6717] = str->add("12.000000"); str->del(strings[6687]); str->del(strings[6717]); strings[6685] = str->add(strings[6685]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6685]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[6685]); str->del(strings[6686]); str->del(strings[6687]); str->del(strings[6688]); str->del(strings[6689]); str->del(strings[6690]); str->del(strings[6691]); str->del(strings[6692]); str->del(strings[6693]); str->del(strings[6694]); str->del(strings[6695]); str->del(strings[6696]); str->del(strings[6697]); str->del(strings[6698]); str->del(strings[6699]); str->del(strings[6700]); str->del(strings[6701]); str->del(strings[6702]); str->del(strings[6703]); str->del(strings[6704]); str->del(strings[6705]); str->del(strings[6706]); str->del(strings[6707]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); strings[1932] = str->add(strings[1932]); strings[6718] = str->add("go_activec22"); strings[6719] = str->add("program,start"); strings[6720] = str->add("go_activeb22"); strings[1932] = str->add(strings[1932]); strings[6721] = str->add("go_activec8"); strings[6719] = str->add(strings[6719]); strings[6722] = str->add("go_activeb8"); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6646]); str->del(strings[1841]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[6647]); str->del(strings[1932]); str->del(strings[6718]); str->del(strings[6719]); str->del(strings[6720]); str->del(strings[1932]); str->del(strings[6721]); str->del(strings[6719]); str->del(strings[6722]); strings[6723] = str->add("e,action,mouse,move"); strings[6724] = str->add("e"); strings[6723] = str->add(strings[6723]); strings[6724] = str->add(strings[6724]); str->del(strings[6723]); str->del(strings[6724]); str->del(strings[6723]); str->del(strings[6724]); strings[6725] = str->add("font"); strings[6726] = str->add("font_fallbacks"); strings[6727] = str->add("font_size"); strings[6728] = str->add("font_source"); strings[6729] = str->add("color"); strings[6730] = str->add("underline_color"); strings[6731] = str->add("underline2_color"); strings[6732] = str->add("outline_color"); strings[6733] = str->add("shadow_color"); strings[6734] = str->add("glow_color"); strings[6735] = str->add("glow2_color"); strings[6736] = str->add("backing_color"); strings[6737] = str->add("strikethrough_color"); strings[6738] = str->add("align"); strings[6739] = str->add("valign"); strings[6740] = str->add("wrap"); strings[6741] = str->add("left_margin"); strings[6742] = str->add("right_margin"); strings[6743] = str->add("underline"); strings[6744] = str->add("strikethrough"); strings[6745] = str->add("backing"); strings[6746] = str->add("style"); strings[6747] = str->add("tabstops"); strings[6738] = str->add(strings[6738]); strings[6748] = str->add("center"); str->del(strings[6738]); str->del(strings[6748]); strings[6729] = str->add(strings[6729]); strings[6749] = str->add("#000"); str->del(strings[6729]); str->del(strings[6749]); strings[6746] = str->add(strings[6746]); strings[6750] = str->add("shadow"); str->del(strings[6746]); str->del(strings[6750]); strings[6733] = str->add(strings[6733]); strings[6751] = str->add("#ffffff80"); str->del(strings[6733]); str->del(strings[6751]); strings[6740] = str->add(strings[6740]); strings[6752] = str->add("word"); str->del(strings[6740]); str->del(strings[6752]); strings[6728] = str->add(strings[6728]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6728]); str->del(strings[469]); strings[6727] = str->add(strings[6727]); strings[6753] = str->add("10.000000"); str->del(strings[6727]); str->del(strings[6753]); strings[6725] = str->add(strings[6725]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6725]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6746] = str->add(strings[6746]); strings[6754] = str->add("soft_shadow"); str->del(strings[6746]); str->del(strings[6754]); strings[6729] = str->add(strings[6729]); strings[6755] = str->add("#fff"); str->del(strings[6729]); str->del(strings[6755]); strings[6733] = str->add(strings[6733]); strings[6756] = str->add("#00000020"); str->del(strings[6733]); str->del(strings[6756]); strings[6727] = str->add(strings[6727]); strings[6757] = str->add("12.000000"); str->del(strings[6727]); str->del(strings[6757]); strings[6725] = str->add(strings[6725]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6725]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[6725]); str->del(strings[6726]); str->del(strings[6727]); str->del(strings[6728]); str->del(strings[6729]); str->del(strings[6730]); str->del(strings[6731]); str->del(strings[6732]); str->del(strings[6733]); str->del(strings[6734]); str->del(strings[6735]); str->del(strings[6736]); str->del(strings[6737]); str->del(strings[6738]); str->del(strings[6739]); str->del(strings[6740]); str->del(strings[6741]); str->del(strings[6742]); str->del(strings[6743]); str->del(strings[6744]); str->del(strings[6745]); str->del(strings[6746]); str->del(strings[6747]); str->del(strings[7]); str->del(strings[1968]); strings[7] = str->add(strings[7]); strings[2058] = str->add(strings[2058]); strings[6758] = str->add("e,action,mouse,move"); strings[6759] = str->add("e"); strings[6758] = str->add(strings[6758]); strings[6759] = str->add(strings[6759]); str->del(strings[6758]); str->del(strings[6759]); str->del(strings[6758]); str->del(strings[6759]); strings[6760] = str->add("e,action,mouse,move"); strings[6761] = str->add("e"); str->del(strings[6760]); str->del(strings[6761]); strings[6762] = str->add("e,action,mouse,move"); strings[6763] = str->add("e"); str->del(strings[6762]); str->del(strings[6763]); str->del(strings[7]); str->del(strings[2058]); strings[7] = str->add(strings[7]); strings[1970] = str->add(strings[1970]); strings[6764] = str->add("e,action,mouse,move"); strings[6765] = str->add("e"); strings[6764] = str->add(strings[6764]); strings[6765] = str->add(strings[6765]); str->del(strings[6764]); str->del(strings[6765]); str->del(strings[6764]); str->del(strings[6765]); strings[6766] = str->add("e,action,mouse,move"); strings[6767] = str->add("e"); str->del(strings[6766]); str->del(strings[6767]); strings[6768] = str->add("e,action,mouse,move"); strings[6769] = str->add("e"); str->del(strings[6768]); str->del(strings[6769]); strings[6770] = str->add("e,action,mouse,move"); strings[6771] = str->add("e"); str->del(strings[6770]); str->del(strings[6771]); strings[6772] = str->add("e,action,mouse,move"); strings[6773] = str->add("e"); str->del(strings[6772]); str->del(strings[6773]); strings[6774] = str->add("e,action,mouse,move"); strings[6775] = str->add("e"); str->del(strings[6774]); str->del(strings[6775]); strings[6776] = str->add("e,action,mouse,move"); strings[6777] = str->add("e"); str->del(strings[6776]); str->del(strings[6777]); strings[6778] = str->add("e,action,mouse,move"); strings[6779] = str->add("e"); str->del(strings[6778]); str->del(strings[6779]); strings[6780] = str->add("e,action,mouse,move"); strings[6781] = str->add("e"); str->del(strings[6780]); str->del(strings[6781]); strings[1932] = str->add(strings[1932]); strings[6782] = str->add("go_activeb24"); strings[6783] = str->add("program,start"); strings[6784] = str->add("go_activec24"); strings[1932] = str->add(strings[1932]); strings[6785] = str->add("go_activeb6"); strings[6783] = str->add(strings[6783]); strings[6786] = str->add("go_activec6"); str->del(strings[1932]); str->del(strings[6782]); str->del(strings[6783]); str->del(strings[6784]); str->del(strings[1932]); str->del(strings[6785]); str->del(strings[6783]); str->del(strings[6786]); str->del(strings[7]); str->del(strings[1970]); strings[7] = str->add(strings[7]); strings[1869] = str->add(strings[1869]); strings[6787] = str->add("e,action,mouse,move"); strings[6788] = str->add("e"); strings[6787] = str->add(strings[6787]); strings[6788] = str->add(strings[6788]); str->del(strings[6787]); str->del(strings[6788]); str->del(strings[6787]); str->del(strings[6788]); strings[6789] = str->add("e,action,mouse,move"); strings[6790] = str->add("e"); strings[6791] = str->add("e,state,unselected"); strings[6790] = str->add(strings[6790]); strings[6791] = str->add(strings[6791]); strings[6790] = str->add(strings[6790]); strings[6791] = str->add(strings[6791]); strings[6790] = str->add(strings[6790]); strings[6791] = str->add(strings[6791]); strings[6790] = str->add(strings[6790]); strings[6791] = str->add(strings[6791]); strings[6790] = str->add(strings[6790]); strings[6791] = str->add(strings[6791]); strings[6790] = str->add(strings[6790]); str->del(strings[6789]); str->del(strings[6790]); strings[1932] = str->add(strings[1932]); strings[6792] = str->add("sel"); strings[6793] = str->add("program,start"); strings[6794] = str->add("unsel"); str->del(strings[6791]); str->del(strings[6790]); str->del(strings[6791]); str->del(strings[6790]); strings[1932] = str->add(strings[1932]); strings[6792] = str->add(strings[6792]); strings[6793] = str->add(strings[6793]); strings[6794] = str->add(strings[6794]); str->del(strings[6791]); str->del(strings[6790]); strings[6793] = str->add(strings[6793]); strings[6794] = str->add(strings[6794]); strings[1932] = str->add(strings[1932]); strings[6794] = str->add(strings[6794]); str->del(strings[6791]); str->del(strings[6790]); str->del(strings[6791]); str->del(strings[6790]); str->del(strings[6791]); str->del(strings[6790]); str->del(strings[1932]); str->del(strings[6792]); str->del(strings[6793]); str->del(strings[6794]); str->del(strings[1932]); str->del(strings[6792]); str->del(strings[6793]); str->del(strings[6794]); str->del(strings[6793]); str->del(strings[6794]); str->del(strings[1932]); str->del(strings[6794]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[6795] = str->add("e,action,mouse,move"); strings[6796] = str->add("e"); str->del(strings[6795]); str->del(strings[6796]); strings[1932] = str->add(strings[1932]); strings[1840] = str->add(strings[1840]); strings[6797] = str->add("program,start"); strings[1844] = str->add(strings[1844]); strings[1932] = str->add(strings[1932]); strings[1844] = str->add(strings[1844]); strings[6797] = str->add(strings[6797]); strings[1840] = str->add(strings[1840]); strings[1932] = str->add(strings[1932]); strings[1851] = str->add(strings[1851]); strings[6797] = str->add(strings[6797]); strings[1851] = str->add(strings[1851]); str->del(strings[1932]); str->del(strings[1840]); str->del(strings[6797]); str->del(strings[1844]); str->del(strings[1932]); str->del(strings[1844]); str->del(strings[6797]); str->del(strings[1840]); str->del(strings[1932]); str->del(strings[1851]); str->del(strings[6797]); str->del(strings[1851]); strings[6798] = str->add("e,action,mouse,move"); strings[6799] = str->add("e"); strings[6798] = str->add(strings[6798]); strings[6799] = str->add(strings[6799]); str->del(strings[6798]); str->del(strings[6799]); str->del(strings[6798]); str->del(strings[6799]); strings[6800] = str->add("e,action,mouse,move"); strings[6801] = str->add("e"); strings[6802] = str->add("e,state,selected"); strings[6801] = str->add(strings[6801]); strings[6802] = str->add(strings[6802]); strings[6801] = str->add(strings[6801]); strings[6802] = str->add(strings[6802]); strings[6801] = str->add(strings[6801]); strings[6802] = str->add(strings[6802]); strings[6801] = str->add(strings[6801]); strings[6802] = str->add(strings[6802]); strings[6801] = str->add(strings[6801]); strings[6802] = str->add(strings[6802]); strings[6801] = str->add(strings[6801]); str->del(strings[6800]); str->del(strings[6801]); strings[6803] = str->add("program,start"); strings[6804] = str->add("sel"); str->del(strings[6802]); str->del(strings[6801]); str->del(strings[6802]); str->del(strings[6801]); strings[6803] = str->add(strings[6803]); strings[6804] = str->add(strings[6804]); str->del(strings[6802]); str->del(strings[6801]); strings[6803] = str->add(strings[6803]); strings[6804] = str->add(strings[6804]); strings[1932] = str->add(strings[1932]); strings[6804] = str->add(strings[6804]); str->del(strings[6802]); str->del(strings[6801]); str->del(strings[6802]); str->del(strings[6801]); str->del(strings[6802]); str->del(strings[6801]); str->del(strings[6803]); str->del(strings[6804]); str->del(strings[6803]); str->del(strings[6804]); str->del(strings[6803]); str->del(strings[6804]); str->del(strings[1932]); str->del(strings[6804]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); strings[6805] = str->add("e,action,mouse,move"); strings[6806] = str->add("e"); str->del(strings[6805]); str->del(strings[6806]); strings[6807] = str->add("e,action,mouse,move"); strings[6808] = str->add("e"); str->del(strings[6807]); str->del(strings[6808]); strings[1932] = str->add(strings[1932]); strings[6809] = str->add("go_activec21"); strings[6810] = str->add("program,start"); strings[6811] = str->add("go_activeb21"); strings[1932] = str->add(strings[1932]); strings[6812] = str->add("go_activec9"); strings[6810] = str->add(strings[6810]); strings[6813] = str->add("go_activeb9"); str->del(strings[1932]); str->del(strings[6809]); str->del(strings[6810]); str->del(strings[6811]); str->del(strings[1932]); str->del(strings[6812]); str->del(strings[6810]); str->del(strings[6813]); strings[6814] = str->add("e,action,mouse,move"); strings[6815] = str->add("e"); strings[2224] = str->add(strings[2224]); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[4] = str->add(strings[4]); strings[469] = str->add(strings[469]); strings[2685] = str->add(strings[2685]); strings[1925] = str->add(strings[1925]); strings[1926] = str->add(strings[1926]); strings[3083] = str->add(strings[3083]); strings[2494] = str->add(strings[2494]); strings[469] = str->add(strings[469]); strings[2711] = str->add(strings[2711]); strings[2514] = str->add(strings[2514]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[2536] = str->add(strings[2536]); strings[469] = str->add(strings[469]); strings[2713] = str->add(strings[2713]); strings[6814] = str->add(strings[6814]); strings[6815] = str->add(strings[6815]); str->del(strings[6814]); str->del(strings[6815]); str->del(strings[6814]); str->del(strings[6815]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[6816] = str->add("resize"); str->del(strings[6816]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[6817] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6817] = str->add(strings[6817]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6817] = str->add(strings[6817]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[6817] = str->add(strings[6817]); strings[469] = str->add(strings[469]); strings[2902] = str->add(strings[2902]); strings[1841] = str->add(strings[1841]); strings[6818] = str->add("resize"); strings[6818] = str->add(strings[6818]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6817] = str->add(strings[6817]); strings[2224] = str->add(strings[2224]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2224] = str->add(strings[2224]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[6817] = str->add(strings[6817]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6817] = str->add(strings[6817]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6817] = str->add(strings[6817]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2685] = str->add(strings[2685]); strings[6817] = str->add(strings[6817]); strings[469] = str->add(strings[469]); strings[3089] = str->add(strings[3089]); strings[1841] = str->add(strings[1841]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6817] = str->add(strings[6817]); strings[4] = str->add(strings[4]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[4] = str->add(strings[4]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6817] = str->add(strings[6817]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6817] = str->add(strings[6817]); strings[1841] = str->add(strings[1841]); strings[1926] = str->add(strings[1926]); strings[3083] = str->add(strings[3083]); strings[6817] = str->add(strings[6817]); strings[1926] = str->add(strings[1926]); strings[1552] = str->add(strings[1552]); strings[1841] = str->add(strings[1841]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6817] = str->add(strings[6817]); strings[1925] = str->add(strings[1925]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1925] = str->add(strings[1925]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6817] = str->add(strings[6817]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6817] = str->add(strings[6817]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2711] = str->add(strings[2711]); strings[6817] = str->add(strings[6817]); strings[469] = str->add(strings[469]); strings[3092] = str->add(strings[3092]); strings[1841] = str->add(strings[1841]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6817] = str->add(strings[6817]); strings[2494] = str->add(strings[2494]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2494] = str->add(strings[2494]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6817] = str->add(strings[6817]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6817] = str->add(strings[6817]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[6817] = str->add(strings[6817]); strings[469] = str->add(strings[469]); strings[3094] = str->add(strings[3094]); strings[1841] = str->add(strings[1841]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6817] = str->add(strings[6817]); strings[2514] = str->add(strings[2514]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2514] = str->add(strings[2514]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6817] = str->add(strings[6817]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6817] = str->add(strings[6817]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2713] = str->add(strings[2713]); strings[6817] = str->add(strings[6817]); strings[469] = str->add(strings[469]); strings[3096] = str->add(strings[3096]); strings[1841] = str->add(strings[1841]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6817] = str->add(strings[6817]); strings[2536] = str->add(strings[2536]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2536] = str->add(strings[2536]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[6818] = str->add(strings[6818]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2708]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[6640]); str->del(strings[6640]); str->del(strings[6640]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2677]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1726]); str->del(strings[1726]); str->del(strings[1726]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2678]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[6641]); str->del(strings[6641]); str->del(strings[6641]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2676]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1724]); str->del(strings[1724]); str->del(strings[1724]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2675]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1722]); str->del(strings[1722]); str->del(strings[1722]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2674]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[6642]); str->del(strings[6642]); str->del(strings[6642]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3008]); str->del(strings[6640]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3011]); str->del(strings[1726]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3013]); str->del(strings[6641]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3015]); str->del(strings[1724]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3017]); str->del(strings[1722]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3019]); str->del(strings[6642]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); strings[6818] = str->add(strings[6818]); strings[2224] = str->add(strings[2224]); strings[2224] = str->add(strings[2224]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[6818] = str->add(strings[6818]); strings[4] = str->add(strings[4]); strings[4] = str->add(strings[4]); strings[6818] = str->add(strings[6818]); strings[1925] = str->add(strings[1925]); strings[1925] = str->add(strings[1925]); strings[6818] = str->add(strings[6818]); strings[2494] = str->add(strings[2494]); strings[2494] = str->add(strings[2494]); strings[6818] = str->add(strings[6818]); strings[2514] = str->add(strings[2514]); strings[2514] = str->add(strings[2514]); strings[6818] = str->add(strings[6818]); strings[2536] = str->add(strings[2536]); strings[2536] = str->add(strings[2536]); strings[6819] = str->add("font"); strings[6820] = str->add("font_fallbacks"); strings[6821] = str->add("font_size"); strings[6822] = str->add("font_source"); strings[6823] = str->add("color"); strings[6824] = str->add("underline_color"); strings[6825] = str->add("underline2_color"); strings[6826] = str->add("outline_color"); strings[6827] = str->add("shadow_color"); strings[6828] = str->add("glow_color"); strings[6829] = str->add("glow2_color"); strings[6830] = str->add("backing_color"); strings[6831] = str->add("strikethrough_color"); strings[6832] = str->add("align"); strings[6833] = str->add("valign"); strings[6834] = str->add("wrap"); strings[6835] = str->add("left_margin"); strings[6836] = str->add("right_margin"); strings[6837] = str->add("underline"); strings[6838] = str->add("strikethrough"); strings[6839] = str->add("backing"); strings[6840] = str->add("style"); strings[6841] = str->add("tabstops"); strings[6832] = str->add(strings[6832]); strings[6842] = str->add("center"); str->del(strings[6832]); str->del(strings[6842]); strings[6823] = str->add(strings[6823]); strings[6843] = str->add("#000"); str->del(strings[6823]); str->del(strings[6843]); strings[6840] = str->add(strings[6840]); strings[6844] = str->add("shadow"); str->del(strings[6840]); str->del(strings[6844]); strings[6827] = str->add(strings[6827]); strings[6845] = str->add("#ffffff80"); str->del(strings[6827]); str->del(strings[6845]); strings[6834] = str->add(strings[6834]); strings[6846] = str->add("word"); str->del(strings[6834]); str->del(strings[6846]); strings[6822] = str->add(strings[6822]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6822]); str->del(strings[469]); strings[6821] = str->add(strings[6821]); strings[6847] = str->add("10.000000"); str->del(strings[6821]); str->del(strings[6847]); strings[6819] = str->add(strings[6819]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6819]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6840] = str->add(strings[6840]); strings[6848] = str->add("glow"); str->del(strings[6840]); str->del(strings[6848]); strings[6823] = str->add(strings[6823]); strings[6849] = str->add("#fff"); str->del(strings[6823]); str->del(strings[6849]); strings[6829] = str->add(strings[6829]); strings[6850] = str->add("#fe87"); str->del(strings[6829]); str->del(strings[6850]); strings[6828] = str->add(strings[6828]); strings[6851] = str->add("#fa14"); str->del(strings[6828]); str->del(strings[6851]); strings[6819] = str->add(strings[6819]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6819]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6840] = str->add(strings[6840]); strings[6852] = str->add("glow"); str->del(strings[6840]); str->del(strings[6852]); strings[6823] = str->add(strings[6823]); strings[6853] = str->add("#fff"); str->del(strings[6823]); str->del(strings[6853]); strings[6829] = str->add(strings[6829]); strings[6854] = str->add("#fe87"); str->del(strings[6829]); str->del(strings[6854]); strings[6828] = str->add(strings[6828]); strings[6855] = str->add("#fa14"); str->del(strings[6828]); str->del(strings[6855]); strings[6819] = str->add(strings[6819]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6819]); str->del(strings[471]); str->del(strings[6819]); str->del(strings[6820]); str->del(strings[6821]); str->del(strings[6822]); str->del(strings[6823]); str->del(strings[6824]); str->del(strings[6825]); str->del(strings[6826]); str->del(strings[6827]); str->del(strings[6828]); str->del(strings[6829]); str->del(strings[6830]); str->del(strings[6831]); str->del(strings[6832]); str->del(strings[6833]); str->del(strings[6834]); str->del(strings[6835]); str->del(strings[6836]); str->del(strings[6837]); str->del(strings[6838]); str->del(strings[6839]); str->del(strings[6840]); str->del(strings[6841]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[6856] = str->add("font"); strings[6857] = str->add("font_fallbacks"); strings[6858] = str->add("font_size"); strings[6859] = str->add("font_source"); strings[6860] = str->add("color"); strings[6861] = str->add("underline_color"); strings[6862] = str->add("underline2_color"); strings[6863] = str->add("outline_color"); strings[6864] = str->add("shadow_color"); strings[6865] = str->add("glow_color"); strings[6866] = str->add("glow2_color"); strings[6867] = str->add("backing_color"); strings[6868] = str->add("strikethrough_color"); strings[6869] = str->add("align"); strings[6870] = str->add("valign"); strings[6871] = str->add("wrap"); strings[6872] = str->add("left_margin"); strings[6873] = str->add("right_margin"); strings[6874] = str->add("underline"); strings[6875] = str->add("strikethrough"); strings[6876] = str->add("backing"); strings[6877] = str->add("style"); strings[6878] = str->add("tabstops"); strings[6869] = str->add(strings[6869]); strings[6879] = str->add("center"); str->del(strings[6869]); str->del(strings[6879]); strings[6860] = str->add(strings[6860]); strings[6880] = str->add("#000"); str->del(strings[6860]); str->del(strings[6880]); strings[6877] = str->add(strings[6877]); strings[6881] = str->add("shadow"); str->del(strings[6877]); str->del(strings[6881]); strings[6864] = str->add(strings[6864]); strings[6882] = str->add("#ffffff80"); str->del(strings[6864]); str->del(strings[6882]); strings[6871] = str->add(strings[6871]); strings[6883] = str->add("word"); str->del(strings[6871]); str->del(strings[6883]); strings[6859] = str->add(strings[6859]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6859]); str->del(strings[469]); strings[6858] = str->add(strings[6858]); strings[6884] = str->add("10.000000"); str->del(strings[6858]); str->del(strings[6884]); strings[6856] = str->add(strings[6856]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6856]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6877] = str->add(strings[6877]); strings[6885] = str->add("soft_shadow"); str->del(strings[6877]); str->del(strings[6885]); strings[6860] = str->add(strings[6860]); strings[6886] = str->add("#fff"); str->del(strings[6860]); str->del(strings[6886]); strings[6864] = str->add(strings[6864]); strings[6887] = str->add("#00000020"); str->del(strings[6864]); str->del(strings[6887]); strings[6858] = str->add(strings[6858]); strings[6888] = str->add("12.000000"); str->del(strings[6858]); str->del(strings[6888]); strings[6856] = str->add(strings[6856]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6856]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[6856]); str->del(strings[6857]); str->del(strings[6858]); str->del(strings[6859]); str->del(strings[6860]); str->del(strings[6861]); str->del(strings[6862]); str->del(strings[6863]); str->del(strings[6864]); str->del(strings[6865]); str->del(strings[6866]); str->del(strings[6867]); str->del(strings[6868]); str->del(strings[6869]); str->del(strings[6870]); str->del(strings[6871]); str->del(strings[6872]); str->del(strings[6873]); str->del(strings[6874]); str->del(strings[6875]); str->del(strings[6876]); str->del(strings[6877]); str->del(strings[6878]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); strings[1932] = str->add(strings[1932]); strings[1849] = str->add(strings[1849]); strings[6889] = str->add("program,start"); strings[1850] = str->add(strings[1850]); strings[1932] = str->add(strings[1932]); strings[1850] = str->add(strings[1850]); strings[6889] = str->add(strings[6889]); strings[1849] = str->add(strings[1849]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6817]); str->del(strings[1841]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[6818]); str->del(strings[1932]); str->del(strings[1849]); str->del(strings[6889]); str->del(strings[1850]); str->del(strings[1932]); str->del(strings[1850]); str->del(strings[6889]); str->del(strings[1849]); strings[6890] = str->add("e,action,mouse,move"); strings[6891] = str->add("e"); strings[6890] = str->add(strings[6890]); strings[6891] = str->add(strings[6891]); str->del(strings[6890]); str->del(strings[6891]); str->del(strings[6890]); str->del(strings[6891]); strings[6892] = str->add("font"); strings[6893] = str->add("font_fallbacks"); strings[6894] = str->add("font_size"); strings[6895] = str->add("font_source"); strings[6896] = str->add("color"); strings[6897] = str->add("underline_color"); strings[6898] = str->add("underline2_color"); strings[6899] = str->add("outline_color"); strings[6900] = str->add("shadow_color"); strings[6901] = str->add("glow_color"); strings[6902] = str->add("glow2_color"); strings[6903] = str->add("backing_color"); strings[6904] = str->add("strikethrough_color"); strings[6905] = str->add("align"); strings[6906] = str->add("valign"); strings[6907] = str->add("wrap"); strings[6908] = str->add("left_margin"); strings[6909] = str->add("right_margin"); strings[6910] = str->add("underline"); strings[6911] = str->add("strikethrough"); strings[6912] = str->add("backing"); strings[6913] = str->add("style"); strings[6914] = str->add("tabstops"); strings[6905] = str->add(strings[6905]); strings[6915] = str->add("center"); str->del(strings[6905]); str->del(strings[6915]); strings[6896] = str->add(strings[6896]); strings[6916] = str->add("#000"); str->del(strings[6896]); str->del(strings[6916]); strings[6913] = str->add(strings[6913]); strings[6917] = str->add("shadow"); str->del(strings[6913]); str->del(strings[6917]); strings[6900] = str->add(strings[6900]); strings[6918] = str->add("#ffffff80"); str->del(strings[6900]); str->del(strings[6918]); strings[6907] = str->add(strings[6907]); strings[6919] = str->add("word"); str->del(strings[6907]); str->del(strings[6919]); strings[6895] = str->add(strings[6895]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6895]); str->del(strings[469]); strings[6894] = str->add(strings[6894]); strings[6920] = str->add("10.000000"); str->del(strings[6894]); str->del(strings[6920]); strings[6892] = str->add(strings[6892]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6892]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6913] = str->add(strings[6913]); strings[6921] = str->add("soft_shadow"); str->del(strings[6913]); str->del(strings[6921]); strings[6896] = str->add(strings[6896]); strings[6922] = str->add("#fff"); str->del(strings[6896]); str->del(strings[6922]); strings[6900] = str->add(strings[6900]); strings[6923] = str->add("#00000020"); str->del(strings[6900]); str->del(strings[6923]); strings[6894] = str->add(strings[6894]); strings[6924] = str->add("12.000000"); str->del(strings[6894]); str->del(strings[6924]); strings[6892] = str->add(strings[6892]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6892]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[6892]); str->del(strings[6893]); str->del(strings[6894]); str->del(strings[6895]); str->del(strings[6896]); str->del(strings[6897]); str->del(strings[6898]); str->del(strings[6899]); str->del(strings[6900]); str->del(strings[6901]); str->del(strings[6902]); str->del(strings[6903]); str->del(strings[6904]); str->del(strings[6905]); str->del(strings[6906]); str->del(strings[6907]); str->del(strings[6908]); str->del(strings[6909]); str->del(strings[6910]); str->del(strings[6911]); str->del(strings[6912]); str->del(strings[6913]); str->del(strings[6914]); str->del(strings[7]); str->del(strings[1869]); strings[7] = str->add(strings[7]); strings[3251] = str->add(strings[3251]); strings[6925] = str->add("e,action,mouse,move"); strings[6926] = str->add("e"); strings[6925] = str->add(strings[6925]); strings[6926] = str->add(strings[6926]); str->del(strings[6925]); str->del(strings[6926]); str->del(strings[6925]); str->del(strings[6926]); strings[6927] = str->add("e,action,mouse,move"); strings[6928] = str->add("e"); str->del(strings[6927]); str->del(strings[6928]); strings[6929] = str->add("e,action,mouse,move"); strings[6930] = str->add("e"); str->del(strings[6929]); str->del(strings[6930]); strings[1932] = str->add(strings[1932]); strings[6931] = str->add("unsel"); str->del(strings[1932]); str->del(strings[6931]); strings[6932] = str->add("e,action,mouse,move"); strings[6933] = str->add("e"); str->del(strings[6932]); str->del(strings[6933]); strings[6934] = str->add("e,action,mouse,move"); strings[6935] = str->add("e"); str->del(strings[6934]); str->del(strings[6935]); strings[6936] = str->add("e,action,mouse,move"); strings[6937] = str->add("e"); str->del(strings[6936]); str->del(strings[6937]); strings[1932] = str->add(strings[1932]); strings[6938] = str->add("go_activeb23"); strings[6939] = str->add("program,start"); strings[6940] = str->add("go_activec23"); strings[1932] = str->add(strings[1932]); strings[6941] = str->add("go_activeb7"); strings[6939] = str->add(strings[6939]); strings[6942] = str->add("go_activec7"); str->del(strings[1932]); str->del(strings[6938]); str->del(strings[6939]); str->del(strings[6940]); str->del(strings[1932]); str->del(strings[6941]); str->del(strings[6939]); str->del(strings[6942]); str->del(strings[7]); str->del(strings[3251]); strings[7] = str->add(strings[7]); strings[3254] = str->add(strings[3254]); strings[6943] = str->add("e,action,mouse,move"); strings[6944] = str->add("e"); strings[6945] = str->add("e,state,unselected"); strings[6944] = str->add(strings[6944]); strings[6945] = str->add(strings[6945]); strings[6944] = str->add(strings[6944]); strings[6945] = str->add(strings[6945]); strings[6944] = str->add(strings[6944]); strings[6945] = str->add(strings[6945]); strings[6944] = str->add(strings[6944]); strings[6945] = str->add(strings[6945]); strings[6944] = str->add(strings[6944]); strings[6945] = str->add(strings[6945]); strings[6944] = str->add(strings[6944]); str->del(strings[6943]); str->del(strings[6944]); strings[1932] = str->add(strings[1932]); strings[6946] = str->add("sel"); strings[6947] = str->add("program,start"); strings[6948] = str->add("unsel"); str->del(strings[6945]); str->del(strings[6944]); str->del(strings[6945]); str->del(strings[6944]); strings[1932] = str->add(strings[1932]); strings[6946] = str->add(strings[6946]); strings[6947] = str->add(strings[6947]); strings[6948] = str->add(strings[6948]); str->del(strings[6945]); str->del(strings[6944]); strings[6947] = str->add(strings[6947]); strings[6948] = str->add(strings[6948]); strings[1932] = str->add(strings[1932]); strings[6948] = str->add(strings[6948]); str->del(strings[6945]); str->del(strings[6944]); str->del(strings[6945]); str->del(strings[6944]); str->del(strings[6945]); str->del(strings[6944]); str->del(strings[1932]); str->del(strings[6946]); str->del(strings[6947]); str->del(strings[6948]); str->del(strings[1932]); str->del(strings[6946]); str->del(strings[6947]); str->del(strings[6948]); str->del(strings[6947]); str->del(strings[6948]); str->del(strings[1932]); str->del(strings[6948]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[6949] = str->add("e,action,mouse,move"); strings[6950] = str->add("e"); str->del(strings[6949]); str->del(strings[6950]); strings[1932] = str->add(strings[1932]); strings[6951] = str->add("go_activec1"); strings[6952] = str->add("program,start"); strings[6953] = str->add("go_activeb1"); strings[1932] = str->add(strings[1932]); strings[6954] = str->add("go_activec29"); strings[6952] = str->add(strings[6952]); strings[6955] = str->add("go_activeb29"); str->del(strings[1932]); str->del(strings[6951]); str->del(strings[6952]); str->del(strings[6953]); str->del(strings[1932]); str->del(strings[6954]); str->del(strings[6952]); str->del(strings[6955]); str->del(strings[7]); str->del(strings[3254]); strings[7] = str->add(strings[7]); strings[2206] = str->add(strings[2206]); strings[6956] = str->add("e,action,mouse,move"); strings[6957] = str->add("e"); strings[6956] = str->add(strings[6956]); strings[6957] = str->add(strings[6957]); strings[6956] = str->add(strings[6956]); strings[6957] = str->add(strings[6957]); str->del(strings[6956]); str->del(strings[6957]); str->del(strings[6956]); str->del(strings[6957]); str->del(strings[6956]); str->del(strings[6957]); strings[6958] = str->add("e,action,mouse,move"); strings[6959] = str->add("e"); str->del(strings[6958]); str->del(strings[6959]); strings[6960] = str->add("e,action,mouse,move"); strings[6961] = str->add("e"); str->del(strings[6960]); str->del(strings[6961]); strings[6962] = str->add("e,action,mouse,move"); strings[6963] = str->add("e"); str->del(strings[6962]); str->del(strings[6963]); strings[6964] = str->add("e,action,mouse,move"); strings[6965] = str->add("e"); str->del(strings[6964]); str->del(strings[6965]); strings[1932] = str->add(strings[1932]); strings[6966] = str->add("unsel"); str->del(strings[1932]); str->del(strings[6966]); str->del(strings[7]); str->del(strings[2206]); strings[7] = str->add(strings[7]); strings[2213] = str->add(strings[2213]); strings[6967] = str->add("e,action,mouse,move"); strings[6968] = str->add("e"); str->del(strings[6967]); str->del(strings[6968]); strings[6969] = str->add("e,action,mouse,move"); strings[6970] = str->add("e"); strings[6971] = str->add("e,state,selected"); strings[6970] = str->add(strings[6970]); strings[6971] = str->add(strings[6971]); strings[6970] = str->add(strings[6970]); strings[6971] = str->add(strings[6971]); strings[6970] = str->add(strings[6970]); strings[6971] = str->add(strings[6971]); strings[6970] = str->add(strings[6970]); strings[6971] = str->add(strings[6971]); strings[6970] = str->add(strings[6970]); strings[6971] = str->add(strings[6971]); strings[6970] = str->add(strings[6970]); str->del(strings[6969]); str->del(strings[6970]); strings[6972] = str->add("program,start"); strings[6973] = str->add("sel"); str->del(strings[6971]); str->del(strings[6970]); str->del(strings[6971]); str->del(strings[6970]); strings[6972] = str->add(strings[6972]); strings[6973] = str->add(strings[6973]); str->del(strings[6971]); str->del(strings[6970]); strings[6972] = str->add(strings[6972]); strings[6973] = str->add(strings[6973]); strings[1932] = str->add(strings[1932]); strings[6973] = str->add(strings[6973]); str->del(strings[6971]); str->del(strings[6970]); strings[6972] = str->add(strings[6972]); strings[6974] = str->add("e_in"); str->del(strings[6971]); str->del(strings[6970]); str->del(strings[6971]); str->del(strings[6970]); str->del(strings[6972]); str->del(strings[6973]); str->del(strings[6972]); str->del(strings[6973]); str->del(strings[6972]); str->del(strings[6973]); str->del(strings[1932]); str->del(strings[6973]); str->del(strings[6972]); str->del(strings[6974]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[6975] = str->add("resize"); str->del(strings[6975]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[6976] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6976] = str->add(strings[6976]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6976] = str->add(strings[6976]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2671] = str->add(strings[2671]); strings[6976] = str->add(strings[6976]); strings[469] = str->add(strings[469]); strings[2898] = str->add(strings[2898]); strings[469] = str->add(strings[469]); strings[2900] = str->add(strings[2900]); strings[1841] = str->add(strings[1841]); strings[6977] = str->add("resize"); strings[6977] = str->add(strings[6977]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6976] = str->add(strings[6976]); strings[6487] = str->add(strings[6487]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[6487] = str->add(strings[6487]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6976] = str->add(strings[6976]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6976] = str->add(strings[6976]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[6976] = str->add(strings[6976]); strings[469] = str->add(strings[469]); strings[3094] = str->add(strings[3094]); strings[1841] = str->add(strings[1841]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6976] = str->add(strings[6976]); strings[2514] = str->add(strings[2514]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2514] = str->add(strings[2514]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[6976] = str->add(strings[6976]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6976] = str->add(strings[6976]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6976] = str->add(strings[6976]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2672] = str->add(strings[2672]); strings[6976] = str->add(strings[6976]); strings[469] = str->add(strings[469]); strings[3130] = str->add(strings[3130]); strings[1841] = str->add(strings[1841]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6976] = str->add(strings[6976]); strings[1713] = str->add(strings[1713]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1713] = str->add(strings[1713]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[6976] = str->add(strings[6976]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[6976] = str->add(strings[6976]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2673] = str->add(strings[2673]); strings[6976] = str->add(strings[6976]); strings[469] = str->add(strings[469]); strings[3132] = str->add(strings[3132]); strings[1841] = str->add(strings[1841]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[6976] = str->add(strings[6976]); strings[1714] = str->add(strings[1714]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1714] = str->add(strings[1714]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[6977] = str->add(strings[6977]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2688]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2224]); str->del(strings[2224]); str->del(strings[2224]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2685]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[4]); str->del(strings[4]); str->del(strings[4]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1926]); str->del(strings[3083]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1925]); str->del(strings[1925]); str->del(strings[1925]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2711]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2494]); str->del(strings[2494]); str->del(strings[2494]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2680]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2713]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2536]); str->del(strings[2536]); str->del(strings[2536]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2902]); str->del(strings[2224]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3089]); str->del(strings[4]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[1926]); str->del(strings[1552]); str->del(strings[1925]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3092]); str->del(strings[2494]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3094]); str->del(strings[2514]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3096]); str->del(strings[2536]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); str->del(strings[1842]); strings[1842] = str->add(strings[1842]); strings[6977] = str->add(strings[6977]); strings[6487] = str->add(strings[6487]); strings[6487] = str->add(strings[6487]); strings[6977] = str->add(strings[6977]); strings[2514] = str->add(strings[2514]); strings[2514] = str->add(strings[2514]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[6977] = str->add(strings[6977]); strings[1713] = str->add(strings[1713]); strings[1713] = str->add(strings[1713]); strings[6977] = str->add(strings[6977]); strings[1714] = str->add(strings[1714]); strings[1714] = str->add(strings[1714]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); strings[6978] = str->add("font"); strings[6979] = str->add("font_fallbacks"); strings[6980] = str->add("font_size"); strings[6981] = str->add("font_source"); strings[6982] = str->add("color"); strings[6983] = str->add("underline_color"); strings[6984] = str->add("underline2_color"); strings[6985] = str->add("outline_color"); strings[6986] = str->add("shadow_color"); strings[6987] = str->add("glow_color"); strings[6988] = str->add("glow2_color"); strings[6989] = str->add("backing_color"); strings[6990] = str->add("strikethrough_color"); strings[6991] = str->add("align"); strings[6992] = str->add("valign"); strings[6993] = str->add("wrap"); strings[6994] = str->add("left_margin"); strings[6995] = str->add("right_margin"); strings[6996] = str->add("underline"); strings[6997] = str->add("strikethrough"); strings[6998] = str->add("backing"); strings[6999] = str->add("style"); strings[7000] = str->add("tabstops"); strings[6991] = str->add(strings[6991]); strings[7001] = str->add("center"); str->del(strings[6991]); str->del(strings[7001]); strings[6982] = str->add(strings[6982]); strings[7002] = str->add("#000"); str->del(strings[6982]); str->del(strings[7002]); strings[6999] = str->add(strings[6999]); strings[7003] = str->add("shadow"); str->del(strings[6999]); str->del(strings[7003]); strings[6986] = str->add(strings[6986]); strings[7004] = str->add("#ffffff80"); str->del(strings[6986]); str->del(strings[7004]); strings[6993] = str->add(strings[6993]); strings[7005] = str->add("word"); str->del(strings[6993]); str->del(strings[7005]); strings[6981] = str->add(strings[6981]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[6981]); str->del(strings[469]); strings[6980] = str->add(strings[6980]); strings[7006] = str->add("10.000000"); str->del(strings[6980]); str->del(strings[7006]); strings[6978] = str->add(strings[6978]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[6978]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6999] = str->add(strings[6999]); strings[7007] = str->add("glow"); str->del(strings[6999]); str->del(strings[7007]); strings[6982] = str->add(strings[6982]); strings[7008] = str->add("#fff"); str->del(strings[6982]); str->del(strings[7008]); strings[6988] = str->add(strings[6988]); strings[7009] = str->add("#fe87"); str->del(strings[6988]); str->del(strings[7009]); strings[6987] = str->add(strings[6987]); strings[7010] = str->add("#fa14"); str->del(strings[6987]); str->del(strings[7010]); strings[6978] = str->add(strings[6978]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6978]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[6999] = str->add(strings[6999]); strings[7011] = str->add("glow"); str->del(strings[6999]); str->del(strings[7011]); strings[6982] = str->add(strings[6982]); strings[7012] = str->add("#fff"); str->del(strings[6982]); str->del(strings[7012]); strings[6988] = str->add(strings[6988]); strings[7013] = str->add("#fe87"); str->del(strings[6988]); str->del(strings[7013]); strings[6987] = str->add(strings[6987]); strings[7014] = str->add("#fa14"); str->del(strings[6987]); str->del(strings[7014]); strings[6978] = str->add(strings[6978]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[6978]); str->del(strings[471]); str->del(strings[6978]); str->del(strings[6979]); str->del(strings[6980]); str->del(strings[6981]); str->del(strings[6982]); str->del(strings[6983]); str->del(strings[6984]); str->del(strings[6985]); str->del(strings[6986]); str->del(strings[6987]); str->del(strings[6988]); str->del(strings[6989]); str->del(strings[6990]); str->del(strings[6991]); str->del(strings[6992]); str->del(strings[6993]); str->del(strings[6994]); str->del(strings[6995]); str->del(strings[6996]); str->del(strings[6997]); str->del(strings[6998]); str->del(strings[6999]); str->del(strings[7000]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[7015] = str->add("font"); strings[7016] = str->add("font_fallbacks"); strings[7017] = str->add("font_size"); strings[7018] = str->add("font_source"); strings[7019] = str->add("color"); strings[7020] = str->add("underline_color"); strings[7021] = str->add("underline2_color"); strings[7022] = str->add("outline_color"); strings[7023] = str->add("shadow_color"); strings[7024] = str->add("glow_color"); strings[7025] = str->add("glow2_color"); strings[7026] = str->add("backing_color"); strings[7027] = str->add("strikethrough_color"); strings[7028] = str->add("align"); strings[7029] = str->add("valign"); strings[7030] = str->add("wrap"); strings[7031] = str->add("left_margin"); strings[7032] = str->add("right_margin"); strings[7033] = str->add("underline"); strings[7034] = str->add("strikethrough"); strings[7035] = str->add("backing"); strings[7036] = str->add("style"); strings[7037] = str->add("tabstops"); strings[7028] = str->add(strings[7028]); strings[7038] = str->add("center"); str->del(strings[7028]); str->del(strings[7038]); strings[7019] = str->add(strings[7019]); strings[7039] = str->add("#000"); str->del(strings[7019]); str->del(strings[7039]); strings[7036] = str->add(strings[7036]); strings[7040] = str->add("shadow"); str->del(strings[7036]); str->del(strings[7040]); strings[7023] = str->add(strings[7023]); strings[7041] = str->add("#ffffff80"); str->del(strings[7023]); str->del(strings[7041]); strings[7030] = str->add(strings[7030]); strings[7042] = str->add("word"); str->del(strings[7030]); str->del(strings[7042]); strings[7018] = str->add(strings[7018]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[7018]); str->del(strings[469]); strings[7017] = str->add(strings[7017]); strings[7043] = str->add("10.000000"); str->del(strings[7017]); str->del(strings[7043]); strings[7015] = str->add(strings[7015]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[7015]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[7036] = str->add(strings[7036]); strings[7044] = str->add("soft_shadow"); str->del(strings[7036]); str->del(strings[7044]); strings[7019] = str->add(strings[7019]); strings[7045] = str->add("#fff"); str->del(strings[7019]); str->del(strings[7045]); strings[7023] = str->add(strings[7023]); strings[7046] = str->add("#00000020"); str->del(strings[7023]); str->del(strings[7046]); strings[7017] = str->add(strings[7017]); strings[7047] = str->add("12.000000"); str->del(strings[7017]); str->del(strings[7047]); strings[7015] = str->add(strings[7015]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[7015]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[7015]); str->del(strings[7016]); str->del(strings[7017]); str->del(strings[7018]); str->del(strings[7019]); str->del(strings[7020]); str->del(strings[7021]); str->del(strings[7022]); str->del(strings[7023]); str->del(strings[7024]); str->del(strings[7025]); str->del(strings[7026]); str->del(strings[7027]); str->del(strings[7028]); str->del(strings[7029]); str->del(strings[7030]); str->del(strings[7031]); str->del(strings[7032]); str->del(strings[7033]); str->del(strings[7034]); str->del(strings[7035]); str->del(strings[7036]); str->del(strings[7037]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); strings[1932] = str->add(strings[1932]); strings[7048] = str->add("unsel"); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6976]); str->del(strings[1841]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[6977]); str->del(strings[1932]); str->del(strings[7048]); strings[7049] = str->add("e,action,mouse,move"); strings[7050] = str->add("e"); str->del(strings[7049]); str->del(strings[7050]); strings[7051] = str->add("font"); strings[7052] = str->add("font_fallbacks"); strings[7053] = str->add("font_size"); strings[7054] = str->add("font_source"); strings[7055] = str->add("color"); strings[7056] = str->add("underline_color"); strings[7057] = str->add("underline2_color"); strings[7058] = str->add("outline_color"); strings[7059] = str->add("shadow_color"); strings[7060] = str->add("glow_color"); strings[7061] = str->add("glow2_color"); strings[7062] = str->add("backing_color"); strings[7063] = str->add("strikethrough_color"); strings[7064] = str->add("align"); strings[7065] = str->add("valign"); strings[7066] = str->add("wrap"); strings[7067] = str->add("left_margin"); strings[7068] = str->add("right_margin"); strings[7069] = str->add("underline"); strings[7070] = str->add("strikethrough"); strings[7071] = str->add("backing"); strings[7072] = str->add("style"); strings[7073] = str->add("tabstops"); strings[7064] = str->add(strings[7064]); strings[7074] = str->add("center"); str->del(strings[7064]); str->del(strings[7074]); strings[7055] = str->add(strings[7055]); strings[7075] = str->add("#000"); str->del(strings[7055]); str->del(strings[7075]); strings[7072] = str->add(strings[7072]); strings[7076] = str->add("shadow"); str->del(strings[7072]); str->del(strings[7076]); strings[7059] = str->add(strings[7059]); strings[7077] = str->add("#ffffff80"); str->del(strings[7059]); str->del(strings[7077]); strings[7066] = str->add(strings[7066]); strings[7078] = str->add("word"); str->del(strings[7066]); str->del(strings[7078]); strings[7054] = str->add(strings[7054]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[7054]); str->del(strings[469]); strings[7053] = str->add(strings[7053]); strings[7079] = str->add("10.000000"); str->del(strings[7053]); str->del(strings[7079]); strings[7051] = str->add(strings[7051]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[7051]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[7072] = str->add(strings[7072]); strings[7080] = str->add("soft_shadow"); str->del(strings[7072]); str->del(strings[7080]); strings[7055] = str->add(strings[7055]); strings[7081] = str->add("#fff"); str->del(strings[7055]); str->del(strings[7081]); strings[7059] = str->add(strings[7059]); strings[7082] = str->add("#00000020"); str->del(strings[7059]); str->del(strings[7082]); strings[7053] = str->add(strings[7053]); strings[7083] = str->add("12.000000"); str->del(strings[7053]); str->del(strings[7083]); strings[7051] = str->add(strings[7051]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[7051]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[7051]); str->del(strings[7052]); str->del(strings[7053]); str->del(strings[7054]); str->del(strings[7055]); str->del(strings[7056]); str->del(strings[7057]); str->del(strings[7058]); str->del(strings[7059]); str->del(strings[7060]); str->del(strings[7061]); str->del(strings[7062]); str->del(strings[7063]); str->del(strings[7064]); str->del(strings[7065]); str->del(strings[7066]); str->del(strings[7067]); str->del(strings[7068]); str->del(strings[7069]); str->del(strings[7070]); str->del(strings[7071]); str->del(strings[7072]); str->del(strings[7073]); strings[7084] = str->add("e,action,mouse,move"); strings[7085] = str->add("e"); str->del(strings[7084]); str->del(strings[7085]); strings[7086] = str->add("e,action,mouse,move"); strings[7087] = str->add("e"); str->del(strings[7086]); str->del(strings[7087]); str->del(strings[7]); str->del(strings[2213]); strings[7] = str->add(strings[7]); strings[2220] = str->add(strings[2220]); strings[7088] = str->add("e,action,mouse,move"); strings[7089] = str->add("e"); str->del(strings[7088]); str->del(strings[7089]); strings[7090] = str->add("e,action,mouse,move"); strings[7091] = str->add("e"); str->del(strings[7090]); str->del(strings[7091]); strings[7092] = str->add("e,action,mouse,move"); strings[7093] = str->add("e"); str->del(strings[7092]); str->del(strings[7093]); strings[1932] = str->add(strings[1932]); strings[7094] = str->add("go_activeb22"); strings[7095] = str->add("program,start"); strings[7096] = str->add("go_activec22"); strings[1932] = str->add(strings[1932]); strings[7097] = str->add("go_activeb8"); strings[7095] = str->add(strings[7095]); strings[7098] = str->add("go_activec8"); str->del(strings[1932]); str->del(strings[7094]); str->del(strings[7095]); str->del(strings[7096]); str->del(strings[1932]); str->del(strings[7097]); str->del(strings[7095]); str->del(strings[7098]); strings[7099] = str->add("e,action,mouse,move"); strings[7100] = str->add("e"); strings[7099] = str->add(strings[7099]); strings[7100] = str->add(strings[7100]); str->del(strings[7099]); str->del(strings[7100]); str->del(strings[7099]); str->del(strings[7100]); strings[7101] = str->add("e,action,mouse,move"); strings[7102] = str->add("e"); str->del(strings[7101]); str->del(strings[7102]); strings[1932] = str->add(strings[1932]); strings[7103] = str->add("go_activec28"); strings[7104] = str->add("program,start"); strings[7105] = str->add("go_activeb28"); strings[1932] = str->add(strings[1932]); strings[7106] = str->add("go_activec2"); strings[7104] = str->add(strings[7104]); strings[7107] = str->add("go_activeb2"); str->del(strings[1932]); str->del(strings[7103]); str->del(strings[7104]); str->del(strings[7105]); str->del(strings[1932]); str->del(strings[7106]); str->del(strings[7104]); str->del(strings[7107]); str->del(strings[7]); str->del(strings[2220]); strings[7] = str->add(strings[7]); strings[2226] = str->add(strings[2226]); strings[7108] = str->add("e,action,mouse,move"); strings[7109] = str->add("e"); str->del(strings[7108]); str->del(strings[7109]); strings[7110] = str->add("e,action,mouse,move"); strings[7111] = str->add("e"); str->del(strings[7110]); str->del(strings[7111]); strings[7112] = str->add("e,action,mouse,move"); strings[7113] = str->add("e"); str->del(strings[7112]); str->del(strings[7113]); strings[7114] = str->add("e,action,mouse,move"); strings[7115] = str->add("e"); str->del(strings[7114]); str->del(strings[7115]); strings[7116] = str->add("e,action,mouse,move"); strings[7117] = str->add("e"); str->del(strings[7116]); str->del(strings[7117]); strings[7118] = str->add("e,action,mouse,move"); strings[7119] = str->add("e"); str->del(strings[7118]); str->del(strings[7119]); strings[1932] = str->add(strings[1932]); strings[7120] = str->add("unsel"); str->del(strings[1932]); str->del(strings[7120]); str->del(strings[7]); str->del(strings[2226]); strings[7] = str->add(strings[7]); strings[2257] = str->add(strings[2257]); strings[7121] = str->add("e,action,mouse,move"); strings[7122] = str->add("e"); strings[7121] = str->add(strings[7121]); strings[7122] = str->add(strings[7122]); str->del(strings[7121]); str->del(strings[7122]); str->del(strings[7121]); str->del(strings[7122]); strings[7123] = str->add("e,action,mouse,move"); strings[7124] = str->add("e"); str->del(strings[7123]); str->del(strings[7124]); strings[7125] = str->add("e,action,mouse,move"); strings[7126] = str->add("e"); str->del(strings[7125]); str->del(strings[7126]); strings[1932] = str->add(strings[1932]); strings[7127] = str->add("sel"); strings[1932] = str->add(strings[1932]); strings[7127] = str->add(strings[7127]); str->del(strings[1932]); str->del(strings[7127]); str->del(strings[1932]); str->del(strings[7127]); strings[7128] = str->add("e,action,mouse,move"); strings[7129] = str->add("e"); strings[7128] = str->add(strings[7128]); strings[7129] = str->add(strings[7129]); str->del(strings[7128]); str->del(strings[7129]); str->del(strings[7128]); str->del(strings[7129]); strings[7130] = str->add("e,action,mouse,move"); strings[7131] = str->add("e"); str->del(strings[7130]); str->del(strings[7131]); strings[7132] = str->add("e,action,mouse,move"); strings[7133] = str->add("e"); str->del(strings[7132]); str->del(strings[7133]); str->del(strings[7]); str->del(strings[2257]); strings[7] = str->add(strings[7]); strings[2270] = str->add(strings[2270]); strings[7134] = str->add("e,action,mouse,move"); strings[7135] = str->add("e"); strings[7134] = str->add(strings[7134]); strings[7135] = str->add(strings[7135]); str->del(strings[7134]); str->del(strings[7135]); str->del(strings[7134]); str->del(strings[7135]); strings[7136] = str->add("e,action,mouse,move"); strings[7137] = str->add("e"); str->del(strings[7136]); str->del(strings[7137]); strings[7138] = str->add("e,action,mouse,move"); strings[7139] = str->add("e"); str->del(strings[7138]); str->del(strings[7139]); strings[1932] = str->add(strings[1932]); strings[7140] = str->add("go_activeb21"); strings[7141] = str->add("program,start"); strings[7142] = str->add("go_activec21"); strings[1932] = str->add(strings[1932]); strings[7143] = str->add("go_activeb9"); strings[7141] = str->add(strings[7141]); strings[7144] = str->add("go_activec9"); str->del(strings[1932]); str->del(strings[7140]); str->del(strings[7141]); str->del(strings[7142]); str->del(strings[1932]); str->del(strings[7143]); str->del(strings[7141]); str->del(strings[7144]); strings[7145] = str->add("e,action,mouse,move"); strings[7146] = str->add("e"); strings[7145] = str->add(strings[7145]); strings[7146] = str->add(strings[7146]); str->del(strings[7145]); str->del(strings[7146]); str->del(strings[7145]); str->del(strings[7146]); strings[7147] = str->add("e,action,mouse,move"); strings[7148] = str->add("e"); str->del(strings[7147]); str->del(strings[7148]); strings[7149] = str->add("e,action,mouse,move"); strings[7150] = str->add("e"); str->del(strings[7149]); str->del(strings[7150]); strings[1932] = str->add(strings[1932]); strings[7151] = str->add("go_activec27"); strings[7152] = str->add("program,start"); strings[7153] = str->add("go_activeb27"); strings[1932] = str->add(strings[1932]); strings[7154] = str->add("go_activec3"); strings[7152] = str->add(strings[7152]); strings[7155] = str->add("go_activeb3"); str->del(strings[1932]); str->del(strings[7151]); str->del(strings[7152]); str->del(strings[7153]); str->del(strings[1932]); str->del(strings[7154]); str->del(strings[7152]); str->del(strings[7155]); str->del(strings[7]); str->del(strings[2270]); strings[7] = str->add(strings[7]); strings[2276] = str->add(strings[2276]); strings[7156] = str->add("e,action,mouse,move"); strings[7157] = str->add("e"); strings[7156] = str->add(strings[7156]); strings[7157] = str->add(strings[7157]); str->del(strings[7156]); str->del(strings[7157]); str->del(strings[7156]); str->del(strings[7157]); strings[7158] = str->add("e,action,mouse,move"); strings[7159] = str->add("e"); str->del(strings[7158]); str->del(strings[7159]); strings[7160] = str->add("e,action,mouse,move"); strings[7161] = str->add("e"); str->del(strings[7160]); str->del(strings[7161]); strings[7162] = str->add("e,action,mouse,move"); strings[7163] = str->add("e"); str->del(strings[7162]); str->del(strings[7163]); strings[7164] = str->add("e,action,mouse,move"); strings[7165] = str->add("e"); str->del(strings[7164]); str->del(strings[7165]); strings[7166] = str->add("e,action,mouse,move"); strings[7167] = str->add("e"); str->del(strings[7166]); str->del(strings[7167]); strings[7168] = str->add("e,action,mouse,move"); strings[7169] = str->add("e"); str->del(strings[7168]); str->del(strings[7169]); strings[7170] = str->add("e,action,mouse,move"); strings[7171] = str->add("e"); str->del(strings[7170]); str->del(strings[7171]); strings[1932] = str->add(strings[1932]); strings[7172] = str->add("go_activeb1"); strings[7173] = str->add("program,start"); strings[7174] = str->add("go_activec1"); strings[1932] = str->add(strings[1932]); strings[7175] = str->add("go_activeb29"); strings[7173] = str->add(strings[7173]); strings[7176] = str->add("go_activec29"); str->del(strings[1932]); str->del(strings[7172]); str->del(strings[7173]); str->del(strings[7174]); str->del(strings[1932]); str->del(strings[7175]); str->del(strings[7173]); str->del(strings[7176]); str->del(strings[7]); str->del(strings[2276]); strings[7] = str->add(strings[7]); strings[3259] = str->add(strings[3259]); strings[7177] = str->add("e,action,mouse,move"); strings[7178] = str->add("e"); strings[7177] = str->add(strings[7177]); strings[7178] = str->add(strings[7178]); str->del(strings[7177]); str->del(strings[7178]); str->del(strings[7177]); str->del(strings[7178]); strings[7179] = str->add("e,action,mouse,move"); strings[7180] = str->add("e"); str->del(strings[7179]); str->del(strings[7180]); strings[7181] = str->add("e,action,mouse,move"); strings[7182] = str->add("e"); str->del(strings[7181]); str->del(strings[7182]); str->del(strings[7]); str->del(strings[3259]); strings[7] = str->add(strings[7]); strings[2292] = str->add(strings[2292]); strings[7183] = str->add("e,action,mouse,move"); strings[7184] = str->add("e"); str->del(strings[7183]); str->del(strings[7184]); strings[1932] = str->add(strings[1932]); strings[7185] = str->add("go_activec26"); strings[7186] = str->add("program,start"); strings[7187] = str->add("go_activeb26"); strings[1932] = str->add(strings[1932]); strings[7188] = str->add("go_activec4"); strings[7186] = str->add(strings[7186]); strings[7189] = str->add("go_activeb4"); strings[1932] = str->add(strings[1932]); strings[7190] = str->add("e_in"); str->del(strings[1932]); str->del(strings[7185]); str->del(strings[7186]); str->del(strings[7187]); str->del(strings[1932]); str->del(strings[7188]); str->del(strings[7186]); str->del(strings[7189]); str->del(strings[1932]); str->del(strings[7190]); str->del(strings[7]); str->del(strings[2292]); strings[7] = str->add(strings[7]); strings[2310] = str->add(strings[2310]); str->del(strings[7]); str->del(strings[2310]); strings[7] = str->add(strings[7]); strings[3279] = str->add(strings[3279]); strings[1932] = str->add(strings[1932]); strings[7191] = str->add("go_activeb28"); strings[7192] = str->add("program,start"); strings[7193] = str->add("go_activec28"); strings[1932] = str->add(strings[1932]); strings[7194] = str->add("go_activeb2"); strings[7192] = str->add(strings[7192]); strings[7195] = str->add("go_activec2"); str->del(strings[1932]); str->del(strings[7191]); str->del(strings[7192]); str->del(strings[7193]); str->del(strings[1932]); str->del(strings[7194]); str->del(strings[7192]); str->del(strings[7195]); strings[7196] = str->add("e,action,mouse,move"); strings[7197] = str->add("e"); strings[7196] = str->add(strings[7196]); strings[7197] = str->add(strings[7197]); str->del(strings[7196]); str->del(strings[7197]); str->del(strings[7196]); str->del(strings[7197]); strings[7198] = str->add("e,action,mouse,move"); strings[7199] = str->add("e"); str->del(strings[7198]); str->del(strings[7199]); strings[7200] = str->add("e,action,mouse,move"); strings[7201] = str->add("e"); str->del(strings[7200]); str->del(strings[7201]); str->del(strings[7]); str->del(strings[3279]); strings[7] = str->add(strings[7]); strings[2320] = str->add(strings[2320]); strings[7202] = str->add("e,action,mouse,move"); strings[7203] = str->add("e"); strings[7202] = str->add(strings[7202]); strings[7203] = str->add(strings[7203]); str->del(strings[7202]); str->del(strings[7203]); str->del(strings[7202]); str->del(strings[7203]); strings[7204] = str->add("e,action,mouse,move"); strings[7205] = str->add("e"); str->del(strings[7204]); str->del(strings[7205]); strings[7206] = str->add("e,action,mouse,move"); strings[7207] = str->add("e"); str->del(strings[7206]); str->del(strings[7207]); strings[7208] = str->add("e,action,mouse,move"); strings[7209] = str->add("e"); strings[7208] = str->add(strings[7208]); strings[7209] = str->add(strings[7209]); str->del(strings[7208]); str->del(strings[7209]); str->del(strings[7208]); str->del(strings[7209]); strings[7210] = str->add("e,action,mouse,move"); strings[7211] = str->add("e"); str->del(strings[7210]); str->del(strings[7211]); strings[7212] = str->add("e,action,mouse,move"); strings[7213] = str->add("e"); str->del(strings[7212]); str->del(strings[7213]); str->del(strings[7]); str->del(strings[2320]); strings[7] = str->add(strings[7]); strings[2330] = str->add(strings[2330]); strings[7214] = str->add("e,action,mouse,move"); strings[7215] = str->add("e"); str->del(strings[7214]); str->del(strings[7215]); strings[7216] = str->add("e,action,mouse,move"); strings[7217] = str->add("e"); str->del(strings[7216]); str->del(strings[7217]); strings[7218] = str->add("e,action,mouse,move"); strings[7219] = str->add("e"); str->del(strings[7218]); str->del(strings[7219]); strings[7220] = str->add("e,action,mouse,move"); strings[7221] = str->add("e"); str->del(strings[7220]); str->del(strings[7221]); strings[1932] = str->add(strings[1932]); strings[7222] = str->add("go_activec25"); strings[7223] = str->add("program,start"); strings[7224] = str->add("go_activeb25"); strings[1932] = str->add(strings[1932]); strings[7225] = str->add("go_activec5"); strings[7223] = str->add(strings[7223]); strings[7226] = str->add("go_activeb5"); str->del(strings[1932]); str->del(strings[7222]); str->del(strings[7223]); str->del(strings[7224]); str->del(strings[1932]); str->del(strings[7225]); str->del(strings[7223]); str->del(strings[7226]); strings[7227] = str->add("e,action,mouse,move"); strings[7228] = str->add("e"); str->del(strings[7227]); str->del(strings[7228]); strings[7229] = str->add("e,action,mouse,move"); strings[7230] = str->add("e"); strings[7231] = str->add("e,state,unselected"); strings[7230] = str->add(strings[7230]); strings[7231] = str->add(strings[7231]); strings[7230] = str->add(strings[7230]); strings[7231] = str->add(strings[7231]); strings[7230] = str->add(strings[7230]); strings[7231] = str->add(strings[7231]); strings[7230] = str->add(strings[7230]); strings[7231] = str->add(strings[7231]); strings[7230] = str->add(strings[7230]); strings[7231] = str->add(strings[7231]); strings[7230] = str->add(strings[7230]); str->del(strings[7229]); str->del(strings[7230]); strings[7232] = str->add("program,start"); strings[7233] = str->add("unsel"); str->del(strings[7231]); str->del(strings[7230]); str->del(strings[7231]); str->del(strings[7230]); strings[7232] = str->add(strings[7232]); strings[7233] = str->add(strings[7233]); str->del(strings[7231]); str->del(strings[7230]); strings[7232] = str->add(strings[7232]); strings[7233] = str->add(strings[7233]); strings[1932] = str->add(strings[1932]); strings[7233] = str->add(strings[7233]); str->del(strings[7231]); str->del(strings[7230]); strings[7232] = str->add(strings[7232]); strings[7234] = str->add("e_out"); str->del(strings[7231]); str->del(strings[7230]); str->del(strings[7231]); str->del(strings[7230]); str->del(strings[7232]); str->del(strings[7233]); str->del(strings[7232]); str->del(strings[7233]); str->del(strings[7232]); str->del(strings[7233]); str->del(strings[1932]); str->del(strings[7233]); str->del(strings[7232]); str->del(strings[7234]); strings[7235] = str->add("e,action,mouse,move"); strings[7236] = str->add("e"); str->del(strings[7235]); str->del(strings[7236]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[7237] = str->add("e,action,mouse,move"); strings[7238] = str->add("e"); str->del(strings[7237]); str->del(strings[7238]); str->del(strings[7]); str->del(strings[2330]); strings[7] = str->add(strings[7]); strings[2343] = str->add(strings[2343]); strings[7239] = str->add("e,action,mouse,move"); strings[7240] = str->add("e"); strings[7239] = str->add(strings[7239]); strings[7240] = str->add(strings[7240]); str->del(strings[7239]); str->del(strings[7240]); str->del(strings[7239]); str->del(strings[7240]); strings[7241] = str->add("e,action,mouse,move"); strings[7242] = str->add("e"); str->del(strings[7241]); str->del(strings[7242]); strings[7243] = str->add("e,action,mouse,move"); strings[7244] = str->add("e"); strings[7245] = str->add("e,state,selected"); strings[7244] = str->add(strings[7244]); strings[7245] = str->add(strings[7245]); strings[7244] = str->add(strings[7244]); strings[7245] = str->add(strings[7245]); strings[7244] = str->add(strings[7244]); strings[7245] = str->add(strings[7245]); strings[7244] = str->add(strings[7244]); strings[7245] = str->add(strings[7245]); strings[7244] = str->add(strings[7244]); strings[7245] = str->add(strings[7245]); strings[7244] = str->add(strings[7244]); str->del(strings[7243]); str->del(strings[7244]); strings[7246] = str->add("program,start"); strings[7247] = str->add("sel"); str->del(strings[7245]); str->del(strings[7244]); str->del(strings[7245]); str->del(strings[7244]); strings[7246] = str->add(strings[7246]); strings[7247] = str->add(strings[7247]); str->del(strings[7245]); str->del(strings[7244]); strings[7246] = str->add(strings[7246]); strings[7247] = str->add(strings[7247]); strings[1932] = str->add(strings[1932]); strings[7247] = str->add(strings[7247]); str->del(strings[7245]); str->del(strings[7244]); str->del(strings[7245]); str->del(strings[7244]); str->del(strings[7245]); str->del(strings[7244]); str->del(strings[7246]); str->del(strings[7247]); str->del(strings[7246]); str->del(strings[7247]); str->del(strings[7246]); str->del(strings[7247]); str->del(strings[1932]); str->del(strings[7247]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[7248] = str->add("resize"); str->del(strings[7248]); strings[64] = str->add(strings[64]); strings[2581] = str->add(strings[2581]); strings[64] = str->add(strings[64]); strings[7249] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[1949] = str->add(strings[1949]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[1842] = str->add(strings[1842]); strings[1842] = str->add(strings[1842]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[7249] = str->add(strings[7249]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[7249] = str->add(strings[7249]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[7249] = str->add(strings[7249]); strings[469] = str->add(strings[469]); strings[2902] = str->add(strings[2902]); strings[1841] = str->add(strings[1841]); strings[7250] = str->add("resize"); strings[7250] = str->add(strings[7250]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[7249] = str->add(strings[7249]); strings[2224] = str->add(strings[2224]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2224] = str->add(strings[2224]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2582] = str->add(strings[2582]); strings[7249] = str->add(strings[7249]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[7249] = str->add(strings[7249]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[7249] = str->add(strings[7249]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2685] = str->add(strings[2685]); strings[7249] = str->add(strings[7249]); strings[469] = str->add(strings[469]); strings[3089] = str->add(strings[3089]); strings[1841] = str->add(strings[1841]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[7249] = str->add(strings[7249]); strings[4] = str->add(strings[4]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[4] = str->add(strings[4]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[7249] = str->add(strings[7249]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[7249] = str->add(strings[7249]); strings[1841] = str->add(strings[1841]); strings[1926] = str->add(strings[1926]); strings[3083] = str->add(strings[3083]); strings[7249] = str->add(strings[7249]); strings[1926] = str->add(strings[1926]); strings[1552] = str->add(strings[1552]); strings[1841] = str->add(strings[1841]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[7249] = str->add(strings[7249]); strings[1925] = str->add(strings[1925]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1925] = str->add(strings[1925]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[7249] = str->add(strings[7249]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[7249] = str->add(strings[7249]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2711] = str->add(strings[2711]); strings[7249] = str->add(strings[7249]); strings[469] = str->add(strings[469]); strings[3092] = str->add(strings[3092]); strings[1841] = str->add(strings[1841]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[7249] = str->add(strings[7249]); strings[2494] = str->add(strings[2494]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2494] = str->add(strings[2494]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[7249] = str->add(strings[7249]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[7249] = str->add(strings[7249]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[7249] = str->add(strings[7249]); strings[469] = str->add(strings[469]); strings[3094] = str->add(strings[3094]); strings[1841] = str->add(strings[1841]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[7249] = str->add(strings[7249]); strings[2514] = str->add(strings[2514]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2514] = str->add(strings[2514]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[64] = str->add(strings[64]); strings[2583] = str->add(strings[2583]); strings[7249] = str->add(strings[7249]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[2584] = str->add(strings[2584]); strings[7249] = str->add(strings[7249]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2713] = str->add(strings[2713]); strings[7249] = str->add(strings[7249]); strings[469] = str->add(strings[469]); strings[3096] = str->add(strings[3096]); strings[1841] = str->add(strings[1841]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[64] = str->add(strings[64]); strings[2585] = str->add(strings[2585]); strings[64] = str->add(strings[64]); strings[7249] = str->add(strings[7249]); strings[2536] = str->add(strings[2536]); strings[1841] = str->add(strings[1841]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2536] = str->add(strings[2536]); strings[64] = str->add(strings[64]); strings[2886] = str->add(strings[2886]); strings[64] = str->add(strings[64]); strings[2888] = str->add(strings[2888]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[7250] = str->add(strings[7250]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2671]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[6487]); str->del(strings[6487]); str->del(strings[6487]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2680]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2672]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1713]); str->del(strings[1713]); str->del(strings[1713]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2673]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1714]); str->del(strings[1714]); str->del(strings[1714]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2898]); str->del(strings[469]); str->del(strings[2900]); str->del(strings[6487]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3094]); str->del(strings[2514]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3130]); str->del(strings[1713]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3132]); str->del(strings[1714]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); strings[7250] = str->add(strings[7250]); strings[2224] = str->add(strings[2224]); strings[2224] = str->add(strings[2224]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[7250] = str->add(strings[7250]); strings[4] = str->add(strings[4]); strings[4] = str->add(strings[4]); strings[7250] = str->add(strings[7250]); strings[1925] = str->add(strings[1925]); strings[1925] = str->add(strings[1925]); strings[7250] = str->add(strings[7250]); strings[2494] = str->add(strings[2494]); strings[2494] = str->add(strings[2494]); strings[7250] = str->add(strings[7250]); strings[2514] = str->add(strings[2514]); strings[2514] = str->add(strings[2514]); strings[7250] = str->add(strings[7250]); strings[2536] = str->add(strings[2536]); strings[2536] = str->add(strings[2536]); str->del(strings[64]); str->del(strings[2913]); strings[64] = str->add(strings[64]); strings[3021] = str->add(strings[3021]); strings[7251] = str->add("font"); strings[7252] = str->add("font_fallbacks"); strings[7253] = str->add("font_size"); strings[7254] = str->add("font_source"); strings[7255] = str->add("color"); strings[7256] = str->add("underline_color"); strings[7257] = str->add("underline2_color"); strings[7258] = str->add("outline_color"); strings[7259] = str->add("shadow_color"); strings[7260] = str->add("glow_color"); strings[7261] = str->add("glow2_color"); strings[7262] = str->add("backing_color"); strings[7263] = str->add("strikethrough_color"); strings[7264] = str->add("align"); strings[7265] = str->add("valign"); strings[7266] = str->add("wrap"); strings[7267] = str->add("left_margin"); strings[7268] = str->add("right_margin"); strings[7269] = str->add("underline"); strings[7270] = str->add("strikethrough"); strings[7271] = str->add("backing"); strings[7272] = str->add("style"); strings[7273] = str->add("tabstops"); strings[7264] = str->add(strings[7264]); strings[7274] = str->add("center"); str->del(strings[7264]); str->del(strings[7274]); strings[7255] = str->add(strings[7255]); strings[7275] = str->add("#000"); str->del(strings[7255]); str->del(strings[7275]); strings[7272] = str->add(strings[7272]); strings[7276] = str->add("shadow"); str->del(strings[7272]); str->del(strings[7276]); strings[7259] = str->add(strings[7259]); strings[7277] = str->add("#ffffff80"); str->del(strings[7259]); str->del(strings[7277]); strings[7266] = str->add(strings[7266]); strings[7278] = str->add("word"); str->del(strings[7266]); str->del(strings[7278]); strings[7254] = str->add(strings[7254]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[7254]); str->del(strings[469]); strings[7253] = str->add(strings[7253]); strings[7279] = str->add("10.000000"); str->del(strings[7253]); str->del(strings[7279]); strings[7251] = str->add(strings[7251]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[7251]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[7272] = str->add(strings[7272]); strings[7280] = str->add("glow"); str->del(strings[7272]); str->del(strings[7280]); strings[7255] = str->add(strings[7255]); strings[7281] = str->add("#fff"); str->del(strings[7255]); str->del(strings[7281]); strings[7261] = str->add(strings[7261]); strings[7282] = str->add("#fe87"); str->del(strings[7261]); str->del(strings[7282]); strings[7260] = str->add(strings[7260]); strings[7283] = str->add("#fa14"); str->del(strings[7260]); str->del(strings[7283]); strings[7251] = str->add(strings[7251]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[7251]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[7272] = str->add(strings[7272]); strings[7284] = str->add("glow"); str->del(strings[7272]); str->del(strings[7284]); strings[7255] = str->add(strings[7255]); strings[7285] = str->add("#fff"); str->del(strings[7255]); str->del(strings[7285]); strings[7261] = str->add(strings[7261]); strings[7286] = str->add("#fe87"); str->del(strings[7261]); str->del(strings[7286]); strings[7260] = str->add(strings[7260]); strings[7287] = str->add("#fa14"); str->del(strings[7260]); str->del(strings[7287]); strings[7251] = str->add(strings[7251]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[7251]); str->del(strings[471]); str->del(strings[7251]); str->del(strings[7252]); str->del(strings[7253]); str->del(strings[7254]); str->del(strings[7255]); str->del(strings[7256]); str->del(strings[7257]); str->del(strings[7258]); str->del(strings[7259]); str->del(strings[7260]); str->del(strings[7261]); str->del(strings[7262]); str->del(strings[7263]); str->del(strings[7264]); str->del(strings[7265]); str->del(strings[7266]); str->del(strings[7267]); str->del(strings[7268]); str->del(strings[7269]); str->del(strings[7270]); str->del(strings[7271]); str->del(strings[7272]); str->del(strings[7273]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[7288] = str->add("font"); strings[7289] = str->add("font_fallbacks"); strings[7290] = str->add("font_size"); strings[7291] = str->add("font_source"); strings[7292] = str->add("color"); strings[7293] = str->add("underline_color"); strings[7294] = str->add("underline2_color"); strings[7295] = str->add("outline_color"); strings[7296] = str->add("shadow_color"); strings[7297] = str->add("glow_color"); strings[7298] = str->add("glow2_color"); strings[7299] = str->add("backing_color"); strings[7300] = str->add("strikethrough_color"); strings[7301] = str->add("align"); strings[7302] = str->add("valign"); strings[7303] = str->add("wrap"); strings[7304] = str->add("left_margin"); strings[7305] = str->add("right_margin"); strings[7306] = str->add("underline"); strings[7307] = str->add("strikethrough"); strings[7308] = str->add("backing"); strings[7309] = str->add("style"); strings[7310] = str->add("tabstops"); strings[7301] = str->add(strings[7301]); strings[7311] = str->add("center"); str->del(strings[7301]); str->del(strings[7311]); strings[7292] = str->add(strings[7292]); strings[7312] = str->add("#000"); str->del(strings[7292]); str->del(strings[7312]); strings[7309] = str->add(strings[7309]); strings[7313] = str->add("shadow"); str->del(strings[7309]); str->del(strings[7313]); strings[7296] = str->add(strings[7296]); strings[7314] = str->add("#ffffff80"); str->del(strings[7296]); str->del(strings[7314]); strings[7303] = str->add(strings[7303]); strings[7315] = str->add("word"); str->del(strings[7303]); str->del(strings[7315]); strings[7291] = str->add(strings[7291]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[7291]); str->del(strings[469]); strings[7290] = str->add(strings[7290]); strings[7316] = str->add("10.000000"); str->del(strings[7290]); str->del(strings[7316]); strings[7288] = str->add(strings[7288]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[7288]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[7309] = str->add(strings[7309]); strings[7317] = str->add("soft_shadow"); str->del(strings[7309]); str->del(strings[7317]); strings[7292] = str->add(strings[7292]); strings[7318] = str->add("#fff"); str->del(strings[7292]); str->del(strings[7318]); strings[7296] = str->add(strings[7296]); strings[7319] = str->add("#00000020"); str->del(strings[7296]); str->del(strings[7319]); strings[7290] = str->add(strings[7290]); strings[7320] = str->add("12.000000"); str->del(strings[7290]); str->del(strings[7320]); strings[7288] = str->add(strings[7288]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[7288]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[7288]); str->del(strings[7289]); str->del(strings[7290]); str->del(strings[7291]); str->del(strings[7292]); str->del(strings[7293]); str->del(strings[7294]); str->del(strings[7295]); str->del(strings[7296]); str->del(strings[7297]); str->del(strings[7298]); str->del(strings[7299]); str->del(strings[7300]); str->del(strings[7301]); str->del(strings[7302]); str->del(strings[7303]); str->del(strings[7304]); str->del(strings[7305]); str->del(strings[7306]); str->del(strings[7307]); str->del(strings[7308]); str->del(strings[7309]); str->del(strings[7310]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); strings[1932] = str->add(strings[1932]); strings[7321] = str->add("go_activeb27"); strings[7322] = str->add("program,start"); strings[7323] = str->add("go_activec27"); strings[1932] = str->add(strings[1932]); strings[7324] = str->add("go_activeb3"); strings[7322] = str->add(strings[7322]); strings[7325] = str->add("go_activec3"); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7249]); str->del(strings[1841]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[7250]); str->del(strings[1932]); str->del(strings[7321]); str->del(strings[7322]); str->del(strings[7323]); str->del(strings[1932]); str->del(strings[7324]); str->del(strings[7322]); str->del(strings[7325]); strings[7326] = str->add("e,action,mouse,move"); strings[7327] = str->add("e"); strings[7326] = str->add(strings[7326]); strings[7327] = str->add(strings[7327]); str->del(strings[7326]); str->del(strings[7327]); str->del(strings[7326]); str->del(strings[7327]); strings[7328] = str->add("font"); strings[7329] = str->add("font_fallbacks"); strings[7330] = str->add("font_size"); strings[7331] = str->add("font_source"); strings[7332] = str->add("color"); strings[7333] = str->add("underline_color"); strings[7334] = str->add("underline2_color"); strings[7335] = str->add("outline_color"); strings[7336] = str->add("shadow_color"); strings[7337] = str->add("glow_color"); strings[7338] = str->add("glow2_color"); strings[7339] = str->add("backing_color"); strings[7340] = str->add("strikethrough_color"); strings[7341] = str->add("align"); strings[7342] = str->add("valign"); strings[7343] = str->add("wrap"); strings[7344] = str->add("left_margin"); strings[7345] = str->add("right_margin"); strings[7346] = str->add("underline"); strings[7347] = str->add("strikethrough"); strings[7348] = str->add("backing"); strings[7349] = str->add("style"); strings[7350] = str->add("tabstops"); strings[7341] = str->add(strings[7341]); strings[7351] = str->add("center"); str->del(strings[7341]); str->del(strings[7351]); strings[7332] = str->add(strings[7332]); strings[7352] = str->add("#000"); str->del(strings[7332]); str->del(strings[7352]); strings[7349] = str->add(strings[7349]); strings[7353] = str->add("shadow"); str->del(strings[7349]); str->del(strings[7353]); strings[7336] = str->add(strings[7336]); strings[7354] = str->add("#ffffff80"); str->del(strings[7336]); str->del(strings[7354]); strings[7343] = str->add(strings[7343]); strings[7355] = str->add("word"); str->del(strings[7343]); str->del(strings[7355]); strings[7331] = str->add(strings[7331]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[7331]); str->del(strings[469]); strings[7330] = str->add(strings[7330]); strings[7356] = str->add("10.000000"); str->del(strings[7330]); str->del(strings[7356]); strings[7328] = str->add(strings[7328]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[7328]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[7349] = str->add(strings[7349]); strings[7357] = str->add("soft_shadow"); str->del(strings[7349]); str->del(strings[7357]); strings[7332] = str->add(strings[7332]); strings[7358] = str->add("#fff"); str->del(strings[7332]); str->del(strings[7358]); strings[7336] = str->add(strings[7336]); strings[7359] = str->add("#00000020"); str->del(strings[7336]); str->del(strings[7359]); strings[7330] = str->add(strings[7330]); strings[7360] = str->add("12.000000"); str->del(strings[7330]); str->del(strings[7360]); strings[7328] = str->add(strings[7328]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[7328]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[7328]); str->del(strings[7329]); str->del(strings[7330]); str->del(strings[7331]); str->del(strings[7332]); str->del(strings[7333]); str->del(strings[7334]); str->del(strings[7335]); str->del(strings[7336]); str->del(strings[7337]); str->del(strings[7338]); str->del(strings[7339]); str->del(strings[7340]); str->del(strings[7341]); str->del(strings[7342]); str->del(strings[7343]); str->del(strings[7344]); str->del(strings[7345]); str->del(strings[7346]); str->del(strings[7347]); str->del(strings[7348]); str->del(strings[7349]); str->del(strings[7350]); str->del(strings[7]); str->del(strings[2343]); strings[7] = str->add(strings[7]); strings[2353] = str->add(strings[2353]); strings[7361] = str->add("e,action,mouse,move"); strings[7362] = str->add("e"); strings[7361] = str->add(strings[7361]); strings[7362] = str->add(strings[7362]); strings[7361] = str->add(strings[7361]); strings[7362] = str->add(strings[7362]); strings[7361] = str->add(strings[7361]); strings[7362] = str->add(strings[7362]); str->del(strings[7361]); str->del(strings[7362]); str->del(strings[7361]); str->del(strings[7362]); str->del(strings[7361]); str->del(strings[7362]); str->del(strings[7361]); str->del(strings[7362]); strings[7363] = str->add("e,action,mouse,move"); strings[7364] = str->add("e"); str->del(strings[7363]); str->del(strings[7364]); strings[1932] = str->add(strings[1932]); strings[7365] = str->add("go_activec24"); strings[7366] = str->add("program,start"); strings[7367] = str->add("go_activeb24"); strings[1932] = str->add(strings[1932]); strings[7368] = str->add("go_activec6"); strings[7366] = str->add(strings[7366]); strings[7369] = str->add("go_activeb6"); strings[1932] = str->add(strings[1932]); strings[7370] = str->add("unsel"); str->del(strings[1932]); str->del(strings[7365]); str->del(strings[7366]); str->del(strings[7367]); str->del(strings[1932]); str->del(strings[7368]); str->del(strings[7366]); str->del(strings[7369]); str->del(strings[1932]); str->del(strings[7370]); strings[7371] = str->add("e,action,mouse,move"); strings[7372] = str->add("e"); strings[7371] = str->add(strings[7371]); strings[7372] = str->add(strings[7372]); str->del(strings[7371]); str->del(strings[7372]); str->del(strings[7371]); str->del(strings[7372]); strings[7373] = str->add("e,action,mouse,move"); strings[7374] = str->add("e"); str->del(strings[7373]); str->del(strings[7374]); strings[7375] = str->add("e,action,mouse,move"); strings[7376] = str->add("e"); str->del(strings[7375]); str->del(strings[7376]); str->del(strings[7]); str->del(strings[2353]); strings[7] = str->add(strings[7]); strings[2363] = str->add(strings[2363]); strings[7377] = str->add("e,action,mouse,move"); strings[7378] = str->add("e"); str->del(strings[7377]); str->del(strings[7378]); strings[1932] = str->add(strings[1932]); strings[1847] = str->add(strings[1847]); strings[7379] = str->add("program,start"); strings[1848] = str->add(strings[1848]); strings[1932] = str->add(strings[1932]); strings[1848] = str->add(strings[1848]); strings[7379] = str->add(strings[7379]); strings[1847] = str->add(strings[1847]); str->del(strings[1932]); str->del(strings[1847]); str->del(strings[7379]); str->del(strings[1848]); str->del(strings[1932]); str->del(strings[1848]); str->del(strings[7379]); str->del(strings[1847]); str->del(strings[7]); str->del(strings[2363]); strings[7] = str->add(strings[7]); strings[2383] = str->add(strings[2383]); strings[7380] = str->add("e,action,mouse,move"); strings[7381] = str->add("e"); str->del(strings[7380]); str->del(strings[7381]); strings[7382] = str->add("e,action,mouse,move"); strings[7383] = str->add("e"); str->del(strings[7382]); str->del(strings[7383]); strings[1932] = str->add(strings[1932]); strings[7384] = str->add("sel"); str->del(strings[1932]); str->del(strings[7384]); strings[7385] = str->add("e,action,mouse,move"); strings[7386] = str->add("e"); strings[7385] = str->add(strings[7385]); strings[7386] = str->add(strings[7386]); str->del(strings[7385]); str->del(strings[7386]); str->del(strings[7385]); str->del(strings[7386]); strings[7387] = str->add("e,action,mouse,move"); strings[7388] = str->add("e"); str->del(strings[7387]); str->del(strings[7388]); strings[7389] = str->add("e,action,mouse,move"); strings[7390] = str->add("e"); str->del(strings[7389]); str->del(strings[7390]); strings[1932] = str->add(strings[1932]); strings[7391] = str->add("go_activec23"); strings[7392] = str->add("program,start"); strings[7393] = str->add("go_activeb23"); strings[1932] = str->add(strings[1932]); strings[7394] = str->add("go_activec7"); strings[7392] = str->add(strings[7392]); strings[7395] = str->add("go_activeb7"); strings[1932] = str->add(strings[1932]); strings[7396] = str->add("go_activeb26"); strings[7392] = str->add(strings[7392]); strings[7397] = str->add("go_activec26"); strings[1932] = str->add(strings[1932]); strings[7398] = str->add("go_activeb4"); strings[7392] = str->add(strings[7392]); strings[7399] = str->add("go_activec4"); strings[1932] = str->add(strings[1932]); strings[7400] = str->add("sel"); str->del(strings[1932]); str->del(strings[7391]); str->del(strings[7392]); str->del(strings[7393]); str->del(strings[1932]); str->del(strings[7394]); str->del(strings[7392]); str->del(strings[7395]); str->del(strings[1932]); str->del(strings[7396]); str->del(strings[7392]); str->del(strings[7397]); str->del(strings[1932]); str->del(strings[7398]); str->del(strings[7392]); str->del(strings[7399]); str->del(strings[1932]); str->del(strings[7400]); str->del(strings[7]); str->del(strings[2383]); strings[7] = str->add(strings[7]); strings[2404] = str->add(strings[2404]); strings[7401] = str->add("e,action,mouse,move"); strings[7402] = str->add("e"); strings[7401] = str->add(strings[7401]); strings[7402] = str->add(strings[7402]); str->del(strings[7401]); str->del(strings[7402]); str->del(strings[7401]); str->del(strings[7402]); strings[7403] = str->add("e,action,mouse,move"); strings[7404] = str->add("e"); str->del(strings[7403]); str->del(strings[7404]); strings[7405] = str->add("e,action,mouse,move"); strings[7406] = str->add("e"); str->del(strings[7405]); str->del(strings[7406]); strings[1932] = str->add(strings[1932]); strings[7407] = str->add("unsel"); str->del(strings[1932]); str->del(strings[7407]); strings[7408] = str->add("e,action,mouse,move"); strings[7409] = str->add("e"); strings[7408] = str->add(strings[7408]); strings[7409] = str->add(strings[7409]); str->del(strings[7408]); str->del(strings[7409]); str->del(strings[7408]); str->del(strings[7409]); strings[7410] = str->add("e,action,mouse,move"); strings[7411] = str->add("e"); str->del(strings[7410]); str->del(strings[7411]); strings[7412] = str->add("e,action,mouse,move"); strings[7413] = str->add("e"); str->del(strings[7412]); str->del(strings[7413]); str->del(strings[7]); str->del(strings[2404]); strings[7] = str->add(strings[7]); strings[2416] = str->add(strings[2416]); strings[7414] = str->add("e,action,mouse,move"); strings[7415] = str->add("e"); str->del(strings[7414]); str->del(strings[7415]); strings[7416] = str->add("e,action,mouse,move"); strings[7417] = str->add("e"); str->del(strings[7416]); str->del(strings[7417]); strings[7418] = str->add("e,action,mouse,move"); strings[7419] = str->add("e"); str->del(strings[7418]); str->del(strings[7419]); strings[7420] = str->add("e,action,mouse,move"); strings[7421] = str->add("e"); strings[7422] = str->add("e,state,unselected"); strings[7421] = str->add(strings[7421]); strings[7422] = str->add(strings[7422]); strings[7421] = str->add(strings[7421]); strings[7422] = str->add(strings[7422]); strings[7421] = str->add(strings[7421]); strings[7422] = str->add(strings[7422]); strings[7421] = str->add(strings[7421]); strings[7422] = str->add(strings[7422]); strings[7421] = str->add(strings[7421]); strings[7422] = str->add(strings[7422]); strings[7421] = str->add(strings[7421]); strings[7423] = str->add("e,state,selected"); strings[7421] = str->add(strings[7421]); strings[7423] = str->add(strings[7423]); strings[7421] = str->add(strings[7421]); strings[7423] = str->add(strings[7423]); strings[7421] = str->add(strings[7421]); strings[7423] = str->add(strings[7423]); strings[7421] = str->add(strings[7421]); strings[7423] = str->add(strings[7423]); strings[7421] = str->add(strings[7421]); strings[7420] = str->add(strings[7420]); strings[7421] = str->add(strings[7421]); str->del(strings[7420]); str->del(strings[7421]); strings[7424] = str->add("program,start"); strings[7425] = str->add("unsel"); str->del(strings[7422]); str->del(strings[7421]); str->del(strings[7422]); str->del(strings[7421]); strings[7424] = str->add(strings[7424]); strings[7425] = str->add(strings[7425]); str->del(strings[7422]); str->del(strings[7421]); strings[7424] = str->add(strings[7424]); strings[7425] = str->add(strings[7425]); strings[1932] = str->add(strings[1932]); strings[7425] = str->add(strings[7425]); str->del(strings[7422]); str->del(strings[7421]); str->del(strings[7422]); str->del(strings[7421]); str->del(strings[7422]); str->del(strings[7421]); strings[7424] = str->add(strings[7424]); strings[7426] = str->add("sel"); str->del(strings[7423]); str->del(strings[7421]); str->del(strings[7423]); str->del(strings[7421]); strings[7424] = str->add(strings[7424]); strings[7426] = str->add(strings[7426]); str->del(strings[7423]); str->del(strings[7421]); str->del(strings[7423]); str->del(strings[7421]); str->del(strings[7423]); str->del(strings[7421]); str->del(strings[7420]); str->del(strings[7421]); str->del(strings[7424]); str->del(strings[7425]); str->del(strings[7424]); str->del(strings[7425]); str->del(strings[7424]); str->del(strings[7425]); str->del(strings[1932]); str->del(strings[7425]); str->del(strings[7424]); str->del(strings[7426]); str->del(strings[7424]); str->del(strings[7426]); str->del(strings[64]); str->del(strings[3021]); strings[64] = str->add(strings[64]); strings[2913] = str->add(strings[2913]); strings[7427] = str->add("e,action,mouse,move"); strings[7428] = str->add("e"); str->del(strings[7427]); str->del(strings[7428]); strings[7429] = str->add("e,action,mouse,move"); strings[7430] = str->add("e"); str->del(strings[7429]); str->del(strings[7430]); str->del(strings[7]); str->del(strings[2416]); strings[7] = str->add(strings[7]); strings[2426] = str->add(strings[2426]); strings[7431] = str->add("e,action,mouse,move"); strings[7432] = str->add("e"); strings[7433] = str->add("e,state,unselected"); strings[7432] = str->add(strings[7432]); strings[7433] = str->add(strings[7433]); strings[7432] = str->add(strings[7432]); strings[7433] = str->add(strings[7433]); strings[7432] = str->add(strings[7432]); strings[7433] = str->add(strings[7433]); strings[7432] = str->add(strings[7432]); strings[7433] = str->add(strings[7433]); strings[7432] = str->add(strings[7432]); strings[7434] = str->add("e,state,selected"); strings[7432] = str->add(strings[7432]); strings[7434] = str->add(strings[7434]); strings[7432] = str->add(strings[7432]); strings[7434] = str->add(strings[7434]); strings[7432] = str->add(strings[7432]); strings[7434] = str->add(strings[7434]); strings[7432] = str->add(strings[7432]); strings[7434] = str->add(strings[7434]); strings[7432] = str->add(strings[7432]); strings[7431] = str->add(strings[7431]); strings[7432] = str->add(strings[7432]); str->del(strings[7431]); str->del(strings[7432]); strings[1932] = str->add(strings[1932]); strings[7435] = str->add("sel"); strings[7436] = str->add("program,start"); strings[7437] = str->add("unsel"); str->del(strings[7433]); str->del(strings[7432]); str->del(strings[7433]); str->del(strings[7432]); strings[1932] = str->add(strings[1932]); strings[7435] = str->add(strings[7435]); strings[7436] = str->add(strings[7436]); strings[7437] = str->add(strings[7437]); str->del(strings[7433]); str->del(strings[7432]); str->del(strings[7433]); str->del(strings[7432]); str->del(strings[7433]); str->del(strings[7432]); strings[7436] = str->add(strings[7436]); strings[7435] = str->add(strings[7435]); str->del(strings[7434]); str->del(strings[7432]); str->del(strings[7434]); str->del(strings[7432]); strings[7436] = str->add(strings[7436]); strings[7435] = str->add(strings[7435]); str->del(strings[7434]); str->del(strings[7432]); str->del(strings[7434]); str->del(strings[7432]); str->del(strings[7434]); str->del(strings[7432]); str->del(strings[7431]); str->del(strings[7432]); str->del(strings[1932]); str->del(strings[7435]); str->del(strings[7436]); str->del(strings[7437]); str->del(strings[1932]); str->del(strings[7435]); str->del(strings[7436]); str->del(strings[7437]); str->del(strings[7436]); str->del(strings[7435]); str->del(strings[7436]); str->del(strings[7435]); strings[7438] = str->add("e,action,mouse,move"); strings[7439] = str->add("e"); str->del(strings[7438]); str->del(strings[7439]); strings[7440] = str->add("e,action,mouse,move"); strings[7441] = str->add("e"); str->del(strings[7440]); str->del(strings[7441]); strings[7442] = str->add("e,action,mouse,move"); strings[7443] = str->add("e"); strings[7442] = str->add(strings[7442]); strings[7443] = str->add(strings[7443]); str->del(strings[7442]); str->del(strings[7443]); str->del(strings[7442]); str->del(strings[7443]); strings[7444] = str->add("e,action,mouse,move"); strings[7445] = str->add("e"); str->del(strings[7444]); str->del(strings[7445]); strings[7446] = str->add("e,action,mouse,move"); strings[7447] = str->add("e"); str->del(strings[7446]); str->del(strings[7447]); str->del(strings[7]); str->del(strings[2426]); strings[7] = str->add(strings[7]); strings[2435] = str->add(strings[2435]); strings[7448] = str->add("e,action,mouse,move"); strings[7449] = str->add("e"); strings[7450] = str->add("e,state,unselected"); strings[7449] = str->add(strings[7449]); strings[7450] = str->add(strings[7450]); strings[7449] = str->add(strings[7449]); strings[7450] = str->add(strings[7450]); strings[7449] = str->add(strings[7449]); strings[7450] = str->add(strings[7450]); strings[7449] = str->add(strings[7449]); strings[7450] = str->add(strings[7450]); strings[7449] = str->add(strings[7449]); strings[7451] = str->add("e,state,selected"); strings[7449] = str->add(strings[7449]); strings[7451] = str->add(strings[7451]); strings[7449] = str->add(strings[7449]); strings[7451] = str->add(strings[7451]); strings[7449] = str->add(strings[7449]); strings[7451] = str->add(strings[7451]); strings[7449] = str->add(strings[7449]); strings[7451] = str->add(strings[7451]); strings[7449] = str->add(strings[7449]); strings[7448] = str->add(strings[7448]); strings[7449] = str->add(strings[7449]); str->del(strings[7448]); str->del(strings[7449]); strings[1932] = str->add(strings[1932]); strings[7452] = str->add("sel"); strings[7453] = str->add("program,start"); strings[7454] = str->add("unsel"); str->del(strings[7450]); str->del(strings[7449]); str->del(strings[7450]); str->del(strings[7449]); strings[1932] = str->add(strings[1932]); strings[7452] = str->add(strings[7452]); strings[7453] = str->add(strings[7453]); strings[7454] = str->add(strings[7454]); str->del(strings[7450]); str->del(strings[7449]); str->del(strings[7450]); str->del(strings[7449]); str->del(strings[7450]); str->del(strings[7449]); strings[7453] = str->add(strings[7453]); strings[7452] = str->add(strings[7452]); str->del(strings[7451]); str->del(strings[7449]); str->del(strings[7451]); str->del(strings[7449]); strings[7453] = str->add(strings[7453]); strings[7452] = str->add(strings[7452]); str->del(strings[7451]); str->del(strings[7449]); str->del(strings[7451]); str->del(strings[7449]); str->del(strings[7451]); str->del(strings[7449]); str->del(strings[7448]); str->del(strings[7449]); str->del(strings[1932]); str->del(strings[7452]); str->del(strings[7453]); str->del(strings[7454]); str->del(strings[1932]); str->del(strings[7452]); str->del(strings[7453]); str->del(strings[7454]); str->del(strings[7453]); str->del(strings[7452]); str->del(strings[7453]); str->del(strings[7452]); strings[7455] = str->add("e,action,mouse,move"); strings[7456] = str->add("e"); str->del(strings[7455]); str->del(strings[7456]); strings[7457] = str->add("e,action,mouse,move"); strings[7458] = str->add("e"); strings[7459] = str->add("e,state,unselected"); strings[7458] = str->add(strings[7458]); strings[7459] = str->add(strings[7459]); strings[7458] = str->add(strings[7458]); strings[7459] = str->add(strings[7459]); strings[7458] = str->add(strings[7458]); strings[7459] = str->add(strings[7459]); strings[7458] = str->add(strings[7458]); strings[7459] = str->add(strings[7459]); strings[7458] = str->add(strings[7458]); strings[7460] = str->add("e,state,selected"); strings[7458] = str->add(strings[7458]); strings[7460] = str->add(strings[7460]); strings[7458] = str->add(strings[7458]); strings[7460] = str->add(strings[7460]); strings[7458] = str->add(strings[7458]); strings[7460] = str->add(strings[7460]); strings[7458] = str->add(strings[7458]); strings[7460] = str->add(strings[7460]); strings[7458] = str->add(strings[7458]); str->del(strings[7457]); str->del(strings[7458]); strings[1932] = str->add(strings[1932]); strings[7461] = str->add("sel"); strings[7462] = str->add("program,start"); strings[7463] = str->add("unsel"); str->del(strings[7459]); str->del(strings[7458]); str->del(strings[7459]); str->del(strings[7458]); strings[1932] = str->add(strings[1932]); strings[7461] = str->add(strings[7461]); strings[7462] = str->add(strings[7462]); strings[7463] = str->add(strings[7463]); str->del(strings[7459]); str->del(strings[7458]); str->del(strings[7459]); str->del(strings[7458]); str->del(strings[7459]); str->del(strings[7458]); strings[7462] = str->add(strings[7462]); strings[7461] = str->add(strings[7461]); str->del(strings[7460]); str->del(strings[7458]); str->del(strings[7460]); str->del(strings[7458]); strings[7462] = str->add(strings[7462]); strings[7461] = str->add(strings[7461]); str->del(strings[7460]); str->del(strings[7458]); str->del(strings[7460]); str->del(strings[7458]); str->del(strings[7460]); str->del(strings[7458]); str->del(strings[1932]); str->del(strings[7461]); str->del(strings[7462]); str->del(strings[7463]); str->del(strings[1932]); str->del(strings[7461]); str->del(strings[7462]); str->del(strings[7463]); str->del(strings[7462]); str->del(strings[7461]); str->del(strings[7462]); str->del(strings[7461]); strings[1932] = str->add(strings[1932]); strings[7464] = str->add("go_activec22"); strings[7465] = str->add("program,start"); strings[7466] = str->add("go_activeb22"); strings[1932] = str->add(strings[1932]); strings[7467] = str->add("go_activec8"); strings[7465] = str->add(strings[7465]); strings[7468] = str->add("go_activeb8"); strings[1932] = str->add(strings[1932]); strings[7469] = str->add("go_activeb25"); strings[7465] = str->add(strings[7465]); strings[7470] = str->add("go_activec25"); strings[1932] = str->add(strings[1932]); strings[7471] = str->add("go_activeb5"); strings[7465] = str->add(strings[7465]); strings[7472] = str->add("go_activec5"); strings[1932] = str->add(strings[1932]); strings[7473] = str->add("e_out"); strings[1932] = str->add(strings[1932]); strings[7474] = str->add("unsel"); str->del(strings[1932]); str->del(strings[7464]); str->del(strings[7465]); str->del(strings[7466]); str->del(strings[1932]); str->del(strings[7467]); str->del(strings[7465]); str->del(strings[7468]); str->del(strings[1932]); str->del(strings[7469]); str->del(strings[7465]); str->del(strings[7470]); str->del(strings[1932]); str->del(strings[7471]); str->del(strings[7465]); str->del(strings[7472]); str->del(strings[1932]); str->del(strings[7473]); str->del(strings[1932]); str->del(strings[7474]); strings[7475] = str->add("e,action,mouse,move"); strings[7476] = str->add("e"); strings[7475] = str->add(strings[7475]); strings[7476] = str->add(strings[7476]); str->del(strings[7475]); str->del(strings[7476]); str->del(strings[7475]); str->del(strings[7476]); strings[7477] = str->add("e,action,mouse,move"); strings[7478] = str->add("e"); str->del(strings[7477]); str->del(strings[7478]); strings[7479] = str->add("e,action,mouse,move"); strings[7480] = str->add("e"); str->del(strings[7479]); str->del(strings[7480]); strings[1932] = str->add(strings[1932]); strings[7481] = str->add("unsel"); str->del(strings[1932]); str->del(strings[7481]); str->del(strings[7]); str->del(strings[2435]); strings[7] = str->add(strings[7]); strings[2448] = str->add(strings[2448]); strings[7482] = str->add("e,action,mouse,move"); strings[7483] = str->add("e"); strings[7484] = str->add("e,state,unselected"); strings[7483] = str->add(strings[7483]); strings[7484] = str->add(strings[7484]); strings[7483] = str->add(strings[7483]); strings[7484] = str->add(strings[7484]); strings[7483] = str->add(strings[7483]); strings[7484] = str->add(strings[7484]); strings[7483] = str->add(strings[7483]); strings[7484] = str->add(strings[7484]); strings[7483] = str->add(strings[7483]); strings[7485] = str->add("e,state,selected"); strings[7483] = str->add(strings[7483]); strings[7485] = str->add(strings[7485]); strings[7483] = str->add(strings[7483]); strings[7485] = str->add(strings[7485]); strings[7483] = str->add(strings[7483]); strings[7485] = str->add(strings[7485]); strings[7483] = str->add(strings[7483]); strings[7485] = str->add(strings[7485]); strings[7483] = str->add(strings[7483]); strings[7482] = str->add(strings[7482]); strings[7483] = str->add(strings[7483]); str->del(strings[7482]); str->del(strings[7483]); strings[1932] = str->add(strings[1932]); strings[7486] = str->add("sel"); strings[7487] = str->add("program,start"); strings[7488] = str->add("unsel"); str->del(strings[7484]); str->del(strings[7483]); str->del(strings[7484]); str->del(strings[7483]); strings[1932] = str->add(strings[1932]); strings[7486] = str->add(strings[7486]); strings[7487] = str->add(strings[7487]); strings[7488] = str->add(strings[7488]); str->del(strings[7484]); str->del(strings[7483]); str->del(strings[7484]); str->del(strings[7483]); str->del(strings[7484]); str->del(strings[7483]); strings[7487] = str->add(strings[7487]); strings[7486] = str->add(strings[7486]); str->del(strings[7485]); str->del(strings[7483]); str->del(strings[7485]); str->del(strings[7483]); strings[7487] = str->add(strings[7487]); strings[7486] = str->add(strings[7486]); str->del(strings[7485]); str->del(strings[7483]); str->del(strings[7485]); str->del(strings[7483]); str->del(strings[7485]); str->del(strings[7483]); str->del(strings[7482]); str->del(strings[7483]); str->del(strings[1932]); str->del(strings[7486]); str->del(strings[7487]); str->del(strings[7488]); str->del(strings[1932]); str->del(strings[7486]); str->del(strings[7487]); str->del(strings[7488]); str->del(strings[7487]); str->del(strings[7486]); str->del(strings[7487]); str->del(strings[7486]); strings[7489] = str->add("e,action,mouse,move"); strings[7490] = str->add("e"); str->del(strings[7489]); str->del(strings[7490]); strings[7491] = str->add("e,action,mouse,move"); strings[7492] = str->add("e"); str->del(strings[7491]); str->del(strings[7492]); strings[7493] = str->add("e,action,mouse,move"); strings[7494] = str->add("e"); str->del(strings[7493]); str->del(strings[7494]); strings[7495] = str->add("e,action,mouse,move"); strings[7496] = str->add("e"); str->del(strings[7495]); str->del(strings[7496]); strings[7497] = str->add("e,action,mouse,move"); strings[7498] = str->add("e"); str->del(strings[7497]); str->del(strings[7498]); strings[7499] = str->add("e,action,mouse,move"); strings[7500] = str->add("e"); str->del(strings[7499]); str->del(strings[7500]); strings[7501] = str->add("e,action,mouse,move"); strings[7502] = str->add("e"); str->del(strings[7501]); str->del(strings[7502]); strings[1932] = str->add(strings[1932]); strings[7503] = str->add("go_activeb24"); strings[7504] = str->add("program,start"); strings[7505] = str->add("go_activec24"); strings[1932] = str->add(strings[1932]); strings[7506] = str->add("go_activeb6"); strings[7504] = str->add(strings[7504]); strings[7507] = str->add("go_activec6"); strings[1932] = str->add(strings[1932]); strings[7508] = str->add("unsel"); strings[1932] = str->add(strings[1932]); strings[7508] = str->add(strings[7508]); str->del(strings[1932]); str->del(strings[7503]); str->del(strings[7504]); str->del(strings[7505]); str->del(strings[1932]); str->del(strings[7506]); str->del(strings[7504]); str->del(strings[7507]); str->del(strings[1932]); str->del(strings[7508]); str->del(strings[1932]); str->del(strings[7508]); str->del(strings[7]); str->del(strings[2448]); strings[7] = str->add(strings[7]); strings[2466] = str->add(strings[2466]); strings[7509] = str->add("e,action,mouse,move"); strings[7510] = str->add("e"); strings[7509] = str->add(strings[7509]); strings[7510] = str->add(strings[7510]); str->del(strings[7509]); str->del(strings[7510]); str->del(strings[7509]); str->del(strings[7510]); strings[7511] = str->add("e,action,mouse,move"); strings[7512] = str->add("e"); str->del(strings[7511]); str->del(strings[7512]); strings[7513] = str->add("e,action,mouse,move"); strings[7514] = str->add("e"); str->del(strings[7513]); str->del(strings[7514]); strings[7515] = str->add("e,action,mouse,move"); strings[7516] = str->add("e"); strings[7515] = str->add(strings[7515]); strings[7516] = str->add(strings[7516]); str->del(strings[7515]); str->del(strings[7516]); str->del(strings[7515]); str->del(strings[7516]); strings[7517] = str->add("e,action,mouse,move"); strings[7518] = str->add("e"); str->del(strings[7517]); str->del(strings[7518]); strings[7519] = str->add("e,action,mouse,move"); strings[7520] = str->add("e"); str->del(strings[7519]); str->del(strings[7520]); strings[1932] = str->add(strings[1932]); strings[7521] = str->add("unsel"); str->del(strings[1932]); str->del(strings[7521]); str->del(strings[7]); str->del(strings[2466]); strings[7] = str->add(strings[7]); strings[2479] = str->add(strings[2479]); strings[7522] = str->add("e,action,mouse,move"); strings[7523] = str->add("e"); strings[7522] = str->add(strings[7522]); strings[7523] = str->add(strings[7523]); str->del(strings[7522]); str->del(strings[7523]); str->del(strings[7522]); str->del(strings[7523]); strings[7524] = str->add("e,action,mouse,move"); strings[7525] = str->add("e"); strings[7526] = str->add("e,state,unselected"); strings[7525] = str->add(strings[7525]); strings[7526] = str->add(strings[7526]); strings[7525] = str->add(strings[7525]); strings[7526] = str->add(strings[7526]); strings[7525] = str->add(strings[7525]); strings[7526] = str->add(strings[7526]); strings[7525] = str->add(strings[7525]); strings[7526] = str->add(strings[7526]); strings[7525] = str->add(strings[7525]); str->del(strings[7524]); str->del(strings[7525]); strings[1932] = str->add(strings[1932]); strings[7527] = str->add("sel"); strings[7528] = str->add("program,start"); strings[7529] = str->add("unsel"); str->del(strings[7526]); str->del(strings[7525]); str->del(strings[7526]); str->del(strings[7525]); strings[1932] = str->add(strings[1932]); strings[7527] = str->add(strings[7527]); strings[7528] = str->add(strings[7528]); strings[7529] = str->add(strings[7529]); str->del(strings[7526]); str->del(strings[7525]); str->del(strings[7526]); str->del(strings[7525]); str->del(strings[7526]); str->del(strings[7525]); str->del(strings[1932]); str->del(strings[7527]); str->del(strings[7528]); str->del(strings[7529]); str->del(strings[1932]); str->del(strings[7527]); str->del(strings[7528]); str->del(strings[7529]); strings[7530] = str->add("e,action,mouse,move"); strings[7531] = str->add("e"); str->del(strings[7530]); str->del(strings[7531]); strings[1932] = str->add(strings[1932]); strings[7532] = str->add("unsel"); str->del(strings[1932]); str->del(strings[7532]); strings[7533] = str->add("e,action,mouse,move"); strings[7534] = str->add("e"); str->del(strings[7533]); str->del(strings[7534]); strings[7535] = str->add("e,action,mouse,move"); strings[7536] = str->add("e"); str->del(strings[7535]); str->del(strings[7536]); strings[7537] = str->add("e,action,mouse,move"); strings[7538] = str->add("e"); str->del(strings[7537]); str->del(strings[7538]); strings[1932] = str->add(strings[1932]); strings[7539] = str->add("go_activec21"); strings[7540] = str->add("program,start"); strings[7541] = str->add("go_activeb21"); strings[1932] = str->add(strings[1932]); strings[7542] = str->add("go_activec9"); strings[7540] = str->add(strings[7540]); strings[7543] = str->add("go_activeb9"); strings[1932] = str->add(strings[1932]); strings[7544] = str->add("unsel"); str->del(strings[1932]); str->del(strings[7539]); str->del(strings[7540]); str->del(strings[7541]); str->del(strings[1932]); str->del(strings[7542]); str->del(strings[7540]); str->del(strings[7543]); str->del(strings[1932]); str->del(strings[7544]); str->del(strings[7]); str->del(strings[2479]); strings[7] = str->add(strings[7]); strings[2489] = str->add(strings[2489]); strings[7545] = str->add("e,action,mouse,move"); strings[7546] = str->add("e"); strings[7545] = str->add(strings[7545]); strings[7546] = str->add(strings[7546]); str->del(strings[7545]); str->del(strings[7546]); str->del(strings[7545]); str->del(strings[7546]); strings[7547] = str->add("e,action,mouse,move"); strings[7548] = str->add("e"); strings[7549] = str->add("e,state,selected"); strings[7548] = str->add(strings[7548]); strings[7549] = str->add(strings[7549]); strings[7548] = str->add(strings[7548]); strings[7549] = str->add(strings[7549]); strings[7548] = str->add(strings[7548]); strings[7549] = str->add(strings[7549]); strings[7548] = str->add(strings[7548]); strings[7549] = str->add(strings[7549]); strings[7548] = str->add(strings[7548]); str->del(strings[7547]); str->del(strings[7548]); strings[7550] = str->add("program,start"); strings[7551] = str->add("sel"); str->del(strings[7549]); str->del(strings[7548]); str->del(strings[7549]); str->del(strings[7548]); strings[7550] = str->add(strings[7550]); strings[7551] = str->add(strings[7551]); str->del(strings[7549]); str->del(strings[7548]); str->del(strings[7549]); str->del(strings[7548]); str->del(strings[7549]); str->del(strings[7548]); str->del(strings[7550]); str->del(strings[7551]); str->del(strings[7550]); str->del(strings[7551]); strings[1932] = str->add(strings[1932]); strings[7552] = str->add("go_activeb23"); strings[7553] = str->add("program,start"); strings[7554] = str->add("go_activec23"); strings[1932] = str->add(strings[1932]); strings[7555] = str->add("go_activeb7"); strings[7553] = str->add(strings[7553]); strings[7556] = str->add("go_activec7"); str->del(strings[1932]); str->del(strings[7552]); str->del(strings[7553]); str->del(strings[7554]); str->del(strings[1932]); str->del(strings[7555]); str->del(strings[7553]); str->del(strings[7556]); strings[1932] = str->add(strings[1932]); strings[7557] = str->add("go_activec1"); strings[7558] = str->add("program,start"); strings[7559] = str->add("go_activeb1"); strings[1932] = str->add(strings[1932]); strings[7560] = str->add("go_activec29"); strings[7558] = str->add(strings[7558]); strings[7561] = str->add("go_activeb29"); strings[1932] = str->add(strings[1932]); strings[7562] = str->add("unsel"); strings[1932] = str->add(strings[1932]); strings[7562] = str->add(strings[7562]); strings[1932] = str->add(strings[1932]); strings[7562] = str->add(strings[7562]); str->del(strings[1932]); str->del(strings[7557]); str->del(strings[7558]); str->del(strings[7559]); str->del(strings[1932]); str->del(strings[7560]); str->del(strings[7558]); str->del(strings[7561]); str->del(strings[1932]); str->del(strings[7562]); str->del(strings[1932]); str->del(strings[7562]); str->del(strings[1932]); str->del(strings[7562]); str->del(strings[7]); str->del(strings[2489]); strings[7] = str->add(strings[7]); strings[2508] = str->add(strings[2508]); strings[1932] = str->add(strings[1932]); strings[7563] = str->add("unsel"); str->del(strings[1932]); str->del(strings[7563]); str->del(strings[7]); str->del(strings[2508]); strings[7] = str->add(strings[7]); strings[2518] = str->add(strings[2518]); strings[7564] = str->add("e,action,mouse,move"); strings[7565] = str->add("e"); str->del(strings[7564]); str->del(strings[7565]); strings[7566] = str->add("e,action,mouse,move"); strings[7567] = str->add("e"); str->del(strings[7566]); str->del(strings[7567]); strings[7568] = str->add("e,action,mouse,move"); strings[7569] = str->add("e"); str->del(strings[7568]); str->del(strings[7569]); str->del(strings[7]); str->del(strings[2518]); strings[7] = str->add(strings[7]); strings[2531] = str->add(strings[2531]); strings[7570] = str->add("e,action,mouse,move"); strings[7571] = str->add("e"); str->del(strings[7570]); str->del(strings[7571]); strings[7572] = str->add("e,action,mouse,move"); strings[7573] = str->add("e"); str->del(strings[7572]); str->del(strings[7573]); strings[7574] = str->add("e,action,mouse,move"); strings[7575] = str->add("e"); str->del(strings[7574]); str->del(strings[7575]); strings[7576] = str->add("e,action,mouse,move"); strings[7577] = str->add("e"); str->del(strings[7576]); str->del(strings[7577]); strings[7578] = str->add("e,action,mouse,move"); strings[7579] = str->add("e"); str->del(strings[7578]); str->del(strings[7579]); strings[1932] = str->add(strings[1932]); strings[7580] = str->add("go_activeb22"); strings[7581] = str->add("program,start"); strings[7582] = str->add("go_activec22"); strings[1932] = str->add(strings[1932]); strings[7583] = str->add("go_activeb8"); strings[7581] = str->add(strings[7581]); strings[7584] = str->add("go_activec8"); strings[1932] = str->add(strings[1932]); strings[7585] = str->add("unsel"); strings[1932] = str->add(strings[1932]); strings[7586] = str->add("sel"); strings[1932] = str->add(strings[1932]); strings[7586] = str->add(strings[7586]); str->del(strings[1932]); str->del(strings[7580]); str->del(strings[7581]); str->del(strings[7582]); str->del(strings[1932]); str->del(strings[7583]); str->del(strings[7581]); str->del(strings[7584]); str->del(strings[1932]); str->del(strings[7585]); str->del(strings[1932]); str->del(strings[7586]); str->del(strings[1932]); str->del(strings[7586]); str->del(strings[7]); str->del(strings[2531]); strings[7] = str->add(strings[7]); strings[2544] = str->add(strings[2544]); strings[1932] = str->add(strings[1932]); strings[7587] = str->add("go_activec28"); strings[7588] = str->add("program,start"); strings[7589] = str->add("go_activeb28"); strings[1932] = str->add(strings[1932]); strings[7590] = str->add("go_activec2"); strings[7588] = str->add(strings[7588]); strings[7591] = str->add("go_activeb2"); str->del(strings[1932]); str->del(strings[7587]); str->del(strings[7588]); str->del(strings[7589]); str->del(strings[1932]); str->del(strings[7590]); str->del(strings[7588]); str->del(strings[7591]); str->del(strings[7]); str->del(strings[2544]); strings[7] = str->add(strings[7]); strings[2561] = str->add(strings[2561]); strings[7592] = str->add("e,action,mouse,move"); strings[7593] = str->add("e"); strings[7594] = str->add("e,action,mouse,down"); strings[7593] = str->add(strings[7593]); str->del(strings[7592]); str->del(strings[7593]); str->del(strings[7594]); str->del(strings[7593]); str->del(strings[7]); str->del(strings[2561]); strings[7] = str->add(strings[7]); strings[3580] = str->add(strings[3580]); strings[7595] = str->add("e,action,mouse,move"); strings[7596] = str->add("e"); strings[7597] = str->add("e,action,mouse,up"); strings[7596] = str->add(strings[7596]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[7598] = str->add("base/theme/configure"); strings[64] = str->add(strings[64]); strings[2602] = str->add(strings[2602]); strings[2602] = str->add(strings[2602]); strings[7599] = str->add("load"); strings[64] = str->add(strings[64]); strings[7600] = str->add("images/230"); strings[7601] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/230"); strings[64] = str->add(strings[64]); strings[7600] = str->add(strings[7600]); strings[64] = str->add(strings[64]); strings[7602] = str->add("images/231"); strings[7603] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/231"); strings[64] = str->add(strings[64]); strings[7602] = str->add(strings[7602]); strings[64] = str->add(strings[64]); strings[7604] = str->add("images/232"); strings[7605] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/232"); strings[64] = str->add(strings[64]); strings[7604] = str->add(strings[7604]); strings[64] = str->add(strings[64]); strings[2915] = str->add(strings[2915]); strings[64] = str->add(strings[64]); strings[2630] = str->add(strings[2630]); strings[2630] = str->add(strings[2630]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[7606] = str->add("Categories"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[7607] = str->add("images/262"); strings[7608] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/262"); strings[64] = str->add(strings[64]); strings[7607] = str->add(strings[7607]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[7606] = str->add(strings[7606]); strings[7606] = str->add(strings[7606]); strings[7606] = str->add(strings[7606]); strings[64] = str->add(strings[64]); strings[7609] = str->add("images/261"); strings[7610] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/261"); strings[64] = str->add(strings[64]); strings[7609] = str->add(strings[7609]); strings[64] = str->add(strings[64]); strings[2614] = str->add(strings[2614]); strings[7599] = str->add(strings[7599]); strings[2945] = str->add(strings[2945]); strings[2946] = str->add(strings[2946]); strings[2945] = str->add(strings[2945]); strings[2947] = str->add(strings[2947]); strings[1841] = str->add(strings[1841]); strings[2948] = str->add(strings[2948]); strings[2949] = str->add(strings[2949]); strings[64] = str->add(strings[64]); strings[2062] = str->add(strings[2062]); strings[64] = str->add(strings[64]); strings[7611] = str->add("images/253"); strings[7612] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/253"); strings[64] = str->add(strings[64]); strings[7611] = str->add(strings[7611]); strings[64] = str->add(strings[64]); strings[2184] = str->add(strings[2184]); strings[7613] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/249"); strings[64] = str->add(strings[64]); strings[2184] = str->add(strings[2184]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[7614] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/251"); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[7615] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/250"); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[64] = str->add(strings[64]); strings[2202] = str->add(strings[2202]); strings[7616] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/246"); strings[64] = str->add(strings[64]); strings[2202] = str->add(strings[2202]); strings[64] = str->add(strings[64]); strings[2194] = str->add(strings[2194]); strings[7617] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/247"); strings[64] = str->add(strings[64]); strings[2194] = str->add(strings[2194]); strings[64] = str->add(strings[64]); strings[7618] = str->add("images/252"); strings[7619] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/252"); strings[64] = str->add(strings[64]); strings[7618] = str->add(strings[7618]); strings[64] = str->add(strings[64]); strings[2184] = str->add(strings[2184]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[64] = str->add(strings[64]); strings[7620] = str->add("images/244"); strings[7621] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/244"); strings[64] = str->add(strings[64]); strings[7620] = str->add(strings[7620]); strings[64] = str->add(strings[64]); strings[2200] = str->add(strings[2200]); strings[7622] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/245"); strings[64] = str->add(strings[64]); strings[2200] = str->add(strings[2200]); strings[7623] = str->add("e,action,hide,hbar"); strings[7596] = str->add(strings[7596]); str->del(strings[7599]); str->del(strings[1841]); strings[7624] = str->add("program,start"); strings[7625] = str->add("sb_hbar_hide"); strings[1932] = str->add(strings[1932]); strings[7625] = str->add(strings[7625]); str->del(strings[7623]); str->del(strings[7596]); strings[7626] = str->add("e,action,hide,vbar"); strings[7596] = str->add(strings[7596]); str->del(strings[7624]); str->del(strings[7625]); str->del(strings[1932]); str->del(strings[7625]); strings[7627] = str->add("program,start"); strings[7628] = str->add("sb_vbar_hide"); strings[1932] = str->add(strings[1932]); strings[7628] = str->add(strings[7628]); str->del(strings[7626]); str->del(strings[7596]); strings[2942] = str->add(strings[2942]); strings[7629] = str->add("resize"); strings[1892] = str->add(strings[1892]); strings[469] = str->add(strings[469]); strings[2758] = str->add(strings[2758]); strings[2758] = str->add(strings[2758]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2615] = str->add(strings[2615]); strings[2615] = str->add(strings[2615]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[1892] = str->add(strings[1892]); strings[64] = str->add(strings[64]); strings[4296] = str->add(strings[4296]); strings[7630] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/254"); strings[64] = str->add(strings[64]); strings[4296] = str->add(strings[4296]); strings[64] = str->add(strings[64]); strings[7631] = str->add("images/255"); strings[7632] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/255"); strings[64] = str->add(strings[64]); strings[7631] = str->add(strings[7631]); strings[64] = str->add(strings[64]); strings[7633] = str->add("images/248"); strings[7634] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/248"); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1892] = str->add(strings[1892]); strings[1892] = str->add(strings[1892]); strings[1892] = str->add(strings[1892]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[7635] = str->add("images/392"); strings[7636] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/392"); strings[469] = str->add(strings[469]); strings[7635] = str->add(strings[7635]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[7637] = str->add("appearance/wallpaper"); strings[2536] = str->add(strings[2536]); strings[1750] = str->add(strings[1750]); strings[7638] = str->add("appearance/theme"); strings[2514] = str->add(strings[2514]); strings[376] = str->add(strings[376]); strings[7639] = str->add("appearance/colors"); strings[215] = str->add(strings[215]); strings[2275] = str->add(strings[2275]); strings[7640] = str->add("appearance/fonts"); strings[2348] = str->add(strings[2348]); strings[2349] = str->add(strings[2349]); strings[7641] = str->add("appearance/borders"); strings[2262] = str->add(strings[2262]); strings[2250] = str->add(strings[2250]); strings[7642] = str->add("appearance/icon_theme"); strings[2358] = str->add(strings[2358]); strings[2359] = str->add(strings[2359]); strings[7643] = str->add("appearance/mouse_cursor"); strings[2443] = str->add(strings[2443]); strings[2444] = str->add(strings[2444]); strings[7644] = str->add("appearance/transitions"); strings[2526] = str->add(strings[2526]); strings[2527] = str->add(strings[2527]); strings[7645] = str->add("appearance/startup"); strings[2502] = str->add(strings[2502]); strings[2503] = str->add(strings[2503]); strings[7646] = str->add("appearance/dropshadow"); strings[1894] = str->add(strings[1894]); strings[1895] = str->add(strings[1895]); strings[2231] = str->add(strings[2231]); strings[469] = str->add(strings[469]); strings[2715] = str->add(strings[2715]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2616] = str->add(strings[2616]); strings[2616] = str->add(strings[2616]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[2231] = str->add(strings[2231]); strings[64] = str->add(strings[64]); strings[7647] = str->add("images/256"); strings[7648] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/256"); strings[64] = str->add(strings[64]); strings[7647] = str->add(strings[7647]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2231] = str->add(strings[2231]); strings[2231] = str->add(strings[2231]); strings[2231] = str->add(strings[2231]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[2890] = str->add(strings[2890]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[7649] = str->add("applications/new_application"); strings[2234] = str->add(strings[2234]); strings[2235] = str->add(strings[2235]); strings[7650] = str->add("applications/ibar_applications"); strings[2237] = str->add(strings[2237]); strings[2238] = str->add(strings[2238]); strings[7651] = str->add("applications/restart_applications"); strings[2240] = str->add(strings[2240]); strings[2241] = str->add(strings[2241]); strings[7652] = str->add("applications/startup_applications"); strings[2243] = str->add(strings[2243]); strings[2244] = str->add(strings[2244]); strings[1670] = str->add(strings[1670]); strings[469] = str->add(strings[469]); strings[2679] = str->add(strings[2679]); strings[2679] = str->add(strings[2679]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2615] = str->add(strings[2615]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[1670] = str->add(strings[1670]); strings[64] = str->add(strings[64]); strings[4296] = str->add(strings[4296]); strings[64] = str->add(strings[64]); strings[7631] = str->add(strings[7631]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1670] = str->add(strings[1670]); strings[1670] = str->add(strings[1670]); strings[1670] = str->add(strings[1670]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[7653] = str->add("images/389"); strings[7654] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/389"); strings[469] = str->add(strings[469]); strings[7653] = str->add(strings[7653]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[7655] = str->add("screen/virtual_desktops"); strings[2297] = str->add(strings[2297]); strings[2298] = str->add(strings[2298]); strings[7656] = str->add("screen/screen_resolution"); strings[2315] = str->add(strings[2315]); strings[2316] = str->add(strings[2316]); strings[7657] = str->add("screen/screen_lock"); strings[2287] = str->add(strings[2287]); strings[2288] = str->add(strings[2288]); strings[7658] = str->add("screen/screen_saver"); strings[2484] = str->add(strings[2484]); strings[2485] = str->add(strings[2485]); strings[7659] = str->add("screen/power_management"); strings[2325] = str->add(strings[2325]); strings[2326] = str->add(strings[2326]); strings[2388] = str->add(strings[2388]); strings[469] = str->add(strings[469]); strings[2757] = str->add(strings[2757]); strings[2757] = str->add(strings[2757]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2616] = str->add(strings[2616]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[2388] = str->add(strings[2388]); strings[64] = str->add(strings[64]); strings[7647] = str->add(strings[7647]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2388] = str->add(strings[2388]); strings[2388] = str->add(strings[2388]); strings[2388] = str->add(strings[2388]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[7660] = str->add("images/391"); strings[7661] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/391"); strings[469] = str->add(strings[469]); strings[7660] = str->add(strings[7660]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[7662] = str->add("keyboard_and_mouse/key_bindings"); strings[2391] = str->add(strings[2391]); strings[2392] = str->add(strings[2392]); strings[7663] = str->add("keyboard_and_mouse/mouse_bindings"); strings[2431] = str->add(strings[2431]); strings[2422] = str->add(strings[2422]); strings[7664] = str->add("keyboard_and_mouse/mouse_acceleration"); strings[2421] = str->add(strings[2421]); strings[2422] = str->add(strings[2422]); strings[2552] = str->add(strings[2552]); strings[469] = str->add(strings[469]); strings[2682] = str->add(strings[2682]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2615] = str->add(strings[2615]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[2552] = str->add(strings[2552]); strings[64] = str->add(strings[64]); strings[4296] = str->add(strings[4296]); strings[64] = str->add(strings[64]); strings[7631] = str->add(strings[7631]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2552] = str->add(strings[2552]); strings[2552] = str->add(strings[2552]); strings[2552] = str->add(strings[2552]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[2896] = str->add(strings[2896]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[7665] = str->add("windows/window_display"); strings[2554] = str->add(strings[2554]); strings[2250] = str->add(strings[2250]); strings[7666] = str->add("windows/window_focus"); strings[2566] = str->add(strings[2566]); strings[2567] = str->add(strings[2567]); strings[7667] = str->add("windows/window_manipulation"); strings[197] = str->add(strings[197]); strings[2921] = str->add(strings[2921]); strings[7668] = str->add("windows/window_list"); strings[2926] = str->add(strings[2926]); strings[2269] = str->add(strings[2269]); strings[2252] = str->add(strings[2252]); strings[469] = str->add(strings[469]); strings[2721] = str->add(strings[2721]); strings[2721] = str->add(strings[2721]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2616] = str->add(strings[2616]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[2252] = str->add(strings[2252]); strings[64] = str->add(strings[64]); strings[7647] = str->add(strings[7647]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2252] = str->add(strings[2252]); strings[2252] = str->add(strings[2252]); strings[2252] = str->add(strings[2252]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[7669] = str->add("images/341"); strings[7670] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/341"); strings[469] = str->add(strings[469]); strings[7669] = str->add(strings[7669]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[7671] = str->add("menus/favorites_menu"); strings[2255] = str->add(strings[2255]); strings[2256] = str->add(strings[2256]); strings[7672] = str->add("menus/menu_settings"); strings[2399] = str->add(strings[2399]); strings[2400] = str->add(strings[2400]); strings[7673] = str->add("menus/client_list_menu"); strings[2268] = str->add(strings[2268]); strings[2269] = str->add(strings[2269]); strings[2368] = str->add(strings[2368]); strings[469] = str->add(strings[469]); strings[2689] = str->add(strings[2689]); strings[2689] = str->add(strings[2689]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2615] = str->add(strings[2615]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[2368] = str->add(strings[2368]); strings[64] = str->add(strings[64]); strings[4296] = str->add(strings[4296]); strings[64] = str->add(strings[64]); strings[7631] = str->add(strings[7631]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2368] = str->add(strings[2368]); strings[2368] = str->add(strings[2368]); strings[2368] = str->add(strings[2368]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[7674] = str->add("images/325"); strings[7675] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/325"); strings[469] = str->add(strings[469]); strings[7674] = str->add(strings[7674]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[7676] = str->add("language/language_settings"); strings[2379] = str->add(strings[2379]); strings[2369] = str->add(strings[2369]); strings[7677] = str->add("language/input_method_settings"); strings[2371] = str->add(strings[2371]); strings[2372] = str->add(strings[2372]); strings[1901] = str->add(strings[1901]); strings[469] = str->add(strings[469]); strings[2756] = str->add(strings[2756]); strings[2756] = str->add(strings[2756]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2616] = str->add(strings[2616]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[1901] = str->add(strings[1901]); strings[64] = str->add(strings[64]); strings[7647] = str->add(strings[7647]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1901] = str->add(strings[1901]); strings[1901] = str->add(strings[1901]); strings[1901] = str->add(strings[1901]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[7678] = str->add("images/390"); strings[7679] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/390"); strings[469] = str->add(strings[469]); strings[7678] = str->add(strings[7678]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[7680] = str->add("advanced/dialogs"); strings[2305] = str->add(strings[2305]); strings[2306] = str->add(strings[2306]); strings[7681] = str->add("advanced/interaction"); strings[2997] = str->add(strings[2997]); strings[2306] = str->add(strings[2306]); strings[7682] = str->add("advanced/performance"); strings[2461] = str->add(strings[2461]); strings[2462] = str->add(strings[2462]); strings[7683] = str->add("advanced/run_command"); strings[2338] = str->add(strings[2338]); strings[2339] = str->add(strings[2339]); strings[7684] = str->add("advanced/search_directories"); strings[2453] = str->add(strings[2453]); strings[2454] = str->add(strings[2454]); strings[7685] = str->add("advanced/profiles"); strings[2474] = str->add(strings[2474]); strings[2475] = str->add(strings[2475]); strings[7686] = str->add("advanced/engine"); strings[2931] = str->add(strings[2931]); strings[2932] = str->add(strings[2932]); strings[7687] = str->add("advanced/battery"); strings[1903] = str->add(strings[1903]); strings[1904] = str->add(strings[1904]); strings[1] = str->add(strings[1]); strings[469] = str->add(strings[469]); strings[2759] = str->add(strings[2759]); strings[2759] = str->add(strings[2759]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2615] = str->add(strings[2615]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[1] = str->add(strings[1]); strings[64] = str->add(strings[64]); strings[4296] = str->add(strings[4296]); strings[64] = str->add(strings[64]); strings[7631] = str->add(strings[7631]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1] = str->add(strings[1]); strings[1] = str->add(strings[1]); strings[1] = str->add(strings[1]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[7688] = str->add("images/393"); strings[7689] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/393"); strings[469] = str->add(strings[469]); strings[7688] = str->add(strings[7688]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[7690] = str->add("extensions/modules"); strings[4] = str->add(strings[4]); strings[5] = str->add(strings[5]); strings[7691] = str->add("extensions/shelves"); strings[2494] = str->add(strings[2494]); strings[2495] = str->add(strings[2495]); strings[7692] = str->add("extensions/pager"); strings[1911] = str->add(strings[1911]); strings[1912] = str->add(strings[1912]); strings[7693] = str->add("extensions/gadman"); strings[1925] = str->add(strings[1925]); strings[1926] = str->add(strings[1926]); strings[2408] = str->add(strings[2408]); strings[469] = str->add(strings[469]); strings[2693] = str->add(strings[2693]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2616] = str->add(strings[2616]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[2408] = str->add(strings[2408]); strings[64] = str->add(strings[64]); strings[7647] = str->add(strings[7647]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2408] = str->add(strings[2408]); strings[2408] = str->add(strings[2408]); strings[2408] = str->add(strings[2408]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[4965] = str->add(strings[4965]); strings[469] = str->add(strings[469]); strings[4967] = str->add(strings[4967]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[7694] = str->add("fileman/fileman"); strings[2408] = str->add(strings[2408]); strings[2409] = str->add(strings[2409]); strings[7695] = str->add("fileman/file_icons"); strings[2411] = str->add(strings[2411]); strings[2412] = str->add(strings[2412]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7696] = str->add("e,action,show,hbar"); strings[7596] = str->add(strings[7596]); str->del(strings[7627]); str->del(strings[7628]); str->del(strings[1932]); str->del(strings[7628]); str->del(strings[7629]); strings[7697] = str->add("program,start"); strings[7698] = str->add("sb_hbar_show"); strings[1932] = str->add(strings[1932]); strings[7698] = str->add(strings[7698]); str->del(strings[7696]); str->del(strings[7596]); strings[7699] = str->add("e,action,show,vbar"); strings[7596] = str->add(strings[7596]); str->del(strings[7697]); str->del(strings[7698]); str->del(strings[1932]); str->del(strings[7698]); strings[7700] = str->add("program,start"); strings[7701] = str->add("sb_vbar_show"); strings[1932] = str->add(strings[1932]); strings[7701] = str->add(strings[7701]); str->del(strings[7699]); str->del(strings[7596]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7702] = str->add("e,action,hide,hbar"); strings[7596] = str->add(strings[7596]); str->del(strings[7700]); str->del(strings[7701]); str->del(strings[1932]); str->del(strings[7701]); str->del(strings[7629]); str->del(strings[7629]); strings[7703] = str->add("program,start"); strings[7704] = str->add("sb_hbar_hide"); strings[1932] = str->add(strings[1932]); strings[7704] = str->add(strings[7704]); str->del(strings[7702]); str->del(strings[7596]); strings[7629] = str->add(strings[7629]); strings[64] = str->add(strings[64]); strings[2630] = str->add(strings[2630]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[7705] = str->add("Items"); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[7607] = str->add(strings[7607]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[7705] = str->add(strings[7705]); strings[7705] = str->add(strings[7705]); strings[7705] = str->add(strings[7705]); strings[64] = str->add(strings[64]); strings[7609] = str->add(strings[7609]); strings[64] = str->add(strings[64]); strings[2614] = str->add(strings[2614]); strings[7599] = str->add(strings[7599]); strings[2945] = str->add(strings[2945]); strings[2946] = str->add(strings[2946]); strings[2945] = str->add(strings[2945]); strings[2947] = str->add(strings[2947]); strings[1841] = str->add(strings[1841]); strings[2948] = str->add(strings[2948]); strings[2949] = str->add(strings[2949]); strings[64] = str->add(strings[64]); strings[2062] = str->add(strings[2062]); strings[64] = str->add(strings[64]); strings[7611] = str->add(strings[7611]); strings[64] = str->add(strings[64]); strings[2184] = str->add(strings[2184]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[64] = str->add(strings[64]); strings[2202] = str->add(strings[2202]); strings[64] = str->add(strings[64]); strings[2194] = str->add(strings[2194]); strings[64] = str->add(strings[64]); strings[7618] = str->add(strings[7618]); strings[64] = str->add(strings[64]); strings[2184] = str->add(strings[2184]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[64] = str->add(strings[64]); strings[7620] = str->add(strings[7620]); strings[64] = str->add(strings[64]); strings[2200] = str->add(strings[2200]); strings[7706] = str->add("e,action,hide,hbar"); strings[7596] = str->add(strings[7596]); str->del(strings[7599]); str->del(strings[1841]); strings[7703] = str->add(strings[7703]); strings[7704] = str->add(strings[7704]); strings[1932] = str->add(strings[1932]); strings[7704] = str->add(strings[7704]); str->del(strings[7706]); str->del(strings[7596]); strings[7707] = str->add("e,action,hide,vbar"); strings[7596] = str->add(strings[7596]); str->del(strings[7703]); str->del(strings[7704]); str->del(strings[1932]); str->del(strings[7704]); strings[7703] = str->add(strings[7703]); strings[7708] = str->add("sb_vbar_hide"); strings[1932] = str->add(strings[1932]); strings[7708] = str->add(strings[7708]); str->del(strings[7707]); str->del(strings[7596]); strings[2942] = str->add(strings[2942]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7709] = str->add("e,action,show,hbar"); strings[7596] = str->add(strings[7596]); str->del(strings[7703]); str->del(strings[7708]); str->del(strings[1932]); str->del(strings[7708]); str->del(strings[7629]); str->del(strings[7629]); strings[7703] = str->add(strings[7703]); strings[7710] = str->add("sb_hbar_show"); strings[1932] = str->add(strings[1932]); strings[7710] = str->add(strings[7710]); str->del(strings[7709]); str->del(strings[7596]); strings[7711] = str->add("e,action,hide,hbar"); strings[7596] = str->add(strings[7596]); str->del(strings[7703]); str->del(strings[7710]); str->del(strings[1932]); str->del(strings[7710]); strings[7703] = str->add(strings[7703]); strings[7704] = str->add(strings[7704]); strings[1932] = str->add(strings[1932]); strings[7704] = str->add(strings[7704]); str->del(strings[7711]); str->del(strings[7596]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[64] = str->add(strings[64]); strings[2613] = str->add(strings[2613]); strings[2613] = str->add(strings[2613]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[7712] = str->add("e,action,click"); strings[1591] = str->add(strings[1591]); strings[1841] = str->add(strings[1841]); strings[7713] = str->add("e,state,text"); strings[7596] = str->add(strings[7596]); str->del(strings[7599]); str->del(strings[1841]); strings[7703] = str->add(strings[7703]); strings[7714] = str->add("text_state"); strings[1932] = str->add(strings[1932]); strings[7714] = str->add(strings[7714]); str->del(strings[7713]); str->del(strings[7596]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1591] = str->add(strings[1591]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[361] = str->add(strings[361]); strings[362] = str->add(strings[362]); strings[361] = str->add(strings[361]); str->del(strings[361]); strings[362] = str->add(strings[362]); str->del(strings[362]); strings[2306] = str->add(strings[2306]); strings[7715] = str->add("e,state,focused"); strings[7596] = str->add(strings[7596]); strings[7716] = str->add("e,state,selected"); strings[7596] = str->add(strings[7596]); strings[469] = str->add(strings[469]); strings[2713] = str->add(strings[2713]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2615] = str->add(strings[2615]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[2536] = str->add(strings[2536]); strings[64] = str->add(strings[64]); strings[4296] = str->add(strings[4296]); strings[64] = str->add(strings[64]); strings[7631] = str->add(strings[7631]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2536] = str->add(strings[2536]); strings[2536] = str->add(strings[2536]); strings[2536] = str->add(strings[2536]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[3096] = str->add(strings[3096]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2680] = str->add(strings[2680]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2616] = str->add(strings[2616]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[2514] = str->add(strings[2514]); strings[64] = str->add(strings[64]); strings[7647] = str->add(strings[7647]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2514] = str->add(strings[2514]); strings[2514] = str->add(strings[2514]); strings[2514] = str->add(strings[2514]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[3094] = str->add(strings[3094]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2681] = str->add(strings[2681]); strings[2681] = str->add(strings[2681]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2615] = str->add(strings[2615]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[215] = str->add(strings[215]); strings[64] = str->add(strings[64]); strings[4296] = str->add(strings[4296]); strings[64] = str->add(strings[64]); strings[7631] = str->add(strings[7631]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[215] = str->add(strings[215]); strings[215] = str->add(strings[215]); strings[215] = str->add(strings[215]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[7717] = str->add("images/318"); strings[7718] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/318"); strings[469] = str->add(strings[469]); strings[7717] = str->add(strings[7717]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2712] = str->add(strings[2712]); strings[2712] = str->add(strings[2712]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2616] = str->add(strings[2616]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[2348] = str->add(strings[2348]); strings[64] = str->add(strings[64]); strings[7647] = str->add(strings[7647]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2348] = str->add(strings[2348]); strings[2348] = str->add(strings[2348]); strings[2348] = str->add(strings[2348]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[7719] = str->add("images/329"); strings[7720] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/329"); strings[469] = str->add(strings[469]); strings[7719] = str->add(strings[7719]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2682] = str->add(strings[2682]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2615] = str->add(strings[2615]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[2262] = str->add(strings[2262]); strings[64] = str->add(strings[64]); strings[4296] = str->add(strings[4296]); strings[64] = str->add(strings[64]); strings[7631] = str->add(strings[7631]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2262] = str->add(strings[2262]); strings[2262] = str->add(strings[2262]); strings[2262] = str->add(strings[2262]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[2896] = str->add(strings[2896]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2714] = str->add(strings[2714]); strings[2714] = str->add(strings[2714]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2616] = str->add(strings[2616]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[2358] = str->add(strings[2358]); strings[64] = str->add(strings[64]); strings[7647] = str->add(strings[7647]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2358] = str->add(strings[2358]); strings[2358] = str->add(strings[2358]); strings[2358] = str->add(strings[2358]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[7721] = str->add("images/316"); strings[7722] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/316"); strings[469] = str->add(strings[469]); strings[7721] = str->add(strings[7721]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2699] = str->add(strings[2699]); strings[2699] = str->add(strings[2699]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2615] = str->add(strings[2615]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[2443] = str->add(strings[2443]); strings[64] = str->add(strings[64]); strings[4296] = str->add(strings[4296]); strings[64] = str->add(strings[64]); strings[7631] = str->add(strings[7631]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2443] = str->add(strings[2443]); strings[2443] = str->add(strings[2443]); strings[2443] = str->add(strings[2443]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[7723] = str->add("images/331"); strings[7724] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/331"); strings[469] = str->add(strings[469]); strings[7723] = str->add(strings[7723]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2716] = str->add(strings[2716]); strings[2716] = str->add(strings[2716]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2616] = str->add(strings[2616]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[2526] = str->add(strings[2526]); strings[64] = str->add(strings[64]); strings[7647] = str->add(strings[7647]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2526] = str->add(strings[2526]); strings[2526] = str->add(strings[2526]); strings[2526] = str->add(strings[2526]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[7725] = str->add("images/332"); strings[7726] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/332"); strings[469] = str->add(strings[469]); strings[7725] = str->add(strings[7725]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2718] = str->add(strings[2718]); strings[2718] = str->add(strings[2718]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2615] = str->add(strings[2615]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[2502] = str->add(strings[2502]); strings[64] = str->add(strings[64]); strings[4296] = str->add(strings[4296]); strings[64] = str->add(strings[64]); strings[7631] = str->add(strings[7631]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[2502] = str->add(strings[2502]); strings[2502] = str->add(strings[2502]); strings[2502] = str->add(strings[2502]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[469] = str->add(strings[469]); strings[7727] = str->add("images/337"); strings[7728] = str->add("/usr/devel/share/enlightenment/data/themes/default.edj//://images/337"); strings[469] = str->add(strings[469]); strings[7727] = str->add(strings[7727]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[1895] = str->add(strings[1895]); strings[3083] = str->add(strings[3083]); strings[1770] = str->add(strings[1770]); strings[7729] = str->add("icon.png"); strings[3083] = str->add(strings[3083]); strings[1895] = str->add(strings[1895]); strings[7730] = str->add("image"); strings[61] = str->add(strings[61]); strings[3083] = str->add(strings[3083]); strings[7599] = str->add(strings[7599]); strings[64] = str->add(strings[64]); strings[2616] = str->add(strings[2616]); strings[64] = str->add(strings[64]); strings[7599] = str->add(strings[7599]); strings[1894] = str->add(strings[1894]); strings[64] = str->add(strings[64]); strings[7647] = str->add(strings[7647]); strings[64] = str->add(strings[64]); strings[7633] = str->add(strings[7633]); str->del(strings[64]); strings[385] = str->add(strings[385]); strings[1894] = str->add(strings[1894]); strings[1894] = str->add(strings[1894]); strings[1894] = str->add(strings[1894]); strings[64] = str->add(strings[64]); strings[2986] = str->add(strings[2986]); strings[64] = str->add(strings[64]); strings[2186] = str->add(strings[2186]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[1841] = str->add(strings[1841]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7629] = str->add(strings[7629]); strings[7731] = str->add("e,action,show,hbar"); strings[7596] = str->add(strings[7596]); str->del(strings[7703]); str->del(strings[7704]); str->del(strings[1932]); str->del(strings[7704]); str->del(strings[7629]); strings[7703] = str->add(strings[7703]); strings[7732] = str->add("sb_hbar_show"); strings[1932] = str->add(strings[1932]); strings[7732] = str->add(strings[7732]); str->del(strings[7731]); str->del(strings[7596]); strings[7733] = str->add("e,action,show,vbar"); strings[7596] = str->add(strings[7596]); str->del(strings[7703]); str->del(strings[7732]); str->del(strings[1932]); str->del(strings[7732]); strings[7703] = str->add(strings[7703]); strings[7734] = str->add("sb_vbar_show"); strings[1932] = str->add(strings[1932]); strings[7734] = str->add(strings[7734]); str->del(strings[7733]); str->del(strings[7596]); strings[7735] = str->add("e,state,unfocused"); strings[7596] = str->add(strings[7596]); str->del(strings[7595]); str->del(strings[7596]); str->del(strings[7597]); str->del(strings[7596]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7703]); str->del(strings[7704]); str->del(strings[1932]); str->del(strings[7704]); str->del(strings[7629]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7703]); str->del(strings[7714]); str->del(strings[1932]); str->del(strings[7714]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7715]); str->del(strings[7596]); strings[7703] = str->add(strings[7703]); strings[7736] = str->add("go_active"); str->del(strings[7716]); str->del(strings[7596]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7599]); str->del(strings[7599]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[1841]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7629]); str->del(strings[7703]); str->del(strings[7734]); str->del(strings[1932]); str->del(strings[7734]); strings[7703] = str->add(strings[7703]); strings[7737] = str->add("off"); str->del(strings[7735]); str->del(strings[7596]); str->del(strings[7703]); str->del(strings[7736]); str->del(strings[7703]); str->del(strings[7737]); strings[7738] = str->add("e,action,mouse,move"); strings[7739] = str->add("e"); strings[7738] = str->add(strings[7738]); strings[7739] = str->add(strings[7739]); str->del(strings[7738]); str->del(strings[7739]); str->del(strings[7738]); str->del(strings[7739]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2686]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[6483]); str->del(strings[6483]); str->del(strings[6483]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2715]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2231]); str->del(strings[2231]); str->del(strings[2231]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2691]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2338]); str->del(strings[2338]); str->del(strings[2338]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2693]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[6484]); str->del(strings[6484]); str->del(strings[6484]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2687]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1619]); str->del(strings[1619]); str->del(strings[1619]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2682]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2552]); str->del(strings[2552]); str->del(strings[2552]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2671]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1712]); str->del(strings[1712]); str->del(strings[1712]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2688]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[6488]); str->del(strings[6488]); str->del(strings[6488]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2634]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2690]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1721]); str->del(strings[1721]); str->del(strings[1721]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2586]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[6482]); str->del(strings[6482]); str->del(strings[6482]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2871]); str->del(strings[6483]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2890]); str->del(strings[2231]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2892]); str->del(strings[2338]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[4965]); str->del(strings[469]); str->del(strings[4967]); str->del(strings[6484]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2894]); str->del(strings[1619]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2896]); str->del(strings[2552]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2898]); str->del(strings[469]); str->del(strings[2900]); str->del(strings[1712]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2902]); str->del(strings[6488]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2904]); str->del(strings[1721]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2913]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[6482]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2688]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2224]); str->del(strings[2224]); str->del(strings[2224]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2582]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2685]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[4]); str->del(strings[4]); str->del(strings[4]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1926]); str->del(strings[3083]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1925]); str->del(strings[1925]); str->del(strings[1925]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2711]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2494]); str->del(strings[2494]); str->del(strings[2494]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2680]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[2514]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2583]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[64]); str->del(strings[2584]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2713]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[2536]); str->del(strings[2536]); str->del(strings[2536]); str->del(strings[64]); str->del(strings[2585]); strings[1933] = str->add(strings[1933]); str->del(strings[1933]); str->del(strings[1842]); str->del(strings[1842]); str->del(strings[64]); str->del(strings[2581]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[2902]); str->del(strings[2224]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2915]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3089]); str->del(strings[4]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[1926]); str->del(strings[1552]); str->del(strings[1925]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3092]); str->del(strings[2494]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3094]); str->del(strings[2514]); str->del(strings[385]); str->del(strings[64]); str->del(strings[2886]); str->del(strings[64]); str->del(strings[2888]); str->del(strings[469]); str->del(strings[3096]); str->del(strings[2536]); str->del(strings[385]); str->del(strings[64]); str->del(strings[1949]); str->del(strings[64]); str->del(strings[1880]); str->del(strings[64]); str->del(strings[1876]); str->del(strings[379]); str->del(strings[64]); str->del(strings[1874]); str->del(strings[361]); str->del(strings[362]); str->del(strings[469]); str->del(strings[2686]); str->del(strings[6483]); str->del(strings[469]); str->del(strings[2715]); str->del(strings[2231]); str->del(strings[469]); str->del(strings[2691]); str->del(strings[2338]); str->del(strings[469]); str->del(strings[2693]); str->del(strings[6484]); str->del(strings[469]); str->del(strings[2687]); str->del(strings[6485]); str->del(strings[469]); str->del(strings[2711]); str->del(strings[2494]); str->del(strings[6486]); str->del(strings[469]); str->del(strings[2687]); str->del(strings[1619]); str->del(strings[469]); str->del(strings[2682]); str->del(strings[2552]); str->del(strings[469]); str->del(strings[2671]); str->del(strings[6487]); str->del(strings[469]); str->del(strings[2680]); str->del(strings[2514]); str->del(strings[469]); str->del(strings[2672]); str->del(strings[1713]); str->del(strings[469]); str->del(strings[2673]); str->del(strings[1714]); str->del(strings[469]); str->del(strings[2671]); str->del(strings[1712]); str->del(strings[469]); str->del(strings[2688]); str->del(strings[6488]); str->del(strings[469]); str->del(strings[2708]); str->del(strings[6640]); str->del(strings[469]); str->del(strings[2677]); str->del(strings[1726]); str->del(strings[469]); str->del(strings[2678]); str->del(strings[6641]); str->del(strings[469]); str->del(strings[2676]); str->del(strings[1724]); str->del(strings[469]); str->del(strings[2675]); str->del(strings[1722]); str->del(strings[469]); str->del(strings[2674]); str->del(strings[6642]); str->del(strings[469]); str->del(strings[2690]); str->del(strings[1721]); str->del(strings[6482]); str->del(strings[469]); str->del(strings[2688]); str->del(strings[2224]); str->del(strings[469]); str->del(strings[2685]); str->del(strings[4]); str->del(strings[1926]); str->del(strings[3083]); str->del(strings[1925]); str->del(strings[469]); str->del(strings[2711]); str->del(strings[2494]); str->del(strings[469]); str->del(strings[2680]); str->del(strings[2514]); str->del(strings[469]); str->del(strings[2713]); str->del(strings[2536]); strings[862] = str->add(strings[862]); strings[64] = str->add(strings[64]); strings[2577] = str->add(strings[2577]); strings[2577] = str->add(strings[2577]); strings[64] = str->add(strings[64]); strings[64] = str->add(strings[64]); strings[7740] = str->add("load"); strings[306] = str->add(strings[306]); strings[7741] = str->add("resize"); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[306] = str->add(strings[306]); strings[306] = str->add(strings[306]); strings[1842] = str->add(strings[1842]); str->del(strings[306]); strings[64] = str->add(strings[64]); strings[1865] = str->add(strings[1865]); strings[64] = str->add(strings[64]); strings[1872] = str->add(strings[1872]); strings[7742] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/4"); strings[64] = str->add(strings[64]); strings[1872] = str->add(strings[1872]); strings[306] = str->add(strings[306]); str->del(strings[306]); strings[64] = str->add(strings[64]); strings[2276] = str->add(strings[2276]); strings[64] = str->add(strings[64]); strings[3259] = str->add(strings[3259]); strings[64] = str->add(strings[64]); strings[3259] = str->add(strings[3259]); strings[64] = str->add(strings[64]); strings[2292] = str->add(strings[2292]); strings[306] = str->add(strings[306]); str->del(strings[306]); strings[306] = str->add(strings[306]); str->del(strings[1842]); strings[306] = str->add(strings[306]); strings[64] = str->add(strings[64]); strings[1880] = str->add(strings[1880]); strings[64] = str->add(strings[64]); strings[3279] = str->add(strings[3279]); strings[64] = str->add(strings[64]); strings[2310] = str->add(strings[2310]); strings[64] = str->add(strings[64]); strings[1876] = str->add(strings[1876]); str->del(strings[64]); strings[379] = str->add(strings[379]); strings[306] = str->add(strings[306]); strings[306] = str->add(strings[306]); strings[306] = str->add(strings[306]); strings[64] = str->add(strings[64]); strings[1874] = str->add(strings[1874]); strings[64] = str->add(strings[64]); strings[1878] = str->add(strings[1878]); strings[7743] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/7"); strings[64] = str->add(strings[64]); strings[1878] = str->add(strings[1878]); strings[2085] = str->add(strings[2085]); strings[2085] = str->add(strings[2085]); strings[7741] = str->add(strings[7741]); strings[1841] = str->add(strings[1841]); strings[7741] = str->add(strings[7741]); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[7740] = str->add(strings[7740]); strings[1841] = str->add(strings[1841]); str->del(strings[306]); strings[306] = str->add(strings[306]); str->del(strings[306]); strings[306] = str->add(strings[306]); str->del(strings[306]); strings[306] = str->add(strings[306]); str->del(strings[306]); strings[306] = str->add(strings[306]); strings[469] = str->add(strings[469]); strings[2902] = str->add(strings[2902]); strings[7741] = str->add(strings[7741]); str->del(strings[190]); str->del(strings[305]); str->del(strings[306]); str->del(strings[193]); strings[190] = str->add(strings[190]); strings[305] = str->add(strings[305]); strings[306] = str->add(strings[306]); strings[193] = str->add(strings[193]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7744] = str->add("e,action,hide,vbar"); strings[7745] = str->add("e"); str->del(strings[7741]); strings[7746] = str->add("program,start"); strings[7747] = str->add("sb_vbar_hide"); strings[1932] = str->add(strings[1932]); strings[7747] = str->add(strings[7747]); str->del(strings[7744]); str->del(strings[7745]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); str->del(strings[1892]); strings[1892] = str->add(strings[1892]); str->del(strings[1892]); strings[1892] = str->add(strings[1892]); str->del(strings[2231]); strings[2231] = str->add(strings[2231]); str->del(strings[2231]); strings[2231] = str->add(strings[2231]); str->del(strings[1670]); strings[1670] = str->add(strings[1670]); str->del(strings[1670]); strings[1670] = str->add(strings[1670]); str->del(strings[2388]); strings[2388] = str->add(strings[2388]); str->del(strings[2388]); strings[2388] = str->add(strings[2388]); str->del(strings[2552]); strings[2552] = str->add(strings[2552]); str->del(strings[2552]); strings[2552] = str->add(strings[2552]); str->del(strings[2252]); strings[2252] = str->add(strings[2252]); str->del(strings[2252]); strings[2252] = str->add(strings[2252]); str->del(strings[2368]); strings[2368] = str->add(strings[2368]); str->del(strings[2368]); strings[2368] = str->add(strings[2368]); str->del(strings[1901]); strings[1901] = str->add(strings[1901]); str->del(strings[1901]); strings[1901] = str->add(strings[1901]); str->del(strings[1]); strings[1] = str->add(strings[1]); str->del(strings[1]); strings[1] = str->add(strings[1]); str->del(strings[2408]); strings[2408] = str->add(strings[2408]); str->del(strings[2408]); strings[2408] = str->add(strings[2408]); strings[7741] = str->add(strings[7741]); strings[7748] = str->add("e,action,hide,hbar"); strings[7749] = str->add("e"); str->del(strings[7741]); strings[7746] = str->add(strings[7746]); strings[7750] = str->add("sb_hbar_hide"); strings[1932] = str->add(strings[1932]); strings[7750] = str->add(strings[7750]); str->del(strings[7748]); str->del(strings[7749]); strings[7751] = str->add("e,action,hide,vbar"); strings[7752] = str->add("e"); str->del(strings[7746]); str->del(strings[7750]); str->del(strings[1932]); str->del(strings[7750]); strings[7746] = str->add(strings[7746]); strings[7747] = str->add(strings[7747]); strings[1932] = str->add(strings[1932]); strings[7747] = str->add(strings[7747]); str->del(strings[7751]); str->del(strings[7752]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[7741] = str->add(strings[7741]); strings[64] = str->add(strings[64]); strings[2198] = str->add(strings[2198]); strings[7753] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/239"); strings[64] = str->add(strings[64]); strings[2198] = str->add(strings[2198]); strings[1591] = str->add(strings[1591]); strings[1591] = str->add(strings[1591]); strings[64] = str->add(strings[64]); strings[2190] = str->add(strings[2190]); strings[7754] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/240"); strings[64] = str->add(strings[64]); strings[2190] = str->add(strings[2190]); strings[64] = str->add(strings[64]); strings[2192] = str->add(strings[2192]); strings[7755] = str->add("/home/cedric/.e/e/themes/b_and_w.edj//://images/241"); strings[64] = str->add(strings[64]); strings[2192] = str->add(strings[2192]); str->del(strings[2536]); strings[2536] = str->add(strings[2536]); str->del(strings[2536]); strings[2536] = str->add(strings[2536]); str->del(strings[2514]); strings[2514] = str->add(strings[2514]); str->del(strings[2514]); strings[2514] = str->add(strings[2514]); str->del(strings[215]); strings[215] = str->add(strings[215]); str->del(strings[215]); strings[215] = str->add(strings[215]); str->del(strings[2348]); strings[2348] = str->add(strings[2348]); str->del(strings[2348]); strings[2348] = str->add(strings[2348]); str->del(strings[2262]); strings[2262] = str->add(strings[2262]); str->del(strings[2262]); strings[2262] = str->add(strings[2262]); str->del(strings[2358]); strings[2358] = str->add(strings[2358]); str->del(strings[2358]); strings[2358] = str->add(strings[2358]); str->del(strings[2443]); strings[2443] = str->add(strings[2443]); str->del(strings[2443]); strings[2443] = str->add(strings[2443]); str->del(strings[2526]); strings[2526] = str->add(strings[2526]); str->del(strings[2526]); strings[2526] = str->add(strings[2526]); str->del(strings[2502]); strings[2502] = str->add(strings[2502]); str->del(strings[2502]); strings[2502] = str->add(strings[2502]); strings[1895] = str->add(strings[1895]); strings[1552] = str->add(strings[1552]); strings[7756] = str->add("/usr/devel/lib/enlightenment/modules/dropshadow/e-module-dropshadow.edj//://images/0"); strings[1895] = str->add(strings[1895]); strings[1552] = str->add(strings[1552]); str->del(strings[1894]); strings[1894] = str->add(strings[1894]); str->del(strings[1894]); strings[1894] = str->add(strings[1894]); strings[7757] = str->add("font"); strings[7758] = str->add("font_fallbacks"); strings[7759] = str->add("font_size"); strings[7760] = str->add("font_source"); strings[7761] = str->add("color"); strings[7762] = str->add("underline_color"); strings[7763] = str->add("underline2_color"); strings[7764] = str->add("outline_color"); strings[7765] = str->add("shadow_color"); strings[7766] = str->add("glow_color"); strings[7767] = str->add("glow2_color"); strings[7768] = str->add("backing_color"); strings[7769] = str->add("strikethrough_color"); strings[7770] = str->add("align"); strings[7771] = str->add("valign"); strings[7772] = str->add("wrap"); strings[7773] = str->add("left_margin"); strings[7774] = str->add("right_margin"); strings[7775] = str->add("underline"); strings[7776] = str->add("strikethrough"); strings[7777] = str->add("backing"); strings[7778] = str->add("style"); strings[7779] = str->add("tabstops"); strings[7770] = str->add(strings[7770]); strings[7780] = str->add("center"); str->del(strings[7770]); str->del(strings[7780]); strings[7761] = str->add(strings[7761]); strings[7781] = str->add("#000"); str->del(strings[7761]); str->del(strings[7781]); strings[7778] = str->add(strings[7778]); strings[7782] = str->add("shadow"); str->del(strings[7778]); str->del(strings[7782]); strings[7765] = str->add(strings[7765]); strings[7783] = str->add("#ffffff80"); str->del(strings[7765]); str->del(strings[7783]); strings[7772] = str->add(strings[7772]); strings[7784] = str->add("word"); str->del(strings[7772]); str->del(strings[7784]); strings[7760] = str->add(strings[7760]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[7760]); str->del(strings[469]); strings[7759] = str->add(strings[7759]); strings[7785] = str->add("10.000000"); str->del(strings[7759]); str->del(strings[7785]); strings[7757] = str->add(strings[7757]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[7757]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[7778] = str->add(strings[7778]); strings[7786] = str->add("glow"); str->del(strings[7778]); str->del(strings[7786]); strings[7761] = str->add(strings[7761]); strings[7787] = str->add("#fff"); str->del(strings[7761]); str->del(strings[7787]); strings[7767] = str->add(strings[7767]); strings[7788] = str->add("#fe87"); str->del(strings[7767]); str->del(strings[7788]); strings[7766] = str->add(strings[7766]); strings[7789] = str->add("#fa14"); str->del(strings[7766]); str->del(strings[7789]); strings[7757] = str->add(strings[7757]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[7757]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[7778] = str->add(strings[7778]); strings[7790] = str->add("glow"); str->del(strings[7778]); str->del(strings[7790]); strings[7761] = str->add(strings[7761]); strings[7791] = str->add("#fff"); str->del(strings[7761]); str->del(strings[7791]); strings[7767] = str->add(strings[7767]); strings[7792] = str->add("#fe87"); str->del(strings[7767]); str->del(strings[7792]); strings[7766] = str->add(strings[7766]); strings[7793] = str->add("#fa14"); str->del(strings[7766]); str->del(strings[7793]); strings[7757] = str->add(strings[7757]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[7757]); str->del(strings[471]); str->del(strings[7757]); str->del(strings[7758]); str->del(strings[7759]); str->del(strings[7760]); str->del(strings[7761]); str->del(strings[7762]); str->del(strings[7763]); str->del(strings[7764]); str->del(strings[7765]); str->del(strings[7766]); str->del(strings[7767]); str->del(strings[7768]); str->del(strings[7769]); str->del(strings[7770]); str->del(strings[7771]); str->del(strings[7772]); str->del(strings[7773]); str->del(strings[7774]); str->del(strings[7775]); str->del(strings[7776]); str->del(strings[7777]); str->del(strings[7778]); str->del(strings[7779]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[7794] = str->add("font"); strings[7795] = str->add("font_fallbacks"); strings[7796] = str->add("font_size"); strings[7797] = str->add("font_source"); strings[7798] = str->add("color"); strings[7799] = str->add("underline_color"); strings[7800] = str->add("underline2_color"); strings[7801] = str->add("outline_color"); strings[7802] = str->add("shadow_color"); strings[7803] = str->add("glow_color"); strings[7804] = str->add("glow2_color"); strings[7805] = str->add("backing_color"); strings[7806] = str->add("strikethrough_color"); strings[7807] = str->add("align"); strings[7808] = str->add("valign"); strings[7809] = str->add("wrap"); strings[7810] = str->add("left_margin"); strings[7811] = str->add("right_margin"); strings[7812] = str->add("underline"); strings[7813] = str->add("strikethrough"); strings[7814] = str->add("backing"); strings[7815] = str->add("style"); strings[7816] = str->add("tabstops"); strings[7807] = str->add(strings[7807]); strings[7817] = str->add("center"); str->del(strings[7807]); str->del(strings[7817]); strings[7798] = str->add(strings[7798]); strings[7818] = str->add("#000"); str->del(strings[7798]); str->del(strings[7818]); strings[7815] = str->add(strings[7815]); strings[7819] = str->add("shadow"); str->del(strings[7815]); str->del(strings[7819]); strings[7802] = str->add(strings[7802]); strings[7820] = str->add("#ffffff80"); str->del(strings[7802]); str->del(strings[7820]); strings[7809] = str->add(strings[7809]); strings[7821] = str->add("word"); str->del(strings[7809]); str->del(strings[7821]); strings[7797] = str->add(strings[7797]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[7797]); str->del(strings[469]); strings[7796] = str->add(strings[7796]); strings[7822] = str->add("10.000000"); str->del(strings[7796]); str->del(strings[7822]); strings[7794] = str->add(strings[7794]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[7794]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[7815] = str->add(strings[7815]); strings[7823] = str->add("soft_shadow"); str->del(strings[7815]); str->del(strings[7823]); strings[7798] = str->add(strings[7798]); strings[7824] = str->add("#fff"); str->del(strings[7798]); str->del(strings[7824]); strings[7802] = str->add(strings[7802]); strings[7825] = str->add("#00000020"); str->del(strings[7802]); str->del(strings[7825]); strings[7796] = str->add(strings[7796]); strings[7826] = str->add("12.000000"); str->del(strings[7796]); str->del(strings[7826]); strings[7794] = str->add(strings[7794]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[7794]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[7794]); str->del(strings[7795]); str->del(strings[7796]); str->del(strings[7797]); str->del(strings[7798]); str->del(strings[7799]); str->del(strings[7800]); str->del(strings[7801]); str->del(strings[7802]); str->del(strings[7803]); str->del(strings[7804]); str->del(strings[7805]); str->del(strings[7806]); str->del(strings[7807]); str->del(strings[7808]); str->del(strings[7809]); str->del(strings[7810]); str->del(strings[7811]); str->del(strings[7812]); str->del(strings[7813]); str->del(strings[7814]); str->del(strings[7815]); str->del(strings[7816]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[7740]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[1841]); str->del(strings[7741]); str->del(strings[7740]); str->del(strings[1841]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7746]); str->del(strings[7747]); str->del(strings[1932]); str->del(strings[7747]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7746]); str->del(strings[7747]); str->del(strings[1932]); str->del(strings[7747]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); str->del(strings[7741]); strings[64] = str->add(strings[64]); strings[2595] = str->add(strings[2595]); strings[7827] = str->add("load"); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[7827] = str->add(strings[7827]); strings[1841] = str->add(strings[1841]); strings[64] = str->add(strings[64]); strings[4503] = str->add(strings[4503]); strings[64] = str->add(strings[64]); strings[3259] = str->add(strings[3259]); strings[64] = str->add(strings[64]); strings[3259] = str->add(strings[3259]); strings[469] = str->add(strings[469]); strings[2902] = str->add(strings[2902]); strings[7828] = str->add("resize"); strings[1933] = str->add(strings[1933]); str->del(strings[7827]); str->del(strings[1841]); str->del(strings[1933]); str->del(strings[469]); str->del(strings[2688]); strings[469] = str->add(strings[469]); strings[2688] = str->add(strings[2688]); strings[7827] = str->add(strings[7827]); strings[1841] = str->add(strings[1841]); strings[469] = str->add(strings[469]); strings[2902] = str->add(strings[2902]); strings[7828] = str->add(strings[7828]); strings[7829] = str->add("e,action,mouse,move"); strings[7830] = str->add("e"); strings[7829] = str->add(strings[7829]); strings[7830] = str->add(strings[7830]); strings[7829] = str->add(strings[7829]); strings[7830] = str->add(strings[7830]); strings[7829] = str->add(strings[7829]); strings[7830] = str->add(strings[7830]); strings[7829] = str->add(strings[7829]); strings[7830] = str->add(strings[7830]); strings[1737] = str->add(strings[1737]); strings[1853] = str->add(strings[1853]); strings[7829] = str->add(strings[7829]); strings[7830] = str->add(strings[7830]); strings[7831] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); strings[7829] = str->add(strings[7829]); strings[7830] = str->add(strings[7830]); strings[7831] = str->add(strings[7831]); strings[1853] = str->add(strings[1853]); str->del(strings[7827]); str->del(strings[1841]); str->del(strings[7828]); str->del(strings[7827]); str->del(strings[1841]); str->del(strings[7828]); str->del(strings[7829]); str->del(strings[7830]); str->del(strings[7829]); str->del(strings[7830]); str->del(strings[7829]); str->del(strings[7830]); str->del(strings[7829]); str->del(strings[7830]); str->del(strings[7829]); str->del(strings[7830]); str->del(strings[1737]); str->del(strings[1853]); str->del(strings[7829]); str->del(strings[7830]); str->del(strings[7831]); str->del(strings[1853]); str->del(strings[7829]); str->del(strings[7830]); str->del(strings[7831]); str->del(strings[1853]); strings[7832] = str->add("e,action,mouse,move"); strings[7833] = str->add("e"); strings[7834] = str->add("mouse,move"); strings[1853] = str->add(strings[1853]); str->del(strings[7832]); str->del(strings[7833]); str->del(strings[7834]); str->del(strings[1853]); str->del(strings[190]); str->del(strings[305]); str->del(strings[306]); str->del(strings[193]); strings[190] = str->add(strings[190]); strings[305] = str->add(strings[305]); strings[306] = str->add(strings[306]); strings[193] = str->add(strings[193]); strings[7835] = str->add("font"); strings[7836] = str->add("font_fallbacks"); strings[7837] = str->add("font_size"); strings[7838] = str->add("font_source"); strings[7839] = str->add("color"); strings[7840] = str->add("underline_color"); strings[7841] = str->add("underline2_color"); strings[7842] = str->add("outline_color"); strings[7843] = str->add("shadow_color"); strings[7844] = str->add("glow_color"); strings[7845] = str->add("glow2_color"); strings[7846] = str->add("backing_color"); strings[7847] = str->add("strikethrough_color"); strings[7848] = str->add("align"); strings[7849] = str->add("valign"); strings[7850] = str->add("wrap"); strings[7851] = str->add("left_margin"); strings[7852] = str->add("right_margin"); strings[7853] = str->add("underline"); strings[7854] = str->add("strikethrough"); strings[7855] = str->add("backing"); strings[7856] = str->add("style"); strings[7857] = str->add("tabstops"); strings[7848] = str->add(strings[7848]); strings[7858] = str->add("center"); str->del(strings[7848]); str->del(strings[7858]); strings[7839] = str->add(strings[7839]); strings[7859] = str->add("#000"); str->del(strings[7839]); str->del(strings[7859]); strings[7856] = str->add(strings[7856]); strings[7860] = str->add("shadow"); str->del(strings[7856]); str->del(strings[7860]); strings[7843] = str->add(strings[7843]); strings[7861] = str->add("#ffffff80"); str->del(strings[7843]); str->del(strings[7861]); strings[7850] = str->add(strings[7850]); strings[7862] = str->add("word"); str->del(strings[7850]); str->del(strings[7862]); strings[7838] = str->add(strings[7838]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[7838]); str->del(strings[469]); strings[7837] = str->add(strings[7837]); strings[7863] = str->add("10.000000"); str->del(strings[7837]); str->del(strings[7863]); strings[7835] = str->add(strings[7835]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[7835]); str->del(strings[470]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[7856] = str->add(strings[7856]); strings[7864] = str->add("glow"); str->del(strings[7856]); str->del(strings[7864]); strings[7839] = str->add(strings[7839]); strings[7865] = str->add("#fff"); str->del(strings[7839]); str->del(strings[7865]); strings[7845] = str->add(strings[7845]); strings[7866] = str->add("#fe87"); str->del(strings[7845]); str->del(strings[7866]); strings[7844] = str->add(strings[7844]); strings[7867] = str->add("#fa14"); str->del(strings[7844]); str->del(strings[7867]); strings[7835] = str->add(strings[7835]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[7835]); str->del(strings[471]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[7856] = str->add(strings[7856]); strings[7868] = str->add("glow"); str->del(strings[7856]); str->del(strings[7868]); strings[7839] = str->add(strings[7839]); strings[7869] = str->add("#fff"); str->del(strings[7839]); str->del(strings[7869]); strings[7845] = str->add(strings[7845]); strings[7870] = str->add("#fe87"); str->del(strings[7845]); str->del(strings[7870]); strings[7844] = str->add(strings[7844]); strings[7871] = str->add("#fa14"); str->del(strings[7844]); str->del(strings[7871]); strings[7835] = str->add(strings[7835]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[7835]); str->del(strings[471]); str->del(strings[7835]); str->del(strings[7836]); str->del(strings[7837]); str->del(strings[7838]); str->del(strings[7839]); str->del(strings[7840]); str->del(strings[7841]); str->del(strings[7842]); str->del(strings[7843]); str->del(strings[7844]); str->del(strings[7845]); str->del(strings[7846]); str->del(strings[7847]); str->del(strings[7848]); str->del(strings[7849]); str->del(strings[7850]); str->del(strings[7851]); str->del(strings[7852]); str->del(strings[7853]); str->del(strings[7854]); str->del(strings[7855]); str->del(strings[7856]); str->del(strings[7857]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[470]); str->del(strings[469]); str->del(strings[471]); str->del(strings[469]); strings[7872] = str->add("font"); strings[7873] = str->add("font_fallbacks"); strings[7874] = str->add("font_size"); strings[7875] = str->add("font_source"); strings[7876] = str->add("color"); strings[7877] = str->add("underline_color"); strings[7878] = str->add("underline2_color"); strings[7879] = str->add("outline_color"); strings[7880] = str->add("shadow_color"); strings[7881] = str->add("glow_color"); strings[7882] = str->add("glow2_color"); strings[7883] = str->add("backing_color"); strings[7884] = str->add("strikethrough_color"); strings[7885] = str->add("align"); strings[7886] = str->add("valign"); strings[7887] = str->add("wrap"); strings[7888] = str->add("left_margin"); strings[7889] = str->add("right_margin"); strings[7890] = str->add("underline"); strings[7891] = str->add("strikethrough"); strings[7892] = str->add("backing"); strings[7893] = str->add("style"); strings[7894] = str->add("tabstops"); strings[7885] = str->add(strings[7885]); strings[7895] = str->add("center"); str->del(strings[7885]); str->del(strings[7895]); strings[7876] = str->add(strings[7876]); strings[7896] = str->add("#000"); str->del(strings[7876]); str->del(strings[7896]); strings[7893] = str->add(strings[7893]); strings[7897] = str->add("shadow"); str->del(strings[7893]); str->del(strings[7897]); strings[7880] = str->add(strings[7880]); strings[7898] = str->add("#ffffff80"); str->del(strings[7880]); str->del(strings[7898]); strings[7887] = str->add(strings[7887]); strings[7899] = str->add("word"); str->del(strings[7887]); str->del(strings[7899]); strings[7875] = str->add(strings[7875]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[7875]); str->del(strings[469]); strings[7874] = str->add(strings[7874]); strings[7900] = str->add("10.000000"); str->del(strings[7874]); str->del(strings[7900]); strings[7872] = str->add(strings[7872]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[7872]); str->del(strings[470]); strings[470] = str->add(strings[470]); strings[469] = str->add(strings[469]); strings[7893] = str->add(strings[7893]); strings[7901] = str->add("soft_shadow"); str->del(strings[7893]); str->del(strings[7901]); strings[7876] = str->add(strings[7876]); strings[7902] = str->add("#fff"); str->del(strings[7876]); str->del(strings[7902]); strings[7880] = str->add(strings[7880]); strings[7903] = str->add("#00000020"); str->del(strings[7880]); str->del(strings[7903]); strings[7874] = str->add(strings[7874]); strings[7904] = str->add("12.000000"); str->del(strings[7874]); str->del(strings[7904]); strings[7872] = str->add(strings[7872]); strings[471] = str->add(strings[471]); str->del(strings[470]); strings[471] = str->add(strings[471]); str->del(strings[7872]); str->del(strings[471]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); strings[382] = str->add(strings[382]); str->del(strings[471]); str->del(strings[469]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[382]); str->del(strings[470]); str->del(strings[469]); str->del(strings[382]); str->del(strings[7872]); str->del(strings[7873]); str->del(strings[7874]); str->del(strings[7875]); str->del(strings[7876]); str->del(strings[7877]); str->del(strings[7878]); str->del(strings[7879]); str->del(strings[7880]); str->del(strings[7881]); str->del(strings[7882]); str->del(strings[7883]); str->del(strings[7884]); str->del(strings[7885]); str->del(strings[7886]); str->del(strings[7887]); str->del(strings[7888]); str->del(strings[7889]); str->del(strings[7890]); str->del(strings[7891]); str->del(strings[7892]); str->del(strings[7893]); str->del(strings[7894]); strings[7905] = str->add("font"); strings[7906] = str->add("font_fallbacks"); strings[7907] = str->add("font_size"); strings[7908] = str->add("font_source"); strings[7909] = str->add("color"); strings[7910] = str->add("underline_color"); strings[7911] = str->add("underline2_color"); strings[7912] = str->add("outline_color"); strings[7913] = str->add("shadow_color"); strings[7914] = str->add("glow_color"); strings[7915] = str->add("glow2_color"); strings[7916] = str->add("backing_color"); strings[7917] = str->add("strikethrough_color"); strings[7918] = str->add("align"); strings[7919] = str->add("valign"); strings[7920] = str->add("wrap"); strings[7921] = str->add("left_margin"); strings[7922] = str->add("right_margin"); strings[7923] = str->add("underline"); strings[7924] = str->add("strikethrough"); strings[7925] = str->add("backing"); strings[7926] = str->add("style"); strings[7927] = str->add("tabstops"); strings[7918] = str->add(strings[7918]); strings[7928] = str->add("center"); str->del(strings[7918]); str->del(strings[7928]); strings[7909] = str->add(strings[7909]); strings[7929] = str->add("#000"); str->del(strings[7909]); str->del(strings[7929]); strings[7926] = str->add(strings[7926]); strings[7930] = str->add("shadow"); str->del(strings[7926]); str->del(strings[7930]); strings[7913] = str->add(strings[7913]); strings[7931] = str->add("#ffffff80"); str->del(strings[7913]); str->del(strings[7931]); strings[7920] = str->add(strings[7920]); strings[7932] = str->add("word"); str->del(strings[7920]); str->del(strings[7932]); strings[7908] = str->add(strings[7908]); strings[469] = str->add(strings[469]); strings[469] = str->add(strings[469]); str->del(strings[7908]); str->del(strings[469]); strings[7907] = str->add(strings[7907]); strings[7933] = str->add("10.000000"); str->del(strings[7907]); str->del(strings[7933]); strings[7905] = str->add(strings[7905]); strings[470] = str->add(strings[470]); strings[470] = str->add(strings[470]); str->del(strings[7905]); eina-1.7.10/src/tests/eina_test_error.c0000664000175000017500000001345512175475327014745 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #ifdef HAVE_EVIL # include #endif #include "eina_suite.h" #include "Eina.h" #define TEST_TEXT "The big test\n" struct log_ctx { const char *msg; const char *fnc; Eina_Bool did; }; /* tests should not output on success, just uncomment this for debugging */ //#define SHOW_LOG 1 static void _eina_test_safety_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__) { struct log_ctx *ctx = data; va_list cp_args; const char *str; va_copy(cp_args, args); str = va_arg(cp_args, const char *); va_end(cp_args); ck_assert_int_eq(level, EINA_LOG_LEVEL_ERR); ck_assert_str_eq(fmt, "%s"); ck_assert_str_eq(ctx->msg, str); ck_assert_str_eq(ctx->fnc, fnc); ctx->did = EINA_TRUE; #ifdef SHOW_LOG eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args); #else (void)d; (void)file; (void)line; #endif } START_TEST(eina_error_errno) { int test; setenv("EINA_ERROR_LEVEL", "1", 0); eina_init(); test = eina_error_msg_register(TEST_TEXT); fail_if(!eina_error_msg_get(test)); fail_if(strcmp(eina_error_msg_get(test), TEST_TEXT) != 0); eina_error_set(test); fail_if(eina_error_get() != test); eina_shutdown(); } END_TEST START_TEST(eina_error_test_find) { int test, r; const char *str; eina_init(); test = eina_error_msg_register(TEST_TEXT); ck_assert_int_ne(test, 0); str = eina_error_msg_get(test); fail_unless(str != NULL); ck_assert_str_eq(str, TEST_TEXT); eina_error_set(test); fail_if(eina_error_get() != test); r = eina_error_find(TEST_TEXT); ck_assert_int_eq(r, test); eina_shutdown(); } END_TEST START_TEST(eina_error_test_modify) { int test, r; const char *str, smsg[] = "Do not copy this string"; eina_init(); test = eina_error_msg_register("Some Test Error"); ck_assert_int_ne(test, 0); str = eina_error_msg_get(test); fail_unless(str != NULL); ck_assert_str_eq(str, "Some Test Error"); eina_error_set(test); fail_if(eina_error_get() != test); fail_unless(eina_error_msg_modify(test, "ABCDE")); r = eina_error_find("ABCDE"); ck_assert_int_eq(r, test); test = eina_error_msg_static_register(smsg); ck_assert_int_ne(test, 0); str = eina_error_msg_get(test); fail_unless(str != NULL); fail_unless(str == smsg); fail_unless(eina_error_msg_modify(test, "Change that!")); r = eina_error_find("Change that!"); ck_assert_int_eq(r, test); eina_shutdown(); } END_TEST START_TEST(eina_error_test_lots) { char buf[64]; int codes[512]; unsigned int i; eina_init(); for (i = 0; i < sizeof(codes)/sizeof(codes[0]); i++) { snprintf(buf, sizeof(buf), "myerr-%d", i); codes[i] = eina_error_msg_register(buf); ck_assert_int_ne(codes[i], 0); } for (i = 0; i < sizeof(codes)/sizeof(codes[0]); i++) { int found; snprintf(buf, sizeof(buf), "myerr-%d", i); found = eina_error_find(buf); ck_assert_int_eq(codes[i], found); } eina_shutdown(); } END_TEST #ifdef EINA_SAFETY_CHECKS START_TEST(eina_error_test_failures) { struct log_ctx ctx; eina_init(); eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx); #define TEST_MAGIC_SAFETY(fn, _msg) \ ctx.msg = _msg; \ ctx.fnc = fn; \ ctx.did = EINA_FALSE TEST_MAGIC_SAFETY("eina_error_msg_register", "safety check failed: msg == NULL"); ck_assert_int_eq(eina_error_msg_register(NULL), 0); fail_unless(ctx.did); TEST_MAGIC_SAFETY("eina_error_msg_static_register", "safety check failed: msg == NULL"); ck_assert_int_eq(eina_error_msg_static_register(NULL), 0); fail_unless(ctx.did); ck_assert_int_eq(eina_error_msg_modify(0, "X"), EINA_FALSE); ck_assert_int_eq(eina_error_msg_modify(4096, "X"), EINA_FALSE); TEST_MAGIC_SAFETY("eina_error_msg_modify", "safety check failed: msg == NULL"); ck_assert_int_eq(eina_error_msg_modify(EINA_ERROR_OUT_OF_MEMORY, NULL), EINA_FALSE); fail_unless(ctx.did); ck_assert_str_eq(eina_error_msg_get(EINA_ERROR_OUT_OF_MEMORY), "Out of memory"); TEST_MAGIC_SAFETY("eina_error_find", "safety check failed: msg == NULL"); ck_assert_int_eq(eina_error_find(NULL), 0); fail_unless(ctx.did); ck_assert_int_eq(eina_error_find("Non-existent Error..."), 0); fail_if(eina_error_msg_get(0)); fail_if(eina_error_msg_get(4096)); eina_log_print_cb_set(eina_log_print_cb_stderr, NULL); eina_shutdown(); } END_TEST #endif void eina_test_error(TCase *tc) { tcase_add_test(tc, eina_error_errno); tcase_add_test(tc, eina_error_test_find); tcase_add_test(tc, eina_error_test_modify); tcase_add_test(tc, eina_error_test_lots); #ifdef EINA_SAFETY_CHECKS tcase_add_test(tc, eina_error_test_failures); #endif } eina-1.7.10/src/tests/eina_test_matrixsparse.c0000664000175000017500000003155312175475327016335 00000000000000#ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_suite.h" #include "Eina.h" #define MAX_ROWS 10 #define MAX_COLS 10 static void eina_matrixsparse_free_cell_cb(void *user_data __UNUSED__, void *cell_data __UNUSED__) { } static void matrixsparse_initialize(Eina_Matrixsparse *matrix, long data[MAX_ROWS][MAX_COLS], unsigned long nrows, unsigned long ncols) { unsigned long i, j; Eina_Bool r; for (i = 0; i < nrows; i++) for (j = 0; j < ncols; j++) if (data[i][j] != 0) { r = eina_matrixsparse_data_idx_set(matrix, i, j, &data[i][j]); fail_if(r == EINA_FALSE); } } static void matrixsparse_check(Eina_Matrixsparse *matrix, long data[MAX_ROWS][MAX_COLS], unsigned long nrows __UNUSED__, unsigned long ncols __UNUSED__) { unsigned long i, j; long *test1; for (i = 0; i < MAX_ROWS; i++) for (j = 0; j < MAX_COLS; j++) { if (data[i][j] != 0) { test1 = eina_matrixsparse_data_idx_get(matrix, i, j); fail_if(test1 == NULL || *test1 != data[i][j]); } else { test1 = eina_matrixsparse_data_idx_get(matrix, i, j); fail_if(test1 != NULL); } } } START_TEST(eina_test_simple) { Eina_Matrixsparse *matrix = NULL; Eina_Matrixsparse_Cell *cell = NULL; Eina_Bool r; long *test1, value, value2, value3, value4; unsigned long i, j; unsigned long row, col; long data[MAX_ROWS][MAX_COLS]; for (i = 0; i < MAX_ROWS; i++) for (j = 0; j < MAX_COLS; j++) data[i][j] = 0; data[0][3] = 3; data[1][3] = 13; data[1][6] = 16; data[1][9] = 19; data[1][8] = 18; data[1][7] = 17; data[2][8] = 28; data[2][7] = 27; data[2][6] = 26; data[3][5] = 35; data[3][6] = 36; data[3][7] = 37; data[3][9] = 39; data[3][0] = 30; data[4][6] = 46; data[4][8] = 48; data[4][2] = 42; data[4][3] = 43; data[4][7] = 47; data[5][3] = 53; data[6][3] = 63; data[6][4] = 64; data[6][6] = 66; data[7][3] = 73; data[7][7] = 77; data[8][8] = 88; value = -1; value2 = -2; value3 = -3; value4 = -4; eina_init(); matrix = eina_matrixsparse_new(MAX_ROWS, MAX_COLS, eina_matrixsparse_free_cell_cb, data); fail_if(matrix == NULL); r = eina_matrixsparse_cell_idx_get(matrix, 3, 5, &cell); fail_if(r == EINA_FALSE); fail_if(cell != NULL); matrixsparse_initialize(matrix, data, MAX_ROWS, MAX_COLS); /* data fetching */ test1 = eina_matrixsparse_data_idx_get(matrix, 3, 0); fail_if(test1 == NULL); fail_if(*test1 != data[3][0]); test1 = eina_matrixsparse_data_idx_get(matrix, 3, 5); fail_if(test1 == NULL); fail_if(*test1 != data[3][5]); test1 = eina_matrixsparse_data_idx_get(matrix, 3, 6); fail_if(test1 == NULL); fail_if(*test1 != data[3][6]); test1 = eina_matrixsparse_data_idx_get(matrix, 3, 1); fail_if(test1 != NULL); r = eina_matrixsparse_cell_idx_get(matrix, 3, 5, &cell); fail_if(r == EINA_FALSE); fail_if(cell == NULL); test1 = eina_matrixsparse_cell_data_get(cell); fail_if(test1 == NULL); fail_if(*test1 != data[3][5]); r = eina_matrixsparse_cell_position_get(cell, &row, &col); fail_if(r == EINA_FALSE); fail_if(row != 3 || col != 5); test1 = eina_matrixsparse_data_idx_get(matrix, 4, 3); fail_if(*test1 != data[4][3]); test1 = eina_matrixsparse_data_idx_get(matrix, 1, 3); fail_if(*test1 != data[1][3]); /* data changing */ r = eina_matrixsparse_data_idx_set(matrix, 1, 9, &data[1][9]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_replace(matrix, 4, 3, &value, (void **)&test1); fail_if(r == EINA_FALSE); fail_if(test1 == NULL); fail_if(*test1 != data[4][3]); data[4][3] = value; test1 = eina_matrixsparse_data_idx_get(matrix, 4, 3); fail_if(test1 == NULL || *test1 != value); r = eina_matrixsparse_cell_data_replace(cell, &value2, (void **)&test1); fail_if(r == EINA_FALSE); fail_if(test1 == NULL); fail_if(*test1 != data[3][5]); data[3][5] = value2; test1 = eina_matrixsparse_data_idx_get(matrix, 3, 5); fail_if(test1 == NULL); fail_if(*test1 != value2); r = eina_matrixsparse_cell_idx_get(matrix, 4, 2, &cell); fail_if(r == EINA_FALSE || cell == NULL); r = eina_matrixsparse_cell_data_set(cell, &value3); fail_if(r == EINA_FALSE); data[4][2] = value3; test1 = eina_matrixsparse_data_idx_get(matrix, 4, 2); fail_if(test1 == NULL || *test1 != value3); r = eina_matrixsparse_data_idx_replace(matrix, 6, 5, &value4, (void **)&test1); fail_if(r == EINA_FALSE || test1 != NULL); data[6][5] = value4; /* cell deletion */ r = eina_matrixsparse_row_idx_clear(matrix, 4); fail_if(r == EINA_FALSE); data[4][6] = 0; data[4][8] = 0; data[4][2] = 0; data[4][3] = 0; data[4][7] = 0; test1 = eina_matrixsparse_data_idx_get(matrix, 4, 3); fail_if(test1 != NULL); test1 = eina_matrixsparse_data_idx_get(matrix, 4, 8); fail_if(test1 != NULL); test1 = eina_matrixsparse_data_idx_get(matrix, 5, 3); fail_if(*test1 != data[5][3]); r = eina_matrixsparse_column_idx_clear(matrix, 3); fail_if(r != EINA_TRUE); data[0][3] = 0; data[1][3] = 0; data[4][3] = 0; data[5][3] = 0; data[6][3] = 0; data[7][3] = 0; r = eina_matrixsparse_cell_idx_clear(matrix, 3, 5); fail_if(r != EINA_TRUE); data[3][5] = 0; r = eina_matrixsparse_cell_idx_clear(matrix, 3, 9); fail_if(r != EINA_TRUE); data[3][9] = 0; r = eina_matrixsparse_cell_idx_clear(matrix, 4, 3); fail_if(r != EINA_TRUE); data[4][3] = 0; r = eina_matrixsparse_cell_idx_get(matrix, 3, 7, &cell); fail_if(r == EINA_FALSE); fail_if(cell == NULL); r = eina_matrixsparse_cell_clear(cell); fail_if(r == EINA_FALSE); data[3][7] = 0; r = eina_matrixsparse_cell_idx_get(matrix, 2, 7, &cell); fail_if(r == EINA_FALSE); r = eina_matrixsparse_cell_idx_clear(matrix, 2, 8); fail_if(r == EINA_FALSE); data[2][8] = 0; r = eina_matrixsparse_cell_idx_clear(matrix, 2, 7); fail_if(r == EINA_FALSE); data[2][7] = 0; r = eina_matrixsparse_cell_idx_get(matrix, 7, 7, &cell); fail_if(r == EINA_FALSE); r = eina_matrixsparse_row_idx_clear(matrix, 8); fail_if(r == EINA_FALSE); data[8][8] = 0; r = eina_matrixsparse_row_idx_clear(matrix, 7); fail_if(r == EINA_FALSE); data[7][3] = 0; data[7][7] = 0; matrixsparse_check(matrix, data, MAX_ROWS, MAX_COLS); eina_matrixsparse_free(matrix); eina_shutdown(); } END_TEST START_TEST(eina_test_resize) { Eina_Matrixsparse *matrix = NULL; Eina_Bool r; unsigned long i, j; unsigned long nrows, ncols; long data[MAX_ROWS][MAX_COLS]; for (i = 0; i < MAX_ROWS; i++) for (j = 0; j < MAX_COLS; j++) data[i][j] = 0; eina_init(); matrix = eina_matrixsparse_new(MAX_ROWS, MAX_COLS, eina_matrixsparse_free_cell_cb, data); fail_if(matrix == NULL); /* cell insertion */ data[0][5] = 5; data[1][0] = 10; data[1][3] = 13; data[1][6] = 16; data[1][9] = 19; data[1][8] = 18; data[1][7] = 17; data[2][8] = 28; data[2][7] = 27; data[2][6] = 26; data[3][0] = 30; data[3][5] = 35; data[3][6] = 36; data[3][7] = 37; data[3][9] = 39; data[3][0] = 30; data[4][8] = 48; data[4][2] = 42; data[4][3] = 43; data[4][7] = 47; data[4][6] = 46; data[5][3] = 53; data[6][3] = 63; data[6][4] = 64; data[6][6] = 66; data[7][3] = 73; data[7][7] = 77; data[8][8] = 88; matrixsparse_initialize(matrix, data, MAX_ROWS, MAX_COLS); eina_matrixsparse_size_get(matrix, &nrows, &ncols); fail_if(nrows != MAX_ROWS || ncols != MAX_COLS); r = eina_matrixsparse_size_set(matrix, nrows - 2, ncols - 2); fail_if(r == EINA_FALSE); data[1][9] = 0; data[1][8] = 0; data[2][8] = 0; data[3][9] = 0; data[4][8] = 0; data[8][8] = 0; matrixsparse_check(matrix, data, MAX_ROWS, MAX_COLS); r = eina_matrixsparse_size_set(matrix, 5, 1); fail_if(r == EINA_FALSE); data[0][5] = 0; data[1][3] = 0; data[1][6] = 0; data[1][7] = 0; data[2][7] = 0; data[2][6] = 0; data[3][5] = 0; data[3][6] = 0; data[3][7] = 0; data[4][2] = 0; data[4][3] = 0; data[4][7] = 0; data[4][6] = 0; data[5][3] = 0; data[6][3] = 0; data[6][4] = 0; data[6][6] = 0; data[7][3] = 0; data[7][7] = 0; matrixsparse_check(matrix, data, MAX_ROWS, MAX_COLS); r = eina_matrixsparse_size_set(matrix, 1, 1); fail_if(r == EINA_FALSE); data[3][0] = 0; data[1][0] = 0; matrixsparse_check(matrix, data, MAX_ROWS, MAX_COLS); r = eina_matrixsparse_size_set(matrix, 5, 4); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 4, 2, &data[4][2]); fail_if(r == EINA_FALSE); data[4][2] = 42; matrixsparse_check(matrix, data, MAX_ROWS, MAX_COLS); r = eina_matrixsparse_size_set(matrix, 5, 1); fail_if(r == EINA_FALSE); data[4][2] = 0; matrixsparse_check(matrix, data, MAX_ROWS, MAX_COLS); eina_matrixsparse_free(matrix); eina_shutdown(); } END_TEST START_TEST(eina_test_iterators) { Eina_Matrixsparse *matrix = NULL; Eina_Matrixsparse_Cell *cell = NULL; Eina_Iterator *it = NULL; Eina_Bool r; long *test1, value; unsigned long i, j; unsigned long row, col; long data[MAX_ROWS][MAX_COLS]; value = 0; for (i = 0; i < MAX_ROWS; i++) { for (j = 0; j < MAX_COLS; j++) { data[i][j] = value++; printf("%4ld ", data[i][j]); } printf("\n"); } eina_init(); matrix = eina_matrixsparse_new(MAX_ROWS, MAX_COLS, eina_matrixsparse_free_cell_cb, data); fail_if(matrix == NULL); r = eina_matrixsparse_data_idx_set(matrix, 3, 5, &data[3][5]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 3, 6, &data[3][6]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 3, 7, &data[3][7]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 3, 9, &data[3][9]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 3, 0, &data[3][0]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 4, 6, &data[4][6]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 4, 8, &data[4][8]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 4, 2, &data[4][2]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 4, 3, &data[4][3]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 4, 7, &data[4][7]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 6, 4, &data[6][4]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 5, 3, &data[5][3]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 6, 3, &data[6][3]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 7, 3, &data[7][3]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 0, 3, &data[0][3]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 1, 3, &data[1][3]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 1, 6, &data[1][6]); fail_if(r == EINA_FALSE); r = eina_matrixsparse_data_idx_set(matrix, 1, 9, &data[1][9]); fail_if(r == EINA_FALSE); it = eina_matrixsparse_iterator_new(matrix); fail_if(it == NULL); EINA_ITERATOR_FOREACH(it, cell) { fail_if(cell == NULL); r = eina_matrixsparse_cell_position_get(cell, &row, &col); fail_if(r == EINA_FALSE); test1 = eina_matrixsparse_cell_data_get(cell); fail_if(test1 == NULL || *test1 != data[row][col]); } eina_iterator_free(it); it = eina_matrixsparse_iterator_complete_new(matrix); fail_if(it == NULL); EINA_ITERATOR_FOREACH(it, cell) { fail_if(cell == NULL); r = eina_matrixsparse_cell_position_get(cell, &row, &col); fail_if(r == EINA_FALSE); test1 = eina_matrixsparse_cell_data_get(cell); if (test1) fail_if(*test1 != data[row][col]); } eina_iterator_free(it); eina_matrixsparse_free(matrix); eina_shutdown(); } END_TEST void eina_test_matrixsparse(TCase *tc) { tcase_add_test(tc, eina_test_simple); tcase_add_test(tc, eina_test_resize); tcase_add_test(tc, eina_test_iterators); } eina-1.7.10/src/tests/evas_hash.c0000664000175000017500000003466212175475327013525 00000000000000#ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "Evas_Data.h" typedef struct _Evas_Hash_El Evas_Hash_El; struct _Evas_Hash_El { Evas_Object_List _list_data; const char *key; void *data; }; static inline int _evas_hash_gen(const char *key); static int _evas_hash_alloc_error = 0; static inline int _evas_hash_gen(const char *key) { unsigned int hash_num = 5381; const unsigned char *ptr; if (!key) return 0; for (ptr = (unsigned char *)key; *ptr; ptr++) hash_num = (hash_num * 33) ^ *ptr; hash_num &= 0xff; return (int)hash_num; } /** * @defgroup Evas_Hash_Data Hash Data Functions * * Functions that add, access or remove data from hashes. * * The following example shows how to add and then access data in a * hash table: * @code * Evas_Hash *hash = NULL; * extern void *my_data; * * hash = evas_hash_add(hash, "My Data", my_data); * if (evas_hash_alloc_error()) * { * fprintf(stderr, "ERROR: Memory is low. Hash allocation failed.\n"); * exit(-1); * } * if (evas_hash_find(hash, "My Data") == my_data) * { * printf("My Data inserted and successfully found.\n"); * } * @endcode * * What follows is another example, showing how the @ref evas_hash_del * function is used: * @code * extern Evas_Hash *hash; * extern void *data; * * printf("Insert some data...\n"); * hash = evas_hash_add(hash, "My Data", my_data); * printf("Removing by key...\n"); * hash = evas_hash_del(hash, "My Data", NULL); * printf("Insert some more data as a NULL key...\n"); * hash = evas_hash_add(hash, NULL, my_data); * printf("Removing by data as a NULL key...\n"); * hash = evas_hash_del(hash, NULL, my_data); * @endcode */ /** * Adds an entry to the given hash table. * * @p key is expected to be a unique string within the hash table. * Otherwise, you cannot be sure which inserted data pointer will be * accessed with @ref evas_hash_find , and removed with * @ref evas_hash_del . * * Key strings are case sensitive. * * @ref evas_hash_alloc_error should be used to determine if an * allocation error occurred during this function. * * @param hash The given hash table. Can be @c NULL, in which case a * new hash table is allocated and returned. * @param key A unique string. Can be @c NULL. * @param data Data to associate with the string given by @p key. * @return Either the given hash table, or if the given value for @p * hash is @c NULL, then a new one. @c NULL will be returned * if memory could not be allocated for a new table. * @ingroup Evas_Hash_Data */ EAPI Evas_Hash * evas_hash_add(Evas_Hash *hash, const char *key, const void *data) { int hash_num; Evas_Hash_El *el; if ((!key) || (!data)) return hash; _evas_hash_alloc_error = 0; if (!hash) { hash = calloc(1, sizeof(struct _Evas_Hash)); if (!hash) { _evas_hash_alloc_error = 1; return NULL; } } if (!(el = malloc(sizeof(struct _Evas_Hash_El) + strlen(key) + 1))) { if (hash->population <= 0) { free(hash); hash = NULL; } _evas_hash_alloc_error = 1; return hash; } el->key = ((char *)el) + sizeof(struct _Evas_Hash_El); strcpy((char *)el->key, key); el->data = (void *)data; hash_num = _evas_hash_gen(key); hash->buckets[hash_num] = evas_object_list_prepend(hash->buckets[hash_num], el); hash->population++; return hash; } /** * Adds an entry to the given hash table and does not duplicate the string key. * * @p key is expected to be a unique string within the hash table. * Otherwise, you cannot be sure which inserted data pointer will be * accessed with @ref evas_hash_find , and removed with * @ref evas_hash_del . This call does not make a copy of the key so it must * be a string constant or stored elsewhere (in the object being added) etc. * * Key strings are case sensitive. * * @ref evas_hash_alloc_error should be used to determine if an * allocation error occurred during this function. * * @param hash The given hash table. Can be @c NULL, in which case a * new hash table is allocated and returned. * @param key A unique string. Can be @c NULL. * @param data Data to associate with the string given by @p key. * @return Either the given hash table, or if the given value for @p * hash is @c NULL, then a new one. @c NULL will be returned * if memory could not be allocated for a new table. * @ingroup Evas_Hash_Data */ EAPI Evas_Hash * evas_hash_direct_add(Evas_Hash *hash, const char *key, const void *data) { int hash_num; Evas_Hash_El *el; if ((!key) || (!data)) return hash; _evas_hash_alloc_error = 0; if (!hash) { hash = calloc(1, sizeof(struct _Evas_Hash)); if (!hash) { _evas_hash_alloc_error = 1; return NULL; } } if (!(el = malloc(sizeof(struct _Evas_Hash_El)))) { if (hash->population <= 0) { free(hash); hash = NULL; } _evas_hash_alloc_error = 1; return hash; } el->key = key; el->data = (void *)data; hash_num = _evas_hash_gen(key); hash->buckets[hash_num] = evas_object_list_prepend(hash->buckets[hash_num], el); hash->population++; return hash; } /** * Removes the entry identified by @p key or @p data from the given * hash table. * * If @p key is @c NULL, then @p data is used to find a match to * remove. * * @param hash The given hash table. * @param key The key string. Can be @c NULL. * @param data The data pointer to remove if @p key is @c NULL. * Otherwise, not required and can be @c NULL. * @return The modified hash table. If there are no entries left, the * hash table will be freed and @c NULL will be returned. * @ingroup Evas_Hash_Data */ EAPI Evas_Hash * evas_hash_del(Evas_Hash *hash, const char *key, const void *data) { int hash_num; Evas_Hash_El *el; Evas_Object_List *l; if (!hash) return NULL; if (!key) for (hash_num = 0; hash_num < 256; hash_num++) { for (l = hash->buckets[hash_num]; l; l = l->next) { el = (Evas_Hash_El *)l; if (el->data == data) { hash->buckets[hash_num] = evas_object_list_remove( hash->buckets[hash_num], el); free(el); hash->population--; if (hash->population <= 0) { free(hash); hash = NULL; } return hash; } } } else { hash_num = _evas_hash_gen(key); for (l = hash->buckets[hash_num]; l; l = l->next) { el = (Evas_Hash_El *)l; if (!strcmp(el->key, key)) if ((!data) || (el->data == data)) { hash->buckets[hash_num] = evas_object_list_remove( hash->buckets[hash_num], el); free(el); hash->population--; if (hash->population <= 0) { free(hash); hash = NULL; } return hash; } } } return hash; } /** * Retrieves a specific entry in the given hash table. * @param hash The given hash table. * @param key The key string of the entry to find. * @return The data pointer for the stored entry, or @c NULL if not * found. * @ingroup Evas_Hash_Data */ EAPI void * evas_hash_find(const Evas_Hash *hash, const char *key) { int hash_num; Evas_Hash_El *el; Evas_Object_List *l; _evas_hash_alloc_error = 0; if ((!hash) || (!key)) return NULL; hash_num = _evas_hash_gen(key); for (l = hash->buckets[hash_num]; l; l = l->next) { el = (Evas_Hash_El *)l; if (!strcmp(el->key, key)) { if (l != hash->buckets[hash_num]) { Evas_Object_List *bucket; bucket = hash->buckets[hash_num]; bucket = evas_object_list_remove(bucket, el); bucket = evas_object_list_prepend(bucket, el); ((Evas_Hash *)hash)->buckets[hash_num] = bucket; } return el->data; } } return NULL; } /** * Modifies the entry pointer at the specified key and returns the old entry * @param hash The given hash table. * @param key The key string of the entry to modify. * @param data The data to replace the old entry, if it exists. * @return The data pointer for the old stored entry, or @c NULL if not * found. If an existing entry is not found, nothing is added to the * hash. * @ingroup Evas_Hash_Data */ EAPI void * evas_hash_modify(Evas_Hash *hash, const char *key, const void *data) { int hash_num; Evas_Hash_El *el; Evas_Object_List *l; _evas_hash_alloc_error = 0; if (!hash) return NULL; hash_num = _evas_hash_gen(key); for (l = hash->buckets[hash_num]; l; l = l->next) { el = (Evas_Hash_El *)l; if ((key) && (!strcmp(el->key, key))) { void *old_data; if (l != hash->buckets[hash_num]) { hash->buckets[hash_num] = evas_object_list_remove( hash->buckets[hash_num], el); hash->buckets[hash_num] = evas_object_list_prepend( hash->buckets[hash_num], el); } old_data = el->data; el->data = (void *)data; return old_data; } } return NULL; } /** * @defgroup Evas_Hash_General_Group Hash General Functions * * Miscellaneous functions that operate on hash objects. */ /** * Retrieves the number of buckets available in the given hash table. * @param hash The given hash table. * @return @c 256 if @p hash is not @c NULL. @c 0 otherwise. * @ingroup Evas_Hash_General_Group */ EAPI int evas_hash_size(const Evas_Hash *hash) { if (!hash) return 0; return 256; } /** * @todo Complete polishing documentation for evas_hash.c. The * functions' docs may be grouped, but they need some simplification. */ /** * Free an entire hash table * @param hash The hash table to be freed * * This function frees up all the memory allocated to storing the specified * hash tale pointed to by @p hash. Any entries in the table that the program * has no more pointers for elsewhere may now be lost, so this should only be * called if the program has lready freed any allocated data in the hash table * or has the pointers for data in the table stored elswehere as well. * * Example: * @code * extern Evas_Hash *hash; * * evas_hash_free(hash); * hash = NULL; * @endcode * @ingroup Evas_Hash_General_Group */ EAPI void evas_hash_free(Evas_Hash *hash) { int i, size; if (!hash) return; size = evas_hash_size(hash); for (i = 0; i < size; i++) { while (hash->buckets[i]) { Evas_Hash_El *el; el = (Evas_Hash_El *)hash->buckets[i]; hash->buckets[i] = evas_object_list_remove(hash->buckets[i], el); free(el); } } free(hash); } /** * Call a function on every member stored in the hash table * @param hash The hash table whose members will be walked * @param func The function to call on each parameter * @param fdata The data pointer to pass to the function being called * * This function goes through every entry in the hash table @p hash and calls * the function @p func on each member. The function should NOT modify the * hash table contents if it returns 1. IF the hash table contents are * modified by this function or the function wishes to stop processing it must * return 0, otherwise return 1 to keep processing. * * Example: * @code * extern Evas_Hash *hash; * * Evas_Bool hash_fn(Evas_Hash *hash, const char *key, void *data, void *fdata) * { * printf("Func data: %s, Hash entry: %s / %p\n", fdata, key, data); * return 1; * } * * int main(int argc, char **argv) * { * char *hash_fn_data; * * hash_fn_data = strdup("Hello World"); * evas_hash_foreach(hash, hash_fn, hash_fn_data); * free(hash_fn_data); * } * @endcode * @ingroup Evas_Hash_General_Group */ EAPI void evas_hash_foreach(const Evas_Hash *hash, Evas_Bool (*func)( const Evas_Hash *hash, const char *key, void *data, void *fdata), const void *fdata) { int i, size; if (!hash) return; size = evas_hash_size(hash); for (i = 0; i < size; i++) { Evas_Object_List *l, *next_l; for (l = hash->buckets[i]; l; ) { Evas_Hash_El *el; next_l = l->next; el = (Evas_Hash_El *)l; if (!func(hash, el->key, el->data, (void *)fdata)) return; l = next_l; } } } /** * Return memory allocation failure flag after an function requiring allocation * @return The state of the allocation flag * * This function returns the state of the memory allocation flag. This flag is * set if memory allocations fail during evas_hash_add() calls. If they do, 1 * will be returned, otherwise 0 will be returned. The flag will remain in its * current state until the next call that requires allocation is called, and * is then reset. * * Example: * @code * Evas_Hash *hash = NULL; * extern void *my_data; * * hash = evas_hash_add(hash, "My Data", my_data); * if (evas_hash_alloc_error()) * { * fprintf(stderr, "ERROR: Memory is low. Hash allocation failed.\n"); * exit(-1); * } * if (evas_hash_find(hash, "My Data") == my_data) * { * printf("My Data inserted and successfully found.\n"); * } * @endcode * @ingroup Evas_Hash_General_Group */ EAPI int evas_hash_alloc_error(void) { return _evas_hash_alloc_error; } eina-1.7.10/src/tests/Ecore_Data.h0000664000175000017500000005121412175475327013547 00000000000000#ifndef _ECORE_DATA_H # define _ECORE_DATA_H #include /* we need this for size_t */ #include #ifdef EAPI # undef EAPI #endif #ifdef _WIN32 # ifdef EFL_ECORE_BUILD # ifdef DLL_EXPORT # define EAPI __declspec(dllexport) # else # define EAPI # endif /* ! DLL_EXPORT */ # else # define EAPI __declspec(dllimport) # endif /* ! EFL_ECORE_BUILD */ #else # ifdef __GNUC__ # if __GNUC__ >= 4 # define EAPI __attribute__ ((visibility("default"))) # else # define EAPI # endif # else # define EAPI # endif #endif /* ! _WIN32 */ /** * @file Ecore_Data.h * @brief Contains threading, list, hash, debugging and tree functions. */ # ifdef __cplusplus extern "C" { # endif #ifndef TRUE # define TRUE 1 #endif #ifndef FALSE # define FALSE 0 #endif #ifdef FREE # undef FREE #endif #define FREE(ptr) free(ptr); ptr = NULL; #ifdef IF_FREE # undef IF_FREE #endif #define IF_FREE(ptr) if (ptr) {free(ptr); } ptr = NULL; /* convenience macros for checking pointer parameters for non-NULL */ #undef CHECK_PARAM_POINTER_RETURN #define CHECK_PARAM_POINTER_RETURN(sparam, param, ret) \ if (!(param)) \ { \ printf("***** Developer Warning ***** :\n" \ "\tThis program is calling:\n\n" \ "\t%s();\n\n" \ "\tWith the parameter:\n\n" \ "\t%s\n\n" \ "\tbeing NULL. Please fix your program.", __FUNCTION__, sparam); \ if (getenv("ECORE_ERROR_ABORT")) { abort(); } \ return ret; \ } #undef CHECK_PARAM_POINTER #define CHECK_PARAM_POINTER(sparam, param) \ if (!(param)) \ { \ printf("***** Developer Warning ***** :\n" \ "\tThis program is calling:\n\n" \ "\t%s();\n\n" \ "\tWith the parameter:\n\n" \ "\t%s\n\n" \ "\tbeing NULL. Please fix your program.", __FUNCTION__, sparam); \ if (getenv("ECORE_ERROR_ABORT")) { abort(); } \ return; \ } # ifdef __sgi # define __FUNCTION__ "unknown" # ifndef __cplusplus # define inline # endif # endif # define ECORE_SORT_MIN 0 # define ECORE_SORT_MAX 1 typedef void (*Ecore_For_Each)(void *value, void *user_data); # define ECORE_FOR_EACH(function) ((Ecore_For_Each)function) typedef void (*Ecore_Free_Cb)(void *data); # define ECORE_FREE_CB(func) ((Ecore_Free_Cb)func) typedef unsigned int (*Ecore_Hash_Cb)(const void *key); # define ECORE_HASH_CB(function) ((Ecore_Hash_Cb)function) typedef int (*Ecore_Compare_Cb)(const void *data1, const void *data2); # define ECORE_COMPARE_CB(function) ((Ecore_Compare_Cb)function) typedef struct _ecore_list Ecore_List; # define ECORE_LIST(list) ((Ecore_List *)list) typedef struct _ecore_list_node Ecore_List_Node; # define ECORE_LIST_NODE(node) ((Ecore_List_Node *)node) typedef struct _ecore_strbuf Ecore_Strbuf; # define ECORE_STRBUF(buf) ((Ecore_Strbuf *)buf) struct _ecore_list_node { void *data; struct _ecore_list_node *next; }; struct _ecore_list { Ecore_List_Node *first; /* The first node in the list */ Ecore_List_Node *last; /* The last node in the list */ Ecore_List_Node *current; /* The current node in the list */ Ecore_Free_Cb free_func; /* The callback to free data in nodes */ int nodes; /* The number of nodes in the list */ int index; /* The position from the front of the list of current node */ }; EAPI int ecore_direct_compare(const void *key1, const void *key2); EAPI int ecore_str_compare(const void *key1, const void *key2); EAPI unsigned int ecore_direct_hash(const void *key); EAPI unsigned int ecore_str_hash(const void *key); /* Creating and initializing new list structures */ EAPI Ecore_List * ecore_list_new(void); EAPI int ecore_list_init(Ecore_List *list); /* Adding items to the list */ EAPI int ecore_list_append(Ecore_List *list, void *_data); EAPI int ecore_list_prepend(Ecore_List *list, void *_data); EAPI int ecore_list_insert(Ecore_List *list, void *_data); EAPI int ecore_list_append_list(Ecore_List *list, Ecore_List *append); EAPI int ecore_list_prepend_list(Ecore_List *list, Ecore_List *prepend); /* Removing items from the list */ EAPI int ecore_list_remove_destroy(Ecore_List *list); EAPI void * ecore_list_remove(Ecore_List *list); EAPI void * ecore_list_first_remove(Ecore_List *list); EAPI void * ecore_list_last_remove(Ecore_List *list); /* Retrieve the current position in the list */ EAPI void * ecore_list_current(Ecore_List *list); EAPI void * ecore_list_first(Ecore_List *list); EAPI void * ecore_list_last(Ecore_List *list); EAPI int ecore_list_index(Ecore_List *list); EAPI int ecore_list_count(Ecore_List *list); /* Traversing the list */ EAPI int ecore_list_for_each(Ecore_List *list, Ecore_For_Each function, void *user_data); EAPI void * ecore_list_first_goto(Ecore_List *list); EAPI void * ecore_list_last_goto(Ecore_List *list); EAPI void * ecore_list_index_goto(Ecore_List *list, int index); EAPI void * ecore_list_goto(Ecore_List *list, const void *_data); /* Traversing the list and returning data */ EAPI void * ecore_list_next(Ecore_List *list); EAPI void * ecore_list_find(Ecore_List *list, Ecore_Compare_Cb function, const void *user_data); /* Sorting the list */ EAPI int ecore_list_sort(Ecore_List *list, Ecore_Compare_Cb compare, char order); EAPI int ecore_list_mergesort(Ecore_List *list, Ecore_Compare_Cb compare, char order); EAPI int ecore_list_heapsort(Ecore_List *list, Ecore_Compare_Cb compare, char order); EAPI void ecore_list_merge(Ecore_List *list, Ecore_List *l2, Ecore_Compare_Cb, char order); /* Check to see if there is any data in the list */ EAPI int ecore_list_empty_is(Ecore_List *list); /* Remove every node in the list without freeing the list itself */ EAPI int ecore_list_clear(Ecore_List *list); /* Free the list and it's contents */ EAPI void ecore_list_destroy(Ecore_List *list); /* Creating and initializing list nodes */ EAPI Ecore_List_Node *ecore_list_node_new(void); EAPI int ecore_list_node_init(Ecore_List_Node *newNode); /* Destroying nodes */ EAPI int ecore_list_node_destroy(Ecore_List_Node *_e_node, Ecore_Free_Cb free_func); EAPI int ecore_list_free_cb_set(Ecore_List *list, Ecore_Free_Cb free_func); typedef Ecore_List Ecore_DList; # define ECORE_DLIST(dlist) ((Ecore_DList *)dlist) typedef struct _ecore_dlist_node Ecore_DList_Node; # define ECORE_DLIST_NODE(dlist) ((Ecore_DList_Node *)dlist) struct _ecore_dlist_node { Ecore_List_Node single; Ecore_DList_Node *previous; }; /* Creating and initializing new list structures */ EAPI Ecore_DList *ecore_dlist_new(void); EAPI int ecore_dlist_init(Ecore_DList *list); EAPI void ecore_dlist_destroy(Ecore_DList *list); /* Adding items to the list */ EAPI int ecore_dlist_append(Ecore_DList *_e_dlist, void *_data); EAPI int ecore_dlist_prepend(Ecore_DList *_e_dlist, void *_data); EAPI int ecore_dlist_insert(Ecore_DList *_e_dlist, void *_data); EAPI int ecore_dlist_append_list(Ecore_DList *_e_dlist, Ecore_DList *append); EAPI int ecore_dlist_prepend_list(Ecore_DList *_e_dlist, Ecore_DList *prepend); /* Info about list's state */ # define ecore_dlist_first(list) ecore_list_first(list) # define ecore_dlist_last(list) ecore_list_last(list) EAPI void * ecore_dlist_current(Ecore_DList *list); EAPI int ecore_dlist_index(Ecore_DList *list); # define ecore_dlist_count(list) ecore_list_count(list) /* Removing items from the list */ EAPI void * ecore_dlist_remove(Ecore_DList *_e_dlist); EAPI void * ecore_dlist_first_remove(Ecore_DList *_e_dlist); EAPI int ecore_dlist_remove_destroy(Ecore_DList *list); EAPI void * ecore_dlist_last_remove(Ecore_DList *_e_dlist); /* Traversing the list */ # define ecore_dlist_for_each(list, function, user_data) \ ecore_list_for_each(list, function, user_data) EAPI void * ecore_dlist_first_goto(Ecore_DList *_e_dlist); EAPI void * ecore_dlist_last_goto(Ecore_DList *_e_dlist); EAPI void * ecore_dlist_index_goto(Ecore_DList *_e_dlist, int index); EAPI void * ecore_dlist_goto(Ecore_DList *_e_dlist, void *_data); /* Traversing the list and returning data */ EAPI void * ecore_dlist_next(Ecore_DList *list); EAPI void * ecore_dlist_previous(Ecore_DList *list); /* Sorting the list */ EAPI int ecore_dlist_sort(Ecore_DList *list, Ecore_Compare_Cb compare, char order); EAPI int ecore_dlist_mergesort(Ecore_DList *list, Ecore_Compare_Cb compare, char order); # define ecore_dlist_heapsort(list, compare, order) \ ecore_list_heapsort(list, compare, order) EAPI void ecore_dlist_merge(Ecore_DList *list, Ecore_DList *l2, Ecore_Compare_Cb, char order); /* Check to see if there is any data in the list */ EAPI int ecore_dlist_empty_is(Ecore_DList *_e_dlist); /* Remove every node in the list without free'ing it */ EAPI int ecore_dlist_clear(Ecore_DList *_e_dlist); /* Creating and initializing list nodes */ EAPI int ecore_dlist_node_init(Ecore_DList_Node *node); EAPI Ecore_DList_Node *ecore_dlist_node_new(void); /* Destroying nodes */ EAPI int ecore_dlist_node_destroy(Ecore_DList_Node *node, Ecore_Free_Cb free_func); EAPI int ecore_dlist_free_cb_set(Ecore_DList *dlist, Ecore_Free_Cb free_func); /* * Hash Table Implementation: * * Traditional hash table implementation. I had tried a list of tables * approach to save on the realloc's but it ended up being much slower than * the traditional approach. */ typedef struct _ecore_hash_node Ecore_Hash_Node; # define ECORE_HASH_NODE(hash) ((Ecore_Hash_Node *)hash) struct _ecore_hash_node { Ecore_Hash_Node *next; /* Pointer to the next node in the bucket list */ void *key; /* The key for the data node */ void *value; /* The value associated with this node */ }; typedef struct _ecore_hash Ecore_Hash; # define ECORE_HASH(hash) ((Ecore_Hash *)hash) struct _ecore_hash { Ecore_Hash_Node **buckets; int size; /* An index into the table of primes to determine size */ int nodes; /* The number of nodes currently in the hash */ int index; /* The current index into the bucket table */ Ecore_Compare_Cb compare; /* The function used to compare node values */ Ecore_Hash_Cb hash_func; /* The callback function to determine hash */ Ecore_Free_Cb free_key; /* The callback function to free key */ Ecore_Free_Cb free_value; /* The callback function to free value */ }; /* Create and initialize a hash */ EAPI Ecore_Hash *ecore_hash_new(Ecore_Hash_Cb hash_func, Ecore_Compare_Cb compare); EAPI int ecore_hash_init(Ecore_Hash *hash, Ecore_Hash_Cb hash_func, Ecore_Compare_Cb compare); /* Functions related to freeing the data in the hash table */ EAPI int ecore_hash_free_key_cb_set(Ecore_Hash *hash, Ecore_Free_Cb function); EAPI int ecore_hash_free_value_cb_set(Ecore_Hash *hash, Ecore_Free_Cb function); EAPI void ecore_hash_destroy(Ecore_Hash *hash); EAPI int ecore_hash_count(Ecore_Hash *hash); EAPI int ecore_hash_for_each_node(Ecore_Hash *hash, Ecore_For_Each for_each_func, void *user_data); EAPI Ecore_List *ecore_hash_keys(Ecore_Hash *hash); /* Retrieve and store data into the hash */ EAPI void * ecore_hash_get(Ecore_Hash *hash, const void *key); EAPI int ecore_hash_set(Ecore_Hash *hash, void *key, void *value); EAPI int ecore_hash_hash_set(Ecore_Hash *hash, Ecore_Hash *set); EAPI void * ecore_hash_remove(Ecore_Hash *hash, const void *key); EAPI void * ecore_hash_find(Ecore_Hash *hash, Ecore_Compare_Cb compare, const void *value); EAPI void ecore_hash_dump_graph(Ecore_Hash *hash); EAPI void ecore_hash_dump_stats(Ecore_Hash *hash); typedef struct _ecore_heap Ecore_Sheap; # define ECORE_HEAP(heap) ((Ecore_Sheap *)heap) struct _ecore_heap { void **data; int size; int space; char order, sorted; /* Callback for comparing node values, default is direct comparison */ Ecore_Compare_Cb compare; /* Callback for freeing node data, default is NULL */ Ecore_Free_Cb free_func; }; EAPI Ecore_Sheap *ecore_sheap_new(Ecore_Compare_Cb compare, int size); EAPI void ecore_sheap_destroy(Ecore_Sheap *heap); EAPI int ecore_sheap_init(Ecore_Sheap *heap, Ecore_Compare_Cb compare, int size); EAPI int ecore_sheap_free_cb_set(Ecore_Sheap *heap, Ecore_Free_Cb free_func); EAPI int ecore_sheap_insert(Ecore_Sheap *heap, void *data); EAPI void * ecore_sheap_extract(Ecore_Sheap *heap); EAPI void * ecore_sheap_extreme(Ecore_Sheap *heap); EAPI int ecore_sheap_change(Ecore_Sheap *heap, void *item, void *newval); EAPI int ecore_sheap_compare_set(Ecore_Sheap *heap, Ecore_Compare_Cb compare); EAPI void ecore_sheap_order_set(Ecore_Sheap *heap, char order); EAPI void ecore_sheap_sort(Ecore_Sheap *heap); EAPI void * ecore_sheap_item(Ecore_Sheap *heap, int i); typedef struct _ecore_string Ecore_String; struct _ecore_string { char *string; int references; }; EAPI int ecore_string_init(); EAPI void ecore_string_shutdown(); EAPI const char *ecore_string_instance(const char *string); EAPI void ecore_string_release(const char *string); typedef struct _Ecore_Tree_Node Ecore_Tree_Node; # define ECORE_TREE_NODE(object) ((Ecore_Tree_Node *)object) struct _Ecore_Tree_Node { /* The actual data for each node */ void *key; void *value; /* Pointers to surrounding nodes */ Ecore_Tree_Node *parent; Ecore_Tree_Node *left_child; Ecore_Tree_Node *right_child; /* Book keeping information for quicker balancing of the tree */ int max_right; int max_left; }; typedef struct _Ecore_Tree Ecore_Tree; # define ECORE_TREE(object) ((Ecore_Tree *)object) struct _Ecore_Tree { /* Nodes of the tree */ Ecore_Tree_Node *tree; /* Callback for comparing node values, default is direct comparison */ Ecore_Compare_Cb compare_func; /* Callback for freeing node data, default is NULL */ Ecore_Free_Cb free_value; /* Callback for freeing node key, default is NULL */ Ecore_Free_Cb free_key; }; /* Some basic tree functions */ /* Allocate and initialize a new tree */ EAPI Ecore_Tree * ecore_tree_new(Ecore_Compare_Cb compare_func); /* Initialize a new tree */ EAPI int ecore_tree_init(Ecore_Tree *tree, Ecore_Compare_Cb compare_func); /* Free the tree */ EAPI int ecore_tree_destroy(Ecore_Tree *tree); /* Check to see if the tree has any nodes in it */ EAPI int ecore_tree_empty_is(Ecore_Tree *tree); /* Retrieve the value associated with key */ EAPI void * ecore_tree_get(Ecore_Tree *tree, const void *key); EAPI Ecore_Tree_Node *ecore_tree_get_node(Ecore_Tree *tree, const void *key); /* Retrieve the value of node with key greater than or equal to key */ EAPI void * ecore_tree_closest_larger_get(Ecore_Tree *tree, const void *key); /* Retrieve the value of node with key less than or equal to key */ EAPI void * ecore_tree_closest_smaller_get(Ecore_Tree *tree, const void *key); /* Set the value associated with key to value */ EAPI int ecore_tree_set(Ecore_Tree *tree, void *key, void *value); /* Remove the key from the tree */ EAPI int ecore_tree_remove(Ecore_Tree *tree, const void *key); /* Add a node to the tree */ EAPI int ecore_tree_node_add(Ecore_Tree *tree, Ecore_Tree_Node *node); /* Remove a node from the tree */ EAPI int ecore_tree_node_remove(Ecore_Tree *tree, Ecore_Tree_Node *node); /* For each node in the tree perform the for_each_func function */ /* For this one pass in the node */ EAPI int ecore_tree_for_each_node(Ecore_Tree *tree, Ecore_For_Each for_each_func, void *user_data); /* And here pass in the node's value */ EAPI int ecore_tree_for_each_node_value( Ecore_Tree *tree, Ecore_For_Each for_each_func, void *user_data); /* Some basic node functions */ /* Initialize a node */ EAPI int ecore_tree_node_init(Ecore_Tree_Node *new_node); /* Allocate and initialize a new node */ EAPI Ecore_Tree_Node *ecore_tree_node_new(void); /* Free the desired node */ EAPI int ecore_tree_node_destroy(Ecore_Tree_Node *node, Ecore_Free_Cb free_value, Ecore_Free_Cb free_key); /* Set the node's key to key */ EAPI int ecore_tree_node_key_set(Ecore_Tree_Node *node, void *key); /* Retrieve the key in node */ EAPI void * ecore_tree_node_key_get(Ecore_Tree_Node *node); /* Set the node's value to value */ EAPI int ecore_tree_node_value_set(Ecore_Tree_Node *node, void *value); /* Retrieve the value in node */ EAPI void * ecore_tree_node_value_get(Ecore_Tree_Node *node); /* Add a function to free the data stored in nodes */ EAPI int ecore_tree_free_value_cb_set(Ecore_Tree *tree, Ecore_Free_Cb free_value); /* Add a function to free the keys stored in nodes */ EAPI int ecore_tree_free_key_cb_set(Ecore_Tree *tree, Ecore_Free_Cb free_key); EAPI Ecore_Strbuf * ecore_strbuf_new(void); EAPI void ecore_strbuf_free(Ecore_Strbuf *buf); EAPI void ecore_strbuf_append(Ecore_Strbuf *buf, const char *str); EAPI void ecore_strbuf_append_char(Ecore_Strbuf *buf, char c); EAPI void ecore_strbuf_insert(Ecore_Strbuf *buf, const char *str, size_t pos); # define ecore_strbuf_prepend(buf, str) ecore_strbuf_insert(buf, str, 0) EAPI const char * ecore_strbuf_string_get(Ecore_Strbuf *buf); EAPI size_t ecore_strbuf_length_get(Ecore_Strbuf *buf); EAPI int ecore_strbuf_replace(Ecore_Strbuf *buf, const char *str, const char *with, unsigned int n); # define ecore_strbuf_replace_first(buf, str, with) \ ecore_strbuf_replace(buf, str, with, 1) EAPI int ecore_strbuf_replace_all(Ecore_Strbuf *buf, const char *str, const char *with); extern int ecore_str_compare(const void *key1, const void *key2); extern int ecore_direct_compare(const void *key1, const void *key2); extern unsigned int ecore_str_hash(const void *key); #ifdef __cplusplus } #endif #endif /* _ECORE_DATA_H */ eina-1.7.10/src/tests/eina_test_main.c0000664000175000017500000000273412175475327014536 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_suite.h" #include "Eina.h" START_TEST(eina_simple) { fail_if(eina_init() != 2); /* one init by test suite */ fail_if(eina_shutdown() != 1); } END_TEST START_TEST(eina_cpu) { fail_if(eina_init() != 2); /* one init by test suite */ fail_if(eina_cpu_count() <= 0); eina_cpu_features_get(); fail_if(eina_shutdown() != 1); } END_TEST START_TEST(eina_hamster) { fail_if(eina_init() != 2); /* one init by test suite */ fail_if(eina_hamster_count() <= 0); fail_if(eina_shutdown() != 1); } END_TEST void eina_test_main(TCase *tc) { tcase_add_test(tc, eina_simple); tcase_add_test(tc, eina_cpu); tcase_add_test(tc, eina_hamster); } eina-1.7.10/src/tests/eina_test_strbuf.c0000664000175000017500000003414712175475327015122 00000000000000/* EINA - EFL data type library * Copyright (C) 2010 Sebastian Dransfeld * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_suite.h" #include "Eina.h" START_TEST(strbuf_simple) { Eina_Strbuf *buf; char *txt; #define TEXT \ "This test should be so long that it is longer than the initial size of strbuf" eina_init(); buf = eina_strbuf_new(); fail_if(!buf); eina_strbuf_append(buf, TEXT); fail_if(strcmp(eina_strbuf_string_get(buf), TEXT)); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); eina_strbuf_append(buf, TEXT); fail_if(strcmp(eina_strbuf_string_get(buf), TEXT TEXT)); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); txt = eina_strbuf_string_steal(buf); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(txt, TEXT TEXT)); free(txt); fail_if(eina_strbuf_length_get(buf) != 0); fail_if(!strcmp(eina_strbuf_string_get(buf), TEXT TEXT)); eina_strbuf_append(buf, TEXT); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); eina_strbuf_reset(buf); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(eina_strbuf_length_get(buf) != 0); fail_if(!strcmp(eina_strbuf_string_get(buf), TEXT)); eina_strbuf_free(buf); eina_shutdown(); #undef TEXT } END_TEST START_TEST(strbuf_manage_simple) { Eina_Strbuf *buf; char *txt; #define TEXT \ "This test should be so long that it is longer than the initial size of strbuf" eina_init(); txt = strdup(TEXT); buf = eina_strbuf_manage_new(txt); fail_if(!buf); fail_if(strcmp(eina_strbuf_string_get(buf), TEXT)); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); eina_strbuf_append(buf, TEXT); fail_if(strcmp(eina_strbuf_string_get(buf), TEXT TEXT)); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); txt = eina_strbuf_string_steal(buf); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(txt, TEXT TEXT)); free(txt); fail_if(eina_strbuf_length_get(buf) != 0); fail_if(!strcmp(eina_strbuf_string_get(buf), TEXT TEXT)); eina_strbuf_append(buf, TEXT); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); eina_strbuf_reset(buf); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(eina_strbuf_length_get(buf) != 0); fail_if(!strcmp(eina_strbuf_string_get(buf), TEXT)); eina_strbuf_free(buf); eina_shutdown(); #undef TEXT } END_TEST START_TEST(strbuf_remove) { Eina_Strbuf *buf; eina_init(); buf = eina_strbuf_new(); fail_if(!buf); eina_strbuf_append(buf, "123 456 789 abc"); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); eina_strbuf_remove(buf, 0, 4); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "456 789 abc")); eina_strbuf_remove(buf, 8, 1000); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "456 789 ")); eina_strbuf_remove(buf, 7, eina_strbuf_length_get(buf)); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "456 789")); eina_strbuf_remove(buf, 2, 4); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "45789")); eina_strbuf_remove(buf, 4, 1); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "45789")); eina_strbuf_remove(buf, 0, eina_strbuf_length_get(buf)); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "")); #define TEXT \ "This test should be so long that it is longer than the initial size of strbuf" eina_strbuf_append(buf, TEXT TEXT); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); eina_strbuf_remove(buf, 0, eina_strbuf_length_get(buf) - 1); fail_if(strcmp(eina_strbuf_string_get(buf), "f")); #undef TEXT eina_strbuf_free(buf); eina_shutdown(); } END_TEST START_TEST(strbuf_append) { Eina_Strbuf *buf; eina_init(); buf = eina_strbuf_new(); fail_if(!buf); eina_strbuf_append(buf, "abc"); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "abc")); eina_strbuf_reset(buf); eina_strbuf_append_escaped(buf, "abc"); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "abc")); eina_strbuf_reset(buf); eina_strbuf_append_escaped(buf, "abc '\\"); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "abc\\ \\'\\\\")); eina_strbuf_reset(buf); eina_strbuf_append_n(buf, "abc", 2); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "ab")); eina_strbuf_reset(buf); eina_strbuf_append_char(buf, 'a'); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "a")); eina_strbuf_reset(buf); eina_strbuf_append_length(buf, "something", strlen("something")); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "something")); eina_strbuf_reset(buf); eina_strbuf_append_length(buf, "somethingELSE", strlen("something")); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "something")); eina_strbuf_reset(buf); eina_strbuf_free(buf); eina_shutdown(); } END_TEST START_TEST(strbuf_insert) { Eina_Strbuf *buf; eina_init(); buf = eina_strbuf_new(); fail_if(!buf); eina_strbuf_insert(buf, "abc", 10); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "abc")); eina_strbuf_insert(buf, "123", 0); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "123abc")); eina_strbuf_insert(buf, "xyz", eina_strbuf_length_get(buf)); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "123abcxyz")); eina_strbuf_insert(buf, "xyz", 1); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "1xyz23abcxyz")); eina_strbuf_insert_n(buf, "ABCDEF", 2, 1); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "1ABxyz23abcxyz")); eina_strbuf_insert_n(buf, "EINA", 2, 3); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "1ABEIxyz23abcxyz")); eina_strbuf_insert_escaped(buf, "678", 3); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strncmp(eina_strbuf_string_get(buf) + 3, "678", 3)); eina_strbuf_insert_escaped(buf, "089 '\\", 9); fail_if(strlen(eina_strbuf_string_get( buf)) != eina_strbuf_length_get(buf)); fail_if(strncmp(eina_strbuf_string_get(buf) + 9, "089\\ \\'\\\\", strlen("089\\ \\'\\\\"))); eina_strbuf_reset(buf); eina_strbuf_free(buf); eina_shutdown(); } END_TEST START_TEST(strbuf_replace) { Eina_Strbuf *buf; eina_init(); buf = eina_strbuf_new(); fail_if(!buf); eina_strbuf_append(buf, "aaa"); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "aaa")); fail_if(!eina_strbuf_replace(buf, "a", "b", 1)); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "baa")); fail_if(eina_strbuf_replace_all(buf, "a", "b") != 2); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "bbb")); fail_if(!eina_strbuf_replace(buf, "b", "cc", 2)); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "bccb")); fail_if(eina_strbuf_replace_all(buf, "c", "aa") != 2); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "baaaab")); fail_if(eina_strbuf_replace(buf, "c", "aa", 0)); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "baaaab")); fail_if(eina_strbuf_replace(buf, "c", "aa", 2)); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "baaaab")); fail_if(eina_strbuf_replace_all(buf, "c", "aa") != 0); fail_if(strlen(eina_strbuf_string_get(buf)) != eina_strbuf_length_get(buf)); fail_if(strcmp(eina_strbuf_string_get(buf), "baaaab")); eina_strbuf_free(buf); eina_shutdown(); } END_TEST START_TEST(strbuf_realloc) { Eina_Strbuf *buf; char pattern[1024 * 16]; unsigned int i; size_t sz; for (i = 0; i < sizeof(pattern) - 1; i++) pattern[i] = 'a' + (i % 26); pattern[i] = '\0'; eina_init(); buf = eina_strbuf_new(); fail_if(!buf); sz = 0; eina_strbuf_append_length(buf, pattern, 1); fail_if(eina_strbuf_length_get(buf) != sz + 1); fail_if(memcmp(eina_strbuf_string_get(buf) + sz, pattern, 1)); sz += 1; eina_strbuf_append_length(buf, pattern, 32); fail_if(eina_strbuf_length_get(buf) != sz + 32); fail_if(memcmp(eina_strbuf_string_get(buf) + sz, pattern, 32)); sz += 32; eina_strbuf_append_length(buf, pattern, 64); fail_if(eina_strbuf_length_get(buf) != sz + 64); fail_if(memcmp(eina_strbuf_string_get(buf) + sz, pattern, 64)); sz += 64; eina_strbuf_append_length(buf, pattern, 128); fail_if(eina_strbuf_length_get(buf) != sz + 128); fail_if(memcmp(eina_strbuf_string_get(buf) + sz, pattern, 128)); sz += 128; eina_strbuf_append_length(buf, pattern, 4096); fail_if(eina_strbuf_length_get(buf) != sz + 4096); fail_if(memcmp(eina_strbuf_string_get(buf) + sz, pattern, 4096)); sz += 4096; eina_strbuf_append_length(buf, pattern, sizeof(pattern) - 1); fail_if(eina_strbuf_length_get(buf) != sz + sizeof(pattern) - 1); fail_if(memcmp(eina_strbuf_string_get(buf) + sz, pattern, sizeof(pattern) - 1)); sz += sizeof(pattern) - 1; eina_strbuf_remove(buf, 1024, 1024 + 1234); fail_if(eina_strbuf_length_get(buf) != sz - 1234); sz -= 1234; eina_strbuf_remove(buf, 0, 0 + 8192); fail_if(eina_strbuf_length_get(buf) != sz - 8192); sz -= 8192; eina_strbuf_remove(buf, 0, 0 + 32); fail_if(eina_strbuf_length_get(buf) != sz - 32); sz -= 32; eina_strbuf_free(buf); eina_shutdown(); } END_TEST START_TEST(strbuf_append_realloc) { Eina_Strbuf *buf; const size_t runs = 40960; const char target_pattern[] = "stringstrsstr"; const char *str; size_t i, target_pattern_size; eina_init(); buf = eina_strbuf_new(); fail_if(!buf); for (i = 0; i < runs; i++) { fail_if(!eina_strbuf_append(buf, "string")); fail_if(!eina_strbuf_append_n(buf, "string", 3)); fail_if(!eina_strbuf_append_char(buf, 's')); fail_if(!eina_strbuf_append_length(buf, "string", 3)); } target_pattern_size = strlen(target_pattern); fail_if(eina_strbuf_length_get(buf) != (runs * target_pattern_size)); str = eina_strbuf_string_get(buf); fail_if(str == NULL); for (i = 0; i < runs; i++, str += target_pattern_size) fail_if(memcmp(str, target_pattern, target_pattern_size)); eina_strbuf_free(buf); eina_shutdown(); } END_TEST START_TEST(strbuf_prepend_realloc) { Eina_Strbuf *buf; const size_t runs = 40960; const char target_pattern[] = "strsstrstring"; const char *str; size_t i, target_pattern_size; eina_init(); buf = eina_strbuf_new(); fail_if(!buf); for (i = 0; i < runs; i++) { fail_if(!eina_strbuf_prepend(buf, "string")); fail_if(!eina_strbuf_prepend_n(buf, "string", 3)); fail_if(!eina_strbuf_prepend_char(buf, 's')); fail_if(!eina_strbuf_prepend_length(buf, "string", 3)); } target_pattern_size = strlen(target_pattern); fail_if(eina_strbuf_length_get(buf) != (runs * target_pattern_size)); str = eina_strbuf_string_get(buf); fail_if(str == NULL); for (i = 0; i < runs; i++, str += target_pattern_size) fail_if(memcmp(str, target_pattern, target_pattern_size)); eina_strbuf_free(buf); eina_shutdown(); } END_TEST void eina_test_strbuf(TCase *tc) { tcase_add_test(tc, strbuf_simple); tcase_add_test(tc, strbuf_remove); tcase_add_test(tc, strbuf_append); tcase_add_test(tc, strbuf_insert); tcase_add_test(tc, strbuf_replace); tcase_add_test(tc, strbuf_realloc); tcase_add_test(tc, strbuf_append_realloc); tcase_add_test(tc, strbuf_prepend_realloc); tcase_add_test(tc, strbuf_manage_simple); } eina-1.7.10/src/tests/eina_test_inlist.c0000664000175000017500000002655012175475327015116 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "eina_suite.h" #include "Eina.h" #include "eina_safety_checks.h" typedef struct _Eina_Test_Inlist Eina_Test_Inlist; struct _Eina_Test_Inlist { int i; EINA_INLIST; }; #ifdef EINA_SAFETY_CHECKS struct log_ctx { const char *msg; const char *fnc; Eina_Bool did; }; /* tests should not output on success, just uncomment this for debugging */ //#define SHOW_LOG 1 static void _eina_test_safety_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__) { struct log_ctx *ctx = data; va_list cp_args; const char *str; va_copy(cp_args, args); str = va_arg(cp_args, const char *); va_end(cp_args); ck_assert_int_eq(level, EINA_LOG_LEVEL_ERR); ck_assert_str_eq(fmt, "%s"); ck_assert_str_eq(ctx->msg, str); ck_assert_str_eq(ctx->fnc, fnc); ctx->did = EINA_TRUE; #ifdef SHOW_LOG eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args); #else (void)d; (void)file; (void)line; #endif } #endif static Eina_Test_Inlist * _eina_test_inlist_build(int i) { Eina_Test_Inlist *tmp; tmp = malloc(sizeof(Eina_Test_Inlist)); fail_if(!tmp); tmp->i = i; return tmp; } START_TEST(eina_inlist_simple) { Eina_Inlist *lst = NULL; Eina_Test_Inlist *tmp; Eina_Test_Inlist *prev; int i = 0; #ifdef EINA_SAFETY_CHECKS Eina_Inlist *bkp; struct log_ctx ctx; #endif fail_if(!eina_init()); tmp = _eina_test_inlist_build(42); lst = eina_inlist_append(lst, EINA_INLIST_GET(tmp)); fail_if(!lst); lst = eina_inlist_remove(lst, EINA_INLIST_GET(tmp)); lst = eina_inlist_prepend(lst, EINA_INLIST_GET(tmp)); tmp = _eina_test_inlist_build(1664); lst = eina_inlist_append_relative(lst, EINA_INLIST_GET(tmp), lst); fail_if(!lst); fail_if(EINA_INLIST_CONTAINER_GET(lst, Eina_Test_Inlist)->i != 42); prev = tmp; tmp = _eina_test_inlist_build(3227); lst = eina_inlist_prepend_relative(lst, EINA_INLIST_GET( tmp), EINA_INLIST_GET(prev)); fail_if(!lst); fail_if(EINA_INLIST_CONTAINER_GET(lst, Eina_Test_Inlist)->i != 42); lst = eina_inlist_remove(lst, EINA_INLIST_GET(tmp)); lst = eina_inlist_append_relative(lst, EINA_INLIST_GET(tmp), lst); lst = eina_inlist_remove(lst, EINA_INLIST_GET(tmp)); lst = eina_inlist_prepend_relative(lst, EINA_INLIST_GET(tmp), lst); tmp = _eina_test_inlist_build(27); lst = eina_inlist_prepend_relative(lst, EINA_INLIST_GET(tmp), NULL); tmp = _eina_test_inlist_build(81); lst = eina_inlist_append_relative(lst, EINA_INLIST_GET(tmp), NULL); EINA_INLIST_FOREACH(lst, tmp) { switch (i) { case 0: fail_if(tmp->i != 27); break; case 1: fail_if(tmp->i != 3227); break; case 2: fail_if(tmp->i != 42); break; case 3: fail_if(tmp->i != 1664); break; case 4: fail_if(tmp->i != 81); break; } ++i; } #ifdef EINA_SAFETY_CHECKS bkp = lst; eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx); #define TEST_MAGIC_SAFETY(fn, _msg) \ ctx.msg = _msg; \ ctx.fnc = fn; \ ctx.did = EINA_FALSE #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif { Eina_Inlist *tmp2; TEST_MAGIC_SAFETY("eina_inlist_remove", "safety check failed: list == NULL"); tmp2 = eina_inlist_remove(NULL, EINA_INLIST_GET(tmp)); fail_if(tmp2 != NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); } #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_inlist_remove", "safety check failed: item == NULL"); lst = eina_inlist_remove(lst, NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_inlist_append", "safety check failed: new_l == NULL"); lst = eina_inlist_append(lst, NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_inlist_append_relative", "safety check failed: new_l == NULL"); lst = eina_inlist_append_relative(lst, NULL, NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_inlist_prepend", "safety check failed: new_l == NULL"); lst = eina_inlist_prepend(lst, NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_inlist_prepend_relative", "safety check failed: new_l == NULL"); lst = eina_inlist_prepend_relative(lst, NULL, NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_inlist_find", "safety check failed: item == NULL"); lst = eina_inlist_find(lst, NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_inlist_demote", "safety check failed: list == NULL"); lst = eina_inlist_demote(NULL, NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_inlist_demote", "safety check failed: item == NULL"); lst = eina_inlist_demote((void*)1L, NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); lst = NULL; #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_inlist_promote", "safety check failed: list == NULL"); lst = eina_inlist_promote(NULL, NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_inlist_promote", "safety check failed: item == NULL"); lst = eina_inlist_promote((void*)1L, NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); lst = NULL; #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_inlist_sorted_insert", "safety check failed: item == NULL"); lst = eina_inlist_sorted_insert(NULL, NULL, NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_inlist_sorted_insert", "safety check failed: func == NULL"); lst = eina_inlist_sorted_insert(NULL, (void*)1L, NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); lst = NULL; eina_log_print_cb_set(eina_log_print_cb_stderr, NULL); lst = bkp; #endif tmp = EINA_INLIST_CONTAINER_GET(lst, Eina_Test_Inlist); lst = eina_inlist_demote(lst, lst); fail_if(EINA_INLIST_CONTAINER_GET(lst, Eina_Test_Inlist) == tmp); lst = eina_inlist_promote(lst, EINA_INLIST_GET(tmp)); fail_if(lst != EINA_INLIST_GET(tmp)); tmp = EINA_INLIST_CONTAINER_GET(eina_inlist_find(lst, EINA_INLIST_GET( prev)), Eina_Test_Inlist); lst = eina_inlist_remove(lst, EINA_INLIST_GET(tmp)); prev = (Eina_Test_Inlist *)eina_inlist_find(lst, EINA_INLIST_GET(tmp)); tmp = prev ? EINA_INLIST_CONTAINER_GET(prev, Eina_Test_Inlist) : NULL; fail_if(tmp != NULL); while (lst) lst = eina_inlist_remove(lst, lst); eina_shutdown(); } END_TEST typedef struct _Eina_Test_Inlist_Sorted Eina_Test_Inlist_Sorted; struct _Eina_Test_Inlist_Sorted { EINA_INLIST; int value; }; static int _eina_test_inlist_cmp(const void *d1, const void *d2) { const Eina_Test_Inlist_Sorted *t1 = d1; const Eina_Test_Inlist_Sorted *t2 = d2; return t1->value - t2->value; } static void _eina_test_inlist_check(const Eina_Inlist *list) { const Eina_Test_Inlist_Sorted *t; int last_value = 0; EINA_INLIST_FOREACH(list, t) { fail_if(t->value < last_value); last_value = t->value; } } START_TEST(eina_inlist_sorted) { Eina_Test_Inlist_Sorted *tmp; Eina_Inlist *list = NULL; Eina_Inlist *sorted = NULL; int i; fail_if(!eina_init()); srand(time(NULL)); for (i = 0; i < 2000; ++i) { tmp = malloc(sizeof (Eina_Test_Inlist_Sorted)); if (!tmp) continue ; tmp->value = rand(); list = eina_inlist_prepend(list, EINA_INLIST_GET(tmp)); } list = eina_inlist_sort(list, _eina_test_inlist_cmp); _eina_test_inlist_check(list); EINA_INLIST_FOREACH(list, tmp) tmp->value = rand(); i = 0; while (list) { Eina_Inlist *p = list; list = eina_inlist_remove(list, list); sorted = eina_inlist_sorted_insert(sorted, p, _eina_test_inlist_cmp); _eina_test_inlist_check(sorted); } _eina_test_inlist_check(sorted); eina_shutdown(); } END_TEST START_TEST(eina_inlist_sorted_state) { Eina_Test_Inlist_Sorted *tmp; Eina_Inlist_Sorted_State *state; Eina_Inlist *list = NULL; int i; fail_if(!eina_init()); state = eina_inlist_sorted_state_new(); fail_if(!state); for (i = 0; i < 2000; ++i) { tmp = malloc(sizeof (Eina_Test_Inlist_Sorted)); if (!tmp) continue ; tmp->value = rand(); list = eina_inlist_sorted_state_insert(list, EINA_INLIST_GET(tmp), _eina_test_inlist_cmp, state); _eina_test_inlist_check(list); } _eina_test_inlist_check(list); eina_inlist_sorted_state_free(state); eina_shutdown(); } END_TEST void eina_test_inlist(TCase *tc) { tcase_add_test(tc, eina_inlist_simple); tcase_add_test(tc, eina_inlist_sorted); tcase_add_test(tc, eina_inlist_sorted_state); } eina-1.7.10/src/tests/eina_suite.c0000664000175000017500000001126112175475327013677 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "eina_suite.h" #include "Eina.h" #include #include typedef struct _Eina_Test_Case Eina_Test_Case; struct _Eina_Test_Case { const char *test_case; void (*build)(TCase *tc); }; static const Eina_Test_Case etc[] = { { "FixedPoint", eina_test_fp }, { "Inarray", eina_test_inarray }, { "Array", eina_test_array }, { "Binary Share", eina_test_binshare }, { "String Share", eina_test_stringshare }, { "UString Share", eina_test_ustringshare }, { "Log", eina_test_log }, { "Error", eina_test_error }, { "Magic", eina_test_magic }, { "Inlist", eina_test_inlist }, { "Lazy alloc", eina_test_lalloc }, { "Main", eina_test_main }, { "Counter", eina_test_counter }, { "Hash", eina_test_hash }, { "List", eina_test_list }, { "CList", eina_test_clist }, { "Iterator", eina_test_iterator }, { "Accessor", eina_test_accessor }, { "Module", eina_test_module }, { "Convert", eina_test_convert }, { "Rbtree", eina_test_rbtree }, { "File", eina_test_file }, { "Benchmark", eina_test_benchmark }, { "Mempool", eina_test_mempool }, { "Rectangle", eina_test_rectangle }, { "Matrix Sparse", eina_test_matrixsparse }, { "Eina Tiler", eina_test_tiler }, { "Eina Strbuf", eina_test_strbuf }, { "Eina Binbuf", eina_test_binbuf }, { "String", eina_test_str }, { "Unicode String", eina_test_ustr }, { "QuadTree", eina_test_quadtree }, { "Sched", eina_test_sched }, { "Simple Xml Parser", eina_test_simple_xml_parser}, { "Value", eina_test_value }, // Disabling Eina_Model test // { "Model", eina_test_model }, { NULL, NULL } }; static void _list_tests(void) { const Eina_Test_Case *itr = etc; fputs("Available Test Cases:\n", stderr); for (; itr->test_case; itr++) fprintf(stderr, "\t%s\n", itr->test_case); } static Eina_Bool _use_test(int argc, const char **argv, const char *test_case) { if (argc < 1) return 1; for (; argc > 0; argc--, argv++) if (strcmp(test_case, *argv) == 0) return 1; return 0; } Suite * eina_build_suite(int argc, const char **argv) { TCase *tc; Suite *s; int i; s = suite_create("Eina"); for (i = 0; etc[i].test_case; ++i) { if (!_use_test(argc, argv, etc[i].test_case)) continue; tc = tcase_create(etc[i].test_case); etc[i].build(tc); suite_add_tcase(s, tc); tcase_set_timeout(tc, 0); } return s; } /* FIXME this is a copy from eina_test_mempool * we should remove the duplication */ static Eina_Array *_modules; static void _mempool_init(void) { eina_init(); /* force modules to be loaded in case they are not installed */ _modules = eina_module_list_get(NULL, PACKAGE_BUILD_DIR "/src/modules", EINA_TRUE, NULL, NULL); eina_module_list_load(_modules); } static void _mempool_shutdown(void) { eina_module_list_free(_modules); if (_modules) eina_array_free(_modules); /* TODO delete the list */ eina_shutdown(); } int main(int argc, char **argv) { Suite *s; SRunner *sr; int i, failed_count; for (i = 1; i < argc; i++) if ((strcmp(argv[i], "-h") == 0) || (strcmp(argv[i], "--help") == 0)) { fprintf(stderr, "Usage:\n\t%s [test_case1 .. [test_caseN]]\n", argv[0]); _list_tests(); return 0; } else if ((strcmp(argv[i], "-l") == 0) || (strcmp(argv[i], "--list") == 0)) { _list_tests(); return 0; } s = eina_build_suite(argc - 1, (const char **)argv + 1); sr = srunner_create(s); _mempool_init(); srunner_run_all(sr, CK_ENV); failed_count = srunner_ntests_failed(sr); srunner_free(sr); _mempool_shutdown(); return (failed_count == 0) ? 0 : 255; } eina-1.7.10/src/tests/eina_test_benchmark.c0000664000175000017500000000326612175475327015545 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_suite.h" #include "eina_benchmark.h" static int global_test = 0; static void _eina_benchmark_specimens(int request) { int i; int a = 0; for (i = 0; i < request; ++i) a += i; global_test = a; } START_TEST(eina_benchmark_simple) { Eina_Benchmark *eb; Eina_Array_Iterator it; Eina_Array *ea; char *tmp; unsigned int i; eb = eina_benchmark_new("benchmark", "test"); fail_if(!eb); eina_benchmark_register(eb, "specimens_check", EINA_BENCHMARK(_eina_benchmark_specimens), 1000, 1100, 100); ea = eina_benchmark_run(eb); fail_if(!ea); EINA_ARRAY_ITER_NEXT(ea, i, tmp, it) { fail_if(!tmp); fail_if(unlink(tmp)); } fail_if(global_test != 499500); eina_benchmark_free(eb); } END_TEST void eina_test_benchmark(TCase *tc) { tcase_add_test(tc, eina_benchmark_simple); } eina-1.7.10/src/tests/evas_object_list.c0000664000175000017500000000666312175475327015103 00000000000000#ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "Evas_Data.h" /* list ops */ void * evas_object_list_append(void *in_list, void *in_item) { Evas_Object_List *l, *new_l; Evas_Object_List *list; list = in_list; new_l = in_item; new_l->next = NULL; if (!list) { new_l->prev = NULL; new_l->last = new_l; return new_l; } if (list->last) l = list->last; else for (l = list; (l) && (l->next); l = l->next) ; l->next = new_l; new_l->prev = l; list->last = new_l; return list; } void * evas_object_list_prepend(void *in_list, void *in_item) { Evas_Object_List *new_l; Evas_Object_List *list; list = in_list; new_l = in_item; new_l->prev = NULL; if (!list) { new_l->next = NULL; new_l->last = new_l; return new_l; } new_l->next = list; list->prev = new_l; new_l->last = list->last; list->last = NULL; return new_l; } void * evas_object_list_append_relative(void *in_list, void *in_item, void *in_relative) { Evas_Object_List *list, *relative, *new_l; list = in_list; new_l = in_item; relative = in_relative; if (relative) { if (relative->next) { new_l->next = relative->next; relative->next->prev = new_l; } else new_l->next = NULL; relative->next = new_l; new_l->prev = relative; if (!new_l->next) list->last = new_l; return list; } return evas_object_list_append(list, new_l); } void * evas_object_list_prepend_relative(void *in_list, void *in_item, void *in_relative) { Evas_Object_List *list, *relative, *new_l; list = in_list; new_l = in_item; relative = in_relative; if (relative) { new_l->prev = relative->prev; new_l->next = relative; relative->prev = new_l; if (new_l->prev) { new_l->prev->next = new_l; if (!new_l->next) list->last = new_l; return list; } else { if (!new_l->next) new_l->last = new_l; else { new_l->last = list->last; list->last = NULL; } return new_l; } } return evas_object_list_prepend(list, new_l); } void * evas_object_list_remove(void *in_list, void *in_item) { Evas_Object_List *return_l; Evas_Object_List *list, *item; /* checkme */ if(!in_list) return in_list; list = in_list; item = in_item; if (!item) return list; if (item->next) item->next->prev = item->prev; if (item->prev) { item->prev->next = item->next; return_l = list; } else { return_l = item->next; if (return_l) return_l->last = list->last; } if (item == list->last) list->last = item->prev; item->next = NULL; item->prev = NULL; return return_l; } void * evas_object_list_find(void *in_list, void *in_item) { Evas_Object_List *l; Evas_Object_List *list, *item; list = in_list; item = in_item; for (l = list; l; l = l->next) { if (l == item) return item; } return NULL; } eina-1.7.10/src/tests/eina_test_list.c0000664000175000017500000002403412175475327014562 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_suite.h" #include "Eina.h" static Eina_Bool eina_list_sorted_check(const Eina_List *list) { const Eina_List *n; void *d; int last = *(int *)list->data; EINA_LIST_FOREACH(list->next, n, d) { int current = *(int *)d; if (last > current) { fprintf(stderr, "list is not sorted: last=%d, current=%d\n", last, current); return 0; } last = current; } return 1; } static int eina_int_cmp(const void *a, const void *b) { const int *ia = a; const int *ib = b; return *ia - *ib; } START_TEST(eina_test_simple) { Eina_List *list = NULL; Eina_List *tmp; int *test1; int *test2; int *test3; int data[] = { 6, 9, 42, 1, 7, 9, 81, 1664, 1337 }; int result[] = { 81, 9, 9, 7, 1 }; int i; eina_init(); list = eina_list_append(list, &data[0]); fail_if(list == NULL); list = eina_list_prepend(list, &data[1]); fail_if(list == NULL); list = eina_list_append(list, &data[2]); fail_if(list == NULL); list = eina_list_remove(list, &data[0]); fail_if(list == NULL); list = eina_list_remove(list, &data[0]); fail_if(list == NULL); tmp = eina_list_data_find_list(list, &data[2]); fail_if(tmp == NULL); list = eina_list_append_relative_list(list, &data[3], tmp); fail_if(list == NULL); list = eina_list_prepend_relative_list(list, &data[4], tmp); fail_if(list == NULL); list = eina_list_promote_list(list, tmp); fail_if(list == NULL); list = eina_list_append_relative(list, &data[5], &data[2]); fail_if(list == NULL); list = eina_list_prepend_relative(list, &data[6], &data[2]); fail_if(list == NULL); list = eina_list_remove_list(list, tmp); fail_if(list == NULL); fail_if(eina_list_data_find_list(list, &data[2]) != NULL); fail_if(eina_list_data_find(list, &data[2]) != NULL); fail_if(eina_list_data_find(list, &data[5]) != &data[5]); fail_if(eina_list_count(list) != 5); fail_if(eina_list_nth(list, 4) != &data[3]); fail_if(eina_list_nth(list, 10) != NULL); fail_if(eina_list_nth_list(list, 10) != NULL); for (tmp = list, i = 0; tmp != NULL; tmp = eina_list_next(tmp), ++i) { int *d = eina_list_data_get(tmp); fail_if(d == NULL); fail_if(*d != result[i]); } list = eina_list_reverse(list); for (tmp = list; tmp != NULL; tmp = eina_list_next(tmp), --i) { int *d = eina_list_data_get(tmp); fail_if(d == NULL); fail_if(*d != result[i - 1]); } list = eina_list_append_relative(list, &data[7], &data[7]); fail_if(list == NULL); list = eina_list_prepend_relative(list, &data[8], &data[8]); fail_if(list == NULL); list = eina_list_sort(list, 2, eina_int_cmp); list = eina_list_sort(list, 2, eina_int_cmp); test1 = eina_list_nth(list, 0); test2 = eina_list_nth(list, 1); test3 = eina_list_nth(list, 2); fail_if(test1 == NULL || test2 == NULL || test3 == NULL); fail_if(*test1 > *test2); fail_if(*test3 == *test2); list = eina_list_sort(list, 5, eina_int_cmp); test1 = eina_list_nth(list, 3); test2 = eina_list_nth(list, 4); test3 = eina_list_nth(list, 5); fail_if(test1 == NULL || test2 == NULL || test3 == NULL); fail_if(*test1 > *test2); fail_if(*test3 > *test2); list = eina_list_append(list, &data[8]); fail_if(list == NULL); list = eina_list_append(list, &data[7]); fail_if(list == NULL); list = eina_list_sort(list, -1, eina_int_cmp); test1 = eina_list_nth(list, 0); for (tmp = list; tmp != NULL; tmp = eina_list_next(tmp)) { int *d = eina_list_data_get(tmp); fail_if(*test1 > *d); test1 = d; } test3 = eina_list_nth(list, 5); fail_if(test3 == NULL); list = eina_list_promote_list(list, list); fail_if(list == NULL); list = eina_list_promote_list(list, eina_list_last(list)); fail_if(list == NULL); test1 = eina_list_nth(list, 0); test2 = eina_list_nth(list, 1); list = eina_list_promote_list(eina_list_next(list), list); fail_if(list == NULL); fail_if(eina_list_data_get(list) != test1); fail_if(eina_list_data_get(eina_list_next(list)) != test2); list = eina_list_remove_list(list, list); fail_if(list == NULL); list = eina_list_remove_list(list, eina_list_last(list)); fail_if(list == NULL); list = eina_list_free(list); fail_if(list != NULL); eina_shutdown(); } END_TEST START_TEST(eina_test_merge) { Eina_List *l1; Eina_List *l2; Eina_List *l3; Eina_List *l4; Eina_List *l5; int data[] = { 6, 9, 42, 1, 7, 9, 81, 1664, 1337, 3, 21, 10, 0, 5, 2008 }; int i; eina_init(); l1 = eina_list_append(NULL, &data[0]); l1 = eina_list_append(l1, &data[1]); l1 = eina_list_append(l1, &data[2]); l1 = eina_list_append(l1, &data[3]); fail_if(l1 == NULL); l2 = eina_list_append(NULL, &data[4]); l2 = eina_list_append(l2, &data[5]); fail_if(l2 == NULL); l1 = eina_list_merge(l1, l2); fail_if(l1 == NULL); fail_if(eina_list_count(l1) != 6); for (i = 0, l2 = l1; ((l2 != NULL) && (i < 6)); ++i, l2 = l2->next) fail_if(l2->data != &data[i]); fail_if(i != 6); fail_if(l2 != NULL); eina_list_free(l1); l1 = eina_list_append(NULL, &data[0]); l1 = eina_list_append(l1, &data[1]); fail_if(l1 == NULL); l2 = eina_list_append(NULL, &data[2]); l2 = eina_list_append(l2, &data[3]); l2 = eina_list_append(l2, &data[4]); l2 = eina_list_append(l2, &data[5]); fail_if(l2 == NULL); l1 = eina_list_merge(l1, l2); fail_if(l1 == NULL); fail_if(eina_list_count(l1) != 6); for (i = 0, l2 = l1; ((l2 != NULL) && (i < 6)); ++i, l2 = l2->next) fail_if(l2->data != &data[i]); fail_if(i != 6); fail_if(l2 != NULL); l3 = eina_list_append(NULL, &data[6]); l3 = eina_list_append(l3, &data[7]); l3 = eina_list_append(l3, &data[8]); l4 = eina_list_append(NULL, &data[9]); l4 = eina_list_append(l4, &data[10]); l4 = eina_list_append(l4, &data[11]); l5 = eina_list_append(NULL, &data[12]); l5 = eina_list_append(l5, &data[13]); l5 = eina_list_append(l5, &data[14]); l1 = eina_list_sort(l1, -1, eina_int_cmp); l3 = eina_list_sort(l3, -1, eina_int_cmp); l4 = eina_list_sort(l4, -1, eina_int_cmp); l5 = eina_list_sort(l5, -1, eina_int_cmp); l1 = eina_list_sorted_merge(l1, l3, eina_int_cmp); fail_if(l1 == NULL); fail_if(eina_list_count(l1) != 9); l1 = eina_list_sorted_merge(l1, l4, eina_int_cmp); fail_if(l1 == NULL); fail_if(eina_list_count(l1) != 12); l1 = eina_list_sorted_merge(l1, l5, eina_int_cmp); fail_if(l1 == NULL); fail_if(eina_list_count(l1) != 15); fail_if(!eina_list_sorted_check(l1)); eina_shutdown(); } END_TEST START_TEST(eina_test_sorted_insert) { const int data[] = {6, 9, 42, 1, 7, 9, 81, 1664, 1337, 3, 21, 10, 0, 5, 2008}; const int data2[] = {5, 0, 3, 2, 1, 0, 1, 2, 3, 4, 5}; int i, count; Eina_List *l1, *l2, *itr; void *d; eina_init(); count = sizeof(data) / sizeof(data[0]); l1 = NULL; for (i = 0; i < count; i++) l1 = eina_list_sorted_insert(l1, eina_int_cmp, data + i); fail_if(l1 == NULL); fail_if(!eina_list_sorted_check(l1)); l2 = NULL; EINA_LIST_FOREACH(l1, itr, d) l2 = eina_list_sorted_insert(l2, eina_int_cmp, d); fail_if(l2 == NULL); fail_if(!eina_list_sorted_check(l2)); eina_list_free(l2); l2 = NULL; EINA_LIST_REVERSE_FOREACH(l1, itr, d) l2 = eina_list_sorted_insert(l2, eina_int_cmp, d); fail_if(l2 == NULL); fail_if(!eina_list_sorted_check(l2)); eina_list_free(l2); eina_list_free(l1); count = sizeof(data2) / sizeof(data2[0]); l1 = NULL; for (i = 0; i < count; i++) l1 = eina_list_sorted_insert(l1, eina_int_cmp, data2 + i); fail_if(l1 == NULL); fail_if(!eina_list_sorted_check(l1)); eina_list_free(l1); eina_shutdown(); } END_TEST START_TEST(eina_test_list_split) { Eina_List *left = NULL, *right = NULL ; Eina_List *list = NULL; unsigned int i; eina_init(); list = eina_list_append(list, "tigh"); list = eina_list_append(list, "adar"); list = eina_list_append(list, "baltar"); list = eina_list_append(list, "roslin"); list = eina_list_append(list, "baltar"); list = eina_list_append(list, "roslin"); list = eina_list_append(list, "baltar"); list = eina_list_append(list, "roslin"); fail_if(list == NULL); fail_if(eina_list_count(list) != 8); for ( i = 0; i < 200; i++) { left = eina_list_split_list(list, eina_list_nth_list(list, i % 2), &right); if (i % 2 == 0) fail_if(eina_list_count(left) == 1 && eina_list_count(right) + eina_list_count(left) == i + 7); else fail_if(eina_list_count(left) == 2 && eina_list_count(right) + eina_list_count(left) == i + 7); list = eina_list_merge(left, right); list = eina_list_append(list, "roslin"); } eina_shutdown(); } END_TEST void eina_test_list(TCase *tc) { tcase_add_test(tc, eina_test_simple); tcase_add_test(tc, eina_test_merge); tcase_add_test(tc, eina_test_sorted_insert); tcase_add_test(tc, eina_test_list_split); } eina-1.7.10/src/tests/eina_test_iterator.c0000664000175000017500000002546012175475327015444 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_suite.h" #include "Eina.h" static Eina_Bool eina_iterator_array_check(__UNUSED__ const Eina_Array *array, int *data, int *fdata) { fail_if(*fdata > *data); *fdata = *data; return EINA_TRUE; } START_TEST(eina_iterator_array_simple) { Eina_Iterator *it; Eina_Array *ea; int *tmp; int i; eina_init(); ea = eina_array_new(11); fail_if(!ea); for (i = 0; i < 200; ++i) { tmp = malloc(sizeof(int)); fail_if(!tmp); *tmp = i; eina_array_push(ea, tmp); } it = eina_array_iterator_new(ea); fail_if(!it); i = -1; eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_array_check), &i); fail_if(i != 199); fail_if(eina_iterator_container_get(it) != ea); fail_if(eina_iterator_next(it, (void **)&tmp) != EINA_FALSE); eina_iterator_free(it); eina_array_free(ea); eina_shutdown(); } END_TEST static Eina_Bool eina_iterator_hash_key_check(const Eina_Hash *hash, const char *key, __UNUSED__ void *fdata) { fail_if(eina_hash_find(hash, key) == NULL); return EINA_TRUE; } static Eina_Bool eina_iterator_hash_data_check(const Eina_Hash *hash, int *data, __UNUSED__ void *fdata) { char tmp[10]; snprintf(tmp, 10, "%i", *data); fail_if(eina_hash_find(hash, tmp) != data); return EINA_TRUE; } static Eina_Bool eina_iterator_hash_tuple_check(__UNUSED__ const Eina_Hash *hash, Eina_Hash_Tuple *tuple, __UNUSED__ void *fdata) { fail_if(atoi((char *)tuple->key) != *((int *)tuple->data)); return EINA_TRUE; } START_TEST(eina_iterator_hash_simple) { Eina_Iterator *it; Eina_Hash *hash; int array[] = { 1, 42, 7, 8, 6 }; eina_init(); hash = eina_hash_string_superfast_new(NULL); fail_if(hash == NULL); fail_if(eina_hash_add(hash, "1", &array[0]) != EINA_TRUE); fail_if(eina_hash_add(hash, "42", &array[1]) != EINA_TRUE); fail_if(eina_hash_add(hash, "7", &array[2]) != EINA_TRUE); fail_if(eina_hash_add(hash, "8", &array[3]) != EINA_TRUE); fail_if(eina_hash_add(hash, "6", &array[4]) != EINA_TRUE); it = eina_hash_iterator_key_new(hash); eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_hash_key_check), NULL); eina_iterator_free(it); it = eina_hash_iterator_data_new(hash); eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_hash_data_check), NULL); eina_iterator_free(it); it = eina_hash_iterator_tuple_new(hash); eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_hash_tuple_check), NULL); eina_iterator_free(it); eina_hash_free(hash); eina_shutdown(); } END_TEST typedef struct _Eina_Test_Inlist Eina_Test_Inlist; struct _Eina_Test_Inlist { EINA_INLIST; int i; }; static Eina_Test_Inlist * _eina_test_inlist_build(int i) { Eina_Test_Inlist *tmp; tmp = malloc(sizeof(Eina_Test_Inlist)); fail_if(!tmp); tmp->i = i; return tmp; } static Eina_Bool eina_iterator_inlist_data_check(__UNUSED__ const Eina_Inlist *in_list, Eina_Test_Inlist *data, int *fdata) { switch (*fdata) { case 0: fail_if(data->i != 27); break; case 1: fail_if(data->i != 42); break; case 2: fail_if(data->i != 3227); break; case 3: fail_if(data->i != 1664); break; case 4: fail_if(data->i != 81); break; } (*fdata)++; return EINA_TRUE; } START_TEST(eina_iterator_inlist_simple) { Eina_Inlist *lst = NULL; Eina_Test_Inlist *tmp; Eina_Test_Inlist *prev; Eina_Iterator *it; int i = 0; tmp = _eina_test_inlist_build(42); lst = eina_inlist_append(lst, EINA_INLIST_GET(tmp)); fail_if(!lst); tmp = _eina_test_inlist_build(1664); lst = eina_inlist_append_relative(lst, EINA_INLIST_GET(tmp), lst); fail_if(!lst); fail_if(((Eina_Test_Inlist *)lst)->i != 42); prev = tmp; tmp = _eina_test_inlist_build(3227); lst = eina_inlist_prepend_relative(lst, EINA_INLIST_GET( tmp), EINA_INLIST_GET(prev)); fail_if(!lst); fail_if(((Eina_Test_Inlist *)lst)->i != 42); tmp = _eina_test_inlist_build(27); lst = eina_inlist_prepend_relative(lst, EINA_INLIST_GET(tmp), NULL); tmp = _eina_test_inlist_build(81); lst = eina_inlist_append_relative(lst, EINA_INLIST_GET(tmp), NULL); it = eina_inlist_iterator_new(lst); fail_if(!it); eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_inlist_data_check), &i); eina_iterator_free(it); fail_if(i != 5); } END_TEST static Eina_Bool eina_iterator_list_data_check(__UNUSED__ const Eina_List *list, int *data, int *fdata) { switch (*fdata) { case 0: fail_if(*data != 81); break; case 1: fail_if(*data != 7); break; case 2: fail_if(*data != 9); break; case 3: fail_if(*data != 6); break; case 4: fail_if(*data != 42); break; case 5: fail_if(*data != 1); break; case 6: fail_if(*data != 1337); break; } (*fdata)++; return EINA_TRUE; } START_TEST(eina_iterator_list_simple) { Eina_List *list = NULL; Eina_Iterator *it; int data[] = { 6, 9, 42, 1, 7, 1337, 81, 1664 }; int i = 0; eina_init(); list = eina_list_append(list, &data[0]); fail_if(list == NULL); list = eina_list_prepend(list, &data[1]); fail_if(list == NULL); list = eina_list_append(list, &data[2]); fail_if(list == NULL); list = eina_list_append(list, &data[3]); fail_if(list == NULL); list = eina_list_prepend(list, &data[4]); fail_if(list == NULL); list = eina_list_append(list, &data[5]); fail_if(list == NULL); list = eina_list_prepend(list, &data[6]); fail_if(list == NULL); it = eina_list_iterator_new(list); fail_if(!it); eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_list_data_check), &i); eina_iterator_free(it); } END_TEST typedef struct _Eina_Rbtree_Int Eina_Rbtree_Int; struct _Eina_Rbtree_Int { Eina_Rbtree node; int value; }; static Eina_Rbtree_Direction eina_rbtree_int_cmp(const Eina_Rbtree_Int *left, const Eina_Rbtree_Int *right) { fail_if(!left); fail_if(!right); if (left->value < right->value) return EINA_RBTREE_LEFT; return EINA_RBTREE_RIGHT; } static Eina_Rbtree * _eina_rbtree_int_new(int value) { Eina_Rbtree_Int *it; it = malloc(sizeof (Eina_Rbtree_Int)); fail_if(!it); it->value = value; return &it->node; } static Eina_Bool eina_iterator_rbtree_data_check_sorted(__UNUSED__ const Eina_List *list, Eina_Rbtree_Int *data, int *fdata) { switch (*fdata) { case 0: fail_if(data->value != 10); break; case 1: fail_if(data->value != 27); break; case 2: fail_if(data->value != 42); break; case 3: fail_if(data->value != 69); break; case 4: fail_if(data->value != 1337); break; } (*fdata)++; return EINA_TRUE; } static Eina_Bool eina_iterator_rbtree_data_check_prefix(__UNUSED__ const Eina_List *list, Eina_Rbtree_Int *data, int *fdata) { switch (*fdata) { case 0: fail_if(data->value != 27); break; case 1: fail_if(data->value != 10); break; case 2: fail_if(data->value != 69); break; case 3: fail_if(data->value != 42); break; case 4: fail_if(data->value != 1337); break; } (*fdata)++; return EINA_TRUE; } static Eina_Bool eina_iterator_rbtree_data_check_postfix(__UNUSED__ const Eina_List *list, Eina_Rbtree_Int *data, int *fdata) { switch (*fdata) { case 0: fail_if(data->value != 10); break; case 1: fail_if(data->value != 42); break; case 2: fail_if(data->value != 1337); break; case 3: fail_if(data->value != 69); break; case 4: fail_if(data->value != 27); break; } (*fdata)++; return EINA_TRUE; } START_TEST(eina_iterator_rbtree_simple) { Eina_Rbtree *root = NULL; Eina_Iterator *it; int i; root = eina_rbtree_inline_insert(NULL, _eina_rbtree_int_new(10), EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp), NULL); fail_if(!root); root = eina_rbtree_inline_insert(root, _eina_rbtree_int_new(1337), EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp), NULL); fail_if(!root); root = eina_rbtree_inline_insert(root, _eina_rbtree_int_new(27), EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp), NULL); fail_if(!root); root = eina_rbtree_inline_insert(root, _eina_rbtree_int_new(69), EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp), NULL); fail_if(!root); root = eina_rbtree_inline_insert(root, _eina_rbtree_int_new(42), EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp), NULL); fail_if(!root); i = 0; it = eina_rbtree_iterator_prefix(root); fail_if(!it); eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_rbtree_data_check_prefix), &i); eina_iterator_free(it); /* This will return the item sorted. */ i = 0; it = eina_rbtree_iterator_infix(root); fail_if(!it); eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_rbtree_data_check_sorted), &i); eina_iterator_free(it); i = 0; it = eina_rbtree_iterator_postfix(root); fail_if(!it); eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_rbtree_data_check_postfix), &i); eina_iterator_free(it); } END_TEST void eina_test_iterator(TCase *tc) { tcase_add_test(tc, eina_iterator_array_simple); tcase_add_test(tc, eina_iterator_hash_simple); tcase_add_test(tc, eina_iterator_inlist_simple); tcase_add_test(tc, eina_iterator_list_simple); tcase_add_test(tc, eina_iterator_rbtree_simple); } eina-1.7.10/src/tests/eina_test_file.c0000664000175000017500000000736212175475327014533 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include "eina_suite.h" #include "Eina.h" #include "eina_safety_checks.h" #ifdef EINA_SAFETY_CHECKS struct log_ctx { const char *msg; const char *fnc; Eina_Bool did; }; /* tests should not output on success, just uncomment this for debugging */ //#define SHOW_LOG 1 static void _eina_test_safety_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__) { struct log_ctx *ctx = data; va_list cp_args; const char *str; va_copy(cp_args, args); str = va_arg(cp_args, const char *); va_end(cp_args); ck_assert_int_eq(level, EINA_LOG_LEVEL_ERR); ck_assert_str_eq(fmt, "%s"); ck_assert_str_eq(ctx->msg, str); ck_assert_str_eq(ctx->fnc, fnc); ctx->did = EINA_TRUE; #ifdef SHOW_LOG eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args); #else (void)d; (void)file; (void)line; #endif } #endif START_TEST(eina_file_split_simple) { Eina_Array *ea; eina_init(); #ifdef EINA_SAFETY_CHECKS #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif struct log_ctx ctx; #define TEST_MAGIC_SAFETY(fn, _msg) \ ctx.msg = _msg; \ ctx.fnc = fn; \ ctx.did = EINA_FALSE eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx); TEST_MAGIC_SAFETY("eina_file_split", "safety check failed: path == NULL"); ea = eina_file_split(NULL); fail_if(ea); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); eina_log_print_cb_set(eina_log_print_cb_stderr, NULL); #undef TEST_MAGIC_SAFETY #endif #ifdef _WIN32 ea = eina_file_split(strdup("\\this\\is\\a\\small\\test")); #else ea = eina_file_split(strdup("/this/is/a/small/test")); #endif fail_if(!ea); fail_if(eina_array_count(ea) != 5); fail_if(strcmp(eina_array_data_get(ea, 0), "this")); fail_if(strcmp(eina_array_data_get(ea, 1), "is")); fail_if(strcmp(eina_array_data_get(ea, 2), "a")); fail_if(strcmp(eina_array_data_get(ea, 3), "small")); fail_if(strcmp(eina_array_data_get(ea, 4), "test")); eina_array_free(ea); #ifdef _WIN32 ea = eina_file_split(strdup( "this\\\\is\\\\\\a \\more\\complex\\\\\\case\\\\\\")); #else ea = eina_file_split(strdup("this//is///a /more/complex///case///")); #endif fail_if(!ea); fail_if(eina_array_count(ea) != 6); fail_if(strcmp(eina_array_data_get(ea, 0), "this")); fail_if(strcmp(eina_array_data_get(ea, 1), "is")); fail_if(strcmp(eina_array_data_get(ea, 2), "a ")); fail_if(strcmp(eina_array_data_get(ea, 3), "more")); fail_if(strcmp(eina_array_data_get(ea, 4), "complex")); fail_if(strcmp(eina_array_data_get(ea, 5), "case")); eina_array_free(ea); eina_shutdown(); } END_TEST void eina_test_file(TCase *tc) { tcase_add_test(tc, eina_file_split_simple); } eina-1.7.10/src/tests/eina_test_str.c0000664000175000017500000001324312175475327014417 00000000000000/* EINA - EFL data type library * Copyright (C) 2010 Gustavo Sverzut Barbieri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_suite.h" #include "Eina.h" START_TEST(str_simple) { eina_init(); fail_if(!eina_str_has_prefix("", "")); fail_if(!eina_str_has_prefix("x", "x")); fail_if(!eina_str_has_prefix("xab", "x")); fail_if(!eina_str_has_prefix("xab", "xab")); fail_if(eina_str_has_prefix("x", "xab")); fail_if(eina_str_has_prefix("xab", "xyz")); fail_if(eina_str_has_prefix("", "x")); fail_if(eina_str_has_prefix("X", "x")); fail_if(eina_str_has_prefix("xAb", "X")); fail_if(eina_str_has_prefix("xAb", "xab")); fail_if(!eina_str_has_suffix("", "")); fail_if(!eina_str_has_suffix("x", "x")); fail_if(!eina_str_has_suffix("abx", "x")); fail_if(!eina_str_has_suffix("xab", "xab")); fail_if(eina_str_has_suffix("x", "xab")); fail_if(eina_str_has_suffix("xab", "xyz")); fail_if(eina_str_has_suffix("", "x")); fail_if(eina_str_has_suffix("X", "x")); fail_if(eina_str_has_suffix("aBx", "X")); fail_if(eina_str_has_suffix("xaB", "Xab")); fail_if(!eina_str_has_extension("", "")); fail_if(!eina_str_has_extension("x", "x")); fail_if(!eina_str_has_extension("abx", "x")); fail_if(!eina_str_has_extension("xab", "xab")); fail_if(!eina_str_has_extension("x", "X")); fail_if(!eina_str_has_extension("abx", "X")); fail_if(!eina_str_has_extension("xab", "Xab")); fail_if(!eina_str_has_extension("X", "X")); fail_if(!eina_str_has_extension("aBx", "X")); fail_if(!eina_str_has_extension("xaB", "Xab")); fail_if(eina_str_has_extension("x", "xab")); fail_if(eina_str_has_extension("xab", "xyz")); fail_if(eina_str_has_extension("", "x")); fail_if(eina_str_has_extension("x", "xAb")); fail_if(eina_str_has_extension("xab", "xYz")); fail_if(eina_str_has_extension("", "x")); fail_if(eina_strlen_bounded("abc", 1024) != strlen("abc")); fail_if(eina_strlen_bounded("abc", 2) != (size_t)-1); eina_shutdown(); } END_TEST START_TEST(str_split) { char **result; unsigned int elements; eina_init(); result = eina_str_split_full("nomatch", "", -1, &elements); fail_if(result != NULL); fail_if(elements != 0); result = eina_str_split_full("nomatch", "x", -1, &elements); fail_if(result == NULL); fail_if(elements != 1); fail_if(strcmp(result[0], "nomatch") != 0); fail_if(result[1]); free(result[0]); free(result); result = eina_str_split_full("nomatch", "xyz", -1, &elements); fail_if(result == NULL); fail_if(elements != 1); fail_if(strcmp(result[0], "nomatch") != 0); fail_if(result[1]); free(result[0]); free(result); result = eina_str_split_full("match:match:match", ":", -1, &elements); fail_if(result == NULL); fail_if(elements != 3); for (elements = 0; elements < 3 - 1; elements++) fail_if(strcmp(result[elements], "match") != 0); fail_if(result[3]); free(result[0]); free(result); result = eina_str_split_full("a:b:c", ":", -1, &elements); fail_if(result == NULL); fail_if(elements != 3); fail_if(strcmp(result[0], "a") != 0); fail_if(strcmp(result[1], "b") != 0); fail_if(strcmp(result[2], "c") != 0); fail_if(result[3]); free(result[0]); free(result); result = eina_str_split_full("a:b:", ":", -1, &elements); fail_if(result == NULL); fail_if(elements != 3); fail_if(strcmp(result[0], "a") != 0); fail_if(strcmp(result[1], "b") != 0); fail_if(strcmp(result[2], "") != 0); fail_if(result[3]); free(result[0]); free(result); result = eina_str_split_full(":b:c", ":", -1, &elements); fail_if(result == NULL); fail_if(elements != 3); fail_if(strcmp(result[0], "") != 0); fail_if(strcmp(result[1], "b") != 0); fail_if(strcmp(result[2], "c") != 0); fail_if(result[3]); free(result[0]); free(result); result = eina_str_split_full(":", ":", -1, &elements); fail_if(result == NULL); fail_if(elements != 2); fail_if(strcmp(result[0], "") != 0); fail_if(strcmp(result[1], "") != 0); fail_if(result[2]); free(result[0]); free(result); result = eina_str_split_full("a", "!!!!!!!!!", -1, &elements); fail_if(result == NULL); fail_if(elements != 1); fail_if(strcmp(result[0], "a") != 0); fail_if(result[1]); free(result[0]); free(result); result = eina_str_split_full("aaba", "ab", -1, &elements); fail_if(result == NULL); fail_if(elements != 2); fail_if(strcmp(result[0], "a") != 0); fail_if(strcmp(result[1], "a") != 0); fail_if(result[2]); free(result[0]); free(result); eina_shutdown(); } END_TEST void eina_test_str(TCase *tc) { tcase_add_test(tc, str_simple); tcase_add_test(tc, str_split); } eina-1.7.10/src/tests/eina_bench_quad.c0000664000175000017500000002354312175475327014645 00000000000000/* EINA - EFL data type library * Copyright (C) 2010 Cedric BAIL * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #define WIDTH 720 #define HEIGHT 576 #include #include "eina_main.h" #include "eina_mempool.h" #include "eina_rectangle.h" #include "eina_quadtree.h" #include "eina_list.h" #include "eina_bench.h" static void eina_bench_render_loop(int request) { Eina_List *objects = NULL; Eina_Rectangle *r; int i; int j; eina_init(); for (i = 0; i < request; ++i) objects = eina_list_append(objects, eina_rectangle_new((rand() * WIDTH) / RAND_MAX, (rand() * HEIGHT) / RAND_MAX, (rand() * WIDTH / 2) / RAND_MAX, (rand() * HEIGHT / 2) / RAND_MAX)); for (j = 0; j < 100; ++j) { Eina_Rectangle *collide; Eina_List *collided = NULL; Eina_List *changed = NULL; Eina_List *l; /* Delete 25% of all objects */ i = request * 25 / 100; for (; i > 0; --i) { eina_rectangle_free(eina_list_data_get(objects)); objects = eina_list_remove_list(objects, objects); } /* Add them back */ i = request * 25 / 100; for (; i > 0; --i) { r = eina_rectangle_new((rand() * WIDTH) / RAND_MAX, (rand() * HEIGHT) / RAND_MAX, (rand() * WIDTH / 3) / RAND_MAX, (rand() * HEIGHT / 3) / RAND_MAX); objects = eina_list_prepend(objects, r); changed = eina_list_append(changed, r); } /* Do one collide search */ collide = eina_rectangle_new((rand() * WIDTH) / RAND_MAX, (rand() * HEIGHT) / RAND_MAX, (rand() * WIDTH / 4) / RAND_MAX, (rand() * HEIGHT / 4) / RAND_MAX); EINA_LIST_FOREACH(objects, l, r) if (eina_rectangles_intersect(r, collide)) collided = eina_list_append(collided, r); collided = eina_list_free(collided); eina_rectangle_free(collide); /* Modify 50% of all objects */ i = request * 50 / 100; for (; i > 0; --i) { r = eina_list_data_get(eina_list_last(objects)); objects = eina_list_remove_list(objects, eina_list_last(objects)); r->x = (rand() * WIDTH) / RAND_MAX; r->y = (rand() * HEIGHT) / RAND_MAX; r->w = (rand() * WIDTH / 3) / RAND_MAX; r->h = (rand() * HEIGHT / 3) / RAND_MAX; objects = eina_list_prepend(objects, r); changed = eina_list_append(changed, r); } /* Emulating the render loop by colliding all modified object with all intersecting object */ EINA_LIST_FREE(changed, r) { EINA_LIST_FOREACH(objects, l, collide) if (r != collide && eina_rectangles_intersect(collide, r)) collided = eina_list_append(collided, collide); collided = eina_list_append(collided, r); } /* Ok, we compute it, now it's done */ collided = eina_list_free(collided); } EINA_LIST_FREE(objects, r) eina_rectangle_free(r); eina_shutdown(); } typedef struct _Eina_Bench_Quad Eina_Bench_Quad; struct _Eina_Bench_Quad { Eina_Rectangle r; Eina_QuadTree_Item *item; }; static Eina_Quad_Direction _eina_bench_quadtree_vertical(const void *object, size_t middle) { const Eina_Bench_Quad *b = object; size_t y; y = b->r.y < 0 ? 0 : (size_t)b->r.y; if (y + b->r.h < middle) return EINA_QUAD_LEFT; if (y > middle) return EINA_QUAD_RIGHT; return EINA_QUAD_BOTH; } static Eina_Quad_Direction _eina_bench_quadtree_horizontal(const void *object, size_t middle) { const Eina_Bench_Quad *b = object; size_t x; x = b->r.x < 0 ? 0 : (size_t)b->r.x; if (x + b->r.w < middle) return EINA_QUAD_LEFT; if (x > middle) return EINA_QUAD_RIGHT; return EINA_QUAD_BOTH; } static void eina_bench_quadtree_render_loop(int request) { Eina_List *objects = NULL; Eina_Inlist *possibility; Eina_Bench_Quad *b; Eina_QuadTree *q; Eina_Mempool *mp; int i; int j; eina_init(); mp = eina_mempool_add("chained_mempool", "bench-quad", NULL, sizeof (Eina_Bench_Quad), 320); q = eina_quadtree_new(WIDTH, HEIGHT, _eina_bench_quadtree_vertical, _eina_bench_quadtree_horizontal); /* Create requested object */ for (i = 0; i < request; ++i) { b = eina_mempool_malloc(mp, sizeof (Eina_Bench_Quad)); EINA_RECTANGLE_SET(&b->r, (rand() * WIDTH) / RAND_MAX, (rand() * HEIGHT) / RAND_MAX, (rand() * WIDTH / 2) / RAND_MAX, (rand() * HEIGHT / 2) / RAND_MAX); b->item = eina_quadtree_add(q, b); objects = eina_list_append(objects, b); } for (j = 0; j < 100; ++j) { Eina_Bench_Quad *collide; Eina_List *changed = NULL; Eina_List *collided = NULL; /* Delete 25% of all objects */ i = request * 25 / 100; for (; i > 0; --i) { b = eina_list_data_get(objects); eina_quadtree_del(b->item); eina_mempool_free(mp, b); objects = eina_list_remove_list(objects, objects); } /* Add them back */ i = request * 25 / 100; for (; i > 0; --i) { b = eina_mempool_malloc(mp, sizeof (Eina_Bench_Quad)); EINA_RECTANGLE_SET(&b->r, (rand() * WIDTH) / RAND_MAX, (rand() * HEIGHT) / RAND_MAX, (rand() * WIDTH / 3) / RAND_MAX, (rand() * HEIGHT / 3) / RAND_MAX); b->item = eina_quadtree_add(q, b); objects = eina_list_prepend(objects, b); changed = eina_list_append(changed, b); } /* Do one collide search */ collide = eina_mempool_malloc(mp, sizeof (Eina_Bench_Quad)); EINA_RECTANGLE_SET(&collide->r, (rand() * WIDTH) / RAND_MAX, (rand() * HEIGHT) / RAND_MAX, (rand() * WIDTH / 4) / RAND_MAX, (rand() * HEIGHT / 4) / RAND_MAX); possibility = eina_quadtree_collide(q, collide->r.x, collide->r.y, collide->r.w, collide->r.h); while (possibility) { b = eina_quadtree_object(possibility); possibility = possibility->next; if (eina_rectangles_intersect(&b->r, &collide->r)) collided = eina_list_append(collided, b); } collided = eina_list_free(collided); eina_mempool_free(mp, collide); /* Modify 50% of all objects */ i = request * 50 / 100; for (; i > 0; --i) { b = eina_list_data_get(eina_list_last(objects)); objects = eina_list_remove_list(objects, eina_list_last(objects)); b->r.x = (rand() * WIDTH) / RAND_MAX; b->r.y = (rand() * HEIGHT) / RAND_MAX; b->r.w = (rand() * WIDTH / 3) / RAND_MAX; b->r.h = (rand() * HEIGHT / 3) / RAND_MAX; eina_quadtree_change(b->item); objects = eina_list_prepend(objects, b); changed = eina_list_append(changed, b); } /* Emulating the render loop by colliding all modified object with all intersecting object */ EINA_LIST_FREE(changed, b) { possibility = eina_quadtree_collide(q, b->r.x, b->r.y, b->r.w, b->r.h); while (possibility) { collide = eina_quadtree_object(possibility); possibility = possibility->next; if (collide != b && eina_rectangles_intersect(&b->r, &collide->r)) collided = eina_list_append(collided, collide); } collided = eina_list_append(collided, b); } /* Ok, we compute it, now it's done */ collided = eina_list_free(collided); } EINA_LIST_FREE(objects, b) { eina_quadtree_del(b->item); eina_mempool_free(mp, b); } eina_mempool_del(mp); eina_quadtree_free(q); eina_shutdown(); } void eina_bench_quadtree(Eina_Benchmark *bench) { eina_benchmark_register(bench, "collide-all", EINA_BENCHMARK(eina_bench_render_loop), 100, 1500, 50); eina_benchmark_register(bench, "collide-quad-tree", EINA_BENCHMARK(eina_bench_quadtree_render_loop), 100, 1500, 50); } eina-1.7.10/src/tests/eina_bench_array.c0000664000175000017500000004235312175475327015031 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #ifdef EINA_BENCH_HAVE_GLIB # include #endif #include "Evas_Data.h" #include "Ecore_Data.h" #include "eina_bench.h" #include "eina_array.h" #include "eina_list.h" #include "eina_inlist.h" #include "eina_main.h" typedef struct _Eina_Bench_Object Eina_Bench_Object; struct _Eina_Bench_Object { EINA_INLIST; void *somewhere; int data; Eina_Bool keep; }; static Eina_Bool keep(void *data, __UNUSED__ void *gdata) { Eina_Bench_Object *bo = data; if (bo->keep == EINA_TRUE) return EINA_TRUE; free(bo); return EINA_FALSE; } static void eina_bench_array_4evas_render_inline(int request) { Eina_Array *array; Eina_Bench_Object *ebo; Eina_Array_Iterator it; unsigned int i; unsigned int j; srand(time(NULL)); eina_init(); array = eina_array_new(64); for (i = 0; i < 1000; ++i) { for (j = 0; j < (unsigned int)request; ++j) { ebo = malloc(sizeof (Eina_Bench_Object)); if (!ebo) continue; ebo->keep = rand() < (RAND_MAX / 2) ? EINA_TRUE : EINA_FALSE; eina_array_push(array, ebo); } if (i == 500) { EINA_ARRAY_ITER_NEXT(array, j, ebo, it) free(ebo); eina_array_clean(array); } else if (i % 30 == 0) eina_array_remove(array, keep, NULL); EINA_ARRAY_ITER_NEXT(array, j, ebo, it) ebo->keep = rand() < (RAND_MAX / 2) ? ebo->keep : EINA_FALSE; } EINA_ARRAY_ITER_NEXT(array, j, ebo, it) free(ebo); eina_array_free(array); eina_shutdown(); } static Eina_Bool eina_iterator_ebo_free(__UNUSED__ const Eina_Array *array, Eina_Bench_Object *ebo, __UNUSED__ void *fdata) { free(ebo); return EINA_TRUE; } static Eina_Bool eina_iterator_ebo_rand(__UNUSED__ const void *container, Eina_Bench_Object *ebo, __UNUSED__ void *fdata) { ebo->keep = rand() < (RAND_MAX / 2) ? ebo->keep : EINA_FALSE; return EINA_TRUE; } static void eina_bench_array_4evas_render_iterator(int request) { Eina_Array *array; Eina_Bench_Object *ebo; Eina_Iterator *it; unsigned int i; unsigned int j; srand(time(NULL)); eina_init(); array = eina_array_new(64); for (i = 0; i < 1000; ++i) { for (j = 0; j < (unsigned int)request; ++j) { ebo = malloc(sizeof (Eina_Bench_Object)); if (!ebo) continue; ebo->keep = rand() < (RAND_MAX / 2) ? EINA_TRUE : EINA_FALSE; eina_array_push(array, ebo); } if (i == 500) { it = eina_array_iterator_new(array); eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_ebo_free), NULL); eina_iterator_free(it); eina_array_clean(array); } else if (i % 30 == 0) eina_array_remove(array, keep, NULL); it = eina_array_iterator_new(array); eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_ebo_rand), NULL); eina_iterator_free(it); } it = eina_array_iterator_new(array); eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_ebo_free), NULL); eina_iterator_free(it); eina_array_free(array); eina_shutdown(); } static void eina_bench_list_4evas_render(int request) { Eina_List *list = NULL; Eina_List *tmp; Eina_Bench_Object *ebo; int i; int j; eina_init(); for (i = 0; i < 1000; ++i) { for (j = 0; j < request; ++j) { ebo = malloc(sizeof (Eina_Bench_Object)); if (!ebo) continue; ebo->keep = rand() < (RAND_MAX / 2) ? EINA_TRUE : EINA_FALSE; list = eina_list_prepend(list, ebo); } if (i == 500) while (list) { free(eina_list_data_get(list)); list = eina_list_remove_list(list, list); } else if (i % 30 == 0) { tmp = list; while (tmp) { Eina_List *reminder = tmp; ebo = eina_list_data_get(reminder); tmp = eina_list_next(tmp); if (ebo->keep == EINA_FALSE) { list = eina_list_remove_list(list, reminder); free(ebo); } } } for (tmp = list; tmp; tmp = eina_list_next(tmp)) { ebo = eina_list_data_get(tmp); ebo->keep = rand() < (RAND_MAX / 2) ? ebo->keep : EINA_FALSE; } } while (list) { free(eina_list_data_get(list)); list = eina_list_remove_list(list, list); } eina_shutdown(); } static void eina_bench_list_4evas_render_iterator(int request) { Eina_List *list = NULL; Eina_List *tmp; Eina_Bench_Object *ebo; Eina_Iterator *it; int i; int j; eina_init(); for (i = 0; i < 1000; ++i) { for (j = 0; j < request; ++j) { ebo = malloc(sizeof (Eina_Bench_Object)); if (!ebo) continue; ebo->keep = rand() < (RAND_MAX / 2) ? EINA_TRUE : EINA_FALSE; list = eina_list_prepend(list, ebo); } if (i == 500) while (list) { free(eina_list_data_get(list)); list = eina_list_remove_list(list, list); } else if (i % 30 == 0) { tmp = list; while (tmp) { Eina_List *reminder = tmp; ebo = eina_list_data_get(reminder); tmp = eina_list_next(tmp); if (ebo->keep == EINA_FALSE) { list = eina_list_remove_list(list, reminder); free(ebo); } } } it = eina_list_iterator_new(list); eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_ebo_rand), NULL); eina_iterator_free(it); } while (list) { free(eina_list_data_get(list)); list = eina_list_remove_list(list, list); } eina_shutdown(); } static void eina_bench_inlist_4evas_render(int request) { Eina_Inlist *head = NULL; Eina_Inlist *tmp; Eina_Bench_Object *ebo; int i; int j; for (i = 0; i < 1000; ++i) { for (j = 0; j < request; ++j) { ebo = malloc(sizeof (Eina_Bench_Object)); if (!ebo) continue; ebo->keep = rand() < (RAND_MAX / 2) ? EINA_TRUE : EINA_FALSE; head = eina_inlist_prepend(head, EINA_INLIST_GET(ebo)); } if (i == 500) while (head) { tmp = head; head = head->next; free(tmp); } else if (i % 30 == 0) { tmp = head; while(tmp) { ebo = (Eina_Bench_Object *)tmp; tmp = tmp->next; if (ebo->keep == EINA_FALSE) { head = eina_inlist_remove(head, EINA_INLIST_GET(ebo)); free(ebo); } } } EINA_INLIST_FOREACH(head, ebo) ebo->keep = rand() < (RAND_MAX / 2) ? ebo->keep : EINA_FALSE; } while (head) { tmp = head; head = head->next; free(tmp); } } static void eina_bench_inlist_4evas_render_iterator(int request) { Eina_Inlist *head = NULL; Eina_Inlist *tmp; Eina_Bench_Object *ebo; Eina_Iterator *it; int i; int j; for (i = 0; i < 1000; ++i) { for (j = 0; j < request; ++j) { ebo = malloc(sizeof (Eina_Bench_Object)); if (!ebo) continue; ebo->keep = rand() < (RAND_MAX / 2) ? EINA_TRUE : EINA_FALSE; head = eina_inlist_prepend(head, EINA_INLIST_GET(ebo)); } if (i == 500) while (head) { tmp = head; head = head->next; free(tmp); } else if (i % 30 == 0) { tmp = head; while(tmp) { ebo = (Eina_Bench_Object *)tmp; tmp = tmp->next; if (ebo->keep == EINA_FALSE) { head = eina_inlist_remove(head, EINA_INLIST_GET(ebo)); free(ebo); } } } it = eina_inlist_iterator_new(head); eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_ebo_rand), NULL); eina_iterator_free(it); } while (head) { tmp = head; head = head->next; free(tmp); } } #ifdef EINA_BENCH_HAVE_GLIB static void eina_bench_glist_4evas_render(int request) { GList *list = NULL; GList *tmp; Eina_Bench_Object *ebo; int i; int j; for (i = 0; i < 1000; ++i) { for (j = 0; j < request; ++j) { ebo = malloc(sizeof (Eina_Bench_Object)); if (!ebo) continue; ebo->keep = rand() < (RAND_MAX / 2) ? EINA_TRUE : EINA_FALSE; list = g_list_prepend(list, ebo); } if (i == 500) while (list) { free(list->data); list = g_list_delete_link(list, list); } else if (i % 30 == 0) { tmp = list; while (tmp) { GList *reminder = tmp; ebo = reminder->data; tmp = g_list_next(tmp); if (ebo->keep == EINA_FALSE) { list = g_list_delete_link(list, reminder); free(ebo); } } } for (tmp = list; tmp; tmp = g_list_next(tmp)) { ebo = tmp->data; ebo->keep = rand() < (RAND_MAX / 2) ? ebo->keep : EINA_FALSE; } } while (list) { free(list->data); list = g_list_delete_link(list, list); } } static void eina_bench_gptrarray_4evas_render(int request) { GPtrArray *array = NULL; Eina_Bench_Object *ebo; unsigned int j; int i; array = g_ptr_array_new(); for (i = 0; i < 1000; ++i) { for (j = 0; j < (unsigned int)request; ++j) { ebo = malloc(sizeof (Eina_Bench_Object)); if (!ebo) continue; ebo->keep = rand() < (RAND_MAX / 2) ? EINA_TRUE : EINA_FALSE; g_ptr_array_add(array, ebo); } if (i == 500) { for (j = 0; j < array->len; ++j) free(g_ptr_array_index(array, j)); g_ptr_array_remove_range(array, 0, array->len); } else if (i % 30 == 0) for (j = 0; j < array->len; ) { ebo = g_ptr_array_index(array, j); if (ebo->keep == EINA_FALSE) free(g_ptr_array_remove_index_fast(array, j)); else j++; } for (j = 0; j < array->len; ++j) { ebo = g_ptr_array_index(array, j); ebo->keep = rand() < (RAND_MAX / 2) ? ebo->keep : EINA_FALSE; } } for (j = 0; j < array->len; ++j) free(g_ptr_array_index(array, j)); g_ptr_array_free(array, TRUE); } #endif static void eina_bench_evas_list_4evas_render(int request) { Evas_List *list = NULL; Evas_List *tmp; Eina_Bench_Object *ebo; int i; int j; for (i = 0; i < 1000; ++i) { for (j = 0; j < request; ++j) { ebo = malloc(sizeof (Eina_Bench_Object)); if (!ebo) continue; ebo->keep = rand() < (RAND_MAX / 2) ? EINA_TRUE : EINA_FALSE; list = evas_list_prepend(list, ebo); } if (i == 500) while (list) { free(evas_list_data(list)); list = evas_list_remove_list(list, list); } else if (i % 30 == 0) { tmp = list; while (tmp) { Evas_List *reminder = tmp; ebo = evas_list_data(reminder); tmp = evas_list_next(tmp); if (ebo->keep == EINA_FALSE) { list = evas_list_remove_list(list, reminder); free(ebo); } } } for (tmp = list; tmp; tmp = evas_list_next(tmp)) { ebo = evas_list_data(tmp); ebo->keep = rand() < (RAND_MAX / 2) ? ebo->keep : EINA_FALSE; } } while (list) { free(evas_list_data(list)); list = evas_list_remove_list(list, list); } } static void _eina_ecore_for_each_remove(void *value, void *user_data) { Eina_Bench_Object *ebo = value; Ecore_List *list = user_data; if (ebo->keep == EINA_FALSE) ecore_list_remove_destroy(list); } static void _eina_ecore_for_each_rand(void *value, __UNUSED__ void *user_data) { Eina_Bench_Object *ebo = value; ebo->keep = rand() < (RAND_MAX / 2) ? ebo->keep : EINA_FALSE; } static void eina_bench_ecore_list_4evas_render(int request) { Ecore_List *list = NULL; Eina_Bench_Object *ebo; int i; int j; list = ecore_list_new(); ecore_list_free_cb_set(list, free); for (i = 0; i < 1000; ++i) { for (j = 0; j < request; ++j) { ebo = malloc(sizeof (Eina_Bench_Object)); if (!ebo) continue; ebo->keep = rand() < (RAND_MAX / 2) ? EINA_TRUE : EINA_FALSE; ecore_list_prepend(list, ebo); } if (i == 500) ecore_list_clear(list); else if (i % 30 == 0) ecore_list_for_each(list, _eina_ecore_for_each_remove, list); ecore_list_for_each(list, _eina_ecore_for_each_rand, list); } ecore_list_destroy(list); } void eina_bench_array(Eina_Benchmark *bench) { eina_benchmark_register(bench, "array-inline", EINA_BENCHMARK( eina_bench_array_4evas_render_inline), 200, 4000, 100); eina_benchmark_register(bench, "array-iterator", EINA_BENCHMARK( eina_bench_array_4evas_render_iterator), 200, 4000, 100); eina_benchmark_register(bench, "list", EINA_BENCHMARK( eina_bench_list_4evas_render), 200, 4000, 100); eina_benchmark_register(bench, "list-iterator", EINA_BENCHMARK( eina_bench_list_4evas_render_iterator), 200, 4000, 100); eina_benchmark_register(bench, "inlist", EINA_BENCHMARK( eina_bench_inlist_4evas_render), 200, 4000, 100); eina_benchmark_register(bench, "inlist-iterator", EINA_BENCHMARK( eina_bench_inlist_4evas_render_iterator), 200, 4000, 100); #ifdef EINA_BENCH_HAVE_GLIB eina_benchmark_register(bench, "glist", EINA_BENCHMARK( eina_bench_glist_4evas_render), 200, 4000, 100); eina_benchmark_register(bench, "gptrarray", EINA_BENCHMARK( eina_bench_gptrarray_4evas_render), 200, 4000, 100); #endif eina_benchmark_register(bench, "evas", EINA_BENCHMARK( eina_bench_evas_list_4evas_render), 200, 4000, 100); eina_benchmark_register(bench, "ecore", EINA_BENCHMARK( eina_bench_ecore_list_4evas_render), 200, 500, 100); } eina-1.7.10/src/tests/ecore_list.c0000664000175000017500000014526512175475327013716 00000000000000#ifdef HAVE_CONFIG_H # include #endif #include #include #include "Ecore_Data.h" /* Some tests showed that beyond that value heap sort is faster than merge sort * (in this implementation). This value has to be changed or at least review * if someone is changing the implementation. */ #define ECORE_MERGESORT_LIMIT 40000 /* Return information about the list */ static void * _ecore_list_current(Ecore_List *list); /* Adding functions */ static int _ecore_list_insert(Ecore_List *list, Ecore_List_Node *node); static int _ecore_list_append_0(Ecore_List *list, Ecore_List_Node *node); static int _ecore_list_prepend_0(Ecore_List *list, Ecore_List_Node *node); /* Remove functions */ static void * _ecore_list_remove_0(Ecore_List *list); static void * _ecore_list_first_remove(Ecore_List *list); static void * _ecore_list_last_remove(Ecore_List *list); /* Basic traversal functions */ static void * _ecore_list_next(Ecore_List *list); static void * _ecore_list_last_goto(Ecore_List *list); static void * _ecore_list_first_goto(Ecore_List *list); static void * _ecore_list_goto(Ecore_List *list, const void *data); static void * _ecore_list_index_goto(Ecore_List *list, int idx); /* Iterative functions */ static int _ecore_list_for_each(Ecore_List *list, Ecore_For_Each function, void *user_data); static void * _ecore_list_find(Ecore_List *list, Ecore_Compare_Cb function, const void *user_data); /* Sorting functions */ static Ecore_List_Node *_ecore_list_node_mergesort(Ecore_List_Node *first, int n, Ecore_Compare_Cb compare, int order); static Ecore_List_Node *_ecore_list_node_merge(Ecore_List_Node *first, Ecore_List_Node *second, Ecore_Compare_Cb compare, int order); static Ecore_List_Node *_ecore_dlist_node_mergesort(Ecore_List_Node *first, int n, Ecore_Compare_Cb compare, int order); static Ecore_List_Node *_ecore_dlist_node_merge(Ecore_List_Node *first, Ecore_List_Node *second, Ecore_Compare_Cb compare, int order); /* Private double linked list functions */ static void *_ecore_dlist_previous(Ecore_DList *list); static void *_ecore_dlist_first_remove(Ecore_DList *list); static void *_ecore_dlist_index_goto(Ecore_DList *list, int idx); /** @defgroup Ecore_Data_List_Creation_Group List Creation/Destruction Functions Functions that create, initialize and destroy Ecore_Lists. */ /** * Create and initialize a new list. * @return A new initialized list on success, @c NULL on failure. * @ingroup Ecore_Data_List_Creation_Group */ EAPI Ecore_List * ecore_list_new(void) { Ecore_List *list; list = (Ecore_List *)malloc(sizeof(Ecore_List)); if (!list) return NULL; if (!ecore_list_init(list)) { FREE(list); return NULL; } return list; } /** * Initialize a list to some sane starting values. * @param list The list to initialize. * @return @c TRUE if successful, @c FALSE if an error occurs. * @ingroup Ecore_Data_List_Creation_Group */ EAPI int ecore_list_init(Ecore_List *list) { CHECK_PARAM_POINTER_RETURN("list", list, FALSE); memset(list, 0, sizeof(Ecore_List)); return TRUE; } /** * Free a list and all of it's nodes. * @param list The list to be freed. * @ingroup Ecore_Data_List_Creation_Group */ EAPI void ecore_list_destroy(Ecore_List *list) { void *data; CHECK_PARAM_POINTER("list", list); while (list->first) { data = _ecore_list_first_remove(list); if (list->free_func) list->free_func(data); } FREE(list); } /** * Set the function for freeing data. * @param list The list that will use this function when nodes are * destroyed. * @param free_func The function that will free the key data. * @return @c TRUE on successful set, @c FALSE otherwise. */ EAPI int ecore_list_free_cb_set(Ecore_List *list, Ecore_Free_Cb free_func) { CHECK_PARAM_POINTER_RETURN("list", list, FALSE); list->free_func = free_func; return TRUE; } /** * Checks the list for any nodes. * @param list The list to check for nodes * @return @c TRUE if no nodes in list, @c FALSE if the list contains nodes */ EAPI int ecore_list_empty_is(Ecore_List *list) { int ret = TRUE; CHECK_PARAM_POINTER_RETURN("list", list, TRUE); if (list->nodes) ret = FALSE; return ret; } /** * Returns the number of the current node. * @param list The list to return the number of the current node. * @return The number of the current node in the list. */ EAPI int ecore_list_index(Ecore_List *list) { int ret; CHECK_PARAM_POINTER_RETURN("list", list, FALSE); ret = list->index; return ret; } /** * Find the number of nodes in the list. * @param list The list to find the number of nodes * @return The number of nodes in the list. */ EAPI int ecore_list_count(Ecore_List *list) { int ret = 0; CHECK_PARAM_POINTER_RETURN("list", list, FALSE); ret = list->nodes; return ret; } /** @defgroup Ecore_Data_List_Add_Item_Group List Item Adding Functions Functions that are used to add nodes to an Ecore_List. */ /** * Append data to the list. * @param list The list. * @param data The data to append. * @return @c FALSE if an error occurs, @c TRUE if appended successfully * @ingroup Ecore_Data_List_Add_Item_Group */ EAPI inline int ecore_list_append(Ecore_List *list, void *data) { int ret; Ecore_List_Node *node; CHECK_PARAM_POINTER_RETURN("list", list, FALSE); node = ecore_list_node_new(); node->data = data; ret = _ecore_list_append_0(list, node); return ret; } /* For adding items to the end of the list */ static int _ecore_list_append_0(Ecore_List *list, Ecore_List_Node *end) { if (list->last) list->last->next = end; list->last = end; if (!list->first) { list->first = end; list->index = 0; list->current = NULL; } if (list->index >= list->nodes) list->index++; list->nodes++; return TRUE; } /** * Prepend data to the beginning of the list. * @param list The list. * @param data The data to prepend. * @return @c FALSE if an error occurs, @c TRUE if prepended successfully. * @ingroup Ecore_Data_List_Add_Item_Group */ EAPI inline int ecore_list_prepend(Ecore_List *list, void *data) { int ret; Ecore_List_Node *node; CHECK_PARAM_POINTER_RETURN("list", list, FALSE); node = ecore_list_node_new(); node->data = data; ret = _ecore_list_prepend_0(list, node); return ret; } /* For adding items to the beginning of the list */ static int _ecore_list_prepend_0(Ecore_List *list, Ecore_List_Node *start) { /* Put it at the beginning of the list */ start->next = list->first; list->first = start; /* If no last node, then the first node is the last node */ if (!list->last) list->last = list->first; list->nodes++; list->index++; return TRUE; } /** * Insert data in front of the current point in the list. * @param list The list to hold the inserted @p data. * @param data The data to insert into @p list. * @return @c FALSE if there is an error, @c TRUE on success * @ingroup Ecore_Data_List_Add_Item_Group */ EAPI inline int ecore_list_insert(Ecore_List *list, void *data) { int ret; Ecore_List_Node *node; CHECK_PARAM_POINTER_RETURN("list", list, FALSE); node = ecore_list_node_new(); node->data = data; ret = _ecore_list_insert(list, node); return ret; } /* For adding items in front of the current position in the list */ static int _ecore_list_insert(Ecore_List *list, Ecore_List_Node *new_node) { /* * If the current point is at the beginning of the list, then it's the * same as prepending it to the list. */ if (list->current == list->first) return _ecore_list_prepend_0(list, new_node); if (!list->current) { int ret_value; ret_value = _ecore_list_append_0(list, new_node); list->current = list->last; return ret_value; } /* Setup the fields of the new node */ new_node->next = list->current; /* And hook the node into the list */ _ecore_list_index_goto(list, ecore_list_index(list) - 1); list->current->next = new_node; /* Now move the current item to the inserted item */ list->current = new_node; list->nodes++; return TRUE; } /** * Append a list to the list. * @param list The list. * @param append The list to append. * @return @c FALSE if an error occurs, @c TRUE if appended successfully * @ingroup Ecore_Data_List_Add_Item_Group */ EAPI int ecore_list_append_list(Ecore_List *list, Ecore_List *append) { CHECK_PARAM_POINTER_RETURN("list", list, FALSE); CHECK_PARAM_POINTER_RETURN("append", append, FALSE); if (ecore_list_empty_is(append)) return TRUE; if (ecore_list_empty_is(list)) { list->first = append->first; list->current = list->first; list->last = append->last; list->nodes = append->nodes; } else { list->last->next = append->first; list->last = append->last; list->nodes += append->nodes; } ecore_list_init(append); return TRUE; } /** * Prepend a list to the beginning of the list. * @param list The list. * @param prepend The list to prepend. * @return @c FALSE if an error occurs, @c TRUE if prepended successfully. * @ingroup Ecore_Data_List_Add_Item_Group */ EAPI int ecore_list_prepend_list(Ecore_List *list, Ecore_List *prepend) { CHECK_PARAM_POINTER_RETURN("list", list, FALSE); CHECK_PARAM_POINTER_RETURN("prepend", prepend, FALSE); if (ecore_list_empty_is(prepend)) return TRUE; if (ecore_list_empty_is(list)) { list->first = prepend->first; list->current = NULL; list->last = prepend->last; list->nodes = prepend->nodes; } else { prepend->last->next = list->first; list->first = prepend->first; list->nodes += prepend->nodes; list->index += prepend->nodes; } ecore_list_init(prepend); return TRUE; } /** @defgroup Ecore_Data_List_Remove_Item_Group List Item Removing Functions Functions that remove nodes from an Ecore_List. */ /** * Remove the current item from the list. * @param list The list to remove the current item * @return A pointer to the removed data on success, @c NULL on failure. * @ingroup Ecore_Data_List_Remove_Item_Group */ EAPI inline void * ecore_list_remove(Ecore_List *list) { void *ret; CHECK_PARAM_POINTER_RETURN("list", list, NULL); ret = _ecore_list_remove_0(list); return ret; } /* Remove the current item from the list */ static void * _ecore_list_remove_0(Ecore_List *list) { void *ret = NULL; Ecore_List_Node *old; if (!list) return NULL; if (ecore_list_empty_is(list)) return NULL; if (!list->current) return NULL; if (list->current == list->first) return _ecore_list_first_remove(list); if (list->current == list->last) return _ecore_list_last_remove(list); old = list->current; _ecore_list_index_goto(list, list->index - 1); list->current->next = old->next; old->next = NULL; ret = old->data; old->data = NULL; _ecore_list_next(list); ecore_list_node_destroy(old, NULL); list->nodes--; return ret; } /** * Remove and free the data in lists current position. * @param list The list to remove and free the current item. * @return @c TRUE on success, @c FALSE on error * @ingroup Ecore_Data_List_Remove_Item_Group */ EAPI int ecore_list_remove_destroy(Ecore_List *list) { void *data; CHECK_PARAM_POINTER_RETURN("list", list, FALSE); data = _ecore_list_remove_0(list); if (list->free_func) list->free_func(data); return TRUE; } /** * Remove the first item from the list. * @param list The list to remove the current item * @return Returns a pointer to the removed data on success, @c NULL on * failure. * @ingroup Ecore_Data_List_Remove_Item_Group */ EAPI inline void * ecore_list_first_remove(Ecore_List *list) { void *ret; CHECK_PARAM_POINTER_RETURN("list", list, NULL); ret = _ecore_list_first_remove(list); return ret; } /* Remove the first item from the list */ static void * _ecore_list_first_remove(Ecore_List *list) { void *ret = NULL; Ecore_List_Node *old; if (!list) return NULL; if (ecore_list_empty_is(list)) return NULL; old = list->first; list->first = list->first->next; if (list->current == old) list->current = list->first; else (list->index ? list->index-- : 0); if (list->last == old) list->last = list->first; ret = old->data; old->data = NULL; ecore_list_node_destroy(old, NULL); list->nodes--; return ret; } /** * Remove the last item from the list. * @param list The list to remove the last node from * @return A pointer to the removed data on success, @c NULL on failure. * @ingroup Ecore_Data_List_Remove_Item_Group */ EAPI inline void * ecore_list_last_remove(Ecore_List *list) { void *ret; CHECK_PARAM_POINTER_RETURN("list", list, NULL); ret = _ecore_list_last_remove(list); return ret; } /* Remove the last item from the list */ static void * _ecore_list_last_remove(Ecore_List *list) { void *ret = NULL; Ecore_List_Node *old, *prev; if (!list) return NULL; if (ecore_list_empty_is(list)) return NULL; old = list->last; if (list->current == old) list->current = NULL; if (list->first == old) list->first = NULL; for (prev = list->first; prev && prev->next != old; prev = prev->next) ; list->last = prev; if (prev) prev->next = NULL; old->next = NULL; ret = old->data; old->data = NULL; ecore_list_node_destroy(old, NULL); list->nodes--; return ret; } /** @defgroup Ecore_Data_List_Traverse_Group List Traversal Functions Functions that can be used to traverse an Ecore_List. */ /** * Make the current item the item with the given index number. * @param list The list. * @param idx The position to move the current item. * @return A pointer to new current item on success, @c NULL on failure. * @ingroup Ecore_Data_List_Traverse_Group */ EAPI inline void * ecore_list_index_goto(Ecore_List *list, int idx) { void *ret; CHECK_PARAM_POINTER_RETURN("list", list, NULL); ret = _ecore_list_index_goto(list, idx); return ret; } /* This is the non-threadsafe version, use this inside internal functions that * already lock the list */ static void * _ecore_list_index_goto(Ecore_List *list, int idx) { int i; if (!list) return NULL; if (ecore_list_empty_is(list)) return NULL; if (idx > ecore_list_count(list) || idx < 0) return NULL; if (idx < list->index) { _ecore_list_first_goto(list); i = 0; } else i = list->index; for (; i < idx && _ecore_list_next(list); i++) ; if (i >= list->nodes) return NULL; list->index = i; return list->current->data; } /** * Make the current item the node that contains @p data. * @param list The list. * @param data The data to find. * @return A pointer to @p data on success, @c NULL on failure. * @ingroup Ecore_Data_List_Traverse_Group */ EAPI inline void * ecore_list_goto(Ecore_List *list, const void *data) { void *ret; CHECK_PARAM_POINTER_RETURN("list", list, NULL); ret = _ecore_list_goto(list, data); return ret; } /* Set the current position to the node containing data */ static void * _ecore_list_goto(Ecore_List *list, const void *data) { int idx; Ecore_List_Node *node; if (!list) return NULL; idx = 0; node = list->first; while (node && node->data) { Ecore_List_Node *next; if (node->data == data) break; next = node->next; node = next; idx++; } if (!node) return NULL; list->current = node; list->index = idx; return list->current->data; } /** * Make the current item the first item in the list * @param list The list. * @return A pointer to the first item on success, @c NULL on failure * @ingroup Ecore_Data_List_Traverse_Group */ EAPI inline void * ecore_list_first_goto(Ecore_List *list) { void *ret; CHECK_PARAM_POINTER_RETURN("list", list, NULL); ret = _ecore_list_first_goto(list); return ret; } /* Set the current position to the start of the list */ static void * _ecore_list_first_goto(Ecore_List *list) { if (!list || !list->first) return NULL; list->current = list->first; list->index = 0; return list->current->data; } /** * Make the current item the last item in the list. * @param list The list. * @return A pointer to the last item on success, @c NULL on failure. * @ingroup Ecore_Data_List_Traverse_Group */ EAPI inline void * ecore_list_last_goto(Ecore_List *list) { void *ret; CHECK_PARAM_POINTER_RETURN("list", list, NULL); ret = _ecore_list_last_goto(list); return ret; } /* Set the current position to the end of the list */ static void * _ecore_list_last_goto(Ecore_List *list) { if (!list || !list->last) return NULL; list->current = list->last; list->index = (list->nodes - 1); return list->current->data; } /** * Retrieve the data pointed to by the current item in @p list. * @param list The list. * @return Returns the data at current position, can be @c NULL. */ EAPI inline void * ecore_list_current(Ecore_List *list) { void *ret; ret = _ecore_list_current(list); return ret; } /** * Retrieve the data pointed to by the first item in @p list. * @param list The list. * @return Returns the data at current position, can be @c NULL. */ EAPI inline void * ecore_list_first(Ecore_List *list) { void *ret; if (!list->first) return NULL; ret = list->first->data; return ret; } /** * Retrieve the data pointed to by the last item in @p list. * @param list The list. * @return Returns the data at current position, can be @c NULL. */ EAPI inline void * ecore_list_last(Ecore_List *list) { void *ret; if (!list->last) return NULL; ret = list->last->data; return ret; } /* Return the data of the current node without incrementing */ static void * _ecore_list_current(Ecore_List *list) { void *ret; if (!list->current) return NULL; ret = list->current->data; return ret; } /** * Retrieve the data pointed to by the current item, and make the next item * the current item. * @param list The list to retrieve data from. * @return The current item in the list on success, @c NULL on failure. */ EAPI inline void * ecore_list_next(Ecore_List *list) { void *data; CHECK_PARAM_POINTER_RETURN("list", list, NULL); data = _ecore_list_next(list); return data; } /* Return the data contained in the current node and go to the next node */ static void * _ecore_list_next(Ecore_List *list) { void *data; Ecore_List_Node *ret; Ecore_List_Node *next; if (!list->current) return NULL; ret = list->current; next = list->current->next; list->current = next; list->index++; data = ret->data; return data; } /** * Remove all nodes from @p list. * @param list The list. * @return Returns @c TRUE on success, @c FALSE on error. * @note The data for each item on the list is not freed by * @c ecore_list_clear(). */ EAPI int ecore_list_clear(Ecore_List *list) { CHECK_PARAM_POINTER_RETURN("list", list, FALSE); while (!ecore_list_empty_is(list)) _ecore_list_first_remove(list); return TRUE; } /** * Execute function for each node in @p list. * @param list The list. * @param function The function to pass each node from @p list to. * @return Returns @c TRUE on success, @c FALSE on failure. * @ingroup Ecore_Data_List_Traverse_Group */ EAPI int ecore_list_for_each(Ecore_List *list, Ecore_For_Each function, void *user_data) { int ret; CHECK_PARAM_POINTER_RETURN("list", list, FALSE); ret = _ecore_list_for_each(list, function, user_data); return ret; } /* The real meat of executing the function for each data node */ static int _ecore_list_for_each(Ecore_List *list, Ecore_For_Each function, void *user_data) { void *value; if (!list || !function) return FALSE; _ecore_list_first_goto(list); while ((value = _ecore_list_next(list))) function(value, user_data); return TRUE; } /** * Find data in @p list using the compare function @p func * @param list The list. * @param function The function to test each node of @p list with * @param user_data Data to match against (used by @p function) * @return the first matching data node, or NULL if none match */ EAPI void * ecore_list_find(Ecore_List *list, Ecore_Compare_Cb function, const void *user_data) { CHECK_PARAM_POINTER_RETURN("list", list, NULL); return _ecore_list_find(list, function, user_data); } /* The real meat of finding a node via a compare cb */ static void * _ecore_list_find(Ecore_List *list, Ecore_Compare_Cb function, const void *user_data) { void *value; if (!list || !function) return NULL; _ecore_list_first_goto(list); while ((value = _ecore_list_current(list))) { if (!function(value, user_data)) return value; ecore_list_next(list); } return NULL; } /** * Sort data in @p list using the compare function @p compare * @param list The list. * @param compare The function to compare the data of @p list * @param order The sort direction, possible values are ECORE_SORT_MIN and * ECORE_SORT_MAX * @return true on success * * This is a wrapper function for mergesort and heapsort. It * tries to choose the fastest algorithm depending on the * number of notes. Note: The sort may be unstable. */ EAPI int ecore_list_sort(Ecore_List *list, Ecore_Compare_Cb compare, char order) { CHECK_PARAM_POINTER_RETURN("list", list, 0); if (list->nodes < 2) return 1; if (list->nodes < ECORE_MERGESORT_LIMIT) return ecore_list_mergesort(list, compare, order); if (!ecore_list_heapsort(list, compare, order)) return ecore_list_mergesort(list, compare, order); return 1; } /** * Sort data in @p list using the compare function @p compare * @param list The list. * @param compare The function to compare the data of @p list * @param order The sort direction, possible values are ECORE_SORT_MIN and * ECORE_SORT_MAX * @return true on success * * Mergesort is a stable, in-place sorting algorithm */ EAPI int ecore_list_mergesort(Ecore_List *list, Ecore_Compare_Cb compare, char order) { Ecore_List_Node *node; CHECK_PARAM_POINTER_RETURN("list", list, 0); if (list->nodes < 2) return 1; if (order == ECORE_SORT_MIN) order = 1; else order = -1; node = _ecore_list_node_mergesort(list->first, list->nodes, compare, order); list->first = node; /* maybe there is a better way to do that but our last node has changed */ while (node->next) node = node->next; list->last = node; _ecore_list_first_goto(list); return 1; } /** * Merge the @p l2 into the @p list using the compare function @p compare. * Both lists need to be sorted else a corrupt list could be the result. * @param list The list. * @param l2 The second list, this list will be empty after the merge * @param compare The function to compare the data of @p list and @p l2 * @param order The sort direction, possible values are ECORE_SORT_MIN and * ECORE_SORT_MAX */ EAPI void ecore_list_merge(Ecore_List *list, Ecore_List *l2, Ecore_Compare_Cb compare, char order) { CHECK_PARAM_POINTER("list", list); CHECK_PARAM_POINTER("l2", l2); if (ecore_list_empty_is(l2)) return; if (ecore_list_empty_is(list)) { ecore_list_append_list(list, l2); return; } if (order == ECORE_SORT_MIN) order = 1; else order = -1; list->first = _ecore_list_node_merge(list->first, l2->first, compare, order); if ((order * compare(list->last->data, l2->last->data)) < 0) list->last = l2->last; list->nodes += l2->nodes; ecore_list_init(l2); } /* this is the internal recrusive function for the merge sort */ static Ecore_List_Node * _ecore_list_node_mergesort(Ecore_List_Node *first, int n, Ecore_Compare_Cb compare, int order) { Ecore_List_Node *middle; Ecore_List_Node *premid; int mid; int i; mid = n / 2; if (n < 2) return first; else if (n == 2) { if (compare(first->data, first->next->data) * order > 0) { /* swap the data */ void *data; data = first->next->data; first->next->data = first->data; first->data = data; } return first; } /* first find the premiddle node*/ for (premid = first, i = 0; i < mid - 1; i++) premid = premid->next; /* split the list */ middle = premid->next; premid->next = NULL; /* sort the the partial lists */ first = _ecore_list_node_mergesort(first, mid, compare, order); middle = _ecore_list_node_mergesort(middle, n - mid, compare, order); return _ecore_list_node_merge(first, middle, compare, order); } /* this function is used to merge the partial sorted lists */ static Ecore_List_Node * _ecore_list_node_merge(Ecore_List_Node *first, Ecore_List_Node *second, Ecore_Compare_Cb compare, int order) { Ecore_List_Node *list; Ecore_List_Node *l; /* select the first node outside the loop, because we need to keep * a pointer to it */ if (compare(first->data, second->data) * order > 0) { list = l = second; second = second->next; } else { list = l = first; first = first->next; } /* and now start the merging */ while (first && second) { if (compare(first->data, second->data) * order > 0) { l = l->next = second; second = second->next; } else { l = l->next = first; first = first->next; } } /* append the rest or set it to NULL */ if (first) l->next = first; else if (second) l->next = second; else l->next = NULL; return list; } /** * Sort data in @p list using the compare function @p compare * @param list The list. * @param compare The function to compare the data of @p list * @param order The sort direction, possible values are ECORE_SORT_MIN and * ECORE_SORT_MAX * @return true on success * * Heapsort is a unstable sorting algorithm, it needs to allocate extra memomry, * but there for it is for a great number of nodes faster than mergesort */ EAPI int ecore_list_heapsort(Ecore_List *list, Ecore_Compare_Cb compare, char order) { Ecore_Sheap *heap; Ecore_List_Node *node; void *data; CHECK_PARAM_POINTER_RETURN("list", list, 0); /* * Push the data into a heap. */ heap = ecore_sheap_new(compare, list->nodes); if (!heap) return 0; ecore_sheap_order_set(heap, order); _ecore_list_first_goto(list); while ((data = _ecore_list_next(list))) { ecore_sheap_insert(heap, data); } /* * Extract in sorted order. */ node = list->first; while (node) { node->data = ecore_sheap_extract(heap); node = node->next; } ecore_sheap_destroy(heap); _ecore_list_first_goto(list); return 1; } /* Initialize a node to starting values */ EAPI int ecore_list_node_init(Ecore_List_Node *node) { CHECK_PARAM_POINTER_RETURN("node", node, FALSE); node->next = NULL; node->data = NULL; return TRUE; } /** @defgroup Ecore_Data_List_Node_Group List Node Functions Functions that are used in the creation, maintenance and destruction of Ecore_List nodes. */ /** * Allocates and initializes a new list node. * @return A new Ecore_List_Node on success, @c NULL otherwise. * @ingroup Ecore_Data_List_Node_Group */ EAPI Ecore_List_Node * ecore_list_node_new() { Ecore_List_Node *new_node; new_node = malloc(sizeof(Ecore_List_Node)); if (!ecore_list_node_init(new_node)) { FREE(new_node); return NULL; } return new_node; } /** * Calls the function to free the data and the node. * @param node Node to destroy. * @param free_func Function to call if @p node points to data to free. * @return @c TRUE. * @ingroup Ecore_Data_List_Node_Group */ EAPI int ecore_list_node_destroy(Ecore_List_Node *node, Ecore_Free_Cb free_func) { CHECK_PARAM_POINTER_RETURN("node", node, FALSE); if (free_func && node->data) free_func(node->data); FREE(node); return TRUE; } /** * @defgroup Ecore_Data_DList_Creation_Group Doubly Linked List Creation/Destruction Functions * * Functions used to create, initialize and destroy @c Ecore_DLists. */ /** * Creates and initialises a new doubly linked list. * @return A new initialised doubly linked list on success, @c NULL * on failure. * @ingroup Ecore_Data_DList_Creation_Group */ EAPI Ecore_DList * ecore_dlist_new() { Ecore_DList *list = NULL; list = (Ecore_DList *)malloc(sizeof(Ecore_DList)); if (!list) return NULL; if (!ecore_dlist_init(list)) { IF_FREE(list); return NULL; } return list; } /** * Initialises a list to some sane starting values. * @param list The doubly linked list to initialise. * @return @c TRUE if successful, @c FALSE if an error occurs. * @ingroup Ecore_Data_DList_Creation_Group */ EAPI int ecore_dlist_init(Ecore_DList *list) { CHECK_PARAM_POINTER_RETURN("list", list, FALSE); memset(list, 0, sizeof(Ecore_DList)); return TRUE; } /** * Frees a doubly linked list and all of its nodes. * @param list The doubly linked list to be freed. * @ingroup Ecore_Data_DList_Creation_Group */ EAPI void ecore_dlist_destroy(Ecore_DList *list) { void *data; CHECK_PARAM_POINTER("list", list); while (list->first) { data = _ecore_dlist_first_remove(list); if (list->free_func) list->free_func(data); } FREE(list); } /** * Sets the function used for freeing data stored in a doubly linked list. * @param list The doubly linked list that will use this function when * nodes are destroyed. * @param free_func The function that will free the key data * @return @c TRUE on success, @c FALSE on failure. * @ingroup Ecore_Data_DList_Creation_Group */ EAPI int ecore_dlist_free_cb_set(Ecore_DList *list, Ecore_Free_Cb free_func) { CHECK_PARAM_POINTER_RETURN("list", list, FALSE); return ecore_list_free_cb_set(ECORE_LIST(list), free_func); } /** * Returns whether there is anything in the given doubly linked list. * @param list The given doubly linked list. * @return @c TRUE if there are nodes, @c FALSE otherwise. */ EAPI int ecore_dlist_empty_is(Ecore_DList *list) { CHECK_PARAM_POINTER_RETURN("list", list, FALSE); return ecore_list_empty_is(ECORE_LIST(list)); } /** * Retrieves the index of the current node of the given doubly linked list. * @param list The given doubly linked list. * @return The index of the current node. */ EAPI inline int ecore_dlist_index(Ecore_DList *list) { CHECK_PARAM_POINTER_RETURN("list", list, FALSE); return ecore_list_index(ECORE_LIST(list)); } /** * @defgroup Ecore_Data_DList_Add_Item_Group Doubly Linked List Adding Functions * * Functions that are used to add nodes to an Ecore_DList. */ /** * Appends data to the given doubly linked list. * @param list The given doubly linked list. * @param data The data to append. * @return @c TRUE if the data is successfully appended, @c FALSE otherwise. * @ingroup Ecore_Data_DList_Add_Item_Group */ EAPI int ecore_dlist_append(Ecore_DList *list, void *data) { int ret; Ecore_DList_Node *prev; Ecore_DList_Node *node; CHECK_PARAM_POINTER_RETURN("list", list, FALSE); node = ecore_dlist_node_new(); ECORE_LIST_NODE(node)->data = data; prev = ECORE_DLIST_NODE(ECORE_LIST(list)->last); ret = _ecore_list_append_0(ECORE_LIST(list), ECORE_LIST_NODE(node)); if (ret) node->previous = prev; return ret; } /** * Adds data to the very beginning of the given doubly linked list. * @param list The given doubly linked list. * @param data The data to prepend. * @return @c TRUE if the data is successfully prepended, @c FALSE otherwise. * @ingroup Ecore_Data_DList_Add_Item_Group */ EAPI int ecore_dlist_prepend(Ecore_DList *list, void *data) { int ret; Ecore_DList_Node *prev; Ecore_DList_Node *node; CHECK_PARAM_POINTER_RETURN("list", list, FALSE); node = ecore_dlist_node_new(); ECORE_LIST_NODE(node)->data = data; prev = ECORE_DLIST_NODE(ECORE_LIST(list)->first); ret = _ecore_list_prepend_0(ECORE_LIST(list), ECORE_LIST_NODE(node)); if (ret && prev) prev->previous = node; return ret; } /** * Inserts data at the current point in the given doubly linked list. * @param list The given doubly linked list. * @param data The data to be inserted. * @return @c TRUE on success, @c FALSE otherwise. * @ingroup Ecore_Data_DList_Add_Item_Group */ EAPI int ecore_dlist_insert(Ecore_DList *list, void *data) { int ret = TRUE; Ecore_DList_Node *prev; Ecore_DList_Node *node; CHECK_PARAM_POINTER_RETURN("list", list, FALSE); /* * Identify and shortcut the end cases. */ if (!ECORE_LIST(list)->current) return ecore_dlist_append(list, data); if (ECORE_LIST(list)->current == ECORE_LIST(list)->first) return ecore_dlist_prepend(list, data); node = ecore_dlist_node_new(); ECORE_LIST_NODE(node)->data = data; /* Setup the fields of the new node */ ECORE_LIST_NODE(node)->next = ECORE_LIST(list)->current; /* And hook the node into the list */ prev = ECORE_DLIST_NODE(ECORE_LIST(list)->current)->previous; ECORE_LIST_NODE(prev)->next = ECORE_LIST_NODE(node); ECORE_DLIST_NODE(ECORE_LIST(list)->current)->previous = node; node->previous = prev; /* Now move the current item to the inserted item */ ECORE_LIST(list)->current = ECORE_LIST_NODE(node); ECORE_LIST(list)->nodes++; return ret; } /** * Appends a list to the given doubly linked list. * @param list The given doubly linked list. * @param append The list to append. * @return @c TRUE if the data is successfully appended, @c FALSE otherwise. * @ingroup Ecore_Data_DList_Add_Item_Group */ EAPI int ecore_dlist_append_list(Ecore_DList *list, Ecore_DList *append) { CHECK_PARAM_POINTER_RETURN("list", list, FALSE); CHECK_PARAM_POINTER_RETURN("append", append, FALSE); if (ecore_dlist_empty_is(append)) return TRUE; if (ecore_dlist_empty_is(list)) { list->first = append->first; list->current = NULL; list->last = append->last; list->nodes = append->nodes; } else { list->last->next = append->first; ECORE_DLIST_NODE(append->first)->previous = ECORE_DLIST_NODE(list->last); list->last = append->last; list->nodes += append->nodes; } ecore_dlist_init(append); return TRUE; } /** * Adds a list to the very beginning of the given doubly linked list. * @param list The given doubly linked list. * @param prepend The list to prepend. * @return @c TRUE if the data is successfully prepended, @c FALSE otherwise. * @ingroup Ecore_Data_DList_Add_Item_Group */ EAPI int ecore_dlist_prepend_list(Ecore_DList *list, Ecore_DList *prepend) { CHECK_PARAM_POINTER_RETURN("list", list, FALSE); CHECK_PARAM_POINTER_RETURN("prepend", prepend, FALSE); if (ecore_dlist_empty_is(prepend)) return TRUE; if (ecore_dlist_empty_is(list)) { list->first = prepend->first; list->current = NULL; list->last = prepend->last; list->nodes = prepend->nodes; } else { prepend->last->next = list->first; ECORE_DLIST_NODE(list->first)->previous = ECORE_DLIST_NODE( prepend->last); list->first = prepend->first; list->nodes += prepend->nodes; list->index += prepend->nodes; } ecore_dlist_init(prepend); return TRUE; } /** * @defgroup Ecore_Data_DList_Remove_Item_Group Doubly Linked List Removing Functions * * Functions that remove nodes from an @c Ecore_DList. */ /** * Removes the current item from the given doubly linked list. * @param list The given doubly linked list. * @return A pointer to the removed data on success, @c NULL otherwise. * @ingroup Ecore_Data_DList_Remove_Item_Group */ EAPI void * ecore_dlist_remove(Ecore_DList *list) { void *ret; Ecore_List *l2 = ECORE_LIST(list); Ecore_DList_Node *node; CHECK_PARAM_POINTER_RETURN("list", list, NULL); if (l2->current) { node = ECORE_DLIST_NODE(list->current->next); if (node) node->previous = ECORE_DLIST_NODE(l2->current)->previous; } ret = _ecore_list_remove_0(list); return ret; } /** * Removes the first item from the given doubly linked list. * @param list The given doubly linked list. * @return A pointer to the removed data on success, @c NULL on failure. * @ingroup Ecore_Data_DList_Remove_Item_Group */ EAPI void * ecore_dlist_first_remove(Ecore_DList *list) { void *ret; CHECK_PARAM_POINTER_RETURN("list", list, NULL); ret = _ecore_dlist_first_remove(list); return ret; } /** * Removes and frees the data at the current position in the given doubly * linked list. * @param list The given doubly linked list. * @return @c TRUE on success, @c FALSE otherwise. * @ingroup Ecore_Data_DList_Remove_Item_Group */ EAPI int ecore_dlist_remove_destroy(Ecore_DList *list) { void *data; CHECK_PARAM_POINTER_RETURN("list", list, FALSE); data = ecore_dlist_remove(list); if (!data) return FALSE; if (list->free_func) list->free_func(data); return TRUE; } static void * _ecore_dlist_first_remove(Ecore_DList *list) { void *ret; if (!list) return NULL; ret = _ecore_list_first_remove(list); if (ret && ECORE_LIST(list)->first) ECORE_DLIST_NODE(ECORE_LIST(list)->first)->previous = NULL; return ret; } /** * Removes the last item from the given doubly linked list. * @param list The given doubly linked list. * @return A pointer to the removed data on success, @c NULL otherwise. * @ingroup Ecore_Data_DList_Remove_Item_Group */ EAPI void * ecore_dlist_last_remove(Ecore_DList *list) { void *ret; Ecore_List_Node *node; CHECK_PARAM_POINTER_RETURN("list", list, NULL); if (ecore_list_empty_is(list)) return NULL; node = list->last; list->last = ECORE_LIST_NODE(ECORE_DLIST_NODE(node)->previous); if (list->last) list->last->next = NULL; if (list->first == node) list->first = NULL; if (list->current == node) list->current = NULL; ret = node->data; ecore_list_node_destroy(node, NULL); list->nodes--; if (list->index >= list->nodes) list->index--; return ret; } /** * Moves the current item to the index number in the given doubly linked list. * @param list The given doubly linked list. * @param idx The position to move the current item * @return The node at specified index on success, @c NULL on error. */ EAPI void * ecore_dlist_index_goto(Ecore_DList *list, int idx) { void *ret; CHECK_PARAM_POINTER_RETURN("list", list, NULL); ret = _ecore_dlist_index_goto(list, idx); return ret; } /* This is the non-threadsafe version, use this inside internal functions that * already lock the list */ static void * _ecore_dlist_index_goto(Ecore_DList *list, int idx) { int i, increment; if (!list) return NULL; if (ecore_list_empty_is(ECORE_LIST(list))) return NULL; if (idx > ecore_list_count(ECORE_LIST(list)) || idx < 0) return NULL; if (ECORE_LIST(list)->index >= ECORE_LIST(list)->nodes) _ecore_list_last_goto(ECORE_LIST(list)); if (idx < ECORE_LIST(list)->index) increment = -1; else increment = 1; for (i = ECORE_LIST(list)->index; i != idx; i += increment) { if (increment > 0) _ecore_list_next(list); else _ecore_dlist_previous(list); } return _ecore_list_current(list); } /** * @brief Move the current item to the node that contains data * @param list: the list to move the current item in * @param data: the data to find and set the current item to * * @return Returns specified data on success, NULL on error */ EAPI void * ecore_dlist_goto(Ecore_DList *list, void *data) { void *ret; CHECK_PARAM_POINTER_RETURN("list", list, NULL); ret = _ecore_list_goto(ECORE_LIST(list), data); return ret; } /** * @brief Move the current pointer to the first item in the list * @param list: the list to change the current to the first item * * @return Returns a pointer to the first item on success, NULL on failure. */ EAPI void * ecore_dlist_first_goto(Ecore_DList *list) { void *ret; CHECK_PARAM_POINTER_RETURN("list", list, NULL); ret = _ecore_list_first_goto(list); return ret; } /** * @brief Move the pointer to the current item to the last item * @param list: the list to move the current item pointer to the last * @return Returns a pointer to the last item in the list , NULL if empty. */ EAPI void * ecore_dlist_last_goto(Ecore_DList *list) { void *ret; CHECK_PARAM_POINTER_RETURN("list", list, NULL); ret = _ecore_list_last_goto(ECORE_LIST(list)); return ret; } /** * @brief Return the data in the current list item * @param list: the list to the return the current data * @return Returns value of the current data item, NULL if no current item */ EAPI void * ecore_dlist_current(Ecore_DList *list) { void *ret; ret = _ecore_list_current(ECORE_LIST(list)); return ret; } /** * @brief Move to the next item in the list and return current item * @param list: the list to move to the next item in. * @return Returns data in the current list node, or NULL on error */ EAPI void * ecore_dlist_next(Ecore_DList *list) { void *data; data = _ecore_list_next(list); return data; } /** * @brief Move to the previous item and return current item * @param list: the list to move to the previous item in. * @return Returns data in the current list node, or NULL on error */ EAPI void * ecore_dlist_previous(Ecore_DList *list) { void *data; data = _ecore_dlist_previous(list); return data; } static void * _ecore_dlist_previous(Ecore_DList *list) { void *data = NULL; if (!list) return NULL; if (ECORE_LIST(list)->current) { data = ECORE_LIST(list)->current->data; ECORE_LIST(list)-> current = ECORE_LIST_NODE(ECORE_DLIST_NODE( ECORE_LIST(list)-> current)->previous); ECORE_LIST(list)->index --; } else _ecore_list_last_goto( ECORE_LIST(list)); return data; } /** * @brief Remove all nodes from the list. * @param list: the list to remove all nodes from * * @return Returns TRUE on success, FALSE on errors */ EAPI int ecore_dlist_clear(Ecore_DList *list) { CHECK_PARAM_POINTER_RETURN("list", list, FALSE); ecore_list_clear(ECORE_LIST(list)); return TRUE; } /** * Sort data in @p list using the compare function @p compare * @param list The list. * @param compare The function to compare the data of @p list * @param order The sort direction, possible values are ECORE_SORT_MIN and * ECORE_SORT_MAX * @return true on success * * This is a wrapper function for mergesort and heapsort. It * tries to choose the fastest algorithm depending on the * number of notes. Note: The sort may be unstable. */ EAPI int ecore_dlist_sort(Ecore_List *list, Ecore_Compare_Cb compare, char order) { CHECK_PARAM_POINTER_RETURN("list", list, 0); if (list->nodes < 2) return 1; if (list->nodes < ECORE_MERGESORT_LIMIT) return ecore_dlist_mergesort(list, compare, order); if (!ecore_dlist_heapsort(list, compare, order)) return ecore_dlist_mergesort(list, compare, order); return 1; } /** * Sort data in @p list using the compare function @p compare * @param list The list. * @param compare The function to compare the data of @p list * @param order The sort direction, possible values are ECORE_SORT_MIN and * ECORE_SORT_MAX * @return true on success * * Mergesort is a stable, in-place sorting algorithm */ EAPI int ecore_dlist_mergesort(Ecore_DList *list, Ecore_Compare_Cb compare, char order) { Ecore_List_Node *node; CHECK_PARAM_POINTER_RETURN("list", list, 0); if (list->nodes < 2) return 1; if (order == ECORE_SORT_MIN) order = 1; else order = -1; node = _ecore_dlist_node_mergesort(list->first, list->nodes, compare, order); list->first = node; /* maybe there is a better way to do that but our last node has changed */ while (node->next) node = node->next; list->last = node; _ecore_list_first_goto(list); return 1; } /** * Merge the @p l2 into the @p list using the compare function @p compare. * Both lists need to be sorted else a corrupt list could be the result. * @param list The list. * @param l2 The second list, this list will be empty after the merge * @param compare The function to compare the data of @p list and @p l2 * @param order The sort direction, possible values are ECORE_SORT_MIN and * ECORE_SORT_MAX */ EAPI void ecore_dlist_merge(Ecore_DList *list, Ecore_DList *l2, Ecore_Compare_Cb compare, char order) { CHECK_PARAM_POINTER("list", list); CHECK_PARAM_POINTER("l2", l2); if (ecore_dlist_empty_is(l2)) return; if (ecore_dlist_empty_is(list)) { ecore_dlist_append_list(list, l2); return; } if (order == ECORE_SORT_MIN) order = 1; else order = -1; list->first = _ecore_dlist_node_merge(list->first, l2->first, compare, order); if ((order * compare(list->last->data, l2->last->data)) < 0) list->last = l2->last; list->nodes += l2->nodes; ecore_dlist_init(l2); } /* this is the internal recrusive function for the merge sort */ static Ecore_List_Node * _ecore_dlist_node_mergesort(Ecore_List_Node *first, int n, Ecore_Compare_Cb compare, int order) { Ecore_List_Node *middle; Ecore_List_Node *premid; int mid; int i; mid = n / 2; if (n < 2) return first; else if (n == 2) { if (compare(first->data, first->next->data) * order > 0) { /* swap the data */ void *data; data = first->next->data; first->next->data = first->data; first->data = data; } return first; } /* first find the premiddle node*/ for (premid = first, i = 0; i < mid - 1; i++) premid = premid->next; /* split the list */ middle = premid->next; premid->next = NULL; ECORE_DLIST_NODE(middle)->previous = NULL; /* sort the the partial lists */ first = _ecore_dlist_node_mergesort(first, mid, compare, order); middle = _ecore_dlist_node_mergesort(middle, n - mid, compare, order); return _ecore_dlist_node_merge(first, middle, compare, order); } /* this function is used to merge the partial sorted lists */ static Ecore_List_Node * _ecore_dlist_node_merge(Ecore_List_Node *first, Ecore_List_Node *second, Ecore_Compare_Cb compare, int order) { Ecore_List_Node *list; Ecore_List_Node *l; /* select the first node outside the loop, because we need to keep * a pointer to it */ if (compare(first->data, second->data) * order > 0) { list = l = second; second = second->next; } else { list = l = first; first = first->next; } /* and now start the merging */ while (first && second) { if (compare(first->data, second->data) * order > 0) { ECORE_DLIST_NODE(second)->previous = ECORE_DLIST_NODE(l); l = l->next = second; second = second->next; } else { ECORE_DLIST_NODE(first)->previous = ECORE_DLIST_NODE(l); l = l->next = first; first = first->next; } } /* append the rest or set it to NULL */ if (first) { ECORE_DLIST_NODE(first)->previous = ECORE_DLIST_NODE(l); l->next = first; } else if (second) { ECORE_DLIST_NODE(second)->previous = ECORE_DLIST_NODE(l); l->next = second; } else l->next = NULL; return list; } /* * @brief Initialize a node to sane starting values * @param node: the node to initialize * @return Returns TRUE on success, FALSE on errors */ EAPI int ecore_dlist_node_init(Ecore_DList_Node *node) { int ret; CHECK_PARAM_POINTER_RETURN("node", node, FALSE); ret = ecore_list_node_init(ECORE_LIST_NODE(node)); if (ret) node->previous = NULL; return ret; } /* * @brief Allocate and initialize a new list node * @return Returns NULL on error, new list node on success */ EAPI Ecore_DList_Node * ecore_dlist_node_new() { Ecore_DList_Node *new_node; new_node = malloc(sizeof(Ecore_DList_Node)); if (!new_node) return NULL; if (!ecore_dlist_node_init(new_node)) { FREE(new_node); return NULL; } return new_node; } /* * @brief Call the data's free callback function, then free the node * @param node: the node to be freed * @param free_func: the callback function to execute on the data * @return Returns TRUE on success, FALSE on error */ EAPI int ecore_dlist_node_destroy(Ecore_DList_Node *node, Ecore_Free_Cb free_func) { CHECK_PARAM_POINTER_RETURN("node", node, FALSE); return ecore_list_node_destroy(ECORE_LIST_NODE(node), free_func); } eina-1.7.10/src/tests/eina_test_ustr.c0000664000175000017500000004124012175475327014602 00000000000000/* EINA - EFL data type library * Copyright (C) 2010 Brett Nash * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include "eina_suite.h" #include "Eina.h" #ifdef EINA_SAFETY_CHECKS struct log_ctx { const char *msg; const char *fnc; Eina_Bool did; }; /* tests should not output on success, just uncomment this for debugging */ //#define SHOW_LOG 1 static void _eina_test_safety_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__) { struct log_ctx *ctx = data; va_list cp_args; const char *str; va_copy(cp_args, args); str = va_arg(cp_args, const char *); va_end(cp_args); ck_assert_int_eq(level, EINA_LOG_LEVEL_ERR); ck_assert_str_eq(fmt, "%s"); ck_assert_str_eq(ctx->msg, str); ck_assert_str_eq(ctx->fnc, fnc); ctx->did = EINA_TRUE; #ifdef SHOW_LOG eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args); #else (void)d; (void)file; (void)line; #endif } #endif static const Eina_Unicode STR1[] = {'P', 'a', 'n', 't', 's',' ', 'O', 'n', 0}; static const Eina_Unicode STR2[] = {'P', 'a', 'n', 't', 's',' ', 'O', 'f', 'f', 0}; static const Eina_Unicode STR3[] = {'P', 'a', 'n', 't', 's',' ', 'O', 'n', 0}; static const Eina_Unicode STR4[] = {'A', 0}; static const Eina_Unicode EMPTYSTR[] = {0}; START_TEST(eina_unicode_strcmp_test) { eina_init(); /* 1 & 2 */ fail_if(eina_unicode_strcmp(STR1,STR2) == 0); fail_if(eina_unicode_strcmp(STR1,STR2) < 1); /* 1 & 3 */ fail_if(eina_unicode_strcmp(STR1, STR3) != 0); /* 1 & 4 */ fail_if(eina_unicode_strcmp(STR1, STR4) == 0); fail_if(eina_unicode_strcmp(STR1, STR4) > 1); /* 1 & empty */ fail_if(eina_unicode_strcmp(STR1, EMPTYSTR) < 1); /* Self tests */ fail_if(eina_unicode_strcmp(STR1, STR1) != 0); fail_if(eina_unicode_strcmp(STR2, STR2) != 0); fail_if(eina_unicode_strcmp(STR3, STR3) != 0); fail_if(eina_unicode_strcmp(STR4, STR4) != 0); fail_if(eina_unicode_strcmp(EMPTYSTR, EMPTYSTR) != 0); eina_shutdown(); } END_TEST START_TEST(eina_unicode_strcpy_test) { Eina_Unicode buf[10] = { 0 }; Eina_Unicode *rv; eina_init(); rv = eina_unicode_strcpy(buf,STR1); fail_if(rv != buf); fail_if(eina_unicode_strcmp(buf,STR1) != 0); rv = eina_unicode_strcpy(buf,STR2); fail_if(rv != buf); fail_if(eina_unicode_strcmp(buf,STR2) != 0); /* Now a shorter string */ rv = eina_unicode_strcpy(buf,STR2); fail_if(rv != buf); fail_if(eina_unicode_strcmp(buf,STR2) != 0); /* Really short string */ rv = eina_unicode_strcpy(buf,STR4); fail_if(rv != buf); fail_if(eina_unicode_strcmp(buf,STR4) != 0); fail_if(buf[2] != 'n'); /* check old buf is there */ buf[1] = '7'; rv = eina_unicode_strcpy(buf,EMPTYSTR); fail_if(rv != buf); fail_if(buf[0] != 0); fail_if(buf[1] != '7'); eina_shutdown(); } END_TEST START_TEST(eina_unicode_strncpy_test) { Eina_Unicode buf[10] = { 0 }; Eina_Unicode *rv; eina_init(); rv = eina_unicode_strncpy(buf,STR1,9); fail_if(rv != buf); fail_if(eina_unicode_strcmp(buf,STR1) != 0); buf[1] = '7'; rv = eina_unicode_strncpy(buf,STR1,1); fail_if(rv != buf); fail_if(buf[1] != '7'); fail_if(buf[0] != STR1[0]); buf[9] = '7'; rv = eina_unicode_strncpy(buf, STR4, 10); fail_if(rv != buf); fail_if(eina_unicode_strcmp(buf,STR4) != 0); fail_if(buf[9] != 0); buf[0] = '7'; rv = eina_unicode_strncpy(buf, STR1, 0); fail_if(buf[0] != '7'); #ifdef EINA_SAFETY_CHECKS { struct log_ctx ctx; #define TEST_MAGIC_SAFETY(fn, _msg) \ ctx.msg = _msg; \ ctx.fnc = fn; \ ctx.did = EINA_FALSE eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx); /* may segfault */ buf[0] = '7'; #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_unicode_strncpy", "safety check failed: source == NULL"); rv = eina_unicode_strncpy(buf, NULL, 0); fail_if(buf[0] != '7'); fail_unless(ctx.did); /* Hopefully won't segfault */ #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_unicode_strncpy", "safety check failed: dest == NULL"); rv = eina_unicode_strncpy(NULL, STR1, 0); fail_if(rv != NULL); fail_unless(ctx.did); eina_log_print_cb_set(eina_log_print_cb_stderr, NULL); #undef TEST_MAGIC_SAFETY } #endif eina_shutdown(); } END_TEST START_TEST(eina_ustr_strlen_test) { eina_init(); fail_if(eina_unicode_strlen(STR1) != 8); fail_if(eina_unicode_strlen(STR2) != 9); fail_if(eina_unicode_strlen(STR3) != 8); fail_if(eina_unicode_strlen(STR4) != 1); fail_if(eina_unicode_strlen(EMPTYSTR) != 0); #ifdef EINA_SAFETY_CHECKS { struct log_ctx ctx; #define TEST_MAGIC_SAFETY(fn, _msg) \ ctx.msg = _msg; \ ctx.fnc = fn; \ ctx.did = EINA_FALSE eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_unicode_strlen", "safety check failed: ustr == NULL"); fail_if(eina_unicode_strlen(NULL)); fail_unless(ctx.did); eina_log_print_cb_set(eina_log_print_cb_stderr, NULL); #undef TEST_MAGIC_SAFETY } #endif eina_shutdown(); } END_TEST START_TEST(eina_unicode_strnlen_test) { eina_init(); /* Strlen style tests*/ fail_if(eina_unicode_strnlen(STR1,10) != 8); fail_if(eina_unicode_strnlen(STR2,10) != 9); fail_if(eina_unicode_strnlen(STR3,10) != 8); fail_if(eina_unicode_strnlen(STR4,10) != 1); fail_if(eina_unicode_strnlen(EMPTYSTR,10) != 0); /* Too short tests */ fail_if(eina_unicode_strnlen(STR1,3) != 3); fail_if(eina_unicode_strnlen(STR2,3) != 3); fail_if(eina_unicode_strnlen(STR3,3) != 3); fail_if(eina_unicode_strnlen(EMPTYSTR,1) != 0); #ifdef EINA_SAFETY_CHECKS { struct log_ctx ctx; #define TEST_MAGIC_SAFETY(fn, _msg) \ ctx.msg = _msg; \ ctx.fnc = fn; \ ctx.did = EINA_FALSE eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_unicode_strnlen", "safety check failed: ustr == NULL"); fail_if(eina_unicode_strnlen(NULL,0) != 0); fail_unless(ctx.did); eina_log_print_cb_set(eina_log_print_cb_stderr, NULL); #undef TEST_MAGIC_SAFETY } #endif eina_shutdown(); } END_TEST START_TEST(eina_unicode_strdup_test) { Eina_Unicode *buf; eina_init(); buf = eina_unicode_strdup(STR1); fail_if(!buf); fail_if(eina_unicode_strlen(buf) != eina_unicode_strlen(STR1)); fail_if(eina_unicode_strcmp(buf, STR1)); free(buf); buf = eina_unicode_strdup(EMPTYSTR); fail_if(!buf); fail_if(buf[0] != 0); eina_shutdown(); } END_TEST START_TEST(eina_unicode_strstr_test) { Eina_Unicode *buf; Eina_Unicode on[] = { 'O', 'n', 0 }; eina_init(); buf = eina_unicode_strstr(STR1,on); fail_if(!buf); fail_if(buf != STR1 + 6); fail_if(eina_unicode_strcmp(buf,on) != 0); buf = eina_unicode_strstr(STR2,on); fail_if(buf); buf = eina_unicode_strstr(EMPTYSTR, on); fail_if(buf); buf = eina_unicode_strstr(STR1, EMPTYSTR); fail_if(!buf); fail_if(buf != STR1); eina_shutdown(); } END_TEST START_TEST(eina_unicode_utf8) { int ind; unsigned char ch; eina_init(); /* Valid utf-8 cases */ /* First possible sequence of a certain length */ ind = 0; fail_if((eina_unicode_utf8_get_next("\x00", &ind) != 0x00) || (ind != 0)); ind = 0; fail_if((eina_unicode_utf8_get_next("\x01", &ind) != 0x01) || (ind != 1)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xC2\x80", &ind) != 0x80) || (ind != 2)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xE0\xA0\x80", &ind) != 0x800) || (ind != 3)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xF0\x90\x80\x80", &ind) != 0x10000) || (ind != 4)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xF8\x88\x80\x80\x80", &ind) != 0x200000) || (ind != 5)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xFC\x84\x80\x80\x80\x80", &ind) != 0x4000000) || (ind != 6)); /* Last possible sequence of a certain length */ ind = 0; fail_if((eina_unicode_utf8_get_next("\x7F", &ind) != 0x7F) || (ind != 1)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xDF\xBF", &ind) != 0x7FF) || (ind != 2)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xEF\xBF\xBF", &ind) != 0xFFFF) || (ind != 3)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xF7\xBF\xBF\xBF", &ind) != 0x1FFFFF) || (ind != 4)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xFB\xBF\xBF\xBF\xBF", &ind) != 0x3FFFFFF) || (ind != 5)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xFD\xBF\xBF\xBF\xBF\xBF", &ind) != 0x7FFFFFFF) || (ind != 6)); /* Other boundary conditions */ ind = 0; fail_if((eina_unicode_utf8_get_next("\xED\x9F\xBF", &ind) != 0xD7FF) || (ind != 3)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xEE\x80\x80", &ind) != 0xE000) || (ind != 3)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xEF\xBF\xBD", &ind) != 0xFFFD) || (ind != 3)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xF4\x8F\xBF\xBF", &ind) != 0x10FFFF) || (ind != 4)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xF4\x90\x80\x80", &ind) != 0x110000) || (ind != 4)); /* Error cases */ /* Standalone continuation bytes */ ind = 0; fail_if((eina_unicode_utf8_get_next("\x80", &ind) != 0xDC80) || (ind != 1)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xBF", &ind) != 0xDCBF) || (ind != 1)); ind = 0; fail_if((eina_unicode_utf8_get_next("\x80\xBF", &ind) != 0xDC80) || (ind != 1)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xBF\x80", &ind) != 0xDCBF) || (ind != 1)); /* All possible continuation bytes */ for (ch = 0x80 ; ch <= 0xBF ; ch++) { char buf[] = {ch, 0}; ind = 0; fail_if((eina_unicode_utf8_get_next(buf, &ind) != (0xDC00 | ch)) || (ind != 1)); } /* Isolated starting sequences */ #define _FIRST_SEQUENCES(start, end) \ do \ { \ int i; \ char *buf = alloca(((end - start + 1) * 2) + 1); \ for (i = 0, ch = start ; ch <= end ; i++, ch++) \ { \ buf[i * 2] = ch; \ buf[(i * 2) + 1] = ' '; \ } \ ind = 0; \ for (i = 0, ch = start ; ch <= end ; ch++) \ { \ fail_if((eina_unicode_utf8_get_next(buf, &ind) != (0xDC00 | ch)) || \ (ind != ++i)); \ fail_if((eina_unicode_utf8_get_next(buf, &ind) != 0x20) || \ (ind != ++i)); \ } \ } \ while (0) /* all first bytes of 2-byte sequences separated by spaces. */ _FIRST_SEQUENCES(0xC0, 0xDF); /* all first bytes of 3-byte sequences separated by spaces. */ _FIRST_SEQUENCES(0xE0, 0xEF); /* all first bytes of 4-byte sequences separated by spaces. */ _FIRST_SEQUENCES(0xF0, 0xF7); /* all first bytes of 5-byte sequences separated by spaces. */ _FIRST_SEQUENCES(0xF8, 0xFB); /* all first bytes of 6-byte sequences separated by spaces. */ _FIRST_SEQUENCES(0xFC, 0xFD); /* Incomplete sequences first means the first utf8 char, len means * the correct length */ #define _INCOMPLETE_SEQUENCES(first, conti, len) \ do \ { \ int i, j; \ char *buf = alloca(len + 1); \ i = 0; \ buf[i++] = first; \ for ( ; i < len ; i++) \ { \ Eina_Unicode val; \ for (j = 1 ; j < i ; j++) \ { \ buf[j] = conti; \ } \ buf[j] = 0; \ ind = 0; \ fail_if( \ (eina_unicode_utf8_get_next(buf, &ind) != (0xDC00 | first))); \ while ((val = eina_unicode_utf8_get_next(buf, &ind))) \ { \ fail_if(val != (0xDC00 | conti)); \ } \ fail_if(ind != i); \ } \ } \ while (0) /* Sequences with missing continuation */ _INCOMPLETE_SEQUENCES(0xC0, 0x81, 2); _INCOMPLETE_SEQUENCES(0xDF, 0xBF, 2); _INCOMPLETE_SEQUENCES(0xE0, 0x81, 3); _INCOMPLETE_SEQUENCES(0xEF, 0xBF, 3); _INCOMPLETE_SEQUENCES(0xF0, 0x81, 4); _INCOMPLETE_SEQUENCES(0xF7, 0xBF, 4); _INCOMPLETE_SEQUENCES(0xF8, 0x81, 5); _INCOMPLETE_SEQUENCES(0xFB, 0xBF, 5); _INCOMPLETE_SEQUENCES(0xFC, 0x81, 6); _INCOMPLETE_SEQUENCES(0xFD, 0xBF, 6); /* Impossible bytes */ ind = 0; fail_if((eina_unicode_utf8_get_next("\xFE", &ind) != 0xDCFE) || (ind != 1)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xFF", &ind) != 0xDCFF) || (ind != 1)); /* Overlong sequences */ ind = 0; fail_if((eina_unicode_utf8_get_next("\xC0\xAF", &ind) != 0xDCC0) || (ind != 1)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xE0\x80\xAF", &ind) != 0xDCE0) || (ind != 1)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xF0\x80\x80\xAF", &ind) != 0xDCF0) || (ind != 1)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xF8\x80\x80\x80\xAF", &ind) != 0xDCF8) || (ind != 1)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xFC\x80\x80\x80\x80\xAF", &ind) != 0xDCFC) || (ind != 1)); /* Maximum overlong sequences */ ind = 0; fail_if((eina_unicode_utf8_get_next("\xC1\xBF", &ind) != 0xDCC1) || (ind != 1)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xE0\x9F\xBF", &ind) != 0xDCE0) || (ind != 1)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xF0\x8F\xBF\xBF", &ind) != 0xDCF0) || (ind != 1)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xF8\x87\xBF\xBF\xBF", &ind) != 0xDCF8) || (ind != 1)); ind = 0; fail_if((eina_unicode_utf8_get_next("\xFC\x83\xBF\xBF\xBF\xBF", &ind) != 0xDCFC) || (ind != 1)); /* Add some more error cases here */ /* Just to cover prev/len. General utf-8 parsing was covered above */ fail_if(eina_unicode_utf8_get_len("\xF4\x90\x80\x80\xF4\x8F\xBF\xBF") != 2); ind = 0; fail_if((eina_unicode_utf8_get_prev("\xED\x9F\xBF", &ind) != 0xD7FF) || (ind != 0)); ind = 3; fail_if((eina_unicode_utf8_get_prev("\xED\x9F\xBF", &ind) != 0x00) || (ind != 0)); eina_shutdown(); } END_TEST START_TEST(eina_unicode_utf8_conversion) { Eina_Unicode uni_in[] = {0x5D0, 0xFDF6, 0xDC80, 0x1F459, 0x3FFFFFF, 0x7FFFFFFF, 'a', 'b', 'c', 0}; Eina_Unicode *uni_out; char c_in[] = "\xD7\x90""\xEF\xB7\xB6""\x80""\xF0\x9F\x91\x99" "\xFB\xBF\xBF\xBF\xBF""\xFD\xBF\xBF\xBF\xBF\xBF""abc"; char *c_out; int len; eina_init(); uni_out = eina_unicode_utf8_to_unicode(c_in, &len); fail_if((len != 9) || eina_unicode_strcmp(uni_in, uni_out)); free(uni_out); c_out = eina_unicode_unicode_to_utf8(uni_in, &len); fail_if((len != 24) || strcmp(c_in, c_out)); free(c_out); eina_shutdown(); } END_TEST void eina_test_ustr(TCase *tc) { printf("ustr test\n"); tcase_add_test(tc,eina_unicode_strcmp_test); tcase_add_test(tc,eina_unicode_strcpy_test); tcase_add_test(tc,eina_unicode_strncpy_test); tcase_add_test(tc,eina_ustr_strlen_test); tcase_add_test(tc,eina_unicode_strnlen_test); tcase_add_test(tc,eina_unicode_strdup_test); tcase_add_test(tc,eina_unicode_strstr_test); tcase_add_test(tc,eina_unicode_utf8); tcase_add_test(tc,eina_unicode_utf8_conversion); } eina-1.7.10/src/tests/eina_bench_hash.c0000664000175000017500000003112512175475327014631 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #ifdef EINA_BENCH_HAVE_GLIB # include #endif #include "Evas_Data.h" #include "Ecore_Data.h" #include "eina_hash.h" #include "eina_array.h" #include "eina_bench.h" #include "eina_rbtree.h" #include "eina_convert.h" #ifdef CITYHASH_BENCH // Hash function for a byte array. uint64_t CityHash64(const char *buf, size_t len); static unsigned int _eina_string_key_length(const char *key) { if (!key) return 0; return (int)strlen(key) + 1; } static int _eina_string_key_cmp(const char *key1, __UNUSED__ int key1_length, const char *key2, __UNUSED__ int key2_length) { return strcmp(key1, key2); } #endif typedef struct _Eina_Bench_Rbtree Eina_Bench_Rbtree; struct _Eina_Bench_Rbtree { Eina_Rbtree node; char key[10]; int value; }; static Eina_Rbtree_Direction _eina_bench_rbtree_cmp(const Eina_Bench_Rbtree *left, const Eina_Bench_Rbtree *right, __UNUSED__ void *data) { if (!left) return EINA_RBTREE_RIGHT; if (!right) return EINA_RBTREE_LEFT; return strcmp(left->key, right->key) < 0 ? EINA_RBTREE_LEFT : EINA_RBTREE_RIGHT; } static inline int _eina_bench_rbtree_key(const Eina_Bench_Rbtree *node, const char *key, int length, __UNUSED__ void *data) { return strncmp(node->key, key, length); } static void _eina_bench_rbtree_free(Eina_Rbtree *node, __UNUSED__ void *data) { free(node); } static void eina_bench_lookup_rbtree(int request) { Eina_Rbtree *root = NULL; int i; int j; for (i = 0; i < request; ++i) { Eina_Bench_Rbtree *tmp; tmp = malloc(sizeof (Eina_Bench_Rbtree)); if (!tmp) continue; tmp->value = i; eina_convert_itoa(i, tmp->key); root = eina_rbtree_inline_insert(root, &tmp->node, EINA_RBTREE_CMP_NODE_CB( _eina_bench_rbtree_cmp), NULL); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < request; ++i) { Eina_Rbtree *tmp; char tmp_key[10]; eina_convert_itoa(rand() % request, tmp_key); tmp = eina_rbtree_inline_lookup(root, tmp_key, 10, EINA_RBTREE_CMP_KEY_CB( _eina_bench_rbtree_key), NULL); /* Suppress warnings as we really don't want to do anything. */ (void) tmp; } eina_rbtree_delete(root, EINA_RBTREE_FREE_CB(_eina_bench_rbtree_free), NULL); } static void eina_bench_lookup_murmur(int request) { Eina_Hash *hash = NULL; int *tmp_val; unsigned int i; unsigned int j; hash = eina_hash_new(EINA_KEY_LENGTH(_eina_string_key_length), EINA_KEY_CMP(_eina_string_key_cmp), EINA_KEY_HASH(eina_hash_murmur3), free, 8); for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; tmp_val = malloc(sizeof (int)); if (!tmp_val) continue; eina_convert_itoa(i, tmp_key); *tmp_val = i; eina_hash_add(hash, tmp_key, tmp_val); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; eina_convert_itoa(rand() % request, tmp_key); tmp_val = eina_hash_find(hash, tmp_key); } eina_hash_free(hash); } #ifdef CITYHASH_BENCH static void eina_bench_lookup_cityhash(int request) { Eina_Hash *hash = NULL; int *tmp_val; unsigned int i; unsigned int j; hash = eina_hash_new(EINA_KEY_LENGTH(_eina_string_key_length), EINA_KEY_CMP(_eina_string_key_cmp), EINA_KEY_HASH(CityHash64), free, 8); for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; tmp_val = malloc(sizeof (int)); if (!tmp_val) continue; eina_convert_itoa(i, tmp_key); *tmp_val = i; eina_hash_add(hash, tmp_key, tmp_val); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; eina_convert_itoa(rand() % request, tmp_key); tmp_val = eina_hash_find(hash, tmp_key); } eina_hash_free(hash); } #endif static void eina_bench_lookup_superfast(int request) { Eina_Hash *hash = NULL; int *tmp_val; unsigned int i; unsigned int j; hash = eina_hash_string_superfast_new(free); for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; tmp_val = malloc(sizeof (int)); if (!tmp_val) continue; eina_convert_itoa(i, tmp_key); *tmp_val = i; eina_hash_add(hash, tmp_key, tmp_val); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; eina_convert_itoa(rand() % request, tmp_key); tmp_val = eina_hash_find(hash, tmp_key); } eina_hash_free(hash); } static void eina_bench_lookup_djb2(int request) { Eina_Hash *hash = NULL; int *tmp_val; unsigned int i; unsigned int j; hash = eina_hash_string_djb2_new(free); for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; tmp_val = malloc(sizeof (int)); if (!tmp_val) continue; eina_convert_itoa(i, tmp_key); *tmp_val = i; eina_hash_add(hash, tmp_key, tmp_val); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; eina_convert_itoa(rand() % request, tmp_key); tmp_val = eina_hash_find(hash, tmp_key); } eina_hash_free(hash); } typedef struct _Eina_Bench_DJB2 Eina_Bench_DJB2; struct _Eina_Bench_DJB2 { char *key; int value; }; static void eina_bench_lookup_djb2_inline(int request) { Eina_Hash *hash = NULL; Eina_Bench_DJB2 *elm; unsigned int i; unsigned int j; hash = eina_hash_string_djb2_new(free); for (i = 0; i < (unsigned int)request; ++i) { int length; elm = malloc(sizeof (Eina_Bench_DJB2) + 10); if (!elm) continue; elm->key = (char *)(elm + 1); length = eina_convert_itoa(i, elm->key) + 1; elm->value = i; eina_hash_direct_add_by_hash(hash, elm->key, length, eina_hash_djb2(elm->key, length), elm); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; int length = 6; length = eina_convert_itoa(rand() % request, tmp_key) + 1; elm = eina_hash_find_by_hash(hash, tmp_key, length, eina_hash_djb2(tmp_key, length)); } eina_hash_free(hash); } #ifdef EINA_BENCH_HAVE_GLIB typedef struct _Eina_Bench_Glib Eina_Bench_Glib; struct _Eina_Bench_Glib { char *key; int value; }; static void eina_bench_lookup_ghash(int request) { Eina_Bench_Glib *elm; GHashTable *hash; unsigned int i; unsigned int j; hash = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, free); for (i = 0; i < (unsigned int)request; ++i) { elm = malloc(sizeof (Eina_Bench_Glib) + 10); if (!elm) continue; elm->key = (char *)(elm + 1); eina_convert_itoa(i, elm->key); elm->value = i; g_hash_table_insert(hash, elm->key, elm); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; eina_convert_itoa(rand() % request, tmp_key); elm = g_hash_table_lookup(hash, tmp_key); } g_hash_table_destroy(hash); } #endif static void eina_bench_lookup_evas(int request) { Evas_Hash *hash = NULL; Eina_Array *array = NULL; int *tmp_val; Eina_Array_Iterator it; unsigned int i; unsigned int j; array = eina_array_new(10000); for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; tmp_val = malloc(sizeof (int)); if (!tmp_val) continue; eina_convert_itoa(i, tmp_key); *tmp_val = i; hash = evas_hash_add(hash, tmp_key, tmp_val); eina_array_push(array, tmp_val); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; eina_convert_itoa(rand() % request, tmp_key); tmp_val = evas_hash_find(hash, tmp_key); } evas_hash_free(hash); EINA_ARRAY_ITER_NEXT(array, i, tmp_val, it) free(tmp_val); eina_array_free(array); } typedef struct _Eina_Bench_Ecore Eina_Bench_Ecore; struct _Eina_Bench_Ecore { char *key; int value; }; static void eina_bench_lookup_ecore(int request) { Ecore_Hash *hash = NULL; Eina_Bench_Ecore *elm; unsigned int i; unsigned int j; hash = ecore_hash_new(ecore_str_hash, ecore_str_compare); ecore_hash_free_key_cb_set(hash, NULL); ecore_hash_free_value_cb_set(hash, free); for (i = 0; i < (unsigned int)request; ++i) { elm = malloc(sizeof (Eina_Bench_Ecore) + 10); if (!elm) continue; elm->key = (char *)(elm + 1); eina_convert_itoa(i, elm->key); elm->value = i; ecore_hash_set(hash, elm->key, elm); } srand(time(NULL)); for (j = 0; j < 200; ++j) for (i = 0; i < (unsigned int)request; ++i) { char tmp_key[10]; eina_convert_itoa(rand() % request, tmp_key); elm = ecore_hash_get(hash, tmp_key); } ecore_hash_destroy(hash); } void eina_bench_hash(Eina_Benchmark *bench) { eina_benchmark_register(bench, "superfast-lookup", EINA_BENCHMARK( eina_bench_lookup_superfast), 10, 10000, 10); eina_benchmark_register(bench, "djb2-lookup", EINA_BENCHMARK( eina_bench_lookup_djb2), 10, 10000, 10); eina_benchmark_register(bench, "djb2-lookup-inline", EINA_BENCHMARK( eina_bench_lookup_djb2_inline), 10, 10000, 10); eina_benchmark_register(bench, "murmur", EINA_BENCHMARK( eina_bench_lookup_murmur), 10, 10000, 10); #ifdef CITYHASH_BENCH eina_benchmark_register(bench, "cityhash", EINA_BENCHMARK( eina_bench_lookup_cityhash), 10, 10000, 10); #endif eina_benchmark_register(bench, "rbtree", EINA_BENCHMARK( eina_bench_lookup_rbtree), 10, 10000, 10); #ifdef EINA_BENCH_HAVE_GLIB eina_benchmark_register(bench, "ghash-lookup", EINA_BENCHMARK( eina_bench_lookup_ghash), 10, 10000, 10); #endif eina_benchmark_register(bench, "evas-lookup", EINA_BENCHMARK( eina_bench_lookup_evas), 10, 10000, 10); eina_benchmark_register(bench, "ecore-lookup", EINA_BENCHMARK( eina_bench_lookup_ecore), 10, 10000, 10); } eina-1.7.10/src/tests/eina_test_magic.c0000664000175000017500000001375312175475327014675 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #define EINA_MAGIC_DEBUG #include "eina_suite.h" #include "Eina.h" #include "eina_safety_checks.h" #define EINA_MAGIC_TEST 0x7781fee7 #define EINA_MAGIC_TEST2 0x42241664 #define EINA_MAGIC_STRING "Eina Magic Test" typedef struct _Eina_Magic_Struct Eina_Magic_Struct; struct _Eina_Magic_Struct { EINA_MAGIC }; struct log_ctx { const char *msg; const char *fnc; Eina_Bool did; }; /* tests should not output on success, just uncomment this for debugging */ //#define SHOW_LOG 1 static void _eina_test_safety_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__) { struct log_ctx *ctx = data; va_list cp_args; const char *str; va_copy(cp_args, args); str = va_arg(cp_args, const char *); va_end(cp_args); ck_assert_int_eq(level, EINA_LOG_LEVEL_ERR); ck_assert_str_eq(fmt, "%s"); ck_assert_str_eq(ctx->msg, str); ck_assert_str_eq(ctx->fnc, fnc); ctx->did = EINA_TRUE; #ifdef SHOW_LOG eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args); #else (void)d; (void)file; (void)line; #endif } static void _eina_test_magic_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__) { struct log_ctx *ctx = data; ck_assert_int_eq(level, EINA_LOG_LEVEL_CRITICAL); ck_assert_str_eq(ctx->msg, fmt); ck_assert_str_eq(ctx->fnc, fnc); ctx->did = EINA_TRUE; #ifdef SHOW_LOG eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args); #else (void)d; (void)file; (void)line; #endif } #ifdef EINA_SAFETY_CHECKS #define TEST_MAGIC_SAFETY(fn, _msg) \ ctx.msg = _msg; \ ctx.fnc = fn; \ ctx.did = EINA_FALSE #endif START_TEST(eina_magic_simple) { Eina_Magic_Struct *ems = NULL; struct log_ctx ctx; eina_init(); eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx); eina_magic_string_set(EINA_MAGIC_TEST, EINA_MAGIC_STRING); #ifdef EINA_SAFETY_CHECKS #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_magic_string_set", "safety check failed: magic_name == NULL"); eina_magic_string_set(EINA_MAGIC_TEST2, NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_magic_string_set", "safety check failed: magic_name == NULL"); eina_magic_string_set(EINA_MAGIC_TEST2, NULL); fail_unless(ctx.did); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); #endif eina_magic_string_set(EINA_MAGIC_TEST2, EINA_MAGIC_STRING); fail_if(eina_magic_string_get(EINA_MAGIC_TEST) == NULL); fail_if(strcmp(eina_magic_string_get( EINA_MAGIC_TEST), EINA_MAGIC_STRING) != 0); eina_log_print_cb_set(_eina_test_magic_print_cb, &ctx); #ifdef EINA_MAGIC_DEBUG fail_if(EINA_MAGIC_CHECK(ems, EINA_MAGIC_TEST)); #ifdef SHOW_LOG fprintf(stderr, "you should see 'Input handle pointer is NULL' below\n"); #endif TEST_MAGIC_SAFETY(__FUNCTION__, "*** Eina Magic Check Failed !!!\n" " Input handle pointer is NULL !\n" "*** NAUGHTY PROGRAMMER!!!\n" "*** SPANK SPANK SPANK!!!\n" "*** Now go fix your code. Tut tut tut!\n" "\n"); EINA_MAGIC_FAIL(ems, EINA_MAGIC_TEST); fail_unless(ctx.did); ems = malloc(sizeof (Eina_Magic_Struct)); fail_if(!ems); EINA_MAGIC_SET(ems, EINA_MAGIC_TEST); fail_if(!EINA_MAGIC_CHECK(ems, EINA_MAGIC_TEST)); EINA_MAGIC_SET(ems, EINA_MAGIC_NONE); #ifdef SHOW_LOG fprintf(stderr, "you should see 'Input handle has already been freed' below\n"); #endif TEST_MAGIC_SAFETY(__FUNCTION__, "*** Eina Magic Check Failed !!!\n" " Input handle has already been freed!\n" "*** NAUGHTY PROGRAMMER!!!\n" "*** SPANK SPANK SPANK!!!\n" "*** Now go fix your code. Tut tut tut!\n" "\n"); EINA_MAGIC_FAIL(ems, EINA_MAGIC_TEST); fail_unless(ctx.did); EINA_MAGIC_SET(ems, 42424242); #ifdef SHOW_LOG fprintf(stderr, "you should see 'Input handle is wrong type' below\n"); #endif TEST_MAGIC_SAFETY(__FUNCTION__, "*** Eina Magic Check Failed !!!\n" " Input handle is wrong type\n" " Expected: %08x - %s\n" " Supplied: %08x - %s\n" "*** NAUGHTY PROGRAMMER!!!\n" "*** SPANK SPANK SPANK!!!\n" "*** Now go fix your code. Tut tut tut!\n" "\n"); EINA_MAGIC_FAIL(ems, EINA_MAGIC_TEST); fail_unless(ctx.did); #endif eina_log_print_cb_set(eina_log_print_cb_stderr, NULL); eina_shutdown(); } END_TEST void eina_test_magic(TCase *tc) { tcase_add_test(tc, eina_magic_simple); } eina-1.7.10/src/tests/eina_test_clist.c0000664000175000017500000000261012175475327014721 00000000000000#ifdef HAVE_CONFIG_H # include #endif #include #include #include #include "Eina.h" #include "eina_suite.h" Eina_Clist string_list = EINA_CLIST_INIT(string_list); struct test_string { Eina_Clist entry; const char *string; }; static void add_string(const char *foo) { struct test_string *t; t = malloc(sizeof *t); assert(t != NULL); t->string = foo; eina_clist_add_tail(&string_list, &t->entry); } static void print_strings(void) { struct test_string *str; EINA_CLIST_FOR_EACH_ENTRY(str, &string_list, struct test_string, entry) { printf("%s ", str->string); } printf("\n"); } static void free_list(void) { struct test_string *str, *tmp; EINA_CLIST_FOR_EACH_ENTRY_SAFE(str, tmp, &string_list, struct test_string, entry) { eina_clist_remove(&str->entry); } } START_TEST(eina_clist_basic) { unsigned int n = 0; add_string("this"); n++; add_string("is"); n++; add_string("a"); n++; add_string("test"); n++; add_string("of"); n++; add_string("clists"); n++; add_string("-"); n++; add_string("hello"); n++; add_string("world"); n++; fail_if(eina_clist_count(&string_list) != n); print_strings(); free_list(); fail_if(eina_clist_count(&string_list) != 0); } END_TEST void eina_test_clist(TCase *tc) { tcase_add_test(tc, eina_clist_basic); } eina-1.7.10/src/tests/eina_bench_rectangle_pool.c0000664000175000017500000000367712175475327016716 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "eina_bench.h" #include "Eina.h" static void eina_bench_eina_rectangle_pool(int request) { Eina_Rectangle_Pool *pool; Eina_Rectangle *rect; Eina_List *list = NULL; int i; eina_init(); eina_init(); pool = eina_rectangle_pool_new(2048, 2048); if (!pool) return; for (i = 0; i < request; ++i) { rect = NULL; while (!rect) { rect = eina_rectangle_pool_request(pool, i & 0xFF, 256 - (i & 0xFF)); if (!rect) { rect = eina_list_data_get(list); list = eina_list_remove_list(list, list); if (rect) eina_rectangle_pool_release(rect); } else list = eina_list_append(list, rect); if (!(i & 0xFF)) break; } } eina_rectangle_pool_free(pool); eina_list_free(list); eina_shutdown(); } void eina_bench_rectangle_pool(Eina_Benchmark *bench) { eina_benchmark_register(bench, "eina", EINA_BENCHMARK( eina_bench_eina_rectangle_pool), 10, 4000, 100); } eina-1.7.10/src/tests/cxx_compile_test.cxx0000664000175000017500000000171512175475327015506 00000000000000/* EINA - EFL data type library * Copyright (C) 2012 ProFUSION embedded systems * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "Eina.h" #include using namespace std; int main() { eina_init(); cout << "Eina compiles with C++!"; eina_shutdown(); return 0; } eina-1.7.10/src/tests/Evas_Data.h0000664000175000017500000001737412175475327013421 00000000000000#ifndef _EVAS_DATA_H #define _EVAS_DATA_H #ifdef EAPI # undef EAPI #endif #ifdef _WIN32 # ifdef EFL_EVAS_BUILD # ifdef DLL_EXPORT # define EAPI __declspec(dllexport) # else # define EAPI # endif /* ! DLL_EXPORT */ # else # define EAPI __declspec(dllimport) # endif /* ! EFL_EVAS_BUILD */ #else # ifdef __GNUC__ # if __GNUC__ >= 4 # define EAPI __attribute__ ((visibility("default"))) # else # define EAPI # endif # else # define EAPI # endif #endif /* ! _WIN32 */ /** * @file * @brief These routines are used for Evas data types. */ typedef unsigned char Evas_Bool; typedef struct _Evas_Array_Hash Evas_Array_Hash; typedef struct _Evas_Hash Evas_Hash; /**< A Hash table handle */ typedef struct _Evas_List Evas_List; /**< A generic linked list node handle */ typedef struct _Evas_Object_List Evas_Object_List; struct _Evas_Hash { int population; Evas_Object_List *buckets[256]; }; struct _Evas_List /** A linked list node */ { void *data; /**< Pointer to list element payload */ Evas_List *next; /**< Next member in the list */ Evas_List *prev; /**< Previous member in the list */ struct _Evas_List_Accounting *accounting; /**< Private list accounting info - don't touch */ }; struct _Evas_Object_List { Evas_Object_List *next, *prev; Evas_Object_List *last; }; #ifdef __cplusplus extern "C" { #endif /* * Evas Array Hash functions */ EAPI Evas_Array_Hash *evas_array_hash_new (void); EAPI void evas_array_hash_free (Evas_Array_Hash *hash); EAPI void evas_array_hash_add (Evas_Array_Hash *hash, int key, int data); EAPI int evas_array_hash_search (Evas_Array_Hash *hash, int key); /* * Evas Hash functions */ /* FIXME: add: * api to add find, del members by data, size not just string and also * provide hash generation functions settable by the app * * do we really need this? hmmm - let me think... there may be a better way */ EAPI Evas_Hash *evas_hash_add (Evas_Hash *hash, const char *key, const void *data); EAPI Evas_Hash *evas_hash_direct_add (Evas_Hash *hash, const char *key, const void *data); EAPI Evas_Hash *evas_hash_del (Evas_Hash *hash, const char *key, const void *data); EAPI void * evas_hash_find (const Evas_Hash *hash, const char *key); EAPI void * evas_hash_modify (Evas_Hash *hash, const char *key, const void *data); EAPI int evas_hash_size (const Evas_Hash *hash); EAPI void evas_hash_free (Evas_Hash *hash); EAPI void evas_hash_foreach (const Evas_Hash *hash, Evas_Bool (*func)( const Evas_Hash *hash, const char * key, void *data, void *fdata), const void *fdata); EAPI int evas_hash_alloc_error (void); /* * Evas List functions */ EAPI Evas_List *evas_list_append (Evas_List *list, const void *data); EAPI Evas_List *evas_list_prepend (Evas_List *list, const void *data); EAPI Evas_List *evas_list_append_relative (Evas_List *list, const void *data, const void *relative); EAPI Evas_List *evas_list_append_relative_list (Evas_List *list, const void *data, Evas_List *relative); EAPI Evas_List *evas_list_prepend_relative (Evas_List *list, const void *data, const void *relative); EAPI Evas_List *evas_list_prepend_relative_list (Evas_List *list, const void *data, Evas_List *relative); EAPI Evas_List *evas_list_remove (Evas_List *list, const void *data); EAPI Evas_List *evas_list_remove_list (Evas_List *list, Evas_List *remove_list); EAPI Evas_List *evas_list_promote_list (Evas_List *list, Evas_List *move_list); EAPI void * evas_list_find (const Evas_List *list, const void *data); EAPI Evas_List *evas_list_find_list (const Evas_List *list, const void *data); EAPI Evas_List *evas_list_free (Evas_List *list); EAPI Evas_List *evas_list_last (const Evas_List *list); EAPI Evas_List *evas_list_next (const Evas_List *list); EAPI Evas_List *evas_list_prev (const Evas_List *list); EAPI void * evas_list_data (const Evas_List *list); EAPI int evas_list_count (const Evas_List *list); EAPI void * evas_list_nth (const Evas_List *list, int n); EAPI Evas_List *evas_list_nth_list (const Evas_List *list, int n); EAPI Evas_List *evas_list_reverse (Evas_List *list); EAPI Evas_List *evas_list_sort (Evas_List *list, int size, int (*func)(void *,void *)); EAPI int evas_list_alloc_error (void); /* * Evas Object List functions */ EAPI void * evas_object_list_append (void *in_list, void *in_item); EAPI void * evas_object_list_prepend (void *in_list, void *in_item); EAPI void * evas_object_list_append_relative (void *in_list, void *in_item, void *in_relative); EAPI void * evas_object_list_prepend_relative (void *in_list, void *in_item, void *in_relative); EAPI void * evas_object_list_remove (void *in_list, void *in_item); EAPI void * evas_object_list_find (void *in_list, void *in_item); /* * Evas Stringshare functions */ EAPI void evas_stringshare_init (void); /* not implemented */ EAPI void evas_stringshare_shutdown (void); /* not implemented */ EAPI const char *evas_stringshare_add (const char *str); EAPI void evas_stringshare_del (const char *str); #ifdef __cplusplus } #endif #endif /* _EVAS_DATA_H */ eina-1.7.10/src/tests/ecore_hash.c0000664000175000017500000006065612175475327013666 00000000000000#ifdef HAVE_CONFIG_H # include #endif #include #include #include #include "Ecore_Data.h" #define PRIME_TABLE_MAX 21 #define PRIME_MIN 17 #define PRIME_MAX 16777213 #define ECORE_HASH_CHAIN_MAX 3 #define ECORE_COMPUTE_HASH(hash, key) hash->hash_func(key) % \ ecore_prime_table[hash->size]; #define ECORE_HASH_INCREASE(hash) ((hash && ecore_prime_table[hash->size] < \ PRIME_MAX) ? \ (hash->nodes / \ ecore_prime_table[hash->size]) > \ ECORE_HASH_CHAIN_MAX : FALSE) #define ECORE_HASH_REDUCE(hash) ((hash && ecore_prime_table[hash->size] > \ PRIME_MIN) ? \ (double)hash->nodes / \ (double)ecore_prime_table[hash->size - 1] \ < ((double)ECORE_HASH_CHAIN_MAX * \ 0.375) : FALSE) static const unsigned int ecore_prime_table[] = { 17, 31, 61, 127, 257, 509, 1021, 2053, 4093, 8191, 16381, 32771, 65537, 131071, 262147, 524287, 1048573, 2097143, 4194301, 8388617, 16777213 }; /* Private hash manipulation functions */ static int _ecore_hash_node_add(Ecore_Hash *hash, Ecore_Hash_Node *node); static Ecore_Hash_Node * _ecore_hash_node_get(Ecore_Hash *hash, const void *key); static int _ecore_hash_increase(Ecore_Hash *hash); static int _ecore_hash_decrease(Ecore_Hash *hash); static inline int _ecore_hash_rehash(Ecore_Hash *hash, Ecore_Hash_Node **old_table, int old_size); static int _ecore_hash_bucket_destroy(Ecore_Hash_Node *list, Ecore_Free_Cb keyd, Ecore_Free_Cb valued); static inline Ecore_Hash_Node *_ecore_hash_bucket_get(Ecore_Hash *hash, Ecore_Hash_Node *bucket, const void *key); static Ecore_Hash_Node * _ecore_hash_node_new(void *key, void *value); static int _ecore_hash_node_init(Ecore_Hash_Node *node, void *key, void *value); static int _ecore_hash_node_destroy(Ecore_Hash_Node *node, Ecore_Free_Cb keyd, Ecore_Free_Cb valued); /** * @defgroup Ecore_Data_Hash_ADT_Creation_Group Hash Creation Functions * * Functions that create hash tables. */ /** * Creates and initializes a new hash * @param hash_func The function for determining hash position. * @param compare The function for comparing node keys. * @return @c NULL on error, a new hash on success. * @ingroup Ecore_Data_Hash_ADT_Creation_Group */ EAPI Ecore_Hash * ecore_hash_new(Ecore_Hash_Cb hash_func, Ecore_Compare_Cb compare) { Ecore_Hash *new_hash = (Ecore_Hash *)malloc(sizeof(Ecore_Hash)); if (!new_hash) return NULL; if (!ecore_hash_init(new_hash, hash_func, compare)) { FREE(new_hash); return NULL; } return new_hash; } /** * Initializes the given hash. * @param hash The given hash. * @param hash_func The function used for hashing node keys. * @param compare The function used for comparing node keys. * @return @c TRUE on success, @c FALSE on an error. * @ingroup Ecore_Data_Hash_ADT_Creation_Group */ EAPI int ecore_hash_init(Ecore_Hash *hash, Ecore_Hash_Cb hash_func, Ecore_Compare_Cb compare) { CHECK_PARAM_POINTER_RETURN("hash", hash, FALSE); memset(hash, 0, sizeof(Ecore_Hash)); hash->hash_func = hash_func; hash->compare = compare; hash->buckets = (Ecore_Hash_Node **)calloc(ecore_prime_table[0], sizeof(Ecore_Hash_Node *)); return TRUE; } /** * @defgroup Ecore_Data_Hash_ADT_Destruction_Group Hash Destruction Functions * * Functions that destroy hash tables and their contents. */ /** * Sets the function to destroy the keys of the given hash. * @param hash The given hash. * @param function The function used to free the node keys. NULL is a * valid value and means that no function will be called. * @return @c TRUE on success, @c FALSE on error. * @ingroup Ecore_Data_Hash_ADT_Destruction_Group */ EAPI int ecore_hash_free_key_cb_set(Ecore_Hash *hash, Ecore_Free_Cb function) { CHECK_PARAM_POINTER_RETURN("hash", hash, FALSE); hash->free_key = function; return TRUE; } /** * Sets the function to destroy the values in the given hash. * @param hash The given hash. * @param function The function that will free the node values. NULL is a * valid value and means that no function will be called. * @return @c TRUE on success, @c FALSE on error * @ingroup Ecore_Data_Hash_ADT_Destruction_Group */ EAPI int ecore_hash_free_value_cb_set(Ecore_Hash *hash, Ecore_Free_Cb function) { CHECK_PARAM_POINTER_RETURN("hash", hash, FALSE); hash->free_value = function; return TRUE; } /** * @defgroup Ecore_Data_Hash_ADT_Data_Group Hash Data Functions * * Functions that set, access and delete values from the hash tables. */ /** * Sets a key-value pair in the given hash table. * @param hash The given hash table. * @param key The key. * @param value The value. * @return @c TRUE if successful, @c FALSE if not. * @ingroup Ecore_Data_Hash_ADT_Data_Group */ EAPI int ecore_hash_set(Ecore_Hash *hash, void *key, void *value) { int ret = FALSE; Ecore_Hash_Node *node; CHECK_PARAM_POINTER_RETURN("hash", hash, FALSE); node = _ecore_hash_node_get(hash, key); if (node) { if (hash->free_key) hash->free_key(key); if (node->value && hash->free_value) hash->free_value(node->value); node->value = value; ret = TRUE; } else { node = _ecore_hash_node_new(key, value); if (node) ret = _ecore_hash_node_add(hash, node); } return ret; } /** * Sets all key-value pairs from set in the given hash table. * @param hash The given hash table. * @param set The hash table to import. * @return @c TRUE if successful, @c FALSE if not. * @ingroup Ecore_Data_Hash_ADT_Data_Group */ EAPI int ecore_hash_hash_set(Ecore_Hash *hash, Ecore_Hash *set) { unsigned int i; Ecore_Hash_Node *node, *old; CHECK_PARAM_POINTER_RETURN("hash", hash, FALSE); CHECK_PARAM_POINTER_RETURN("set", set, FALSE); for (i = 0; i < ecore_prime_table[set->size]; i++) { /* Hash into a new list to avoid loops of rehashing the same nodes */ while ((old = set->buckets[i])) { set->buckets[i] = old->next; old->next = NULL; node = _ecore_hash_node_get(hash, old->key); if (node) { /* This key already exists. Delete the old and add the new * value */ if (hash->free_key) hash->free_key(node->key); if (hash->free_value) hash->free_key(node->value); node->key = old->key; node->value = old->value; free(old); } else _ecore_hash_node_add(hash, old); } } FREE(set->buckets); ecore_hash_init(set, set->hash_func, set->compare); return TRUE; } /** * Frees the hash table and the data contained inside it. * @param hash The hash table to destroy. * @return @c TRUE on success, @c FALSE on error. * @ingroup Ecore_Data_Hash_ADT_Destruction_Group */ EAPI void ecore_hash_destroy(Ecore_Hash *hash) { unsigned int i = 0; CHECK_PARAM_POINTER("hash", hash); if (hash->buckets) { while (i < ecore_prime_table[hash->size]) { if (hash->buckets[i]) { Ecore_Hash_Node *bucket; /* * Remove the bucket list to avoid possible recursion * on the free callbacks. */ bucket = hash->buckets[i]; hash->buckets[i] = NULL; _ecore_hash_bucket_destroy(bucket, hash->free_key, hash->free_value); } i++; } FREE(hash->buckets); } FREE(hash); return; } /** * @defgroup Ecore_Data_Hash_ADT_Traverse_Group Hash Traverse Functions * * Functions that iterate through hash tables. */ /** * Counts the number of nodes in a hash table. * @param hash The hash table to count current nodes. * @return The number of nodes in the hash. * @ingroup Ecore_Data_Hash_ADT_Destruction_Group */ EAPI int ecore_hash_count(Ecore_Hash *hash) { CHECK_PARAM_POINTER_RETURN("hash", hash, 0); return hash->nodes; } /** * Runs the @p for_each_func function on each entry in the given hash. * @param hash The given hash. * @param for_each_func The function that each entry is passed to. * @param user_data a pointer passed to calls of for_each_func * @return TRUE on success, FALSE otherwise. * @ingroup Ecore_Data_Hash_ADT_Traverse_Group */ EAPI int ecore_hash_for_each_node(Ecore_Hash *hash, Ecore_For_Each for_each_func, void *user_data) { unsigned int i = 0; CHECK_PARAM_POINTER_RETURN("hash", hash, FALSE); CHECK_PARAM_POINTER_RETURN("for_each_func", for_each_func, FALSE); while (i < ecore_prime_table[hash->size]) { if (hash->buckets[i]) { Ecore_Hash_Node *node; for (node = hash->buckets[i]; node; node = node->next) { for_each_func(node, user_data); } } i++; } return TRUE; } /** * Retrieves an ecore_list of all keys in the given hash. * @param hash The given hash. * @return new ecore_list on success, NULL otherwise * @ingroup Ecore_Data_Hash_ADT_Traverse_Group */ EAPI Ecore_List * ecore_hash_keys(Ecore_Hash *hash) { unsigned int i = 0; Ecore_List *keys; CHECK_PARAM_POINTER_RETURN("hash", hash, NULL); keys = ecore_list_new(); while (i < ecore_prime_table[hash->size]) { if (hash->buckets[i]) { Ecore_Hash_Node *node; for (node = hash->buckets[i]; node; node = node->next) { ecore_list_append(keys, node->key); } } i++; } ecore_list_first_goto(keys); return keys; } /** * Prints the distribution of the given hash table for graphing. * @param hash The given hash table. */ EAPI void ecore_hash_dump_graph(Ecore_Hash *hash) { unsigned int i; for (i = 0; i < ecore_prime_table[hash->size]; i++) if (hash->buckets[i]) { int n = 0; Ecore_Hash_Node *node; for (node = hash->buckets[i]; node; node = node->next) n++; printf("%d\t%u", i, n); } else printf("%d\t0", i); } /** * Prints the distribution of the given hash table for graphing. * @param hash The given hash table. */ EAPI void ecore_hash_dump_stats(Ecore_Hash *hash) { unsigned int i; double variance, sum_n_2 = 0, sum_n = 0; for (i = 0; i < ecore_prime_table[hash->size]; i++) { if (hash->buckets[i]) { int n = 0; Ecore_Hash_Node *node; for (node = hash->buckets[i]; node; node = node->next) n++; sum_n_2 += ((double)n * (double)n); sum_n += (double)n; } } variance = (sum_n_2 - ((sum_n * sum_n) / (double)i)) / (double)i; printf("Average length: %f\n\tvariance^2: %f", (sum_n / (double)i), variance); } static int _ecore_hash_bucket_destroy(Ecore_Hash_Node *list, Ecore_Free_Cb keyd, Ecore_Free_Cb valued) { Ecore_Hash_Node *node; CHECK_PARAM_POINTER_RETURN("list", list, FALSE); for (node = list; node; node = list) { list = list->next; _ecore_hash_node_destroy(node, keyd, valued); } return TRUE; } /* * @brief Add the node to the hash table * @param hash: the hash table to add the key * @param node: the node to add to the hash table * @return Returns FALSE on error, TRUE on success */ static int _ecore_hash_node_add(Ecore_Hash *hash, Ecore_Hash_Node *node) { unsigned long hash_val; CHECK_PARAM_POINTER_RETURN("hash", hash, FALSE); CHECK_PARAM_POINTER_RETURN("node", node, FALSE); /* Check to see if the hash needs to be resized */ if (ECORE_HASH_INCREASE(hash)) _ecore_hash_increase(hash); /* Compute the position in the table */ if (!hash->hash_func) hash_val = (unsigned long)node->key % ecore_prime_table[hash->size]; else hash_val = ECORE_COMPUTE_HASH(hash, node->key); /* Prepend the node to the list at the index position */ node->next = hash->buckets[hash_val]; hash->buckets[hash_val] = node; hash->nodes++; return TRUE; } /** * Retrieves the value associated with the given key from the given hash * table. * @param hash The given hash table. * @param key The key to search for. * @return The value corresponding to key on success, @c NULL otherwise. * @ingroup Ecore_Data_Hash_ADT_Data_Group */ EAPI void * ecore_hash_get(Ecore_Hash *hash, const void *key) { void *data; Ecore_Hash_Node *node; CHECK_PARAM_POINTER_RETURN("hash", hash, NULL); node = _ecore_hash_node_get(hash, key); if (!node) return NULL; data = node->value; return data; } /** * Removes the value associated with the given key in the given hash * table. * @param hash The given hash table. * @param key The key to search for. * @return The value corresponding to the key on success. @c NULL is * returned if there is an error. * @ingroup Ecore_Data_Hash_ADT_Data_Group */ EAPI void * ecore_hash_remove(Ecore_Hash *hash, const void *key) { Ecore_Hash_Node *node = NULL; Ecore_Hash_Node *list; unsigned long hash_val; void *ret = NULL; CHECK_PARAM_POINTER_RETURN("hash", hash, NULL); /* Compute the position in the table */ if (!hash->hash_func) hash_val = (unsigned long )key % ecore_prime_table[hash->size]; else hash_val = ECORE_COMPUTE_HASH(hash, key); /* * If their is a list that could possibly hold the key/value pair * traverse it and remove the hash node. */ if (hash->buckets[hash_val]) { list = hash->buckets[hash_val]; /* * Traverse the list to find the specified key */ node = list; if (hash->compare) while ((node) && (hash->compare(node->key, key) != 0)) { list = node; node = node->next; } else while ((node) && (node->key != key)) { list = node; node = node->next; } /* * Remove the node with the matching key and free it's memory */ if (node) { if (list == node) hash->buckets[hash_val] = node->next; else list->next = node->next; ret = node->value; node->value = NULL; _ecore_hash_node_destroy(node, hash->free_key, NULL); hash->nodes--; } } if (ECORE_HASH_REDUCE(hash)) _ecore_hash_decrease(hash); return ret; } /** * Retrieves the first value that matches * table. * @param hash The given hash table. * @param key The key to search for. * @return The value corresponding to key on success, @c NULL otherwise. * @ingroup Ecore_Data_Hash_ADT_Data_Group */ EAPI void * ecore_hash_find(Ecore_Hash *hash, Ecore_Compare_Cb compare, const void *value) { unsigned int i = 0; CHECK_PARAM_POINTER_RETURN("hash", hash, NULL); CHECK_PARAM_POINTER_RETURN("compare", compare, NULL); CHECK_PARAM_POINTER_RETURN("value", value, NULL); while (i < ecore_prime_table[hash->size]) { if (hash->buckets[i]) { Ecore_Hash_Node *node; for (node = hash->buckets[i]; node; node = node->next) { if (!compare(node->value, value)) return node->value; } } i++; } return NULL; } /* * @brief Retrieve the node associated with key * @param hash: the hash table to search for the key * @param key: the key to search for in the hash table * @return Returns NULL on error, node corresponding to key on success */ static Ecore_Hash_Node * _ecore_hash_node_get(Ecore_Hash *hash, const void *key) { unsigned long hash_val; Ecore_Hash_Node *node = NULL; CHECK_PARAM_POINTER_RETURN("hash", hash, NULL); if (!hash->buckets) return NULL; /* Compute the position in the table */ if (!hash->hash_func) hash_val = (unsigned long)key % ecore_prime_table[hash->size]; else hash_val = ECORE_COMPUTE_HASH(hash, key); /* Grab the bucket at the specified position */ if (hash->buckets[hash_val]) { node = _ecore_hash_bucket_get(hash, hash->buckets[hash_val], key); /* * Move matched node to the front of the list as it's likely * to be searched for again soon. */ if (node && node != hash->buckets[hash_val]) { node->next = hash->buckets[hash_val]; hash->buckets[hash_val] = node; } } return node; } /* * @brief Search the hash bucket for a specified key * @param hash: the hash table to retrieve the comparison function * @param bucket: the list to search for the key * @param key: the key to search for in the list * @return Returns NULL on error or not found, the found node on success */ static inline Ecore_Hash_Node * _ecore_hash_bucket_get(Ecore_Hash *hash, Ecore_Hash_Node *bucket, const void *key) { Ecore_Hash_Node *prev = NULL; Ecore_Hash_Node *node = NULL; /* * Traverse the list to find the desired node, if the node is in the * list, then return the node. */ if (hash->compare) for (node = bucket; node; node = node->next) { if (hash->compare(node->key, key) == 0) break; prev = node; } else for (node = bucket; node; node = node->next) { if (node->key == key) break; prev = node; } /* * Remove node from the list to replace it at the beginning. */ if (node && prev) { prev->next = node->next; node->next = NULL; } return node; } /* * @brief Increase the size of the hash table by approx. 2 * current size * @param hash: the hash table to increase the size of * @return Returns TRUE on success, FALSE on error */ static int _ecore_hash_increase(Ecore_Hash *hash) { void *old; CHECK_PARAM_POINTER_RETURN("hash", hash, FALSE); /* Max size reached so return FALSE */ if ((ecore_prime_table[hash->size] == PRIME_MAX) || (hash->size == PRIME_TABLE_MAX)) return FALSE; /* * Increase the size of the hash and save a pointer to the old data */ hash->size++; old = hash->buckets; /* * Allocate a new bucket area, of the new larger size */ hash->buckets = calloc(ecore_prime_table[hash->size], sizeof(Ecore_Hash_Node *)); /* * Make sure the allocation succeeded, if not replace the old data and * return a failure. */ if (!hash->buckets) { hash->buckets = old; hash->size--; return FALSE; } hash->nodes = 0; /* * Now move all of the old data into the new bucket area */ if (_ecore_hash_rehash(hash, old, hash->size - 1)) { FREE(old); return TRUE; } /* * Free the old buckets regardless of success. */ FREE(old); return FALSE; } /* * @brief Decrease the size of the hash table by < 1/2 * current size * @param hash: the hash table to decrease the size of * @return Returns TRUE on success, FALSE on error */ static int _ecore_hash_decrease(Ecore_Hash *hash) { Ecore_Hash_Node **old; CHECK_PARAM_POINTER_RETURN("hash", hash, FALSE); if (ecore_prime_table[hash->size] == PRIME_MIN) return FALSE; /* * Decrease the hash size and store a pointer to the old data */ hash->size--; old = hash->buckets; /* * Allocate a new area to store the data */ hash->buckets = (Ecore_Hash_Node **)calloc(ecore_prime_table[hash->size], sizeof(Ecore_Hash_Node *)); /* * Make sure allocation succeeded otherwise rreturn to the previous * state */ if (!hash->buckets) { hash->buckets = old; hash->size++; return FALSE; } hash->nodes = 0; if (_ecore_hash_rehash(hash, old, hash->size + 1)) { FREE(old); return TRUE; } return FALSE; } /* * @brief Rehash the nodes of a table into the hash table * @param hash: the hash to place the nodes of the table * @param table: the table to remove the nodes from and place in hash * @return Returns TRUE on success, FALSE on error */ static inline int _ecore_hash_rehash(Ecore_Hash *hash, Ecore_Hash_Node **old_table, int old_size) { unsigned int i; Ecore_Hash_Node *old; CHECK_PARAM_POINTER_RETURN("hash", hash, FALSE); CHECK_PARAM_POINTER_RETURN("old_table", old_table, FALSE); for (i = 0; i < ecore_prime_table[old_size]; i++) { /* Hash into a new list to avoid loops of rehashing the same nodes */ while ((old = old_table[i])) { old_table[i] = old->next; old->next = NULL; _ecore_hash_node_add(hash, old); } } return TRUE; } /* * @brief Create a new hash node for key and value storage * @param key: the key for this node * @param value: the value that the key references * @return Returns NULL on error, a new hash node on success */ static Ecore_Hash_Node * _ecore_hash_node_new(void *key, void *value) { Ecore_Hash_Node *node; node = (Ecore_Hash_Node *)malloc(sizeof(Ecore_Hash_Node)); if (!node) return NULL; if (!_ecore_hash_node_init(node, key, value)) { FREE(node); return NULL; } return node; } /* * @brief Initialize a hash node to some sane default values * @param node: the node to set the values * @param key: the key to reference this node * @param value: the value that key refers to * @return Returns TRUE on success, FALSE on error */ static int _ecore_hash_node_init(Ecore_Hash_Node *node, void *key, void *value) { CHECK_PARAM_POINTER_RETURN("node", node, FALSE); node->key = key; node->value = value; return TRUE; } /* * @brief Destroy a node and call the specified callbacks to free data * @param node: the node to be destroyed * @param keyd: the function to free the key * @param valued: the function to free the value * @return Returns TRUE on success, FALSE on error */ static int _ecore_hash_node_destroy(Ecore_Hash_Node *node, Ecore_Free_Cb keyd, Ecore_Free_Cb valued) { CHECK_PARAM_POINTER_RETURN("node", node, FALSE); if (keyd) keyd(node->key); if (valued) valued(node->value); FREE(node); return TRUE; } int ecore_str_compare(const void *key1, const void *key2) { const char *k1, *k2; if (!key1 || !key2) return ecore_direct_compare(key1, key2); else if (key1 == key2) return 0; k1 = key1; k2 = key2; return strcmp(k1, k2); } unsigned int ecore_str_hash(const void *key) { int i; unsigned int mask; unsigned int value = 0; const char *k = key; if (!k) return 0; mask = (sizeof(unsigned int) * 8) - 1; for (i = 0; k[i] != '\0'; i++) { value ^= ((unsigned int)k[i] << ((i * 5) & mask)); } return value; } eina-1.7.10/src/tests/eina_test_inarray.c0000664000175000017500000002250312175475327015253 00000000000000/* EINA - EFL data type library * Copyright (C) 2012 ProFUSION embedded systems * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_suite.h" #include "Eina.h" START_TEST(eina_inarray_test_simple) { const int test_members = 5; Eina_Inarray *array; int i, pos, *member; const struct spec { int pos, value; } *s, specs[] = { {test_members, 1234}, {5, 0x1337}, {0, 0xbeef}, {-1, -1} }; eina_init(); array = eina_inarray_new(sizeof(int), 2); fail_unless(array != NULL); for (i = 0; i < test_members; i++) { pos = eina_inarray_push(array, &i); fail_unless(pos == i); } fail_unless(eina_inarray_count(array) == (unsigned)test_members); for (i = 0; i < test_members; i++) { member = eina_inarray_nth(array, i); fail_unless(*member == i); } for (s = specs; s->pos >= 0; s++) { fail_unless(eina_inarray_insert_at(array, s->pos, &s->value)); for (i = 0; i < s->pos; i++) { member = eina_inarray_nth(array, i); fail_unless(*member == i); } member = eina_inarray_nth(array, s->pos); fail_unless(*member == s->value); for (i = s->pos + 1; i < test_members + 1; i++) { member = eina_inarray_nth(array, i); fail_unless(*member == i - 1); } fail_unless(eina_inarray_remove_at(array, s->pos)); for (i = 0; i < test_members; i++) { member = eina_inarray_nth(array, i); fail_unless(*member == i); } } eina_inarray_free(array); eina_shutdown(); } END_TEST START_TEST(eina_inarray_test_alloc_at) { Eina_Inarray *array; int *member; int i; eina_init(); array = eina_inarray_new(sizeof(int), 2); fail_unless(array != NULL); member = eina_inarray_alloc_at(array, 0, 4); fail_unless(member != NULL); fail_unless(eina_inarray_count(array) == 4); for (i = 0; i < 4; i++) member[i] = i + 2; member = eina_inarray_alloc_at(array, 0, 2); fail_unless(member != NULL); fail_unless(eina_inarray_count(array) == 6); for (i = 0; i < 2; i++) member[i] = i; member = eina_inarray_alloc_at(array, 6, 2); fail_unless(member != NULL); fail_unless(eina_inarray_count(array) == 8); for (i = 0; i < 2; i++) member[i] = i + 6; member = array->members; for (i = 0; i < 8; i++) fail_unless(member[i] == i); eina_inarray_free(array); eina_shutdown(); } END_TEST static const short rand_numbers[] = { 9, 0, 2, 3, 6, 5, 4, 7, 8, 1, 10 }; static const int numbers_count = sizeof(rand_numbers)/sizeof(rand_numbers[0]); static void show_sort_array(const Eina_Inarray *array) { int i, len = eina_inarray_count(array); printf("array with %d members:\n", len); for (i = 0; i < len; i++) { short *member = eina_inarray_nth(array, i); printf("\tarray[%2d]=%5hd\n", i, *member); } } static Eina_Bool check_short_sorted(const Eina_Inarray *array) { int i; for (i = 0; i < numbers_count; i++) { short *member = eina_inarray_nth(array, i); if (*member != (short)i) { show_sort_array(array); fprintf(stderr, "not sorted at %d: %hd\n", i, *member); return EINA_FALSE; } } return EINA_TRUE; } static int short_cmp(const void *pa, const void *pb) { const short *a = pa, *b = pb; return *a - *b; } START_TEST(eina_inarray_test_insert_sort) { Eina_Inarray *array; int i, pos; eina_init(); array = eina_inarray_new(sizeof(short), 1); fail_unless(array != NULL); /* insert sorted and already sorted sequence */ for (i = 0; i < numbers_count; i++) { short val = i; pos = eina_inarray_insert(array, &val, short_cmp); fail_unless(pos == (int)val); } fail_unless(check_short_sorted(array)); eina_inarray_flush(array); for (i = 0; i < numbers_count; i++) { short val = i; pos = eina_inarray_insert_sorted(array, &val, short_cmp); fail_unless(pos == (int)val); } fail_unless(check_short_sorted(array)); eina_inarray_flush(array); /* insert sorted the reverse sequence */ for (i = 0; i < numbers_count; i++) { short val = numbers_count - i - 1; pos = eina_inarray_insert(array, &val, short_cmp); fail_unless(pos == 0); } fail_unless(check_short_sorted(array)); eina_inarray_flush(array); for (i = 0; i < numbers_count; i++) { short val = numbers_count - i - 1; pos = eina_inarray_insert_sorted(array, &val, short_cmp); fail_unless(pos == 0); } fail_unless(check_short_sorted(array)); eina_inarray_flush(array); /* insert sorted random numbers */ for (i = 0; i < numbers_count; i++) { short val = rand_numbers[i]; eina_inarray_insert(array, &val, short_cmp); } fail_unless(check_short_sorted(array)); eina_inarray_flush(array); for (i = 0; i < numbers_count; i++) { short val = rand_numbers[i]; eina_inarray_insert_sorted(array, &val, short_cmp); } fail_unless(check_short_sorted(array)); eina_inarray_flush(array); eina_inarray_free(array); eina_shutdown(); } END_TEST START_TEST(eina_inarray_test_sort) { Eina_Inarray *array; int i; eina_init(); array = eina_inarray_new(sizeof(short), 1); fail_unless(array != NULL); for (i = 0; i < numbers_count; i++) { short val = rand_numbers[i]; eina_inarray_push(array, &val); } eina_inarray_sort(array, short_cmp); fail_unless(check_short_sorted(array)); eina_inarray_free(array); eina_shutdown(); } END_TEST START_TEST(eina_inarray_test_reverse) { Eina_Inarray *array; int i; eina_init(); array = eina_inarray_new(sizeof(short), 1); fail_unless(array != NULL); for (i = 0; i < numbers_count; i++) { short val = i; eina_inarray_push(array, &val); } eina_inarray_reverse(array); for (i = 0; i < numbers_count; i++) { short *member = eina_inarray_nth(array, i); fail_unless(*member == (numbers_count - i - 1)); } eina_inarray_free(array); eina_shutdown(); } END_TEST static Eina_Bool array_foreach(const void *array __UNUSED__, void *p, void *user_data __UNUSED__) { short *member = p; int *i = user_data; fail_unless(*i == *member); (*i)++; return EINA_TRUE; } static Eina_Bool array_foreach_stop_2nd(const void *array __UNUSED__, void *p, void *user_data __UNUSED__) { short *member = p; int *i = user_data; fail_unless(*i == *member); if (*i == 1) return EINA_FALSE; (*i)++; return EINA_TRUE; } START_TEST(eina_inarray_test_itr) { Eina_Inarray *array; Eina_Iterator *it; Eina_Accessor *ac; short *member; int i; eina_init(); array = eina_inarray_new(sizeof(short), 1); fail_unless(array != NULL); for (i = 0; i < numbers_count; i++) { short val = i; eina_inarray_push(array, &val); } i = 0; EINA_INARRAY_FOREACH(array, member) { fail_unless(*member == i); i++; } fail_unless(i == numbers_count); i--; EINA_INARRAY_REVERSE_FOREACH(array, member) { fail_unless(*member == i); i--; } fail_unless(i == -1); i = 0; fail_unless(eina_inarray_foreach(array, array_foreach, &i)); fail_unless(i == numbers_count); i = 0; fail_if(eina_inarray_foreach(array, array_foreach_stop_2nd, &i)); fail_unless(i == 1); it = eina_inarray_iterator_new(array); fail_unless(it != NULL); i = 0; EINA_ITERATOR_FOREACH(it, member) { fail_unless(*member == i); i++; } fail_unless(i == numbers_count); eina_iterator_free(it); it = eina_inarray_iterator_reversed_new(array); fail_unless(it != NULL); i--; EINA_ITERATOR_FOREACH(it, member) { fail_unless(*member == i); i--; } fail_unless(i == -1); eina_iterator_free(it); ac = eina_inarray_accessor_new(array); fail_unless(ac != NULL); for (i = 0; i < numbers_count; i++) { fail_unless(eina_accessor_data_get(ac, i, (void **)&member)); fail_unless(*member == i); } fail_unless(i == numbers_count); eina_accessor_free(ac); eina_inarray_free(array); eina_shutdown(); } END_TEST void eina_test_inarray(TCase *tc) { tcase_add_test(tc, eina_inarray_test_simple); tcase_add_test(tc, eina_inarray_test_alloc_at); tcase_add_test(tc, eina_inarray_test_insert_sort); tcase_add_test(tc, eina_inarray_test_sort); tcase_add_test(tc, eina_inarray_test_reverse); tcase_add_test(tc, eina_inarray_test_itr); } eina-1.7.10/src/tests/eina_test_ustringshare.c0000664000175000017500000000614712175475327016332 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include "eina_suite.h" #include "Eina.h" static const Eina_Unicode TEST0[] = {'t', 'e', 's', 't', '/', '0', 0}; static const Eina_Unicode TEST1[] = {'t', 'e', 's', 't', '/', '1', 0}; START_TEST(eina_ustringshare_simple) { const Eina_Unicode *t0; const Eina_Unicode *t1; eina_init(); t0 = eina_ustringshare_add(TEST0); t1 = eina_ustringshare_add(TEST1); fail_if(t0 == NULL); fail_if(t1 == NULL); fail_if(eina_unicode_strcmp(t0, TEST0) != 0); fail_if(eina_unicode_strcmp(t1, TEST1) != 0); fail_if((int)eina_unicode_strlen(TEST0) != eina_ustringshare_strlen(t0)); fail_if((int)eina_unicode_strlen(TEST1) != eina_ustringshare_strlen(t1)); t0 = eina_ustringshare_ref(t0); fail_if(t0 == NULL); fail_if((int)strlen((char*)TEST0) != eina_stringshare_strlen((const char*)t0)); eina_ustringshare_del(t0); eina_ustringshare_del(t0); eina_ustringshare_del(t1); eina_shutdown(); } END_TEST START_TEST(eina_ustringshare_test_share) { const Eina_Unicode *t0; const Eina_Unicode *t1; eina_init(); t0 = eina_ustringshare_add(TEST0); t1 = eina_ustringshare_add(TEST0); fail_if(t0 == NULL); fail_if(t1 == NULL); fail_if(eina_unicode_strcmp(t0, TEST0) != 0); fail_if(eina_unicode_strcmp(t1, TEST0) != 0); fail_if(t0 != t1); fail_if((int)eina_unicode_strlen(TEST0) != eina_ustringshare_strlen(t0)); fail_if((int)eina_unicode_strlen(TEST0) != eina_ustringshare_strlen(t1)); eina_ustringshare_del(t0); eina_ustringshare_del(t1); eina_shutdown(); } END_TEST START_TEST(eina_ustringshare_putstuff) { const Eina_Unicode *tmp; int i; eina_init(); for (i = 10000; i > 0; --i) { Eina_Unicode string_[] = {'s', 't', 'r', 'i', 'n', 'g', '_', 0}; Eina_Unicode build[64]; eina_unicode_strcpy(build, string_); build[7] = i; build[8] = 0; tmp = eina_ustringshare_add(build); fail_if(tmp != eina_ustringshare_add(build)); fail_if((int)eina_unicode_strlen(build) != eina_ustringshare_strlen(tmp)); } eina_shutdown(); } END_TEST void eina_test_ustringshare(TCase *tc) { tcase_add_test(tc, eina_ustringshare_simple); tcase_add_test(tc, eina_ustringshare_test_share); tcase_add_test(tc, eina_ustringshare_putstuff); } eina-1.7.10/src/tests/eina_bench_sort.c0000664000175000017500000001160412175475327014675 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #ifdef EINA_BENCH_HAVE_GLIB # include #endif #include "Evas_Data.h" #include "Ecore_Data.h" #include "eina_bench.h" #include "eina_convert.h" #include "eina_list.h" #include "eina_main.h" static int _eina_cmp_str(const char *a, const char *b) { return strcmp(a, b); } static void eina_bench_sort_eina(int request) { Eina_List *list = NULL; int i; eina_init(); srand(time(NULL)); for (i = 0; i < request; ++i) { char buffer[10]; eina_convert_itoa(rand() % request, buffer); list = eina_list_prepend(list, strdup(buffer)); } list = eina_list_sort(list, -1, EINA_COMPARE_CB(_eina_cmp_str)); while (list) { free(eina_list_data_get(list)); list = eina_list_remove_list(list, list); } eina_shutdown(); } static void eina_bench_sort_evas(int request) { Evas_List *list = NULL; int i; srand(time(NULL)); for (i = 0; i < request; ++i) { char buffer[10]; eina_convert_itoa(rand() % request, buffer); list = evas_list_prepend(list, strdup(buffer)); } list = evas_list_sort(list, -1, (void *)_eina_cmp_str); while (list) { free(evas_list_data(list)); list = evas_list_remove_list(list, list); } } #ifdef EINA_BENCH_HAVE_GLIB static void eina_bench_sort_glist(int request) { GList *list = NULL; int i; srand(time(NULL)); for (i = 0; i < request; ++i) { char buffer[10]; eina_convert_itoa(rand() % request, buffer); list = g_list_prepend(list, strdup(buffer)); } list = g_list_sort(list, (void *)_eina_cmp_str); while (list) { free(list->data); list = g_list_delete_link(list, list); } } #endif static void eina_bench_sort_ecore_default(int request) { Ecore_List *list = NULL; int i; list = ecore_list_new(); ecore_list_free_cb_set(list, free); for (i = 0; i < request; ++i) { char buffer[10]; eina_convert_itoa(rand() % request, buffer); ecore_list_prepend(list, strdup(buffer)); } ecore_list_sort(list, ECORE_COMPARE_CB(_eina_cmp_str), 0); ecore_list_destroy(list); } static void eina_bench_sort_ecore_merge(int request) { Ecore_List *list = NULL; int i; list = ecore_list_new(); ecore_list_free_cb_set(list, free); for (i = 0; i < request; ++i) { char buffer[10]; eina_convert_itoa(rand() % request, buffer); ecore_list_prepend(list, strdup(buffer)); } ecore_list_mergesort(list, ECORE_COMPARE_CB(_eina_cmp_str), 0); ecore_list_destroy(list); } static void eina_bench_sort_ecore_heap(int request) { Ecore_List *list = NULL; int i; list = ecore_list_new(); ecore_list_free_cb_set(list, free); for (i = 0; i < request; ++i) { char buffer[10]; eina_convert_itoa(rand() % request, buffer); ecore_list_prepend(list, strdup(buffer)); } ecore_list_heapsort(list, ECORE_COMPARE_CB(_eina_cmp_str), 0); ecore_list_destroy(list); } void eina_bench_sort(Eina_Benchmark *bench) { eina_benchmark_register(bench, "eina", EINA_BENCHMARK( eina_bench_sort_eina), 10, 10000, 100); #ifdef EINA_BENCH_HAVE_GLIB eina_benchmark_register(bench, "glist", EINA_BENCHMARK( eina_bench_sort_glist), 10, 10000, 100); #endif eina_benchmark_register(bench, "ecore", EINA_BENCHMARK( eina_bench_sort_ecore_default), 10, 10000, 100); eina_benchmark_register(bench, "ecore-merge", EINA_BENCHMARK( eina_bench_sort_ecore_merge), 10, 10000, 100); eina_benchmark_register(bench, "ecore-heap", EINA_BENCHMARK( eina_bench_sort_ecore_heap), 10, 10000, 100); eina_benchmark_register(bench, "evas", EINA_BENCHMARK( eina_bench_sort_evas), 10, 10000, 100); } eina-1.7.10/src/tests/eina_bench.h0000664000175000017500000000236512175475327013637 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_BENCH_H_ #define EINA_BENCH_H_ #include "eina_benchmark.h" void eina_bench_hash(Eina_Benchmark *bench); void eina_bench_array(Eina_Benchmark *bench); void eina_bench_stringshare(Eina_Benchmark *bench); void eina_bench_convert(Eina_Benchmark *bench); void eina_bench_sort(Eina_Benchmark *bench); void eina_bench_mempool(Eina_Benchmark *bench); void eina_bench_rectangle_pool(Eina_Benchmark *bench); void eina_bench_quadtree(Eina_Benchmark *bench); /* Specific benchmark. */ void eina_bench_e17(void); #endif eina-1.7.10/src/tests/eina_test_counter.c0000664000175000017500000001152412175475327015266 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "eina_suite.h" #include "Eina.h" #include "eina_safety_checks.h" #ifdef EINA_SAFETY_CHECKS struct log_ctx { const char *msg; const char *fnc; Eina_Bool did; }; /* tests should not output on success, just uncomment this for debugging */ //#define SHOW_LOG 1 static void _eina_test_safety_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args __UNUSED__) { struct log_ctx *ctx = data; va_list cp_args; const char *str; va_copy(cp_args, args); str = va_arg(cp_args, const char *); va_end(cp_args); ck_assert_int_eq(level, EINA_LOG_LEVEL_ERR); ck_assert_str_eq(fmt, "%s"); ck_assert_str_eq(ctx->msg, str); ck_assert_str_eq(ctx->fnc, fnc); ctx->did = EINA_TRUE; #ifdef SHOW_LOG eina_log_print_cb_stderr(d, level, file, fnc, line, fmt, NULL, args); #else (void)d; (void)file; (void)line; #endif } #endif START_TEST(eina_counter_simple) { Eina_Counter *cnt; char *dump; int i; eina_init(); cnt = eina_counter_new("eina_test"); fail_if(!cnt); eina_counter_start(cnt); for (i = 0; i < 100000; ++i) { void *tmp = malloc(sizeof(long int)); free(tmp); } eina_counter_stop(cnt, i); eina_counter_start(cnt); for (i = 0; i < 200000; ++i) { void *tmp = malloc(sizeof(long int)); free(tmp); } eina_counter_stop(cnt, i); dump = eina_counter_dump(cnt); fail_if(!dump); /* TODO: parse dump and check if it's right */ fprintf(stderr, "%s", dump); free(dump); eina_counter_free(cnt); eina_shutdown(); } END_TEST START_TEST(eina_counter_break) { Eina_Counter *cnt; eina_init(); cnt = eina_counter_new("eina_test"); fail_if(!cnt); eina_counter_stop(cnt, 10); eina_counter_free(cnt); #ifdef EINA_SAFETY_CHECKS { struct log_ctx ctx; char *dump; #define TEST_MAGIC_SAFETY(fn, _msg) \ ctx.msg = _msg; \ ctx.fnc = fn; \ ctx.did = EINA_FALSE eina_log_print_cb_set(_eina_test_safety_print_cb, &ctx); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_counter_new", "safety check failed: name == NULL"); cnt = eina_counter_new(NULL); fail_if(cnt); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_counter_free", "safety check failed: counter == NULL"); eina_counter_free(NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_counter_start", "safety check failed: counter == NULL"); eina_counter_start(NULL); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_counter_stop", "safety check failed: counter == NULL"); eina_counter_stop(NULL, 0); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); #ifdef SHOW_LOG fprintf(stderr, "you should have a safety check failure below:\n"); #endif TEST_MAGIC_SAFETY("eina_counter_dump", "safety check failed: counter == NULL"); dump = eina_counter_dump(NULL); fail_if(dump); fail_if(eina_error_get() != EINA_ERROR_SAFETY_FAILED); fail_unless(ctx.did); eina_log_print_cb_set(eina_log_print_cb_stderr, NULL); } #endif eina_shutdown(); } END_TEST void eina_test_counter(TCase *tc) { tcase_add_test(tc, eina_counter_simple); tcase_add_test(tc, eina_counter_break); } eina-1.7.10/src/tests/eina_test_array.c0000664000175000017500000000743012175475327014726 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_suite.h" #include "Eina.h" START_TEST(eina_array_simple) { Eina_Array *ea; char *tmp; Eina_Array_Iterator it; unsigned int i; eina_init(); ea = eina_array_new(11); fail_if(!ea); for (i = 0; i < 201; ++i) { tmp = malloc(sizeof(char) * 10); fail_if(!tmp); eina_convert_itoa(i, tmp); eina_array_push(ea, tmp); } fail_if(eina_array_data_get(ea, 10) == NULL); fail_if(atoi(eina_array_data_get(ea, 10)) != 10); tmp = eina_array_pop(ea); fail_if(tmp == NULL); fail_if(atoi(tmp) != 200); free(tmp); EINA_ARRAY_ITER_NEXT(ea, i, tmp, it) { fail_if((unsigned int)atoi(tmp) != i); free(tmp); } fail_if(i != 200); eina_array_clean(ea); eina_array_flush(ea); eina_array_free(ea); eina_shutdown(); } END_TEST START_TEST(eina_array_static) { Eina_Array sea; char *tmp; Eina_Array_Iterator it; unsigned int i; eina_init(); eina_array_step_set(&sea, sizeof(sea), 10); for (i = 0; i < 200; ++i) { tmp = malloc(sizeof(char) * 10); fail_if(!tmp); eina_convert_itoa(i, tmp); eina_array_push(&sea, tmp); } fail_if(eina_array_data_get(&sea, 10) == NULL); fail_if(atoi(eina_array_data_get(&sea, 10)) != 10); EINA_ARRAY_ITER_NEXT(&sea, i, tmp, it) { fail_if((unsigned int)atoi(tmp) != i); free(tmp); } fail_if(i != 200); eina_array_clean(&sea); eina_array_flush(&sea); eina_shutdown(); } END_TEST Eina_Bool keep_int(void *data, void *gdata) { int *tmp = data; fail_if(gdata); fail_if(!tmp); if (*tmp == 0) return EINA_FALSE; return EINA_TRUE; } START_TEST(eina_array_remove_stuff) { Eina_Array *ea; int *tmp; Eina_Array_Iterator it; unsigned int i; eina_init(); ea = eina_array_new(64); fail_if(!ea); for (i = 0; i < 1000; ++i) { tmp = malloc(sizeof(int)); fail_if(!tmp); *tmp = i; eina_array_push(ea, tmp); } // Remove the first 10 items for (i = 0; i < 10; ++i) { tmp = eina_array_data_get(ea, i); fail_if(!tmp); *tmp = 0; } fail_if(eina_array_remove(ea, keep_int, NULL) != EINA_TRUE); fail_if(eina_array_count(ea) != 990); EINA_ARRAY_ITER_NEXT(ea, i, tmp, it) fail_if(*tmp == 0); // Remove the last items for (i = 980; i < 990; ++i) { tmp = eina_array_data_get(ea, i); fail_if(!tmp); *tmp = 0; } eina_array_remove(ea, keep_int, NULL); // Remove all items fail_if(eina_array_count(ea) != 980); EINA_ARRAY_ITER_NEXT(ea, i, tmp, it) { fail_if(*tmp == 0); *tmp = 0; } eina_array_remove(ea, keep_int, NULL); fail_if(eina_array_count(ea) != 0); eina_array_free(ea); eina_shutdown(); } END_TEST void eina_test_array(TCase *tc) { tcase_add_test(tc, eina_array_simple); tcase_add_test(tc, eina_array_static); tcase_add_test(tc, eina_array_remove_stuff); } eina-1.7.10/src/tests/city.cc0000664000175000017500000002541012175475327012666 00000000000000// Copyright (c) 2011 Google, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // // CityHash Version 1, by Geoff Pike and Jyrki Alakuijala // // This file provides CityHash64() and related functions. // // It's probably possible to create even faster hash functions by // writing a program that systematically explores some of the space of // possible hash functions, by using SIMD instructions, or by // compromising on hash quality. #include "city.h" #include using namespace std; #define UNALIGNED_LOAD64(p) (*(const uint64*)(p)) #define UNALIGNED_LOAD32(p) (*(const uint32*)(p)) #if !defined(LIKELY) #if defined(__GNUC__) #define LIKELY(x) (__builtin_expect(!!(x), 1)) #else #define LIKELY(x) (x) #endif #endif // Some primes between 2^63 and 2^64 for various uses. static const uint64 k0 = 0xc3a5c85c97cb3127ULL; static const uint64 k1 = 0xb492b66fbe98f273ULL; static const uint64 k2 = 0x9ae16a3b2f90404fULL; static const uint64 k3 = 0xc949d7c7509e6557ULL; // Bitwise right rotate. Normally this will compile to a single // instruction, especially if the shift is a manifest constant. static uint64 Rotate(uint64 val, int shift) { // Avoid shifting by 64: doing so yields an undefined result. return shift == 0 ? val : ((val >> shift) | (val << (64 - shift))); } // Equivalent to Rotate(), but requires the second arg to be non-zero. // On x86-64, and probably others, it's possible for this to compile // to a single instruction if both args are already in registers. static uint64 RotateByAtLeast1(uint64 val, int shift) { return (val >> shift) | (val << (64 - shift)); } static uint64 ShiftMix(uint64 val) { return val ^ (val >> 47); } static uint64 HashLen16(uint64 u, uint64 v) { return Hash128to64(uint128(u, v)); } static uint64 HashLen0to16(const char *s, size_t len) { if (len > 8) { uint64 a = UNALIGNED_LOAD64(s); uint64 b = UNALIGNED_LOAD64(s + len - 8); return HashLen16(a, RotateByAtLeast1(b + len, len)) ^ b; } if (len >= 4) { uint64 a = UNALIGNED_LOAD32(s); return HashLen16(len + (a << 3), UNALIGNED_LOAD32(s + len - 4)); } if (len > 0) { uint8 a = s[0]; uint8 b = s[len >> 1]; uint8 c = s[len - 1]; uint32 y = static_cast(a) + (static_cast(b) << 8); uint32 z = len + (static_cast(c) << 2); return ShiftMix(y * k2 ^ z * k3) * k2; } return k2; } // This probably works well for 16-byte strings as well, but it may be overkill // in that case. static uint64 HashLen17to32(const char *s, size_t len) { uint64 a = UNALIGNED_LOAD64(s) * k1; uint64 b = UNALIGNED_LOAD64(s + 8); uint64 c = UNALIGNED_LOAD64(s + len - 8) * k2; uint64 d = UNALIGNED_LOAD64(s + len - 16) * k0; return HashLen16(Rotate(a - b, 43) + Rotate(c, 30) + d, a + Rotate(b ^ k3, 20) - c + len); } // Return a 16-byte hash for 48 bytes. Quick and dirty. // Callers do best to use "random-looking" values for a and b. static pair WeakHashLen32WithSeeds( uint64 w, uint64 x, uint64 y, uint64 z, uint64 a, uint64 b) { a += w; b = Rotate(b + a + z, 21); uint64 c = a; a += x; a += y; b += Rotate(a, 44); return make_pair(a + z, b + c); } // Return a 16-byte hash for s[0] ... s[31], a, and b. Quick and dirty. static pair WeakHashLen32WithSeeds( const char* s, uint64 a, uint64 b) { return WeakHashLen32WithSeeds(UNALIGNED_LOAD64(s), UNALIGNED_LOAD64(s + 8), UNALIGNED_LOAD64(s + 16), UNALIGNED_LOAD64(s + 24), a, b); } // Return an 8-byte hash for 33 to 64 bytes. static uint64 HashLen33to64(const char *s, size_t len) { uint64 z = UNALIGNED_LOAD64(s + 24); uint64 a = UNALIGNED_LOAD64(s) + (len + UNALIGNED_LOAD64(s + len - 16)) * k0; uint64 b = Rotate(a + z, 52); uint64 c = Rotate(a, 37); a += UNALIGNED_LOAD64(s + 8); c += Rotate(a, 7); a += UNALIGNED_LOAD64(s + 16); uint64 vf = a + z; uint64 vs = b + Rotate(a, 31) + c; a = UNALIGNED_LOAD64(s + 16) + UNALIGNED_LOAD64(s + len - 32); z = UNALIGNED_LOAD64(s + len - 8); b = Rotate(a + z, 52); c = Rotate(a, 37); a += UNALIGNED_LOAD64(s + len - 24); c += Rotate(a, 7); a += UNALIGNED_LOAD64(s + len - 16); uint64 wf = a + z; uint64 ws = b + Rotate(a, 31) + c; uint64 r = ShiftMix((vf + ws) * k2 + (wf + vs) * k0); return ShiftMix(r * k0 + vs) * k2; } uint64 CityHash64(const char *s, size_t len) { if (len <= 32) { if (len <= 16) { return HashLen0to16(s, len); } else { return HashLen17to32(s, len); } } else if (len <= 64) { return HashLen33to64(s, len); } // For strings over 64 bytes we hash the end first, and then as we // loop we keep 56 bytes of state: v, w, x, y, and z. uint64 x = UNALIGNED_LOAD64(s); uint64 y = UNALIGNED_LOAD64(s + len - 16) ^ k1; uint64 z = UNALIGNED_LOAD64(s + len - 56) ^ k0; pair v = WeakHashLen32WithSeeds(s + len - 64, len, y); pair w = WeakHashLen32WithSeeds(s + len - 32, len * k1, k0); z += ShiftMix(v.second) * k1; x = Rotate(z + x, 39) * k1; y = Rotate(y, 33) * k1; // Decrease len to the nearest multiple of 64, and operate on 64-byte chunks. len = (len - 1) & ~static_cast(63); do { x = Rotate(x + y + v.first + UNALIGNED_LOAD64(s + 16), 37) * k1; y = Rotate(y + v.second + UNALIGNED_LOAD64(s + 48), 42) * k1; x ^= w.second; y ^= v.first; z = Rotate(z ^ w.first, 33); v = WeakHashLen32WithSeeds(s, v.second * k1, x + w.first); w = WeakHashLen32WithSeeds(s + 32, z + w.second, y); std::swap(z, x); s += 64; len -= 64; } while (len != 0); return HashLen16(HashLen16(v.first, w.first) + ShiftMix(y) * k1 + z, HashLen16(v.second, w.second) + x); } uint64 CityHash64WithSeed(const char *s, size_t len, uint64 seed) { return CityHash64WithSeeds(s, len, k2, seed); } uint64 CityHash64WithSeeds(const char *s, size_t len, uint64 seed0, uint64 seed1) { return HashLen16(CityHash64(s, len) - seed0, seed1); } // A subroutine for CityHash128(). Returns a decent 128-bit hash for strings // of any length representable in ssize_t. Based on City and Murmur. static uint128 CityMurmur(const char *s, size_t len, uint128 seed) { uint64 a = Uint128Low64(seed); uint64 b = Uint128High64(seed); uint64 c = 0; uint64 d = 0; ssize_t l = len - 16; if (l <= 0) { // len <= 16 c = b * k1 + HashLen0to16(s, len); d = Rotate(a + (len >= 8 ? UNALIGNED_LOAD64(s) : c), 32); } else { // len > 16 c = HashLen16(UNALIGNED_LOAD64(s + len - 8) + k1, a); d = HashLen16(b + len, c + UNALIGNED_LOAD64(s + len - 16)); a += d; do { a ^= ShiftMix(UNALIGNED_LOAD64(s) * k1) * k1; a *= k1; b ^= a; c ^= ShiftMix(UNALIGNED_LOAD64(s + 8) * k1) * k1; c *= k1; d ^= c; s += 16; l -= 16; } while (l > 0); } a = HashLen16(a, c); b = HashLen16(d, b); return uint128(a ^ b, HashLen16(b, a)); } uint128 CityHash128WithSeed(const char *s, size_t len, uint128 seed) { if (len < 128) { return CityMurmur(s, len, seed); } // We expect len >= 128 to be the common case. Keep 56 bytes of state: // v, w, x, y, and z. pair v, w; uint64 x = Uint128Low64(seed); uint64 y = Uint128High64(seed); uint64 z = len * k1; v.first = Rotate(y ^ k1, 49) * k1 + UNALIGNED_LOAD64(s); v.second = Rotate(v.first, 42) * k1 + UNALIGNED_LOAD64(s + 8); w.first = Rotate(y + z, 35) * k1 + x; w.second = Rotate(x + UNALIGNED_LOAD64(s + 88), 53) * k1; // This is the same inner loop as CityHash64(), manually unrolled. do { x = Rotate(x + y + v.first + UNALIGNED_LOAD64(s + 16), 37) * k1; y = Rotate(y + v.second + UNALIGNED_LOAD64(s + 48), 42) * k1; x ^= w.second; y ^= v.first; z = Rotate(z ^ w.first, 33); v = WeakHashLen32WithSeeds(s, v.second * k1, x + w.first); w = WeakHashLen32WithSeeds(s + 32, z + w.second, y); std::swap(z, x); s += 64; x = Rotate(x + y + v.first + UNALIGNED_LOAD64(s + 16), 37) * k1; y = Rotate(y + v.second + UNALIGNED_LOAD64(s + 48), 42) * k1; x ^= w.second; y ^= v.first; z = Rotate(z ^ w.first, 33); v = WeakHashLen32WithSeeds(s, v.second * k1, x + w.first); w = WeakHashLen32WithSeeds(s + 32, z + w.second, y); std::swap(z, x); s += 64; len -= 128; } while (LIKELY(len >= 128)); y += Rotate(w.first, 37) * k0 + z; x += Rotate(v.first + z, 49) * k0; // If 0 < len < 128, hash up to 4 chunks of 32 bytes each from the end of s. for (size_t tail_done = 0; tail_done < len; ) { tail_done += 32; y = Rotate(y - x, 42) * k0 + v.second; w.first += UNALIGNED_LOAD64(s + len - tail_done + 16); x = Rotate(x, 49) * k0 + w.first; w.first += v.first; v = WeakHashLen32WithSeeds(s + len - tail_done, v.first, v.second); } // At this point our 48 bytes of state should contain more than // enough information for a strong 128-bit hash. We use two // different 48-byte-to-8-byte hashes to get a 16-byte final result. x = HashLen16(x, v.first); y = HashLen16(y, w.first); return uint128(HashLen16(x + v.second, w.second) + y, HashLen16(x + w.second, y + v.second)); } uint128 CityHash128(const char *s, size_t len) { if (len >= 16) { return CityHash128WithSeed(s + 16, len - 16, uint128(UNALIGNED_LOAD64(s) ^ k3, UNALIGNED_LOAD64(s + 8))); } else if (len >= 8) { return CityHash128WithSeed(NULL, 0, uint128(UNALIGNED_LOAD64(s) ^ (len * k0), UNALIGNED_LOAD64(s + len - 8) ^ k1)); } else { return CityHash128WithSeed(s, len, uint128(k0, k1)); } } eina-1.7.10/src/tests/eina_test_rbtree.c0000664000175000017500000003546112175475327015100 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include "eina_suite.h" #include "Eina.h" static inline Eina_Bool _eina_rbtree_is_red(Eina_Rbtree *tree) { return tree != NULL && tree->color == EINA_RBTREE_RED; } static int _eina_rbtree_black_height(Eina_Rbtree *tree, Eina_Rbtree_Cmp_Node_Cb cmp) { Eina_Rbtree *left; Eina_Rbtree *right; Eina_Rbtree_Direction dir; int left_height; int right_height; if (!tree) return 1; left = tree->son[EINA_RBTREE_LEFT]; right = tree->son[EINA_RBTREE_RIGHT]; /* Consecutive red links. */ fail_if(_eina_rbtree_is_red(tree) && (_eina_rbtree_is_red(left) || _eina_rbtree_is_red(right))); left_height = _eina_rbtree_black_height(left, cmp); right_height = _eina_rbtree_black_height(right, cmp); /* Check binary search tree. */ if (left) { dir = cmp(tree, left, NULL); fail_if(dir != EINA_RBTREE_LEFT); } if (right) { dir = cmp(tree, right, NULL); fail_if(dir != EINA_RBTREE_RIGHT); } /* Check black height */ if (left_height != right_height) fprintf(stderr, "%i != %i\n", left_height, right_height); fail_if(left_height != right_height); return _eina_rbtree_is_red(tree) ? left_height : left_height + 1; } typedef struct _Eina_Rbtree_Int Eina_Rbtree_Int; struct _Eina_Rbtree_Int { Eina_Rbtree node; int value; }; static Eina_Rbtree_Direction eina_rbtree_int_cmp(const Eina_Rbtree_Int *left, const Eina_Rbtree_Int *right, __UNUSED__ void *data) { fail_if(!left); fail_if(!right); if (left->value < right->value) return EINA_RBTREE_LEFT; return EINA_RBTREE_RIGHT; } static int eina_rbtree_int_key(const Eina_Rbtree_Int *node, const int *key, __UNUSED__ int length, __UNUSED__ void *data) { fail_if(!node); return node->value - *key; } static Eina_Rbtree_Int * _eina_rbtree_int_new(int value) { Eina_Rbtree_Int *it; it = malloc(sizeof (Eina_Rbtree_Int)); fail_if(!it); it->value = value; return it; } START_TEST(eina_rbtree_insertion) { Eina_Rbtree_Int *root = NULL; Eina_Rbtree_Int *item; int i; srand(time(NULL)); for (i = 0; i < 500; ++i) { item = _eina_rbtree_int_new(rand()); root = (Eina_Rbtree_Int *)eina_rbtree_inline_insert( &root->node, &item->node, EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); } _eina_rbtree_black_height(&root->node, EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp)); } END_TEST START_TEST(eina_rbtree_lookup) { Eina_Rbtree_Int *root = NULL; Eina_Rbtree_Int *item; int list[] = { 50, 100, 10, 43, 23 }; unsigned int i; for (i = 0; i < sizeof (list) / sizeof (int); ++i) { item = _eina_rbtree_int_new(list[i]); root = (Eina_Rbtree_Int *)eina_rbtree_inline_insert( &root->node, &item->node, EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); } item = (Eina_Rbtree_Int *)eina_rbtree_inline_lookup(&root->node, &list[0], sizeof(int), EINA_RBTREE_CMP_KEY_CB( eina_rbtree_int_key), NULL); fail_if(!item); i = 42; item = (Eina_Rbtree_Int *)eina_rbtree_inline_lookup(&root->node, &i, sizeof(int), EINA_RBTREE_CMP_KEY_CB( eina_rbtree_int_key), NULL); fail_if(item); } END_TEST START_TEST(eina_rbtree_remove) { Eina_Rbtree_Int *root = NULL; Eina_Rbtree_Int *item; Eina_Array *ea; Eina_Array_Iterator it; unsigned int i; eina_init(); ea = eina_array_new(11); fail_if(!ea); srand(time(NULL)); for (i = 0; i < 500; ++i) { item = _eina_rbtree_int_new(rand()); eina_array_push(ea, item); root = (Eina_Rbtree_Int *)eina_rbtree_inline_insert( &root->node, &item->node, EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); } _eina_rbtree_black_height(&root->node, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp)); EINA_ARRAY_ITER_NEXT(ea, i, item, it) { root = (Eina_Rbtree_Int *)eina_rbtree_inline_remove( &root->node, &item->node, EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); _eina_rbtree_black_height(&root->node, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp)); } fail_if(root != NULL); eina_shutdown(); } END_TEST START_TEST(eina_rbtree_simple_remove) { Eina_Rbtree *root = NULL; Eina_Rbtree *lookup; int i; root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 10), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 42), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 69), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 1337), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); _eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp)); fail_if(root == NULL); i = 69; lookup = eina_rbtree_inline_lookup(root, &i, sizeof (int), EINA_RBTREE_CMP_KEY_CB( eina_rbtree_int_key), NULL); _eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp)); fail_if(lookup == NULL); root = eina_rbtree_inline_remove(root, lookup, EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); _eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp)); } END_TEST START_TEST(eina_rbtree_simple_remove2) { Eina_Rbtree *root = NULL; Eina_Rbtree *lookup; int i; root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 10), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 42), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 69), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 1337), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 77), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 75), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 81), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); _eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp)); fail_if(root == NULL); i = 69; lookup = eina_rbtree_inline_lookup(root, &i, sizeof (int), EINA_RBTREE_CMP_KEY_CB( eina_rbtree_int_key), NULL); _eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp)); fail_if(lookup == NULL); root = eina_rbtree_inline_remove(root, lookup, EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); _eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp)); } END_TEST START_TEST(eina_rbtree_simple_remove3) { Eina_Rbtree *root = NULL; Eina_Rbtree *lookup; int i; root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 1113497590), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 499187507), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 1693860487), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 26211080), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 797272577), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 1252184882), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 1448158229), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 1821884856), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 346086006), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 936357333), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 1462073936), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 1717320055), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); root = eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new( 1845524606), EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); _eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp)); fail_if(root == NULL); i = 1113497590; lookup = eina_rbtree_inline_lookup(root, &i, sizeof (int), EINA_RBTREE_CMP_KEY_CB( eina_rbtree_int_key), NULL); _eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp)); fail_if(lookup == NULL); root = eina_rbtree_inline_remove(root, lookup, EINA_RBTREE_CMP_NODE_CB( eina_rbtree_int_cmp), NULL); _eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp)); } END_TEST void eina_test_rbtree(TCase *tc) { tcase_add_test(tc, eina_rbtree_insertion); tcase_add_test(tc, eina_rbtree_lookup); tcase_add_test(tc, eina_rbtree_remove); tcase_add_test(tc, eina_rbtree_simple_remove); tcase_add_test(tc, eina_rbtree_simple_remove2); tcase_add_test(tc, eina_rbtree_simple_remove3); } eina-1.7.10/src/tests/eina_test_quadtree.c0000664000175000017500000001166412175475327015426 00000000000000/* EINA - EFL data type library * Copyright (C) 2010 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "eina_suite.h" #include "Eina.h" static Eina_Quad_Direction _eina_quadtree_rectangle_vert(const void *object, size_t middle) { const Eina_Rectangle *r = object; if (r->y + r->h < (int)middle) return EINA_QUAD_LEFT; if (r->y > (int)middle) return EINA_QUAD_RIGHT; return EINA_QUAD_BOTH; } static Eina_Quad_Direction _eina_quadtree_rectangle_hort(const void *object, size_t middle) { const Eina_Rectangle *r = object; if (r->x + r->w < (int)middle) return EINA_QUAD_LEFT; if (r->x > (int)middle) return EINA_QUAD_RIGHT; return EINA_QUAD_BOTH; } START_TEST(eina_quadtree_collision) { struct { Eina_Rectangle r; Eina_QuadTree_Item *item; } objects[] = { { { 10, 10, 30, 30 }, NULL }, { { 20, 20, 30, 30 }, NULL }, { { 5, 30, 30, 30 }, NULL }, { { 70, 130, 100, 100 }, NULL }, { { 10, 220, 50, 40 }, NULL }, { { 310, 20, 50, 30 }, NULL }, { { 300, 220, 40, 40 }, NULL }, { { 500, 150, 40, 40 }, NULL }, { { 500, 220, 40, 40 }, NULL }, { { 330, 250, 40, 40 }, NULL }, { { 300, 400, 40, 40 }, NULL }, { { 10, 400, 40, 40 }, NULL }, { { 0, 0, 0, 0 }, NULL } }; struct { Eina_Rectangle r; int count; int result[20]; } tests [] = { { { 600, 400, 40, 40 }, 4, { 4, 6, 8, 10 } }, { { 20, 30, 10, 10 }, 7, { 0, 1, 2, 4, 5, 6, 8 } }, { { 0, 0, 0, 0 }, -1, {} }, }; int hidden[] = { 4, 5, 6, 8, 10 }; int show[] = { 0, 1, 2 }; Eina_QuadTree *q; Eina_Inlist *head; Eina_Rectangle *r; int count; int i; fail_if(!eina_init()); q = eina_quadtree_new(640, 480, _eina_quadtree_rectangle_vert, _eina_quadtree_rectangle_hort); fail_if(!q); for (i = 0; objects[i].r.w != 0 && objects[i].r.h != 0; ++i) { objects[i].item = eina_quadtree_add(q, &objects[i].r); fail_if(!objects[i].item); fail_if(!eina_quadtree_show(objects[i].item)); } eina_quadtree_resize(q, 640, 480); for (i = 0; tests[i].count != -1; ++i) { head = eina_quadtree_collide(q, tests[i].r.x, tests[i].r.y, tests[i].r.w, tests[i].r.h); count = 0; while (head) { int k; r = eina_quadtree_object(head); for (k = 0; k < tests[i].count; ++k) { if (&objects[tests[i].result[k]].r == r) break; } fail_if(k == tests[i].count); head = head->next; count++; } fail_if(count != tests[i].count); } for (i = 0; i < (int)(sizeof (hidden) / sizeof (int)); ++i) eina_quadtree_hide(objects[hidden[i]].item); for (i = 0; i < (int)(sizeof (show) / sizeof (int)); ++i) eina_quadtree_show(objects[show[i]].item); head = eina_quadtree_collide(q, tests[1].r.x, tests[1].r.y, tests[1].r.w, tests[1].r.h); count = 0; while (head) { r = eina_quadtree_object(head); fail_if(r != &objects[tests[1].result[show[count]]].r); head = head->next; count++; } fail_if(count != 3); eina_quadtree_cycle(q); eina_quadtree_show(objects[4].item); eina_quadtree_increase(objects[4].item); eina_quadtree_show(objects[5].item); eina_quadtree_increase(objects[5].item); eina_quadtree_del(objects[5].item); eina_quadtree_change(objects[10].item); eina_quadtree_increase(objects[10].item); eina_quadtree_resize(q, 641, 480); head = eina_quadtree_collide(q, tests[0].r.x, tests[0].r.y, tests[0].r.w, tests[0].r.h); count = 0; while (head) { r = eina_quadtree_object(head); head = head->next; count++; } fail_if(count != 1); eina_quadtree_free(q); eina_shutdown(); } END_TEST void eina_test_quadtree(TCase *tc) { tcase_add_test(tc, eina_quadtree_collision); } eina-1.7.10/src/tests/eina_test_rectangle.c0000664000175000017500000000557612175475327015565 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Cedric BAIL, Carsten Haitzler * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_suite.h" #include "Eina.h" START_TEST(eina_rectangle_pool) { Eina_Rectangle_Pool *pool; Eina_Rectangle *rects[8][8]; int x; int y; int w; int h; fail_if(!eina_init()); pool = eina_rectangle_pool_new(256, 256); fail_if(pool == NULL); eina_rectangle_pool_data_set(pool, rects); fail_if(eina_rectangle_pool_data_get(pool) != rects); fail_if(eina_rectangle_pool_request(pool, 1024, 1024) != NULL); for (x = 0; x < 8; x++) for (y = 0; y < 8; y++) { rects[x][y] = eina_rectangle_pool_request(pool, 32, 32); fail_if(rects[x][y] == NULL); } fail_if(eina_rectangle_pool_count(pool) != 64); fail_if(eina_rectangle_pool_get(rects[0][0]) != pool); fail_if(eina_rectangle_pool_geometry_get(pool, &w, &h) != EINA_TRUE); fail_if(w != 256 || h != 256); fail_if(eina_rectangle_pool_request(pool, 32, 32) != NULL); fail_if(eina_rectangle_pool_request(pool, 1024, 1024) != NULL); for (x = 0; x < 8; x++) eina_rectangle_pool_release(rects[0][x]); fail_if(eina_rectangle_pool_request(pool, 16, 16) == NULL); eina_rectangle_pool_free(pool); eina_shutdown(); } END_TEST START_TEST(eina_rectangle_intersect) { Eina_Rectangle r1, r2, r3, r4, rd; fail_if(!eina_init()); EINA_RECTANGLE_SET(&r1, 10, 10, 50, 50); EINA_RECTANGLE_SET(&r2, 20, 20, 20, 20); EINA_RECTANGLE_SET(&r3, 0, 0, 10, 10); EINA_RECTANGLE_SET(&r4, 30, 30, 50, 50); rd = r1; fail_if(eina_rectangle_intersection(&rd, &r3)); fail_if(!eina_rectangle_intersection(&rd, &r2)); fail_if(rd.x != r2.x || rd.y != r2.y || rd.w != r2.w || rd.h != r2.h); rd = r1; fail_if(!eina_rectangle_intersection(&rd, &r4)); fail_if(rd.x != 30 || rd.y != 30 || rd.w != 30 || rd.h != 30); eina_shutdown(); } END_TEST void eina_test_rectangle(TCase *tc) { tcase_add_test(tc, eina_rectangle_pool); tcase_add_test(tc, eina_rectangle_intersect); } eina-1.7.10/src/tests/Makefile.am0000664000175000017500000000615412234725724013442 00000000000000MAINTAINERCLEANFILES = Makefile.in benchdir = $(bindir) AM_CPPFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_builddir)/src/lib \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -DPACKAGE_BUILD_DIR=\"`pwd`/$(top_builddir)\" \ @CHECK_CFLAGS@ \ @EINA_CFLAGS@ \ @GLIB_CFLAGS@ if EINA_HAVE_GLIB AM_CPPFLAGS += -DEINA_BENCH_HAVE_GLIB endif if EINA_ENABLE_BENCHMARK_E17 AM_CPPFLAGS += -DEINA_ENABLE_BENCH_E17 endif if EFL_ENABLE_TESTS check_PROGRAMS = eina_suite cxx_compile_test eina_suite_SOURCES = \ eina_suite.c \ eina_test_fp.c \ eina_test_stringshare.c \ eina_test_ustringshare.c\ eina_test_ustr.c \ eina_test_binshare.c \ eina_test_binbuf.c \ eina_test_inarray.c \ eina_test_array.c \ eina_test_clist.c \ eina_test_error.c \ eina_test_sched.c \ eina_test_log.c \ eina_test_magic.c \ eina_test_inlist.c \ eina_test_main.c \ eina_test_counter.c \ eina_test_lalloc.c \ eina_test_hash.c \ eina_test_iterator.c \ eina_test_accessor.c \ eina_test_module.c \ eina_test_convert.c \ eina_test_rbtree.c \ eina_test_file.c \ eina_test_benchmark.c \ eina_test_mempool.c \ eina_test_rectangle.c \ eina_test_list.c \ eina_test_matrixsparse.c \ eina_test_tiler.c \ eina_test_strbuf.c \ eina_test_str.c \ eina_test_quadtree.c \ eina_test_simple_xml_parser.c \ eina_test_value.c # eina_test_model.c eina_suite_LDADD = @CHECK_LIBS@ $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ @EFL_PTHREAD_LIBS@ -lm cxx_compile_test_SOURCES = cxx_compile_test.cxx cxx_compile_test_LDADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ module_dummydir = $(libdir)/eina/test module_dummy_LTLIBRARIES = module_dummy.la module_dummy_la_SOURCES = \ eina_test_module_dummy.c module_dummy_la_CPPFLAGS = \ -I$(top_srcdir)/src/lib \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_builddir)/src/lib \ @EFL_EINA_BUILD@ module_dummy_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ -lm module_dummy_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_dummy_la_LIBTOOLFLAGS = --tag=disable-static endif if EFL_ENABLE_BENCHMARK bench_PROGRAMS = eina_bench eina_bench_SOURCES = \ eina_bench.c \ eina_bench_sort.c \ eina_bench_hash.c \ eina_bench_stringshare.c \ eina_bench_convert.c \ eina_bench_mempool.c \ eina_bench_stringshare_e17.c \ eina_bench_array.c \ eina_bench_rectangle_pool.c \ ecore_list.c \ ecore_strings.c \ ecore_hash.c \ ecore_sheap.c \ evas_hash.c \ evas_list.c \ evas_mempool.c \ evas_object_list.c \ evas_stringshare.c \ eina_bench_quad.c \ eina_bench.h \ eina_suite.h \ Ecore_Data.h \ Evas_Data.h \ evas_mempool.h if CITYHASH_BENCH noinst_LTLIBRARIES = libcity.la libcity_la_SOURCES = city.cc city.h nodist_EXTRA_eina_bench_SOURCES = dummy.cc eina_bench_LDADD = @GLIB_LIBS@ $(top_builddir)/src/lib/libeina.la libcity.la @EINA_LIBS@ else eina_bench_LDADD = @GLIB_LIBS@ $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ endif endif EXTRA_DIST = strlog clean-local: rm -rf *.gcno ..\#..\#src\#*.gcov *.gcda eina-1.7.10/src/tests/eina_bench_convert.c0000664000175000017500000001023012175475327015360 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #ifdef EINA_BENCH_HAVE_GLIB # include #endif #include "eina_bench.h" #include "eina_convert.h" static void eina_bench_convert_itoa_10(int request) { char tmp[128]; int i; srand(time(NULL)); for (i = 0; i < request; ++i) { eina_convert_itoa(rand(), tmp); } } static void eina_bench_convert_itoa_16(int request) { char tmp[128]; int i; srand(time(NULL)); for (i = 0; i < request; ++i) { eina_convert_xtoa(rand(), tmp); } } static void eina_bench_convert_snprintf_10(int request) { char tmp[128]; int i; srand(time(NULL)); for (i = 0; i < request; ++i) { snprintf(tmp, 128, "%i", rand()); } } static void eina_bench_convert_snprintf_x(int request) { char tmp[128]; int i; srand(time(NULL)); for (i = 0; i < request; ++i) { snprintf(tmp, 128, "%x", rand()); } } static void eina_bench_convert_snprintf_a(int request) { char tmp[128]; double r; int i; srand(time(NULL)); for (i = 0; i < request; ++i) { r = 10000 * (rand() / ((double)RAND_MAX + 1)); snprintf(tmp, 128, "%a", r); sscanf(tmp, "%la", &r); } } static void eina_bench_convert_dtoa(int request) { char tmp[128]; long long m; long e; double r; int i; srand(time(NULL)); for (i = 0; i < request; ++i) { r = 10000 * (rand() / ((double)RAND_MAX + 1)); eina_convert_dtoa(r, tmp); eina_convert_atod(tmp, 128, &m, &e); r = ldexp((double)m, e); } } #ifdef EINA_BENCH_HAVE_GLIB static void eina_bench_convert_gstrtod(int request) { char tmp[128]; double r; int i; srand(time(NULL)); for (i = 0; i < request; ++i) { r = 10000 * (rand() / ((double)RAND_MAX + 1)); g_ascii_dtostr(tmp, 128, r); r = g_ascii_strtod(tmp, NULL); } } #endif void eina_bench_convert(Eina_Benchmark *bench) { eina_benchmark_register(bench, "itoa 10", EINA_BENCHMARK( eina_bench_convert_itoa_10), 1000, 200000, 500); eina_benchmark_register(bench, "itoa 16", EINA_BENCHMARK( eina_bench_convert_itoa_16), 1000, 200000, 500); eina_benchmark_register(bench, "snprintf 10", EINA_BENCHMARK( eina_bench_convert_snprintf_10), 1000, 200000, 500); eina_benchmark_register(bench, "snprintf 16", EINA_BENCHMARK( eina_bench_convert_snprintf_x), 1000, 200000, 500); eina_benchmark_register(bench, "snprintf a", EINA_BENCHMARK( eina_bench_convert_snprintf_a), 1000, 200000, 500); eina_benchmark_register(bench, "dtoa", EINA_BENCHMARK( eina_bench_convert_dtoa), 1000, 200000, 500); #ifdef EINA_BENCH_HAVE_GLIB eina_benchmark_register(bench, "gstrtod", EINA_BENCHMARK( eina_bench_convert_gstrtod), 1000, 200000, 500); #endif } eina-1.7.10/src/tests/evas_stringshare.c0000664000175000017500000002365012175475327015126 00000000000000#ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include "Evas_Data.h" typedef struct _Evas_Stringshare Evas_Stringshare; typedef struct _Evas_Stringshare_El Evas_Stringshare_El; struct _Evas_Stringshare { Evas_Stringshare_El *buckets[1024]; }; struct _Evas_Stringshare_El { Evas_Stringshare_El *next; // int op; int references; }; static Evas_Stringshare share = { { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } }; //static int op = 0; //static FILE *f = NULL; static inline int _evas_stringshare_hash_gen(const char *str, int *len) { unsigned int hash_num = 5381; const unsigned char *ptr; for (ptr = (const unsigned char *)str; *ptr; ptr++) { hash_num = (hash_num * 33) ^ *ptr; } hash_num &= 0x3ff; *len = ptr - (const unsigned char *)str; return (int)hash_num; } EAPI const char * evas_stringshare_add(const char *str) { int hash_num, slen; char *el_str; Evas_Stringshare_El *el, *pel = NULL; if (!str) { return NULL; // if (!f) } // { // char bf[256]; // snprintf(bf, sizeof(bf), "strlog-%i", getpid()); // f = fopen(bf, "w"); // } hash_num = _evas_stringshare_hash_gen(str, &slen); for (el = share.buckets[hash_num]; el; pel = el, el = el->next) { el_str = ((char *)el) + sizeof(Evas_Stringshare_El); if (!strcmp(el_str, str)) { if (pel) { pel->next = el->next; el->next = share.buckets[hash_num]; share.buckets[hash_num] = el; } el->references++; // fprintf(f, "strings[%i] = str->add(strings[%i]);\n", el->op, el->op); // fflush(f); return el_str; } } if (!(el = malloc(sizeof(Evas_Stringshare_El) + slen + 1))) return NULL; el_str = ((char *)el) + sizeof(Evas_Stringshare_El); strcpy(el_str, str); el->references = 1; el->next = share.buckets[hash_num]; share.buckets[hash_num] = el; // el->op = op; // fprintf(f, "strings[%i] = str->add(\"%s\");\n", el->op, el_str); // fflush(f); // op++; return el_str; } EAPI void evas_stringshare_del(const char *str) { int hash_num, slen; char *el_str; Evas_Stringshare_El *el, *pel = NULL; if (!str) return; hash_num = _evas_stringshare_hash_gen(str, &slen); for (el = share.buckets[hash_num]; el; pel = el, el = el->next) { el_str = ((char *)el) + sizeof(Evas_Stringshare_El); if (el_str == str) { el->references--; // fprintf(f, "str->del(strings[%i]);\n", el->op); // fflush(f); if (el->references == 0) { if (pel) pel->next = el->next; else share.buckets[hash_num] = el->next; free(el); } else if (pel) { pel->next = el->next; el->next = share.buckets[hash_num]; share.buckets[hash_num] = el; } return; } } printf("EEEK trying to del non-shared stringshare \"%s\"\n", str); abort(); } eina-1.7.10/src/tests/eina_bench_mempool.c0000664000175000017500000001116112175475327015354 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef EINA_BENCH_HAVE_GLIB # include #endif #include "eina_bench.h" #include "Eina.h" static void _eina_mempool_bench(Eina_Mempool *mp, int request) { Eina_Array *array; int i; int j; eina_init(); array = eina_array_new(32); for (i = 0; i < 100; ++i) { for (j = 0; j < request; ++j) { eina_array_push(array, eina_mempool_malloc(mp, sizeof (int))); } for (j = 0; j < request; ++j) { eina_mempool_free(mp, eina_array_pop(array)); } } eina_array_free(array); eina_shutdown(); } #ifdef EINA_BUILD_CHAINED_POOL static void eina_mempool_chained_mempool(int request) { Eina_Mempool *mp; mp = eina_mempool_add("chained_mempool", "test", NULL, sizeof (int), 256); _eina_mempool_bench(mp, request); eina_mempool_del(mp); } #endif #ifdef EINA_BUILD_PASS_THROUGH static void eina_mempool_pass_through(int request) { Eina_Mempool *mp; mp = eina_mempool_add("pass_through", "test", NULL, sizeof (int), 8, 0); _eina_mempool_bench(mp, request); eina_mempool_del(mp); } #endif #ifdef EINA_BUILD_FIXED_BITMAP static void eina_mempool_fixed_bitmap(int request) { Eina_Mempool *mp; mp = eina_mempool_add("fixed_bitmap", "test", NULL, sizeof (int)); _eina_mempool_bench(mp, request); eina_mempool_del(mp); } #endif #ifdef EINA_BUILD_EMEMOA_FIXED static void eina_mempool_ememoa_fixed(int request) { Eina_Mempool *mp; mp = eina_mempool_add("ememoa_fixed", "test", NULL, sizeof (int), 8, 0); _eina_mempool_bench(mp, request); eina_mempool_del(mp); } #endif #ifdef EINA_BUILD_EMEMOA_UNKNOWN static void eina_mempool_ememoa_unknown(int request) { Eina_Mempool *mp; mp = eina_mempool_add("ememoa_unknown", "test", NULL, 0, 2, sizeof (int), 8, sizeof (int) * 2, 8); _eina_mempool_bench(mp, request); eina_mempool_del(mp); } #endif #ifdef EINA_BENCH_HAVE_GLIB static void eina_mempool_glib(int request) { Eina_Array *array; int i; int j; eina_init(); array = eina_array_new(32); for (i = 0; i < 100; ++i) { for (j = 0; j < request; ++j) { eina_array_push(array, g_slice_alloc(sizeof (int))); } for (j = 0; j < request; ++j) { g_slice_free1(sizeof (int), eina_array_pop(array)); } } eina_array_free(array); eina_shutdown(); } #endif void eina_bench_mempool(Eina_Benchmark *bench) { #ifdef EINA_BUILD_CHAINED_POOL eina_benchmark_register(bench, "chained mempool", EINA_BENCHMARK( eina_mempool_chained_mempool), 10, 10000, 10); #endif #ifdef EINA_BUILD_PASS_THROUGH eina_benchmark_register(bench, "pass through", EINA_BENCHMARK( eina_mempool_pass_through), 10, 10000, 10); #endif #ifdef EINA_BUILD_FIXED_BITMAP eina_benchmark_register(bench, "fixed bitmap", EINA_BENCHMARK( eina_mempool_fixed_bitmap), 10, 10000, 10); #endif #ifdef EINA_BUILD_EMEMOA_FIXED eina_benchmark_register(bench, "ememoa fixed", EINA_BENCHMARK( eina_mempool_ememoa_fixed), 10, 10000, 10); #endif #ifdef EINA_BUILD_EMEMOA_UNKNOWN eina_benchmark_register(bench, "ememoa unknown", EINA_BENCHMARK( eina_mempool_ememoa_unknown), 10, 10000, 10); #endif #ifdef EINA_BENCH_HAVE_GLIB eina_benchmark_register(bench, "gslice", EINA_BENCHMARK( eina_mempool_glib), 10, 10000, 10); #endif } eina-1.7.10/src/tests/city.h0000664000175000017500000000724212175475327012533 00000000000000// Copyright (c) 2011 Google, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // // CityHash Version 1, by Geoff Pike and Jyrki Alakuijala // // This file provides a few functions for hashing strings. On x86-64 // hardware in 2011, CityHash64() is faster than other high-quality // hash functions, such as Murmur. This is largely due to higher // instruction-level parallelism. CityHash64() and CityHash128() also perform // well on hash-quality tests. // // CityHash128() is optimized for relatively long strings and returns // a 128-bit hash. For strings more than about 2000 bytes it can be // faster than CityHash64(). // // Functions in the CityHash family are not suitable for cryptography. // // WARNING: This code has not been tested on big-endian platforms! // It is known to work well on little-endian platforms that have a small penalty // for unaligned reads, such as current Intel and AMD moderate-to-high-end CPUs. // // By the way, for some hash functions, given strings a and b, the hash // of a+b is easily derived from the hashes of a and b. This property // doesn't hold for any hash functions in this file. #ifndef CITY_HASH_H_ #define CITY_HASH_H_ #include // for size_t. #include #include typedef uint8_t uint8; typedef uint32_t uint32; typedef uint64_t uint64; typedef std::pair uint128; #ifdef __cplusplus extern "C" { #endif inline uint64 Uint128Low64(const uint128& x) { return x.first; } inline uint64 Uint128High64(const uint128& x) { return x.second; } // Hash function for a byte array. uint64 CityHash64(const char *buf, size_t len); // Hash function for a byte array. For convenience, a 64-bit seed is also // hashed into the result. uint64 CityHash64WithSeed(const char *buf, size_t len, uint64 seed); // Hash function for a byte array. For convenience, two seeds are also // hashed into the result. uint64 CityHash64WithSeeds(const char *buf, size_t len, uint64 seed0, uint64 seed1); // Hash function for a byte array. uint128 CityHash128(const char *s, size_t len); // Hash function for a byte array. For convenience, a 128-bit seed is also // hashed into the result. uint128 CityHash128WithSeed(const char *s, size_t len, uint128 seed); // Hash 128 input bits down to 64 bits of output. // This is intended to be a reasonably good hash function. inline uint64 Hash128to64(const uint128& x) { // Murmur-inspired hashing. const uint64 kMul = 0x9ddfea08eb382d69ULL; uint64 a = (Uint128Low64(x) ^ Uint128High64(x)) * kMul; a ^= (a >> 47); uint64 b = (Uint128High64(x) ^ a) * kMul; b ^= (b >> 47); b *= kMul; return b; } #ifdef __cplusplus } #endif #endif // CITY_HASH_H_ eina-1.7.10/src/lib/0000775000175000017500000000000012247700050011051 500000000000000eina-1.7.10/src/lib/Makefile.in0000664000175000017500000012742712247700043013055 00000000000000# Makefile.in generated by automake 1.13.4 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@ # Will be back for developper after 1.2 # eina_model.c \ # eina_object.c @EINA_HAVE_WIN32_TRUE@am__append_1 = eina_file_win32.c @EINA_HAVE_WIN32_FALSE@am__append_2 = eina_file.c @EINA_STATIC_BUILD_BUDDY_TRUE@am__append_3 = $(top_srcdir)/src/modules/mp/buddy/eina_buddy.c @EINA_STATIC_BUILD_CHAINED_POOL_TRUE@am__append_4 = $(top_srcdir)/src/modules/mp/chained_pool/eina_chained_mempool.c @EINA_STATIC_BUILD_EMEMOA_FIXED_TRUE@am__append_5 = $(top_srcdir)/src/modules/mp/ememoa_fixed/eina_ememoa_fixed.c @EINA_STATIC_BUILD_EMEMOA_UNKNOWN_TRUE@am__append_6 = $(top_srcdir)/src/modules/mp/ememoa_unknown/eina_ememoa_unknown.c @EINA_STATIC_BUILD_FIXED_BITMAP_TRUE@am__append_7 = $(top_srcdir)/src/modules/mp/fixed_bitmap/eina_fixed_bitmap.c @EINA_STATIC_BUILD_ONE_BIG_TRUE@am__append_8 = $(top_srcdir)/src/modules/mp/one_big/eina_one_big.c @EINA_STATIC_BUILD_PASS_THROUGH_TRUE@am__append_9 = $(top_srcdir)/src/modules/mp/pass_through/eina_pass_through.c subdir = src/lib DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = 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)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) libeina_la_DEPENDENCIES = am__libeina_la_SOURCES_DIST = eina_accessor.c eina_array.c \ eina_benchmark.c eina_binbuf.c eina_binshare.c eina_convert.c \ eina_counter.c eina_cpu.c eina_error.c eina_fp.c \ eina_hamster.c eina_hash.c eina_inarray.c eina_inlist.c \ eina_iterator.c eina_lalloc.c eina_list.c eina_log.c \ eina_magic.c eina_main.c eina_matrixsparse.c eina_mempool.c \ eina_mmap.c eina_module.c eina_prefix.c eina_quadtree.c \ eina_rbtree.c eina_rectangle.c eina_safety_checks.c \ eina_sched.c eina_share_common.c eina_simple_xml_parser.c \ eina_str.c eina_strbuf.c eina_strbuf_common.c \ eina_stringshare.c eina_tiler.c eina_unicode.c eina_ustrbuf.c \ eina_ustringshare.c eina_value.c eina_xattr.c \ eina_file_win32.c eina_file.c \ $(top_srcdir)/src/modules/mp/buddy/eina_buddy.c \ $(top_srcdir)/src/modules/mp/chained_pool/eina_chained_mempool.c \ $(top_srcdir)/src/modules/mp/ememoa_fixed/eina_ememoa_fixed.c \ $(top_srcdir)/src/modules/mp/ememoa_unknown/eina_ememoa_unknown.c \ $(top_srcdir)/src/modules/mp/fixed_bitmap/eina_fixed_bitmap.c \ $(top_srcdir)/src/modules/mp/one_big/eina_one_big.c \ $(top_srcdir)/src/modules/mp/pass_through/eina_pass_through.c @EINA_HAVE_WIN32_TRUE@am__objects_1 = eina_file_win32.lo @EINA_HAVE_WIN32_FALSE@am__objects_2 = eina_file.lo @EINA_STATIC_BUILD_BUDDY_TRUE@am__objects_3 = eina_buddy.lo @EINA_STATIC_BUILD_CHAINED_POOL_TRUE@am__objects_4 = \ @EINA_STATIC_BUILD_CHAINED_POOL_TRUE@ eina_chained_mempool.lo @EINA_STATIC_BUILD_EMEMOA_FIXED_TRUE@am__objects_5 = \ @EINA_STATIC_BUILD_EMEMOA_FIXED_TRUE@ eina_ememoa_fixed.lo @EINA_STATIC_BUILD_EMEMOA_UNKNOWN_TRUE@am__objects_6 = \ @EINA_STATIC_BUILD_EMEMOA_UNKNOWN_TRUE@ eina_ememoa_unknown.lo @EINA_STATIC_BUILD_FIXED_BITMAP_TRUE@am__objects_7 = \ @EINA_STATIC_BUILD_FIXED_BITMAP_TRUE@ eina_fixed_bitmap.lo @EINA_STATIC_BUILD_ONE_BIG_TRUE@am__objects_8 = eina_one_big.lo @EINA_STATIC_BUILD_PASS_THROUGH_TRUE@am__objects_9 = \ @EINA_STATIC_BUILD_PASS_THROUGH_TRUE@ eina_pass_through.lo am__objects_10 = eina_accessor.lo eina_array.lo eina_benchmark.lo \ eina_binbuf.lo eina_binshare.lo eina_convert.lo \ eina_counter.lo eina_cpu.lo eina_error.lo eina_fp.lo \ eina_hamster.lo eina_hash.lo eina_inarray.lo eina_inlist.lo \ eina_iterator.lo eina_lalloc.lo eina_list.lo eina_log.lo \ eina_magic.lo eina_main.lo eina_matrixsparse.lo \ eina_mempool.lo eina_mmap.lo eina_module.lo eina_prefix.lo \ eina_quadtree.lo eina_rbtree.lo eina_rectangle.lo \ eina_safety_checks.lo eina_sched.lo eina_share_common.lo \ eina_simple_xml_parser.lo eina_str.lo eina_strbuf.lo \ eina_strbuf_common.lo eina_stringshare.lo eina_tiler.lo \ eina_unicode.lo eina_ustrbuf.lo eina_ustringshare.lo \ eina_value.lo eina_xattr.lo $(am__objects_1) $(am__objects_2) \ $(am__objects_3) $(am__objects_4) $(am__objects_5) \ $(am__objects_6) $(am__objects_7) $(am__objects_8) \ $(am__objects_9) @EINA_AMALGAMATION_FALSE@am_libeina_la_OBJECTS = $(am__objects_10) @EINA_AMALGAMATION_TRUE@nodist_libeina_la_OBJECTS = \ @EINA_AMALGAMATION_TRUE@ eina_amalgamation.lo libeina_la_OBJECTS = $(am_libeina_la_OBJECTS) \ $(nodist_libeina_la_OBJECTS) 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 = libeina_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libeina_la_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 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(libeina_la_SOURCES) $(nodist_libeina_la_SOURCES) DIST_SOURCES = $(am__libeina_la_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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ @EFL_EINA_BUILD@ \ @EFL_PTHREAD_CFLAGS@ \ @EINA_CFLAGS@ \ @VALGRIND_CFLAGS@ base_sources = eina_accessor.c eina_array.c eina_benchmark.c \ eina_binbuf.c eina_binshare.c eina_convert.c eina_counter.c \ eina_cpu.c eina_error.c eina_fp.c eina_hamster.c eina_hash.c \ eina_inarray.c eina_inlist.c eina_iterator.c eina_lalloc.c \ eina_list.c eina_log.c eina_magic.c eina_main.c \ eina_matrixsparse.c eina_mempool.c eina_mmap.c eina_module.c \ eina_prefix.c eina_quadtree.c eina_rbtree.c eina_rectangle.c \ eina_safety_checks.c eina_sched.c eina_share_common.c \ eina_simple_xml_parser.c eina_str.c eina_strbuf.c \ eina_strbuf_common.c eina_stringshare.c eina_tiler.c \ eina_unicode.c eina_ustrbuf.c eina_ustringshare.c eina_value.c \ eina_xattr.c $(am__append_1) $(am__append_2) $(am__append_3) \ $(am__append_4) $(am__append_5) $(am__append_6) \ $(am__append_7) $(am__append_8) $(am__append_9) EXTRA_DIST = \ eina_share_common.h \ eina_private.h \ eina_strbuf_common.h \ eina_strbuf_template_c.x \ eina_binbuf_template_c.x lib_LTLIBRARIES = libeina.la @EINA_AMALGAMATION_TRUE@nodist_libeina_la_SOURCES = eina_amalgamation.c @EINA_AMALGAMATION_FALSE@libeina_la_SOURCES = $(base_sources) libeina_la_LIBADD = @EINA_LIBS@ -lm libeina_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ @EFL_PTHREAD_LIBS@ all: all-am .SUFFIXES: .SUFFIXES: .c .lo .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) --gnu src/lib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/lib/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-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libeina.la: $(libeina_la_OBJECTS) $(libeina_la_DEPENDENCIES) $(EXTRA_libeina_la_DEPENDENCIES) $(AM_V_CCLD)$(libeina_la_LINK) -rpath $(libdir) $(libeina_la_OBJECTS) $(libeina_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_accessor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_amalgamation.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_array.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_benchmark.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_binbuf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_binshare.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_buddy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_chained_mempool.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_convert.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_counter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_cpu.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_ememoa_fixed.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_ememoa_unknown.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_error.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_file.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_file_win32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_fixed_bitmap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_fp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hamster.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_inarray.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_inlist.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_iterator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_lalloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_list.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_log.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_magic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_main.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_matrixsparse.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_mempool.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_mmap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_module.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_one_big.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_pass_through.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_prefix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_quadtree.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_rbtree.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_rectangle.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_safety_checks.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_sched.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_share_common.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_simple_xml_parser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_str.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_strbuf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_strbuf_common.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_stringshare.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_tiler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_unicode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_ustrbuf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_ustringshare.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_value.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_xattr.Plo@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 $< .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 `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< eina_buddy.lo: $(top_srcdir)/src/modules/mp/buddy/eina_buddy.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT eina_buddy.lo -MD -MP -MF $(DEPDIR)/eina_buddy.Tpo -c -o eina_buddy.lo `test -f '$(top_srcdir)/src/modules/mp/buddy/eina_buddy.c' || echo '$(srcdir)/'`$(top_srcdir)/src/modules/mp/buddy/eina_buddy.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eina_buddy.Tpo $(DEPDIR)/eina_buddy.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(top_srcdir)/src/modules/mp/buddy/eina_buddy.c' object='eina_buddy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o eina_buddy.lo `test -f '$(top_srcdir)/src/modules/mp/buddy/eina_buddy.c' || echo '$(srcdir)/'`$(top_srcdir)/src/modules/mp/buddy/eina_buddy.c eina_chained_mempool.lo: $(top_srcdir)/src/modules/mp/chained_pool/eina_chained_mempool.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT eina_chained_mempool.lo -MD -MP -MF $(DEPDIR)/eina_chained_mempool.Tpo -c -o eina_chained_mempool.lo `test -f '$(top_srcdir)/src/modules/mp/chained_pool/eina_chained_mempool.c' || echo '$(srcdir)/'`$(top_srcdir)/src/modules/mp/chained_pool/eina_chained_mempool.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eina_chained_mempool.Tpo $(DEPDIR)/eina_chained_mempool.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(top_srcdir)/src/modules/mp/chained_pool/eina_chained_mempool.c' object='eina_chained_mempool.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o eina_chained_mempool.lo `test -f '$(top_srcdir)/src/modules/mp/chained_pool/eina_chained_mempool.c' || echo '$(srcdir)/'`$(top_srcdir)/src/modules/mp/chained_pool/eina_chained_mempool.c eina_ememoa_fixed.lo: $(top_srcdir)/src/modules/mp/ememoa_fixed/eina_ememoa_fixed.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT eina_ememoa_fixed.lo -MD -MP -MF $(DEPDIR)/eina_ememoa_fixed.Tpo -c -o eina_ememoa_fixed.lo `test -f '$(top_srcdir)/src/modules/mp/ememoa_fixed/eina_ememoa_fixed.c' || echo '$(srcdir)/'`$(top_srcdir)/src/modules/mp/ememoa_fixed/eina_ememoa_fixed.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eina_ememoa_fixed.Tpo $(DEPDIR)/eina_ememoa_fixed.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(top_srcdir)/src/modules/mp/ememoa_fixed/eina_ememoa_fixed.c' object='eina_ememoa_fixed.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o eina_ememoa_fixed.lo `test -f '$(top_srcdir)/src/modules/mp/ememoa_fixed/eina_ememoa_fixed.c' || echo '$(srcdir)/'`$(top_srcdir)/src/modules/mp/ememoa_fixed/eina_ememoa_fixed.c eina_ememoa_unknown.lo: $(top_srcdir)/src/modules/mp/ememoa_unknown/eina_ememoa_unknown.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT eina_ememoa_unknown.lo -MD -MP -MF $(DEPDIR)/eina_ememoa_unknown.Tpo -c -o eina_ememoa_unknown.lo `test -f '$(top_srcdir)/src/modules/mp/ememoa_unknown/eina_ememoa_unknown.c' || echo '$(srcdir)/'`$(top_srcdir)/src/modules/mp/ememoa_unknown/eina_ememoa_unknown.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eina_ememoa_unknown.Tpo $(DEPDIR)/eina_ememoa_unknown.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(top_srcdir)/src/modules/mp/ememoa_unknown/eina_ememoa_unknown.c' object='eina_ememoa_unknown.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o eina_ememoa_unknown.lo `test -f '$(top_srcdir)/src/modules/mp/ememoa_unknown/eina_ememoa_unknown.c' || echo '$(srcdir)/'`$(top_srcdir)/src/modules/mp/ememoa_unknown/eina_ememoa_unknown.c eina_fixed_bitmap.lo: $(top_srcdir)/src/modules/mp/fixed_bitmap/eina_fixed_bitmap.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT eina_fixed_bitmap.lo -MD -MP -MF $(DEPDIR)/eina_fixed_bitmap.Tpo -c -o eina_fixed_bitmap.lo `test -f '$(top_srcdir)/src/modules/mp/fixed_bitmap/eina_fixed_bitmap.c' || echo '$(srcdir)/'`$(top_srcdir)/src/modules/mp/fixed_bitmap/eina_fixed_bitmap.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eina_fixed_bitmap.Tpo $(DEPDIR)/eina_fixed_bitmap.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(top_srcdir)/src/modules/mp/fixed_bitmap/eina_fixed_bitmap.c' object='eina_fixed_bitmap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o eina_fixed_bitmap.lo `test -f '$(top_srcdir)/src/modules/mp/fixed_bitmap/eina_fixed_bitmap.c' || echo '$(srcdir)/'`$(top_srcdir)/src/modules/mp/fixed_bitmap/eina_fixed_bitmap.c eina_one_big.lo: $(top_srcdir)/src/modules/mp/one_big/eina_one_big.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT eina_one_big.lo -MD -MP -MF $(DEPDIR)/eina_one_big.Tpo -c -o eina_one_big.lo `test -f '$(top_srcdir)/src/modules/mp/one_big/eina_one_big.c' || echo '$(srcdir)/'`$(top_srcdir)/src/modules/mp/one_big/eina_one_big.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eina_one_big.Tpo $(DEPDIR)/eina_one_big.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(top_srcdir)/src/modules/mp/one_big/eina_one_big.c' object='eina_one_big.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o eina_one_big.lo `test -f '$(top_srcdir)/src/modules/mp/one_big/eina_one_big.c' || echo '$(srcdir)/'`$(top_srcdir)/src/modules/mp/one_big/eina_one_big.c eina_pass_through.lo: $(top_srcdir)/src/modules/mp/pass_through/eina_pass_through.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT eina_pass_through.lo -MD -MP -MF $(DEPDIR)/eina_pass_through.Tpo -c -o eina_pass_through.lo `test -f '$(top_srcdir)/src/modules/mp/pass_through/eina_pass_through.c' || echo '$(srcdir)/'`$(top_srcdir)/src/modules/mp/pass_through/eina_pass_through.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eina_pass_through.Tpo $(DEPDIR)/eina_pass_through.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(top_srcdir)/src/modules/mp/pass_through/eina_pass_through.c' object='eina_pass_through.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o eina_pass_through.lo `test -f '$(top_srcdir)/src/modules/mp/pass_through/eina_pass_through.c' || echo '$(srcdir)/'`$(top_srcdir)/src/modules/mp/pass_through/eina_pass_through.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs 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 $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \ 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-libLTLIBRARIES 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 \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-local cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool 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-libLTLIBRARIES 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 mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES @EINA_AMALGAMATION_TRUE@eina_amalgamation.c: $(base_sources) Makefile @EINA_AMALGAMATION_TRUE@ -rm -f eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_CONFIG_H" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include \"config.h\"" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#endif" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_ALLOCA_H" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "# include " >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#elif defined __GNUC__" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "# define alloca __builtin_alloca" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#elif defined _AIX" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "# define alloca __alloca" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#elif defined _MSC_VER" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "# include " >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "# define alloca _alloca" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#else" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "# include " >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "# ifdef __cplusplus" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#extern \"C\"" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "# endif" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#void *alloca (size_t);" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#endif" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include " >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include " >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include " >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_DLOPEN" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "# include " >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#endif" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include " >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_DIRENT_H" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "# include " >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#endif" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include " >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include " >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include " >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include " >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_EVIL" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "# include " >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#endif" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include \"eina_config.h\"" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include \"eina_private.h\"" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include \"eina_safety_checks.h\"" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include \"Eina.h\"" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include \"eina_strbuf_common.h\"" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @echo "#include \"eina_share_common.h\"" >> eina_amalgamation.c @EINA_AMALGAMATION_TRUE@ @for f in $(base_sources); do \ @EINA_AMALGAMATION_TRUE@ if [ `echo $$f | sed -e 's/^...\(.\).*/\1/'` != '/' ]; then \ @EINA_AMALGAMATION_TRUE@ file="$(srcdir)/$$f" ; \ @EINA_AMALGAMATION_TRUE@ else \ @EINA_AMALGAMATION_TRUE@ file="$$f" ; \ @EINA_AMALGAMATION_TRUE@ fi ; \ @EINA_AMALGAMATION_TRUE@ echo "/* file: $$file */" >> eina_amalgamation.c; \ @EINA_AMALGAMATION_TRUE@ grep -v -e '^# *include \+.\(config\|eina_[a-z_]\+\|Evil\|stdio\|stdlib\|string\|dlfcn\|dirent\|assert\|errno\|fnmatch\)[.]h.*' $$file >> eina_amalgamation.c; \ @EINA_AMALGAMATION_TRUE@ done @EINA_AMALGAMATION_TRUE@ @echo "eina_amalgamation.c generated" clean-local: rm -rf *.gcno eina_amalgamation.c # 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: eina-1.7.10/src/lib/eina_file_win32.c0000664000175000017500000007551512175475327014127 00000000000000/* EINA - EFL data type library * Copyright (C) 2010 Vincent Torri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef HAVE_ALLOCA_H # include #elif defined __GNUC__ # define alloca __builtin_alloca #elif defined _AIX # define alloca __alloca #elif defined _MSC_VER # include # define alloca _alloca #else # include # ifdef __cplusplus extern "C" # endif void *alloca (size_t); #endif #include #include #define WIN32_LEAN_AND_MEAN #include #undef WIN32_LEAN_AND_MEAN #include #include "eina_config.h" #include "eina_private.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_file.h" #include "eina_stringshare.h" #include "eina_hash.h" #include "eina_list.h" #include "eina_lock.h" #include "eina_log.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ #ifndef EINA_LOG_COLOR_DEFAULT #define EINA_LOG_COLOR_DEFAULT EINA_COLOR_CYAN #endif #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_file_log_dom, __VA_ARGS__) #ifdef WRN #undef WRN #endif #define WRN(...) EINA_LOG_DOM_WARN(_eina_file_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_file_log_dom, __VA_ARGS__) #ifdef MAP_FAILED # undef MAP_FAILED #endif #define MAP_FAILED ((void *)-1) typedef struct _Eina_File_Iterator Eina_File_Iterator; typedef struct _Eina_Lines_Iterator Eina_Lines_Iterator; typedef struct _Eina_File_Direct_Iterator Eina_File_Direct_Iterator; typedef struct _Eina_File_Map Eina_File_Map; struct _Eina_File_Iterator { Eina_Iterator iterator; WIN32_FIND_DATA data; HANDLE handle; size_t length; Eina_Bool is_last : 1; char dir[1]; }; struct _Eina_Lines_Iterator { Eina_Iterator iterator; Eina_File *fp; const char *map; const char *end; int boundary; Eina_File_Line current; }; struct _Eina_File_Direct_Iterator { Eina_Iterator iterator; WIN32_FIND_DATA data; HANDLE handle; size_t length; Eina_Bool is_last : 1; Eina_File_Direct_Info info; char dir[1]; }; struct _Eina_File { const char *filename; Eina_Hash *map; Eina_Hash *rmap; void *global_map; Eina_Lock lock; ULONGLONG length; ULONGLONG mtime; int refcount; int global_refcount; HANDLE handle; HANDLE fm; Eina_Bool shared : 1; Eina_Bool delete_me : 1; }; struct _Eina_File_Map { void *map; unsigned long int offset; unsigned long int length; int refcount; }; static Eina_Hash *_eina_file_cache = NULL; static Eina_Lock _eina_file_lock_cache; static int _eina_file_log_dom = -1; static Eina_Bool _eina_file_win32_is_dir(const char *dir) { #ifdef UNICODE wchar_t *wdir = NULL; #endif DWORD attr; /* check if it's a directory */ #ifdef UNICODE wdir = evil_char_to_wchar(dir); if (!wdir) return EINA_FALSE; attr = GetFileAttributes(wdir); free(wdir); #else attr = GetFileAttributes(dir); #endif if (attr == 0xFFFFFFFF) return EINA_FALSE; if (!(attr & FILE_ATTRIBUTE_DIRECTORY)) return EINA_FALSE; return EINA_TRUE; } static char * _eina_file_win32_dir_new(const char *dir) { char *new_dir; size_t length; length = strlen(dir); new_dir = (char *)malloc(sizeof(char) * length + 5); if (!new_dir) return NULL; memcpy(new_dir, dir, length); memcpy(new_dir + length, "\\*.*", 5); return new_dir; } static HANDLE _eina_file_win32_first_file(const char *dir, WIN32_FIND_DATA *fd) { HANDLE h; #ifdef UNICODE wchar_t *wdir = NULL; wdir = evil_char_to_wchar(dir); if (!wdir) return NULL; h = FindFirstFile(wdir, fd); free(wdir); #else h = FindFirstFile(dir, fd); #endif if (!h) return NULL; while ((fd->cFileName[0] == '.') && ((fd->cFileName[1] == '\0') || ((fd->cFileName[1] == '.') && (fd->cFileName[2] == '\0')))) { if (!FindNextFile(h, fd)) return NULL; } return h; } static Eina_Bool _eina_file_win32_ls_iterator_next(Eina_File_Iterator *it, void **data) { #ifdef UNICODE wchar_t *old_name; #else char *old_name; #endif char *name; char *cname; size_t length; Eina_Bool is_last; Eina_Bool res = EINA_TRUE; if (it->handle == INVALID_HANDLE_VALUE) return EINA_FALSE; is_last = it->is_last; #ifdef UNICODE old_name = _wcsdup(it->data.cFileName); #else old_name = _strdup(it->data.cFileName); #endif if (!old_name) return EINA_FALSE; do { if (!FindNextFile(it->handle, &it->data)) { if (GetLastError() == ERROR_NO_MORE_FILES) it->is_last = EINA_TRUE; else res = EINA_FALSE; } } while ((it->data.cFileName[0] == '.') && ((it->data.cFileName[1] == '\0') || ((it->data.cFileName[1] == '.') && (it->data.cFileName[2] == '\0')))); /* FIXME: what about UNICODE ? */ #ifdef UNICODE cname = evil_wchar_to_char(old_name); if (!cname) return EINA_FALSE; #else cname = old_name; #endif length = strlen(cname); name = alloca(length + 2 + it->length); memcpy(name, it->dir, it->length); memcpy(name + it->length, "\\", 1); memcpy(name + it->length + 1, cname, length + 1); *data = (char *)eina_stringshare_add(name); #ifdef UNICODE free(cname); #endif free(old_name); if (is_last) res = EINA_FALSE; return res; } static HANDLE _eina_file_win32_ls_iterator_container(Eina_File_Iterator *it) { return it->handle; } static void _eina_file_win32_ls_iterator_free(Eina_File_Iterator *it) { if (it->handle != INVALID_HANDLE_VALUE) FindClose(it->handle); EINA_MAGIC_SET(&it->iterator, 0); free(it); } static Eina_Bool _eina_file_win32_direct_ls_iterator_next(Eina_File_Direct_Iterator *it, void **data) { #ifdef UNICODE wchar_t *old_name; #else char *old_name; #endif char *cname; size_t length; DWORD attr; Eina_Bool is_last; Eina_Bool res = EINA_TRUE; if (it->handle == INVALID_HANDLE_VALUE) return EINA_FALSE; attr = it->data.dwFileAttributes; is_last = it->is_last; #ifdef UNICODE old_name = _wcsdup(it->data.cFileName); #else old_name = _strdup(it->data.cFileName); #endif if (!old_name) return EINA_FALSE; do { if (!FindNextFile(it->handle, &it->data)) { if (GetLastError() == ERROR_NO_MORE_FILES) it->is_last = EINA_TRUE; else res = EINA_FALSE; } #ifdef UNICODE length = wcslen(old_name); #else length = strlen(old_name); #endif if (it->info.name_start + length + 1 >= PATH_MAX) { free(old_name); #ifdef UNICODE old_name = _wcsdup(it->data.cFileName); #else old_name = _strdup(it->data.cFileName); #endif continue; } } while ((it->data.cFileName[0] == '.') && ((it->data.cFileName[1] == '\0') || ((it->data.cFileName[1] == '.') && (it->data.cFileName[2] == '\0')))); /* FIXME: what about UNICODE ? */ #ifdef UNICODE cname = evil_wchar_to_char(old_name); if (!cname) return EINA_FALSE; #else cname = old_name; #endif memcpy(it->info.path + it->info.name_start, cname, length); it->info.name_length = length; it->info.path_length = it->info.name_start + length; it->info.path[it->info.path_length] = '\0'; if (attr & FILE_ATTRIBUTE_DIRECTORY) it->info.type = EINA_FILE_DIR; else if (attr & FILE_ATTRIBUTE_REPARSE_POINT) it->info.type = EINA_FILE_LNK; else if (attr & (FILE_ATTRIBUTE_ARCHIVE | FILE_ATTRIBUTE_COMPRESSED | FILE_ATTRIBUTE_COMPRESSED | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_SPARSE_FILE | FILE_ATTRIBUTE_TEMPORARY)) it->info.type = EINA_FILE_REG; else it->info.type = EINA_FILE_UNKNOWN; *data = &it->info; #ifdef UNICODE free(cname); #endif free(old_name); if (is_last) res = EINA_FALSE; return res; } static HANDLE _eina_file_win32_direct_ls_iterator_container(Eina_File_Direct_Iterator *it) { return it->handle; } static void _eina_file_win32_direct_ls_iterator_free(Eina_File_Direct_Iterator *it) { if (it->handle != INVALID_HANDLE_VALUE) FindClose(it->handle); EINA_MAGIC_SET(&it->iterator, 0); free(it); } static void _eina_file_real_close(Eina_File *file) { eina_hash_free(file->rmap); eina_hash_free(file->map); if (file->global_map != MAP_FAILED) UnmapViewOfFile(file->global_map); CloseHandle(file->fm); CloseHandle(file->handle); free(file); } static void _eina_file_map_close(Eina_File_Map *map) { if (map->map != MAP_FAILED) UnmapViewOfFile(map->map); free(map); } static unsigned int _eina_file_map_key_length(const void *key __UNUSED__) { return sizeof (unsigned long int) * 2; } static int _eina_file_map_key_cmp(const unsigned long int *key1, int key1_length __UNUSED__, const unsigned long int *key2, int key2_length __UNUSED__) { if (key1[0] - key2[0] == 0) return key1[1] - key2[1]; return key1[0] - key2[0]; } static int _eina_file_map_key_hash(const unsigned long int *key, int key_length __UNUSED__) { return eina_hash_int64(&key[0], sizeof (unsigned long int)) ^ eina_hash_int64(&key[1], sizeof (unsigned long int)); } static char * _eina_file_win32_escape(const char *path, size_t *length) { char *result; char *p; char *q; size_t len; result = strdup(path ? path : ""); if (!result) return NULL; p = result; while (*p) { if (*p == '\\') *p = '/'; p++; } p = result; q = result; if (!result) return NULL; if (length) len = *length; else len = strlen(result); while ((p = strchr(p, '/'))) { // remove double `/' if (p[1] == '/') { memmove(p, p + 1, --len - (p - result)); result[len] = '\0'; } else if (p[1] == '.' && p[2] == '.') { // remove `/../' if (p[3] == '/') { char tmp; len -= p + 3 - q; memmove(q, p + 3, len - (q - result)); result[len] = '\0'; p = q; /* Update q correctly. */ tmp = *p; *p = '\0'; q = strrchr(result, '/'); if (!q) q = result; *p = tmp; } else // remove '/..$' if (p[3] == '\0') { len -= p + 2 - q; result[len] = '\0'; q = p; ++p; } else { q = p; ++p; } } else { q = p; ++p; } } if (length) *length = len; return result; } /* search '\r' and '\n' by preserving cache locality and page locality in doing a search inside 4K boundary. */ static inline const char * _eina_fine_eol(const char *start, int boundary, const char *end) { const char *cr; const char *lf; unsigned long long chunk; while (start < end) { chunk = start + boundary < end ? boundary : end - start; cr = memchr(start, '\r', chunk); lf = memchr(start, '\n', chunk); if (cr) { if (lf && lf < cr) return lf + 1; return cr + 1; } else if (lf) return lf + 1; start += chunk; boundary = 4096; } return end; } static Eina_Bool _eina_file_map_lines_iterator_next(Eina_Lines_Iterator *it, void **data) { const char *eol; unsigned char match; if (it->current.end >= it->end) return EINA_FALSE; match = *it->current.end; while ((*it->current.end == '\n' || *it->current.end == '\r') && it->current.end < it->end) { if (match == *it->current.end) it->current.index++; it->current.end++; } it->current.index++; if (it->current.end == it->end) return EINA_FALSE; eol = _eina_fine_eol(it->current.end, it->boundary, it->end); it->boundary = (uintptr_t) eol & 0x3FF; if (it->boundary == 0) it->boundary = 4096; it->current.start = it->current.end; it->current.end = eol; it->current.length = eol - it->current.start - 1; *data = &it->current; return EINA_TRUE; } static Eina_File * _eina_file_map_lines_iterator_container(Eina_Lines_Iterator *it) { return it->fp; } static void _eina_file_map_lines_iterator_free(Eina_Lines_Iterator *it) { eina_file_map_free(it->fp, (void*) it->map); eina_file_close(it->fp); EINA_MAGIC_SET(&it->iterator, 0); free(it); } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ Eina_Bool eina_file_init(void) { _eina_file_log_dom = eina_log_domain_register("eina_file", EINA_LOG_COLOR_DEFAULT); if (_eina_file_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_file"); return EINA_FALSE; } _eina_file_cache = eina_hash_string_djb2_new(NULL); if (!_eina_file_cache) { ERR("Could not create cache."); eina_log_domain_unregister(_eina_file_log_dom); _eina_file_log_dom = -1; return EINA_FALSE; } eina_lock_new(&_eina_file_lock_cache); return EINA_TRUE; } Eina_Bool eina_file_shutdown(void) { if (eina_hash_population(_eina_file_cache) > 0) { Eina_Iterator *it; const char *key; it = eina_hash_iterator_key_new(_eina_file_cache); EINA_ITERATOR_FOREACH(it, key) ERR("File [%s] still open !", key); eina_iterator_free(it); } eina_hash_free(_eina_file_cache); eina_lock_free(&_eina_file_lock_cache); eina_log_domain_unregister(_eina_file_log_dom); _eina_file_log_dom = -1; return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI char * eina_file_path_sanitize(const char *path) { char *result = NULL; size_t len; if (!path) return NULL; len = strlen(path); if (!evil_path_is_absolute(path)) { DWORD l; l = GetCurrentDirectory(0, NULL); if (l > 0) { char *cwd; char *tmp; cwd = alloca(sizeof(char) * (l + 1)); GetCurrentDirectory(l + 1, cwd); len += l + 2; tmp = alloca(sizeof (char) * len); snprintf(tmp, len, "%s\\%s", cwd, path); tmp[len - 1] = '\0'; result = tmp; } } return _eina_file_win32_escape(result ? result : path, &len); } EAPI Eina_Bool eina_file_dir_list(const char *dir, Eina_Bool recursive, Eina_File_Dir_List_Cb cb, void *data) { WIN32_FIND_DATA file; HANDLE h; char *new_dir; EINA_SAFETY_ON_NULL_RETURN_VAL(cb, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(dir, EINA_FALSE); EINA_SAFETY_ON_TRUE_RETURN_VAL(dir[0] == '\0', EINA_FALSE); if (!_eina_file_win32_is_dir(dir)) return EINA_FALSE; new_dir = _eina_file_win32_dir_new(dir); if (!new_dir) return EINA_FALSE; h = _eina_file_win32_first_file(new_dir, &file); if (h == INVALID_HANDLE_VALUE) return EINA_FALSE; do { char *filename; # ifdef UNICODE filename = evil_wchar_to_char(file.cFileName); # else filename = file.cFileName; # endif /* ! UNICODE */ if (!strcmp(filename, ".") || !strcmp(filename, "..")) continue; cb(filename, dir, data); if (recursive == EINA_TRUE) { char *path; path = alloca(strlen(dir) + strlen(filename) + 2); strcpy(path, dir); strcat(path, "/"); strcat(path, filename); if (!(file.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) continue; eina_file_dir_list(path, recursive, cb, data); } # ifdef UNICODE free(filename); # endif /* UNICODE */ } while (FindNextFile(h, &file)); FindClose(h); return EINA_TRUE; } EAPI Eina_Array * eina_file_split(char *path) { Eina_Array *ea; char *current; size_t length; EINA_SAFETY_ON_NULL_RETURN_VAL(path, NULL); ea = eina_array_new(16); if (!ea) return NULL; current = path; while (*current) { if ((*current == '\\') || (*current == '/')) { if (((*current == '\\') && (current[1] == '\\')) || ((*current == '/') && (current[1] == '/'))) { *current = '\0'; goto next_char; } length = current - path; if (length <= 0) goto next_char; eina_array_push(ea, path); *current = '\0'; path = current + 1; } next_char: current++; } if (*path != '\0') eina_array_push(ea, path); return ea; } EAPI Eina_Iterator * eina_file_ls(const char *dir) { Eina_File_Iterator *it; char *new_dir; size_t length; EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL); if (!dir || !*dir) return NULL; if (!_eina_file_win32_is_dir(dir)) return NULL; length = strlen(dir); it = calloc(1, sizeof (Eina_File_Iterator) + length); if (!it) return NULL; EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); new_dir = _eina_file_win32_dir_new(dir); if (!new_dir) goto free_it; it->handle = _eina_file_win32_first_file(new_dir, &it->data); free(new_dir); if (it->handle == INVALID_HANDLE_VALUE) goto free_it; memcpy(it->dir, dir, length + 1); if ((dir[length - 1] != '\\') && (dir[length - 1] != '/')) it->length = length; else it->length = length - 1; it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_file_win32_ls_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_file_win32_ls_iterator_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_win32_ls_iterator_free); return &it->iterator; free_it: free(it); return NULL; } EAPI Eina_Iterator * eina_file_direct_ls(const char *dir) { Eina_File_Direct_Iterator *it; char *new_dir; size_t length; EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL); if (!dir || !*dir) return NULL; length = strlen(dir); if (length + 12 + 2 >= MAX_PATH) return NULL; it = calloc(1, sizeof(Eina_File_Direct_Iterator) + length); if (!it) return NULL; EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); new_dir = _eina_file_win32_dir_new(dir); if (!new_dir) goto free_it; it->handle = _eina_file_win32_first_file(new_dir, &it->data); free(new_dir); if (it->handle == INVALID_HANDLE_VALUE) goto free_it; memcpy(it->dir, dir, length + 1); it->length = length; memcpy(it->info.path, dir, length); if ((dir[length - 1] == '\\') || (dir[length - 1] == '/')) it->info.name_start = length; else { it->info.path[length] = '\\'; it->info.name_start = length + 1; } it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_file_win32_direct_ls_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_file_win32_direct_ls_iterator_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_win32_direct_ls_iterator_free); return &it->iterator; free_it: free(it); return NULL; } EAPI Eina_Iterator * eina_file_stat_ls(const char *dir) { return eina_file_direct_ls(dir); } EAPI Eina_File * eina_file_open(const char *path, Eina_Bool shared) { Eina_File *file; Eina_File *n; char *filename; HANDLE handle; HANDLE fm; WIN32_FILE_ATTRIBUTE_DATA fad; ULARGE_INTEGER length; ULARGE_INTEGER mtime; EINA_SAFETY_ON_NULL_RETURN_VAL(path, NULL); filename = eina_file_path_sanitize(path); if (!filename) return NULL; /* FIXME: how to emulate shm_open ? Just OpenFileMapping ? */ #if 0 if (shared) handle = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL); else #endif handle = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL); if (handle == INVALID_HANDLE_VALUE) return NULL; fm = CreateFileMapping(handle, NULL, PAGE_READONLY, 0, 0, NULL); if (!fm) goto close_handle; if (!GetFileAttributesEx(filename, GetFileExInfoStandard, &fad)) goto close_fm; length.u.LowPart = fad.nFileSizeLow; length.u.HighPart = fad.nFileSizeHigh; mtime.u.LowPart = fad.ftLastWriteTime.dwLowDateTime; mtime.u.HighPart = fad.ftLastWriteTime.dwHighDateTime; eina_lock_take(&_eina_file_lock_cache); file = eina_hash_find(_eina_file_cache, filename); if (file && (file->mtime != mtime.QuadPart || file->length != length.QuadPart)) { file->delete_me = EINA_TRUE; eina_hash_del(_eina_file_cache, file->filename, file); _eina_file_real_close(file); file = NULL; } if (!file) { n = malloc(sizeof(Eina_File) + strlen(filename) + 1); if (!n) { eina_lock_release(&_eina_file_lock_cache); goto close_fm; } memset(n, 0, sizeof(Eina_File)); n->filename = (char*) (n + 1); strcpy((char*) n->filename, filename); n->map = eina_hash_new(EINA_KEY_LENGTH(_eina_file_map_key_length), EINA_KEY_CMP(_eina_file_map_key_cmp), EINA_KEY_HASH(_eina_file_map_key_hash), EINA_FREE_CB(_eina_file_map_close), 3); n->rmap = eina_hash_pointer_new(NULL); n->global_map = MAP_FAILED; n->length = length.QuadPart; n->mtime = mtime.QuadPart; n->handle = handle; n->fm = fm; n->shared = shared; eina_lock_new(&n->lock); eina_hash_direct_add(_eina_file_cache, n->filename, n); } else { CloseHandle(fm); CloseHandle(handle); n = file; } eina_lock_take(&n->lock); n->refcount++; eina_lock_release(&n->lock); eina_lock_release(&_eina_file_lock_cache); free(filename); return n; close_fm: CloseHandle(fm); close_handle: CloseHandle(handle); return NULL; } EAPI void eina_file_close(Eina_File *file) { EINA_SAFETY_ON_NULL_RETURN(file); eina_lock_take(&file->lock); file->refcount--; eina_lock_release(&file->lock); if (file->refcount != 0) return ; eina_lock_take(&_eina_file_lock_cache); eina_hash_del(_eina_file_cache, file->filename, file); _eina_file_real_close(file); eina_lock_release(&_eina_file_lock_cache); } EAPI size_t eina_file_size_get(Eina_File *file) { EINA_SAFETY_ON_NULL_RETURN_VAL(file, 0); return file->length; } EAPI time_t eina_file_mtime_get(Eina_File *file) { EINA_SAFETY_ON_NULL_RETURN_VAL(file, 0); return file->mtime; } EAPI const char * eina_file_filename_get(Eina_File *file) { EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); return file->filename; } EAPI Eina_Iterator *eina_file_xattr_get(Eina_File *file __UNUSED__) { return NULL; } EAPI Eina_Iterator *eina_file_xattr_value_get(Eina_File *file __UNUSED__) { return NULL; } EAPI void * eina_file_map_all(Eina_File *file, Eina_File_Populate rule __UNUSED__) { EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); eina_lock_take(&file->lock); if (file->global_map == MAP_FAILED) { void *data; data = MapViewOfFile(file->fm, FILE_MAP_READ, 0, 0, file->length); if (!data) file->global_map = MAP_FAILED; else file->global_map = data; } if (file->global_map != MAP_FAILED) { file->global_refcount++; return file->global_map; } eina_lock_release(&file->lock); return NULL; } EAPI Eina_Iterator * eina_file_map_lines(Eina_File *file) { Eina_Lines_Iterator *it; EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); if (file->length == 0) return NULL; it = calloc(1, sizeof (Eina_Lines_Iterator)); if (!it) return NULL; EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->map = eina_file_map_all(file, EINA_FILE_SEQUENTIAL); if (!it->map) { free(it); return NULL; } eina_lock_take(&file->lock); file->refcount++; eina_lock_release(&file->lock); it->fp = file; it->boundary = 4096; it->current.start = it->map; it->current.end = it->current.start; it->current.index = 0; it->current.length = 0; it->end = it->map + it->fp->length; it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_file_map_lines_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_file_map_lines_iterator_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_map_lines_iterator_free); return &it->iterator; } EAPI void * eina_file_map_new(Eina_File *file, Eina_File_Populate rule, unsigned long int offset, unsigned long int length) { Eina_File_Map *map; unsigned long int key[2]; EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); if (offset > file->length) return NULL; if (offset + length > file->length) return NULL; if (offset == 0 && length == file->length) return eina_file_map_all(file, rule); key[0] = offset; key[1] = length; eina_lock_take(&file->lock); map = eina_hash_find(file->map, &key); if (!map) { void *data; map = malloc(sizeof (Eina_File_Map)); if (!map) { eina_lock_release(&file->lock); return NULL; } data = MapViewOfFile(file->fm, FILE_MAP_READ, offset & 0xffff0000, offset & 0x0000ffff, length); if (!data) map->map = MAP_FAILED; else map->map = data; map->offset = offset; map->length = length; map->refcount = 0; if (map->map == MAP_FAILED) { free(map); eina_lock_release(&file->lock); return NULL; } eina_hash_add(file->map, &key, map); eina_hash_direct_add(file->rmap, map->map, map); } map->refcount++; eina_lock_release(&file->lock); return map->map; } EAPI void eina_file_map_free(Eina_File *file, void *map) { EINA_SAFETY_ON_NULL_RETURN(file); eina_lock_take(&file->lock); if (file->global_map == map) { file->global_refcount--; if (file->global_refcount > 0) goto on_exit; UnmapViewOfFile(file->global_map); file->global_map = MAP_FAILED; } else { Eina_File_Map *em; unsigned long int key[2]; em = eina_hash_find(file->rmap, &map); if (!em) goto on_exit; em->refcount--; if (em->refcount > 0) goto on_exit; key[0] = em->offset; key[1] = em->length; eina_hash_del(file->rmap, &map, em); eina_hash_del(file->map, &key, em); } on_exit: eina_lock_release(&file->lock); } EAPI Eina_Bool eina_file_map_faulted(Eina_File *file, void *map) { /* * FIXME: * vc++ : http://msdn.microsoft.com/en-us/library/windows/desktop/aa366801%28v=vs.85%29.aspx * * mingw-w64 : * - 32 bits : there is a way to implement __try/__except/__final in C. * see excpt.h header for 32-bits * - 64 bits : some inline assembly required for it. See as example our * startup-code in WinMainCRTStartup() in crtexe.c : { int ret = 255; #ifdef __SEH__ asm ("\t.l_startw:\n" "\t.seh_handler __C_specific_handler, @except\n" "\t.seh_handlerdata\n" "\t.long 1\n" "\t.rva .l_startw, .l_endw, _gnu_exception_handler ,.l_endw\n" "\t.text" ); #endif mingw_app_type = 1; __security_init_cookie (); ret = __tmainCRTStartup (); #ifdef __SEH__ asm ("\tnop\n" "\t.l_endw: nop\n"); #endif return ret; } */ return EINA_FALSE; } EAPI int eina_file_statat(void *container __UNUSED__, Eina_File_Direct_Info *info, Eina_Stat *st) { struct __stat64 buf; EINA_SAFETY_ON_NULL_RETURN_VAL(info, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(st, -1); if (stat64(info->path, &buf)) { if (info->type != EINA_FILE_LNK) info->type = EINA_FILE_UNKNOWN; return -1; } if (info->type == EINA_FILE_UNKNOWN) { if (S_ISREG(buf.st_mode)) info->type = EINA_FILE_REG; else if (S_ISDIR(buf.st_mode)) info->type = EINA_FILE_DIR; else info->type = EINA_FILE_UNKNOWN; } st->dev = buf.st_dev; st->ino = buf.st_ino; st->mode = buf.st_mode; st->nlink = buf.st_nlink; st->uid = buf.st_uid; st->gid = buf.st_gid; st->rdev = buf.st_rdev; st->size = buf.st_size; st->blksize = 0; st->blocks = 0; st->atime = buf.st_atime; st->mtime = buf.st_mtime; st->ctime = buf.st_ctime; st->atimensec = 0; st->mtimensec = 0; st->ctimensec = 0; return 0; } eina-1.7.10/src/lib/eina_cpu.c0000664000175000017500000001340512175475327012743 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef EFL_HAVE_THREADS # ifdef _WIN32 # define WIN32_LEAN_AND_MEAN # include # elif defined (__sun) || defined(__GNU__) # include # elif defined (__FreeBSD__) || defined (__OpenBSD__) || \ defined (__NetBSD__) || defined (__DragonFly__) || defined (__MacOSX__) || \ (defined (__MACH__) && defined (__APPLE__)) # include # include # include # elif defined (__linux__) || defined(__GLIBC__) # include # endif # ifdef EFL_HAVE_POSIX_THREADS # include # endif # define TH_MAX 8 #endif #include #include #include #include #include "eina_cpu.h" /*============================================================================* * Local * *============================================================================*/ /* FIXME this ifdefs should be replaced */ #if defined(__i386__) || defined(__x86_64__) /* We save ebx and restore it to be PIC compatible */ static inline void _x86_cpuid(int op, int *a, int *b, int *c, int *d) { __asm__ volatile ( #if defined(__x86_64__) "pushq %%rbx \n\t" /* save %ebx */ #else "pushl %%ebx \n\t" /* save %ebx */ #endif "cpuid \n\t" "movl %%ebx, %1 \n\t" /* save what cpuid just put in %ebx */ #if defined(__x86_64__) "popq %%rbx \n\t" /* restore the old %ebx */ #else "popl %%ebx \n\t" /* restore the old %ebx */ #endif : "=a" (*a), "=r" (*b), "=c" (*c), "=d" (*d) : "a" (op) : "cc"); } static void _x86_simd(Eina_Cpu_Features *features) { int a, b, c, d; _x86_cpuid(1, &a, &b, &c, &d); /* * edx * 18 = PN (Processor Number) * 19 = CLFlush (Cache Line Flush) * 23 = MMX * 25 = SSE * 26 = SSE2 * 28 = HTT (Hyper Threading) * ecx * 0 = SSE3 */ if ((d >> 23) & 1) *features |= EINA_CPU_MMX; if ((d >> 25) & 1) *features |= EINA_CPU_SSE; if ((d >> 26) & 1) *features |= EINA_CPU_SSE2; if (c & 1) *features |= EINA_CPU_SSE3; } #endif /*============================================================================* * Global * *============================================================================*/ /*============================================================================* * API * *============================================================================*/ /* FIXME the features checks should be called when this function is called? * or make it static by doing eina_cpu_init() and return a local var */ /** * * @return */ EAPI Eina_Cpu_Features eina_cpu_features_get(void) { Eina_Cpu_Features ecf = 0; #if defined(__i386__) || defined(__x86_64__) _x86_simd(&ecf); #endif return ecf; } static int _cpu_count = -1; static int _eina_cpu_count_internal(void) { #ifdef EFL_HAVE_THREADS # if defined (_WIN32) SYSTEM_INFO sysinfo; GetSystemInfo(&sysinfo); return sysinfo.dwNumberOfProcessors; # elif defined (__sun) || defined(__GNU__) /* * _SC_NPROCESSORS_ONLN: number of processors that are online, that is available when sysconf is called. The number of cpu can change by admins. * _SC_NPROCESSORS_CONF: maximum number of processors that are available to the current OS instance. That number can be change after a reboot. * _SC_NPROCESSORS_MAX : maximum number of processors that are on the motherboard. */ return sysconf(_SC_NPROCESSORS_ONLN); # elif defined (__FreeBSD__) || defined (__OpenBSD__) || \ defined (__NetBSD__) || defined (__DragonFly__) || defined (__MacOSX__) || \ (defined (__MACH__) && defined (__APPLE__)) int mib[4]; int cpus; size_t len = sizeof(cpus); mib[0] = CTL_HW; #ifdef HW_AVAILCPU mib[1] = HW_AVAILCPU; #else mib[1] = HW_NCPU; #endif sysctl(mib, 2, &cpus, &len, NULL, 0); if (cpus < 1) cpus = 1; return cpus; # elif defined (__linux__) || defined(__GLIBC__) cpu_set_t cpu; int i; static int cpus = 0; if (cpus != 0) return cpus; CPU_ZERO(&cpu); if (sched_getaffinity(0, sizeof(cpu), &cpu) != 0) { fprintf(stderr, "[Eina] could not get cpu affinity: %s\n", strerror(errno)); return 1; } for (i = 0; i < TH_MAX; i++) { if (CPU_ISSET(i, &cpu)) cpus = i + 1; else break; } return cpus; # else # error "eina_cpu_count() error: Platform not supported" # endif #else return 1; #endif } EAPI int eina_cpu_count(void) { return _cpu_count; } void eina_cpu_count_internal(void) { if (getenv("EINA_CPU_FAKE")) _cpu_count = atoi(getenv("EINA_CPU_FAKE")); else _cpu_count = _eina_cpu_count_internal(); } eina-1.7.10/src/lib/eina_strbuf.c0000664000175000017500000001016012175475327013454 00000000000000#ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #ifdef HAVE_EVIL # include #endif #include "eina_private.h" #include "eina_str.h" #include "eina_strbuf_common.h" #include "eina_unicode.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ #ifdef _STRBUF_DATA_TYPE # undef _STRBUF_DATA_TYPE #endif #ifdef _STRBUF_CSIZE # undef _STRBUF_CSIZE #endif #ifdef _STRBUF_STRUCT_NAME # undef _STRBUF_STRUCT_NAME #endif #ifdef _STRBUF_STRLEN_FUNC # undef _STRBUF_STRLEN_FUNC #endif #ifdef _STRBUF_STRESCAPE_FUNC # undef _STRBUF_STRESCAPE_FUNC #endif #ifdef _STRBUF_MAGIC # undef _STRBUF_MAGIC #endif #ifdef _STRBUF_MAGIC_STR # undef _STRBUF_MAGIC_STR #endif #ifdef _FUNC_EXPAND # undef _FUNC_EXPAND #endif #define _STRBUF_DATA_TYPE char #define _STRBUF_CSIZE sizeof(_STRBUF_DATA_TYPE) #define _STRBUF_STRUCT_NAME Eina_Strbuf #define _STRBUF_STRLEN_FUNC(x) strlen(x) #define _STRBUF_STRESCAPE_FUNC(x) eina_str_escape(x) #define _STRBUF_MAGIC EINA_MAGIC_STRBUF #define _STRBUF_MAGIC_STR __STRBUF_MAGIC_STR static const char __STRBUF_MAGIC_STR[] = "Eina Strbuf"; #define _FUNC_EXPAND(y) eina_strbuf_ ## y /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /*============================================================================* * API * *============================================================================*/ EAPI Eina_Bool eina_strbuf_append_printf(Eina_Strbuf *buf, const char *fmt, ...) { va_list args; char *str; size_t len; Eina_Bool ret; va_start(args, fmt); len = vasprintf(&str, fmt, args); va_end(args); if (len <= 0 || !str) return EINA_FALSE; ret = eina_strbuf_append_length(buf, str, len); free(str); return ret; } EAPI Eina_Bool eina_strbuf_append_vprintf(Eina_Strbuf *buf, const char *fmt, va_list args) { char *str; size_t len; Eina_Bool ret; len = vasprintf(&str, fmt, args); if (len <= 0 || !str) return EINA_FALSE; ret = eina_strbuf_append_length(buf, str, len); free(str); return ret; } EAPI Eina_Bool eina_strbuf_insert_printf(Eina_Strbuf *buf, const char *fmt, size_t pos, ...) { va_list args; char *str; size_t len; Eina_Bool ret; va_start(args, pos); len = vasprintf(&str, fmt, args); va_end(args); if (len <= 0 || !str) return EINA_FALSE; ret = eina_strbuf_insert(buf, str, pos); free(str); return ret; } EAPI Eina_Bool eina_strbuf_insert_vprintf(Eina_Strbuf *buf, const char *fmt, size_t pos, va_list args) { char *str; size_t len; Eina_Bool ret; len = vasprintf(&str, fmt, args); if (len <= 0 || !str) return EINA_FALSE; ret = eina_strbuf_insert(buf, str, pos); free(str); return ret; } EAPI void eina_strbuf_trim(Eina_Strbuf *buf) { unsigned char *c = buf->buf; while (buf->len > 0 && isspace(c[buf->len - 1])) buf->len--; while (buf->len > 0 && isspace(*c)) { c++; buf->len--; } memmove(buf->buf, c, buf->len); ((unsigned char *)buf->buf)[buf->len] = '\0'; } EAPI void eina_strbuf_ltrim(Eina_Strbuf *buf) { unsigned char *c = buf->buf; while (buf->len > 0 && isspace(*c)) { c++; buf->len--; } memmove(buf->buf, c, buf->len); ((unsigned char *)buf->buf)[buf->len] = '\0'; } EAPI void eina_strbuf_rtrim(Eina_Strbuf *buf) { while (buf->len > 0 && isspace(((unsigned char*)(buf->buf))[buf->len - 1])) buf->len--; ((unsigned char *)buf->buf)[buf->len] = '\0'; } /* Unicode */ #include "eina_strbuf_template_c.x" eina-1.7.10/src/lib/eina_matrixsparse.c0000664000175000017500000011001012175475327014664 00000000000000/* EINA - EFL data type library * Copyright (C) 2009 Gustavo Sverzut Barbieri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ /** * @page tutorial_matrixsparse_page Sparse Matrix Tutorial * * to be written... * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #ifdef HAVE_EVIL # include #endif #include "eina_config.h" #include "eina_private.h" #include "eina_error.h" #include "eina_log.h" #include "eina_magic.h" #include "eina_mempool.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_matrixsparse.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ static const char EINA_MAGIC_MATRIXSPARSE_STR[] = "Eina Matrixsparse"; static const char EINA_MAGIC_MATRIXSPARSE_ROW_STR[] = "Eina Matrixsparse Row"; static const char EINA_MAGIC_MATRIXSPARSE_CELL_STR[] = "Eina Matrixsparse Cell"; static const char EINA_MAGIC_MATRIXSPARSE_ITERATOR_STR[] = "Eina Matrixsparse Iterator"; static const char EINA_MAGIC_MATRIXSPARSE_ROW_ACCESSOR_STR[] = "Eina Matrixsparse Row Accessor"; static const char EINA_MAGIC_MATRIXSPARSE_ROW_ITERATOR_STR[] = "Eina Matrixsparse Row Iterator"; static const char EINA_MAGIC_MATRIXSPARSE_CELL_ACCESSOR_STR[] = "Eina Matrixsparse Cell Accessor"; static const char EINA_MAGIC_MATRIXSPARSE_CELL_ITERATOR_STR[] = "Eina Matrixsparse Cell Iterator"; #define EINA_MAGIC_CHECK_MATRIXSPARSE(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_MATRIXSPARSE)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_MATRIXSPARSE); \ return __VA_ARGS__; \ } \ } while(0) #define EINA_MAGIC_CHECK_MATRIXSPARSE_ROW(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_MATRIXSPARSE_ROW)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_MATRIXSPARSE_ROW); \ return __VA_ARGS__; \ } \ } while(0) #define EINA_MAGIC_CHECK_MATRIXSPARSE_CELL(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_MATRIXSPARSE_CELL)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_MATRIXSPARSE_CELL); \ return __VA_ARGS__; \ } \ } while(0) #define EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_MATRIXSPARSE_ITERATOR)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_MATRIXSPARSE_ITERATOR); \ return __VA_ARGS__; \ } \ } while(0) struct _Eina_Matrixsparse_Cell { Eina_Matrixsparse_Cell *next; Eina_Matrixsparse_Cell *prev; void *data; unsigned long col; Eina_Matrixsparse_Row *parent; EINA_MAGIC }; struct _Eina_Matrixsparse_Row { Eina_Matrixsparse_Row *next; Eina_Matrixsparse_Row *prev; Eina_Matrixsparse_Cell *cols; Eina_Matrixsparse_Cell *last_col; Eina_Matrixsparse_Cell *last_used; /* fast sequential access */ unsigned long row; Eina_Matrixsparse *parent; EINA_MAGIC }; struct _Eina_Matrixsparse { Eina_Matrixsparse_Row *rows; Eina_Matrixsparse_Row *last_row; Eina_Matrixsparse_Row *last_used; /* fast sequential access */ struct { unsigned long rows; unsigned long cols; } size; struct { void (*func)(void *user_data, void *cell_data); void *user_data; } free; EINA_MAGIC }; typedef struct _Eina_Matrixsparse_Iterator Eina_Matrixsparse_Iterator; typedef struct _Eina_Matrixsparse_Iterator_Complete Eina_Matrixsparse_Iterator_Complete; struct _Eina_Matrixsparse_Iterator { Eina_Iterator iterator; const Eina_Matrixsparse *m; struct { const Eina_Matrixsparse_Row *row; const Eina_Matrixsparse_Cell *col; } ref; EINA_MAGIC }; struct _Eina_Matrixsparse_Iterator_Complete { Eina_Iterator iterator; const Eina_Matrixsparse *m; struct { const Eina_Matrixsparse_Row *row; const Eina_Matrixsparse_Cell *col; } ref; struct { unsigned long row, col; } idx; struct { Eina_Matrixsparse_Row row; Eina_Matrixsparse_Cell col; } dummy; EINA_MAGIC }; /** * @todo Eina_Matrixsparse_Row_Iterator: iterator over rows in matrix * @todo Eina_Matrixsparse_Row_Accessor: accessor over rows in matrix * @todo Eina_Matrixsparse_Cell_Iterator: iterator over cells in row * @todo Eina_Matrixsparse_Cell_Accessor: accessor over cells in row */ static int _eina_matrixsparse_log_dom = -1; #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_matrixsparse_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_matrixsparse_log_dom, __VA_ARGS__) static Eina_Mempool *_eina_matrixsparse_cell_mp = NULL; static Eina_Mempool *_eina_matrixsparse_row_mp = NULL; static inline void _eina_matrixsparse_cell_free(Eina_Matrixsparse_Cell *c, void (*free_func)( void *, void *), void *user_data) { if (free_func) free_func(user_data, c->data); EINA_MAGIC_SET(c, EINA_MAGIC_NONE); eina_mempool_free(_eina_matrixsparse_cell_mp, c); } static inline void _eina_matrixsparse_cell_unlink(Eina_Matrixsparse_Cell *c) { Eina_Matrixsparse_Row *r = c->parent; if (r->last_used == c) { if (c->next) r->last_used = c->next; else r->last_used = c->prev; } if (r->last_col == c) r->last_col = c->prev; if (r->cols == c) r->cols = c->next; if (c->next && c->prev) { c->next->prev = c->prev; c->prev->next = c->next; } else if (c->next) c->next->prev = NULL; else if (c->prev) c->prev->next = NULL; } static inline void _eina_matrixsparse_row_cells_free(Eina_Matrixsparse_Row *r, void (*free_func)( void *, void *), void *user_data) { Eina_Matrixsparse_Cell *c = r->cols; while (c) { Eina_Matrixsparse_Cell *c_aux = c; c = c->next; _eina_matrixsparse_cell_free(c_aux, free_func, user_data); } } static inline void _eina_matrixsparse_row_free(Eina_Matrixsparse_Row *r, void (*free_func)(void *, void *), void *user_data) { _eina_matrixsparse_row_cells_free(r, free_func, user_data); EINA_MAGIC_SET(r, EINA_MAGIC_NONE); eina_mempool_free(_eina_matrixsparse_row_mp, r); } static inline void _eina_matrixsparse_row_unlink(Eina_Matrixsparse_Row *r) { Eina_Matrixsparse *m = r->parent; if (m->last_used == r) { if (r->next) m->last_used = r->next; else m->last_used = r->prev; } if (m->last_row == r) m->last_row = r->prev; if (m->rows == r) m->rows = r->next; if (r->next && r->prev) { r->next->prev = r->prev; r->prev->next = r->next; } else if (r->next) r->next->prev = NULL; else if (r->prev) r->prev->next = NULL; } static inline void _eina_matrixsparse_row_find_parms_get(const Eina_Matrixsparse *m, unsigned long row, Eina_Matrixsparse_Row **p_r, int *p_dir) { Eina_Matrixsparse_Row *r; unsigned long dist; int dir; dist = row - m->rows->row; r = m->rows; dir = 1; if (dist > m->last_row->row - row) { dist = m->last_row->row - row; r = m->last_row; dir = -1; } if (m->last_used) { if (m->last_used->row < row) { if (dist > row - m->last_used->row) { /* dist = row = m->last_used->row; */ r = m->last_used; dir = 1; } } else if (dist > m->last_used->row - row) { /* dist = m->last_used->row - row; */ r = m->last_used; dir = -1; } } *p_r = r; *p_dir = dir; } static inline void _eina_matrixsparse_row_cell_find_parms_get(const Eina_Matrixsparse_Row *r, unsigned long col, Eina_Matrixsparse_Cell **p_c, int *p_dir) { Eina_Matrixsparse_Cell *c; unsigned long dist; int dir; dist = col - r->cols->col; c = r->cols; dir = 1; if (dist > r->last_col->col - col) { dist = r->last_col->col - col; c = r->last_col; dir = -1; } if (r->last_used) { if (r->last_used->col < col) { if (dist > col - r->last_used->col) { /* dist = col = r->last_used->col; */ c = r->last_used; dir = 1; } } else if (dist > r->last_used->col - col) { /* dist = r->last_used->col - col; */ c = r->last_used; dir = -1; } } *p_c = c; *p_dir = dir; } static inline Eina_Matrixsparse_Row * _eina_matrixsparse_row_idx_get(const Eina_Matrixsparse *m, unsigned long row) { Eina_Matrixsparse_Row *r; int dir; if (!m->rows) return NULL; if (m->rows->row == row) return m->rows; else if (m->rows->row > row) return NULL; if (m->last_row->row == row) return m->last_row; else if (m->last_row->row < row) return NULL; if ((m->last_used) && (m->last_used->row == row)) return m->last_used; _eina_matrixsparse_row_find_parms_get(m, row, &r, &dir); assert(dir != 0); if (dir > 0) { for (; r; r = r->next) if (r->row == row) { ((Eina_Matrixsparse *)m)->last_used = r; return r; } else if (r->row > row) return NULL; } else if (dir < 0) { for (; r; r = r->prev) if (r->row == row) { ((Eina_Matrixsparse *)m)->last_used = r; return r; } else if (r->row < row) return NULL; } return NULL; } static inline Eina_Matrixsparse_Cell * _eina_matrixsparse_row_cell_idx_get(const Eina_Matrixsparse_Row *r, unsigned long col) { Eina_Matrixsparse_Cell *c; int dir; if (!r->cols) return NULL; if (r->cols->col == col) return r->cols; else if (r->cols->col > col) return NULL; if (r->last_col->col == col) return r->last_col; else if (r->last_col->col < col) return NULL; if ((r->last_used) && (r->last_used->col == col)) return r->last_used; _eina_matrixsparse_row_cell_find_parms_get(r, col, &c, &dir); assert(dir != 0); if (dir > 0) { for (; r; c = c->next) if (c->col == col) { ((Eina_Matrixsparse_Row *)r)->last_used = c; return c; } else if (c->col > col) return NULL; } else if (dir < 0) { for (; r; c = c->prev) if (c->col == col) { ((Eina_Matrixsparse_Row *)r)->last_used = c; return c; } else if (c->col < col) return NULL; } return NULL; } static inline Eina_Matrixsparse_Cell * _eina_matrixsparse_cell_idx_get(const Eina_Matrixsparse *m, unsigned long row, unsigned long col) { Eina_Matrixsparse_Row *r = _eina_matrixsparse_row_idx_get(m, row); if (!r) return NULL; return _eina_matrixsparse_row_cell_idx_get(r, col); } static inline void _eina_matrixsparse_row_idx_siblings_find(const Eina_Matrixsparse *m, unsigned long row, Eina_Matrixsparse_Row **p_prev, Eina_Matrixsparse_Row **p_next) { Eina_Matrixsparse_Row *r; int dir; _eina_matrixsparse_row_find_parms_get(m, row, &r, &dir); assert(dir != 0); if (dir > 0) { for (; r; r = r->next) if (r->row > row) break; assert(r != NULL); *p_prev = r->prev; *p_next = r; } else if (dir < 0) { for (; r; r = r->prev) if (r->row < row) break; assert(r != NULL); *p_prev = r; *p_next = r->next; } } static inline void _eina_matrixsparse_row_cell_idx_siblings_find(const Eina_Matrixsparse_Row *r, unsigned long col, Eina_Matrixsparse_Cell **p_prev, Eina_Matrixsparse_Cell **p_next) { Eina_Matrixsparse_Cell *c; int dir; _eina_matrixsparse_row_cell_find_parms_get(r, col, &c, &dir); assert(dir != 0); if (dir > 0) { for (; c; c = c->next) if (c->col > col) break; assert(c != NULL); *p_prev = c->prev; *p_next = c; } else if (dir < 0) { for (; c; c = c->prev) if (c->col < col) break; assert(c != NULL); *p_prev = c; *p_next = c->next; } } static inline Eina_Matrixsparse_Row * _eina_matrixsparse_row_idx_add(Eina_Matrixsparse *m, unsigned long row) { Eina_Matrixsparse_Row *r = eina_mempool_malloc (_eina_matrixsparse_row_mp, sizeof(Eina_Matrixsparse_Row)); if (!r) return NULL; if (!m->rows) { r->prev = NULL; r->next = NULL; m->rows = r; m->last_row = r; } else if (row < m->rows->row) { r->prev = NULL; r->next = m->rows; m->rows->prev = r; m->rows = r; } else if (row > m->last_row->row) { r->prev = m->last_row; m->last_row->next = r; r->next = NULL; m->last_row = r; } else { Eina_Matrixsparse_Row *prev = NULL, *next = NULL; _eina_matrixsparse_row_idx_siblings_find(m, row, &prev, &next); assert(prev != NULL); assert(next != NULL); r->prev = prev; r->next = next; prev->next = r; next->prev = r; } r->cols = NULL; r->last_col = NULL; r->last_used = NULL; r->row = row; r->parent = m; EINA_MAGIC_SET(r, EINA_MAGIC_MATRIXSPARSE_ROW); m->last_used = r; return r; } static inline Eina_Matrixsparse_Cell * _eina_matrixsparse_row_cell_idx_add(Eina_Matrixsparse_Row *r, unsigned long col, const void *data) { Eina_Matrixsparse_Cell *c = eina_mempool_malloc (_eina_matrixsparse_cell_mp, sizeof(Eina_Matrixsparse_Cell)); if (!c) return NULL; if (!r->cols) { c->prev = NULL; c->next = NULL; r->cols = c; r->last_col = c; } else if (col < r->cols->col) { c->prev = NULL; c->next = r->cols; r->cols->prev = c; r->cols = c; } else if (col > r->last_col->col) { c->prev = r->last_col; r->last_col->next = c; c->next = NULL; r->last_col = c; } else { Eina_Matrixsparse_Cell *prev = NULL, *next = NULL; _eina_matrixsparse_row_cell_idx_siblings_find(r, col, &prev, &next); assert(prev != NULL); assert(next != NULL); c->prev = prev; c->next = next; prev->next = c; next->prev = c; } c->data = (void *)data; c->col = col; c->parent = r; EINA_MAGIC_SET(c, EINA_MAGIC_MATRIXSPARSE_CELL); r->last_used = c; return c; } static inline Eina_Bool _eina_matrixsparse_cell_idx_add(Eina_Matrixsparse *m, unsigned long row, unsigned long col, const void *data) { Eina_Matrixsparse_Row *r = _eina_matrixsparse_row_idx_get(m, row); if (!r) r = _eina_matrixsparse_row_idx_add(m, row); if (!r) return 0; if (_eina_matrixsparse_row_cell_idx_add(r, col, data)) return 1; if (r->cols) return 0; _eina_matrixsparse_row_unlink(r); _eina_matrixsparse_row_free(r, m->free.func, m->free.user_data); return 0; } /*============================================================================* * Iterators * *============================================================================*/ static Eina_Bool _eina_matrixsparse_iterator_next(Eina_Matrixsparse_Iterator *it, void **data) { EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR(it, EINA_FALSE); /* do not touch it->idx */ if (!it->ref.col) return 0; *data = (Eina_Matrixsparse_Cell *)it->ref.col; it->ref.col = it->ref.col->next; if (!it->ref.col) { it->ref.row = it->ref.row->next; if (it->ref.row) it->ref.col = it->ref.row->cols; } return 1; } static Eina_Matrixsparse * _eina_matrixsparse_iterator_get_container(Eina_Matrixsparse_Iterator *it) { EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR(it, NULL); return (Eina_Matrixsparse *)it->m; } static void _eina_matrixsparse_iterator_free(Eina_Matrixsparse_Iterator *it) { EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR(it); EINA_MAGIC_SET(it, EINA_MAGIC_NONE); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_NONE); free(it); } static Eina_Bool _eina_matrixsparse_iterator_complete_next( Eina_Matrixsparse_Iterator_Complete *it, void **data) { EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR(it, EINA_FALSE); if (it->idx.row >= it->m->size.rows) return 0; if (it->dummy.col.data) ERR("Last iterator call changed dummy cell!"); if ((it->ref.col) && (it->ref.col->col == it->idx.col) && (it->ref.row->row == it->idx.row)) { *data = (Eina_Matrixsparse_Cell *)it->ref.col; it->ref.col = it->ref.col->next; if (!it->ref.col) { it->ref.row = it->ref.row->next; if (it->ref.row) it->ref.col = it->ref.row->cols; } } else { it->dummy.col.data = NULL; it->dummy.col.col = it->idx.col; it->dummy.row.row = it->idx.row; *data = &it->dummy.col; } it->idx.col++; if (it->idx.col == it->m->size.cols) { it->idx.col = 0; it->idx.row++; } return 1; } static Eina_Matrixsparse * _eina_matrixsparse_iterator_complete_get_container( Eina_Matrixsparse_Iterator_Complete *it) { EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR(it, NULL); return (Eina_Matrixsparse *)it->m; } static void _eina_matrixsparse_iterator_complete_free( Eina_Matrixsparse_Iterator_Complete *it) { EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR(it); if (it->dummy.col.data) ERR("Last iterator call changed dummy cell!"); EINA_MAGIC_SET(it, EINA_MAGIC_NONE); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_NONE); free(it); } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the matrixsparse module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the matrixsparse module of Eina. It is called by * eina_init(). * * This function creates mempool to speed up matrix rows and cells * management, using EINA_MEMPOOL environment variable if it is set to * choose the memory pool type to use. * * @see eina_init() */ Eina_Bool eina_matrixsparse_init(void) { const char *choice, *tmp; _eina_matrixsparse_log_dom = eina_log_domain_register("eina_matrixsparse", EINA_LOG_COLOR_DEFAULT); if (_eina_matrixsparse_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_matrixsparse"); return EINA_FALSE; } #ifdef EINA_DEFAULT_MEMPOOL choice = "pass_through"; #else choice = "chained_mempool"; #endif tmp = getenv("EINA_MEMPOOL"); if (tmp && tmp[0]) choice = tmp; _eina_matrixsparse_cell_mp = eina_mempool_add (choice, "matrixsparse_cell", NULL, sizeof (Eina_Matrixsparse_Cell), 32); if (!_eina_matrixsparse_cell_mp) { ERR( "Mempool for matrixsparse_cell cannot be allocated in matrixsparse init."); goto on_init_fail; } _eina_matrixsparse_row_mp = eina_mempool_add (choice, "matrixsparse_row", NULL, sizeof (Eina_Matrixsparse_Row), 32); if (!_eina_matrixsparse_row_mp) { ERR( "Mempool for matrixsparse_row cannot be allocated in matrixsparse init."); goto on_init_fail; } #define EMS(n) eina_magic_string_static_set(n, n ## _STR) EMS(EINA_MAGIC_MATRIXSPARSE); EMS(EINA_MAGIC_MATRIXSPARSE_ROW); EMS(EINA_MAGIC_MATRIXSPARSE_CELL); EMS(EINA_MAGIC_MATRIXSPARSE_ITERATOR); EMS(EINA_MAGIC_MATRIXSPARSE_ROW_ACCESSOR); EMS(EINA_MAGIC_MATRIXSPARSE_ROW_ITERATOR); EMS(EINA_MAGIC_MATRIXSPARSE_CELL_ACCESSOR); EMS(EINA_MAGIC_MATRIXSPARSE_CELL_ITERATOR); #undef EMS return EINA_TRUE; on_init_fail: eina_log_domain_unregister(_eina_matrixsparse_log_dom); _eina_matrixsparse_log_dom = -1; return EINA_FALSE; } /** * @internal * @brief Shut down the matrixsparse module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the matrixsparse module set up by * eina_matrixsparse_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_matrixsparse_shutdown(void) { eina_mempool_del(_eina_matrixsparse_row_mp); eina_mempool_del(_eina_matrixsparse_cell_mp); eina_log_domain_unregister(_eina_matrixsparse_log_dom); _eina_matrixsparse_log_dom = -1; return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI Eina_Matrixsparse * eina_matrixsparse_new(unsigned long rows, unsigned long cols, void (*free_func)( void *user_data, void *cell_data), const void *user_data) { Eina_Matrixsparse *m; EINA_SAFETY_ON_FALSE_RETURN_VAL(rows > 0, NULL); EINA_SAFETY_ON_FALSE_RETURN_VAL(cols > 0, NULL); m = malloc(sizeof(Eina_Matrixsparse)); if (!m) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } EINA_MAGIC_SET(m, EINA_MAGIC_MATRIXSPARSE); m->rows = NULL; m->last_row = NULL; m->last_used = NULL; m->size.rows = rows; m->size.cols = cols; m->free.func = free_func; m->free.user_data = (void *)user_data; eina_error_set(0); return m; } EAPI void eina_matrixsparse_free(Eina_Matrixsparse *m) { void (*free_func)(void *, void *); void *user_data; Eina_Matrixsparse_Row *r; if (!m) return; EINA_MAGIC_CHECK_MATRIXSPARSE(m); free_func = m->free.func; user_data = m->free.user_data; r = m->rows; while (r) { Eina_Matrixsparse_Row *r_aux = r; r = r->next; _eina_matrixsparse_row_free(r_aux, free_func, user_data); } EINA_MAGIC_SET(m, EINA_MAGIC_NONE); free(m); } EAPI void eina_matrixsparse_size_get(const Eina_Matrixsparse *m, unsigned long *rows, unsigned long *cols) { if (rows) *rows = 0; if (cols) *cols = 0; EINA_MAGIC_CHECK_MATRIXSPARSE(m); if (rows) *rows = m->size.rows; if (cols) *cols = m->size.cols; } EAPI Eina_Bool eina_matrixsparse_size_set(Eina_Matrixsparse *m, unsigned long rows, unsigned long cols) { Eina_Bool update_last_used_row; Eina_Matrixsparse_Row *r; void (*free_func)(void *, void *); void *user_data; EINA_MAGIC_CHECK_MATRIXSPARSE(m, 0); EINA_SAFETY_ON_FALSE_RETURN_VAL(rows > 0, 0); EINA_SAFETY_ON_FALSE_RETURN_VAL(cols > 0, 0); if ((rows == m->size.rows) && (cols == m->size.cols)) return 1; update_last_used_row = ((m->last_used) && (m->last_used->row >= rows)); free_func = m->free.func; user_data = m->free.user_data; r = m->last_row; while (r && r->row >= rows) { Eina_Matrixsparse_Row *r_aux = r; r = r->prev; _eina_matrixsparse_row_free(r_aux, free_func, user_data); } if (!r) { m->last_row = NULL; m->rows = NULL; } else if (r != m->last_row) { r->next = NULL; m->last_row = r; } if (update_last_used_row) m->last_used = m->last_row; r = m->rows; while (r) { Eina_Matrixsparse_Cell *c = r->last_col; Eina_Bool update_last_used_col; update_last_used_col = ((r->last_used) && (r->last_used->col >= cols)); while (c && c->col >= cols) { Eina_Matrixsparse_Cell *c_aux = c; c = c->prev; _eina_matrixsparse_cell_free(c_aux, free_func, user_data); } if (!c) { Eina_Matrixsparse_Row *r_aux = r; r->cols = NULL; r->last_col = NULL; if (r->next) r->next->prev = r->prev; else m->last_row = r->prev; if (r->prev) r->prev->next = r->next; else m->rows = r->next; r = r->next; _eina_matrixsparse_row_free(r_aux, free_func, user_data); if ((update_last_used_row) && (m->last_used == r_aux)) m->last_used = r; } else { if (c != r->last_col) { c->next = NULL; r->last_col = c; } if (update_last_used_col) r->last_used = r->last_col; r = r->next; } } update_last_used_row = 0; if (m->last_used) { if (m->last_row) update_last_used_row = m->last_used->row > m->last_row->row; else update_last_used_row = 1; } if (update_last_used_row) m->last_used = m->last_row; m->size.rows = rows; m->size.cols = cols; return 1; } EAPI Eina_Bool eina_matrixsparse_cell_idx_get(const Eina_Matrixsparse *m, unsigned long row, unsigned long col, Eina_Matrixsparse_Cell **cell) { EINA_MAGIC_CHECK_MATRIXSPARSE(m, 0); EINA_SAFETY_ON_NULL_RETURN_VAL(cell, 0); *cell = NULL; EINA_SAFETY_ON_FALSE_RETURN_VAL(row < m->size.rows, 0); EINA_SAFETY_ON_FALSE_RETURN_VAL(col < m->size.cols, 0); *cell = _eina_matrixsparse_cell_idx_get(m, row, col); return 1; } EAPI void * eina_matrixsparse_cell_data_get(const Eina_Matrixsparse_Cell *cell) { EINA_MAGIC_CHECK_MATRIXSPARSE_CELL(cell, NULL); return cell->data; } EAPI void * eina_matrixsparse_data_idx_get(const Eina_Matrixsparse *m, unsigned long row, unsigned long col) { Eina_Matrixsparse_Cell *c; EINA_MAGIC_CHECK_MATRIXSPARSE(m, NULL); c = _eina_matrixsparse_cell_idx_get(m, row, col); if (c) return c->data; else return NULL; } EAPI Eina_Bool eina_matrixsparse_cell_position_get(const Eina_Matrixsparse_Cell *cell, unsigned long *row, unsigned long *col) { if (row) *row = 0; if (col) *col = 0; EINA_MAGIC_CHECK_MATRIXSPARSE_CELL(cell, 0); EINA_MAGIC_CHECK_MATRIXSPARSE_ROW(cell->parent, 0); if (row) *row = cell->parent->row; if (col) *col = cell->col; return 1; } EAPI Eina_Bool eina_matrixsparse_cell_data_replace(Eina_Matrixsparse_Cell *cell, const void *data, void **p_old) { if (p_old) *p_old = NULL; EINA_MAGIC_CHECK_MATRIXSPARSE_CELL(cell, 0); if (p_old) *p_old = cell->data; cell->data = (void *)data; return 1; } EAPI Eina_Bool eina_matrixsparse_cell_data_set(Eina_Matrixsparse_Cell *cell, const void *data) { Eina_Matrixsparse *m; EINA_MAGIC_CHECK_MATRIXSPARSE_CELL(cell, 0); EINA_MAGIC_CHECK_MATRIXSPARSE_ROW(cell->parent, 0); EINA_MAGIC_CHECK_MATRIXSPARSE(cell->parent->parent, 0); m = cell->parent->parent; if (m->free.func) m->free.func(m->free.user_data, cell->data); cell->data = (void *)data; return 1; } EAPI Eina_Bool eina_matrixsparse_data_idx_replace(Eina_Matrixsparse *m, unsigned long row, unsigned long col, const void *data, void **p_old) { Eina_Matrixsparse_Cell *cell; if (p_old) *p_old = NULL; EINA_MAGIC_CHECK_MATRIXSPARSE(m, 0); EINA_SAFETY_ON_FALSE_RETURN_VAL(row < m->size.rows, 0); EINA_SAFETY_ON_FALSE_RETURN_VAL(col < m->size.cols, 0); cell = _eina_matrixsparse_cell_idx_get(m, row, col); if (cell) { if (p_old) *p_old = cell->data; cell->data = (void *)data; return 1; } return _eina_matrixsparse_cell_idx_add(m, row, col, data); } EAPI Eina_Bool eina_matrixsparse_data_idx_set(Eina_Matrixsparse *m, unsigned long row, unsigned long col, const void *data) { Eina_Matrixsparse_Cell *cell; EINA_MAGIC_CHECK_MATRIXSPARSE(m, 0); EINA_SAFETY_ON_FALSE_RETURN_VAL(row < m->size.rows, 0); EINA_SAFETY_ON_FALSE_RETURN_VAL(col < m->size.cols, 0); cell = _eina_matrixsparse_cell_idx_get(m, row, col); if (cell) { if (m->free.func) m->free.func(m->free.user_data, cell->data); cell->data = (void *)data; return 1; } return _eina_matrixsparse_cell_idx_add(m, row, col, data); } EAPI Eina_Bool eina_matrixsparse_row_idx_clear(Eina_Matrixsparse *m, unsigned long row) { Eina_Matrixsparse_Row *r; EINA_MAGIC_CHECK_MATRIXSPARSE(m, 0); EINA_SAFETY_ON_FALSE_RETURN_VAL(row < m->size.rows, 0); r = _eina_matrixsparse_row_idx_get(m, row); if (!r) return 1; _eina_matrixsparse_row_unlink(r); _eina_matrixsparse_row_free(r, m->free.func, m->free.user_data); return 1; } EAPI Eina_Bool eina_matrixsparse_column_idx_clear(Eina_Matrixsparse *m, unsigned long col) { Eina_Matrixsparse_Row *r; void (*free_func)(void *, void *); void *user_data; EINA_MAGIC_CHECK_MATRIXSPARSE(m, 0); EINA_SAFETY_ON_FALSE_RETURN_VAL(col < m->size.cols, 0); free_func = m->free.func; user_data = m->free.user_data; for (r = m->rows; r; ) { Eina_Matrixsparse_Row *r_aux = r; Eina_Matrixsparse_Cell *c; c = _eina_matrixsparse_row_cell_idx_get(r, col); r = r->next; if (!c) continue; if ((r_aux->cols != c) || (r_aux->last_col != c)) { _eina_matrixsparse_cell_unlink(c); _eina_matrixsparse_cell_free(c, free_func, user_data); } else { _eina_matrixsparse_row_unlink(r_aux); _eina_matrixsparse_row_free(r_aux, free_func, user_data); } } return 1; } EAPI Eina_Bool eina_matrixsparse_cell_idx_clear(Eina_Matrixsparse *m, unsigned long row, unsigned long col) { Eina_Matrixsparse_Cell *c; EINA_MAGIC_CHECK_MATRIXSPARSE(m, 0); EINA_SAFETY_ON_FALSE_RETURN_VAL(row < m->size.rows, 0); EINA_SAFETY_ON_FALSE_RETURN_VAL(col < m->size.cols, 0); c = _eina_matrixsparse_cell_idx_get(m, row, col); if (!c) return 1; _eina_matrixsparse_cell_unlink(c); _eina_matrixsparse_cell_free(c, m->free.func, m->free.user_data); return 1; } EAPI Eina_Bool eina_matrixsparse_cell_clear(Eina_Matrixsparse_Cell *cell) { Eina_Matrixsparse *m; EINA_MAGIC_CHECK_MATRIXSPARSE_CELL(cell, 0); EINA_MAGIC_CHECK_MATRIXSPARSE_ROW(cell->parent, 0); EINA_MAGIC_CHECK_MATRIXSPARSE(cell->parent->parent, 0); m = cell->parent->parent; _eina_matrixsparse_cell_unlink(cell); _eina_matrixsparse_cell_free(cell, m->free.func, m->free.user_data); return 1; } EAPI Eina_Iterator * eina_matrixsparse_iterator_new(const Eina_Matrixsparse *m) { Eina_Matrixsparse_Iterator *it; it = calloc(1, sizeof(*it)); if (!it) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } EINA_MAGIC_SET(it, EINA_MAGIC_MATRIXSPARSE_ITERATOR); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->m = m; it->ref.row = m->rows; it->ref.col = m->rows ? m->rows->cols : NULL; it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_matrixsparse_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER( _eina_matrixsparse_iterator_get_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_matrixsparse_iterator_free); return &it->iterator; } EAPI Eina_Iterator * eina_matrixsparse_iterator_complete_new(const Eina_Matrixsparse *m) { Eina_Matrixsparse_Iterator_Complete *it; it = calloc(1, sizeof(*it)); if (!it) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } EINA_MAGIC_SET(it, EINA_MAGIC_MATRIXSPARSE_ITERATOR); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->m = m; it->idx.row = 0; it->idx.col = 0; it->ref.row = m->rows; it->ref.col = m->rows ? m->rows->cols : NULL; it->dummy.row.next = it->dummy.row.prev = NULL; it->dummy.row.cols = it->dummy.row.last_col = it->dummy.row.last_used = NULL; it->dummy.row.parent = (Eina_Matrixsparse *)m; EINA_MAGIC_SET(&it->dummy.row, EINA_MAGIC_MATRIXSPARSE_ROW); it->dummy.col.next = it->dummy.col.prev = NULL; it->dummy.col.data = NULL; it->dummy.col.parent = &it->dummy.row; EINA_MAGIC_SET(&it->dummy.col, EINA_MAGIC_MATRIXSPARSE_CELL); it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT( _eina_matrixsparse_iterator_complete_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER( _eina_matrixsparse_iterator_complete_get_container); it->iterator.free = FUNC_ITERATOR_FREE( _eina_matrixsparse_iterator_complete_free); return &it->iterator; } eina-1.7.10/src/lib/eina_log.c0000664000175000017500000016464612175475327012753 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2009 Jorge Luis Zapata Muga, Cedric Bail, Andre Dieb * Martins * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #include #if defined HAVE_EXECINFO_H && defined HAVE_BACKTRACE && defined HAVE_BACKTRACE_SYMBOLS # include # define EINA_LOG_BACKTRACE #endif #ifdef HAVE_UNISTD_H # include #endif #ifdef EFL_HAVE_POSIX_THREADS # include #endif #ifdef HAVE_EVIL # include #endif #include "eina_config.h" #include "eina_private.h" #include "eina_inlist.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_log.h" /* TODO * + printing logs to stdout or stderr can be implemented * using a queue, useful for multiple threads printing * + add a wrapper for assert? */ /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ #define EINA_LOG_ENV_ABORT "EINA_LOG_ABORT" #define EINA_LOG_ENV_ABORT_LEVEL "EINA_LOG_ABORT_LEVEL" #define EINA_LOG_ENV_LEVEL "EINA_LOG_LEVEL" #define EINA_LOG_ENV_LEVELS "EINA_LOG_LEVELS" #define EINA_LOG_ENV_LEVELS_GLOB "EINA_LOG_LEVELS_GLOB" #define EINA_LOG_ENV_COLOR_DISABLE "EINA_LOG_COLOR_DISABLE" #define EINA_LOG_ENV_FILE_DISABLE "EINA_LOG_FILE_DISABLE" #define EINA_LOG_ENV_FUNCTION_DISABLE "EINA_LOG_FUNCTION_DISABLE" #define EINA_LOG_ENV_BACKTRACE "EINA_LOG_BACKTRACE" #ifdef EINA_ENABLE_LOG // Structure for storing domain level settings passed from the command line // that will be matched with application-defined domains. typedef struct _Eina_Log_Domain_Level_Pending Eina_Log_Domain_Level_Pending; struct _Eina_Log_Domain_Level_Pending { EINA_INLIST; unsigned int level; size_t namelen; char name[]; }; /* * List of levels for domains set by the user before the domains are registered, * updates the domain levels on the first log and clears itself. */ static Eina_Inlist *_pending_list = NULL; static Eina_Inlist *_glob_list = NULL; // Disable color flag (can be changed through the env var // EINA_LOG_ENV_COLOR_DISABLE). static Eina_Bool _disable_color = EINA_FALSE; static Eina_Bool _disable_file = EINA_FALSE; static Eina_Bool _disable_function = EINA_FALSE; static Eina_Bool _abort_on_critical = EINA_FALSE; static int _abort_level_on_critical = EINA_LOG_LEVEL_CRITICAL; #ifdef EINA_LOG_BACKTRACE static int _backtrace_level = -1; #endif #ifdef EFL_HAVE_THREADS static Eina_Bool _threads_enabled = EINA_FALSE; static Eina_Bool _threads_inited = EINA_FALSE; # ifdef EFL_HAVE_POSIX_THREADS typedef pthread_t Thread; static pthread_t _main_thread; # define SELF() pthread_self() # define IS_MAIN(t) pthread_equal(t, _main_thread) # define IS_OTHER(t) EINA_UNLIKELY(!IS_MAIN(t)) # define CHECK_MAIN(...) \ do { \ if (!IS_MAIN(pthread_self())) { \ fprintf(stderr, \ "ERR: not main thread! current=%lu, main=%lu\n", \ (unsigned long)pthread_self(), \ (unsigned long)_main_thread); \ return __VA_ARGS__; \ } \ } while (0) # ifdef EFL_HAVE_POSIX_THREADS_SPINLOCK static pthread_spinlock_t _log_lock; static Eina_Bool _eina_log_spinlock_init(void) { if (pthread_spin_init(&_log_lock, PTHREAD_PROCESS_PRIVATE) == 0) return EINA_TRUE; fprintf(stderr, "ERROR: pthread_spin_init(%p, PTHREAD_PROCESS_PRIVATE): %s\n", &_log_lock, strerror(errno)); return EINA_FALSE; } # define LOG_LOCK() \ if (_threads_enabled) \ do { \ if (0) { \ fprintf(stderr, "+++LOG LOG_LOCKED! [%s, %lu]\n", \ __FUNCTION__, (unsigned long)pthread_self()); } \ if (EINA_UNLIKELY(_threads_enabled)) { \ pthread_spin_lock(&_log_lock); } \ } while (0) # define LOG_UNLOCK() \ if (_threads_enabled) \ do { \ if (EINA_UNLIKELY(_threads_enabled)) { \ pthread_spin_unlock(&_log_lock); } \ if (0) { \ fprintf(stderr, \ "---LOG LOG_UNLOCKED! [%s, %lu]\n", \ __FUNCTION__, (unsigned long)pthread_self()); } \ } while (0) # define INIT() _eina_log_spinlock_init() # define SHUTDOWN() pthread_spin_destroy(&_log_lock) # else /* ! EFL_HAVE_POSIX_THREADS_SPINLOCK */ static pthread_mutex_t _log_mutex = PTHREAD_MUTEX_INITIALIZER; # define LOG_LOCK() if(_threads_enabled) {pthread_mutex_lock(&_log_mutex); } # define LOG_UNLOCK() if(_threads_enabled) {pthread_mutex_unlock(&_log_mutex); } # define INIT() (1) # define SHUTDOWN() do {} while (0) # endif /* ! EFL_HAVE_POSIX_THREADS_SPINLOCK */ # else /* EFL_HAVE_WIN32_THREADS */ typedef DWORD Thread; static DWORD _main_thread; # define SELF() GetCurrentThreadId() # define IS_MAIN(t) (t == _main_thread) # define IS_OTHER(t) EINA_UNLIKELY(!IS_MAIN(t)) # define CHECK_MAIN(...) \ do { \ if (!IS_MAIN(GetCurrentThreadId())) { \ fprintf(stderr, \ "ERR: not main thread! current=%lu, main=%lu\n", \ GetCurrentThreadId(), _main_thread); \ return __VA_ARGS__; \ } \ } while (0) static HANDLE _log_mutex = NULL; # define LOG_LOCK() if(_threads_enabled) WaitForSingleObject(_log_mutex, INFINITE) # define LOG_UNLOCK() if(_threads_enabled) ReleaseMutex(_log_mutex) # define INIT() ((_log_mutex = CreateMutex(NULL, FALSE, NULL)) ? 1 : 0) # define SHUTDOWN() if (_log_mutex) CloseHandle(_log_mutex) # endif /* EFL_HAVE_WIN32_THREADS */ #else /* ! EFL_HAVE_THREADS */ # define LOG_LOCK() do {} while (0) # define LOG_UNLOCK() do {} while (0) # define IS_MAIN(t) (1) # define IS_OTHER(t) (0) # define CHECK_MAIN(...) do {} while (0) # define INIT() (1) # define SHUTDOWN() do {} while (0) #endif /* ! EFL_HAVE_THREADS */ // List of domains registered static Eina_Log_Domain *_log_domains = NULL; static unsigned int _log_domains_count = 0; static size_t _log_domains_allocated = 0; // Default function for printing on domains static Eina_Log_Print_Cb _print_cb = eina_log_print_cb_stderr; static void *_print_cb_data = NULL; #ifdef DEBUG static Eina_Log_Level _log_level = EINA_LOG_LEVEL_DBG; #elif DEBUG_CRITICAL static Eina_Log_Level _log_level = EINA_LOG_LEVEL_CRITICAL; #else static Eina_Log_Level _log_level = EINA_LOG_LEVEL_ERR; #endif /* NOTE: if you change this, also change: * eina_log_print_level_name_get() * eina_log_print_level_name_color_get() */ static const char *_names[] = { "CRI", "ERR", "WRN", "INF", "DBG", }; #ifdef _WIN32 /* TODO: query win32_def_attr on eina_log_init() */ static int win32_def_attr = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE; /* NOTE: can't use eina_log from inside this function */ static int eina_log_win32_color_convert(const char *color, const char **endptr) { const char *p; int attr = 0; if (endptr) *endptr = color; if (color[0] != '\033') return 0; if (color[1] != '[') return 0; p = color + 2; while (1) { char *end; int code = strtol(p, &end, 10); if (p == end) { //fputs("empty color string\n", stderr); if (endptr) *endptr = end; attr = 0; /* assume it was not color, must end with 'm' */ break; } if (code) { if (code == 0) attr = win32_def_attr; else if (code == 1) attr |= FOREGROUND_INTENSITY; else if (code == 4) attr |= COMMON_LVB_UNDERSCORE; else if (code == 7) attr |= COMMON_LVB_REVERSE_VIDEO; else if ((code >= 30) && (code <= 37)) { /* clear foreground */ attr &= ~(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); if (code == 31) attr |= FOREGROUND_RED; else if (code == 32) attr |= FOREGROUND_GREEN; else if (code == 33) attr |= FOREGROUND_RED | FOREGROUND_GREEN; else if (code == 34) attr |= FOREGROUND_BLUE; else if (code == 35) attr |= FOREGROUND_RED | FOREGROUND_BLUE; else if (code == 36) attr |= FOREGROUND_GREEN | FOREGROUND_BLUE; else if (code == 37) attr |= FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE; } else if ((code >= 40) && (code <= 47)) { /* clear background */ attr &= ~(BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE); if (code == 41) attr |= BACKGROUND_RED; else if (code == 42) attr |= BACKGROUND_GREEN; else if (code == 44) attr |= BACKGROUND_RED | BACKGROUND_GREEN; else if (code == 44) attr |= BACKGROUND_BLUE; else if (code == 45) attr |= BACKGROUND_RED | BACKGROUND_BLUE; else if (code == 46) attr |= BACKGROUND_GREEN | BACKGROUND_BLUE; else if (code == 47) attr |= BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE; } } if (*end == 'm') { if (endptr) *endptr = end + 1; break; } else if (*end == ';') p = end + 1; else { //fprintf(stderr, "unexpected char in color string: %s\n", end); attr = 0; /* assume it was not color */ if (endptr) *endptr = end; break; } } return attr; } static int eina_log_win32_color_get(const char *color) { return eina_log_win32_color_convert(color, NULL); } #endif static inline unsigned int eina_log_pid_get(void) { return (unsigned int)getpid(); } static inline void eina_log_print_level_name_get(int level, const char **p_name) { static char buf[4]; /* NOTE: if you change this, also change * eina_log_print_level_name_color_get() * eina_log_level_name_get() (at eina_inline_log.x) */ if (EINA_UNLIKELY(level < 0)) { snprintf(buf, sizeof(buf), "%03d", level); *p_name = buf; } else if (EINA_UNLIKELY(level >= EINA_LOG_LEVELS)) { snprintf(buf, sizeof(buf), "%03d", level); *p_name = buf; } else *p_name = _names[level]; } #ifdef _WIN32 static inline void eina_log_print_level_name_color_get(int level, const char **p_name, int *p_color) { static char buf[4]; /* NOTE: if you change this, also change: * eina_log_print_level_name_get() */ if (EINA_UNLIKELY(level < 0)) { snprintf(buf, sizeof(buf), "%03d", level); *p_name = buf; } else if (EINA_UNLIKELY(level >= EINA_LOG_LEVELS)) { snprintf(buf, sizeof(buf), "%03d", level); *p_name = buf; } else *p_name = _names[level]; *p_color = eina_log_win32_color_get(eina_log_level_color_get(level)); } #else static inline void eina_log_print_level_name_color_get(int level, const char **p_name, const char **p_color) { static char buf[4]; /* NOTE: if you change this, also change: * eina_log_print_level_name_get() */ if (EINA_UNLIKELY(level < 0)) { snprintf(buf, sizeof(buf), "%03d", level); *p_name = buf; } else if (EINA_UNLIKELY(level >= EINA_LOG_LEVELS)) { snprintf(buf, sizeof(buf), "%03d", level); *p_name = buf; } else *p_name = _names[level]; *p_color = eina_log_level_color_get(level); } #endif #define DECLARE_LEVEL_NAME(level) const char *name; \ eina_log_print_level_name_get(level, &name) #ifdef _WIN32 # define DECLARE_LEVEL_NAME_COLOR(level) const char *name; int color; \ eina_log_print_level_name_color_get(level, &name, &color) #else # define DECLARE_LEVEL_NAME_COLOR(level) const char *name, *color; \ eina_log_print_level_name_color_get(level, &name, &color) #endif /** No threads, No color */ static void eina_log_print_prefix_NOthreads_NOcolor_file_func(FILE *fp, const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line) { DECLARE_LEVEL_NAME(level); fprintf(fp, "%s<%u>:%s %s:%d %s() ", name, eina_log_pid_get(), d->domain_str, file, line, fnc); } static void eina_log_print_prefix_NOthreads_NOcolor_NOfile_func(FILE *fp, const Eina_Log_Domain *d, Eina_Log_Level level, const char *file __UNUSED__, const char *fnc, int line __UNUSED__) { DECLARE_LEVEL_NAME(level); fprintf(fp, "%s<%u>:%s %s() ", name, eina_log_pid_get(), d->domain_str, fnc); } static void eina_log_print_prefix_NOthreads_NOcolor_file_NOfunc(FILE *fp, const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc __UNUSED__, int line) { DECLARE_LEVEL_NAME(level); fprintf(fp, "%s<%u>:%s %s:%d ", name, eina_log_pid_get(), d->domain_str, file, line); } /* No threads, color */ static void eina_log_print_prefix_NOthreads_color_file_func(FILE *fp, const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line) { DECLARE_LEVEL_NAME_COLOR(level); #ifdef _WIN32_WCE fprintf(fp, "%s<%u>:%s %s:%d %s() ", name, eina_log_pid_get(), d->domain_str, file, line, fnc); #elif _WIN32 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color); fprintf(fp, "%s", name); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, ":"); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), eina_log_win32_color_get(d->domain_str)); fprintf(fp, "%s", d->name); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, " %s:%d ", file, line); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, "%s()", fnc); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, " "); #else fprintf(fp, "%s%s<%u>" EINA_COLOR_RESET ":%s %s:%d " EINA_COLOR_HIGH "%s()" EINA_COLOR_RESET " ", color, name, eina_log_pid_get(), d->domain_str, file, line, fnc); #endif } static void eina_log_print_prefix_NOthreads_color_NOfile_func(FILE *fp, const Eina_Log_Domain *d, Eina_Log_Level level, const char *file __UNUSED__, const char *fnc, int line __UNUSED__) { DECLARE_LEVEL_NAME_COLOR(level); #ifdef _WIN32_WCE fprintf(fp, "%s<%u>:%s %s() ", name, eina_log_pid_get(), d->domain_str, fnc); #elif _WIN32 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color); fprintf(fp, "%s", name); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, ":"); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), eina_log_win32_color_get(d->domain_str)); fprintf(fp, "%s", d->name); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, "%s()", fnc); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, " "); #else fprintf(fp, "%s%s<%u>" EINA_COLOR_RESET ":%s " EINA_COLOR_HIGH "%s()" EINA_COLOR_RESET " ", color, name, eina_log_pid_get(), d->domain_str, fnc); #endif } static void eina_log_print_prefix_NOthreads_color_file_NOfunc(FILE *fp, const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc __UNUSED__, int line) { DECLARE_LEVEL_NAME_COLOR(level); #ifdef _WIN32_WCE fprintf(fp, "%s<%u>:%s %s:%d ", name, eina_log_pid_get(), d->domain_str, file, line); #elif _WIN32 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color); fprintf(fp, "%s", name); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, ":"); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), eina_log_win32_color_get(d->domain_str)); fprintf(fp, "%s", d->name); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, " %s:%d ", file, line); #else fprintf(fp, "%s%s<%u>" EINA_COLOR_RESET ":%s %s:%d ", color, name, eina_log_pid_get(), d->domain_str, file, line); #endif } /** threads, No color */ #ifdef EFL_HAVE_THREADS static void eina_log_print_prefix_threads_NOcolor_file_func(FILE *fp, const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line) { Thread cur; DECLARE_LEVEL_NAME(level); cur = SELF(); if (IS_OTHER(cur)) { fprintf(fp, "%s<%u>:%s[T:%lu] %s:%d %s() ", name, eina_log_pid_get(), d->domain_str, (unsigned long)cur, file, line, fnc); return; } fprintf(fp, "%s<%u>:%s %s:%d %s() ", name, eina_log_pid_get(), d->domain_str, file, line, fnc); } static void eina_log_print_prefix_threads_NOcolor_NOfile_func(FILE *fp, const Eina_Log_Domain *d, Eina_Log_Level level, const char *file __UNUSED__, const char *fnc, int line __UNUSED__) { Thread cur; DECLARE_LEVEL_NAME(level); cur = SELF(); if (IS_OTHER(cur)) { fprintf(fp, "%s<%u>:%s[T:%lu] %s() ", name, eina_log_pid_get(), d->domain_str, (unsigned long)cur, fnc); return; } fprintf(fp, "%s<%u>:%s %s() ", name, eina_log_pid_get(), d->domain_str, fnc); } static void eina_log_print_prefix_threads_NOcolor_file_NOfunc(FILE *fp, const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc __UNUSED__, int line) { Thread cur; DECLARE_LEVEL_NAME(level); cur = SELF(); if (IS_OTHER(cur)) { fprintf(fp, "%s<%u>:%s[T:%lu] %s:%d ", name, eina_log_pid_get(), d->domain_str, (unsigned long)cur, file, line); return; } fprintf(fp, "%s<%u>:%s %s:%d ", name, eina_log_pid_get(), d->domain_str, file, line); } /* threads, color */ static void eina_log_print_prefix_threads_color_file_func(FILE *fp, const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line) { Thread cur; DECLARE_LEVEL_NAME_COLOR(level); cur = SELF(); if (IS_OTHER(cur)) { # ifdef _WIN32 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color); fprintf(fp, "%s", name); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, ":"); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), eina_log_win32_color_get(d->domain_str)); fprintf(fp, "%s[T:", d->name); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, "[T:"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, "%lu", (unsigned long)cur); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, "] %s:%d ", file, line); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, "%s()", fnc); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, " "); # else fprintf(fp, "%s%s<%u>" EINA_COLOR_RESET ":%s[T:" EINA_COLOR_ORANGE "%lu" EINA_COLOR_RESET "] %s:%d " EINA_COLOR_HIGH "%s()" EINA_COLOR_RESET " ", color, name, eina_log_pid_get() ,d->domain_str, (unsigned long)cur, file, line, fnc); # endif return; } # ifdef _WIN32 eina_log_print_prefix_NOthreads_color_file_func(fp, d, level, file, fnc, line); # else fprintf(fp, "%s%s<%u>" EINA_COLOR_RESET ":%s %s:%d " EINA_COLOR_HIGH "%s()" EINA_COLOR_RESET " ", color, name, eina_log_pid_get(), d->domain_str, file, line, fnc); # endif } static void eina_log_print_prefix_threads_color_NOfile_func(FILE *fp, const Eina_Log_Domain *d, Eina_Log_Level level, const char *file __UNUSED__, const char *fnc, int line __UNUSED__) { Thread cur; DECLARE_LEVEL_NAME_COLOR(level); cur = SELF(); if (IS_OTHER(cur)) { # ifdef _WIN32 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color); fprintf(fp, "%s", name); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, ":"); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), eina_log_win32_color_get(d->domain_str)); fprintf(fp, "%s[T:", d->name); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, "[T:"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, "%lu", (unsigned long)cur); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, "%s()", fnc); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, " "); # else fprintf(fp, "%s%s<%u>" EINA_COLOR_RESET ":%s[T:" EINA_COLOR_ORANGE "%lu" EINA_COLOR_RESET "] " EINA_COLOR_HIGH "%s()" EINA_COLOR_RESET " ", color, name, eina_log_pid_get(), d->domain_str, (unsigned long)cur, fnc); # endif return; } # ifdef _WIN32 eina_log_print_prefix_NOthreads_color_NOfile_func(fp, d, level, file, fnc, line); # else fprintf(fp, "%s%s<%u>" EINA_COLOR_RESET ":%s " EINA_COLOR_HIGH "%s()" EINA_COLOR_RESET " ", color, name, eina_log_pid_get(), d->domain_str, fnc); # endif } static void eina_log_print_prefix_threads_color_file_NOfunc(FILE *fp, const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc __UNUSED__, int line) { Thread cur; DECLARE_LEVEL_NAME_COLOR(level); cur = SELF(); if (IS_OTHER(cur)) { # ifdef _WIN32 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color); fprintf(fp, "%s", name); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, ":"); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), eina_log_win32_color_get(d->domain_str)); fprintf(fp, "%s[T:", d->name); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, "[T:"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, "%lu", (unsigned long)cur); SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); fprintf(fp, "] %s:%d ", file, line); # else fprintf(fp, "%s%s<%u>" EINA_COLOR_RESET ":%s[T:" EINA_COLOR_ORANGE "%lu" EINA_COLOR_RESET "] %s:%d ", color, name, eina_log_pid_get(), d->domain_str, (unsigned long)cur, file, line); # endif return; } # ifdef _WIN32 eina_log_print_prefix_NOthreads_color_file_NOfunc(fp, d, level, file, fnc, line); # else fprintf(fp, "%s%s" EINA_COLOR_RESET ":%s %s:%d ", color, name, d->domain_str, file, line); # endif } #endif /* EFL_HAVE_THREADS */ static void (*_eina_log_print_prefix)(FILE *fp, const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line) = eina_log_print_prefix_NOthreads_color_file_func; static inline void eina_log_print_prefix_update(void) { if (_disable_file && _disable_function) { fprintf(stderr, "ERROR: cannot have " EINA_LOG_ENV_FILE_DISABLE " and " EINA_LOG_ENV_FUNCTION_DISABLE " set at the same time, will " "just disable function.\n"); _disable_file = 0; } #define S(NOthread, NOcolor, NOfile, NOfunc) \ _eina_log_print_prefix = \ eina_log_print_prefix_ ## NOthread ## threads_ ## NOcolor ## color_ ## \ NOfile \ ## file_ ## NOfunc ## func #ifdef EFL_HAVE_THREADS if (_threads_enabled) { if (_disable_color) { if (_disable_file) S(,NO,NO,); else if (_disable_function) S(,NO,,NO); else S(,NO,,); } else { if (_disable_file) S(,,NO,); else if (_disable_function) S(,,,NO); else S(,,,); } return; } #endif if (_disable_color) { if (_disable_file) S(NO,NO,NO,); else if (_disable_function) S(NO,NO,,NO); else S(NO,NO,,); } else { if (_disable_file) S(NO,,NO,); else if (_disable_function) S(NO,,,NO); else S(NO,,,); } #undef S } /* * Creates a colored domain name string. */ static const char * eina_log_domain_str_get(const char *name, const char *color) { const char *d; if (color) { size_t name_len; size_t color_len; name_len = strlen(name); color_len = strlen(color); d = malloc(sizeof(char) * (color_len + name_len + strlen(EINA_COLOR_RESET) + 1)); if (!d) return NULL; memcpy((char *)d, color, color_len); memcpy((char *)(d + color_len), name, name_len); memcpy((char *)(d + color_len + name_len), EINA_COLOR_RESET, strlen(EINA_COLOR_RESET)); ((char *)d)[color_len + name_len + strlen(EINA_COLOR_RESET)] = '\0'; } else d = strdup(name); return d; } /* * Setups a new logging domain to the name and color specified. Note that this * constructor acts upon an pre-allocated object. */ static Eina_Log_Domain * eina_log_domain_new(Eina_Log_Domain *d, const char *name, const char *color) { EINA_SAFETY_ON_NULL_RETURN_VAL(d, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL); d->level = EINA_LOG_LEVEL_UNKNOWN; d->deleted = EINA_FALSE; if ((color) && (!_disable_color)) d->domain_str = eina_log_domain_str_get(name, color); else d->domain_str = eina_log_domain_str_get(name, NULL); d->name = strdup(name); d->namelen = strlen(name); return d; } /* * Frees internal strings of a log domain, keeping the log domain itself as a * slot for next domain registers. */ static void eina_log_domain_free(Eina_Log_Domain *d) { EINA_SAFETY_ON_NULL_RETURN(d); if (d->domain_str) free((char *)d->domain_str); if (d->name) free((char *)d->name); } /* * Parses domain levels passed through the env var. */ static void eina_log_domain_parse_pendings(void) { const char *start; if (!(start = getenv(EINA_LOG_ENV_LEVELS))) return; // name1:level1,name2:level2,name3:level3,... while (1) { Eina_Log_Domain_Level_Pending *p; char *end = NULL; char *tmp = NULL; long int level; end = strchr(start, ':'); if (!end) break; // Parse level, keep going if failed level = strtol((char *)(end + 1), &tmp, 10); if (tmp == (end + 1)) goto parse_end; // Parse name p = malloc(sizeof(Eina_Log_Domain_Level_Pending) + end - start + 1); if (!p) break; p->namelen = end - start; memcpy((char *)p->name, start, end - start); ((char *)p->name)[end - start] = '\0'; p->level = level; _pending_list = eina_inlist_append(_pending_list, EINA_INLIST_GET(p)); parse_end: start = strchr(tmp, ','); if (start) start++; else break; } } static void eina_log_domain_parse_pending_globs(void) { const char *start; if (!(start = getenv(EINA_LOG_ENV_LEVELS_GLOB))) return; // name1:level1,name2:level2,name3:level3,... while (1) { Eina_Log_Domain_Level_Pending *p; char *end = NULL; char *tmp = NULL; long int level; end = strchr(start, ':'); if (!end) break; // Parse level, keep going if failed level = strtol((char *)(end + 1), &tmp, 10); if (tmp == (end + 1)) goto parse_end; // Parse name p = malloc(sizeof(Eina_Log_Domain_Level_Pending) + end - start + 1); if (!p) break; p->namelen = 0; /* not that useful */ memcpy((char *)p->name, start, end - start); ((char *)p->name)[end - start] = '\0'; p->level = level; _glob_list = eina_inlist_append(_glob_list, EINA_INLIST_GET(p)); parse_end: start = strchr(tmp, ','); if (start) start++; else break; } } static inline int eina_log_domain_register_unlocked(const char *name, const char *color) { Eina_Log_Domain_Level_Pending *pending = NULL; size_t namelen; unsigned int i; for (i = 0; i < _log_domains_count; i++) { if (_log_domains[i].deleted) { // Found a flagged slot, free domain_str and replace slot eina_log_domain_new(&_log_domains[i], name, color); goto finish_register; } } if (_log_domains_count >= _log_domains_allocated) { Eina_Log_Domain *tmp; size_t size; if (!_log_domains) // special case for init, eina itself will allocate a dozen of domains size = 24; else // grow 8 buckets to minimize reallocs size = _log_domains_allocated + 8; tmp = realloc(_log_domains, sizeof(Eina_Log_Domain) * size); if (tmp) { // Success! _log_domains = tmp; _log_domains_allocated = size; } else return -1; } // Use an allocated slot eina_log_domain_new(&_log_domains[i], name, color); _log_domains_count++; finish_register: namelen = _log_domains[i].namelen; EINA_INLIST_FOREACH(_pending_list, pending) { if ((namelen == pending->namelen) && (strcmp(pending->name, name) == 0)) { _log_domains[i].level = pending->level; break; } } if (_log_domains[i].level == EINA_LOG_LEVEL_UNKNOWN) { EINA_INLIST_FOREACH(_glob_list, pending) { if (!fnmatch(pending->name, name, 0)) { _log_domains[i].level = pending->level; break; } } } // Check if level is still UNKNOWN, set it to global if (_log_domains[i].level == EINA_LOG_LEVEL_UNKNOWN) _log_domains[i].level = _log_level; return i; } static inline Eina_Bool eina_log_term_color_supported(const char *term) { const char *tail; if (!term) return EINA_FALSE; tail = term + 1; switch (term[0]) { /* list of known to support color terminals, * take from gentoo's portage. */ case 'x': /* xterm and xterm-color */ return ((strncmp(tail, "term", sizeof("term") - 1) == 0) && ((tail[sizeof("term") - 1] == '\0') || (strcmp(tail + sizeof("term") - 1, "-color") == 0))); case 'E': /* Eterm */ case 'a': /* aterm */ case 'k': /* kterm */ return (strcmp(tail, "term") == 0); case 'r': /* xrvt or rxvt-unicode */ return ((strncmp(tail, "xvt", sizeof("xvt") - 1) == 0) && ((tail[sizeof("xvt") - 1] == '\0') || (strcmp(tail + sizeof("xvt") - 1, "-unicode") == 0))); case 's': /* screen */ return (strcmp(tail, "creen") == 0); case 'g': /* gnome */ return (strcmp(tail, "nome") == 0); case 'i': /* interix */ return (strcmp(tail, "nterix") == 0); default: return EINA_FALSE; } } static inline void eina_log_domain_unregister_unlocked(int domain) { Eina_Log_Domain *d; if ((unsigned int)domain >= _log_domains_count) return; d = &_log_domains[domain]; eina_log_domain_free(d); d->deleted = 1; } static inline void eina_log_print_unlocked(int domain, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, va_list args) { Eina_Log_Domain *d; #ifdef EINA_SAFETY_CHECKS if (EINA_UNLIKELY((unsigned int)domain >= _log_domains_count) || EINA_UNLIKELY(domain < 0)) { if (file && fnc && fmt) fprintf( stderr, "CRI: %s:%d %s() eina_log_print() unknown domain %d, original message format '%s'\n", file, line, fnc, domain, fmt); else fprintf( stderr, "CRI: eina_log_print() unknown domain %d, original message format '%s'\n", domain, fmt ? fmt : ""); if (_abort_on_critical) abort(); return; } #endif d = _log_domains + domain; #ifdef EINA_SAFETY_CHECKS if (EINA_UNLIKELY(d->deleted)) { fprintf(stderr, "ERR: eina_log_print() domain %d is deleted\n", domain); return; } #endif if (level > d->level) return; #ifdef _WIN32 { char *wfmt; char *tmp; wfmt = strdup(fmt); if (!wfmt) { fprintf(stderr, "ERR: %s: can not allocate memory\n", __FUNCTION__); return; } tmp = wfmt; while (strchr(tmp, '%')) { tmp++; if (*tmp == 'z') *tmp = 'I'; } _print_cb(d, level, file, fnc, line, wfmt, _print_cb_data, args); free(wfmt); } #else _print_cb(d, level, file, fnc, line, fmt, _print_cb_data, args); #endif if (EINA_UNLIKELY(_abort_on_critical) && EINA_UNLIKELY(level <= _abort_level_on_critical)) abort(); } #endif /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the log module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the log module of Eina. It is called by * eina_init(). * * @see eina_init() * * @warning Not-MT: just call this function from main thread! The * place where this function was called the first time is * considered the main thread. */ Eina_Bool eina_log_init(void) { #ifdef EINA_ENABLE_LOG const char *level, *tmp; int color_disable; assert((sizeof(_names) / sizeof(_names[0])) == EINA_LOG_LEVELS); #ifdef EINA_LOG_BACKTRACE if ((tmp = getenv(EINA_LOG_ENV_BACKTRACE))) _backtrace_level = atoi(tmp); #endif if ((tmp = getenv(EINA_LOG_ENV_COLOR_DISABLE))) color_disable = atoi(tmp); else color_disable = -1; /* Check if color is explicitly disabled */ if (color_disable == 1) _disable_color = EINA_TRUE; #ifndef _WIN32 /* color was not explicitly disabled or enabled, guess it */ else if (color_disable == -1) { if (!eina_log_term_color_supported(getenv("TERM"))) _disable_color = EINA_TRUE; else { /* if not a terminal, but redirected to a file, disable color */ int fd; if (_print_cb == eina_log_print_cb_stderr) fd = STDERR_FILENO; else if (_print_cb == eina_log_print_cb_stdout) fd = STDOUT_FILENO; else fd = -1; if ((fd >= 0) && (!isatty(fd))) _disable_color = EINA_TRUE; } } #endif if ((tmp = getenv(EINA_LOG_ENV_FILE_DISABLE)) && (atoi(tmp) == 1)) _disable_file = EINA_TRUE; if ((tmp = getenv(EINA_LOG_ENV_FUNCTION_DISABLE)) && (atoi(tmp) == 1)) _disable_function = EINA_TRUE; if ((tmp = getenv(EINA_LOG_ENV_ABORT)) && (atoi(tmp) == 1)) _abort_on_critical = EINA_TRUE; if ((tmp = getenv(EINA_LOG_ENV_ABORT_LEVEL))) _abort_level_on_critical = atoi(tmp); eina_log_print_prefix_update(); // Global log level if ((level = getenv(EINA_LOG_ENV_LEVEL))) _log_level = atoi(level); // Register UNKNOWN domain, the default logger EINA_LOG_DOMAIN_GLOBAL = eina_log_domain_register("", NULL); if (EINA_LOG_DOMAIN_GLOBAL < 0) { fprintf(stderr, "Failed to create global logging domain.\n"); return EINA_FALSE; } // Parse pending domains passed through EINA_LOG_LEVELS_GLOB eina_log_domain_parse_pending_globs(); // Parse pending domains passed through EINA_LOG_LEVELS eina_log_domain_parse_pendings(); #endif return EINA_TRUE; } /** * @internal * @brief Shut down the log module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the log module set up by * eina_log_init(). It is called by eina_shutdown(). * * @see eina_shutdown() * * @warning Not-MT: just call this function from main thread! The * place where eina_log_init() (eina_init()) was called the * first time is considered the main thread. */ Eina_Bool eina_log_shutdown(void) { #ifdef EINA_ENABLE_LOG Eina_Inlist *tmp; while (_log_domains_count--) { if (_log_domains[_log_domains_count].deleted) continue; eina_log_domain_free(&_log_domains[_log_domains_count]); } free(_log_domains); _log_domains = NULL; _log_domains_count = 0; _log_domains_allocated = 0; while (_glob_list) { tmp = _glob_list; _glob_list = _glob_list->next; free(tmp); } while (_pending_list) { tmp = _pending_list; _pending_list = _pending_list->next; free(tmp); } #endif return EINA_TRUE; } #ifdef EFL_HAVE_THREADS /** * @internal * @brief Activate the log mutex. * * This function activate the mutex in the eina log module. It is called by * eina_threads_init(). * * @see eina_threads_init() */ void eina_log_threads_init(void) { #ifdef EINA_ENABLE_LOG if (_threads_inited) return; _main_thread = SELF(); if (!INIT()) return; _threads_inited = EINA_TRUE; #endif } /** * @internal * @brief Shut down the log mutex. * * This function shuts down the mutex in the log module. * It is called by eina_threads_shutdown(). * * @see eina_threads_shutdown() */ void eina_log_threads_shutdown(void) { #ifdef EINA_ENABLE_LOG if (!_threads_inited) return; CHECK_MAIN(); SHUTDOWN(); _threads_enabled = EINA_FALSE; _threads_inited = EINA_FALSE; #endif } #endif /*============================================================================* * API * *============================================================================*/ /** * @cond LOCAL */ EAPI int EINA_LOG_DOMAIN_GLOBAL = 0; /** * @endcond */ EAPI void eina_log_threads_enable(void) { #if defined (EFL_HAVE_THREADS) && defined (EINA_ENABLE_LOG) if (_threads_enabled) return; if (!_threads_inited) eina_log_threads_init(); _threads_enabled = EINA_TRUE; eina_log_print_prefix_update(); #endif } EAPI void eina_log_print_cb_set(Eina_Log_Print_Cb cb, void *data) { #ifdef EINA_ENABLE_LOG LOG_LOCK(); _print_cb = cb; _print_cb_data = data; eina_log_print_prefix_update(); LOG_UNLOCK(); #else (void) cb; (void) data; #endif } EAPI void eina_log_level_set(int level) { #ifdef EINA_ENABLE_LOG _log_level = level; if (EINA_LIKELY((EINA_LOG_DOMAIN_GLOBAL >= 0) && ((unsigned int)EINA_LOG_DOMAIN_GLOBAL < _log_domains_count))) _log_domains[EINA_LOG_DOMAIN_GLOBAL].level = level; #else (void) level; #endif } EAPI int eina_log_level_get(void) { #ifdef EINA_ENABLE_LOG return _log_level; #else return 0; #endif } EAPI Eina_Bool eina_log_main_thread_check(void) { #if defined (EFL_HAVE_THREADS) && defined (EINA_ENABLE_LOG) return ((!_threads_enabled) || IS_MAIN(SELF())); #else return EINA_TRUE; #endif } EAPI void eina_log_color_disable_set(Eina_Bool disabled) { #ifdef EINA_ENABLE_LOG _disable_color = disabled; #else (void) disabled; #endif } EAPI Eina_Bool eina_log_color_disable_get(void) { #ifdef EINA_ENABLE_LOG return _disable_color; #else return EINA_TRUE; #endif } EAPI void eina_log_file_disable_set(Eina_Bool disabled) { #ifdef EINA_ENABLE_LOG _disable_file = disabled; #else (void) disabled; #endif } EAPI Eina_Bool eina_log_file_disable_get(void) { #ifdef EINA_ENABLE_LOG return _disable_file; #else return EINA_TRUE; #endif } EAPI void eina_log_function_disable_set(Eina_Bool disabled) { #ifdef EINA_ENABLE_LOG _disable_function = disabled; #else (void) disabled; #endif } EAPI Eina_Bool eina_log_function_disable_get(void) { #ifdef EINA_ENABLE_LOG return _disable_function; #else return EINA_TRUE; #endif } EAPI void eina_log_abort_on_critical_set(Eina_Bool abort_on_critical) { #ifdef EINA_ENABLE_LOG _abort_on_critical = abort_on_critical; #else (void) abort_on_critical; #endif } EAPI Eina_Bool eina_log_abort_on_critical_get(void) { #ifdef EINA_ENABLE_LOG return _abort_on_critical; #else return EINA_FALSE; #endif } EAPI void eina_log_abort_on_critical_level_set(int critical_level) { #ifdef EINA_ENABLE_LOG _abort_level_on_critical = critical_level; #else (void) critical_level; #endif } EAPI int eina_log_abort_on_critical_level_get(void) { #ifdef EINA_ENABLE_LOG return _abort_level_on_critical; #else return 0; #endif } EAPI int eina_log_domain_register(const char *name, const char *color) { #ifdef EINA_ENABLE_LOG int r; EINA_SAFETY_ON_NULL_RETURN_VAL(name, -1); LOG_LOCK(); r = eina_log_domain_register_unlocked(name, color); LOG_UNLOCK(); return r; #else (void) name; (void) color; return 0; #endif } EAPI void eina_log_domain_unregister(int domain) { #ifdef EINA_ENABLE_LOG EINA_SAFETY_ON_FALSE_RETURN(domain >= 0); LOG_LOCK(); eina_log_domain_unregister_unlocked(domain); LOG_UNLOCK(); #else (void) domain; #endif } EAPI void eina_log_domain_level_set(const char *domain_name, int level) { #ifdef EINA_ENABLE_LOG Eina_Log_Domain_Level_Pending *pending; size_t namelen; unsigned int i; EINA_SAFETY_ON_NULL_RETURN(domain_name); namelen = strlen(domain_name); for (i = 0; i < _log_domains_count; i++) { if (_log_domains[i].deleted) continue; if ((namelen != _log_domains[i].namelen) || (strcmp(_log_domains[i].name, domain_name) != 0)) continue; _log_domains[i].level = level; return; } EINA_INLIST_FOREACH(_pending_list, pending) { if ((namelen == pending->namelen) && (strcmp(pending->name, domain_name) == 0)) { pending->level = level; return; } } pending = malloc(sizeof(Eina_Log_Domain_Level_Pending) + namelen + 1); if (!pending) return; pending->level = level; pending->namelen = namelen; memcpy(pending->name, domain_name, namelen + 1); _pending_list = eina_inlist_append(_pending_list, EINA_INLIST_GET(pending)); #else (void) domain_name; (void) level; #endif } EAPI int eina_log_domain_level_get(const char *domain_name) { #ifdef EINA_ENABLE_LOG Eina_Log_Domain_Level_Pending *pending; size_t namelen; unsigned int i; EINA_SAFETY_ON_NULL_RETURN_VAL(domain_name, EINA_LOG_LEVEL_UNKNOWN); namelen = strlen(domain_name); for (i = 0; i < _log_domains_count; i++) { if (_log_domains[i].deleted) continue; if ((namelen != _log_domains[i].namelen) || (strcmp(_log_domains[i].name, domain_name) != 0)) continue; return _log_domains[i].level; } EINA_INLIST_FOREACH(_pending_list, pending) { if ((namelen == pending->namelen) && (strcmp(pending->name, domain_name) == 0)) return pending->level; } EINA_INLIST_FOREACH(_glob_list, pending) { if (!fnmatch(pending->name, domain_name, 0)) return pending->level; } return _log_level; #else (void) domain_name; return 0; #endif } EAPI int eina_log_domain_registered_level_get(int domain) { #ifdef EINA_ENABLE_LOG EINA_SAFETY_ON_FALSE_RETURN_VAL(domain >= 0, EINA_LOG_LEVEL_UNKNOWN); EINA_SAFETY_ON_FALSE_RETURN_VAL((unsigned int)domain < _log_domains_count, EINA_LOG_LEVEL_UNKNOWN); EINA_SAFETY_ON_TRUE_RETURN_VAL(_log_domains[domain].deleted, EINA_LOG_LEVEL_UNKNOWN); return _log_domains[domain].level; #else (void) domain; return 0; #endif } #ifdef EINA_LOG_BACKTRACE # define DISPLAY_BACKTRACE(File, Level) \ if (EINA_UNLIKELY(Level < _backtrace_level)) \ { \ void *bt[256]; \ char **strings; \ int btlen; \ int i; \ \ btlen = backtrace((void **)bt, 256); \ strings = backtrace_symbols((void **)bt, btlen); \ fprintf(File, "*** Backtrace ***\n"); \ for (i = 0; i < btlen; ++i) \ fprintf(File, "%s\n", strings[i]); \ free(strings); \ } #else # define DISPLAY_BACKTRACE(File, Level) #endif EAPI void eina_log_print_cb_stderr(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, __UNUSED__ void *data, va_list args) { #ifdef EINA_ENABLE_LOG _eina_log_print_prefix(stderr, d, level, file, fnc, line); vfprintf(stderr, fmt, args); putc('\n', stderr); DISPLAY_BACKTRACE(stderr, level); #else (void) d; (void) level; (void) file; (void) fnc; (void) line; (void) fmt; (void) data; (void) args; #endif } EAPI void eina_log_print_cb_stdout(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, __UNUSED__ void *data, va_list args) { #ifdef EINA_ENABLE_LOG _eina_log_print_prefix(stdout, d, level, file, fnc, line); vprintf(fmt, args); putchar('\n'); DISPLAY_BACKTRACE(stdout, level); #else (void) d; (void) level; (void) file; (void) fnc; (void) line; (void) fmt; (void) data; (void) args; #endif } EAPI void eina_log_print_cb_file(const Eina_Log_Domain *d, __UNUSED__ Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args) { #ifdef EINA_ENABLE_LOG FILE *f = data; #ifdef EFL_HAVE_THREADS if (_threads_enabled) { Thread cur; cur = SELF(); if (IS_OTHER(cur)) { fprintf(f, "%s[T:%lu] %s:%d %s() ", d->name, (unsigned long)cur, file, line, fnc); goto end; } } #endif fprintf(f, "%s<%u> %s:%d %s() ", d->name, eina_log_pid_get(), file, line, fnc); DISPLAY_BACKTRACE(f, level); #ifdef EFL_HAVE_THREADS end: #endif vfprintf(f, fmt, args); putc('\n', f); #else (void) d; (void) file; (void) fnc; (void) line; (void) fmt; (void) data; (void) args; #endif } EAPI void eina_log_print(int domain, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, ...) { #ifdef EINA_ENABLE_LOG va_list args; #ifdef EINA_SAFETY_CHECKS if (EINA_UNLIKELY(!file)) { fputs("ERR: eina_log_print() file == NULL\n", stderr); return; } if (EINA_UNLIKELY(!fnc)) { fputs("ERR: eina_log_print() fnc == NULL\n", stderr); return; } if (EINA_UNLIKELY(!fmt)) { fputs("ERR: eina_log_print() fmt == NULL\n", stderr); return; } #endif va_start(args, fmt); LOG_LOCK(); eina_log_print_unlocked(domain, level, file, fnc, line, fmt, args); LOG_UNLOCK(); va_end(args); #else (void) domain; (void) level; (void) file; (void) fnc; (void) line; (void) fmt; #endif } EAPI void eina_log_vprint(int domain, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, va_list args) { #ifdef EINA_ENABLE_LOG #ifdef EINA_SAFETY_CHECKS if (EINA_UNLIKELY(!file)) { fputs("ERR: eina_log_print() file == NULL\n", stderr); return; } if (EINA_UNLIKELY(!fnc)) { fputs("ERR: eina_log_print() fnc == NULL\n", stderr); return; } if (EINA_UNLIKELY(!fmt)) { fputs("ERR: eina_log_print() fmt == NULL\n", stderr); return; } #endif LOG_LOCK(); eina_log_print_unlocked(domain, level, file, fnc, line, fmt, args); LOG_UNLOCK(); #else (void) domain; (void) level; (void) file; (void) fnc; (void) line; (void) fmt; (void) args; #endif } EAPI void eina_log_console_color_set(FILE *fp, const char *color) { #ifdef EINA_ENABLE_LOG EINA_SAFETY_ON_NULL_RETURN(fp); EINA_SAFETY_ON_NULL_RETURN(color); if (_disable_color) return; #ifdef _WIN32 int attr = eina_log_win32_color_convert(color, NULL); HANDLE *handle; if (!attr) return; if (fp == stderr) handle = GetStdHandle(STD_ERROR_HANDLE); else if (fp == stdout) handle = GetStdHandle(STD_OUTPUT_HANDLE); else { /* Do we have a way to convert FILE* to HANDLE? * Should we use it? */ return; } SetConsoleTextAttribute(handle, attr); #else fputs(color, fp); #endif #else (void)color; #endif } eina-1.7.10/src/lib/eina_file.c0000664000175000017500000010260712247136425013067 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga, Vincent Torri * Copyright (C) 2010-2011 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef HAVE_ALLOCA_H # include #elif defined __GNUC__ # define alloca __builtin_alloca #elif defined _AIX # define alloca __alloca #elif defined _MSC_VER # include # define alloca _alloca #else # include # ifdef __cplusplus extern "C" # endif void *alloca (size_t); #endif #include #include #include #include #ifdef HAVE_DIRENT_H # include #endif #include #include #include #ifdef HAVE_SYS_MMAN_H # include #endif #include #define PATH_DELIM '/' #include "eina_config.h" #include "eina_private.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_file.h" #include "eina_stringshare.h" #include "eina_hash.h" #include "eina_list.h" #include "eina_lock.h" #include "eina_mmap.h" #include "eina_log.h" #include "eina_xattr.h" #ifdef HAVE_ESCAPE # include #endif /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ #ifndef EINA_LOG_COLOR_DEFAULT #define EINA_LOG_COLOR_DEFAULT EINA_COLOR_CYAN #endif #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_file_log_dom, __VA_ARGS__) #ifdef WRN #undef WRN #endif #define WRN(...) EINA_LOG_DOM_WARN(_eina_file_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_file_log_dom, __VA_ARGS__) #define EINA_SMALL_PAGE 4096 # define EINA_HUGE_PAGE 16 * 1024 * 1024 #ifdef HAVE_DIRENT_H typedef struct _Eina_File_Iterator Eina_File_Iterator; struct _Eina_File_Iterator { Eina_Iterator iterator; DIR *dirp; int length; char dir[1]; }; #endif struct _Eina_File { const char *filename; Eina_Hash *map; Eina_Hash *rmap; void *global_map; Eina_Lock lock; unsigned long long length; time_t mtime; ino_t inode; #ifdef _STAT_VER_LINUX unsigned long int mtime_nsec; #endif int refcount; int global_refcount; int fd; Eina_Bool shared : 1; Eina_Bool delete_me : 1; Eina_Bool global_faulty : 1; }; typedef struct _Eina_File_Map Eina_File_Map; struct _Eina_File_Map { void *map; unsigned long int offset; unsigned long int length; int refcount; Eina_Bool hugetlb : 1; Eina_Bool faulty : 1; }; static Eina_Hash *_eina_file_cache = NULL; static Eina_Lock _eina_file_lock_cache; static int _eina_file_log_dom = -1; /* * This complex piece of code is needed due to possible race condition. * The code and description of the issue can be found at : * http://womble.decadent.org.uk/readdir_r-advisory.html */ #ifdef HAVE_DIRENT_H static long _eina_name_max(DIR *dirp) { long name_max; #if defined(HAVE_FPATHCONF) && defined(HAVE_DIRFD) && defined(_PC_NAME_MAX) name_max = fpathconf(dirfd(dirp), _PC_NAME_MAX); if (name_max == -1) { # if defined(NAME_MAX) name_max = (NAME_MAX > 255) ? NAME_MAX : 255; # else name_max = PATH_MAX; # endif } #else # if defined(NAME_MAX) name_max = (NAME_MAX > 255) ? NAME_MAX : 255; # else # ifdef _PC_NAME_MAX # warning "buffer size for readdir_r cannot be determined safely, best effort, but racy" name_max = pathconf(dirp, _PC_NAME_MAX); # else # error "buffer size for readdir_r cannot be determined safely" # endif # endif #endif return name_max; } static size_t _eina_dirent_buffer_size(DIR *dirp) { long name_max = _eina_name_max(dirp); size_t name_end; name_end = (size_t) offsetof(struct dirent, d_name) + name_max + 1; return (name_end > sizeof (struct dirent) ? name_end : sizeof (struct dirent)); } static Eina_Bool _eina_file_ls_iterator_next(Eina_File_Iterator *it, void **data) { struct dirent *dp; char *name; size_t length; dp = alloca(_eina_dirent_buffer_size(it->dirp)); do { if (readdir_r(it->dirp, dp, &dp)) return EINA_FALSE; if (dp == NULL) return EINA_FALSE; } while ((dp->d_name[0] == '.') && ((dp->d_name[1] == '\0') || ((dp->d_name[1] == '.') && (dp->d_name[2] == '\0')))); #ifdef _DIRENT_HAVE_D_NAMLEN length = dp->d_namlen; #else length = strlen(dp->d_name); #endif name = alloca(length + 2 + it->length); memcpy(name, it->dir, it->length); memcpy(name + it->length, "/", 1); memcpy(name + it->length + 1, dp->d_name, length + 1); *data = (char *)eina_stringshare_add(name); return EINA_TRUE; } static DIR * _eina_file_ls_iterator_container(Eina_File_Iterator *it) { return it->dirp; } static void _eina_file_ls_iterator_free(Eina_File_Iterator *it) { closedir(it->dirp); EINA_MAGIC_SET(&it->iterator, 0); free(it); } typedef struct _Eina_File_Direct_Iterator Eina_File_Direct_Iterator; struct _Eina_File_Direct_Iterator { Eina_Iterator iterator; DIR *dirp; int length; Eina_File_Direct_Info info; char dir[1]; }; static Eina_Bool _eina_file_direct_ls_iterator_next(Eina_File_Direct_Iterator *it, void **data) { struct dirent *dp; size_t length; dp = alloca(_eina_dirent_buffer_size(it->dirp)); do { if (readdir_r(it->dirp, dp, &dp)) return EINA_FALSE; if (!dp) return EINA_FALSE; #ifdef _DIRENT_HAVE_D_NAMLEN length = dp->d_namlen; #else length = strlen(dp->d_name); #endif if (it->info.name_start + length + 1 >= EINA_PATH_MAX) continue; } while ((dp->d_name[0] == '.') && ((dp->d_name[1] == '\0') || ((dp->d_name[1] == '.') && (dp->d_name[2] == '\0')))); memcpy(it->info.path + it->info.name_start, dp->d_name, length); it->info.name_length = length; it->info.path_length = it->info.name_start + length; it->info.path[it->info.path_length] = '\0'; #ifdef _DIRENT_HAVE_D_TYPE switch (dp->d_type) { case DT_FIFO: it->info.type = EINA_FILE_FIFO; break; case DT_CHR: it->info.type = EINA_FILE_CHR; break; case DT_DIR: it->info.type = EINA_FILE_DIR; break; case DT_BLK: it->info.type = EINA_FILE_BLK; break; case DT_REG: it->info.type = EINA_FILE_REG; break; case DT_LNK: it->info.type = EINA_FILE_LNK; break; case DT_SOCK: it->info.type = EINA_FILE_SOCK; break; case DT_WHT: it->info.type = EINA_FILE_WHT; break; default: it->info.type = EINA_FILE_UNKNOWN; break; } #else it->info.type = EINA_FILE_UNKNOWN; #endif *data = &it->info; return EINA_TRUE; } static DIR * _eina_file_direct_ls_iterator_container(Eina_File_Direct_Iterator *it) { return it->dirp; } static void _eina_file_direct_ls_iterator_free(Eina_File_Direct_Iterator *it) { closedir(it->dirp); EINA_MAGIC_SET(&it->iterator, 0); free(it); } static Eina_Bool _eina_file_stat_ls_iterator_next(Eina_File_Direct_Iterator *it, void **data) { Eina_Stat st; if (!_eina_file_direct_ls_iterator_next(it, data)) return EINA_FALSE; if (it->info.type == EINA_FILE_UNKNOWN) { if (eina_file_statat(it->dirp, &it->info, &st) != 0) it->info.type = EINA_FILE_UNKNOWN; } return EINA_TRUE; } #endif static void _eina_file_real_close(Eina_File *file) { if (file->refcount != 0) return; eina_hash_free(file->rmap); eina_hash_free(file->map); if (file->global_map != MAP_FAILED) munmap(file->global_map, file->length); close(file->fd); free(file); } static void _eina_file_map_close(Eina_File_Map *map) { munmap(map->map, map->length); free(map); } static unsigned int _eina_file_map_key_length(const void *key __UNUSED__) { return sizeof (unsigned long int) * 2; } static int _eina_file_map_key_cmp(const unsigned long int *key1, int key1_length __UNUSED__, const unsigned long int *key2, int key2_length __UNUSED__) { if (key1[0] - key2[0] == 0) return key1[1] - key2[1]; return key1[0] - key2[0]; } static int _eina_file_map_key_hash(const unsigned long int *key, int key_length __UNUSED__) { return eina_hash_int64(&key[0], sizeof (unsigned long int)) ^ eina_hash_int64(&key[1], sizeof (unsigned long int)); } #ifndef MAP_POPULATE static unsigned int _eina_file_map_populate(char *map, unsigned int size, Eina_Bool hugetlb) { unsigned int r = 0xDEADBEEF; unsigned int i; unsigned int s; s = hugetlb ? EINA_HUGE_PAGE : EINA_SMALL_PAGE; for (i = 0; i < size; i += s) r ^= map[i]; r ^= map[size]; return r; } #endif static int _eina_file_map_rule_apply(Eina_File_Populate rule, void *addr, unsigned long int size, Eina_Bool hugetlb) { int tmp = 42; int flag = MADV_RANDOM; switch (rule) { case EINA_FILE_RANDOM: flag = MADV_RANDOM; break; case EINA_FILE_SEQUENTIAL: flag = MADV_SEQUENTIAL; break; case EINA_FILE_POPULATE: flag = MADV_WILLNEED; break; case EINA_FILE_WILLNEED: flag = MADV_WILLNEED; break; } madvise(addr, size, flag); #ifndef MAP_POPULATE if (rule == EINA_FILE_POPULATE) tmp ^= _eina_file_map_populate(addr, size, hugetlb); #else (void) hugetlb; #endif return tmp; } static Eina_Bool _eina_file_timestamp_compare(Eina_File *f, struct stat *st) { if (f->mtime != st->st_mtime) return EINA_FALSE; if (f->length != (unsigned long long) st->st_size) return EINA_FALSE; if (f->inode != st->st_ino) return EINA_FALSE; #ifdef _STAT_VER_LINUX # if (defined __USE_MISC && defined st_mtime) if (f->mtime_nsec != (unsigned long int)st->st_mtim.tv_nsec) return EINA_FALSE; # else if (f->mtime_nsec != (unsigned long int)st->st_mtimensec) return EINA_FALSE; # endif #endif return EINA_TRUE; } static void slprintf(char *str, size_t size, const char *format, ...) { va_list ap; va_start(ap, format); vsnprintf(str, size, format, ap); str[size - 1] = 0; va_end(ap); } static char * _eina_file_escape(const char *path, int *length) { char *result; char *p; char *q; size_t len; result = strdup(path ? path : ""); p = result; q = result; if (!result) return NULL; if (length) len = *length; else len = strlen(result); while ((p = strchr(p, '/'))) { // remove double `/' if (p[1] == '/') { memmove(p, p + 1, --len - (p - result)); result[len] = '\0'; } else if (p[1] == '.' && p[2] == '.') { // remove `/../' if (p[3] == '/') { char tmp; len -= p + 3 - q; memmove(q, p + 3, len - (q - result)); result[len] = '\0'; p = q; /* Update q correctly. */ tmp = *p; *p = '\0'; q = strrchr(result, '/'); if (!q) q = result; *p = tmp; } else // remove '/..$' if (p[3] == '\0') { len -= p + 2 - q; result[len] = '\0'; q = p; ++p; } else { q = p; ++p; } } else { q = p; ++p; } } if (length) *length = len; return result; } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ Eina_Bool eina_file_init(void) { _eina_file_log_dom = eina_log_domain_register("eina_file", EINA_LOG_COLOR_DEFAULT); if (_eina_file_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_file"); return EINA_FALSE; } _eina_file_cache = eina_hash_string_djb2_new(NULL); if (!_eina_file_cache) { ERR("Could not create cache."); eina_log_domain_unregister(_eina_file_log_dom); _eina_file_log_dom = -1; return EINA_FALSE; } eina_lock_new(&_eina_file_lock_cache); return EINA_TRUE; } Eina_Bool eina_file_shutdown(void) { if (eina_hash_population(_eina_file_cache) > 0) { Eina_Iterator *it; const char *key; it = eina_hash_iterator_key_new(_eina_file_cache); EINA_ITERATOR_FOREACH(it, key) ERR("File [%s] still open !", key); eina_iterator_free(it); } eina_hash_free(_eina_file_cache); eina_lock_free(&_eina_file_lock_cache); eina_log_domain_unregister(_eina_file_log_dom); _eina_file_log_dom = -1; return EINA_TRUE; } void eina_file_mmap_faulty(void *addr, long page_size) { Eina_File_Map *m; Eina_File *f; Eina_Iterator *itf; Eina_Iterator *itm; /* NOTE: I actually don't know if other thread are running, I will try to take the lock. It may be possible that if other thread are not running and they were in the middle of accessing an Eina_File this lock are still taken and we will result as a deadlock. */ eina_lock_take(&_eina_file_lock_cache); itf = eina_hash_iterator_data_new(_eina_file_cache); EINA_ITERATOR_FOREACH(itf, f) { Eina_Bool faulty = EINA_FALSE; eina_lock_take(&f->lock); if (f->global_map) { if ((unsigned char *) addr < (((unsigned char *)f->global_map) + f->length) && (((unsigned char *) addr) + page_size) >= (unsigned char *) f->global_map) { f->global_faulty = EINA_TRUE; faulty = EINA_TRUE; } } if (!faulty) { itm = eina_hash_iterator_data_new(f->map); EINA_ITERATOR_FOREACH(itm, m) { if ((unsigned char *) addr < (((unsigned char *)m->map) + m->length) && (((unsigned char *) addr) + page_size) >= (unsigned char *) m->map) { m->faulty = EINA_TRUE; faulty = EINA_TRUE; break; } } eina_iterator_free(itm); } eina_lock_release(&f->lock); if (faulty) break; } eina_iterator_free(itf); eina_lock_release(&_eina_file_lock_cache); } /*============================================================================* * API * *============================================================================*/ EAPI char * eina_file_path_sanitize(const char *path) { char *result = NULL; int len; if (!path) return NULL; len = strlen(path); if (*path != '/') { char cwd[PATH_MAX]; char *tmp = NULL; tmp = getcwd(cwd, PATH_MAX); if (!tmp) return NULL; len += strlen(cwd) + 2; tmp = alloca(sizeof (char) * len); slprintf(tmp, len, "%s/%s", cwd, path); result = tmp; } return _eina_file_escape(result ? result : path, &len); } EAPI Eina_Bool eina_file_dir_list(const char *dir, Eina_Bool recursive, Eina_File_Dir_List_Cb cb, void *data) { Eina_File_Direct_Info *info; Eina_Iterator *it; EINA_SAFETY_ON_NULL_RETURN_VAL(cb, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(dir, EINA_FALSE); EINA_SAFETY_ON_TRUE_RETURN_VAL(dir[0] == '\0', EINA_FALSE); it = eina_file_stat_ls(dir); if (!it) return EINA_FALSE; EINA_ITERATOR_FOREACH(it, info) { cb(info->path + info->name_start, dir, data); if (recursive == EINA_TRUE && info->type == EINA_FILE_DIR) { eina_file_dir_list(info->path, recursive, cb, data); } } eina_iterator_free(it); return EINA_TRUE; } EAPI Eina_Array * eina_file_split(char *path) { Eina_Array *ea; char *current; size_t length; EINA_SAFETY_ON_NULL_RETURN_VAL(path, NULL); ea = eina_array_new(16); if (!ea) return NULL; for (current = strchr(path, PATH_DELIM); current; path = current + 1, current = strchr(path, PATH_DELIM)) { length = current - path; if (length <= 0) continue; eina_array_push(ea, path); *current = '\0'; } if (*path != '\0') eina_array_push(ea, path); return ea; } EAPI Eina_Iterator * eina_file_ls(const char *dir) { #ifdef HAVE_DIRENT_H Eina_File_Iterator *it; size_t length; EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL); length = strlen(dir); if (length < 1) return NULL; it = calloc(1, sizeof (Eina_File_Iterator) + length); if (!it) return NULL; EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->dirp = opendir(dir); if (!it->dirp) { free(it); return NULL; } memcpy(it->dir, dir, length + 1); if (dir[length - 1] != '/') it->length = length; else it->length = length - 1; it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_file_ls_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER( _eina_file_ls_iterator_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_ls_iterator_free); return &it->iterator; #else (void) dir; return NULL; #endif } EAPI Eina_Iterator * eina_file_direct_ls(const char *dir) { #ifdef HAVE_DIRENT_H Eina_File_Direct_Iterator *it; size_t length; EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL); length = strlen(dir); if (length < 1) return NULL; it = calloc(1, sizeof(Eina_File_Direct_Iterator) + length); if (!it) return NULL; EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->dirp = opendir(dir); if (!it->dirp) { free(it); return NULL; } if (length + _eina_name_max(it->dirp) + 2 >= EINA_PATH_MAX) { _eina_file_direct_ls_iterator_free(it); return NULL; } memcpy(it->dir, dir, length + 1); it->length = length; memcpy(it->info.path, dir, length); if (dir[length - 1] == '/') it->info.name_start = length; else { it->info.path[length] = '/'; it->info.name_start = length + 1; } it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_file_direct_ls_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER( _eina_file_direct_ls_iterator_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_direct_ls_iterator_free); return &it->iterator; #else (void) dir; return NULL; #endif } EAPI Eina_Iterator * eina_file_stat_ls(const char *dir) { #ifdef HAVE_DIRENT_H Eina_File_Direct_Iterator *it; size_t length; EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL); length = strlen(dir); if (length < 1) return NULL; it = calloc(1, sizeof(Eina_File_Direct_Iterator) + length); if (!it) return NULL; EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->dirp = opendir(dir); if (!it->dirp) { free(it); return NULL; } if (length + _eina_name_max(it->dirp) + 2 >= EINA_PATH_MAX) { _eina_file_direct_ls_iterator_free(it); return NULL; } memcpy(it->dir, dir, length + 1); it->length = length; memcpy(it->info.path, dir, length); if (dir[length - 1] == '/') it->info.name_start = length; else { it->info.path[length] = '/'; it->info.name_start = length + 1; } it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_file_stat_ls_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER( _eina_file_direct_ls_iterator_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_direct_ls_iterator_free); return &it->iterator; #else (void) dir; return NULL; #endif } EAPI Eina_File * eina_file_open(const char *path, Eina_Bool shared) { Eina_File *file; Eina_File *n; char *filename; struct stat file_stat; int fd = -1; #ifdef HAVE_EXECVP int flags; #endif EINA_SAFETY_ON_NULL_RETURN_VAL(path, NULL); filename = eina_file_path_sanitize(path); if (!filename) return NULL; if (shared) #ifdef HAVE_SHM_OPEN fd = shm_open(filename, O_RDONLY, S_IRWXU | S_IRWXG | S_IRWXO); #else goto on_error; #endif else fd = open(filename, O_RDONLY, S_IRWXU | S_IRWXG | S_IRWXO); if (fd < 0) goto on_error; #ifdef HAVE_EXECVP flags = fcntl(fd, F_GETFD); if (flags == -1) goto on_error; flags |= FD_CLOEXEC; if (fcntl(fd, F_SETFD, flags) == -1) goto on_error; #endif if (fstat(fd, &file_stat)) goto on_error; eina_lock_take(&_eina_file_lock_cache); file = eina_hash_find(_eina_file_cache, filename); if ((file) && !_eina_file_timestamp_compare(file, &file_stat)) { file->delete_me = EINA_TRUE; eina_hash_del(_eina_file_cache, file->filename, file); file = NULL; } if (!file) { n = malloc(sizeof(Eina_File) + strlen(filename) + 1); if (!n) { eina_lock_release(&_eina_file_lock_cache); goto on_error; } memset(n, 0, sizeof(Eina_File)); n->filename = (char*) (n + 1); strcpy((char*) n->filename, filename); n->map = eina_hash_new(EINA_KEY_LENGTH(_eina_file_map_key_length), EINA_KEY_CMP(_eina_file_map_key_cmp), EINA_KEY_HASH(_eina_file_map_key_hash), EINA_FREE_CB(_eina_file_map_close), 3); n->rmap = eina_hash_pointer_new(NULL); n->global_map = MAP_FAILED; n->length = file_stat.st_size; n->mtime = file_stat.st_mtime; #ifdef _STAT_VER_LINUX # if (defined __USE_MISC && defined st_mtime) n->mtime_nsec = (unsigned long int)file_stat.st_mtim.tv_nsec; # else n->mtime_nsec = (unsigned long int)file_stat.st_mtimensec; # endif #endif n->inode = file_stat.st_ino; n->fd = fd; n->shared = shared; eina_lock_new(&n->lock); eina_hash_direct_add(_eina_file_cache, n->filename, n); } else { close(fd); n = file; } eina_lock_take(&n->lock); n->refcount++; eina_lock_release(&n->lock); eina_lock_release(&_eina_file_lock_cache); free(filename); return n; on_error: free(filename); if (fd >= 0) close(fd); return NULL; } EAPI void eina_file_close(Eina_File *file) { Eina_Bool leave = EINA_TRUE; EINA_SAFETY_ON_NULL_RETURN(file); eina_lock_take(&_eina_file_lock_cache); eina_lock_take(&file->lock); file->refcount--; if (file->refcount == 0) leave = EINA_FALSE; eina_lock_release(&file->lock); if (leave) goto end; if (eina_hash_find(_eina_file_cache, file->filename) == file) eina_hash_del(_eina_file_cache, file->filename, file); _eina_file_real_close(file); end: eina_lock_release(&_eina_file_lock_cache); } EAPI size_t eina_file_size_get(Eina_File *file) { EINA_SAFETY_ON_NULL_RETURN_VAL(file, 0); return file->length; } EAPI time_t eina_file_mtime_get(Eina_File *file) { EINA_SAFETY_ON_NULL_RETURN_VAL(file, 0); return file->mtime; } EAPI const char * eina_file_filename_get(Eina_File *file) { EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); return file->filename; } EAPI void * eina_file_map_all(Eina_File *file, Eina_File_Populate rule) { int flags = MAP_SHARED; void *ret = NULL; EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); // bsd people will lack this feature #ifdef MAP_POPULATE if (rule == EINA_FILE_POPULATE) flags |= MAP_POPULATE; #endif #ifdef MAP_HUGETLB if (file->length > EINA_HUGE_PAGE) flags |= MAP_HUGETLB; #endif eina_mmap_safety_enabled_set(EINA_TRUE); eina_lock_take(&file->lock); if (file->global_map == MAP_FAILED) file->global_map = mmap(NULL, file->length, PROT_READ, flags, file->fd, 0); #ifdef MAP_HUGETLB if ((file->global_map == MAP_FAILED) && (flags & MAP_HUGETLB)) { flags &= ~MAP_HUGETLB; file->global_map = mmap(NULL, file->length, PROT_READ, flags, file->fd, 0); } #endif if (file->global_map != MAP_FAILED) { Eina_Bool hugetlb = EINA_FALSE; #ifdef MAP_HUGETLB hugetlb = !!(flags & MAP_HUGETLB); #endif _eina_file_map_rule_apply(rule, file->global_map, file->length, hugetlb); file->global_refcount++; ret = file->global_map; } eina_lock_release(&file->lock); return ret; } typedef struct _Eina_Lines_Iterator Eina_Lines_Iterator; struct _Eina_Lines_Iterator { Eina_Iterator iterator; Eina_File *fp; const char *map; const char *end; int boundary; Eina_File_Line current; }; /* search '\r' and '\n' by preserving cache locality and page locality in doing a search inside 4K boundary. */ static inline const char * _eina_fine_eol(const char *start, int boundary, const char *end) { const char *cr; const char *lf; unsigned long long chunk; while (start < end) { chunk = start + boundary < end ? boundary : end - start; cr = memchr(start, '\r', chunk); lf = memchr(start, '\n', chunk); if (cr) { if (lf && lf < cr) return lf + 1; return cr + 1; } else if (lf) return lf + 1; start += chunk; boundary = 4096; } return end; } static Eina_Bool _eina_file_map_lines_iterator_next(Eina_Lines_Iterator *it, void **data) { const char *eol; unsigned char match; if (it->current.end >= it->end) return EINA_FALSE; match = *it->current.end; while ((*it->current.end == '\n' || *it->current.end == '\r') && it->current.end < it->end) { if (match == *it->current.end) it->current.index++; it->current.end++; } it->current.index++; if (it->current.end == it->end) return EINA_FALSE; eol = _eina_fine_eol(it->current.end, it->boundary, it->end); it->boundary = (uintptr_t) eol & 0x3FF; if (it->boundary == 0) it->boundary = 4096; it->current.start = it->current.end; it->current.end = eol; it->current.length = eol - it->current.start - 1; *data = &it->current; return EINA_TRUE; } static Eina_File * _eina_file_map_lines_iterator_container(Eina_Lines_Iterator *it) { return it->fp; } static void _eina_file_map_lines_iterator_free(Eina_Lines_Iterator *it) { eina_file_map_free(it->fp, (void*) it->map); eina_file_close(it->fp); EINA_MAGIC_SET(&it->iterator, 0); free(it); } EAPI Eina_Iterator * eina_file_map_lines(Eina_File *file) { Eina_Lines_Iterator *it; EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); if (file->length == 0) return NULL; it = calloc(1, sizeof (Eina_Lines_Iterator)); if (!it) return NULL; EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->map = eina_file_map_all(file, EINA_FILE_SEQUENTIAL); if (!it->map) { free(it); return NULL; } eina_lock_take(&file->lock); file->refcount++; eina_lock_release(&file->lock); it->fp = file; it->boundary = 4096; it->current.start = it->map; it->current.end = it->current.start; it->current.index = 0; it->current.length = 0; it->end = it->map + it->fp->length; it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_file_map_lines_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_file_map_lines_iterator_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_file_map_lines_iterator_free); return &it->iterator; } EAPI void * eina_file_map_new(Eina_File *file, Eina_File_Populate rule, unsigned long int offset, unsigned long int length) { Eina_File_Map *map; unsigned long int key[2]; EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); if (offset > file->length) return NULL; if (offset + length > file->length) return NULL; if (offset == 0 && length == file->length) return eina_file_map_all(file, rule); key[0] = offset; key[1] = length; eina_mmap_safety_enabled_set(EINA_TRUE); eina_lock_take(&file->lock); map = eina_hash_find(file->map, &key); if (!map) { int flags = MAP_SHARED; // bsd people will lack this feature #ifdef MAP_POPULATE if (rule == EINA_FILE_POPULATE) flags |= MAP_POPULATE; #endif #ifdef MAP_HUGETLB if (length > EINA_HUGE_PAGE) flags |= MAP_HUGETLB; #endif map = malloc(sizeof (Eina_File_Map)); if (!map) goto on_error; map->map = mmap(NULL, length, PROT_READ, flags, file->fd, offset); #ifdef MAP_HUGETLB if (map->map == MAP_FAILED && (flags & MAP_HUGETLB)) { flags &= ~MAP_HUGETLB; map->map = mmap(NULL, length, PROT_READ, flags, file->fd, offset); } map->hugetlb = !!(flags & MAP_HUGETLB); #else map->hugetlb = EINA_FALSE; #endif map->offset = offset; map->length = length; map->refcount = 0; if (map->map == MAP_FAILED) goto on_error; eina_hash_add(file->map, &key, map); eina_hash_direct_add(file->rmap, &map->map, map); } map->refcount++; _eina_file_map_rule_apply(rule, map->map, length, map->hugetlb); eina_lock_release(&file->lock); return map->map; on_error: free(map); eina_lock_release(&file->lock); return NULL; } EAPI void eina_file_map_free(Eina_File *file, void *map) { EINA_SAFETY_ON_NULL_RETURN(file); eina_lock_take(&file->lock); if (file->global_map == map) { file->global_refcount--; if (file->global_refcount > 0) goto on_exit; munmap(file->global_map, file->length); file->global_map = MAP_FAILED; } else { Eina_File_Map *em; unsigned long int key[2]; em = eina_hash_find(file->rmap, &map); if (!em) goto on_exit; em->refcount--; if (em->refcount > 0) goto on_exit; key[0] = em->offset; key[1] = em->length; eina_hash_del(file->rmap, &map, em); eina_hash_del(file->map, &key, em); } on_exit: eina_lock_release(&file->lock); } EAPI Eina_Bool eina_file_map_faulted(Eina_File *file, void *map) { Eina_File_Map *em; Eina_Bool r = EINA_FALSE; EINA_SAFETY_ON_NULL_RETURN_VAL(file, EINA_FALSE); eina_lock_take(&file->lock); if (file->global_map == map) { r = file->global_faulty; } else { em = eina_hash_find(file->rmap, &map); if (em) r = em->faulty; } eina_lock_release(&file->lock); return r; } EAPI Eina_Iterator * eina_file_xattr_get(Eina_File *file) { EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); return eina_xattr_fd_ls(file->fd); } EAPI Eina_Iterator * eina_file_xattr_value_get(Eina_File *file) { EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); return eina_xattr_value_fd_ls(file->fd); } EAPI int eina_file_statat(void *container, Eina_File_Direct_Info *info, Eina_Stat *st) { struct stat buf; #ifdef HAVE_FSTATAT int fd; #endif EINA_SAFETY_ON_NULL_RETURN_VAL(info, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(st, -1); #ifdef HAVE_FSTATAT fd = dirfd((DIR*) container); if (fstatat(fd, info->path + info->name_start, &buf, 0)) #else (void)container; if (stat(info->path, &buf)) #endif { if (info->type != EINA_FILE_LNK) info->type = EINA_FILE_UNKNOWN; return -1; } if (info->type == EINA_FILE_UNKNOWN) { if (S_ISREG(buf.st_mode)) info->type = EINA_FILE_REG; else if (S_ISDIR(buf.st_mode)) info->type = EINA_FILE_DIR; else if (S_ISCHR(buf.st_mode)) info->type = EINA_FILE_CHR; else if (S_ISBLK(buf.st_mode)) info->type = EINA_FILE_BLK; else if (S_ISFIFO(buf.st_mode)) info->type = EINA_FILE_FIFO; else if (S_ISLNK(buf.st_mode)) info->type = EINA_FILE_LNK; else if (S_ISSOCK(buf.st_mode)) info->type = EINA_FILE_SOCK; else info->type = EINA_FILE_UNKNOWN; } st->dev = buf.st_dev; st->ino = buf.st_ino; st->mode = buf.st_mode; st->nlink = buf.st_nlink; st->uid = buf.st_uid; st->gid = buf.st_gid; st->rdev = buf.st_rdev; st->size = buf.st_size; st->blksize = buf.st_blksize; st->blocks = buf.st_blocks; st->atime = buf.st_atime; st->mtime = buf.st_mtime; st->ctime = buf.st_ctime; #ifdef _STAT_VER_LINUX # if (defined __USE_MISC && defined st_mtime) st->atimensec = buf.st_atim.tv_nsec; st->mtimensec = buf.st_mtim.tv_nsec; st->ctimensec = buf.st_ctim.tv_nsec; # else st->atimensec = buf.st_atimensec; st->mtimensec = buf.st_mtimensec; st->ctimensec = buf.st_ctimensec; # endif #else st->atimensec = 0; st->mtimensec = 0; st->ctimensec = 0; #endif return 0; } eina-1.7.10/src/lib/eina_ustrbuf.c0000664000175000017500000000353612175475327013652 00000000000000#ifdef HAVE_CONFIG_H # include "config.h" #endif #include "eina_strbuf_common.h" #include "eina_unicode.h" #include "eina_ustrbuf.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ #ifdef _STRBUF_DATA_TYPE # undef _STRBUF_DATA_TYPE #endif #ifdef _STRBUF_CSIZE # undef _STRBUF_CSIZE #endif #ifdef _STRBUF_STRUCT_NAME # undef _STRBUF_STRUCT_NAME #endif #ifdef _STRBUF_STRLEN_FUNC # undef _STRBUF_STRLEN_FUNC #endif #ifdef _STRBUF_STRESCAPE_FUNC # undef _STRBUF_STRESCAPE_FUNC #endif #ifdef _STRBUF_MAGIC # undef _STRBUF_MAGIC #endif #ifdef _STRBUF_MAGIC_STR # undef _STRBUF_MAGIC_STR #endif #ifdef _FUNC_EXPAND # undef _FUNC_EXPAND #endif #define _STRBUF_DATA_TYPE Eina_Unicode #define _STRBUF_CSIZE sizeof(_STRBUF_DATA_TYPE) #define _STRBUF_STRUCT_NAME Eina_UStrbuf #define _STRBUF_STRLEN_FUNC(x) eina_unicode_strlen(x) #define _STRBUF_STRESCAPE_FUNC(x) eina_unicode_escape(x) #define _STRBUF_MAGIC EINA_MAGIC_USTRBUF #define _STRBUF_MAGIC_STR __USTRBUF_MAGIC_STR static const char __USTRBUF_MAGIC_STR[] = "Eina UStrbuf"; #define _FUNC_EXPAND(y) eina_ustrbuf_ ## y /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /*============================================================================* * API * *============================================================================*/ #include "eina_strbuf_template_c.x" eina-1.7.10/src/lib/eina_share_common.h0000664000175000017500000000765012175475327014640 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler, Jorge Luis Zapata Muga, Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . * * This file incorporates work covered by the following copyright and * permission notice: * * Copyright (C) 2008 Peter Wehrfritz * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies of the Software and its Copyright notices. In addition publicly * documented acknowledgment must be given that this software has been used if no * source code of this software is made available publicly. This includes * acknowledgments in either Copyright notices, Manuals, Publicity and Marketing * documents or any documentation provided with any product containing this * software. This License does not apply to any software that links to the * libraries provided by this software (statically or dynamically), but only to * the software provided. * * Please see the OLD-COPYING.PLAIN for a plain-english explanation of this notice * and it's intent. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifndef EINA_SHARE_COMMON_H_ #define EINA_SHARE_COMMON_H_ #include "eina_types.h" #include "eina_magic.h" typedef struct _Eina_Share Eina_Share; struct dumpinfo { int used, saved, dups, unique; }; Eina_Bool eina_share_common_init(Eina_Share **share, Eina_Magic node_magic, const char *node_magic_STR); Eina_Bool eina_share_common_shutdown(Eina_Share **share); const char *eina_share_common_add_length(Eina_Share *share, const char *str, unsigned int slen, unsigned int null_size) EINA_WARN_UNUSED_RESULT; const char *eina_share_common_ref(Eina_Share *share, const char *str); Eina_Bool eina_share_common_del(Eina_Share *share, const char *str) EINA_WARN_UNUSED_RESULT; int eina_share_common_length(Eina_Share *share, const char *str) EINA_CONST EINA_WARN_UNUSED_RESULT; void eina_share_common_dump(Eina_Share *share, void (*additional_dump)( struct dumpinfo *), int used); /* Population functions */ void eina_share_common_population_add(Eina_Share *share, int slen); void eina_share_common_population_del(Eina_Share *share, int slen); #endif /* EINA_SHARE_COMMON_H_ */ eina-1.7.10/src/lib/eina_stringshare.c0000664000175000017500000004604512175475327014513 00000000000000/* EINA - EFL data type library * Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2010 * Carsten Haitzler, * Jorge Luis Zapata Muga, * Cedric Bail, * Gustavo Sverzut Barbieri * Tom Hacohen * Brett Nash * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef HAVE_ALLOCA_H # include #elif defined __GNUC__ # define alloca __builtin_alloca #elif defined _AIX # define alloca __alloca #elif defined _MSC_VER # include # define alloca _alloca #else # include # ifdef __cplusplus extern "C" # endif void *alloca (size_t); #endif #include #include #include #ifdef HAVE_EVIL # include #endif #include "eina_config.h" #include "eina_private.h" #include "eina_error.h" #include "eina_log.h" #include "eina_lock.h" #include "eina_share_common.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_stringshare.h" #ifdef CRITICAL #undef CRITICAL #endif #define CRITICAL(...) EINA_LOG_DOM_CRIT(_eina_share_stringshare_log_dom, __VA_ARGS__) #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_share_stringshare_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_share_stringshare_log_dom, __VA_ARGS__) static int _eina_share_stringshare_log_dom = -1; /* The actual share */ static Eina_Share *stringshare_share; static const char EINA_MAGIC_STRINGSHARE_NODE_STR[] = "Eina Stringshare Node"; extern Eina_Bool _share_common_threads_activated; static Eina_Lock _mutex_small; /* Stringshare optimizations */ static const unsigned char _eina_stringshare_single[512] = { 0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,15,0, 16,0,17,0,18,0,19,0,20,0,21,0,22,0,23,0,24,0,25,0,26,0,27,0,28,0,29,0,30,0, 31,0,32,0,33,0,34,0,35,0,36,0,37,0,38,0,39,0,40,0,41,0,42,0,43,0,44,0,45,0, 46,0,47,0,48,0,49,0,50,0,51,0,52,0,53,0,54,0,55,0,56,0,57,0,58,0,59,0,60,0, 61,0,62,0,63,0,64,0,65,0,66,0,67,0,68,0,69,0,70,0,71,0,72,0,73,0,74,0,75,0, 76,0,77,0,78,0,79,0,80,0,81,0,82,0,83,0,84,0,85,0,86,0,87,0,88,0,89,0,90,0, 91,0,92,0,93,0,94,0,95,0,96,0,97,0,98,0,99,0,100,0,101,0,102,0,103,0,104,0, 105,0, 106,0,107,0,108,0,109,0,110,0,111,0,112,0,113,0,114,0,115,0,116,0,117,0,118, 0,119,0,120,0, 121,0,122,0,123,0,124,0,125,0,126,0,127,0,128,0,129,0,130,0,131,0,132,0,133, 0,134,0,135,0, 136,0,137,0,138,0,139,0,140,0,141,0,142,0,143,0,144,0,145,0,146,0,147,0,148, 0,149,0,150,0, 151,0,152,0,153,0,154,0,155,0,156,0,157,0,158,0,159,0,160,0,161,0,162,0,163, 0,164,0,165,0, 166,0,167,0,168,0,169,0,170,0,171,0,172,0,173,0,174,0,175,0,176,0,177,0,178, 0,179,0,180,0, 181,0,182,0,183,0,184,0,185,0,186,0,187,0,188,0,189,0,190,0,191,0,192,0,193, 0,194,0,195,0, 196,0,197,0,198,0,199,0,200,0,201,0,202,0,203,0,204,0,205,0,206,0,207,0,208, 0,209,0,210,0, 211,0,212,0,213,0,214,0,215,0,216,0,217,0,218,0,219,0,220,0,221,0,222,0,223, 0,224,0,225,0, 226,0,227,0,228,0,229,0,230,0,231,0,232,0,233,0,234,0,235,0,236,0,237,0,238, 0,239,0,240,0, 241,0,242,0,243,0,244,0,245,0,246,0,247,0,248,0,249,0,250,0,251,0,252,0,253, 0,254,0,255,0 }; typedef struct _Eina_Stringshare_Small Eina_Stringshare_Small; typedef struct _Eina_Stringshare_Small_Bucket Eina_Stringshare_Small_Bucket; struct _Eina_Stringshare_Small_Bucket { /* separate arrays for faster lookups */ const char **strings; unsigned char *lengths; unsigned short *references; int count; int size; }; struct _Eina_Stringshare_Small { Eina_Stringshare_Small_Bucket *buckets[256]; }; #define EINA_STRINGSHARE_SMALL_BUCKET_STEP 8 static Eina_Stringshare_Small _eina_small_share; static inline int _eina_stringshare_small_cmp(const Eina_Stringshare_Small_Bucket *bucket, int i, const char *pstr, unsigned char plength) { /* pstr and plength are from second char and on, since the first is * always the same. * * First string being always the same, size being between 2 and 3 * characters (there is a check for special case length==1 and then * small stringshare is applied to strings < 4), we just need to * compare 2 characters of both strings. */ const unsigned char cur_plength = bucket->lengths[i] - 1; const char *cur_pstr; if (cur_plength > plength) return 1; else if (cur_plength < plength) return -1; cur_pstr = bucket->strings[i] + 1; if (cur_pstr[0] > pstr[0]) return 1; else if (cur_pstr[0] < pstr[0]) return -1; if (plength == 1) return 0; if (cur_pstr[1] > pstr[1]) return 1; else if (cur_pstr[1] < pstr[1]) return -1; return 0; } static const char * _eina_stringshare_small_bucket_find(const Eina_Stringshare_Small_Bucket *bucket, const char *str, unsigned char length, int *idx) { const char *pstr = str + 1; /* skip first letter, it's always the same */ unsigned char plength = length - 1; int i, low, high; if (bucket->count == 0) { *idx = 0; return NULL; } low = 0; high = bucket->count; while (low < high) { int r; i = (low + high - 1) / 2; r = _eina_stringshare_small_cmp(bucket, i, pstr, plength); if (r > 0) high = i; else if (r < 0) low = i + 1; else { *idx = i; return bucket->strings[i]; } } *idx = low; return NULL; } static Eina_Bool _eina_stringshare_small_bucket_resize(Eina_Stringshare_Small_Bucket *bucket, int size) { void *tmp; tmp = realloc((void *)bucket->strings, size * sizeof(bucket->strings[0])); if (!tmp) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return 0; } bucket->strings = tmp; tmp = realloc(bucket->lengths, size * sizeof(bucket->lengths[0])); if (!tmp) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return 0; } bucket->lengths = tmp; tmp = realloc(bucket->references, size * sizeof(bucket->references[0])); if (!tmp) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return 0; } bucket->references = tmp; bucket->size = size; return 1; } static const char * _eina_stringshare_small_bucket_insert_at( Eina_Stringshare_Small_Bucket **p_bucket, const char *str, unsigned char length, int idx) { Eina_Stringshare_Small_Bucket *bucket = *p_bucket; int todo, off; char *snew; if (!bucket) { *p_bucket = bucket = calloc(1, sizeof(*bucket)); if (!bucket) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } } if (bucket->count + 1 >= bucket->size) { int size = bucket->size + EINA_STRINGSHARE_SMALL_BUCKET_STEP; if (!_eina_stringshare_small_bucket_resize(bucket, size)) return NULL; } snew = malloc(length + 1); if (!snew) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } memcpy(snew, str, length); snew[length] = '\0'; off = idx + 1; todo = bucket->count - idx; if (todo > 0) { memmove((void *)(bucket->strings + off), bucket->strings + idx, todo * sizeof(bucket->strings[0])); memmove(bucket->lengths + off, bucket->lengths + idx, todo * sizeof(bucket->lengths[0])); memmove(bucket->references + off, bucket->references + idx, todo * sizeof(bucket->references[0])); } bucket->strings[idx] = snew; bucket->lengths[idx] = length; bucket->references[idx] = 1; bucket->count++; return snew; } static void _eina_stringshare_small_bucket_remove_at( Eina_Stringshare_Small_Bucket **p_bucket, int idx) { Eina_Stringshare_Small_Bucket *bucket = *p_bucket; int todo, off; if (bucket->references[idx] > 1) { bucket->references[idx]--; return; } free((char *)bucket->strings[idx]); if (bucket->count == 1) { free((void *)bucket->strings); free(bucket->lengths); free(bucket->references); free(bucket); *p_bucket = NULL; return; } bucket->count--; if (idx == bucket->count) goto end; off = idx + 1; todo = bucket->count - idx; memmove((void *)(bucket->strings + idx), bucket->strings + off, todo * sizeof(bucket->strings[0])); memmove(bucket->lengths + idx, bucket->lengths + off, todo * sizeof(bucket->lengths[0])); memmove(bucket->references + idx, bucket->references + off, todo * sizeof(bucket->references[0])); end: if (bucket->count + EINA_STRINGSHARE_SMALL_BUCKET_STEP < bucket->size) { int size = bucket->size - EINA_STRINGSHARE_SMALL_BUCKET_STEP; _eina_stringshare_small_bucket_resize(bucket, size); } } static const char * _eina_stringshare_small_add(const char *str, unsigned char length) { Eina_Stringshare_Small_Bucket **bucket; int i; bucket = _eina_small_share.buckets + (unsigned char)str[0]; if (!*bucket) i = 0; else { const char *ret; ret = _eina_stringshare_small_bucket_find(*bucket, str, length, &i); if (ret) { (*bucket)->references[i]++; return ret; } } return _eina_stringshare_small_bucket_insert_at(bucket, str, length, i); } static void _eina_stringshare_small_del(const char *str, unsigned char length) { Eina_Stringshare_Small_Bucket **bucket; const char *ret; int i; bucket = _eina_small_share.buckets + (unsigned char)str[0]; if (!*bucket) goto error; ret = _eina_stringshare_small_bucket_find(*bucket, str, length, &i); if (!ret) goto error; _eina_stringshare_small_bucket_remove_at(bucket, i); return; error: CRITICAL("EEEK trying to del non-shared stringshare \"%s\"", str); } static void _eina_stringshare_small_init(void) { eina_lock_new(&_mutex_small); memset(&_eina_small_share, 0, sizeof(_eina_small_share)); } static void _eina_stringshare_small_shutdown(void) { Eina_Stringshare_Small_Bucket **p_bucket, **p_bucket_end; p_bucket = _eina_small_share.buckets; p_bucket_end = p_bucket + 256; for (; p_bucket < p_bucket_end; p_bucket++) { Eina_Stringshare_Small_Bucket *bucket = *p_bucket; char **s, **s_end; if (!bucket) continue; s = (char **)bucket->strings; s_end = s + bucket->count; for (; s < s_end; s++) free(*s); free((void *)bucket->strings); free(bucket->lengths); free(bucket->references); free(bucket); *p_bucket = NULL; } eina_lock_free(&_mutex_small); } static void _eina_stringshare_small_bucket_dump(Eina_Stringshare_Small_Bucket *bucket, struct dumpinfo *di) { const char **s = bucket->strings; unsigned char *l = bucket->lengths; unsigned short *r = bucket->references; int i; di->used += sizeof(*bucket); di->used += bucket->count * sizeof(*s); di->used += bucket->count * sizeof(*l); di->used += bucket->count * sizeof(*r); di->unique += bucket->count; for (i = 0; i < bucket->count; i++, s++, l++, r++) { int dups; printf("DDD: %5hhu %5hu '%s'\n", *l, *r, *s); dups = (*r - 1); di->used += *l; di->saved += *l * dups; di->dups += dups; } } static void _eina_stringshare_small_dump(struct dumpinfo *di) { Eina_Stringshare_Small_Bucket **p_bucket, **p_bucket_end; p_bucket = _eina_small_share.buckets; p_bucket_end = p_bucket + 256; for (; p_bucket < p_bucket_end; p_bucket++) { Eina_Stringshare_Small_Bucket *bucket = *p_bucket; if (!bucket) continue; _eina_stringshare_small_bucket_dump(bucket, di); } } /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the share_common module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the share_common module of Eina. It is called by * eina_init(). * * @see eina_init() */ Eina_Bool eina_stringshare_init(void) { Eina_Bool ret; if (_eina_share_stringshare_log_dom < 0) { _eina_share_stringshare_log_dom = eina_log_domain_register ("eina_stringshare", EINA_LOG_COLOR_DEFAULT); if (_eina_share_stringshare_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_stringshare"); return EINA_FALSE; } } ret = eina_share_common_init(&stringshare_share, EINA_MAGIC_STRINGSHARE_NODE, EINA_MAGIC_STRINGSHARE_NODE_STR); if (ret) _eina_stringshare_small_init(); else { eina_log_domain_unregister(_eina_share_stringshare_log_dom); _eina_share_stringshare_log_dom = -1; } return ret; } /** * @internal * @brief Shut down the share_common module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the share_common module set up by * eina_share_common_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_stringshare_shutdown(void) { Eina_Bool ret; _eina_stringshare_small_shutdown(); ret = eina_share_common_shutdown(&stringshare_share); if (_eina_share_stringshare_log_dom >= 0) { eina_log_domain_unregister(_eina_share_stringshare_log_dom); _eina_share_stringshare_log_dom = -1; } return ret; } /*============================================================================* * API * *============================================================================*/ EAPI void eina_stringshare_del(Eina_Stringshare *str) { int slen; if (!str) return; /* special cases */ if (str[0] == '\0') slen = 0; else if (str[1] == '\0') slen = 1; else if (str[2] == '\0') slen = 2; else if (str[3] == '\0') slen = 3; else slen = 4; /* handled later */ if (slen < 2) return; else if (slen < 4) { eina_share_common_population_del(stringshare_share, slen); eina_lock_take(&_mutex_small); _eina_stringshare_small_del(str, slen); eina_lock_release(&_mutex_small); return; } if (!eina_share_common_del(stringshare_share, str)) CRITICAL("EEEK trying to del non-shared stringshare \"%s\"", str); } EAPI Eina_Stringshare * eina_stringshare_add_length(const char *str, unsigned int slen) { if (!str) return NULL; else if (slen == 0) return ""; else if (slen == 1) return (Eina_Stringshare *) _eina_stringshare_single + ((*str) << 1); else if (slen < 4) { const char *s; eina_lock_take(&_mutex_small); s = _eina_stringshare_small_add(str, slen); eina_lock_release(&_mutex_small); return s; } return eina_share_common_add_length(stringshare_share, str, slen * sizeof(char), sizeof(char)); } EAPI Eina_Stringshare * eina_stringshare_add(const char *str) { int slen; if (!str) return NULL; if (str[0] == '\0') slen = 0; else if (str[1] == '\0') slen = 1; else if (str[2] == '\0') slen = 2; else if (str[3] == '\0') slen = 3; else slen = 3 + (int)strlen(str + 3); return eina_stringshare_add_length(str, slen); } EAPI Eina_Stringshare * eina_stringshare_printf(const char *fmt, ...) { va_list args; char *tmp; const char *ret; int len; if (!fmt) return NULL; va_start(args, fmt); len = vasprintf(&tmp, fmt, args); va_end(args); if (len < 1) return NULL; ret = eina_stringshare_add_length(tmp, len); free(tmp); return ret; } EAPI Eina_Stringshare * eina_stringshare_vprintf(const char *fmt, va_list args) { char *tmp; const char *ret; int len; if (!fmt) return NULL; len = vasprintf(&tmp, fmt, args); if (len < 1) return NULL; ret = eina_stringshare_add_length(tmp, len); free(tmp); return ret; } EAPI Eina_Stringshare * eina_stringshare_nprintf(unsigned int len, const char *fmt, ...) { va_list args; char *tmp; int size; if (!fmt) return NULL; if (len < 1) return NULL; tmp = alloca(sizeof(char) * len + 1); va_start(args, fmt); size = vsnprintf(tmp, len, fmt, args); va_end(args); if (size < 1) return NULL; return eina_stringshare_add_length(tmp, len); } EAPI Eina_Stringshare * eina_stringshare_ref(Eina_Stringshare *str) { int slen; if (!str) return eina_share_common_ref(stringshare_share, str); /* special cases */ if (str[0] == '\0') slen = 0; else if (str[1] == '\0') slen = 1; else if (str[2] == '\0') slen = 2; else if (str[3] == '\0') slen = 3; else slen = 3 + (int)strlen(str + 3); if (slen < 2) { eina_share_common_population_add(stringshare_share, slen); return str; } else if (slen < 4) { const char *s; eina_share_common_population_add(stringshare_share, slen); eina_lock_take(&_mutex_small); s = _eina_stringshare_small_add(str, slen); eina_lock_release(&_mutex_small); return s; } return eina_share_common_ref(stringshare_share, str); } EAPI int eina_stringshare_strlen(Eina_Stringshare *str) { int len; if (!str) return 0; /* special cases */ if (str[0] == '\0') return 0; if (str[1] == '\0') return 1; if (str[2] == '\0') return 2; if (str[3] == '\0') return 3; len = eina_share_common_length(stringshare_share, (Eina_Stringshare *) str); len = (len > 0) ? len / (int)sizeof(char) : -1; return len; } EAPI void eina_stringshare_dump(void) { eina_share_common_dump(stringshare_share, _eina_stringshare_small_dump, sizeof(_eina_stringshare_single)); } eina-1.7.10/src/lib/eina_simple_xml_parser.c0000664000175000017500000010230212175475327015674 00000000000000/* EINA - EFL data type library * Copyright (C) 2011 Gustavo Sverzut Barbieri * Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef HAVE_ALLOCA_H # include #elif defined __GNUC__ # define alloca __builtin_alloca #elif defined _AIX # define alloca __alloca #elif defined _MSC_VER # include # define alloca _alloca #else # include # ifdef __cplusplus extern "C" # endif void *alloca (size_t); #endif #ifdef HAVE_STRINGS_H # include #endif #include #include #include #ifdef HAVE_EVIL # include #endif #include "eina_private.h" #include "eina_log.h" #include "eina_mempool.h" #include "eina_stringshare.h" #include "eina_strbuf.h" #include "eina_simple_xml_parser.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ static Eina_Mempool *_eina_simple_xml_tag_mp = NULL; static Eina_Mempool *_eina_simple_xml_attribute_mp = NULL; static int _eina_simple_xml_log_dom = -1; static const char EINA_MAGIC_SIMPLE_XML_TAG_STR[] = "Eina Simple XML Tag"; static const char EINA_MAGIC_SIMPLE_XML_DATA_STR[] = "Eina Simple XML Data"; static const char EINA_MAGIC_SIMPLE_XML_ATTRIBUTE_STR[] = "Eina Simple XML Attribute"; #define EINA_MAGIC_CHECK_TAG(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_SIMPLE_XML_TAG)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_SIMPLE_XML_TAG); \ return __VA_ARGS__; \ } \ } while(0) #define EINA_MAGIC_CHECK_DATA(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_SIMPLE_XML_DATA)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_SIMPLE_XML_DATA); \ return __VA_ARGS__; \ } \ } while(0) #define EINA_MAGIC_CHECK_ATTRIBUTE(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_SIMPLE_XML_ATTRIBUTE)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_SIMPLE_XML_ATTRIBUTE); \ return __VA_ARGS__; \ } \ } while(0) #ifndef EINA_LOG_COLOR_DEFAULT #define EINA_LOG_COLOR_DEFAULT EINA_COLOR_CYAN #endif #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_simple_xml_log_dom, __VA_ARGS__) #ifdef WRN #undef WRN #endif #define WRN(...) EINA_LOG_DOM_WARN(_eina_simple_xml_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_simple_xml_log_dom, __VA_ARGS__) static inline const char * _eina_simple_xml_whitespace_find(const char *itr, const char *itr_end) { for (; itr < itr_end; itr++) if (isspace((unsigned char)*itr)) break; return itr; } static inline const char * _eina_simple_xml_whitespace_skip(const char *itr, const char *itr_end) { for (; itr < itr_end; itr++) if (!isspace((unsigned char)*itr)) break; return itr; } static inline const char * _eina_simple_xml_whitespace_unskip(const char *itr, const char *itr_start) { for (itr--; itr > itr_start; itr--) if (!isspace((unsigned char)*itr)) break; return itr + 1; } static inline const char * _eina_simple_xml_tag_start_find(const char *itr, const char *itr_end) { return memchr(itr, '<', itr_end - itr); } static inline const char * _eina_simple_xml_tag_end_find(const char *itr, const char *itr_end) { for (; itr < itr_end; itr++) if ((*itr == '>') || (*itr == '<')) /* consider < also ends a tag */ return itr; return NULL; } static inline const char * _eina_simple_xml_tag_comment_end_find(const char *itr, const char *itr_end) { for (; itr < itr_end; itr++) if ((*itr == '-') && ((itr + 1 < itr_end) && (*(itr + 1) == '-')) && ((itr + 2 < itr_end) && (*(itr + 2) == '>'))) return itr + 2; return NULL; } static inline const char * _eina_simple_xml_tag_cdata_end_find(const char *itr, const char *itr_end) { for (; itr < itr_end; itr++) if ((*itr == ']') && ((itr + 1 < itr_end) && (*(itr + 1) == ']')) && ((itr + 2 < itr_end) && (*(itr + 2) == '>'))) return itr + 2; return NULL; } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the simple xml parser module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the simple xml parser module of Eina. It is called by * eina_init(). * * @see eina_init() */ Eina_Bool eina_simple_xml_init(void) { const char *choice, *tmp; _eina_simple_xml_log_dom = eina_log_domain_register("eina_simple_xml", EINA_LOG_COLOR_DEFAULT); if (_eina_simple_xml_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_simple_xml"); return EINA_FALSE; } #ifdef EINA_DEFAULT_MEMPOOL choice = "pass_through"; #else choice = "chained_mempool"; #endif tmp = getenv("EINA_MEMPOOL"); if (tmp && tmp[0]) choice = tmp; _eina_simple_xml_tag_mp = eina_mempool_add (choice, "simple_xml_tag", NULL, sizeof(Eina_Simple_XML_Node_Tag), 32); if (!_eina_simple_xml_tag_mp) { ERR("Mempool for simple_xml_tag cannot be allocated in init."); goto on_init_fail; } _eina_simple_xml_attribute_mp = eina_mempool_add (choice, "simple_xml_attribute", NULL, sizeof(Eina_Simple_XML_Attribute), 8); if (!_eina_simple_xml_attribute_mp) { ERR("Mempool for simple_xml_attribute cannot be allocated in init."); eina_mempool_del(_eina_simple_xml_tag_mp); goto on_init_fail; } #define EMS(n) eina_magic_string_static_set(n, n ## _STR) EMS(EINA_MAGIC_SIMPLE_XML_TAG); EMS(EINA_MAGIC_SIMPLE_XML_DATA); EMS(EINA_MAGIC_SIMPLE_XML_ATTRIBUTE); #undef EMS return EINA_TRUE; on_init_fail: eina_log_domain_unregister(_eina_simple_xml_log_dom); _eina_simple_xml_log_dom = -1; return EINA_FALSE; } /** * @internal * @brief Shut down the simple xml parser module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the simple xml parser module set * up by eina_simple_xml_init(). It is called by * eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_simple_xml_shutdown(void) { eina_mempool_del(_eina_simple_xml_attribute_mp); eina_mempool_del(_eina_simple_xml_tag_mp); eina_log_domain_unregister(_eina_simple_xml_log_dom); _eina_simple_xml_log_dom = -1; return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI Eina_Bool eina_simple_xml_parse(const char *buf, unsigned buflen, Eina_Bool strip, Eina_Simple_XML_Cb func, const void *data) { const char *itr = buf, *itr_end = buf + buflen; if (!buf) return EINA_FALSE; if (!func) return EINA_FALSE; #define CB(type, start, end) \ do \ { \ size_t _sz = end - start; \ Eina_Bool _ret; \ _ret = func((void*)data, type, start, start - buf, _sz); \ if (!_ret) return EINA_FALSE; \ } \ while (0) while (itr < itr_end) { if (itr[0] == '<') { if (itr + 1 >= itr_end) { CB(EINA_SIMPLE_XML_ERROR, itr, itr_end); return EINA_FALSE; } else { Eina_Simple_XML_Type type; size_t toff; const char *p; if (itr[1] == '/') { type = EINA_SIMPLE_XML_CLOSE; toff = 1; } else if (itr[1] == '?') { type = EINA_SIMPLE_XML_PROCESSING; toff = 1; } else if (itr[1] == '!') { if ((itr + sizeof("") - 1 < itr_end) && (!memcmp(itr + 2, "DOCTYPE", sizeof("DOCTYPE") - 1)) && ((itr[2 + sizeof("DOCTYPE") - 1] == '>') || (isspace((unsigned char)itr[2 + sizeof("DOCTYPE") - 1])))) { type = EINA_SIMPLE_XML_DOCTYPE; toff = sizeof("!DOCTYPE") - 1; } else if ((itr + sizeof("") - 1 < itr_end) && (!memcmp(itr + 2, "--", sizeof("--") - 1))) { type = EINA_SIMPLE_XML_COMMENT; toff = sizeof("!--") - 1; } else if ((itr + sizeof("") - 1 < itr_end) && (!memcmp(itr + 2, "[CDATA[", sizeof("[CDATA[") - 1))) { type = EINA_SIMPLE_XML_CDATA; toff = sizeof("![CDATA[") - 1; } else { type = EINA_SIMPLE_XML_OPEN; toff = 0; } } else { type = EINA_SIMPLE_XML_OPEN; toff = 0; } if (type == EINA_SIMPLE_XML_CDATA) p = _eina_simple_xml_tag_cdata_end_find(itr + 1 + toff, itr_end); else if (type == EINA_SIMPLE_XML_COMMENT) p = _eina_simple_xml_tag_comment_end_find(itr + 1 + toff, itr_end); else p = _eina_simple_xml_tag_end_find(itr + 1 + toff, itr_end); if ((p) && (*p == '<')) { type = EINA_SIMPLE_XML_ERROR; toff = 0; } if (p) { const char *start, *end; start = itr + 1 + toff; end = p; switch (type) { case EINA_SIMPLE_XML_OPEN: if (p[-1] == '/') { type = EINA_SIMPLE_XML_OPEN_EMPTY; end--; } break; case EINA_SIMPLE_XML_CDATA: if (!memcmp(p - 2, "]]", 2)) end -= 2; break; case EINA_SIMPLE_XML_PROCESSING: if (p[-1] == '?') end--; break; case EINA_SIMPLE_XML_COMMENT: if (!memcmp(p - 2, "--", 2)) end -= 2; break; case EINA_SIMPLE_XML_OPEN_EMPTY: case EINA_SIMPLE_XML_CLOSE: case EINA_SIMPLE_XML_DATA: case EINA_SIMPLE_XML_ERROR: case EINA_SIMPLE_XML_DOCTYPE: case EINA_SIMPLE_XML_IGNORED: break; } if ((strip) && (type != EINA_SIMPLE_XML_ERROR)) { start = _eina_simple_xml_whitespace_skip (start, end); end = _eina_simple_xml_whitespace_unskip (end, start + 1); } CB(type, start, end); if (type != EINA_SIMPLE_XML_ERROR) itr = p + 1; else itr = p; } else { CB(EINA_SIMPLE_XML_ERROR, itr, itr_end); return EINA_FALSE; } } } else { const char *p, *end; if (strip) { p = _eina_simple_xml_whitespace_skip(itr, itr_end); if (p) { CB(EINA_SIMPLE_XML_IGNORED, itr, p); itr = p; } } p = _eina_simple_xml_tag_start_find(itr, itr_end); if (!p) p = itr_end; end = p; if (strip) end = _eina_simple_xml_whitespace_unskip(end, itr); if (itr != end) CB(EINA_SIMPLE_XML_DATA, itr, end); if ((strip) && (end < p)) CB(EINA_SIMPLE_XML_IGNORED, end, p); itr = p; } } #undef CB return EINA_TRUE; } EAPI const char * eina_simple_xml_tag_attributes_find(const char *buf, unsigned buflen) { const char *itr = buf, *itr_end = buf + buflen; for (; itr < itr_end; itr++) { if (!isspace((unsigned char)*itr)) { /* user skip tagname and already gave it the attributes */ if (*itr == '=') return buf; } else { itr = _eina_simple_xml_whitespace_skip(itr + 1, itr_end); if (itr == itr_end) return NULL; return itr; } } return NULL; } EAPI Eina_Bool eina_simple_xml_attributes_parse(const char *buf, unsigned buflen, Eina_Simple_XML_Attribute_Cb func, const void *data) { const char *itr = buf, *itr_end = buf + buflen; char *tmpbuf = alloca(buflen + 1); if (!buf) return EINA_FALSE; if (!func) return EINA_FALSE; while (itr < itr_end) { const char *p = _eina_simple_xml_whitespace_skip(itr, itr_end); const char *key, *key_end, *value, *value_end; char *tval; if (p == itr_end) return EINA_TRUE; key = p; for (key_end = key; key_end < itr_end; key_end++) if ((*key_end == '=') || (isspace((unsigned char)*key_end))) break; if (key_end == itr_end) return EINA_FALSE; if (key_end == key) continue; if (*key_end == '=') value = key_end + 1; else { value = memchr(key_end, '=', itr_end - key_end); if (!value) return EINA_FALSE; value++; } for (; value < itr_end; value++) if (!isspace((unsigned char)*value)) break; if (value == itr_end) return EINA_FALSE; if ((*value == '"') || (*value == '\'')) { value_end = memchr(value + 1, *value, itr_end - value); if (!value_end) return EINA_FALSE; value++; } else { value_end = _eina_simple_xml_whitespace_find(value, itr_end); } memcpy(tmpbuf, key, key_end - key); tmpbuf[key_end - key] = '\0'; tval = tmpbuf + (key_end - key) + 1; memcpy(tval, value, value_end - value); tval[value_end - value] = '\0'; if (!func((void*)data, tmpbuf, tval)) return EINA_FALSE; itr = value_end + 1; } return EINA_TRUE; } /* Node loader *************************************************************/ EAPI Eina_Simple_XML_Attribute * eina_simple_xml_attribute_new(Eina_Simple_XML_Node_Tag *parent, const char *key, const char *value) { Eina_Simple_XML_Attribute *attr; if (!key) return NULL; attr = eina_mempool_malloc(_eina_simple_xml_attribute_mp, sizeof(*attr)); if (!attr) { ERR("could not allocate memory for attribute from mempool"); return NULL; } EINA_MAGIC_SET(attr, EINA_MAGIC_SIMPLE_XML_ATTRIBUTE); attr->parent = parent; attr->key = eina_stringshare_add(key); attr->value = eina_stringshare_add(value ? value : ""); if (parent) parent->attributes = eina_inlist_append (parent->attributes, EINA_INLIST_GET(attr)); return attr; } EAPI void eina_simple_xml_attribute_free(Eina_Simple_XML_Attribute *attr) { if (!attr) return; EINA_MAGIC_CHECK_ATTRIBUTE(attr); if (attr->parent) attr->parent->attributes = eina_inlist_remove (attr->parent->attributes, EINA_INLIST_GET(attr)); eina_stringshare_del(attr->key); eina_stringshare_del(attr->value); EINA_MAGIC_SET(attr, EINA_MAGIC_NONE); eina_mempool_free(_eina_simple_xml_attribute_mp, attr); } static void _eina_simple_xml_node_data_free(Eina_Simple_XML_Node_Data *node) { if (node->base.parent) node->base.parent->children = eina_inlist_remove (node->base.parent->children, EINA_INLIST_GET(&node->base)); EINA_MAGIC_SET(&node->base, EINA_MAGIC_NONE); free(node); } EAPI Eina_Simple_XML_Node_Tag * eina_simple_xml_node_tag_new(Eina_Simple_XML_Node_Tag *parent, const char *name) { Eina_Simple_XML_Node_Tag *n; if (!name) return NULL; n = eina_mempool_malloc(_eina_simple_xml_tag_mp, sizeof(*n)); if (!n) { ERR("could not allocate memory for node from mempool"); return NULL; } memset(n, 0, sizeof(*n)); EINA_MAGIC_SET(&n->base, EINA_MAGIC_SIMPLE_XML_TAG); n->base.type = EINA_SIMPLE_XML_NODE_TAG; n->base.parent = parent; n->name = eina_stringshare_add(name); if (parent) parent->children = eina_inlist_append (parent->children, EINA_INLIST_GET(&n->base)); return n; } void _eina_simple_xml_node_tag_free(Eina_Simple_XML_Node_Tag *tag) { while (tag->children) { Eina_Simple_XML_Node *n = EINA_INLIST_CONTAINER_GET (tag->children, Eina_Simple_XML_Node); if (n->type == EINA_SIMPLE_XML_NODE_TAG) _eina_simple_xml_node_tag_free((Eina_Simple_XML_Node_Tag *)n); else _eina_simple_xml_node_data_free((Eina_Simple_XML_Node_Data *)n); } while (tag->attributes) { Eina_Simple_XML_Attribute *a = EINA_INLIST_CONTAINER_GET (tag->attributes, Eina_Simple_XML_Attribute); eina_simple_xml_attribute_free(a); } if (tag->base.parent) tag->base.parent->children = eina_inlist_remove (tag->base.parent->children, EINA_INLIST_GET(&tag->base)); eina_stringshare_del(tag->name); EINA_MAGIC_SET(&tag->base, EINA_MAGIC_NONE); eina_mempool_free(_eina_simple_xml_tag_mp, tag); } EAPI void eina_simple_xml_node_tag_free(Eina_Simple_XML_Node_Tag *tag) { if (!tag) return; EINA_MAGIC_CHECK_TAG(&tag->base); if (tag->base.type != EINA_SIMPLE_XML_NODE_TAG) { ERR("expected tag node!"); return; } _eina_simple_xml_node_tag_free(tag); } static Eina_Simple_XML_Node_Data * _eina_simple_xml_node_data_new(Eina_Simple_XML_Node_Tag *parent, Eina_Simple_XML_Node_Type type, const char *content, unsigned length) { Eina_Simple_XML_Node_Data *n; if (!content) return NULL; n = malloc(sizeof(*n) + length + 1); if (!n) { ERR("could not allocate memory for node"); return NULL; } EINA_MAGIC_SET(&n->base, EINA_MAGIC_SIMPLE_XML_DATA); n->base.type = type; n->base.parent = parent; n->length = length; memcpy(n->data, content, length); n->data[length] = '\0'; if (parent) parent->children = eina_inlist_append (parent->children, EINA_INLIST_GET(&n->base)); return n; } EAPI Eina_Simple_XML_Node_Data * eina_simple_xml_node_data_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length) { return _eina_simple_xml_node_data_new (parent, EINA_SIMPLE_XML_NODE_DATA, contents, length); } EAPI void eina_simple_xml_node_data_free(Eina_Simple_XML_Node_Data *node) { if (!node) return; EINA_MAGIC_CHECK_DATA(&node->base); if (node->base.type != EINA_SIMPLE_XML_NODE_DATA) { ERR("expected node of type: data!"); return; } _eina_simple_xml_node_data_free(node); } EAPI Eina_Simple_XML_Node_CData * eina_simple_xml_node_cdata_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length) { return _eina_simple_xml_node_data_new (parent, EINA_SIMPLE_XML_NODE_CDATA, contents, length); } EAPI void eina_simple_xml_node_cdata_free(Eina_Simple_XML_Node_Data *node) { if (!node) return; EINA_MAGIC_CHECK_DATA(&node->base); if (node->base.type != EINA_SIMPLE_XML_NODE_CDATA) { ERR("expected node of type: cdata!"); return; } _eina_simple_xml_node_data_free(node); } EAPI Eina_Simple_XML_Node_Processing * eina_simple_xml_node_processing_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length) { return _eina_simple_xml_node_data_new (parent, EINA_SIMPLE_XML_NODE_PROCESSING, contents, length); } EAPI void eina_simple_xml_node_processing_free(Eina_Simple_XML_Node_Data *node) { if (!node) return; EINA_MAGIC_CHECK_DATA(&node->base); if (node->base.type != EINA_SIMPLE_XML_NODE_PROCESSING) { ERR("expected node of type: processing!"); return; } _eina_simple_xml_node_data_free(node); } EAPI Eina_Simple_XML_Node_Doctype * eina_simple_xml_node_doctype_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length) { return _eina_simple_xml_node_data_new (parent, EINA_SIMPLE_XML_NODE_DOCTYPE, contents, length); } EAPI void eina_simple_xml_node_doctype_free(Eina_Simple_XML_Node_Data *node) { if (!node) return; EINA_MAGIC_CHECK_DATA(&node->base); if (node->base.type != EINA_SIMPLE_XML_NODE_DOCTYPE) { ERR("expected node of type: doctype!"); return; } _eina_simple_xml_node_data_free(node); } EAPI Eina_Simple_XML_Node_Comment * eina_simple_xml_node_comment_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length) { return _eina_simple_xml_node_data_new (parent, EINA_SIMPLE_XML_NODE_COMMENT, contents, length); } EAPI void eina_simple_xml_node_comment_free(Eina_Simple_XML_Node_Data *node) { if (!node) return; EINA_MAGIC_CHECK_DATA(&node->base); if (node->base.type != EINA_SIMPLE_XML_NODE_COMMENT) { ERR("expected node of type: comment!"); return; } _eina_simple_xml_node_data_free(node); } struct eina_simple_xml_node_load_ctxt { Eina_Simple_XML_Node_Root *root; Eina_Simple_XML_Node_Tag *current; }; static Eina_Bool _eina_simple_xml_attrs_parse(void *data, const char *key, const char *value) { Eina_Simple_XML_Node_Tag *n = data; Eina_Simple_XML_Attribute *attr; attr = eina_simple_xml_attribute_new(n, key, value); return !!attr; } static Eina_Bool _eina_simple_xml_node_parse(void *data, Eina_Simple_XML_Type type, const char *content, unsigned offset, unsigned length) { struct eina_simple_xml_node_load_ctxt *ctx = data; switch (type) { case EINA_SIMPLE_XML_OPEN: case EINA_SIMPLE_XML_OPEN_EMPTY: { Eina_Simple_XML_Node_Tag *n; const char *name, *name_end, *attrs; attrs = eina_simple_xml_tag_attributes_find(content, length); if (!attrs) name_end = content + length; else name_end = attrs; name_end = _eina_simple_xml_whitespace_unskip(name_end, content); name = eina_stringshare_add_length(content, name_end - content); n = eina_simple_xml_node_tag_new(ctx->current, name); eina_stringshare_del(name); if (!n) return EINA_FALSE; if (attrs) eina_simple_xml_attributes_parse (attrs, length - (attrs - content), _eina_simple_xml_attrs_parse, n); if (type == EINA_SIMPLE_XML_OPEN) ctx->current = n; } break; case EINA_SIMPLE_XML_CLOSE: if (ctx->current->base.parent) { const char *end = _eina_simple_xml_whitespace_unskip (content + length, content); int len; len = end - content; if ((len == 0) /* closes the tag for us. */ || ((eina_stringshare_strlen(ctx->current->name) == len) && (memcmp(ctx->current->name, content, len) == 0))) ctx->current = ctx->current->base.parent; else WRN("closed incorrect tag: '%.*s', '%s' was expected!", len, content, ctx->current->name); } else WRN("closed tag '%.*s' but already at document root!", length, content); break; case EINA_SIMPLE_XML_DATA: return !!eina_simple_xml_node_data_new (ctx->current, content, length); case EINA_SIMPLE_XML_CDATA: return !!eina_simple_xml_node_cdata_new (ctx->current, content, length); case EINA_SIMPLE_XML_PROCESSING: return !!eina_simple_xml_node_processing_new (ctx->current, content, length); case EINA_SIMPLE_XML_DOCTYPE: return !!eina_simple_xml_node_doctype_new (ctx->current, content, length); case EINA_SIMPLE_XML_COMMENT: return !!eina_simple_xml_node_comment_new (ctx->current, content, length); case EINA_SIMPLE_XML_ERROR: ERR("parser error at offset %u-%u: %.*s", offset, length, length, content); break; case EINA_SIMPLE_XML_IGNORED: DBG("ignored contents at offset %u-%u: %.*s", offset, length, length, content); break; } return EINA_TRUE; } EAPI Eina_Simple_XML_Node_Root * eina_simple_xml_node_load(const char *buf, unsigned buflen, Eina_Bool strip) { Eina_Simple_XML_Node_Root *root; struct eina_simple_xml_node_load_ctxt ctx; if (!buf) return NULL; root = eina_mempool_malloc(_eina_simple_xml_tag_mp, sizeof(*root)); if (!root) return NULL; memset(root, 0, sizeof(*root)); EINA_MAGIC_SET(&root->base, EINA_MAGIC_SIMPLE_XML_TAG); root->base.type = EINA_SIMPLE_XML_NODE_ROOT; ctx.root = root; ctx.current = root; eina_simple_xml_parse(buf, buflen, strip, _eina_simple_xml_node_parse, &ctx); return root; } EAPI void eina_simple_xml_node_root_free(Eina_Simple_XML_Node_Root *root) { if (!root) return; EINA_MAGIC_CHECK_TAG(&root->base); if (root->base.type != EINA_SIMPLE_XML_NODE_ROOT) { ERR("expected root node!"); return; } _eina_simple_xml_node_tag_free(root); } static inline void _eina_simple_xml_node_dump_indent(Eina_Strbuf *buf, const char *indent, unsigned level) { unsigned i, indent_len = strlen(indent); for (i = 0; i < level; i++) eina_strbuf_append_length(buf, indent, indent_len); } static void _eina_simple_xml_node_tag_attributes_append(Eina_Strbuf *buf, Eina_Simple_XML_Node_Tag *tag) { Eina_Simple_XML_Attribute *a; EINA_INLIST_FOREACH(tag->attributes, a) eina_strbuf_append_printf(buf, " %s=\"%s\"", a->key, a->value); } static void _eina_simple_xml_node_dump(Eina_Strbuf *buf, Eina_Simple_XML_Node *node, const char *indent, unsigned level); static void _eina_simple_xml_node_children_dump(Eina_Strbuf *buf, Eina_Simple_XML_Node_Tag *tag, const char *indent, unsigned level) { Eina_Simple_XML_Node *node; EINA_INLIST_FOREACH(tag->children, node) _eina_simple_xml_node_dump(buf, node, indent, level); } static void _eina_simple_xml_node_dump(Eina_Strbuf *buf, Eina_Simple_XML_Node *node, const char *indent, unsigned level) { switch (node->type) { case EINA_SIMPLE_XML_NODE_ROOT: _eina_simple_xml_node_children_dump (buf, (Eina_Simple_XML_Node_Tag *)node, indent, level); break; case EINA_SIMPLE_XML_NODE_TAG: { Eina_Simple_XML_Node_Tag *n = (Eina_Simple_XML_Node_Tag *)node; if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_char(buf, '<'); eina_strbuf_append_length (buf, n->name, eina_stringshare_strlen(n->name)); if (n->attributes) _eina_simple_xml_node_tag_attributes_append(buf, n); if (n->children) eina_strbuf_append_char(buf, '>'); else eina_strbuf_append_length(buf, "/>", sizeof("/>") - 1); if (indent) eina_strbuf_append_char(buf, '\n'); if (n->children) { _eina_simple_xml_node_children_dump(buf, n, indent, level + 1); if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_length(buf, "name, eina_stringshare_strlen(n->name)); eina_strbuf_append_char(buf, '>'); if (indent) eina_strbuf_append_char(buf, '\n'); } } break; case EINA_SIMPLE_XML_NODE_DATA: { Eina_Simple_XML_Node_Data *n = (Eina_Simple_XML_Node_Data *)node; if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_length(buf, n->data, n->length); if (indent) eina_strbuf_append_char(buf, '\n'); } break; case EINA_SIMPLE_XML_NODE_CDATA: { Eina_Simple_XML_Node_Data *n = (Eina_Simple_XML_Node_Data *)node; if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_length(buf, "data, n->length); eina_strbuf_append_length(buf, "]]>", sizeof("]]>") - 1); if (indent) eina_strbuf_append_char(buf, '\n'); } break; case EINA_SIMPLE_XML_NODE_PROCESSING: { Eina_Simple_XML_Node_Data *n = (Eina_Simple_XML_Node_Data *)node; if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_length(buf, "data, n->length); eina_strbuf_append_length(buf, " ?>", sizeof(" ?>") - 1); if (indent) eina_strbuf_append_char(buf, '\n'); } break; case EINA_SIMPLE_XML_NODE_DOCTYPE: { Eina_Simple_XML_Node_Data *n = (Eina_Simple_XML_Node_Data *)node; if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_length (buf, "data, n->length); eina_strbuf_append_char(buf, '>'); if (indent) eina_strbuf_append_char(buf, '\n'); } break; case EINA_SIMPLE_XML_NODE_COMMENT: { Eina_Simple_XML_Node_Data *n = (Eina_Simple_XML_Node_Data *)node; if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_length(buf, "", sizeof(" -->") - 1); if (indent) eina_strbuf_append_char(buf, '\n'); } break; } } EAPI char * eina_simple_xml_node_dump(Eina_Simple_XML_Node *node, const char *indent) { Eina_Strbuf *buf; char *ret; if (!node) return NULL; buf = eina_strbuf_new(); if (!buf) return NULL; _eina_simple_xml_node_dump(buf, node, indent, 0); ret = eina_strbuf_string_steal(buf); eina_strbuf_free(buf); return ret; } eina-1.7.10/src/lib/eina_strbuf_common.h0000664000175000017500000000733412175475327015042 00000000000000#ifndef EINA_STRBUF_COMMON_H #define EINA_STRBUF_COMMON_H #include #include "eina_private.h" #include "eina_magic.h" #include "eina_strbuf.h" /** * @struct _Eina_Strbuf * String buffer to facilitate string operations. */ struct _Eina_Strbuf { void *buf; size_t len; size_t size; size_t step; EINA_MAGIC }; #define EINA_MAGIC_CHECK_STRBUF(d, ...) \ do { \ if (!EINA_MAGIC_CHECK((d), _STRBUF_MAGIC)) \ { \ EINA_MAGIC_FAIL((d), _STRBUF_MAGIC); \ return __VA_ARGS__; \ } \ } while (0) Eina_Bool eina_strbuf_common_init(void); Eina_Bool eina_strbuf_common_shutdown(void); Eina_Strbuf * eina_strbuf_common_new(size_t csize); Eina_Strbuf * eina_strbuf_common_manage_new(size_t csize, void *str, size_t len); void eina_strbuf_common_free(Eina_Strbuf *buf); void eina_strbuf_common_reset(size_t csize, Eina_Strbuf *buf); Eina_Bool eina_strbuf_common_append(size_t csize, Eina_Strbuf *buf, const void *str, size_t len); Eina_Bool eina_strbuf_common_append_escaped(size_t csize, Eina_Strbuf *buf, const void *str); Eina_Bool eina_strbuf_common_append_n(size_t csize, Eina_Strbuf *buf, const void *str, size_t len, size_t maxlen); Eina_Bool eina_strbuf_common_append_length(size_t csize, Eina_Strbuf *buf, const void *str, size_t length); Eina_Bool eina_strbuf_common_insert(size_t csize, Eina_Strbuf *buf, const void *str, size_t len, size_t pos); Eina_Bool eina_strbuf_common_insert_escaped(size_t csize, Eina_Strbuf *buf, const void *str, size_t len, size_t pos); Eina_Bool eina_strbuf_common_insert_n(size_t csize, Eina_Strbuf *buf, const void *str, size_t len, size_t maxlen, size_t pos); Eina_Bool eina_strbuf_common_insert_length(size_t csize, Eina_Strbuf *buf, const void *str, size_t length, size_t pos); Eina_Bool eina_strbuf_common_append_char(size_t csize, Eina_Strbuf *buf, const void *c); Eina_Bool eina_strbuf_common_insert_char(size_t csize, Eina_Strbuf *buf, const void *c, size_t pos); Eina_Bool eina_strbuf_common_remove(size_t csize, Eina_Strbuf *buf, size_t start, size_t end); const void * eina_strbuf_common_string_get(const Eina_Strbuf *buf); void * eina_strbuf_common_string_steal(size_t csize, Eina_Strbuf *buf); void eina_strbuf_common_string_free(size_t csize, Eina_Strbuf *buf); size_t eina_strbuf_common_length_get(const Eina_Strbuf *buf); Eina_Bool _eina_strbuf_common_grow(size_t csize, Eina_Strbuf *buf, size_t size); /** * @} */ #endif eina-1.7.10/src/lib/eina_value.c0000664000175000017500000045102112175475327013270 00000000000000/* EINA - EFL data type library * Copyright (C) 2012 ProFUSION embedded systems * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef HAVE_ALLOCA_H # include #elif defined __GNUC__ # define alloca __builtin_alloca #elif defined _AIX # define alloca __alloca #elif defined _MSC_VER # include # define alloca _alloca #else # include # ifdef __cplusplus extern "C" # endif void *alloca (size_t); #endif #include /* asprintf() */ #include /* PRId64 and PRIu64 */ #include /* struct timeval */ #ifdef HAVE_EVIL # include #endif #include "eina_config.h" #include "eina_private.h" #include "eina_error.h" #include "eina_log.h" #include "eina_strbuf.h" #include "eina_mempool.h" #include "eina_lock.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_value.h" /* no model for now #include "eina_model.h" // uses eina_value.h */ /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ static Eina_Mempool *_eina_value_mp = NULL; static Eina_Hash *_eina_value_inner_mps = NULL; static Eina_Lock _eina_value_inner_mps_lock; static char *_eina_value_mp_choice = NULL; static int _eina_value_log_dom = -1; #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_value_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_value_log_dom, __VA_ARGS__) static const unsigned char eina_value_uchar_max = 255U; static const char eina_value_char_max = 127; static const signed char eina_value_char_min = -127 - 1; static const unsigned short eina_value_ushort_max = 65535U; static const short eina_value_short_max = 32767; static const short eina_value_short_min = -32767 - 1; static const unsigned int eina_value_uint_max = 4294967295U; static const int eina_value_int_max = 2147483647; static const int eina_value_int_min = -2147483647 - 1; static const uint64_t eina_value_uint64_max = 18446744073709551615ULL; static const int64_t eina_value_int64_max = 9223372036854775807LL; static const int64_t eina_value_int64_min = -9223372036854775807LL - 1LL; #if __WORDSIZE == 64 static const unsigned long eina_value_ulong_max = 18446744073709551615ULL; static const long eina_value_long_max = 9223372036854775807LL; static const long eina_value_long_min = -9223372036854775807LL - 1LL; #else static const unsigned long eina_value_ulong_max = 4294967295U; static const long eina_value_long_max = 2147483647; static const long eina_value_long_min = -2147483647 - 1; #endif static Eina_Bool _eina_value_type_uchar_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { unsigned char *tmem = mem; *tmem = 0; return EINA_TRUE; } static Eina_Bool _eina_value_type_uchar_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__) { return EINA_TRUE; } static Eina_Bool _eina_value_type_uchar_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const unsigned char *s = src; unsigned char *d = dst; *d = *s; return EINA_TRUE; } static int _eina_value_type_uchar_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const unsigned char *ta = a, *tb = b; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } static Eina_Bool _eina_value_type_uchar_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const unsigned char v = *(const unsigned char *)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { signed char other_mem = v; if (EINA_UNLIKELY(v > (unsigned char)eina_value_char_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) { float other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_DOUBLE) { double other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const char *other_mem; char buf[64]; snprintf(buf, sizeof(buf), "%hhu", v); other_mem = buf; /* required due &buf == buf */ return eina_value_type_pset(convert, convert_mem, &other_mem); } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_uchar_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { unsigned char *tmem = mem; *tmem = va_arg(args, unsigned int); /* char is promoted to int for va_arg */ return EINA_TRUE; } static Eina_Bool _eina_value_type_uchar_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { unsigned char *tmem = mem; const unsigned char *p = ptr; *tmem = *p; return EINA_TRUE; } static Eina_Bool _eina_value_type_uchar_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { const unsigned char *tmem = mem; unsigned char *p = ptr; *p = *tmem; return EINA_TRUE; } static Eina_Bool _eina_value_type_ushort_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { unsigned short *tmem = mem; *tmem = 0; return EINA_TRUE; } static Eina_Bool _eina_value_type_ushort_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__) { return EINA_TRUE; } static Eina_Bool _eina_value_type_ushort_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const unsigned short *s = src; unsigned short *d = dst; *d = *s; return EINA_TRUE; } static int _eina_value_type_ushort_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const unsigned short *ta = a, *tb = b; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } static Eina_Bool _eina_value_type_ushort_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const unsigned short v = *(const unsigned short *)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem = v; if (EINA_UNLIKELY(v > eina_value_uchar_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { signed char other_mem = v; if (EINA_UNLIKELY(v > (unsigned char)eina_value_char_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem = v; if (EINA_UNLIKELY(v > (unsigned short)eina_value_short_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) { float other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_DOUBLE) { double other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const char *other_mem; char buf[64]; snprintf(buf, sizeof(buf), "%hu", v); other_mem = buf; /* required due &buf == buf */ return eina_value_type_pset(convert, convert_mem, &other_mem); } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_ushort_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { unsigned short *tmem = mem; *tmem = va_arg(args, unsigned int); /* short is promoted to int for va_arg */ return EINA_TRUE; } static Eina_Bool _eina_value_type_ushort_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { unsigned short *tmem = mem; const unsigned short *p = ptr; *tmem = *p; return EINA_TRUE; } static Eina_Bool _eina_value_type_ushort_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { const unsigned short *tmem = mem; unsigned short *p = ptr; *p = *tmem; return EINA_TRUE; } static Eina_Bool _eina_value_type_uint_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { unsigned int *tmem = mem; *tmem = 0; return EINA_TRUE; } static Eina_Bool _eina_value_type_uint_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__) { return EINA_TRUE; } static Eina_Bool _eina_value_type_uint_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const unsigned int *s = src; unsigned int *d = dst; *d = *s; return EINA_TRUE; } static int _eina_value_type_uint_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const unsigned int *ta = a, *tb = b; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } static Eina_Bool _eina_value_type_uint_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const unsigned int v = *(const unsigned int *)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem = v; if (EINA_UNLIKELY(v > eina_value_uchar_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem = v; if (EINA_UNLIKELY(v > eina_value_ushort_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { signed char other_mem = v; if (EINA_UNLIKELY(v > (unsigned char)eina_value_char_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem = v; if (EINA_UNLIKELY(v > (unsigned short)eina_value_short_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem = v; if (EINA_UNLIKELY(v > (unsigned int)eina_value_int_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) { float other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_DOUBLE) { double other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const char *other_mem; char buf[64]; snprintf(buf, sizeof(buf), "%u", v); other_mem = buf; /* required due &buf == buf */ return eina_value_type_pset(convert, convert_mem, &other_mem); } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_uint_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { unsigned int *tmem = mem; *tmem = va_arg(args, unsigned int); return EINA_TRUE; } static Eina_Bool _eina_value_type_uint_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { unsigned int *tmem = mem; const unsigned int *p = ptr; *tmem = *p; return EINA_TRUE; } static Eina_Bool _eina_value_type_uint_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { const unsigned int *tmem = mem; unsigned int *p = ptr; *p = *tmem; return EINA_TRUE; } static Eina_Bool _eina_value_type_ulong_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { unsigned long *tmem = mem; *tmem = 0; return EINA_TRUE; } static Eina_Bool _eina_value_type_ulong_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__) { return EINA_TRUE; } static Eina_Bool _eina_value_type_ulong_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const unsigned long *s = src; unsigned long *d = dst; *d = *s; return EINA_TRUE; } static int _eina_value_type_ulong_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const unsigned long *ta = a, *tb = b; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } static Eina_Bool _eina_value_type_ulong_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const unsigned long v = *(const unsigned long *)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem = v; if (EINA_UNLIKELY(v > eina_value_uchar_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem = v; if (EINA_UNLIKELY(v > eina_value_ushort_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem = v; if (EINA_UNLIKELY(v > eina_value_uint_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { signed char other_mem = v; if (EINA_UNLIKELY(v > (unsigned char)eina_value_char_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem = v; if (EINA_UNLIKELY(v > (unsigned short)eina_value_short_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem = v; if (EINA_UNLIKELY(v > (unsigned int)eina_value_int_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem = v; if (EINA_UNLIKELY(v > (unsigned long)eina_value_long_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) { float other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_DOUBLE) { double other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const char *other_mem; char buf[64]; snprintf(buf, sizeof(buf), "%lu", v); other_mem = buf; /* required due &buf == buf */ return eina_value_type_pset(convert, convert_mem, &other_mem); } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_ulong_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { unsigned long *tmem = mem; *tmem = va_arg(args, unsigned long); return EINA_TRUE; } static Eina_Bool _eina_value_type_ulong_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { unsigned long *tmem = mem; const unsigned long *p = ptr; *tmem = *p; return EINA_TRUE; } static Eina_Bool _eina_value_type_ulong_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { const unsigned long *tmem = mem; unsigned long *p = ptr; *p = *tmem; return EINA_TRUE; } static Eina_Bool _eina_value_type_uint64_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { uint64_t *tmem = mem; *tmem = 0; return EINA_TRUE; } static Eina_Bool _eina_value_type_uint64_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__) { return EINA_TRUE; } static Eina_Bool _eina_value_type_uint64_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const uint64_t *s = src; uint64_t *d = dst; *d = *s; return EINA_TRUE; } static int _eina_value_type_uint64_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const uint64_t *ta = a, *tb = b; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } static Eina_Bool _eina_value_type_uint64_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const uint64_t v = *(const uint64_t *)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem = v; if (EINA_UNLIKELY(v > eina_value_uchar_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem = v; if (EINA_UNLIKELY(v > eina_value_ushort_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem = v; if (EINA_UNLIKELY(v > eina_value_uint_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem = v; if (EINA_UNLIKELY((sizeof(other_mem) != sizeof(v)) && (v > eina_value_ulong_max))) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { signed char other_mem = v; if (EINA_UNLIKELY(v > (unsigned char)eina_value_char_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem = v; if (EINA_UNLIKELY(v > (unsigned short)eina_value_short_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem = v; if (EINA_UNLIKELY(v > (unsigned int)eina_value_int_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem = v; if (EINA_UNLIKELY(v > (unsigned long)eina_value_long_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem = v; if (EINA_UNLIKELY(v > (uint64_t)eina_value_int64_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) { float other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_DOUBLE) { double other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const char *other_mem; char buf[64]; snprintf(buf, sizeof(buf), "%"PRIu64, v); other_mem = buf; /* required due &buf == buf */ return eina_value_type_pset(convert, convert_mem, &other_mem); } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_uint64_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { uint64_t *tmem = mem; *tmem = va_arg(args, uint64_t); return EINA_TRUE; } static Eina_Bool _eina_value_type_uint64_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { uint64_t *tmem = mem; const uint64_t *p = ptr; *tmem = *p; return EINA_TRUE; } static Eina_Bool _eina_value_type_uint64_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { const uint64_t *tmem = mem; uint64_t *p = ptr; *p = *tmem; return EINA_TRUE; } static Eina_Bool _eina_value_type_char_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { char *tmem = mem; *tmem = 0; return EINA_TRUE; } static Eina_Bool _eina_value_type_char_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__) { return EINA_TRUE; } static Eina_Bool _eina_value_type_char_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const char *s = src; char *d = dst; *d = *s; return EINA_TRUE; } static int _eina_value_type_char_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const char *ta = a, *tb = b; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } static Eina_Bool _eina_value_type_char_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const signed char v = *(const signed char *)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { signed char other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) { float other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_DOUBLE) { double other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const char *other_mem; char buf[64]; snprintf(buf, sizeof(buf), "%hhd", v); other_mem = buf; /* required due &buf == buf */ return eina_value_type_pset(convert, convert_mem, &other_mem); } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_char_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { char *tmem = mem; *tmem = va_arg(args, int); /* char is promoted to int for va_arg */ return EINA_TRUE; } static Eina_Bool _eina_value_type_char_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { char *tmem = mem; const char *p = ptr; *tmem = *p; return EINA_TRUE; } static Eina_Bool _eina_value_type_char_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { const char *tmem = mem; char *p = ptr; *p = *tmem; return EINA_TRUE; } static Eina_Bool _eina_value_type_short_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { short *tmem = mem; *tmem = 0; return EINA_TRUE; } static Eina_Bool _eina_value_type_short_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__) { return EINA_TRUE; } static Eina_Bool _eina_value_type_short_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const short *s = src; short *d = dst; *d = *s; return EINA_TRUE; } static int _eina_value_type_short_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const short *ta = a, *tb = b; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } static Eina_Bool _eina_value_type_short_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const short v = *(const short *)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_uchar_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { signed char other_mem = v; if (EINA_UNLIKELY(v < eina_value_char_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_char_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) { float other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_DOUBLE) { double other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const char *other_mem; char buf[64]; snprintf(buf, sizeof(buf), "%hd", v); other_mem = buf; /* required due &buf == buf */ return eina_value_type_pset(convert, convert_mem, &other_mem); } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_short_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { short *tmem = mem; *tmem = va_arg(args, int); /* short int is promoted to int for va_arg */ return EINA_TRUE; } static Eina_Bool _eina_value_type_short_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { short *tmem = mem; const short *p = ptr; *tmem = *p; return EINA_TRUE; } static Eina_Bool _eina_value_type_short_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { const short *tmem = mem; short *p = ptr; *p = *tmem; return EINA_TRUE; } static Eina_Bool _eina_value_type_int_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { int *tmem = mem; *tmem = 0; return EINA_TRUE; } static Eina_Bool _eina_value_type_int_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__) { return EINA_TRUE; } static Eina_Bool _eina_value_type_int_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const int *s = src; int *d = dst; *d = *s; return EINA_TRUE; } static int _eina_value_type_int_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const int *ta = a, *tb = b; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } static Eina_Bool _eina_value_type_int_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const int v = *(const int *)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_uchar_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_ushort_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { signed char other_mem = v; if (EINA_UNLIKELY(v < eina_value_char_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_char_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem = v; if (EINA_UNLIKELY(v < eina_value_short_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_short_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) { float other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_DOUBLE) { double other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const char *other_mem; char buf[64]; snprintf(buf, sizeof(buf), "%d", v); other_mem = buf; /* required due &buf == buf */ return eina_value_type_pset(convert, convert_mem, &other_mem); } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_int_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { int *tmem = mem; *tmem = va_arg(args, int); return EINA_TRUE; } static Eina_Bool _eina_value_type_int_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { int *tmem = mem; const int *p = ptr; *tmem = *p; return EINA_TRUE; } static Eina_Bool _eina_value_type_int_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { const int *tmem = mem; int *p = ptr; *p = *tmem; return EINA_TRUE; } static Eina_Bool _eina_value_type_long_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { long *tmem = mem; *tmem = 0; return EINA_TRUE; } static Eina_Bool _eina_value_type_long_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__) { return EINA_TRUE; } static Eina_Bool _eina_value_type_long_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const long *s = src; long *d = dst; *d = *s; return EINA_TRUE; } static int _eina_value_type_long_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const long *ta = a, *tb = b; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } static Eina_Bool _eina_value_type_long_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const long v = *(const long *)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY((unsigned long) v > eina_value_uchar_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY((unsigned long) v > eina_value_ushort_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY((unsigned long) v > eina_value_uint_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { signed char other_mem = v; if (EINA_UNLIKELY(v < eina_value_char_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_char_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem = v; if (EINA_UNLIKELY(v < eina_value_short_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_short_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem = v; if (EINA_UNLIKELY(v < eina_value_int_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_int_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) { float other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_DOUBLE) { double other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const char *other_mem; char buf[64]; snprintf(buf, sizeof(buf), "%ld", v); other_mem = buf; /* required due &buf == buf */ return eina_value_type_pset(convert, convert_mem, &other_mem); } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_long_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { long *tmem = mem; *tmem = va_arg(args, long); return EINA_TRUE; } static Eina_Bool _eina_value_type_long_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { long *tmem = mem; const long *p = ptr; *tmem = *p; return EINA_TRUE; } static Eina_Bool _eina_value_type_long_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { const long *tmem = mem; long *p = ptr; *p = *tmem; return EINA_TRUE; } static Eina_Bool _eina_value_type_int64_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { int64_t *tmem = mem; *tmem = 0; return EINA_TRUE; } static Eina_Bool _eina_value_type_int64_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__) { return EINA_TRUE; } static Eina_Bool _eina_value_type_int64_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const int64_t *s = src; int64_t *d = dst; *d = *s; return EINA_TRUE; } static int _eina_value_type_int64_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const int64_t *ta = a, *tb = b; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } static Eina_Bool _eina_value_type_int64_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const int64_t v = *(const int64_t *)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_uchar_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_ushort_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_uint_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY((sizeof(other_mem) != sizeof(v)) && (v > eina_value_ulong_max))) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { signed char other_mem = v; if (EINA_UNLIKELY(v < eina_value_char_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_char_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem = v; if (EINA_UNLIKELY(v < eina_value_short_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_short_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem = v; if (EINA_UNLIKELY(v < eina_value_int_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_int_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem = v; if (EINA_UNLIKELY(v < eina_value_long_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_long_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) { float other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_DOUBLE) { double other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const char *other_mem; char buf[64]; snprintf(buf, sizeof(buf), "%"PRId64, v); other_mem = buf; /* required due &buf == buf */ return eina_value_type_pset(convert, convert_mem, &other_mem); } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_int64_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { int64_t *tmem = mem; *tmem = va_arg(args, int64_t); return EINA_TRUE; } static Eina_Bool _eina_value_type_int64_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { int64_t *tmem = mem; const int64_t *p = ptr; *tmem = *p; return EINA_TRUE; } static Eina_Bool _eina_value_type_int64_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { const int64_t *tmem = mem; int64_t *p = ptr; *p = *tmem; return EINA_TRUE; } static Eina_Bool _eina_value_type_float_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { float *tmem = mem; *tmem = 0; return EINA_TRUE; } static Eina_Bool _eina_value_type_float_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__) { return EINA_TRUE; } static Eina_Bool _eina_value_type_float_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const float *s = src; float *d = dst; *d = *s; return EINA_TRUE; } static int _eina_value_type_float_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const float *ta = a, *tb = b; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } static Eina_Bool _eina_value_type_float_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const float v = *(const float *)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_uchar_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_ushort_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_uint_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY((sizeof(other_mem) != sizeof(v)) && (v > eina_value_ulong_max))) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_uint64_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { signed char other_mem = v; if (EINA_UNLIKELY(v < eina_value_char_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_char_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem = v; if (EINA_UNLIKELY(v < eina_value_short_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_short_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem = v; if (EINA_UNLIKELY(v < eina_value_int_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_int_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem = v; if (EINA_UNLIKELY(v < eina_value_long_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_long_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem = v; if (EINA_UNLIKELY(v < eina_value_int64_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_int64_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) { float other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_DOUBLE) { double other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const char *other_mem; char buf[64]; snprintf(buf, sizeof(buf), "%f", v); other_mem = buf; /* required due &buf == buf */ return eina_value_type_pset(convert, convert_mem, &other_mem); } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_float_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { float *tmem = mem; *tmem = va_arg(args, double); /* float is promoted to double for va_args */ return EINA_TRUE; } static Eina_Bool _eina_value_type_float_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { float *tmem = mem; const float *p = ptr; *tmem = *p; return EINA_TRUE; } static Eina_Bool _eina_value_type_float_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { const float *tmem = mem; float *p = ptr; *p = *tmem; return EINA_TRUE; } static Eina_Bool _eina_value_type_double_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { double *tmem = mem; *tmem = 0; return EINA_TRUE; } static Eina_Bool _eina_value_type_double_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__) { return EINA_TRUE; } static Eina_Bool _eina_value_type_double_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const double *s = src; double *d = dst; *d = *s; return EINA_TRUE; } static int _eina_value_type_double_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const double *ta = a, *tb = b; if (*ta < *tb) return -1; else if (*ta > *tb) return 1; return 0; } static Eina_Bool _eina_value_type_double_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const double v = *(const double *)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_uchar_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_ushort_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_uint_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; if (EINA_UNLIKELY((sizeof(other_mem) != sizeof(v)) && (v > eina_value_ulong_max))) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem = v; if (EINA_UNLIKELY(v < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { signed char other_mem = v; if (EINA_UNLIKELY(v < eina_value_char_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_char_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem = v; if (EINA_UNLIKELY(v < eina_value_short_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_short_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem = v; if (EINA_UNLIKELY(v < eina_value_int_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_int_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem = v; if (EINA_UNLIKELY(v < eina_value_long_min)) return EINA_FALSE; if (EINA_UNLIKELY(v > eina_value_long_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) { float other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_DOUBLE) { double other_mem = v; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const char *other_mem; char buf[64]; snprintf(buf, sizeof(buf), "%g", (double)v); other_mem = buf; /* required due &buf == buf */ return eina_value_type_pset(convert, convert_mem, &other_mem); } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_double_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { double *tmem = mem; *tmem = va_arg(args, double); return EINA_TRUE; } static Eina_Bool _eina_value_type_double_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { double *tmem = mem; const double *p = ptr; *tmem = *p; return EINA_TRUE; } static Eina_Bool _eina_value_type_double_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { const double *tmem = mem; double *p = ptr; *p = *tmem; return EINA_TRUE; } static Eina_Bool _eina_value_type_string_common_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { const char **tmem = mem; *tmem = NULL; return EINA_TRUE; } static int _eina_value_type_string_common_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const char *sa = *(const char **)a; const char *sb = *(const char **)b; if (sa == sb) return 0; if (sa == NULL) return -1; if (sb == NULL) return 1; return strcmp(sa, sb); } static Eina_Bool _eina_value_type_string_common_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const char *v = *(const char **)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem; if ((sscanf(v, "%hhu", &other_mem) != 1) && (sscanf(v, "%hhx", &other_mem) != 1) && (sscanf(v, "%hho", &other_mem) != 1)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem; if ((sscanf(v, "%hu", &other_mem) != 1) && (sscanf(v, "%hx", &other_mem) != 1) && (sscanf(v, "%ho", &other_mem) != 1)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem; if ((sscanf(v, "%u", &other_mem) != 1) && (sscanf(v, "%x", &other_mem) != 1) && (sscanf(v, "%o", &other_mem) != 1)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem; if ((sscanf(v, "%lu", &other_mem) != 1) && (sscanf(v, "%lx", &other_mem) != 1) && (sscanf(v, "%lo", &other_mem) != 1)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem; if ((sscanf(v, "%"SCNu64, &other_mem) != 1) && (sscanf(v, "%"SCNx64, &other_mem) != 1) && (sscanf(v, "%"SCNo64, &other_mem) != 1)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { signed char other_mem; if ((sscanf(v, "%hhd", &other_mem) != 1) && (sscanf(v, "%hhx", &other_mem) != 1) && (sscanf(v, "%hho", &other_mem) != 1)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem; if ((sscanf(v, "%hd", &other_mem) != 1) && (sscanf(v, "%hx", &other_mem) != 1) && (sscanf(v, "%ho", &other_mem) != 1)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem; if ((sscanf(v, "%d", &other_mem) != 1) && (sscanf(v, "%x", &other_mem) != 1) && (sscanf(v, "%o", &other_mem) != 1)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem; if ((sscanf(v, "%ld", &other_mem) != 1) && (sscanf(v, "%lx", &other_mem) != 1) && (sscanf(v, "%lo", &other_mem) != 1)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem; if ((sscanf(v, "%"SCNd64, &other_mem) != 1) && (sscanf(v, "%"SCNx64, &other_mem) != 1) && (sscanf(v, "%"SCNo64, &other_mem) != 1)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) { float other_mem; if (sscanf(v, "%f", &other_mem) != 1) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_DOUBLE) { double other_mem; if (sscanf(v, "%lf", &other_mem) != 1) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { return eina_value_type_pset(convert, convert_mem, &v); } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_string_common_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { memcpy(ptr, mem, sizeof(const char *)); return EINA_TRUE; } static Eina_Bool _eina_value_type_stringshare_flush(const Eina_Value_Type *type __UNUSED__, void *mem) { const char **tmem = mem; if (*tmem) { eina_stringshare_del(*tmem); *tmem = NULL; } return EINA_TRUE; } static Eina_Bool _eina_value_type_stringshare_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const char * const*s = src; const char **d = dst; *d = eina_stringshare_add(*s); return EINA_TRUE; } static Eina_Bool _eina_value_type_stringshare_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { const char *str = va_arg(args, const char *); return eina_stringshare_replace((const char **)mem, str); } static Eina_Bool _eina_value_type_stringshare_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { const char * const *str = ptr; return eina_stringshare_replace((const char **)mem, *str); } static Eina_Bool _eina_value_type_string_flush(const Eina_Value_Type *type __UNUSED__, void *mem) { char **tmem = mem; if (*tmem) { free(*tmem); *tmem = NULL; } return EINA_TRUE; } static Eina_Bool _eina_value_type_string_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const char * const *s = src; char **d = dst; if (*s == NULL) *d = NULL; else { *d = strdup(*s); if (*d == NULL) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } } return EINA_TRUE; } static Eina_Bool _eina_value_type_string_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { char **tmem = mem; const char *str = va_arg(args, const char *); eina_error_set(0); if (str == *tmem) return EINA_TRUE; if (!str) { free(*tmem); *tmem = NULL; } else { char *tmp = strdup(str); if (!tmp) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } free(*tmem); *tmem = tmp; } return EINA_TRUE; } static Eina_Bool _eina_value_type_string_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { char **tmem = mem; const char * const *str = ptr; eina_error_set(0); if (*str == *tmem) return EINA_TRUE; if (!*str) { free(*tmem); *tmem = NULL; } else { char *tmp = strdup(*str); if (!tmp) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } free(*tmem); *tmem = tmp; } return EINA_TRUE; } static Eina_Bool _eina_value_type_array_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { memset(mem, 0, sizeof(Eina_Value_Array)); return EINA_TRUE; } static Eina_Bool _eina_value_type_array_flush_elements(Eina_Value_Array *tmem) { const Eina_Value_Type *subtype = tmem->subtype; Eina_Bool ret = EINA_TRUE; unsigned char sz; char *ptr, *ptr_end; if (!tmem->array) return EINA_TRUE; sz = tmem->array->member_size; ptr = tmem->array->members; ptr_end = ptr + tmem->array->len * sz; for (; ptr < ptr_end; ptr += sz) ret &= eina_value_type_flush(subtype, ptr); eina_inarray_flush(tmem->array); return ret; } static Eina_Bool _eina_value_type_array_flush(const Eina_Value_Type *type __UNUSED__, void *mem) { Eina_Value_Array *tmem = mem; Eina_Bool ret =_eina_value_type_array_flush_elements(tmem); if (tmem->array) eina_inarray_free(tmem->array); tmem->array = NULL; tmem->subtype = NULL; return ret; } static Eina_Bool _eina_value_type_array_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const Eina_Value_Type *subtype; const Eina_Value_Array *s = src; Eina_Value_Array *d = dst; unsigned int i, count, sz; char *ptr, *ptr_end; d->subtype = subtype = s->subtype; d->step = s->step; if ((!s->array) || (!s->subtype)) { d->array = NULL; return EINA_TRUE; } if (!subtype->copy) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } d->array = eina_inarray_new(subtype->value_size, s->step); if (!d->array) return EINA_FALSE; sz = s->array->member_size; count = eina_inarray_count(s->array); ptr = s->array->members; ptr_end = ptr + (count * sz); for (i = 0; ptr < ptr_end; ptr += sz, i++) { void *imem = eina_inarray_alloc_at(d->array, i, 1); if (!imem) goto error; if (!subtype->copy(subtype, ptr, imem)) { eina_inarray_pop(d->array); goto error; } } return EINA_TRUE; error: _eina_value_type_array_flush_elements(d); return EINA_FALSE; } static int _eina_value_type_array_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const Eina_Value_Type *subtype; const Eina_Value_Array *eva_a = a, *eva_b = b; const char *a_ptr, *a_ptr_end, *b_ptr; unsigned int count_a, count_b, count, sz; int cmp = 0; if (eva_a->subtype != eva_b->subtype) { eina_error_set(EINA_ERROR_VALUE_FAILED); return -1; } subtype = eva_a->subtype; if (!subtype->compare) { eina_error_set(EINA_ERROR_VALUE_FAILED); return 0; } if ((!eva_a->array) && (!eva_b->array)) return 0; else if (!eva_a->array) return -1; else if (!eva_b->array) return 1; count_a = eina_inarray_count(eva_a->array); count_b = eina_inarray_count(eva_b->array); if (count_a <= count_b) count = count_a; else count = count_b; sz = eva_a->array->member_size; a_ptr = eva_a->array->members; a_ptr_end = a_ptr + (count * sz); b_ptr = eva_b->array->members; for (; (cmp == 0) && (a_ptr < a_ptr_end); a_ptr += sz, b_ptr += sz) cmp = subtype->compare(subtype, a_ptr, b_ptr); if (cmp == 0) { if (count_a < count_b) return -1; else if (count_a > count_b) return 1; return 0; } return cmp; } static Eina_Bool _eina_value_type_array_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const Eina_Value_Array *tmem = type_mem; Eina_Bool ret = EINA_FALSE; if ((convert == EINA_VALUE_TYPE_STRING) || (convert == EINA_VALUE_TYPE_STRINGSHARE)) { Eina_Strbuf *str = eina_strbuf_new(); const char *ptr; if (!tmem->array) eina_strbuf_append(str, "[]"); else { const Eina_Value_Type *subtype = tmem->subtype; unsigned char sz; const char *ptr_end; Eina_Value tmp; Eina_Bool first = EINA_TRUE; eina_value_setup(&tmp, EINA_VALUE_TYPE_STRING); eina_strbuf_append_char(str, '['); sz = tmem->array->member_size; ptr = tmem->array->members; ptr_end = ptr + tmem->array->len * sz; for (; ptr < ptr_end; ptr += sz) { Eina_Bool r = EINA_FALSE; if (subtype->convert_to) { r = subtype->convert_to(subtype, EINA_VALUE_TYPE_STRING, ptr, tmp.value.buf); if (r) { if (first) first = EINA_FALSE; else eina_strbuf_append_length(str, ", ", 2); eina_strbuf_append(str, tmp.value.ptr); free(tmp.value.ptr); tmp.value.ptr = NULL; } } if (!r) { if (first) { first = EINA_FALSE; eina_strbuf_append_char(str, '?'); } else eina_strbuf_append_length(str, ", ?", 3); } } eina_strbuf_append_char(str, ']'); } ptr = eina_strbuf_string_get(str); ret = eina_value_type_pset(convert, convert_mem, &ptr); eina_strbuf_free(str); } else if ((tmem->array) && (tmem->array->len == 1)) { const Eina_Value_Type *subtype = tmem->subtype; void *imem = tmem->array->members; if (subtype->convert_to) ret = subtype->convert_to(subtype, convert, imem, convert_mem); if ((!ret) && (convert->convert_from)) ret = convert->convert_from(convert, subtype, convert_mem, imem); } if (!ret) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_array_convert_from(const Eina_Value_Type *type, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem) { Eina_Value_Array *tmem = type_mem; Eina_Value_Array desc = {convert, tmem->step, NULL}; char *buf; void *imem; if (!eina_value_type_pset(type, tmem, &desc)) return EINA_FALSE; buf = alloca(convert->value_size); if (!eina_value_type_pget(convert, convert_mem, &buf)) return EINA_FALSE; imem = eina_inarray_alloc_at(tmem->array, 0, 1); if (!imem) return EINA_FALSE; if (!eina_value_type_setup(convert, imem)) goto error_setup; if (!eina_value_type_pset(convert, imem, &buf)) goto error_set; return EINA_TRUE; error_set: eina_value_type_flush(convert, imem); error_setup: eina_inarray_remove_at(tmem->array, 0); return EINA_FALSE; } static Eina_Bool _eina_value_type_array_pset(const Eina_Value_Type *type, void *mem, const void *ptr) { Eina_Value_Array *tmem = mem; const Eina_Value_Array *desc = ptr; Eina_Inarray *desc_array; eina_error_set(0); if ((!tmem->subtype) && (!desc->subtype)) return EINA_TRUE; desc_array = desc->array; if (desc_array) { Eina_Value_Array tmp; EINA_SAFETY_ON_FALSE_RETURN_VAL (desc_array->member_size == desc->subtype->value_size, EINA_FALSE); if (desc_array == tmem->array) { tmem->subtype = desc->subtype; return EINA_TRUE; } if (!_eina_value_type_array_copy(type, desc, &tmp)) return EINA_FALSE; _eina_value_type_array_flush(type, tmem); memcpy(tmem, &tmp, sizeof(tmp)); return EINA_TRUE; } if (tmem->array) { _eina_value_type_array_flush_elements(tmem); eina_inarray_step_set(tmem->array, sizeof (Eina_Inarray), desc->subtype->value_size, desc->step); } else { tmem->array = eina_inarray_new(desc->subtype->value_size, desc->step); if (!tmem->array) return EINA_FALSE; } tmem->subtype = desc->subtype; return EINA_TRUE; } static Eina_Bool _eina_value_type_array_vset(const Eina_Value_Type *type, void *mem, va_list args) { const Eina_Value_Array desc = va_arg(args, Eina_Value_Array); _eina_value_type_array_pset(type, mem, &desc); return EINA_TRUE; } static Eina_Bool _eina_value_type_array_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { memcpy(ptr, mem, sizeof(Eina_Value_Array)); return EINA_TRUE; } static const Eina_Value_Type _EINA_VALUE_TYPE_ARRAY = { EINA_VALUE_TYPE_VERSION, sizeof(Eina_Value_Array), "Eina_Value_Array", _eina_value_type_array_setup, _eina_value_type_array_flush, _eina_value_type_array_copy, _eina_value_type_array_compare, _eina_value_type_array_convert_to, _eina_value_type_array_convert_from, _eina_value_type_array_vset, _eina_value_type_array_pset, _eina_value_type_array_pget }; static Eina_Bool _eina_value_type_list_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { memset(mem, 0, sizeof(Eina_Value_List)); return EINA_TRUE; } static Eina_Bool _eina_value_type_list_flush_elements(Eina_Value_List *tmem) { const Eina_Value_Type *subtype = tmem->subtype; Eina_Bool ret = EINA_TRUE; if (!tmem->list) return EINA_TRUE; while (tmem->list) { void *mem = eina_value_list_node_memory_get(tmem->subtype, tmem->list); ret &= eina_value_type_flush(subtype, mem); eina_value_list_node_memory_flush(tmem->subtype, tmem->list); tmem->list = eina_list_remove_list(tmem->list, tmem->list); } return ret; } static Eina_Bool _eina_value_type_list_flush(const Eina_Value_Type *type __UNUSED__, void *mem) { Eina_Value_List *tmem = mem; Eina_Bool ret =_eina_value_type_list_flush_elements(tmem); if (tmem->list) eina_list_free(tmem->list); tmem->list = NULL; tmem->subtype = NULL; return ret; } static Eina_Bool _eina_value_type_list_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const Eina_Value_Type *subtype; const Eina_Value_List *s = src; Eina_Value_List *d = dst; const Eina_List *snode; d->subtype = subtype = s->subtype; if ((!s->list) || (!s->subtype)) { d->list = NULL; return EINA_TRUE; } if (!subtype->copy) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } d->list = NULL; for (snode = s->list; snode != NULL; snode = snode->next) { const void *ptr = eina_value_list_node_memory_get(subtype, snode); Eina_List *dnode; void *imem; d->list = eina_list_append(d->list, (void*)1L); dnode = eina_list_last(d->list); EINA_SAFETY_ON_NULL_GOTO(dnode, error); EINA_SAFETY_ON_FALSE_GOTO(dnode->data == (void*)1L, error); imem = eina_value_list_node_memory_setup(subtype, dnode); if (!subtype->copy(subtype, ptr, imem)) { eina_value_list_node_memory_flush(subtype, dnode); d->list = eina_list_remove_list(d->list, dnode); goto error; } } return EINA_TRUE; error: _eina_value_type_list_flush_elements(d); return EINA_FALSE; } static int _eina_value_type_list_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const Eina_Value_Type *subtype; const Eina_Value_List *eva_a = a, *eva_b = b; const Eina_List *anode, *bnode; int cmp = 0; if (eva_a->subtype != eva_b->subtype) { eina_error_set(EINA_ERROR_VALUE_FAILED); return -1; } subtype = eva_a->subtype; if (!subtype->compare) { eina_error_set(EINA_ERROR_VALUE_FAILED); return 0; } if ((!eva_a->list) && (!eva_b->list)) return 0; else if (!eva_a->list) return -1; else if (!eva_b->list) return 1; for (anode = eva_a->list, bnode = eva_b->list; (cmp == 0) && (anode) && (bnode); anode = anode->next, bnode = bnode->next) { const void *amem = eina_value_list_node_memory_get(subtype, anode); const void *bmem = eina_value_list_node_memory_get(subtype, bnode); cmp = subtype->compare(subtype, amem, bmem); } if (cmp == 0) { if ((!anode) && (bnode)) return -1; else if ((anode) && (!bnode)) return 1; return 0; } return cmp; } static Eina_Bool _eina_value_type_list_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const Eina_Value_List *tmem = type_mem; Eina_Bool ret = EINA_FALSE; if ((convert == EINA_VALUE_TYPE_STRING) || (convert == EINA_VALUE_TYPE_STRINGSHARE)) { Eina_Strbuf *str = eina_strbuf_new(); const char *s; if (!tmem->list) eina_strbuf_append(str, "[]"); else { const Eina_Value_Type *subtype = tmem->subtype; const Eina_List *node; Eina_Value tmp; Eina_Bool first = EINA_TRUE; eina_value_setup(&tmp, EINA_VALUE_TYPE_STRING); eina_strbuf_append_char(str, '['); for (node = tmem->list; node != NULL; node = node->next) { Eina_Bool r = EINA_FALSE; if (subtype->convert_to) { const void *ptr; ptr = eina_value_list_node_memory_get(subtype, node); r = subtype->convert_to(subtype, EINA_VALUE_TYPE_STRING, ptr, tmp.value.buf); if (r) { if (first) first = EINA_FALSE; else eina_strbuf_append_length(str, ", ", 2); eina_strbuf_append(str, tmp.value.ptr); free(tmp.value.ptr); tmp.value.ptr = NULL; } } if (!r) { if (first) { first = EINA_FALSE; eina_strbuf_append_char(str, '?'); } else eina_strbuf_append_length(str, ", ?", 3); } } eina_strbuf_append_char(str, ']'); } s = eina_strbuf_string_get(str); ret = eina_value_type_pset(convert, convert_mem, &s); eina_strbuf_free(str); } else if ((tmem->list) && (tmem->list->next == NULL)) { const Eina_Value_Type *subtype = tmem->subtype; void *imem = eina_value_list_node_memory_get(subtype, tmem->list); if (subtype->convert_to) ret = subtype->convert_to(subtype, convert, imem, convert_mem); if ((!ret) && (convert->convert_from)) ret = convert->convert_from(convert, subtype, convert_mem, imem); } if (!ret) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_list_convert_from(const Eina_Value_Type *type, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem) { Eina_Value_List *tmem = type_mem; Eina_Value_List desc = {convert, NULL}; Eina_List *node; char *buf; void *imem; if (!eina_value_type_pset(type, tmem, &desc)) return EINA_FALSE; buf = alloca(convert->value_size); if (!eina_value_type_pget(convert, convert_mem, &buf)) return EINA_FALSE; tmem->list = eina_list_append(tmem->list, (void*)1L); node = eina_list_last(tmem->list); EINA_SAFETY_ON_NULL_RETURN_VAL(node, EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(node->data == (void*)1L, EINA_FALSE); imem = eina_value_list_node_memory_setup(tmem->subtype, node); if (!imem) { tmem->list = eina_list_remove_list(tmem->list, node); return EINA_FALSE; } if (!eina_value_type_setup(tmem->subtype, imem)) goto error_setup; if (!eina_value_type_pset(tmem->subtype, imem, &buf)) goto error_set; return EINA_TRUE; error_set: eina_value_type_flush(tmem->subtype, imem); error_setup: eina_value_list_node_memory_flush(tmem->subtype, node); tmem->list = eina_list_remove_list(tmem->list, node); return EINA_FALSE; } static Eina_Bool _eina_value_type_list_pset(const Eina_Value_Type *type, void *mem, const void *ptr) { Eina_Value_List *tmem = mem; const Eina_Value_List *desc = ptr; eina_error_set(0); if ((!tmem->subtype) && (!desc->subtype)) return EINA_TRUE; if ((tmem->list) && (tmem->list == desc->list)) { tmem->subtype = desc->subtype; return EINA_TRUE; } if (desc->list) { Eina_Value_List tmp; if (!_eina_value_type_list_copy(type, desc, &tmp)) return EINA_FALSE; _eina_value_type_list_flush(type, tmem); memcpy(tmem, &tmp, sizeof(tmp)); return EINA_TRUE; } _eina_value_type_list_flush_elements(tmem); tmem->subtype = desc->subtype; return EINA_TRUE; } static Eina_Bool _eina_value_type_list_vset(const Eina_Value_Type *type, void *mem, va_list args) { const Eina_Value_List desc = va_arg(args, Eina_Value_List); _eina_value_type_list_pset(type, mem, &desc); return EINA_TRUE; } static Eina_Bool _eina_value_type_list_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { memcpy(ptr, mem, sizeof(Eina_Value_List)); return EINA_TRUE; } static const Eina_Value_Type _EINA_VALUE_TYPE_LIST = { EINA_VALUE_TYPE_VERSION, sizeof(Eina_Value_List), "Eina_Value_List", _eina_value_type_list_setup, _eina_value_type_list_flush, _eina_value_type_list_copy, _eina_value_type_list_compare, _eina_value_type_list_convert_to, _eina_value_type_list_convert_from, _eina_value_type_list_vset, _eina_value_type_list_pset, _eina_value_type_list_pget }; static Eina_Bool _eina_value_type_hash_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { memset(mem, 0, sizeof(Eina_Value_Hash)); return EINA_TRUE; } struct _eina_value_type_hash_flush_each_ctx { const Eina_Value_Type *subtype; Eina_Bool ret; }; static Eina_Bool _eina_value_type_hash_flush_each(const Eina_Hash *hash __UNUSED__, const void *key __UNUSED__, void *mem, void *user_data) { struct _eina_value_type_hash_flush_each_ctx *ctx = user_data; ctx->ret &= eina_value_type_flush(ctx->subtype, mem); free(mem); return EINA_TRUE; } static Eina_Bool _eina_value_type_hash_flush_elements(Eina_Value_Hash *tmem) { struct _eina_value_type_hash_flush_each_ctx ctx = { tmem->subtype, EINA_TRUE }; if (!tmem->hash) return EINA_TRUE; eina_hash_foreach(tmem->hash, _eina_value_type_hash_flush_each, &ctx); eina_hash_free(tmem->hash); tmem->hash = NULL; return ctx.ret; } static Eina_Bool _eina_value_type_hash_flush(const Eina_Value_Type *type __UNUSED__, void *mem) { Eina_Value_Hash *tmem = mem; Eina_Bool ret =_eina_value_type_hash_flush_elements(tmem); tmem->subtype = NULL; return ret; } static unsigned int _eina_value_hash_key_length(const void *key) { if (!key) return 0; return (int)strlen(key) + 1; } static int _eina_value_hash_key_cmp(const void *key1, int key1_len, const void *key2, int key2_len) { int r = key1_len - key2_len; if (r != 0) return r; return strcmp(key1, key2); } static Eina_Bool _eina_value_type_hash_create(Eina_Value_Hash *desc) { if (!desc->buckets_power_size) desc->buckets_power_size = 5; desc->hash = eina_hash_new(_eina_value_hash_key_length, _eina_value_hash_key_cmp, EINA_KEY_HASH(eina_hash_superfast), NULL, desc->buckets_power_size); return !!desc->hash; } struct _eina_value_type_hash_copy_each_ctx { const Eina_Value_Type *subtype; Eina_Value_Hash *dest; Eina_Bool ret; }; static Eina_Bool _eina_value_type_hash_copy_each(const Eina_Hash *hash __UNUSED__, const void *key, void *_ptr, void *user_data) { struct _eina_value_type_hash_copy_each_ctx *ctx = user_data; const void *ptr = _ptr; void *imem = malloc(ctx->subtype->value_size); if (!imem) { ctx->ret = EINA_FALSE; return EINA_FALSE; } if (!ctx->subtype->copy(ctx->subtype, ptr, imem)) { free(imem); ctx->ret = EINA_FALSE; return EINA_FALSE; } if (!eina_hash_add(ctx->dest->hash, key, imem)) { eina_value_type_flush(ctx->subtype, imem); free(imem); ctx->ret = EINA_FALSE; return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_hash_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const Eina_Value_Hash *s = src; Eina_Value_Hash *d = dst; struct _eina_value_type_hash_copy_each_ctx ctx = {s->subtype, d, EINA_TRUE}; d->subtype = s->subtype; d->buckets_power_size = s->buckets_power_size; if ((!s->hash) || (!s->subtype)) { d->hash = NULL; return EINA_TRUE; } if (!s->subtype->copy) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } if (!_eina_value_type_hash_create(d)) return EINA_FALSE; eina_hash_foreach(s->hash, _eina_value_type_hash_copy_each, &ctx); if (!ctx.ret) { _eina_value_type_hash_flush_elements(d); return EINA_FALSE; } return EINA_TRUE; } struct _eina_value_type_hash_compare_each_ctx { const Eina_Value_Type *subtype; const Eina_Hash *other; int cmp; }; static Eina_Bool _eina_value_type_hash_compare_each(const Eina_Hash *hash __UNUSED__, const void *key, void *_ptr, void *user_data) { struct _eina_value_type_hash_compare_each_ctx *ctx = user_data; const void *self_ptr = _ptr; const void *other_ptr = eina_hash_find(ctx->other, key); if (!other_ptr) return EINA_TRUE; ctx->cmp = ctx->subtype->compare(ctx->subtype, self_ptr, other_ptr); return ctx->cmp == 0; } static int _eina_value_type_hash_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const Eina_Value_Hash *eva_a = a, *eva_b = b; struct _eina_value_type_hash_compare_each_ctx ctx = { eva_a->subtype, eva_b->hash, 0 }; if (eva_a->subtype != eva_b->subtype) { eina_error_set(EINA_ERROR_VALUE_FAILED); return -1; } if (!eva_a->subtype->compare) { eina_error_set(EINA_ERROR_VALUE_FAILED); return 0; } if ((!eva_a->hash) && (!eva_b->hash)) return 0; else if (!eva_a->hash) return -1; else if (!eva_b->hash) return 1; eina_hash_foreach(eva_a->hash, _eina_value_type_hash_compare_each, &ctx); if (ctx.cmp == 0) { unsigned int count_a = eina_hash_population(eva_a->hash); unsigned int count_b = eina_hash_population(eva_b->hash); if (count_a < count_b) return -1; else if (count_a > count_b) return 1; return 0; } return ctx.cmp; } static Eina_Bool _eina_value_type_hash_find_first(const Eina_Hash *hash __UNUSED__, const void *key __UNUSED__, void *ptr, void *user_data) { void **ret = user_data; *ret = ptr; return EINA_FALSE; } struct _eina_value_type_hash_convert_to_string_each_ctx { const Eina_Value_Type *subtype; Eina_Strbuf *str; Eina_Value tmp; Eina_Bool first; }; static Eina_Bool _eina_value_type_hash_convert_to_string_each(const Eina_Hash *hash __UNUSED__, const void *_key, void *_ptr, void *user_data) { struct _eina_value_type_hash_convert_to_string_each_ctx *ctx = user_data; const char *key = _key; const void *ptr = _ptr; Eina_Bool r = EINA_FALSE; if (ctx->first) ctx->first = EINA_FALSE; else eina_strbuf_append_length(ctx->str, ", ", 2); eina_strbuf_append(ctx->str, key); eina_strbuf_append_length(ctx->str, ": ", 2); if (ctx->subtype->convert_to) { r = ctx->subtype->convert_to(ctx->subtype, EINA_VALUE_TYPE_STRING, ptr, ctx->tmp.value.buf); if (r) { eina_strbuf_append(ctx->str, ctx->tmp.value.ptr); free(ctx->tmp.value.ptr); ctx->tmp.value.ptr = NULL; } } if (!r) eina_strbuf_append_char(ctx->str, '?'); return EINA_TRUE; } static Eina_Bool _eina_value_type_hash_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const Eina_Value_Hash *tmem = type_mem; Eina_Bool ret = EINA_FALSE; if ((convert == EINA_VALUE_TYPE_STRING) || (convert == EINA_VALUE_TYPE_STRINGSHARE)) { Eina_Strbuf *str = eina_strbuf_new(); const char *s; if (!tmem->hash) eina_strbuf_append(str, "{}"); else { struct _eina_value_type_hash_convert_to_string_each_ctx ctx; ctx.subtype = tmem->subtype; ctx.str = str; ctx.first = EINA_TRUE; eina_value_setup(&ctx.tmp, EINA_VALUE_TYPE_STRING); eina_strbuf_append_char(str, '{'); eina_hash_foreach(tmem->hash, _eina_value_type_hash_convert_to_string_each, &ctx); eina_strbuf_append_char(str, '}'); } s = eina_strbuf_string_get(str); ret = eina_value_type_pset(convert, convert_mem, &s); eina_strbuf_free(str); } else if ((tmem->hash) && (eina_hash_population(tmem->hash) == 1)) { const Eina_Value_Type *subtype = tmem->subtype; void *imem = NULL; eina_hash_foreach(tmem->hash, _eina_value_type_hash_find_first, &imem); if (!imem) /* shouldn't happen... */ ret = EINA_FALSE; else { if (subtype->convert_to) ret = subtype->convert_to(subtype, convert, imem, convert_mem); if ((!ret) && (convert->convert_from)) ret = convert->convert_from(convert, subtype, convert_mem, imem); } } if (!ret) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_hash_pset(const Eina_Value_Type *type, void *mem, const void *ptr) { Eina_Value_Hash *tmem = mem; const Eina_Value_Hash *desc = ptr; eina_error_set(0); if ((!tmem->subtype) && (!desc->subtype)) return EINA_TRUE; if ((tmem->hash) && (tmem->hash == desc->hash)) { tmem->subtype = desc->subtype; return EINA_TRUE; } if (desc->hash) { Eina_Value_Hash tmp; if (!_eina_value_type_hash_copy(type, desc, &tmp)) return EINA_FALSE; _eina_value_type_hash_flush(type, tmem); memcpy(tmem, &tmp, sizeof(tmp)); return EINA_TRUE; } if (tmem->hash) _eina_value_type_hash_flush_elements(tmem); tmem->subtype = desc->subtype; if (!_eina_value_type_hash_create(tmem)) return EINA_FALSE; return EINA_TRUE; } static Eina_Bool _eina_value_type_hash_vset(const Eina_Value_Type *type, void *mem, va_list args) { const Eina_Value_Hash desc = va_arg(args, Eina_Value_Hash); _eina_value_type_hash_pset(type, mem, &desc); return EINA_TRUE; } static Eina_Bool _eina_value_type_hash_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { memcpy(ptr, mem, sizeof(Eina_Value_Hash)); return EINA_TRUE; } static const Eina_Value_Type _EINA_VALUE_TYPE_HASH = { EINA_VALUE_TYPE_VERSION, sizeof(Eina_Value_Hash), "Eina_Value_Hash", _eina_value_type_hash_setup, _eina_value_type_hash_flush, _eina_value_type_hash_copy, _eina_value_type_hash_compare, _eina_value_type_hash_convert_to, NULL, /* no convert from */ _eina_value_type_hash_vset, _eina_value_type_hash_pset, _eina_value_type_hash_pget }; static Eina_Bool _eina_value_type_timeval_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { memset(mem, 0, sizeof(struct timeval)); return EINA_TRUE; } static Eina_Bool _eina_value_type_timeval_flush(const Eina_Value_Type *type __UNUSED__, void *mem __UNUSED__) { return EINA_TRUE; } static Eina_Bool _eina_value_type_timeval_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const struct timeval *s = src; struct timeval *d = dst; *d = *s; return EINA_TRUE; } static inline struct timeval _eina_value_type_timeval_fix(const struct timeval *input) { struct timeval ret = *input; if (EINA_UNLIKELY(ret.tv_usec < 0)) { ret.tv_sec -= 1; ret.tv_usec += 1e6; } return ret; } static int _eina_value_type_timeval_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { struct timeval va = _eina_value_type_timeval_fix(a); struct timeval vb = _eina_value_type_timeval_fix(b); if (va.tv_sec < vb.tv_sec) return -1; else if (va.tv_sec > vb.tv_sec) return 1; if (va.tv_usec < vb.tv_usec) return -1; else if (va.tv_usec > vb.tv_usec) return 1; return 0; } static Eina_Bool _eina_value_type_timeval_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { struct timeval v = _eina_value_type_timeval_fix(type_mem); eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem = v.tv_sec; if (EINA_UNLIKELY(v.tv_sec < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v.tv_sec > eina_value_uchar_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem = v.tv_sec; if (EINA_UNLIKELY(v.tv_sec < 0)) return EINA_FALSE; if (EINA_UNLIKELY(v.tv_sec > eina_value_ushort_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem = v.tv_sec; if (EINA_UNLIKELY(v.tv_sec < 0)) return EINA_FALSE; if (EINA_UNLIKELY((unsigned long) v.tv_sec > eina_value_uint_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem = v.tv_sec; if (EINA_UNLIKELY(v.tv_sec < 0)) return EINA_FALSE; if (EINA_UNLIKELY((sizeof(other_mem) != sizeof(v)) && ((unsigned long)v.tv_sec > eina_value_ulong_max))) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem = v.tv_sec; if (EINA_UNLIKELY(v.tv_sec < 0)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { signed char other_mem = v.tv_sec; if (EINA_UNLIKELY(v.tv_sec < eina_value_char_min)) return EINA_FALSE; if (EINA_UNLIKELY(v.tv_sec > eina_value_char_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem = v.tv_sec; if (EINA_UNLIKELY(v.tv_sec < eina_value_short_min)) return EINA_FALSE; if (EINA_UNLIKELY(v.tv_sec > eina_value_short_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem = v.tv_sec; if (EINA_UNLIKELY(v.tv_sec < eina_value_int_min)) return EINA_FALSE; if (EINA_UNLIKELY(v.tv_sec > eina_value_int_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem = v.tv_sec; if (EINA_UNLIKELY(v.tv_sec < eina_value_long_min)) return EINA_FALSE; if (EINA_UNLIKELY(v.tv_sec > eina_value_long_max)) return EINA_FALSE; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem = v.tv_sec; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) { float other_mem = (float)v.tv_sec + (float)v.tv_usec / 1.0e6; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_DOUBLE) { double other_mem = (double)v.tv_sec + (double)v.tv_usec / 1.0e6; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const char *other_mem; char buf[64]; snprintf(buf, sizeof(buf), "%ld.%06ld", v.tv_sec, v.tv_usec); other_mem = buf; /* required due &buf == buf */ return eina_value_type_pset(convert, convert_mem, &other_mem); } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } } static Eina_Bool _eina_value_type_timeval_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { struct timeval *tmem = mem; *tmem = _eina_value_type_timeval_fix(ptr); return EINA_TRUE; } static Eina_Bool _eina_value_type_timeval_vset(const Eina_Value_Type *type, void *mem, va_list args) { const struct timeval desc = va_arg(args, struct timeval); _eina_value_type_timeval_pset(type, mem, &desc); return EINA_TRUE; } static Eina_Bool _eina_value_type_timeval_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { memcpy(ptr, mem, sizeof(struct timeval)); return EINA_TRUE; } static const Eina_Value_Type _EINA_VALUE_TYPE_TIMEVAL = { EINA_VALUE_TYPE_VERSION, sizeof(struct timeval), "struct timeval", _eina_value_type_timeval_setup, _eina_value_type_timeval_flush, _eina_value_type_timeval_copy, _eina_value_type_timeval_compare, _eina_value_type_timeval_convert_to, NULL, /* no convert from */ _eina_value_type_timeval_vset, _eina_value_type_timeval_pset, _eina_value_type_timeval_pget }; static Eina_Bool _eina_value_type_blob_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { memset(mem, 0, sizeof(Eina_Value_Blob)); return EINA_TRUE; } static inline const Eina_Value_Blob_Operations * _eina_value_type_blob_ops_get(const Eina_Value_Blob *blob) { if (!blob) return NULL; if (!blob->ops) return NULL; EINA_SAFETY_ON_FALSE_RETURN_VAL (blob->ops->version == EINA_VALUE_BLOB_OPERATIONS_VERSION, NULL); return blob->ops; } static Eina_Bool _eina_value_type_blob_flush(const Eina_Value_Type *type __UNUSED__, void *mem) { const Eina_Value_Blob_Operations *ops = _eina_value_type_blob_ops_get(mem); Eina_Value_Blob *tmem = mem; if ((ops) && (ops->free)) ops->free(ops, (void *)tmem->memory, tmem->size); tmem->memory = NULL; tmem->size = 0; return EINA_TRUE; } static Eina_Bool _eina_value_type_blob_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const Eina_Value_Blob_Operations *ops = _eina_value_type_blob_ops_get(src); const Eina_Value_Blob *s = src; Eina_Value_Blob *d = dst; *d = *s; if ((ops) && (ops->copy)) { d->memory = ops->copy(ops, s->memory, s->size); if ((d->memory == NULL) && (s->size > 0)) return EINA_FALSE; } return EINA_TRUE; } static int _eina_value_type_blob_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const Eina_Value_Blob_Operations *ops = _eina_value_type_blob_ops_get(a); const Eina_Value_Blob *ta = a, *tb = b; size_t minsize; if (ta->ops != tb->ops) { eina_error_set(EINA_ERROR_VALUE_FAILED); return -1; } if ((ops) && (ops->compare)) return ops->compare(ops, ta->memory, ta->size, tb->memory, tb->size); if (ta->size < tb->size) minsize = ta->size; else minsize = tb->size; return memcmp(ta->memory, tb->memory, minsize); } static Eina_Bool _eina_value_type_blob_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const Eina_Value_Blob *tmem = type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const Eina_Value_Blob_Operations *ops; Eina_Strbuf *str; const char *other_mem; Eina_Bool ret = EINA_FALSE, first = EINA_TRUE; const unsigned char *ptr, *ptr_end; ops = _eina_value_type_blob_ops_get(tmem); if ((ops) && (ops->to_string)) { char *x = ops->to_string(ops, tmem->memory, tmem->size); if (x) { ret = eina_value_type_pset(convert, convert_mem, &x); free(x); } return ret; } str = eina_strbuf_new(); if (!str) return EINA_FALSE; if (!eina_strbuf_append_printf(str, "BLOB(%u, [", tmem->size)) goto error; ptr = tmem->memory; ptr_end = ptr + tmem->size; for (; ptr < ptr_end; ptr++) { if (first) { first = EINA_FALSE; if (!eina_strbuf_append_printf(str, "%02hhx", *ptr)) goto error; } else { if (!eina_strbuf_append_printf(str, " %02hhx", *ptr)) goto error; } } if (!eina_strbuf_append(str, "])")) goto error; other_mem = eina_strbuf_string_get(str); ret = eina_value_type_pset(convert, convert_mem, &other_mem); error: eina_strbuf_free(str); return ret; } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } } static Eina_Bool _eina_value_type_blob_convert_from(const Eina_Value_Type *type, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem) { Eina_Value_Blob desc; char *buf; desc.ops = EINA_VALUE_BLOB_OPERATIONS_MALLOC; if ((convert == EINA_VALUE_TYPE_STRING) || (convert == EINA_VALUE_TYPE_STRINGSHARE)) { const char *str = *(const char **)convert_mem; if (!str) { desc.size = 0; desc.memory = NULL; } else { desc.size = strlen(str) + 1; desc.memory = buf = malloc(desc.size); if (!desc.memory) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } memcpy(buf, str, desc.size); } } else if (convert == EINA_VALUE_TYPE_ARRAY) { const Eina_Value_Array *a = convert_mem; if ((!a->array) || (a->array->len == 0)) { desc.size = 0; desc.memory = NULL; } else { desc.size = a->array->len * a->array->member_size; desc.memory = buf = malloc(desc.size); if (!desc.memory) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } memcpy(buf, a->array->members, desc.size); } } else if (convert == EINA_VALUE_TYPE_BLOB) { const Eina_Value_Blob *b = convert_mem; if (b->size == 0) { desc.size = 0; desc.memory = NULL; } else { desc.size = b->size; desc.memory = buf = malloc(desc.size); if (!desc.memory) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } memcpy(buf, b->memory, desc.size); } } else { desc.size = convert->value_size; desc.memory = buf = malloc(convert->value_size); if (!desc.memory) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } if (!eina_value_type_pget(convert, convert_mem, buf)) { free(buf); return EINA_FALSE; } } return eina_value_type_pset(type, type_mem, &desc); } static Eina_Bool _eina_value_type_blob_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { const Eina_Value_Blob_Operations *ops = _eina_value_type_blob_ops_get(mem); Eina_Value_Blob *tmem = mem; const Eina_Value_Blob *desc = ptr; eina_error_set(0); if ((tmem->memory) && (tmem->memory == desc->memory)) { tmem->ops = desc->ops; tmem->size = desc->size; return EINA_TRUE; } if ((ops) && (ops->free)) ops->free(ops, (void *)tmem->memory, tmem->size); *tmem = *desc; return EINA_TRUE; } static Eina_Bool _eina_value_type_blob_vset(const Eina_Value_Type *type, void *mem, va_list args) { const Eina_Value_Blob desc = va_arg(args, Eina_Value_Blob); _eina_value_type_blob_pset(type, mem, &desc); return EINA_TRUE; } static Eina_Bool _eina_value_type_blob_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { memcpy(ptr, mem, sizeof(Eina_Value_Blob)); return EINA_TRUE; } static const Eina_Value_Type _EINA_VALUE_TYPE_BLOB = { EINA_VALUE_TYPE_VERSION, sizeof(Eina_Value_Blob), "Eina_Value_Blob", _eina_value_type_blob_setup, _eina_value_type_blob_flush, _eina_value_type_blob_copy, _eina_value_type_blob_compare, _eina_value_type_blob_convert_to, _eina_value_type_blob_convert_from, _eina_value_type_blob_vset, _eina_value_type_blob_pset, _eina_value_type_blob_pget }; static int _eina_value_struct_operations_binsearch_cmp(const void *pa, const void *pb) { const Eina_Value_Struct_Member *a = pa, *b = pb; return strcmp(a->name, b->name); } static const Eina_Value_Struct_Member * _eina_value_struct_operations_binsearch_find_member(const Eina_Value_Struct_Operations *ops __UNUSED__, const Eina_Value_Struct_Desc *desc, const char *name) { unsigned int count = desc->member_count; Eina_Value_Struct_Member search; if (count == 0) { const Eina_Value_Struct_Member *itr = desc->members; for (; itr->name != NULL; itr++) count++; } search.name = name; return bsearch(&search, desc->members, count, sizeof(Eina_Value_Struct_Member), _eina_value_struct_operations_binsearch_cmp); } static Eina_Value_Struct_Operations _EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH = { EINA_VALUE_STRUCT_OPERATIONS_VERSION, NULL, /* default alloc */ NULL, /* default free */ NULL, /* default copy */ NULL, /* default compare */ _eina_value_struct_operations_binsearch_find_member }; static const Eina_Value_Struct_Member * _eina_value_struct_operations_stringshare_find_member(const Eina_Value_Struct_Operations *ops __UNUSED__, const Eina_Value_Struct_Desc *desc, const char *name) { const Eina_Value_Struct_Member *itr = desc->members; /* assumes name is stringshared. * * we do this because it's the recommended usage pattern, moreover * we expect to find the member, as users shouldn't look for * non-existent members! */ if (desc->member_count > 0) { const Eina_Value_Struct_Member *itr_end = itr + desc->member_count; for (; itr < itr_end; itr++) if (itr->name == name) return itr; } else { for (; itr->name != NULL; itr++) if (itr->name == name) return itr; } itr = desc->members; name = eina_stringshare_add(name); eina_stringshare_del(name); /* we'll not use the contents, this is fine */ /* stringshare and look again */ if (desc->member_count > 0) { const Eina_Value_Struct_Member *itr_end = itr + desc->member_count; for (; itr < itr_end; itr++) if (itr->name == name) return itr; } else { for (; itr->name != NULL; itr++) if (itr->name == name) return itr; } return NULL; } static Eina_Value_Struct_Operations _EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE = { EINA_VALUE_STRUCT_OPERATIONS_VERSION, NULL, /* default alloc */ NULL, /* default free */ NULL, /* default copy */ NULL, /* default compare */ _eina_value_struct_operations_stringshare_find_member }; static inline const Eina_Value_Struct_Operations * _eina_value_type_struct_ops_get(const Eina_Value_Struct *st) { if (!st) return NULL; if (!st->desc) return NULL; if (!st->desc->ops) return NULL; EINA_SAFETY_ON_FALSE_RETURN_VAL (st->desc->ops->version == EINA_VALUE_STRUCT_OPERATIONS_VERSION, NULL); return st->desc->ops; } EAPI const Eina_Value_Struct_Member * eina_value_struct_member_find(const Eina_Value_Struct *st, const char *name) { const Eina_Value_Struct_Operations *ops; const Eina_Value_Struct_Member *itr; EINA_SAFETY_ON_NULL_RETURN_VAL(st, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(st->desc, NULL); ops = _eina_value_type_struct_ops_get(st); if ((ops) && (ops->find_member)) return ops->find_member(ops, st->desc, name); itr = st->desc->members; if (st->desc->member_count) { const Eina_Value_Struct_Member *itr_end = itr + st->desc->member_count; for (; itr < itr_end; itr++) { if (strcmp(name, itr->name) == 0) return itr; } return NULL; } else { for (; itr->name != NULL; itr++) { if (strcmp(name, itr->name) == 0) return itr; } return NULL; } } static Eina_Bool _eina_value_type_struct_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { memset(mem, 0, sizeof(Eina_Value_Struct)); return EINA_TRUE; } static Eina_Bool _eina_value_type_struct_setup_member(const Eina_Value_Struct_Member *member, Eina_Value_Struct *st) { unsigned char *base = st->memory; return eina_value_type_setup(member->type, base + member->offset); } static Eina_Bool _eina_value_type_struct_flush_member(const Eina_Value_Struct_Member *member, Eina_Value_Struct *st) { unsigned char *base = st->memory; return eina_value_type_flush(member->type, base + member->offset); } static Eina_Bool _eina_value_type_struct_flush(const Eina_Value_Type *type __UNUSED__, void *mem) { const Eina_Value_Struct_Operations *ops; const Eina_Value_Struct_Member *itr; Eina_Value_Struct *tmem = mem; Eina_Bool ret = EINA_TRUE; if ((!tmem->desc) || (!tmem->memory)) return EINA_TRUE; itr = tmem->desc->members; if (tmem->desc->member_count > 0) { const Eina_Value_Struct_Member *itr_end; itr_end = itr + tmem->desc->member_count; for (; itr < itr_end; itr++) ret &= _eina_value_type_struct_flush_member(itr, tmem); } else { for (; itr->name != NULL; itr++) ret &= _eina_value_type_struct_flush_member(itr, tmem); } ops = _eina_value_type_struct_ops_get(mem); if ((ops) && (ops->free)) ops->free(ops, tmem->desc, tmem->memory); else free(tmem->memory); tmem->memory = NULL; tmem->desc = NULL; return ret; } static Eina_Bool _eina_value_type_struct_copy_member(const Eina_Value_Struct_Member *member, const Eina_Value_Struct *s, Eina_Value_Struct *d) { const unsigned char *base_s = s->memory; unsigned char *base_d = d->memory; return eina_value_type_copy(member->type, base_s + member->offset, base_d + member->offset); } static Eina_Bool _eina_value_type_struct_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const Eina_Value_Struct_Operations *ops; const Eina_Value_Struct_Member *itr; const Eina_Value_Struct *s = src; Eina_Value_Struct *d = dst; *d = *s; if ((!s->desc) || (!s->memory)) return EINA_TRUE; ops = _eina_value_type_struct_ops_get(src); if ((ops) && (ops->copy)) { d->memory = ops->copy(ops, s->desc, s->memory); if (d->memory == NULL) return EINA_FALSE; return EINA_TRUE; } if ((ops) && (ops->alloc)) d->memory = ops->alloc(ops, s->desc); else d->memory = malloc(s->desc->size); if (!d->memory) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } itr = s->desc->members; if (s->desc->member_count > 0) { const Eina_Value_Struct_Member *itr_end = itr + s->desc->member_count; for (; itr < itr_end; itr++) if (!_eina_value_type_struct_copy_member(itr, s, d)) goto error; } else { for (; itr->name != NULL; itr++) if (!_eina_value_type_struct_copy_member(itr, s, d)) goto error; } return EINA_TRUE; error: itr--; for (; itr >= s->desc->members; itr--) _eina_value_type_struct_flush_member(itr, d); if ((ops) && (ops->free)) ops->free(ops, s->desc, d->memory); else free(d->memory); return EINA_FALSE; } static inline int _eina_value_type_struct_compare_member(const Eina_Value_Struct_Member *member, const Eina_Value_Struct *ta, const Eina_Value_Struct *tb) { const unsigned char *base_a = ta->memory; const unsigned char *base_b = tb->memory; return eina_value_type_compare(member->type, base_a + member->offset, base_b + member->offset); } static int _eina_value_type_struct_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const Eina_Value_Struct_Operations *ops = _eina_value_type_struct_ops_get(a); const Eina_Value_Struct *ta = a, *tb = b; const Eina_Value_Struct_Member *itr; int cmp = 0; if ((!ta->desc) && (!tb->desc)) return 0; else if (ta->desc != tb->desc) { eina_error_set(EINA_ERROR_VALUE_FAILED); return -1; } if (ta->desc->ops != tb->desc->ops) { eina_error_set(EINA_ERROR_VALUE_FAILED); return -1; } if ((!ta->memory) && (!tb->memory)) return 0; else if (!ta->memory) return -1; else if (!tb->memory) return 1; if ((ops) && (ops->compare)) return ops->compare(ops, ta->desc, ta->memory, tb->memory); itr = ta->desc->members; if (ta->desc->member_count > 0) { const Eina_Value_Struct_Member *itr_end = itr + ta->desc->member_count; for (; (cmp == 0) && (itr < itr_end); itr++) cmp = _eina_value_type_struct_compare_member(itr, ta, tb); } else { for (; (cmp == 0) && (itr->name != NULL); itr++) cmp = _eina_value_type_struct_compare_member(itr, ta, tb); } return cmp; } static void _eina_value_type_struct_convert_to_string_member(const Eina_Value_Struct *st, const Eina_Value_Struct_Member *member, Eina_Strbuf *str) { const unsigned char *p = st->memory; Eina_Bool first = st->desc->members == member; Eina_Bool r = EINA_FALSE; if (first) eina_strbuf_append_printf(str, "%s: ", member->name); else eina_strbuf_append_printf(str, ", %s: ", member->name); if ((member->type) && (member->type->convert_to)) { const Eina_Value_Type *type = member->type; char *conv = NULL; r = eina_value_type_convert_to(type, EINA_VALUE_TYPE_STRING, p + member->offset, &conv); if (r) { eina_strbuf_append(str, conv); free(conv); } } if (!r) eina_strbuf_append_char(str, '?'); } static Eina_Bool _eina_value_type_struct_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const Eina_Value_Struct *tmem = type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { Eina_Strbuf *str = eina_strbuf_new(); const char *s; Eina_Bool ret; if (!tmem->memory) eina_strbuf_append(str, "{}"); else { const Eina_Value_Struct_Member *itr = tmem->desc->members; eina_strbuf_append_char(str, '{'); if (tmem->desc->member_count > 0) { const Eina_Value_Struct_Member *itr_end; itr_end = itr + tmem->desc->member_count; for (; itr < itr_end; itr++) _eina_value_type_struct_convert_to_string_member (tmem, itr, str); } else { for (; itr->name != NULL; itr++) _eina_value_type_struct_convert_to_string_member (tmem, itr, str); } eina_strbuf_append_char(str, '}'); } s = eina_strbuf_string_get(str); ret = eina_value_type_pset(convert, convert_mem, &s); eina_strbuf_free(str); return ret; } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } } static Eina_Bool _eina_value_type_struct_desc_check(const Eina_Value_Struct_Desc *desc) { unsigned int minsize = 0; const Eina_Value_Struct_Member *itr; EINA_SAFETY_ON_NULL_RETURN_VAL(desc, EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL (desc->version == EINA_VALUE_STRUCT_DESC_VERSION, EINA_FALSE); itr = desc->members; if (desc->member_count > 0) { const Eina_Value_Struct_Member *itr_end = itr + desc->member_count; for (; itr < itr_end; itr++) { unsigned int member_end; EINA_SAFETY_ON_FALSE_RETURN_VAL (eina_value_type_check(itr->type), EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL (itr->type->value_size > 0, EINA_FALSE); member_end = itr->offset + itr->type->value_size; if (minsize < member_end) minsize = member_end; } } else { for (; itr->name != NULL; itr++) { unsigned int member_end; EINA_SAFETY_ON_FALSE_RETURN_VAL (eina_value_type_check(itr->type), EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL (itr->type->value_size > 0, EINA_FALSE); member_end = itr->offset + itr->type->value_size; if (minsize < member_end) minsize = member_end; } } EINA_SAFETY_ON_FALSE_RETURN_VAL(minsize > 0, EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(desc->size >= minsize, EINA_FALSE); return EINA_TRUE; } static Eina_Bool _eina_value_type_struct_pset(const Eina_Value_Type *type, void *mem, const void *ptr) { const Eina_Value_Struct_Operations *ops; Eina_Value_Struct *tmem = mem; const Eina_Value_Struct *desc = ptr; const Eina_Value_Struct_Member *itr; if (!_eina_value_type_struct_desc_check(desc->desc)) { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } eina_error_set(0); if ((tmem->memory) && (tmem->memory == desc->memory)) { tmem->desc = desc->desc; return EINA_TRUE; } if (desc->memory) { Eina_Value_Struct tmp; if (!_eina_value_type_struct_copy(type, desc, &tmp)) return EINA_FALSE; _eina_value_type_struct_flush(type, tmem); memcpy(tmem, &tmp, sizeof(tmp)); return EINA_TRUE; } if (tmem->memory) _eina_value_type_struct_flush(type, mem); tmem->desc = desc->desc; ops = _eina_value_type_struct_ops_get(desc); if ((ops) && (ops->alloc)) tmem->memory = ops->alloc(ops, tmem->desc); else tmem->memory = malloc(tmem->desc->size); if (!tmem->memory) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } itr = tmem->desc->members; if (tmem->desc->member_count > 0) { const Eina_Value_Struct_Member *itr_end; itr_end = itr + tmem->desc->member_count; for (; itr < itr_end; itr++) if (!_eina_value_type_struct_setup_member(itr, tmem)) goto error; } else { for (; itr->name != NULL; itr++) if (!_eina_value_type_struct_setup_member(itr, tmem)) goto error; } return EINA_TRUE; error: itr--; for (; itr >= tmem->desc->members; itr--) _eina_value_type_struct_flush_member(itr, tmem); if ((ops) && (ops->free)) ops->free(ops, tmem->desc, tmem->memory); else free(tmem->memory); tmem->memory = NULL; tmem->desc = NULL; return EINA_FALSE; } static Eina_Bool _eina_value_type_struct_vset(const Eina_Value_Type *type, void *mem, va_list args) { const Eina_Value_Struct desc = va_arg(args, Eina_Value_Struct); _eina_value_type_struct_pset(type, mem, &desc); return EINA_TRUE; } static Eina_Bool _eina_value_type_struct_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { memcpy(ptr, mem, sizeof(Eina_Value_Struct)); return EINA_TRUE; } static const Eina_Value_Type _EINA_VALUE_TYPE_STRUCT = { EINA_VALUE_TYPE_VERSION, sizeof(Eina_Value_Struct), "Eina_Value_Struct", _eina_value_type_struct_setup, _eina_value_type_struct_flush, _eina_value_type_struct_copy, _eina_value_type_struct_compare, _eina_value_type_struct_convert_to, NULL, /* no convert from */ _eina_value_type_struct_vset, _eina_value_type_struct_pset, _eina_value_type_struct_pget }; /* no model for now static Eina_Bool _eina_value_type_model_setup(const Eina_Value_Type *type __UNUSED__, void *mem) { Eina_Model **tmem = mem; *tmem = NULL; return EINA_TRUE; } static Eina_Bool _eina_value_type_model_flush(const Eina_Value_Type *type __UNUSED__, void *mem) { Eina_Model **tmem = mem; if (*tmem) { eina_model_unref(*tmem); *tmem = NULL; } return EINA_TRUE; } static Eina_Bool _eina_value_type_model_copy(const Eina_Value_Type *type __UNUSED__, const void *src, void *dst) { const Eina_Model * const *s = src; Eina_Model **d = dst; if (*s) *d = eina_model_copy(*s); // is it better to deep-copy? else *d = NULL; return EINA_TRUE; } static int _eina_value_type_model_compare(const Eina_Value_Type *type __UNUSED__, const void *a, const void *b) { const Eina_Model * const *ta = a; const Eina_Model * const *tb = b; if ((!*ta) && (!*tb)) return 0; else if (!*ta) return 1; else if (!*tb) return -1; else return eina_model_compare(*ta, *tb); } static Eina_Bool _eina_value_type_model_convert_to(const Eina_Value_Type *type __UNUSED__, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { const Eina_Model *v = *(const Eina_Model **)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { char *other_mem = v ? eina_model_to_string(v) : NULL; Eina_Bool ret = eina_value_type_pset(convert, convert_mem, &other_mem); free(other_mem); return ret; } else { eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } return EINA_TRUE; } static Eina_Bool _eina_value_type_model_vset(const Eina_Value_Type *type __UNUSED__, void *mem, va_list args) { Eina_Model **tmem = mem, *tmp; tmp = va_arg(args, Eina_Model *); if (tmp) eina_model_ref(tmp); if (*tmem) eina_model_unref(*tmem); *tmem = tmp; return EINA_TRUE; } static Eina_Bool _eina_value_type_model_pset(const Eina_Value_Type *type __UNUSED__, void *mem, const void *ptr) { Eina_Model **tmem = mem; Eina_Model **p = (Eina_Model **)ptr; eina_error_set(0); if (*tmem == *p) return EINA_TRUE; if (*p) eina_model_ref(*p); if (*tmem) eina_model_unref(*tmem); *tmem = *p; return EINA_TRUE; } static Eina_Bool _eina_value_type_model_pget(const Eina_Value_Type *type __UNUSED__, const void *mem, void *ptr) { Eina_Model **tmem = (Eina_Model **)mem; Eina_Model **p = ptr; *p = *tmem; return EINA_TRUE; } static const Eina_Value_Type _EINA_VALUE_TYPE_MODEL = { EINA_VALUE_TYPE_VERSION, sizeof(Eina_Model *), "Eina_Model", _eina_value_type_model_setup, _eina_value_type_model_flush, _eina_value_type_model_copy, _eina_value_type_model_compare, _eina_value_type_model_convert_to, NULL, // no convert from _eina_value_type_model_vset, _eina_value_type_model_pset, _eina_value_type_model_pget }; */ /* keep all basic types inlined in an array so we can compare if it's * a basic type using pointer arithmetic. * * NOTE-1: JUST BASIC TYPES, DO NOT ADD MORE TYPES HERE!!! * NOTE-2: KEEP ORDER, see eina_value_init() */ static const Eina_Value_Type _EINA_VALUE_TYPE_BASICS[] = { { EINA_VALUE_TYPE_VERSION, sizeof(unsigned char), "unsigned char", _eina_value_type_uchar_setup, _eina_value_type_uchar_flush, _eina_value_type_uchar_copy, _eina_value_type_uchar_compare, _eina_value_type_uchar_convert_to, NULL, /* no convert from */ _eina_value_type_uchar_vset, _eina_value_type_uchar_pset, _eina_value_type_uchar_pget }, { EINA_VALUE_TYPE_VERSION, sizeof(unsigned short), "unsigned short", _eina_value_type_ushort_setup, _eina_value_type_ushort_flush, _eina_value_type_ushort_copy, _eina_value_type_ushort_compare, _eina_value_type_ushort_convert_to, NULL, /* no convert from */ _eina_value_type_ushort_vset, _eina_value_type_ushort_pset, _eina_value_type_ushort_pget }, { EINA_VALUE_TYPE_VERSION, sizeof(unsigned int), "unsigned int", _eina_value_type_uint_setup, _eina_value_type_uint_flush, _eina_value_type_uint_copy, _eina_value_type_uint_compare, _eina_value_type_uint_convert_to, NULL, /* no convert from */ _eina_value_type_uint_vset, _eina_value_type_uint_pset, _eina_value_type_uint_pget }, { EINA_VALUE_TYPE_VERSION, sizeof(unsigned long), "unsigned long", _eina_value_type_ulong_setup, _eina_value_type_ulong_flush, _eina_value_type_ulong_copy, _eina_value_type_ulong_compare, _eina_value_type_ulong_convert_to, NULL, /* no convert from */ _eina_value_type_ulong_vset, _eina_value_type_ulong_pset, _eina_value_type_ulong_pget }, { EINA_VALUE_TYPE_VERSION, sizeof(uint64_t), "uint64_t", _eina_value_type_uint64_setup, _eina_value_type_uint64_flush, _eina_value_type_uint64_copy, _eina_value_type_uint64_compare, _eina_value_type_uint64_convert_to, NULL, /* no convert from */ _eina_value_type_uint64_vset, _eina_value_type_uint64_pset, _eina_value_type_uint64_pget }, { EINA_VALUE_TYPE_VERSION, sizeof(char), "char", _eina_value_type_char_setup, _eina_value_type_char_flush, _eina_value_type_char_copy, _eina_value_type_char_compare, _eina_value_type_char_convert_to, NULL, /* no convert from */ _eina_value_type_char_vset, _eina_value_type_char_pset, _eina_value_type_char_pget }, { EINA_VALUE_TYPE_VERSION, sizeof(short), "short", _eina_value_type_short_setup, _eina_value_type_short_flush, _eina_value_type_short_copy, _eina_value_type_short_compare, _eina_value_type_short_convert_to, NULL, /* no convert from */ _eina_value_type_short_vset, _eina_value_type_short_pset, _eina_value_type_short_pget }, { EINA_VALUE_TYPE_VERSION, sizeof(int), "int", _eina_value_type_int_setup, _eina_value_type_int_flush, _eina_value_type_int_copy, _eina_value_type_int_compare, _eina_value_type_int_convert_to, NULL, /* no convert from */ _eina_value_type_int_vset, _eina_value_type_int_pset, _eina_value_type_int_pget }, { EINA_VALUE_TYPE_VERSION, sizeof(long), "long", _eina_value_type_long_setup, _eina_value_type_long_flush, _eina_value_type_long_copy, _eina_value_type_long_compare, _eina_value_type_long_convert_to, NULL, /* no convert from */ _eina_value_type_long_vset, _eina_value_type_long_pset, _eina_value_type_long_pget }, { EINA_VALUE_TYPE_VERSION, sizeof(int64_t), "int64_t", _eina_value_type_int64_setup, _eina_value_type_int64_flush, _eina_value_type_int64_copy, _eina_value_type_int64_compare, _eina_value_type_int64_convert_to, NULL, /* no convert from */ _eina_value_type_int64_vset, _eina_value_type_int64_pset, _eina_value_type_int64_pget }, { EINA_VALUE_TYPE_VERSION, sizeof(float), "float", _eina_value_type_float_setup, _eina_value_type_float_flush, _eina_value_type_float_copy, _eina_value_type_float_compare, _eina_value_type_float_convert_to, NULL, /* no convert from */ _eina_value_type_float_vset, _eina_value_type_float_pset, _eina_value_type_float_pget }, { EINA_VALUE_TYPE_VERSION, sizeof(double), "double", _eina_value_type_double_setup, _eina_value_type_double_flush, _eina_value_type_double_copy, _eina_value_type_double_compare, _eina_value_type_double_convert_to, NULL, /* no convert from */ _eina_value_type_double_vset, _eina_value_type_double_pset, _eina_value_type_double_pget }, { EINA_VALUE_TYPE_VERSION, sizeof(const char *), "stringshare", _eina_value_type_string_common_setup, _eina_value_type_stringshare_flush, _eina_value_type_stringshare_copy, _eina_value_type_string_common_compare, _eina_value_type_string_common_convert_to, NULL, /* no convert from */ _eina_value_type_stringshare_vset, _eina_value_type_stringshare_pset, _eina_value_type_string_common_pget }, { EINA_VALUE_TYPE_VERSION, sizeof(char *), "string", _eina_value_type_string_common_setup, _eina_value_type_string_flush, _eina_value_type_string_copy, _eina_value_type_string_common_compare, _eina_value_type_string_common_convert_to, NULL, /* no convert from */ _eina_value_type_string_vset, _eina_value_type_string_pset, _eina_value_type_string_common_pget }, { EINA_VALUE_TYPE_VERSION, sizeof(unsigned long), "timestamp", _eina_value_type_ulong_setup, _eina_value_type_ulong_flush, _eina_value_type_ulong_copy, _eina_value_type_ulong_compare, _eina_value_type_ulong_convert_to, NULL, /* no convert from */ _eina_value_type_ulong_vset, _eina_value_type_ulong_pset, _eina_value_type_ulong_pget } }; static void _eina_value_blob_operations_malloc_free(const Eina_Value_Blob_Operations *ops __UNUSED__, void *memory, size_t size __UNUSED__) { free(memory); } static void * _eina_value_blob_operations_malloc_copy(const Eina_Value_Blob_Operations *ops __UNUSED__, const void *memory, size_t size) { void *ret = malloc(size); if (!ret) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } memcpy(ret, memory, size); return ret; } static const Eina_Value_Blob_Operations _EINA_VALUE_BLOB_OPERATIONS_MALLOC = { EINA_VALUE_BLOB_OPERATIONS_VERSION, _eina_value_blob_operations_malloc_free, _eina_value_blob_operations_malloc_copy, NULL, NULL }; typedef struct _Eina_Value_Inner_Mp Eina_Value_Inner_Mp; struct _Eina_Value_Inner_Mp { Eina_Mempool *mempool; int references; }; /** * @endcond */ static const char EINA_ERROR_VALUE_FAILED_STR[] = "Value check failed."; /** */ static inline void _eina_value_inner_mp_dispose(int size, Eina_Value_Inner_Mp *imp) { EINA_SAFETY_ON_FALSE_RETURN(imp->references == 0); eina_hash_del_by_key(_eina_value_inner_mps, &size); eina_mempool_del(imp->mempool); free(imp); } static inline Eina_Value_Inner_Mp * _eina_value_inner_mp_get(int size) { Eina_Value_Inner_Mp *imp = eina_hash_find(_eina_value_inner_mps, &size); if (imp) return imp; imp = malloc(sizeof(Eina_Value_Inner_Mp)); if (!imp) return NULL; imp->references = 0; imp->mempool = eina_mempool_add(_eina_value_mp_choice, "Eina_Value_Inner_Mp", NULL, size, 16); if (!imp->mempool) { free(imp); return NULL; } if (!eina_hash_add(_eina_value_inner_mps, &size, imp)) { eina_mempool_del(imp->mempool); free(imp); return NULL; } return imp; } static inline void * _eina_value_inner_alloc_internal(int size) { Eina_Value_Inner_Mp *imp; void *mem; imp = _eina_value_inner_mp_get(size); if (!imp) return NULL; mem = eina_mempool_malloc(imp->mempool, size); if (mem) imp->references++; else if (imp->references == 0) _eina_value_inner_mp_dispose(size, imp); return mem; } static inline void _eina_value_inner_free_internal(int size, void *mem) { Eina_Value_Inner_Mp *imp = eina_hash_find(_eina_value_inner_mps, &size); EINA_SAFETY_ON_NULL_RETURN(imp); eina_mempool_free(imp->mempool, mem); imp->references--; if (imp->references > 0) return; _eina_value_inner_mp_dispose(size, imp); } EAPI void * eina_value_inner_alloc(size_t size) { void *mem; if (size > 256) return malloc(size); eina_lock_take(&_eina_value_inner_mps_lock); mem = _eina_value_inner_alloc_internal(size); eina_lock_release(&_eina_value_inner_mps_lock); return mem; } EAPI void eina_value_inner_free(size_t size, void *mem) { if (size > 256) { free(mem); return; } eina_lock_take(&_eina_value_inner_mps_lock); _eina_value_inner_free_internal(size, mem); eina_lock_release(&_eina_value_inner_mps_lock); } /** * @internal * @brief Initialize the value module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the value module of Eina. It is called * by eina_init(). * * @see eina_init() */ Eina_Bool eina_value_init(void) { const char *choice, *tmp; _eina_value_log_dom = eina_log_domain_register("eina_value", EINA_LOG_COLOR_DEFAULT); if (_eina_value_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_value"); return EINA_FALSE; } #ifdef EINA_DEFAULT_MEMPOOL choice = "pass_through"; #else choice = "chained_mempool"; #endif tmp = getenv("EINA_MEMPOOL"); if (tmp && tmp[0]) choice = tmp; _eina_value_mp_choice = strdup(choice); _eina_value_mp = eina_mempool_add (_eina_value_mp_choice, "value", NULL, sizeof(Eina_Value), 32); if (!_eina_value_mp) { ERR("Mempool for value cannot be allocated in value init."); goto on_init_fail_mp; } if (!eina_lock_new(&_eina_value_inner_mps_lock)) { ERR("Cannot create lock in value init."); goto on_init_fail_lock; } _eina_value_inner_mps = eina_hash_int32_new(NULL); if (!_eina_value_inner_mps) { ERR("Cannot create hash for inner mempools in value init."); goto on_init_fail_hash; } EINA_ERROR_VALUE_FAILED = eina_error_msg_static_register( EINA_ERROR_VALUE_FAILED_STR); EINA_VALUE_TYPE_UCHAR = _EINA_VALUE_TYPE_BASICS + 0; EINA_VALUE_TYPE_USHORT = _EINA_VALUE_TYPE_BASICS + 1; EINA_VALUE_TYPE_UINT = _EINA_VALUE_TYPE_BASICS + 2; EINA_VALUE_TYPE_ULONG = _EINA_VALUE_TYPE_BASICS + 3; EINA_VALUE_TYPE_UINT64 = _EINA_VALUE_TYPE_BASICS + 4; EINA_VALUE_TYPE_CHAR = _EINA_VALUE_TYPE_BASICS + 5; EINA_VALUE_TYPE_SHORT = _EINA_VALUE_TYPE_BASICS + 6; EINA_VALUE_TYPE_INT = _EINA_VALUE_TYPE_BASICS + 7; EINA_VALUE_TYPE_LONG = _EINA_VALUE_TYPE_BASICS + 8; EINA_VALUE_TYPE_INT64 = _EINA_VALUE_TYPE_BASICS + 9; EINA_VALUE_TYPE_FLOAT = _EINA_VALUE_TYPE_BASICS + 10; EINA_VALUE_TYPE_DOUBLE = _EINA_VALUE_TYPE_BASICS + 11; EINA_VALUE_TYPE_STRINGSHARE = _EINA_VALUE_TYPE_BASICS + 12; EINA_VALUE_TYPE_STRING = _EINA_VALUE_TYPE_BASICS + 13; EINA_VALUE_TYPE_TIMESTAMP = _EINA_VALUE_TYPE_BASICS + 14; _EINA_VALUE_TYPE_BASICS_START = _EINA_VALUE_TYPE_BASICS + 0; _EINA_VALUE_TYPE_BASICS_END = _EINA_VALUE_TYPE_BASICS + 14; EINA_SAFETY_ON_FALSE_RETURN_VAL((sizeof(_EINA_VALUE_TYPE_BASICS)/sizeof(_EINA_VALUE_TYPE_BASICS[0])) == 15, EINA_FALSE); EINA_VALUE_TYPE_ARRAY = &_EINA_VALUE_TYPE_ARRAY; EINA_VALUE_TYPE_LIST = &_EINA_VALUE_TYPE_LIST; EINA_VALUE_TYPE_HASH = &_EINA_VALUE_TYPE_HASH; EINA_VALUE_TYPE_TIMEVAL = &_EINA_VALUE_TYPE_TIMEVAL; EINA_VALUE_TYPE_BLOB = &_EINA_VALUE_TYPE_BLOB; EINA_VALUE_TYPE_STRUCT = &_EINA_VALUE_TYPE_STRUCT; /* no model for now EINA_VALUE_TYPE_MODEL = &_EINA_VALUE_TYPE_MODEL; */ EINA_VALUE_BLOB_OPERATIONS_MALLOC = &_EINA_VALUE_BLOB_OPERATIONS_MALLOC; EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH = &_EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH; EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE = &_EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE; return EINA_TRUE; on_init_fail_hash: eina_lock_free(&_eina_value_inner_mps_lock); on_init_fail_lock: eina_mempool_del(_eina_value_mp); on_init_fail_mp: free(_eina_value_mp_choice); _eina_value_mp_choice = NULL; eina_log_domain_unregister(_eina_value_log_dom); _eina_value_log_dom = -1; return EINA_FALSE; } /** * @internal * @brief Shut down the value module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the value module set up by * eina_value_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_value_shutdown(void) { eina_lock_take(&_eina_value_inner_mps_lock); if (eina_hash_population(_eina_value_inner_mps) != 0) ERR("Cannot free eina_value internal memory pools -- still in use!"); else eina_hash_free(_eina_value_inner_mps); eina_lock_release(&_eina_value_inner_mps_lock); eina_lock_free(&_eina_value_inner_mps_lock); free(_eina_value_mp_choice); _eina_value_mp_choice = NULL; eina_mempool_del(_eina_value_mp); eina_log_domain_unregister(_eina_value_log_dom); _eina_value_log_dom = -1; return EINA_TRUE; } /*============================================================================* * Global * *============================================================================*/ /*============================================================================* * API * *============================================================================*/ EAPI const Eina_Value_Type *_EINA_VALUE_TYPE_BASICS_START = NULL; EAPI const Eina_Value_Type *_EINA_VALUE_TYPE_BASICS_END = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_UCHAR = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_USHORT = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_UINT = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_ULONG = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_TIMESTAMP = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_UINT64 = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_CHAR = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_SHORT = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_INT = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_LONG = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_INT64 = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_FLOAT = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_DOUBLE = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_STRINGSHARE = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_STRING = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_ARRAY = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_LIST = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_HASH = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_TIMEVAL = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_BLOB = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_STRUCT = NULL; /* no model for now EAPI const Eina_Value_Type *EINA_VALUE_TYPE_MODEL = NULL; */ EAPI const Eina_Value_Blob_Operations *EINA_VALUE_BLOB_OPERATIONS_MALLOC = NULL; EAPI const Eina_Value_Struct_Operations *EINA_VALUE_STRUCT_OPERATIONS_BINSEARCH = NULL; EAPI const Eina_Value_Struct_Operations *EINA_VALUE_STRUCT_OPERATIONS_STRINGSHARE = NULL; EAPI Eina_Error EINA_ERROR_VALUE_FAILED = 0; EAPI const unsigned int eina_prime_table[] = { 17, 31, 61, 127, 257, 509, 1021, 2053, 4093, 8191, 16381, 32771, 65537, 131071, 262147, 524287, 1048573, 2097143, 4194301, 8388617, 16777213 }; EAPI Eina_Value * eina_value_new(const Eina_Value_Type *type) { Eina_Value *value = eina_mempool_malloc(_eina_value_mp, sizeof(Eina_Value));; if (!value) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } if (!eina_value_setup(value, type)) { free(value); return NULL; } return value; } EAPI void eina_value_free(Eina_Value *value) { EINA_SAFETY_ON_NULL_RETURN(value); eina_value_flush(value); eina_mempool_free(_eina_value_mp, value); } EAPI Eina_Bool eina_value_copy(const Eina_Value *value, Eina_Value *copy) { const Eina_Value_Type *type; const void *src; void *dst; Eina_Bool ret; EINA_SAFETY_ON_NULL_RETURN_VAL(value, EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(value->type), EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(copy, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(value->type->copy, EINA_FALSE); type = value->type; if (!eina_value_setup(copy, type)) return EINA_FALSE; src = eina_value_memory_get(value); dst = eina_value_memory_get(copy); ret = type->copy(type, src, dst); if (!ret) eina_value_flush(copy); return ret; } EAPI Eina_Bool eina_value_convert(const Eina_Value *value, Eina_Value *convert) { Eina_Bool ret = EINA_FALSE; const Eina_Value_Type *type, *convert_type; const void *type_mem; void *convert_mem; EINA_SAFETY_ON_NULL_RETURN_VAL(value, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(convert, EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(value->type), EINA_FALSE); EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(convert->type), EINA_FALSE); type = value->type; convert_type = convert->type; type_mem = eina_value_memory_get(value); convert_mem = eina_value_memory_get(convert); if (type->convert_to) ret = type->convert_to(type, convert_type, type_mem, convert_mem); if ((!ret) && (convert_type->convert_from)) ret = convert_type->convert_from(convert_type, type, convert_mem, type_mem); return ret; } EAPI char * eina_value_to_string(const Eina_Value *value) { Eina_Value tmp; EINA_SAFETY_ON_NULL_RETURN_VAL(value, NULL); EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(value->type), NULL); if (!eina_value_setup(&tmp, EINA_VALUE_TYPE_STRING)) return NULL; if (!eina_value_convert(value, &tmp)) return NULL; return tmp.value.ptr; /* steal value */ } EAPI Eina_Value * eina_value_array_new(const Eina_Value_Type *subtype, unsigned int step) { Eina_Value *value; EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(subtype), EINA_FALSE); value = eina_mempool_malloc(_eina_value_mp, sizeof(Eina_Value));; if (!value) return NULL; if (!eina_value_array_setup(value, subtype, step)) { eina_mempool_free(_eina_value_mp, value); return NULL; } return value; } EAPI Eina_Value * eina_value_list_new(const Eina_Value_Type *subtype) { Eina_Value *value; EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(subtype), EINA_FALSE); value = eina_mempool_malloc(_eina_value_mp, sizeof(Eina_Value));; if (!value) return NULL; if (!eina_value_list_setup(value, subtype)) { eina_mempool_free(_eina_value_mp, value); return NULL; } return value; } EAPI Eina_Value * eina_value_hash_new(const Eina_Value_Type *subtype, unsigned int buckets_power_size) { Eina_Value *value; EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(subtype), EINA_FALSE); value = eina_mempool_malloc(_eina_value_mp, sizeof(Eina_Value));; if (!value) return NULL; if (!eina_value_hash_setup(value, subtype, buckets_power_size)) { eina_mempool_free(_eina_value_mp, value); return NULL; } return value; } EAPI Eina_Value * eina_value_struct_new(const Eina_Value_Struct_Desc *desc) { Eina_Value *value; value = eina_mempool_malloc(_eina_value_mp, sizeof(Eina_Value));; if (!value) return NULL; if (!eina_value_struct_setup(value, desc)) { eina_mempool_free(_eina_value_mp, value); return NULL; } return value; } EAPI Eina_Bool eina_value_type_check(const Eina_Value_Type *type) { EINA_SAFETY_ON_NULL_RETURN_VAL(type, EINA_FALSE); return type->version == EINA_VALUE_TYPE_VERSION; } EAPI const char * eina_value_type_name_get(const Eina_Value_Type *type) { EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(type), NULL); return type->name; } eina-1.7.10/src/lib/eina_binshare.c0000664000175000017500000001151012175475327013742 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler, * Jorge Luis Zapata Muga, * Cedric Bail, * Gustavo Sverzut Barbieri * Tom Hacohen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "eina_config.h" #include "eina_private.h" #include "eina_unicode.h" #include "eina_log.h" #include "eina_share_common.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_binshare.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ #ifdef CRITICAL #undef CRITICAL #endif #define CRITICAL(...) EINA_LOG_DOM_CRIT(_eina_share_binshare_log_dom, __VA_ARGS__) #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_share_binshare_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_share_binshare_log_dom, __VA_ARGS__) static int _eina_share_binshare_log_dom = -1; /* The actual share */ static Eina_Share *binshare_share; static const char EINA_MAGIC_BINSHARE_NODE_STR[] = "Eina Binshare Node"; /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the share_common module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the share_common module of Eina. It is called by * eina_init(). * * @see eina_init() */ EAPI Eina_Bool eina_binshare_init(void) { Eina_Bool ret; if (_eina_share_binshare_log_dom < 0) { _eina_share_binshare_log_dom = eina_log_domain_register ("eina_binshare", EINA_LOG_COLOR_DEFAULT); if (_eina_share_binshare_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_binshare"); return EINA_FALSE; } } ret = eina_share_common_init(&binshare_share, EINA_MAGIC_BINSHARE_NODE, EINA_MAGIC_BINSHARE_NODE_STR); if (!ret) { eina_log_domain_unregister(_eina_share_binshare_log_dom); _eina_share_binshare_log_dom = -1; } return ret; } /** * @internal * @brief Shut down the share_common module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the share_common module set up by * eina_share_common_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ EAPI Eina_Bool eina_binshare_shutdown(void) { Eina_Bool ret; ret = eina_share_common_shutdown(&binshare_share); if (_eina_share_binshare_log_dom > 0) { eina_log_domain_unregister(_eina_share_binshare_log_dom); _eina_share_binshare_log_dom = -1; } return ret; } /*============================================================================* * API * *============================================================================*/ EAPI void eina_binshare_del(const void *obj) { if (!obj) return; if (!eina_share_common_del(binshare_share, obj)) CRITICAL("EEEK trying to del non-shared binshare %p", obj); } EAPI const void * eina_binshare_add_length(const void *obj, unsigned int olen) { return eina_share_common_add_length(binshare_share, obj, (olen) * sizeof(char), 0); } EAPI const void * eina_binshare_ref(const void *obj) { return eina_share_common_ref(binshare_share, obj); } EAPI int eina_binshare_length(const void *obj) { return eina_share_common_length(binshare_share, obj); } EAPI void eina_binshare_dump(void) { eina_share_common_dump(binshare_share, NULL, 0); } eina-1.7.10/src/lib/eina_rbtree.c0000664000175000017500000003045712175475327013445 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * Copyright (C) 2011 Alexandre Becoulet * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include "eina_config.h" #include "eina_private.h" #include "eina_array.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_rbtree.h" /*============================================================================* * Local * *============================================================================*/ #define EINA_RBTREE_ITERATOR_PREFIX_MASK 0x1 #define EINA_RBTREE_ITERATOR_INFIX_MASK 0x2 #define EINA_RBTREE_ITERATOR_POSTFIX_MASK 0x4 typedef struct _Eina_Iterator_Rbtree Eina_Iterator_Rbtree; typedef struct _Eina_Iterator_Rbtree_List Eina_Iterator_Rbtree_List; struct _Eina_Iterator_Rbtree { Eina_Iterator iterator; Eina_Array *stack; unsigned char mask; }; struct _Eina_Iterator_Rbtree_List { Eina_Rbtree *tree; Eina_Rbtree_Direction dir : 1; Eina_Bool up : 1; }; static Eina_Iterator_Rbtree_List * _eina_rbtree_iterator_list_new(const Eina_Rbtree *tree) { Eina_Iterator_Rbtree_List *new; eina_error_set(0); new = malloc(sizeof (Eina_Iterator_Rbtree_List)); if (!new) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } new->tree = (Eina_Rbtree *)tree; new->dir = EINA_RBTREE_RIGHT; new->up = EINA_FALSE; return new; } static Eina_Rbtree * _eina_rbtree_iterator_get_content(Eina_Iterator_Rbtree *it) { if (eina_array_count(it->stack) <= 0) return NULL; return eina_array_data_get(it->stack, 0); } static void _eina_rbtree_iterator_free(Eina_Iterator_Rbtree *it) { Eina_Iterator_Rbtree_List *item; Eina_Array_Iterator et; unsigned int i; EINA_ARRAY_ITER_NEXT(it->stack, i, item, et) free(item); eina_array_free(it->stack); free(it); } static Eina_Bool _eina_rbtree_iterator_next(Eina_Iterator_Rbtree *it, void **data) { Eina_Iterator_Rbtree_List *last; Eina_Iterator_Rbtree_List *new; Eina_Rbtree *tree; if (eina_array_count(it->stack) <= 0) return EINA_FALSE; last = eina_array_data_get(it->stack, eina_array_count(it->stack) - 1); tree = last->tree; if (!last->tree || last->up == EINA_TRUE) { last = eina_array_pop(it->stack); while (last->dir == EINA_RBTREE_LEFT || !last->tree) { if (tree) if ((it->mask & EINA_RBTREE_ITERATOR_POSTFIX_MASK) == EINA_RBTREE_ITERATOR_POSTFIX_MASK) { free(last); if (eina_array_count(it->stack) > 0) { last = eina_array_data_get(it->stack, eina_array_count( it-> stack) - 1); last->up = EINA_TRUE; } goto onfix; } free(last); last = eina_array_pop(it->stack); if (!last) return EINA_FALSE; tree = last->tree; } last->dir = EINA_RBTREE_LEFT; last->up = EINA_FALSE; eina_array_push(it->stack, last); if ((it->mask & EINA_RBTREE_ITERATOR_INFIX_MASK) == EINA_RBTREE_ITERATOR_INFIX_MASK) goto onfix; } new = _eina_rbtree_iterator_list_new(last->tree->son[last->dir]); if (!new) return EINA_FALSE; eina_array_push(it->stack, new); if (last->dir == EINA_RBTREE_RIGHT) if ((it->mask & EINA_RBTREE_ITERATOR_PREFIX_MASK) == EINA_RBTREE_ITERATOR_PREFIX_MASK) goto onfix; return _eina_rbtree_iterator_next(it, data); onfix: *data = tree; return EINA_TRUE; } static Eina_Iterator * _eina_rbtree_iterator_build(const Eina_Rbtree *root, unsigned char mask) { Eina_Iterator_Rbtree_List *first; Eina_Iterator_Rbtree *it; eina_error_set(0); it = calloc(1, sizeof (Eina_Iterator_Rbtree)); if (!it) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } it->stack = eina_array_new(8); if (!it->stack) goto on_error2; first = _eina_rbtree_iterator_list_new(root); if (!first) goto on_error; eina_array_push(it->stack, first); it->mask = mask; it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_rbtree_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER( _eina_rbtree_iterator_get_content); it->iterator.free = FUNC_ITERATOR_FREE(_eina_rbtree_iterator_free); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); return &it->iterator; on_error: eina_array_free(it->stack); on_error2: free(it); return NULL; } static void _eina_rbtree_node_init(Eina_Rbtree *node) { if (!node) return; node->son[0] = NULL; node->son[1] = NULL; node->color = EINA_RBTREE_RED; } static inline Eina_Bool _eina_rbtree_is_red(Eina_Rbtree *node) { return !!node && node->color == EINA_RBTREE_RED; } static inline Eina_Rbtree * _eina_rbtree_inline_single_rotation(Eina_Rbtree *node, Eina_Rbtree_Direction dir) { Eina_Rbtree *save = node->son[dir ^ 1]; node->son[dir ^ 1] = save->son[dir]; save->son[dir] = node; node->color = EINA_RBTREE_RED; save->color = EINA_RBTREE_BLACK; return save; } static inline Eina_Rbtree * _eina_rbtree_inline_double_rotation(Eina_Rbtree *node, Eina_Rbtree_Direction dir) { node->son[dir ^ 1] = _eina_rbtree_inline_single_rotation(node->son[dir ^ 1], dir ^ 1); return _eina_rbtree_inline_single_rotation(node, dir); } /*============================================================================* * Global * *============================================================================*/ /*============================================================================* * API * *============================================================================*/ EAPI Eina_Rbtree * eina_rbtree_inline_insert(Eina_Rbtree *root, Eina_Rbtree *node, Eina_Rbtree_Cmp_Node_Cb cmp, const void *data) { Eina_Rbtree **r = &root; Eina_Rbtree *q = root; uintptr_t stack[48]; unsigned int s = 0; EINA_SAFETY_ON_NULL_RETURN_VAL(node, root); EINA_SAFETY_ON_NULL_RETURN_VAL( cmp, root); /* Find insertion leaf */ while (q != NULL) { Eina_Rbtree_Direction dir = cmp(q, node, (void *)data); /* Keep path in stack */ stack[s++] = (uintptr_t)r | dir; r = q->son + dir; q = *r; } /* Insert */ *r = node; _eina_rbtree_node_init(node); /* Rebalance */ while (s > 0) { Eina_Rbtree *a, *b; uintptr_t top = stack[--s]; /* Pop link pointer and direction */ Eina_Rbtree_Direction dir = top & 1; r = (Eina_Rbtree **)(top & ~(uintptr_t)1); q = *r; a = q->son[dir]; /* Rebalance done ? */ if (a == NULL || a->color == EINA_RBTREE_BLACK) break; b = q->son[dir ^ 1]; if (b != NULL && b->color == EINA_RBTREE_RED) { q->color = EINA_RBTREE_RED; b->color = a->color = EINA_RBTREE_BLACK; } else { Eina_Rbtree *c = a->son[dir]; Eina_Rbtree *d = a->son[dir ^ 1]; if (c != NULL && c->color == EINA_RBTREE_RED) *r = _eina_rbtree_inline_single_rotation(*r, dir ^ 1); else if (d != NULL && d->color == EINA_RBTREE_RED) *r = _eina_rbtree_inline_double_rotation(*r, dir ^ 1); } } root->color = EINA_RBTREE_BLACK; return root; } EAPI Eina_Rbtree * eina_rbtree_inline_remove(Eina_Rbtree *root, Eina_Rbtree *node, Eina_Rbtree_Cmp_Node_Cb cmp, const void *data) { Eina_Rbtree *l0, *l1, *r, **rt = &root; Eina_Rbtree_Direction dir; uintptr_t stack[48]; unsigned int s = 0; EINA_SAFETY_ON_NULL_RETURN_VAL(node, root); EINA_SAFETY_ON_NULL_RETURN_VAL( cmp, root); /* Item search loop */ for (r = *rt; r != NULL; r = *rt) { if (r == node) goto found; dir = cmp(r, node, (void*)data); stack[s++] = (uintptr_t)rt | dir; rt = r->son + dir; } return root; found: /* remove entry */ l0 = node->son[0]; l1 = node->son[1]; if (l0 != NULL && l1 != NULL) /* two links case */ { Eina_Rbtree *q, **t, **p; uintptr_t ss; stack[s++] = (uintptr_t)rt | 1; ss = s; /* keep predecessor right link stack index */ /* find predecessor */ p = node->son + 1; q = *p; while (1) { t = q->son; q = *t; if (q == NULL) break; stack[s++] = (uintptr_t)p | 0; p = t; } /* detach predecessor */ q = *p; *p = q->son[1]; int c = q->color; /* replace entry by predecessor */ memcpy(q, node, sizeof(Eina_Rbtree)); *rt = q; if (c == EINA_RBTREE_RED) goto end; /* fix stack for replaced entry */ if (s > ss) stack[ss] = (uintptr_t)(q->son + 1) | 0; } else /* single link case */ { if (l0 == NULL) l0 = l1; *rt = l0; if (node->color == EINA_RBTREE_RED) goto end; /* removed red */ if (l0 != NULL && l0->color == EINA_RBTREE_RED) { /* red child replace removed black */ l0->color = EINA_RBTREE_BLACK; goto end; } } /* rebalance */ while (s > 0) { Eina_Rbtree *q; uintptr_t st = stack[--s]; rt = (Eina_Rbtree**)(st & ~(uintptr_t)1); dir = st & 1; r = *rt; q = r->son[dir ^ 1]; if (q != NULL && q->color == EINA_RBTREE_RED) { *rt = _eina_rbtree_inline_single_rotation(*rt, dir); q = r->son[dir ^ 1]; rt = (*rt)->son + dir; } if (q != NULL) { int r_color = r->color; Eina_Rbtree *nd = q->son[dir ^ 1]; if (nd != NULL && nd->color == EINA_RBTREE_RED) { *rt = _eina_rbtree_inline_single_rotation(*rt, dir); } else { Eina_Rbtree *d = q->son[dir]; if (d != NULL && d->color == EINA_RBTREE_RED) { *rt = _eina_rbtree_inline_double_rotation(*rt, dir); } else { r->color = EINA_RBTREE_BLACK; q->color = EINA_RBTREE_RED; if (r_color == EINA_RBTREE_RED) break; continue; } } r = *rt; r->color = r_color; r->son[1]->color = r->son[0]->color = EINA_RBTREE_BLACK; break; } } end: if (root != NULL) root->color = EINA_RBTREE_BLACK; return root; } EAPI Eina_Iterator * eina_rbtree_iterator_prefix(const Eina_Rbtree *root) { return _eina_rbtree_iterator_build(root, EINA_RBTREE_ITERATOR_PREFIX_MASK); } EAPI Eina_Iterator * eina_rbtree_iterator_infix(const Eina_Rbtree *root) { return _eina_rbtree_iterator_build(root, EINA_RBTREE_ITERATOR_INFIX_MASK); } EAPI Eina_Iterator * eina_rbtree_iterator_postfix(const Eina_Rbtree *root) { return _eina_rbtree_iterator_build(root, EINA_RBTREE_ITERATOR_POSTFIX_MASK); } EAPI void eina_rbtree_delete(Eina_Rbtree *root, Eina_Rbtree_Free_Cb func, void *data) { if (!root) return; EINA_SAFETY_ON_NULL_RETURN(func); eina_rbtree_delete(root->son[0], func, data); eina_rbtree_delete(root->son[1], func, data); func(root, data); } eina-1.7.10/src/lib/eina_convert.c0000664000175000017500000002314512175475327013636 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric BAIL, Vincent Torri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #ifdef HAVE_EVIL # include #endif #include "eina_config.h" #include "eina_private.h" #include "eina_log.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_convert.h" #include "eina_fp.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ static const char look_up_table[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; static int _eina_convert_log_dom = -1; #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_convert_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_convert_log_dom, __VA_ARGS__) #define HEXA_TO_INT(Hexa) (Hexa >= 'a') ? Hexa - 'a' + 10 : Hexa - '0' static inline void reverse(char s[], int length) { int i, j; char c; for (i = 0, j = length - 1; i < j; i++, j--) { c = s[i]; s[i] = s[j]; s[j] = c; } } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @cond LOCAL */ EAPI Eina_Error EINA_ERROR_CONVERT_P_NOT_FOUND = 0; EAPI Eina_Error EINA_ERROR_CONVERT_0X_NOT_FOUND = 0; EAPI Eina_Error EINA_ERROR_CONVERT_OUTRUN_STRING_LENGTH = 0; static const char EINA_ERROR_CONVERT_0X_NOT_FOUND_STR[] = "Error during string conversion to float, First '0x' was not found."; static const char EINA_ERROR_CONVERT_P_NOT_FOUND_STR[] = "Error during string conversion to float, First 'p' was not found."; static const char EINA_ERROR_CONVERT_OUTRUN_STRING_LENGTH_STR[] = "Error outrun string limit during conversion string conversion to float."; /** * @endcond */ /** * @internal * @brief Initialize the convert module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the convert module of Eina. It is called by * eina_init(). * * This function sets up the error module of Eina and registers the * errors #EINA_ERROR_CONVERT_0X_NOT_FOUND, #EINA_ERROR_CONVERT_P_NOT_FOUND * and #EINA_ERROR_CONVERT_OUTRUN_STRING_LENGTH. * * @see eina_init() */ Eina_Bool eina_convert_init(void) { _eina_convert_log_dom = eina_log_domain_register("eina_convert", EINA_LOG_COLOR_DEFAULT); if (_eina_convert_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_convert"); return EINA_FALSE; } #define EEMR(n) n = eina_error_msg_static_register(n ## _STR) EEMR(EINA_ERROR_CONVERT_0X_NOT_FOUND); EEMR(EINA_ERROR_CONVERT_P_NOT_FOUND); EEMR(EINA_ERROR_CONVERT_OUTRUN_STRING_LENGTH); #undef EEMR return EINA_TRUE; } /** * @internal * @brief Shut down the convert module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the convert module set up by * eina_convert_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_convert_shutdown(void) { eina_log_domain_unregister(_eina_convert_log_dom); _eina_convert_log_dom = -1; return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ /* * Come from the second edition of The C Programming Language ("K&R2") on page 64 */ EAPI int eina_convert_itoa(int n, char *s) { int i = 0; int r = 0; EINA_SAFETY_ON_NULL_RETURN_VAL(s, 0); if (n < 0) { n = -n; *s++ = '-'; r = 1; } do { s[i++] = n % 10 + '0'; } while ((n /= 10) > 0); s[i] = '\0'; reverse(s, i); return i + r; } EAPI int eina_convert_xtoa(unsigned int n, char *s) { int i; EINA_SAFETY_ON_NULL_RETURN_VAL(s, 0); i = 0; do { s[i++] = look_up_table[n & 0xF]; } while ((n >>= 4) > 0); s[i] = '\0'; reverse(s, i); return i; } EAPI Eina_Bool eina_convert_atod(const char *src, int length, long long *m, long *e) { const char *str = src; long long mantisse; long exponent; int nbr_decimals = 0; int sign = 1; EINA_SAFETY_ON_NULL_RETURN_VAL(src, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(m, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(e, EINA_FALSE); if (length <= 0) goto on_length_error; /* Compute the mantisse. */ if (*str == '-') { sign = -1; str++; length--; } if (length <= 2) goto on_length_error; if (strncmp(str, "0x", 2)) { eina_error_set(EINA_ERROR_CONVERT_0X_NOT_FOUND); DBG("'0x' not found in '%s'", src); return EINA_FALSE; } str += 2; length -= 2; mantisse = HEXA_TO_INT(*str); str++; length--; if (length <= 0) goto on_length_error; if (*str == '.') for (str++, length--; length > 0 && *str != 'p'; ++str, --length, ++nbr_decimals) { mantisse <<= 4; mantisse += HEXA_TO_INT(*str); } if (sign < 0) mantisse = -mantisse; /* Compute the exponent. */ if (*str != 'p') { eina_error_set(EINA_ERROR_CONVERT_P_NOT_FOUND); DBG("'p' not found in '%s'", src); return EINA_FALSE; } sign = +1; str++; length--; if (length <= 0) goto on_length_error; if (strchr("-+", *str)) { sign = (*str == '-') ? -1 : +1; str++; length--; } for (exponent = 0; length > 0 && *str != '\0'; ++str, --length) { exponent *= 10; exponent += *str - '0'; } if (length < 0) goto on_length_error; if (sign < 0) exponent = -exponent; *m = mantisse; *e = exponent - (nbr_decimals << 2); return EINA_TRUE; on_length_error: eina_error_set(EINA_ERROR_CONVERT_OUTRUN_STRING_LENGTH); return EINA_FALSE; } EAPI int eina_convert_dtoa(double d, char *des) { int length = 0; int p; int i; EINA_SAFETY_ON_NULL_RETURN_VAL(des, EINA_FALSE); if (d < 0.0) { *(des++) = '-'; d = -d; length++; } d = frexp(d, &p); if (p) { d *= 2; p -= 1; } *(des++) = '0'; *(des++) = 'x'; *(des++) = look_up_table[(size_t)d]; *(des++) = '.'; length += 4; for (i = 0; i < 16; i++, length++) { d -= floor(d); d *= 16; *(des++) = look_up_table[(size_t)d]; } while (*(des - 1) == '0') { des--; length--; } if (*(des - 1) == '.') { des--; length--; } *(des++) = 'p'; if (p < 0) { *(des++) = '-'; p = -p; } else *(des++) = '+'; length += 2; return length + eina_convert_itoa(p, des); } EAPI int eina_convert_fptoa(Eina_F32p32 fp, char *des) { int length = 0; int p = 0; int i; EINA_SAFETY_ON_NULL_RETURN_VAL(des, EINA_FALSE); if (fp == 0) { memcpy(des, "0x0p+0", 7); return 7; } if (fp < 0) { *(des++) = '-'; fp = -fp; length++; } /* fp >= 1 */ if (fp >= 0x0000000100000000LL) while (fp >= 0x0000000100000000LL) { p++; /* fp /= 2 */ fp >>= 1; } /* fp < 0.5 */ else if (fp < 0x80000000) while (fp < 0x80000000) { p--; /* fp *= 2 */ fp <<= 1; } if (p) { p--; /* fp *= 2 */ fp <<= 1; } *(des++) = '0'; *(des++) = 'x'; *(des++) = look_up_table[fp >> 32]; *(des++) = '.'; length += 4; for (i = 0; i < 16; i++, length++) { fp &= 0x00000000ffffffffLL; fp <<= 4; /* fp *= 16 */ *(des++) = look_up_table[fp >> 32]; } while (*(des - 1) == '0') { des--; length--; } if (*(des - 1) == '.') { des--; length--; } *(des++) = 'p'; if (p < 0) { *(des++) = '-'; p = -p; } else *(des++) = '+'; length += 2; return length + eina_convert_itoa(p, des); } EAPI Eina_Bool eina_convert_atofp(const char *src, int length, Eina_F32p32 *fp) { long long m; long e; if (!eina_convert_atod(src, length, &m, &e)) return EINA_FALSE; if (!fp) return EINA_FALSE; e += 32; if (e > 0) *fp = m << e; else *fp = m >> -e; return EINA_TRUE; } /** * @} */ eina-1.7.10/src/lib/eina_inarray.c0000664000175000017500000005116512175475327013626 00000000000000/* EINA - EFL data type library * Copyright (C) 2012 - ProFUSION embedded systems * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "eina_config.h" #include "eina_private.h" #include "eina_error.h" #include "eina_log.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_inarray.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ static const char EINA_MAGIC_INARRAY_STR[] = "Eina Inline Array"; static const char EINA_MAGIC_INARRAY_ITERATOR_STR[] = "Eina Inline Array Iterator"; static const char EINA_MAGIC_INARRAY_ACCESSOR_STR[] = "Eina Inline Array Accessor"; typedef struct _Eina_Iterator_Inarray Eina_Iterator_Inarray; typedef struct _Eina_Accessor_Inarray Eina_Accessor_Inarray; struct _Eina_Iterator_Inarray { Eina_Iterator iterator; const Eina_Inarray *array; unsigned int pos; EINA_MAGIC }; struct _Eina_Accessor_Inarray { Eina_Accessor accessor; const Eina_Inarray *array; EINA_MAGIC }; static int _eina_inarray_log_dom = -1; #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_inarray_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_inarray_log_dom, __VA_ARGS__) #define EINA_MAGIC_CHECK_INARRAY(d, ...) \ do \ { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_INARRAY)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_INARRAY); \ return __VA_ARGS__; \ } \ eina_error_set(0); \ } \ while(0) #define EINA_MAGIC_CHECK_INARRAY_ITERATOR(d, ...) \ do \ { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_INARRAY_ITERATOR)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_INARRAY_ITERATOR); \ return __VA_ARGS__; \ } \ eina_error_set(0); \ } \ while(0) #define EINA_MAGIC_CHECK_INARRAY_ACCESSOR(d, ...) \ do \ { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_INARRAY_ACCESSOR)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_INARRAY_ACCESSOR); \ return __VA_ARGS__; \ } \ eina_error_set(0); \ } \ while(0) static void _eina_inarray_setup(Eina_Inarray *array, unsigned int member_size, unsigned int step) { EINA_MAGIC_SET(array, EINA_MAGIC_INARRAY); array->version = EINA_ARRAY_VERSION; array->member_size = member_size; array->len = 0; array->max = 0; array->step = (step > 0) ? step : 32; array->members = NULL; } static Eina_Bool _eina_inarray_resize(Eina_Inarray *array, unsigned int new_size) { unsigned int new_max; void *tmp; if (new_size < array->max) /* don't change this behaviour as eina_inarray_pop rely on it */ return EINA_TRUE; if (new_size % array->step == 0) new_max = new_size; else new_max = ((new_size / array->step) + 1) * array->step; tmp = realloc(array->members, new_max * array->member_size); if ((!tmp) && (new_max > 0)) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } array->members = tmp; array->max = new_max; return EINA_TRUE; } static inline void * _eina_inarray_get(const Eina_Inarray *array, unsigned int position) { unsigned int offset = position * array->member_size; return (unsigned char *)array->members + offset; } static int _eina_inarray_search(const Eina_Inarray *array, const void *data, Eina_Compare_Cb compare) { const unsigned char *start, *found; start = array->members; found = bsearch(data, start, array->len, array->member_size, compare); if (!found) return -1; return (found - start) / array->member_size; } static unsigned int _eina_inarray_search_sorted_near(const Eina_Inarray *array, const void *data, Eina_Compare_Cb compare, int *cmp) { unsigned int start, last, middle; if (array->len == 0) { *cmp = -1; return 0; } else if (array->len == 1) { *cmp = compare(data, array->members); return 0; } start = 0; last = array->len - 1; /* inclusive */ do { void *p; middle = start + (last - start) / 2; /* avoid overflow */ p = _eina_inarray_get(array, middle); *cmp = compare(data, p); if (*cmp == 0) return middle; else if (*cmp > 0) start = middle + 1; else if (middle > 0) last = middle - 1; else break; } while (start <= last); return middle; } static Eina_Bool _eina_inarray_iterator_next(Eina_Iterator_Inarray *it, void **data) { EINA_MAGIC_CHECK_INARRAY_ITERATOR(it, EINA_FALSE); if (it->pos >= it->array->len) return EINA_FALSE; *data = _eina_inarray_get(it->array, it->pos); it->pos++; return EINA_TRUE; } static Eina_Bool _eina_inarray_iterator_prev(Eina_Iterator_Inarray *it, void **data) { EINA_MAGIC_CHECK_INARRAY_ITERATOR(it, EINA_FALSE); if (it->pos == 0) return EINA_FALSE; it->pos--; *data = _eina_inarray_get(it->array, it->pos); return EINA_TRUE; } static Eina_Inarray * _eina_inarray_iterator_get_container(Eina_Iterator_Inarray *it) { EINA_MAGIC_CHECK_INARRAY_ITERATOR(it, NULL); return (Eina_Inarray *)it->array; } static void _eina_inarray_iterator_free(Eina_Iterator_Inarray *it) { EINA_MAGIC_CHECK_INARRAY_ITERATOR(it); MAGIC_FREE(it); } static Eina_Bool _eina_inarray_accessor_get_at(Eina_Accessor_Inarray *it, unsigned int pos, void **data) { EINA_MAGIC_CHECK_INARRAY_ACCESSOR(it, EINA_FALSE); if (pos >= it->array->len) return EINA_FALSE; *data = _eina_inarray_get(it->array, pos); return EINA_TRUE; } static Eina_Inarray * _eina_inarray_accessor_get_container(Eina_Accessor_Inarray *it) { EINA_MAGIC_CHECK_INARRAY_ACCESSOR(it, NULL); return (Eina_Inarray *)it->array; } static void _eina_inarray_accessor_free(Eina_Accessor_Inarray *it) { EINA_MAGIC_CHECK_INARRAY_ACCESSOR(it); MAGIC_FREE(it); } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the inline array module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the inline array module of Eina. It is called * by eina_init(). * * @see eina_init() */ Eina_Bool eina_inarray_init(void) { _eina_inarray_log_dom = eina_log_domain_register("eina_inarray", EINA_LOG_COLOR_DEFAULT); if (_eina_inarray_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_inarray"); return EINA_FALSE; } #define EMS(n) eina_magic_string_static_set(n, n ## _STR) EMS(EINA_MAGIC_INARRAY); EMS(EINA_MAGIC_INARRAY_ITERATOR); EMS(EINA_MAGIC_INARRAY_ACCESSOR); #undef EMS return EINA_TRUE; } /** * @internal * @brief Shut down the inline array module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the inline array module set up by * eina_inarray_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_inarray_shutdown(void) { eina_log_domain_unregister(_eina_inarray_log_dom); _eina_inarray_log_dom = -1; return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI Eina_Inarray * eina_inarray_new(unsigned int member_size, unsigned int step) { Eina_Inarray *ret; EINA_SAFETY_ON_TRUE_RETURN_VAL(member_size == 0, NULL); ret = malloc(sizeof(*ret)); if (!ret) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } eina_error_set(0); _eina_inarray_setup(ret, member_size, step); return ret; } EAPI void eina_inarray_free(Eina_Inarray *array) { if (!array) return; EINA_MAGIC_CHECK_INARRAY(array); free(array->members); free(array); } EAPI void eina_inarray_step_set(Eina_Inarray *array, unsigned int sizeof_eina_inarray, unsigned int member_size, unsigned int step) { EINA_SAFETY_ON_NULL_RETURN(array); EINA_SAFETY_ON_TRUE_RETURN(member_size == 0); if (sizeof (Eina_Inarray) != sizeof_eina_inarray) { ERR("Unknow Eina_Inarray size ! Got %i, expected %i\n", sizeof_eina_inarray, (int) sizeof (Eina_Inarray)); /* Force memory to zero to provide a small layer of security */ memset(array, 0, sizeof_eina_inarray); return ; } _eina_inarray_setup(array, member_size, step); } EAPI void eina_inarray_flush(Eina_Inarray *array) { EINA_MAGIC_CHECK_INARRAY(array); free(array->members); array->len = 0; array->max = 0; array->members = NULL; } EAPI int eina_inarray_push(Eina_Inarray *array, const void *data) { void *p; EINA_MAGIC_CHECK_INARRAY(array, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(data, -1); if (!_eina_inarray_resize(array, array->len + 1)) return -1; p = _eina_inarray_get(array, array->len); memcpy(p, data, array->member_size); array->len++; return array->len - 1; } EAPI int eina_inarray_insert(Eina_Inarray *array, const void *data, Eina_Compare_Cb compare) { const unsigned char *itr, *itr_end; unsigned int sz; EINA_MAGIC_CHECK_INARRAY(array, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(data, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(compare, -1); sz = array->member_size; itr = array->members; itr_end = itr + array->len * sz; for (; itr < itr_end; itr += sz) { unsigned int offset, position; int cmp = compare(itr, data); if (cmp <= 0) continue; offset = itr - (unsigned char *)array->members; position = offset / sz; if (!eina_inarray_insert_at(array, position, data)) return -1; return position; } return eina_inarray_push(array, data); } EAPI int eina_inarray_insert_sorted(Eina_Inarray *array, const void *data, Eina_Compare_Cb compare) { unsigned int pos; int cmp; EINA_MAGIC_CHECK_INARRAY(array, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(data, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(compare, -1); pos = _eina_inarray_search_sorted_near(array, data, compare, &cmp); if (cmp > 0) pos++; if (!eina_inarray_insert_at(array, pos, data)) return -1; return pos; } EAPI int eina_inarray_remove(Eina_Inarray *array, const void *data) { const unsigned char *itr, *itr_end; unsigned int position, sz; EINA_MAGIC_CHECK_INARRAY(array, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(data, -1); sz = array->member_size; if ((data >= array->members) && (data < _eina_inarray_get(array, array->len))) { unsigned int offset = ((unsigned char *)data - (unsigned char *)array->members); position = offset / sz; goto found; } itr = array->members; itr_end = itr + array->len * sz; for (; itr < itr_end; itr += sz) { if (memcmp(data, itr, sz) == 0) { unsigned int offset = itr - (unsigned char *)array->members; position = offset / sz; goto found; } } return -1; found: if (!eina_inarray_remove_at(array, position)) return -1; return position; } EAPI void * eina_inarray_pop(Eina_Inarray *array) { EINA_MAGIC_CHECK_INARRAY(array, NULL); EINA_SAFETY_ON_TRUE_RETURN_VAL(array->len == 0, NULL); if (!_eina_inarray_resize(array, array->len - 1)) return NULL; array->len--; return _eina_inarray_get(array, array->len + 1); } EAPI void * eina_inarray_nth(const Eina_Inarray *array, unsigned int position) { EINA_MAGIC_CHECK_INARRAY(array, NULL); EINA_SAFETY_ON_TRUE_RETURN_VAL(position >= array->len, NULL); return _eina_inarray_get(array, position); } EAPI Eina_Bool eina_inarray_insert_at(Eina_Inarray *array, unsigned int position, const void *data) { unsigned int sz; unsigned char *p; EINA_MAGIC_CHECK_INARRAY(array, EINA_FALSE); EINA_SAFETY_ON_TRUE_RETURN_VAL(position > array->len, EINA_FALSE); if (!_eina_inarray_resize(array, array->len + 1)) return EINA_FALSE; p = _eina_inarray_get(array, position); sz = array->member_size; if (array->len > position) memmove(p + sz, p, (array->len - position) * sz); memcpy(p, data, sz); array->len++; return EINA_TRUE; } EAPI void * eina_inarray_alloc_at(Eina_Inarray *array, unsigned int position, unsigned int member_count) { unsigned int sz; unsigned char *p; EINA_MAGIC_CHECK_INARRAY(array, NULL); EINA_SAFETY_ON_TRUE_RETURN_VAL(position > array->len, NULL); EINA_SAFETY_ON_TRUE_RETURN_VAL(member_count == 0, NULL); if (!_eina_inarray_resize(array, array->len + member_count)) return NULL; p = _eina_inarray_get(array, position); sz = array->member_size; if (array->len > position) memmove(p + member_count * sz, p, (array->len - position) * sz); array->len += member_count; return p; } EAPI Eina_Bool eina_inarray_replace_at(Eina_Inarray *array, unsigned int position, const void *data) { unsigned char *p; EINA_MAGIC_CHECK_INARRAY(array, EINA_FALSE); EINA_SAFETY_ON_TRUE_RETURN_VAL(position >= array->len, EINA_FALSE); p = _eina_inarray_get(array, position); memcpy(p, data, array->member_size); return EINA_TRUE; } EAPI Eina_Bool eina_inarray_remove_at(Eina_Inarray *array, unsigned int position) { EINA_MAGIC_CHECK_INARRAY(array, EINA_FALSE); EINA_SAFETY_ON_TRUE_RETURN_VAL(position >= array->len, EINA_FALSE); if (position + 1 < array->len) { unsigned int sz = array->member_size; unsigned char *p = _eina_inarray_get(array, position); memmove(p, p + sz, (array->len - position - 1) * sz); } _eina_inarray_resize(array, array->len - 1); array->len--; return EINA_TRUE; } EAPI void eina_inarray_reverse(Eina_Inarray *array) { size_t sz; unsigned char *fwd, *rev, *fwd_end; void *tmp; EINA_MAGIC_CHECK_INARRAY(array); if (array->len < 2) return; sz = array->member_size; tmp = alloca(sz); EINA_SAFETY_ON_NULL_RETURN(tmp); fwd = array->members; fwd_end = fwd + (array->len / 2) * sz; rev = fwd + (array->len - 1) * sz; for (; fwd < fwd_end; fwd += sz, rev -= sz) { memcpy(tmp, fwd, sz); memcpy(fwd, rev, sz); memcpy(rev, tmp, sz); } } EAPI void eina_inarray_sort(Eina_Inarray *array, Eina_Compare_Cb compare) { EINA_MAGIC_CHECK_INARRAY(array); EINA_SAFETY_ON_NULL_RETURN(compare); qsort(array->members, array->len, array->member_size, compare); } EAPI int eina_inarray_search(const Eina_Inarray *array, const void *data, Eina_Compare_Cb compare) { EINA_MAGIC_CHECK_INARRAY(array, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(data, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(compare, -1); return _eina_inarray_search(array, data, compare); } EAPI int eina_inarray_search_sorted(const Eina_Inarray *array, const void *data, Eina_Compare_Cb compare) { unsigned int pos; int cmp; EINA_MAGIC_CHECK_INARRAY(array, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(data, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(compare, -1); pos = _eina_inarray_search_sorted_near(array, data, compare, &cmp); if (cmp == 0) return pos; return -1; } EAPI Eina_Bool eina_inarray_foreach(const Eina_Inarray *array, Eina_Each_Cb function, const void *user_data) { unsigned char *itr, *itr_end; unsigned int sz; Eina_Bool ret = EINA_TRUE; EINA_MAGIC_CHECK_INARRAY(array, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(function, EINA_FALSE); sz = array->member_size; itr = array->members; itr_end = itr + array->len * sz; for (; (itr < itr_end) && (ret); itr += sz) ret = function(array, itr, (void *)user_data); return ret; } EAPI int eina_inarray_foreach_remove(Eina_Inarray *array, Eina_Each_Cb match, const void *user_data) { unsigned int i = 0, count = 0; EINA_MAGIC_CHECK_INARRAY(array, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(match, -1); while (i < array->len) { void *p = _eina_inarray_get(array, i); if (match(array, p, (void *)user_data) == EINA_FALSE) { i++; continue; } eina_inarray_remove_at(array, i); count++; } return count; } EAPI unsigned int eina_inarray_count(const Eina_Inarray *array) { EINA_MAGIC_CHECK_INARRAY(array, 0); return array->len; } EAPI Eina_Iterator * eina_inarray_iterator_new(const Eina_Inarray *array) { Eina_Iterator_Inarray *it; EINA_MAGIC_CHECK_INARRAY(array, NULL); eina_error_set(0); it = calloc(1, sizeof(Eina_Iterator_Inarray)); if (!it) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } EINA_MAGIC_SET(it, EINA_MAGIC_INARRAY_ITERATOR); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->array = array; it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_inarray_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER (_eina_inarray_iterator_get_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_inarray_iterator_free); return &it->iterator; } EAPI Eina_Iterator * eina_inarray_iterator_reversed_new(const Eina_Inarray *array) { Eina_Iterator_Inarray *it; EINA_MAGIC_CHECK_INARRAY(array, NULL); eina_error_set(0); it = calloc(1, sizeof(Eina_Iterator_Inarray)); if (!it) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } EINA_MAGIC_SET(it, EINA_MAGIC_INARRAY_ITERATOR); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->array = array; it->pos = array->len; it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_inarray_iterator_prev); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER (_eina_inarray_iterator_get_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_inarray_iterator_free); return &it->iterator; } EAPI Eina_Accessor * eina_inarray_accessor_new(const Eina_Inarray *array) { Eina_Accessor_Inarray *ac; EINA_MAGIC_CHECK_INARRAY(array, NULL); eina_error_set(0); ac = calloc(1, sizeof(Eina_Accessor_Inarray)); if (!ac) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } EINA_MAGIC_SET(ac, EINA_MAGIC_INARRAY_ACCESSOR); EINA_MAGIC_SET(&ac->accessor, EINA_MAGIC_ACCESSOR); ac->array = array; ac->accessor.version = EINA_ACCESSOR_VERSION; ac->accessor.get_at = FUNC_ACCESSOR_GET_AT(_eina_inarray_accessor_get_at); ac->accessor.get_container = FUNC_ACCESSOR_GET_CONTAINER (_eina_inarray_accessor_get_container); ac->accessor.free = FUNC_ACCESSOR_FREE(_eina_inarray_accessor_free); return &ac->accessor; } eina-1.7.10/src/lib/eina_rectangle.c0000664000175000017500000003316412175475327014124 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Cedric BAIL, Carsten Haitzler * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #ifdef HAVE_EVIL # include #endif #include "eina_config.h" #include "eina_private.h" #include "eina_magic.h" #include "eina_inlist.h" #include "eina_mempool.h" #include "eina_list.h" #include "eina_trash.h" #include "eina_log.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_rectangle.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ #define EINA_RECTANGLE_POOL_MAGIC 0x1578FCB0 #define EINA_RECTANGLE_ALLOC_MAGIC 0x1578FCB1 #define BUCKET_THRESHOLD 110 typedef struct _Eina_Rectangle_Alloc Eina_Rectangle_Alloc; struct _Eina_Rectangle_Pool { Eina_Inlist *head; Eina_List *empty; void *data; Eina_Trash *bucket; unsigned int bucket_count; unsigned int references; int w; int h; Eina_Bool sorted; EINA_MAGIC }; struct _Eina_Rectangle_Alloc { EINA_INLIST; Eina_Rectangle_Pool *pool; EINA_MAGIC }; #define EINA_MAGIC_CHECK_RECTANGLE_POOL(d) \ do { \ if (!EINA_MAGIC_CHECK((d), EINA_RECTANGLE_POOL_MAGIC)) { \ EINA_MAGIC_FAIL((d), EINA_RECTANGLE_POOL_MAGIC); } \ } while (0) #define EINA_MAGIC_CHECK_RECTANGLE_ALLOC(d) \ do { \ if (!EINA_MAGIC_CHECK((d), EINA_RECTANGLE_ALLOC_MAGIC)) { \ EINA_MAGIC_FAIL((d), EINA_RECTANGLE_ALLOC_MAGIC); } \ } while (0) static Eina_Mempool *_eina_rectangle_alloc_mp = NULL; static Eina_Mempool *_eina_rectangle_mp = NULL; static Eina_Trash *_eina_rectangles = NULL; static unsigned int _eina_rectangles_count = 0; static int _eina_rectangle_log_dom = -1; #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_rectangle_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_rectangle_log_dom, __VA_ARGS__) static int _eina_rectangle_cmp(const Eina_Rectangle *r1, const Eina_Rectangle *r2) { return (r2->w * r2->h) - (r1->w * r1->h); } static Eina_List * _eina_rectangle_merge_list(Eina_List *empty, Eina_Rectangle *r) { Eina_Rectangle *match; Eina_List *l; int xw; int yh; if (r->w == 0 || r->h == 0) { eina_rectangle_free(r); return empty; } start_again: xw = r->x + r->w; yh = r->y + r->h; EINA_LIST_FOREACH(empty, l, match) { if (match->x == r->x && match->w == r->w && (match->y == yh || r->y == match->y + match->h)) { if (match->y > r->y) match->y = r->y; match->h += r->h; eina_rectangle_free(r); empty = eina_list_remove_list(empty, l); r = match; goto start_again; } else if (match->y == r->y && match->h == r->h && (match->x == xw || r->x == match->x + match->w)) { if (match->x > r->x) match->x = r->x; match->w += r->w; eina_rectangle_free(r); empty = eina_list_remove_list(empty, l); r = match; goto start_again; } } return eina_list_append(empty, r); } static Eina_List * _eina_rectangle_empty_space_find(Eina_List *empty, int w, int h, int *x, int *y) { Eina_Rectangle *r; Eina_List *l; EINA_LIST_FOREACH(empty, l, r) { if (r->w >= w && r->h >= h) { /* Remove l from empty */ empty = eina_list_remove_list(empty, l); /* Remember x and y */ *x = r->x; *y = r->y; /* Split r in 2 rectangle if needed (only the empty one) and insert them */ if (r->w == w) { r->y += h; r->h -= h; } else if (r->h == h) { r->x += w; r->w -= w; } else { int rx1, ry1, rw1, rh1; int x2, y2, w2, h2; rx1 = r->x + w; ry1 = r->y; rw1 = r->w - w; /* h1 could be h or r->h */ x2 = r->x; y2 = r->y + h; /* w2 could be w or r->w */ h2 = r->h - h; if (rw1 * r->h > h2 * r->w) { rh1 = r->h; w2 = w; } else { rh1 = h; w2 = r->w; } EINA_RECTANGLE_SET(r, rx1, ry1, rw1, rh1); empty = _eina_rectangle_merge_list(empty, r); r = eina_rectangle_new(x2, y2, w2, h2); } if (r) { empty = _eina_rectangle_merge_list(empty, r); /* Return empty */ } return empty; } } *x = -1; *y = -1; return empty; } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ Eina_Bool eina_rectangle_init(void) { const char *choice, *tmp; _eina_rectangle_log_dom = eina_log_domain_register("eina_rectangle", EINA_LOG_COLOR_DEFAULT); if (_eina_rectangle_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_rectangle"); return EINA_FALSE; } #ifdef EINA_DEFAULT_MEMPOOL choice = "pass_through"; #else choice = "chained_mempool"; #endif tmp = getenv("EINA_MEMPOOL"); if (tmp && tmp[0]) choice = tmp; _eina_rectangle_alloc_mp = eina_mempool_add (choice, "rectangle-alloc", NULL, sizeof(Eina_Rectangle_Alloc) + sizeof(Eina_Rectangle), 64); if (!_eina_rectangle_alloc_mp) { ERR("Mempool for rectangle cannot be allocated in rectangle init."); goto init_error; } _eina_rectangle_mp = eina_mempool_add (choice, "rectangle", NULL, sizeof(Eina_Rectangle), 32); if (!_eina_rectangle_mp) { ERR("Mempool for rectangle cannot be allocated in rectangle init."); goto init_error; } return EINA_TRUE; init_error: eina_log_domain_unregister(_eina_rectangle_log_dom); _eina_rectangle_log_dom = -1; return EINA_FALSE; } Eina_Bool eina_rectangle_shutdown(void) { Eina_Rectangle *del; while ((del = eina_trash_pop(&_eina_rectangles))) eina_mempool_free(_eina_rectangle_mp, del); _eina_rectangles_count = 0; eina_mempool_del(_eina_rectangle_alloc_mp); eina_mempool_del(_eina_rectangle_mp); eina_log_domain_unregister(_eina_rectangle_log_dom); _eina_rectangle_log_dom = -1; return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI Eina_Rectangle * eina_rectangle_new(int x, int y, int w, int h) { Eina_Rectangle *rect; if (_eina_rectangles) { rect = eina_trash_pop(&_eina_rectangles); _eina_rectangles_count--; } else rect = eina_mempool_malloc(_eina_rectangle_mp, sizeof (Eina_Rectangle)); if (!rect) return NULL; EINA_RECTANGLE_SET(rect, x, y, w, h); return rect; } EAPI void eina_rectangle_free(Eina_Rectangle *rect) { EINA_SAFETY_ON_NULL_RETURN(rect); if (_eina_rectangles_count > BUCKET_THRESHOLD) eina_mempool_free(_eina_rectangle_mp, rect); else { eina_trash_push(&_eina_rectangles, rect); _eina_rectangles_count++; } } EAPI Eina_Rectangle_Pool * eina_rectangle_pool_new(int w, int h) { Eina_Rectangle_Pool *new; if ((w <= 0) || (h <= 0)) return NULL; new = malloc(sizeof (Eina_Rectangle_Pool)); if (!new) return NULL; new->head = NULL; new->empty = eina_list_append(NULL, eina_rectangle_new(0, 0, w, h)); new->references = 0; new->sorted = EINA_FALSE; new->w = w; new->h = h; new->bucket = NULL; new->bucket_count = 0; EINA_MAGIC_SET(new, EINA_RECTANGLE_POOL_MAGIC); DBG("pool=%p, size=(%d, %d)", new, w, h); return new; } EAPI void eina_rectangle_pool_free(Eina_Rectangle_Pool *pool) { Eina_Rectangle_Alloc *del; EINA_SAFETY_ON_NULL_RETURN(pool); DBG("pool=%p, size=(%d, %d), references=%u", pool, pool->w, pool->h, pool->references); while (pool->head) { del = (Eina_Rectangle_Alloc *)pool->head; pool->head = (EINA_INLIST_GET(del))->next; EINA_MAGIC_SET(del, EINA_MAGIC_NONE); eina_mempool_free(_eina_rectangle_alloc_mp, del); } while (pool->bucket) { del = eina_trash_pop(&pool->bucket); eina_mempool_free(_eina_rectangle_alloc_mp, del); } MAGIC_FREE(pool); } EAPI int eina_rectangle_pool_count(Eina_Rectangle_Pool *pool) { EINA_SAFETY_ON_NULL_RETURN_VAL(pool, 0); return pool->references; } EAPI Eina_Rectangle * eina_rectangle_pool_request(Eina_Rectangle_Pool *pool, int w, int h) { Eina_Rectangle_Alloc *new; Eina_Rectangle *rect; int x; int y; EINA_SAFETY_ON_NULL_RETURN_VAL(pool, NULL); DBG("pool=%p, size=(%d, %d), references=%u", pool, pool->w, pool->h, pool->references); if (w <= 0 || h <= 0) return NULL; if (w > pool->w || h > pool->h) return NULL; /* Sort empty if dirty */ if (pool->sorted) { pool->empty = eina_list_sort(pool->empty, 0, EINA_COMPARE_CB(_eina_rectangle_cmp)); pool->sorted = EINA_TRUE; } pool->empty = _eina_rectangle_empty_space_find(pool->empty, w, h, &x, &y); if (x == -1) return NULL; pool->sorted = EINA_FALSE; if (pool->bucket_count > 0) { new = eina_trash_pop(&pool->bucket); pool->bucket_count--; } else new = eina_mempool_malloc(_eina_rectangle_alloc_mp, sizeof (Eina_Rectangle_Alloc) + sizeof (Eina_Rectangle)); if (!new) return NULL; rect = (Eina_Rectangle *)(new + 1); eina_rectangle_coords_from(rect, x, y, w, h); pool->head = eina_inlist_prepend(pool->head, EINA_INLIST_GET(new)); pool->references++; new->pool = pool; EINA_MAGIC_SET(new, EINA_RECTANGLE_ALLOC_MAGIC); DBG("rect=%p pool=%p, size=(%d, %d), references=%u", rect, pool, pool->w, pool->h, pool->references); return rect; } EAPI void eina_rectangle_pool_release(Eina_Rectangle *rect) { Eina_Rectangle_Alloc *era = ((Eina_Rectangle_Alloc *)rect) - 1; Eina_Rectangle *r; EINA_SAFETY_ON_NULL_RETURN(rect); EINA_MAGIC_CHECK_RECTANGLE_ALLOC(era); EINA_MAGIC_CHECK_RECTANGLE_POOL(era->pool); DBG("rect=%p pool=%p, size=(%d, %d), references=%u", rect, era->pool, era->pool->w, era->pool->h, era->pool->references); era->pool->references--; era->pool->head = eina_inlist_remove(era->pool->head, EINA_INLIST_GET(era)); r = eina_rectangle_new(rect->x, rect->y, rect->w, rect->h); if (r) { era->pool->empty = _eina_rectangle_merge_list(era->pool->empty, r); era->pool->sorted = EINA_FALSE; } if (era->pool->bucket_count < BUCKET_THRESHOLD) { Eina_Rectangle_Pool *pool; pool = era->pool; pool->bucket_count++; eina_trash_push(&pool->bucket, era); } else { EINA_MAGIC_SET(era, EINA_MAGIC_NONE); eina_mempool_free(_eina_rectangle_alloc_mp, era); } } EAPI Eina_Rectangle_Pool * eina_rectangle_pool_get(Eina_Rectangle *rect) { Eina_Rectangle_Alloc *era = ((Eina_Rectangle_Alloc *)rect) - 1; EINA_SAFETY_ON_NULL_RETURN_VAL(rect, NULL); EINA_MAGIC_CHECK_RECTANGLE_ALLOC(era); EINA_MAGIC_CHECK_RECTANGLE_POOL(era->pool); return era->pool; } EAPI void eina_rectangle_pool_data_set(Eina_Rectangle_Pool *pool, const void *data) { EINA_MAGIC_CHECK_RECTANGLE_POOL(pool); EINA_SAFETY_ON_NULL_RETURN(pool); DBG("data=%p pool=%p, size=(%d, %d), references=%u", data, pool, pool->w, pool->h, pool->references); pool->data = (void *)data; } EAPI void * eina_rectangle_pool_data_get(Eina_Rectangle_Pool *pool) { EINA_MAGIC_CHECK_RECTANGLE_POOL(pool); EINA_SAFETY_ON_NULL_RETURN_VAL(pool, NULL); return pool->data; } EAPI Eina_Bool eina_rectangle_pool_geometry_get(Eina_Rectangle_Pool *pool, int *w, int *h) { if (!pool) return EINA_FALSE; EINA_MAGIC_CHECK_RECTANGLE_POOL(pool); EINA_SAFETY_ON_NULL_RETURN_VAL(pool, EINA_FALSE); if (w) *w = pool->w; if (h) *h = pool->h; return EINA_TRUE; } eina-1.7.10/src/lib/eina_xattr.c0000664000175000017500000002651312175475327013322 00000000000000/* EINA - EFL data type library * Copyright (C) 2011 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #ifdef HAVE_XATTR # include #endif #include "eina_config.h" #include "eina_private.h" #include "eina_safety_checks.h" #include "eina_xattr.h" #include "eina_convert.h" #include "eina_stringshare.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ typedef struct _Eina_Xattr_Iterator Eina_Xattr_Iterator; struct _Eina_Xattr_Iterator { Eina_Iterator iterator; const char *file; Eina_Xattr *attr; ssize_t length; ssize_t offset; int fd; char xattr[1]; }; #ifdef HAVE_XATTR static Eina_Bool _eina_xattr_value_ls_fd_iterator_next(Eina_Xattr_Iterator *it, void **data) { char *tmp; if (it->offset >= it->length) return EINA_FALSE; *data = it->attr; it->attr->name = it->xattr + it->offset; it->attr->length = fgetxattr(it->fd, it->attr->name, NULL, 0); if (it->attr->length) { tmp = realloc((void*) it->attr->value, it->attr->length); if (!tmp) { free((void*) it->attr->value); it->attr->value = NULL; it->attr->length = 0; } else { it->attr->length = fgetxattr(it->fd, it->attr->name, (void *) it->attr->value, it->attr->length); } } return EINA_TRUE; } static Eina_Bool _eina_xattr_value_ls_iterator_next(Eina_Xattr_Iterator *it, void **data) { char *tmp; if (it->offset >= it->length) return EINA_FALSE; *data = it->attr; it->attr->name = it->xattr + it->offset; it->attr->length = getxattr(it->file, it->attr->name, NULL, 0); if (it->attr->length) { tmp = realloc((void*) it->attr->value, it->attr->length); if (!tmp) { free((void*) it->attr->value); it->attr->value = NULL; it->attr->length = 0; } else { it->attr->length = getxattr(it->file, it->attr->name, (void*) it->attr->value, it->attr->length); } } return EINA_TRUE; } static Eina_Bool _eina_xattr_ls_iterator_next(Eina_Xattr_Iterator *it, void **data) { if (it->offset >= it->length) return EINA_FALSE; *data = it->xattr + it->offset; it->offset += strlen(it->xattr + it->offset) + 1; return EINA_TRUE; } static void * _eina_xattr_ls_iterator_container(Eina_Xattr_Iterator *it __UNUSED__) { return NULL; } static void _eina_xattr_ls_iterator_free(Eina_Xattr_Iterator *it) { EINA_MAGIC_SET(&it->iterator, 0); if (it->attr) free((void *) it->attr->value); eina_stringshare_del(it->file); free(it->attr); free(it); } #endif /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /*============================================================================* * API * *============================================================================*/ EAPI Eina_Iterator * eina_xattr_value_fd_ls(int fd) { #ifdef HAVE_XATTR Eina_Xattr_Iterator *it; ssize_t length; if (fd < 0) return NULL; length = flistxattr(fd, NULL, 0); if (length <= 0) return NULL; it = calloc(1, sizeof (Eina_Xattr_Iterator) + length - 1); if (!it) return NULL; it->attr = calloc(1, sizeof (Eina_Xattr)); if (!it->attr) { free(it); return NULL; } EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->fd = fd; it->length = flistxattr(fd, it->xattr, length); if (it->length != length) { free(it); return NULL; } it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_xattr_value_ls_fd_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_xattr_ls_iterator_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_xattr_ls_iterator_free); return &it->iterator; #else return NULL; (void)fd; #endif } EAPI Eina_Iterator * eina_xattr_fd_ls(int fd) { #ifdef HAVE_XATTR Eina_Xattr_Iterator *it; ssize_t length; if (fd < 0) return NULL; length = flistxattr(fd, NULL, 0); if (length <= 0) return NULL; it = calloc(1, sizeof (Eina_Xattr_Iterator) + length - 1); if (!it) return NULL; EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->length = flistxattr(fd, it->xattr, length); if (it->length != length) { free(it); return NULL; } it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_xattr_ls_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_xattr_ls_iterator_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_xattr_ls_iterator_free); return &it->iterator; #else return NULL; (void)fd; #endif } EAPI Eina_Iterator * eina_xattr_ls(const char *file) { #ifdef HAVE_XATTR Eina_Xattr_Iterator *it; ssize_t length; EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); length = listxattr(file, NULL, 0); if (length <= 0) return NULL; it = calloc(1, sizeof (Eina_Xattr_Iterator) + length - 1); if (!it) return NULL; EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->length = listxattr(file, it->xattr, length); if (it->length != length) { free(it); return NULL; } it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_xattr_ls_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_xattr_ls_iterator_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_xattr_ls_iterator_free); return &it->iterator; #else return NULL; (void)file; #endif } EAPI Eina_Iterator * eina_xattr_value_ls(const char *file) { #ifdef HAVE_XATTR Eina_Xattr_Iterator *it; ssize_t length; EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); length = listxattr(file, NULL, 0); if (length <= 0) return NULL; it = calloc(1, sizeof (Eina_Xattr_Iterator) + length - 1); if (!it) return NULL; EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->length = listxattr(file, it->xattr, length); if (it->length != length) { free(it->attr); free(it); return NULL; } it->file = eina_stringshare_add(file); it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_xattr_value_ls_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(_eina_xattr_ls_iterator_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_xattr_ls_iterator_free); return &it->iterator; #else return NULL; (void)file; #endif } EAPI void * eina_xattr_get(const char *file, const char *attribute, ssize_t *size) { #ifdef HAVE_XATTR void *ret = NULL; ssize_t tmp; EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(attribute, NULL); EINA_SAFETY_ON_TRUE_RETURN_VAL(!size, NULL); *size = getxattr(file, attribute, NULL, 0); /* Size should be less than 2MB (already huge in my opinion) */ if (!(*size > 0 && *size < 2 * 1024 * 1024)) goto on_error; ret = malloc(*size); if (!ret) return NULL; tmp = getxattr(file, attribute, ret, *size); if (tmp != *size) goto on_error; return ret; on_error: free(ret); *size = 0; return NULL; #else EINA_SAFETY_ON_TRUE_RETURN_VAL(!size, NULL); *size = 0; return NULL; (void)file; (void)attribute; #endif } EAPI Eina_Bool eina_xattr_set(const char *file, const char *attribute, const void *data, ssize_t length, Eina_Xattr_Flags flags) { #ifdef HAVE_XATTR int iflags; EINA_SAFETY_ON_NULL_RETURN_VAL(file, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(attribute, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE); EINA_SAFETY_ON_TRUE_RETURN_VAL(!(length > 0 && length < 2 * 1024 * 1024), EINA_FALSE); switch (flags) { case EINA_XATTR_INSERT: iflags = 0; break; case EINA_XATTR_REPLACE: iflags = XATTR_REPLACE; break; case EINA_XATTR_CREATED: iflags = XATTR_CREATE; break; default: return EINA_FALSE; } if (setxattr(file, attribute, data, length, iflags)) return EINA_FALSE; return EINA_TRUE; #else return EINA_FALSE; (void)file; (void)attribute; (void)data; (void)length; (void)flags; #endif } EAPI Eina_Bool eina_xattr_string_set(const char *file, const char *attribute, const char *data, Eina_Xattr_Flags flags) { EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE); return eina_xattr_set(file, attribute, data, strlen(data) + 1, flags); } EAPI char * eina_xattr_string_get(const char *file, const char *attribute) { char *tmp; ssize_t size; tmp = eina_xattr_get(file, attribute, &size); if (!tmp) return NULL; if (tmp[size - 1] != '\0') { free(tmp); return NULL; } return tmp; } EAPI Eina_Bool eina_xattr_double_set(const char *file, const char *attribute, double value, Eina_Xattr_Flags flags) { char buffer[128]; eina_convert_dtoa(value, buffer); return eina_xattr_string_set(file, attribute, buffer, flags); } EAPI Eina_Bool eina_xattr_double_get(const char *file, const char *attribute, double *value) { char *tmp; long long int m = 0; long int e = 0; EINA_SAFETY_ON_NULL_RETURN_VAL(value, EINA_FALSE); tmp = eina_xattr_string_get(file, attribute); if (!tmp) return EINA_FALSE; if (!eina_convert_atod(tmp, strlen(tmp), &m, &e)) { free(tmp); return EINA_FALSE; } *value = ldexp((double)m, e); free(tmp); return EINA_TRUE; } EAPI Eina_Bool eina_xattr_int_set(const char *file, const char *attribute, int value, Eina_Xattr_Flags flags) { char buffer[10]; eina_convert_itoa(value, buffer); return eina_xattr_string_set(file, attribute, buffer, flags); } EAPI Eina_Bool eina_xattr_int_get(const char *file, const char *attribute, int *value) { char *tmp; char *eos; Eina_Bool result; EINA_SAFETY_ON_NULL_RETURN_VAL(value, EINA_FALSE); tmp = eina_xattr_string_get(file, attribute); if (!tmp) return EINA_FALSE; *value = (int) strtol(tmp, &eos, 10); result = (*eos == '\0'); free(tmp); return result; } eina-1.7.10/src/lib/eina_safety_checks.c0000664000175000017500000000501712175475327014767 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Gustavo Sverzut Barbieri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "eina_private.h" #include "eina_error.h" #include "eina_log.h" #include "eina_safety_checks.h" /*============================================================================* * Local * *============================================================================*/ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Shut down the safety checks module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the error module set up by * eina_safety_checks_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_safety_checks_shutdown(void) { return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ /** * @cond LOCAL */ EAPI Eina_Error EINA_ERROR_SAFETY_FAILED = 0; static const char EINA_ERROR_SAFETY_FAILED_STR[] = "Safety check failed."; /** * @endcond */ /** * @internal * @brief Initialize the safety checks module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the safety checks module of Eina. It is * called by eina_init(). * * @see eina_init() */ Eina_Bool eina_safety_checks_init(void) { EINA_ERROR_SAFETY_FAILED = eina_error_msg_static_register( EINA_ERROR_SAFETY_FAILED_STR); return EINA_TRUE; } /** * @} */ eina-1.7.10/src/lib/eina_inlist.c0000664000175000017500000005015512175475327013461 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler, Vincent Torri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include "eina_config.h" #include "eina_private.h" #include "eina_error.h" #include "eina_log.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_inlist.h" /* FIXME: TODO please, refactor this :) */ /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ #define EINA_INLIST_SORT_STACK_SIZE 32 typedef struct _Eina_Iterator_Inlist Eina_Iterator_Inlist; typedef struct _Eina_Accessor_Inlist Eina_Accessor_Inlist; struct _Eina_Iterator_Inlist { Eina_Iterator iterator; const Eina_Inlist *head; const Eina_Inlist *current; }; struct _Eina_Accessor_Inlist { Eina_Accessor accessor; const Eina_Inlist *head; const Eina_Inlist *current; unsigned int index; }; struct _Eina_Inlist_Sorted_State { Eina_Inlist *jump_table[EINA_INLIST_JUMP_SIZE]; unsigned short jump_limit; int jump_div; int inserted; }; static Eina_Bool eina_inlist_iterator_next(Eina_Iterator_Inlist *it, void **data) { if (!it->current) return EINA_FALSE; if (data) *data = (void *)it->current; it->current = it->current->next; return EINA_TRUE; } static Eina_Inlist * eina_inlist_iterator_get_container(Eina_Iterator_Inlist *it) { return (Eina_Inlist *)it->head; } static void eina_inlist_iterator_free(Eina_Iterator_Inlist *it) { free(it); } static Eina_Bool eina_inlist_accessor_get_at(Eina_Accessor_Inlist *it, unsigned int idx, void **data) { const Eina_Inlist *over; unsigned int middle; unsigned int i; if (it->index == idx) over = it->current; else if (idx > it->index) /* Looking after current. */ for (i = it->index, over = it->current; i < idx && over; ++i, over = over->next) ; else { middle = it->index >> 1; if (idx > middle) /* Looking backward from current. */ for (i = it->index, over = it->current; i > idx && over; --i, over = over->prev) ; else /* Looking from the start. */ for (i = 0, over = it->head; i < idx && over; ++i, over = over->next) ; } if (!over) return EINA_FALSE; it->current = over; it->index = idx; if (data) *data = (void *)over; return EINA_TRUE; } static Eina_Inlist * eina_inlist_accessor_get_container(Eina_Accessor_Inlist *it) { return (Eina_Inlist *)it->head; } static void eina_inlist_accessor_free(Eina_Accessor_Inlist *it) { free(it); } static Eina_Inlist * eina_inlist_sort_merge(Eina_Inlist *a, Eina_Inlist *b, Eina_Compare_Cb func) { Eina_Inlist *first, *last; if (func(a, b) < 0) a = (last = first = a)->next; else b = (last = first = b)->next; while (a && b) if (func(a, b) < 0) a = (last = last->next = a)->next; else b = (last = last->next = b)->next; last->next = a ? a : b; return first; } static Eina_Inlist * eina_inlist_sort_rebuild_prev(Eina_Inlist *list) { Eina_Inlist *prev = NULL; for (; list; list = list->next) { list->prev = prev; prev = list; } return prev; } static void _eina_inlist_sorted_state_compact(Eina_Inlist_Sorted_State *state) { unsigned short i, j; /* compress the jump table */ state->jump_div *= 2; state->jump_limit /= 2; for (i = 2, j = 1; i < EINA_INLIST_JUMP_SIZE; i += 2, j++) state->jump_table[j] = state->jump_table[i]; } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /*============================================================================* * API * *============================================================================*/ EAPI Eina_Inlist * eina_inlist_append(Eina_Inlist *list, Eina_Inlist *new_l) { Eina_Inlist *l; EINA_SAFETY_ON_NULL_RETURN_VAL(new_l, list); new_l->next = NULL; if (!list) { new_l->prev = NULL; new_l->last = new_l; return new_l; } if (list->last) l = list->last; else for (l = list; (l) && (l->next); l = l->next) ; l->next = new_l; new_l->prev = l; list->last = new_l; return list; } EAPI Eina_Inlist * eina_inlist_prepend(Eina_Inlist *list, Eina_Inlist *new_l) { EINA_SAFETY_ON_NULL_RETURN_VAL(new_l, list); new_l->prev = NULL; if (!list) { new_l->next = NULL; new_l->last = new_l; return new_l; } new_l->next = list; list->prev = new_l; new_l->last = list->last; list->last = NULL; return new_l; } EAPI Eina_Inlist * eina_inlist_append_relative(Eina_Inlist *list, Eina_Inlist *new_l, Eina_Inlist *relative) { EINA_SAFETY_ON_NULL_RETURN_VAL(new_l, list); if (relative) { if (relative->next) { new_l->next = relative->next; relative->next->prev = new_l; } else new_l->next = NULL; relative->next = new_l; new_l->prev = relative; if (!new_l->next) list->last = new_l; return list; } return eina_inlist_append(list, new_l); } EAPI Eina_Inlist * eina_inlist_prepend_relative(Eina_Inlist *list, Eina_Inlist *new_l, Eina_Inlist *relative) { EINA_SAFETY_ON_NULL_RETURN_VAL(new_l, list); if (relative) { new_l->prev = relative->prev; new_l->next = relative; relative->prev = new_l; if (new_l->prev) { new_l->prev->next = new_l; /* new_l->next could not be NULL, as it was set to 'relative' */ assert(new_l->next); return list; } else { /* new_l->next could not be NULL, as it was set to 'relative' */ assert(new_l->next); new_l->last = list->last; list->last = NULL; return new_l; } } return eina_inlist_prepend(list, new_l); } EAPI Eina_Inlist * eina_inlist_remove(Eina_Inlist *list, Eina_Inlist *item) { Eina_Inlist *return_l; /* checkme */ EINA_SAFETY_ON_NULL_RETURN_VAL(list, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(item, list); if (EINA_UNLIKELY((item != list) && (!item->prev) && (!item->next))) { eina_error_set(EINA_ERROR_SAFETY_FAILED); EINA_LOG_ERR("safety check failed: item %p does not appear to be part of an inlist!", item); return list; } if (item->next) item->next->prev = item->prev; if (item->prev) { item->prev->next = item->next; return_l = list; } else { return_l = item->next; if (return_l) return_l->last = list->last; } if (item == list->last) list->last = item->prev; item->next = NULL; item->prev = NULL; return return_l; } EAPI Eina_Inlist * eina_inlist_promote(Eina_Inlist *list, Eina_Inlist *item) { EINA_SAFETY_ON_NULL_RETURN_VAL(list, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(item, list); if (item == list) return list; if (item->next) item->next->prev = item->prev; item->prev->next = item->next; if (list->last == item) list->last = item->prev; item->next = list; item->prev = NULL; item->last = list->last; list->prev = item; list->last = NULL; return item; } EAPI Eina_Inlist * eina_inlist_demote(Eina_Inlist *list, Eina_Inlist *item) { Eina_Inlist *l; EINA_SAFETY_ON_NULL_RETURN_VAL(list, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(item, list); if (list->last == item) return list; if (!list->last) { for (l = list; l->next; l = l->next) ; list->last = l; } l = list; if (item->prev) item->prev->next = item->next; else l = item->next; item->next->prev = item->prev; list->last->next = item; item->prev = list->last; item->next = NULL; l->last = item; return l; } EAPI Eina_Inlist * eina_inlist_find(Eina_Inlist *list, Eina_Inlist *item) { Eina_Inlist *l; EINA_SAFETY_ON_NULL_RETURN_VAL(item, NULL); for (l = list; l; l = l->next) { if (l == item) return item; } return NULL; } EAPI unsigned int eina_inlist_count(const Eina_Inlist *list) { const Eina_Inlist *l; unsigned int i = 0; for (l = list; l; l = l->next) i++; return i; } EAPI int eina_inlist_sorted_state_init(Eina_Inlist_Sorted_State *state, Eina_Inlist *list) { Eina_Inlist *ct = NULL; int count = 0; int jump_count = 1; /* * prepare a jump table to avoid doing unnecessary rewalk * of the inlist as much as possible. */ for (ct = list; ct; ct = ct->next, jump_count++, count++) { if (jump_count == state->jump_div) { if (state->jump_limit == EINA_INLIST_JUMP_SIZE) { _eina_inlist_sorted_state_compact(state); } state->jump_table[state->jump_limit] = ct; state->jump_limit++; jump_count = 0; } } state->inserted = count; return count; } EAPI Eina_Inlist_Sorted_State * eina_inlist_sorted_state_new(void) { Eina_Inlist_Sorted_State *r; r = calloc(1, sizeof (Eina_Inlist_Sorted_State)); if (!r) return NULL; r->jump_div = 1; return r; } EAPI void eina_inlist_sorted_state_free(Eina_Inlist_Sorted_State *state) { free(state); } static void _eina_inlist_sorted_state_insert(Eina_Inlist_Sorted_State *state, unsigned short idx, int offset) { Eina_Inlist *last; int jump_count; int start; state->inserted++; if (offset != 0) idx++; for (; idx < state->jump_limit; idx++) { state->jump_table[idx] = state->jump_table[idx]->prev; } start = state->jump_limit - 3; if (start < 0) start = 0; last = state->jump_table[start]; start++; /* Correctly rebuild end of list */ for (jump_count = 0; last->next != NULL; last = last->next, jump_count++) { if (jump_count == state->jump_div) { if (state->jump_limit == start) { if (state->jump_limit == EINA_INLIST_JUMP_SIZE) { _eina_inlist_sorted_state_compact(state); start = state->jump_limit - 1; continue ; } else { state->jump_limit++; } } state->jump_table[start++] = last; jump_count = 0; } } } EAPI Eina_Inlist * eina_inlist_sorted_insert(Eina_Inlist *list, Eina_Inlist *item, Eina_Compare_Cb func) { Eina_Inlist *ct = NULL; Eina_Inlist_Sorted_State state; int cmp = 0; int inf, sup; int cur = 0; int count; EINA_SAFETY_ON_NULL_RETURN_VAL(item, list); EINA_SAFETY_ON_NULL_RETURN_VAL(func, list); if (!list) return eina_inlist_append(NULL, item); if (!list->next) { cmp = func(list, item); if (cmp < 0) return eina_inlist_append(list, item); return eina_inlist_prepend(list, item); } state.jump_div = 1; state.jump_limit = 0; count = eina_inlist_sorted_state_init(&state, list); /* * now do a dychotomic search directly inside the jump_table. */ inf = 0; sup = state.jump_limit - 1; cur = 0; ct = state.jump_table[cur]; cmp = func(ct, item); while (inf <= sup) { cur = inf + ((sup - inf) >> 1); ct = state.jump_table[cur]; cmp = func(ct, item); if (cmp == 0) break ; else if (cmp < 0) inf = cur + 1; else if (cmp > 0) { if (cur > 0) sup = cur - 1; else break; } else break; } /* If at the beginning of the table and cmp < 0, * insert just after the head */ if (cur == 0 && cmp > 0) return eina_inlist_prepend_relative(list, item, ct); /* If at the end of the table and cmp >= 0, * just append the item to the list */ if (cmp < 0 && ct == list->last) return eina_inlist_append(list, item); /* * Now do a dychotomic search between two entries inside the jump_table */ cur *= state.jump_div; inf = cur - state.jump_div - 1; sup = cur + state.jump_div + 1; if (sup > count - 1) sup = count - 1; if (inf < 0) inf = 0; while (inf <= sup) { int tmp = cur; cur = inf + ((sup - inf) >> 1); if (tmp < cur) for (; tmp != cur; tmp++, ct = ct->next); else if (tmp > cur) for (; tmp != cur; tmp--, ct = ct->prev); cmp = func(ct, item); if (cmp == 0) break ; else if (cmp < 0) inf = cur + 1; else if (cmp > 0) { if (cur > 0) sup = cur - 1; else break; } else break; } if (cmp <= 0) return eina_inlist_append_relative(list, item, ct); return eina_inlist_prepend_relative(list, item, ct); } EAPI Eina_Inlist * eina_inlist_sorted_state_insert(Eina_Inlist *list, Eina_Inlist *item, Eina_Compare_Cb func, Eina_Inlist_Sorted_State *state) { Eina_Inlist *ct = NULL; int cmp = 0; int inf, sup; int cur = 0; int count; unsigned short head; unsigned int offset; if (!list) { state->inserted = 1; state->jump_limit = 1; state->jump_table[0] = item; return eina_inlist_append(NULL, item); } if (!list->next) { cmp = func(list, item); state->jump_limit = 2; state->inserted = 2; if (cmp < 0) { state->jump_table[1] = item; return eina_inlist_append(list, item); } state->jump_table[1] = state->jump_table[0]; state->jump_table[0] = item; return eina_inlist_prepend(list, item); } count = state->inserted; /* * now do a dychotomic search directly inside the jump_table. */ inf = 0; sup = state->jump_limit - 1; cur = 0; ct = state->jump_table[cur]; cmp = func(ct, item); while (inf <= sup) { cur = inf + ((sup - inf) >> 1); ct = state->jump_table[cur]; cmp = func(ct, item); if (cmp == 0) break ; else if (cmp < 0) inf = cur + 1; else if (cmp > 0) { if (cur > 0) sup = cur - 1; else break; } else break; } /* If at the beginning of the table and cmp < 0, * insert just after the head */ if (cur == 0 && cmp > 0) { ct = eina_inlist_prepend_relative(list, item, ct); _eina_inlist_sorted_state_insert(state, 0, 0); return ct; } /* If at the end of the table and cmp >= 0, * just append the item to the list */ if (cmp < 0 && ct == list->last) { ct = eina_inlist_append(list, item); _eina_inlist_sorted_state_insert(state, state->jump_limit - 1, 1); return ct; } /* * Now do a dychotomic search between two entries inside the jump_table */ cur *= state->jump_div; inf = cur - state->jump_div - 1; sup = cur + state->jump_div + 1; if (sup > count - 1) sup = count - 1; if (inf < 0) inf = 0; while (inf <= sup) { int tmp = cur; cur = inf + ((sup - inf) >> 1); if (tmp < cur) for (; tmp != cur; tmp++, ct = ct->next); else if (tmp > cur) for (; tmp != cur; tmp--, ct = ct->prev); cmp = func(ct, item); if (cmp == 0) break ; else if (cmp < 0) inf = cur + 1; else if (cmp > 0) { if (cur > 0) sup = cur - 1; else break; } else break; } if (cmp <= 0) { cur++; ct = eina_inlist_append_relative(list, item, ct); } else { ct = eina_inlist_prepend_relative(list, item, ct); } head = cur / state->jump_div; offset = cur % state->jump_div; _eina_inlist_sorted_state_insert(state, head, offset); return ct; } EAPI Eina_Inlist * eina_inlist_sort(Eina_Inlist *head, Eina_Compare_Cb func) { unsigned int i = 0; unsigned int n = 0; Eina_Inlist *tail = head; Eina_Inlist *unsort = NULL; Eina_Inlist *stack[EINA_INLIST_SORT_STACK_SIZE]; EINA_SAFETY_ON_NULL_RETURN_VAL(head, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(func, head); while (tail) { unsigned int idx, tmp; Eina_Inlist *a = tail; Eina_Inlist *b = tail->next; if (!b) { stack[i++] = a; break; } tail = b->next; if (func(a, b) < 0) ((stack[i++] = a)->next = b)->next = 0; else ((stack[i++] = b)->next = a)->next = 0; tmp = n++; for (idx = n ^ tmp; idx &= idx - 1; i--) stack[i - 2] = eina_inlist_sort_merge(stack[i - 2], stack[i - 1], func); } while (i-- > 1) stack[i - 1] = eina_inlist_sort_merge(stack[i - 1], stack[i], func); head = stack[0]; tail = eina_inlist_sort_rebuild_prev(head); if (unsort) { tail->next = unsort; unsort->prev = tail; } head->last = tail; return head; } EAPI Eina_Iterator * eina_inlist_iterator_new(const Eina_Inlist *list) { Eina_Iterator_Inlist *it; eina_error_set(0); it = calloc(1, sizeof (Eina_Iterator_Inlist)); if (!it) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } it->head = list; it->current = list; it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(eina_inlist_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER( eina_inlist_iterator_get_container); it->iterator.free = FUNC_ITERATOR_FREE(eina_inlist_iterator_free); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); return &it->iterator; } EAPI Eina_Accessor * eina_inlist_accessor_new(const Eina_Inlist *list) { Eina_Accessor_Inlist *ac; eina_error_set(0); ac = calloc(1, sizeof (Eina_Accessor_Inlist)); if (!ac) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } ac->head = list; ac->current = list; ac->index = 0; ac->accessor.version = EINA_ACCESSOR_VERSION; ac->accessor.get_at = FUNC_ACCESSOR_GET_AT(eina_inlist_accessor_get_at); ac->accessor.get_container = FUNC_ACCESSOR_GET_CONTAINER( eina_inlist_accessor_get_container); ac->accessor.free = FUNC_ACCESSOR_FREE(eina_inlist_accessor_free); EINA_MAGIC_SET(&ac->accessor, EINA_MAGIC_ACCESSOR); return &ac->accessor; } eina-1.7.10/src/lib/eina_lalloc.c0000664000175000017500000000762112175475327013425 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_config.h" #include "eina_private.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_lalloc.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ struct _Eina_Lalloc { void *data; int num_allocated; int num_elements; int acc; Eina_Lalloc_Alloc alloc_cb; Eina_Lalloc_Free free_cb; }; /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /*============================================================================* * API * *============================================================================*/ /** * @addtogroup Eina_Lalloc_Group Lazy allocator * * @{ */ EAPI Eina_Lalloc *eina_lalloc_new(void *data, Eina_Lalloc_Alloc alloc_cb, Eina_Lalloc_Free free_cb, int num_init) { Eina_Lalloc *a; EINA_SAFETY_ON_NULL_RETURN_VAL(alloc_cb, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(free_cb, NULL); a = calloc(1, sizeof(Eina_Lalloc)); a->data = data; a->alloc_cb = alloc_cb; a->free_cb = free_cb; if (num_init > 0) { a->num_allocated = num_init; a->alloc_cb(a->data, a->num_allocated); } return a; } EAPI void eina_lalloc_free(Eina_Lalloc *a) { EINA_SAFETY_ON_NULL_RETURN(a); EINA_SAFETY_ON_NULL_RETURN(a->free_cb); a->free_cb(a->data); free(a); } EAPI Eina_Bool eina_lalloc_element_add(Eina_Lalloc *a) { EINA_SAFETY_ON_NULL_RETURN_VAL(a, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(a->alloc_cb, EINA_FALSE); if (a->num_elements == a->num_allocated) { if (a->alloc_cb(a->data, (1 << a->acc)) == EINA_TRUE) { a->num_allocated = (1 << a->acc); a->acc++; } else return EINA_FALSE; } a->num_elements++; return EINA_TRUE; } EAPI Eina_Bool eina_lalloc_elements_add(Eina_Lalloc *a, int num) { int tmp; EINA_SAFETY_ON_NULL_RETURN_VAL(a, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(a->alloc_cb, EINA_FALSE); tmp = a->num_elements + num; if (tmp > a->num_allocated) { int allocated; int acc; allocated = a->num_allocated; acc = a->acc; while (tmp > allocated) { allocated = (1 << acc); acc++; } if (a->alloc_cb(a->data, allocated) == EINA_TRUE) { a->num_allocated = allocated; a->acc = acc; } else return EINA_FALSE; } a->num_elements += num; return EINA_TRUE; } /** * @} */ eina-1.7.10/src/lib/eina_prefix.c0000664000175000017500000005217212175475327013455 00000000000000/* EINA - EFL data type library * Copyright (C) 2011 Carsten Haitzler * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_ALLOCA_H # include #elif !defined alloca # ifdef __GNUC__ # define alloca __builtin_alloca # elif defined _AIX # define alloca __alloca # elif defined _MSC_VER # include # define alloca _alloca # elif !defined HAVE_ALLOCA # ifdef __cplusplus extern "C" # endif void *alloca (size_t); # endif #endif #include #include #include #include #include #include #ifdef HAVE_UNISTD_H # include #endif #ifdef HAVE_DLADDR # include #endif #ifdef HAVE_EVIL # include #endif #ifdef HAVE_ESCAPE # include #endif #include "eina_config.h" #include "eina_private.h" #include "eina_log.h" #include "eina_prefix.h" #ifdef _WIN32 # define PSEP_C ';' # define DSEP_C '\\' # define DSEP_S "\\" #else # define PSEP_C ':' # define DSEP_C '/' # define DSEP_S "/" #endif /* _WIN32 */ /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ struct _Eina_Prefix { char *exe_path; char *prefix_path; char *prefix_path_bin; char *prefix_path_data; char *prefix_path_lib; char *prefix_path_locale; unsigned char fallback : 1; unsigned char no_common_prefix : 1; unsigned char env_used : 1; }; #define STRDUP_REP(x, y) do { if (x) free(x); x = strdup(y); } while (0) #define IF_FREE_NULL(p) do { if (p) { free(p); p = NULL; } } while (0) #ifndef EINA_LOG_COLOR_DEFAULT #define EINA_LOG_COLOR_DEFAULT EINA_COLOR_CYAN #endif #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_prefix_log_dom, __VA_ARGS__) #ifdef WRN #undef WRN #endif #define WRN(...) EINA_LOG_DOM_WARN(_eina_prefix_log_dom, __VA_ARGS__) #ifdef INF #undef INF #endif #define INF(...) EINA_LOG_DOM_INFO(_eina_prefix_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_prefix_log_dom, __VA_ARGS__) static int _eina_prefix_log_dom = -1; static int _fallback(Eina_Prefix *pfx, const char *pkg_bin, const char *pkg_lib, const char *pkg_data, const char *pkg_locale, const char *envprefix) { char *p; STRDUP_REP(pfx->prefix_path, pkg_bin); if (!pfx->prefix_path) return 0; p = strrchr(pfx->prefix_path, DSEP_C); if (p) *p = 0; STRDUP_REP(pfx->prefix_path_bin, pkg_bin); STRDUP_REP(pfx->prefix_path_lib, pkg_lib); STRDUP_REP(pfx->prefix_path_data, pkg_data); STRDUP_REP(pfx->prefix_path_locale, pkg_locale); WRN("Could not determine its installed prefix for '%s'\n" " so am falling back on the compiled in default:\n" " %s\n" " implied by the following:\n" " bindir = %s\n" " libdir = %s\n" " datadir = %s\n" " localedir = %s\n" " Try setting the following environment variables:\n" " %s_PREFIX - points to the base prefix of install\n" " or the next 4 variables\n" " %s_BIN_DIR - provide a specific binary directory\n" " %s_LIB_DIR - provide a specific library directory\n" " %s_DATA_DIR - provide a specific data directory\n" " %s_LOCALE_DIR - provide a specific locale directory", envprefix, pfx->prefix_path, pkg_bin, pkg_lib, pkg_data, pkg_locale, envprefix, envprefix, envprefix, envprefix, envprefix); pfx->fallback = 1; return 1; } #ifndef _WIN32 static int _try_proc(Eina_Prefix *pfx, void *symbol) { FILE *f; char buf[4096]; DBG("Try /proc/self/maps"); f = fopen("/proc/self/maps", "rb"); if (!f) return 0; DBG("Exists /proc/self/maps"); while (fgets(buf, sizeof(buf), f)) { int len; char *p, mode[5] = ""; unsigned long ptr1 = 0, ptr2 = 0; len = strlen(buf); if (buf[len - 1] == '\n') { buf[len - 1] = 0; len--; } if (sscanf(buf, "%lx-%lx %4s", &ptr1, &ptr2, mode) == 3) { if (!strcmp(mode, "r-xp")) { if (((void *)ptr1 <= symbol) && (symbol < (void *)ptr2)) { DBG("Found in /proc/self/maps: %s", buf); p = strchr(buf, '/'); if (p) { DBG("Found in /proc/self/maps: found last /"); if (len > 10) { if (!strcmp(buf + len - 10, " (deleted)")) buf[len - 10] = 0; } STRDUP_REP(pfx->exe_path, p); INF("Found in /proc/self/maps: guess exe path is %s", pfx->exe_path); fclose(f); return 1; } else break; } } } } fclose(f); WRN("Failed in /proc/self/maps"); return 0; } #endif static int _try_argv(Eina_Prefix *pfx, const char *argv0) { char *path, *p, *cp, *s; int len, lenexe; char buf[PATH_MAX], buf2[PATH_MAX], buf3[PATH_MAX]; DBG("Try argv0 = %s", argv0); /* 1. is argv0 abs path? */ #ifdef _WIN32 if (evil_path_is_absolute(argv0)) #else if (argv0[0] == DSEP_C) #endif { DBG("Match arvg0 is full path: %s", argv0); STRDUP_REP(pfx->exe_path, argv0); if (access(pfx->exe_path, X_OK) == 0) { INF("Executable argv0 = %s", argv0); return 1; } IF_FREE_NULL(pfx->exe_path); DBG("Non existent argv0: %s", argv0); return 0; } /* 2. relative path */ if (strchr(argv0, DSEP_C)) { DBG("Relative path argv0: %s", argv0); if (getcwd(buf3, sizeof(buf3))) { snprintf(buf2, sizeof(buf2), "%s" DSEP_S "%s", buf3, argv0); DBG("Relative to CWD: %s", buf2); if (realpath(buf2, buf)) { DBG("Realpath is: %s", buf); STRDUP_REP(pfx->exe_path, buf); if (access(pfx->exe_path, X_OK) == 0) { INF("Path %s is executable", pfx->exe_path); return 1; } DBG("Fail check for executable: %s", pfx->exe_path); IF_FREE_NULL(pfx->exe_path); } } } /* 3. argv0 no path - look in PATH */ DBG("Look for argv0=%s in $PATH", argv0); path = getenv("PATH"); if (!path) return 0; p = path; cp = p; lenexe = strlen(argv0); while ((p = strchr(cp, PSEP_C))) { len = p - cp; s = malloc(len + 1 + lenexe + 1); if (s) { strncpy(s, cp, len); s[len] = DSEP_C; strcpy(s + len + 1, argv0); DBG("Try path: %s", s); if (realpath(s, buf)) { DBG("Realpath is: %s", buf); if (access(buf, X_OK) == 0) { STRDUP_REP(pfx->exe_path, buf); INF("Path %s is executable", pfx->exe_path); free(s); return 1; } } free(s); } cp = p + 1; } /* 4. big problems. arg[0] != executable - weird execution */ return 0; } static int _get_env_var(char **var, const char *env, const char *prefix, const char *dir) { char buf[PATH_MAX]; const char *s = getenv(env); DBG("Try env var %s", env); if (s) { INF("Have env %s = %s", env, s); STRDUP_REP(*var, s); return 1; } else if (prefix) { snprintf(buf, sizeof(buf), "%s" DSEP_S "%s", prefix, dir); INF("Have prefix %s = %s", prefix, buf); STRDUP_REP(*var, buf); return 1; } return 0; } static int _get_env_vars(Eina_Prefix *pfx, const char *envprefix, const char *bindir, const char *libdir, const char *datadir, const char *localedir) { char env[1024]; const char *s; int ret = 0; snprintf(env, sizeof(env), "%s_PREFIX", envprefix); if ((s = getenv(env))) STRDUP_REP(pfx->prefix_path, s); snprintf(env, sizeof(env), "%s_BIN_DIR", envprefix); ret += _get_env_var(&pfx->prefix_path_bin, env, s, bindir); snprintf(env, sizeof(env), "%s_LIB_DIR", envprefix); ret += _get_env_var(&pfx->prefix_path_lib, env, s, libdir); snprintf(env, sizeof(env), "%s_DATA_DIR", envprefix); ret += _get_env_var(&pfx->prefix_path_data, env, s, datadir); snprintf(env, sizeof(env), "%s_LOCALE_DIR", envprefix); ret += _get_env_var(&pfx->prefix_path_locale, env, s, localedir); return ret; } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /*============================================================================* * API * *============================================================================*/ EAPI Eina_Prefix * eina_prefix_new(const char *argv0, void *symbol, const char *envprefix, const char *sharedir, const char *magicsharefile, const char *pkg_bin, const char *pkg_lib, const char *pkg_data, const char *pkg_locale) { Eina_Prefix *pfx; char *p, buf[4096], *tmp, *magic = NULL; struct stat st; const char *p1, *p2; const char *pkg_bin_p = NULL; const char *pkg_lib_p = NULL; const char *pkg_data_p = NULL; const char *pkg_locale_p = NULL; const char *bindir = "bin"; const char *libdir = "lib"; const char *datadir = "share"; const char *localedir = "share"; DBG("EINA PREFIX: argv0=%s, symbol=%p, magicsharefile=%s, envprefix=%s", argv0, symbol, magicsharefile, envprefix); pfx = calloc(1, sizeof(Eina_Prefix)); if (!pfx) return NULL; /* if provided with a share dir use datadir/sharedir as the share dir */ if (sharedir) { int len; len = snprintf(buf, sizeof(buf), "%s" DSEP_S "%s", datadir, sharedir); if (len > 0) { #ifdef _WIN32 /* on win32 convert / to \ for path here */ for (p = buf + strlen(datadir) + strlen(DSEP_S); *p; p++) { if (*p == '/') *p = DSEP_C; } #endif tmp = alloca(len + 1); strcpy(tmp, buf); datadir = tmp; } } if (magicsharefile) { magic = alloca(strlen(magicsharefile)); strcpy(magic, magicsharefile); #ifdef _WIN32 /* on win32 convert / to \ for path here */ for (p = magic; *p; p++) { if (*p == '/') *p = DSEP_C; } #endif } /* look at compile-time package bin/lib/datadir etc. and figure out the * bin, lib and data dirs from these, if possible. i.e. * bin = /usr/local/bin * lib = /usr/local/lib * data = /usr/local/share/enlightenment * thus they all have a common prefix string of /usr/local/ and * bindir = bin * libdir = lib * datadir = share/enlightenment * this addresses things like libdir is lib64 or lib32 or other such * junk distributions like to do so then: * bin = /usr/local/bin * lib = /usr/local/lib64 * data = /usr/local/share/enlightenment * then * bindir = bin * libdir = lib64 * datadir = share/enlightennment * in theory this should also work with debians new multiarch style like * bindir = bin * libdir = lib/i386-linux-gnu * or * libdir = lib/x86_64-linux-gnu * all with a common prefix that can be relocated */ /* 1. check last common char in bin and lib strings */ for (p1 = pkg_bin, p2 = pkg_lib; *p1 && *p2; p1++, p2++) { if (*p1 != *p2) { pkg_bin_p = p1; pkg_lib_p = p2; break; } } /* 1. check last common char in bin and data strings */ for (p1 = pkg_bin, p2 = pkg_data; *p1 && *p2; p1++, p2++) { if (*p1 != *p2) { pkg_data_p = p2; break; } } /* 1. check last common char in bin and locale strings */ for (p1 = pkg_bin, p2 = pkg_locale; *p1 && *p2; p1++, p2++) { if (*p1 != *p2) { pkg_locale_p = p2; break; } } /* 2. if all the common string offsets match we compiled with a common prefix */ if (((pkg_bin_p - pkg_bin) == (pkg_lib_p - pkg_lib)) && ((pkg_bin_p - pkg_bin) == (pkg_data_p - pkg_data)) && ((pkg_bin_p - pkg_bin) == (pkg_locale_p - pkg_locale)) ) { bindir = pkg_bin_p; libdir = pkg_lib_p; datadir = pkg_data_p; localedir = pkg_locale_p; DBG("Prefix relative bindir = %s", bindir); DBG("Prefix relative libdir = %s", libdir); DBG("Prefix relative datadir = %s", datadir); DBG("Prefix relative localedir = %s", localedir); } /* 3. some galoot thought it awesome not to give us a common prefix at compile time * so fall back to the compile time directories. we are no longer relocatable */ else { STRDUP_REP(pfx->prefix_path_bin, pkg_bin); STRDUP_REP(pfx->prefix_path_lib, pkg_lib); STRDUP_REP(pfx->prefix_path_data, pkg_data); STRDUP_REP(pfx->prefix_path_locale, pkg_locale); pfx->no_common_prefix = 1; DBG("Can't work out a common prefix - compiled in fallback"); } /* if user provides env vars - then use that or also more specific sub * dirs for bin, lib, data and locale */ if ((envprefix) && (_get_env_vars(pfx, envprefix, bindir, libdir, datadir, localedir) > 0)) { pfx->env_used = 1; return pfx; } #ifdef HAVE_DLADDR DBG("Try dladdr on %p", symbol); if (symbol) { Dl_info info_dl; if (dladdr(symbol, &info_dl)) { DBG("Dlinfo worked"); if (info_dl.dli_fname) { DBG("Dlinfo dli_fname = %s", info_dl.dli_fname); # ifdef _WIN32 if (evil_path_is_absolute(info_dl.dli_fname)) # else if (info_dl.dli_fname[0] == DSEP_C) # endif { INF("Dlsym gave full path = %s", info_dl.dli_fname); STRDUP_REP(pfx->exe_path, info_dl.dli_fname); } } } } #endif /* no env var - examine process and possible argv0 */ if ((argv0) && (!pfx->exe_path) && (symbol)) { #ifndef _WIN32 if (!_try_proc(pfx, symbol)) { #endif if (!_try_argv(pfx, argv0)) { _fallback(pfx, pkg_bin, pkg_lib, pkg_data, pkg_locale, envprefix); return pfx; } #ifndef _WIN32 } #endif } if (!pfx->exe_path) { WRN("Fallback - nothing found"); _fallback(pfx, pkg_bin, pkg_lib, pkg_data, pkg_locale, envprefix); return pfx; } /* _exe_path is now a full absolute path TO this exe - figure out rest */ /* if * exe = /blah/whatever/bin/exe * or * exe = /blah/whatever/lib/libexe.so * then * prefix = /blah/whatever * bin_dir = /blah/whatever/bin * data_dir = /blah/whatever/share/enlightenment * lib_dir = /blah/whatever/lib * * new case - debian multiarch goop. * exe = /blah/whatever/lib/arch/libexe.so */ DBG("From exe %s figure out the rest", pfx->exe_path); p = strrchr(pfx->exe_path, DSEP_C); if (p) { p--; while (p >= pfx->exe_path) { if (*p == DSEP_C) { if (pfx->prefix_path) free(pfx->prefix_path); pfx->prefix_path = malloc(p - pfx->exe_path + 1); if (pfx->prefix_path) { strncpy(pfx->prefix_path, pfx->exe_path, p - pfx->exe_path); pfx->prefix_path[p - pfx->exe_path] = 0; DBG("Have prefix = %s", pfx->prefix_path); /* bin */ snprintf(buf, sizeof(buf), "%s" DSEP_S "%s", pfx->prefix_path, bindir); STRDUP_REP(pfx->prefix_path_bin, buf); DBG("Have bin = %s", pfx->prefix_path_bin); /* lib */ snprintf(buf, sizeof(buf), "%s" DSEP_S "%s", pfx->prefix_path, libdir); STRDUP_REP(pfx->prefix_path_lib, buf); DBG("Have lib = %s", pfx->prefix_path_lib); /* locale */ snprintf(buf, sizeof(buf), "%s" DSEP_S "%s", pfx->prefix_path, localedir); STRDUP_REP(pfx->prefix_path_locale, buf); DBG("Have locale = %s", pfx->prefix_path_locale); /* check if magic file is there - then our guess is right */ if (magic) { DBG("Magic = %s", magic); snprintf(buf, sizeof(buf), "%s" DSEP_S "%s" DSEP_S "%s", pfx->prefix_path, datadir, magic); DBG("Check in %s", buf); } if ((!magic) || (stat(buf, &st) == 0)) { if (buf[0]) DBG("Magic path %s stat passed", buf); else DBG("No magic file"); snprintf(buf, sizeof(buf), "%s" DSEP_S "%s", pfx->prefix_path, datadir); STRDUP_REP(pfx->prefix_path_data, buf); } /* magic file not there. time to start hunting! */ else { if (buf[0]) { for (;p > pfx->exe_path; p--) { if (*p == DSEP_C) { p--; break; } } if (p > pfx->exe_path) { continue; DBG("Go back one directory"); } } WRN("Magic failed"); _fallback(pfx, pkg_bin, pkg_lib, pkg_data, pkg_locale, envprefix); } } else { WRN("No Prefix path (alloc fail)"); _fallback(pfx, pkg_bin, pkg_lib, pkg_data, pkg_locale, envprefix); } return pfx; } p--; } } WRN("Final fallback"); _fallback(pfx, pkg_bin, pkg_lib, pkg_data, pkg_locale, envprefix); return pfx; } EAPI void eina_prefix_free(Eina_Prefix *pfx) { if (!pfx) return; IF_FREE_NULL(pfx->exe_path); IF_FREE_NULL(pfx->prefix_path); IF_FREE_NULL(pfx->prefix_path_bin); IF_FREE_NULL(pfx->prefix_path_data); IF_FREE_NULL(pfx->prefix_path_lib); IF_FREE_NULL(pfx->prefix_path_locale); free(pfx); } EAPI const char * eina_prefix_get(Eina_Prefix *pfx) { if (!pfx) return ""; return pfx->prefix_path; } EAPI const char * eina_prefix_bin_get(Eina_Prefix *pfx) { if (!pfx) return ""; return pfx->prefix_path_bin; } EAPI const char * eina_prefix_lib_get(Eina_Prefix *pfx) { if (!pfx) return ""; return pfx->prefix_path_lib; } EAPI const char * eina_prefix_data_get(Eina_Prefix *pfx) { if (!pfx) return ""; return pfx->prefix_path_data; } EAPI const char * eina_prefix_locale_get(Eina_Prefix *pfx) { if (!pfx) return ""; return pfx->prefix_path_locale; } Eina_Bool eina_prefix_init(void) { _eina_prefix_log_dom = eina_log_domain_register("eina_prefix", EINA_LOG_COLOR_DEFAULT); if (_eina_prefix_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_prefix"); return EINA_FALSE; } return EINA_TRUE; } Eina_Bool eina_prefix_shutdown(void) { eina_log_domain_unregister(_eina_prefix_log_dom); _eina_prefix_log_dom = -1; return EINA_TRUE; } eina-1.7.10/src/lib/eina_accessor.c0000664000175000017500000001174712175475327013765 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_config.h" #include "eina_private.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_accessor.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ static const char EINA_MAGIC_ACCESSOR_STR[] = "Eina Accessor"; #define EINA_MAGIC_CHECK_ACCESSOR(d) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_ACCESSOR)) { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_ACCESSOR); } \ } while(0) /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the accessor module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the accessor module of Eina. It is called by * eina_init(). * * @see eina_init() */ Eina_Bool eina_accessor_init(void) { return eina_magic_string_set(EINA_MAGIC_ACCESSOR, EINA_MAGIC_ACCESSOR_STR); } /** * @internal * @brief Shut down the accessor module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the accessor module set up by * eina_accessor_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_accessor_shutdown(void) { return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI void eina_accessor_free(Eina_Accessor *accessor) { if (!accessor) return; EINA_MAGIC_CHECK_ACCESSOR(accessor); EINA_SAFETY_ON_NULL_RETURN(accessor->free); accessor->free(accessor); } EAPI void * eina_accessor_container_get(Eina_Accessor *accessor) { EINA_MAGIC_CHECK_ACCESSOR(accessor); EINA_SAFETY_ON_NULL_RETURN_VAL(accessor, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(accessor->get_container, NULL); return accessor->get_container(accessor); } EAPI Eina_Bool eina_accessor_data_get(Eina_Accessor *accessor, unsigned int position, void **data) { EINA_MAGIC_CHECK_ACCESSOR(accessor); EINA_SAFETY_ON_NULL_RETURN_VAL(accessor, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(accessor->get_at, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE); return accessor->get_at(accessor, position, data); } EAPI void eina_accessor_over(Eina_Accessor *accessor, Eina_Each_Cb cb, unsigned int start, unsigned int end, const void *fdata) { const void *container; void *data; unsigned int i; if (!accessor) return ; EINA_MAGIC_CHECK_ACCESSOR(accessor); EINA_SAFETY_ON_NULL_RETURN(accessor->get_container); EINA_SAFETY_ON_NULL_RETURN(accessor->get_at); EINA_SAFETY_ON_NULL_RETURN(cb); EINA_SAFETY_ON_FALSE_RETURN(start < end); if (!eina_accessor_lock(accessor)) return ; container = accessor->get_container(accessor); for (i = start; i < end && accessor->get_at(accessor, i, &data) == EINA_TRUE; ++i) if (cb(container, data, (void *)fdata) != EINA_TRUE) goto on_exit; on_exit: (void) eina_accessor_unlock(accessor); } EAPI Eina_Bool eina_accessor_lock(Eina_Accessor *accessor) { EINA_MAGIC_CHECK_ACCESSOR(accessor); EINA_SAFETY_ON_NULL_RETURN_VAL(accessor, EINA_FALSE); if (accessor->lock) return accessor->lock(accessor); return EINA_TRUE; } EAPI Eina_Bool eina_accessor_unlock(Eina_Accessor *accessor) { EINA_MAGIC_CHECK_ACCESSOR(accessor); EINA_SAFETY_ON_NULL_RETURN_VAL(accessor, EINA_FALSE); if (accessor->unlock) return accessor->unlock(accessor); return EINA_TRUE; } eina-1.7.10/src/lib/eina_sched.c0000664000175000017500000000516412175475327013245 00000000000000/* EINA - EFL data type library * Copyright (C) 2010 ProFUSION embedded systems * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef EFL_HAVE_POSIX_THREADS # include # ifdef __linux__ # include # include # include # include # endif #endif #ifdef EFL_HAVE_WIN32_THREADS # ifndef WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN # endif # include # undef WIN32_LEAN_AND_MEAN #endif #include "eina_sched.h" #include "eina_log.h" #define RTNICENESS 1 #define NICENESS 5 EAPI void eina_sched_prio_drop(void) { #ifdef EFL_HAVE_POSIX_THREADS struct sched_param param; int pol, prio, ret; pthread_t pthread_id; pthread_id = pthread_self(); ret = pthread_getschedparam(pthread_id, &pol, ¶m); if (ret) { EINA_LOG_ERR("Unable to query sched parameters"); return; } if (EINA_UNLIKELY(pol == SCHED_RR || pol == SCHED_FIFO)) { param.sched_priority -= RTNICENESS; /* We don't change the policy */ if (param.sched_priority < 1) { EINA_LOG_INFO("RT prio < 1, setting to 1 instead"); param.sched_priority = 1; } pthread_setschedparam(pthread_id, pol, ¶m); } # ifdef __linux__ else { errno = 0; prio = getpriority(PRIO_PROCESS, 0); if (errno == 0) { prio += NICENESS; if (prio > 19) { EINA_LOG_INFO("Max niceness reached; keeping max (19)"); prio = 19; } setpriority(PRIO_PROCESS, 0, prio); } } # endif #elif defined EFL_HAVE_WIN32_THREADS if (!SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_BELOW_NORMAL)) EINA_LOG_ERR("Can not set thread priority"); #else EINA_LOG_ERR("Eina does not have support for threads enabled" "or it doesn't support setting scheduler priorities"); #endif } eina-1.7.10/src/lib/eina_tiler.c0000664000175000017500000010123112175475327013266 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Gustavo Sverzut Barbieri, Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ /* TODO * it is possible to have more than one tiler algorithm, but for now the * version Gustavo did is hardcoded here * http://blog.gustavobarbieri.com.br/2007/06/03/evas-now-using-rectangle-split-and-merge/ */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "eina_config.h" #include "eina_private.h" #include "eina_tiler.h" #include "eina_error.h" #include "eina_lock.h" /*============================================================================* * Local * *============================================================================*/ /* The splitter data types */ typedef struct list_node list_node_t; typedef struct list list_t; typedef struct rect rect_t; typedef struct rect_node rect_node_t; struct list_node { struct list_node *next; }; struct list { struct list_node *head; struct list_node *tail; }; struct rect { short right; short bottom; short left; short top; short width; short height; int area; }; struct rect_node { struct list_node _lst; struct rect rect; }; typedef struct splitter { Eina_Bool need_merge; list_t rects; } splitter_t; typedef struct list_node_pool { list_node_t *node; int len; int max; } list_node_pool_t; static const list_node_t list_node_zeroed = { NULL }; static const list_t list_zeroed = { NULL, NULL }; static list_node_pool_t list_node_pool = { NULL, 0, 1024 }; typedef struct _Eina_Iterator_Tiler { Eina_Iterator iterator; const Eina_Tiler *tiler; list_node_t *curr; Eina_Rectangle r; EINA_MAGIC } Eina_Iterator_Tiler; struct _Eina_Tiler { struct { int w, h; } tile; Eina_Rectangle area; EINA_MAGIC splitter_t splitter; Eina_Bool rounding : 1; }; #define EINA_MAGIC_CHECK_TILER(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_TILER)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_TILER); \ return __VA_ARGS__; \ } \ } while(0) #define EINA_MAGIC_CHECK_TILER_ITERATOR(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_TILER_ITERATOR)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_TILER_ITERATOR); \ return __VA_ARGS__; \ } \ } while(0) /* The Splitter algorithm */ static inline void rect_init(rect_t *r, int x, int y, int w, int h) { r->area = w * h; r->left = x; r->top = y; r->right = x + w; r->bottom = y + h; r->width = w; r->height = h; } static inline list_node_t * rect_list_node_pool_get(void) { if (list_node_pool.node) { list_node_t *node; node = list_node_pool.node; list_node_pool.node = node->next; list_node_pool.len--; return node; } else return malloc(sizeof(rect_node_t)); } static inline void rect_list_concat(list_t *rects, list_t *other) { if (!other->head) return; if (rects->tail) { rects->tail->next = other->head; rects->tail = other->tail; } else { rects->head = other->head; rects->tail = other->tail; } *other = list_zeroed; } static inline void rect_list_append_node(list_t *rects, list_node_t *node) { if (rects->tail) { rects->tail->next = node; rects->tail = node; } else { rects->head = node; rects->tail = node; } } static inline void rect_list_append(list_t *rects, const rect_t r) { rect_node_t *rect_node; rect_node = (rect_node_t *)rect_list_node_pool_get(); rect_node->rect = r; rect_node->_lst = list_node_zeroed; rect_list_append_node(rects, (list_node_t *)rect_node); } static inline void rect_list_append_xywh(list_t *rects, int x, int y, int w, int h) { rect_t r; rect_init(&r, x, y, w, h); rect_list_append(rects, r); } static inline void _calc_intra_rect_area(const rect_t a, const rect_t b, int *width, int *height) { int max_left, min_right, max_top, min_bottom; if (a.left < b.left) max_left = b.left; else max_left = a.left; if (a.right < b.right) min_right = a.right; else min_right = b.right; *width = min_right - max_left; if (a.top < b.top) max_top = b.top; else max_top = a.top; if (a.bottom < b.bottom) min_bottom = a.bottom; else min_bottom = b.bottom; *height = min_bottom - max_top; } static inline void _split_strict(list_t *dirty, const rect_t current, rect_t r) { int h_1, h_2, w_1, w_2; h_1 = current.top - r.top; h_2 = r.bottom - current.bottom; w_1 = current.left - r.left; w_2 = r.right - current.right; if (h_1 > 0) { /* .--.r (b) .---.r2 * | | | | * .-------.cur (a) .---.r '---' * | | | | -> | | + * | `--' | `---' * `-------' */ rect_list_append_xywh(dirty, r.left, r.top, r.width, h_1); r.height -= h_1; r.top = current.top; } if (h_2 > 0) { /* .-------.cur (a) * | .---. | .---.r * | | | | -> | | * `-------' `---' + .---.r2 * | | | | * `---'r (b) `---' */ rect_list_append_xywh(dirty, r.left, current.bottom, r.width, h_2); r.height -= h_2; } if (w_1 > 0) /* (b) r .----.cur (a) * .--|-. | .--.r2 .-.r * | | | | -> | | + | | * `--|-' | `--' `-' * `----' */ rect_list_append_xywh(dirty, r.left, r.top, w_1, r.height); /* not necessary to keep these, r (b) will be destroyed */ /* r.width -= w_1; */ /* r.left = current.left; */ if (w_2 > 0) /* .----.cur (a) * | | * | .-|--.r (b) .-.r .--.r2 * | | | | -> | | + | | * | `-|--' `-' `--' * `----' */ rect_list_append_xywh(dirty, current.right, r.top, w_2, r.height); /* not necessary to keep this, r (b) will be destroyed */ /* r.width -= w_2; */ } static inline void _calc_intra_outer_rect_area(const rect_t a, const rect_t b, rect_t *intra, rect_t *outer) { int min_left, max_left, min_right, max_right; int min_top, max_top, min_bottom, max_bottom; if (a.left < b.left) { max_left = b.left; min_left = a.left; } else { max_left = a.left; min_left = b.left; } if (a.right < b.right) { min_right = a.right; max_right = b.right; } else { min_right = b.right; max_right = a.right; } intra->left = max_left; intra->right = min_right; intra->width = min_right - max_left; outer->left = min_left; outer->right = max_right; outer->width = max_right - min_left; if (a.top < b.top) { max_top = b.top; min_top = a.top; } else { max_top = a.top; min_top = b.top; } if (a.bottom < b.bottom) { min_bottom = a.bottom; max_bottom = b.bottom; } else { min_bottom = b.bottom; max_bottom = a.bottom; } intra->top = max_top; intra->bottom = min_bottom; intra->height = min_bottom - max_top; if ((intra->width > 0) && (intra->height > 0)) intra->area = intra->width * intra->height; else intra->area = 0; outer->top = min_top; outer->bottom = max_bottom; outer->height = max_bottom - min_top; outer->area = outer->width * outer->height; } enum { SPLIT_FUZZY_ACTION_NONE, SPLIT_FUZZY_ACTION_SPLIT, SPLIT_FUZZY_ACTION_MERGE }; static inline int _split_fuzzy(list_t *dirty, const rect_t a, rect_t *b) { int h_1, h_2, w_1, w_2, action; h_1 = a.top - b->top; h_2 = b->bottom - a.bottom; w_1 = a.left - b->left; w_2 = b->right - a.right; action = SPLIT_FUZZY_ACTION_NONE; if (h_1 > 0) { /* .--.r (b) .---.r2 * | | | | * .-------.cur (a) .---.r '---' * | | | | -> | | + * | `--' | `---' * `-------' */ rect_list_append_xywh(dirty, b->left, b->top, b->width, h_1); b->height -= h_1; b->top = a.top; action = SPLIT_FUZZY_ACTION_SPLIT; } if (h_2 > 0) { /* .-------.cur (a) * | .---. | .---.r * | | | | -> | | * `-------' `---' + .---.r2 * | | | | * `---'r (b) `---' */ rect_list_append_xywh(dirty, b->left, a.bottom, b->width, h_2); b->height -= h_2; action = SPLIT_FUZZY_ACTION_SPLIT; } if (((w_1 > 0) || (w_2 > 0)) && (a.height == b->height)) return SPLIT_FUZZY_ACTION_MERGE; if (w_1 > 0) { /* (b) r .----.cur (a) * .--|-. | .--.r2 .-.r * | | | | -> | | + | | * `--|-' | `--' `-' * `----' */ rect_list_append_xywh(dirty, b->left, b->top, w_1, b->height); /* not necessary to keep these, r (b) will be destroyed */ /* b->width -= w_1; */ /* b->left = a.left; */ action = SPLIT_FUZZY_ACTION_SPLIT; } if (w_2 > 0) { /* .----.cur (a) * | | * | .-|--.r (b) .-.r .--.r2 * | | | | -> | | + | | * | `-|--' `-' `--' * `----' */ rect_list_append_xywh(dirty, a.right, b->top, w_2, b->height); /* not necessary to keep these, r (b) will be destroyed */ /* b->width -= w_2; */ action = SPLIT_FUZZY_ACTION_SPLIT; } return action; } #if 0 static void rect_list_node_pool_set_max(int max) { int diff; diff = list_node_pool.len - max; for (; diff > 0 && list_node_pool.node != NULL; diff--) { list_node_t *node; node = list_node_pool.node; list_node_pool.node = node->next; list_node_pool.len--; free(node); } list_node_pool.max = max; } #endif static void rect_list_node_pool_flush(void) { while (list_node_pool.node) { list_node_t *node; node = list_node_pool.node; list_node_pool.node = node->next; list_node_pool.len--; free(node); } } static inline void rect_list_node_pool_put(list_node_t *node) { if (list_node_pool.len < list_node_pool.max) { node->next = list_node_pool.node; list_node_pool.node = node; list_node_pool.len++; } else free(node); } #if 0 static void rect_print(const rect_t r) { printf("", r.left, r.top, r.width, r.height); } static void rect_list_print(const list_t rects) { list_node_t *node; int len; len = 0; for (node = rects.head; node != NULL; node = node->next) len++; printf("["); for (node = rects.head; node != NULL; node = node->next) { rect_print(((rect_node_t *)node)->rect); if (node->next) { putchar(','); if (len < 4) putchar(' '); else { putchar('\n'); putchar(' '); } } } printf("]\n"); } #endif static inline list_node_t * rect_list_unlink_next(list_t *rects, list_node_t *parent_node) { list_node_t *node; if (parent_node) { node = parent_node->next; parent_node->next = node->next; } else { node = rects->head; rects->head = node->next; } if (rects->tail == node) rects->tail = parent_node; *node = list_node_zeroed; return node; } static inline void rect_list_del_next(list_t *rects, list_node_t *parent_node) { list_node_t *node; node = rect_list_unlink_next(rects, parent_node); rect_list_node_pool_put(node); } static void rect_list_clear(list_t *rects) { list_node_t *node; node = rects->head; while (node) { list_node_t *aux; aux = node->next; rect_list_node_pool_put(node); node = aux; } *rects = list_zeroed; } static void rect_list_del_split_strict(list_t *rects, const rect_t del_r) { list_t modified = list_zeroed; list_node_t *cur_node, *prev_node; prev_node = NULL; cur_node = rects->head; while (cur_node) { int intra_width, intra_height; rect_t current; current = ((rect_node_t *)cur_node)->rect; _calc_intra_rect_area(del_r, current, &intra_width, &intra_height); if ((intra_width <= 0) || (intra_height <= 0)) { /* .---.current .---.del_r * | | | | * `---+---.del_r `---+---.current * | | | | * `---' `---' * no intersection, nothing to do */ prev_node = cur_node; cur_node = cur_node->next; } else if ((intra_width == current.width) && (intra_height == current.height)) { /* .-------.del_r * | .---. | * | | | | * | `---'current * `-------' * current is contained, remove from rects */ cur_node = cur_node->next; rect_list_del_next(rects, prev_node); } else { _split_strict(&modified, del_r, current); cur_node = cur_node->next; rect_list_del_next(rects, prev_node); } } rect_list_concat(rects, &modified); } #if 0 static void rect_list_add_split_strict(list_t *rects, list_node_t *node) { list_t dirty = list_zeroed; list_t new_dirty = list_zeroed; list_node_t *cur_node; if (!rects->head) { rect_list_append_node(rects, node); return; } rect_list_append_node(&dirty, node); cur_node = rects->head; while (dirty.head) { rect_t current; if (!cur_node) { rect_list_concat(rects, &dirty); break; } current = ((rect_node_t *)cur_node)->rect; while (dirty.head) { int intra_width, intra_height; rect_t r; r = ((rect_node_t *)dirty.head)->rect; _calc_intra_rect_area(r, current, &intra_width, &intra_height); if ((intra_width == r.width) && (intra_height == r.height)) /* .-------.cur * | .---.r| * | | | | * | `---' | * `-------' */ rect_list_del_next(&dirty, NULL); else if ((intra_width <= 0) || (intra_height <= 0)) { /* .---.cur .---.r * | | | | * `---+---.r `---+---.cur * | | | | * `---' `---' */ list_node_t *tmp; tmp = rect_list_unlink_next(&dirty, NULL); rect_list_append_node(&new_dirty, tmp); } else { _split_strict(&new_dirty, current, r); rect_list_del_next(&dirty, NULL); } } dirty = new_dirty; new_dirty = list_zeroed; cur_node = cur_node->next; } } #endif static list_node_t * rect_list_add_split_fuzzy(list_t *rects, list_node_t *node, int accepted_error) { list_t dirty = list_zeroed; list_node_t *old_last; old_last = rects->tail; if (!rects->head) { rect_list_append_node(rects, node); return old_last; } rect_list_append_node(&dirty, node); while (dirty.head) { list_node_t *d_node, *cur_node, *prev_cur_node; int keep_dirty; rect_t r; d_node = rect_list_unlink_next(&dirty, NULL); r = ((rect_node_t *)d_node)->rect; prev_cur_node = NULL; cur_node = rects->head; keep_dirty = 1; while (cur_node) { int area, action; rect_t current, intra, outer; current = ((rect_node_t *)cur_node)->rect; _calc_intra_outer_rect_area(r, current, &intra, &outer); area = current.area + r.area - intra.area; if ((intra.width == r.width) && (intra.height == r.height)) { /* .-------.cur * | .---.r| * | | | | * | `---' | * `-------' */ keep_dirty = 0; break; } else if ((intra.width == current.width) && (intra.height == current.height)) { /* .-------.r * | .---.cur * | | | | * | `---' | * `-------' */ if (old_last == cur_node) old_last = prev_cur_node; cur_node = cur_node->next; rect_list_del_next(rects, prev_cur_node); } else if ((outer.area - area) <= accepted_error) { /* .-----------. bounding box (outer) * |.---. .---.| * ||cur| |r || * || | | || * |`---' `---'| * `-----------' * merge them, remove both and add merged */ rect_node_t *n; if (old_last == cur_node) old_last = prev_cur_node; n = (rect_node_t *)rect_list_unlink_next( rects, prev_cur_node); n->rect = outer; rect_list_append_node(&dirty, (list_node_t *)n); keep_dirty = 0; break; } else if (intra.area <= accepted_error) { /* .---.cur .---.r * | | | | * `---+---.r `---+---.cur * | | | | * `---' `---' * no split, no merge */ prev_cur_node = cur_node; cur_node = cur_node->next; } else { /* split is required */ action = _split_fuzzy(&dirty, current, &r); if (action == SPLIT_FUZZY_ACTION_MERGE) { /* horizontal merge is possible: remove both, add merged */ rect_node_t *n; if (old_last == cur_node) old_last = prev_cur_node; n = (rect_node_t *)rect_list_unlink_next( rects, prev_cur_node); n->rect.left = outer.left; n->rect.width = outer.width; n->rect.right = outer.right; n->rect.area = outer.width * r.height; rect_list_append_node(&dirty, (list_node_t *)n); } else if (action == SPLIT_FUZZY_ACTION_NONE) { /* * this rect check was totally useless, * should never happen */ /* prev_cur_node = cur_node; */ /* cur_node = cur_node->next; */ printf("Should not get here!\n"); abort(); } keep_dirty = 0; break; } } if (EINA_UNLIKELY(keep_dirty)) rect_list_append_node(rects, d_node); else rect_list_node_pool_put(d_node); } return old_last; } static inline void _calc_outer_rect_area(const rect_t a, const rect_t b, rect_t *outer) { int min_left, max_right; int min_top, max_bottom; if (a.left < b.left) min_left = a.left; else min_left = b.left; if (a.right < b.right) max_right = b.right; else max_right = a.right; outer->left = min_left; outer->right = max_right; outer->width = max_right - min_left; if (a.top < b.top) min_top = a.top; else min_top = b.top; if (a.bottom < b.bottom) max_bottom = b.bottom; else max_bottom = a.bottom; outer->top = min_top; outer->bottom = max_bottom; outer->height = max_bottom - min_top; outer->area = outer->width * outer->height; } static void rect_list_merge_rects(list_t *rects, list_t *to_merge, int accepted_error) { while (to_merge->head) { list_node_t *node, *parent_node; rect_t r1; int merged; r1 = ((rect_node_t *)to_merge->head)->rect; merged = 0; parent_node = NULL; node = rects->head; while (node) { rect_t r2, outer; int area; r2 = ((rect_node_t *)node)->rect; _calc_outer_rect_area(r1, r2, &outer); area = r1.area + r2.area; /* intra area is taken as 0 */ if (outer.area - area <= accepted_error) { /* * remove both r1 and r2, create r3 * actually r3 uses r2 instance, saves memory */ rect_node_t *n; n = (rect_node_t *)rect_list_unlink_next( rects, parent_node); n->rect = outer; rect_list_append_node(to_merge, (list_node_t *)n); merged = 1; break; } parent_node = node; node = node->next; } if (!merged) { list_node_t *n; n = rect_list_unlink_next(to_merge, NULL); rect_list_append_node(rects, n); } else rect_list_del_next(to_merge, NULL); } } static void rect_list_add_split_fuzzy_and_merge(list_t *rects, list_node_t *node, int split_accepted_error, int merge_accepted_error) { list_node_t *n; n = rect_list_add_split_fuzzy(rects, node, split_accepted_error); if (n && n->next) { list_t to_merge; /* split list into 2 segments, already merged and to merge */ to_merge.head = n->next; to_merge.tail = rects->tail; rects->tail = n; n->next = NULL; rect_list_merge_rects(rects, &to_merge, merge_accepted_error); } } static inline void _splitter_new(Eina_Tiler *t) { t->splitter.rects = list_zeroed; t->splitter.need_merge = EINA_FALSE; } static inline void _splitter_del(Eina_Tiler *t) { rect_list_clear(&t->splitter.rects); rect_list_node_pool_flush(); } static inline void _splitter_tile_size_set(Eina_Tiler *t, int w EINA_UNUSED, int h EINA_UNUSED) { /* TODO are w and h used for something? */ t->splitter.rects = list_zeroed; } static inline Eina_Bool _splitter_rect_add(Eina_Tiler *t, Eina_Rectangle *rect) { rect_node_t *rn; //printf("ACCOUNTING[1]: add_redraw: %4d,%4d %3dx%3d\n", x, y, w, h); if (t->rounding) { rect->x >>= 1; rect->y >>= 1; rect->w += 2; rect->w >>= 1; rect->h += 2; rect->h >>= 1; } rn = (rect_node_t *)rect_list_node_pool_get(); rn->_lst = list_node_zeroed; rect_init(&rn->rect, rect->x, rect->y, rect->w, rect->h); //printf("ACCOUNTING[2]: add_redraw: %4d,%4d %3dx%3d\n", x, y, w, h); //testing on my core2 duo desktop - fuzz of 32 or 48 is best. rect_list_add_split_fuzzy_and_merge(&t->splitter.rects, (list_node_t *)rn, t->tile.w * t->tile.h, t->tile.w * t->tile.h); return EINA_TRUE; } static inline void _splitter_rect_del(Eina_Tiler *t, Eina_Rectangle *rect) { rect_t r; if (!t->splitter.rects.head) return; if (t->rounding) { rect->x += 1; rect->y += 1; rect->x >>= 1; rect->y >>= 1; rect->w -= 1; rect->w >>= 1; rect->h -= 1; rect->h >>= 1; } if ((rect->w <= 0) || (rect->h <= 0)) return; rect_init(&r, rect->x, rect->y, rect->w, rect->h); //fprintf(stderr, "ACCOUNTING: del_redraw: %4d,%4d %3dx%3d\n", x, y, w, h); rect_list_del_split_strict(&t->splitter.rects, r); t->splitter.need_merge = EINA_TRUE; return; } static inline void _splitter_clear(Eina_Tiler *t) { rect_list_clear(&t->splitter.rects); t->splitter.need_merge = EINA_FALSE; } /* end of splitter algorithm */ static Eina_Bool _iterator_next(Eina_Iterator_Tiler *it, void **data) { list_node_t *n; for (n = it->curr; n; n = n->next) { rect_t cur; cur = ((rect_node_t *)n)->rect; if (it->tiler->rounding) { it->r.x = cur.left << 1; it->r.y = cur.top << 1; it->r.w = cur.width << 1; it->r.h = cur.height << 1; } else { it->r.x = cur.left; it->r.y = cur.top; it->r.w = cur.width; it->r.h = cur.height; } if (eina_rectangle_intersection(&it->r, &it->tiler->area) == EINA_FALSE) continue; if ((it->r.w <= 0) || (it->r.h <= 0)) continue; it->curr = n->next; *(Eina_Rectangle **)data = &it->r; return EINA_TRUE; } return EINA_FALSE; } static void *_iterator_get_container(Eina_Iterator_Tiler *it) { EINA_MAGIC_CHECK_TILER_ITERATOR(it, NULL); return (void *)it->tiler; } static void _iterator_free(Eina_Iterator_Tiler *it) { EINA_MAGIC_CHECK_TILER_ITERATOR(it); free(it); } /*============================================================================* * Global * *============================================================================*/ /*============================================================================* * API * *============================================================================*/ EAPI Eina_Tiler *eina_tiler_new(int w, int h) { Eina_Tiler *t; if ((w <= 0) || (h <= 0)) return NULL; t = calloc(1, sizeof(Eina_Tiler)); t->area.w = w; t->area.h = h; t->tile.w = 32; t->tile.h = 32; t->rounding = EINA_TRUE; EINA_MAGIC_SET(t, EINA_MAGIC_TILER); _splitter_new(t); return t; } EAPI void eina_tiler_free(Eina_Tiler *t) { if (!t) return; EINA_MAGIC_CHECK_TILER(t); _splitter_del(t); free(t); } EAPI void eina_tiler_tile_size_set(Eina_Tiler *t, int w, int h) { EINA_MAGIC_CHECK_TILER(t); if ((w <= 0) || (h <= 0)) return; if (w == 1 || h == 1) t->rounding = EINA_FALSE; t->tile.w = w; t->tile.h = h; _splitter_tile_size_set(t, w, h); } EAPI Eina_Bool eina_tiler_rect_add(Eina_Tiler *t, const Eina_Rectangle *r) { Eina_Rectangle tmp; EINA_MAGIC_CHECK_TILER(t, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(r, EINA_FALSE); if ((r->w <= 0) || (r->h <= 0)) return EINA_FALSE; tmp = *r; if (eina_rectangle_intersection(&tmp, &t->area) == EINA_FALSE) return EINA_FALSE; if ((tmp.w <= 0) || (tmp.h <= 0)) return EINA_FALSE; return _splitter_rect_add(t, &tmp); } EAPI void eina_tiler_rect_del(Eina_Tiler *t, const Eina_Rectangle *r) { Eina_Rectangle tmp; EINA_MAGIC_CHECK_TILER(t); EINA_SAFETY_ON_NULL_RETURN(r); if ((r->w <= 0) || (r->h <= 0)) return; tmp = *r; if (eina_rectangle_intersection(&tmp, &t->area) == EINA_FALSE) return; if ((tmp.w <= 0) || (tmp.h <= 0)) return; _splitter_rect_del(t, &tmp); } EAPI void eina_tiler_clear(Eina_Tiler *t) { EINA_MAGIC_CHECK_TILER(t); _splitter_clear(t); } EAPI Eina_Iterator *eina_tiler_iterator_new(const Eina_Tiler *t) { Eina_Iterator_Tiler *it; EINA_MAGIC_CHECK_TILER(t, NULL); it = calloc(1, sizeof (Eina_Iterator_Tiler)); if (!it) return NULL; it->tiler = t; if (t->splitter.need_merge == EINA_TRUE) { list_t to_merge; splitter_t *sp; sp = (splitter_t *)&(t->splitter); to_merge = t->splitter.rects; sp->rects = list_zeroed; rect_list_merge_rects(&sp->rects, &to_merge, t->tile.w * t->tile.h); sp->need_merge = 0; } it->curr = it->tiler->splitter.rects.head; it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER( _iterator_get_container); it->iterator.free = FUNC_ITERATOR_FREE(_iterator_free); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); EINA_MAGIC_SET(it, EINA_MAGIC_TILER_ITERATOR); return &it->iterator; } struct _Eina_Tile_Grid_Slicer_Iterator { Eina_Iterator iterator; Eina_Tile_Grid_Slicer priv; }; typedef struct _Eina_Tile_Grid_Slicer_Iterator Eina_Tile_Grid_Slicer_Iterator; static void eina_tile_grid_slicer_iterator_free(Eina_Tile_Grid_Slicer_Iterator *it) { EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_NONE); free(it); } static Eina_Bool eina_tile_grid_slicer_iterator_next(Eina_Tile_Grid_Slicer_Iterator *it, void **data) { return eina_tile_grid_slicer_next (&it->priv, (const Eina_Tile_Grid_Info **)data); } EAPI Eina_Iterator * eina_tile_grid_slicer_iterator_new(int x, int y, int w, int h, int tile_w, int tile_h) { Eina_Tile_Grid_Slicer_Iterator *it; if ((x < 0) || (y < 0) || (w <= 0) || (h <= 0) || (tile_w <= 0) || (tile_h <= 0)) return NULL; it = calloc(1, sizeof(*it)); if (!it) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(eina_tile_grid_slicer_iterator_next); it->iterator.free = FUNC_ITERATOR_FREE(eina_tile_grid_slicer_iterator_free); eina_tile_grid_slicer_setup(&it->priv, x, y, w, h, tile_w, tile_h); return &it->iterator; } eina-1.7.10/src/lib/eina_benchmark.c0000664000175000017500000002047612175475327014114 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef HAVE_ALLOCA_H # include #elif defined __GNUC__ # define alloca __builtin_alloca #elif defined _AIX # define alloca __alloca #elif defined _MSC_VER # include # define alloca _alloca #else # include # ifdef __cplusplus extern "C" # endif void *alloca (size_t); #endif #include #include #include #ifdef HAVE_EVIL # include #endif #include "eina_config.h" #include "eina_private.h" #include "eina_log.h" #include "eina_benchmark.h" #include "eina_inlist.h" #include "eina_list.h" #include "eina_counter.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ #define EINA_BENCHMARK_FILENAME_MASK "bench_%s_%s.gnuplot" #define EINA_BENCHMARK_DATA_MASK "bench_%s_%s.%s.data" typedef struct _Eina_Run Eina_Run; struct _Eina_Run { EINA_INLIST; Eina_Benchmark_Specimens cb; const char *name; int start; int end; int step; }; struct _Eina_Benchmark { const char *name; const char *run; Eina_Inlist *runs; Eina_List *names; }; static int _eina_benchmark_log_dom = -1; #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_benchmark_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_benchmark_log_dom, __VA_ARGS__) /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the benchmark module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the benchmark module of Eina. It is called by * eina_init(). * * @see eina_init() */ Eina_Bool eina_benchmark_init(void) { _eina_benchmark_log_dom = eina_log_domain_register("eina_benchmark", EINA_LOG_COLOR_DEFAULT); if (_eina_benchmark_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_benchmark"); return EINA_FALSE; } return EINA_TRUE; } /** * @internal * @brief Shut down the benchmark module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the benchmark module set up by * eina_benchmark_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_benchmark_shutdown(void) { eina_log_domain_unregister(_eina_benchmark_log_dom); _eina_benchmark_log_dom = -1; return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI Eina_Benchmark * eina_benchmark_new(const char *name, const char *run) { Eina_Benchmark *new; eina_error_set(0); new = calloc(1, sizeof (Eina_Benchmark)); if (!new) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } new->name = name; new->run = run; return new; } EAPI void eina_benchmark_free(Eina_Benchmark *bench) { Eina_Array *names; if (!bench) return; while (bench->runs) { Eina_Run *run = (Eina_Run *)bench->runs; bench->runs = eina_inlist_remove(bench->runs, bench->runs); free(run); } EINA_LIST_FREE(bench->names, names) { Eina_Array_Iterator it; char *tmp; unsigned int i; EINA_ARRAY_ITER_NEXT(names, i, tmp, it) free(tmp); eina_array_free(names); } free(bench); } EAPI Eina_Bool eina_benchmark_register(Eina_Benchmark *bench, const char *name, Eina_Benchmark_Specimens bench_cb, int count_start, int count_end, int count_step) { Eina_Run *run; if (!bench) return EINA_FALSE; if (count_step == 0) return EINA_FALSE; eina_error_set(0); run = calloc(1, sizeof (Eina_Run)); if (!run) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } run->cb = bench_cb; run->name = name; run->start = count_start; run->end = count_end; run->step = count_step; bench->runs = eina_inlist_append(bench->runs, EINA_INLIST_GET(run)); return EINA_TRUE; } EAPI Eina_Array * eina_benchmark_run(Eina_Benchmark *bench) { FILE *main_script; FILE *current_data; Eina_Array *ea; Eina_Run *run; char *buffer; Eina_Bool first = EINA_FALSE; size_t length; if (!bench) return NULL; length = strlen(EINA_BENCHMARK_FILENAME_MASK) + strlen(bench->name) + strlen( bench->run); buffer = alloca(sizeof (char) * length); if (!buffer) return NULL; snprintf(buffer, length, EINA_BENCHMARK_FILENAME_MASK, bench->name, bench->run); main_script = fopen(buffer, "w"); if (!main_script) return NULL; ea = eina_array_new(16); if (!ea) { fclose(main_script); return NULL; } eina_array_push(ea, strdup(buffer)); fprintf( main_script, "set autoscale # scale axes automatically\n" "unset log # remove any log-scaling\n" "unset label # remove any previous labels\n" "set xtic auto # set xtics automatically\n" "set ytic auto # set ytics automatically\n" /* "set logscale y\n" */ "set terminal png size 1024,768\n" "set output \"output_%s_%s.png\"\n" "set title \"%s %s\n" "set xlabel \"tests\"\n" "set ylabel \"time\"\n" "plot ", bench->name, bench->run, bench->name, bench->run); EINA_INLIST_FOREACH(bench->runs, run) { Eina_Counter *counter; char *result; size_t tmp; int i; tmp = strlen(EINA_BENCHMARK_DATA_MASK) + strlen(bench->name) + strlen( bench->run) + strlen(run->name); if (tmp > length) { buffer = alloca(sizeof (char) * tmp); length = tmp; } snprintf(buffer, length, EINA_BENCHMARK_DATA_MASK, bench->name, bench->run, run->name); current_data = fopen(buffer, "w"); if (!current_data) continue; eina_array_push(ea, strdup(buffer)); counter = eina_counter_new(run->name); for (i = run->start; i < run->end; i += run->step) { fprintf(stderr, "Run %s: %i\n", run->name, i); eina_counter_start(counter); run->cb(i); eina_counter_stop(counter, i); } result = eina_counter_dump(counter); if (result) { fprintf(current_data, "%s", result); free(result); } eina_counter_free(counter); fclose(current_data); if (first == EINA_FALSE) first = EINA_TRUE; else fprintf(main_script, ", \\\n"); fprintf(main_script, "\"%s\" using 1:2 title \'%s\' with line", buffer, run->name); } fprintf(main_script, "\n"); fclose(main_script); bench->names = eina_list_append(bench->names, ea); return ea; } /** * @} */ eina-1.7.10/src/lib/eina_ustringshare.c0000664000175000017500000001273212175475327014674 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler, * Jorge Luis Zapata Muga, * Cedric Bail, * Gustavo Sverzut Barbieri * Tom Hacohen * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ /** * @page tutorial_ustringshare_page UStringshare Tutorial * * to be written... * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "eina_config.h" #include "eina_private.h" #include "eina_unicode.h" #include "eina_log.h" #include "eina_share_common.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_ustringshare.h" #ifdef CRITICAL #undef CRITICAL #endif #define CRITICAL(...) EINA_LOG_DOM_CRIT(_eina_share_ustringshare_log_dom, __VA_ARGS__) #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_share_ustringshare_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_share_ustringshare_log_dom, __VA_ARGS__) static int _eina_share_ustringshare_log_dom = -1; /* The actual share */ static Eina_Share *ustringshare_share; static const char EINA_MAGIC_USTRINGSHARE_NODE_STR[] = "Eina UStringshare Node"; /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the share_common module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the share_common module of Eina. It is called by * eina_init(). * * @see eina_init() */ Eina_Bool eina_ustringshare_init(void) { Eina_Bool ret; if (_eina_share_ustringshare_log_dom < 0) { _eina_share_ustringshare_log_dom = eina_log_domain_register ("eina_ustringshare", EINA_LOG_COLOR_DEFAULT); if (_eina_share_ustringshare_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_ustringshare"); return EINA_FALSE; } } ret = eina_share_common_init(&ustringshare_share, EINA_MAGIC_USTRINGSHARE_NODE, EINA_MAGIC_USTRINGSHARE_NODE_STR); if (!ret) { eina_log_domain_unregister(_eina_share_ustringshare_log_dom); _eina_share_ustringshare_log_dom = -1; } return ret; } /** * @internal * @brief Shut down the share_common module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the share_common module set up by * eina_share_common_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_ustringshare_shutdown(void) { Eina_Bool ret; ret = eina_share_common_shutdown(&ustringshare_share); if (_eina_share_ustringshare_log_dom >= 0) { eina_log_domain_unregister(_eina_share_ustringshare_log_dom); _eina_share_ustringshare_log_dom = -1; } return ret; } /*============================================================================* * API * *============================================================================*/ EAPI void eina_ustringshare_del(const Eina_Unicode *str) { if (!str) return; if (!eina_share_common_del(ustringshare_share, (const char *)str)) CRITICAL("EEEK trying to del non-shared ustringshare \"%s\"", (const char *)str); } EAPI const Eina_Unicode * eina_ustringshare_add_length(const Eina_Unicode *str, unsigned int slen) { return (const Eina_Unicode *)eina_share_common_add_length(ustringshare_share, (const char *)str, slen * sizeof( Eina_Unicode), sizeof( Eina_Unicode)); } EAPI const Eina_Unicode * eina_ustringshare_add(const Eina_Unicode *str) { int slen = (str) ? (int)eina_unicode_strlen(str) : -1; return eina_ustringshare_add_length(str, slen); } EAPI const Eina_Unicode * eina_ustringshare_ref(const Eina_Unicode *str) { return (const Eina_Unicode *)eina_share_common_ref(ustringshare_share, (const char *)str); } EAPI int eina_ustringshare_strlen(const Eina_Unicode *str) { int len = eina_share_common_length(ustringshare_share, (const char *)str); len = (len > 0) ? len / (int)sizeof(Eina_Unicode) : -1; return len; } EAPI void eina_ustringshare_dump(void) { eina_share_common_dump(ustringshare_share, NULL, 0); } eina-1.7.10/src/lib/eina_private.h0000664000175000017500000000765512175475327013645 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Carsten Haitzler, Vincent Torri, Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifndef EINA_PRIVATE_H_ #define EINA_PRIVATE_H_ #include #include "eina_magic.h" #include "eina_iterator.h" #include "eina_accessor.h" #ifndef MIN # define MIN(x, y) (((x) > (y)) ? (y) : (x)) #endif #ifndef MAX # define MAX(x, y) (((x) > (y)) ? (x) : (y)) #endif #ifndef ABS # define ABS(x) ((x) < 0 ? -(x) : (x)) #endif #ifndef CLAMP # define CLAMP(x, min, \ max) (((x) > (max)) ? (max) : (((x) < (min)) ? (min) : (x))) #endif #define EINA_INLIST_JUMP_SIZE 256 #define READBUFSIZ 65536 #define EINA_LOG_COLOR_DEFAULT "\033[36m" /* eina magic types */ #define EINA_MAGIC_SHARE 0x98761234 #define EINA_MAGIC_SHARE_HEAD 0x98761235 #define EINA_MAGIC_STRINGSHARE_NODE 0x98761254 #define EINA_MAGIC_USTRINGSHARE_NODE 0x98761255 #define EINA_MAGIC_BINSHARE_NODE 0x98761256 #define EINA_MAGIC_LIST 0x98761237 #define EINA_MAGIC_LIST_ITERATOR 0x98761238 #define EINA_MAGIC_LIST_ACCESSOR 0x98761239 #define EINA_MAGIC_LIST_ACCOUNTING 0x9876123a #define EINA_MAGIC_ARRAY 0x9876123b #define EINA_MAGIC_ARRAY_ITERATOR 0x9876123c #define EINA_MAGIC_ARRAY_ACCESSOR 0x9876123d #define EINA_MAGIC_HASH 0x9876123e #define EINA_MAGIC_HASH_ITERATOR 0x9876123f #define EINA_MAGIC_TILER 0x98761240 #define EINA_MAGIC_TILER_ITERATOR 0x98761241 #define EINA_MAGIC_MATRIXSPARSE 0x98761242 #define EINA_MAGIC_MATRIXSPARSE_ROW 0x98761243 #define EINA_MAGIC_MATRIXSPARSE_CELL 0x98761244 #define EINA_MAGIC_MATRIXSPARSE_ITERATOR 0x98761245 #define EINA_MAGIC_MATRIXSPARSE_ROW_ITERATOR 0x98761246 #define EINA_MAGIC_MATRIXSPARSE_ROW_ACCESSOR 0x98761247 #define EINA_MAGIC_MATRIXSPARSE_CELL_ITERATOR 0x98761248 #define EINA_MAGIC_MATRIXSPARSE_CELL_ACCESSOR 0x98761249 #define EINA_MAGIC_STRBUF 0x98761250 #define EINA_MAGIC_USTRBUF 0x98761257 #define EINA_MAGIC_BINBUF 0x98761258 #define EINA_MAGIC_QUADTREE 0x98761251 #define EINA_MAGIC_QUADTREE_ROOT 0x98761252 #define EINA_MAGIC_QUADTREE_ITEM 0x98761253 #define EINA_MAGIC_SIMPLE_XML_TAG 0x98761260 #define EINA_MAGIC_SIMPLE_XML_DATA 0x98761261 #define EINA_MAGIC_SIMPLE_XML_ATTRIBUTE 0x98761262 #define EINA_MAGIC_INARRAY 0x98761270 #define EINA_MAGIC_INARRAY_ITERATOR 0x98761271 #define EINA_MAGIC_INARRAY_ACCESSOR 0x98761272 #define EINA_MAGIC_MODEL 0x98761280 #define EINA_MAGIC_CLASS 0x9877CB30 /* undef the following, we want out version */ #undef FREE #define FREE(ptr) \ do { \ free(ptr); \ ptr = NULL; \ } while(0); #undef IF_FREE #define IF_FREE(ptr) \ do { \ if (ptr) { \ free(ptr); \ ptr = NULL; \ } \ } while(0); #undef IF_FN_DEL #define IF_FN_DEL(_fn, ptr) \ do { \ if (ptr) { \ _fn(ptr); \ ptr = NULL; \ } \ } while(0); #define MAGIC_FREE(ptr) \ do { \ if (ptr) { \ EINA_MAGIC_SET(ptr, EINA_MAGIC_NONE); \ FREE(ptr); \ } \ } while(0); #ifdef EFL_HAVE_THREADS extern Eina_Bool _threads_activated; void eina_share_common_threads_init(void); void eina_share_common_threads_shutdown(void); void eina_log_threads_init(void); void eina_log_threads_shutdown(void); #endif void eina_cpu_count_internal(void); void eina_file_mmap_faulty(void *addr, long page_size); #endif /* EINA_PRIVATE_H_ */ eina-1.7.10/src/lib/eina_list.c0000664000175000017500000010532512175475327013132 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler, Gustavo Sverzut Barbieri, Tilman Sauerbeck, * Vincent Torri, Cedric Bail, Jorge Luis Zapata Muga, * Corey Donohoe, Arnaud de Turckheim, Alexandre Becoulet * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . * * This file incorporates work covered by the following copyright and * permission notice: * * Copyright (C) 2004 ncn * Copyright (C) 2006 Sebastian Dransfeld * Copyright (C) 2007 Christopher Michael * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * The above copyright notice and this permission notice shall be included in * all copies of the Software and its Copyright notices. In addition publicly * documented acknowledgment must be given that this software has been used if no * source code of this software is made available publicly. This includes * acknowledgments in either Copyright notices, Manuals, Publicity and Marketing * documents or any documentation provided with any product containing this * software. This License does not apply to any software that links to the * libraries provided by this software (statically or dynamically), but only to * the software provided. * Please see the OLD-COPYING.PLAIN for a plain-english explanation of this notice * and it's intent. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #ifdef HAVE_EVIL # include #endif #include "eina_config.h" #include "eina_private.h" #include "eina_error.h" #include "eina_log.h" #include "eina_mempool.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_list.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ static const char EINA_MAGIC_LIST_STR[] = "Eina List"; static const char EINA_MAGIC_LIST_ITERATOR_STR[] = "Eina List Iterator"; static const char EINA_MAGIC_LIST_ACCESSOR_STR[] = "Eina List Accessor"; static const char EINA_MAGIC_LIST_ACCOUNTING_STR[] = "Eina List Accounting"; #define EINA_MAGIC_CHECK_LIST(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_LIST)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST); \ return __VA_ARGS__; \ } \ } while(0) #define EINA_MAGIC_CHECK_LIST_ITERATOR(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_LIST_ITERATOR)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST_ITERATOR); \ return __VA_ARGS__; \ } \ } while(0) #define EINA_MAGIC_CHECK_LIST_ACCESSOR(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_LIST_ACCESSOR)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST_ACCESSOR); \ return __VA_ARGS__; \ } \ } while(0) #define EINA_MAGIC_CHECK_LIST_ACCOUNTING(d) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_LIST_ACCOUNTING)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST_ACCOUNTING); \ return; \ } \ } while(0) #define EINA_LIST_SORT_STACK_SIZE 32 typedef struct _Eina_Iterator_List Eina_Iterator_List; typedef struct _Eina_Accessor_List Eina_Accessor_List; struct _Eina_Iterator_List { Eina_Iterator iterator; const Eina_List *head; const Eina_List *current; EINA_MAGIC }; struct _Eina_Accessor_List { Eina_Accessor accessor; const Eina_List *head; const Eina_List *current; unsigned int index; EINA_MAGIC }; static Eina_Mempool *_eina_list_mp = NULL; static Eina_Mempool *_eina_list_accounting_mp = NULL; static int _eina_list_log_dom = -1; #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_list_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_list_log_dom, __VA_ARGS__) static inline Eina_List_Accounting * _eina_list_mempool_accounting_new(__UNUSED__ Eina_List *list) { Eina_List_Accounting *tmp; tmp = eina_mempool_malloc(_eina_list_accounting_mp, sizeof (Eina_List_Accounting)); if (!tmp) return NULL; EINA_MAGIC_SET(tmp, EINA_MAGIC_LIST_ACCOUNTING); return tmp; } static inline void _eina_list_mempool_accounting_free(Eina_List_Accounting *accounting) { EINA_MAGIC_CHECK_LIST_ACCOUNTING(accounting); EINA_MAGIC_SET(accounting, EINA_MAGIC_NONE); eina_mempool_free(_eina_list_accounting_mp, accounting); } static inline Eina_List * _eina_list_mempool_list_new(__UNUSED__ Eina_List *list) { Eina_List *tmp; tmp = eina_mempool_malloc(_eina_list_mp, sizeof (Eina_List)); if (!tmp) return NULL; EINA_MAGIC_SET(tmp, EINA_MAGIC_LIST); return tmp; } static inline void _eina_list_mempool_list_free(Eina_List *list) { EINA_MAGIC_CHECK_LIST(list); list->accounting->count--; if (list->accounting->count == 0) _eina_list_mempool_accounting_free(list->accounting); EINA_MAGIC_SET(list, EINA_MAGIC_NONE); eina_mempool_free(_eina_list_mp, list); } static Eina_List * _eina_list_setup_accounting(Eina_List *list) { EINA_MAGIC_CHECK_LIST(list, NULL); list->accounting = _eina_list_mempool_accounting_new(list); if (!list->accounting) goto on_error; list->accounting->last = list; list->accounting->count = 1; return list; on_error: _eina_list_mempool_list_free(list); return NULL; } static inline void _eina_list_update_accounting(Eina_List *list, Eina_List *new_list) { EINA_MAGIC_CHECK_LIST(list); EINA_MAGIC_CHECK_LIST(new_list); list->accounting->count++; new_list->accounting = list->accounting; } #if 0 static Eina_Mempool2 _eina_list_mempool = { sizeof(Eina_List), 320, 0, NULL, NULL }; static Eina_Mempool2 _eina_list_accounting_mempool = { sizeof(Eina_List_Accounting), 80, 0, NULL, NULL }; #endif static Eina_Bool eina_list_iterator_next(Eina_Iterator_List *it, void **data) { EINA_MAGIC_CHECK_LIST_ITERATOR(it, EINA_FALSE); if (!it->current) return EINA_FALSE; *data = eina_list_data_get(it->current); it->current = eina_list_next(it->current); return EINA_TRUE; } static Eina_Bool eina_list_iterator_prev(Eina_Iterator_List *it, void **data) { EINA_MAGIC_CHECK_LIST_ITERATOR(it, EINA_FALSE); if (!it->current) return EINA_FALSE; *data = eina_list_data_get(it->current); it->current = eina_list_prev(it->current); return EINA_TRUE; } static Eina_List * eina_list_iterator_get_container(Eina_Iterator_List *it) { EINA_MAGIC_CHECK_LIST_ITERATOR(it, NULL); return (Eina_List *)it->head; } static void eina_list_iterator_free(Eina_Iterator_List *it) { EINA_MAGIC_CHECK_LIST_ITERATOR(it); MAGIC_FREE(it); } static Eina_Bool eina_list_accessor_get_at(Eina_Accessor_List *it, unsigned int idx, void **data) { const Eina_List *over; unsigned int middle; unsigned int i; EINA_MAGIC_CHECK_LIST_ACCESSOR(it, EINA_FALSE); if (idx >= eina_list_count(it->head)) return EINA_FALSE; if (it->index == idx) over = it->current; else if (idx > it->index) { /* After current position. */ middle = ((eina_list_count(it->head) - it->index) >> 1) + it->index; if (idx > middle) /* Go backward from the end. */ for (i = eina_list_count(it->head) - 1, over = eina_list_last(it->head); i > idx && over; --i, over = eina_list_prev(over)) ; else /* Go forward from current. */ for (i = it->index, over = it->current; i < idx && over; ++i, over = eina_list_next(over)) ; } else { /* Before current position. */ middle = it->index >> 1; if (idx > middle) /* Go backward from current. */ for (i = it->index, over = it->current; i > idx && over; --i, over = eina_list_prev(over)) ; else /* Go forward from start. */ for (i = 0, over = it->head; i < idx && over; ++i, over = eina_list_next(over)) ; } if (!over) return EINA_FALSE; it->current = over; it->index = idx; *data = eina_list_data_get(it->current); return EINA_TRUE; } static Eina_List * eina_list_accessor_get_container(Eina_Accessor_List *it) { EINA_MAGIC_CHECK_LIST_ACCESSOR(it, NULL); return (Eina_List *)it->head; } static void eina_list_accessor_free(Eina_Accessor_List *it) { EINA_MAGIC_CHECK_LIST_ACCESSOR(it); MAGIC_FREE(it); } static Eina_List * eina_list_sort_rebuild_prev(Eina_List *list) { Eina_List *prev = NULL; EINA_MAGIC_CHECK_LIST(list, NULL); for (; list; list = list->next) { list->prev = prev; prev = list; } return prev; } static Eina_List * eina_list_sort_merge(Eina_List *a, Eina_List *b, Eina_Compare_Cb func) { Eina_List *first, *last; if (func(a->data, b->data) < 0) a = (last = first = a)->next; else b = (last = first = b)->next; while (a && b) if (func(a->data, b->data) < 0) a = (last = last->next = a)->next; else b = (last = last->next = b)->next; last->next = a ? a : b; return first; } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the list module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the list module of Eina. It is called by * eina_init(). * * This function creates mempool to speed up list node and accounting * management, using EINA_MEMPOOL environment variable if it is set to * choose the memory pool type to use. * * @see eina_init() */ Eina_Bool eina_list_init(void) { const char *choice, *tmp; _eina_list_log_dom = eina_log_domain_register("eina_list", EINA_LOG_COLOR_DEFAULT); if (_eina_list_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_list"); return EINA_FALSE; } #ifdef EINA_DEFAULT_MEMPOOL choice = "pass_through"; #else choice = "chained_mempool"; #endif tmp = getenv("EINA_MEMPOOL"); if (tmp && tmp[0]) choice = tmp; _eina_list_mp = eina_mempool_add (choice, "list", NULL, sizeof(Eina_List), 128); if (!_eina_list_mp) { ERR("ERROR: Mempool for list cannot be allocated in list init."); goto on_init_fail; } _eina_list_accounting_mp = eina_mempool_add (choice, "list_accounting", NULL, sizeof(Eina_List_Accounting), 16); if (!_eina_list_accounting_mp) { ERR( "ERROR: Mempool for list accounting cannot be allocated in list init."); eina_mempool_del(_eina_list_mp); goto on_init_fail; } #define EMS(n) eina_magic_string_static_set(n, n ## _STR) EMS(EINA_MAGIC_LIST); EMS(EINA_MAGIC_LIST_ITERATOR); EMS(EINA_MAGIC_LIST_ACCESSOR); EMS(EINA_MAGIC_LIST_ACCOUNTING); #undef EMS return EINA_TRUE; on_init_fail: eina_log_domain_unregister(_eina_list_log_dom); _eina_list_log_dom = -1; return EINA_FALSE; } /** * @internal * @brief Shut down the list module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the list module set up by * eina_list_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_list_shutdown(void) { eina_mempool_del(_eina_list_accounting_mp); eina_mempool_del(_eina_list_mp); eina_log_domain_unregister(_eina_list_log_dom); _eina_list_log_dom = -1; return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI Eina_List * eina_list_append(Eina_List *list, const void *data) { Eina_List *l, *new_l; eina_error_set(0); new_l = _eina_list_mempool_list_new(list); if (!new_l) return list; new_l->next = NULL; new_l->data = (void *)data; if (!list) { new_l->prev = NULL; return _eina_list_setup_accounting(new_l); } EINA_MAGIC_CHECK_LIST(list, NULL); l = list->accounting->last; list->accounting->last = new_l; l->next = new_l; new_l->prev = l; _eina_list_update_accounting(list, new_l); return list; } EAPI Eina_List * eina_list_prepend(Eina_List *list, const void *data) { Eina_List *new_l; eina_error_set(0); new_l = _eina_list_mempool_list_new(list); if (!new_l) return list; new_l->prev = NULL; new_l->next = list; new_l->data = (void *)data; if (!list) return _eina_list_setup_accounting(new_l); EINA_MAGIC_CHECK_LIST(list, NULL); list->prev = new_l; _eina_list_update_accounting(list, new_l); return new_l; } EAPI Eina_List * eina_list_append_relative(Eina_List *list, const void *data, const void *relative) { Eina_List *l; void *list_data; if (list) EINA_MAGIC_CHECK_LIST(list, NULL); EINA_LIST_FOREACH(list, l, list_data) { if (list_data == relative) return eina_list_append_relative_list(list, data, l); } return eina_list_append(list, data); } EAPI Eina_List * eina_list_append_relative_list(Eina_List *list, const void *data, Eina_List *relative) { Eina_List *new_l; if ((!list) || (!relative)) return eina_list_append(list, data); eina_error_set(0); new_l = _eina_list_mempool_list_new(list); if (!new_l) return list; EINA_MAGIC_CHECK_LIST(relative, NULL); new_l->next = relative->next; new_l->data = (void *)data; if (relative->next) relative->next->prev = new_l; relative->next = new_l; new_l->prev = relative; _eina_list_update_accounting(list, new_l); if (!new_l->next) new_l->accounting->last = new_l; return list; } EAPI Eina_List * eina_list_prepend_relative(Eina_List *list, const void *data, const void *relative) { Eina_List *l; void *list_data; if (list) EINA_MAGIC_CHECK_LIST(list, NULL); EINA_LIST_FOREACH(list, l, list_data) { if (list_data == relative) return eina_list_prepend_relative_list(list, data, l); } return eina_list_prepend(list, data); } EAPI Eina_List * eina_list_prepend_relative_list(Eina_List *list, const void *data, Eina_List *relative) { Eina_List *new_l; if ((!list) || (!relative)) return eina_list_prepend(list, data); eina_error_set(0); new_l = _eina_list_mempool_list_new(list); if (!new_l) return list; EINA_MAGIC_CHECK_LIST(relative, NULL); new_l->prev = relative->prev; new_l->next = relative; new_l->data = (void *)data; if (relative->prev) relative->prev->next = new_l; relative->prev = new_l; _eina_list_update_accounting(list, new_l); if (new_l->prev) return list; return new_l; } EAPI Eina_List * eina_list_sorted_insert(Eina_List *list, Eina_Compare_Cb func, const void *data) { Eina_List *lnear; int cmp; if (!list) return eina_list_append(NULL, data); lnear = eina_list_search_sorted_near_list(list, func, data, &cmp); if (cmp < 0) return eina_list_append_relative_list(list, data, lnear); else return eina_list_prepend_relative_list(list, data, lnear); } EAPI Eina_List * eina_list_remove(Eina_List *list, const void *data) { Eina_List *l; if (list) EINA_MAGIC_CHECK_LIST(list, NULL); l = eina_list_data_find_list(list, data); return eina_list_remove_list(list, l); } EAPI Eina_List * eina_list_remove_list(Eina_List *list, Eina_List *remove_list) { Eina_List *return_l; if (!list) return NULL; if (!remove_list) return list; EINA_MAGIC_CHECK_LIST(remove_list, NULL); if (remove_list->next) remove_list->next->prev = remove_list->prev; if (remove_list->prev) { remove_list->prev->next = remove_list->next; return_l = list; } else return_l = remove_list->next; if (remove_list == remove_list->accounting->last) { EINA_MAGIC_CHECK_LIST(list, NULL); list->accounting->last = remove_list->prev; } _eina_list_mempool_list_free(remove_list); return return_l; } EAPI Eina_List * eina_list_free(Eina_List *list) { Eina_List *l, *free_l; if (!list) return NULL; EINA_MAGIC_CHECK_LIST(list, NULL); for (l = list; l; ) { free_l = l; l = l->next; _eina_list_mempool_list_free(free_l); } return NULL; } EAPI Eina_List * eina_list_promote_list(Eina_List *list, Eina_List *move_list) { if (!list) return NULL; if (!move_list) { return list; /* Promoting head to be head. */ } if (move_list == list) return list; if (move_list->next == list) return move_list; EINA_MAGIC_CHECK_LIST(list, NULL); EINA_MAGIC_CHECK_LIST(move_list, NULL); /* Remove the promoted item from the list. */ if (!move_list->prev) move_list->next->prev = NULL; else { move_list->prev->next = move_list->next; if (move_list == list->accounting->last) list->accounting->last = move_list->prev; else move_list->next->prev = move_list->prev; } /* Add the promoted item in the list. */ move_list->next = list; move_list->prev = list->prev; list->prev = move_list; if (move_list->prev) move_list->prev->next = move_list; return move_list; } EAPI Eina_List * eina_list_demote_list(Eina_List *list, Eina_List *move_list) { if (!list) return NULL; if (!move_list) { return list; /* Demoting tail to be tail. */ } if (move_list == list->accounting->last) return list; EINA_MAGIC_CHECK_LIST(list, NULL); EINA_MAGIC_CHECK_LIST(move_list, NULL); /* Update pointer list if necessary. */ if (list == move_list) { list = move_list->next; /* Remove the demoted item from the list. */ } if (move_list->prev) move_list->prev->next = move_list->next; move_list->next->prev = move_list->prev; /* Add the demoted item in the list. */ move_list->prev = list->accounting->last; move_list->prev->next = move_list; move_list->next = NULL; list->accounting->last = move_list; return list; } EAPI void * eina_list_data_find(const Eina_List *list, const void *data) { if (eina_list_data_find_list(list, data)) return (void *)data; return NULL; } EAPI Eina_Bool eina_list_move(Eina_List **to, Eina_List **from, void *data) { Eina_List *l; EINA_SAFETY_ON_NULL_RETURN_VAL(to, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(from, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE); if (*to) EINA_MAGIC_CHECK_LIST(*to, EINA_FALSE); EINA_MAGIC_CHECK_LIST(*from, EINA_FALSE); l = eina_list_data_find_list(*from, data); EINA_SAFETY_ON_NULL_RETURN_VAL(l, EINA_FALSE); *to = eina_list_append(*to, data); *from = eina_list_remove_list(*from, l); return EINA_TRUE; } EAPI Eina_Bool eina_list_move_list(Eina_List **to, Eina_List **from, Eina_List *data) { EINA_SAFETY_ON_NULL_RETURN_VAL(to, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(from, EINA_FALSE); if (*to) EINA_MAGIC_CHECK_LIST(*to, EINA_FALSE); EINA_MAGIC_CHECK_LIST(*from, EINA_FALSE); EINA_MAGIC_CHECK_LIST(data, EINA_FALSE); *to = eina_list_append(*to, data->data); *from = eina_list_remove_list(*from, data); return EINA_TRUE; } EAPI Eina_List * eina_list_data_find_list(const Eina_List *list, const void *data) { const Eina_List *l; void *list_data; if (list) EINA_MAGIC_CHECK_LIST(list, NULL); EINA_LIST_FOREACH(list, l, list_data) { if (list_data == data) return (Eina_List *)l; } return NULL; } EAPI void * eina_list_nth(const Eina_List *list, unsigned int n) { Eina_List *l; l = eina_list_nth_list(list, n); return l ? l->data : NULL; } EAPI Eina_List * eina_list_nth_list(const Eina_List *list, unsigned int n) { const Eina_List *l; unsigned int i; if (list) EINA_MAGIC_CHECK_LIST(list, NULL); /* check for non-existing nodes */ if ((!list) || (n > (list->accounting->count - 1))) return NULL; /* if the node is in the 2nd half of the list, search from the end * else, search from the beginning. */ if (n > (list->accounting->count / 2)) for (i = list->accounting->count - 1, l = list->accounting->last; l; l = l->prev, i--) { if (i == n) return (Eina_List *)l; } else for (i = 0, l = list; l; l = l->next, i++) { if (i == n) return (Eina_List *)l; } abort(); } EAPI Eina_List * eina_list_reverse(Eina_List *list) { Eina_List *l1, *l2; if (!list) return NULL; EINA_MAGIC_CHECK_LIST(list, NULL); l1 = list; l2 = list->accounting->last; while (l1 != l2) { void *data; data = l1->data; l1->data = l2->data; l2->data = data; l1 = l1->next; if (l1 == l2) break; l2 = l2->prev; } return list; } EAPI Eina_List * eina_list_reverse_clone(const Eina_List *list) { const Eina_List *l; Eina_List *lclone; void *data; if (!list) return NULL; EINA_MAGIC_CHECK_LIST(list, NULL); lclone = NULL; EINA_LIST_FOREACH(list, l, data) lclone = eina_list_prepend(lclone, data); return lclone; } EAPI Eina_List * eina_list_clone(const Eina_List *list) { const Eina_List *l; Eina_List *lclone; void *data; if (!list) return NULL; EINA_MAGIC_CHECK_LIST(list, NULL); lclone = NULL; EINA_LIST_FOREACH(list, l, data) lclone = eina_list_append(lclone, data); return lclone; } EAPI Eina_List * eina_list_sort(Eina_List *list, unsigned int limit, Eina_Compare_Cb func) { unsigned int i = 0; unsigned int n = 0; Eina_List *tail = list; Eina_List *unsort = NULL; Eina_List *stack[EINA_LIST_SORT_STACK_SIZE]; EINA_SAFETY_ON_NULL_RETURN_VAL(func, list); if (!list) return NULL; EINA_MAGIC_CHECK_LIST(list, NULL); /* if the caller specified an invalid limit, sort the whole list */ if ((limit == 0) || (limit > list->accounting->count)) limit = list->accounting->count; if (limit != list->accounting->count) { unsort = eina_list_nth_list(list, limit); if (unsort) unsort->prev->next = NULL; } while (tail) { unsigned int idx, tmp; Eina_List *a = tail; Eina_List *b = tail->next; if (!b) { stack[i++] = a; break; } tail = b->next; if (func(a->data, b->data) < 0) ((stack[i++] = a)->next = b)->next = 0; else ((stack[i++] = b)->next = a)->next = 0; tmp = n++; for (idx = n ^ tmp; idx &= idx - 1; i--) stack[i - 2] = eina_list_sort_merge(stack[i - 2], stack[i - 1], func); } while (i-- > 1) stack[i - 1] = eina_list_sort_merge(stack[i - 1], stack[i], func); list = stack[0]; tail = eina_list_sort_rebuild_prev(list); if (unsort) { tail->next = unsort; unsort->prev = tail; } else list->accounting->last = tail; return list; } EAPI Eina_List * eina_list_merge(Eina_List *left, Eina_List *right) { unsigned int n_left, n_right; if (!left) return right; if (!right) return left; left->accounting->last->next = right; right->prev = left->accounting->last; n_left = left->accounting->count; n_right = right->accounting->count; if (n_left >= n_right) { Eina_List *itr = right; left->accounting->last = right->accounting->last; left->accounting->count += n_right; _eina_list_mempool_accounting_free(right->accounting); do { itr->accounting = left->accounting; itr = itr->next; } while (itr); } else { Eina_List *itr = left->accounting->last; right->accounting->count += n_left; _eina_list_mempool_accounting_free(left->accounting); do { itr->accounting = right->accounting; itr = itr->prev; } while (itr); } return left; } EAPI Eina_List * eina_list_split_list(Eina_List *list, Eina_List *relative, Eina_List **right) { Eina_List *next; Eina_List *itr; if(!right) return list; *right = NULL; if (!list) return NULL; if (!relative) { *right = list; return NULL; } if (relative == eina_list_last(list)) return list; next = eina_list_next(relative); next->prev = NULL; next->accounting = _eina_list_mempool_accounting_new(next); next->accounting->last = list->accounting->last; next->accounting->count = 0; *right = next; itr = next; do { itr->accounting = next->accounting; next->accounting->count++; itr = itr->next; } while (itr); relative->next = NULL; list->accounting->last = relative; list->accounting->count = list->accounting->count - next->accounting->count; return list; } EAPI Eina_List * eina_list_sorted_merge(Eina_List *left, Eina_List *right, Eina_Compare_Cb func) { Eina_List *ret; Eina_List *current; EINA_SAFETY_ON_NULL_RETURN_VAL(func, NULL); if (!left) return right; if (!right) return left; if (func(left->data, right->data) < 0) { ret = left; current = left; left = left->next; ret->accounting->count += right->accounting->count; _eina_list_mempool_accounting_free(right->accounting); } else { ret = right; current = right; right = right->next; ret->accounting->count += left->accounting->count; _eina_list_mempool_accounting_free(left->accounting); } while (left && right) { if (func(left->data, right->data) < 0) { current->next = left; left->prev = current; left = left->next; } else { current->next = right; right->prev = current; right = right->next; } current = current->next; current->accounting = ret->accounting; } if (left) { current->next = left; left->prev = current; current->accounting = ret->accounting; } if (right) { current->next = right; right->prev = current; current->accounting = ret->accounting; } while (current->next) { current = current->next; current->accounting = ret->accounting; } ret->accounting->last = current; return ret; } EAPI Eina_List * eina_list_search_sorted_near_list(const Eina_List *list, Eina_Compare_Cb func, const void *data, int *result_cmp) { const Eina_List *ct; unsigned int inf, sup, cur; int cmp; if (!list) { if (result_cmp) *result_cmp = 0; return NULL; } if (list->accounting->count == 1) { if (result_cmp) *result_cmp = func(list->data, data); return (Eina_List *)list; } /* list walk is expensive, do quick check: tail */ ct = list->accounting->last; cmp = func(ct->data, data); if (cmp <= 0) goto end; /* list walk is expensive, do quick check: head */ ct = list; cmp = func(ct->data, data); if (cmp >= 0) goto end; /* inclusive bounds */ inf = 1; sup = list->accounting->count - 2; cur = 1; ct = list->next; /* no loop, just compare if comparison value is important to caller */ if (inf > sup) { if (result_cmp) cmp = func(ct->data, data); goto end; } while (inf <= sup) { unsigned int tmp = cur; cur = inf + ((sup - inf) >> 1); if (tmp < cur) for (; tmp != cur; tmp++, ct = ct->next) ; else if (tmp > cur) for (; tmp != cur; tmp--, ct = ct->prev) ; cmp = func(ct->data, data); if (cmp == 0) break; else if (cmp < 0) inf = cur + 1; else if (cmp > 0) { if (cur > 0) sup = cur - 1; else break; } else break; } end: if (result_cmp) *result_cmp = cmp; return (Eina_List *)ct; } EAPI Eina_List * eina_list_search_sorted_list(const Eina_List *list, Eina_Compare_Cb func, const void *data) { Eina_List *lnear; int cmp; lnear = eina_list_search_sorted_near_list(list, func, data, &cmp); if (!lnear) return NULL; if (cmp == 0) return lnear; return NULL; } EAPI void * eina_list_search_sorted(const Eina_List *list, Eina_Compare_Cb func, const void *data) { return eina_list_data_get(eina_list_search_sorted_list(list, func, data)); } EAPI Eina_List * eina_list_search_unsorted_list(const Eina_List *list, Eina_Compare_Cb func, const void *data) { const Eina_List *l; void *d; EINA_LIST_FOREACH(list, l, d) { if (!func(d, data)) return (Eina_List *)l; } return NULL; } EAPI void * eina_list_search_unsorted(const Eina_List *list, Eina_Compare_Cb func, const void *data) { return eina_list_data_get(eina_list_search_unsorted_list(list, func, data)); } EAPI Eina_Iterator * eina_list_iterator_new(const Eina_List *list) { Eina_Iterator_List *it; eina_error_set(0); it = calloc(1, sizeof (Eina_Iterator_List)); if (!it) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } EINA_MAGIC_SET(it, EINA_MAGIC_LIST_ITERATOR); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->head = list; it->current = list; it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(eina_list_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER( eina_list_iterator_get_container); it->iterator.free = FUNC_ITERATOR_FREE(eina_list_iterator_free); return &it->iterator; } EAPI Eina_Iterator * eina_list_iterator_reversed_new(const Eina_List *list) { Eina_Iterator_List *it; eina_error_set(0); it = calloc(1, sizeof (Eina_Iterator_List)); if (!it) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } EINA_MAGIC_SET(it, EINA_MAGIC_LIST_ITERATOR); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->head = eina_list_last(list); it->current = it->head; it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(eina_list_iterator_prev); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER( eina_list_iterator_get_container); it->iterator.free = FUNC_ITERATOR_FREE(eina_list_iterator_free); return &it->iterator; } EAPI Eina_Accessor * eina_list_accessor_new(const Eina_List *list) { Eina_Accessor_List *ac; EINA_SAFETY_ON_NULL_RETURN_VAL(list, NULL); eina_error_set(0); ac = calloc(1, sizeof (Eina_Accessor_List)); if (!ac) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } EINA_MAGIC_SET(ac, EINA_MAGIC_LIST_ACCESSOR); EINA_MAGIC_SET(&ac->accessor, EINA_MAGIC_ACCESSOR); ac->head = list; ac->current = list; ac->index = 0; ac->accessor.version = EINA_ACCESSOR_VERSION; ac->accessor.get_at = FUNC_ACCESSOR_GET_AT(eina_list_accessor_get_at); ac->accessor.get_container = FUNC_ACCESSOR_GET_CONTAINER( eina_list_accessor_get_container); ac->accessor.free = FUNC_ACCESSOR_FREE(eina_list_accessor_free); return &ac->accessor; } eina-1.7.10/src/lib/eina_hash.c0000664000175000017500000011125512175475327013101 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Carsten Haitzler, Gustavo Sverzut Barbieri, * Vincent Torri, Jorge Luis Zapata Muga, Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #ifdef HAVE_STDINT_H # include #endif #ifdef _MSC_VER # include #endif #include "eina_config.h" #include "eina_private.h" #include "eina_rbtree.h" #include "eina_error.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_hash.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ #define EINA_MAGIC_CHECK_HASH(d) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_HASH)) { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_HASH); } \ } while (0) #define EINA_MAGIC_CHECK_HASH_ITERATOR(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_HASH_ITERATOR)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_HASH_ITERATOR); \ return __VA_ARGS__; \ } \ } while (0) #define EINA_HASH_BUCKET_SIZE 8 #define EINA_HASH_SMALL_BUCKET_SIZE 5 #define EINA_HASH_RBTREE_MASK 0xFFF typedef struct _Eina_Hash_Head Eina_Hash_Head; typedef struct _Eina_Hash_Element Eina_Hash_Element; typedef struct _Eina_Hash_Foreach_Data Eina_Hash_Foreach_Data; typedef struct _Eina_Iterator_Hash Eina_Iterator_Hash; typedef struct _Eina_Hash_Each Eina_Hash_Each; struct _Eina_Hash { Eina_Key_Length key_length_cb; Eina_Key_Cmp key_cmp_cb; Eina_Key_Hash key_hash_cb; Eina_Free_Cb data_free_cb; Eina_Rbtree **buckets; int size; int mask; int population; EINA_MAGIC }; struct _Eina_Hash_Head { EINA_RBTREE; int hash; Eina_Rbtree *head; }; struct _Eina_Hash_Element { EINA_RBTREE; Eina_Hash_Tuple tuple; Eina_Bool begin : 1; }; struct _Eina_Hash_Foreach_Data { Eina_Hash_Foreach cb; const void *fdata; }; typedef void *(*Eina_Iterator_Get_Content_Callback)(Eina_Iterator_Hash *it); #define FUNC_ITERATOR_GET_CONTENT(Function) \ ((Eina_Iterator_Get_Content_Callback)Function) struct _Eina_Iterator_Hash { Eina_Iterator iterator; Eina_Iterator_Get_Content_Callback get_content; const Eina_Hash *hash; Eina_Iterator *current; Eina_Iterator *list; Eina_Hash_Head *hash_head; Eina_Hash_Element *hash_element; int bucket; int index; EINA_MAGIC }; struct _Eina_Hash_Each { Eina_Hash_Head *hash_head; const Eina_Hash_Element *hash_element; const void *data; }; #undef get16bits #if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \ || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__) # define get16bits(d) (*((const uint16_t *)(d))) #endif #if !defined (get16bits) # define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8) \ + (uint32_t)(((const uint8_t *)(d))[0])) #endif static inline int _eina_hash_hash_rbtree_cmp_hash(const Eina_Hash_Head *hash_head, const int *hash, __UNUSED__ int key_length, __UNUSED__ void *data) { return hash_head->hash - *hash; } static Eina_Rbtree_Direction _eina_hash_hash_rbtree_cmp_node(const Eina_Hash_Head *left, const Eina_Hash_Head *right, __UNUSED__ void *data) { if (left->hash - right->hash < 0) return EINA_RBTREE_LEFT; return EINA_RBTREE_RIGHT; } static inline int _eina_hash_key_rbtree_cmp_key_data(const Eina_Hash_Element *hash_element, const Eina_Hash_Tuple *tuple, __UNUSED__ unsigned int key_length, Eina_Key_Cmp cmp) { int result; result = cmp(hash_element->tuple.key, hash_element->tuple.key_length, tuple->key, tuple->key_length); if (result == 0 && tuple->data && tuple->data != hash_element->tuple.data) return 1; return result; } static Eina_Rbtree_Direction _eina_hash_key_rbtree_cmp_node(const Eina_Hash_Element *left, const Eina_Hash_Element *right, Eina_Key_Cmp cmp) { int result; result = cmp(left->tuple.key, left->tuple.key_length, right->tuple.key, right->tuple.key_length); if (result < 0) return EINA_RBTREE_LEFT; return EINA_RBTREE_RIGHT; } static inline Eina_Bool eina_hash_add_alloc_by_hash(Eina_Hash *hash, const void *key, int key_length, int alloc_length, int key_hash, const void *data) { Eina_Hash_Element *new_hash_element = NULL; Eina_Hash_Head *hash_head; Eina_Error error = 0; int hash_num; EINA_SAFETY_ON_NULL_RETURN_VAL(hash, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE); EINA_MAGIC_CHECK_HASH(hash); error = EINA_ERROR_OUT_OF_MEMORY; /* Apply eina mask to hash. */ hash_num = key_hash & hash->mask; key_hash &= EINA_HASH_RBTREE_MASK; if (!hash->buckets) { hash->buckets = calloc(sizeof (Eina_Rbtree *), hash->size); if (!hash->buckets) goto on_error; hash_head = NULL; } else /* Look up for head node. */ hash_head = (Eina_Hash_Head *) eina_rbtree_inline_lookup(hash->buckets[hash_num], &key_hash, 0, EINA_RBTREE_CMP_KEY_CB( _eina_hash_hash_rbtree_cmp_hash), NULL); if (!hash_head) { /* If not found allocate it and an element. */ hash_head = malloc(sizeof(Eina_Hash_Head) + sizeof(Eina_Hash_Element) + alloc_length); if (!hash_head) goto on_error; hash_head->hash = key_hash; hash_head->head = NULL; hash->buckets[hash_num] = eina_rbtree_inline_insert(hash->buckets[hash_num], EINA_RBTREE_GET(hash_head), EINA_RBTREE_CMP_NODE_CB( _eina_hash_hash_rbtree_cmp_node), NULL); new_hash_element = (Eina_Hash_Element *)(hash_head + 1); new_hash_element->begin = EINA_TRUE; } if (!new_hash_element) { /* Alloc a new element (No more lookup as we expect to support more than one item for one key). */ new_hash_element = malloc(sizeof (Eina_Hash_Element) + alloc_length); if (!new_hash_element) goto on_error; new_hash_element->begin = EINA_FALSE; } /* Setup the element */ new_hash_element->tuple.key_length = key_length; new_hash_element->tuple.data = (void *)data; if (alloc_length > 0) { new_hash_element->tuple.key = (char *)(new_hash_element + 1); memcpy((char *)new_hash_element->tuple.key, key, alloc_length); } else new_hash_element->tuple.key = key; /* add the new element to the hash. */ hash_head->head = eina_rbtree_inline_insert(hash_head->head, EINA_RBTREE_GET(new_hash_element), EINA_RBTREE_CMP_NODE_CB( _eina_hash_key_rbtree_cmp_node), (const void *)hash->key_cmp_cb); hash->population++; return EINA_TRUE; on_error: eina_error_set(error); return EINA_FALSE; } static Eina_Bool _eina_hash_rbtree_each(__UNUSED__ const Eina_Rbtree *container, const Eina_Hash_Head *hash_head, Eina_Hash_Each *data) { Eina_Iterator *it; Eina_Hash_Element *hash_element; Eina_Bool found = EINA_TRUE; it = eina_rbtree_iterator_prefix(hash_head->head); EINA_ITERATOR_FOREACH(it, hash_element) { if (hash_element->tuple.data == data->data) { data->hash_element = hash_element; data->hash_head = (Eina_Hash_Head *)hash_head; found = EINA_FALSE; break; } } eina_iterator_free(it); return found; } static inline Eina_Hash_Element * _eina_hash_find_by_hash(const Eina_Hash *hash, Eina_Hash_Tuple *tuple, int key_hash, Eina_Hash_Head **hash_head) { Eina_Hash_Element *hash_element; int rb_hash = key_hash & EINA_HASH_RBTREE_MASK; key_hash &= hash->mask; if (!hash->buckets) return NULL; *hash_head = (Eina_Hash_Head *) eina_rbtree_inline_lookup(hash->buckets[key_hash], &rb_hash, 0, EINA_RBTREE_CMP_KEY_CB( _eina_hash_hash_rbtree_cmp_hash), NULL); if (!*hash_head) return NULL; hash_element = (Eina_Hash_Element *) eina_rbtree_inline_lookup((*hash_head)->head, tuple, 0, EINA_RBTREE_CMP_KEY_CB( _eina_hash_key_rbtree_cmp_key_data), (const void *)hash->key_cmp_cb); return hash_element; } static inline Eina_Hash_Element * _eina_hash_find_by_data(const Eina_Hash *hash, const void *data, int *key_hash, Eina_Hash_Head **hash_head) { Eina_Hash_Each each; Eina_Iterator *it; int hash_num; if (!hash->buckets) return NULL; each.hash_element = NULL; each.data = data; for (hash_num = 0; hash_num < hash->size; hash_num++) { if (!hash->buckets[hash_num]) continue; it = eina_rbtree_iterator_prefix(hash->buckets[hash_num]); eina_iterator_foreach(it, EINA_EACH_CB(_eina_hash_rbtree_each), &each); eina_iterator_free(it); if (each.hash_element) { *key_hash = hash_num; *hash_head = each.hash_head; return (Eina_Hash_Element *)each.hash_element; } } return NULL; } static void _eina_hash_el_free(Eina_Hash_Element *hash_element, Eina_Hash *hash) { if (hash->data_free_cb) hash->data_free_cb(hash_element->tuple.data); if (hash_element->begin == EINA_FALSE) free(hash_element); } static void _eina_hash_head_free(Eina_Hash_Head *hash_head, Eina_Hash *hash) { eina_rbtree_delete(hash_head->head, EINA_RBTREE_FREE_CB(_eina_hash_el_free), hash); free(hash_head); } static Eina_Bool _eina_hash_del_by_hash_el(Eina_Hash *hash, Eina_Hash_Element *hash_element, Eina_Hash_Head *hash_head, int key_hash) { hash_head->head = eina_rbtree_inline_remove(hash_head->head, EINA_RBTREE_GET( hash_element), EINA_RBTREE_CMP_NODE_CB( _eina_hash_key_rbtree_cmp_node), (const void *)hash->key_cmp_cb); _eina_hash_el_free(hash_element, hash); if (!hash_head->head) { key_hash &= hash->mask; hash->buckets[key_hash] = eina_rbtree_inline_remove(hash->buckets[key_hash], EINA_RBTREE_GET( hash_head), EINA_RBTREE_CMP_NODE_CB( _eina_hash_hash_rbtree_cmp_node), NULL); free(hash_head); } hash->population--; if (hash->population == 0) { free(hash->buckets); hash->buckets = NULL; } return EINA_TRUE; } static Eina_Bool _eina_hash_del_by_key_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash, const void *data) { Eina_Hash_Element *hash_element; Eina_Hash_Head *hash_head; Eina_Hash_Tuple tuple; EINA_SAFETY_ON_NULL_RETURN_VAL(hash, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE); EINA_MAGIC_CHECK_HASH(hash); if (!hash->buckets) return EINA_FALSE; tuple.key = (void *)key; tuple.key_length = key_length; tuple.data = (void *)data; hash_element = _eina_hash_find_by_hash(hash, &tuple, key_hash, &hash_head); if (!hash_element) return EINA_FALSE; return _eina_hash_del_by_hash_el(hash, hash_element, hash_head, key_hash); } static Eina_Bool _eina_hash_del_by_key(Eina_Hash *hash, const void *key, const void *data) { int key_length, key_hash; EINA_SAFETY_ON_NULL_RETURN_VAL(hash, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE); EINA_MAGIC_CHECK_HASH(hash); if (!hash->buckets) return EINA_FALSE; key_length = hash->key_length_cb ? hash->key_length_cb(key) : 0; key_hash = hash->key_hash_cb(key, key_length); return _eina_hash_del_by_key_hash(hash, key, key_length, key_hash, data); } static unsigned int _eina_string_key_length(const char *key) { if (!key) return 0; return (int)strlen(key) + 1; } static int _eina_string_key_cmp(const char *key1, __UNUSED__ int key1_length, const char *key2, __UNUSED__ int key2_length) { return strcmp(key1, key2); } static int _eina_stringshared_key_cmp(const char *key1, __UNUSED__ int key1_length, const char *key2, __UNUSED__ int key2_length) { return key1 - key2; } static unsigned int _eina_int32_key_length(__UNUSED__ const uint32_t *key) { return 4; } static int _eina_int32_key_cmp(const uint32_t *key1, __UNUSED__ int key1_length, const uint32_t *key2, __UNUSED__ int key2_length) { return *key1 - *key2; } static unsigned int _eina_int64_key_length(__UNUSED__ const uint32_t *key) { return 8; } static int _eina_int64_key_cmp(const uint64_t *key1, __UNUSED__ int key1_length, const uint64_t *key2, __UNUSED__ int key2_length) { return *key1 - *key2; } static Eina_Bool _eina_foreach_cb(const Eina_Hash *hash, Eina_Hash_Tuple *data, Eina_Hash_Foreach_Data *fdata) { return fdata->cb((Eina_Hash *)hash, data->key, data->data, (void *)fdata->fdata); } static void * _eina_hash_iterator_data_get_content(Eina_Iterator_Hash *it) { Eina_Hash_Element *stuff; EINA_MAGIC_CHECK_HASH_ITERATOR(it, NULL); stuff = it->hash_element; if (!stuff) return NULL; return stuff->tuple.data; } static void * _eina_hash_iterator_key_get_content(Eina_Iterator_Hash *it) { Eina_Hash_Element *stuff; EINA_MAGIC_CHECK_HASH_ITERATOR(it, NULL); stuff = it->hash_element; if (!stuff) return NULL; return (void *)stuff->tuple.key; } static Eina_Hash_Tuple * _eina_hash_iterator_tuple_get_content(Eina_Iterator_Hash *it) { Eina_Hash_Element *stuff; EINA_MAGIC_CHECK_HASH_ITERATOR(it, NULL); stuff = it->hash_element; if (!stuff) return NULL; return &stuff->tuple; } static Eina_Bool _eina_hash_iterator_next(Eina_Iterator_Hash *it, void **data) { Eina_Bool ok; int bucket; if (!(it->index < it->hash->population)) return EINA_FALSE; if (!it->current) { ok = EINA_FALSE; bucket = 0; it->index = -1; } else { ok = eina_iterator_next(it->list, (void **)(void *)&it->hash_element); if (!ok) { eina_iterator_free(it->list); it->list = NULL; ok = eina_iterator_next(it->current, (void **)(void *)&it->hash_head); if (!ok) { eina_iterator_free(it->current); it->current = NULL; it->bucket++; } else { it->list = eina_rbtree_iterator_prefix(it->hash_head->head); ok = eina_iterator_next(it->list, (void **)(void *)&it->hash_element); } } bucket = it->bucket; } if (ok == EINA_FALSE) { while (bucket < it->hash->size) { if (it->hash->buckets[bucket]) { it->current = eina_rbtree_iterator_prefix(it->hash->buckets[bucket]); ok = eina_iterator_next(it->current, (void **)(void *)&it->hash_head); if (ok) break; eina_iterator_free(it->current); it->current = NULL; } ++bucket; } if (it->list) eina_iterator_free(it->list); it->list = eina_rbtree_iterator_prefix(it->hash_head->head); ok = eina_iterator_next(it->list, (void **)(void *)&it->hash_element); if (bucket == it->hash->size) ok = EINA_FALSE; } it->index++; it->bucket = bucket; if (ok) *data = it->get_content(it); return ok; } static void * _eina_hash_iterator_get_container(Eina_Iterator_Hash *it) { EINA_MAGIC_CHECK_HASH_ITERATOR(it, NULL); return (void *)it->hash; } static void _eina_hash_iterator_free(Eina_Iterator_Hash *it) { EINA_MAGIC_CHECK_HASH_ITERATOR(it); if (it->current) eina_iterator_free(it->current); if (it->list) eina_iterator_free(it->list); free(it); } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /*============================================================================* * API * *============================================================================*/ EAPI void eina_hash_free_cb_set(Eina_Hash *hash, Eina_Free_Cb data_free_cb) { EINA_MAGIC_CHECK_HASH(hash); EINA_SAFETY_ON_NULL_RETURN(hash); hash->data_free_cb = data_free_cb; } EAPI Eina_Hash * eina_hash_new(Eina_Key_Length key_length_cb, Eina_Key_Cmp key_cmp_cb, Eina_Key_Hash key_hash_cb, Eina_Free_Cb data_free_cb, int buckets_power_size) { /* FIXME: Use mempool. */ Eina_Hash *new; eina_error_set(0); EINA_SAFETY_ON_NULL_RETURN_VAL(key_cmp_cb, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(key_hash_cb, NULL); EINA_SAFETY_ON_TRUE_RETURN_VAL(buckets_power_size <= 2, NULL); EINA_SAFETY_ON_TRUE_RETURN_VAL(buckets_power_size >= 17, NULL); new = malloc(sizeof (Eina_Hash)); if (!new) goto on_error; EINA_MAGIC_SET(new, EINA_MAGIC_HASH); new->key_length_cb = key_length_cb; new->key_cmp_cb = key_cmp_cb; new->key_hash_cb = key_hash_cb; new->data_free_cb = data_free_cb; new->buckets = NULL; new->population = 0; new->size = 1 << buckets_power_size; new->mask = new->size - 1; return new; on_error: eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } EAPI Eina_Hash * eina_hash_string_djb2_new(Eina_Free_Cb data_free_cb) { return eina_hash_new(EINA_KEY_LENGTH(_eina_string_key_length), EINA_KEY_CMP(_eina_string_key_cmp), EINA_KEY_HASH(eina_hash_djb2), data_free_cb, EINA_HASH_BUCKET_SIZE); } EAPI Eina_Hash * eina_hash_string_superfast_new(Eina_Free_Cb data_free_cb) { return eina_hash_new(EINA_KEY_LENGTH(_eina_string_key_length), EINA_KEY_CMP(_eina_string_key_cmp), EINA_KEY_HASH(eina_hash_superfast), data_free_cb, EINA_HASH_BUCKET_SIZE); } EAPI Eina_Hash * eina_hash_string_small_new(Eina_Free_Cb data_free_cb) { return eina_hash_new(EINA_KEY_LENGTH(_eina_string_key_length), EINA_KEY_CMP(_eina_string_key_cmp), EINA_KEY_HASH(eina_hash_superfast), data_free_cb, EINA_HASH_SMALL_BUCKET_SIZE); } EAPI Eina_Hash * eina_hash_int32_new(Eina_Free_Cb data_free_cb) { return eina_hash_new(EINA_KEY_LENGTH(_eina_int32_key_length), EINA_KEY_CMP(_eina_int32_key_cmp), EINA_KEY_HASH(eina_hash_int32), data_free_cb, EINA_HASH_BUCKET_SIZE); } EAPI Eina_Hash * eina_hash_int64_new(Eina_Free_Cb data_free_cb) { return eina_hash_new(EINA_KEY_LENGTH(_eina_int64_key_length), EINA_KEY_CMP(_eina_int64_key_cmp), EINA_KEY_HASH(eina_hash_int64), data_free_cb, EINA_HASH_BUCKET_SIZE); } EAPI Eina_Hash * eina_hash_pointer_new(Eina_Free_Cb data_free_cb) { #ifdef __LP64__ return eina_hash_new(EINA_KEY_LENGTH(_eina_int64_key_length), EINA_KEY_CMP(_eina_int64_key_cmp), EINA_KEY_HASH(eina_hash_int64), data_free_cb, EINA_HASH_BUCKET_SIZE); #else return eina_hash_new(EINA_KEY_LENGTH(_eina_int32_key_length), EINA_KEY_CMP(_eina_int32_key_cmp), EINA_KEY_HASH(eina_hash_int32), data_free_cb, EINA_HASH_BUCKET_SIZE); #endif } EAPI Eina_Hash * eina_hash_stringshared_new(Eina_Free_Cb data_free_cb) { return eina_hash_new(NULL, EINA_KEY_CMP(_eina_stringshared_key_cmp), EINA_KEY_HASH(eina_hash_superfast), data_free_cb, EINA_HASH_BUCKET_SIZE); } EAPI int eina_hash_population(const Eina_Hash *hash) { if (!hash) return 0; EINA_MAGIC_CHECK_HASH(hash); return hash->population; } EAPI void eina_hash_free(Eina_Hash *hash) { int i; if (!hash) return; EINA_MAGIC_CHECK_HASH(hash); if (hash->buckets) { for (i = 0; i < hash->size; i++) eina_rbtree_delete(hash->buckets[i], EINA_RBTREE_FREE_CB(_eina_hash_head_free), hash); free(hash->buckets); } free(hash); } EAPI void eina_hash_free_buckets(Eina_Hash *hash) { int i; if (!hash) return; EINA_MAGIC_CHECK_HASH(hash); if (hash->buckets) { for (i = 0; i < hash->size; i++) eina_rbtree_delete(hash->buckets[i], EINA_RBTREE_FREE_CB(_eina_hash_head_free), hash); free(hash->buckets); hash->buckets = NULL; hash->population = 0; } } EAPI Eina_Bool eina_hash_add_by_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash, const void *data) { return eina_hash_add_alloc_by_hash(hash, key, key_length, key_length, key_hash, data); } EAPI Eina_Bool eina_hash_direct_add_by_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash, const void *data) { return eina_hash_add_alloc_by_hash(hash, key, key_length, 0, key_hash, data); } EAPI Eina_Bool eina_hash_add(Eina_Hash *hash, const void *key, const void *data) { unsigned int key_length; int key_hash; EINA_MAGIC_CHECK_HASH(hash); EINA_SAFETY_ON_NULL_RETURN_VAL(hash, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(hash->key_hash_cb, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE); key_length = hash->key_length_cb ? hash->key_length_cb(key) : 0; key_hash = hash->key_hash_cb(key, key_length); return eina_hash_add_alloc_by_hash(hash, key, key_length, key_length, key_hash, data); } EAPI Eina_Bool eina_hash_direct_add(Eina_Hash *hash, const void *key, const void *data) { int key_length; int key_hash; EINA_SAFETY_ON_NULL_RETURN_VAL(hash, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(hash->key_hash_cb, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE); EINA_MAGIC_CHECK_HASH(hash); key_length = hash->key_length_cb ? hash->key_length_cb(key) : 0; key_hash = hash->key_hash_cb(key, key_length); return eina_hash_add_alloc_by_hash(hash, key, key_length, 0, key_hash, data); } EAPI Eina_Bool eina_hash_del_by_key_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash) { EINA_SAFETY_ON_NULL_RETURN_VAL(hash, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE); return _eina_hash_del_by_key_hash(hash, key, key_length, key_hash, NULL); } EAPI Eina_Bool eina_hash_del_by_key(Eina_Hash *hash, const void *key) { EINA_SAFETY_ON_NULL_RETURN_VAL(hash, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE); return _eina_hash_del_by_key(hash, key, NULL); } EAPI Eina_Bool eina_hash_del_by_data(Eina_Hash *hash, const void *data) { Eina_Hash_Element *hash_element; Eina_Hash_Head *hash_head; int key_hash; EINA_SAFETY_ON_NULL_RETURN_VAL(hash, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE); EINA_MAGIC_CHECK_HASH(hash); hash_element = _eina_hash_find_by_data(hash, data, &key_hash, &hash_head); if (!hash_element) goto error; if (hash_element->tuple.data != data) goto error; return _eina_hash_del_by_hash_el(hash, hash_element, hash_head, key_hash); error: return EINA_FALSE; } EAPI Eina_Bool eina_hash_del_by_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash, const void *data) { Eina_Bool ret; EINA_SAFETY_ON_NULL_RETURN_VAL(hash, EINA_FALSE); EINA_MAGIC_CHECK_HASH(hash); if (key) ret = _eina_hash_del_by_key_hash(hash, key, key_length, key_hash, data); else ret = eina_hash_del_by_data(hash, data); return ret; } EAPI Eina_Bool eina_hash_del(Eina_Hash *hash, const void *key, const void *data) { EINA_SAFETY_ON_NULL_RETURN_VAL(hash, EINA_FALSE); EINA_MAGIC_CHECK_HASH(hash); if (!key) return eina_hash_del_by_data(hash, data); return _eina_hash_del_by_key(hash, key, data); } EAPI void * eina_hash_find_by_hash(const Eina_Hash *hash, const void *key, int key_length, int key_hash) { Eina_Hash_Head *hash_head; Eina_Hash_Element *hash_element; Eina_Hash_Tuple tuple; if (!hash) return NULL; EINA_SAFETY_ON_NULL_RETURN_VAL(key, NULL); EINA_MAGIC_CHECK_HASH(hash); tuple.key = key; tuple.key_length = key_length; tuple.data = NULL; hash_element = _eina_hash_find_by_hash(hash, &tuple, key_hash, &hash_head); if (hash_element) return hash_element->tuple.data; return NULL; } EAPI void * eina_hash_find(const Eina_Hash *hash, const void *key) { int key_length; int hash_num; if (!hash) return NULL; EINA_SAFETY_ON_NULL_RETURN_VAL(hash->key_hash_cb, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(key, NULL); EINA_MAGIC_CHECK_HASH(hash); key_length = hash->key_length_cb ? hash->key_length_cb(key) : 0; hash_num = hash->key_hash_cb(key, key_length); return eina_hash_find_by_hash(hash, key, key_length, hash_num); } EAPI void * eina_hash_modify_by_hash(Eina_Hash *hash, const void *key, int key_length, int key_hash, const void *data) { Eina_Hash_Head *hash_head; Eina_Hash_Element *hash_element; void *old_data = NULL; Eina_Hash_Tuple tuple; EINA_SAFETY_ON_NULL_RETURN_VAL(hash, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(key, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(data, NULL); EINA_MAGIC_CHECK_HASH(hash); tuple.key = key; tuple.key_length = key_length; tuple.data = NULL; hash_element = _eina_hash_find_by_hash(hash, &tuple, key_hash, &hash_head); if (hash_element) { old_data = hash_element->tuple.data; hash_element->tuple.data = (void *)data; } return old_data; } EAPI void * eina_hash_set(Eina_Hash *hash, const void *key, const void *data) { Eina_Hash_Tuple tuple; Eina_Hash_Head *hash_head; Eina_Hash_Element *hash_element; int key_length; int key_hash; EINA_SAFETY_ON_NULL_RETURN_VAL(hash, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(hash->key_hash_cb, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(key, NULL); EINA_MAGIC_CHECK_HASH(hash); key_length = hash->key_length_cb ? hash->key_length_cb(key) : 0; key_hash = hash->key_hash_cb(key, key_length); tuple.key = key; tuple.key_length = key_length; tuple.data = NULL; hash_element = _eina_hash_find_by_hash(hash, &tuple, key_hash, &hash_head); if (hash_element) { void *old_data = NULL; old_data = hash_element->tuple.data; if (data) { hash_element->tuple.data = (void *)data; } else { Eina_Free_Cb cb = hash->data_free_cb; hash->data_free_cb = NULL; _eina_hash_del_by_hash_el(hash, hash_element, hash_head, key_hash); hash->data_free_cb = cb; } return old_data; } if (!data) return NULL; eina_hash_add_alloc_by_hash(hash, key, key_length, key_length, key_hash, data); return NULL; } EAPI void * eina_hash_modify(Eina_Hash *hash, const void *key, const void *data) { int key_length; int hash_num; EINA_SAFETY_ON_NULL_RETURN_VAL(hash, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(hash->key_hash_cb, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(key, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(data, NULL); EINA_MAGIC_CHECK_HASH(hash); key_length = hash->key_length_cb ? hash->key_length_cb(key) : 0; hash_num = hash->key_hash_cb(key, key_length); return eina_hash_modify_by_hash(hash, key, key_length, hash_num, data); } EAPI Eina_Bool eina_hash_move(Eina_Hash *hash, const void *old_key, const void *new_key) { Eina_Free_Cb hash_free_cb; const void *data; Eina_Bool result = EINA_FALSE; EINA_SAFETY_ON_NULL_RETURN_VAL(hash, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(hash->key_hash_cb, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(old_key, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(new_key, EINA_FALSE); EINA_MAGIC_CHECK_HASH(hash); data = eina_hash_find(hash, old_key); if (!data) goto error; hash_free_cb = hash->data_free_cb; hash->data_free_cb = NULL; eina_hash_del(hash, old_key, data); result = eina_hash_add(hash, new_key, data); hash->data_free_cb = hash_free_cb; error: return result; } /*============================================================================* * Iterator * *============================================================================*/ EAPI void eina_hash_foreach(const Eina_Hash *hash, Eina_Hash_Foreach func, const void *fdata) { Eina_Iterator *it; Eina_Hash_Foreach_Data foreach; EINA_MAGIC_CHECK_HASH(hash); EINA_SAFETY_ON_NULL_RETURN(hash); EINA_SAFETY_ON_NULL_RETURN(func); foreach.cb = func; foreach.fdata = fdata; it = eina_hash_iterator_tuple_new(hash); if (!it) return; eina_iterator_foreach(it, EINA_EACH_CB(_eina_foreach_cb), &foreach); eina_iterator_free(it); } EAPI Eina_Iterator * eina_hash_iterator_data_new(const Eina_Hash *hash) { Eina_Iterator_Hash *it; EINA_SAFETY_ON_NULL_RETURN_VAL(hash, NULL); EINA_MAGIC_CHECK_HASH(hash); eina_error_set(0); it = calloc(1, sizeof (Eina_Iterator_Hash)); if (!it) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } it->hash = hash; it->get_content = FUNC_ITERATOR_GET_CONTENT(_eina_hash_iterator_data_get_content); it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_hash_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER( _eina_hash_iterator_get_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_hash_iterator_free); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); EINA_MAGIC_SET(it, EINA_MAGIC_HASH_ITERATOR); return &it->iterator; } EAPI Eina_Iterator * eina_hash_iterator_key_new(const Eina_Hash *hash) { Eina_Iterator_Hash *it; EINA_SAFETY_ON_NULL_RETURN_VAL(hash, NULL); EINA_MAGIC_CHECK_HASH(hash); eina_error_set(0); it = calloc(1, sizeof (Eina_Iterator_Hash)); if (!it) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } it->hash = hash; it->get_content = FUNC_ITERATOR_GET_CONTENT( _eina_hash_iterator_key_get_content); it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_hash_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER( _eina_hash_iterator_get_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_hash_iterator_free); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); EINA_MAGIC_SET(it, EINA_MAGIC_HASH_ITERATOR); return &it->iterator; } EAPI Eina_Iterator * eina_hash_iterator_tuple_new(const Eina_Hash *hash) { Eina_Iterator_Hash *it; EINA_SAFETY_ON_NULL_RETURN_VAL(hash, NULL); EINA_MAGIC_CHECK_HASH(hash); eina_error_set(0); it = calloc(1, sizeof (Eina_Iterator_Hash)); if (!it) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } it->hash = hash; it->get_content = FUNC_ITERATOR_GET_CONTENT( _eina_hash_iterator_tuple_get_content); it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(_eina_hash_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER( _eina_hash_iterator_get_container); it->iterator.free = FUNC_ITERATOR_FREE(_eina_hash_iterator_free); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); EINA_MAGIC_SET(it, EINA_MAGIC_HASH_ITERATOR); return &it->iterator; } /* Common hash functions */ /* Paul Hsieh (http://www.azillionmonkeys.com/qed/hash.html) used by WebCore (http://webkit.org/blog/8/hashtables-part-2/) */ EAPI int eina_hash_superfast(const char *key, int len) { int hash = len, tmp; int rem; rem = len & 3; len >>= 2; /* Main loop */ for (; len > 0; len--) { hash += get16bits(key); tmp = (get16bits(key + 2) << 11) ^ hash; hash = (hash << 16) ^ tmp; key += 2 * sizeof (uint16_t); hash += hash >> 11; } /* Handle end cases */ switch (rem) { case 3: hash += get16bits(key); hash ^= hash << 16; hash ^= key[sizeof (uint16_t)] << 18; hash += hash >> 11; break; case 2: hash += get16bits(key); hash ^= hash << 11; hash += hash >> 17; break; case 1: hash += *key; hash ^= hash << 10; hash += hash >> 1; } /* Force "avalanching" of final 127 bits */ hash ^= hash << 3; hash += hash >> 5; hash ^= hash << 4; hash += hash >> 17; hash ^= hash << 25; hash += hash >> 6; return hash; } eina-1.7.10/src/lib/eina_mempool.c0000664000175000017500000002272312175475327013627 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include "eina_config.h" #include "eina_private.h" #include "eina_hash.h" #include "eina_module.h" #include "eina_log.h" #include "eina_main.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_mempool.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ static Eina_Hash *_backends; static Eina_Array *_modules; static int _eina_mempool_log_dom = -1; #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_mempool_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_mempool_log_dom, __VA_ARGS__) static Eina_Mempool * _new_va(const char *name, const char *context, const char *options, va_list args) { Eina_Mempool_Backend *be = NULL; Eina_Mempool *mp; Eina_Error err = EINA_ERROR_NOT_MEMPOOL_MODULE; eina_error_set(0); if (getenv("EINA_MEMPOOL_PASS")) { be = eina_hash_find(_backends, "pass_through"); if (!be) be = eina_hash_find(_backends, name); } else be = eina_hash_find(_backends, name); if ((!be) || (!be->init)) goto on_error; err = EINA_ERROR_OUT_OF_MEMORY; mp = calloc(1, sizeof(Eina_Mempool)); if (!mp) goto on_error; /* Work around ABI incompability introduced in Eina 1.1 */ #define SBP(Property) mp->backend.Property = be->Property; SBP(name); SBP(init); SBP(free); SBP(alloc); SBP(realloc); SBP(garbage_collect); SBP(statistics); SBP(shutdown); #undef SBP if (be->repack) { mp->backend2 = calloc(1, sizeof (Eina_Mempool_Backend_ABI2)); if (mp->backend2) mp->backend2->repack = be->repack; } mp->backend_data = mp->backend.init(context, options, args); return mp; on_error: eina_error_set(err); return NULL; } /* Built-in backend's prototypes */ #ifdef EINA_STATIC_BUILD_BUDDY Eina_Bool buddy_init(void); void buddy_shutdown(void); #endif #ifdef EINA_STATIC_BUILD_CHAINED_POOL Eina_Bool chained_init(void); void chained_shutdown(void); #endif #ifdef EINA_STATIC_BUILD_EMEMOA_FIXED Eina_Bool ememoa_fixed_init(void); void ememoa_fixed_shutdown(void); #endif #ifdef EINA_STATIC_BUILD_EMEMOA_UNKNOWN Eina_Bool ememoa_unknown_init(void); void ememoa_unknown_shutdown(void); #endif #ifdef EINA_STATIC_BUILD_FIXED_BITMAP Eina_Bool fixed_bitmap_init(void); void fixed_bitmap_shutdown(void); #endif #ifdef EINA_STATIC_BUILD_ONE_BIG Eina_Bool one_big_init(void); void one_big_shutdown(void); #endif #ifdef EINA_STATIC_BUILD_PASS_THROUGH Eina_Bool pass_through_init(void); void pass_through_shutdown(void); #endif /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @cond LOCAL */ EAPI Eina_Error EINA_ERROR_NOT_MEMPOOL_MODULE = 0; static const char EINA_ERROR_NOT_MEMPOOL_MODULE_STR[] = "Not a memory pool module."; /** * @endcond */ EAPI Eina_Bool eina_mempool_register(Eina_Mempool_Backend *be) { EINA_SAFETY_ON_NULL_RETURN_VAL(be, 0); DBG("be=%p, name=%p", be, be->name); return eina_hash_add(_backends, be->name, be); } EAPI void eina_mempool_unregister(Eina_Mempool_Backend *be) { EINA_SAFETY_ON_NULL_RETURN(be); DBG("be=%p, name=%p", be, be->name); eina_hash_del(_backends, be->name, be); } Eina_Bool eina_mempool_init(void) { char *path; _eina_mempool_log_dom = eina_log_domain_register("eina_mempool", EINA_LOG_COLOR_DEFAULT); if (_eina_mempool_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_mempool"); return 0; } EINA_ERROR_NOT_MEMPOOL_MODULE = eina_error_msg_static_register( EINA_ERROR_NOT_MEMPOOL_MODULE_STR); _backends = eina_hash_string_superfast_new(NULL); /* dynamic backends */ _modules = eina_module_arch_list_get(NULL, PACKAGE_LIB_DIR "/eina/modules/mp", MODULE_ARCH); path = eina_module_environment_path_get("HOME", "/.eina/mp/modules/mp"); _modules = eina_module_arch_list_get(_modules, path, MODULE_ARCH); if (path) free(path); path = eina_module_environment_path_get("EINA_MODULES_MEMPOOL_DIR", "/eina/modules/mp"); _modules = eina_module_arch_list_get(_modules, path, MODULE_ARCH); if (path) free(path); path = eina_module_symbol_path_get((const void *)eina_init, "/eina/modules/mp"); _modules = eina_module_arch_list_get(_modules, path, MODULE_ARCH); if (path) free(path); if (!_modules) { ERR("no mempool modules able to be loaded."); eina_hash_free(_backends); goto mempool_init_error; } eina_module_list_load(_modules); /* builtin backends */ #ifdef EINA_STATIC_BUILD_BUDDY buddy_init(); #endif #ifdef EINA_STATIC_BUILD_CHAINED_POOL chained_init(); #endif #ifdef EINA_STATIC_BUILD_EMEMOA_FIXED ememoa_fixed_init(); #endif #ifdef EINA_STATIC_BUILD_EMEMOA_UNKNOWN ememoa_unknown_init(); #endif #ifdef EINA_STATIC_BUILD_FIXED_BITMAP fixed_bitmap_init(); #endif #ifdef EINA_STATIC_BUILD_ONE_BIG one_big_init(); #endif #ifdef EINA_STATIC_BUILD_PASS_THROUGH pass_through_init(); #endif return EINA_TRUE; mempool_init_error: eina_log_domain_unregister(_eina_mempool_log_dom); _eina_mempool_log_dom = -1; return EINA_FALSE; } Eina_Bool eina_mempool_shutdown(void) { /* builtin backends */ #ifdef EINA_STATIC_BUILD_BUDDY buddy_shutdown(); #endif #ifdef EINA_STATIC_BUILD_CHAINED_POOL chained_shutdown(); #endif #ifdef EINA_STATIC_BUILD_EMEMOA_FIXED ememoa_fixed_shutdown(); #endif #ifdef EINA_STATIC_BUILD_EMEMOA_UNKNOWN ememoa_unknown_shutdown(); #endif #ifdef EINA_STATIC_BUILD_FIXED_BITMAP fixed_bitmap_shutdown(); #endif #ifdef EINA_STATIC_BUILD_ONE_BIG one_big_shutdown(); #endif #ifdef EINA_STATIC_BUILD_PASS_THROUGH pass_through_shutdown(); #endif /* dynamic backends */ eina_module_list_free(_modules); if (_modules) eina_array_free(_modules); if (_backends) eina_hash_free(_backends); eina_log_domain_unregister(_eina_mempool_log_dom); _eina_mempool_log_dom = -1; return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI Eina_Mempool * eina_mempool_add(const char *name, const char *context, const char *options, ...) { Eina_Mempool *mp; va_list args; EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL); DBG("name=%s, context=%s, options=%s", name, context ? context : "", options ? options : ""); va_start(args, options); mp = _new_va(name, context, options, args); va_end(args); DBG("name=%s, context=%s, options=%s, mp=%p", name, context ? context : "", options ? options : "", mp); return mp; } EAPI void eina_mempool_del(Eina_Mempool *mp) { EINA_SAFETY_ON_NULL_RETURN(mp); EINA_SAFETY_ON_NULL_RETURN(mp->backend.shutdown); DBG("mp=%p", mp); mp->backend.shutdown(mp->backend_data); free(mp->backend2); free(mp); } EAPI void eina_mempool_repack(Eina_Mempool *mp, Eina_Mempool_Repack_Cb cb, void *data) { EINA_SAFETY_ON_NULL_RETURN(mp); EINA_SAFETY_ON_NULL_RETURN(mp->backend2); EINA_SAFETY_ON_NULL_RETURN(mp->backend2->repack); DBG("mp=%p", mp); mp->backend2->repack(mp->backend_data, cb, data); } EAPI void eina_mempool_gc(Eina_Mempool *mp) { EINA_SAFETY_ON_NULL_RETURN(mp); EINA_SAFETY_ON_NULL_RETURN(mp->backend.garbage_collect); DBG("mp=%p", mp); mp->backend.garbage_collect(mp->backend_data); } EAPI void eina_mempool_statistics(Eina_Mempool *mp) { EINA_SAFETY_ON_NULL_RETURN(mp); EINA_SAFETY_ON_NULL_RETURN(mp->backend.statistics); DBG("mp=%p", mp); mp->backend.statistics(mp->backend_data); } EAPI unsigned int eina_mempool_alignof(unsigned int size) { int align; if (size <= 2) align = 2; else if (size < 8) align = 4; else #if __WORDSIZE == 32 align = 8; #else if (size < 16) align = 8; else align = 16; #endif return ((size / align) + 1) * align; } eina-1.7.10/src/lib/eina_iterator.c0000664000175000017500000001134412175475327014005 00000000000000/* EINA - EFL data type library * Copyright (C) 2002-2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_config.h" #include "eina_private.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_iterator.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ static const char EINA_MAGIC_ITERATOR_STR[] = "Eina Iterator"; #define EINA_MAGIC_CHECK_ITERATOR(d) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_ITERATOR)) { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_ITERATOR); } \ } while(0) /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the iterator module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the iterator module of Eina. It is called by * eina_init(). * * @see eina_init() */ Eina_Bool eina_iterator_init(void) { return eina_magic_string_set(EINA_MAGIC_ITERATOR, EINA_MAGIC_ITERATOR_STR); } /** * @internal * @brief Shut down the iterator module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the iterator module set up by * eina_iterator_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_iterator_shutdown(void) { return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI void eina_iterator_free(Eina_Iterator *iterator) { if (!iterator) return; EINA_MAGIC_CHECK_ITERATOR(iterator); EINA_SAFETY_ON_NULL_RETURN(iterator->free); iterator->free(iterator); } EAPI void * eina_iterator_container_get(Eina_Iterator *iterator) { EINA_MAGIC_CHECK_ITERATOR(iterator); EINA_SAFETY_ON_NULL_RETURN_VAL(iterator, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(iterator->get_container, NULL); return iterator->get_container(iterator); } EAPI Eina_Bool eina_iterator_next(Eina_Iterator *iterator, void **data) { if (!iterator) return EINA_FALSE; EINA_MAGIC_CHECK_ITERATOR(iterator); EINA_SAFETY_ON_NULL_RETURN_VAL(iterator->next, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE); return iterator->next(iterator, data); } EAPI void eina_iterator_foreach(Eina_Iterator *iterator, Eina_Each_Cb cb, const void *fdata) { const void *container; void *data; if (!iterator) return; EINA_MAGIC_CHECK_ITERATOR(iterator); EINA_SAFETY_ON_NULL_RETURN(iterator->get_container); EINA_SAFETY_ON_NULL_RETURN(iterator->next); EINA_SAFETY_ON_NULL_RETURN(cb); if (!eina_iterator_lock(iterator)) return ; container = iterator->get_container(iterator); while (iterator->next(iterator, &data) == EINA_TRUE) { if (cb(container, data, (void *)fdata) != EINA_TRUE) goto on_exit; } on_exit: (void) eina_iterator_unlock(iterator); } EAPI Eina_Bool eina_iterator_lock(Eina_Iterator *iterator) { EINA_MAGIC_CHECK_ITERATOR(iterator); EINA_SAFETY_ON_NULL_RETURN_VAL(iterator, EINA_FALSE); if (iterator->lock) return iterator->lock(iterator); return EINA_TRUE; } EAPI Eina_Bool eina_iterator_unlock(Eina_Iterator *iterator) { EINA_MAGIC_CHECK_ITERATOR(iterator); EINA_SAFETY_ON_NULL_RETURN_VAL(iterator, EINA_FALSE); if (iterator->unlock) return iterator->unlock(iterator); return EINA_TRUE; } eina-1.7.10/src/lib/eina_main.c0000664000175000017500000002370212175475327013101 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #ifdef EFL_HAVE_WIN32_THREADS # define WIN32_LEAN_AND_MEAN # include # undef WIN32_LEAN_AND_MEAN #endif #ifdef EFL_HAVE_THREADS # ifdef HAVE_SYS_TYPES_H # include # endif # ifdef HAVE_UNISTD_H # include # endif #endif #ifdef HAVE_MCHECK_H # ifdef HAVE_MTRACE # define MT 1 # endif #endif #ifdef MT #include #endif #include #include "eina_lock.h" #include "eina_config.h" #include "eina_private.h" #include "eina_types.h" #include "eina_main.h" #include "eina_error.h" #include "eina_log.h" #include "eina_hash.h" #include "eina_binshare.h" #include "eina_stringshare.h" #include "eina_ustringshare.h" #include "eina_list.h" #include "eina_matrixsparse.h" #include "eina_array.h" #include "eina_counter.h" #include "eina_benchmark.h" #include "eina_magic.h" #include "eina_rectangle.h" #include "eina_safety_checks.h" #include "eina_inlist.h" #include "eina_inarray.h" #include "eina_value.h" /* no model for now #include "eina_model.h" */ /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ static Eina_Version _version = { VMAJ, VMIN, VMIC, VREV }; static int _eina_main_count = 0; #ifdef EFL_HAVE_THREADS static int _eina_main_thread_count = 0; #endif static int _eina_log_dom = -1; #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_log_dom, __VA_ARGS__) EAPI Eina_Bool _eina_threads_activated = EINA_FALSE; EAPI Eina_Error EINA_ERROR_NOT_MAIN_LOOP = 0; EAPI unsigned int eina_seed = 0; static const char EINA_ERROR_NOT_MAIN_LOOP_STR[] = "Main loop thread check failed."; #ifdef EFL_HAVE_THREADS # ifdef _WIN32 EAPI DWORD _eina_main_loop; # else EAPI pthread_t _eina_main_loop; # endif static pid_t _eina_pid; #endif #ifdef MT static int _mt_enabled = 0; #endif #ifdef EFL_HAVE_THREADS EAPI int _eina_threads_debug = 0; # if !defined(_WIN32_WCE) && !defined(_WIN32) EAPI pthread_mutex_t _eina_tracking_lock; EAPI Eina_Inlist *_eina_tracking = NULL; # endif #endif /* place module init/shutdown functions here to avoid other modules * calling them by mistake. */ #define S(x) extern Eina_Bool eina_ ## x ## _init(void); \ extern Eina_Bool eina_ ## x ## _shutdown(void) S(log); S(error); S(safety_checks); S(magic_string); S(iterator); S(accessor); S(inarray); S(array); S(module); S(mempool); S(list); S(binshare); S(stringshare); S(ustringshare); S(matrixsparse); S(convert); S(counter); S(benchmark); S(rectangle); S(strbuf); S(ustrbuf); S(quadtree); S(simple_xml); S(file); S(prefix); S(value); /* no model for now S(model); */ #undef S struct eina_desc_setup { const char *name; Eina_Bool (*init)(void); Eina_Bool (*shutdown)(void); }; static const struct eina_desc_setup _eina_desc_setup[] = { #define S(x) {# x, eina_ ## x ## _init, eina_ ## x ## _shutdown} /* log is a special case as it needs printf */ S(stringshare), S(error), S(safety_checks), S(magic_string), S(iterator), S(accessor), S(inarray), S(array), S(module), S(mempool), S(list), S(binshare), S(ustringshare), S(matrixsparse), S(convert), S(counter), S(benchmark), S(rectangle), S(strbuf), S(ustrbuf), S(quadtree), S(simple_xml), S(file), S(prefix), S(value), /* no model for now S(model) */ #undef S }; static const size_t _eina_desc_setup_len = sizeof(_eina_desc_setup) / sizeof(_eina_desc_setup[0]); static void _eina_shutdown_from_desc(const struct eina_desc_setup *itr) { for (itr--; itr >= _eina_desc_setup; itr--) { if (!itr->shutdown()) ERR("Problems shutting down eina module '%s', ignored.", itr->name); } eina_log_domain_unregister(_eina_log_dom); _eina_log_dom = -1; eina_log_shutdown(); } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /*============================================================================* * API * *============================================================================*/ /** * @var eina_version * @brief Eina version (defined at configuration time) */ EAPI Eina_Version *eina_version = &_version; EAPI int eina_init(void) { const struct eina_desc_setup *itr, *itr_end; if (EINA_LIKELY(_eina_main_count > 0)) return ++_eina_main_count; srand(time(NULL)); while (eina_seed == 0) eina_seed = rand(); #ifdef MT if ((getenv("EINA_MTRACE")) && (getenv("MALLOC_TRACE"))) { _mt_enabled = 1; mtrace(); } #endif if (!eina_log_init()) { fprintf(stderr, "Could not initialize eina logging system.\n"); return 0; } _eina_log_dom = eina_log_domain_register("eina", EINA_LOG_COLOR_DEFAULT); if (_eina_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina"); eina_log_shutdown(); return 0; } EINA_ERROR_NOT_MAIN_LOOP = eina_error_msg_static_register( EINA_ERROR_NOT_MAIN_LOOP_STR); #ifdef EFL_HAVE_THREADS # ifdef _WIN32 _eina_main_loop = GetCurrentThreadId(); # else _eina_main_loop = pthread_self(); # endif _eina_pid = getpid(); #endif #ifdef EINA_HAVE_DEBUG_THREADS pthread_mutex_init(&_eina_tracking_lock, NULL); if (getenv("EINA_DEBUG_THREADS")) _eina_threads_debug = atoi(getenv("EINA_DEBUG_THREADS")); #endif itr = _eina_desc_setup; itr_end = itr + _eina_desc_setup_len; for (; itr < itr_end; itr++) { if (!itr->init()) { ERR("Could not initialize eina module '%s'.", itr->name); _eina_shutdown_from_desc(itr); return 0; } } eina_cpu_count_internal(); _eina_main_count = 1; return 1; } EAPI int eina_shutdown(void) { if (_eina_main_count <= 0) { ERR("Init count not greater than 0 in shutdown."); return 0; } _eina_main_count--; if (EINA_UNLIKELY(_eina_main_count == 0)) { _eina_shutdown_from_desc(_eina_desc_setup + _eina_desc_setup_len); #ifdef EINA_HAVE_DEBUG_THREADS pthread_mutex_destroy(&_eina_tracking_lock); #endif #ifdef MT if (_mt_enabled) { muntrace(); _mt_enabled = 0; } #endif } return _eina_main_count; } EAPI int eina_threads_init(void) { #ifdef EFL_HAVE_THREADS int ret; #ifdef EINA_HAVE_DEBUG_THREADS assert(pthread_equal(_eina_main_loop, pthread_self())); #endif ++_eina_main_thread_count; ret = _eina_main_thread_count; if(_eina_main_thread_count > 1) return ret; eina_share_common_threads_init(); eina_log_threads_init(); _eina_threads_activated = EINA_TRUE; return ret; #else return 0; #endif } EAPI int eina_threads_shutdown(void) { #ifdef EFL_HAVE_THREADS int ret; #ifdef EINA_HAVE_DEBUG_THREADS const Eina_Lock *lk; assert(pthread_equal(_eina_main_loop, pthread_self())); assert(_eina_main_thread_count > 0); #endif ret = --_eina_main_thread_count; if(_eina_main_thread_count > 0) return ret; #ifdef EINA_HAVE_DEBUG_THREADS pthread_mutex_lock(&_eina_tracking_lock); if (_eina_tracking) { fprintf(stderr, "*************************\n"); fprintf(stderr, "* The IMPOSSIBLE HAPPEN *\n"); fprintf(stderr, "* LOCK STILL TAKEN : *\n"); fprintf(stderr, "*************************\n"); EINA_INLIST_FOREACH(_eina_tracking, lk) { fprintf(stderr, "=======\n"); eina_lock_debug(lk); } fprintf(stderr, "*************************\n"); abort(); } pthread_mutex_unlock(&_eina_tracking_lock); #endif eina_share_common_threads_shutdown(); eina_log_threads_shutdown(); _eina_threads_activated = EINA_FALSE; return ret; #else return 0; #endif } EAPI Eina_Bool eina_main_loop_is(void) { #ifdef EFL_HAVE_THREADS pid_t pid; # ifdef _WIN32 if (_eina_main_loop == GetCurrentThreadId()) return EINA_TRUE; # else if (pthread_equal(_eina_main_loop, pthread_self())) return EINA_TRUE; # endif pid = getpid(); # ifdef _WIN32 if (pid != _eina_pid) { _eina_pid = pid; _eina_main_loop = GetCurrentThreadId(); return EINA_TRUE; } #else if (pid != _eina_pid) { /* This is in case of a fork, but don't like the solution */ _eina_pid = pid; _eina_main_loop = pthread_self(); return EINA_TRUE; } #endif #endif return EINA_FALSE; } /** The purpose of this API should not be documented, it is used only by the one who know what they are doing. */ EAPI void eina_main_loop_define(void) { #ifdef EFL_HAVE_THREADS _eina_pid = getpid(); # ifdef _WIN32 _eina_main_loop = GetCurrentThreadId(); # else _eina_main_loop = pthread_self(); # endif #endif } /** * @} */ eina-1.7.10/src/lib/eina_str.c0000664000175000017500000003417712175475327012775 00000000000000/* Leave the OpenBSD version below so we can track upstream fixes */ /* $OpenBSD: strlcpy.c,v 1.11 2006/05/05 15:27:38 millert Exp $ */ /* * Copyright (c) 1998 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include #ifdef HAVE_ICONV # include # include #endif #include "eina_private.h" #include "eina_str.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ /* * Internal helper function used by eina_str_has_suffix() and * eina_str_has_extension() */ static inline Eina_Bool eina_str_has_suffix_helper(const char *str, const char *suffix, int (*cmp)(const char *, const char *)) { size_t str_len; size_t suffix_len; if ((!str) || (!suffix)) return EINA_FALSE; str_len = strlen(str); suffix_len = eina_strlen_bounded(suffix, str_len); if (suffix_len == (size_t)-1) return EINA_FALSE; return cmp(str + str_len - suffix_len, suffix) == 0; } static inline char ** eina_str_split_full_helper(const char *str, const char *delim, int max_tokens, unsigned int *elements) { char *s, *pos, **str_array; const char *src; size_t len, dlen; unsigned int tokens = 0, x; const char *idx[256] = {NULL}; if (max_tokens < 0) max_tokens = 0; if (max_tokens == 1) { str_array = malloc(sizeof(char *) * 2); if (!str_array) { if (elements) *elements = 0; return NULL; } s = strdup(str); if (!s) { free(str_array); if (elements) *elements = 0; return NULL; } if (elements) *elements = 1; str_array[0] = s; return str_array; } dlen = strlen(delim); if (dlen == 0) { if (elements) *elements = 0; return NULL; } src = str; /* count tokens and check strlen(str) */ while (*src != '\0') { const char *d = delim, *d_end = d + dlen; const char *tmp = src; for (; (d < d_end) && (*tmp != '\0'); d++, tmp++) { if (EINA_LIKELY(*d != *tmp)) break; } if (EINA_UNLIKELY(d == d_end)) { src = tmp; if (tokens < (sizeof(idx) / sizeof(idx[0]))) { idx[tokens] = tmp; //printf("token %d='%s'\n", tokens + 1, idx[tokens]); } tokens++; if (tokens && (tokens == (unsigned int)max_tokens)) break; } else src++; } len = src - str + strlen(src); str_array = malloc(sizeof(char *) * (tokens + 2)); if (!str_array) { if (elements) *elements = 0; return NULL; } if (!tokens) { s = strdup(str); if (!s) { free(str_array); if (elements) *elements = 0; return NULL; } str_array[0] = s; str_array[1] = NULL; if (elements) *elements = 1; return str_array; } s = malloc(len + 1); if (!s) { free(str_array); if (elements) *elements = 0; return NULL; } str_array[0] = s; if (len == tokens * dlen) { /* someone's having a laugh somewhere */ memset(s, 0, len + 1); for (x = 1; x < tokens + 1; x++) str_array[x] = s + x; str_array[x] = NULL; if (elements) *elements = x; return str_array; } /* copy tokens and string */ if (idx[0] - str - dlen > len) { /* FIXME: don't think this can happen but putting this here just in case */ abort(); } pos = s; for (x = 0; x < MIN(tokens, (sizeof(idx) / sizeof(idx[0]))); x++) { if (x + 1 < (sizeof(idx) / sizeof(idx[0]))) { /* first one is special */ if (!x) { eina_strlcpy(pos, str, idx[x] - str - dlen + 1); str_array[x] = pos; //printf("str_array[%d] = '%s'\n", x, str_array[x]); pos += idx[x] - str - dlen + 1; if ((tokens == 1) && (idx[0])) { eina_strlcpy(pos, idx[x], len + 1 - (pos - s)); x++, tokens++; str_array[x] = pos; } } /* more tokens */ else if (idx[x + 1]) { eina_strlcpy(pos, idx[x - 1], idx[x] - idx[x - 1] - dlen + 1); str_array[x] = pos; //printf("str_array[%d] = '%s'\n", x, str_array[x]); pos += idx[x] - idx[x - 1] - dlen + 1; } /* last token */ else { if (max_tokens && ((unsigned int)max_tokens < tokens + 1)) eina_strlcpy(pos, idx[x - 1], len + 1 - (pos - s)); else { //printf("diff: %d\n", len + 1 - (pos - s)); eina_strlcpy(pos, idx[x - 1], idx[x] - idx[x - 1] - dlen + 1); str_array[x] = pos; //printf("str_array[%d] = '%s'\n", x, str_array[x]); pos += idx[x] - idx[x - 1] - dlen + 1; x++, tokens++; eina_strlcpy(pos, idx[x - 1], len + 1 - (pos - s)); } str_array[x] = pos; //printf("str_array[%d] = '%s'\n", x, str_array[x]); } } /* no more tokens saved after this one */ else { eina_strlcpy(pos, idx[x - 1], idx[x] - idx[x - 1] - dlen + 1); str_array[x] = pos; //printf("str_array[%d] = '%s'\n", x, str_array[x]); pos += idx[x] - idx[x - 1] - dlen + 1; src = idx[x]; x++, tokens++; str_array[x] = s = pos; break; } } if ((x != tokens) && ((!max_tokens) || (x < tokens))) { while (*src != '\0') { const char *d = delim, *d_end = d + dlen; const char *tmp = src; for (; (d < d_end) && (*tmp != '\0'); d++, tmp++) { if (EINA_LIKELY(*d != *tmp)) break; } if (((!max_tokens) || (((tokens == (unsigned int)max_tokens) || x < tokens - 2))) && (EINA_UNLIKELY(d == d_end))) { src = tmp; *s = '\0'; s++, x++; //printf("str_array[%d] = '%s'\n", x, str_array[x - 1]); str_array[x] = s; } else { *s = *src; s++, src++; } } *s = 0; } str_array[tokens] = NULL; if (elements) *elements = tokens; return str_array; } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /*============================================================================* * API * *============================================================================*/ EAPI size_t eina_strlcpy(char *dst, const char *src, size_t siz) { #ifdef HAVE_STRLCPY return strlcpy(dst, src, siz); #else char *d = dst; const char *s = src; size_t n = siz; /* Copy as many bytes as will fit */ if (n != 0) while (--n != 0) { if ((*d++ = *s++) == '\0') break; } /* Not enough room in dst, add NUL and traverse rest of src */ if (n == 0) { if (siz != 0) *d = '\0'; /* NUL-terminate dst */ while (*s++) ; } return(s - src - 1); /* count does not include NUL */ #endif } EAPI size_t eina_strlcat(char *dst, const char *src, size_t siz) { char *d = dst; const char *s = src; size_t n = siz; size_t dlen; /* Find the end of dst and adjust bytes left but don't go past end */ while (n-- != 0 && *d != '\0') d++; dlen = d - dst; n = siz - dlen; if (n == 0) return(dlen + strlen(s)); while (*s != '\0') { if (n != 1) { *d++ = *s; n--; } s++; } *d = '\0'; return(dlen + (s - src)); /* count does not include NUL */ } EAPI Eina_Bool eina_str_has_prefix(const char *str, const char *prefix) { size_t str_len; size_t prefix_len; str_len = strlen(str); prefix_len = eina_strlen_bounded(prefix, str_len); if (prefix_len == (size_t)-1) return EINA_FALSE; return (strncmp(str, prefix, prefix_len) == 0); } EAPI Eina_Bool eina_str_has_suffix(const char *str, const char *suffix) { return eina_str_has_suffix_helper(str, suffix, strcmp); } EAPI Eina_Bool eina_str_has_extension(const char *str, const char *ext) { return eina_str_has_suffix_helper(str, ext, strcasecmp); } EAPI char ** eina_str_split_full(const char *str, const char *delim, int max_tokens, unsigned int *elements) { return eina_str_split_full_helper(str, delim, max_tokens, elements); } EAPI char ** eina_str_split(const char *str, const char *delim, int max_tokens) { return eina_str_split_full_helper(str, delim, max_tokens, NULL); } EAPI size_t eina_str_join_len(char *dst, size_t size, char sep, const char *a, size_t a_len, const char *b, size_t b_len) { size_t ret = a_len + b_len + 1; size_t off; if (size < 1) return ret; if (size <= a_len) { memcpy(dst, a, size - 1); dst[size - 1] = '\0'; return ret; } memcpy(dst, a, a_len); off = a_len; if (size <= off + 1) { dst[size - 1] = '\0'; return ret; } dst[off] = sep; off++; if (size <= off + b_len + 1) { memcpy(dst + off, b, size - off - 1); dst[size - 1] = '\0'; return ret; } memcpy(dst + off, b, b_len); dst[off + b_len] = '\0'; return ret; } #ifdef HAVE_ICONV EAPI char * eina_str_convert(const char *enc_from, const char *enc_to, const char *text) { iconv_t ic; char *new_txt, *inp, *outp; size_t inb, outb, outlen, tob, outalloc; if (!text) return NULL; ic = iconv_open(enc_to, enc_from); if (ic == (iconv_t)(-1)) return NULL; new_txt = malloc(64); inb = strlen(text); outb = 64; inp = (char *)text; outp = new_txt; outalloc = 64; outlen = 0; for (;; ) { size_t count; tob = outb; count = iconv(ic, &inp, &inb, &outp, &outb); outlen += tob - outb; if (count == (size_t)(-1)) { if (errno == E2BIG) { new_txt = realloc(new_txt, outalloc + 64); outp = new_txt + outlen; outalloc += 64; outb += 64; } else if (errno == EILSEQ) { if (new_txt) free(new_txt); new_txt = NULL; break; } else if (errno == EINVAL) { if (new_txt) free(new_txt); new_txt = NULL; break; } else { if (new_txt) free(new_txt); new_txt = NULL; break; } } if (inb == 0) { if (outalloc == outlen) new_txt = realloc(new_txt, outalloc + 1); new_txt[outlen] = 0; break; } } iconv_close(ic); return new_txt; } #else EAPI char * eina_str_convert(const char *enc_from __UNUSED__, const char *enc_to __UNUSED__, const char *text __UNUSED__) { return NULL; } #endif EAPI char * eina_str_escape(const char *str) { char *s2, *d; const char *s; if (!str) return NULL; s2 = malloc((strlen(str) * 2) + 1); if (!s2) return NULL; for (s = str, d = s2; *s != 0; s++, d++) { if ((*s == ' ') || (*s == '\\') || (*s == '\'')) { *d = '\\'; d++; } *d = *s; } *d = 0; return s2; } EAPI void eina_str_tolower(char **str) { char *p; if ((!str) || (!(*str))) return; for (p = *str; (*p); p++) *p = tolower((unsigned char )(*p)); } EAPI void eina_str_toupper(char **str) { char *p; if ((!str) || (!(*str))) return; for (p = *str; (*p); p++) *p = toupper((unsigned char)(*p)); } eina-1.7.10/src/lib/eina_unicode.c0000664000175000017500000003075212175475327013606 00000000000000/* EINA - EFL data type library * Copyright (C) 2010 Tom Hacohen, * Brett Nash * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "eina_config.h" #include "eina_private.h" #include /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_unicode.h" /* FIXME: check if sizeof(wchar_t) == sizeof(Eina_Unicode) if so, * probably better to use the standard functions */ /* Maybe I'm too tired, but this is the only thing that actually worked. */ const Eina_Unicode _EINA_UNICODE_EMPTY_STRING[1] = {0}; EAPI const Eina_Unicode *EINA_UNICODE_EMPTY_STRING = _EINA_UNICODE_EMPTY_STRING; EAPI int eina_unicode_strcmp(const Eina_Unicode *a, const Eina_Unicode *b) { EINA_SAFETY_ON_NULL_RETURN_VAL(a, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(b, -1); for (; *a && *a == *b; a++, b++) ; if (*a == *b) return 0; else if (*a < *b) return -1; else return 1; } EAPI Eina_Unicode * eina_unicode_strcpy(Eina_Unicode *dest, const Eina_Unicode *source) { Eina_Unicode *ret = dest; EINA_SAFETY_ON_NULL_RETURN_VAL(dest, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(source, NULL); while (*source) *dest++ = *source++; *dest = 0; return ret; } EAPI Eina_Unicode * eina_unicode_strncpy(Eina_Unicode *dest, const Eina_Unicode *source, size_t n) { Eina_Unicode *ret = dest; EINA_SAFETY_ON_NULL_RETURN_VAL(dest, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(source, NULL); for ( ; n && *source ; n--) *dest++ = *source++; for (; n; n--) *dest++ = 0; return ret; } EAPI size_t eina_unicode_strlen(const Eina_Unicode *ustr) { const Eina_Unicode *end; EINA_SAFETY_ON_NULL_RETURN_VAL(ustr, 0); for (end = ustr; *end; end++) ; return end - ustr; } EAPI size_t eina_unicode_strnlen(const Eina_Unicode *ustr, int n) { const Eina_Unicode *end; const Eina_Unicode *last = ustr + n; /* technically not portable ;-) */ EINA_SAFETY_ON_NULL_RETURN_VAL(ustr, 0); for (end = ustr; end < last && *end; end++) ; return end - ustr; } EAPI Eina_Unicode * eina_unicode_strndup(const Eina_Unicode *text, size_t n) { Eina_Unicode *ustr; EINA_SAFETY_ON_NULL_RETURN_VAL(text, NULL); ustr = malloc((n + 1) * sizeof(Eina_Unicode)); memcpy(ustr, text, n * sizeof(Eina_Unicode)); ustr[n] = 0; return ustr; } EAPI Eina_Unicode * eina_unicode_strdup(const Eina_Unicode *text) { size_t len; EINA_SAFETY_ON_NULL_RETURN_VAL(text, NULL); len = eina_unicode_strlen(text); return eina_unicode_strndup(text, len); } EAPI Eina_Unicode * eina_unicode_strstr(const Eina_Unicode *haystack, const Eina_Unicode *needle) { const Eina_Unicode *i, *j; EINA_SAFETY_ON_NULL_RETURN_VAL(haystack, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(needle, NULL); for (i = haystack; *i; i++) { haystack = i; /* set this location as the base position */ for (j = needle; *j && *i && *j == *i; j++, i++) ; if (!*j) /*if we got to the end of j this means we got a full match */ { return (Eina_Unicode *)haystack; /* return the new base position */ } } return NULL; } EAPI Eina_Unicode * eina_unicode_escape(const Eina_Unicode *str) { Eina_Unicode *s2, *d; const Eina_Unicode *s; EINA_SAFETY_ON_NULL_RETURN_VAL(str, NULL); s2 = malloc((eina_unicode_strlen(str) * 2) + 1); if (!s2) return NULL; for (s = str, d = s2; *s != 0; s++, d++) { if ((*s == ' ') || (*s == '\\') || (*s == '\'')) { *d = '\\'; d++; } *d = *s; } *d = 0; return s2; } /* UTF-8 Handling */ #define EINA_UNICODE_UTF8_BYTES_PER_CHAR 6 /* The replacement range that will be used for bad utf8 chars. */ #define ERROR_REPLACEMENT_BASE 0xDC80 #define ERROR_REPLACEMENT_END 0xDCFF #define IS_INVALID_BYTE(x) ((x == 192) || (x == 193) || (x >= 245)) #define IS_CONTINUATION_BYTE(x) ((x & 0xC0) == 0x80) EAPI Eina_Unicode eina_unicode_utf8_get_next(const char *buf, int *iindex) { int ind = *iindex; Eina_Unicode r; unsigned char d; EINA_SAFETY_ON_NULL_RETURN_VAL(buf, 0); EINA_SAFETY_ON_NULL_RETURN_VAL(iindex, 0); /* if this char is the null terminator, exit */ if ((d = buf[ind++]) == 0) return 0; if ((d & 0x80) == 0) { // 1 byte (7bit) - 0xxxxxxx *iindex = ind; return d; } if ((d & 0xe0) == 0xc0) { // 2 byte (11bit) - 110xxxxx 10xxxxxx r = (d & 0x1f) << 6; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f); if (r <= 0x7F) goto error; *iindex = ind; return r; } if ((d & 0xf0) == 0xe0) { // 3 byte (16bit) - 1110xxxx 10xxxxxx 10xxxxxx r = (d & 0x0f) << 12; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f) << 6; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f); if (r <= 0x7FF) goto error; *iindex = ind; return r; } if ((d & 0xf8) == 0xf0) { // 4 byte (21bit) - 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx r = (d & 0x07) << 18; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f) << 12; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f) << 6; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f); if (r <= 0xFFFF) goto error; *iindex = ind; return r; } if ((d & 0xfc) == 0xf8) { // 5 byte (26bit) - 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx r = (d & 0x03) << 24; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f) << 18; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f) << 12; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f) << 6; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f); if (r <= 0x1FFFFF) goto error; *iindex = ind; return r; } if ((d & 0xfe) == 0xfc) { // 6 byte (31bit) - 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx r = (d & 0x01) << 30; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f) << 24; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f) << 18; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f) << 12; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f) << 6; if (((d = buf[ind++]) == 0) || IS_INVALID_BYTE(d) || !IS_CONTINUATION_BYTE(d)) goto error; r |= (d & 0x3f); if (r <= 0x3FFFFFF) goto error; *iindex = ind; return r; } /* Gets here where there was an error and we want to replace the char * we just use the invalid unicode codepoints 8 lower bits represent * the original char */ error: d = buf[*iindex]; (*iindex)++; return ERROR_REPLACEMENT_BASE | d; } EAPI Eina_Unicode eina_unicode_utf8_get_prev(const char *buf, int *iindex) { int r, ind; EINA_SAFETY_ON_NULL_RETURN_VAL(buf, 0); EINA_SAFETY_ON_NULL_RETURN_VAL(iindex, 0); ind = *iindex; /* First obtain the codepoint at iindex */ r = eina_unicode_utf8_get_next(buf, &ind); /* although when ind == 0 there's no previous char, we still want to get * the current char */ if (*iindex <= 0) return r; /* Next advance iindex to previous codepoint */ ind = *iindex; ind--; while ((ind > 0) && ((buf[ind] & 0xc0) == 0x80)) ind--; *iindex = ind; return r; } EAPI int eina_unicode_utf8_get_len(const char *buf) { /* returns the number of utf8 characters (not bytes) in the string */ int i = 0, len = 0; EINA_SAFETY_ON_NULL_RETURN_VAL(buf, 0); while (eina_unicode_utf8_get_next(buf, &i)) len++; return len; } EAPI Eina_Unicode * eina_unicode_utf8_to_unicode(const char *utf, int *_len) { /* FIXME: Should optimize! */ int len, i; int ind; Eina_Unicode *buf, *uind; EINA_SAFETY_ON_NULL_RETURN_VAL(utf, NULL); len = eina_unicode_utf8_get_len(utf); if (_len) *_len = len; buf = (Eina_Unicode *) calloc(sizeof(Eina_Unicode), (len + 1)); if (!buf) return buf; for (i = 0, ind = 0, uind = buf ; i < len ; i++, uind++) { *uind = eina_unicode_utf8_get_next(utf, &ind); } return buf; } EAPI char * eina_unicode_unicode_to_utf8(const Eina_Unicode *uni, int *_len) { char *buf; const Eina_Unicode *uind; char *ind; int ulen, len; EINA_SAFETY_ON_NULL_RETURN_VAL(uni, NULL); ulen = eina_unicode_strlen(uni); buf = (char *) calloc(ulen + 1, EINA_UNICODE_UTF8_BYTES_PER_CHAR); len = 0; for (uind = uni, ind = buf ; *uind ; uind++) { if (*uind <= 0x7F) /* 1 byte char */ { *ind++ = *uind; len += 1; } else if (*uind <= 0x7FF) /* 2 byte char */ { *ind++ = 0xC0 | (unsigned char) (*uind >> 6); *ind++ = 0x80 | (unsigned char) (*uind & 0x3F); len += 2; } else if (*uind <= 0xFFFF) /* 3 byte char */ { /* If it's a special replacement codepoint */ if (*uind >= ERROR_REPLACEMENT_BASE && *uind <= ERROR_REPLACEMENT_END) { *ind++ = *uind & 0xFF; len += 1; } else { *ind++ = 0xE0 | (unsigned char) (*uind >> 12); *ind++ = 0x80 | (unsigned char) ((*uind >> 6) & 0x3F); *ind++ = 0x80 | (unsigned char) (*uind & 0x3F); len += 3; } } else if (*uind <= 0x1FFFFF) /* 4 byte char */ { *ind++ = 0xF0 | (unsigned char) ((*uind >> 18) & 0x07); *ind++ = 0x80 | (unsigned char) ((*uind >> 12) & 0x3F); *ind++ = 0x80 | (unsigned char) ((*uind >> 6) & 0x3F); *ind++ = 0x80 | (unsigned char) (*uind & 0x3F); len += 4; } else if (*uind <= 0x3FFFFFF) /* 5 byte char */ { *ind++ = 0xF8 | (unsigned char) ((*uind >> 24) & 0x03); *ind++ = 0x80 | (unsigned char) ((*uind >> 18) & 0x3F); *ind++ = 0x80 | (unsigned char) ((*uind >> 12) & 0x3F); *ind++ = 0x80 | (unsigned char) ((*uind >> 6) & 0x3F); *ind++ = 0x80 | (unsigned char) (*uind & 0x3F); len += 5; } else if (*uind <= 0x7FFFFFFF) /* 6 byte char */ { *ind++ = 0xFC | (unsigned char) ((*uind >> 30) & 0x01); *ind++ = 0x80 | (unsigned char) ((*uind >> 24) & 0x3F); *ind++ = 0x80 | (unsigned char) ((*uind >> 18) & 0x3F); *ind++ = 0x80 | (unsigned char) ((*uind >> 12) & 0x3F); *ind++ = 0x80 | (unsigned char) ((*uind >> 6) & 0x3F); *ind++ = 0x80 | (unsigned char) (*uind & 0x3F); len += 6; } else /* error */ { /* Do something */ } } buf = realloc(buf, len + 1); buf[len] = '\0'; if (_len) *_len = len; return buf; } eina-1.7.10/src/lib/eina_binbuf_template_c.x0000664000175000017500000001036112175475327015641 00000000000000/* * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 */ /* This file should be included from files implementing binbuf. * The including file should define the following macros: * _STRBUF_DATA_TYPE * _STRBUF_CSIZE * _STRBUF_STRUCT_NAME * _STRBUF_MAGIC * _STRBUF_MAGIC_STR * _FUNC_EXPAND * See how it's done in eina_ustrbuf.c and eina_strbuf.c. This just makes things * a lot easier since those are essentially the same just with different sizes. */ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the strbuf module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the strbuf module of Eina. It is called by * eina_init(). * * @see eina_init() */ Eina_Bool _FUNC_EXPAND(init)(void) { eina_magic_string_static_set(_STRBUF_MAGIC, _STRBUF_MAGIC_STR); return eina_strbuf_common_init(); } /** * @internal * @brief Shut down the strbuf module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the strbuf module set up by * eina_ustrbuf_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool _FUNC_EXPAND(shutdown)(void) { return eina_strbuf_common_shutdown(); } /*============================================================================* * API * *============================================================================*/ EAPI _STRBUF_STRUCT_NAME * _FUNC_EXPAND(new)(void) { _STRBUF_STRUCT_NAME *buf = eina_strbuf_common_new(_STRBUF_CSIZE); EINA_MAGIC_SET(buf, _STRBUF_MAGIC); return buf; } EAPI _STRBUF_STRUCT_NAME * _FUNC_EXPAND(manage_new_length)(_STRBUF_DATA_TYPE *str, size_t length) { _STRBUF_STRUCT_NAME *buf = eina_strbuf_common_manage_new(_STRBUF_CSIZE, (void *) str, length); EINA_MAGIC_SET(buf, _STRBUF_MAGIC); return buf; } EAPI void _FUNC_EXPAND(free)(_STRBUF_STRUCT_NAME *buf) { EINA_MAGIC_CHECK_STRBUF(buf); EINA_MAGIC_SET(buf, EINA_MAGIC_NONE); eina_strbuf_common_free(buf); } EAPI void _FUNC_EXPAND(reset)(_STRBUF_STRUCT_NAME *buf) { EINA_MAGIC_CHECK_STRBUF(buf); eina_strbuf_common_reset(_STRBUF_CSIZE, buf); } EAPI Eina_Bool _FUNC_EXPAND(append_length)(_STRBUF_STRUCT_NAME *buf, const _STRBUF_DATA_TYPE *str, size_t length) { EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE); return eina_strbuf_common_append_length(_STRBUF_CSIZE, buf, (const void *) str, length); } EAPI Eina_Bool _FUNC_EXPAND(insert_length)(_STRBUF_STRUCT_NAME *buf, const _STRBUF_DATA_TYPE *str, size_t length, size_t pos) { EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE); return eina_strbuf_common_insert_length(_STRBUF_CSIZE, buf, (const void *) str, length, pos); } EAPI Eina_Bool _FUNC_EXPAND(append_char)(_STRBUF_STRUCT_NAME *buf, _STRBUF_DATA_TYPE c) { EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE); return eina_strbuf_common_append_char(_STRBUF_CSIZE, buf, (const void *) &c); } EAPI Eina_Bool _FUNC_EXPAND(insert_char)(_STRBUF_STRUCT_NAME *buf, _STRBUF_DATA_TYPE c, size_t pos) { EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE); return eina_strbuf_common_insert_char(_STRBUF_CSIZE, buf, (const void *) &c, pos); } EAPI Eina_Bool _FUNC_EXPAND(remove)(_STRBUF_STRUCT_NAME *buf, size_t start, size_t end) { EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE); return eina_strbuf_common_remove(_STRBUF_CSIZE, buf, start, end); } EAPI const _STRBUF_DATA_TYPE * _FUNC_EXPAND(string_get)(const _STRBUF_STRUCT_NAME *buf) { EINA_MAGIC_CHECK_STRBUF(buf, NULL); return (const _STRBUF_DATA_TYPE *) eina_strbuf_common_string_get(buf); } EAPI _STRBUF_DATA_TYPE * _FUNC_EXPAND(string_steal)(_STRBUF_STRUCT_NAME *buf) { EINA_MAGIC_CHECK_STRBUF(buf, NULL); return (_STRBUF_DATA_TYPE *) eina_strbuf_common_string_steal(_STRBUF_CSIZE, buf); } EAPI void _FUNC_EXPAND(string_free)(_STRBUF_STRUCT_NAME *buf) { EINA_MAGIC_CHECK_STRBUF(buf); eina_strbuf_common_string_free(_STRBUF_CSIZE, buf); } EAPI size_t _FUNC_EXPAND(length_get)(const _STRBUF_STRUCT_NAME *buf) { EINA_MAGIC_CHECK_STRBUF(buf, 0); return eina_strbuf_common_length_get(buf); } eina-1.7.10/src/lib/eina_array.c0000664000175000017500000003104112175475327013266 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include "eina_config.h" #include "eina_private.h" #include "eina_error.h" #include "eina_log.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_array.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ static const char EINA_MAGIC_ARRAY_STR[] = "Eina Array"; static const char EINA_MAGIC_ARRAY_ITERATOR_STR[] = "Eina Array Iterator"; static const char EINA_MAGIC_ARRAY_ACCESSOR_STR[] = "Eina Array Accessor"; #define EINA_MAGIC_CHECK_ARRAY(d) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_ARRAY)) { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_ARRAY); } \ } while (0) #define EINA_MAGIC_CHECK_ARRAY_ITERATOR(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_ARRAY_ITERATOR)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_ARRAY_ITERATOR); \ return __VA_ARGS__; \ } \ } while (0) #define EINA_MAGIC_CHECK_ARRAY_ACCESSOR(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_ARRAY_ACCESSOR)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_ACCESSOR); \ return __VA_ARGS__; \ } \ } while (0) typedef struct _Eina_Iterator_Array Eina_Iterator_Array; struct _Eina_Iterator_Array { Eina_Iterator iterator; const Eina_Array *array; unsigned int index; EINA_MAGIC }; typedef struct _Eina_Accessor_Array Eina_Accessor_Array; struct _Eina_Accessor_Array { Eina_Accessor accessor; const Eina_Array *array; EINA_MAGIC }; static int _eina_array_log_dom = -1; #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_array_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_array_log_dom, __VA_ARGS__) static void eina_array_iterator_free(Eina_Iterator_Array *it) EINA_ARG_NONNULL(1); static Eina_Array *eina_array_iterator_get_container(Eina_Iterator_Array *it) EINA_ARG_NONNULL(1); static Eina_Bool eina_array_iterator_next(Eina_Iterator_Array *it, void **data) EINA_ARG_NONNULL(1); static Eina_Bool eina_array_accessor_get_at(Eina_Accessor_Array *it, unsigned int idx, void **data) EINA_ARG_NONNULL(1); static Eina_Array *eina_array_accessor_get_container(Eina_Accessor_Array *it) EINA_ARG_NONNULL(1); static void eina_array_accessor_free(Eina_Accessor_Array *it) EINA_ARG_NONNULL(1); static Eina_Bool eina_array_iterator_next(Eina_Iterator_Array *it, void **data) { EINA_MAGIC_CHECK_ARRAY_ITERATOR(it, EINA_FALSE); if (!(it->index < eina_array_count(it->array))) return EINA_FALSE; if (data) *data = eina_array_data_get(it->array, it->index); it->index++; return EINA_TRUE; } static Eina_Array * eina_array_iterator_get_container(Eina_Iterator_Array *it) { EINA_MAGIC_CHECK_ARRAY_ITERATOR(it, NULL); return (Eina_Array *)it->array; } static void eina_array_iterator_free(Eina_Iterator_Array *it) { EINA_MAGIC_CHECK_ARRAY_ITERATOR(it); MAGIC_FREE(it); } static Eina_Bool eina_array_accessor_get_at(Eina_Accessor_Array *it, unsigned int idx, void **data) { EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it, EINA_FALSE); if (!(idx < eina_array_count(it->array))) return EINA_FALSE; if (data) *data = eina_array_data_get(it->array, idx); return EINA_TRUE; } static Eina_Array * eina_array_accessor_get_container(Eina_Accessor_Array *it) { EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it, NULL); return (Eina_Array *)it->array; } static void eina_array_accessor_free(Eina_Accessor_Array *it) { EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it); MAGIC_FREE(it); } /* used from eina_inline_array.x, thus a needed symbol */ EAPI Eina_Bool eina_array_grow(Eina_Array *array) { void **tmp; unsigned int total; EINA_SAFETY_ON_NULL_RETURN_VAL(array, EINA_FALSE); EINA_MAGIC_CHECK_ARRAY(array); total = array->total + array->step; eina_error_set(0); tmp = realloc(array->data, sizeof (void *) * total); if (EINA_UNLIKELY(!tmp)) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return 0; } array->total = total; array->data = tmp; return 1; } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the array module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the error and magic modules or Eina. It is * called by eina_init(). * * @see eina_init() */ Eina_Bool eina_array_init(void) { _eina_array_log_dom = eina_log_domain_register("eina_array", EINA_LOG_COLOR_DEFAULT); if (_eina_array_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_array"); return EINA_FALSE; } #define EMS(n) eina_magic_string_static_set(n, n ## _STR) EMS(EINA_MAGIC_ARRAY); EMS(EINA_MAGIC_ARRAY_ITERATOR); EMS(EINA_MAGIC_ARRAY_ACCESSOR); #undef EMS return EINA_TRUE; } /** * @internal * @brief Shut down the array module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the array module set up by * eina_array_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_array_shutdown(void) { eina_log_domain_unregister(_eina_array_log_dom); _eina_array_log_dom = -1; return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI Eina_Array * eina_array_new(unsigned int step) { Eina_Array *array; eina_error_set(0); array = malloc(sizeof (Eina_Array)); if (!array) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } EINA_MAGIC_SET(array, EINA_MAGIC_ARRAY); array->version = EINA_ARRAY_VERSION; array->data = NULL; array->total = 0; array->count = 0; array->step = step; return array; } EAPI void eina_array_free(Eina_Array *array) { eina_array_flush(array); EINA_SAFETY_ON_NULL_RETURN(array); EINA_MAGIC_CHECK_ARRAY(array); MAGIC_FREE(array); } EAPI void eina_array_step_set(Eina_Array *array, unsigned int sizeof_eina_array, unsigned int step) { EINA_SAFETY_ON_NULL_RETURN(array); if (sizeof (Eina_Array) != sizeof_eina_array) { ERR("Unknow Eina_Array size ! Got %i, expected %i !\n", sizeof_eina_array, (int) sizeof (Eina_Array)); /* Force memory to zero to provide a small layer of security */ memset(array, 0, sizeof_eina_array); return ; } array->version = EINA_ARRAY_VERSION; array->data = NULL; array->total = 0; array->count = 0; array->step = step; EINA_MAGIC_SET(array, EINA_MAGIC_ARRAY); } EAPI void eina_array_flush(Eina_Array *array) { EINA_SAFETY_ON_NULL_RETURN(array); EINA_MAGIC_CHECK_ARRAY(array); array->count = 0; array->total = 0; if (!array->data) return; free(array->data); array->data = NULL; } EAPI Eina_Bool eina_array_remove(Eina_Array *array, Eina_Bool (*keep)(void *data, void *gdata), void *gdata) { void **tmp; /* WARNING: The algorithm does exit before using unitialized data. So compiler is giving you a false positiv here too. */ void *data = NULL; unsigned int total = 0; unsigned int limit; unsigned int i; EINA_SAFETY_ON_NULL_RETURN_VAL(array, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(keep, EINA_FALSE); EINA_MAGIC_CHECK_ARRAY(array); if (array->total == 0) return EINA_TRUE; for (i = 0; i < array->count; ++i) { data = eina_array_data_get(array, i); if (keep(data, gdata) == EINA_FALSE) break; } limit = i; if (i < array->count) ++i; for (; i < array->count; ++i) { data = eina_array_data_get(array, i); if (keep(data, gdata) == EINA_TRUE) break; } /* Special case all objects that need to stay are at the beginning of the array. */ if (i == array->count) { array->count = limit; if (array->count == 0) { free(array->data); array->total = 0; array->data = NULL; } return EINA_TRUE; } eina_error_set(0); tmp = malloc(sizeof (void *) * array->total); if (!tmp) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } memcpy(tmp, array->data, limit * sizeof(void *)); total = limit; if (i < array->count) { tmp[total] = data; total++; ++i; } for (; i < array->count; ++i) { data = eina_array_data_get(array, i); if (keep(data, gdata)) { tmp[total] = data; total++; } } free(array->data); /* If we do not keep any object in the array, we should have exited earlier in test (i == array->count). */ assert(total != 0); array->data = tmp; array->count = total; return EINA_TRUE; } EAPI Eina_Iterator * eina_array_iterator_new(const Eina_Array *array) { Eina_Iterator_Array *it; EINA_SAFETY_ON_NULL_RETURN_VAL(array, NULL); EINA_MAGIC_CHECK_ARRAY(array); eina_error_set(0); it = calloc(1, sizeof (Eina_Iterator_Array)); if (!it) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } EINA_MAGIC_SET(it, EINA_MAGIC_ARRAY_ITERATOR); EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR); it->array = array; it->iterator.version = EINA_ITERATOR_VERSION; it->iterator.next = FUNC_ITERATOR_NEXT(eina_array_iterator_next); it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER( eina_array_iterator_get_container); it->iterator.free = FUNC_ITERATOR_FREE(eina_array_iterator_free); return &it->iterator; } EAPI Eina_Accessor * eina_array_accessor_new(const Eina_Array *array) { Eina_Accessor_Array *ac; EINA_SAFETY_ON_NULL_RETURN_VAL(array, NULL); EINA_MAGIC_CHECK_ARRAY(array); eina_error_set(0); ac = calloc(1, sizeof (Eina_Accessor_Array)); if (!ac) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } EINA_MAGIC_SET(ac, EINA_MAGIC_ARRAY_ACCESSOR); EINA_MAGIC_SET(&ac->accessor, EINA_MAGIC_ACCESSOR); ac->array = array; ac->accessor.version = EINA_ACCESSOR_VERSION; ac->accessor.get_at = FUNC_ACCESSOR_GET_AT(eina_array_accessor_get_at); ac->accessor.get_container = FUNC_ACCESSOR_GET_CONTAINER( eina_array_accessor_get_container); ac->accessor.free = FUNC_ACCESSOR_FREE(eina_array_accessor_free); return &ac->accessor; } eina-1.7.10/src/lib/eina_binbuf.c0000664000175000017500000000232112175475327013414 00000000000000#ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #ifdef HAVE_EVIL # include #endif #include "eina_private.h" #include "eina_strbuf_common.h" #include "eina_binbuf.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ #ifdef _STRBUF_DATA_TYPE # undef _STRBUF_DATA_TYPE #endif #ifdef _STRBUF_CSIZE # undef _STRBUF_CSIZE #endif #ifdef _STRBUF_STRUCT_NAME # undef _STRBUF_STRUCT_NAME #endif #ifdef _STRBUF_MAGIC # undef _STRBUF_MAGIC #endif #ifdef _STRBUF_MAGIC_STR # undef _STRBUF_MAGIC_STR #endif #ifdef _FUNC_EXPAND # undef _FUNC_EXPAND #endif #define _STRBUF_DATA_TYPE unsigned char #define _STRBUF_CSIZE sizeof(_STRBUF_DATA_TYPE) #define _STRBUF_STRUCT_NAME Eina_Binbuf #define _STRBUF_MAGIC EINA_MAGIC_BINBUF #define _STRBUF_MAGIC_STR __BINBUF_MAGIC_STR static const char __BINBUF_MAGIC_STR[] = "Eina Binbuf"; #define _FUNC_EXPAND(y) eina_binbuf_ ## y #include "eina_binbuf_template_c.x" /** * @endcond */ eina-1.7.10/src/lib/eina_hamster.c0000664000175000017500000000677112175475327013627 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "eina_config.h" #include "eina_types.h" #include "eina_hamster.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ const char *_eina_hamster_time = __TIME__; const char *_eina_hamster_date = __DATE__; static int _eina_hamsters = -1; /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /*============================================================================* * API * *============================================================================*/ EAPI int eina_hamster_count(void) { if (_eina_hamsters < 0) { int hrs = 0, min = 0, sec = 0; char mon[8] = ""; int monnum = 0, day = 0, year = 0; int fields; fields = sscanf(_eina_hamster_time, "%02d:%02d:%02d", &hrs, &min, &sec); if (fields == 3) { _eina_hamsters = (hrs * 60) + min; fields = sscanf(_eina_hamster_date, "%s %d %d", mon, &day, &year); if (fields == 3) { int i; const char *mons[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; for (i = 0; i < 12; i++) { if (!strcmp(mon, mons[i])) { monnum = i + 1; break; } } // alloc 60 for mins, 24 for hrs // alloc 1-31 (32) for days, 1-12 (13) for months // use year as-is, for 31 bits (signed) this gives us up to // 3584 years, which is good enough imho. - 1500 years from // now or so. :) _eina_hamsters += (day + (monnum * 32) + (13 * 32 * year)) * (24 * 60); } } } // format: [rest - year][0-12 - month][0-31 - day][0-23 - hrs][0-59 - sec] return _eina_hamsters; } /** * @} */ eina-1.7.10/src/lib/eina_fp.c0000664000175000017500000005610412175475327012564 00000000000000#ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "eina_types.h" #include "eina_fp.h" #define MAX_PREC 1025 static const Eina_F32p32 eina_trigo[MAX_PREC] = { 0x0000000100000000, 0x00000000ffffec43, 0x00000000ffffb10b, 0x00000000ffff4e5a, 0x00000000fffec42e, 0x00000000fffe1287, 0x00000000fffd3967, 0x00000000fffc38cd, 0x00000000fffb10b9, 0x00000000fff9c12c, 0x00000000fff84a25, 0x00000000fff6aba5, 0x00000000fff4e5ac, 0x00000000fff2f83b, 0x00000000fff0e351, 0x00000000ffeea6ef, 0x00000000ffec4316, 0x00000000ffe9b7c5, 0x00000000ffe704fe, 0x00000000ffe42ac0, 0x00000000ffe1290b, 0x00000000ffddffe2, 0x00000000ffdaaf43, 0x00000000ffd7372f, 0x00000000ffd397a8, 0x00000000ffcfd0ad, 0x00000000ffcbe23f, 0x00000000ffc7cc5f, 0x00000000ffc38f0d, 0x00000000ffbf2a4b, 0x00000000ffba9e17, 0x00000000ffb5ea75, 0x00000000ffb10f63, 0x00000000ffac0ce3, 0x00000000ffa6e2f6, 0x00000000ffa1919c, 0x00000000ff9c18d6, 0x00000000ff9678a6, 0x00000000ff90b10b, 0x00000000ff8ac208, 0x00000000ff84ab9c, 0x00000000ff7e6dc8, 0x00000000ff78088f, 0x00000000ff717bf0, 0x00000000ff6ac7ec, 0x00000000ff63ec85, 0x00000000ff5ce9bc, 0x00000000ff55bf92, 0x00000000ff4e6e08, 0x00000000ff46f51f, 0x00000000ff3f54d8, 0x00000000ff378d34, 0x00000000ff2f9e35, 0x00000000ff2787dc, 0x00000000ff1f4a2a, 0x00000000ff16e520, 0x00000000ff0e58c0, 0x00000000ff05a50a, 0x00000000fefcca01, 0x00000000fef3c7a6, 0x00000000feea9df9, 0x00000000fee14cfe, 0x00000000fed7d4b3, 0x00000000fece351d, 0x00000000fec46e3b, 0x00000000feba800f, 0x00000000feb06a9c, 0x00000000fea62de1, 0x00000000fe9bc9e2, 0x00000000fe913e9f, 0x00000000fe868c1b, 0x00000000fe7bb256, 0x00000000fe70b153, 0x00000000fe658913, 0x00000000fe5a3998, 0x00000000fe4ec2e4, 0x00000000fe4324f9, 0x00000000fe375fd7, 0x00000000fe2b7382, 0x00000000fe1f5ffa, 0x00000000fe132543, 0x00000000fe06c35d, 0x00000000fdfa3a4b, 0x00000000fded8a0e, 0x00000000fde0b2a8, 0x00000000fdd3b41c, 0x00000000fdc68e6c, 0x00000000fdb94199, 0x00000000fdabcda5, 0x00000000fd9e3294, 0x00000000fd907065, 0x00000000fd82871d, 0x00000000fd7476bd, 0x00000000fd663f46, 0x00000000fd57e0bd, 0x00000000fd495b21, 0x00000000fd3aae77, 0x00000000fd2bdabf, 0x00000000fd1cdffd, 0x00000000fd0dbe32, 0x00000000fcfe7562, 0x00000000fcef058e, 0x00000000fcdf6eb8, 0x00000000fccfb0e4, 0x00000000fcbfcc13, 0x00000000fcafc048, 0x00000000fc9f8d86, 0x00000000fc8f33ce, 0x00000000fc7eb325, 0x00000000fc6e0b8b, 0x00000000fc5d3d03, 0x00000000fc4c4791, 0x00000000fc3b2b37, 0x00000000fc29e7f7, 0x00000000fc187dd5, 0x00000000fc06ecd2, 0x00000000fbf534f2, 0x00000000fbe35637, 0x00000000fbd150a3, 0x00000000fbbf243b, 0x00000000fbacd100, 0x00000000fb9a56f6, 0x00000000fb87b61f, 0x00000000fb74ee7e, 0x00000000fb620016, 0x00000000fb4eeaea, 0x00000000fb3baefd, 0x00000000fb284c52, 0x00000000fb14c2eb, 0x00000000fb0112cd, 0x00000000faed3bf9, 0x00000000fad93e73, 0x00000000fac51a3f, 0x00000000fab0cf5e, 0x00000000fa9c5dd5, 0x00000000fa87c5a6, 0x00000000fa7306d5, 0x00000000fa5e2164, 0x00000000fa491558, 0x00000000fa33e2b3, 0x00000000fa1e8978, 0x00000000fa0909ab, 0x00000000f9f36350, 0x00000000f9dd9668, 0x00000000f9c7a2f9, 0x00000000f9b18905, 0x00000000f99b488f, 0x00000000f984e19c, 0x00000000f96e542e, 0x00000000f957a049, 0x00000000f940c5f1, 0x00000000f929c528, 0x00000000f9129df3, 0x00000000f8fb5056, 0x00000000f8e3dc53, 0x00000000f8cc41ee, 0x00000000f8b4812b, 0x00000000f89c9a0e, 0x00000000f8848c9b, 0x00000000f86c58d4, 0x00000000f853febe, 0x00000000f83b7e5d, 0x00000000f822d7b4, 0x00000000f80a0ac7, 0x00000000f7f1179a, 0x00000000f7d7fe31, 0x00000000f7bebe90, 0x00000000f7a558ba, 0x00000000f78bccb3, 0x00000000f7721a80, 0x00000000f7584225, 0x00000000f73e43a5, 0x00000000f7241f04, 0x00000000f709d446, 0x00000000f6ef6370, 0x00000000f6d4cc85, 0x00000000f6ba0f8a, 0x00000000f69f2c83, 0x00000000f6842374, 0x00000000f668f461, 0x00000000f64d9f4e, 0x00000000f632243f, 0x00000000f616833a, 0x00000000f5fabc41, 0x00000000f5decf59, 0x00000000f5c2bc87, 0x00000000f5a683cf, 0x00000000f58a2535, 0x00000000f56da0be, 0x00000000f550f66e, 0x00000000f5342649, 0x00000000f5173054, 0x00000000f4fa1494, 0x00000000f4dcd30c, 0x00000000f4bf6bc2, 0x00000000f4a1deb9, 0x00000000f4842bf7, 0x00000000f4665380, 0x00000000f4485559, 0x00000000f42a3186, 0x00000000f40be80c, 0x00000000f3ed78ef, 0x00000000f3cee434, 0x00000000f3b029e1, 0x00000000f39149f9, 0x00000000f3724482, 0x00000000f3531980, 0x00000000f333c8f8, 0x00000000f31452ef, 0x00000000f2f4b76a, 0x00000000f2d4f66d, 0x00000000f2b50ffe, 0x00000000f2950421, 0x00000000f274d2dc, 0x00000000f2547c33, 0x00000000f234002b, 0x00000000f2135eca, 0x00000000f1f29814, 0x00000000f1d1ac0e, 0x00000000f1b09abe, 0x00000000f18f6429, 0x00000000f16e0853, 0x00000000f14c8742, 0x00000000f12ae0fb, 0x00000000f1091583, 0x00000000f0e724e0, 0x00000000f0c50f17, 0x00000000f0a2d42c, 0x00000000f0807426, 0x00000000f05def09, 0x00000000f03b44db, 0x00000000f01875a1, 0x00000000eff58161, 0x00000000efd2681f, 0x00000000efaf29e2, 0x00000000ef8bc6af, 0x00000000ef683e8b, 0x00000000ef44917b, 0x00000000ef20bf86, 0x00000000eefcc8b1, 0x00000000eed8ad01, 0x00000000eeb46c7b, 0x00000000ee900727, 0x00000000ee6b7d08, 0x00000000ee46ce25, 0x00000000ee21fa83, 0x00000000edfd0228, 0x00000000edd7e51a, 0x00000000edb2a35f, 0x00000000ed8d3cfc, 0x00000000ed67b1f6, 0x00000000ed420255, 0x00000000ed1c2e1d, 0x00000000ecf63554, 0x00000000ecd01801, 0x00000000eca9d628, 0x00000000ec836fd1, 0x00000000ec5ce501, 0x00000000ec3635bd, 0x00000000ec0f620d, 0x00000000ebe869f5, 0x00000000ebc14d7d, 0x00000000eb9a0ca9, 0x00000000eb72a780, 0x00000000eb4b1e08, 0x00000000eb237047, 0x00000000eafb9e43, 0x00000000ead3a803, 0x00000000eaab8d8d, 0x00000000ea834ee6, 0x00000000ea5aec15, 0x00000000ea326520, 0x00000000ea09ba0d, 0x00000000e9e0eae4, 0x00000000e9b7f7a9, 0x00000000e98ee063, 0x00000000e965a51a, 0x00000000e93c45d2, 0x00000000e912c292, 0x00000000e8e91b61, 0x00000000e8bf5046, 0x00000000e8956146, 0x00000000e86b4e68, 0x00000000e84117b3, 0x00000000e816bd2d, 0x00000000e7ec3edc, 0x00000000e7c19cc8, 0x00000000e796d6f6, 0x00000000e76bed6e, 0x00000000e740e036, 0x00000000e715af54, 0x00000000e6ea5ad0, 0x00000000e6bee2af, 0x00000000e69346f9, 0x00000000e66787b5, 0x00000000e63ba4e9, 0x00000000e60f9e9b, 0x00000000e5e374d4, 0x00000000e5b72798, 0x00000000e58ab6f1, 0x00000000e55e22e3, 0x00000000e5316b76, 0x00000000e50490b1, 0x00000000e4d7929c, 0x00000000e4aa713c, 0x00000000e47d2c98, 0x00000000e44fc4b9, 0x00000000e42239a4, 0x00000000e3f48b61, 0x00000000e3c6b9f7, 0x00000000e398c56c, 0x00000000e36aadc9, 0x00000000e33c7314, 0x00000000e30e1554, 0x00000000e2df9490, 0x00000000e2b0f0d0, 0x00000000e2822a1a, 0x00000000e2534077, 0x00000000e22433ec, 0x00000000e1f50482, 0x00000000e1c5b240, 0x00000000e1963d2d, 0x00000000e166a550, 0x00000000e136eab0, 0x00000000e1070d56, 0x00000000e0d70d48, 0x00000000e0a6ea8e, 0x00000000e076a52f, 0x00000000e0463d33, 0x00000000e015b2a1, 0x00000000dfe50580, 0x00000000dfb435d9, 0x00000000df8343b2, 0x00000000df522f13, 0x00000000df20f804, 0x00000000deef9e8d, 0x00000000debe22b5, 0x00000000de8c8483, 0x00000000de5ac3ff, 0x00000000de28e131, 0x00000000ddf6dc21, 0x00000000ddc4b4d6, 0x00000000dd926b59, 0x00000000dd5fffb0, 0x00000000dd2d71e3, 0x00000000dcfac1fb, 0x00000000dcc7f000, 0x00000000dc94fbf8, 0x00000000dc61e5ec, 0x00000000dc2eade4, 0x00000000dbfb53e8, 0x00000000dbc7d7ff, 0x00000000db943a31, 0x00000000db607a88, 0x00000000db2c9909, 0x00000000daf895bf, 0x00000000dac470af, 0x00000000da9029e3, 0x00000000da5bc163, 0x00000000da273737, 0x00000000d9f28b66, 0x00000000d9bdbdf9, 0x00000000d988cef8, 0x00000000d953be6b, 0x00000000d91e8c5b, 0x00000000d8e938d0, 0x00000000d8b3c3d1, 0x00000000d87e2d67, 0x00000000d848759b, 0x00000000d8129c74, 0x00000000d7dca1fb, 0x00000000d7a68638, 0x00000000d7704934, 0x00000000d739eaf7, 0x00000000d7036b89, 0x00000000d6cccaf3, 0x00000000d696093d, 0x00000000d65f266f, 0x00000000d6282293, 0x00000000d5f0fdb0, 0x00000000d5b9b7d0, 0x00000000d58250fa, 0x00000000d54ac937, 0x00000000d513208f, 0x00000000d4db570c, 0x00000000d4a36cb6, 0x00000000d46b6195, 0x00000000d43335b3, 0x00000000d3fae917, 0x00000000d3c27bcb, 0x00000000d389edd7, 0x00000000d3513f43, 0x00000000d318701a, 0x00000000d2df8063, 0x00000000d2a67027, 0x00000000d26d3f6f, 0x00000000d233ee43, 0x00000000d1fa7cae, 0x00000000d1c0eab7, 0x00000000d1873867, 0x00000000d14d65c8, 0x00000000d11372e1, 0x00000000d0d95fbd, 0x00000000d09f2c64, 0x00000000d064d8df, 0x00000000d02a6537, 0x00000000cfefd176, 0x00000000cfb51da3, 0x00000000cf7a49c8, 0x00000000cf3f55ef, 0x00000000cf044220, 0x00000000cec90e64, 0x00000000ce8dbac5, 0x00000000ce52474c, 0x00000000ce16b401, 0x00000000cddb00ef, 0x00000000cd9f2e1e, 0x00000000cd633b97, 0x00000000cd272964, 0x00000000cceaf78e, 0x00000000ccaea61e, 0x00000000cc72351e, 0x00000000cc35a497, 0x00000000cbf8f492, 0x00000000cbbc2519, 0x00000000cb7f3634, 0x00000000cb4227ee, 0x00000000cb04fa50, 0x00000000cac7ad63, 0x00000000ca8a4131, 0x00000000ca4cb5c3, 0x00000000ca0f0b22, 0x00000000c9d14159, 0x00000000c9935870, 0x00000000c9555072, 0x00000000c9172967, 0x00000000c8d8e35a, 0x00000000c89a7e53, 0x00000000c85bfa5e, 0x00000000c81d5782, 0x00000000c7de95cb, 0x00000000c79fb541, 0x00000000c760b5ee, 0x00000000c72197dc, 0x00000000c6e25b15, 0x00000000c6a2ffa3, 0x00000000c663858f, 0x00000000c623ece2, 0x00000000c5e435a8, 0x00000000c5a45fe9, 0x00000000c5646bb0, 0x00000000c5245906, 0x00000000c4e427f6, 0x00000000c4a3d888, 0x00000000c4636ac8, 0x00000000c422debf, 0x00000000c3e23476, 0x00000000c3a16bf9, 0x00000000c3608550, 0x00000000c31f8087, 0x00000000c2de5da6, 0x00000000c29d1cb8, 0x00000000c25bbdc8, 0x00000000c21a40de, 0x00000000c1d8a606, 0x00000000c196ed49, 0x00000000c15516b2, 0x00000000c113224a, 0x00000000c0d1101d, 0x00000000c08ee033, 0x00000000c04c9297, 0x00000000c00a2754, 0x00000000bfc79e73, 0x00000000bf84f800, 0x00000000bf423404, 0x00000000beff5289, 0x00000000bebc539a, 0x00000000be793741, 0x00000000be35fd89, 0x00000000bdf2a67b, 0x00000000bdaf3223, 0x00000000bd6ba08b, 0x00000000bd27f1bc, 0x00000000bce425c2, 0x00000000bca03ca7, 0x00000000bc5c3676, 0x00000000bc181338, 0x00000000bbd3d2f9, 0x00000000bb8f75c3, 0x00000000bb4afba1, 0x00000000bb06649c, 0x00000000bac1b0c0, 0x00000000ba7ce018, 0x00000000ba37f2ad, 0x00000000b9f2e88b, 0x00000000b9adc1bc, 0x00000000b9687e4a, 0x00000000b9231e41, 0x00000000b8dda1ac, 0x00000000b8980894, 0x00000000b8525305, 0x00000000b80c8109, 0x00000000b7c692ac, 0x00000000b78087f7, 0x00000000b73a60f6, 0x00000000b6f41db4, 0x00000000b6adbe3a, 0x00000000b6674296, 0x00000000b620aad0, 0x00000000b5d9f6f4, 0x00000000b593270e, 0x00000000b54c3b27, 0x00000000b505334a, 0x00000000b4be0f84, 0x00000000b476cfde, 0x00000000b42f7464, 0x00000000b3e7fd20, 0x00000000b3a06a1e, 0x00000000b358bb69, 0x00000000b310f10c, 0x00000000b2c90b11, 0x00000000b2810985, 0x00000000b238ec71, 0x00000000b1f0b3e2, 0x00000000b1a85fe2, 0x00000000b15ff07c, 0x00000000b11765bc, 0x00000000b0cebfad, 0x00000000b085fe5a, 0x00000000b03d21ce, 0x00000000aff42a15, 0x00000000afab1739, 0x00000000af61e946, 0x00000000af18a048, 0x00000000aecf3c49, 0x00000000ae85bd55, 0x00000000ae3c2377, 0x00000000adf26ebb, 0x00000000ada89f2c, 0x00000000ad5eb4d5, 0x00000000ad14afc2, 0x00000000acca8ffd, 0x00000000ac805594, 0x00000000ac360090, 0x00000000abeb90fe, 0x00000000aba106e9, 0x00000000ab56625d, 0x00000000ab0ba364, 0x00000000aac0ca0b, 0x00000000aa75d65d, 0x00000000aa2ac865, 0x00000000a9dfa030, 0x00000000a9945dc9, 0x00000000a949013a, 0x00000000a8fd8a91, 0x00000000a8b1f9d8, 0x00000000a8664f1c, 0x00000000a81a8a68, 0x00000000a7ceabc7, 0x00000000a782b345, 0x00000000a736a0ef, 0x00000000a6ea74cf, 0x00000000a69e2ef2, 0x00000000a651cf63, 0x00000000a605562f, 0x00000000a5b8c360, 0x00000000a56c1702, 0x00000000a51f5123, 0x00000000a4d271cc, 0x00000000a485790b, 0x00000000a43866eb, 0x00000000a3eb3b77, 0x00000000a39df6bd, 0x00000000a35098c7, 0x00000000a30321a2, 0x00000000a2b5915a, 0x00000000a267e7fa, 0x00000000a21a258e, 0x00000000a1cc4a24, 0x00000000a17e55c5, 0x00000000a1304880, 0x00000000a0e2225f, 0x00000000a093e36f, 0x00000000a0458bbb, 0x000000009ff71b50, 0x000000009fa8923a, 0x000000009f59f086, 0x000000009f0b363e, 0x000000009ebc6370, 0x000000009e6d7827, 0x000000009e1e746f, 0x000000009dcf5856, 0x000000009d8023e6, 0x000000009d30d72d, 0x000000009ce17236, 0x000000009c91f50e, 0x000000009c425fc1, 0x000000009bf2b25b, 0x000000009ba2ece8, 0x000000009b530f76, 0x000000009b031a0f, 0x000000009ab30cc1, 0x000000009a62e797, 0x000000009a12aa9f, 0x0000000099c255e5, 0x000000009971e974, 0x000000009921655a, 0x0000000098d0c9a2, 0x0000000098801659, 0x00000000982f4b8d, 0x0000000097de6948, 0x00000000978d6f97, 0x00000000973c5e88, 0x0000000096eb3626, 0x000000009699f67f, 0x0000000096489f9e, 0x0000000095f73190, 0x0000000095a5ac61, 0x000000009554101f, 0x0000000095025cd6, 0x0000000094b09292, 0x00000000945eb161, 0x00000000940cb94e, 0x0000000093baaa66, 0x00000000936884b6, 0x000000009316484b, 0x0000000092c3f531, 0x0000000092718b75, 0x00000000921f0b24, 0x0000000091cc744b, 0x000000009179c6f5, 0x0000000091270331, 0x0000000090d4290a, 0x000000009081388e, 0x00000000902e31c8, 0x000000008fdb14c7, 0x000000008f87e197, 0x000000008f349845, 0x000000008ee138dd, 0x000000008e8dc36c, 0x000000008e3a3800, 0x000000008de696a5, 0x000000008d92df68, 0x000000008d3f1256, 0x000000008ceb2f7c, 0x000000008c9736e7, 0x000000008c4328a3, 0x000000008bef04bf, 0x000000008b9acb46, 0x000000008b467c45, 0x000000008af217cb, 0x000000008a9d9de3, 0x000000008a490e9b, 0x0000000089f469ff, 0x00000000899fb01e, 0x00000000894ae103, 0x0000000088f5fcbc, 0x0000000088a10357, 0x00000000884bf4df, 0x0000000087f6d163, 0x0000000087a198f0, 0x00000000874c4b92, 0x0000000086f6e956, 0x0000000086a1724b, 0x00000000864be67c, 0x0000000085f645f8, 0x0000000085a090cc, 0x00000000854ac704, 0x0000000084f4e8ad, 0x00000000849ef5d7, 0x000000008448ee8c, 0x0000000083f2d2db, 0x00000000839ca2d1, 0x0000000083465e7c, 0x0000000082f005e8, 0x0000000082999922, 0x0000000082431839, 0x0000000081ec833a, 0x000000008195da31, 0x00000000813f1d2d, 0x0000000080e84c3a, 0x0000000080916766, 0x00000000803a6ebf, 0x000000007fe36251, 0x000000007f8c422b, 0x000000007f350e59, 0x000000007eddc6ea, 0x000000007e866bea, 0x000000007e2efd67, 0x000000007dd77b6f, 0x000000007d7fe60f, 0x000000007d283d54, 0x000000007cd0814c, 0x000000007c78b205, 0x000000007c20cf8c, 0x000000007bc8d9ef, 0x000000007b70d13b, 0x000000007b18b57e, 0x000000007ac086c5, 0x000000007a68451f, 0x000000007a0ff098, 0x0000000079b7893e, 0x00000000795f0f1f, 0x0000000079068248, 0x0000000078ade2c8, 0x00000000785530ab, 0x0000000077fc6c01, 0x0000000077a394d5, 0x00000000774aab36, 0x0000000076f1af32, 0x000000007698a0d6, 0x00000000763f8030, 0x0000000075e64d4e, 0x00000000758d083e, 0x000000007533b10d, 0x0000000074da47c9, 0x000000007480cc80, 0x0000000074273f3f, 0x0000000073cda016, 0x000000007373ef10, 0x00000000731a2c3d, 0x0000000072c057aa, 0x0000000072667164, 0x00000000720c797a, 0x0000000071b26ffa, 0x00000000715854f2, 0x0000000070fe286e, 0x0000000070a3ea7e, 0x0000000070499b30, 0x000000006fef3a90, 0x000000006f94c8ae, 0x000000006f3a4596, 0x000000006edfb157, 0x000000006e850c00, 0x000000006e2a559d, 0x000000006dcf8e3d, 0x000000006d74b5ee, 0x000000006d19ccbe, 0x000000006cbed2bb, 0x000000006c63c7f3, 0x000000006c08ac74, 0x000000006bad804c, 0x000000006b524389, 0x000000006af6f639, 0x000000006a9b986b, 0x000000006a402a2c, 0x0000000069e4ab8a, 0x0000000069891c94, 0x00000000692d7d57, 0x0000000068d1cde3, 0x0000000068760e44, 0x00000000681a3e89, 0x0000000067be5ec1, 0x0000000067626ef9, 0x0000000067066f40, 0x0000000066aa5fa3, 0x00000000664e4032, 0x0000000065f210f9, 0x000000006595d209, 0x000000006539836d, 0x0000000064dd2536, 0x000000006480b770, 0x0000000064243a2b, 0x0000000063c7ad75, 0x00000000636b115c, 0x00000000630e65ed, 0x0000000062b1ab39, 0x000000006254e14c, 0x0000000061f80835, 0x00000000619b2002, 0x00000000613e28c2, 0x0000000060e12283, 0x0000000060840d54, 0x000000006026e943, 0x000000005fc9b65d, 0x000000005f6c74b2, 0x000000005f0f2450, 0x000000005eb1c545, 0x000000005e5457a0, 0x000000005df6db6f, 0x000000005d9950c0, 0x000000005d3bb7a3, 0x000000005cde1024, 0x000000005c805a54, 0x000000005c22963f, 0x000000005bc4c3f6, 0x000000005b66e385, 0x000000005b08f4fd, 0x000000005aaaf86a, 0x000000005a4ceddc, 0x0000000059eed561, 0x000000005990af08, 0x0000000059327adf, 0x0000000058d438f4, 0x000000005875e957, 0x0000000058178c16, 0x0000000057b9213f, 0x00000000575aa8e0, 0x0000000056fc230a, 0x00000000569d8fc9, 0x00000000563eef2d, 0x0000000055e04144, 0x000000005581861d, 0x000000005522bdc6, 0x0000000054c3e84e, 0x00000000546505c4, 0x0000000054061636, 0x0000000053a719b3, 0x000000005348104a, 0x0000000052e8fa09, 0x000000005289d6ff, 0x00000000522aa73a, 0x0000000051cb6aca, 0x00000000516c21bc, 0x00000000510ccc20, 0x0000000050ad6a05, 0x00000000504dfb78, 0x000000004fee808a, 0x000000004f8ef947, 0x000000004f2f65c0, 0x000000004ecfc603, 0x000000004e701a1f, 0x000000004e106222, 0x000000004db09e1b, 0x000000004d50ce19, 0x000000004cf0f22b, 0x000000004c910a5f, 0x000000004c3116c5, 0x000000004bd1176b, 0x000000004b710c5f, 0x000000004b10f5b2, 0x000000004ab0d371, 0x000000004a50a5ab, 0x0000000049f06c70, 0x00000000499027cd, 0x00000000492fd7d3, 0x0000000048cf7c8f, 0x00000000486f1611, 0x00000000480ea467, 0x0000000047ae27a1, 0x00000000474d9fcd, 0x0000000046ed0cfa, 0x00000000468c6f37, 0x00000000462bc693, 0x0000000045cb131c, 0x00000000456a54e3, 0x0000000045098bf5, 0x0000000044a8b861, 0x000000004447da37, 0x0000000043e6f186, 0x000000004385fe5c, 0x00000000432500c8, 0x0000000042c3f8d9, 0x000000004262e69f, 0x000000004201ca28, 0x0000000041a0a383, 0x00000000413f72bf, 0x0000000040de37eb, 0x00000000407cf317, 0x00000000401ba450, 0x000000003fba4ba7, 0x000000003f58e92a, 0x000000003ef77ce8, 0x000000003e9606f1, 0x000000003e348752, 0x000000003dd2fe1c, 0x000000003d716b5e, 0x000000003d0fcf25, 0x000000003cae2982, 0x000000003c4c7a83, 0x000000003beac238, 0x000000003b8900b0, 0x000000003b2735f9, 0x000000003ac56223, 0x000000003a63853d, 0x000000003a019f56, 0x00000000399fb07d, 0x00000000393db8c1, 0x0000000038dbb831, 0x000000003879aedd, 0x0000000038179cd3, 0x0000000037b58222, 0x0000000037535edb, 0x0000000036f1330b, 0x00000000368efec2, 0x00000000362cc20f, 0x0000000035ca7d02, 0x0000000035682fa9, 0x000000003505da14, 0x0000000034a37c51, 0x0000000034411671, 0x0000000033dea881, 0x00000000337c3292, 0x000000003319b4b3, 0x0000000032b72ef2, 0x000000003254a15e, 0x0000000031f20c08, 0x00000000318f6efe, 0x00000000312cca50, 0x0000000030ca1e0c, 0x0000000030676a43, 0x000000003004af02, 0x000000002fa1ec5a, 0x000000002f3f2259, 0x000000002edc510f, 0x000000002e79788b, 0x000000002e1698dc, 0x000000002db3b212, 0x000000002d50c43c, 0x000000002cedcf68, 0x000000002c8ad3a7, 0x000000002c27d108, 0x000000002bc4c799, 0x000000002b61b76b, 0x000000002afea08c, 0x000000002a9b830b, 0x000000002a385ef9, 0x0000000029d53464, 0x000000002972035b, 0x00000000290ecbee, 0x0000000028ab8e2c, 0x0000000028484a25, 0x0000000027e4ffe7, 0x000000002781af83, 0x00000000271e5906, 0x0000000026bafc82, 0x0000000026579a04, 0x0000000025f4319d, 0x000000002590c35c, 0x00000000252d4f4f, 0x0000000024c9d587, 0x0000000024665613, 0x000000002402d101, 0x00000000239f4662, 0x00000000233bb644, 0x0000000022d820b8, 0x00000000227485cc, 0x000000002210e590, 0x0000000021ad4013, 0x0000000021499565, 0x0000000020e5e594, 0x00000000208230b1, 0x00000000201e76ca, 0x000000001fbab7ef, 0x000000001f56f430, 0x000000001ef32b9b, 0x000000001e8f5e41, 0x000000001e2b8c30, 0x000000001dc7b578, 0x000000001d63da29, 0x000000001cfffa51, 0x000000001c9c1600, 0x000000001c382d46, 0x000000001bd44032, 0x000000001b704ed3, 0x000000001b0c5939, 0x000000001aa85f74, 0x000000001a446191, 0x0000000019e05fa2, 0x00000000197c59b5, 0x0000000019184fdb, 0x0000000018b44221, 0x0000000018503098, 0x0000000017ec1b50, 0x0000000017880257, 0x000000001723e5bd, 0x0000000016bfc591, 0x00000000165ba1e4, 0x0000000015f77ac3, 0x0000000015935040, 0x00000000152f2269, 0x0000000014caf14d, 0x000000001466bcfd, 0x0000000014028587, 0x00000000139e4afb, 0x00000000133a0d69, 0x0000000012d5cce0, 0x000000001271896f, 0x00000000120d4326, 0x0000000011a8fa15, 0x000000001144ae4a, 0x0000000010e05fd6, 0x00000000107c0ec7, 0x000000001017bb2d, 0x000000000fb36519, 0x000000000f4f0c98, 0x000000000eeab1bb, 0x000000000e865491, 0x000000000e21f52a, 0x000000000dbd9395, 0x000000000d592fe1, 0x000000000cf4ca1f, 0x000000000c90625c, 0x000000000c2bf8aa, 0x000000000bc78d18, 0x000000000b631fb4, 0x000000000afeb08f, 0x000000000a9a3fb8, 0x000000000a35cd3e, 0x0000000009d15931, 0x00000000096ce3a1, 0x0000000009086c9c, 0x0000000008a3f433, 0x00000000083f7a75, 0x0000000007daff71, 0x0000000007768337, 0x00000000071205d6, 0x0000000006ad875f, 0x00000000064907df, 0x0000000005e48768, 0x0000000005800608, 0x00000000051b83cf, 0x0000000004b700cc, 0x0000000004527d0f, 0x0000000003edf8a7, 0x00000000038973a4, 0x000000000324ee16, 0x0000000002c0680b, 0x00000000025be194, 0x0000000001f75ac0, 0x000000000192d39e, 0x00000000012e4c3e, 0x0000000000c9c4af, 0x0000000000653d02, 0x0000000000000000 }; EAPI Eina_F32p32 eina_f32p32_cos(Eina_F32p32 a) { Eina_F32p32 F32P32_2PI; Eina_F32p32 F32P32_PI2; Eina_F32p32 F32P32_3PI2; Eina_F32p32 remainder_2PI; Eina_F32p32 remainder_PI; Eina_F32p32 interpol; Eina_F32p32 result; int idx; int index2; F32P32_2PI = EINA_F32P32_PI << 1; F32P32_PI2 = EINA_F32P32_PI >> 1; F32P32_3PI2 = EINA_F32P32_PI + F32P32_PI2; /* Take advantage of cosinus symetrie. */ a = eina_fp32p32_llabs(a); /* Find table entry in 0 to PI / 2 */ remainder_PI = a - (a / EINA_F32P32_PI) * EINA_F32P32_PI; /* Find which case from 0 to 2 * PI */ remainder_2PI = a - (a / F32P32_2PI) * F32P32_2PI; interpol = eina_f32p32_div(eina_f32p32_scale(remainder_PI, (MAX_PREC - 1) * 2), EINA_F32P32_PI); idx = eina_f32p32_int_to(interpol); if (idx >= MAX_PREC) idx = 2 * MAX_PREC - (idx + 1); index2 = idx + 1; if (index2 == MAX_PREC) index2 = idx - 1; result = eina_f32p32_add(eina_trigo[idx], eina_f32p32_mul(eina_f32p32_sub(eina_trigo[idx], eina_trigo[index2]), (Eina_F32p32)eina_f32p32_fracc_get( interpol))); if (F32P32_PI2 < remainder_2PI && remainder_2PI < F32P32_3PI2) result *= -1; return result; } EAPI Eina_F32p32 eina_f32p32_sin(Eina_F32p32 a) { Eina_F32p32 F32P32_PI2; F32P32_PI2 = EINA_F32P32_PI >> 1; /* We only have a table for cosinus, but sin(a) = cos(pi / 2 - a) */ a = eina_f32p32_sub(F32P32_PI2, a); return eina_f32p32_cos(a); } eina-1.7.10/src/lib/eina_magic.c0000664000175000017500000002160012175475327013230 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #ifdef HAVE_EVIL # include #endif #include "eina_config.h" #include "eina_private.h" #include "eina_error.h" #include "eina_log.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_magic.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ typedef struct _Eina_Magic_String Eina_Magic_String; struct _Eina_Magic_String { Eina_Magic magic; Eina_Bool string_allocated; const char *string; }; static int _eina_magic_string_log_dom = -1; #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_magic_string_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_magic_string_log_dom, __VA_ARGS__) static Eina_Magic_String *_eina_magic_strings = NULL; static size_t _eina_magic_strings_count = 0; static size_t _eina_magic_strings_allocated = 0; static Eina_Bool _eina_magic_strings_dirty = 0; static int _eina_magic_strings_sort_cmp(const void *p1, const void *p2) { const Eina_Magic_String *a = p1, *b = p2; return a->magic - b->magic; } static int _eina_magic_strings_find_cmp(const void *p1, const void *p2) { Eina_Magic a = (Eina_Magic)(size_t)p1; const Eina_Magic_String *b = p2; return a - b->magic; } static Eina_Magic_String * _eina_magic_strings_alloc(void) { size_t idx; if (_eina_magic_strings_count == _eina_magic_strings_allocated) { void *tmp; size_t size; if (EINA_UNLIKELY(_eina_magic_strings_allocated == 0)) size = 48; else size = _eina_magic_strings_allocated + 16; tmp = realloc(_eina_magic_strings, sizeof(Eina_Magic_String) * size); if (!tmp) { ERR("could not realloc magic_strings from %zu to %zu buckets.", _eina_magic_strings_allocated, size); return NULL; } _eina_magic_strings = tmp; _eina_magic_strings_allocated = size; } idx = _eina_magic_strings_count; _eina_magic_strings_count++; return _eina_magic_strings + idx; } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ EAPI Eina_Error EINA_ERROR_MAGIC_FAILED = 0; static const char EINA_ERROR_MAGIC_FAILED_STR[] = "Magic check failed."; /** * @internal * @brief Initialize the magic string module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the magic string module of Eina. It is called by * eina_init(). * * @see eina_init() */ Eina_Bool eina_magic_string_init(void) { _eina_magic_string_log_dom = eina_log_domain_register ("eina_magic_string", EINA_LOG_COLOR_DEFAULT); if (_eina_magic_string_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_magic_string"); return EINA_FALSE; } EINA_ERROR_MAGIC_FAILED = eina_error_msg_static_register( EINA_ERROR_MAGIC_FAILED_STR); return EINA_TRUE; } /** * @internal * @brief Shut down the magic string module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the magic string module set up by * eina_magic string_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_magic_string_shutdown(void) { Eina_Magic_String *ems, *ems_end; ems = _eina_magic_strings; ems_end = ems + _eina_magic_strings_count; for (; ems < ems_end; ems++) if (ems->string_allocated) free((char *)ems->string); free(_eina_magic_strings); _eina_magic_strings = NULL; _eina_magic_strings_count = 0; _eina_magic_strings_allocated = 0; eina_log_domain_unregister(_eina_magic_string_log_dom); _eina_magic_string_log_dom = -1; return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI const char * eina_magic_string_get(Eina_Magic magic) { Eina_Magic_String *ems; if (!_eina_magic_strings) return "(none)"; if (_eina_magic_strings_dirty) { qsort(_eina_magic_strings, _eina_magic_strings_count, sizeof(Eina_Magic_String), _eina_magic_strings_sort_cmp); _eina_magic_strings_dirty = 0; } ems = bsearch((void *)(size_t)magic, _eina_magic_strings, _eina_magic_strings_count, sizeof(Eina_Magic_String), _eina_magic_strings_find_cmp); if (ems) return ems->string ? ems->string : "(undefined)"; return "(unknown)"; } EAPI Eina_Bool eina_magic_string_set(Eina_Magic magic, const char *magic_name) { Eina_Magic_String *ems; EINA_SAFETY_ON_NULL_RETURN_VAL(magic_name, EINA_FALSE); ems = _eina_magic_strings_alloc(); if (!ems) return EINA_FALSE; ems->magic = magic; ems->string_allocated = EINA_TRUE; ems->string = strdup(magic_name); if (!ems->string) { ERR("could not allocate string '%s'", magic_name); _eina_magic_strings_count--; return EINA_FALSE; } _eina_magic_strings_dirty = 1; return EINA_TRUE; } EAPI Eina_Bool eina_magic_string_static_set(Eina_Magic magic, const char *magic_name) { Eina_Magic_String *ems; EINA_SAFETY_ON_NULL_RETURN_VAL(magic_name, EINA_FALSE); ems = _eina_magic_strings_alloc(); if (!ems) return EINA_FALSE; ems->magic = magic; ems->string_allocated = EINA_FALSE; ems->string = magic_name; _eina_magic_strings_dirty = 1; return EINA_TRUE; } #ifdef eina_magic_fail # undef eina_magic_fail #endif EAPI void eina_magic_fail(void *d, Eina_Magic m, Eina_Magic req_m, const char *file, const char *fnc, int line) { eina_error_set(EINA_ERROR_MAGIC_FAILED); if (!d) eina_log_print(EINA_LOG_DOMAIN_GLOBAL, EINA_LOG_LEVEL_CRITICAL, file, fnc, line, "*** Eina Magic Check Failed !!!\n" " Input handle pointer is NULL !\n" "*** NAUGHTY PROGRAMMER!!!\n" "*** SPANK SPANK SPANK!!!\n" "*** Now go fix your code. Tut tut tut!\n" "\n"); else if (m == EINA_MAGIC_NONE) eina_log_print(EINA_LOG_DOMAIN_GLOBAL, EINA_LOG_LEVEL_CRITICAL, file, fnc, line, "*** Eina Magic Check Failed !!!\n" " Input handle has already been freed!\n" "*** NAUGHTY PROGRAMMER!!!\n" "*** SPANK SPANK SPANK!!!\n" "*** Now go fix your code. Tut tut tut!\n" "\n"); else if (m != req_m) eina_log_print(EINA_LOG_DOMAIN_GLOBAL, EINA_LOG_LEVEL_CRITICAL, file, fnc, line, "*** Eina Magic Check Failed !!!\n" " Input handle is wrong type\n" " Expected: %08x - %s\n" " Supplied: %08x - %s\n" "*** NAUGHTY PROGRAMMER!!!\n" "*** SPANK SPANK SPANK!!!\n" "*** Now go fix your code. Tut tut tut!\n" "\n", req_m, eina_magic_string_get(req_m), m, eina_magic_string_get(m)); else eina_log_print(EINA_LOG_DOMAIN_GLOBAL, EINA_LOG_LEVEL_CRITICAL, file, fnc, line, "*** Eina Magic Check Failed !!!\n" " Why did you call me !\n" "*** NAUGHTY PROGRAMMER!!!\n" "*** SPANK SPANK SPANK!!!\n" "*** Now go fix your code. Tut tut tut!\n" "\n"); } /** * @} */ eina-1.7.10/src/lib/eina_counter.c0000664000175000017500000002116612175475327013636 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric Bail, Vincent Torri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #ifndef _WIN32 # include # include #else # define WIN32_LEAN_AND_MEAN # include # undef WIN32_LEAN_AND_MEAN #endif /* _WIN2 */ #include "eina_config.h" #include "eina_private.h" #include "eina_inlist.h" #include "eina_error.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_counter.h" #ifdef HAVE_ESCAPE # include #endif /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ #ifndef _WIN32 typedef struct timespec Eina_Nano_Time; #else typedef LARGE_INTEGER Eina_Nano_Time; #endif typedef struct _Eina_Clock Eina_Clock; struct _Eina_Counter { EINA_INLIST; Eina_Inlist *clocks; const char *name; }; struct _Eina_Clock { EINA_INLIST; Eina_Nano_Time start; Eina_Nano_Time end; int specimen; Eina_Bool valid; }; #ifndef _WIN32 static inline int _eina_counter_time_get(Eina_Nano_Time *tp) { # if defined(CLOCK_PROCESS_CPUTIME_ID) return clock_gettime(CLOCK_PROCESS_CPUTIME_ID, tp); # elif defined(CLOCK_PROF) return clock_gettime(CLOCK_PROF, tp); # elif defined(CLOCK_REALTIME) return clock_gettime(CLOCK_REALTIME, tp); # else struct timeval tv; if (gettimeofday(&tv, NULL)) return -1; tp->tv_sec = tv.tv_sec; tp->tv_nsec = tv.tv_usec * 1000L; return 0; # endif } #else static const char EINA_ERROR_COUNTER_WINDOWS_STR[] = "Change your OS, you moron !"; static int EINA_ERROR_COUNTER_WINDOWS = 0; static LARGE_INTEGER _eina_counter_frequency; static inline int _eina_counter_time_get(Eina_Nano_Time *tp) { return QueryPerformanceCounter(tp); } #endif /* _WIN2 */ static char * _eina_counter_asiprintf(char *base, int *position, const char *format, ...) { char *tmp, *result; int size = 32; int n; va_list ap; tmp = realloc(base, sizeof (char) * (*position + size)); if (!tmp) return base; result = tmp; while (1) { va_start(ap, format); n = vsnprintf(result + *position, size, format, ap); va_end(ap); if (n > -1 && n < size) { /* If we always have glibc > 2.2, we could just return *position += n. */ *position += strlen(result + *position); return result; } if (n > -1) size = n + 1; else size <<= 1; tmp = realloc(result, sizeof (char) * (*position + size)); if (!tmp) return result; result = tmp; } } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the eina counter internal structure. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the counter module set up by * eina_counter_init(). It is called by eina_init(). * * This function sets up the error module of Eina and only on Windows, * it initializes the high precision timer. It also registers, only on * Windows, the error #EINA_ERROR_COUNTER_WINDOWS. It is also called * by eina_init(). It returns 0 on failure, otherwise it returns the * number of times it has already been called. * * @see eina_init() */ Eina_Bool eina_counter_init(void) { #ifdef _WIN32 EINA_ERROR_COUNTER_WINDOWS = eina_error_msg_static_register( EINA_ERROR_COUNTER_WINDOWS_STR); if (!QueryPerformanceFrequency(&_eina_counter_frequency)) { eina_error_set(EINA_ERROR_COUNTER_WINDOWS); return EINA_FALSE; } #endif /* _WIN2 */ return EINA_TRUE; } /** * @internal * @brief Shut down the counter module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the counter module set up by * eina_counter_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_counter_shutdown(void) { return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI Eina_Counter * eina_counter_new(const char *name) { Eina_Counter *counter; size_t length; EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL); length = strlen(name) + 1; eina_error_set(0); counter = calloc(1, sizeof (Eina_Counter) + length); if (!counter) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } counter->name = (char *)(counter + 1); memcpy((char *)counter->name, name, length); return counter; } EAPI void eina_counter_free(Eina_Counter *counter) { EINA_SAFETY_ON_NULL_RETURN(counter); while (counter->clocks) { Eina_Clock *clk = (Eina_Clock *)counter->clocks; counter->clocks = eina_inlist_remove(counter->clocks, counter->clocks); free(clk); } free(counter); } EAPI void eina_counter_start(Eina_Counter *counter) { Eina_Clock *clk; Eina_Nano_Time tp; EINA_SAFETY_ON_NULL_RETURN(counter); if (_eina_counter_time_get(&tp) != 0) return; eina_error_set(0); clk = calloc(1, sizeof (Eina_Clock)); if (!clk) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return; } counter->clocks = eina_inlist_prepend(counter->clocks, EINA_INLIST_GET(clk)); clk->valid = EINA_FALSE; clk->start = tp; } EAPI void eina_counter_stop(Eina_Counter *counter, int specimen) { Eina_Clock *clk; Eina_Nano_Time tp; EINA_SAFETY_ON_NULL_RETURN(counter); if (_eina_counter_time_get(&tp) != 0) return; clk = (Eina_Clock *)counter->clocks; if (!clk || clk->valid == EINA_TRUE) return; clk->end = tp; clk->specimen = specimen; clk->valid = EINA_TRUE; } EAPI char * eina_counter_dump(Eina_Counter *counter) { Eina_Clock *clk; char *result = NULL; int position = 0; EINA_SAFETY_ON_NULL_RETURN_VAL(counter, NULL); result = _eina_counter_asiprintf( result, &position, "# specimen\texperiment time\tstarting time\tending time\n"); if (!result) return NULL; EINA_INLIST_REVERSE_FOREACH(counter->clocks, clk) { long int start; long int end; long int diff; if (clk->valid == EINA_FALSE) continue; #ifndef _WIN32 start = clk->start.tv_sec * 1000000000 + clk->start.tv_nsec; end = clk->end.tv_sec * 1000000000 + clk->end.tv_nsec; diff = (clk->end.tv_sec - clk->start.tv_sec) * 1000000000 + clk->end.tv_nsec - clk->start.tv_nsec; #else start = (long int)(((long long int)clk->start.QuadPart * 1000000000ll) / (long long int)_eina_counter_frequency.QuadPart); end = (long int)(((long long int)clk->end.QuadPart * 1000000000LL) / (long long int)_eina_counter_frequency.QuadPart); diff = (long int)(((long long int)(clk->end.QuadPart - clk->start.QuadPart) * 1000000000LL) / (long long int)_eina_counter_frequency.QuadPart); #endif /* _WIN2 */ result = _eina_counter_asiprintf(result, &position, "%i\t%li\t%li\t%li\n", clk->specimen, diff, start, end); } return result; } eina-1.7.10/src/lib/eina_quadtree.c0000664000175000017500000005607612175475327014001 00000000000000/* EINA - EFL data type library * Copyright (C) 2010 Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ /** * @page tutorial_quadtree_page QuadTree Tutorial * * to be written... * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #ifdef HAVE_EVIL # include #endif #include "eina_quadtree.h" #include "eina_magic.h" #include "eina_mempool.h" #include "eina_list.h" #include "eina_inlist.h" #include "eina_trash.h" #include "eina_log.h" #include "eina_rectangle.h" #include "eina_private.h" typedef struct _Eina_QuadTree_Root Eina_QuadTree_Root; static const char EINA_MAGIC_QUADTREE_STR[] = "Eina QuadTree"; static const char EINA_MAGIC_QUADTREE_ROOT_STR[] = "Eina QuadTree Root"; static const char EINA_MAGIC_QUADTREE_ITEM_STR[] = "Eina QuadTree Item"; #define EINA_MAGIC_CHECK_QUADTREE(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_QUADTREE)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_QUADTREE); \ return __VA_ARGS__; \ } \ } while(0); #define EINA_MAGIC_CHECK_QUADTREE_ROOT(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_QUADTREE_ROOT)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_QUADTREE_ROOT); \ return __VA_ARGS__; \ } \ } while(0); #define EINA_MAGIC_CHECK_QUADTREE_ITEM(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_QUADTREE_ITEM)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_QUADTREE_ITEM); \ return __VA_ARGS__; \ } \ } while(0); struct _Eina_QuadTree { Eina_QuadTree_Root *root; Eina_List *hidden; size_t root_count; size_t items_count; Eina_Trash *items_trash; Eina_Trash *root_trash; Eina_Inlist *change; Eina_Inlist *cached; Eina_Rectangle target; size_t index; struct { Eina_Quad_Callback v; Eina_Quad_Callback h; } func; struct { size_t w; size_t h; } geom; Eina_Bool resize : 1; Eina_Bool lost : 1; EINA_MAGIC }; struct _Eina_QuadTree_Root { Eina_QuadTree_Root *parent; Eina_QuadTree_Root *left; Eina_QuadTree_Root *right; Eina_List *both; Eina_Bool sorted : 1; EINA_MAGIC }; struct _Eina_QuadTree_Item { EINA_INLIST; Eina_QuadTree *quad; Eina_QuadTree_Root *root; const void *object; size_t index; Eina_Bool change : 1; Eina_Bool delete_me : 1; Eina_Bool visible : 1; Eina_Bool hidden : 1; EINA_MAGIC }; static int _eina_quadtree_log_dom = -1; static Eina_Mempool *eina_quadtree_root_mp = NULL; static Eina_Mempool *_eina_quadtree_items_mp = NULL; #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_quadtree_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_quadtree_log_dom, __VA_ARGS__) static int _eina_quadtree_item_cmp(const void *a, const void *b) { const Eina_QuadTree_Item *i = a; const Eina_QuadTree_Item *j = b; return i->index - j->index; } static Eina_QuadTree_Root * eina_quadtree_root_free(Eina_QuadTree *q, Eina_QuadTree_Root *root) { Eina_QuadTree_Item *item; if (!root) return NULL; EINA_MAGIC_CHECK_QUADTREE_ROOT(root, NULL); EINA_LIST_FREE(root->both, item) eina_mempool_free(_eina_quadtree_items_mp, item); root->left = eina_quadtree_root_free(q, root->left); root->right = eina_quadtree_root_free(q, root->right); EINA_MAGIC_SET(root, 0); eina_mempool_free(eina_quadtree_root_mp, root); return NULL; } static Eina_QuadTree_Root * eina_quadtree_root_rebuild_pre(Eina_QuadTree *q, Eina_Inlist **change, Eina_QuadTree_Root *root) { Eina_QuadTree_Item *item; if (!root) return NULL; EINA_LIST_FREE(root->both, item) { if (item->visible) *change = eina_inlist_append(*change, EINA_INLIST_GET(item)); else if (!item->hidden) { q->hidden = eina_list_append(q->hidden, item); item->hidden = EINA_TRUE; item->root = NULL; } } root->left = eina_quadtree_root_rebuild_pre(q, change, root->left); root->right = eina_quadtree_root_rebuild_pre(q, change, root->right); EINA_MAGIC_SET(root, 0); if (q->root_count > 50) eina_mempool_free(eina_quadtree_root_mp, root); else { eina_trash_push(&q->root_trash, root); q->root_count++; } return NULL; } static size_t _eina_quadtree_split(Eina_Inlist *objects, Eina_QuadTree_Root *root, Eina_Inlist **left, Eina_Inlist **right, Eina_Quad_Callback func, int border, int middle) { Eina_QuadTree_Item *object; middle /= 2; if (middle <= 4) while (objects) { object = EINA_INLIST_CONTAINER_GET(objects, Eina_QuadTree_Item); objects = objects->next; object->change = EINA_FALSE; if (!object->visible) { if (!object->hidden) { object->hidden = EINA_TRUE; object->quad->hidden = eina_list_append( object->quad->hidden, object); } continue; } if (object->hidden) { object->hidden = EINA_FALSE; object->quad->hidden = eina_list_remove(object->quad->hidden, object); } if (!object->delete_me) { if (root->sorted) root->both = eina_list_sorted_insert(root->both, _eina_quadtree_item_cmp, object); else root->both = eina_list_append(root->both, object); object->root = root; } else eina_quadtree_del(object); } else while (objects) { object = EINA_INLIST_CONTAINER_GET(objects, Eina_QuadTree_Item); objects = objects->next; object->change = EINA_FALSE; if (!object->visible) { if (!object->hidden) { object->hidden = EINA_TRUE; object->quad->hidden = eina_list_append( object->quad->hidden, object); } continue; } if (object->hidden) { object->hidden = EINA_FALSE; object->quad->hidden = eina_list_remove(object->quad->hidden, object); } if (!object->delete_me) { switch (func(object->object, border + middle)) { case EINA_QUAD_LEFT: *left = eina_inlist_append(*left, EINA_INLIST_GET(object)); break; case EINA_QUAD_RIGHT: *right = eina_inlist_append(*right, EINA_INLIST_GET(object)); break; case EINA_QUAD_BOTH: root->both = eina_list_append(root->both, object); object->root = root; break; default: abort(); } } else eina_quadtree_del(object); } return middle; } static Eina_QuadTree_Root * _eina_quadtree_update(Eina_QuadTree *q, Eina_QuadTree_Root *parent, Eina_QuadTree_Root *root, Eina_Inlist *objects, Eina_Bool direction, Eina_Rectangle *size) { Eina_Inlist *right = NULL; Eina_Inlist *left = NULL; size_t w2; size_t h2; if (!objects) return root; if (!root) { root = eina_trash_pop(&q->root_trash); if (!root) root = eina_mempool_malloc(eina_quadtree_root_mp, sizeof (Eina_QuadTree_Root)); else q->root_count--; if (!root) /* FIXME: NOT GOOD TIMING, WE ARE GOING TO LEAK MORE MEMORY */ return NULL; root->parent = parent; root->both = NULL; root->left = NULL; root->right = NULL; root->sorted = EINA_TRUE; EINA_MAGIC_SET(root, EINA_MAGIC_QUADTREE_ROOT); } w2 = 0; h2 = 0; if (direction) w2 = _eina_quadtree_split(objects, root, &left, &right, q->func.h, size->x, size->w); else h2 = _eina_quadtree_split(objects, root, &left, &right, q->func.v, size->y, size->h); size->w -= w2; size->h -= h2; root->left = _eina_quadtree_update(q, root, root->left, left, !direction, size); size->x += w2; size->y += h2; root->right = _eina_quadtree_update(q, root, root->right, right, !direction, size); size->x -= w2; size->y -= h2; size->w += w2; size->h += h2; return root; } static Eina_Inlist * _eina_quadtree_merge(Eina_Inlist *result, Eina_List *both) { Eina_QuadTree_Item *item; Eina_QuadTree_Item *b; Eina_Inlist *moving; if (!both) return result; if (!result) { Eina_List *l; EINA_LIST_FOREACH(both, l, item) if (item->visible) result = eina_inlist_append(result, EINA_INLIST_GET(item)); return result; } moving = result; item = EINA_INLIST_CONTAINER_GET(moving, Eina_QuadTree_Item); b = eina_list_data_get(both); while (both && moving) { if (!b->visible) { both = eina_list_next(both); b = eina_list_data_get(both); continue; } if (_eina_quadtree_item_cmp(item, b) < 0) { /* moving is still lower than item, so we can continue to the next one. */ moving = moving->next; item = EINA_INLIST_CONTAINER_GET(moving, Eina_QuadTree_Item); } else { /* we just get above the limit of both, so insert it */ result = eina_inlist_prepend_relative(result, EINA_INLIST_GET(b), moving); both = eina_list_next(both); b = eina_list_data_get(both); } } item = EINA_INLIST_CONTAINER_GET(result->last, Eina_QuadTree_Item); while (both) { b = eina_list_data_get(both); if (b->visible) { if (_eina_quadtree_item_cmp(item, b) < 0) break; result = eina_inlist_prepend_relative(result, EINA_INLIST_GET(b), result->last); } both = eina_list_next(both); } while (both) { b = eina_list_data_get(both); if (b->visible) result = eina_inlist_append(result, EINA_INLIST_GET(b)); both = eina_list_next(both); } return result; } static Eina_Inlist * _eina_quadtree_collide(Eina_Inlist *result, Eina_QuadTree_Root *root, Eina_Bool direction, Eina_Rectangle *size, Eina_Rectangle *target) { if (!root) return result; if (!root->sorted) { root->both = eina_list_sort(root->both, -1, _eina_quadtree_item_cmp); root->sorted = EINA_TRUE; } result = _eina_quadtree_merge(result, root->both); DBG("%p: %i in both for (%i, %i - %i, %i)", root, eina_list_count(root->both), size->x, size->y, size->w, size->h); if (direction) { int middle = size->w / 2; size->w -= middle; if (eina_spans_intersect(size->x, size->w, target->x, target->w)) result = _eina_quadtree_collide(result, root->left, !direction, size, target); size->x += middle; if (eina_spans_intersect(size->x, size->w, target->x, target->w)) result = _eina_quadtree_collide(result, root->right, !direction, size, target); size->x -= middle; size->w += middle; } else { int middle = size->h / 2; size->h -= middle; if (eina_spans_intersect(size->y, size->h, target->y, target->h)) result = _eina_quadtree_collide(result, root->left, !direction, size, target); size->y += middle; if (eina_spans_intersect(size->y, size->h, target->y, target->h)) result = _eina_quadtree_collide(result, root->right, !direction, size, target); size->y -= middle; size->h += middle; } return result; } static void _eina_quadtree_remove(Eina_QuadTree_Item *object) { if (!object->root) return; object->root->both = eina_list_remove(object->root->both, object); if (object->root->both) goto end; if (object->root->left) goto end; if (object->root->right) goto end; /* The root is not useful anymore... */ if (object->root->parent) { if (object->root->parent->left == object->root) object->root->parent->left = NULL; else object->root->parent->right = NULL; object->root->parent = NULL; } else object->quad->root = NULL; if (object->quad->root_count > 50) eina_mempool_free(eina_quadtree_root_mp, object->root); else { eina_trash_push(&object->quad->root_trash, object->root); object->quad->root_count++; } end: object->root = NULL; } EAPI Eina_QuadTree * eina_quadtree_new(size_t w, size_t h, Eina_Quad_Callback vertical, Eina_Quad_Callback horizontal) { Eina_QuadTree *result; if (!vertical || !horizontal || h == 0 || w == 0) return NULL; result = calloc(1, sizeof (Eina_QuadTree)); if (!result) return NULL; result->func.v = vertical; result->func.h = horizontal; result->geom.w = w; result->geom.h = h; result->change = NULL; result->lost = EINA_TRUE; EINA_MAGIC_SET(result, EINA_MAGIC_QUADTREE); return result; } EAPI void eina_quadtree_free(Eina_QuadTree *q) { Eina_QuadTree_Item *item; if (!q) return; EINA_MAGIC_CHECK_QUADTREE(q); while (q->change) { item = EINA_INLIST_CONTAINER_GET(q->change, Eina_QuadTree_Item); q->change = q->change->next; if (!item->hidden) eina_mempool_free(_eina_quadtree_items_mp, item); } EINA_LIST_FREE(q->hidden, item) eina_mempool_free(_eina_quadtree_items_mp, item); eina_quadtree_root_free(q, q->root); while (q->items_trash) { item = eina_trash_pop(&q->items_trash); eina_mempool_free(_eina_quadtree_items_mp, item); } while (q->root_trash) { Eina_QuadTree_Root *root; root = eina_trash_pop(&q->root_trash); eina_mempool_free(eina_quadtree_root_mp, root); } EINA_MAGIC_SET(q, 0); free(q); } EAPI Eina_QuadTree_Item * eina_quadtree_add(Eina_QuadTree *q, const void *object) { Eina_QuadTree_Item *result; EINA_MAGIC_CHECK_QUADTREE(q, NULL); if (!object) return NULL; result = eina_trash_pop(&q->items_trash); if (!result) result = eina_mempool_malloc(_eina_quadtree_items_mp, sizeof (Eina_QuadTree_Item)); else q->items_count--; if (!result) return NULL; result->quad = q; result->root = NULL; result->object = object; result->index = q->index++; result->change = EINA_TRUE; result->delete_me = EINA_FALSE; result->visible = EINA_TRUE; result->hidden = EINA_FALSE; EINA_MAGIC_SET(result, EINA_MAGIC_QUADTREE_ITEM); /* Insertion is delayed until we really need to use it */ q->change = eina_inlist_append(q->change, EINA_INLIST_GET(result)); return result; } EAPI Eina_Bool eina_quadtree_del(Eina_QuadTree_Item *object) { if (!object) return EINA_FALSE; EINA_MAGIC_CHECK_QUADTREE_ITEM(object, EINA_FALSE); _eina_quadtree_remove(object); if (object->change) { /* This object is still in the update array, delaying it's removal !*/ object->delete_me = EINA_TRUE; object->visible = EINA_TRUE; return EINA_TRUE; } if (object->hidden) { object->quad->hidden = eina_list_remove(object->quad->hidden, object); object->hidden = EINA_TRUE; } /* This object is not anymore inside the tree, we can remove it now !*/ EINA_MAGIC_SET(object, 0); if (object->quad->items_count > 256) eina_mempool_free(_eina_quadtree_items_mp, object); else { object->quad->items_count++; eina_trash_push(&object->quad->items_trash, object); } return EINA_TRUE; } EAPI Eina_Bool eina_quadtree_change(Eina_QuadTree_Item *object) { EINA_MAGIC_CHECK_QUADTREE_ITEM(object, EINA_FALSE); if (object->delete_me || !object->visible) return EINA_FALSE; if (object->quad->resize) return EINA_TRUE; /* Delaying change until needed */ if (!object->change) object->quad->change = eina_inlist_append(object->quad->change, EINA_INLIST_GET(object)); object->change = EINA_TRUE; _eina_quadtree_remove(object); return EINA_TRUE; } EAPI Eina_Bool eina_quadtree_hide(Eina_QuadTree_Item *object) { EINA_MAGIC_CHECK_QUADTREE_ITEM(object, EINA_FALSE); object->visible = EINA_FALSE; return EINA_TRUE; } EAPI Eina_Bool eina_quadtree_show(Eina_QuadTree_Item *object) { EINA_MAGIC_CHECK_QUADTREE_ITEM(object, EINA_FALSE); object->quad->lost = EINA_TRUE; if (object->visible) return EINA_TRUE; object->visible = EINA_TRUE; if (!object->change) return eina_quadtree_change(object); return EINA_TRUE; } EAPI Eina_Inlist * eina_quadtree_collide(Eina_QuadTree *q, int x, int y, int w, int h) { Eina_Rectangle canvas; EINA_MAGIC_CHECK_QUADTREE(q, NULL); /* Now we need the tree to be up to date, so it's time */ if (q->resize) /* Full rebuild needed ! */ { DBG("resizing quadtree"); q->root = eina_quadtree_root_rebuild_pre(q, &q->change, q->root); q->resize = EINA_FALSE; } EINA_RECTANGLE_SET(&canvas, 0, 0, q->geom.w, q->geom.h); if (q->change) { DBG("updating quadtree content"); q->root = _eina_quadtree_update(q, NULL, q->root, q->change, EINA_FALSE, &canvas); q->change = NULL; q->lost = EINA_TRUE; } if (q->target.x != x || q->target.y != y || q->target.w != w || q->target.h != h) { DBG("new target"); EINA_RECTANGLE_SET(&q->target, x, y, w, h); q->lost = EINA_TRUE; } if (q->lost) { DBG("computing collide"); q->cached = _eina_quadtree_collide(NULL, q->root, EINA_FALSE, &canvas, &q->target); q->lost = EINA_FALSE; } return q->cached; } EAPI void * eina_quadtree_object(Eina_Inlist *item) { Eina_QuadTree_Item *qi; if (!item) return NULL; qi = EINA_INLIST_CONTAINER_GET(item, Eina_QuadTree_Item); if (!qi) return NULL; EINA_MAGIC_CHECK_QUADTREE_ITEM(qi, NULL); if (!qi->visible) return NULL; return (void *)qi->object; } EAPI void eina_quadtree_resize(Eina_QuadTree *q, size_t w, size_t h) { EINA_MAGIC_CHECK_QUADTREE(q); if (q->geom.w == w && q->geom.h == h) return; q->resize = EINA_TRUE; q->geom.w = w; q->geom.h = h; } EAPI void eina_quadtree_cycle(Eina_QuadTree *q) { EINA_MAGIC_CHECK_QUADTREE(q); q->index = 0; } EAPI void eina_quadtree_increase(Eina_QuadTree_Item *object) { size_t tmp; EINA_MAGIC_CHECK_QUADTREE_ITEM(object); tmp = object->quad->index++; if (object->index == tmp) return; object->index = tmp; if (object->root) object->root->sorted = EINA_FALSE; } Eina_Bool eina_quadtree_init(void) { const char *choice, *tmp; _eina_quadtree_log_dom = eina_log_domain_register("eina_quadtree", EINA_LOG_COLOR_DEFAULT); if (_eina_quadtree_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_quadtree"); return EINA_FALSE; } #define EMS(n) eina_magic_string_static_set(n, n ## _STR) EMS(EINA_MAGIC_QUADTREE); EMS(EINA_MAGIC_QUADTREE_ROOT); EMS(EINA_MAGIC_QUADTREE_ITEM); #undef EMS #ifdef EINA_DEFAULT_MEMPOOL choice = "pass_through"; #else choice = "chained_mempool"; #endif tmp = getenv("EINA_MEMPOOL"); if (tmp && tmp[0]) choice = tmp; _eina_quadtree_items_mp = eina_mempool_add(choice, "QuadTree Item", NULL, sizeof (Eina_QuadTree_Item), 32); eina_quadtree_root_mp = eina_mempool_add(choice, "QuadTree Root", NULL, sizeof (Eina_QuadTree_Root), 8); return EINA_TRUE; } Eina_Bool eina_quadtree_shutdown(void) { eina_mempool_del(eina_quadtree_root_mp); eina_mempool_del(_eina_quadtree_items_mp); eina_log_domain_unregister(_eina_quadtree_log_dom); _eina_quadtree_log_dom = -1; return EINA_TRUE; } eina-1.7.10/src/lib/eina_error.c0000664000175000017500000001446212175475327013311 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga, Cedric Bail * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #ifdef HAVE_EVIL # include #endif #include "eina_config.h" #include "eina_private.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_error.h" #include "eina_stringshare.h" /* TODO * + add a wrapper for assert? * + add common error numbers, messages * + add a calltrace of errors, not only store the last error but a list of them * and also store the function that set it */ /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ typedef struct _Eina_Error_Message Eina_Error_Message; struct _Eina_Error_Message { Eina_Bool string_allocated; const char *string; }; static Eina_Error_Message *_eina_errors = NULL; static size_t _eina_errors_count = 0; static size_t _eina_errors_allocated = 0; static Eina_Error _eina_last_error; static Eina_Error_Message * _eina_error_msg_alloc(void) { size_t idx; if (_eina_errors_count == _eina_errors_allocated) { void *tmp; size_t size; if (EINA_UNLIKELY(_eina_errors_allocated == 0)) size = 24; else size = _eina_errors_allocated + 8; tmp = realloc(_eina_errors, sizeof(Eina_Error_Message) * size); if (!tmp) return NULL; _eina_errors = tmp; _eina_errors_allocated = size; } idx = _eina_errors_count; _eina_errors_count++; return _eina_errors + idx; } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @cond LOCAL */ EAPI Eina_Error EINA_ERROR_OUT_OF_MEMORY = 0; static const char EINA_ERROR_OUT_OF_MEMORY_STR[] = "Out of memory"; /** * @endcond */ /** * @internal * @brief Initialize the error module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the error module of Eina. It is called by * eina_init(). * * This function registers the error #EINA_ERROR_OUT_OF_MEMORY. * * @see eina_init() */ Eina_Bool eina_error_init(void) { /* TODO register the eina's basic errors */ EINA_ERROR_OUT_OF_MEMORY = eina_error_msg_static_register( EINA_ERROR_OUT_OF_MEMORY_STR); return EINA_TRUE; } /** * @internal * @brief Shut down the error module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the error module set up by * eina_error_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_error_shutdown(void) { Eina_Error_Message *eem, *eem_end; eem = _eina_errors; eem_end = eem + _eina_errors_count; for (; eem < eem_end; eem++) if (eem->string_allocated) eina_stringshare_del(eem->string); free(_eina_errors); _eina_errors = NULL; _eina_errors_count = 0; _eina_errors_allocated = 0; return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI Eina_Error eina_error_msg_register(const char *msg) { Eina_Error_Message *eem; EINA_SAFETY_ON_NULL_RETURN_VAL(msg, 0); eem = _eina_error_msg_alloc(); if (!eem) return 0; eem->string_allocated = EINA_TRUE; eem->string = eina_stringshare_add(msg); if (!eem->string) { _eina_errors_count--; return 0; } return _eina_errors_count; /* identifier = index + 1 (== _count). */ } EAPI Eina_Error eina_error_msg_static_register(const char *msg) { Eina_Error_Message *eem; EINA_SAFETY_ON_NULL_RETURN_VAL(msg, 0); eem = _eina_error_msg_alloc(); if (!eem) return 0; eem->string_allocated = EINA_FALSE; eem->string = msg; return _eina_errors_count; /* identifier = index + 1 (== _count). */ } EAPI Eina_Bool eina_error_msg_modify(Eina_Error error, const char *msg) { EINA_SAFETY_ON_NULL_RETURN_VAL(msg, EINA_FALSE); if (error < 1) return EINA_FALSE; if ((size_t)error > _eina_errors_count) return EINA_FALSE; if (_eina_errors[error - 1].string_allocated) { const char *tmp; if (!(tmp = eina_stringshare_add(msg))) return EINA_FALSE; eina_stringshare_del(_eina_errors[error - 1].string); _eina_errors[error - 1].string = tmp; return EINA_TRUE; } _eina_errors[error - 1].string = msg; return EINA_TRUE; } EAPI const char * eina_error_msg_get(Eina_Error error) { if (error < 1) return NULL; if ((size_t)error > _eina_errors_count) return NULL; return _eina_errors[error - 1].string; } EAPI Eina_Error eina_error_get(void) { return _eina_last_error; } EAPI void eina_error_set(Eina_Error err) { _eina_last_error = err; } EAPI Eina_Error eina_error_find(const char *msg) { size_t i; EINA_SAFETY_ON_NULL_RETURN_VAL(msg, 0); for (i = 0; i < _eina_errors_count; i++) { if (_eina_errors[i].string_allocated) { if (_eina_errors[i].string == msg) return i + 1; } if (!strcmp(_eina_errors[i].string, msg)) return i + 1; } return 0; } eina-1.7.10/src/lib/Makefile.am0000664000175000017500000001210712175475327013046 00000000000000MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ @EFL_EINA_BUILD@ \ @EFL_PTHREAD_CFLAGS@ \ @EINA_CFLAGS@ \ @VALGRIND_CFLAGS@ base_sources = \ eina_accessor.c \ eina_array.c \ eina_benchmark.c \ eina_binbuf.c \ eina_binshare.c \ eina_convert.c \ eina_counter.c \ eina_cpu.c \ eina_error.c \ eina_fp.c \ eina_hamster.c \ eina_hash.c \ eina_inarray.c \ eina_inlist.c \ eina_iterator.c \ eina_lalloc.c \ eina_list.c \ eina_log.c \ eina_magic.c \ eina_main.c \ eina_matrixsparse.c \ eina_mempool.c \ eina_mmap.c \ eina_module.c \ eina_prefix.c \ eina_quadtree.c \ eina_rbtree.c \ eina_rectangle.c \ eina_safety_checks.c \ eina_sched.c \ eina_share_common.c \ eina_simple_xml_parser.c \ eina_str.c \ eina_strbuf.c \ eina_strbuf_common.c \ eina_stringshare.c \ eina_tiler.c \ eina_unicode.c \ eina_ustrbuf.c \ eina_ustringshare.c \ eina_value.c \ eina_xattr.c # Will be back for developper after 1.2 # eina_model.c \ # eina_object.c if EINA_HAVE_WIN32 base_sources += eina_file_win32.c else base_sources += eina_file.c endif EXTRA_DIST = \ eina_share_common.h \ eina_private.h \ eina_strbuf_common.h \ eina_strbuf_template_c.x \ eina_binbuf_template_c.x if EINA_STATIC_BUILD_BUDDY base_sources += $(top_srcdir)/src/modules/mp/buddy/eina_buddy.c endif if EINA_STATIC_BUILD_CHAINED_POOL base_sources += $(top_srcdir)/src/modules/mp/chained_pool/eina_chained_mempool.c endif if EINA_STATIC_BUILD_EMEMOA_FIXED base_sources += $(top_srcdir)/src/modules/mp/ememoa_fixed/eina_ememoa_fixed.c endif if EINA_STATIC_BUILD_EMEMOA_UNKNOWN base_sources += $(top_srcdir)/src/modules/mp/ememoa_unknown/eina_ememoa_unknown.c endif if EINA_STATIC_BUILD_FIXED_BITMAP base_sources += $(top_srcdir)/src/modules/mp/fixed_bitmap/eina_fixed_bitmap.c endif if EINA_STATIC_BUILD_ONE_BIG base_sources += $(top_srcdir)/src/modules/mp/one_big/eina_one_big.c endif if EINA_STATIC_BUILD_PASS_THROUGH base_sources += $(top_srcdir)/src/modules/mp/pass_through/eina_pass_through.c endif lib_LTLIBRARIES = libeina.la if EINA_AMALGAMATION nodist_libeina_la_SOURCES = eina_amalgamation.c eina_amalgamation.c: $(base_sources) Makefile -rm -f eina_amalgamation.c @echo "#ifdef HAVE_CONFIG_H" >> eina_amalgamation.c @echo "#include \"config.h\"" >> eina_amalgamation.c @echo "#endif" >> eina_amalgamation.c @echo "#ifdef HAVE_ALLOCA_H" >> eina_amalgamation.c @echo "# include " >> eina_amalgamation.c @echo "#elif defined __GNUC__" >> eina_amalgamation.c @echo "# define alloca __builtin_alloca" >> eina_amalgamation.c @echo "#elif defined _AIX" >> eina_amalgamation.c @echo "# define alloca __alloca" >> eina_amalgamation.c @echo "#elif defined _MSC_VER" >> eina_amalgamation.c @echo "# include " >> eina_amalgamation.c @echo "# define alloca _alloca" >> eina_amalgamation.c @echo "#else" >> eina_amalgamation.c @echo "# include " >> eina_amalgamation.c @echo "# ifdef __cplusplus" >> eina_amalgamation.c @echo "#extern \"C\"" >> eina_amalgamation.c @echo "# endif" >> eina_amalgamation.c @echo "#void *alloca (size_t);" >> eina_amalgamation.c @echo "#endif" >> eina_amalgamation.c @echo "#include " >> eina_amalgamation.c @echo "#include " >> eina_amalgamation.c @echo "#include " >> eina_amalgamation.c @echo "#ifdef HAVE_DLOPEN" >> eina_amalgamation.c @echo "# include " >> eina_amalgamation.c @echo "#endif" >> eina_amalgamation.c @echo "#include " >> eina_amalgamation.c @echo "#ifdef HAVE_DIRENT_H" >> eina_amalgamation.c @echo "# include " >> eina_amalgamation.c @echo "#endif" >> eina_amalgamation.c @echo "#include " >> eina_amalgamation.c @echo "#include " >> eina_amalgamation.c @echo "#include " >> eina_amalgamation.c @echo "#include " >> eina_amalgamation.c @echo "#ifdef HAVE_EVIL" >> eina_amalgamation.c @echo "# include " >> eina_amalgamation.c @echo "#endif" >> eina_amalgamation.c @echo "#include \"eina_config.h\"" >> eina_amalgamation.c @echo "#include \"eina_private.h\"" >> eina_amalgamation.c @echo "#include \"eina_safety_checks.h\"" >> eina_amalgamation.c @echo "#include \"Eina.h\"" >> eina_amalgamation.c @echo "#include \"eina_strbuf_common.h\"" >> eina_amalgamation.c @echo "#include \"eina_share_common.h\"" >> eina_amalgamation.c @for f in $(base_sources); do \ if [ `echo $$f | sed -e 's/^...\(.\).*/\1/'` != '/' ]; then \ file="$(srcdir)/$$f" ; \ else \ file="$$f" ; \ fi ; \ echo "/* file: $$file */" >> eina_amalgamation.c; \ grep -v -e '^# *include \+.\(config\|eina_[a-z_]\+\|Evil\|stdio\|stdlib\|string\|dlfcn\|dirent\|assert\|errno\|fnmatch\)[.]h.*' $$file >> eina_amalgamation.c; \ done @echo "eina_amalgamation.c generated" else libeina_la_SOURCES = $(base_sources) endif libeina_la_LIBADD = @EINA_LIBS@ -lm libeina_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ @EFL_PTHREAD_LIBS@ clean-local: rm -rf *.gcno eina_amalgamation.c eina-1.7.10/src/lib/eina_strbuf_common.c0000664000175000017500000006171312175475327015036 00000000000000#ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #ifdef _WIN32 # include #endif #include "eina_private.h" #include "eina_str.h" #include "eina_magic.h" #include "eina_error.h" #include "eina_safety_checks.h" #include "eina_strbuf.h" #include "eina_strbuf_common.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ #define EINA_STRBUF_INIT_SIZE 32 #define EINA_STRBUF_INIT_STEP 32 #define EINA_STRBUF_MAX_STEP 4096 /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the strbuf module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the strbuf module of Eina. It is called by * eina_init(). * * @see eina_init() */ Eina_Bool eina_strbuf_common_init(void) { return EINA_TRUE; } /** * @internal * @brief Shut down the strbuf module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the strbuf module set up by * eina_strbuf_common_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_strbuf_common_shutdown(void) { return EINA_TRUE; } /** * @internal * * init the buffer * @param csize the character size * @param buf the buffer to init * * @return #EINA_TRUE on success, #EINA_FALSE on failure. */ static Eina_Bool _eina_strbuf_common_init(size_t csize, Eina_Strbuf *buf) { buf->len = 0; buf->size = EINA_STRBUF_INIT_SIZE; buf->step = EINA_STRBUF_INIT_STEP; eina_error_set(0); buf->buf = calloc(csize, buf->size); if (EINA_UNLIKELY(!buf->buf)) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } return EINA_TRUE; } /** * @internal * * init the buffer without allocating the actual string (for managed) * @param csize the character size * @param buf the buffer to init * * @return #EINA_TRUE on success, #EINA_FALSE on failure. */ static Eina_Bool _eina_strbuf_common_manage_init(size_t csize __UNUSED__, Eina_Strbuf *buf, void *str, size_t len) { buf->len = len; buf->size = len + 1; buf->step = EINA_STRBUF_INIT_STEP; buf->buf = str; return EINA_TRUE; } /** * @internal * * resize the buffer * @param csize the character size * @param buf the buffer to resize * @param size the minimum size of the buffer * * @return #EINA_TRUE on success, #EINA_FALSE on failure. */ static inline Eina_Bool _eina_strbuf_common_resize(size_t csize, Eina_Strbuf *buf, size_t size) { size_t new_size, new_step, delta; void *buffer; size += 1; // Add extra space for '\0' /* nothing to do */ if (size == buf->size) return EINA_TRUE; else if (size > buf->size) delta = size - buf->size; else delta = buf->size - size; /* check if should keep the same step (just used while growing) */ if ((delta <= buf->step) && (size > buf->size)) new_step = buf->step; else { new_step = (((delta / EINA_STRBUF_INIT_STEP) + 1) * EINA_STRBUF_INIT_STEP); if (new_step > EINA_STRBUF_MAX_STEP) new_step = EINA_STRBUF_MAX_STEP; } new_size = (((size / new_step) + 1) * new_step); /* reallocate the buffer to the new size */ buffer = realloc(buf->buf, new_size * csize); if (EINA_UNLIKELY(!buffer)) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return EINA_FALSE; } buf->buf = buffer; buf->size = new_size; buf->step = new_step; eina_error_set(0); return EINA_TRUE; } /** * @internal * * If required, enlarge the buffer to fit the new size. * * @param csize the character size * @param buf the buffer to resize * @param size the minimum size of the buffer * * @return #EINA_TRUE on success, #EINA_FALSE on failure. */ Eina_Bool _eina_strbuf_common_grow(size_t csize, Eina_Strbuf *buf, size_t size) { if ((size + 1) < buf->size) return EINA_TRUE; return _eina_strbuf_common_resize(csize, buf, size); } /** * @internal * * insert string of known length at random within existing strbuf limits. * * @param csize the character size * @param buf the buffer to resize, must be valid. * @param str the string to copy, must be valid (!NULL and smaller than @a len) * @param len the amount of bytes in @a str to copy, must be valid. * @param pos the position inside buffer to insert, must be valid (smaller * than eina_strbuf_common_length_get()) * * @return #EINA_TRUE on success, #EINA_FALSE on failure. */ static inline Eina_Bool _eina_strbuf_common_insert_length(size_t csize, Eina_Strbuf *buf, const void *str, size_t len, size_t pos) { if (EINA_UNLIKELY(!_eina_strbuf_common_grow(csize, buf, buf->len + len))) return EINA_FALSE; /* move the existing text */ memmove(((unsigned char *)(buf->buf)) + ((len + pos) * csize), ((unsigned char *)(buf->buf)) + (pos * csize), (buf->len - pos) * csize); /* and now insert the given string */ memcpy((unsigned char *)buf->buf + (pos * csize), str, len * csize); buf->len += len; memset(((unsigned char *)(buf->buf)) + (buf->len * csize), 0, csize); return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ /** * @internal * @brief Create a new string buffer. * * @param csize the character size * @return Newly allocated string buffer instance. * * This function creates a new string buffer. On error, @c NULL is * returned and Eina error is set to #EINA_ERROR_OUT_OF_MEMORY. To * free the resources, use eina_strbuf_common_free(). * * @see eina_strbuf_common_free() * @see eina_strbuf_common_append() * @see eina_strbuf_common_string_get() */ Eina_Strbuf * eina_strbuf_common_new(size_t csize) { Eina_Strbuf *buf; eina_error_set(0); buf = malloc(sizeof(Eina_Strbuf)); if (EINA_UNLIKELY(!buf)) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } if (EINA_UNLIKELY(!_eina_strbuf_common_init(csize, buf))) { eina_strbuf_common_free(buf); return NULL; } return buf; } /** * @internal * @brief Create a new string buffer managing str. * * @param csize the character size * @param str the string to manage * @param len the length of the string to manage * @return Newly allocated string buffer instance. * * This function creates a new string buffer. On error, @c NULL is * returned and Eina error is set to #EINA_ERROR_OUT_OF_MEMORY. To * free the resources, use eina_strbuf_common_free(). * * @see eina_strbuf_common_free() * @see eina_strbuf_common_append() * @see eina_strbuf_common_string_get() * @since 1.1.0 */ Eina_Strbuf * eina_strbuf_common_manage_new(size_t csize, void *str, size_t len) { Eina_Strbuf *buf; eina_error_set(0); buf = malloc(sizeof(Eina_Strbuf)); if (EINA_UNLIKELY(!buf)) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } if (EINA_UNLIKELY(!_eina_strbuf_common_manage_init(csize, buf, str, len))) { eina_strbuf_common_free(buf); return NULL; } return buf; } /** * @internal * @brief Free a string buffer. * * @param buf The string buffer to free. * * This function frees the memory of @p buf. @p buf must have been * created by eina_strbuf_common_new(). */ void eina_strbuf_common_free(Eina_Strbuf *buf) { free(buf->buf); free(buf); } /** * @internal * @brief Reset a string buffer. * * @param csize the character size * @param buf The string buffer to reset. * * This function reset @p buf: the buffer len is set to 0, and the * string is set to '\\0'. No memory is free'd. */ void eina_strbuf_common_reset(size_t csize, Eina_Strbuf *buf) { buf->len = 0; buf->step = EINA_STRBUF_INIT_STEP; memset(buf->buf, 0, csize); } /** * @internal * @brief Append a string to a buffer, reallocating as necessary. * * @param csize the character size * @param buf The string buffer to append to. * @param str The string to append. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function appends @p str to @p buf. It computes the length of * @p str, so is slightly slower than eina_strbuf_common_append_length(). If * the length is known beforehand, consider using that variant. If * @p buf can't append it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. * * @see eina_strbuf_common_append() * @see eina_strbuf_common_append_length() */ Eina_Bool eina_strbuf_common_append(size_t csize, Eina_Strbuf *buf, const void *str, size_t len) { EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE); if (EINA_UNLIKELY(!_eina_strbuf_common_grow(csize, buf, buf->len + len))) return EINA_FALSE; memcpy(((unsigned char *)(buf->buf)) + (buf->len * csize), str, (len + 1) * csize); buf->len += len; return EINA_TRUE; } /** * @internal * @brief Append a string to a buffer, reallocating as necessary, * limited by the given length. * * @param csize the character size * @param buf The string buffer to append to. * @param str The string to append. * @param maxlen The maximum number of characters to append. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function appends at most @p maxlen characters of @p str to * @p buf. It can't appends more than the length of @p str. It * computes the length of @p str, so is slightly slower than * eina_strbuf_common_append_length(). If the length is known beforehand, * consider using that variant (@p maxlen should then be checked so * that it is greater than the size of @p str). If @p str can not be * appended, #EINA_FALSE is returned, otherwise, #EINA_TRUE is * returned. * * @see eina_strbuf_common_append() * @see eina_strbuf_common_append_length() */ Eina_Bool eina_strbuf_common_append_n(size_t csize, Eina_Strbuf *buf, const void *str, size_t len, size_t maxlen) { EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE); if (len > maxlen) len = maxlen; if (EINA_UNLIKELY(!_eina_strbuf_common_grow(csize, buf, buf->len + len))) return EINA_FALSE; memcpy(((unsigned char *)(buf->buf)) + (buf->len * csize), str, len * csize); buf->len += len; memset(((unsigned char *)(buf->buf)) + (buf->len * csize), 0, csize); return EINA_TRUE; } /** * @internal * @brief Append a string of exact length to a buffer, reallocating as necessary. * * @param csize the character size * @param buf The string buffer to append to. * @param str The string to append. * @param length The exact length to use. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function appends @p str to @p buf. @p str must be of size at * most @p length. It is slightly faster than eina_strbuf_common_append() as * it does not compute the size of @p str. It is useful when dealing * with strings of known size, such as eina_strngshare. If @p buf * can't append it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. * * @see eina_stringshare_length() * @see eina_strbuf_common_append() * @see eina_strbuf_common_append_n() */ Eina_Bool eina_strbuf_common_append_length(size_t csize, Eina_Strbuf *buf, const void *str, size_t length) { EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE); if (EINA_UNLIKELY(!_eina_strbuf_common_grow(csize, buf, buf->len + length))) return EINA_FALSE; memcpy(((unsigned char *)(buf->buf)) + (buf->len * csize), str, length * csize); buf->len += length; memset(((unsigned char *)(buf->buf)) + (buf->len * csize), 0, csize); return EINA_TRUE; } /** * @internal * @brief Insert a string to a buffer, reallocating as necessary. * * @param csize the character size * @param buf The string buffer to insert. * @param str The string to insert. * @param pos The position to insert the string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p str to @p buf at position @p pos. It * computes the length of @p str, so is slightly slower than * eina_strbuf_common_insert_length(). If the length is known beforehand, * consider using that variant. If @p buf can't insert it, #EINA_FALSE * is returned, otherwise #EINA_TRUE is returned. */ Eina_Bool eina_strbuf_common_insert(size_t csize, Eina_Strbuf *buf, const void *str, size_t len, size_t pos) { EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE); if (pos >= buf->len) return eina_strbuf_common_append(csize, buf, str, len); return _eina_strbuf_common_insert_length(csize, buf, str, len, pos); } /** * @internal * @brief Insert a string to a buffer, reallocating as necessary. Limited by maxlen. * * @param csize the character size * @param buf The string buffer to insert to. * @param str The string to insert. * @param maxlen The maximum number of chars to insert. * @param pos The position to insert the string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p str ot @p buf at position @p pos, with at * most @p maxlen bytes. The number of inserted characters can not be * greater than the length of @p str. It computes the length of * @p str, so is slightly slower than eina_strbuf_common_insert_length(). If the * length is known beforehand, consider using that variant (@p maxlen * should then be checked so that it is greater than the size of * @p str). If @p str can not be inserted, #EINA_FALSE is returned, * otherwise, #EINA_TRUE is returned. */ Eina_Bool eina_strbuf_common_insert_n(size_t csize, Eina_Strbuf *buf, const void *str, size_t len, size_t maxlen, size_t pos) { EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE); if (pos >= buf->len) return eina_strbuf_common_append_n(csize, buf, str, len, maxlen); if (len > maxlen) len = maxlen; return _eina_strbuf_common_insert_length(csize, buf, str, len, pos); } /** * @internal * @brief Insert a string of exact length to a buffer, reallocating as necessary. * * @param csize the character size * @param buf The string buffer to insert to. * @param str The string to insert. * @param length The exact length to use. * @param pos The position to insert the string. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p str to @p buf. @p str must be of size at * most @p length. It is slightly faster than eina_strbuf_common_insert() as * it does not compute the size of @p str. It is useful when dealing * with strings of known size, such as eina_strngshare. If @p buf * can't insert it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. * * @see eina_stringshare_length() * @see eina_strbuf_common_insert() * @see eina_strbuf_common_insert_n() */ Eina_Bool eina_strbuf_common_insert_length(size_t csize, Eina_Strbuf *buf, const void *str, size_t length, size_t pos) { EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE); if (pos >= buf->len) return eina_strbuf_common_append_length(csize, buf, str, length); return _eina_strbuf_common_insert_length(csize, buf, str, length, pos); } /** * @internal * @brief Append a character to a string buffer, reallocating as * necessary. * * @param csize the character size * @param buf The string buffer to append to. * @param c The char to append. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p c to @p buf. If it can not insert it, #EINA_FALSE * is returned, otherwise #EINA_TRUE is returned. */ Eina_Bool eina_strbuf_common_append_char(size_t csize, Eina_Strbuf *buf, const void *c) { if (EINA_UNLIKELY(!_eina_strbuf_common_grow(csize, buf, buf->len + 1))) return EINA_FALSE; memcpy(((unsigned char *)(buf->buf)) + ((buf->len)++ *csize), c, csize); memset(((unsigned char *)(buf->buf)) + (buf->len * csize), 0, csize); return EINA_TRUE; } /** * @internal * @brief Insert a character to a string buffer, reallocating as * necessary. * * @param csize the character size * @param buf The string buffer to insert to. * @param c The char to insert. * @param pos The position to insert the char. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function inserts @p c to @p buf at position @p pos. If @p buf * can't append it, #EINA_FALSE is returned, otherwise #EINA_TRUE is * returned. */ Eina_Bool eina_strbuf_common_insert_char(size_t csize, Eina_Strbuf *buf, const void *c, size_t pos) { if (pos >= buf->len) return eina_strbuf_common_append_char(csize, buf, c); return _eina_strbuf_common_insert_length(csize, buf, c, 1, pos); } /** * @internal * @brief Remove a slice of the given string buffer. * * @param csize the character size * @param buf The string buffer to remove a slice. * @param start The initial (inclusive) slice position to start * removing, in bytes. * @param end The final (non-inclusive) slice position to finish * removing, in bytes. * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function removes a slice of @p buf, starting at @p start * (inclusive) and ending at @p end (non-inclusive). Both values are * in bytes. It returns #EINA_FALSE on failure, #EINA_TRUE otherwise. */ Eina_Bool eina_strbuf_common_remove(size_t csize, Eina_Strbuf *buf, size_t start, size_t end) { size_t remove_len, tail_len; if (end >= buf->len) end = buf->len; if (end <= start) return EINA_TRUE; remove_len = end - start; if (remove_len == buf->len) { free(buf->buf); return _eina_strbuf_common_init(csize, buf); } tail_len = buf->len - end + 1; /* includes '\0' */ memmove(((unsigned char *)(buf->buf)) + (start * csize), ((unsigned char *)(buf->buf)) + (end * csize), tail_len * csize); buf->len -= remove_len; return _eina_strbuf_common_resize(csize, buf, buf->len); } /** * @internal * @brief Retrieve a pointer to the contents of a string buffer * * @param buf The string buffer. * @return The current string in the string buffer. * * This function returns the string contained in @p buf. The returned * value must not be modified and will no longer be valid if @p buf is * modified. In other words, any eina_strbuf_common_append() or similar will * make that pointer invalid. * * @see eina_strbuf_common_string_steal() */ const void * eina_strbuf_common_string_get(const Eina_Strbuf *buf) { return buf->buf; } /** * @internal * @brief Steal the contents of a string buffer. * * @param csize the character size * @param buf The string buffer to steal. * @return The current string in the string buffer. * * This function returns the string contained in @p buf. @p buf is * then initialized and does not own the returned string anymore. The * caller must release the memory of the returned string by calling * free(). * * @see eina_strbuf_common_string_get() */ void * eina_strbuf_common_string_steal(size_t csize, Eina_Strbuf *buf) { void *ret; ret = buf->buf; // TODO: Check return value and do something clever _eina_strbuf_common_init(csize, buf); return ret; } /** * @internal * @brief Free the contents of a string buffer but not the buffer. * * @param csize the character size * @param buf The string buffer to free the string of. * * This function frees the string contained in @p buf without freeing * @p buf. */ void eina_strbuf_common_string_free(size_t csize, Eina_Strbuf *buf) { free(buf->buf); _eina_strbuf_common_init(csize, buf); } /** * @internal * @brief Retrieve the length of the string buffer content. * * @param buf The string buffer. * @return The current length of the string, in bytes. * * This function returns the length of @p buf. */ size_t eina_strbuf_common_length_get(const Eina_Strbuf *buf) { return buf->len; } /** * @cond LOCAL */ /*FIXME: Implementing them here is a hack! */ #ifdef _STRBUF_CSIZE # undef _STRBUF_CSIZE #endif #ifdef _STRBUF_MAGIC # undef _STRBUF_MAGIC #endif #ifdef _STRBUF_MAGIC_STR # undef _STRBUF_MAGIC_STR #endif #define _STRBUF_CSIZE 1 #define _STRBUF_MAGIC EINA_MAGIC_STRBUF #define _STRBUF_MAGIC_STR __STRBUF_STR_MAGIC_STR static const char __STRBUF_STR_MAGIC_STR[] = "Eina Strbuf"; /** * @endcond */ EAPI Eina_Bool eina_strbuf_replace(Eina_Strbuf *buf, const char *str, const char *with, unsigned int n) { size_t len1, len2; char *spos; size_t pos; EINA_SAFETY_ON_NULL_RETURN_VAL( str, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(with, EINA_FALSE); EINA_MAGIC_CHECK_STRBUF(buf, 0); if (n == 0) return EINA_FALSE; spos = buf->buf; while (n--) { spos = strstr(spos, str); if (!spos || *spos == '\0') return EINA_FALSE; if (n) spos++; } pos = spos - (const char *)buf->buf; len1 = strlen(str); len2 = strlen(with); if (len1 != len2) { /* resize the buffer if necessary */ if (EINA_UNLIKELY(!_eina_strbuf_common_grow(_STRBUF_CSIZE, buf, buf->len - len1 + len2))) return EINA_FALSE; /* move the existing text */ memmove(((unsigned char *)(buf->buf)) + pos + len2, ((unsigned char *)(buf->buf)) + pos + len1, buf->len - pos - len1); } /* and now insert the given string */ memcpy(((unsigned char *)(buf->buf)) + pos, with, len2); buf->len += len2 - len1; memset(((unsigned char *)(buf->buf)) + buf->len, 0, 1); return EINA_TRUE; } EAPI int eina_strbuf_replace_all(Eina_Strbuf *buf, const char *str, const char *with) { size_t len1, len2, len; char *tmp_buf = NULL; char *spos; size_t pos, start; size_t pos_tmp, start_tmp; int n = 0; EINA_SAFETY_ON_NULL_RETURN_VAL( str, 0); EINA_SAFETY_ON_NULL_RETURN_VAL(with, 0); EINA_MAGIC_CHECK_STRBUF(buf, 0); spos = strstr(buf->buf, str); if (!spos || *spos == '\0') return 0; len1 = strlen(str); len2 = strlen(with); /* if the size of the two string is equal, it is fairly easy to replace them * we don't need to resize the buffer or doing other calculations */ if (len1 == len2) { while (spos) { memcpy(spos, with, len2); spos = strstr(spos + len2, str); n++; } return n; } pos = pos_tmp = spos - (const char *)buf->buf; tmp_buf = buf->buf; buf->buf = malloc(buf->size); if (EINA_UNLIKELY(!buf->buf)) { buf->buf = tmp_buf; return 0; } start = start_tmp = 0; len = buf->len; while (spos) { n++; len = (len + len2) - len1; /* resize the buffer if necessary */ if (EINA_UNLIKELY(!_eina_strbuf_common_grow(_STRBUF_CSIZE, buf, len))) { /* we have to stop replacing here, because we haven't enough * memory to go on */ len = (len + len1) - len2; break; } /* copy the untouched text */ memcpy(((unsigned char *)(buf->buf)) + start, tmp_buf + start_tmp, pos - start); /* copy the new string */ memcpy(((unsigned char *)(buf->buf)) + pos, with, len2); /* calculate the next positions */ start_tmp = pos_tmp + len1; start = pos + len2; spos = strstr(tmp_buf + start_tmp, str); /* this calculations don't make sense if spos == NULL, but the * calculated values won't be used, because the loop will stop * then */ pos_tmp = spos - tmp_buf; pos = start + pos_tmp - start_tmp; } /* and now copy the rest of the text */ memcpy(((unsigned char *)(buf->buf)) + start, tmp_buf + start_tmp, len - start); buf->len = len; memset(((unsigned char *)(buf->buf)) + buf->len, 0, 1); free(tmp_buf); return n; } eina-1.7.10/src/lib/eina_strbuf_template_c.x0000664000175000017500000000555412175475327015711 00000000000000/* * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 */ /* This file should be included from files implementing strbuf. The including file should define the following macros: * _STRBUF_DATA_TYPE * _STRBUF_CSIZE * _STRBUF_STRUCT_NAME * _STRBUF_STRLEN_FUNC(x) * _STRBUF_STRESCAPE_FUNC(x) * _STRBUF_STRSTR_FUNC(x, y) * _STRBUF_MAGIC * _STRBUF_MAGIC_STR * See how it's done in eina_ustrbuf.c and eina_strbuf.c. This just makes things * a lot easier since those are essentially the same just with different sizes. */ #include "eina_binbuf_template_c.x" /*============================================================================* * API * *============================================================================*/ EAPI _STRBUF_STRUCT_NAME * _FUNC_EXPAND(manage_new)(_STRBUF_DATA_TYPE *str) { _STRBUF_STRUCT_NAME *buf = eina_strbuf_common_manage_new(_STRBUF_CSIZE, (void *) str, _STRBUF_STRLEN_FUNC(str)); EINA_MAGIC_SET(buf, _STRBUF_MAGIC); return buf; } EAPI Eina_Bool _FUNC_EXPAND(append)(_STRBUF_STRUCT_NAME *buf, const _STRBUF_DATA_TYPE *str) { EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE); return eina_strbuf_common_append(_STRBUF_CSIZE, buf, (const void *) str, _STRBUF_STRLEN_FUNC(str)); } EAPI Eina_Bool _FUNC_EXPAND(append_escaped)(_STRBUF_STRUCT_NAME *buf, const _STRBUF_DATA_TYPE *str) { _STRBUF_DATA_TYPE *esc; Eina_Bool ret; EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE); esc = _STRBUF_STRESCAPE_FUNC(str); if (!esc) { return _FUNC_EXPAND(append)(buf, str); } ret = _FUNC_EXPAND(append)(buf, esc); if (esc) free(esc); return ret; } EAPI Eina_Bool _FUNC_EXPAND(append_n)(_STRBUF_STRUCT_NAME *buf, const _STRBUF_DATA_TYPE *str, size_t maxlen) { EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE); return eina_strbuf_common_append_n(_STRBUF_CSIZE, buf, (const void *) str, _STRBUF_STRLEN_FUNC(str), maxlen); } EAPI Eina_Bool _FUNC_EXPAND(insert)(_STRBUF_STRUCT_NAME *buf, const _STRBUF_DATA_TYPE *str, size_t pos) { EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE); return eina_strbuf_common_insert(_STRBUF_CSIZE, buf, (const void *) str, _STRBUF_STRLEN_FUNC(str), pos); } EAPI Eina_Bool _FUNC_EXPAND(insert_escaped)(_STRBUF_STRUCT_NAME *buf, const _STRBUF_DATA_TYPE *str, size_t pos) { _STRBUF_DATA_TYPE *esc; Eina_Bool ret; EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE); esc = _STRBUF_STRESCAPE_FUNC(str); if (!esc) { return _FUNC_EXPAND(insert)(buf, str, pos); } ret = _FUNC_EXPAND(insert)(buf, esc, pos); if (esc) free(esc); return ret; } EAPI Eina_Bool _FUNC_EXPAND(insert_n)(_STRBUF_STRUCT_NAME *buf, const _STRBUF_DATA_TYPE *str, size_t maxlen, size_t pos) { EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE); return eina_strbuf_common_insert_n(_STRBUF_CSIZE, buf, (const void *) str, _STRBUF_STRLEN_FUNC(str), maxlen, pos); } eina-1.7.10/src/lib/eina_share_common.c0000664000175000017500000006344212175475327014634 00000000000000/* EINA - EFL data type library * Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2010 * Carsten Haitzler, * Jorge Luis Zapata Muga, * Cedric Bail, * Gustavo Sverzut Barbieri * Tom Hacohen * Brett Nash * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . * * This file incorporates work covered by the following copyright and * permission notice: * * Copyright (C) 2008 Peter Wehrfritz * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies of the Software and its Copyright notices. In addition publicly * documented acknowledgment must be given that this software has been used if no * source code of this software is made available publicly. This includes * acknowledgments in either Copyright notices, Manuals, Publicity and Marketing * documents or any documentation provided with any product containing this * software. This License does not apply to any software that links to the * libraries provided by this software (statically or dynamically), but only to * the software provided. * * Please see the OLD-COPYING.PLAIN for a plain-english explanation of this notice * and it's intent. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #ifdef EFL_HAVE_POSIX_THREADS # include #endif #ifdef HAVE_EVIL # include #endif #include "eina_config.h" #include "eina_private.h" #include "eina_hash.h" #include "eina_rbtree.h" #include "eina_error.h" #include "eina_lock.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_share_common.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ #define EINA_SHARE_COMMON_BUCKETS 256 #define EINA_SHARE_COMMON_MASK 0xFF static const char EINA_MAGIC_SHARE_STR[] = "Eina Share"; static const char EINA_MAGIC_SHARE_HEAD_STR[] = "Eina Share Head"; static int _eina_share_common_count = 0; #define EINA_MAGIC_CHECK_SHARE_COMMON_HEAD(d, unlock, ...) \ do { \ if (!EINA_MAGIC_CHECK((d), EINA_MAGIC_SHARE_HEAD)) \ { \ EINA_MAGIC_FAIL((d), EINA_MAGIC_SHARE_HEAD); \ unlock; \ return __VA_ARGS__; \ } \ } while (0) #define EINA_MAGIC_CHECK_SHARE_COMMON_NODE(d, _node_magic, unlock) \ do { \ if (!EINA_MAGIC_CHECK((d), _node_magic)) \ { \ EINA_MAGIC_FAIL((d), _node_magic); \ unlock; \ } \ } while (0) #ifdef EINA_SHARE_USAGE typedef struct _Eina_Share_Common_Population Eina_Share_Common_Population; #endif typedef struct _Eina_Share_Common Eina_Share_Common; typedef struct _Eina_Share_Common_Node Eina_Share_Common_Node; typedef struct _Eina_Share_Common_Head Eina_Share_Common_Head; struct _Eina_Share { Eina_Share_Common *share; Eina_Magic node_magic; #ifdef EINA_SHARE_COMMON_USAGE Eina_Share_Common_Population population; int max_node_population; #endif }; struct _Eina_Share_Common { Eina_Share_Common_Head *buckets[EINA_SHARE_COMMON_BUCKETS]; EINA_MAGIC }; struct _Eina_Share_Common_Node { Eina_Share_Common_Node *next; EINA_MAGIC unsigned int length; unsigned int references; char str[]; }; struct _Eina_Share_Common_Head { EINA_RBTREE; EINA_MAGIC int hash; #ifdef EINA_SHARE_COMMON_USAGE int population; #endif Eina_Share_Common_Node *head; Eina_Share_Common_Node builtin_node; }; Eina_Bool _share_common_threads_activated = EINA_FALSE; static Eina_Lock _mutex_big; #ifdef EINA_SHARE_COMMON_USAGE struct _Eina_Share_Common_Population { int count; int max; }; static Eina_Share_Common_Population population = { 0, 0 }; static Eina_Share_Common_Population population_group[4] = { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }; static void _eina_share_common_population_init(Eina_Share *share) { unsigned int i; for (i = 0; i < sizeof (share->population_group) / sizeof (share->population_group[0]); ++i) { share->population_group[i].count = 0; share->population_group[i].max = 0; } } static void _eina_share_common_population_shutdown(Eina_Share *share) { unsigned int i; share->max_node_population = 0; share->population.count = 0; share->population.max = 0; for (i = 0; i < sizeof (share->population_group) / sizeof (share->population_group[0]); ++i) { share->population_group[i].count = 0; share->population_group[i].max = 0; } } static void _eina_share_common_population_stats(Eina_Share *share) { unsigned int i; fprintf(stderr, "eina share_common statistic:\n"); fprintf(stderr, " * maximum shared strings : %i\n", share->population.max); fprintf(stderr, " * maximum shared strings per node : %i\n", share->max_node_population); for (i = 0; i < sizeof (share->population_group) / sizeof (share->population_group[0]); ++i) fprintf(stderr, "DDD: %i strings of length %i, max strings: %i\n", share->population_group[i].count, i, share->population_group[i].max); } void eina_share_common_population_add(Eina_Share *share, int slen) { eina_lock_take(&_mutex_big); share->population.count++; if (share->population.count > share->population.max) share->population.max = share->population.count; if (slen < 4) { share->population_group[slen].count++; if (share->population_group[slen].count > share->population_group[slen].max) share->population_group[slen].max = share->population_group[slen].count; } eina_lock_release(&_mutex_big); } void eina_share_common_population_del(Eina_Share *share, int slen) { eina_lock_take(&_mutex_big); share->population.count--; if (slen < 4) share->population_group[slen].count--; eina_lock_release(&_mutex_big); } static void _eina_share_common_population_head_init(Eina_Share *share, Eina_Share_Common_Head *head) { head->population = 1; } static void _eina_share_common_population_head_add(Eina_Share *share, Eina_Share_Common_Head *head) { head->population++; if (head->population > share->max_node_population) share->max_node_population = head->population; } static void _eina_share_common_population_head_del(Eina_Share *share, Eina_Share_Common_Head *head) { head->population--; } #else /* EINA_SHARE_COMMON_USAGE undefined */ static void _eina_share_common_population_init(__UNUSED__ Eina_Share *share) { } static void _eina_share_common_population_shutdown(__UNUSED__ Eina_Share *share) { } static void _eina_share_common_population_stats(__UNUSED__ Eina_Share *share) { } void eina_share_common_population_add(__UNUSED__ Eina_Share *share, __UNUSED__ int slen) { } void eina_share_common_population_del(__UNUSED__ Eina_Share *share, __UNUSED__ int slen) { } static void _eina_share_common_population_head_init( __UNUSED__ Eina_Share *share, __UNUSED__ Eina_Share_Common_Head *head) { } static void _eina_share_common_population_head_add( __UNUSED__ Eina_Share *share, __UNUSED__ Eina_Share_Common_Head *head) { } static void _eina_share_common_population_head_del( __UNUSED__ Eina_Share *share, __UNUSED__ Eina_Share_Common_Head *head) { } #endif static int _eina_share_common_cmp(const Eina_Share_Common_Head *ed, const int *hash, __UNUSED__ int length, __UNUSED__ void *data) { EINA_MAGIC_CHECK_SHARE_COMMON_HEAD(ed, , 0); return ed->hash - *hash; } static Eina_Rbtree_Direction _eina_share_common_node(const Eina_Share_Common_Head *left, const Eina_Share_Common_Head *right, __UNUSED__ void *data) { EINA_MAGIC_CHECK_SHARE_COMMON_HEAD(left, , 0); EINA_MAGIC_CHECK_SHARE_COMMON_HEAD(right, , 0); if (left->hash - right->hash < 0) return EINA_RBTREE_LEFT; return EINA_RBTREE_RIGHT; } static void _eina_share_common_head_free(Eina_Share_Common_Head *ed, __UNUSED__ void *data) { EINA_MAGIC_CHECK_SHARE_COMMON_HEAD(ed, ); while (ed->head) { Eina_Share_Common_Node *el = ed->head; ed->head = ed->head->next; if (el != &ed->builtin_node) MAGIC_FREE(el); } MAGIC_FREE(ed); } static void _eina_share_common_node_init(Eina_Share_Common_Node *node, const char *str, int slen, unsigned int null_size, Eina_Magic node_magic) { EINA_MAGIC_SET(node, node_magic); node->references = 1; node->length = slen; memcpy(node->str, str, slen); memset(node->str + slen, 0, null_size); /* Nullify the null */ (void) node_magic; /* When magic are disable, node_magic is unused, this remove a warning. */ } static Eina_Share_Common_Head * _eina_share_common_head_alloc(int slen) { Eina_Share_Common_Head *head; const size_t head_size = offsetof(Eina_Share_Common_Head, builtin_node.str); head = malloc(head_size + slen); if (!head) eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return head; } static const char * _eina_share_common_add_head(Eina_Share *share, Eina_Share_Common_Head **p_bucket, int hash, const char *str, unsigned int slen, unsigned int null_size) { Eina_Rbtree **p_tree = (Eina_Rbtree **)p_bucket; Eina_Share_Common_Head *head; head = _eina_share_common_head_alloc(slen + null_size); if (!head) return NULL; EINA_MAGIC_SET(head, EINA_MAGIC_SHARE_HEAD); head->hash = hash; head->head = &head->builtin_node; _eina_share_common_node_init(head->head, str, slen, null_size, share->node_magic); head->head->next = NULL; _eina_share_common_population_head_init(share, head); *p_tree = eina_rbtree_inline_insert (*p_tree, EINA_RBTREE_GET(head), EINA_RBTREE_CMP_NODE_CB(_eina_share_common_node), NULL); return head->head->str; } static void _eina_share_common_del_head(Eina_Share_Common_Head **p_bucket, Eina_Share_Common_Head *head) { Eina_Rbtree **p_tree = (Eina_Rbtree **)p_bucket; *p_tree = eina_rbtree_inline_remove (*p_tree, EINA_RBTREE_GET(head), EINA_RBTREE_CMP_NODE_CB(_eina_share_common_node), NULL); MAGIC_FREE(head); } static inline Eina_Bool _eina_share_common_node_eq(const Eina_Share_Common_Node *node, const char *str, unsigned int slen) { return ((node->length == slen) && (memcmp(node->str, str, slen) == 0)); } static Eina_Share_Common_Node * _eina_share_common_head_find(Eina_Share_Common_Head *head, const char *str, unsigned int slen) { Eina_Share_Common_Node *node, *prev; node = head->head; if (_eina_share_common_node_eq(node, str, slen)) return node; prev = node; node = node->next; for (; node; prev = node, node = node->next) if (_eina_share_common_node_eq(node, str, slen)) { /* promote node, make hot items be at the beginning */ prev->next = node->next; node->next = head->head; head->head = node; return node; } return NULL; } static Eina_Bool _eina_share_common_head_remove_node(Eina_Share_Common_Head *head, const Eina_Share_Common_Node *node) { Eina_Share_Common_Node *cur, *prev; if (head->head == node) { head->head = node->next; return 1; } prev = head->head; cur = head->head->next; for (; cur; prev = cur, cur = cur->next) if (cur == node) { prev->next = cur->next; return 1; } return 0; } static Eina_Share_Common_Head * _eina_share_common_find_hash(Eina_Share_Common_Head *bucket, int hash) { return (Eina_Share_Common_Head *)eina_rbtree_inline_lookup (EINA_RBTREE_GET(bucket), &hash, 0, EINA_RBTREE_CMP_KEY_CB(_eina_share_common_cmp), NULL); } static Eina_Share_Common_Node * _eina_share_common_node_alloc(unsigned int slen, unsigned int null_size) { Eina_Share_Common_Node *node; const size_t node_size = offsetof(Eina_Share_Common_Node, str); node = malloc(node_size + slen + null_size); if (!node) eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return node; } static Eina_Share_Common_Node * _eina_share_common_node_from_str(const char *str, Eina_Magic node_magic) { Eina_Share_Common_Node *node; const size_t offset = offsetof(Eina_Share_Common_Node, str); node = (Eina_Share_Common_Node *)(str - offset); EINA_MAGIC_CHECK_SHARE_COMMON_NODE(node, node_magic, node = NULL); return node; (void) node_magic; /* When magic are disable, node_magic is unused, this remove a warning. */ } static Eina_Bool eina_iterator_array_check(const Eina_Rbtree *rbtree __UNUSED__, Eina_Share_Common_Head *head, struct dumpinfo *fdata) { Eina_Share_Common_Node *node; fdata->used += sizeof(Eina_Share_Common_Head); for (node = head->head; node; node = node->next) { printf("DDD: %5i %5i ", node->length, node->references); printf("'%.*s'\n", node->length, ((char *)node) + sizeof(Eina_Share_Common_Node)); fdata->used += sizeof(Eina_Share_Common_Node); fdata->used += node->length; fdata->saved += (node->references - 1) * node->length; fdata->dups += node->references - 1; fdata->unique++; } return EINA_TRUE; } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @internal * @brief Initialize the share_common module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the share_common module of Eina. It is called by * eina_init(). * * @see eina_init() */ Eina_Bool eina_share_common_init(Eina_Share **_share, Eina_Magic node_magic, const char *node_magic_STR) { Eina_Share *share; share = *_share = calloc(sizeof(Eina_Share), 1); if (!share) goto on_error; share->share = calloc(1, sizeof(Eina_Share_Common)); if (!share->share) goto on_error; share->node_magic = node_magic; #define EMS(n) eina_magic_string_static_set(n, n ## _STR) EMS(EINA_MAGIC_SHARE); EMS(EINA_MAGIC_SHARE_HEAD); EMS(node_magic); #undef EMS EINA_MAGIC_SET(share->share, EINA_MAGIC_SHARE); _eina_share_common_population_init(share); /* below is the common part among other all eina_share_common user */ if (_eina_share_common_count++ != 0) return EINA_TRUE; eina_lock_new(&_mutex_big); return EINA_TRUE; on_error: _eina_share_common_count--; return EINA_FALSE; } /** * @internal * @brief Shut down the share_common module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the share_common module set up by * eina_share_common_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_share_common_shutdown(Eina_Share **_share) { unsigned int i; Eina_Share *share = *_share; eina_lock_take(&_mutex_big); _eina_share_common_population_stats(share); /* remove any string still in the table */ for (i = 0; i < EINA_SHARE_COMMON_BUCKETS; i++) { eina_rbtree_delete(EINA_RBTREE_GET( share->share->buckets[i]), EINA_RBTREE_FREE_CB( _eina_share_common_head_free), NULL); share->share->buckets[i] = NULL; } MAGIC_FREE(share->share); _eina_share_common_population_shutdown(share); eina_lock_release(&_mutex_big); free(*_share); *_share = NULL; /* below is the common part among other all eina_share_common user */ if (--_eina_share_common_count != 0) return EINA_TRUE; eina_lock_free(&_mutex_big); return EINA_TRUE; } #ifdef EFL_HAVE_THREADS /** * @internal * @brief Activate the share_common mutexes. * * This function activate the mutexes in the eina share_common module. It is called by * eina_threads_init(). * * @see eina_threads_init() */ void eina_share_common_threads_init(void) { _share_common_threads_activated = EINA_TRUE; } /** * @internal * @brief Shut down the share_common mutexes. * * This function shuts down the mutexes in the share_common module. * It is called by eina_threads_shutdown(). * * @see eina_threads_shutdown() */ void eina_share_common_threads_shutdown(void) { _share_common_threads_activated = EINA_FALSE; } #endif /*============================================================================* * API * *============================================================================*/ /** * @cond LOCAL */ const char * eina_share_common_add_length(Eina_Share *share, const char *str, unsigned int slen, unsigned int null_size) { Eina_Share_Common_Head **p_bucket, *ed; Eina_Share_Common_Node *el; int hash_num, hash; if (!str) return NULL; eina_share_common_population_add(share, slen); if (slen <= 0) return NULL; hash = eina_hash_superfast(str, slen); hash_num = hash & 0xFF; hash = (hash >> 8) & EINA_SHARE_COMMON_MASK; eina_lock_take(&_mutex_big); p_bucket = share->share->buckets + hash_num; ed = _eina_share_common_find_hash(*p_bucket, hash); if (!ed) { const char *s = _eina_share_common_add_head(share, p_bucket, hash, str, slen, null_size); eina_lock_release(&_mutex_big); return s; } EINA_MAGIC_CHECK_SHARE_COMMON_HEAD(ed, eina_lock_release(&_mutex_big), NULL); el = _eina_share_common_head_find(ed, str, slen); if (el) { EINA_MAGIC_CHECK_SHARE_COMMON_NODE(el, share->node_magic, eina_lock_release(&_mutex_big)); el->references++; eina_lock_release(&_mutex_big); return el->str; } el = _eina_share_common_node_alloc(slen, null_size); if (!el) { eina_lock_release(&_mutex_big); return NULL; } _eina_share_common_node_init(el, str, slen, null_size, share->node_magic); el->next = ed->head; ed->head = el; _eina_share_common_population_head_add(share, ed); eina_lock_release(&_mutex_big); return el->str; } const char * eina_share_common_ref(Eina_Share *share, const char *str) { Eina_Share_Common_Node *node; if (!str) return NULL; eina_lock_take(&_mutex_big); node = _eina_share_common_node_from_str(str, share->node_magic); if (!node) { eina_lock_release(&_mutex_big); return str; } node->references++; eina_lock_release(&_mutex_big); eina_share_common_population_add(share, node->length); return str; } Eina_Bool eina_share_common_del(Eina_Share *share, const char *str) { unsigned int slen; Eina_Share_Common_Head *ed; Eina_Share_Common_Head **p_bucket; Eina_Share_Common_Node *node; int hash_num, hash; if (!str) return EINA_TRUE; eina_lock_take(&_mutex_big); node = _eina_share_common_node_from_str(str, share->node_magic); if (!node) goto on_error; slen = node->length; eina_share_common_population_del(share, slen); if (node->references > 1) { node->references--; eina_lock_release(&_mutex_big); return EINA_TRUE; } node->references = 0; hash = eina_hash_superfast(str, slen); hash_num = hash & 0xFF; hash = (hash >> 8) & EINA_SHARE_COMMON_MASK; p_bucket = share->share->buckets + hash_num; ed = _eina_share_common_find_hash(*p_bucket, hash); if (!ed) goto on_error; EINA_MAGIC_CHECK_SHARE_COMMON_HEAD(ed, eina_lock_release(&_mutex_big), EINA_FALSE); if (!_eina_share_common_head_remove_node(ed, node)) goto on_error; if (node != &ed->builtin_node) MAGIC_FREE(node); if (!ed->head) _eina_share_common_del_head(p_bucket, ed); else _eina_share_common_population_head_del(share, ed); eina_lock_release(&_mutex_big); return EINA_TRUE; on_error: eina_lock_release(&_mutex_big); /* possible segfault happened before here, but... */ return EINA_FALSE; } int eina_share_common_length(__UNUSED__ Eina_Share *share, const char *str) { const Eina_Share_Common_Node *node; if (!str) return -1; node = _eina_share_common_node_from_str(str, share->node_magic); if (!node) return 0; return node->length; } void eina_share_common_dump(Eina_Share *share, void (*additional_dump)( struct dumpinfo *), int used) { Eina_Iterator *it; unsigned int i; struct dumpinfo di; if (!share) return; di.used = used; di.saved = 0; di.dups = 0; di.unique = 0; printf("DDD: len ref string\n"); printf("DDD:-------------------\n"); eina_lock_take(&_mutex_big); for (i = 0; i < EINA_SHARE_COMMON_BUCKETS; i++) { if (!share->share->buckets[i]) { continue; // printf("DDD: BUCKET # %i (HEAD=%i, NODE=%i)\n", i, } // sizeof(Eina_Share_Common_Head), sizeof(Eina_Share_Common_Node)); it = eina_rbtree_iterator_prefix( (Eina_Rbtree *)share->share->buckets[i]); eina_iterator_foreach(it, EINA_EACH_CB(eina_iterator_array_check), &di); eina_iterator_free(it); } if (additional_dump) additional_dump(&di); #ifdef EINA_SHARE_COMMON_USAGE /* One character strings are not counted in the hash. */ di.saved += share->population_group[0].count * sizeof(char); di.saved += share->population_group[1].count * sizeof(char) * 2; #endif printf("DDD:-------------------\n"); printf("DDD: usage (bytes) = %i, saved = %i (%3.0f%%)\n", di.used, di.saved, di.used ? (di.saved * 100.0 / di.used) : 0.0); printf("DDD: unique: %d, duplicates: %d (%3.0f%%)\n", di.unique, di.dups, di.unique ? (di.dups * 100.0 / di.unique) : 0.0); #ifdef EINA_SHARE_COMMON_USAGE printf("DDD: Allocated strings: %i\n", share->population.count); printf("DDD: Max allocated strings: %i\n", share->population.max); for (i = 0; i < sizeof (share->population_group) / sizeof (share->population_group[0]); ++i) fprintf(stderr, "DDD: %i strings of length %i, max strings: %i\n", share->population_group[i].count, i, share->population_group[i].max); #endif eina_lock_release(&_mutex_big); } /** * @endcond */ eina-1.7.10/src/lib/eina_mmap.c0000664000175000017500000001331212175475327013103 00000000000000/* EINA - EFL data type library * Copyright (C) 2011 Carsten Haitzler * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef HAVE_SIGINFO_T #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #include #include #include #include #include #include #include #include #include #include #include #if HAVE_SIGINFO_H # include #endif #endif #include "eina_config.h" #include "eina_private.h" #include "eina_log.h" #include "eina_mmap.h" /*============================================================================* * Local * *============================================================================*/ static Eina_Bool mmap_safe = EINA_FALSE; #ifdef HAVE_SIGINFO_T static int _eina_mmap_log_dom = -1; static int _eina_mmap_zero_fd = -1; static long _eina_mmap_pagesize = -1; #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(_eina_mmap_log_dom, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(_eina_mmap_log_dom, __VA_ARGS__) static void _eina_mmap_safe_sigbus(int sig __UNUSED__, siginfo_t *siginfo, void *ptr __UNUSED__) { unsigned char *addr = (unsigned char *)(siginfo->si_addr); int perrno; /* save previous errno */ perrno = errno; /* if problems was an unaligned access - complain accordingly and abort */ if (siginfo->si_code == BUS_ADRALN) { ERR("Unaligned memory access. SIGBUS!!!"); errno = perrno; abort(); } /* send this to stderr - not eina_log. Specifically want this on stderr */ fprintf(stderr, "EINA: Data at address 0x%lx is invalid. Replacing with zero page.\n", (unsigned long)addr); /* align address to the lower page boundary */ addr = (unsigned char *)((long)addr & (~(_eina_mmap_pagesize - 1))); /* mmap a pzge of zero's from /dev/zero in there */ if (mmap(addr, _eina_mmap_pagesize, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_FIXED, _eina_mmap_zero_fd, 0) == MAP_FAILED) { /* mmap of /dev/zero failed :( */ perror("mmap"); ERR("Failed to mmap() /dev/zero in place of page. SIGBUS!!!"); errno = perrno; abort(); } /* Look into mmaped Eina_File if it was one of them, just to remember for later request */ eina_file_mmap_faulty(addr, _eina_mmap_pagesize); /* restore previous errno */ errno = perrno; } #endif /*============================================================================* * API * *============================================================================*/ EAPI Eina_Bool eina_mmap_safety_enabled_set(Eina_Bool enabled) { #ifndef HAVE_SIGINFO_T (void) enabled; return EINA_FALSE; #else if (_eina_mmap_log_dom < 0) { _eina_mmap_log_dom = eina_log_domain_register("eina_mmap", EINA_LOG_COLOR_DEFAULT); if (_eina_mmap_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_mmap"); return EINA_FALSE; } } enabled = !!enabled; if (mmap_safe == enabled) return mmap_safe; if (enabled) { struct sigaction sa; /* find out system page size the cleanest way we can */ #ifdef _SC_PAGESIZE _eina_mmap_pagesize = sysconf(_SC_PAGESIZE); if (_eina_mmap_pagesize <= 0) return EINA_FALSE; #else _eina_mmap_pagesize = 4096; #endif /* no zero page device - open it */ if (_eina_mmap_zero_fd < 0) { #ifdef HAVE_EXECVP int flags; #endif _eina_mmap_zero_fd = open("/dev/zero", O_RDWR); /* if we don;'t have one - fail to set up mmap safety */ if (_eina_mmap_zero_fd < 0) return EINA_FALSE; #ifdef HAVE_EXECVP flags = fcntl(_eina_mmap_zero_fd, F_GETFD); flags |= FD_CLOEXEC; fcntl(_eina_mmap_zero_fd, F_SETFD, flags); #endif } /* set up signal handler for SIGBUS */ sa.sa_sigaction = _eina_mmap_safe_sigbus; sa.sa_flags = SA_RESTART | SA_SIGINFO; sigemptyset(&sa.sa_mask); if (sigaction(SIGBUS, &sa, NULL) == 0) goto done; /* setup of SIGBUS handler failed, lets close zero page dev and fail */ close(_eina_mmap_zero_fd); _eina_mmap_zero_fd = -1; return EINA_FALSE; } else { /* reset signal handler to default for SIGBUS */ if (_eina_mmap_zero_fd >= 0) { close(_eina_mmap_zero_fd); _eina_mmap_zero_fd = -1; } signal(SIGBUS, SIG_DFL); } done: mmap_safe = enabled; return mmap_safe; #endif } EAPI Eina_Bool eina_mmap_safety_enabled_get(void) { return mmap_safe; } eina-1.7.10/src/lib/eina_module.c0000664000175000017500000003377712175475327013457 00000000000000/* EINA - EFL data type library * Copyright (C) 2007-2008 Jorge Luis Zapata Muga, Cedric BAIL * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifdef HAVE_ALLOCA_H # include #elif defined __GNUC__ # define alloca __builtin_alloca #elif defined _AIX # define alloca __alloca #elif defined _MSC_VER # include # define alloca _alloca #else # include # ifdef __cplusplus extern "C" # endif void *alloca (size_t); #endif #include #include #include #include #ifdef HAVE_LIBGEN_H # include #endif #ifdef HAVE_DLOPEN # include #endif #ifdef HAVE_EVIL # include #endif #ifdef HAVE_ESCAPE # include #endif #ifdef HAVE_EXOTIC_H # include #endif #include "eina_config.h" #include "eina_private.h" #include "eina_error.h" #include "eina_file.h" #include "eina_log.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" #include "eina_module.h" /*============================================================================* * Local * *============================================================================*/ /** * @cond LOCAL */ static int EINA_MODULE_LOG_DOM = -1; #ifdef ERR #undef ERR #endif #define ERR(...) EINA_LOG_DOM_ERR(EINA_MODULE_LOG_DOM, __VA_ARGS__) #ifdef WRN #undef WRN #endif #define WRN(...) EINA_LOG_DOM_WARN(EINA_MODULE_LOG_DOM, __VA_ARGS__) #ifdef DBG #undef DBG #endif #define DBG(...) EINA_LOG_DOM_DBG(EINA_MODULE_LOG_DOM, __VA_ARGS__) #ifdef _WIN32 # define SEP_C '\\' # define SEP_S "\\" #else # define SEP_C '/' # define SEP_S "/" #endif #define EINA_MODULE_SYMBOL_INIT "__eina_module_init" #define EINA_MODULE_SYMBOL_SHUTDOWN "__eina_module_shutdown" struct _Eina_Module { void *handle; int ref; const char file[]; }; typedef struct _Dir_List_Get_Cb_Data { Eina_Module_Cb cb; void *data; Eina_Array *array; } Dir_List_Get_Cb_Data; typedef struct _Dir_List_Cb_Data { Eina_Module_Cb cb; void *data; } Dir_List_Cb_Data; static Eina_Bool _dir_list_get_cb(Eina_Module *m, void *data) { Dir_List_Get_Cb_Data *cb_data = data; Eina_Bool ret = EINA_TRUE; if (cb_data->cb) ret = cb_data->cb(m, cb_data->data); if (ret) eina_array_push(cb_data->array, m); return ret; } static void _dir_list_cb(const char *name, const char *path, void *data) { Dir_List_Cb_Data *cb_data = data; size_t length; length = strlen(name); if (length < sizeof(SHARED_LIB_SUFFIX)) /* x.so */ return; if (!strcmp(name + length - sizeof(SHARED_LIB_SUFFIX) + 1, SHARED_LIB_SUFFIX)) { char *file; Eina_Module *m; length = strlen(path) + strlen(name) + 2; file = alloca(sizeof (char) * length); snprintf(file, length, "%s" SEP_S "%s", path, name); m = eina_module_new(file); if (!m) { return; /* call the user provided cb on this module */ } if (!cb_data->cb(m, cb_data->data)) eina_module_free(m); } } static void _dir_arch_list_cb(const char *name, const char *path, void *data) { Dir_List_Get_Cb_Data *cb_data = data; Eina_Module *m; char *file = NULL; size_t length; length = strlen(path) + 1 + strlen(name) + 1 + strlen((char *)(cb_data->data)) + 1 + sizeof("module") + sizeof(SHARED_LIB_SUFFIX) + 1; file = alloca(length); snprintf(file, length, "%s" SEP_S "%s" SEP_S "%s" SEP_S "module" SHARED_LIB_SUFFIX, path, name, (char *)(cb_data->data)); m = eina_module_new(file); if (!m) return; eina_array_push(cb_data->array, m); } /** * @endcond */ /*============================================================================* * Global * *============================================================================*/ /** * @cond LOCAL */ static const char EINA_ERROR_WRONG_MODULE_STR[] = "Wrong file format or no file module found"; static const char EINA_ERROR_MODULE_INIT_FAILED_STR[] = "Module initialisation function failed"; EAPI Eina_Error EINA_ERROR_WRONG_MODULE = 0; EAPI Eina_Error EINA_ERROR_MODULE_INIT_FAILED = 0; /** * @endcond */ /** * @internal * @brief Initialize the module loader module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function sets up the module loader module of Eina. It is * called by eina_init(). * * This function sets up the module module of Eina. It also registers * the errors #EINA_ERROR_WRONG_MODULE and #EINA_ERROR_MODULE_INIT_FAILED. * * @see eina_init() */ Eina_Bool eina_module_init(void) { EINA_MODULE_LOG_DOM = eina_log_domain_register ("eina_module", EINA_LOG_COLOR_DEFAULT); if (EINA_MODULE_LOG_DOM < 0) { EINA_LOG_ERR("Could not register log domain: eina_module"); return EINA_FALSE; } #define EEMR(n) n = eina_error_msg_static_register(n ## _STR) EEMR(EINA_ERROR_WRONG_MODULE); EEMR(EINA_ERROR_MODULE_INIT_FAILED); #undef EEMR return EINA_TRUE; } /** * @internal * @brief Shut down the module loader module. * * @return #EINA_TRUE on success, #EINA_FALSE on failure. * * This function shuts down the module loader module set up by * eina_module_init(). It is called by eina_shutdown(). * * @see eina_shutdown() */ Eina_Bool eina_module_shutdown(void) { /* TODO should we store every module when "new" is called and * delete the list of modules here */ eina_log_domain_unregister(EINA_MODULE_LOG_DOM); EINA_MODULE_LOG_DOM = -1; return EINA_TRUE; } /*============================================================================* * API * *============================================================================*/ EAPI Eina_Module *eina_module_new(const char *file) { Eina_Module *m; size_t len; EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL); /* TODO check that the file exists. Update doc too */ len = strlen(file); EINA_SAFETY_ON_FALSE_RETURN_VAL(len > 0, NULL); m = malloc(sizeof(Eina_Module) + len + 1); if (!m) { ERR("could not malloc(%lu)", (unsigned long)(sizeof(Eina_Module) + len + 1)); return NULL; } memcpy((char *)m->file, file, len + 1); m->ref = 0; m->handle = NULL; DBG("m=%p, file=%s", m, file); return m; } EAPI Eina_Bool eina_module_free(Eina_Module *m) { EINA_SAFETY_ON_NULL_RETURN_VAL(m, EINA_FALSE); DBG("m=%p, handle=%p, file=%s, refs=%d", m, m->handle, m->file, m->ref); if (m->handle) if (eina_module_unload(m) == EINA_FALSE) return EINA_FALSE; free(m); return EINA_TRUE; } EAPI Eina_Bool eina_module_load(Eina_Module *m) { #ifdef HAVE_DLOPEN void *dl_handle; Eina_Module_Init *initcall; EINA_SAFETY_ON_NULL_RETURN_VAL(m, EINA_FALSE); DBG("m=%p, handle=%p, file=%s, refs=%d", m, m->handle, m->file, m->ref); if (m->handle) goto loaded; dl_handle = dlopen(m->file, RTLD_NOW); if (!dl_handle) { WRN("could not dlopen(\"%s\", RTLD_NOW): %s", m->file, dlerror()); eina_error_set(EINA_ERROR_WRONG_MODULE); return EINA_FALSE; } initcall = dlsym(dl_handle, EINA_MODULE_SYMBOL_INIT); if ((!initcall) || (!(*initcall))) goto ok; if ((*initcall)() == EINA_TRUE) goto ok; WRN("could not find eina's entry symbol %s inside module %s", EINA_MODULE_SYMBOL_INIT, m->file); eina_error_set(EINA_ERROR_MODULE_INIT_FAILED); dlclose(dl_handle); return EINA_FALSE; ok: DBG("successfully loaded %s", m->file); m->handle = dl_handle; loaded: m->ref++; DBG("ref %d", m->ref); eina_error_set(0); return EINA_TRUE; #else (void) m; return EINA_FALSE; #endif } EAPI Eina_Bool eina_module_unload(Eina_Module *m) { #ifdef HAVE_DLOPEN Eina_Module_Shutdown *shut; EINA_SAFETY_ON_NULL_RETURN_VAL(m, EINA_FALSE); DBG("m=%p, handle=%p, file=%s, refs=%d", m, m->handle, m->file, m->ref); m->ref--; if (!m->ref) { shut = dlsym(m->handle, EINA_MODULE_SYMBOL_SHUTDOWN); if ((shut) && (*shut)) (*shut)(); dlclose(m->handle); m->handle = NULL; DBG("unloaded module %s", m->file); return EINA_TRUE; } return EINA_FALSE; #else (void) m; return EINA_FALSE; #endif } EAPI void *eina_module_symbol_get(const Eina_Module *m, const char *symbol) { #ifdef HAVE_DLOPEN EINA_SAFETY_ON_NULL_RETURN_VAL(m, NULL); EINA_SAFETY_ON_NULL_RETURN_VAL(m->handle, NULL); return dlsym(m->handle, symbol); #else (void) m; (void) symbol; return NULL; #endif } EAPI const char *eina_module_file_get(const Eina_Module *m) { EINA_SAFETY_ON_NULL_RETURN_VAL(m, NULL); return m->file; } EAPI char *eina_module_symbol_path_get(const void *symbol, const char *sub_dir) { #ifdef HAVE_DLADDR Dl_info eina_dl; EINA_SAFETY_ON_NULL_RETURN_VAL(symbol, NULL); if (dladdr(symbol, &eina_dl)) { char *pos = strrchr(eina_dl.dli_fname, SEP_C); if (pos) { char *path; int l0; int l1; int l2 = 0; l0 = strlen(eina_dl.dli_fname); l1 = strlen(pos); if (sub_dir && (*sub_dir != '\0')) l2 = strlen(sub_dir); path = malloc(l0 - l1 + l2 + 1); if (path) { memcpy(path, eina_dl.dli_fname, l0 - l1); if (sub_dir && (*sub_dir != '\0')) memcpy(path + l0 - l1, sub_dir, l2); path[l0 - l1 + l2] = '\0'; return path; } } } #else (void) symbol; (void) sub_dir; #endif /* ! HAVE_DLADDR */ return NULL; } EAPI char *eina_module_environment_path_get(const char *env, const char *sub_dir) { const char *env_dir; EINA_SAFETY_ON_NULL_RETURN_VAL(env, NULL); env_dir = getenv(env); if (env_dir) { char *path; size_t l1; size_t l2 = 0; l1 = strlen(env_dir); if (sub_dir && (*sub_dir != '\0')) l2 = strlen(sub_dir); path = (char *)malloc(l1 + l2 + 1); if (path) { memcpy(path, env_dir, l1); if (sub_dir && (*sub_dir != '\0')) memcpy(path + l1, sub_dir, l2); path[l1 + l2] = '\0'; return path; } } return NULL; } EAPI Eina_Array *eina_module_arch_list_get(Eina_Array *array, const char *path, const char *arch) { Dir_List_Get_Cb_Data list_get_cb_data; if ((!path) || (!arch)) return array; list_get_cb_data.array = array ? array : eina_array_new(4); list_get_cb_data.cb = NULL; list_get_cb_data.data = (void *)arch; eina_file_dir_list(path, 0, &_dir_arch_list_cb, &list_get_cb_data); return list_get_cb_data.array; } EAPI Eina_Array *eina_module_list_get(Eina_Array *array, const char *path, Eina_Bool recursive, Eina_Module_Cb cb, void *data) { Dir_List_Get_Cb_Data list_get_cb_data; Dir_List_Cb_Data list_cb_data; if (!path) return array; list_get_cb_data.array = array ? array : eina_array_new(4); list_get_cb_data.cb = cb; list_get_cb_data.data = data; list_cb_data.cb = &_dir_list_get_cb; list_cb_data.data = &list_get_cb_data; eina_file_dir_list(path, recursive, &_dir_list_cb, &list_cb_data); return list_get_cb_data.array; } EAPI Eina_Module * eina_module_find(const Eina_Array *array, const char *module) { unsigned int i; Eina_Array_Iterator iterator; Eina_Module *m; EINA_ARRAY_ITER_NEXT(array, i, m, iterator) { char *file_m; char *tmp; ssize_t len; /* basename() can modify its argument, so we first get a copie */ /* do not use strdupa, as opensolaris does not have it */ len = strlen(eina_module_file_get(m)); tmp = alloca(len + 1); memcpy(tmp, eina_module_file_get(m), len + 1); file_m = basename(tmp); len = strlen(file_m); len -= sizeof(SHARED_LIB_SUFFIX) - 1; if (len <= 0) continue; if (!strncmp(module, file_m, len)) return m;; } return NULL; } EAPI void eina_module_list_load(Eina_Array *array) { Eina_Array_Iterator iterator; Eina_Module *m; unsigned int i; EINA_SAFETY_ON_NULL_RETURN(array); DBG("array %p, count %u", array, array->count); EINA_ARRAY_ITER_NEXT(array, i, m, iterator) eina_module_load(m); } EAPI void eina_module_list_unload(Eina_Array *array) { Eina_Array_Iterator iterator; Eina_Module *m; unsigned int i; EINA_SAFETY_ON_NULL_RETURN(array); DBG("array %p, count %u", array, array->count); EINA_ARRAY_ITER_NEXT(array, i, m, iterator) eina_module_unload(m); } EAPI void eina_module_list_free(Eina_Array *array) { Eina_Array_Iterator iterator; Eina_Module *m; unsigned int i; EINA_SAFETY_ON_NULL_RETURN(array); DBG("array %p, count %u", array, array->count); EINA_ARRAY_ITER_NEXT(array, i, m, iterator) eina_module_free(m); eina_array_flush(array); } eina-1.7.10/src/modules/0000775000175000017500000000000012247700051011754 500000000000000eina-1.7.10/src/modules/Makefile.in0000664000175000017500000005011612247700043013745 00000000000000# Makefile.in generated by automake 1.13.4 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@ subdir = src/modules DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d 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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ SUBDIRS = mp MAINTAINERCLEANFILES = \ Makefile.in 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) --gnu src/modules/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/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): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool 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 mostlyclean-libtool 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 clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ 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 mostlyclean-libtool 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: eina-1.7.10/src/modules/mp/0000775000175000017500000000000012247700051012370 500000000000000eina-1.7.10/src/modules/mp/Makefile.in0000664000175000017500000005162212247700043014364 00000000000000# Makefile.in generated by automake 1.13.4 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@ @EINA_BUILD_BUDDY_TRUE@@EINA_STATIC_BUILD_BUDDY_FALSE@am__append_1 = buddy @EINA_BUILD_CHAINED_POOL_TRUE@@EINA_STATIC_BUILD_CHAINED_POOL_FALSE@am__append_2 = chained_pool @EINA_BUILD_EMEMOA_FIXED_TRUE@@EINA_STATIC_BUILD_EMEMOA_FIXED_FALSE@am__append_3 = ememoa_fixed @EINA_BUILD_EMEMOA_UNKNOWN_TRUE@@EINA_STATIC_BUILD_EMEMOA_UNKNOWN_FALSE@am__append_4 = ememoa_unknown @EINA_BUILD_FIXED_BITMAP_TRUE@@EINA_STATIC_BUILD_FIXED_BITMAP_FALSE@am__append_5 = fixed_bitmap @EINA_BUILD_ONE_BIG_TRUE@@EINA_STATIC_BUILD_ONE_BIG_FALSE@am__append_6 = one_big @EINA_BUILD_PASS_THROUGH_TRUE@@EINA_STATIC_BUILD_PASS_THROUGH_FALSE@am__append_7 = pass_through subdir = src/modules/mp DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d 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 = buddy chained_pool ememoa_fixed ememoa_unknown \ fixed_bitmap one_big pass_through 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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ MAINTAINERCLEANFILES = Makefile.in SUBDIRS = $(am__append_1) $(am__append_2) $(am__append_3) \ $(am__append_4) $(am__append_5) $(am__append_6) \ $(am__append_7) 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) --gnu src/modules/mp/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/mp/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): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool 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 mostlyclean-libtool 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 clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ 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 mostlyclean-libtool 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: eina-1.7.10/src/modules/mp/ememoa_unknown/0000775000175000017500000000000012247700051015412 500000000000000eina-1.7.10/src/modules/mp/ememoa_unknown/eina_ememoa_unknown.c0000664000175000017500000001105112175475327021531 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric BAIL * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include "eina_types.h" #include "eina_module.h" #include "eina_private.h" #include "eina_mempool.h" typedef struct _Eina_Ememoa_Unknown_Size_Mempool Eina_Ememoa_Unknown_Size_Mempool; struct _Eina_Ememoa_Unknown_Size_Mempool { struct ememoa_mempool_desc_s *desc; int pool; }; static void * eina_ememoa_unknown_size_malloc(void *data, unsigned int size) { Eina_Ememoa_Unknown_Size_Mempool *efm = data; return ememoa_mempool_unknown_size_pop_object(efm->pool, size); } static void eina_ememoa_unknown_size_free(void *data, void *ptr) { Eina_Ememoa_Unknown_Size_Mempool *efm = data; ememoa_mempool_unknown_size_push_object(efm->pool, ptr); } static void * eina_ememoa_unknown_size_realloc(void *data, void *element, unsigned int size) { Eina_Ememoa_Unknown_Size_Mempool *efm = data; return ememoa_mempool_unknown_size_resize_object(efm->pool, element, size); } static void eina_ememoa_unknown_size_gc(void *data) { Eina_Ememoa_Unknown_Size_Mempool *efm = data; ememoa_mempool_unknown_size_garbage_collect(efm->pool); } static void eina_ememoa_unknown_size_statistics(void *data) { Eina_Ememoa_Unknown_Size_Mempool *efm = data; ememoa_mempool_unknown_size_display_statistic(efm->pool); } static void * eina_ememoa_unknown_size_init(const char *context, __UNUSED__ const char *option, va_list args) { struct ememoa_mempool_desc_s *desc = NULL; Eina_Ememoa_Unknown_Size_Mempool *efm = NULL; Eina_Bool thread_protect; unsigned int *items_map = NULL; unsigned int items_count; unsigned int i; int context_length; if (context) { context_length = strlen(context) + 1; desc = calloc(1, sizeof (struct ememoa_mempool_desc_s) + context_length); if (!desc) goto on_error; desc->name = (char *)(desc + 1); memcpy((char *)desc->name, context, context_length); } thread_protect = va_arg(args, int); items_count = va_arg(args, unsigned int); items_map = malloc(sizeof (unsigned int) * 2 * items_count); for (i = 0; i < (items_count << 1); ++i) items_map[i] = va_arg(args, unsigned int); efm = malloc(sizeof (Eina_Ememoa_Unknown_Size_Mempool)); if (!efm) goto on_error; efm->desc = desc; efm->pool = ememoa_mempool_unknown_size_init( items_count, items_map, thread_protect ? EMEMOA_THREAD_PROTECTION : 0, efm->desc); if (efm->pool < 0) goto on_error; return efm; on_error: if (items_map) free(items_map); if (desc) free(desc); if (efm) free(efm); return NULL; } static void eina_ememoa_unknown_size_shutdown(void *data) { Eina_Ememoa_Unknown_Size_Mempool *efm = data; if (efm->desc) free(efm->desc); ememoa_mempool_unknown_size_clean(efm->pool); free(efm); } static Eina_Mempool_Backend _eina_ememoa_unknown_mp_backend = { .name = "ememoa_unknown", .init = &eina_ememoa_unknown_size_init, .shutdown = &eina_ememoa_unknown_size_shutdown, .realloc = &eina_ememoa_unknown_size_realloc, .alloc = &eina_ememoa_unknown_size_malloc, .free = &eina_ememoa_unknown_size_free, .garbage_collect = &eina_ememoa_unknown_size_gc, .statistics = &eina_ememoa_unknown_size_statistics, .repack = NULL }; Eina_Bool ememoa_unknown_init(void) { return eina_mempool_register(&_eina_ememoa_unknown_mp_backend); } void ememoa_unknown_shutdown(void) { eina_mempool_unregister(&_eina_ememoa_unknown_mp_backend); } #ifndef EINA_STATIC_BUILD_EMEMOA_UNKNOWN EINA_MODULE_INIT(ememoa_unknown_init); EINA_MODULE_SHUTDOWN(ememoa_unknown_shutdown); #endif /* ! EINA_STATIC_BUILD_EMEMOA_UNKNOWN */ eina-1.7.10/src/modules/mp/ememoa_unknown/Makefile.in0000664000175000017500000006007712247700043017412 00000000000000# Makefile.in generated by automake 1.13.4 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@ subdir = src/modules/mp/ememoa_unknown DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = 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)$(controllerdir)" LTLIBRARIES = $(controller_LTLIBRARIES) module_la_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la am_module_la_OBJECTS = module_la-eina_ememoa_unknown.lo module_la_OBJECTS = $(am_module_la_OBJECTS) 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 = module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(module_la_CFLAGS) $(CFLAGS) $(module_la_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 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(module_la_SOURCES) DIST_SOURCES = $(module_la_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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ @EMEMOA_CFLAGS@ \ @EFL_EINA_BUILD@ controllerdir = $(libdir)/eina/modules/mp/ememoa_unknown/$(MODULE_ARCH) controller_LTLIBRARIES = module.la module_la_SOURCES = \ eina_ememoa_unknown.c module_la_CFLAGS = @EINA_CFLAGS@ module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EMEMOA_LIBS@ @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static all: all-am .SUFFIXES: .SUFFIXES: .c .lo .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) --gnu src/modules/mp/ememoa_unknown/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/mp/ememoa_unknown/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-controllerLTLIBRARIES: $(controller_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(controllerdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(controllerdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(controllerdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(controllerdir)"; \ } uninstall-controllerLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(controllerdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(controllerdir)/$$f"; \ done clean-controllerLTLIBRARIES: -test -z "$(controller_LTLIBRARIES)" || rm -f $(controller_LTLIBRARIES) @list='$(controller_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES) $(EXTRA_module_la_DEPENDENCIES) $(AM_V_CCLD)$(module_la_LINK) -rpath $(controllerdir) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-eina_ememoa_unknown.Plo@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 $< .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 `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< module_la-eina_ememoa_unknown.lo: eina_ememoa_unknown.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -MT module_la-eina_ememoa_unknown.lo -MD -MP -MF $(DEPDIR)/module_la-eina_ememoa_unknown.Tpo -c -o module_la-eina_ememoa_unknown.lo `test -f 'eina_ememoa_unknown.c' || echo '$(srcdir)/'`eina_ememoa_unknown.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-eina_ememoa_unknown.Tpo $(DEPDIR)/module_la-eina_ememoa_unknown.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='eina_ememoa_unknown.c' object='module_la-eina_ememoa_unknown.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -c -o module_la-eina_ememoa_unknown.lo `test -f 'eina_ememoa_unknown.c' || echo '$(srcdir)/'`eina_ememoa_unknown.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs 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 $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(controllerdir)"; 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-controllerLTLIBRARIES clean-generic clean-libtool \ clean-local 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-controllerLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook 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 \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-controllerLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-controllerLTLIBRARIES clean-generic clean-libtool \ clean-local cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-controllerLTLIBRARIES install-data \ install-data-am install-data-hook 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 mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am \ uninstall-controllerLTLIBRARIES uninstall-hook install-data-hook: rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES) uninstall-hook: rm -f $(DESTDIR)$(controllerdir)/module.* clean-local: rm -rf *.gcno # 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: eina-1.7.10/src/modules/mp/ememoa_unknown/Makefile.am0000664000175000017500000000140312175475327017403 00000000000000MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ @EMEMOA_CFLAGS@ \ @EFL_EINA_BUILD@ controllerdir = $(libdir)/eina/modules/mp/ememoa_unknown/$(MODULE_ARCH) controller_LTLIBRARIES = module.la module_la_SOURCES = \ eina_ememoa_unknown.c module_la_CFLAGS = @EINA_CFLAGS@ module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EMEMOA_LIBS@ @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static install-data-hook: rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES) uninstall-hook: rm -f $(DESTDIR)$(controllerdir)/module.* clean-local: rm -rf *.gcno eina-1.7.10/src/modules/mp/buddy/0000775000175000017500000000000012247700051013477 500000000000000eina-1.7.10/src/modules/mp/buddy/Makefile.in0000664000175000017500000005754212247700043015502 00000000000000# Makefile.in generated by automake 1.13.4 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@ subdir = src/modules/mp/buddy DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = 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)$(controllerdir)" LTLIBRARIES = $(controller_LTLIBRARIES) module_la_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la am_module_la_OBJECTS = module_la-eina_buddy.lo module_la_OBJECTS = $(am_module_la_OBJECTS) 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 = module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(module_la_CFLAGS) $(CFLAGS) $(module_la_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 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(module_la_SOURCES) DIST_SOURCES = $(module_la_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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ @EFL_EINA_BUILD@ controllerdir = $(libdir)/eina/modules/mp/buddy/$(MODULE_ARCH) controller_LTLIBRARIES = module.la module_la_SOURCES = \ eina_buddy.c module_la_CFLAGS = @EINA_CFLAGS@ module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static all: all-am .SUFFIXES: .SUFFIXES: .c .lo .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) --gnu src/modules/mp/buddy/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/mp/buddy/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-controllerLTLIBRARIES: $(controller_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(controllerdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(controllerdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(controllerdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(controllerdir)"; \ } uninstall-controllerLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(controllerdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(controllerdir)/$$f"; \ done clean-controllerLTLIBRARIES: -test -z "$(controller_LTLIBRARIES)" || rm -f $(controller_LTLIBRARIES) @list='$(controller_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES) $(EXTRA_module_la_DEPENDENCIES) $(AM_V_CCLD)$(module_la_LINK) -rpath $(controllerdir) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-eina_buddy.Plo@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 $< .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 `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< module_la-eina_buddy.lo: eina_buddy.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -MT module_la-eina_buddy.lo -MD -MP -MF $(DEPDIR)/module_la-eina_buddy.Tpo -c -o module_la-eina_buddy.lo `test -f 'eina_buddy.c' || echo '$(srcdir)/'`eina_buddy.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-eina_buddy.Tpo $(DEPDIR)/module_la-eina_buddy.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='eina_buddy.c' object='module_la-eina_buddy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -c -o module_la-eina_buddy.lo `test -f 'eina_buddy.c' || echo '$(srcdir)/'`eina_buddy.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs 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 $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(controllerdir)"; 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-controllerLTLIBRARIES clean-generic clean-libtool \ clean-local 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-controllerLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook 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 \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-controllerLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-controllerLTLIBRARIES clean-generic clean-libtool \ clean-local cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-controllerLTLIBRARIES install-data \ install-data-am install-data-hook 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 mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am \ uninstall-controllerLTLIBRARIES uninstall-hook install-data-hook: rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES) uninstall-hook: rm -f $(DESTDIR)$(controllerdir)/module.* clean-local: rm -rf *.gcno # 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: eina-1.7.10/src/modules/mp/buddy/eina_buddy.c0000664000175000017500000001727612175475327015722 00000000000000/* EINA - EFL data type library * Copyright (C) 2009 Jorge Luis Zapata Muga * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ /* * This is a naive 'buddy' allocator following Knuth's documentation. * The main difference is that we dont store the block information * on the block memory itself but on another malloc'd area. * This is useful for managing memory which isn't as fast as the main * memory like the video memory * The algorithm uses an area to store the linked list of blocks. * Each block size is equal to the minimum allocatable block size for * the memory pool and the number of blocks is equal to the size of the * memory pool divided by the block size. */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_types.h" #include "eina_inlist.h" #include "eina_module.h" #include "eina_mempool.h" #include "eina_private.h" typedef struct _Block { EINA_INLIST; Eina_Bool available : 1; unsigned short int order : 7; /* final order is order + min_order */ } Block; typedef struct _Buddy { void *heap; /* start address of the heap */ size_t size; /* total size in bytes of the heap */ unsigned int min_order; /* minimum size is 1 << min_order */ unsigned int max_order; /* maximum size is 1 << max_order */ unsigned int num_order; /* number of orders */ Eina_Inlist **areas; /* one area per order */ Block *blocks; /* the allocated block information */ } Buddy; /* get the minimum order greater or equal to size */ static inline unsigned int _get_order(Buddy *b, size_t size) { unsigned int i; size_t bytes; bytes = 1 << b->min_order; for (i = 0; bytes < size && i < b->num_order; i++) { bytes += bytes; } //printf("order for size %d is %d\n", size, i + b->min_order); return i; } static inline void *_get_offset(Buddy *b, Block *block) { void *ret; ret = (char *)b->heap + ((block - &b->blocks[0]) << b->min_order); return ret; } static void *_init(__UNUSED__ const char *context, __UNUSED__ const char *options, va_list args) { Buddy *b; int i; size_t bytes; size_t size; size_t min_order; void *heap; heap = va_arg(args, void *); size = va_arg(args, size_t); min_order = va_arg(args, int); /* the minimum order we support is 15 (32K) */ min_order = min_order < 15 ? 15 : min_order; bytes = 1 << min_order; for (i = 0; bytes <= size; i++) { bytes += bytes; } if (!i) return NULL; b = malloc(sizeof(Buddy)); b->heap = heap; b->size = size; b->min_order = min_order; b->max_order = min_order + i - 1; b->num_order = i; b->areas = calloc(b->num_order, sizeof(Eina_Inlist *)); b->blocks = calloc(1 << (b->num_order - 1), sizeof(Block)); /* setup the initial free area */ b->blocks[0].available = EINA_TRUE; b->areas[b->num_order - 1] = EINA_INLIST_GET(&(b->blocks[0])); return b; } static void _shutdown(void *data) { Buddy *b = data; free(b->blocks); free(b->areas); free(b); } static void _free(void *data, void *element) { Buddy *b = data; Block *block, *buddy; size_t offset; size_t idx; offset = (unsigned char *)element - (unsigned char *)b->heap; if (offset > b->size) return; idx = offset >> b->min_order; block = &b->blocks[idx]; //printf("free %x idx = %d order = %d buddy = %d\n", offset, idx, block->order, idx ^ (1 << block->order)); /* we should always work with the buddy at right */ if (idx & (1 << block->order)) { Block *left; idx = idx ^ (1 << block->order); left = &b->blocks[idx]; if (!left->available) goto end; else { buddy = block; block = left; b->areas[block->order] = eina_inlist_remove(b->areas[block->order], EINA_INLIST_GET(block)); block->order++; } } check: /* already on the last order */ if (block->order + b->min_order == b->max_order) { goto end; /* get the buddy */ } buddy = &b->blocks[idx ^ (1 << block->order)]; if (!buddy->available) { goto end; /* merge two blocks */ } b->areas[block->order] = eina_inlist_remove(b->areas[block->order], EINA_INLIST_GET(buddy)); block->order++; goto check; end: /* add the block to the free list */ block->available = EINA_TRUE; b->areas[block->order] = eina_inlist_append(b->areas[block->order], EINA_INLIST_GET(block)); } static void *_alloc(void *data, unsigned int size) { Buddy *b = data; Block *block, *buddy; unsigned int k, j; k = j = _get_order(b, size); /* get a free list of order k where k <= j <= max_order */ while ((j < b->num_order) && !b->areas[j]) j++; /* check that the order is on our range */ if (j + b->min_order > b->max_order) return NULL; /* get a free element on this order, if not, go splitting until we find one */ //printf("getting order %d (%d) for size %d\n", j, k, size); found: if (j == k) { void *ret; block = EINA_INLIST_CONTAINER_GET(b->areas[j], Block); block->available = EINA_FALSE; block->order = j; /* remove the block from the list */ b->areas[j] = eina_inlist_remove(b->areas[j], EINA_INLIST_GET(block)); ret = _get_offset(b, block); return ret; } block = EINA_INLIST_CONTAINER_GET(b->areas[j], Block); /* split */ b->areas[j] = eina_inlist_remove(b->areas[j], EINA_INLIST_GET(block)); j--; b->areas[j] = eina_inlist_append(b->areas[j], EINA_INLIST_GET(block)); buddy = block + (1 << j); buddy->order = j; buddy->available = EINA_TRUE; b->areas[j] = eina_inlist_append(b->areas[j], EINA_INLIST_GET(buddy)); goto found; } static void _statistics(void *data) { Buddy *b = data; unsigned int i; printf("Information:\n"); printf( "size = %zu, min_order = %d, max_order = %d, num_order = %d, num_blocks = %d (%uKB)\n", b->size, b->min_order, b->max_order, b->num_order, 1 << b->num_order, ((1 << (b->num_order)) * sizeof(Block)) / 1024); printf("Area dumping:"); /* iterate over the free lists and dump the maps */ for (i = 0; i < b->num_order; i++) { Block *block; printf("\n2^%d:", b->min_order + i); EINA_INLIST_FOREACH(b->areas[i], block) { printf(" %d", (block - &b->blocks[0])); } } printf("\nBlocks dumping:\n"); } static Eina_Mempool_Backend _backend = { "buddy", &_init, &_free, &_alloc, NULL, /* realloc */ NULL, /* garbage collect */ &_statistics, &_shutdown, NULL /* repack */ }; Eina_Bool buddy_init(void) { return eina_mempool_register(&_backend); } void buddy_shutdown(void) { eina_mempool_unregister(&_backend); } #ifndef EINA_STATIC_BUILD_BUDDY EINA_MODULE_INIT(buddy_init); EINA_MODULE_SHUTDOWN(buddy_shutdown); #endif /* ! EINA_STATIC_BUILD_BUDDY */ eina-1.7.10/src/modules/mp/buddy/Makefile.am0000664000175000017500000000132112175475327015467 00000000000000MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ @EFL_EINA_BUILD@ controllerdir = $(libdir)/eina/modules/mp/buddy/$(MODULE_ARCH) controller_LTLIBRARIES = module.la module_la_SOURCES = \ eina_buddy.c module_la_CFLAGS = @EINA_CFLAGS@ module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static install-data-hook: rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES) uninstall-hook: rm -f $(DESTDIR)$(controllerdir)/module.* clean-local: rm -rf *.gcno eina-1.7.10/src/modules/mp/chained_pool/0000775000175000017500000000000012247700051015014 500000000000000eina-1.7.10/src/modules/mp/chained_pool/Makefile.in0000664000175000017500000006014412247700043017007 00000000000000# Makefile.in generated by automake 1.13.4 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@ subdir = src/modules/mp/chained_pool DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = 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)$(controllerdir)" LTLIBRARIES = $(controller_LTLIBRARIES) module_la_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la am_module_la_OBJECTS = module_la-eina_chained_mempool.lo module_la_OBJECTS = $(am_module_la_OBJECTS) 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 = module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(module_la_CFLAGS) $(CFLAGS) $(module_la_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 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(module_la_SOURCES) DIST_SOURCES = $(module_la_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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ @EFL_EINA_BUILD@ \ @VALGRIND_CFLAGS@ controllerdir = $(libdir)/eina/modules/mp/chained_pool/$(MODULE_ARCH) controller_LTLIBRARIES = module.la module_la_SOURCES = \ eina_chained_mempool.c module_la_CFLAGS = @EINA_CFLAGS@ @EFL_PTHREAD_CFLAGS@ module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version @EFL_PTHREAD_LIBS@ module_la_LIBTOOLFLAGS = --tag=disable-static all: all-am .SUFFIXES: .SUFFIXES: .c .lo .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) --gnu src/modules/mp/chained_pool/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/mp/chained_pool/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-controllerLTLIBRARIES: $(controller_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(controllerdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(controllerdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(controllerdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(controllerdir)"; \ } uninstall-controllerLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(controllerdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(controllerdir)/$$f"; \ done clean-controllerLTLIBRARIES: -test -z "$(controller_LTLIBRARIES)" || rm -f $(controller_LTLIBRARIES) @list='$(controller_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES) $(EXTRA_module_la_DEPENDENCIES) $(AM_V_CCLD)$(module_la_LINK) -rpath $(controllerdir) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-eina_chained_mempool.Plo@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 $< .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 `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< module_la-eina_chained_mempool.lo: eina_chained_mempool.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -MT module_la-eina_chained_mempool.lo -MD -MP -MF $(DEPDIR)/module_la-eina_chained_mempool.Tpo -c -o module_la-eina_chained_mempool.lo `test -f 'eina_chained_mempool.c' || echo '$(srcdir)/'`eina_chained_mempool.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-eina_chained_mempool.Tpo $(DEPDIR)/module_la-eina_chained_mempool.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='eina_chained_mempool.c' object='module_la-eina_chained_mempool.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -c -o module_la-eina_chained_mempool.lo `test -f 'eina_chained_mempool.c' || echo '$(srcdir)/'`eina_chained_mempool.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs 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 $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(controllerdir)"; 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-controllerLTLIBRARIES clean-generic clean-libtool \ clean-local 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-controllerLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook 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 \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-controllerLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-controllerLTLIBRARIES clean-generic clean-libtool \ clean-local cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-controllerLTLIBRARIES install-data \ install-data-am install-data-hook 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 mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am \ uninstall-controllerLTLIBRARIES uninstall-hook install-data-hook: rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES) uninstall-hook: rm -f $(DESTDIR)$(controllerdir)/module.* clean-local: rm -rf *.gcno # 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: eina-1.7.10/src/modules/mp/chained_pool/eina_chained_mempool.c0000664000175000017500000003257112175475327021246 00000000000000/* EINA - EFL data type library * Copyright (C) 2008-2010 Cedric BAIL, Vincent Torri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #ifdef EFL_HAVE_POSIX_THREADS #include # ifdef EFL_DEBUG_THREADS # include # endif #endif #ifdef EINA_DEBUG_MALLOC # include #endif #ifdef EFL_HAVE_WIN32_THREADS # define WIN32_LEAN_AND_MEAN # include # undef WIN32_LEAN_AND_MEAN #endif #include "eina_inlist.h" #include "eina_error.h" #include "eina_module.h" #include "eina_mempool.h" #include "eina_trash.h" #include "eina_rbtree.h" #include "eina_lock.h" #include "eina_private.h" #ifndef NVALGRIND # include #endif #if defined DEBUG || defined EINA_DEBUG_MALLOC #include #include "eina_log.h" static int _eina_chained_mp_log_dom = -1; #ifdef INF #undef INF #endif #define INF(...) EINA_LOG_DOM_INFO(_eina_chained_mp_log_dom, __VA_ARGS__) #endif typedef struct _Chained_Mempool Chained_Mempool; struct _Chained_Mempool { Eina_Inlist *first; Eina_Rbtree *root; const char *name; int item_alloc; int pool_size; int alloc_size; int group_size; int usage; #ifdef EINA_DEBUG_MALLOC int minimal_size; #endif #ifdef EFL_DEBUG_THREADS pthread_t self; #endif Eina_Lock mutex; }; typedef struct _Chained_Pool Chained_Pool; struct _Chained_Pool { EINA_INLIST; EINA_RBTREE; Eina_Trash *base; int usage; unsigned char *last; unsigned char *limit; }; static inline Eina_Rbtree_Direction _eina_chained_mp_pool_cmp(const Eina_Rbtree *left, const Eina_Rbtree *right, __UNUSED__ void *data) { if (left < right) return EINA_RBTREE_LEFT; return EINA_RBTREE_RIGHT; } static inline int _eina_chained_mp_pool_key_cmp(const Eina_Rbtree *node, const void *key, __UNUSED__ int length, __UNUSED__ void *data) { const Chained_Pool *r = EINA_RBTREE_CONTAINER_GET(node, const Chained_Pool); if (key > (void *) r->limit) return -1; if (key < (void *) r) return 1; return 0; } static inline Chained_Pool * _eina_chained_mp_pool_new(Chained_Mempool *pool) { Chained_Pool *p; unsigned char *ptr; unsigned int alignof; eina_error_set(0); p = malloc(pool->alloc_size); if (!p) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } #ifdef EINA_DEBUG_MALLOC { size_t sz; sz = malloc_usable_size(p); if (sz - pool->minimal_size > 0) INF("Just allocated %0.2f%% to much memory in '%s' for one block of size %i that means %i bytes to much.", ((float)(sz - pool->minimal_size) * 100) / (float) (pool->alloc_size), pool->name, pool->alloc_size, sz - pool->minimal_size); } #endif alignof = eina_mempool_alignof(sizeof(Chained_Pool)); ptr = (unsigned char *)p + alignof; p->usage = 0; p->base = NULL; p->last = ptr; p->limit = ptr + pool->item_alloc * pool->pool_size; #ifndef NVALGRIND VALGRIND_MAKE_MEM_NOACCESS(ptr, pool->alloc_size - alignof); #endif return p; } static inline void _eina_chained_mp_pool_free(Chained_Pool *p) { free(p); } static int _eina_chained_mempool_usage_cmp(const Eina_Inlist *l1, const Eina_Inlist *l2) { const Chained_Pool *p1; const Chained_Pool *p2; p1 = EINA_INLIST_CONTAINER_GET(l1, const Chained_Pool); p2 = EINA_INLIST_CONTAINER_GET(l2, const Chained_Pool); return p2->usage - p1->usage; } static void * _eina_chained_mempool_alloc_in(Chained_Mempool *pool, Chained_Pool *p) { void *mem; if (p->last) { mem = p->last; p->last += pool->item_alloc; if (p->last >= p->limit) p->last = NULL; } else { #ifndef NVALGRIND VALGRIND_MAKE_MEM_DEFINED(p->base, pool->item_alloc); #endif // Request a free pointer mem = eina_trash_pop(&p->base); } // move to end - it just filled up if (!p->base && !p->last) pool->first = eina_inlist_demote(pool->first, EINA_INLIST_GET(p)); p->usage++; pool->usage++; #ifndef NVALGRIND VALGRIND_MEMPOOL_ALLOC(pool, mem, pool->item_alloc); #endif return mem; } static Eina_Bool _eina_chained_mempool_free_in(Chained_Mempool *pool, Chained_Pool *p, void *ptr) { void *pmem; // pool mem base pmem = (void *)(((unsigned char *)p) + sizeof(Chained_Pool)); // is it in pool mem? if (ptr < pmem) { #ifdef DEBUG INF("%p is inside the private part of %p pool from %p Chained_Mempool (could be the sign of a buffer underrun).", ptr, p, pool); #endif return EINA_FALSE; } // freed node points to prev free node eina_trash_push(&p->base, ptr); // next free node is now the one we freed p->usage--; pool->usage--; if (p->usage == 0) { // free bucket pool->first = eina_inlist_remove(pool->first, EINA_INLIST_GET(p)); pool->root = eina_rbtree_inline_remove(pool->root, EINA_RBTREE_GET(p), _eina_chained_mp_pool_cmp, NULL); _eina_chained_mp_pool_free(p); return EINA_TRUE; } else { // move to front pool->first = eina_inlist_promote(pool->first, EINA_INLIST_GET(p)); } return EINA_FALSE; } static void * eina_chained_mempool_malloc(void *data, __UNUSED__ unsigned int size) { Chained_Mempool *pool = data; Chained_Pool *p = NULL; void *mem; if (!eina_lock_take(&pool->mutex)) { #ifdef EFL_DEBUG_THREADS assert(pthread_equal(pool->self, pthread_self())); #endif } // Either we have some free space in the first one, or there is no free space. if (pool->first) p = EINA_INLIST_CONTAINER_GET(pool->first, Chained_Pool); // base is not NULL - has a free slot if (p && !p->base && !p->last) p = NULL; #ifdef DEBUG if (p == NULL) EINA_INLIST_FOREACH(pool->first, p) assert(!p->base && !p->last); #endif // we have reached the end of the list - no free pools if (!p) { p = _eina_chained_mp_pool_new(pool); if (!p) { eina_lock_release(&pool->mutex); return NULL; } pool->first = eina_inlist_prepend(pool->first, EINA_INLIST_GET(p)); pool->root = eina_rbtree_inline_insert(pool->root, EINA_RBTREE_GET(p), _eina_chained_mp_pool_cmp, NULL); } mem = _eina_chained_mempool_alloc_in(pool, p); eina_lock_release(&pool->mutex); return mem; } static void eina_chained_mempool_free(void *data, void *ptr) { Chained_Mempool *pool = data; Eina_Rbtree *r; Chained_Pool *p; // look 4 pool if (!eina_lock_take(&pool->mutex)) { #ifdef EFL_DEBUG_THREADS assert(pthread_equal(pool->self, pthread_self())); #endif } // searching for the right mempool r = eina_rbtree_inline_lookup(pool->root, ptr, 0, _eina_chained_mp_pool_key_cmp, NULL); // related mempool not found if (!r) { #ifdef DEBUG INF("%p is not the property of %p Chained_Mempool", ptr, pool); #endif goto on_error; } p = EINA_RBTREE_CONTAINER_GET(r, Chained_Pool); _eina_chained_mempool_free_in(pool, p, ptr); on_error: #ifndef NVALGRIND if (ptr) { VALGRIND_MEMPOOL_FREE(pool, ptr); } #endif eina_lock_release(&pool->mutex); return; } static void eina_chained_mempool_repack(void *data, Eina_Mempool_Repack_Cb cb, void *cb_data) { Chained_Mempool *pool = data; Chained_Pool *start; Chained_Pool *tail; /* FIXME: Improvement - per Chained_Pool lock */ if (!eina_lock_take(&pool->mutex)) { #ifdef EFL_DEBUG_THREADS assert(pthread_equal(pool->self, pthread_self())); #endif } pool->first = eina_inlist_sort(pool->first, (Eina_Compare_Cb) _eina_chained_mempool_usage_cmp); /* idea : remove the almost empty pool at the beginning of the list by moving data in the last pool with empty slot */ tail = EINA_INLIST_CONTAINER_GET(pool->first->last, Chained_Pool); while (tail && tail->usage == pool->pool_size) tail = EINA_INLIST_CONTAINER_GET((EINA_INLIST_GET(tail)->prev), Chained_Pool); while (tail) { unsigned char *src; unsigned char *dst; start = EINA_INLIST_CONTAINER_GET(pool->first, Chained_Pool); if (start == tail || start->usage == pool->pool_size) break; for (src = start->limit - pool->group_size; src != start->limit; src += pool->item_alloc) { Eina_Bool is_free = EINA_FALSE; Eina_Bool is_dead; /* Do we have something inside that piece of memory */ if (start->last != NULL && src >= start->last) { is_free = EINA_TRUE; } else { Eina_Trash *over = start->base; while (over != NULL && (unsigned char*) over != src) over = over->next; if (over == NULL) is_free = EINA_TRUE; } if (is_free) continue ; /* get a new memory pointer from the latest most occuped pool */ dst = _eina_chained_mempool_alloc_in(pool, tail); /* move data from one to another */ memcpy(dst, src, pool->item_alloc); /* notify caller */ cb(dst, src, cb_data); /* destroy old pointer */ is_dead = _eina_chained_mempool_free_in(pool, start, src); /* search last tail with empty slot */ while (tail && tail->usage == pool->pool_size) tail = EINA_INLIST_CONTAINER_GET((EINA_INLIST_GET(tail)->prev), Chained_Pool); /* no more free space */ if (!tail || tail == start) break; if (is_dead) break; } } /* FIXME: improvement - reorder pool so that the most used one get in front */ eina_lock_release(&pool->mutex); } static void * eina_chained_mempool_realloc(__UNUSED__ void *data, __UNUSED__ void *element, __UNUSED__ unsigned int size) { return NULL; } static void * eina_chained_mempool_init(const char *context, __UNUSED__ const char *option, va_list args) { Chained_Mempool *mp; int item_size; size_t length; length = context ? strlen(context) + 1 : 0; mp = calloc(1, sizeof(Chained_Mempool) + length); if (!mp) return NULL; item_size = va_arg(args, int); mp->pool_size = va_arg(args, int); if (length) { mp->name = (const char *)(mp + 1); memcpy((char *)mp->name, context, length); } #ifdef EINA_DEBUG_MALLOC mp->minimal_size = item_size * mp->pool_size + sizeof(Chained_Pool); #endif mp->item_alloc = eina_mempool_alignof(item_size); mp->group_size = mp->item_alloc * mp->pool_size; mp->alloc_size = mp->group_size + eina_mempool_alignof(sizeof(Chained_Pool)); #ifndef NVALGRIND VALGRIND_CREATE_MEMPOOL(mp, 0, 1); #endif #ifdef EFL_DEBUG_THREADS mp->self = pthread_self(); #endif eina_lock_new(&mp->mutex); return mp; } static void eina_chained_mempool_shutdown(void *data) { Chained_Mempool *mp; mp = (Chained_Mempool *)data; while (mp->first) { Chained_Pool *p = (Chained_Pool *)mp->first; #ifdef DEBUG if (p->usage > 0) INF("Bad news we are destroying not an empty mempool [%s]\n", mp->name); #endif mp->first = eina_inlist_remove(mp->first, mp->first); mp->root = eina_rbtree_inline_remove(mp->root, EINA_RBTREE_GET(p), _eina_chained_mp_pool_cmp, NULL); _eina_chained_mp_pool_free(p); } #ifdef DEBUG if (mp->root) INF("Bad news, list of pool and rbtree are out of sync for %p !", mp); #endif #ifndef NVALGRIND VALGRIND_DESTROY_MEMPOOL(mp); #endif eina_lock_free(&mp->mutex); #ifdef EFL_DEBUG_THREADS assert(pthread_equal(mp->self, pthread_self())); #endif free(mp); } static Eina_Mempool_Backend _eina_chained_mp_backend = { "chained_mempool", &eina_chained_mempool_init, &eina_chained_mempool_free, &eina_chained_mempool_malloc, &eina_chained_mempool_realloc, NULL, NULL, &eina_chained_mempool_shutdown, &eina_chained_mempool_repack }; Eina_Bool chained_init(void) { #if defined DEBUG || defined EINA_DEBUG_MALLOC _eina_chained_mp_log_dom = eina_log_domain_register("eina_mempool", EINA_LOG_COLOR_DEFAULT); if (_eina_chained_mp_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_mempool"); return EINA_FALSE; } #endif return eina_mempool_register(&_eina_chained_mp_backend); } void chained_shutdown(void) { eina_mempool_unregister(&_eina_chained_mp_backend); #if defined DEBUG || defined EINA_DEBUG_MALLOC eina_log_domain_unregister(_eina_chained_mp_log_dom); _eina_chained_mp_log_dom = -1; #endif } #ifndef EINA_STATIC_BUILD_CHAINED_POOL EINA_MODULE_INIT(chained_init); EINA_MODULE_SHUTDOWN(chained_shutdown); #endif /* ! EINA_STATIC_BUILD_CHAINED_POOL */ eina-1.7.10/src/modules/mp/chained_pool/Makefile.am0000664000175000017500000000143612175475327017013 00000000000000MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ @EFL_EINA_BUILD@ \ @VALGRIND_CFLAGS@ controllerdir = $(libdir)/eina/modules/mp/chained_pool/$(MODULE_ARCH) controller_LTLIBRARIES = module.la module_la_SOURCES = \ eina_chained_mempool.c module_la_CFLAGS = @EINA_CFLAGS@ @EFL_PTHREAD_CFLAGS@ module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version @EFL_PTHREAD_LIBS@ module_la_LIBTOOLFLAGS = --tag=disable-static install-data-hook: rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES) uninstall-hook: rm -f $(DESTDIR)$(controllerdir)/module.* clean-local: rm -rf *.gcno eina-1.7.10/src/modules/mp/fixed_bitmap/0000775000175000017500000000000012247700051015023 500000000000000eina-1.7.10/src/modules/mp/fixed_bitmap/Makefile.in0000664000175000017500000005776512247700043017035 00000000000000# Makefile.in generated by automake 1.13.4 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@ subdir = src/modules/mp/fixed_bitmap DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = 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)$(controllerdir)" LTLIBRARIES = $(controller_LTLIBRARIES) module_la_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la am_module_la_OBJECTS = module_la-eina_fixed_bitmap.lo module_la_OBJECTS = $(am_module_la_OBJECTS) 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 = module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(module_la_CFLAGS) $(CFLAGS) $(module_la_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 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(module_la_SOURCES) DIST_SOURCES = $(module_la_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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ @EFL_EINA_BUILD@ controllerdir = $(libdir)/eina/modules/mp/fixed_bitmap/$(MODULE_ARCH) controller_LTLIBRARIES = module.la module_la_SOURCES = \ eina_fixed_bitmap.c module_la_CFLAGS = @EINA_CFLAGS@ module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static all: all-am .SUFFIXES: .SUFFIXES: .c .lo .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) --gnu src/modules/mp/fixed_bitmap/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/mp/fixed_bitmap/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-controllerLTLIBRARIES: $(controller_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(controllerdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(controllerdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(controllerdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(controllerdir)"; \ } uninstall-controllerLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(controllerdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(controllerdir)/$$f"; \ done clean-controllerLTLIBRARIES: -test -z "$(controller_LTLIBRARIES)" || rm -f $(controller_LTLIBRARIES) @list='$(controller_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES) $(EXTRA_module_la_DEPENDENCIES) $(AM_V_CCLD)$(module_la_LINK) -rpath $(controllerdir) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-eina_fixed_bitmap.Plo@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 $< .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 `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< module_la-eina_fixed_bitmap.lo: eina_fixed_bitmap.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -MT module_la-eina_fixed_bitmap.lo -MD -MP -MF $(DEPDIR)/module_la-eina_fixed_bitmap.Tpo -c -o module_la-eina_fixed_bitmap.lo `test -f 'eina_fixed_bitmap.c' || echo '$(srcdir)/'`eina_fixed_bitmap.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-eina_fixed_bitmap.Tpo $(DEPDIR)/module_la-eina_fixed_bitmap.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='eina_fixed_bitmap.c' object='module_la-eina_fixed_bitmap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -c -o module_la-eina_fixed_bitmap.lo `test -f 'eina_fixed_bitmap.c' || echo '$(srcdir)/'`eina_fixed_bitmap.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs 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 $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(controllerdir)"; 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-controllerLTLIBRARIES clean-generic clean-libtool \ clean-local 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-controllerLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook 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 \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-controllerLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-controllerLTLIBRARIES clean-generic clean-libtool \ clean-local cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-controllerLTLIBRARIES install-data \ install-data-am install-data-hook 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 mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am \ uninstall-controllerLTLIBRARIES uninstall-hook install-data-hook: rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES) uninstall-hook: rm -f $(DESTDIR)$(controllerdir)/module.* clean-local: rm -rf *.gcno # 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: eina-1.7.10/src/modules/mp/fixed_bitmap/eina_fixed_bitmap.c0000664000175000017500000001434612175475327020565 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric BAIL * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #ifndef _MSC_VER # include #endif #include #include #ifdef HAVE_EVIL # include #endif #include "eina_inlist.h" #include "eina_rbtree.h" #include "eina_error.h" #include "eina_mempool.h" #include "eina_private.h" typedef struct _Eina_Fixed_Bitmap Eina_Fixed_Bitmap; typedef struct _Eina_Fixed_Bitmap_Pool Eina_Fixed_Bitmap_Pool; struct _Eina_Fixed_Bitmap { Eina_Rbtree *lookup; Eina_Inlist *head; int item_size; }; struct _Eina_Fixed_Bitmap_Pool { EINA_RBTREE; EINA_INLIST; uint32_t bitmask; }; static inline size_t _eina_rbtree_inlist_delta(void) { Eina_Fixed_Bitmap_Pool tmp; void *a = &tmp.__rbtree; void *b = &tmp.__in_list; return (char *)a - (char *)b; } static Eina_Rbtree_Direction _eina_fixed_cmp(const Eina_Rbtree *left, const Eina_Rbtree *right, __UNUSED__ void *data) { if (left - right < 0) return EINA_RBTREE_LEFT; return EINA_RBTREE_RIGHT; } static int _eina_fixed_cmp_key(const Eina_Rbtree *node, const void *key, __UNUSED__ int length, Eina_Fixed_Bitmap *mp) { const void *a = node; const void *b = key; ssize_t delta; ssize_t limit; limit = sizeof (Eina_Fixed_Bitmap_Pool) + mp->item_size * 32; delta = (char *)a - (char *)b; if (delta > 0) return 1; if (delta + limit < 0) return -1; return 0; } static void _eina_fixed_bitmap_pool_free(Eina_Fixed_Bitmap_Pool *pool, __UNUSED__ void *data) { free(pool); } static void * eina_fixed_bitmap_malloc(void *data, __UNUSED__ unsigned int size) { Eina_Fixed_Bitmap *mp = data; Eina_Fixed_Bitmap_Pool *pool = NULL; void *ptr; int idx; if (mp->head) { pool = (Eina_Fixed_Bitmap_Pool *)((unsigned char *)mp->head + _eina_rbtree_inlist_delta()); if (pool->bitmask == 0) pool = NULL; } if (!pool) { eina_error_set(0); pool = malloc(sizeof (Eina_Fixed_Bitmap_Pool) + mp->item_size * 32); if (!pool) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); return NULL; } pool->bitmask = 0xFFFFFFFF; mp->head = eina_inlist_prepend(mp->head, EINA_INLIST_GET(pool)); mp->lookup = eina_rbtree_inline_insert(mp->lookup, EINA_RBTREE_GET( pool), EINA_RBTREE_CMP_NODE_CB( _eina_fixed_cmp), NULL); } idx = ffs(pool->bitmask) - 1; pool->bitmask &= ~(1 << idx); ptr = (unsigned char *)(pool + 1) + idx * mp->item_size; if (pool->bitmask == 0) mp->head = eina_inlist_demote(mp->head, EINA_INLIST_GET(pool)); return ptr; } static void eina_fixed_bitmap_free(void *data, void *ptr) { Eina_Fixed_Bitmap *mp = data; Eina_Fixed_Bitmap_Pool *pool; void *a; Eina_Bool push_front = EINA_FALSE; ssize_t delta; pool = (Eina_Fixed_Bitmap_Pool *)eina_rbtree_inline_lookup( mp->lookup, ptr, 0, EINA_RBTREE_CMP_KEY_CB( _eina_fixed_cmp_key), mp); if (!pool) return; if (pool->bitmask != 0xFFFFFFFF) push_front = EINA_TRUE; a = pool; delta = ((char *)ptr - (char *)a - sizeof (Eina_Fixed_Bitmap_Pool)) / mp->item_size; assert(delta >= 0 && delta < 32); pool->bitmask |= (1 << (delta & 0x1F)); if (pool->bitmask == 0xFFFFFFFF) { mp->head = eina_inlist_remove(mp->head, EINA_INLIST_GET(pool)); mp->lookup = eina_rbtree_inline_remove(mp->lookup, EINA_RBTREE_GET( pool), EINA_RBTREE_CMP_NODE_CB( _eina_fixed_cmp), NULL); free(pool); } else if (push_front) mp->head = eina_inlist_promote(mp->head, EINA_INLIST_GET(pool)); } static void * eina_fixed_bitmap_realloc(__UNUSED__ void *data, __UNUSED__ void *element, __UNUSED__ unsigned int size) { return NULL; } static void * eina_fixed_bitmap_init(__UNUSED__ const char *context, __UNUSED__ const char *option, va_list args) { Eina_Fixed_Bitmap *mp; int item_size; mp = malloc(sizeof (Eina_Fixed_Bitmap)); if (!mp) return NULL; item_size = va_arg(args, int); mp->item_size = eina_mempool_alignof(item_size); mp->lookup = NULL; mp->head = NULL; return mp; } static void eina_fixed_bitmap_shutdown(void *data) { Eina_Fixed_Bitmap *mp = data; eina_rbtree_delete(mp->lookup, EINA_RBTREE_FREE_CB(_eina_fixed_bitmap_pool_free), NULL); free(mp); } static Eina_Mempool_Backend _eina_fixed_bitmap_mp_backend = { "fixed_bitmap", &eina_fixed_bitmap_init, &eina_fixed_bitmap_free, &eina_fixed_bitmap_malloc, &eina_fixed_bitmap_realloc, NULL, NULL, &eina_fixed_bitmap_shutdown, NULL }; Eina_Bool fixed_bitmap_init(void) { return eina_mempool_register(&_eina_fixed_bitmap_mp_backend); } void fixed_bitmap_shutdown(void) { eina_mempool_unregister(&_eina_fixed_bitmap_mp_backend); } #ifndef EINA_STATIC_BUILD_FIXED_BITMAP EINA_MODULE_INIT(fixed_bitmap_init); EINA_MODULE_SHUTDOWN(fixed_bitmap_shutdown); #endif /* ! EINA_STATIC_BUILD_FIXED_BITMAP */ eina-1.7.10/src/modules/mp/fixed_bitmap/Makefile.am0000664000175000017500000000133712175475327017022 00000000000000MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ @EFL_EINA_BUILD@ controllerdir = $(libdir)/eina/modules/mp/fixed_bitmap/$(MODULE_ARCH) controller_LTLIBRARIES = module.la module_la_SOURCES = \ eina_fixed_bitmap.c module_la_CFLAGS = @EINA_CFLAGS@ module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static install-data-hook: rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES) uninstall-hook: rm -f $(DESTDIR)$(controllerdir)/module.* clean-local: rm -rf *.gcno eina-1.7.10/src/modules/mp/ememoa_fixed/0000775000175000017500000000000012247700051015012 500000000000000eina-1.7.10/src/modules/mp/ememoa_fixed/Makefile.in0000664000175000017500000006002512247700043017003 00000000000000# Makefile.in generated by automake 1.13.4 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@ subdir = src/modules/mp/ememoa_fixed DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = 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)$(controllerdir)" LTLIBRARIES = $(controller_LTLIBRARIES) module_la_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la am_module_la_OBJECTS = module_la-eina_ememoa_fixed.lo module_la_OBJECTS = $(am_module_la_OBJECTS) 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 = module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(module_la_CFLAGS) $(CFLAGS) $(module_la_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 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(module_la_SOURCES) DIST_SOURCES = $(module_la_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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ @EMEMOA_CFLAGS@ \ @EFL_EINA_BUILD@ controllerdir = $(libdir)/eina/modules/mp/ememoa_fixed/$(MODULE_ARCH) controller_LTLIBRARIES = module.la module_la_SOURCES = \ eina_ememoa_fixed.c module_la_CFLAGS = @EINA_CFLAGS@ module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EMEMOA_LIBS@ @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static all: all-am .SUFFIXES: .SUFFIXES: .c .lo .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) --gnu src/modules/mp/ememoa_fixed/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/mp/ememoa_fixed/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-controllerLTLIBRARIES: $(controller_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(controllerdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(controllerdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(controllerdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(controllerdir)"; \ } uninstall-controllerLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(controllerdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(controllerdir)/$$f"; \ done clean-controllerLTLIBRARIES: -test -z "$(controller_LTLIBRARIES)" || rm -f $(controller_LTLIBRARIES) @list='$(controller_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES) $(EXTRA_module_la_DEPENDENCIES) $(AM_V_CCLD)$(module_la_LINK) -rpath $(controllerdir) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-eina_ememoa_fixed.Plo@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 $< .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 `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< module_la-eina_ememoa_fixed.lo: eina_ememoa_fixed.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -MT module_la-eina_ememoa_fixed.lo -MD -MP -MF $(DEPDIR)/module_la-eina_ememoa_fixed.Tpo -c -o module_la-eina_ememoa_fixed.lo `test -f 'eina_ememoa_fixed.c' || echo '$(srcdir)/'`eina_ememoa_fixed.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-eina_ememoa_fixed.Tpo $(DEPDIR)/module_la-eina_ememoa_fixed.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='eina_ememoa_fixed.c' object='module_la-eina_ememoa_fixed.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -c -o module_la-eina_ememoa_fixed.lo `test -f 'eina_ememoa_fixed.c' || echo '$(srcdir)/'`eina_ememoa_fixed.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs 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 $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(controllerdir)"; 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-controllerLTLIBRARIES clean-generic clean-libtool \ clean-local 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-controllerLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook 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 \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-controllerLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-controllerLTLIBRARIES clean-generic clean-libtool \ clean-local cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-controllerLTLIBRARIES install-data \ install-data-am install-data-hook 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 mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am \ uninstall-controllerLTLIBRARIES uninstall-hook install-data-hook: rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES) uninstall-hook: rm -f $(DESTDIR)$(controllerdir)/module.* clean-local: rm -rf *.gcno # 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: eina-1.7.10/src/modules/mp/ememoa_fixed/Makefile.am0000664000175000017500000000137712175475327017015 00000000000000MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ @EMEMOA_CFLAGS@ \ @EFL_EINA_BUILD@ controllerdir = $(libdir)/eina/modules/mp/ememoa_fixed/$(MODULE_ARCH) controller_LTLIBRARIES = module.la module_la_SOURCES = \ eina_ememoa_fixed.c module_la_CFLAGS = @EINA_CFLAGS@ module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EMEMOA_LIBS@ @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static install-data-hook: rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES) uninstall-hook: rm -f $(DESTDIR)$(controllerdir)/module.* clean-local: rm -rf *.gcno eina-1.7.10/src/modules/mp/ememoa_fixed/eina_ememoa_fixed.c0000664000175000017500000001004612175475327020534 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric BAIL * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include "eina_inlist.h" #include "eina_error.h" #include "eina_module.h" #include "eina_mempool.h" #include "eina_private.h" typedef struct _Eina_Ememoa_Fixed_Mempool Eina_Ememoa_Fixed_Mempool; struct _Eina_Ememoa_Fixed_Mempool { struct ememoa_mempool_desc_s *desc; int pool; }; static void * eina_ememoa_fixed_malloc(void *data, __UNUSED__ unsigned int size) { Eina_Ememoa_Fixed_Mempool *efm = data; return ememoa_mempool_fixed_pop_object(efm->pool); } static void eina_ememoa_fixed_free(void *data, void *ptr) { Eina_Ememoa_Fixed_Mempool *efm = data; ememoa_mempool_fixed_push_object(efm->pool, ptr); } static void * eina_ememoa_fixed_realloc(__UNUSED__ void *data, __UNUSED__ void *element, __UNUSED__ unsigned int size) { return NULL; } static void eina_ememoa_fixed_gc(void *data) { Eina_Ememoa_Fixed_Mempool *efm = data; ememoa_mempool_fixed_garbage_collect(efm->pool); } static void eina_ememoa_fixed_statistics(void *data) { Eina_Ememoa_Fixed_Mempool *efm = data; ememoa_mempool_fixed_display_statistic(efm->pool); (void)efm; } static void * eina_ememoa_fixed_init(const char *context, __UNUSED__ const char *option, va_list args) { struct ememoa_mempool_desc_s *desc = NULL; Eina_Ememoa_Fixed_Mempool *efm = NULL; Eina_Bool thread_protect; int context_length; int item_size; int pool_size; if (context) { context_length = strlen(context) + 1; desc = calloc(1, sizeof (struct ememoa_mempool_desc_s) + context_length); if (!desc) goto on_error; desc->name = (char *)(desc + 1); memcpy((char *)desc->name, context, context_length); } item_size = va_arg(args, int); pool_size = va_arg(args, int); thread_protect = va_arg(args, int); efm = malloc(sizeof (Eina_Ememoa_Fixed_Mempool)); if (!efm) goto on_error; efm->desc = desc; efm->pool = ememoa_mempool_fixed_init( item_size, pool_size, thread_protect ? EMEMOA_THREAD_PROTECTION : 0, efm->desc); if (efm->pool < 0) goto on_error; return efm; on_error: if (desc) free(desc); if (efm) free(efm); return NULL; } static void eina_ememoa_fixed_shutdown(void *data) { Eina_Ememoa_Fixed_Mempool *efm = data; if (efm->desc) free(efm->desc); ememoa_mempool_fixed_clean(efm->pool); free(efm); } static Eina_Mempool_Backend _eina_ememoa_mp_backend = { .name = "ememoa_fixed", .init = &eina_ememoa_fixed_init, .shutdown = &eina_ememoa_fixed_shutdown, .realloc = &eina_ememoa_fixed_realloc, .alloc = &eina_ememoa_fixed_malloc, .free = &eina_ememoa_fixed_free, .garbage_collect = &eina_ememoa_fixed_gc, .statistics = &eina_ememoa_fixed_statistics, .repack = NULL }; Eina_Bool ememoa_fixed_init(void) { return eina_mempool_register(&_eina_ememoa_mp_backend); } void ememoa_fixed_shutdown(void) { eina_mempool_unregister(&_eina_ememoa_mp_backend); } #ifndef EINA_STATIC_BUILD_EMEMOA_FIXED EINA_MODULE_INIT(ememoa_fixed_init); EINA_MODULE_SHUTDOWN(ememoa_fixed_shutdown); #endif /* ! EINA_STATIC_BUILD_EMEMOA_FIXED */ eina-1.7.10/src/modules/mp/one_big/0000775000175000017500000000000012247700051013772 500000000000000eina-1.7.10/src/modules/mp/one_big/Makefile.in0000664000175000017500000005771012247700043015772 00000000000000# Makefile.in generated by automake 1.13.4 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@ subdir = src/modules/mp/one_big DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = 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)$(controllerdir)" LTLIBRARIES = $(controller_LTLIBRARIES) module_la_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la am_module_la_OBJECTS = module_la-eina_one_big.lo module_la_OBJECTS = $(am_module_la_OBJECTS) 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 = module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(module_la_CFLAGS) $(CFLAGS) $(module_la_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 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(module_la_SOURCES) DIST_SOURCES = $(module_la_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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ @EFL_EINA_BUILD@ \ @VALGRIND_CFLAGS@ controllerdir = $(libdir)/eina/modules/mp/one_big/$(MODULE_ARCH) controller_LTLIBRARIES = module.la module_la_SOURCES = \ eina_one_big.c module_la_CFLAGS = @EINA_CFLAGS@ @EFL_PTHREAD_CFLAGS@ module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version @EFL_PTHREAD_LIBS@ module_la_LIBTOOLFLAGS = --tag=disable-static all: all-am .SUFFIXES: .SUFFIXES: .c .lo .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) --gnu src/modules/mp/one_big/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/mp/one_big/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-controllerLTLIBRARIES: $(controller_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(controllerdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(controllerdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(controllerdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(controllerdir)"; \ } uninstall-controllerLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(controllerdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(controllerdir)/$$f"; \ done clean-controllerLTLIBRARIES: -test -z "$(controller_LTLIBRARIES)" || rm -f $(controller_LTLIBRARIES) @list='$(controller_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES) $(EXTRA_module_la_DEPENDENCIES) $(AM_V_CCLD)$(module_la_LINK) -rpath $(controllerdir) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-eina_one_big.Plo@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 $< .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 `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< module_la-eina_one_big.lo: eina_one_big.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -MT module_la-eina_one_big.lo -MD -MP -MF $(DEPDIR)/module_la-eina_one_big.Tpo -c -o module_la-eina_one_big.lo `test -f 'eina_one_big.c' || echo '$(srcdir)/'`eina_one_big.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-eina_one_big.Tpo $(DEPDIR)/module_la-eina_one_big.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='eina_one_big.c' object='module_la-eina_one_big.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -c -o module_la-eina_one_big.lo `test -f 'eina_one_big.c' || echo '$(srcdir)/'`eina_one_big.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs 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 $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(controllerdir)"; 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-controllerLTLIBRARIES clean-generic clean-libtool \ clean-local 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-controllerLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook 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 \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-controllerLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-controllerLTLIBRARIES clean-generic clean-libtool \ clean-local cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-controllerLTLIBRARIES install-data \ install-data-am install-data-hook 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 mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am \ uninstall-controllerLTLIBRARIES uninstall-hook install-data-hook: rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES) uninstall-hook: rm -f $(DESTDIR)$(controllerdir)/module.* clean-local: rm -rf *.gcno # 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: eina-1.7.10/src/modules/mp/one_big/eina_one_big.c0000664000175000017500000001637012175475327016502 00000000000000/* EINA - EFL data type library * Copyright (C) 2010 Cedric BAIL, Vincent Torri * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #ifdef EFL_HAVE_POSIX_THREADS # include #endif #include #ifdef EFL_HAVE_WIN32_THREADS # define WIN32_LEAN_AND_MEAN # include # undef WIN32_LEAN_AND_MEAN #endif #include "eina_mempool.h" #include "eina_trash.h" #include "eina_inlist.h" #include "eina_log.h" #include "eina_lock.h" #ifndef NVALGRIND # include #endif #include "eina_private.h" #ifdef INF #undef INF #endif #define INF(...) EINA_LOG_DOM_INFO(_eina_mempool_log_dom, __VA_ARGS__) #ifdef WRN #undef WRN #endif #define WRN(...) EINA_LOG_DOM_WARN(_eina_one_big_mp_log_dom, __VA_ARGS__) static int _eina_one_big_mp_log_dom = -1; typedef struct _One_Big One_Big; struct _One_Big { const char *name; int item_size; int usage; int over; int served; int max; unsigned char *base; Eina_Trash *empty; Eina_Inlist *over_list; #ifdef EFL_DEBUG_THREADS pthread_t self; #endif Eina_Lock mutex; }; static void * eina_one_big_malloc(void *data, __UNUSED__ unsigned int size) { One_Big *pool = data; unsigned char *mem = NULL; if (!eina_lock_take(&pool->mutex)) { #ifdef EFL_DEBUG_THREADS assert(pthread_equal(pool->self, pthread_self())); #endif } if (pool->empty) { #ifndef NVALGRIND VALGRIND_MAKE_MEM_DEFINED(pool->empty, pool->item_size); #endif mem = eina_trash_pop(&pool->empty); pool->usage++; goto on_exit; } if (!pool->base) { pool->base = malloc(pool->item_size * pool->max); if (!pool->base) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); goto retry_smaller; } #ifndef NVALGRIND VALGRIND_MAKE_MEM_NOACCESS(pool->base, pool->item_size * pool->max); #endif } if (pool->served < pool->max) { mem = pool->base + (pool->served++ *pool->item_size); pool->usage++; goto on_exit; } retry_smaller: eina_error_set(0); mem = malloc(sizeof(Eina_Inlist) + pool->item_size); if (!mem) eina_error_set(EINA_ERROR_OUT_OF_MEMORY); else { pool->over++; memset(mem, 0, sizeof(Eina_Inlist)); pool->over_list = eina_inlist_append(pool->over_list, (Eina_Inlist *)mem); mem = ((unsigned char *)mem) + sizeof(Eina_Inlist); } #ifndef NVALGRIND VALGRIND_MAKE_MEM_NOACCESS(mem, pool->item_size); #endif on_exit: eina_lock_release(&pool->mutex); #ifndef NVALGRIND VALGRIND_MEMPOOL_ALLOC(pool, mem, pool->item_size); #endif return mem; } static void eina_one_big_free(void *data, void *ptr) { One_Big *pool = data; if (!eina_lock_take(&pool->mutex)) { #ifdef EFL_DEBUG_THREADS assert(pthread_equal(pool->self, pthread_self())); #endif } if ((void *)pool->base <= ptr && ptr < (void *)(pool->base + (pool->max * pool->item_size))) { eina_trash_push(&pool->empty, ptr); pool->usage--; } else { #ifndef NDEBUG Eina_Inlist *it; #endif Eina_Inlist *il; il = (Eina_Inlist *)(((unsigned char *)ptr) - sizeof(Eina_Inlist)); #ifndef NDEBUG for (it = pool->over_list; it != NULL; it = it->next) if (it == il) break; assert(it != NULL); #endif pool->over_list = eina_inlist_remove(pool->over_list, il); free(il); pool->over--; } #ifndef NVALGRIND VALGRIND_MEMPOOL_FREE(pool, ptr); #endif eina_lock_release(&pool->mutex); } static void * eina_one_big_realloc(__UNUSED__ void *data, __UNUSED__ void *element, __UNUSED__ unsigned int size) { return NULL; } static void * eina_one_big_init(const char *context, __UNUSED__ const char *option, va_list args) { One_Big *pool; int item_size; size_t length; length = context ? strlen(context) + 1 : 0; pool = calloc(1, sizeof (One_Big) + length); if (!pool) return NULL; item_size = va_arg(args, int); pool->item_size = eina_mempool_alignof(item_size); pool->max = va_arg(args, int); if (length) { pool->name = (const char *)(pool + 1); memcpy((char *)pool->name, context, length); } #ifdef EFL_DEBUG_THREADS pool->self = pthread_self(); #endif eina_lock_new(&pool->mutex); #ifndef NVALGRIND VALGRIND_CREATE_MEMPOOL(pool, 0, 1); #endif return pool; } static void eina_one_big_shutdown(void *data) { One_Big *pool = data; if (!pool) return; if (!eina_lock_take(&pool->mutex)) { #ifdef EFL_DEBUG_THREADS assert(pthread_equal(pool->self, pthread_self())); #endif } if (pool->over > 0) { // FIXME: should we warn here? one_big mempool exceeded its alloc and now // mempool is cleaning up the mess created. be quiet for now as we were before // but edje seems to be a big offender at the moment! bad cedric! :) // WRN( // "Pool [%s] over by %i. cleaning up for you", // pool->name, pool->over); while (pool->over_list) { Eina_Inlist *il = pool->over_list; pool->over_list = eina_inlist_remove(pool->over_list, il); free(il); pool->over--; } } if (pool->over > 0) { WRN( "Pool [%s] still over by %i\n", pool->name, pool->over); } #ifndef NVALGRIND VALGRIND_DESTROY_MEMPOOL(pool); #endif if (pool->base) free(pool->base); eina_lock_release(&pool->mutex); eina_lock_free(&pool->mutex); free(pool); } static Eina_Mempool_Backend _eina_one_big_mp_backend = { "one_big", &eina_one_big_init, &eina_one_big_free, &eina_one_big_malloc, &eina_one_big_realloc, NULL, NULL, &eina_one_big_shutdown, NULL }; Eina_Bool one_big_init(void) { #ifdef DEBUG _eina_one_big_mp_log_dom = eina_log_domain_register("eina_one_big_mempool", EINA_LOG_COLOR_DEFAULT); if (_eina_one_big_mp_log_dom < 0) { EINA_LOG_ERR("Could not register log domain: eina_one_big_mempool"); return EINA_FALSE; } #endif return eina_mempool_register(&_eina_one_big_mp_backend); } void one_big_shutdown(void) { eina_mempool_unregister(&_eina_one_big_mp_backend); #ifdef DEBUG eina_log_domain_unregister(_eina_one_big_mp_log_dom); _eina_one_big_mp_log_dom = -1; #endif } #ifndef EINA_STATIC_BUILD_ONE_BIG EINA_MODULE_INIT(one_big_init); EINA_MODULE_SHUTDOWN(one_big_shutdown); #endif /* ! EINA_STATIC_BUILD_ONE_BIG */ eina-1.7.10/src/modules/mp/one_big/Makefile.am0000664000175000017500000000142112175475327015763 00000000000000MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ @EFL_EINA_BUILD@ \ @VALGRIND_CFLAGS@ controllerdir = $(libdir)/eina/modules/mp/one_big/$(MODULE_ARCH) controller_LTLIBRARIES = module.la module_la_SOURCES = \ eina_one_big.c module_la_CFLAGS = @EINA_CFLAGS@ @EFL_PTHREAD_CFLAGS@ module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version @EFL_PTHREAD_LIBS@ module_la_LIBTOOLFLAGS = --tag=disable-static install-data-hook: rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES) uninstall-hook: rm -f $(DESTDIR)$(controllerdir)/module.* clean-local: rm -rf *.gcno eina-1.7.10/src/modules/mp/Makefile.am0000664000175000017500000000130512175475327014362 00000000000000MAINTAINERCLEANFILES = Makefile.in SUBDIRS = if EINA_BUILD_BUDDY if !EINA_STATIC_BUILD_BUDDY SUBDIRS += buddy endif endif if EINA_BUILD_CHAINED_POOL if !EINA_STATIC_BUILD_CHAINED_POOL SUBDIRS += chained_pool endif endif if EINA_BUILD_EMEMOA_FIXED if !EINA_STATIC_BUILD_EMEMOA_FIXED SUBDIRS += ememoa_fixed endif endif if EINA_BUILD_EMEMOA_UNKNOWN if !EINA_STATIC_BUILD_EMEMOA_UNKNOWN SUBDIRS += ememoa_unknown endif endif if EINA_BUILD_FIXED_BITMAP if !EINA_STATIC_BUILD_FIXED_BITMAP SUBDIRS += fixed_bitmap endif endif if EINA_BUILD_ONE_BIG if !EINA_STATIC_BUILD_ONE_BIG SUBDIRS += one_big endif endif if EINA_BUILD_PASS_THROUGH if !EINA_STATIC_BUILD_PASS_THROUGH SUBDIRS += pass_through endif endif eina-1.7.10/src/modules/mp/pass_through/0000775000175000017500000000000012247700051015076 500000000000000eina-1.7.10/src/modules/mp/pass_through/Makefile.in0000664000175000017500000005776612247700043017111 00000000000000# Makefile.in generated by automake 1.13.4 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@ subdir = src/modules/mp/pass_through DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = 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)$(controllerdir)" LTLIBRARIES = $(controller_LTLIBRARIES) module_la_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la am_module_la_OBJECTS = module_la-eina_pass_through.lo module_la_OBJECTS = $(am_module_la_OBJECTS) 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 = module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(module_la_CFLAGS) $(CFLAGS) $(module_la_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 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(module_la_SOURCES) DIST_SOURCES = $(module_la_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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ @EFL_EINA_BUILD@ controllerdir = $(libdir)//eina/modules/mp/pass_through/$(MODULE_ARCH) controller_LTLIBRARIES = module.la module_la_SOURCES = \ eina_pass_through.c module_la_CFLAGS = @EINA_CFLAGS@ module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static all: all-am .SUFFIXES: .SUFFIXES: .c .lo .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) --gnu src/modules/mp/pass_through/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/modules/mp/pass_through/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-controllerLTLIBRARIES: $(controller_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(controllerdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(controllerdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(controllerdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(controllerdir)"; \ } uninstall-controllerLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(controllerdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(controllerdir)/$$f"; \ done clean-controllerLTLIBRARIES: -test -z "$(controller_LTLIBRARIES)" || rm -f $(controller_LTLIBRARIES) @list='$(controller_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES) $(EXTRA_module_la_DEPENDENCIES) $(AM_V_CCLD)$(module_la_LINK) -rpath $(controllerdir) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-eina_pass_through.Plo@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 $< .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 `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< module_la-eina_pass_through.lo: eina_pass_through.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -MT module_la-eina_pass_through.lo -MD -MP -MF $(DEPDIR)/module_la-eina_pass_through.Tpo -c -o module_la-eina_pass_through.lo `test -f 'eina_pass_through.c' || echo '$(srcdir)/'`eina_pass_through.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-eina_pass_through.Tpo $(DEPDIR)/module_la-eina_pass_through.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='eina_pass_through.c' object='module_la-eina_pass_through.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -c -o module_la-eina_pass_through.lo `test -f 'eina_pass_through.c' || echo '$(srcdir)/'`eina_pass_through.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs 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 $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(controllerdir)"; 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-controllerLTLIBRARIES clean-generic clean-libtool \ clean-local 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-controllerLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook 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 \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-controllerLTLIBRARIES @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-data-am install-strip uninstall-am .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-controllerLTLIBRARIES clean-generic clean-libtool \ clean-local cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-controllerLTLIBRARIES install-data \ install-data-am install-data-hook 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 mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am \ uninstall-controllerLTLIBRARIES uninstall-hook install-data-hook: rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES) uninstall-hook: rm -f $(DESTDIR)$(controllerdir)/module.* clean-local: rm -rf *.gcno # 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: eina-1.7.10/src/modules/mp/pass_through/eina_pass_through.c0000664000175000017500000000413712175475327020710 00000000000000/* EINA - EFL data type library * Copyright (C) 2008 Cedric BAIL * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; * if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eina_types.h" #include "eina_module.h" #include "eina_mempool.h" #include "eina_private.h" static void * eina_pass_through_malloc(__UNUSED__ void *data, unsigned int size) { return malloc(size); } static void eina_pass_through_free(__UNUSED__ void *data, void *ptr) { free(ptr); } static void * eina_pass_through_realloc(__UNUSED__ void *data, void *ptr, unsigned int size) { return realloc(ptr, size); } static void * eina_pass_through_init(__UNUSED__ const char *context, __UNUSED__ const char *option, __UNUSED__ va_list args) { return (void *)0x1; } static void eina_pass_through_shutdown(__UNUSED__ void *data) { } static Eina_Mempool_Backend _eina_pass_through_mp_backend = { "pass_through", &eina_pass_through_init, &eina_pass_through_free, &eina_pass_through_malloc, &eina_pass_through_realloc, NULL, NULL, &eina_pass_through_shutdown, NULL }; Eina_Bool pass_through_init(void) { return eina_mempool_register(&_eina_pass_through_mp_backend); } void pass_through_shutdown(void) { eina_mempool_unregister(&_eina_pass_through_mp_backend); } #ifndef EINA_STATIC_BUILD_PASS_THROUGH EINA_MODULE_INIT(pass_through_init); EINA_MODULE_SHUTDOWN(pass_through_shutdown); #endif /* ! EINA_STATIC_BUILD_PASS_THROUGH */ eina-1.7.10/src/modules/mp/pass_through/Makefile.am0000664000175000017500000000134012175475327017067 00000000000000MAINTAINERCLEANFILES = Makefile.in AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include \ -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ @EFL_EINA_BUILD@ controllerdir = $(libdir)//eina/modules/mp/pass_through/$(MODULE_ARCH) controller_LTLIBRARIES = module.la module_la_SOURCES = \ eina_pass_through.c module_la_CFLAGS = @EINA_CFLAGS@ module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@ module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version module_la_LIBTOOLFLAGS = --tag=disable-static install-data-hook: rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES) uninstall-hook: rm -f $(DESTDIR)$(controllerdir)/module.* clean-local: rm -rf *.gcno eina-1.7.10/src/modules/Makefile.am0000664000175000017500000000006212175475327013745 00000000000000SUBDIRS = mp MAINTAINERCLEANFILES = \ Makefile.ineina-1.7.10/src/examples/0000775000175000017500000000000012247700051012122 500000000000000eina-1.7.10/src/examples/eina_str_01.c0000664000175000017500000000305612175475327014335 00000000000000//Compile with: //gcc -Wall -o eina_str_01 eina_str_01.c `pkg-config --cflags --libs eina` #include #include int main(int argc, char **argv) { char *names = "Calvin;Leoben;D'anna;Simon;Doral;Six;Daniel;Sharon"; char *str; char *tmp; char *prologue; char *part1 = "The Cylons were created by man. They evolved. They rebelled."; char *part2 = "There are many copies. And they have a plan."; char **arr; int i; eina_init(); arr = eina_str_split(names, ";", 0); for (i = 0; arr[i]; i++) printf("%s\n", arr[i]); free(arr[0]); free(arr); str = malloc(sizeof(char) * 4); strcpy(str, "bsd"); eina_str_toupper((char **)&str); printf("%s\n", str); eina_str_tolower(&str); printf("%s\n", str); if (eina_str_has_prefix(names, "Calvin")) printf("Starts with 'Calvin'\n"); if (eina_str_has_suffix(names, "sharon")) printf("Ends with 'sharon'\n"); if (eina_str_has_extension(names, "sharon")) printf("Has extension 'sharon'\n"); tmp = eina_str_escape("They'll start going ripe on us pretty soon."); printf("%s\n", tmp); free(tmp); prologue = malloc(sizeof(char) * 106); eina_str_join_len(prologue, 106, ' ', part1, strlen(part1), part2, strlen(part2)); printf("%s\n", prologue); eina_strlcpy(str, prologue, 4); printf("%s\n", str); free(prologue); free(str); str = malloc(sizeof(char) * 14); sprintf(str, "%s", "cylons+"); eina_strlcat(str, "humans", 14); printf("%s\n", str); free(str); eina_shutdown(); return 0; } eina-1.7.10/src/examples/eina_list_01.c0000664000175000017500000000173312175475327014500 00000000000000//Compile with: //gcc -g eina_list_01.c -o eina_list_01 `pkg-config --cflags --libs eina` #include #include int main(int argc, char **argv) { Eina_List *list = NULL; Eina_List *l; void *list_data; eina_init(); list = eina_list_append(list, "tigh"); list = eina_list_append(list, "adar"); list = eina_list_append(list, "baltar"); list = eina_list_append(list, "roslin"); EINA_LIST_FOREACH(list, l, list_data) printf("%s\n", (char*)list_data); printf("\n"); l = eina_list_nth_list(list, 1); list = eina_list_append_relative_list(list, "cain", l); list = eina_list_append_relative(list, "zarek", "cain"); list = eina_list_prepend(list, "adama"); list = eina_list_prepend_relative(list, "gaeta", "cain"); list = eina_list_prepend_relative_list(list, "lampkin", l); EINA_LIST_FOREACH(list, l, list_data) printf("%s\n", (char*)list_data); eina_list_free(list); eina_shutdown(); return 0; } eina-1.7.10/src/examples/eina_hash_04.c0000664000175000017500000001217212175475327014452 00000000000000//Compile with: //gcc -g eina_hash_04.c -o eina_hash_04 `pkg-config --cflags --libs eina` #include #include #include /* * Eina Hash - phonebook * * This example demonstrate the use of Eina Hash by implementing a phonebook * that stores its contact data into the hash. * * It indexes the phone numbers by Contact Full Name, so it's a hash with * string keys. */ struct _Phone_Entry { const char *name; // Full name. const char *number; // Phone number. }; typedef struct _Phone_Entry Phone_Entry; static Phone_Entry _start_entries[] = { { "Wolfgang Amadeus Mozart", "+01 23 456-78910" }, { "Ludwig van Beethoven", "+12 34 567-89101" }, { "Richard Georg Strauss", "+23 45 678-91012" }, { "Heitor Villa-Lobos", "+34 56 789-10123" }, { NULL, NULL } }; // _start_entries static void _phone_entry_free_cb(void *data) { free(data); } static Eina_Bool _phone_book_foreach_cb(const Eina_Hash *phone_book, const void *key, void *data, void *fdata) { const char *name = key; const char *number = data; printf("%s: %s\n", name, number); // Return EINA_FALSE to stop this callback from being called return EINA_TRUE; } int main(int argc, const char *argv[]) { Eina_Hash *phone_book = NULL; int i; const char *entry_name = "Heitor Villa-Lobos"; char *phone = NULL; Eina_Bool r; Eina_Iterator *it; void *data; eina_init(); phone_book = eina_hash_string_djb2_new(_phone_entry_free_cb); // Add initial entries to our hash for (i = 0; _start_entries[i].name != NULL; i++) { eina_hash_add(phone_book, _start_entries[i].name, strdup(_start_entries[i].number)); } // Look for a specific entry and get its phone number phone = eina_hash_find(phone_book, entry_name); if (phone) { printf("Printing entry.\n"); printf("Name: %s\n", entry_name); printf("Number: %s\n\n", phone); } // Delete this entry r = eina_hash_del(phone_book, entry_name, NULL); printf("Hash entry successfully deleted? %d\n\n", r); // Modify the pointer data of an entry and free the old one phone = eina_hash_modify(phone_book, "Richard Georg Strauss", strdup("+23 45 111-11111")); free(phone); // Modify or add an entry to the hash with eina_hash_set // Let's first add a new entry eina_error_set(0); phone = eina_hash_set(phone_book, "Raul Seixas", strdup("+55 01 234-56789")); if (!phone) { Eina_Error err = eina_error_get(); if (!err) { printf("No previous phone found for Raul Seixas. "); printf("Creating new entry.\n"); } else printf("Error when setting phone for Raul Seixas\n"); } else { printf("Old phone for Raul Seixas was %s\n", phone); free(phone); } printf("\n"); // Now change the phone number eina_error_set(0); phone = eina_hash_set(phone_book, "Raul Seixas", strdup("+55 02 222-22222")); if (phone) { printf("Changing phone for Raul Seixas to +55 02 222-22222. "); printf("Old phone was %s\n", phone); free(phone); } else { Eina_Error err = eina_error_get(); if (err) printf("Error when changing phone for Raul Seixas\n"); else { printf("No previous phone found for Raul Seixas. "); printf("Creating new entry.\n"); } } // There are many ways to iterate over our Phone book. // First, iterate showing the names and associated numbers. printf("List of phones:\n"); eina_hash_foreach(phone_book, _phone_book_foreach_cb, NULL); printf("\n"); // Now iterate using an iterator printf("List of phones:\n"); it = eina_hash_iterator_tuple_new(phone_book); while (eina_iterator_next(it, &data)) { Eina_Hash_Tuple *t = data; const char *name = t->key; const char *number = t->data; printf("%s: %s\n", name, number); } eina_iterator_free(it); // Always free the iterator after its use printf("\n"); // Just iterate over the keys (names) printf("List of names in the phone book:\n"); it = eina_hash_iterator_key_new(phone_book); while (eina_iterator_next(it, &data)) { const char *name = data; printf("%s\n", name); } eina_iterator_free(it); printf("\n"); // Just iterate over the data (numbers) printf("List of numbers in the phone book:\n"); it = eina_hash_iterator_data_new(phone_book); while (eina_iterator_next(it, &data)) { const char *number = data; printf("%s\n", number); } eina_iterator_free(it); printf("\n"); // Check how many items are in the phone book printf("There are %d items in the hash.\n\n", eina_hash_population(phone_book)); // Change the name (key) on an entry eina_hash_move(phone_book, "Raul Seixas", "Alceu Valenca"); printf("List of phones after change:\n"); eina_hash_foreach(phone_book, _phone_book_foreach_cb, NULL); printf("\n"); // Empty the phone book, but don't destroy it eina_hash_free_buckets(phone_book); printf("There are %d items in the hash.\n\n", eina_hash_population(phone_book)); // Phone book could still be used, but we are freeing it since we are // done for now eina_hash_free(phone_book); eina_shutdown(); } eina-1.7.10/src/examples/eina_hash_08.c0000664000175000017500000000712312175475327014456 00000000000000//Compile with: //gcc -g eina_hash_08.c -o eina_hash_08 `pkg-config --cflags --libs eina` #include #include #include /* * Eina Hash - phonebook * * This example demonstrate the use of Eina Hash by implementing a phonebook * that stores its contact data into the hash. * * It indexes the phone numbers by Contact Full Name, so it's a hash with * string keys. */ struct _Phone_Entry { const char *name; // Full name. const char *number; // Phone number. }; typedef struct _Phone_Entry Phone_Entry; static Phone_Entry _start_entries[] = { { "Wolfgang Amadeus Mozart", "+01 23 456-78910" }, { "Ludwig van Beethoven", "+12 34 567-89101" }, { "Richard Georg Strauss", "+23 45 678-91012" }, { "Heitor Villa-Lobos", "+34 56 789-10123" }, { NULL, NULL } }; // _start_entries static void _phone_entry_free_cb(void *data) { free(data); } static Eina_Bool _phone_book_foreach_cb(const Eina_Hash *phone_book, const void *key, void *data, void *fdata) { const char *name = key; const char *number = data; printf("%s: %s\n", name, number); // Return EINA_FALSE to stop this callback from being called return EINA_TRUE; } int main(int argc, const char *argv[]) { Eina_Hash *phone_book = NULL; int i; const char *entry_name = "Heitor Villa-Lobos"; int entry_size; const char *saved_entry_name = "Alceu Valenca"; int saved_entry_size = sizeof("Alceu Valenca"); const char *phone = NULL; Eina_Bool r; Eina_Iterator *it; void *data; eina_init(); phone_book = eina_hash_string_superfast_new(_phone_entry_free_cb); // Add initial entries to our hash for (i = 0; _start_entries[i].name != NULL; i++) { eina_hash_add(phone_book, _start_entries[i].name, strdup(_start_entries[i].number)); } // Delete entries r = eina_hash_del(phone_book, entry_name, NULL); printf("Hash entry successfully deleted? %d\n\n", r); int hash = eina_hash_superfast("Ludwig van Beethoven", sizeof("Ludwig van Beethoven")); r = eina_hash_del_by_key_hash(phone_book, "Ludwig van Beethoven", sizeof("Ludwig van Beethoven"), hash); printf("Hash entry successfully deleted? %d\n\n", r); r = eina_hash_del_by_key(phone_book, "Richard Georg Strauss"); printf("Hash entry successfully deleted? %d\n\n", r); // add entry by hash entry_name = "Raul_Seixas"; entry_size = sizeof("Raul Seixas"); phone = strdup("+33 33 333-33333"); hash = eina_hash_superfast(entry_name, entry_size); eina_hash_add_by_hash(phone_book, entry_name, entry_size, hash, phone); // don't need to free 'phone' after the next del: r = eina_hash_del_by_data(phone_book, phone); printf("Hash entry successfully deleted? %d\n\n", r); // add entry by hash directly - no copy of the key will be done hash = eina_hash_superfast(saved_entry_name, saved_entry_size); phone = strdup("+44 44 444-44444"); eina_hash_direct_add_by_hash(phone_book, saved_entry_name, saved_entry_size, hash, phone); // find the added entry by its hash: phone = eina_hash_find_by_hash(phone_book, saved_entry_name, saved_entry_size, hash); if (phone) { char *newphone = strdup("+55 55 555-55555"); phone = eina_hash_modify_by_hash(phone_book, saved_entry_name, saved_entry_size, hash, newphone); if (phone) printf("changing phone to %s, old one was %s\n", newphone, phone); else printf("couldn't modify entry identified by %d\n", hash); } else { printf("couldn't find entry identified by %d\n", hash); } eina_hash_free(phone_book); eina_shutdown(); } eina-1.7.10/src/examples/eina_inarray_01.c0000664000175000017500000000220412175475327015164 00000000000000//Compile with: //gcc -g eina_inarray_01.c -o eina_inarray_01 `pkg-config --cflags --libs eina` #include int cmp(const void *a, const void *b) { return *(int*)a > *(int*)b; } int main(int argc, char **argv) { Eina_Inarray *iarr; char ch, *ch2; int a, *b; eina_init(); iarr = eina_inarray_new(sizeof(char), 0); ch = 'a'; eina_inarray_push(iarr, &ch); ch = 'b'; eina_inarray_push(iarr, &ch); ch = 'c'; eina_inarray_push(iarr, &ch); ch = 'd'; eina_inarray_push(iarr, &ch); printf("Inline array of chars:\n"); EINA_INARRAY_FOREACH(iarr, ch2) printf("char: %c(pointer: %p)\n", *ch2, ch2); eina_inarray_flush(iarr); eina_inarray_step_set(iarr, sizeof(Eina_Inarray), sizeof(int), 4); a = 97; eina_inarray_push(iarr, &a); a = 98; eina_inarray_push(iarr, &a); a = 100; eina_inarray_push(iarr, &a); a = 99; eina_inarray_insert_sorted(iarr, &a, cmp); printf("Inline array of integers with %d elements:\n", eina_inarray_count(iarr)); EINA_INARRAY_FOREACH(iarr, b) printf("int: %d(pointer: %p)\n", *b, b); eina_inarray_free(iarr); eina_shutdown(); } eina-1.7.10/src/examples/Makefile.in0000664000175000017500000013274612247700043014125 00000000000000# Makefile.in generated by automake 1.13.4 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@ examples_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) @EFL_BUILD_EXAMPLES_TRUE@am__append_1 = \ @EFL_BUILD_EXAMPLES_TRUE@eina_accessor_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_array_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_array_02 \ @EFL_BUILD_EXAMPLES_TRUE@eina_error_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_file_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_hash_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_hash_02 \ @EFL_BUILD_EXAMPLES_TRUE@eina_hash_03 \ @EFL_BUILD_EXAMPLES_TRUE@eina_hash_04 \ @EFL_BUILD_EXAMPLES_TRUE@eina_hash_05 \ @EFL_BUILD_EXAMPLES_TRUE@eina_hash_06 \ @EFL_BUILD_EXAMPLES_TRUE@eina_hash_07 \ @EFL_BUILD_EXAMPLES_TRUE@eina_hash_08 \ @EFL_BUILD_EXAMPLES_TRUE@eina_iterator_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_list_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_list_02 \ @EFL_BUILD_EXAMPLES_TRUE@eina_list_03 \ @EFL_BUILD_EXAMPLES_TRUE@eina_list_04 \ @EFL_BUILD_EXAMPLES_TRUE@eina_log_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_log_02 \ @EFL_BUILD_EXAMPLES_TRUE@eina_log_03 \ @EFL_BUILD_EXAMPLES_TRUE@eina_inlist_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_inlist_02 \ @EFL_BUILD_EXAMPLES_TRUE@eina_inlist_03 \ @EFL_BUILD_EXAMPLES_TRUE@eina_str_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_strbuf_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_stringshare_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_magic_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_simple_xml_parser_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_value_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_value_02 \ @EFL_BUILD_EXAMPLES_TRUE@eina_value_03 \ @EFL_BUILD_EXAMPLES_TRUE@eina_inarray_01 \ @EFL_BUILD_EXAMPLES_TRUE@eina_inarray_02 #eina_model_01 \ #eina_model_02 \ #eina_model_03 \ #eina_model_04 #eina_model_04_SOURCES = \ #eina_model_04_animal.c \ #eina_model_04_child.c \ #eina_model_04_human.c \ #eina_model_04_main.c \ #eina_model_04_parrot.c \ #eina_model_04_whistler.c \ #eina_model_04_animal.h \ #eina_model_04_child.h \ #eina_model_04_human.h \ #eina_model_04_parrot.h \ #eina_model_04_whistler.h @BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@am__append_2 = @ECORE_EVAS_CFLAGS@ @BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@am__append_3 = eina_tiler_01 subdir = src/examples DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @EFL_BUILD_EXAMPLES_TRUE@am__EXEEXT_1 = eina_accessor_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_array_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_array_02$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_error_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_file_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_hash_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_hash_02$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_hash_03$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_hash_04$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_hash_05$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_hash_06$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_hash_07$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_hash_08$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_iterator_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_list_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_list_02$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_list_03$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_list_04$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_log_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_log_02$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_log_03$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_inlist_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_inlist_02$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_inlist_03$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_str_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_strbuf_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_stringshare_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_magic_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_simple_xml_parser_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_value_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_value_02$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_value_03$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_inarray_01$(EXEEXT) \ @EFL_BUILD_EXAMPLES_TRUE@ eina_inarray_02$(EXEEXT) @BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@am__EXEEXT_2 = eina_tiler_01$(EXEEXT) am__installdirs = "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)" PROGRAMS = $(examples_PROGRAMS) eina_accessor_01_SOURCES = eina_accessor_01.c eina_accessor_01_OBJECTS = eina_accessor_01.$(OBJEXT) eina_accessor_01_LDADD = $(LDADD) eina_accessor_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la 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 = eina_array_01_SOURCES = eina_array_01.c eina_array_01_OBJECTS = eina_array_01.$(OBJEXT) eina_array_01_LDADD = $(LDADD) eina_array_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_array_02_SOURCES = eina_array_02.c eina_array_02_OBJECTS = eina_array_02.$(OBJEXT) eina_array_02_LDADD = $(LDADD) eina_array_02_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_error_01_SOURCES = eina_error_01.c eina_error_01_OBJECTS = eina_error_01.$(OBJEXT) eina_error_01_LDADD = $(LDADD) eina_error_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_file_01_SOURCES = eina_file_01.c eina_file_01_OBJECTS = eina_file_01.$(OBJEXT) eina_file_01_LDADD = $(LDADD) eina_file_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_hash_01_SOURCES = eina_hash_01.c eina_hash_01_OBJECTS = eina_hash_01.$(OBJEXT) eina_hash_01_LDADD = $(LDADD) eina_hash_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_hash_02_SOURCES = eina_hash_02.c eina_hash_02_OBJECTS = eina_hash_02.$(OBJEXT) eina_hash_02_LDADD = $(LDADD) eina_hash_02_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_hash_03_SOURCES = eina_hash_03.c eina_hash_03_OBJECTS = eina_hash_03.$(OBJEXT) eina_hash_03_LDADD = $(LDADD) eina_hash_03_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_hash_04_SOURCES = eina_hash_04.c eina_hash_04_OBJECTS = eina_hash_04.$(OBJEXT) eina_hash_04_LDADD = $(LDADD) eina_hash_04_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_hash_05_SOURCES = eina_hash_05.c eina_hash_05_OBJECTS = eina_hash_05.$(OBJEXT) eina_hash_05_LDADD = $(LDADD) eina_hash_05_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_hash_06_SOURCES = eina_hash_06.c eina_hash_06_OBJECTS = eina_hash_06.$(OBJEXT) eina_hash_06_LDADD = $(LDADD) eina_hash_06_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_hash_07_SOURCES = eina_hash_07.c eina_hash_07_OBJECTS = eina_hash_07.$(OBJEXT) eina_hash_07_LDADD = $(LDADD) eina_hash_07_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_hash_08_SOURCES = eina_hash_08.c eina_hash_08_OBJECTS = eina_hash_08.$(OBJEXT) eina_hash_08_LDADD = $(LDADD) eina_hash_08_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_inarray_01_SOURCES = eina_inarray_01.c eina_inarray_01_OBJECTS = eina_inarray_01.$(OBJEXT) eina_inarray_01_LDADD = $(LDADD) eina_inarray_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_inarray_02_SOURCES = eina_inarray_02.c eina_inarray_02_OBJECTS = eina_inarray_02.$(OBJEXT) eina_inarray_02_LDADD = $(LDADD) eina_inarray_02_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_inlist_01_SOURCES = eina_inlist_01.c eina_inlist_01_OBJECTS = eina_inlist_01.$(OBJEXT) eina_inlist_01_LDADD = $(LDADD) eina_inlist_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_inlist_02_SOURCES = eina_inlist_02.c eina_inlist_02_OBJECTS = eina_inlist_02.$(OBJEXT) eina_inlist_02_LDADD = $(LDADD) eina_inlist_02_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_inlist_03_SOURCES = eina_inlist_03.c eina_inlist_03_OBJECTS = eina_inlist_03.$(OBJEXT) eina_inlist_03_LDADD = $(LDADD) eina_inlist_03_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_iterator_01_SOURCES = eina_iterator_01.c eina_iterator_01_OBJECTS = eina_iterator_01.$(OBJEXT) eina_iterator_01_LDADD = $(LDADD) eina_iterator_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_list_01_SOURCES = eina_list_01.c eina_list_01_OBJECTS = eina_list_01.$(OBJEXT) eina_list_01_LDADD = $(LDADD) eina_list_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_list_02_SOURCES = eina_list_02.c eina_list_02_OBJECTS = eina_list_02.$(OBJEXT) eina_list_02_LDADD = $(LDADD) eina_list_02_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_list_03_SOURCES = eina_list_03.c eina_list_03_OBJECTS = eina_list_03.$(OBJEXT) eina_list_03_LDADD = $(LDADD) eina_list_03_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_list_04_SOURCES = eina_list_04.c eina_list_04_OBJECTS = eina_list_04.$(OBJEXT) eina_list_04_LDADD = $(LDADD) eina_list_04_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_log_01_SOURCES = eina_log_01.c eina_log_01_OBJECTS = eina_log_01.$(OBJEXT) eina_log_01_LDADD = $(LDADD) eina_log_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_log_02_SOURCES = eina_log_02.c eina_log_02_OBJECTS = eina_log_02.$(OBJEXT) eina_log_02_LDADD = $(LDADD) eina_log_02_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_log_03_SOURCES = eina_log_03.c eina_log_03_OBJECTS = eina_log_03.$(OBJEXT) eina_log_03_LDADD = $(LDADD) eina_log_03_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_magic_01_SOURCES = eina_magic_01.c eina_magic_01_OBJECTS = eina_magic_01.$(OBJEXT) eina_magic_01_LDADD = $(LDADD) eina_magic_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_simple_xml_parser_01_SOURCES = eina_simple_xml_parser_01.c eina_simple_xml_parser_01_OBJECTS = \ eina_simple_xml_parser_01.$(OBJEXT) eina_simple_xml_parser_01_LDADD = $(LDADD) eina_simple_xml_parser_01_DEPENDENCIES = \ $(top_builddir)/src/lib/libeina.la eina_str_01_SOURCES = eina_str_01.c eina_str_01_OBJECTS = eina_str_01.$(OBJEXT) eina_str_01_LDADD = $(LDADD) eina_str_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_strbuf_01_SOURCES = eina_strbuf_01.c eina_strbuf_01_OBJECTS = eina_strbuf_01.$(OBJEXT) eina_strbuf_01_LDADD = $(LDADD) eina_strbuf_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_stringshare_01_SOURCES = eina_stringshare_01.c eina_stringshare_01_OBJECTS = eina_stringshare_01.$(OBJEXT) eina_stringshare_01_LDADD = $(LDADD) eina_stringshare_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_tiler_01_SOURCES = eina_tiler_01.c eina_tiler_01_OBJECTS = eina_tiler_01.$(OBJEXT) @BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@eina_tiler_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_value_01_SOURCES = eina_value_01.c eina_value_01_OBJECTS = eina_value_01.$(OBJEXT) eina_value_01_LDADD = $(LDADD) eina_value_01_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_value_02_SOURCES = eina_value_02.c eina_value_02_OBJECTS = eina_value_02.$(OBJEXT) eina_value_02_LDADD = $(LDADD) eina_value_02_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la eina_value_03_SOURCES = eina_value_03.c eina_value_03_OBJECTS = eina_value_03.$(OBJEXT) eina_value_03_LDADD = $(LDADD) eina_value_03_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la 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) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=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 = eina_accessor_01.c eina_array_01.c eina_array_02.c \ eina_error_01.c eina_file_01.c eina_hash_01.c eina_hash_02.c \ eina_hash_03.c eina_hash_04.c eina_hash_05.c eina_hash_06.c \ eina_hash_07.c eina_hash_08.c eina_inarray_01.c \ eina_inarray_02.c eina_inlist_01.c eina_inlist_02.c \ eina_inlist_03.c eina_iterator_01.c eina_list_01.c \ eina_list_02.c eina_list_03.c eina_list_04.c eina_log_01.c \ eina_log_02.c eina_log_03.c eina_magic_01.c \ eina_simple_xml_parser_01.c eina_str_01.c eina_strbuf_01.c \ eina_stringshare_01.c eina_tiler_01.c eina_value_01.c \ eina_value_02.c eina_value_03.c DIST_SOURCES = eina_accessor_01.c eina_array_01.c eina_array_02.c \ eina_error_01.c eina_file_01.c eina_hash_01.c eina_hash_02.c \ eina_hash_03.c eina_hash_04.c eina_hash_05.c eina_hash_06.c \ eina_hash_07.c eina_hash_08.c eina_inarray_01.c \ eina_inarray_02.c eina_inlist_01.c eina_inlist_02.c \ eina_inlist_03.c eina_iterator_01.c eina_list_01.c \ eina_list_02.c eina_list_03.c eina_list_04.c eina_log_01.c \ eina_log_02.c eina_log_03.c eina_magic_01.c \ eina_simple_xml_parser_01.c eina_str_01.c eina_strbuf_01.c \ eina_stringshare_01.c eina_tiler_01.c eina_value_01.c \ eina_value_02.c eina_value_03.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } DATA = $(files_DATA) 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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ MAINTAINERCLEANFILES = Makefile.in examplesdir = $(datadir)/$(PACKAGE)/examples AM_CPPFLAGS = -I. -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include $(am__append_2) LDADD = $(top_builddir)/src/lib/libeina.la SRCS = \ eina_accessor_01.c \ eina_array_01.c \ eina_array_02.c \ eina_error_01.c \ eina_file_01.c \ eina_hash_01.c \ eina_hash_02.c \ eina_hash_03.c \ eina_hash_04.c \ eina_hash_05.c \ eina_hash_06.c \ eina_hash_07.c \ eina_hash_08.c \ eina_iterator_01.c \ eina_list_01.c \ eina_list_02.c \ eina_list_03.c \ eina_list_04.c \ eina_log_01.c \ eina_log_02.c \ eina_log_03.c \ eina_inlist_01.c \ eina_inlist_02.c \ eina_inlist_03.c \ eina_str_01.c \ eina_strbuf_01.c \ eina_stringshare_01.c \ eina_tiler_01.c \ eina_simple_xml_parser_01.c \ eina_value_01.c \ eina_value_02.c \ eina_value_03.c \ eina_inarray_01.c \ eina_inarray_02.c @EFL_INSTALL_EXAMPLES_TRUE@filesdir = $(datadir)/$(PACKAGE)/examples @EFL_INSTALL_EXAMPLES_TRUE@files_DATA = $(SRCS) @BUILD_TILER_EXAMPLE_TRUE@@EFL_BUILD_EXAMPLES_TRUE@eina_tiler_01_LDADD = $(top_builddir)/src/lib/libeina.la @ECORE_EVAS_LIBS@ EXTRA_DIST = addr_book.txt chat.xml all: all-am .SUFFIXES: .SUFFIXES: .c .lo .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) --gnu src/examples/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/examples/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-examplesPROGRAMS: $(examples_PROGRAMS) @$(NORMAL_INSTALL) @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(examplesdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(examplesdir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; 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) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(examplesdir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(examplesdir)$$dir" || exit $$?; \ } \ ; done uninstall-examplesPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || 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)$(examplesdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(examplesdir)" && rm -f $$files clean-examplesPROGRAMS: @list='$(examples_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list eina_accessor_01$(EXEEXT): $(eina_accessor_01_OBJECTS) $(eina_accessor_01_DEPENDENCIES) $(EXTRA_eina_accessor_01_DEPENDENCIES) @rm -f eina_accessor_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_accessor_01_OBJECTS) $(eina_accessor_01_LDADD) $(LIBS) eina_array_01$(EXEEXT): $(eina_array_01_OBJECTS) $(eina_array_01_DEPENDENCIES) $(EXTRA_eina_array_01_DEPENDENCIES) @rm -f eina_array_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_array_01_OBJECTS) $(eina_array_01_LDADD) $(LIBS) eina_array_02$(EXEEXT): $(eina_array_02_OBJECTS) $(eina_array_02_DEPENDENCIES) $(EXTRA_eina_array_02_DEPENDENCIES) @rm -f eina_array_02$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_array_02_OBJECTS) $(eina_array_02_LDADD) $(LIBS) eina_error_01$(EXEEXT): $(eina_error_01_OBJECTS) $(eina_error_01_DEPENDENCIES) $(EXTRA_eina_error_01_DEPENDENCIES) @rm -f eina_error_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_error_01_OBJECTS) $(eina_error_01_LDADD) $(LIBS) eina_file_01$(EXEEXT): $(eina_file_01_OBJECTS) $(eina_file_01_DEPENDENCIES) $(EXTRA_eina_file_01_DEPENDENCIES) @rm -f eina_file_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_file_01_OBJECTS) $(eina_file_01_LDADD) $(LIBS) eina_hash_01$(EXEEXT): $(eina_hash_01_OBJECTS) $(eina_hash_01_DEPENDENCIES) $(EXTRA_eina_hash_01_DEPENDENCIES) @rm -f eina_hash_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_hash_01_OBJECTS) $(eina_hash_01_LDADD) $(LIBS) eina_hash_02$(EXEEXT): $(eina_hash_02_OBJECTS) $(eina_hash_02_DEPENDENCIES) $(EXTRA_eina_hash_02_DEPENDENCIES) @rm -f eina_hash_02$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_hash_02_OBJECTS) $(eina_hash_02_LDADD) $(LIBS) eina_hash_03$(EXEEXT): $(eina_hash_03_OBJECTS) $(eina_hash_03_DEPENDENCIES) $(EXTRA_eina_hash_03_DEPENDENCIES) @rm -f eina_hash_03$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_hash_03_OBJECTS) $(eina_hash_03_LDADD) $(LIBS) eina_hash_04$(EXEEXT): $(eina_hash_04_OBJECTS) $(eina_hash_04_DEPENDENCIES) $(EXTRA_eina_hash_04_DEPENDENCIES) @rm -f eina_hash_04$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_hash_04_OBJECTS) $(eina_hash_04_LDADD) $(LIBS) eina_hash_05$(EXEEXT): $(eina_hash_05_OBJECTS) $(eina_hash_05_DEPENDENCIES) $(EXTRA_eina_hash_05_DEPENDENCIES) @rm -f eina_hash_05$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_hash_05_OBJECTS) $(eina_hash_05_LDADD) $(LIBS) eina_hash_06$(EXEEXT): $(eina_hash_06_OBJECTS) $(eina_hash_06_DEPENDENCIES) $(EXTRA_eina_hash_06_DEPENDENCIES) @rm -f eina_hash_06$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_hash_06_OBJECTS) $(eina_hash_06_LDADD) $(LIBS) eina_hash_07$(EXEEXT): $(eina_hash_07_OBJECTS) $(eina_hash_07_DEPENDENCIES) $(EXTRA_eina_hash_07_DEPENDENCIES) @rm -f eina_hash_07$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_hash_07_OBJECTS) $(eina_hash_07_LDADD) $(LIBS) eina_hash_08$(EXEEXT): $(eina_hash_08_OBJECTS) $(eina_hash_08_DEPENDENCIES) $(EXTRA_eina_hash_08_DEPENDENCIES) @rm -f eina_hash_08$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_hash_08_OBJECTS) $(eina_hash_08_LDADD) $(LIBS) eina_inarray_01$(EXEEXT): $(eina_inarray_01_OBJECTS) $(eina_inarray_01_DEPENDENCIES) $(EXTRA_eina_inarray_01_DEPENDENCIES) @rm -f eina_inarray_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_inarray_01_OBJECTS) $(eina_inarray_01_LDADD) $(LIBS) eina_inarray_02$(EXEEXT): $(eina_inarray_02_OBJECTS) $(eina_inarray_02_DEPENDENCIES) $(EXTRA_eina_inarray_02_DEPENDENCIES) @rm -f eina_inarray_02$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_inarray_02_OBJECTS) $(eina_inarray_02_LDADD) $(LIBS) eina_inlist_01$(EXEEXT): $(eina_inlist_01_OBJECTS) $(eina_inlist_01_DEPENDENCIES) $(EXTRA_eina_inlist_01_DEPENDENCIES) @rm -f eina_inlist_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_inlist_01_OBJECTS) $(eina_inlist_01_LDADD) $(LIBS) eina_inlist_02$(EXEEXT): $(eina_inlist_02_OBJECTS) $(eina_inlist_02_DEPENDENCIES) $(EXTRA_eina_inlist_02_DEPENDENCIES) @rm -f eina_inlist_02$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_inlist_02_OBJECTS) $(eina_inlist_02_LDADD) $(LIBS) eina_inlist_03$(EXEEXT): $(eina_inlist_03_OBJECTS) $(eina_inlist_03_DEPENDENCIES) $(EXTRA_eina_inlist_03_DEPENDENCIES) @rm -f eina_inlist_03$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_inlist_03_OBJECTS) $(eina_inlist_03_LDADD) $(LIBS) eina_iterator_01$(EXEEXT): $(eina_iterator_01_OBJECTS) $(eina_iterator_01_DEPENDENCIES) $(EXTRA_eina_iterator_01_DEPENDENCIES) @rm -f eina_iterator_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_iterator_01_OBJECTS) $(eina_iterator_01_LDADD) $(LIBS) eina_list_01$(EXEEXT): $(eina_list_01_OBJECTS) $(eina_list_01_DEPENDENCIES) $(EXTRA_eina_list_01_DEPENDENCIES) @rm -f eina_list_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_list_01_OBJECTS) $(eina_list_01_LDADD) $(LIBS) eina_list_02$(EXEEXT): $(eina_list_02_OBJECTS) $(eina_list_02_DEPENDENCIES) $(EXTRA_eina_list_02_DEPENDENCIES) @rm -f eina_list_02$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_list_02_OBJECTS) $(eina_list_02_LDADD) $(LIBS) eina_list_03$(EXEEXT): $(eina_list_03_OBJECTS) $(eina_list_03_DEPENDENCIES) $(EXTRA_eina_list_03_DEPENDENCIES) @rm -f eina_list_03$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_list_03_OBJECTS) $(eina_list_03_LDADD) $(LIBS) eina_list_04$(EXEEXT): $(eina_list_04_OBJECTS) $(eina_list_04_DEPENDENCIES) $(EXTRA_eina_list_04_DEPENDENCIES) @rm -f eina_list_04$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_list_04_OBJECTS) $(eina_list_04_LDADD) $(LIBS) eina_log_01$(EXEEXT): $(eina_log_01_OBJECTS) $(eina_log_01_DEPENDENCIES) $(EXTRA_eina_log_01_DEPENDENCIES) @rm -f eina_log_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_log_01_OBJECTS) $(eina_log_01_LDADD) $(LIBS) eina_log_02$(EXEEXT): $(eina_log_02_OBJECTS) $(eina_log_02_DEPENDENCIES) $(EXTRA_eina_log_02_DEPENDENCIES) @rm -f eina_log_02$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_log_02_OBJECTS) $(eina_log_02_LDADD) $(LIBS) eina_log_03$(EXEEXT): $(eina_log_03_OBJECTS) $(eina_log_03_DEPENDENCIES) $(EXTRA_eina_log_03_DEPENDENCIES) @rm -f eina_log_03$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_log_03_OBJECTS) $(eina_log_03_LDADD) $(LIBS) eina_magic_01$(EXEEXT): $(eina_magic_01_OBJECTS) $(eina_magic_01_DEPENDENCIES) $(EXTRA_eina_magic_01_DEPENDENCIES) @rm -f eina_magic_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_magic_01_OBJECTS) $(eina_magic_01_LDADD) $(LIBS) eina_simple_xml_parser_01$(EXEEXT): $(eina_simple_xml_parser_01_OBJECTS) $(eina_simple_xml_parser_01_DEPENDENCIES) $(EXTRA_eina_simple_xml_parser_01_DEPENDENCIES) @rm -f eina_simple_xml_parser_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_simple_xml_parser_01_OBJECTS) $(eina_simple_xml_parser_01_LDADD) $(LIBS) eina_str_01$(EXEEXT): $(eina_str_01_OBJECTS) $(eina_str_01_DEPENDENCIES) $(EXTRA_eina_str_01_DEPENDENCIES) @rm -f eina_str_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_str_01_OBJECTS) $(eina_str_01_LDADD) $(LIBS) eina_strbuf_01$(EXEEXT): $(eina_strbuf_01_OBJECTS) $(eina_strbuf_01_DEPENDENCIES) $(EXTRA_eina_strbuf_01_DEPENDENCIES) @rm -f eina_strbuf_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_strbuf_01_OBJECTS) $(eina_strbuf_01_LDADD) $(LIBS) eina_stringshare_01$(EXEEXT): $(eina_stringshare_01_OBJECTS) $(eina_stringshare_01_DEPENDENCIES) $(EXTRA_eina_stringshare_01_DEPENDENCIES) @rm -f eina_stringshare_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_stringshare_01_OBJECTS) $(eina_stringshare_01_LDADD) $(LIBS) eina_tiler_01$(EXEEXT): $(eina_tiler_01_OBJECTS) $(eina_tiler_01_DEPENDENCIES) $(EXTRA_eina_tiler_01_DEPENDENCIES) @rm -f eina_tiler_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_tiler_01_OBJECTS) $(eina_tiler_01_LDADD) $(LIBS) eina_value_01$(EXEEXT): $(eina_value_01_OBJECTS) $(eina_value_01_DEPENDENCIES) $(EXTRA_eina_value_01_DEPENDENCIES) @rm -f eina_value_01$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_value_01_OBJECTS) $(eina_value_01_LDADD) $(LIBS) eina_value_02$(EXEEXT): $(eina_value_02_OBJECTS) $(eina_value_02_DEPENDENCIES) $(EXTRA_eina_value_02_DEPENDENCIES) @rm -f eina_value_02$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_value_02_OBJECTS) $(eina_value_02_LDADD) $(LIBS) eina_value_03$(EXEEXT): $(eina_value_03_OBJECTS) $(eina_value_03_DEPENDENCIES) $(EXTRA_eina_value_03_DEPENDENCIES) @rm -f eina_value_03$(EXEEXT) $(AM_V_CCLD)$(LINK) $(eina_value_03_OBJECTS) $(eina_value_03_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_accessor_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_array_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_array_02.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_error_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_file_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash_02.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash_03.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash_04.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash_05.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash_06.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash_07.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_hash_08.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_inarray_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_inarray_02.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_inlist_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_inlist_02.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_inlist_03.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_iterator_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_list_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_list_02.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_list_03.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_list_04.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_log_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_log_02.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_log_03.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_magic_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_simple_xml_parser_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_str_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_strbuf_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_stringshare_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_tiler_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_value_01.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_value_02.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eina_value_03.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 $< .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 `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-filesDATA: $(files_DATA) @$(NORMAL_INSTALL) @list='$(files_DATA)'; test -n "$(filesdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(filesdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(filesdir)" || 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)$(filesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(filesdir)" || exit $$?; \ done uninstall-filesDATA: @$(NORMAL_UNINSTALL) @list='$(files_DATA)'; test -n "$(filesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(filesdir)'; $(am__uninstall_files_from_dir) 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) $(DATA) installdirs: for dir in "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"; 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-examplesPROGRAMS clean-generic clean-libtool \ 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-examplesPROGRAMS install-filesDATA 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 \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-examplesPROGRAMS uninstall-filesDATA .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-examplesPROGRAMS clean-generic clean-libtool \ cscopelist-am ctags ctags-am distclean distclean-compile \ distclean-generic distclean-libtool 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-examplesPROGRAMS install-exec install-exec-am \ install-filesDATA 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 mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-examplesPROGRAMS \ uninstall-filesDATA # 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: eina-1.7.10/src/examples/eina_list_03.c0000664000175000017500000000205512175475327014500 00000000000000//Compile with: //gcc -g eina_list_03.c -o eina_list_03 `pkg-config --cflags --libs eina` #include #include int main(int argc, char **argv) { Eina_List *list = NULL, *r_list; Eina_List *l; Eina_Iterator *itr; void *list_data; eina_init(); list = eina_list_append(list, "caprica"); list = eina_list_append(list, "sagitarius"); list = eina_list_append(list, "aerilon"); list = eina_list_append(list, "gemenon"); list = eina_list_promote_list(list, eina_list_nth_list(list, 2)); list = eina_list_demote_list(list, eina_list_nth_list(list, 2)); list = eina_list_remove(list, "sagitarius"); l = eina_list_data_find_list(list, "aerilon"); eina_list_data_set(l, "aquarius"); printf("size: %d\n", eina_list_count(list)); r_list = eina_list_reverse_clone(list); itr = eina_list_iterator_new(r_list); EINA_ITERATOR_FOREACH(itr, list_data) printf("%s\n", (char*)list_data); eina_iterator_free(itr); eina_list_free(list); eina_list_free(r_list); eina_shutdown(); return 0; } eina-1.7.10/src/examples/eina_inarray_02.c0000664000175000017500000000146112175475327015171 00000000000000//Compile with: //gcc -g eina_inarray_02.c -o eina_inarray_02 `pkg-config --cflags --libs eina` #include int main(int argc, char **argv) { const char* strings[] = { "helo", "hera", "starbuck", "kat", "boomer", "hotdog", "longshot", "jammer", "crashdown", "hardball", "duck", "racetrack", "apolo", "husker", "freaker", "skulls", "bulldog", "flat top", "hammerhead", "gonzo" }; char **str, **str2; Eina_Inarray *iarr; int i; eina_init(); iarr = eina_inarray_new(sizeof(char *), 0); for (i = 0; i < 20; i++){ str = &strings[i]; eina_inarray_push(iarr, str); } printf("Inline array of strings:\n"); EINA_INARRAY_FOREACH(iarr, str2) printf("string: %s(pointer: %p)\n", *str2, str2); eina_inarray_free(iarr); eina_shutdown(); } eina-1.7.10/src/examples/eina_value_03.c0000664000175000017500000001136312175475327014643 00000000000000//Compile with: //gcc eina_value_03.c -o eina_value_03 `pkg-config --cflags --libs eina` #include #include static Eina_Bool _tz_setup(const Eina_Value_Type *type, void *mem) { memset(mem, 0, type->value_size); return EINA_TRUE; } static Eina_Bool _tz_flush(const Eina_Value_Type *type, void *mem) { return EINA_TRUE; } static Eina_Bool _tz_copy(const Eina_Value_Type *type, const void *src, void * dst) { struct timezone *tzsrc = src; struct timezone *tzdst = dst; *tzdst = *tzsrc; return EINA_TRUE; } static Eina_Bool _tz_compare(const Eina_Value_Type *type, const void *a, const void *b) { struct timezone tza = *(struct timezone*)a; struct timezone tzb = *(struct timezone*)b; if (tza.tz_minuteswest < tzb.tz_minuteswest) return -1; else if (tza.tz_minuteswest > tzb.tz_minuteswest) return 1; return 0; } static Eina_Bool _tz_pset(const Eina_Value_Type *type, void *mem, const void *ptr) { *(struct timezone*)mem = *(struct timezone*)ptr; return EINA_TRUE; } static Eina_Bool _tz_vset(const Eina_Value_Type *type, void *mem, va_list args) { const struct timezone tz = va_arg(args, struct timezone); return _tz_pset(type, mem, &tz); } static Eina_Bool _tz_pget(const Eina_Value_Type *type, const void *mem, void *ptr) { memcpy(ptr, mem, type->value_size); return EINA_TRUE; } static Eina_Bool _tz_convert_to(const Eina_Value_Type *type, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) { struct timezone v = *(struct timezone*)type_mem; eina_error_set(0); if (convert == EINA_VALUE_TYPE_UCHAR) { unsigned char other_mem = v.tz_minuteswest; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_USHORT) { unsigned short other_mem = v.tz_minuteswest; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT) { unsigned int other_mem = v.tz_minuteswest; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if ((convert == EINA_VALUE_TYPE_ULONG) || (convert == EINA_VALUE_TYPE_TIMESTAMP)) { unsigned long other_mem = v.tz_minuteswest; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_UINT64) { uint64_t other_mem = v.tz_minuteswest; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_CHAR) { char other_mem = v.tz_minuteswest; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_SHORT) { short other_mem = v.tz_minuteswest; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT) { int other_mem = v.tz_minuteswest; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_LONG) { long other_mem = v.tz_minuteswest; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_INT64) { int64_t other_mem = v.tz_minuteswest; return eina_value_type_pset(convert, convert_mem, &other_mem); } else if (convert == EINA_VALUE_TYPE_FLOAT) return eina_value_type_pset(convert, convert_mem, &v.tz_minuteswest); else if (convert == EINA_VALUE_TYPE_DOUBLE) return eina_value_type_pset(convert, convert_mem, &v.tz_minuteswest); else if (convert == EINA_VALUE_TYPE_STRINGSHARE || convert == EINA_VALUE_TYPE_STRING) { const char *other_mem; char buf[64]; snprintf(buf, sizeof(buf), "%d", v.tz_minuteswest); other_mem = buf; /* required due &buf == buf */ return eina_value_type_pset(convert, convert_mem, &other_mem); } eina_error_set(EINA_ERROR_VALUE_FAILED); return EINA_FALSE; } static Eina_Value_Type TZ_TYPE = { EINA_VALUE_TYPE_VERSION, sizeof(struct timezone), "struct timezone", _tz_setup, _tz_flush, _tz_copy, _tz_compare, _tz_convert_to, NULL, //No convert from _tz_vset, _tz_pset, _tz_pget }; int main(int argc, char **argv) { Eina_Value vtv, vtz; struct timeval tv; struct timezone tz; char *s; eina_init(); eina_value_setup(&vtv, EINA_VALUE_TYPE_TIMEVAL); eina_value_setup(&vtz, &TZ_TYPE); gettimeofday(&tv, &tz); eina_value_set(&vtv, tv); eina_value_set(&vtz, tz); s = eina_value_to_string(&vtv); printf("time: %s\n", s); free(s); s = eina_value_to_string(&vtz); printf("timezone: %s\n", s); free(s); eina_value_flush(&vtz); eina_value_flush(&vtv); } eina-1.7.10/src/examples/eina_log_03.c0000664000175000017500000000263712175475327014314 00000000000000//Compile with: //gcc -Wall -o eina_log_03 eina_log_03.c `pkg-config --cflags --libs eina` #include #include #include #define log(fmt, ...) \ eina_log_print(EINA_LOG_LEVEL_ERR, __FILE__, __FUNCTION__, __LINE__, fmt, ##__VA_ARGS__) typedef struct _Data Data; struct _Data { int to_stderr; }; void print_cb(const Eina_Log_Domain *domain, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args) { Data *d; FILE *output; char *str; d = (Data*)data; if (d->to_stderr) { output = stderr; str = "stderr"; } else { output = stdout; str = "stdout"; } fprintf(output, "%s:%s:%s (%d) %s: ", domain->domain_str, file, fnc, line, str); vfprintf(output, fmt, args); putc('\n', output); } void test(Data *data, int i) { if (i < 0) data->to_stderr = 0; else data->to_stderr = 1; EINA_LOG_INFO("Log message..."); } int main(void) { Data data; if (!eina_init()) { printf("log during the initialization of Eina_Log module\n"); return EXIT_FAILURE; } eina_log_print_cb_set(print_cb, &data); test(&data, -1); test(&data, 0); eina_shutdown(); return EXIT_SUCCESS; } eina-1.7.10/src/examples/eina_array_02.c0000664000175000017500000000254112175475327014642 00000000000000//Compile with: //gcc -g eina_array_02.c -o eina_array_02 `pkg-config --cflags --libs eina` #include #include #include Eina_Bool keep(void *data, void *gdata) { if (strlen((const char*)data) <= 5) return EINA_TRUE; return EINA_FALSE; } int main(int argc, char **argv) { const char* strs[] = { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourtenn", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty" }; const char* strings[] = { "helo", "hera", "starbuck", "kat", "boomer", "hotdog", "longshot", "jammer", "crashdown", "hardball", "duck", "racetrack", "apolo", "husker", "freaker", "skulls", "bulldog", "flat top", "hammerhead", "gonzo" }; Eina_Array *array; Eina_Array_Iterator iterator; const char *item; unsigned int i; eina_init(); array = eina_array_new(10); for (i = 0; i < 20; i++) eina_array_push(array, strs[i]); eina_array_clean(array); for (i = 0; i < 20; i++) eina_array_push(array, strings[i]); eina_array_data_set(array, 17, "flattop"); eina_array_remove(array, keep, NULL); EINA_ARRAY_ITER_NEXT(array, i, item, iterator) printf("item #%d: %s\n", i, item); eina_array_free(array); eina_shutdown(); return 0; } eina-1.7.10/src/examples/eina_hash_06.c0000664000175000017500000001172312175475327014455 00000000000000//Compile with: //gcc -g eina_hash_06.c -o eina_hash_06 `pkg-config --cflags --libs eina` #include #include #include /* * Eina Hash - phonebook * * This example demonstrate the use of Eina Hash by implementing a phonebook * that stores its contact data into the hash. * * It indexes the phone numbers by Contact Full Name, so it's a hash with * string keys. */ struct _Phone_Entry { int64_t id; // Full name. const char *number; // Phone number. }; typedef struct _Phone_Entry Phone_Entry; static Phone_Entry _start_entries[] = { { 1, "+01 23 456-78910" }, { 2, "+12 34 567-89101" }, { 3, "+23 45 678-91012" }, { 4, "+34 56 789-10123" }, { -1, NULL } }; // _start_entries static void _phone_entry_free_cb(void *data) { free(data); } static Eina_Bool _phone_book_foreach_cb(const Eina_Hash *phone_book, const void *key, void *data, void *fdata) { const int64_t *id = key; const char *number = data; printf("%lld: %s\n", *id, number); // Return EINA_FALSE to stop this callback from being called return EINA_TRUE; } int main(int argc, const char *argv[]) { Eina_Hash *phone_book = NULL; int i; int64_t entry_id = 4; char *phone = NULL; Eina_Bool r; Eina_Iterator *it; void *data; eina_init(); phone_book = eina_hash_int64_new(_phone_entry_free_cb); // Add initial entries to our hash for (i = 0; _start_entries[i].id != -1; i++) { eina_hash_add(phone_book, &_start_entries[i].id, strdup(_start_entries[i].number)); } // Look for a specific entry and get its phone number phone = eina_hash_find(phone_book, &entry_id); if (phone) { printf("Printing entry.\n"); printf("Id: %lld\n", entry_id); printf("Number: %s\n\n", phone); } // Delete this entry r = eina_hash_del(phone_book, &entry_id, NULL); printf("Hash entry successfully deleted? %d\n\n", r); // Modify the pointer data of an entry and free the old one int64_t id3 = 3; phone = eina_hash_modify(phone_book, &id3, strdup("+23 45 111-11111")); free(phone); // Modify or add an entry to the hash with eina_hash_set // Let's first add a new entry int64_t id5 = 5; eina_error_set(0); phone = eina_hash_set(phone_book, &id5, strdup("+55 01 234-56789")); if (!phone) { Eina_Error err = eina_error_get(); if (!err) { printf("No previous phone found for id5. "); printf("Creating new entry.\n"); } else printf("Error when setting phone for Raul Seixas\n"); } else { printf("Old phone for id5 was %s\n", phone); free(phone); } printf("\n"); // Now change the phone number eina_error_set(0); phone = eina_hash_set(phone_book, &id5, strdup("+55 02 222-22222")); if (phone) { printf("Changing phone for id5 to +55 02 222-22222. "); printf("Old phone was %s\n", phone); free(phone); } else { Eina_Error err = eina_error_get(); if (err) printf("Error when changing phone for id5\n"); else { printf("No previous phone found for id5. "); printf("Creating new entry.\n"); } } // There are many ways to iterate over our Phone book. // First, iterate showing the names and associated numbers. printf("List of phones:\n"); eina_hash_foreach(phone_book, _phone_book_foreach_cb, NULL); printf("\n"); // Now iterate using an iterator printf("List of phones:\n"); it = eina_hash_iterator_tuple_new(phone_book); while (eina_iterator_next(it, &data)) { Eina_Hash_Tuple *t = data; const int64_t *id = t->key; const char *number = t->data; printf("%lld: %s\n", *id, number); } eina_iterator_free(it); // Always free the iterator after its use printf("\n"); // Just iterate over the keys (names) printf("List of ids in the phone book:\n"); it = eina_hash_iterator_key_new(phone_book); while (eina_iterator_next(it, &data)) { const int64_t *id = data; printf("%lld\n", *id); } eina_iterator_free(it); printf("\n"); // Just iterate over the data (numbers) printf("List of numbers in the phone book:\n"); it = eina_hash_iterator_data_new(phone_book); while (eina_iterator_next(it, &data)) { const char *number = data; printf("%s\n", number); } eina_iterator_free(it); printf("\n"); // Check how many items are in the phone book printf("There are %d items in the hash.\n\n", eina_hash_population(phone_book)); // Change the name (key) on an entry int64_t id6 = 6; eina_hash_move(phone_book, &id5, &id6); printf("List of phones after change:\n"); eina_hash_foreach(phone_book, _phone_book_foreach_cb, NULL); printf("\n"); // Empty the phone book, but don't destroy it eina_hash_free_buckets(phone_book); printf("There are %d items in the hash.\n\n", eina_hash_population(phone_book)); // Phone book could still be used, but we are freeing it since we are // done for now eina_hash_free(phone_book); eina_shutdown(); } eina-1.7.10/src/examples/eina_strbuf_01.c0000664000175000017500000000204212175475327015024 00000000000000//Compile with: //gcc -Wall -o eina_strbuf_01 eina_strbuf_01.c `pkg-config --cflags --libs eina` #include #include int main(int argc, char **argv) { Eina_Strbuf *buf; eina_init(); buf = eina_strbuf_new(); eina_strbuf_append_length(buf, "buffe", 5); eina_strbuf_append_char(buf, 'r'); printf("%s\n", eina_strbuf_string_get(buf)); eina_strbuf_insert_escaped(buf, "my ", 0); printf("%s\n", eina_strbuf_string_get(buf)); eina_strbuf_reset(buf); eina_strbuf_append_escaped(buf, "my buffer"); printf("%s\n", eina_strbuf_string_get(buf)); eina_strbuf_reset(buf); eina_strbuf_append_printf(buf, "%s%c", "buffe", 'r'); eina_strbuf_insert_printf(buf, " %s: %d", 6, "length", eina_strbuf_length_get(buf)); printf("%s\n", eina_strbuf_string_get(buf)); eina_strbuf_remove(buf, 0, 7); printf("%s\n", eina_strbuf_string_get(buf)); eina_strbuf_replace_all(buf, "length", "size"); printf("%s\n", eina_strbuf_string_get(buf)); eina_strbuf_free(buf); eina_shutdown(); return 0; } eina-1.7.10/src/examples/eina_log_01.c0000664000175000017500000000067012175475327014305 00000000000000//Compile with: //gcc -Wall -o eina_log_01 eina_log_01.c `pkg-config --cflags --libs eina` #include #include #include void test_warn(void) { EINA_LOG_WARN("Here is a warning message"); } int main(void) { if (!eina_init()) { printf("log during the initialization of Eina_Log module\n"); return EXIT_FAILURE; } test_warn(); eina_shutdown(); return EXIT_SUCCESS; } eina-1.7.10/src/examples/eina_tiler_01.c0000664000175000017500000001643212175475327014646 00000000000000//Compile with: //gcc eina_tiler_01.c -o eina_tiler_01 `pkg-config --cflags --libs ecore-evas ecore evas eina` #include #include #include #include #define WINDOW_PAD (20) static Eina_Tiler *tiler; static Eina_Rectangle *input_rects; static unsigned int input_count; static unsigned int input_idx = 0, input_color_idx = 0, output_color_idx = 0; static Eina_List *output_objs = NULL; static Evas_Coord maxw, maxh, winw, winh; static Evas *evas; static const struct color { unsigned char r, g, b; } colors[] = { {255, 0, 0}, {0, 255, 0}, {0, 0, 255}, {255, 128, 0}, {0, 255, 128}, {128, 0, 255}, {255, 255, 0}, {0, 255, 255}, {255, 0, 255}, {255, 0, 128}, {128, 255, 0}, {0, 128, 255}, {128, 128, 0}, {0, 128, 128}, {128, 0, 128}, {128, 0, 0}, {0, 128, 0}, {0, 0, 128}, {255, 128, 0}, {0, 255, 128}, {128, 0, 255}, {64, 64, 0}, {0, 64, 64}, {64, 0, 64}, {128, 128, 0}, {0, 128, 128}, {128, 0, 128}, {255, 0, 128}, {128, 255, 0}, {0, 128, 255}, {128, 64, 0}, {0, 128, 64}, {64, 0, 128}, {128, 0, 64}, {64, 128, 0}, {0, 64, 128} }; #define MAX_COLORS (sizeof(colors) / sizeof(colors[0])) static void add_text(const char *text, int x, int y, int w) { Evas_Object *o = evas_object_text_add(evas); evas_object_color_set(o, 0, 0, 0, 255); evas_object_move(o, x, y); evas_object_resize(o, w, WINDOW_PAD); evas_object_text_font_set(o, "Sans", 10); evas_object_text_text_set(o, text); evas_object_show(o); } static void output_rects_reset(void) { Evas_Object *o; EINA_LIST_FREE(output_objs, o) evas_object_del(o); output_color_idx = 0; } static void add_input_rect(const Eina_Rectangle *r) { Evas_Object *o; Evas_Coord bx, by; bx = WINDOW_PAD; by = WINDOW_PAD; o = evas_object_rectangle_add(evas); #define C(comp) (((int)colors[input_color_idx].comp * 128) / 255) evas_object_color_set(o, C(r), C(g), C(b), 128); #undef C evas_object_move(o, r->x + bx, r->y + by); evas_object_resize(o, r->w, r->h); evas_object_show(o); input_color_idx = (input_color_idx + 1) % MAX_COLORS; bx += maxw + WINDOW_PAD; o = evas_object_rectangle_add(evas); evas_object_color_set(o, 32, 32, 32, 128); evas_object_move(o, r->x + bx, r->y + by); evas_object_resize(o, r->w, 1); evas_object_layer_set(o, EVAS_LAYER_MAX); evas_object_show(o); o = evas_object_rectangle_add(evas); evas_object_color_set(o, 32, 32, 32, 128); evas_object_move(o, r->x + bx, r->y + by); evas_object_resize(o, 1, r->h); evas_object_layer_set(o, EVAS_LAYER_MAX); evas_object_show(o); o = evas_object_rectangle_add(evas); evas_object_color_set(o, 32, 32, 32, 128); evas_object_move(o, r->x + bx, r->y + by + r->h); evas_object_resize(o, r->w, 1); evas_object_layer_set(o, EVAS_LAYER_MAX); evas_object_show(o); o = evas_object_rectangle_add(evas); evas_object_color_set(o, 32, 32, 32, 128); evas_object_move(o, r->x + bx + r->w, r->y + by); evas_object_resize(o, 1, r->h); evas_object_layer_set(o, EVAS_LAYER_MAX); evas_object_show(o); } static void add_output_rect(const Eina_Rectangle *r) { Evas_Object *o = evas_object_rectangle_add(evas); #define C(comp) (((int)colors[output_color_idx].comp * 128) / 255) evas_object_color_set(o, C(r), C(g), C(b), 128); #undef C evas_object_move(o, r->x + maxw + 2 * WINDOW_PAD, r->y + WINDOW_PAD); evas_object_resize(o, r->w, r->h); evas_object_show(o); output_color_idx = (output_color_idx + 1) % MAX_COLORS; output_objs = eina_list_append(output_objs, o); } static Eina_Bool process_input(void *data) { Eina_Iterator *itr; Eina_Rectangle r, *r1; unsigned int out = 0; if (input_idx == input_count) { add_text("Done. Close the window to exit", WINDOW_PAD, winh - WINDOW_PAD, winw - 2 * WINDOW_PAD); return EINA_FALSE; } output_rects_reset(); r = input_rects[input_idx]; printf("Iteration #%u: %dx%d%+d%+d\n", input_idx, r.w, r.h, r.x, r.y); input_idx++; add_input_rect(&r); eina_tiler_rect_add(tiler, &r); itr = eina_tiler_iterator_new(tiler); EINA_ITERATOR_FOREACH(itr, r1) { printf("\tOutput #%u: %dx%d%+d%+d\n", out, r1->w, r1->h, r1->x, r1->y); add_output_rect(r1); out++; } eina_iterator_free(itr); return EINA_TRUE; } static void usage(const char *progname) { fprintf(stderr, "Usage:\n\n" "\t%s ... \n\n" "with rectangles being in the format:\n" "\tWIDTHxHEIGHT<+->X<+->Y\n" "examples:\n" "\t100x100+10+10 - width=100, height=100 at x=10, y=10\n" "\t150x50+5+6 - width=150, height=50 at x=5, y=6\n", progname); } int main(int argc, char *argv[]) { Ecore_Evas *ee; Evas_Object *o; int i; if (argc < 2) { usage(argv[0]); return -2; } input_rects = calloc(argc - 1, sizeof(Eina_Rectangle)); input_count = 0; maxw = 0; maxh = 0; for (i = 1; i < argc; i++) { Eina_Rectangle *r = input_rects + input_count; char sx, sy; if (sscanf(argv[i], "%dx%d%c%d%c%d", &(r->w), &(r->h), &sx, &(r->x), &sy, &(r->y)) == 6) { if (sx == '-') r->x *= -1; if (sy == '-') r->y *= -1; if (maxw < r->x + r->w) maxw = r->x + r->w; if (maxh < r->y + r->h) maxh = r->y + r->h; input_count++; } else fprintf(stderr, "ERROR: invalid rectangle ignored: %s\n", argv[i]); } if (input_count == 0) { fputs("ERROR: Could not find any valid rectangle. Exit!\n", stderr); usage(argv[0]); free(input_rects); return -3; } if ((maxw == 0) || (maxh == 0)) { fputs("ERROR: All rectangles with size 0x0. Exit!\n", stderr); usage(argv[0]); free(input_rects); return -3; } ecore_evas_init(); ecore_init(); evas_init(); eina_init(); winw = 2 * maxw + 3 * WINDOW_PAD; winh = maxh + 2 * WINDOW_PAD; ee = ecore_evas_new(NULL, 0, 0, winw, winh, NULL); if (!ee) { fputs("ERROR: Could not create window. Check ecore-evas install.\n", stderr); goto end; } evas = ecore_evas_get(ee); o = evas_object_rectangle_add(evas); evas_object_color_set(o, 255, 255, 255, 255); evas_object_resize(o, winw, winh); evas_object_show(o); add_text("Input", WINDOW_PAD, 0, maxw); o = evas_object_rectangle_add(evas); evas_object_color_set(o, 200, 200, 200, 255); evas_object_move(o, WINDOW_PAD, WINDOW_PAD); evas_object_resize(o, maxw, maxh); evas_object_show(o); add_text("Output", maxw + 2 * WINDOW_PAD, 0, maxw); o = evas_object_rectangle_add(evas); evas_object_color_set(o, 200, 200, 200, 255); evas_object_move(o, maxw + 2 * WINDOW_PAD, WINDOW_PAD); evas_object_resize(o, maxw, maxh); evas_object_show(o); tiler = eina_tiler_new(maxw, maxh); ecore_timer_add(2.0, process_input, NULL); ecore_evas_show(ee); ecore_main_loop_begin(); eina_list_free(output_objs); eina_tiler_free(tiler); ecore_evas_free(ee); end: free(input_rects); eina_shutdown(); evas_shutdown(); ecore_shutdown(); ecore_evas_shutdown(); return 0; } eina-1.7.10/src/examples/eina_magic_01.c0000664000175000017500000000404312175475327014602 00000000000000//Compile with: //gcc -g eina_magic_01.c -o eina_magic_01 `pkg-config --cflags --libs eina` #include #define BASETYPE_MAGIC 0x12345 struct _person { EINA_MAGIC; char *name; }; typedef struct _person person; #define SUBTYPE_MAGIC 0x3333 struct _pilot { person base; EINA_MAGIC; char *callsign; }; typedef struct _pilot pilot; person * person_new(const char *name) { person *ptr = malloc(sizeof(person)); EINA_MAGIC_SET(ptr, BASETYPE_MAGIC); ptr->name = strdup(name); } void person_free(person *ptr) { if (!EINA_MAGIC_CHECK(ptr, BASETYPE_MAGIC)) { EINA_MAGIC_FAIL(ptr, BASETYPE_MAGIC); return; } EINA_MAGIC_SET(ptr, EINA_MAGIC_NONE); free(ptr->name); free(ptr); } pilot * pilot_new(const char *name, const char *callsign) { pilot *ptr = malloc(sizeof(pilot)); EINA_MAGIC_SET(ptr, SUBTYPE_MAGIC); EINA_MAGIC_SET(&ptr->base, BASETYPE_MAGIC); ptr->base.name = strdup(name); ptr->callsign = strdup(callsign); } void pilot_free(pilot *ptr) { if (!EINA_MAGIC_CHECK(ptr, SUBTYPE_MAGIC)) { EINA_MAGIC_FAIL(ptr, SUBTYPE_MAGIC); return; } EINA_MAGIC_SET(ptr, EINA_MAGIC_NONE); EINA_MAGIC_SET(&ptr->base, EINA_MAGIC_NONE); free(ptr->base.name); free(ptr->callsign); free(ptr); } void print_person(person *ptr) { if (!EINA_MAGIC_CHECK(ptr, BASETYPE_MAGIC)){ EINA_MAGIC_FAIL(ptr, BASETYPE_MAGIC); return; } printf("name: %s\n", ptr->name); } void print_pilot(pilot *ptr) { if (!EINA_MAGIC_CHECK(ptr, SUBTYPE_MAGIC)) { EINA_MAGIC_FAIL(ptr, SUBTYPE_MAGIC); return; } print_person(&ptr->base); printf("callsign: %s\n", ptr->callsign); } int main(int argc, char **argv) { person *base; pilot *sub; eina_init(); eina_magic_string_set(BASETYPE_MAGIC, "person"); eina_magic_string_static_set(SUBTYPE_MAGIC, "pilot"); base = person_new("Tyrol"); sub = pilot_new("thrace", "starbuck"); print_person(base); print_person((person *)sub); print_pilot(base); //BAD print_pilot(sub); eina_shutdown(); } eina-1.7.10/src/examples/eina_error_01.c0000664000175000017500000000270612175475327014657 00000000000000//Compile with: //gcc -g eina_error_01.c -o eina_error_01 `pkg-config --cflags --libs eina` #include #include #include #include Eina_Error MY_ERROR_NEGATIVE; Eina_Error MY_ERROR_NULL; void *data_new() { eina_error_set(0); eina_error_set(MY_ERROR_NULL); return NULL; } int test(int n) { eina_error_set(0); if (n < 0) { eina_error_set(MY_ERROR_NEGATIVE); return 0; } return 1; } int main(void) { void *data; if (!eina_init()) { printf ("Error during the initialization of eina_error module\n"); return EXIT_FAILURE; } MY_ERROR_NEGATIVE = eina_error_msg_static_register("Negative number"); MY_ERROR_NULL = eina_error_msg_static_register("NULL pointer"); data = data_new(); if (!data) { Eina_Error err; err = eina_error_get(); if (err) printf("Error during memory allocation: %s\n", eina_error_msg_get(err)); } if (!test(0)) { Eina_Error err; err = eina_error_get(); if (err) printf("Error during test function: %s\n", eina_error_msg_get(err)); } if (!test(-1)) { Eina_Error err; err = eina_error_get(); if (err) printf("Error during test function: %s\n", eina_error_msg_get(err)); } eina_shutdown(); return EXIT_SUCCESS; } eina-1.7.10/src/examples/eina_value_01.c0000664000175000017500000000265512175475327014645 00000000000000//Compile with: //gcc eina_value_01.c -o eina_value_01 `pkg-config --cflags --libs eina` #include int main(int argc, char **argv) { Eina_Value v; int i; char *newstr; eina_init(); eina_value_setup(&v, EINA_VALUE_TYPE_INT); eina_value_set(&v, 123); eina_value_get(&v, &i); printf("v=%d\n", i); newstr = eina_value_to_string(&v); printf("v as string: %s\n", newstr); free(newstr); // it was allocated by eina_value_to_string() eina_value_flush(&v); // destroy v contents, will not use anymore const char *s; eina_value_setup(&v, EINA_VALUE_TYPE_STRING); eina_value_set(&v, "My string"); eina_value_get(&v, &s); printf("v=%s (pointer: %p)\n", s, s); newstr = eina_value_to_string(&v); printf("v as string: %s (pointer: %p)\n", newstr, newstr); free(newstr); // it was allocated by eina_value_to_string() eina_value_flush(&v); // destroy v contents, string 's' is not valid anymore! Eina_Value otherv; eina_value_setup(&otherv, EINA_VALUE_TYPE_STRING); eina_value_setup(&v, EINA_VALUE_TYPE_INT); // convert from int to string: eina_value_set(&v, 123); eina_value_convert(&v, &otherv); eina_value_get(&otherv, &s); printf("otherv=%s\n", s); // and the other way around! eina_value_set(&otherv, "33"); eina_value_convert(&otherv, &v); eina_value_get(&v, &i); printf("v=%d\n", i); eina_value_flush(&otherv); eina_value_flush(&v); } eina-1.7.10/src/examples/eina_hash_02.c0000664000175000017500000000725012175475327014451 00000000000000//Compile with: //gcc -g eina_hash_02.c -o eina_hash_02 `pkg-config --cflags --libs eina` #include #include #include /* * Eina Hash - Two more types of hash * * This example demonstrate two other types of hash in action - using * eina_hash_stringshared_new and eina_hash_new. * * It indexes the phone numbers by Contact Full Name, so it's a hash with string * keys, exactly the same as the other example. */ struct _Phone_Entry { const char *name; // Full name. const char *number; // Phone number. }; typedef struct _Phone_Entry Phone_Entry; static Phone_Entry _start_entries[] = { { "Wolfgang Amadeus Mozart", "+01 23 456-78910" }, { "Ludwig van Beethoven", "+12 34 567-89101" }, { "Richard Georg Strauss", "+23 45 678-91012" }, { "Heitor Villa-Lobos", "+34 56 789-10123" }, { NULL, NULL } }; static void _phone_entry_free_cb(void *data) { free(data); } static void _phone_book_stringshared_free_cb(void *data) { Phone_Entry *e = data; eina_stringshare_del(e->name); eina_stringshare_del(e->number); free(e); } static Eina_Bool _phone_book_stringshared_foreach_cb(const Eina_Hash *phone_book, const void *key, void *data, void *fdata) { Phone_Entry *e = data; const char *name = e->name; // e->name == key const char *number = e->number; printf("%s: %s\n", name, number); return EINA_TRUE; } static void example_hash_stringshared(void) { Eina_Hash *phone_book = NULL; int i; // Create the hash as before phone_book = eina_hash_stringshared_new(_phone_book_stringshared_free_cb); // Add initial entries to our hash, using direct_add for (i = 0; _start_entries[i].name != NULL; i++) { Phone_Entry *e = malloc(sizeof(Phone_Entry)); e->name = eina_stringshare_add(_start_entries[i].name); e->number = eina_stringshare_add(_start_entries[i].number); // Since we are storing the key (name) in our struct, we can use // eina_hash_direct_add. It could be used in the previous example // too, since each key is already stored in the _start_entries // static array, but we started it with the default add function. eina_hash_direct_add(phone_book, e->name, e); } // Iterate over the elements printf("List of phones:\n"); eina_hash_foreach(phone_book, _phone_book_stringshared_foreach_cb, NULL); printf("\n"); eina_hash_free(phone_book); } static unsigned int _phone_book_string_key_length(const char *key) { if (!key) return 0; return (int)strlen(key) + 1; } static int _phone_book_string_key_cmp(const char *key1, int key1_length, const char *key2, int key2_length) { return strcmp(key1, key2); } static void example_hash_big(void) { Eina_Hash *phone_book = NULL; int i; const char *phone; // Create the same hash as used in eina_hash_01.c, but // use 1024 (2 ^ 10) buckets. phone_book = eina_hash_new(EINA_KEY_LENGTH(_phone_book_string_key_length), EINA_KEY_CMP(_phone_book_string_key_cmp), EINA_KEY_HASH(eina_hash_superfast), _phone_entry_free_cb, 10); for (i = 0; _start_entries[i].name != NULL; i++) { eina_hash_add(phone_book, _start_entries[i].name, strdup(_start_entries[i].number)); } // Look for a specific entry and get its phone number phone = eina_hash_find(phone_book, "Heitor Villa-Lobos"); if (phone) { printf("Printing entry.\n"); printf("Name: Heitor Villa-Lobos\n"); printf("Number: %s\n\n", phone); } eina_hash_free(phone_book); } int main(int argc, const char *argv[]) { eina_init(); example_hash_stringshared(); example_hash_big(); eina_shutdown(); } eina-1.7.10/src/examples/eina_inlist_02.c0000664000175000017500000000267112175475327015032 00000000000000// Compile with: // gcc -g eina_inlist_02.c -o eina_inlist_02 `pkg-config --cflags --libs eina` #include #include struct my_struct { EINA_INLIST; int a, b; }; int main(void) { struct my_struct *d, *cur; int i; Eina_Inlist *inlist = NULL; Eina_List *list = NULL, *l_itr, *l_next; eina_init(); for (i = 0; i < 100; i++) { d = malloc(sizeof(*d)); d->a = i; d->b = i * 10; inlist = eina_inlist_append(inlist, EINA_INLIST_GET(d)); if ((i % 2) == 0) list = eina_list_prepend(list, d); } printf("inlist=%p\n", inlist); EINA_INLIST_FOREACH(inlist, cur) printf("\ta=%d, b=%d\n", cur->a, cur->b); printf("list=%p\n", list); EINA_LIST_FOREACH(list, l_itr, cur) printf("\ta=%d, b=%d\n", cur->a, cur->b); printf("inlist count=%d\n", eina_inlist_count(inlist)); printf("list count=%d\n\n", eina_list_count(list)); EINA_LIST_FOREACH_SAFE(list, l_itr, l_next, cur) { if ((cur->a % 3) == 0) list = eina_list_remove_list(list, l_itr); } printf("inlist count=%d\n", eina_inlist_count(inlist)); printf("list count=%d\n\n", eina_list_count(list)); eina_list_free(list); while (inlist) { struct my_struct *aux = EINA_INLIST_CONTAINER_GET(inlist, struct my_struct); inlist = eina_inlist_remove(inlist, inlist); free(aux); } eina_shutdown(); return 0; } eina-1.7.10/src/examples/addr_book.txt0000664000175000017500000000025112175475327014544 00000000000000Kara Thrace starbuck@bsg.com Sharon Valerii boomer@bsg.com Sharon Aghaton athena@bsg.com Karl Aghaton helo@bsg.com Louanne Katraine kat@bsg.com Lee Adama apolo@bsg.com eina-1.7.10/src/examples/eina_array_01.c0000664000175000017500000000220212175475327014633 00000000000000//Compile with: //gcc -g eina_array_01.c -o eina_array_01 `pkg-config --cflags --libs eina` #include #include #include static Eina_Bool _print(const void *container, void *data, void *fdata) { printf("%s\n", (char *)data); return EINA_TRUE; } int main(int argc, char **argv) { const char* strings[] = { "helo", "hera", "starbuck", "kat", "boomer", "hotdog", "longshot", "jammer", "crashdown", "hardball", "duck", "racetrack", "apolo", "husker", "freaker", "skulls", "bulldog", "flat top", "hammerhead", "gonzo" }; Eina_Array *array; Eina_Array_Iterator iterator; char *item; unsigned int i; eina_init(); array = eina_array_new(10); eina_array_step_set(array, sizeof(*array), 20); for (i = 0; i < 20; i++) eina_array_push(array, strdup(strings[i])); printf("array count: %d\n", eina_array_count(array)); eina_array_foreach(array, _print, NULL); printf("Top gun: %s\n", (char*)eina_array_data_get(array, 2)); while (eina_array_count(array)) free(eina_array_pop(array)); eina_array_free(array); eina_shutdown(); return 0; } eina-1.7.10/src/examples/chat.xml0000664000175000017500000000114512175475327013523 00000000000000 houplaboom Is this an XML test? fredx I'm seeing bald people. NedFlanders Don't call him! Single I'm not bald! ngc891 It was an XML test. eina-1.7.10/src/examples/eina_stringshare_01.c0000664000175000017500000000230212175475327016047 00000000000000//Compile with: //gcc -g eina_stringshare_01.c -o eina_stringshare_01 `pkg-config --cflags --libs eina` #include #include int main(int argc, char **argv) { const char *str, *str2; const char *prologe = "The Cylons were created by man. They rebelled. They " "evolved."; const char *prologe2 = "%d Cylon models. %d are known. %d live in secret. " "%d will be revealed."; const char *prologe3 = "There are many copies. And they have a plan."; eina_init(); str = eina_stringshare_add_length(prologe, 31); printf("%s\n", str); printf("length: %d\n", eina_stringshare_strlen(str)); eina_stringshare_del(str); str = eina_stringshare_printf(prologe2, 12, 7, 4, 1); printf("%s\n", str); eina_stringshare_del(str); str = eina_stringshare_nprintf(45, "%s", prologe3); printf("%s\n", str); str2 = eina_stringshare_add(prologe3); printf("%s\n", str2); eina_stringshare_ref(str2); eina_stringshare_del(str2); printf("%s\n", str2); eina_stringshare_replace(&str, prologe); printf("%s\n", str); eina_stringshare_del(str); eina_stringshare_del(str2); eina_shutdown(); return 0; } eina-1.7.10/src/examples/eina_accessor_01.c0000664000175000017500000000227412175475327015330 00000000000000//Compile with: //gcc -g eina_accessor_01.c -o eina_accessor_01 `pkg-config --cflags --libs eina` #include #include int main(int argc, char **argv) { const char *strings[] = { "even", "odd", "even", "odd", "even", "odd", "even", "odd", "even", "odd" }; const char *more_strings[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; Eina_Array *array; Eina_List *list = NULL; Eina_Accessor *acc; unsigned short int i; void *data; eina_init(); array = eina_array_new(10); for (i = 0; i < 10; i++) { eina_array_push(array, strings[i]); list = eina_list_append(list, more_strings[i]); } acc = eina_array_accessor_new(array); for(i = 1; i < 10; i += 2) { eina_accessor_data_get(acc, i, &data); printf("%s\n", (const char *)data); } eina_accessor_free(acc); eina_array_free(array); acc = eina_list_accessor_new(list); for(i = 1; i < 10; i += 2) { eina_accessor_data_get(acc, i, &data); printf("%s\n", (const char *)data); } eina_list_free(eina_accessor_container_get(acc)); eina_accessor_free(acc); eina_shutdown(); return 0; } eina-1.7.10/src/examples/eina_value_02.c0000664000175000017500000000500312175475327014634 00000000000000//Compile with: //gcc eina_value_02.c -o eina_value_02 `pkg-config --cflags --libs eina` #include static Eina_Value_Struct_Desc *V1_DESC = NULL; static Eina_Value_Struct_Desc *V2_DESC = NULL; void value_init(void) { typedef struct _My_Struct_V1 { int param1; char param2; } My_Struct_V1; static Eina_Value_Struct_Member v1_members[] = { // no eina_value_type as they are not constant initializers, see below. EINA_VALUE_STRUCT_MEMBER(NULL, My_Struct_V1, param1), EINA_VALUE_STRUCT_MEMBER(NULL, My_Struct_V1, param2) }; v1_members[0].type = EINA_VALUE_TYPE_INT; v1_members[1].type = EINA_VALUE_TYPE_CHAR; static Eina_Value_Struct_Desc v1_desc = { EINA_VALUE_STRUCT_DESC_VERSION, NULL, // no special operations v1_members, EINA_C_ARRAY_LENGTH(v1_members), sizeof(My_Struct_V1) }; V1_DESC = &v1_desc; typedef struct _My_Struct_V2 { int param1; char param2; int param3; } My_Struct_V2; static Eina_Value_Struct_Member v2_members[] = { // no eina_value_type as they are not constant initializers, see below. EINA_VALUE_STRUCT_MEMBER(NULL, My_Struct_V2, param1), EINA_VALUE_STRUCT_MEMBER(NULL, My_Struct_V2, param2), EINA_VALUE_STRUCT_MEMBER(NULL, My_Struct_V2, param3) }; v2_members[0].type = EINA_VALUE_TYPE_INT; v2_members[1].type = EINA_VALUE_TYPE_CHAR; v2_members[2].type = EINA_VALUE_TYPE_INT; static Eina_Value_Struct_Desc v2_desc = { EINA_VALUE_STRUCT_DESC_VERSION, NULL, // no special operations v2_members, EINA_C_ARRAY_LENGTH(v2_members), sizeof(My_Struct_V2) }; V2_DESC = &v2_desc; } void rand_init(Eina_Value *v) { if (v->type != EINA_VALUE_TYPE_STRUCT) return; eina_value_struct_set(v, "param1", rand()); eina_value_struct_set(v, "param2", rand() % 256); eina_value_struct_set(v, "param3", rand()); } void my_struct_use(Eina_Value *params) { int p1, p3; char p2; eina_value_struct_get(params, "param1", &p1); eina_value_struct_get(params, "param2", &p2); printf("param1: %d\nparam2: %c\n", p1, p2); if (eina_value_struct_get(params, "param3", &p3)) printf("param3: %d\n", p3); } int main(int argc, char **argv) { Eina_Value *v1, *v2; eina_init(); value_init(); srand(time(NULL)); v1 = eina_value_struct_new(V1_DESC); v2 = eina_value_struct_new(V2_DESC); rand_init(v1); my_struct_use(v1); rand_init(v2); my_struct_use(v2); eina_value_free(v1); eina_value_free(v2); eina_shutdown(); } eina-1.7.10/src/examples/eina_hash_07.c0000664000175000017500000001317512175475327014461 00000000000000//Compile with: //gcc -g eina_hash_07.c -o eina_hash_07 `pkg-config --cflags --libs eina` #include #include #include /* * Eina Hash - phonebook * * This example demonstrate the use of Eina Hash by implementing a phonebook * that stores its contact data into the hash. * * It indexes the phone numbers by Contact Full Name, so it's a hash with * string keys. */ struct _Phone_Entry { const char *name; // Full name. const char *number; // Phone number. }; typedef struct _Phone_Entry Phone_Entry; static Phone_Entry _start_entries[] = { { "Wolfgang Amadeus Mozart", "+01 23 456-78910" }, { "Ludwig van Beethoven", "+12 34 567-89101" }, { "Richard Georg Strauss", "+23 45 678-91012" }, { "Heitor Villa-Lobos", "+34 56 789-10123" }, { NULL, NULL } }; // _start_entries static const char *_nicknames[] = { "mozzart", "betho", "george", "hector", NULL }; static void _phone_entry_free_cb(void *data) { free(data); } static Eina_Bool _phone_book_foreach_cb(const Eina_Hash *phone_book, const void *key, void *data, void *fdata) { Phone_Entry **pe = (Phone_Entry **)key; const char *nick = data; printf("%s: %s, nick=%s\n", (*pe)->name, (*pe)->number, nick); // Return EINA_FALSE to stop this callback from being called return EINA_TRUE; } int main(int argc, const char *argv[]) { Eina_Hash *phone_book = NULL; int i; Phone_Entry *entry_vl = &_start_entries[3]; Phone_Entry *p = NULL; char *nick = NULL; Eina_Bool r; Eina_Iterator *it; void *data; eina_init(); phone_book = eina_hash_pointer_new(_phone_entry_free_cb); // Add initial entries to our hash for (i = 0; _start_entries[i].name != NULL; i++) { p = &_start_entries[i]; eina_hash_add(phone_book, &p, strdup(_nicknames[i])); } printf("Phonebook:\n"); eina_hash_foreach(phone_book, _phone_book_foreach_cb, NULL); printf("\n"); // Look for a specific entry and get its nickname nick = eina_hash_find(phone_book, &entry_vl); if (nick) { printf("Printing entry.\n"); printf("Name: %s\n", entry_vl->name); printf("Number: %s\n", entry_vl->number); printf("Nick: %s\n\n", nick); } // Delete this entry r = eina_hash_del(phone_book, &entry_vl, NULL); printf("Hash entry successfully deleted? %d\n\n", r); // Modify the pointer data of an entry and free the old one p = &_start_entries[2]; nick = eina_hash_modify(phone_book, &p, strdup("el jorge")); free(nick); // Modify or add an entry to the hash with eina_hash_set // Let's first add a new entry eina_error_set(0); Phone_Entry *p1 = malloc(sizeof(*p1)); p1->name = "Raul Seixas"; p1->number = "+55 01 234-56789"; nick = eina_hash_set(phone_book, &p1, strdup("raulzito")); if (!nick) { Eina_Error err = eina_error_get(); if (!err) { printf("No previous nick found for Raul Seixas. "); printf("Creating new entry.\n"); } else printf("Error when setting nick for Raul Seixas\n"); } else { printf("Old nick for Raul Seixas was %s\n", nick); free(nick); } printf("\n"); // Now change the nick eina_error_set(0); nick = eina_hash_set(phone_book, &p1, strdup("raulzao")); if (nick) { printf("Changing nick for Raul Seixas to raulzao. "); printf("Old nick was %s\n", nick); free(nick); } else { Eina_Error err = eina_error_get(); if (err) printf("Error when changing nick for Raul Seixas\n"); else { printf("No previous nick found for Raul Seixas. "); printf("Creating new entry.\n"); } } // There are many ways to iterate over our Phone book. // First, iterate showing the names, phones and associated nicks. printf("Phonebook:\n"); eina_hash_foreach(phone_book, _phone_book_foreach_cb, NULL); printf("\n"); // Now iterate using an iterator printf("Phonebook:\n"); it = eina_hash_iterator_tuple_new(phone_book); while (eina_iterator_next(it, &data)) { Eina_Hash_Tuple *t = data; Phone_Entry **pe = (Phone_Entry **)t->key; nick = t->data; printf("%s: %s, nick=%s\n", (*pe)->name, (*pe)->number, nick); } eina_iterator_free(it); // Always free the iterator after its use printf("\n"); // Just iterate over the keys (names) printf("List of names/numbers in the phone book:\n"); it = eina_hash_iterator_key_new(phone_book); while (eina_iterator_next(it, &data)) { Phone_Entry **pe = (Phone_Entry **)data; printf("%s: %s\n", (*pe)->name, (*pe)->number); } eina_iterator_free(it); printf("\n"); // Just iterate over the data (nicks) printf("List of nicks in the phone book:\n"); it = eina_hash_iterator_data_new(phone_book); while (eina_iterator_next(it, &data)) { nick = data; printf("%s\n", nick); } eina_iterator_free(it); printf("\n"); // Check how many items are in the phone book printf("There are %d items in the hash.\n\n", eina_hash_population(phone_book)); // Change the name (key) on an entry Phone_Entry *p2 = malloc(sizeof(*p2)); p2->name = "Alceu Valenca"; p2->number = "000000000000"; eina_hash_move(phone_book, p1, p2); printf("List of phones after change:\n"); eina_hash_foreach(phone_book, _phone_book_foreach_cb, NULL); printf("\n"); // Empty the phone book, but don't destroy it eina_hash_free_buckets(phone_book); printf("There are %d items in the hash.\n\n", eina_hash_population(phone_book)); // Phone book could still be used, but we are freeing it since we are // done for now eina_hash_free(phone_book); free(p1); free(p2); eina_shutdown(); } eina-1.7.10/src/examples/eina_hash_01.c0000664000175000017500000001217712175475327014454 00000000000000//Compile with: //gcc -g eina_hash_01.c -o eina_hash_01 `pkg-config --cflags --libs eina` #include #include #include /* * Eina Hash - phonebook * * This example demonstrate the use of Eina Hash by implementing a phonebook * that stores its contact data into the hash. * * It indexes the phone numbers by Contact Full Name, so it's a hash with * string keys. */ struct _Phone_Entry { const char *name; // Full name. const char *number; // Phone number. }; typedef struct _Phone_Entry Phone_Entry; static Phone_Entry _start_entries[] = { { "Wolfgang Amadeus Mozart", "+01 23 456-78910" }, { "Ludwig van Beethoven", "+12 34 567-89101" }, { "Richard Georg Strauss", "+23 45 678-91012" }, { "Heitor Villa-Lobos", "+34 56 789-10123" }, { NULL, NULL } }; // _start_entries static void _phone_entry_free_cb(void *data) { free(data); } static Eina_Bool _phone_book_foreach_cb(const Eina_Hash *phone_book, const void *key, void *data, void *fdata) { const char *name = key; const char *number = data; printf("%s: %s\n", name, number); // Return EINA_FALSE to stop this callback from being called return EINA_TRUE; } int main(int argc, const char *argv[]) { Eina_Hash *phone_book = NULL; int i; const char *entry_name = "Heitor Villa-Lobos"; char *phone = NULL; Eina_Bool r; Eina_Iterator *it; void *data; eina_init(); phone_book = eina_hash_string_superfast_new(_phone_entry_free_cb); // Add initial entries to our hash for (i = 0; _start_entries[i].name != NULL; i++) { eina_hash_add(phone_book, _start_entries[i].name, strdup(_start_entries[i].number)); } // Look for a specific entry and get its phone number phone = eina_hash_find(phone_book, entry_name); if (phone) { printf("Printing entry.\n"); printf("Name: %s\n", entry_name); printf("Number: %s\n\n", phone); } // Delete this entry r = eina_hash_del(phone_book, entry_name, NULL); printf("Hash entry successfully deleted? %d\n\n", r); // Modify the pointer data of an entry and free the old one phone = eina_hash_modify(phone_book, "Richard Georg Strauss", strdup("+23 45 111-11111")); free(phone); // Modify or add an entry to the hash with eina_hash_set // Let's first add a new entry eina_error_set(0); phone = eina_hash_set(phone_book, "Raul Seixas", strdup("+55 01 234-56789")); if (!phone) { Eina_Error err = eina_error_get(); if (!err) { printf("No previous phone found for Raul Seixas. "); printf("Creating new entry.\n"); } else printf("Error when setting phone for Raul Seixas\n"); } else { printf("Old phone for Raul Seixas was %s\n", phone); free(phone); } printf("\n"); // Now change the phone number eina_error_set(0); phone = eina_hash_set(phone_book, "Raul Seixas", strdup("+55 02 222-22222")); if (phone) { printf("Changing phone for Raul Seixas to +55 02 222-22222. "); printf("Old phone was %s\n", phone); free(phone); } else { Eina_Error err = eina_error_get(); if (err) printf("Error when changing phone for Raul Seixas\n"); else { printf("No previous phone found for Raul Seixas. "); printf("Creating new entry.\n"); } } // There are many ways to iterate over our Phone book. // First, iterate showing the names and associated numbers. printf("List of phones:\n"); eina_hash_foreach(phone_book, _phone_book_foreach_cb, NULL); printf("\n"); // Now iterate using an iterator printf("List of phones:\n"); it = eina_hash_iterator_tuple_new(phone_book); while (eina_iterator_next(it, &data)) { Eina_Hash_Tuple *t = data; const char *name = t->key; const char *number = t->data; printf("%s: %s\n", name, number); } eina_iterator_free(it); // Always free the iterator after its use printf("\n"); // Just iterate over the keys (names) printf("List of names in the phone book:\n"); it = eina_hash_iterator_key_new(phone_book); while (eina_iterator_next(it, &data)) { const char *name = data; printf("%s\n", name); } eina_iterator_free(it); printf("\n"); // Just iterate over the data (numbers) printf("List of numbers in the phone book:\n"); it = eina_hash_iterator_data_new(phone_book); while (eina_iterator_next(it, &data)) { const char *number = data; printf("%s\n", number); } eina_iterator_free(it); printf("\n"); // Check how many items are in the phone book printf("There are %d items in the hash.\n\n", eina_hash_population(phone_book)); // Change the name (key) on an entry eina_hash_move(phone_book, "Raul Seixas", "Alceu Valenca"); printf("List of phones after change:\n"); eina_hash_foreach(phone_book, _phone_book_foreach_cb, NULL); printf("\n"); // Empty the phone book, but don't destroy it eina_hash_free_buckets(phone_book); printf("There are %d items in the hash.\n\n", eina_hash_population(phone_book)); // Phone book could still be used, but we are freeing it since we are // done for now eina_hash_free(phone_book); eina_shutdown(); } eina-1.7.10/src/examples/eina_inlist_01.c0000664000175000017500000000421512175475327015025 00000000000000// Compile with: // gcc -g eina_inlist_01.c -o eina_inlist_01 `pkg-config --cflags --libs eina` #include #include struct my_struct { EINA_INLIST; int a, b; }; int sort_cb(const void *d1, const void *d2) { const Eina_Inlist *l1, *l2; const struct my_struct *x1, *x2; l1 = d1; l2 = d2; x1 = EINA_INLIST_CONTAINER_GET(l1, struct my_struct); x2 = EINA_INLIST_CONTAINER_GET(l2, struct my_struct); return x1->a - x2->a; } int main(void) { struct my_struct *d, *cur; Eina_Inlist *list, *itr, *tmp; eina_init(); d = malloc(sizeof(*d)); d->a = 1; d->b = 10; list = eina_inlist_append(NULL, EINA_INLIST_GET(d)); d = malloc(sizeof(*d)); d->a = 2; d->b = 20; list = eina_inlist_append(list, EINA_INLIST_GET(d)); d = malloc(sizeof(*d)); d->a = 3; d->b = 30; list = eina_inlist_prepend(list, EINA_INLIST_GET(d)); printf("list=%p\n", list); EINA_INLIST_FOREACH(list, cur) printf("\ta=%d, b=%d\n", cur->a, cur->b); list = eina_inlist_promote(list, EINA_INLIST_GET(d)); d = malloc(sizeof(*d)); d->a = 4; d->b = 40; list = eina_inlist_append_relative(list, EINA_INLIST_GET(d), list); list = eina_inlist_demote(list, EINA_INLIST_GET(d)); list = eina_inlist_sort(list, sort_cb); printf("list after sort=%p\n", list); EINA_INLIST_FOREACH(list, cur) printf("\ta=%d, b=%d\n", cur->a, cur->b); tmp = eina_inlist_find(list, EINA_INLIST_GET(d)); if (tmp) cur = EINA_INLIST_CONTAINER_GET(tmp, struct my_struct); else cur = NULL; if (d != cur) printf("wrong node! cur=%p\n", cur); list = eina_inlist_remove(list, EINA_INLIST_GET(d)); free(d); printf("list=%p\n", list); for (itr = list; itr != NULL; itr = itr->next) { cur = EINA_INLIST_CONTAINER_GET(itr, struct my_struct); printf("\ta=%d, b=%d\n", cur->a, cur->b); } while (list) { struct my_struct *aux = EINA_INLIST_CONTAINER_GET(list, struct my_struct); list = eina_inlist_remove(list, list); free(aux); } eina_shutdown(); return 0; } eina-1.7.10/src/examples/eina_iterator_01.c0000664000175000017500000000257712175475327015365 00000000000000//Compile with: //gcc -g eina_iterator_01.c -o eina_iterator_01 `pkg-config --cflags --libs eina` #include #include static Eina_Bool print_one(const void *container, void *data, void *fdata) { printf("%s\n", (char*)data); return EINA_TRUE; } static void print_eina_container(Eina_Iterator *it) { eina_iterator_foreach(it, print_one, NULL); printf("\n"); } int main(int argc, char **argv) { const char *strings[] = { "unintersting string", "husker", "starbuck", "husker" }; const char *more_strings[] = { "very unintersting string", "what do your hear?", "nothing but the rain", "then grab your gun and bring the cat in" }; Eina_Array *array; Eina_List *list = NULL; Eina_Iterator *it; unsigned short int i; char *uninteresting; eina_init(); array = eina_array_new(4); for (i = 0; i < 4; i++) { eina_array_push(array, strings[i]); list = eina_list_append(list, more_strings[i]); } it = eina_array_iterator_new(array); eina_iterator_next(it, &uninteresting); print_eina_container(it); eina_array_free(eina_iterator_container_get(it)); eina_iterator_free(it); it = eina_list_iterator_new(list); eina_iterator_next(it, &uninteresting); print_eina_container(it); eina_iterator_free(it); eina_list_free(list); eina_shutdown(); return 0; } eina-1.7.10/src/examples/eina_simple_xml_parser_01.c0000664000175000017500000000625012175475327017251 00000000000000//Compile with: //gcc -Wall -o eina_simple_xml_01 eina_simple_xml_01.c `pkg-config --cflags --libs eina` #include #include #include static Eina_Bool _xml_attr_cb(void *data, const char *key, const char *value); static Eina_Bool _xml_tag_cb(void *data, Eina_Simple_XML_Type type, const char *content, unsigned offset, unsigned length); static Eina_Bool _print(const void *container, void *data, void *fdata); Eina_Bool tag_login = EINA_FALSE; Eina_Bool tag_message = EINA_FALSE; int main(void) { FILE *file; long size; char *buffer; Eina_Array *array; eina_init(); if ((file = fopen("chat.xml", "rb"))) { fseek(file, 0, SEEK_END); size = ftell(file); fseek(file, 0, SEEK_SET); if ((buffer = malloc(size))) { fread(buffer, 1, size, file); array = eina_array_new(10); eina_simple_xml_parse(buffer, size, EINA_TRUE, _xml_tag_cb, array); eina_array_foreach(array, _print, NULL); eina_array_free(array); free(buffer); } else { EINA_LOG_ERR("Can't allocate memory!"); } fclose(file); } else { EINA_LOG_ERR("Can't open chat.xml!"); } eina_shutdown(); return 0; } static Eina_Bool _xml_tag_cb(void *data, Eina_Simple_XML_Type type, const char *content, unsigned offset, unsigned length) { char buffer[length+1]; Eina_Array *array = data; char str[512]; if (type == EINA_SIMPLE_XML_OPEN) { if(!strncmp("post", content, strlen("post"))) { const char *tags = eina_simple_xml_tag_attributes_find(content, length); eina_simple_xml_attributes_parse(tags, length - (tags - content), _xml_attr_cb, str); } else if (!strncmp("login>", content, strlen("login>"))) { tag_login = EINA_TRUE; } else if (!strncmp("message>", content, strlen("message>"))) { tag_message = EINA_TRUE; } } else if (type == EINA_SIMPLE_XML_DATA) { if (tag_login == EINA_TRUE) { snprintf(buffer, sizeof(buffer), content); strncat(str, "<", 1); strncat(str, buffer, sizeof(buffer)); strncat(str, "> ", 2); tag_login = EINA_FALSE; } else if (tag_message == EINA_TRUE) { snprintf(buffer, sizeof(buffer), content); strncat(str, buffer, sizeof(buffer)); tag_message = EINA_FALSE; eina_array_push(array, strdup(str)); } } return EINA_TRUE; } static Eina_Bool _xml_attr_cb(void *data, const char *key, const char *value) { char *str = data; if(!strcmp("id", key)) { snprintf(str, sizeof(value) + 3, "(%s) ", value); } return EINA_TRUE; } static Eina_Bool _print(const void *container, void *data, void *fdata) { printf("%s\n", (char *)data); return EINA_TRUE; } eina-1.7.10/src/examples/eina_hash_05.c0000664000175000017500000001171312175475327014453 00000000000000//Compile with: //gcc -g eina_hash_05.c -o eina_hash_05 `pkg-config --cflags --libs eina` #include #include #include /* * Eina Hash - phonebook * * This example demonstrate the use of Eina Hash by implementing a phonebook * that stores its contact data into the hash. * * It indexes the phone numbers by Contact Full Name, so it's a hash with * string keys. */ struct _Phone_Entry { int32_t id; // Full name. const char *number; // Phone number. }; typedef struct _Phone_Entry Phone_Entry; static Phone_Entry _start_entries[] = { { 1, "+01 23 456-78910" }, { 2, "+12 34 567-89101" }, { 3, "+23 45 678-91012" }, { 4, "+34 56 789-10123" }, { -1, NULL } }; // _start_entries static void _phone_entry_free_cb(void *data) { free(data); } static Eina_Bool _phone_book_foreach_cb(const Eina_Hash *phone_book, const void *key, void *data, void *fdata) { const int32_t *id = key; const char *number = data; printf("%d: %s\n", *id, number); // Return EINA_FALSE to stop this callback from being called return EINA_TRUE; } int main(int argc, const char *argv[]) { Eina_Hash *phone_book = NULL; int i; int32_t entry_id = 4; char *phone = NULL; Eina_Bool r; Eina_Iterator *it; void *data; eina_init(); phone_book = eina_hash_int32_new(_phone_entry_free_cb); // Add initial entries to our hash for (i = 0; _start_entries[i].id != -1; i++) { eina_hash_add(phone_book, &_start_entries[i].id, strdup(_start_entries[i].number)); } // Look for a specific entry and get its phone number phone = eina_hash_find(phone_book, &entry_id); if (phone) { printf("Printing entry.\n"); printf("Id: %d\n", entry_id); printf("Number: %s\n\n", phone); } // Delete this entry r = eina_hash_del(phone_book, &entry_id, NULL); printf("Hash entry successfully deleted? %d\n\n", r); // Modify the pointer data of an entry and free the old one int32_t id3 = 3; phone = eina_hash_modify(phone_book, &id3, strdup("+23 45 111-11111")); free(phone); // Modify or add an entry to the hash with eina_hash_set // Let's first add a new entry int32_t id5 = 5; eina_error_set(0); phone = eina_hash_set(phone_book, &id5, strdup("+55 01 234-56789")); if (!phone) { Eina_Error err = eina_error_get(); if (!err) { printf("No previous phone found for id5. "); printf("Creating new entry.\n"); } else printf("Error when setting phone for Raul Seixas\n"); } else { printf("Old phone for id5 was %s\n", phone); free(phone); } printf("\n"); // Now change the phone number eina_error_set(0); phone = eina_hash_set(phone_book, &id5, strdup("+55 02 222-22222")); if (phone) { printf("Changing phone for id5 to +55 02 222-22222. "); printf("Old phone was %s\n", phone); free(phone); } else { Eina_Error err = eina_error_get(); if (err) printf("Error when changing phone for id5\n"); else { printf("No previous phone found for id5. "); printf("Creating new entry.\n"); } } // There are many ways to iterate over our Phone book. // First, iterate showing the names and associated numbers. printf("List of phones:\n"); eina_hash_foreach(phone_book, _phone_book_foreach_cb, NULL); printf("\n"); // Now iterate using an iterator printf("List of phones:\n"); it = eina_hash_iterator_tuple_new(phone_book); while (eina_iterator_next(it, &data)) { Eina_Hash_Tuple *t = data; const int32_t *id = t->key; const char *number = t->data; printf("%d: %s\n", *id, number); } eina_iterator_free(it); // Always free the iterator after its use printf("\n"); // Just iterate over the keys (names) printf("List of ids in the phone book:\n"); it = eina_hash_iterator_key_new(phone_book); while (eina_iterator_next(it, &data)) { const int32_t *id = data; printf("%d\n", *id); } eina_iterator_free(it); printf("\n"); // Just iterate over the data (numbers) printf("List of numbers in the phone book:\n"); it = eina_hash_iterator_data_new(phone_book); while (eina_iterator_next(it, &data)) { const char *number = data; printf("%s\n", number); } eina_iterator_free(it); printf("\n"); // Check how many items are in the phone book printf("There are %d items in the hash.\n\n", eina_hash_population(phone_book)); // Change the name (key) on an entry int32_t id6 = 6; eina_hash_move(phone_book, &id5, &id6); printf("List of phones after change:\n"); eina_hash_foreach(phone_book, _phone_book_foreach_cb, NULL); printf("\n"); // Empty the phone book, but don't destroy it eina_hash_free_buckets(phone_book); printf("There are %d items in the hash.\n\n", eina_hash_population(phone_book)); // Phone book could still be used, but we are freeing it since we are // done for now eina_hash_free(phone_book); eina_shutdown(); } eina-1.7.10/src/examples/eina_hash_03.c0000664000175000017500000001217312175475327014452 00000000000000//Compile with: //gcc -g eina_hash_03.c -o eina_hash_03 `pkg-config --cflags --libs eina` #include #include #include /* * Eina Hash - phonebook * * This example demonstrate the use of Eina Hash by implementing a phonebook * that stores its contact data into the hash. * * It indexes the phone numbers by Contact Full Name, so it's a hash with * string keys. */ struct _Phone_Entry { const char *name; // Full name. const char *number; // Phone number. }; typedef struct _Phone_Entry Phone_Entry; static Phone_Entry _start_entries[] = { { "Wolfgang Amadeus Mozart", "+01 23 456-78910" }, { "Ludwig van Beethoven", "+12 34 567-89101" }, { "Richard Georg Strauss", "+23 45 678-91012" }, { "Heitor Villa-Lobos", "+34 56 789-10123" }, { NULL, NULL } }; // _start_entries static void _phone_entry_free_cb(void *data) { free(data); } static Eina_Bool _phone_book_foreach_cb(const Eina_Hash *phone_book, const void *key, void *data, void *fdata) { const char *name = key; const char *number = data; printf("%s: %s\n", name, number); // Return EINA_FALSE to stop this callback from being called return EINA_TRUE; } int main(int argc, const char *argv[]) { Eina_Hash *phone_book = NULL; int i; const char *entry_name = "Heitor Villa-Lobos"; char *phone = NULL; Eina_Bool r; Eina_Iterator *it; void *data; eina_init(); phone_book = eina_hash_string_small_new(_phone_entry_free_cb); // Add initial entries to our hash for (i = 0; _start_entries[i].name != NULL; i++) { eina_hash_add(phone_book, _start_entries[i].name, strdup(_start_entries[i].number)); } // Look for a specific entry and get its phone number phone = eina_hash_find(phone_book, entry_name); if (phone) { printf("Printing entry.\n"); printf("Name: %s\n", entry_name); printf("Number: %s\n\n", phone); } // Delete this entry r = eina_hash_del(phone_book, entry_name, NULL); printf("Hash entry successfully deleted? %d\n\n", r); // Modify the pointer data of an entry and free the old one phone = eina_hash_modify(phone_book, "Richard Georg Strauss", strdup("+23 45 111-11111")); free(phone); // Modify or add an entry to the hash with eina_hash_set // Let's first add a new entry eina_error_set(0); phone = eina_hash_set(phone_book, "Raul Seixas", strdup("+55 01 234-56789")); if (!phone) { Eina_Error err = eina_error_get(); if (!err) { printf("No previous phone found for Raul Seixas. "); printf("Creating new entry.\n"); } else printf("Error when setting phone for Raul Seixas\n"); } else { printf("Old phone for Raul Seixas was %s\n", phone); free(phone); } printf("\n"); // Now change the phone number eina_error_set(0); phone = eina_hash_set(phone_book, "Raul Seixas", strdup("+55 02 222-22222")); if (phone) { printf("Changing phone for Raul Seixas to +55 02 222-22222. "); printf("Old phone was %s\n", phone); free(phone); } else { Eina_Error err = eina_error_get(); if (err) printf("Error when changing phone for Raul Seixas\n"); else { printf("No previous phone found for Raul Seixas. "); printf("Creating new entry.\n"); } } // There are many ways to iterate over our Phone book. // First, iterate showing the names and associated numbers. printf("List of phones:\n"); eina_hash_foreach(phone_book, _phone_book_foreach_cb, NULL); printf("\n"); // Now iterate using an iterator printf("List of phones:\n"); it = eina_hash_iterator_tuple_new(phone_book); while (eina_iterator_next(it, &data)) { Eina_Hash_Tuple *t = data; const char *name = t->key; const char *number = t->data; printf("%s: %s\n", name, number); } eina_iterator_free(it); // Always free the iterator after its use printf("\n"); // Just iterate over the keys (names) printf("List of names in the phone book:\n"); it = eina_hash_iterator_key_new(phone_book); while (eina_iterator_next(it, &data)) { const char *name = data; printf("%s\n", name); } eina_iterator_free(it); printf("\n"); // Just iterate over the data (numbers) printf("List of numbers in the phone book:\n"); it = eina_hash_iterator_data_new(phone_book); while (eina_iterator_next(it, &data)) { const char *number = data; printf("%s\n", number); } eina_iterator_free(it); printf("\n"); // Check how many items are in the phone book printf("There are %d items in the hash.\n\n", eina_hash_population(phone_book)); // Change the name (key) on an entry eina_hash_move(phone_book, "Raul Seixas", "Alceu Valenca"); printf("List of phones after change:\n"); eina_hash_foreach(phone_book, _phone_book_foreach_cb, NULL); printf("\n"); // Empty the phone book, but don't destroy it eina_hash_free_buckets(phone_book); printf("There are %d items in the hash.\n\n", eina_hash_population(phone_book)); // Phone book could still be used, but we are freeing it since we are // done for now eina_hash_free(phone_book); eina_shutdown(); } eina-1.7.10/src/examples/eina_inlist_03.c0000664000175000017500000000341012175475327015023 00000000000000// Compile with: // gcc -g eina_inlist_03.c -o eina_inlist_03 `pkg-config --cflags --libs eina` #include #include struct my_struct { EINA_INLIST; Eina_Inlist even; int a, b; }; #define EVEN_INLIST_GET(Inlist) (& ((Inlist)->even)) #define EVEN_INLIST_CONTAINER_GET(ptr, type) \ ((type *)((char *)ptr - offsetof(type, even))) int main(void) { struct my_struct *d, *cur; int i; Eina_Inlist *list = NULL, *list_even = NULL, *itr; eina_init(); for (i = 0; i < 100; i++) { d = malloc(sizeof(*d)); d->a = i; d->b = i * 10; list = eina_inlist_append(list, EINA_INLIST_GET(d)); if ((i % 2) == 0) list_even = eina_inlist_prepend(list_even, EVEN_INLIST_GET(d)); } printf("list=%p\n", list); EINA_INLIST_FOREACH(list, cur) printf("\ta=%d, b=%d\n", cur->a, cur->b); printf("list_even=%p\n", list_even); for (itr = list_even; itr != NULL; itr = itr->next) { cur = EVEN_INLIST_CONTAINER_GET(itr, struct my_struct); printf("\ta=%d, b=%d\n", cur->a, cur->b); } printf("list count=%d\n", eina_inlist_count(list)); printf("list_even count=%d\n\n", eina_inlist_count(list_even)); itr = list_even; while (itr) { Eina_Inlist *next = itr->next; cur = EVEN_INLIST_CONTAINER_GET(itr, struct my_struct); if ((cur->a % 3) == 0) list_even = eina_inlist_remove(list_even, itr); itr = next; } printf("list count=%d\n", eina_inlist_count(list)); printf("list_even count=%d\n\n", eina_inlist_count(list_even)); while (list) { struct my_struct *aux = EINA_INLIST_CONTAINER_GET(list, struct my_struct); list = eina_inlist_remove(list, list); free(aux); } eina_shutdown(); return 0; } eina-1.7.10/src/examples/eina_log_02.c0000664000175000017500000000113512175475327014303 00000000000000//Compile with: //gcc -Wall -o eina_log_02 eina_log_02.c `pkg-config --cflags --libs eina` #include #include #include void test(int i) { EINA_LOG_DBG("Entering test"); if (i < 0) { EINA_LOG_ERR("Argument is negative"); return; } EINA_LOG_INFO("argument non negative"); EINA_LOG_DBG("Exiting test"); } int main(void) { if (!eina_init()) { printf("log during the initialization of Eina_Log module\n"); return EXIT_FAILURE; } test(-1); test(0); eina_shutdown(); return EXIT_SUCCESS; } eina-1.7.10/src/examples/Makefile.am0000664000175000017500000000425712175475327014125 00000000000000MAINTAINERCLEANFILES = Makefile.in examplesdir = $(datadir)/$(PACKAGE)/examples AM_CPPFLAGS = \ -I. \ -I$(top_srcdir)/src/include \ -I$(top_builddir)/src/include LDADD = $(top_builddir)/src/lib/libeina.la SRCS = \ eina_accessor_01.c \ eina_array_01.c \ eina_array_02.c \ eina_error_01.c \ eina_file_01.c \ eina_hash_01.c \ eina_hash_02.c \ eina_hash_03.c \ eina_hash_04.c \ eina_hash_05.c \ eina_hash_06.c \ eina_hash_07.c \ eina_hash_08.c \ eina_iterator_01.c \ eina_list_01.c \ eina_list_02.c \ eina_list_03.c \ eina_list_04.c \ eina_log_01.c \ eina_log_02.c \ eina_log_03.c \ eina_inlist_01.c \ eina_inlist_02.c \ eina_inlist_03.c \ eina_str_01.c \ eina_strbuf_01.c \ eina_stringshare_01.c \ eina_tiler_01.c \ eina_simple_xml_parser_01.c \ eina_value_01.c \ eina_value_02.c \ eina_value_03.c \ eina_inarray_01.c \ eina_inarray_02.c #eina_magic_01.c \ #eina_model_01.c \ #eina_model_02.c \ #eina_model_03.c examples_PROGRAMS = if EFL_INSTALL_EXAMPLES filesdir = $(datadir)/$(PACKAGE)/examples files_DATA = $(SRCS) endif if EFL_BUILD_EXAMPLES examples_PROGRAMS += \ eina_accessor_01 \ eina_array_01 \ eina_array_02 \ eina_error_01 \ eina_file_01 \ eina_hash_01 \ eina_hash_02 \ eina_hash_03 \ eina_hash_04 \ eina_hash_05 \ eina_hash_06 \ eina_hash_07 \ eina_hash_08 \ eina_iterator_01 \ eina_list_01 \ eina_list_02 \ eina_list_03 \ eina_list_04 \ eina_log_01 \ eina_log_02 \ eina_log_03 \ eina_inlist_01 \ eina_inlist_02 \ eina_inlist_03 \ eina_str_01 \ eina_strbuf_01 \ eina_stringshare_01 \ eina_magic_01 \ eina_simple_xml_parser_01 \ eina_value_01 \ eina_value_02 \ eina_value_03 \ eina_inarray_01 \ eina_inarray_02 #eina_model_01 \ #eina_model_02 \ #eina_model_03 \ #eina_model_04 #eina_model_04_SOURCES = \ #eina_model_04_animal.c \ #eina_model_04_child.c \ #eina_model_04_human.c \ #eina_model_04_main.c \ #eina_model_04_parrot.c \ #eina_model_04_whistler.c \ #eina_model_04_animal.h \ #eina_model_04_child.h \ #eina_model_04_human.h \ #eina_model_04_parrot.h \ #eina_model_04_whistler.h if BUILD_TILER_EXAMPLE AM_CPPFLAGS += @ECORE_EVAS_CFLAGS@ examples_PROGRAMS += eina_tiler_01 eina_tiler_01_LDADD = $(top_builddir)/src/lib/libeina.la @ECORE_EVAS_LIBS@ endif endif EXTRA_DIST = addr_book.txt chat.xml eina-1.7.10/src/examples/eina_list_02.c0000664000175000017500000000271612175475327014503 00000000000000//Compile with: //gcc -g eina_list_02.c -o eina_list_02 `pkg-config --cflags --libs eina` #include #include #include int main(int argc, char **argv) { Eina_List *list = NULL, *other_list = NULL; Eina_List *l; void *data; int cmp_result; Eina_Compare_Cb cmp_func = (Eina_Compare_Cb)strcmp; eina_init(); list = eina_list_append(list, "starbuck"); list = eina_list_append(list, "appolo"); list = eina_list_append(list, "boomer"); data = eina_list_search_unsorted(list, cmp_func, "boomer"); l = eina_list_search_unsorted_list(list, cmp_func, "boomer"); if (l->data != data) return 1; list = eina_list_sort(list, 0, cmp_func); data = eina_list_search_sorted(list, cmp_func, "starbuck"); l = eina_list_search_sorted_list(list, cmp_func, "starbuck"); if (l->data != data) return 1; list = eina_list_sorted_insert(list, cmp_func, "helo"); l = eina_list_search_sorted_near_list(list, cmp_func, "hera", &cmp_result); if (cmp_result > 0) list = eina_list_prepend_relative_list(list, "hera", l); else if (cmp_result < 0) list = eina_list_append_relative_list(list, "hera", l); l = eina_list_search_sorted_list(list, cmp_func, "boomer"); list = eina_list_split_list(list, l, &other_list); other_list = eina_list_sort(other_list, 0, cmp_func); list = eina_list_sorted_merge(list, other_list, cmp_func); eina_list_free(list); eina_shutdown(); return 0; } eina-1.7.10/src/examples/eina_file_01.c0000664000175000017500000000174312175475327014445 00000000000000//Compile with: //gcc -g eina_file_01.c -o eina_file_01 `pkg-config --cflags --libs eina` #include #include static void _print_cb(const char *name, const char *path, void *data) { printf("file %s in %s\n", name, path); } int main(int argc, char **argv) { Eina_Iterator *it; const char *f_name; const Eina_File_Direct_Info *f_info; eina_init(); eina_file_dir_list("/home/", EINA_FALSE, _print_cb, NULL); it = eina_file_ls("/home/"); EINA_ITERATOR_FOREACH(it, f_name) { printf("%s\n", f_name); eina_stringshare_del(f_name); } eina_iterator_free(it); it = eina_file_stat_ls("/home/"); EINA_ITERATOR_FOREACH(it, f_info) printf("%s if of type %d\n", f_info->path, f_info->type); eina_iterator_free(it); it = eina_file_direct_ls("/home/"); EINA_ITERATOR_FOREACH(it, f_info) printf("%s if of type %d\n", f_info->path, f_info->type); eina_iterator_free(it); eina_shutdown(); return 0; } eina-1.7.10/src/examples/eina_list_04.c0000664000175000017500000000175612175475327014510 00000000000000//Compile with: //gcc -g eina_list_04.c -o eina_list_04 `pkg-config --cflags --libs eina` #include #include int main(int argc, char **argv) { Eina_List *list = NULL; Eina_List *l; void *list_data; eina_init(); list = eina_list_append(list, eina_stringshare_add("calvin")); list = eina_list_append(list, eina_stringshare_add("Leoben")); list = eina_list_append(list, eina_stringshare_add("D'Anna")); list = eina_list_append(list, eina_stringshare_add("Simon")); list = eina_list_append(list, eina_stringshare_add("Doral")); list = eina_list_append(list, eina_stringshare_add("Six")); list = eina_list_append(list, eina_stringshare_add("Sharon")); for(l = list; l; l = eina_list_next(l)) printf("%s\n", (char*)l->data); for(l = eina_list_last(list); l; l = eina_list_prev(l)) printf("%s\n", (char*)eina_list_data_get(l)); EINA_LIST_FREE(list, list_data) eina_stringshare_del(list_data); eina_shutdown(); return 0; } eina-1.7.10/src/Makefile.am0000664000175000017500000000036012175475327012276 00000000000000SUBDIRS = lib include modules tests examples MAINTAINERCLEANFILES = Makefile.in .PHONY: benchmark if EFL_ENABLE_BENCHMARK benchmark: all cd tests && make eina_bench else benchmark: @echo "reconfigure with --enable-benchmark" endif eina-1.7.10/README0000664000175000017500000000315112247700034010316 00000000000000Eina 1.7.4 ****************************************************************************** FOR ANY ISSUES PLEASE EMAIL: enlightenment-devel@lists.sourceforge.net ****************************************************************************** Requirements: ------------- Must have: libc (pthread or windows threading support, iconv support) Eina is a library providing data structure utilities for EFL that are meant to be lean, efficient and tailored to EFL's needs. This saves each library implementing its own custom datatype handling and duplicating the code. Some of the datatypes handles are: Arrays (variable sized, including inline members) Hash tables Inlined linked lists Linked lists Matricies Quadtrees Red/black trees Stringbuffers (expandable string buffers) In addition Eina supports shared string token hashes with Stringshare and Unistringshare (standard ascii/utf8 strings and full unicode strings). It has a Trash pointer collector for deferring freeing until work is complete on a dataset, Unicode string wrapping and handling, UTF8 string parsing, 2D tile structure handling and rectangle utilities, module loading wrapper, Memory pools for faster allocation and less fragmentation of the heap, Output logging and selective aborting on critical enough states, fixed point math functions, CPU feature detection (like MMX, SSE, VFP, NEON etc.), Counters, binary token sharing and more. ------------------------------------------------------------------------------ COMPILING AND INSTALLING: ./configure make (do this as root unless you are installing in your users directories): make install eina-1.7.10/eina.pc.in0000664000175000017500000000072612175475327011326 00000000000000PACKAGE_TARNAME=@PACKAGE_TARNAME@ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ docdir=@docdir@ Name: Eina Description: A Library that implements fast data types and miscellaneous tools @pkgconfig_requires_private@: @requirements_pc_eina@ Version: @VERSION@ Libs: -L${libdir} -leina @EFL_PTHREAD_LIBS@ Libs.private: @EFL_PTHREAD_LIBS@ @requirements_libs_eina@ -lm Cflags: -I${includedir}/eina-@VMAJ@ -I${includedir}/eina-@VMAJ@/eina eina-1.7.10/eina.spec0000664000175000017500000000263112247700050011226 00000000000000%{!?_rel:%{expand:%%global _rel 0.enl%{?dist}}} %define _missing_doc_files_terminate_build 0 Summary: Data Type Library Name: eina Version: 1.7.10 Release: %{_rel} License: LGPLv2.1 Group: System Environment/Libraries Source: http://download.enlightenment.org/releases/%{name}-%{version}.tar.gz Packager: %{?_packager:%{_packager}}%{!?_packager:Michael Jennings } Vendor: %{?_vendorinfo:%{_vendorinfo}}%{!?_vendorinfo:The Enlightenment Project (http://www.enlightenment.org/)} Distribution: %{?_distribution:%{_distribution}}%{!?_distribution:%{_vendor}} URL: http://www.enlightenment.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-root %description Eina is a data type library. %package devel Summary: Eina headers, static libraries, documentation and test programs Group: System Environment/Libraries Requires: %{name} = %{version} %description devel Headers, static libraries, test programs and documentation for Eina %prep %setup -q %build %{configure} --prefix=%{_prefix} %{__make} %{?_smp_mflags} %{?mflags} %install %{__make} %{?mflags_install} DESTDIR=$RPM_BUILD_ROOT install %clean test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT %post /sbin/ldconfig %postun /sbin/ldconfig %files %defattr(-, root, root) %doc AUTHORS COPYING README %{_libdir}/*.so.* %files devel %defattr(-, root, root) %{_includedir}/* %{_libdir}/*.a %{_libdir}/*.so %{_libdir}/*.la %{_libdir}/pkgconfig/* %changelog eina-1.7.10/configure0000775000175000017500000263536712247700041011371 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for eina 1.7.10. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: enlightenment-devel@lists.sourceforge.net about your $0: system, 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'" SHELL=${CONFIG_SHELL-/bin/sh} 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='eina' PACKAGE_TARNAME='eina' PACKAGE_VERSION='1.7.10' PACKAGE_STRING='eina 1.7.10' PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net' PACKAGE_URL='' ac_unique_file="configure.ac" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS EFL_INSTALL_EXAMPLES_FALSE EFL_INSTALL_EXAMPLES_TRUE EFL_BUILD_EXAMPLES_FALSE EFL_BUILD_EXAMPLES_TRUE requirements_libs_eina requirements_pc_eina CITYHASH_BENCH_FALSE CITYHASH_BENCH_TRUE EINA_HAVE_GLIB_FALSE EINA_HAVE_GLIB_TRUE GLIB_LIBS GLIB_CFLAGS EFL_ENABLE_BENCHMARK_FALSE EFL_ENABLE_BENCHMARK_TRUE EFL_ENABLE_TESTS_FALSE EFL_ENABLE_TESTS_TRUE have_lcov CHECK_LIBS CHECK_CFLAGS EINA_STATIC_BUILD_ONE_BIG_FALSE EINA_STATIC_BUILD_ONE_BIG_TRUE EINA_BUILD_ONE_BIG_FALSE EINA_BUILD_ONE_BIG_TRUE EINA_STATIC_BUILD_BUDDY_FALSE EINA_STATIC_BUILD_BUDDY_TRUE EINA_BUILD_BUDDY_FALSE EINA_BUILD_BUDDY_TRUE EINA_STATIC_BUILD_PASS_THROUGH_FALSE EINA_STATIC_BUILD_PASS_THROUGH_TRUE EINA_BUILD_PASS_THROUGH_FALSE EINA_BUILD_PASS_THROUGH_TRUE EINA_STATIC_BUILD_FIXED_BITMAP_FALSE EINA_STATIC_BUILD_FIXED_BITMAP_TRUE EINA_BUILD_FIXED_BITMAP_FALSE EINA_BUILD_FIXED_BITMAP_TRUE EINA_STATIC_BUILD_EMEMOA_UNKNOWN_FALSE EINA_STATIC_BUILD_EMEMOA_UNKNOWN_TRUE EINA_BUILD_EMEMOA_UNKNOWN_FALSE EINA_BUILD_EMEMOA_UNKNOWN_TRUE EINA_STATIC_BUILD_EMEMOA_FIXED_FALSE EINA_STATIC_BUILD_EMEMOA_FIXED_TRUE EINA_BUILD_EMEMOA_FIXED_FALSE EINA_BUILD_EMEMOA_FIXED_TRUE EINA_STATIC_BUILD_CHAINED_POOL_FALSE EINA_STATIC_BUILD_CHAINED_POOL_TRUE EINA_BUILD_CHAINED_POOL_FALSE EINA_BUILD_CHAINED_POOL_TRUE EINA_CONFIGURE_ENABLE_LOG ALLOCA lt_enable_auto_import EINA_CONFIGURE_HAVE_DIRENT_H EINA_SIZEOF_WCHAR_T EINA_CONFIGURE_HAVE_STDINT_H EINA_CONFIGURE_HAVE_INTTYPES_H BUILD_TILER_EXAMPLE_FALSE BUILD_TILER_EXAMPLE_TRUE ECORE_EVAS_LIBS ECORE_EVAS_CFLAGS EMEMOA_LIBS EMEMOA_CFLAGS VALGRIND_LIBS VALGRIND_CFLAGS EINA_LIBS EINA_CFLAGS EINA_CONFIGURE_HAVE_EXOTIC EINA_HAVE_EXOTIC_FALSE EINA_HAVE_EXOTIC_TRUE EFL_EINA_BUILD EFL_BUILD_DOC_FALSE EFL_BUILD_DOC_TRUE efl_doxygen efl_have_doxygen pkgconfig_requires_private PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG CXXCPP am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE ac_ct_CXX CXXFLAGS CXX EINA_ENABLE_BENCHMARK_E17_FALSE EINA_ENABLE_BENCHMARK_E17_TRUE EINA_CONFIGURE_DEFAULT_MEMPOOL EINA_AMALGAMATION_FALSE EINA_AMALGAMATION_TRUE EINA_CONFIGURE_SAFETY_CHECKS SAFETY_CHECKS_FALSE SAFETY_CHECKS_TRUE EINA_CONFIGURE_MAGIC_DEBUG EINA_ON_OFF_THREADS_FALSE EINA_ON_OFF_THREADS_TRUE EINA_CONFIGURE_HAVE_ON_OFF_THREADS EINA_DEBUG_THREADS_FALSE EINA_DEBUG_THREADS_TRUE EINA_CONFIGURE_HAVE_DEBUG_THREADS EINA_HAVE_THREADS_FALSE EINA_HAVE_THREADS_TRUE EINA_CONFIGURE_HAVE_THREADS EFL_PTHREAD_LIBS EFL_PTHREAD_CFLAGS EFL_SIMD_FLAGS MODULE_ARCH EINA_HAVE_WIN32_FALSE EINA_HAVE_WIN32_TRUE EINA_HAVE_WINCE_FALSE EINA_HAVE_WINCE_TRUE VMAJ release_info version_info OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED LIBTOOL OBJDUMP DLLTOOL AS host_os host_vendor host_cpu host build_os build_vendor build_cpu build EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking enable_largefile enable_shared enable_static with_pic enable_fast_install with_gnu_ld with_sysroot enable_libtool_lock enable_cpu_mmx enable_cpu_sse enable_cpu_sse2 enable_cpu_altivec enable_on_off_threads enable_debug_threads enable_magic_debug enable_safety_checks with_internal_maximum_log_level enable_amalgamation enable_default_mempool enable_stringshare_usage enable_assert enable_e17 enable_doc with_doxygen enable_valgrind enable_ememoa with_iconv_link enable_debug_malloc enable_log enable_mempool_chained_pool enable_mempool_ememoa_fixed enable_mempool_ememoa_unknown enable_mempool_fixed_bitmap enable_mempool_pass_through enable_mempool_buddy enable_mempool_one_big enable_tests enable_benchmark enable_glib enable_build_examples enable_install_examples enable_voltron ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CXX CXXFLAGS CCC CXXCPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR EINA_CFLAGS EINA_LIBS VALGRIND_CFLAGS VALGRIND_LIBS EMEMOA_CFLAGS EMEMOA_LIBS ECORE_EVAS_CFLAGS ECORE_EVAS_LIBS CHECK_CFLAGS CHECK_LIBS GLIB_CFLAGS GLIB_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures eina 1.7.10 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/eina] --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] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of eina 1.7.10:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-largefile omit support for large files --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-cpu-mmx disable mmx code [default=enabled] --disable-cpu-sse disable sse code [default=enabled] --disable-cpu-sse2 disable sse2 code [default=enabled] --disable-cpu-altivec disable altivec code [default=enabled] --enable-on-off-threads only turn this on if you know what you are doing, and do not complain if the world freeze --enable-debug-threads disable assert when you forgot to call eina_threads_init --disable-magic-debug disable magic debug of eina structure [default=enabled] --disable-safety-checks disable safety checks for NULL pointers and like. [default=enabled] --enable-amalgamation enable generation of one single file with all source code in it, helps compiler optimizations. --enable-default-mempool Default memory allocator could be faster for some computer. [default=disabled] --enable-stringshare-usage Report stringshare usage on stringshare shutdown. [default=disabled] --enable-assert enable assert, [default=no] --enable-e17 enable heavy benchmark [default=no] --disable-doc Disable documentation build [default=enabled] --enable-valgrind improve valgrind support by hinting it of our memory usages, having it to report proper mempool leaks. --enable-ememoa build ememoa memory pool module [default=yes] --disable-assert turn off assertions --enable-debug-malloc enable debugging of malloc usage overhead in our allocator [default=enabled] --disable-log disable Eina_Log infrastructure completly [default=enabled] --enable-mempool-chained-pool enable build of chained pool [default=${enable_chained_pool}] --enable-mempool-ememoa-fixed enable build of ememoa fixed [default=${enable_ememoa}] --enable-mempool-ememoa-unknown enable build of ememoa unknown [default=${enable_ememoa}] --enable-mempool-fixed-bitmap enable build of fixed bitmap [default=no] --enable-mempool-pass-through enable build of pass through [default=${enable_pass_through}] --enable-mempool-buddy enable build of buddy [default=no] --enable-mempool-one-big enable build of one big [default=${enable_one_big}] --enable-tests enable tests [default=disabled] --enable-benchmark enable benchmarking [default=disabled] --disable-benchmark-glib disable benchmarking against glib [default=yes] --enable-build-examples enable building examples [default=disabled] --enable-install-examples enable installing example source files [default=disabled] --enable-voltron enable forming of voltron when all files combine [default=no] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-internal-maximum-log-level=NUMBER limit eina internal log level to the given number, any call to EINA_LOG() with values greater than this will be compiled out, ignoring runtime settings, but saving function calls. --with-doxygen=FILE doxygen program to use [default=doxygen] --with-iconv-link=ICONV_LINK explicitly specify an iconv link option 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 CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path EINA_CFLAGS C compiler flags for EINA, overriding pkg-config EINA_LIBS linker flags for EINA, overriding pkg-config VALGRIND_CFLAGS C compiler flags for VALGRIND, overriding pkg-config VALGRIND_LIBS linker flags for VALGRIND, overriding pkg-config EMEMOA_CFLAGS C compiler flags for EMEMOA, overriding pkg-config EMEMOA_LIBS linker flags for EMEMOA, overriding pkg-config ECORE_EVAS_CFLAGS C compiler flags for ECORE_EVAS, overriding pkg-config ECORE_EVAS_LIBS linker flags for ECORE_EVAS, overriding pkg-config CHECK_CFLAGS C compiler flags for CHECK, overriding pkg-config CHECK_LIBS linker flags for CHECK, overriding pkg-config GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config GLIB_LIBS linker flags for GLIB, overriding pkg-config 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 . _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 eina configure 1.7.10 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;} ( $as_echo "## -------------------------------------------------------- ## ## Report this to enlightenment-devel@lists.sourceforge.net ## ## -------------------------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&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_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_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 &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 cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by eina $as_me 1.7.10, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" am__api_version='1.13' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --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 # 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='eina' VERSION='1.7.10' 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 -' # 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=0;; 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='\' 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 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 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 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 # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then : enableval=$enable_largefile; fi if test "$enable_largefile" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : break fi rm -f core conftest.err conftest.$ac_objext CC="$CC -n32" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_largefile_CC=' -n32'; break fi rm -f core conftest.err conftest.$ac_objext break done CC=$ac_save_CC rm -f conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 $as_echo "$ac_cv_sys_largefile_CC" >&6; } if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _FILE_OFFSET_BITS 64 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=64; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_file_offset_bits=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 $as_echo "$ac_cv_sys_file_offset_bits" >&6; } case $ac_cv_sys_file_offset_bits in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits _ACEOF ;; esac rm -rf conftest* if test $ac_cv_sys_file_offset_bits = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGE_FILES 1 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=1; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_large_files=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 $as_echo "$ac_cv_sys_large_files" >&6; } case $ac_cv_sys_large_files in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGE_FILES $ac_cv_sys_large_files _ACEOF ;; esac rm -rf conftest* fi fi #lt_cv_deplibs_check_method='pass_all' # 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 enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; 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_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then ac_cv_prog_AS="$AS" # 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_AS="${ac_tool_prefix}as" $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 AS=$ac_cv_prog_AS if test -n "$AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 $as_echo "$AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AS"; then ac_ct_AS=$AS # Extract the first word of "as", so it can be a program name with args. set dummy as; 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_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # 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_AS="as" $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_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 $as_echo "$ac_ct_AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AS" = x; then AS="false" 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 AS=$ac_ct_AS fi else AS="$ac_cv_prog_AS" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; 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_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # 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_DLLTOOL="${ac_tool_prefix}dlltool" $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 DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; 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_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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_DLLTOOL="dlltool" $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_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" 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 DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; 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_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # 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_OBJDUMP="${ac_tool_prefix}objdump" $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 OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; 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_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # 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_OBJDUMP="objdump" $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_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" 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 OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi ;; esac test -z "$AS" && AS=as test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$OBJDUMP" && OBJDUMP=objdump case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.2' macro_revision='1.3337' ltmain="$ac_aux_dir/ltmain.sh" # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $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 test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_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 fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_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 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "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_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_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_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # 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 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 ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_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 `"$lt_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 ${lt_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 "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" 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_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # 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_DUMPBIN="$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 DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" 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_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # 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_DUMPBIN="$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_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" 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 DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; 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, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; 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_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # 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_OBJDUMP="${ac_tool_prefix}objdump" $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 OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; 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_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # 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_OBJDUMP="objdump" $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_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" 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 OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; 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_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # 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_DLLTOOL="${ac_tool_prefix}dlltool" $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 DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; 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_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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_DLLTOOL="dlltool" $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_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" 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 DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar 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_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # 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_AR="$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 AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar 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_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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_AR="$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_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" 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 AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi 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 test -z "$STRIP" && STRIP=: 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 test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 $as_echo "${with_sysroot}" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; powerpcle-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else 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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext 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 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; 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_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # 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_MANIFEST_TOOL="${ac_tool_prefix}mt" $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 MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; 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_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # 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_MANIFEST_TOOL="mt" $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_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" 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 MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; 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_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # 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_DSYMUTIL="${ac_tool_prefix}dsymutil" $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 DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; 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_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # 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_DSYMUTIL="dsymutil" $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_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" 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 DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; 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_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # 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_NMEDIT="${ac_tool_prefix}nmedit" $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 NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; 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_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # 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_NMEDIT="nmedit" $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_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" 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 NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; 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_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # 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_LIPO="${ac_tool_prefix}lipo" $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 LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; 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_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # 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_LIPO="lipo" $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_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" 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 LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; 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_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # 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_OTOOL="${ac_tool_prefix}otool" $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 OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; 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_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # 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_OTOOL="otool" $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_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" 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 OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; 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_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # 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_OTOOL64="${ac_tool_prefix}otool64" $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 OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; 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_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # 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_OTOOL64="otool64" $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_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" 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 OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" 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 # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $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 dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=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_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $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 shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=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_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $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 dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=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_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $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 dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=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_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $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 dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=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_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $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; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } 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 CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## cat >>confdefs.h <<_ACEOF #define VMAJ 1 _ACEOF cat >>confdefs.h <<_ACEOF #define VMIN 7 _ACEOF cat >>confdefs.h <<_ACEOF #define VMIC 10 _ACEOF cat >>confdefs.h <<_ACEOF #define VREV 0 _ACEOF version_info="8:10:7" release_info="" ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## VMAJ=1 ### Needed information requirements_pc_eina="" have_wince="no" have_win32="no" case "$host_os" in mingw32ce*) have_win32="yes" have_wince="yes" MODULE_ARCH="$host_os-$host_cpu" MODULE_EXT=".dll" ;; mingw*) have_win32="yes" MODULE_ARCH="$host_os-$host_cpu-1.7.10" MODULE_EXT=".dll" ;; *) MODULE_ARCH="$host_os-$host_cpu-1.7.10" MODULE_EXT=".so" ;; esac if test "x$have_wince" = "xyes"; then EINA_HAVE_WINCE_TRUE= EINA_HAVE_WINCE_FALSE='#' else EINA_HAVE_WINCE_TRUE='#' EINA_HAVE_WINCE_FALSE= fi if test "x$have_win32" = "xyes"; then EINA_HAVE_WIN32_TRUE= EINA_HAVE_WIN32_FALSE='#' else EINA_HAVE_WIN32_TRUE='#' EINA_HAVE_WIN32_FALSE= fi cat >>confdefs.h <<_ACEOF #define MODULE_ARCH "${MODULE_ARCH}" _ACEOF cat >>confdefs.h <<_ACEOF #define SHARED_LIB_SUFFIX "${MODULE_EXT}" _ACEOF # Check whether --enable-cpu-mmx was given. if test "${enable_cpu_mmx+set}" = set; then : enableval=$enable_cpu_mmx; if test "x${enableval}" = "xyes" ; then _efl_enable_cpu_mmx="yes" else _efl_enable_cpu_mmx="no" fi else _efl_enable_cpu_mmx="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build mmx code" >&5 $as_echo_n "checking whether to build mmx code... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_enable_cpu_mmx}" >&5 $as_echo "${_efl_enable_cpu_mmx}" >&6; } _efl_build_cpu_mmx="no" if test "x${_efl_enable_cpu_mmx}" = "xyes" ; then case $host_cpu in i*86 | x86_64 | amd64) _efl_build_cpu_mmx="yes" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mmx instructions set is available" >&5 $as_echo_n "checking whether mmx instructions set is available... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_build_cpu_mmx}" >&5 $as_echo "${_efl_build_cpu_mmx}" >&6; } if test "x${_efl_build_cpu_mmx}" = "xyes" ; then SAVE_CFLAGS=${CFLAGS} CFLAGS="-mmmx" 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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : have_linker_option="yes" EFL_SIMD_FLAGS="${EFL_SIMD_FLAGS} -mmmx" else have_linker_option="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext 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 CFLAGS=${SAVE_CFLAGS} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mmx linker option is supported" >&5 $as_echo_n "checking whether mmx linker option is supported... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_linker_option}" >&5 $as_echo "${have_linker_option}" >&6; } fi if test "x${_efl_build_cpu_mmx}" = "xyes" ; then $as_echo "#define EFL_HAVE_MMX 1" >>confdefs.h fi if test "x$_efl_build_cpu_mmx" = "xyes"; then : have_mmx="yes" else have_mmx="no" fi # Check whether --enable-cpu-sse was given. if test "${enable_cpu_sse+set}" = set; then : enableval=$enable_cpu_sse; if test "x${enableval}" = "xyes" ; then _efl_enable_cpu_sse="yes" else _efl_enable_cpu_sse="no" fi else _efl_enable_cpu_sse="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build sse code" >&5 $as_echo_n "checking whether to build sse code... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_enable_cpu_sse}" >&5 $as_echo "${_efl_enable_cpu_sse}" >&6; } _efl_build_cpu_sse="no" if test "x${_efl_enable_cpu_sse}" = "xyes" ; then case $host_cpu in i*86 | x86_64 | amd64) _efl_build_cpu_sse="yes" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse instructions set is available" >&5 $as_echo_n "checking whether sse instructions set is available... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_build_cpu_sse}" >&5 $as_echo "${_efl_build_cpu_sse}" >&6; } if test "x${_efl_build_cpu_sse}" = "xyes" ; then SAVE_CFLAGS=${CFLAGS} CFLAGS="-msse" 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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : have_linker_option="yes" EFL_SIMD_FLAGS="${EFL_SIMD_FLAGS} -msse" else have_linker_option="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext 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 CFLAGS=${SAVE_CFLAGS} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse linker option is supported" >&5 $as_echo_n "checking whether sse linker option is supported... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_linker_option}" >&5 $as_echo "${have_linker_option}" >&6; } fi if test "x${_efl_build_cpu_sse}" = "xyes" ; then $as_echo "#define EFL_HAVE_SSE 1" >>confdefs.h fi if test "x$_efl_build_cpu_sse" = "xyes"; then : have_sse="yes" else have_sse="no" fi # Check whether --enable-cpu-sse2 was given. if test "${enable_cpu_sse2+set}" = set; then : enableval=$enable_cpu_sse2; if test "x${enableval}" = "xyes" ; then _efl_enable_cpu_sse2="yes" else _efl_enable_cpu_sse2="no" fi else _efl_enable_cpu_sse2="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build sse2 code" >&5 $as_echo_n "checking whether to build sse2 code... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_enable_cpu_sse2}" >&5 $as_echo "${_efl_enable_cpu_sse2}" >&6; } _efl_build_cpu_sse2="no" if test "x${_efl_enable_cpu_sse2}" = "xyes" ; then case $host_cpu in i*86 | x86_64 | amd64) _efl_build_cpu_sse2="yes" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse2 instructions set is available" >&5 $as_echo_n "checking whether sse2 instructions set is available... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_build_cpu_sse2}" >&5 $as_echo "${_efl_build_cpu_sse2}" >&6; } if test "x${_efl_build_cpu_sse2}" = "xyes" ; then SAVE_CFLAGS=${CFLAGS} CFLAGS="-msse2" 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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : have_linker_option="yes" EFL_SIMD_FLAGS="${EFL_SIMD_FLAGS} -msse2" else have_linker_option="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext 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 CFLAGS=${SAVE_CFLAGS} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sse2 linker option is supported" >&5 $as_echo_n "checking whether sse2 linker option is supported... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_linker_option}" >&5 $as_echo "${have_linker_option}" >&6; } fi if test "x${_efl_build_cpu_sse2}" = "xyes" ; then $as_echo "#define EFL_HAVE_SSE2 1" >>confdefs.h fi if test "x$_efl_build_cpu_sse2" = "xyes"; then : have_sse2="yes" else have_sse2="no" fi # Check whether --enable-cpu-altivec was given. if test "${enable_cpu_altivec+set}" = set; then : enableval=$enable_cpu_altivec; if test "x${enableval}" = "xyes" ; then _efl_enable_cpu_altivec="yes" else _efl_enable_cpu_altivec="no" fi else _efl_enable_cpu_altivec="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build altivec code" >&5 $as_echo_n "checking whether to build altivec code... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_enable_cpu_altivec}" >&5 $as_echo "${_efl_enable_cpu_altivec}" >&6; } _efl_build_cpu_altivec="no" if test "x${_efl_enable_cpu_altivec}" = "xyes" ; then case $host_cpu in *power* | *ppc*) _efl_build_cpu_altivec="yes" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether altivec instructions set is available" >&5 $as_echo_n "checking whether altivec instructions set is available... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_build_cpu_altivec}" >&5 $as_echo "${_efl_build_cpu_altivec}" >&6; } _efl_have_faltivec="no" if test "x${_efl_build_cpu_altivec}" = "xyes" ; then SAVE_CFLAGS=${CFLAGS} CFLAGS="-faltivec" 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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : _efl_have_faltivec="yes" _efl_altivec_flag="-faltivec" else _efl_have_faltivec="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test "x${_efl_have_faltivec}" = "xno" ; then CFLAGS="-maltivec" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : _efl_have_faltivec="yes" _efl_altivec_flag="-maltivec" else _efl_have_faltivec="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext 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 CFLAGS=${SAVE_CFLAGS} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether altivec linker option is supported" >&5 $as_echo_n "checking whether altivec linker option is supported... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_have_faltivec}" >&5 $as_echo "${_efl_have_faltivec}" >&6; } fi EFL_SIMD_FLAGS="${EFL_SIMD_FLAGS} ${_efl_altivec_flag}" if test "x${_efl_have_faltivec}" = "xyes" ; then $as_echo "#define EFL_HAVE_ALTIVEC 1" >>confdefs.h fi if test "x$_efl_have_faltivec" = "xyes"; then : have_altivec="yes" else have_altivec="no" fi EFL_PTHREAD_CFLAGS="" EFL_PTHREAD_LIBS="" _efl_enable_posix_threads="no" _efl_have_posix_threads="no" _efl_have_win32_threads="no" case "$host_os" in mingw*) _efl_have_win32_threads="yes" $as_echo "#define EFL_HAVE_WIN32_THREADS 1" >>confdefs.h $as_echo "#define EFL_HAVE_THREADS 1" >>confdefs.h ;; *) _efl_enable_posix_threads="yes" _efl_threads_cflags="-D_REENTRANT" _efl_threads_libs="-lpthread" ;; esac if test "x${_efl_enable_posix_threads}" = "xyes" ; then SAVE_CFLAGS=${CFLAGS} CFLAGS="${CFLAGS} ${_efl_threads_cflags}" SAVE_LIBS=${LIBS} LIBS="${LIBS} ${_efl_threads_libs}" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pthread_t id; id = pthread_self(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : _efl_have_posix_threads="yes" $as_echo "#define EFL_HAVE_POSIX_THREADS 1" >>confdefs.h $as_echo "#define EFL_HAVE_THREADS 1" >>confdefs.h EFL_PTHREAD_CFLAGS=${_efl_threads_cflags} EFL_PTHREAD_LIBS=${_efl_threads_libs} else _efl_have_posix_threads="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS=${SAVE_CFLAGS} LIBS=${SAVE_LIBS} fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking which threads API is used" >&5 $as_echo_n "checking which threads API is used... " >&6; } if test "x${_efl_have_posix_threads}" = "xyes" ; then efl_have_threads="POSIX" else if test "x${_efl_have_win32_threads}" = "xyes" ; then efl_have_threads="Windows" else efl_have_threads="no" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${efl_have_threads}" >&5 $as_echo "${efl_have_threads}" >&6; } efl_have_posix_threads_spinlock="no" if test "x${_efl_have_posix_threads}" = "xyes" ; then SAVE_CFLAGS=${CFLAGS} CFLAGS="${CFLAGS} ${EFL_PTHREAD_CFLAGS}" SAVE_LIBS=${LIBS} LIBS="${LIBS} ${EFL_PTHREAD_LIBS}" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pthread_spinlock_t lock; int res; res = pthread_spin_init(&lock, PTHREAD_PROCESS_PRIVATE); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : efl_have_posix_threads_spinlock="yes" else efl_have_posix_threads_spinlock="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS=${SAVE_CFLAGS} LIBS=${SAVE_LIBS} fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build POSIX threads spinlock code" >&5 $as_echo_n "checking whether to build POSIX threads spinlock code... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${efl_have_posix_threads_spinlock}" >&5 $as_echo "${efl_have_posix_threads_spinlock}" >&6; } if test "x${efl_have_posix_threads_spinlock}" = "xyes" ; then $as_echo "#define EFL_HAVE_POSIX_THREADS_SPINLOCK 1" >>confdefs.h fi _efl_enable_on_off_threads="no" # Check whether --enable-on-off-threads was given. if test "${enable_on_off_threads+set}" = set; then : enableval=$enable_on_off_threads; _efl_enable_on_off_threads="${enableval}" fi efl_have_on_off_threads="no" if test "x${_efl_have_posix_threads}" = "xyes" && test "x${_efl_enable_on_off_threads}" = "xyes"; then efl_have_on_off_threads="yes" $as_echo "#define EFL_ON_OFF_THREADS 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to turn on/off threads lock on demand" >&5 $as_echo_n "checking whether to turn on/off threads lock on demand... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${efl_have_on_off_threads}" >&5 $as_echo "${efl_have_on_off_threads}" >&6; } _efl_enable_debug_threads="no" # Check whether --enable-debug-threads was given. if test "${enable_debug_threads+set}" = set; then : enableval=$enable_debug_threads; _efl_enable_debug_threads="${enableval}" fi efl_have_debug_threads="no" if test "x${_efl_have_posix_threads}" = "xyes" && test "x${_efl_enable_debug_threads}" = "xyes"; then efl_have_debug_threads="yes" $as_echo "#define EFL_DEBUG_THREADS 1" >>confdefs.h fi if test "x$_efl_have_posix_threads" = "xyes" || test "x$_efl_have_win32_threads" = "xyes"; then : fi if ! test "x${efl_have_threads}" = "xno" ; then EINA_CONFIGURE_HAVE_THREADS="#define EINA_HAVE_THREADS" fi if ! test "x${efl_have_threads}" = "xno"; then EINA_HAVE_THREADS_TRUE= EINA_HAVE_THREADS_FALSE='#' else EINA_HAVE_THREADS_TRUE='#' EINA_HAVE_THREADS_FALSE= fi if test "x${efl_have_debug_threads}" = "xyes"; then EINA_CONFIGURE_HAVE_DEBUG_THREADS="#define EINA_HAVE_DEBUG_THREADS" fi if test "x${efl_have_debug_threads}" = "xyes"; then EINA_DEBUG_THREADS_TRUE= EINA_DEBUG_THREADS_FALSE='#' else EINA_DEBUG_THREADS_TRUE='#' EINA_DEBUG_THREADS_FALSE= fi if ! test "x${efl_have_on_off_threads}" = "xno"; then EINA_CONFIGURE_HAVE_ON_OFF_THREADS="#define EINA_HAVE_ON_OFF_THREADS" fi if ! test "x${efl_have_on_off_threads}" = "xno"; then EINA_ON_OFF_THREADS_TRUE= EINA_ON_OFF_THREADS_FALSE='#' else EINA_ON_OFF_THREADS_TRUE='#' EINA_ON_OFF_THREADS_FALSE= fi ### Additional options to configure # Magic debug # Check whether --enable-magic-debug was given. if test "${enable_magic_debug+set}" = set; then : enableval=$enable_magic_debug; if test "x${enableval}" = "xyes" ; then have_magic_debug="yes" else have_magic_debug="no" fi else have_magic_debug="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether magic debug is enable" >&5 $as_echo_n "checking whether magic debug is enable... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_magic_debug}" >&5 $as_echo "${have_magic_debug}" >&6; } if test "x${have_magic_debug}" = "xyes" ; then EINA_CONFIGURE_MAGIC_DEBUG="#define EINA_MAGIC_DEBUG" fi # Safety checks (avoid crashes on wrong api usage) # Check whether --enable-safety-checks was given. if test "${enable_safety_checks+set}" = set; then : enableval=$enable_safety_checks; if test "x${enableval}" = "xyes" ; then have_safety_checks="yes" else have_safety_checks="no" fi else have_safety_checks="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to do safety checking on api parameters" >&5 $as_echo_n "checking whether to do safety checking on api parameters... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_safety_checks" >&5 $as_echo "$have_safety_checks" >&6; } if test "x$have_safety_checks" = "xyes"; then SAFETY_CHECKS_TRUE= SAFETY_CHECKS_FALSE='#' else SAFETY_CHECKS_TRUE='#' SAFETY_CHECKS_FALSE= fi if test "x$have_safety_checks" = "xyes"; then $as_echo "#define EINA_SAFETY_CHECKS 1" >>confdefs.h EINA_CONFIGURE_SAFETY_CHECKS="#define EINA_SAFETY_CHECKS" fi with_max_log_level="" # Check whether --with-internal-maximum-log-level was given. if test "${with_internal_maximum_log_level+set}" = set; then : withval=$with_internal_maximum_log_level; if test "x${withval}" != "xno"; then if echo "${withval}" | grep -E '^[0-9]+$' >/dev/null 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: ignoring any EINA_LOG() with level greater than ${withval}" >&5 $as_echo "$as_me: ignoring any EINA_LOG() with level greater than ${withval}" >&6;} cat >>confdefs.h <<_ACEOF #define EINA_LOG_LEVEL_MAXIMUM ${withval} _ACEOF with_max_log_level="${withval}" else as_fn_error $? "--with-internal-maximum-log-level takes a decimal number, got \"${withval}\" instead." "$LINENO" 5 fi fi else : fi # Check whether --enable-amalgamation was given. if test "${enable_amalgamation+set}" = set; then : enableval=$enable_amalgamation; if test "x${enableval}" = "xyes"; then do_amalgamation="yes" else do_amalgamation="no" fi else do_amalgamation="no" fi if test "x${do_amalgamation}" = "xyes"; then EINA_AMALGAMATION_TRUE= EINA_AMALGAMATION_FALSE='#' else EINA_AMALGAMATION_TRUE='#' EINA_AMALGAMATION_FALSE= fi # Choose best memory pool # Check whether --enable-default-mempool was given. if test "${enable_default_mempool+set}" = set; then : enableval=$enable_default_mempool; if test "x${enableval}" = "xyes"; then have_default_mempool="yes" else have_default_mempool="no" fi else have_default_mempool="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use default mempool allocator" >&5 $as_echo_n "checking whether to use default mempool allocator... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_default_mempool}" >&5 $as_echo "${have_default_mempool}" >&6; } if test "x${have_default_mempool}" = "xyes" ; then EINA_CONFIGURE_DEFAULT_MEMPOOL="#define EINA_DEFAULT_MEMPOOL" fi # Report stringshare usage # Check whether --enable-stringshare-usage was given. if test "${enable_stringshare_usage+set}" = set; then : enableval=$enable_stringshare_usage; if test "x${enableval}" = "xyes"; then have_stringshare_usage="yes" else have_stringshare_usage="no" fi else have_stringshare_usage="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to report stringshare usage" >&5 $as_echo_n "checking whether to report stringshare usage... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_stringshare_usage}" >&5 $as_echo "${have_stringshare_usage}" >&6; } if test "x${have_stringshare_usage}" = "xyes"; then $as_echo "#define EINA_STRINGSHARE_USAGE 1" >>confdefs.h fi # Assert or fail. # Check whether --enable-assert was given. if test "${enable_assert+set}" = set; then : enableval=$enable_assert; if test "x${enableval}" = "xyes" ; then prefer_assert="yes" else prefer_assert="no" fi else prefer_assert="no" fi # Check if we want to benchmark on real data enable_benchmark_e17="no" # Check whether --enable-e17 was given. if test "${enable_e17+set}" = set; then : enableval=$enable_e17; if test "x${enableval}" = "xyes" ; then enable_benchmark_e17="yes" else enable_benchmark_e17="no" fi else enable_benchmark_e17="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether e17 real data benchmark are built" >&5 $as_echo_n "checking whether e17 real data benchmark are built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${enable_benchmark_e17}" >&5 $as_echo "${enable_benchmark_e17}" >&6; } if test "x${enable_benchmark_e17}" = "xyes"; then EINA_ENABLE_BENCHMARK_E17_TRUE= EINA_ENABLE_BENCHMARK_E17_FALSE='#' else EINA_ENABLE_BENCHMARK_E17_TRUE='#' EINA_ENABLE_BENCHMARK_E17_FALSE= fi ### Checks for programs 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 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 #for src/tests... ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=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 depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=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 else _lt_caught_CXX_error=yes fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds reload_flag_CXX=$reload_flag reload_cmds_CXX=$reload_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # 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 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 ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_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 `"$lt_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 ${lt_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 "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_CXX='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' fi archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_CXX=' ' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=yes file_list_spec_CXX='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' enable_shared_with_static_runtimes_CXX=yes # Don't use ranlib old_postinstall_cmds_CXX='chmod 644 $oldlib' postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec_CXX='' fi link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" if test "$lt_cv_apple_cc_single_mod" != "yes"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; haiku*) archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs_CXX=yes ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5].* | *pgcpp\ [1-5].*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ '"$old_archive_cmds_CXX" reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ '"$reload_cmds_CXX" ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) # IBM XL 8.0, 9.0 on PPC and BlueGene lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ;; esac ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc_CXX=no else lt_cv_archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 $as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink || test "$inherit_rpath_CXX" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes 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 # pkg-config if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-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_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_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_PKG_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 ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-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_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_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_ac_pt_PKG_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 ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" 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 PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; 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; } PKG_CONFIG="" fi fi # Check whether pkg-config supports Requires.private if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then pkgconfig_requires_private="Requires.private" else pkgconfig_requires_private="Requires" fi # doxygen program for documentation building # Check whether --enable-doc was given. if test "${enable_doc+set}" = set; then : enableval=$enable_doc; if test "x${enableval}" = "xyes" ; then efl_enable_doc="yes" else efl_enable_doc="no" fi else efl_enable_doc="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build documentation" >&5 $as_echo_n "checking whether to build documentation... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${efl_enable_doc}" >&5 $as_echo "${efl_enable_doc}" >&6; } if test "x${efl_enable_doc}" = "xyes" ; then efl_doxygen="doxygen" # Check whether --with-doxygen was given. if test "${with_doxygen+set}" = set; then : withval=$with_doxygen; efl_doxygen=${withval} # Extract the first word of "${efl_doxygen}", so it can be a program name with args. set dummy ${efl_doxygen}; 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_efl_have_doxygen+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$efl_have_doxygen"; then ac_cv_prog_efl_have_doxygen="$efl_have_doxygen" # 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_efl_have_doxygen="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_efl_have_doxygen" && ac_cv_prog_efl_have_doxygen="no" fi fi efl_have_doxygen=$ac_cv_prog_efl_have_doxygen if test -n "$efl_have_doxygen"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $efl_have_doxygen" >&5 $as_echo "$efl_have_doxygen" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x${efl_have_doxygen}" = "xno" ; then echo "WARNING:" echo "The doxygen program you specified:" echo "${efl_doxygen}" echo "was not found. Please check the path and make sure " echo "the program exists and is executable." { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no doxygen detected. Documentation will not be built" >&5 $as_echo "$as_me: WARNING: no doxygen detected. Documentation will not be built" >&2;} fi else # Extract the first word of "${efl_doxygen}", so it can be a program name with args. set dummy ${efl_doxygen}; 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_efl_have_doxygen+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$efl_have_doxygen"; then ac_cv_prog_efl_have_doxygen="$efl_have_doxygen" # 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_efl_have_doxygen="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_efl_have_doxygen" && ac_cv_prog_efl_have_doxygen="no" fi fi efl_have_doxygen=$ac_cv_prog_efl_have_doxygen if test -n "$efl_have_doxygen"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $efl_have_doxygen" >&5 $as_echo "$efl_have_doxygen" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x${efl_have_doxygen}" = "xno" ; then echo "WARNING:" echo "The doxygen program was not found in your execute path." echo "You may have doxygen installed somewhere not covered by your path." echo "" echo "If this is the case make sure you have the packages installed, AND" echo "that the doxygen program is in your execute path (see your" echo "shell manual page on setting the \$PATH environment variable), OR" echo "alternatively, specify the program to use with --with-doxygen." { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no doxygen detected. Documentation will not be built" >&5 $as_echo "$as_me: WARNING: no doxygen detected. Documentation will not be built" >&2;} fi fi else efl_have_doxygen="no" fi if ! test "x${efl_have_doxygen}" = "xyes" ; then efl_enable_doc="no" fi if test "x${efl_have_doxygen}" = "xyes"; then EFL_BUILD_DOC_TRUE= EFL_BUILD_DOC_FALSE='#' else EFL_BUILD_DOC_TRUE='#' EFL_BUILD_DOC_FALSE= fi if test "x$efl_have_doxygen" = "xyes"; then : build_doc="yes" else build_doc="no" fi ### Checks for libraries ## Compatibility layers # Evil library for compilation on Windows EFL_EINA_BUILD="" case "$host_os" in mingw*) if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.7.10\""; } >&5 ($PKG_CONFIG --exists --print-errors "evil >= 1.7.10") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : fi $as_echo "#define HAVE_EVIL 1" >>confdefs.h requirements_pc_eina="${requirements_pc_eina} evil" EFL_EINA_BUILD="-DEFL_EINA_BUILD" ;; esac # Escape library for compilation on Playstation 3 case "$host_vendor" in ps3*) if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"escape\""; } >&5 ($PKG_CONFIG --exists --print-errors "escape") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : fi $as_echo "#define HAVE_ESCAPE 1" >>confdefs.h requirements_pc_eina="${requirements_pc_eina} escape" ;; esac # Exotic library for copilation on Coyote if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"exotic\""; } >&5 ($PKG_CONFIG --exists --print-errors "exotic") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then enable_exotic="yes" $as_echo "#define HAVE_EXOTIC_H 1" >>confdefs.h EINA_CONFIGURE_HAVE_EXOTIC="#define EINA_HAVE_EXOTIC" requirements_pc_eina="exotic ${requirements_pc_eina}" else enable_exotic="no" fi if test "x${enable_exotic}" = "xyes"; then EINA_HAVE_EXOTIC_TRUE= EINA_HAVE_EXOTIC_FALSE='#' else EINA_HAVE_EXOTIC_TRUE='#' EINA_HAVE_EXOTIC_FALSE= fi if ! test "x${requirements_pc_eina}" = "x" ; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5 $as_echo_n "checking for EINA... " >&6; } if test -n "$EINA_CFLAGS"; then pkg_cv_EINA_CFLAGS="$EINA_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_pc_eina}\""; } >&5 ($PKG_CONFIG --exists --print-errors "${requirements_pc_eina}") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_EINA_CFLAGS=`$PKG_CONFIG --cflags "${requirements_pc_eina}" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$EINA_LIBS"; then pkg_cv_EINA_LIBS="$EINA_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\${requirements_pc_eina}\""; } >&5 ($PKG_CONFIG --exists --print-errors "${requirements_pc_eina}") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_EINA_LIBS=`$PKG_CONFIG --libs "${requirements_pc_eina}" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then EINA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "${requirements_pc_eina}" 2>&1` else EINA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "${requirements_pc_eina}" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$EINA_PKG_ERRORS" >&5 as_fn_error $? "Package requirements (${requirements_pc_eina}) were not met: $EINA_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables EINA_CFLAGS and EINA_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables EINA_CFLAGS and EINA_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else EINA_CFLAGS=$pkg_cv_EINA_CFLAGS EINA_LIBS=$pkg_cv_EINA_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi fi ## Options # Valgrind # Check whether --enable-valgrind was given. if test "${enable_valgrind+set}" = set; then : enableval=$enable_valgrind; if test "x${enableval}" = "xyes" ; then want_valgrind="yes" else want_valgrind="no" fi else want_valgrind="auto" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable build with valgrind" >&5 $as_echo_n "checking whether to enable build with valgrind... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_valgrind}" >&5 $as_echo "${want_valgrind}" >&6; } if test "x${want_valgrind}" = "xyes" || test "x${want_valgrind}" = "xauto"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND" >&5 $as_echo_n "checking for VALGRIND... " >&6; } if test -n "$VALGRIND_CFLAGS"; then pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_VALGRIND_CFLAGS=`$PKG_CONFIG --cflags "valgrind >= 2.4.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$VALGRIND_LIBS"; then pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= 2.4.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "valgrind >= 2.4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_VALGRIND_LIBS=`$PKG_CONFIG --libs "valgrind >= 2.4.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then VALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "valgrind >= 2.4.0" 2>&1` else VALGRIND_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "valgrind >= 2.4.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$VALGRIND_PKG_ERRORS" >&5 have_valgrind="no" $as_echo "#define NVALGRIND 1" >>confdefs.h if test "x${want_valgrind}" = "xyes"; then as_fn_error $? "Valgrind >= 2.4.0 is required" "$LINENO" 5 fi elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_valgrind="no" $as_echo "#define NVALGRIND 1" >>confdefs.h if test "x${want_valgrind}" = "xyes"; then as_fn_error $? "Valgrind >= 2.4.0 is required" "$LINENO" 5 fi else VALGRIND_CFLAGS=$pkg_cv_VALGRIND_CFLAGS VALGRIND_LIBS=$pkg_cv_VALGRIND_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_valgrind="yes" requirements_pc_eina="valgrind ${requirements_pc_eina}" fi else $as_echo "#define NVALGRIND 1" >>confdefs.h fi ## Modules # Check ememoa memory pool library # Check whether --enable-ememoa was given. if test "${enable_ememoa+set}" = set; then : enableval=$enable_ememoa; if test "x${enableval}" = "xyes" ; then enable_ememoa="yes" else enable_ememoa="no" fi else enable_ememoa="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use ememoa for memory pool" >&5 $as_echo_n "checking whether to use ememoa for memory pool... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${enable_ememoa}" >&5 $as_echo "${enable_ememoa}" >&6; } if test "x${enable_ememoa}" = "xyes" ; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMEMOA" >&5 $as_echo_n "checking for EMEMOA... " >&6; } if test -n "$EMEMOA_CFLAGS"; then pkg_cv_EMEMOA_CFLAGS="$EMEMOA_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ememoa >= 0.0.26 \""; } >&5 ($PKG_CONFIG --exists --print-errors "ememoa >= 0.0.26 ") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_EMEMOA_CFLAGS=`$PKG_CONFIG --cflags "ememoa >= 0.0.26 " 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$EMEMOA_LIBS"; then pkg_cv_EMEMOA_LIBS="$EMEMOA_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ememoa >= 0.0.26 \""; } >&5 ($PKG_CONFIG --exists --print-errors "ememoa >= 0.0.26 ") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_EMEMOA_LIBS=`$PKG_CONFIG --libs "ememoa >= 0.0.26 " 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then EMEMOA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ememoa >= 0.0.26 " 2>&1` else EMEMOA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ememoa >= 0.0.26 " 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$EMEMOA_PKG_ERRORS" >&5 enable_ememoa="no" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } enable_ememoa="no" else EMEMOA_CFLAGS=$pkg_cv_EMEMOA_CFLAGS EMEMOA_LIBS=$pkg_cv_EMEMOA_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } enable_ememoa="yes" fi fi ## Examples pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECORE_EVAS" >&5 $as_echo_n "checking for ECORE_EVAS... " >&6; } if test -n "$ECORE_EVAS_CFLAGS"; then pkg_cv_ECORE_EVAS_CFLAGS="$ECORE_EVAS_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore evas\""; } >&5 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore evas") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_ECORE_EVAS_CFLAGS=`$PKG_CONFIG --cflags "ecore-evas ecore evas" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$ECORE_EVAS_LIBS"; then pkg_cv_ECORE_EVAS_LIBS="$ECORE_EVAS_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ecore-evas ecore evas\""; } >&5 ($PKG_CONFIG --exists --print-errors "ecore-evas ecore evas") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_ECORE_EVAS_LIBS=`$PKG_CONFIG --libs "ecore-evas ecore evas" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ecore-evas ecore evas" 2>&1` else ECORE_EVAS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ecore-evas ecore evas" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$ECORE_EVAS_PKG_ERRORS" >&5 build_tiler_example="no" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } build_tiler_example="no" else ECORE_EVAS_CFLAGS=$pkg_cv_ECORE_EVAS_CFLAGS ECORE_EVAS_LIBS=$pkg_cv_ECORE_EVAS_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } build_tiler_example="yes" fi if test "x${build_tiler_example}" = "xyes"; then BUILD_TILER_EXAMPLE_TRUE= BUILD_TILER_EXAMPLE_FALSE='#' else BUILD_TILER_EXAMPLE_TRUE='#' BUILD_TILER_EXAMPLE_FALSE= fi ### Checks for header files { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable assertions" >&5 $as_echo_n "checking whether to enable assertions... " >&6; } # Check whether --enable-assert was given. if test "${enable_assert+set}" = set; then : enableval=$enable_assert; ac_enable_assert=$enableval if test "x$enableval" = xno; then : $as_echo "#define NDEBUG 1" >>confdefs.h elif test "x$enableval" != xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-assert" >&5 $as_echo "$as_me: WARNING: invalid argument supplied to --enable-assert" >&2;} ac_enable_assert=yes fi else ac_enable_assert=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_enable_assert" >&5 $as_echo "$ac_enable_assert" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 $as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } if eval \${$as_ac_Header+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include <$ac_hdr> int main () { if ((DIR *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_ac_Header=yes" else eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_ac_Header { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$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 opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' dir; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_opendir=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_opendir+:} false; then : break fi done if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 $as_echo "$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$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 opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' x; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_opendir=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_opendir+:} false; then : break fi done if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 $as_echo "$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi fi for ac_header in unistd.h libgen.h inttypes.h stdint.h sys/types.h siginfo.h strings.h execinfo.h mcheck.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 # sys/mman.h could be provided by evil/escape/exotic so we need to set CFLAGS accordingly CFLAGS_save="${CFLAGS}" CFLAGS="${CFLAGS} ${EINA_CFLAGS}" for ac_header in sys/mman.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default" if test "x$ac_cv_header_sys_mman_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_MMAN_H 1 _ACEOF fi done CFLAGS="${CFLAGS_save}" if test "x${ac_cv_header_inttypes_h}" = "xyes" ; then EINA_CONFIGURE_HAVE_INTTYPES_H="#define EINA_HAVE_INTTYPES_H" $as_echo "#define HAVE_INTTYPES_H 1" >>confdefs.h fi if test "x${ac_cv_header_inttypes_h}" = "xyes" ; then EINA_CONFIGURE_HAVE_STDINT_H="#define EINA_HAVE_STDINT_H" $as_echo "#define HAVE_STDINT_H 1" >>confdefs.h fi ### Checks for types # wchar_t # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of wchar_t" >&5 $as_echo_n "checking size of wchar_t... " >&6; } if ${ac_cv_sizeof_wchar_t+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (wchar_t))" "ac_cv_sizeof_wchar_t" "$ac_includes_default"; then : else if test "$ac_cv_type_wchar_t" = yes; then { { $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 "cannot compute sizeof (wchar_t) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_wchar_t=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_wchar_t" >&5 $as_echo "$ac_cv_sizeof_wchar_t" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t _ACEOF EINA_SIZEOF_WCHAR_T=$ac_cv_sizeof_wchar_t ac_fn_c_check_type "$LINENO" "siginfo_t" "ac_cv_type_siginfo_t" " #include #if HAVE_SIGINFO_H # include #endif " if test "x$ac_cv_type_siginfo_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SIGINFO_T 1 _ACEOF fi # struct dirent ac_fn_c_check_type "$LINENO" "struct dirent" "ac_cv_type_struct_dirent" " #include " if test "x$ac_cv_type_struct_dirent" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_DIRENT 1 _ACEOF have_dirent="yes" else have_dirent="no" fi if test "x${have_dirent}" = "xyes" ; then EINA_CONFIGURE_HAVE_DIRENT_H="#define EINA_HAVE_DIRENT_H" $as_echo "#define HAVE_DIRENT_H 1" >>confdefs.h fi ### Checks for structures ### Checks for compiler characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no 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 if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no 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 if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main () { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_bigendian=no else ac_cv_c_bigendian=yes 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_c_bigendian" >&5 $as_echo "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h ;; #( no) ;; #( universal) $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) as_fn_error $? "unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac { $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 case $ac_cv_prog_cc_stdc in #( no) : ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #( *) : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; } if ${ac_cv_prog_cc_c99+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include // Check varargs macros. These examples are taken from C99 6.10.3.5. #define debug(...) fprintf (stderr, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK your preprocessor is broken; #endif #if BIG_OK #else your preprocessor is broken; #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\0'; ++i) continue; return 0; } // Check varargs and va_copy. static void test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str; int number; float fnumber; while (*format) { switch (*format++) { case 's': // string str = va_arg (args_copy, const char *); break; case 'd': // int number = va_arg (args_copy, int); break; case 'f': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); } int main () { // Check bool. _Bool success = false; // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. test_varargs ("s, d' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' || dynamic_array[ni.number - 1] != 543); ; return 0; } _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c99" 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_c99" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 $as_echo "$ac_cv_prog_cc_c99" >&6; } ;; esac if test "x$ac_cv_prog_cc_c99" != xno; then : ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 else { $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 : ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 else ac_cv_prog_cc_stdc=no fi fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5 $as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; } if ${ac_cv_prog_cc_stdc+:} false; then : $as_echo_n "(cached) " >&6 fi case $ac_cv_prog_cc_stdc in #( no) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; #( '') : { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; #( *) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5 $as_echo "$ac_cv_prog_cc_stdc" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__ ((unused))" >&5 $as_echo_n "checking for __attribute__ ((unused))... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ void foo(int x __attribute__ ((unused))) {} int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : have_attribute_unused="yes" else have_attribute_unused="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_attribute_unused}" >&5 $as_echo "${have_attribute_unused}" >&6; } if test "x${have_attribute_unused}" = "xyes" ; then $as_echo "#define __UNUSED__ __attribute__ ((unused))" >>confdefs.h else $as_echo "#define __UNUSED__ /**/" >>confdefs.h fi CFLAGS_save="${CFLAGS}" CFLAGS="${CFLAGS} -Wall" 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 the compiler supports -Wall" >&5 $as_echo_n "checking whether the compiler supports -Wall... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : have_flag="yes" else have_flag="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_flag}" >&5 $as_echo "${have_flag}" >&6; } if test "x${have_flag}" = "xno" ; then CFLAGS="${CFLAGS_save}" 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 CFLAGS_save="${CFLAGS}" CFLAGS="${CFLAGS} -W" 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 the compiler supports -W" >&5 $as_echo_n "checking whether the compiler supports -W... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : have_flag="yes" else have_flag="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_flag}" >&5 $as_echo "${have_flag}" >&6; } if test "x${have_flag}" = "xno" ; then CFLAGS="${CFLAGS_save}" 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 CFLAGS_save="${CFLAGS}" CFLAGS="${CFLAGS} -Wshadow" 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 the compiler supports -Wshadow" >&5 $as_echo_n "checking whether the compiler supports -Wshadow... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : have_flag="yes" else have_flag="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_flag}" >&5 $as_echo "${have_flag}" >&6; } if test "x${have_flag}" = "xno" ; then CFLAGS="${CFLAGS_save}" 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 default_max="4096" 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 PATH_MAX in limits.h" >&5 $as_echo_n "checking for PATH_MAX in limits.h... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int i = PATH_MAX; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else cat >>confdefs.h <<_ACEOF #define PATH_MAX ${default_max} _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: no: using ${default_max}" >&5 $as_echo "no: using ${default_max}" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext 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 ### Checks for linker characteristics lt_enable_auto_import="" case "${host_os}" in mingw*) lt_enable_auto_import="-Wl,--enable-auto-import" ;; esac LDFLAGS_save="${LDFLAGS}" LDFLAGS="${LDFLAGS} -fno-strict-aliasing" 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 the compiler supports -fno-strict-aliasing" >&5 $as_echo_n "checking whether the compiler supports -fno-strict-aliasing... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : have_flag="yes" else have_flag="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_flag}" >&5 $as_echo "${have_flag}" >&6; } if test "x${have_flag}" = "xno" ; then LDFLAGS="${LDFLAGS_save}" 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 ### Checks for library functions 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 # 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_func in strlcpy openat fstatat fpathconf execvp backtrace backtrace_symbols malloc_usable_size mtrace 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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_DIRENT_H # include #endif int main () { DIR *dirp; return dirfd(dirp); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : _efl_have_fct="yes" else _efl_have_fct="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "x${_efl_have_fct}" = "xyes"; then : have_fct="yes" else have_fct="no" fi if test "xdirfd" = "xsetxattr" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for extended attributes" >&5 $as_echo_n "checking for extended attributes... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dirfd" >&5 $as_echo_n "checking for dirfd... " >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_fct}" >&5 $as_echo "${have_fct}" >&6; } if test "x${have_fct}" = "xyes" ; then if test "xdirfd" = "xsetxattr" ; then $as_echo "#define HAVE_XATTR 1" >>confdefs.h else $as_echo "#define HAVE_DIRFD 1" >>confdefs.h fi fi efl_func_dirfd="${have_fct}" case "$host_os" in mingw*) _efl_have_fct="yes" requirements_libs_eina="${requirements_libs_eina} -ldl" EINA_LIBS="${EINA_LIBS} -ldl" ;; *) _efl_have_fct="no" LIBS_save="${LIBS}" LIBS="${LIBS} " cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { void *h = dlopen(0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : EINA_LIBS="${EINA_LIBS} " requirements_libs_eina="${requirements_libs_eina} " _efl_have_fct="yes" else _efl_have_fct="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="${LIBS_save}" if test "x${_efl_have_fct}" = "xyes"; then : _efl_have_fct="yes" else _efl_have_fct="no" fi if test "x${_efl_have_fct}" = "xno" ; then LIBS_save="${LIBS}" LIBS="${LIBS} -ldl" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { void *h = dlopen(0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : EINA_LIBS="${EINA_LIBS} -ldl" requirements_libs_eina="${requirements_libs_eina} -ldl" _efl_have_fct="yes" else _efl_have_fct="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="${LIBS_save}" if test "x${_efl_have_fct}" = "xyes"; then : _efl_have_fct="yes" else _efl_have_fct="no" fi fi ;; esac if test "x${_efl_have_fct}" = "xyes"; then : have_fct="yes" else have_fct="no" fi if test "xdlopen" = "xsetxattr" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for extended attributes" >&5 $as_echo_n "checking for extended attributes... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen" >&5 $as_echo_n "checking for dlopen... " >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_fct}" >&5 $as_echo "${have_fct}" >&6; } if test "x${have_fct}" = "xyes" ; then if test "xdlopen" = "xsetxattr" ; then $as_echo "#define HAVE_XATTR 1" >>confdefs.h else $as_echo "#define HAVE_DLOPEN 1" >>confdefs.h fi fi efl_func_dlopen="${have_fct}" case "$host_os" in mingw*) _efl_have_fct="yes" requirements_libs_eina="${requirements_libs_eina} -ldl" EINA_LIBS="${EINA_LIBS} -ldl" ;; *) _efl_have_fct="no" LIBS_save="${LIBS}" LIBS="${LIBS} " cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GNU_SOURCE #include int main () { int res = dladdr(0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : EINA_LIBS="${EINA_LIBS} " requirements_libs_eina="${requirements_libs_eina} " _efl_have_fct="yes" else _efl_have_fct="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="${LIBS_save}" if test "x${_efl_have_fct}" = "xyes"; then : _efl_have_fct="yes" else _efl_have_fct="no" fi if test "x${_efl_have_fct}" = "xno" ; then LIBS_save="${LIBS}" LIBS="${LIBS} -ldl" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GNU_SOURCE #include int main () { int res = dladdr(0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : EINA_LIBS="${EINA_LIBS} -ldl" requirements_libs_eina="${requirements_libs_eina} -ldl" _efl_have_fct="yes" else _efl_have_fct="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="${LIBS_save}" if test "x${_efl_have_fct}" = "xyes"; then : _efl_have_fct="yes" else _efl_have_fct="no" fi fi ;; esac if test "x${_efl_have_fct}" = "xyes"; then : have_fct="yes" else have_fct="no" fi if test "xdladdr" = "xsetxattr" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for extended attributes" >&5 $as_echo_n "checking for extended attributes... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dladdr" >&5 $as_echo_n "checking for dladdr... " >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_fct}" >&5 $as_echo "${have_fct}" >&6; } if test "x${have_fct}" = "xyes" ; then if test "xdladdr" = "xsetxattr" ; then $as_echo "#define HAVE_XATTR 1" >>confdefs.h else $as_echo "#define HAVE_DLADDR 1" >>confdefs.h fi fi efl_func_dladdr="${have_fct}" case "$host_os" in mingw*) _efl_have_fct="yes" ;; *) LIBS_save="${LIBS}" LIBS="${LIBS} " cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int g = fnmatch(NULL, NULL, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : EINA_LIBS="${EINA_LIBS} " requirements_libs_eina="${requirements_libs_eina} " _efl_have_fct="yes" else _efl_have_fct="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="${LIBS_save}" if test "x${_efl_have_fct}" = "xyes"; then : _efl_have_fct="yes" else _efl_have_fct="no" fi if test "x${_efl_have_fct}" = "xno" ; then LIBS_save="${LIBS}" LIBS="${LIBS} -lfnmatch" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int g = fnmatch(NULL, NULL, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : EINA_LIBS="${EINA_LIBS} -lfnmatch" requirements_libs_eina="${requirements_libs_eina} -lfnmatch" _efl_have_fct="yes" else _efl_have_fct="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="${LIBS_save}" if test "x${_efl_have_fct}" = "xyes"; then : _efl_have_fct="yes" else _efl_have_fct="no" fi fi if test "x${_efl_have_fct}" = "xno" ; then LIBS_save="${LIBS}" LIBS="${LIBS} -liberty" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int g = fnmatch(NULL, NULL, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : EINA_LIBS="${EINA_LIBS} -liberty" requirements_libs_eina="${requirements_libs_eina} -liberty" _efl_have_fct="yes" else _efl_have_fct="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="${LIBS_save}" if test "x${_efl_have_fct}" = "xyes"; then : _efl_have_fct="yes" else _efl_have_fct="no" fi fi ;; esac if test "x${_efl_have_fct}" = "xyes"; then : have_fct="yes" else have_fct="no" fi if test "xfnmatch" = "xsetxattr" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for extended attributes" >&5 $as_echo_n "checking for extended attributes... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fnmatch" >&5 $as_echo_n "checking for fnmatch... " >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_fct}" >&5 $as_echo "${have_fct}" >&6; } if test "x${have_fct}" = "xyes" ; then if test "xfnmatch" = "xsetxattr" ; then $as_echo "#define HAVE_XATTR 1" >>confdefs.h else $as_echo "#define HAVE_FNMATCH 1" >>confdefs.h fi fi efl_func_fnmatch="${have_fct}" # Check whether --with-iconv-link was given. if test "${with_iconv_link+set}" = set; then : withval=$with_iconv_link; _efl_have_fct="yes" iconv_libs=${withval} else _efl_have_fct="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for explicit iconv link options" >&5 $as_echo_n "checking for explicit iconv link options... " >&6; } if test "x${iconv_libs}" = "x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no explicit iconv link option" >&5 $as_echo "no explicit iconv link option" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${iconv_libs}" >&5 $as_echo "${iconv_libs}" >&6; } fi if test "x${_efl_have_fct}" = "xno" ; then LIBS_save="${LIBS}" LIBS="${LIBS} " cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t ic; size_t count = iconv(ic, NULL, NULL, NULL, NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : EINA_LIBS="${EINA_LIBS} " requirements_libs_eina="${requirements_libs_eina} " _efl_have_fct="yes" else _efl_have_fct="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="${LIBS_save}" if test "x${_efl_have_fct}" = "xyes"; then : _efl_have_fct="yes" else _efl_have_fct="no" fi fi if test "x${_efl_have_fct}" = "xno" ; then LIBS_save="${LIBS}" LIBS="${LIBS} -liconv" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t ic; size_t count = iconv(ic, NULL, NULL, NULL, NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : EINA_LIBS="${EINA_LIBS} -liconv" requirements_libs_eina="${requirements_libs_eina} -liconv" _efl_have_fct="yes" else _efl_have_fct="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="${LIBS_save}" if test "x${_efl_have_fct}" = "xyes"; then : _efl_have_fct="yes" else _efl_have_fct="no" fi fi if test "x${_efl_have_fct}" = "xno" ; then LIBS_save="${LIBS}" LIBS="${LIBS} -liconv_plug" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t ic; size_t count = iconv(ic, NULL, NULL, NULL, NULL); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : EINA_LIBS="${EINA_LIBS} -liconv_plug" requirements_libs_eina="${requirements_libs_eina} -liconv_plug" _efl_have_fct="yes" else _efl_have_fct="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="${LIBS_save}" if test "x${_efl_have_fct}" = "xyes"; then : _efl_have_fct="yes" else _efl_have_fct="no" fi fi if test "x${_efl_have_fct}" = "xyes"; then : have_fct="yes" else have_fct="no" fi if test "xiconv" = "xsetxattr" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for extended attributes" >&5 $as_echo_n "checking for extended attributes... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_fct}" >&5 $as_echo "${have_fct}" >&6; } if test "x${have_fct}" = "xyes" ; then if test "xiconv" = "xsetxattr" ; then $as_echo "#define HAVE_XATTR 1" >>confdefs.h else $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi fi efl_func_iconv="${have_fct}" _efl_have_fct="no" LIBS_save="${LIBS}" LIBS="${LIBS} " cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* For mode constants */ #include /* For O_* constants */ int main () { int fd; fd = shm_open("/dev/null", O_RDONLY, S_IRWXU | S_IRWXG | S_IRWXO); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : EINA_LIBS="$EINA_LIBS " requirements_libs_eina="${requirements_libs_eina} " _efl_have_fct="yes" else _efl_have_fct="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="${LIBS_save}" if test "x${_efl_have_fct}" = "xyes"; then : _efl_have_fct="yes" else _efl_have_fct="no" fi if test "x${_efl_have_fct}" = "xno" ; then LIBS_save="${LIBS}" LIBS="${LIBS} -lrt" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* For mode constants */ #include /* For O_* constants */ int main () { int fd; fd = shm_open("/dev/null", O_RDONLY, S_IRWXU | S_IRWXG | S_IRWXO); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : EINA_LIBS="$EINA_LIBS -lrt" requirements_libs_eina="${requirements_libs_eina} -lrt" _efl_have_fct="yes" else _efl_have_fct="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="${LIBS_save}" if test "x${_efl_have_fct}" = "xyes"; then : _efl_have_fct="yes" else _efl_have_fct="no" fi fi if test "x${_efl_have_fct}" = "xyes"; then : have_fct="yes" else have_fct="no" fi if test "xshm_open" = "xsetxattr" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for extended attributes" >&5 $as_echo_n "checking for extended attributes... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shm_open" >&5 $as_echo_n "checking for shm_open... " >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_fct}" >&5 $as_echo "${have_fct}" >&6; } if test "x${have_fct}" = "xyes" ; then if test "xshm_open" = "xsetxattr" ; then $as_echo "#define HAVE_XATTR 1" >>confdefs.h else $as_echo "#define HAVE_SHM_OPEN 1" >>confdefs.h fi fi efl_func_shm_open="${have_fct}" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { size_t tmp = listxattr("/", NULL, 0); tmp = getxattr("/", "user.ethumb.md5", NULL, 0); setxattr("/", "user.ethumb.md5", NULL, 0, 0); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : _efl_have_fct="yes" else _efl_have_fct="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test "x${_efl_have_fct}" = "xyes"; then : have_fct="yes" else have_fct="no" fi if test "xsetxattr" = "xsetxattr" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for extended attributes" >&5 $as_echo_n "checking for extended attributes... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setxattr" >&5 $as_echo_n "checking for setxattr... " >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_fct}" >&5 $as_echo "${have_fct}" >&6; } if test "x${have_fct}" = "xyes" ; then if test "xsetxattr" = "xsetxattr" ; then $as_echo "#define HAVE_XATTR 1" >>confdefs.h else $as_echo "#define HAVE_SETXATTR 1" >>confdefs.h fi fi efl_func_setxattr="${have_fct}" want_debug_malloc="no" # Check whether --enable-debug-malloc was given. if test "${enable_debug_malloc+set}" = set; then : enableval=$enable_debug_malloc; if test "x${enableval}" = "xyes" ; then want_debug_malloc="yes" else want_debug_malloc="no" fi else want_debug_malloc="no" fi if test "x${ac_cv_func_malloc_usable_size}" = "xyes" && test "x${want_debug_malloc}" = "xyes"; then $as_echo "#define EINA_DEBUG_MALLOC 1" >>confdefs.h fi # Check whether --enable-log was given. if test "${enable_log+set}" = set; then : enableval=$enable_log; if test "x${enableval}" = "xyes" ; then want_log="yes" else want_log="no" fi else want_log="yes" fi enable_log="no" if test "x${efl_func_fnmatch}" = "xyes" && test "x${want_log}" = "xyes" ; then enable_log="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking wether to build Eina_Log infrastructure" >&5 $as_echo_n "checking wether to build Eina_Log infrastructure... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${enable_log}" >&5 $as_echo "${enable_log}" >&6; } if test "x${enable_log}" = "xyes"; then EINA_CONFIGURE_ENABLE_LOG="#define EINA_ENABLE_LOG" $as_echo "#define HAVE_LOG 1" >>confdefs.h fi ### Modules if test "x${have_default_mempool}" = "xyes" ; then enable_chained_pool="no" enable_pass_through="static" else enable_chained_pool="static" enable_pass_through="no" fi enable_one_big="static" # Check whether --enable-mempool-chained-pool was given. if test "${enable_mempool_chained_pool+set}" = set; then : enableval=$enable_mempool_chained_pool; if test "x${enableval}" = "xyes" ; then enable_module="yes" else if test "x${enableval}" = "xstatic" ; then enable_module="static" else enable_module="no" fi fi else enable_module=${enable_chained_pool} fi have_module="no" if test "x${enable_module}" = "xyes" || test "x${enable_module}" = "xstatic" ; then have_module="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable chained pool built" >&5 $as_echo_n "checking whether to enable chained pool built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_module}" >&5 $as_echo "${have_module}" >&6; } static_module="no" if test "x${enable_module}" = "xstatic" ; then static_module="yes" have_static_module="yes" $as_echo "#define EINA_STATIC_BUILD_CHAINED_POOL 1" >>confdefs.h fi if ! test "x${enable_module}" = "xno" ; then $as_echo "#define EINA_BUILD_CHAINED_POOL 1" >>confdefs.h fi if test "x${have_module}" = "xyes"; then EINA_BUILD_CHAINED_POOL_TRUE= EINA_BUILD_CHAINED_POOL_FALSE='#' else EINA_BUILD_CHAINED_POOL_TRUE='#' EINA_BUILD_CHAINED_POOL_FALSE= fi if test "x${static_module}" = "xyes"; then EINA_STATIC_BUILD_CHAINED_POOL_TRUE= EINA_STATIC_BUILD_CHAINED_POOL_FALSE='#' else EINA_STATIC_BUILD_CHAINED_POOL_TRUE='#' EINA_STATIC_BUILD_CHAINED_POOL_FALSE= fi enable_chained_pool=${enable_module} # Check whether --enable-mempool-ememoa-fixed was given. if test "${enable_mempool_ememoa_fixed+set}" = set; then : enableval=$enable_mempool_ememoa_fixed; if test "x${enableval}" = "xyes" ; then enable_module="yes" else if test "x${enableval}" = "xstatic" ; then enable_module="static" else enable_module="no" fi fi else enable_module=${enable_ememoa} fi have_module="no" if test "x${enable_module}" = "xyes" || test "x${enable_module}" = "xstatic" ; then have_module="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable ememoa fixed built" >&5 $as_echo_n "checking whether to enable ememoa fixed built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_module}" >&5 $as_echo "${have_module}" >&6; } static_module="no" if test "x${enable_module}" = "xstatic" ; then static_module="yes" have_static_module="yes" $as_echo "#define EINA_STATIC_BUILD_EMEMOA_FIXED 1" >>confdefs.h fi if ! test "x${enable_module}" = "xno" ; then $as_echo "#define EINA_BUILD_EMEMOA_FIXED 1" >>confdefs.h fi if test "x${have_module}" = "xyes"; then EINA_BUILD_EMEMOA_FIXED_TRUE= EINA_BUILD_EMEMOA_FIXED_FALSE='#' else EINA_BUILD_EMEMOA_FIXED_TRUE='#' EINA_BUILD_EMEMOA_FIXED_FALSE= fi if test "x${static_module}" = "xyes"; then EINA_STATIC_BUILD_EMEMOA_FIXED_TRUE= EINA_STATIC_BUILD_EMEMOA_FIXED_FALSE='#' else EINA_STATIC_BUILD_EMEMOA_FIXED_TRUE='#' EINA_STATIC_BUILD_EMEMOA_FIXED_FALSE= fi enable_ememoa_fixed=${enable_module} # Check whether --enable-mempool-ememoa-unknown was given. if test "${enable_mempool_ememoa_unknown+set}" = set; then : enableval=$enable_mempool_ememoa_unknown; if test "x${enableval}" = "xyes" ; then enable_module="yes" else if test "x${enableval}" = "xstatic" ; then enable_module="static" else enable_module="no" fi fi else enable_module=${enable_ememoa} fi have_module="no" if test "x${enable_module}" = "xyes" || test "x${enable_module}" = "xstatic" ; then have_module="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable ememoa unknown built" >&5 $as_echo_n "checking whether to enable ememoa unknown built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_module}" >&5 $as_echo "${have_module}" >&6; } static_module="no" if test "x${enable_module}" = "xstatic" ; then static_module="yes" have_static_module="yes" $as_echo "#define EINA_STATIC_BUILD_EMEMOA_UNKNOWN 1" >>confdefs.h fi if ! test "x${enable_module}" = "xno" ; then $as_echo "#define EINA_BUILD_EMEMOA_UNKNOWN 1" >>confdefs.h fi if test "x${have_module}" = "xyes"; then EINA_BUILD_EMEMOA_UNKNOWN_TRUE= EINA_BUILD_EMEMOA_UNKNOWN_FALSE='#' else EINA_BUILD_EMEMOA_UNKNOWN_TRUE='#' EINA_BUILD_EMEMOA_UNKNOWN_FALSE= fi if test "x${static_module}" = "xyes"; then EINA_STATIC_BUILD_EMEMOA_UNKNOWN_TRUE= EINA_STATIC_BUILD_EMEMOA_UNKNOWN_FALSE='#' else EINA_STATIC_BUILD_EMEMOA_UNKNOWN_TRUE='#' EINA_STATIC_BUILD_EMEMOA_UNKNOWN_FALSE= fi enable_ememoa_unknown=${enable_module} # Check whether --enable-mempool-fixed-bitmap was given. if test "${enable_mempool_fixed_bitmap+set}" = set; then : enableval=$enable_mempool_fixed_bitmap; if test "x${enableval}" = "xyes" ; then enable_module="yes" else if test "x${enableval}" = "xstatic" ; then enable_module="static" else enable_module="no" fi fi else enable_module=no fi have_module="no" if test "x${enable_module}" = "xyes" || test "x${enable_module}" = "xstatic" ; then have_module="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable fixed bitmap built" >&5 $as_echo_n "checking whether to enable fixed bitmap built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_module}" >&5 $as_echo "${have_module}" >&6; } static_module="no" if test "x${enable_module}" = "xstatic" ; then static_module="yes" have_static_module="yes" $as_echo "#define EINA_STATIC_BUILD_FIXED_BITMAP 1" >>confdefs.h fi if ! test "x${enable_module}" = "xno" ; then $as_echo "#define EINA_BUILD_FIXED_BITMAP 1" >>confdefs.h fi if test "x${have_module}" = "xyes"; then EINA_BUILD_FIXED_BITMAP_TRUE= EINA_BUILD_FIXED_BITMAP_FALSE='#' else EINA_BUILD_FIXED_BITMAP_TRUE='#' EINA_BUILD_FIXED_BITMAP_FALSE= fi if test "x${static_module}" = "xyes"; then EINA_STATIC_BUILD_FIXED_BITMAP_TRUE= EINA_STATIC_BUILD_FIXED_BITMAP_FALSE='#' else EINA_STATIC_BUILD_FIXED_BITMAP_TRUE='#' EINA_STATIC_BUILD_FIXED_BITMAP_FALSE= fi enable_fixed_bitmap=${enable_module} # Check whether --enable-mempool-pass-through was given. if test "${enable_mempool_pass_through+set}" = set; then : enableval=$enable_mempool_pass_through; if test "x${enableval}" = "xyes" ; then enable_module="yes" else if test "x${enableval}" = "xstatic" ; then enable_module="static" else enable_module="no" fi fi else enable_module=${enable_pass_through} fi have_module="no" if test "x${enable_module}" = "xyes" || test "x${enable_module}" = "xstatic" ; then have_module="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable pass through built" >&5 $as_echo_n "checking whether to enable pass through built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_module}" >&5 $as_echo "${have_module}" >&6; } static_module="no" if test "x${enable_module}" = "xstatic" ; then static_module="yes" have_static_module="yes" $as_echo "#define EINA_STATIC_BUILD_PASS_THROUGH 1" >>confdefs.h fi if ! test "x${enable_module}" = "xno" ; then $as_echo "#define EINA_BUILD_PASS_THROUGH 1" >>confdefs.h fi if test "x${have_module}" = "xyes"; then EINA_BUILD_PASS_THROUGH_TRUE= EINA_BUILD_PASS_THROUGH_FALSE='#' else EINA_BUILD_PASS_THROUGH_TRUE='#' EINA_BUILD_PASS_THROUGH_FALSE= fi if test "x${static_module}" = "xyes"; then EINA_STATIC_BUILD_PASS_THROUGH_TRUE= EINA_STATIC_BUILD_PASS_THROUGH_FALSE='#' else EINA_STATIC_BUILD_PASS_THROUGH_TRUE='#' EINA_STATIC_BUILD_PASS_THROUGH_FALSE= fi enable_pass_through=${enable_module} # Check whether --enable-mempool-buddy was given. if test "${enable_mempool_buddy+set}" = set; then : enableval=$enable_mempool_buddy; if test "x${enableval}" = "xyes" ; then enable_module="yes" else if test "x${enableval}" = "xstatic" ; then enable_module="static" else enable_module="no" fi fi else enable_module=no fi have_module="no" if test "x${enable_module}" = "xyes" || test "x${enable_module}" = "xstatic" ; then have_module="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable buddy built" >&5 $as_echo_n "checking whether to enable buddy built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_module}" >&5 $as_echo "${have_module}" >&6; } static_module="no" if test "x${enable_module}" = "xstatic" ; then static_module="yes" have_static_module="yes" $as_echo "#define EINA_STATIC_BUILD_BUDDY 1" >>confdefs.h fi if ! test "x${enable_module}" = "xno" ; then $as_echo "#define EINA_BUILD_BUDDY 1" >>confdefs.h fi if test "x${have_module}" = "xyes"; then EINA_BUILD_BUDDY_TRUE= EINA_BUILD_BUDDY_FALSE='#' else EINA_BUILD_BUDDY_TRUE='#' EINA_BUILD_BUDDY_FALSE= fi if test "x${static_module}" = "xyes"; then EINA_STATIC_BUILD_BUDDY_TRUE= EINA_STATIC_BUILD_BUDDY_FALSE='#' else EINA_STATIC_BUILD_BUDDY_TRUE='#' EINA_STATIC_BUILD_BUDDY_FALSE= fi enable_buddy=${enable_module} # Check whether --enable-mempool-one-big was given. if test "${enable_mempool_one_big+set}" = set; then : enableval=$enable_mempool_one_big; if test "x${enableval}" = "xyes" ; then enable_module="yes" else if test "x${enableval}" = "xstatic" ; then enable_module="static" else enable_module="no" fi fi else enable_module=${enable_one_big} fi have_module="no" if test "x${enable_module}" = "xyes" || test "x${enable_module}" = "xstatic" ; then have_module="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable one big built" >&5 $as_echo_n "checking whether to enable one big built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_module}" >&5 $as_echo "${have_module}" >&6; } static_module="no" if test "x${enable_module}" = "xstatic" ; then static_module="yes" have_static_module="yes" $as_echo "#define EINA_STATIC_BUILD_ONE_BIG 1" >>confdefs.h fi if ! test "x${enable_module}" = "xno" ; then $as_echo "#define EINA_BUILD_ONE_BIG 1" >>confdefs.h fi if test "x${have_module}" = "xyes"; then EINA_BUILD_ONE_BIG_TRUE= EINA_BUILD_ONE_BIG_FALSE='#' else EINA_BUILD_ONE_BIG_TRUE='#' EINA_BUILD_ONE_BIG_FALSE= fi if test "x${static_module}" = "xyes"; then EINA_STATIC_BUILD_ONE_BIG_TRUE= EINA_STATIC_BUILD_ONE_BIG_FALSE='#' else EINA_STATIC_BUILD_ONE_BIG_TRUE='#' EINA_STATIC_BUILD_ONE_BIG_FALSE= fi enable_one_big=${enable_module} ### Make the debug preprocessor configurable ### Unit tests, coverage and benchmarking # Check whether --enable-tests was given. if test "${enable_tests+set}" = set; then : enableval=$enable_tests; if test "x${enableval}" = "xyes" ; then _efl_enable_tests="yes" else _efl_enable_tests="no" fi else _efl_enable_tests="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether tests are built" >&5 $as_echo_n "checking whether tests are built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_enable_tests}" >&5 $as_echo "${_efl_enable_tests}" >&6; } if test "x${_efl_enable_tests}" = "xyes" ; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5 $as_echo_n "checking for CHECK... " >&6; } if test -n "$CHECK_CFLAGS"; then pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_CHECK_CFLAGS=`$PKG_CONFIG --cflags "check >= 0.9.5" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$CHECK_LIBS"; then pkg_cv_CHECK_LIBS="$CHECK_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_CHECK_LIBS=`$PKG_CONFIG --libs "check >= 0.9.5" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "check >= 0.9.5" 2>&1` else CHECK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "check >= 0.9.5" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$CHECK_PKG_ERRORS" >&5 _efl_enable_tests="no" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } _efl_enable_tests="no" else CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS CHECK_LIBS=$pkg_cv_CHECK_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } dummy="yes" fi fi efl_enable_coverage="no" if test "x${_efl_enable_tests}" = "xyes" ; then # Extract the first word of "lcov", so it can be a program name with args. set dummy lcov; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_have_lcov+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$have_lcov"; then ac_cv_prog_have_lcov="$have_lcov" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_lcov="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_have_lcov" && ac_cv_prog_have_lcov="no" fi fi have_lcov=$ac_cv_prog_have_lcov if test -n "$have_lcov"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_lcov" >&5 $as_echo "$have_lcov" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$have_lcov" = "xyes" ; then EINA_CFLAGS="${EINA_CFLAGS} -fprofile-arcs -ftest-coverage" EINA_LIBS="${EINA_LIBS} -lgcov" # remove any optimisation flag and force debug symbols if test "x${prefer_assert}" = "xno"; then EINA_CFLAGS="${EINA_CFLAGS} -DNDEBUG" else EINA_CFLAGS="${EINA_CFLAGS} -g -O0 -DDEBUG" fi efl_enable_coverage="yes" else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: lcov is not found, disable profiling instrumentation" >&5 $as_echo "$as_me: WARNING: lcov is not found, disable profiling instrumentation" >&2;} fi fi if test "x${_efl_enable_tests}" = "xyes"; then EFL_ENABLE_TESTS_TRUE= EFL_ENABLE_TESTS_FALSE='#' else EFL_ENABLE_TESTS_TRUE='#' EFL_ENABLE_TESTS_FALSE= fi if test "x$_efl_enable_tests" = "xyes"; then : enable_tests="yes" else enable_tests="no" fi # Check whether --enable-benchmark was given. if test "${enable_benchmark+set}" = set; then : enableval=$enable_benchmark; if test "x${enableval}" = "xyes" ; then _efl_enable_benchmark="yes" else _efl_enable_benchmark="no" fi else _efl_enable_benchmark="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether benchmark are built" >&5 $as_echo_n "checking whether benchmark are built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_enable_benchmark}" >&5 $as_echo "${_efl_enable_benchmark}" >&6; } if test "x${_efl_enable_benchmark}" = "xyes"; then EFL_ENABLE_BENCHMARK_TRUE= EFL_ENABLE_BENCHMARK_FALSE='#' else EFL_ENABLE_BENCHMARK_TRUE='#' EFL_ENABLE_BENCHMARK_FALSE= fi if test "x$_efl_enable_benchmark" = "xyes"; then : enable_benchmark="yes" else enable_benchmark="no" fi want_module="${enable_benchmark}" have_module="no" # Check whether --enable-glib was given. if test "${enable_glib+set}" = set; then : enableval=$enable_glib; if test "x${enableval}" = "xyes" ; then enable_module="yes" else enable_module="no" fi else enable_module="yes" fi if test "x${enable_module}" = "xyes" && test "x${want_module}" = "xyes"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5 $as_echo_n "checking for GLIB... " >&6; } if test -n "$GLIB_CFLAGS"; then pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GLIB_LIBS"; then pkg_cv_GLIB_LIBS="$GLIB_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0" 2>&1` else GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GLIB_PKG_ERRORS" >&5 have_module="no" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } have_module="no" else GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS GLIB_LIBS=$pkg_cv_GLIB_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_module="yes" fi fi if test "x${have_module}" = "xyes"; then EINA_HAVE_GLIB_TRUE= EINA_HAVE_GLIB_FALSE='#' else EINA_HAVE_GLIB_TRUE='#' EINA_HAVE_GLIB_FALSE= fi if test "x$have_module" = "xyes"; then : enable_benchmark_glib="yes" else enable_benchmark_glib="no" fi if test -n "$CXX" && test "x$enable_benchmark" = "xyes" ; then cat >>confdefs.h <<_ACEOF #define CITYHASH_BENCH 1 _ACEOF fi if test -n "$CXX" && test "x$enable_benchmark" = "xyes"; then CITYHASH_BENCH_TRUE= CITYHASH_BENCH_FALSE='#' else CITYHASH_BENCH_TRUE='#' CITYHASH_BENCH_FALSE= fi ### Build and install examples # Check whether --enable-build-examples was given. if test "${enable_build_examples+set}" = set; then : enableval=$enable_build_examples; if test "x${enableval}" = "xyes" ; then _efl_enable_build_examples="yes" else _efl_enable_build_examples="no" fi else _efl_enable_build_examples="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether examples are built" >&5 $as_echo_n "checking whether examples are built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_enable_build_examples}" >&5 $as_echo "${_efl_enable_build_examples}" >&6; } if test "x${_efl_enable_build_examples}" = "xyes"; then EFL_BUILD_EXAMPLES_TRUE= EFL_BUILD_EXAMPLES_FALSE='#' else EFL_BUILD_EXAMPLES_TRUE='#' EFL_BUILD_EXAMPLES_FALSE= fi if test "x$_efl_enable_build_examples" = "xyes"; then : enable_build_examples="yes" else enable_build_examples="no" fi # Check whether --enable-install-examples was given. if test "${enable_install_examples+set}" = set; then : enableval=$enable_install_examples; if test "x${enableval}" = "xyes" ; then _efl_enable_install_examples="yes" else _efl_enable_install_examples="no" fi else _efl_enable_install_examples="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether examples are installed" >&5 $as_echo_n "checking whether examples are installed... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_enable_install_examples}" >&5 $as_echo "${_efl_enable_install_examples}" >&6; } if test "x${_efl_enable_install_examples}" = "xyes"; then EFL_INSTALL_EXAMPLES_TRUE= EFL_INSTALL_EXAMPLES_FALSE='#' else EFL_INSTALL_EXAMPLES_TRUE='#' EFL_INSTALL_EXAMPLES_FALSE= fi if test "x$_efl_enable_install_examples" = "xyes"; then : enable_install_examples="yes" else enable_install_examples="no" fi ac_config_files="$ac_config_files Makefile eina.pc eina.spec doc/Makefile doc/Doxyfile src/Makefile src/include/Makefile src/include/eina_config.h src/lib/Makefile src/modules/Makefile src/modules/mp/Makefile src/modules/mp/chained_pool/Makefile src/modules/mp/ememoa_fixed/Makefile src/modules/mp/ememoa_unknown/Makefile src/modules/mp/pass_through/Makefile src/modules/mp/fixed_bitmap/Makefile src/modules/mp/buddy/Makefile src/modules/mp/one_big/Makefile src/tests/Makefile src/examples/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= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__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 -z "${EINA_HAVE_WINCE_TRUE}" && test -z "${EINA_HAVE_WINCE_FALSE}"; then as_fn_error $? "conditional \"EINA_HAVE_WINCE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_HAVE_WIN32_TRUE}" && test -z "${EINA_HAVE_WIN32_FALSE}"; then as_fn_error $? "conditional \"EINA_HAVE_WIN32\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_HAVE_THREADS_TRUE}" && test -z "${EINA_HAVE_THREADS_FALSE}"; then as_fn_error $? "conditional \"EINA_HAVE_THREADS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_DEBUG_THREADS_TRUE}" && test -z "${EINA_DEBUG_THREADS_FALSE}"; then as_fn_error $? "conditional \"EINA_DEBUG_THREADS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_ON_OFF_THREADS_TRUE}" && test -z "${EINA_ON_OFF_THREADS_FALSE}"; then as_fn_error $? "conditional \"EINA_ON_OFF_THREADS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SAFETY_CHECKS_TRUE}" && test -z "${SAFETY_CHECKS_FALSE}"; then as_fn_error $? "conditional \"SAFETY_CHECKS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_AMALGAMATION_TRUE}" && test -z "${EINA_AMALGAMATION_FALSE}"; then as_fn_error $? "conditional \"EINA_AMALGAMATION\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_ENABLE_BENCHMARK_E17_TRUE}" && test -z "${EINA_ENABLE_BENCHMARK_E17_FALSE}"; then as_fn_error $? "conditional \"EINA_ENABLE_BENCHMARK_E17\" 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 -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then as_fn_error $? "conditional \"EFL_BUILD_DOC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_HAVE_EXOTIC_TRUE}" && test -z "${EINA_HAVE_EXOTIC_FALSE}"; then as_fn_error $? "conditional \"EINA_HAVE_EXOTIC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${BUILD_TILER_EXAMPLE_TRUE}" && test -z "${BUILD_TILER_EXAMPLE_FALSE}"; then as_fn_error $? "conditional \"BUILD_TILER_EXAMPLE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_BUILD_CHAINED_POOL_TRUE}" && test -z "${EINA_BUILD_CHAINED_POOL_FALSE}"; then as_fn_error $? "conditional \"EINA_BUILD_CHAINED_POOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_STATIC_BUILD_CHAINED_POOL_TRUE}" && test -z "${EINA_STATIC_BUILD_CHAINED_POOL_FALSE}"; then as_fn_error $? "conditional \"EINA_STATIC_BUILD_CHAINED_POOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_BUILD_EMEMOA_FIXED_TRUE}" && test -z "${EINA_BUILD_EMEMOA_FIXED_FALSE}"; then as_fn_error $? "conditional \"EINA_BUILD_EMEMOA_FIXED\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_STATIC_BUILD_EMEMOA_FIXED_TRUE}" && test -z "${EINA_STATIC_BUILD_EMEMOA_FIXED_FALSE}"; then as_fn_error $? "conditional \"EINA_STATIC_BUILD_EMEMOA_FIXED\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_BUILD_EMEMOA_UNKNOWN_TRUE}" && test -z "${EINA_BUILD_EMEMOA_UNKNOWN_FALSE}"; then as_fn_error $? "conditional \"EINA_BUILD_EMEMOA_UNKNOWN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_STATIC_BUILD_EMEMOA_UNKNOWN_TRUE}" && test -z "${EINA_STATIC_BUILD_EMEMOA_UNKNOWN_FALSE}"; then as_fn_error $? "conditional \"EINA_STATIC_BUILD_EMEMOA_UNKNOWN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_BUILD_FIXED_BITMAP_TRUE}" && test -z "${EINA_BUILD_FIXED_BITMAP_FALSE}"; then as_fn_error $? "conditional \"EINA_BUILD_FIXED_BITMAP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_STATIC_BUILD_FIXED_BITMAP_TRUE}" && test -z "${EINA_STATIC_BUILD_FIXED_BITMAP_FALSE}"; then as_fn_error $? "conditional \"EINA_STATIC_BUILD_FIXED_BITMAP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_BUILD_PASS_THROUGH_TRUE}" && test -z "${EINA_BUILD_PASS_THROUGH_FALSE}"; then as_fn_error $? "conditional \"EINA_BUILD_PASS_THROUGH\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_STATIC_BUILD_PASS_THROUGH_TRUE}" && test -z "${EINA_STATIC_BUILD_PASS_THROUGH_FALSE}"; then as_fn_error $? "conditional \"EINA_STATIC_BUILD_PASS_THROUGH\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_BUILD_BUDDY_TRUE}" && test -z "${EINA_BUILD_BUDDY_FALSE}"; then as_fn_error $? "conditional \"EINA_BUILD_BUDDY\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_STATIC_BUILD_BUDDY_TRUE}" && test -z "${EINA_STATIC_BUILD_BUDDY_FALSE}"; then as_fn_error $? "conditional \"EINA_STATIC_BUILD_BUDDY\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_BUILD_ONE_BIG_TRUE}" && test -z "${EINA_BUILD_ONE_BIG_FALSE}"; then as_fn_error $? "conditional \"EINA_BUILD_ONE_BIG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_STATIC_BUILD_ONE_BIG_TRUE}" && test -z "${EINA_STATIC_BUILD_ONE_BIG_FALSE}"; then as_fn_error $? "conditional \"EINA_STATIC_BUILD_ONE_BIG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then as_fn_error $? "conditional \"EFL_ENABLE_TESTS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EFL_ENABLE_BENCHMARK_TRUE}" && test -z "${EFL_ENABLE_BENCHMARK_FALSE}"; then as_fn_error $? "conditional \"EFL_ENABLE_BENCHMARK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EINA_HAVE_GLIB_TRUE}" && test -z "${EINA_HAVE_GLIB_FALSE}"; then as_fn_error $? "conditional \"EINA_HAVE_GLIB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${CITYHASH_BENCH_TRUE}" && test -z "${CITYHASH_BENCH_FALSE}"; then as_fn_error $? "conditional \"CITYHASH_BENCH\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EFL_BUILD_EXAMPLES_TRUE}" && test -z "${EFL_BUILD_EXAMPLES_FALSE}"; then as_fn_error $? "conditional \"EFL_BUILD_EXAMPLES\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${EFL_INSTALL_EXAMPLES_TRUE}" && test -z "${EFL_INSTALL_EXAMPLES_FALSE}"; then as_fn_error $? "conditional \"EFL_INSTALL_EXAMPLES\" 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 eina $as_me 1.7.10, 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 ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ eina config.status 1.7.10 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" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in AS \ DLLTOOL \ OBJDUMP \ SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ reload_flag_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_separator_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ reload_cmds_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX \ postlink_cmds_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _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 "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "eina.pc") CONFIG_FILES="$CONFIG_FILES eina.pc" ;; "eina.spec") CONFIG_FILES="$CONFIG_FILES eina.spec" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/Doxyfile") CONFIG_FILES="$CONFIG_FILES doc/Doxyfile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/include/Makefile") CONFIG_FILES="$CONFIG_FILES src/include/Makefile" ;; "src/include/eina_config.h") CONFIG_FILES="$CONFIG_FILES src/include/eina_config.h" ;; "src/lib/Makefile") CONFIG_FILES="$CONFIG_FILES src/lib/Makefile" ;; "src/modules/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/Makefile" ;; "src/modules/mp/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/mp/Makefile" ;; "src/modules/mp/chained_pool/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/mp/chained_pool/Makefile" ;; "src/modules/mp/ememoa_fixed/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/mp/ememoa_fixed/Makefile" ;; "src/modules/mp/ememoa_unknown/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/mp/ememoa_unknown/Makefile" ;; "src/modules/mp/pass_through/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/mp/pass_through/Makefile" ;; "src/modules/mp/fixed_bitmap/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/mp/fixed_bitmap/Makefile" ;; "src/modules/mp/buddy/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/mp/buddy/Makefile" ;; "src/modules/mp/one_big/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/mp/one_big/Makefile" ;; "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/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 } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Assembler program. AS=$lt_AS # DLL creation program. DLLTOOL=$lt_DLLTOOL # Object dumper program. OBJDUMP=$lt_OBJDUMP # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) if test x"$xsi_shell" = xyes; then sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ func_dirname ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_basename ()$/,/^} # func_basename /c\ func_basename ()\ {\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ func_dirname_and_basename ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ func_stripname ()\ {\ \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ \ # positional parameters, so assign one to ordinary parameter first.\ \ func_stripname_result=${3}\ \ func_stripname_result=${func_stripname_result#"${1}"}\ \ func_stripname_result=${func_stripname_result%"${2}"}\ } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ func_split_long_opt ()\ {\ \ func_split_long_opt_name=${1%%=*}\ \ func_split_long_opt_arg=${1#*=}\ } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ func_split_short_opt ()\ {\ \ func_split_short_opt_arg=${1#??}\ \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ func_lo2o ()\ {\ \ case ${1} in\ \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ \ *) func_lo2o_result=${1} ;;\ \ esac\ } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_xform ()$/,/^} # func_xform /c\ func_xform ()\ {\ func_xform_result=${1%.*}.lo\ } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_arith ()$/,/^} # func_arith /c\ func_arith ()\ {\ func_arith_result=$(( $* ))\ } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_len ()$/,/^} # func_len /c\ func_len ()\ {\ func_len_result=${#1}\ } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$lt_shell_append" = xyes; then sed -e '/^func_append ()$/,/^} # func_append /c\ func_append ()\ {\ eval "${1}+=\\${2}"\ } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ func_append_quoted ()\ {\ \ func_quote_for_eval "${2}"\ \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # How to create reloadable object files. reload_flag=$lt_reload_flag_CXX reload_cmds=$lt_reload_cmds_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; 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 ##################################################################### ## Info echo echo echo echo "------------------------------------------------------------------------" echo "$PACKAGE $VERSION" echo "------------------------------------------------------------------------" echo echo echo "Configuration Options Summary:" echo echo " Magic debug..........: ${have_magic_debug}" echo " Safety checks........: ${have_safety_checks}" echo " Maximum log level....: ${with_max_log_level}" echo " Report string usage..: ${have_stringshare_usage}" echo " Valgrind support.....: ${have_valgrind}" echo " Default mempool......: ${have_default_mempool}" echo " Log support..........: ${enable_log}" echo " Thread Support.......: ${efl_have_threads}" if test "${efl_have_threads}" = "POSIX" ; then echo " spinlock...........: ${efl_have_posix_threads_spinlock}" echo " debug usage........: ${efl_have_debug_threads}" echo " on/off support.....: ${efl_have_on_off_threads}" fi echo " Amalgamation.........: ${do_amalgamation}" echo " Iconv support........: ${efl_func_iconv}" echo " File dirfd...........: ${efl_func_dirfd}" echo " File xattr...........: ${efl_func_setxattr}" echo " shm_open.............: ${efl_func_shm_open}" echo echo " Documentation........: ${build_doc}" if test "x${build_doc}" = "xyes" ; then echo " Installation.......: make install-doc" fi echo " Tests................: ${enable_tests} (Coverage: ${efl_enable_coverage})" echo " Examples.............: ${enable_build_examples}" echo " Tiler Example........: ${build_tiler_example}" echo " Examples installed...: ${enable_install_examples}" echo " Benchmark............: ${enable_benchmark}" if test "x${enable_benchmark}" = "xyes" ; then echo " Glib...............: ${enable_benchmark_glib}" echo " E17 real data......: ${enable_benchmark_e17}" fi echo echo " CPU Specific Extensions:" echo " MMX................: ${have_mmx}" echo " SSE................: ${have_sse}" echo " SSE2...............: ${have_sse2}" echo " ALTIVEC............: ${have_altivec}" echo echo " Memory pools:" echo " Buddy..............: ${enable_buddy}" echo " Chained pool.......: ${enable_chained_pool}" echo " Ememoa fixed.......: ${enable_ememoa_fixed}" echo " Ememoa unknown.....: ${enable_ememoa_unknown}" echo " Fixed bitmap.......: ${enable_fixed_bitmap}" echo " One big............: ${enable_one_big}" echo " Pass through.......: ${enable_pass_through}" echo echo "Compilation............: make (or gmake)" echo " CPPFLAGS.............: $CPPFLAGS" echo " CFLAGS...............: $CFLAGS" echo " LDFLAGS..............: $LDFLAGS" echo echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')" echo " prefix...............: $prefix" echo # Check whether --enable-voltron was given. if test "${enable_voltron+set}" = set; then : enableval=$enable_voltron; if test "x${enableval}" = "xyes" ; then have_voltron="yes" else have_voltron="no" fi else have_voltron="no" fi if test "x$have_voltron" = "xyes" -a "x$do_amalgamation" = "xyes" -o "x${have_on_off_threads}" = "xyes"; then echo "//////////////////////////////////////////////////////////////////////////////////////////////////////////////////" echo "/////////////////////////////////////////////////////////////////////////////////////{#///////////////////////////" echo "/////////////////////////////////////////////////////////////////////////////////// EN3 xx&HWx////////////////////" echo "////////////////////////////////////////////////#{//xd3:& \/{:x////////////////////#WJNd_ HHNp#///////////////////" echo "///////////////////////////////////////////////\x WDMMM EDDzEQp&^x ^^_x #///////////&37z^xHHH7_///////////////////" echo "////////////////////////////////////////////////xPMMMMM LMMMLQQzzQDzH\{xx\{////////{x&H9@^&d^ {//////////////////" echo "///////////////////////////////////////////^JLE:PMMMQ9N^EDMMMMMMMLzJJ^ @&dx////////#dHdN^x{/{x {//////////////////" echo "//////////////////////////////////////////#LMMM EEE7p@H@NE777QMMMMMMM3H3_x/////////^HH3W^pH@x x///////////////////" echo "//////////////////////////////////////////#MMLN_^: {/:L&\{:@7EWWWzMMM3H3_x////{:x ^3dd3 HHNENd^{//////////////////" echo "//////////////////////////////////////////#WW7N^//////7Q:////{xHE93H3^^_ #////{H3H3JDdxx&H3Wz3:///////////////////" echo "//////////////////////////////////////////_E93 ///////{^#/#{{{{{{#x37dx77x////{Hp3pd _ xx_7H////////////////////" echo "#/////////////////////////////////////////#&MHd{////////#x^ ^&__ xxzMJH9P ////{xx\#\:x\:d@_://///////////////////" echo "3H #///////////////////////////////////////{pp^Jpx{///{ &&__^:{{:xxxx7MQNWpx///@x//{# xxx#///////////////////////#" echo "3HN7Hx{//////////////////////////////////////\xd NQd#x \# &x{/x3pHHH&#&PP&@zNxx##:{////////////////////////////{ ^" echo "HH{@37N_x{////////////////////////////////////x_//#zDxx x //# ^x#//#E9_P&p://////////////////////////////{\&:\\" echo "H@/JMJ799H_:{/////////////////////////////////{\/// L7_xx^#/\LMMMMM3MLN@Mp7 dW{\////////////////////////////{ #^H" echo "H^/PMMMD9773d^\{////////////////////////////////////dzWLp/{x7MMMMMEJMM7DMHD#^z&#//////////////////////////{x&\ dHH" echo "H^{MMMMMMLEN33Hd_://////////////////////////////////#WNMLzzPPLMMMLHMML^NNNQW93JdE_ //////////////////////#_ :@H3HH" echo "HdxWMMMMMMMMzWdHHpNH {/////////////////////////////{z99QEJDQJ7@EM3LMM37M9LHLMNL:^\{////////////////////{x_\_HHH&&x" echo "HH_^zMMMMMMMML7dHH39zN_\//////////////////////////{WQLHEENpDPDLHQMMPHMDEzNMLWJ///////////////////////#_x d3Hd^dHx" echo "/\@HH HLMMMMMMMM9 3HHHp9DJ&#////////////////////////xN_\LzPMMMLpPMMPdLMWLdMMNQ3/////////////////////{ ^x&dddd HHH " echo "//{ HH@ 9MMMMMMLxdHHHHH3HpEQN /////////////////////:PL\/QMMMLE3LMMp#JMJJ9JMM&M //////////////////{#\ _ ^^&:x##HHHx" echo "////:d3H_&PMMMMN&3HHHHHHHHHHWEJH\/////////////////{zMd//^EE {/xHEH&HMLHLHMMJpL#////////{#x _^^&WpHHHHH3HHNxHHxHHHx" echo "/////#_HHH^WMMP3L9HHHHHHHHHHHHHWE7_{//////////////7Mz{///:7EWNEzPL3LMWQWDMM_zN/{\x ^& zLMDpHp973HHHHHH3HH7x3H dHHx" echo "///////xHHH@_E&3D9N3H3HHHHHHHHHH3HW7dx///////////dMM ////#QJEEJJ9:Hp9dz^WdH_&d3p3HHHHdLQE3pNNHHHHHHHHH3HH9xHH &HHx" echo "////////#@3H3^ HHN3WpHHHHHHHHHHHHHHH33d #/////// MM7//{x@pppH__ME_MME@xH3Hzz3H33HHHH@7pHH33HHHHHHHHHHH3HH9xHH__HHx" echo "/////////{ HHHHHHHH333HHHHHHHHHHHHHHHHH33&x{///:Pz9HpWp@ :::{/pM^EMMML H3HELQ3H3HHHH_pHHHHHHHHHHHHHHHHHHp9\@d& HHx" echo "///////////:dHHHHHHHH33HHHHHHHHHHHHHHHHHHHHd^\\H33d_x::##{/{x_PDxMMMME&HHHHH99H3HHHd&HHHHHHHHHHHHHHHHHH9Wx&^ x HHx" echo "////////////{^HHHHHHHHHHHHHHHHHHHHHHHHHHH@&HN33@H77ppppppWW3&JMdHMMMMHHHHHHHHWHHHHH&3pWHHHHHHHHHH3HHHpz_ HHH3&xHHx" echo "//////////////xHHHHHHHHHHHHHHHHHHHH3H3@d3p3@x:\{/# HN73& xx DL\DMMML_HHHHHHHHpHHHpH7JHHHHHHH3p33d&_@d\ 3HHH3&:3Hx" echo "///////////////#&HHHHHHHHHHHHHHHHHHHH_H7^x\//#^ddH3^Nz@_&&&&_MN MMMMJ@H3HHHHH3p3H3pQQ3Hd@_^ xx ^@dH&\{x@HH3_\HHx" echo "////////////////{ HHHHHHHHHHHHHHH@ x{{z\/#^33d {Nz3:LPx&&&&^WMxNMMMM3HHH3N3Hp79zWH _ xx _@dHHHHHHHHHHH^#{xd_{#@Hx" echo "//////////////////\@HH3HHHHHH@^x#{: &&7_@ddH:7d@__&@Mp^&&&&xPz#LMMML&3HJMMzNH@^ ^&:@HHHHHHHHHHHHHHHHHHd&^{/////:Hx" echo "/////////////{{{/{/{^dHHHd^x#{\ &HHH W ^@&Q9 _^ _d3QL ^ xWMW#dJMMz@HJMEx\x^HHHHHdx&HHHHHHHd&^ xx\#{//////////#Hx" echo "/////////{x ^&:xEDW^ x#:## d^dH3HHHHxd_HHdMzHx# NMMM7x&dH_JLp7 {x\&@HHD@\:{#x ^HHHd&#x x\#{////////////////////{Hx" echo "//////{#x^^&&\ _D9^x\{{:^NQP3HHHHHH pxHHd9MMdxx EMMM _^@@PD3PMMLEQH@3W& &^ x##\##{/////////////////////////////{@x" echo "/////#:x^ @d:^^7N#{\ &HHWHH99HHHHHH:7 d&^LMM3^_dNpH_#^_3LEWMMMMMPddHpd:HHHH@ ^ x{#:////////////////////{x&////{x:" echo "////:x ^x W:^^HWx3dHHHH333H39HHHH3@&&xxx@J7@#:_@&&d : ELp9MMMMMz&H333#dHHH3H\///{:3x##{/{##{/{#\\\##### W_{////^x/" echo "//{ :x^ #E:^^&N\ELWHHH3dHHH3333HHH E\:xx__^_ d^EPML^dDPHDMMMMM7&H33N#&HHHHH /////{3//////////////////\3@{//////{//" echo "/{ xx{x{7_ ^^N^xJNzN3Hp@HHHH39HH3H J: ^ NEQ__^zMMM9dLJ3LMMMML3@HHH9\ H3HHH&{/////^ ////////////////\3d{///////////" echo "/x x///:9:^^p&x@3W3p3HHHpddd@H9HHH_Lx^ EMM7x&^MMMEEMWNMMMMMD@d3HH9 \HHHHHH //////7{//////////////#3H#/////////////" echo "\_:#///@ ^d3^xHH33N3@x ^&dH&@HHH M_^^MML&x_3QJWQLdzMMMMMJ_HH3HNd#@HHHHHHx/////:W/////////////{x #///////////////" echo "^&:///{p\^_W^x&HWH^x &_HHHHHHd HHH PNx9LQ7W_3N779d\WMMMMMW&HHH3WN{_HHHHHH3://///p ////////////////////////////////" echo "@dx////Ep3Np^\@_:^dHHHd^Hd_ :\xHH3&EP^3d@d3Hp7zLMQ_{ JMLd@HHHHpE:&HHHHHHHH\/////@{////////////////////////////////" echo "H@ :#//DLMM9_: :HHHHH@^x#/////#HHHd_NNNJPMMMMMMMMMMQ&{d_HHHHH3zx@HHHHHHHHH#&@@@@7@@dpdx{//////////////////////////" echo "dJx #//_E_d&&^::_d_x#//\///////&HHH_HPMMMMMMMMMMLJ7Wp@_HHHHHHz_ HHHHHHHHHHx7QzJE97^x{/////////////////////////////" echo "^z_ {/\{_9 ^{\#//////:///////xHHH3H&7MMMPJN3d__@HHHHHHH3HH73:HHHHHHHHHH ^ x#{@{///////////////////////////////" echo "^dD \{ x#^7^x\/////////x///////#HH33HHHd3d37pHH3HHHHHHHHHHHp7#dHHHHHHHH&_EMMMMMMMPz7d #///////////////////////////" echo "^^_73x ^ :xd^{/////////x////////_HHHHHH33NNWpp3HHHHHHHHHHHHE:^HHHHHH3H WMMMMMMMMDH7:\ JQ7d {//////////////////////" echo "^^@JzE^\x^ :\x{////////_///\_WJHxHHHHHHHHHHH3HHHHHHHHHHHHH9&xHHHHHHd 9MMMMMMMMLJ J//xQ\7LMMQpx///////////////////" echo " _3zLLLpx x{///////{_ zH9PP9H {{dHHHHHHHHHHHHHHHHHHHHHHHp9#dHHH3H@x^zMMMMMMMMMPJ d//93DMMMMMMMQH\////////////////" echo " x^NE9dxx x://///////#dNP_\/{^H79@pHHHHHHHHHHHHHHHHHHH3H3zx_HHHHHH_&DMMMMMMMMMMDE :/ 7QMMMMMMMMMMMJ&#/////////////" echo " @3pQMp^7N^x//////////// __7LMMMM JHHHHHHHHHHHHH3HHHHH3H9@ HHHHHHH&LMMMMMMMMMMMP7^#{EWMMMMMMMMMMMMMML7 {//////////" echo "^^^&HLWd7d {///////////#3LMMMMMMMHpJpHHHHHHHHHHH3JQJ7NDWE\HHHH3H@ QMMMMMMMMMMMMLp&##LMMMMMMMMMMMMMMMMMMPd{////////" echo "3WNNN7pH99Wd #/////////pHMMMMMMMMD N993HH3HHHHHHHH9LMMMLx@3HHHH_ JMMMMMMMMMMMMMMd@##MMMMMMMMMMMMMMMMMMMMMQ{///////" echo "MMMMM3ELMMMMLE@&@_x////EWMMMMMMMMM3JJpEN3HHHHHHHH7DDMMMH HHHHd ^NMMMMMMMMMMMMMMM_d{#MMMMMMMMMMMMMMMMMMMMM@////////" echo "MMMM7{DMMMMD3JMMMMDJ /#DzMMMMMMMMML^Qz7W9p3pWN7799zJE7d\x_HH@:_HMMMMMMMMMMMMMMMWx3{\MMMMMMMMMMMMMMMMMMMMD{////////" echo "MMML:HMMMM9@MMMLdHJEH{ PLMMMMMMMMMME&pNp^^_^ x ^^__ \#x{&&LMMMMMMMMMMMMMMMJ:p{\MMMMMMMMMMMMMMMMMMMM_/////////" echo "MMMW/7MMMM&LM3LdQz@JM33MMMMMMMMMMMMM&x _@dHHHHHHH@&_^ ^_ ^x:^LMMMMMMPQJ7Np333pW 3 xEDMMMMMMMMMMMMMMMMMJ//////////" echo "MML\/EMMMP3_xNpJMM3^&WzMPMMMMMMMMMMML3x^^^^_&dH3W7EzPPpx\x\\xd333H&_&@pEQPLMMQPM7E9LHd@@3ELMMMMMMMMMMMM //////////" echo "MM3//zMMMNW//QdMMM3 \#LQWMMMMMMMMDp@__&dd@@&__&&@dHpHd33 &x@33Hd@_^^^xMMMMMMM3pMx{HM x9/{\:@pNQMMMMMMMQ///////////" echo "MMH::PMMMW7{/P_MMM7^{xM7^MMMMMMD@@W&&dH3Hx_x:7DzJ97Np &H^&x_dHd@&&@d3WMMMMMMME&M WMMN/7{/WHzMLEWWNELMMW///////////" echo "_H_^^dNJzWH@/7HPMM@_/dD&@MMMLzp W@^7zE7pxHHN99EzQQ7_p9^H^_:&d&^ ^_&&MMMMMMMD M xMML#^x/{JMMMMMMMDW3Wx///////////" echo "Hz^x::xx{/{x^p3dMQx /7N H3@^_@#dW#:_d@@HHHHHH3NPN&NLMQ H & NN799997WWzMMMMMMMLxM^&LMM^{&/#LMMMMMMMMMMLN^#/////////" echo " x WpH@x\//////{@ { _^_@d^ ^__\dH MEH_d3HHHHHHN&3MMMMD H & H&&______ HMMMMMMMM P_3MMMN/&/#LMMMMMMMMMMMMML@////////" echo "\{xH7x::\////////\7MM9@_^_@HHd d_ MMM9@7HHd@NWHp^WMMMDx3 & 3dHW7EzDLMLLDQzJE9NxHxxp33_/x{/NMMMMMMMMMMMMMMP#///////" echo "# ^_ ^ ^x///////{9&MMJ^^^ ^_3xH_ MMM^73@_WQz93&@&@LLN_H __9WH&^ x:\#{\^&& {///{p//////////{x&WzLMMMMMMMMMH///////" echo "^^ 3^^^#///////H_LMME&@dHH@ _x3@xPMz&&_7MMMMLDJHx\ 3pd #{/////////{x@HH&\//////7{////{#////////{x&WzMMMMML#//////" echo ": :d^^^x/////// &PMMM&_dd@&^^ {^W7^p xxH@@&__37NNW7NH^:xxxx ^_&&@dHH&:////////p ////{^/////////////\&ELMM3//////" echo "{\:xxxx#//////{Hp77p@ x#////////#&& xx::\\:xxxx ^_&&&&&@@@&&&&_____x//////////##/////&////////////////{^NQ#/////" fi eina-1.7.10/install-sh0000755000175000017500000003325512175500577011462 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: eina-1.7.10/ChangeLog0000664000175000017500000002415312247670526011231 000000000000002011-01-29 Carsten Haitzler (The Rasterman) 1.0.0 release 2011-02-01 Cedric Bail * Improve scalability and raw speed of Chained Mempool. 2011-02-08 Tom Hacohen * Added eina_unicode_strndup 2011-02-16 Mike Blumenkrantz * Added EINA_INLIST_FOREACH_SAFE 2011-02-16 Tom Hacohen * Added eina_unicode_utf8* functions for utf8 string handling and conversions to and from Eina_Unicode 2011-02-17 Mike Blumenkrantz * Added eina_list_move* functions for moving list node data to other lists 2011-02-24 Vincent Torri * Fix a compilation failure when --disable-posix-threads --disable-valgrind are passed to configure 2011-03-09 Cedric Bail * Fix stat failure when file size in bytes or the number of blocks allocated to the file or the file serial number didn't fit in 32bits. 2011-03-18 Mike Blumenkrantz * Use stringshare for eina_error messages * add eina_error_find to match an error message with its Eina_Error 2011-04-06 Gustavo Sverzut Barbieri * Add Simple XML parser API. 2011-04-11 Cedric Bail * Add eina_inlist_sort. * Add eina_mempool_repack. 2011-04-13 Cedric Bail & Vincent Torri * Add Eina_File API, a portable mmap helper with some cache and tracking feature. 2011-04-22 Vincent Torri * Add Eina_Lock API, a portable solution across various system for locking/unlocking mutex. 2011-04-24 Carsten Haitzler (The Rasterman) * Add a prefix location finder api to eina. Beta status. needs more use from higher up libs/apps first. 2011-04-24 Vincent Torri * Fix uninstallation of the mempools modules 2011-04-27 Vincent Torri * Fix static build of the buddy mempool 2011-04-29 Cedric Bail * Add Eina_Refcount macro helper. You should really use them when running with thread ! 2011-05-14 Vincent Torri * Add Eina_Condition API on Windows. 2011-05-17 Tom Hacohen (TAsn) * Added eina_binbuf: This is just like strbuf but for binary blobs. Requested by discomfitor and honestly it looks needed. 2011-05-18 Cedric Bail * Fix eina_share_common_init to be called only once. 2011-05-24 Vincent Torri * Implement eina_sched_prio_drop() on Windows 2011-05-24 Cedric Bail * Add eina_inlist_sorted_insert. 2011-05-30 Cedric Bail * Add eina_condition_timedwait. 2011-05-31 Cedric Bail * Fix eina_hash_set to handle data == NULL like eina_hash_del. 2011-06-03 Vincent Torri * Fix static linking with eina (iconv could potentially not be passed to the linker) 2011-06-15 Cedric Bail * Add eina_hash_free_cb_set to change the free callback during the life of an Eina_Hash. 2011-06-23 Cedric Bail * Add Eina_LockRW. 2011-07-04 Carsten Haitzler (The Rasterman) * Add eina_mmap safety handling. 2011-07-29 Cedric Bail * Add eina_main_loop_is. 2011-08-03 Myungjae Lee * Fix eina_share_common_del and eina_share_common_ref to release lock on failure. 2011-09-05 Cedric Bail * Add eina_inlist_sorted_state_insert and helper. 2011-09-06 Tom Hacohen * Strbuf + Ustrbuf: Added eina_(u)strbuf_manage_new. This lets us take a string and use it as the string buffer instead of copying and allocating. 2011-09-15 Cedric Bail * Add eina_xattr_ls, eina_xattr_get, eina_xattr_set, eina_xattr_string_set, eina_xattr_string_get, eina_xattr_double_set, eina_xattr_double_get, eina_xattr_int_set, eina_xattr_int_get. 2011-11-10 Boris Faure (billiob) * Add new hash function eina_hash_murmur3 that should be better at hashing strings. 2011-12-02 Carsten Haitzler (The Rasterman) 1.1.0 release 2011-12-02 Mike Blumenkrantz (discomfitor/zmike) * Add eina_mempool_calloc for returning zeroed memory 2011-12-07 Mike Blumenkrantz (discomfitor/zmike) * eina_log*level_check() functions now return the correct value 2011-12-08 Tom Hacohen * Binbuf + Strbuf + Ustrbuf: Added eina_*buf_manage_new_length. Same as eina_(u)strbuf_manage_new except that it accepts a length parameter. 2011-12-20 Cedric Bail * Fix bug on eina_shutdown when using eina_error. 2011-12-28 Cedric Bail * Fix NONNULL argument for eina_hash_find. 2011-12-30 Vincent Torri * Add Eina_Semaphore abstraction API. 2011-12-30 Cedric Bail * Let eina_hash_free behave like free. 2012-01-03 Cedric Bail * Add eina_xattr_fd_ls, eina_xattr_value_fd_ls and eina_xattr_value_ls. * Detect fault during access to Eina_File mmap memory, use eina_file_map_faulted to learn if it happens. * Add eina_file_xattr_get and eina_file_xattr_value_get. 2012-01-09 Gustavo Barbieri * Deprecated eina_array_count_get(), use eina_array_count() instead. * Add eina_inarray data type. * Add eina_value data type (generic value storage). 2012-01-19 Shinwoo Kim * Fix compilation of eina_semaphore_lock() (Windows port) 2012-01-20 Gustavo Barbieri * Add eina_model data type (generic hierarchy data access). 2011-12-30 Vincent Torri * Fix Eina_RWLock code on Windows > XP. 2012-01-29 Tom Hacohen * Added EINA_C_ARRAY_LENGTH, a macro that returns the length of a standard C array. 2012-01-31 Tom Hacohen * Added an Eina_Stringshare type. It's just a typedef of "const char" this is a same kind of visual hint for the purpose of the pointer, but again, the two types are interchangeable. 2012-02-17 Cedric Bail * Fix forgotten initialization of eina list count during eina_list_split_list. 2012-02-22 Cedric Bail * Add eina_file_stat. 2012-02-27 Alexandre Becoulet * Add faster implementation of Eina_Rbtree. 2012-03-07 Cedric Bail * Fix leak of Eina_File. 2012-03-14 Cedric Bail * Fix a dead lock in Eina_File. 2012-03-16 Raphael Kubo da Costa * Adjust Valgrind's CFLAGS to fix the build when it is in a non-default location. 2012-03-29 Iván Briano * Avoid freeing old data before returning it on eina_hash_set(). 2012-03-31 Vincent Torri * Add missing API eina_file_map_faulted() on Windows. Does nothing for now. 2012-04-19 Cedric Bail * Make it possible to force the number of detected CPU on a system. 2012-04-26 Carsten Haitzler (The Rasterman) 1.2.0 release 2012-04-26 Cedric Bail * Add backtrace support Eina_Log. 2012-04-30 Jérôme Pinot * Add missing files in the tarballs. 2012-05-06 Cedric Bail * Fix a rounding issue near 1.0 for eina_f32p32_cos and eina_f32p32_sin. 2012-05-08 Cedric Bail * Add eina_file_map_lines to iterate on lines of a mapped file. 2012-05-17 Albin Tonnerre * Fix portability issue of Eina_Value on ARM and PPC. * Fix portability issue of Eina_Value test on Itanium. 2012-05-23 Carsten Haitzler (The Rasterman) * Fix global_faulty faulty flag in eina_file to be set to 0 initially rather than be random memory garbage. 2012-05-29 Vincent Torri * remove --disable-posix-threads and --disable-win32-threads from configure options, and detect automatically the threading support. Fix bug in the XML parser when a tag was in a comment or a cdata 2012-06-08 Mike Blumenkrantz * Fixed eina_str_split_full() to behave properly and be much faster 2012-06-17 Carsten Haitzler (The Rasterman) * Add env var EINA_MEMPOOL_PASS to force mempool to try use passthrough to malloc for debgging purposes and memory footrpint comparisons at runtime. 2012-07-01 Vincent Torri * Remove --enable-coverage from configure options, 2012-07-04 Vincent Torri * Implement eina_file_map_lines() on Windows. 2012-07-05 Raphael Kubo da Costa * Handle NULL in all eina_*_free function. 2012-08-01 Carsten Haitzler (The Rasterman) * Modify eina_prefix to deal with debian's fun new multiarch... if you are a shared library. 2012-08-01 Gustavo Sverzut Barbieri (k-s) * added eina_log_console_color_set() for cross platform console color set. 2012-08-14 Lucas De Marchi * Add EINA_SENTINEL macro to protect variadic functions 2012-08-30 Carsten Haitzler (The Rasterman) 1.7.0 release 2012-09-12 Patryk Kaczmarek * Add EINA_SAFETY checks for proper function arguments. * Add check if given arguments (distance and coordinates) in eina_tiler and eina_rectangle are not below zero * Documentation for eina list specified and eina stringshare fixed 2012-09-27 Carsten Haitzler (The Rasterman) * Fix return value of eina_mmap_safety_enabled_set() and ensure future eina_mmap_safety_enabled_get() return right value on success. 2012-10-19 Patryk Kaczmarek * eina_stringshare_add_length return NULL when func args are wrong. 2012-10-20 Cedric Bail 1.7.1 release 2012-11-23 Luis Felipe Strano Moraes 1.7.2 release 2012-11-29 Vincent Torri * Do not use -pthread anymore, but instead pass _REENTRANT to the preprocessor and -lpthread to the linker. * On Solaris OS, -mt is passed by default and same flags than linux must be passed. 2012-12-07 Cedric Bail * Don't leak fd after exec. 2012-12-07 Luis Felipe Strano Moraes * 1.7.3 release 2012-12-12 Nicolas Aguirre * Fix define EINA_UNUSED for win32 builds 2012-12-13 Lucas De Marchi * Fix EINA_INLIST_FOREACH_SAFE macro 2012-12-17 Vincent Torri * Add XML output to doc * Add installation rule for doc 2012-12-21 Luis Felipe Strano Moraes * 1.7.4 release 2013-01-04 Luis Felipe Strano Moraes * 1.7.5 release 2013-01-05 Joel Klinghed * configure dirfd check fix 2013-02-06 Cedric Bail * counter measure denial of service on eina_hash function. * fix map leak in Eina_File. 2013-02-07 Cedric Bail * honor tile size in Eina_Tiler. 2013-02-16 Cedric Bail * Fix portability issue on 64bits system for Eina_CList. 2013-03-19 Mike Blumenkrantz * Fix magic failure in eina_value_array_count when array has not been allocated 2013-04-04 Rafael Antognolli * 1.7.6 release 2013-05-11 Rafael Antognolli * 1.7.7 release 2013-06-11 Stefan Schmidt * Fix memory leak in eina_xattr_value_ls 2013-08-02 Eduardo Lima (Etrunko) * 1.7.8 release 2013-09-10 Eduardo Lima (Etrunko) * 1.7.9 release 2013-11-21 Cedric Bail * Fix race condition when calling eina_file_open/eina_file_close. 2013-12-05 Eduardo Lima (Etrunko) * 1.7.10 release eina-1.7.10/missing0000755000175000017500000001533112175500577011050 00000000000000#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2012-06-26.16; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'automa4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: eina-1.7.10/doc/0000775000175000017500000000000012247700051010262 500000000000000eina-1.7.10/doc/Makefile.in0000664000175000017500000003712612247700043012261 00000000000000# Makefile.in generated by automake 1.13.4 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@ subdir = doc DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/Doxyfile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/eina/eina_bench.m4 \ $(top_srcdir)/m4/eina/eina_check.m4 \ $(top_srcdir)/m4/common/efl_attribute.m4 \ $(top_srcdir)/m4/common/efl_benchmark.m4 \ $(top_srcdir)/m4/common/efl_check_funcs.m4 \ $(top_srcdir)/m4/common/efl_compiler_flag.m4 \ $(top_srcdir)/m4/common/efl_cpu.m4 \ $(top_srcdir)/m4/common/efl_doxygen.m4 \ $(top_srcdir)/m4/common/efl_examples.m4 \ $(top_srcdir)/m4/common/efl_path_max.m4 \ $(top_srcdir)/m4/common/efl_tests.m4 \ $(top_srcdir)/m4/common/efl_threads.m4 \ $(top_srcdir)/m4/common/efl_voltron.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = Doxyfile 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@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ EFL_EINA_BUILD = @EFL_EINA_BUILD@ EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@ EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@ EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@ EGREP = @EGREP@ EINA_CFLAGS = @EINA_CFLAGS@ EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@ EINA_CONFIGURE_ENABLE_LOG = @EINA_CONFIGURE_ENABLE_LOG@ EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@ EINA_CONFIGURE_HAVE_DIRENT_H = @EINA_CONFIGURE_HAVE_DIRENT_H@ EINA_CONFIGURE_HAVE_EXOTIC = @EINA_CONFIGURE_HAVE_EXOTIC@ EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@ EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@ EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@ EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@ EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@ EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@ EINA_LIBS = @EINA_LIBS@ EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@ EMEMOA_CFLAGS = @EMEMOA_CFLAGS@ EMEMOA_LIBS = @EMEMOA_LIBS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MODULE_ARCH = @MODULE_ARCH@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ 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@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ VALGRIND_LIBS = @VALGRIND_LIBS@ VERSION = @VERSION@ VMAJ = @VMAJ@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 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@ docdir = @docdir@ dvidir = @dvidir@ efl_doxygen = @efl_doxygen@ efl_have_doxygen = @efl_have_doxygen@ exec_prefix = @exec_prefix@ have_lcov = @have_lcov@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_enable_auto_import = @lt_enable_auto_import@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_requires_private = @pkgconfig_requires_private@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ release_info = @release_info@ requirements_libs_eina = @requirements_libs_eina@ requirements_pc_eina = @requirements_pc_eina@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ version_info = @version_info@ MAINTAINERCLEANFILES = Makefile.in PACKAGE_DOCNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc EXTRA_DIST = $(srcdir)/Doxyfile.in \ $(wildcard $(srcdir)/img/*.*) \ $(srcdir)/e.css \ $(srcdir)/head.html \ $(srcdir)/foot.html 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) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/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): Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs 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." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) @EFL_BUILD_DOC_FALSE@uninstall-local: @EFL_BUILD_DOC_FALSE@clean-local: clean: clean-am clean-am: clean-generic clean-libtool clean-local 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-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 mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ clean-local cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool 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-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am uninstall-local .PHONY: doc install-doc @EFL_BUILD_DOC_TRUE@doc-clean: @EFL_BUILD_DOC_TRUE@ rm -rf html/ latex/ man/ xml/ $(top_builddir)/$(PACKAGE_DOCNAME).tar* @EFL_BUILD_DOC_TRUE@doc-build: all @EFL_BUILD_DOC_TRUE@ $(efl_doxygen) @EFL_BUILD_DOC_TRUE@ cp img/* html/ @EFL_BUILD_DOC_TRUE@ cp img/* latex/ @EFL_BUILD_DOC_TRUE@doc: doc-build @EFL_BUILD_DOC_TRUE@ rm -rf $(PACKAGE_DOCNAME).tar* @EFL_BUILD_DOC_TRUE@ mkdir -p $(PACKAGE_DOCNAME)/doc @EFL_BUILD_DOC_TRUE@ cp -R html/ latex/ man/ xml/ $(PACKAGE_DOCNAME)/doc @EFL_BUILD_DOC_TRUE@ tar cf $(PACKAGE_DOCNAME).tar $(PACKAGE_DOCNAME)/ @EFL_BUILD_DOC_TRUE@ bzip2 -9 $(PACKAGE_DOCNAME).tar @EFL_BUILD_DOC_TRUE@ rm -rf $(PACKAGE_DOCNAME)/ @EFL_BUILD_DOC_TRUE@ mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir) @EFL_BUILD_DOC_TRUE@ @echo "Documentation Package: doc/$(PACKAGE_DOCNAME).tar.bz2" @EFL_BUILD_DOC_TRUE@ @echo "Documentation HTML: doc/html" @EFL_BUILD_DOC_TRUE@clean-local: doc-clean @EFL_BUILD_DOC_TRUE@install-doc: doc-build @EFL_BUILD_DOC_TRUE@ install -d $(docdir) @EFL_BUILD_DOC_TRUE@ cp -R html latex man xml $(docdir) @EFL_BUILD_DOC_TRUE@uninstall-local: @EFL_BUILD_DOC_TRUE@ rm -rf $(docdir)/html $(docdir)/latex $(docdir)/man $(docdir)/xml @EFL_BUILD_DOC_FALSE@doc: @EFL_BUILD_DOC_FALSE@ @echo "Documentation not built. Run ./configure --help" @EFL_BUILD_DOC_FALSE@install-doc: doc # 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: eina-1.7.10/doc/head.html0000664000175000017500000000531612175475327012015 00000000000000 $title
eina-1.7.10/doc/e.css0000664000175000017500000001221212175475327011155 00000000000000/* Author: Andres Blanc DaveMDS Andreoli Supported Browsers: ie7, opera9, konqueror4 and firefox3 Please use a different file for ie6, ie5, etc. hacks. */ /* Necessary to place the footer at the bottom of the page */ html, body { height: 100%; margin: 0px; padding: 0px; } #container { min-height: 100%; height: auto !important; height: 100%; margin: 0 auto -53px; } #footer, #push { height: 53px; } * html #container { height: 100%; } /* Prevent floating elements overflowing containers */ .clear { clear: both; width: 0px; height: 0px; } /* Flexible & centered layout from 750 to 960 pixels */ .layout { max-width: 960px; min-width: 760px; margin-left: auto; margin-right: auto; } body { /*font-family: Lucida Grande, Helvetica, sans-serif;*/ font-family: "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif } /* Prevent design overflowing the viewport in small resolutions */ #container { padding-right: 17px; padding-left: 17px; background-image: url(head_bg.png); background-repeat: repeat-x; } /****************************/ /* Top main menu */ /****************************/ #header_logo { background-image : url(logo.png); width : 61px; } #header_logo a { position : absolute; border : 0px; background-color : transparent; top : 0px; width : 60px; height : 60px; } #header_menu { background-image : url(header_menu_background.png); font : normal 10pt verdana,'Bitstream Vera Sans',helvetica,arial,sans-serif; text-align : right; } #header_last { background-image : url(header_menu_background_last.png); width : 15px; } td.nav_passive { background : url(header_menu_unselected_background.png) 0 0 no-repeat; height : 63px; font-family : "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif; font-size : 11px; padding : 20px 10px 20px 10px; vertical-align : middle; } td.nav_active { background : url(header_menu_current_background.png) 0 0 no-repeat; height : 63px; color : #646464; font-family : "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif; font-size : 11px; font-weight : bold; padding : 20px 10px 20px 10px; vertical-align : middle; } #header_menu a { display : block; text-decoration : none; cursor : pointer; color : #cdcdcd; } #header { width: 100%; height: 102px; } #header h1 { width: 63px; height: 63px; position: absolute; margin: 0px; } #header h1 span { display: none; } #header h2 { display: none; } /* .menu-container is used to set properties common to .menu and .submenu */ #header .menu-container { } #header .menu-container ul { list-style-type: none; list-style-position: inside; margin: 0; } #header .menu-container li { display: block; float: right; } #header .menu { height: 63px; display: block; background-image: url(menu_bg.png); background-repeat: repeat-x; } #header .menu ul { height: 100%; display: block; background-image: url(menu_bg_last.png); background-repeat: no-repeat; background-position: top right; padding-right: 17px; } #header .menu li { height: 100%; text-align: center; background-image: url(menu_bg_unsel.png); background-repeat: no-repeat; } #header .menu a { height: 100%; display: block; color: #cdcdcd; text-decoration: none; font-size: 10pt; line-height: 59px; text-align: center; padding: 0px 15px 0px 15px; } #header .menu li:hover { background-image: url(menu_bg_hover.png); background-repeat: no-repeat; } #header .menu li:hover a { color: #FFFFFF; } #header .menu li.current { background-image: url(menu_bg_current.png); background-repeat: no-repeat; } #header .menu li.current a { color: #646464; } /* Hide all the submenus but the current */ #header .submenu ul { display: none; } #header .submenu .current { display: block; } #header .submenu { font: bold 10px verdana,'Bitstream Vera Sans',helvetica,arial,sans-serif; margin-top: 10px; } #header .submenu a { color: #888888; text-decoration: none; font-size: 0.9em; line-height: 15px; padding:0px 5px 0px 5px; } #header .submenu a:hover { color: #444444; } #header .submenu li { border-left: 1px solid #DDDDDD; } #header .submenu li:last-child { border-left: 0; } #header .doxytitle { position: absolute; font-size: 1.8em; font-weight: bold; color: #444444; line-height: 35px; } #header small { font-size: 0.4em; } #footer { background-image: url(foot_bg.png); width: 100%; } #footer table { width: 100%; text-align: center; white-space: nowrap; padding: 5px 30px 5px 30px; font-size: 0.8em; font-family: "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif; color: #888888; } #footer td.copyright { width: 100%; } eina-1.7.10/doc/Doxyfile.in0000664000175000017500000021344212175475327012342 00000000000000# Doxyfile 1.7.3 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" "). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = Eina # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = @PACKAGE_VERSION@ # Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify an logo or icon that is # included in the documentation. The maximum height of the logo should not # exceed 55 pixels and the maximum width should not exceed 200 pixels. # Doxygen will copy the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = . # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful if your file system # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also makes the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penalty. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will roughly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = NO # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespaces are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = NO # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = NO # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a # match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen # will still accept a match between prototype and implementation in such cases. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or macro consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and macros in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = NO # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # The WARN_NO_PARAMDOC option can be enabled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = YES # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = @top_srcdir@/src/include \ @top_srcdir@/src/lib # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py # *.f90 *.f *.for *.vhd *.vhdl FILE_PATTERNS = *.c \ *.h \ *.x # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = @top_builddir@/src/lib/eina_amalgamation.c # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = @top_srcdir@/src/examples # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = @top_srcdir@/doc/img \ @top_srcdir@/doc/benchmark # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty or if # non of the patterns match the file name, INPUT_FILTER is applied. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) # and it is also possible to disable source filtering for a specific pattern # using *.ext= (so without naming a filter). This option only has effect when # FILTER_SOURCE_FILES is enabled. FILTER_SOURCE_PATTERNS = #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 2 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = eina_ \ _eina_ \ Eina_ \ _Eina_ \ EINA_ \ _EINA_ #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = @srcdir@/head.html # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = @srcdir@/foot.html # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = @srcdir@/e.css # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = YES # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = YES # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.enlightenment.Eina # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.enlightenment.Eina # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Enlightenment # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = YES # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = org.enlightenment.Eina # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.enlightenment.Eina # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = YES # This tag can be used to set the number of enum values (range [0,1..20]) # that doxygen will group on one line in the generated HTML documentation. # Note that a value of 0 will completely suppress the enum values from appearing in the overview section. ENUM_VALUES_PER_LINE = 1 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax # (see http://www.mathjax.org) which uses client side Javascript for the # rendering instead of using prerendered bitmaps. Use this if you do not # have LaTeX installed or if you want to formulas look prettier in the HTML # output. When enabled you also need to install MathJax separately and # configure the path to it using the MATHJAX_RELPATH option. USE_MATHJAX = NO # When MathJax is enabled you need to specify the location relative to the # HTML output directory using the MATHJAX_RELPATH option. The destination # directory should contain the MathJax.js script. For instance, if the mathjax # directory is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing # MathJax, but it is strongly recommended to install a local copy of MathJax # before deployment. MATHJAX_RELPATH = http://www.mathjax.org/mathjax # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = NO # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvantages are that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = YES # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = YES #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = YES # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = YES # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = NO # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = EINA_MAGIC_DEBUG \ __UNUSED__= \ EINA_ARG_NONNULL()= \ EINA_MALLOC= \ EINA_WARN_UNUSED_RESULT= \ EAPI= \ EINA_PURE= \ EINA_CONST= # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all references to function-like macros # that are alone on a line, have an all uppercase name, and do not end with a # semicolon, because these will confuse the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option also works with HAVE_DOT disabled, but it is recommended to # install and use dot, since it yields more powerful graphs. CLASS_DIAGRAMS = NO # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will write a font called Helvetica to the output # directory and reference it in all dot files that doxygen generates. # When you want a differently looking font you can specify the font name # using DOT_FONTNAME. You need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = Helvetica # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = NO # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = NO # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = NO # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will generate a graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = NO # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, svg, gif or svg. # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MSCFILE_DIRS tag can be used to specify one or more directories that # contain msc files that are included in the documentation (see the # \mscfile command). MSCFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = YES # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES eina-1.7.10/doc/img/0000775000175000017500000000000012247700051011036 500000000000000eina-1.7.10/doc/img/eina_list_example_01_a.eps0000664000175000017500000154371712175475327016012 00000000000000%!PS-Adobe-3.1 EPSF-3.0 %ADO_DSC_Encoding: MacOS Roman %%Title: 02_eina-list_b-03.eps %%Creator: Adobe Illustrator(R) 14.0 %%For: Marina Proni %%CreationDate: 6/9/11 %%BoundingBox: 0 0 1121 326 %%HiResBoundingBox: 0 0 1121 326 %%CropBox: 0 0 1121 326 %%LanguageLevel: 2 %%DocumentData: Clean7Bit %ADOBeginClientInjection: DocumentHeader "AI11EPS" %%AI8_CreatorVersion: 14.0.0 %AI9_PrintingDataBegin %ADO_BuildNumber: Adobe Illustrator(R) 14.0.0 x367 R agm 4.4890 ct 5.1541 %ADO_ContainsXMP: MainFirst %ADOEndClientInjection: DocumentHeader "AI11EPS" %%Pages: 1 %%DocumentNeededResources: %%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0 %%+ procset Adobe_CoolType_Utility_T42 1.0 0 %%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%+ procset Adobe_CoolType_Core 2.31 0 %%+ procset Adobe_AGM_Core 2.0 0 %%+ procset Adobe_AGM_Utils 1.0 0 %%DocumentFonts: %%DocumentNeededFonts: %%DocumentNeededFeatures: %%DocumentSuppliedFeatures: %%DocumentProcessColors: Cyan Magenta Yellow Black %%DocumentCustomColors: %%CMYKCustomColor: %%RGBCustomColor: %%EndComments %%BeginDefaults %%ViewingOrientation: 1 0 0 1 %%EndDefaults %%BeginProlog %%BeginResource: procset Adobe_AGM_Utils 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known {currentpacking true setpacking}if userdict/Adobe_AGM_Utils 75 dict dup begin put /bdf {bind def}bind def /nd{null def}bdf /xdf {exch def}bdf /ldf {load def}bdf /ddf {put}bdf /xddf {3 -1 roll put}bdf /xpt {exch put}bdf /ndf { exch dup where{ pop pop pop }{ xdf }ifelse }def /cdndf { exch dup currentdict exch known{ pop pop }{ exch def }ifelse }def /gx {get exec}bdf /ps_level /languagelevel where{ pop systemdict/languagelevel gx }{ 1 }ifelse def /level2 ps_level 2 ge def /level3 ps_level 3 ge def /ps_version {version cvr}stopped{-1}if def /set_gvm {currentglobal exch setglobal}bdf /reset_gvm {setglobal}bdf /makereadonlyarray { /packedarray where{pop packedarray }{ array astore readonly}ifelse }bdf /map_reserved_ink_name { dup type/stringtype eq{ dup/Red eq{ pop(_Red_) }{ dup/Green eq{ pop(_Green_) }{ dup/Blue eq{ pop(_Blue_) }{ dup()cvn eq{ pop(Process) }if }ifelse }ifelse }ifelse }if }bdf /AGMUTIL_GSTATE 22 dict def /get_gstate { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_clr_spc currentcolorspace def /AGMUTIL_GSTATE_clr_indx 0 def /AGMUTIL_GSTATE_clr_comps 12 array def mark currentcolor counttomark {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop /AGMUTIL_GSTATE_fnt rootfont def /AGMUTIL_GSTATE_lw currentlinewidth def /AGMUTIL_GSTATE_lc currentlinecap def /AGMUTIL_GSTATE_lj currentlinejoin def /AGMUTIL_GSTATE_ml currentmiterlimit def currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf /AGMUTIL_GSTATE_sa currentstrokeadjust def /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def /AGMUTIL_GSTATE_op currentoverprint def /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf /AGMUTIL_GSTATE_ht currenthalftone def /AGMUTIL_GSTATE_flt currentflat def end }def /set_gstate { AGMUTIL_GSTATE begin AGMUTIL_GSTATE_clr_spc setcolorspace AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor AGMUTIL_GSTATE_fnt setfont AGMUTIL_GSTATE_lw setlinewidth AGMUTIL_GSTATE_lc setlinecap AGMUTIL_GSTATE_lj setlinejoin AGMUTIL_GSTATE_ml setmiterlimit AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash AGMUTIL_GSTATE_sa setstrokeadjust AGMUTIL_GSTATE_clr_rnd setcolorrendering AGMUTIL_GSTATE_op setoverprint AGMUTIL_GSTATE_bg cvx setblackgeneration AGMUTIL_GSTATE_ucr cvx setundercolorremoval AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or { currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne { mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark }if }{ AGMUTIL_GSTATE_ht sethalftone }ifelse AGMUTIL_GSTATE_flt setflat end }def /get_gstate_and_matrix { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_ctm matrix currentmatrix def end get_gstate }def /set_gstate_and_matrix { set_gstate AGMUTIL_GSTATE begin AGMUTIL_GSTATE_ctm setmatrix end }def /AGMUTIL_str256 256 string def /AGMUTIL_src256 256 string def /AGMUTIL_dst64 64 string def /AGMUTIL_srcLen nd /AGMUTIL_ndx nd /AGMUTIL_cpd nd /capture_cpd{ //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf }def /thold_halftone { level3 {sethalftone currenthalftone} { dup/HalftoneType get 3 eq { sethalftone currenthalftone }{ begin Width Height mul{ Thresholds read{pop}if }repeat end currenthalftone }ifelse }ifelse }def /rdcmntline { currentfile AGMUTIL_str256 readline pop (%)anchorsearch{pop}if }bdf /filter_cmyk { dup type/filetype ne{ exch()/SubFileDecode filter }{ exch pop } ifelse [ exch { AGMUTIL_src256 readstring pop dup length/AGMUTIL_srcLen exch def /AGMUTIL_ndx 0 def AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{ 1 index exch get AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put /AGMUTIL_ndx AGMUTIL_ndx 1 add def }for pop AGMUTIL_dst64 0 AGMUTIL_ndx getinterval } bind /exec cvx ]cvx }bdf /filter_indexed_devn { cvi Names length mul names_index add Lookup exch get }bdf /filter_devn { 4 dict begin /srcStr xdf /dstStr xdf dup type/filetype ne{ 0()/SubFileDecode filter }if [ exch [ /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx currentdict/srcStr get/readstring cvx/pop cvx /dup cvx/length cvx 0/gt cvx[ Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx names_index Names length currentdict/srcStr get length 1 sub{ 1/index cvx/exch cvx/get cvx currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx }for currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx ]cvx/if cvx /end cvx ]cvx bind /exec cvx ]cvx end }bdf /AGMUTIL_imagefile nd /read_image_file { AGMUTIL_imagefile 0 setfileposition 10 dict begin /imageDict xdf /imbufLen Width BitsPerComponent mul 7 add 8 idiv def /imbufIdx 0 def /origDataSource imageDict/DataSource get def /origMultipleDataSources imageDict/MultipleDataSources get def /origDecode imageDict/Decode get def /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse { /imbufCnt imageDict/DataSource get length def /imbufs imbufCnt array def 0 1 imbufCnt 1 sub{ /imbufIdx xdf imbufs imbufIdx imbufLen string put imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put }for DeviceN_PS2{ imageDict begin /DataSource[DataSource/devn_sep_datasource cvx]cvx def /MultipleDataSources false def /Decode[0 1]def end }if }{ /imbuf imbufLen string def Indexed_DeviceN level3 not and DeviceN_NoneName or{ /srcDataStrs[imageDict begin currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi string }repeat end]def imageDict begin /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def /Decode[0 1]def end }{ imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put imageDict/Decode[0 1]put }ifelse }ifelse imageDict exch load exec imageDict/DataSource origDataSource put imageDict/MultipleDataSources origMultipleDataSources put imageDict/Decode origDecode put end }bdf /write_image_file { begin {(AGMUTIL_imagefile)(w+)file}stopped{ false }{ Adobe_AGM_Utils/AGMUTIL_imagefile xddf 2 dict begin /imbufLen Width BitsPerComponent mul 7 add 8 idiv def MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{ /imbuf imbufLen string def }if 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{ pop MultipleDataSources{ 0 1 DataSource length 1 sub{ DataSource type dup /arraytype eq{ pop DataSource exch gx }{ /filetype eq{ DataSource exch get imbuf readstring pop }{ DataSource exch get }ifelse }ifelse AGMUTIL_imagefile exch writestring }for }{ DataSource type dup /arraytype eq{ pop DataSource exec }{ /filetype eq{ DataSource imbuf readstring pop }{ DataSource }ifelse }ifelse AGMUTIL_imagefile exch writestring }ifelse }for end true }ifelse end }bdf /close_image_file { AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile }def statusdict/product known userdict/AGMP_current_show known not and{ /pstr statusdict/product get def pstr(HP LaserJet 2200)eq pstr(HP LaserJet 4000 Series)eq or pstr(HP LaserJet 4050 Series )eq or pstr(HP LaserJet 8000 Series)eq or pstr(HP LaserJet 8100 Series)eq or pstr(HP LaserJet 8150 Series)eq or pstr(HP LaserJet 5000 Series)eq or pstr(HP LaserJet 5100 Series)eq or pstr(HP Color LaserJet 4500)eq or pstr(HP Color LaserJet 4600)eq or pstr(HP LaserJet 5Si)eq or pstr(HP LaserJet 1200 Series)eq or pstr(HP LaserJet 1300 Series)eq or pstr(HP LaserJet 4100 Series)eq or { userdict/AGMP_current_show/show load put userdict/show{ currentcolorspace 0 get /Pattern eq {false charpath f} {AGMP_current_show}ifelse }put }if currentdict/pstr undef }if /consumeimagedata { begin AGMIMG_init_common currentdict/MultipleDataSources known not {/MultipleDataSources false def}if MultipleDataSources { DataSource 0 get type dup/filetype eq { 1 dict begin /flushbuffer Width cvi string def 1 1 Height cvi { pop 0 1 DataSource length 1 sub { DataSource exch get flushbuffer readstring pop pop }for }for end }if dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and { Width Height mul cvi { 0 1 DataSource length 1 sub {dup DataSource exch gx length exch 0 ne{pop}if}for dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if } { /DataSource load type dup/filetype eq { 1 dict begin /flushbuffer Width Decode length 2 idiv mul cvi string def 1 1 Height{pop DataSource flushbuffer readstring pop pop}for end }if dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and { Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul { DataSource length dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if }ifelse end }bdf /addprocs { 2{/exec load}repeat 3 1 roll [5 1 roll]bind cvx }def /modify_halftone_xfer { currenthalftone dup length dict copy begin currentdict 2 index known{ 1 index load dup length dict copy begin currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end def currentdict end sethalftone }{ currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end sethalftone pop }ifelse }def /clonearray { dup xcheck exch dup length array exch Adobe_AGM_Core/AGMCORE_tmp -1 ddf { Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf dup type/dicttype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonedict Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if dup type/arraytype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonearray Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if exch dup Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put }forall exch{cvx}if }bdf /clonedict { dup length dict begin { dup type/dicttype eq {clonedict}if dup type/arraytype eq {clonearray}if def }forall currentdict end }bdf /DeviceN_PS2 { /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and }bdf /Indexed_DeviceN { /indexed_colorspace_dict AGMCORE_gget dup null ne{ dup/CSDBase known{ /CSDBase get/CSD get_res/Names known }{ pop false }ifelse }{ pop false }ifelse }bdf /DeviceN_NoneName { /Names where{ pop false Names { (None)eq or }forall }{ false }ifelse }bdf /DeviceN_PS2_inRip_seps { /AGMCORE_in_rip_sep where { pop dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and { /currentcolorspace exch AGMCORE_gput false }{ true }ifelse }{ true }ifelse }{ true }ifelse }bdf /base_colorspace_type { dup type/arraytype eq{0 get}if }bdf /currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse { /pdfmark_5{cleartomark}bind def }{ /pdfmark_5{pdfmark}bind def }ifelse /ReadBypdfmark_5 { currentfile exch 0 exch/SubFileDecode filter /currentdistillerparams where {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse {flushfile cleartomark} {/PUT pdfmark}ifelse }bdf /ReadBypdfmark_5_string { 2 dict begin /makerString exch def string/tmpString exch def { currentfile tmpString readline not{pop exit}if makerString anchorsearch { pop pop cleartomark exit }{ 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5 }ifelse }loop end }bdf /xpdfm { { dup 0 get/Label eq { aload length[exch 1 add 1 roll/PAGELABEL }{ aload pop [{ThisPage}<<5 -2 roll>>/PUT }ifelse pdfmark_5 }forall }bdf /lmt{ dup 2 index le{exch}if pop dup 2 index ge{exch}if pop }bdf /int{ dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop }bdf /ds{ Adobe_AGM_Utils begin }bdf /dt{ currentdict Adobe_AGM_Utils eq{ end }if }bdf systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_AGM_Core 2.0 0 %%Version: 2.0 0 %%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Core 209 dict dup begin put /Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def /AGMCORE_str256 256 string def /AGMCORE_save nd /AGMCORE_graphicsave nd /AGMCORE_c 0 def /AGMCORE_m 0 def /AGMCORE_y 0 def /AGMCORE_k 0 def /AGMCORE_cmykbuf 4 array def /AGMCORE_screen[currentscreen]cvx def /AGMCORE_tmp 0 def /AGMCORE_&setgray nd /AGMCORE_&setcolor nd /AGMCORE_&setcolorspace nd /AGMCORE_&setcmykcolor nd /AGMCORE_cyan_plate nd /AGMCORE_magenta_plate nd /AGMCORE_yellow_plate nd /AGMCORE_black_plate nd /AGMCORE_plate_ndx nd /AGMCORE_get_ink_data nd /AGMCORE_is_cmyk_sep nd /AGMCORE_host_sep nd /AGMCORE_avoid_L2_sep_space nd /AGMCORE_distilling nd /AGMCORE_composite_job nd /AGMCORE_producing_seps nd /AGMCORE_ps_level -1 def /AGMCORE_ps_version -1 def /AGMCORE_environ_ok nd /AGMCORE_CSD_cache 0 dict def /AGMCORE_currentoverprint false def /AGMCORE_deltaX nd /AGMCORE_deltaY nd /AGMCORE_name nd /AGMCORE_sep_special nd /AGMCORE_err_strings 4 dict def /AGMCORE_cur_err nd /AGMCORE_current_spot_alias false def /AGMCORE_inverting false def /AGMCORE_feature_dictCount nd /AGMCORE_feature_opCount nd /AGMCORE_feature_ctm nd /AGMCORE_ConvertToProcess false def /AGMCORE_Default_CTM matrix def /AGMCORE_Default_PageSize nd /AGMCORE_Default_flatness nd /AGMCORE_currentbg nd /AGMCORE_currentucr nd /AGMCORE_pattern_paint_type 0 def /knockout_unitsq nd currentglobal true setglobal [/CSA/Gradient/Procedure] { /Generic/Category findresource dup length dict copy/Category defineresource pop }forall setglobal /AGMCORE_key_known { where{ /Adobe_AGM_Core_Id known }{ false }ifelse }ndf /flushinput { save 2 dict begin /CompareBuffer 3 -1 roll def /readbuffer 256 string def mark { currentfile readbuffer{readline}stopped {cleartomark mark} { not {pop exit} if CompareBuffer eq {exit} if }ifelse }loop cleartomark end restore }bdf /getspotfunction { AGMCORE_screen exch pop exch pop dup type/dicttype eq{ dup/HalftoneType get 1 eq{ /SpotFunction get }{ dup/HalftoneType get 2 eq{ /GraySpotFunction get }{ pop { abs exch abs 2 copy add 1 gt{ 1 sub dup mul exch 1 sub dup mul add 1 sub }{ dup mul exch dup mul add 1 exch sub }ifelse }bind }ifelse }ifelse }if }def /np {newpath}bdf /clp_npth {clip np}def /eoclp_npth {eoclip np}def /npth_clp {np clip}def /graphic_setup { /AGMCORE_graphicsave save store concat 0 setgray 0 setlinecap 0 setlinejoin 1 setlinewidth []0 setdash 10 setmiterlimit np false setoverprint false setstrokeadjust //Adobe_AGM_Core/spot_alias gx /Adobe_AGM_Image where{ pop Adobe_AGM_Image/spot_alias 2 copy known{ gx }{ pop pop }ifelse }if /sep_colorspace_dict null AGMCORE_gput 100 dict begin /dictstackcount countdictstack def /showpage{}def mark }def /graphic_cleanup { cleartomark dictstackcount 1 countdictstack 1 sub{end}for end AGMCORE_graphicsave restore }def /compose_error_msg { grestoreall initgraphics /Helvetica findfont 10 scalefont setfont /AGMCORE_deltaY 100 def /AGMCORE_deltaX 310 def clippath pathbbox np pop pop 36 add exch 36 add exch moveto 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath 0 AGMCORE_&setgray gsave 1 AGMCORE_&setgray fill grestore 1 setlinewidth gsave stroke grestore currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto /AGMCORE_deltaY 12 def /AGMCORE_tmp 0 def AGMCORE_err_strings exch get { dup 32 eq { pop AGMCORE_str256 0 AGMCORE_tmp getinterval stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt { currentpoint AGMCORE_deltaY sub exch pop clippath pathbbox pop pop pop 44 add exch moveto }if AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show 0 1 AGMCORE_str256 length 1 sub { AGMCORE_str256 exch 0 put }for /AGMCORE_tmp 0 def }{ AGMCORE_str256 exch AGMCORE_tmp xpt /AGMCORE_tmp AGMCORE_tmp 1 add def }ifelse }forall }bdf /AGMCORE_CMYKDeviceNColorspaces[ [/Separation/None/DeviceCMYK{0 0 0}] [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind] [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind] [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind] [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind] [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind] [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind] [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind] [/Separation(Cyan)/DeviceCMYK{0 0 0}] [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind] [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind] [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind] [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}] [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind] [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}] [/DeviceCMYK] ]def /ds{ Adobe_AGM_Core begin /currentdistillerparams where { pop currentdistillerparams/CoreDistVersion get 5000 lt {<>setdistillerparams}if }if /AGMCORE_ps_version xdf /AGMCORE_ps_level xdf errordict/AGM_handleerror known not{ errordict/AGM_handleerror errordict/handleerror get put errordict/handleerror{ Adobe_AGM_Core begin $error/newerror get AGMCORE_cur_err null ne and{ $error/newerror false put AGMCORE_cur_err compose_error_msg }if $error/newerror true put end errordict/AGM_handleerror get exec }bind put }if /AGMCORE_environ_ok ps_level AGMCORE_ps_level ge ps_version AGMCORE_ps_version ge and AGMCORE_ps_level -1 eq or def AGMCORE_environ_ok not {/AGMCORE_cur_err/AGMCORE_bad_environ def}if /AGMCORE_&setgray systemdict/setgray get def level2{ /AGMCORE_&setcolor systemdict/setcolor get def /AGMCORE_&setcolorspace systemdict/setcolorspace get def }if /AGMCORE_currentbg currentblackgeneration def /AGMCORE_currentucr currentundercolorremoval def /AGMCORE_Default_flatness currentflat def /AGMCORE_distilling /product where{ pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and }{ false }ifelse def /AGMCORE_GSTATE AGMCORE_key_known not{ /AGMCORE_GSTATE 21 dict def /AGMCORE_tmpmatrix matrix def /AGMCORE_gstack 32 array def /AGMCORE_gstackptr 0 def /AGMCORE_gstacksaveptr 0 def /AGMCORE_gstackframekeys 14 def /AGMCORE_&gsave/gsave ldf /AGMCORE_&grestore/grestore ldf /AGMCORE_&grestoreall/grestoreall ldf /AGMCORE_&save/save ldf /AGMCORE_&setoverprint/setoverprint ldf /AGMCORE_gdictcopy{ begin {def}forall end }def /AGMCORE_gput{ AGMCORE_gstack AGMCORE_gstackptr get 3 1 roll put }def /AGMCORE_gget{ AGMCORE_gstack AGMCORE_gstackptr get exch get }def /gsave{ AGMCORE_&gsave AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /grestore{ AGMCORE_&grestore AGMCORE_gstackptr 1 sub dup AGMCORE_gstacksaveptr lt{1 add}if dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse /AGMCORE_gstackptr exch store }def /grestoreall{ AGMCORE_&grestoreall /AGMCORE_gstackptr AGMCORE_gstacksaveptr store }def /save{ AGMCORE_&save AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store /AGMCORE_gstacksaveptr AGMCORE_gstackptr store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /setoverprint{ dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint }def 0 1 AGMCORE_gstack length 1 sub{ AGMCORE_gstack exch AGMCORE_gstackframekeys dict put }for }if level3/AGMCORE_&sysshfill AGMCORE_key_known not and { /AGMCORE_&sysshfill systemdict/shfill get def /AGMCORE_&sysmakepattern systemdict/makepattern get def /AGMCORE_&usrmakepattern/makepattern load def }if /currentcmykcolor[0 0 0 0]AGMCORE_gput /currentstrokeadjust false AGMCORE_gput /currentcolorspace[/DeviceGray]AGMCORE_gput /sep_tint 0 AGMCORE_gput /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput /sep_colorspace_dict null AGMCORE_gput /devicen_colorspace_dict null AGMCORE_gput /indexed_colorspace_dict null AGMCORE_gput /currentcolor_intent()AGMCORE_gput /customcolor_tint 1 AGMCORE_gput /absolute_colorimetric_crd null AGMCORE_gput /relative_colorimetric_crd null AGMCORE_gput /saturation_crd null AGMCORE_gput /perceptual_crd null AGMCORE_gput currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf << /MaxPatternItem currentsystemparams/MaxPatternCache get >> setuserparams end }def /ps { /setcmykcolor where{ pop Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put }if Adobe_AGM_Core begin /setcmykcolor { 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput 1 sub 4 1 roll 3{ 3 index add neg dup 0 lt{ pop 0 }if 3 1 roll }repeat setrgbcolor pop }ndf /currentcmykcolor { /currentcmykcolor AGMCORE_gget aload pop }ndf /setoverprint {pop}ndf /currentoverprint {false}ndf /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def /AGMCORE_plate_ndx AGMCORE_cyan_plate{ 0 }{ AGMCORE_magenta_plate{ 1 }{ AGMCORE_yellow_plate{ 2 }{ AGMCORE_black_plate{ 3 }{ 4 }ifelse }ifelse }ifelse }ifelse def /AGMCORE_have_reported_unsupported_color_space false def /AGMCORE_report_unsupported_color_space { AGMCORE_have_reported_unsupported_color_space false eq { (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)== Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf }if }def /AGMCORE_composite_job AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def /AGMCORE_in_rip_sep /AGMCORE_in_rip_sep where{ pop AGMCORE_in_rip_sep }{ AGMCORE_distilling { false }{ userdict/Adobe_AGM_OnHost_Seps known{ false }{ level2{ currentpagedevice/Separations 2 copy known{ get }{ pop pop false }ifelse }{ false }ifelse }ifelse }ifelse }ifelse def /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def /AGM_preserve_spots /AGM_preserve_spots where{ pop AGM_preserve_spots }{ AGMCORE_distilling AGMCORE_producing_seps or }ifelse def /AGM_is_distiller_preserving_spotimages { currentdistillerparams/PreserveOverprintSettings known { currentdistillerparams/PreserveOverprintSettings get { currentdistillerparams/ColorConversionStrategy known { currentdistillerparams/ColorConversionStrategy get /sRGB ne }{ true }ifelse }{ false }ifelse }{ false }ifelse }def /convert_spot_to_process where{pop}{ /convert_spot_to_process { //Adobe_AGM_Core begin dup map_alias{ /Name get exch pop }if dup dup(None)eq exch(All)eq or { pop false }{ AGMCORE_host_sep { gsave 1 0 0 0 setcmykcolor currentgray 1 exch sub 0 1 0 0 setcmykcolor currentgray 1 exch sub 0 0 1 0 setcmykcolor currentgray 1 exch sub 0 0 0 1 setcmykcolor currentgray 1 exch sub add add add 0 eq { pop false }{ false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne }ifelse grestore }{ AGMCORE_distilling { pop AGM_is_distiller_preserving_spotimages not }{ //Adobe_AGM_Core/AGMCORE_name xddf false //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq AGMUTIL_cpd/OverrideSeparations known and { AGMUTIL_cpd/OverrideSeparations get { /HqnSpots/ProcSet resourcestatus { pop pop pop true }if }if }if { AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not }{ gsave [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace false AGMUTIL_cpd/SeparationColorNames 2 copy known { get {AGMCORE_name eq or}forall not }{ pop pop pop true }ifelse grestore }ifelse }ifelse }ifelse }ifelse end }def }ifelse /convert_to_process where{pop}{ /convert_to_process { dup length 0 eq { pop false }{ AGMCORE_host_sep { dup true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process and}ifelse } forall { true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch (Black)eq or and }forall not }{pop false}ifelse }{ false exch { /PhotoshopDuotoneList where{pop false}{true}ifelse { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process or}ifelse } { convert_spot_to_process or } ifelse } forall }ifelse }ifelse }def }ifelse /AGMCORE_avoid_L2_sep_space version cvr 2012 lt level2 and AGMCORE_producing_seps not and def /AGMCORE_is_cmyk_sep AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or def /AGM_avoid_0_cmyk where{ pop AGM_avoid_0_cmyk }{ AGM_preserve_spots userdict/Adobe_AGM_OnHost_Seps known userdict/Adobe_AGM_InRip_Seps known or not and }ifelse { /setcmykcolor[ { 4 copy add add add 0 eq currentoverprint and{ pop 0.0005 }if }/exec cvx /AGMCORE_&setcmykcolor load dup type/operatortype ne{ /exec cvx }if ]cvx def }if /AGMCORE_IsSeparationAProcessColor { dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or }def AGMCORE_host_sep{ /setcolortransfer { AGMCORE_cyan_plate{ pop pop pop }{ AGMCORE_magenta_plate{ 4 3 roll pop pop pop }{ AGMCORE_yellow_plate{ 4 2 roll pop pop pop }{ 4 1 roll pop pop pop }ifelse }ifelse }ifelse settransfer } def /AGMCORE_get_ink_data AGMCORE_cyan_plate{ {pop pop pop} }{ AGMCORE_magenta_plate{ {4 3 roll pop pop pop} }{ AGMCORE_yellow_plate{ {4 2 roll pop pop pop} }{ {4 1 roll pop pop pop} }ifelse }ifelse }ifelse def /AGMCORE_RemoveProcessColorNames { 1 dict begin /filtername { dup/Cyan eq 1 index(Cyan)eq or {pop(_cyan_)}if dup/Magenta eq 1 index(Magenta)eq or {pop(_magenta_)}if dup/Yellow eq 1 index(Yellow)eq or {pop(_yellow_)}if dup/Black eq 1 index(Black)eq or {pop(_black_)}if }def dup type/arraytype eq {[exch{filtername}forall]} {filtername}ifelse end }def level3{ /AGMCORE_IsCurrentColor { dup AGMCORE_IsSeparationAProcessColor { AGMCORE_plate_ndx 0 eq {dup(Cyan)eq exch/Cyan eq or}if AGMCORE_plate_ndx 1 eq {dup(Magenta)eq exch/Magenta eq or}if AGMCORE_plate_ndx 2 eq {dup(Yellow)eq exch/Yellow eq or}if AGMCORE_plate_ndx 3 eq {dup(Black)eq exch/Black eq or}if AGMCORE_plate_ndx 4 eq {pop false}if }{ gsave false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne grestore }ifelse }def /AGMCORE_filter_functiondatasource { 5 dict begin /data_in xdf data_in type/stringtype eq { /ncomp xdf /comp xdf /string_out data_in length ncomp idiv string def 0 ncomp data_in length 1 sub { string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put }for string_out }{ string/string_in xdf /string_out 1 string def /component xdf [ data_in string_in/readstring cvx [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx [/pop cvx()]cvx/ifelse cvx ]cvx/ReusableStreamDecode filter }ifelse end }def /AGMCORE_separateShadingFunction { 2 dict begin /paint? xdf /channel xdf dup type/dicttype eq { begin FunctionType 0 eq { /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def currentdict/Decode known {/Decode Decode channel 2 mul 2 getinterval def}if paint? not {/Decode[1 1]def}if }if FunctionType 2 eq { paint? { /C0[C0 channel get 1 exch sub]def /C1[C1 channel get 1 exch sub]def }{ /C0[1]def /C1[1]def }ifelse }if FunctionType 3 eq { /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def }if currentdict/Range known {/Range[0 1]def}if currentdict end}{ channel get 0 paint? AGMCORE_separateShadingFunction }ifelse end }def /AGMCORE_separateShading { 3 -1 roll begin currentdict/Function known { currentdict/Background known {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf /ColorSpace[/DeviceGray]def }{ ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }{ ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put }ifelse ColorSpace 0 get/Separation eq { { [1/exch cvx/sub cvx]cvx }{ [/pop cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll put pop }{ { [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx }{ pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll bind put }ifelse ColorSpace 2/DeviceGray put }ifelse end }def /AGMCORE_separateShadingDict { dup/ColorSpace get dup type/arraytype ne {[exch]}if dup 0 get/DeviceCMYK eq { exch begin currentdict AGMCORE_cyan_plate {0 true}if AGMCORE_magenta_plate {1 true}if AGMCORE_yellow_plate {2 true}if AGMCORE_black_plate {3 true}if AGMCORE_plate_ndx 4 eq {0 false}if dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading currentdict end exch }if dup 0 get/Separation eq { exch begin ColorSpace 1 get dup/None ne exch/All ne and { ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /Separation ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading }if }ifelse }{ currentdict ColorSpace 1 get AGMCORE_IsCurrentColor 0 exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse }if currentdict end exch }if dup 0 get/DeviceN eq { exch begin ColorSpace 1 get convert_to_process { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /DeviceN ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading /ColorSpace[/DeviceGray]def }if }ifelse }{ currentdict false -1 ColorSpace 1 get { AGMCORE_IsCurrentColor { 1 add exch pop true exch exit }if 1 add }forall exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse currentdict end exch }if dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not { exch begin ColorSpace dup type/arraytype eq {0 get}if /DeviceGray ne { AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { ColorSpace 0 get/CIEBasedA eq { /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def }if ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or { /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def }if ColorSpace 0 get/CIEBasedDEFG eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }if currentdict 0 false AGMCORE_separateShading }if }if currentdict end exch }if pop dup/AGMCORE_ignoreshade known { begin /ColorSpace[/Separation(None)/DeviceGray{}]def currentdict end }if }def /shfill { AGMCORE_separateShadingDict dup/AGMCORE_ignoreshade known {pop} {AGMCORE_&sysshfill}ifelse }def /makepattern { exch dup/PatternType get 2 eq { clonedict begin /Shading Shading AGMCORE_separateShadingDict def Shading/AGMCORE_ignoreshade known currentdict end exch {pop<>}if exch AGMCORE_&sysmakepattern }{ exch AGMCORE_&usrmakepattern }ifelse }def }if }if AGMCORE_in_rip_sep{ /setcustomcolor { exch aload pop dup 7 1 roll inRip_spot_has_ink not { 4{4 index mul 4 1 roll} repeat /DeviceCMYK setcolorspace 6 -2 roll pop pop }{ //Adobe_AGM_Core begin /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf end [/Separation 4 -1 roll/DeviceCMYK {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul} ] setcolorspace }ifelse setcolor }ndf /setseparationgray { [/Separation(All)/DeviceGray{}]setcolorspace_opt 1 exch sub setcolor }ndf }{ /setseparationgray { AGMCORE_&setgray }ndf }ifelse /findcmykcustomcolor { 5 makereadonlyarray }ndf /setcustomcolor { exch aload pop pop 4{4 index mul 4 1 roll}repeat setcmykcolor pop }ndf /has_color /colorimage where{ AGMCORE_producing_seps{ pop true }{ systemdict eq }ifelse }{ false }ifelse def /map_index { 1 index mul exch getinterval{255 div}forall }bdf /map_indexed_devn { Lookup Names length 3 -1 roll cvi map_index }bdf /n_color_components { base_colorspace_type dup/DeviceGray eq{ pop 1 }{ /DeviceCMYK eq{ 4 }{ 3 }ifelse }ifelse }bdf level2{ /mo/moveto ldf /li/lineto ldf /cv/curveto ldf /knockout_unitsq { 1 setgray 0 0 1 1 rectfill }def level2/setcolorspace AGMCORE_key_known not and{ /AGMCORE_&&&setcolorspace/setcolorspace ldf /AGMCORE_ReplaceMappedColor { dup type dup/arraytype eq exch/packedarraytype eq or { /AGMCORE_SpotAliasAry2 where{ begin dup 0 get dup/Separation eq { pop dup length array copy dup dup 1 get current_spot_alias { dup map_alias { false set_spot_alias dup 1 exch setsepcolorspace true set_spot_alias begin /sep_colorspace_dict currentdict AGMCORE_gput pop pop pop [ /Separation Name CSA map_csa MappedCSA /sep_colorspace_proc load ] dup Name end }if }if map_reserved_ink_name 1 xpt }{ /DeviceN eq { dup length array copy dup dup 1 get[ exch{ current_spot_alias{ dup map_alias{ /Name get exch pop }if }if map_reserved_ink_name }forall ]1 xpt }if }ifelse end }if }if }def /setcolorspace { dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/Indexed eq { AGMCORE_distilling { /PhotoshopDuotoneList where { pop false }{ true }ifelse }{ true }ifelse { aload pop 3 -1 roll AGMCORE_ReplaceMappedColor 3 1 roll 4 array astore }if }{ AGMCORE_ReplaceMappedColor }ifelse }if DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if }def }if }{ /adj { currentstrokeadjust{ transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform }if }def /mo{ adj moveto }def /li{ adj lineto }def /cv{ 6 2 roll adj 6 2 roll adj 6 2 roll adj curveto }def /knockout_unitsq { 1 setgray 8 8 1[8 0 0 8 0 0]{}image }def /currentstrokeadjust{ /currentstrokeadjust AGMCORE_gget }def /setstrokeadjust{ /currentstrokeadjust exch AGMCORE_gput }def /setcolorspace { /currentcolorspace exch AGMCORE_gput }def /currentcolorspace { /currentcolorspace AGMCORE_gget }def /setcolor_devicecolor { base_colorspace_type dup/DeviceGray eq{ pop setgray }{ /DeviceCMYK eq{ setcmykcolor }{ setrgbcolor }ifelse }ifelse }def /setcolor { currentcolorspace 0 get dup/DeviceGray ne{ dup/DeviceCMYK ne{ dup/DeviceRGB ne{ dup/Separation eq{ pop currentcolorspace 3 gx currentcolorspace 2 get }{ dup/Indexed eq{ pop currentcolorspace 3 get dup type/stringtype eq{ currentcolorspace 1 get n_color_components 3 -1 roll map_index }{ exec }ifelse currentcolorspace 1 get }{ /AGMCORE_cur_err/AGMCORE_invalid_color_space def AGMCORE_invalid_color_space }ifelse }ifelse }if }if }if setcolor_devicecolor }def }ifelse /sop/setoverprint ldf /lw/setlinewidth ldf /lc/setlinecap ldf /lj/setlinejoin ldf /ml/setmiterlimit ldf /dsh/setdash ldf /sadj/setstrokeadjust ldf /gry/setgray ldf /rgb/setrgbcolor ldf /cmyk[ /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx /setcmykcolor load dup type/operatortype ne{/exec cvx}if ]cvx bdf level3 AGMCORE_host_sep not and{ /nzopmsc{ 6 dict begin /kk exch def /yy exch def /mm exch def /cc exch def /sum 0 def cc 0 ne{/sum sum 2#1000 or def cc}if mm 0 ne{/sum sum 2#0100 or def mm}if yy 0 ne{/sum sum 2#0010 or def yy}if kk 0 ne{/sum sum 2#0001 or def kk}if AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace sum 0 eq{0}if end setcolor }bdf }{ /nzopmsc/cmyk ldf }ifelse /sep/setsepcolor ldf /devn/setdevicencolor ldf /idx/setindexedcolor ldf /colr/setcolor ldf /csacrd/set_csa_crd ldf /sepcs/setsepcolorspace ldf /devncs/setdevicencolorspace ldf /idxcs/setindexedcolorspace ldf /cp/closepath ldf /clp/clp_npth ldf /eclp/eoclp_npth ldf /f/fill ldf /ef/eofill ldf /@/stroke ldf /nclp/npth_clp ldf /gset/graphic_setup ldf /gcln/graphic_cleanup ldf /ct/concat ldf /cf/currentfile ldf /fl/filter ldf /rs/readstring ldf /AGMCORE_def_ht currenthalftone def /clonedict Adobe_AGM_Utils begin/clonedict load end def /clonearray Adobe_AGM_Utils begin/clonearray load end def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall /getrampcolor { /indx exch def 0 1 NumComp 1 sub { dup Samples exch get dup type/stringtype eq{indx get}if exch Scaling exch get aload pop 3 1 roll mul add }for ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /sssetbackground{ aload pop ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /RadialShade { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /r2 xdf /c2y xdf /c2x xdf /r1 xdf /c1y xdf /c1x xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if c1x c2x eq { c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope c2y c1y sub c2x c1x sub div def /theta slope 1 atan def c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if }ifelse gsave clippath c1x c1y translate theta rotate -90 rotate {pathbbox}stopped {0 0 0 0}if /yMax xdf /xMax xdf /yMin xdf /xMin xdf grestore xMax xMin eq yMax yMin eq or { grestore end }{ /max{2 copy gt{pop}{exch pop}ifelse}bdf /min{2 copy lt{pop}{exch pop}ifelse}bdf rampdict begin 40 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave c1x c1y translate theta rotate -90 rotate /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def /c1y 0 def /c1x 0 def /c2x 0 def ext0 { 0 getrampcolor c2y r2 add r1 sub 0.0001 lt { c1x c1y r1 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2y r1 add r2 le { c1x c1y r1 0 360 arc fill } { c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r1 neg def /p1y c1y def /p2x r1 def /p2y c1y def p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y p1x SS1 div neg def /SS2 90 theta sub dup sin exch cos div def /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y p2x SS2 div neg def r1 r2 gt { /L1maxX p1x yMin p1y sub SS1 div add def /L2maxX p2x yMin p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if c1x c2x sub dup mul c1y c2y sub dup mul add 0.5 exp 0 dtransform dup mul exch dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop /hires xdf hires mul /numpix xdf /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if /xInc c2x c1x sub numsteps div def /yInc c2y c1y sub numsteps div def /rInc r2 r1 sub numsteps div def /cx c1x def /cy c1y def /radius r1 def np xInc 0 eq yInc 0 eq rInc 0 eq and and { 0 getrampcolor cx cy radius 0 360 arc stroke NumSamples 1 sub getrampcolor cx cy radius 72 hires div add 0 360 arc 0 setlinewidth stroke }{ 0 numsteps { dup subsampling{round cvi}if getrampcolor cx cy radius 0 360 arc /cx cx xInc add def /cy cy yInc add def /radius radius rInc add def cx cy radius 360 0 arcn eofill rampIndxInc add }repeat pop }ifelse ext1 { c2y r2 add r1 lt { c2x c2y r2 0 360 arc fill }{ c2y r1 add r2 sub 0.0001 le { c2x c2y r2 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r2 neg def /p1y c2y def /p2x r2 def /p2y c2y def p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y c2y p1x SS1 div sub def /SS2 90 theta sub dup sin exch cos div def /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y c2y p2x SS2 div sub def r1 r2 lt { /L1maxX p1x yMax p1y sub SS1 div add def /L2maxX p2x yMax p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if grestore grestore end end end }ifelse }bdf /GenStrips { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /y2 xdf /x2 xdf /y1 xdf /x1 xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if x1 x2 eq { y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope y2 y1 sub x2 x1 sub div def /theta slope 1 atan def x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if } ifelse gsave clippath x1 y1 translate theta rotate {pathbbox}stopped {0 0 0 0}if /yMax exch def /xMax exch def /yMin exch def /xMin exch def grestore xMax xMin eq yMax yMin eq or { grestore end }{ rampdict begin 20 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave x1 y1 translate theta rotate /xStart 0 def /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def /ySpan yMax yMin sub def /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def xStart 0 transform xEnd 0 transform 3 -1 roll sub dup mul 3 1 roll sub dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop mul /numpix xdf numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if ext0 { 0 getrampcolor xMin xStart lt { xMin yMin xMin neg ySpan rectfill }if }if /xInc xEnd xStart sub numsteps div def /x xStart def 0 numsteps { dup subsampling{round cvi}if getrampcolor x yMin xInc ySpan rectfill /x x xInc add def rampIndxInc add }repeat pop ext1{ xMax xEnd gt { xEnd yMin xMax xEnd sub ySpan rectfill }if }if grestore grestore end end end }ifelse }bdf }def /pt { end }def /dt{ }def /pgsv{ //Adobe_AGM_Core/AGMCORE_save save put }def /pgrs{ //Adobe_AGM_Core/AGMCORE_save get restore }def systemdict/findcolorrendering known{ /findcolorrendering systemdict/findcolorrendering get def }if systemdict/setcolorrendering known{ /setcolorrendering systemdict/setcolorrendering get def }if /test_cmyk_color_plate { gsave setcmykcolor currentgray 1 ne grestore }def /inRip_spot_has_ink { dup//Adobe_AGM_Core/AGMCORE_name xddf convert_spot_to_process not }def /map255_to_range { 1 index sub 3 -1 roll 255 div mul add }def /set_csa_crd { /sep_colorspace_dict null AGMCORE_gput begin CSA get_csa_by_name setcolorspace_opt set_crd end } def /map_csa { currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse {pop}{get_csa_by_name/MappedCSA xdf}ifelse }def /setsepcolor { /sep_colorspace_dict AGMCORE_gget begin dup/sep_tint exch AGMCORE_gput TintProc end }def /setdevicencolor { /devicen_colorspace_dict AGMCORE_gget begin Names length copy Names length 1 sub -1 0 { /devicen_tints AGMCORE_gget 3 1 roll xpt }for TintProc end }def /sep_colorspace_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin currentdict/Components known{ Components aload pop TintMethod/Lab eq{ 2{AGMCORE_tmp mul NComponents 1 roll}repeat LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll }{ TintMethod/Subtractive eq{ NComponents{ AGMCORE_tmp mul NComponents 1 roll }repeat }{ NComponents{ 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll }repeat }ifelse }ifelse }{ ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get aload pop }ifelse end }def /sep_colorspace_gray_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get end }def /sep_proc_name { dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{ pop[/DeviceGray] /sep_colorspace_gray_proc }{ /sep_colorspace_proc }ifelse }def /setsepcolorspace { current_spot_alias{ dup begin Name map_alias{ exch pop }if end }if dup/sep_colorspace_dict exch AGMCORE_gput begin CSA map_csa /AGMCORE_sep_special Name dup()eq exch(All)eq or store AGMCORE_avoid_L2_sep_space{ [/Indexed MappedCSA sep_proc_name 255 exch {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx ]setcolorspace_opt /TintProc{ 255 mul round cvi setcolor }bdf }{ MappedCSA 0 get/DeviceCMYK eq currentdict/Components known and AGMCORE_sep_special not and{ /TintProc[ Components aload pop Name findcmykcustomcolor /exch cvx/setcustomcolor cvx ]cvx bdf }{ AGMCORE_host_sep Name(All)eq and{ /TintProc{ 1 exch sub setseparationgray }bdf }{ AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and AGMCORE_host_sep or Name()eq and{ /TintProc[ MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{ cvx/setcmykcolor cvx }{ cvx/setgray cvx }ifelse ]cvx bdf }{ AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{ /TintProc[ /dup cvx MappedCSA sep_proc_name cvx exch 0 get/DeviceGray eq{ 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx }if /Name cvx/findcmykcustomcolor cvx/exch cvx AGMCORE_host_sep{ AGMCORE_is_cmyk_sep /Name cvx /AGMCORE_IsSeparationAProcessColor load/exec cvx /not cvx/and cvx }{ Name inRip_spot_has_ink not }ifelse [ /pop cvx 1 ]cvx/if cvx /setcustomcolor cvx ]cvx bdf }{ /TintProc{setcolor}bdf [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt }ifelse }ifelse }ifelse }ifelse }ifelse set_crd setsepcolor end }def /additive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 0 1 numarrays 1 sub { 1 exch add/index cvx c1/get cvx/mul cvx }for numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /subtractive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 1 0 1 numarrays 1 sub { 1 3 3 -1 roll add/index cvx c1/get cvx/sub cvx/mul cvx }for /sub cvx numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /exec_tint_transform { /TintProc[ /TintTransform cvx/setcolor cvx ]cvx bdf MappedCSA setcolorspace_opt }bdf /devn_makecustomcolor { 2 dict begin /names_index xdf /Names xdf 1 1 1 1 Names names_index get findcmykcustomcolor /devicen_tints AGMCORE_gget names_index get setcustomcolor Names length{pop}repeat end }bdf /setdevicencolorspace { dup/AliasedColorants known{false}{true}ifelse current_spot_alias and{ 7 dict begin /names_index 0 def dup/names_len exch/Names get length def /new_names names_len array def /new_LookupTables names_len array def /alias_cnt 0 def dup/Names get { dup map_alias{ exch pop dup/ColorLookup known{ dup begin new_LookupTables names_index ColorLookup put end }{ dup/Components known{ dup begin new_LookupTables names_index Components put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse new_names names_index 3 -1 roll/Name get put /alias_cnt alias_cnt 1 add def }{ /name xdf new_names names_index name put dup/LookupTables known{ dup begin new_LookupTables names_index LookupTables names_index get put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse /names_index names_index 1 add def }forall alias_cnt 0 gt{ /AliasedColorants true def /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def 0 1 names_len 1 sub{ /names_index xdf new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{ /AliasedColorants false def exit }{ new_LookupTables names_index get 0 get null eq{ dup/Names get names_index get/name xdf name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq or or or not{ /AliasedColorants false def exit }if }if }ifelse }for lut_entry_len 1 eq{ /AliasedColorants false def }if AliasedColorants{ dup begin /Names new_names def /LookupTables new_LookupTables def /AliasedColorants true def /NComponents lut_entry_len def /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def currentdict/TTTablesIdx known not{ /TTTablesIdx -1 def }if end }if }if end }if dup/devicen_colorspace_dict exch AGMCORE_gput begin currentdict/AliasedColorants known{ AliasedColorants }{ false }ifelse dup not{ CSA map_csa }if /TintTransform load type/nulltype eq or{ /TintTransform[ 0 1 Names length 1 sub { /TTTablesIdx TTTablesIdx 1 add def dup LookupTables exch get dup 0 get null eq { 1 index Names exch get dup(Cyan)eq { pop exch LookupTables length exch sub /index cvx 0 0 0 } { dup(Magenta)eq { pop exch LookupTables length exch sub /index cvx 0/exch cvx 0 0 }{ (Yellow)eq { exch LookupTables length exch sub /index cvx 0 0 3 -1/roll cvx 0 }{ exch LookupTables length exch sub /index cvx 0 0 0 4 -1/roll cvx }ifelse }ifelse }ifelse 5 -1/roll cvx/astore cvx }{ dup length 1 sub LookupTables length 4 -1 roll sub 1 add /index cvx/mul cvx/round cvx/cvi cvx/get cvx }ifelse Names length TTTablesIdx add 1 add 1/roll cvx }for Names length[/pop cvx]cvx/repeat cvx NComponents Names length TintMethod/Subtractive eq { subtractive_blend }{ additive_blend }ifelse ]cvx bdf }if AGMCORE_host_sep{ Names convert_to_process{ exec_tint_transform } { currentdict/AliasedColorants known{ AliasedColorants not }{ false }ifelse 5 dict begin /AvoidAliasedColorants xdf /painted? false def /names_index 0 def /names_len Names length def AvoidAliasedColorants{ /currentspotalias current_spot_alias def false set_spot_alias }if Names{ AGMCORE_is_cmyk_sep{ dup(Cyan)eq AGMCORE_cyan_plate and exch dup(Magenta)eq AGMCORE_magenta_plate and exch dup(Yellow)eq AGMCORE_yellow_plate and exch (Black)eq AGMCORE_black_plate and or or or{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def }if painted?{exit}if }{ 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def exit }if }ifelse /names_index names_index 1 add def }forall AvoidAliasedColorants{ currentspotalias set_spot_alias }if painted?{ /devicen_colorspace_dict AGMCORE_gget/names_index names_index put }{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx 0 0 0 0/setcmykcolor cvx ]cvx ddf }ifelse end }ifelse } { AGMCORE_in_rip_sep{ Names convert_to_process not }{ level3 }ifelse { [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt /TintProc level3 not AGMCORE_in_rip_sep and{ [ Names/length cvx[/pop cvx]cvx/repeat cvx ]cvx bdf }{ {setcolor}bdf }ifelse }{ exec_tint_transform }ifelse }ifelse set_crd /AliasedColorants false def end }def /setindexedcolorspace { dup/indexed_colorspace_dict exch AGMCORE_gput begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ currentdict devncs }{ 1 currentdict sepcs }ifelse AGMCORE_host_sep{ 4 dict begin /compCnt/Names where{pop Names length}{1}ifelse def /NewLookup HiVal 1 add string def 0 1 HiVal{ /tableIndex xdf Lookup dup type/stringtype eq{ compCnt tableIndex map_index }{ exec }ifelse /Names where{ pop setdevicencolor }{ setsepcolor }ifelse currentgray tableIndex exch 255 mul cvi NewLookup 3 1 roll put }for [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt end }{ level3 { currentdict/Names known{ [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt }{ [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt }ifelse }{ [/Indexed MappedCSA HiVal [ currentdict/Names known{ Lookup dup type/stringtype eq {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx} {/exec cvx}ifelse /TintTransform load/exec cvx }{ Lookup dup type/stringtype eq {/exch cvx/get cvx 255/div cvx} {/exec cvx}ifelse CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx }ifelse ]cvx ]setcolorspace_opt }ifelse }ifelse end set_crd } { CSA map_csa AGMCORE_host_sep level2 not and{ 0 0 0 0 setcmykcolor }{ [/Indexed MappedCSA level2 not has_color not and{ dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{ pop[/DeviceGray] }if HiVal GrayLookup }{ HiVal currentdict/RangeArray known{ { /indexed_colorspace_dict AGMCORE_gget begin Lookup exch dup HiVal gt{ pop HiVal }if NComponents mul NComponents getinterval{}forall NComponents 1 sub -1 0{ RangeArray exch 2 mul 2 getinterval aload pop map255_to_range NComponents 1 roll }for end }bind }{ Lookup }ifelse }ifelse ]setcolorspace_opt set_crd }ifelse }ifelse end }def /setindexedcolor { AGMCORE_host_sep{ /indexed_colorspace_dict AGMCORE_gget begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ map_indexed_devn devn } { Lookup 1 3 -1 roll map_index sep }ifelse end }{ Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll map_index MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse }ifelse end }{ level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{ /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin map_indexed_devn devn end } { setcolor }ifelse }ifelse }def /ignoreimagedata { currentoverprint not{ gsave dup clonedict begin 1 setgray /Decode[0 1]def /DataSourcedef /MultipleDataSources false def /BitsPerComponent 8 def currentdict end systemdict/image gx grestore }if consumeimagedata }def /add_res { dup/CSD eq{ pop //Adobe_AGM_Core begin /AGMCORE_CSD_cache load 3 1 roll put end }{ defineresource pop }ifelse }def /del_res { { aload pop exch dup/CSD eq{ pop {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall }{ exch {1 index undefineresource}forall pop }ifelse }forall }def /get_res { dup/CSD eq{ pop dup type dup/nametype eq exch/stringtype eq or{ AGMCORE_CSD_cache exch get }if }{ findresource }ifelse }def /get_csa_by_name { dup type dup/nametype eq exch/stringtype eq or{ /CSA get_res }if }def /paintproc_buf_init { /count get 0 0 put }def /paintproc_buf_next { dup/count get dup 0 get dup 3 1 roll 1 add 0 xpt get }def /cachepaintproc_compress { 5 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def /string_size 16000 def /readbuffer string_size string def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal /LZWFilter { exch dup length 0 eq{ pop }{ ppdict dup length 1 sub 3 -1 roll put }ifelse {string_size}{0}ifelse string }/LZWEncode filter def { ReadFilter readbuffer readstring exch LZWFilter exch writestring not{exit}if }loop LZWFilter closefile ppdict end }def /cachepaintproc { 2 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal { ReadFilter 16000 string readstring exch ppdict dup length 1 sub 3 -1 roll put not{exit}if }loop ppdict dup dup length 1 sub()put end }def /make_pattern { exch clonedict exch dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub matrix translate exch matrix concatmatrix 1 index begin BBox 0 get XStep div cvi XStep mul/xshift exch neg def BBox 1 get YStep div cvi YStep mul/yshift exch neg def BBox 0 get xshift add BBox 1 get yshift add BBox 2 get xshift add BBox 3 get yshift add 4 array astore /BBox exch def [xshift yshift/translate load null/exec load]dup 3/PaintProc load put cvx/PaintProc exch def end gsave 0 setgray makepattern grestore }def /set_pattern { dup/PatternType get 1 eq{ dup/PaintType get 1 eq{ currentoverprint sop[/DeviceGray]setcolorspace 0 setgray }if }if setpattern }def /setcolorspace_opt { dup currentcolorspace eq{pop}{setcolorspace}ifelse }def /updatecolorrendering { currentcolorrendering/RenderingIntent known{ currentcolorrendering/RenderingIntent get } { Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd AGMCORE_gget dup null eq } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd AGMCORE_gget dup null eq } { Intent/Saturation eq { /saturation_crd AGMCORE_gget dup null eq } { /perceptual_crd AGMCORE_gget dup null eq }ifelse }ifelse }ifelse { pop null } { /RenderingIntent known{null}{Intent}ifelse }ifelse }ifelse Intent ne{ Intent/ColorRendering{findresource}stopped { pop pop systemdict/findcolorrendering known { Intent findcolorrendering { /ColorRendering findresource true exch } { /ColorRendering findresource product(Xerox Phaser 5400)ne exch }ifelse dup Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd exch AGMCORE_gput } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd exch AGMCORE_gput } { Intent/Saturation eq { /saturation_crd exch AGMCORE_gput } { Intent/Perceptual eq { /perceptual_crd exch AGMCORE_gput } { pop }ifelse }ifelse }ifelse }ifelse 1 index{exch}{pop}ifelse } {false}ifelse } {true}ifelse { dup begin currentdict/TransformPQR known{ currentdict/TransformPQR get aload pop 3{{}eq 3 1 roll}repeat or or } {true}ifelse currentdict/MatrixPQR known{ currentdict/MatrixPQR get aload pop 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq and and and and and and and and } {true}ifelse end or { clonedict begin /TransformPQR[ {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind ]def /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def currentdict end }if setcolorrendering_opt }if }if }def /set_crd { AGMCORE_host_sep not level2 and{ currentdict/ColorRendering known{ ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if }{ currentdict/Intent known{ updatecolorrendering }if }ifelse currentcolorspace dup type/arraytype eq {0 get}if /DeviceRGB eq { currentdict/UCR known {/UCR}{/AGMCORE_currentucr}ifelse load setundercolorremoval currentdict/BG known {/BG}{/AGMCORE_currentbg}ifelse load setblackgeneration }if }if }def /set_ucrbg { dup null eq{pop/AGMCORE_currentbg load}{/Procedure get_res}ifelse setblackgeneration dup null eq{pop/AGMCORE_currentucr load}{/Procedure get_res}ifelse setundercolorremoval }def /setcolorrendering_opt { dup currentcolorrendering eq{ pop }{ product(HP Color LaserJet 2605)anchorsearch{ pop pop pop }{ pop clonedict begin /Intent Intent def currentdict end setcolorrendering }ifelse }ifelse }def /cpaint_gcomp { convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not { (%end_cpaint_gcomp)flushinput }if }def /cpaint_gsep { //Adobe_AGM_Core/AGMCORE_ConvertToProcess get { (%end_cpaint_gsep)flushinput }if }def /cpaint_gend {np}def /T1_path { currentfile token pop currentfile token pop mo { currentfile token pop dup type/stringtype eq {pop exit}if 0 exch rlineto currentfile token pop dup type/stringtype eq {pop exit}if 0 rlineto }loop }def /T1_gsave level3 {/clipsave} {/gsave}ifelse load def /T1_grestore level3 {/cliprestore} {/grestore}ifelse load def /set_spot_alias_ary { dup inherit_aliases //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf }def /set_spot_normalization_ary { dup inherit_aliases dup length /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if array //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf /AGMCORE_SpotAliasAry where{ pop AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval AGMCORE_SpotAliasAry length }{0}ifelse AGMCORE_SpotAliasAry2 3 1 roll exch putinterval true set_spot_alias }def /inherit_aliases { {dup/Name get map_alias{/CSD put}{pop}ifelse}forall }def /set_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias 3 -1 roll put }{ pop }ifelse }def /current_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias get }{ false }ifelse }def /map_alias { /AGMCORE_SpotAliasAry2 where{ begin /AGMCORE_name xdf false AGMCORE_SpotAliasAry2{ dup/Name get AGMCORE_name eq{ /CSD get/CSD get_res exch pop true exit }{ pop }ifelse }forall end }{ pop false }ifelse }bdf /spot_alias { true set_spot_alias /AGMCORE_&setcustomcolor AGMCORE_key_known not{ //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put }if /customcolor_tint 1 AGMCORE_gput //Adobe_AGM_Core begin /setcustomcolor { //Adobe_AGM_Core begin dup/customcolor_tint exch AGMCORE_gput 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not current_spot_alias and{1 index 4 get map_alias}{false}ifelse { false set_spot_alias /sep_colorspace_dict AGMCORE_gget null ne {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse 3 1 roll 2 index{ exch pop/sep_tint AGMCORE_gget exch }if mark 3 1 roll setsepcolorspace counttomark 0 ne{ setsepcolor }if pop not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if pop true set_spot_alias }{ AGMCORE_&setcustomcolor }ifelse end }bdf end }def /begin_feature { Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if }def /end_feature { 2 dict begin /spd/setpagedevice load def /setpagedevice{get_gstate spd set_gstate}def stopped{$error/newerror false put}if end count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if }def /set_negative { //Adobe_AGM_Core begin /AGMCORE_inverting exch def level2{ currentpagedevice/NegativePrint known AGMCORE_distilling not and{ currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{ true begin_feature true{ <>setpagedevice }end_feature }if /AGMCORE_inverting false def }if }if AGMCORE_inverting{ [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer AGMCORE_distilling{ erasepage }{ gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore }ifelse }if end }def /lw_save_restore_override{ /md where{ pop md begin initializepage /initializepage{}def /pmSVsetup{}def /endp{}def /pse{}def /psb{}def /orig_showpage where {pop} {/orig_showpage/showpage load def} ifelse /showpage{orig_showpage gR}def end }if }def /pscript_showpage_override{ /NTPSOct95 where { begin showpage save /showpage/restore load def /restore{exch pop}def end }if }def /driver_media_override { /md where{ pop md/initializepage known{ md/initializepage{}put }if md/rC known{ md/rC{4{pop}repeat}put }if }if /mysetup where{ /mysetup[1 0 0 1 0 0]put }if Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put level2 {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if }def /capture_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put }if }if }def /restore_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup known{ Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put Adobe_AGM_Core/save_mysetup undef }if }if }if }def /driver_check_media_override { /PrepsDict where {pop} { Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq { Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and }if { Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix }if }ifelse }def AGMCORE_err_strings begin /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def /AGMCORE_invalid_color_space(This job contains an invalid color space. )def end /set_def_ht {AGMCORE_def_ht sethalftone}def /set_def_flat {AGMCORE_Default_flatness setflat}def end systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_CoolType_Core 2.31 0 %%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved. %%Version: 2.31 0 10 dict begin /Adobe_CoolType_Passthru currentdict def /Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def Adobe_CoolType_Core_Defined {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def} if userdict/Adobe_CoolType_Core 70 dict dup begin put /Adobe_CoolType_Version 2.31 def /Level2? systemdict/languagelevel known dup {pop systemdict/languagelevel get 2 ge} if def Level2? not { /currentglobal false def /setglobal/pop load def /gcheck{pop false}bind def /currentpacking false def /setpacking/pop load def /SharedFontDirectory 0 dict def } if currentpacking true setpacking currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def end setglobal currentglobal true setglobal userdict/Adobe_CoolType_GVMFonts known not {userdict/Adobe_CoolType_GVMFonts 10 dict put} if setglobal currentglobal false setglobal userdict/Adobe_CoolType_LVMFonts known not {userdict/Adobe_CoolType_LVMFonts 10 dict put} if setglobal /ct_VMDictPut { dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse 3 1 roll put }bind def /ct_VMDictUndef { dup Adobe_CoolType_GVMFonts exch known {Adobe_CoolType_GVMFonts exch undef} { dup Adobe_CoolType_LVMFonts exch known {Adobe_CoolType_LVMFonts exch undef} {pop} ifelse }ifelse }bind def /ct_str1 1 string def /ct_xshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_yshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 exch rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_xyshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { {_ct_na _ct_i 1 add get}stopped {pop pop pop} { _ct_x _ct_y moveto rmoveto } ifelse } ifelse /_ct_i _ct_i 2 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def /ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def /xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def currentglobal true setglobal /ct_T3Defs { /BuildChar { 1 index/Encoding get exch get 1 index/BuildGlyph get exec }bind def /BuildGlyph { exch begin GlyphProcs exch get exec end }bind def }bind def setglobal /@_SaveStackLevels { Adobe_CoolType_Data begin /@vmState currentglobal def false setglobal @opStackCountByLevel @opStackLevel 2 copy known not { 2 copy 3 dict dup/args 7 index 5 add array put put get } { get dup/args get dup length 3 index lt { dup length 5 add array exch 1 index exch 0 exch putinterval 1 index exch/args exch put } {pop} ifelse } ifelse begin count 1 sub 1 index lt {pop count} if dup/argCount exch def dup 0 gt { args exch 0 exch getinterval astore pop } {pop} ifelse count /restCount exch def end /@opStackLevel @opStackLevel 1 add def countdictstack 1 sub @dictStackCountByLevel exch @dictStackLevel exch put /@dictStackLevel @dictStackLevel 1 add def @vmState setglobal end }bind def /@_RestoreStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def @opStackCountByLevel @opStackLevel get begin count restCount sub dup 0 gt {{pop}repeat} {pop} ifelse args 0 argCount getinterval{}forall end /@dictStackLevel @dictStackLevel 1 sub def @dictStackCountByLevel @dictStackLevel get end countdictstack exch sub dup 0 gt {{end}repeat} {pop} ifelse }bind def /@_PopStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def /@dictStackLevel @dictStackLevel 1 sub def end }bind def /@Raise { exch cvx exch errordict exch get exec stop }bind def /@ReRaise { cvx $error/errorname get errordict exch get exec stop }bind def /@Stopped { 0 @#Stopped }bind def /@#Stopped { @_SaveStackLevels stopped {@_RestoreStackLevels true} {@_PopStackLevels false} ifelse }bind def /@Arg { Adobe_CoolType_Data begin @opStackCountByLevel @opStackLevel 1 sub get begin args exch argCount 1 sub exch sub get end end }bind def currentglobal true setglobal /CTHasResourceForAllBug Level2? { 1 dict dup /@shouldNotDisappearDictValue true def Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put begin count @_SaveStackLevels {(*){pop stop}128 string/Category resourceforall} stopped pop @_RestoreStackLevels currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll { /@shouldNotDisappearDictValue known { { end currentdict 1 index eq {pop exit} if } loop } if } { pop end } ifelse } {false} ifelse def true setglobal /CTHasResourceStatusBug Level2? { mark {/steveamerige/Category resourcestatus} stopped {cleartomark true} {cleartomark currentglobal not} ifelse } {false} ifelse def setglobal /CTResourceStatus { mark 3 1 roll /Category findresource begin ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse end }bind def /CTWorkAroundBugs { Level2? { /cid_PreLoad/ProcSet resourcestatus { pop pop currentglobal mark { (*) { dup/CMap CTHasResourceStatusBug {CTResourceStatus} {resourcestatus} ifelse { pop dup 0 eq exch 1 eq or { dup/CMap findresource gcheck setglobal /CMap undefineresource } { pop CTHasResourceForAllBug {exit} {stop} ifelse } ifelse } {pop} ifelse } 128 string/CMap resourceforall } stopped {cleartomark} stopped pop setglobal } if } if }bind def /ds { Adobe_CoolType_Core begin CTWorkAroundBugs /mo/moveto load def /nf/newencodedfont load def /msf{makefont setfont}bind def /uf{dup undefinefont ct_VMDictUndef}bind def /ur/undefineresource load def /chp/charpath load def /awsh/awidthshow load def /wsh/widthshow load def /ash/ashow load def /@xshow/xshow load def /@yshow/yshow load def /@xyshow/xyshow load def /@cshow/cshow load def /sh/show load def /rp/repeat load def /.n/.notdef def end currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /AddWidths? false def /CC 0 def /charcode 2 string def /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def /InVMFontsByCMap 10 dict def /InVMDeepCopiedFonts 10 dict def end setglobal }bind def /dt { currentdict Adobe_CoolType_Core eq {end} if }bind def /ps { Adobe_CoolType_Core begin Adobe_CoolType_GVMFonts begin Adobe_CoolType_LVMFonts begin SharedFontDirectory begin }bind def /pt { end end end end }bind def /unload { systemdict/languagelevel known { systemdict/languagelevel get 2 ge { userdict/Adobe_CoolType_Core 2 copy known {undef} {pop pop} ifelse } if } if }bind def /ndf { 1 index where {pop pop pop} {dup xcheck{bind}if def} ifelse }def /findfont systemdict begin userdict begin /globaldict where{/globaldict get begin}if dup where pop exch get /globaldict where{pop end}if end end Adobe_CoolType_Core_Defined {/systemfindfont exch def} { /findfont 1 index def /systemfindfont exch def } ifelse /undefinefont {pop}ndf /copyfont { currentglobal 3 1 roll 1 index gcheck setglobal dup null eq{0}{dup length}ifelse 2 index length add 1 add dict begin exch { 1 index/FID eq {pop pop} {def} ifelse } forall dup null eq {pop} {{def}forall} ifelse currentdict end exch setglobal }bind def /copyarray { currentglobal exch dup gcheck setglobal dup length array copy exch setglobal }bind def /newencodedfont { currentglobal { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } { FontDirectory 3 index known {FontDirectory 3 index get/FontReferenced known} { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } ifelse } ifelse dup { 3 index findfont/FontReferenced get 2 index dup type/nametype eq {findfont} if ne {pop false} if } if dup { 1 index dup type/nametype eq {findfont} if dup/CharStrings known { /CharStrings get length 4 index findfont/CharStrings get length ne { pop false } if } {pop} ifelse } if { pop 1 index findfont /Encoding get exch 0 1 255 {2 copy get 3 index 3 1 roll put} for pop pop pop } { currentglobal 4 1 roll dup type/nametype eq {findfont} if dup gcheck setglobal dup dup maxlength 2 add dict begin exch { 1 index/FID ne 2 index/Encoding ne and {def} {pop pop} ifelse } forall /FontReferenced exch def /Encoding exch dup length array copy def /FontName 1 index dup type/stringtype eq{cvn}if def dup currentdict end definefont ct_VMDictPut setglobal } ifelse }bind def /SetSubstituteStrategy { $SubstituteFont begin dup type/dicttype ne {0 dict} if currentdict/$Strategies known { exch $Strategies exch 2 copy known { get 2 copy maxlength exch maxlength add dict begin {def}forall {def}forall currentdict dup/$Init known {dup/$Init get exec} if end /$Strategy exch def } {pop pop pop} ifelse } {pop pop} ifelse end }bind def /scff { $SubstituteFont begin dup type/stringtype eq {dup length exch} {null} ifelse /$sname exch def /$slen exch def /$inVMIndex $sname null eq { 1 index $str cvs dup length $slen sub $slen getinterval cvn } {$sname} ifelse def end {findfont} @Stopped { dup length 8 add string exch 1 index 0(BadFont:)putinterval 1 index exch 8 exch dup length string cvs putinterval cvn {findfont} @Stopped {pop/Courier findfont} if } if $SubstituteFont begin /$sname null def /$slen 0 def /$inVMIndex null def end }bind def /isWidthsOnlyFont { dup/WidthsOnly known {pop pop true} { dup/FDepVector known {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall} { dup/FDArray known {/FDArray get{isWidthsOnlyFont dup{exit}if}forall} {pop} ifelse } ifelse } ifelse }bind def /ct_StyleDicts 4 dict dup begin /Adobe-Japan1 4 dict dup begin Level2? { /Serif /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMin-W3} { /CIDFont/Category resourcestatus { pop pop /HeiseiMin-W3/CIDFont resourcestatus {pop pop/HeiseiMin-W3} {/Ryumin-Light} ifelse } {/Ryumin-Light} ifelse } ifelse def /SansSerif /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiKakuGo-W5} { /CIDFont/Category resourcestatus { pop pop /HeiseiKakuGo-W5/CIDFont resourcestatus {pop pop/HeiseiKakuGo-W5} {/GothicBBB-Medium} ifelse } {/GothicBBB-Medium} ifelse } ifelse def /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMaruGo-W4} { /CIDFont/Category resourcestatus { pop pop /HeiseiMaruGo-W4/CIDFont resourcestatus {pop pop/HeiseiMaruGo-W4} { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } ifelse /RoundSansSerif exch def /Default Serif def } { /Serif/Ryumin-Light def /SansSerif/GothicBBB-Medium def { (fonts/Jun101-Light-83pv-RKSJ-H)status }stopped {pop}{ {pop pop pop pop/Jun101-Light} {SansSerif} ifelse /RoundSansSerif exch def }ifelse /Default Serif def } ifelse end def /Adobe-Korea1 4 dict dup begin /Serif/HYSMyeongJo-Medium def /SansSerif/HYGoThic-Medium def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-GB1 4 dict dup begin /Serif/STSong-Light def /SansSerif/STHeiti-Regular def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-CNS1 4 dict dup begin /Serif/MKai-Medium def /SansSerif/MHei-Medium def /RoundSansSerif SansSerif def /Default Serif def end def end def Level2?{currentglobal true setglobal}if /ct_BoldRomanWidthProc { stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth 0 0 }bind def /ct_Type0WidthProc { dup stringwidth 0 0 moveto 2 index true charpath pathbbox 0 -1 7 index 2 div .88 setcachedevice2 pop 0 0 }bind def /ct_Type0WMode1WidthProc { dup stringwidth pop 2 div neg -0.88 2 copy moveto 0 -1 5 -1 roll true charpath pathbbox setcachedevice }bind def /cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_BoldBaseFont 11 dict begin /FontType 3 def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /Encoding cHexEncoding def /_setwidthProc/ct_BoldRomanWidthProc load def /_bcstr1 1 string def /BuildChar { exch begin _basefont setfont _bcstr1 dup 0 4 -1 roll put dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def systemdict/composefont known { /ct_DefineIdentity-H { /Identity-H/CMap resourcestatus { pop pop } { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse } def /ct_BoldBaseCIDFont 11 dict begin /CIDFontType 1 def /CIDFontName/ct_BoldBaseCIDFont def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /_setwidthProc/ct_Type0WidthProc load def /_bcstr2 2 string def /BuildGlyph { exch begin _basefont setfont _bcstr2 1 2 index 256 mod put _bcstr2 0 3 -1 roll 256 idiv put _bcstr2 dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def }if Level2?{setglobal}if /ct_CopyFont{ { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall }bind def /ct_Type0CopyFont { exch dup length dict begin ct_CopyFont [ exch FDepVector { dup/FontType get 0 eq { 1 index ct_Type0CopyFont /_ctType0 exch definefont } { /_ctBaseFont exch 2 index exec } ifelse exch } forall pop ] /FDepVector exch def currentdict end }bind def /ct_MakeBoldFont { dup/ct_SyntheticBold known { dup length 3 add dict begin ct_CopyFont /ct_StrokeWidth .03 0 FontMatrix idtransform pop def /ct_SyntheticBold true def currentdict end definefont } { dup dup length 3 add dict begin ct_CopyFont /PaintType 2 def /StrokeWidth .03 0 FontMatrix idtransform pop def /dummybold currentdict end definefont dup/FontType get dup 9 ge exch 11 le and { ct_BoldBaseCIDFont dup length 3 add dict copy begin dup/CIDSystemInfo get/CIDSystemInfo exch def ct_DefineIdentity-H /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefont exch def /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefonto exch def currentdict end /CIDFont defineresource } { ct_BoldBaseFont dup length 3 add dict copy begin /_basefont exch def /_basefonto exch def currentdict end definefont } ifelse } ifelse }bind def /ct_MakeBold{ 1 index 1 index findfont currentglobal 5 1 roll dup gcheck setglobal dup /FontType get 0 eq { dup/WMode known{dup/WMode get 1 eq}{false}ifelse version length 4 ge and {version 0 4 getinterval cvi 2015 ge} {true} ifelse {/ct_Type0WidthProc} {/ct_Type0WMode1WidthProc} ifelse ct_BoldBaseFont/_setwidthProc 3 -1 roll load put {ct_MakeBoldFont}ct_Type0CopyFont definefont } { dup/_fauxfont known not 1 index/SubstMaster known not and { ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put ct_MakeBoldFont } { 2 index 2 index eq {exch pop } { dup length dict begin ct_CopyFont currentdict end definefont } ifelse } ifelse } ifelse pop pop pop setglobal }bind def /?str1 256 string def /?set { $SubstituteFont begin /$substituteFound false def /$fontname 1 index def /$doSmartSub false def end dup findfont $SubstituteFont begin $substituteFound {false} { dup/FontName known { dup/FontName get $fontname eq 1 index/DistillerFauxFont known not and /currentdistillerparams where {pop false 2 index isWidthsOnlyFont not and} if } {false} ifelse } ifelse exch pop /$doSmartSub true def end { 5 1 roll pop pop pop pop findfont } { 1 index findfont dup/FontType get 3 eq { 6 1 roll pop pop pop pop pop false } {pop true} ifelse { $SubstituteFont begin pop pop /$styleArray 1 index def /$regOrdering 2 index def pop pop 0 1 $styleArray length 1 sub { $styleArray exch get ct_StyleDicts $regOrdering 2 copy known { get exch 2 copy known not {pop/Default} if get dup type/nametype eq { ?str1 cvs length dup 1 add exch ?str1 exch(-)putinterval exch dup length exch ?str1 exch 3 index exch putinterval add ?str1 exch 0 exch getinterval cvn } { pop pop/Unknown } ifelse } { pop pop pop pop/Unknown } ifelse } for end findfont }if } ifelse currentglobal false setglobal 3 1 roll null copyfont definefont pop setglobal }bind def setpacking userdict/$SubstituteFont 25 dict put 1 dict begin /SubstituteFont dup $error exch 2 copy known {get} {pop pop{pop/Courier}bind} ifelse def /currentdistillerparams where dup { pop pop currentdistillerparams/CannotEmbedFontPolicy 2 copy known {get/Error eq} {pop pop false} ifelse } if not { countdictstack array dictstack 0 get begin userdict begin $SubstituteFont begin /$str 128 string def /$fontpat 128 string def /$slen 0 def /$sname null def /$match false def /$fontname null def /$substituteFound false def /$inVMIndex null def /$doSmartSub true def /$depth 0 def /$fontname null def /$italicangle 26.5 def /$dstack null def /$Strategies 10 dict dup begin /$Type3Underprint { currentglobal exch false setglobal 11 dict begin /UseFont exch $WMode 0 ne { dup length dict copy dup/WMode $WMode put /UseFont exch definefont } if def /FontName $fontname dup type/stringtype eq{cvn}if def /FontType 3 def /FontMatrix[.001 0 0 .001 0 0]def /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def /FontBBox[0 0 0 0]def /CCInfo 7 dict dup begin /cc null def /x 0 def /y 0 def end def /BuildChar { exch begin CCInfo begin 1 string dup 0 3 index put exch pop /cc exch def UseFont 1000 scalefont setfont cc stringwidth/y exch def/x exch def x y setcharwidth $SubstituteFont/$Strategy get/$Underprint get exec 0 0 moveto cc show x y moveto end end }bind def currentdict end exch setglobal }bind def /$GetaTint 2 dict dup begin /$BuildFont { dup/WMode known {dup/WMode get} {0} ifelse /$WMode exch def $fontname exch dup/FontName known { dup/FontName get dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse exch Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index/FontName get known { pop Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index get null copyfont } {$deepcopyfont} ifelse exch 1 index exch/FontBasedOn exch put dup/FontName $fontname dup type/stringtype eq{cvn}if put definefont Adobe_CoolType_Data/InVMDeepCopiedFonts get begin dup/FontBasedOn get 1 index def end }bind def /$Underprint { gsave x abs y abs gt {/y 1000 def} {/x -1000 def 500 120 translate} ifelse Level2? { [/Separation(All)/DeviceCMYK{0 0 0 1 pop}] setcolorspace } {0 setgray} ifelse 10 setlinewidth x .8 mul [7 3] { y mul 8 div 120 sub x 10 div exch moveto 0 y 4 div neg rlineto dup 0 rlineto 0 y 4 div rlineto closepath gsave Level2? {.2 setcolor} {.8 setgray} ifelse fill grestore stroke } forall pop grestore }bind def end def /$Oblique 1 dict dup begin /$BuildFont { currentglobal exch dup gcheck setglobal null copyfont begin /FontBasedOn currentdict/FontName known { FontName dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse def /FontName $fontname dup type/stringtype eq{cvn}if def /currentdistillerparams where {pop} { /FontInfo currentdict/FontInfo known {FontInfo null copyfont} {2 dict} ifelse dup begin /ItalicAngle $italicangle def /FontMatrix FontMatrix [1 0 ItalicAngle dup sin exch cos div 1 0 0] matrix concatmatrix readonly end 4 2 roll def def } ifelse FontName currentdict end definefont exch setglobal }bind def end def /$None 1 dict dup begin /$BuildFont{}bind def end def end def /$Oblique SetSubstituteStrategy /$findfontByEnum { dup type/stringtype eq{cvn}if dup/$fontname exch def $sname null eq {$str cvs dup length $slen sub $slen getinterval} {pop $sname} ifelse $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval /$match false def $SubstituteFont/$dstack countdictstack array dictstack put mark { $fontpat 0 $slen 7 add getinterval {/$match exch def exit} $str filenameforall } stopped { cleardictstack currentdict true $SubstituteFont/$dstack get { exch { 1 index eq {pop false} {true} ifelse } {begin false} ifelse } forall pop } if cleartomark /$slen 0 def $match false ne {$match(fonts/)anchorsearch pop pop cvn} {/Courier} ifelse }bind def /$ROS 1 dict dup begin /Adobe 4 dict dup begin /Japan1 [/Ryumin-Light/HeiseiMin-W3 /GothicBBB-Medium/HeiseiKakuGo-W5 /HeiseiMaruGo-W4/Jun101-Light]def /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def /GB1 [/STSong-Light/STHeiti-Regular]def /CNS1 [/MKai-Medium/MHei-Medium]def end def end def /$cmapname null def /$deepcopyfont { dup/FontType get 0 eq { 1 dict dup/FontName/copied put copyfont begin /FDepVector FDepVector copyarray 0 1 2 index length 1 sub { 2 copy get $deepcopyfont dup/FontName/copied put /copied exch definefont 3 copy put pop pop } for def currentdict end } {$Strategies/$Type3Underprint get exec} ifelse }bind def /$buildfontname { dup/CIDFont findresource/CIDSystemInfo get begin Registry length Ordering length Supplement 8 string cvs 3 copy length 2 add add add string dup 5 1 roll dup 0 Registry putinterval dup 4 index(-)putinterval dup 4 index 1 add Ordering putinterval 4 2 roll add 1 add 2 copy(-)putinterval end 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch anchorsearch {pop pop 3 2 roll putinterval cvn/$cmapname exch def} {pop pop pop pop pop} ifelse length $str 1 index(-)putinterval 1 add $str 1 index $cmapname $fontpat cvs putinterval $cmapname length add $str exch 0 exch getinterval cvn }bind def /$findfontByROS { /$fontname exch def $ROS Registry 2 copy known { get Ordering 2 copy known {get} {pop pop[]} ifelse } {pop pop[]} ifelse false exch { dup/CIDFont resourcestatus { pop pop save 1 index/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get} {false} ifelse exch pop exch restore {pop} {exch pop true exit} ifelse } {pop} ifelse } forall {$str cvs $buildfontname} { false(*) { save exch dup/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get not} {true} ifelse exch/CIDSystemInfo get dup/Registry get Registry eq exch/Ordering get Ordering eq and and {exch restore exch pop true exit} {pop restore} ifelse } $str/CIDFont resourceforall {$buildfontname} {$fontname $findfontByEnum} ifelse } ifelse }bind def end end currentdict/$error known currentdict/languagelevel known and dup {pop $error/SubstituteFont known} if dup {$error} {Adobe_CoolType_Core} ifelse begin { /SubstituteFont /CMap/Category resourcestatus { pop pop { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and { $sname null eq {dup $str cvs dup length $slen sub $slen getinterval cvn} {$sname} ifelse Adobe_CoolType_Data/InVMFontsByCMap get 1 index 2 copy known { get false exch { pop currentglobal { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } { FontDirectory 1 index known {exch pop true exit} { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } ifelse } ifelse } forall } {pop pop false} ifelse { exch pop exch pop } { dup/CMap resourcestatus { pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS } { 128 string cvs dup(-)search { 3 1 roll search { 3 1 roll pop {dup cvi} stopped {pop pop pop pop pop $findfontByEnum} { 4 2 roll pop pop exch length exch 2 index length 2 index sub exch 1 sub -1 0 { $str cvs dup length 4 index 0 4 index 4 3 roll add getinterval exch 1 index exch 3 index exch putinterval dup/CMap resourcestatus { pop pop 4 1 roll pop pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS true exit } {pop} ifelse } for dup type/booleantype eq {pop} {pop pop pop $findfontByEnum} ifelse } ifelse } {pop pop pop $findfontByEnum} ifelse } {pop pop $findfontByEnum} ifelse } ifelse } ifelse } {//SubstituteFont exec} ifelse /$slen 0 def end } } { { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and {$findfontByEnum} {//SubstituteFont exec} ifelse end } } ifelse bind readonly def Adobe_CoolType_Core/scfindfont/systemfindfont load put } { /scfindfont { $SubstituteFont begin dup systemfindfont dup/FontName known {dup/FontName get dup 3 index ne} {/noname true} ifelse dup { /$origfontnamefound 2 index def /$origfontname 4 index def/$substituteFound true def } if exch pop { $slen 0 gt $sname null ne 3 index length $slen gt or and { pop dup $findfontByEnum findfont dup maxlength 1 add dict begin {1 index/FID eq{pop pop}{def}ifelse} forall currentdict end definefont dup/FontName known{dup/FontName get}{null}ifelse $origfontnamefound ne { $origfontname $str cvs print ( substitution revised, using )print dup/FontName known {dup/FontName get}{(unspecified font)} ifelse $str cvs print(.\n)print } if } {exch pop} ifelse } {exch pop} ifelse end }bind def } ifelse end end Adobe_CoolType_Core_Defined not { Adobe_CoolType_Core/findfont { $SubstituteFont begin $depth 0 eq { /$fontname 1 index dup type/stringtype ne{$str cvs}if def /$substituteFound false def } if /$depth $depth 1 add def end scfindfont $SubstituteFont begin /$depth $depth 1 sub def $substituteFound $depth 0 eq and { $inVMIndex null ne {dup $inVMIndex $AddInVMFont} if $doSmartSub { currentdict/$Strategy known {$Strategy/$BuildFont get exec} if } if } if end }bind put } if } if end /$AddInVMFont { exch/FontName 2 copy known { get 1 dict dup begin exch 1 index gcheck def end exch Adobe_CoolType_Data/InVMFontsByCMap get exch $DictAdd } {pop pop pop} ifelse }bind def /$DictAdd { 2 copy known not {2 copy 4 index length dict put} if Level2? not { 2 copy get dup maxlength exch length 4 index length add lt 2 copy get dup length 4 index length add exch maxlength 1 index lt { 2 mul dict begin 2 copy get{forall}def 2 copy currentdict put end } {pop} ifelse } if get begin {def} forall end }bind def end end %%EndResource currentglobal true setglobal %%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%Copyright: Copyright 1987-2006 Adobe Systems Incorporated. %%Version: 1.23 0 systemdict/languagelevel known dup {currentglobal false setglobal} {false} ifelse exch userdict/Adobe_CoolType_Utility 2 copy known {2 copy get dup maxlength 27 add dict copy} {27 dict} ifelse put Adobe_CoolType_Utility begin /@eexecStartData def /@recognizeCIDFont null def /ct_Level2? exch def /ct_Clone? 1183615869 internaldict dup /CCRun known not exch/eCCRun known not ct_Level2? and or def ct_Level2? {globaldict begin currentglobal true setglobal} if /ct_AddStdCIDMap ct_Level2? {{ mark Adobe_CoolType_Utility/@recognizeCIDFont currentdict put { ((Hex)57 StartData 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8 cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec } stopped { cleartomark Adobe_CoolType_Utility/@recognizeCIDFont get countdictstack dup array dictstack exch 1 sub -1 0 { 2 copy get 3 index eq {1 index length exch sub 1 sub{end}repeat exit} {pop} ifelse } for pop pop Adobe_CoolType_Utility/@eexecStartData get eexec } {cleartomark} ifelse }} {{ Adobe_CoolType_Utility/@eexecStartData get eexec }} ifelse bind def userdict/cid_extensions known dup{cid_extensions/cid_UpdateDB known and}if { cid_extensions begin /cid_GetCIDSystemInfo { 1 index type/stringtype eq {exch cvn exch} if cid_extensions begin dup load 2 index known { 2 copy cid_GetStatusInfo dup null ne { 1 index load 3 index get dup null eq {pop pop cid_UpdateDB} { exch 1 index/Created get eq {exch pop exch pop} {pop cid_UpdateDB} ifelse } ifelse } {pop cid_UpdateDB} ifelse } {cid_UpdateDB} ifelse end }bind def end } if ct_Level2? {end setglobal} if /ct_UseNativeCapability? systemdict/composefont known def /ct_MakeOCF 35 dict def /ct_Vars 25 dict def /ct_GlyphDirProcs 6 dict def /ct_BuildCharDict 15 dict dup begin /charcode 2 string def /dst_string 1500 string def /nullstring()def /usewidths? true def end def ct_Level2?{setglobal}{pop}ifelse ct_GlyphDirProcs begin /GetGlyphDirectory { systemdict/languagelevel known {pop/CIDFont findresource/GlyphDirectory get} { 1 index/CIDFont findresource/GlyphDirectory get dup type/dicttype eq { dup dup maxlength exch length sub 2 index lt { dup length 2 index add dict copy 2 index /CIDFont findresource/GlyphDirectory 2 index put } if } if exch pop exch pop } ifelse + }def /+ { systemdict/languagelevel known { currentglobal false setglobal 3 dict begin /vm exch def } {1 dict begin} ifelse /$ exch def systemdict/languagelevel known { vm setglobal /gvm currentglobal def $ gcheck setglobal } if ?{$ begin}if }def /?{$ type/dicttype eq}def /|{ userdict/Adobe_CoolType_Data known { Adobe_CoolType_Data/AddWidths? known { currentdict Adobe_CoolType_Data begin begin AddWidths? { Adobe_CoolType_Data/CC 3 index put ?{def}{$ 3 1 roll put}ifelse CC charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore currentfont/Widths get exch CC exch put } {?{def}{$ 3 1 roll put}ifelse} ifelse end end } {?{def}{$ 3 1 roll put}ifelse} ifelse } {?{def}{$ 3 1 roll put}ifelse} ifelse }def /! { ?{end}if systemdict/languagelevel known {gvm setglobal} if end }def /:{string currentfile exch readstring pop}executeonly def end ct_MakeOCF begin /ct_cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_CID_STR_SIZE 8000 def /ct_mkocfStr100 100 string def /ct_defaultFontMtx[.001 0 0 .001 0 0]def /ct_1000Mtx[1000 0 0 1000 0 0]def /ct_raise{exch cvx exch errordict exch get exec stop}bind def /ct_reraise {cvx $error/errorname get(Error: )print dup( )cvs print errordict exch get exec stop }bind def /ct_cvnsi { 1 index add 1 sub 1 exch 0 4 1 roll { 2 index exch get exch 8 bitshift add } for exch pop }bind def /ct_GetInterval { Adobe_CoolType_Utility/ct_BuildCharDict get begin /dst_index 0 def dup dst_string length gt {dup string/dst_string exch def} if 1 index ct_CID_STR_SIZE idiv /arrayIndex exch def 2 index arrayIndex get 2 index arrayIndex ct_CID_STR_SIZE mul sub { dup 3 index add 2 index length le { 2 index getinterval dst_string dst_index 2 index putinterval length dst_index add/dst_index exch def exit } { 1 index length 1 index sub dup 4 1 roll getinterval dst_string dst_index 2 index putinterval pop dup dst_index add/dst_index exch def sub /arrayIndex arrayIndex 1 add def 2 index dup length arrayIndex gt {arrayIndex get} { pop exit } ifelse 0 } ifelse } loop pop pop pop dst_string 0 dst_index getinterval end }bind def ct_Level2? { /ct_resourcestatus currentglobal mark true setglobal {/unknowninstancename/Category resourcestatus} stopped {cleartomark setglobal true} {cleartomark currentglobal not exch setglobal} ifelse { { mark 3 1 roll/Category findresource begin ct_Vars/vm currentglobal put ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse ct_Vars/vm get setglobal end } } {{resourcestatus}} ifelse bind def /CIDFont/Category ct_resourcestatus {pop pop} { currentglobal true setglobal /Generic/Category findresource dup length dict copy dup/InstanceType/dicttype put /CIDFont exch/Category defineresource pop setglobal } ifelse ct_UseNativeCapability? { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } if } { /ct_Category 2 dict begin /CIDFont 10 dict def /ProcSet 2 dict def currentdict end def /defineresource { ct_Category 1 index 2 copy known { get dup dup maxlength exch length eq { dup length 10 add dict copy ct_Category 2 index 2 index put } if 3 index 3 index put pop exch pop } {pop pop/defineresource/undefined ct_raise} ifelse }bind def /findresource { ct_Category 1 index 2 copy known { get 2 index 2 copy known {get 3 1 roll pop pop} {pop pop/findresource/undefinedresource ct_raise} ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /resourcestatus { ct_Category 1 index 2 copy known { get 2 index known exch pop exch pop { 0 -1 true } { false } ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /ct_resourcestatus/resourcestatus load def } ifelse /ct_CIDInit 2 dict begin /ct_cidfont_stream_init { { dup(Binary)eq { pop null currentfile ct_Level2? { {cid_BYTE_COUNT()/SubFileDecode filter} stopped {pop pop pop} if } if /readstring load exit } if dup(Hex)eq { pop currentfile ct_Level2? { {null exch/ASCIIHexDecode filter/readstring} stopped {pop exch pop(>)exch/readhexstring} if } {(>)exch/readhexstring} ifelse load exit } if /StartData/typecheck ct_raise } loop cid_BYTE_COUNT ct_CID_STR_SIZE le { 2 copy cid_BYTE_COUNT string exch exec pop 1 array dup 3 -1 roll 0 exch put } { cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi dup array exch 2 sub 0 exch 1 exch { 2 copy 5 index ct_CID_STR_SIZE string 6 index exec pop put pop } for 2 index cid_BYTE_COUNT ct_CID_STR_SIZE mod string 3 index exec pop 1 index exch 1 index length 1 sub exch put } ifelse cid_CIDFONT exch/GlyphData exch put 2 index null eq { pop pop pop } { pop/readstring load 1 string exch { 3 copy exec pop dup length 0 eq { pop pop pop pop pop true exit } if 4 index eq { pop pop pop pop false exit } if } loop pop } ifelse }bind def /StartData { mark { currentdict dup/FDArray get 0 get/FontMatrix get 0 get 0.001 eq { dup/CDevProc known not { /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known {get} { pop pop {pop pop pop pop pop 0 -1000 7 index 2 div 880} } ifelse def } if } { /CDevProc { pop pop pop pop pop 0 1 cid_temp/cid_CIDFONT get /FDArray get 0 get /FontMatrix get 0 get div 7 index 2 div 1 index 0.88 mul }def } ifelse /cid_temp 15 dict def cid_temp begin /cid_CIDFONT exch def 3 copy pop dup/cid_BYTE_COUNT exch def 0 gt { ct_cidfont_stream_init FDArray { /Private get dup/SubrMapOffset known { begin /Subrs SubrCount array def Subrs SubrMapOffset SubrCount SDBytes ct_Level2? { currentdict dup/SubrMapOffset undef dup/SubrCount undef /SDBytes undef } if end /cid_SD_BYTES exch def /cid_SUBR_COUNT exch def /cid_SUBR_MAP_OFFSET exch def /cid_SUBRS exch def cid_SUBR_COUNT 0 gt { GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi 0 1 cid_SUBR_COUNT 1 sub { exch 1 index 1 add cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add GlyphData exch cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi cid_SUBRS 4 2 roll GlyphData exch 4 index 1 index sub ct_GetInterval dup length string copy put } for pop } if } {pop} ifelse } forall } if cleartomark pop pop end CIDFontName currentdict/CIDFont defineresource pop end end } stopped {cleartomark/StartData ct_reraise} if }bind def currentdict end def /ct_saveCIDInit { /CIDInit/ProcSet ct_resourcestatus {true} {/CIDInitC/ProcSet ct_resourcestatus} ifelse { pop pop /CIDInit/ProcSet findresource ct_UseNativeCapability? {pop null} {/CIDInit ct_CIDInit/ProcSet defineresource pop} ifelse } {/CIDInit ct_CIDInit/ProcSet defineresource pop null} ifelse ct_Vars exch/ct_oldCIDInit exch put }bind def /ct_restoreCIDInit { ct_Vars/ct_oldCIDInit get dup null ne {/CIDInit exch/ProcSet defineresource pop} {pop} ifelse }bind def /ct_BuildCharSetUp { 1 index begin CIDFont begin Adobe_CoolType_Utility/ct_BuildCharDict get begin /ct_dfCharCode exch def /ct_dfDict exch def CIDFirstByte ct_dfCharCode add dup CIDCount ge {pop 0} if /cid exch def { GlyphDirectory cid 2 copy known {get} {pop pop nullstring} ifelse dup length FDBytes sub 0 gt { dup FDBytes 0 ne {0 FDBytes ct_cvnsi} {pop 0} ifelse /fdIndex exch def dup length FDBytes sub FDBytes exch getinterval /charstring exch def exit } { pop cid 0 eq {/charstring nullstring def exit} if /cid 0 def } ifelse } loop }def /ct_SetCacheDevice { 0 0 moveto dup stringwidth 3 -1 roll true charpath pathbbox 0 -1000 7 index 2 div 880 setcachedevice2 0 0 moveto }def /ct_CloneSetCacheProc { 1 eq { stringwidth pop -2 div -880 0 -1000 setcharwidth moveto } { usewidths? { currentfont/Widths get cid 2 copy known {get exch pop aload pop} {pop pop stringwidth} ifelse } {stringwidth} ifelse setcharwidth 0 0 moveto } ifelse }def /ct_Type3ShowCharString { ct_FDDict fdIndex 2 copy known {get} { currentglobal 3 1 roll 1 index gcheck setglobal ct_Type1FontTemplate dup maxlength dict copy begin FDArray fdIndex get dup/FontMatrix 2 copy known {get} {pop pop ct_defaultFontMtx} ifelse /FontMatrix exch dup length array copy def /Private get /Private exch def /Widths rootfont/Widths get def /CharStrings 1 dict dup/.notdef dup length string copy put def currentdict end /ct_Type1Font exch definefont dup 5 1 roll put setglobal } ifelse dup/CharStrings get 1 index/Encoding get ct_dfCharCode get charstring put rootfont/WMode 2 copy known {get} {pop pop 0} ifelse exch 1000 scalefont setfont ct_str1 0 ct_dfCharCode put ct_str1 exch ct_dfSetCacheProc ct_SyntheticBold { currentpoint ct_str1 show newpath moveto ct_str1 true charpath ct_StrokeWidth setlinewidth stroke } {ct_str1 show} ifelse }def /ct_Type4ShowCharString { ct_dfDict ct_dfCharCode charstring FDArray fdIndex get dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not {ct_1000Mtx matrix concatmatrix concat} {pop} ifelse /Private get Adobe_CoolType_Utility/ct_Level2? get not { ct_dfDict/Private 3 -1 roll {put} 1183615869 internaldict/superexec get exec } if 1183615869 internaldict Adobe_CoolType_Utility/ct_Level2? get {1 index} {3 index/Private get mark 6 1 roll} ifelse dup/RunInt known {/RunInt get} {pop/CCRun} ifelse get exec Adobe_CoolType_Utility/ct_Level2? get not {cleartomark} if }bind def /ct_BuildCharIncremental { { Adobe_CoolType_Utility/ct_MakeOCF get begin ct_BuildCharSetUp ct_ShowCharString } stopped {stop} if end end end end }bind def /BaseFontNameStr(BF00)def /ct_Type1FontTemplate 14 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /PaintType 0 def currentdict end def /BaseFontTemplate 11 dict begin /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /BuildChar/ct_BuildCharIncremental load def ct_Clone? { /FontType 3 def /ct_ShowCharString/ct_Type3ShowCharString load def /ct_dfSetCacheProc/ct_CloneSetCacheProc load def /ct_SyntheticBold false def /ct_StrokeWidth 1 def } { /FontType 4 def /Private 1 dict dup/lenIV 4 put def /CharStrings 1 dict dup/.notdefput def /PaintType 0 def /ct_ShowCharString/ct_Type4ShowCharString load def } ifelse /ct_str1 1 string def currentdict end def /BaseFontDictSize BaseFontTemplate length 5 add def /ct_matrixeq { true 0 1 5 { dup 4 index exch get exch 3 index exch get eq and dup not {exit} if } for exch pop exch pop }bind def /ct_makeocf { 15 dict begin exch/WMode exch def exch/FontName exch def /FontType 0 def /FMapType 2 def dup/FontMatrix known {dup/FontMatrix get/FontMatrix exch def} {/FontMatrix matrix def} ifelse /bfCount 1 index/CIDCount get 256 idiv 1 add dup 256 gt{pop 256}if def /Encoding 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for bfCount 1 255{2 copy bfCount put pop}for def /FDepVector bfCount dup 256 lt{1 add}if array def BaseFontTemplate BaseFontDictSize dict copy begin /CIDFont exch def CIDFont/FontBBox known {CIDFont/FontBBox get/FontBBox exch def} if CIDFont/CDevProc known {CIDFont/CDevProc get/CDevProc exch def} if currentdict end BaseFontNameStr 3(0)putinterval 0 1 bfCount dup 256 eq{1 sub}if { FDepVector exch 2 index BaseFontDictSize dict copy begin dup/CIDFirstByte exch 256 mul def FontType 3 eq {/ct_FDDict 2 dict def} if currentdict end 1 index 16 BaseFontNameStr 2 2 getinterval cvrs pop BaseFontNameStr exch definefont put } for ct_Clone? {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def} if FontName currentdict end definefont ct_Clone? { gsave dup 1000 scalefont setfont ct_BuildCharDict begin /usewidths? false def currentfont/Widths get begin exch/CIDFont get/GlyphDirectory get { pop dup charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore def } forall end /usewidths? true def end grestore } {exch pop} ifelse }bind def currentglobal true setglobal /ct_ComposeFont { ct_UseNativeCapability? { 2 index/CMap ct_resourcestatus {pop pop exch pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 3 index def /CMapVersion 1.000 def /CMapType 1 def exch/WMode exch def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search { dup length string copy exch pop exch pop } {pop(Identity)} ifelse } {pop (Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { 3 2 roll pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def setglobal /ct_MakeIdentity { ct_UseNativeCapability? { 1 index/CMap ct_resourcestatus {pop pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 2 index def /CMapVersion 1.000 def /CMapType 1 def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search {dup length string copy exch pop exch pop} {pop(Identity)} ifelse } {pop(Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { exch pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def currentdict readonly pop end end %%EndResource setglobal %%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0 %%Copyright: Copyright 1987-2004 Adobe Systems Incorporated. %%Version: 1.0 0 userdict/ct_T42Dict 15 dict put ct_T42Dict begin /Is2015? { version cvi 2015 ge }bind def /AllocGlyphStorage { Is2015? { pop } { {string}forall }ifelse }bind def /Type42DictBegin { 25 dict begin /FontName exch def /CharStrings 256 dict begin /.notdef 0 def currentdict end def /Encoding exch def /PaintType 0 def /FontType 42 def /FontMatrix[1 0 0 1 0 0]def 4 array astore cvx/FontBBox exch def /sfnts }bind def /Type42DictEnd { currentdict dup/FontName get exch definefont end ct_T42Dict exch dup/FontName get exch put }bind def /RD{string currentfile exch readstring pop}executeonly def /PrepFor2015 { Is2015? { /GlyphDirectory 16 dict def sfnts 0 get dup 2 index (glyx) putinterval 2 index (locx) putinterval pop pop } { pop pop }ifelse }bind def /AddT42Char { Is2015? { /GlyphDirectory get begin def end pop pop } { /sfnts get 4 index get 3 index 2 index putinterval pop pop pop pop }ifelse }bind def /T0AddT42Mtx2 { /CIDFont findresource/Metrics2 get begin def end }bind def end %%EndResource currentglobal true setglobal %%BeginFile: MMFauxFont.prc %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. %%All Rights Reserved. userdict /ct_EuroDict 10 dict put ct_EuroDict begin /ct_CopyFont { { 1 index /FID ne {def} {pop pop} ifelse} forall } def /ct_GetGlyphOutline { gsave initmatrix newpath exch findfont dup length 1 add dict begin ct_CopyFont /Encoding Encoding dup length array copy dup 4 -1 roll 0 exch put def currentdict end /ct_EuroFont exch definefont 1000 scalefont setfont 0 0 moveto [ <00> stringwidth <00> false charpath pathbbox [ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall grestore counttomark 8 add } def /ct_MakeGlyphProc { ] cvx /ct_PSBuildGlyph cvx ] cvx } def /ct_PSBuildGlyph { gsave 8 -1 roll pop 7 1 roll 6 -2 roll ct_FontMatrix transform 6 2 roll 4 -2 roll ct_FontMatrix transform 4 2 roll ct_FontMatrix transform currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse dup 9 1 roll { currentdict /StrokeWidth 2 copy known { get 2 div 0 ct_FontMatrix dtransform pop 5 1 roll 4 -1 roll 4 index sub 4 1 roll 3 -1 roll 4 index sub 3 1 roll exch 4 index add exch 4 index add 5 -1 roll pop } { pop pop } ifelse } if setcachedevice ct_FontMatrix concat ct_PSPathOps begin exec end { currentdict /StrokeWidth 2 copy known { get } { pop pop 0 } ifelse setlinewidth stroke } { fill } ifelse grestore } def /ct_PSPathOps 4 dict dup begin /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def end def /ct_matrix1000 [1000 0 0 1000 0 0] def /ct_AddGlyphProc { 2 index findfont dup length 4 add dict begin ct_CopyFont /CharStrings CharStrings dup length 1 add dict copy begin 3 1 roll def currentdict end def /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def /ct_PSBuildGlyph /ct_PSBuildGlyph load def /ct_PSPathOps /ct_PSPathOps load def currentdict end definefont pop } def systemdict /languagelevel known { /ct_AddGlyphToPrinterFont { 2 copy ct_GetGlyphOutline 3 add -1 roll restore ct_MakeGlyphProc ct_AddGlyphProc } def } { /ct_AddGlyphToPrinterFont { pop pop restore Adobe_CTFauxDict /$$$FONTNAME get /Euro Adobe_CTFauxDict /$$$SUBSTITUTEBASE get ct_EuroDict exch get ct_AddGlyphProc } def } ifelse /AdobeSansMM { 556 0 24 -19 541 703 { 541 628 m 510 669 442 703 354 703 c 201 703 117 607 101 444 c 50 444 l 25 372 l 97 372 l 97 301 l 49 301 l 24 229 l 103 229 l 124 67 209 -19 350 -19 c 435 -19 501 25 509 32 c 509 131 l 492 105 417 60 343 60 c 267 60 204 127 197 229 c 406 229 l 430 301 l 191 301 l 191 372 l 455 372 l 479 444 l 194 444 l 201 531 245 624 348 624 c 433 624 484 583 509 534 c cp 556 0 m } ct_PSBuildGlyph } def /AdobeSerifMM { 500 0 10 -12 484 692 { 347 298 m 171 298 l 170 310 170 322 170 335 c 170 362 l 362 362 l 374 403 l 172 403 l 184 580 244 642 308 642 c 380 642 434 574 457 457 c 481 462 l 474 691 l 449 691 l 433 670 429 657 410 657 c 394 657 360 692 299 692 c 204 692 94 604 73 403 c 22 403 l 10 362 l 70 362 l 69 352 69 341 69 330 c 69 319 69 308 70 298 c 22 298 l 10 257 l 73 257 l 97 57 216 -12 295 -12 c 364 -12 427 25 484 123 c 458 142 l 425 101 384 37 316 37 c 256 37 189 84 173 257 c 335 257 l cp 500 0 m } ct_PSBuildGlyph } def end %%EndFile setglobal Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end %%BeginResource: procset Adobe_AGM_Image 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Image 71 dict dup begin put /Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def /nd{ null def }bind def /AGMIMG_&image nd /AGMIMG_&colorimage nd /AGMIMG_&imagemask nd /AGMIMG_mbuf()def /AGMIMG_ybuf()def /AGMIMG_kbuf()def /AGMIMG_c 0 def /AGMIMG_m 0 def /AGMIMG_y 0 def /AGMIMG_k 0 def /AGMIMG_tmp nd /AGMIMG_imagestring0 nd /AGMIMG_imagestring1 nd /AGMIMG_imagestring2 nd /AGMIMG_imagestring3 nd /AGMIMG_imagestring4 nd /AGMIMG_imagestring5 nd /AGMIMG_cnt nd /AGMIMG_fsave nd /AGMIMG_colorAry nd /AGMIMG_override nd /AGMIMG_name nd /AGMIMG_maskSource nd /AGMIMG_flushfilters nd /invert_image_samples nd /knockout_image_samples nd /img nd /sepimg nd /devnimg nd /idximg nd /ds { Adobe_AGM_Core begin Adobe_AGM_Image begin /AGMIMG_&image systemdict/image get def /AGMIMG_&imagemask systemdict/imagemask get def /colorimage where{ pop /AGMIMG_&colorimage/colorimage ldf }if end end }def /ps { Adobe_AGM_Image begin /AGMIMG_ccimage_exists{/customcolorimage where { pop /Adobe_AGM_OnHost_Seps where { pop false }{ /Adobe_AGM_InRip_Seps where { pop false }{ true }ifelse }ifelse }{ false }ifelse }bdf level2{ /invert_image_samples { Adobe_AGM_Image/AGMIMG_tmp Decode length ddf /Decode[Decode 1 get Decode 0 get]def }def /knockout_image_samples { Operator/imagemask ne{ /Decode[1 1]def }if }def }{ /invert_image_samples { {1 exch sub}currenttransfer addprocs settransfer }def /knockout_image_samples { {pop 1}currenttransfer addprocs settransfer }def }ifelse /img/imageormask ldf /sepimg/sep_imageormask ldf /devnimg/devn_imageormask ldf /idximg/indexed_imageormask ldf /_ctype 7 def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall }def /pt { end }def /dt { }def /AGMIMG_flushfilters { dup type/arraytype ne {1 array astore}if dup 0 get currentfile ne {dup 0 get flushfile}if { dup type/filetype eq { dup status 1 index currentfile ne and {closefile} {pop} ifelse }{pop}ifelse }forall }def /AGMIMG_init_common { currentdict/T known{/ImageType/T ldf currentdict/T undef}if currentdict/W known{/Width/W ldf currentdict/W undef}if currentdict/H known{/Height/H ldf currentdict/H undef}if currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if currentdict/D known{/Decode/D ldf currentdict/D undef}if currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if currentdict/O known{ /Operator/O load 1 eq{ /imagemask }{ /O load 2 eq{ /image }{ /colorimage }ifelse }ifelse def currentdict/O undef }if currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if currentdict/I known{/Interpolate/I ldf currentdict/I undef}if currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if /DataSource load xcheck not{ DataSource type/arraytype eq{ DataSource 0 get type/filetype eq{ /_Filters DataSource def currentdict/MultipleDataSources known not{ /DataSource DataSource dup length 1 sub get def }if }if }if currentdict/MultipleDataSources known not{ /MultipleDataSources DataSource type/arraytype eq{ DataSource length 1 gt } {false}ifelse def }if }if /NComponents Decode length 2 div def currentdict/SkipImageProc known not{/SkipImageProc{false}def}if }bdf /imageormask_sys { begin AGMIMG_init_common save mark level2{ currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load AGMIMG_&imagemask }{ BitsPerComponent ImageMatrix/DataSource load AGMIMG_&image }ifelse }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if cleartomark restore end }def /overprint_plate { currentoverprint{ 0 get dup type/nametype eq{ dup/DeviceGray eq{ pop AGMCORE_black_plate not }{ /DeviceCMYK eq{ AGMCORE_is_cmyk_sep not }if }ifelse }{ false exch { AGMOHS_sepink eq or }forall not }ifelse }{ pop false }ifelse }def /process_mask { level3{ dup begin /ImageType 1 def end 4 dict begin /DataDict exch def /ImageType 3 def /InterleaveType 3 def /MaskDict 9 dict begin /ImageType 1 def /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def /ImageMatrix[Width 0 0 Height neg 0 Height]def /NComponents 1 def /BitsPerComponent 1 def /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def currentdict end def currentdict end }if }def /use_mask { dup/Mask known {dup/Mask get}{false}ifelse }def /imageormask { begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata } { save mark level2 AGMCORE_host_sep not and{ currentdict Operator/imagemask eq DeviceN_PS2 not and{ imagemask }{ AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{ [/Separation/Black/DeviceGray{}]setcolorspace /Decode[Decode 1 get Decode 0 get]def }if use_mask{ process_mask image }{ DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and { Names convert_to_process not{ 2 dict begin /imageDict xdf /names_index 0 def gsave imageDict write_image_file{ Names{ dup(None)ne{ [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace Operator imageDict read_image_file names_index 0 eq{true setoverprint}if /names_index names_index 1 add def }{ pop }ifelse }forall close_image_file }if grestore end }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load /Adobe_AGM_OnHost_Seps where{ pop imagemask }{ currentgray 1 ne{ currentdict imageormask_sys }{ currentoverprint not{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }ifelse }{ BitsPerComponent ImageMatrix MultipleDataSources{ 0 1 NComponents 1 sub{ DataSource exch get }for }{ /DataSource load }ifelse Operator/colorimage eq{ AGMCORE_host_sep{ MultipleDataSources level2 or NComponents 4 eq and{ AGMCORE_is_cmyk_sep{ MultipleDataSources{ /DataSource DataSource 0 get xcheck { [ DataSource 0 get/exec cvx DataSource 1 get/exec cvx DataSource 2 get/exec cvx DataSource 3 get/exec cvx /AGMCORE_get_ink_data cvx ]cvx }{ DataSource aload pop AGMCORE_get_ink_data }ifelse def }{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul /DataSource load filter_cmyk 0()/SubFileDecode filter def }ifelse /Decode[Decode 0 get Decode 1 get]def /MultipleDataSources false def /NComponents 1 def /Operator/image def invert_image_samples 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }{ MultipleDataSources NComponents AGMIMG_&colorimage }ifelse }{ true NComponents colorimage }ifelse }{ Operator/image eq{ AGMCORE_host_sep{ /DoImage true def currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse { AGMCORE_black_plate not Operator/imagemask ne and{ /DoImage false def currentdict ignoreimagedata }if }if 1 AGMCORE_&setgray DoImage {currentdict imageormask_sys}if }{ use_mask{ process_mask image }{ image }ifelse }ifelse }{ Operator/knockout eq{ pop pop pop pop pop currentcolorspace overprint_plate not{ knockout_unitsq }if }if }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /sep_imageormask { /sep_colorspace_dict AGMCORE_gget begin CSA map_csa begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_avoid_L2_sep_space{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def }if AGMIMG_ccimage_exists MappedCSA 0 get/DeviceCMYK eq and currentdict/Components known and Name()ne and Name(All)ne and Operator/image eq and AGMCORE_producing_seps not and level2 not and { Width Height BitsPerComponent ImageMatrix [ /DataSource load/exec cvx { 0 1 2 index length 1 sub{ 1 index exch 2 copy get 255 xor put }for }/exec cvx ]cvx bind MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Name findcmykcustomcolor customcolorimage }{ AGMCORE_producing_seps not{ level2{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{ [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if currentdict imageormask }{ currentdict Operator/imagemask eq{ imageormask }{ sep_imageormask_lev1 }ifelse }ifelse }{ AGMCORE_host_sep{ Operator/knockout eq{ currentdict/ImageMatrix get concat knockout_unitsq }{ currentgray 1 ne{ AGMCORE_is_cmyk_sep Name(All)ne and{ level2{ Name AGMCORE_IsSeparationAProcessColor { Operator/imagemask eq{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor }if }{ invert_image_samples }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ [/Separation Name[/DeviceGray] { sep_colorspace_proc AGMCORE_get_ink_data 1 exch sub }bind ]AGMCORE_&setcolorspace /sep_tint AGMCORE_gget AGMCORE_&setcolor }if }ifelse currentdict imageormask_sys }{ currentdict Operator/imagemask eq{ imageormask_sys }{ sep_image_lev1_sep }ifelse }ifelse }{ Operator/imagemask ne{ invert_image_samples }if currentdict imageormask_sys }ifelse }{ currentoverprint not Name(All)eq or Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ currentcolorspace 0 get/Separation ne{ [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if }if currentoverprint MappedCSA 0 get/DeviceCMYK eq and Name AGMCORE_IsSeparationAProcessColor not and //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse Name(All)ne and{ imageormask_l2_overprint }{ currentdict imageormask }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end }def /colorSpaceElemCnt { mark currentcolor counttomark dup 2 add 1 roll cleartomark }bdf /devn_sep_datasource { 1 dict begin /dataSource xdf [ 0 1 dataSource length 1 sub{ dup currentdict/dataSource get/exch cvx/get cvx/exec cvx /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx }for ]cvx bind end }bdf /devn_alt_datasource { 11 dict begin /convProc xdf /origcolorSpaceElemCnt xdf /origMultipleDataSources xdf /origBitsPerComponent xdf /origDecode xdf /origDataSource xdf /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def /DataSource origMultipleDataSources { [ BitsPerComponent 8 idiv origDecode length 2 idiv mul string 0 1 origDecode length 2 idiv 1 sub { dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch origDataSource exch get 0()/SubFileDecode filter BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx }for ]bind cvx }{origDataSource}ifelse 0()/SubFileDecode filter def [ origcolorSpaceElemCnt string 0 2 origDecode length 2 sub { dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx }for /convProc load/exec cvx origcolorSpaceElemCnt 1 sub -1 0 { /dup cvx 2/add cvx/index cvx 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx }for ]bind cvx 0()/SubFileDecode filter end }bdf /devn_imageormask { /devicen_colorspace_dict AGMCORE_gget begin CSA map_csa 2 dict begin dup /srcDataStrs[3 -1 roll begin AGMIMG_init_common currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi { dup 65535 gt{1 add 2 div cvi}{exit}ifelse }loop string }repeat end]def /dstDataStr srcDataStrs 0 get length string def begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_producing_seps not{ level3 not{ Operator/imagemask ne{ /DataSource[[ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def /MultipleDataSources true def /Decode colorSpaceElemCnt[exch{0 1}repeat]def }if }if currentdict imageormask }{ AGMCORE_host_sep{ Names convert_to_process{ CSA get_csa_by_name 0 get/DeviceCMYK eq{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource filter_cmyk 0()/SubFileDecode filter def /MultipleDataSources false def /Decode[1 0]def /DeviceGray setcolorspace currentdict imageormask_sys }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate{ /DataSource DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource /MultipleDataSources false def /Decode colorSpaceElemCnt[exch{0 1}repeat]def currentdict imageormask_sys }{ gsave knockout_unitsq grestore currentdict consumeimagedata }ifelse }ifelse } { /devicen_colorspace_dict AGMCORE_gget/names_index known{ Operator/imagemask ne{ MultipleDataSources{ /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def /MultipleDataSources false def }{ /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def }ifelse invert_image_samples }if currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ currentdict imageormask }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end end }def /imageormask_l2_overprint { currentdict currentcmykcolor add add add 0 eq{ currentdict consumeimagedata }{ level3{ currentcmykcolor /AGMIMG_k xdf /AGMIMG_y xdf /AGMIMG_m xdf /AGMIMG_c xdf Operator/imagemask eq{ [/DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ]/DeviceCMYK{}]setcolorspace AGMIMG_c 0 ne{AGMIMG_c}if AGMIMG_m 0 ne{AGMIMG_m}if AGMIMG_y 0 ne{AGMIMG_y}if AGMIMG_k 0 ne{AGMIMG_k}if setcolor }{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def [/Indexed [ /DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ] /DeviceCMYK{ AGMIMG_k 0 eq{0}if AGMIMG_y 0 eq{0 exch}if AGMIMG_m 0 eq{0 3 1 roll}if AGMIMG_c 0 eq{0 4 1 roll}if } ] 255 { 255 div mark exch dup dup dup AGMIMG_k 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_y 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_m 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_c 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop counttomark 1 roll }{ pop }ifelse counttomark 1 add -1 roll pop } ]setcolorspace }ifelse imageormask_sys }{ write_image_file{ currentcmykcolor 0 ne{ [/Separation/Black/DeviceGray{}]setcolorspace gsave /Black [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Yellow/DeviceGray{}]setcolorspace gsave /Yellow [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Magenta/DeviceGray{}]setcolorspace gsave /Magenta [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Cyan/DeviceGray{}]setcolorspace gsave /Cyan [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if close_image_file }{ imageormask }ifelse }ifelse }ifelse }def /indexed_imageormask { begin AGMIMG_init_common save mark currentdict AGMCORE_host_sep{ Operator/knockout eq{ /indexed_colorspace_dict AGMCORE_gget dup/CSA known{ /CSA get get_csa_by_name }{ /Names get }ifelse overprint_plate not{ knockout_unitsq }if }{ Indexed_DeviceN{ /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{ indexed_image_lev2_sep }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }{ AGMCORE_is_cmyk_sep{ Operator/imagemask eq{ imageormask_sys }{ level2{ indexed_image_lev2_sep }{ indexed_image_lev1_sep }ifelse }ifelse }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ level2{ Indexed_DeviceN{ /indexed_colorspace_dict AGMCORE_gget begin }{ /indexed_colorspace_dict AGMCORE_gget dup null ne { begin currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and AGMCORE_in_rip_sep and{ [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup] setcolorspace }if end } {pop}ifelse }ifelse imageormask Indexed_DeviceN{ end }if }{ Operator/imagemask eq{ imageormask }{ indexed_imageormask_lev1 }ifelse }ifelse }ifelse cleartomark restore currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /indexed_image_lev2_sep { /indexed_colorspace_dict AGMCORE_gget begin begin Indexed_DeviceN not{ currentcolorspace dup 1/DeviceGray put dup 3 currentcolorspace 2 get 1 add string 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub { dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put }for put setcolorspace }if currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse end end }def /OPIimage { dup type/dicttype ne{ 10 dict begin /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /ImageType 1 def /Decode[0 1 def] currentdict end }if dup begin /NComponents 1 cdndf /MultipleDataSources false cdndf /SkipImageProc{false}cdndf /Decode[ 0 currentcolorspace 0 get/Indexed eq{ 2 BitsPerComponent exp 1 sub }{ 1 }ifelse ]cdndf /Operator/image cdndf end /sep_colorspace_dict AGMCORE_gget null eq{ imageormask }{ gsave dup begin invert_image_samples end sep_imageormask grestore }ifelse }def /cachemask_level2 { 3 dict begin /LZWEncode filter/WriteFilter xdf /readBuffer 256 string def /ReadFilter currentfile 0(%EndMask)/SubFileDecode filter /ASCII85Decode filter /RunLengthDecode filter def { ReadFilter readBuffer readstring exch WriteFilter exch writestring not{exit}if }loop WriteFilter closefile end }def /spot_alias { /mapto_sep_imageormask { dup type/dicttype ne{ 12 dict begin /ImageType 1 def /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /MultipleDataSources false def }{ begin }ifelse /Decode[/customcolor_tint AGMCORE_gget 0]def /Operator/image def /SkipImageProc{false}def currentdict end sep_imageormask }bdf /customcolorimage { Adobe_AGM_Image/AGMIMG_colorAry xddf /customcolor_tint AGMCORE_gget << /Name AGMIMG_colorAry 4 get /CSA[/DeviceCMYK] /TintMethod/Subtractive /TintProc null /MappedCSA null /NComponents 4 /Components[AGMIMG_colorAry aload pop pop] >> setsepcolorspace mapto_sep_imageormask }ndf Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put /customcolorimage { Adobe_AGM_Image/AGMIMG_override false put current_spot_alias{dup 4 get map_alias}{false}ifelse { false set_spot_alias /customcolor_tint AGMCORE_gget exch setsepcolorspace pop mapto_sep_imageormask true set_spot_alias }{ //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec }ifelse }bdf }def /snap_to_device { 6 dict begin matrix currentmatrix dup 0 get 0 eq 1 index 3 get 0 eq and 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop { 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def 0 0 transform AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch itransform/AGMIMG_llY exch def/AGMIMG_llX exch def 1 1 transform AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch itransform/AGMIMG_urY exch def/AGMIMG_urX exch def [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat }{ }ifelse end }def level2 not{ /colorbuf { 0 1 2 index length 1 sub{ dup 2 index exch get 255 exch sub 2 index 3 1 roll put }for }def /tint_image_to_color { begin Width Height BitsPerComponent ImageMatrix /DataSource load end Adobe_AGM_Image begin /AGMIMG_mbuf 0 string def /AGMIMG_ybuf 0 string def /AGMIMG_kbuf 0 string def { colorbuf dup length AGMIMG_mbuf length ne { dup length dup dup /AGMIMG_mbuf exch string def /AGMIMG_ybuf exch string def /AGMIMG_kbuf exch string def }if dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop } addprocs {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage end }def /sep_imageormask_lev1 { begin MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ { 255 mul round cvi GrayLookup exch get }currenttransfer addprocs settransfer currentdict imageormask }{ /sep_colorspace_dict AGMCORE_gget/Components known{ MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{ {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer currentdict imageormask }{ currentcolortransfer {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }{ MappedCSA 0 get/DeviceGray eq{ {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer currentdict imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }ifelse }ifelse }ifelse end }def /sep_image_lev1_sep { begin /sep_colorspace_dict AGMCORE_gget/Components known{ Components aload pop Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf {AGMIMG_c mul 1 exch sub} {AGMIMG_m mul 1 exch sub} {AGMIMG_y mul 1 exch sub} {AGMIMG_k mul 1 exch sub} }{ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub} {255 mul round cvi ColorLookup exch get 1 get 1 exch sub} {255 mul round cvi ColorLookup exch get 2 get 1 exch sub} {255 mul round cvi ColorLookup exch get 3 get 1 exch sub} }ifelse AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end }def /indexed_imageormask_lev1 { /indexed_colorspace_dict AGMCORE_gget begin begin currentdict MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceGray eq{ {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }ifelse }ifelse }ifelse end end }def /indexed_image_lev1_sep { /indexed_colorspace_dict AGMCORE_gget begin begin {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end end }def }if end systemdict/setpacking known {setpacking}if %%EndResource currentdict Adobe_AGM_Utils eq {end} if %%EndProlog %%BeginSetup Adobe_AGM_Utils begin 2 2010 Adobe_AGM_Core/ds gx Adobe_CoolType_Core/ds get exec Adobe_AGM_Image/ds gx currentdict Adobe_AGM_Utils eq {end} if %%EndSetup %%Page: 3 1 %%EndPageComments %%BeginPageSetup %ADOBeginClientInjection: PageSetup Start "AI11EPS" %AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0 %ADOEndClientInjection: PageSetup Start "AI11EPS" Adobe_AGM_Utils begin Adobe_AGM_Core/ps gx Adobe_AGM_Utils/capture_cpd gx Adobe_CoolType_Core/ps get exec Adobe_AGM_Image/ps gx %ADOBeginClientInjection: PageSetup End "AI11EPS" /currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse { userdict /AI11_PDFMark5 /cleartomark load put userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put} { userdict /AI11_PDFMark5 /pdfmark load put userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse [/NamespacePush AI11_PDFMark5 [/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5 [{ai_metadata_stream_123} currentfile 0 (% &&end XMP packet marker&&) /SubFileDecode filter AI11_ReadMetadata_PDFMark5 application/postscript Web Adobe Illustrator CS4 2011-06-09T17:17:19-03:00 2011-06-09T17:17:19-03:00 2011-06-09T17:17:19-03:00 256 28 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAHAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9KPpGjRQpJJb15FE2Zus jBB38WxVjWm+Vfynnkku7XRrRJbW6AWRoGjk+smOOcGNWActxkUig+WKqsix3F7benai0sHeUJMD 63riOZY16svp8hU9zvXopxVmuKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KsdmvPMrXSwXGmW0ekiaD076O8aSY0nThytzAgWvf94ae+KojQNCj09dU gcrPFdXYmCmONBx+rwx8SqKq/wC6/DFULPoF5HfwS8/rdlE8skcJpF6BklWTbgUDhRWlQelKfETi qczwX8krGC7EKCg4emr70rWpIxVLNYutX0y1a5Ms12ihiy28EJI4iu/qSRjf5/PFUTaRa1PbRzSX L2rutWt5oYjIh/lb03kSv+qxxVj+l3fny88wzWss4g0uEM7SyWMQO4XhAZFvZD6tHDk+jxK+BxVk F1FrEFu8q3b3BWlIooIy5qabcnUbdeuKofSbjV9SgecTS20QYLE08MH71Sob1I/Tlk+H4qb03HhQ lVMEi1CMSCW7EpaNvTPpqvFh0Ox3xVb9T1b/AKuA/wCRC/1xVBwy6vJqtzp/ryp9Xiim+tNDD6Ti UuAqUkMlR6ZrVAMVa1mfWNM06a+Est6IByaC2hgEhXuR60sKUA3NWxVTisfOrXXqPq1qtkzKywGy InVKGqM4nZC1abhaexxV2n3mt3l9d2p+sWy2jFGuZobb03bkaBPTmkf4k4yDko+FhWjVAVdrN3re mrbupuL5Z5khY20NsPSMhCq0nrTQ/DU0+Gp9sVTH6nq3/VwH/Ihf64quaLUGijjS7CSjl6kvpqeV DQfDXbFULfrrVrZy3Ec8l48a8ltbeCL1XP8AKnqSRpX5sMVWaXJq9/ZJdi5ktklqY0mhh5FK/C/7 uSRaMNxvWnUDFVNLnWX1qXS/UmVYoFnN8Yrf0DzYqEAExm5fCesdNuuKqupyarYWj3TXTzxx1Mgi hiqqgElzzkQUFPHFV9lHrVzaQ3Elw9o8qhmtp4YvUjJ/Zf05JEqPZjiqnbS6tPeXFsLiRPqx4vM8 MPAkgEBeMjNuDXdcVS7zJL5w0/6tLY3qSwSuIJE+pLKyu9SjFjcQBVJAToTyYYqnMFrrbQxmW/Cy FQXX0EFGpuKB3H/DH54qhdNm1m+NzWaW2W3meBXmhtyJfTJUvH6Ush41H7fE+2Kt6hNq1m9un1iW 4Nw5jT0YIdmA5b85E/ZBO3hiqKlttYSN3W+MhVSRGsKcmIFaDkwFT7nFUFolzrOqWC3bPNYFmZPq 91DbmQcG4kn0JZk6j+bFV08+sRanb2AmlkM6s5uFhg9JFQGpblKr/a4r8Kndh2qQqjGtdWVS36QG wr/cr/XFWMa15qadLrS20x3hR40NwtxaKG4zcSeE5Oy8OThl+z0qcVS/RvOT6Ys8ceiS+pdXSGZR eWAiU+jHCZYuLqohPpcqfbqSeO+KppZ/mFLeXUVs2kSQJPK0Prtc2zBfj4BuCO0hDdV+Hp4YqyO8 0++uL63nt9Tns4bdyZ7SJLdo7gELRZDLHJIoFP8AdbLirCPOOi6+8d9Nc31pbrPHCJ71La7HBV+F gjQl3TqaESjc1p4qoK20aa7sJ7m81DTIrqVYg3qCW2XmAFP7tmVU5AgEFJN+57KobRreK+1ZvX8w 6Le2aXaSTx283FuNDIohcFqBkuEWi8akHtQBVP8AzNBKsEf1PUrKS1tWla2hZZJ5VSRfiWoaYs32 lQ0XjtvtQqqHlHynetdJ+lZo72wEVwbWSKO8t5QLiaOUCSSUBpOPA8TzFNgqADFWbWVnd2sLpc30 uoOfUYSzrCjBSahQIUiWijbpXFUDeaXr8djeJFqv1v11eq3cCNwUpQJF9WEB+fIOa9PDFXnU+i6t bagyXF9aqJo4ImszDdx8IkoyspMfpo/7mSrogZqruKVKqY+YdB1Sf1Vttd09hLBELpmkuHuWSJ5S 627GeWaIkSKAyyUr+z3xVfbaFqc9neC41vSmunPpyLaySxQO0fw/HCsgjU8KAh0k33xVD23lvVm1 OWZtY0wqbn1LoCWUcGWMGE29GX0wqv8AGsfDmd6riqjrGjarNqhtrbVrUwm4W5Mvp300ryCGKGMN NG8jlPVb+7eR1bp8OKsu8v8AlrU10t2l1CbT9TlkcyTWfIQjnTkY7W6RoVq24rFUeJ3qqnV/p1/d 2kNvbarcafOjEveQJbPK4U0IKzxTRDkdzRPlirHvO+ka/erDxubVYka4rL9XuAY4HUKf3kZlKycD tIOFDuOlMVY5oukXE3qpPqViqQwhbaeRbuJjEyLLEzNI8Ls6+p/eMWqP2RiqGuPLmqmZphrWkIk1 m1o0RkkFu8Uob0/SofRSZFT4pRGWP+TXFU017y3LKkzRapYCB4H+sPHNNFLy5K/7pjLPIhPAfYcV 323xVdD5av2tbhbvVNKa4kVBWJ5EV2RVWoAdVTmoIbksle5OKoWLy7rMmpTSPrOlNA8tsLqKrji8 Eiz+pBRwEWj0KIFLdC+wxVdrnlm/kDLaatpsETvDR1klDBgSEG0hl4CRwWUy8WXag7Kom38u6iLJ GuNU0lr4XHryBC6wseROyl2jVK/Fw9I7/tV3xVA6T5Z1v1Od3rOkzRSXEk1wQ06kSrIyn0lMpKQs lU9NGUd+nw4q3qPlfVWu4Vg1jS4YUnMtpxeUEzohKGfjJWSHjGFaKRmr/NviqNg8tXUMFm66hpP1 qEOrgu7KA69fjZ0am4XjGtAdsVUNH8tXbLbm71XTJbOsk0bF5jMEuPiMUh9WN3oxqp5gLSgTbFUL FpOr3UgS1urV2jEySQi3uWSRCKv9mEpyBuFPJgx7f5QVZ5Y+XntoLWa1vbi0VYV+uWq8ZI53AU1f 6wjyKdivwFTQ77gUVQp/wT9an5el9Z9Q+vWlfU+Kta/tfaxVLtc/5VT6B/Tf1D0OA5fWfS48OSUr y7cuH00xVW0n/lW/1ofo36v9b5pXhT1fV4rx51+L1OPH7W9KdsVZga8m48uu9ONK098VablT4uVP fhiqy44fV5fX5ehwb1a8KcKfFX6MVSJf8Kevb+ry5fH9W+tc/TrT4+Hr/Byp9OKq0f8Ag/15vT+o +v8AD69Pq3Lp8PL6OmKpvb+n9Xi+rf7z8F9H0/T4cKfDx47cadKYqvP7XPl9k9ePTv0xVv8Aef5f /CYq18XL9rlT/IrTFWP+bP8ACHq6f/iPj6vKT9H+p15cP3nDh349cVW6P/gj6kP0f9V+r8jTn6XK vv6vx9Ole1KbYqrS/wCFPrcHL0fUo3Dj6Xp9N+fH4Ply+jFUXB/h/wBZPQ+retUenw+r8uXalN64 qmX7z/L/AOExVodFpy5fF/LXrv1264q2edN+dO/2MVcOdNudO32MVYOv/KrP04Keh+lfUWvKteVZ OHKvw8K+pxr8PWmKsj/51n/l0/6dsVd/zrP/AC6f9O2Ku/51n/l0/wCnbFXf86z/AMun/TtiqHP+ FPrw/ufV9Pb+69Klf+RfL8cVRH/Os/8ALp/07Yq7/nWf+XT/AKdsVd/zrP8Ay6f9O2Ku/wCdZ/5d P+nbFURZfoj1T9R9H1ePxeh6PLjUdeO9K0xVGPy4nlzpQ1+x0xV//9k= proof:pdf uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:00801174072068118DBB9A084B3843B2 xmp.iid:00801174072068118DBB9A084B3843B2 converted from application/pdf to <unknown> saved xmp.iid:D47F11740720681191099C3B601C4548 2008-04-17T14:19:21+05:30 Adobe Illustrator CS4 / converted from application/pdf to <unknown> converted from application/pdf to <unknown> saved xmp.iid:FD7F11740720681197C1BF14D1759E83 2008-05-16T17:01:20-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F117407206811BC18AC99CBA78E83 2008-05-19T18:10:15-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:FB7F117407206811B628E3BF27C8C41B 2008-05-22T14:26:44-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:08C3BD25102DDD1181B594070CEB88D9 2008-05-28T16:51:46-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F77F11740720681192B0DFFC927805D7 2008-05-30T21:26:38-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F87F11740720681192B0DFFC927805D7 2008-05-30T21:27-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F97F1174072068119098B097FDA39BEF 2008-06-02T13:26:10-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F1174072068118DBB9A084B3843B2 2011-06-09T11:06:05-03:00 Adobe Illustrator CS4 / saved xmp.iid:F87F1174072068118DBB9A084B3843B2 2011-06-09T15:15:58-03:00 Adobe Illustrator CS4 / saved xmp.iid:00801174072068118DBB9A084B3843B2 2011-06-09T17:17:19-03:00 Adobe Illustrator CS4 / xmp.iid:F87F1174072068118DBB9A084B3843B2 xmp.did:F87F1174072068118DBB9A084B3843B2 uuid:65E6390686CF11DBA6E2D887CEACB407 proof:pdf Web 1 False False 955.023438 326.000000 Pixels ArialMT Arial Regular Open Type Version 5.01.2x False Arial.ttf Cyan Magenta Yellow Black Default Swatch Group 0 White RGB PROCESS 255 255 255 Black RGB PROCESS 0 0 0 RGB Red RGB PROCESS 255 0 0 RGB Yellow RGB PROCESS 255 255 0 RGB Green RGB PROCESS 0 255 0 RGB Cyan RGB PROCESS 0 255 255 RGB Blue RGB PROCESS 0 0 255 RGB Magenta RGB PROCESS 255 0 255 R=193 G=39 B=45 RGB PROCESS 193 39 45 R=237 G=28 B=36 RGB PROCESS 237 28 36 R=241 G=90 B=36 RGB PROCESS 241 90 36 R=247 G=147 B=30 RGB PROCESS 247 147 30 R=251 G=176 B=59 RGB PROCESS 251 176 59 R=252 G=238 B=33 RGB PROCESS 252 238 33 R=217 G=224 B=33 RGB PROCESS 217 224 33 R=140 G=198 B=63 RGB PROCESS 140 198 63 R=57 G=181 B=74 RGB PROCESS 57 181 74 R=0 G=146 B=69 RGB PROCESS 0 146 69 R=0 G=104 B=55 RGB PROCESS 0 104 55 R=34 G=181 B=115 RGB PROCESS 34 181 115 R=0 G=169 B=157 RGB PROCESS 0 169 157 R=41 G=171 B=226 RGB PROCESS 41 171 226 R=0 G=113 B=188 RGB PROCESS 0 113 188 R=46 G=49 B=146 RGB PROCESS 46 49 146 R=27 G=20 B=100 RGB PROCESS 27 20 100 R=102 G=45 B=145 RGB PROCESS 102 45 145 R=147 G=39 B=143 RGB PROCESS 147 39 143 R=158 G=0 B=93 RGB PROCESS 158 0 93 R=212 G=20 B=90 RGB PROCESS 212 20 90 R=237 G=30 B=121 RGB PROCESS 237 30 121 R=199 G=178 B=153 RGB PROCESS 199 178 153 R=153 G=134 B=117 RGB PROCESS 153 134 117 R=115 G=99 B=87 RGB PROCESS 115 99 87 R=83 G=71 B=65 RGB PROCESS 83 71 65 R=198 G=156 B=109 RGB PROCESS 198 156 109 R=166 G=124 B=82 RGB PROCESS 166 124 82 R=140 G=98 B=57 RGB PROCESS 140 98 57 R=117 G=76 B=36 RGB PROCESS 117 76 36 R=96 G=56 B=19 RGB PROCESS 96 56 19 R=66 G=33 B=11 RGB PROCESS 66 33 11 Grays 1 R=0 G=0 B=0 RGB PROCESS 0 0 0 R=26 G=26 B=26 RGB PROCESS 26 26 26 R=51 G=51 B=51 RGB PROCESS 51 51 51 R=77 G=77 B=77 RGB PROCESS 77 77 77 R=102 G=102 B=102 RGB PROCESS 102 102 102 R=128 G=128 B=128 RGB PROCESS 128 128 128 R=153 G=153 B=153 RGB PROCESS 153 153 153 R=179 G=179 B=179 RGB PROCESS 179 179 179 R=204 G=204 B=204 RGB PROCESS 204 204 204 R=230 G=230 B=230 RGB PROCESS 230 230 230 R=242 G=242 B=242 RGB PROCESS 242 242 242 Web Color Group 1 R=63 G=169 B=245 RGB PROCESS 63 169 245 R=122 G=201 B=67 RGB PROCESS 122 201 67 R=255 G=147 B=30 RGB PROCESS 255 147 30 R=255 G=29 B=37 RGB PROCESS 255 29 37 R=255 G=123 B=172 RGB PROCESS 255 123 172 R=189 G=204 B=212 RGB PROCESS 189 204 212 Adobe PDF library 9.00 % &&end XMP packet marker&& [{ai_metadata_stream_123} <> /PUT AI11_PDFMark5 [/Document 1 dict begin /Metadata {ai_metadata_stream_123} def currentdict end /BDC AI11_PDFMark5 %ADOEndClientInjection: PageSetup End "AI11EPS" %%EndPageSetup 1 -1 scale 0 -326 translate pgsv [1 0 0 1 0 0 ]ct gsave np gsave 0 0 mo 0 326 li 1121 326 li 1121 0 li cp clp [1 0 0 1 0 0 ]ct 1 lw 0 lc 0 lj 4 ml [] 0 dsh true sadj 1108.58 313.211 mo 11.8408 313.211 li 11.8408 42.5024 li 1108.58 42.5024 li 1108.58 313.211 li cp false sop /0 [/DeviceCMYK] /CSA add_res .193668 .150057 .155337 3.0518e-05 cmyk @ 1108.58 42.8394 mo 11.8428 42.8394 li 11.8428 13.6938 li 1108.58 13.6938 li 1108.58 42.8394 li cp f 1108.58 42.8394 mo 11.8428 42.8394 li 11.8428 13.6938 li 1108.58 13.6938 li 1108.58 42.8394 li cp @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT Initial %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. 12 dict dup begin /FontType 1 def /FontName /ArialMT def /FontInfo 5 dict dup begin /ItalicAngle 0 def /FSType 8 def end def /PaintType 0 def /FontMatrix [0.001 0 0 0.001 0 0] def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 32 /space put dup 65 /A put dup 69 /E put dup 73 /I put dup 76 /L put dup 78 /N put dup 83 /S put dup 84 /T put def /FontBBox {-665 -325 2000 1006} def end systemdict begin dup /Private 7 dict dup begin /|- {def} def /| {put} def /BlueValues [0 0] def /password 5839 def /MinFeature {16 16} def /OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup /strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def /Subrs 5 array dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> | dup 1 <1C60D8A8C9C3D06D9E> | dup 2 <1C60D8A8C9C202D79A> | dup 3 <1C60D8A849> | dup 4 <1C60D8A8CC3674F41144B13B77> | def put dup /CharStrings 9 dict dup begin /.notdef <1C60D8A8C9B6E3FA5101D97F0BCF44F7161DEB1E2A84766DD477E7 C8A936AA182F5809A9> |- /space <1C60D8A8C9B854D00D> |- /A <1C60D8A8C9B64EDFED26B9E21A4F64848088903AC9891CF791BDBC4AB29A CC8B3E8D13924A7DDE35F09AC5F4A8229C87124C732743268600EF8D4582208B D16D82> |- /E <1C60D8A8C9B64EDFFB83C6241DB110BEE5AB2FAD9D94B39ED5E81E7411B6 6E9361DDE78FC667AB91EF9824> |- /I <1C60D8A8C9B854D0F463D3892D665712D6B7D6A81E> |- /L <1C60D8A8C9B7EF3224EC6E192BD0FEC2445DA87B99CF0E03A72A> |- /N <1C60D8A8C9B6079F629170873C67115641D0B6890161EC48F71E8D2106F3 AC927984C1E464F121F968> |- /S <1C60D8A8C9B64EDFE3D078722A65C31955939D63AA5C8A4945719B5E558E 3B73A676CC12D1E18D93A8DC67C074D6E352D426981DE76F8EC4CFE5DAE051BE 47753A7C234C4B8D7D9F50292A61882B5500CC701F878FE626CDC6D4C322BB39 1537921D673F5AEE3EC19E36E7EFEC0F06A0EA4EAAB6BBA94DDCD11A6A564B13 B510F8C915848233B82F046D854DCD4F1639F149305DC73D3C68DF8AEB47A96A 30E55CF8BAD07FA2825BCE0D675F1CC2EBE61B07B772130E23119250F1EBF8FE 12A2098D9F09F3F21BDC41666CA4A0BB70D5F0A750B44BB93A5FBFDD2BF8DE45 0B277265536F77D5BD6F44FB72FF2E708C60107653AE44BFFB26AFF8> |- /T <1C60D8A8C9B7D8BE16D2C1CA7ED2E06F707C0E9530AE37D06FF7501A595D 3927> |- end put end dup /FontName get exch definefont pop end %ADOEndSubsetFont /AMYWHX+ArialMT /ArialMT findfont ct_VMDictPut /AMYWHX+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T 171{/.notdef}rp] AMYWHX+ArialMT nf AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 512.257 35.8042 mo (EINA LIST) [13.7568 5.72998 14.895 12.6187 5.72998 11.4707 5.73047 13.7568 0 ]xsh %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHX+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /U <1C60D8A8C9B6079F6D3F1E4545C3E1CC9D8EF54571065F01BE5A50957BD2 D8AD04D30C23B37CA98B969ECB5CA0D9A7C563636CB33377BB3DEB53D45DD0F3 E333CD69EA3B53D63C91B303CFDF29F59C20776D4DC576C9C080B76AB60A2167 3EFC1F645BF33D33929C60> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHX+ArialMT /Encoding get dup 85 /U put pop %ADOEndSubsetFont /AMYWHX+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 170{/.notdef}rp] AMYWHX+ArialMT nf AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 38.9766 174.327 mo (NULL) [14.8945 14.895 11.4707 0 ]xsh AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 1035.65 174.327 mo (NULL) [14.8945 14.895 11.4707 0 ]xsh %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHX+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /a <1C60D8A8C9B7EF32244AC11AA6BAAA29EE8C78E0E7206F4A2776A2D1EA7D C8D9A28C62ADE3B609CF5E2EE23C64D0B75055BD249ADFEC7B4224D040D883CA 6747571955349CF8AD17E94E6FE5D0259F4D55623D4DC5C3CB4AC64A7A87DBBA 48B7420D7990F3C261DB9838C5B90BF72B82C8238A1A58FE8E6137AAFE2405FD 710F7ADB95B4F576668A6DB104942C88ED8D01E4E58188F5E32A24B5B964D5CE C10C08F76C0F472E84A0FB6EB5E37AAEE233DE54C212B0A012D3E20F864B2D53 463E221F81B784B6F7BE81FBFCAE6785C2430454DD81C436E0A516BF8C8307B2 879FF86378629C5EA7E586D83C83550D2E732930F7FE3BAD07B86C81E024D177 B5D88A> |- /c <1C60D8A8C9B7A73DB9D8FD6AA4FBAF8D65C36EA1D4AADBD389F972C0EDCE 9E7F36285FA93A80D3647871D2CE5AAAA6A6A370DC54E1595FB6AAB3E389C9F7 BBBB85F787D6C418B35B940450E5E243895ECFD2205F51B2D154CFFECF34148C 344C1EF806F9AAF539FB961E3EFAF6353381E833DF7C0542FFF27122A28D3654 8FE63FC8465B1B685766E782F0> |- /g <1C60D8A8C9B7EF322851D9960AE993FFFAEAEBBA8EF734FCE7E65DE817A0 65D42CB79E2F25620DE08D5E215259551032CAAB8B674940F5B4BAAF40766D55 9B26E9A0C2464D0F504C4718579670D62707FEBC08A2CD71BF2528BA3A24A0C2 47BA70F9E817A1709BB6F7008D6C121249525DEE3A93F6DA16170F68BD3667DC 9FF533284D078DAE144C0DB42F376056761CFA5A80B4ED7D37E57EA658F3FBD8 8F779C828BF992A89F02F1397EF90BADA44FB7F676FF0295FF6F9748D66EBF57 5C72F67F4BEBB98F8AFA57505EC9> |- /i <1C60D8A8C9B88C087228DFC7C7ABCC71B868F57EDB285655227000619B17 1C8A80AB> |- /n <1C60D8A8C9B7EF322B3BE19FB964E04D2DB06D4930CA5D8F41D2EF3A285C 0BD536CD2C57668EB9E30311BF9A2872DFB44F2BF2A4683B5D66FA01BB1CCDAD E9C8A9EE2CB010715D3D6DFF0E843CF77C87A07D1DBD0482675E3CA1DAA2A520 3A8015DD09B7CE> |- /o <1C60D8A8C9B7EF32334FFE7884F6C3B903D000D9FD76C2EAE8EDCCA90A98 7875625CA0393015EF6761BE1C3B6D9E9DA4BABE1DD313B783BCBF8F620C846C 7F6361946173FB7A4A6BF94EAA0CB4947DD1974AF371F3C211E584576DE9AD79 F9DA988E9E531810E3876F3029BB1D2ED366525F30E48DD7CE3C9B66C5CC099F 518C54BB58C51D6FB6D0C8> |- /t <1C60D8A8C9B854D0F45CF665C7276F8075B54A4ECD6470F395A458CA2D06 5152075036EEECA213894C1EA0DACFBD370590F4B831924E5BDA5281442349CF AD2545E0750C3004A129C25B1EAA8DEF5DA8BF1998E80AE266F591E64CB5127F 5C42C88FB43C> |- /u <1C60D8A8C9B7EF32240889FE90FF09F794E92023A18223CCBE3629AB7F51 7D090BF7D55C0A5A8EADD9BE381137FE8504E8B2DB3D16839889E327241ACA8F 992A2BB9AD2BCE57ADB306CE2789439E67A64C32BE8669C197F5851EE3879399 0906DA8D7F8ACFF6D70790F06B02> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHX+ArialMT /Encoding get dup 97 /a put dup 99 /c put dup 103 /g put dup 105 /i put dup 110 /n put dup 111 /o put dup 116 /t put dup 117 /u put pop %ADOEndSubsetFont /AMYWHX+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 11{/.notdef}rp /a /.notdef /c 3{/.notdef}rp /g /.notdef /i 4{/.notdef}rp /n /o 4{/.notdef}rp /t /u 138{/.notdef}rp] AMYWHX+ArialMT nf AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 195.327 195.339 mo (accoun)sh 261.834 195.339 mo (ting)sh .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHX+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /e <1C60D8A8C9B7EF322472FA01213C7AD90A23B536C2309DD40D370E2449B0 D0FEF85A6BE8067F30686F143E75903EB6FA56935472EF47CE3F33433C2F0C8B 6FA51573AE54B2C516F6F024F8775AD6639544E339FC2A328548BCBFD58B0EEA 03B7DC3AB069F44477958BFBFAAC7196D411DF9BE0B78A86C4BC33EC5D7C3729 5284C077711C162623860AACA404F650F8D516970257> |- /p <1C60D8A8C9B7EF322B3B0CFC8FED720BC90E20B208D27DC4B8F11F10B964 70F8B4F5FABEC7F7010781F5077B417FE44279776F2304ACD6E0EA12F436330D C4B79C907B9D28468D10FF9256A7D2CA504E4498D719ACD86FCA89B33C61F556 CF1168C3F262A781155D5EBF0C47D71C584AB93037B47B18D39FE408A49672C1 E63F9E8368D19E113FC95C59A9FA4650E46F6399F2FF256844E27568BA34B9> |- /r <1C60D8A8C9B81F2C3A9694980E415F1DEF5C498473095A24D1BE11285789 4FEA85DB28AD762FB8D2F4CAC5BF8B9C18D8A2DFCF155E0751AF58898A6619AD D420F549AB7C795751D32E8EE6> |- /v <1C60D8A8C9B7A73DB99D94C9412F55B03E92C174A4755E69F97C27D9162B 37724F74F272B140D258652D102C2EAC46833C73F9> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHX+ArialMT /Encoding get dup 101 /e put dup 112 /p put dup 114 /r put dup 118 /v put pop %ADOEndSubsetFont /AMYWHX+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 11{/.notdef}rp /a /.notdef /c /.notdef /e /.notdef /g /.notdef /i 4{/.notdef}rp /n /o /p /.notdef /r /.notdef /t /u /v 137{/.notdef}rp] AMYWHX+ArialMT nf AMYWHX+ArialMT*1 [16 0 0 -16 0 0 ]msf 118.631 201.931 mo (prev)sh .25 lw 321.213 207.797 mo 166.766 207.797 li 166.766 129.047 li 321.213 129.047 li 321.213 207.797 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHX+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /d <1C60D8A8C9B7EF322407C6655A1B3652DB8522EB511BE6B0855A72D96214 58876CAD1FA22A00635F436A34E23EAFC09C394044ECC1389CD99E4AF1C1F6DD 52305C78619784840FC37A805B0805EF290BC9E049CF068290816CB7E74DB612 941355BCE71CBDD11DD0F9CA29531036ED13EFB9CAB613E9F630FBBC9408EF13 CE4683D92968530F64760C3DF85C7C7EA06EBA8BF859> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHX+ArialMT /Encoding get dup 100 /d put pop %ADOEndSubsetFont /AMYWHX+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 11{/.notdef}rp /a /.notdef /c /d /e /.notdef /g /.notdef /i 4{/.notdef}rp /n /o /p /.notdef /r /.notdef /t /u /v 137{/.notdef}rp] AMYWHX+ArialMT nf AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 223.918 154.236 mo (dat)sh 252.589 154.236 mo (a)sh .5 lw 174.793 185.679 mo 115.936 185.679 li .75021 .679683 .670222 .90164 cmyk @ 116.463 182.793 mo 109.699 185.677 li 116.463 188.56 li 116.463 182.793 li cp f .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHX+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /x <1C60D8A8C9B7A73DB920A1A3B81DE7234ACAA5546B4C65820CF3C50E1629 C5A6423BAA34A2ECA8C7FE4B71726AC6704CC23AF1725AFB30D2892FC1BDDAFE AD7BE7BD65F1051699CCF4B0> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHX+ArialMT /Encoding get dup 120 /x put pop %ADOEndSubsetFont /AMYWHX+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 11{/.notdef}rp /a /.notdef /c /d /e /.notdef /g /.notdef /i 4{/.notdef}rp /n /o /p /.notdef /r /.notdef /t /u /v /.notdef /x 135{/.notdef}rp] AMYWHX+ArialMT nf AMYWHX+ArialMT*1 [16 0 0 -16 0 0 ]msf 335.347 147.614 mo (next)sh 312.123 152.812 mo 369.723 152.812 li .75021 .679683 .670222 .90164 cmyk @ 369.195 149.926 mo 375.959 152.81 li 369.195 155.692 li 369.195 149.926 li cp f .25 lw 304.408 168.423 mo 183.57 168.423 li @ 183.57 122.446 mo 183.57 214.265 li @ 304.408 122.446 mo 304.408 214.265 li @ .69482 .6318 .621515 .583612 cmyk AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 412.808 195.339 mo (accoun)sh 479.315 195.339 mo (ting)sh .597284 .512352 .507713 .201328 cmyk AMYWHX+ArialMT*1 [16 0 0 -16 0 0 ]msf 336.112 201.931 mo (prev)sh 538.695 207.797 mo 384.246 207.797 li 384.246 129.047 li 538.695 129.047 li 538.695 207.797 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 441.399 154.236 mo (dat)sh 470.071 154.236 mo (a)sh .5 lw 392.273 185.679 mo 333.416 185.679 li .75021 .679683 .670222 .90164 cmyk @ 333.943 182.793 mo 327.18 185.677 li 333.943 188.56 li 333.943 182.793 li cp f .597284 .512352 .507713 .201328 cmyk AMYWHX+ArialMT*1 [16 0 0 -16 0 0 ]msf 552.828 147.614 mo (next)sh 529.605 152.812 mo 587.203 152.812 li .75021 .679683 .670222 .90164 cmyk @ 586.676 149.926 mo 593.439 152.81 li 586.676 155.692 li 586.676 149.926 li cp f .25 lw 521.889 168.423 mo 401.051 168.423 li @ 401.051 122.446 mo 401.051 214.265 li @ 521.891 122.446 mo 521.891 214.265 li @ .69482 .6318 .621515 .583612 cmyk AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 629.884 195.339 mo (accoun)sh 696.391 195.339 mo (ting)sh .597284 .512352 .507713 .201328 cmyk AMYWHX+ArialMT*1 [16 0 0 -16 0 0 ]msf 553.188 201.931 mo (prev)sh 755.77 207.797 mo 601.32 207.797 li 601.32 129.047 li 755.77 129.047 li 755.77 207.797 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 658.475 154.236 mo (dat)sh 687.146 154.236 mo (a)sh .5 lw 609.35 185.679 mo 550.492 185.679 li .75021 .679683 .670222 .90164 cmyk @ 551.02 182.793 mo 544.256 185.677 li 551.02 188.56 li 551.02 182.793 li cp f .597284 .512352 .507713 .201328 cmyk AMYWHX+ArialMT*1 [16 0 0 -16 0 0 ]msf 769.904 147.614 mo (next)sh 746.68 152.812 mo 804.279 152.812 li .75021 .679683 .670222 .90164 cmyk @ 803.752 149.926 mo 810.516 152.81 li 803.752 155.692 li 803.752 149.926 li cp f .25 lw 738.965 168.423 mo 618.127 168.423 li @ 618.127 122.446 mo 618.127 214.265 li @ 738.965 122.446 mo 738.965 214.265 li @ .69482 .6318 .621515 .583612 cmyk AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 846.276 195.339 mo (accoun)sh 912.783 195.339 mo (ting)sh .597284 .512352 .507713 .201328 cmyk AMYWHX+ArialMT*1 [16 0 0 -16 0 0 ]msf 769.58 201.931 mo (prev)sh 972.162 207.797 mo 817.713 207.797 li 817.713 129.047 li 972.162 129.047 li 972.162 207.797 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 874.867 154.236 mo (dat)sh 903.539 154.236 mo (a)sh .5 lw 825.74 185.679 mo 766.883 185.679 li .75021 .679683 .670222 .90164 cmyk @ 767.41 182.793 mo 760.646 185.677 li 767.41 188.56 li 767.41 182.793 li cp f .597284 .512352 .507713 .201328 cmyk AMYWHX+ArialMT*1 [16 0 0 -16 0 0 ]msf 986.296 147.614 mo (next)sh 963.072 152.812 mo 1020.67 152.812 li .75021 .679683 .670222 .90164 cmyk @ 1020.14 149.926 mo 1026.91 152.81 li 1020.14 155.692 li 1020.14 149.926 li cp f .25 lw 955.357 168.423 mo 834.518 168.423 li @ 834.518 122.446 mo 834.518 214.265 li @ 955.357 122.446 mo 955.357 214.265 li @ .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHX+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /l <1C60D8A8C9B88C08722AD20D19A90F9064193C8D82> |- /s <1C60D8A8C9B7A73DA057E90C9BFBE0FE301E99CB771FA2F05368A6342B5F 80456D91458EA2F3CAD55CDF89BFF34EEB39D7DD325B057E2BF0E9B878C214E2 BD1BD70DCABE10E0DC8EBCF7B100B55EBE94FB0F17084E21EBD279B324AEABD9 6538911D053BE9D7ECBF43F934B1033C9E405BBE31E7EDB643609C8D779046E1 B250C3CF05E6FA4787649137D90F47F85972A6603BA900DD7CB710E02662DB32 87CB26D7B7AE794611498865FC85A28083D2F6C2DEC302D47619A4A577C5B843 5558FCFE71A1BB6783AFD5F58B6D2C03593B3F2297A66A7E6D13C1E321C57F41 72D53C8FCAF4D28F2B78D3A4BF03> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHX+ArialMT /Encoding get dup 108 /l put dup 115 /s put pop %ADOEndSubsetFont /AMYWHX+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 11{/.notdef}rp /a /.notdef /c /d /e /.notdef /g /.notdef /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /.notdef /x 135{/.notdef}rp] AMYWHX+ArialMT nf AMYWHX+ArialMT*1 [16 0 0 -16 0 0 ]msf 234.323 278.41 mo (list)sh .5 lw 321.18 230.834 mo 321.18 237.396 li 166.766 237.396 li 166.766 230.834 li .75021 .679683 .670222 .90164 cmyk @ 243.969 263.181 mo 243.969 248.181 li @ 246.855 248.708 mo 243.971 241.945 li 241.088 248.708 li 246.855 248.708 li cp f 243.969 118.181 mo 243.969 103.181 li @ 246.855 103.708 mo 243.971 96.9448 li 241.088 103.708 li 246.855 103.708 li cp f .597284 .512352 .507713 .201328 cmyk AMYWHX+ArialMT*1 [16 0 0 -16 0 0 ]msf 704.747 298.66 mo (last)sh 461.334 218.702 mo 461.334 237.615 li .75021 .679683 .670222 .90164 cmyk @ 464.219 237.087 mo 461.336 243.851 li 458.453 237.087 li 464.219 237.087 li cp f 893.613 250.706 mo 893.613 283.445 li 509.393 283.445 li @ 896.5 251.233 mo 893.615 244.469 li 890.732 251.233 li 896.5 251.233 li cp f 389.572 264.877 mo 280.119 264.877 li 280.119 218.702 li @ 389.045 261.992 mo 395.809 264.875 li 389.045 267.758 li 389.045 261.992 li cp f 531.807 264.877 mo 678.243 264.877 li 678.243 218.702 li @ 678.882 264.877 mo 862.552 264.877 li 862.552 218.702 li @ 532.334 261.992 mo 525.57 264.875 li 532.334 267.758 li 532.334 261.992 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHX+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /four <1C60D8A8C9B7EF32245FD0373664E2B980D56E9D691EE5A95B5050BFE 023151494A4A591D0216BE411323E192BCC75A7A889FA57031D> |- /colon <1C60D8A8C9B854D0F461D1A979903F917C33CF6EDB0A437B4DDC7150 150B60E1> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHX+ArialMT /Encoding get dup 52 /four put dup 58 /colon put pop %ADOEndSubsetFont /AMYWHX+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 11{/.notdef}rp /a /.notdef /c /d /e /.notdef /g /.notdef /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /.notdef /x 135{/.notdef}rp] AMYWHX+ArialMT nf AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 415.547 279.691 mo (count)sh 466.002 279.691 mo (: 4)sh .25 lw 516.043 292.106 mo 405.744 292.106 li 405.744 252.731 li 516.043 252.731 li 516.043 292.106 li cp .75021 .679683 .670222 .90164 cmyk @ 499.352 246.175 mo 499.352 298.661 li @ .5 lw 970.826 230.834 mo 970.826 237.396 li 816.41 237.396 li 816.41 230.834 li @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHX+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /h <1C60D8A8C9B7EF322B3BE19FB964E037672C8A279BC86F7B9BF0C8203E13 1450D56E388301CEAE43162551FBE05CABF94DC3B5DDFBB4DA55D11470EBD41A C970CEE2D2EFA88D51157B4EF5536CB673423CDDB06FA774D27105AD2B1AC2DF A8> |- /quotedblleft <1C60D8A8C9B81F2C29FEF6324F1D6735A7858A1650FF442B8 8CE2923602889F1B3B1A969EB1BD5F20410F3DB624E1F268B8C262BA05A2218D B63CD4FCDB84E55D828665FCCF9A1929C551F51708569F37B29C42371CBCFE1A DDF91> |- /quotedblright <1C60D8A8C9B81F2C2EF77CAB1B3909C6126BCD66FE80E8DB 29C6D13E62A206E4D2C01E4CBD15B6CCAE445397315B1B2A4223B2D9E8CFF123 FD968D68396195C7E56F7437E66455F3A5CFF0D3E7C9903481BE93623D7A22F2 1FF9D67D> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHX+ArialMT /Encoding get dup 104 /h put dup 210 /quotedblleft put dup 211 /quotedblright put pop %ADOEndSubsetFont /AMYWHX+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 11{/.notdef}rp /a /.notdef /c /d /e /.notdef /g /h /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /.notdef /x 89{/.notdef}rp /quotedblleft /quotedblright 44{/.notdef}rp] AMYWHX+ArialMT nf AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 220.605 83.2178 mo (\322tigh\323)sh 462.334 118.181 mo 462.334 103.181 li .75021 .679683 .670222 .90164 cmyk @ 465.219 103.708 mo 462.336 96.9448 li 459.453 103.708 li 465.219 103.708 li cp f .69482 .6318 .621515 .583612 cmyk AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 435.397 83.2178 mo (\322adar\323)sh 678.24 118.181 mo 678.24 103.181 li .75021 .679683 .670222 .90164 cmyk @ 681.125 103.708 mo 678.242 96.9448 li 675.359 103.708 li 681.125 103.708 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHX+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /b <1C60D8A8C9B7EF322B32790B4C40581173F160A628925C2B3464303D1D06 742E51EAF8B24CA2240525B9E37D08039C077561F794D203DE8C21652F0F5A81 A2CE84BC5F560E6CA22CB86602E80E4BBDAC611F34E85189D165B97A2D648CF6 26A92F4026AFF0CA38E8E165B7E956CB11B132485900857B09AC55401998CADA 1EAAF79B76AA2B52CCF0307B360E6D> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHX+ArialMT /Encoding get dup 98 /b put pop %ADOEndSubsetFont /AMYWHX+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 11{/.notdef}rp /a /b /c /d /e /.notdef /g /h /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /.notdef /x 89{/.notdef}rp /quotedblleft /quotedblright 44{/.notdef}rp] AMYWHX+ArialMT nf AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 649.148 83.2178 mo (\322baltar\323)sh 895.498 118.181 mo 895.498 103.181 li .75021 .679683 .670222 .90164 cmyk @ 898.383 103.708 mo 895.5 96.9448 li 892.617 103.708 li 898.383 103.708 li cp f .69482 .6318 .621515 .583612 cmyk AMYWHX+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 864.559 83.2178 mo (\322roslin\323) [6.86816 6.86865 11.4702 10.3125 4.58252 4.58203 11.4707 0 ]xsh %ADOBeginClientInjection: EndPageContent "AI11EPS" userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse %ADOEndClientInjection: EndPageContent "AI11EPS" grestore grestore pgrs %%PageTrailer %ADOBeginClientInjection: PageTrailer Start "AI11EPS" [/EMC AI11_PDFMark5 [/NamespacePop AI11_PDFMark5 %ADOEndClientInjection: PageTrailer Start "AI11EPS" [ [/CSA [/0 ]] ] del_res /AMYWHX+ArialMT*1 uf /AMYWHX+ArialMT uf /ArialMT uf Adobe_AGM_Image/pt gx Adobe_CoolType_Core/pt get exec Adobe_AGM_Core/pt gx currentdict Adobe_AGM_Utils eq {end} if %%Trailer Adobe_AGM_Image/dt get exec Adobe_CoolType_Core/dt get exec Adobe_AGM_Core/dt get exec %%EOF %AI9_PrintingDataEnd userdict /AI9_read_buffer 256 string put userdict begin /ai9_skip_data { mark { currentfile AI9_read_buffer { readline } stopped { } { not { exit } if (%AI9_PrivateDataEnd) eq { exit } if } ifelse } loop cleartomark } def end userdict /ai9_skip_data get exec %AI9_PrivateDataBegin %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 11.0 %%AI8_CreatorVersion: 14.0.0 %%For: (Marina Proni) () %%Title: (02_eina-list_b-03.eps) %%CreationDate: 6/9/11 5:17 PM %%Canvassize: 16383 %AI9_DataStream %Gb"-6CNCfDD(,/el9Fcr,,C#8ZLV.`>/s+&6QUPrDp)$l,[4TqN1-P%.A+Rn.VE1m@JJO%rnj'W]7%;*GFlk!NR(N0(#R(6S*NU!Gk^L^q>7eYqfff'oC2\OmG#g>^UX4oI.m9QYO:?#Dt+XmGP(L9\*r1iDui1di:>M"pcn]gIX*iC:M#IcriT2#F.sbr(aJt*`_c9[ci<6R %[m.NQqsM_R]9a'&s6CKLR5YY[mr%"[o@qTa,/3gKgUl(@DVj1^rF66B^4NJ%X62:P\V8.p5SBZr3D@jF[34A-@q/U\a5jtd-gp]S %05pm`QS;Xi?f&PEGl&`7o=$BF1W=QVhL5:lrr?b#!-4l;)>q,@YAW7qiVk.K&:kb7pZmSN\$(Udo()IS)l3$q:[!:KKAYS!q;M#f %nDD-apIN;2T$=&.lL3Te4hLOSpUQqBIKk7r`C"*>+SQjJ0Jdog?a4r4JOI6oK@6]k.us1\_tps#:p %5J4Z/AH7ma9k.U:in;P*ck+K8pOCZl\Z[^RGOKGfh;>[.?r^O5_>k2L@Or;F7^MnaW5o$rZQMr/3SiSkCA %`XOl;+`%t1%<$ba^41;&D\k@G%DRB[aIb!R>C(A#\E-e1h5e$Yl:XVHP2!WkD-gD8HU9r%4E0$[DYrAG5$6PEm`KloqOX1jmnJRq %pX]&Wbn!%o^:AIh*PB)!GRjA[Gl-q&bpsdQgY:o4GSbjUs6A/%]8P9"Dib%(J%U:jmV_H"r94qmkmab:_"QdIq8;NjJ5^oEG6'5o %`@\7c$grXqmem(Ch2C%V06W,/hn4A[oCg5@5d+P.Is^q\rdA^\J,aV;IrY43%3@Fpo^@Po0>>1)<%m]Yn`RNR\'NsH_LH6O)h?,` %s5j4H>9)^^LO["P\G`o"YAWdl8)UP:cYm.+$hi0GY_HNADnGPWH^O*Q]8(U6DSL\Qs2C3&!WV^JNr89[&@NB:SrB3oS,@E=GX*=\ %IfWid\@nZPLlm8,KN.uf39acjcG15Ls83KI`/&"^s$utNq_pGrUPJS^*iQ!D;QSdJ01%U&I/af`/F3CE^3C+EH$FlK6?Cu7fq30= %hHC0K+40Z9Nt:^:!fII'43+'#p[aD*j'\E>0PQ!Tn6^HarKT8:'fYsu2u8NOVrRac\+g'7pk)*.#QE6]S>iu9?XC7OGp;ZoT"dR? %#Jj3\DP#=/i$HVuHFWb?rV[6cDr0Bb\p=;cf&=OFm6=r?^Oc-6h]GCJQN-L2n)(tlo#nASK4"2@6=T5!s82m4M-lj&-Teg)i;[nm %TF:]5D[X>[rtkdX4FR1ppM\pGrr/hI\&1Fa)J&*(Kdg:-$#]e)rQQkf8%j.ms#hoaG<`WlKu9bl+;\s7E$Ffo"72&X^0lB(K297, %q>L%(d/Q2]]J!U+H$JlY3NW4HJFOZ&0gIt4Mr3=Grbup:KN9^5Z/]#=?"LUWGmuG)S+NH"(K\)L5gP91$\Q=5qEMI`5MVjL4C[>P %^p;jGqpXAn*aX8=_1++-?C5il!@`L+o74Hkn9;)+2tM7.IJ"Y1os\i\hS9'?rV$i?cZ_#`rcAP/_>X4cZet]FItIau`S&Q@d!toc %rQBDok;P&$s5JZe@&&$hHcEgRQg(.=pW)1*])<\WZ2QdO&,1RfIJ**`Tf!*,Qa;1OH1UmmW'PF8^NjliE5VV?-1#`g]`B$og`?(p %88mA`#b!/4Tsoc?s1-(gY`IiAp,R$^DpJ&phS9$Zm.V#$Y70gh=,("r"NC*73PP#fHK"i^pIq7IQ__Io9;(5AVu$h.If'TCbQ#f= %05k5K-2llco4&k%npC6Hs6aqFM^6]n[s+C8*9=RW.A+AdrUqVcI-s1O%B0A;p]W>q$(]r-LV)/O=.Xj;j3?mo_YNW?CMN[I+Y5&8 %^$,@URh*TYR*PF"me;3hEZ+SS?_74Ds6BRMg$djk+I*]>Mr?W4'R2n8!n?JL)+ONW^_=aFJo*C]Gj78Jo@W!SNVi6d]G_=@olpqj %cjiZUC4I`J-J2=%fS)INQf0D6_K?iR(r/m?0ujoBSDkMmgr4]SN*#KgicQ/<8C/KUPZ(.29kd?SmF"1(VCQm$ko0C1Em,uq>_ZMB %RIZkPhW91"bZFV%YOaVn1mD*?aeb4_r'*60m=/R7;m8K3f_QuqO(@05i>IFu9Gd\l.AVG/H)ggGM09W42pkD7rA50FiQm)S@`%.) %87)79&'kt%q_2?m@)d9SD[QGu^DX2XY7K5df9b+dleQ]9B>0t?lZE5;V!E7GY/eHQiGc:f>TWToh4YkO_fVi4Ela#XLkbttiUs7h %e^`43ec';B>d^X.C:^EHjXLAsj&LU>>[JO)Y:_I]pQrM8Fu`o)Qh@Xhk0%ia0>ln]^YU(+=8U2>I_XXHrOecrF^OifTD!7)O&OGIcJsG.Y2PGLN__atE/20(&e"qjQ[4qO3.k"1k3miNR9/3u].LDk\E7+EBQC3)4h&YDV@n%IR%j[!aJ*6QpIChC!PA+ %!WK%MG+RkT"/F-p]<7mBFg5d\A"RJtM( %PQ>;@9$9g>F+QVhp_,[mJ+)Ui4oB^W;Y6+tkuB_,K_B\:Le^Jo=RSMe*Dd=3LiZOX/V(DT_;WQsS.X@)beOt;`?iaL%\(HVK)-7I:hH>84UBhejRIgIV%4 %oL8R[8Htq(c6S5[:B-o1$F^aRgBSA7=!X5332:^f!Spk0*K^OrT(]/0Yk[DZ=jM3V)30=7-U),=FBS?6`qF$epjo&^On:\ON2NP)r&DM;u>"E;*S@;CBInkofHfd<4p/d)GOf8]Tmuqi;l3R<4g$,=hn6H^HhVLQ%mQeg5-4_mdh5e<`a6Rt)KSBlq1si[m^*hR[/9rO\7@//F/F2B%[:=- %rd]6L@?skS%6Bs+Y=(75Zd\T*OF>DBrp?30gO!l'X8mdRWf85IYmWuR&A9c.I2+V?elc-k7D0Em=4n*m-QHe=CpX@Hg&eTsJ%YS_ %O[OmTEMb=rJ>&07Ohi@QS+.4!qE5s;YQmq-J`B304$.,^#LWZsUa'DJ,XtTlcm1kd!P#1n)%rK'ZhWuVRckRfG75WEXDEK=!2cqt %:Ck)kMFl:RO*P$U^0*%Q#B6>&'K$`i*?qMn/g):a]TlQ$kp %HSVfY`Q5b3d/$=E9Sm&u$7i*ALsqgp1__"T/-FVJTIrg238fC__$+"Qr&qKJ8C'`\QM^gmk.Kbrn++ToP_$8snf`5+(]X4Y#_W&coN\MH=1h;f+;,Lj %/1]UX??r^MT2h1W'a['^s/N@(Wl]#95M9t//+:pc^(_7F+Bu_"NY]60/E['5_+(c"c"]5%nSD"/B6)M5NC,,!!*K`+#$<'F/Vu?'1n? %+7\^ISNUgtG:MqTk59D:n,:,tXe,"Lqc;$epO/+fq]Bn6A4#T(]fFc`f&\luL1Uce4%D9A6pR$/d %3@>\-c2#K2=/Oh0k.3=8dnFUHB#EgPB];G?BAj=^/0:P8+FiAJI-)T0*MY`?MDD7D;FCmul_-suoH;F]G/YqDP94rjV@LVk=2rYug(H[L-dQ*1npa_qR#mN_W^hD%SnObUcfII,WSc6E:NH(hb=9RdfZ=?.^QPej\ZotF#Mr!EM-$8lRRVmjIglstIe %c$%=Y[WJp6:WhI0BlG+P[AGS$Sf5SB8u-TO+M11[4Ib],,JTc?@H+*M`92G8IL$Eri[#r[DQkfA?>mF/0&:9#ikS$0 %Rk"Q2&^D&`^50ru[L_1TG]i8:6/.*0($m38LaKX5BQ%i_8f#o!gOX5G6._=f!IZ]mEa$WbV;0t%K7ZPa_#uM#@Wk\Ke6PXlPGp$( %!iD1 %iYft5?CK@^$EssA=G6ab;_L3+)Z7G'_SeVZ%cRRW]"+BN,7?#4@%3XULh_.7jaF,Z2a,D'i0,#:[6!ZmFf(+2]&7?XnBfcJDqd(`-*6HI#fn1/Z>9"6H0M\U;&Iq^>&?j %h[cI-1j`h]3X)QI`BF#f^^P1,FAHl%fUl0rg0sMV/YD!BqqlkollLH+p*&7SVY`oCUd[g<&g7"d&BR3hQ]E*\CD22Cb%*F0@"'\5 %C3n["(K"8iPI2'&J$P0:Ch>4LOl6CcC_;:a3eQ=ZZ>:(pUS!LuiQ/PJgU-rj9oUHYbu+r$])]bU0SlQP&Dgl3GAe78'8HS""Oo$= %2K1BD3-QadYWU@P^^U#13%_u\TL3-"M3=bsdgr*A7#Iar*/PO0oZ?XQD$m/;kZ>!o+=qgb/6raN"#l&$HtrW %Y6N!;5oqVK8!s&-[1hKX3$;Uh&b1f6Q1N4E`\\D=q8a^Q[8=<9N&'DF3:Q16`q'!$A.AH(Dt#Vb-W9[,7=[)Qt"1%pH'QNE:hU>TZ5'Tcs1P:$'B[3OO1># %pU?AUAPkd08<5W/Y>gOKmca\&iT4l@Ncs#-R:f!FJ$o77Q;1@,AC&n&OolLo!Z9F[5Ul!i?PE8/WQa?31fQN^0\$2 %ejKrh_p]K4*P\@CO^&$MG@N.%>Re[fLK+IQ4N\M[Yt&F=a!cT#Q6jQWcht2k/,1oL+%hk8=auo[]&AHa>OQl2LD\/iB&Wpg1F)"M %<8$IhlqhjcNl^1(S83+q`,G[HVi[kKRm;l8NIGr^77%IZY=N+Po?\ae%-NEu+8VXF5t*M9dH8_WDH42[2FS^1!^ %OjhQ(*qhZ&Z=Q,)OSlfF=$I6ogYtAb9$>#^jo9o&=7aJ!q %Tm^YSg1TR4I/EF340F$Vp@g4i\A*G^Bii?J]deRAIaGnA3qtuF5E,4?Ps;VNk=eL=cTrGnB2^hr9fIP#m&Uf'?geY8:>pT'@lg+B %o-qZPq-RJRpoLZK4[XZRPPjD=roWYB`Rtb'3eMPZ>]LNPCa^>D8W($(`*bW@3K)jD2#^q9es.pjbD/D,B![i8dtMV7iIaE-_/e4W %FH6f^E!bmjDAaK%K?ul>ZA@Spqa_bd@CZ#"cQJ#OK4+Ym07$K#OUFksW.V-l_)3ik@>hfl#Z*b-Pp?DN/>8Z!kga4(K7m2L'"JqW %5FENT>N5S+8rrV/q.oT+E6naoomtQP3C/*F<8UtsstfOpEoH-WIj9!M\UA8OjXs1;2d=Lsuu]aa\Yk^JqYi8#_QD?;jM %gESon7iH*i7pc*G=TVq0TW`P`Ih.IWgRjZ=CRMrX>G!u95D@,:'pdem)N.[!L/Vb:?==_c>[ua!80>gaNo=;7E4bo47HG.`[U`LY %D7ceoMhpcJ%Q/U3p3mU3T[=$fDug7t,[h:Ld&RoJ2K9&ha93t1Z`R*oOmiL6s(@UD=j,l.aan<2J?h5_mmm4g=In`hPPrbZ^4tHN %*Bi>I,Q>NMnb5u]m5]Y\l!KtR]3'KLmpULqn':e@+$8puC8S4nbnH_l!$AMP(XqA?#,H)VWPE:c3RD)na%:QO6(S&m+"tn^qPc$] %fNL>-7NPuL#_3&pY>mpM[c)4lUaM%e=2QRTO2HH%U^WfE'`BfJ/=& %Mju7K;.:2bS`O8\UhOh(W,K,N`S5tQk%'`iE5\i%+7#)a>r$*0`7n)gmJk\?di/?>a@<>S_)AL,XMg*.o[ %p3"5-*L2n(=gG9AVge9+*do;I:hB+nfX"i2&jP,LH@>19*g#f2.BXq@2D$CC8E_Us8GCgKRkSsaH'0UHMA^7FRa655V$=;TBN6ZB %kKctp^XUZ?Lq%rg*M7MqVqpmHATn8OIpOPXV7,S4eMpThC3dWK3V$sl4+7VShAs@YIn]tC3DV$UWtj69boJkfhm.<,RQ#"*q%R'- %'O1;G>PAh9pMj5YMQM5_Xo&%rSmq#W@dBV[B`>TbM%uUaiJA9jNNL+SpQOXg!ntNY$\R[G`*%%@0PLg/i;`B8IMFH?(&-c9j?>^_Ap`#U#"5i]5"KfmeAp7phsiE&ma.s"c5LqV(ca,^1!OYdajN&d*$7W3BlfA)[HQ'DOpRdVNif %puli4_^!c"I*,U6p@';I%93@\c!pbu>W21`*oYH#Aqig'_I'st%$/@pD)W>m9);B?P@tP!#9!:A.\AC,L.)u6.uQ=>eicT_&u*tn %?IXUcAu/>3\=sM"&RB;tZ(TT0a%NEYIV!?E18gS9<6"NT_LuG,?jW[<,>lrtO%ar>2+EHoWN\bqkQG=F.OMstpZ %/8g;`2ad@>VOl#=87rie5#\Z]kc1c]8uqnWPCCP>^NEBJU0h=a/S[M!&pG>UO6&72a;`>@ShHC7iH\nS&T[caj*)\j?LXKS-nk)g %LkBY5k68m8UmK2GDTc[0I4U#5AHKoA* %7%FXk/@*$WW3a>6$5["+Aai,o+(^/Jh+cmM>IW?Q)-/i9V_Z0ffQJs)"@./"bj^u>n<-%JJSkkm:M0j/!#uC/me;t@I33\3$p4GZ %)p03KG+u$/_X;`CHV#.38J:8OP0;G?/s6?YH@WQE$V9d`Oc_7;BlrT1K$dh%Xor&h;XgCm+?eO71=0;\8F/SXMd-m_OiT(YOh<5I %OfUrM+t6/a]jm@P!cbiJh1='8I+R %c1/m"*$;onG5/lG\'#^Ng]b20])Qr8><'Pm+Ls%#DMP2]4U%PV$7K=O0/]P9'tcA_o2RbSAO6V=jf)XBb+[]dpr!M8XRO.8:TRs* %n7=Jj)V2K;?Piehms]_&Y<&9FE..2DNsg!6AYmV5jpnbBMi-Tq@9lsji"dOrWO=t4987(ejJ %OST;H<\A-67SH<3K0(>rD,E46SII5*J8:X[;:fip406fF:4MrtGBrI(B>)@O9_grLA$r64mI"['Bp?!GOfs50-RSfI6rU[D/ZNE4 %C/l`H=kO6n-ih_r,95`M:hB5qI_f$.qMkrgA6]em01PjVI5^TbSjM`)u#8MIG(\jiN-&DXC^q'h6=tF6rnc8es%)+uop$_T`(adiF%BQS]+-jikE7IV`@H0\\pX70W0Mot1OT+XdX*b"#fFTPCJ*m.Pb&'mDua/q!m=UehejPp]EW4,Oa#!\[a;:u %DQSmsMeDIaFSCism_]9Pp\+CHh.)?>n?HYej1u]l\C1osDoI0QBL`JpNt61(Gd,>qiUP-?VVUpM!=k`;GC=:P_l(H4CkoK>PbsTA %J2)sf+T&_ZqPXpH %?"-hT)B[,*@?o<>;>C&-J"BMlO/>_:=iU.\_u!C.'Oqm9Xo7mLZL>&Zqql/"Y*aU&'(W&gF5cnsSGOHun].U^Y)1bt7^ps^_aa[o %=UCY!XNk10O7C"'9YHeH_^o]D8M7O9*\Pm0W476ehdNg^l5W&r5?k,eS7'EP3+XM6=7Ub]I4p"5I8>8uI;c<;k,$D;FM2#Qg\9Lt %SU01?W)R$qERi645PI\=-0aR[D7\fb_G+W`4'ATElA#)jBB]"ijMHD3*AO.`&NC7rFi"9eQGd$fX]GIB`LK8Z_\:_i=>,^Bd;>`V %8[*W.pe:4Fp]Ten?Otms!SnX?kTo*7AKB0,n.G29,WTl=\F8AG,cIQs^q1m\Qk+@Q`o_[&pZPPi^"ksOU%m=fZ?*R$X*hS>79SE< %:m`70m.s+Yp)b/Pr[Hb(m&pr?K];_&9@4C44=+=,V'W\o*7j/[=J1l7*'WW[c&]%%e"HSi6ZKc$]>Q?c'UQ;D:='u'UnhS(bYJOn %k.p.UML5>unCaA=^-3Mjq2$8^T8(W5V0ttG#1jgnPd$_Ybil]@&k+'_H/i!Srh6P&dJ\kip:U&/*$fPg#;?XYC[u!a5C\Nl$4hOH %RpWS1nkj=S53g@!Wpn3[hJ8B_:SE3QGqD*B%?!jLc#eEI(G#o7I1R,$[&%=%p&5Qe_/X#Om,12C;VRmo'LdS$jJ %#!8ot[bJ&h#mp;as!OKD;X-9c;p1_)H %\DB7oHoEUV#^QBMp#6Qmg1mQ_ZTN30,SXN9Tf-S`FpZF2i#iL=g6#b4MXnG@,Z!HOUn/.n(mD!H[+AJJj/SEl?EPR3\3#_^j4GE4 %\F]660%peFm03m*_\?C!7t+(#h4qi,E7NrF4shX!I(ha[R+n+OVC; %8CnI]F6+U/0(#=YiCOZV1b>Ac1f>bN-S4h&QeAah>[!47:J'7>ool[W(ADh(9sL5M0:q@C79Y0=9Z(*GT2n2F"*;/E %mGWuKrB;pm_^D)SI<^LYXZg?NIdMV;!V;Zgd)3N*[hD"&$lb;C,3u#- %0A^pViJ1`"p,pd@:MKf:7HnL)g5cuEZL_/KT4TiWQZlcJqlVNU+IE>YQX5j^5+(0.2dVCk %9kJHB.aWOG-*]^U@N'sWm*0^a6HO75&OU;>,-.(!;_ONS6?c9a11nn'Tk#%LK?:24ae=eAB80)!2K!+^E#OH'>Zuuk""JLm/J$*s %7,)19;JFBn?JkXERX.-h/(hrV6CBkG[Yu$SC=,HTbSrh2Nt@PEk&gB&;.*Nf,FpS`>^@bDb!hPVsoBb5)!M"HekT-cIQFc;"2SRkYLF! %f'Z,>r5_TRT6BDQUGpR0+1[F"kk0$>HF?o,IH\hb:UnJ`3)WKH;sGktq@&E#@/ee7*IigaIdor0B6okUUQSYJYPhB6C)X*H)!n2- %D*c>iprj]/+2;k;%D(LsmTfea>LtOOE9,UC'AU5!Kf?3=bFKd/LQ<4_l.&P1hT:t4pg;-.>R.(#>#Dhc>q=XJRNU:_T*g*H_D)b4#9o#7W6]9P7`!s1@Xf>ho?^.G[qF3XM=G4Hk+95(?b\,8BbJA9LK\?pX<9mJ7=JMr`m+$A(>5_ %r\L7Nh&-2?>YH-R:4!K4:CsonO?F+B/0ri=p9lK_"F-^_O=qd>l\B\)mI2uMXbe-(DX[:@K,_D35@W0c95;1FB'=QKNFA_grr%+,F8Ercd5I,$0;)_>b*\Zj!"7gU6BNP@>gO$6< %)d2,Z4s$DXO[mOR4Eg*K%p(BT*cT=]C7ehK@pbN(oTr?0'fOZ>%pU@eXq##aqJE^K57mY(fqOC%ST9t1>knC07U#!4?B'$Qikmcd>-IaGTOT5I\tWm&W*t,P#SuiP##Y]9#&Q'TTl:&gmAU<\TAQ.ic;.bL_TnUQn[0Z4`#tC7u[A_>JLs %.6Le(?'BMf,@7547uFU%]Hk,-Y=/cN@NSL3YV!Idrib"dma[2iC_9\aIQ$XA3gUfOb<%ME.b-o<8j&jqr5>*eZJ %R)Fc@8Yl5o#EX:h2EO`G:S:g^9[Q'UaoO^J5TSpmQHs;'J'G9GQZDu(jPd@a!(SgA3?GoL=,GnLqG6aJpdOpTHhW9qW]cO5VcHt.?BWQ*X_VNPc=RC8ZBnIJ'aU',ki;MXd?-\?8KQKp3hg@ %F?*9(D'H*IYdhapA5I$!.[56Ie?kZZSg2=^XiUKf>[1BH/5p%1(dhD>0?Rd,`9G(a@.QC"eK#hTVB+FE:4qt%>7(AEqn%X\hnFA] %s6f"I&)VcpFrLC=iU:+5D\E*4[lm<8 %i5bj,^jeMjB>6Y-VuJWG]cd(lIg:J*ES`^Ci&uDkYgp2u0R`]K&UXkrVpG-.ii# %?iBL!^AqVXF#bc6?it'0Y^lLeqBl0L*J):IcaK2PoKE*oB<6=X]DN)M4AGGOKr&r6g)Lp4++rgic]6r4n'HDHWWE8+_+EN]=:OGm %9kEko0po]Plj,fRNqQ'%pCs+VH#?Ol!k!#aa$BXICM`h^HEC44/IHN^^i(6E\2dZ"dLX^/VQB7C3KU/?;W/J:F2JW[IY<"L>bZ:c %k@"3[>J,Cnk4rGFDaCMUS1)TWJA-LAk%A(]:VVPT3's>C#=:FFPS9n4%q055`+=!8,XEmdU<'2RBYf[@^Z1!J$-[,sj+&:(C]aKb %C]j6lTI+!d>enm;p;\18nd)ai:Fn`u$037*?ju\'O?b*3p %d7sfG0?<+;Q(?!a>p()[pY=4$O,>JK`]Hen@k]Ppf(aPe_603*%V;/&C5(.*,4H1IN>auYfFUEITq-9K\_RTV-:7f.=c$;_\]&k_ %jT"I4r4\K5SinHg\LdA,)0uGJfASHPI_o7.mO&R5IEiZ"on_s5OM(=(KBXYf]orAD6h"$$9PPU\c:@R@mNF!b2(`PUg*N\mU0E)/H91Y9p2Ag&rDE*P59u9((rim&r;Xfe %*T"]?:caZ:+Q'5O#^6%#StY^gQj.XZl*J*.Y]i5![)i)!gdj@!CpE"(<)^E6;66uJC%!#uhiOafo8:9b.0L`:$2.VJ1HLnK.^ %51e*-m\13C4G1aR.Xj+DNtL57?oSDO/o`hu";h.Vg\E\C2UqWt*"`/m:LTPA@men:TWcU!r!@'k=$R[=D[9P>]&B9d+n3Yh@U=F& %/03N&Qi6PePqcPSMmd$q%Sh\M@mtEj=h3mMcGB*`2JdD1>`L^UJ?md^FWH(3JqlE&5jf]:Q%GiVVRE6Tb2@0@'Rl&+C7; %26;E6;h'bX$$lg6ZaaE>:M0E+&kJTSV6^q@5mrLY*k%SnJtb9pZP>GBf?ONm80.dNP#Lm7@BZn.+ngS95c1+hKqo+r(cTWZa:*aZ %VR'j[T]J:3aCYiU4?Q"l(28[b2Zj.;dF"$8KE?i_DW-edc8fjIi.lCGSg-4ea"`?*"@cuqDMt@)&X^l,Bb\e\8#*6G_ALZ$^u,iX %[S9mg#j<%3+K/r,JT6X'+@W+NBNl-KVBFdG %-57P+-5>E$a&+f)1b5;F!Vr((?k`)pirq+HSS,5S7F6'P+AAg;Rs(kD/:rSNSDU3b@fZ31;;%5-N[f\[B77Q[u/$nWk3:1[C^UMq%-4R!cb%RE`;B]d5RJ>nR81nAVt1D#;5R>^b?Nk5[EHI1UHkWV!\BI!uCU< %Yfu@]Acr9M;(#$q&Hl]O\hfeBel$fJJOD6r.G9GS!R/>_VF_)05]X)L%u^YTM2Sf]GesIee5UGlmF7YKe"),3;6A(-N3tAV!O0a= %&r@$uD,t-+Au#\>oLmpoF'$l(Cq#6PVk>=QK2q-(.WYf3Jl.4DSebZ_!rZ*\m1M]2.^MeQla#8',ljiDFX8CN0`Z$<]nl$UYdi0; %>b;kLN1OTdS:S.G"@cZMGU.A(O4&3'4^WCO_$`mgAn0Ir?m(PR]qM7\Do$#ldS\EGqZVh]fR9dW6)PVJ6dWiKCE=6%[[kdTNMae$ %aofF9:%G9JKEW^6/?c%#iGVG`1:=V9+TRF6(*X)'!>qW?l%22ecTkC]H+M"!"dm?LrhTm8S7T&R2qDC$F0,]T13qtkBVUB<'b'PA %)GAGrJTugQXR>g]1bH;>7fWt55H5bRC!jJ!3\?Y-Q+#//9g/hs63#*MEm^13Zu'MXVQ2RI>;0!UP(j]96kE?3_^GLN!<:-KX6!K- %NsTC`Uu5DjL$Hf/r)ms-:bq<"'@GR.Gh\Ho0r?]])6o7Fp,TA]7m("Y/E:0C.eAAUUONjEV1@@HS3=N!h"WTsA/ %CC`F?YGPhLBV1cG;GbsS&H>FSYdZ-7;1W_Y$s8E2kU\?(aP^L+]6f" %#j\@^^*F:(.)D[-.bVD$:f[o?">gWtG'eqCe,V%&AQk(gc2oD-PAW9iAdOE5`Ji!;%3dLi9#(hc$iqe,4BuuN$P7/_`X4O8+GaUr %!=2dpcr*_)&:JY8VGoq;\J,(aQEsIiPnO.q=Vi-A?@YUK8/2:=Yr5l226-cg@/*k9csQi5O%rf@h86t1o"Y_Y_?[oO>i9?CHHuV? %c[huP,Qjnm.PM25&8E/]*5O[YNA5CpC4nDZM$U0Y5+kuad7hP(SVKp4V:Nk"&)J=r1=0Rs&qIm$8c\A_"&!FXqlqog,;AC< %SkO$2T1m7.kFkD>.KWJd!>p`0dPDfHg3[KU#h8-0"@YhQ7CaQE`b_Lj!Or?)']hU\VG`Z]6p+jMgQP1?<jL?bGlB4i!*qt/M751:>&+; %>Lb:53XpZD/cn>!kK]UX,X>XT_F]\/Rn\R[c(\SM>e-hm'MAgafiHlbWJWSMB1"RsVuRCtHe"0O9^p1O9:(d"T[Fhi!fh,\[\KgC %]&iu.PS<5Y7P):2FA&S]CD[n*iQ\.%IHA?tR048g#d3IRR"MIpYR!klZC?F+@?Z\n(*7c-RdQ'CZiq;Pc=16M"bB6LK#Nl^6)qAq %o"GSfFZIR$0;O":Q'EmN0$k %cEO(>U`>lD,/@U3+*rXgU'jeAPU?8A!5!,9g*d&](q\,qctaLb_ih(2/iq?Er8oEO*Q:kZ5W.0l7Z$&8_ekS]QqW:7@P"7']:/'p %\kP$reOfXl^.lFI*j;'/pc&O93$tP_$2ToEg,ei6i`<"ARU4e1][(%A63>FnP$`$oM4pk0JLf;&t@NP:I%jVC$Sa2faNiaRk#Aa3]X%@-:c@\ %0fbh8"R$XUI6,O@7OHa0HKF,.1-&LUW$%((eY$Y8rjM2M"WKCa5FI(I/>B.[;7pJi;h]h3S`9%*VeupqLT3h_,d+;9S\pSuA47&n %&uVG#,X&C1WekFZ4g5*Xqtlc"]@:(WAuVB(W\:*P*HsCDKXPW<-qs6Vha205gX[]m%_t*(i_ss.+n0$S%@]T_bU%%/4pjVaML!o0 %,>."LY>`9ke/d=4&KkZpIZYM"0X_^O(-W'iW0c'0AhEa([Bd&$6au^Y1$_VHGuWD&9(_;8/8o+ZIr` %Fa%+T\+:YoR[Q`e`k[#K[Ed'pk;s<"[fNb-IZ1kJ'VM[?gHJ<.*PbcNoTJno#femr1E %O6AP8N(]r[G>+=C"T<)0B9#h09*Ei5PupN'l6.*s=_h]7f?qMh!h_S'd&tdAU4P)a^dQ\hSmQSL+Q:BN@l.u=eA6kee1,ZQ*R*ZK %l_Z66eH?KG=^Q+0TJ3r8F3teITJM\H1fp+WJjhm)@VH>Q(j163oYu;Xb;bqc?hf#2:20el"f$5ck?o/0/+!J`m'K3SSqU?$Zd$R=ffuMmLA&bUS<^t\?i+u*eEVJ %(&a('@+:XF='=^+[PPG1c=dEndGdc,"994<#!3TaN3&_V9kTF`9\?eAN%!0!,K%F8TQmB7$jI!;)OH;O:C'W;X$E,J!^iuf+cat, %-RY[f(=OO'9?G?7I'/.<#q`>E!_&bsC1.@<+:t_O@<7N]Ut(=[&Y#3(U1ng$L=+<4d/0:8ed%l2pBW'X[EuPMlSQeC!?b34'k'9p %crVi:=O.,Oa-1D'2Ek__3QIRPoei]6h`UZ*\Yb.e&lgKTX*-V'1(DQq"N74[oQo&oQ5L_CQ]Jk@I8-_rAWFHtL8,Wq\bD!,F*Ih` %D=C@rT!8la5RN0U@'EK3gJa#Th6CZOel6h1%n4r!n\eGBhor'%Kej9SmN.Nr"IPAGe2Bb`^gtG:MgoP)-='nn5O1gQV?LfO/@7Qu^58?Bb?uAFKd\:j$/dV@+**chg8;&?5\P=#.ZpW06#8`&92F51i4@7ss(cm7&2;K"2 %XKI@:&knDNqk1$(#8%^D6jVP!qf8[R5>)ku4q_k>CW2flkPh7Z5Q_b2a]B[*8HhS;ZZ&:a"IcMRV-9 %qa+5p.237K&1YhG;)lp1U%][9g[2jo18UYJeKm5Q,]-sSeaZ]+(kl&6aAbG+n0F]TL$^>of$H@g+u&[#P^Ze%B[$N*faY#e-K:6P %Dl&_b(XTOj#&N"slI7YI3C$u@Fjg)!M]4"2aQhZD+QWKRq*qJn&ab?n@`3Zl49(D0piBPBt@r4,"65/4)"03$JEFZA=.YiY-VdPr:=:JhL/Lh=Y,S6UiL*<2/@L2gpO\\k=M0u,HD4&LCL4RYW,5?qZhVl2;s)UX+3s`-*NFK"Ap)k5kXEVS/h! %oPUXs4,#8)r)-D8)+BY$T7ai7Eg*@`P-M!^7BPG=#!K(RY_N/l5$\q3ekM+@:)Kj;f$Vl?O# %!-OWo]EoU0.Y8H470n2FK=LpmQo0Pj9;*2iEXY^pO %g$,.a1?eC"$#@-j5l3H6((^S=c[Ole,UU"dF:Td3BE^I,Brjuu1c9*-RtDpK0!Sk<0gm]G+3K][[?VT2DQcM9Sn&t$,Xp'UEsi5T %:iGO*''1i.0/s8TlTnD*!7)^FIG$[>LPL/Yse_RZXWi4n53fG=tmjCmd0WHZ#k\7#^$S(uHeJ'G4,C2"u`VdM\uRc4W=d#\M8& %P28A9E0!,V/8#)D%U8#&Cf:BdB2bM91i.D'Y$XPGdPCoJ4s\1*JLr-M14ToqB8`JHBI3l!m-;s'0eES0.`mhXeKHmdbtKVHf`Y]f %9JDa1W.A[2`iKJYK[sV1,TIUle"(4d@Z/$IdVKPR?<.1YWA+g,8h2Z#/d?GuU(S)OX!e%/O+@nA7%EXD#fFH2>T!"*8TnVZlhkM5 %APuS=G!IsY`6MopemJqklgJ%9#p!=XGEbZ[J6B&We8tBFr'paiP=E$FastUP1k[u4j:ua7jscV!*R/hj;DoW_3Fe546Ao:%l#o5* %*%:cQ`)RpVo?.cE98H9(.F:a7C`(0\*G[A@Al/>'3Ok\l7*o0IMccgaQ6SpYXT5E)>DhDS+XQ;df[<_4kZ(;;h7<]`m;$D9\I6QS %H%XL,AgDkIFAr'1^eo]/;jW=^B\Y2R;[.E9WRrPf\tmLbS%esO(=7(IHH" %m)"l@@FS_ZDXq>YE9ILgZPj[JBNUXB/ilL5^!0eE&d]7,d^#8kL6@`,bX!N8qO1M/6j^XOQ_&j7$4YO\(@>TE(d^F&;:F"XGifrg %.Me;5QF=T3dA2$)XSu+";o2$;cT\ao%:RNL82KHI1L9f1KA@.Lq!Pg.!#6I!.&Qg@,&T#U(9SO[KMEk\O.Ia2\ %AM4?$Ra!OB*!F(`B!Y5$pe,)PHJm*^_3g4o1d%=:hc!+^9IrfE)`@1]4dmMac:86l3A.P)QSl@ %8?&c% %[=Lo/LGV.&_+b_9O8r_iC04j(h-GQ[2!M$Jm$SoM*]Z(B)iAN7%rUQ)%(_e0L<,)t,H)`/FNr1S*s4en8\3t0NTBQoW*&g6i[p%S %c<7oUZiSE[MB(g$^m]A_[i,H,3YZ4Z8pn>m3XZm"#DsPX!`8PM9RP3?e(A_A&uRfF\[#`g"lCg7(^dUF0 %dJ#L?5%8A^VJThm&P-6-97_uV8V,eLhGkP_:i!EP6/3W9VBPUmkddg_D^C/NZ"GGD(ASnr\dl`RW8OM9DF-$7Ms?1?]LeMs7<`.! %p7@]f.>d5R@ujGH8J$#qZQ/k960(tRD^apH/YK&R4p!U'hQ;+Je=:W':`0$fSF\69j+3K)D^[hR:B6$j`59H6ab.I>Qo2+pJA`!' %MiFf$PrWfH#9bL'+%o=YBIT2P*0l75B!&)+ahY++Y&%(0oi&f!1Te %ZO_@?Ma]EY3[@hKIOURO'jRDV.Al&.9/&W(3.4MX+p>4Y;qnpg7YmH&JXmD!'V*ia%"/&Ji&L!a=H*e!.b+Gm*;#%P4Zs'VTuN6D %']MSi;.Hg]bT*tWb7^&!V/[c(/%@Eo>jYKAZDm[0e^dU<<)?XIf&<;Y8tiA).QNrU+Bm?;%]Fa_E@.XpjD$9'N$&8&fnl\2kXVW_ %rB6Dj_E(-53=fS`,"X#[.boKSlBGsb1XJ_m8B[f_+F9[hJnn1=^KRJ03(G\7AOR^*!EVl[F0\f(N(+t:Vr2#%,P.it=k->&>ZMgM %(d4aI0r#bp,(^klX`!Ck^[6SW#cnq<3*M,-m.oqC4/+,C7AIkl>03fWkg6&l&_Jn>>qFo*O(57)dD\UD%PXf%J>b1-C"*gn/`(.2 %_9nBs4HjsjSh-CU.XE?r'b)1X$ml1e'WV:nHMU+[l\ah4nX5CY?YQ%b[KDlI1H!=4f)K9bC,$J-M1,F4k=q/M=%BD7gGl^aI(=>Q %V8j!bLl(#X2.WZ<&_QCGdP2.cQo1P'B&HG#5s$ua)Ij>bSs\g%*np,s`CMARC@V%^9J^K4:A&9?gQOK_@J+p5QOd.HdOB8E9mR(- %R`4/R",^"dK4ml<8CiD'oF>!-9$mnjChpiiC@_*MIghFEA,g,DR-ckW:d*#Jj6d%TR\`oT_P([q]sIid#bE&,,1rf.KtT8-:j2tA %dGFISYmu?(TP;N$C2Q\:$B&Su*\GIcc^*L'A@K];H[cFfYMN3-YQ,ePQGPREk>]Jioj(Lld^OHo6)#RhD8Z\b%!e^"Ml=_FFXg>k&Gd'GYnMcFm]cZ[eSfnZP\o$Z%+_5>aPYY8>'J!&;j.FCPTaC">d %30J*ogfc.`<:FCn]242S.3F8alQdH)8KBTZ#XP"8rJg"r8TG&9mbtsJ.I&oQ![["9bLa,JX7W4?eoQj$\!5%QT-T8?U&r=jj/$Kl %8*B3KXE7,CUEta7p_]QA-f?hFq5W@c.r]#D7f"*Lejd)d=[/Jca_1i5-%Yq_d[".mN'Riid132Z8e4mX!tBN^GKbU?(JNlBPe`6G %incWm6C?%/m$r@KdSZm:glb=k&q2@V6?Vi@&KM6k\<<:Fp!PLlq_n^[epj*/$A[8.NFhEs=](i`&fDqu8EO2maUgD0AKl/B;BN.jL[HI`/l&s`!Q?NcYK9"8M)k0D]fqBF9R]NM8Q8gGVD4RsRdpe0PM'L6C+B"Dc@AQS&<&gD^XqPYZdqEIh %GuAPp1o-+"pAH@2,RALNYUh(eh%>m7R-e<@e]$@e][.E?9[0%]_UgYQN6mXrYK2`hnFI/o)=ENT7?au %c0O-_X';S^rSt)aIW>(2@?^`eBTq?Ro_OjmrSR*/m\-h(VZM%c=H\%a[8JSr:mKGf`'?ApM9MuZ8$1pEAW&%JnW:X$U^A!FG:Tm% %Y+XUQJte]4$"t-Ub'*pPlq,ugCKnn<:_uYC9YR]oVr3^1r<:WKq21?`!Ig)l";JG(57FI1(&k=n(M::8f/-S_W^Tr?!)3AAT1dbZQ5_)J^0phXOgiG@F[50l,O"(5MQM!%=?n=uC"WRl.WqSs %^24rna1A*u:cFA9UDh<+k=4'ViitIM3='Wj/2$r.S24GRBZ.[(o %"m]2*[?ab1T_I4]:l-.WR$MT'F&m%-[g\,&9XD8.sD(BA=,X6kPoKs%/*/TN.1[a-7"lA=$,a%p0i*>)[ZjjER1Q+?%Dmq;)#kQQ^5RL+q#`>(sm+qG&*,ZV4sSt>iNWSM@Wic"R*o%4g0=EY)TiKiOLB`5gY=",mj!)j,2_o(YdT34 %Yhhk!Dp`$\N"NR3`K,3\hQp0el^p"1?F:3J!A %:AuAb]qBg;q!5mqj[,+(-hFYr]SGCkC$q58\O;24h$RERi0NYEZIV0Qm&MYXW'I)$5QCIp-Omo]=?A2sMq3F]#@9$e@L"olbk45P %N50c*g:D9HXBQU)W;:g]&^(buVMt^&hQ=TP]Z@TJ]dfaj8WBsB@Zb:.e8\&J^Mf$>1cLK$6fd#"FpAfn+C1XnY0CIWbKh\8-W[hD %g\)4>XIIV0b#G/rQ;PXka,tQrE'V1'QIQ*XZB)t %9LWt;R=@\%+$CGk915Uok4g;2@7eU%+X[e"l2n`%gS/&RPnhj[PTD5q($mDnG-"-U4S^$(:oUM/F`%#c*7bQ.:1c*';Icc4#=WpI %6`"`V"1tmbMFFKp"]Z;9e87d&f@gF'9^l.GO?9-(/$rA'G=[YKT]A0W5UERVf!Xn_E`gp-30gmB%Yp^70\.M^>ChG&`i7n"RUp?! %72>J>.0]:h0Zn#:X0rjcP/7QA#>,Mk\-bu3Csc\9(>Rts+@&ECHgBDZEB1*>)P"TH`6V5cbh/.*!lBR9)OH"(.$0$]H!'(0=.g0a %LhLmI"7gA4@I6>EJJ)#"=;YW!1=_7>>>1%BJH1t>g0<1;O3:tfd,8Hc,0C`4>smK``pMZc^k#utGT8:agLZ4:_UkN&3!#;W.?*#i %A!t1t %q(]*C>ro&Y9@N\X#Z)+HD\m9f\/a'7%8L[o+tms,kq%tsG8mce/K`1oJbHC2U8jVEWODq9&eXA4:,0`tapt5nlh_\R3>EV"@KG]e %"_[t[ga1P&&'D+o#k4AE5Q2\K[6A+\Z5N6MYoR&Q;]'F73j9YP$_V %NckSil[]$R61:pkgW(%V"n<<:6rEjhZa%p>6Q.A(S'0UpN#DUp.rn8a`*@_5kt]$!*F5LY'_#>,LD5mIXOVXm>K%GgUr %&>51d46tVo@3Zj01tTZ$i_"*nD\MbE24gT!!G%V^^?pN:3bgnUG]da:CJ>R(D1Ut*c% %[XD*bl\5J=1)qb"3i^k6`NjJ[]S[tUi_\Wb=5l9AS=MMf9n>o@\Z=&c`>aMq[YD0l;\-fd:m]JWOcI*dFRO_[)+!_mCYOX+Yc]Eo %192">`];b+Y!iYf\-gNI;l&ZW]VK0bY%.be:l-]*^qO[5HkqdN"/Q6[5f(:'All(MY0q>R&>2p&HgBDZEB1*>)P"rhV!O>I;%4Ak %Haa&d`&bMZ3'U_##*#n*EX(P*aCE-GJiTsedf),-Y]c]3^j(?.ij>T?;P\l)Xd0t5mPN12f!Xn_l:c]Tc"[fRq, %K7hs:MEE8CM%F:fa;jG"M[0*61MP,SZpsNTi0[uIk4V49L=*qPmgP9QH2`*L^g"7PgP77t2?4XG;gnZ*]fX4[X%*PKJ$Il=T %'%X=$/!Z]l=?Eb2SMhLgG;F?2=HULOqL&D0qqBXjgHMY5#cnm'T"nIHmZs`iBJiN#K;7k@=D0%7c)d6oH<)`.M.>DLPtU/'=?CK4 %X:6_gR[.'R(,m7!R(hGSg0=8:3Ku#qYd*sX;sl;H`Gp4Rp(S#%)5d+jP@257U^)\m%JV<>Cn*TVjts<l:BOe5EQ7B='Ys"XG"!gmT*`-A!C_;PU9Y:[=[V.L-.O?O0%WS`P1_M)jJ6$\UBZfTMs;u1Fh1f`&anWg\3s`8mC\b %CYQnkY\n,n+sW-9#N>;qMUcH2>_V2565&"lS2H9KE8C&Hl5CrR<8+?ijk=0SJ=aD&dLP<`Rk,.b[+[_SB@-PEr:^AnPh!LZ[XCs^ %l[&K,1?%FTQ)8Ul"^^Xui64VL\A'KWBq3u)Lh!1m/fgmt%9u?S\#l0;]>WESdK;q2i7MsXku`RD+5hGf5c(XWf!Xo*E`b7W30=M; %Q#9Jso2Khj-'ZQeEd)TO;gKm39@ph@e6tJDU3WuGA[Np'LXH:F0flJ`Wk1r*C.N=K^Ote6KAXLk:L2^=-AQ_,r3&':=OcXF;C^b` %$J^iaWDJ]]hb%!)NXGEpaT7[,P`;tdgGkPWA*lPGJKj;c]a)Ja%9="pog"%"=7*,*l\B7X2`*LZq*qD3kWDUbCY7GMS1K;?PWPcL %W9%S\9N.RY""JGd;dn4bR)8-mQA$)Y>+Zl=qkYrJ"4u^=p-=-t?KpjOD',ohh9b(Zjr8GpCXo*;h.#PR#9G8+3_B`2U8c$hM:6TD %;-b@KeA8OaO8,h/h8PX[=;O4[DO4`_Cq7>BpY2lt&*@]oa7n/mmGi4h=#;n%%7fO&Ra,0+kK^a]9P$m$=RC45:]2PrBO'sOTG_Y% %b/Mh&X;shp0E_TGiq!PRo2I[+8!q$H]BWSRQo`7;nGhN"\:F6jkNo::]+m;HH,X^3>+ghXC-r4pB69rc0(5/o %D;+\\3NO/,SB?N&JtBBL#uceg$C%TD\[T-'iNHOKPOmEf9F36Bm9N@9,TPDa4-2Y/A6!#=XW0rl`Kl*%rTaMaZ>)m8gHHm4\u7g[^r(@.9>]@ZF&m-Ii(msniT,%,8jkh&ZdI"adC*Y?\SCV=k-qm[(#L'B"]gTX:PdR8IDgV)?lmA@MTp&I&ErB-R"3k1J4r6`!UD;&Cb5Wa'o %K(XTM"]ghPrVN^Tg>5bDf14okX[`=>20p8Si75?7=p?G+eImWN4t0YI*RsK3gh.3l!GGXnK03 %m"9=,2Zu+*H%n80=?X,Ag!q.$VgtQ!.&)0kId&lLQ'*.Yl'b+*n$/1'C&8TG3'/h)[G7HqEN@<^`YdOtlp!-G,O9/3]\9Y%al-Kc %raZ4:`(4Fh6)gTuh$2[,5/XCeIa`VGH?g4'/^4<]ZrFA@fljgKggTk@/+ql;Og""P@L^")DXW,VQ+G[Rf=$a`@GT;g<$iMiDIY\( %'_-U\!F$ZBOh"aY1h!qPk^Z!g5/pDVFsG)V,?,:1g/]0N(+iKcAgL^o;8==ANoll6PI3Wb0e48fcR:gSSh%>%PdS %((-!Q%UoGSle*G@*6l"[J,kkGg0*%YO&hB\-udU>]&bbY0]q0qg@UQXC8o^-#tE?KUcT@uW:UC5Si1G4<>NL;JTL,Km80g9]0s6g %l0_h"TFog=C5u6iYRKid![#R]4(T:q%iKtKq"Li3P(7E@]ZI6ri*JVo'g(mNPu\O?HU8[l4Vs(US`"6aPt"KG"RX:30q>qoMYjug`o;=0g@d6]S=B&@/?^\"VctBVX;["L %p:;[Z25s_'T;BCs_FmC6F$QS'7SgV(X<$N)YrHF#S)TP'$7i7]^)DpqXD?RGjfkm:E2o_F6n/#579DD_#OZ_5J48PY+BMtt %AZIRu3.(=udB[ZAU?h9b(j.<=^:?(_c_AXA?3W- %^qF37iTuh0gt-rh(=uL:2EAt2E,N[FZ?/.oS!C8G,/CbbdO[GhC4YZQD4Onc@-ta9Kk1;9H79>>YH6`0i2a)l %hCdOUEB1*N)P"5C9.EuaeQ60^J@/o[b'M[UCpd9)V1Kao=;;Sk?X1)+V,eVR%dZ&T(1=81@ON&98\aXCYdeR'Qc\$$pS_X*r9mL6 %"V3%u%p^/RTZ`\-e<_'`p^o:#HLr$"S=m-T&*8$.F6p.lG,QLuJ %WmD3%+Z^a,N9Y_mgEQ)[/#43J/$M!PYEe+/p8TUF"24hpl`=mV8*-sm-u^Y'0c#8HMWRo#BWm\Q[j@@$MllKqj?i'!"Vr55(3ah: %Tq=nPF:;pi\dBtug2!NEUqNdcl[Z1Si]?DZp0ft_CC6TU;N.RBl_-tT^uE/CM$M%F: %f\gb/m8+Rl!`?]AjMW)mc1fl:km@e[#WSr[P)WF>0Z?\)bh#/*O]2HO`[Q;nFuW8uLc0&$$X)V,?,:1c7j %-UomJN-RRnQ)HI3`+7u6[:_2UggN7L'_IX&[uCRl.Z %KGfVM;$G"%>'3)?RA(:`Y3f1>0E^bNYYhZpN=[6,2._5fH^fDfdFqN('e^BP:.NgA6 %^0M6p@Z8S&(jk!LYO5=P:9cjQ\)879CKD"Hj09UG7GL]cB?X;DMWfD0ar_o5'!H1P*\i"3p'b@`6.=_UZa&,f?WMkCnX3#7BZ]i*W]!H6j$iHlk %;oe0RY54"\>FcIheLITo*k:Jc^:17^+.'mVTu!]:35@XFXWsOi=$0FiV-n4!51M-_i5hdkV`n.0"f\/@9EF`%#K*7jfX:M.CN_OG>F4F?R%P?r#=Bem'9lm*=CBqH9.irML;ES!\W8`0^ %Wiu3S]!d#l%dSiRV_[-0Ze!ameQ8&5.@#M@-#)4^9beXNbA)?:obE/.\\t6(B[JFBV$EG!m%@B,`T%AU#Lh!(^Ou3N]!d#\%dSH9 %-SX@Ie8#Jc9(X-8,u/X*aRoMW\Zb=]q]=nNN`=e[r.X=`;jBNH9*edcfP=-d5c]Cf:.U5JDjX1mS?le;3o)V,?,:1h)rWi6mg %B[p1M?l7uVj65%f-!hF>6&Nsa*a;26:5[`Ko*R-SsOsL8.?_X1dN/G_aM= %_H-,n6>n:(Scg0,q!fg:N1CBqH).n_R-FY'f;^-2-1`8t$s]j8#4_f]'_1cUm,LOGXL]%:]#/AY41"bBi21%sEH %=qU;7gdtCZgU=eOQ,D=,jW9`g#+K\=l/%-.->'VC:3qT)Rl@EnKQjfh`+?TP]B6=QIbIjdOfD'Z@?"?1u';H_gsJ_5ct0el1g'mqT&u'CFM^,rK[Z](dXOhA"U2 %jirZdH_gu!.Od&Wn&=>)oi,=5mHMDiHNgiD*ege7!GJ!\6a&YWX1cr6V+aM=Bs";]:S=c%dSI;egQj.VY1\B(;V`&@pI-Kog++D8 %?0=h(b-J/),Lm%Kl>sQER&ih#1mK+P=='+n\5l2cqlKHiqVf'?/,`/R[V\TAY:IeG!o4<1-biX.eR%LV[7Ud$WGG?5b_Pd7Fq=@OtlaWaP?58h"_$a@1JCB51R43>&!gFCUa\m?>[^%sI6 %\UqWLCCVlTk=0CE9P_8KU9;8Ql4C!a6nMbU2?OeGm89sKGMf'YS$YIAZ4l7hV;PY*J)fW?Jn %5KVV7pD,(>Ecp>:P?nJ7>CJ<)X38qDCBYH?D:)KSAY<3W\1g\3n*73o*_7c0f+o"s7G*f14()-VV$GTZ.XeM.ek//ZXtE@3gX`f; %=6k!O&"Z=9K:\R/\^k?V_6nk%cF69:EUkrfblt(m;sUa)4qs^1:YNf4f#X7NY8sjJbL2#Y&XC(3WOC5NT[dWXYj'c[UR^ceQ-'dNFp\_/?f@&9!2Q=)cs)RoY=LqV2*VO.Xe5&hF^"`Xu8p;g"*T9#G+P=K/mHi\`^@Yb6[5[ %.QH3h\rf*ItOU9+S1*<;Kp:]p4$N?#>mV[]ODUY1Dq(*^#Pl#;sA6LW$jB@e1*%5\COTp$#9j]TBD7BP!im%oG3G&?>0pss3cm&IFO %?nR5]pKB)NoJ>^2[.L\AD274FYH*$><&u"]V&CU.>F2.U:bQK-.4/$S,t9R'<9ZKH %PumegFB)N@agSXqC:VgD*I-";]CD8b9$7M%H7Co;B'#c0/%E<.!N9"%&?2]!g9iNls&f/0"H&+ZKQ95@^=*+\4!TRL1l.G.hI1/' %QLqbo"'\p)V+\T#dSlc!ruA[u,UsenioL=0aEg[5*c>_WRM21tjDtb8A0>X9Tl %S&CmfIQ1l.(]n\d^+eOt'9fj7MZp#`f+-G/Cj!dY$dQQ;;"K6&6q,4OQa.:#c:3$aZqt.884\o.;8CbEa0,IP`BfbA$=>!MLGEl% %0Da]h%Np;F'"*PZ8/@shF*r@geWJhH6ZEmZV-Q>8VN#P62esuj$E3I`C3c$T7SB%6#PZX+MTbq!,_WcReJh`oLkS+j#oGc?8:mb" %8`+P@8TgEE=7:r,i("+3H0XrM-c0ch;_p`*:8-DlCu;PC3(J3fp!,+$fTQ">56Z##$EEW\]`&C;ID.RFSKCFEUMRP&Y;7.E!% %b/D4iA,f/ABK6A2[0ib@W5ni+o$YZ;>ii %#k05Z<,//r;LKS8%)Sj\4S4j7DYN:3V&fe##Z:&]3(MlW%7C]MB44LT.i5Ad"f:TlHnX_,fUhrjHHJ)!/9DRQ*Oq!m_K %LECFn01+C+paX#W_foHpI/NNq42#VckO1@5"5:E_)QpjT5A-n'LY&0%hNtbn?Jfm2gJU3X&c2CTq?_#A+cCscdYK:Tcbgkn"5G-f(r+jS]qR/''9FmBF %\=2k^5+VZ?k3W+s/sg;WCRm;S6Ta_']"VhB)i\\2?#;+^3kr8l-4SE_Y;#u< %2n%!1qW$8RamJcGjs@C#YBC_BXtN"GIlb?8Ett9V![p`Y*;_\PS:0&eC/L?6KkXDO[T$[UMo,,;'W)C"-Un$Ips\p3VaY0#<2O;2 %dq5nj6RpPsUX>ej^"dla)Ulk$(QE.VQsTf%m[N%_R:a]l>I>gP#.16fCY/fml1"%HB,BJ)Gk1k1hbWNRg)]j50_Y7E_:`JWjK57Gf,m2(3kN'1dD(>Q %^!cTP1TkGI0(&n!'+bLoH@9d]oABTHj5!m*:K`1YQsi#8B$7T,d-NuF4?NN5kIY\HLH)YARh;X$p%-/Ec#ro_IXeam%KfV^JgRajBnGO(n;:*F3$#\ik>[.CCgP8]orb8o;T(D:S?fRPXgmebAg_XP*X*k1Tdd.nThl\N[d>4eALs5EEYJ %ls%2Sa3GYm %G\^I7`VJn.::C/q'N>aP<@R;oS]7t0[0o:fM_=( %ek8!EeqB5,?!gqYhOL/8f4Kfe&r453EVTBojX++Lr;\Gfnm %PM[G's%O'#*@=-0nc?1a%)%3KXG%("#oVISiBYLF.6ZEXI4%&GkG4FNCAoVaLinU4Y %m`d`"A9#B>H/'-5dG:"SOhn48')^=+`V)bPI(pPC[[5H[T)7)[]"`.VarUG*EclMJna5#Kg$(%nH1d)^pU4m]fKFI^X'`LXQh]_@ %e&RB1e$I6(X4ok1I,#lGEHtHng?^ZMC<]*4aZk,&5O.4JNU+NTAr'[>DB!!g,E=jSehk/ets(dA[d9=89H2;9q8kr/H?[f`0%Gn:bC\nH1.p$@2S+?_W:G,EBGWd;N %]5.653CK@iH?V\2m[nId)\6Y!r^u2Jajp4K*1V>P./Y);(U]m$0SietqWSKF6-P_nc<((40SiddC1dB3"099gpc.!nJ9"b %AeaL`Tf@ki!O/\8)k3\:/J!MZleGrr"!LE`3"TQ=gp`m,/V+I++N-nobaT#ocu1iS@LdhC>0aXqJIjX"^,'A_h$et(K0\H8ilg:[(7'*@eJ0]"Zs]\Mkf5 %/8rVllOV#q8;(Wa7Gm0]g)C5IWbBXN'4b#4?L+PB$RgKR_JQSQ4b#.Y2qN6>^ZAR74pL$B.$;VC_?l"2YAZ17;dAaYBG=Y %l\X82eIQ9:Id;Wo(JT@JY4]FHZ*!crTrsOFc-)@W]B;9c^\(\+:41_l5L5NUVuG,EiPm,;k?XsjDY'RHbA4MTVgauMUn>5F%Y`!Rk%q9"=nhZiaOQX/A+!XrUKIFG(tD7oAaPs@s3>=<\@NVZR2o$/>'dh\\mOl(6@S:Z!9DWMoYDO %jKV+Y!'X&N^7%P9(,+e/V-LZtDm9lRihbG++`=[sAP3IuMjO#-bs%&PEgs6)DL3hiT7?Y*Gt*MfXhE/((U3SAH?5LT:S2Ph'Z'=o %R0BsQem%@DTq.dcR\B800BT1=Mi6nNDd:]/q%#^HQG;m\6CH$AMjh*3_F*>KF``%3[.:78pLiT?`LQS;B=^4V\lM^Mhf3eLBr;,F>p8a[hpKq4`S6Xn7D-?4!Mk+Re1TdhB/_QP(#sF3Ol(t5,[+Y/&nmCRHT5X1EgT!I@C&$]/'fN8T %m%XD5cd:&sI5NOq2s2S*+2b4+XT42r84Gi+S%D%$^"^Pm:ERnX$d6)+'7nYZL;AJnqqM-u/F7_Dp:0t<qEFB`HJN=/f*3\38Nt!o%o2iio2!oIg6tZMs9=`k3stg(cuDXH&2-&CJ?L$,a%Uk %=d#)8r7A^=1GZ%uPl0.#qR39^c^=R;VW>LSU@ki[2n,-5?(BgOjlH>7g[#F?YU($6H[+4A?=kW>o@-^r8mf;,ZQ2+&Ca#s*K"lj3BMVlH/B&RJHZS2/bY5N3[?PRtP\kO;`RrZ*tM71\*54_S4"?Yi-I)3"5Gq!+rkc]DdG6_)P!D4^X> %cem'*-f\el^BQc0%6pH/MJ]B\?@3L4'!P?$>q?$2."T,B90cT1!F$h'VVSW_baA69$.ok"Ej5a`+]DVs!S_T(M^@:!-EpSR^-E4? %4dcslZ"QEbV?MCX3B=c9\bOYHq2Es2qJ+Jc8Dc)5P1-=f*-peZn$%4K`n\%0!PQ)Dp@eFXoIbc"YD5HN^R\`Uaflj*^UskjF*-j# %kK?)Vg]+H;Ms9!1I%^#Gjt\mQT6r]sh9FXQrHrd23^Z-&1uBUJr>'.G/>Z:RUiabqk5,"bf/&fnop1bp%l`+,1N!6%HA,VPV%h(L %eL[OnQ;T+]CRN*,Ilc]1ZbB3I92`l@UuZL@TT=\B$>X,@u/VRL`r4nL0]TYC97'>]5idQ %^s9Dkd+@a0m3Y,58*oECNl@0nIQ=TIak[reZ9s@O[1/GW7:UYjX^?1I7;#eGVCg7Z(7j]HB>3S'P=9;EcEp_^=ELD\e!]&feBt!J %D6)6p\LPB)Bhb'5ZRAOPG3Kg>Bi1<7V*f(;E]_9^;Hh,`Ta)]AC> %onb!TI[a)BCGYCFg3^#lEPK,-FK$+]70Mhl7?JMQ=ip^CrPcnC5JPnsd.PGCe+;=drqdZCe>M&nAj%hCc!ES0ERpnQ>C0`>9n-fY %aR9,BG3F\)`1HAY(([M4Z*gID:KWkKBX]YeM_Mrc-Mq71fkmE^].MUZIO8r:YP$ZSD#IYr*-Ul:o?E&Se$Esg:M.^s6gL'tnBO.Y %RB%2D^\D:;rSsE4iE>WgGAEYUhnh2/gN@UdKo]`iYUiI4fHl0R[[Sr/Xun;N_\I(+o!\J&bQ2YE%R)JZgCi),HAm8AOX"#tDu]G! %qW_l,cWL-T&\]$+j\bT+T[J4=AbCsM@X/uNAJ&#[JYf!V[sTuU:h"_&X2S9m\@ds6eMee(/I(+a^YCX%K>4HY\,"D5jV&Rk:]2o\ %F$FfVSQ!;(fLJ/K]:Dlm5s>8D)T;6,KL!iVEbmBJPPuZ>l$%du4Y[ %mC&EZD_8@Qu7Vg14Qt*,&QAbIhSR"gWK"g$3tCr"khcaWGHG5JGgK@*Ulb"R292KT9g8imCCC2KoWWq:L!0#!1PdG %j_o(3_Wqi5p%hbf5o@#;\%H(e)gM3`cZhg#&SW%FpqRj>Nt5k^^H92U*>?;uSE9.[pG:*7Wss8bDmO!oQheC.>3:RZY?-29o@<)4 %GDI`]!DGP1HYW#OimR93>^B7PdVkI'*PPR1!icrrn,'S`PH.J$Ae[Vi*h7\@aK`.)dmKo-\(Z!jMg6WeE3UJ^m&UF/61soi`Qq__ %Gi6PEiprZj0(1e)J'a)u^\IX9>(-/"X7u;K&HI*,I.sQ)X1slOYSP/@JIg(U35=bYnEs'o\I\Ve[m+/IIspkTQ\QsWIlQ33Hi&/> %3PYFRYMQ7lYKO]\q"MDHjWCo)kBALQiu^LN?iF^6iVsV=^\?O?+8>cls%i$qL\?4G[i`7_#5Ul.% %U^rt'Q@[^YJ=2%_XPZ+YYMDLmf[:goC`KnU#Jlf.5^*d!NX-$u_I\1Ctlk8@A_Y<*INIp[B?/"Wbt;bFelE60=Tb5qmHXV))UipnSF:n2+$(nCg83qF%R9P7IeRRD8IW)at2D''XokGuGWG %M'.oLa]iFk!+a8t>!BEl,p%+.k@c'K2*Sl8-XWaP[Ie/>(^`_M5.^kScGQNT<%tcI(elJ`O)=K>2-Dt:g;49(.dN%jFV(h8>aFBE %X0[eienb>qBF4+Bjp2okD23Pr+-cJ]^c;W.2.rS'@83[^]Fbr.$>od=KR=b;KR3.1cR5XO.N_@r\b\H@1A4oqV[c1RH:FLf2E5HZCAcuK6^H<^YV %YV$B0?a-^2P]OMsV$.:1b8CtZia%H:ICZf?7_*XKbp-pEE.:e'%"G!'966]sC"dnmHFTb1+ %$[q;E$6]M=/itd!4e.^1I!CoA!k@S!:/r\kX9gV`-b:$`h[=uVg'T9!@*j0Aq_42][0'eK3Y9q3U0G]3N,2K$Q0UCp8R64T:."W) %6Q)8X;D;GLX)Wt'Z/>n[P1H[W?Pp]^s\M>';>RNj^a$,d88rFZ;@E$E!u_>^u:JR4C3F2fdIYi30L4^8k=7ZY07r4`mPE'I4B6h/"#]dHqd6k-\OGYSAGZ%V2FHD2\#fJ"\+^QL3g51i;m7&8*?I3!uX]N%L>k-O3PhHMU5QeY+UHf6pKVmHKB:q:,&9O#=OZrRpZii_XogEUd %U?D/J`!?/&or&O!J`nPF1n9maf05KTi3F-b&AND)KnBA/%B9lmM78(k4gm9FYD*UHE/1a4a![o0eFNiQ->/T/.Gf8CNgurJ,JdR@g(5u*QHQ_Y.'$paF3b%e(@ck*JntjJ4 %^H@F9`\mH23nTS!pL(nGV.0P-lprJa_`rKc=QCV#4r,,H=V&J5VA%hWVA(ATL#j-,Nqn%4(&U3cOL-Ll7#A5JRH+`SWH=hT0pBsa %`*P]o,A-EraoO.sFK%N+#UBKg%#[M'JBT?F.W>fX`/^3\`/K:*EcWm]U8UZm/:6`Oba1u'M44Tm3FXm4Z4O6b&5]oK7em6jHn`u] %OoGNgGbj1O^-](r\\_!2)CR:XLma`i'u80)F]u#^5^E:5(oK-/GS\Xk#-g]K$\Ju4$\OK][Ialt:%A!46^JcIo.j9UD@TV^\G6/1 %QO/VcXFNV>,*>7XNAY-MK_@HIB"j=-:j+Hoiqs"`TWn2XIPS0Qi=W;7B(4mtL:VBdraf^2RV4PG-M$M*Lo"r-:R6r)>+uF4%Oj)] %[m>0I:D;DCb?OYp!Ed8B>rS?o"F,4&"N'),7QV+NHrib[K\Q^?4tr"lG83c=nL)5;3T;ia?$r&J`I0MG5l^NJ_*,o/G^PbdnO=g6 %nid18gcf9?7D,e4QYn9l[)c.6>\W,$\3RV'O]bc:p$r-[#f;`>l-Dmu";q(eQ`jHqa](/c9;#o$GA2`!dFKq:=$E5]$EX;;bGDK.P%P0HmZ743IP-U2K/!^j1b8n9sMum.s@t)_Y"F%eQJaWT"NtqUDNrgA`=0Q=K^qNlp]WcWTQa1C; %b12J@qT=g5Bbk)rgs"doSNDX2N&>J`=9jd-P&02e^29?WbB@"J->h]KLHHWS"*pK>Rf0KQh6dt3 %EJ9&oPm1J3m'd_q^uf+.T=-:KiWPAar7SS/dQ:OoNZ%9j)M1@`QAYkmUL6KuY*Z:^9]^#XnUc?=8uXpZAJ[n]Sm6UYJLS0m6o`c9 %#@[ah1`bD:n9@ZDGp$#AY^NArB>3_?+rUib01lJBMs$3pHEkd-3VCh"kG\OI[AcnDB>eg9e&3=9Y_\cpUuu-mN+P]Y_8>I,N]/:^ %`n)A7DW8WiCRg:!H/oc#r4&MMHeG(*bHj;_LI;g`+57MPn.$<\^%r39:A2*sKB!;_0?t-lheXK0)N=X_l'X\:7+E8larj %].2gNLo5Ks7kqGYs&%dXUk5CPp,!(Ml,;f%N`u\T8uMNO5gZ5=)4hfjQ2$@0IO15lDGWo>Y=/kSgno'j;E_B%U>G2ja8hs(l9*-= %`4X:Y&b;/`LB?mRZ^ki8aJj-Z43\0ORM^'Hm'nb;mu$-$c)CUZr>QVgmukh_.%?`pmHUc]E( %gc/5(7,iQSAj@OFjk=r'4n1eY@A-q"%6snbgaDY1Z;-":8>o*G4%%Lod&rI4&pOcBe1;@m=JNbB./]O=W9_]-aeXrUej1uI$R(MR %!^Sk'Hi7Er8KJ->OECY,7%I(":4!-![da4%fC($d7;Jnb%m8V^dT;J>Gmk#\\K+t-\Y*Wpjlkdl5mhU'q2.6Xd9<7c4[K1rX:^%X %015Ot[^=IdLBoZD?eGmFM`.mdq!SgA\-":)(bIBOul08n%C@q;X7@U\$[K/r48+QL'OL1JFOC'lL1Pk?UW_N\XVN%F%5\J42n0FO&Pg`YE6M/':n`^+f)7Z@^,m %"1p#-QQ,?4MSnh-J7afK>e[m1qW_1G^_Xd=\U27Q>AJlM%GL7cr?cUUh-`>B*b&;)hLPm43l)@T^+F %-_%X5`_B$@4X))j: %otcFnJE(hqhYm<>n,A>Jm!lZt(\W=RX1a#\mo9?V7t$"%;FJ)j7`&5[Hri.DOr$5r6AT_Y.jFp!@O'O[A:qqU=5fd%[Q:>[==%p8X!;(AS1arkB,SXA(1OU_k'.V60e?n5:0TXCU-:+_ld$i]HKL"QsZS0O>&Qu,^!1Q?_I]JMbGd)cZ9!p\J%:]a"@@h7okI7s!j2@VR+i:rYcp:jLb0:CfMm@bE7?hl4Ah> %/cu=/L^4Ktkh6g;)5XI?8q9Ks$;n#KC`952YR-'#d5pfm3NZEu08N3>`3NJi_$fW?)")\7P!ZZ1_=&:(K^oibs]rlGW %/db7lC[EAWNCdM%8W3q"Pp]HUQ=-&!M1L@6Lfl!L,Bag^Rghm'KihoDA:lj$ieTkNS.eVS3!bX35lg%)4gD(NM9%0Wq^_\5&tHnL %h!qs\c8!;OOXh4683-'s*43qsS6q6X,glm)Nhe2:;[d>gbb=lR]V?$p:2OdkI!&,*rBYsdSIEceq\1%'lb(j>=*sgP9!ViB#IP[@ %i.p2?7oDOZ;t"kFV*\t@WEJ_t'Mc.K!J;.S*.Ts4,h1GmI>3YcDZ2jQha+=YdRK&)97Ste^+@KqitOe.#?#nnqUe(Ek71Z`gOei5 %>RC\&1+%A)s8MF&hu2^'S(f(uiYUK$%[)V2o=\'n4o'KuIdbaH-Qg\./i!)"^Qhi,Q%.\Z1"q"!KRIS'GP$E8bV))@>GH85X %NETGK3EU0)keEgIk$c9`i[IQe#Jk%-YNuEPCalN1fK#V,!M+bH`O4ZL(:DoejDYTB2AsfNcBs]fF>p@@^nA7VKPo15[Z5=5nB/>_ %3Y[_W/uRa;83ACaOD*19!NoKlPR0>R\H+fH(^q\)OR/:t;C$[p/egi\"h'8.bX!'$(OA2?7B:MI"6:Y.p<+Nm %6j)D$&uZ`h"2stfL>#:_$!C41nu)\`=;F<8!X0k&_Oq@I7WqMa,49/5&H`-dZRj>N:h24M.1IY]NIi"1MEFkSL.,fDc=K"\nJXCX %R3.>F@4W?A@Z``%=Be[pJ=4q_Cm"Z*X#[ub.LKdQ3-I-VH>,WYk@Uii?g2NS7gqFL$?2ABC6EQY6KC,l9!TO[8CHeu2`1grnDhDW]d6)s9E^X\@I(uX!+>en15HTn#FJ8roU,DQXEAC_J[i'M$%,e[Y#gbW2P_`\A$ %"5u8N$78Hccq;s4iVMPO+1$fgU;3^9K9B/kHM*9eiXsWZ+ASKKZm(1])-7#M#^s_S6&G[LB>\$iE/Z,>GHS.XM>`6`gB8tEnFX`2ED9eTp\i-8i!G)R6MDVdnol;ita %UE0i+R_%$iN's'2oZW/L`#DP3N2:8Ig\)f*%T_*iE1(h"AU29YRSA**sS^o*kc/Q*W":+i;pEiS7S6Agu%'[ikdAr`7?`.?%D7A]P=?3H\N+hFWO4C %.T+&#@N./gLeN@UU`NfVoZg@U;a7qG6D\\)6LQ%7NIo:KKrISd7dfHHc)4\fr!!/O>RQ@\e:j=?l0:J4-68XN-J\[s0nj&j4\iH!&Nt-_(-)_qqW)*X=:Iu"+DZPKeL^@`B %7XF9ui""mH7HR=#+j-dY7^ciLdZfb9XC&h&/F=s=NC:lRO@Hc-$mp6=l#l#+L%@CP8dlao6,DEP=@>S_BQs_J90l@.J@d#,ZiftF %lY3Pg[Aq=_at[rCo.XN!Bdr*-S>P,5lihWuEt'Ip46IgTmUVs+!NpI+;m?e5(chFK7'-&nHK#[[#sZ;f6@aX1\?p:%$;q6]FVcVM %1^1M'O2pu6QqXe.&qPV5i'Jo#TcL?/5LG8qg^l.H_e*DELNDAS.6eXS4"!5%EqHRfO95f6nW1k;jmPsFJ6t^O_63YLU]cUF;$8YH %$_'=BIIsInF%7fdN/grEdM3*OfU*^g,C5l6Vp'&IpGZ_t=&2m56$IG`KWcjK=HI]p\1U+AQBAg'.LOA,F=tM4UR&-8 %TQL^$#a2TK,+;X-'1LD<(p4Vn^@Hh*.qGPYK/*udL4()dZn8f1AHHEK#qe"kaLYNoF_qJmKX0&lS?s8r@&$-0[?)#OM-V1o0.&82 %M[tc?SAtc@H7)Q>7D0ML5&>r5\-pUI";AK^?-+UJ8c13.T-_2)"!(nYb.1\@JP>Hu"K-mj'tOr:5/Mr'jHRcQVI8s_`.UZQ&c+J! %_?Gg8!aC$4,WnoH`2h)WD@h8dUVq:I^0\W,:-S@;FiN?BN1UcYHI6s_o76Fc+cefIWJlq=WBPUt/#06HPY!-H,:KtI.a&ld'EW=P %g]uqUb_4"B%<:[KpF1*"-$o?2Z3jT9aMLp,f'd'U`JtjT_O+L5M3ZmbGm<'&rQ\o90)0m,!d%$O;p/7TSgUg,:)9pDO00jlK4O9S:E]9T"Xcg\*[1#Zn^\*9!=V)' %Vsep_"fQ(cB16HcL.a=1^-Rgl*$!fJatPb+M@o8TPf.?U@_I)V("#u65,oijc0];f@L@k-6);MX>^Xa7f=D\r+X2Jg0,tR$Wd0,Ws[?L.e>"Q@K %MCD5EFXrMLFS[Of3f2Ril'?G`S0jFHU`[j=0Nu_h<)N?rLWk)MPDUSMaNMNkg12mY%-V1GDWFf/_ft,&Z8UJcp]1X/%_,,sI&Fn#NhC*F7#uMBeoJFV%LXDNnSpfoP]!`KOUd,)h\D8D\YFf/(QR'hs%s %$k\quDH2?Wgc&*+4ZPL7-fPUIaUmp)Eha%GYMLC>asHEYds@ED!>b.;K`*f3(MSQ`;i4h=`'ikmYQ-fh'3A$M#uhra+sE/-#pQu+ %d??u/.cqt(oO65TOH<)N!mr$C;!=ch&:r,j[ReLDW$QtPc&03';qXOA&lhCfb#=CR$,gpVdBYMko-_u.\GD3SZ!MXD.!\0nW;u*@ %7<9XdJ2=F_$DN+pa?kHU1;WKU.jPr[_88rEq.61>LC@A@@1N]#Y.-nf1_B9c[2W(B]u_jp%)d]G3,:c_W*'6l)PDIE85KY*[5:3\ %SbB>-O!JuEZ,Mc=bl)%0+%aiX@uDF#oJ=Nj:MV%,J*q(o8T=l`8a,h7C*1ucP*l!af05AEn]03E3YMGk\CsG1;YG+Pql"\B^@m[u7XfRKUEeph&$C=+.1;3PgrDcJrX]afTtfmA!k3V^@or](V7S %BKrqoFAu7q1%tCr+jNZ0OTZi9cZZ %FWX]S0+ %gDXa$&UFs@GUkRpFMV27qaVC64aP_Tkedebb.W(2_-=IXO"PZ-AE/dUDi_iq.-OPnKBT#tq+JV,G0d)b[#\V,G0..H.F%$%[IpR$DBDJA\Xk%1ElBPIbAZ419W1p+^)s3m375&2bc8Ts.U\lWJ6!RL5dP<"EIN %cq=6;Zn\(+k@+?pjED?%<)o#>D+bW&BI$9U_!o/'gJ]2adL@@S/r99tor8%d]9&JC,h#g^9!!-M6'U<9jJZ0O$W+^tC\9ta1oCZb %)4YpaPa"^BK=_^t!Y=40A74I*Ohf7A?j34HFS6tFOC6CU"VEjh3,=LfEY<*p\MBgPT<\lD?/VMrT;%Pre:Q,9c9\P8)>,_-o905SU[`#9nTLA#F %R8L$f?pVS,(?)f-"Um&,1#5./r>stIM'!Pf=!LWhdGIo13i!XuNCce>532Gak3%U2_%h4;c5WQh6X'ZcprNK_H8Ud\U2,"*Xe)uF %AJs3,NEkdu;8u]5[bh)FW:7p5=iT!JjgM9fDT!e`4TT'7Hp"hpb\+LS24CRg_"kGK:`W7u;RoRXr>^_)=J^\JP@^Eh`R/Eep+'tp %j16%u"I0pIQsKcc`8ke9YSQX?Or)*cf:(=PHREC.En&/UOG9YP%.#KJ*Xf.Q:Qtsi'1SM7oHj*A.)jG&0WBB/7?S:N\;;N5]=,ZS %\q7XoCCods3a#AP&i35b3l+fcZ+-t#^Oa9qO<;%T=M;Y;bga,p,^j8S1e9>K[C@h()UuK108Gm5J/.%Rbu1`MWjO3/dpT"UqWQS)f%0S1N!e*D%oL=CaNm:ekJ(EW^3(9D$u\"&6t7E %ThCf7*J3p;C1FX`7M3fHhC:$q;I[eb"60t,.j+jtN?]99!n-mP$:2=e\NVE(r3Zj)_WZX>2MM?R$P[_QFF;`6Xnoq4+&XtA@BW%)JX!jD9F1L3Z"]-d/X %fiYDg,T)(IAeCl4`,&CN?,TR(%V>Ug66J=.c)=gR_pMb*"`@,h>0P9q^)1`p2-8s'_E9.RS\CQnK8O-ci,B:,DT*D!Epfm71'CFA %>1j_q4jP,s?%\6.GUjW@.eDLu?po!^a#*TTOZS8[h][53%r3t_DZP\8+]=l$8](OG\V/N\CjC7dZcg6J]BhM>FBOeaemtZVR8p`3 %26lAd0<6-DQ,6XL"W)-B2[!l;?_ij!U\(aA,b!gc+titRr1Zu;2,peYB.b3WG"tnHF&`(N\?H(?/92h'9EDdY&CV=*5t`MJAS-4= %etd_[fY/aGDWC#C*f^L99,GrX'V6qQVsE&Ef9G<**B\*mBkt=mjjQ1p>o'P4e/$;>U"=4UPT!V) %l89`(=(odK&Db$UdDFj&HkXRE"XGT._NTcY1b'X#F4jt%;C+"&6O6Z9:.b(5&lui'iB\!FgLC[VO2P42i$X1`gT"\):Pt*lO/Q4j %0%U_SQ*ilsZkL?_Pdgc;,rgL2a%dOHD^62jpH]grh]u&_.T1j'LAh=\]!.4/HA7KRD3:PJ&ZNVJQ`98IAnc!V(Q$$na/5#BMld?K %c0XogY5T>GFId;;k@tm-8ci>IDJLSCMCgJNlj[?t':6(n-G\*a":\n?<1'Rk",AIYBd7!uM3Q %Aj3Vo8_4%=D1&FdKsgJe_+A,7<)m:`]XoRI(RLbJY8r>EidpGrE3Y[Fp(:g.!B\ %Et'Xu"VF[-fbr-)&ZDeI79q/^6mtS?QbBZpW_#*j3'a*5dBb?_+f6CSD5"&_m#DVFmMJ@3PkFPChD9g8C\HFZXT8SY0f/(X[u.?+J&^4a$no7>(e2m %eLc"[D?Oo0i1WDVZng\((torPF3)[.RKcP>>$FCR=hPm5fk]?4Y1L:I!n(upFakO%.B;^^iP=B %!4-cEYa&gHXrp^>!I;6tb28n/)%r2D]k"@-Ls]f2A^?6/?io2ri$aMS#o+rC'e&&E0qJ``RA %#N;?9J]ik6c1#EN]X#+Y4QLG5++e':&HtEG\=>f9fiM:7:kXJ(V@eCT-2@a,AN:6-jVh=VF^<_Cki*LjBET\YCipX5*$@k=o/>l1 %+]7!&&M9Yo)qO[#VDC28]32A#q\3@-!e7tA*OMpcbY:[O8P+^aA9VQ?fgN'%>!Foel[!Z:_8T3gcs[G(\6EejWS<^sVdTtf %o_Z(:?)M['JYTVW`ENW1G,Nc!$Ti$+Y`/lkC-SP0=h!1hgHdBRkpJ(=\fT[Q^K%+"1I;X>ppN6YV0CJ1/em/!T'D>@me#.6U-S^9V,Uql?BEu]61Pj\fIa`)YU=.]l0@joU.&$+0F9Ap1;YQL1$ic].XdF %+^jI//SJLiPsV..$#Bpai7/;4N]XgYR83MkWO/4"*r#gcDA(( %,ViO`4\?o;<+4dr6*+2SC;1lf8f`f9s"9Xo*+9Re0+g?_QjqUGTeiA*Kl"_EZ[+/mK^?U60%l0!FhEM&K.WZo'C8#bHfg25$Vt&!h,= %Yi:Pa:n]-B!`YhY!,:]ULh.Gm*\m/Y6+);S[]@fa)(]F!jLn=i)G3[B40V\YVaZG=`crc,J/$p><:gI5pQHA&MKS-Lm=CRD?gIGV %_sY=Rb;Mp8UKgIhlU%,@LC0h"!m[0?g"rJN9U4GP@TRfM/]7\,.C&;Y"k.p`f3[&6ALj]mq^FB]&X>($Z=JpR-_gTj-qV]^*P2Bl %:F$fD?!GVil\AdM3#TJ^]9u9p_hqJqIk%-9CGc4MauA(iSD;tmh-BodBEFfDDbctYhgYFC'qBF!F(l.U5NJ/`29/iT7/l>PB."LF %4Lr-cs%d>fFHsVS3'TS'p@RG*r9B'phjhI]J'NM;m`at+^\uL!l^QWe@d3^XqYFZ;F*7'P`S']ET>*Vfe5_f`LhcPWio95HEh%.S,^CT]+B!]U9hbL$Ep[LeNOS@J %o;a*uIdAsg"<4^;]@t]FYp[t).e4"H1XR&$UL2sr`[0Mk;3F5nm=8g`np@csJfoCL=5#dp(I?m. %N(W(66/c_3'LJGq=hEop#!e>3Nd5e-3NG%BhDU*]627i2X=[MHEJ,j,DI;T?AqA2$UFY'*&a%Q!c6/)6@DLR[KDm %eS9?+9N$D]N5o1mTmb0?S\lijQBDS!nrNHn"p<7e8=GPF6N`f^9#)"Q'&c[+=hE&>t84)<'SL8YuM<.*31[52B3LgHE=>s %p`AI,Oa!%u=FMqSUgP699h`Xf5"O01-3fb4'"n1K&(L_;'G&!on."B0 %;!`0"a(>4V1]WLQ*^7:3;^a"%#-5Yj7uquki)-`^8Beb%FT%cDY8j5q3ob0hn%5]&ndRS%0#4@`Ph:ZnO9+ %gQ#L[mh.7N.8.0d#!P3\R;EtEgl9L$Ek%1jSFJ4ppFP]SX2!9<%:2N*r=:jmRqm4]!r"l>,n %lb@t3;Q0!3+kY!n%d/k'q6YUTXag.^-@(EPma,npUT!7=*@]%akL!i38\O0.Vq`n$pFB1!#qr(ftE$6b[&T#$]'Q-@ARH[Q4OW$CjVL^1:^*lED3s*Kq`I[5ci?8I&B5g07st_TsW$@ %Y&mEnL:9%'T8:DCap3*0s/,lj`se^3_o=fdntR4$^cbHSMgI]![[pmi28e)GRTr(`1-BpRW_.KWEa%Il2ZMJa/NmbA)UiTPJhrVe+6:J`>^:iW'!c6j0tbbf

1iHSm0)p55T<2\=OJfe"UP/Rc`UU %>$Oibi-KtV]p(7p2&iXVJhm,h4/f^1!uTHMd/S2=6;S*L*jBAPLoufH:jD.E.d%nWbj9%L:)_Pap7Q.B3,&R5NgE%1T^j>&`sMbc %2LHDWg%7e,dmF=&I.3d5/'+#VUgoCV^5R51;\bBYG:?mtX]4i6R#H&6-P[&K0-M %Y5*=@q!Rp<7:FZ&GrZRCMo\#m??j=`IO!t)^$+S_fjh\WFjQCZG3_):1:''YpF69kTaUeB<.VfUs7#'C$S8m)U'iN`^nM2f]"eg> %!Yui*_X^PTT%>*0j5!+:n"@ALhfZ1>4R*Wr5PPQK0`?II"]f7/@etV=AZjVinBZ9qVa483p=];Xb+R2p[*=4eV`k+&pMuWq+$_JL %e(=GNUU8jmK4s,7]bh8n[K;.AX.l9J3p<5^Zn<\5FWYiP=Keg:f*>i>;'5#;I94^uRW&LV\gr6s?86QK/"f!_CCjq&E2!lE!AF;b %oBHF-s0sHZM__Lb",eq=-j,A_YQN$uCSC3!"8QtfAp>p]a""\(._O7uTl-&>Uc9d\-:3U_;FRWD`]Ou_%p5]K]QS>AQ]g@QC5rOW %jsKl--6jgRp_)l3R7J#:*hHAlf+FQfHS[dc%+A-Iji %/sOm@1nLk^T*/.FitSosr!*_!UO^:a)R@`T!07ap*BPqT"2F;T%qG`!)1\-tM`1nV@`6FbX[@JIdU4s12L#C7=\#+K$2Oii7W;eY+f:q@f:EXjK/K=GWIqRW[gp#= %[_XK`B`1-NaYjL.-%Q-A:8&"/b56P\`]h$[#GU3AQ;<:&62>G$q\!62MtIrtXo(So.(:nHqa[-i7W'0B&XEqJqsZ=Mj.i\e##e9+ %N3a)/%V:&?7VM'p<>+90!oF!piddjnd!6'!!6g-V8V]"pGSB8U_YHZV`A%NiQk1aa31gDB4O`"M$GLb4.(+1&ol&Y9\hJ)\/uH`3 %E!u/h]Y4c`0=G1;)QSM\N#JM:]62^WYe*j94BfKiNU;Z`Y&<0B5AOG3^rKrMmD&^\FagKd^)MW?)&32`?poD'V0*&',24m.\@T$, %rN&'gLSJ@>6Pg5C(d>o"=9kp_m4(`XWOEAL7BY=AdJ^Y[KGQ]c/+N.qXpCY.N?rbP0L-u %JX7G-9(#7GCP"$!+k!D.dD]EmFPb+anb>*1T_I*PI,6gO<0Z^C1K(K4i(`."^KjmLU',I-F>WKLO %Y08&.i:ZBeh%^BZre?,;iAm4I*f=kOJ6A0jK3s6_j4AK@[m//b?FPt0Y0>?%=+t-dH@&mS\]PQr;+r+/7?f1#3a`]%"Cgko$Y/r- %^'qa6dRJlHOY-e`Kpf>_1),up`c$D"8a5BkE@4b'2B)LB['K[jnku/Kn7nlB9/\79mRo!\S2i"r%VA0H9H(k[,7?"o %0"cNhk-;I!JBi*23#[28G*6P2Y`TG<1GV)g,PIcXQBjS5cj.:A8qt9*H;<#@=,Hu64?ZTqJ3E@['f3'ZI,>mE_G>0(/b&pdYY+sB %)LB&X^BE%FonMr9*O(_X9YDT3h:A'sWkTdIk:teRT&t4jLNdLCA_jHPD0:F2,h;.plgi=2^c(Kc8O860\)-%kVfC8j).u[J.Kn-l %"8jH9hf:i%J.>[WZ+_+2VV?E\*sdC%_JG`*,>ke4(XiX<=!VCaK$#/>^\RO9%3aNf[7P6T7-(D"kR %PB4Y)*807dXdNQ[5H$9L$E*>nDiDm4.N#m%%\HbgVTuE@G>luok]e9)pJY=@H0%Yg^)J5ukp %VqeMiCJG.5\CY]b1&mBSh1B0p4>=3cm9*m*OmA\H[(qPu-]d/8*>fe$*Dhci6L\Ol(C>/Xe4`G&&]Y,Dg<^Rjh\Z*mW)nFa$gp+I %Rrt9&?pfJPl)%QElkd">m\BI00u#UNGVClmPCd=7YYq7L+_A!s7SQb5SNKRr^CY"_qN0sHcfV&$Em_C6GGHMQ9A])M`R*u+G5Jl, %Qk3B]^L%a4T)]Sf]GR8ZrROK3(T.a4at:RamZFFZcPA_R;#snil;lRT)?uW833PoRq#_[[Gfd %!Vf?$h]ZCYRVf=c[ZiAn&\W'f>Bp+EDRT2kJFuT6GB>U\g0qabeWh5YhiPHqb#EF_NaAP6HlN\n&?MO>(YR4Tie*eeFf^&l'H,Ei %O_#o4LclWIR6;K-7f`;8Qg[lW]kCGd";;a(6"YfR256/g+Nh:U"@IE(U48Xr89o$__P7eRY#$/MVD)k %V)O-RD#?3DDNnJ.:\_(?V_5NrfI0gHHJ4H:q^P[>c"T5VOnB&1hU'NX_DKp@I4qd2]9djC)gPQ:A,Gi;fL$"!Bh_NmDCf\#_NC/r8dX4*mO%m'FWMKnJUQ4_].Q %4cL9gmgFbXlA.*r\4N?-VMF47Q,VZVD.6nd@A-+nKm"DTT#V6K.8?,'28,;G(bfEHD1)5ibl+_N3)S6see12.)AJR %,f2\QS&Cq4X!)iu^%2ig*75.=FFtWD&$8N+i!NU`!_HmQRimcQ(J8D]*^$Bt3d%4FDC^/J'[;T&Sj0DD1pdDKCBk%mW2He3_dtNH %b#'3fY;7BG3hqG3nW-WVQN(&'h"OW(B,n#ZR8!%\R8mY0L=P*CXj=GmgDb],#iu-peALH%aRr\bZAjTW0<" %n6o'q(tb-:VfHHF(D-.!\8;B=>Fn3Alu$GYSN52-13m\OMI<7n-fX1XkTn\(Sngjqg/iYs(8lj#:UZ`7=GN5`b8k1l;)u\eF]]'8/tMNK %Qc0>\b0jq&Fgs.:J"Lb(Pic%H'gEaEBWAt[8N8>l'CU,g.Nr=d>)[JETLkGZ8X/pW!d&OUdXcpYbHaZ-QK,IdRn;[J,pl=CiU,Af %I_rr:Cs4aV=Jt(=0FPq>9.Yc0%5aSV7[KDhj5([_OG:[eX5Mi8sm0HN'!gOlhck@#'?J)CrKqPWG% %?VntB>#o#-.6)F/JTjPYC[7Z]([/(h=g&c_bn_>oQ$@*E)*bZB!M\co^-RfMBM&^@:U/d^m,#XH]U=IQQB`$OIfKW-$sJK\U.[k9qf-5.D$lkjDa)5Mpi!Y:X+/*j;U#qt_OD<;h@%#=\sAb(Qa6;'":%>MdEmS\jP$,?,?H'aoba %?>tuj#1:rt*]bF)7O!9b(NlAV;.L09*C`R)8M*q6IO?aM-e4Z.dr-80=mG5[&"^2DiW^;V$QXnS^d!p!#UN<*a9*0Ooj3d0b"iMQ %IXZNC">9p&27i<%XIl)AY;_'q:i:=Fj/p;kht4\PrT6o-[spP&]tSc!VMMaqAk(K@5XCNdM_LI<,s"K`UTa^eHX>Xf5$ZuMd[q?o %$aRL]rr28rYQ'^!.hhdQp8/22O[&/+V"CS8I>#HZ"T\Y^=nG&g?;L:UY-nROZ>WU-)&[)7FJBXDHg]#.&,"u&Z'cL1@2_Z![omP+W8 %VHQ[?94P;[-p@r88V[c-&)P+X6sHk#So2A7I=`%2)g7^,^3;XO:4j]5C]p_JF.>W%QO*mLTO0b`O$st1J:Be`eC92G=[tGULE1?h %IKB0VXhF:?A>r)t\n;7[1RjSEg+oK2W@3Y6Z-rr1Z^2:@7f'DTBb[GYJh+ab()AeJhd#Ts,[a*5ah?)l'L3"fG'1@tW(2B+MYH\F:@3j2`RZ=a5QAnRG]A"_-$C/hF %Qrm:Hc>h8hOX)XQfjHr?l+7P_]c0g1e\2rclM(Doj!%:,Dq`dlFh4mX00KuQ$X;dSA&=7qjdQIfZo*2T?@P.Zc$O" %Xk$.>8/cF`'a;d)5hS_N#RtXeH_kg&HgQ?o1I*g:er\kUpP*"jes+;8e7Kgg3=@;8d^?4Cl?cgiK.f@q=*+klc_0P9r(ET\$oGV8 %7/E8aWa>:5)phSHS:M(:pe6rT-NiI02kX8.K8F*e64e1cDX=_4ddU^8A11EVA7<.EBad-K3".H*0qRu9qmNf-^Vi>5^'dW:gLn?Z?R.9K5EpaC+0=&5L;1pj9[;0-rE6_c'1iSJ4(M&W6@ui3j8[_8Zs.r-U8\/ %0X,nI*4B1+6m_O_@%]KrA@>du\uaKIap*5RZS5KNMO=YH1/='(\qc,0KFC^aYXI`M'X5+j=+Y6:'P/B"qH/l2A>AK_&r.hkXRC[+ %1sh^V['_cQ^?`0.lO6PGNF3l/G-C?KUi@rYek_q?:Z(i/mFq97Ptort^_bl>E,IBHkF[NT_Dq%f?98s&Ok7r4//h!c!C3M*D(Hb7#3nsL^n-Gg_,]HU-&CA"0jd4e+6BseZ_spb#OJ$5U3bsB77euF^md==.?FZ>,Os9G>T#.V %PC3%]3FM@;/%,[KPDE::R0%fPJ/Fi5L_^+\[TJE2ZbS-'('3W^E=C>GZGk8sW@1`!"e3WN"R]-Mk%pj+4Ht#NjK:XtdlUL/49_ab %*-K2`0.-j6kmUE37:EQhP!FZt#Co6VoF]r1.2Nad%PitIa]DT(-?**+bQn4K:F]S!INX(N:*4HM]VEDELhCioO`$+BKa7siqQ5>Y %LKMqDMN4`(VRhQPFq:%saq%65%`FlG+fH-7qT2Y[Vui==\hDIeNCf@rg7O0Zc($N.WB#pFN\HdR=B]?iWU9[P.5QZ]/.f2Oi'a3o %iW]q*``UO%c&>:1gY=iBgqDoqT7mbWJfEqa6mRp?1m#!fd$#W:&)UBHPJ %6su0]>"E/E0%_B+W[rtg-nRM?3J,]s11p;]sK#2DL)anIMd(PT$R)<]_o`?jrR*MQt`?Dhq4QP,gF]?1pQN#*gBLJ0Sb91!uMZ_.D@. %$nEQ3YXd[a'G#<1nr">Zme<\E%KYf"'(:aPdV'S^W2[(Q=R2%OX_j'j81]C4((W*"8"WXVWP&(2.oKf$?8#`$7:=$'6'.hJ<()C# %Iu0qG/Vi9c:aHT_7+q'c*S+6p[YhrSHQl]=iJP17G?3&JdF?6iT,(6C!_S!uBk5$)P\XC^%8D&?CmF$O+ts+LiuE/782>_h&29D8 %dt4N93i&K[,RUq7,\\#dUsV/!A>dkOaHuB[?XE?3nHG,4b%he9BF,jdbGBrWZZ%-FW;'csT/1F0-4obW.5q'b1(%8qofE8O#DkVI %.lek^1ZqEifb&!pUkFT)?VH%=4-kK`huj*J*$]EJ&F#gJ1_E)!af5N0,BF#d_?L.0-Ln8U%#>adL1)d)6D>U&T#EVJW$t8@\nFmG15b@>rOI;@SkMk %ZAdc/25'-$:MnqQ6Fj`Q!G^JU.6K#*Ar7(gb$V0+h01au*Z;1N;Cn<#,N7JM83f(`4lS=J&Fn[DGqr4i*Q#`?Ia3jbPJeN?pV=mT^J]_LP:9&^W=-G6qIf-So^G$J>,Y,t %DeaVFKFg6V9#=+,3$_'o6gQ%*p6sa1Knln]W'Jc07.\Ld",KX"N!'I+&kAB'C:+8;IrJl@R[h0g"WdnL=Y(Kr`cCS9Q/a;][*54K %*MWMPpp,3#qgd@G&!gTr:BnB[#@$U;((]6Ae>A>,r&80G=s>kY#CrID"Q:Oc6+*A[XK6g9!bTlI7RbZW-kfktWt5!3p)o_O^loLS %7R]oO+lMJU"2u]k\*cVfiFsK5\nlMd]"#)D9-2#:cId_J=f!bfFm_GT!.m%8IQ7SQ27)^r'WlE?ZAS?U"WcU1;Ml`/R:]TWBXAN;fn8:D[ %9IMYuU]JjA4QNU*=D2Zt!U;,ON<^PsM$bP&79!Y:EZ-e)hQdq;@SnC(lR33&Q4=@<n)/>4sU[\Yn9e+T3 %lGpo=gD,rB$T#TC#1F(+:SW-U]-7R*)]#@XR,A<`5`P)/0Qc-+@)R%_[fpT,LNBAO$Cqm4!0ZU+QO>qMSr3nOUD68J3Iq/7/t?Q/ %mQfKVSm.*O=iaC`VjKTuU+'K/;i2iZYlbrjF#6uoLLP/j.C/oTkQLf9+XL7mG,1B.Y3/./=U3qp7E]*n$6g55hS'Ydsq9AiL %,V[[=\lNY_?$E>"^@TcC$?G&[TnZI`+=irp'J+KGb9[7;Q3L8r";)P'P!f1E%+p.[#k4Kq(.Iuo78X\]:Tg12XidHeNGL/1k]QWI %*HSd5:_:jWOR`+N%j*iU'%<3mrtSnl^Q5hAPn<.,/dFcN6u0s0Wg?7"68-2].7ECfJ'&HLlu7"Q;$]Oq-&$$1;i$b+U$hYFAe1;r %b9$MC#POJMTd>'LM6i!0qWo@g4*sN5HM3GL5k^:GQT[1l_38C?.=QVBIZ^TJ/L/N^+>S?PcfG9lAe=3L)+;2keI8/j$i?/+6q1LG %*&<=t#AY2FH$;k'#653c]Kue3U\GROLV0o?, %aWY+]?-+7Y1jtN,U1mq1*WBp;&G`^o7"/DO;;@ufU:;h28/=;J&G8-S,WS7t:1mp_OdR+@"2.qLOYL?MbR;SZEes;_*2:(uLWE!i %[B7^tb$*F$r?;ma\f9l_F,9#hiuQ5bU;nhA?k/=AZZCq;.0?kY,-"UZuO]uj^Q5lVFLZhKB1d?bO^lo`^cZq[%%["o( %/2YHl;I>eYKP3']+js_d6_r;p&?5=_6r]k(:(C--T0jk-A%+XW.+TB4`+_+(k\^,/?VAW*M0lS8Lka5%O!q-T,6IB;o8%p.bSj[u %M6nN@Ks:PLbU#mQF,;69@l@3>j(+l3Lp10JM=*q^P1lm2S4r#*4jcH]896RdR7No8Sg5!2Fid&9!Qd`U %FtupE#VVcCA?mHoV7UepnBh?^kt-:Y&UqWc3HsX!JJ"AlM+jO7"MI/TObts8D7N&cF,A-;r$Ql)8$1#^g+[#3-&Pr9I7Y`2WDk&s %IS>r^dK>Yhr46D_^FkqqX\U:$l]R+k"-SN=M^9&,5]^t&b]`(\BhB[lP"Oe9P'SPS)3T;f*`@i0C4^^a0j>iaj[:<%mR'YnU=V"@OXS3mOm&CY:=G$7`42TT4_5NDR3#Z[NC^6G,Du'jjtn9q/rdq:+H7dj)ULC=&InX;qIr@/-Ic.C %[:aP!&KKuFY90-$ZuPHEdth$gSWuZdf=[G,U)-QL$L?/s_R_QJ4[4osX[sc.S2'["1nsK^BghqndtiTX^q2Fti;d1HNQC0I"=]=d %o6J!Eeg-RAm`m"+]l7;)+<5J6,_/2)`!6/f]jn@LmSQf %a<7cuX!ND^kE/(&f5JE0T/cI*Dn\8*Y(#FKY$=BG)]Di1^_D$$eN&ql0k?7lX33DE5f.ur8ZmKj[&2:^a:f,WN.<]Ip=a_Zm$dGJ %.#J,Q[;4O!Wcbna"*!nu8b>7HGl7;#HrJ,X02Ko4:()>(hu.M>!OaLTBH4bXV<5l+;..DbnNRd8VaP8HgYH8(#)6jVI,Q7*h\"5ZQRJtS8pNhdkJ4.=acEf\f?_D/`fLi5$% %Q0j.H)[\JA[RYu3#K7gA+m,+;6#Ui:>&4f(d&B>Q]js*sr@gTs#JLNH?X\)MJM.2ZIbqE4jn'UuC*'_DhLG261 %#:osf:A?IF5U"cYjPOjgY4h89aj'(2"*OLbBk>UZh?$q=XNh*+ZBuKF!efV^[ZQFR,(Om(8i$M=F.-:cF[u+J4D>dWdE8;mFOLr; %KQt?-Y9:CZ[&]KNiWSHcRDOI^OXE-+UJ6n+Bu,\"fg2\H'r-3c%<0ng,GCKnaM:JFDed]HVuq'M!>%oO'03Jn#/Z;KOlu&lc!LHd %-4QPP(C3\+1+i9J#fc>ST<@)-$cMphGi[p]^\I4QrsLddb4TR%-mJ3Xo9DOf_$OTflctmsn3s76?*$,#qSO,?1j6.lXQ^7&E8#O& %2Y7F%o'^gTGdP6\XrZpT%i%cX(qUA#R0rad1!WX&?c%dck$8)&>%uuY*ieiQf-U$Hb/"gY@D)MHFc:\In,Wj)/F2aI@=N]JI8qQT %Qrk[1olJP9"#r`(e3F$Uij9Kq7qclaJ_mP!TE0Gta,"<,12A!8aV5k;/jmX(FHnhDM9t`AWk==^W!im`/'-M-,?Pn5ja8eHE!"E6 %ltS9A+G\DWrsc-HG-E2$/P"YY2MDELH>'f^02Qi#8J2:7:/!AAMLF&rDK2ad2NZQ)aO^O?b-QZMa?/J@MK_ph:!X%k43i;kLY;DV %?p,_,^jU@$Cos9pQR:Gb;:-2H/6Y$]pJgP#655::CfHWRkVbqNYFuEiL]oG!7gWlX>"_=OTkCI.==XnOj,;4TBX[*K!Ll('0.bX7 %Ts^^j"hPI3PYGARN980r9b?VL`6hFn_j&MY:.Jp\*7C:n:#4dn>"6&<$KVrs-#e[\Tm-]r(&\BDfU;Q=.ba.!R_hrW5 %X$ne]n"YSsj5;*U,#n2.>d+;spMH"n=.SkIH_&5)9m;=J'Zu\-*^M=U)?E%icS;) %C0W6.qQYac'ur'B=F.acaf:8a+uap3,mNhP9?hq_ambB(Dp1DS]46JPDu&1'0I5:b_]lsD1+Mq06EIhceCukb %co`bOUn9;NhXIRtrSfrR`i,e>!Lt^0l+Yi,3T-)a/l8bCoK7kL4.[."J:%DC2+T8P?+q!i5Xc?MBAOfYL/u+f%c]m9q;UsVJ8@TB %qH[+^As,g9MYPbG3`#XJ/?XFq#]l,dh<$Vs@3&lj%>LI+O`3]AA&8hO:]-C%;h4rd-]8R'Em0R!i[I]%a>*"PSDj^/I\*'*#$:k: %H#mjEnU!*m&.jRX')R#F<@id#8rsMAJ>1Pg"TfgU:>X.APg+3lJk2$21LUVKk]Y(1qtHHmkX#IF9#J^S\$=\>.8hS-T*1PL'eQtg %Z."q:JLV]DR2iEfjPtT'nA**SHLRX':k3LILgPuG1r]ia/=7-/8?oX2L+iq(%1]JgOKDG0Gk>OYL)@WSQD1nhO3;_a3eg)@1H:** %qG1P+WMFlU"grQ#IJNF0o@<`O:HtFu4PRK\IXfp?!V[Q!^U3_g'r>5@i`T3Jm.4/t %48Fd<*^*3r:p1oAQW7OX'(&UM[:)*5, %ZaAbb7G;_lP'61Oh8]d_H+gSKf82RYXW5Fbjdl0[H,n3pGN,CZ*W&7qc8tJb4b\-U?W=\Co>MY>^OCup':qP/0l'2tokYf^fO[V+ %a:B#*+:o';%6$qsd7qK'`1VlA#CV4+cGRV\o@&2\J].*1ZhI6:aPbJ!8mZ@oOa2*-<-8h_)!1mZGoc.a[(cTkX %QfML&_:)<5>h96jo!B8rX"YEr"'E-P"LF5r4uE4+5Y>/ZR\cZ>(>0#Q(\Dsi;P?G=0nZa4#D"1O>JW\MG1`+0muF973D7H@)DAJ> %%YQD>\6"ATP+8:'@/f4V#:M8Qc]ZI)qcH]K#'Mh2m?A@7:0AVTCJ(cZ-&N)R3cUZ"fmJbP!Ml7d_@C/kTkUEkFs+H-]O"uS1:>K$+_f.cSHB2A<7oCs5'l_ %F]S^M;fV&J,@pf`PXmpb:5^`dMGk\1_JF %$#<0(;$h?e.MnM(\qZ=G62??[o"1@dMW'Nu#Xsf5<798oSJK'W@M1U\iWsB9)5]DI;B)H?gpnEIZpA)Ehc0J!koK2<&k$lONS3N8)aC^\13ga.Vh=]9+)p>Hbd<@D[U%Ics@fe2FaRdR1P#7$S;G' %2*S!#r=":m4=6o9E0-`-$=k)=@^O$5UKIkkPZMt>%Ji(>D"W1kR$h2ZXXrL'TPOjt>G]]e9-VY%(h*q`Lc8-F"uN8DFZ6lp5:0LS[O-q2\O49&X? %E3)aeIID6Y/aGYB:aUn0jrjXE?GZ0cFkqnoRF#&'BQDe)%-E-]0`u2`jD'ifTbHW]LNfIHYF#9@U/[Fi!h1Z\pFX,m^'/EZ0S^+p %6K-@e]o:'u%ik?5iSti%!4!d6c3,*)2#O?mqZ2^H0 %pKUN8=5$-i%<)j=S8?"%S5YX9"AP@Z':Z4GBT?:H[5\8;Q6Zq6..!OH3rRt/&ZSl^L7OUb"UOB#:\:[663ZM %qF"N]60RS'?<':k`H0:ZF^KRG6]:A;nS`+uF`X>Al5@+7U"nI&f-d+NH\/t&#j"-`>2_Fe@`6Og'qVgm4:>&)C8)E5^NZA=*`3sK %n8nr6%W:FB%lJkdaYq*7&^f[9cfd\sl7p4Y0"Q+8.2cG-%'L+k^i^W'%1&K'KF1!]$n6jN0c5Sr$H0e#@V>k(#Nr-"L/J)?hd1T[ %l_@4Vk3:86/Z3K))+%T@k@^W`$OoVc=UPWYcI7gsF5.]4.hW'_K[M1Xk!pjV:V39CHO89GrT>RLq_LO3H`:bn:26MYlR^SNqhutj %9MI`L9@7`iJZGf&&_(O3k=Q)Z[68K.jiZ=!2mjag>YT-Q3d"NQn8'&RbN8#tLO6m:r,L\05VtUri1dBBR[4YsAmE83;[%lXRGa@k %>dGMR?as^JUqei$!O\;1`^I_nJCLY#0RVo\JdL=]p[nZ-S\,hYm>4?mL@ %F\gaG`^OMo$0"pU&G[Xg>qL_Ljq[L!WP`/or2:1P:a4+)'1)J.9HWDpcO^WjQ9IOYb**WpH8%[6&[(\(&')67Ih%9$FL+#OaOJV'M^kIKl>t]!X;-Oao!TP^]_oF9.'prQkn?KRhnY*:cUs1AGeS\pQ]HZL[__Z1ZLo_BEQM*oMr5s[>fu0eQfV*tO''OnPng*"XAM/W\H8KSfB'49l$!#'Arf`uc7L6*_[lhp %.@9+bf2JhfNCp*R;K(ESEnqV(pu'c?drn[I0/gkiB'+&/5GOU"s$67aK22QuPPXPIrmlg2PL35r*P/+Cm8&MJ\k6k]fjkWQS+1$- %Oaj7**i@'0C&s"&RkI6QanBniEe-2aGBBj#^I[kiZ7)r\TF--nT58e8U8Wt)MEG2smm6')E7a?"=]C*r$\#&k0$@-5_0hSf!.i]Z %Fn.LVX#`BkpS0=l8Pfao+]>[1q:AK7=o;G'Li)duGpj]cBqA4RTpHH\r %HWT6tqOsd+p^a&fkZ2CB(D0IcLbG)j>e) %Au$Xa?#%AV;Ir+52==?us$0>ie;.BQ]ORMo]r[EjW-r8$"E`U?EH6LI0g+bK`?L+$<"g6Wn@2udR3>JP%JQhf<4s4pa,p7PR0',: %Xd&+?[3/"'@?)]uW*JH/p5][Z!dlnK-kD(.iG%XSTJ(&lb10[sGH2$KKK>l`#^R(dNo"hPJ=lo]-&>Qqp0;Y\s8?655#&:+1_M0,S.O@F,m!]#9Z!Gu.Ze5QJ6=";F8d7*D20=?i$BR/o:$SnMX>/Dg#V2IlR>b7]il5GoI88iK6opUUL@18LhWS+134PTZIqiZj*d`Ha\?=Hmmi %0Zj<_ChhublnD>#+%r0,jM+LQs0o\OcMO)WTlO`E2&Vr-$.l;SmiUljO*1B@3rWV0s07S.erf`'#]T`DLkHSi+^gKE_r317BH7hZ %hW]d(:VdbUFItGhn*d#-n;jXGa4:+JCAr31s0rsZlPTQoG;UH9[0`IT$Wf]d(B%'2,>^O<`Xg>jMG> %e:\fd2PGs_$f6$6(WY'+07d'b^T,Ot&b:%*)XVbE`W'B`Vqb)GpR(mY&\I9Rrr(*=pZaU2hek=GHh'sT@ConE[G;gRJa&U$E+-"a %q0.YIs058t/!c$4X6i'\3P]G%/mKn'7+/4.hGr]9=]QN12sKupjB^H:qoNq;)'*)K+)*A:O+a,6R_Tf)<-aFJF;U.@8R[]*8&t!< %4`S(;cg$_mBX0XUeX2cKp61>(NEqqj]DNS"oMK.gdlP1u/LKYo600VT%J@'"%4g#a?]_LeT^UrR]Nm2iR[fKIbBB;Z?Fm]'@T2/: %fM8"-mcEn1:AtatPQqiVn80Xr,G_t*:e36^eK`TK=##(5mGSas775h9'KUm+#)&f;r+c*6g48gV#Pc=Ar*OdN:'E:U5\@de[H?Op %qhLsXi4lD@$,GSXBY1_/OX!CUqnmAq6M?^*;gPt-M"(hlEH%6i3^HR4"80t\&KK!Lfk@dk*1?rSrF6DRn5'J,Q@LP)&.QEC5emdj`@O,ct9g %!pgidVD?>LYt7qof&ZkO\b!jVlT^Emmi$L+Xn8>bLJ-]oG6S$HdCQG.<2D@8Io>K[I-1A>j)<-fmrOLC"]mLKI=$9hp:A,*Lineh %Ekb!Xf81*`DndXr,FoEF]\S\XPTi3aV<6P2?i7Q^FP)X"=HC@0!o][bKEiM\9edZ;>Md]l".coZbr$%TneY%[@"RWts)h9:%Xo^" %X(21P>1u^2VQ'J7l(he9@hSC7#Zm5GN&ak^YU7!$*o`eTjhKUn,-tKqA(?bQbQM:hc9?sD&b>rcPOV.rLW!V\:G+is!2D4 %)"bW@I*S0h?>/J"e;Yg).g-W`0&:!oL"?G2c3`RgI%@@sj<+%MJboaln3#$/l8a2!9r?Am_*\:_]rG=q(d&?gGlB>8^75+cA6o]J %49Rc?!FEZp&Ya*<`'M/,>+HLbi^Am>;)J@+kOs]=K)]SNS:UHoUu01J+Q*oUp`2KP(4dbeH5H>"a"jl#s@)%8,*A_RI\/Z9OJ_B@YZ*ZYgl'T1%6"/lfRKOd?O\QDnmaQ,oH9d)'/q.jp\aQ!\/ttd4h)"10(FeM(F1.>5_c>+;17G]!Dq= %qr#-tVu[Fe!^&^T$D2>0IX%b4>nNgV$UmH;+p-Rd_oh$0qU+/Y@).g[$Ra__&)iT.8JH]3n2Cc90RdU&`7q5O),5Q67"'G=!]gk3 %l^;-77a,[UWGt1'lLD/c`A"aSJCdHM9'?a-)SJ=!4G8tt>X(Y&6!`IP5$SX*c``485!NO5K75YGJZbWeQ6R!uq!=hN^(9$D'S']9 %8(["%1`b##j35jYpjF4%2]ke>I1h:^l1KALNRgk>#7/Dk-PH#9+p.j8/jV/k.Dt-9;Bs3A%=0I(K&MbU[.'5Je.m47KqB#?9d]u, %oqK0I.5E@PJ.joTcOT6C%nAKdm(JJ(B^nnVd\?sT(2/OY\!to_FPS(F5SuX"K9T9o3'>.gD9^-9[hdDNm3a#">CUl5nk2sBiV %)M7IW>1??`.b[[KJJgR+BoL1+;5.NST:[k-R$S\>^neg3:oF6$)lX,*7`Ta@>mV/-g&^[S<:+;I#4i!`9sDZ(f&g?@GaAN$a:@3o %Bajdak,!T`[MKq\fGdhPZ,%=W"l0u7Jfc#i"1LUB"_3>Z4-TaN%5S[\XP<7fWSeWR@rZ`u*]cn.7udWl;1'-`p_fVGW%1'J#M)$B %O^8:>?t%^nm(O9q;G]5nK.&j$&_0IGj8!*mkZ;;5][Wc]$lbn\L$,hYiTt4E//;sq!8C=$!CT0^8RMaTa;;(`O`:jP^2&B\_>r0n %jW%YYp%t[9MK!pi%QFNG,_5.]INM!W*nDUb;Sjku:/r3_UnU.LpfMDHI`aVS4@(4m!k;U[S70c8nb`@fksN_S4<[!l!#P\HC^+(h %fN\sL$_i=d0>)QEfmOBMN(BjuJY8LDS;cHXQa/a?[:OHn"E(6b0F)aK?7?ITiaT*3(d(>rgMR?h7:uNC%$9Xpi%TgZjd\@N5!6_Z+#WY.)QJnmrn#%_4 %+#l'.)OZ$_NE$#gGf3(ATp<=iaA(>uW`I&>%l2,RQo`"7$!3U#gZ_Rp6@O'$1#'JH`^1IQT0*g9KUN]6NGgb`6_gd)<5-&,/r=S:EQ;TQ(=O %'kLK%!i)87:fg?O")YN@L>bsIg">8l9tW/&KFs"Ng+"1Sq;L]@a9VP!"h?qAjnb+m"/I-X4:FBi%ofBS1eM1_i+J&7XZL`0k77MY %PK2<&&0lF^M2,[jki7/3qgERF^lTl?5Z`mh>Da%Fnmi(!MV<,.pr %!(!DLAZ*&!o'+p7[URs5SH"qt.T)#^KgH#o)4dSq)45=qI[3X4+)pB)EAi+RncLqi_hRV>)^kdNi'-1,&7.D>%^UK %JG1^gj_r5&e&od.pu)Z.XG11`Sb3[Yl,V$8h/X'&AT9^#VaBLRRBikhB02tCpNObts1ar.6knEtUsSoT_m#U0:Lu.pfC40b_IU%V %s%/?.jTH/*]^KNOJaWFPTF-!cF0jDK78>AK20e$K@Q$IAJ&lI+f^QXW-I]5*MD`<5DgPo@m`X778#*gL0"rgB\Rcgf=%IFks]\2atHOo%MuU4s&OJCE[M %J!!S$<*B"n6)#>]0T<_0>g3tis2T1nZe\:h0P7]r)Eq3=)5a5.n*S_GYo*X10a2t-b0cXtT26o2)@a;;3ZX78p"sQ,I\.[9%O>:QL-?+V0r=11gW'JjjkklYs+XBsR/ZVom#D&-@;o=#7fV_])"W*R44EF7 %23JSQ,i-5ioO:!;!AFJlY'&o'-/JCgn*Z2pJALQb1!d8qr37*6/\5#q6l5cj]+p"Nh"n\8H8V=f]N%8,R$)s*p+^pZUcL?fK"Q:: %PO7(Q!HL[V?+YLIh]MnaQER\Zm73?Sg`u[)7f^>#rS8a#-V&1c!hu=8&cMTgZM;L#F\*c5!5 %]c'f[fll#m\]H%MWL7MNb72NB\#6!I[bm["Z:,Rbm>=#$5b/RQ!AZ!lh7j:GW(mhDFd"p--i:kiBIBC_3<:e-%?T'Y4riE'/4h\$ %StXgZAS(U07dP,ed8;tGGG&%.Pi03Cd1H[H&r:]&-_Oj%JAHZ2(CfGb)HMQL,Z8-B\.REgZ3C9rQ5]ZK&od*%k9Mj.EFJ %kUJl$G'XN!\>Pn/6>gB_E]-eH[l[(76C[:L[h\AQnQ;FsCBPS;qrt?>*X+cjWs*@rr!\Y,]7lGl-d3q!/[]:0.<`"q:7dJM?10]O9>+O3,lCU,FO8&3QqG!rL+=:aW+QoA[$ %JppGf`=0L,s)B!TTWhGMhCrEaYI8sKc,oC\3j8r5L/6JSliM3]45A/n*`R'd*,F&^%2.LjJ@6LI;fl7R7]MDfo,3P1VP/a?BancK %Ba?1\NI=lp;N2At29riCYmDn1kCD&i-)rQ^!I%CqZ[0#?5,G-Lo^0MYl=b/d5@qK=kA-SA8`'5J."c %Gm7^C-o]jt+L(8b^6'j770h6um`54Bq=qtJUkFU[Z,bfGh=>7HA0RGhqTl!sdGkRO.8[ac`B^PhRgg%4 %bES_pO=YfqOI=N,Zf>j^e^'F&E,Zp_*34GKeoRtMZ`&B4(@aj*fiub?iSn\S(GT'/Nmca=SqM,-9&r0>m9,!lPXS'"@7`@N)BsPF %*?3@p;dafTh8OWEF]GmnpR:`NHFdCuj5BuDBApZqMhg="RV5e^C/eN(YV]XERiRS>\f4"VXYu&.fZC]R=HZPo[\1,^hdZ:-[8)$uA>\.Tm7 %EP.DeZbg)a75?-H$Qd;aF)jCr:H6fH>3\5onr)Tu+P&QBMNNdO:39&IX.0tbKN5FW9tH'4sK+:t>QElNit&[+ldr&(GTB=lfu-HYkn\P`f)MTJo1=:Fs[5a#W%qLcU'Y8Q57OlrYl9YT.P %*b3HW9'l08H"aY6P]@\Sfp#g)c@__P'XEBEPj%1<HbN*ektr_1TKo"X:IRBM(^qrY+1fA"FKFS@c(`E9[qLjO06U2:aADk2F^D>f'8E>BX2<;_;Ks([9g1oUhhr %7qnJs)<*!`hUXb7.kTd?Uu.=@Qf]?SJI$JsM<&8Z>2,e%YfjfL72LEflS.uWpS/pE>D=i?`_iUTkQ83g9b[Q5a#snadOl0R(TU$M %%f7NZo%2Jm%pgc@7(O5_4_O.JhZ:fppeL$^rq,p%(?pk:6hjL08(GU;#10%\@F[Z+]G&UZ@fuN@9._`KK3$7b\DkO)\n]5R7Z9?e %m;3A<+lIt`N5/c/R;"057f3D>Oqq7q(Oi5,"D_$UZ3/>%9mL)<\\rq]ms%4Mk;\W$^phr05^6>A/[Z%:#[)H0EB`7t5#HocP)IOAQDpU?1N]bT=fM:eIs0^gI/Q"e0`qHj6;_l!_MtXc3XD\YCXHrJK=W2/s8ObSXRAdc>;9=dW;/YQ6!O]f$%[>\%=$\BUC*! %@L()88j56`@7],sNmA[bWF]_>puNm&YtkZ_d/%(8PI6HN24'o#!cG)%*9Yc1od_eh+u76;<^cSJX.)(LU2R"t>8J%$TJ?Ks-FHNr %BpaFJ)A-Xk4RQqIH$`,bYhTM3Z6/["m4]BaKtU7`NeE=Gm52L9/-oo@*Ue.+U+7"h?A0aMiu3m;V?Nu$eJ9aMQ'b$R4^c;mi2NDZ %bo[2NFgC[Cb.&3aF,m8.C+9e:G',l>FPB5>QOPcXTE2>B.DotL2cYBRN1,pSe]u;j %f,tI:r0b4sk1o5qQ=!i8Q%hmQ?%@./L`)!h,#d5nOn7&\t<@eE,(fU]j+K0K,ZadSD2\;V,fb$ZdikD.efTu+K%4]9+/7W-=-S#geAFt`G("F`,Q-qBa %`DE3CY],<`'rNNJSYc0,afHo@;`&M3G!rl)_nn8cV@#emb.t;:.d/5&PL+RinT/Hngq2dLTM\lFgplBYbaDF?SCXFOO:t3JTb:rd %XL#p!;GsMJ3Q+EeX\r3kBTUa\`,ZuKa@E],R$[nB?"8ZPD/+k06?+Qn2LoIW&cp3S6_>e#ZT[sp?0;n=n1P=>pO^L]Z8nJ@6!.:H %#olF?h(2uYe1a:2K4EZ)#eTC@>IOE,?sK*ecO2+F;1UDoig0b9$ki^mHiYkP`_4R\+@oVW.Dc3S5KgZL %2WYIa+[MRA=tU`47=UOf^OYdSS$=-.lB,Z^%G=*Ju#Ts0.+lg%1jo9P][DXr1Q%%e"L-&8--3UF0`?/;a,DecQ$>7_;l*11;CTQT9M.\ %`hDKteDERESGc2]n[8\S^<7lkP,XPc^e]\E%>A)_1@1?9W6jL_uIVj3""k %kZ`2?m,mqs)hRAU/cCK2ms5N>8!QuP;,;_V]WRmj"TS+/82d&Ch-@rTAfbp6^,J*UX1C^_iM/`8j$e!)+k.L+c %ZBZM]!P(VmGbUr>+rML07*R*,!`a,q*WS8;T-$g!aMA'7Wh>Uf&ld7BA-Y24Qj@n0:>R66mTXDCdo62qg$Xs*TRkJ4Sa.RaJ=;(B %[EcVq%$`!Gb&+%S)M>:@gW\mC=/Ks/HMB:Ro&J>]'1l\Gkaf)`Na5Yh)q94f4)ORSHU'1hGin'Glt-c*jR[S %1$*[3:@Fi*&UN8W+;&r!?A,51i@GReamlF+/2id*#DXc2o%4QO.oAQSo6`K&dVT26qJcZ!pD2%JG-qYa-O="sX+S1GR<#p>jdPpf %=-Y[_FE)_Pi84)^dro?'11]e,l7(sj,i>r'qT9ufQfsjZR:-C1C/F4\\=U:RFsR0E@F0!cI)MQ-4+aA@^$4g;(*A)VOSH-saFtGe %;!oas!ZG"BJcMY!aUQ+.Q`s=Lp:UYsSnShpn^3#:!+g:F#)9aX'.\1loP["5+4%rf%.RU.Lo=QI*D565e=lMlY %g'Tu97B8k21;_8eSqM\0FLcM!%mn3&nHIRMN4nUgk6reSK?If6Sb*/VZ_7%K[0E0q\L!/!7mOpjal:t*gMD*=ZESL2^.^q(]4^%P %(.B& %`p9:g^LdKp1BT.7>L#5*9,Z^UkM4)sWU/mRAT2K^gTSgX=B]9jeqG8Lq:nJ\ajik=VF(O`!i-?nnj6,d="dK)7pK#lL,W:r>S`ft %F.m,Cb6[an$nQn_77;4==Geg!I$l1h10iJ(AA/rD1fc[B;V2J,-]!D;j7rhq0HT.P %l`lm1<-%5Aq`gIUX+]GZoo3QM3+jkHPJMP58XIWMX0%n#k68leGqr$;;K#lZ/CIr\An8BH^EB#PEXh[9C4Idtj %JO3McjVZGuP?r=1P;OG:I:u/*+g]r/q\t[u(q>T-a];T1'Q0>I7B=3tV(kZ3bK9.aB'!Z#E[)Z=I3AKA*ebeON=s7Q7&$,if&dR9f#A!m2J9GM#nR;d%3Up,XO(EdGS2!=kp8<`eD^.d56VY>F()\H9AhIFN:43! %j(ZeDc3O/37_7=;l/71oZ8LE3WGE.o['S7c)u/D]8r:FQRi.K]ImL2!HQo7Mgo/beX]#J>F==kOVRTqPJD3\u!JN$JpK9?VV'CLo %.+/5oE$;Oi2t`A.cZN#Mk37j1*$?<(9HC9j=WVN*Z:BlYJ'0H %B0>Q..IS\h1*)Hjo5\kNA8MeV$gPs=;I%QbdH+/:s_9fY)/2p!0.F=9lW/ %Nn,')*1'DjGO[g<&W?t+0-ELt[6m_3_c-!p"(+D9o<=/;DgYQB:/X4G&'$]L#D7C!%\1Fp3AWP\FMtG3N91S"+Hjl3O]4*Tmad9r^ntOBn9E">',k@Yj"GUCb:G6\7diC+a4Vn\Ker35YL@5=4E`FOK %#04G&QS;.fkDO<_)CUi(@1n2RE6S^0494*AkOWVCFtYpn-_E1NT5c$Y?EE*pC_l?5.6BtV,`?3,18#r7o_^lCSP.NI]280>g7D(L %'#Z^ECh?.NEga0b>U+a:PFZ7AVSt)J4c,''^kcpjTPl$>iX``'FVV %Jf8:;^pQr)0t2.TZA*It%;j7#aglpB)i$1)T!bAd[rjNoC#3uqc#)R+Lj`Knr0/)i3+[tHZM&_SjSK(ojsF^QZ[hN3/HEh#hpt\; %pbHQ8d2"7n?O+2=A0]dd,JeY+3:o=A'GtdZ:.OXiKfB?dikRsK^Jfq6Ap+l,R#b(9,"/=mG(Ge0Z0)O_)7;PB6J\/AG[oOiRljSQ&Z_SoIYlpZ=2`nqsA3d_^# %Aokt>A]JXXEb^QL/jY^;1SX8]ID`B08'3^HN(JG:p:LX;(*N6/Kr#TSG7tfH2XBQgj46:MaM%I-Be'C.K!cAIqjh.:cC>e,ci8p. %g[9$jiD*\5_$u>.FTrl$J2X8#K5U\&4+8V"%\(&)X.IG\TM()kgJZ"D0NEQ2*;8C7k"5/kEO@hN<82T"k$?-*(u$3k9S,>0!RZNV %`509r4K7ANKNLjOXc^i.ea6s1Rd[`O$28moZ+3!pi;@/?#9h0r$kM)dF-nQuN@b6%@pYsKUW`b-PPaA^g\imM"dc(hRk=.O%NDKJ %R%iSP"Cqd/X`%:!d9W!FR8)jN73^]qLQdS)dP/%+@Y(cQc&nl-*[/J/arLDB*::4&nlR(8S1qHF*#IA`c'KZQ4%0F68Ii5E'JtZr %<_0Lh5;IP,gEl:QY5!IAg-jf!*=bpQjjc'!e-CM+>4D+gnJH6rfP<8%\R)MGthoP;\]dJ"c(:#D_EpGQ8SDJ.D9dhA, %F;+6MHQ3E1-[]r%#EIFp&4;A*nr*E29C_Q5P!s)%DY$Wt\^"Q*bPu]#Fq,/g,\Zd7;2X0ig]@(F9ci4K0&U/u@q"Oo5r %W#+Zj&5p1cd;+6K_kM\8J>#:=fY_D[LX[(u)$G9HlD!"/=p%rK!YfRN*&WY,qQsDBHSD#=-4)CE<'8kfFpd7E3&\n=UcgrELDt9= %OumgE9Ng+j:bs.EJ>oL5I![$;K>:5E:PR]Ej:A)_n6MSYc.!S70IWH,,>?TGa\gobbc:/3!JN7[=D01,.L#EQHbW\#2P.*[3*Fu@ %**eUhS`1u'Xt8-=l\'Z3.AeHdZG:burHXQ[XDu6$!PKY;g?c(bo%"K]j2.[AHr0`=m^KB_KbiNR:sD-:5,Y0t>;)H[c36YGXCL-MZo1^GHkPB1AZ$R^,^VJ.Et?qO7@&'he%3(k#,(!oZ-:>,)G6haSdaFbIIU!tEQdHn]>Eh2u6@r\XkO %/5c2MXYSs3cD2J.[_bAbB&9b>npjO0-hqjC]fIDap?mn %H_*l+qpE072e"_l%bkld:jbrD$0DTGT6Qc!o5\u5JYUg"]JG@K$pV-^lr5kUXkL5-.Q\J".nA5 %'?d:[hjV[L3,VE$>rjX7a6]=EJ(QN]AMe2X^0(!+*q>Y%L;rr*pZj$B;^JTt)UL9B0d6a0jUm.V(.,HG[=Z6^ %(OfSsP'\B8qU=Z3^Ker[=_!@1pO6^DWt_9o+1(K7AalmM0dg49o4QsX\J/5jE0[=ZYCHM2FTg2n_o5!:Q6!R(Ve#U'2[,BBZDAPW %`]M*JRc#*,@c^1`I"pStAhVel_aE0,JX.h@AF$%ZgJV1%RSRC>#DcFHR`r)S %kj1L8dDS[J8>hc>Q,VJ/C+N.6h\p8YBLOtBj9eN+,M(Y*hfLmM2W4RmG]p0)M1]@TJ<([H[l$X7f%:LIFS+0D5YjI*N,^165g&sVmt!GW>g\gVD1as1p(6; %X6I-$3h#L$9<3?kg9[6W6$*T?l+M3:RZGIgVtk0+m$_@lg!YgdG'_DT*33c8>On^q)VkSA3qW9Ng")[=c1gGt>B@13"g+XmT!Z(7 %Wi@qRF@NBXrmK3JdW)bIEA2cTh,Q53ojH=Xb+SEUKhC(7PKBm8LGh;4bX=q-M>cbL2Ebue[(27'='P#-=5$9M:t+"8!dad#mgBP@\)i>T'c%2X$OU&ulIlZR^DXr]!C1N6.Jo>Dl;M-@:'9[sd?#H?ZmsV>"[bCONEG %pt!L.4,lFp_+a]W-gAuZD9kCodsd,]Q^/OqCIQJ\)a]P2VOqG %[mkg[,i&j3EAm@#)`O0tVt&iP4I_:bB8=S`EP7aPh7h>PDM3A6<-dde'l0qVWSWQP:!X4=cLc+F=%uWQeRhudM?D=IR>:tBB8T,8 %B'2#G@O?[pa;k-c*6m/Apr-JA9"0ice.9W?.Ti_%tj(4W.nZc#'<:.tRJF0O/bbH^0*P^^&gDDc"K %,1Zt#=M@i;T@K&![TT0@GFb#_B>1MZe@ER:A\6?,\j/5E62XoG60ql4I/ZViuu($:J]^=g%!SjWKO/$e0d@cQ!(o'IBL+\#-[?[[X"V[^X683[;!<-Q'6*RYhaZm'At<;Q^e_DRKbfE+N>fhn`BhhqIZ7rh*g2&RP9onr(7%_jCAmIV\Tu`mD1oCX7Q&Ts+ohdj]4n %/J`dB/BWgQTWXTrKD;6I&#PUELV*b80\#?Lt(U_@Y>0^/O7;gLEjKka.E#' %G\pN]a2si7'Ar9"@)>pe]+R]Ma-:8*%@Y4[^"ank+8od!6bY4:g%"AZq)j"q-GN784CsC$^J_nfBq6aBh##Sk.^)M4p*6'LOENfj %4m=4uM5=Fs@jsP]k.;N0bA!L:f:EJ?;U+IMoUk-a]j-CJ.Af<73`o@G-%G0PZMVoc6.)qL%)]I%0Gk'`9* %8%rY^!j1P\L/Bi.D6rR:mU/%\aOKt-_TP%\/$,kR=jc(Ya,3HHjf@$Z+/Om&_>M#X3T3c1fL0@&[G(5$C#5E!b3%FTTcALXka"M0 %(BjGPENGN0qq"G^J>ZA$9$E;V[R2#Z[<&]egsNEX\F:`10M)e!HL?$1?ImeQE4])c!G\UNh.>-<^ee&o:k_q%?&Z>46_4^1"pN^qgrOL`r6*N-f8 %Fk"ra;X`^DkH1"_FS>+kZKqCD@bp<3=C%2s7TBQfnr;:e(N_"SD(8Xetsmq%,ZW^ %R.'p_88@l;O)qU&3;_P1_!95f/;@m.CrM`(4boVDk:QRW0J@Y6ZWL(B!eYuc\)9B?*P(."h'@@:8oh=S9jmBA4Er>Y<+B8"S6gH9 %bAk]H(J`<@HHm:n74W:s-ddT#B*#m9Fd(ui&Ah\D\sa2%+2^3>Tihd&0;;$$64ktWKgsO]V1C!-hl.-m2dZB?+WOm7&i+:M=+i?O %I9'+?SAt9j(Aqd&GD@f\;8JT8[WCh(B\/"^T_4esJBh@aQ%AYG#IrU8SD4Nc#PoINmCiFfea7q\*bM$CP@h[SZt=o^/I04=oOAGu %;6\%&7upH0[PYW%r(oho>%rTK,N,rAO[c:5b@5gH`_Lu,d1H\QaZajig8^G$9Y%*9"e)?224*jPouVAtdt)Ge'B+,pjE)DiL#?T* %+/PGkbT`a0]c,,-A`E<#*"+`)QF3t$$p=lt1YMLu)bHYG&`"=tmqj3R_dEddCPisCk]tl5h]#3fP@\E7sU1kSnNLB%VJg"Zqn@.tHj[eE*C@fMqn'*EAB$4JSCMN+5_O.r1jt'"I %RC2d]>UdOMCY?FLDA2nqps93ZgP]snnJ1%I5\bk_2t.je %6CM_qJ@,;56PE6Sg=uA&]nUd,H2iXQ<;^]m2Ys+sWX'M3XjG<*MfN-ud>5fT5@B5ZGb]D_kLJQ8X&u,%PJ-5]!NUHPI<.2YHHh=+ %lF$8#&UYq^;ihZ=Fe.?g_DOrF(TLV^/lbY;1eR!(S%U*tdHKnO4#_S&M)UmT6pOY'Pm2*1^:Nn>]IbR4r%6M!7#b[,j=kp5e)u/J %'W]#=_l-FSg_D2:o;h&&Kip[9%f:r02-S@Rbi'Vp.,:]D=/Gm^ %2kMqG)f;B&Z#BTP,1`\E]F)V')YM?T#&F,g;%rE!p\!(-$bDru)qF(_IXQ9sf>JSMkPG,sf-la(\LJJ_Rqc-,;:;#EIs/dMc+B1: %M:qnYegQX';.ks=c+Z6_!X?];]MY-6g"nK.f'$>V?1C!1fP'??dDBEe1e@o^)Kg[0.I:j3rJd%TPgK5mj4oDhUD\:+g(0&uW\PR$ %`U?X_C]DmPbmGD,KhWW17a%!]a">^&]>NGC=L>#(Zk`SQYNX5W@GIP5CLblR#0m%Gm86!7L %>tHR"BQoQi*`8[Tn\4@*c2AV8B>bak`j15X7_^V1BYUu,MDY`W12Q[MeMkcF0Xqpqmn_n %C`8."?T[]B@U0U`2"9SQC(bqb(,Y;rEfGZOOB"=NquaO66]XYiBIn':dY\s^9eg_J]VcM=V_s]lNQ)*\JkEelOi^ZB5dQ,:BF58S %A!Cm'(q0ftWp,Z7(95d3.onbkK_GA<'@X`d'3q:^"(RUR%]6EAm(sGPZinom*%O)RVU3'K5#IokUCX3EkDed$HZHWI0Rh&D9%_aD %EjB9K2rtX_Eo0rSp,);9_^SusG!#M9;a,=j%L>@Bi@B#/+5;n83VW0RJZZO^:Zq/_Vr8os'Tu.`J"Vlbu[ro'HEpD15)ASWb-B_,HA(KJ&*#haWcI=)=?c0)]loRt`5]WXLcPBNU@@*[hj5Oj8N(3]2eN@o5;RVge5B[C`'`?dSG4X:fQqKc`p9`LL2_1p=HR`.nDj0G4AO!nu9d9?KP]=;U5@QNNc4LBaOOR?6l/' %2T&QaRU\gHZ.QBT]ktt?X2BeTdh3_R@aZ5hC2gj4,k8=Hi6Ffo9V4]7Yi)L_h)N@;VeKd3n5Nt4J**k)rc>9V8LM,(SP)&GBmA]* %5H6_rR*]5]1Q-ObrQ;dj!iTdl$/H\]oL%-.R97.%a<3hc:e_@A,5d)PL@i %q*#qHg>f1;2C>G$Qop";bN7m12A,m+(:-@u,3N,tLDGu.+,-\X4#h %5Z[%*k:`"ZJc(J*M33!O*6cnpiIN7onG#k<][mZ_jQ/6_"h\p>oD;UT\27l1qq\N5Ls3_Oe:#,6E!k_o&2;er.[-f'HS0`Gb!6<` %H+I%Ef@$"e$A$Z.)1[\0C1XU;$KqOo;PAB,A)>ggP0.1\FIfRk,*)%$Z]aa&APGT56h/n'ar1o(3!k1W\huMMJb_pQ"uD0n-?T-C %n?oLKf9#+W#jkX[C!URo;m-3(h?63Pnq,/bTPFl1^4L6erF#suaj;rS1QQ2<&-j4c %a+t?8%_@3n0]/j^GgpDG(Bu6;+trTa>n?Hf)m9Khj%e5/9L$g!5rG<"jdJt##*f5f#QAG3*meU5h#jHi9isL[Z`-&8@UJ9GnPBT2 %:H#pO^gj)JoH/DpFlPaM?[sbXNm.,Q^$#7ge".UW&MRPPqPoaE'u-YdF1*XQ;jDpk=87OtY8WWJc_OD\#_ql.u-T<_NT4sTpX5$kDa?QfNn%c%-S5KA7.6dY:4JjFnZQ_A,F-+ %8*WeP"lq*WDEnX<@)jf$8"4a=A-)rYkg1ofcE,Hd@T=\S)!sdGbl[*9`ho!lnpI@t/tS=@ %,tjEmMFU]@'MLJnD^XetMZKR-Z@#9S-c_7*egtutOkO;O<.;+Mn,PE#88D8._1`o23A0iK8uK8!g+k]0hA.'i>Me$a0L_g=XAH5` %W9IGRm'u=W5hB=;(GX.QfGL,P+PWo:4ig:;MTk&X;lVB5E;=[9-4_]VLltiYPREF+"[e>>-!ZjMCW,\C;7O&.YOF=+Bj2oH>m;o4 %j"19BDuBj=5TXqs-PKG2ZZb1Ig2*)Wib!NT3'K)=bq9gf98AZ*+blmH+-IO(c3"ZaLW0Oi^\<]mr#>L@u?9!3"P2Z?QQ/fJ\?[);ntZNb%5,$1@W/Jh8_e',Nk1Z],#>.1Jl;f %*Fn!JT>@:&(lu\ZXWZWLmS/f4e-ip&lB[Ap1jf>sb_6Y(TGEeY=ZoFF:\`'!,![V<.pVpPnbbh,G6Po*%CbFP&tOF#)ATJ]Fe)Y; %"nmJ5gPQFr3*qWMK6qDYZ\n?:E<@mFL]kU5hTi8sjV3dJ$TI7R&eQ[*Ob+0pKgge`>_WEXY;?u[LkH-Cm"TJl5XX33T6SE %8cORcM>%Ou<-mscm*Gc2bfU2(c1&kP?>nSMp'S)5":>X6Z>A-K'P.\WUF2$YPTf>&RPb6gDc9%01Xi$*e %geo!mdp!lAE-G2:mrNnt.uon&QW_a"P:Z$_K#oU0P3FR0P9HjNq^S/l@^Djdnc[EGpJ#Oj\E!b5jTdS55`"=gP;[drF+s3MT%p&Q %'Hp>F8'JIDP!gY+Uh8Pgn]@\j,g$TqrhUl-=k`\#j#kfP1^VVIAt%dLHC=tMbXJNbgB2>16VN\fALuS#jF=2OAXJi$YA:G\/.cpO %,i;2M)BXI&:VoknTkUMh@!:$5mmJbM%#MrZ%#Is`1u'ng(L,b:Gp];Q-V:.fW#mMlPp8YjHJaeBPF*T))So%ai+9/1>ghAHZTZoL %E4A]l,aaR')bkr'c,'I=CK*'DO]k$PdG!tsU,Db:*KW&Fqo$[QNDcLja;1^0r(TVl7JL,UBL9ITe+Dr'N/[h'G(Geh>-U3 %&$,s&:;9m=^;C;nr`Q%`[r,ABH>21qHJ-i%F(S-6k-pt-a:"#6L!GK(!"E'gfk]XZ+0@i %7"1+.L(`&#;Aa%Cohe5X.q&$VAdo$UZHF*n5,4CEn+4*k30nfN-?lp0hINKq1\_DMs*p+HW#B\ %%\cUF*Ed[f7+No62X,TJPe7;e/8^^e$Ao8%E#o3-,HnrE!V?g?:G22Vk%K=nU>h8p2egP0[U=1m-Jh+V[:PQkWJkU&shC`Jr)dY,#ohp'E(^#!OFN_M0`"8!gL\J86>68f*D1S<>o7Ofa.u'plO_E %[#4oh`*Itam2!*S/[fjm+NAp%:]['8l4Q5rN1:(TsW8l^$@#)Vd;P$:D[=X6Z=-K]Hb(3 %$k3_VA*>;8Ed1DAL?LVm>)8\l.U@!**CCWG'"9%I&S#L!:`^u7)+.lFF!TpWj>NV1b3g6:P+rZ>pn0A&[5YY(Ue3^1FH+knc,d.a %qGsMoQnhp:Gf;bXW]&2,]&Y!/)kXFHTK_n.CWG_nK^3:Q?7a]gqd7_os;ZP7L>:k5Gg]jJ\M7PsRs^fdUG*:10IW[iVFg;9UgQ.7TgJ+emY1 %BQQhun`u)gf^[T?:E4dLLca3`26N*4kR=jfQ+W!2If0rlV_UfYNZCD,H.l><2>]<.*X`/F9q6N'UE',.JH#9$I(q=;)*C@P?,!WC %knA,1ck*_^Uf_ %^G3>*RJ:H3Zpt7G$gDqcR!5Cg@g+L7QAcM;O9iJmTn2>Ad05^X$NtV4p/[i=%%-h4m&5/FE\j*XHloH'\lFEQPf&94<@*F'AN+6M %^c9DRc%+6G)c([^9d213Lhtns\T-%fL:^+g6iRBh2-)188<)8;J.rK4OZ9r1H*l`ZJl&pKK8M2WrAX.X!6.=i$t %)48D$f7Nu!n!RrI1,k1CAj5kpr^E8m+uZJN\YP'WCpRK=>&]l2.C3.ik[>Y28I8esp:1eRPg'r%Qm(1A('9K1"ac3>(_,pVo`8'aV(45a1Z/Pg"u$?l*<+Lb?uH'2ilo %\XN^KW/nD;.^JF=23pA#6#p:)X=lXWrYSAt?6"Z]Z %loG?6$\JLS]t>[<:k5m(!hcI>BREjj>f)T%9O.)-\.HOXB1HP(pn%PAOfcHEBF_$#r$^JWSahQ=<6-=';Q*]sN)jCg6)n]E>6&2S %-u%q(*JUD`*dPu6'Ya-a4gKhR>itq3oj#GMG>SJ5<&?(CaAhV\$aZc4JQnF"Jq_HK]98R366G&B.chhWMGGKp.DX9PT1G]0Y5]]A %Y](XQ]!;\XeLbT!gMmJ+6da"&HoE7/@-.jt%ki*CW8%UjQAT(HEU!'&fV1^@?1&Y%OPYn`QM]>>UPE&*bUrTt0!F82SCd;Ib%;MS %qN+bAYGG"BPD=j#jblKV6tXp_a2t0uTU&[fK9`X5(RK#Pl,?RK&*lu %PW]qcUb_#cIEc#;,/b/`(p6WP.UB@\Q.^6i6#hc+?1'k^X*iB8]cLI4)Wi+Ph>]7UP+@ttG_c7D?:_n,XG=$W' %E;_dTTr_Y3?9M0KS?b53X8KWla%e\Z7L7-%?l9Y#nE)=!%P*:dc&5Tc]2!9pq4`K.TM!6U"K7'"l&=+@RYjn."[0PZkuY6(!IH;G %JE@RK^tTIK]%th-m+-e;A!%c,?C\8u!/=)HcIi+5CPeF$\%DNOq9FbS;+i-&ctS?R2A:8+236ID,(P,E\RT@[_2l6%lJAO-s!5B\nM\MEtq4CFGZV %d(If%m^=oO\p).TEZA#`P,Kq_iLS>%#=CTqQZBpg5M6oqH/\k(D(:0>>qt*IDm>L0mruTH9RGm^]%bLPK0:730p%JHGJf.ZViS=`MCAl45WW(0m-AAjDs)fteP1eT-AJ3<#V\t@cZQt-WsEn*cehodG[ll#.sCej6/]4E*c;JLq, %hC>"<.QG")foBs+iI*Dc?5s\2/@$Q:4"^`l$,1T;n*R&]1#dGerB:K%/;=Ic353G-K#NOE)'4bE(9?^eqEIFQMd_4:GjLQk@'Q^S`u^-G %Y %qBJtD=AP4>< %h8Jl';J)iL6P`'9f2BP16eufBZ2C+7bUXcT2mGKR=RfP@f7:N>l(R[3NTKUUQ7#7S)7fW^@M+dYO.:i&Jh?-D?@R&U1#&WT[eS_N %/oJQB?ba;H&m]n^[#EoYAjtqCgTe_\B0e&I;),MH6#te50"r?19V'l0"&Q$BCp@p`?4"4b4)0qKG@sS"gcd;d)D'njD3u=gTe^.7AEND#S:B4'qpP&2e.bW&_p!QH:?IqeK*l5gTe`e %QC1t)`OB?8n(uT?'=M"(JsAeAhi9;&+W$?Fk:3oBFU,MQG%sjnG9a\$RMmVknZ<)bgJ>Wu?k[FiN*%-*I&;f(T9>E17#0Pl(hNQ( %e/r1OjY=mo\0Qcnh1ecrRCI?M&&K_nF+$B>ZHQX[].hAl_MKe_-nE)i56.J&TfMlrj[WgF'qX%O6]A#57O^Q\D3O!3 %kOn?cSRSZVLNL8EMr9&cZdbP,O2X/$VEiZ%57$T!+e9]2F!Zihk3$3g&*qG^mJOnTa'tU)@c)WhF]OI^q@V:]%.jICX>>WR,%c<%a(7hp^37dogpE_9)3a]S2pmeW3%p/`=aeQ,dgg#Ekr7D+Uc5b88 %M&3c?lhocX.n*QQKrD@#@\#NBd-ea-KQY!Na`S!B=i'LX&&:5I8EU6G:qaY*bAurX=D)N^M0E^`_m.K";;[#2c[a#@O)_V"6IYrtDK?Z?rX%MKMsM8ULNhR6s#"-;+ul3o?3(hMcTkfVrmD`WoqC3Mc6a.da.c+A:"F:ce;sYg-]. %,EKl+hg4"uI9:,7f""1g4q?o&+e==f$'3"c$ZiT1K6!@$T^F@@`*.n@o4o/9=#! %"0p.A"'5@iXRkPDddOt4.lgPik?)B"Ik&A)_`IBjX+)5B=`ds9iE0`q51L,6K=><\D5'#(7q8+#m2D39ruS8JfS\5>Z-HU'G1FA* %!:)3$OWTU+k55:m48jcDT4=EPUpGH_s"ga_fUUCMZ-F?;q8sQe5JfIRmC<%1=D+d#[.=3cYg/b21$9ta%]m"R[A4mRSb[W8INR-D %1?s37esSldb@VMS`&c@cUbG1MWKm!h9@F&Ac&1p'2mBf.;tt"u6-FE6[sP %AfdH0gpJ5eRI(!>+Di18Lm_C^'ZVC*8>dHP4 %r,^hGJnpZB2?+KoU$/XheLa\4H'^J-[Yn.WlaZ'[`A'e#0ulYLSR%mUl)X]"'^B/9=&cd%/jJt(C;8DGrf`mYfuNOI!rZ2Xh7Ne4 %IaHBCm)+!i6'1trG'7F=['L.&oU)1Tfpb74]K773k)(;<>%2E+dO^a@6$.h`P?TU^Et@'Z7HPY9HiR@3)+a58^3+u>o^pR"$P;+9 %k&'oO.MJ39.@O_0Hcs3"$Ab8i=l0!HUpLOMjILo'Q[Si#=sX432<*8rUh)eW+Emp2o.8%sH@P%Ab)Z"T9M]s/I78_nb%$3[K"/,# %T2uf6.b0]TiQCSKRmFD:Vt'7ODRfe%XQ4u^MtpmD'XI(*i]#.16PQiuG*]`W-ut(-cVV^*,$YRM@(YGS"3s'pm)uXpFLkM18q&cR5WF&r>$B650H?L;>9-QY:<t?R5cHal.3AF,`/#qI+uoLkB-M7UXCErWJYT$r;YIIch55EVJ@%*!]C+L*/oKk;*p'Y%CQ:IOoaU! %$2aaG[0-P6_?-P)\aJpU5BG&-NKDZGY,";@4=oZ#4S1b1L1T5#q]2Y/YIX5W^MH=Qf0OZYee=Tdr2K=`db4,52%'+IVuc(2`Xr_b\D=+C7- %CC:.FcM+<6@5Dhq'!WY^4nf)UlP=CgAS:+nmBI/"aU"5i!6>+_=n>p8F@Yt%RK=$B!=9kJ@p-Q6N^K#P?77"IQ1I;+#o*M\IT*gACUaJki %3&Z=NoCR,::NN/TXA;k_TJW8Rl_nURVCrfq+Bq7Ha#$4H>$dLuI8mh!MsQF;W/jQUc8MHmV[HfQF2:X:a8:;Y(df3HnAC[i"bk'] %jHTpt,L&hU\91>XpRi9hBt5rU);Zn9&ol_<59K]YMOJu;G6[>*+Z9JaL<9*Z8\E4sZa\.8G)0"AZ\3T.g> %fF`lCo;FD"csQdK6ua]_'4(,VZh&:ABRb:g5/W[n9fXBVpd8CV.m=V0ZI/l4o9l0JV2X)Q,_FR`lr9DqTc3OG\Xg#f]9q8#j,0Q] %l86KRT]9%>p$>]%YlibRq+jkK5Prt)R)6mlf7E4=PX/+T%FR2b+*dhX/,fSH:92%F$iJD\it&f'\gCrl]2IX\Z'DQilBu$SH/QT0 %;e4Q$4lRs:0n&(D*[`$H7kJf=iJQ?goP.Mg-(Q'V[i2Md]XlBqFXjYj][r%LXX5G9=CU!Apf*;)!m'@cI-GFot#7'_!;bZI(3KEGrY^7((_<2)b[eK)Bj^6"SA]oW5qgIE82gHp$1X2fi6*+3C %c19%pB"722GOM?-$7(EDNZ#M#6B1L3W4E4,An%k3s"sd8cHV %IX[e"rFh^q^7q:i-U3dQ/6@]o3;^Y9<4E$p)imWb\Y--0EgQ1[3@97\H#:Q"TAhHf]=2S_U4Z0`\p1'`68juPV'io<^[]OuoE %!tG&_9@MnVHph)%G9".^DsX(Jr"+M5ZZE[YGhmk_U0HfU4%@t'"O@idJtJ&27(-:p>[9Q!7ds@hk3dP-`roXoDXs%^#"pigonA"> %FHQM-f%gE%R,QEs,V5,q[#+**e+cZId8,[m0fQp3+,3'hCHO-(fj6_Fli,n%O7=maYC.I!=J]\YmoVuS?9.Y1:+1=7@sqjflesqV=,Hc5VPh.@_\TDOjkmGcp[gQ@QA:q7;:^N(JTD)Eh;/hj66_u=nD%pKr*l!EoIV*rfTGq8>J$n$^S('ePgs/T.ibgtR4DMEEr^X>_&Wn9nrY(p7!`e+i$g %T%PZGIP:'/N10@*abm0;bT<>-JK"L6lQZ@L?"08XV^JlSOYuoD,[dlFTGL9jWf@BeE&[iXgZH/D86EG#a0FAVPj8 %("5j#-YOHR?0GLihJO&m9>D/K:W'XDDpP!42]oj@RWo-$%Y'p\"i&rKJ&_;V>l(iihFRY_.?Zk:n+[rcpel>_d1aI$H-Xn1oDJeJ %KQ$*<"PJjc#7Z`FOcC;d-SeJ=Y<;":;##pQlpme@)1C\\9Wdnl7ZWZ@$TCk,*M9<5o'r#[(,k-qq#)S!>[I4R[2e)Vi6#i!2=hGP %I'U6\05"lb7"`_HGA2cfh8:$f,s"!pbrhX9h?4Bg4;hY[cJcQHEim:Ce:b=(7d8P6$*WN_jEQd;RG %df2aK<;W62[D%+.qL6&=GSsJWmgO:'5BPtsVK^^K^LbDqFQhV!NFR`t(__0g&FoOTnZbABWTB%QuNUA]Q^%Xe2:A0&'k',P]\^#(U[G:7pN\.[- %$/0bA!j650Q,@r"3rP"@R(Bgk6]Vg1E.u-NL5o?J7o5f!#9-2sr1NrTPR-ilrK3!2*nO)No\PF_o+X,6 %].JRa^0aCB,XfL.UOsN,>VY,op`2Hqg,o`n:gh(kcc#o6Y("i)0 %^NO:+`?1>WSPCXmh[!NGpn\V,fBYFUEAan$MYa7XD\dd?^5[S"fm!#W$ZA`n"]=p3coVW0ruJ:OUIENf]s2&@0)Y>.]i7?_+M@uF %C'+CfLm6_;(P:S>i0Mq%7j@phIq89A0K69\2aQ*$BglZA19T\i\O"duBgLo(.iVD*7d7d#4'I1ml!B=rGH>*(1p_[ %+"l1RqsgspVdBOd)EO.u(O7;)>l*^LGiF62J;j+8E\/k9.f0+s^*Fh!%Ystk.(VZnNtkR,eKTjF,&T3<I#s245r!-o4T[9DH9;k*$jCOU4),-E@]gllmmckAMB^U&9k; %OD")8RKD-)n9^ku[r9FEXVVqRfPuXb'XmacNN`)SbfJr3kMf;0K+J)cJ"1#Ua/U)j"4Z4Lh":F-4a5`'hB3L1oDf4_5J3c\k!1T^ %Rh.6]WT.*YL11[SO$lX$K0(RCT$ORe?F1NqlMfF6d:1kH1d2[-]Q9b>qTO3CX6/&'"'k5dc'c.pI1cT%SH_#i1)"n8D\2C]Ds+Z< %$Kle7$c[k+=L5uDkeo^3:geP@b'G;&7Bm6s/cE\,r:hl(G6cd70%LE=70Bd%2V-3"TAZ32pq_A?c?tV+"#4[t-[m8-_=6Yt+QI_3%kg@!#jLY$;UG0LfN>4(hK4'IW;p$hujKRZrp_F7$1.?0eD2$1`sF81A05=HqOkFV3p. %-GWlkYEc^S4"liA&-fCE+neVAAD6m4,=Z2qaTgoIAqC9^e[)*@2s<\Wc/'W3m[1gcpO&_`S8EL_ds[0:2UmE)24^qFV(/Y.I/i5= %"4:9PT,/[60`,>FCr"2#Z)(^=.>E,ba[m*Ve_RIuNlDmh@jmEZ0[9K\K-=^s,4)C"`m^IS1=*l42B4@t>*iFhF9Eq%)N[I4\"_(( %6[<[,6:9Y:BJd_fNLMPjUgVS]s!N[[ffjH`mue<5>/.D"WM/[[:G^1'R2fF:72\ND-*k.GN2UQsk %V7-9VG0h'c8C4T(*]P2IC(RF9i/Ae>bg"qVDa)'!K4=%pK8in&2Rr=+s%'!n77s1>5%WmuR(KVO"2Sc5p#"BQ@/1"g^<,?4!&U`9 %m'#AXoR9e^QYMd5H33X2qu_=H$`D"SaeOd25(LeC1O7k?qcKXLdEaf6bS+]ZM:!4%;kJZ+e,.A)$J_D!nKIfs3G+mtdZY`Dp-IqQ %>K"7BqR]8K0HLCEa200O`2D$p_\dI,dqNGEg2*"9mAi:Rc"G``fW;to+Do:)(t_(V;<7(TTgVY8qskO4J`-U2Mm*'PEj.0J-[JM+ %!bUeZ$4)ttYCq^77.d5j'[hD2O_)&U#TqgE(eR5XmG8)\s4?[gVRY\@8pYpf"h=@Vc+%6H0Jm6)oT""VQD`:ZD0&a1jLADa7q((d %#k*$40j&k++10[AdLeJ'!2*uPGQ]-[A>LMidK)V!s1BRqdK'>J5j8QaR`LRqVg0[bKZUKC`hU6DR0>qjU\_M[Sf1"(U1fI3=dl=o %AMWk!(Sko#*0:(9`2E^-.3_F7:"-Oa(KmZYTSV0QY2FHm6-T8D+^7A02=1=kpV,mNh1,:XLZmaIh1)Hd[umEHVZu:f?Z+dbA3PYT %]XImQ5:$-!VN5TgrW+7o0_6sI?V]ASVsjS4T#E_Phj);,.pbi2fgR/OAkSaIl*\MLG`/>H_@K7EgtCe2;TQ`-o<`AkMeN'^lsn'H %!5pR(*J+.ki7N:7*rr\Ek8f,;%KPQA2'%5kKJX;%3nZWA=k>jcrLSnn[Rr2JAR`W[DshPJ<<&]rThd.+B%&D93n_)=ifBM/-[tR! %=[([>S#dtXJMYP8qN_L5+KYl6m'T%U#b5u:9\)"\^e"dh=#Uh68+SLt1+16NCF3rH6BiZNlhaF^@Yp3(2p;e*bCF%p,8NW>0fUfj %/B"_%-s5\#iPD$REg_5#2^6Z-EF_Mj.BZ8Z2Ce-FXabc]ZWK`f[aTgAbNeW^P;?*.om:8 %pE-4_:1f1:-\X#Ki4_KTW#c>dbjJiDn'RM(..ba5[^"3NM4u&%12_4j8c,*PW9)bKJmt/,@(Hc]/\OOF1GX"Mb0\!iO^/A\AB'_AAA\qY?_MOSGM$WiHo$"%4\irK(.LgOCpN>I %,)F?fQUeO7@W6f+$E=nFMG)W@s)2<+1G+P/6.0<])'-sOMb[hG%]rnuMQ;6HamAVW:[(!/N*-G>1.[rc\h8YP)1_qofRhIaeFg3 %X14?&%UMr80GakqpcLh!L!IMM,$Xf7884A4F#SX]$CkE8JG;U1UtuJ&>6Y[@lFdb_/Bjpu+^5/7<38e0cC_O1mILR&$7me:+BbdJKVMgD&%nbUFThu42SDn`usH9!f_ %1#,lc)_l?.1u93/=?bQVrEQ6EMd@+r/I1[2pZ'.lK"=:,2NMRt9IjY_DS,E'"T&e:"@R*2h4=*+bZ,bBm/bh8QcQ[02q`'*>AK$G %.-]AB:u8[C`Epi)EaBocTl_Y`N9Xc?*e31_ks %sg- %-c]87!Q@ac+Q_sq,scS:J%gD+s6?'X_dl=*]!NjOJ$ZQ8CSg>)V`O$JZs09;PMde%"?h@]]1].$="Q[4@dc2aph20i@jEmH/_[)$qSi!6%9NDT/Nf2@* %BTN+_i4(b[Td;XHH(IUWL/LQ]fSO^<3^7\`b5]L)ks%K?(5okEsk=+hL5LVnC:$Er+Btb;X.SH.@#0B!h1,nYSY0EB9 %L9qE2T_2G)q<[^IF5+Jo['#C&*;-jE"C66_0houWaDZ1cH>!3U7Bh8.$$)QFA;SET.>8OMl@Z#gdE7X45e0=0*c9'%^sr@qIfsSm,^?YP+265K@Mmc %$`T.a.7R#.Q5k&^B=\E5Zo8=f88^ajeM%2'BK7_leu_Z]n3g^WQm@QO7@>-%eS\oXiZD[o5@Y+a*jUnrkCD_Dp2NL9B&I?,VA[pH %W$63"VhKX@#NM;_],VBk@#o;u<>M.Z=OjpY99[o9mT7O0#lQHsFMI6ZgZmAgqE^7=;Dh&.X=c`Qm5X5* %ba#F]/C_Xtb(r^i>%--g!JsoacHDjZ)Uo_OcA3.t=N#2n0T"ef%^kW=*6S3P2FF2HYZ(5Hq!@;MluYHFVtk,W8\iV@1DuK'a!l?I %)0!>pX./laZS83HE]\j.YSPk)cc[X6)XAdm-.91bo=ha_SYU+%M`T<]Qji%o8T&!!"2\0od'<2:?iKM5%^4e=`^,LR/oma8ddYfa426mbD7V-&B,.`P9#sCq"ohHEW-R:X%1ue'D%=Sop\VdKt"6UXmj%F@G:G%Ms1m7!UnR;N;2(2 %d5(m&mHc2f'!^I9DoMH3-)$+4[WFqLY^=ZWftO:l8DjV`hbY0l]R/U?%$`!OJWkoaoh*/_Q=pYfeHCaIl=&+.QI$^e/cJ2Cs)eH+ %qOg.+3eMh!3(^HM?B4Y;>&p=*]m`TV>7"9k=R"U5n:sNbWKf`q:-W;5V?GGqS$Or8.>Ch=6FIu8-]::;4NJ/&.!p``? %h,tR^RpktfS3C78'qu'\G]hLFj_U<0g6S_fn3lN?%tX$c#1A#_-,X;M%Tc*l:PS2tO\^PZpfV]2L-%uQo329uL5WsKE9+Rs=Yc>d %7/n^Cs0i@&jOe3"TQd[O_Is`M1rG'!b9@b_h>%jS`CGVE^G0$93bW`-"KfXGS=17'ZrfUqncAticRE,3:.*tspFh-sY9R-P--/r_ %OWcm^Q2iODUYC.;T1!!?);(3*q2_LSe"NTWa>ijGRNYii:IPgf1?V-IW@!l\s'2fCpX5rrTJ0*hC3k$X#p3D<=UmZY[saY8r4 %LD-hMs&s!$+%![k#J@S%,bocoMZ<&%fJ="*Sl %K%7:@jLA&j=*Y\3.bZ6V,C.Z5U"[`lq'P"'X`rf_Gp6H*sQtZ%uDBnU-4n2Z3M`EZ*']EZhD>9[Pa7Oi?$d`+7,j %roq8upK@\FMI=[XU.E"o:KiSS#sDC#@Ou\pi9=3c:#,A4;,SotLc5h[%eW"0BoRg&aYKP"fi$2hJ<`Z[VoufLmGk0;u[\#WCnhku]Q,d=nh7"P@'# %TFQ'k(8ikr"P@(6Rau;?,0)u2LGfN1ktU16Vl$<@?^G@.[,O"Qe_`4!^DKW'qPU3em]XYfMH_#;FA&rEM8](*-J*`0P7%D+$:nDj %"<^tAnHOD]8uBF7%Bu.e61ZBJqf?(ujA^U\:A`S/l>T%I5"c>?p$tZ`qXS@8`j">(s'hW0_.i)o,(C%Vs"V3%RTVO)iW,pXg5TiS %c#J4Bo>D(Y.#\&3YV$+iPl9p\kX`;A8Uig#k0UbPaSinK!rY`H'n,ag^7%'nIR%B)[PpgT]j8F"p4]Wd"40_JH.>* %Y)@#ZcDLlO+qL+^A`TjuiI/=H%+-3#_*dRiS/E,!+hqr3$g_;%e>O-bllhIE;>1ZN(\if(T&MeV'!ebkFA'OiMW&4r)qtEEY0-jU %p'8uf8k)FXSbM%Idi#;Og:(]=8OOM?BKbq,42b'QLB_M!$g^V=^OQM,7PnI_<:CGI]DI[KG#.cu#%_+3V,\+8^bIfc)pEYsj]:p]Z0]_EEV^TWC+ %D]09f"tK'E5DD7:8S3uIWQAn`Ff9oWZQ=Seoq,%Vm8A7.clSE9CZ*o_AM"mN9gmYX35Ia3;$mml$#d>q=>\*s$.$CiiSG"Y!K>;B>=gm$9Mm.TpCSTINGd/10EQ@R.'].%K)55Ljk %]pl(3QA5,Zh%F8Wrk>AU;^/.;T![;dA9q%].4r"c]ZTAJ[tL>a]6MYOlmHSm4A]CrFQ_agop1]CN/jrMV40eKD69J>T2*!En_sjkLlk-03&79dQ:pasH6=par1P3VbfMPL[8Y %?WM:_$Q#q2Eh1_YZrK>p0X9hSK:m88%@:?*-VBjF6/C6RmjNjE>er:(7>^*TN-n^hHFXoT2j2>p=79d%rqYdt`Osmt!pVFX=e=Tl %phStu.U4krI,pot^XYLpHf,-1\kD\WJ;Sfl/#7Lm-X)#$/r(dAp %J#r.9O4*0e9Mf+"=7/m>T;m6%pJhNC+.bX*)='orGTeAQE;n['Z>AF1@b]L)cY.gm$CqG%1;r)\p %9dO"L@J///eR3?4;l+0X9sn22@7r';jNd9i"mc&gYc1O#nU^0\IsJbl2jJ3%KoG#p#f4t6r- %ZW0H?U0i]bq;`Kk"0f`t$I2gF="X,Ls0esMl:9cSX"%?P,BiaYZ=7D&E-5%7Tm=oE`KHK3gcrKB.ijJ;P]Addm4WK,[]7[Pp+qkgqU%msr5%eiPf!acYDMh.Oq4^$d&JmP(,ZTbgs %nG9/&W`u*39?C98;9c/%eMl$AFV^%j.;D3WG[L2>--LYVT1*s#ENo;>Rjr&Bq(u2'ANL&B6X9S2//@_Cb+!.FkkrA30b./j4,$aC %EDrjWIj]dS`LVB'W*kW55;()`j_j,?Zs2)VRI0aPGKQ=(EqF0j?+d.I>ACX2ceMKpacD14$Mhin2q9\B,EHXjC@s.4;@$?]Rqb"4 %EDsufeGea*ZDlJ$RI&gSl;nJh@\g#7VkComN@P4uB-L>%S-l#=#FBM+Q7f)HB!E2\::d,(SgllY %/R.j'Fl1CRKc7V.#6UqIk&+#2DttH'-%Xr_aKo3[U7Gb&jpq8e.K@HX[MmEoM`pBCKr[^U?Yl8B=SXJU]Ni3C*Siqji;1KAQX*^& %!MLm6fQlYVUANdP/%3&*dqi20i1"M]BX>F(DuP;[peNB*I(X$ZL%RV,[)P(g\,Y3hV4'?e,i^b/LZkUId&Z.$Aj3tB)kP`)+6/@j2.:Q# %lGGQAO$`?YS#McfZ/T8]@!C?f<2uXq^TjKi],licDqcSd#skt?c4=`r+`;,T#PR.:1E?8/gY2HjLuVFkc#$[Gn-Q?`.P,5lk>Ong %R!WudhKDPZrR=ekXZ:8kZkKsu!WMeFbG?n74-"AJU!UI#cQunhdSPfi.o\(&Kh`?1m[OT#4*=WgT)&B".>b,,Zm=HSoJ^m#NDQ0B %B&r8/@r?mF-:m%e.ctV;Qfu`]/bENM%fa-:4Q0mYa-t?P49\(%C:=>#EbP1=?^g2>EQ;n-c25_.LF"+t0lF9hhB"N9pWR`Of,TI'!9? %UWGHg?S@B3;m$e)KZEhdjncF+9c$kaH]8u`iIo;d-W`&CL$Wb14Lnb %d>M.P[LHKe+83SZrDUo:L!mYDSd7f5:[dZI:Y7#fhGmnjJ)0=Np8=&*ok/2LEVYqMKhaq7-<$Fh5DG4=njM7YrT[,M\VW=h`B1g" %BXqoecTo*1QC4s5B\ok:MpIJX$g/E,gl&;#hT.*+rNq$O94.E%oU4g&KpaL:I4"`*^&`"I5eHF.""%#a>G?042V.=*\FE9b2^5JB %&jPM%'DB-.0>t\iV"&l,2s/FV8#[T=D\H<]&291'29:^^&%+Pa#6kFEYJ;,(n-246imGTeh"=6b&h5i.eoeVTHf\J>7^_&l_;;+` %HNQEhg?ubs6@-IGYNj[LAZepn8&q.mL6aL,H0p_>8>bW`m]nKad#@Y^RqM>SJbCqY>D3$9/C8G?\^Ts*5s %,;A'A%K\iT+\.G>p9TOP\G+m6i7[Hur4k%[?rO>g-E_l]RASZaG>3Ib %ophg\gI"tEDV8J,H'gg_qh&5]m;e%KG+J0q.R)E&Ng]F,ht7t3@Jphk:(q/Zm`;nF>7^YI)<$7ORrU?P\n0Q=?Xf4VQHW"lA-jO" %EIW2'+Za:VH`1Z'a&mhZ?=QJYHTSNWK3n1M*."acq&GWR?19ln8k2t[_*sKJd_UXO^:g9\Y^l'8fpr5sAV]n=k!9sR\I?lq-0R]X %CWO;%hn3bWKhfI12N"65dJF96%"<5AFcR`V[V&=fj%k,_o#YmS)F.YUo*rb'/cE\,r.-B4?ft_?&.('bnV7hr+P=elO#bt']6<$] %6=;*e'jB>Yjr4uHMu<;:5Jb>U,=eSXPaIVP[oC+8(XTLadHZq+5Udss5:rafT]S3a8H)BRG(3jrl$@$(*F:JM[.V#oLhC+#2,*:KkZj-*unLn3Hf8\92&3l\9WEnrI#QSb"&TdL[Tu*%VK5'h?./lqbUeY$YbamdX#rlj\54&.p;+-G?,e]su'Z %lZQ%_?ZBkWZ1l(+F3rRf+:9'D7q)a/EcYdeauqpe^(5)8LQgpm3B]=:k&##S]Km[_^/GRGDgW71:H3A[b.'d@_b5l68Ec0OUNSb8T_>o4[j/@% %9>:['PO7mk\D.ig?SLABm01%I0sC)'C7DcG?FbbLJde%tGl@+eJZeY]&cR6]dP6Ei'rLH1p_/(2*]FpkN,]cLP<'hoN[m8P^Xgi: %[s_"b.,P17BG!HMYYK+U/eVKlc2&Jf3XdnJX`u*#T`5C:m!B,Ma[2pA>:-Z"F4(-JEY/"fI6T9LM>2m"]'ka:F1cUN_8?W=I6'jN %Ag58?Squ`WeYCS6)c!:E+^c,?j@(V3-!fjV^Vdqm\AKZUH3bm@T5%<)5n#!tjhUt$B$HaKHb@q@3-'7p=Zou)O[4.af%[o3C]'0& %b(m3M+9V;l[,nQ%Lq]Ek6`^W1G*]1q;DG`e1&iB?<1eM+_1Lh@aXVI`6:(_KZWLgu@)D?&FP->$OV4$!Qu]nGMT-&Q[0i`+LO!1X %cG3H^j(W*D?W;,kpA`Dk@'U?s^nHkjaGul/5Ct['M[FX+?h'Yu3Q+BH\=?XW1A7nbIb.SkMg759Lj(\>'PAe[G"@Bc?t%47oe(3j %l4>S!mlClDKF%;@D?]BR[geZFIP;SVSTkYsP\tSeRn*.8o`Gc*n3Kn$a<3't`Ki?6.]S%,9[/CdWmED(f-e:fkl(dXapnA%'#b.P,h2S7>],3orGV/_ %kjB^>O:^&;Pa1FsBI`'p>N!K[!ZVbm7EBW";(L]P+(ki+'DN35G=pKOP;aMZAU,.;d+`@EZ,^:)@Q.Y1n*Q>\B^9nsibc_t4FRdI %Sc[]DG5T>'fD$L8jF@#da6.$CkPIoQZt!e(]TT+.k.hRVQD>K>i%p,8h\(+4hb!VEHm"JD7;W#X6DA@YaSt`C*9?3!oNGInBT'Yd %AO\2t0.MbAP1E?_rKq,#l'I:0^V0?7A]d+e($/613]2.6Sa*GQa.E`67p0n=4*7Bp/qG,D[HNlKk"S(X#5?t:!?g*FMp9$?*[fC-anI`k1D!/ %@_3n6*g"9Qa3:r.[iB4B.-\N';g,P5*f$5\QaLE5puI)O]!1?' %k3g."jO5Y#$9k-8?ZIa1La0iLDsoc(+?7!L[k-4$@!)>A&8GB4^Vo4)_kV9+j(,Doo>91an#)$9NT(%\M9/QgQ-RZ)h1X[7L(/f( %42_$TmMIDeqI$ek9WQTi<@k$L^9Sb`FTJ&B!iLap]__ %TkOA.:hE7d9ZY$<,&1=fid1VlYH$foB".6I#nFjtoKa@!;P@,.]_>`tq*E[L'M\CT\NtQjBgGcIrrpE;[Q!^i'9jHW_T%m'XI0M$*?`V#&#R(hoD-9PeSKmmltoZ!gklf/;,A/HdLBEr/]$J9;I(4;q=Uj`/(LIbFeIc[l$t&sSk;j<1+oC< %\mnpM__QouWXfhhCu;HfXjW&A4T;0i*s$n"*&#;V/XYWf>;^ %>$[U;?ELR)4TB\,D4HW%' %QP.XXP%_giC$k\T+t)u$kF7Ne);8,_77e#X&!=!@IFROp%.!f]?hH7^(3!B=!%eu+gn,,O2=W1&HOe4HVffOJP? %UU9Ct-qg8I!>VX[fa/&)2,Cichrdan`@8fDSt@_Nngo;X1%gX]dNb"1I?1)[\5Zl%[8[U5lgYCq>&sAPm3,jtkH$`"b %TQYIFDXm-rkS`--paZD^n("3["tXrK+s3'H)$f`=+h(S6![7N[Zmg)`*ih(=UrGI@D'dt5V4n@g$Cii2eMC)bcIV:!HW'Y[U'o$t %)d@bMTguk%hid$4.u-fH_0L>GMM^e]A:#giM&CgI!m)=bjU\'3"IZ-Dl2I6TJM2,qP9L1Wpuri`9..STNRVX@Q$F;g(d'.#ks[1.SNb>e'QdE4ldbfZQ;.GOk9. %llj2K_R-EXiuq-X*lE7D,2M^8R^Tb?R``u.((QDR[f-VfRUe@.Nnh,s%d*VdIPRU:k7'q+]IiU.-tL#Q8)CRiAFY)[00`@<:pKm1 %X'tK&]O1p!WR/rUPhD,cGTfD!858QPS)R?'%R;_p@Q5+@`R'p0EAp2\"C!A:eCf"knBM(5VS1&q_ChOJT6Z9<5.P,G2r,gMKWN:% %2[-MbZ8Dm>b?IWU85G?R.A#,,%F,cV#%fiRlSScUR8fc,UViC:M-]5,,hfXf$RTPSs"uA5'#;"^-na8`dLHL %CplMC)m0*:S#qIbNqZrSO1.gI@Bo@6SBs6?T#Elkj#^@//Jai)Y8ca0M_,Fh=`u:Y]_o4B\&_am)&RXcLF:hO'LI=rpU%=gMHrh:ZeUr`6/WXX3PL?dXmYc9^*QCR.8(Y:;(%SlGP44gVXo[8d:1rqM] %EoKm"fWZtudpTahCrfePeaW_0\>IecRrh61rFN7])q1YDjg`9!HgI]U7[s!`EO!Iup6`G97LO\@A*=R3JU"q8O_[$N2nNW<*rhd[%.pQMp#m_:^mA/B/I*V:eX6 %(92AB)Y<`7L$E[NcU)af70(qR*ef&-@<1_*nY@Q2R8lsVRe3BuW)et,5mN"`k=em'p[d9;1DDagmT`Y!eUI1DKSOMbjL:Q\Vqm@QX9Hk/^`0BaYR_ %2nkF-I^6!1*7e-JI#u^8&C^:2p@lNo7en?XEh'Vg`$iBR:N!IQAX$ujPBXW28NAn5)VD$E1(7p3tO= %Ae2j*FOtN.bhbqM7DO?nB.=(PY$lLKG@L7]_ArW,(&6l?7,s5M5.U);\\P)-B_@,7^=WGr4;e=FDGuPsYo!:k"8,-7d!(Tla(./+?PKGX?4:OL2Hf]i8QA62!ofF( %^u$PZ;#(J&RZShESQ_3g>6W,g[uT7lZIcnZb$q:IR:2rCG%Hm1,k7umgQbJOJEu=aatSb&:uI6*##(:FBNWif?$YdkiYR;aF')N& %89I\"g7692]K17+=\#/:GCFc4.:kO3/0JLT;P0/dVlf9TI"Td;RirDucQ-)O(!#&ArUTYCW@elM*k:Rjh%:sUrkkhS5pr=?<^BfH %0Tup^PLRD0Kh>=GFJL+iTeM.X+m_.E\s"\A!Z)\8Y[(Ldig#QJVR'_""P2T&U^"J1]%$^q^f.?L8fXl=JZeD?9##YB7qL]%f+W@gbLbBI3jn_;#/ls@J>E]JWp`?Wn+D*CI@pcna1N3TFgO@>M".d&L$r2@Z4IQeomNGq'3+4o:)d8EslR)WSab(Ug[L<,HAsm1VS^ADR&\8H\'H$O. %FZtnVCtmCA!R`Pp(g+.]B$]dIdqmup9=$3V%@XA1]<_L4lIs]Aof7%WqI@K7-gCho,Vb*F1ZfO+jahX"tG %@'_oKG;:M4k'+%^df^MVm(k4i!"[Up(]c;*1a0-4D*,BVh?r!O`S\cZBL&Vqff%C^dVrLm+T9drAMd;/Rb,\cj9[Ni]sGNEnX^Pg,dKVtZUQ"qTa@#`"#Yop-pfkok%$]2f:^EGZSmVps-iO*OG9.H>0) %[)R^K-EFtGf"[S$RW,Z\?`'J._+H;I^gtSq`fnMZ*9Tn&4IN;)3D\fO<-L2`IHaK^ZBN)]s5(SdTpU6pq_rDn34tp:CD3Nl+B,cZ %5j$L;KQ;:kq,6$K*1QBr9Q,:h"!>o0(GgI4X"X"QStFjN1;*qPhV"dXpGrJ(%b4Hg3Yc%Nr$?heWE!U.Zr]?=!$%iUCs!Z[._^"bAr2`Z9hu[C?_ZbL8-q0Mp+., %19;'2C69C36tWam@uti]D$Z.:-F*Oigq`/6emdgQ\+ri?U(NeEn-P:VjX0;E[YK%YHP5O"=jMc7-\5Tk1iX;th4i$gD[i?U4c;5N %41[gD$?2h&loi#/"5%r5k_71#=g1s1]mJQ\7mJ_0bHkT[0R$+Ka7.ULK+B$K;poWJ]?M(Fm?:4"Qkj7W:/Zt=s^^Rh2dLiD!3W1T]KUdpc"XS*i`Bg^k5gQ_h%[%q!.h3cG3C,L).Lu#D %#"d/-PIXf@8RU-g-k:9.]%k+/Q@3.o'#;G\e04FA/[uq#ko3NWGAa^X=/sIbB/(TPC_/i!fS+k$-LSNO8$LR8, %K46q$Jh$@sG"&7n#sGu:Y,KQS/62`gB:ph99]f5pRWqXmEjo2=bNe@i(O/gXWM$/NTZEW.pb">G7k&E4^0L3dZJpE:qkV@Db=I"_T@`a-55s]&6?#W5$ %SYlR.i1Y_:T=:.Ycb1X/;gO>;#f.WDp9'RSk9jLGrJNRN4scaIS5[j9RnlW=a^iq+Rnm4/WQbRJMpC%(8o5pPH-8E#kng^pJ9ppk %o*OUb;9VaRa!1GnhL-\0F/W*1m??,JWkW$PSM8&f7aKZ4QB.,] %>%@Qj`A3e(LQfuhnDEPqWfe[.9\'kU8NQ(\X-G@ah])X;6lNuc+\L7#F+#[LC?o6^9f`U"6`E*.-#[%r1IKe(`%F+4=\;4B_B@4IeG %UNl2AQ#fa+]PlZpnt_'9,4SVlKO8nDi@+-C`RD9ki(f^KVpA=%@A:+`)Hp&,Bre2-YD-(aQ@"5I_C,jF.HK?b1`K&k7c+h'=Z\m8 %XP)V`r2;)SBkiB&@7$HbVp;2l]#dD6rEjR#s&ORJYOXcl@cqp*hr\k%2U=L\U&6N?=939/4K3&`N?'*l,_tS20oDZ+iI#499<+`?Q)/pcMO,!Qcj*^@K:7&sZqHS#eBoQBaV90p %CH`"!^]#Mn7GN$\+gsS_Y-"C#)uG'>>5?\uKimI'aODPbMYpon?`hg?1[_XD6,rSPQQ7jX!IO+pu(#&\d-6+ikj/4rZ %eXn:e"Rucg0-\(gOBlK]]o%mDL1=ink'-Nl.q"Xe5k5["5q9-LZI6iq,`-*+W.FOpN)98^?`2<[MM[3p?`@:VM3WIlh`('$XgDnV1mC.$k\Qo2p_PhJU()85'bs@p#e"pjABnr8 %85MkD)i#4%Z>].[AX26)q5"m4GQDuiTqrPFSmcNE^871PRS+&rPL\U>$]aMZW<$AInF`3N_!s"M5MdU(Z$C>S7s!3,EFrjjW-"gr %V-0G9BT/+79PHu"1[M[i3?cRqPiJeT_\_Hokgo+%MRDC/ldkF(g?K+(U7p99?u`EXgds'P_]JT*MlCIgC-_cRW9!B5dLeETH)u@H %5[m_qZa3oMP`!kr!rA0JR&N:DMLm.skEAp4kQLGYZ=C0<2ZfDVpLo[%H[5j'Yh(0`Ao-7Ei?ZgZfR-u+kp/t&;,_W.2%Rl@IM=h2 %/1RlsI`6Brjq+GKK$/H$/S"gZbK^'4rm6aTZLU&:a]W/7M %m'.@"JoZ%J/1B_VNE.:!!*s=N["Ue3(T+i/qP\t57TOZ=-uVOm8TYoM8!'d-6 %^C%?t>29SgAG)sBb"?p(];ViBS?`d/r`37fFCcb4c&WN`cfs[WS]L\$VtWM%DhCUVences>7AM<3'SCi/26tcqt'?2%PdL+n?KF% %$EOXY5\J]#6-%?E[%nJW2m3:m'3\$P&\W:#;llof%T/urB(6YJZp`b'1^F8rXE,Qj?mX)k77MD3dImAmX+3]CFf9bm=kTjoh4aNu4AQc=kr^addGTM%4kV0eo(..\5.*FF>F;Hl6"Bt=dKIa,.&HR%*Y/@^K)0>eO"MnEhP`Ps?-5D6$d#:=UAF %K+>\'@XFWcBIBumjK@?e/O1rPd1_PZQJ[>_E9T$\hIn_i0e'U1aXW3iOd<.l.A;[XU8GW!=@?iUK2.[>S+\\Gm%NW0C>+=$jloKd %)HuiX3`kkdKs%.B-dR<&92l4t4Jt%'%AGNJd=>9&AIn_bXjeY[u %)OafJ?f,EhHQ$)]d&F[bBhq+>*qK3_VS2\k9m[d^p96aE8kGBTWGejPZmdR#Mt"$-*ih"clnN/m:"#I_`:3pT7/cH %8a:t,0lO4=#e?[7IN6*er&q-E'OpJmmhRGjM#3CFi9[J'!.O+M3l't6@!a*1V+=ir"&l4M+`"&(q`ls?E!:sQ %TDja_KFj4/>6@gXnQ:S-8.>tnNa@G!nn.mrE"apEcubWth+9))LNt/=m2Jhb5uk7M %!)b9Ndl)gs6(7^tQiWoJMTREXPnGni1ZZ'pNQOL)D-JpA[#GRbOAFGo:Se3BFrXiEpf'j.%H5G;q,D(0)LT1W#1<3Kj.&joN[]%N %/h;sYbd#@ogTL&'pZlV(36u&<=40J34r`XqD@1L$W %h!kd"`NPlj(ig/3qOY48@=nh.YVah77DD_tinbl0Zs%:6a>2(5$`IeK!hZXaLZL9'+)smH*K'^'UuS:=$m&G53_"";,icJ%)BPaN %Zd?-F&_c=LjQJ%?q<#.^G!'b_f4%g34)Cd,Z^"\=I]=Kh3aFR^7(h#mp%8Dto'HO,0^+;>K+W9s%u+rl*[<5LP;k^b&U'ZTB!P%B %Qc@:;4G*ZS`f*Jd^#9)`f]N.9DSG"U0W^tJ"!d.l<'\d($R>"_XD[kj>^3eQ%k:6]"F*[1c'(407I'<[Jb>]u<6N.PIFat3mRO]f!/&r$'mMThAY&O??&n+Ac]TmpB3\dt')@BbPIrR&&q79-VD0'^o;[U-8oG;gjn(]!IS %a86etn54'J'\B2[YgIF_.0i1_!C2#;q(0U#,S?irrGlHfYGcP+XOSb+&]LNY0%=$:!eEu-C[tP?o.btP+.LbF#PMCE@f0+L+sW"(o:]uLH[u>);\ln6U>qH2('qKR#H4k%j#Kudj_Ym269,c3(7Q-XC^#M %7j),nRS6qlini8/h.=6jW?W-0pp55!0,SpJKC@@A"]HL6rP4o<\Eb1;irg&A?CdRn\\iRbf64`,n(:U5bCC+j\c01TCf,Y %AB3alT0ROX4r&K.5^X@ZW&2l!9\)!-"M_gRA+V3!k#W^&-/R7Cj/!P$oI5Ks)a/p>aJ+0O?#.7&#?fu'11oa&XP*iC6j)LEPk+`u %%t44AT>LTh1'6"r/1RMml)H_F8tRkA0.'L9Vbb^^k*e53%4N?t:1>e4TWShNVNDZmD[f>3%*@V079Vq>\iEkYMX.>VUaOu]CPM9o %O0[5r4%]6"0M4&.S=hk0#0.DE@;n@U6Sb<#F@P)";>_*L3.`unm"@*%$1PYs=c2;r#T,\$5p%d3-S-9(1Ab-P\fS^A$iPX:Gdf0l- %\TebHnMuD%H.QO=U<4HD=Z$69E\./--r%'-7LGcd[af[JPLA&M:.[&J,+Ugj>@IB"Ma,U5]1G`]j)lTCWY*f[e$X)#?T"Qo1OMBK %YLHN1''.??Ul0Z]O4TAU(?]Y>W#g(+V5b-!BV9.s8?$?Wej\c5d:(QRKs&)6$IrlSlUFKHUYVGahfP>F+8,h2#,)5`#9Dkm(Oh*k8=!r2h&cM0e)<\kl](SUTKCl@H_ee#"43M0^<>(JXaW %;7"keYF*"IM0;/Z!O2:^S;HCdN;@W3QUAiD^NR=uWV08OI_VjqN]: %0AoSsbUJu05GqJK;juRq+&gVL4fuJSSaT@r4DET]JMXg:)M2_#@HTtdD&MV7V.5$eeq`sd,l49o]ei/6/pj1uc$L$3B[Lq,ZCR:A %:7#!No]>QA&#mgSlk> %I*$NXkbX+m-*!H+:7F:9^]GkFS0_U;,%/5Jd$)'$10Xj,(Ii+O8luH^M"Er:`72W$&DDBQ\.e7\'6bKAGgYM!B6&^-V+eQ(Z9])d %8FsHW'][PObZ&a]G>r.t<7W'UYio4d6:\Ki1X0F?d');Wek:T7GM,)rn!DFrUs.Bb=&^%n`?F.T:Z5*"hF5!pVjuQO<2RDSA1hOj %OlKEBNhICP.^aMA1n,)Dd%Wpn!/&tNdL98NXs1D<+c_Rf,?[i(WW1^?1](r %94hhGMV8QM5M=-:\Ct^6(Mc)P:(b]CnPrgmbd2E:o>OLKr`/]m1DeS"m_\>:s*=rlgMB#T[+r!!t67BrX&INpOd&1EQ#_g>l1K]=iE\Z4HHJce4g99kMX\'b-W5S0s0`,d*%KS0s0`"AtdgS0t;#A[35pH'0"?R)`hNk=I.G %R&n;ISto+HA;+[qbroAj#fnl-]#dgk<)V0kU39:>1AZnFtr/OMPj0Lj#BiLeE78!4FnY,JH"1AmNO?@ %o-E8pX:JePk=LOi;$:YOk=H"<@4*#5H'3'eA0C&,17=5(0T,HIAUfE4cPXrkQHI;1S0u;4;;F6.;Ip4MFH,9BS]e3!NUnDMSh="K %3Q??-J/%LkNT*&l74m067WG#qlbU.L`HdVs)t(0lM";l,[=g.6@lR7^;%)AoUGu%I;%'GM)T6oa^m.InmQ-^+,a91:YqeZ*AuCQ4 %0nf-D't$_9m@:*GMd!_Q,KIr1(DjJueG!$Ilf+Y)af;&9V7!6J[@YID(3hPsd+337%EF$a>qFVsDs!@4d[C+1-/1CT1&a %3Y?3La'/Aj[nG*!ENHQLIo/U<`+5*U?ee<\>Z%9k>6hJo%HDC*cG3f&hnh&>0D:U\g=@QXi)hA&7[Z@Jf[ck1U7!bL2gCk^?<'rt %D@?=RdH:]uYT*a,s-IAg2,.9?pTN*:hJe]Ll_>RK)8g#uVBW'oY96tjS/(FUp3l2)dPDU.?W-:[&b^6i0n %?"XcdVJq+J2jD77.9s+RL6B&7m6Q@pn1%p&]h)IrMZqM`J4@1!f3Q,\us %[MfatP.5\5dSLPmVJni_h,"`NW"64)i^u\8\s'WXl9]jA=;'4\7FP'G(BuLbX)J..U7'WPBd><)i<$c4.#A=%[D78HPf+l?04kWL %$fa^D`+g]W$f;bBh&&cD_A"U:>8g/o_S:]q@#ZFOiM[!P8n1FtgH:G",VGU.J0&r&8R*Y->@,l]W%]Yr?P40XFo`Q<:_FSA>QL23 %:_FSY*qYI29&d_8R/dZKm]`%,d+mDM"Dg0m3[6#9&d_P/OamQcD&u(Tqqt %\en'!_A'0O#ucS?\1jXEpr->J(Hsig5E'S-/pr%sP@uA$$WFS)*]&JfoeDY.;7P638.q8fhI&$oCR\*XQGeIh(1aS4-4+U\=8J#g %E-,Xe"Vl/,ET'5#g<%?t\1gB?X)BPGlQTZ`Bn\1T@YU&U+CK'%WAKjXKjU*QP78dWiN7t7^9Jq9M=k[1M$m7lE6Z6j&smEL\NqJn %9]aWB>Z5QEr_A"W<08>Y"E2d?J$YL<5$WFPhkM8ZAQ`/5K0Sp09\A2/a9&d^4BW#i_'T#I@pWXfn(N(`kcZ1Xpb;j)jOLU=`0c`hj %R)4Q(H]04i*R5?WJA`ba%:Eq]Td27L"+ZeK.#A>PRlH!WP/N&Ac+UZ+`fR]jnre(tZfk5YeMif4KsSOWp7O\s0(mACSg5q&#.K^? %/mR)H\o8IJ\Eps*FYHQaT2XfJja95K@_oUSNZmToUt>SCJb9rHC*8>uB@+`T0?6OL?`fFMSXkmA6tccpi.uKAkZ$B(ZqWM]3)`]_pGl %G]A?Zo#QKoZa868ukq`13 %95UlYn<,EA1U'sh@^!^Am&ku?Ili,2.I=3!"J3LGU?MCEs(C/rb3U`_rU]i1dXInC:p33*Gr)YBmb62B2AH!]-fmk%-p_=)k %WjfE+d6AWjC>aL3n'T!E?@q2BpMC,JfbUD\gF7&Hck!\I7Q>d>Z>+\?^;XE@8P!uQ(V@gBF[.j&1?;.>Rn(`fNrVsppH1*VnCN'4[Hk?B!#Y@SR&4e+\dtc5q9*fAOb5K(Y %ZJu_RQ7QbMc8k@mB0Np9-?51"UM$^t_plRolJPT?+[(5IFq5[oK9,#N"o%L$N]fOQU^fT#;ajXr+7DrX>n8$VK+ID2n*b1G4a`2l %/7K,3WIliXr?kJR+/sn]^FgTg^q"M?mML9F=CDqhf/a=A&c?7=J5n!I;`Pg0/G %iTh-722Q=A'NN"HeVqr[)HjpRQ,dS?AKbfeb26oRo^tY,=\u%GF'=Y1AjPB4H*TFS/$NEZ$/`jP0FJ5ca\Wb8-E@uR-L=j^K/+W3 %9t8rDOX(e'1gMJ(l5li04dCS)P8L4>LCq?rZs_`0O$p>\G+*5+@Ho_De#KYd/V9Oj)&@<^U.)<3EV8qp@ej\a'I+8Crf;@>>u$T% %O!5gr,1pTr22i*@7Bk7Zb_M&91stBBnN0J/[kO!KfpsHtG6E1c@\fEopZY8$m*Z<+oE)ZP0i$1sM>MQm@[ndh*Xm(DKK)[1HS>_J %+i7rF.8Hk@$S9`QHXADj!Z.r`pPWBG+MZBYc^6-!TWcgtWf&9]_2hKh^\2s"/c=DDOtKWT&MRm"8cfQV"Mir5da#01KGa=b$lXJ@ %Je3RK@jP'o8dJnQ=-[2dF.g_,]1]tIhe54qm(oHB[bQ2154-3lAD?>2[g!i.j,FfGE]D^h"&e3.92K#u`aQOX?8#rP((?>6>P[(< %2(iYPJF0jQHX$Jjr;!m#]kuAa^CJu*V>IUcp$l*1=4)I4)#HdOk.q\.? %34uPIKNqV>H7t$qPYPrn#1-/-)0=e7ab>JNDnkRCf?H#Ldqu9@*&jKs(RMP!\_[h_oFAkW:d:VN-l\X3K2mZpVtf*04stm$9g)4k %oftG%hcZ]5Gc@1bdi7tp[C`/Z0!+mB!g>n- %fsQS/<7nAHQg'F]V30_-NfH>r_e(l%FDri/\9+;GBf=+-k.?&_Wk%-^ph8C0aQ#t@Wt9!Hotc0:aXgd&ls'#uW>6:7KI4b"IH]]?MMk>j^*dclH&bl%ulAhBfP#0@?cSST@TVB[3mQ7f:p:.i+.sE.9>e %e&cXTTKg5ibqD.E#sNu2cuBkBF.O\Hq5kWq)!CRsF)I:JI" %DJZC[SUFMGrd&W!F5+%=mm0\:j@7mKQ-ZFRD[l?BB2nrMpG.s1IQ./&c,&2n=UH_\j`t?3qdB$8njo9o,4&Toe^s$uQ]"XP"O@kR %AA("4I[u96Y67t%0n7(,kCS^)C["+ljF#9U'F]?,TuGe3q04RIY0khDB:I_sqEaGTWVsK$2h#$C>I^JEB5T2=ll4J*l/O;@KB)4q %QqkA/*eFbEtI\CWY:hX>kO?e;<)@*P3>UFrF)b-+Q$osdsS&+_rk*5ep+.`<@&SC=%0[JF5i'3KW&6$9hk %?&@.O0XKI.]I[@Z[.N%9/=:QUQNNN1:J%#l8bY %TO1doG.BmN;j(J*,PiP0HbdO;lKt58&dCcQWWVl@%2<5)\jameOaJ=)5:1CTM$/]$n!EP;4`4)LQ'3U2']EUkW3M&"62_=&7)7(: %?d=HeNYqbRSsO+MFJeP77?pC-ZPe2TNQaZP.n:$J25el)."0,Mi[^Zh2<\FqiP198&7;inhMRQehru+&[J25DH^j^W>5$`7]g:X. %=$,3mA>8_LdL3X'APr:j(u8HV9C)N4fF%&$&k_DplWZfC8*N[Pk)+1[St=59Tp.aQ)?n)-Mpc7q)jj%P0>7Xh.(ei=6Y&rr.0Ps` %0"OF%X.\KgeplG*^Xn0)Rl/VpWo@`e99V;5NFo8Mh2"jjl0qH-#-F\F.X/YS4l9@.hl;bp6X\'3c0.Ir\o&@DUA]G%;++h+!OXA> %;8gtgWlT`XGTKSHhiBZaFWF\&k2P-78,+t,eX!qaEcM&^#a6^9j>4_UH=;n2DX@@Z$'AZiA@W5Scb3l#g?EY&+d,*3<=%fbD9ohG %KW/WT,g.mNE1=;Z#15"6g$#^/`?g`jlEmW^,3.gjm;FDd5E=4FB!o0Yt6 %m?P_9ghoun=+k?^._!KTKP7/cpPn!_].F6m*>LL@S\(BCB:$h/f4FXGbi$cNRIpajrMK^8g'+r.>AsH8H^L3"[u5M0@&i,+6[jKnIn!^cFd5fKWWqBIMOq^5BlTm_oJ*molk:\Dl:pF %Uj4E!/n3L]Uj4CXopqJu0E8]'WS)YYKF3Yjd_$8jRt;ua`.\0Mq+C+lKSTS2[$,5%YE\N`]K>D;s)j"pDZ%`WL^F(bO3\R@.jb+[ %GGge1Z8QlQ,%LH&B7jSWJ2&OMVuj5O^8"RiPQ8PY^QRdS9qeMa!jR-e6;\?CrtmXD"oPXiYS=hJDV_^10'3Xs`PJ9l\";H.?/6ZL %@),NlEr0>>^qcp\9J(<]g">'+jr<"@Qd?j+QiIoAN0P2f!Re?s7-"`IOtrX-&;5`H'E?+M"f"a_.F_E1h)=)PG5H::o)sq2`>?`a %?+k+kd2gkD:Mu]"He=9U<-T'^2%"-b/)Bp`6)rZglofUL)[hsb?7)`F[]21q!t_Wc*"f]teOPrM,NO1b%:cITE@(>'@W/[(,`I(+ZbX4In#?3ppg$r#Y^5c,:jDDY;tu( %'Y5oMe]i;TM`;,VeRN^Z]njR&FOM5B_beu#FcJg\)2VbhJ*+g/jtH4!(O6_We^ %.to8X6c&1=.g_bp(^doWf/T"R@AoXT:3JOV$Qb%#<6mOgP[Ptk>e#;m.*%jf0b-'&$oN;=o+46DTd2G*/J$j@;fX=b=d0GMqgbUs^Da(9;Mlu=F&_b`PP*l5`jMK^%4atOP%p4Vo_":RZ6>ASJ- %8b=\Njsi@2Tqi)aiH:+9i/22d=WJ)r#$43>9CXgJKFUACHYd;:'0cnZWc:X`X-#`F;R\W8[E3<)J]kr=E)G:mW$(T^>>o*!BlHMJ %\'USf@W4cC\#.qX8qSXg]nN&E=bH%,eVhl8iD8+V"/PsQO^*3[lmoR[F]NN#NJ4C@gjJP\n0`%gj^P+qk"jW]$iCfDr!?SH6.I>V %Ed@En[c!lD@hJJL[broUIQ@<4>B"k7iC*5am%PD#SYkHdF%\.-r_$@g*lU=X!'ATt?f^](lr+D/72CBi(0iY:Y7-T[o,a!%RVT.. %qNdQA##0>Bm9@J7+$^.b4We@:bOlT_i=Xu"a"KqaYM[?sA$brWZYR3<9pGKYAN`^iKPt8B3AFe6>If(/K&m0u.J[9;fC"DK:'&mD %-Zu\bBr6fR(d@QBH>masEkN/Nbeh,>q`,ILc,MEP(t94>VJ$QsEmJoV,` %-n^SS1R$SVSiQT-l$@a5H#",^cCXP9HoF5[rt*g')q]X:<29%M)neph#%$Uk:u&aRKbO@b-Q&/_hr$M+/@KE3ZEgp-YNL*ONjKsR %9rP!k1%\UDGj::@=9f"?FrWgi=NEq=6A %Khe0NhqE7F>6B*I$0K2FqO-0p81hR&_k'<;cG-jVgTN]`r"1C\7YA7a]mXCT5-NeUI76S;@Y3baQ?sFGnY=FVe\poY3jX&D9,H#H %Z'=,$:0(!CQYC/`s+H]0O*MM!Afl6P9n1OAWL4>+[4HVH;_-eX]j&3_`KuBucL=GoXKq#h^_<%l=_1B#U%\rVS.t(Le4M:kr0HqJ %8HEt"DGJ=n/ep3qj6b'#jGgb^7bsKq@+tK,U@O.FqaTen1HH^nHLh2!o61/PJiiQjc^<7P8*nIkc@5S2k"XN*JhcDZ;HfdO]]JA$ %;cG@AdE7?dR!\g/jC$1pSU%G,+ou0pJSWLPQlDW`,f5MHZdOM9bWQMY]K[_aA+"W2S/PNQ`ge@tR>FLTOUPl#9_63#9e*eLMWU(Q %Zqg8*=Wo6<$qq"q(7\8OGaT9>ogADa(TGPLP&hWENl/A_,g"X_Eng0q(X\^)&2kNk:_XD;e+, %V-`P)/m-5_G;@`)ns#)Y?*KW_;)7ul$9/dN=R,/H*6R5=/8&G6T44?_c?LaMV1!?(AcjtEj8Cm"2K-(iPoj@[A#&;:2NQcOc29`[ %W)rnsTlm]4F.#^o'k?jgphrCi-ePhUrVL/R.-&/\)qXaT^U4-fI:Z[;_BuI(m.97T`S5341U!E4>1Sm!A/S"D$cb:_`GR*_2_oA^ %8u/.+QjW%e./?aAGmpPF)\9"O]$j#d'n3@o:S=)i1c%_*$tbdfK2RF'63`)nr`;M_n&:"R,pcF5B4KUk=TQ9kN`j1cX=soZ&N>!7 %M%uB_lXa+=ZGW6jMZWS)9Z!$YQmkJcR@U)&B-b?fpmLQBnc,<=\EeWDrg[H2$RX(uVFTaFigGSMjud'GBL]ZSV2-#pRi^r-edkf$V1i-6!If+7`SB"S"0p\Jm?U=?l*GQNKYE_#Ef %6YeHNgJ;ppT@#Z(K9iaMhL7!KL"oYa?9^3!7WbgU:]fu6q!skAo&G$8h)iAPI!Ya/Y*'a-nMqG-=bE]T(kk=hVdhg#rTJV,@\[;o %;)moRLF9Q6O0HGG5Wtg\^df_nqiMmS\g*@X13d,;])=8Slf6@u*HnP@X5l=RRE=i)/JgWtX3`nBSR#Q0=0J`"G\O\QE$9GoZ)$0]u(BCpSD&&B()[/9+2bK\:PH)M0ZXF89aF>:<1l0aG0LHbCtA:8N$Cs,B;f[ZfnBX %me,NdYjqQRL['uebNW6B\:g1)8Hk]t72%S#Hu\S'ptX(1rMT>\1H;f`/+olJE!8SqHb9g24O]7Z=CIBg^od@6lRR-mi^,<=*>1pq5 %A3NHc'jLT#M@i..QK+VZ;GR]uH5:$R^3ocgQI9)]V/ElCj:U!VsgN,XHU6+Sm]'N3GJ?\s;X"95E5G*0sucH#,/ja%E]NL9I4mHas4u_/WcNb%E(n0JW=(GP#lT %^\FD$fH`b+NZ`WtWC_^9$QFEO4P_j)&\D3aUrtBTCdh;Z[&R;%43>]Ud>sX`c4tmU)"i\QNaNp7#HNjNYh)JL.&32uCn)WMeuu7A %f=?MWUa>Bc?_sS/cT=[ZmHq-!"Q?qrOp'GuJlY*#"%eTF,7#8%7L*n"Os:X;qqsn+sRI?IVKaEN+(8gc_fQ^+7OQ %Q*p#J@-9&mpVPGa^[hWJEWBI`n<*hZ'Ab1-#QT#2K8iWn#]'`^fZej*SZCu!I31!9g$\QP:NN/&"p+Q+c$eZohiQ>:QklK9jGTHf %Ab.L%'TnL,.3MI3k"[Y-:?dV-qc7\$<7i'%P<+C3TAUbS14`&>%j.KtDkO&>g;3M:acX?HB-B)%([4OuQoN'$$$sAU_CR,%Xmh/j %&ZJ^[ZljeXDhQUhm(MtCZ;@Am.3[$$R+*Qp[H&J$;5I#^ai:t]^+#+]AR4cCRTnLjgb<0o;Wpjk6KAO:nGuWW"Hh#QrI3iaPLOmd %k!Ra?rJ0eqZPCqTjD.'LD\XkiWuH;rChod6^TP%%\lX^UEkTi(7qOrhAio9nDCEm?8H*mP"Bp"Y6gFgjmc,?U^6X^mp>hBaP7R"HBW&5\mY^"d\f(ZB:CK %Mq9[T$Ht-EmG8oS$I&Jl-A+jH!jhQdHbrNYmOu(gZ4pEn9VUb+?^hT>Ko&Pt6q;#J^B2$7>Kr28b;st%1NASVT-`cY;dd'5ib$p! %f5GFNoCPPRBW:?FehmeI-;59aCk,H#EUGJnMuj.rSX,(l1\ %PnfEF_]kb("G3*cHO"A5^YXTpX&p62PV_ %32W5Ba1u^pI3OHH4HC$FoL]t# %nr-PAWulVclGnCQMY<#!%97[CWaJPe0N?#]r=itEarIB1-\&u]!B`_L*iX\@0c<>YSncbSi\JRdPZ'I[6WK_?.dm*K)SN`_*(AST %WnqLqY$0AQ$Vm%/#K>[S1WaiF;!qq3R>!_Xm9+?hq=SotaK\hc+1Ci1m46@J6,;"SJRbt7X_YW$8]SI]XJF-Tp5dbS.4hf_7'T!- %%!Q;`YLS?sU\gYO"2IA/V3reY;(QrP,kgmm]i^^m+)St9$cmf@PMSBh8STqE:W,jHIG4:mSiH2S %<8i2G]qq"CDDr*XN`r`DN3MP/WHAo6JOBq52N]T]DCAN[\OtKkH %^`-FVFMYg_;8(D3-!uuSNG%U<7a9P]V>7sgA+Y.Sg2u.ba'FdFe3q@Vma:l#,hGRaH1H)ldrh>t14$YeD'=dc$V.r!1gTkI.%]SG?Qo^-uU"]Un=*d@mf-m!p'[%NNS]tbA;mKu^mhofbHEr*GNh5.0QRAW:B %2QGitUkGqD6I=7XQHbRaO %MCPiYcaS01>TR>@HbRaOMTGKShr[(cE@7W3cW<,0P:=@(IS%e2Qk(FAIF#BJ&(IYap-%% %o(N5s=A-F(/e*):R$fQSY^Oj,H1.Bd_JtQ5KdO'bY9;(X=Sn\nR:4P,UnmIjW#F[LpO%+YR?f.rIF#B=p/\D&mM9e\:5$ %]]Z33,.6n82XeHl]Wh+CLg#bBIF#BJ%k:[imrU*?;_Z8K*S[RY]pA:$`KH]"edPf0-@9*;Ge7?Qd8K"&lBIthElEACH(-ed2ABJj\9/qbGV(/ %Vh.(.kkS2bku7l95&*7rD*!s(]3rs_o&qR\Q9I>ZTI2!GRTG73Z1.Rks$PX3r,]D!PBSbQ9lZ0kG:uTAD>+\,^#.V*%o6W%hTBNs132u3e]KWdRi*_8KNFc3;[Ds %9>7LZoYc3Tn3<*7"L.AV_!'K!h_]a&k01X661pg(YC: %l\XF$N@Z5tf/'Y,W'2G!?OsE^n`(`49.W#>@Yr4M=%%P[g.ulP9VQ55G'COH@1qr\)7?`tr3TTD*L,(/6_8Rq>L2nWH %c)<%!rfYN)MQFEb)8(1`_^"kX$\LSkPDTgknGqG#HmeNNZh`=rDIXTl[db=W]r@)P`[*`ZiFICCI-Nl9U!&$/$o!#S,Ib#$) %N.sabe:-"XZ9a+2j5A8[)=A0WMSLt72#-q=fY--p#0Yk08hqX.Eu)ZJYAiYYH2L:mnL$kX2-2HminG8LVD8YT`hc.,iR/3!qf3p_rk%=3-j208pSC>]@BTs-0t@ls;nXhC_MY]2_ZoLTV="+XeDS&*L9A8n4YsW3Bu-07 %ddn12r"gg%:V4;>1MDV,.O6rJhg^0hSkj7Z^45I*IQ*=*f^j#9]Y<42TXcV%%6Y+I*PFU, %kM_%'dFW'>[Jnll+kPr=C>.M>=r2Us,<\,'h/$VWhrA-!Y:n$1"*f7)q!qTe:Y^/Ki3_Ten]k;KrSY^%rModA:;'F6ZQj=g,J=r[ %UDrD9/cS=Z\$QTos.d6@?_3Rus!_8]U9aFsAD$jq]Y=D_?D$:4/)Vk1%UsF=@6p_(3f(`qAju)hEJ7P@\iM-k=[<314\cj^QO60& %?bdNm(hSKD/Mc@>B8?dJ!:!iHsMEj/s>Kdh9Nu^"2OW5>+>MG<=`TL6""dlL3NBhG0[jD9E=b(CdoV@fh0cZaW!K#n,&'I;>m/JPOYif,d]5dIGq.6!PsV"=_H5VH\TZ39gsLIn %Yc-B[Vf=ilOPG+@V-Y,6(od9!e3_>1F*Fbf\OAR_5es46oH%2+@NHN!Vt1H:h*J`0TLt]\UK"suLR8W>hg:0nDR-@?[/1il"+[S5 %W)5#F]qb;oF+W:TY^8n'+Wco[HJL,]`W^aVdr`q,jK9DT[Iof&qt)#]m1f784JP,aUBPt;]\_S5K@0_.=N_2OXJVb2oO]V4XL$P\ %@!(_8WqFu5Rq=^b$h*7F\E8)i\=`^`9D.WrP)]c',;_ol/G7Nggd5Ma\GlficG))'FqstoH6_&*FOk*hLn,SJ^#oL!hB5nLbt!.@ %37qu,;e`X(^CkbWi49oFd`>bQm$SGArT7(O1Nq7+%lh7pk]s^%=H7T0c/S;9pX$)>=o? %6>O]lab&2eL">/ODm[a\5G67Uh>9rP::g+oDNG2]knMV[k9MG9.97>CbZh;OdF0hJ6\@tVQ6j6ae%MqAV %rHUJ5+QSqT#X:uf3@cfb8'thTZ8`n>)AE#&N*Ob\@<*),=o;>dIV-?&#[AM&_]%=)ak2P(R719q5l-W7XWVue93YM]JrV(g$Q %/%?`%7@<0,"^""o6mREh;u[;=6Ua:C0EE_`3Um@\$RUB-HLFWA(8nM[L[=to0U#&o33:(T:QMPV@.Y_S]j?oT-BL#S\pijg$+b_] %S!Q`NWjJDhk6t\QFn8-hBH%e"5oT8[B?Y;8bAY>"(HCDsQ$mm+7<$?upTr>f'$GnZ]cs);hM^UPNVVXZ3Y)J)K9NJO?,aLPsWl.e*Q^qZ` %e:$kHW1o\Q$43]+Lo<("7p'A)3'-uMU]O>I+7ALT$`Tlan2!&;7+AdbCc_"8;cItUhF]?ur0HB^VXJeH,*Qd0`d_s,(AFL2c%6fF %goA=dDt)IKkku]"[FgoO'VCtS8Pq&tkejY9,@%W1dsr[B(AkGT%LIi(d1&;H8mUU%3KkW"gZ>-X%Mn*aT7CCbO %-?'Z1W>8^ETQNqsC9]W(;G#;9Mlg,Q]q_<$MksPrrF=heMlg+reYQH1:utV-DA)`g(!K$odg/t;Y8(EpP'u+h %/f9Cd<0FGYpP8SSs14LpIg3K^;%IE/#d&Dk_n\aTMUp7fe#8&"ChR&Glt[XX>if\L6b5$VWub37*d[9r"BWu/l9WrJ,,m'%;/aUak=qr` %DU_&>R#n,Di'olQZX@Y#@qsN2?#!5?op?Zj,Z+S*NI#\G5XMLm;koqZT3m[u6un8`FWoBr,.U0.U6)4eP-m\iIX3A7;.+:naC)!h %;.*k>CVq+aXQ6Qf"br^h4:9<`?Z>[L.54tU)-:1*!Ya%\7,Os+:R`.Yc@toB2"+G#!qU9YK6o.IWub37?F8BE=/-R#UE0LNOp)K^ %C"+r&-.uMqQl>X:LME&S4f/J"6_:)leRQ1>n6I6Gl7k0]=d(;9Xa3[#HCc*_qGobV7Qj^T7VgOaC=I=/U"EQAQl>W_,t2S!@qsN2 %DF0Rg4f5UrpA,u@l7k0])19WCoBJ=O3ji7lRR/X(ZpmX%<(`bOXaY@E%r\;fq\unXQM'l4X!N6 %:1=3=JMp)dS7E'#FoVdCOd2Ge,f?,fUd9^m)[*[f!gU/,FVGJ0YV=8$fW*ub!# %2k=3ddP&g466+j#BQrXaJTeB(f_>$Gg".PH&UjN0HI1a*eD!4N-0U%uSQGL&Gm=BUhFgBJ`TlZoMIWY2C4$tNQFV518a3E&ouOT6@8[o59qBgDMJ2^K\U'@I\'iG641%MI\,A"#Le:1pj%$I %*kj7Cr4Fe359?cT./Z4%`?FjEm/,S^j7^T$!NQfVmlQ%UCBZ"i3B.TFBQ`D-EDUS+ICjI.K.])\, %S0U68r4F'bkF6X'A1;L)r&hU*78Ka:I\&.)'NH2=c`TC4Uc\t]]YHN8@Ji5lHGLJ_`Qtk0="oCt&jO]kRU?q,(-g-ZfHuH,JY0E$ %:Wq(jl$9Kl*hAqtcZZ7AR7$b.7F.(,N\*.47Uan56)qBcNN-u34ta]S;8EfNl%MDe\ZpMS=,78(3Vnqr13=k,qDhhW?C@'!i]L^.h5"(jiS+Wg"(1Ac$3[H?2q7utu&luX6&ZiqtpQ.BICb]7.LVr85Yn(V[4 %#T'$lWE,H,rhmd%q]*0Kf9b_#*&R2S>[0V!N(F3Ndm_a64h`n"LUt$e=oG8koJ8IE9r]-Y_Md=ss1Q&6d(;9LI;Zb7jpTO'K#CeH %s82/jh>9Bq\";0XUp10/pi..3V4O7h5lQ8QimjUmfOA="%CpD,/3E7?$AmM(YK=b%j5gbc&bMEI.1b#/fX)lAejT/+(5;!*P3PqE %^Pjjd7#1SR(I^-Kks]$+R;#eiVUsn#2FttL7LCIbKEXsC`^g+D;HT"pKmqteP!UNRYc@rZ_F4L@nf1F7+Rb]`,F`O.Ng\'jGfB!QcX\X]kg)d^CT!8G!fD%h7Q2g.5)e<0W1F^2PIfDl1t0E9%%hf<1n@EDS_Z5Jn`>m>OHIZg0CPI`F,`qsO1nF;:AY_R,2qXtGOc^a8-2:S;Asr=')f!\^S2.\fR)9LJsXB:4HC1?="oNSE[Yrc7h'-f^GLqE-2V]7s2&RXSOVDBe'9!tePr2'>a9+.(CN*ppb,gsiM@-Ui.D_ch69 %X1.ca=`HtOlK]DR$_Fl4:g`*N?Z]SlL&0(aL]("`Z1cMgqe;h?p:;m\BPr"L8-YOC.4K5nU]Se\gRte^,I)5"rrbG;;M!tT9$/90 %8-GAk)2YMS>bJVbaX%[8*l:bg8_9H/a\)`)j!cFp9aD+!75%VX:'ILPaon//Bj,P.k-u`n.5X-rLt^\<\NeGgb3>0!1rh'H<_KDW %F3@.>$8ff#*P0;P!mN<&.2?NVVkhNW7Di^V4TXf-d7NTnr:J"9)HDLYenLpG6(DK.+LL%$=!S>9p78"&bPt>^U/bQ.g&\0eVQ^Jp\NM'HbTt>> %RG.gAG_M9u1:NT-f^4g?1:R:=76KL;R=CH_bkaHk*KW&A0f^e+gZZL3Ih\rAaln>jEEOi6])mb#?P^i?-CHqrIQEd?mk+cnGlt1` %HdIXp[bQ2154-2s8D=t%+DbVV<'^*P44nU2"M.riTWD=ihV[Y\m*UD.^32$!)nj7&D#nr1YLhWsru?N;DH(Q/[H+NDG&?LC/:2gC %Q-!%5T*O_s/^N00RSB-JgcRba(nQ\[#Ed$K9NHWriXT`sjUU5_*jirIYF*]O9^o_$WD#S;m(FBf6rZR76Y4$dT-2q'^jiop3e`pE %LChtS0tK78Y3T\eLFLOBlG@Q4q/pZpM9k$RGA/bFJ-lq//D50:uTS=_XD'(PUs^&OJmmn+i9<$GYgo %@clH&bl%ulAhJ`/?*o>;c]>%Aq%AsR$A?Mk4]2jE3c^J3!LFj9[3qfZ^ %j@QeZVC5%F*n"Os:'Vi&eZh:hm8(I3*4]a_8>7p9!qW0'.Wi[t1f<)J-0]![,V>QaT %+TQDM^3of=>I=8]HtWs*eQa"rA!X,<"0H"/Q:$<)MAQC;8IR#a$%O:6$QNKP%@pVUiqL/`![(!Z.Arn?<7(h6P-\`lp4ssoP+4,U %>`oX"+N`A,c5dNPhB[sX#JG(c$%O;%_k`b/,QO"o/Q>p]-305(IrNEG&cbMsQC5l@O8qhW %[hRd(5a&flo_+(d!0Z\#lm;ua!0Z\#r2uhS\Gi&[@\)S;BQ&GX_I.=O['t"_+MGT+dG@c#-A*hC]k'U&7!m*^a!_D"Wl;SXZaZJ%0GF^m7!f;$M@9\j6jZ-$jl)Wl\pGW<5._JL64GQ-`(pSi/#'^'2IF\ShJt,d=Yj?HR._SJbF(+Q %@;nZB[t$c_?uSQA7ngTlCN)_L[g[!b[D^CeA+M!Fj@9$NL5'MDYQe?4+7WQo$=Rf!9?blp%K>Jn#YMc]J;ojEb5!-o<9]"A(4Ls$]$]cs8)W`FsK!QU/q5NmXN^>Dhbq6oBo3N.qS3JQ@4;(_%!D6]m#Kn3AfMm(k,? %j/)6R(B1_"hp[qP_]O-2S2RYl_`)@P\nTY8p$C5[e17Sl_]=6^mX6J/b[67`KKodA#0>_FrT\j*_:,7gPnLuBS%7`9cFo]*0CO:b %lO)M*-'/s'W<7,njTJFiZ1hKUTZ@'-%':@b@fn=WmO3MgNp:AG(K%;!&r\eEVRdgk*TC>_u9Yn=D@)d3rMkYN@[%sj6 %6MjO*63HBC7/F3W*M1htR*_uhNScVpJ$J-objZU7F?J2U+na[_6,#80s6Y9-p1Q7_6/n>.i %0Z3*P@mFX.f3E+J5'>E#ohr>G\>2H`cH(3H"8+^e]$7Eg[l88biod_] %[u\hQ"OiX&HP`UMUX)a7],42tXW5:-%=N"qcJLj["m9Be.ESNqn+]1UG@j;ee?\9]9W`hk<> %=&^M_4>Sh.Jt__]cVK7S:KUZL&Ml9CQ\Pnb"^gJg(S&is1G+MnE%`=>bSM0.2*V1$4p!S?Y.moEH`a9OnP%;S>?i'\)JX)96tgu# %S2d@+&H[q^.ngL4^9:mkhjg<%ttH3+46BA8mEuD`N3L8Yji;=]?K[Qhom]-M-[&X&s;r'P1X=Z6"q6. %UF(.%9RHf`Y,%/t/m)QERu9"MW%*Jn(4G[b;+h>=s-9Sm%e2cP$N'03=5\>p?cn^!,ai-[-'@R6Df %lpi1V:RNG%"qoOP(p,Z"lC3j-SFF-F!r*iW5HQ@M6<>ra^%](Ud##'s03I--ql,Z#j$- %Z\N\>rg6Jd=7i^LW!Zde#N#>/R]!UD8c;-mg)52%oX+;A_.kNmRWMrCSs?c+8mBU`GoS%#(5qMk\IKD=&;B99HHQ#@n'[<2.1b]S %U""q!@h6V#Ltp;a+*HSif-)n0n,fR&Ucn+$2*YSL*n$<+O6DJC,GK=:"OcH7Wde!a$DpR[Wdd,[/)Q/YYHRaX_tCcg;JW?Wna-eN.Nj\jbA# %R7Y+l151]8M(?XtEj.X8gnJ2[aM3@`bq0:rM@=-NI*GgLU>T#]?%!l6;6X,4mYqI_7HIW4Za_#Ks4Z,qFc.Y';?aR!_-W875K<(+ %"a`[:NZtZ2'WdhOSLh]2$Xk.+g&Ukm`#X;6X+)S1@pTW1WM/K"[n_1Ig[G"a`[M %Fi!G\#tcu4MASf5^C[k&=?#4[&cllIYZCu)@j9^&i2q%,>07lF_B2?H`OJ@Q?4j45Kt'Rf?BKl2cK,g]UmNmH7DW;m_,]E;Mh8Vd %F%;AI/HW+haeY%,RBVUrRE*X/R<-[GT3`nN&)W-[O%j/.7$pG@q7HiO6MY.dD_)4:'^gZd$>5.-A19TD]'QZS3rYPa;3+8n'X"f! %PDs=*RONVj74UU+;++h+9bVS-N$8Uu#^8T+)+>5t&QBR:7M1>KA7_Q+2i9#","4@PU.0$ah'8Y:LsU?So8)lYkYblAY&s!^2>D9J %P^'chi?h9`gOm-'&a[=ps!Ae7.PuUN?5BUYR)u.k4'gZoiNk7f"kQD@''V$I1^3E=DK?835"mKD3(c[2#dNd%)^UD,JV+n>NHQGa$muoEG>2.p-Qj:NH!qoB_O6#Z=mC>0H-tO>FX_ %bD04IA2L\/XL3!Vj&K:c!o@Ba+V^%oKsr\s %1eQ)Q/=)$r$kHTbuN&Wrgj;OY; %4+RqMn+!&@Om\$9#fZbZ#*N-RV?rsKe]QfZmD?%VU6WEtXei09np'R[LG[iSa&[B5>/*T8L/?g_&DkK++VYbZ!RjhB+V]0K?/.dbgIYeUCN1_jc\g9ZkE"AGC%jMZQiDm(%+;FUu_c&HK+VYbZ!@/#O&./[&:*PA.PqFEn6@g'a'id#B %!e2htJoq3#jVCIjOm#mt7?n:T^m1"d_FT>V@,YR,fe>Z>*f8[ei!)Pnmn8@2G]FI.MATBkIC'3rBr8*k#R/f?AhTZ:#R,*"`02W* %+V_HZ`_81N#GJq5O.o7$:uM!H#eEnW'Hmsi+:*ZG.nq4@_Ogo`&jh0($IK`T$_b@1J4RGrKi$^f_0]N=KEAUtU8LmAKEAUt_ISO' %#R+7SMCKK1J_)fM`@2HeJ_LN_$l0^IObtIZk,L+9Et0P8Be6*)[q!OP@boLEB_5NWVVt#31;ltbZd01@%Q?d3.Ae+RiI-GC?&!%# %1tolo^YYg.0[m4i/AprZLMM@,1(9'pFC!tM0Tnns^C^^JfJ1gDm#D@?`%*m*kP:KXL%aP88juaPD2;f=L>U6qIrDZ"amDEMd<2_! %F*TJqeu-?W[Y%q:`\mm%gF@I6a?!gDc'Rul2f\d=&1l-6p;cS>nb2!56A)hEYoQMH]s]g>D6]eX__s(7Rq>CEMoG3F`Dn#U]Dd;Q %`U:bGC9`8rfY:VVT@795[ES#hOW6&GQLsjcrXlgfH--aL.$gj*#aV"aJu&P8cme$;$>m7hhG)VX$#H.aFBEq/7F(/d_Z9mVra3o19l0^slDO`h$qJQAk+kJ=5j4#fXC %lDBJg9<+iNR&7XN7@NJS1/38'M_r'Ob;fGX,LXrV*.cHhg`2MGBQ*q+]Uq+YCTmX8.>7EJ#i^=?m/dR\1]bP!f>eFg*&2s\]u=(t %La**8.k4I#EC9n%Z-,(GJnuca)"/p$7hA0!+J/-V*"g-$=+>WCLa**8.r(4nJiI3>Ysgd:5_HBFLk/"1&4(+8&>Q^MOstnueM&Nd %`"D$ui%;q[5od.1pSRlra^:TQTZ"GL1?!u:hO_f5'D_]-aj36@:GN35?UqCk_=Y[d)Y,^l%-HPkrUFQp]Gm,:7Arcf9\U?_LO]Nn1eSi3d]kI6q;8Rmo/6kS1< %!6-^%VC5n9/SKeL6ZG@57a)Q8$o>PY_MFVSLs]u5nGKLC):OVH^*q>po[Cc*oGC=Qn5q61:[7Jh\U35OGi5Z/CO);blHZu8`YK6* %D(a&+q$HeVd0oe+iH0Ocr(=-;7$!Ths+U2T"\aR]CfT]<'?1Y"J/hQkJXa>-FG4OPq0='o9 %PO7PYid5rY[LkCRqkUM0#ZROl&Fbhhk9h4TG/'n$c1,.gWprXieh8i>hOAFX/Zi(IU$q"#X!\Dg0dZ*UbP7&^4/&[tr?NW3no0IU %$H\+TA6-^l!a]ZEHfN@SIhUr[@dL0;berqU#TA/H(jY`?Q2K3l_o;VDfS\O#[#;L@EZH$5R5a4@];n.0B1NhlBe,`)cl1c9(1hE&6]RXLu.*jRus %M;rC9(?N0D>'JHU7pF(@T5EUQAa;1"*l#R.d_rW%h>!G=(48QiIaNtkD,ai1/B(>_n$F1O$-:O"FWYcO*=HL@6)$N(C-HKSD+%\60 %K$<`'c6NcQoNe-Xq&f@Mp>?=R$N6g/bhWsB?-kFZnDr?V$+(UXRB@Vk]KoUq]=luKBt#2E\gLRpBoZ=5qMXgQ$HX9?.3$i=`%Z7K %Q@\!k8O^ug<@t&jWP+B?T178dFtjF`ZId,=/,Ire2RI7@ %9NsMeZj\YhX/.b_M/0E^csn;/'+&8>H#4gFIbH>R&?6+5YTO*M&GjC*kDBlsIj$>dd0V6VnlJ[;N"'Z\]<`=!(ZQPDaUZ2q&uX-2 %8,atf2cu/.*\.(q_.<Bmu9'NdYKO7CnV'NdZb]&=]>_V1ML\oHrL8nGRol7'fQ?BToh',\LX#]icTT]A.Gisqj1&*m#71A1q\X\!?d6LTY;7Eq6j@_0]qpA=Q(ffS?c*0C@Dqm/OVEA3PUEPfO(9*DRS:)Ip6NQf,DHV:b^gRa[IBG;5WTP$8LIN0e$LYL=:8Js$[32= %a8UE4eZbAc#&Ebl$$MZp:;a#SQ\$_a;H-kJTf],Ndh?Yb]O+fNa'*3B6LL'DKMI&!"=oE:[jZJ.%e%8OQ66nhk6aOskUu'U4'b@>9DuuO5F9R[3-X/Y5S%rI*E."(U"X!K-G@5sD6Y1F %UpZ.6JrmMo,jaA+k[2Z9ZZBGP3-X"T&>?Oa[2+)W$W1-E=pt&D)1_,eQSi#P$;asC=psb/&S`guCJ?hY]P8s!CI*0U#dkDK[Eq&` %6u<*C/QXe^fVc$_QD076>JXJN4YK.O]U;uJ4T %43n\K+p,%/DQT01@6o7.'g0DA7:jNoYnJYKd2JRPVD#&K<9TY[,u-t3^iSL7bR,D#"]DOgbR,D#"hCst`2ql?hPh@'/3==l7p^`R?Naf?h&e7gWpo> %Vt.aemZXu"ITC5m8q6oL's+g%8M6akb166PQDjV0GRb(L#t\;.m1gTM_:3O=)A+V/NijmVm]pg^VnJJVK:b0C+ED% %iU7tsF_o4ei_Wj*@]bllhuc;1N!Qg+XL5.c*_s*X+dY\Y+7MLk'2erT&BMji[00QQ6=eV8@Wh]h)6ONo;6Bg%amboIg[Q5]>*]Wj6R;pmrgV54T&.YGA3D/aDFm2Lab[?gsP^q"u!k2`Zc8b%RsaQTM[;\Ce(o %ru9Ep7lNdm^:fa80-]i:Q_)bL'AFZdmeG8Lr=8h'`k9qiQnpn_?d;>_`riGf\WUQs^5U]_Bme%;QFXUII/TRZEpsfsl^'t=qZ%YI %^7a5Er,sh2?ASYl?IYGl:PIlLh>A7agpF[SUI$ATetRB>I!t30\*g`c=4=K8^=9?I7jB-R`7?uUe8m`P\mNe&-OUkLb]Bgd551U0 %p)K3:4SULZ8(>QK"P3,98o7Qc-X1)U?g&jIOgmH_c$Bri>/.d2bRSi@\i/Og$=_?H2LmWU %dg]O`)]S%j_C7ZSA7PQ^$R-iF2HCotLC%TB60QHZaVtPkT3%]a=?gMDE^KtEB %:qRT`;/3j8_QWb8Y02+&]3anBBfq'V%G/]XX./##"pkViUO"qI3,$$t"0E_.EsB"k\TdYQKg'07NGbqJ %U[YH4&'LTt/P0!M`\Tk.g9G`E[i%hOolt;UeX/.X7D8>9pr#!]O+2-FA(bW^M^E@8"`q(&I&-BfFB'-LVDeUERZTA+baFjHhMQ`I %VL>\#!IZ"#"Orae.#>rH#BV>Ki:^1VX0Hnadc&#'Qo4oFJQG#I#1b;s3125t,CadB_p(n[q1;iLWcoaZr]4:*47]jiI2"u0^F&Ed %)Cdh7&i0\i"(JfTUmNU0/cmB"rF2Y,fj^iJNab7DSeqh;H?pG5N$@uUTfSTO(50+smIZ%h'.;GL_Y+^Gj^TP'7.jLW4:EWLgYUq%Sob=tfplds3pYf1,[no]ZI$f4-BBY&S>/Rnce(L\1 %9!Y>W(P'h]pm`(Ndi8*4);LiH^0ZFiKM1\QJ-[0)5KCs'-u$/[4)I.NF'kUS0f''@%TV)C0ARtdC!o&6 %L]YVUEd9mcLr7^P=)OCTUe=3X#O8l(r=bM\UDYcI"fKq5Jl"5j\+DqW$uP`)e:o\?rI@3`gOp/on5IU9R.Ldl5%R=/hsX %\XHcS_-o)J%W%,U5N2IdlXgZu0fP312mHG7QfJ2%MZ`;49N.?q7oGd*K>#!u/gI=#RNmNI6^=@FcdHBUQ\:8q+^hUI_NQ]&2#a;. %E)+@p<7?f0N7e>`;FP\!l/YhAGP&c"E@OYFSs6nIfre(VSpW5i_XK)S8JP\o'u:R=(VAHu'39[g"!9q2&AtJt4:D0tWR@7Q6O>5E %e&MeSPWDu[E]WUgBeD%a`D!A,jIWQN16gA;,.'6`g=Q62-2>%dFO9RcdUK0mdP(.464L'f4d_tl(NT&ac8p8]m=3eR\2MsPg?U@= %$S0i/5prJ4;(>q8AkkOI)5WdZ[$(TQ %dfdUt+Kn@qdq%!=@Iu]8Vb'`qM9=DA=CSg\D`^Xer?_)A#S*&Z^BFO"Sf_619\P-Nf!.l!SJBMJlX.06rlXWE?1eK*QEIuZ'j.1" %/+p2Ud?r.\^U_hD/J,m2r0FLP3go%%A+R-@=Wr4cA+fTIA9*'%5M.XIg@7GCl@3O15/0H#bng:b<&M9;_ms]_/sE3UE.>0mbN,WX %fR][[13ol.dnWSB(9#C2(P`SBk]M1+#;abYgu(G"a#ncgZfjYlE$2/g_pO&!rN]Vh!=-IO8K^(@gC,#mOJ+`r*$**Pa;hhCI"Em\ %*,+^2L7eXZ"^/(M-VBIL,09>KKda+E,WU3Kk$N?9)>E"hR_9T36'JgMN`V04U!EJ13gZBUW#)'4'fKZ#&e%W\r3Aq@./\?G>SAl@!=F/(7!8e,Ks80RUb_g1-b-mQ,e*W(H*R:aDf%5JRD/77mL01!A'0< %#WZdim=cGM\HiHK-@ge;]s8e4QiInZS=qFY8/:tRd1@'e!"3Qp8aK7gOZb+?W6-no"m_P/TdnAZQ(gJ-FMh;%OL:PMU7a+sAM)!#GTJ %g98/..D3l,SLSN1`A!o8CFSX7-\gShq-pYHV==/1pV+rg7(5l,_PQ[I^)RNNm&OL,DAE])bE$*5Ha!RhV9ZfT>(=5rBgtB_R1i\\ %7H@R4O%;;QBX)N:`P_+i,M2.$en5#:<"o^/G.cG4ZQ6f$,RYT:ZbF%aKm[k#AF!Yt>Wd(?R[m#$%;" %YqY(/0VC?1)[l6X$H(=4U;k&tLVaa*i)lAMYV@!N_G\=#bWjDf-R6Z`NC/kar2,do*:"F=gCCF4l>$A0/7JdKMdLlId+Y(]LOR-G %YiQ&="c_bX:BqK2mHu:LBmJh"Z!7s*^NMPO\C$?m,:hi2UuRm/(t&!HCo99f07=;#j).f10&N".QlE4jDiMWife]c;]C>nU+UMK6 %L1=hod)\c/hg.X&"12ErdH@GShe*,8s+FAN'7Hs-Ci'YMN=h-$mbU,g',+WD/GCblj%%Jjoc@=DS9olh6Zq[jgcqJ;pL?Bh.UXjj&.AAq+7rPA1[[pG4[Y(U$>@M)CZ2DT]dIl5 %`1sT[O0?7%TponO$a.[sho![Ri`?T&BA5G5&b]?^k4al8p/?GBhSng<0B5D;=.4c<0scpZOu0-/Os7+eCb^iJ;D:b=\:i_2P6sEr %Mrs0Cn\r'9iH+I-bg8:&+bY`f&OtZVm]=GE'>nZ"I04m69)cj&1[Z?[]&kc!rFe]#Z/2#$^hPb!otTZmkjaKcJb %$r:,'7M`1VU!(N_'=)TWR$EfAqt(nF),5*Nct`>Q6EfLq\#,Hl/,OR]r?%D"$;rYC]>stWn?E6C\oc4s=^et/R1O%qg>qtl(@X(p %jeodp95h[p0r=m+i>MpV06^!DHI\Q(=nY&5eG$gBfSa>>\oP$O2c!1maLf?u(a;%KB=Ndl99#tidaJ=:FpuZ_A)[PO?`qi5htIK$ %(DDF=a7CqcS1fK_F^S_R']J9[,i8un>JpbXg"0"qUbCK<\9fb"4W<&5Hu7Xb(A,PurgJ<+osYd#hi;JF#3RM@OUpMO,fdlFSo/fQ5b %"M2SJX3HG+NbO*=TTin^g'$FB;`(JTVsM=GeJ_!\d=2rR#t+e-"BRDm:65c/kf=HM_[61T"Qus[;c5YEX$1Z-\/$50C'C8N-@AiI@QUGE'fM1VW)@PJ%i`L'.:l(uHUO$(u*9VfhRpuQH.(c$R-;m*(i14I,SoA&Jja#_("-1U+0 %Qf=buO$"3t=%^?RUQ+-u)ei8D;.Tt1r`Li6R`5)N7EmCuhp_M*_LYL6U,!0N72hFP>rNUE,<^$j;Y1ooJcR'tC8UrINIb1dpC0NK %W^.F0f/2Xe-+KETMPS/Sh!`-Qp[TN5kJ@4:"+GX(WMMd^"V6&e^Ks[1hkHtH(.Sd@_6>/INb(-M;qO=T.GRH(d'unjsACb:j!:`K<%Ikmp,7u2Q^Pe]gBb6/:nK:kAn`RA$0+VNQg^E;mMqF;Om)bnJN'p6-cTX!0I7Df5iZGs_jTIhFi#eJ% %9M.Yl5.i[161cuH1P%%(1m7f?U$<#V7Y5Qla?GSocQX7_K6!iOCmP7tP[mK5g#>kk3/qIp,/K^!CDt=GNKB2P@2d6$n:YP*E=l!\ %!DeS&0]L25i!K96U*?3,!hKm]^@A59OX/B9j5r!Hq6E4M!jPc;BZu.*1C,aJXOYa1c/dm=(&4\Z?%6@]VJe$Ji^[o%k`8pM&JKf6 %Igu@;EZES'_>Xc);2bj933gLZM6TjbBRlQ/.i\2*?rN_^CU?kE['WfLNKAD&pP"LlTqh.2-,!5K)LH\#K %cPZQ/ZI^!uZNg4&%!G?5Zc8GZkD@rqI?]hjq)mjVIVrX@-"D%s#`@C0qkY9-lJ8;p %05n3>&,+r/4Bl\d/ %BA)V2Y=u*nrB-I(#.A#Q1L?`,r4t'PN%L1An3&R1rOo/c/1gKH*BSpMGgI@i^LD'n\3oAPQ/C>[`KaTf3g#u&X?KfdKYRYX9U5j?\5GMONa__95]4cqI%9S:m(-?2$0T-WTXbcF,id[qo>B8YIBEOZh1 %=NjDr-j&3ZV4+!#X5s5f>*h".h>J6'dPN_Yb*r+gTB+.2*N1[eT'd^ipAggC^RT_b=rq5C(N2A.XU066h_E&LG+n'@.%Vm4]Zu7o5YXp7ZqGF %83.f`k*R/\$H,X!e@W0oqU`(=/@L.(iA:3'\O*;E."$op*E&.2Vsl-?*'W)ac-!;3XDU@A,a/j+CEp5>#-[F>k@Nn@]ck\SgEW^A %%b=mofR[R)#.YCElp.,cb$n`o3u,E[-W@V7qcluC9,D5.>R3&HC+gPG0c[kWUQ#O6&]Dk"_UGae:U5WOgEb %3)CFHU+-G<(f*[9qCY8#dn=Zld-\8H)+&W&0R]D@Gu[Y1G@6Hu^#[IDaD&,QLL':j4O2ZoDV3ijGIp:-,,s2].Q^hfBgNluiE$iM %9^!A+l/^ihIK*i.`1-t&nZ#=tQ_l^`VJ%VL`c*mW%@LX%N9*ra@* %ph2B"72.YBU@P984[,aIM=Bp]#bE,C/mJBr@*[=X6sP#ae)mGU-!.fa>nF;=I7( %H+tfM/$f*i8MZ6qCE5iui=h3]$L"k>Qq"C]:aAd\fj584%a1;1ZAWdVW?PsnaZefm&qqOR/0OkUlMHVf %4[0niN[/JYPLInHcHaThX`;MlXmEsK@FOH+UE)q#3?mF,Y>C:B7Zs&Rd#,7#4JQ"D:u8-K\kP%8Ul,`a3ZO_.Jl %IIiZ58!;Y6P,sck7PCa4q7862*tLGcmQmsseh&MuTo(j5VI;&)WkaE:] %Y(m/*2bN0NX?6)^R%ndQK67W/jl!pqTuQ%#Z0mO__s^4oGj7Np88RP.%=O*`\#$9[Nr7_&Y*K](qAeDbs!-BF(G=?`OMmhbf8[k` %+IbC*ZV!JCMk7+F40''o.qop8rhFQ]:VJGu\h7#TOn3^0dri4uqP_hb-27(thQS2S`16eoN@E]1rEG8"0;Y?G/++gZVW.dmq`%'A %H]"+>CSpF5GHJ-UCZdc_Ao]s#^dM%+1jRmGpB`3:.!](f%*1^Km+TP53q=SXUT[lfLFo\PBpOX-&QCQlT5"[\!PI31[/B<@fft4k %$YD&/[U:I?r2%Q7\7n62ebpuCY'&de[^XXe8rl'$Ce#AUlSp*QGj)X3*K_>SS*RHSlWg]M\`I_??3SXJQBj"kXH7[Tie)G<%=dM. %Wp&AH:W"9#p)/L,:CaH0B)iIjH+U[pmMH\!hb:#D;GNLoY0+qd?HsT%R]iX>/UDi"reJ#p;qfgV',Y355c8I3cIbm4%WHl6Tb#jQ %,:0[7\7)mt2DAmfZ_^8Fh8jHQk$!a)gs&kQI2tN)oqXlh%%V-Wr*]6Pch,>+qVqo).K-=CdU%=gR;\^o[+3#hcl;dnSS54^OWB*"9#8"Ab7uBA.bM" %cBXGA9pK/@Hl0#<>Ep(D_LcI:Kh%CW.PK_37[:epP#(tL^ue(5-^3:$"ZA%5A%[`?c./gVh?A(th-"Ht"IVen`*\TdSIn(Ped2Kd %KF'EH-4B4D,7-+oou0E,'P%PT.2l'F)-o06Z%H/?)4eZe/Y^Vr)0C$F8L@T%$0Y3^&7gIT@L7Zfi$JU&An#"$-fHbcFYU@o*GLj_ %Udd+ZJV."m>Cq5Y0s6r/MRotKek5)hO&jY+g%VS?CGtZn>OZ/fKa_/H_/=!uLV6`77O@.G9rQ(X@h!K5MCSKPjG9Vl"_Bo(h(NU. %M=Yi<*40bOXs.'(/)+7mC*>f724m`Op7-i\6)uFD=RMiIZ[5NiT[eN&YHM5)k(gX`o(\5Zd)tQNP2M)2os;:boNe9'@C?u,mP1DQ %QoEC3BN_.'9B'Yg`:$<2e"YBu\?EBjk=PBk>uK[b-hWNVF8,7O9:V6VMndGOk3gK!4,p/VfJ@a-6[4=p#&]"mre*gc](ZCQB'tfp %G>5ZJTZl5OhX-Y`qlrICoWhsR0mj3,Zdc@1UXm8Y=$THJ'/4+raC5^5^-snQE=,&Aq>pk\Vp[sA5.4M?4GZ:1[A\%eda:ft.B5YO %TW^gQpR!qYTW^gq8MZ0`%O%[9d3AkceTZ@J46BF)NI=,hlG4ZTUopW)TKFR`ue7'1Eo;9Z:IB$IH3s<=V;E&'WXJ$)\ %fdNe-UrGT,j;[qJ&n7L,dFV*Y[?Pj,1S7:]Ytp`=BQg9]N.&"8+1c0t-11Ed*]bM#Z[XU=+=`SX?8mdsknPfD$$RVg8r5J".?GM- %lM(!k,EA+L]VLtJVoVAuM1*7.%,gdSK/,JNFFqgDd,/!uJi>)fT:?(^46^c]Ek)<,Lo#uSLee>%"-e7cfXgU.8S`8(cQB'WeZX7FJ>%-E"=%)-AJ233G66#48qJN %OTj"=-c=.B1FA8-4%IZ]+(HN%ZJ-U98gY3COPScFH]448aDPq4Sl3M3YfGg.p>Pm&o8b19KTY'[o>7302E+:U*g?1a#b!bSAj4c. %EgZtQ(t%$Bp;[1/2pAIko_*P_c\25f7gN;=1O9b7O6D3-r2Ah9Ko_8!B1>,l6@('_6nk@A2=9V)KEt%h[a7sp!YLCTCdAR<(Ef!c %feU,DW<^1OSZVSOr7b@'rjI$B/EW9q4]^d5c^r9Dp[oac\r3Aq'NMO.,,m2bP:0CSO]3-mB#r-i[1e#:4XMW<\%%)t'9`di5+jdd %g_)W]3-PmArcSHKlT[M2^sGI.RgWKW=cY-]L>+[(QmWX$G[>'(JU(.E*PHFA,S'NI@&Wp(8K@(:%\%G$a9@"u-?6823/gE]RTs5A %C--On82+:2=t:lA`_UGWHe$]Kf#k1kO/Y"C,OG^/qQB6rNQ`ZEeb-l,rN0c!L#c9)JXK9&Yuje[2,cNQq8:a %*"LWcAL2?#F#]Bi,S"u-LHu->aT^hk."q>DT]FhpSKg/BWV(Nt$piI@-QD,,qs,K9l9ioKh@Q!6"pW.CkRh\6U]J)O4P4ai!pJY-Au$ckC>m;?2tr): %1cLW+V4TX4G4Q]Q\)ZL(3npDMG`JI2niCbg7)qKmAV[sF>Ap)JL[:hT?j)8<$->n6$q>1aWW5q+BIY]5Mc'1Edru[%dUJeI@.`ea %joYQ->&97ti=G)t;<7lN$sG)0D([M<.PUiRCh$BU;M!e48XBh/P7!8\DQ%T,H'5,QeYgUpk*_B!CGP"A<;*T([X.& %?rW3W2XOA+(hg>m$3l7+oPnJS+\6=%bhe`KM<8Rr"ZGkmN>:pD;&LA8/7Qe2:Ji9*ZnZ?0Ma/Po`Y"!:F`U!gCp"`b``BM %oT7G\!qW2h.r)H:4gn>Js'.464V_'rBleiN;Loil/0l%!-P[Kmol2$-4;A\mn8u4V4K6+c#8'Z_0Ma/P3b+Db^c\U3MFudN(HiMc %]#Q(8oiH/1Rq>5F.Q1d7mI]@K)9>dh-FodVJKbML\P=&`35 %QT])9;u^B#9'90BPU%l.h8EV49+okE>uJGg06LoshsU$/hVM&3\gFI1QM'Rd!JCZJm_E(*oQir!NN3qSVb*Sbmu>F=(Qj_=F\5MV %-EH(4]G)@+KhEhX$mmB_lg?ksbf+(->Cq/kWT1L-(mdYo'k\QEWI9;L_>3]?X4GD<5)oj@lofkHb3Z^YgCcVH%DTjuT%j=68H#7@M`^>H8O#ng'?3#E;%qp%'>`H"Aun][+GoMdl,Y(BN)O'Ch/ %4_UNO>4j(!!_9C5jN3Ot5p^j<$63A]bp[\p$n[uq7 %7CEX]9Uk2I$YCIsrt^4rZ`l5T!>_KH$C^='DUNm95Z%6lJeV7)F(,tJ@ik-*Qkrm[I!gcC[krfk637X9LVSm(@8rhcaoPF9:s4cXR299]TgQb@_Xfp)KSIq\'../+F@\UGB5;bSf1INAP1=kEm@#8n7e4p,g#tC%9b']WtJ:j"(?' %Y,FouaSQ\AhHWD)1g(9W8s:I:nD+eegV]D9I!V@!1LtAqag4Rh^g@AE5tbVQkE5OS/2=+U5HWIW,_1t-Z)d5qQRl]<9:$Yciim2W %bEFpPZG^QT4SfYHQIp5SNPni)DZ3&i]F#X'.q6'(*ij(#ouc--`,]B]bbSlE[`#BnAgC$,[`!J5Lc\QPTbr!>AZ\[Y\5W96>S)*J %V80SG2^)$`gsLAXOZXl+IZ;8%F0c:F`n+^\;MdZg+\@n;:,$J&CjL7uc?idnTA %H]Tj]Mf8'92HPeAiXTl]=d0;@j9iJ9Qm`c5+RTSdpbBb/Q'M9dL>ccu\-'E1:b,uT`*H4b6J%VJmbj#N*K^TdNiAoda\%9S8l[oeE#SE:FA$i`Y>EmPP+74S(ER#?1b %lQ1Do&cR-**383;8m2sF'p:Rfk.S(T6iQ5pBPFBDoa\aJ[ZprY>`n@rh]n;E#Bqqg4Z%hufJ$s>>3Am4EsTJRUY/".jq,2E,2#=W %k)c<,["k$m+l(Nc`?&JDLCEo/9#`NaHqn1n]9RdOEsOfMAS(d7Dh6@^gcm,7j4?2Ed$cL;j4ED_8^$n:borT,)eKUl+'U+X,fa_c %U..Q?L!3$*?T0n1fdNWX%moboAHdW`&S@f88nRAZYg=nPA^T4Zl/Yq//lbJ%G/elqq!k'((CPC&K6_k>*YUg"S)s0':1q=\J$Kn8 %?XTm7*r#8i#G[IA`hKPPgPC"Vh,kBT(Xc^@mDE:^@o9S("i#%33u3PW%V3!E?+n&a"Z#t"k$NK"j!,^jD'IlH!?3/c#p5`]$#q^L+84uc.Tb*nW(/(0uI@F.1Snm4d1sdgZ[cr19UR*LQXA? %RQes/84Op;pLsF"FtujSa]^;\=kK+(JonpoP7g-sguBRG!Mu3E\]7(mK@Fr925d'lU0lJ:MohE5Z6u4XeSjS!K3"t<:%ZJI.H8R8 %4n/[(kaXG)n5e3bbrjYm:QR=VCZ`a1GQRgfCZakg'#jkkM8FCTI'o8MMN^\M"`#\t%Z=.f_-5#aa!.OcCKkWZCG"F"`i-=t[2(#( %98-3P8JG&F'XtOn\<[<@R8aFqR;aPm66Y)TUs+0#!hg0h`(Dge[K,,[;BZb'6oMReMSQn5@1Wce+%Al8Y6P[Gf0qs;miHl49(q5? %[7o#EhL&ioO?c7rNq]rbT6>Rl"7a+c\d&kHW(p#o@dY0Rn>c?(pKU,qko9rAR_,?UGi,/`2kW94[?PitR;I#7+\`g*L#\!-Gi+Us %^4RRc^@'od`Pe2N-;@TF2Ib]p4erBQ:;!bXg_Y(/<$7hk@4)cqLiIs&.N&N5TCtn["T/d+qdfg1Ou$!)b:kKai7XGH_lsE!\!U,4 %L..IR)[PZ2O[T\dVJeqL9n10Qq.@T$Wg %WK@5`&gIi1<(@9$aCPg>&.jqB/;oRK%M4^=BeX%l"U$*0$0t`Q'G/X6ZfhJsW+8Yeg%E6t1:r%MS'4pBf94h1f>$8V/,4JjfRa`5 %ZFQ(m/B$f2IO]Q4,N)mL?m%;[@D7H0dlcpg)2kR;ep$:!9,Y[?<]cAco;D-h8MGnLT:Fdi%?j'-07E+;0-+tKS.\"$1kCNn5Cg^O %I].TC;>Jb]FbC0t!Uj'MDo*l`dDo]H^W\T$"IX%FBEchp6OR$1(r`V08um-0$R[;)MWP"!o.gSUoD_e2j>c_2Q5Z+X:>NIf^2 %+n6TdWL,P]h]+-(0X5.coabfS=L^>rW;>[R3OR;p-s"pJGU+0+_e2gU^jAVJ_BV6ta*WVO]nXRS#b!Kd,u-_F!9_e/&7FLhB_))_jqpHh[E'7NRoQ$08H^#[3$bl*o2 %&lu4(6rrc5`/^-_l#J7T'UN]UQbHOKl4s!DUIDrk5Z;^2kZ;Km>b:`C>o#^>X*u^@[C_!4e`W`3iHbE,aXfO=ccW=2]$bKrW'>%3 %$t!_XJ(,Rsou0dB[m/>/mosU)&3YRe#aSWs.#>K/pTq/'b(;NO4)U<1(`n>P)T3bWmdPH4IV9;6/TJ=V_1O`ERU,%*]^KMF+=gsA %KCD6\Yk%Q?4:$*p\9@LD\N._P3$&jE\,lJOMV6.lH8`)rMB=>DJGr\Ng;4D'm6D-HjVsBfYfZD2,UYTW_RJmaM&#"W@e*/M% %@,BRgD>CZhQ2AlfdE-SPUV7[(D!918Ph>);i>0nMCrH1]?AFEM.;$kU"rf72Y*V/T(Ed<"3)%,d\`bbhY>5XKbJ:'e8252N5*$3f %^f*%JT>jmGEb$%[/8Lo6Ve.Y^QlJ.SaX;^f";sf[.t`+^L@N_R[_eeIu4>FS[CZch25(Y<>\K-f=\ZK[sh\@J80o2oj.tmYZ7;HSXJCH7fdQIP/9C-4qDM0"b]6c@>(# %5Nf+n`,`Foh1WT6F5`nWd'e]^G9X'>kmMCEc2gNIP-$?S^3:X4hPbN(&Dg5;/R7"IL[__U/crUT>JUo %Kt#4OIL-rX2o9<46Wn!'h!1#)AU$ET2L[9kPXCNsX0'gCOdd==^oRncW\=I7FPVRpWqNX@\8fOr"q7gkeM7(udUEk7Vo %1/cbH!\=bnN#"=BJ>W(Boc+ca3WVsQ=jJ=G:%&f'frq&d`$?[g\JhFbk/Fq<;G];]3F/reE?M.Q/Ug?1'uD/lLG#J4<`5<:\e3-M %U5_8b`,pa#NnK#Z6;2$:l&!pR&CWeMT14L$cLB8a.KI9sdk>T>PI^Bj.o^O%\K)\&@QMD"-XP14+f7'.FFk)Z,/j+f#;;W00RGZ36QP:6F3n+(j_i+pWSb]r) %MPfG0.TFkO,,VteEK1G^Sb]tW>=O@7mT[4]G/SJ\jlE:_7#:*O?Ed:?7Y-rPnBsl\c\N.]g&A?fiC8EdcLB9ZAu,rnR*JrCYfB4c %QsQa:g>1!d=!9LLk`hYD^dc`kf%TCtCRq<@Cu_O_8BHd:U>-,7r<1?!<#9=)RBX_j4X9PX3e&TaIXtm=Tn;4%HH,.SNiK[Mt:ar>)/qNSh6R]Ql`uD@6@b-Qs\8%HH,NpL@&_;*d?LaHONK(sTC@#U.$3>Jk]o&uhPJk]oXE=j-gD\)6S(ci-8u;@oVVV %\(8p6JAL4am+*)d(,57=_/?BKCB=H"L^H,;;[`ER5e#=k:+`^F+sh&:PLE`ck>D+>6&3?T1+Um6P1*^Cki_!clLMlb^VtS*Gh3b+ %3,lga^kiZcDb]sr#m^UD*XZp.Xe\L\l\P+9JN;CMX6b)2d[@l)`04B$f;:_0aE+,.C&\=J;P'(!DPr8ABd`[TWSQCQmHnQ7NDNCL %\nT27I"T9Q.Z(2t0d:E;ZNd>ur^!"SlfXp67D9^P1HJtM+'WD_8Y`N*R/M^ST+tXV2`e$-3;Yns8lTI6jhmq(i^KDW7[\(4YBXEh %1saI;J0O$G`K/t@iP>5nqbL[A1&hWPC,2ajm$I.!%U)YJ&_'noWL$1bDX! %.>b1ePCa$S?(RE%Y6aO9]lFtRG&M`S9<]1Y5dsOK"32=0=Rgr[hh/)7l=.2b6Ar#`G^GB=)U3Sg)LE=N80\^jO^epD@1E:n:,9As %=0)Z6hZbbCk6+8M"MQEs5D&$qm%(.*shS8*Za,SeJIH"SgG+sfA];\]2E`:[3Dln'r(^RP>>3kJ<_<(ZJF]$GF)m8@[rRIG@ %D&a7EEH_bW?@%%WbLj2.M;iEee?7nr\LZG%OaVoi]^=9Ch314+eLp;_?jt7d)`ZrkbU=Z-mXTZ`R&i&FrTL)^[R&319FKkU=K;;S %4>Z8f;YQ&0Wp-L)iJtK3c7oFG':=(?('L'B-U-^8l2:3o+u%A+nV1HP+p4:C7eiZ8b.0iIQ9k@-W94*,DTuU)BsFQ!lITK$aLp8_ %_Ao:U)6$;K.%%n?MCT@QR/-V:&su#kH.!Y/MsBR(QJes#D.SmG>ZQoIiGR4M>)!PH3kcK\4U(uE_i16f&db^KM@lnMlrK*:Yi4/A %a&\1ULMX#LYfupWkp";aJJG$Ha^gZ'*d>mO8r0?%e(km"EFaU!J5HI>f%_:WnlLp/[,4mZCS8X^+,d1(H[;5ZT83.Z\KNpWpE/:ubjjE&4qaCuR[c)k:$Y!/LOlO9K7n\6F %&VpI3hOXE+>!Y?%c'>WUiQ`[:+hGTcfRZ\AChWF(Mo&(.[/&b.H#Zt?2[Eg'Ykkc5.+RCd%>m(4^=8=4B("4:]$M&h*_lA31@3Pc %?[F'5P-sM72@o9?-+R!Ul0,XVceL01Qc8(V,5Q:o9/+%,.qleg@^`PN.$lQQ=8ng^Rs3FG382$'\+ucC+#2V1C:*dqG1p?ASfZBb %A(iomKU_/YJrd(KkL%i!ksp.75h.0T$OEAkGgCkF5n^"tWESGUWhZD,'D8?A[/m[F*UVbOC0M,HL'4(ss&)\4#9 %cO2^k/Nd'AVa"F;8NjN_bIug2h@>m=[)8>?%Ett^D(Up/'h0G5I"M&$)LQjoY!,CF,g?2G4&:2u:Y+!sdlbsH1VL3_(pFN %M]_\q$s&^i_^g.7=6dhUm9f&I.#^7c#IWDe?n.`1XMOeS8<[MT7fD?4P[+dCiRp_*]0;A1ZGU %hWsEk_ej%+eh&;=>]GJQ.MQO]WN5i:/pdm3hHjsD&/XcqfLZYtq:2I1g"?`oCOmLDMBfU4/F*cLE^3o*N[ldf+;1P]2G %mC_l&IbB2,WLq;?-[J^PkDs"=lrsB)V[:"r\6PJL94*,9FR$+hI=M0kNE)D`p4qC>T5$;lUpPeR=9AMKHBq+HT<6XU0N%>.],7A' %G@-%:W1pbVL"150TYC33[#+N7,tAb$QZdE0l]q/=QO9!7;QK=jhV)`4Q!5otF.2LkEdK:rXnC6gL1[XN[70J%WD_JO^2/h\s*iod %=.QmjRp`1c4nBBH]Ps9rhc4j?,Dg\`"TstJ2T'_GqH34Ya?H0G5qK/6C:0('qiX'nnXTpWll/psC\ia)W?Kn8g0CM+@5F.n5WiMQZ/ZZrOr`'lKG_=O=[OcuFZdgqWqt1oQ9b"j;l/Xom8@q(:I@2#lE`!3_F[ %h!@.*`ZE>ZR6-o2A1"C-iU) %CLsM%k&n*1YkeW@EL!h)V*gdeeEaM2CfZ3f>PJ9]]U:UKlE/N%HS9GIDS?)KY`=cFqHL\gfP-W>=4c&$7kIeDk?\rm>WP[f?6*qV(3u[pQlKbl4"Zm8R+e$t.hlf:2K+/@cG:N>Ff8LO[-\BQ`U./ZD]s0;#.F %rRaG`2YFrPf8scR:JDeoWn0`h*Ga!ATM=J3>,J,spd>iN%3+Q_MaBoXY%e4'p3(HBR].ii01t %qkMrK9s6JcLf_FFmT.mF(IP@2kOpM[S!U`[o2bUX[rX@KV;nuKEIEZt0@;q8j$Ygb9a %U`Flc\<->*>bgiI<=nMR]n^Z596>mp9?_:E]n>L&ZCn$D>o6-0YW?sVX]IW,_K"UI %@HhM+n?fR(-*N07%eX)!>V!_tiGu'S?UYZ4dW>@:V`n/LVN8da_anHVIu/d'),+r!:MQC4\]4lIg^ZTlOJS]\"^Q+<(?3fKa'[CQ31>%2qgA"Ogiepe8O&+?-&"UmICFZl)gZI3"neB,DQabY=X\Cn6`n28t3GLW5p;YKiTpF:`pMYC\Uk]cZo]r>e %Z^=Ah;e3Y)IiOb\QD`T1TpIKoeM/;NX-&%do$biX#5HPR#.0M0$'_sTWcd"QkTrX^uUeC#8]VbDn5=\>9bFZ^eIoju]'at4PSC8Q8iB:_?On)K=:>jK=uKKZbdU4!`".Vme8 %VC49X\Okk:D%c:Plf[[*,BRM`PG@A%aA6W1[/>GO,DW_8bBH"Z;5n_8DP*4qXhZC\FJj!3X0O:RWulDHTC(B:qX=E#[@ZZb\rG*; %mGL"r>'bUD]>hLW/_@*\[:ci7G@8C]mUM'm(r!=Mr$U3c-lgI4ml\`@g-JZnSiS$Y3\+L=/:^8rr,fC0Hd;\'gO%L8cZEP4`9uep_P=4]AsmDQQ(A_fjD5:Gl;C:0]*k\5VcGcWVo]'ffu/o5Ca*Rf--d&Qj0tM %2c!IMCDUnJ%pU<1m:3M'X`B#.]48U:^RX3R,gLnl.6bFm54g+-R*]H2#?g7Lbm/"):JcRE#>OuD*J<@[O)^O*h0'@8P_0U^*hn]2u!dTDn5T) %:3;U#P]W)Z"&H4qiGo'sQSF,$_GR`o-nBi"FF6B`Ks %@Ne\-pTaF2$.dO7VYiP>EC?:">C8e$l?*lmV.JZ"7LnH\c'=dQe_9Y.D5)&p$DLO&kis3.*sHbeG!0pHMGY0qH8E.*F`b"e43Us$ %\Ng#7;aC0Um-HS%2SYQ$&&tM^QeGZEptiQ0naXG545S,(hF_tn(7hBmi3_0YPd<ifqnLs %:8Na`*h?Ksr9>')[GB0_EVjOg^?Y.%7T(>r;1>)sCK1FRQkU45b/Qa7"gu3(UK0;HY-t9K/<)<67J`UfXf"8#H*r(R]e46"hPN8L %#*!Iu>KX<,i]?M_9c?la+NR'_kmB-8=03dAJIT#2;mp0jFmR/I==e&GUb)Z_UPA-!4I:].,)X#?:61tbZ;g-OGQ2p)V>[npVQs8JU %U7rf1^!^1?fuWd4%k;r6dsC@gVC94PeF,9fKV2\XM0])bsa"uOms\p'4X@2X%q2:h"U@h0UK3r/r@P9H/`4kL5o>RVpA]8 %[;&1?Ka4KaII8T]kKN6R/*h%`HojOCVO1S2>\'2>]E\q!f?=Ap#D;`lM_Yt(:+^UlOO`J8L\-W1_m_s*3< %'4n?Xid&;jlsQ=L,A+r"@>apl,:1'^_s^G6'YXVWT>bDgC%kk5^"P4?$3sJ0b,(*.]"GP>/r7u;9oR7G<=dE24q[b>"0"XFgkc

Q@84Ng!;FAZ.=":c)r22,L5*Xt$K6;.`W]sj_\IJ_S\FDj`C %hepcW!SNq/ad=c#2%j[3`L'K6Lr>`K0db,-M8YiL0daOV)9A8":?/2UKA%q%aFYk-/f.SS@-m;`3A':C%JS^f.HR&j8 %`^-u[d4PrGm()A'Q;g3L$H2Cl[om*.YBJ!&*;YnP$fIp8Tq2Z"dtlO#OHocON(%#E=Se.M?!:@A2_]UeHX<9YZPPV1&3MW"^kW`_ %]oQ%5QdqMsLE"iBThq,#*(nm6G=cJA9OH\AF2huoOL2ZcaN7!ZZ5Oe5qCqMp0n7Nm$b6ei`j4>:\'RbDj5,gU]Jome/GmBnXh`+_ %Eg:^O5TgoTlq3fq2K(5:m_X7[/p[RPLo_kncl!J+3cDuU*aR'!n7A#@(PZ9&cSF-1[:3GJcS?%gXSR%BVV+\&<&SUnu:p=i!4O %FklP.4;I9MS[_B0hb.HJLAO6:>;&dun'l6"*(8@[l(s&(qce?Vd@%=9;rMU6hVKCLHCXGdhFj"uHi0g\[g;P^eKanI&m!7e)lc4i(H<7f'?R0CSJZA %I&m*IGP&e%?Rg3=n<-j\5/hFr4+ElGjksT-,8]3RQ]"sUJ+-$g`P3I`[HZhL<;^FS:>#4_FtZ[#(CR^oe-"RC+'hM#Vq%1?(B07o %RLA3Dik\[\0E1X4pu"HDmFC!An9[k\(=oWhMM9[[0ucf$l6DD?G!3NR[dd\8?,)UrWfo-HI0j1]ebNDi/UV\M8IO]-P %K6KsT/2t2kHE#W8=LBa/$CUhV3=0mbE:hE,H@"])f'oI(*DSZhm(F`j_Wl2#0:6R=Knpm0H74SsV$S'O1* %oh'#3!a@I%`:b3`qf.6L>OOAHlK:pW+Vj+16V=04mp\KETNjjqgupaDTjH<=Ce.sI\d&C#rDqi1[lFEW;>+RE6[62h]%cdAj\B"\ %L)$IbE8;.s]`$$F)r/"P0J*kRD,-iG6p4G.H2`nSZ](ZLXMXQ[3^]W9T %dA_72D=81R&=N1MaV-atj>_`;%L7$Zml1tu3I[-bQo`l*;pI#*eBl,WGYd6\uHW=c^5HH2Q7d`B(rGg?_j/CDQ^IA<,bcG'&0]`LIm2'_CInGP45qH6DsJ/]fAbHm(uC9l`06]WcUuiWm.oal=q$J3$A[_VSPf %"&]mg+OUY"h8DDJ7Y11uOGRJGP2.5E"nf,k5Sp,U?L57?!=RpVg`)*DYYD"t,/"Picbb!r*Z#.IXi_jV?7I%Gc$>CW@#m_Yf,TJ9EfqptkXkph %4XK`$pHrO!K_48=dB>^s`P4ikU_c"iD`'89RZp/_]o]lP$gVAG82!BoB,0MtK_.V/a;3@Mk`B,t/(tNS.NYB%@ddN'0>3HRaPB:k %g7G=X>O8&qScdR8=8M\oHn^F6?]/]BUO/Q-)Z&"GhKZ+SM8"p68\*.2=D(XQpMbADhoq5mO/0/=J'`qJS0&D\KW^6]d%flp4]S"[T0I^#2F%ZIa!I+_8;kj8hD6ZW#h@ctHDuR24B<,?DahHB1a.u\$R(]&_);;J$48E>3 %\L*Xq2lMMN.Md4PCGEDd&65Jq)$*pM"ShWMcrM#TA=q#u4fpIn4_kM#,G#T:=_5KNO6`g"$)o_Y)(g(-L&;FmGML,lf3GH!o=GB@;XJg?RU>mLaMg(f5F7W5@h?8]H'02cf)tbg36;h4>$9#' %e5iEPYEUM4e?gN1Xn&p?-1@oVe[(XUZOC4;22d4MF\d2pAj8_$dEgVoBjf.*ethS':;uf)?0KU)e2E*"nG)3\;e#JnbU%uI0skU#bp6'[i#Z&5+Gt@4&+%%g,kdN%c!gn5o[G_ %g&7"9UXXd'e_fHI<]]WIrg$+JY5^C[Otssj@pjGLc.76D^;p7^"coT^Z@fd7k`#1USpf?m[,>/eEc2)e.n[W:/kt6^=dZ.X7$st: %Os3#ig5bA>*a[&)DH=nM[&SsEee.5Gl2f&@JOGN!n82,>U"on06BumBQ?`GXe[JUfT..*eBs*D+=iY-ml,OtRs,FA\TOt(_9o*CR %pf:2^Ml?LXnWrk9;h0,9(oi9;;Z1f06jI;,SW(TuC[1PS:,"23@UD!Y*PB*$d-JtmmNB;>_VgQi0=&AYI',)-4I[7GlEoj'7]Je% %[Mck#:Sdh++tcThKE-/71p?!7=DlGoqoP2bN*QZm"_RKUrl'.,\k.nCqDo,`B."P`b.9B\rB!6KOj8OIX%bQ5]bjs]UH@8;G,W*( %Pdpes=FGG$`GOMc)4L_43d4d1^"_U_^6)>3\a!DG83g(d-Z[`rO29)/g[22^"gM'47.c)]*4]#=2;!qd(QMh5;J*JB^r!:&8=?T7 %JiI?#VNCJCqes#;nFqf\_3@[YeT,i!_o\XQkfA\du3HC)Fu5`7NWTa %4P+"\?J="XMo+aWYpu$"buINqa^=U)p_LR1M74-$[qG*tf()ee3/QJ9RCc5:&6i@c#R0a'_K+HL'f`lLFS9UfS1@>e',_pZVNM4) %[>%LMm3M&EqYejZrS@sM4i]/;b.3Q.02?=0RYhRWS>03Rkf9@*p9k;c@IH;5)]fh&s%5pgT'/JlANs%nQI@Ks1fQjo?aNJ\YOem] %C?BJJ.CHO_=BakJZ;B8#8q(/Z&VHI8lu((VP5HkRo\>00&p3O]I.!pe7a\rH_Lh@SGfmjJ63In`.R9*R_FhjN0!)J1Vou?8=jmna %$HHr6T<&fPs%;(4?Ynq0h#/aCA&_=b[CH*8i_IEkMn?`NJ5fH@h$E,B%-AC@WkPkoe(4! %cJmE>Z!Vg*br7cL>0(,]9A&NtY*DP''=K5DWuJkg[f10AW6Iem:QKTLP%3TVXXLH7]j,]e3]C*M*54W2[nTlilt'+3K-[\ViTaM? %G'U,cSCPiD`T`@BHK!p*2)kW.nNd4^5g/J%3`jJs\ahkX;=ZZ-i.aA\"]ZbA#"Epdh!&'CK'GdOg %\T.d8,<[S.0j@5k!A-137DJP0V/H;Kd8p-VWQDQuRJV^*,qpVZ/Z>L8I'7s7[ZS'FGSEK;n+p2hpoP(`f(O@-4RnQ2F+KpA$!l#T:$8hP`Wl_Y,)?NKielM" %T?[Vt1>9N0Mo13?a*-(EiWl@RM4N+p# %/O!MHO"DNQJ.&M3lS&WTGum.@$Xap@rlM;nprsgZ7$.$hHK+>8j;s%@Ut)[2H+SBl97N)!Bf);,%?1>"8nK_oG2Zf1j5bm!16\5% %O3\F-7a=W3ME6:`02%;.qF,RWQBZ7%>I]T/`dt#>s&Qq0#Ad\E4=Ih96,1ES%":@6T8&k.?P>@b?sV*_3as<=%'83RSEq>"f@0)- %Wr;W!XE.1q!S-KqQ]Xp?_a[fn[eSLAE`VS?r<<(P"3h>YPqZ1/GVb.b6*(hSFGe#i2=KfnLP`LkA=rs\@R]oBJSb1T'rBJg[<84n %ie>eLm#?[B@gq`1,F1K^?D9(1%6Q$IG*G;[DfPJ)I?2?mmRSL+4p>]#PpM\f=\Kk&Qe=eVo/rrEMPs0X[QW4'Be;84s-PjfckuI! %H1Jo.3*LH^f7/FleFem$_u$\>0m3.^45XZ=J9m*X8pk'XW0GJd1CIKcHeA#/=r32JFCk:CN8<"+SD>bHM>^*Npi(Z,f(o@.K-#P2 %e0A@X>OmpN_NSiU&)],D=4"@(GK.l*6DGaT$I8k\U?p6epHAi^Qhk9h+ZbQPJ@l+^)[rLM? %<:a7%Jp<=[27I9bRF()^lMXr4L5rQ,?;`YoTL:D3[\Q^cE[e*RKdcS"M);uusrF-k6SQ[Z#8V;ns0!PJ1<^D%P:JCPs/(Z9X6W^.r:Nq_HIGnCi,$ZZ+&Q<<^jR,e.jL\p@:\Em)5p?KcqC)jEgl:o#4Y>0EEI!WKD-S-S("&[IB]m!u6 %l5TutndLRMLK\'"8k6Q+l,o\2l28mIpe"'He2ai0=K%aXQttCIaI*?t0nY0OfeA!KpT8NO:Rr_.b9gcF9_\T>jHf>1Z2:N/p8O"s %mdf*O`3P3cmg>L<6Y:.2cHOXXNi:7\]@'P=FcMi,l!N['SiTADs.s)!UNl&D+\ls3F;];.bU-G__D6]Dbf1q9DO['=A5o'+)T"PX.5&VKWl0Cj,Dc!+O[_&;-\9qF4tV;+j%FnlQrMe3Z&7YsHsA(2(8a %=X"Rm`#obI!NjQY!Q6)pKRn9@(`pUaXTE-!(EP8-@t*lK08KE:GE;8CF:Q5W=+P&SG!"G1N>H;JC:C#d^HdQH+sI,LgpVVN-bB])Yn %i`bSll#:YARcPtrgR?98Z:bsZ_GecdCP-?hL.t\d.hg5:4-sVGs(e*]S-U%EjC2oVb_NB*Z!]lEar2=7#BMK77o#4aUP8hQ]&e\YZ3XUY>D, %Eiucp;n+8@]hISPAsY;,@sDcph&D,T]sh'h]k^A'EU"4p9q^ic4`+r@jrjqX[Q,$)>G/(m),cc]O"Cht)dGBokt/IddW4H/DNM9$ %SJQXL^E0>N^UEp?ciA">=h(!rQ2C.\&iWRb`s#S.WJoZji=p[I0STBHD*Kd5nOcMm> %(-Ze_UU"iN71;./MJG_k0HI,?')G.r*u30>fOH!AE>b1*V&E$37a=&I9,7nJCELjWHi\RbK$Ia$\8PsFd2j.D6QqZ&J+^QO,*=VQ %.;;(Wji/jhHueV5`O+X4;\_@,(aHH:Ej*!2MT*HuiA30Dg)=VQ=l.AeC"4Y:8NrBI2@?ADgZ,Da[c[2G>kSg&^HIeT6\/!'r]m4- %kat-;G[A0&iXY=VmH:&:R9Y*5GR.fEjoq@T94[?YYe;A&jfK3`UUX6*gBM.NZ[t]RA:&`q"qJiekeV%9(cgsJ(-;[%E8bUA9\etX %Z,Q4]Ro\:aDtfjI5GJ0l#LBfjf%i7=I#]hmLH#I.J,XPb11)]BDHl5)Xl]hG*$NK7)XQjb2C8b91[@,`1+liJ("KG/qYX"*\q50T %?\TT+WT0dTX&l@&HcS3uUd(.e^7Ofl(:geP>JL"-f0d1iB1b?d0t8ag`pm)D5V3Ps)#Mnd6&BDZ!u\fgLhPWmCQgCb>;.>m`)6l0 %(E9TB/X21$oJF`-P90;`FB.Rhg&,p%fq#dZ='@\lf'Y^TjXaTIHNi5lg>l]WMe=n^fD-B(^UYAkZ3=*"pb^4HR1<\>ac %EEXcVRdZX[1mX^U>C9jgBD*ATRocUG@o9k6qHSS_lNrj*l %H0?O:B4uO]Pl4/4N'1Y'b6NtarU>l"[K801*fl3IS_FsiVXLJ\a1:L#<9ob?r&rKl%M$S5qAgK\+.P5FY+(umaj7C`;$"LJ)nS84 %[VLY^0KVsc+$A..)m;#Qe%^+gqmGE2>q9Xemq4eiGs=C&;=5KebS3O9?I8G5/!l=Y1l,6?hS![:J=_.4\UI_r0:cG#Y.'E2Oh[Ee %8E9<.eU7,_YdiTDm0`.Og*6@tZDHC2`4[IA-^SC@%8&Z[IJh6?P.ICEr:V_ciGF?S=UNeik)6'o=@$5:LYJ?QJ_Ga3$_Wr0Jr$(` %?aXSuA#Q8kFt:]9:@K21f)!,hM#n)u72.Ci0/pN1s8K%4[^sfP(JoW\5hTk$Fl2ZhoqL6U]mja$rMTUV&HC,W$h/ZD[r20W-0(&^ %Wpkq(eAcVT9qM;.B)^`$?HeWt^8gq0YPZq@3UGY$"U?+74f7CrTlq:l-?c+G=i6pSi_1[\qB'LK*p>4!;.nlF_^Kj"3='fdursc^nIqElQ<"?@mRR9gZ/l\6>uie:lgqg%q7T4*=uqT'!.T'4En.?=.)eR"j.Xh.nt712)i62`04_,H;)EL*h^1]qV[l'gq#<%7ZQb;9Gr> %WSsZ-YPSt.f0@@o,OI1$cVtUm'08T_1Yk386q,>cJnbh:HJOq/?4XLOjH4<]+nQi6HP$%6>l6d+cZk)O,n4[KmS$n$,[=JH2`3rL %56qlA4Wt?a?;kZH!/r))rqWaN.[t_>0XO'S>OoA.)mJJ).-R=`c\-$_GtjT8I+HMWU-Q<<[(ImP4L)^9 %9g,]'.Nu+LI>R<5=''tTA!(kW=#SIVPq9`V&C/8.mRq)oo3E66RYMd3>[9?X^+7*_o9)D"!r'8ZOhK%aV4.O*g6_$%VSc^as %s26?!N!YoNXQYDAiX`%?U07SFehdZqeXV,ZPGc5L&e"f\W+rQY7'^fC=j3oncB1J1E(!E^loi3lpEaj`L\Yg0J_Te.6Z!]F74toi+p[BSnWS';'Ln0HbgjO37`C"^!I-"WTqTq-KQCi/+bWf!s=[MJ8M#r^p(>3 %6AaLMr.s_4cR<%N[0552&'RagNQr]Y7L/fV<@O%>`/i!QrY`\:iE?;B:D=94gc<<-CWLJW1dh!G`/huGkP(5OHU*]^cU?DR=''@f %@0JdNlq:lmItj+uQ4;+*BmWD0g0YV6$?^=F8FKo,, %aKo/S<-Up">\o`OmXXsX9/-1QL([fOnsZ88mpJO#4ZoP\g>Lf*Pd@=5OOEDD+Y-`&<8]`e@"B1nFM_8P7SPceNX1dN\?d>W %Ot)j)LBN!/rmOL/7"O&uUc"D!KHu*Qa`g?+pnA+](95pO.5_VsT^$9LOe>@[I\La9,3n39>L*#YI:oVDWocY8e#C$*Rd#Qngog=6 %J:ZsrjBb'?aK:AR=/<(8GnS1e'cM(o*tW!NOnnYPP+W^;5FXRQ[=[a*B5(I`4:1XMah3n?i/@`f9\G$M %6uJ_f]PrG@k"/sCR"As:6kfuc_Cl2YI:N]\?=eRdXXRf,3>9Y@j%2;%&,1\6kYRE#>B@O;gUI0f"khr(D,&'VjrG\/Y1=mq)=jX* %9T\%^M[I.%f//jP"W\eh.:FVO;RmS@WE]fugol(9Z$\+ROE@suKr6\m$K$G"26*RnkB]/.96Sj4T,,Ao&mR'TEF-$<5'LDl %UjS!\I'+),O%gWW[V0l+U8\6Y'6VfUpiYTfVKq9 %Bjr=?e/q_macHpjbcHhJ^-Oo>?oa&FapL1+74.F`mTD9JS)ccgYD"&tY#R9n\Jo!d9jjp"6l[Lt07q@s$)"kcP4"E\GYMU/E(3N" %6`V=%:Xu,5K[$F:cH,M]nW2[hWG6aYFp#!&Bs]b%fF1m0Vb`DMJt\V)Z@S!s %J!q<8s0SCf'8j3n=Hl"N/VLM$]!K-n+u/rb8YQO""PI+OP`Q$8-qtEj(Q[aXS35_5n>AaB&j@5XaJ=J7T`2'Gp>qGMVP3*;36K!, %8sffD$KsaCPV.02SJ(4'&97PPjiDF2b=;^_i#cs %B/h%X#oI?KU?+97+i1S3Z$j>^T']_a<)!&8N#JaY0SB2"6SpdT,T0'B."[kBGqn)@6@u0>L?N7>*0h+V\>9?./<^]1/c;E/#ia,M@UV,k_f,g>(DAbuJrZN/^I1b/\dZKl>Spd@ %BODq)U8YZA"SX;l-@?a,=3N/lJB*>u1tk>lPULO=W$W,_,H8TrJar5e/@&$4ZXRacTTK@._Z[*sPU,\E %L2R1/.^Fn*R''!;B2Mb'=D(K4[I:GXDNsUrkWISgD.!LQ)!5N/>lD\+_DT%$X5AuG)T2Lm7Qnfs;5J8NP'B?cMWl)tPV^PC6[N4B %Of3Iqc:]'U4\7".0m?(1Se6e$,/OpH<*eISD>6!XX%nb0nHo?'2Gk.34O$IWLoRVoM]0`#8]47/';Q"3*F`nd`<kWXk.LAXTJ@?0!`#ieu#%"JEY"WA7AA:fDQp6'-N %?R%9Zr3PTjP[uMuC8(A7j^_275iR\$EfEISKs)(^f,@5J8YmlWi41`)W3NOgKOMf^JMGFI3)hj?VWsm>n^QI&=)]30lfIkuW#M&o %Pi""hZYZi?Zk37D$"%f6&$DRK5"pUK0e:iG84mJmS[D>d!!C_i1W2p/P.bB7eT.c$NhD)(0c@Ys\]nNPK6\XnqK,8MT %fnQK%j<[r*>ro?NlDVmhJh\J!AFDgD=,Dr^q%`#2-CTBmDe;a'jf*5JVpM#$eI,,2V4A1rKMtWs.TuTSVhY%)0EMP!@X//J-,daq %.4`Guafc4FNFdNK)9bh7T]?oFp7f+"#>(6.NlR@mIXulMpsBi)#BRl:<)Wm=!^%idUW0T+R#Ro*lVi7dBJ6;enggNqrJEuq]=8UH %C#MQ`807-)ot)/P5?SOS&VI/"'CuDc6ZN?5983^m9YfD+/ju/'EoGMQ$i\Y#Juh,k=@(NhOA%SM%8UQoe9hZ'e>P[a4qWf0>3Lk< %DD0ihCM>I9&$_UV`:8LoDK&j&#\c.U&2fo2-kd1fU.J;m1En3feBiDn0rR"8_%Y5(Ks*>C\,C",jcC&ds3fG/Osk'r342_ilqKMC %kVpl1%+s(%p5563Q'j+P":e!9A^`4WAG"O?]'>Rogp9[Hpb_K@UkF]C-k\j@E`,4>9f9*m %L,fkq_6qS[IBHA4Pb96XFSF7C)QT)6Kj[K++^,k%d0q6H<)ipVJ9^^RR#k`+%3"uV_uq<*&qRaa98k>IjF8$r-S$#oD6g3GWl6;6=!,`e&65R7XqXLj1>o-=t]hd6:^!^]=G %[31lT!;d=+)(LLn]4D*=/<^Q-%K%^OTIXX2 %0NHXT+40s>J>+e;!Pqt&R6K6#915urnkX>e%OWIs]5i;/>Kh*:P.-?Oj/As?J6lEpHs6;r/h20<7?bOb1*8pqWYm>>+=t2+9;i2n %1]jNtMA/[B;,NJgl;.bK=K"JCnU:Po'+E>t]bgq_VD_D*6jQaLY=\Ye%GqA=r/RkhRj3,8*=KjI^tGt'LZW^cR#XM2eV#Y_EQd9$`]LX@ORJA?WBiS25QRU-jg?Vo#O.rs@.kQVYR %SP[i_Nr$[mSLsfh0sWQdL8]9GX!)0+_hdD2'T?n,_jAGFk8jf59(A"E[sqI-[>aUrZD-RNjae(>F5ZlEEJUkQN_b/'$6#e,@`a[_ %;<&`&Q:0)"_f1[S6p4ik4gVu'nW*e,<]&>i%L#!mo^8%b#=jc%*.C$p^,&c0J:[k,U<M[<\1dq`bta09%NG91JPr"2eJ"-6I&2MCjlLJVGFie-8^fS6eM1ku9Yppf"^=XB9ri %CTnW[5tSu;!_K86p,3L5_2,D"F.rR?ejL-^6[)[Y/uiF-.2jb?/kLJinQL2Mmq/=_X@6'ZmCg_J:)l,,b=PT+9D@O"-eaL<2Ol$m %[ZkF]Eq3r&8)og=hfQp#%0RDJfBlNGH[Rkg/F0(p#dc1Ame%a:(kV*\+HdILlDf2^Hs6#?Gpt8%k=e+CRu3X;.E`P]Qc9t %AMCS[Zkk8:`ifph35PB0pBp`'n?XW%peEt]_h/J4LrMn2>d6[5XIhR"%WRm_7<41%0d>em@^#YAUH5bM+"-jI**NVD$d+SZ,Ylta %4K@2OaJ";T11`LCk0VNgYt8"[+`[Fdbb=.I_G?m-NB#M*"?TWt"F!D,,%0L[l@f*^*\A3A52_9@:_;/YOYq>R*<3,#dIM)2=*_.a %&DSsE^+88#$E6!AU6%@c3q&j'qK."ifEh;N\T,Y-oH;,474eikNLX%rXqJkU@U_Yi?tN]->qp19O\#]DF^JV=OLS]I(t6a:!2H@c %5Fdrl9a1/c=o1Wc_F0ak.h[J+#u%>)/os$%_*?,=KMMt?RU6`(9#r^:h+TP!$4ZN'6;k$ghJZ#i+[ZlB=a!FEK_72kG=W_R-kd4W %n,F^XU#>=NXD*hj819':j]0Ea7j94geiC1bpW9aiCP7H'I[X-oNLLED(D6!mEQ@C?@1l\qD4u<`0td,_5'YWX:0hlJ#t7e[$c1^E,]H;;KGGU^,S8MX %1hFc\-+ITUPjiDF=%N]$"BRjS\YXtTRpbM1UPYT)>3G]Ff;D86YS$G%F5r9Z9$"j:kX1l9d970O/7V+>=)s9eE1&jJ7N@O(#jc\@ %@UpqX08gQQ.:aq6K9m4."IhgnP[>[^E(G-f&A6[Yh!)bTCqH3&^CCPLY8U29*kEP'4XsS^-CfTiMa$VI8&":A=7Z'31UnLg[/JX %&rh6Z\UD1Nn=s;3BlF,f>a==qfh/a:eq^0CYs-O+QIegT]g,UOZKbU9TF+`H,e"PR5]aP.rEB!D"]>P3b/L_SWf#=OpC %,Q`NQ2+W[kTXes)3$N!8Yh+;[Oe!9fZ?W7@$Sm4,A!n7(U4C\cMjtP:,#BTh=a"!f)CS+A@E4cSr3OVsn7gi/9o[!$HDksD'JV7; %22a7JJEPuN:#V5OIX5FB8/-9>2`20,bnO9[.5`umB:5aXe%i.B2%3WB:'JmZCZlt@_4iWPA504LhL+8XFP.RKK`'th"JK72'+686N>S?$M-d*3Td3tfJ+/T(],XS'q6'=VnOJ([=TP:Uq[,?u;@)MI# %T/@4uKg1?K[N$j1j3c-\Yl>Ds,\$nrdKE6!cjb5X^a.[A+-tir+khW[F;QWfC)EeM=EV'n+H[K3ccMQo+F/dob9l&3lV:uNPh38p-<4]]&>ClXBlUtS.J+e\rkh\ %32V>cq`gQF)9/>*fYub[bRes?i,FF,-NnKCi;edR0eA6M4KZ/R@#iA;>h4Kk26n(Mrae3iLe7Argtaq"ss'8e*AO8eJ",EZ!!-=ccc2 %OMe/B?F"U"]&YOcTr>JnB%0+e)"GEg_t;#YNZ*fqQI/'o.ip]EH6Jh53@pXt?4dU,*;4[XB.rr_$V>h.4QWdNS4&@h:O&c\@`:)s %&lhg-K:!a:bmQb?IrH_\(&ha$etmr!(a@LWH)`#4:^#3?R/lrT;D2F4-L/7$5QVsC>0Bh4%8pN#HW&!ZFSCmqNP!J1,CPcb)&4Yt %U7&g+M"15\#Dg*rRgMZ$d?0omTt6k,?c-(Fp>)i7X"TS7"^:l(]i\J&;X6^%84'n'D0W(o2HXP91Z9Z7$"Ef'9;;fLD!G=pTZMqp %fQ:h41hUM^W\]cBMep8(DcN%897rQoXp&lp$sT0=TDeYQ7ap9LaJ*<]>Z>KQ:i4WD'+T>D6MDnC1e(fGkZ-E%L,4s.Bm:P#)M=N" %HYHT?c@f]bOskUA"p_+GmdnDG$u>CfBE,!.q1b@V#*76rN\$hG')@1\JABt(mAb\\9Stu\NB/neB>Lt!X-.;1 %WD3i9$Q<%[@BY5I;Ht^tar8-bTZ#iULnjs@2%j>FJq1j+H]?[ar#5C*ALGK_JB@VUFM]> %7r@`pJiKl1*lM7OVfF@kLmK %AI9_PrivateDataEnd eina-1.7.10/doc/img/eina_inlist-node_eg1-inlist.eps0000664000175000017500000217315512175475327017001 00000000000000%!PS-Adobe-3.1 EPSF-3.0 %ADO_DSC_Encoding: MacOS Roman %%Title: diagramas_01-07.eps %%Creator: Adobe Illustrator(R) 14.0 %%For: Marina Proni %%CreationDate: 6/17/11 %%BoundingBox: 0 0 911 260 %%HiResBoundingBox: 0 0 910.0146 260 %%CropBox: 0 0 910.0146 260 %%LanguageLevel: 2 %%DocumentData: Clean7Bit %ADOBeginClientInjection: DocumentHeader "AI11EPS" %%AI8_CreatorVersion: 14.0.0 %AI9_PrintingDataBegin %ADO_BuildNumber: Adobe Illustrator(R) 14.0.0 x367 R agm 4.4890 ct 5.1541 %ADO_ContainsXMP: MainFirst %ADOEndClientInjection: DocumentHeader "AI11EPS" %%Pages: 1 %%DocumentNeededResources: %%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0 %%+ procset Adobe_CoolType_Utility_T42 1.0 0 %%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%+ procset Adobe_CoolType_Core 2.31 0 %%+ procset Adobe_AGM_Core 2.0 0 %%+ procset Adobe_AGM_Utils 1.0 0 %%DocumentFonts: %%DocumentNeededFonts: %%DocumentNeededFeatures: %%DocumentSuppliedFeatures: %%DocumentProcessColors: Cyan Magenta Yellow Black %%DocumentCustomColors: %%CMYKCustomColor: %%RGBCustomColor: %%EndComments %%BeginDefaults %%ViewingOrientation: 1 0 0 1 %%EndDefaults %%BeginProlog %%BeginResource: procset Adobe_AGM_Utils 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known {currentpacking true setpacking}if userdict/Adobe_AGM_Utils 75 dict dup begin put /bdf {bind def}bind def /nd{null def}bdf /xdf {exch def}bdf /ldf {load def}bdf /ddf {put}bdf /xddf {3 -1 roll put}bdf /xpt {exch put}bdf /ndf { exch dup where{ pop pop pop }{ xdf }ifelse }def /cdndf { exch dup currentdict exch known{ pop pop }{ exch def }ifelse }def /gx {get exec}bdf /ps_level /languagelevel where{ pop systemdict/languagelevel gx }{ 1 }ifelse def /level2 ps_level 2 ge def /level3 ps_level 3 ge def /ps_version {version cvr}stopped{-1}if def /set_gvm {currentglobal exch setglobal}bdf /reset_gvm {setglobal}bdf /makereadonlyarray { /packedarray where{pop packedarray }{ array astore readonly}ifelse }bdf /map_reserved_ink_name { dup type/stringtype eq{ dup/Red eq{ pop(_Red_) }{ dup/Green eq{ pop(_Green_) }{ dup/Blue eq{ pop(_Blue_) }{ dup()cvn eq{ pop(Process) }if }ifelse }ifelse }ifelse }if }bdf /AGMUTIL_GSTATE 22 dict def /get_gstate { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_clr_spc currentcolorspace def /AGMUTIL_GSTATE_clr_indx 0 def /AGMUTIL_GSTATE_clr_comps 12 array def mark currentcolor counttomark {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop /AGMUTIL_GSTATE_fnt rootfont def /AGMUTIL_GSTATE_lw currentlinewidth def /AGMUTIL_GSTATE_lc currentlinecap def /AGMUTIL_GSTATE_lj currentlinejoin def /AGMUTIL_GSTATE_ml currentmiterlimit def currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf /AGMUTIL_GSTATE_sa currentstrokeadjust def /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def /AGMUTIL_GSTATE_op currentoverprint def /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf /AGMUTIL_GSTATE_ht currenthalftone def /AGMUTIL_GSTATE_flt currentflat def end }def /set_gstate { AGMUTIL_GSTATE begin AGMUTIL_GSTATE_clr_spc setcolorspace AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor AGMUTIL_GSTATE_fnt setfont AGMUTIL_GSTATE_lw setlinewidth AGMUTIL_GSTATE_lc setlinecap AGMUTIL_GSTATE_lj setlinejoin AGMUTIL_GSTATE_ml setmiterlimit AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash AGMUTIL_GSTATE_sa setstrokeadjust AGMUTIL_GSTATE_clr_rnd setcolorrendering AGMUTIL_GSTATE_op setoverprint AGMUTIL_GSTATE_bg cvx setblackgeneration AGMUTIL_GSTATE_ucr cvx setundercolorremoval AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or { currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne { mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark }if }{ AGMUTIL_GSTATE_ht sethalftone }ifelse AGMUTIL_GSTATE_flt setflat end }def /get_gstate_and_matrix { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_ctm matrix currentmatrix def end get_gstate }def /set_gstate_and_matrix { set_gstate AGMUTIL_GSTATE begin AGMUTIL_GSTATE_ctm setmatrix end }def /AGMUTIL_str256 256 string def /AGMUTIL_src256 256 string def /AGMUTIL_dst64 64 string def /AGMUTIL_srcLen nd /AGMUTIL_ndx nd /AGMUTIL_cpd nd /capture_cpd{ //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf }def /thold_halftone { level3 {sethalftone currenthalftone} { dup/HalftoneType get 3 eq { sethalftone currenthalftone }{ begin Width Height mul{ Thresholds read{pop}if }repeat end currenthalftone }ifelse }ifelse }def /rdcmntline { currentfile AGMUTIL_str256 readline pop (%)anchorsearch{pop}if }bdf /filter_cmyk { dup type/filetype ne{ exch()/SubFileDecode filter }{ exch pop } ifelse [ exch { AGMUTIL_src256 readstring pop dup length/AGMUTIL_srcLen exch def /AGMUTIL_ndx 0 def AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{ 1 index exch get AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put /AGMUTIL_ndx AGMUTIL_ndx 1 add def }for pop AGMUTIL_dst64 0 AGMUTIL_ndx getinterval } bind /exec cvx ]cvx }bdf /filter_indexed_devn { cvi Names length mul names_index add Lookup exch get }bdf /filter_devn { 4 dict begin /srcStr xdf /dstStr xdf dup type/filetype ne{ 0()/SubFileDecode filter }if [ exch [ /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx currentdict/srcStr get/readstring cvx/pop cvx /dup cvx/length cvx 0/gt cvx[ Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx names_index Names length currentdict/srcStr get length 1 sub{ 1/index cvx/exch cvx/get cvx currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx }for currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx ]cvx/if cvx /end cvx ]cvx bind /exec cvx ]cvx end }bdf /AGMUTIL_imagefile nd /read_image_file { AGMUTIL_imagefile 0 setfileposition 10 dict begin /imageDict xdf /imbufLen Width BitsPerComponent mul 7 add 8 idiv def /imbufIdx 0 def /origDataSource imageDict/DataSource get def /origMultipleDataSources imageDict/MultipleDataSources get def /origDecode imageDict/Decode get def /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse { /imbufCnt imageDict/DataSource get length def /imbufs imbufCnt array def 0 1 imbufCnt 1 sub{ /imbufIdx xdf imbufs imbufIdx imbufLen string put imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put }for DeviceN_PS2{ imageDict begin /DataSource[DataSource/devn_sep_datasource cvx]cvx def /MultipleDataSources false def /Decode[0 1]def end }if }{ /imbuf imbufLen string def Indexed_DeviceN level3 not and DeviceN_NoneName or{ /srcDataStrs[imageDict begin currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi string }repeat end]def imageDict begin /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def /Decode[0 1]def end }{ imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put imageDict/Decode[0 1]put }ifelse }ifelse imageDict exch load exec imageDict/DataSource origDataSource put imageDict/MultipleDataSources origMultipleDataSources put imageDict/Decode origDecode put end }bdf /write_image_file { begin {(AGMUTIL_imagefile)(w+)file}stopped{ false }{ Adobe_AGM_Utils/AGMUTIL_imagefile xddf 2 dict begin /imbufLen Width BitsPerComponent mul 7 add 8 idiv def MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{ /imbuf imbufLen string def }if 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{ pop MultipleDataSources{ 0 1 DataSource length 1 sub{ DataSource type dup /arraytype eq{ pop DataSource exch gx }{ /filetype eq{ DataSource exch get imbuf readstring pop }{ DataSource exch get }ifelse }ifelse AGMUTIL_imagefile exch writestring }for }{ DataSource type dup /arraytype eq{ pop DataSource exec }{ /filetype eq{ DataSource imbuf readstring pop }{ DataSource }ifelse }ifelse AGMUTIL_imagefile exch writestring }ifelse }for end true }ifelse end }bdf /close_image_file { AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile }def statusdict/product known userdict/AGMP_current_show known not and{ /pstr statusdict/product get def pstr(HP LaserJet 2200)eq pstr(HP LaserJet 4000 Series)eq or pstr(HP LaserJet 4050 Series )eq or pstr(HP LaserJet 8000 Series)eq or pstr(HP LaserJet 8100 Series)eq or pstr(HP LaserJet 8150 Series)eq or pstr(HP LaserJet 5000 Series)eq or pstr(HP LaserJet 5100 Series)eq or pstr(HP Color LaserJet 4500)eq or pstr(HP Color LaserJet 4600)eq or pstr(HP LaserJet 5Si)eq or pstr(HP LaserJet 1200 Series)eq or pstr(HP LaserJet 1300 Series)eq or pstr(HP LaserJet 4100 Series)eq or { userdict/AGMP_current_show/show load put userdict/show{ currentcolorspace 0 get /Pattern eq {false charpath f} {AGMP_current_show}ifelse }put }if currentdict/pstr undef }if /consumeimagedata { begin AGMIMG_init_common currentdict/MultipleDataSources known not {/MultipleDataSources false def}if MultipleDataSources { DataSource 0 get type dup/filetype eq { 1 dict begin /flushbuffer Width cvi string def 1 1 Height cvi { pop 0 1 DataSource length 1 sub { DataSource exch get flushbuffer readstring pop pop }for }for end }if dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and { Width Height mul cvi { 0 1 DataSource length 1 sub {dup DataSource exch gx length exch 0 ne{pop}if}for dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if } { /DataSource load type dup/filetype eq { 1 dict begin /flushbuffer Width Decode length 2 idiv mul cvi string def 1 1 Height{pop DataSource flushbuffer readstring pop pop}for end }if dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and { Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul { DataSource length dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if }ifelse end }bdf /addprocs { 2{/exec load}repeat 3 1 roll [5 1 roll]bind cvx }def /modify_halftone_xfer { currenthalftone dup length dict copy begin currentdict 2 index known{ 1 index load dup length dict copy begin currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end def currentdict end sethalftone }{ currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end sethalftone pop }ifelse }def /clonearray { dup xcheck exch dup length array exch Adobe_AGM_Core/AGMCORE_tmp -1 ddf { Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf dup type/dicttype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonedict Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if dup type/arraytype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonearray Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if exch dup Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put }forall exch{cvx}if }bdf /clonedict { dup length dict begin { dup type/dicttype eq {clonedict}if dup type/arraytype eq {clonearray}if def }forall currentdict end }bdf /DeviceN_PS2 { /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and }bdf /Indexed_DeviceN { /indexed_colorspace_dict AGMCORE_gget dup null ne{ dup/CSDBase known{ /CSDBase get/CSD get_res/Names known }{ pop false }ifelse }{ pop false }ifelse }bdf /DeviceN_NoneName { /Names where{ pop false Names { (None)eq or }forall }{ false }ifelse }bdf /DeviceN_PS2_inRip_seps { /AGMCORE_in_rip_sep where { pop dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and { /currentcolorspace exch AGMCORE_gput false }{ true }ifelse }{ true }ifelse }{ true }ifelse }bdf /base_colorspace_type { dup type/arraytype eq{0 get}if }bdf /currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse { /pdfmark_5{cleartomark}bind def }{ /pdfmark_5{pdfmark}bind def }ifelse /ReadBypdfmark_5 { currentfile exch 0 exch/SubFileDecode filter /currentdistillerparams where {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse {flushfile cleartomark} {/PUT pdfmark}ifelse }bdf /ReadBypdfmark_5_string { 2 dict begin /makerString exch def string/tmpString exch def { currentfile tmpString readline not{pop exit}if makerString anchorsearch { pop pop cleartomark exit }{ 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5 }ifelse }loop end }bdf /xpdfm { { dup 0 get/Label eq { aload length[exch 1 add 1 roll/PAGELABEL }{ aload pop [{ThisPage}<<5 -2 roll>>/PUT }ifelse pdfmark_5 }forall }bdf /lmt{ dup 2 index le{exch}if pop dup 2 index ge{exch}if pop }bdf /int{ dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop }bdf /ds{ Adobe_AGM_Utils begin }bdf /dt{ currentdict Adobe_AGM_Utils eq{ end }if }bdf systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_AGM_Core 2.0 0 %%Version: 2.0 0 %%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Core 209 dict dup begin put /Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def /AGMCORE_str256 256 string def /AGMCORE_save nd /AGMCORE_graphicsave nd /AGMCORE_c 0 def /AGMCORE_m 0 def /AGMCORE_y 0 def /AGMCORE_k 0 def /AGMCORE_cmykbuf 4 array def /AGMCORE_screen[currentscreen]cvx def /AGMCORE_tmp 0 def /AGMCORE_&setgray nd /AGMCORE_&setcolor nd /AGMCORE_&setcolorspace nd /AGMCORE_&setcmykcolor nd /AGMCORE_cyan_plate nd /AGMCORE_magenta_plate nd /AGMCORE_yellow_plate nd /AGMCORE_black_plate nd /AGMCORE_plate_ndx nd /AGMCORE_get_ink_data nd /AGMCORE_is_cmyk_sep nd /AGMCORE_host_sep nd /AGMCORE_avoid_L2_sep_space nd /AGMCORE_distilling nd /AGMCORE_composite_job nd /AGMCORE_producing_seps nd /AGMCORE_ps_level -1 def /AGMCORE_ps_version -1 def /AGMCORE_environ_ok nd /AGMCORE_CSD_cache 0 dict def /AGMCORE_currentoverprint false def /AGMCORE_deltaX nd /AGMCORE_deltaY nd /AGMCORE_name nd /AGMCORE_sep_special nd /AGMCORE_err_strings 4 dict def /AGMCORE_cur_err nd /AGMCORE_current_spot_alias false def /AGMCORE_inverting false def /AGMCORE_feature_dictCount nd /AGMCORE_feature_opCount nd /AGMCORE_feature_ctm nd /AGMCORE_ConvertToProcess false def /AGMCORE_Default_CTM matrix def /AGMCORE_Default_PageSize nd /AGMCORE_Default_flatness nd /AGMCORE_currentbg nd /AGMCORE_currentucr nd /AGMCORE_pattern_paint_type 0 def /knockout_unitsq nd currentglobal true setglobal [/CSA/Gradient/Procedure] { /Generic/Category findresource dup length dict copy/Category defineresource pop }forall setglobal /AGMCORE_key_known { where{ /Adobe_AGM_Core_Id known }{ false }ifelse }ndf /flushinput { save 2 dict begin /CompareBuffer 3 -1 roll def /readbuffer 256 string def mark { currentfile readbuffer{readline}stopped {cleartomark mark} { not {pop exit} if CompareBuffer eq {exit} if }ifelse }loop cleartomark end restore }bdf /getspotfunction { AGMCORE_screen exch pop exch pop dup type/dicttype eq{ dup/HalftoneType get 1 eq{ /SpotFunction get }{ dup/HalftoneType get 2 eq{ /GraySpotFunction get }{ pop { abs exch abs 2 copy add 1 gt{ 1 sub dup mul exch 1 sub dup mul add 1 sub }{ dup mul exch dup mul add 1 exch sub }ifelse }bind }ifelse }ifelse }if }def /np {newpath}bdf /clp_npth {clip np}def /eoclp_npth {eoclip np}def /npth_clp {np clip}def /graphic_setup { /AGMCORE_graphicsave save store concat 0 setgray 0 setlinecap 0 setlinejoin 1 setlinewidth []0 setdash 10 setmiterlimit np false setoverprint false setstrokeadjust //Adobe_AGM_Core/spot_alias gx /Adobe_AGM_Image where{ pop Adobe_AGM_Image/spot_alias 2 copy known{ gx }{ pop pop }ifelse }if /sep_colorspace_dict null AGMCORE_gput 100 dict begin /dictstackcount countdictstack def /showpage{}def mark }def /graphic_cleanup { cleartomark dictstackcount 1 countdictstack 1 sub{end}for end AGMCORE_graphicsave restore }def /compose_error_msg { grestoreall initgraphics /Helvetica findfont 10 scalefont setfont /AGMCORE_deltaY 100 def /AGMCORE_deltaX 310 def clippath pathbbox np pop pop 36 add exch 36 add exch moveto 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath 0 AGMCORE_&setgray gsave 1 AGMCORE_&setgray fill grestore 1 setlinewidth gsave stroke grestore currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto /AGMCORE_deltaY 12 def /AGMCORE_tmp 0 def AGMCORE_err_strings exch get { dup 32 eq { pop AGMCORE_str256 0 AGMCORE_tmp getinterval stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt { currentpoint AGMCORE_deltaY sub exch pop clippath pathbbox pop pop pop 44 add exch moveto }if AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show 0 1 AGMCORE_str256 length 1 sub { AGMCORE_str256 exch 0 put }for /AGMCORE_tmp 0 def }{ AGMCORE_str256 exch AGMCORE_tmp xpt /AGMCORE_tmp AGMCORE_tmp 1 add def }ifelse }forall }bdf /AGMCORE_CMYKDeviceNColorspaces[ [/Separation/None/DeviceCMYK{0 0 0}] [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind] [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind] [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind] [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind] [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind] [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind] [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind] [/Separation(Cyan)/DeviceCMYK{0 0 0}] [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind] [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind] [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind] [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}] [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind] [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}] [/DeviceCMYK] ]def /ds{ Adobe_AGM_Core begin /currentdistillerparams where { pop currentdistillerparams/CoreDistVersion get 5000 lt {<>setdistillerparams}if }if /AGMCORE_ps_version xdf /AGMCORE_ps_level xdf errordict/AGM_handleerror known not{ errordict/AGM_handleerror errordict/handleerror get put errordict/handleerror{ Adobe_AGM_Core begin $error/newerror get AGMCORE_cur_err null ne and{ $error/newerror false put AGMCORE_cur_err compose_error_msg }if $error/newerror true put end errordict/AGM_handleerror get exec }bind put }if /AGMCORE_environ_ok ps_level AGMCORE_ps_level ge ps_version AGMCORE_ps_version ge and AGMCORE_ps_level -1 eq or def AGMCORE_environ_ok not {/AGMCORE_cur_err/AGMCORE_bad_environ def}if /AGMCORE_&setgray systemdict/setgray get def level2{ /AGMCORE_&setcolor systemdict/setcolor get def /AGMCORE_&setcolorspace systemdict/setcolorspace get def }if /AGMCORE_currentbg currentblackgeneration def /AGMCORE_currentucr currentundercolorremoval def /AGMCORE_Default_flatness currentflat def /AGMCORE_distilling /product where{ pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and }{ false }ifelse def /AGMCORE_GSTATE AGMCORE_key_known not{ /AGMCORE_GSTATE 21 dict def /AGMCORE_tmpmatrix matrix def /AGMCORE_gstack 32 array def /AGMCORE_gstackptr 0 def /AGMCORE_gstacksaveptr 0 def /AGMCORE_gstackframekeys 14 def /AGMCORE_&gsave/gsave ldf /AGMCORE_&grestore/grestore ldf /AGMCORE_&grestoreall/grestoreall ldf /AGMCORE_&save/save ldf /AGMCORE_&setoverprint/setoverprint ldf /AGMCORE_gdictcopy{ begin {def}forall end }def /AGMCORE_gput{ AGMCORE_gstack AGMCORE_gstackptr get 3 1 roll put }def /AGMCORE_gget{ AGMCORE_gstack AGMCORE_gstackptr get exch get }def /gsave{ AGMCORE_&gsave AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /grestore{ AGMCORE_&grestore AGMCORE_gstackptr 1 sub dup AGMCORE_gstacksaveptr lt{1 add}if dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse /AGMCORE_gstackptr exch store }def /grestoreall{ AGMCORE_&grestoreall /AGMCORE_gstackptr AGMCORE_gstacksaveptr store }def /save{ AGMCORE_&save AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store /AGMCORE_gstacksaveptr AGMCORE_gstackptr store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /setoverprint{ dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint }def 0 1 AGMCORE_gstack length 1 sub{ AGMCORE_gstack exch AGMCORE_gstackframekeys dict put }for }if level3/AGMCORE_&sysshfill AGMCORE_key_known not and { /AGMCORE_&sysshfill systemdict/shfill get def /AGMCORE_&sysmakepattern systemdict/makepattern get def /AGMCORE_&usrmakepattern/makepattern load def }if /currentcmykcolor[0 0 0 0]AGMCORE_gput /currentstrokeadjust false AGMCORE_gput /currentcolorspace[/DeviceGray]AGMCORE_gput /sep_tint 0 AGMCORE_gput /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput /sep_colorspace_dict null AGMCORE_gput /devicen_colorspace_dict null AGMCORE_gput /indexed_colorspace_dict null AGMCORE_gput /currentcolor_intent()AGMCORE_gput /customcolor_tint 1 AGMCORE_gput /absolute_colorimetric_crd null AGMCORE_gput /relative_colorimetric_crd null AGMCORE_gput /saturation_crd null AGMCORE_gput /perceptual_crd null AGMCORE_gput currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf << /MaxPatternItem currentsystemparams/MaxPatternCache get >> setuserparams end }def /ps { /setcmykcolor where{ pop Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put }if Adobe_AGM_Core begin /setcmykcolor { 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput 1 sub 4 1 roll 3{ 3 index add neg dup 0 lt{ pop 0 }if 3 1 roll }repeat setrgbcolor pop }ndf /currentcmykcolor { /currentcmykcolor AGMCORE_gget aload pop }ndf /setoverprint {pop}ndf /currentoverprint {false}ndf /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def /AGMCORE_plate_ndx AGMCORE_cyan_plate{ 0 }{ AGMCORE_magenta_plate{ 1 }{ AGMCORE_yellow_plate{ 2 }{ AGMCORE_black_plate{ 3 }{ 4 }ifelse }ifelse }ifelse }ifelse def /AGMCORE_have_reported_unsupported_color_space false def /AGMCORE_report_unsupported_color_space { AGMCORE_have_reported_unsupported_color_space false eq { (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)== Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf }if }def /AGMCORE_composite_job AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def /AGMCORE_in_rip_sep /AGMCORE_in_rip_sep where{ pop AGMCORE_in_rip_sep }{ AGMCORE_distilling { false }{ userdict/Adobe_AGM_OnHost_Seps known{ false }{ level2{ currentpagedevice/Separations 2 copy known{ get }{ pop pop false }ifelse }{ false }ifelse }ifelse }ifelse }ifelse def /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def /AGM_preserve_spots /AGM_preserve_spots where{ pop AGM_preserve_spots }{ AGMCORE_distilling AGMCORE_producing_seps or }ifelse def /AGM_is_distiller_preserving_spotimages { currentdistillerparams/PreserveOverprintSettings known { currentdistillerparams/PreserveOverprintSettings get { currentdistillerparams/ColorConversionStrategy known { currentdistillerparams/ColorConversionStrategy get /sRGB ne }{ true }ifelse }{ false }ifelse }{ false }ifelse }def /convert_spot_to_process where{pop}{ /convert_spot_to_process { //Adobe_AGM_Core begin dup map_alias{ /Name get exch pop }if dup dup(None)eq exch(All)eq or { pop false }{ AGMCORE_host_sep { gsave 1 0 0 0 setcmykcolor currentgray 1 exch sub 0 1 0 0 setcmykcolor currentgray 1 exch sub 0 0 1 0 setcmykcolor currentgray 1 exch sub 0 0 0 1 setcmykcolor currentgray 1 exch sub add add add 0 eq { pop false }{ false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne }ifelse grestore }{ AGMCORE_distilling { pop AGM_is_distiller_preserving_spotimages not }{ //Adobe_AGM_Core/AGMCORE_name xddf false //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq AGMUTIL_cpd/OverrideSeparations known and { AGMUTIL_cpd/OverrideSeparations get { /HqnSpots/ProcSet resourcestatus { pop pop pop true }if }if }if { AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not }{ gsave [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace false AGMUTIL_cpd/SeparationColorNames 2 copy known { get {AGMCORE_name eq or}forall not }{ pop pop pop true }ifelse grestore }ifelse }ifelse }ifelse }ifelse end }def }ifelse /convert_to_process where{pop}{ /convert_to_process { dup length 0 eq { pop false }{ AGMCORE_host_sep { dup true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process and}ifelse } forall { true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch (Black)eq or and }forall not }{pop false}ifelse }{ false exch { /PhotoshopDuotoneList where{pop false}{true}ifelse { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process or}ifelse } { convert_spot_to_process or } ifelse } forall }ifelse }ifelse }def }ifelse /AGMCORE_avoid_L2_sep_space version cvr 2012 lt level2 and AGMCORE_producing_seps not and def /AGMCORE_is_cmyk_sep AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or def /AGM_avoid_0_cmyk where{ pop AGM_avoid_0_cmyk }{ AGM_preserve_spots userdict/Adobe_AGM_OnHost_Seps known userdict/Adobe_AGM_InRip_Seps known or not and }ifelse { /setcmykcolor[ { 4 copy add add add 0 eq currentoverprint and{ pop 0.0005 }if }/exec cvx /AGMCORE_&setcmykcolor load dup type/operatortype ne{ /exec cvx }if ]cvx def }if /AGMCORE_IsSeparationAProcessColor { dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or }def AGMCORE_host_sep{ /setcolortransfer { AGMCORE_cyan_plate{ pop pop pop }{ AGMCORE_magenta_plate{ 4 3 roll pop pop pop }{ AGMCORE_yellow_plate{ 4 2 roll pop pop pop }{ 4 1 roll pop pop pop }ifelse }ifelse }ifelse settransfer } def /AGMCORE_get_ink_data AGMCORE_cyan_plate{ {pop pop pop} }{ AGMCORE_magenta_plate{ {4 3 roll pop pop pop} }{ AGMCORE_yellow_plate{ {4 2 roll pop pop pop} }{ {4 1 roll pop pop pop} }ifelse }ifelse }ifelse def /AGMCORE_RemoveProcessColorNames { 1 dict begin /filtername { dup/Cyan eq 1 index(Cyan)eq or {pop(_cyan_)}if dup/Magenta eq 1 index(Magenta)eq or {pop(_magenta_)}if dup/Yellow eq 1 index(Yellow)eq or {pop(_yellow_)}if dup/Black eq 1 index(Black)eq or {pop(_black_)}if }def dup type/arraytype eq {[exch{filtername}forall]} {filtername}ifelse end }def level3{ /AGMCORE_IsCurrentColor { dup AGMCORE_IsSeparationAProcessColor { AGMCORE_plate_ndx 0 eq {dup(Cyan)eq exch/Cyan eq or}if AGMCORE_plate_ndx 1 eq {dup(Magenta)eq exch/Magenta eq or}if AGMCORE_plate_ndx 2 eq {dup(Yellow)eq exch/Yellow eq or}if AGMCORE_plate_ndx 3 eq {dup(Black)eq exch/Black eq or}if AGMCORE_plate_ndx 4 eq {pop false}if }{ gsave false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne grestore }ifelse }def /AGMCORE_filter_functiondatasource { 5 dict begin /data_in xdf data_in type/stringtype eq { /ncomp xdf /comp xdf /string_out data_in length ncomp idiv string def 0 ncomp data_in length 1 sub { string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put }for string_out }{ string/string_in xdf /string_out 1 string def /component xdf [ data_in string_in/readstring cvx [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx [/pop cvx()]cvx/ifelse cvx ]cvx/ReusableStreamDecode filter }ifelse end }def /AGMCORE_separateShadingFunction { 2 dict begin /paint? xdf /channel xdf dup type/dicttype eq { begin FunctionType 0 eq { /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def currentdict/Decode known {/Decode Decode channel 2 mul 2 getinterval def}if paint? not {/Decode[1 1]def}if }if FunctionType 2 eq { paint? { /C0[C0 channel get 1 exch sub]def /C1[C1 channel get 1 exch sub]def }{ /C0[1]def /C1[1]def }ifelse }if FunctionType 3 eq { /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def }if currentdict/Range known {/Range[0 1]def}if currentdict end}{ channel get 0 paint? AGMCORE_separateShadingFunction }ifelse end }def /AGMCORE_separateShading { 3 -1 roll begin currentdict/Function known { currentdict/Background known {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf /ColorSpace[/DeviceGray]def }{ ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }{ ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put }ifelse ColorSpace 0 get/Separation eq { { [1/exch cvx/sub cvx]cvx }{ [/pop cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll put pop }{ { [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx }{ pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll bind put }ifelse ColorSpace 2/DeviceGray put }ifelse end }def /AGMCORE_separateShadingDict { dup/ColorSpace get dup type/arraytype ne {[exch]}if dup 0 get/DeviceCMYK eq { exch begin currentdict AGMCORE_cyan_plate {0 true}if AGMCORE_magenta_plate {1 true}if AGMCORE_yellow_plate {2 true}if AGMCORE_black_plate {3 true}if AGMCORE_plate_ndx 4 eq {0 false}if dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading currentdict end exch }if dup 0 get/Separation eq { exch begin ColorSpace 1 get dup/None ne exch/All ne and { ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /Separation ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading }if }ifelse }{ currentdict ColorSpace 1 get AGMCORE_IsCurrentColor 0 exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse }if currentdict end exch }if dup 0 get/DeviceN eq { exch begin ColorSpace 1 get convert_to_process { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /DeviceN ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading /ColorSpace[/DeviceGray]def }if }ifelse }{ currentdict false -1 ColorSpace 1 get { AGMCORE_IsCurrentColor { 1 add exch pop true exch exit }if 1 add }forall exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse currentdict end exch }if dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not { exch begin ColorSpace dup type/arraytype eq {0 get}if /DeviceGray ne { AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { ColorSpace 0 get/CIEBasedA eq { /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def }if ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or { /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def }if ColorSpace 0 get/CIEBasedDEFG eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }if currentdict 0 false AGMCORE_separateShading }if }if currentdict end exch }if pop dup/AGMCORE_ignoreshade known { begin /ColorSpace[/Separation(None)/DeviceGray{}]def currentdict end }if }def /shfill { AGMCORE_separateShadingDict dup/AGMCORE_ignoreshade known {pop} {AGMCORE_&sysshfill}ifelse }def /makepattern { exch dup/PatternType get 2 eq { clonedict begin /Shading Shading AGMCORE_separateShadingDict def Shading/AGMCORE_ignoreshade known currentdict end exch {pop<>}if exch AGMCORE_&sysmakepattern }{ exch AGMCORE_&usrmakepattern }ifelse }def }if }if AGMCORE_in_rip_sep{ /setcustomcolor { exch aload pop dup 7 1 roll inRip_spot_has_ink not { 4{4 index mul 4 1 roll} repeat /DeviceCMYK setcolorspace 6 -2 roll pop pop }{ //Adobe_AGM_Core begin /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf end [/Separation 4 -1 roll/DeviceCMYK {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul} ] setcolorspace }ifelse setcolor }ndf /setseparationgray { [/Separation(All)/DeviceGray{}]setcolorspace_opt 1 exch sub setcolor }ndf }{ /setseparationgray { AGMCORE_&setgray }ndf }ifelse /findcmykcustomcolor { 5 makereadonlyarray }ndf /setcustomcolor { exch aload pop pop 4{4 index mul 4 1 roll}repeat setcmykcolor pop }ndf /has_color /colorimage where{ AGMCORE_producing_seps{ pop true }{ systemdict eq }ifelse }{ false }ifelse def /map_index { 1 index mul exch getinterval{255 div}forall }bdf /map_indexed_devn { Lookup Names length 3 -1 roll cvi map_index }bdf /n_color_components { base_colorspace_type dup/DeviceGray eq{ pop 1 }{ /DeviceCMYK eq{ 4 }{ 3 }ifelse }ifelse }bdf level2{ /mo/moveto ldf /li/lineto ldf /cv/curveto ldf /knockout_unitsq { 1 setgray 0 0 1 1 rectfill }def level2/setcolorspace AGMCORE_key_known not and{ /AGMCORE_&&&setcolorspace/setcolorspace ldf /AGMCORE_ReplaceMappedColor { dup type dup/arraytype eq exch/packedarraytype eq or { /AGMCORE_SpotAliasAry2 where{ begin dup 0 get dup/Separation eq { pop dup length array copy dup dup 1 get current_spot_alias { dup map_alias { false set_spot_alias dup 1 exch setsepcolorspace true set_spot_alias begin /sep_colorspace_dict currentdict AGMCORE_gput pop pop pop [ /Separation Name CSA map_csa MappedCSA /sep_colorspace_proc load ] dup Name end }if }if map_reserved_ink_name 1 xpt }{ /DeviceN eq { dup length array copy dup dup 1 get[ exch{ current_spot_alias{ dup map_alias{ /Name get exch pop }if }if map_reserved_ink_name }forall ]1 xpt }if }ifelse end }if }if }def /setcolorspace { dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/Indexed eq { AGMCORE_distilling { /PhotoshopDuotoneList where { pop false }{ true }ifelse }{ true }ifelse { aload pop 3 -1 roll AGMCORE_ReplaceMappedColor 3 1 roll 4 array astore }if }{ AGMCORE_ReplaceMappedColor }ifelse }if DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if }def }if }{ /adj { currentstrokeadjust{ transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform }if }def /mo{ adj moveto }def /li{ adj lineto }def /cv{ 6 2 roll adj 6 2 roll adj 6 2 roll adj curveto }def /knockout_unitsq { 1 setgray 8 8 1[8 0 0 8 0 0]{}image }def /currentstrokeadjust{ /currentstrokeadjust AGMCORE_gget }def /setstrokeadjust{ /currentstrokeadjust exch AGMCORE_gput }def /setcolorspace { /currentcolorspace exch AGMCORE_gput }def /currentcolorspace { /currentcolorspace AGMCORE_gget }def /setcolor_devicecolor { base_colorspace_type dup/DeviceGray eq{ pop setgray }{ /DeviceCMYK eq{ setcmykcolor }{ setrgbcolor }ifelse }ifelse }def /setcolor { currentcolorspace 0 get dup/DeviceGray ne{ dup/DeviceCMYK ne{ dup/DeviceRGB ne{ dup/Separation eq{ pop currentcolorspace 3 gx currentcolorspace 2 get }{ dup/Indexed eq{ pop currentcolorspace 3 get dup type/stringtype eq{ currentcolorspace 1 get n_color_components 3 -1 roll map_index }{ exec }ifelse currentcolorspace 1 get }{ /AGMCORE_cur_err/AGMCORE_invalid_color_space def AGMCORE_invalid_color_space }ifelse }ifelse }if }if }if setcolor_devicecolor }def }ifelse /sop/setoverprint ldf /lw/setlinewidth ldf /lc/setlinecap ldf /lj/setlinejoin ldf /ml/setmiterlimit ldf /dsh/setdash ldf /sadj/setstrokeadjust ldf /gry/setgray ldf /rgb/setrgbcolor ldf /cmyk[ /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx /setcmykcolor load dup type/operatortype ne{/exec cvx}if ]cvx bdf level3 AGMCORE_host_sep not and{ /nzopmsc{ 6 dict begin /kk exch def /yy exch def /mm exch def /cc exch def /sum 0 def cc 0 ne{/sum sum 2#1000 or def cc}if mm 0 ne{/sum sum 2#0100 or def mm}if yy 0 ne{/sum sum 2#0010 or def yy}if kk 0 ne{/sum sum 2#0001 or def kk}if AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace sum 0 eq{0}if end setcolor }bdf }{ /nzopmsc/cmyk ldf }ifelse /sep/setsepcolor ldf /devn/setdevicencolor ldf /idx/setindexedcolor ldf /colr/setcolor ldf /csacrd/set_csa_crd ldf /sepcs/setsepcolorspace ldf /devncs/setdevicencolorspace ldf /idxcs/setindexedcolorspace ldf /cp/closepath ldf /clp/clp_npth ldf /eclp/eoclp_npth ldf /f/fill ldf /ef/eofill ldf /@/stroke ldf /nclp/npth_clp ldf /gset/graphic_setup ldf /gcln/graphic_cleanup ldf /ct/concat ldf /cf/currentfile ldf /fl/filter ldf /rs/readstring ldf /AGMCORE_def_ht currenthalftone def /clonedict Adobe_AGM_Utils begin/clonedict load end def /clonearray Adobe_AGM_Utils begin/clonearray load end def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall /getrampcolor { /indx exch def 0 1 NumComp 1 sub { dup Samples exch get dup type/stringtype eq{indx get}if exch Scaling exch get aload pop 3 1 roll mul add }for ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /sssetbackground{ aload pop ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /RadialShade { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /r2 xdf /c2y xdf /c2x xdf /r1 xdf /c1y xdf /c1x xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if c1x c2x eq { c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope c2y c1y sub c2x c1x sub div def /theta slope 1 atan def c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if }ifelse gsave clippath c1x c1y translate theta rotate -90 rotate {pathbbox}stopped {0 0 0 0}if /yMax xdf /xMax xdf /yMin xdf /xMin xdf grestore xMax xMin eq yMax yMin eq or { grestore end }{ /max{2 copy gt{pop}{exch pop}ifelse}bdf /min{2 copy lt{pop}{exch pop}ifelse}bdf rampdict begin 40 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave c1x c1y translate theta rotate -90 rotate /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def /c1y 0 def /c1x 0 def /c2x 0 def ext0 { 0 getrampcolor c2y r2 add r1 sub 0.0001 lt { c1x c1y r1 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2y r1 add r2 le { c1x c1y r1 0 360 arc fill } { c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r1 neg def /p1y c1y def /p2x r1 def /p2y c1y def p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y p1x SS1 div neg def /SS2 90 theta sub dup sin exch cos div def /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y p2x SS2 div neg def r1 r2 gt { /L1maxX p1x yMin p1y sub SS1 div add def /L2maxX p2x yMin p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if c1x c2x sub dup mul c1y c2y sub dup mul add 0.5 exp 0 dtransform dup mul exch dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop /hires xdf hires mul /numpix xdf /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if /xInc c2x c1x sub numsteps div def /yInc c2y c1y sub numsteps div def /rInc r2 r1 sub numsteps div def /cx c1x def /cy c1y def /radius r1 def np xInc 0 eq yInc 0 eq rInc 0 eq and and { 0 getrampcolor cx cy radius 0 360 arc stroke NumSamples 1 sub getrampcolor cx cy radius 72 hires div add 0 360 arc 0 setlinewidth stroke }{ 0 numsteps { dup subsampling{round cvi}if getrampcolor cx cy radius 0 360 arc /cx cx xInc add def /cy cy yInc add def /radius radius rInc add def cx cy radius 360 0 arcn eofill rampIndxInc add }repeat pop }ifelse ext1 { c2y r2 add r1 lt { c2x c2y r2 0 360 arc fill }{ c2y r1 add r2 sub 0.0001 le { c2x c2y r2 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r2 neg def /p1y c2y def /p2x r2 def /p2y c2y def p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y c2y p1x SS1 div sub def /SS2 90 theta sub dup sin exch cos div def /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y c2y p2x SS2 div sub def r1 r2 lt { /L1maxX p1x yMax p1y sub SS1 div add def /L2maxX p2x yMax p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if grestore grestore end end end }ifelse }bdf /GenStrips { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /y2 xdf /x2 xdf /y1 xdf /x1 xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if x1 x2 eq { y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope y2 y1 sub x2 x1 sub div def /theta slope 1 atan def x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if } ifelse gsave clippath x1 y1 translate theta rotate {pathbbox}stopped {0 0 0 0}if /yMax exch def /xMax exch def /yMin exch def /xMin exch def grestore xMax xMin eq yMax yMin eq or { grestore end }{ rampdict begin 20 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave x1 y1 translate theta rotate /xStart 0 def /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def /ySpan yMax yMin sub def /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def xStart 0 transform xEnd 0 transform 3 -1 roll sub dup mul 3 1 roll sub dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop mul /numpix xdf numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if ext0 { 0 getrampcolor xMin xStart lt { xMin yMin xMin neg ySpan rectfill }if }if /xInc xEnd xStart sub numsteps div def /x xStart def 0 numsteps { dup subsampling{round cvi}if getrampcolor x yMin xInc ySpan rectfill /x x xInc add def rampIndxInc add }repeat pop ext1{ xMax xEnd gt { xEnd yMin xMax xEnd sub ySpan rectfill }if }if grestore grestore end end end }ifelse }bdf }def /pt { end }def /dt{ }def /pgsv{ //Adobe_AGM_Core/AGMCORE_save save put }def /pgrs{ //Adobe_AGM_Core/AGMCORE_save get restore }def systemdict/findcolorrendering known{ /findcolorrendering systemdict/findcolorrendering get def }if systemdict/setcolorrendering known{ /setcolorrendering systemdict/setcolorrendering get def }if /test_cmyk_color_plate { gsave setcmykcolor currentgray 1 ne grestore }def /inRip_spot_has_ink { dup//Adobe_AGM_Core/AGMCORE_name xddf convert_spot_to_process not }def /map255_to_range { 1 index sub 3 -1 roll 255 div mul add }def /set_csa_crd { /sep_colorspace_dict null AGMCORE_gput begin CSA get_csa_by_name setcolorspace_opt set_crd end } def /map_csa { currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse {pop}{get_csa_by_name/MappedCSA xdf}ifelse }def /setsepcolor { /sep_colorspace_dict AGMCORE_gget begin dup/sep_tint exch AGMCORE_gput TintProc end }def /setdevicencolor { /devicen_colorspace_dict AGMCORE_gget begin Names length copy Names length 1 sub -1 0 { /devicen_tints AGMCORE_gget 3 1 roll xpt }for TintProc end }def /sep_colorspace_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin currentdict/Components known{ Components aload pop TintMethod/Lab eq{ 2{AGMCORE_tmp mul NComponents 1 roll}repeat LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll }{ TintMethod/Subtractive eq{ NComponents{ AGMCORE_tmp mul NComponents 1 roll }repeat }{ NComponents{ 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll }repeat }ifelse }ifelse }{ ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get aload pop }ifelse end }def /sep_colorspace_gray_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get end }def /sep_proc_name { dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{ pop[/DeviceGray] /sep_colorspace_gray_proc }{ /sep_colorspace_proc }ifelse }def /setsepcolorspace { current_spot_alias{ dup begin Name map_alias{ exch pop }if end }if dup/sep_colorspace_dict exch AGMCORE_gput begin CSA map_csa /AGMCORE_sep_special Name dup()eq exch(All)eq or store AGMCORE_avoid_L2_sep_space{ [/Indexed MappedCSA sep_proc_name 255 exch {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx ]setcolorspace_opt /TintProc{ 255 mul round cvi setcolor }bdf }{ MappedCSA 0 get/DeviceCMYK eq currentdict/Components known and AGMCORE_sep_special not and{ /TintProc[ Components aload pop Name findcmykcustomcolor /exch cvx/setcustomcolor cvx ]cvx bdf }{ AGMCORE_host_sep Name(All)eq and{ /TintProc{ 1 exch sub setseparationgray }bdf }{ AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and AGMCORE_host_sep or Name()eq and{ /TintProc[ MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{ cvx/setcmykcolor cvx }{ cvx/setgray cvx }ifelse ]cvx bdf }{ AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{ /TintProc[ /dup cvx MappedCSA sep_proc_name cvx exch 0 get/DeviceGray eq{ 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx }if /Name cvx/findcmykcustomcolor cvx/exch cvx AGMCORE_host_sep{ AGMCORE_is_cmyk_sep /Name cvx /AGMCORE_IsSeparationAProcessColor load/exec cvx /not cvx/and cvx }{ Name inRip_spot_has_ink not }ifelse [ /pop cvx 1 ]cvx/if cvx /setcustomcolor cvx ]cvx bdf }{ /TintProc{setcolor}bdf [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt }ifelse }ifelse }ifelse }ifelse }ifelse set_crd setsepcolor end }def /additive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 0 1 numarrays 1 sub { 1 exch add/index cvx c1/get cvx/mul cvx }for numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /subtractive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 1 0 1 numarrays 1 sub { 1 3 3 -1 roll add/index cvx c1/get cvx/sub cvx/mul cvx }for /sub cvx numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /exec_tint_transform { /TintProc[ /TintTransform cvx/setcolor cvx ]cvx bdf MappedCSA setcolorspace_opt }bdf /devn_makecustomcolor { 2 dict begin /names_index xdf /Names xdf 1 1 1 1 Names names_index get findcmykcustomcolor /devicen_tints AGMCORE_gget names_index get setcustomcolor Names length{pop}repeat end }bdf /setdevicencolorspace { dup/AliasedColorants known{false}{true}ifelse current_spot_alias and{ 7 dict begin /names_index 0 def dup/names_len exch/Names get length def /new_names names_len array def /new_LookupTables names_len array def /alias_cnt 0 def dup/Names get { dup map_alias{ exch pop dup/ColorLookup known{ dup begin new_LookupTables names_index ColorLookup put end }{ dup/Components known{ dup begin new_LookupTables names_index Components put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse new_names names_index 3 -1 roll/Name get put /alias_cnt alias_cnt 1 add def }{ /name xdf new_names names_index name put dup/LookupTables known{ dup begin new_LookupTables names_index LookupTables names_index get put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse /names_index names_index 1 add def }forall alias_cnt 0 gt{ /AliasedColorants true def /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def 0 1 names_len 1 sub{ /names_index xdf new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{ /AliasedColorants false def exit }{ new_LookupTables names_index get 0 get null eq{ dup/Names get names_index get/name xdf name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq or or or not{ /AliasedColorants false def exit }if }if }ifelse }for lut_entry_len 1 eq{ /AliasedColorants false def }if AliasedColorants{ dup begin /Names new_names def /LookupTables new_LookupTables def /AliasedColorants true def /NComponents lut_entry_len def /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def currentdict/TTTablesIdx known not{ /TTTablesIdx -1 def }if end }if }if end }if dup/devicen_colorspace_dict exch AGMCORE_gput begin currentdict/AliasedColorants known{ AliasedColorants }{ false }ifelse dup not{ CSA map_csa }if /TintTransform load type/nulltype eq or{ /TintTransform[ 0 1 Names length 1 sub { /TTTablesIdx TTTablesIdx 1 add def dup LookupTables exch get dup 0 get null eq { 1 index Names exch get dup(Cyan)eq { pop exch LookupTables length exch sub /index cvx 0 0 0 } { dup(Magenta)eq { pop exch LookupTables length exch sub /index cvx 0/exch cvx 0 0 }{ (Yellow)eq { exch LookupTables length exch sub /index cvx 0 0 3 -1/roll cvx 0 }{ exch LookupTables length exch sub /index cvx 0 0 0 4 -1/roll cvx }ifelse }ifelse }ifelse 5 -1/roll cvx/astore cvx }{ dup length 1 sub LookupTables length 4 -1 roll sub 1 add /index cvx/mul cvx/round cvx/cvi cvx/get cvx }ifelse Names length TTTablesIdx add 1 add 1/roll cvx }for Names length[/pop cvx]cvx/repeat cvx NComponents Names length TintMethod/Subtractive eq { subtractive_blend }{ additive_blend }ifelse ]cvx bdf }if AGMCORE_host_sep{ Names convert_to_process{ exec_tint_transform } { currentdict/AliasedColorants known{ AliasedColorants not }{ false }ifelse 5 dict begin /AvoidAliasedColorants xdf /painted? false def /names_index 0 def /names_len Names length def AvoidAliasedColorants{ /currentspotalias current_spot_alias def false set_spot_alias }if Names{ AGMCORE_is_cmyk_sep{ dup(Cyan)eq AGMCORE_cyan_plate and exch dup(Magenta)eq AGMCORE_magenta_plate and exch dup(Yellow)eq AGMCORE_yellow_plate and exch (Black)eq AGMCORE_black_plate and or or or{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def }if painted?{exit}if }{ 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def exit }if }ifelse /names_index names_index 1 add def }forall AvoidAliasedColorants{ currentspotalias set_spot_alias }if painted?{ /devicen_colorspace_dict AGMCORE_gget/names_index names_index put }{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx 0 0 0 0/setcmykcolor cvx ]cvx ddf }ifelse end }ifelse } { AGMCORE_in_rip_sep{ Names convert_to_process not }{ level3 }ifelse { [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt /TintProc level3 not AGMCORE_in_rip_sep and{ [ Names/length cvx[/pop cvx]cvx/repeat cvx ]cvx bdf }{ {setcolor}bdf }ifelse }{ exec_tint_transform }ifelse }ifelse set_crd /AliasedColorants false def end }def /setindexedcolorspace { dup/indexed_colorspace_dict exch AGMCORE_gput begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ currentdict devncs }{ 1 currentdict sepcs }ifelse AGMCORE_host_sep{ 4 dict begin /compCnt/Names where{pop Names length}{1}ifelse def /NewLookup HiVal 1 add string def 0 1 HiVal{ /tableIndex xdf Lookup dup type/stringtype eq{ compCnt tableIndex map_index }{ exec }ifelse /Names where{ pop setdevicencolor }{ setsepcolor }ifelse currentgray tableIndex exch 255 mul cvi NewLookup 3 1 roll put }for [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt end }{ level3 { currentdict/Names known{ [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt }{ [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt }ifelse }{ [/Indexed MappedCSA HiVal [ currentdict/Names known{ Lookup dup type/stringtype eq {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx} {/exec cvx}ifelse /TintTransform load/exec cvx }{ Lookup dup type/stringtype eq {/exch cvx/get cvx 255/div cvx} {/exec cvx}ifelse CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx }ifelse ]cvx ]setcolorspace_opt }ifelse }ifelse end set_crd } { CSA map_csa AGMCORE_host_sep level2 not and{ 0 0 0 0 setcmykcolor }{ [/Indexed MappedCSA level2 not has_color not and{ dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{ pop[/DeviceGray] }if HiVal GrayLookup }{ HiVal currentdict/RangeArray known{ { /indexed_colorspace_dict AGMCORE_gget begin Lookup exch dup HiVal gt{ pop HiVal }if NComponents mul NComponents getinterval{}forall NComponents 1 sub -1 0{ RangeArray exch 2 mul 2 getinterval aload pop map255_to_range NComponents 1 roll }for end }bind }{ Lookup }ifelse }ifelse ]setcolorspace_opt set_crd }ifelse }ifelse end }def /setindexedcolor { AGMCORE_host_sep{ /indexed_colorspace_dict AGMCORE_gget begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ map_indexed_devn devn } { Lookup 1 3 -1 roll map_index sep }ifelse end }{ Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll map_index MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse }ifelse end }{ level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{ /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin map_indexed_devn devn end } { setcolor }ifelse }ifelse }def /ignoreimagedata { currentoverprint not{ gsave dup clonedict begin 1 setgray /Decode[0 1]def /DataSourcedef /MultipleDataSources false def /BitsPerComponent 8 def currentdict end systemdict/image gx grestore }if consumeimagedata }def /add_res { dup/CSD eq{ pop //Adobe_AGM_Core begin /AGMCORE_CSD_cache load 3 1 roll put end }{ defineresource pop }ifelse }def /del_res { { aload pop exch dup/CSD eq{ pop {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall }{ exch {1 index undefineresource}forall pop }ifelse }forall }def /get_res { dup/CSD eq{ pop dup type dup/nametype eq exch/stringtype eq or{ AGMCORE_CSD_cache exch get }if }{ findresource }ifelse }def /get_csa_by_name { dup type dup/nametype eq exch/stringtype eq or{ /CSA get_res }if }def /paintproc_buf_init { /count get 0 0 put }def /paintproc_buf_next { dup/count get dup 0 get dup 3 1 roll 1 add 0 xpt get }def /cachepaintproc_compress { 5 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def /string_size 16000 def /readbuffer string_size string def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal /LZWFilter { exch dup length 0 eq{ pop }{ ppdict dup length 1 sub 3 -1 roll put }ifelse {string_size}{0}ifelse string }/LZWEncode filter def { ReadFilter readbuffer readstring exch LZWFilter exch writestring not{exit}if }loop LZWFilter closefile ppdict end }def /cachepaintproc { 2 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal { ReadFilter 16000 string readstring exch ppdict dup length 1 sub 3 -1 roll put not{exit}if }loop ppdict dup dup length 1 sub()put end }def /make_pattern { exch clonedict exch dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub matrix translate exch matrix concatmatrix 1 index begin BBox 0 get XStep div cvi XStep mul/xshift exch neg def BBox 1 get YStep div cvi YStep mul/yshift exch neg def BBox 0 get xshift add BBox 1 get yshift add BBox 2 get xshift add BBox 3 get yshift add 4 array astore /BBox exch def [xshift yshift/translate load null/exec load]dup 3/PaintProc load put cvx/PaintProc exch def end gsave 0 setgray makepattern grestore }def /set_pattern { dup/PatternType get 1 eq{ dup/PaintType get 1 eq{ currentoverprint sop[/DeviceGray]setcolorspace 0 setgray }if }if setpattern }def /setcolorspace_opt { dup currentcolorspace eq{pop}{setcolorspace}ifelse }def /updatecolorrendering { currentcolorrendering/RenderingIntent known{ currentcolorrendering/RenderingIntent get } { Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd AGMCORE_gget dup null eq } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd AGMCORE_gget dup null eq } { Intent/Saturation eq { /saturation_crd AGMCORE_gget dup null eq } { /perceptual_crd AGMCORE_gget dup null eq }ifelse }ifelse }ifelse { pop null } { /RenderingIntent known{null}{Intent}ifelse }ifelse }ifelse Intent ne{ Intent/ColorRendering{findresource}stopped { pop pop systemdict/findcolorrendering known { Intent findcolorrendering { /ColorRendering findresource true exch } { /ColorRendering findresource product(Xerox Phaser 5400)ne exch }ifelse dup Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd exch AGMCORE_gput } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd exch AGMCORE_gput } { Intent/Saturation eq { /saturation_crd exch AGMCORE_gput } { Intent/Perceptual eq { /perceptual_crd exch AGMCORE_gput } { pop }ifelse }ifelse }ifelse }ifelse 1 index{exch}{pop}ifelse } {false}ifelse } {true}ifelse { dup begin currentdict/TransformPQR known{ currentdict/TransformPQR get aload pop 3{{}eq 3 1 roll}repeat or or } {true}ifelse currentdict/MatrixPQR known{ currentdict/MatrixPQR get aload pop 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq and and and and and and and and } {true}ifelse end or { clonedict begin /TransformPQR[ {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind ]def /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def currentdict end }if setcolorrendering_opt }if }if }def /set_crd { AGMCORE_host_sep not level2 and{ currentdict/ColorRendering known{ ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if }{ currentdict/Intent known{ updatecolorrendering }if }ifelse currentcolorspace dup type/arraytype eq {0 get}if /DeviceRGB eq { currentdict/UCR known {/UCR}{/AGMCORE_currentucr}ifelse load setundercolorremoval currentdict/BG known {/BG}{/AGMCORE_currentbg}ifelse load setblackgeneration }if }if }def /set_ucrbg { dup null eq{pop/AGMCORE_currentbg load}{/Procedure get_res}ifelse setblackgeneration dup null eq{pop/AGMCORE_currentucr load}{/Procedure get_res}ifelse setundercolorremoval }def /setcolorrendering_opt { dup currentcolorrendering eq{ pop }{ product(HP Color LaserJet 2605)anchorsearch{ pop pop pop }{ pop clonedict begin /Intent Intent def currentdict end setcolorrendering }ifelse }ifelse }def /cpaint_gcomp { convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not { (%end_cpaint_gcomp)flushinput }if }def /cpaint_gsep { //Adobe_AGM_Core/AGMCORE_ConvertToProcess get { (%end_cpaint_gsep)flushinput }if }def /cpaint_gend {np}def /T1_path { currentfile token pop currentfile token pop mo { currentfile token pop dup type/stringtype eq {pop exit}if 0 exch rlineto currentfile token pop dup type/stringtype eq {pop exit}if 0 rlineto }loop }def /T1_gsave level3 {/clipsave} {/gsave}ifelse load def /T1_grestore level3 {/cliprestore} {/grestore}ifelse load def /set_spot_alias_ary { dup inherit_aliases //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf }def /set_spot_normalization_ary { dup inherit_aliases dup length /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if array //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf /AGMCORE_SpotAliasAry where{ pop AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval AGMCORE_SpotAliasAry length }{0}ifelse AGMCORE_SpotAliasAry2 3 1 roll exch putinterval true set_spot_alias }def /inherit_aliases { {dup/Name get map_alias{/CSD put}{pop}ifelse}forall }def /set_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias 3 -1 roll put }{ pop }ifelse }def /current_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias get }{ false }ifelse }def /map_alias { /AGMCORE_SpotAliasAry2 where{ begin /AGMCORE_name xdf false AGMCORE_SpotAliasAry2{ dup/Name get AGMCORE_name eq{ /CSD get/CSD get_res exch pop true exit }{ pop }ifelse }forall end }{ pop false }ifelse }bdf /spot_alias { true set_spot_alias /AGMCORE_&setcustomcolor AGMCORE_key_known not{ //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put }if /customcolor_tint 1 AGMCORE_gput //Adobe_AGM_Core begin /setcustomcolor { //Adobe_AGM_Core begin dup/customcolor_tint exch AGMCORE_gput 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not current_spot_alias and{1 index 4 get map_alias}{false}ifelse { false set_spot_alias /sep_colorspace_dict AGMCORE_gget null ne {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse 3 1 roll 2 index{ exch pop/sep_tint AGMCORE_gget exch }if mark 3 1 roll setsepcolorspace counttomark 0 ne{ setsepcolor }if pop not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if pop true set_spot_alias }{ AGMCORE_&setcustomcolor }ifelse end }bdf end }def /begin_feature { Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if }def /end_feature { 2 dict begin /spd/setpagedevice load def /setpagedevice{get_gstate spd set_gstate}def stopped{$error/newerror false put}if end count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if }def /set_negative { //Adobe_AGM_Core begin /AGMCORE_inverting exch def level2{ currentpagedevice/NegativePrint known AGMCORE_distilling not and{ currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{ true begin_feature true{ <>setpagedevice }end_feature }if /AGMCORE_inverting false def }if }if AGMCORE_inverting{ [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer AGMCORE_distilling{ erasepage }{ gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore }ifelse }if end }def /lw_save_restore_override{ /md where{ pop md begin initializepage /initializepage{}def /pmSVsetup{}def /endp{}def /pse{}def /psb{}def /orig_showpage where {pop} {/orig_showpage/showpage load def} ifelse /showpage{orig_showpage gR}def end }if }def /pscript_showpage_override{ /NTPSOct95 where { begin showpage save /showpage/restore load def /restore{exch pop}def end }if }def /driver_media_override { /md where{ pop md/initializepage known{ md/initializepage{}put }if md/rC known{ md/rC{4{pop}repeat}put }if }if /mysetup where{ /mysetup[1 0 0 1 0 0]put }if Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put level2 {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if }def /capture_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put }if }if }def /restore_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup known{ Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put Adobe_AGM_Core/save_mysetup undef }if }if }if }def /driver_check_media_override { /PrepsDict where {pop} { Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq { Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and }if { Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix }if }ifelse }def AGMCORE_err_strings begin /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def /AGMCORE_invalid_color_space(This job contains an invalid color space. )def end /set_def_ht {AGMCORE_def_ht sethalftone}def /set_def_flat {AGMCORE_Default_flatness setflat}def end systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_CoolType_Core 2.31 0 %%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved. %%Version: 2.31 0 10 dict begin /Adobe_CoolType_Passthru currentdict def /Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def Adobe_CoolType_Core_Defined {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def} if userdict/Adobe_CoolType_Core 70 dict dup begin put /Adobe_CoolType_Version 2.31 def /Level2? systemdict/languagelevel known dup {pop systemdict/languagelevel get 2 ge} if def Level2? not { /currentglobal false def /setglobal/pop load def /gcheck{pop false}bind def /currentpacking false def /setpacking/pop load def /SharedFontDirectory 0 dict def } if currentpacking true setpacking currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def end setglobal currentglobal true setglobal userdict/Adobe_CoolType_GVMFonts known not {userdict/Adobe_CoolType_GVMFonts 10 dict put} if setglobal currentglobal false setglobal userdict/Adobe_CoolType_LVMFonts known not {userdict/Adobe_CoolType_LVMFonts 10 dict put} if setglobal /ct_VMDictPut { dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse 3 1 roll put }bind def /ct_VMDictUndef { dup Adobe_CoolType_GVMFonts exch known {Adobe_CoolType_GVMFonts exch undef} { dup Adobe_CoolType_LVMFonts exch known {Adobe_CoolType_LVMFonts exch undef} {pop} ifelse }ifelse }bind def /ct_str1 1 string def /ct_xshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_yshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 exch rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_xyshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { {_ct_na _ct_i 1 add get}stopped {pop pop pop} { _ct_x _ct_y moveto rmoveto } ifelse } ifelse /_ct_i _ct_i 2 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def /ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def /xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def currentglobal true setglobal /ct_T3Defs { /BuildChar { 1 index/Encoding get exch get 1 index/BuildGlyph get exec }bind def /BuildGlyph { exch begin GlyphProcs exch get exec end }bind def }bind def setglobal /@_SaveStackLevels { Adobe_CoolType_Data begin /@vmState currentglobal def false setglobal @opStackCountByLevel @opStackLevel 2 copy known not { 2 copy 3 dict dup/args 7 index 5 add array put put get } { get dup/args get dup length 3 index lt { dup length 5 add array exch 1 index exch 0 exch putinterval 1 index exch/args exch put } {pop} ifelse } ifelse begin count 1 sub 1 index lt {pop count} if dup/argCount exch def dup 0 gt { args exch 0 exch getinterval astore pop } {pop} ifelse count /restCount exch def end /@opStackLevel @opStackLevel 1 add def countdictstack 1 sub @dictStackCountByLevel exch @dictStackLevel exch put /@dictStackLevel @dictStackLevel 1 add def @vmState setglobal end }bind def /@_RestoreStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def @opStackCountByLevel @opStackLevel get begin count restCount sub dup 0 gt {{pop}repeat} {pop} ifelse args 0 argCount getinterval{}forall end /@dictStackLevel @dictStackLevel 1 sub def @dictStackCountByLevel @dictStackLevel get end countdictstack exch sub dup 0 gt {{end}repeat} {pop} ifelse }bind def /@_PopStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def /@dictStackLevel @dictStackLevel 1 sub def end }bind def /@Raise { exch cvx exch errordict exch get exec stop }bind def /@ReRaise { cvx $error/errorname get errordict exch get exec stop }bind def /@Stopped { 0 @#Stopped }bind def /@#Stopped { @_SaveStackLevels stopped {@_RestoreStackLevels true} {@_PopStackLevels false} ifelse }bind def /@Arg { Adobe_CoolType_Data begin @opStackCountByLevel @opStackLevel 1 sub get begin args exch argCount 1 sub exch sub get end end }bind def currentglobal true setglobal /CTHasResourceForAllBug Level2? { 1 dict dup /@shouldNotDisappearDictValue true def Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put begin count @_SaveStackLevels {(*){pop stop}128 string/Category resourceforall} stopped pop @_RestoreStackLevels currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll { /@shouldNotDisappearDictValue known { { end currentdict 1 index eq {pop exit} if } loop } if } { pop end } ifelse } {false} ifelse def true setglobal /CTHasResourceStatusBug Level2? { mark {/steveamerige/Category resourcestatus} stopped {cleartomark true} {cleartomark currentglobal not} ifelse } {false} ifelse def setglobal /CTResourceStatus { mark 3 1 roll /Category findresource begin ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse end }bind def /CTWorkAroundBugs { Level2? { /cid_PreLoad/ProcSet resourcestatus { pop pop currentglobal mark { (*) { dup/CMap CTHasResourceStatusBug {CTResourceStatus} {resourcestatus} ifelse { pop dup 0 eq exch 1 eq or { dup/CMap findresource gcheck setglobal /CMap undefineresource } { pop CTHasResourceForAllBug {exit} {stop} ifelse } ifelse } {pop} ifelse } 128 string/CMap resourceforall } stopped {cleartomark} stopped pop setglobal } if } if }bind def /ds { Adobe_CoolType_Core begin CTWorkAroundBugs /mo/moveto load def /nf/newencodedfont load def /msf{makefont setfont}bind def /uf{dup undefinefont ct_VMDictUndef}bind def /ur/undefineresource load def /chp/charpath load def /awsh/awidthshow load def /wsh/widthshow load def /ash/ashow load def /@xshow/xshow load def /@yshow/yshow load def /@xyshow/xyshow load def /@cshow/cshow load def /sh/show load def /rp/repeat load def /.n/.notdef def end currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /AddWidths? false def /CC 0 def /charcode 2 string def /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def /InVMFontsByCMap 10 dict def /InVMDeepCopiedFonts 10 dict def end setglobal }bind def /dt { currentdict Adobe_CoolType_Core eq {end} if }bind def /ps { Adobe_CoolType_Core begin Adobe_CoolType_GVMFonts begin Adobe_CoolType_LVMFonts begin SharedFontDirectory begin }bind def /pt { end end end end }bind def /unload { systemdict/languagelevel known { systemdict/languagelevel get 2 ge { userdict/Adobe_CoolType_Core 2 copy known {undef} {pop pop} ifelse } if } if }bind def /ndf { 1 index where {pop pop pop} {dup xcheck{bind}if def} ifelse }def /findfont systemdict begin userdict begin /globaldict where{/globaldict get begin}if dup where pop exch get /globaldict where{pop end}if end end Adobe_CoolType_Core_Defined {/systemfindfont exch def} { /findfont 1 index def /systemfindfont exch def } ifelse /undefinefont {pop}ndf /copyfont { currentglobal 3 1 roll 1 index gcheck setglobal dup null eq{0}{dup length}ifelse 2 index length add 1 add dict begin exch { 1 index/FID eq {pop pop} {def} ifelse } forall dup null eq {pop} {{def}forall} ifelse currentdict end exch setglobal }bind def /copyarray { currentglobal exch dup gcheck setglobal dup length array copy exch setglobal }bind def /newencodedfont { currentglobal { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } { FontDirectory 3 index known {FontDirectory 3 index get/FontReferenced known} { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } ifelse } ifelse dup { 3 index findfont/FontReferenced get 2 index dup type/nametype eq {findfont} if ne {pop false} if } if dup { 1 index dup type/nametype eq {findfont} if dup/CharStrings known { /CharStrings get length 4 index findfont/CharStrings get length ne { pop false } if } {pop} ifelse } if { pop 1 index findfont /Encoding get exch 0 1 255 {2 copy get 3 index 3 1 roll put} for pop pop pop } { currentglobal 4 1 roll dup type/nametype eq {findfont} if dup gcheck setglobal dup dup maxlength 2 add dict begin exch { 1 index/FID ne 2 index/Encoding ne and {def} {pop pop} ifelse } forall /FontReferenced exch def /Encoding exch dup length array copy def /FontName 1 index dup type/stringtype eq{cvn}if def dup currentdict end definefont ct_VMDictPut setglobal } ifelse }bind def /SetSubstituteStrategy { $SubstituteFont begin dup type/dicttype ne {0 dict} if currentdict/$Strategies known { exch $Strategies exch 2 copy known { get 2 copy maxlength exch maxlength add dict begin {def}forall {def}forall currentdict dup/$Init known {dup/$Init get exec} if end /$Strategy exch def } {pop pop pop} ifelse } {pop pop} ifelse end }bind def /scff { $SubstituteFont begin dup type/stringtype eq {dup length exch} {null} ifelse /$sname exch def /$slen exch def /$inVMIndex $sname null eq { 1 index $str cvs dup length $slen sub $slen getinterval cvn } {$sname} ifelse def end {findfont} @Stopped { dup length 8 add string exch 1 index 0(BadFont:)putinterval 1 index exch 8 exch dup length string cvs putinterval cvn {findfont} @Stopped {pop/Courier findfont} if } if $SubstituteFont begin /$sname null def /$slen 0 def /$inVMIndex null def end }bind def /isWidthsOnlyFont { dup/WidthsOnly known {pop pop true} { dup/FDepVector known {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall} { dup/FDArray known {/FDArray get{isWidthsOnlyFont dup{exit}if}forall} {pop} ifelse } ifelse } ifelse }bind def /ct_StyleDicts 4 dict dup begin /Adobe-Japan1 4 dict dup begin Level2? { /Serif /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMin-W3} { /CIDFont/Category resourcestatus { pop pop /HeiseiMin-W3/CIDFont resourcestatus {pop pop/HeiseiMin-W3} {/Ryumin-Light} ifelse } {/Ryumin-Light} ifelse } ifelse def /SansSerif /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiKakuGo-W5} { /CIDFont/Category resourcestatus { pop pop /HeiseiKakuGo-W5/CIDFont resourcestatus {pop pop/HeiseiKakuGo-W5} {/GothicBBB-Medium} ifelse } {/GothicBBB-Medium} ifelse } ifelse def /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMaruGo-W4} { /CIDFont/Category resourcestatus { pop pop /HeiseiMaruGo-W4/CIDFont resourcestatus {pop pop/HeiseiMaruGo-W4} { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } ifelse /RoundSansSerif exch def /Default Serif def } { /Serif/Ryumin-Light def /SansSerif/GothicBBB-Medium def { (fonts/Jun101-Light-83pv-RKSJ-H)status }stopped {pop}{ {pop pop pop pop/Jun101-Light} {SansSerif} ifelse /RoundSansSerif exch def }ifelse /Default Serif def } ifelse end def /Adobe-Korea1 4 dict dup begin /Serif/HYSMyeongJo-Medium def /SansSerif/HYGoThic-Medium def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-GB1 4 dict dup begin /Serif/STSong-Light def /SansSerif/STHeiti-Regular def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-CNS1 4 dict dup begin /Serif/MKai-Medium def /SansSerif/MHei-Medium def /RoundSansSerif SansSerif def /Default Serif def end def end def Level2?{currentglobal true setglobal}if /ct_BoldRomanWidthProc { stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth 0 0 }bind def /ct_Type0WidthProc { dup stringwidth 0 0 moveto 2 index true charpath pathbbox 0 -1 7 index 2 div .88 setcachedevice2 pop 0 0 }bind def /ct_Type0WMode1WidthProc { dup stringwidth pop 2 div neg -0.88 2 copy moveto 0 -1 5 -1 roll true charpath pathbbox setcachedevice }bind def /cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_BoldBaseFont 11 dict begin /FontType 3 def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /Encoding cHexEncoding def /_setwidthProc/ct_BoldRomanWidthProc load def /_bcstr1 1 string def /BuildChar { exch begin _basefont setfont _bcstr1 dup 0 4 -1 roll put dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def systemdict/composefont known { /ct_DefineIdentity-H { /Identity-H/CMap resourcestatus { pop pop } { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse } def /ct_BoldBaseCIDFont 11 dict begin /CIDFontType 1 def /CIDFontName/ct_BoldBaseCIDFont def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /_setwidthProc/ct_Type0WidthProc load def /_bcstr2 2 string def /BuildGlyph { exch begin _basefont setfont _bcstr2 1 2 index 256 mod put _bcstr2 0 3 -1 roll 256 idiv put _bcstr2 dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def }if Level2?{setglobal}if /ct_CopyFont{ { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall }bind def /ct_Type0CopyFont { exch dup length dict begin ct_CopyFont [ exch FDepVector { dup/FontType get 0 eq { 1 index ct_Type0CopyFont /_ctType0 exch definefont } { /_ctBaseFont exch 2 index exec } ifelse exch } forall pop ] /FDepVector exch def currentdict end }bind def /ct_MakeBoldFont { dup/ct_SyntheticBold known { dup length 3 add dict begin ct_CopyFont /ct_StrokeWidth .03 0 FontMatrix idtransform pop def /ct_SyntheticBold true def currentdict end definefont } { dup dup length 3 add dict begin ct_CopyFont /PaintType 2 def /StrokeWidth .03 0 FontMatrix idtransform pop def /dummybold currentdict end definefont dup/FontType get dup 9 ge exch 11 le and { ct_BoldBaseCIDFont dup length 3 add dict copy begin dup/CIDSystemInfo get/CIDSystemInfo exch def ct_DefineIdentity-H /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefont exch def /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefonto exch def currentdict end /CIDFont defineresource } { ct_BoldBaseFont dup length 3 add dict copy begin /_basefont exch def /_basefonto exch def currentdict end definefont } ifelse } ifelse }bind def /ct_MakeBold{ 1 index 1 index findfont currentglobal 5 1 roll dup gcheck setglobal dup /FontType get 0 eq { dup/WMode known{dup/WMode get 1 eq}{false}ifelse version length 4 ge and {version 0 4 getinterval cvi 2015 ge} {true} ifelse {/ct_Type0WidthProc} {/ct_Type0WMode1WidthProc} ifelse ct_BoldBaseFont/_setwidthProc 3 -1 roll load put {ct_MakeBoldFont}ct_Type0CopyFont definefont } { dup/_fauxfont known not 1 index/SubstMaster known not and { ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put ct_MakeBoldFont } { 2 index 2 index eq {exch pop } { dup length dict begin ct_CopyFont currentdict end definefont } ifelse } ifelse } ifelse pop pop pop setglobal }bind def /?str1 256 string def /?set { $SubstituteFont begin /$substituteFound false def /$fontname 1 index def /$doSmartSub false def end dup findfont $SubstituteFont begin $substituteFound {false} { dup/FontName known { dup/FontName get $fontname eq 1 index/DistillerFauxFont known not and /currentdistillerparams where {pop false 2 index isWidthsOnlyFont not and} if } {false} ifelse } ifelse exch pop /$doSmartSub true def end { 5 1 roll pop pop pop pop findfont } { 1 index findfont dup/FontType get 3 eq { 6 1 roll pop pop pop pop pop false } {pop true} ifelse { $SubstituteFont begin pop pop /$styleArray 1 index def /$regOrdering 2 index def pop pop 0 1 $styleArray length 1 sub { $styleArray exch get ct_StyleDicts $regOrdering 2 copy known { get exch 2 copy known not {pop/Default} if get dup type/nametype eq { ?str1 cvs length dup 1 add exch ?str1 exch(-)putinterval exch dup length exch ?str1 exch 3 index exch putinterval add ?str1 exch 0 exch getinterval cvn } { pop pop/Unknown } ifelse } { pop pop pop pop/Unknown } ifelse } for end findfont }if } ifelse currentglobal false setglobal 3 1 roll null copyfont definefont pop setglobal }bind def setpacking userdict/$SubstituteFont 25 dict put 1 dict begin /SubstituteFont dup $error exch 2 copy known {get} {pop pop{pop/Courier}bind} ifelse def /currentdistillerparams where dup { pop pop currentdistillerparams/CannotEmbedFontPolicy 2 copy known {get/Error eq} {pop pop false} ifelse } if not { countdictstack array dictstack 0 get begin userdict begin $SubstituteFont begin /$str 128 string def /$fontpat 128 string def /$slen 0 def /$sname null def /$match false def /$fontname null def /$substituteFound false def /$inVMIndex null def /$doSmartSub true def /$depth 0 def /$fontname null def /$italicangle 26.5 def /$dstack null def /$Strategies 10 dict dup begin /$Type3Underprint { currentglobal exch false setglobal 11 dict begin /UseFont exch $WMode 0 ne { dup length dict copy dup/WMode $WMode put /UseFont exch definefont } if def /FontName $fontname dup type/stringtype eq{cvn}if def /FontType 3 def /FontMatrix[.001 0 0 .001 0 0]def /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def /FontBBox[0 0 0 0]def /CCInfo 7 dict dup begin /cc null def /x 0 def /y 0 def end def /BuildChar { exch begin CCInfo begin 1 string dup 0 3 index put exch pop /cc exch def UseFont 1000 scalefont setfont cc stringwidth/y exch def/x exch def x y setcharwidth $SubstituteFont/$Strategy get/$Underprint get exec 0 0 moveto cc show x y moveto end end }bind def currentdict end exch setglobal }bind def /$GetaTint 2 dict dup begin /$BuildFont { dup/WMode known {dup/WMode get} {0} ifelse /$WMode exch def $fontname exch dup/FontName known { dup/FontName get dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse exch Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index/FontName get known { pop Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index get null copyfont } {$deepcopyfont} ifelse exch 1 index exch/FontBasedOn exch put dup/FontName $fontname dup type/stringtype eq{cvn}if put definefont Adobe_CoolType_Data/InVMDeepCopiedFonts get begin dup/FontBasedOn get 1 index def end }bind def /$Underprint { gsave x abs y abs gt {/y 1000 def} {/x -1000 def 500 120 translate} ifelse Level2? { [/Separation(All)/DeviceCMYK{0 0 0 1 pop}] setcolorspace } {0 setgray} ifelse 10 setlinewidth x .8 mul [7 3] { y mul 8 div 120 sub x 10 div exch moveto 0 y 4 div neg rlineto dup 0 rlineto 0 y 4 div rlineto closepath gsave Level2? {.2 setcolor} {.8 setgray} ifelse fill grestore stroke } forall pop grestore }bind def end def /$Oblique 1 dict dup begin /$BuildFont { currentglobal exch dup gcheck setglobal null copyfont begin /FontBasedOn currentdict/FontName known { FontName dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse def /FontName $fontname dup type/stringtype eq{cvn}if def /currentdistillerparams where {pop} { /FontInfo currentdict/FontInfo known {FontInfo null copyfont} {2 dict} ifelse dup begin /ItalicAngle $italicangle def /FontMatrix FontMatrix [1 0 ItalicAngle dup sin exch cos div 1 0 0] matrix concatmatrix readonly end 4 2 roll def def } ifelse FontName currentdict end definefont exch setglobal }bind def end def /$None 1 dict dup begin /$BuildFont{}bind def end def end def /$Oblique SetSubstituteStrategy /$findfontByEnum { dup type/stringtype eq{cvn}if dup/$fontname exch def $sname null eq {$str cvs dup length $slen sub $slen getinterval} {pop $sname} ifelse $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval /$match false def $SubstituteFont/$dstack countdictstack array dictstack put mark { $fontpat 0 $slen 7 add getinterval {/$match exch def exit} $str filenameforall } stopped { cleardictstack currentdict true $SubstituteFont/$dstack get { exch { 1 index eq {pop false} {true} ifelse } {begin false} ifelse } forall pop } if cleartomark /$slen 0 def $match false ne {$match(fonts/)anchorsearch pop pop cvn} {/Courier} ifelse }bind def /$ROS 1 dict dup begin /Adobe 4 dict dup begin /Japan1 [/Ryumin-Light/HeiseiMin-W3 /GothicBBB-Medium/HeiseiKakuGo-W5 /HeiseiMaruGo-W4/Jun101-Light]def /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def /GB1 [/STSong-Light/STHeiti-Regular]def /CNS1 [/MKai-Medium/MHei-Medium]def end def end def /$cmapname null def /$deepcopyfont { dup/FontType get 0 eq { 1 dict dup/FontName/copied put copyfont begin /FDepVector FDepVector copyarray 0 1 2 index length 1 sub { 2 copy get $deepcopyfont dup/FontName/copied put /copied exch definefont 3 copy put pop pop } for def currentdict end } {$Strategies/$Type3Underprint get exec} ifelse }bind def /$buildfontname { dup/CIDFont findresource/CIDSystemInfo get begin Registry length Ordering length Supplement 8 string cvs 3 copy length 2 add add add string dup 5 1 roll dup 0 Registry putinterval dup 4 index(-)putinterval dup 4 index 1 add Ordering putinterval 4 2 roll add 1 add 2 copy(-)putinterval end 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch anchorsearch {pop pop 3 2 roll putinterval cvn/$cmapname exch def} {pop pop pop pop pop} ifelse length $str 1 index(-)putinterval 1 add $str 1 index $cmapname $fontpat cvs putinterval $cmapname length add $str exch 0 exch getinterval cvn }bind def /$findfontByROS { /$fontname exch def $ROS Registry 2 copy known { get Ordering 2 copy known {get} {pop pop[]} ifelse } {pop pop[]} ifelse false exch { dup/CIDFont resourcestatus { pop pop save 1 index/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get} {false} ifelse exch pop exch restore {pop} {exch pop true exit} ifelse } {pop} ifelse } forall {$str cvs $buildfontname} { false(*) { save exch dup/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get not} {true} ifelse exch/CIDSystemInfo get dup/Registry get Registry eq exch/Ordering get Ordering eq and and {exch restore exch pop true exit} {pop restore} ifelse } $str/CIDFont resourceforall {$buildfontname} {$fontname $findfontByEnum} ifelse } ifelse }bind def end end currentdict/$error known currentdict/languagelevel known and dup {pop $error/SubstituteFont known} if dup {$error} {Adobe_CoolType_Core} ifelse begin { /SubstituteFont /CMap/Category resourcestatus { pop pop { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and { $sname null eq {dup $str cvs dup length $slen sub $slen getinterval cvn} {$sname} ifelse Adobe_CoolType_Data/InVMFontsByCMap get 1 index 2 copy known { get false exch { pop currentglobal { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } { FontDirectory 1 index known {exch pop true exit} { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } ifelse } ifelse } forall } {pop pop false} ifelse { exch pop exch pop } { dup/CMap resourcestatus { pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS } { 128 string cvs dup(-)search { 3 1 roll search { 3 1 roll pop {dup cvi} stopped {pop pop pop pop pop $findfontByEnum} { 4 2 roll pop pop exch length exch 2 index length 2 index sub exch 1 sub -1 0 { $str cvs dup length 4 index 0 4 index 4 3 roll add getinterval exch 1 index exch 3 index exch putinterval dup/CMap resourcestatus { pop pop 4 1 roll pop pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS true exit } {pop} ifelse } for dup type/booleantype eq {pop} {pop pop pop $findfontByEnum} ifelse } ifelse } {pop pop pop $findfontByEnum} ifelse } {pop pop $findfontByEnum} ifelse } ifelse } ifelse } {//SubstituteFont exec} ifelse /$slen 0 def end } } { { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and {$findfontByEnum} {//SubstituteFont exec} ifelse end } } ifelse bind readonly def Adobe_CoolType_Core/scfindfont/systemfindfont load put } { /scfindfont { $SubstituteFont begin dup systemfindfont dup/FontName known {dup/FontName get dup 3 index ne} {/noname true} ifelse dup { /$origfontnamefound 2 index def /$origfontname 4 index def/$substituteFound true def } if exch pop { $slen 0 gt $sname null ne 3 index length $slen gt or and { pop dup $findfontByEnum findfont dup maxlength 1 add dict begin {1 index/FID eq{pop pop}{def}ifelse} forall currentdict end definefont dup/FontName known{dup/FontName get}{null}ifelse $origfontnamefound ne { $origfontname $str cvs print ( substitution revised, using )print dup/FontName known {dup/FontName get}{(unspecified font)} ifelse $str cvs print(.\n)print } if } {exch pop} ifelse } {exch pop} ifelse end }bind def } ifelse end end Adobe_CoolType_Core_Defined not { Adobe_CoolType_Core/findfont { $SubstituteFont begin $depth 0 eq { /$fontname 1 index dup type/stringtype ne{$str cvs}if def /$substituteFound false def } if /$depth $depth 1 add def end scfindfont $SubstituteFont begin /$depth $depth 1 sub def $substituteFound $depth 0 eq and { $inVMIndex null ne {dup $inVMIndex $AddInVMFont} if $doSmartSub { currentdict/$Strategy known {$Strategy/$BuildFont get exec} if } if } if end }bind put } if } if end /$AddInVMFont { exch/FontName 2 copy known { get 1 dict dup begin exch 1 index gcheck def end exch Adobe_CoolType_Data/InVMFontsByCMap get exch $DictAdd } {pop pop pop} ifelse }bind def /$DictAdd { 2 copy known not {2 copy 4 index length dict put} if Level2? not { 2 copy get dup maxlength exch length 4 index length add lt 2 copy get dup length 4 index length add exch maxlength 1 index lt { 2 mul dict begin 2 copy get{forall}def 2 copy currentdict put end } {pop} ifelse } if get begin {def} forall end }bind def end end %%EndResource currentglobal true setglobal %%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%Copyright: Copyright 1987-2006 Adobe Systems Incorporated. %%Version: 1.23 0 systemdict/languagelevel known dup {currentglobal false setglobal} {false} ifelse exch userdict/Adobe_CoolType_Utility 2 copy known {2 copy get dup maxlength 27 add dict copy} {27 dict} ifelse put Adobe_CoolType_Utility begin /@eexecStartData def /@recognizeCIDFont null def /ct_Level2? exch def /ct_Clone? 1183615869 internaldict dup /CCRun known not exch/eCCRun known not ct_Level2? and or def ct_Level2? {globaldict begin currentglobal true setglobal} if /ct_AddStdCIDMap ct_Level2? {{ mark Adobe_CoolType_Utility/@recognizeCIDFont currentdict put { ((Hex)57 StartData 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8 cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec } stopped { cleartomark Adobe_CoolType_Utility/@recognizeCIDFont get countdictstack dup array dictstack exch 1 sub -1 0 { 2 copy get 3 index eq {1 index length exch sub 1 sub{end}repeat exit} {pop} ifelse } for pop pop Adobe_CoolType_Utility/@eexecStartData get eexec } {cleartomark} ifelse }} {{ Adobe_CoolType_Utility/@eexecStartData get eexec }} ifelse bind def userdict/cid_extensions known dup{cid_extensions/cid_UpdateDB known and}if { cid_extensions begin /cid_GetCIDSystemInfo { 1 index type/stringtype eq {exch cvn exch} if cid_extensions begin dup load 2 index known { 2 copy cid_GetStatusInfo dup null ne { 1 index load 3 index get dup null eq {pop pop cid_UpdateDB} { exch 1 index/Created get eq {exch pop exch pop} {pop cid_UpdateDB} ifelse } ifelse } {pop cid_UpdateDB} ifelse } {cid_UpdateDB} ifelse end }bind def end } if ct_Level2? {end setglobal} if /ct_UseNativeCapability? systemdict/composefont known def /ct_MakeOCF 35 dict def /ct_Vars 25 dict def /ct_GlyphDirProcs 6 dict def /ct_BuildCharDict 15 dict dup begin /charcode 2 string def /dst_string 1500 string def /nullstring()def /usewidths? true def end def ct_Level2?{setglobal}{pop}ifelse ct_GlyphDirProcs begin /GetGlyphDirectory { systemdict/languagelevel known {pop/CIDFont findresource/GlyphDirectory get} { 1 index/CIDFont findresource/GlyphDirectory get dup type/dicttype eq { dup dup maxlength exch length sub 2 index lt { dup length 2 index add dict copy 2 index /CIDFont findresource/GlyphDirectory 2 index put } if } if exch pop exch pop } ifelse + }def /+ { systemdict/languagelevel known { currentglobal false setglobal 3 dict begin /vm exch def } {1 dict begin} ifelse /$ exch def systemdict/languagelevel known { vm setglobal /gvm currentglobal def $ gcheck setglobal } if ?{$ begin}if }def /?{$ type/dicttype eq}def /|{ userdict/Adobe_CoolType_Data known { Adobe_CoolType_Data/AddWidths? known { currentdict Adobe_CoolType_Data begin begin AddWidths? { Adobe_CoolType_Data/CC 3 index put ?{def}{$ 3 1 roll put}ifelse CC charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore currentfont/Widths get exch CC exch put } {?{def}{$ 3 1 roll put}ifelse} ifelse end end } {?{def}{$ 3 1 roll put}ifelse} ifelse } {?{def}{$ 3 1 roll put}ifelse} ifelse }def /! { ?{end}if systemdict/languagelevel known {gvm setglobal} if end }def /:{string currentfile exch readstring pop}executeonly def end ct_MakeOCF begin /ct_cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_CID_STR_SIZE 8000 def /ct_mkocfStr100 100 string def /ct_defaultFontMtx[.001 0 0 .001 0 0]def /ct_1000Mtx[1000 0 0 1000 0 0]def /ct_raise{exch cvx exch errordict exch get exec stop}bind def /ct_reraise {cvx $error/errorname get(Error: )print dup( )cvs print errordict exch get exec stop }bind def /ct_cvnsi { 1 index add 1 sub 1 exch 0 4 1 roll { 2 index exch get exch 8 bitshift add } for exch pop }bind def /ct_GetInterval { Adobe_CoolType_Utility/ct_BuildCharDict get begin /dst_index 0 def dup dst_string length gt {dup string/dst_string exch def} if 1 index ct_CID_STR_SIZE idiv /arrayIndex exch def 2 index arrayIndex get 2 index arrayIndex ct_CID_STR_SIZE mul sub { dup 3 index add 2 index length le { 2 index getinterval dst_string dst_index 2 index putinterval length dst_index add/dst_index exch def exit } { 1 index length 1 index sub dup 4 1 roll getinterval dst_string dst_index 2 index putinterval pop dup dst_index add/dst_index exch def sub /arrayIndex arrayIndex 1 add def 2 index dup length arrayIndex gt {arrayIndex get} { pop exit } ifelse 0 } ifelse } loop pop pop pop dst_string 0 dst_index getinterval end }bind def ct_Level2? { /ct_resourcestatus currentglobal mark true setglobal {/unknowninstancename/Category resourcestatus} stopped {cleartomark setglobal true} {cleartomark currentglobal not exch setglobal} ifelse { { mark 3 1 roll/Category findresource begin ct_Vars/vm currentglobal put ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse ct_Vars/vm get setglobal end } } {{resourcestatus}} ifelse bind def /CIDFont/Category ct_resourcestatus {pop pop} { currentglobal true setglobal /Generic/Category findresource dup length dict copy dup/InstanceType/dicttype put /CIDFont exch/Category defineresource pop setglobal } ifelse ct_UseNativeCapability? { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } if } { /ct_Category 2 dict begin /CIDFont 10 dict def /ProcSet 2 dict def currentdict end def /defineresource { ct_Category 1 index 2 copy known { get dup dup maxlength exch length eq { dup length 10 add dict copy ct_Category 2 index 2 index put } if 3 index 3 index put pop exch pop } {pop pop/defineresource/undefined ct_raise} ifelse }bind def /findresource { ct_Category 1 index 2 copy known { get 2 index 2 copy known {get 3 1 roll pop pop} {pop pop/findresource/undefinedresource ct_raise} ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /resourcestatus { ct_Category 1 index 2 copy known { get 2 index known exch pop exch pop { 0 -1 true } { false } ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /ct_resourcestatus/resourcestatus load def } ifelse /ct_CIDInit 2 dict begin /ct_cidfont_stream_init { { dup(Binary)eq { pop null currentfile ct_Level2? { {cid_BYTE_COUNT()/SubFileDecode filter} stopped {pop pop pop} if } if /readstring load exit } if dup(Hex)eq { pop currentfile ct_Level2? { {null exch/ASCIIHexDecode filter/readstring} stopped {pop exch pop(>)exch/readhexstring} if } {(>)exch/readhexstring} ifelse load exit } if /StartData/typecheck ct_raise } loop cid_BYTE_COUNT ct_CID_STR_SIZE le { 2 copy cid_BYTE_COUNT string exch exec pop 1 array dup 3 -1 roll 0 exch put } { cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi dup array exch 2 sub 0 exch 1 exch { 2 copy 5 index ct_CID_STR_SIZE string 6 index exec pop put pop } for 2 index cid_BYTE_COUNT ct_CID_STR_SIZE mod string 3 index exec pop 1 index exch 1 index length 1 sub exch put } ifelse cid_CIDFONT exch/GlyphData exch put 2 index null eq { pop pop pop } { pop/readstring load 1 string exch { 3 copy exec pop dup length 0 eq { pop pop pop pop pop true exit } if 4 index eq { pop pop pop pop false exit } if } loop pop } ifelse }bind def /StartData { mark { currentdict dup/FDArray get 0 get/FontMatrix get 0 get 0.001 eq { dup/CDevProc known not { /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known {get} { pop pop {pop pop pop pop pop 0 -1000 7 index 2 div 880} } ifelse def } if } { /CDevProc { pop pop pop pop pop 0 1 cid_temp/cid_CIDFONT get /FDArray get 0 get /FontMatrix get 0 get div 7 index 2 div 1 index 0.88 mul }def } ifelse /cid_temp 15 dict def cid_temp begin /cid_CIDFONT exch def 3 copy pop dup/cid_BYTE_COUNT exch def 0 gt { ct_cidfont_stream_init FDArray { /Private get dup/SubrMapOffset known { begin /Subrs SubrCount array def Subrs SubrMapOffset SubrCount SDBytes ct_Level2? { currentdict dup/SubrMapOffset undef dup/SubrCount undef /SDBytes undef } if end /cid_SD_BYTES exch def /cid_SUBR_COUNT exch def /cid_SUBR_MAP_OFFSET exch def /cid_SUBRS exch def cid_SUBR_COUNT 0 gt { GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi 0 1 cid_SUBR_COUNT 1 sub { exch 1 index 1 add cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add GlyphData exch cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi cid_SUBRS 4 2 roll GlyphData exch 4 index 1 index sub ct_GetInterval dup length string copy put } for pop } if } {pop} ifelse } forall } if cleartomark pop pop end CIDFontName currentdict/CIDFont defineresource pop end end } stopped {cleartomark/StartData ct_reraise} if }bind def currentdict end def /ct_saveCIDInit { /CIDInit/ProcSet ct_resourcestatus {true} {/CIDInitC/ProcSet ct_resourcestatus} ifelse { pop pop /CIDInit/ProcSet findresource ct_UseNativeCapability? {pop null} {/CIDInit ct_CIDInit/ProcSet defineresource pop} ifelse } {/CIDInit ct_CIDInit/ProcSet defineresource pop null} ifelse ct_Vars exch/ct_oldCIDInit exch put }bind def /ct_restoreCIDInit { ct_Vars/ct_oldCIDInit get dup null ne {/CIDInit exch/ProcSet defineresource pop} {pop} ifelse }bind def /ct_BuildCharSetUp { 1 index begin CIDFont begin Adobe_CoolType_Utility/ct_BuildCharDict get begin /ct_dfCharCode exch def /ct_dfDict exch def CIDFirstByte ct_dfCharCode add dup CIDCount ge {pop 0} if /cid exch def { GlyphDirectory cid 2 copy known {get} {pop pop nullstring} ifelse dup length FDBytes sub 0 gt { dup FDBytes 0 ne {0 FDBytes ct_cvnsi} {pop 0} ifelse /fdIndex exch def dup length FDBytes sub FDBytes exch getinterval /charstring exch def exit } { pop cid 0 eq {/charstring nullstring def exit} if /cid 0 def } ifelse } loop }def /ct_SetCacheDevice { 0 0 moveto dup stringwidth 3 -1 roll true charpath pathbbox 0 -1000 7 index 2 div 880 setcachedevice2 0 0 moveto }def /ct_CloneSetCacheProc { 1 eq { stringwidth pop -2 div -880 0 -1000 setcharwidth moveto } { usewidths? { currentfont/Widths get cid 2 copy known {get exch pop aload pop} {pop pop stringwidth} ifelse } {stringwidth} ifelse setcharwidth 0 0 moveto } ifelse }def /ct_Type3ShowCharString { ct_FDDict fdIndex 2 copy known {get} { currentglobal 3 1 roll 1 index gcheck setglobal ct_Type1FontTemplate dup maxlength dict copy begin FDArray fdIndex get dup/FontMatrix 2 copy known {get} {pop pop ct_defaultFontMtx} ifelse /FontMatrix exch dup length array copy def /Private get /Private exch def /Widths rootfont/Widths get def /CharStrings 1 dict dup/.notdef dup length string copy put def currentdict end /ct_Type1Font exch definefont dup 5 1 roll put setglobal } ifelse dup/CharStrings get 1 index/Encoding get ct_dfCharCode get charstring put rootfont/WMode 2 copy known {get} {pop pop 0} ifelse exch 1000 scalefont setfont ct_str1 0 ct_dfCharCode put ct_str1 exch ct_dfSetCacheProc ct_SyntheticBold { currentpoint ct_str1 show newpath moveto ct_str1 true charpath ct_StrokeWidth setlinewidth stroke } {ct_str1 show} ifelse }def /ct_Type4ShowCharString { ct_dfDict ct_dfCharCode charstring FDArray fdIndex get dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not {ct_1000Mtx matrix concatmatrix concat} {pop} ifelse /Private get Adobe_CoolType_Utility/ct_Level2? get not { ct_dfDict/Private 3 -1 roll {put} 1183615869 internaldict/superexec get exec } if 1183615869 internaldict Adobe_CoolType_Utility/ct_Level2? get {1 index} {3 index/Private get mark 6 1 roll} ifelse dup/RunInt known {/RunInt get} {pop/CCRun} ifelse get exec Adobe_CoolType_Utility/ct_Level2? get not {cleartomark} if }bind def /ct_BuildCharIncremental { { Adobe_CoolType_Utility/ct_MakeOCF get begin ct_BuildCharSetUp ct_ShowCharString } stopped {stop} if end end end end }bind def /BaseFontNameStr(BF00)def /ct_Type1FontTemplate 14 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /PaintType 0 def currentdict end def /BaseFontTemplate 11 dict begin /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /BuildChar/ct_BuildCharIncremental load def ct_Clone? { /FontType 3 def /ct_ShowCharString/ct_Type3ShowCharString load def /ct_dfSetCacheProc/ct_CloneSetCacheProc load def /ct_SyntheticBold false def /ct_StrokeWidth 1 def } { /FontType 4 def /Private 1 dict dup/lenIV 4 put def /CharStrings 1 dict dup/.notdefput def /PaintType 0 def /ct_ShowCharString/ct_Type4ShowCharString load def } ifelse /ct_str1 1 string def currentdict end def /BaseFontDictSize BaseFontTemplate length 5 add def /ct_matrixeq { true 0 1 5 { dup 4 index exch get exch 3 index exch get eq and dup not {exit} if } for exch pop exch pop }bind def /ct_makeocf { 15 dict begin exch/WMode exch def exch/FontName exch def /FontType 0 def /FMapType 2 def dup/FontMatrix known {dup/FontMatrix get/FontMatrix exch def} {/FontMatrix matrix def} ifelse /bfCount 1 index/CIDCount get 256 idiv 1 add dup 256 gt{pop 256}if def /Encoding 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for bfCount 1 255{2 copy bfCount put pop}for def /FDepVector bfCount dup 256 lt{1 add}if array def BaseFontTemplate BaseFontDictSize dict copy begin /CIDFont exch def CIDFont/FontBBox known {CIDFont/FontBBox get/FontBBox exch def} if CIDFont/CDevProc known {CIDFont/CDevProc get/CDevProc exch def} if currentdict end BaseFontNameStr 3(0)putinterval 0 1 bfCount dup 256 eq{1 sub}if { FDepVector exch 2 index BaseFontDictSize dict copy begin dup/CIDFirstByte exch 256 mul def FontType 3 eq {/ct_FDDict 2 dict def} if currentdict end 1 index 16 BaseFontNameStr 2 2 getinterval cvrs pop BaseFontNameStr exch definefont put } for ct_Clone? {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def} if FontName currentdict end definefont ct_Clone? { gsave dup 1000 scalefont setfont ct_BuildCharDict begin /usewidths? false def currentfont/Widths get begin exch/CIDFont get/GlyphDirectory get { pop dup charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore def } forall end /usewidths? true def end grestore } {exch pop} ifelse }bind def currentglobal true setglobal /ct_ComposeFont { ct_UseNativeCapability? { 2 index/CMap ct_resourcestatus {pop pop exch pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 3 index def /CMapVersion 1.000 def /CMapType 1 def exch/WMode exch def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search { dup length string copy exch pop exch pop } {pop(Identity)} ifelse } {pop (Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { 3 2 roll pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def setglobal /ct_MakeIdentity { ct_UseNativeCapability? { 1 index/CMap ct_resourcestatus {pop pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 2 index def /CMapVersion 1.000 def /CMapType 1 def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search {dup length string copy exch pop exch pop} {pop(Identity)} ifelse } {pop(Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { exch pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def currentdict readonly pop end end %%EndResource setglobal %%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0 %%Copyright: Copyright 1987-2004 Adobe Systems Incorporated. %%Version: 1.0 0 userdict/ct_T42Dict 15 dict put ct_T42Dict begin /Is2015? { version cvi 2015 ge }bind def /AllocGlyphStorage { Is2015? { pop } { {string}forall }ifelse }bind def /Type42DictBegin { 25 dict begin /FontName exch def /CharStrings 256 dict begin /.notdef 0 def currentdict end def /Encoding exch def /PaintType 0 def /FontType 42 def /FontMatrix[1 0 0 1 0 0]def 4 array astore cvx/FontBBox exch def /sfnts }bind def /Type42DictEnd { currentdict dup/FontName get exch definefont end ct_T42Dict exch dup/FontName get exch put }bind def /RD{string currentfile exch readstring pop}executeonly def /PrepFor2015 { Is2015? { /GlyphDirectory 16 dict def sfnts 0 get dup 2 index (glyx) putinterval 2 index (locx) putinterval pop pop } { pop pop }ifelse }bind def /AddT42Char { Is2015? { /GlyphDirectory get begin def end pop pop } { /sfnts get 4 index get 3 index 2 index putinterval pop pop pop pop }ifelse }bind def /T0AddT42Mtx2 { /CIDFont findresource/Metrics2 get begin def end }bind def end %%EndResource currentglobal true setglobal %%BeginFile: MMFauxFont.prc %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. %%All Rights Reserved. userdict /ct_EuroDict 10 dict put ct_EuroDict begin /ct_CopyFont { { 1 index /FID ne {def} {pop pop} ifelse} forall } def /ct_GetGlyphOutline { gsave initmatrix newpath exch findfont dup length 1 add dict begin ct_CopyFont /Encoding Encoding dup length array copy dup 4 -1 roll 0 exch put def currentdict end /ct_EuroFont exch definefont 1000 scalefont setfont 0 0 moveto [ <00> stringwidth <00> false charpath pathbbox [ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall grestore counttomark 8 add } def /ct_MakeGlyphProc { ] cvx /ct_PSBuildGlyph cvx ] cvx } def /ct_PSBuildGlyph { gsave 8 -1 roll pop 7 1 roll 6 -2 roll ct_FontMatrix transform 6 2 roll 4 -2 roll ct_FontMatrix transform 4 2 roll ct_FontMatrix transform currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse dup 9 1 roll { currentdict /StrokeWidth 2 copy known { get 2 div 0 ct_FontMatrix dtransform pop 5 1 roll 4 -1 roll 4 index sub 4 1 roll 3 -1 roll 4 index sub 3 1 roll exch 4 index add exch 4 index add 5 -1 roll pop } { pop pop } ifelse } if setcachedevice ct_FontMatrix concat ct_PSPathOps begin exec end { currentdict /StrokeWidth 2 copy known { get } { pop pop 0 } ifelse setlinewidth stroke } { fill } ifelse grestore } def /ct_PSPathOps 4 dict dup begin /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def end def /ct_matrix1000 [1000 0 0 1000 0 0] def /ct_AddGlyphProc { 2 index findfont dup length 4 add dict begin ct_CopyFont /CharStrings CharStrings dup length 1 add dict copy begin 3 1 roll def currentdict end def /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def /ct_PSBuildGlyph /ct_PSBuildGlyph load def /ct_PSPathOps /ct_PSPathOps load def currentdict end definefont pop } def systemdict /languagelevel known { /ct_AddGlyphToPrinterFont { 2 copy ct_GetGlyphOutline 3 add -1 roll restore ct_MakeGlyphProc ct_AddGlyphProc } def } { /ct_AddGlyphToPrinterFont { pop pop restore Adobe_CTFauxDict /$$$FONTNAME get /Euro Adobe_CTFauxDict /$$$SUBSTITUTEBASE get ct_EuroDict exch get ct_AddGlyphProc } def } ifelse /AdobeSansMM { 556 0 24 -19 541 703 { 541 628 m 510 669 442 703 354 703 c 201 703 117 607 101 444 c 50 444 l 25 372 l 97 372 l 97 301 l 49 301 l 24 229 l 103 229 l 124 67 209 -19 350 -19 c 435 -19 501 25 509 32 c 509 131 l 492 105 417 60 343 60 c 267 60 204 127 197 229 c 406 229 l 430 301 l 191 301 l 191 372 l 455 372 l 479 444 l 194 444 l 201 531 245 624 348 624 c 433 624 484 583 509 534 c cp 556 0 m } ct_PSBuildGlyph } def /AdobeSerifMM { 500 0 10 -12 484 692 { 347 298 m 171 298 l 170 310 170 322 170 335 c 170 362 l 362 362 l 374 403 l 172 403 l 184 580 244 642 308 642 c 380 642 434 574 457 457 c 481 462 l 474 691 l 449 691 l 433 670 429 657 410 657 c 394 657 360 692 299 692 c 204 692 94 604 73 403 c 22 403 l 10 362 l 70 362 l 69 352 69 341 69 330 c 69 319 69 308 70 298 c 22 298 l 10 257 l 73 257 l 97 57 216 -12 295 -12 c 364 -12 427 25 484 123 c 458 142 l 425 101 384 37 316 37 c 256 37 189 84 173 257 c 335 257 l cp 500 0 m } ct_PSBuildGlyph } def end %%EndFile setglobal Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end %%BeginResource: procset Adobe_AGM_Image 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Image 71 dict dup begin put /Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def /nd{ null def }bind def /AGMIMG_&image nd /AGMIMG_&colorimage nd /AGMIMG_&imagemask nd /AGMIMG_mbuf()def /AGMIMG_ybuf()def /AGMIMG_kbuf()def /AGMIMG_c 0 def /AGMIMG_m 0 def /AGMIMG_y 0 def /AGMIMG_k 0 def /AGMIMG_tmp nd /AGMIMG_imagestring0 nd /AGMIMG_imagestring1 nd /AGMIMG_imagestring2 nd /AGMIMG_imagestring3 nd /AGMIMG_imagestring4 nd /AGMIMG_imagestring5 nd /AGMIMG_cnt nd /AGMIMG_fsave nd /AGMIMG_colorAry nd /AGMIMG_override nd /AGMIMG_name nd /AGMIMG_maskSource nd /AGMIMG_flushfilters nd /invert_image_samples nd /knockout_image_samples nd /img nd /sepimg nd /devnimg nd /idximg nd /ds { Adobe_AGM_Core begin Adobe_AGM_Image begin /AGMIMG_&image systemdict/image get def /AGMIMG_&imagemask systemdict/imagemask get def /colorimage where{ pop /AGMIMG_&colorimage/colorimage ldf }if end end }def /ps { Adobe_AGM_Image begin /AGMIMG_ccimage_exists{/customcolorimage where { pop /Adobe_AGM_OnHost_Seps where { pop false }{ /Adobe_AGM_InRip_Seps where { pop false }{ true }ifelse }ifelse }{ false }ifelse }bdf level2{ /invert_image_samples { Adobe_AGM_Image/AGMIMG_tmp Decode length ddf /Decode[Decode 1 get Decode 0 get]def }def /knockout_image_samples { Operator/imagemask ne{ /Decode[1 1]def }if }def }{ /invert_image_samples { {1 exch sub}currenttransfer addprocs settransfer }def /knockout_image_samples { {pop 1}currenttransfer addprocs settransfer }def }ifelse /img/imageormask ldf /sepimg/sep_imageormask ldf /devnimg/devn_imageormask ldf /idximg/indexed_imageormask ldf /_ctype 7 def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall }def /pt { end }def /dt { }def /AGMIMG_flushfilters { dup type/arraytype ne {1 array astore}if dup 0 get currentfile ne {dup 0 get flushfile}if { dup type/filetype eq { dup status 1 index currentfile ne and {closefile} {pop} ifelse }{pop}ifelse }forall }def /AGMIMG_init_common { currentdict/T known{/ImageType/T ldf currentdict/T undef}if currentdict/W known{/Width/W ldf currentdict/W undef}if currentdict/H known{/Height/H ldf currentdict/H undef}if currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if currentdict/D known{/Decode/D ldf currentdict/D undef}if currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if currentdict/O known{ /Operator/O load 1 eq{ /imagemask }{ /O load 2 eq{ /image }{ /colorimage }ifelse }ifelse def currentdict/O undef }if currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if currentdict/I known{/Interpolate/I ldf currentdict/I undef}if currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if /DataSource load xcheck not{ DataSource type/arraytype eq{ DataSource 0 get type/filetype eq{ /_Filters DataSource def currentdict/MultipleDataSources known not{ /DataSource DataSource dup length 1 sub get def }if }if }if currentdict/MultipleDataSources known not{ /MultipleDataSources DataSource type/arraytype eq{ DataSource length 1 gt } {false}ifelse def }if }if /NComponents Decode length 2 div def currentdict/SkipImageProc known not{/SkipImageProc{false}def}if }bdf /imageormask_sys { begin AGMIMG_init_common save mark level2{ currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load AGMIMG_&imagemask }{ BitsPerComponent ImageMatrix/DataSource load AGMIMG_&image }ifelse }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if cleartomark restore end }def /overprint_plate { currentoverprint{ 0 get dup type/nametype eq{ dup/DeviceGray eq{ pop AGMCORE_black_plate not }{ /DeviceCMYK eq{ AGMCORE_is_cmyk_sep not }if }ifelse }{ false exch { AGMOHS_sepink eq or }forall not }ifelse }{ pop false }ifelse }def /process_mask { level3{ dup begin /ImageType 1 def end 4 dict begin /DataDict exch def /ImageType 3 def /InterleaveType 3 def /MaskDict 9 dict begin /ImageType 1 def /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def /ImageMatrix[Width 0 0 Height neg 0 Height]def /NComponents 1 def /BitsPerComponent 1 def /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def currentdict end def currentdict end }if }def /use_mask { dup/Mask known {dup/Mask get}{false}ifelse }def /imageormask { begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata } { save mark level2 AGMCORE_host_sep not and{ currentdict Operator/imagemask eq DeviceN_PS2 not and{ imagemask }{ AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{ [/Separation/Black/DeviceGray{}]setcolorspace /Decode[Decode 1 get Decode 0 get]def }if use_mask{ process_mask image }{ DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and { Names convert_to_process not{ 2 dict begin /imageDict xdf /names_index 0 def gsave imageDict write_image_file{ Names{ dup(None)ne{ [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace Operator imageDict read_image_file names_index 0 eq{true setoverprint}if /names_index names_index 1 add def }{ pop }ifelse }forall close_image_file }if grestore end }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load /Adobe_AGM_OnHost_Seps where{ pop imagemask }{ currentgray 1 ne{ currentdict imageormask_sys }{ currentoverprint not{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }ifelse }{ BitsPerComponent ImageMatrix MultipleDataSources{ 0 1 NComponents 1 sub{ DataSource exch get }for }{ /DataSource load }ifelse Operator/colorimage eq{ AGMCORE_host_sep{ MultipleDataSources level2 or NComponents 4 eq and{ AGMCORE_is_cmyk_sep{ MultipleDataSources{ /DataSource DataSource 0 get xcheck { [ DataSource 0 get/exec cvx DataSource 1 get/exec cvx DataSource 2 get/exec cvx DataSource 3 get/exec cvx /AGMCORE_get_ink_data cvx ]cvx }{ DataSource aload pop AGMCORE_get_ink_data }ifelse def }{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul /DataSource load filter_cmyk 0()/SubFileDecode filter def }ifelse /Decode[Decode 0 get Decode 1 get]def /MultipleDataSources false def /NComponents 1 def /Operator/image def invert_image_samples 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }{ MultipleDataSources NComponents AGMIMG_&colorimage }ifelse }{ true NComponents colorimage }ifelse }{ Operator/image eq{ AGMCORE_host_sep{ /DoImage true def currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse { AGMCORE_black_plate not Operator/imagemask ne and{ /DoImage false def currentdict ignoreimagedata }if }if 1 AGMCORE_&setgray DoImage {currentdict imageormask_sys}if }{ use_mask{ process_mask image }{ image }ifelse }ifelse }{ Operator/knockout eq{ pop pop pop pop pop currentcolorspace overprint_plate not{ knockout_unitsq }if }if }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /sep_imageormask { /sep_colorspace_dict AGMCORE_gget begin CSA map_csa begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_avoid_L2_sep_space{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def }if AGMIMG_ccimage_exists MappedCSA 0 get/DeviceCMYK eq and currentdict/Components known and Name()ne and Name(All)ne and Operator/image eq and AGMCORE_producing_seps not and level2 not and { Width Height BitsPerComponent ImageMatrix [ /DataSource load/exec cvx { 0 1 2 index length 1 sub{ 1 index exch 2 copy get 255 xor put }for }/exec cvx ]cvx bind MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Name findcmykcustomcolor customcolorimage }{ AGMCORE_producing_seps not{ level2{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{ [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if currentdict imageormask }{ currentdict Operator/imagemask eq{ imageormask }{ sep_imageormask_lev1 }ifelse }ifelse }{ AGMCORE_host_sep{ Operator/knockout eq{ currentdict/ImageMatrix get concat knockout_unitsq }{ currentgray 1 ne{ AGMCORE_is_cmyk_sep Name(All)ne and{ level2{ Name AGMCORE_IsSeparationAProcessColor { Operator/imagemask eq{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor }if }{ invert_image_samples }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ [/Separation Name[/DeviceGray] { sep_colorspace_proc AGMCORE_get_ink_data 1 exch sub }bind ]AGMCORE_&setcolorspace /sep_tint AGMCORE_gget AGMCORE_&setcolor }if }ifelse currentdict imageormask_sys }{ currentdict Operator/imagemask eq{ imageormask_sys }{ sep_image_lev1_sep }ifelse }ifelse }{ Operator/imagemask ne{ invert_image_samples }if currentdict imageormask_sys }ifelse }{ currentoverprint not Name(All)eq or Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ currentcolorspace 0 get/Separation ne{ [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if }if currentoverprint MappedCSA 0 get/DeviceCMYK eq and Name AGMCORE_IsSeparationAProcessColor not and //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse Name(All)ne and{ imageormask_l2_overprint }{ currentdict imageormask }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end }def /colorSpaceElemCnt { mark currentcolor counttomark dup 2 add 1 roll cleartomark }bdf /devn_sep_datasource { 1 dict begin /dataSource xdf [ 0 1 dataSource length 1 sub{ dup currentdict/dataSource get/exch cvx/get cvx/exec cvx /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx }for ]cvx bind end }bdf /devn_alt_datasource { 11 dict begin /convProc xdf /origcolorSpaceElemCnt xdf /origMultipleDataSources xdf /origBitsPerComponent xdf /origDecode xdf /origDataSource xdf /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def /DataSource origMultipleDataSources { [ BitsPerComponent 8 idiv origDecode length 2 idiv mul string 0 1 origDecode length 2 idiv 1 sub { dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch origDataSource exch get 0()/SubFileDecode filter BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx }for ]bind cvx }{origDataSource}ifelse 0()/SubFileDecode filter def [ origcolorSpaceElemCnt string 0 2 origDecode length 2 sub { dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx }for /convProc load/exec cvx origcolorSpaceElemCnt 1 sub -1 0 { /dup cvx 2/add cvx/index cvx 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx }for ]bind cvx 0()/SubFileDecode filter end }bdf /devn_imageormask { /devicen_colorspace_dict AGMCORE_gget begin CSA map_csa 2 dict begin dup /srcDataStrs[3 -1 roll begin AGMIMG_init_common currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi { dup 65535 gt{1 add 2 div cvi}{exit}ifelse }loop string }repeat end]def /dstDataStr srcDataStrs 0 get length string def begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_producing_seps not{ level3 not{ Operator/imagemask ne{ /DataSource[[ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def /MultipleDataSources true def /Decode colorSpaceElemCnt[exch{0 1}repeat]def }if }if currentdict imageormask }{ AGMCORE_host_sep{ Names convert_to_process{ CSA get_csa_by_name 0 get/DeviceCMYK eq{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource filter_cmyk 0()/SubFileDecode filter def /MultipleDataSources false def /Decode[1 0]def /DeviceGray setcolorspace currentdict imageormask_sys }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate{ /DataSource DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource /MultipleDataSources false def /Decode colorSpaceElemCnt[exch{0 1}repeat]def currentdict imageormask_sys }{ gsave knockout_unitsq grestore currentdict consumeimagedata }ifelse }ifelse } { /devicen_colorspace_dict AGMCORE_gget/names_index known{ Operator/imagemask ne{ MultipleDataSources{ /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def /MultipleDataSources false def }{ /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def }ifelse invert_image_samples }if currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ currentdict imageormask }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end end }def /imageormask_l2_overprint { currentdict currentcmykcolor add add add 0 eq{ currentdict consumeimagedata }{ level3{ currentcmykcolor /AGMIMG_k xdf /AGMIMG_y xdf /AGMIMG_m xdf /AGMIMG_c xdf Operator/imagemask eq{ [/DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ]/DeviceCMYK{}]setcolorspace AGMIMG_c 0 ne{AGMIMG_c}if AGMIMG_m 0 ne{AGMIMG_m}if AGMIMG_y 0 ne{AGMIMG_y}if AGMIMG_k 0 ne{AGMIMG_k}if setcolor }{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def [/Indexed [ /DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ] /DeviceCMYK{ AGMIMG_k 0 eq{0}if AGMIMG_y 0 eq{0 exch}if AGMIMG_m 0 eq{0 3 1 roll}if AGMIMG_c 0 eq{0 4 1 roll}if } ] 255 { 255 div mark exch dup dup dup AGMIMG_k 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_y 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_m 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_c 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop counttomark 1 roll }{ pop }ifelse counttomark 1 add -1 roll pop } ]setcolorspace }ifelse imageormask_sys }{ write_image_file{ currentcmykcolor 0 ne{ [/Separation/Black/DeviceGray{}]setcolorspace gsave /Black [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Yellow/DeviceGray{}]setcolorspace gsave /Yellow [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Magenta/DeviceGray{}]setcolorspace gsave /Magenta [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Cyan/DeviceGray{}]setcolorspace gsave /Cyan [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if close_image_file }{ imageormask }ifelse }ifelse }ifelse }def /indexed_imageormask { begin AGMIMG_init_common save mark currentdict AGMCORE_host_sep{ Operator/knockout eq{ /indexed_colorspace_dict AGMCORE_gget dup/CSA known{ /CSA get get_csa_by_name }{ /Names get }ifelse overprint_plate not{ knockout_unitsq }if }{ Indexed_DeviceN{ /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{ indexed_image_lev2_sep }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }{ AGMCORE_is_cmyk_sep{ Operator/imagemask eq{ imageormask_sys }{ level2{ indexed_image_lev2_sep }{ indexed_image_lev1_sep }ifelse }ifelse }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ level2{ Indexed_DeviceN{ /indexed_colorspace_dict AGMCORE_gget begin }{ /indexed_colorspace_dict AGMCORE_gget dup null ne { begin currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and AGMCORE_in_rip_sep and{ [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup] setcolorspace }if end } {pop}ifelse }ifelse imageormask Indexed_DeviceN{ end }if }{ Operator/imagemask eq{ imageormask }{ indexed_imageormask_lev1 }ifelse }ifelse }ifelse cleartomark restore currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /indexed_image_lev2_sep { /indexed_colorspace_dict AGMCORE_gget begin begin Indexed_DeviceN not{ currentcolorspace dup 1/DeviceGray put dup 3 currentcolorspace 2 get 1 add string 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub { dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put }for put setcolorspace }if currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse end end }def /OPIimage { dup type/dicttype ne{ 10 dict begin /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /ImageType 1 def /Decode[0 1 def] currentdict end }if dup begin /NComponents 1 cdndf /MultipleDataSources false cdndf /SkipImageProc{false}cdndf /Decode[ 0 currentcolorspace 0 get/Indexed eq{ 2 BitsPerComponent exp 1 sub }{ 1 }ifelse ]cdndf /Operator/image cdndf end /sep_colorspace_dict AGMCORE_gget null eq{ imageormask }{ gsave dup begin invert_image_samples end sep_imageormask grestore }ifelse }def /cachemask_level2 { 3 dict begin /LZWEncode filter/WriteFilter xdf /readBuffer 256 string def /ReadFilter currentfile 0(%EndMask)/SubFileDecode filter /ASCII85Decode filter /RunLengthDecode filter def { ReadFilter readBuffer readstring exch WriteFilter exch writestring not{exit}if }loop WriteFilter closefile end }def /spot_alias { /mapto_sep_imageormask { dup type/dicttype ne{ 12 dict begin /ImageType 1 def /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /MultipleDataSources false def }{ begin }ifelse /Decode[/customcolor_tint AGMCORE_gget 0]def /Operator/image def /SkipImageProc{false}def currentdict end sep_imageormask }bdf /customcolorimage { Adobe_AGM_Image/AGMIMG_colorAry xddf /customcolor_tint AGMCORE_gget << /Name AGMIMG_colorAry 4 get /CSA[/DeviceCMYK] /TintMethod/Subtractive /TintProc null /MappedCSA null /NComponents 4 /Components[AGMIMG_colorAry aload pop pop] >> setsepcolorspace mapto_sep_imageormask }ndf Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put /customcolorimage { Adobe_AGM_Image/AGMIMG_override false put current_spot_alias{dup 4 get map_alias}{false}ifelse { false set_spot_alias /customcolor_tint AGMCORE_gget exch setsepcolorspace pop mapto_sep_imageormask true set_spot_alias }{ //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec }ifelse }bdf }def /snap_to_device { 6 dict begin matrix currentmatrix dup 0 get 0 eq 1 index 3 get 0 eq and 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop { 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def 0 0 transform AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch itransform/AGMIMG_llY exch def/AGMIMG_llX exch def 1 1 transform AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch itransform/AGMIMG_urY exch def/AGMIMG_urX exch def [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat }{ }ifelse end }def level2 not{ /colorbuf { 0 1 2 index length 1 sub{ dup 2 index exch get 255 exch sub 2 index 3 1 roll put }for }def /tint_image_to_color { begin Width Height BitsPerComponent ImageMatrix /DataSource load end Adobe_AGM_Image begin /AGMIMG_mbuf 0 string def /AGMIMG_ybuf 0 string def /AGMIMG_kbuf 0 string def { colorbuf dup length AGMIMG_mbuf length ne { dup length dup dup /AGMIMG_mbuf exch string def /AGMIMG_ybuf exch string def /AGMIMG_kbuf exch string def }if dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop } addprocs {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage end }def /sep_imageormask_lev1 { begin MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ { 255 mul round cvi GrayLookup exch get }currenttransfer addprocs settransfer currentdict imageormask }{ /sep_colorspace_dict AGMCORE_gget/Components known{ MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{ {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer currentdict imageormask }{ currentcolortransfer {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }{ MappedCSA 0 get/DeviceGray eq{ {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer currentdict imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }ifelse }ifelse }ifelse end }def /sep_image_lev1_sep { begin /sep_colorspace_dict AGMCORE_gget/Components known{ Components aload pop Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf {AGMIMG_c mul 1 exch sub} {AGMIMG_m mul 1 exch sub} {AGMIMG_y mul 1 exch sub} {AGMIMG_k mul 1 exch sub} }{ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub} {255 mul round cvi ColorLookup exch get 1 get 1 exch sub} {255 mul round cvi ColorLookup exch get 2 get 1 exch sub} {255 mul round cvi ColorLookup exch get 3 get 1 exch sub} }ifelse AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end }def /indexed_imageormask_lev1 { /indexed_colorspace_dict AGMCORE_gget begin begin currentdict MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceGray eq{ {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }ifelse }ifelse }ifelse end end }def /indexed_image_lev1_sep { /indexed_colorspace_dict AGMCORE_gget begin begin {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end end }def }if end systemdict/setpacking known {setpacking}if %%EndResource currentdict Adobe_AGM_Utils eq {end} if %%EndProlog %%BeginSetup Adobe_AGM_Utils begin 2 2010 Adobe_AGM_Core/ds gx Adobe_CoolType_Core/ds get exec Adobe_AGM_Image/ds gx currentdict Adobe_AGM_Utils eq {end} if %%EndSetup %%Page: 7 1 %%EndPageComments %%BeginPageSetup %ADOBeginClientInjection: PageSetup Start "AI11EPS" %AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0 %ADOEndClientInjection: PageSetup Start "AI11EPS" Adobe_AGM_Utils begin Adobe_AGM_Core/ps gx Adobe_AGM_Utils/capture_cpd gx Adobe_CoolType_Core/ps get exec Adobe_AGM_Image/ps gx %ADOBeginClientInjection: PageSetup End "AI11EPS" /currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse { userdict /AI11_PDFMark5 /cleartomark load put userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put} { userdict /AI11_PDFMark5 /pdfmark load put userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse [/NamespacePush AI11_PDFMark5 [/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5 [{ai_metadata_stream_123} currentfile 0 (% &&end XMP packet marker&&) /SubFileDecode filter AI11_ReadMetadata_PDFMark5 application/postscript diagramas_01 Adobe Illustrator CS4 2011-06-17T09:35:05-03:00 2011-06-17T09:35:05-03:00 2011-06-17T09:35:05-03:00 256 72 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgASAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9KSaZpESQ8rXm0x4qFJr UIz92HZDirHLM+QIbGTVk04Wc0bTRmGVSswkiqJEIRpKbqRXpiqM0i3nXzFLHdRGB44hJFbogMIr IFDibkXZjuONKfqxVlmKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KsbuDrdvqVtPql/YDQubBIxBJDMhaBwvqTvO8ZHUbRr2xVW8q6Xo9voUljp8wud PaSZVdJTKOLn7PPk3Y+OKrtN0CfT9SluTctdQyoFEk7cp+RdTQkAAqANvuptXFUV+jbx/jGoSqG+ IKKUFd6Yqxn9POdUW2GrWv1GvKS8N/ECIviVWWPieR5qFI5ACta9iq35o1SaxsibHXYPXqi8p7yG 3CvIwWJaukwo5rvTbsDiqZ6JHcXVlAkmtia/EYN3HDLHMFkFBIoZRHVVY0B4D5Yql0evxtqf1U61 ai3KCVZxfRF2hbZXEVPFlB325DxxVkNvZzExzpqLzxBhsCCrUahFQcVXvp13JI7rfyorMxCClAKn YYqx6bXLaPW7ewGuW5tpreed7g3cayq0DqpVYaHkDyJ5ctqHbFXeYtah0rSri8g1y2mmgX1DDcXk dshTkFJ9SktDvt8O52xVXmKTxIU80rayIQk4ikglX1HVSFq4/wAoU2FQcVQflzXjqi3RutZs4DDc S28K21/HdFxAaM0nwQ+m3Q8d9jXFVaXW7VNXhsRrsBilhknMxuow4ELcXpFuTQkb18fDFU7tbZ5O E8OqNcxK614MrKdxUVUnFVaTT7qWR5FvpY1ZjRFpQUNMVY5NrcaarHZrrdq0MiPKJTexrII4iFkb 0uJJ4k9jT3GKr9f1iLTdMuLq31u3nuIE9QQT3cdshQMAxMtJONAf5d+mKowXNqYS36fi9VSqMonQ qJWUFU5dd+Q7dO2KpX5b12XU452vdWs7Zo5pIYktdQju+Xomj8jwh4Efy77YqiJdbs01eKxGvW5j eGSd5DdxCRViPFqQ9SOXetOvhuqp+ZNZTTtKnubXXIJJo1SomvIbZEEzGNJGlcSqq8/FfHrShVRW nyRJZxtdeZllkdghYyw0ElAGjUpwDUb2riqlo2rx34uPW1u2jeKZ4o0gu47glYwpLPtHwPxVC7/D xbvQKqV1rsUerWllDrdrJBOkks0z3saSJHDszJFxYyfFQdQOu+26rvMWtjTNOluLLWbW5uYjGXhu r6O0jCOxHNpeM3EDiT9nscVTGO5tTCrvr8avUI6rMjKJNgUDHiT8Rp0+jFUDomsxahDLJNrltFSa SKEQXkdwGWEhWZjSMKedfh32oepoFWTWdrPbyH1Ll7gMNg/ah/txVF4q7FXnOpeaddvL2fTP0TFP Z2lw0clyyShkpy9KSNZF9OUhVqTy4g/diqBi89eZdNZraw8txQQH1LiYv60Sc5aspSiyKeTghhUF etNxiqfeUvO+r65ffVbvT/qnpqGnJjmVQwYgoskgUMQwr03UhuhFVWQ/4c0ozSXlvCtnfXRRrq8t wI5peKhQsjqOTCij7sVYNceQNciuBHGtxcI1JHlGpXZgA9QuYhbyTLDQlVqPTpQ+NcVWeYdJ0vSp lEzanb/WDHVI5LhFk5MIpGP1C4SpRKEcl+HryG5CqaaL+j4NMjuRaao0rzNK16kLetIrkAq0ivI7 qaDfl74ql+n+S9Sv0WCUXNuLJYkQzXd+scsYAqjQmQwuKp9koQNqAYqzyLQNDtbz6/bafbw3pHpm 5jiRZOLMpYcgK0biK+NBiqyTQLB7qfUbZFs9WuAIpdThjj+sNGj1EZZ1eq7UoRirDb3yVrUTLHDJ PcSsp4lL27SNU9QBlMYeKDdJWJXiA1OleOKqGvaNZaalp9Ze+t2ERSCJGMMcjxlSFkewlgL9v7wG vXFWtJ0izu7Nb62bV3FxIk8UkkLSOOCCPeeSR7ongKchNX6RiqpDotu9+rzfpIXEYcm1ZZLkFC5A l9K7muY1LLsW4V3p2GKtWflTVr2tsRdWqx8jE8lzewoUBQ8WSN1hIcuwKceJAPwjbFWZWvlTy9aX FrfpptqmqW0SQR3qxJ6wToVEgVWoanFV7eXNM+uXOpWkSWOr3fFLjVII4vrDpGwojO6tyHFAu/8A DFWIX/kzWkWOCF5p5N3Vo7y7jXj6q8kdQ8UBBV2JTiFah2rTFUJr2k2GlfUUun1C3Z09K3SLlHFI 8YDATSadJByFFArKDXbvtiremaNZXtkLuA6u4mlWeKZ4jJJ8MYi2uXke7rwBUMJwR9GKomHy8GnW eaPVfheQ+lJHJdIeRC8gl5NdRryjXeidz3xVZL5cd/ThH6XEShz6i/WkFeYIRoo7lImRgW5Lw4nw xVq48sRAf6PHqwU/VkaOKN7SogYjk5s5bUS0R/8AdgavHFV0WhWEAjtfU1M3glNxH6kfOY1Lb+rJ I12SFJXkJq4q1D5Yia7+tTxaqWrIGhkSW7jIJ4BhHeTXUSlox8XFB79MVaby05dVrq5Xg45j60qA 12X0EuVhKsJG5DhxPh0oqvn8uRLHxgi1Uo0UNvJGsb2pKxuwLlrOW05MEk2LVbbY4qozeWpreyP1 KLUri8SQzRvPGwkLb9bpmluix2Wvre+Kpv5f8mutzDc3itNaJ6q/Vrye6uSTvGJOF2ZKc1UHtXqd 61VZPpOiaPo0As9JsoLC1JeQwW0axJzbjVuKgCppiqPxV2KpRqEfmNm/3GCwRAxH+kpKxIG37BXF UlTUvM8nFk1DQeD0IVlnD0K9CDKCDy8R7UxVNNCu9UlMcd9daZdT7mU2HNdgvUIzyEfF74qibyPX mST6kLJX5H0zOsjCganxBSu9PfFWPR6t5sntYmtrjTXlaNHaRtO1BVIbeoj58lDDoC334qn+nXlz POscyR04ksVgni3A7eqoH0VxVc36WSEzSGySNV5O7BwAAKkkk7Yqlj+ZbdJTF9d093U0IjWWQV22 qnIdxiqV33m+/tZ1T9IaUvqyBIEa3uA4qduXKRK02rxFfbFUwHmhI4BJdXlgrKvKWT0rhU6VLfEN hsepxVFWWtLfQQz2l9pc8U/H0WRieRf7IA5VqfDriqZhb/0CClubnnQUDBOPGvzriqU6lc+ZLW5V fU09IpATGv1a6ncBAORYxtSm/U0xVSs9T13mzXn1NoyPgMVper32JZgRSmKp0DeyW8LRJB6jhmk5 q6ildqAgMPeuKtenrA34Wlfk+KqdxJqkKepKtrQmnwrK7EnwCgk4qlBvfNRkkKvYcD/cp9Qviw3P 2m5b7U6LiqnB5mvYrh7W+aBrqtY4obDUFPEVFaFHr07bYqmZ1C9HWKIf9G91/wA0YqvhvbuWQRK1 oszfZikWWN2AFaqjhWI+QxVETrqr8jaLaqOI4+qrn4itd+JG1TiqRvqHmVHeJtQ0JZ4nCTRukylK gN0Mta8WBGKo+wvruRoUuLrS5p2YBxbFqkE/sKWY/ZxVHSDUgXZVtVhUtQvzBCgndu2KpTP5ntIJ TFJe6eXVQ7BPUcBTXclAwHTFVCTzppccayyX+npEx4q7CUKWFdgSvXY4qoXXm1zMUtdR0pAqFnjl huXeoPX4SlF+jFUNb+d5frSGTUtInsmL1mhinWlPsqSztv8AEOgP0YqmX+NdOST0/wBIWCy05cKT BuIFa041pTFW5PPFhGnqSalYogPEu3rAV8Kke2KqsHm2K4nWC3vLSWd6cY0Wck13H7Ow9zirfmTR 9WvEpaajeQK8jcorcRL6amJ0qjfumPxMG+KQ79sVSfyt5JubRfq+rT3l5bGOUMk8sxSpeP0gtbi4 f4UTuaBiSKVpirK7bS4YboTrLO8hd2o7yFAGLmnEnjQcqD5Yqk/mPy9q+oykwX7C3cTK1vJHEVj5 hQDGTC7V+FjyJqK7bYqlvlPyJcafbQW2pyGa2jtyjRJJKWEpZG/vAscjhKEKXYkYqzgsGZaA7Gpq COx8cVYi2h6dNYXRtdDvNHvNSEkl29v6UMjTyghnn+rzhZWrvux+eKpbYflbp31+51OSe4S4vnU3 okRvVkVWRmVpFlckN6a9WNCNqUxVfq35S6Pqc1o091M0NhO9xYwyCaRYi55ELyk8aGoANRiqLn/L iykt5IxfXCy3Szx6hKDP+/Sc1KsokG1K161rU4qu8ufltoej2KadMF1DTkge3W0uIS8dJCGkPFzI o5kbgAYqyGDSbSz01NP0pP0ZaxGkC2saKIxSp4IyMm5r+zirBtQ/LrXLvWrfUJL0uYJZnVg3pgq0 3qp6kccKpKTQBhICKbYqzfQtKi06zhD83vfQhiupS0rh2iSlRz9602xVME+0P9n12/aGKoDWvMeg 6PA76pfwWigKCJZUiP7w8EoXZKcjsDXFWIzHy5cQWsNndXd16RV0M2p+ujqUYj95JPOpYh+VSCae xriqQ+WB5XKNPLerqFvb3kpIW9tJmThG0KRKtuIG2ReVSSSPEb4qyee98hRXccLon1ySMvBafXYB JIvWqIbkcunXFWLecrLyZqOm3dyW+o23pxFma9toGEsXNwR6pnV+aNxBFR4VpirI/J/+FrSOK0hh iujOytazCS2ugqLbIF/fKR9pEqNuhxVPfMs+o2umPc284jt0aATIEZpTWWMHgyywUqGod/pxV5v5 am8z3+qyQyancrPdzwojB0lWFo4XFwBV6/ZVa8g9abFe6r1XS7DUrS3iivLpLv09vVMZEpq9RV+V Om32cVQmreUtHu7bUZobGFNTvFkLXKoqySShDGnqN+0Bts22KvLJvyl81w6pPrc+qXHrJbmNruWa IOIgtGjeUychEFXerU64qitS8nT+atFsjamzvtLu5457aW1kb0HcQ8JDxM7qZIuEgqR9oUPgFVbz H5a8wXKy2ri6trmWdm9e0guJpEtzarDxWdWkVlYsylSSduvHbFUl8o+UdR0H1bFxfM1+JPQtBayC JJ3lhHrcGRUP7qP42Zfntiqav+VnmVtdTXxFxv0szbqiyJ8J+rfVwqu0jSAUYn7dO1OO2Kpf5u8n 33mC0sI7ZNQSJLW0+vW5srgRy3aF/WeRGiCllWX4SFp2G2Ksw/LvS9V06CHSrmW9kt7dZ5Q91bug Kxx2sNunOWOihQJOKow+4Yqy54hdX97aQ3VzFdQxpLy5n0R6zSKlFBBNDEajb5+CqVweVb2RBFq+ s3s+oS8vUbTp7i0hEfRW9NppWQ08H3PTFVNPLV3cWLzaPrOoR3kUzwxvqE808Ja3mMcrNFFLETy4 NT4h8sVTnT7SUpC73VzMyemXnD8YJWqORRCzvwJ6Vrt3PXFUBeTaq0uqSWoZ4rCRlbneNESfSWYh VW3loAJAB8WKom5hu7RBJcTzhCH/ALu4LGqRtJShiX+Q98VSy7s9SinnD+YzbBKkxPdQgx1+IV5W 9QOJHXtviqYJb3qBIGuZ5LkTC3djcUBpD63Ooh6kdguKqlxZ6lBbyTtNIUiVnel01aKKmn7jFU5t 0KQqhZn41HNzVjQ03OKqmKuxV2KuxVJPMulJqbWVvcaNa6xZpI00gu3UCGRF/duiNHJyY1I7UxVJ NQ8m39zdB7KKLSYT6RK2zA8Xidz6qrwReVJCPl3xVHJ5KiWISesf0kkokh1DgvqIix+kIlPPkEA3 oG64qhtF/Lqw01Vt2YT6esz3JsfRjSJpGBCllDFTwBHHauwxVTT8uzHqNrqEd6y3FlAba2lMK+ok Z2ADiQMKLyG23xHxxVfqX5c6ZdQC3hCwQelFHJG0EUitJDz4TFSQpceodyDiqe+X9HbSLWS39Rp1 ZwybBFRFjWNUReTUUBNsVTJYgFFa1oK0JHQUxVsRIOlRXc7n+uKu9Nffbfqe304qgV0OzVpGWa7H qyPKw+t3JAZ2LHiDIeK1OyrsOgAGKomCyihDBXlcOan1JZJPu5MaYq6SxtJIhFJErxL0jbdRT2O2 KqX6F0j/AJY4f+AGKtfoTSP+WOH/AIBcVb/Qukf8scP/AAAxV36F0j/ljh/4AYq4aNpIZWFpEGU1 VggBBHcHscVQU2o21rq08TSxx3EsERT1GCgKJZviapGw8O+Kou2vdKSiJeQySyMOTeohZ3Ow6H6A BiqXjVNNFtcaeLuFLp57hJU9RQ0avO/Jm3+E8TVa9cVTSO+sJiIre4ikYUIjjdWIUMBWgPQVGKpc LbSmuNRW8l9IzzfGn1iSIOpiRK8VdRvxp0xVU1a6t7q3CWkqXEgEp4xsGP8AvPIP2a92A+nFVK7u UZb+GG4s2W85cWe44laxLGaqEboU8cVWaldIkFxcxSqqGeQxzBgByFkVHFtqnmKd98VUb7UtEaIR 2GpJcSSrKjxLdGeqmB6fAXk/b49v14qmmqCyS0lu7xWaG0jmmYIWB4p8TUoVqaDFUilsrKyM2oT6 VqgiiWSaUvdxtGqgMzH0xdHYDoKYqnGow6dY2bvJFI8CMjmNHYuWNVFCWHj44ql95Bbtay+to2oR RKvN5EuYUYBfiNGW6r2xVKx5W0+7vIkhudY4xWsFyBHelSxuPVUGXm9CQI+g+Gu/hiqpb+XdPiup bKZ9Vll4QtEJLxhKTJ61aGOVYqUgJ3/pirX+FdOtJRDFb65K8wLIp1JpOCRsK7zXXcyd6n6AKKpn Z2drFIbc6VqCtIGlUzXKSdOIIB+svT7Q2xVMrBbcLdrFDJAyUSRJG5GvDkCCHkHR/HFUuE+kM0gj 0+9lWOSSIuglZS0TsjUPPf4kxVLJ9B0y9vLc2k+qRrdJPI0MN0ytG1vKkbgiVyB8UhDD22pirdp5 SsYtUjspJ9W4zwTzgz3rGhjki+yY5K/7upQ7YqncNpZSQRyx6dclHUMoMq1oelazYqrXMthFo6zS K7WYowVS3MqSePcN37nFUAZ9IUxiTT72JZJI4g8gkVQ0rhFqS/TkwGKoG70DTEuHtIo9WunDAj0L 3jxEfCRlBkniND6gB5VO+22KonS9K0dIJL1Ev5atGgt57l5CPWEbLxHqlP2xuT44qmH1SyV0DWU8 LSEhHaSoDBWffjK3ZPDFU4xV2KuxV2KuxVCW91M2oXNq0XGKGOOWOWteRleVWFKbcfTH34qteJYf qYlJu7oSFIriUIrDkCzn4FUD4FPQb7fPFVFry4udPlbk1pcNPLBbmILI59GVkUgOOPxrHXfYA9dq 4qrW9vIsjzywxxySemHdTykfiQAXYKg6dgPpxVvUtH0vU7Y22oWyXVuWDmKUcl5DoaHFXaXo2l6V ZrZabbJZ2iFmSCEcEBclmIUbbk1OKoTUPKPlnUr5b+/02C5vURY1uZEDSBFJZVDHegLEjFU19NfE /wDBH+uKpTpHk/yxo83raVpsFjKIjAHgXgREX9QoOP7PM8qeO+KqnmQcdA1MD/liuf8Ak2fniq/z L/yjmq/8wdx/yabFVDzTU6TOB1rFTv8A7sxVH6mK6bditP3Mm46/YOKpZoJ/05h/2rNP/wCJXGKu l/5Swbf7qtd/9jfYqmch/wByduP+KZv+JxYq6T/jp2+3+6Zt/wDZxYqo23+9Op/8ZF/5MJiqF0W9 ihtJo5I5wwvL3pBMRQ3cpBBVKEEb4qhNG5HU7RmBUsursoZSrcWv4ivwtQjanbFUynp/iOx8fqd3 /wAnbbFUv0TS5E0awSTTbGSRbaEPIXqWYRirE+ieuKqdxFLH5HtoSGllSCBCEDOzMOI2FOTGvtXF UbrN7HNawxxJPzN5ZdYJgKC7iJJJSgFO+KqsFP07L8pa/wDAWuKpb6Lz6B6Uao7fWNOLJIeKMF+q swJAbqop0xVXudOdb7TZVsrW2EU8jPJCxLkG1mWlBEndh3xVP8VdirsVdirsVSifUobLUZjJFPIZ IoxGIYZJASsktQWVSin4h9ojFW4NVtGvImnEq3EwMcCCCfgi7FuUhQLVqAkmg2oOhJVUdOvIop7p rlJVZJpkgpDKw9NpDIWUqpHxFvwGKo6LVrK5na2i9USpxZucM0a0LClHdFUn2BxVHYq7FXYq7FXY qhL+zubloxHc+jCA6zx+mknqBgKAl6gDx23xVJbHyDoluUkmhjuLlXEjSemEUt4CNTTjXoDX5nFU 51GwlvIPSEyxqzL6lYlkDIK1Xi9V3r1IOKpXY+S9Jgnlmngtrln2RGtYkRFHSiKKcvFv1Yqi73y9 aXcvOQqF9NIhEIoWQLEWK0EiPT7Z6YqvtNCtLZZFokqSKiNG8UYSkZYr8KKg/bOKtzeX9HnXjNYW ki7ijQIevzxVqDy7otuKQafaRD/It0X9WKouGzhhR0iRIkf9mNAgr0rQYqlK+WZHntp7q6Sd4uTT gW8SLLI1KkgVHH7Wxqd/teKqNvtGgvBGHIRYlZFRY42Xi/Go4uHH7A6Yqp6foFtY3KzwFQyxvEqr FDGoV2Vj/dIh6oO+Kqx0XTDKJjZ2xlUUV/RWo74qq3dpLNa+jFKsTFgS5QOOPL4gFY03WoFengcV QVnoEdvdyXDOkoPH0ozDGoQqqjkCN+XJSfhoN+m1cVV9Q0LStSp+kLK2u6Go9eFZNwCP2q9jiqst hbLbm3WGFbc7mERgIaf5PTtiqnBo+n25LW9tBC5qeccSq1WFCajxxVG4q7FXYq7FXYq//9k= proof:pdf uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:F87F1174072068118DBB92CA1052A9F9 xmp.iid:F87F1174072068118DBB92CA1052A9F9 converted from application/pdf to <unknown> saved xmp.iid:D47F11740720681191099C3B601C4548 2008-04-17T14:19:21+05:30 Adobe Illustrator CS4 / converted from application/pdf to <unknown> converted from application/pdf to <unknown> saved xmp.iid:FD7F11740720681197C1BF14D1759E83 2008-05-16T17:01:20-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F117407206811BC18AC99CBA78E83 2008-05-19T18:10:15-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:FB7F117407206811B628E3BF27C8C41B 2008-05-22T14:26:44-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:08C3BD25102DDD1181B594070CEB88D9 2008-05-28T16:51:46-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F77F11740720681192B0DFFC927805D7 2008-05-30T21:26:38-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F87F11740720681192B0DFFC927805D7 2008-05-30T21:27-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F97F1174072068119098B097FDA39BEF 2008-06-02T13:26:10-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F1174072068118DBB9A084B3843B2 2011-06-09T11:06:05-03:00 Adobe Illustrator CS4 / saved xmp.iid:F87F1174072068118DBB9A084B3843B2 2011-06-09T15:15:58-03:00 Adobe Illustrator CS4 / saved xmp.iid:7FF2245A3B2068118DBB9A084B3843B2 2011-06-09T17:21:50-03:00 Adobe Illustrator CS4 / saved xmp.iid:F87F1174072068118DBB92CA1052A9F9 2011-06-17T09:35:05-03:00 Adobe Illustrator CS4 / uuid:5a29c771-4184-7441-8b83-5454d69a07e4 xmp.did:7FF2245A3B2068118DBB9A084B3843B2 uuid:65E6390686CF11DBA6E2D887CEACB407 proof:pdf Web 1 False False 731.130859 430.000000 Pixels ArialMT Arial Regular Open Type Version 5.01.2x False Arial.ttf Cyan Magenta Yellow Black Default Swatch Group 0 White RGB PROCESS 255 255 255 Black RGB PROCESS 0 0 0 RGB Red RGB PROCESS 255 0 0 RGB Yellow RGB PROCESS 255 255 0 RGB Green RGB PROCESS 0 255 0 RGB Cyan RGB PROCESS 0 255 255 RGB Blue RGB PROCESS 0 0 255 RGB Magenta RGB PROCESS 255 0 255 R=193 G=39 B=45 RGB PROCESS 193 39 45 R=237 G=28 B=36 RGB PROCESS 237 28 36 R=241 G=90 B=36 RGB PROCESS 241 90 36 R=247 G=147 B=30 RGB PROCESS 247 147 30 R=251 G=176 B=59 RGB PROCESS 251 176 59 R=252 G=238 B=33 RGB PROCESS 252 238 33 R=217 G=224 B=33 RGB PROCESS 217 224 33 R=140 G=198 B=63 RGB PROCESS 140 198 63 R=57 G=181 B=74 RGB PROCESS 57 181 74 R=0 G=146 B=69 RGB PROCESS 0 146 69 R=0 G=104 B=55 RGB PROCESS 0 104 55 R=34 G=181 B=115 RGB PROCESS 34 181 115 R=0 G=169 B=157 RGB PROCESS 0 169 157 R=41 G=171 B=226 RGB PROCESS 41 171 226 R=0 G=113 B=188 RGB PROCESS 0 113 188 R=46 G=49 B=146 RGB PROCESS 46 49 146 R=27 G=20 B=100 RGB PROCESS 27 20 100 R=102 G=45 B=145 RGB PROCESS 102 45 145 R=147 G=39 B=143 RGB PROCESS 147 39 143 R=158 G=0 B=93 RGB PROCESS 158 0 93 R=212 G=20 B=90 RGB PROCESS 212 20 90 R=237 G=30 B=121 RGB PROCESS 237 30 121 R=199 G=178 B=153 RGB PROCESS 199 178 153 R=153 G=134 B=117 RGB PROCESS 153 134 117 R=115 G=99 B=87 RGB PROCESS 115 99 87 R=83 G=71 B=65 RGB PROCESS 83 71 65 R=198 G=156 B=109 RGB PROCESS 198 156 109 R=166 G=124 B=82 RGB PROCESS 166 124 82 R=140 G=98 B=57 RGB PROCESS 140 98 57 R=117 G=76 B=36 RGB PROCESS 117 76 36 R=96 G=56 B=19 RGB PROCESS 96 56 19 R=66 G=33 B=11 RGB PROCESS 66 33 11 Grays 1 R=0 G=0 B=0 RGB PROCESS 0 0 0 R=26 G=26 B=26 RGB PROCESS 26 26 26 R=51 G=51 B=51 RGB PROCESS 51 51 51 R=77 G=77 B=77 RGB PROCESS 77 77 77 R=102 G=102 B=102 RGB PROCESS 102 102 102 R=128 G=128 B=128 RGB PROCESS 128 128 128 R=153 G=153 B=153 RGB PROCESS 153 153 153 R=179 G=179 B=179 RGB PROCESS 179 179 179 R=204 G=204 B=204 RGB PROCESS 204 204 204 R=230 G=230 B=230 RGB PROCESS 230 230 230 R=242 G=242 B=242 RGB PROCESS 242 242 242 Web Color Group 1 R=63 G=169 B=245 RGB PROCESS 63 169 245 R=122 G=201 B=67 RGB PROCESS 122 201 67 R=255 G=147 B=30 RGB PROCESS 255 147 30 R=255 G=29 B=37 RGB PROCESS 255 29 37 R=255 G=123 B=172 RGB PROCESS 255 123 172 R=189 G=204 B=212 RGB PROCESS 189 204 212 Adobe PDF library 9.00 % &&end XMP packet marker&& [{ai_metadata_stream_123} <> /PUT AI11_PDFMark5 [/Document 1 dict begin /Metadata {ai_metadata_stream_123} def currentdict end /BDC AI11_PDFMark5 %ADOEndClientInjection: PageSetup End "AI11EPS" %%EndPageSetup 1 -1 scale 0 -260 translate pgsv [1 0 0 1 0 0 ]ct gsave np gsave 0 0 mo 0 260 li 910.015 260 li 910.015 0 li cp clp [1 0 0 1 0 0 ]ct 889.842 242.264 mo 20.1729 242.264 li 20.1729 12.8867 li 889.842 12.8867 li 889.842 242.264 li cp false sop /0 [/DeviceCMYK] /CSA add_res 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 1 lw 0 lc 0 lj 4 ml [] 0 dsh true sadj 889.842 242.264 mo 20.1729 242.264 li 20.1729 12.8867 li 889.842 12.8867 li 889.842 242.264 li cp .193668 .150057 .155337 3.0518e-05 cmyk @ 889.838 42.0322 mo 20.1729 42.0322 li 20.1729 12.8867 li 889.838 12.8867 li 889.838 42.0322 li cp f 889.838 42.0322 mo 20.1729 42.0322 li 20.1729 12.8867 li 889.838 12.8867 li 889.838 42.0322 li cp @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT Initial %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. 12 dict dup begin /FontType 1 def /FontName /ArialMT def /FontInfo 5 dict dup begin /ItalicAngle 0 def /FSType 8 def end def /PaintType 0 def /FontMatrix [0.001 0 0 0.001 0 0] def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 32 /space put dup 45 /hyphen put dup 48 /zero put dup 49 /one put dup 65 /A put dup 69 /E put dup 73 /I put dup 76 /L put dup 77 /M put dup 78 /N put dup 80 /P put dup 83 /S put dup 84 /T put dup 88 /X put def /FontBBox {-665 -325 2000 1006} def end systemdict begin dup /Private 7 dict dup begin /|- {def} def /| {put} def /BlueValues [0 0] def /password 5839 def /MinFeature {16 16} def /OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup /strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def /Subrs 5 array dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> | dup 1 <1C60D8A8C9C3D06D9E> | dup 2 <1C60D8A8C9C202D79A> | dup 3 <1C60D8A849> | dup 4 <1C60D8A8CC3674F41144B13B77> | def put dup /CharStrings 15 dict dup begin /.notdef <1C60D8A8C9B6E3FA5101D97F0BCF44F7161DEB1E2A84766DD477E7 C8A936AA182F5809A9> |- /space <1C60D8A8C9B854D00D> |- /hyphen <1C60D8A8C9B81F2C3A78A5675B101A923F2D2A8AB56C> |- /zero <1C60D8A8C9B7EF322B1082CBA0BF9C14E99A3DA73C31B9142A392BD3A BC1EA97FF39C814FAC04D646DD2C4A98FCAF9A9470BD1CDA748490BF1B6225A1 0425162B711F636C55967253E957B919DCC3F666292C622E3ED0D587E9E568E3 1D888BB4F8FA5748005C40596B5B6BF48502A62C5A69962DBA8DFCFAE3F282BC 60C6C207F4C9D9AD32681DD3B2E0F2C2045F707B1BB6597DD9D355BD3D00BE3A 5B546505C954A88> |- /one <1C60D8A8C9B7EF32247817CBAD74894E625B0BAD23872C089E8D91F92F E1B529DBABA181AB8B085B7A00FC86C529813E9B576642> |- /A <1C60D8A8C9B64EDFED26B9E21A4F64848088903AC9891CF791BDBC4AB29A CC8B3E8D13924A7DDE35F09AC5F4A8229C87124C732743268600EF8D4582208B D16D82> |- /E <1C60D8A8C9B64EDFFB83C6241DB110BEE5AB2FAD9D94B39ED5E81E7411B6 6E9361DDE78FC667AB91EF9824> |- /I <1C60D8A8C9B854D0F463D3892D665712D6B7D6A81E> |- /L <1C60D8A8C9B7EF3224EC6E192BD0FEC2445DA87B99CF0E03A72A> |- /M <1C60D8A8C9B6B41CBB4B6664BFFC865F56E6FEAFA79E7B90883C1C68AFB3 79AC174B0F8DCC9294E2C26BD06BBA9FD3867F8768651EF4BA798B4F538FCE8F 80AF5A83421F8F> |- /N <1C60D8A8C9B6079F629170873C67115641D0B6890161EC48F71E8D2106F3 AC927984C1E464F121F968> |- /P <1C60D8A8C9B64EDFF4950CC53012D47AE97D5586315BA2F5162B63CEC117 C5379A1B3DB174CB2C739C68916A1E99A346AFF71DBF25658867D9AEF1BF3C47 CE1BA73978E8D0D40E52B85A56E08A1369D85E15B0A0C517291916FF6E61D0EF BF59B4862165C7DEA15B42BE3811C2CAA25C54> |- /S <1C60D8A8C9B64EDFE3D078722A65C31955939D63AA5C8A4945719B5E558E 3B73A676CC12D1E18D93A8DC67C074D6E352D426981DE76F8EC4CFE5DAE051BE 47753A7C234C4B8D7D9F50292A61882B5500CC701F878FE626CDC6D4C322BB39 1537921D673F5AEE3EC19E36E7EFEC0F06A0EA4EAAB6BBA94DDCD11A6A564B13 B510F8C915848233B82F046D854DCD4F1639F149305DC73D3C68DF8AEB47A96A 30E55CF8BAD07FA2825BCE0D675F1CC2EBE61B07B772130E23119250F1EBF8FE 12A2098D9F09F3F21BDC41666CA4A0BB70D5F0A750B44BB93A5FBFDD2BF8DE45 0B277265536F77D5BD6F44FB72FF2E708C60107653AE44BFFB26AFF8> |- /T <1C60D8A8C9B7D8BE16D2C1CA7ED2E06F707C0E9530AE37D06FF7501A595D 3927> |- /X <1C60D8A8C9B64EDFF4DFD017B43F7EAB96365BACFBED2D71ADAE4E00FD12 B461A7F13C64E3A175013F8F17B0F966419CDFD1925B86CBC99EE22C73270B3D B758F48A1908F21BEE4A7E0F431996B89DD71E609DF64575A71FFC> |- end put end dup /FontName get exch definefont pop end %ADOEndSubsetFont /HMQBUM+ArialMT /ArialMT findfont ct_VMDictPut /HMQBUM+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero /one 15{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /M /N /.notdef /P 2{/.notdef}rp /S /T 3{/.notdef}rp /X 167{/.notdef}rp] HMQBUM+ArialMT nf HMQBUM+ArialMT*1 [16 0 0 -16 0 0 ]msf 374.232 34.998 mo (EXAMPLE 01 - INLIST)sh 113.946 133.396 mo 107.183 136.28 li 113.946 139.163 li 113.946 133.396 li cp .75021 .679683 .670222 .90164 cmyk f 321.97 192.792 mo 160.016 192.792 li 160.016 102.913 li 321.97 102.913 li 321.97 192.792 li cp .123415 .0936904 .09897 3.0518e-05 cmyk f .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUM+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /e <1C60D8A8C9B7EF322472FA01213C7AD90A23B536C2309DD40D370E2449B0 D0FEF85A6BE8067F30686F143E75903EB6FA56935472EF47CE3F33433C2F0C8B 6FA51573AE54B2C516F6F024F8775AD6639544E339FC2A328548BCBFD58B0EEA 03B7DC3AB069F44477958BFBFAAC7196D411DF9BE0B78A86C4BC33EC5D7C3729 5284C077711C162623860AACA404F650F8D516970257> |- /n <1C60D8A8C9B7EF322B3BE19FB964E04D2DB06D4930CA5D8F41D2EF3A285C 0BD536CD2C57668EB9E30311BF9A2872DFB44F2BF2A4683B5D66FA01BB1CCDAD E9C8A9EE2CB010715D3D6DFF0E843CF77C87A07D1DBD0482675E3CA1DAA2A520 3A8015DD09B7CE> |- /p <1C60D8A8C9B7EF322B3B0CFC8FED720BC90E20B208D27DC4B8F11F10B964 70F8B4F5FABEC7F7010781F5077B417FE44279776F2304ACD6E0EA12F436330D C4B79C907B9D28468D10FF9256A7D2CA504E4498D719ACD86FCA89B33C61F556 CF1168C3F262A781155D5EBF0C47D71C584AB93037B47B18D39FE408A49672C1 E63F9E8368D19E113FC95C59A9FA4650E46F6399F2FF256844E27568BA34B9> |- /r <1C60D8A8C9B81F2C3A9694980E415F1DEF5C498473095A24D1BE11285789 4FEA85DB28AD762FB8D2F4CAC5BF8B9C18D8A2DFCF155E0751AF58898A6619AD D420F549AB7C795751D32E8EE6> |- /t <1C60D8A8C9B854D0F45CF665C7276F8075B54A4ECD6470F395A458CA2D06 5152075036EEECA213894C1EA0DACFBD370590F4B831924E5BDA5281442349CF AD2545E0750C3004A129C25B1EAA8DEF5DA8BF1998E80AE266F591E64CB5127F 5C42C88FB43C> |- /v <1C60D8A8C9B7A73DB99D94C9412F55B03E92C174A4755E69F97C27D9162B 37724F74F272B140D258652D102C2EAC46833C73F9> |- /x <1C60D8A8C9B7A73DB920A1A3B81DE7234ACAA5546B4C65820CF3C50E1629 C5A6423BAA34A2ECA8C7FE4B71726AC6704CC23AF1725AFB30D2892FC1BDDAFE AD7BE7BD65F1051699CCF4B0> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUM+ArialMT /Encoding get dup 101 /e put dup 110 /n put dup 112 /p put dup 114 /r put dup 116 /t put dup 118 /v put dup 120 /x put pop %ADOEndSubsetFont /HMQBUM+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero /one 15{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /M /N /.notdef /P 2{/.notdef}rp /S /T 3{/.notdef}rp /X 12{/.notdef}rp /e 8{/.notdef}rp /n /.notdef /p /.notdef /r /.notdef /t /.notdef /v /.notdef /x 135{/.notdef}rp] HMQBUM+ArialMT nf HMQBUM+ArialMT*1 [16 0 0 -16 0 0 ]msf 116.114 152.535 mo (prev)sh 336.108 110.926 mo (next)sh 369.957 113.236 mo 376.721 116.12 li 369.957 119.003 li 369.957 113.236 li cp .75021 .679683 .670222 .90164 cmyk f 318.216 146.312 mo 163.769 146.312 li 163.769 106.937 li 318.216 106.937 li 318.216 146.312 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f .25 lw 318.216 146.312 mo 163.769 146.312 li 163.769 106.937 li 318.216 106.937 li 318.216 146.312 li cp .75021 .679683 .670222 .90164 cmyk @ 215.251 106.937 mo 215.251 146.312 li @ 266.733 106.937 mo 266.733 146.312 li @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUM+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /underscore <1C60D8A8C9B7EF3224BB0E94C1F3EA8D5F87D58A9CCE> |- /i <1C60D8A8C9B88C087228DFC7C7ABCC71B868F57EDB285655227000619B17 1C8A80AB> |- /l <1C60D8A8C9B88C08722AD20D19A90F9064193C8D82> |- /s <1C60D8A8C9B7A73DA057E90C9BFBE0FE301E99CB771FA2F05368A6342B5F 80456D91458EA2F3CAD55CDF89BFF34EEB39D7DD325B057E2BF0E9B878C214E2 BD1BD70DCABE10E0DC8EBCF7B100B55EBE94FB0F17084E21EBD279B324AEABD9 6538911D053BE9D7ECBF43F934B1033C9E405BBE31E7EDB643609C8D779046E1 B250C3CF05E6FA4787649137D90F47F85972A6603BA900DD7CB710E02662DB32 87CB26D7B7AE794611498865FC85A28083D2F6C2DEC302D47619A4A577C5B843 5558FCFE71A1BB6783AFD5F58B6D2C03593B3F2297A66A7E6D13C1E321C57F41 72D53C8FCAF4D28F2B78D3A4BF03> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUM+ArialMT /Encoding get dup 95 /underscore put dup 105 /i put dup 108 /l put dup 115 /s put pop %ADOEndSubsetFont /HMQBUM+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero /one 15{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /M /N /.notdef /P 2{/.notdef}rp /S /T 3{/.notdef}rp /X 6{/.notdef}rp /underscore 5{/.notdef}rp /e 3{/.notdef}rp /i 2{/.notdef}rp /l /.notdef /n /.notdef /p /.notdef /r /s /t /.notdef /v /.notdef /x 135{/.notdef}rp] HMQBUM+ArialMT nf HMQBUM+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 209.892 132.664 mo (__inlist)sh 318.216 188.667 mo 163.769 188.667 li 163.769 149.292 li 318.216 149.292 li 318.216 188.667 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 318.216 188.667 mo 163.769 188.667 li 163.769 149.292 li 318.216 149.292 li 318.216 188.667 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk HMQBUM+ArialMT*1 [16 0 0 -16 0 0 ]msf 236.32 164.332 mo (1)sh 232.316 184.668 mo (10) [8.89844 0 ]xsh 163.769 168.979 mo 318.216 168.979 li .75021 .679683 .670222 .90164 cmyk @ .5 lw 172.276 136.282 mo 113.419 136.282 li @ 312.885 116.122 mo 370.484 116.122 li @ 333.446 133.396 mo 326.683 136.28 li 333.446 139.163 li 333.446 133.396 li cp f 541.47 192.792 mo 379.516 192.792 li 379.516 102.913 li 541.47 102.913 li 541.47 192.792 li cp .123415 .0936904 .09897 3.0518e-05 cmyk f .597284 .512352 .507713 .201328 cmyk HMQBUM+ArialMT*1 [16 0 0 -16 0 0 ]msf 335.614 152.535 mo (prev)sh HMQBUM+ArialMT*1 [16 0 0 -16 0 0 ]msf 555.608 110.926 mo (next)sh 589.457 113.236 mo 596.221 116.12 li 589.457 119.003 li 589.457 113.236 li cp .75021 .679683 .670222 .90164 cmyk f 537.716 146.312 mo 383.269 146.312 li 383.269 106.937 li 537.716 106.937 li 537.716 146.312 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f .25 lw 537.716 146.312 mo 383.269 146.312 li 383.269 106.937 li 537.716 106.937 li 537.716 146.312 li cp .75021 .679683 .670222 .90164 cmyk @ 434.751 106.937 mo 434.751 146.312 li @ 486.233 106.937 mo 486.233 146.312 li @ gsave 486.011 146.312 mo 434.528 146.312 li 434.528 106.937 li 486.011 106.937 li 486.011 146.312 li cp clp 464.319 74.8203 mo 406.866 132.272 li f 464.319 74.8203 mo 406.866 132.272 li .193668 .150057 .155337 3.0518e-05 cmyk @ 469.042 79.543 mo 411.59 136.995 li .75021 .679683 .670222 .90164 cmyk f 469.042 79.543 mo 411.59 136.995 li .193668 .150057 .155337 3.0518e-05 cmyk @ 473.766 84.2666 mo 416.313 141.72 li .75021 .679683 .670222 .90164 cmyk f 473.766 84.2666 mo 416.313 141.72 li .193668 .150057 .155337 3.0518e-05 cmyk @ 478.489 88.9893 mo 421.036 146.442 li .75021 .679683 .670222 .90164 cmyk f 478.489 88.9893 mo 421.036 146.442 li .193668 .150057 .155337 3.0518e-05 cmyk @ 483.212 93.7139 mo 425.76 151.165 li .75021 .679683 .670222 .90164 cmyk f 483.212 93.7139 mo 425.76 151.165 li .193668 .150057 .155337 3.0518e-05 cmyk @ 487.935 98.4365 mo 430.483 155.889 li .75021 .679683 .670222 .90164 cmyk f 487.935 98.4365 mo 430.483 155.889 li .193668 .150057 .155337 3.0518e-05 cmyk @ 492.658 103.159 mo 435.206 160.612 li .75021 .679683 .670222 .90164 cmyk f 492.658 103.159 mo 435.206 160.612 li .193668 .150057 .155337 3.0518e-05 cmyk @ 497.382 107.883 mo 439.929 165.335 li .75021 .679683 .670222 .90164 cmyk f 497.382 107.883 mo 439.929 165.335 li .193668 .150057 .155337 3.0518e-05 cmyk @ 502.104 112.606 mo 444.652 170.059 li .75021 .679683 .670222 .90164 cmyk f 502.104 112.606 mo 444.652 170.059 li .193668 .150057 .155337 3.0518e-05 cmyk @ 506.828 117.329 mo 449.376 174.782 li .75021 .679683 .670222 .90164 cmyk f 506.828 117.329 mo 449.376 174.782 li .193668 .150057 .155337 3.0518e-05 cmyk @ 511.552 122.053 mo 454.099 179.505 li .75021 .679683 .670222 .90164 cmyk f 511.552 122.053 mo 454.099 179.505 li .193668 .150057 .155337 3.0518e-05 cmyk @ grestore .69482 .6318 .621515 .583612 cmyk HMQBUM+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 429.392 132.664 mo (__inlist)sh 537.716 188.667 mo 383.269 188.667 li 383.269 149.292 li 537.716 149.292 li 537.716 188.667 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 537.716 188.667 mo 383.269 188.667 li 383.269 149.292 li 537.716 149.292 li 537.716 188.667 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUM+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /two <1C60D8A8C9B7EF322B3EBC745A0BBBAC411180C089B13E648172E07912 D1BA378FD965B994D86994B65582FD434477626CA0A7A4AA353654D41B127367 E2BE1B714FF63CE28DAC81B61A78F94AD3218D524244E3D9732CC5A4165C96E7 ADC9605690D1ECC190DFB9D5017E24EDE1D6B83BBD5FCE6B540AFB666DD6E17D 0C90E5976007C04DC3CD2FBFFCA768526960F8706ECECD> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUM+ArialMT /Encoding get dup 50 /two put pop %ADOEndSubsetFont /HMQBUM+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero /one /two 14{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /M /N /.notdef /P 2{/.notdef}rp /S /T 3{/.notdef}rp /X 6{/.notdef}rp /underscore 5{/.notdef}rp /e 3{/.notdef}rp /i 2{/.notdef}rp /l /.notdef /n /.notdef /p /.notdef /r /s /t /.notdef /v /.notdef /x 135{/.notdef}rp] HMQBUM+ArialMT nf HMQBUM+ArialMT*1 [16 0 0 -16 0 0 ]msf 455.82 164.332 mo (2)sh 451.816 184.668 mo (20) [8.89844 0 ]xsh 383.269 168.979 mo 537.716 168.979 li .75021 .679683 .670222 .90164 cmyk @ .5 lw 391.776 136.282 mo 332.919 136.282 li @ 532.385 116.122 mo 589.984 116.122 li @ 553.446 133.396 mo 546.683 136.28 li 553.446 139.163 li 553.446 133.396 li cp f 761.47 192.792 mo 599.516 192.792 li 599.516 102.913 li 761.47 102.913 li 761.47 192.792 li cp .123415 .0936904 .09897 3.0518e-05 cmyk f .597284 .512352 .507713 .201328 cmyk HMQBUM+ArialMT*1 [16 0 0 -16 0 0 ]msf 555.614 152.535 mo (prev)sh 775.608 110.926 mo (next)sh 809.457 113.236 mo 816.221 116.12 li 809.457 119.003 li 809.457 113.236 li cp .75021 .679683 .670222 .90164 cmyk f 757.716 146.312 mo 603.269 146.312 li 603.269 106.937 li 757.716 106.937 li 757.716 146.312 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f .25 lw 757.716 146.312 mo 603.269 146.312 li 603.269 106.937 li 757.716 106.937 li 757.716 146.312 li cp .75021 .679683 .670222 .90164 cmyk @ 654.751 106.937 mo 654.751 146.312 li @ 706.233 106.937 mo 706.233 146.312 li @ gsave 706.234 146.312 mo 654.752 146.312 li 654.752 106.937 li 706.234 106.937 li 706.234 146.312 li cp clp 684.543 74.8203 mo 627.09 132.272 li f 684.543 74.8203 mo 627.09 132.272 li .193668 .150057 .155337 3.0518e-05 cmyk @ 689.266 79.543 mo 631.813 136.995 li .75021 .679683 .670222 .90164 cmyk f 689.266 79.543 mo 631.813 136.995 li .193668 .150057 .155337 3.0518e-05 cmyk @ 693.989 84.2666 mo 636.537 141.72 li .75021 .679683 .670222 .90164 cmyk f 693.989 84.2666 mo 636.537 141.72 li .193668 .150057 .155337 3.0518e-05 cmyk @ 698.713 88.9893 mo 641.26 146.442 li .75021 .679683 .670222 .90164 cmyk f 698.713 88.9893 mo 641.26 146.442 li .193668 .150057 .155337 3.0518e-05 cmyk @ 703.436 93.7139 mo 645.983 151.165 li .75021 .679683 .670222 .90164 cmyk f 703.436 93.7139 mo 645.983 151.165 li .193668 .150057 .155337 3.0518e-05 cmyk @ 708.158 98.4365 mo 650.707 155.889 li .75021 .679683 .670222 .90164 cmyk f 708.158 98.4365 mo 650.707 155.889 li .193668 .150057 .155337 3.0518e-05 cmyk @ 712.882 103.159 mo 655.43 160.612 li .75021 .679683 .670222 .90164 cmyk f 712.882 103.159 mo 655.43 160.612 li .193668 .150057 .155337 3.0518e-05 cmyk @ 717.605 107.883 mo 660.152 165.335 li .75021 .679683 .670222 .90164 cmyk f 717.605 107.883 mo 660.152 165.335 li .193668 .150057 .155337 3.0518e-05 cmyk @ 722.328 112.606 mo 664.876 170.059 li .75021 .679683 .670222 .90164 cmyk f 722.328 112.606 mo 664.876 170.059 li .193668 .150057 .155337 3.0518e-05 cmyk @ 727.052 117.329 mo 669.6 174.782 li .75021 .679683 .670222 .90164 cmyk f 727.052 117.329 mo 669.6 174.782 li .193668 .150057 .155337 3.0518e-05 cmyk @ 731.775 122.053 mo 674.322 179.505 li .75021 .679683 .670222 .90164 cmyk f 731.775 122.053 mo 674.322 179.505 li .193668 .150057 .155337 3.0518e-05 cmyk @ grestore .69482 .6318 .621515 .583612 cmyk HMQBUM+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 649.392 132.664 mo (__inlist)sh 757.716 188.667 mo 603.269 188.667 li 603.269 149.292 li 757.716 149.292 li 757.716 188.667 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 757.716 188.667 mo 603.269 188.667 li 603.269 149.292 li 757.716 149.292 li 757.716 188.667 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUM+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /three <1C60D8A8C9B7EF322B10FC2B166D2172609B896A28AF8161ACE0368A FE548E0A1C2891C9468F6CF8001203B3D0EAEFD5067EEA36A5DE0843B3FA3DD1 0C10DEDE7ECC4B1F205F8D09B2A1084955D8410715DAE41E60E9BEA3731CCA76 98FDFAB2F6C5BD853C3D3957C1C3A42CED93CA60AD0CBA44CB0A07053B47ECAA 14A0E56199A33A25603E5DB2CC6A470C6EFBC4EF226D2F67623C83F45C93E2C0 2C0A9A0974576F8175C7B2D4E9F1C9319763C8100AFBFF1D8FFF8EB10F2B0608 AF6A0E137303863C59034E23F8CA0DCA04C3BBA93B80F099> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUM+ArialMT /Encoding get dup 51 /three put pop %ADOEndSubsetFont /HMQBUM+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero /one /two /three 13{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /M /N /.notdef /P 2{/.notdef}rp /S /T 3{/.notdef}rp /X 6{/.notdef}rp /underscore 5{/.notdef}rp /e 3{/.notdef}rp /i 2{/.notdef}rp /l /.notdef /n /.notdef /p /.notdef /r /s /t /.notdef /v /.notdef /x 135{/.notdef}rp] HMQBUM+ArialMT nf HMQBUM+ArialMT*1 [16 0 0 -16 0 0 ]msf 675.82 164.332 mo (3)sh HMQBUM+ArialMT*1 [16 0 0 -16 0 0 ]msf 671.816 184.668 mo (30) [8.89844 0 ]xsh 603.269 168.979 mo 757.716 168.979 li .75021 .679683 .670222 .90164 cmyk @ .5 lw 611.776 136.282 mo 552.919 136.282 li @ 752.385 116.122 mo 809.984 116.122 li @ .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUM+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /a <1C60D8A8C9B7EF32244AC11AA6BAAA29EE8C78E0E7206F4A2776A2D1EA7D C8D9A28C62ADE3B609CF5E2EE23C64D0B75055BD249ADFEC7B4224D040D883CA 6747571955349CF8AD17E94E6FE5D0259F4D55623D4DC5C3CB4AC64A7A87DBBA 48B7420D7990F3C261DB9838C5B90BF72B82C8238A1A58FE8E6137AAFE2405FD 710F7ADB95B4F576668A6DB104942C88ED8D01E4E58188F5E32A24B5B964D5CE C10C08F76C0F472E84A0FB6EB5E37AAEE233DE54C212B0A012D3E20F864B2D53 463E221F81B784B6F7BE81FBFCAE6785C2430454DD81C436E0A516BF8C8307B2 879FF86378629C5EA7E586D83C83550D2E732930F7FE3BAD07B86C81E024D177 B5D88A> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUM+ArialMT /Encoding get dup 97 /a put pop %ADOEndSubsetFont /HMQBUM+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero /one /two /three 13{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /M /N /.notdef /P 2{/.notdef}rp /S /T 3{/.notdef}rp /X 6{/.notdef}rp /underscore /.notdef /a 3{/.notdef}rp /e 3{/.notdef}rp /i 2{/.notdef}rp /l /.notdef /n /.notdef /p /.notdef /r /s /t /.notdef /v /.notdef /x 135{/.notdef}rp] HMQBUM+ArialMT nf HMQBUM+ArialMT*1 [16 0 0 -16 0 0 ]msf 450.62 76.5117 mo (last)sh 241.622 114.134 mo 241.622 81.3965 li 681.633 81.3965 li 681.633 95.1943 li .75021 .679683 .670222 .90164 cmyk @ 684.516 92.3828 mo 681.633 99.1465 li 678.75 92.3838 li 684.516 92.3828 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUM+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /U <1C60D8A8C9B6079F6D3F1E4545C3E1CC9D8EF54571065F01BE5A50957BD2 D8AD04D30C23B37CA98B969ECB5CA0D9A7C563636CB33377BB3DEB53D45DD0F3 E333CD69EA3B53D63C91B303CFDF29F59C20776D4DC576C9C080B76AB60A2167 3EFC1F645BF33D33929C60> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUM+ArialMT /Encoding get dup 85 /U put pop %ADOEndSubsetFont /HMQBUM+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero /one /two /three 13{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /M /N /.notdef /P 2{/.notdef}rp /S /T /U 2{/.notdef}rp /X 6{/.notdef}rp /underscore /.notdef /a 3{/.notdef}rp /e 3{/.notdef}rp /i 2{/.notdef}rp /l /.notdef /n /.notdef /p /.notdef /r /s /t /.notdef /v /.notdef /x 135{/.notdef}rp] HMQBUM+ArialMT nf HMQBUM+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 42.6582 141.391 mo (NULL)sh HMQBUM+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 818.445 141.391 mo (NULL)sh gsave 40.8164 234.431 mo 27.9434 234.431 li 27.9434 221.558 li 40.8164 221.558 li 40.8164 234.431 li cp clp gsave 51.8789 239.176 mo 22.6406 239.176 li 22.6406 216.813 li 51.8789 216.813 li 51.8789 239.176 li cp clp 39.5596 198.573 mo 6.93066 231.202 li .75021 .679683 .670222 .90164 cmyk f .25 lw 39.5596 198.573 mo 6.93066 231.202 li .193668 .150057 .155337 3.0518e-05 cmyk @ 42.2422 201.256 mo 9.61328 233.885 li .75021 .679683 .670222 .90164 cmyk f 42.2422 201.256 mo 9.61328 233.885 li .193668 .150057 .155337 3.0518e-05 cmyk @ 44.9248 203.938 mo 12.2969 236.566 li .75021 .679683 .670222 .90164 cmyk f 44.9248 203.938 mo 12.2969 236.566 li .193668 .150057 .155337 3.0518e-05 cmyk @ 47.6074 206.621 mo 14.9785 239.25 li .75021 .679683 .670222 .90164 cmyk f 47.6074 206.621 mo 14.9785 239.25 li .193668 .150057 .155337 3.0518e-05 cmyk @ 50.2891 209.303 mo 17.6611 241.932 li .75021 .679683 .670222 .90164 cmyk f 50.2891 209.303 mo 17.6611 241.932 li .193668 .150057 .155337 3.0518e-05 cmyk @ 52.9707 211.986 mo 20.3438 244.614 li .75021 .679683 .670222 .90164 cmyk f 52.9707 211.986 mo 20.3438 244.614 li .193668 .150057 .155337 3.0518e-05 cmyk @ 55.6543 214.668 mo 23.0254 247.297 li .75021 .679683 .670222 .90164 cmyk f 55.6543 214.668 mo 23.0254 247.297 li .193668 .150057 .155337 3.0518e-05 cmyk @ 58.3369 217.351 mo 25.708 249.979 li .75021 .679683 .670222 .90164 cmyk f 58.3369 217.351 mo 25.708 249.979 li .193668 .150057 .155337 3.0518e-05 cmyk @ 61.0186 220.033 mo 28.3906 252.662 li .75021 .679683 .670222 .90164 cmyk f 61.0186 220.033 mo 28.3906 252.662 li .193668 .150057 .155337 3.0518e-05 cmyk @ 63.7012 222.715 mo 31.0732 255.344 li .75021 .679683 .670222 .90164 cmyk f 63.7012 222.715 mo 31.0732 255.344 li .193668 .150057 .155337 3.0518e-05 cmyk @ 66.3838 225.398 mo 33.7559 258.026 li .75021 .679683 .670222 .90164 cmyk f 66.3838 225.398 mo 33.7559 258.026 li .193668 .150057 .155337 3.0518e-05 cmyk @ grestore grestore .25 lw 40.8164 234.431 mo 27.9434 234.431 li 27.9434 221.558 li 40.8164 221.558 li 40.8164 234.431 li cp .75021 .679683 .670222 .90164 cmyk @ .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUM+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /period <1C60D8A8C9B854D0F4604C2A88D29523E6F8C6> |- /c <1C60D8A8C9B7A73DB9D8FD6AA4FBAF8D65C36EA1D4AADBD389F972C0EDCE 9E7F36285FA93A80D3647871D2CE5AAAA6A6A370DC54E1595FB6AAB3E389C9F7 BBBB85F787D6C418B35B940450E5E243895ECFD2205F51B2D154CFFECF34148C 344C1EF806F9AAF539FB961E3EFAF6353381E833DF7C0542FFF27122A28D3654 8FE63FC8465B1B685766E782F0> |- /d <1C60D8A8C9B7EF322407C6655A1B3652DB8522EB511BE6B0855A72D96214 58876CAD1FA22A00635F436A34E23EAFC09C394044ECC1389CD99E4AF1C1F6DD 52305C78619784840FC37A805B0805EF290BC9E049CF068290816CB7E74DB612 941355BCE71CBDD11DD0F9CA29531036ED13EFB9CAB613E9F630FBBC9408EF13 CE4683D92968530F64760C3DF85C7C7EA06EBA8BF859> |- /f <1C60D8A8C9B854D0F47057B2F13303E258FCAEE9E8BBA6E28AE872907C56 63BFD2A0F535ED0EB011F2C2A875E053FAF73E8AA16B1F99510A6812F90D61CF 3F1DA5EF558899A9AE12AAF6AF4568E0F6003B0A2FF6F33293> |- /h <1C60D8A8C9B7EF322B3BE19FB964E037672C8A279BC86F7B9BF0C8203E13 1450D56E388301CEAE43162551FBE05CABF94DC3B5DDFBB4DA55D11470EBD41A C970CEE2D2EFA88D51157B4EF5536CB673423CDDB06FA774D27105AD2B1AC2DF A8> |- /o <1C60D8A8C9B7EF32334FFE7884F6C3B903D000D9FD76C2EAE8EDCCA90A98 7875625CA0393015EF6761BE1C3B6D9E9DA4BABE1DD313B783BCBF8F620C846C 7F6361946173FB7A4A6BF94EAA0CB4947DD1974AF371F3C211E584576DE9AD79 F9DA988E9E531810E3876F3029BB1D2ED366525F30E48DD7CE3C9B66C5CC099F 518C54BB58C51D6FB6D0C8> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUM+ArialMT /Encoding get dup 46 /period put dup 99 /c put dup 100 /d put dup 102 /f put dup 104 /h put dup 111 /o put pop %ADOEndSubsetFont /HMQBUM+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen /period /.notdef /zero /one /two /three 13{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /M /N /.notdef /P 2{/.notdef}rp /S /T /U 2{/.notdef}rp /X 6{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /f /.notdef /h /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /.notdef /v /.notdef /x 135{/.notdef}rp] HMQBUM+ArialMT nf HMQBUM+ArialMT*1 [12 0 0 -12 0 0 ]msf 45.373 232.262 mo (the content of this pointer is invalid.)sh %ADOBeginClientInjection: EndPageContent "AI11EPS" userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse %ADOEndClientInjection: EndPageContent "AI11EPS" grestore grestore pgrs %%PageTrailer %ADOBeginClientInjection: PageTrailer Start "AI11EPS" [/EMC AI11_PDFMark5 [/NamespacePop AI11_PDFMark5 %ADOEndClientInjection: PageTrailer Start "AI11EPS" [ [/CSA [/0 ]] ] del_res /HMQBUM+ArialMT*1 uf /HMQBUM+ArialMT uf /ArialMT uf Adobe_AGM_Image/pt gx Adobe_CoolType_Core/pt get exec Adobe_AGM_Core/pt gx currentdict Adobe_AGM_Utils eq {end} if %%Trailer Adobe_AGM_Image/dt get exec Adobe_CoolType_Core/dt get exec Adobe_AGM_Core/dt get exec %%EOF %AI9_PrintingDataEnd userdict /AI9_read_buffer 256 string put userdict begin /ai9_skip_data { mark { currentfile AI9_read_buffer { readline } stopped { } { not { exit } if (%AI9_PrivateDataEnd) eq { exit } if } ifelse } loop cleartomark } def end userdict /ai9_skip_data get exec %AI9_PrivateDataBegin %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 11.0 %%AI8_CreatorVersion: 14.0.0 %%For: (Marina Proni) () %%Title: (diagramas_01-07.eps) %%CreationDate: 6/17/11 9:35 AM %%Canvassize: 16383 %AI9_DataStream %Gb"-6CNCfDD(,/el9Fcr,,C#8ZLV.`>/s+&6QUPrDp)$l,[4TqNEq48S._hSRn& %_tZ$?Is(eheb^/l^P1"j^A-5!r;&#E@eu+6rq?'A3uB7$&+Ji,?iT0doL&E8fm#]G0a@Eb:9DfuIMcRRn3\-^c"B9@Vr->0nFGtY %2`L2352?1A?V"hd4M8D?H1T@#5>""RrVP?]f<9)Kh(l**)p\Vo:K'A/)h>R',`oQNl+GRK%ECN#Kf0bBB0?XL@rC"5kP!4TDu]Ks %0I>%PhS4D^q]cdA[kF@0=a+f@IJ`U8!<$(LCdm129fb7V?DB`B.]sd0GF;OlT`hjNeS:/\O/Lh"%MTmaYNgod-A_a_b@q2D;2W4eWrM*k:S>[s`44+0=i3GNCtHIEtXFpSPjI %HY`N]R>#$jqWp9mHnt*]Sf"fJ+`+#h8S]L2b8MO5@2,EG;o7Lrq$ProS/Yg@!cn`r8IH2HW0T\$C(^V+u>s1UG?^ONi.^USX*"qR2HqY.ms(Z4*OWgEIhq"*=dgZS$4iBO]c%D_)k %s760_/Iq?j_nY&8h#?("=#Y?q,B28Xk;TU&"afQ^=Mlf\\)$i<4\YP9h8?j+\)4sds'eTN,_,V.8,i3>8C`V=:W?.s:&[1Y4Ps%Vr5#0("97WicICUX0/),84:ucrcefk[ %KCGdN2pZ2(n<2oK4^@p[rr.\B2t-3Ah7S4BlgWm4p7F"0hnXTVmgg[5bQ%A*pMXIVq;p;e_(U(@+Ye,LJ,XtE_Cs6LP:bLsl@6BA %d"VIV[tW`>IuFAT5K3B\7bh\p7";FD\-2V-bski)Ne\$$iZhfcLq?ko72_p+\&+%HbZlPkV1ri(Bs %_J!lEr3ND/cOpRTFC]W^2KY(2ZMoUs5s:7+4#E9nF4TI/q7Hb"\_a/s.Aj4/AkYK(El %#*qbM+bp-rdKI0S$bNWuk;$:r6b&0:&-Ec&.HX`ANDl?WMn?K[QgkES6bH0($4.WHP]A7QVCBchV-VfQbB*p6+^IH"63d<@k?NaH %iL08,>MeIi^T4a;TYc"3rD3'R-fB3nPcYVH._s@s,U^K5N*K9-;56TP:<;W(3uqY=c%;:W&N+"'E'a$2;ul4raNb( %s%$JpEt?S3&Gn.f_-k(>K`=s65Q&cFI=6OR^:M%khI#`S)a*`bFBu'X&0kK$lYo!.Xq-<*e`$)'5O8mI0H[/Z4d8;tUdI6I^^RDR %*NlQJ0!FtM]A]bqbu`@o]dd)$80>#:FQ!#dE-ZSOH+C]F?+.rPEk8?=jYC2?bBOmWa8P]1YeSn!me?V7^?t+^['0A4chk)1"0fYP %]A=QO=1cZ3I^e(>h7T5#F]Wa3QZd?b@,0?j=4c%\*$!-\Ntaht1nk(M %!bm58-q"ZC#uUrkK$S,[62JBH!tYd\"GDB)&ZoZ>(K(ZUL/c?E0\cU;TD2ZnT4&*?)L]c7h`epii,8G-@.N!s^>$DR0pN*l7*c9; %K*S9Ym-+P2_!qLU@9tFgI16olHqj6DGT$ONlsMg<_&f1:2,:p:>`)#1sPMHG]qPb!ql_J!u'T2R_oO8APRA#[i$$"hTqNB6TEoRNE00i/[j.oF?oT*)pkgs[VPaE]T$u)$uuem&-NloO=PU,Z/f=O],$OFs,HRsLcbG^dK?3Qrlk"Y %VPahF.oBJNP*cp\3Q%K91&-)cJ+)@b99Gs8,Y>2V5p)=[+BLou59#%r%e'Q+7hDAJA1U@+$3$Gdei&]#-unu,EDbj>5bq[qQU']= %j@pbB$V9+]Z?Lacg>En1j[4,VHGOn4g?jEB84T2FMJN=C"UPZG`o2ldDIEaP?nO'?7X!DuAnW)jZ78ONL/28k"%^FI>a7"XQS?l2 %-NN08o3[%ZO<5)D/:\_R`cVYoEs_cNK3=^qX_KEin5om$Ma5u.q!\:]GR;$nK.bEe[hX(@$mU`c"XD*K"0C*IfL'ht&2S^-joSa\ %!bqoNn19oF:",5^*kKeIOA']*.>X.a-gS`6+IknGsqnNa?`3V4j:G#:K %^V\1O%R9jYb?j&?Ks)g7Hjq*o@f[`TNaeq!(`;#OY^e*C]!ls %5QdH2+q3WW`psuq?G2OM_[-4q?^W[O>4-Afq>06mmFf+,Z[_`^1.L&hGfjKOH[N!^XR+KFRXj#rZbXaC/]dD>$4u^lEMi9T$aoC'U11BIj.-#^7"pn#&.lYL %K:-:93uQNoBbUeW:c,[IMi>Ek[Lqc7W8!Jb@,W)=iYYM$^qqAt0;BG#G'Z!W4>.Zh %m&J^+X+HiVJN8CJ7913TRPU`mZGm`;0s?FDY)%GuU-!u#82#J>La>?kO96g5GeT:)49IC]JVdo'-$`2XtB7,gaVB1J\EB1%ioc@!]/a-g'8.(1/;uL%XS$Zi*ERh%B+KrC8@sdct+%fq'tG[ST0KDYiAm4p>AV5F7tB[I9")8K:.X %ih'fD]?2YMYdYX`3B-g>A6++rt2e=P2#12iHc[^d$Ib2,`:b!0"4WkCnlgZlq#2hAq-WmJ<.s_) %fBEtK@I**k4i6^I8+p/1L$[(SW@lLJmZ8P$OFoMUfNGX,r5YV)O5`Lob.1TtX6da2'+__nUJG$7 %o;a*BWk.b!/cAWRg.Eu3>M0JJY*reF@=K#4Khm'R0K%E\L_^8id<_"Qd(g6&6lP94S/l9Hh00o&dRVcG(`K0oL#'664NQ>oQSHDTVB`'F:@>DfhPT&U9S=e+i7'U6da%fKdog+IKTkcf5Boa=R)9]0bj_XM*%`Hl5f_NZ, %\L@Uok9b>jMDOtKS?_@>SQNWJS:\FSYBSupS]N`n8^g*%Ca.+[OHk&BDV?W#JGhai>5$RnUqBb!g7mI_ZP#t:$`XSN@%p61%*j7B %9VdlaA&Wh8d'7^n$\aJ?He'sb[sDsCS]TB<'F%^h><6n",SQl'GcnaK>"Rer1D"]GQ9%L(BgEF[#SZ5@,hSSP!li;([R`,'KIdZs %*#&GfJWFWa8/&u^r2=e7^L=Q03h[[fgI)gS"<.S0^q&m?Wn8G&F7QA7"$?5g=$/F>2t%Cd0m %*RH8Q7*>*8oAn?,b*:n=nl-gBMeo9dir]PKDj`>MY7o-bhXD8MCLFjH`gp_uGIh86k31+!D`H>$LQHga_G9h5_76P38#5^,!XhLs:ZDuV2G6@030_;e5W6.0Lp;)V:WiikJ<)[.: %g4WRbh6VXNEUDi?$UXj]aq,5,dTZ`e(qX$k7IV7=>\JI?\+SSt.2*Nsb:%Z4_Wp8:4fU8od9739hZAD<\h %$ce$7D\+4c+5$[;PR%*XU&Sb\b^>:>F>K+o'3;@HWZ]chM%AN:m!j2ZZ$F:U1cj>j]Dl&NrZhu\8SifdmqZG#9WVNZXnD<%(n."3 %O1Er(3SKe%2XsA,].FK;j/1DWV:eeB=B(-aNm=ZL)!fUg(ig<1jM3^4Kuu=;N_XZk"S\@4"1%7Iq\6!UISF0BbJO<4:+ko(]5 %:iK2EiL#:Znj$)N4[ptSeSh7tUF+E1-SeYnbJb\VI@re?@TmDFk*0MBI<4J9F$<9f[%6tsYK.6jiCpoFAAJ]j`l.1;=50QUD,D;* %88iQ6h>ah(iZUOKF,*A/!>nQPJlsDFqs%)ItqVXWZhRZ9=j6-=0G?ftWdK4*4<'Ld%1k7R>79$C/1Q8T-@a %7B)/@&tX_I:?*)\A*co@3^H;V6fC)ZduT/RCE)Ju`Oq[_V0:B?O]Bru.C#["^?Wj-LX^dE/7^.<&o4>0dU?QRG=-ZhF%B$iDG4hZ %J64pd):V!i>!@0!>>!-d]sk?`d*pfa';a2:2j5Y*iCZZp"hKa_d=P7pg\DRI,1ebZ/@3]0SrDk>c0:YS(/4483mM35.Na[ZCX58YS)Lun2I"+P1I02J"[`ZNF. %V+XODS+7cgWdD$p@d6`)Eg=n.KdAL%^lC!Un4.-\HW-4>U2KUe0fp@8=(@`NT<,#sUp4';iHc;j2us5gF:Z5mD!gZ8ibdZd@$cDT %"kX#3AdRYg,T)h;RM_CmT,sn!GQMt8/0[s^1hZXcoS?%X1m'"[i`V6'W6[#I1JW^g!]6bdBS;L.TPR:*",HphW.^CSRrTAc#1+'O %Mhk^LN0/]S=uq]un%EKa^r::Y^`4TY).>#XRIQ5M.N%`=6^VV^ZsXb_`3F=?doh[n#oLHH!.@!_l4]^lccaD'MWqkc!c0ec`7kPP %jfQP/eBW&d3_L@.TNp)DLQZuYFc;IKGmU/G@fS6(4;GW5d;i%p/H<;s&B7\H"Xt?m./:[o9;]AZ&SZfkT?[Hp7W*qBJqHgSoQ,V; %T"VeOV=ZBu&m@YK`0VK7Be%'k7#8mI+>/!R"IKF%mL9rnYkq7eK:UUI:Fi!,+GP.]S6aE@GsAHBMgS\J_tt\RUZV@0m.%2H^9G`$ %c/ak)29XN(-Qgg1:8X;G8KCN?WN3A)RDWaRLaG,q7*.]#GP/gC+'^"mW$8*0'n's8$X]Ns4aU4pdZOQlQqbJ4T0ej4+-BR7m":'kCc03pP1-dKko1RJWdNmRO51V(:1n#[!+D^F)o_pO!oCZhj*EmeLRe71?O1&?Om %<,d5]_&:C"J?dKT7e(Z1oA3P8]H8_V13_p#W/B74OqF@FQ`>i %JfV-DCA8X;c4K=:*G(,h,'^a>>FFJc0WmC:,'`*E`[Hj13f>se)'$+:3C\8UY+r]G!p7<1RKM2T %(d*G"WCH;]4=rOS.k9Kq5TtW,o>*17:o7upX\Zq5P!ls:OZApe%1g_,iT"Ws+,XJ`K@8&)LOO(+P'8a*a!^:=%Q1Nhl#h %B#9RuDXQb"EunSnFaPIk](Uqqbc:e:HmMYANT/#/YW'U/LB,MSK:4fr\Of\3ku$)/XRO.8:TX'($6*#bDPiJ[9]K#!gI.[[HquMD %5!9GD9Cpb!1Jd2gL[X,?RCff?J,."\m5mqP3X4tO$"WOX%Xud@%l3ogUdqB]RE[s/;X/W>b%Nu.dQ)!PnagC+NI^tRTD3F6kAqZm %ffYm&.CRS&qAR1_IJrILnroL&&,5fWGIK6NILsjDX>AdtUL7Oun^pB1`76(:do":k%-ODU&&YiYKXk8M'EU"Y^!rT*A1J*2%"\bN %bO2-P>Sr,e?l+%1n44CL#""PC,gY=;nurG<[4ch16!P60li2C\MrKV!BUV1,>b)8*ER>.uls2r.qFRh8&`@%'opeFR-?C.PU`trB %e^4?\n6S8;3b`iiM%VlH=PcbL:oahLG=QH2gbuKjAMdpf%ImOHmMH(5FXfD-4ei`5hWRnJVo1D39&7<'GQ9.KT>>\Yl>L@!_3?Ot:N+)2I %8F/SjI??F'Fph3Nn&crt0ll=f*,']$&gFdoO0^)p;8g*cAdNc'rehq2ke+O9aPg\U=cXNY=etJNHM#:ZVnokW6oIlk/]ZR[r#!G6 %@E_j7<,%1%S'^IP%gsLSM`\",j0uSjT2>f->Q&:2S>&f?30mBG(0r:1&)D_6%Rq<@mSMm5lFhd;j"(4Y)(4kTVJn` %:4V`tKOm1o/(:e7@<#*AkVGBu8C4$PhYFEh\YLO#[\rcog(-=hh<.[@8apP"<.9qU=[%u9[3%;8kl10!;iVPJg*eeMnI/&"B`$/V %>\_QVTf@P$UMg`as0OjOm>auSj'U!t#b(b*:ps#6d7:3VX;]X[JmWQZf4K7))D&N_Ieiu3!rR,2:9mqOY5aqPG!U4.CS[)XRHp.pCpj+q>WUseih"'4[mcrF[shAZ,./)4L)a:.m+_SLV*"&a/oNPL"dCJ]ueHi)aMrrq2!./?P5c'ms_*Y %hN")gD/#U930$KY19WO+&*Z?mMVo(WCZt:()s"mD]WGFPc<6;G:05"^D(1s_Zu^p]Q3BUeWTU=&m"SM_cm7.-=d.I;2p"[EZ4Y\O %!85o^+SC,DlCb):Za%:*@g&qC9$4P@Zr-d(k=>O\7j4J>5#>r2jHTq-q)SFe>!V_foef;..\pKm$dp:)ga#a*bmMM.s!oJdLMip@ %hCS3ElQV'RY(cY8Z]a_78)tSerX#(7!^sP7k/TU$T=N2TO8+CCG`s!dMhg#(1)uSOTt2W!,*39in./J^@3Q,<1(%(uD7$ElOqo?3 %Y:[Dc#8bWWTk\R9+"SYJhEYO9WI#,54\P^qfVW4T2+OX)kOX?5aV;N'8o7(mW4sCApkW^E'Tl:%LSX[n<(gF_=+,2@ %pjU.I32,qqis*rTj>sd3ZaN%5`edVZqjbp*Ze"6^APm][>4-\@+0V!BR*1%.dnQar9B0V`=1bNrH1V_\\pS,#n9&K4=*OH$^J&:q %8:\N/3&j+T7g4FEs.^373%b7J6=;tL2YkBGSK*:dWjnqVI;NU%bR3YbhDs>cQO*=t8iL(f6"=t#aQ-R1jA!2GWso/EZ/k;s7!N.Z %id.?E"BlSohb2JP@!dTc0(:XkU99Q__W:,3n[YdVm@Xlg*T9qb@=E#S(dnEJ4*Y@^9Fc;=TX$hlL&IpUJl;Z0"`sEb9)QDa]7,JT %J#!Nb%hh%PeKeRI4j^kfNUA'KFiGo4Gl>]S(QUDaF-*#fVb<%4OEHk0E/kGci's?lXLrEf[?egV>9-NXlCd*\cG(/Vl#&Ued!Z(^YbII&;R-X9R`>.QS?4Q?",ueM0LOsKD^Kj@KdToG@YH11 %0NRtSRU-G=?+2JG!0VOj^U@2acZOA-X\$[6>ek %b8j-%"Wf01[65b3,FlRj'">:t)s,A"QP[HF:"cI\\_/!(k[:='HLe[1op)l?j)q5H+O[OK;uUt7[#-\4>3*b+5LL4/IVtl/h7XS( %ZTkiIQ(G)D"u-cDV*l&&O]nRGg2>C"7q+H#_TjZ.`A'X0;1uNNM1J9e7J=5?)FAlO:GiP#9hKt4&p!aU9h6S@?--5ee-&X9sW@>&^DD2cMmM4Ok+f-u`$4fUICpbQiB3IK$THp!K^dIfK`D-Ud@u9rPn+S-eh]96qQ-=@.'N %NI@q5[$UV]O[A%SZKO:o0&g/lSG.(rQgiuL]G"SbHUZH,5bAoXIRWKaR;.C`@a?nXojCBfK*aMfXqlS"/!+[.&0"r.2OMRtj]u*S %fOD>@`i6p5pK>*)a&VlmK=ZDVr:KD3`I7M`1ro,o%N=,:LPE9I59C6.'2rZ)!giEuBBh_R^5)AY]=\j/MTWauie:14Ij>8[f08fSk?b`+0Db'_ %me]bmmlaW"0)N0Djf4sM,PdLEF8%RuEc9n`ZalVXLSm1A!a/0*Y/XMCJ%9#`+j/c#Cj)nH7tp08 %;Z.ln^.NdMGYEJdoWt`VmB2!-$ts_qE9XZgkV2dfpcO_0\9m"Tn9>SqdVn("&gGO)]/*r<54*^h.Gs!"+T>2bm1S*_>eF'#?Laa@ %mS>7TNWaNRU+lJ*N%4jlDh%K4LLWYjqu*@)M/f+"0@8,[>n7G2EEk'A8T,*2o_R]?fDB:/IDMU:hT0!^QQD%-gKu=AN]L(dZ<$+c %KKaJ8o-_L?Io?(.c<4Kr%[d14&Bmp;kE"%T-!Z)g%=_"&c@9GJhCFF,P.&#CX:tV1fS&I;`$0Qbq?IKC3M-BjLX%c&16eEG`)_Qs %54d%&>$Ca#2a8C,jtBa0ASLV@9!>/>^>QYiSY(X*-2D.6^XrG_2-:*'lQ>1+/A21E2eu*)EIe>,IqkVW?\VRN2)CZ.0Uke3(LlX* %=BC+q+1UP-->/\AEcR!i^0'0Wac_3irkT^ZIoXEFR*Xg[`3$#-e %B0BLiB--kpUiAe>^nL,KCPE.1:G>]mhMWNo/s)$$Mj+h$B)>c3IYFdGi":TJ"S@T""ZM-!EjP]Z@Y:0j/ %FSEi6/g4K>FFH3Le(9]F+e?D.__S7`OfBWGce2HV"3Jo`IkAm^V5P`b*#.faB>(TG,IdS:r7+s&AoBm!T$"aa9.MEU)r9(i9a+f] %TR#=_`4^pTa40JXN6m(W%P[dY\RrDt!,)2m9`MM5qu;?^DMt-h2_`q)L=K&]6_fr+C!<%uCcAM8DhMc-h5g!MICk@YfrfR:M$m)' %RssUS]?"D\&Sr>)ZA^X1&LM3o`0Mqu8lh'"rm%r`i5d*MA6;6W/FR4U#)4Z165G+pMti?A)>M%g?f_)eL*!UVV?'4+Js9dj$p>/9 %OBA;o$&,p1&P8=4d+Q="fQjh4:?(ag#uMTV;+_b+'U07Hq6\=]g1;lg8ZsrFCMTtEZ+0\2bFe.eA.q'g)#?P6*@WcDcI4EqG/*fteRAn@kYMFWYQ<4^BK',e1aTN^0ma`>\ %`KV^U\L/-U^"8EL+?;096>uR0]3M%?3M;0O2(t*BbP.tPb[@-VW#?O0B[0G[%,8U/er8Zd8fZVR]L7F7.GFk_>.'7sFTO\dpsYX6VrkA_e_=A2bL-VYhn9PokF/7gh##m$Wku_dgH+Ujt6a9=%JeX/";G.1.pAeKt]J %<3Na'jUln&NU)Y_\W-mMn0rRaJ,6;5QXr-slhUqU?2qd2f@T+ZOR0kTMr"#?-W]]sa[#d-A0A#W;GsWqgr$:[ke%];'B_gL8ZR-2 %KAWC=!7mjhe+'IK:Oql:`fR,hO0\h4jAs6\Rg>Y]?e9a%<70h!9qB=HmA8[C1&9Fa(0r?T\k+BYSqa>R(J-[Wf/&WY6Ic=(f3A#0 %A6X@f>+ULsXQmU*3=Om,OKQ:DM27]?Wue%FkjliO3u](4G_GNqN[-_BM%S=rH<<@djBmgdIp=720NBHo$bQ<#XCsjR7UCQshTE+g %1O9"g:tP+DJ.jO^NaSbJL[lgK=rbVT#9jqHCJT<3'jUl'dLO?b&G,S441TP0R^Ud8P.f9Z]H`L"6-bAq?gKKHpHBST*V3c">C?2u %nEgD:7oD*,I,i2.FA;cDO"/J:rHIqU,@56/oVBla:B'j_Cp'CsB^c=4lYsE`HqAdQb$?:cUpqLL[B?Ht-jbs$FlNMu3e&ufJZS6% %g"hXhE#]s\:rgYPjDc6QG++1:(JbQ$AfJ-RYMcZ=b5qI_VjRm]l_aujOmkoOCMlBhedGYcAs.=[!&*#u+FLnGj3`kb/!,U"1!c(L %gL;'us(G=P3=0+&JUV:4RG]sHFB]%.]l?a+q0HRYV1VI^<06A9K4:J@m!-+Jj6=jLV`Qu3md,20Zf=Ggn@o4FA#DdlGBQ+)g%!tV %chDNY_\4O_Z,./)r5J)Hrf$-9lhUURoA3j!@6coCTA!?AWO",,mV?94p[m\,F]$)iNhI=+JMd@-a6LHU.*X6GAnqnKS;a&%ED;<' %a&1%p7<,k8OLTfK.7aOip_l/dpGhoa!Z"<[qYV[F!d/bQ)+]CN'j:q+c"Hcm-(d@_WEHR\Mfp?ANFb30PIZ.t1.%[I4`F/``[OlE %J(I'_]js;tm__O=(HrJ"n?F*hD4n_C"<=N&#$>nqTnGTRTLh6V?XH#rCAs%->6da"gf)=mZ;7=Sjhaer9a%>%iMO9A"AYsR>i/\h %\ADct3Z?+MQfbPPo(#L,QA*AA1LBH(?MG7dNZX:14Z4(2.>G:@Z?VgX-hCdVOC8G/quJ=8`4?\D?\@J+7-2fg-uE)n709mD%f9Z5 %]=8Or/^CLj4Mqc7de+hRffrf+?/jJ1KP[n(WCba.>q5m+CgHdM`DO&LWs_.]G8$N?#E(-C(M8dS=q*+E@VuDW0FJR5P;nDmb%WG# %GYUrl_oF%NIBisr]gS>1.'b3sXA>_W*uC(aldN4Nk@q#b9+A(mi]d6' %`B(T#WNA(@ek0%Lj:3pn[7(g&4X+WE9f:6/AD(!oIm#D:X>QX7a-a^\R=$_gIM4`@[4D5Q4(N %r#bFgrs%DrT&m:cTDd7=)UD_$r/\UF^XbC5*),jn4Tj@%>76h4qs4SPK\b,?IRDT2$Eu)3j%+#^>eR4,.b4\O8#!k4,;TGQoT^&* %M5.9RG_9@RYI;!3Q#j0\1Nuqdr&9%fIbTlJjL&W)9F1J9rf8j94Fg^d#%!lJqLZR^3tH1gMq=$+o\F.MnEG/\4WmaUJV)gUmjP8l %o@0YCGlJUShgKYNT70<-V!iYf:%:?T.0tLY34<<>s5c*rrX>&lDBNS3aGOHNm;c]l:%-G*/M+p3$]`Bb5 %3PBJfI\eW&56g`WYf=/FenRqojsNFO56g^8Yf.JtPlsrpdgrhD`j=QB_USd$22Q=g&/I0T %rBRdlq+4Br04Z]nC-MOTNZBW_s6;VPo?+=P41:N:XP"=H"T=0GI`^WeG%e+0/j#Z8OtrI@e4l;s[VBL:C]:nlAEF]/ETD9Xao29 %4X0IsFKq$i,*:p*iPhHa^b4P1a/5J%m0%WBDRcNsOnnHO9EXPhDK@22NeV^m#TG %Xl)5j3@3aD4,WXmH>r%T]FOL5m]Ks3pM501fkE+&&Ge5=UF^IUMYq)A10n)+,CGg%6Ba'T88fae#] %j1c)miE7S"a&Pl435:gn+ %5'EQ6k@f':LMNKtA188.(sg5.miXXMc^`Ed$a$'*6sL7,:.%=p*;J1o*0=rK!dc2RJ.9W"Gb;3AfVK.+_EB#?c\k+fL(0*2jZ-iU %_JdoVZ=hO)SgS&)"t(H5U)])u7@Tct!L`08a)OFs65d9%8Qt9s\6&1;3I9!`SBp5__\iM#1F9NLdbY7'kOUM;B)&,uf5P/WkQ#"0 %M*]mn/0?BP4QD/>cSF?<6HAp#!diodEsH):'"+:U6`?.%c:kGNg^EsM;;)"C1BLtLPbk^kf#es5@-I!bTMEeJ-?0glQ74'[V@^,@ %(r=C?&Y,(n\b=/@o,Z\G,H2Sg\3gSnlt10EoFCq-^[jdc/FK!,#KS"b`^^eP#S$SW.A1[Vt;7RN93;A$:M#SXPZ1jaCPikZ",?rDZBdQ4<\>D>ZSF.`N[JL4j3t1^?<"b(!!I$d\Uo!>cFW8c6+NppAp),IR#:ss %jWo[N#1b[_Z#MQt"9nXuD4.pbC0n@'7$^cu&raXVFA8#\"#n&p_@KG#0,9%e.e@h?TG!Mm-A-HoD4;/g;ldKm'8m\-[_?'9p/P5M %Bl:(LN*o-$Z7aG<>:9QJXqs3`3Vu<\42IMl4,r0P,o`fSJ75PAaKo?!?db8fZTV,p?WU)`QA$#gVj'r$d"?"I[g6*CjYk5J,"9k4+nhILK7)K@d %G;>.(ki+k?6!77_q^IsLh:3_M#2gS'O-I$8>VM]abHX[oC!7nGKX@D%AS&Dcb8]0D1b7&*R\_U'.9/sWMB=$uWek-uJ09AlAD>Z* %/A&rUZ?9&a/W)l;AJG-F[nS7gFe=NSm81H4b-Dj_)4?H97qMQ;=Ro0Gs'aK,2(EH_f:%T_(^$\;Ua\'-+CiGp\$%L1p-($:V9Dp3 %rP#[p*48jHZ441e9gL5,lNW/p-:$5<'u?ia3)9a[`=R,,(UkoIks?Ch`u$_TO;niM=JJW:`m%]7Or&L+2:-MEeGuI,$S]KlUWQQ' %%7(FQ-]7+'!,O(iYeku;@"hbB*m,:pjN?VZ:\+Uar6uJqmHtY)o)P!=(=V/-ooC!1ZP,XN>?g?rqV]LCiEs?r8Oq[1^19 %JA13^;]Cl#dhEN6K`VOf%9&9p(n?d^%beo>3+Xs6)N.":aoN\-Ybg_YUtmMP3N>?9;!i_/i5CNU %-*,tCD/JiC@,NF`VK>NHTdX^Q3auItMaeONClCCE)&"7>2&Lp]$>qc*f.>Z=K.#X;`07d&L?,0&N']o%&tNUa$Z0hb2:`NZ!s5B: %UXcJ](0d=65lqjR+NJP9c>aJiXuPAc7ZbkA6KVlW0E\K5<(;bA"i+q)DOONnRu=TrRlF@IM"eUJa!N-XAWrt684HG?NWoO)2G)ZN %e2^fU!"6r+F&XA"hf$*&<0T6KN4/6<;:rVR@?sT=$?QDPF`P\leehKl-$e1g5k;/$7V)r<4TnK'79nOJ$s@3tZ(ZcbUb0DlabCp< %gK&T,#FN(B@5_lZ&^7a`lCNaB"M[0Rf[9FnT`kQtd2dq4`mnH!QrU[h=aD%_ %,`dZB'Uf$PP>P/!MM@daad-40">qRoJN+hR8=$Qc5uJVOphmCk=cS5Ln$^a*uj`i#6CLt3ME+PH-/7MS?`iWuP2&h&"p6gMlS&q;H5WffZe[6g^1?ti*6/,0)G0NrE#4+]WULFj;=3JnJ86`AD %Le3HP:fEMufRDAh1nu,EK$=1Abi2oCXsC>QcW8R4;;$skRfPi[[5o#!H00%=[[1iHP;rm+S5f#-]%[d@ZJC70+9:Pe[4NI(+Y^kt %D3tp3na+l,?u>0=DP@CJZNe1c$pb`bMF.cDLl5MUeubmf])1Rh>akMrFhW_^jG8X5-1KqORdPr3NP8b:'5>ps*N6CSe(uK[8uduB %lJ9%`/t^mD%mj"8,<98l^?8[4B@HGm$+nrBfMFe%?!I_5fWf98-I\!+l5;/>l]9.0=N.I7;!bQW0,#D(Ocr:R9 %)SrueM/SP\N-0o`VqOlfQcnpT$4T\MM'p[lOdu.ZX5%V7M20N/Gp!rk-673V\d-d %/t:.>@'Z>WYdJ0!(^1cJ/20-\id''10PY?LARg?)J](?4D)$!Ek)*"JNF:3&m9@m>l8XE+f+t&V!-2\XC+P#3Z)H3Gg'X:D%8[_8%"5RX1V(_rNMcGBMMb-Chd+>-N`dT7NgIt)$C$(Q:iF#Kp;cO#("BCH)`6K_5VN=e#9i6Hb'dAT0h76K!N_=!)u;:c5YbK2)u6=/W8_a?\2=7.?#W9OQ8T3u,YHkB6"e9`jV_d.;U;P-\?Uh=PiYji%32.&MkU %T-EJLQStpX!nQC'[n%G[Za$$19qV8#eFdaOHhq!r_cVaFQHrPmSl;&3B1il'?SRWo%aW<33qSLbs;d8M1'<8UG3A,'REMj-IYK[N1R70".bkfO[?L'aDL^ %Wd^F,6_GtY-UlN;"C7HfGD+"Ca"/n>'VDTS:sYbkT)gW)UC(^4\mZD.rG)nGY7)\n'9HIsN$-iJB@2>>_E+//@0[hsE$Pi46(",/ %MFgiM`#8q/8G%=,ZaQdZHJ<]LdAC<.(8^1E'T":c@!33chKJ6C!gU*n]h4Nd;qg&(B>G04X5AO*"Zk>#T/OF:;EIUp_mockjrD'm6V %C=Ra+WSS#k_`m8nFFR`$0g0[2ZCI'gj%P>#N[n&MHgRb/pI^moL^&^-&nRYs,*"U!,sFE0?28=M)cFE576@R@mc3$9o@&cX*X %]D='%V'Sf_(=,@-[J.Jiluc?C!u>f4ithS2ca:*6fW".jQn`Q=pH7j3`"?144c-V\5hejnjcQ*##YZ#-QT,rsJN6lO6"f]o4d7Gf %CK(F]OgE978o1`-6^dg.o)#chK\VO2:;nAp.g+>*[U>Nk.PIlX19_N/#\XhV:_1I*:Lc*^IEKVY.3C(Ob+!9p(e(@>fA%X1^a.GY %RfTJ&P>8<`nX3/YRMclu?qs#^SRB@;h93umJCL];NX%_pV7&67h#u4cW1R5jkO^4pl4]6k2!7Q'FGk#h4F1JK'4F2_@]a\PJ4J)F %;G_\K<6^uNQ8a8lW9&s^8Dhb0hJ]qrdiQW`<77LADgI&-7dJVA(`$*tF[[sYJi,BnY_PkJ %a;HbXC>d>aq,=(:f)i33JLp)RcTf'SNGQI_n2g7X2a@unRu-*`8X[$dUD %c[AL7S-^[Rl!oo;C$>I8JTQ:].mW.>&ZcJ5U@G2gS>5LB\cNFVCW/V=@+X@g06ZFobWRVk4Tk#G7'5`;,B2j.:Z3Iin&T0%/(1un %r'f(t,9BP'.iBF]4$:XEdDE02ZG>,=2B.7QWQVo2lR-/lmpZdV%^Z^MOiVM/@#g(e?W-H+ef-OG+jX]@G;cjG)QNQ %&_QGlckmYmqP&YNh$fs)RjJN!J^.mmnQlilgNC(4'Jm+JSVAt%VB_NJ[`-KW&Tj@A0p`_$R$A3D8;c+nN)mDhUBF@J&4Ma+kbktF %K3"q[F'FLlR%+t_KXUQHW:)38I:'[I((rmJTZ?tPeB@;R+Ed9NO-hJ71j96n!RKF"'`j[%`eV4s`GR\L#\&Y0icF1^OP_FL=OeKW %i@(u%>$WOV!6eFf-+Y0:_#6B!)e):-/>N4*/\>T(%H)A %YZN6>8lX`A[Yu;9qMkoT42$pNVi&k^3#t6Kt!gV7PL-2:I)(cYW\ggP`M6g1rJ]>aG#ZN"nFt//R?pZK)GgRcuZANdR %2;g6hWs1X.)c1#,Z2e[EL9:.C/XqD'08)F0,TX\%gPC]?XAl'2Di]AW+f?!,7@%?rqVmj3jbpVY2h%"!s6jRe]MoX6+;u*u0=B":#slW?UBd %OJAeXUAdXuYRE'WBhM<^WXY8kku&/P6e4a]"KgG4;k:>"H3/edAl8@?CRW1`6;plcUZ%c3>BkJD6..!f'?>DLhS/RQC^koc]!;^; %B0g_"aI+aIYY[9(Z=>k9K?.1)$qrK/9K7G&2[]Zo4fO#rL&1MkV?I)_aiW9Gh"E3]M3b" %c^Z\$6Bo&pS(ee8\uC!(*\9l7p&beT`^q%A/]huh2f;H14GKcXOou^a?<'?qBOrr&aeo-s'X\$o*TRL-P3<00jYS;O&4T*]Z2YM_ %duq#'":37a(dnjc?j*gh-@#G7Z#2_oB8L$?`a'LS:,,5\olLK/-ru:-elefI2b$Uq.6XW:7pt4VKKD.C:=idY:pX\&[o)f#N"V+M %7h?rs%fH^F%P5B*od#[@Yo1jjS0dbfBE/$%&?EQ*Ed7clk$/(@7587RE`+?_$&EXUD%OgPP-F)R.<"sBq:R[haMf)8#SKIX$(bOP %6fHb7UrGcj*erUMM^(am0`X)40CnN`^hK6ZeQVZ?O$esJ)YFP.\#TbCo-O[t93=Pl6^/0^O?:$cki@eUTV!K8Eg&u`pN9Fdr!i03 %`CoBqhb`$WjtK5ao426']&?j&K,G\eZU#m$?OiW\NMQ`rNc"lrqA^hGBYnKM\LNHb*LL)716@+VPm-EtUKdHFdXj:f3VH^4d8&UD %+->^`RL^LF2F>m$1$T#iYLKC6`U9NeE#%gk%SWfY>)FHjO?q?WqAf._X&XQ%SVBb1ek>+0?o@_.@(aijn,9iEOME=D0s/ %#_U)cet1#(36?da'X3Xp-:"r&8d(/H_\f^\DhM'r`anH/#Y %9YB$`4e'Eb)&aM./7cL0bG#=r:qRLkE.]GR+AeTBVF2#Jfn??l?!&=>9_lKLLh@(?CbQ&Ws%mYSFWRVR#6koXIjY_P7%g+mKW\-] %8JDMO,I"+$=;GM/=ncJ6b/Vjh'"\l`RROB&.Mg]:rJ#(QW+.Tn>+)ZeqrVM,9dA[dlB\CR"I6\M>\4Y %1\otm83rih3rr+mc8ub(P*q2^%T*ED"'^X_JOM_MUZlniF0PF57usi1c>D]J;*Tl8_g?k=-%2<>\(QR %3ge?*#!'W?Dp91U<9sm,omQ'A"rYW'cq?06Vr43gRmrAlLfmMIol(H/G_on*'2u=6qamY&[M,Qb1lgtF)PXJ4]_9O(Wtae4\qDCn %"Gi %!NTo&H(7ul^gbZtA3r/_V,)e6ZrIX&7o:]_Tn*TC9G1]\-[K&+ %,g<4B.4K4=PJ$$cF,j6o\U*,&fcGVq9#dCCDOm9"("rXMC*QiX/uu`Xl`cUe,#@:' %p1kX>[U=!TPXI"r1"'@+_PNKX_W,bONgQW&)'ss/:72#MFI=DbK.?V7i6)i-*#sNmo7Z4@>3Jt4;JbYZ8!R:Njl'!u`'$ruj-fF8 %[B$(ooitNY-ABj1`!h$PcF=O,R`TqWn?WihZ4S=0%QnMOgUF7+c\5o:!h#4eI3WH!Y&21O"la3NeH)KOWl0IC4Kgj/^juljnSCg* %`_:C@RslMSk6H1U]P-OXdnt#)-#s=,'ka4$q2^>l"Z'CTc(B=H(Y&C&""W]PbW1AEm&%e.osq.P:euoVOocp#/i>/2-%TLTW7_Zh %/DmM&4)7`tACNq)'iQrhW8h''!fM0Blr;0?L5nR?B;LU4,bFALN^$6=eIkLp(@nn/=c[:%7,l,sAlK>@aiL\a,qg_f:1)V0[]aDP %2#BD72[UJO`io)d'Z@ks5odUl@O/j-)E!e>$<>)KerOSAgF:#tnU:aV]@Sf^A"&&QaW.rtJMB?SX4'l_7Ht;-Nd[XDf20m^S"fa\KhYO[/>TN-r#"YM]I\^1,dT-#po,$KZS+O^`*lIr5C1hjIM`mDi0uX%[u$d %ir4OPX,C0)WFF5$D@WV`NHIq<[^<'VZ>iteO?:gc$:CY5eH4t\q:UZ9-r>aNSb6jsYT24O"dl_5[:,5j5^N8M#!.d_7)Tu;D[J#7 %W,Hd.A)4U+,AY+VkbJBW8e<@D=1qghPFg`2.H*mV_CUsKG\EAkA/30Q_^nmNHY\Nd>YHZL*@O(ta\f9A!*`nQ3Ds_I!s'lk[C<;U %+.'mVTn-$!U[t!(=N\j3@SE&jUIaT``-og72-*lH)I^HO'r2G:j6frUWJSl*Prb\]F&I;c'i$J`"K7!u;[TS69rn#6X;r]P0Wl42 %@/o7".sd(H,\[blW.`^X]!d#l%dSiR9N]Z+7Q+@WieYMq)5_\!JQl_=FZ4bCG$TuAW0P$/1DpV4RIE@EV;:i^T%6'06Qc[O8[E8*!RqcS[5q %n%_e1jq0SXZYtk)]*@Y]^hZ_rC49.-..V6FKQiqf=?B?*@'a?NMdNG1]+"./:pb74m@W0:J88gthA&Pn^s';%$cBHu%cjhZlQ%HF'HUn"]`*&..;cJbSjiN1%HVp&NuKIY %',i6J&AMOJ^E3=G@]4=@aSV1sfbWG^Ds0$%9'TY*_sqUJ/p;2,FZ*CgSi$/k'kC8ddCZ%NqmM]C@!JanR%-V2^juS@(Kdqp*)u'H %TKktS]le2J\2r1m%7jHH]t&s\#W'q!!YOm%i,E"5>bGC;B3k.A#&)*]+m;uhb)(,!Y3o(@^O"DED"IVQ*bZd@F]PN,^GHY"/Q5p>m9spCCY.19Ng6T!A]8`>M$"kV=$,a%p0ft_CC6TS=sSkj:dl4:'&Kb+_0k9Bn5ml? %2T_\NHBFEnH"\&V1PSn6$opmfKs_#Z#>/5)-S)XhY\"8\E]jsV,Nug`D>Ug_edW'`?nLC$VcdVJ8eM0`_%MaN^_@JR6*!+!n^f9f %#oc8h]!_Y82ls6,T_(JUX'dK;12<4l`L8BU`q;TI8m(J_CYQnkY\n,n12@J5%#;!ZD[POumoJA^0e>GIQB^dB6mpr/;)t.s9&:9% %D;2pA-cLE"V%d.";1*"u+q2UOudL?@TANE^/GnhDcPsMrbJMVS"\@7I`"(Bo9,^`Ets6P;!Z@^%Ao;ZZXQskcW_rU\U2%&bKcOT2QThDNj!`[T_ %B3j7U.Yi.6JQ!GH'Q5#BCo_$u3%/*%Ou[M1EPO)ESQ3t\R['a8V6/P'kM,!U6:tJ"g4?4.i]*l0BBi%.?3n,d5_+fdGLj1h_fAl2 %'KDN2LdC&@D*ljKKMGbUB?MaPoMf/FZOp9E!u7cQPq6>#[V.j_a4c*m"%Am@i(LC,emMQn\K2#QWN3^TD>Ug_edW'`AN3S29%KpF %N9S#[JMCW)>sFi$0,B2[fO6dmE<5.*@;s&Q)[`+NCdau8jhbY%'tRV# %PJ=q"DFI!cPJerRf+B!!aXX9?^+DhN.Tm3r#>,L@5mLW1nr=HG=u^!;og"%"=7*,*l\B7X2`*L^fn_/VT3%"uL?lXsm['beA49--5H(u)t`Dq`@1ED*AR %\6RShQg`6"lGMEHCLtc#TKbcDKEVVKE,e=:2SMs_[f_5F(ODIkc?`S %2@[i>*Vg2WAIepb#^UDpgHI6FF[Leb[c.k]4K0D-Ws@I_T^Jfe9N]Y?+1j!)Q/+G\TTXGV\ZORpH%6H-=?DU+TN"p)O?;/Y:((Y, %h\REMhtu]mp/,t.lg^UgKVPS#Jkf@`>$?,#Yh_$+2).]:0%O2lFA"um*KWclp"Em4G-VS"@@c2f8NkG"l'iP*mTO'?eXPrQ+@)d* %p=?Y=j)S6\1cUU08,%XTH9&rZ2']7jnU)JdD.Ck[7M*)tpdfOeOom1N)j^5R13Tqp*'Y'uT?:sK:*a$fP=P'i^'T>EDJ`@Rff4WW>-7^sL3.p,)o^fof@(iJ@D'+tZ\fUk&Rr9kCFTs90 %nnnX!al69u8:th,//Uk\qV^Fb8la#'=gr70Hq-bM>'D?We$5sEG^ %dfe1kZ6Q6Gcd;cY3mak1C0OA?F]cgRM_2'WO+I8X(T`2Ro.5525U3K)G1!`/f\,P?o7UKbi(ciL@dM %3iJu0&H_7Ug8%7:es>a`8h6tNTGk:4YSOZP@%I2^=1ni[[e8[-le;&P3NO_LSB?S]Eb.sXY0:tMh@?DDfpqR:Nhf#ukVS@Q;l2d@q2``KPh%Flu9_`>mHUcO=.9rk_IV-+bg %%eLO,"&"KX-.\4%r[iI>5Xs+Ile;&P3NO/Cj,]Kpc*ZgEC@K%J2*.ZND[k-&LNgSM^l1+mlM`P6F*/p:E+AdU3md\IJnl %8D?%>qktLc%0]L<_I5aVg=1d)7Tfo;e\U%q>j_%40$).[C`TC+Q2:3W,o.,RCQoi1+'5`tYcCe7-,sCe_34e?!@h6[UTSGUP/FjL %r5m0l5hG1T$:]aCmT/8i`D*nT;X\Vn2_*b)5pZX=<6@gI.c6OA1U\%L%[8"_!X2fa:PTXboNGC$m=52%[b=m9[L]D`h,*$/`Z*cM %AT;<-OR>#75!Z%&R^nr)pAjo.0HM#7O6E"G[[ct>CPUcG6n_/jD!SUMHoMe[DtQ42\WIrX#Yb.Mlo0^@U!8&+s2? %,+!H1"^ZT,/[='/<"2dI%]Ep?>l;mVSZl-c>%-e`l%'JUK=+mN_]&B2BtXbF=*a;KF`%(r%I8`Q-aVYrGMu!)8G-j(7`Sc_DQ%,N %m:*8=%\^e)[+V0"Hcmj3CP3]V+4p6KQu5Q&,.7!3rqcarb,ST]/c@X26R>@Xe3`D$jKBZ.=8]!d#lL35k9PF68i,qNaS5+V)tD8:>D?#b4AS,.T*9gB_(9,dfngX\9"Y]cZ[ %3\SAE%9_UTK!P?`lVX+`R\/^8JiE7S\Wl7(>87'e!p]gngf]uLK@;;kN%H@fRB)qRPa@dQGFJPLfKm4@.)%nlRtMHD&bfE9pY0Ff[k^+E\]4R*o%4 %g0=8:3KtHaSBEnJh&&hJ_;/[.G^K&&@*:HMA%]"3kURq3^9>%W[MCY2;R+tm5d($ScAlN9!mWJ5q(Qac%[NJmnfn\X- %Y"*ss""dt-ZKe)^;<)NrDL.p`eP!Yk4]foIR8%?5U0G5_)I4mB(0Ya5sOCBQ,F7%552q %S1'9i^>"1?&,jT)/fgCb>X`a"+jI%?b[jO43Y.qq)oFW-W>)V!/Yl0Xd.XXMd-)oAFD^nG*5]t!:LKULj_n"sf8N]]ZN]"K>]QD/ %/6@nSY_(SJ<`5*(l)'5(eoo&*H>BT'83Ke<._+e[%]eD*iHl\4-*6gk[I*!p=>r&rR:V--kEIffFZ.43K2]ON%6?'5R$*/Ii!!%- %_E(N8>M>4J1Z&o3Z$)f45S8+B^\LL+@X)sSWu_PnaBLT?rGW53L'B"]cq#"QT:!J)mT/8q2g2:#3#Qk%nd\[+l9M0UD!Z#f[PY*A %jAZKj7Mc<7!/pO:O@G7B>]rA_8mUhcC[4Kk82h5BBeJ4^RP>ZND?Fa%8SYY4C:jZokq:DT$NsH*KJlVq[_4/K@J.DrFo$80)&GP4WZ$"Z9#Btc&i$@%d&W[^YXY'>_2F[2R%kJ4c[ %9#p3HXn3YcWj;9RqR1fW%dSiR-`Y=P./-CmH`PLTXHCh,@3sm/,IKP);HBP??/)BUeNMInFOaJ5[+A#l8:-%*f)]6<`HBb>mDEsHf+^2E;I-#]IFTOC)N+^l\gbE=EcI2A %Y`c:l(%p*Z&mgm0C0=f$4i?MIB"\sQniek3RUS7'FVXXn?\ubpe@"[RE]?#<5=%m^IXY7s^K4lai*J2cdG<+mIC6XYaqdV:/$T(V %D%kO0nE"X_X<$LTYrH^+RGtIEl7/qA^(Q@iX_Z\3jfiW9E3b]hg]Y3FAsHI<\$V;^RTJi+Yp@QH>dZ,cp9ER-^.tua %@<(430u\,*asuiF^']eaWG@unj_?b6j$-[-*VRb#f_-dG$aA2T!FSLH(L.R1gjEfO*F-!;Fk=(IX_k:c@'@GQ!,K7^LUC2aEBWek %=Bob\D>Ug_eeJWh>D4@R,W[(=u^@[L]D`h,*$/VIIL%;tV^6$7l['`DRnO>"oW[ %XAr9aL:n-=O@Mc_^"7+`GGZ,'%eCE;*4XTmECbFV("WInJ]2c_[I'`0=>ppRQ(]%Q^KO(tWZAIu9#96p9Cg&&G\D+@oV)BpO?nf: %\[Kl2UaJ3X[0'\<('j67;B4+kgC.65Oro*1JD0-Ieo@Y5RumrlmJjJJt7mEUP2]T=b*nT %$4aq37'3D>@n<^_TWq2<#Yrup.[I*hZ$,&G8K1c)V(AiC9pJ-PXSU)6YJ"KhPXDu*^jfJS?H+OhX>q$OJob>#P6/?%k^dJ_84=7) %Q[%Dj#8/c2ApK?Km>+j*RJ#0%c"HBLXdlSp`?s1/&&KqD')j"\u!6p>B#t?-`m!,)P?_qFV6r %0C$*<[KTRnrLY+2"8;"1*brmUiTq@P]'m8r/&&3iD')bJ\fUmNbdW,3UaOue[/,Xb>FcHn".J6uWi]6"_3*8Y2p'`E?PqVP[^H?g %e'4k%F[0#V`Ik9fMT9HH<^obH@gf=$a`@GT;gQ^[J2+pqF>JI8CF>HMf-HhZ@+lWsXGY?h%O)PCib(Z7ifTkC_[.H;@i$4sl&- %4o>t\DC"L)#10BRGd,^i_4Hrah$&*RA&)ZPjasT1$LKBA*>[3AmrGe9%i&jb]':e=Yb^*$XB&3;pV9d9n\''^rGW53L'B"]h/LnD %N>And.n_RTEgC_;lMD2IN5-Q)k>I?mVF;Eq*7W[HVm%)jYg?iPlgnUoZ"kB.BYHpeJa!#nY-X%pI9;AK6\1F=DE,O2V2s/5nR0!s %Al<'P\X%r&0uXH5TO&G/\k]Iil5f.`/:r)?1!n'R'Jc==C^6[H4T"U/(le;&P):g#hpj2gSN)oi4eR%cRX-/&tS]YVsAF*fV;cc_-/2),7U1n]`YG2MXPBN'\$P?dN]GcPmKDCZU%Z>`IkQl$MLq%]0*Tp$BD4KQ5i^m$QF7pZpf"$e&`j-0NWV?K<7b'7r%]r %Hj@G0HAi\JB"QJo\'DZg+,F_))T9QsF[JCi=X)8VGFSdWnkGsX&Y8g5l?MlRsk %qB?P;(]?s1)g%P@g&l*kQ6)!>>3R0ZkY"bj\f'-q^$'(_[;G6pHi-Gq;,8OS5hXqi2frok@V`.t47Hdl)be+?.I1/fAH[(;/-9tcPE?fo!1Q'^(19G4PFT8!XV0Hjla6cJ %WuhG2.gV*Ik--UiDY1B^['ja#lM@!OrcJUQf\EP[Sc72mV0%U>E4L__.Q6CW#$m.kfTZ^b)2biS'PhAsmB2*7Hp!Zde?p\Xn4F5lE^&g %D/Hn-[9cr/i/)P7kdaibCL*5I>Uuc2HtsE7-VqY6>`bsE[4VjR6P4)2UhqYlNLZF/g&\gs/3UKY;<`FmC+K5c>$[GCY-hiMW7L(q %#!A%5#!J$$;(a6C>!iI*.lOM5D$:^+BL],J!dbKQj9jJHEOFLn%r@M6H>'FTdW\m\Xn3:jC:!PrD/Hmr[9cpXi2IDMQpZ%[HX:Ko %N*rf_K(EhJpW5,qCC<"BXk%*8I7R58Rb"pH'2#(P!Ea-Do\`nAV=1hC>NoeIeRn&YgY-i:C;$e<_%WeecuZ3i;RJF+#d/5^%WtOP %_Ne[u`gVtmi5W-=>:>R`6p!ade?lpYOpk!-G!ms)]7k3gG:P?'U]fh!m,Zdo`FMQ6euK\gf932K;Wk %"YgLic-YbVXArGME#%[7?>JYfIKj)CQ@?9ED7?\!lfoNRPn&S$M@q.(XjYXMCHWE&Ya3X-%Kh:$,q%#8e1*&k?>A\7f2c42DnU>0 %Y"HkCk&L`UYI3pn5D-+290_1^G$(p>]"/,BV8EmJW^2eGV54FKH7ApEm,tO:=($$Y##Ef"/U1?\4=\mhF\0^^on#Yr@R;qY@K]Uq %Q+k^NH)7,u=/DacChl,6Q9/C.JLA^M)in.%[#@haVh/u-<\CDbK'THQJ6JcQOfAbl?/$S&O0r=aTX[N_.+_D^3ur:O1P4gcK4t)= %*N$8V8ZsX+Ya&3l](EU14nYfGcb[4`U;A'+?;A:rX9SpmiMK)D3Ph+K51aa=#,4!r$CB8bNbtPHOr\0$[0,t.Nnt>WE=N*n:Va*\ %9.5D(8aL0PLI9(<+V6$`$R/R-GB&f\kCo4KE^)$Po %$`+)[!0;^tV'c$ke^m+3+C&YtAH3(a(c_TBacs%.>4*1N_9r+s3^u#h.ma0ZQ[_cfrSd&/iQ]CR58J9gHZjH65S([!rd'"c[mK\) %$eaFp-h-*J&*I$m+5Zqg4o@`!qU7D'lVE!m^F7pNq0i4HE1,U5qj6?X?GAXU*s_L\k9%FjqsD-O0.S_RuMLhpZAITHTPm> %bN>5mnd72)C<#%Y5(@qVj6$/YZgD#8O([W?r-5i!&^p*d=)n3;s#E0S4hUc=osW*5nG4b:DbGD37-L7EkI2NkYA7hLT/5'&/X5Yr %j3@<;\)QQ:_oIZQV^q.@r,c?^+,alRHF@fFoZa7u8C&s%NiVJaDU35sn"L#''d'[55L(q-Ag$9`pr1iq2D4.Wj5nmj[jV3EZ^/>m %b;5jpjYs@)qi_P'J%Rf=^E3hEc)TMcYcKqYAZU6.q)ZtN.:Ikcl$FEmM_Z\raN4F);Po.E+np;.B%WW`flAYc2#@gPcVD7SGS^kW&;T,D,f*AC?C]dj?!i#i %4h7#dR+3ir_1=:e?%;YDqs1;hLTIP)n`&lg*'<]Lj3>3"e$Esf:M/G^U%L$0q*iOZs4b%(s1N[grqeR;A3X_tgT'5u=^+*la+#Ba %i,@61=1?5VeDTLE\=J&co]2Cmq[Q1CF8=_E1@U&:$+ACjrn5@9^Lh9\[Tr+BZJ\M70#CDfE=XsKUS$sX>sEJFSQ!;HqU&*pD5Hgm %PFXFNqeGbQkFK-Sq=)t@Y`&,-^R^nPWIO:H%m.<^^]!]nluiS"rVCclmV%ms0R:sA$a4YoIlY.:i=,EtLW#;-"Q?]@rTBZc&l8'h %7/ZW%h]6!0?Q@pmSc/:pHi*L@PPF&%XJKW+/Anp9P3=3XA;S4]AjJp/CecOp3I,uNEQ0=r].Gu&D5eF4A*Vgk>rGK,lh.]qk8,L% %*9oV^Zi0"^k5C@m(Y:lfk)S1@q0s._BnsgWN-p.m,t":j6J4\[[Y,(Vmr4r\SUaU2gp`k-?_3Lb2EOt^VFA02 %[5rn5bJ2iATP^K(F)JeEhVQN"hY,g_c#_e=gH-VnoU0JPCs+Ea]G'aOXtODjL1%'K2k&MJ?Zb^o)0II.d2&0uDQd\lO6]l7qT6_& %-bjKSr,T\n:N#h"4+_BqA4C8"G,8tXB/$Q&B@OJhd4Bb?sQo!FLVKfj2m %H0X3*h`[eXI!;O=o'6'l6g!6epoD%NRod;YOC.Meq:k_[cS#3?EUq:s4.M6%ZEITIFHlj6k;NV`dN&9N-dJr3\k@]MccFVniaNEk %`Iuc!]N2uS]r/V!C/=`ts(\b8qaL=kr:c-?LV;N)kIimf]Y:_R^lB+^359cdp?qkDm["df/+`c,jS#W7=2/PIi[alp*f=3=>g61+ %il)Qt2mCT(^-u>S0%IG`(:iP5GdZl7=\ltRX*ua:l* %D>8?Gi59H0TUmqXd^qgJ0o@S=.WeY]k\a4\'LsQSs*FSDX@nl$k%`Cmad.A(8H>As4<]Th/mX`rMmq=aaB]8nbJ %Zu>>sT"BNT^X[DmdGN0KT05$f_Su#T*F3"eQ1\n3_5r%Rif!Zpm,I%$kD_"(3<.sXg[b+;;^ch"H"#1q0a:N,\L0q:46k+0NBRfD5*Yg$KS7B5bPp^,`a8do3O(R2.m5@V>NWm7ahhKZ2TN(n3]XP"D/A %(FT62IeiO-Y.(P0'9Ir%N_EmQ.aBZh0CoSm?.2l]EdW"ilH:p/JCb-ipki%MA#;UTK\!bPD#*T"m'I>0S'N:?\d5O4T.2t`D*0hs %q3Hrh04'*51N\#9jWFL#^2WRsXK-cSQ0VUi(Q7ZiZ!BIg(C!M9fe1p=JL6>pG-T[P(>Hf;]3&kcMsXuY?-Ki/]B`R+9J=^HLMp:- %g-OK:6`_).CP)@U&fEna9@Auds8&(/7WS:4VW?&o%UW-)?XrBURZd]='WmuJ]",Ljm,Is:D^X^lg7!5ALFoM#gV_4#nhLS+HYS5e %/s_%T %3/>Hcn-ft4/-2AN$+N-d'4J/RG(/)_g:Dn*@dW=;S]@;eMDnXlumcNU&p>k5:fB4sL]'67iCQZ><4HoK.g[j1K]51?X*X^0k %EIKX?9#/gKjfMUR6X6fY?@H0Tn6^5Pe$jc$B\eL;,\\=TM[]n;?+6ROnISg?>9A890 %c_,F4Y;#duVf9mY$K^\3=\>A=V,4&_`>S#^WJ".cZqHZ\T#G10O,l6WJ%R2NZ:ef93?$kbC9sO(XbU8)H%a._\.0atr:>,lR!a*Z %C>o`UCh?(fChY0BN1"U"*0L(+ieZ`u@>Q5_;%*5;Tl%D[bIu^WmOaa[=0pt*Nb[5j6a#,I9CAN/4c"D93n'fZ/NVAHktIRqs=Z@k`[IA(#$!A6:`(UM5$$`2QoZ$,gsESGfAk:U0.n+,83J\F--R3VD7 %NONj]Hu;I+=8;.Q%%VP;_2Bu3k9&k4%U\_[c276l0\s=;m9b6DS"ne'I(X`KEdBVWo>]@nAFS,mo3Ue+e+,S*X!]H:b+n?-TC4t5@0r+.;uujZI`^pgWI]O %:t:8d]`u>i.kdAd6+4\Vt_=P:R6?B^ZANYQ\^Kkicqi>F'9%da2d9jia:rj-hiG%5NG*F`kYZ'>b^_r\.s-X+\kU2mk:Z//FW %cao_uAE0*::G\).g2/XVhHH6:Vt0)-H_ML'LuVa3Pccpr*dAO*Gr5cjiqhdjpFU%tDuOAmKRI/E5"jjbD7UkeRjF?%XW4R[_kdI, %aY`V+X8%!4_;Cib4C<((SFC6N]`MS_L:-s>Z`$m9"DYXL'n6caD=&qD=7I.j@]j?+VS%_l$QjcS%Jf_Rg!(VbDk=iTZ9*NZgQV)= %SE!Whlcn9ub;M!EJ'G>Q%ZOi!r6E?`e%b>_:VZr %1qJ1;D$RG8B9E93lbTdMH@QT,?X@"8W\oY=?E>G*n#>=;Sn%6p]f>SP0E8-(GCR,K>@/EPO9`jNJ%`Sm>Nl2^G3fn;nEbr%X8WWJ %rq`5`^d!8=bN8KM(N4bLGk1Q`ZTZ"2^\>5/X.Ok87dYV,rr)QR2]p4-C@CII/_9";?ck&%Zi'ODQ#9b%A/c@tS-32C57&(t._a1Lf&MU-24+/1\P"F2_:QHnek7EaST*V,)cC6YD%@#$9d2<8QbkRYgC$Rd'0(O5fbctOC^*Oq=b[g^jJ;<9QH5Zj+n-?TknSUThI=;X6d!uj@^PRb>a %OaoV-XRtQUJR[cFIJH?0_h(9;i(2^h#%\ta,^f.ug)0nD17jfXD/"jI>ei@gaDHotYg(:V.;LM`=osG1;23E"J;s0).4H!j/NZFc %MUl:lHsf[7%[=CUK<33VUM1`:lo19-puq!Z,HNaA^b&`A40U`^7V1=_TD&SeI3`dWJHdWGFKj<+S>4CT..E!,!4Ydr[D'6&ZuK$T %IkK6QP<"q]dFRdZX"d5o%I@/&cFfg(8bM:\QO;"YKW+HJ^Rmu_b0"5Xiq.mN-#mnIKsKBmQtKV`p[,(+;+]_B>'B4R;2ic4A[&LdH2=%)FSk_(o^'[[?2]^I;fqLAl;_Z!ce$]rh %BNGIO]'KLL+hM`P$r@8*a3?HV3E;Se]IE'?[@af`6qdBoK[grWV?^I/(fufp/292s9GO&>:YA/u_7T8ZctT=f\SGAFRAL,#"-].G %4m\9RP:M5H'_HXR0'U7jnseq^dgC&+\spoq6;K8BbhZj %^_1V],SZ:U?[aoU"X/mOWg"U#UX+LM`[lNB4?On"6?SAb=srCa,C,"M#,7NFOQ66M,mL(S*L(.\K>>U'#hQ/g:8`KEBq)Pk%XuE,G&8SOA:#$(H+4,@A&[aK-2b(J!dkmKH\)p*?L.68$UbYJM\! %""g4G2TZi8NX#\-A8J&;4q'#oOEiu$gQC\[4VdL<5'fA,"%Ys[nEoiP_s5B4`?54Fd4pHAM`S_49-sJ1P#GLOY7M!nTrlbGk;oDK %Bd*>iTL^*pZiK5uS^o\KG=QE_^>h/-hnP;$KYnmiEr=[A?@a2$$hgWQF0R-bjTefbB?M.Rb63L,FJaIWcitc%16$3JqXjkJ(O``> %*C2M/(i>NjRn*tE(*)M>2Pk?On-*M7D-/e5.rq$fM&AEs/EN;](J3!eF"R,4b%;U>cjU:T;3Ltea:fS8[uf0[G6AsAG:tn$g:!Y@ %U:(58'[IiA]!_b65e;uC]n_ucD2N_?EksET,,B4<]n[)@,j[\H0Q$&V!%U-o$2O):Sf8G*8A:,g7p+>0nW)je\%F/Da_>2Z7CQe+ %?>]pr%h^.iau3+kCk!f-_Gi!jkZl=WF;;%s;!!KN4H"6qb8";4O;.i=^]hV"OU<5;$'tu="!k,rjqBJE@#`ss$_JiI&d-;uHRA@G %dV@e(5[KJ<9opn//04pnDOFA9!>Zc9oNC8T5V*tU[u@LeCf7G*;N_4kbSt$RVIB]_1ddfL/2'g@^F[C(9H9W-1lt!SP01Z"KCZn; %UIQn!"(tOp50VA"8'JUS'q(NneHKi>!7tc`j"DpUd""[JOEtD2=;R[ENguO+it[fL99qQPJL`-"^6"s\/7*Q(XIL/U\V6_p>e,?P %)8%:7NOt$03u2:>gW#F',ES3>_j<^tbhm9!S\roEpNOq[pd^WP[(eNksU %c-R*e=i"A^?F,apBqOEG\LcV_SWpQ3do;I(7M]:2-EKQ!Mm=<(4l79Se=csP9t+qr1l8"ZV#Q>6"QXSnD^qMIf'euu1H3,jZ"DoU %^uJons2q*ea5[p$=W+I4'co"Z?IPb;)OYVgUQN9r@mugi=<'9k\4,Qj,+0agTLCdmP[h"^U;n)BajVOPE%GLYgB6"-,D[Ta3LFa> %VVABsf!n:U\ABDM8*N:1-`^j/lqVbA"[uZ>+\JR3QNm>(`B(66=R2k:Mj-1eA-[TBDMn)3'tRnpqgjJEOdG/RJ]T;WOfdrG.hYdk %RV'4*@#7c2O&t!<'!it;hF1h0DBogS2=Z6bJ0@WW2^LRm'3cN6PW*ENl,f>H4.(iD!pPWk!U/NgUlo'N1IP!OFR".O5^I:I'?D&r %*6C&-`r[gOVB4t^(bMMNP('WSHG&9t8X/afLm=HSZ/HV!U2V0a!oAQ+W.dl)10OlmT?PTd*apgE!uui1YW)7[*0b7Jh8hagm:HZp %fngH1QIE*X=np))lQ5_N6/BdlKW$t.dRIp1ZPa%7J6bJVGcY[_b1H+)_+@&1bt9DI"p:_i^oENA)50:Gn"-6Z-p!W,B< %YM9gb$31EgI+@.MO`5**E>@o6&sH3.3Us80GV7u)?KtCHXk/&eGUoa9l'OV.6;op"HEcF1J\0@0^*O>tkX:.Q#=p.iUV'q?AZm%P %P1j[`K-@^<*0jJ6D2"q_H42QZkb^BO1(,i*Z?h0dA^mE(qq,__g(n]Yh!.Wj6\ZqBg_Dn'N;LYi\:-<8Itj4Q$Tb(2#YcU[/,!o? %:M$ME<+N9,5$)'V@MV>6MSdN1AR*T_Hc\N]AYORZ[W%[A'[!oi(SY]DKZH>k8WjFr6=No9EbdOW6#u!2aiIFe@.sn&02f1"TU,P' %jX<88;q]L6FR!F:eeu&C,/TZsmK+hu72\&0<"b>ghP1sMa?d?pSk)X>&9:l$(K1DI5SEgJI"n_d?mQG#;UE]#2&*DJ,aJS)69$i\ %71Ii30EVZsAh<4n1K?30,GTAm9[,mp,I9XscHKV0Qu\>p_>n-&^_K_EPDRa0!OjXC5OJ-U#scn,lHTJBGD5\>UI-)T69oEYQXDEo %>'N%g3I?iS>Z/;qN_$OCW(2nF!&SJE+OeM15*%:41HGQM>S5s4=K+iuERImj',nQi*Guq8JF8:+)RX47h?^rKX%_EOMfegnP70#FtuU[-D=LPlP7g8$%lU@AYUW+q$Ulfi[2'!.j%@tF$UVJE%G&`3$u#:+l`Ca/*4bpZ %/!5rSG3#SSKud:7<_X:Re7neP+b^caXmF.VDS'me&mLEQaK_"OUVlF)2]fW`;^.8niq(5&&=Z!+360slMnOPc`j$haZ>h,Dl3rn? %Mk_e3-Z.rtFaUN%]91(`/)%>iHB3bmG>*E=@KYQ`c+>q7n]s/o6n@u?Dr65]hu7N^g]+qoT]i>X0LCXf\&h29MNI:a##=`@B2&Yo %c=o_C?U8K2H^eiuQ@[UX"A.&$&I-'0,F'a)$Ar-=Q7P&$WcWs6BFsZ1pJKU:"H-kV.>$7I$p^<87&>-'"m.',TB3F5]%&rBElKMK88i-&QHp]Up@bJhnc%HWJ(2\:M2DN6'?JUrL6MCAoBDp"s8aVP+-"s:@W %$`&<;PHn65SLIc$QY,>qo>lMd&JZ.$LlS760)euoci9WM)heS6R.:(,#UXL3d@O[&.bg^@ML0`;a`M(L"'Bhln3hIY+ %bh:&P:E1SZ:(A#=?OSeC;JK+4Hm")-.SV5LM%%_/]m/2[lAmmb-O969PR\>G#(`T\tOm$.@ %o%%p6]#S.[jI:Pk^7)/27<(=C&5=03;93=a^`!g$JJMPG69V*N2-(#;Bi6)]eq6]W<#dg40K<5`IPdr[MrFmpad?0GCF".uh#RU! %;&6bue:8rBW8SgQO9N^?[`u^lM*fVu[.GFe9dp^+qd]e6dD;SiMVLNBMO$M=l(1?%p"e:$$@mF.7[L*c\WlU+I&tL>>^)ZN%6ge,[ZHa&U7N3 %"C9,?j^-@!K2I.DNo17:A-($`1\ml9I,H,!O)&^Wl,P:1+k;cn-(P)6uU#H@XPN@#e1GH9Ta-&#=faGaI71E %8J)1N&h"%$]V['BPp[/H-$Ok#?V#d4pm+!JQchCd\2SHIJfQ;<]odr5R?mHFEI^I2!6gRI7bJ15!6kP_#kIe2Ca^V%)t&g;_qS`1c;Ld']XL")+@`EaPRjk?Zp#Ll^O*=+3m&)C*!F=Zt4TuB2aurM(Gou`Pi85'hnGG-_uGB.o>.5Umi-QZpb-^As8.M %&0=?1`A&=-$Y/iTlQq@)4VgCJKu)iEZ\9Z4&97j0X0Eg=CH1q:/]nWYWo2B^3<0(H1WDC_+LfGC`moVA".pSE>CdBN`\=pj)qn?/ %,=5cH[4L)EI#uD835bD_)OAZfp"Z\/DDc0;;MUL=j^&`lOAe;OB5M8*7c,)!s*pZWn!k=b\f-9ad=qE.O%K,OTj3%ap"ND0jr!cN^AS0E"p5\mg1oPB-a0/+34XM?(XZ %+-.BoA<9qqr.#0CQ&tWq9lSEt[12jYg^f)$j=6NN'gjK[-\q#G]7%mM;MkONL(-aM/aCkF_M^oXF+?5m,1DD\JnJ=+J0FP&QNnrD %,b,m6u)!fb:sWHsD %\]>R(6\+dNj\FDrYbB!uh,I.,pKm`WDM+uM#SdfS4lr?B,Q04@(il]gT8-pq)%eifLr)(JJq"W5;LA&)%<^l5+,:*V[W7[VY&JlG %)i4s?Qk3KJ9QgH>YO\]a%db-'d+!=p$)po(k\<@@Q-U^(n9<(L5N %\b;`)cqlP_$&QK78d%'Ze<2PR1,BULbQeJ9U9G=AW[Rb7-r3=c5#2E^@UsF)o)Su-#&c2*%1XiP7%Bq0&tC&jXE_PW75+[FO1`gmQM]LDdY?BJk-"KVLf2TI"caVdf2][12oUr-k)T)=WYk>#Gh9**:03ji6'Hb[QkLdjGd&nc_FF/W$W!2HhOe]2cESnl6BiC[#)[=%=iN"$u5k'G2U+#t6\UlmI[hLG2sb2LOTg='!C;XTi>Z:^m4^Qt]cDQ-0:i`ATRs!a.&oL;YlUK*UC#Uoo;p:1^VeX-Z(&K9ZYJaZOsge.5.nRNB7[ZH3BWib0t^krjfP>>dLFu!r47'11k#ao2j\"6V&Z4"YSp'\n@&]o0sH\=,]&eZ_,M=M(b;>Zp),[KpGWei5H^lWhcQ6@f %+:$$>':qJQ8IA4QN]f_e^#H.1g]JCafkkMPddKu^XlpTGt+T#Q:8kLPT26TK#,*4hs&j)pBD:0L[[ %+I35-M:4E#,)g((o.dD]n?&R<#Cj@:P88s$Z$-%2j7I[],?N/ErQ8`Z*4W,f-j]-AY%0kEt$^_6">A6Eq$HD+_OOp,P;-NLGJ %RHP^5Y1NbO`Xp'ScCtUjdq^>m&[[^G587%`o'06sU$2,OW,rZ[;q!>_kW)?a9h7KrYAt\pKT\.Yq$FRrNQG,U",7-FikVG6$oJB# %*BS&@>CIR$o3CYgqAQXp]Io",$ET%aagbX<4,NP7@(Bb$K%9?&?"A=+NGMZD8UH?&[]bEt-=m@-.&DS\O %e?^7YSVef.Cd]*d)3MT)>cq_([jmj?Or5H#3Sg\@LU_8s8:,ArGYc6u+Hdo)-fmf8ZPHO9RdZ7aQ2aeoi` %(l=+!#@IRY#UZ^K2A2rN1djYW'b`uY8"qAfE`L=RqWPhq&Ki6^Jd%l1%&)$BcQE:[-Z,!/$W'Ir(Rl.d25da8?6uV1KTrAW"VZ^V %OJ6;tI-+5#PB$77iFBRh2Gs%"cr'niEJimH-3.[dZP>k36'-d%:M#.](T"g@"%De`Jj`_g.+ZWh&fo!85^3E=o1auma8G'Cb&jb5*B.IT\;oDTMJ9AH$&EuM9p]Bm3CcR=Sq;QfK6RUZhRC!'k&M>,Ujh;=9=)8L$Oq`n_l?fNo'Duj2!U8NeH^_[O0F4 %$f2q]?2'HbDi_i]C(:ZhB'?J!"UZ+.pMc3K"!VaSg*eJ?LV!-nE>J5ZM0D0G^K([8(!).]Tmj8aF^mACEHjO&36('02#;]?Q!5UU^!Z?L-bP3c]" %i,k7oAKY_[=@6N#,1j0\ju!lA-)hs*,+t4t"))1(A^83k\]F4h,cRddES?^._U1oA@"I9fdC6#;32IQ\$saG7Sa'2W6?aS1+\AQ7 %L6Pg)J:f8dD95Y[O;=LB^Xqb'OD%B($o0g4,Ub+(Zj(_!YQQ#_jiG6Y'dA4"WPAj+Qg*j.J0;\"k6`DXP]51le)Ve((33tORm(C$ %hR^Koh*+7V9;i#j0qEr!?SgtWm,fb':+_#+(o4a(Ed?eXKLj6$!AS6"!Df,-AeiRdD)l+d/,DbFBTQVog!H@sOjJhNKbk?ffEPV@ %C9ga(JC+E9C@#?+/@CYQASd3-8O/-\"#?WR#JbqAV_#]+[0daWl=.>WHM]kDV\;9I[')rr8>!k[1IsgqS'rVLD!d@[1I,)a<3nP>ePs!Q:ZKn=Z4i?oOcl& %XP,(_:t\Ol338Te4B-qiH.j#dN?G_NVaHe++$0Vi$e<73,E*h4$+s8=ihXMWK*apI&rpD&SMXiK2kk8U&7DYld:56RiDai%S.^gQ %AQ:;5l)XKe/+$I]C%QoZVX+BDee?i.nt(qs(Dig-"k%j1_gD"P&,]k4K!"9 %'^J%t+C/3YePK8m9Eebgqe!F*Sp*om_6U=NF\+7g/'K206&F9nUq2AU-lpJ,WJ*TZi0mNNC58RredC3(ZF-'j?[XZa^1sgrH%^H: %(cm($!e4:u.!^']e%HD.O!G1:=DB#^W((:q?iS2t9p&E)l&6YJ>tRpl9(ZHQmY@-,2h:L*"oX+Q!554$o`(3Ko0ugi<_' %:"]%+FCpkpGBVYZ,3cB[BroEMqjLNo^brC\a=jS8.[@kQH3G+(PW&_[FC1i,Bqt=(Jg?fH80T\fM>X)DJ2L<1;eI^'K6C!eAogrL %]st9KYq0o;85'&s/eHJG&OB&9G@bB3J_$WFQIro"&T6XoNuj;e%SIVb=VRG[Uo3P4@+UY'@i[[I121O9B'%D%p3:h+O*+sEDE$R, %k)@`cMBFZ>&mZ9T8(8=!A>.UnTTg?r=6_XdE*$_rSe0_kLsa)u3IDL]+U',A%`4Ec">hSNfQ5_S!)b*s#X\ksbt^k&1(mX(L>bE/ %S_IW`5**Wc@c/Ve?/)AfF\dmRO,p5C$ng-EDj@^q`j?DsZBVj#+=0"!L(8?eGJ6q?;sNBjom7^2\@]_; %6CI3Pkf^m^;HoAupN\[-H*u=U?J7jpT5tGlW!*c3:"^E1mh)M"_*qWT+[d_L'UQM8>F>uOX;:2^#N?P/AoPL;'fBeM.n*V#\ %`g$,Jo1$YfM[p!5"F;3K;IV3Z`JVUVT[B$?UrWjPX.uC5B_tig#o7H;_;#?1C:LhlLt,J11oC!Fppu/-+#nhqJOZq5S8;fh7S)&E %S?l[kKW`]\V6*<]g`W0k:rc#_-sD9MS^f<:'Q+%m/E!3eEjRU^jquel+EPWMQJT %QBDn\>I*]aZ%atA#)6`9BhB^Ar>+7#*!bGqj+5C0Pg/]3"h_.P@m&hUfH5]VB+Y;4-+KI1/_O3-N)51[Y,2e^q'Gh@4(UD^?f`20 %g3$]Talq_&@qYum:Mb.l(`XYjQ1Hp!:a&]j@9*H2_@\AmD]@:#)Q#;M>.[qAOo#i!8-4:UM&it*(sG]Gb"50\-"M411YG1#MHW5& %FR+6pPJP46`6_p')n9*h*N@eZ2Q'skg[tBOEF#J^3e='6>K'ePk'!ZNA.(J4>Hj(l>&$9uC0A%$Y1l5nP3F>Gh7=Z`A8q'q1N_9d %#4>OHL?eK/c"bnK3rcp.>h<\[:>fgQG@0@WUE?Vm,5,Tr!JY!Y@(S')-mo`oNCOSSFCUPAn&G5s&`M!BdP/,bldOQ6_32mF$5h[TqcQmho %-HX8(N]bHDZ*4SO>3J+o*s6f1s3@IOK-W3U3B]tYE)^9*\3[2ulY=0W:eDacd/P_bL`Bh<>V?[PCR>R]s.M6Ak_3ilCpSF=7tg6H %MD!S?_0*DGon+if<"nUaWd7i;V4_NRnsLs#O4'Oh>HsW[74-1r((M@r>RU87rGWA^7=3%h]%.B0gLT?*)l+NLlaK*n@J-iL/0Y[8 %30NOKQPs[^Qb;:IM?p*'+>ogbg^f]h#I*3FbYXuY$Na;#Q2kX`i.tq^7342QU-Z2=A%&Gc[M^W/W8tWf!?+R()`t9'U8LG::r[`* %VgoK>;H38o_Y960@u>EmQgK?iEaS/,8&Oc1]ur<*+er:8qs-S=WJ:hV+9KiU?eO;2-;9]\`*uemUb0Lc_C;bXD?\L"\Muf:qr[P3ir&(s5M_jErI<+AU$g.i\:=;Jqs0a+2IbqHnG;ujCiaai %rPdH^5+]MPqp8?/IY_b1n`&QpG&Mm!nDs5>T20@]:9"[b\@rO*B7Zl/>3=(3[$r:VT0aqtF,`K+%O0MkIPkVI& %h=:q8TB0.bTK#nd&'XmTdB9qMDX<3:Q\mm-lAW'M4\=Q`U!8*EID&BM4G9P3$;tS,e`^*0KlP5D %?^,)_F?ACuL&>9ETHM<^_j*+jpdJ#g25?>E5u>'q22)Si6.Tp7e,`?EeoT=omQn+!ruq$m#O6otS;(+3H&il:(3%f/,t0A]R;p72 %lHa%/ll#u[c3XIXmRf1"oF0;+lee2[:`"+'iH^rV'[O" %E??H@"VZO2I0nbZfnX3^/IasTL5/Rnr=mB\K>HjBo[0ET5'U$X!>9Hl$se?qmjgmVNm9W>f_]Qe'ti[a %MJ[i9;1S9!;j>Fjen2(;QIt_D3A$2Kr3kWdo"0RuC!%(VRXpN\6Y9PX.X0qDSK.(X3+om^j?6._h1#H]^-8$RHt_"C/^V'7?E9 %ptL4U&;rRHDX[>W'V4[WLV;Rd*e&B\qXO.Ff=.[mG*cU.qrr[&I]BFEqRYcif0?H>Xo3"^/71fOZrk/DgiM.^i*Jf(DAqMTdQ`]n">_u#/jf3Kh,5amecTfn'e/*M %@ %,*#52Z;B%f'SnVmJF=2.nR[f63L#gib*C8od."J5ne6![>ku/fmf,+Ol'OaNIb:$C%iuC**mO;4_%G.b.8Moq7=BaH"/7-L-a5(" %2/&XQ1I`e*]M"+E"1UjX>i0Z)r?uEmdb&VYeH?;K,oaXK'jOgb]QW,EoZes2;5(]Zi+l@BK3'GRL;gWBo?(UTjVOa`hS:T*XG?Xo>Mr/7=43d=X5t(c'UENs@9@9kncCGoJ %2B;ZjX5C[fo*MF-"=gR\hY@:@PhG[\PbWaI@1VijXU]aRn:@4Zojhi8_U8$UjOf`-Q$Rej1MZU[rfu=cot1L\;[&5B-?p5YkX^I0VY(GQ:+b#Pt'Q70nbog]KIZ*msYc((0Nc6fn7+Q'je; %b=P')b8sXM""2@O_XTBp$<2IboJkg%_hLs>,+JSqF*bp#LCYHU?j55(kFY'<1lK.BFR)9+O4M8QXR60d"RD=1p\KE!0^8`\\F7QXgVTC3S-?r7+DARJ@>(1glN#'N6LE%U]&CEQsocj\7^j]H)\5_YPN.+E*sKG4XpgdF]< %?E.\H`gEZ5mfCTgNn7%oq,1,'=j?JEdG+jHemtSP%:;HX3"tc&8D,i\C-p't+lt<"B@$gn1WHobW[_CcUr1EM*bM&]32YV)FkZ9d %]/jS4%A/i/_O4NdKSSY(J=qW7!lkHHbTtJ-qDsYA'EZck"A,14k)3k/U[4gL(^K@*_f#gcVMfK1= %]RRa/FX)k/.PcS"J*Tk&&;G+PB7(_O#M%g/=^X#=<(8TKF+=rN:Ub6 %aYU%>Uu70OLJh?#;#f+KU'h($k[L"I!Oi&9aQpHgqdSm!U9Q`rc_s.`]N]U9!kV)O^n^RLeC`&kj6?i/pTp_C#(/O6fa\G+=QeiS %lFRY\Q;Jgp!(Oms?E&]o@3-=+EL>c(4K6=tUfWLr:SU0V+>ND6$=s[:`:Cfu6l5t=p_&ZY$(;?H3B2fB3 %_DRhGC-+-;g$JYCX^BsWV6XO3-e[ii'R8k.XlPM,^F#o-'-b,I&RFa77H^4(&s&*k%XO2lgP7_^;3ecn>BofZ*f2B=iP>U;5%6c6 %!/'W!+\855LN1-G=t!un0O`An`KeoQmE-CM#@=T_h-JFdk\jQo(7o$Hm%O2d!LRH_1AE`Z14FWfFSk+2kB6YmiQ=9bE)elPV74KF %PH-h9&B+cM>"!YAWWQ:a8g"<[\hJ<2n&sVs/oT.6X2Zh6b&BqrN57k9mc`:ps].f9u>fFgDV#J1+8U7oU8q+Eu$;f;pPciH5=_UKOAdque?WqnfOGokH5k\4pYIs@lG>Lq&fhGu!@5Z4-_]Ir[> %!,T!EO;+K]HKu$sG8b*gOE&hSX$RB21r*IMoI\*^#O$^2'^M7)D7Zi.=k.UY5RXYaFn5;:fR_FYciN5F.Kj+5E02h5 %9$NT"'QJLSU^^U\pjJ88MgFL*[c"kE^KK0&"Z@'nOD]r`_gX>@lTSLe*V4&VJ-R=:0e#Y*"=l?u*E"dGCt'/ah9!RAndAkQWt1U> %qeT$M:D]#FG"50q^?"[A!4^l=N\m%9Uq%F[mg#X<%#8=^CjNq@1!)VbAs\jlf^u %_T)]I"MkGFG*+AY+[4O]=i]h%:Q[pP%nXWRZjtS_Hf2#HUH3.7HD&DMOP;,)ZS,3#4;;rk>^F'^qb`D4ooC!WQBq[j\l-A%7-.Ih>l"@onFl1rq.Z,X5G%f=qW@^!W]U5N0DmuR$^>$<<"hHQ=HG&;Gh*j^>@O]W%5_04;U(q4W)^*Z7c5f %#Oj.+`tu>![c"!C-mK[[\?4KrLjTL$SPU!]JZ,_cq6F+. %6Ns5=DC5Q<))F:Ju.?Ck%ka%!W!_8nEh@+%E=(s?'--3iZK %Ksq`hjN?N[D02n<]\NKg:;gUP>h=P90L0MCiKk^PbDU[D!549r3lCGn!+,A+lQZ)XB^8Th1l`&2"GhHJ>kg%"N5uD)VIj*;s08`6 %l_*Z;5Es?_Y!k:K$L9(SZD4>i(aV.UMF=t0@?^I"D)HubTm&[%Rj34[O)E<3m%K]d$="_^8g%h!E"h=&nNn\LfRjF:<2XUjg24e^ %Jte[\dduW:Lk_5RI-n]l"ng@[D7BuY:H?Q"lubd.=_H6g2?&_1_=A]6K)6VSk)?&M+d:#r2mWkXf#GHMfJU7+H %"h?h?:KGZfb>dO=fN++,.H.Q6Uk:)fT6XDf(2,E;^+1&$pjm_#U/oKBnFAVWVCeg8AKS@58^e0-LH4u;bXW],ZtHM(=+5]>.t/Ph %W"p;*ME3bD1PLVDMo6bO&!7^W!`ZQ1&jFN2$No.Hk>VqnklO2##If[8I`lf2OkoC5UbdcE9I>g;9bFI+i^A0A*hB*q`,c@mF^lPG %%3u60blibr3gu:cV\NU4fEd.3X-Hr]"tk8hK8bM-%T6UA5F7p0p]WMeXKo2:n6QJViA0Z5ccfS/4"/MsJd?>,&78nupp)2omRUkW %qkGs=NhDo#F"Ft5PV3(5p%Af?BU82I`RDomrSFjt;20&>Lppad]WE>?(9`'^nal9[h %ilQB8"7,GSDRmY9.OsU@^(-&ed\SakmBUu1:KdNf[15.XiU9^JNmdi_WoD'O$Vba\2[RN9F5m-N6m[N17uL4S">n5@/;_e=9Rr/K %;`YJ/CfqOQaDr7:@P`l=X2K\U41p!2aA5pJJrR_1po1E1:S-ZsV8(nk[XorZn\Y(7B%VhfAZ;f9^,KEDA`r39PetZ+Hr>>4DDoZBU\BTPClrX5bK:7_h8BSNLO]m_\p1p^&"X %DNV1L(WM*)DgQGhn2uY=m13Gg9`MJImgG#@<6OQB56ZhF1%;?%FDX0_kQ2b_.-l$9XkBH/^(PAO5N=,X/3jpJ_Dg]K#Yh9ai@4Kt %TR@>Wf/9^`@eQS^*[@R85X\5,4_JWOA*]D6gi'*[Ij'Aq'U9.JOH@'_q&Dib`!;Vp*o4M&qXr,-nCmHPa761p]eA:'7F_pYI:.0$ %XA#!"(Y+'gZ/pC-h^Np_0g[`0?a4"+klh=f@h;AJn"BjSBI)S=E)?jt&4P`Cg0oYVOOR0njEKU8F],>E2uV=dR\cV$nDIIH4)U]7 %Zd;!?#lFf#L/7qO]-;]VF;ko^.r(?b[nm2\"X5h8nKP',Sr0^1K'#mIEqA=n`U_p\^[M.#YLg755`;2n-P,S:0"d1"a2tfLEkT1n-CCl@gZ[+8nZb`KRq\4LQFE`#o3l16f*4 %TR]OuatKMXJE2.Z_P?Un71d`N(g)F=,\BTF#%ZtUE;Z2u>KXBmi\D'>X,!8bE#>tbG;H=Kp1kOHI'g0aZ^f>b;'`-hc@N;-<%LZQ %1q99:XouFjQra2V==_-?^W_`(d%eCkOs6B#iLLPG"F=71PaqutNtt'6rauZS)!ZVdff%H(,MGo3^.[*CCW7C7hoSiU$$p<%gdRDV0.A<;Ue%8EpY_b %!@s*3g.0VSf#G"X$#Fh_jBeOCGmk@%WmNh%RO41#L-?Q8LHg2CK"H4OC8]ce@o==S?t*C%WV0'@R^u6qf)M^^!d8#<4N@g!0/D"f %;L7YfO(Fr)+!'*=d/7rF!HXPDXfg3#8JF_um\6F`q$nf7M%65Q/U4I`:1LIJ0R!`"#0n,B>lEO+/(g:G3Lne3"=Rn+`F$3bF^9F! %.spcbBAn`.!VmU4?%RR*;jDogpPh]cF$eDmSo"S@C54Tai>nPi''j)$SE^:m94fktCg%*2:>1\uG!HsPb_Q[].[;QDf051f7g+V+ %"XqB3Snd.`f$sFS=o>0=JVSU^a3RE#00E%*9H0q.;PTUni/K\9XrW>-]:;,LAUfe18ZBKY:E+c)WW3-i<\%!AUhl9d[*A4mb1LJ3 %dKJild:-GVmOWQA\_[f'ZNYL=NeAB%Jc0KNV_r/8eKBGnmO(B^Zf3(k%5,&jb\W'N#3JF*SfL4MHQKaB%4Lp3:F %8K3`s"9b"#8QuF#^bk;`"7cSnK*DO'c]5ooCQPL5IKg2p8!qN/CKm.U3aLEh:M1FIb=F@oTO5]qnjrL/EJT]"apXL`?'GCK(Z\2M %%>CPCUK8Nf16?=:4\=Z&KSK.?:l#=%o7sc_#1@_/coJH,oCk?LH>[&5[bq03g)#2KkHRPIPD'9Sp\NN+D;DX$7\uI%i>kQ'+rWD@)s*VnST,07Fr^`>r%Fk3^pK%g)q,aMQgJE=dZuf %9%'5hPa@0R%[,VT7rWceC6b\^>Gk0s,^au$"$D])/el!,oOT,6i"Y6;bS_1J>/@/04=,S/E1*j*'&DB26j]jkM.kA^).T2*_cZ41 %A%@SqFZ,W@mQHed)/tr9+DB*;M*AVl%3B\PZ(-B7)4)h]\TJ+eHdV:G$QZGS2pr_&80g]=+D"';o9@jsH%kMBqc#n:Zn67ICA+RC %'2R]$alFm6idPa]YWVt:Q5Q730,1(=!`PNhGqt)mSMK/6Il^h-933+VVcZj@0HXhtUHL.]T`!rPbS80.'"R3TWSk9rBYR8u"TTcu %.mQd3W'mam))CkX5j+:BC8=9g#oMo`^a-=pON*AfYXQ?-=V/hT>'=k*"HT<>OQm]=,'R0DrYLhQ#T5:B>t-B3$3d*>;F2R3(Q]`[ %Jk_W'&&gr0.3psip4>nKZ=,aUCW0pfnCSl^#t5d6'fnXl98X;JR,"/!27UYHFF1HT?02Hn1lrj,n0-.i^Dr5g+MrCk"!R4(n9G!P %K[5X3[@`aPO)^87B %j=3lEQ[OsW6)@*ki(2Qg9JgBoE7qZ$_odcPm#a71`<0DPr$"UoqgGK*6U3\a`;=#B1tkDEC8rg-eiG'BCKk:3'$DDf`<2(Ld:\\C %.^-S;MH!]Lf1T4L&_JdM&>U^+'bR.b?fGa*b@,Vq5($\GtSN/ELT.+68"TNMP_7b^Rf]QOW!>2*T0FC9J6kfdSZdbhMg?1Z> %$S%++6LRX.Q#dpC8Vn&=jbRA+#P/OIJ"VW8P=\rYQ[mckeeI$QH:r %Ps]et$C36cp[l*Qs-KEC(?03>.=`%8&[Kq1gTJU`?A".&:`mLY@/$>p?47\/mkk=PHT?G`V&P40on@:0Yl:_QD$.kh %R#M`bTqhjRK"s`X1pPIl,eN;`T<9+M2)-ND$q\HXp);;!c)8!fFeN&HOo.%SaqPk\4nD&H535Sj`9o]+%rVm/+t/aOacZ)\Gm#6/ %^`;m5'Sok1TJRObq@6A3&jGJIZ:SMcdjhXej(stP3kRFSGT0Yhl3>gjbq%Kq$3,!E^CkPq]U%1RbRQsIMiKB`#s[eWU'VcU<8\=' %.XU+7WF)X@T?.]kiRA%g;#@TlD0gGu!Y&*Uf-du>&jcka#:36C"WW\9W?LsI0RM&]dD/-%=bmCgq\.4!Wt-=.\M4`X'2'0V8uU5X %Gl>I8/SfA.O-Xu0(hKse(td!I[9&Bd&5cphctcm@F\p=';D$Pj",?,)=G8>t)Z9%l'/-[bt.dl-lK"43thJ&>]F' %b:,]bRSA&l5)?[M!!L*-\)FSW'#Dpp:+QZDMfM0> %%tf=*T#G_E'3@_Z-nE4+$Mn@:h80PZe+]"_JXMlsMA`^8bX$@]b0`g\,a/Xo>f3H>D-!?BSrddi^_k6\^ju&5E:?*.-k?4V(aVDs/JJZX#KgMX\.^0Fd%@YpffaA:q.)M%H8[9GYn(#2g->`&FpS[JHnn3Y`7s5"h?\c,E8SuSJ8/no>YG_A`t_#Jskk% %M9c&IjAKqn=jc[aP6,BJgFi@5VZmW(6-NBT;\"_O!17&S1goJ+;[jNE?m&g,[(##8OehWW\]U?*!8>C %b0l"fP=lJA"q_i8-Rn'lU*I3IS.AWfHT!_m_GWKhK[:iu%DrFX1agO9cI>Nm%fmAgcEm[J.7rLh:q`Jn;19l!I$Pje!9T5..!sC[ %pX'kR@cV>P'[`]t!etIJ=G\K0U1@(YJ@"!ZjT$>RlspWq"))s^Q,Gu-(5NOK@+$Kg*l?.DsAU`t5gIV^Pr?9rM:"s1@+bm*JDbYP!`ah&`'bSq=r#T2M-AjDXI<%rFMLLA/B;Rlt4 %N/)JPM`RDnX8nFJihm/H)pSVe[).V[-P4)/M=W:l*Cq0sF,SF1$i-b>'pAl,1kgm.;NV);G$r4UNWomV:t,q<7^h3>SUfTDW$G$W %NjSAmoj$]BlTdS6-oqdV)B0Z3-s]/g'7)5V_jQ"@'LnNtf;bsIlY^jaG@(,:@1HNje52;F-nCOV@)6bsn0OdF=UU';N"nsnN!2U( %@LL$q^kIMW']&?s786H>\Sg-//<`OfZE[6$fA6%@O`%OXMI<#eN5q!-ps?:0(rmUVYkYC#F0m9s`'?P,4Wqli>#S3u]gN>B\e4AQ %+[U\Y;s"X"LRW@@65Z.C3CGs"6aWX"Fh^-rIE9'+qTu.QYd^D=/a5VuS3Eb#V[r%FksPhP8kbJ %Y2g-kSB[Eg7(l?:LuS7NUA0U+7"ur&jVO=7-!WT/&eQAR8eTOIl'!A)9bW0En=NbpO^FSGjOY[i`Ec([MX-F]A?eK7;833/P!m7] %FS=f4RAo^3d*!^I))J_?`1XaqM(#Q',0K57Ll@QpgZg&YXG's,0/CqJ]9/[?M233-hN9'-HHkG*9HmA[FqRYHl^O#)'F!Z4,S>$% %ZQY/RX\0kt\$2JcM27_0:RXZc'#+^a]h(VSdV:05k.W)b?W2!h\o0Tc.,LRaPi`F%?P:cUjh45R)eQ`.&T'fHOlWft?:dQM;j3#6 %8XYu7jH_'c-&H;,,.`sTbtfN-n0Ek3F(.q;7&2SN$Vce?e0cRT+W=%;M"ISl&ZKnE6u%,_&XDRNP=1Ye-P8qhfPOD.MD^5=EF')< %H<^Be[h@/8inj#YU>^/b,YDhcM*UpQ6mCP+Zc8;)+t]3N+ft\VPDR`cA>73/Qqe@i31K+rGQ+5W4arSP@TU_M`%?R4R#Zl0b>gI.RE&H;^A0K\p``cJ?T1@)JjP,1@nQ619n/UuKU< %>;B(6A0S?D!=I`;;/;AP2U%P0M'?#'?ZM!0.[Ps-+4G&#oRLa%^Fl"sYKJ85la)H-\niSfJ8?G0@bF.3d%"VjZZXAXRW=7Tj:]"g %X<*7KL9)GeLKpRBS$Vr?B+gI3k=d(s24-s7%ZE0"epOuFba(h23KqOdq[bQ?keTp5,`6T_,e@Wodl\g.1+mi?:RO^@`ePAP,LYoK %Ln]:33KH_7b9QQga170jj9^W@7_kF`HgNmhG0Td`'YT(\g9p)"GJDo0!hZ/a5VgM) %45rb:!IF=0C)WFTKN;3Q[t9YYCil4?W,G*SA_HC&AlmEs1P`J.d^pdKQM)LAnh.4^:LV3R&3^d99(2n[k#+,4.)sZ(*XqQ]&Rr2/ %--Sm2Lc84_+K?]L-`KoL8(1XIma:l:32W#TnMNeJZ9=:q6d\B@p1U]/TG.Mp`;I%hW,7ROM_,P\\lHhJQOJZ!C2ad.ne_e_.hEMA %/.n710VQM,C_WdobkS@()%opJ=-8Q %<`61f"E.Kl`DOR#>Pe+L>"JTuYTO.?.42rB&EIfTd>\"8Q_73Z&f^@I%T %3+;/_h&4Z`53\<:Mfn2VJ,#h'`\,i52>uJI:A^(-L7Ws!rY&'=O7kNi[DRFRTn4R#K/]ML9-GB,#!0p(9=V7I]PF0@.nr.S6_V6S %\n$7g3Olp]N0cc1NcFM0hBCjDAc38Fln>QFYP*j*QWPL.O6<_[(d %kU^]h1SNc5<-]KG;&Kct=-0g57kcjtb5#Kni<7"lf\'`d71Q4=*ZSF9m9iF(>E6@=C^M?2o[IiJ?D-q,P9^bPgmDLJ(%\NgjPj;% %C`p&3OLGH9Q=p)rOdF/*)=O:^S=U6bG+AP`:UBM"`-Oi:Jc"_'f31=i/l/kOUS9Co=gW.Dm]"p$KfB^cl)6"?cu"g&?pbUU&IVp" %NY:nZ[$Hr06I/b:Yu[HT`]'IQfkf!(""&"G?Wa=N6>K5^$?dkE.\!k/)9pKYRio^h#c+6TL+/h8S;thA3M\NfS%?Mf[?,F\'IkO% %>Mp'T6P0V909A>PCLO'g,BcnX7#1"KQnGk/FqsC8=,UUCha[bh#Jrk'7B#F<\6oQ[mb8juY<(^-p,\=-RdLT^.-O>eJlY]T#SsYW %J)&JVXJ]<0Bec.N.U!goa-QTEjb;UGcB3JRfr:^j.;%L*P"#'RUY[\EfQm$YeU:B+fpDoJdDbk9Ep@nQ.F7RLB*0grp#LI)+ %N4I_Ed@L`'MO8s@hXR),!5T[CH/b2[1COH*l`=@A\5_JcA*\6"#I_b$!u=F.?*"aNl.[YlGP>BXp=rGuLQm%!VK3d/1oI>S'K%;G %[P1AY,m=WI"bd4U9u1JHlAa@WE8re6pY+j'@D0BR$^%'RsLqd1ne2l5Do3 %&U5QR3L[X'bF@\tmoP(gq`9F$-7BQ[)]ju(+W-J&4L9/J(f&0.QA:F&;Im/cMS?')hCCQ%F`#?GLm1>-+^2dh?h>2k.SkR2l5o2O %d$NK-)l.l)k>m3Y_+kpb&_<.CU$i_JjgF1+[OHah8MMOiHm/0;h\GJokOC])4l$J'AC4*FbskA.TBpQKHC^ts0q@"gUd>//'Gr8c %@Y*e7V8*WlR[?50%\Yef!p4\D)03q;QS/H:)qrg1WZj*[>ae^6\$jb2g)m/2oj^=]Md5U,[p]a3+>\p0oG!7;,C1:BNX/qMQ[GA3 %m(YM_N"M4_G2sB6J[.V&=ngts0?EeWjEiYt![u<_POjUfUJZ_q0\heXh_V9A)&uY.C_-meV&h3"!4d7C>*c%-NaihmMPQdL;m8Qs %99-["a/hNB.\Ki]7Q.c9h%i\H>3Yu2^iHVlao./=BR?*g=]@M>0f`RTaiF.Ci.7#[*:_G.r>6Y"&&MDB!f_1d,RYrQ,#[dp3s[/7 %?\8IH1o0FO$6D@`Xs&\+MPV`hIs^tqK?(3635e(6N3r"OfPISQ?Bd\H@i_.)HITjCUOlu,b"EQh,4BkgqcZic2*jOqSR,[;^]&KN %G43>0-h#CT0!F0(F]-$R`qiKurDQ.af9U[4PU?;&<:Wf`A:_eI'R3[44]pXiqNE3H9tj7+$&C!a6j#*M6PV!/_FbOjK?m[m8J(lT %1p;]c,4g6jS]p[^24R]XSXB@Z@41?JdS9sqP.2/oI+U";ph,_4gk2CC4&5N)_G4DjmGrELN_q;snj%IJ5$HgJ1Zb2&BR.W^OhA"q %]MVHJhWPajDsVlA#4er>,3"9R&95ot&P#!RL]_f<&iT;J73%-$6XdmWP&PN,E#patiQOSP6NQB/il:fY:M1eir;H!L'8RS.1?CK6 %_EgUJbRJ.I5.Q"c"k.HB?\M&`.KP'tfQ0@!g)7niFO_]5=3C$>PW.2OJri*3`m-&-7dL,@XrG2nUq@4457s!?(4^!GW/jAj6ML^I %hQTs-;0gAnXQr/[M;MA'e?U+'V;Jn[l"83REjWgoD6a7P$f^PR+d+,6kRN%d\P&.O716ot&[EMB@;4PX9Qtr.SHYo9E)V6b.&PT7n_8cf88K/O8>DqJ1[Z4 %FVZ1rMF8!g#gi[:+c(IeNR3c$X&&hL90TI;#dn6[oa/5S38's%V/l[U$&C0WPJ8 %=QnX/s#t5p#E^BodionOm]m)7*:RC:I>n'IP]C-VBk%PZ9=k"*G%rqh*<160*5IpD(Rb$P9_/&W]NF=[ZP %SI1Zqga<4q2@>ebP=AB98i@@_eA6IJ9n3A40A:CV.]GmmKn1&)BFCIC'.(NgFXA7G`WZk/_)S?A?_Prg7Y\Uj0;9GB@DQIX!o\SO %D[Ndk1knN&8;9s5a8m2fAR9?lu2-ko&jTZ/)gP"SXH"cAbNq(sKl"3hT[)b)u1S#bFmd=Qr)b4KTPnU2l&Q&TQ*Fmh:(O&,b*.Vt<3!FY'_(l9S>ab)*mO.V=. %0.*j*PIP-4e<#TF.i2ZgT7*kn6"OD3=](oUb.0OU?uIV9,mmao^^RTYCq3E)Wb`qS.7R`XijAAH)_8!+8;osU`"[orU">[KpS\E1 %o!jdX)KODoIV+UfcBsS\Z[nQ[Re`W]>FTRq7D'9N@]2349[Qb^-V`Wb<&YT/&?dD-K&+:i7CIgM?+"P`05s]a"#kubk40)1*L1QiF=!4o&1^*n1Up>'S:C*`e#R5'.GL,l*7!)c5bAc5u7_[42cFj %r@QT1V:@U#GR]_!>-&]o$=J`l,G8ONWhpu-"D$7DhENIbciUe_S>F<>R^3n8q!u;>$M[qd;rnEQ5V>D(+,'r)<"[MY0Q%s@i2U%" %.'3ZL/M2Y>mfE0KZn7*a6[O63l55p]B0m$$0=2!9fD)0,oJ6dPnsGX+_Eidb.?JE=LsZ^qN+O5H;P);+2X'>BYgr=G@qKa][Bb`9 %J[-:mDO"*A08VZ4@#-[r+l5Ii(snoWPp(i"RgNmIXV?!j!J;%/$J9k`(*l'Q[gU>WZG*"P(G-j&I:87+Q&;pXH(.W("gTZ1I0sGO %,538uF9kfA@:*7b$'a\'D&`p7Y4jM9Xr'&VJqi?s0bJ)j'K[iH6[LVUBeor1G*/0%#q!9uf&ef>H %8$LQD_utUIPF`qDPNr!)&:(c/_%8U-UD/uon,.ND_m)%4pV"nX[]BRR5a`>[RY1B^GQl-'f6&GZB0p);Tugl@17/Gi`!i^rOfM'6 %Khe9g*?L*TZsN_>MGdTC$#HWch7*;Sp_LL[^`57[$^FACp+dsr5&f;pLQ?63!Q^#6+*!W1\Xs'gJ\>tjnZb(5nHf-ofmE2,jDj:2 %pq6^rJ_ll5Yj%j*!WbV;+f5of.(a-dO5I@[P$B`M0ne`%V`\VCXLLK5s4O+=JkV*CRLe^Jq^0.:mTB!4Bf(6XUZh+`\?;O]h)"dQ %*BSV2]h&Lk4%iW5"=<'G/c$2'[Z*BW;Jp*@'V3$`U-jU8%M9m*_O6UW7INSQi(EPLM1.iL"kZbbd%,J&n^WikS68I=QNb9R6Qg7e %LN`h%B<%UkcilcDiEQcq+gr#gLkZc#J4&7(28W0^!;"r$mfnBfOjtX=\t\$R0^roFD#b>OqnfKUJPc:'TC+23'/9Fom0TnFkpfL,HZo.rO>0acTpmM('a(fp/e*3p%L.C"6 %>qTd!4^8YlijT:k6aGZ"J]kW:AmS*hRW04sbS6;QAl;T+E6T*"5B4qA8Vq406[CcEN6-gP+g'_&#;3K@0XNEo3>_mOQjI=Gm0URr %]-&k/E*O"9YmU"!L\FG]a2j1q%`+-Ppt<,BP3cfpSfb>1^8>`aj.[cc,]ThTLgh$UmMfPpLuMAE=^%L,60OaaLG(Y=Y6nZ!P$%53;YTr:6(n/s$>E(X4i<+EkjQcT.Mf@3FT3B=%GO:$H],L+hsFV-m8L/tMoas5A4TA9V>03KPj;SLasi\*RocCj=%4Q'ppG=\?8]0teUFrqGWa3r-tX&Ud+rWu %P7[>]YrI9Kp&+AUYW^&%RI2#)H%'\HJ`Kt)M,[Cf11 %<(27%n'@:I;#)HnFa@:.p-f?S`R8\;kU(;A0E4?iI6&mIMjja %l__TELcs7O!aY<&A)Nau;To[GWBjLs+!SaerI^L>U=uf9lAN%mbWOiZ-f+$7Q.>`W(&@uZ2KL8W>_7+^IJ9BfHFM2OROpIV&QaWG %UPB6_&6b+MF&%=[!?*8?c`C3c_ecMA[eRgG#T\foH9UjIkJuC,pW$rI*tD_7OcoWEl?joXI5:i;mDXA-?doIS0DDZthuH>.D]OJFXlF?c %ptIk/[Z8,)UPs=@rt>H=l3rgEauKT@$=Z!-A-f<4_UCUFnFA$<_LX>HB)hgPFG>7VRbt:1\#]>lC40UG+&^U"+2-G4W7 %lV2)Z)tr%Ws0hj?/cUJ<[rmq?NhLt&!&k`S2c')7 %OY$]grnjm@\#]>lC4$!=7blh`@3S?gPZ$>ikMVjD_(hAMP"'Bb5^q&0EA$@gP#SbiP/+^D\N-)KZdIfr3phHD&n+1 %a5>J<[rmp=8,W(m.4!\XOL#5OXO!uWX3l+R5^aDSZ(n4'HFlo+JY9]bkm< %H$Z]%Dp]65?h19Qg($TQ]gH&hFu3Na#5]518(Q_%p[ipabDmq(&Tc($oMH:s,[-4[U5/kb,L>l"!.4b,B!uHUB08%F(!H7lONp"h %R)6g,(V-07r@5t`$U(N8M,']>m/_Z_JH'Bq+K44T$cm5;S(&QZAUq7\i^=@Gmi^#'?U$7Ys6.rOr[Vf;,3f,siP9rce?S_7QITCj["ZU*]bSSrnE=>+ %E?77-((M4,Hm$'o=YA4;IN1&m/V!Qmn%\KPH8e&CDWjr849c[iU34Y?J6df_e7RAf536OZRf*1FGCEb5rU"k/WM'RGaoE?&\3b(Y %gI-XjluTglP^chCN'Njm=m3IMY[7iMeP3I`$F]8,@I\dR5IJ:s7bDXA7'=$DTUWeZ(P9D:K!g+gimUaDZ!8$%"c=N-1 %B17S*k>oJ7J#)YgF."!>@^P$ROHjYS2%sbTCP'$>q^i8&g3"OC4o_XJriU#F0&r>tBfb"0f_73XNeT"hr0+LqE0pod6MdHh\/1Tf %[(\O=Ej(R,)"""3hBdeV+EU;MnE.o-!@Ro7QV!\kd;Tl_fj$[1DkY9pp*FrN/4#+s`8GLriT#,:rnYe*2"t`57$-mb*A9j90iF=> %N&]Hkdu+=K:n0pt4b>]pqtu,K+N1J7kR!'kB_H;%$j/]XdESTYAomGBVsj[3`D9A4oDr9TNJnbk`8PPVr#+OnauC.`oS#7:eu.PZ %+>5D;.Z*5?"n2MlT>7uf6,EZp#Z_-9a8FnX+-s_E(qd#=W>5`?/B%&iW0SR&C-[>/#c':fLuJPk0kqC.K)37fJuA=@>4>H6*qi7, %"me`U)0DtqW$E'&K;AK;GsXbF?lAB[FUW8@Y81#oJ\Rja^JHSD_eP]]E4lTW$\=!Cl:4f,S/+GPi;\lo,(=V+ifLbT@P>PH6RW)Kaj`Y1.9$[M*2unnAT!<54kt%Z(m5cLHr6h"kQ_0$e.Hg3.YXK# %*=W_@48mA,dO]G?5N-VTXG-oVO9tEfR5i;g9*Ij;GVi=8@EQpd+H/5!6Ne*&%Z8^hS7+0OD%MOTKRm=+!&kH\+qtG1'b>mK1'=-K %>_'9g6K*!'*fpWn&5s18/c\=.EZtS@6,SR&!Ydt0KgQR&/=c?r6$2o*]S6\G&cRO$&LO[)%lkKf7M>r[BM`M75j,t.4VA1CM4*f_ %1CfdEM#cF5%-+At"Tlb1LA`8`@j"=Y)n6d)V&1CJ&mcd_5F`8k0/&8o6&N":@1&!+T^,+R'hBTYLDc9dR0UtXM69E>FTr[WLG\!M %2`*m$O?e1$iaa11?l6S.!$!f!o)oV$:eW-(5U&Q=:+fs/!#`Zd$nro\#_W9g/&C^F2^e[\K(K;#QPEALfNC7,:i?@,4i!0$p]m;l %K,"jR5S-FC@^)>X_q\oKQl=Z*Jd)Ui7$ulXCNU1Y6i[UJZ"#N4-oI%&.kD9OO2']uaB0a3R/#X-#/YtVEC(.gK0_mm(uA2Oq?^9C %q?\i0_ac&51RUNu<8?u<3!53F\D[Zd)QXEkMSf<_7502s6WTD(f+atVS@h+5Pb1kn//SFG_&eAWRtC_nA1+\#3+Ejo'S7cg#hE;f %lso8>N"+)&0C1o['.@sD)[&;.,\'@64,a1F%XE,=_e'Va$%j-r+DGka>h*I%LFtTjEN$@,]cDm!\qo %;G]6e-ogE1WfmkeOg?0u?]i#.5Y^5A&qh;B?IB"41WA*O-IrG([\6e)Lk$A+^^Ps[0Ap+\k8Xc4CBTq(\je+2&76k$A>1L#+$^)W %&r7fdl2lDV78j>-&m6[BN&>5t%7*n>TI,:R2bAl]NZfU*"@*%_bEt'o)C^dj+V;A^=Q,T-$,NAsEY %`f2T8A!<1J?gF-86bTAWZ9fS;F..uo84s?`aR-K7 %X@?)iQ<>p>f;&:N$a%t%^&fgo\%WCFG-o_rO0_P'7L1+M&'[j/ %./r/&Jo$C]OX9tAf1U?K?ZEI*JH)G0h0ak]#MsYYF[10M#G;EM %EdP.CJjg.W^breqhjdEo_`\Rrg!bn`h2mH./kg5hQfAr[sdbZ^84mEfQ:m>JcX9noO5LiaAJA_E:Ij`\pmrj %rbthgBo&/Y"Pk.p7d("(0E-a%(RUg#n.Rlh$&G&[js*D=RP5\&3WuB%Bm3]r9eZ.d9k:&GA!Gh0u_BpR7"T"C9Jpi0BE#h/%@=T]pC/ %#X`HT0cCLpdWB.N%ePieK7U5TgO4P\e3a`b?F)3clNb9OXpi@J%))LihR.SXI*]4crH^GdAJZKg?d$Cq4SI/!rH?aVlpkmTIE]3[ %r#\mXKDJ$5#1M77\/hgok![9RKn&fGD-5rQXfGar%skjG3qR@t)d$#=fkaM%?+GkJINH2i=&fY %7Z)J.^\Y:e&.j_5kSm?YenBPo3cVl`imKaursq,@WH(=(s(?G'1")fkB;PHs1sdIsBHHHCkWc/rY^;#?DSKNWZ^0t0l!\*m_rZ%Y %'n@I)-4W:VsjO&G^a2o>3j(L0M97MZi@Q$#7g$k-=JpgdmFZQrKN?3 %&*YbWfi\P3g*J5-?@Jr7L9ncqh]2%7MZ^RmOKU!2_D",;pB+lo_a^8*^s`nR"Cbk&Jj9YddisE1,,dJ0U;unSSncZc$tt5;8j?[6 %jE,h&lR1H[@A@"J"ph+#,>dP/-'G?+KmgauK%alsjemdYS<'VHbSri1J;9AG`q:!%c).W0Q:n:crt-:E_gV]6V+q=LWYq?rZ(Z`3 %%/p;Bb_Gs75FZb\$A$H7,pMX0fs6"gYTnuI2;%m_d^MaHg?Wgtfq.WX(:3sH]_L,/:N`X/Y9jL#1=A,4)c#2Jb5M/kYAHNT(:2O^ %^I.48SU06(8(7KVgrMBB<9!X)_=eW_!QKuFra %ZoQh[(-@4QfCjM8RWL]AL?A:HT;Ia_'KqJna8Fe:#p5sIgVji=5Ws1JQG,!!Qo"2PlKo8?Z>[1?06V^2!-lZ"e;DG6gC:UOm5N?e %6qM)Mf>G.F]tdFK*od#q#oXPS:+c!l\:WM>FW\uAJC[\Z>$,SC"tR"kEQ#MR@ZZ*3@\I+C2kOs`@%babWhaK_:2b>$fS?T;Ai\&B %44bLUTVtL\hQ"DoqrMt8Zl6,:;Xc2.U!4*_O\.>S,T:gld#cPpeKM"uXO_tDe'D(9kcAta:0ctQ3$L`/EM'11#26KoCYP:egEnhO %W$p]THl^4IVN3:+fGQKA\[>!l]c+35=lKUG4=B_5gl/"(D4-`PQ]]"X-'!P8f#RrjYVHkebK>i60s?sRR[M,/^Q_sH>Na[^`^n/] %(beX,?@'"_X4fC0MO=WJ*it!jG6oHlp'/\4RgKRJH`k+V<#O[[l"MDM&Y/dlfkW!UGPQA[51gB@4c-'M"p$s?. %O!#oGI?\R4mEiK%6?sQS*m,6<"6JJAB$-)Degh##K.ETVFXu+:m?]XmuFBu:me.a6Wk#O)G5peQEr9cI6?jc+?i6aU<5//YP-i3@^@)Y=)+LM"7-tG$=G:MeCA$k"Wdk;s!poFA?J^# %rbLQM8k1d[#BD+hefaE$ %Fd7=YLi>l*lQ,g!PP01s"gfPZDWDSC(?K=cV:f=p4GuhZbn)qM`C_om)c^Y\9/=MO0.9'G2d>`e$&m_DX2>_f`\*"HQP>Ea.X\+p %GhgHR)d)g[2*.Mm>d:9(R&o/<*)M;7kRn8HD;]LFZT##+Z'^Q/r_q:8N+j,U.s_dB0/*q#D"XH$m[k[%#W#(NW);,h/3 %g8T')PhF@ur$87N&@:C^qC6'<;`tp*D:]_HH8ABSKMd;k9%QpkiB^Bh/pU6@j>+Qi@5X.9RRqM\N[JHlRVP*N#M\-.Mo>]C %!$GJ^SN``)^5rm"+E`Z[^/nOBeq<41]c=kZbKSNUBr3L5pP\1:jke!co?k^-966dXR7bWaX)=6-(OL-K?8M&=:M8XlccH;H`Q_ %Wr]G]P-LoNj^m'4/gE0#-Ku>i;+Uj(gp6'2>.&P8%([PoojK2ppe.(;PY^AAi$p;)\I?/[em`8:Q(/'.'7fap;^BL/QU!*\F(TI9 %]Q2!GgY&k:B5Z!F=_gg:L(Js3@I13G)?"]])FU*$K2p8'L31f],ATSsB.\3EN09JDJYF>K1iiYBe!A\W+kPuFBEoeUT:a.8b6e`4 %e5g-%8DXDSl!H:>)d([S0`A"*W@Lu@-W.a*ecX"d6B*7`9Hk3OPHi';L^(B39+87B-(8;n22idL/(67n)-"aoKgh@^CA8b %J)$`D_;?8ZmASaRed)-X`5?n/a[_:a6pr_O:>j6TZP@d\0=%0e4_U.2Ig$Yh%ho$:$qC(2>(NOC$Q?_P(Yl)[D`3-8N5+!c##e'0 %BpD+#:I8>\]1d!jgBU"6H7VlKgZ]6L3BZfVWuSNf@N92s)fA]8q/F/:HD-l %lnA*E.l1,_1"CPoHV_%*hMuWOic:0!1,dI&PEDD[l,pRhLV1;S*:#/3=ntkOVR#7M'9ulL(XJ4`HFhErWE8GB*M:pL!3:Pr@s>@/ %VB/"n0(Ugn=G'E#mqc]?18I(,06=/T0s)92T'>3"B*j(@?%^oTpgDEA"2/A!AKe.XoY(.NQ-@l%o9n"BRHTl0e*(1)cf(di.lXV+ %R?fSBO/B?Ao4MV-;')SNQ91RKlZtdkW\*NqUu.;nQD]D]6:O&mA84!+/R@mMe42+Jj"lS`mD_P/4"+O?Gm*/C*+[7)%U^5e)c9Ca %Ii+SbHo-p<]qmSS9r23poH?E0<%VA(gLjkShQ%`kL=7[arhB)U\GFbXfH]Pm)0C(i**kYQkQR\34.a=$Oe"o4BRcQ/g:1Q3aXEfHaFUMCsiI_Y?$S%mWq"r'/!.B#:nhKi:lmZ"EMJ(_T:SooF"YTo,IJ18cM4>O2hG*!G4\tTMFSL"YJL&>N%-jmk %K5<'2:qFjackQi%m-uDR1^]o5JqeBULKG#PlWo$g-,0Y`G4s+E*W%>D3L[CEdq&LK+]ch\&ukSHYYR.#K3G:7'0uCCWr$6,mgNQE %c_#CdSjeUh*i\DE>c93\n8=/S^g>UFE@Wt9qukQu%TgL]I:=H)CXuX/4j;GJ#G0-7jE_dH$N:oA:P.r:PL9*\Qthu^LJq5G,Uq_7-hul,!WLXSG3msF91er$BSK$&]63/T9ZcF4Y4%E3 %Z_Qp=m2n4F;4\>R*BZ-XKiG77+`3-_54``hA5GfMaS:rq2n?-3?dm!& %.5%;[B)ttjlIj&01'105`1Vf-r8YlIqNP/t\H2KdhA8)iIQ6\O#4NEFuYKOjI9XhAWoA<%86gMN/n3,oF`u#?7mq.pdZV %F,`rOJK5uN;bPYDf_:-D<9pl\p!)Li4B')K<[:W2g3SqKZqGL)(OC>W=^j"5m[\"2-Ke^mj*<-mGm6#gKQDeA\!:_/%?Lb<(hW*' %XU<9^gm2\-2GS8&#J(2bT.N;cVbV01o$U_+/0YbQ4ms]OPdR*^I^cR,Qf5;`a!oc`OUl-fo0%k;MRih)mV2lZ<3S$$b"T-&=s %dG%FS6jr=N]01rP/j;CKJc0D.-/p2$Su,]Zj=2sT4UbcN%'W8a>H&<"q,f955Ykfq-I*?)]Nn06dYkEg$YAuXN)(pF2ff1dS\C/" %'PgFEs7)I#X9N_UGF1TM=On\1c1(-oHO-([]9*)Hl>Lno*o6gDeZ)K<6UQ(Jt?cl %n%EUZYXf2TA69iNOQDs(_a=)a4\RB1^#LT*4RiaWN@67XWG*K<&.P9cTUlib$LB+g@7V*n:)j0J7?n1]TIQ`gJgAMsMS?A9K/L)t %R>KdW_Pa=OG60:__N6a3MlTGAJS.7VnWRl;-L-L3]S*:u2%)_p#+\1,#j*/K/>6t2%E,/SG/R7]KWh=(^?'r3K?eKgbClD.WJZ?P %)1CLk`AB&lATUUH0f5g4/6q:`-)c]#B:6I^1+UZB'TF)m*H@e!Y]*m.WKNCDZg]N)9=i7:,][//h(^c)iEc(TdO6U^@GH\rk")KY %6#0>+aGH/*:l4`W2L+8u-n3W34Q7Tc<\(4>1oT[I@QBN6jb291mf#V.DEM8Mll4-`f0M.(IrV-kbE!)J2i;A>T?*\=RDDr5^bU]-"aQ0UOK3EP>tMo#ct<$9GK`8uLr_o.'3?[rN-M,H,\ %$kejuR^@Xmcgdm"9i9a#t.@)cUqKfM#02j^ts6FahJ5O9uc8V,ZR@!Q<)2AWN.&@94Ofg!HopVLdKNp[YkI=$:b(cQ$>7 %_;u0215^DEN[i`P_li*j2;UUNSGUScnMYq;hpdi5`DfB@<qtL;L)J)>8-OT$MjKoeNj,dMEoW/JA]Q3\eF6`$[u2LMKGN7u35Y %0XeCQ$<7+$Ah3asat-(259H!.:-=OuVL\srnHf9)\h,^\]juMs6p/?/lBk@;\]>bh]f.Si_SD1gA^DhLp4Gg@':_1`1-3`2Vhbn\ %Ur&R.oNW45NT("M(..qK*;td$%F7P0%-Z'bQ2g1s_V)d62$W;i%eo";5YYGLK>I(18Q$BGbAkdU5%M]pXobiVq(1qNk*Qa:10*N? %_MmIMLfrn5j,2!/FIf:VDKY`m/`C8sQ%$qop:Z0Y6+*53BI#lN?C(>%Jq&$MU`Sr.SUB!Cj;nTL^:*m;q4Z^8="F6/O<[E]*:VQ? %O@s3^DMYe8KjKhhXKE@1cs')fCG$1P2o`_%NPLsJO7XEQ)h\Io7"@KW>V>s$M;1I9^C%:f+QJZ"qpm>TOj^pfk\e$DY.G2Bbr*kF %P0qF1&YtId_f=N*<3%_N!cj-9n`6GgN+@Ga&@WbN&QH:qH3!,FF7bLV:q"& %$YUZgnE8\m"JDXUiN9G.!^gT,0CnG6P/^mWaYl)(`Kb-W]nCW";18B=EAD+Mp&h)@g!M;o"HM=Fd,_j7Z&%PK_,oEWGj.7bCXeI- %MlNn:7W5llRj*:_\Ko8e+mWtT4iteDf:7%^D:4eYA_h;P%0Wp'(c[6&ns7PLQ[dtmoaa;lq`e,kIe;S`aUa7Hap8c+HIOa^Q:l`\&`d"-2i"KVsajUI]q/cBN)+/E.ToH %""*d^SuoA87\P+-Z`(<`UUr>FHN$o'4)S]O3_Rc3XrUEVAEka*BIk-dE/C-RS64phTSAHUc?J/;[AukY%)\Z8ia_]Cee:6C)GOQt %1A_?:J]+1N5VAf#L2f_'+4-CT'*K`PO83+(lB=,`-bbp4a:gr3qee)#*^EjK;PF)%il-cq2u=O*0o3m(k&4&P^(*4MO0F)@KF:fL %rY:TDmn#0ur\;cdq(%khe6eBd9c,tZ)I!]o"dGfL%r8(P+]K^B*;7-CMnFAArpZs?T,Ed_<'*`_ks`Z-o&K0,=Y`m)=d\,8a#G1G`M;UTl#2hWA%s`NtXr8q,kP&d(bR2`* %'Wj\k/*>>@4#(j[<+P%6J8f2a'WOJs+099@>!o-5M`K"I*n9U[Y4$_n*(SioAYHQ_grf@bee[JAlTP"4[3)&%aA[O'p:5Y+C"HK3 %2&GeKC:C=",A"D9n^U[n=XmH(Wf.PP^:l*G8C<[JUq.[:9U;9$*Qu%K6%7+@Tf,#/jk;.5gmj$"TBRZcAD44h"?HT&VFh?Eb2)3t %1Q[@jfOV<>:83?Z2ZGl9W3MFK)1HGLG'fDYOr3t@SnftMN>$!0@#Z$^;k18=#0M7ruS_kk#eIE)#Q %X]/an-<.l)>+U*O)r'tH<7AnpoZ7RoJ(mK5o;P-HZtt?I'"tN>fUkUM!I3(16\kV92R9>-3aB# %-=\+#6ad_3aBF+X`UBHrN]8%hVKjY!:I"".]7(P7&kpG!s3CS#,QJ%Ok=)Y@<],ju`bjBY0O&f.;s$\e4fpfbR?Q>q7;C.[I&`(M %:VOT;<<+Et4A3-jmfc@X)Zojk5DT[8X8+B0IaX0A&[Y"6j('oJbBiL'Qq2!+UjJYV3nttdK)ugM8gG3dYq\9H%m'%i**I_)pJa6Y %EJN_PDPNF@UmK*JQRGa((,t.+W"f.;C?:;.d8]b3hFP$aO8,\A$#[)Gj_P1W %`ed-RO,$T!Rr@!-K&!C=>e3YRu8^^iO*Tcl`Z5<1Zd?AVf%Oo//co0QW<+>3?8c%+*[J*5ghI9]"OmpdC;:&.tY!L^AE-V$Ukp(4I$hV9=Rp!lTF9>cO5[VWG9iA,)'=Z8r)kTpRqEdMTD^pRE2J8"j;Gcf+W %Y\Y/g2%?89\Pj$a*q58D,pkOjjhoq^H7QoZj+6S*#Z(`maSeX/OT56oQVb^.IPLe$X@i"[>%IWk3+r"on^$*CF*P-+a4?6,gfO4> %HuJ!:*OR["E)2!@G"sOXiG-4%+I?%[KO[H$J07+T!]JdoN'10gWDI$4LYE"u5Za\PP<6gk0j?)N^U']fLJ\U"MYTI=^dX;C^jNfl %a@O'`ebV1O2[kkM@PQcpGB+jOL)_TEJnQqZh;liN18/=5o>(Xsl %hdYL=<$Sr1e96W?n^J[QIUh>KG*&E\=m+!fTOL<,P^=F;Er>PT.aeAC^6OJfM,&ae?6bsJ.3PsN37`>Ng7Lf@5'ohoA]Y/gES*D, %r$k\Krj1u_c_E3*)k]`:S,`ZC3ja[Z`XTp+ZB[Tjdm6L\#OL(sP+@E1-2Y>l@_'_RmP36s=$OgF[pq$cR3@X?[TGEMm\W:a:Z>#U %EY^A;ptk`_i)o!n=jH`57nk\k'#h^\DtAg%,X6Yj36qtfSL9?u"7F:#aR)@b%YR#i^dM8LrG:+U!$XZ[k\!FPkj*EmFPA/kX=1psk,kDaea?jY?^%9(r*VF5mp0nZ<dn%j6#Fu7\(V394:cQUia:d'n_%RGj:o?aIZC6TNj@qm1RWG"'@I8!S?;B*f&-X@_QqlN<8 %a&N?17:QVCh^esmHk_J#o%$-M,A]m@)Q_m-8X=!&ZL)p_`H)5Zg,E:HBleOiZj!fPiH\+2/2K)pft_iP3="GE^Y,q[mQG7)3&-L. %/<(e-J*\!0bc(ajra184FWGCSbG'(N&-.RpMbm^"V-7o[r3tlS7^^-C5MI_YWT/V]`/".]cs[l>`?>No^cQOoHq>(R+_k%pT:Wl, %a;r-WEk5n.8L0+nY?hW-o<`'J:Ue>$;jE0q)[tIK^VLg:2F4X=gkTPf=l!$?#8oJQA'.$`cC./KAZ6I@mi[E]J(^CDIWlMu?-KcZ$Zpg?%t %\mq^9j(f&e3TBNYYk\Hl2rt79SZn3\#m>ZPJ5>T[pi[.#.r?C+M?jXmUZ:$Y%iu-B"l\,-)h*3g?TksG`4$b9TY[7>0TAm*>P&[' %,n)1HK1k/`nG(i7hn]/.VSIcYNVOE1#@=-Nk9SJ>:F"EhhHBE[ZkE\W[Wce@F6!cVL"XV"pcpAtbTrkC!mGkb9SP!f/J0j&COV3: %5qq:7YBb#q:jhdKUkZSO^(0YG/W+Hn/H=+l]D-bo#\4WJXCOZP)pL>Tcit\2tcQKBGDlAaoCV%YJ[TM];T;`e+GBt5XL48onbFL''6^`XqREEOt4af84T1Q6fuYC1ZYWAZQ\6$:)]"Uc+BZKhj=fei04XMgIX?(!dhdBg0,)Z;NSC*^%;;J.]g^ER6!kh]o17O+sXA&:^UN61J1[kT[U[Z($C9#+QoQ57L*Ha.Ii%r22UF7HIi %541LLj,5#/o:B,&NP1XOBC%9;bN!7B2pNI1"\[=ACYUa5+DWq(D3(L7f\2cgf"g+kjI#V49V*#&1h":!CWRh:QObB-q6B7q$0+7k7s/T]'m) %%_qbPc&'T_@*W:;S%2(c4Q`*u.;3V1GB*5<2c;?Eq`50B*AP6qa0j(>4T>QKo4DA!=q&eG*(3fXkPM9uFg-F9o:B8kaF23BM;;AL %QF).sZ4s/H;bO5*G?A%52edOlm[l'QMtshnpba9J?bOd?AMYAYXbIu>YhJ6W#HQIfgfOZC0ku\)YW$?./7C[AY6WdK?*LmZgODI2UBJ=C^Y?r?KofEq[7=_\cJpX.inMN[o89S]l`A@kZsES$_O[t`-e.gZgS829gN.K;#Kh5,C@<%qH3ad!C[Fn^)J/B %^YPK=q2%Vjgj^-9oD\Z@bge_sSO//DbD@YnHH-@?512a8/nMNNJ(t%W;*6V/SP7F5_suDLkkE+#!Dq %dp'VCUDAQ5=%tTiO_q3+1>qpQ1;V:,U-YX!6oSpW&ms0\-t%G&qfS3TDkD"Qi\ARo.)39NJS1m+*uM\YGC^cCh?@2+k<9`3U5ZoT %-=[?GqWa+!^bbKc^YMYBF?7lpA-i&`P52Jg7CJ\f*naoQ(Z]f8`C`/J"!eV)%,nq2_FN^Ul6PjZ2;G@*e8>P?9>qp;F-r!JqY8N_rm.ZJE$g=_-$Emn.cF(>L84VVs-S?nQ;80i+1!1S+4LqJ\D+:<&-ZT:b/>Zn/'JP74/c":h)BKOtN7YacN %>BE[n[GR<,j*m\c2*W1;=fQqcbEhI#DmoO"9k?8U[8tRc:!@YBOOK>=HoIjA1["0[k!;5b2N+F4h_@\V6=iH>BV"Uqf6.VEg9krBt$4lN"QkPrG>Vm^OC8S %bn1s#p2[UFg-aV]C:o>"Fd?dcQ?$$(S[Yek"#G%6M-2lNm"Z[d^DRRMqKHgp %CZ&.Fe0s.d*u_ika8Wp%*?Q=hq6fad*k#9pQA;`'F>WC!L;/"(Hr8-`aEQ6@hER<1^6/)n5 %6a$]?2L^WZX*:aaG@^Z`bW2\AfQcS,Wt:JU\)BhAna;2D%.>(Wm.L=j^I`MV?*@7@ksk+drU/]5X4gjg(Xts*-;>S)_s@)-7QDQ; %hT*ZAY@P\PhV`\EqK)j4LX40ORt#n"m0C#/e:4CbP+dP*um/tYNaFY'5`bdiqHhcIsO;;kMmgB+`O/4WOJtBaaCQU9SnO)FP?4944D/r]:B,^*RWQXA)qL8]!$_Lo8@Dn8me]E %fCE]5.E1IYlXDjBA5h!*pU-\2Z.q][nT)E79B5V!YtW/@bN/u#0<]3cY\fZ3@IL7JcQ?N+.IV^k/eUtGBg33ai;U<%dqJD<2f"bR %XL!;04qkd$V\3k%)@5eFS+LkcgRaTYll;=2paD1ea]F1,g)`5jT?3tQc(jt*+ct:A_-t6>QY@st:rj-pTjUJ@O^Z7?*?)R.DZSfQu %Z^l"^,F^=@$+502=V0d"<;1[o!NG?aFt*kT(H0 %VB&muMgD+Xidr!^OMg:.o(j@85"tM)":'aBBu@)#50)liXr(nUH=sWjoP"KHs_M)4)K>daYt,W]XqYJ7)#QAKaX7h2iF]_ %-o51sB)VOI-)o6>Belm#NjqEN0-C2kpqA'3BYb5^3=JsV[H78M0,3rbU/^[77/IWTME+W6gp'PF[dSu>'fHt!N?ZTM+BA:Hn[?4Q %TM^dI7$XeO1tu]]As5%i$nclGV+,embI0K<[=r4R)GSX*PrE3YNIKZ22O,14RL+?5?"aqTeV[A+]/*/O:&.7#160;^H!-DJe.l7W %&djU&V`Kb-mPS.6mq^kC`Ld\6F"q\ %W($Ir)L_5P>Z;'6\%Cr,#.CgurDXqI&@HnlJ(Dfeo9.Q6#F'o[Lh.*.TJqc`_Y %h,UcONRe`QhT&!m/)+aH4tk#8$>_J6p?O"abUYCB4ll)"(*<9@n%Ud(H8n=62VK[,Jl[t53qT?lgXeXJO:3&JCR'(;7WDYL?9IXiec4lmUgTr(8Y_s,YA[tBFV`=Tl'%RQh:`c[)r9D^,X"#tdr,_ndI[fI %3];ZZmHu];J;kn07R>>G>,@C;lY?nj0ni%@aY\=!S'2hmQr/._Mjt?5_ %Q*AlM*dtI7T/r]nUa3MW(*BY#l\OW4nFYfC>BZ7&:Ar.-b:u5#E!G$?)p%lq.[T-N[d6C=mF!m^SpWa<4!ENO#uLgf_->O]`%&_7DIKQQn]e5g+Tp9*62T] %GI"CI(<@C[#El[0kHBA%(Ot&;0Y0)o]P4/Y0R],<:\PhIbdP>-4/3g]@r1D"cYbtP!OG`GQLSd6.W?cQ;g %6m:sP4XW>O8!(E]g25"H1/`(`?m%sXh^kr&H?Xl2gT(cd3OJAo))JdWL)Je"jqCueCDkp@@G>1>Eua,9##N-]`o*igJg`(t=cUqI %QV$InBS?HB)&L@if5l&b8'L#3%:!5m%HVs6G<-Vt?q.O%KBntKR9F5fJBeE_]O)&CAX`\Fn:>OV`42CEm[d)s?b$Bo+a %D>F*]fd>`drDKfe8`kH-Gi&NWnS432]?KRMDnr]YQ@!M(8BE6M"h2GiMd-GqYSY`,;P%Q;?%,5^aYWa6,7#$W(`m7j0A6A.K_-Hj8HO2!fjEmd_rEXDGiB`YH4^[@jkYF?eL'`/rmfAS8!h!+P^&l24.Ob%$A_?KWdhP^4n2R5j3RfRe?fC %#4i`ei(Ym^X3V'I_q#G1IK=4UXu+tmids`kH5%-?7ne8d#cg@kG6HR;0Z*=fe&BSD@lkikp_*KH5#T"O$+8%du_JH4PMR_jFb[%#uN$f_)n).>O(A0gfO9+-*J(b+O=ZH+:*f@pe4qQ]Z1I^*_%m+IO7/G<(d93tsFpsOO %b'+KsTqAZq6S`Fp/9->'>,_kI+^]L]*qO$on626EjA^\N16s(.5P,9t^bOE"Ssfi0^T:'YkLKCRb[!>F,taFJmhq1fR4+GA^0FF] %W>>Y)q,R6ToT/^,5$##b&Om`6"^1XI$N2"#';MX3o`lZ,i6?7Egf$,]7FbGc&UCNI+('p+C+r(f7h)-&39OHlLbcYFuj,j_jURd=PeJTduch<36jNes_N:U_qgkmld %m+MRK:HubG[P,`>AA]3[cVtf;8nuaV[+-rkre-o\/cqi3PN&QkQ-WeoGZR/chJucuUFm#1CdpN\S\ZOX@KB$O8f_L:\ %3i>!aP;`K*U.d82(%(?KWt<*6(24WUB39g(,\1"BqH?g+Kh/_P_/;fa$T+*Mkj^,uP@K*dSt\CW?G*o9V__8O\3VNH %DIiqWkGojU@X^8#;@f.s2^^a:>r5ia4#aIV]C3)D?HS4jq'`1O:g,![0\t#KQ6[U]'4!$Yp&&nLW6D8ehGT`';G++,9#P#5?+Xp) %L6nkr:'OTJ1mU?A"P;,h*_gOgR/\Z,:5Mn($:)Wa-h$':/Ms6$87(cE3F@'k:n4'3X&!Z)kFKiXenu[*DWr^8kq0alhAeAsqja;6 %]#-#;dk'aP8XU+N/3k8K4pg3Q(Y7:N!EnMNB7G(,KiY,alb+V&B&L %HjXU6M6XsWIjqEpQLV[p36u\-9u?RWRjND]SgFIVF->ghp-;a7OON8b"j;%4KqE+#"X`B.o9ua8$O!$-WHV7I`[>*V;m=^cBUYq[ %QlRL@*od`IL;[LhL.&"j#%>g_:4ZT[J\E4A]l-CKkU)pNmOmEtu- %BN-^@;-H6edG!\k@Q!tK*K[SB=YXW^$[Q^4cLiUp1_$M0TVlgZ!t$mk<*Ld49R$ %L9P2(m[CpX_nI!c/uCgg4'H\?\c//bR-GgF4G6!PDIEhN-l:(JDP#60e#P=?J2h_$Yu+rOJFd5j$-O/A\eGen?i[4\]]N(WUmSC! %J);ZXbXhHer%qi-P+Ce96,N3lX^P[8Vb*.ej2h-3;o#Mo5b`.\YQ1Ni8CEc=p[uB%e[,OJB6HTC1#?HP!UV'2bW8I#Njl'bmAtVj %G1.GU&0,J=A;X2q/a7YBZ9pT\G:O/3KM-WU/koTaCUMODaphd!-LRA+?1HA]5"3K`AG1;)'hP?"B@0oC:EoFp\N\*m^^VN1+HX-: %@g&j>rd3F+`@r=,ShHTPKB./;(XA!j;KcpeiIWe;7O>#'bl60Da&'eA;;QGZ_:-^PR\pP>NZknCZ9>h)UAa0P[(Q!+f5l+iR:bC:qq2$FlSB>#Mc!lh^n0e8!oEVh0go9hlR$::q41?<*U5 %(*0uQ2%:),I+XteaL;hB>gg*j!ABaWhbc&j&?G/50'3>PqX^,^GEBqBI2/(V?H31e?esfQcBcMii9IiDX2&Z1=207ZC!@,C,832. %WWE"PaZK"q*rak3hU#i73W\3@"J#u:iTWmOkA\*h_j_ih(@%7e4+;uB1dG\Zd6YIcl^/<)_5Ylr1TUa:\g$M9j]NPhGj&'RN]eQ( %T5UVLcB:\d/G3/*5)Y8Hq32Eqmin!M*IGXInr,5Q>4-P&4d6MuCA!AagD12tb>%LJQ-p=;C%X+Ka^gF*!'k %A"H`(9EaQs0(BIG._,1%>M0Y@:mkn_lh&NNG)<4T8Ar-jS %19\TlN"Vb0mGkEU#s2+o^.=^,5B>*CMdFjel30u8)=W!3dkR2]CiBV.5g,cN4i.S(_i/"F(O^qK^%D5]IcGS^Eq.Q(lAeI0(:*Q0 %0^m/_`sP/3XV`Jm+;'(k_ZQ?37(7!R/.aY>lUud=.U_6lZ_R)rai.ZIj*e0"g0,/-;@O]l=-X]8QJ\4+!TTie2$6Ic@6Il32MJLd %/$h*#%UH,tD48fkCfT8JPmV^-r5M8EAZG1/kO=b^<:j]Bogd_Z1mP(oX?T?!:Y\P0-SqpPXFcb#V$00oARLjW?VC+a^Lba9aBUR) %\G=W1p_RMMak3\lifYWLZ-@];C;FTkUs3L#TSKB--S9krbNDJs:c:7# (W-huZdAf6l]__TktF&:[Cd)0lcmQP[#7M#ND\#h"L %YYH]G5=,lRoDRIt*F%-gLLFObn\]aLg&^S7" %5i1`6]IJ_oNF:;`^9,qH].7E>_h')bmi#[?Z+g-`ph_juF)hu30a$*opC#p-kOC^5$l%C";n2H+@,O?Uo'7,`/fY3PrVVgV5QOW; %)M"D_U[^qGF9t=213p_)n"^d)3'4.'a8Z9%N,/qM6?=Oak?@tBfo/^EV*ZKU:dW,NA[DfN$;+Tff`Ih06RbZ8mP$1$or)ATQ11(% %lVTfmi&'=mY3.)0]o!_iVkR%66)JrK>aS"j8DLMf&M/=,g/6'n&c2"&;5k%NeU/Qt:'5rGrBq8MFT!"!Kr+Apb*ANjW%MN5d>g;e %*L]_]&\AWd"LDJ97!PtX6fg@jYYkV)N(]e7^_Sf5m<%5FK(PYYZs:p8(d2,=@4oA$$[J"fi]N84ei(]BQm5)"^K*Be:E:4*2L2j8Y)qWSJ?+)V-^.\e_FMuER0,h8Gr@a)nrU=qdcK1=].+U+fCRBYjMCiUiJQX":$$ERN,8NYL?k[<*X(`@Gdtn*'.S#tp.@k/)Qlr7ED&h$>0L*\;s'"4=cXdUC*+]6U[hIF[Qk0ON>6*E;?lK`KYZ.%O3r78rdaZ_45Z1&[Ql/7;9(&(!FK!(8mm>*jS>L#%%d %ALs#i?]-_k$Gb#&^_sb&@kA;!Y'.;F:h,oap/`6SEL\dCjEAB/&r4([Dn3XcTuJk._^\'&k7=eLo/08PCV=1fauL.oXAPadPcKkQ %Q?'&2\OnQY`9PC$QK?EYm^O#N/@R_>p<_`%Y43r.K-`ZDHU>ercsR#&f8ZK?\&^)G6\De=2uXJ(YXEraN<\ZUW@OXXBBK&.":[P( %0?j3u7Q]dCSW70\F5cNs.!#j:,J&=W>?RplqtpDh?<&i?f_W4VCiQ-PZ"NZ,sF %X<_P=F[RUa2o#tXgaTelVk<=73Bcn_2E%tZX3R+"pM[U+>-E.dA'B2[jLWO[++l`D?SR`gG7MalpIutP&-1=1S,Hhf/^=Coq+U^f %/:R`f([nqDnB*\0_3.G,\GHfGTIb.:'E8@g=:&D[>?%h37(Q('=\.^#Vh %m=r47DIW9!6'ta1ibi4JCpE-/T[*Xa&-QB,D9rq*Q">b)kh8D&oq/87uWs)]Y_S,s4DIU=W=`!W9k?V>I/O"Z2kpa4=nnAu` %/^0[1`Kt(m(!hK_;PRi?0o+i$"C6C8[[9(]lNa(`:"Wq>%(m?tn`>SNe(Y_cUPgeG(+Z!4Tn4n_l_ur%:OEebq9qqU %P5^1!@b8TO@\)UN2[O9<(/&8A25,qHUWM]G`Kt(mDi."cg^t[FMJ>Ho].V)=X!5']7.m"Q`O[SH`Kt(mi@QjPU5L\F(14bUo-/"U %EWiG%0"r<0HpKB^>gHPhZ0hs@n`A8nN:0)TYqe1/f]#O9gm=Xb-,Cp5Fr@PG[eNB0HU052l,aFGM_NFQ;=[7%a;9HAf-u1rKmtV`kXZ5jC@?`)65)W=Q);@XX9?ui:4$(VgB*%7EIM]in %=D+Hl+)d'[(/0:\jhDDY=[5%*B')],lR^?#IN@!Bkh>Q`#IhZ5CW4$d%-su4an6m[ZQ/-+p/kr.l)_5h3ioZlj7Bh)YCK %Yg1+)4Z?WRm2WhMlRY,9H#p(YcgONTJos8(F7Ctr59?ue)3S36SV=TU`VHbX@%@IsZPG3;/_9a<.or+Cc5KPo %5K#Sj,ba%H^Bj.Q4d,+DXL!Z9Z#>/8(6Hg#gnB%GF]RVVc*5L1Eg,_:VOM(d'r&D]A"A>MctU;1#jX#qRburk$a@pn,,+!Z]JmVe %$V9H%IfCctB5RBDrtOe#!L%a1XL!G!^.jn=O*//dYIk_Y?(ZaXL%9)fZg\H6@HEQjp*QY3kJpBI(.*V$emNU:&["PB=SbXgLHe.r9UM7q#T&Leg'&llR_f7IWtVp %GsB>1$V4q'I/dh]B=U%!gLHcXV":!1,(>2f52(#NbHT8YI;%a@(L`jl?^bZXVF.;lmLuH#NY#udq/@m)!8%<.X%o<<;"1d1if;t!I"r?>J\7Tk_Zg<+D=5]Ot;9cre\NdthX.u-FmhEJUf;qX^ %6oAbk;cj.)=WQ$D^/OeS\7Tk_Zbe<<(ZUra,^Eb]B]>B`>dHJk=aH_8[CBgk<3skj)dK^1WYrbQ2o.APURG?8^lNK[lDS=Bh"ZqL %c0A/^lCGd.i0kB.7o340qTI3)c0D7i$hh@XZ0ej/N]@7::N=Y5&DTLh22g.23km,%k-tKEXNi`[NH!/-`/2foq['E.*S('t"GEYa %Ncg[Zp#996*8=4hH-YH=P75JgD8[FfkiA$;:rlfm3'E[*<^S%2?6t'ZHnn)5.rT(2MLdNqW;[3ZX=]%SIS'1r#!>TgP[EO'$p<2YU-:hAN@aG>54PacArDOYp54g4 %GZiTL0;1s7nULl?PHs(Cd`f+[=n[c&fG,=q%KL#-Z_;aUqGKI$1T80ni@s-&c56SZQj %YNPlZ1WR]>/k]J2-*8DI&)6&jb3iHp4.MRZ8+3e]$88ic48Q0Pr7LH$D*:qBFuV#>N]p-t*SVUJ*=noULU0n%7Q),)]u*ueG;RV. %5CSBoddH<.LqccB5-,u9Tr=*4*)31:Yu-C&#=.,,Ak^!^dFXr"Gr3#3`e9:VB!qAO]LWnmWBoHaZKfZ@RtNPou&baGG9Z*ml#11-l#f0'6H%n %g+(98/$sm7$OXjqQrt*S>rc!jiYnp%9]t&l(_%2(-aVcRU\#ma4[M'$(&^UdpYgJVi/nKbf?KF;5*SrYgtkQT0Fdf]c*+1oj]1*$ %[KWP>&SbJDg^^a1cIKm.2bl:p"DV*7<6tiM;1]#XAp-N3kF6@h&fZ %B\kF]r90I/c%+kB[AD[']Z]([OPYI^m/4alT'Bk<_"Mr(gTU2mLL8nE'QiUh7Lhf\b;^27J,+uV^qP'44\]Ejp*B&hlHube^AC+W %%_ITrk=2e%pqZZ1a^24-Bo/Z7$%#a[HPFmOXd,/?.;*;n^4J'Ij*)eD@nO<9.jpC?=S.LPA"9I)Ou,#!gN3AVIr=&IFLInog6;f!bFRo#WJ!-`3P#]'siS)9'99pii&2Ieq`WpK?bu;IG*W8*1UGCmLm#'[/L64NWFFLQnMR:"WH=*9Q._$juqOPLU8lgFf"hK1EhNr"r"Xi^%Q^F*;CaQE+?7eJ603i#>>KSUV_+?A$g.e`M&in %E5eB=SVQrs2F`JBB12?0S"($Dm?oW%1d7C4j@pR=Npl=NN7L$OGBg>a3]f:fO4`ahYP34C4k[rJSSPp5E5aVMZ!BZ.b.F84gN)Z5 %m98C/e71.,IAp.i\*[@e]!06uCip3H%VAMLJ+scQKRJVUhXLSqP]?VYFko4pnj3)I`4`mM9`=@H?q#A!eVDo3A[>=R[i!/q_n"Mt %?;Z_Tp:TE#Q+,1[bJJ+bZbnndg\eLo]%XkZe[2'`"@\e['/g+IeZ/hC>K)k$ptgk7YH1^[s0]$&og&B0:4HJmGtWX.jg)T]X]]W)S$#D#N?7ca1F^ZL %Y9joC5l7oKdd*tl4dma%]@2#b@'b<*EEE7=ALthfp7r).09at-Tf(9`T<&7!&^6\5Y;OmpY?FHkNO&g65CRAr=F.3;#OgQ7.)%\j %n]`,JUeFXYV!gU88eh5I.\"Rl,n&=^dCON>(TYE/DI)->"?arh+%Bo5HnG09ccCF.qUSCVq %r.]Urm9U'$r3"%LBtApYnfq>U^>'r%5Ms-EDR3t$pPIq"P%VS:MuGLO@)\P$@7YS.5p-+622TLK@4p><;F9k>/LeuOm.>!U!rS?? %%_1H8m\n5o=[$")Io#MB6[&6Fja55TDKU8f0*tuWrR?jh)CK$>\!?d8[NiN#4VJ:hIo$hIs?lP\bDJTJ,q+T %9,Eu*aE"-G=:7=;I"n_e:g\?t:tO@>P5/Ns9)LT%?W'G[df8f^Gc4toj%Ehn>[Z[OK:4H=mEiW@Q.f"4`DYuMC9cE6%hE1VbNRYTqGc07LoDU7o`5%T72t#]6GRSK` %gd'nno2b-Sb7baWk,a//5ESX]U'arfd#/!)9$qLj!A&_m&hoEjte$a]i!oNU=`--D;dca!_ %L5`qb,IU'CT-(n`>\CUQn7ddia)h@^BZmY_`:N>T"nJN,+`/uC3,TR(V@9:;;BN#2r`r&mZH#L7_R%m0VQRFLr:'sCcu4KIo^%Wa %nh(uSfAH23ReCB07%/LJX";fogp_aT5f)o5q4D*[-Q.D^lqA2p(WaruVe#XAdc=;ZP4/[LCIt`n];7uMCZ/QjX'YcMp;,a(O@Vl7 %XqMYjKi^ibf,/PI:uW_j+L]%KG-4[=^4Fm,puR9Dm&&*2.!k@Ab3=aim(EAn_;sGM`'tc&!O)F%d>QgGjHFeu^W^/V$@98/n*Cn: %Y50I:W1"t$r+$/Q?Z$7:p$5Fa@0@r^)b]];qr>F-\C\c.mAV`/V\c9r]Bg%g9XsgE]qBfsa%mb1<%;K^r*Q\S4M::-b1BF:cuRPK %1O64BgNTh:?h)W.Di\/&f,k;^Vlg'hd^agfc6'hQM*Fc:a^V\]4kG8^>HqZGg$oNQ1\SsGE)ZaoR-MX(o'\L`-WdZ;NT..E7\!#V %d,V/jEo[f%"k*ub8S$$\8S^+"ViQ&XG`T,Bo1f33h=lB9e&JSX?78`FHnRY\S1VNu4r.Y'M.@=qm)'j_C9N$;/"1r&#`f.9T0XK! %e3A8R82YRdX4PkkL!F8$>;3.$-0tht_NX45]0%)O(;j5O]m6)XX^&=9]9&f#1`ND4?EmZSj!SJRUf\oqK]LY/c.DS^*,Q;W<=J %,V\nT6h[DL9iO``ea'mKfD\OBMX)A&^sm3J2s@c@Au.F41%OmPO1M=L(YhfW:,Xl@:]5VkGl(\F(ND-Nrt]]0)L^VUk3M&o#4PFm %$@]ldiiePD2&7%[c*B695(;>)bM]uHn+XlV-!C/mQco1.=,^EfFCk0mJ4?4?EtY6![Qa0V$A*5+E+WGOhp*l1=od4)TdSu.ro`$_[K&3.rek'^&c?8jE+B'FMQMM.T+pY>DL?(Ba**uO8+Bh?[S:[;Y %qr4++H_T'Ml-1S9V5=GAkq$n$C3[X]\M*dY4HiRL4nVK6^bpGkF.%AQ_"0/l(mLX&kHbW4VlB`"'#3W$Ili#4mI,#2ASPg!n\UUk %YOqMe,dn/J7Pan[i8 %5DE8oo3gQM+%$Fp*3?j)3BQ)45YO"hX#4;1fG3t6&*N/@KO1'n_8CRdLC^JWm;=2mq+JOCP%Cn+#k^IBl[<^\Y?lL$5gX@96,1Cr %pkbK11-%FTm>KG>_5q=#]%4[/"oAtiq+5>X4bUALG,mXrgO:A3M\onU5!Tp`fdQ&Heb<;R?Cf\gA\.HL]5#guB_cM5R;/KgCpgEq %_mu%:G=#Q/K_f]c#[YCZqiqPt$Nb#ecq"Q8SNms%S8))*X5rqhUYh %>.iB[;aZCjKB5Rj)nMfRA?8Y7N?p]!NNh2Df?Z:SSIE\!F*Z^$="j6pG5:(rC&pf2<,\=[G"Z?T2uOlTmQUnhgFJc$7OHD7,<3&% %3pH<^RARq:G7Lcc#u[oKYHa62A[O/*lkL/f$k*[m#:7U1![i %>mKA*N6r=;5eNE*TI9nf-Kh!/,l:*CL[,e8\>+p=X=W+NB^p>X.o2bl[#;G'7N_WnQ$Bf)A?HF/I\lbN2RIi %c9^GR_hc.T0OmjTEL%!;,1tBm04VHB3MaG2d)?=]$Y/IO`bAYiFk@3@5FY+.9<#Zfd"^L%l8p&ToU\UM`B[nV)5jh'=Kl&A!Ss)$ %--CA]/aKLg=s.Sl4WH3g7:cV^NEdZ?3fWfb7`V_>FE-0MF][cN>GB_OaJ1'D-k1/fr^umOV\+?h$SL7Z*]/LZ,6)I.A%3q5b]k5i %rI*I.B7sqK8DASUBmf[ub?7.S%&K%%c8Z,kgs\brK/rCs4-)fAL!as553)IbOSVS!W&#b:,&iVD^q2!/!H\tMKa8YD!20.K'7kc= %!2flN7)2\)7<0E8YVb=:48-Ak]_\$]71s&JaZ#&j#.m0/EBDKe3W=aKT5M?DTp_/'O(O2^Z=4"pd:8\("+2*S"\c5LNDkO"sT4r'=mWA\OUJj?QnFe\Z^MiLpMLIJDrKWCBe^V?=IlWJb&*NoQ5)Wq#^I:hJ(=,J7 %`%^,C'A60Q[d-:,_W(&\r#kl-OBlHS!uf1H@L[tQJC5OBrG8qCTFZ+.#V6@6Bk#gK!'pMC7,T0g^q?Kf&SRk2'*-M'Vr4e^S[A&Q %(17T^k:e-81(!-Z?/h9l7i#C&R#b"\]*UB!ECJ!q2#7<(GZVU>>lAI1b!a$W#**qm)"XOB3nsq\Fl\bA+9bYnFg9ug5cGHZ.@NcM %JPmqaCAr_DTK0Mj/DB:s"Ip&?&0_MK&7V7Q;puqCgf;-YNnf7K;>2hFcQke9PKTdoQlXE7g0'5P)Zd4p %ebAT_Ic4jCF:6OGlT:L84>"6W*_)=3fW<@*1Y*NEr?dJe^d1Y"j@$\*+5$e=B_^IldQR0=AZ`>5KIgmqUO0qo#=E[FeiS[,3\p1< %>T_<3Kif$$&LO/D;bM\&F"J]95)tqd0uB\_^o5IEp$-H8b<%)\M]X#4Zc2RICiWC"?AdqSBtb5$`LTe,flGB=5p@K %%(+:ZUhT@kTH$,YSoGmqBO`a%LVT$e^-8g'RJ*i(P2 %7_G%N&W32h3`5?,f>oZ7Gul/!Z/5G$G!`:$Vadis+kF^gXbe,P&WG)Y1Q9D0;@mGDp*_9Wa4)6M)B!/YPg2sY[@`!k;hGWsA0=n" %h1UU[_.*uH-kR0WVu%muGt_f[1=_i\`qkXkHA:Y?@'%[fW^0t"rpY<4H?H4lZ/(6l_jL:=5kEC0T=10Q0rE(T8ojCBEVU#G>FqG2 %gE"M#kmdU2\LmAIH!*^PT.us(Wc&jiU(r=X]s0,,.&MM+al7T9=!A/R:0,\d-&aEsZAQrnI,9Pqc>+\&["5.)O3gIRa%,X@h$B9` %B;9)b`#9LMH;t5jJ;-(8&8PgD@n9@T,(baiJiS4S\APjhWrMZjSc_q&k*/hf?;I]oK_ug,)ig*jJ)@+?_;=9VDH-=InsM=L40NF% %CR(DknhZfiUoO#Ya?WKo)'QLp7KQ_'':"#[kS@6.Y"*C8H %_VV4@P6_u:^WV@^HMEdEPH4,OeHcb/)4oJ#O1C4THue0:>fQo`k90[SM&=LLc75EY\,iKZO^;\'i\Tk4:qS!+rg6LE+[]M\D?G&p %Xr?A8`=l3e#OD@(K^`s!1Pu$2Pdd[=0PQ\Neo$f_UFD$I\Id=jd-,-3J %Id:b28hIdmrWkPeIHND@eB\WTnQQgt&o((Ir72&3Jji_bDdBkG;fDS=Id?HYFq+l8*,6\<,+tOQ]26Ib?'%@IU>NOA:GN;]-,4Rg %#4TW.nlng%0/e-2i)]OOQ&2t8Mfgi/2)8k;WXrX!$sU<8:*mineH@`8Ysnp8EHar!=(=NZC-`>=/DTmC%c.l_8@`=/^Q2;S4gT-! %DZ"_eT`D"OV@f#UB$;uf9.;%8aIlCc&8PgDpUm+-0sKnTQlA7C@UPD!?Hc8O1=e'Yhpo`FhMp)\gDY6llHsbE'VFWQlT6TJB=$!V %OsNP@oZ"6q)GGAno-9lmk>%QO6oNq9TU,1qf';"-`?]dHC,iCT$_?M53L!.!m88EGCLk4e*Yes#Y3Ob-('<@S>_Ff[<%h)-&BgJG %,6OO)$A;M+_hLl!k9.^je[JIN2-T(9$/n.FB,4a\clU._`K-u,mN^4G59\V!5j36;6EH;8UHaDC'^!%Sg1JK^Xc^KAkBuZ""'#-2 %ICD;a7!a.XaY]PMcSXIu\!C_hGFf,I$As:W;P"1iCdY(6SnBfV]ui#u\,4&oo0!#h.U=L=nqN4H5qj4:?=g&]ah(;\gStLdga=af %7/6^:I?*T(]-=-J@W3igTB2Nh'P#OVDbnJpB[hSBXG,6Ga2gcoMeWM^I$[/)K51i*To3HVHLZFulpe**Di;,MY^biP66ME=-)d1) %ClD'9lT(Mg80u)mNORKt"UP?EJjeUr'dOK\$$G%Q)MFBEM+\=ZKcDY@3jREMeSFB38"'a07YEhm`552]pW9oX>i.[#H\,5n5/k@%35q"P+]]O)<]V,6Q5F;h5KqAAD;@"[`-N;,i5\;_j`GS9+2h.)[C?#FfD('m"&c=5<+S!:p %m;+sY-hS66L>-.Vr0]q]#oR!KDB`,V@RaT3H.cc4B/@/[:W--R(1C)ZN.N-O@rPsFCc:d.C9MWtd+JK4XnI)$7*oEG4*BUQZ+XJf %lVeeU)-BYp"hG@'AjCpZXU<:*7^"QMQC&!JPgkE&*[<=.RL,L&WM#BVnsOM.D"/oh?n0CZAn%''<4?]MU87AaG/qeL=n7'KNGSV3 %MN4#8m)()c$^>H86ZJoi5cI]je$1S?A5;U(!kUh\70P)jAuT60V'!>nH(`PC6ZJoiJ.ki`OM#0P1jW.%aW'@'m""/NR:*t[EsD'L %4.icSoM2#?Slh?dYV3#q'*f`K:X8tlm7BEE4Akq8_+^YfN+d+>=Y<+HUY+.r1)P1L?W76ISl]7,R>GXcqS[WQ8^e!W&gLo7i24C? %n4TX_^_?Xp>HJ7(@%J<%0V164qM1Mh0DP!HkastmjG8&426[j8SA].Kbf%<[I/ToeT[.(CS'6OT`HYj#-:%9)M^M8_QQs]Wkse`` %.*RX\)hN<$pF4K*mP]l*?i3kMmX8,DYEru>.OJVUa4(99OIm+hW@"j%OC>`rCEk"@:bfd)7MB$he"O&&P\82^ocjgAQVO[s3k8'2 %r,L)8faoQ-4eB.)cPih0Tp$KE3&/r=iXN0G(rT@^E%HCj?O2_ma'6FD0Lo"F,;o&VTrnAL\@>U"C,/BC)fT/I=6`r=Bhh21qd %WhrE!p5a6uN0@t5;$hhiroW96<'DQ)s)2]Z`"F*Q(Ne\`hij^&dUZFq`O]m\Yma,Bs@L]#E*#-k+!\mI.3'H';EPg97+Tp@52$gHVLA?c6:'Hstk0o;*a`*(E>.g3;T]5`T)AKIq!o3cRUS`Cd#@plK7H3]%1j5<([f-eg[Eh$0Mj(a-RdCu-[bOKh&3Rr*NH.a6I %5E'9K\K;&U;f^Im4C0shGV_Hq96CK0c"F&TPnDn,0B[JJ1i!kr,'/F9oKtUDa\Wsk-G[5i%F_R9'.Q[hh^pMH-"8%W@iAWYKM):$ %9=(dX*JWQE1EfOU;6d\"HrHO.RL,_aBTS5#*NqoM8TS4D6^)4>p#ZD_qklDUb]7r;N;6>`J`-A. %V^C:/QVO]u7M1/[&rXj8MW!;$KIDQ#6\mTTB_8;9iWp!7HEmk6jigR),:#K@FN:)uaK&>Q&PG0qMJ$k,>P"7nWDq8j4V$(fPg:W$ %m5[1aaPhpbM7-8g)?A*oS,+\U>mJ=$EiON_4J)GJtb?<(=*74b"XDiU!*7!M9@H%I>"9XAB`+n4o/L;P]=:m@/gQ=CM'$/ %N.fY?DQqG$:YUa7M43B2%ebs'YdT94K;FD=,LfUJVIX3+81Si4n+0(6OrUA1bpGb9&.HER%^[/pl4V\3[l\C3,E+=el`Z2>*)3N2!>WTFp\8;@>CD+:"'mW9tGSRJ*=^(3!qO[)QH4JA$uoCN6q61(@lF47IWgR#]OUiRuZDn=ZcDarX8pQXn5Yd$1!kV %VI,2+KGY>%e$%MGI:r!h_X.a=d]^FCp>g*".CT%UCbA#?lhLW&ZZQB)(,V_pEce$HrSD-We2+5a %(i=&%dh#,FI)%+PnS7d]1$6nusMU2C8Im>J!^fnj0A<8U^hX?AVfJMA3t7$ODP3iVkL:YDLjaXJ6q;j%Ff!SaPRZ:<\@ %?3mN)_)#,@jr-_>&ffasX]jq?$o57]Q!1*g7l/,'$)!(mk'b&'.c34&MsF15<]BiS7$">#:(PnU[n=MCR[kYY]"7L- %"3iQ0W!XoLEa(C-UR-$olErpJ93udsdBZM2[]LGnU)nFe$BIdDjmC$<0hiA+KMK+'Y^c)Wem'=&Fb/gh>qX.pabmU-1NW(os4i5Q %KZFO?kGY"-a&iq*MJVpXdXt$V(%6ea;gD5c*;H\*`VK@#kEE\_#f2o)XVf68r#cT_@16,!-#ooArk/PP8"(fmVHrq3PmY#]!l1$ZJtY^c#U![.^9@(R:;)(k[JUfSM1'D8MLN=:`IIqk9=AKFdJUKV)$l"h(pS>^KO+XH5dmj^r+hnCKgA'.:Y %iR="#Gd)\d_-5ek*!daHHK\*Q,\#qAN\O#&e0P@sV`@imCU!#3N2ZE-f#[_I(91Z=T,b6`*@K89Tk:!e3)9%?,8CU:jC`!m\!i"c %i\O<0e[1<2q&m1r97\Y.?t@Z=pM6)nkHWVu923qOmq8e\mZnY(=1m9]fa&J.JK5WgZRoO*dm@HX:hO5llaC4WVm %fiNA`jtoH"nq,*W7XR;b2-Aq':mQg8ND@jj#i/(/6-s*$#i2Xb,&9'bAc.pA',B[G=fnQc;s!*@H`b[;g`9qA8O+9*9E$-flOO5\ %U/(-JpAgXhh9hOA%+tNSl=e@n,JN1Y-[:ukKJ6m]-^!OBCSZ%=Fq,S)&pOjd`=n@5Q^oSg7X=I%=e'1-b/V^@"3X]F.8WS0!lNp1 %"1-?PJ2-AtXs<n2g61*(OF>ekLGB0(:@j:,K*,r1HupRh9sE$&.gl;u"^!CqVh"04 %;jci@,J]J9mCG$o3NX+`NjRDY+.nFc/W]1F4'Gri*,SgqGnBdGH?^NW+5QIm,(pTNe@F>6M4)`S %$e:0qMLoZ&"#F?i1Jt(rE?=KA\gD-].?ldFEoFk?FsQ?,HMAV2c03M0(,6nhB4/*GfeQ'e___J(qm3$94Ko9W_UuVe[L0?Bm>uN3D"B*KstAZsZlj8LIgr2`RMQ!DcQRBcPKrA*Bl1.C>(p#BA0E<^id\M:Xb4a@hK&F+;,CdS%X-n_#5B(%i% %oP^t7G[JLf>()u&MEh91LZNrT!b)Zhi!mH.F]?qAY?J&C,5*+(;6sGcXXYFuO]7iMX'*?=S-D05DBJCpWE-'`Ljc_Yf(Z7r'je$" %_[)lD!rg3:)8>6/?`MY+=KNo^,"gVTj-2[eo!O6/]BH%\om],@i?e5$J6O=pqKY-5+M"9P8C'-!k4R; %%RY]A;U.RTR#mG2RF0EQqm'>N]8bFP/CEUd"((L@JkU%@Qq#\j %Yt!Rt#S]e9P:*SP-8^&Aie`AWOO<=X`"T&lb@,!LF-rYO\=+/rG/#Phq/RT#?#X;]]Q^iQph+rQ.Z9%YW#M!<%4RV[2*:0gUr*[T %dW:7)TdW1\iq`B.rBqHLnepr=&)T3e'ZI#;pUgT4M%UBd))J2W]XcsaO2E>,EK,\D[-pGLpT_ET/:p*W %7:=,W;M+>Tr+XAF#2pG)&bma>\]c8mj&lMU(j4jY\5O#Wf;3F*g8@Kr?B'a52I9u-S=F'RR,)jGS)WX"4E&1YCe4l?]4AZRDdVX< %(;WHriO4;q>S5=M`Qc*AORr-,(+5B'b:J60SOHq[dKq?j-b]4)DN\sigC1?L6"mAfbV$FiF`Vt%Lf>5W65&GW]Srgs;)/^YP3Y2R %Y)b='l4DSoi\A$.b^2([O"egT13^k5rH5:3rI^iHmj/;4;ohaY8h5FED\,G1XWKeS;QZJmpEi](4U&Srg_<'k>1EJRP4iAb+*fK]%:AVjf`eRF,J>s5^+3_l#U>&$j^l?G&2;fS)QP,@!e;OHRGR6>5PbO28aK.]6s %0g=$6!i^Z*%'mO>.'[#5[qG'eO_+[fR&WkcKR:!$8_#.?@O@uBrjafDm14rQNWjX+c7nB5NeGL($CBREJ%b^c$.29R7?g4GA(Gci %9N/%Tep?R5]:[U1r<2i*d2@gt/rNjW^CqNtLj3;.qo`#e%`UE2-B2XD;bV,9DmFO]!7`B %PJ*:L^,d/%KtWeK;OrcVEd9[+]q4U.>-llKi=K_k7:_mQAVB.HeJu %ES*!Vr1O\N&S8M7J'XSLM[+TP&%:X$a/KS#&:\dW(2Z'+obp;E(V6G!-<4q&d\o<`i6:btbAfkEb"7s1`^\_JXZ6*X2%ZPo19IFF %?6dA,KDbl_eqWeX&l^n(Ls,a$YMZT5kUc2r$IQhFZ?K8:. %-]f.p0HCOJNTbJl0HIdd7?'$tR^pE*3,m,bR/!eBfe\R@68t>rcPTQE9!p>n$St(f(FiiSk!M'/5f?H*CqN#KtIF=7rK: %K>IK_H*G=H:+PS<#'nnKENS4_=>QLi=Eq%c`B:)<%N`d[iZQlhZ2YX&_=![T[Wc]D5sI_^JKLnYLkR(Wa&$!s=V>[ABsMZIVer;X %lJ.Bf)SO:G["oV$Dd;*a>(d;tOjBR1GH_]i[_GCA22YE;'o9Bef:b?5,'M.^/j"D2.X\>_^<)D%I*@uOI,=eYg,rIr %%C-fVd@F_mKXnl,h21Ak?d+5QZdm3S0B2;mVU-;&R*ROF.PBjU1u1_$85-h%#oa$!PmD7(Yp[i1R#>WN2&H4_b9AI`:(Y+1-4u`T %'4XcTA)K>sb2C]%%cjnh4NPO8=]01?_.?*Sk-YCgN9ruCbTFiM.&i6JAKL31c\"+0ao$=82n=*Y:Xa'dHGGQO791/U6-)=TU*d*s %O9'dQU\0gVWV:Mfp8c'=hdu`h:;Z3!$ei]qLY\SHfU9iFbo!"1Yo.=6QjDW_C4S+k9#khu]QDdHf3r:o:<:6Z=]jWFKXf6^32VXO %T[LS\N\tLlCtmOk9,O6E*bC"#r_,Rs2&sYGTSlUa6`>pK4e6sFDF?N5O)uofk:XL9uUtaQmO_IjC&J/DE!bpm!91n1.T$/eXr+kjGeiLJ@b@m#>^TK&h %mlH-#"UU=dh'C9pFlH`n.,FF3T2/Mfi5)G*?Kg%Cob$Irm^#`.]oW84`Cg>$dMFX]8idlAG:]0^)d>)t!'*/B'5C&C"dB+*RAXfP1F=]b&*(JO\ZO8t3\r.D^fgX-8 %faR=MZV.$gEuEi:Ap6-FFNO%+ZLPKRG9:@?[qZqCg)ta:FjugD[f/(.^R0m$qtV5N6Ih%U`aqFZT[nH9"t]eXAY-g+.KR=<&j<+7e=S(bPS@iS'/&-I!'R@sGd %'6IsCSMj5Sia[g_?/=/\6VW.eY!glp6DIW8(f+`CjFiWsf7ubAV^799(hi8c3G]/q_ujJ2%7BW40.2\mUl546di8!+N"l%O.$Z/, %N/lSW7<_@i"J,=mUsE_I20tN\aQ1E6ccBgUY2ICIhXt\O23Z&=(rG:Rj]OP*oSQV*`VptEH8\Xb69N%%6N3d^r\sU?s5@)HBM>TJ %F$LQ,+(qPnmM.m,E4KsPN]eWZRTFUq)>VaQ&_sB*&g;u\(P+PW-\8NhJ_/Hmjm3n@F3@^V.03 %&T<55(+F5?[8EE677ss$E:U!rWViVl^2*A;`p^6>if^PoY1.f(eFsb$IC)0a_-OH>>0F#ghV*IuH->&Gmta[Jph]?pIO:0.@sH]9 %%EDo$`SYq0:9,qr[71LXc`lXY2ur7<[BUhA3Yi+V\m62Sn.H*=kpmoo16&/FMr:WG5019DJ_[l0cPM=gfOtmO=MlH2X&^V!h%V^^ %7U-gk;2TSp7<1,':(HI>SYTSpgs2>SpIGP`kKkhb/Y8Qs+nLtU"nM1BZ.=2o7\`eW])(4Hp%oUf^6,`Ete(#O_;3CdlGXVB9%XSmm7jjV8t'l[W`q5>Okq^pcrlq)r?; %DS,mAL7d*\(0eHdo6KGLUOL*eac%#E[.$-$PhD4#>'u3#p %n3P24UnU"(=&)Qh@d!^1:GEsaOk=AH3hb.U]Q3,GM*KuqlJ@>p,`IGaeT/pHW_!u2h=X??..n5/X\r3YpT2#;hG %9&V!$CQG:=T8fHo\uh"rmt)(h5(:km%1abV7hq-AJnO'jC$R";L,k%Em=$=dKmEWj''E:!F/_9.A^V@>S\WF7\&m/o_g!LS[^pWb %9<;lB"`i*_@iH(GGoh^$FfoBa54NO,IO?ujc:q!H2>C%jc(1=DGSe3Z"p@q9q_q9([ZJ[M]r?D4Ho>,ch=W8:V9=UFT-]@djsNLT %fDDjs;m9_U>6t*5hi]GUD[C,NB=u*cZt&&Uq"&_.]MsCWLA3UqoHR^Die5TA2eDj)ks\OQHX`*rfcR$hYOqJU9c`pfp%qsp%lb\P %8^I,$_0]WkN05sHkI)j`pa#_LAbc.XbVl>E??#1]\nI4k0brR;=Xd9$ZW&4NOi95U9&=?uS`3\Id^mGZL94-\%(2_u1)d;EEn"a-FX=)X?Qof"T?)_7@NgR0N0 %s7tNi<4$KZVq+sbKp*TKD#6at[9HE=l>L76dFD9pU6Z2F:[IV8O,PGq %FR(E=g8%a1GH%4O<9AG->Mj:tQR9,Ckgd8rZ/,H/LU>Y[d?bra&JfSg9.>#fO;7IWIV]%RHiaR]ToJ'X>g0n`_pUBrkmd,K*l.g0$3dc),s;/Ih5QG$nA^OWG1dP.#juZ'r[(N %H7EWqAE1.]PKt+G&F-DpJ%MS(Qu)Ns'H"SFp!4LTFC%tj>VY9:Xa3U:Ia[oTW.[(**AK&t*mR`#/@C1qO(>86heLuCVl&p'$<(Yu %_GbHdSf1&QlnXH+RAnoDUJmOpNMY2cq+.CJFa!("_T?GM<&a'@ou[QTeYc:`WG^-_ZQ/=oO_VoMG:N*\2#:]+7j`=+1n1k5t8B"K>q*$K+^[bdB6\u%C*gW:!e"bTm2332i>*H*ie!d$"@m&Trf(`RnK_FAI0N3>5 %P!Lhl\%('>PR6%f7kasAdo`csMs_n^6ht@Jj^r4->>@rs8,b@KC`s383cjmDM)TWB;N`BVO&D.[Cif+7VU?9sXIoe4+W(iDC%7Gt %`Z#%3PR431f_\53V-#rO+RuUKJXp_orq!h!ZcqP0j![BEAV$,]aaE_.Z(KYsZrEW0-F$X^m*Ae:P>;SQ>Vd-f`Z63QjU(MH9N[3t %&;Do/9M'o/>`!=?%\ag^l=UBsLe#)Z:,X<5k4T0cBj.WO5(5l72VAmt^G2)ef]!Pi6P+,hQs@n)&Urr?%Y3dsVY*e(GXVG9i:@Vj %R1X0nL/[e0XrT%P)[tdQVLM85hQ^.P>l[?8)#.Y;]!V[Y=9VE4oE7'lJ@tOG48FRB]7J`,K)2)) %D"g4bFUCCp5b2@9-8W)]Ue&Tg(/-)nP1M!o6?lMYg.IOX0L+-#B@0j;m"h#6;=e6@6R %En\jNfWp[$o+/nIQ0A\0IYPMUgS:^6[hg^.]M'+_\3p9:ci+V-;CRA?e9mqPC*Sg%Th[=2Z^/oTdLTT^f.Vq#O#aKS=Qj(ce%UICg %7`>\Fhh>>Hg2HA42]8eQ&iVZcj#f>2is=V'M+RPl@t9$@MlCFKXPD@7iB-6O,W9e0`:g-rHIpsB$agnq$MT*A#;'DQC=#uH*BPsl''e1%H0_p]95kF7@IVW %A/b6f?L;!F'5b[2d;-N9m#8hkmn%JL:_:5HUImZFLli,7BVHQ:h"MjIZLnuRQ:B4[7p'UX'GHIqMAR)^i`i_S]G,?en?PR0*b=] %1"+MW]#%D1pGtZX"^,-LR%n/s#babK,qu9q>B'J5%0:\Wfsa@U70ME0DE'S$DE%cuN9F)fnASa`ODR,?IfC1cA(E=;jANkd'P%o% %J2:aH#cLfu;dY.?[[gEjagAdK(M95SmE'Q^klN/[4ijD6:f2m(+Y'1G&R?GK`#u^B_JHKpnk5CQ#G*Zp)Vj:Al3Bsmc@'JEYJuoX%[`7n9:i$!L %MeIrkF,%\n"8be^8E'V5h,(=F9bS%(AQ,\H_Ql.R-r_cCLcLK(+U`4R%qFX6;LYL]5:aYYXWXbLV^3^;42jVWR^aY"[\7f5T+4)3W]#9;L3Ab-BU2.Tcgb$@I9="r=\L1* %TMUO*ngk\I\8rH*9dCrO^4n-5$;0E,a3&FT157Ei>@Gq7/2jF[[CpEd<-@78sD*8QB546>j:!7s6B?+O,.!7Zf+A_?Z %]5=E:@!BXk%)E3h7>7\>>Dm%o\Ql4;nV^Z#djp6LgAOG5mp"%o/f+Ba]UtfXH>o:4fP7s`E.-p]`P0MOs(LYP%t+Ac24d!!jQBIE %k@pQJK(mQ>FX&b^%,Rs3$onQ+nYcr1n^Q/a(!)rk,80NX9#.-od6dFtELpan@NKHlF)PF_Sd[(X^U7!LgE'!>a%"SJAq:[E5)dN4 %#p6S]H)PFUEoo;32*RPa=?m913.EVlB1.Y*1%jji@+:!iScebSID&\!1T)\^Ak^H%_fV*!KQ+1j;?UYkILe!0kqcO6C %^>B`^3nH'RpYT,("FoGq^94]+<-Jfb.7DGV9qWm>+`*K!#%*=\!gYJ]n^r6\p@9TXe#)HMm+V7#,ZTg7_NDX8>B&8Z)@YH:"l0Q> %j6\f)_ftLCB]o'@ms_9bJ8'9_5YO[PVs1!c`LsWP^6Q)e_)p'`_Ki?9BMR_]>K&_K]$okS0RMDZ]86]t`a@E!OJt0kX+FXfL1H.& %4alm[V(1,T\sZ+SQIr/*\WA>CN1:Y&27LRpMo]RT@L'nBb7D0A2HiL<3!iiTf]_.0=[Y`pa_-Zof&]@#%@UY3fP'7B:1H"Y@\ZA& %7.s[])]K[4L&B6KB`#U'9eMDpY?l%PLl%7mVkQ.@jAhhR:[@uX@GP^J;EXb`($k`E@j(P6q2,32.@f#a.0q2^o:K/W`j5G3#7MQr3=Y>?_U64:"tE_ %"IX*(jFhL1q1^GS=G`#$+!EPJ:"X,*&;'uBGK_m^L1-0rJe'KmP;d8QJ+8t'a4YDl64S.(\s<0F7T6:N/KZ]!$.iGl$q9&>18,*' %%(0kp^L6)LRJF`J)557EFCP"l^k6k6<4Y="iADs9jeg$ZXc(DZ@$Al%H[%nhia1'tDaLk/j[rmg`8OeqpNe"LYgZsc3mR%EJS/JB %_>sp#05aIB;3L#=J?QUiH+0#WWdcj_u,b+m$uULIQt\pGlmDhPjL%ZZ[hY`s1!D.]1b`QUY1:YXR\Dc8U`J[q5P %EJ-Qh6,$gVUGnB>Nj]@Y&lB1bRkbua:@6i"G,?RNpm[PSW+"UW$a#*9j:u,]VD^#BC^n*:I":_i[T65GDN7_0C[$W'7^>H+AR7hlp$lPqgD':C:OPSL1ZmQu %j6NdfpYg#D?>_M/87a&Q"kW3O:@fA,$hiZQC>9O<;P!=5lM!hVUlW-q^$FgHD&T$P4TLPfRRkn`\e1K5TuXX;F&tF05E($0#D6bQ %<\F2c-,J@gA'.&;gO]>??]fL.X<,5S1F_I(@B$kem_ho7EVs7-pZSG(E$fKR>66D=#EIj$`KeoeGPGkfo/U7IX5.Mc>NW^WO\H'n %O*A-dY&cstCGr4,1pp*FZp*>Ic@jVcY'M\3<6C[GkU%JF9m!FKkN0F-.d#Fa4W@jA#PTFr[ItC#HmE-Qm@4"NmS>*Gnou679pc_& %:7)RT+Pb!1Rr!@I24M"B07k$.ERF9gWOOshMCL/qDCTOund+\:DLrC?89sgJi[/iE*`1]u%`euHj1Ia/:\&#`>99F9:ltUBDZ;^C %rLkA0!S[++oEUc][Q+#-Wfm/KjAA_q>hY9DOaj^&gQlc-*Epp%$^4*[2XPiCp,_AnmM(AfA58O'jMQ5%2YL@8mF2^'A$6ZkANi)Db$X3 %Hr["W'&YJZ9?:u$4K\+Q;F6]2CAtQ)I=-hJn=ZDup"7(k\tfCBZ70kr/"E[a(680/^TM4C2n\E.Fnu2aHXjn'I009E.4AEg %>hiK&YoUT[OnbM%9=$_,at!b)jRJF,&N_Fhk?jF2a!@UQ%1bL>L)Ih$:!uV:a3-;'/Y$m$*>@[*ht;4jEeL5Xi%@[EOb2Q`grY\h %DlH'D"FYj:,&r@LCH!P0VM4f$bWqT]]h-L?^%cKfEl;o&DijD@@tX9F!o>&K%<1n9J/=E"AtGK:'arfd#/&ddnO/mYs/U''nZE0_ %1EO7Y^QRGV9%B.PPHV"jKBO.cQLcWMjf%_:lq=c59_WNjhOV4Y*H&akY@#S0qAc>j`2pM,*ts?XVa"Pl97mc %oK!fRo*"JTBtpJuQ%LY(2&cgJn61#"b1Y?.KV'U&VPi(uJ'=/1!k_Vk`e'W&mqfWk%Q-_A6F+eFMkuQW9*<4`LQ=ka&L'm+4J,lc %q!PZ\Db$,gr-h_rr]HaEL='e@QBaFJ3W?kDPE/58(rnN)GV-bb$5lC#%RU,/6g.AXrE4;XW8C8>IC4-dD`Oqk00%IqWHrHAr!mD+ %2cTBqC?HPBUI6tXT0VXbr"U %b57'Z<^fHPGHi%DFA/D7YOgW6m:=[nYn5+#b7f?aT>lT)55AKU$OU>OK'\piUQU4tr:'@f+]-rt&1-F7SD8/AJgg<_*XI?)ZR='5M^^*2c>lOW'LX1&Z4Re2,tZ7Q"E1iM+So3F7NUoQ %\[?*i5*+;=#nLU:,l3BOl[ZuX]@2)rMmi+nda[]'/:"BJ5iCm-KM&_MaM0_?s384/ppd<]3T#mFlkMmbIg_i`p4FZ?o!L>?>]SDg %AU3!!=0P^!a$XmkEclM;a\tLA'6?bnQ95lr4>j%'4L`aD(;aJB^5C==mdnUOhVBR,h(YH&nN`_niIC`=Q,"6e>&t["8[G@Bk5TRL %aDBa7IthF$T@hmo(?kWE0hnOj/99rQO-qM&=-<@\GaDF$IMT.-lMNV!I9n>!oi5G25Dg;b>Ji:l=#LW'eiPd#?bcu/?[D`Od:q9$a'a*0l@lXKO#/u"P_Re6L$,sBKmr6q7sS%1qH9D><9\"/C.>AL?WDY_rZ*BGQ*aTJT+5QcuGb6ODlgi^#nH0])i;rMTm6RY#qN%7?@Zol#F,X$; %<8HpD`7JELSlhKX`o5c/i^BG+qMi6,JhNj@&:3=5_5qdZejsEchMPmUPD#RC_@[gZ8qHNlSJNdi^j19nAj'1QCsZ'#H#G&=aU9r?+EiuEFi<%&*H:[mmK&`Ri&>5817U6eYAU;).Dn>5AQ2qAq`#7V.%bY8Fl/Ie8!Ma$KRM+h %]5LefMK:TFoc:tYM@0SA;`!CiX`Y&JbMH_"0m/HH@28e9q6<8IE=Uce`,[eZ+(fkc.T,8/'-[9^)Ou$?OA8bK:AE)O2mrq&G;g*f %_W3EWhg9R1+2A[0O@73caQBW(;2Y+c;q_?fjr?NuE%"pEVNbPd:5Q$X; %@J=>D:U<>Cf>R&s[N@D?NLHDUeDi9p'/MBTSK$V76(sHLbdEV+0paF&T9Zc<2L8H=g"_4nj5F)X%>E3#ht-^ni55r.BFUT %$Bd=rJu66OBsn+a'Gc'^O87ZhYom%lHn&WrVk8B*KIYLWng**=BaaRsF=p^5MhHOdV4fu+RNG4AY %C]>lsBPi]mdopOaR+D8"mV7a7OBH?Ta5ERRHV&",1XXq*rgMDA]ZT3"o3,@nbLm+Rf+!Q2-C%-`q>Nmbf0Au:[_',,5H??h(W[<8 %I16T4[kCGFr0otHB8#1FO)5!XT*'[`lcf65A.;c7-*J?c_#Y^cr/8%ddIJLRPkU$oP5#.[2Y %dX@"nK'E"2&TKgFZV=?6K=rd!Q<0qfXZ"3\YK);ViQ7#n[*9rlDnc2po^/M_'$'k>q8Y%paL%&tb4%p!VDYk]:9Dp>MbJ=(#VY5: %CLr(lo*qYam'"pCh$'YmRKasX+md,'nYOU%4JBE>Cc0.6%5^\`rKV#H6K=FEs$EFrCSYp4?GBT,87'jgFS.AhP46:Y/(oI=$!8pu %V5s0*+%?Wu*R%0R<O`L2D52;@FJh1>Z!WABS;QBlfNVDBBP<"-rqm %mu\FG]IuRW=$1*M7n>ed8\%qL#'/gTIU;@fg[5#SoOmdaEC]5!eBMAp@-3Af\/YifWm0>e#A$:T)"Q:M50=efGq\!!/:q"C4dYAu %cBomL>=Eb7(&Q6"nP`;s-R$(I'`0&2i&'n)$#aML$N'BiMZ'Cm6YeZ$ehJAtO+;8-rF#75JtPr5+SO2Y=AHAM_%k]h(t!U?c_Y7`GFtRS`+LuD=i3K@ %`SWZ6@R1+,"NH?.)<*I\+)g+!M*$YMT<9nrA/5u6#J%EL!2)JV;PPXCbW]4OA:F;&-a+5jqU9o[oq>7Mp2Ci#g#g=RoYL]3I8&+Q %ahfK\Gq?4G;3/-V+UEcDUY'-!U,&T.LX@-O$V@hfMOUc(gO[2t?#5?(O*Sh+Yb/as1@I"hd1[.R];E?gX51$aQKpi8oo %%M\f]Ir`7um>\VlT_T$Gqd]d/0s[$=>>-GS5%:_c='+Et>"HFnn-R3/kLG:3Mr@&_QrA=t$l:M*Ma.ofSWE'K^r)k@esh^5$6:rO %%-,Kq;.7(MY'-D4(g2URK`2K:)U>Dg %iRaWS$u+i(K$Nh)YulH]rn?#qHC2A#Cjf.>K+#AM9tqD<;rdL'hbP"2i*m(.nh*X$Q`iVdA6kBk7J"ISaa"4iAte=KBfL5*4d]ZT %2.6nWQ>1.Tc62b6Asu-Ao0Fs$8/3I2&*!;\/I8S>0$,>b\qUGuVnBO]SDJd6Mm$3pOp#R27<3M,d3/01)S^m'q.AcbdW&:9kk1U? %biPi-VDe2EV5tOZ^2iI]m`YWlYYSlt>n>&R@%%>Q2+4G#8EL>G1;.dVc %k8S%,%r]\'Fa$og[c8r.3=ihGC.Z9+3&,QLQ@u+Rr@u.*Tg8CDZd]IO=b9tJc(_4;A^pl1Fq[Qh>Wca+csg8Ma9Tl)OPfcZRZ/Vt$DV;'k*'2OWjUsPi.m^&$hmaQ1VopY8dC2MO9!5\gHDDYYh["$mXkST&g`1P\UtaReT=4(QDQMHd=+L%7 %lZMdboTS!'("DP+qNKZ.("DP+gF@C@G?ZS@LY(i-?(B%fG)+]8J1aGEG,4,kJ"aT`L2a<+r(gD"Z.N9eBkn1O=.XVSNHN-H-Q*$$ %B=-.0;&N+63q(poAM#1T]!ONN8Y2KU+uj_A_RgbWHKnlcdP[['bBaMYFh3]0!LEBm,V/B::+Rpg14JsLPgkgd %enG?lafY!NZ6!-t-',UdQa@"@H4#h#aSlZ#lV\Ab"=,MC:Yq%A/T2P-\/tcV?:tE_GQG-6.[36FkeZ[8K<>qTQT`u()75^c+#KNhD(nb`LCj'TBje!Ccgu0soNb;:(<""c/6)37;2*='?A'Ue,0aWjV5/0_KnT%W/^$o,YMVp_I-iP(\q:j>VUgeTQL:e)f %>bjcF)8c,7DgjU]2,jP5]J3 %>Yi@"<;I0eLpOa.g\-cnNg5Oi:T!+;6"T;fFU$RH*3ch.!;lN:eJo,gb\)=P[V`76B,R$7O/T.eL&WrWmQ?KfCY>Ou(@Kt;iG3;h %)Z@<'>f:,pm6Qah[8`(s*fU42=G0eXrl24UF)nl3HE9t*2+A:`7^$iIN4@h3(NiYdjN%Ya;U*].dICcIMjgWMBe=$lC/"*4'ilNu %;h^41Z2%.2"Z4cr9s#u?HP;O2YL?L=)I)R24Wu]VmMkRhN=kVm3[*QXWNeiL)o*d_`u5I#+6Kpq90nr!4,$H=ZrZoG]>74>rLeYu %.e?*`W5k41@aB(9!-WUnd>IU#!C10;4QP=jRc4+IS,;)LmZ??H7)H`L_ght/m4lhP+2o1R^]+YBmc%dAFr%r_G/$hT2RoTM2?*ta %r"(X08MgBAhgZ;7-Mp'-FM\rH0WZnd05*,I$VMJ5UlRoacI\X&(D,jUFJ@3Cd%*Zj7D,$GM#K[?I:=^fJ`n0YcsPN#HPf/#+$^o] %^/u?[FA]D+mLZf"n)Ci?*Sa7fa!k+1VtpAF43t=SOgSsHJI]P))2rEK8Utg+#n/.=WJMrYTn+P\s&VuFb9a,[G!Fin>N+a[Z,FFTXG_:]CRA-b_5Ah%Yt&-T;og')R"S4>=#^XQYVV5!i`Yg1/V;-h`2aqN0s$Rb3+:VObnRm(ou$B$YkQi43\!`e6bn %I)UU]16O=183gN3BLK@;!iT@9>O3P;)B]p+$"K,c/QFgCjDDqtT`?RfG&5;h\$,o^IUX7U[LMR@&QSmcS%_B[Qd*2>AmN$.&%'P5EWR;dA"( %XhB1tX`d3k^*d0[^Z/_T$l\qG7=XL-\Ve+q\cO29$fHE7X63i1"UFhQX7Yq^R&n0pJTZI6[U8HK9:ai)e>;sI*\OhL;A)+pP#!;R %I*cB1f%!qG#=Um_!J.sfKB.];AC!UF6M;'5M?S?b0Z+:1MqXM@`.(0!Ah1+qrr1s'ED)^kSlLltS!;F!`9@<6?sB[8lJl8F95-Qe %UGRLtO4A,(#KGb/U-72o57Zt>LO"!6T2)Mj>pl0O*&meOeu>uU$e-u\$*7_c1hC!;E,AR=7C1&QhJ?4<@5;0D24bSp.5DQ[[@3"^ %)gf*i3j03>PkO3EC[\A`m;A_\pBU7s"5c;=mQD2MXo4U)#<4-tfGUoIUi2;UjMm>Ks8SIYg`!>D*;%jtD\>b;Q`p32aTCi_?h6qZ %itGsQq3k[#l!'DNjXY+tTI\7cnhn2S]2Fahj_K>(I7k=nVL78Ua=tO0P%9.;Q`jB:VZm:W?bX"1\^r4Irphq]N1[srJ$lCM$L01Q %pDXJML$pfH0O'#m"++8[bV`TV?@dMeAO78&_A&B>^L1A!ed>`Yo.fA7?9`'jC]uKC?f30L>/?-3?DN_DXl*1`b$c5i9$\+,e)X+rXb$=;l,dVXJNXC`qS$HVhKrlne^LW$X>VaKL4Ki60E'uJ-\D#+j %Ak/W5I:miUCSqW"#p:NqGBG[.gJDAo=qia8RX^/HZm]H#\mIFNQ@7'WVk`o1V"a+Cq/#BF:.LfN(`1f91:1`C*Ek(mDq]:@W4OR@+RgM1q$etL^ %ACP@`kL,N+A/@DLiY^Co\4:`81mDK`(M88fUmrT(b#"78F+ue+_^Gpnp66`U06B3A.qL\,YM583TEX`#V*!F`%UB!a=]B(*]MR?sZWg^/7Me2-S6"5oI,Jbum^]YLJoknocep.F!37X(?0OD&b0@o$XPCHQ1juJY %oR*,)K%tHB4o^tO#*3iimh_GP(jfeT36lYlS#dk!P&!E@9+b-$7;#!(+;HpjG<6hPg:@".!$Htpd`qYi89%>]&P:#15K,T+EL[Cl %R^H1)A'i=`(9VN%VH21sm9g$EPui4!G86Jp4g"C^4!BT)3VbB!NH7CCJ>'>1i]%a#Oa6&sNTT2iMV %/+bQL$n\J=dZBD\U1Psq/&iaDhbpIJ=c`(;T5_*h%=GqYh?D3@O0>V&t9SE--LOt3t4Y*85<5<[,bagZt@/_(dU4^SaG(kqX,+_djEdi_*HR9c)2;BH.f28p5U75XKHMPJqM6,=asB&T)Xc44aTQ2MRM4[BT0YC&mKhgY@N*[>rWRpdW0ji;DX# %?69_/i4\]hEl.fX$tpjrfZ7`;&rSY'c?[D2)bG'0g;nGB'f+LaHKt:5X:QDQOId3\Q5+LCSr[3h]oS*B"fYEh9V[Kj*@5j.N8Z[r %[9ddSY8lSKdF8VO=%8,50rZ*oogOc'r<(MEXKaiX%XY,f-E^@Ao+UK\M/n('hOjIi6p!VHD+X5G4O+I`n6NMJS0,8\U(\ke<=/)B %MQBHa<=,N)7FicN.N*l#h"ETKN!tQ`q[r5n"Rd^rEdf8GMu6E78*>k%9a.i``roFjqD^^lhk0Ffpm`F1-2?kfSld_W-%W+#6bg.[ %=cjXmrL=tVqm5.?B]hl]V[!_mm4('TlOB"0M2sY:`VBhQ.pZd!(?-@:NE1QNETqLm.LWiZdm!bO3'TGoObiQAi;A*o"06q,Rp`>t %Xjt0JTBo_Zq`-n'&P:$\?BXahM9ZY$N8JtmZ'/kn$Cf3,%;[fQ@`M;m,a;Ylo>@:8oR=&1ST$Yu#,$9B!hkT.<%%T2D2dB(Y:$I2 %g<1P>8oV9Hgs(aFQ%4'I,e;gTF`(DFam#+Dj+*_Qakl[djiNd(6g&%BicOP`F-u"W?%o1Td[bn=[bh!'VQI>[g3K]DYhZhUjV#+> %F7#BD6XSchGJEg!G-&1+%1gsTr+#,+*PV.J)m0`1\+3m?A)'Fqi)te6;8H4.6/#23Wi5D=W),/(Sl;54$;'rpW48Gbk-2oM"jSG[e2i$G7f-<%(>):o8U"#rBth4n+]XcLT>Re %<]n@;83Hb.(ulK^^>8Oe`fMSgln3Ug%bMFBK,l.E*PA"d("Y/9EdC.h0q*s2G`*DY%AV`^D\Y"Df,>jX=GMbZRE$VH*@aDEb'9[k %AqOOe2Z8Sb?l^_S0a[(u\cS%V!jN6$((2$2iZ9RiB,%>";BcMa)4ci$nFD[7,'7/0_98sSU.+]G1U[8C9bXrt5.O;G=t?[V-(-km %<&lI];nSQ5W3&MVGp<4/mlsZ;,1a$F';;c$SLBA=7%\`K*R?+T6pRA%;']bF#j3i""?0Gbj`,kk#*/S7\o0=_4H[TXkNlC]SgORl %>gPm$R!BnI/`nuh,\EW=hsKs+-k\=3"Bi7-M'=\G7!=0<4AdA9Sk,#s-]5jd'1m667$3j^,3QlUBqe.WWru+]TSXjIY*(&C![ilD %\4SXiQ98%*SL;"KgpYmA-0I3&T;r+`(D1Aji:RV#!eSHmg*FoVH"I_!Eg7n1GbR`fX/)q`KLNq/>U<4M,$5L0>e%:K-*6hC-Aoac %'1j5_k0;\>R4".a-AoaO9!A[>1f5O<X(fSB%>)f(F@%&9:_C?I6H=tnLPk".Mb_?gNSOb5UC3"9!Gt"E %+j]Fd&,3E+GUh<.IMTLFj/?5WpfSd4\VV.f9AbM]!%MXPZX@]6aO(X\B;*k0_pS<]ASV[rH:=eJlWOaI1>qC'AIktoFKiBXZecoU %nUf`GDLoG_h+]9NgSp/GfX]`#:"Rh=Sa=h[q-pRW&Vb.TICmk/B3e[-*oEH>,?W@]IRgJpK(j`X=:t:(&TE(`a,7B^MS,0chWYBQ %1.6%k+fpN&3:Mko72!jI&U/:Wgb/_u[sa^oU\U1Voh^fF0il4U<90E=CVXh"&XMc8+g.b2Ig5FOo_D>rI[5Fa]"?Fhl,(,Sg]W:R %eu(P,knLlZ[++2M+Nq&,0a)EBNC=%GP;m"aWXI%GTj*A*CT0!eVThRj+E=;c*@9u)>>u2%n>8k6h0h04eZ8!'Nj-H-`$:EY %GE"offDQ%S8S\"sX?;]V90Un.+2se\X.V=DCgF?T8s!NKP%A#5E-03R8m"\rZBl"o2SS",W#04@!h>SoC1KIRZB?2#NNB$G(0I-d %26r54m]pW;\WUdr-;GUq(Q4Gmr10\W4eI9Wqo?H7cTq+RSW<`Lp$t/!*f3r7kjBJ!dGHN-U?1;X,ZKn(?SGa6U[p:N>^)[0O`_-^ %MdWB&I(bt>Ip+l@04u?pQO&!(YRLI>%QaZ0?X&a4nJ:^_3aH9e7nZ9`!KMlVpT"5_0Q!G(uYhc#nq4cc=0/[)M<)g)T3DD %_t")GUf_,G3(*oipfM$F3!0k4H[)Tp`?OU2Um&U_W_kOLZ&K.Q7^"l;\L0f[=fdM7C5]=5m_@:Q2Q&;.$5BBSdt*sBq/ %AhB[@dT,D;lCfg!UuJUuiCV!KG-6S(6bfI.bBl*?B61!1b.@Mc^J(e,VrFfZC>=,Q4$%8OkGBJG(;34shXcl3poMM(e[!Oa"''aOPF&\YHcWArAej6_g8:;u2`_V6"KRYo!I %Ko5K;PDYQ7''DQ&.SekEU#A-'UuG&o*mT&hn[!>s1_&W!-P^8*VnJUU7\q:a'o*Yp7P6=-<#g32a'j[H;K9]]P5j7i0,:CmI_A[X %ic$[]4`!2h.W0uU*_Rt853B(J.)N-=fEN\b`_U$B3.26'%GQo1MN_R4(DgF.:1>^YNgP^QgOAg#>^WM1oMZ%"D:,=BHS-b+o>$QI %oA5c&UuLl=YE=a$0,99"0**L[0r[.f.dK''4K1;Z'$XZdI&T+'KJ@LenYP7'lppf^BN&n'/J_P?:6MCJ?.hVXGHM.Q_\lQ_-X_4: %-SjSU-HYhQmcEC7ahbTPe+BB=]HhsTMo,%:Vr_=de\fuP:"R;[r%i`65e>f9qRFK_%)d=&H]HId+4tZ\T]bP&'0eM@s9f?dn7dR6/*pc<%7=Kt.QCq0MkuJa<\2m%Jcun6+G8Y@-5qcb549hspBQ83%u'k6l^;d8GJX %IL46sM+R[Ef,3=+WBYK+#3Pp'V#DX-]hOAIod@kt\Nf!$T**,!:Ap1/?tDL;IOm=]nYO72Yd;!=9U!G,\;)ij7e9D_+.5T,1St'\ %iM*cLFSt8qE3_rCs*,K=0=Cj0eROhH(1 %@fi9lNB)RRo>oj2dsV9a40/C70!q2,9^WSQZUAPP$?i&GIaS+l\9QXD8t?!j`_WRc.T@BBWB!.n?_M1_=b6])'\DEN?XJ65I?0LIJ]JO$]3a*j:J=eN8`o+'(YU6n)N6Tfj?*U:g %n[qh7Wme/3Q>'Y4G-4ppVV((.*5j`nlnm2('V6/!;FaBKQ\).,!\(U6hT2t$(?O]WXARV8%lu/>"j&SlArnBM;(_Y;dSNpIh!2i3 %+@rm[T>FE%;jT--pS`n6O?ZA$_5/Kp5uQXUW=HOsi#9GF:ZWP_L\XC]#=AZsD7[&O@sRfgrU$.D/t]`%aVX/:*l9)GOPG*K_LLkujO^f3&SW)n@jR#)#J4fD67,CPK,+G:IbpZ?@Ed^8=fo!'ILr7n %1cS[G"*Uot.p<]/k>p*PlM8pF77L$$8/?'T)A'UC_D"e%H+m75.&-;`h6KS^\WBHX(^W`";TYZ$ZVLnT_kIE\fEm^0Q,) %ZCAVG,GIJ@8tKtKA*)ob0L9<2d)I&41WS+i_4S\#F7;//nFB"`D')HuC@uPE[8RGBfLN#?/D)8;,s+&J:2fuh-_"^$%,jgUA.3Dc %?PtjM@8T\'lGRceL[IjqTkpdSpp[Z5RPs^cffrEJ7;>Gfr3=;N=o6\D^#6u__93p+a[T>!klRFISN2M8aUlE2BW8*=c++kK8f\e! %jQ*7iQ?hY?!d5=L>Pin,,q#%&eV2`V'"Ua,MeH8hZ=b_bUUOg*VVA.U)JiNZWm/\u1'`+;S&mg??c:`Jl(G43'V]6Kb6`da"^UY] %pMq'KZ:C7%C %lK.cs$Kg]S=6`4Wa6qJREc^I5Suc$49)lN-2m0;1iNR9kFkQ[?39%tV>t^KM)u/m#Qd^CL4o]n(coO_+Ime5hDJn=UY@rgEFimq6 %nZ6S,e;A9&53o1L8,%/%()M;ma.6)@E*lpV;l4nW*V:p)G0qt@'U;qoF,998@uem?XiPiWHouM5StEj\r*XKGiPTN,S$11-ibNTW %I?0;%kW!os68d/W-(H*PFHF/QnFY'kHNHMj[-rC"^D:'XMk67)f%/j/>4gkdXfYS:WQA;"V7&:! %M5q`<>o@^#/Ug),'1;r:[=)5W9N!Qg[crr>X>/f"^OChXo$=GiU6"cs*pKhB@H7a"><-q^#hZ, %@gQpa/Po#-XL1:n<=JicCGXA+9Xb+RZ%LV8Yj,FA6Q55`>D3FoVqm*M0\K_&UlCZ+popI"Y(e0NZ""f:F?Fps#9;,9GDm$ee+]l2 %:;6Jp`:M"#W1iplc##S*Wl``I/bH6E2)(F&8C?ku@EM'-4/%p$&PXUQ059!L&nj%o]@,#;$8S%9F'_DG8kSJem3jK'id#=f@nlNU %op*nEg>K%1Z<#^KMZij/!!H)c.ogq)h5'"Me!rL84&hrhn$^\*"uXH2-I&(HsDA*mkKcG5"%RFBdc]>ZXL%,n"Y8p%YQd7jbA7/%L&YDJ#>ST4iU5s5-lSE>q).i(,+Hcp %mVu[ERcnd7d&ZiM*tah,M>lHoMqRTll]`B/8,o674'(YN8,qdd>!C?K/I5Er;+1GG8r<_::=ID(%nlXJnmZL\0k?U<-,i6^&F:Zs %7fT]q'G!k27/um^*oX>F:\51G*AP@X4jcJr?.e,NVn9oMTRAMZjqn#dSeX.+.C\s\3kRT&5PuK/%0'<37J3\7*[2>==7D(G4^;P: %MdN*lNEAR"r_CS@[qZbQNp.#+3URA+%mIeKVE8rlL.Kke]'>P])A"%Sa/6J/#C[ul&W,04$Mk\^d'gD61YD?eq^qG) %OASF7`NC+$2VhL.`JdO3jqlgNdN3Bq[o@c"."MA`/eRQOs,tTH0/`D,V`UkB9qjesug,`M0>'bG] %-::bDUM9+Nqp/]Q[GKW`4ssbrDS4@*L;_jR\u:\jI_]m_B"=6mlJB!g)V3F;OH^7a:'XCs[A)FgXh\cO--8:J\f%QJ._)A`:CRSC %WXA0n6<[&R;cP0KVb3,C2TsC_6H#`NDblYq:dAq1-,.$YcbINd428,/&\n,382%Z?bPPHB#C([l9+C;V--ol5"@N[XbO_d0HTr#1 %73I6%+MKtd$hH!hMm"g9I(":UsFV?7gT<>X'T:l$@?Tf[AbOtHHN0X+nreAge`H6t=1u7PkRhQT\'Z@f %4_;4U.0eDp8ld[Ms0&o7A=iP,kdNRrftSSldH/LC$(.V7)-uGd-?u,>A9>Y7?amVl\kH-@PL5(cI8R'u-DLs=&Ke'SgW6I6%!F-3 %;s\Ak3*SX.U[tnqS1Q^MJ^,#b<9_%I*bPjdA!Gj$XL%"7W;5I%b]Rs=3!r4]+N5Cbn7NUc"^*%1r10?2 %.bX?7;em@&RPPQ@n?[S9@E1u0&%:nG.H1=B"b9D;(UGr![?lBeN^ea"cLNI]D9ls3qQ./[,i3=i]d'@&2rhfiEqAcs#QjK5`rdp5 %GXQQYe]*VIdS_1M'7siFW>_1ZQ?l6U]rEXq_8c]:_nA00&:@.O5'4P-6guf2ptR<3LMb$$C^[YQXRr0)gZg:"I#0TST;St?Mk8YF %&8&@YmPSZm92+Z975Yl>[7-P;Z=kW&VRB#O>Pcg3GA?I/,6'V>[=&K8]V"PtY[T>k,hZ[9,uV-B0sQhsfG8..JJ*00=M?/,/mTdMr3Om'jnAUI/mAJgXCLq$m?+4-q+o6nbAo0)qd9R"K %@NgYDI3*:`R`tS['eNaV">=HUR4Ur?MOiHF=XsUb$0TeR.Al?7.>d0jfZFd&Q#X[o*JATu;d6&c/Ro7-41/W95ikO`^66G[5Mom6 %X0Y`/G%.?Q4Jh]Z:7Om24!TBKOFcgl_,FR6R4U0!5/25([o1jX/cZDBEIKH(qr%-YE\R@$1mfn?cq7]f\s[Z'XM\i;&=L&W]ID*\cte7jO.5h'VGYWTDi)WVn9Wo7eQn %[8bsO&+tjn0-:b'TZ)t0H2K3bNb*=Uj(De4Qh\r[ca1l7,1Ys^&E7?=CdOrFXmYrVlUbm%p9I3IB1]Cr=fl'r99R901YP7_b=W[6."K_4l=`D-o:atMrZZO>m5c'\V5>)!MS\i]nq3BqhV*'2Bn1J1KP_-"s8"gX`^rK8#jmf\(PK[Tke+h^_G*6&pm*X68pU=coSnQ)8dY!nW+h5rIMV.6(b2@EIMOstZ,#$e %QGg'?=-Q1#)H8t!+[L;^$Zq/%6I-aDL@R(*c7pqJ]mL^$CQ66U4HGa2=#*L><4.W0:p"GJ5d=Kq\Fn0`AjnhVO-MTD^a.OoiWUc] %3"]h86$c@DRhWuedWaV<[RlU_/F.bYDNfreAN;d?nGrpg's)7a/L<1*b6IGBG'/[gY,-#URp*=QSWB.5@;6rs&T2B(Rp(p?$FR9t %VH0J)]1d!TRF<.,[MH?OKrd@[YBM!^uDY5:m'2@Bo-b.",4tVLC7$T#(8W^(2`=2(Apt_[;^iYR;hQ%kDlS %9BTUMpL+5t;nNVcTFWQS?&iVO95>Mpp"?7KTOE_#0$B^+g/BcQj`RrWrk06JR#rS'BA%Q`dI'WYq,=o7a];h[VqL]A1$`9a(<`)n %S=N`nhe/><^4m\1Pm-i\Ea+6IXTI4)?lEJPbLZMnEOjsi3QUo@laq@[+7&A&r@[Vm+rCbf,SYt6Y,G+)!)-67J2#.BT]#c[E[;QU %J_$+gN^s:]<8dl7`e>KqX4-1"oeq.fVA3l7+"eH;_e:VLTeHV$0H`[BK>QON@G#3tP)GUin^72!o(T29<^&Q>o2Pa@4hFsFqK'?Z %p@Wl\NMU#ZHB@WGTR2/9&(9P\2SM,])crZ2IW_;7=rTKSfp[$OQ?n%>VoAC2%[4`ke;o[eke;JQ4hogsIi]D!^%H*JpMj'EaHY81 %Qi0gfG2>H^^J<-?2)!Se],["`_Mg1M2I&-WG,rS$@3-?r?"9UfYk_Y?^^RgBVa+bs"Y`;fGe&nR'[dE&=&*918@)2J0EZc]-ZOt> %\%iG_QY,p,YA`UK2?3U-*BYFX7s(gpB0$G9&'lt6*/E\nAXMm@Gd)eTYkm9_-%ui"pHDOBE&MetF2-B(N(DBT^s*/9B9"o+(H3R@ %T7P&G<+slsj`7XO>+a3FqY9]NmY]$5=)@1Yi*F:O=)1^?>IP`4#X%p*r(g,u=+ruC20_RV%Fb:#< %7+e6^[eK@-mcVa4@$ep.,'Ok;O%;;QjMlhN)rt`FV^#8?dsHq3P*=L@B-"Op7!l5g8,*"Urcjf#2tlLcb4[f+08N*`.9O!DLa,%l %AL;L/+(Nlf%sVJg>,:AmgnKq#2\o!Fmm_edb91BHm#hqXWoD% %o$TGpI,U>Ma/n13eEY;+&F)jaO@Q!7^Tjguk]pgkDh`RR-E=bSp;qLXmDmhkm`A^@*@@8@\)55tp_N5gqWeI.?Tdin'f.JgHYXLI %GE!lZ5XqsP4?FGiYtiqmP7'm"nhcD%#3R;qq/\U+YkE/plJ:Ni,H%)5GR)33d!F7B/!shcIeP-m[k3QHYKa7Ss7.J.BU4"1SQ;_q %R7"I0g;*L3*G*.PKEZ#If\2A=]8eUeR%itm$B6P,p$Vdp0&2nn9:bt6Y8sjU]D?W#ca`(d^E4>3IEDd"SVN!HKH$CU%$6pL\0]Gq %_h<`imKY`I8>"^eT"ka**S1,inrFq:H-@Gj6co5V,qHlQn:f3Cd;=YDe77j:\m!B3#qaDpXO;(ZYA/nU.3N.bA %=9*J29Mc?$'I%ZeA5EkYj+C#ck+EpH@Y*#<0gS7pncVcJ_uphJaa/I%L7"VX>/>s2ijj]!Ouu+f=@rMql39ANSpQ;fj86s9Nb9`[ %K>5aTN[L%NK?+l(#nn-g<&SgQj9qNQ.B]l,NX.[O,pI=i\uW1n=s[#sE,M1s@mQD0lUN3*ad'B2QRT(i&S-d&8C:Ler\?o8Q91SC %1">8IlMWhhEK_mt$orN:tT)-_Kd=pCmTEQE`q&mMZR=Caq&%,Bum#lPV"%iBgloKG? %#!HAt'?m5R?q!==*)&mE#ofT?iVe@M+MKGo0A'SNR*JNHY$!qpHpj=Lb>2@o;Ymg#=E#B4Pk@N#jWuoF6OuG?XktJP/[tZA#hq@0 %^H_J;5;INeY/CJ"p:F"V>]fG\/p$D?E]dBeEPW-ZLf"',7ga,+ko#QIQC^8QB3;q594*%=nmZW\%tDOW.eKnReUlXt[FFnZ%c@C; %a.TuR,774>CVN5qn*H,VnO2Ta:eho]..3*Q.oDG_jh;%n)emU(Yio)2#>2FGgqnpZg4u4j_29Ss-CX.&9W\(7/=6DQ %HDXb'P2-5EOQ9N*m%tq>S8lYALbU,*QiIouCpe4-]*D_pmRe.$nLOS:PrS0&p4&WTc8Y=SDL:tbNZ69(ru1#IF(G&RI1U;DR(5D4 %8Y\-Qa(&b9Blo7;CZI15LAuCGG2'okZTeah<76Vo0/h%;u)2gp/EDB0&\YNY8\Tt^Q@LG\3I/&^#O(N:S::@Fjg5I"& %;mMBGf7r-kbfMcc>arEL44:I1BAJ$AdaRquh>9%Q]/8_k<-mD;9Qk=5HuhO7;hnOlDkSkq9&YhXPXprL1W/ %X*D@V0/0Gp_o`4qp[NudAp8-WaDI/:'=jDU-^*;.RG2kh4Vr?E7Wi"p@\E&QFgu?5NP.H&]ol(Df^$/"VWd=LpJ'<8&S_"G4Y:D+ %bj&/Jlg'VdQc&[ecOP8]4n%>-"at:8Dkj!#A,#?*V23n[K)GNo^:_h][;^rJbNe*PfAtqoqiG%[_I@J41-$<>e^3!mgB7(4do.rX %nqi(>A-K+FeIeM(&h>:,[arsu=8t&QUMT:I>f'/CdTS[V_X[g/5T1nZ:=P3D2Y@PXOB`[K/ %fHoF-mu@%S[3a2aDJnm7TR.b#aW'oT3p^02Ynhn'dT>Ta.44aP,-XFT(qaX;FkN;OYVU0*t/%B$11U8ecWCr)s"70J_CMp\%J+tjf'fNc8;r4AXqBHX%DOq.\J?!gU$p,l;4fpYp29^G\TVeX-8CJSC %1dL%pYh&a0D4%WT3D78SIHf>'`3c$,&Gk-8os\ApDo:)^L8k2b_pgWQl1MMoMRHrnP#)!mR/5Pkos\ApDo:)^L8hos;h#a`r[/V] %>$85hn!E/ia8_-R.6RA$[p_mV_pgmH@Z$9.hu)$[,$M %/XN4$/@`j!i(G),#LA57N=`t[O0r4"]8-/A(2(/l?>hm%"_3K&no[+E7L1^h.*ci^*$Kt_^G'oCml@fJ^'JtoDhQK-H4GuI_N&(e %@Y>Ra'Mbf=_)7gbb5,EhGEfbJ0_5E;M](/F(E.u>Bj=Cq4B3`VD*\d#\O6A[0[8L&;B,UarE`d8iQ!ps)he[4]mYnIa35"A7P*-h-2NUZNNd-GWHu#PM%(r5W %.Gl$maMVs48_N:^(IW-tZUF.jTEUIAdt86jUjPJhGRp+!+r:M/2eNd0..W9,"K5-MfM)g+uam[P*mWC %b!M`>@:gtGGIEnc&4E\)Pl.(A0ijTcp/r5^lrFmHiiJ)'Ft65;q[UW<"WO8b=L8E.P'Jl"XhrLD1)Cju6=EG@1ZRqXh9*T[IR_=! %]9S(695HC[p/4hXd43pE9nJXa4pu;QOi#6rfRrOdG:"h5:NWotrp9#YLZ0Iqp\%rKAQhm/D2JEuX)JS$=j*>qN*i>:%;;?Xb&Y!S %e;QV8/'G&%k1bfK,l,LU0ZI%?@ID[u#`6:7V!fbC..S`el,)9.@G\,K*A/*iNln"fCJ@n(6ubWC %nUR<*/:._uRLb=5VD$&(hKq:!W:^l/]=DYW4-5PGK:(umZ %'E#%+,*hC,^h.fp6H4=\nM^CtOoG.)9]YV"DW+s#M=a[RSc(tQnbH*+6%`]sl18A+gi>H-#0HeKdt=A#)C4n^4d1NbY9!<6X1Z8# %bri%H?3$[[1]o=!QS[]bAk4/1>G;m4jnrNXRR*AS;MHN8h:T./3tW-&::Ci.&r`1/NP6[So34$&bJ0so.R9Zl0d/>$J/OMDqB!n, %7p)A^fe&:%h7Mo>HTSWT!fu3/hK1@:>`,*/c52+)'Z)!NnD_8W-qH]$mRH7*G5(dggl9<0?+\u2:`MC3^V>,VJ2%-jU+'.l^+%]p/dC/48WK]D]#%^?5>nVkP72Q/50>NjloY8&s\_\W#V2](;CYqX0Bg;gOT_@2b9)fo14;.urn[GO@H40)QMEI1'dg>:]-1`!h69'1EI#A(R-3>dI,VCOj. %N@'m\IWjl;8EEoW_-5%7)ikk%.*;!j#&Vau5%3Hl%,.Gtf^"G+4,?<=>fgts#48h0,fc5hZkJ(:r["GcTUcpaA?*ir0JHBXoeBBW %cqY!AEdX9@>KlBEE:IHCD%.6n*FjD'aT8\RB2GQr#UQ4`\!g% %T=B.8]4]BhkELXPh`^N:4o++<^O,%*hjh3a0GYk)FKRJu5REZNB[%V!IM]u=Y\E].i-0#;YUcW-*Zq.tP2rhPTNaFE28Pa)O`]M7 %2NTIN.:sK4q--L?/6.Z)8tLL3E;YE]`rk0%0p1X8,PU?jI..sO#sWe`#98kb^Bb0'C@_"@$iTC*c&NltY1*Q0;>R8*nJA&PkrkdCRAS@oLa'YK`V#u5KB.shnL#`DF`.G`h:WqFFUN$,7]THJ" %N,\^6T%_G[AI?T!]Sn,fq0Kg)qS(NdB&2pD22`bj"[jce&lYR%UcthJoGkJfHVT]\ZneEq/M+(J3,$oW)8G.NlF9`-g[b?AI5*ttn+cSZ!lA5bcH@"-D.t^6;JCgQ+nR0"Cr,9#2b%?O'A:(5 %j#_g9=6neHG`(TB?MHT;HDAfqqu5.@)l@Eil282*nlpro[:77Un/u^(Krue7:LE8>VG=]DM(6WP=B$>ob0>_RAl/`B4FS'2HDOrH %JSUsQkIk33^NaL-mJQ^mA$7PW``cTL!:(s9_;\U48i5;pgbWK.#>59K$_/AmU^Atd"Q(!H&*DJZ4aNb"o^jHSNdTWuWAroMgcEO7 %#qST98_G?!I#uCWATY7G6loQ`YV;5HpfV_ccL?hSZ8Fag'.=7B9^#.L?/I_uj\daY^7B3*9%='YBIn"BAo-NjYJ2%Br5SP.]-I": %%71OPX[7Hr[l$q.ee]:M_W@(Df[W*:7+P4Znr#O(TmY?-(dSKEFE[H\4_\Y`M<:WXKto*)_S+45L!*Tmok#T(i.^k*l.43o:-']LDm.3a1]@53a,qcnnRI38kJ+]`mfGfkd4,CXN8DV4A*Q2q_98U]C*AkI]R';57f,f*]=J]&+ODgjd$+K^#82'8AM_3gnPeu:o %T7mgHmY?%:Z0a,*NQqcST=).?53`(OHSE=PemJ./?hWDbp)s%Defe9TFV5;hpg\EZ>0KNrIBBnVg+I1ora(kCb_:dg4J;9i,Tl7? %\ErNMCTj@KK9nDeoGtGXDa*Yp7=XL-\a$0IJfn8$r@<1#?)NW"!I&3.sXTr"'ao[X]K+\ %XN9F,+\*ducY-`6O)lVUa8*cHj-DG`4f`h#KLi6dChY?#2kkg83lo;qNcRLDJ?Iq"B:MVX"$;N)=S)hC1Iu)/Sgm$S\&V]"#`kio %>%@g@0E[hh-=fUEp8qNCrqp'eX_qug>iZ9B?j;I`a,%s4!+s#*`ehp4!+nLQOqX6L!R/p`4r5u,@OfPlFctpnG)d?fmTsdbaTEbJ %@&.,Va<$^p\hboS7R&\9*X>B%rB2i>ZNYr>aTEbJ?pN3Rl[b0<0XL.JS-MN(^a*'i#DOjhUPpR3Lg;'Q15q_YoVKl2F`#MY5iBJ4 %)-e`UbW3C^&b,Q_8oe_RGRZfh7d.A,UajL##^F]0-(*%_f-des+lMn%)^eX!i#*?re^n[O)q/oL\^tk,Sq^) %ikIIp[JP02Mft9Ll$#.Mb!,MC[M^ksEh28,`D(B`%OQ4ZbBj9g>E`=TQV-`0F.]!s#WZ!:qRcKc1)XB%f,#8%4a>8(MuF2nC44:3 %&cs@#(]E1heKm4>qR`kC^!fdIZjhS4NJmdR00dj1/2m@:c$m]Z5:66=*W;0a1/&tlh)7m$)!UKIq]0k=K';ZBO#801hef+rcb<7\ %>t=_2PG`7?3ol\]HQGKZIE<847^bft1phj/NqLL=5YOET:+koG %!eGe$6fWuuj$?-hi.u]tckA*4ZK2\0gC?IFZN7u&2A5!#"1ZTT4(&>"2PC^MmXV"!km`RgEX*$#>o=\RUela4X1W4O=SW)1Q.1IEuOI%eKLU?f:-(LHB4H%k %I9o9so`4s:oJD\6)MohtoSl?a*67oH?d^Me)Fo9e)bl0"01SC)lBoDui_q)9k2_=rQ)%R..)%SF4Pcq6Ph%0pr0VSA?o:P60 %g/L=?1`!OmF9fL#)1^Xq9CmN"^!XR'/qsk[->`+BTLU/1QT+26FkFBDi["fa6XQCr<94T]]]re'<#K=2h[0-WDncORp7,T;/YDb* %KiU@G/%t80dfo@ZCZfbedBGot%HuHT3ms?$%^G2#@\Lt\G\T?[^K/XB$Cn`9pRQs2QpoFB-GIYh-bVgt;i^]"4P2OeKt#P)Jei*0 %iX2lQ,Gp[g`>)Q*7?^eHi^sihP92-SoNetO4L^`h,^+IP,d(t(MG[\7M(A4OM'fEn`0F&eAs?@jeQVh9>6K5j<3:lKq(ia3X5%I[ %jTq".'?h=>SNlm#R$M0AVYN/e/Udd6[=m+JK-F7/QGnPfB\5(['V@6o=DX%\%f0*4DSlN/M5F^>reRA!/b$a7%9n$<7ASX`]qTG_ %(43f^,MbZAYf5J&jl#i/2f,bnCVfEeCVpqbZOKs>X:8D#rE;7%>'O)Z)4^gX(mu*57d^8uD`s"V75s7TP)&M)=q[<[@KRRFia:&D`#0ul3+YtO4d^.b*bfC2"@"op/ %k:=T*bb3==&jJ.(!gj"7?`\#[O_`3S]MTqfC%c$%*u.-@ONZnuR1& %3\l'&mr"0H]hQ&\$qS/BY.N,)rgmJY\GE_h7T[n7ZB;\tClWKJ&=c-/R;mYCWP>7k0ZKXiR6^kt5i3F+ %d7S6Cqa^0aQV't"+,7+!4L1S*aW*erq,tYs+h2G[p2DDZG]VM6L:R<[9U_*mcdI/c\<%RBI[8j2a+_a1!+ncB-o-GGflj6pq>+69 %*-bdS99OoJ/MV^?,h"M(Gl0+F6,^^_@/%!$?0T\V&E.7nEj2;b`m;Mc_?#[_(dCZVr>_r)7-aWB/B6"&\h_X[''!X#'&!db98oM) %k4Qt[>%7C\HmK"W>(ujm$\b'D#dd&rTg^-2d!MBdB[M/B4@0F*WPJsGGji[AJ%+g2T]RnIj]PK?oQPYqBsTn\KIKLp>snY_/8G;2 %#5Yr9MoA,7\(U4pG;LZC]?PdpG@bU_GFSPkBj/@FpVg,Gj>XOfnM,[Qa@tWMqM0GL]U5$Kmp50=KP-!j"7d"?cN<]1Sqt %aX=IFj_)]D][1q\%fpSd7XE[:!!I\""]]5Fg,p#M5/8-AfT**)U4FU@5^coBGTr?KFDLA4GPME6Lbj3 %lja6tKq;3U3U&q8Db=I;Tb.,*I_tTR#RY.ABAmN/6QZ/Ze]hM(0Ohk*6u2X2`Eu.k-0Lm.IpoE1"h#,ki\)3!:u_4"[DLbK?2>Y4 %8YdHR@QK"%$tg.BT8R8,>MdR"i\/g)Bn',UQBaMn&Mi;ub`reAL(K0U\1HDuQ`Fl1n^*\XeXD3:7GudnA">+BOScFfRrZo/D><3,h%o2aEEf;phu!BO7]`)'BmE%k80sK\g0;% %d4Jc#2XS=4PM.:"FDL$&U=H1fa&9e9=aQOX@DO6p*hs,:qFDo;l!m.iU6$t)'K&`9ag%(LMYhF>kmF9!i)f:4+ZlS!YG!VTqG=^=<_Q[QRFXX'gTp'Jj#!:J(SRIPY:!b4lPKcNn-a0.#"Y.GT?2CU@M;MBe:EV^K'4@Db@/r#to6f6pK&CD9W5 %F,*-h4Ms*mBK7:]i#07+6bLb6(H+[j1U@K#!"nSTLKsB%tQ]7'gQ$.HngC3V>t@=h2LsI%cto7NU.5l2R3m" %A'ps'rW<+,oYn2WiHQ?30;a6Is#$gr=DJn(mJj"tr2"0+6WB&uU)Hp(NKS^gjTSI<*.-5'Wo5^4rZS9G4Im;gKmr+I=^aZj-.]O( %:\Q*/lNMW,k_a(R#"A3bg)d7%[C_$'grg]2HFUhl$nAj>d'^Ve_P@X^,M(BGk8XLf^'qZ8_SjZ%[.ZE_/pmRiL"0\Rs0XBq[IJJFk-H(SOQ/;+TYW$tlAj/[-$<:8]bZ3l3W %;@tr<=9ZP<`QN+Z_I*m$YY2:<@'<:^M:>1H9[@*Rq72%,n(jLRH'sCbGht3180<#?F@JZWOZk=$cq5`fl-ci$\9#\BSjk6jNJos$ %ibPoa7$n1PNE2(=[!ckfE`FGR$/Wan6Ar]W1Ad3o23]B>(K04+qPKP*1ptsRhU:/,AeW]fc1;1F-)067CCe2Dt&?XP+(7V2UR[nd@:;X%b:,lK62s=e5AM[f-2Cgo[F5>_k^%0jq4gXI3YQNSh>7]>88PJo*NOg'(L=8jJH-u$lh[g) %jcdi14g@%hT0J?B.6CRcmRfWEkKMH7p#`a!ROR`hU1W[5AP#rZV9e`%BBk'^Fm'.L.Th_`CSno-Ma=RlC`A!8`bsQcff&WZ'W88g+Z@@Fh3H3U%D--1ca`T@Cr.3^!UT$2 %K4dZlf1_mMP1d0MGAJD",[*ga3]B+c-VUIO"0Q=0Ve-9!/K%.D;(Oq1 %,I:27YsdfSghKoHm`.s!0g"Z7XWP"u^BiX$IGDDsBrL\./X;p/_qaS@F"($Pao4S](k(mPqTs"sb9MOF&(Vn+gh\!Dcts4_%HYJ* %iR<<@3+j:.:Cf3$Ok`"ZHA]=dF'@NUmG9:M=fj"Vs'.J>C%0E0:%W*>C,6gMjQPSDM_5t?-Z1C^3apqq4n,6<(W:lkf=7KWLS:ln)" %$R;>kG7D8ti/-C9a'E&T3D"PPV7s[q$[Aj=2NpCiadu%GfM%9\V7s\>39,Go\2Qh:j5>n:(E:0@>'S1:K%_-*8q#N!lah%ZZVo@X %$V(elnXt)Zabpd^i]@[hLYan#Nj(p+9=pKnFCmW79F#CS>Z?>cFp!eoEXSLhSFb[8-Pd?&6_F5s#0D %aB`.*0]CBHS0h]k&E)..Xhr(P^FmN?ZFs=/*'0;4"Q,T=f@3?($d-`56UtF\Tq>#%R]b$YGk:b8UHM&RI=1pOZ0:DZFL%(/^W\'E %1sVPp$Dg>h8)p[TP8'#*;HH?jfMDLAD.acFheS[.$QE&gP8Zo[l^u.O-#obf,o0\JYZFh,VJkW>l[,DD %r;t3%BW\>a&N]:H/gLHu$Cf0]SG8#F0=28iH9T+!d0/9T1:hka`[1MKK:ESRp"4C'KCS#EX=1gYLj`)bBFeji'@R0iZTPRR:gncK %bs\s`e3;RR^]!qrc\2$Y3EAc?:m]Nm.*09M2F<8gK/-VA4cN:4qk-X]&hh*&cb2)K*d5M4m>VKAk:,;4*lTAG6(1;VPV6EWRL,NT %89Vt;Zf@f>d,s\2!<`]QnN"4mB0]"N@mT:'^j/Cu9JeekVTX]9S`^%:3U(T33q*&&bSLXUk7RF`@mK4&]Gm6uMb?juC'%[NEM2nc %?b+"aM*i=GZAamWL]O(0!U&,L6i8C#:#C#L'1=\@24KH*_EG9eJm4"!.1Jb"BQTgNS;5CJG][8=&Ui)$c+\pSZ>kh:IZjmU:X8Ch %.UBR]3m;(?$]-s?3nZgDK*P9l,f"/lTsb`)W-P2h[bgfs7a9[)ABKVN`JYc\_rc!34;g%UkFf0MU#nd+U.*=J1%VDN,aE+=gTbdQ %p4gOS;jfPE]U=g02TA90 %G*QI-?gJ16BsfP7nO<;u$)Gun:8^*>s"0)Rg!*MHQ\72f*'Cr7^^f/lCD`rk2.:LTGP %PKC:Bl?'^dJ!cKA(IR/&j/`,4g`8>Sg`WX$\Fbn-,TMi24&cF_5MOqDKWZfDkiU=!nVQEhlr]RB6(ms#u %O\Cs4p,>H*bJZTdKW\kJ=XNiu)=3Ehc8&sY-^j6Yc_"W%,Or0,U%^a1!Q*Lk-'EK2^XRAr0&gYtdT:jk.2UhV-m4/14]([V5e6J? %EOA'r]f^TO<.$8o])/B!5fM=VL%Ga1*%uUGe:0"#a4CB(Gcuk8(KUtY0^aNrS&D[!Tr2Js&\2,=+P19"5\4D?J^TBlhaUp*XqiF\ %AHqlo`Rb0F]@$aAm_lIt\S&!'>G/Qebj*2U\+26G+RdYj`XTV>"aL>:Z3tuVT0^<743([b8pi3epdum9*_!M&8[@.S`R4gqVfm,o %)-RS3jS=4#j8qX.kW&hqEqSGZ3TWPhqh)tp`WAA_(.9dsINB)&Ra6D\*a4Of5-s+J?SW&!:Okfe/dA_->MfC%mTlp=O)Ih0 %\*fu3?G7h$98dN29-\fpTguq,$at&iEDpsDOko=b^(Ya8[1;&NVc]/Ce\B!_)L]?U_d,9W$+5u[0CHDWhm-Ot.tuO@qD--#V'HI] %k0"n!HP1&XG!S,?7moi9GLt7c,Q:p'[=$%$S/rBejs)m?i:4'tKi*pDn:$e%OGcRt!#JCh'bZ1Y?u;0gL5^Ysf,0*eT$'W*iXPOZ %qdnmOrH8aqrW5)I+rV>MhN^hll[7)ZNkWSjhe/?H>5m)Vh;],"1.)#\![ae]O:g"a%!IU;pRUDG?bcb=6$j1SIM5XZ7jK6&i-q)b %Qi\O>8P=K%:C-+8,ld0o"2ObDSJE(D8]Y"2itcVqBMB`l2C,1U<7ca#Ln=W\cD,CK"`=jCOU4K/e7ecnTX1?1#7odkOl2U._q$R0&d#j38.K)r,>"Al-43J0^XPhVYlpRfKg)?k6 %D[JMD3+5+=M(UW.'.4=_c,I][=^'_SOfS2:Is[d/@%t9YmbpTY@-cos%NMMuraH#Y.DQZ5J/,6ldj`XVEUbL+N>ZkiZi:;b;Yi5G(iA`"f)a7blJRdfGgNito %"eUdI,HKn5gAi37&K;3t2$5g#+uW\8",G?7_soarVm9]nMfgY1I4@maV%^MEo4m %^*`\-Ru?ipVs7;Wk:Viq4IL:.#_9o,8]QI_["'A6$%R`AkAjSi2BHH:J4lAYq8\u&+Xf4mk5R_CU0%I>aj2`rjTH1r8U_H'@dF4_ %Aj8qO72#ZRdXuoM^bA!ra=2hD""leG;JJLXQ5DhZ$??9q)_bhr%+5A %@-+MsqcVkHZLZT"r@I/[*);qr]QJB^l[Q#[G6f@Ih7jE0IiEG.Tn_>nITGNa>UDZcVM8?:T4Ol]=Es/uIMUKf!KNJ5r<3_4F2lT? %j(H2@$$*DkpfSAj+NWBsp9Qm1:Hh4W]RCV-Vh5s@0n,E5&&Vb-lg&1DAjuNRE..[9Qq[j,[)D`B::dDAc616Td_464cJ\Fsl+EGa %I&Jsp?e)'NlItqJ];]Aj)[*t]6++oF8E#!rYRr=*_I`C1_uV;W$JKtt.b]F&5'm&@C[_gIiVhiY[.5>[hts_UrVUZ-JRLs6(lD'= %-cGE_8Kn>j:f1cG+\AR+MNm$7Ap5]R@P8ZTG,MO."N_?hd/L@H&h3PQ_C8F/^WIM0,%[XX5*ji,KN?b3Yrh;R)RWD89:j504%Z5A %nJ*K0HfP%/4!7<+P:=4Q\bOi:P";"3I>]=n#C1cj=t"ru:k=VS_FgM6mX7!]ErL@5V23sl6le!;AJYVN/M0uYXb;eOj,)S0I"#t$ %@\5kB]pD!Bo+"%,9M<^NLsS*N#P[Q:%oP'YrDg5q(9coYmEGXIEjj=GgjMn3\o#0dUK#$6f`A'K6I3ne>AJXl %D:09Ko)ck#aR@]/B;8.405Q_=4MqcEq=6N_qIZ'*hN&OZ$.S^!BfD1/6]9&jGLW< %,#kdkj9kO;RHL)HYg>PpT\aK&b8!U/7Bh$tMR=@`%S!?%i(5[_(nDk$kF@!Y#Y(]ti'Ff,'9#Zu^r%(Y%ua877Fu`R\\RDCi_!!7 %E.QCcYit:2`X>86^nU/NkZhM;r`gNS(nC_dmVL(@"JaR"77>r?jo*1CJC,gMkidKS"f#"4f\4S$Ohp7f=S1j+-Bup&$:\[U0@@W" %s,)7KA[;[=Kp+;`P2jj-:XR)j)iJU8PBjt-'NfHeT:Z@I:2s#TIP]odTVkS.-@ %\<8kgkS.-@8`g5P;de"X(?5Ll;ddurF2\GTVnf%mCJ-963X$9>hI#p"lhAZ\H2Cq.akkuV*u.M%-[Q)>8TZcq %*`EGqMIgQtF1#1&ffSieVkcoRQs,Xm?i+^h:!52:#GQI4h:.&N4rm@La40tS9ajHL[Jm#2XB;cPOrV#\Qbh/a^`oF*[A(n9Y\3FK %.@Y:F"HTNnmja9?i<*-hGL)g+dFgV=:+i6n41HeHB2H.LQpCB5U$7tEF(XmhF'iZXI=V:+\LN;u"j&AXRRD[kFdoHWl&og$8NE.- %KN9n")YEN*Htjo_MelsY*g(P,r8&fi=fX7,e3a#6PFJh_["Ah[?NZ[&m*,WD.QSjMfDm&k`&8-PMfk@!:N5W*Bfc9JY-FO1^P4h"?;5^kifi6$0^:_5t;Gt %8JlO.giRXj,r&-=P?8G-<[S\(4d[N]n15d2d=[e6ka[F.JaK_8OtTg9nJ-HU!JSEcm3j<'$g*c %EPrESKMH3YTh4aX,g884?93Bd9*4aD#Wd8c91"dZkie.3'(ih#*gQqT=.1t&Ca-2I=+gM&1N4:.&m;WWS]H2FRd@8#%pD;_\RFa, %4'3"_90e(W#$AGA/HP`&&RjpVrE%^8.r0'nTp:L`j@YTk6W]g\EeNYZN&%763C5Ur5as!OB/40pM`O?fInemA_:b`,\L+nPL^*DX %c7"!fdDud4P"b-@AnV195#='9#>_0"2ZV0O;Vs1%m_:a@KX$1:C&=('_LrGED&F0a&eQID[ocVX*.=1ch>=H3)skO(3rAH5(0ap$ %!B+VI^kHmA.o$pSR*_84EEH#teBR1df%-$]prU`?Q/n@>3a^.KcLR8V9bs)S*m.S(bs*G-$2&Z&&LRtt'->#%;eIksTSJkPIVW;+ %/XC;ajp.m]sI`?$*( %L(,fCe5?oB"-QHT=kRl#KbRRoVIU(UP>rF %ddXJL`2KA)e`bp`[.qYO+J0ViJ&6BE+Ep-B^r27S6!G+s#=^Mp"\a9J*Z3!"K>&V9*Z.K"lFWf84YW$$#-3Zu1`Q$G(S#ns)9+__ %"l,]7T*mB7F#j0@(rs0\&k0In>i8[E^D#=@Y,]qIq:qkgk9>@b_T02\8jL&L>f#5l4::H?g(jdp#90!2j6<_+1?5OQg!ZdSY#5>mh.e>AM[>V %o3J)g]-Ne$hrX$V7&[?,IfhGOYuXuccllTaa'2u+6\f?G*,gNGrXC0A,'I(uHb(`]G>i5;.X0/pL8D@7Oc<*GN/$NI6uQW10?RT< %9JPO\SsC)O_J*N0i#2':eT_Y9E9s[@CId:k#cr,o0>?\?)RM.A,8Fsga+7c]+@U;[>%^52Uq,p-AqQ'cK@b'RK@TbdkieJ7f_UgQ&`NN&hV&kp&?APRT %C*f]_<4`35O,fj&BH^`TgV[%&b!Mn%jcNGM#!M9X]'JS^h**oAD@\qoHnr-.8&cXU*_c&oBql3J$ejMaKW6bBKW4#1?7pT>fW8nj%aYRe?EE@i %lIat@?a4Ck5HXmb%;^^r!2lQOQc6)n4*1o(9CnK[H"FV"$Q7.(CDl$(V81D]t(j4c89iul#H&j %Y&i@O8PZ`7Gser:8G8q402F3KLL? %Lp52Y*rPHN+B?3SFD3+PD+jA"jj(bV+)3"k*lOjqfG[=@\OY/V+-],S1rd.=u5f,e[tefa+AkP0>Sh`l-:6j.*=]NZUk;m4[AlTq,&>*'g^U#lA)b\Z.5q7(VYj1URgM2Tj#6$d]Y37_:>\Y=h)Ym,0:PYTg5F;;k*o" %MPp?n/Q-]aTHKZ^.oO/#BhW<.q8jp]r'\]$70aGK;tucu>Z4PWQ;$0rW@J=Di[[o#5/0(3!_K1YZ9Xi;.oO%YaBUL>=/'e*f*,>P-2MA2*(2hib12@^&BPgl*Q;KN\*+INkpoKD)&6V6U:E.:tB#b[a4MA-]j,dL,64b(&Ge7FNk>u#2N2Js!4 %^+uO(^U:EYL^MqeKO-Fur&jf_SdN;r4o?(j&M0[g_6R3-X"-Otd3H_jD;<'uWIm?003A::83.eq-O0pCl59JjjbArcaI627T[c@: %*W+q'`E8@WVBo-EGiT4=ai>N+4EAC`*JL,,2SnBub/(b5K4+5j(%B1E6@7D/gPnVhDKEsbd50DPij=Sg$,G$Abih>n5m2g'32;7U %X9:60K*glQoXR3kHSC"VIjPgHm"P>^E>AHBdNVkK5$#L\>qgf"8*=N&;qB4LS.SiZ[3`5nRLrW/8MQ?RWK0X1$=..0H%dW?k.3R. %]J=rV]d'nQ\O\e*$m'MHMaN9[Grd1%T9HuI?U!?89s`ATC\"]ViOOAeU)=:)Sm_XuTI\]TVVhSUHp7Yg\;s]X\-(aS%p!)+7V+_#CgbM@n]/E!8kuPWiAD%9I\EKg %s/5Js'qRKjR#l/s,V%g1S/-2QLa7GnRU>R3DsPf?2O62Q5?"(h0d":.@o!eWm8)p>Juue,%kfZ5@ZMrejH.OU1o%H"%n:#k?1JmF %VgCtLh8'fnlB3lkY]/FY;&6'D*0Z#$&%,Pc=69KXO.S*h>:Q%&48g[eA=g2Q&Xpt>9'4q_Xt&,pF]3&qc7K:,42`#2<\b1ma]-qU %L@b/>j<*QC[DMl2Et-I(_1\@Ch<)f@D*[ei6'&F$!d%Km,(IJ,:Z1K8gOXVh:(."HjXoZn(;KGkBJ!%K>,Bh$_Jb?,R%Z9/2V1'r %AopWT)e^BY*-nt%h<-*\&^_9Sr!ZR&K:Zo-EUK`s2.]m+UN`O8FT37:e=O+ZNOR@nH2>.,rq3W&5kbNrk %!bF$SDg"fpMe<18_@$VdJQhD!@5X)@"o)-((-7%;TO@JQ'>I9C?T322.IcYUn[K!-P0<3h(1c>Je@RH(>*9kCCYA#SBPLF;kkTjk %it0?CmeZDD9LE)[Wg>C!FX/Rqo@WUhqo,:lf0d+7#290]0`p1IeIUkU4897F"jnNuY4Oq&RCjRDa-bq;h.L+l/m5Y\(?h[[GRP0O %:;.rJAri4=+Xc.Z-`$JsaQp4gF\29hfYS\F0(M%Tf2&]DF&C$E-?oF[26jMBpH+LDC<7aJ3cut%T&VIZK@XIR@A;?3%+^#-lOcGK %&fYRK@d6a-B3=`LrJ=,E_9Q%WmOp!]7rMtlljcla6'@K:ks=1%@(;I*MU0>e&nkjmjJ.d(-.'e$=#)(5S]Amirla>dK!N[3ANBLL %4D'mE.ncMr&QWB%@qBq3hje;E_oeuD^OG`U=aUlMZrYb-B4?\Sb5/"t\\e33H)rRT>5O[iSFb=p4./q9,`NOJ6OI"TkXJb%(l99g %N"g]+-aK!@)%o]g"GN+p$8#m-b#Kid)n,LE'EHTg<'bJ[Ri5+9nLF.JsB4N:#]7Nqm4&bb^V3e0i4TgMUkp(VO"]XLP@5D4\f%LYH8aKa6q=Q,$:mr_"ICeJOUES<@Z$7V;b,S&/r0u %cX`_QKqq[%#MuR_G!>%Va6k53>(rbOcl6,lV!q %XchSQ?S8(lBmWL`T%cg96Q?a6OQ`)`=K@hPDgsYEQn5'Dm#1]b/&eNNEg#8aoD&n\.1;1ocH9H!X.PMP\!Fd/1AGElc'LIj[9r %faK)@5iL7Icq,V5Sd+aWn[ErRuaKnDk1FH-p7<=H[t'Ck@eo %KscmSsCR`Hbm6USH_cI-]_phiLUX-4F'=^$*BF?n`8f] %lhXhb=1l+UT8dkdUPlF?AnRn.bQpA'4Q:/kHB,8gaWo)#;6gEeB;=g]6n1"[g\UVH$^mjYJb5D^FrkT)$cM`+&$!SiIn)fl&tAd^D]B5o)ojl@4>#c]DT]2oYYj'*Bso74?mGtNIjU*G %^dnqPqSiYb?mI_BIU5Eg?mGu9fYbnoJWUp+F1Tj/I#W%<:Z,6s@!@^1b'p\J_)`ff<^50-\g@YufOu[3*Y0c-gf.[\^7+r`"kRa<`fMi5A %(QMD$KS0gYd4MF\f[n*)jG:'.VU-J7^?Dpg=rru$"H>nJULhEmS+LTY.tg)hp4&#gfag)o^4PgR;fOnM:,+GJZ]*4.q65>./bBRdC-UQogIP-Rq+.[.@eYL<>DQ;r6F_OFkO_F.CnXVSi91(o'AF^Ns+7S2&dS/l5$Q+c %>>:;5N2/"lZA";/cBks$kN)UG;u[i=:14["s$2XqW\RC?*H`ec>S!df4`.>N9N#3hCD!N2X?NcZ(>"6, %*$N&j)0HaBNmKMI'EaB4bRl$F/jsO[CFr,>g'Z+;_AcX2g'ZD7kSk20[XtoQK*0Gr[XrRROt9(>"eQc+k#>Pa3C<[Mak.]ZS0J0* %QIu1EcrsGWIA/\Z#&ul5aSoRVNY&@(Z2MM7`?N%jL%Yb8EeJ`Wb2".eFXoLC.*;+^\`c%?nG'rq#7K;LB6N?p\!Xu1/Wui^>m7M3 %_5&'E9kkEn+&"_nDVBJC3C83*M9$[1CX+-4*$K7L2dMG?P""[h;N;<%>!BMj@#iUM<>`Z@,K,fHDelTH*$J@d7ZoI>*2/rFN/+6< %k6NYW:CJc`@Wk^19>f$e6AcmbeFIC3DQa[XMmeREd29+j0T#r>L3\>Or-Fok7f59q:`*TIX'FSCp22#IJ1A%P# %J0'RO0HsuA!.#c<0P(n"#118`cul/b$t+Lfo@qk:1)m(S"j?h/CV;ll[*&?EJfY7,g\?%h3aiLW+cpR"r^BtZTjY;iW#I3Rh$g^_ %oA-knMGB(`1dfN8;QiIKTq."Ci/Q=e'.K0$dt9WGp[^P6$=7Z9-CtQN/-5CT1<'Z-/-.G!/'\K.B+cu6$=;^CO73K_r6g=Ve@8V2 %Y%oRH(81-0cbol9^BCU'=Jh^:TN^3]!M-.ds"XJZL=ans[&=]AVOsOGVuc.h2-^lM:AbV;>S,Sa!m]'DItP0b8nUN%0a'SQ"'Ob$ %9tjou.lVs@X#&i,hX1@q?V6e/o!h7Rn,WS[3$QHudbjphaPh!9h6TEiL`Id#b8dWuSgQntY?I,*4lHE;\EH3;ck@Ji"AYtQ7o+BF %'@>%_4m/PAk-e]On,8VUk-e\$CJ,bmW.3/2?+,K'=50.klMF=4s4&/LoC#aZ][fCCnR8_+H2E$6csH#6M^Q5;4YpY>n#^/C\f45: %b!rSshA]fhY%NSb5Fc86(@f:68p7I?K*K)\,StssSfP?1GOECjIf:"]:@qI#%cPC5\GA(n\Ec?>(;K@P\3?=NNM6@;)J7_(kVt_" %UfKt.M:C^$%HOGp42"\!:.q[QFM4lWj0/Gnp.*diE\Ck7D:gQJ?4l5:[U!7C#pecGf&1"/HELWIh]qC=^IW/d4jPMST-3C7VdB-k %dec\cqb,@qO/08Vqd1K1XfQ=*dequ%5:!q+,"T%72*F)Tq31G/!1a?G3VclPD*=Pg;0qX<#i7H3r+iGbMJMY'N:.D:qP[fX$j=-KmQqdHdBCA;/"6:ip %*$3GGrr^$r#J+6-;Z0A&ZioiOM9C$Efg9&c[=&pY@%X&NH/;>p:Fn%DX&s3BCG!3FYH'7ZN&FuCnaOH)i:-2;r:)N`G_AO_dL&2t %VI+Kl&LkH8't%"!Os;n\h5X*u^-'gO^QEf\QUr'=OGDW>/*n2_(15pO+5Tn>5UJVb0BhsFSf/-pYEe_IrVPBP^%':Zm%Do_'+4]4 %a4tj)IQm(,5hBJ/?Tn$[cm*Ea80pH)\ng\5XgPMi6>u;`19H_Uas&4pSQbffFb[FiQ,B:s/oR@K5oQJ4"H0D:lKiHX.!a%+M)BWLYBa2G'Yr?^;i[`]1a)(::-_T)2$MXM^q %-p?psl,I@ePML4[3]PMoq.R>2f#rGU.H>hXkan7g6N<+[oA47&8\=I,kTUGV"P_Rl1!VakPG(QB1nfb#'CPn$\!5u(\OokjS_^LL %g#("i\%l%E;s1g>=oEo*('M:>L1ar+8k:sRbN]Rt.!af%&=H"G%CjFE?(=Q)osA_KE-q!KTsHAEnK.P:M6`GsDR9AqK\b[TnYWQE %HdTIRF8jNTdk,8mn$bI3J@n$1AF9!+P`^Fj1+o`Q?`[fCk5H4&4t;Yai!Bj^j91C1i.N8:4m.(*ljA)-GDDF5+@QK' %.&qumkk*4Nu&?*tR7u.J2hldm$$2:M?S(:Ognah88n\N8GjhFbg`sd3I?gGsn_D&b_@h8E!7Snh]HU %E3>7_VQbhToiZmImFL3To9Cun(VcU&b\ai)TnE4GWKp[Q\+&<9X@aFXt`dn6C&s2W@"Qs0d,q, %fM`Cs-b^ggNX&fK%WR(98adZOV(QAXWHbgGAu**MYmU%n':^0)'dl*\!rU[.3@5487YSUn^83[a)`:Q+[f8&AhpS.+AN'^/@IBdo %99dK5<.\7jJfH6@St)Q`OCu07$#B-TUcJP_ %?"8I!BWA8'J0k8RAcs6dKEk4J<`GP[k:\iYJgN08WG?7!DUJep2#\5kaS7dOU2`,A;,*KqmGMbe`1dk&.^3,6MCM+$M7,1El(EN' %/!I1I$(\GkaRNIV=iJOV"H[5Ridd/2aH'`L]CuOa>;n2mhX".F197XogD7#7^qiB,_;12UVG7ZRf!n_D%h %46_!-%#dR:ATmaJ0JLem:,eFo2*)OO4rHS]ds?CF:U^R]UMo0uaaptZ%/MhUDb?/[:6E1<9VQLV,2GZ2kaqXP^A_7IC7LD`PVc'$ %V8cAVUq5MK9hDIl:1Y;mJ])=qVEl>-S='obQ?&_BR+S8[ZZ6*0CA5]^(-^fg_g!LN"2]0,-IP3QWg:lABu.cq^*Af$LOMkb&]m;KX`=2WkI:Ps]s;Pn.NACIfZ_@ASUiR*"]I=2`O$%5 %3QNWU(=P%sjBs&V$rG4qa.6TY2-+AV__COM_4t_0)Q]_!1O%hR0NbfNTqW?2P"Su_NZ+t9]$^gj0VC7)K^X1ZBErMAZ9I(Jk9]6e %F%-=Mp$$)8\Okhh,`S5g:0!LM;u.a@.M^Za*7Z:>]E"t`IU8rq//YEOMJOcJ&@?&\="h59.o:p`TSYpbQp4>hF!ta^GHhjc\B"b %G\4*3(ka8q_1R(VKCF22?c!sPC.&V6j3g8Ge;,6YP3!Q(e;0dN.*W;96na>'eWB9V!9k`&n>uf=mF5brDZAH">$"#m9r-f)a.!bd^G+fM)3C[o2ODU"D(="pm2j<@I]lmWcM3+O# %@o'$#a?,0%?pa=ZOE]$i5l`)S"WXOcrU5nV\tF0qSG %oN=:R`+VCJ7M@<0`)L9[EC!D(;LEL5IJ;t%Vh-+[^+j%mKKId%*@PBS&J5hMH6V2 %,RJsF_hf,F1^@q4/Usi5Rdu'"BXR:jN``!KYSOY4KuLb>/&Y!oc6c`o*a2o?Of=2'h^29$r[(hJ@5#6D4_WUY]a.ddO^Tn3j_pmT %:DCZ`%rW+5J(2N,7V?Y6SPBljhZ`=37HJH^j\HSbB6(A(4+!,`e2j+:Fl8f@c6h6NBoPH96>)I>]nnX,;$4IZ)G@-,>Y>FqW3L.o_i4%m2 %enQc3`jsI]Ju=9fZ%D[)1[HD[RF0H:;&G4Z.bC5-][AH,Fl=@tDJ56?joDS"BUM0d&P:"F"qfgM`6@.3V2Za#[;Pu'elc![53m#/ %p%DEQ3\FIb-M>M6p;OD.nR5M2H$IEg`#q__7$SX3&qcRG),Y"m8IWHTRA5G$^Od4cf&2t_H*G[;CMd-5?]hm6L-.jM]0g4ToEUpY+*cujB`_iYREBaZC^/ruJY!bHIn8f'%ms&&Qa![1chKsG[A]Fn>abYel/Xgpu* %&:/D#M-gtRf@2g7eHK;]OU=2CWK)H,Gm@Q"\J91RZZt:<@G4@fbuI^TNAXpKXem3''.$3)/cJ>_Jc.CK=1Wa"V6oAGf1Q^hOc]pJ %i^j6Pd*ceae?jB^pB*"&:YrgncHja?@cQV<94.+2F%CkQI0E+HdFfo>k45tCl4p\imPaa=nngBC.`7q0m:_H-S,K'>)(]kE2;:)O %g-O/!5-82c59!e@SllGW&8%!3d0XZ4_:`"EU8Xc7[C%k[5:TaO@r4aiX[>?1##W9Q2;;dd?f3:rakI0tp!EI*?H\:2n"],SN]a:P %bTg&/=8?4M?-E/qq:f3P\%D?PGO>E_mb7Qd;Yb6TXn;$boX-%GG1Z`\Y5R*\qmX32Dg1U+mb5G3[JsUGCRMGT>[qpZ(E?UY^BCuTDabk_"(?rI/(%h_X_uFI-9,LVkld4+8(hd %qF(m[01:O?"I>)eTu.e:(o"X6[;b,]d!;O*"L3@(#bAkhOBTQ_>F/Ojr)0bH<(@;dA(%T/<7-U[]s=kie-I(rqP7QqW),Z!VTMR` %?V(#5-^Kf#jT@(]%Eh7qngRJL_HE??ke,!Snkl*.Y_&-pjeG0VLLF7ge@JQiu53NlHL?50sq-:irR1VMf^^d4F,Db"J %!d9GN&^*[unelikP-B>`+XTa'EFJZ0%5HOWi\I`ce0-16`h[&=W'a7GGT[C;7ic'ub:(ZOnkk10lm>cA0rC%"9N/&2@PWlt`+7/M %Z]6bo*+D8/9B_ldq[aF=0,ASa$*>g*G?/FKT?gg#&oG:\8H5,"s6j;_D(lCq:3Vj,sOX!e4 %!lVND6VO$GZ&lC=H07e[!d""#_DfIKEeqin0?,]c'QT"dGjf]&0Uo`@nN7DS&qH6tF[%q5@<5UGtUI:L,^^0i!(T!">Dj9o;oT]_[V+s1WbFK'%Ya%[*inqg/qKF%/EG1.1Kepb3c %Bo[[?>?8gG@.9:i&G^peHbi?alNJ'o876%_XVY*8("d-S#SQrb4YDqj4PSuOKo]H[gc`,IpcYdASQq[+fBg,tj)Sim(Y_49H`5CV %/jd\lY@/[fq#Yeg[gO/%0Qi[rRf#9l=`4n0GL:0gi\Sb_rX24A*RE[;"WQHtkEI6Q^.`#P %N-qr*\#!LK:@:;X@2=5PO5nihQ;T5[d(k,0fo(MqrNG>"$"4VK,El@`8G3U^"nYs1TS5oj$]n7")QR;`/9lNC=GZHOR"asn4Y]>B %N06.9A[Z*H2pYP5g%`V.!I>aqQXpgM.J%#'i?E+i9(ALhk;AXXg!V4HlC,c9F,`TtZF.TXNC6Joi+f,uE7bXjm9kNm7bI.;(PGaY %__Btp#<`b;Z^Af#TlHPXV8._cr`]'f\/c\BpCU!;_bZZk1U%W:nES\k4.p\WOr:%Df[bKGEEGObohMSqSApV^-L7Mgo";4u3Z)5= %3,L![#;)]6W%Z_c=;J@bVE&mD!^F.u;'e]gW%%h>0[_.`<0[GZ950MIC>d?aMoggg;$1a`b9JV0`])!S2Y'E^md&5,Ur:RhI+:2=LgV$.:#9eA.Qa*g77_UB]R_4XMcO7Ld"uR4C:[2eq9q %h(U,pH(tT#XPAMoa;[#+VPk+PDq)Rl8NW%JH)!Db%OFA,jGb(&6dIK4OZ.%5c.)WnaP4sn=pu9oUB]Qhd>^l,edp;*uKtMogmi;$1`MV'I_b7Ld"=2aLL*N>d'5m4*o\ %hEpccA76MF]2D,ZN>d&2-;Fq:hPbuaFC+#shPbuaoMag>hPbuapGBI#jGb(&_sQ*^,&^F2$b\(P7Ge$ukRFpcWd]F7X0tg9DeJH@ %io[%^[5G_L>^gKO;OsqXe*'\;%^=DtC^l-`Uh+\Wd+K6!Uh+MR13ZNJJasKH^")h[ea4FZbI3[.>BEG]c(i>?i4eijbO?4uXI$tc?RG@W4\/8D*`OF'2i,:-`4t9f&UI)W %/A%*]*pOpBpq5BLZ0!;b'$c_J5Qhf;?W22=Irc6u#HdEikaI^n)nYq=@;ee-d@@TDk0?mCX&fo=DgOZrE6L5bc`4_-9r %12CqDcAb=3l'oig7G"&?;OdZjk2M1@I5oRYD'kd84pQ1r,"MKgQ1asuD"!XMPhfG.2c9[6^s4mF$g#dgG;l46/>>[Bl.,=6%'G2, %4)OI%%o:CENg>,VH0Bbsa[It#7nO7aDb`nC<-*H+jKji2ooW[jH\AcLl@P($6&.%q->Ii^QAn*]eBju)#L%7;!>'U',W,3YIJ$1A %-.?.m`)`M;rt^jl99qjnJb*lnL1LlBl.NpdCC>P`WM]sGg%g=43U8VH7+1VPF,Y'+@b.`HmBhuW/+t[IgoL#rn83)YabP(W=uW$" %_&8Y9qZUR0S=tnj7D.#cDIQs)a,TBpXpnX3AGh2E`/sAq,HZ!pCHO8/r;au23Za9"Jk>e/l+#Kh+1,@Cg@rc.e.oB1MQ*/\Y/IS4 %"=p=ud3TV4&!i;6;<*3]7HX#AcfARI:D>s\MU/'t>^(%ZU,&$6?m61Q5H>g+nUEo %&4S$bNl9,f$_j3?fH\Q>jpE^-@V(seluUBfW=]I?!Q7dp8U1o+aUn*_g.6[Zh %SiJYNXkf22d5*OZZVu1b?Y6G>K/.aRF0UrZ+fZQ8f)1XB#b6%A_BQODZ#nR2ARn%8/@aWpk=t42BCq:7iD/Y-K>GrJ&Qo(=K#&JH %a.C^hbikVr8+]G+"mN+cf!"IPs#9QXYc7B>5esO!oh4FrF/<9#R+ljq*Jp0=6K\::.2*]SS!pXV"h4cC.!'h8AiYLp?Ftp0Y?an>hh,`S5g:1(@)'m?6#;2&G$3ZUpOfe() %/K)1O9G@c6[NNZS:a"!>n09l0VTS"`b;/Uf)tF@n'm%1l9$A9]o\4V)EAqD*&sn@Q/CEY-C4Rn'.-RRL<2;8Am>TCT`f2@FNqX %Xh"=I:2;J`?mEWXQrN\Lk3kSf)h1!&FF&">\)s,qgZ\, %^'/r9cB8fh5h"_Hg;,<"7ppJB^AnRg(0:[fb!IV"pGK)dWc"fd\NuKQf($uK-W56X<-<(Dj3o1J;:f+PEme6cdZ#p70[3I^S3Gn# %@Q-JAI654R)n3*2H:0jB,5nA;$c_2`bQT*d%pX]'#;;-K*'jM3YS'@;+ah)7C_9N$lT"Y5`T6kpc][C-20A^+b*3G6j-`sH4 %p-.iD^NYj['uRXM:RKm7o!LV!p?sRVBr(%rrPQiGUSq2=erQ!Z#j6qo%f@B:/meLsjWuqlTlg`+O/9)@]3Z7(Qps>9G%`ZO=_lsO5d`C24jL>Zb=F'%Zr&)#uFlC#b_KJ-UdX4fU&,.;=Pi`'DB#2'AUIk(Q %#`$eV0Q3.P(OXcLQ*Y7"I?+-^1GBM#qbjQZ;_o;.,FN_*94i"m5#%:e=M50LpUq1KI@$0LpUenbOX@be^F;ljso!%4%$/ %4MWn=%K?eM)Wm!D/-Y`PGW,qK[I^$A]C>6tU&tAYUlj=I^=j539k1G*cWk?k,?a[q=;)a`HXDV.o7tU(n29j+].eGNgJ`bfk5qCsuIAF<[&3Bn4p1Pb6^ %65U/1'VQ9,La8C";`/a*@Q+4*^.k88Co;d=-U=adCeR\`OO.Hu=W[!E32+;6ZdtI$g>CPkm%'Gi6G]@:k4K.OS3DAG%7nAla^!/("73aK4kD/,%=_<%F]8]YD=fOe[SK\bJbIZ?b\^OYNX.;mi>mGapT'\,di&NE>kpqF$+^<1EV_bX+2M\>"NY)ATQ<_ohH%R).s%?"`pp3-aZP7B/4Sj$s\K?X9,]Y %iQ:DeYR9/?'Ul\[$ELCTi'WXY=h3j#-&!\LZdL;h%_GQuF]LO,9\>%HYHuY+Cr\">H(?fi#hdVpjE4Mk3\ZB,PLisJlfbY\OOmXG %lc)OG/:!f:DR.Q:3:]*\G9--$KdO"0c?,J7PtbS'l-0lYWh;_$VFscTaQoo`?,d##9^VmpVTYJGiukOT5L5LEdkb8`B+^`Jc8sGI %YABI53R\-Pg_!pNI/X51E@613bK,Zu-*OWVMXb5*B_"27G*P:L7\qY"s*Q,nG"Kdnc)9EFHo4,#EtUPHE=uFf3,ZMn6)X1l^@Y$E@&F1s%C]E)%NKG&H3JqfbdWo)=URPN!q8@+>1_Es.^A*\t$^CFEE6] %?Z8F;X*beBI*pU`Xn&lWI"1$OMgS[BZ%+<2L*BtH8M;pp:GN6H_Yjk>ro'EKq[^n"(?,7Lm>\Gms+75"GQf$4KE^bMC+/[2ITubiQ7i%`I8oNQ>jfDS?go=/'U@TR?<\)hAP&OKK>q@T+31mBdmP!kk %N_joKX"gY4KP;th;(JPSXAutC7D;Nd$+\1pXTe9TCnoJ$Eu"0?i-tBF$%G?`OmhOI're1p(dm)VI'Kb6H#94(4fu"jq'K^krJWa# %B"VJA\=]L9iVbaoISP00Ac^0bdmt8#ZYaG"bJW\84d$P#+A5QTGkPqKqeP_7o4i?pC\IMGItHjhpntD+A\gPRGqd)1/K8NT:[<+]E_r..9)Ghmh\&"OXX7lipt&*A]i%6Md#1lP:NY$ %R6hW;R%,g&VO/Pr?i$AU=Gb*5lI*_Chj5QdW66@Z.8lYFLa#8b--?q%8:`9oDZ:JDUu2ro/=@\;>OBFoLKrmiI!G4DE,sUARNYVL %2lncg.T0YdKM/24-h?!PX>Ao=8gmPlm5XQ,chZ=#"$Ul=YLR>PM3`U5'W[qXMH\#)L#ebQV-g<8eaJ&A6a/Z^Hu_YQI=_X)q;3-) %=gFu%f.cm0RCfZ_2AQ[:1ii24MTUE:Z=#]9[PRYN(G59-r`Jd?a@j#`HdIKdUe9X/bFt&.+'H<[,S\W="t"qT %&iB"j?EiALDE[rD>HZj*Fp@1/E_n9WG)H`LkV>hra0MNL(,#*`jHV@q5RDQ+H&rX^JJ+'"@6mN\\q;sMH;/:&k>sOs&1Sm>ndHf %R.00Zmd,'7IMtnQDR*dK$g1,s*TqA3J^h[T1*@q),pL<(F]_Fmr)b3ObgBe(=_cn1R'Tin7k&)5-nt\F %82L[td9iPQjXW$7X9F#^U7j`)a;9/(MMCgA,(%G;@i`oR-BQh(*KbG+nAY1nH3%7ZC0JqcoguI(W!^^aRY\J4fBdqnRFbqCl[^i)5-N"q %ehc#RK^>nr[r*[EaQlETcAVFQ)i)pfPmO;X$Ama"[a\o %'M[g'$B1WSeBHH_C/$qKg%q+ELJShbQ`@/ET=ViM$N0oBpWF'Bj9S%"gkS4g737-!DY*O*?MM2U-%l>(?I8I]R9oBoNMb)14^gmR %FZ/HE$hME\\RLd'Ia"EY3+N*hFg(nkcVmnE&lDpm:]4Y!?UFA6NM\g!Ro#+b#B!=nqIWKo\j@[BbAO[bkZ\'#)m.K!1'DiEj0Q5Q)l"hhRA[J%%\ifK[@Fm8nK^Iu>G %(a,?A6Mi>]QpD2DIR*X+&6iEM=l%UW9Ot3I+fcR2[56./+B^im=h#U;ZcVKO%VetK\rYN%`E!L>/>XFaT!glhXMGR)luKpD?2l,m4h.iN[D"A9B2oW0P2Ff9k'li]5)%HiGhU6YA(_Hf@EL7&bkI%2&P8/N;G01rW>*Zj %%=4\AHME'i+dcD\L^W?4G#j_N(!]uUmAqL'.bAu?;J289c5fK1cAUc/.[$U5fRr`UX%8CG;5(=r#f4?0=K8'5$?oO5)QQ!m"t?*C %UrFmj.nsJc'reGFh(OpQX%99g]H39j=[d),Jdd%&6X4kh$`Hc#6X4E3q"7"2X0[]5=J_t%40)J.(ZLuc,g?O/I^u"LUrFlQAa$3^ %MmD`G9gK4c%?0rfHT?&dC1-OQP2dd0gl;lm\bjcK]k!7MYpt?&1X\6nrH(F\`fnW&OL5O&B=u$HqZp3-u-tX5OOnQi< %qEn>]RXo!Be`MSd:ph(+>9'0)ZtaT`jZpkd-AE:kJ@snO=9q.)G`_-AJ0n2no+7N$N4p06'YR7i&OkL3PuMe=@d)d)'s9aLlDG %FFKHfE7mG#oKKQ:Tc4B]k]WJdCS\!`\o![iS4$U7&@(_,0dnF,< %e8$?J@/Hp^.5?#Y@_O;dr$h%iG^o7::>R,**DilM>[G?/41#S!Wj!9)_D`71>1[$XhkL.#UqI70X+.$"%kA%-C0e7mP)=AsPu+TP %dh:"&%DfF8i[>@kb.hCcmYN.C47U.DDhT2B[NOVphprLoFTbMu,r%<0`=1<4cHK_\SlNEhP?l1Qf[5,uF0FBgHKV&*( %"%KX(obldYYYsHt0FBgH"QU>Y!Mbb:7H!`U$lGDt7ZTcQW1,[l*-)H)L$Z#GC5Tec?PJcS@WD"mFPg>iA%*`Run->73V(kchVp:5mu5(X"AGTm&s=,Mln^ADu:nF#7KC2dR6s" %nCr#(i/><8,F`KJB=+:[llGfXBq"S:s54>2I1/LYo6e %d">lU9[G,EN#=/1kWIa5OeNK9H&Kk`/Tu6mbfM&:&4M,pS!?m8K?j)A<[L=62EK/C=_(4&O_0Nsd3J"gl]2L.Rk2Do')ud1*tjB2 %Sg'@e^k<+ZLsA+cA2d3,S1PpY(;Z?KZ,toW_+lZ*2Bn%R76;Qt7:e0utoG$mZf'd5j %PtW.n[gISA3quA+mnZ#=FFVCB!gu]m'7J.CBn657YP/.4#$9g?`=U.<\?Zh%%iX9t,2#b0f-G2K:q\C5bO>#-B"F7a=^K"168:$OCS+LCQM&JJ>i %R:RT_cjEfQBG"d@moqokm[O+sT?l"bU'^DdITOV,;JiP62u9a@Id^ngSSV#iS?7k1]ru"%-i"C$=1iJJIW]]Q=X#_aA82u%&t*f& %V"LV4oIZ8q7oG'C.5_T6bN]n-8'N9H>)LHlc/Y4RdqSDYO(jZEi'Wi7k&p5Oir\'`rU,n1cdk?,5k,ITn5C.1cJNN8H" %"W^`t1lu+S:JjK>)R0ekIAo[)?ZPsG+K`;7^0rb6uYEJU2a#04RFh %U<2ogBY^fQeo&K;,gD@0b1"*FH0tr&/ZFq(9G3.I!*Sb,kF6)hfWdY`+PA%HY[ao,'U,F6ik>DYtOq]+%/ %17SqglRCJ2Jh=Tl:g_Yu^T]B5l)r!M!.t^q!b)^s0Na=R5AYl?5M$iTG^AP][/]BD %-.h>#[jSCqcph)Ekou1>TV#FoCm\-C(+J7o@Go9=2=Nh"lfr) %V;9[0>QLp7Ac`?nE*Y)7ZG&ZcjrGM,5\55#"7]oNb1esRh/9BEHb[4hTS-_[F5U4HP&L7foZNrn&[oq$+I4@s'1sUI: %o$m3ZP8*^]=NLrN"uVgm$rAqh\h$ITT/\eC'UFgc %KTA[P&89VG=fJdUhcW:,p!Z4`:\2;j]JhTi?cO%HP$(3_=b4L[0*&aBgiM*HS3ES8e,[g52&d0Vrs5s[7"obgFYW`rluhg %&'lQh6!%7T/hF_9\ep0gdse/j'FQ&OnF %c?sU@?Z!??S(i2b[!QhT.'=j[[.n8[Y@%3VNdE&,q1`J":6o(ET+qeV]IgYDkAe6fXHSjc2rd*+2W2sNplQLS;rr&AV(mRV?sL:$ %U`jQ#2FVh8&&t?U8@OYB;[O@cimqB\eYT3QFP"]`N!g:XrJa6sM1Yqn>hqhH?&Ea[AZDohEQ2.tU&-.iOX0tNHScs=+nk_C:8@ii %Ed\pe8,+$]E[1t[U)I=-@GMmj`gfln%BF]*T.j-&,[o57YWI)P=0#QRDVf;YOsV9i8!69r\!-D0MgM@5h5ii-l?YV2-*ojQCEF@f %)bKVJZR_U=@ra9Egp^=*IX8GX@5EPV9fa?VPM)!fjDdQ4Y*b2uS8Vo^k+Qd=[aW"Z'/fEA`?,mS,kAH:1iDn:(>VLo*_=/Hu]W`\q/",V)MbD)3[_>?k@1 %#kPPt1i@Ad>9],tF=:e"QQ%b-*)TeC91A"67Bd>Uj*M.ZeBKD;D]/-d4O\?u[ZUd@/N+s9Q\U<o8E5!9d0Rcf(6.]&Ip+ZEeGU5^0-p'n(Ad]jkkD&[6Am[3gLiBV;u*7jK)cl[@2(;Ap=ICF-ZBQH]_gm``/- %lp2oS(_X>@&I]lZ;L%>M9\(=!jfsPa'W3XV_LkCn0dN-gAfX:>%8ulr_cXU6O*s+h %^`967L0T5uKUQ>=dK].LFB@U>$ha8?_&M6THqS6BoP^/%eJV1t3nR"R] %jh'oHjG("B('0&#m[ik;Xr])bP)Cg"+;#cL!YNY,JBl36VNIBO,TuBnTKiW6+FE76-">(0ZT](+9RWh77DbEH$mZZh][&Xf'J(>BsU/],GVdi+8[Xc<<35M?.tDd)5pqP0Mn8d'W[nf?GE8 %._XOKi#5g+ %R+h30\Jj@/8jR#_g_BgpQ5u%3EK&*'AGLD\Z(HAh[N)Tg.t54-_(+=UG_.tn`es4]Dd^Auq.9OQN,6Jk]+W<(OD\t?c' %/k@0.O`W_XNHpRU/4f&:4)OpG>O4ZRZK)0a<8cNfe<1@2)Dto9[:Dl^8Fcom@FZ/[6';egDG5:X?J[%'?0iZr7nd\d,;D/BIZ3,lK-7KT_WV+h.4hI>'o;+/ZnuMW/qbK5[W:>SDf=:[s("pd4a3L2=fpW`gRH#'mO/W %W+_0g=CU=$*D88qj&de+a('1m`Z/"up!W$^08D#h-]!A`]3Tn@F%$JYja><>L%hDBfmIZjrdl.'S;G4g1(Fu?^Z_7-*-(9f/(Z.E %&Wu^IeR:sK6kM3Becn.fX9I8>-VYWg.2gI*J/o+,E2h %[Fm[Sa/<&J,6,AgAs@b7n+O*X19AKjk?8t$2_qdi8>7-"n85"WCnGjI#%ZsN#t[[8><#unPDlbG94n_d>*^5WL%OpL^?ot2=5bm/ %W%QVp'l$I(Teu(`*r%YNG'm"6Z&O/D$qoMY\;(\T:$SYFDF3e.%ZEloee@r"ViTIJ:,!Te?cVuQfY4nO5B?1J(kXf]&[@/.c'$=_ %TMKe(p1.Bc7)TrAraE_h#.0bC"sN)MnCB[Co)H&?P3!^HO.f#2o5B$5(%/kbn7%441L"Peo>4XreYqb9P %!sLbI-1,=D*:^gf\Jfe5]gB#s@aVaEET;KP(oB,25,4P4_MG %)+s\bKI#;4%mn/MMhZ'2(eX!ajs&Q.UK'ros&7h@*&UO#>+P%&?OR$7oZ;D&W1=H5#G#,YI2mA#[79R@OB(f8gWVV=Oeil,qW_@; %2NJ5PGE*I3p0MKnCYjkig'E*BQoE/m*G9EGqX2cEo=PYN/:_k^VN$E292-A%>hMst$9(-cQ,/IJrU:Nh+09E@d)[sjg_;a'bDi(Y %F/Q=a/nI.$%(c\h]""5$HGR?Hes/)Xjm2;$fQtAl%J8_Bep>0I3r1;Q=t_c[+B%Oe+!\/m4CTG? %Mch]FdmV.*MlFW>[U/I_S:RKVA\DnUrW?E8eNCVd#A=9frcsk.YNV?i"\[g%XA/9)ij<+XGP')5lmB.6#Umq]_*U:eVr'sak$r?+@!=>I9m7\+ %)iobgoX6iPfXmd4L0TPjfpbMI)oFNe-H<1\;;?J&_:u2q/Qqu9YkMaV.GNnU?1[#`4EK>;DU57AhWaD\^!.L+$!QrkY-I`53b]+k %O8"!9DhqJZ`V07>5L\87M1%X(Wdr]`cJt;;mMLi6/C\MSTP@$(=fK]* %Elc:h'GbalK)LtUnm`_j-%(0#9XE%C+SdN2M:8&Kc#./'b$4]J$g1ln+k:!-p/eKm.`#NoJ#.$.]*SBC44?C?@6"bi=+$T.BSV;P %=]3=L$2.FOXu2Am'+p!G=Cs"F*0su^`TS,%54IQ9ZFP#964QYm\:U=sFaf84YF%pefO5*[=5]Jt_dNj8VhuaT-.lSphtpXgbF("1 %7eKhfl#b=?=:K],Sa2u8=r?J;%2%g_NM\,ImB7A=$Bek-E;m/Y>\e)r+0h?rY8FkY;\%"4BmgHGNJ]E7%PM,8?"kls#ID3e?\9[< %!t25F9\a;/rKo)m[)q`EM54*)9oB"C$[4u_]R$D0_!/\AY*R;EBn#PVqfSa)NF+gio*Z>+>VVhldKPP)Y#q73Op-bFXpeQ0'/B`L %:ThKs56A[\P:Pd1gacKUK4(\<>aPdQgE@fWg+k-i[R8:42!.J-^\dcX6PfADC37[9a8Rb1h2sCt*R"M4-4;T84gl)fh8ZTK]EdJ, %[i#Z/9anR\#8)+um.Q5D[sWUP0oWODcb9QmoU$A16^6-oTp'kX(X72:eV.%V%9.s#Q:U?3Z28b:KVrC&lf+:aoi6)07P-CT?a>%\Dl+&X&g6s3/t[okAHcXdb-]RZ9eIMU8f?usD,1?,]sCoa3fb8f6`MEm[Y'<+-O %?ltGug.FaV>iSgkck.`#:]SkST9%O18\MFqi4%,4@KO&"m3+*'aI*_)["l08+]qs'Z%mX1jq-)s;bsm#T]r\n^27hpO7HJ/:?kS)Us1?TN@PG)N7e^\?c*&+.8HR/?_L0^1E*AR4/eF`K$U2k#Dq19aqbMTSD"&@8Y^s(0?sP%\FOR'DfbAP&GtU0:^>o[AaC,%2u0SJS#gp%2FH %`P:/sEi^h)L']CTP$qpaI5)fL:Y%Ie$Gf!LI76D]FnBS4Sb(UD>)k<%h14r>2n/lJ7&]kHuQTDJP'mFZ/$Xb3YIl44fd1&:u %?UU,;c;suA0B.s!f=r67$Wd@F,k\A%Sj_9)YDU'p2Nmo=a7,'b]"?LBGMr%ZO^]& %m!se6jiha\i=8uFoc.R'b8ed,4s0c^(u8.I9;7^5BX'!B9@1h=n+uk%6o.K1Pm)K+@V/3=ZZR0No(]=<4SomgbA1@PXCd7O]hhf>,TOrD8$iOFnknFjh",;q %/K=`b3']"Hla`3ZGO!XD@A#.1lpqo\61YG)%iqILpJM4a_BZ'] %MG7r.efS?@\kc<(^ZA`\B:Oa$6.mr$OAp^T(Op]Hs'L!ea,@NPI^!sYprg;E2tATDg&J_g#qW7NK@T\Z"[NAG6F#+aGG)r/8(i!e?=P,SCBkM8qR\"(M4#VDXG.>*^'Ui?StSdY#bS3[d!&A9T^3J3@B_u#fE&j_42 %K445k3VVP+jEq9uJEo6o"Bq*8Y$TG5=fb*i\;7;m\!WYU:9AE&;;APK>TUQV[fmGfL]K:a,[$>#$ %<]Khs[&DDZbqIr4J^NIP]Qqr:H>`33FSa++-Ws\/7_h'oV'OJO_u@?W.;/EF!U!^'hYcZ=j*[i]4Btcm>BiPIW4JU=Z^u$Ek?mUo %6U,_5_L`Mg\Hcp+.U*d4m+bh2[f*Mfbl'f1UX %Q\5i]Y_mjU]ZoUQ9U %UWt7^M^]>][k@Os[m+*io'go0O%C7Z+&5];VB$i-D9Y0=i9gMf@!He*%_R_eZQ]_4:.)KDgM6&0UE/iBR/c\3m[6-ZYW:rG(6ho> %G.f811;FUqTBJmbh2ephV7*mF6oUpG1uQg[mX5V8p\82OP^!R!1A=SkUCaTO)uXuWhnH2PAHLXS?`gqbq6#p+XP>[jj`/03SY.Y/ %p:FCBc=mT#D!9@D^!LQoFq+!r+/b$bq]?2+#,$<6S3'utr`^ZKkT1B"cEdW!\@kSO\J#kj-pW"SV1sY0TJs0c1,fj0"mh:=MX$DO %[AGE@7:k#('$6=L5qgStnLCS1TGO8-jgZF!cjTKKj@k/[JR1TW\Yh2A''P%;[S:\s0BF`j1:Jaf`H"";]oO&A/sbK[K5[2AA%#,Y %?_Cc5XX.`DF=\BGr%'Ub0@2RgZS01Y0*5$rjrP788H_opSU<0hLns(i-]H0]n;o:)@YamB$\K)MRUh>0I%dJKq]\)l"U"-[!r2n' %@oH/^q;_pj:3Q!n5k9UEs,=(7KO1#S/*dRk]$[f)(68+S%MgcNj %;e.=\oN@n?qScgPJ&WrVkQS3>,;&c2GD=M+/2J_G3i=gKV-N5Yn'UNuM7p`J%K5V$9.q %V:.lmm(iBnEoM\bYTS6q7M-I/Ka#kLOVenAcab\[B_5=uNsc.P7%ecaRK*nF=4.Nf6sO@rZkF=j]%in%2'?:3ZS\TF,,I\G(q %adKq2k9V*CO@r[.8JPR%+IB5tlXXmE`NQJO&hYZ8NJm>n0;LE@nFdeU*Cc>7_oGK2?'3OH:$\oDVdT,Kk %('Z.B^/Q.ZL#;c*S$>gu_XhHNFQphOk`;3>5M>?7]Ig9?m[+3AX!m_3-U*`NmfC5(R9?5.YC2G)d@2p0MK.U2B#%#uUd?5&ga-Z8B?# %Q.9atmeGiX5HC@#LQT\na*W5T!#J^P<,q#?hh:j1K#O!nbo`'b`B@cGb-o/>&!g;\CQ6QH;PF1spr&H6\<@E4n?"GTs$]!,K%BT7 %WGQ4.Nhcb0I,YLs%Fal?^Dt0]BJm8aVoYpTDnT(0hk#\5F>Xs>aK&kJZ$3IP9c!<#E47.O?UpM]8c-UUY'f&$&[C%)25ImR(0CI" %o]+365jM^WVL4FBoWF./S`sao)nQG5MMGifA*;H(\k1A=HP[&sq2s7FEQ.nkj.k'M4qTCQ(8UQOIU.^a,9%2CXeQ6#1qk %D,R0`"0D?0[RhJc8S]@=KTY%:79]B"fpCG?79U"C'jjoc13E49[n4iu)jf##7FEQ@._AE4AH+'X`*aV9rdjln\SY4iI0-uXDOV>3 %T>37N=eX?,690>FdO(r.Rd2[ql[9/u-7*V4\dc;0m:L`/bf2aC4K2&t+=pb<`N%UFP#fP-;W`A'`&9&BQPB;97SDK1,SiSUEn[<[ %a&>rg2Q7jIM[b2L'`8XQoE1)t8oDpHG3a\[k%Mn"?'k<'4"cSfC)/KSh-t_:.ps%d4@,'i/m4WaX9d.\/"UDX:IdSUNEF0KXP%?&fJ[cdPA`[R?L\/*C2YW4ie^k. %Uko$@/6m`@oSl;ZSE"K>Aug0Nau+8e7n-0rj;OU(Q9WWP>c0@1e<6ZA.Sc<2TWS\5b)V'`BdI6ki;Rb*%AIZ0akXOIAk&p#3B\9N4!Np6T_D_^,g@8S %/+@ %.OQ-iShM>MNG@[r^/_kK[;1WXDY%U9h[d_kc^]9I&s>WRUGf'AZfCb1' %OH]1$U$Ou

%_[;gOSiO6..\>&Y4 %j2^PGe/[cd8]QJ6"[+`PH\`a%=p\#Y"^bk:^O2#XA;2Ia#")u4GfnTR*6NSM(UAE@O9klno,XF$h[,lJ*n%Tjn<([rSd]rR.='elmJDAllAMnONj==H%1.@5+$.7,d5We %<&AN.p*.#-raPi.p%WcR;a8nbi4\shrNcH;Zq:>`im;oigO*fEde^3BO.$/I(bKXoY_O2_SH_dKE8JsTE`jY4Y&%:3qFbI?X*"gg8(g+km;!..Np=:Y])1+RU? %o='pg8$9.j?X+N'"Y]=2LK)qD:7CgaEt%PY._6U_>qGL9A1?88aU[uem57%<-t1X#CSkUI(;,A7j>ar%ou"s?+-D@3n#RLgTN+)3o5RX= %a<$>!L',ga+("q?'\@PIlKPL;G4TJ?[#P'-jUg%BG)Ps!qi-'uf5>*(]@H9g[8qd#Mm:Q-UVFOn8,onW5Z_uUrEpI6a027"'U=e7 %Yq9FU\OdL@4+849%+K'SH)C8da*$>D,<@K/)+HX:;t(R_eSkBN9i7nO;\H./'Qpj5gW_@8=sFXF9Mqd%)J9n`,T+oB`qtZd0D`XF %^Xh7dE7$=b10-^WrS"kH5t/Q;pIgnQ.G0C^-/q7he@7p%<<&2+QCaANj;2f@&oK$69Zfbf,&Tn*82rU+1:iTLRcng$TCn'71&P_;eD[%uuolDXg41i$dtU_d"/SgpC_ %:!@81qI'tWiS*Lt;qC,n(d((smorjFC[Fn-_Mp8pon`T]:-\bV9=QYmj7L\_kmQ2>k(AkNN.DZm)P+b1pL#$?l])HnZ'c@JUI!MJ %Rgc*_Up6sSS8gE?r-sR2$_o#Wf:0[i4VEPd_;6/8o1uoq9G'O/E3B>rdX1NP1jNbm;k"Lb.Fm#^[>irbCN#n$rUM4u' %kM02PNMaNkg@9;&(es>o %gt:[09nPIra7E3IUM6(urj3=.BGs[]=SU9#kcTmf`p(sskku.2r8\km;cGlL(1oC_UE)g$Kh%V;*-aT7jrlbkGcs6)BlF8kMMe$X %&W`eLXl\Sk!-8RrBO>ae0CLrr %=RW=Ja69uu%n0;@IZ!u5s1JSA;FO(U6.`m\/pjj_Pg3`n5k`hsLT#F(aa,HZbi*MaiTS$_5ta?/[F&o6QsqWZp*ik[^dh3Fm.90E %2aMbH0\(M5CJ-2jp2*Ua1GY&r`nEsl'Pn*f_(jhjik*MTJ+b"gXXT!>0G7(hs`rmBk0,VYP(51e*,>`B.c+pq63Xcs)iA?ojh^jV-`VfF,BVRURXI4E:6EY8uTI4E:6;PHW/`YOnr>F;),kYnV^>XXXiG)?[$B^m[f,>2K0 %Q01u(9*K\[0qZTQK]kcO@[@G8/#,N]@RC;36sld!A-g/&:X_^B#Xrel*\ftns/qIJS`s(tX:bk*.,nSShj%%_'WlYcBG$,\SQpaP %`IGUc.lr>-G,ZIiXaHa5["FjmVt/;3V#+-f@WeU5\5^Ia6A,V5$rB@Df\MQg6pH$JjWEb^OO>4Ec&TMh4-cc@Pd-.<=OY`?&/$N] %(9ka2,j`;ZafVlF@P'AABG*LWYNX.;n"&\STJ(i9lr`d!Oef5NQ#(+bJ:"Jbo_)EG2q9/nlh&Q;EAkljPZE_?+[@8h)blO#'*:!g %d*XZV4(m@0>5QUUS0h\-Ym+A_W[;-ZQ=ud)>*EoRU98@@G@B=AgK[glF$+!B%Hjpgo!gm([$B_`nV!TDR02=nLd1^@?lpra6?Ud853Gqh%IJ6s*`J %66ge>Or;_Sp9"H#NT`N-fQJlW#^u7;f"6/IC"IFDjaW'l3a5j7 %>Q6\D'bXT_dcng/E@VuX>c?":J4P@4gmu:j0u/ko5Tka(UZ^.O6R#0:]^!-_hO&Srl]&DMQF0%92rRdQNb^.U,1/]/.\=<7;'DpPr*^i'qOe-)(pDm?[l=P__L[oEu7[-kUk5*(>B"hZ$^"qr!5B %d>(Xq@RtB+0K$b9J<74p-VuT)6r5?l"+@-ld>)>;W%^.TGfb\aHQm2;G*[-*,]6(jK$daLMfLV*X[-?nb2?k7;_ud5Oi#?KVIkAQ %.`;,hVIk)GIX#a"0_u?D.MVZO7.d05AWtu`:TS3s^(/Wle]hH]&dS.N5^ut'VQ>N&`5ilOMtk=bR?`)3mjM'NG_+8X5[VT*U@:63 %:A?$g&Uh^;e3hmSo5Y?DNNfKFH#94(4fra!>J]T6RX:E`4DfdNct%`s`+^aN9q\"t=jpE/l?TU&1i3EgL2$(LDq_5"nl5rl["Kg2E,Tm7$s%t.!\:[UTC-Oo %9FrPTi3NR2@"k&bnt)BIB6:lkcX8KZE+?;eE6RHMGLI\GL&@35&@)C]puUT\Y@XN5fG-=>o]& %Qo"Nt[>M(=)8(l2Bm2AKl3aW?6>trqCg-M%)D0&((e%UbX,H_.p@2BWQ^Jhbfc.B3M8&eh]J`>]f;Er9Af=sP''Ha8\;W&A/&PIp %>XfNQXJX>>Co`K[;$RbXBA%EVX,G0b1=$?Ql70Z(ej1k;co6AR(RNMQ1KL3N/hWn,EYkFN/hWn,oR83hMp(<^enR %QdMY.+g!@LUC35jTr]k!UC458\Lh.sZkE`t?R2BS4i`4Z^2EX"$q;'.@WG\eB`;.[4a %Oc1nr&lM2+Z*X@]2,".W%cOF8k#Q,X1d!&0L3`\'*E((kUJi'")a@#+YI_8BVgkm=I//_=+tiaZ$Mb:++BL:/Th"4CK&gLr>U_bL=e;f$?:q^r+J[DO7)T %pg't=([PGKD>>Bd?&C,Djbr2C_(M5d\mVbsV5PSe(PCJMSlPZ)/#="M':6TPKXIWb\mR3rd,J>!dDY.^rU=X2"M.tp>7dDC$$=!k %[NJb78YHLr4'Upj082"qltj4'H9u_i@()^oTb411#%'PZ2iXJ`bNE\%qoN_o$ee@U+sgJXB58haOc_75ltf,(k20cSo2Fn*n>3:n %3a7IkLFsG1Ce_IjOYg7XP@$eZ.bNF[SA`LQ*OFr(39Yt1c5*!@QTu>qSnh/%3HW)F[\+fk,oE1)6h-#^"bW?t+sEb:^;[Fi^(MA" %jb*s1r/1]h@.5J&4q!WbEd+ijd4]ErgN4"H`lU`0T``K/Kq"'k4)M^eF]M\T>ObAPQOBC;l>/fG1KocRWJ*Xc%p4&4?.lFJ&_@Ud %a2@7c2mV6KCo7`*9bu*:MJ)h(l*2ls@*k8ZOG"IH!X9YPN?N8OEna!J:k.5QYDV$5eHB+q68oTE,7&/2_Fc+;HR95=HK"O9ui31@S0QK2fWo87.=7(o.3;iE[lA0ke)) %"Mg\$l]Zl:U]L`08q82*+E_++m(l:\$rR+YMX!M:/lm2)71b+$-(?)rXtZ[@@(/Y/@$0h;HV)S&%'LdCZQ'4ibph>5OddHrEn`Kd1?RFQ=RC:1W<*l%):Bk.`e&A;[.?cGP,`pVsa3J/U" %+RCQ%i!be9Tp\kF2eC?Y?3H9Z,e:PB25<)r->/E.))Ru-&ikRiarkq#E]JatarpIgE]Jatb2@*VMO-+iU'tMB.HV$Km]4='+*Y]) %^$j!N-U0Xf'\AZMB^q//B=_GsI4JXkQTo4he[af4p\ioB]odpQ)N2&qFl7GO#Ui%.M=>NANL<2+7cMTUr#Q[9IL5p@q/_5QN@]t20S(+q[78CQZL01F %jp8ZX,(W7?Y%.Tr:c=@Gk:V!kF@,L'+`D'+$.$"^M664d=psDuAnIiEBCsC%=1V"Xe)'A?HUtVJX %:*SPhONf",=e2W5_]a;Y9$g_+`Zt-E_^'%T+:F5AAiT)UYSPtZhf5^"G:H*eP%I.NLUcgZQgO97Zmp9[FJL(k?)O+CTP+/[)-odl %k)^!uqpm++LBVcKQ*]]AFRtMf7!f@`kN"T"'70YJ,gkqgPfO_P?d&Cc%dE*poLE6IF'='AS4EU*p*GK5Gki_C^7j_o_u%g'gc_:o %0\*L`53q&JF2.K?cO>$/869.\1a$J9L7Z>=NQgnSU)fIge8qGG!H!;J&P78dCcn##lBe\)c"uc$T?kM![tab0f%)NP>P_)^`u03W %m8XM_L?J]@EMH^^2VQ1fEq5$^1nm8>PaP#eV%N7CSPU?`\-3BXf4WpjslP2=gu5NZ5:_ %L/sm1>.C8#Cti)tN"0`]Ilqgo6jblkpQ_^aUOsLpBr7gkE'odFA"!+D>i5,>N]ahFpJC"j(N,QQKcBk@T4t-VH*C/_%C&f`%/b0* %&KTXQOm70n_QDM[0XMAe2h"R?QiKS^I^LuX9S>o>6L:u]F?XGJS_ %=-RL[X*X2-I)3O.Ui8\b6^$;p?S-!*5FJdp;9)gchiVUc72fho/CSpWEV(f^D'EQ!Uq9EtMmRKo1Sda"Vk2_AM*5B7Z,p=1D=eOd %NaT^tpR,32HSl#;R&7Wif][gYe8^1',0;01m)nASY.d##d&(WbPtF^8k>PmgUI*[F3'/$i*>a/OTdNO@F^4&iflt^dZ,m\;i]8]. %P6%YJ=N5N-0&DbU,\-=NRmX,b#3ciT/:=O_ceGS,-r^^KN0t/]M7`Tt=4$&=LciA%Q)9D)+P>7!p/CE9smPN$lAN %nMOmAiLSh.`Eg>=R5L6F(1kNuP:?j-s3, %-#Ad]>o?KiZHFRnjBP;52BIBc)jLJGCbk@l\;ddj2VF/#@%.S=0oo0IM+r_r0XGUJ@@I\o>B1dIgEt*O6:eed0Ahf4fI.E?aiM%# %n%sbb+MpJ-jF=Y&.ubfG6M?UEchPl2?d:ne`kE&dM9tU3?k52HR&i]Sk\SZ^07'V3Mr6sNL%em?,EG+&frip%0iV/qY#I0+og12rebsPZZ?=Zc>BPV,tiSVPJD[6?$F5;1#-e0l/n(b %co,:ZXTmf6n9K#WH>.&E?8.B@Xm&In]j5tu9s_u46[2f&$o[bOA@jNa/#V;RJr`G`St[,n,i^:ff^Gel;Hrb1fp?VU*NaO*?(6ST %:Z3^,X$/"nU+DXG^@>GJr9mP.;_Y(u)G;^7%R;o\@u3cl2`B:_r>A8nh(AD?q:O,4Ai5n040eV&J%Y=DCsnL4?d2 %<.:tQ5?.cUQW[Q"(tnV%-2=GP8dMR&5?5SaGpg_)D:>Wos#iC"P1;E$`V8G@95qX6ofY=mP*t]W6=t,a;?knfCKkmeU4jQ7gDOP= %%5HQJ#_t%BiRU_T*H#PPitjF].(H_/3%nUJiUVu@0]B0YMGpC^o_k5?;WE@JKLBc=<"0Xsj%d4Xqs':d*$Gn6rqe#*\Iqm*I4f>Vk*]`_8@s:lp %MHG15&>iJuWdlp;\DkcWNh`IF#*/mRp@&'T@LHIK"a(kjJ>Z:=Sn]7a>)?JYdS_#Pb3(i/8mG6=T-neM@>M]H8\& %]qcl+iUCLs?2N4u9]Y^)s6q'\&Oc*D(%`g[O3S",e^i:M1uZg;pLUg^?/c/Pg96i[U1;Ls9%YY`!]nWnqf:E)XK6OYI:(9G&sF^f %lMGUD0g&lj40Pr*Q[K]sfH6m=0(\HTp0Q2::2Q2.9>7LE'Q6PQD$^j2!iGh;O %qoWQ?HBu@O-%V@iRKIVI^CI;FfQe]-ac0[-0In$-\(;dd:eki^]R@W2k.tu>U??ef2(D"qJ(d06o4R8)W@`OH)ZQLVI/>K?X75.$ %33,<[-LI<4p#Y"L4r`B?)J"RaXfCo-T.F5+@Inm]=>=8)%q^'3O%?>hR4]e"U5/U52XJeViQ89_2mSF(QQ#^a79IoDoX3Png0(AU %!dURXHPTIZN8Th)@&Q\t(ca[NNq=fAnm!t?HJOPbX?9a:)Xb@Phf=U0qqnl$8a#('LG\?<&e5s857Q4`')?d^r%qZ#NVRk0:Tq`> %r4BX6jl,dZE6\(u/flWp^)X:1?61^`%G0B6MKgW]p+FEKge5>+U.r%'L"hL&X)UlU/jBd]m`MJ?2]Weh9+-9BLMP@Xd?f0,ZGSrF %`EJ4aLF[)J-U]J5n8])S0gW^H+Ur@k@&6@lHlK2FN%N5@1gKs]jQ,:jlSIQQ`lH!YVr9*T57a*QL'u<^?61_KZlK#YDB:G1SZ8Xd %4C!>t7^ss]no4D=\3SU&jl,dZE7$P_c,8Y@iF95I-P)Q9L'oFf?61a!QnRgDnFCPoa*\VeT81TSk3LW./3I2:0jfQ!`5fbQa*_Yu %KmNTr2X2(@C20KQ?9)fQ'#WP^bPoOfp\2e%Xk*;%4`2NP0;7e-C288+rLqV=Z_JVLd6GVDd!n^WFZqEM(PuVhEu4fFq0m\i/ic2; %\N*O=[bA>9$[/$*C3P]S#mL`r[7YN=`NAq7+_?P]0/U\Q6!eE@h-=;I!o>>CC8>%BNLbdFVE$MATdRPi3g8lr-]b.J/2Yp1:u?T8KJJXYkFqGN8Aj_frT[I;h4'0!Eq:nJ)XN2_6AE`Wjf`[-NE$_ %PEYGq;H4u`2ofOWR5X"t<&>9P9%M[*h_/_uobjM#n?*H6l[,B&O6`U?^AHat):k_B091]1.LYL+-6]u*3%I_IXoVbFh6Dhs/d\G/ %'ldIkc:nS$Y0mGt(SO5:Q\5G_=YBN:,iK_hG*J7=`\*c,PDsl`4cMIaT9H^D$tP[+4;1gF8CR; %mPV-@IbW<*[k#:3-HkL>,6uUYr^'8:SW>e5oCHM;&9_,FYr]H6l@6,0O-L.c/2ce86+gR6]t#]j_r\CWV-fJV+,32XpKdl\=E7Vf %b:5^8#5U\K)ZEh5gBIQRo.@t#cl#cP*fCNAG_;s,!E"\iird!nD9e??b04d_5C>a[,0?K6k/I66SO\FsWc2%j1S`Oag9_,s1?`[M %-7<1,j?Bhk5UeP$uaDS4bE7oGMc7)iLGpdV$p8oh)LQimk.]&p9OjGT#4"=Rf:5q3ek!lJn`/nhYKphWL^&nhYKl<$rd_l0CCR`S<7cY5,"M/i3gRH[XImDYL8'$LE69QepkaopF=C]PHm4Y"m]gjl?<2g)FME\d30TqHb*;0L%"sgMbIr] %Nh"VZTD+OO@^-o^fiaul+SMNLRUqcbjeVB/=3)-XpK:-FbF1OCHG>3_67GuRbrWCN+eL9>(/WCKkK&UZ=D %WCKkK&RELU$m>F&O*D3/r!G$oD`SL9OFnK*!FBgq[#pK,:+P6c5Udp*&Dc9,]FX:5?<_1&JDNQuiH`c",h9iQ`HO6O2kI.O$? %/lmh0f>N./LBp#V=7kU.pWg-!1_k4f>m6P0,Pr'EECY8jGQX#Egfd9fT4N*AJOaJ1dD\rs%m3bMNhF@e"WjX_a/L[1Oh`47Ym,)t %[(mnDmV#:j"U,r[p6l]ljj=50+%OrEe'ZDf.Da)qlk2oEU+=o^@GH^SqD+"M&r`um1h)2::4a(k/,KSAlb?V^3Pie=`TD>Co]4Vj %?!>Ik(Nr7-go!HCT-g84,e]Eq,5Wg"&p!8`#p)(DT1-Kh_C>T"+^1XThM!fVj_(Dmqu!VSa0Pb5f6RDGgm\7H4%I'Lgo[o\c+rG86mX_F!*ob"dH2mpm!,[\]Q9(/8/Hl*XiXj8=Lr(8--LdD(/#WX+WTI`(lbuQVn %J6p0Kn+D=@Cpk-J:ObDp:1m'[DIJ."RGMTs,eR:g.<2!170.o/F9K[,7KS\p5+uC_RUm^0I*NLRN^_MHRGQZ]QLq6'elYeWlabtp %,RVck>&`aR+pDRa0>DP;25:LnjL"1edOr8R`[O"&&lL<+f/N-BIZY;@k>h>/K3m2gXDeGIH?r"!mN7ML(KBW-1]JI^T"@]3kMFm-3oeGp9"h/tu,MafC=d\(18f0canjTLL\sd>R1uFa'?'/>pSi`A7> %7_Y'"&g[0G:0V+>3AC# %-G^F.+\r;@;j9EkQ_+&E6"2"d78KZ3)S__mqo-u^=f7kF4Y3<8[U:5[rUgU^_DUtBmH!a>(Ap)6`R7bBoY"aLp@&u:X+lqiL2H-Y %>Vjkk8.;R:#4Ob/l)-tVR4a7im&17*R\e'=)0[B;&,D7L38QK;36h-Tm%Mg[P*f)uo5IhcA-V.l%[96hd>)k?Ts)mJf<:2$4oC%b %UfBeJf/$QajIn`!.^ecb;pB%>/jdG/@]1lip\h>)F3H+^\DKk(+(AooPj>#I(`kj(iSpeT1*8huofk-=2DXM+8'i3[NYendn!hqX %7XsfNNusrZ1nNWn*"\\BPAuQ$PO4<"J7fFQ-Um-NB6\e#=JV+S3d:>9P"MAtO]Vrn.\WI<`"KCUWpdr:bYec1s.GE`E`Z$0&^g@J %OW-2Wj`8J:'1=?'dFrViae`qaM:n%PVrU`X3@QF22rc%+YFMi3ccXK<>]HaA$mh7W2T(bu81V73Xggb@WdA_q&OP\-QbjK(i4mJf %\J23VjCr"gR>)&,&OtZM2t]AL9?C7TBe`WO-'oejQS..igkg]8Lq$DHn-'j#[M;j[HVg?^;/rS6$mh5Hd>CSm`;,ii(7R$/1WM4M %W.[@cmET#590L-Fr7\d=9NCdKXckDZ't;TN+2uWGCO? %AJYk\_2OYSN$P2b.nC/:[91M&/=Do"MFZ6@jMdA:DgHjer110nt&,t71BDRT5YuFO+'C2/!/H_[u>.*`7aM04Ef#4l2EtL4YcdGZ/\](J06[MAch.hD8i!e8#nGH/btnR"JEB^89nXTAhc+ %65m5"r%-e:>5<0rjUYN<-149hQTSq=fmsZXd)mWuaX#(,70Lk@"drnH^W5&%CIT_)JaRE55Pi. %^FJ,Jmefb[mi4"HmCcJ"f[TJ-0(r'@MWFdOPr/T`ASSbOc3V)7\[E:$e8cXiChc\sKC%VujV*)AbFIZ#&.#)"=r/WKW_tPEcC!7[aml^hU753eDek/_+h%]8\ZsEna`,P5#.h'bb;r(!k.K$>>*VuZI9in[MDPI%%ulC:Y>X% %Ggea>M\1@^!7MlhLuLuSK&+kp9DMStgCj#16"WsAIP@-mjFjPNes^Ml?-l:tFC++a>25uU*3J[k>j:I5\UQ.8]8"VFc%MEMKX]97 %_@=+[aFk0aJ3n4p(k0>Fe`qu#Q-g1 %*c)V+7n2n0@#JQ5$FY)eu"aD,hMc!Nc(JuhEX %](ZNoS/Kf$n>HF9AE@8.1AQRl0^Uit7'jI6[HFke]WuZ$8L,t(i)^GOfNn>$b[T,][ni.=g;@?0WEi'2D_L'N2>>>G\"Z@OfD"B5*PH]@iSHb&Bg#FFU/bRdBD/?B&qm1K#P=:RO/F(= %"hedaFra+spF6<1=plOWYNT"H=u+(P:??!!f=7n6Ja[fbW,"%:DoWqAldaa5/[9fPY/ThS1=mns\or'I\4Jq!K5JW][1*\[^GjCW %;dglpB$i<$^UfGn/TWdE4V94G7&!S3*LELq)dQqIo$$dTIb)-&ZbQ:kD.f2qS%kP]=1"HNhP_CJGeAS"at#N>OTd8(ZMAg(;s`WK %DL-"tDU4J1-[bt[B@n.bP$Q,5DL>N(eGn%1VYgq]/9+$"lKH@>0U!U4Urhhalda+K"Nl^hPZQu+]L8NLj)\! %r/g[1XVL]")1%h^n4%4-C/+;EOpf%bms94M+L,"jrmn=e%l;WMPhj/dT);*`44k_F%#B-)/J]2oc7ff\BBM6FGC: %2*@Z0cN?p`=>XI1IB%jioD9NI%8"__T/+=@gB],QOfFt)FcO]]h`>t$4f4cE0)KbP:lY- %Jj`#*fKoFtU\B5IfYNEb(G9kB9/#poc,1$+-)BD/>%qfM/5)[!(qPCOYB)ho"oCUiF>!1R*;%$E)ce-,k"F6,JCR*T %/Z\PG1Mag]_(O,h[_%sR %LU<2iW(SUD%`c2hmE3NeIo+O97DfE]Nj(\LrA(G#AEu%Pm8nI-0m!Bj]AT1r@]24$/iO!o_;'?HiGrGPLRD4^bZSh2o2tRJ)l($. %3@rAQnsWpTT3ioABdq7)U>IW0ln>+/V9$$YL^QauM\5?[gPs]FqhqT8 %(tSW5ln>+/Kr8]tfj>o-#Zr%+@;6oaZm@WF(d&1Lqho-:.B5f5MeIQZp/VE73+a;rZeJh@L\g:KIOV9bq^]U^M180Vg#^6DGhRrl %R5UWR>#15S0;Rrr^q%^Y!FD?3FLAbXTk11=[Z&7Gr4K$lIeQUMR)-p8_"cJ(4bZi^-@6'\=ht %=ISoSpHS)XDl8)n>8Ndn@3bSg[=dPoi\pW`K5:+cFS(2DqK6dY&&)=:;7V/<-hqr0KX-C1X/[k %\(rtU:rMsb#%B*OZO*@9BEr64>LAtE'Gs3,\R59E+0]Z4=L$)S\5?4c`HtuB^"HVnuMIck9jO@mTGY36b2'dd$%.W;eTH+"QZ-\u9$dW*bOrqG\.IG[*tXeh9\k0C)]sHNcB8$*LP42QXktF2SM1,9$P5r+cR5 %^.(N5_'VAS]Qf;+@'cWE:7d6gpcrctP\LWRb,)4eGohL[_DCYPHEb1ToIC0aq$`W+S0g(_!0^Y&m`Kifd/(u3!_bSs_=0KgWh8He %/m/+26pGU5YMeugYn+`7m)DhD"C2n^Ya]:Tc,s3OL>jLbQ %1B#_WBG1!$]n-u75c,b=iN!)u5^#N?Bc4hqj%_Fb8@R'pcQXZh8@Q5c,9i6622J5Ceql%]f<[^LOe+jlff'ct7/DYF+t860QU-98 %2*%RiQS4%`hbEjnkCTQBknun\#nr&G`("\?:[/a++eSf[6;@lMSjC;R3sd?(qDgEi3oVSVH3Ot0@T$*[oF)qF@"Y9ePHek/^UdWa %0K`q]8^8..pBkk@]$B4#30)S8-[!3q,Y8ll1UC!sl^%rV577i33fJP)2a"EKc41,!L9QQ6_p^I.j^#f'QY>3$3bkq_%4B1`kCrYd %^9^pL?rciBmBJO,pDE7)pC/RGqd9(8DhcY&N?p?<"eSnq#^EEQn9cN<"=PZ76W%D*0fum`os[Q. %I9";q!P"E/>5-G8I4+Pa\Si2*_h9CnrQ]^]cX60S%N %F+m[\etF9tA7mO\d+j="'A?ZR"1[ebW%]tJb:n!'NRB,7=D)U)Qm))@%4;(0HCoR\rQ3KAG=+LAc,aFs]2m%?[=87iThjBGfF$,ganBl0= %XCL@$#MkZ_WmS?QZ'2r:j3J;=X-6B,/?tca*%O?AZc!iWU(Rj&-.XkJ>6*_V4HI96HP8LSD]aB]H$Fr/ %ZogUlJ2fr0\jJB\_fgtR2*>?'m?P4e*m)>1[d9qTY7,&6AIXFr_Q)\[PtaBT0SgaX=(Wnq:l$,Y]Y4APflUP:oWnWACI05MK5V!$ %gaf`%r1OZ`m+"<]0;/t>m#N.?9>_rsfF$?9!CR^._`9@c*jNUHV[A42'&5#/l/7jsm'+/YCTgMDYlbE"[bcH^p*DSEo6Fnd,tfS. %XT*`=bLDU=D04n+Y@=O7BsAPbm,fe&rZ#3o"n.n!U^sZ@iU"n%AM0:g?ls*X_d6sHj>Q%<[]n&n/3pdJk'#V`+48Cb]0sec0L,kK %l^3RUm?VmVg:BGKC&M#?+MfQq=pmDm'%@\&CROQSibFD>O".#HdoD2!;Rq&i;dn:,+SKV52qB*tr"I1+r=$:o%ekrSEhSscK8uLL %D;DUl8'Tg$H5R/M(39*=0_0epT%TG+gtgdRT>M=KO0#!uji(s+ki5&1.Y=@;^hTfffkL4qa_RiKo2k%Ze!-M[)OI"LSTdOj/U4#: %mX+'6EH&`R'K%"nK+#\MSmuh]*-rkk3\Peu**b0-qd%XfE\j@/fdW*qHZ?C09+j\KDf=M0C>HTPF4lV %pma0FMc%/En#aIKiIL`P?4r$P*io)^%PieA51Fk;d]=](r_7]43TDB)n8gQ'NL;sgMHjaYCG5Dqf?\PM\24#JDD6$tHcIF8c'5<;,3?>qW.ZVq1MaXP]F#Wb&d3]VoGquLH.fL^lta,5p5`+`s8.Otmh_:34L %hn5O=qJ4E(*`EG0@@=O54cn$o\Lu-3:a[Omn7;'N&gHuRI*kDm4 %JSoQr6*lYSk2p,T8t:Hk+i;3K]@%s74QplBL'SRt?":3*X7XJB(nS]_AC8`0+@[-oLDh_L#h^7c6*nMNU9cF%+D-3kegent:aE?& %m`NlnNFEQEr/jE:,o/=1N%BSP/lqGa&m5@C0k\`2=(LhX@5f!Xe+[E\4tpVX'fTs!!qYLu+C,Ls"t)4ELOFQmP9< %iGhgPUP=;mB<>Wdls'%5k-$P0]gO;*Lg>19P'O4t.AW+D\V@1UoH'&YRpW/%O\Dh,IA2ND,ebIFD-X:212m\>WhG\"$b;-45P[\+ %)VP:+P@U#qa;Mm*%=GX7\3_kcS-(c%_Q?d6Xj0%)c"c6iBYbnnmZ"piG<>[7edFkW92C@DQd;bIO=R %E?j1dG`QXmr%r/D_kD;Sc`n'9T@UN4f9'"Yo+1[nlA$Cu(E-JpKSpjmb_q12*Q0$L;G"9KYPmspKApa_bQ0g]+[hcdA`JbCd"@2o %d-0P"p+'n!fKj;u,%U&u1trZnFq>#f['o&9%X*<&f0'dUoQ`-W-QZeBCj;J!3rQIgNDnC"rt"grTjMXf%8FaZ7q#P'CFts"9qW:k %@Sm2,"/`]/Q?>=R'B_KP03(A4Q8[+'G50a]oYDXE.PB;d&VNQ^\]]b6anY %9N"c-HHpqZK#AA1D78W_.cXu&%mo'c3`4MLodDF?V\tcM""+GQ3Gd_^<>O]ko2YJ#-VG`qIWdabgS%j %8juTgF41"8l&$sGqaYjCAj)&[gcrBDA85XpmN6k?$.H7PZV8]39ig[(I?M^BYS64!d3k@]&Ji3=M+'\jrkXA)0MF74fX:k:5Ir6$ %^Rm&=YD,7r$/@bVOA]%ipur/bT$!E3!$(o#u4]Xqa[8hJgOM9gctW\'3U1D+F)F'2sJeO %n7)Z'j"e,o!U`S3);H)WN9J=&!IDkXXqLT6Ibe2W^BmoWUJK5a-AD?[dM%m?O$5j*93Y3%2K]iOb01IrNos'0nE9c[@\Y89Tld`k %59I1*s3<3l:LMF#KDS.t@EdC-EUFq)KRs#S!"#!*_P$M;b5I6A&(:PRR-D4<<"m96;@Cm*0bZrZ+e(0I+He'MLa!#;Oo8gJ<"fK) %NJ@fsa22FD=WadQ_pDp>_1_>+J]fr[d&IW528U[KHH1I,LaL?a9+':(q>](F"15+('>L&A.rS7^P$C>_!\-h>Q_fq;5gu/=XK)S@S"3>ZP#hTYL)P9Yj)%Y0H4gU %7T!hX.@\f"d.1ipLKp<`sZOTVi+L %[KG2HID&WCl5X`&Qp3b3WdK<,o+TEmcLJ3shFhFB&@mh0Db!m`k1'"`Xh%qZdq[#!QS'9p#V1qqelM_hSc.F8$JtQ3*>0PD*mZU, %mbaqSQ*WNt"XtQ,fSNl9/tM1>d($r9PEZtOk8h\OgL6@[2AcYJH+-_uM&`tAGE\a*ds9fBPSgjH.M!0JTn_sIM7ZU$G.2GDO6Gma %$"5pnXhtK(e?Bro"R*rLDV/jDmKbaf-]=S@JE;;%P#0&>=QPrhjBX-Pc!TY)TsrM45YF:Ae,7qUh#`+KStjg?lb"Yh98#Zf;`F&( %&(Z5IY-8pIH'%>"XRgU$((Hq;W$j%BbM_MHI@5b_l")Mo=1Z\L*e,o5g3Bf%E1]P=3"n:?hrdF9,?1f!?@oXD8+r?`E]JU(g,NEO %C@"*u4:k.Z.5"!<.,Z5Q^]RI4I*ejY%8>Z8C.CAB%\>cU_*@`t+1^n'nR$FG329"V-GJNIfL71POn';t"bgje-O %r:NsF7$CE;J&k3'T,^-Ed=!^::?(enN0@pq"N,9n]g(c]Lm.%(V=`A2r9GV_jWoSR0I]bk7"lN28VDZ:mQ^%`mV.O8V*\c*HcaCg %>6[rlU3EG<@CGWj)G'SOlQ2)$U7,djdgGqH0&d!V;Ft52diP\"r3jJr^ZF(]AT<#j0F,tP-_^R8YBkK#0UP$(qloYJdZUH?.Wg3+ %ge+\Z>2'Qh9A*IEFr\C],T+%\m)_4r-.Z!2NMT+Y\;-A,W?2,I#58QJiQ]UFmrNnHRW\n+b[rM8eSZ/*EZSqPf$ak.mDia0m4YV3 %*OK=C6n]#=K,L8HPDt(i.r0i_W\9b+C%r3d^`VdR\.V69W44U^1pPS3FpgI2DX9c4dBbO6F+'GBr(ETbbqb4MUZL,=n.5\'VAe4V2hp62;7OLQ@F#)n+harHB %GlV[6Apa.G1YSu'[+Nmd^gt;ZqgPC5B=dC*hFaJSd=VAf;;9:DdpL@.4oKgm2HTQ1f8!#lo%V=oa)%"#T:IG]0mbmT'Aa\l2U'^; %OA=\XSHs*[8>+Kj^t!j%:S[bP!\H#E=8*H;q5P$5O&[[1TC$Ip8-nok3JY9LT[[,/KfD[FAeY)OQ#]aek[t3(9DhVtdo]K4PKl\4 %>%1g&3k?it0_J7=lH5VcW?=h3:;c&u4:?bRP)*#.iP:5#;P-'[6C=fp/8/H&2GhX6f4^TcZt>4(V%2g%(JHt+Pe)J7L\*&K`nP?ZHA2ZUXX.\\HPnB"f6+^M`G21lmVObKkt@o?.RD%/fgcQB"V+7^]SOTP^8G'dWPPt,`AG?rWRc,=f>Z&qJn`RE'qL2Vo\TUX\auf(Jf`Wp/PeTm*>^ %eUMM2a805-hs["V]DSK,qS[uB"b!qIfjL'PSBe_u(:^0WA1ERC/Bg_?pJRd$p2SG2I,@CU;?>pC!f7(5WIX`-*+E>(0k$%#a8_`X %Y\O@-2T+Rs^j/Lsrgl.&JNM\0]Qc%bZ_a8ISR'#X4jtb_,n$koph&l9:bV`=u[!i:lK8Q;OnskFMap8 %qWO@640T6P4-!;'S;a%.393]r+`/of,*0]ces9W@Mii@4jg=Y0WciBdI7r'KZg,PHN`sF?C"ASV&oBflgVT"f@PO=4d$%flgOdQfQH$B&gJjd/'IL.U=G%<[QSVi&D7gM8+[btK)36VN-s7nU\)lf7*UNO/Zl@>I6m.QQbLL)p,2BYH0BVQ@p`9O)#9].8)sBS4X!5R %+@F"0p_>V(k<$j34W4Pf-/Rl>rb.f7@/>dG)@)I2][L6cdC>lBH5m/)3rK8,7h)!6kpjs %)X#`po8[0LN5g.,>qFAQrb*:r8X($NoC0ejj&ZkgEPd/N;`)cl62QXK8W:[*e'\tk$RH^(jXpGD%uJ[nbStb\j$JUB_8MEc*#D4( %c7p\1YTM)pUN);XEVImXC,?FLkPWZ:`+U-\rSW,@X4q4^@Pkj#HFoO.P]q53<#hLf%UsS*VW'!n(HCl7X=c-#$SmTjX=h/8YB>#SVlkj(gUZu_\W&Ug^nZu-!FU2$V19W%R+nUX33?2Y2^mP#,;Qt %aapOrR9PAWF=CriX,G0b;M&(XbXNEF:pi;^"(\HjC\q@6"'Su87MdJ2i-Z-fPp^6"Bo!8YC/bLSFn,2N#I1kMN%SnDQf%)f1.krN %'ZfS!1:j]Nb[Ydd-=?QlmW]0S`9P3/Q_E8I[Z+suTDu+W>r]?YBEd-[X8f(BcUkJI(ZnsC]qX[g4Y%c*GM2Kg=9.[,MVtT[@68:= %.e(efCWSN9jf#QAqeu``.5MM4d*tmoW %$ZZ`(itgd)#e+6MnToP'D%eJF-XJ%J\ngX`NOKl3(0UnnFiHAd^Kd"JFC)8>B1(;.Hi/W"6N+Lt>>TKk4QacK)fL39j-)^>Lt3); %)u#n&,]tmt/slj8/?V=\K238@5]lL0:N*/V',g1X;/O%+/dgE8j86iLZC%N\4C6obnp'F\\bD;MRbB>/HJQSYlQ!CcKB+Mi2a=K= %k0mdPZ'`L3>OM=\%c.$LZgR'DU6nZ&k_jBXS5J1'`F(9>L2MQ:G^j&$:UWj7Z.@B:7@Sm=(Q,&_$t/D?R]eQ_Z]3;?L[Oj)HPnZNB(%`S',X)l!BW4U]+*L?6Yk6$MaYhP0B12HL77#fgt5K1-b\(#fFSN2tD5Fmi1K0O,B6_,G*^XN#&rD(%\euG+jL"+ZrrNt5E)q"6P<@FntB`/;>d-#D)VCNr&O,,5t %jr3s1&VBO0N%$/#OY)2r[^0C*5bZXU"4=r>au6]G(0t^a/fIaWnGNb*nT@W>FACR:Pb"Y %/7DC$/p"dVj7c4:f14mA92G.nBU_kcUY?#pRcAL)Utf&_+*?+8UYE$fXGN^4p!I;;pW;9l0t.`ij*.9_(Hk=5SP*.&`mE&#W(P8G %@NoJV*E`\5&qrt"T3fPopKr\i^[>FWF[2"_''oV[&iI?7_ipXTRC1FSbGZJ`j43jVVWAR$o1POtRa:`!Q.Fc7oP3rqK8a+i;9B;V %QQ;]W*d4XOR8ZmRDn8MRHl9u+8+\m7U7+U%*i!^kP?IrJF7-Ha7O"s<\,M@KPh=;PlIraSfprQuhFGp-fR<%e596WKI=*qrbjm`e %(uUlX+2Sb$`84J.Qku;,Z6p6hVl3#)T#>(jBU %]F.eQn7%>@QpTbGql7D[pS3Gni4jL*VMAk4PP-Vje3-$8Bch+rUSua_CjPUb?V3jt0-A'hE%L`@]"DrGVIEobLF\krUU5& %WX%`Pj0M95]:h`hU[nOlGIk[31EtMHGmbSf&:TqGjAF%QR(7f+^L^e5.adb[Qp5m4V3gAjd*G:BEh]D]Xb&n]>UH00rLpj!e_n,Pk'5-MeNseU$@dq2as+<(Mr'^7X$$(uTd='i7er %XscNDS53&!'1N28gjRJ]P"H>?.q4cC,fbenG0J?VHuO]a'kDYX.,j_fWel1e>f,Tb<%s^Q64&uK;CR!f.\NTCemlNh\Q/iWZXVZVTp;\Y^bVU$?W!XrP_ORp:,o(:>L.qJ3+"EVQ6>pB8g0ZO[ %2D=GN#T$7qg\YRZ_i,5NrdZp.S_A^c0^d/I,n(%@DI6rcKD"o9N)m>k7Fi>k@1;&)o*R86If;>&i1=HQ":92b_5B9cHI %1RV6B"dE!U[,_cu!@8J^a#HIe5Y2-[nZ[Bj>>jGC=@bW@/ZC)/er6=QTVTI!IRlYf/ZBlG2.'=V[I.WPF[$^5(0Z\$4N:;QI3/Au %W(3CPfU76IpkP8Q41=4qYiS!"6&#'/re\q]o$>E(!3lP%W/JWed!9LLj4'_"IQ8q./#iN%Ha9[,hAB=T>kpW@oiGhn-\!dDB83Mp %XG,-i(*kOTEMB:9lD0Kq&'`jtl0mY?Ms'a_Z-TATWEdVqtVu$cV"X+Gu&%J:@$hJO+\IU$nqoO0crHm?rBH_iZ$*jBLqih#?F?b>j %)?0#PqV1u@%s:+inLjj@n'buWDad"eP@O-8!>hmafg"!b"Do7*J%GL`rO@]iQIP>]s6B#"qtrH7M.FZ,VPDbeeap#$hUoNS8D02^ %j__R8r^;[FZd5Z&cSpUpW8'D`j9SZ0c8n%oo5hCm0O[+AN'agDcKsDc^IY/Vr^e]\=Y=CI)3X.OqJW']HMO19hT_W5V/_8\nRAK4WNf;&NID,1OJM&r?a83W+'$]p+Pb %JBa4>Q9[#ce.*.Mp/I?P'&i5Pk]Y!?'0'%ZW-';qSMDJpa29>- %IsARi\t(Up77OarEf3/p>p?l9gk#3R[nB,uRm\9(Ge6@c]?)4)U\+a[\)Sip5J3Nrh>V[2M'e[XoXQKJ?KHkDM%N$BPo(,Z7Kgue %5=m$7)7SZ`'m$03-%uJY&OAjN(_S)`"AMLpUlZ]R+ui`s9*kq$=H'k`>b=h`E0ib4Aboke6@tC/Lgf]YmX8dm_:_05cS^Km0.A/; %r(3ecEu?.;@&jZLF'!UTK3/HX\L(tW.L78NJ*uUZAjj_1]+XCX@\13#B&R9R"Gm^VoLtPe&gTpL'ie^6O;JQt5E!19+SmV]9>?9* %HG[`2$$mhJg["MZ:=L^Z]/ZmY]qU6ZO6(HfH4MH,_&eXJNMTNH-YTUQA+V^P,9k$,\6%0RNHOA0"\TfugH5?"c:XEeH=X1f3p7NC %bdL9+)\HJUq]uDu*K`%'KrGtPHOXWr.sSJU\G"V-`qe`)nF2\fV^*]?ka)sQ&9R"["atEC*QJklUnjYj:(VR_jX(00Ee5(m`]8L5 %m9fAs/a0bQYK%n"/a0cg6aWNP._B+]N+bN/M&(2=V5V6h+`Df\[&.C5A64lO.n@dA&CH*4Wus\RK4mR& %^?.&J%'[Ks!/n+;VVaAd>Soa087N5A(O#GROt#(UNe6 %Sj=pd0eANY5A(PN1PV_PA(<%s(K.==(0\V/7_+o/XK8-_h67Iujhh#3cs,nlD(B.)*ID<4G"#t=0"c&O/t$:rhD7iW)mmn[sS8c<_?dt/o7@nP)e1J(A^i0)H]NVKgrUlG790o\Zj\TMPQej]$,agIoqpC>@p14,:puk/[NgM&kH[^Tj2Y3 %)_^;Or\DYJOhKD`k7f6bKnPamJtCPAXn/;"6aoYg?-\^n/RtbB(lDk_\.#IP41t' %S^)62\4"*^pX.l'3CJYtH!X9rXgFSL>A*?qphW*Wi0j@\26g%l^3D!=]Id3B9(07;3%AK[8-m+2qgT#r.2@&Xe?J=! %;kWfjP7>3Rf.>)6/FIG_"glp,40\.]e)Lj?-XQ-GY5.l3J8]A`l(/Qi@H=<]r&u'<5B8_C$FGD-fDc&n;#jUkY$Z+>Pqrq@/*IS1 %HACmg6JRBG4JSgN-"idd;E%,JV&*QBb"1#k?_9ee5IBVg[CH&Bg8LZOI(i).Ih[uff_>Gt<.tY*,1]ENcVC1l.N-X;bBF\CNB."2 %emmRb=@Y#uWS2s7XR&"ED0[#u%BKp/$l9AjRX+X;,A=QQl3VH2b@k]6N6lnJY`CF,jVlQ(h6MKP*bh8hkd>(lNKlO;1%,5:"%>)? %BW`%>ps()/C2k9AI6;RK$etm*XOd9&dC?>&n[3Cb!<4C@`uZ#IFRU]5>=RsrMfl2\jQA2[4ZlM/kt-^Hfm"W7rf=Y6V`^908+ %O3nXm?japV`udupS:3Nt28h;n(egX%*]-;6@#?C_CkAPZpo(S5[I*6b%B5Z<>qBHrL%!b%QXK@)(#2tF/m(fQ)\GqU3f1S4$AjQG %3%kD*"TtK.\knrMW$!u9_$aEbU&pQ=L/dLZ0C/#=<0gi#*3^=uXiG\/JK<:VB05-OB&cD@MkM'A>[8mq.h+Y%SLAeEY[98lqrINQ %"2gDJ7[%d5N3=/PS?X:&Y4@FI*&q=`0KbOZb(4u@J[5d8^iSWg^#d&ZT9NRiN7Z248NG^$LK)uVaB=EFIp7KFup\/c%f+Wos0DgJ[+>_;4*l/p@ihE+F5=I%1#oL#oM>Y6k=7="E> %h$XKt-g(FUXlWGGm)8goRHp%>@OL=!708d)C4m4GqW9EL$@TcI>=Ln3b*3AQKO+EjL6ANn.: %rN9AZ9[d-LO+!Pj&t9V>>,rkS[b/lW"MD_EsRQL*$hsn=YUILECh&e+iK(CG>1>Y %K%PpY@W*'\&;Zn@Rj^$XlpM7DjSG['fSLGgS06ekZ!03$r=uL&L'bJET:*b6rF;:DFOH3Xbpmi&kSFAB_ %J\b)+YeO7IqJ#3-A!0ao)!pr.rJkMced#WfDs">O]mXeZ0S>ok?jC%4#(rIA@)njm"9prY^lBjV&fBtWUC.o,1)TA"ETQO$(1FFs %I+7"GNW.YPJY0UZCD[otG.PA@H*@nulu[SiP.M9:Yg_tkbdrqP@&Ma`YTB"E@&F[jE?gqU#!7g[^9"(go#8H=D*jK':+*:+7(3:' %4.X0I'6b'+luW:jIZ$d*YgWpF80n:h?,(:WC5FXsklg]_g3bRY4$?FH.S0hsSXq7J"C3>Y4+*u0l<9KI?rt4R?LYE6hJ65(#^`]A %m2$EA=]%R1mcKVH@-=4r#A:9i@tjClPJLY)'A/!uMCusiNPH$"(`4U0_;)9H0O"&G %V$e67/TBPQ$5D@#a/uK?3BI&Nj-=n89:TQEh7l`mj:4t&8d,XaWqhi3>Se=Pe0*?Zgf9h)9o!gd%:*HFXr=@=B(k`Ndd)l]B?1Qg %.0=BgNR^t6B&9@]^\p;QPA/A&WelrZ/)nWj#5JDWd82?pGd=)rji5)f%dp@%H>64R_XFM0H>8O;k',@1QS"t8GhXBY5+gfHTpC)- %VXZ[#,\1jqbn2A@Ssh/6kMK\a^f?laWM/ulHd_jV='X>8tV@=,joV[qbaG4X\>b?Rq-(-]PKqc=2QQ<7g02&S%,cd;0sl2BM&u?YY.O[#rZ1*RA>A:laa4g:01N %Wp0'M9#k[GG*+]02&**)\!IkE").;4X:0jE2Ak3kQ+OCI1@WB7"do>Nsc!BmtOsd+5T,;3;Zd#[j %4fk.GU$p:_oHk$GD=,l-8BI6uD/6r5g[u5iGkOi5)kSa%nMMYENDCA#=MIC7j3n17U*dt*4_^HsMAi"EcQ[=&719*QN8,aC[Ag** %DY)IQ.2#?=FkCc)$Tk@K11t)g8?#Md^d2-2;j!=!Uao-_<3^M6f2j"gM&_4@UhEA#QmU]GN*[s2_R.fC %7rAu(e:XrQ/qo-phBh5@kmA)I7qLa>l"aG7)OHQ?Uao-n'c"o/#"dUl!stTGh*J[E!qO*iM]afK0I+%bjbHgn[hTE<"Kf[rANB93)EH"*Ag.:Ra/RT] %ArufHC+25;73lD(Bp?TbK[B.:7)(9#'a!&+F>B?!Hr[d]\B9)M.3s\db&Z3-::u/f.EcEQ3Pg((aE$"tS/GK3O#hCOc[XT`q!KV] %QIDhP"LFVR>5.D8[b%\$&tVXk"''rD`/q9pG*3M$TZ8"7<@oXY_q7c7/re^@Ts%U8BkY^lBt=1RW_?)L^0mfrZIPYRYA* %?`FcWP>(8E97P[S^o,&h%?$%B*m_@&T=j=;/e`/=;UKKnh.J"G1h+%^K=0[2:1#kqTZ(k[H:Pt)2'B6hXqGmR#WQ4T\3KLU) %k?c&Gp2"(H^'`QHPJtm=X$3hqkKD5elgZe'_%gN1$k["5Rk+W)U*#JjT=I-H22F#(/kJhWidTM=^kX;TYR#l'7p%N_)G7?]98G@I %U'$*);WeWs0Ja?Y8=`7i9j5`:81mg$FK1MB,aWX-U>Y$u80qP,INrtV_1eKY@>r]=JnpaU=rq$!,B]TM'M&o]N7<+UQhXMu$`%-, %.?\J6>n&bkkP<[\@[l_H3fi2SQ+6IK3fi49?UarbSO[W*U^&nNr=``cH)/_1\7SpgjG_Sc>0A4Pe8Z-f\OPl23Ud\eMAjW.SLM'd %LPH>6Z!GO&;I"AlMPg<%V%&tMe@Wr5U)MES5OW413!,CLEqs@rYF(9LQ41BDkA=s=EXd+^7n[TDWEC-1XcjWeDVA-uEHkT,YX#)% %%6**"p_!JBOtW(qk2GgC"jN2pNj,=!t$Q_[O/JAl&8P0,iGprUi5WZ5UEF0"`"P01lii@627P#Q*P %4r%)*m:nS89?(-OS*=AEj0Ed+B"-O,J0!E^Y,U4\3`b%"-*mOg](`\/qhKh:0JCLd#WH;%nToP'D-[S>Gf1-+7]LU_fNB,23>.$Z %/[3_Bh`Upjf`VNd&tP`_jk8#R2fYS]])nB#)dA8XOnm#OT>UHbcRtsbK@Rti-P]5/9TipePo4lm6^\g1Q'iFG?>9@C)r;5AB9TbT %a3)p02ks;LbBD/0o!?f%p8/&lC@gD.^\Yk#a%u\^(!hmD'Nto#$Z\je67\>OcZZaHE&h.,G7def\PE]0Akf-,=Rl4'S?3)0Phtdm %'j;#$$gX,Z6E?'2p8K[FZfRVjAJA<(/J`D=f!P$GYRQREZP7DQ73n58LROjAk%>H5$o1IQ-!$`PAQF&T:?QqeR-KnSN1B7P8?#!% %at,uH=G]M3=Zd?/_4<001ZIG3M)\_jhDgG?Wg.bA!]jPi#9-?Moa^`=RE]'=_sj$jR(Y'`B.Lc'krO=OdBo3uF^a6JT-60uO-c6/ %Qs@So6?Fj7"g47OmmNWee=p!tSZpTA;'ltG]eB(#]p1Z_Dtqaj0XW65"2U&nliT$5;Z=L\F)_,&\'QN&Q.O$TlInpQ!3N/X%PkjW %/MWIr"3SIk&&MJB4#,dimNd1BH:,jXKXV0Q*?uUG^':1qV1%a4Zg'ID]+0n8gXlrgT$]I,G37KI.frQD2=Pm-P_Mb&Rc%((>W[_-Hp6qV1pJ.)(_ %pV#7-QsLmeF?9.ldGkhAeQ`!SdViLCnO`lNX0:*&[!^b&4B:eg`UY^6IMVZjJj.btmp<90THtpr?D$q8L=QEMg!7j_fs6npS_Lh8 %dr;s+Sj!K$1=L-+p"85JG@0)\4(@ZQVet/T"'`6aFu0-`Z/'X-n+LRh_HtkiB=o"((*oI,/`u.gof1[2r)\q5;`p,9NQ'N;ahqYs %NBcX_Du?6C[Fp`A_GJ"k-I^^G\XF\d@6&bJGU3Zn("fgC;eK$;Fid6nNk4lcCfsEC5U=$p%#`'!#^([)!]a816W>uW_'h6gPhrr#@lFEBpQ%1\L%cPUqq<_[3c?LUd52Ke=&5,<])\H+kEHO[@#1,1lU0S %?R=Kr1n/Y$Aka0Z)L+b,baLA9q3ZSX+kEIJE'/*u=DH9eY8t5SgpdgZ]cUQT)THVZ,?q*(Bm=1uXA2>EC%t'g-U5E#1=VaL/.8=r %8R^/FiGV;-IOejVUu?GVHGY>>PD7[sb)EQi>a'nD4eO;mX\#kk9?8u)',EmD2/*o:1"dWVXX4L,;$Yd!?;9-c/lC2_g79CbNKGAt %bF(;ZIoj2oLX&WrE`X0*c!3CBMs,TFbPu'XBqJD$?i'T\cse/UGGT^grJh],/+%d5h_5t>:B#05g>B'?^KkQ']@-\%V>]dR,BTb^ %[,bf4qR7tLC0+RT51H6X?%9K7rcY.:m7R91Q1h[;m;H([hla?dVQR;Ph+0BM]F:/Z1m>i91o/f>C9!F`BLoJ9L!r0!5XX9%BduTu %(*^F6>!n`/e*B[D?B"CZ;^abF?hN%>I^JD%c/1U-nC$+f#aQ]gY;/Z^L6j.'e$W5>:`r9<9@"3EV^2T/h0h!N*2.Ym:q6/S$Rei3 %:f6U*@Gi-!G+PDj#T;j'e/Y1VD1"_EU5\,jSHBI %kR/\AC%gLlCOk=oGa'-C.c]5q?Q80pgTt'8E*Ua'(,XXbdc5qNYTOM3AAn`>F2$T>$_#0ihmf?H\.[eQh,iooN@*DO\0/bqOr,"B %_Lbu>m7=7=6L3]/ie!c+i!`3'5;"@YDLNC''K),$/<@BI.%4tY;jP"'SU%N+$9J&(>,B:ro+[g#6:[?EF@>J/^<-_i1@Foh)IJQ/ %dsCkuQ>UVW*.OGr$P$JNQ-bQJ7!e%![/XiINGFHi]2S3FgZY><]$)!AYrHt;)gLNJ$-qBC\52#WP3YT#HX58g3La8`j%SLk/UrL" %RCL0&iPUdog\?/Ck["cc!;<"j[O48p1E/BXZ+3?d2Cu7jYYr?-Z9<;ea^BJfc:.3RdLp!'I!;:=:)r'Ik>_H@C&:tEq6dkDD:gaQ %dE`H^m_6ApRS[Y[mI$I$Dh#@hr.@4Io0](TrqfIRnN=)tm)TU`:Q+&C&M9V^8OO`SHa)j"`;H=:8adTo%l't`1E'HH2`BDjMdaFVi4!!BSBX='t`LRLBHpSjt/b.Rh9bB+`N\DE4BKuoX_:K4m8K>7^lkV^p-G"$hN;C %q*Y.L?M5nDGGXm>B$o?.As:O5K2m758JeLtW9NEB8"Uo8&P/VBM&XeV'[.bn\j-%\#fT*7=5"TO3),kc[f4Rm_t)TdSL( %IU1X_n^Al4?cf9Db5_R*-Hm_(95*26Z`dRRmb)SK+1LrYU8^!9F'6GN1pMY %K6'+/ph-k"%X34I:(5UA\?HVKUfM12Jg_]`43B@&'$Q3k@rqru@OA0O2q(($';P=X*Fq5db+,dfa,)P,C+n%%2UPs%]5TJFJeK.; %CRP('_mJSFJsB4>(j"#"&Q0C-1$4Sf.V[!lc*.q`4Y^L,*&b4MO41`FF8/id$NnXn?]`N3nHGB!W\7T)gZM%DG%AX]&gd\)h,"%. %8+[%TT=n=upsOM%de`-uGr!n>9*>.dX==HgDWR)qi<%9o%(;mb"Z1FH7)=-T'km$j:C[nKNcF3=MLjnnoZqA46#DGk)'r0[es<7f %^aP=TraehtPfP88B9n>$&g];*jCr)"Zp]b0'#>![1jD$#PXnYS>G=MHU,Z?;;IdZ4bu6i8r`U]u%1iY#-Bs\KsjY %PfQ..RF;cp1.jCDX`h'>M+D`qL'`jm0V?ZUgCcBI,:`;R,"eja"n%2`:J7RN.$9N<-WblU&gbs<"a`ib'^p>n(#8[0'^p>n %Ps*)HY9bYAck2!"I3)6#:f7>WMRRh3Mge,r\OrQ'L6k^E-*\-k?"9[6.#Fcske*!lT`UKG`V80(,I8)Ah&-eRKeiDBrG&&"oQKL^ %OjPcte`P'=U4KmVCKeM-[2mfF%U\`j++DB18:f1`+P+>`WB?A_mKP9h4h=IcQ7.<4Q7S,gnf5ps+rX>u*pCGXJY"?un)LF6:HMW#$"d %7M!sC3)b-fN8Djbk*OJJ2%4CqO-%c\rhPR5T&6^D]TaK;ZIu%Cncmop1OA7Fk"+aQa#ZG]a.LbC\E9]"oUq7@&1tr\%s$"bo4$/r %Ut-*sS\,h's2fS58rl33-Riao-_mT"]@':)W-FH_$jl %#@`eL,5gUB3g4ai!!uWo8VE=sGo@^3'a,+j*Ad0tU'*Spa]n!qIg4b&WXcUN#h;kb8%O6@<&'ihO#d@DccdaE*7:+'[t`tmYb@oC %AHOG?kc_A$g.J9$UtL=pV7bMXJ:Ikdn2(?@*!2]eLOg8'J7lnV0ED\^C,?-d*!2_K*":QB:gW3SL/rG3utA>:mKj:Lf7WKj/u=,_ZBc6JMjG]IW$=YhZVBrQif5L>Cn!>_:#O^a6:i.`TZUjN>oolUtobs-5V+C(1os:d%I@-+5X(amX<85Q)G7YX:Ebm7A %no8"!Xqd[8Q,6B,CBR76OM$1[!^g5#D.#R:,Dibg931V9IsWUpqdD,Q!T5'=`\m+u#Fq^']m]WrVg*ZVi9li% %2hgl3\5QSjGCJ5kCQd^7Tdq"-:%d=Ebg1(qFdd:2&h"sYC%?1ERXD&4odYXo:6+SV:o=!0.!FFa:buaVCb7s=T-+,cL4=Ft:4(k$ %!>#BLan[A\Vk83lQFL[qjK-AaeL]\033d/]ingUSI-oB`.IS'Bj1;4tcP@l]oUirE?reTkhCA8&%*cY^19Wm?4,mLVpQF&M!Ba!,W3HC?e4!&iPc?`^&Z18q(&A>Q9P3>M=kqu/;KSYD+U.OJpeIl^3=Wd7+;fcF2nC'h_mt8jlj`@\h!^tD.WIpiq#K'eGX[5,%aUf %:^='@ELASccPH/rCnn-!5$N8ibr4:um^!)"[BF'f[EhlNr>KNapXq$r?_aai5$RNpB,b\$P5B&9r%VeG"Fm$qjHE`&(1M^#kj81' %g+rBT?D.o+X2iS"Mp=KmU*?kg(@HT:TuA.\'QKg8mB_KW[C;,%LW$$OX?Kk'QHUIdMlsH%2*A%8^%-i%A/T,T?jC"ATC'RD'ieI[ %XVIZ';)AODR]V_)B+$^G%^d%UcZ[1kF#Vf.pXr`Abl.tJ)Ih^DE+ShB&q&7k3I$;I]d*==hCs%0H!hddQQ#n^*B_1eO]=0gP[(/2` %6lhc.a9\QcnM?TsD3[oXTZnX"(MIV7(ird^D%7X;21Fc@=YCk6ra2F-(fm4ef!K%+)"l47?lpZM/i- %hXjS)@Kc4g>u?Y.R==F,DJA.-r2R;OOaoY5A-O@I8&3n,I:u5MIE&-:&sCZ)o3"#1brAnc+i2US+*7J,\N]m!!nr$$2BP9QeB=_< %F`+:+dH9ibo-0Pq-)A=ch\4?#Wsg',/F,D8l$P`AS`;WJa%N11\Cf/kg(;jRC$=MYD&\IqK03>JD/V^:Z#2CYmRg[On?I`Io(U5( %*?AsY8E\ji@K"&d6snAfAG6Wu^pR)&iN`rho2/@lM4>TZB3QUY?bJkY1Rk9]%BG7cO$12c0t9PZ(R*[nA>[knl!grfQkWQ-MeTt7 %FI?\"3=e3D8)4rIdH.FJ"M:%5N@rtjP2F5hWs!2[L>V:U1:j]"'u]Cs1:jR_8q*h!bNNtAV/]XD>Xk'j:(CZSE>`&>)URd/1:i]1 %oR!=_`FX-c\iI:&/hWnl$#4U&)-qIjla")K9TD,6(RNOGVua"Q/u-V>Pl[s=/u)':"'Aj"+7!-97Md=M!a/epRoi#t:;SM-fcdC6 %Ta7(Ci%8'464qfH!?q.V7[HOIjL;_1G(`R*5ldsDbNQ8&QMac"QdLLMM]c%:QdGt4b[%TeXocAg`FX-oUa(>h %Mp(*]2Mp(<.jSJ"C?!KkNgftrClJaS19`5U>lJaS1VGqVCX,H;KL8UVq=C#0$(UuT/<`ete.+9X6kkr^A\mH;f/J2X=kuc?H %/J2X=RXS`8[cT9p?'mUTZXqGQY]s@rcISeHGI0N_lRXA\#KbjnpgJCR"A=F%r0pQgN14)N4L(VUN96nba2Etl\ZVML]l)95?lLY.MVOKC8?o/1l:U"M(**Ymp(Rr?=be4d+Oc>?=faM %-YOM=5Jq6>Em9Grem=&_>kuTAk=JNlcSpVlV2J4IB0NZKdk[K:90,p,^0VJl>eOJ>(b^7^MV51<.JiW*;!=7lI[7_jIX_8BZqDUM %7j%X[0+JW)^iYp.*tpBB(b@=R@2:]5*0s[u]=m<=H(e61YN^`E)'f]/du2RnjZX8WM6P$UJmC>_-Yg[r]Aq'MHLI1Pq@sZ_S4c`T %>qWV,F_r[p=p)@V22=(c+6V?dAHl=a5mPf,S-71(9'poSJ8P_sgS)I?eb_R*E2K;he]mL6P+,)7FVdaj;;LpB\[*?ar[Ps%bZRFSicQW^Qa)*8[*6+amCU,pI(W %EjK^GRn-e-[]*Hsp@_dQJ):;+ib&l%c/0W4YLh-f>()$a_n^X/[-Um`5Lo@77#sQ>(@hFT`i5thFO"V=*TcreO8$7H!#=Y#CM#LA %#:I24&%-HcL!XN,@88qo[g?D'T,El[cpr@?(d_l##$SBB7#f#*;2[*)+mRS(qXmOJ66S`eoK++?o$9In+,02FZ[#cW(sV\/>27'1 %f9"jE`5@I@kZ?r0('$5#iDX")gu"-lMQ4^`*r@;C0`ZpS'bVc]"OYn8$OO71$nQ>G7*o'g\q($,TRa@Pe_c.`"rRU@`MbJ0H6[XmOVqW=dajta.T<=h75A71hj^??ATtB'^<'8J^q'hO'?m;CX;id@9e_oSU1NdT:(&Qd"3]LR(Aru1!t4SicI?@G2R#m+:!g%N0SS;%.'$,&Tn*Qr3'!`bn;W99X$[G0c?$TjM=SffaJoMKiP`"8N#SqlGLf %!YG)T6'n]-fPQr# %Q"KEY/MFb?]*bns%n5TEa/@PZbl-.%g-%gdJ6p%OW!#1I\O9/1`2pCS;9D=g8@btZUhG_sBE8BsEaaH!I!CTHF(7E=CQ4"!sZ=A`469ENAKPKd3f]I"n.[r()H#K(5:\[L./YW73PjPKLWMV)&Kg'.Oj),ZpL&i#:a7?jb[= %bDNl=3hd_F*CtK?W/LPDI)BW>3dG/``Iss'0'Zoo.3'u*_V)mG*pNekgJ!Y]7+;Cc#q@E';K2U&X\qaiGU[fV>MBR+_6A2$4,Nu` %hSm_2aF=E_K"uCCn[%S]J\\\3VOs^I^6XV)(0nst/9_[j.nHh(hp3K*9PmX4*^2dr\8[U7MP#$cT/Co_MmX8FoGbZSrr\cVfECJQVk%F6>#@l%4VIK6&oR77b5?K!3$LM^RLs@5!IojY#P*JbR=,EYfn01R#UU77cj<]aG1j?,Y&e %<4\jDiFhgbdSI?5)d;]N2+?mK$Z")rmuN>"(#.ot5S'OtFQE:]DNil#FgAp9d`,pejo2TJ=f9\EPRlg;?7!-'&-I?T]@8dP^@e4Fg@8k?30.\]o,3X2B>F%[!41^T[ %d1AIO*`'XdG'_VeT&GsWq %+lsHAKAU%"0Hp9mj8!fumY[()iZ359gtS'?`Q`R&?1#5b=^5)8IpDD'pRT6$jh=SC%hkO1"F[4m %hn)[o5M8IW0aEkrHr7d"1dr]B5Ptb.)1\3[V<2XX>g1GB)G`X]CAF541]\EO3sNDGV/>c %>9WrcG.3k=LXuCm)O]1sMC5WO:ECiM2u&$^rPfrE]PPnf;J#XOe5C$m%kh;N<9I0B?_dkp'OehpfNl\Ah[l2!;^<9996dL^WkVo< %gW/hUZ:e!m))hoEpU?!08tU@l'l/;&0?XjI`A>4.]F3Tt"u.6ZCB3]bM-#,9'e?crj7Ru"`*%ISQ,r4_o"2=17N['bFeI&iU5^MV %/(X_K;*ZnHqOI$8Ve%Tlm'4!c.JZRT:U83CJ/\@rre!#Aendu1tW+#JaqR4g:+7`Dp5!CF#-3]5r %oK+*l8b8*s:%WA\WqFTRnfQ\W'YJiYY9CHb40k'%IQ9^,6R"B:kU3@V2't=4kU3@VWc()dJh&;6QP0MaYhZ%IT;7)1_OVB7,gjr/ %e@XItjOVF,Ot*7[rA'$!ne3g86HT_jM*]AMKi_4ZR6fTa;Uk1kKCJVq>oG_^bb4prc!<;pbb18\;;g?P$-I/ %o[f"PAJVX-$4lM+qfbqiqRrhF/u@R>u=Am*V17\OBt'.NrAnZO=bBLXXu4Qk47X*KDb4K#V3%pi %P08J$Bj+>0B[+]$]fV;!1ACTuK[r8Rorsm?mb6FD]!54^:&RF8M=Tr:4Qd52me4!OVo;%)*^_rS,DdGJ?H#Un+Xp8V!^^6LU@D)% %5S;O79eWG7o]ibR7q07Z(CSdlI6^//,V+tWDJ&Nhkbc<+mBeGWP]?$tb2A-l_He#\@,)DG1m;2G5T*fB %UCqZGb2q(1Vkks?8/.+=-QWPX_%eJjpgT2TN.A1M.CCUD/<(rVaP<%-'J$PRpACQl*_]$)ShP)fRPqOe(D %:k=fp8jH'\%-FmqEo$:$NFe[T7e_!:YKu1.Y"+h9g %C%`@jr0":bi67%,`Nhu*j5WD:=ZB]pUS:]\i3./%>ncBkXItM4h,]^l(DE!`hdUJ"`_3.lGrU1i@FrVR[=H4j$iSbL_2cW&a$W'a %O<[e85+%9drMonMd?<3ib(Ie9pMHa_K^3o5e!E^'!bH=B.e$aHJMO_\'fn"a5T038mZCK29O[uu"rAW(Q%n9!A["cV>c9NJ9B'Aj %n.RRMLNdX4Q>iN5>/P;81AD.nG]baE;G4Mr$_J517L"@9QBO=&XOIk8e3[>TI\i?LTpBi9cmuMW$alMl%)baiiBf-S>L'A#&h_[S %2!$_I[5+5H+)?%rQ>iPKe?P`JC'b\kJX[4:;dgJWiU3TdA]4)30!c=.JbM47;G7"X5EoS)Gk-X=/EAA3!a]59oL-07'b[ZCKj#8B %SA1#MX&)Gd"-sPr,VR8n>)JtQa]>>Dp\rr?/`B#JhaTMBV:IlY_(>[Vk[o#M.^`s]>ES0('::E8H!28X&b"N/f?X8=r>N&jI4"5D$SeMlHV[M3Zs#`A+4PS$7@MY8HjkoY^gU:!^.^aqHX8.s?12JI*Wk!KW+l&>\PCh!A %-I#UXD)cQf!h!@)!23o:;E-+=T>-mjYK%7qoS[([loE-+!5Ym:\p5qJe4sfW'YN^:./ofF\Fl>+P:aEao3! %Z.oEo$iJ%=^ZPYr/h,-EGTEbN( %DRBl]+It=icfDmC$&nL,1*HO7)TlSb`3E^$VQ(l=o-:%$(NpOh+ju5D`4RTH+ju5D`4j6Y&a9N",SMRiBo$l*5(Ru6Bu)ji_I:"\ %/$\X]51I.7q]Sr<6H>1p?l`+:.&t3n*DrGrX7:.bK=3ruh#p:r)c<4UWl/9cnJr+g:XXi;`,hs"%+Z$`M5!U1U_EEXU@Kdug.M5+ %o[gN0:0#b@S4$[O3`2O=gm-1VQUP]QRn[^6&UT$#lf1Od==S#b=S9d4.!0lhhtor?$t>tY&dt=;8\Mn,j'c"g8>0k:Vq<[Am?>DG %5$@`iY$Y7R@E(oo67KBFo?6lq6;uZr2G[Q/^YAW^nG1p4(0@6-BCUrs&]pC5@'fkeq1iS1N&!$jB^Dl_ba6Js_jCdhL]Pn7`p=1m %cg5bAF2*45]++__p4ZV.)>rRQcCe\1?<_X@k>=$ZKH;%aNJ3lsMD9H3T=_^^k`^8.foVKU`G+rMXZ+#;O]6XP4-J<)*ta(c/58TT %OQ?ndE^t#[)A$&s!%`o=5!`_)@LfU^.2=d]>)$)J;_""!-NRcR^J!!rW#K?3StET&-0]^P?A1prm[@C;,X&?\r>/%O^ebK&Uc86D %s2RZVLZuQ!]tYi+IuL2d)\?EXQ3S]"3K`D3_"(;mHJRn:JY\W7K5$?!FE`Mf^2%(CY\tC[ql[WO%8B=0@0u_@L.ej6+F9M\kJo#T %G/VpL,PnZCVWZh6;K$MUH8ABA4_jBojoB2WK?gfo:RqPE%B0+"Y+h^a##l+LTHQ/**GL,sctT\l>@)00YE %WAiI`PFHpj9>-aQ3APYoI]59IOEf*^=ROH&Z%c8AeD-O#l4'n,6LIR[f_\iF8=:iWG)!f']?Kk7cL*&?S\'@B7-HYNh7;jChe/?) %o'X;OGOG=P':J;*njJV1Gp7V^;^RC_bS)FH-Ai*#6uFQkgj()^WfobJ&==i6S[.cj5Z6a$*&CX0'1IBA6s?mmQFQ(6XEPt1U1iDc %_DY0m.;7F'Odp\@A^3\@^j..!:_Rn^'De;e]'qhEULf2!lj,RH"?\!@>(nsGjd7HZ1J\]?HdJ3/_OhZVU.EQl&^O3jE;aK#54V+( %S9Z;oV*ph%ZHOQ/4UK=GRAisP7$6@h&XWV/UTn+JZ4E"LB7 %CRr\BF>H5+Z&KAn\I,\g&k7`!(lNE^ko4F,VqL,]T%SVE&;u4?4O)r/#E6nbC._'U>;Ka%sZQ<3?7sJE'()WjtrRNu2Re-gN(tpP@ckkXkCg %0[_8!aPe&$(>g?kpE6:Z/\X^`mjW#0p`=g]N8m@r7[=hI,DlN:8Zol!4^q)5YkuEt?M#>u^.ABg_d8sop`:GDN]o01MHh?]*.;9A %'Y-UC3E!'Oid8W5*f1E6fM"g=OgB@]@N]]`]@(s/-%X.b-Us!^8Hb/C%kdrP/eLJ]]Q""1>U"u/;2H]AM'-h\mn9P?q(_J[b=iI^ %*Z'XfoNuuCj:Xc>/nUF]26S(#FH2iggYK?6Y=4N"`A-u0K?j'*?!)qFXKEREX,G0bZ>pbedLi=,gYkLoB,_uj!J7MfZ\a@GE=WNFt(7!p9rD,n$Qd(S0#Y/C\d>&F:RHDCWA=WU(!HCe.e %D5:@8FXpnf*_A\2!)CFW$gStC\oPN^Lu=..<>U6HP6/iu6Q?).&m[&c3\F+SIgG:)NF8[Jfk$G0T')Vtu??c_S!6(.nB&F%q+gojJ4s.Po<&HEq\H.VX#B[@RbAb'okd+Ib8M)_a,X/9J6Ndi^ %X-K>QC0:ielE"#@Or1AD6rFJBM`@b+QNcNb00ZF*T@B=0,f*V8qP;[ffd/\[7A&(u_bt!9eY5iSiJ(SDZWdA4,RW[:/c)7YO=4Y` %C=+E:m"Qso=Y9KG(@_,'B=6*EFfe'(eA=4J$+!h-8Zg,,PN]+!r5j7&ZWcum/T@fJtM5PG%5+Y][^ED]"I/-dOYVjd.PUH[(/ad6Ci[p0#rBq;r5;[6Jr,/HkfBg;"IY>6nkK %g;"IY>A/;cEX&t.j'$,e/8npSQn;9:M$$u#Cn[TS[]A4ho6Pb']61BH*d0_"9:,QN]C_>]\[E2jg81\U'hM-3oTULo&$dD&b9m48Z`fY?:F/0pq9 %]'#ZQkKgOg-NRt)pTC[QU[^<8(^KiT#qI$\!E$ZrWHq(B!iQg!%6MsiFE %G%#lL4`]F521IO=ge\o]XIVgZYUH''t);1R:Wu=oTgj!0!d?6k0e'umiohS)Xq$Efe-D&mIOUqfe-AYmIOUqfe,H-h'V#jQL2OpS1])$ %88OVt4\4:"6Xm[ceCm+DAX;_XB_T.r,dn(\(Tr$tR+K3;M<+mdmZs2o`,QsuigQ3geC>eTcahu1+hbN(H6q[L+e?5C/p_5&:)`>V %\`T_3q*o22!YY.RO=nN>@d\JT85:)Mc/FtTL?,-rdE3l=,XF'ma[nk'_iBD:L-CqldRuqW(:e;m92Sg5>t*1b&/IH^Fid9D9A)bj %9>acSPm1D[T>`Z@N?,)K+YO;H8V=qXmW`G::)^(>FNmHGEmaquiKfgbjJ7@i^.VcNHc9R$7dHs^])fWFcjP3VO9],Sg`$NM0,=*l %*-;L>0,=,2'+u+sQP+U!@Yu%+n>1VX5n\RETU18:+:#W&nV]U+@]Y28(%cP"eXVD$S?@o4ptG..Es$fhTGOa`aFc/#W_Q4F9*N"^ %Xu+#R9*N!s%6Re_V3PLZ*djr[(S>&+)LO!,=!I\m,kIo\;nkO(]4.^iB.A.K\nS+ZN?>A2hF%c(6VV[aJsY!k?d.Nl2T:tOccKR4 %Z+jp#KijZ:BKCnc,8kY_Cpt#1MHKFA6bD;_iQ %KilbQaE!*qG^Z+"V(You$0@=G@-D#DbV4hM47$2_AFrp+'>NHA"g.q$]mq'+L8?cqdV'VLmW65jVDN]P?@JFt.P:\aW_V/Mf\S2[ %=WK>n`N+4/0,3bE>_kuZ"DPe?e#PXo9c05O8hH1)EX`Zlei$?I@^0b7X^0"9#L1]oq"2cmkp6UVdTra@!k1+D#=s %H.*a*bu`&L&6($LXO"S@ouYJV[Ig'G:L`!clK%Bq]i&3uIHBWO'BGanKC=B;'7,,pHb>W^YK&SJ3:S!`>?qd?Iu-/Q>14 %2=Cd.O(`de_S&R/T*H?Z_!gf6Lh`<(5:34P7aaj+M&C@L#"IW^0;TN%T$^P\&^#id]r-d8j69l76Qj"h\4YShD/r6#NjBc,jV@3'Rc7s\">sI`U$oShC(rOA/q]X:)m?"K(::;BDb?+:dtZd %`!;9rU"FsV,!+\C[gI`hRT-9.6rX@:s"PlafV`n(kPSan-'cp6NJ?8PTsX'QBpRV>^LF %Ia1[2,W9ar$q[:*)k3.Lr\2^k.-pgFlQ0K@.\XO23!1I4SNB\B`j60_>SXhL2L@r7/YJs\;eK`oJs(2V>?!d%),B2i>E:0gQX_0.1X#6#MG%'H@S&C %ki2k'9ScikG,1Lf1[NVOk]/@-(#t&jRTc/JIkU+;qanU;P3]tnd5Ee/n"eu(TEj)A9,JC@s_SiE`M`r/`9R_3m0&-FjCFqYj/ %^VYZ8] %ic,_]GoI2-h#^BX>@)hPQN.h<1fVOm:_+2Id81uRMB$DF?kCZY,EoR`:j&(Vf8U.r)CcC0arME1Q&,_%Od-^PF8!e^NJ>SD"4d=( %2B&Obm[Q'*T0V#M1*]FD-Y]>aH<)LbnGFfR\O'TQmm %2G^N?97972lVY%?'t$-6QLP:qVIOK,F(:K8`Y:5toQ'<"3m.P9CIDLkhe1>[3ACj>TC1d'`nYY`Q^iC3CNjfU9@&*/-eIA;V,rJS %_pr3@(4#b;HBJm"=ZTOe1:nL*f15\h0W@)f;[<_Kob\0RFFmQdqD:ro"lGETH]R'i\a-:G]?rQ),eEChjB>P[)Hif_,a5N_kAmA!BfI&%From4ZtEE1\i;tO%$U6\>%\N4"jEKk?= %/Rc]R-FKl,7Kp"gLPIZT'GOr[S[=]Z.r(2MBO'W*<[`lDFZPR+f0O6-M8M6N-0l7ge>m.SC&ppNdAphPC11YH4m(mR[<@^:YeTP# %[2bB6>]"2BHQ4Z&AnRShA$ffP/E1f2!893J>29,:*,QR'/`%;hENbZ_ehU:*R7CK$=GroqTIjZT7F>YmQ8-r'h+\o`X^.pH41&rg %Ef\J.>'Rd6c94'YC*>.j*,Q,pe&GL*=,PZ@Zt2#cR)^k?d?\ba6kMai``S.niO/q2UFj*q2dR' %>K0bQcUn7PbBQ_N3^s*d).P6qDeU`rfIX"UW]nI:$]FC=;bp&1RFtbP*1M"a@4cN1e`4ap'1tL=f[At8Wkqr$q8h#g&"FM"]kPKS %!89K(S&(##)!I"EKHF8-ge"$AZ_8aZ-)t(r$m%L;gV'>I-,pXtX>FTEgJ[Yu6K1bXO%l"XF#kU;iQ!:hi40L68)_K8U5pbWEVQeq %k[P4n]4hJAVeAk^Xds`hMf?s)1O*j?G8PdF_@.Jd(l.(j-HtBO>j8C/4@M=A5;lpScR7hbC^*\_Nl-oPR)("Pkqr=jKGcm@3t=J5 %d/ZY`nd!5f1O/gC)h]:hU%4@dC^,t!/Y.S;RkTIbqnCPK@gap6Nm-G/:#2)PlT"gp6l-H\ZZ$\/C]`0c/tVLS:Ogg`oG#j5].]=*BE5Rt<^Cn,=nQ58D1$C4rKemt=hB`Thc.1u"%dK3[dHB=f_]9_Khb&s## %kI[&?42t_t4l;NW_`>G`EnDEk;I"$.gm07GilSS7cZ^t]GBf8WHG6#t,$L#qT]d``q6'^m1<4V,["kI?]2hdgSc+;s#Bg_W5H6.se*,o6f/1I&DdI^>!^E[-IIiKrTj?d_=oAD/a^S(&`M7A8X)`Ru4PCe=l5IjsKX_'alOtd8Sbqm$[de_A'#Eg=h.458G:>e\RMY9rJ2>2*lOP'ZDnS<7@RBF&-'o:V+suAGi+6pqiaP4kCa&gI %PSRg1 %T'ojDZQ+l@HG6FEWNPErQK(&7A?qfq>"UNO,Z[F,n*$X/`oj@B#j3HGomGAkC2oCK;9sG<=Nbi+POs5]OYPop'JlQ-P4a4SEdYpX %3)S"G`qOK'nKWM!YbEe-M2A=H'jll`]p,0B>%KaM](HQ;A6aS1/?#MK_$+MJToVEAIP`gXL-BU-'#N-E(//4iKY^.-$aVolIB?+iQ+=.'=tnrC8G[]Nbm:AgjZ7=)L[g[>!WCm %>.gnjM-MV[WER(aT\hSgX5tU,Mk\JYC,nl9&iEb!0U>jp7F>^g[@F%-TdQ7\7I,?J3l]T;=Gfa[KEZ6@p+_kh44K=P$=TVUf`B)J %Mm+o8K&D0pfNH*o-4s9cd?//]A!obf'M[/X5oX6PBtpN!eh5Cd!+@n]:,dm2r`.h>AkLS'ZVeT@V %27JmO<>pk?I(#[]N+Ec5@JnQ)9U4(1bZAX,a;Dd]i:s[#[@CZ9=g"&a'=j[7`A8'S^F//*HV2>kBdSDFUc0VUN4F#Q?ZGtlatT,$ %P;G(SA&[e#'k*BBRUeQ))Gb=cY4,S5\#[Yt679\'`"f\_#8gT70ihg%?Z_s+W#.$c7S1#:7O-k@0T/9k@bYTa42[FaGK;S^grM18 %SA99S9ggaqolI110fPY3/6d(X>Wo/ugb72AH1e3k<$@f@N+s4*C1hfG0Es*K$+,Cp!STc]D(Vh8WhGrVXW8;!.fA:(L9[1sE@8X@1q`tE %K&HJu=#,_/F?^AqZi8qO-\lBY(i(;m6I%V\(Me"qP&n!AN3tol707/MY.&`E#/p8_#Qube#s)EcS6M %d:CUi3l@>k<>;YQf3PFB>AV="d9;k'hK:of+Qm$$[+3JVf!Cr%Rpdie(C+$kbqM'FmNA-1bcf-!m+ukH[GX08R,,A?DDa_lGMQ"G %YtpmCh7IR&(@J?E]iqV]d]C(6jP@^'?MV[D[C8@BYu:V\Yp#8C6s6X&BB_,U@]Dbc9/`H+n':C;Dn=M-_do:+a`r %hKc;*d'-GA39PM>X(@tPd6Xt%EMjS]mlU!g1@EYToTlA$[8+)T[>[2TE,#T.?7k24/[QiuWZs-XQWWDe_YP9'C4l(7l`5p&OZl.%O1;i4DTQ>rf<7?cud1@EYdBZn(m6#c885c@&klnUp?lI@YU&6bKeMI%n, %TJ<@gU(BIBO:Vmb3OUbJa._eidi3+fJIq;;g:@*m7]2Q"<^Nuj$bY1ddFBA1;"n`#Qf/Q5s*gnL:_`KP6fVYKMV8MDmDE6og+L,u %2;5Ha3;Y.lNOD=JW8iUa>t(HKR,`qu];-iCFY^L^/R:dgf(>,?f[m(N\?KV47@)+Xa$nZh\ZBjWK%&+*b=,<+ %W/Y+T.ge;M--<;A/WL4gK2u,-lPp_2_s"C2`"[ppN,<>;8Lk/Dg6,jqQ57LEg)b*sCG&g/SLP!:C!W*BOL1bOT?)Jm*gk#tdT7.. %GFk/m*#IgIaEDE7EEnr="O;Y#;ukN]QN/'OEi^\2Xt;5a8D.C]XE.WkY9_Q(A]_9:+@dVq>SM%Gjg*0O_)f$,.3u#D7'E?&Efj<8 %;RCS4bj4l\Q@uXo(]1\;pPSZ:A$gq2m'^CmThV)@77AAA%(Xp'7IZi)'I/BFV7U/P]RR56rECc?6'qGWUbTili_ofBKXL/3Wo99@]/8MpB>&'( %8Lk/<\YVsemujE,)]'OhpKVd)W[8LBq/3Y1T([TF/5igt`_C'O])0Y2);el8>7N2?q<2pkLjF!R1H4^sheBhMn5]/KXpPJ %J7q8u#Yrepd.VgLkgO$(-@$D %du*2&@9aN6,`Z[+H-qI4#)qn&r&D22qDeG"/F.Yj)h)T7I4X/B_%5+Sim>9n:so7&a@+?FDi"+R?&HPAnLj4Wjog^jR8UE:4@Ile %dSl+;KU;i,h^mqc\KhQ/_g_oX7)g1;oBCC^lt\q+aE=7^;]Jum)[cD^-5D?hM>AmqhG'WJXO=WVA8nCK-T %`hf'5BW(r^%,jg][e<_%h>]@#>j%$/aNOL\_p6p3Ug=+C%G`%j%H\G?IC?GlNO,J/EuOF?T5/%Y0n:q7&dZlJs+#1i$2X3I)9fek %p+S"#3+aOf5:f3)mBcd]m0!mT,@#&7%fmsP8-T(]KdgN@PM<>cQSsj!L8AptI<]*.jpsE@(qkS9YWsbZ:2dgGF:2DZOOFq5C\",8 %D9_N"WaeYYXq#n_o[gcmXQ3TV"nV`l#b:K&R78?GXK,QihAja3p"MPVU[=aRA1KT5KH00g;qCDc %C2hR72KXkR.B!J'HXu@1=VY50Kg!&h[r/1lPesbb>jE.9ZO65C0QhaQC8b,0TMHYR.i6!f>a45iD9ki/8P\tl?/O0tbHP68J*Fb- %3%]U)+(i/f'^bEqb$Zr/?5Cl#M_iK9*>T0(Fn+u#WZ\O?hW")(9o&Ir<1(=:ZEW>6PuLhZq"6H4$f@HK$N6aZ@lFa,J %UMELcj^7O;Na=!mnplKeN %f=2&uk]tbZOZcQ,V:U'9/'msSk_?pU%qld>RNIF$+ob1ZET-P%8R]c?:7hAH_Rhr;aE)@gd[)old`GW#%L,_U;YSH&!Uk6OSL7L8 %c7=IiC-Do$[_\%eb!EN(/CQ!e,Q&G$D5:bO?;#@DR#4$%"6L&UICbic0.L?a6^WHhH6UP^T0=/!$sWt;PGDmL[lsu*&,?id(NQg* %N?;_X"/90A/Y&)<`<(LZDct?:U>qaSM7M,Z>8H^k %lGc]=SiPh=1b)>K=Jt28@BO]5KT97(/Ehqm0l7f>CRT> %gVOV]9**oP8pc-ZEPhIK%8&,=Ce^2l[_JeANkN?Ylh`sJIIqihG1_22^d7'0)Cs,TJ,\'r*96^`P7!5o=E]-,H5=$+okW[QEZo=L %_o%rCJh;QjFFK?`(AVQKfKfXcpi5r6,s5\L;)a;iHKEQl*jgL`P=[ZfsVn?)+AfANMq%3\`@$.I9/>P5A,cj`$p1SO]$;_aDo=@B9g`X)VORer/\q(JH&iDGML?R-6eB#8oA$k)RnnfBX*V-sT# %iCUPmiq^se:DNKcWH3Ab`af:';H2ufZ-&*-P@'O[V9;FH1jAJjT,;m=;A[,sFLCg]VTt-hCh6aA8Ri*b#^\,=j8:kS/,?pUr*10O %UTrhIjAHA=$AgcT@-Dt)S*MNE`Tui)B[Vm)_PsUA5;XR_\E2"&nqWK;^,F84mY$&M>l=+Bqlj7`MpYeq6Ti@?EG)#"kk%Q1mhK`6 %Ql;]I.X8kGkg%5(*04ohe0H*gHn(CQJrYRqO?,3L,q'[sreV==k[.msLWWL=k$nW&:oWP96](&%+`8b,(Y:A'/L@4c/lq?4HO)G; %)X'IKa@BIt[1#.1ob>durgAFnZ5iK7Y##;;qAA^$$)Dn,-d]5bY]N=qof-CbW]h:Xo0#D7-/Ut$ACu[PM5!',WQ9a[;']0^2B]R* %1_"_4KkP6a.\LRl?cKaHG/kGlTH0F+68:B_TP-(d`>G4DZmA?ORqis&t``]:gLTX %m_j;^#`62./S4LA:ZSXMIomn,1d6g_bn).4\97.g%*bM>ZChQU.F"UC-`"8O'^ZI4m*?B,o0*4)X#>SOJV,SQh6uce^,>aK=;B2u %gZMRq=I$k1`2[4`B:DuM@9$9NnKs+!T&"2uim5VMDAL*k69JbSeL\)VF\KL10pi^+HIijJiI0I(*p5KjGPZugiXPOGDY4;reQc7" %*eu,rXZdo-91XeE[/5Me!('oL0oWc(?TXo'@\)X+:Ocf!"Uj[uH]u8Z9j-oP:g_$G6_[@)qY2a-O8t1GY+Sj9"0h^04sW6qJOF5C %J0g%Enj&c=a8Zu=IaJ&#%9P;N6'(n'b;BZ-fr$C0`5D?R"!:1)10uoRc)Zf+N&5+cfUr[iF>+S$M9#bi1&+g]g."M,.$Y'e&M*8plfW);lLSXi)SYc%_=i6I/\uSlO6V6bA[Gi5LAgcFpY0:.;BccPFj`IgK2=?&k7@r>I0:p*:W$A9#b+*05i %=7j#'5AuA*8Gg_:cj[,"Ec>UuROR.V2DddD1-*IG/i82BG.t1h<,Ml.D9nRK$TYk@-co3bal31o%e"mfG^&/ReK>mKYQ3K6%>71h %T5j'P++8MUjd@eC5=\ZM1JHMu?`M,:WSNO/F@rNUH]H,0`?2rHZ("\R=N[V>@cfG#i'k`)TsD#FC3/ %@)nJ8^PkP;Z2>`Sn(c80G"jQ&*2Letij]Qh@a,nNT_Pt!6F=O/D@aP^"'$m%?NnQd81q?7?V`3Lal&&FqRB/HK@]qs=*2X;FAcZp %JO\Q"FFABB[cDcoTgF'ig#ijZqjdtSOH;O;,32;0$eetPnGVJL2iI9efJC9eQ@bk.!E5 %)kPTo\EZ8!e#=&qrUN%=Q-ACh[WjZFQ-m2LlrPAA=Wa5KKktunL#VbsfP/'B@Jd13`?(QB3GYBHA$MrhQ_YMRCYE7di4FL)$+//] %O2!c*UM,]Q:jhaPL1ej#q4"/*@\/7)9#?nSSiZ8j*Ii-:BlBs%lZ'W)Q?/mu<%0dK,Fp@(le->m!P\USGD#1co'5lC*15^mSlpAm %D\d2ar*Dc#5@4g(_JV:F(8sYD?QTr%NsKc\k3D+5c7Tet5?DBEd_=$8rHOafc#&<1bYRT1;VXcrjU'Gf58R2aK(d(M.D?0t!A+7o*%N1ljIT?JMG@ZcdFg_]u>IiQOMV+`ckWS3GAoNc,u;RI[AWm?Yo,ZPcr0YG&lk=mEF.Neun0s8l=muQ(0`lX7Y[Lf& %M?#A[l(>e]Da7)t3nhl(d;<$p3s[/(qoPuUT+u31;9A-82Tra]3u&?JmO[F,Y5oh!a@uZ".k9%k/o++4_G%W %eD[]Lgi8(1\2$%QFNYOgilX53VI[l56ScpuEb<6QB*cTq6AMZi/6PBQQtstYOtVKM?)oOSdAB`XPJL`';Nt.COE6.Q5<`b7ER,Lh %U<*POV8=+%+\e0"P)Ik_Q&rU!HH'32L6-d+i!e1s1Bb%bgf=.8i\O]'S0=];%];I-3C??I;*;70_&5SVNLXdJ43eC0*NWJj&4+\[ %!^#SWj:!141kWfAQ3%R&"T6f=Qi@u^m/VXE@OFsI1gg3*N$XL25Y#k %f1'uXkR5gt,FBe[Wffeh4n4M_)auh]p1;qu>m(?l]ZnM*W^6EDX"BBgA[p#:$@.UV-iIR_mYY3""'7a?.r$I/[ar\iFHujP#d3H9 %dHtL?1U>d8gkkngk6S*VIh!iMBq6LhoBte/YqkEj/tm/6%(.?jKGDKY"Lc:-&O^#16:Facn#B1rm?MR>0,=,Rg]:b3k_3&1 %EjgA,]jGe]5_@oe"hd;/h1'ddQkoHp5qbq[4\+F'bENO>A)qJ%rXBdbj$/4t7RU2r]Qoh/]Gi'l[bGT-%+lGs:[X>Z`I%2]0+^;[RT'6Dh57t6`dk.UC=d#.(T<9UbqCL]D %q/hO081l6$bGT-upHPCm8nlJHCWZn\Q,IM7FA;T#1IfNQ:KOY'h1ER]q64$5/bMVJQ!+^CI<)cD\u'l7#mgoB52uDn9j9ee;a)@) %ARb5)?RrY+#a %"),m;)YT0%r,@s]2:I4gpcsUDHhg?*h^BRZ^@T`d%+D>`=q@`F%eP)I#)0&k]d2`@3t5P[=Tsa#JS8h(aMkgV]dS=fcni\p3QT"X %`uTueI-ds*RRIMD/;d.TR-Nb90#5A2WuO4gkAVN":bKkZHrMRII%n^H[%q1sb6Ad52W-(WaMl?E/b;'2Q/QTj9*Q2%=4C(/@=&CO %FA9t"qeW$Xll7i8;">*M-:G?njmd\')IDP[S %*rk\I!4nuo4oXg$VoM#Kr:'I`V*3/`Xa^@Y5'[5._M7q:]"hG5VLkh/Cd41c2\l?q#kh22F]/=D,hl+k"gdtF.hQH#3:<]mlD?lu %5N.&@X_oVY`(ID/8unEgI29]u<#Tut(g_7]<'UM_[(<6`1Zkp6C?p/m^h;#(jf3/Y`b1r>pHOc+Vp`/7nuaf)rDX8A9+1\t>20=P %oU>!ARN@jaVpak-EgE&&b),(aQ'Z$`TBbQ50L0HnuQ!+.aI7Db_"eS5a9hYLq;7)=QUO<5Q`15NYh#@b@'j;B+Ke)F?VO5iepb5+FZ!/+a'm+k0HB4\) %!4!H2-EDeIn>[B:XUY`,ek*RIFp@gbp48R$.<3fs?MFQ=&1eX1L8$bb'jHCBT\;fAomC##X?B#E^QV]@R.%/^*!\&&")f@SoeFmp %IV#)C8fp7M+-(J8T>Yksn#SE/o-O/5o=K7#L-+imYdX?VS8O+rn7T#l.B'\Yf&a&V57:?VMP=C5PYuL&'^\MgPj5,V%99>JT]Lmin[:G:-J7I-)Xk!Xm;/F\9>foi_lqD6sr%E\?eG. %+^@Sm=%\OhJf7*E@C\^4g%2S[8mh[0ASS"m&Qf.f^eVGc)H_KBm+PQr50!i(ioD!5g\8'?GcF*(>#GaApr(W,#!;MlfC"Ch]O %EW->k)aHhmcSPh'9;l*-6=i3P(dV;?;\OT7*#$Q&LRXZLqNhB/^F]?sOC8c-kB:_/onV[f.C[(`%t2E&5/V!"H0;WYcA&B)bi_!b %U0>!nMltKAnZ4s'(FY^Y*S*"$C)ZgF25Il@9t.mn=4Ff&^K50kmaNaJ]$=jn(d`mi1+*B]Bqe=6d>XWhQO:)6GC.O!&*Adu[m.3* %ImQ1SGM6QWmE_lc+&;d`GPeur_e0"2CrC"LiNn'@Yi>?m]\%"G6IY&KK7Hr6rn$^o,JLUk!0Ro`%!U*rf\KFH>P"GOb\UbB*&20ua5u)(">"WM.WQ %=b6n-40gCV(Ms[2[g=+7\t!gWB)LX;g'*(@JgYda'0MZ=6(`iq:6GmSh@CPj1P79=`]Z)V;pJXmc)+7Hl=qrK:ApBZk/?bn:?RkA %-decX>Y&G[cCH/M3[J0E;^@=he1'<_$r`mVUeW@ZXRp%KN`2j[irLUH4C(f*e1`sqH&b==\Ar?^@@krt.@I6Ik$gh-FUC1>M&GI? %g?$/O\/HtGBA_JPQbnali,%ah\.nB4-G!s%i7T7IlZ:CY6#pd,:U4c-%?b3'WaK-(Cs_gaF)IB.$CA,2R&=_d#AeurSdf?[^)W't %Rld2NnkVm*mWg]]eIgo;B7oh_0f,Qifmmt@"4%29Xb/us>Fl:e@fr1sY'DoRg`'MiCliT\FP"+cfc]g-&hc`2ZU&VJi6V7)nSAL! %o]RX\fcWGHJG@piClmE55t@qZ3]dYo6Ria(_`Z`]YamX:S5ho9a5nTZ1ETe^T=ZubYs7r85pW=TA %IlXk\-UWC_Q3l*3'?qLcmoI\QZ*)GAMP#l$A^=9g!-\hrD%&tFF@7sK@HmNr?&\5t3dmPXX7L;(M17=fC..p;?M++'MEC6QBW6n; %C6eNi:1>m9lh:1^2LUX2$L)Y/[E/47r_tF7q-=W([R9VSHBB/jK1fO(bT>5,)\t'BE4O/>)%4\)jKY.d\r7LA6ro\"Ik[H!Gdm]fBIepTIHape(0$@P]5' %g:\2.;%n#m'h5^P$go4=qD@UbBmbYN(cMoKE>?TdNE\+oJ(a4gGEP3[&lX[rR>32DTG4ZrL+0A+c#W6DV]H`mG7Df^I26]uTfL,*0`%pjRf>$9Qob0TrppFpf`QC)NAE(s&15<.RSZ>bXLZ,lnY*7Qb7,i47N'KbA,7UlHnRG*WgaC])!a>X %&UO20h+r5$gp"`n)mp@OB:4k6rH-FY+JeUr7$$-p%jW!h^p!3os0C$F_G:j?9DIT^"Eg3KB(LSY5E)1G&FDK4/q$mpR1!/:V`8+_ %\$9i3-$S%$Xq#p5BPTfS_[gM/!l^lqen,+To\KD%;*qM_/#ob-'na"8?")8Blh9XX8="C7%YDU$\>ZJ+iJ'ctnZosUctq>EcSEQH %7``G(c(LjL`6XfDRR'M"#Z[Lc@_Eddf*iS\"(UGs`IqXb*Z/j:jd'LT.X*m;-$M1uP%"tcaf]=^GC1/mRR'M"#j[j^RR'M"8C?j> %#1[!;mUueN`Ls#&-Ee;O'S@+eSn8NB:ik%lj-""N\r.9iSn:g!cm]bgK@5+c4L1PjnG\o"U)C=t/1bK>rtWV,OCh>#gS!hR9/@tF %#,-ck9/@tF#2p9A/^9r@;[!Pt6"ui`EI9Z%K9B[T^PY[Q6,K/e:1T/FMbBL)8MLL^EORcWP%'NIh9ud)$9q)]ED&)9>u04gJW+2; %;@ISGT0&K-8MS:t5ImO,PUj?$dgTtH=/n_nY@]43Xrl=3is$A)"am-u'$:gjKtB>3OANM&eg3I_YgQo]K)GNW47$4$m>E>BS9CJ%X7$H`*XnW\/@XKj4^JJd&T'HVhNsP3D31[2:D_ %2HRJWL2t[k6GbR"V7h5(:sb?iQN+lf^fN!65@)"OMZ3etrLhSgJsUrpmM#ACXFJ#:'&bW+*GnqWdqEH0S@Zrqa:.td8A9Sn/UFYi %'8'`O6rf*-NpU0#OJ;[_,c7!c8"412R377Y$p-IR$6e`S&^f5/#NLW&TBl^CQ" %KhBHiY?&k8]'^'kQ6#e4AsImk/mcHkIqPleM:/,6Jj;M?7fY5+O>s+ma_/(4<\oV>M^%AENb\5 %&eL$1O^9X";[eO[YEgJq#`JMiAf]8R>>:blb;`cD>g:AO!,?XkOj6JJ:=g6:k&'5GRSDD!I!Y2@l^CQ"j\AA5k3JI1f*1e]5@<$D %=#hu'p>*m9HBmNT);B&jB%(m"V;rb+f5/%$fIphe?e8i"DMb)NhFc3,s7AIg^!j2"5"./O$=P[&n0rt:;pZnp'0\i=HA\Fkap"uN %BDbAU4l?!+4QDdS/P-tW2>JO+=KJ&Vi(l^pP?[,W<$#f,G#ei#a]pI&'5)G:\bL3$WgS4KgfBr_(dctVSnWssG$kW6DS:sB.1WKG %%DdC1qZ5-Q>.84Q%TprFeTrc2k]CVZXn1>KU"-aNPN%0["ooBs#U'5gf%$jpZ?V'a"J$2%0d+6-]nS?]+2iX]NMWMnrs1j;mq %lRT+/E\oC2@!S2-P[kj6F'FA>RuJ-bO=p)Z8NR^+M-.uUoN_d];D]ina@LRKYO!&]Vnten1Qg3"j2"?[M.a@V$\qdiS=\P^']%3ojr%,'YW7>r@[<@q21mu"pXPZ6]pQ^?3]\/ %dih\T,OM1-je9&uR*csIj-Kais)dmQ4btLX9:>?)rg.)j17r2/'P*OlVAL#.FD?R37@88qn=1(9`=)#)HhnGLp5bf=06K"gD$6qA)NDp %9AFKaMPsWpP`J(cR)-E9bS$4)a;m2.d5uFZE/##[DQ4o\YT!A!hhL#rSFNKq4]]m:mUt\`UpDU %FiC%"ji-rncpQ>q&4AMAEj?4Fef*Q._rn^*"rOMq?\%E2@=Y&U^NbWtZ+gj?_*eA6SZ1VMfaIRI@YT0>jYc5"Z_Q@"W7gJcZ7?,= %:i1aC5ogNhG<1aVerLFWVR)U_Fn/T](]u<8jcO2;Ua(#b^X=H]A@ge/@53s/?V\s.A\.'J8]MXD*s>7k"rPoGh:dNa%'YOo[tB2; %`W5W/@d5)or*e\geajMtd.)g2H$1/jTIRP..mea3V+h;^U9.2l?=//cpW4MEll$'?^I?>!_CLt'kbClf(BRigNc5)B>QP_W%a3!oM!/j&AM1#k,UV?1%YMh72Nb+$@6\>nAN/0 %$@:[;5'u3\*-2SYV-;f%pGp[[9*N!C]U2(UQ1b@H5@mW0EKp3NMsQi7]l4EJ*djr[(LA[&S1NDNGL$o?!EoBf/Gt$-CI..E;lq>j%lp7EU+$=We`#-219dD38ko+N6-;DKod:)PgcKgtB0P/;+ %glqL,Nu%g&O3PYVl+O#XZUk@"5463meAoiaY?C36LOCZA_2=nGm'Y!@dsdgqh];QqapcYrsr[*0fu=jXU+eh?0bcH1PK+jIDR0_k^@M0p'I@n+_9PLm$"b$,>1jP %QPY4<GkFO&Lt:/[mR,s,#g6P@Y[jd['oM"Dk0e27&UB;IVh^=n'Mf)*\KSSQZp4-i4D5Fpq,PkcXD(,n,u,QT,rLT %lG_f`rV;0I4e_==^"i>loC!*$iGQIdr1<4I@Vf9X?0;F+pC.(+(dfUV=5%G'Z36F@]+%K#g6kc[@BZBH,cc$`:6jYoJ*t7hO43fi %nNV5,hhPtaQ9kC:6"RI+A82.$dLk^TL;TDtXLGL`lmGo%b5SY!-F %KO_SmjsW+VA0',F#p#s]#dFI)Epk0TQ>Zmp]9i%,3Lcg;(b\]B+GRg!f#L9#p;rbj:n:k9QKh0B-ecs,mErGR]M,m@_-C#*lWLfQ7[2AJ7*jJ+HiP6I,o%-nH]e=A,t!A\JJX,bpCNg2/p-9a>ZM]plH_Gg42XN178.R&>KKGgKrp %)X"p\E4)oF_qDQ#^m0,<0[Y^<\.+A^7X(G,A_`"D\NDqmYoL5]r@d:-oGb%T[pai/^/\Ld3\(IQH"S@fj#/Fj*nfad(>H't&,`S" %/B;U0i,`HeLKNDf2>CQRZsai_2AqE2eWMJ1p$M[Lb0?P=)V1N$Pjqkhb625$jj,GU-+!SO#m,nITEMG0?"1c6YFT3F67KeY2lITDC7N_CUoRR[R %5]2o/LN'4N!`\hQ$fP8?K"FsB"\0S-(=.(.fDaPBOBH)NHK]pN=07t.oDH=bGZ49)m5PbW[';Q`8S>oNp`VMc$2F^IA"si-B0t-S %e8-oCh7-Z\>gb7;Q"*6:M+_S>6dHT+RPFDP-:BnO93s!XQc(2rYB8(s;M$l1h;M6EQZUD205,Qm\9)$$/TdJ%]:I06OB\8%1\`T3 %q<;5r'/g=?@#qtl,_%s+U:se %35XR^U[9mZ-YZ*:=Y?t&l!mQo?[l<*X:gJds%S!j?e7[?HYE(%YSa@%:j'Y%)B$JK1@2CYO0ccDs0iYAQ!QP1#LpeW+sb3X1^ %pAN9h-m%B)73TF/H(s2MUGJl!]K*bTn9ij2bjXSX0K?P[G_q2a^g`/^@!qp$Hbh9^gc@"X:fSRmA#!\9HqS!f3jiFk?[aX_S+k[s %eZ;cj[9b0MOS.RX>f_YT;eV5=&sd4&QGR2:74XS+#M(u`fP/g`NYQ3_KMH`.o*_nTP;@e2BNk@IfGhu3""j$7FWRYsmfVdGfM;'HLj^e*4N[r`cZ90 %?%F3ca%4I$=BG.bmk#u4"gm>2Y@b4BE*U9b`3u[EHD;fh1Upp)m0aA*Zd(?XR_*%hn1Ea)8-Bq,eFhTI"f`/c7.uR'&g@D+j'4!o=eGI6^";/"oKuZ\ok5@DlKtL>]3c[qSY&r4[@>dW!n)a_G'ql[+#b0 %#UtZZ[+YjV4TL/cK96T7\^fA9llrbFJTMTb7Z^5j4n)=5?#`NT\-qhLLQ,t_N_hpPPR?qP$:\ccL67FHO]#s3@3n\5A.7-l0VZrR %e1gHjDgu[mWsV>laV%&abjlg^H&2[)4!`V&"p-jh86=DMUk@^g^iFjg@W9iG>$SZb.'1`b07[V9s+BBG>boFU/<0<^2uq'b_mo`["l>;h.FHh/r:pHO-ucjrn"\<15kYdOX1VL]Eg(8BJrF= %3FD$BAYY^!ElYHt5KOZsafL\>:3*D[PA%fcAs,Wi8YSM"V$.d^-Agm#lc'!_L34@.2G#at,[3F$Z9b4aPJ;:fBKJblKCAflF1@1a %H2Q@%-SQs:JlPBnU-4:@rX!uHe)Pq'$b;E$`bBc*#p+5O)Xl3J7e!@7eBk9R-$Ys[3C.C"Rm9O6-mH&lZk)$u,pj'aad0IolV&3F % %g5]I1_[/o\kQLnL!R1MjTXr72Ra>F`@=iEOFNi@-S<@cE'%F@CA!^1,#O[s`/q"@C`%)8lf]?t1c]-RgN;r?q,0qId[NdTDA(3ZadP?,%s<`GdENj%QK!OrBZHD %pbX<7PH6]$4[%sQRW,$!;:9:CYL-%7*2%_gmR8H$@8ePo$Jk/L %N?#![g-bYrXo'0Og#l[ls'C$_ZiMZh'K5".6u""go3j=G.E*1>:HRnk@dManI5E7F",l0CHrdcMW:2pHGIYr=(Tp,44?uD`o6A*D %!H=*ZpRkQ4?-TC-JEKP?.e0QSfFo;3?cF^pF%bJ=2j`cqEogG#%cc`AG:aYV_3!TNF>ga[._UNZadA8LSJl-P1&YL<;gkqDb67t*:\QRi3;i>)s<6AGejIt;dd+&nh,:8(8Q(10RWQ$8)2_&!*b %V=G78U\r@[VtToNPJ:p\rQ7:dmJP;80`#&j\ijEC0DACGpte^Lc.%99:Q-0O!pF5a"2H0'q@A9e$LChtYPUQZ/u#0dq]LB6N'D7\ %N_=9qopUDP%Vb1t6CUYd_Csiq#B,Zqn/\:]YoFGg%da(bkaDI1@rK?9>I"$,HLo0DinO&=16_F8nE"VKQ6X^^iV-pB(Z+I3=VsU+ %8&CTV@,?#AWHKl/k/:nkbER>SXks7ug/)U9E@n3A.d0=!qh=ZLp^;hg:rn$D5#?N&D+fK`h<:B8$_?9W]1pUenY2M`.m;]n>YDQd %oIq8RThTrsP.U:Wq`^6/5a1LY#C>j(^H0.-\>i84eTYE&JB-@spSLcob[;/&(UE"P:?garr`cl^[kCV;k\nY'e8%o %%iR*iXY+XXIC(V]7XPP!I.SJ0m@3P\e`dI-;8n;4eYDp%1A*%[7HKE+]?0;C[sV@0/tNiTMi1nCg;rel_e5[87e(mR3fKS7]u=CK %6D47f.%d&ZQ?eshY91-op!4:j;_+,gUjo75IX'HOYQ?`R.VWGeR:&\,utWLBh%.8X)QZ$Z*tVYIC+qU)^J#]e&CaNTUMd %i6iUiDZ7)e4<`njrt6k\LY=@B_iZ%Cm?qLiGMfQh_Wf*ZE@ujQ3-8(,pj*C,`[i_9h8c_Z7kRm&CAR<`R9s/6a %3ciBG#M=d*k %pffgb,r\(gf:[fpX%o9n?dL+Ur;`iY;'pGZLu([;cC^>tcDHsko-Su8tDH0 %U@H>U0?CB$Ol>rSk"fAT@H4'(D6r]2Nj %"t:>&'\=U.*uF(Ycb/EK4j!6maNNi'J*J*[?XSRR2[^F8#Yk%_U.9m/_b4h0f)p6`%GF'RiEY;B$Vg33,JLX,iFhiUWQ`f];<$Q] %9t8UY/H5-SD`=saUBr\9H\TG#?WA,74nsA73Ks+2p\/EA6p\nq,o9XR1>M9LZLLi#b %0:5C;2p/J9dNR=R=nK06S^5aUm-LnI;S8K!k8.WJbAW'WXS6f@Cr5=Q<4H9-2pmh73tHQ\<:!\70Drh:d"nCDTU:gu+-Xr)(]4;Z %Wee=o)W`3X!#tacquO+Q1%[T>Pa*7c5H%T`.!*a`3`oGe>,n#>p<1KD\@pc4Dt*egW;&rCq6(KrMZ6c=EqB;*g\ZDEHMRKB&=&q5 %`?rJ25*oWahoEe:j8W=b^)!3!a3XF.V>i&D]IGk0acjm-ibSAb?X*t2fN\.BO7lD<]NF]!e><%0WPp4UR&3)JVnSTI_-1l\S+t#5 %7:R6ra-Q8>+'K-YLZieDWAAn+.]YT]4^JmJlTcaR]*]?c)l;>L!4,`^lg,N[IOibAcqSoc/T%N(Zd'-N^WFYnq$c*G]GEUW#"jff %7V^MXTCOZ8pQUXoMDsqF:$qca]pgFZ\PO-KerAREj#9_L'8UNe^I"%-lo3-`+Q %a>NL)U*5gR^X[7/p/Z3R]"C=IjDe/P?Z)n*8c=IAdWbO8_4'36A\.Mne)69J@IN)iZ_lD/CM"M21'[QBOY4)]f[7rSZ4BZ"hTUS.:$K$d;"[DtO;fOCdX)m/'%DNMk^ZVd:EYh%+ %p!=$Zo%%1dRo(fYCfY4Ib(O@b;B2S]NVV1;S3hWo'8EpXtK.ZePLa8b'0W:[AMK" %hs6Wc?KsLkhiPQGp?tU@-(I-"h66V"N:*(M=&.`?"=ho?JFuIXSmp;_=[r!MZ'+BX5P8dcG@+_P)+o?oDOZpRa2^@b*%:5pG/AYi %LW>`CrlZj=kW87gCCV^%k@m/)4(=U.+3(JkrT*32on12D2ilkJ)9.Tu)3`E\O,Q]KHFS1t<2n9G(Apd%C3`*9f)JbJqYm'r"BnL='1]IQ\/u@.\O&O,[J\q<2)P@" %_r!:)gS2KeGqT6:JQqOrK:Ol@BM6SLM3$e[Y)$3dW.)DRYL#PaH@306\X`FH`MM3G$855$I/3'd(DY\o-CK]O;*pZ!"=9nO2[(t,.p_4gJTf%i6IjVg'.$0OZ+%YYt8AX,7S(^07DK(FE$sNHmZ@VHrS,e$?D#>k3;E`gQSOQ8'k6!=/:P!!7 %jun?Z-RoTF9DhZh&BuLNX'>$`pp-&^Y5BF#H[Y3bWSSj(n`?\3e3p^SWiQ,fc[X!Es/sXFo%V@c-42u$g4NjgOY?QEE*bZc-/,'p %Hi2iTC662WG8`]2of0j+6(?bA4Bfh?p$SJi_q0f_4"f?2j>)at^AWD`^KBh'^8876K)&ms8P8"L9PPNf\K,r^fCr9@k\N6Lpq&J? %SoEb`jU#hQkGW3ACOe?f*tk8fT((p^SL:p,8f>5Ci(?QL/p8at#qB&256--ZWf*(eLI1,b`P<0`,!ao[&W,TRF?0-7@Va+<"mF8F %n9Z5iYSHJ[5A8^_^0?Q:mU"7XcT\$E]jJX2\Z\9G(XZFEi--CHD$1eaB>r'ES%nS-oSpCS[I`9P7t%5->\[[-"Y5Obhj7-@C@JFl %.mMpbXYlR%,k.#:^XW*!o@XM)_-Xj+.g6R!5D<%`"=c,-.o^j<(`H.N]TJQ.qM56k0;3KL'8_/Qqa5:p3fAJ@7)W?a(/s^J&9@7l %H8pdONbG6uh8;FgXNp(l*1s5r4XQc"Q:>@DCqbC#*5=j0q%g!&%Th`n8<[(Ss8BhKWn.#reXOUeO"\fh")ujbd;8J5;GeX7nH^A?_Y7CN'nMLs?*+b)+%V&oAMn0XB[qMjk:1BrI"F/gT5#eMGD):L %M\f!,=V)T-0ge-VNh[nujKXB(R=g^\dTZq@A<)Fp.JjlWECTS@B9/E6*NcPG:]$$?X:O?QKm7A+QRSC#Fl@a-,`rkGPSMJU2699R %q"(=gJ&;enO7_5R5L\'.')lo9)h9j#Cp_2=k\(V7=e`JMSWESU%5..Tne@UAeZ'@66:Z%U.&UIeb*_-63n;ro^Gb[>IF7HuV8jKC>qGHFa%$%Q.X;Ep1`dBG'["8%^d@Ua) %>sZ_S,qHEWA+%`&j3G1eTIN%\4082F@jgP>%"Gfs/ut,$>dG+pT&%G,d*!hqYkEL7=0d29*OLJqe)EiY6M9a+?Q3!US1b+Jg/,Y1&GW=_4TUl.obt.tBKdhjfM'?,`R0)^3/2JDpX2a_Si\oZUi_Nb<6os$sJ"IVYU&LZu9FCd[ %MSQTt%ma;FjO#>*.+&6@SEZLK0r?=?LrW\0Xr]J:;tI5H!' %?WQYW](4iM#],32p9>u#?UV5JWNhKpQN4P?fY1&4R_+B65Yl^6pfLbNLV)O.#!^GQBp8V*;eh\Jm:9HZ^3[5;#iQnWioZSYfgR%U"i %f$\)C@7%Au_:%u$`9:e-N:f-C$sK)t20^>!=u4$?5&a'Jq2@#!%ldC=^l0uH1Dgo@1W"B#:s'Yq&dD?P&bLHB-Ng%\"rnXXINVV- %?uLbP3=r2TKDicCJP[sm7o7%A!i>,@>H\U^XZ+ACo@HhD696I+MYpqoQ7kSPnQ0S=fiorX/<1X8[BAnp'8$tl';%u4>- %PgdGCA\fOJSbuB^3(P+;Js>=?MK#(%M]g_72*VC0+iq36L]Q[```#^(9Fq]]"qPChA.B>E))tQmFp?4`Gn#moO71PgHAYB@OZa6; %k3jI:HL!0QPd^)JKB1F^qFGr+-1aXtooW59TQ+tR5*DLc\`D0!diW$cl"66PA_UJrE_PI1aFq_.=SLJR=fp5PhtjZTdCZ$""1N1n %S%5?eB@*kqrXYp<1W"B#J1+jXN&X(fBto\b<43)nROR%aMlMA4a=N;4.p-:(m2/<6ZZ6;4Fpnb%bniZKm0lGl@Ws,[L-;FABeP`R %n^itY%d>MoQNAn2k8Am=0B%IY%>,4I8T+:QqD0+NUXaWZoK7aJ(FCsJT:sLh;2VeOo*BY,[1(bJ]F?XZ)-kq,,M8Y")T4cRXYAgr %oQ1W9#bG>WY\8,S:ROWpHlP/9*$rua%l\J;p7J[LJ+DrXAXLGJTSd'iKI4s`+%,qP.DcJ]K;iU((+i^+e^%9^V)k%W.59"+Jn4&B1-:Co'?45X79_h6[^d^RCkBJH2i0*e,NYCA)2'1JB(?L$&>M(>_E9SRn+,*03ss15ho[qYpipc%R1k?q#.EJfSc)clG,!i93om %$1B#Q1tL^si*7-*eM'h,.g'3jb=HLn<5UuK[KkgilNFfPgJBjU0p4ht0e-n^#;3H;[hr?(aJ`>;\kc7*f)F[VAVNO?IO4g8Z='`dj,17,*L1,3u-i*AfC`EE(,A>3r?]3k*$b5c$mB]N#?e %iGjui3oW4Vr#%u-RX[<+H/>QTkU?+L.i;3ORJK\nc,r;]&1dQ_XrMB1T^*h\,.))3rB!KSAjW[fKTA#*b-3QP?`2FfX*;U7/Q%h) %IZUb$TMaUK'0b[%NdJe$3T60>3H#.1?aSFG!qTZ0rC %Uc%S2U,u7`nLm6eDW98:HR9P0rol))Zfd#VgAJVn[PW:tOI7QY!$E7ciYCBCG*V"%7nB0,P5$2`H(>R6?9o0#bUXu(\nKW&d"BXI %@7S&XJU13g5lY'70'l749+uiMaU9\t^O?_$Q_LPH!%NER?6ZUWXr+P3`60E[(95f<46\%DZqr@>N`[?NTnTMj;>#m8&mCt&OK\-] %r99_+Z0G/mFa^^k<*FebKc%!S'Q%,E@=?\"BZJOk'<;VG %/a[Y60TAK%"bO`.dg4Q-j&P8LW.DFklG2Vq>41EN#M3ISjF&:C0*=)_^W\&Z`aV9rAOVFuD;Zs1eAh,gb$)\qdVp^oT>`*^/kF+Tq,fEdP398"D %Q$2o\0\Z*P%CYh)D5/j/P"%+Y/>MZZQN%U46oN@Hm!Wj.?&)9CZq;#u %h4(cCe!!Z@a\5p+eF]^u>u/>F@\[mD]NdTA#cFH'+2'mdT]LD8&6p,PHc8B;n]\W!hgCE:$+Zg:sk@DBqc'`2tqEYpe9?7OG3-,LHp&63TrN#ke%O'#n$RpB()i@'+pJ)p\ggHggYs\/ %rQiW9dc9lnc;2%@l$cO`k]7hU1cd;@AKI]5f44i`d-Ig>,"ZdRn13ZHM5&Y4Qi"VUq&MF8aW4N9S=S1]rH2@,9Z?t\E+o7R;M]Y# %s.bg7Z6+G6kZ5G"ltIj.%V_V+&17e8mT3EVVjYU&o4R]J/rR=Gj?M)h_ogA(r!uI]O0KR.jJDSgbVgs"1\?<3-kjk/4CDZ_iZ(>= %p\Wk5@NP2CV7lK.FYg)-=Q=eK>rL:rEdMc+d?en!;r8[(Arkn[$]C=UthGW4o/JVai/OA$Ap7&YFH;ig!a-PQpN[X&H<'g7QrU&.$&Yo4[ %^?(qJY'(:<^6di5+aC^R&GBi1i3UpjPssYX27TU0f]!4/9$pfkhEuG1q,csfq(UNOdANoo_cgZI2J9eQh<=_m^:B13V9_ZZp_*jL %Iq/*Fq"sd!f]tA3<%f06Z;2:rm-RD?iXk_1Jt(KG]B.gBV.eE&E\C$t4^T*P>qn(^=uV_@iFVJ"DX5mh^9(Qt'n8F'Ru1PEPi^fN %\on=R+'AFiIXVtHhpdk8j/)F7If$]p$10D!b28K3S&0B$IoG*?M)d?]Q:/Gbp80_MKDT3F/R_^Go5AC@/PW)hQ6Z@=YIPe/>`N?9 %57d'u_o1$-q]>]QTH?RHo(??FRVj%$kLHI.'# %1mT1&MDkDZ1\l-j*]Nq]*iaqeAOa+dOk`d/7gcOXcf!=,hEt9[#/2rI>C[E@]'?$TcXLirSTVMO@KHQ,B(asum4.-8XnN0tcWrHC %n%JX,n$Od+n#_4(qZ,>ISI'(Q\h[]4P>P%Uq.IMsX1KrR)e\2bk%3kT+2?)NJ8W_H/9;ga\jqca=B8l`<,$)UH]H8lBJ)_Y:`_>-'XMJ$jcMsen;qVM&U4%5q5jmURb[n'2S7EJ7"LNCi@;&VcFe0_chPWKB9Bf=Dgr0TPhH6=Ko:$NH4qK0HjSakph_ScXePh1h`pl)(+bt1^HN>: %^20s6BjLI*a![L.C^6rD0]f''ZsjhY^/*>ChT,KRB)]q7[79li;C?ZImqC#bqp;[l"GIiQJIfCCq]9Z%na#_YI\]*?:$#(1m>B^< %[G>+50?88Abema5bbI8qWR6DDVDGSU6sS],YJj\&Y_?iI.)Zm^'d'aJ?X>36p8Samj\@`+*_kUR)Z5SD[;K)NL)q%7V %>3jU8j.ZW1+YE=:ZW+2R5A>0kK?\#BLXouq6,=-[&-JNCfMK4.2l3uWS)lg*iIDn2ll1A:;L+QJRh8H++?FglcsBZn*_oV-=*q5N %.t%#Do170:p6&')>l)H:pkpT+oD,jNH3VfBU1bVC=k1L6L+Wam3P_Q7"3`],"TQa.+1m#;OB.uMo6VhEFPSahqlg1^IYLgoEi8T?"J]mk5f`VHl#SJG6C(\;>a4!!.)E!Oh;V^3)J9'JPW %jrXtML,F?0,Suo)-fG8ffn?On?G>)`C`u[c'?:O$s4X?fA[OV7NGL#Su&q %pElZ!l<\^rq0q3STmF:,)_NYFU?Z.5r@AE6,P@Gmm-,?#$'CSECPQ%t$tdL(XYnCs;\HC9MH;1/D`F:3p%n!b`OCY5!Mn2^qqc]( %^G:Di\l66G$>/d@[u4g2aB'3A.>$\D/YP*h]$?O#\g\-%b6M0XX4-9d*e,h5fNQl$+RNFckAA= %e#uU^qT2Z6E[pP6&bA`s:8'E+,a]O+4m;M#QscLKgu'7s893"M0/GeF,0%[Mdc,iXV9o5dqp9JQAP8f["r`KL^jF%cIiF/)L+\C5 %Bq5k9#JX5#A?5&q2O5F1:=7&Sf$RL\R$@g[Fi)O`i1*#>"\o,4ZJteChf6J*(\VH;VrLK71sMb'I(0r1d7rm(Yo5#D]=t8K*iObs %;*DSu]!GCGR@Vd&(3kf'fH1Le$j34j23!O_&`c,8-YgZfP&Im3%.cq\93_\c,Scr+o %9//;B6A>%[Zd70frQ`]$"&Z$K$>,:+#=h04>\'2^$?j0tH@#FE,_M=(R/FYq&Uh&\d`;0D:j+cu_8P]D!*;!BYr)]7\8p,l4.Jd-u^PTrA8_ %Q"s0OX``T@cTU6CmiK3UK&7MD1gC+!BAP--h27!eN5Lco.Z]"]Z0Se3k)7,A`!ecRW#Cq\rIJ'@?HW96Ys5jbguhk1b#.UfMpQh4 %"_!\&amQgNZpkO++"_)S>Y$cG^]F2R9$T$"0O9.? %3Zj0W2&u5*0tcu:jY/M*Z'0@07Id+"b6:'>:=JH"lYi*OVZ$=>l54SW-h$Z'o-l8\R^mXI)h@YK`X6]*c>'"Q>^Z`CJ2Mm1uiR8RE/.F!!@B7TDeKeFbV:i87omq3i[Q=d(.& %TXu$mp:h5!=;HH"K;LYUY!2hc5r1@lQ/Kk$BI7ei=$BbTTc*R4[9%ubJ7^d)9+K8:D3aUM(:r1mb>]:qlDdX`i.Jr%b`79N!&cjr %?&oIUm.6T,lUs;p?O#48!k$CNKI&pb^n]"mdV)OigK6I0)GNP@TthLK-WdKXS-1K/(/i;?T?mEDr@EUQcUe*gE:nVD3Va;A/>f?W %&f8,1?IbCGB_h,q:c'-\Pe%End?@#-HbI*>XM5Po-q^4(l)V"h1PY*_kA!Zn`=5e1>u;co$K=]f0$gG"+6N.TA0_VjPs>8@C7"@G]9hYJJ1%sG[SmZ7Aje8FUGUs`4]ecWNUq5;GQgJ[DJU- %F6bUDBP3@[o!8^',/1mg9i#m_4SUJUR^:+g,AkG%tUZhL'WW<5`$n.fmQ)r'"Q@o*Yc9eaZnkF;Y"BfeNA]RRY2s/K8% %,p]2&[cb:Zo?88f/R"m\eQ&YOeZ/0c_-Ph"GD=2=pW%)jM^L`/VdGi)9#F?mdsE_T>[3fWVn$*_<7/OK %rb9.]a'TU<,K's#9]iQLI&6YEGogSQeh_VS-WP4&`;e88uW.T],e=;b6*RJVR,i/G2u %D)G^ZY#XYbAHc>&VinpKp\-E!EX;VG-_1!-p`>4fX+7+ta\;8(F]mPs$a7uMAiQu*VH&#r=C-YuZP#@PC378*W'(cWcIZ^ZFlV#b %8N53Zg(0anLYX0@&P%KI`H:2Sf3K>jTth*m9L^=dmfk4:;pd't@b;<&LF[]\h(AR/EAs:nS^!H5\=8Z[e655\NDk(=*CHI?EGF"iHJ;G)R/V0lJqd' %(1>Ob9A97bKushUW4Pnp"EI.*(j@\*dG2Uih0:`H2-X>">u7kS2sSB5pOh1_H`,e?BA_CkmJZK_\,,Y&D>T[]UYaPaS1.0*gY))!qH(+$688#.*CXBDN<"LPH]l7hI!5GZi3W+9lo1?N+^XkF?`1i5Y#O\$"3P@@";$ %`.c74jjqt0D4*#lc+L/^EQ)%A8T$JZo8=AG'7cCt2,rCf3AuArYa>hNLRsY60c-:E)gI[*2:R0Dk9ecZ8LQ(7PK8B)/-;)\E%/@q %H(IDF<]$2raFGSrE[.Qrl$In0c]cGFm#)&D2dgPWXbuNY;SliD%:WemG52+g&j*elKP8_f]s'c,/OCDkB?t01jU5(KD?R9C8KCd1<6SFF`!fETX>rYVspD.=#n.V##f)lYPmc0rFAUfO=n8FhUaE,)U.aELRmNd7fn!s.+]#3q(E@H,][K@#MElr)B#PGTl$@.f]*B[5aKmX!]"&pHg)%cArlHhXfSOR'7n %@)GP>k-]UrS1j9&dTf`]CeO]ei1US_q4iHQ5aSB)Nm4nY'i<*!3jhR"i"=<80I-8f=of1Y&")eLklY"V"LDJ1bM8]>Gd_b#r5%/@ %'k"TXP8!:jIR.?p-OpG!3!h7Mr.]&N$;d(_a4Dssf56EK2ptBo1snMECsV5XQDBg]kGTZk7UJ&tl[#GWdF4OrDR='3Gks=1A&,Ha %ft[.N`q7N4J@,l%YYl?,YNNt(>4H$@CRM`(H0:Q[NTCL/OO[?!]FsSV]6.`IlE$u@CAII1YJ/Je^3KA8emBoefcr&^dplX[G8_&_ %Z3@/T%!Xk^9,BenYl8'JKtCGk>FDO(^DR$]P'#sIoZ %I>Kncmb=/D>Uh[UZPfl71URfi05_@dTBoiO&!lQg@r\Og:6sc %Euu.43W0nHG[XODdQaL>Q>'C=XO(fXe(^c$p)J^"Om;_jb3]j3j_e39V'e'YQh=:R]i>$Ge4t0DR67YT)F.^!0OgpfmBb7]r1X/c %TqP5V*&_!"S^$lb;uL]?98W]:pnF2pqmFS70HFsZJ%a&`%bYEkNM@8l[ZZ&73QR+q %3+\qM&`8g4nJ!<-eeR=K_TF@a]loJ/NVc@."h6U59r4/qjg.iN4oP$RT"YF+2J5gWZqs,,T\&X:jD=a5_s`E=7kGr6KI-=<&@WB% %:(haLBE>K6(_k1g(b9R5a7R@SY5\'0.\d)IPTZZ#LNt<"gHR_C3WQCKjt75)FA^YX@G(G%SA>r+5-uQHpSF2oSPFP^Q+>[NFbN(, %N.W,\6F+7MO!(7lX,b],o=Y,<<6Chdb*o8m_l'%WhZ'^O7/Fhf.'NdpXDMs3$LQWdgn@2fcq`tUCaFqbcMe$*?oRoX>,C]?E%p-( %"GInS5h?"hg<@JcqCq!4NHZj1JU59m[^1)&6B1[6iksilZ/.Nu5!5Mq'pRoSh>MC8P59Cg*e,NT0OVJgq)m^AsXnja$:lkd+QB&D*9DHLjCQh0FDL %'puR%4^5Btc(Y,7RD:ts6u-fp^/=U!MDnrIr2Y7o2(r]Ng]/<(IVZ\4WK''%!0M4#C+c*45#YNHt %&CfdGr!>[&Xsc^F;@DAFd,NF-b[uJ?JuMEl8h^f"=FF.``NO$[XaFKPkO_HNYq^S@"_B0m$o*+=;s"&1?iJo1\*Mql#9"E+h;Q.D %?as#'jkI&ubV30ugp+jg6P_uW<#d`KE>QI\<-W49jM==*7f/fH^;>?V\7$Ti)'P27@AB)h4l^BoVX'/"[R2c[,OgW)1S9Iqs-!Y] %d;=rCHr=Tk`qB0+]CW_a\2DsgV.Qp?ICOBKMu`j7qhr$52%g1JDsu<+c#iacTNUBRY*Ss+ACaS8!"XY&]?#'Fh]9*Z_4#@nT@T3/ %H;\R.k$Bs)N3Vs^bi=TN2N8b4c2V!TC)l5JgNA%iTWlK:'l=*2!R\QuTnc#:RG;K&Els0HrN33t,pSOiXfm/-\tR+j3gVIfWH(a&]c?\3RfQ,0g^"W=BWc$' %=H&``$\cP$o2P&LX?p![b(B1R'XSZP`S=^i9+cHL&Wr08#E?l)=Y(<0J;D!>/b%Wf>,5)oLa`olIH`gS[=&Vo?*%>ciBaG@b'nV1SmC_;FJNc=,tB:]GWS62deOCTe-!^2W8Bp=E>qr5stG8,4huqWg'=!jBEjo7ej->mh`\@pR['AcK7uJcQ)#+E;W#ba9pmn7:G\J"KS=$f9j"B[>/gI&D<%X2k40Xa %&4TK,PaCVX-UN(p5m0V#b))brWsOYs3Y;o*>0k?NE(R`TMD5P %DFopPVuP"G@0*X^rELB]/?:5Ht@$H!QQn6G%NQPAdppbo;QM12>M;]'MoQa%ZSqOuKLuk?@f_ %HLYEaWK#UW!gRf6paqfAoAt(TmE1TnK(!s6.X&#DYi,pG9' %r,=jZNLE;5j;Z,`hFJ?'ggpa('Q;KrDJVV3'IF>AhWTG17A:'>dqB=b1cup!9r$h=+1pcb\_fmH`jP<_bat.hI4u-f6S^N"N`@sk %b(j'Pd'[bC9&N2R^aBJE$0Z!rX(HlHk,OouhN^X^\=gDNrW;ju%(qEi`'$&@'+*[F?,9`:f@9[[`%Cm=E3-&a;U-W/5uCHZ:1?a, %.MN&?nRFTd<=+a<'er\qYupF?2i_E]Hf9cY"/7.?FA\8;n-h(ZP-H&as8!5(E&,7&HVo;==f&-L9FXt!;EoQ %dE3U%Q:*;lPJX`W1A8Km3bY6iS_suo-roku2)eoQM'/O:&N@O\OrbiTk]!0!jS?kZ_h^aKkqKoMRVdML17f,:#mr6_>TBh@(goa_ %`KV[R-tAYKQ+:HJ"ZQ+$?2L5JPu3)R`]KO_-3B)*SmTstF`,>;L-Oh(D#sW5cP+7l9"ZZV/n>8kSr_XN@3n33rFmQWO)Fo1ET8ZV %PHUk^I^asVV8PFceOV'(bk67_ki9h-ItpSHu%io=UdC!Y"SSWAoFMm9C)n?K@Le>T/dG+1jSG)\Aj8I[lE(WDG1_k;+sa>K(")_ %kORdr$k`D.cd#3hP@24+Ah;nmNaP.C`_]RlJr].Nmr]&tJe#S-15Sb/Mt?[&iI[(t6/Cj"3aC#D/Eiun)C&M6&M-JQ1F+8^i@/MM %.NFJ5[:!2d:[Oh6JdsVKprSc%`DWQI4'^,E/?%MDa+MAB(N^e-<$l"_?p16oTp:m$6JV&k2H$[T:?6Bqd(:>[]-kH=`/FR'HQ%;7n*Z;,Ohe42os\&@&a*HOUELkdk3/*h$T#Vacnng#i%kQijfWjBf? %)EIp.NDhfT8].CK@I*t]6gl4-8OEaL_m_CkUu@Z!A\raqBl#XTNmmp2W(:eoKeV/kb9W_kp%bA9oPHZP5su"i+`_jecTHMgE_s4e %Y"%5)1ET0uj?%mh71lYhAnbmd^[H;V(kg!4+P$9&I5pj9YF`D9H+[W;i+4Pk=e,C8g`nr!bV%'/B#UtHZ^^(taVl:71ek %-'j,:JU[koi%?[(l07kNQ./p6+;^Xc<%WBYkPAQQoDDodB:7)\F/GPJSt3,A@$-e'69%BoelBk5pu9K1]*Y$ia?8*`!ljBAM9IdN %(HOHmqpiH%F83g=X`gh%C^7cdn!f9J0=7-?2qFj-%Zt>[BFUaWSM"o(4XnFri!pSPKCPue,D\1D\Tr.0Gj$DPDtBI/H+_8qL(JN: %:M+?Ho6@-h1&_g"Q"Q/#^/=gbNXIMQW>3WINZ%$r^ghOgQqAWDA16,h7!D$Jh].Mr^ds`h$t8Ybc2-eQful>?Vd3p1k/GWk$p0R6 %=4&_(\CRtU's>u"fhg*snHR1&Gsg-`nKUl8:"M[e.V0Eh65VJ77ZFXF)Lp]\r]DtYqjWoF6Yr>6:IpXFHM=$rQRZSWV>'uW&lFb^ %#"-pGGm90U049(/MH^c9qNf$=GlCQbQ:.2]Oo]AQhgjOGn&)GL_F"-'Y/2)mn\$eBd$DM#Y>o#i6U,N%3FZ_Z\*V&,-^&K8dB,X- %"RbL$%ET:fGZ3L'm!NE"7opYWc[$Df(=D_kF^THTQP%?<36"t4IaMH0O:9A4GfA@XeqVq>:r)6d,%GMXkJZ$44iFH*T_\C7U_CT-kS2<\,t.5#3>X<$jn65#5$>/V?,.=hYLG91#q3St^UY2L7-a %I%I'[aM)r@nhIVcV8Z9:I%I'[R\uC3/>&gE"Fc\W79Wh4&=*rR'X_s48AF8ebWVt=-RR%"W<&^_@L:0IH"oUse/RDinp-,`Bc5_*26.)BXnJ*kB+AR$^5(,SBZ1tcVADU8g,9*geH1YjDuaTOfBRnDQi/=6RXmSXq+#>Hu?:>]I]X7T,OQ?qL'V!'p)J!E4\2[tDcd'k!qCc]CF %HB_Tr.X`rE%%35tWUr2GXiDl[:@O[891hW)YRBaG$]3K+mt[CCUbFN_@Kpj=ANPFp?j]RO'Jlk %T/)TOFNBl5BuT*6"`O3uZ<:V[6W\RjCc>K5@Z*<6WuG2@3ZT(\h_hnnF(EpIJS[S-cgk%tj0^pH"QF#*O9q*iKMQG.ZP$gmQK %@_,TTPrIuC\MqjBAu1MOCPLK5OiQWU[=O%*L6o=;'Xc:3+_/]!%*7%#P_Z[pmpW %`XZp1aqZ,MBTC.Gm`FQ3VoqLQ,ba/HTKWf%.`]CU]%r/U;5cnoqPjE6T"fQNr<:aJ,F.gDX8PIK)\9"C7r/&HEU&UJ^pS+Ni$'79 %4]p@;/@0@FQ^D+DD)I`;6@:<(+J%\7,u]X+Ns*qq:7O@eX:9M&U\L9&mLb.%f9jFN,74NAh8G=%9Y&.W-65s>G(2KKd#'4sh^,]V %#0b8(;%.MfWm!&A]E#b0XUU)!U(B/73>G=)-D8p3^AHm>r]Zqg=E:%Wh"c(]nKd/IX0YK^J2pkELTfUV5KPstF6`bd5@JY9puuI4 %&jKLFM[^aKUV=b',XOd/$O^JCi9:PGY8DbSk8']H^W7ep&W9deph\9Km6`E_.l@/SP+:-4u9b<]u!a=4YJ>or`DA#&U]YXcMMb3F">Mf)C$k^:&-p;XE$,YJOF3=DMe`f$\.tb-WNI %GLrdUlAKqd&$AWFms:r.3V/p?pjt0K?`u(89][%3`<,$X=7c\9M)T_goNbpa&e^0cG?MeT`aUa7Q*jG_KOFPfA-m*T/>"=+gTjK? %-],h5^BKODm#2a=?![E4_dZVhj`:P?l`p%!VTH6o]l!30.k@;Eej=tF?-)Jq'o&-aT#V2U#RJqhkq$ %L4XD$'F_%Jh]-%uhRY)j#.$$cj"AoCb(OTKGY9F?#6)?6N&Dkf2itZm&[t-bEqN2C09jH0]mY(.\U0H\32@VElU&'$KJ/5ERFm5^ %9+\Zd?N+Uf1D]KAJ6jZhn3s=hm>9c/^GTF'm`t\X':s\+?j\@qkT+L+9'4(ei,QO8Fkh<^u2sarhRD,`C[-gMO5VUL+f)"X?[+ML$r[&EYi$sq__O]*NF%)8<#^Ws^4-V_&tYWPBCE=BP3 %5kMon7U7HMpuJ'dkmO+MLh#AB63qjqZ0I=/5BLhR?p1,AYZKPA9AehM&&no-^RB#]WcZm`)alZHFN#Iq8dB/c'Pm0>]]mU"\%`&:">cZ/3=r\7=M8T/u$?k`aA+O/mr!' %L%mbcbFV<@Y$&F_$+MO-Za%mVWF%$8q2T53$?V)V/4`ptArPiuMD@)U%sPj$1=e)hrIAm)p_D:K*@(h\8:.olD_)5E?l[efoPl"*BLgtEqIPte%O5&pq4 %n;j<@B7&a7bl,ABU):*?@#o4K2BOgSSHrk?=0)<]a2T38a`'p\`![L%>3L2.QgtkRp9D(`J2ba41+cm%e@urNh %?oF`r3srB(lH=pc&BKYa1ZDUc,m<36JDf6*09'N*P*-@XnOtafGQ.-['kD/(^Rpl)LhE.oM,d)=#fJODN:=n[$%[>uR5sOZ`"N2l %JSTU?RhokEP/e_[kc(-0hgeR1We#Z0^Qru,"!=s45djh*M?^M*Z]0ACO@QpBaFj(72Cs`3*9$%_!_]N:CC+XUPGS>nm(MCS/."O7 %AH:Q2_<'R"Y@,9.0E8=a!K)3fG2N(`"/\6)rgfr'XM9;^7_?n,cgHlM\egklmT& %r]u)2=^UOL`9opA$gVhZqK]>AoTKre:$b4WC$.14&Ws1Oho`m)P8I=^5.p@hE4"*J$;[M4#DSN'692+mDKQDEVn7fjEh3/sq-%BMQ4XG-Vnf'ZATTL3E[OgF[fPoO\T(T7Jh[`cX %.V-5n*Ou6ePja`>/74Dji9AGK(BA;`Uk$6go67ALV+6JB/&.=^^sKA.O2i[pr_H6X0-W%e,X]j/XZ:$kl70Db/FDUV4madaJ\;LCjY`X+ %KhZ)L%KdNH11$75epRHT$]_LEJaF:uqT;HVImH`?_!B,;@7,].9,Fm'SI"gE*[r7l+:S<^`#RR3i,_0:a%d%i;qgiZ,b1KdT% %6O?ISimuN1+EH$LL^sj6##X09`U$t9OE#8%(:+,352g["S(VUcDMN`Z<-n<%G)!BQaU8tjLttur&/Es:C<*s^p\pRS"BU?%AI=aF %FF%YdP9;A9AF869Q$]&fLE_$\@<7jRB/1?)R%oC?"j:H)Pk0ZQ,s!FBrk?a@2KAbn_9Q[C>?1o"(WEfcjm@e2JWVZ$VKQlEC5meo %#(BGATMD&;L`UZ?h&F(K0><][C\NRegoDkEKra#K^2blOj.U8_NiLn3UqA]e--0sA;HG',WWXd:Pfi3DS]4jGR]\90+Ka[k5JiAp %j@t,Om%>apJHhnQ5!>2HfKgU_8,s\q^%\f4C[o=VF&i[!W]fc>^!.aoK+19'jLXY%"m2eW> %??Nelr!.un\*+L,**"g?'GPWS=`$8C&)MF.((\%hio!!Y'`1hL,MQGoA@^,>a>5bc])j(OEO^,\eD/&RkdOT!S^ig#lai=1C%bT= %\&M",Q3XS;3:SVUk<)5Y?+7LAYEYA]c!@f9]DB0beD1#88^B0F5s"c0SATTa$]N-\j3;2;^XfV`S_l`1L@4(B1N5 %f1XVET<2c*WrnuQ%fDF(fme/&J#4T*>VJ9>s5<6#g.7,^t!#LZpp:'88Zsn3"REMnCAGR-V1,5X.1]-r44>lb($M?]1GO"5j#?QM@FWLK,H/]kC;6JY+P]qLR9Z70(S`q'fb\c+q;KK9iThCtho1TkdCrH@Y.%S^kU]_ho`=4Vp>u0E>jhEh**=::LM@n]O09O^Qp]3' %Q"HJ4IBC+F/Gr71711MISN4;CIn@+GU4Sn>7TY]_.LepD8%Q"d'#=e`Xq'%;9>]-7B=*I8jt#YA2B5BhW!7+aHmU;dM*1cBFi!teIo9,\Hok/4#A;plNSOZeR?qiioiA]pc& %R>+2T5F3g.8Rkk4?:BheKM!]^U;ep\;@A0]eh'tHN9hH8C7J['@sI`8k;%aH9#t'\Tp4aOPr,Zt>V8s"W+=4K(`--q$ua3lVXRE= %6pu^PAVuBr`s%at6u`X`'6A?U$/Ar592Ed+,ha15pVfNW+_-fpG2$HBje<(Jqnl?dcons5:\aElE#5^P`X*h,ND2rKHGY5DOF&"#oL*XE]`^tHO&\b)^O"6P)+_M38M=TadXR(9?D&8`[gXO;dSU'+88];9 %>'*8t3Cn$*8?#;23Cn&_3gE8t#K_tt_6]'`3Cr(m?*s`q52IM"2$_5T",Z5I,asAH"pRt^k9/G6O=l>:KQ2F^jrh516l:-1C^uUI %/;WF;Kh]?*b^6'E80M!%,N^,ZTj2,QPKcC6bLKX3lq2$GK4 %#tHOd22._4Uf8]**$i!%Uju'`+``\"16B9q-_,hMQ@Y:C,b9SKQ@Y:C,b9SK&NuM#%[($#'&(K=F-*o,N=4:1/k>W?7!"IF16=>P %mNck8Ju^cKa['sj5go=iioVAcqTFGNe;-X`%NI?+@S4fIn>qDYMfHghCIm7T\2s^PL:f20Uu_[)0eiLb-sYkQD8D)UN4[lr#-Dk] %#C$!m1$2)g/hIliNcA,%:R[:]T`gqu*V5o$"R]")r'r2eO.^!;Q,(F+a,Et!:P=b5.=k"UEAS\'Pe_,B:#hmVrc]iCa.[!lR1d#s %c;dn`1#M19;iTp,jVSSZ/7b&Dp`-&.-@D+Vp`(O6q86e^q=$imH`qgq&9hm*GqU4(,c,sCBKMu]u.@#]+^aQc#k/EC#=rSb%;^&_QOFNAl@cM>_Y:hAP'0er@8YHF69Sl>1"qZY7>+Hn2E.">bo"O1o`[hf9=-Xu>7WlC!BL!Hr)B,QH-m`qeQMhC7cP#MRVIHOGrq[NOdeUA]rD@sq[crMRTGI`%u %1.8nk;#M^Smnh/JC37XHI9(*(k:[:pY0kMb%HY%Ak0H5\W)>!hWd_SQLDkAFHZW?fk'LD%r*&AH289sB7:`LFQda-*rStGWN9^0; %'=DV:GQ(s0\GL43gAaULCUs*0qQ]VKg9n\hG4"792F-[A`kk0EK+oeZ.$\cX/W;!"-qMp1/=D4l7bmr$i\!pCh8a[.@H2mGO];cB %`]d+jTJsCKGSsa<\R9%%3H5U7!e`_h`p,g;6k+.!&po2][6iq>i8R47(:#-!EkfU-T]!/a@1[o;n %CXqCTYX3eo9@ECnWl`Qk'>,2_7Tm`bR:qi*V5G`>i#ba&l(., %;_B_gd09+[_G*)3G90TOmM'rHp[n*pg1NHf_n=tN514NJo:2\H2`ig8*K%;RZ>1\@j+X50F=T7]g+!h;*7'\SEg@TFTVjVIiN+Vl#Z %-hX\]S$j6=(4cL::`h#2":>-Z;XqHN!45aR%lR;P_-"&ZHl#`?I!i;$/<2A;D&'W/=#eq!r1-([N$8On-P_EF8nIWWWU4mEiH#M6 %ZSk/?+aeg6VE>_knKD);[4T=Ykq-0nZ/+.3Z=>LE9;B&O=''lH!_ %JpB%Z.!^$3OC&ZX;/Du_2_%1FjkK[4Puj3A\R;DZYV(',Mssmi+@tf7L)D0ck!%[rWrC!$Z'+Kb-MaXPXD[ujmI)=\."dG:Q(noY %@1>RGHQ.Kt$aPt,]@kk?D;OC;!F-A:.0V1?=t]KL\8`,aW1W[JDe>f)HLHrb+PGu>+5EbY@(FTY\!J#uXDri+3Kq<0]WRTe\LEqn %gBkOIfh(4#Wfb<4eT6ch,A2[tXR48C:G?+"^V4c=0VsnA8(-58d_4Fa6^Tmkq9#6kBS_2k+]#4-E6f"'/[^7SdbRmN;i0h9]>;3\ %`m@A(2",0X5Cp6Rnuu;oQ:)+'rH.+5t#iJpYX]4M'AZ?2`sJYJL=anaf>*rVK.u%`M^3`&A]h[=nSB->A7&aWg5QW %Hlo`]85BFcij$cfMVm1Yfs`(4Ma+k)4kX.,Be8bjdd%8bMYaU %9Y!KS`:iNT)E%A_0e4+?e)Ta1CU-ISb48p#-e@,7m"mq9,8MJ7-XV8bS?9)L.CjudC(>a\0te3Hic3D>:\KTZ=UCp0O]jY,)L*u7 %Y,7-O\&&2fo6?HlNDV@d>#N9_-]3`Ho*9`RQpo!&Htb*LOTEalX7JV]`0@;k6=iT=1MDpL2"7"a=*BVFc4FEqe++^J\-`_#La]ZW %B])>Fd4OGe2'RDsZ.ZM<#NV]SLFKLd.9BJ3nI]NmF"pRqE467QjrGi29#LP_)L-8r[T.cKIHoe%V-cVs1@]TK07Fgaai*5%S.VBL %]OV`GI-W(=e)hmqj.WW`?US3U$@(XDph8S3K4IjtIgs&$'^uN[hb+&))'jk0,nb,1$H[gH)&Kb\[`TZEWg8\uHk]EY&(fH9;j'U< %&1*R(7$numCVYqa3P?Kq$\aDW,?;qI\_7)DnM#,CM(1jkA<`c"&RGGg9KXA2h'?#8b7cI:QAltm9L]%9Q12Re[jY!`&LurK %b:SU8=_-*2o[(BH7KF$4hbO>-)$N,Y3o*.*:M-KPVs;7pg8+LkH#Tj,bM=]Dl1)(/&,D1$WT7DN/,Pls]B\+e7'?H92a+"G %jPHl4R>:'Kaf=L6C$'--E5S]$i'_70bOt\-lh\WN@$QV_"%,#t)I,Hj!ff?!WB?P>iU!L]]8jhdI90g9JJ0bL>^7UE8o%4CrU9W$ %c=f;1Y3cqg2m)oJr1tRp(:'$bVUTA"(#AjU0$/q&:p[Ba5?*`hSC%YorR57,EYc=r-W_3AJ]d4D\YN#t19hLk!i/WV=NiRP$BK!R %Sn`a@[Jmu-dmGj.53(jmqo&?IA(ia*P,Q1W=t<#DCoO[\B!&l6Wa!.o^Y_o.i<$fFMm3U\[Jrs3](:I1\& %C%5SaNhmdY>@1s0Ps`+#oLa&&#q#J@7?/hAn1QJ9+:8J4ar'eoK2PMH/*6t#`]b*$?@goVTa1f.(DRH3OJW7f/(KB*jE>.fJNU]) %:AtS8:#]/iO\u@)Xg]-cYg,J?d^[AU@ZE@L"M4_$jR>gCC+L_rrGBf-o$aH@b;<"Sm&.]AJSF1^$^sNGT0ict/795.F7Ze>@0^#% %'n/c'Sc;2m(L_hu.MESD57)`"Rd]js(T1hO/Vt[/8!F"=jpT["mBq^`B"SjPLMJI14oKT7tL9oU8N@q(+U"$,*./NnO%$8:'U6p1B#LOCPE@a\U8Cjc5&4,NC,10;<+W:QI$T6bOgi9c %ALKa#kZgPWQjDub@p[Sc9>*eq"Ur^irNn%^OSHkhHkoRpN*Og\ka=*G(lDSI.4CgBd=]h^3X+WOoW#2/CH;X\Z[=O=i2b$90"8go %!"hm=OuS4g(`%h/a`Xe;Qec$.>32*V+.ji4Gk+uSh%@>tP8Bi;Z?&h4,1fG2`'&F6SS/#]TuLZ5Wo %dQRu>4F\UYpa$NS4F\W/IWG(L:-n\,5iOM53X+WO^q5D"dn+/KWd!IojkW@JX\sKu+8,@,b08r::AOc^R?c>A05%-G=7J/5.9Dq& %(U^*H-D4fDTeu^gH9S7tX-_)+p<3Tq?CF(AQm<0H!A6-%]p0pRgbm2IaQRO#Z07_c]a-b>A8P5 %meNsS>@S?^j^IPh]6Jb0":Os1"UL%::DFilL7]qIociZ0 %\fjbQ`nVUl8l7.cP$"1/%p0N]E"PsU!pkB?1bIlL%0Zp_],3n\?O%8j;/-E'pDmMK3GPOP%1J-P22H&NS;9gYi)q]sjOkI6KO;]L %Jp91;#-gH!'XYnbrfbF+jMV8_lbZ)@K![b.@!Q+7]7dfX(s;_:J:sLGQumU\#8Di:#o)1IR@FXe)/IMD8P?8e&iraf^g?\p>MR3s %m:%jD_uh^4%prkr[hb6]agdPj0QjlAUr$)1/Ifm3[J@r)+@HO_J.W0kV1AskMiKJ\U_IF>0ZGU>%8L!*\*f2P %UdB-12Wec0`S+2B,LmbLp%6;r(8dO=`NNO:6%ZYb:TrU]pk?#@^XQm$S%BK1?q@BA`Oko./nf"\3bAJtO"Y-(LuNt#/#8_@XUpb- %Wh4@@E)b_c]"Xu7-Y"E.L>?:4Z#m^F-3E\%+hsa0WY25PQ#U]@ %3P8a;]t(aiR4DL_R%I."ZqSjTM='*3e_#8X?.S_tq5M[m?iN+A)U>H[Udl6`Xp=a@^8"%[>DBG2=d/sY0[&fjR2=g_ZR`KS%US6( %7VlnOB\&#(AdjYL(X6FWaB@E:G5*K(0O*AZWbTbjm2W$:H_hJn14DQ,prdc&ro-,9aG(S-Qr$U':-8hlaQ=PZ?7kQ.PVR;%K=qQQ %Z?p>af#l8!_8;cqq+OF1;sN-5V^ZTEO,bVtD;nAo7>,qV[anW]:>?q7Or[gVpLGT>,\\2'+D"Vi[CFA>W;V59[KNElY;IB0kV[QgkrD: %.\1a2F6T&o;A=a:2-2sp9%jc]0rYK_KT"/Xf@/!>p>O;e.a3<[PCL2R.`5o;Y8LOkgZbFU&3@lb4a^:4;o**Ej3KF69RD1-pl%[@ %gJi%S<$l32jlE6I?V^_Q]BujW=>OaH=XGa%.Ln?Fm+Z[t_&cIT$dl"F\ZU1r\i0Pbc$92g(=A+&[p7Tk\tb;uLa1&[Bq\5]I9b+Q'Nd] %`hLF_Bu3'"\GA;R0`PH&jR:LuWElRu\AlA,h#@`h+^]:*>[DR&)eZf-.U+t*p%A0t[SA^tP7j)3bDC(-s$J"+@S;BFnW@nM?NXPu %mVWNtM_0O#"u)9J7LaYu@(t7sfA(afZJA\oh8peI.f7tNA,?_9*q?1V1!dnXLT;OGCpm&'C9 %5.lE8'5IX$PsNOP"?Q:9VSYq"I$h6 %m6Nn,5Hpf-`2#,N-giI:=Q-,."FOJgV?q.MI5AI"P`SCe)`'"":Hnk$dF1*kgHK;j:@_Xp1Ck0-%eeTO@T="n1 %mXZ=!d,_,!?3GIo6h(L&CCYH]a2!HAKRnZi=O>nVn$(N;oN.OF.$t7r2:rNgg8^N3PgN*01HBL;9uQ_0je;B=YDs\G.Y!*Aua(t7_;?/ %5Gd\MaBo[XliHR)gk$K\9s]4qE<\#iVD,&O"Q!+Dl8!]U>"^4ZhliZ#mQ;ee_*'3:ups>h$uc<'&P+_f9hi@K:5Pm %P^@fk[X+8=<77[M$;IUL=H;;%iSP_c$A69<6!cao([r_\"UKP\/94aRT)]41.j91X@ZF=SD0q$1hFH(&B4H,FU6TCS>)u@)H$R2e(0@A9^J+m59dpVA\f8j5Of+@*rc7=.aOe"I"@'%?&:'EP&d(T@9[%&T`a=SYS$%t.AcTW)0IgWD#%]loJ/^$SHP7?-`EM/+VEiSUmHlN*MW%E*). %Sig`7?J7ZJhfmj`!A]Lr$fX""/sPm2o*ej\R56:\=7+Y^XA=PJ %a?A[/Das:iI+!CBe/Mc.j4sh&!I8@g,ORXXZ:APEcb^JJAgsW0&If.Z77SUeQ(I/J,X*(\fto%!rEI!6hrSJt?M-67DUibH+ZN[,r(_5OJhV[e<_]Kr/ %\F]/@eICTXL,c](Nr*kZX(@P>P#a0EHH;K^6:sGQ#%g(a\UGuFmC]n*[_d_=9ONj %DcWtAYcf?^XlhQ@N`a;g89iORFr/fVrD_)M"13X[!IX:92Xg5.i1:X[7EbA/ObBPPfeVf.%e>hO4W\VWRf"'&KplDEn]BjN.^+30Y %ZM8MPZQFhg$HdOCf,').$;)c*H#dBQH_,$i15XESXt\`Z3o:[:mF':EU@MSUfe0!1&t/1qb'"s&)P-=(b')`(9Q\!!.,.2cb2e96 %*GcO,6!":!8IN9p^+$=POnl/QC_uC0-!ID$Q0m#Varl'J%-liP+0b?F]?'?Z9;)ZB4((i*DfI4QKrIUj=&?=ub=kL?m'=5mG=9.q %.,1T;_+*OuK!JYgC(^6F?*NoJXSM;(G%i=*;>IAfCffUXN%8cchI4:j>s[/H<$i+4'pS+&1YCo==&?>`7!;#]]7R=oaB6CgkmPFQ %iJNC1jsl.Y2/O6XSEN3WD(`?MVSOh*?tg95PJ2C2\T$CKGt1EJU[/l %KcB[5;4DNW(A[AM_[o[u!Tk]$$j56\WtMnKF-R%__Ed[T&E4OL76P3!lks4dX8Ua6M]Kn%8D(1^Ua@R$mLV+ng%UU`^U,Od-lI)] %Lq1N.\B(&l;oQOca3e8hGN\n?'H#Wu(CmY*r>cH9(m;f0L"Jo;DD$,_j.GY$9VtTb`[[MN_J`h`Jfr)VdL2G3TSY=lP%0D"-,-%1 %R-(l:\A%W[DDp=$Kmn!NmRmLUYus!]L[Zr8!OQbPEcJ@"r)3Aj)Ok,1DFq.RY=8K,m+Vgh4M5M8&B>/)NCWCl:3[aFM'=S:1\=`% %!9jeo]YD]>\0<2R31_S/YQA%OM?6=ef]DJ6.]4[NjXc#gu6D=6W(D^SF!Khb$.7^n8(."108L]F%WlJ"t$-``9?u,HGu-Ebi!?#YOCqH^#SVe;_kBY %i/nS^P77Ooo&8mn7bdJcYA%PZX9o$;$ %]J$D0d:Vq-lE87\cQC>?WR(4/R:EZ')Bm-NU&%Gmc`n[a'>42C=f46LPD(PWVbKVCS4FW9+P%tOkG1TY#%4"]E),W5-7f&^`]4XC %+,G&s_`-1JnWm8QHfrX3E[g48Z@0N\K.YCE3KnEF!>f-kplc"'Sg`be?fi#r:\&:q!KMq %5juf_ONPO6$%@6(B\\:Sr/SWS&_3aDXA^+aa\+XDR!";(3MB2dUnjb^S.i'1Yngk*dHamB1<"Sj6ZGlT#tY]Z.1YNO %.34CWS`4T`g38D$@j''Re?'5!3lU'JOKf]kMNEI38rY2eaMBlFh.lFl,RJ*; %MBJW#6jPb^A3c)'Y8NDid8$j=.XVKOpVmKhkj2#?I;dV8Lp$77bM?FUOE_3-`[-VbQ+O<[QOrMCZO3s%VBOhC14/&>Bl:$NLSt5D %AoG>l)s901US6\gHjASI;Xn>4")p1ElGegsJRK!9o,U*W3t)l4P3;:/gL)p0')HYJZjj+A\2)qBBH+Y!fJm7U7GHbt&l[pSJB0Zo %j)JYE",M>g[kaQ!G6!bD>o,,u,"EFH`MoL[#eI/1/mW#U-D;TC%"%5bRCRUs7CDq:!pcd+h&oHB'/Hf[IKnZcOoeaLhRFS<:*^iHdQ>*7Ln_p`6p'a49;nYD)eU-?>obj8Ghbj%4$>9`\g!"q9X3EQ)@o&,:9]BH"bF@W3#%S! %Ie)*1i*-'XHLYEaWJtY2!b*mqKPQE+?V^@JXt7\4@WcQdFo:mNIYZ1_o4u8:ATp%j&"PMi$G]I@*.'W8,P7l$n<1K@p3?:d6hJq_ %Bu,][ojttO0ItA-YJ)RSr2+6h^A>/!.2`k48(X*`N`]X(=0b\3G'rso;]2XQXF#@unu_Q%bNG^kS(IOLTcb?fa5;M..@iGC'.ph> %9&;^H?V65pa(sfHQ:[ROF4/]Z4A@>5g5`Ti:!L&7Nt7TR0jhIr,)Fgu:hB6BGHaTkjKM@m;A[:>f6e#&<>?@@!O&=p>:dP.BFGIm/f44DIb:(##>:1:'V3!*;e\p;aW6']1Ho#h)3a$'V^EN4V_Cd%jPAfAuS%CYu9rjJd6 %H/Gd)`g8e1;K]KtluLTZgtV0;J6??Q:o+[I&16/i+8o2CK>F@:X:\l0pHJ2VO,$$HGeElCF1H]U@Jj:Xi4aJ0J"a\?Q6JM^f,rl) %M:VRPVZ(IKcJkhO56!YU%,]Kr7Vkl`2N8B71j\B1:Tu=TP7:rm_tRR/]eqa\s5)$R+)I@/Z`9X,bh&.P3,bqKc`&W5:gn\;tKb\$t%k_DVQ7LmZh_*2t2OfXYbq@S$I#!Fs[\C(&-FT#bs3b"o-r%\3LjE0@ff.*LSr=rn?2_bK'm\%5@)!n`4T:HE:YNt<_7AIR[5IJ)0 %](!;,*=$V;rb#_^F+(MPGl9hThgOVZmY#LaD'!*Hm9W)Y8dCo`es>g%cgQZWL80$'9.VrKLGD&m`9O(V57I'U^(Q,%b6mO?DZma& %10+DYq0d/7#2@[L`AFFpjosmM^dSNKp[sdKbg+M^h;)_t["7^mM&/0tn%%>\]o0omRXB1QF54%c'U72:aq"KYPZoYE6<=A,hE:^! %mUS@+O0GIh7&r+(8C1hIbVtIh!la%oY26Ho;qXIZP:fulZ %C4j+Oh0Z/MFC(Q./%Mu\?"t#Pb"\JB_/,qQmIY5R#^>Gjo$rOT55hWS;7r/p^l2U6(r'Z!.i7HV>uDntr45^3>H^mc5P0#'Hcte- %g7E7XJj")9]p7@N]I-paEfmFfDkig55tgCI`i?[9l4_#.d9)glRe,n?CGP:m!AGpGQeLG;j@GEZ\b`/]^pspF/2=)c7OJs^+45HWCONR]p\'W`VIN<[/[Kk+EU;*LY]XX#Y3)tbiIYaj"6Y?_M^MO"n'anRl+9I=B)Jm2ifIb %pf:-sB'cW77_J"dZ!/"#g%&3mB6?A>5.:bEjdY)]6Y#ULnY*]];LP9Z^U?:=4KPWei^nVTQ,TQWa$pom4;mo7+NDIg=ja %2m6Sf9En\/Dn`sCn,i-mEHCmDg;!QXRu\9\8,FqAs2BJ!oaf4pIlL;Y?US_t?_t'hg-9EA:ENp5o4%[YX8+IEHMIA`q=-\!9%\6i %g>?1Rr[IfnY!%PUbC?he1s@sb%=cP!!OR"[:O&I?rm]nV#QG$H%f^pos4-#"@6MRD=I#3ujU_8315mWF+%2^@*uOb`&!'ghbl8\g %_T0+%Igg8!I:[Y^s++NXi.jg9qEKI_5HB9o:ROH!pk2j#Kol`#+j#49;B2GI(m3pZ`]hoY5d;GNWXOm=15K3?:c->\Boj8Oq#(O74\QOBp^A5P54"(%WDL_W`p`H9)S4]c1ZFN1)ql/Bcq-)B!8T2BNZT?C%1UaIZhl4mWkFB=K %qU]A?KdhHKqtc'_"^/U.ESKr34G0^\8Hj\,@.CP\>&lAO^sjbV$U765e_$c=&Lea=n.)/DCAqDRCgCm_QRolL]&\R,8qPpJ6jO %EWoL+7GIJ(/0bs1&N;%OE9UD<,,cR<>GFq(m#beK*cO&eqt*FL:f&DS#``?(JgdYQc6a;07A:auFJHVeA4FL,lJo%,f#L/GCZG'm %7a2==.ZSeJn%e]OWo5=L4E'`'S?I.,^A%j.&eaP(9X$1J[2SH`bT[akb9Yb0-ou"ZCDD;R(]cY=jX6+\k>9Kjj:W.s5F])-as+a^ %[O91sV"!FML'+L%'NBgP"9UL^KIUs#+2Diq//0B!j8Q9GLte8H&;aCHfLmMjV-!-ujCDDrpG %MhW2X1(XejJ3e`h"7-#K/oq*!%?aoQGu^PAT2XM4-p#Ne7%&V\jm]fF*a\=7A/gO)!+>`Uhlf\c1e03H'/g)Ce4]B"aWi5I)-L*s %O]>NN62:T*n=oHG!`,m7FY-]HPnfjlH4Tu(XiHdf$G7dlWY"Ae755s[Mq^5`hSkja<S&qQbeMf!JVOf5me^DC&QC`j&YQE;W/7" %,ud;_J8sY"Od/`X\\JU,K3D;BI_:mY'\ %_PMnBA0j3'h42XBN!.1W69u/OFt?+7lCHZ&l$Lk5^A`Y7C;8J;:"2_4/o*Y:O\eP8OuPot@+57:MdeUX*"8[f$2,sBC8K1+eUr3a %A0[eZi2?)_#u9L<1V@HY&ffPZJca6]mkGIE8?g;u1:!4.!2Br,>[f[^Q*=P0=p_YZIaUiu*2Flp,m4GH:OtD:!]Z#*=m=NT$%*jr %P^'g&&-*cO/:m5TOe=>'N.ah/^WK+:i%sq3$LCfFK1.6[/3b1+@J*Caqp[cG6t=b %P'%f^;6@2gY^18,NGKn/(PZIJ<^MnaX9jJl[h8`I"/X**0^H0:.hUk#4N><3XAfaA8YXH4 %NY*LogoiFGP0CgR@([%f-7$B^4NiU?1I5;=R0f2iI[-=_(o8?JXDBg/!h`^34Ikr/$*/8rj/;?p3mt`11!d/A;Xb1!R$?9I:$OlH?XMh%kN$LO0C(t4c %4t*,Tj&eF@:bf2;C5jsVU7aib^h^Dk=j>r@pK#B?,o.2K,CZ@8#R-N\AEqm_CCe0qF9-.k<8uVgWX)@kTUi+Si!OJ:5d`f)Xlb6/ %EA_,-Z5g'HA*+Zfq$#F!n4=Aaag@CnJRRa"/N02-dK2>+CQVl_H"X27KD-))oAKCoa^tM6*3kA,hhG!FF2[T2c2mA&e/V>fM9ce+ %blNu[Z*ZZL#VU`Yg01-5f&*f7E#c9fQX22DXQ]:*]iO?4XgR0:6h5"="R[3L?l#$:OApHRM#/PK"\oW:TNi'05!#TRCS,L0(c3NI %Bsi8+Dl%dTe6WWF(%IMk7"6!=(HO0ZI`thp:'F4#[$>/e;be`[4bHoYN"71SV8`0?S+66^\n]#PCe!0`g[LUo:/Wb %"X@L"0GD)#j!Cqb0/=4980#gRFu-rZRk2aWh+UYs>%YXJK3r1:GRThp,fO@BGZGOeU8"Sr0b[OToYs\_dq0r6-WFXReQ-I[AqEZ: %P"Qho-H35&U5`Z)k8K8hO'`.$-8!dP3.2,ZbiKpBGDiZ'jC!ZSq2]PP%hk*;6d)#Ea*Z4A-7W!oTXm/n2>J9g.!b_+S/^#*%cu^(RYJT,ZRZ#]4hgFGW^]@ %m80[2^=G%K/j9-*Bc&XT5ak#K)8U2.'NQcHC&KoD!WUJUfPV'tHCA6Q0X$_P:-"+gE.sE9J#jm>+gub*T&r][3cob"-:f %!g?,k.:1!b$1*^M<5lG,U1eP\MTC]D[>bt1&k?<_GO=n..'UhTitS1i3> %?NITgKY!lPK7m*rF=Tti?p\G+alc%l[\BSd))AM0k$8*Ac<&!#W]i=]"]`O*5P*=;CBqW>,nabX^JrFgJM4pV3-)OAWE)l^_;art %rHMH%"dMRfN,">9\o8J5:dngBJgca$-iMo_/-L]ok>_'jTbX.o+Na/n[=-XJIb!rYi;/%LcKI!r.]4j@##j>GRA3rXkuMjss)dl[ %O+J.A&ULE1\dkRZ'R0YRY-l=5aASog"^E?5Re0DUXrq)Ck?ruMJo%&#Gb_\ECjL9K`l'7FjaQD%.]T*>7mD^XRf$Yd$LUoO@Xek& %4aE04N/#lOr,Z9'JgB'B!sP+c_dD[hW7JnZ_sNKR*-g%+%N=QO0H64*$LCr[7\HA?'F!.a,faS#XiWe_b8kT/(')c;N+.8HX7c5R %AGE0?XoZ5$nX.Qk]mJI67UKrtAM0VTaXD7[>Z-SEc_@o_`kPog31sW1SiBDF;_X'QD!f]RQuC,_2!JR0l7s'G74&=(E8mZaH6H:68k(AWH@r9buhZN6mNX5o.^j2V'XCS>b",O:s"A]'i9:-g`O<*B8$_Y<1&eEcUF& %7jD\Mk$J9PK1iupAD'Ke0P6,U9k8t]E1\G5BC.KCm\2DJI>US8L+8,T.<=\38#M.^XZDWp\NDjf$njWt+f[D^)8a9]RZ'eZni@pnH*YaC0_-0hHMUJdK.Jh3`\8,U8TX]KNCrW5p._&!/TK$)?osuZgL=="0 %;L.Xq/P\r.4X!sM"NAd?>+CmO%mLpn4aMI626eVR=c$SR6#ct*fqS#@^P(-h8&>WR!=o6Hc3h3p%uR-c2-DN?%Xo.nKlY_$@cOY2 %T>?=-5oNZuSCK^G;c3:rZ!,]ldT9AnSS7As$_&(cm_MU'-b6_l!J(tYQBu//"B5hr3SkP%7Q"?RJblll@oOu;foUaf31Y\V2$-L&hGhF.j;^(JKr=lN,+Hb1_L-kY!KHiUZg% %A0V4>T'%DVZe5V8Ogp"a.K!:a"P#TAldPU(GCBDr2<@WOYR0ma'BW/,Dgmf %3%]))]NC\?2\H1.[KTZ/Io4oG4;+Qij\\JKp3]``^nZjAm97t0\Fo?Td;br[T3)aW0Xu>LSD?^AP%^?krY?`0O2Q#Dn7X%tP-_12 %F*9'"?#*RLQO\J0PsD`l!Gn1[8oV'C85C'ur%uqc^$enoZrm_$$0eLik>'GtYXp&G2Sb_l*&Ac.JB<)eQK,5RZfQAW&Z.2MES^DO;(G+a8.Z*6;lHf`3HE" %9OPpFY6^$A9Mj>EB#:Bs?Y(Q<=A.UAH^9X6+KMY[B'3=S1NSh=FbtM5887,(SpLl?k*-5SBMO*s3EBdE<,2A4d/eH@XFH1V[ %KsO]B.`5uJD`6ln\:^EM:Ye_-GkQKMj7TL#C4b[#,UNfnP7!I&fk3jj$SU4G#[/*/G*8:&[iU!CMFP5N#u)#XWs+o66uUPVM+eMB %I5@rfH<\,li^8$LGTM&1aj--^p$fjt1qG_B6;o.e=Q<5Blr-<[-8J#aLh/sl_*10+2547,Aq/#>gJe"4-l,+M^F@^u`hV0^C0Aq]&V-nQ)N]ABSO`ZCLJI_N[$ZroNn<9LiJBV<# %M,a\e^hDR?"Zg&G.7fUel\>B1bi0j]o&qpo5f#CEYqf*4cp:rQJI\"VIMM'CGeUs$AQX0a>.*6ZkuBW)H3bp=CYL"$5dGl1WJ-CGWY+3.62\Y1M)N#48<5g*%#:H^@UCKYpqECRuEYg@79pPAqG:*JV!jj33nG;58Zh+ %-&;D#4iL#E/."-K$7j"dic')2*.t%%Qu.8O%9AK7b+ut3ojQHAldJq/&d<\^JK9@[5#G-r3jN(4Xq;D*8,LCOW4X660d1!@P>l[i %7f.kd[T?JF=<+'UJ;%eSiYX*%O9n>?a(XdCD)+uO,Al"e>oTb=J""rUCijo:+\UgN:mNdYdQ*Kq;ru_@5VmTX@re]3DkeV_m,&LPjf@U]K."2s)_VLW>YQd^Mdj4$!mh-F\Ids$KZ;!E1 %6@KD]^^Ju>$!O5)1WAUh[2C&]9ECOmD5G=ua6E %P3u*bXeMn1`o\-@L':;)O)Bs=AZM[^3$:XUjfNlFb2P/\^hXE;D[;9e=8#oas18K%&]**,\j!aAOQE5=Clq_(U`,l)7WUTi[*Bsj %<&6KHLkaoJYe+W4WskRT$-)!u)Pq.S$fJ<5EkH.*21,+(ZFqdsCCMhX@%/=*QV_?"9boTT<9s"@,8Ql3@IQC2Sg0J"jogOKc]N?% %4\%+fr1k714IQ\<9MrT\=<^?gUO8%h2B)jYgp3qF[J&icU'<5bH]Zd1HRmX!Y"$RNP8"j/dM:Wtjj@08ZW36/>@SsONg)sEB>(s2 %j_`DIQ>=J1XGZ*c37$0/>qYk=!c%OcO)g0jiRkRs&FTRV[m %WP='3$M)OXI>?Wb"@Zd.C@J0TLSY5[MQ3Z8$3buolLQc37T?aJ$L:jqHNGScN`Mp1KFUX`M/^*mNh.(&''MrKCKO!P0Q@#X2n[( %aiibr6UL)?:Pm="i;&$!?SfP[X&kM%;.qb[D%0f6WOud&Xj;F/4lN7D& %LdL+D5\juuiXj;6/4C1cVSg806^%!?4#QZ.JWt@X'(%m"*:5!KbGYC=l'G3GF%O$ujN#Jo3!B97O8M';O_B.ip!.gf:8'2N/#S+N %.?p9#JgYL#aJhT[4L/^2i$Pub=LEk?Pcfqu=Z%pQ^QbX<://lX22;K5D,>2lk%crafCUe;a/Md&fs[_mg,ZPK %\)b1>3OJlZaC_:HdlFg'qCiXR:2N61_ST<$JQ#3>hAMn1jW0US]8nX9qZn!Xl>>8N&)VHnhKnl?cZ*^Z0g?#C2FN&.MK\(1%37I: %L=)3E/-A\>Tji[>S<7etR:#HBeF^&'k=l2a03W7SQ?"-,FS)f*<^WdDlr04UXT%,5*K&:e4Ak %$\\-tcn6]f&a&:I.)Jf'4aaGe*_^,2"sNaK72U2,dXL5T#TGb@+I12t7G,GbW(aXp,&C'c3MPBIE^eWsIN%0c.huKV82]Hfr8ig? %K8%rH7*8%h(aV78=*5<-_@BUcS`b0oLg+/f %#Wo[iWN=RI#[8>5@\R])E^c@-Ud`aMV[-M%l,-qpH4NGH1+PZ5422Gn]RtfHMuIeigM1[TlfZ3\#;]M"bf^X,;]K$naLjD0(,XbI %f9:KCaC;Q\Fu!tf4FNXLXXE]X;4K0]$8PD`h,Led/gp6.RpR_JS^):?gL=Ss:?NXg`p@pC:AP-i',1IV248YpO- %i?iu04HGDgr8dAl5fH+$(h&GR6su/OaB6`]E]pYJ+eZU*M<0jghBOmLFCSjD,9=<_JM*!7E^$Gm&1n!B]X$9bo]j49RaBZQBGjr@aoHk" %XrG&0ZH+3!=W+l?b/bcf@Q!6jH?Ea1bmtk[."'8n2R4(9Aq[[gIDbk:]R]%Gl9Z5!i1<0$g7`Q\)hP"ioc/^e7_-fJ]6 %iXIC6aSW(q#s$'lhV-ha,:q/@jAL01Cmk=8<3.[Aej'nL7(LLX_Hb49+PL!Ydb$^O2LE]\.tfQW$[P1f72Nc^ZLh`.>'=cS^fYC` %'GL$D%;n;%%:(i"cudirWKD:%@Y=T4!Vpo^e,>#MOf39@;f+h$>tVP;H((LKKTlRlH9\('4s[PGeS[s4Rce2/lRf(UrBO7sMh1b[[j'J.@Hg=jr[e=-f_d]rhY6oUclOQ3(3d\\$_\<3"j8"4ZlV=hE\ %0Lm4EDKnTMq_KGGCSHb_V?EW_DGu@dKdK13or:/kUrl53>@F4nN:92;BScG#6sGK?+i>jo8"j1^6@]jsbgDKUd);kUg3[P-M'SFf %')&lk6A+!pRRIj'Tnu2*ULV?,jVAaK!G#hOBq^C'enTd%/MttC[M1/@V1g7bFOM]9$S4,scC5:4gm8eFBFTB6E?&+uTo%]Y.H]#I %'5bAc/l9(77MG%3,d$uXUHoc-l\jrIC)]lFYT[sJKWril#9/9*_F0S%bTnp&-CP4:TgYJ'2pim=(FQUHd6s%@ZG"+CPAnp7f;"1W %p5NZCmpr,K)'2dQO//;1UWk>A8@^thd2!tNd;(9iP92U\iG>3Ur5c(j+*l:$URsW@>]Ng6atJ"FGi]a?Gg@0NbgDK-GjCl'\B#"P %^"c&bF)'q`.ld3B(YQg-V2)/1eB:!c4/\AcZ@Z".pQ4dD>'e6sUfc5i0)<7kjn`>ok %eQt#XGu?N+bEkUT-_be=kI(YKem#\fh_M/9&#]G3"a;YeP.E*!0#-Y242KI.'Dbk9Bef8q2JfT+K\JK[(7m\`Kp4'G_i/P%6QO %GeH4X\2$Jo$%:_M?(?.O]f^6(%4N)_6;KG)6lCGH=te6,\rf;GE`h8Q#UN$FOQUJt'7Li+4inj$;8l2hH"U!(erPJ*mhOPtr:,)Y %hPH]!r9>UW4]LU_*,[X-O.OqHmphghkqTn7].GE&O_@38Nmgmt=/;m:N9GRS+#s_e/qX=agGd(pU?h&k`'#akb+q##EdbcP+*mi6 %\Xt_'Hpc&KB`o5ThF(JcAD4`Y9t!6kZa5t,-hiVclrNsPoo53M;0(-t(R/I_1\B'oNdB]lr\iX^I;Rc/=>\tU,o5LPEGn5cDcXBn %([hYm_,a(Ie_Usj?V$t#c00>VfWf%BUOuW^;W`]Df;-WMCti59Ag9EpYCd&^3L%)E\s5>nSdGOa"`=)AF7`=:#MP6(^()ed&=kCo %df[*jR@>6!-Hk2#[\D!jA:u&Hf7>i*;Wbu74"54q;,IK_N%dad^t6CAI4TI"8SGi:bRMfU.<@ii?b %]WB>:Z'-q%?H;BSg_`+%F$h`i=6@N4A!n:>drf5>i59pjF$h`i=69]qrJ*-e['\GM\M8P2k/O/#k#Gu1\6T!Hb`+RH?-D$M-QffBJ>Y)`BnmeA=$l3VDqu %2kaqc,4R*HAU1HLIYD5aa,hp&6I %4e7Z(QL-'+:k.+pniY]@9%&maFC)jlXqo=p!^4bH-#(JA3j7Kr=-Ak?JY'U"Pi^l>Q/Ek8S#A_8R?Z.p'cB%g#7'Cb;3im/p2?!M^I^iMM:hS+rINA^==b=Q6tXY %r+'Q9Lk^A@W5ro9Obf\X'V;%>"B7uBg0t;RGVu#Ein(#JIDe'2^0[Q?2DSEon)%?PO7B'9rn[@eqtE"cneA$`Vh*ge;G3IQ:k2F9 %\A0[R=b2$a-k:tB^)`/?^'2[YegC5.aUIC%nu8RUE@da9oC&i*ntBh[.1f-&FB*loH.2fU0D-:uf1suP?o?Gm5ei*1A:,SP%KFfT %f5g`)TNGHhGtH.?r.nt+jrU_H.^S_Bei-7GXC*p5iJ.:C]u0!-.U%S,Sb%XsM`Zm\Y.Z>XU(9KNaq4pfMZ1$-mC#MX`jdrOqKs>g %[]^8f*kqN4haor,q#=[.1Oo"W91J^bI7l9'>WekEh@+)R)q7cFI/<\s_g][=+Ls@S6nuLhj8h'2:#!]ESjr[dXNtETX %55V=fjra=kraFe7$&"D07Pn_?d3N.BnYU^U$0-c"KMf*mj:;#.=Mt^0\OXLBm>s0m@6bG2*Jko%/oK<4(IcOH0l=_D=$P4>n&V6Y %R/sEOe&c'+mm\)S`cNCO)E)'V2eKkZ`X$Zj7knCUmS4MY`cS4/>4ulK"!0Z&q)5*K#IuPk=uW;l`P12g.*@P6,YU%2UonX[J@1@K %kdHL\^p`$h-H_>41i[3>I7kOKnBk%>0pdtiB*.WNlsrPX5/olh"I;,T@ZoBJJL&C()kl:(Ob7_1n_=4/ed/W7U_p?gGb^27ehjrt[bO'DO*LHdVqRRG@?a5.rIXY$dDhE?eTEf)IV^,$Vr*L-X8:^_n=P0-o=cbI %rR(K5J,.i+rq2W(g:Okn'N*PSP.DN,Ij*l(cn?#K+WJa+MTD2bOuEnp3<&`!?Za@,U+0nbTW!jSg^[Cg/c12bb\Q1.ik;WBYD&%5 %Z>&7)^`6Z^"g;dq^h[N)NJ$eXhO+tVEt>o!W![:t[793TdgWmt@0<]u/`ep/,9FSrWMmhXCPTS8B\T#rCW20L]QVqr`Yi@*NJ!+j %&X_4>!Nca_8*gW?GjV^mNRu==ne8JE&"ifJ>LStbYVcK!>LRi!=RhC&%U7CAUMRG[:pDkZ'3d8cFWpXr\Mm60,H)7bGTij%SZ>ZVa]@B1c_RgVrTh'R^gbiEQ#3/^-$cp9@][eh'_pp@inEeLR=b,jEbYnJ2'YpN5n)D4\PVq,+45VL?jUZ&;rEg`YqF561D!f! %YRN8i7K9.CdR3gci'Ln`n/nU(1>>Ao[;8E%mh.M#&RiidD'R8%0`lgqYMqL5iq2,$ZOGKtGt=EX,7Ds2U7i>dMa_##h&*:5!KiRD1.r2:A[#lJQ/fn%UL8+.'ZKL'S=gY)X+;"Qu;j()_(A"o6h;k05>8b<:M-&L*8*+rW0-3Q,6Kcgo[<#.j. %-/$XdWO(7`5>m@Pg1!6m+SKpT>qD.J/Mg*.nV&aQZPZh.ZOj>[e:CtP*WQ`XaU?qXnYL+Y6D)e.KF2;\[8 %n:_j5"gMIGThgn:bTr8'msDd+>%%?F=(U.3=!o4T$"((ifM]X^nl8YQF9fP6;8GTr!)rAQ^8f)oIctFIi:>Z3V0EmMr23W8,%ZFD\P#Y\>,Yi^+.T+mq&SpEP(!,G=fC6S`J&Ii\ChH]3ek1\X==I>S6ActJ114`-+SCEEC9^mnBp7l0I3qF;-W?OsX8MQ<+463]GcHq@kh0KqWlNUT_f5 %NK:R038kOqLmM]P7/S1>cMC!Dk*g*.1!I5"I'=HXAXK@j;1%,XHnN&^FPUPX;PtC(Lb8E].=.=3s! %iU/7&%k %2*0ql#s$-\d?3X:3G+aY7q-0e4fs`T*!6pXbKX^\;aL1nc'q]KYMYY:S7d/7-\Gd9!o6A@4r$ %65;0#O=Z2rc/R>3,RZ*[*$=n9)A;tHJmk"%Xs$pg:o5FCTch1B`B'1e"c4Qop;1jUOt21?s<,f*91Ou)UaXq(hn3WU='P4jp'Dc`)K@2eHr,e7GP8a>X24XJ3b4&M.l8uu9n,a!%p<0B5K %qsu:/aL;m9(\&54&lMuskhFN#,tYQ49%%7'B2Oh*,tNqK4"\Rk),nA6:MNHAPmUA1@?*PJQ5%rb-,&FVT$rq:8*a#J+r,oY4_IA" %H;\\7[A61Y+%f%D)0s?QBHO#P!h!8Rp-FNB2CCt]UIR2`&qa92k#(X\kb'8boEp@^2msLc#H14M9IsdqW@$;[:oPmLTdDe#2O@[B %-?2$s`N-4J9lb@F9k'IEXsR;7YH)mAE](s!BSXr\W?f$CDW(CIGKUO/%ik'N"7E+:`"Sf,I6*)FHOtY1G %>Qu()9o^c^P4tEBiF@A2U@a1>IO(hg>&b@#N[prU*Dq;b\@@4>dW6rW0QmS-N/K;Ik`;>Q/:"Tk6dB5@C.m[4#h>?jGsE,(PD90U %q-@QD:0HDW3jhj?N@j6.DBg4:qPcegBh)k`_CbT$c3UfE%*<60g:D:?\+C'Gf#1OOEQaZI#%!1hl&a[=M:R@p"1ABReE(++DG?(t %G`cek5B.Y4nCc-s2$looh/7!2g9u_i>>fM9"])jeJIYnJ6;?\r>DBSLgXZX$Cs@L]KbOWt"io+rq;'W[8%KQ3/c-o5,9B&GWO?DE %ega66L`krt)/XS2nB)2N1$\=r+H%0qP/Z:^;`bC)%M6rKP!p997,hWq5l/Zu)MBAo)`EjJdB\1Y)"I+G:US##Z7'p/5jQ^;Z7$L$ %O[Zff"82oeA5R5=-]=^1q\V'IiNo.pCH?m*>;MppCH>Vb$f9""gmV!W7*A'eg=?[/gR=/rL$Sp8"n,u! %DG;L:6d,<\@`6/s5Ln=i65EF_-'G8gP!tk=V/oh'7:7+ih8s,Y#-oWq2JU87qB?_4Cn#aDMa1#+6./1@X-H#u`J+hD;7;^]\;bb. %m&/RrOY.,Je'YleN@r?gDqV__hD?u7>AiLsmS1TR]ocu6aZa0@nO=@N]kN-s[Zo[ZNHk6dkM)Iq+bm\pB]#:K(r_@k_DpmVULUUk %7dn:PFA2,IJC^"P,PDjjP]>?F7N'74r>W3X&)[=bHh4*C6Ph-A$a38YoO'F=[S6nNn+"W1C-ZU>[E_Q8^C7'#2eQmeO:P%Ia$3oM %Q4)oc\WF;P]UBCiIm)uX'2A#2OZ:27V#U!ZIV6lG0>D\%:K3F;BMWV^Df]tj4O!>[))[,Xr+s)mj8cj9VY!C./ref?s&gDZaaj %cK1MBP8B;!M1Kbr.5=X-H+-)#QWZ(H]:635Iu?n-O!R-4PF0T`H8fqWKZmKm31%Kf?OJkc2CF&>PP8,hE"Qn^KZFG--eigY2]L^Y %(gm$c&r]W]GmUo*;8M81#]oW(`YVsFIcE/4/]m^t^QrDWX^u-kLX&*ubNnVeK&qhJ;8KI^.[Z\B@?)C2SoDo:9MD)]bNk0kZF)r/ %lZ[I&$Cm0rEJiQh2KpatcJ6KE*0agq4@QOj8-L"gre#Ws%#Rh9X\%WXV9W8%h8>aPc9uM.DlphC@7Z*sl&QV*8GA)!_r,@Kg/[gs %Z6iZ#L80TlH>@d0`tCmQM7'kYXgOEGE^ZtQ;NEY4M@>[VUnMWQ?Pae+N=(q=VjBG@fir(g0T]^rliguM5UbS.ik1+)pY`"kP9doS[17p-s]EpG81m?lZbj;Z9ngmoTKt-Oa %^ZDai9KVZE7>A%kL.'-53\$Oa+(:3'&`+/O1'uHT.[M`\_+:0OooF\(G$RQ-e1(6m#%Ju(eS5Q5]i6duV$81"Z@iE,_H3%=0\nMoHsYtAC[g&T>t0QV[^L.XA=Co0?jV_k;E'AEf*PF]YD=LMd^p.-b7c(` %3Qgh8fg*hpSP2Hc,*TRtE#fkO7UK'c,*P$G93UAl3NZfk#1$g@,LN]LXA^_Qc%o'Un2WsqEThl[-fd\X3$FrPZ"-6k^1$',VOHQf %[ntp8*Y.,I@2.C,&c^&g,*t<:Cm2MJJmS80ad$L#RSbJH;L8)h.Z8@6hR;plW5dr)6g+Om[mOPmX3$jU[2U('M<0$VsbnFdh6ePe(E'Y&IR]]4.kd//@A+c%aiMBt!o*:4uPak'9e'@@jT %"+i^Wl472\\dDb8oKJpm78W*do`:ptn,K8$m?86HX(@a,kGKu2CHj&a:/(4s8-ng-b09GfJ!n7Mc/0&ZA?dDe9"lYC7F$m/Mc$)< %GiLaoaO]uI*T5]7ZW#KC/`q!Nr=H]N+^UFTs!V6'W$6ZO4-JB;:-&V20Lhg2>ftn64(5\HS7\,(^(hE;k%`&1^?Dm85("mG#I#eW %mtF"[h2KtC0)N63ZNlO96I4<6W8(u?&g0ab,Z[:;?r`;b\Sn1r!8gq]#ITY3*9-Rt.*a=S>k\BI0$9ks"O+`K9bRQ8r]#U*6gk*a %hkU8'fXjqPhY3O@4Y]=*o\8mh17q,MMR+r\!A7Co8f>irVM6CPBPsX86B>`TX9A6T[YCh0`>uOLn18K_M8O?oG0As96h*G<\7f'O %oF8K,'W(uDII,_;8!p&\KMueoLB8]=@f:bX+L*d#JpZ0QGP96mKI.oG-uBL"RdI(MZkfTVIHKD!Y1UY(HEQmO6].A7eS[Ge3c9^" %>s%l"_Tu%5_IPa:0#Mk>0)P#IXZJSN5!sQAAF,/]K6+3*\D*#Q]oSYY96JqD_GAQC_O8L0R1]F8J^a$E3C"YsS//0c9rYPpF]aD. %`Moj-HpYqLk:=53[T&?#V/JrEd(q@JjO4>YckkABT\koD/[D5KCgUhk7m.rd6JdBao#)SY\j]@7f?cr%r&6$N8X&M)TW1"@8t4d# %_Nn6'(pWV]oI2?Y-A_S)\Z[m(:C$Z>?*F0T%^@1[lV\@&"k9MVJcXHgH8a/b.O>=WFC<;.7#fF]lFN\@3hX0Q\ti=qeem0ePh=/& %@')fMXK;rE99B.)XdMH-Iua4':-)=&pF1.!1ZVkg]g-@jE!/GE*ZZ1e67(BlUU&AZ3IB`F_6.:BSIMB^6o0F!k9nZDZ;(\cK3Emj %O'HH[_O](oqOnA2$ddnP26[U%mlgnDpN*@_d^7\9AS#]=WElU\A3;*#A6_5dfqA*4'8k/H*3-VgPlsNK+%qcIqlK[UjK/^&AG-qh %8.]3^H1[,.EW)\U+FMAq&1CU8RtLlNHK]J1&>bQ[QBM0?#RLC:*'d?.LTqLaR)d7gO&-#"9cF9t?u<+^d)Ep?$>n361: %imdK!+Y>`[/Z!D8d4U6t&a&;Pior#+fi%A4*K9h! %hA_TL@YK2E8/?#hXU;#4AX?5+rLZJG2-/H`j`$P`O_`sB'Jeq].8um++;H-Fd0Jd_[:6.a\\-H1MuN:')T->lFSRPe)U"^Nc4>N, %Ctg8dfa'g*W(JEA6SWlSZ7;D*4?g&h6'jJUg'(D8_Ak_[X!l%k1M$nB<2*8#29)P_.s#C[d0HLKs135[+!\1N"VbFHfE*4@b)PX@ %Wn`1TqQT0EH!,K`k\=Jr](U@d2R,AMG*U6l'OHbgjEl`HDrN9g'SAZ?kE0,6<4I[(#Q`L!EF&+9',%B4Z'qbq*Q6L]#Tk\;edl_3 %OCAB>TbpG'7*I]4fMRuFM:1Eu4mDugJo!.7AlWGa-m$`-EHG`7[a#9M0#9s-K:Otjmhs\p".(!7abAm_ %I[%bp$*B)b;&.bN1pj&F7CNA?I4':IknPA.hBb(7p7f@li6U6cn1HtFm\JN?[We?qUAHAAX++854C_cIfd(m`2"R0cd&2nibD<5L %Xq0GY*"qNO>s#f4X[th;aN0ZjirkS65EaO]8E,Q\D`0UeQsu`jRS-h7G6s#D#=\A9fXl'N$Lg'`S/lG3n5Y'ELZ5.\j>(mpg+_4N %9\P[XQ;mau60I#Q/[ok@i34)T9.uW:Y58>9h+sJ)hSHH\]U8+4lF/*#6,GW($G-SSLa"2$E_]qk+"i!V'B>$N7"Q^^I2T')U^:Fbpr$(oa+6]LeBkfq>uip8`UI-D:E\'Z&'VIXlPhraH-pak=:R'F5HgdY4)%AHgt;f%=ZIV$LT?A+L"m#'1&Bq!\^DeMdIKOr?PCkO1`,PZO/E.AI80dU.*UF$:;1H4eU5tAMs9'+NJ %s#Jd<3+W.ul!&-u-h(`iT.[%B!OXhJllOda9REm[2KDiZ'T2SC5.7kqP4a5a_N,u@dgd>n_ThI0V/dq=Oae%-5jnf4ZqZ*I^DL>c %pAS(kkDUKcEQ4fVa4C@J\q&gS,a#)%:./lKb17q&DdV\)r)(!8`<('d5.fR7$BCU-E5-G4`UZg/f(iR5Vrb=*0_NWWQ$C`QMVbZ#2"/X&$8Vn^=#"H@Y0'_fWQj'mN[YGC=;,QA,[-TYcmMG?W&Z0PJY0M==7a4'A_YL+-R1_]57P\JZ0/#kUDDjL %T6=%OcJF&25/pC7BGT=Me9[,n&^#U]W"E`,%ieTXm2U7(_@OU_&LhGg*7a@G3r>MD$lmqIHNF(ki+!K#sQAB^)+"->lg\=TTDb#BjXY[3Jj5JKS(uI5e(F,I2$H>*lQb#7\YB %f9@ZtVZboqrT98;qog5`$YPE?[p_'_g]j)tk&[J=:@lTZm.@c)5%AIoRoH-;I672]RXC8=lo]UURN`kFZ`QITU,LSlQ3+7hUKa2H %\i`5=E'tc06f$a8GeWCMYU(7!7a]*;6He:kb80]&R6I)rB%,)J-(ViO)C.l-Yjn3VMJF!Au&YVg!im0Qp"hj %5.Zt9OIaGn10@kM"Gj$obo8+""J$d.K&8;>N_4cI8!p'"KK%slF>&E3Im@=/_$mr!,^=%TN[3@rRZLpR'C7I@aM6#9s,=\b)VOIs %ogl0C:lkH.HriK%-J[BB4`Z*qQtt3H&E(jB;i`%LL?DQtkk7a#UQB*QO_ie&UWEefU)p-n;3.HBW(.kmMGWb+7it`leg@DA3@2`! %K9=t`4j&5N*m(ir4dq?!6`ER):XgTl@NX,FJI3IM#FL*5onXB,U)jV_:lgd/WCI$g!;.aS&uV!QUO!W,^6PMKbI+*56;T;g9%T(I %&M."KQ.>.sJhonsWk\q`>k/< %QpKV>^-XhP82h,?NOVfG@Wks]_:@gJioHo:X9eKTkk31:AS&DuP]4b;W#Qts"*3=+Tc>@`EbiRk*[UOFjs>Edor(\k'6[%N'O*)o %@hKfIr1K*)8!g/El=E3%O&1lu1[OChi2'^BP&.V,6@tItYfG6<[5uOj&2^js3t_oG[%k>Bhpma]RqYA9?)AVcq:n7tJt.)!G'(TX %A>16Np)uQZj?38MR^^d(jVgrHL2]!XU6WrA3f6H8f$h>uBF?->oGgj#QINK\":qQ4O=dM^L,:0@LPjuGFO$/!C81Zsc_NB,VP&\F %(ASn5P!\sZq)?S%;nXN1nl@d0r!'g9HihDOY&JkOpoZ`&_ds7[-7RJKpG'^B@QN`RoF5Vt_8Cum=ZKbI,N:QlbCH$/ %JIDEqf)NrcLWh*JXIBbmX&0moAdlWfLhFr@?j!;K[^VO%('u9UbbFq"/`^$i&rG.Pc6l3cTF,D,8?%GO"N(Hie(>u:Pt#.'^P@qbN3pl7NEAPIP@W`0+8q'"6.=3)&]]:XKVh_BdW#!lW:ti\"9"1o=^FrT`or]"Qm&%+NW_f4_g3%pg6sf4(aKj(95hr$ai&`='e290jG7u>m%Sr+,M+GQUV+-:kk2oRJ..JG`Pt=PYdIKKero"G;jk&hn3@i,c^98R:T?24TSuKGVA&`HO#KMuBj6J)*YU'sk %O$GblhTFUf=R5q*4`/Bm:TQOqA_rr$9)L-t1/%0.-G,##-%u&$!qW^[l`ih6a9;.XRMB;dS7LjE&;QGp %AnuQSp3[qP!l$KlXJQG"aKQ]`(%H-Z-SIcZ[]n2C]TeKHSXO;_4PCB4g8:5*k]^6I=9rSh=)%Z6SG17Wl9RFm/W`'M$5E%=:^XWf[`6=>bs\"=qm&8QNmGcU2`+BXNtm %lQiP"s)m=aL"-^[,[mg^-dBeTIu=T&hn@@NV'Ga1T@E%RrhM?m-K<8g'eX7\7sL3QOL)*BG6&n&.gK:K&\%1,:iua1dr4Q**_pJr %%qN?(PT#952Dqj5J9M#`>;Q057JA5Z])R*!)YgmCiI?tK`oh%!["E=\15rX7L]YQ\)[.#tqST`@@I6;.(4A(Xnuq\TD7miDPsZGU %T_Z\\)q8f'^E^MKeI!](=M(T]ojD[.NWjY_g/#K\n(k'[UOU0%>5=t/?4k/+B!g/l5M+[5$ie7@_Tul)lfu7rK/P-f2lG5'Ju]DjA(ict7,Gbdl2,RYu"MIkISWrHj%mfErTNdfnJg'=!sZN$nn %4*0dqPTr\914CVQ`3\&Sj'CM*T&[O(GS_Ja\7[-WXnN5;S^2`ZjSETgB`>i/?_(?Bh?b'IgN)9_4U%RFftgCD.hlch"f-h.Ye.\9 %m>8pTj_13_@.2o(%/ru3O?[AUY$FVm_aCbOI08p>6nJV,F4uB2mScr(s7I>bd;R9B=$Kq7kkGOJA.L6_5)_0cqZuA*CsC1c$Zg-P=-nqr1X.Y$onARCd;kfei9MnE[*ka)s?]_t5H/mh$E<(I%gB$^;1 %KbVlf_=2g7.g(%5%i%F,@jajcP(&Ss4"(6OhL,_@@V#FH'0I5>jc.`Fo-'hW %0AM:NlYe*S*dI!4_hS'^%7(4f>K_Yci5>r\oJeFc'mEKYh;3Pe50Sr">>oRAT_"=>e(Y"r%#6L2o!#bEra%5>@J+qBGlMWlL8q7i*Cs(Mkkc/Y]ZRi^&,p*Ijl'&\o[gR8b92'HT3\L,ILc_p6R'\4"P:T %`Cfjl;t/c-rGJL]2L?2.`gdm[Z_t%tI %XCUc`"Wq%,M1K=8@=BYJn*r*hs6e?3J,A.$n,EHG!ki_t9 %s75t]J,]7FRcW_Y^])EkrWa#"Z8M[HVn`7es8)!["(^&eL&~> %AI9_PrivateDataEnd eina-1.7.10/doc/img/eina_inlist-node_eg3-my-struct.png0000664000175000017500000002370112175475327017432 00000000000000PNG  IHDR@付htEXtSoftwareAdobe ImageReadyqe<'cIDATxMfLЍaJD7ꐕdxqt@]aV+݌ĕ]d%0t5(:#Adim{ι]]U]zzzѻw2IQDDD.KDD.KDDDKDDD >jܜkHY%""S%"" %""p%""2D> ӧOo߶vݺuG˗篺t/^Ymի%Kt7ogϞUW˗/W]Y_GS{4=7mmE\ iqmӌzlKMT]=žu۴&ʸql/ɻ(\#ի .tׯ7ñc>ٳ#GTw x"-ؽ{wk׮ʛ>ݖcGc͙Wٳ޽{yY[צcMZ˗/۷o6Im|5rlْXն\#nnơn3Dw۴iSٮqnmݺ4]tܹaWIҔ6᝺{ai>mg/^~6rnꮥh܄hQ\!\wÇcPvl~)ۆĵFǭ֋%Ib9fE=]quu+ Ƞ1'Erɼ!Q}i|B,¢j.ĐwFU*_Fϓ 7}?ΚuV.uN#q̶^8 W4e0(97UR*8!m:7U:铇2)Q :elsTmth^Qe,s@= Z1 FO +|ؿeϘmiiG8FrӒV8? )|cǎ2a WZJPGc+1S7F3f|8*qkAo^qa6.ޛ\} nqz-S17C s^KXկ0-?BQA:d z@ :. (3'KQ, FtڸS 5نƍ4o^Fwؑx䥪QʬA3sJ]_"r.C:s[Ktb:n\ p}/T0MEUc~!(u=>n0^Z?MIK<\A6dvvaFgQ:Ec !띰~])D 25Ƶ,%XLǢEEBdzuQY֢pܼun"@SE4e6״?vTNMYMѐ!ReȴXtRWT1"ۊbe2q*R L$,E&/6,A 5E RkaAV:-B.i^(˜;57mUo4ݮ m Ec|J["js.纱ɶMsSli֭HchDbC50p=y_$Ig97u)\ Ƽbr%[&%,,~/HСC r:aFM4*ULi!Dii2A2s5I\u4,8_|(Gw]ܧ&u;OiFACPEmLB11qL]FI⑗gy9bYb,})_,U.AWi&$zyM2np,4Z.14=nW˦ 4C,ZWiIuVZn0m#:F5z 5Y/MCﰗ9-#tpRXVaiUq/"^MZk(t&Qɦu7x@Nx_*ӐcV!1}>2 W)-LqafX06\*0]plQrbs/uo ljqt[iY*IetR=7\,z]Fsss*333wKDD& ]" \ݬnrNE !"Dc\""2V8%""S%""E1a=HDD$h3Z.]jȼPDD.KDDDKDDDQDDDQDDD.QDDD.KDD.KDDDKDDDQDDDQDDD.QDDD.KDD.KDDDKDDDQDDDQDDD.QDDD.KDD.KDDDIիWٓ'OQd2tRW_Y"pd_g׮]-/K 7!%"p[[eED.;n߾]]DDᒱ, CKDU ƍ'NtB׮]k%=܃۷oRD EDDQDDD.QDDD.Y͛7K)4ׯ_h8_"Rn<߻wa#/xOHsű^-Y$[~}I>/̞={6/w,(Gvڕ;Q8;ꞷoΛpAfٖ֭-[kDp#W6m nhnݺUat#mXzu~|f͚l_L֭[wn -s;w+M@sdiD]r|zJ}zb4Q_VQ_qlg\q\~gU!3Z|y^)?Wt7ېH5WW;vV$e!={y: tOKo;@WL D/^y 40; 7 74h ڸhQqDti,R; 78ɓ'?Hc俑~Y(C˗;bC=/ *gEN[U!O{z.~ܹcQβN[鱢N]t^Hc5(\qn؇FyD|Qk+~C,ˀs燴w#mc u|XZ\210Уݿ|&:rH7UzȳMp…F|رNtŊBͱO>N@#1=k,4 |.cDeVHS4hvٖti\֜ ΐ nd)t`mGo߾{m(^ cDA6RwaMئ~\ai<6l|*r c)`|( q27uה%2@hTiP vSt4X[ƂF#3!Oem WfMZln6$\\XtJkyRuT9h8\OD1Y V9( yEk.B’H^k􈹹cn҈&B{i,fgg;|-Sȱ4 cg0"ی'X݄mUuJ@4m :[m!DK6q (#Ƹ11bˎOP꺭U$/iyxm#FE޽khnň nfbQU/0ze o犛%bMER^S4U02;at{>{lM|qz ~dћE LpMqc|FtIHo%KdvKdl`LasDEDDQDDD.QDDD.KDD.KDDDKDDDQDDDQDDD.QDDD.KDD.KDDD͛7GΟ?oڴ-.ٳg[fO>ݻٓ-_ݍ77oΝ;ݻw}֬YFzW^ٳ9bŋ5~'+O^|i]ɪUFzG墲q9Dpx.]=x#fo߾vڕ{ٱcrq31~zO(\P_u9^:ۿ;U|ƢJZn][ µdɒ|)-Co˖-El/pH_ &=>Ë/r2^Cvq(\#츽W^eЏ}_QO>i]rd{a=?|\p!|;v!kϧ?߇yQeT|7ƔjxWjm`LLDY`UU;wru{SX~' Ku`4D. S!@ D^`Qԁhw##h-D' HW "|-{*. 2AD py~߾}}L:_?B'%"=Q6Q )MX^65rO%"pLSğ ˆFꫯ'OX! dX]'N~_d)ppKdh}5pkej"y1v7x sss+Wd/櫢ׯK]]c%͛7w= ȓ>vڎ5Mzp!4>ln=3 T}]=_yC(XJ333]… =[LW\_p׋PD.P7Fm۶|9n'͸U5U6|x^q~c4DDQa%…B2vMEz!:ѣG?8.nA3\KWLgȼH}w;ܹsF+ֽӟَceH%Vρn @ұ{bq2-.@hAqb7;;Ú T-.0 XiV@^." Yo~mcp;^Ǖ2D{tTYpXXgΜɃ3xG~!"p3QM(" X"0#D A#j1DH:LD. _ٯ~|1f͚IϬQ\YC˗/s+͛3d4=7KXٟmȜQE7!eFpa"˗/9tv: Kb /5믳gtBdOӺuP5pmuQ@bD/mz]1%[*J`'AC@, BRՅЄذ}Dwa(B0,fن ɧi*4kMD3?'b*.nX9A .[,ۼyWB^AiDl݄"" W_VDaKAȊ S e8G-}0R^lYJu/ טCTW`iEh16z0tx:puSLDm߷o_>7Q1w.FŐ08PGRGt cx4yv-t:esʈDd+S,V<c:M<a| +)MU= 1,.2+"ʹ{rM>ҶQ&ixU,uVR&h+iG$"m$NBGq&@B< USDdPt⊋ee.̋ۍFm"w6.Z?Cؗ<>|8'y1`2"S#4pr\ҧV1X1(9V"8/>ԕOꑲpv? Mu.6IE3h06LE#Oݱ 1~ B 2!G\Ydzz04^~}'O>8 ;vcWk:gKUQ\ m>6dDi ʧpӃ4X>설^E icssjI%X 82Q>KD$nme•V46E8D_[>KD$4P>!yP+ă*iuQE+ ,p1D: W/؆{ |y |67 :Xmc&B M- n+!^4XF};w|=ˆh6mؼp":uk} qDɩ^[iQd8t̙iX6 Ӱ#lmDYc[ " E~[7W~$ x9"eAh@*.m۶KA FcF~Y'(=CRWhqcZFKyU] k 1n܄q<" /pɔ ˆ ˨Ŷ)" ,0"zDZA;ut(" Ǹ0f q)~# 7!cRPSp:.%pq!JKD_7`]!,1FխǍTg}x,Pt.pp2Hk׮e?r _7`aIŅխcF(>hǘ[QDSl5pF4aq4[1KJ*s?r۾ż+^]hҎU=bQdX!#V\YDR KDDDQDDDQDDD.QDDD.KDD.Zbٲe_)ϓ'OeLn~eoPQC6l0U/iYkfǏBWhq-D~˗V ˗g|! dzg̋ oFBQDDD.:\fsssV(\2\x1{y.`"" 57n>ݾ};0KƖׯg۷o_Vʿ(\2`]1k׮;a(\2v0 +kff&{짟~]"" _έ{v~[re24HCD2RܹٳgW܈%cnB\࿣G9rĊKG'NtƷRpFTDǸdd0tN4aƽb LDDyQJ2[.0BW3g dQDDD.Y85@\HDD(6LY*KDDdX*ªeq2YDDᒱ'^a*Rq\ǏDDѺp{!9ٶmA."Rc\2Xc"" =!XsH ecƴx VnBQd@> w%"pP6;;=zDDR㒱`ʕ%c VnBiBW1.Vgr Qd ƽ-KD.+ ~qKDD.KDD$sk`lذGȮ5Kfٲe͛!PDD VDDaVȈU("" %""p%""p(\""p(\""" (\""" %"" %""p%""p(\""p(\""" (\""" %"" %""p%""p(\""p(\""" (\""" %"" %""p4Q -w{ZAW(\""" %"" %""p%""2\_CXIENDB`eina-1.7.10/doc/img/eina_list.png0000664000175000017500000010531712175475327013461 00000000000000PNG  IHDR' pHYsgRtEXtSoftwareAdobe ImageReadyqe<\IDATx1\՝?.Zlc M؁fMJvYɦVYd7kAB4F2%4K &Aw:o;3s罙f|>~{γ9307}'j&y?.8ǖ ߹ 8&1I0h 8&1I0h 8&1I0h 8[y>å駟}uΣGN<>ucV{'xbOX_}OS(yzOM_y9r~0 ڵkK9 &&o{=_\gp}\xR/}FL>=NRNO裏}g1mBaPJoW{%Yy~}yIv%7A>v͛~X^LA"=FdO}|;NO=Ԏ2))ޮwg{-}_[8o :7NB($㣏>'~=4m":ٳwܛ/ի`Q$XyI@vH<=9+7W_}&ƳMb=_yOz.^'ɻ)R~7=:.KǩSvL4Ey-`$sύ˨w=쳽ޭ2Eʇ'90I"}^hV6N>P7o.I֫V4'9_K~2Q=e_}`mDI$kؑx$k=(ڵk_wy~ X*߬ YR=zJ'9rܬNrދ|z>v_$~߳K|e8U{u}ެTΞuT i$COٳgǫ |Fy=$3 hJvL~{({m= v/ZVDz6/8zW+gj$xO~?/5K%1ZJMĦ9NEzj|SD~ѿ'-IGVg?[>:SNuO*"{[_xqnO{<.)}ƳO& 'ܯ_Gm?&ɤ\g &1xus|MRO"{$k)=$sMk|ϣH<#>z<%1Z+%Փh-R;*y$791*K.6i=gq^V?_'ѺEV./J)_ԾC ){~vRRVJ?Ivs쭷]zuxt駟};[ERJAVR}jW^yeRI믾j07x=y +sٽ_e``0QRM&״ױUի&kCzo 8?v|/+YoVCYmUmy!So' d?oO=_fJbAI#G^잦M^׮]{ϟ]5+{=&`$'3+񞒘M":{Dmm8I2뻑{9={vtr} z瞳ZPJ[R=+^˨YxΝ;Y ~Ňc-K|ZR<+_|E,8UJU(^d~х FO=ܯOW_}uE)u tԩ>gnkt~zGE'Ɠ ߫\߲??{?$2yIYi { zƲOpc˭`Ǐ+I0h 8&1I0h 8&1I0h 8&1I0h׉xO믿^y-1' yR`$4qMbA`$4qMbA`$4qMbA`$4qMbA`$4qMbA`$4qMbA`$4qMbA`$4qMbA`$4qMbA`$4qMbA`$4qMbA`$Guѝ;wpѣn bW>_$|g/@/ݸqctѱc|@b"0Eu}駣+WHpRVZV>}zob"Fʤ^xal&+u֭ѵkD1XC[[[{+uj@LІ`$4qMbA{-`G}CF=ѣ3us9rd|ޓ'O>w?pt޽er]'Ny}[_۷(?u\y(رc{?yo9v}{swO?}3M;΢@Lw+-ij>?DVUJ^F'*>gSi9$u#{'\oծvJf/?'ǮS}riw&j/E\X ߿ol3prϝ;7~qׯO޸qc<^vIŋsŤt8^Ѐv+nkk׀rܧsKkޫܣ[nMGsqJG5ϿsNk{J}̌vү@L牉 2 >EϜ9 & 捅i$^Q&MOgp_Y/_>j[pIit^slM#hZL5\:y{:Rt tt3ܮ$K.LDkIGu^ΑϋGPκGyN<|yz{{n &nNL̽`}y^BL`%~&JNyyRϱ$ay$?))6LGbzΟ8>Dz{/',ڪ]á:k-ۺ|Y=^N^9?0OGteJ Nz:}P+g/)*7VJe"9#ʕ+}-ŚN|^:2So &}䵹mli˥(tb" CͩSVOHfum(.9XcZJ hCfK%>\O6L*W_-bډm[v/V_{ݶ0BbU;^)v~y s!N,Iڒ鬥Z[+NG9z[^[:۳\ΑkJǿϪir?JY\J]֮&):vڎs;ƹep-cO_bbJM4kI_ϡN ]bMNjIuu84Ii>*sr=?.m#<הYA{]-ޮD+$>m )G>]U=I[Dە&3,zPJ XI:L[ًt6m,tHv.(޲on}fk0NJL\\&)rj]{Sm@LܜyӒ⑁v?q,\L`S0mmc Im$cgXXF}^Ii~{?{,X[ΟWiۻiSfX`x$X[ʱYQ y;bSM4Y}2_9w=CG}'e$^Ӫӯ`)jYe֬=9 O[*3{]}ҡI&ͺeVv:y,[l/{r3 g[1unL[!X9Id%tו`ҎvM},c dwnҥ<fX`x$X[m3ٻ*Iҳ3]NcהA>}k7a@(ZҩYUtծ@Lܜc!& dniLj̊m털ycas}h-VAyzAk`$X[xTvyD@yN]+ݛ=WfOϾuzs.rOt3GR˴j &nNL,J WlqƎXyd2[݆mÔ *H{>ԗцiІI;! j`0Ogy>#I \g/U蜮%{c3X:H7ʕ+DWΝ$K`$X{I\xq)NVz͌{wzqHL`0} ䷵5|, פ]*y0*A}-Ur$fX`$W};r}:5)zѥKz7ɀvzEU~^w>蹮^xa|mJ.[Y\(J9W(qj &nNLlcɬrggp1!aNH{!+Hl:ǼۖvU]ż_V,EVmܟW~z&qܷҧZr n;Bq:tSJܾc {f/c/U1QL:D֭ r&Mdu=ݬn/mB9[n:>J&ea2agmAbJՑKY%3Nvn륗^q`կk:..}dOsr~LZpP &mgA\1R'#[vL[ ҷM݆IOM+8wCqOŘzKYh9w>>ovfHgmE\Ebk;׮]Ls>:@tLsZW7}ʕcg?.˅ vt>&%K{T g@}3H8ϯ__ &]i>Ǟtn1Un]1")$f+Ǵ6L\ii䚧MJ>hoj0s﷼RgiHӶ_vg5nZ{I;)ןI67}_[ y2Z.+=6/_C;;;vuNU;h>A䮄D}t<ӡk;b9vwR:zob۹O\yCԼ4%}oRZ,Io~bbWL皁v ȗ5nW8U۬JʋZh-uHIR9|&£$۸x;-N5kc'&&vqk:|ṉ3XPfk=MH؏Ik)'.Wt?D:&&$ql&IĮy8Zb״ /Ṏc,-!茶G]\{>Yۤ޷I%˄Ll i$^~\M)ufjղltٚ% kmǮ˯.}gݣNb:yM[s/9vMާ.&=m+ڽzD1qk{oP#E'%DRؒ8[Vc8UeV%-"ܣR}o2'WywYIp' ]چk&%Τm6R컶tg[l>Ul XcݢKYH/@L}*E1֖&YD|(صcdrQmߕ~LX#iѬ`QJ]b_q4qMbA`$4qMbA`$4qMbA`$4qMbA`$4qMbA`$4qMbA`$4qMbݻw55t֖KRٳn_L%1kځwn׿Uڵa~ߎ򗿸O$`$xHJwb"V2CbL=o]7IۧX6}$`$ d5lvll-aRRX>qX#]ʮJ {*ކѯ!1kށrh6Md$ʭVU}i-a`HH;II?Mі mmmA'% ,8 }޽у$6>&fYfZۖ0|N{lI%HD`%m_&% ,8>@]>>:m %1+.>3^ ]V"ۼ|3gKX.qXqʭ$*҆KV[?qĎe?%b}w}61& 8&1I0h 8&1I0h 8&1I0h2rݕ`9>ٳo>F7oM~Я׆V8:ѹhq^\K::D~D`:$A^ЯXmJ0h 8&1I0h 8&1I0h 8&1I0h 8۷o &k諯;nGX<ۣ?ϣӧO!b"F2/I~zϻ!B$`nGwq#`E)I0h =` > ;vlO⋣jtG}4O?{'F<=3矏yLj#G}w7͇^{?lyy믿Ԯ^=t)".^83>v,;zc&^%(1)qkRlct:ujzq;Ugvc`A~t'w'IUקgua{8,g}6qΝ;$~8'OX{hփY:E:szqgu$]-#t~?qqOG?Q>`ts\~(&,uHLL#120$wN>=xI׃7?Co%ֽW_}s`9q5qpC1^LJu&헃N߽{wtС^`ե\{ILȤV6 %߶<`/l@vx:ysZwFqgnڶ\Ȯe?"t[^<Ǵ耘Q'Į%eHĪ_}GR3x23kxbiY+6Y*?~tҥї_~08W˷ҦJby>s挎3Vfs?sou43`|Y)mKKğ<>,&Šˊ$KJvu~I,Oۢ/{q,Jv̗_~'Xd[i끃"1stoܸjCyܹљ3gvu ߺukt޽M5y=~xsyׯ_xE^wץb#ɀI3AL>ݻww v9t\Ieɼ$NGV``I}mbkkkqۣ7| }]RM#mI~w~=__C!1=d`>iٵkI]2sҥK;: K/.2=πʡU7V!&Nqn_Y}ʕq^[m1MRǦ ow?Muq`&+/_<ױ;m40^.t(@fmg2}d=͹$q[UXz0*>@픎zfgݒpJw(+D؝7o^-xXC#]xIw}xi3t%K{!TiMkKEYz`X1SdPi11KUُ[Ld%V%95k`bZtdG/Ĵ `:S4񵎱b"6L}$IRRyծ6_u{( 1J>Iyl3}a\adX1s`|ʫwt#3mWwG)VΑ1I@yt!&AP:nIĝr[Ȧg?>- &.Ĥ1qx*tLWz؜AKૐp@$oݺ5wJ\]q8`W^'ȌRmYVzI'I@:thH_ր̒ȥKz.O{ĉk׮m*5sC`Çǃ{Ee7zI_r?cSbQo#YNWuۥ.羌D]q ҙ[vFgvܹsSNmU`>gϞ?N쳹^?o>~3j/~??'uS` $`vݻw{spHgtXj|0ѷj?Mabb$ %&?㘘ym$&3 pV#+}9WJ7h_u܆*r`q$G:3Sukծ؛6OIyp1q8Ae$D^L aթf˲ v=eO~`$`K)"mi.W\u[}%qƮӴsCIY)&i3SLal$-ag5U}bn/B{R䠮Xv`q `r*2ڵk?Ϝ992.;6?{$QJ>Ǜ1ά4[ԪkM6ϟI *H ʞmʨtŲE%EzGeY۩?D.]DZ+>'ngb_W2i_}Ť-X>y'ιJm$9ЊV.ׯ^۴SHۥ볕Џ8Lfu':i8qbt8KNDBHg4ח^zie_.NplteHҡ p%v팇z*eo9#3`AĔ|/jAu٭YԀpJ[oL %axҖH 7wR '?mP'I9vI\gzi3L}0ig _߿_~0;a3o6sNZqVPJ;gy&E R11i`IN|VKg[_URTԩ'Mkc=m->Z~~\+}8a-GU`1=do~󛙝<ڒf:.\x4Z.e_3ctX3K:j5q=;^%))Ϊēڞc2m9WL&`r?qL͐ L̶F&e~kfI"m;텴vƤK@8MҶ3}=k\9 <%a~V@O(}R^qlf\Ŵw-ezj:}nMB"R25u%5}=MIzL,u% 1mgas%n؞vFi;-P3J:wI; ꒌ.m$yQ .Um\wi۽t5aL惽9e㫫c|xtܹ߻wݻnuщ'v|OIuV9s桒!:CX[]YIuV)QRu#1GJTgH/l"%Y r…_+Хz[]YIuV=zTIu6NWue%Y5 #Gv|իJ0h/_~zd*q _>ψx,MSؾ?={֍ND͔HϟdB[ocK1Я{w+Wuр@AeҎBIk'T `6rl+/]4 n!v H41AFXF w9sf|>{yYkgg2ڳgϠ v…kkk ]'0>c%z;3SHJct,۷O+gk׮ ё2[ v~=_* uիa7IRC/:S1YWJuX;j6[޿}|edk_ԑ#GˬT'cR!RO+Dfo5Dw|ekϟ1ݨӶj܎u~3c|*z{m팆16bd̒;}R}0ffoە9^,7oN|v?rpڵk#[=;,qUˈiӯ?mp=kܤ`'teW&N8V;ekΜZ;>,?9}x-|{sMϗCf?9/)Iwf?~|؛~E2%k&CU]'8Bho_oH=СCSsi \z 8r7I*1ƀI<X[f~'NVgIζIٞ]O:5y$޶4wMIF$^J0NhV'v>'1N@{+|zL Mm[mdI( \J}TO7ևzhL/Z[NJĵN7M\]sTRoG>o }4|Q UIU%8{#O*>J^5qzM`^5qzM`^Ο?|_xQ^\vmSN5W0~=l8>Eg&l^'~7;w(8`Wۃ~=KK*u`|ӧǏ.:Q, pz,=3γ3s> qXPԦ dTԉ:i>W駟Vdn߾=۷Oa+~ѯ`uVsҥ歷_P~\HN}z1Չ*ٳg,gٳ{ל~<~]99FGy]㡇͸p5rviWZsW9F673;tЦu^tӥL_|owCC}ǩWM[o,j8i@+ ׏K=R9niLkSun{nNGK.g&)mQQ9~d_?sjoljm 9.>JG=a8utJy\\p9|ps:λ?sҋ9wܹΜ93uڵ/NHIGkۤW#Nܹs}4&d}J<ۤ΋n.&GB[G)YNZ:qҺmzcID/nЯ_?T+2q~qROi7쓺rԹ}:~sWc__?Mޘ7I[oB Z)vY3 y晍g=眻>yÂ:pWy4oٶ\xm%FԉEƼ]aqu:Q -'ɀaaV__kk#s}%0]Gkr^]AݴLm,Pyj}"d0Ҁw Hk)2Ck5L6`;Нsڶ=bXy=vP')m3EQ _j?4;oo?\ssMXNaW>׳r)vA+\x$QLg2^:1Gu"˨eRꬮ j~i_S'Չ<2/˼l=@Яr:dT)mڙmʺ:ot&NZʹw[i:y-3J{7θroι~sc |&4u Du:Q =Omv$ujAzp_ι5I׆7ȱ|mgLҶKvfv$m~_&>Iy@HR6IҬnJgtPs6kma |ҡ~u'mwGsM,Mgҋ 9V:]hu:iZcѮG÷aI^<'Jjsn_hJ<UtfK}.9nYlڎ|&N>iϵ}.[YJ~4尚zy7gW'N`Yu>mkv4Jnq{DN~~"`N_=6`Ϟ=;QyI"총_ygyf0oH192H77smGFubz%ṕa8S/\xq:QN@^%Okkk[>o}W66L0:kV8[$,;Tw$锤3,ULw_Yw,LIݸqc9{[3\x;=?ubC&eNT'k~Vm5U}ܴC`}Gmjô_l٤tI:1锔h;>ch_MM}o[GOrA!I˚{I!XIuY u:`B:1&=ԉ0'\iL މ6L "4v6F{&WӞiǝ{Ws\&ٸs-mQY~q0I?S޹ecXn+X>}Qw ~go?x!c =}{O޳ݻwsy յ|S3s=x`0?]i>kw,CFIw:1ewM'%JK>}zcdlner6oo[:cWU&@;wnsEC2Ҿ?,R9E 矟ylr$kSk,,(f̥Z}Q|5J},S|pʅrz+Hz(7u" ]JnݮN,3H61sN:jw퀴=Ҧꫯ6f΢_}?쳍6S}-!n/Xu͡7sr?i曝]z8u=ۥR* 0m_>g9^kX{=. k/{="eװ{;fk:}S0qXBu< ~ʕl]'Nzy.?m/pl?^SsIc)H7/sN]"A˗/oN>+\ӒUsa% "|#ՁEtb>M'&NL;g/SrNHsυt'=R&U:9niT'2Og(eQ_@oOngN}py/ k:k̒(e!uRwC/uTt1WV)Jv r^63I?s̙3Qu:E9I;wm>{9_ӯ (o_vE/ǫ,^$^O }Y~} Lo;hjW;]B_nǰ,9sL6\} ,H]#J~Tz~}K9V>LMiW=zti-ROeTnä@5mQJ=,I ;q@/m뇽7R>/i^q뵧 JP<̂+)d,Ksf% m=#-: u*ג­MK/mcAQ'I:Is9E:G<%P)#҇Ʌ?.jFp]iyǝ:Nk9ӕ9ifJc?,Z:9"-铬=ʌuyt[~IS O}YQny K:0#U'=zURyv=W'nm as:QԯO8mz)g`_i6S.vSB 6&0 z$ExqƵR䘣Ӵ5shmo__2t 4s,5_I[}Bln۩_ĥc::ԃehqq*e',Eפ^̘a,ˆE9\/%Eoql\ n_X_XS'SDf:ӯ|T~׉{Xv$J0-˩m3~ qӾڷ&f3H0ٯOݞ=Rg:Y_2E̪M((3z_Ǭ=37vq% F"}:ץ3ߣFhZ49樴][wseD|:]A)cG>NJ'y'+Ywv\w|!e &PV.FvGu]xiԌ+u"N?^D-xi+$0WfpӴa2fyfI\,uD2C=t4Yvw\_HE}Z[h ~`l}}TG]h;@qz:m>[!Uogyfp13'UFY"4SYoT[Չ0Kٳח@F=n&qm&m`Mağ&{݆IoɌqXr.4%hNoIӚ]G~E2mt{ty{MV #ˁyKzt'W++2/V'mJ^Q:P'amK@TӶa4O >YtrY`{%N/0kʺ蓴E~M!I-_fÒKszFyLI#QQ%2*Țo믿WNP'bW헭C SYmy9tЦ~I;fdƩ׆73Ɓ"bYS5:t4lY IVw/\м;Nqf].s^{MAՉ:Q +3]/GSMiJ2u\O;ܹ3Ȑ%h^6IΈ/|z8zd'uĉ'K'Ml0/q=<ڣǻ$pENT'Du"X%AJӧOo8 X}ݦtlqoy;s ^Foi9|LX\RÒkjR_T^Is>`𳽎, ȅdDy{Չ]3ԉDd^^|}zdCJ^I/m:0~gϞA 'ΩSg*@3c\:ֽSn'ksܬOZtu'1ڣ53- ~˨|գ͟xAg;:iȻ:U7ԉQ풒Uf2Hdw^vN?p{D{pe^i\vmІ VOӎI%7V8,tjsἫC@E:[ 򥳛Ny:ї/_\4K8;Nr}\)cEHg}X @;vl}Du",iKtl:06Li_A{fz¥Kqw]3iԁݖ{ @!:@.םL:f_LcfH;ZyzF^FSS`+r8q\حg/MVOfhT1l)kǬ3ԏeSP| amiX4fÒK6ՌE΅zY9qĶ+Hǹ;s+K xG3jxu=KD`m . ey-6BۑvOaxe_=^CJg Kfz_iX4fÒKtK4x:?m'Y3Ӟ}f]V:hu,f/YINݖH{#"L XVPk ՁlojQ`1K.?OW:8Bz:_@@R:M-Mh)c؊ Kz K)QuS;ȭN!Yi$8~׏Է~}yQrq;wB!@]0)qzM`^5qzM`^5qzM`^5qzM`^5qzM`^5qzM`^V֭[7Xvߧ_ 0Nɓ'.]4Kw`= X 8&0@ k8&0@ k8&0@ݯXtׯ_nzG}T[tƍS$|^g̙3 cǎ5_|E}/_??vѹs`mm駟,}fٳgm{QXWW?v5Xx/B#Lɓ'8 /3N}C  & >IX=,}5SO Xf 43ûLjXM,gG6>: T^xG?Q` 23^OСC 08,ztRsmJAr.d |r7`%۷o0S%ٳg++II /h_PXI/¦IP&̇8,zx7nR8dҟ?wlp0$כ7ntg8,ҟׯ'0KYoVHTdݓ~| '3$:{|c<'0sе\Zq ~z_Lmf5eq3gsu-qakkk[[㓦XN*uz͌q`;vٷo`eEv^v8r`> '8;E*uzM`^5qzM`^5qzM`^5qzM`^5qzM`u`Wsqf߾}ٳg۷o+`a\tY[[k~_* /hΝ;?o;\~]"t2P'v~77nP(=&0K(pPXf/_nٚtiGeNd'0KH`>l0[G޼uBf.p2'30"0,~0{4LdMdMd ~E5,'ٜ8p`z 0pm~_ˆ̋8{?,'ON5[󩧞#HŴ~V+,;sߟjw6<'!'N@-zjsy|وo`,٠1Gy_j{=)vuܹ@ؐ g? q`$@@U)&[u…O?UeV=@VT0gnW_ ~'|r/r{6/Ҏݻw|Ћ]R P솒f='zLfe8Yt-J|'$A `^3gv[T$8.:@1+&3?C]XTb$0 $iO:5}RLtXD@ ߿,aqڵR~x駟?rT믛ׯ77nΝ;?CСCٳgt^իWof^{mcyerկ~ռCC/m>|s|[^"n\,O0;~ 7xy$@.ՁԮM2C;wqZ} v$`m7=.eA}{%QfyG>=7J{'65i,qΝ՝ y<iu}۵@=1KNt|Av!k, ٳgS9IgT']Q>6Y>Ye%p`Idxf W\i?6 [f/x'O>8le/0G=Awygۭm~M(muLλe>9,*qX"'Nhݻw}7H~ڵNg;v1Ge߭^/ zH?Ef gz7Pdl[fCwTٳw˸s۔[K`ȃ>؜>}z0sp: =zӟ4ؾk~_J?<Ν;9˻q̙M_yp`{1i$`ǏoJqٶ>짾Lp_e+Ɍ/?$r{`M"iӻm/`oi\`=A:mn &xx~]~yqZ%xthU?Ôu=ׇsM@yfkGƾ=X=fK@;r$(޵8%o3:A2{T jώ.k'ooGK6\wN'&3vHf'wf.'%y 29kg&8 p'Н7nСCt#{9r9ho釩c}ٶ{ҧwI ro=+cOn>9oO>"vgӡ`^w:P/iշN^U߮viiY{> }~IAk<̍z3h' %hAe=o`Xc^5qzM`^_r})803?\~}smmM#R5qzM`^,>??P``|>駟^ݻwW6l`[W\i~A`5-` k5ݻ߿c|w}7kq @/裏>ꫯ:߻wosȑC`z[{x`/<;~=Ǻp/^0`$}"ok}رcS'?Y__oN>< $0K&:Np^ʕ+evO?Nj>l{.]j?mmveyΣ=8rnݺ՜={VA_۷owdݼy7>q=ғ>=%^ ׁO<}rH=AM8/瓔[Yv8r2 hAqD``vd}evҤg f'x^`IĿtlvyfz-22cDYW<3dz_ȑ#޽{I^v;iү]X>`vxҴG9Vmd_|q`, qX" < h'%]:?q` w#cǎK[pnv9B*uX"v=S>|xζuM&p}MtLaWf׆fpN?'|r8O4{Q nݺ۷OAJP9#zw͛tE9N R8fqg69p@{1)m;w׵gyN=8b^q5qzM`^5qzM`^5qzM`^5qzM`^5qzM`^5qzM`^5qzM`^5qzM`^^?4_`8s ߹sgpyG`U qk'>ܞxfϞ=^Nׯ7gϞd駟!ߡb|Jfmm͋bPSV͛7yg>b}}]!\l0[G޼uBf.p2'30"0,~0{4LdMdMd ~E5,'ٜ8p`z 0pm~_ˆ̋8{?,'ON5[󩧞#HŴ~V+,;sߟjw6<'!'N@-zjsy|وo`,٠1Gy_j{=)vuܹ@ؐ g? q`$@@U)&[u…O?UeV=@VT0gnW_ ~'|r/r{?,{]g5L,*1̂Fe4bEL&+0$f}Ӝ_Iso{m*͖;^jV*<(@pI۬s=qZsbN6$IeŸ$I]F(n)h7xI1^TBt(CqIF q۬K$IgŸ$I3TܸkKR7I$Id0.IRz\;⼓$I$I$#qIaԔ !I xxx=?66MNNKKK-%???CCCo|xxcc||}0tmXleea=ZO-x-nbm<|׍ckρ$I$I*`\$I:诐4E0ʍP RMy fymFau~!mр?_`<`;P?I...B8m h'-ﻝx\9Ϸ9$I$IKGjS=NkF=< mC8_#J۪xIj/놾eJa(Muf"h%>99 l?^Vƞ$I$IKG-dluoAwoD&d|(:ϴ&&,w:QaEmzm&gMBp_Oׅ ZJc?/6TK$I0$i$|}}5C9!V6==IRP 8œ[l7 E:2c>EXM97cMHLỈ5#χO ^ǧz|)pl/m#3~$I$iK4@D677~Tߟeǵm p_k>;;*%Iwq`Sݬ>=10:bey#ˌ!\U] U?wu٩=J fP@z:nGI$I~\I[T-,,www?1䏏 \A8x|^TjTh翋}rS1Ĩ(J%fjtM 'J$Iԏ$i@*o~JocFGGCtZǐ\=%:h^:JnTNvg]>n&˶f}#Gtm=⒨%Rɗ{D}N\zK$)I$KO??9>?:{׿u Is_G>?oߵYc}5D&J{7u" gyfwPzT&H&|?w6ndY4}GZ.<>NҦ6m30ɐ ''=iң&zGa(FUoo%Qtt-s%AI!'i+۶7ME= $M '$Xp8@1 Ȥs'M<^5/7̳>83)n<#II?nGym9he{JTI\5G]LLP8@$j`LJLɓw-_۟u{דufZnmzF+W׳o6:omyW^OߖMD7o޼A?n/K(ߗu}]"4}֙D$yJ2% |믻ߒǹ%q1L6Gϭ[Z֓^Oɾgd{޽k)y}z>ԩS3e}yI$iUIڟz~MH Ä˴ƽ/IHI*$AQ ,E%IB1L:lFN~,?. u/+=\6Ϟ={W& $RXar5lK%^5kZ<8QX%UkwSHI}?%ɔI'I6Bze'^2I 巩O⒨m7MؤHOcf=IBd|f>}?e؃&˥,$&͉Wߦ-,C`>nq {ZԼ2qo^^"IT/Q;e!POf51p_1IdxS_'$j$aGL[=w6q|H|!P$j` '݌ꁑMI`$pMlI&6 ՗2Ymz饗&H湿!G?OId_ ב?DRfa|nZM, {ݤHz]a?)ĩDNz$9T]F{14_l4sڵFxz\PI a$`$"ɚ|&i'пtv?0iby˶2OθmjIR%QH/Cz_[y!GI,eXz'I`UHkmbf`c5MHzpcdI$q1nbݭP&8ٓH2T*Y&g&3SI OC|jn$WɃIO$ uf@ݫlzd_$I^5IdXS_I.$I*I{ {di&!P/X+mf4L&W$d{dNi' 1D5i4[4H[j?LӣdG&KQzEmZ'LoUv1V}~>p$j/r5ǎ9slp$jhcFFR-taw<56x7Zw8p6or4տ-˰q.ׯ_jmnXVޱɾV%IӿܻZ}jPO5!kab"N8ѝ=/ӧ,ryzknL֟7qg?+X;wngd'|?>o&ӏ?i4,h+ۺ_h~G~ 5w%Jʞ~B%_XTKb&e])o*>oʰAXK򧟄xj3RUҥEَ'{\LH@?V*6֝ w:Z>ISyzd~޷Na+[yn~@xNZ[i }.S٬)ݬS9MX)$ϟ?WSN.93SPKM{RP;WݿfxiUE5k0SkQ)VUL&qsڵ.j{ݿ7sW1S H\'Ճ,e޽{ǖU%2TK/uS'}w,sJl9K9ƓLsocՓ&w} QCI O׭2IҌ[V*l_KJ;g ̝]"f?A[YϞ-jܽ{ww~7LO5}Y|*)DIA]==myO^'v`+iY:&.kة+ܤ!YqeSi$g,=$4O?.QeOIznjk H|I$W)Ǫac-I9ugN$" 99,8|}~j%=b I&O2ߕnw/+ ]B<~Y/Μ4mg=Ջ'-Da=䓣'w]tI)t}f)51iw Hx7fKlTa~,W`=7 J|9fqCS>Ȭ4U)؎j/7pI0UWqf?J5fԟ&}dw%uI s$h~sǂ58sU뮉SactnX65GV[%gOĖ ZO>4:$jocNϘi朩K{'2YɺWy摨1LL \s2W}hD @#$j!QFH4B5hD @#$j`ܺuNgb ,7n 0X2O? .l{o֎-J[իW^yŎI裏3$! ꭷRa.]ҫ&QKV$lJ&`SJԩSv4JD*9;R5 akvQ?lmd&Xó"*0h~K,z?]E@ aq Hqͥ1.O26=lKRf߾}w'QSKR]wܩ8Iʯa|Q׿1EhCoߞiW\~{3'O#`  rhͲC!QFH4B5hD @#$j!QFH4B\9b'۷o -!QKfvl;w @}>4B5,W ~c?~c1,ޭ[1?~c1D @#$j!QF_fyɬ8-]k'4vݶK.17޹sh߾}b uED 7"O?7o>|}~w裏~ӟ©ؾ2e߾}#GtkկV ?pwϽsuĉvg}vyf8ptα5CC0[ab,%6G_|{==\4 |F1yw۹sF￧u|ף˗/쳫gLIdUXsv2m :Xg[튎ثب!'SYj4fjh=4,̲Y.UgMUonUMc`LB-ɚ:P1UW!7WWr0RɽYJ'7=BO`A;vl[|]v{̘sYxԾ^M&SLC3Pq hq ,mb&N$>RMY&3oޏ|NMN|O`95|iYȚ:9$M&&Le\My>su&&1^eFN8$s-Lu%i̪h3*eWIo1D T4S aUhS+|}9_Wɭ8sk>SR+|gJj5SQsuTS>~Un2Q%c:T, J+IҤb:l彉Gb'Ss_WgK4TL&F[{XI1Ù*fR/.y>,1 J5ɓ'WOYL|T٘3u_cI+%ҐrT_K9T'!9ljUSCyY.&TE2gٟL/Ϗ-?#VuTRȦ`M#s 18{ޗFdl\L%16ecf#ɛk1cn]>q6:F _9hV,TxG|b,WR TXkL'I$ccN+.w]qxEК0V2MKh^1,T\ݻSѩuvdZU=5\ֵu*%|39+rڵ uէ<;?]'M7tᲦj  .Gu5vjLoOb/135iT7qk2JGm>RTC+bl~pEJS6MMIٕ, ǔuyI9uHͯ8lSW\bUI{ϤnOO] $i~%j-4id%]M2i޸^OlO]=hR :sᄍpqhKԌa$R|Ruc16D͸rh\/Ɔe֤M]Q]qsuay5YQD ,du_f&`IPgqhӭ[ݻ9Ikƚ0Ij X 9/Q:?1\nܸSWD];$ju54]Z!Vd4[ {^4 u=v\h15c+0>"khf#5nbq~w ??viL(r˲yć[.Cꭷg?2 p"_x.򗶙LPS4v8zLJAӘ|fΠxreO?twl\Lebi#O{b5W9H&I~W^yeu֖eØA;>ؓO>Řv$g4S`;F]I>O~.ƒM&=j9c^/wgS80:l*3,)8k{f*jzBuu&2zje{UI|BǾ4SM7ܸ#} iY]M8/R=7XO\f:A\ ٨3=5.d5W+dĤPz@]:Q3n٢Un=h}ҵU濤ˌQWg7߈L4WLH?b+bG*-O8ͺle*y-,ۏE5q q֯&1ccgU2ʷ~R6՜Y'|"Ɩ(%k*$ilϱ7SWL\%un}m*+&q?˿J#qe̴z1R}~;'v;m?IM;ifeM\:_8V*]To*[97a'?^iclinꊋ}!>gͳQ1}Yoj'Kel~*;?icg3z7=3&fʖǤSOuC5nMԽ8$j\[}ZBW}hD @#&Q3;yC?dq}om<^w<XTɧiWOjOo6Q./IMˤD\7O2齛\]΄v,YӴ'c|!>ej@|,d&wyǯKe5j7n޼mp5;tP7Mw+&_& 9;vth/L8ydw?ZjN6EtNK6{x7ĉ]WK.ud`իvl[nuY^7nܰ01&/@% yǻٳ8{ڷo_EsN1&bbLuv-MEf/'^=G2}k,M~2|tׯ{P:ty آ6DNޗ[NٳgχKLww%C/ws0$_}:dܸgrPLҕe%jX&ɓ|9w_^镓v6%jezݠIϘqɬm]"'m$ϧ='vl/LfqjILJ9xԟL4f^mg3l69 QFH4B{y|رŋآ8UguE^$ju;^zis^2y]tJn cvIEd f5K}gvܺu^xRW=wܶW8A+ێ5KT}FO>G?ƍv Y跿s?yW:u9K]駟VWh5KPM1o5ODkmڵ;Cpю;,|uβkKtrpy-,wn2xϞ='N2СCݶDw…nlCf5 q?}ٳ/ەu;3|ھWyfW1?;9J9;8u,7鸬cvb21R>n{k;~j~};֛& ??_?A,裏łجe^{-֋i˜fbφ_p2쭷RW\.Ðq5'9ۘ8)/_s=%]SVaSn=ڵk*H$˦pIa{0Mf<&L*8R~b'۟粎?Pۑ*_۝s^[,eskO~2(ƢycU9s"W=.&l5@s|Ue-Kb֛q؏qqOlT)FaX}+h̙eiȑ#[2ebl2/xu+WVLm&vk3ͰL6UYDCz+._]q\yW~ 3><8|^xv~-/{X)|nW 5˿Cus+YxpYkkֻRy~=YO9sK6eR>]|qܾh\sߥd[Cn2qo~s{&Ʋؽ1vĉaLԱT~Xةøʱ;qgq߹0ƃ8NcV12˼QL͔9fcTO}Qu%+VmX~?yǝcs<9j\/;wS *ӝrm4z}5d<ߨ΀ Ef}ʚuYa,3ջf1ͻ.=nz-Wg<'m޸.bccS7Ycl2<&ʲl\`QWw]qu+ӣfOR \ A_|Eȑ#]"&j ɪ%2SF ׼/Y캜k 7FG|k5ua4QJLkXAL!ѿRD?_ T]bk K'gq/83nqjtV%"Wvv"8< ȺrA_ ‰B*f=I,&715 gO%KŸ>jh.T4/FMBMگ`VL /}uU#2:g51߆~24a%&5|7Ӡq_ssWٙ[ Oʤ:YPUݟLo ˼Z09Veo?v$l*r,־[n5eꊕ$M%'ꊉW8uJh OH+D Jy5 T^Ss+)SVa\_və,r[ Yg=^T HAZccL|~W*LR·( ĦZwM8^{Fb dبK18~4>SaIp n*Ø]DLPN:N7}q;iqtz~?a\xz9Ɔ xIV3KE97!lƸ9YbVW\L~4&WRW;ßuGnuED6i ,GlO^YWUW3"aO>Ͷc4iVYtωQ2$#1?{߸Fdŝ!lWUdIʬ\5lm]q\/iün$jY#rҙIgR/޺aK_gu ,Y[iܭW^1غ秭+&# 0 QC]akesBb  =jG MuҥK3#d߸qc;w1[,cf3_M[gRWc+$jh /08p\r~{KѣGꊈ1OhD @#$j!Q޼joo [MsN;oo7 QFH[ҥKvKƍ cnl`K]|N@#cnLI5hD @#$j!QFH4B5i.]pogl54v3@mC5hD @#$j]@N:e',04Ս~;N4B5hD @#$j!QFH4B5d9b',(X2wD @#$j`\~}W_u7X5`Μ93OGoШX\~n.#QK" O::qWU|6ҋ&sa 2 L>%裏?>z'!QK" L.Pe~$jD ,G~w-Cjm3G ,Kʤ͋/8z75w 퓨%LT%hO$jN$k2)PJo];WʄCL.]L+<$_2/_|=>rȚɄ3*&QX0L6aMճf$f6I|э7<{_;10Lzѣv s%QSYHvܹ&YyIA7 [d0\Q`$j`9b'e$j`\ dX7nܰD , 'QFH4B5x.`{ݻի3?W:z I0wI8pxf.]0C!QFH4B5hD k{SNnݺeg0W^y/N5׿^w] o6ޏ~O?ݗD 6OCֺg- k9Vfcwٹsg7O_ѻᆱ=_}I7"IOO>0;=jX#="N<@>; $,bϞ=;vL\ʕ+]voK{'1[Js.M|;=jX#oILd>LZ|رz;k;tP<~&\|^<Ż#כ}zΞ=mR%AǎD l$jxI… ]$+>|-dMWR$dxIb$H$=[Zwvug*Y& 4$P{}&ۛO%qs޽{E.͝sdQ/NG?yetlϤRE%j~$jx2Yp.۵k׺dK)/_l7-hyL2\YOzdY_zrI$u߫Je[/I rosp/\ *IrС.^3IT$=JW2&dٺjTO$_g7޼y[."S 60.ݾ}{THo(}IGf#Ip1-5'Mzlx5m6O -y:uj0c`D|hu@3edf.[uB&'FQLsƍngS퓨mfx }hD @#$jض_>xW_ٹ$j.\0u{ D ̑4UO?]zu7t}38=i.>0 FIOO?E s$exnXT5L4y=.\;vh5lCoߞiW\~{[nviG҃&$X&%YCjT_&%N1o qʕezX/AS|)y5hD @#$j!QFH4B5hD @#$j!QFH4B5hD @#$j!QFH4B5hD @#$j!QFH4B5hD @#$j!QFH4B5hD @#$j!QFH4B5hD @#$j!QFH4B5hD @#$j!QFH4B5hD @#$j!QFH4aK.y׻ǻv'ےgB=Wac3z8]@UnݺuNss.YC]%`j`:9t'4AwHxro1rO>ݽ>:uj駟>p{> m,$$h3%Fmg{}`Y<72O;wt!D]VZVBy,2Uؓ>mk3EZ,#y&sR#m@&@{`j m2KP' yYn=gzZQ-TyM?pC-kn&AAFC{j.7DкCsmn HO,?Pdm@&P?Lϒ0+w_li=Q(-9:=H1h[Q$,-CUŹsZT땵ʲՂd->VdZ>onEiĴVIǎ{`wq6A{.' jfiJ ^0Z! :%.,UYz-{xy0۴0ZuRk6Sr68n 6[-9fΒWB']kfW˛e=^˲Ze,[/i~w[R i 2>}Ytq6 l¢w`ZK:N(Lר?3۲BSH|wƱ>e={ lA @|Z@K GV` #2jWeÊp"2c-V[,6}&V*%*[C]) /0Flպi۷* ~ƨm`!CҮ&ޫ/ 5j\%b%˜j'Drdv1r6"h#?/ gl߄I v[ȠV8JaPc3n%mR?sJ-!V"@ԗp(ˮ;YiQ1t ?j,3۲Y\{?o cʴZ괷f5z2W*5}m\XOM,5C h2lJADN,'!H $|m gW^y?Θ95,] Ґ |J>oֱAVlU﫺`%gl!n| GKEWHTZ,]%m `t*P۱d.jܓa$(V K.uVݭt.]WF{uy,ƕ3!mYoպ\=[+]TW&Ey;nJzZQ i۳$,ʺ0__wކTaW+WtFa`$5#! A HjFBP0`$5#! A HjFBP0`$5#! A HjFBP0`$5#! A HjFBP0`$5#! A HjFBP0`$5#! A HjFBPGN⋇7onz;^xarX]zTΞ=ە1K٫ulØ[Z~ؗv/*C}Ma"TtzOfzD8v|;~ȑкfꎕee2K'ec.ok}P!>SNR`[R.=3,;˭}vm8RUXe/:z?xti'f~/KͿ.=N]:zS˴/.B/Ab[@GҙڵkT\S<ضAM*ĩ̶ n]yS'O\^v=a> M @ F3κ8q;y+(A`͛90yZNfn)_2G$6fZnmއgUi×4?d~}/ڡޣ|?β$_2A ZԶ|tG<IH'n"ǹ=nK<54Pq^&5ud߾}^ N6ѪZ4}upo]g+jy,7O;p,`/ G>3 L*4(Nu304SR&0́jZǴ0fuPɢru6\L`đP<_#N_E1j`tRח<kh0-j`^Oキ܊oP% Vf?i,/u]n{3Y]j/-woAyӪ歷ΌKAfϙDŽ5Vv\vyZcj iyn*oEP :s qV"fSv 2Xx7~A>l'A pG/Lhv5J3$y3f-&OC,ѶhI .tT4~s= j2NMԤr[=Jq :u&\[Kvfढ़oPvR9v%w5ksPW,gub7Τ{ݫWǩE mX D~mjHSٴ|gqCU'`s ]oZAP<$cTKyUܬ%p?'N,=5~MnٳݞJ—aP&-`*-2V:&UOg a7iWr},;kl & ;7]2"OL/]Ʃr:ҤUof??t]~O}- iDUzo]5Xu/ M\fL 4wM08Mvwmq|~X?-j`K.&]zrOS.G|yL[Kk6[4k9]ځyLݞ2p8P&g$Fy}am]{ZN;M_oVMOBKdB̷ֺ+ְ}P?Jw~ݧ~IeKyA ,v%<_K\)k}JS])ݗ8Wj×OӶ7l/ysii9SHRmCU%_Qθ'{u3gƢ™ SR62FsՔ˶L]ޫ-[)k))ߧz5s@F3X:]W>!My2$XݻwoC X 3 X^`x1;f3m|v?ط_~62h<|7yiC{%lc]]qLPZ鯖7y2Rfz~|]Z{ژm2RZM+SuueUV*;mdERe*KƍI@R]2hujρ<ϼuz/M˝G}nTCZ;`$ԸHjFBP0`$5#! A HjFBP0-v…~3 6ѭ[& 5[ӓ6l/e,aݻwm M"BW^F޸qG}ԕ*g|%kN8lA j+敯\+ah`jH[4Z{@ G k6` 5tm `ㆺj 95[dс$GZBa~S›| jȟɽ{&qw6 (_0z~aWr;u{3A HjFBP0`$5#! A HjFBP0#6ڷo,HP@/`f6O#! A nݺe#*?m|`$5#! A H`$5#! A Hj`N~n޼9m)[)c\rer6I Ϟ=+M A HKnlRy9Kw]W!M5R.?qwϜ_YLo[ΤFH2[^Ѵ9̼ƸldII@S$)my_J9LNs)>ho̓/Z ]=xIJpi,1yM* jrnmED&]=/Ceo;ǮNuKK}X$IP04OtLtg#GL<=A￿|?5}׿9IE60>~e|O_P70O=رcS睥|(cUg]ne r{OˁO<폲_ykELf˼>=~Ԙm)Sy,벌/-s_YђrnRn`CMgZUV[^MU3NFv̙@0ߪV?ܪ[֣ΘJAkS3$MsY2~pst}ȥ̜8qb`b-V.)c)o5@ԩS QWST8SSTڞhg*LWT'1{r$] W 7l5)L`iIJM_t;[`Ǿ0&ߏ?毃j3u1?o*9m*e.@֕4Zi^9pLe8}=226Yˇ28e,qZT3l\Bτ4{zWT<}ZMT0[| ω &rV͙k| uUb⻾2)SmIHڌ򡌍E{MPLտ}nWe)5mQ/e_n& >)s췪hҔX&<5`1t5Ad۪&ӪZ,>͢ Cr7Դ.[ܜOY̴:IQ~Rs7-m~tOcᵩVhC elCWˁaSk̚SVi{)V/_qmYYά-cdX]Y,M+w)nM)7֠ݵo?婽*T~ۆA xh*wJ%P\ȑKEuRGRIv7TS(g oQ> mc3hicd@e#e^_~CrPfR 2Vz=5sV ׁgVo 8ՂuՀn>hP`هf%S U &XEU*UONY\v[n0tw;ٳgG?C ZQ>W"e쥗^AWu\뗯tQJHp%~+Y-%̩vt}Z,O|ͮ }ldXEEj^LPU0Zf1QX>`[Vww( LT P7܃ɔgX|E%PQhq1j4. bIyJ _]L&[ξYͿSmÚjf9[ J])Ru`//VA]8\퀪.߻r֭[ouCimۥ1][OH@zʇ2{XW XuK}S& $U~2mf)FU$<;iLV+?^럓 eôbA Urs&)>2L*m p*NO7Aeƶ2S/Wρe?C-Tp}Y!MS>Ο?Dg렯=_c=Z>[r#eߤSWO".'"okbNH/LéFRrRvoϔZ@-R΀(gdϭ.[Vr'*Uuv2N^S{35~@$+m^[g>fcԁbcP}X~) iՒ2w~iY[cCe,Ҋ&hA־D} x?m*\ݢ24{|ҥ\AO;O*嫕i5g*eC>[Z~ŨئE UlW?_v̬|(c;[UZtuCnfھq Pd?`L;lW} A HĖ LnsKCںbAjJJlݱ,ix,"-j2Q;ql_[W Xk3yɕ9/ l߱,ix,"A [.O>mCcGPözjw NPÖ;wnjGFܑ#G*X7ǻ|pmK={DP6?yfXXMvJǣGvk`1vwu떍͔1e8y԰2XK4{&{cɔ1eͳo>eLñ̕OlC~ꩧOzHEFFNSռcX4O<19vXwgy{˩ּ?/>1 i2۴·&E?qcQoe!+]/.[wܙ:{` ROH7 v>\kj0tVOw,"0'O!&r̙.? iN:5ulO>LK쳣X H&UTGw,"԰e|'N =$x˜'A{7vZ7۷7˝֒f-H' m!!ʹ:c-3-H[_g9,k eM7X`#! A HjFBP/eyʕKW|ݹs+_n$Xӧ'|/_ 1\jW^y`۷5&mp-yfww1Pݻ !!huaؕ5۟go}[_aS}…/EC7nua<]ڻwJrf??3a gdm] U2_ƕ3w:t7_d/CL,/O=T[7y7wu_SZ,>_Uwȑzv/vAh+_ƪd{{m߳(ckY)cGk׮u*3}άf-evore.˭oeHZn[ϷSidڽ{6tvY[1g* j^{W N<>9Nn`t*o%aPj^]TN:2syч@T]_f0~'^xާ9 Rͭϴlw*V3PsS>Ǭ> Asثؕ0k'tX%t[mۮgOGV{K٤ܖv;m2* ؾ>ӗ*s[*cݴ#GܫYCZR%//*ϴ,;yLk?r=ZO?tyj2O ->[[s3oM-Ϗw?؞={TݴkGPی2.Jӟtw߽o߾cx\ڲQZVG}Դv34orb훪o-Ynf}´P٫eԾ0̙3پ-k][XӳzeR״}fNvJyfsˆrc&ٓJ}wk`F̶͙ UΤ;vly3uΞe޼>Mk␳}uv2Kk0gAT=髳Yٳg+ĬGUg4:XgJܟ?>o>w͗YxL@7o}cs-~[Rr3o^73=W1Y(e,IZ:МK ǜ'6)c//fefzl,j#ڛ2_γg]*Ϙ]`t}DJ룏>5Io~3O:O~2y'IvW9}Ǻo3駟Du?+Kew%~_.銑 jܵr@X3WϺp[Vu _*3Y9fF\e3 ]{P_v۬,v esg}{\xE0eGֵ]nIy3"B[iOrܹw&.e3e0rny>ۭݷ-*U irZ@Te~VX3:/c2i?.=ޮEK#W6mk^ @PHU] TR)Jo*nZ*`9 &Rj]r.Ad*`&[,TrQe UYKeUMe|m5K gyuPCM#vު0gZTȴ<_u1ozm[Izl|Z r[rrUAM[8)c+cy{ekwe=elie,7ѕ3rkTL2Y^WTy.Z~)m١}Nw؆XC&ee~˼*oSQI̡23ڕ^mtϪuvHY`&u 0aZ_लڞN$96U]igSWH8˥WZvD2g^C }rvu%)cu5y\OgԌoy::mF[rwbKhTK*{LdOKVU^e䖠Z&j[,~Csf-7ٕJZ|۟['56Tr[9Ycd fӚKFu9+h~W9j+c^w&m[ͣ|*'XoӗSQ-g*m=esUt kI.c%JJO*A$+I\J8 ZS2vq7Dͦ7eXu ݞ|ե0AM%I٪u%:r'UJCo.rV?Ӫ@it{bk‰4%s@2VݜnO(ckඅZN $p`} e+:ՠ:0[եkݞӢF"~9K*+e̼fPӺF^ͤVdSĬr8m e2VAnO2c)cWCk*uezmKw BEpDP#v,*UFsTpץBΝp'krUE~뭷+&e%M]-V3I'vA wr1.힔BCd+5eš6(c/cY2nn&CdUrEj ~, tv•`Lz_ʘ2ޱ?`#E l4N "% KP,}5e JWvNPlիW7\Ҙmݻw1e elnݺq^AXyU:T^VPo^{gӿc` & 0`$5#!վ}l1?c1}@߱10` ݽ{ǭ[lNPnܸe ŋ6' A HjFBP0`$5#! A Hj {nwv-?3`rƍŋ6 ~g' A HjFBP0x&6bϞ= ]fc̠.i{lӧO/z_z՗ j yk`;Z ~'=X^|Wt7% -j{^5iQs0(iQh?5 k~_u`,5O>l7M;VBty=N <`v hr ?ol2fMMZ5EP,|;>|x9pX4&cԤM25>M>ݼyS`[ j׆+ h: fG&A ?{nw={t? j@B>io V6co߾.?y`!Us?߻wٳY{왼]`b5_ -ŠD9q|/wޙ|-/ݓ2L_ F`,aH0 t=b(]j|`jv45Bqe[?5Md4Q ]{3U?y}pnX<ZZjMS n2-!M0~\; ' 6Kcg9 u\k[~>[~]T߿]FP0' `m)Kn c._<2R$Թrرc~z_ kjۨjѹ{ի66`n{.AKǏwOnܙ5 aTpwϿkj̛Zjy饗lmrA6'?rץc=4_:yZ`¤L5U7k&LƬբrK5@ɹs纀g5tq5 urKקAZ &fJBNQWJPV4 rdlWy 'O e/ NZAZ%jδ\;jL̓'ޤM5r\jh0b`ڽ{6ׯ{mIkٳdž5HWܪRZw%pX5r ›&e$IГ.TZ~F!y5ƨ A HjFBP0`$5#! A HjFBP0`$5#! A HjFBP0`$5#! A HjFBP0`$5#! A HjFBP0MO0A *AͿ0A HjFBP0`$5#! A HjFBP0`$5#! A HjFBP0`$5#! A HjFBP0`$5#MՕ+W&o^qÇw/_߻wrСCׯw7x{|ΝC?y'O<Īr[ʹv+;3ͷ?Y~|z͛s[wuheg}SO=\X_h G!oui~}dZ]l5>wWw:P7zڵk˟ݭajO+AU9βye'_,W vln+vaq*Xm Q/?WB6mi5.]zg'VPJb[R{+ӧOweN Zֲ?VM[#d]k]`>_25>wzB;_5!G'h#N߆oyv[f|770܉'粎y]y{hlzvV'A 0*me'^xng߱vVi-/w;}+{cOq̙;W Uj*`P?vr]̗Z,+TϚəLO%+TEbzO]^y.$uu0>wY >k'(_Nj%ͺ-SoK])6(gsMdzU#N:l5c eބ,aZe׭S):W+M~7Ϊ7t2r,d yirZtM<;I--xLO8_85|Le=TN4ϟjiE4TɲTVMB*>FO[] cVN SZ$$G%{U]ho~;%ˉYͤrbOfuiFPi^e*t5Z Z**k93Ug"!S{mw29sm+GUI_q]d# 'ܜ+s_^?mUfsЀjn.7Zl,u7vZ]N`=3Z7M Y6_;TB6Cy|TڊPZVeet_ dW!JPfAM^L[C3=Ը<6j#kZ'yl۪j!` WYd'YJdgR-wǝJEZռ{&VfՄ ._~eWl^z]eTiϻUrYϦʁDCB1}ZOs/oR]j s jՂ~VIZհQ,p.TbRm 4O:VPhi8g+,97XtYN:y2F۽ϭ#둓G:I[W[U~yJ-:N a C`; jSgf2k^o1_MYF{j=jF=g3O0@bܟvҡclW}`5c֠:$:J6RgIK,cxJK.ӖIP,i-[uKxQMWS!(l P~6K *ӫ[Fy>sΌgrΖr W`ur\ []g9oc<-iuZ 61Y2zY՚U}{o,gLWd0F j[8/z JX ^uiAT=WM#{J7gVis yX)ͼ #!ͬW;f3F+vM+Kgm,'Һi-WYu#u9Vڽ{6vo8Ԙ?UE`lgLc+~m#Т5KWeE?%@5(w"2F HjFBP0`$5#! A HjFBP0`$5#! A HjFBP0`$5#! A HjFBP0`$5#! A HjFBP0`$5#! A HjFBP0`$50g/x~?sN7G\29z͛܇'Nt.yg>t߀>A Q‹8xWN^y^s5YǬ_* }syKJc]po@} /t;Seu <;>肎Eo,>]|{ȑ'|ݶdUoy\oo[jr_2/8mL7RTșESO=t^<,47| #6[uԎ߱Vwޮ{Sd߹_Hkvz`_rVK3O53˘ &k=&y>G݇1Nww[-kU^^:lj*_̜<|p7Yg3gtj.kkݻ"tؙ{,?O>!K,Zw{,uh:2nQދ";S/'x?MUK?$Cc$9~̛yj2)g@UٹWM{2[*ƙކ)o)CU"]e/ʒ2Į>^?@ogz`_Ťf2fڿٿV~m#ТA->;'g# iziz l?'N<9;,^˒1J%XdG՞,H*C}xKm^W;)mPSsV_npvZdޜȼN:egZk׮uҥK˟ q`[*;gRRN2ȼ̻qVt!`I+tIm_J!$LE3">҆4 Hv.ߝ7nl{dgV;jN6-^jgdžUNnvIgzv^y.PwܹsݴW=5;}zWs=N/c.\65< ;v{ez_Դݣ _ܙ!Cv9V3/SfvzθԘ6|x3Aeg[u꫓^{mK80d9ى;?g_c~b|s  c\ ]\3 y4FXM&lDdа Y] ل Օ٤g@WA$ 7O_Ox>jwϩ|RUW:}~<bRwCU8ccSYD ,"믯j)\sO~&Ln~JN4-bw%9;="$SXOWco8ISE]<[ܖ|tZ&jd̤. Y&:C~/jFCIvcFuI;I7Fcyc|ts3=9_1}yu+FrGMSO B |~Aɘ3VG&Acop[i+ou?7*^۱9n,FK֜IAos 85VϚ6U1ySA>YnL#ktZ^:)Kr휯}&B7Fe}`57A3s~3t4)|/P7X[Ǧ}I;=.W'N49 G6?gάSmLwdM8'8VnRyv)43%̛$c]s}56bmo}."&~q5K&S2:9/&mr1כ租+l577mC|I Η?o fJR-6KzQsr_WoFJx妰`m'4WsJ_^s_ݟ`|߻t/_=U81J%qm)s=k[g\֫/nm۫8=x}ַ27;>l9u7 ]T;wcovڶiOiKA]Վ&eXd\i.y_pMWe|Am 4C 5=P 5̅kcg^cOxq31B @O(B @O(B @O.\0>.^@ιY:thە+W/v5>| kk0%za>HOgEI2}}⚸&k O=P 5=P 5=P3|>k. ojz̙3>ho{; {7z9P#zE`|F onr~nC=4~~ߌXz,;;M`;[nY?lϗ[ou6ŋkv?OKdܷ~{rsyG׾z&&3~ҥKχj鶥_}ݣ}u}]w9 78%;w\s{]ay|įsgFxߑw0H&'xf.~&&8x|gmK/nEjٳgמ۹/% XK^f#E$7Ȟ:ujo8۔Ц}>})侴*^nz"v\0 yc{|Mʴղ]u1j`eigLwHjL}gRSh^c3`:/ԗɬП/)a^YiihiSjmr˗/#;RP8|6̦eLipc8u ]卉1+>6'ycum7&_ϴ٭a1(i"dq%xꫯ6ܮjkiflx^O}4ܮPM2{u+qeqk4?WO}g%}o(\]*/FCӞTqmqmxRxPLbF g}͗Ϗz_6}ϻᄏ!} [ɺ2"L3jL=5l佞2ǴsS&-L2m_|ŵӖv]-f<^m:׵4 =^Fٚڒ9)Oi[k 04ulNI J N. ZS ԶF5Z-m:ӖҎw:?9N[d6m֭ii[iQua!ĵ|GcіȗqCKcgw>ؼ|lSL`"L\kԤ$A:8gLa'S־[뷱IӝTk2GմUAu3&!JOd駟zQf(8ť=r-Y{6 Lce̴l((E|u;C==I\řĨ젉UvN靜2U駟nsP;݋5iik?SF`4tyk$fZ? 2Mg{ w}wSi/ؤEZu?iynwfz긢rwͧ3gȨK[#*~ jXqsĵaŵįt@dNP1-ut%Թ7_j\3zKj@>Ӌ9³[@9Mt]ػFTi/H"˙:&7BI-kZ_L;'! Q-]K@Mf{7fhJ1kKXI6k$uJA?_E3-mۼQ\c3{&}۷ )4v8&i&6sqV1T 4_7c]zB#2/,$icy=5N[̥ӡ57㗑4óguuu,//N:*lF>>>1~ꩧةd$J>{/ݵ3'j1a#wVF---fF į~+5zYzB'3Cz8ĩSeѫ:qV[bדh_GYK%!%[? Un^79k1)䛉=>C;`F S geq6޴[gss_16ȶSrc+P17:.i_I'<~'L7)oSNi%@o%IS䲻7NB}45jr\*9}ջ C1BMzG޹뮻Qo8 =:;P P裏6h޽^x\% +;R4'p|(9ĉuzG, M8Q`P'_(|'Ajڽ#/W蝌$|0 wP);@C+#2'ɇ!nO4oZЈŴ5l')dTM5/_(~ȚnXLW\5|'Ajw$6íj> /h_ܘ8zhs=5gmP|&#g0ϩňӱ1"}'i^sbx_4y{$nt,4￿'U 5oOtҙ17gҞ|gRrc+ͼ "^|xW5`y)')l]yP[U_$`7ƸmwmIlNI0C,9Eӟ'tK./U@)Rrܞ6X:&]0)߉ע/{Ow|vZ|W$N;{VWW4P]yqsܴ/G MWWx0ORZZZ3>0B @O(B @O(i._ܜ6oҩKo=4 RUo/W$Ni%k@M@L]w5zWG~Si>?q5 F Й3gF_ךQ];ZZZ߿/{Œ\j$'m6`N tUtC*_%СC3ac߾}?s$x<L) l/º ߒY 0ӣ*0GdO?tK/.]l^ܟӞbU4ߖ`mV$}oH\*DhQ;Ymߓ'ǠgJ"{Ǵ׸53<Ӽ=fm75:Ir_}cye*5Mmۿ??g8y϶ӬÔ_ߓ{Y*ffm/zkmvzdS- ;sr;sג73q j/L=Բ-A[¸00nxu9<6m1#f8Yis̫pܸIU"ֽo+֑j'vNIFD۞}m3)Ih#G4te56ܯɴ(0Re)q`jۍz!,-flZFǢg(iF1Ԃ 8i,Mw̫ǵ5\\aSaaunK *'|tk8im׀EPԚ3v5Gx\U?gLZ#!8$ywjDPnE_D^KMk'[m7`a澏k_=6>3GӾ3Mʫ5?BM 57&VO'2 Yymj>ؤmYogE`Xւ&fb9KE-Qmmc =cƸ6|ǵZ''ۡ(0)̉O>dCk >hmkko~θzjq@au+㑠@ پNX jU. vi4$϶ NBf!?5_:g߾vP9igyw=^s];6=6g_Ԧ޳m7&"grﭳRim%cW m1g'-:>CҖrr, 4q-qrn^Q\v\/m.ܗYCŪ<.o`L} {͇-ܲsN=o?oGy9q<=c~w߽}y?kh, .(<ۧ +fn@Ne8lqSśv)v׾tϾny=oϟqcI8t?5O{FwqGH3;ܴ\>}zt77m%O6f?iֵפE. q%mi_w{ʹZ $oݶ>w }bDz#=|"Q>>昵ϸ\?i 1y_-ŵ#$>wܲ⤸VWe}nq j x}}KLML&_vСCe3۴%X'85V08xڰZz#Rxiͱs*X|A~m(־kMWZ=J@wzlWVC mIqSr_ko_Wqv{+yӑחI;w$iKI:򓟬JHZIfۅܟ6L;H-O:t߯IzLk5|vS۵l Nɝb}}oOjM%5njcJ̓8LR\I|JvU#k7墉 k0pS]Uv߹sV~ح?z^{}uoo=z~f߹k~q^gCޗǾ_-n>tRu귾uT;iZ{kʹqӾ(Wի }s=|{ؽzqrv,L\'v㜸ƼbD͜pP:2V3MGzZ5&eaeXuzW;Rj>w }%,i+%駟Z{_Ж̴ OifCl_|ĵ~Q5Sk6k9 54_3=]iOiOl aeJUMU=k¼4o;hOJ;iOlOjm??_wZ$yd8nŵTSy< q vB͜i|l4%h? Y&Z0I0Gyg\gz9C im'W;)ϟ i_5.QHzS m.ﳴ;*%v9ēO nqz9>s3%pnTH)k1jFFGiOlF5H%Ax="զhQ[Hv2S={icڧiOlVD}e!J,q-۴G`k3V0zF2=%,ONM|_&8c*iLN6]s⾞W3W]O=0/qmj3<S2رc *qKMq֠If\@͗nj.H E%l$Y͜_ԧi_y^Kwx~9}NǵNJ\K_5ӞFfΤ'cROF`F$ ,I÷%f}Oz>t\(L\(.1kB͜Hu-`{G1ˈ25Os"Kaڬ͈0]wх G5xOYb'^|kk0=v]>gAxasyn߾}39n !0 'jzB'jzB5ט۳:WIGݻ`-//L#jzB'j``\\`^8 RxbsyuYUXX 5=P 5=P 5=P 5=P 5=P 5=PC/\pv;u|~bx[ 5=P 5=P 5=qC@_={v:ױ\;VE1ij8Աc`?{G\݉c /88zͅ[Njrb!)`# :n-SzB'jzB&"u/u=c e]3g8,$ gxW6TEE;vJ"R1\2z뭷`k`q>lUu9elTŋB P_،Of ;9$7YD 50F7$|XaH: ![ю% 1Tb)@ǸŒa0&|+(O[Qb)@Ǹ઒-^fq8\\EP?яFɓ~Ѿ}D=Ι;،Ǐ_7rg?kKn?w`X( 5,q=uFnr`4:|s:PvB /CNvO=P 5=P 5=P 5=P 5=P 5A@ÇQ Paa{^zi}>`}GMx7f}g/:3~fD"K-7"KPyF?;.ۣ3g8MΉ'GqmP_ot6S3>hny督cǎ5jYC]s6`1T.XLkȌ䉷rKc?^7uVOӵwuWs쓷G^lSS:y2)ϭצk'?i4`z:wqGs;׷z@IIٳg0yC=LsN77:x3B˹sǏ7EL5+)%'Kr^׬r61.]|hHlR r=)k7&/̥FDQ)0[9|=śLFg$M=}M' 50F>_ӡBmaLFi  ƝcK_r(VRRINƨz>kklH$%3<ӬRS2;yc`{dR9L3>3k;ړS1>S K@>kR HA 6RHޘ=nZk_[u.)Tk]2712FC?="6ٮ@?M=q{ e gjZ%k3N)ym;#j`|ا'nk 4Kw4Mk卑45&:O:Qk8sZ'(s#:z~Q4)嵱}`D |\:u^о`{{:@qULf-//LS` ^~ѿ뿎VVV}z[o5G<"#P8A)@$ȑ# 8yk77XbtuG)P`۞JCO B 4ZI#hҹgmƚk}&iFXL&1`Cu(d+W6?яS``2sСCF`f.^ o)(B @O(B @O(M護jNcΚvH`\pAa޸2~_O?Pa.C.K/lqh#'P P P PŋG+++0X 59sf)vC ѕ+WFJSQB o~޽{˗Gˣ_χu]_~O?=gώ}]op^p gyc?<ڿ䤰j`MP|ox?o襗^&.--^|řYyꩧFhFK}۱cSJ~6ݬ:ujtܹ&o܎B ,2k%&0N#iR9qW_mwFdM A}vȑG?GǏ۷`j7+UB ,h}Ѧ7$#QL껌yך}m'Pmf믿ތV,9z5C9oMIQ㡇j m˸yy~քiO[JOGu'MC>xݮJl;9h{CʚMDl惕eZ#rnZӈ6SsknW߿'9rfKv'O&(0bFTzCG]\g{mv[y[iہ;BͤU|D_ר-'dz];U%Ǭ\+Epusn~Wd_l[m'FsR~j/0{>T(s7kdݖg}v-8vMBN䴽 \kcPmry6UQ~o$ %kxqI4]sJ~]N%[u%Knؾ]yd\yd~3E`: 5,F W= Y+7|NCO`Zw?*TET'#xn{WiF$iH!N*Ҵ_Rϗ.]jrQ%lju<>zuFWޘ +ujXxQ#z2?q]uI 9n"M 5捓teM 'm׾QYpF`(԰6`nIӁF0uZ;;D޸۹#},& Н" 2iO+;lݕK_m}ݔFsy֊4獕#3!%Ǽ9 5,Z[fᬘ}(\a>bInCauR/Mڮ}wq,` ,^)E:vIK/Y.vKލhT޵ճvV*m%kҤHNXr2I .9a\!tGmr: wrʩrsK7Shm;:6<#|5,Ɍ(%-8Plz. ι@.f7H {34W_{v$ ϙSw`uK[*dJy,ɹ*jrc~ϥG]?mhQQj`Q5 `*%0WO`~Q6)d>r<ܗWѨzro6ӵQ`s_Y%*gKg^{vI׶\4i&irҙQr̭J l͞թv} Ȱ׍>f+_43722zmiii4F @O(5jWgEZYYq JvݱcvB rq3O=P 5l^z{\`(0HgΜ}'sb?Gwy5˭\`)2e7}gku]'|rt-4?gTr{?~O4Ν]tit P\ZYYiNκxwzL4);v)̼;})jFdQSr?k24:i2'W 5>)3]tR%۟={Fy%TqkeLۙ3gQ7uViu`^QjgkvԙF}ܟ~d*TDeQ6̋wɩvp哷~# 4 p={4brW\gdͿ˿4gnџɟ~~6)׿n=gTB @O(B @O(B @O(B @O(B @O(B @O(B @O(`>Ph;IENDB`eina-1.7.10/doc/img/menu_bg_last.png0000664000175000017500000000117512175475327014146 00000000000000PNG  IHDR?#sRGBbKGD pHYs  tIME - 9IDATXWю K*|{P;q0ifyRZ9~56 Wx gBaW@2*D y; JfYΊ.LAV̌.ogjt ̒kMӄ LPy3>0OVmM@+'?k#*Lt!L6:1&s]~/@MO_Q453/>pIENDB`eina-1.7.10/doc/img/eina_list_example_01_b.png0000664000175000017500000010670212175475327015774 00000000000000PNG  IHDRmS pHYsgRtEXtSoftwareAdobe ImageReadyqe<OIDATxqF`Y$v0FiK\F46nr܂j5n|>> 9ӵ߾}K yyyG,IGy||ŶЖ5Cwڡ1aܚCpLYsۖ7 H}9Y55Ug *kf-~ZN[x A>05;*,0p۷OU4CڂXv'gY#ঽf{BpL[;pvPy5;NB_ cr0šE0;Cބpn}9dƄ gG_oa8s !:Pv۵6-~!";Vx^f]g;p'!;vM#J !t a/퀛}u4?\Csrn~!|/!~7w_<Qk3p!1߾}y||\lo^__9||| RXn#-?A{؞ Ha?7ok S5]k -mׂ_J08t6 2kq> c^?~g}!e*s3.Oy~~ cԄ\ m?ocB[!aߋ/~[VXϑf [I)XBw$5&-s>G- v5!hНX!)Vͭm$h<==}Ǐ?*ߗKqh"KHj"0 by~~s .C Iy%uk$t .{}})wXn|ݎ6^pD߾}a\-a َBw0[C=<< i 78mr;qϞ&0a@OďfJā=qϑٷ8'~`,;Zvt۱1aEy<.-ġ09BpLН8<& ٢/_>>7eL<19CB`| @B8J;YsZܾs-dJ,uМ&8{1ո ,at-P ;TC@5P ;TC@5P ;TC@5P ;Tno3X-tW,sk!tjBw!tjBw!tjBw!tjBw!tjBw!tjBw!tjBw!tjBw!tjBw!tjBw!tjBw!tjBwƝ!`NOOO7߿_?9ϻٗ:N~\.?v­ m-9u.ՙԼ?9| Ϝ5U힓j*=yK=d5XMԲltP2e->+vBwqM5{lݤ9 @9L}%t+MqoG 6UjWg@ߧw@ω ΙCe\]CjL}3N$Y܄Mو_r=91b~.#<=|>@ֱ)>W֨:U8^9Ճs`tssk}VSvYo~PS֥{%Ѽ%kպKѭj*|gQ̒;ڹzr|NRJhX%7MUiSڗ4jC&7'7w]ϗ寱KO͵,'5)~%'9]kL\[ss_=XW-lїZSP_`=d_]O^Vk6,wxl;}kz׾KiI9fSЮKzG}{~ryܺ=tNxj*>ku-=W[Vu=PͅqY5`Z7}c:U #@?wռAs)\)5,&+t ۏ)MBmpSHf{KoK+sRI[rw-CaZwm~vk=5Pղ7bӟ:?S^1~1~|n]ijǚ\)G tśל&@]Kfy%߮Uz`2~~%}l35soߘks)CkNIl̮)V}ufʓW!c%'4'lcI_-[mlR;'5]}d9'o=9真\> ߹_\M8n_ymr-!dQSvϙjZVz˵Mؿט;(yS;ΌYr+(9izSMqӠL5ǩ%Tjܛ펟SKjRiqCo[WZ{6-,')]:7M-k/sHz|E:jqfŚ澒-g{mN+ zM;=!6o'`枟>.bI-oIC焗O]kAɜVyKt՝.]l u759GY$paJ'm눗y-x1FJߟS#u|ڼkm1u6RBjъu]jpS6-I]O5}6Me;y5FMs^v{J;5k/Ƚbx%l7E!Ԕeֺ>d{\2p'Ao`s:¿˜sקOrmIC_]-r}1o PkR5_[֥BIKm'CjJA9kۓJk;9g:۬G-{~rTZ[j=Z9]څ[/-H)9qھd)p`YSoA(}N}aŵRR* ͕pBw؜vY28msm#nۖzLNJ%nO]3Z/`K%. QQO8'kn`枟> dpK9ǥ.AC֦>9k5@}Y*,%*0SͿ cYUc`ߜ $ ao/^NI24Tl'^k_3VJ!қ qJXۻ9{@saɹS/ӛut:絟EbM:J/35/`So1FRrhjV&MZZ0BwؔtmI׽5/֕@YKOtmL@=]Ι`*qsקxYC8@oPc.Flא8@}`}cWz-aGSms,gc,+\S}TRCXLGӰʵ/؆d'/ޯ}XIcYa:?IJ>qIo(CyowV_XwINCw\s.]8-~s7='@JǦ׮͹uZLCۀǖz`I|/㤾>Cvԅ4N,POj51Xr~rrrNyLͽ9_9s9/lR;[u[9S5 0cv%^7+ 5t٥uHжkeɄkI%k M^'^k_ȱjrl5{Ƚ咾6uжTD!QOEsO.Q.<ϩu]֛Pzq~ΜVdcm֭svQwW3&[is10WVӺ~깆a a [k@sN"l},Sa=ǝNOΥ/7~LܜnYm ܼ͗=I&CwK6N!ؓúx `/ۮ'u@Hd!v>|ݿл;(P/B؏:!9\D]Y( /_ϛG2i ~@@Y7^y{{l+^@7  Cw膡;ta0tn@7  Cw膡;ta0tn@7  Cw膡;ta0tn@7 Ѝkpww lW>|p Bd uC `9/_ϛGo^^^^]l6Ε @/  Cw膡;ta0tQ?~ts<us< \ <\???onn}9?~lf_>7vzKY @L\WYA @"=O<@wB@BY( YX럷ƹv,졏ל^w@&2yxbYA @Ld"C@&Z7DP,أ+^@7  Cw膡;ta0tn@7  Cw膡;t~dL?/@#DyU󟰾k-O? e" "@7 @w8 |}rpr$p|L,;LW@>9 m0tn@7Zo}_O:kЂ2n!Bh5F 3BYQׂ/)I,Vm-X۬IS?v<߃_c˯d"P˚<[dJ?n[C*#ya-c35n膠;Ӵ8UwD&2Q&oΫ{&CP16淫|A5k:D[y̲2ry:tbX&<y(A,}~ja1/]-#C3 y8uCκ! ׵C7/]*(Bfmlm66/qX8-k/#m/nqbۊM*yd"! {y;aZLy< s| @n,Ņ5xCɳ;7d"DaΫx uC@" ]O !`)Y[Bg*TٚCn()y ]%z5'p W& !P%1F&><ׂEBZԌ#e"$*e☋s ߸m>]&[eDSޕdL湛?B<y,Yc;淫} .~]jes12m+_(A&B!ºYT ]9\~c/.S&K(KlXdr!'g.Oܮ|Ҙ) e",p[.\(DzCc>,3i)ay n!-wǵpc]/w2dLdyy^:^:uCX?ºYvBד0tw8T6)KLtmmb,he7}d^l˅TTEKp<ΡaLY(\1-<1b~qO(sT&Sͺ16w-y0膲tC[ɧ.a5Ƹ07M1+SwD&D2meϫCa[y*[| a,l_Bda[Y\;l"昩lN)KjmR҂w\[<"(ia4|YS)("ʋxD~'|e"۵(aZ&Ƃjy[ e!膠;P^x-˼M);L e"ĭW6yUB;:YzR'v@7&>-DL\5!Q,_'5Fp}j<-SK1Nϱ}2dLdyxcC0myU¼b'Y'XdT.[d'P;nm޴tS|kq?ד@[ äK(M,_dSBt-2Q&ГcCo XI=fT0^bBmkLfi,{ERyn( ?D@OZ;)cY7` '63(yy>~D=gϟ_lM,* ){Py9( e!膲ݱ 2Q&2޴tSBu:So@7d\O e!!e2uZ}||V8[(k0ݧO㏯8N LЫ/_|D L,2H!,P;. 2Q&2øԺ![8RPzR@B oyEsJ?e@F&D`Lt[X<4Pnr(1<){ΫChOCoHgDl﹞CwʩSg.cukeP2h!]4 vwu膲tCY(3ALk&:OLл掑"膺!G,=2tSW+{ȸݩadL!c.͠؇&!3ӐV e!膠;^:3/?D&DX&:OʥyUyabn+YzgݕZ*Si1E2esh@F&D`Lt(ߝPNL]0Y @B Aw<73/?D&D`NΓϫCfzsG| ݐ޳p~% Y\;wE,(JjZHoU+j[cSMpYQxYv_:D(eLyޥ/-3bL&vEƔUw|0U:uCd!!gZJ" 0;t)CwAZ @&DA2腲fc4H9Hn @&Dnnr腡;ta0tn@7lۋqTS̎efv,}޺rYLޘSxxxp`3;Cw<lfvT~V3,Н$ ` <>>Pgf[cN#gr 31tPN$`K ݩН'͛{zzr``l;ĹI ` S'q< |Н OI ԙA $,Obff-3t爘U> Od{fvвkx6Ɠw?~t : d!u@&2!B쑙Н O⇇o's<ˉZsS  9r<DLYB,dEW8777=Y Oaf-2tgڄx/"ZcD=y>XНnnn^?rgo'YZb Yi 9_]hНQ7fv0ƕC@/  Cw膡;ta0tn@7 ЍkX훿???;(D@^? d"8 tS{xxxSn@&@" ^@7tGP*:BhCL-i@&D:FƟ;LcW@Y0t-_( }tC@wc8 Zb\ϟ_s0nBYKr`Y?m߿t0y' DuCz) uCzBs2*w& /_8t+-CtCY(uCd,@Bh;0sv2BY(9dn,Cw`&̲GOOOo,߿sܼ~ݗ7mڱrw}̏c|cߧoy\ۡ 9~NjLLDF&./2Q&NC؛Cْ6!\_kvc?C,XꆺnDw\;.mKqvO#kf;DdLZ&./2Q&Jz漪<}W \Ct>\Y( e8PZxز4ߡ2M?1~nmqpʾ_:}PS;k_ۡDcx;=>~d"DF&./2Q&B!(&]z]1p{yX˵ϕ_۞SڦEq;5ꆺn( ql["CwtGQ&LL3;U9Fr^U7^:uCЬ^P8Ra|ۍ]Hݩn|J=mwL9_˱cz ~Fj?{{ߘ?DdLn&Ι/2!0c_jzy(SV oaꆲP7-#Ew;^:ۖC03@^ꎺ!D-^w#`ݐ3Ɋ-| ABk7Cw@s6ǼPr?˿M-CEc=]+ c}mǎ{)?C'DL3_d"c0~?l>,{ݐpn{ϊ놲PBPAtS2RٶD}wc+/uG2Q&o60:@/y8%v^Usv[UuCdRϺz>*녲Y( ea;Ok/!p/_e >Ra{橅2?!7f*ꔢcobg~|KSius~NZ,A&ĶE&2EsWdaO>9(4b y(2q,LPBPͶs8ap[Rw e~E&yfhݐq^UUNAY7nn.7YP;䲗,]}. ڶ8I|}=mL(eLܾtmz!%{jr~7 %膲PrP;.OsrnX"[Qw e)z#+pyxyYtvq u>6BY( 싡;p" [U)m(6KlVXnRDʟ'e"D(eb+y{z]8*rn( uCC9KmܼLDw eL} P&2ytmn(ߐBY( 싡;|W2etC@&9 `+ U,lF L"-;L1W@Y50u2<{1ͷt!-;D@?W@"Cw\LLzɴZwλV; e"q^O@B` P~jٝCێۦc Sɀ6ȧ2Q&D 2אDy(~|?A7 en ζrkDuT&{༪|WeLdL,5p y(!BY( qT-Kfny DY&kebULtATnVPz] ”|wڻLGquWP0(܋4p  8 9Mowfgy(lV},u~ZQ{x&fC-B̎k~ܲz&j&j"{WC=|Zz@,ٜanjvjj9۝~8V1^{@5Qn=2=8{lfCfKvZjDMDMzΫ[|꛾ZZx]Xt?d@(ܱv2Fm:ǧ;gXsNL?},4Q5Q?izzu6`64j0;n7;nն-:*puÛٍsP-B-<$/p}߿믿˗7^z?ǟ7o/_VNmq_ϸ}zc/ mˉ, ^ i\:HCFGOvyxmp:CXfy|}?'m#ж[Ʋq˶mW>gϭY֖mv4;j&-y5z!G\7ZZZxs?4 iӿn˷U^0MbkKOꀛS?8msW./ b΋j c+!}]mXZ2{ӱ0>O zyU=We}s{ iZkܺ =Ch>+ݮv3<džqs@\~vLNY14>gjur~N)ǒ>~vb-yGS-ɱcoy`5=6ҊtSDMDMC=d;N}þz_%e[-B̆Zh642s1/~?,vzqgǭ۶EOyh|ޜ~3;5QDMDMkycp^UwΫr* 9FqM -B-r/:~XErpT;`zۼ{vrc+[ʵC?/ߵ<<<|.5 ;.RCVjxj{p)z {2v4O}^Xh&j&s{iDXP lh6B]˷9X&5lbInZ\g-}sMDMDMDCUyU=lΫuCzYutbm7-BP {oap]홺+_TSzBq)^ [[9xuL0?>" M4QPһmEwC-Bl{5Ʊ.W~׎)0;zXyUΫuC}B-X$/Ж9hnSɇV;5hbYc*^W>񼉧D@5Q1FZ ue׸X~o,ܼcﶙ7Y3#&r}yU`/==/:\77-BkOcuk(/o9K S/+9 h"!&ϱw^0")Z ayy?0;~8 졇yU 7}C O~pk)dhZU`8_A6ܻ &!ptvuh֑fE o^FW̎h&9 졉ΫoZO>Ytx\Jd7_֊5ډޡ8 NDM4QPޝkh^0Z ?!zZ40;h"0q^hr7}B-O­\ѵo}0pxʱq{'zDzϒ|Zِ֬}q=L . `vD4cyUUΫZ@cw3Zlysdkb-\qr6>ߎNޘZ4@PjEϱm \ B-̆f]c޶͌^v,k쨉z5yUΫ^Z6?x.6A1@]5>? ?~~?}qAwϪZ 'y%Z2v4o9D@C=>PP !{wkek Lqۡc]fGMDM}0E uC}B-؊u@p==~ڽ4Ղ_6s,@8h&{tM84=CǻZjj!۷6[Ǣ;@  x#xl:xlxl:qxxl;@O.έ^XtnXtnXtnXtnXtnXtnXtnXtnXtnXtnXtn;?_ս0~s':qxX{賆p:;Ijtt:5HT|g tDwE*qB l"p8hjj\Dؗh\ p\;p'u">._5p|;p&'u@:>W8L LtZ .agjsr@ ?_|0;M3:3N ~Ma56~d$f[Xg2 u;"S)Nt@ZvlaDy|=r4,8h>!db`p;В}B:jHP~?_ʊNv8Dw%ɤu]6-| ˳*ثpDwwnhKIՕ !@2DwH ;$Ctd !@2DwH ;$Ctd `6L Dw__~Zg%`O@@tZ]!^~x,,"3D+_Z ΃D"a<A cW,}\pJWމ@WH #%!Dx#忿?B;gR_{!sB8/8-u='xyypYpDkZ6 Dw#c:]2qCD&׳x, Za HA5s)N[_'@8p/ѝ]T;;>|,DP%],uǍ0K,_9novźCfSݧi]:{.w^Ct`M)g"k`ǭFob];״ݦbi:ѝucGtN,˲zίwN׫n>2[>qFyeWgY6E(**s6k?G @{Dw"X,S'9ύ?<<|ط|Mᚂ2O)T"SVf;Nuʚ{.x>~pyxxxmc}9X0Mqm"RV ԅ|v mW=V[.R4μ'g"˲#3 .)D\&5_qܺm%\k4Eͽ.OtZv߯???wym|g8.Kݩ ۶>ѠK}.sFR}|]ϵ@{"^߿^,A~ceC[spf^ &R9seОDxNxb?==u,30hQsfɶ wDHsq4wb=Оk#z| q:^/<<<'۾l(el '-h4,|$;ׇDw6c6S=|sK<:Ohd8__םmݮh(M)l Tm}));>Dw};Т`~=;Ѩ3?,q[ۧjXeA5Q]4ۢ,~%)O?TOtZ4;nm)/e^ᶦˡ\ ڦJƩ qۦXum=fSl/źsK 8=hcg0l&:u_ p@NDj"\SDױmm&nuK *0ڶ13*cFby?nu6Mp/dYYןmS?='|TvwBbt⸻{[%(̦3VQ{ks*MVוz]b=U_ >8xLl;Msg@pΏ"S$'mwĶw9n(q %Gtdk#N'˲zp[z3?|= ΈIHbظ`0ω`O q{{Հh4}l #2R5bԉsmpbh׵C9n7_ >;q"S6 f3?d21\.w! r 'B9uA,>DuB{#z"3׋iOp]r;!8Y,[v%@r"Kwb9N+";MOtdm dYYN9 ];zv6v"Sݶl CtdeYrv y||̃=NY@|Z&@vn~m"SDhɲSg0_N좺_NY+y";$vǣGˈ<==uFcD`g0<eYl"˶@DwHN}X,>wy cاzzpxM 뮍D,91zj}ZXa̓Gvelѝӱ}W,2Oٯ?qysscpD "QMlX,>tbXNJmxeukz1mO_ޞ#YΕ1 !@2DwH ;$Ctd !@2DwH ;$Ctd !@2DwH ;$Ctd !@2DwHu[w>ߪ?c|6;c mDw񟛛\.~o?d2p H#9sB:/yBF΍ uooo'+c.M%z<p H#9sBB΍'@2DwH ;$Ctdv@@ H6;lHwؐ!`Ct 6;lHwؐ!`Ct 1'DYdIENDB`eina-1.7.10/doc/img/eina_inlist-node_eg1-my-struct.eps0000664000175000017500000214226012175475327017437 00000000000000%!PS-Adobe-3.1 EPSF-3.0 %ADO_DSC_Encoding: MacOS Roman %%Title: diagramas_01-06.eps %%Creator: Adobe Illustrator(R) 14.0 %%For: Marina Proni %%CreationDate: 6/17/11 %%BoundingBox: 0 0 447 260 %%HiResBoundingBox: 0 0 446.8364 260 %%CropBox: 0 0 446.8364 260 %%LanguageLevel: 2 %%DocumentData: Clean7Bit %ADOBeginClientInjection: DocumentHeader "AI11EPS" %%AI8_CreatorVersion: 14.0.0 %AI9_PrintingDataBegin %ADO_BuildNumber: Adobe Illustrator(R) 14.0.0 x367 R agm 4.4890 ct 5.1541 %ADO_ContainsXMP: MainFirst %ADOEndClientInjection: DocumentHeader "AI11EPS" %%Pages: 1 %%DocumentNeededResources: %%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0 %%+ procset Adobe_CoolType_Utility_T42 1.0 0 %%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%+ procset Adobe_CoolType_Core 2.31 0 %%+ procset Adobe_AGM_Core 2.0 0 %%+ procset Adobe_AGM_Utils 1.0 0 %%DocumentFonts: %%DocumentNeededFonts: %%DocumentNeededFeatures: %%DocumentSuppliedFeatures: %%DocumentProcessColors: Cyan Magenta Yellow Black %%DocumentCustomColors: %%CMYKCustomColor: %%RGBCustomColor: %%EndComments %%BeginDefaults %%ViewingOrientation: 1 0 0 1 %%EndDefaults %%BeginProlog %%BeginResource: procset Adobe_AGM_Utils 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known {currentpacking true setpacking}if userdict/Adobe_AGM_Utils 75 dict dup begin put /bdf {bind def}bind def /nd{null def}bdf /xdf {exch def}bdf /ldf {load def}bdf /ddf {put}bdf /xddf {3 -1 roll put}bdf /xpt {exch put}bdf /ndf { exch dup where{ pop pop pop }{ xdf }ifelse }def /cdndf { exch dup currentdict exch known{ pop pop }{ exch def }ifelse }def /gx {get exec}bdf /ps_level /languagelevel where{ pop systemdict/languagelevel gx }{ 1 }ifelse def /level2 ps_level 2 ge def /level3 ps_level 3 ge def /ps_version {version cvr}stopped{-1}if def /set_gvm {currentglobal exch setglobal}bdf /reset_gvm {setglobal}bdf /makereadonlyarray { /packedarray where{pop packedarray }{ array astore readonly}ifelse }bdf /map_reserved_ink_name { dup type/stringtype eq{ dup/Red eq{ pop(_Red_) }{ dup/Green eq{ pop(_Green_) }{ dup/Blue eq{ pop(_Blue_) }{ dup()cvn eq{ pop(Process) }if }ifelse }ifelse }ifelse }if }bdf /AGMUTIL_GSTATE 22 dict def /get_gstate { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_clr_spc currentcolorspace def /AGMUTIL_GSTATE_clr_indx 0 def /AGMUTIL_GSTATE_clr_comps 12 array def mark currentcolor counttomark {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop /AGMUTIL_GSTATE_fnt rootfont def /AGMUTIL_GSTATE_lw currentlinewidth def /AGMUTIL_GSTATE_lc currentlinecap def /AGMUTIL_GSTATE_lj currentlinejoin def /AGMUTIL_GSTATE_ml currentmiterlimit def currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf /AGMUTIL_GSTATE_sa currentstrokeadjust def /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def /AGMUTIL_GSTATE_op currentoverprint def /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf /AGMUTIL_GSTATE_ht currenthalftone def /AGMUTIL_GSTATE_flt currentflat def end }def /set_gstate { AGMUTIL_GSTATE begin AGMUTIL_GSTATE_clr_spc setcolorspace AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor AGMUTIL_GSTATE_fnt setfont AGMUTIL_GSTATE_lw setlinewidth AGMUTIL_GSTATE_lc setlinecap AGMUTIL_GSTATE_lj setlinejoin AGMUTIL_GSTATE_ml setmiterlimit AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash AGMUTIL_GSTATE_sa setstrokeadjust AGMUTIL_GSTATE_clr_rnd setcolorrendering AGMUTIL_GSTATE_op setoverprint AGMUTIL_GSTATE_bg cvx setblackgeneration AGMUTIL_GSTATE_ucr cvx setundercolorremoval AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or { currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne { mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark }if }{ AGMUTIL_GSTATE_ht sethalftone }ifelse AGMUTIL_GSTATE_flt setflat end }def /get_gstate_and_matrix { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_ctm matrix currentmatrix def end get_gstate }def /set_gstate_and_matrix { set_gstate AGMUTIL_GSTATE begin AGMUTIL_GSTATE_ctm setmatrix end }def /AGMUTIL_str256 256 string def /AGMUTIL_src256 256 string def /AGMUTIL_dst64 64 string def /AGMUTIL_srcLen nd /AGMUTIL_ndx nd /AGMUTIL_cpd nd /capture_cpd{ //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf }def /thold_halftone { level3 {sethalftone currenthalftone} { dup/HalftoneType get 3 eq { sethalftone currenthalftone }{ begin Width Height mul{ Thresholds read{pop}if }repeat end currenthalftone }ifelse }ifelse }def /rdcmntline { currentfile AGMUTIL_str256 readline pop (%)anchorsearch{pop}if }bdf /filter_cmyk { dup type/filetype ne{ exch()/SubFileDecode filter }{ exch pop } ifelse [ exch { AGMUTIL_src256 readstring pop dup length/AGMUTIL_srcLen exch def /AGMUTIL_ndx 0 def AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{ 1 index exch get AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put /AGMUTIL_ndx AGMUTIL_ndx 1 add def }for pop AGMUTIL_dst64 0 AGMUTIL_ndx getinterval } bind /exec cvx ]cvx }bdf /filter_indexed_devn { cvi Names length mul names_index add Lookup exch get }bdf /filter_devn { 4 dict begin /srcStr xdf /dstStr xdf dup type/filetype ne{ 0()/SubFileDecode filter }if [ exch [ /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx currentdict/srcStr get/readstring cvx/pop cvx /dup cvx/length cvx 0/gt cvx[ Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx names_index Names length currentdict/srcStr get length 1 sub{ 1/index cvx/exch cvx/get cvx currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx }for currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx ]cvx/if cvx /end cvx ]cvx bind /exec cvx ]cvx end }bdf /AGMUTIL_imagefile nd /read_image_file { AGMUTIL_imagefile 0 setfileposition 10 dict begin /imageDict xdf /imbufLen Width BitsPerComponent mul 7 add 8 idiv def /imbufIdx 0 def /origDataSource imageDict/DataSource get def /origMultipleDataSources imageDict/MultipleDataSources get def /origDecode imageDict/Decode get def /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse { /imbufCnt imageDict/DataSource get length def /imbufs imbufCnt array def 0 1 imbufCnt 1 sub{ /imbufIdx xdf imbufs imbufIdx imbufLen string put imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put }for DeviceN_PS2{ imageDict begin /DataSource[DataSource/devn_sep_datasource cvx]cvx def /MultipleDataSources false def /Decode[0 1]def end }if }{ /imbuf imbufLen string def Indexed_DeviceN level3 not and DeviceN_NoneName or{ /srcDataStrs[imageDict begin currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi string }repeat end]def imageDict begin /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def /Decode[0 1]def end }{ imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put imageDict/Decode[0 1]put }ifelse }ifelse imageDict exch load exec imageDict/DataSource origDataSource put imageDict/MultipleDataSources origMultipleDataSources put imageDict/Decode origDecode put end }bdf /write_image_file { begin {(AGMUTIL_imagefile)(w+)file}stopped{ false }{ Adobe_AGM_Utils/AGMUTIL_imagefile xddf 2 dict begin /imbufLen Width BitsPerComponent mul 7 add 8 idiv def MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{ /imbuf imbufLen string def }if 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{ pop MultipleDataSources{ 0 1 DataSource length 1 sub{ DataSource type dup /arraytype eq{ pop DataSource exch gx }{ /filetype eq{ DataSource exch get imbuf readstring pop }{ DataSource exch get }ifelse }ifelse AGMUTIL_imagefile exch writestring }for }{ DataSource type dup /arraytype eq{ pop DataSource exec }{ /filetype eq{ DataSource imbuf readstring pop }{ DataSource }ifelse }ifelse AGMUTIL_imagefile exch writestring }ifelse }for end true }ifelse end }bdf /close_image_file { AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile }def statusdict/product known userdict/AGMP_current_show known not and{ /pstr statusdict/product get def pstr(HP LaserJet 2200)eq pstr(HP LaserJet 4000 Series)eq or pstr(HP LaserJet 4050 Series )eq or pstr(HP LaserJet 8000 Series)eq or pstr(HP LaserJet 8100 Series)eq or pstr(HP LaserJet 8150 Series)eq or pstr(HP LaserJet 5000 Series)eq or pstr(HP LaserJet 5100 Series)eq or pstr(HP Color LaserJet 4500)eq or pstr(HP Color LaserJet 4600)eq or pstr(HP LaserJet 5Si)eq or pstr(HP LaserJet 1200 Series)eq or pstr(HP LaserJet 1300 Series)eq or pstr(HP LaserJet 4100 Series)eq or { userdict/AGMP_current_show/show load put userdict/show{ currentcolorspace 0 get /Pattern eq {false charpath f} {AGMP_current_show}ifelse }put }if currentdict/pstr undef }if /consumeimagedata { begin AGMIMG_init_common currentdict/MultipleDataSources known not {/MultipleDataSources false def}if MultipleDataSources { DataSource 0 get type dup/filetype eq { 1 dict begin /flushbuffer Width cvi string def 1 1 Height cvi { pop 0 1 DataSource length 1 sub { DataSource exch get flushbuffer readstring pop pop }for }for end }if dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and { Width Height mul cvi { 0 1 DataSource length 1 sub {dup DataSource exch gx length exch 0 ne{pop}if}for dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if } { /DataSource load type dup/filetype eq { 1 dict begin /flushbuffer Width Decode length 2 idiv mul cvi string def 1 1 Height{pop DataSource flushbuffer readstring pop pop}for end }if dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and { Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul { DataSource length dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if }ifelse end }bdf /addprocs { 2{/exec load}repeat 3 1 roll [5 1 roll]bind cvx }def /modify_halftone_xfer { currenthalftone dup length dict copy begin currentdict 2 index known{ 1 index load dup length dict copy begin currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end def currentdict end sethalftone }{ currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end sethalftone pop }ifelse }def /clonearray { dup xcheck exch dup length array exch Adobe_AGM_Core/AGMCORE_tmp -1 ddf { Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf dup type/dicttype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonedict Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if dup type/arraytype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonearray Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if exch dup Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put }forall exch{cvx}if }bdf /clonedict { dup length dict begin { dup type/dicttype eq {clonedict}if dup type/arraytype eq {clonearray}if def }forall currentdict end }bdf /DeviceN_PS2 { /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and }bdf /Indexed_DeviceN { /indexed_colorspace_dict AGMCORE_gget dup null ne{ dup/CSDBase known{ /CSDBase get/CSD get_res/Names known }{ pop false }ifelse }{ pop false }ifelse }bdf /DeviceN_NoneName { /Names where{ pop false Names { (None)eq or }forall }{ false }ifelse }bdf /DeviceN_PS2_inRip_seps { /AGMCORE_in_rip_sep where { pop dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and { /currentcolorspace exch AGMCORE_gput false }{ true }ifelse }{ true }ifelse }{ true }ifelse }bdf /base_colorspace_type { dup type/arraytype eq{0 get}if }bdf /currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse { /pdfmark_5{cleartomark}bind def }{ /pdfmark_5{pdfmark}bind def }ifelse /ReadBypdfmark_5 { currentfile exch 0 exch/SubFileDecode filter /currentdistillerparams where {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse {flushfile cleartomark} {/PUT pdfmark}ifelse }bdf /ReadBypdfmark_5_string { 2 dict begin /makerString exch def string/tmpString exch def { currentfile tmpString readline not{pop exit}if makerString anchorsearch { pop pop cleartomark exit }{ 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5 }ifelse }loop end }bdf /xpdfm { { dup 0 get/Label eq { aload length[exch 1 add 1 roll/PAGELABEL }{ aload pop [{ThisPage}<<5 -2 roll>>/PUT }ifelse pdfmark_5 }forall }bdf /lmt{ dup 2 index le{exch}if pop dup 2 index ge{exch}if pop }bdf /int{ dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop }bdf /ds{ Adobe_AGM_Utils begin }bdf /dt{ currentdict Adobe_AGM_Utils eq{ end }if }bdf systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_AGM_Core 2.0 0 %%Version: 2.0 0 %%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Core 209 dict dup begin put /Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def /AGMCORE_str256 256 string def /AGMCORE_save nd /AGMCORE_graphicsave nd /AGMCORE_c 0 def /AGMCORE_m 0 def /AGMCORE_y 0 def /AGMCORE_k 0 def /AGMCORE_cmykbuf 4 array def /AGMCORE_screen[currentscreen]cvx def /AGMCORE_tmp 0 def /AGMCORE_&setgray nd /AGMCORE_&setcolor nd /AGMCORE_&setcolorspace nd /AGMCORE_&setcmykcolor nd /AGMCORE_cyan_plate nd /AGMCORE_magenta_plate nd /AGMCORE_yellow_plate nd /AGMCORE_black_plate nd /AGMCORE_plate_ndx nd /AGMCORE_get_ink_data nd /AGMCORE_is_cmyk_sep nd /AGMCORE_host_sep nd /AGMCORE_avoid_L2_sep_space nd /AGMCORE_distilling nd /AGMCORE_composite_job nd /AGMCORE_producing_seps nd /AGMCORE_ps_level -1 def /AGMCORE_ps_version -1 def /AGMCORE_environ_ok nd /AGMCORE_CSD_cache 0 dict def /AGMCORE_currentoverprint false def /AGMCORE_deltaX nd /AGMCORE_deltaY nd /AGMCORE_name nd /AGMCORE_sep_special nd /AGMCORE_err_strings 4 dict def /AGMCORE_cur_err nd /AGMCORE_current_spot_alias false def /AGMCORE_inverting false def /AGMCORE_feature_dictCount nd /AGMCORE_feature_opCount nd /AGMCORE_feature_ctm nd /AGMCORE_ConvertToProcess false def /AGMCORE_Default_CTM matrix def /AGMCORE_Default_PageSize nd /AGMCORE_Default_flatness nd /AGMCORE_currentbg nd /AGMCORE_currentucr nd /AGMCORE_pattern_paint_type 0 def /knockout_unitsq nd currentglobal true setglobal [/CSA/Gradient/Procedure] { /Generic/Category findresource dup length dict copy/Category defineresource pop }forall setglobal /AGMCORE_key_known { where{ /Adobe_AGM_Core_Id known }{ false }ifelse }ndf /flushinput { save 2 dict begin /CompareBuffer 3 -1 roll def /readbuffer 256 string def mark { currentfile readbuffer{readline}stopped {cleartomark mark} { not {pop exit} if CompareBuffer eq {exit} if }ifelse }loop cleartomark end restore }bdf /getspotfunction { AGMCORE_screen exch pop exch pop dup type/dicttype eq{ dup/HalftoneType get 1 eq{ /SpotFunction get }{ dup/HalftoneType get 2 eq{ /GraySpotFunction get }{ pop { abs exch abs 2 copy add 1 gt{ 1 sub dup mul exch 1 sub dup mul add 1 sub }{ dup mul exch dup mul add 1 exch sub }ifelse }bind }ifelse }ifelse }if }def /np {newpath}bdf /clp_npth {clip np}def /eoclp_npth {eoclip np}def /npth_clp {np clip}def /graphic_setup { /AGMCORE_graphicsave save store concat 0 setgray 0 setlinecap 0 setlinejoin 1 setlinewidth []0 setdash 10 setmiterlimit np false setoverprint false setstrokeadjust //Adobe_AGM_Core/spot_alias gx /Adobe_AGM_Image where{ pop Adobe_AGM_Image/spot_alias 2 copy known{ gx }{ pop pop }ifelse }if /sep_colorspace_dict null AGMCORE_gput 100 dict begin /dictstackcount countdictstack def /showpage{}def mark }def /graphic_cleanup { cleartomark dictstackcount 1 countdictstack 1 sub{end}for end AGMCORE_graphicsave restore }def /compose_error_msg { grestoreall initgraphics /Helvetica findfont 10 scalefont setfont /AGMCORE_deltaY 100 def /AGMCORE_deltaX 310 def clippath pathbbox np pop pop 36 add exch 36 add exch moveto 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath 0 AGMCORE_&setgray gsave 1 AGMCORE_&setgray fill grestore 1 setlinewidth gsave stroke grestore currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto /AGMCORE_deltaY 12 def /AGMCORE_tmp 0 def AGMCORE_err_strings exch get { dup 32 eq { pop AGMCORE_str256 0 AGMCORE_tmp getinterval stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt { currentpoint AGMCORE_deltaY sub exch pop clippath pathbbox pop pop pop 44 add exch moveto }if AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show 0 1 AGMCORE_str256 length 1 sub { AGMCORE_str256 exch 0 put }for /AGMCORE_tmp 0 def }{ AGMCORE_str256 exch AGMCORE_tmp xpt /AGMCORE_tmp AGMCORE_tmp 1 add def }ifelse }forall }bdf /AGMCORE_CMYKDeviceNColorspaces[ [/Separation/None/DeviceCMYK{0 0 0}] [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind] [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind] [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind] [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind] [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind] [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind] [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind] [/Separation(Cyan)/DeviceCMYK{0 0 0}] [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind] [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind] [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind] [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}] [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind] [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}] [/DeviceCMYK] ]def /ds{ Adobe_AGM_Core begin /currentdistillerparams where { pop currentdistillerparams/CoreDistVersion get 5000 lt {<>setdistillerparams}if }if /AGMCORE_ps_version xdf /AGMCORE_ps_level xdf errordict/AGM_handleerror known not{ errordict/AGM_handleerror errordict/handleerror get put errordict/handleerror{ Adobe_AGM_Core begin $error/newerror get AGMCORE_cur_err null ne and{ $error/newerror false put AGMCORE_cur_err compose_error_msg }if $error/newerror true put end errordict/AGM_handleerror get exec }bind put }if /AGMCORE_environ_ok ps_level AGMCORE_ps_level ge ps_version AGMCORE_ps_version ge and AGMCORE_ps_level -1 eq or def AGMCORE_environ_ok not {/AGMCORE_cur_err/AGMCORE_bad_environ def}if /AGMCORE_&setgray systemdict/setgray get def level2{ /AGMCORE_&setcolor systemdict/setcolor get def /AGMCORE_&setcolorspace systemdict/setcolorspace get def }if /AGMCORE_currentbg currentblackgeneration def /AGMCORE_currentucr currentundercolorremoval def /AGMCORE_Default_flatness currentflat def /AGMCORE_distilling /product where{ pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and }{ false }ifelse def /AGMCORE_GSTATE AGMCORE_key_known not{ /AGMCORE_GSTATE 21 dict def /AGMCORE_tmpmatrix matrix def /AGMCORE_gstack 32 array def /AGMCORE_gstackptr 0 def /AGMCORE_gstacksaveptr 0 def /AGMCORE_gstackframekeys 14 def /AGMCORE_&gsave/gsave ldf /AGMCORE_&grestore/grestore ldf /AGMCORE_&grestoreall/grestoreall ldf /AGMCORE_&save/save ldf /AGMCORE_&setoverprint/setoverprint ldf /AGMCORE_gdictcopy{ begin {def}forall end }def /AGMCORE_gput{ AGMCORE_gstack AGMCORE_gstackptr get 3 1 roll put }def /AGMCORE_gget{ AGMCORE_gstack AGMCORE_gstackptr get exch get }def /gsave{ AGMCORE_&gsave AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /grestore{ AGMCORE_&grestore AGMCORE_gstackptr 1 sub dup AGMCORE_gstacksaveptr lt{1 add}if dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse /AGMCORE_gstackptr exch store }def /grestoreall{ AGMCORE_&grestoreall /AGMCORE_gstackptr AGMCORE_gstacksaveptr store }def /save{ AGMCORE_&save AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store /AGMCORE_gstacksaveptr AGMCORE_gstackptr store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /setoverprint{ dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint }def 0 1 AGMCORE_gstack length 1 sub{ AGMCORE_gstack exch AGMCORE_gstackframekeys dict put }for }if level3/AGMCORE_&sysshfill AGMCORE_key_known not and { /AGMCORE_&sysshfill systemdict/shfill get def /AGMCORE_&sysmakepattern systemdict/makepattern get def /AGMCORE_&usrmakepattern/makepattern load def }if /currentcmykcolor[0 0 0 0]AGMCORE_gput /currentstrokeadjust false AGMCORE_gput /currentcolorspace[/DeviceGray]AGMCORE_gput /sep_tint 0 AGMCORE_gput /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput /sep_colorspace_dict null AGMCORE_gput /devicen_colorspace_dict null AGMCORE_gput /indexed_colorspace_dict null AGMCORE_gput /currentcolor_intent()AGMCORE_gput /customcolor_tint 1 AGMCORE_gput /absolute_colorimetric_crd null AGMCORE_gput /relative_colorimetric_crd null AGMCORE_gput /saturation_crd null AGMCORE_gput /perceptual_crd null AGMCORE_gput currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf << /MaxPatternItem currentsystemparams/MaxPatternCache get >> setuserparams end }def /ps { /setcmykcolor where{ pop Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put }if Adobe_AGM_Core begin /setcmykcolor { 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput 1 sub 4 1 roll 3{ 3 index add neg dup 0 lt{ pop 0 }if 3 1 roll }repeat setrgbcolor pop }ndf /currentcmykcolor { /currentcmykcolor AGMCORE_gget aload pop }ndf /setoverprint {pop}ndf /currentoverprint {false}ndf /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def /AGMCORE_plate_ndx AGMCORE_cyan_plate{ 0 }{ AGMCORE_magenta_plate{ 1 }{ AGMCORE_yellow_plate{ 2 }{ AGMCORE_black_plate{ 3 }{ 4 }ifelse }ifelse }ifelse }ifelse def /AGMCORE_have_reported_unsupported_color_space false def /AGMCORE_report_unsupported_color_space { AGMCORE_have_reported_unsupported_color_space false eq { (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)== Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf }if }def /AGMCORE_composite_job AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def /AGMCORE_in_rip_sep /AGMCORE_in_rip_sep where{ pop AGMCORE_in_rip_sep }{ AGMCORE_distilling { false }{ userdict/Adobe_AGM_OnHost_Seps known{ false }{ level2{ currentpagedevice/Separations 2 copy known{ get }{ pop pop false }ifelse }{ false }ifelse }ifelse }ifelse }ifelse def /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def /AGM_preserve_spots /AGM_preserve_spots where{ pop AGM_preserve_spots }{ AGMCORE_distilling AGMCORE_producing_seps or }ifelse def /AGM_is_distiller_preserving_spotimages { currentdistillerparams/PreserveOverprintSettings known { currentdistillerparams/PreserveOverprintSettings get { currentdistillerparams/ColorConversionStrategy known { currentdistillerparams/ColorConversionStrategy get /sRGB ne }{ true }ifelse }{ false }ifelse }{ false }ifelse }def /convert_spot_to_process where{pop}{ /convert_spot_to_process { //Adobe_AGM_Core begin dup map_alias{ /Name get exch pop }if dup dup(None)eq exch(All)eq or { pop false }{ AGMCORE_host_sep { gsave 1 0 0 0 setcmykcolor currentgray 1 exch sub 0 1 0 0 setcmykcolor currentgray 1 exch sub 0 0 1 0 setcmykcolor currentgray 1 exch sub 0 0 0 1 setcmykcolor currentgray 1 exch sub add add add 0 eq { pop false }{ false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne }ifelse grestore }{ AGMCORE_distilling { pop AGM_is_distiller_preserving_spotimages not }{ //Adobe_AGM_Core/AGMCORE_name xddf false //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq AGMUTIL_cpd/OverrideSeparations known and { AGMUTIL_cpd/OverrideSeparations get { /HqnSpots/ProcSet resourcestatus { pop pop pop true }if }if }if { AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not }{ gsave [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace false AGMUTIL_cpd/SeparationColorNames 2 copy known { get {AGMCORE_name eq or}forall not }{ pop pop pop true }ifelse grestore }ifelse }ifelse }ifelse }ifelse end }def }ifelse /convert_to_process where{pop}{ /convert_to_process { dup length 0 eq { pop false }{ AGMCORE_host_sep { dup true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process and}ifelse } forall { true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch (Black)eq or and }forall not }{pop false}ifelse }{ false exch { /PhotoshopDuotoneList where{pop false}{true}ifelse { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process or}ifelse } { convert_spot_to_process or } ifelse } forall }ifelse }ifelse }def }ifelse /AGMCORE_avoid_L2_sep_space version cvr 2012 lt level2 and AGMCORE_producing_seps not and def /AGMCORE_is_cmyk_sep AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or def /AGM_avoid_0_cmyk where{ pop AGM_avoid_0_cmyk }{ AGM_preserve_spots userdict/Adobe_AGM_OnHost_Seps known userdict/Adobe_AGM_InRip_Seps known or not and }ifelse { /setcmykcolor[ { 4 copy add add add 0 eq currentoverprint and{ pop 0.0005 }if }/exec cvx /AGMCORE_&setcmykcolor load dup type/operatortype ne{ /exec cvx }if ]cvx def }if /AGMCORE_IsSeparationAProcessColor { dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or }def AGMCORE_host_sep{ /setcolortransfer { AGMCORE_cyan_plate{ pop pop pop }{ AGMCORE_magenta_plate{ 4 3 roll pop pop pop }{ AGMCORE_yellow_plate{ 4 2 roll pop pop pop }{ 4 1 roll pop pop pop }ifelse }ifelse }ifelse settransfer } def /AGMCORE_get_ink_data AGMCORE_cyan_plate{ {pop pop pop} }{ AGMCORE_magenta_plate{ {4 3 roll pop pop pop} }{ AGMCORE_yellow_plate{ {4 2 roll pop pop pop} }{ {4 1 roll pop pop pop} }ifelse }ifelse }ifelse def /AGMCORE_RemoveProcessColorNames { 1 dict begin /filtername { dup/Cyan eq 1 index(Cyan)eq or {pop(_cyan_)}if dup/Magenta eq 1 index(Magenta)eq or {pop(_magenta_)}if dup/Yellow eq 1 index(Yellow)eq or {pop(_yellow_)}if dup/Black eq 1 index(Black)eq or {pop(_black_)}if }def dup type/arraytype eq {[exch{filtername}forall]} {filtername}ifelse end }def level3{ /AGMCORE_IsCurrentColor { dup AGMCORE_IsSeparationAProcessColor { AGMCORE_plate_ndx 0 eq {dup(Cyan)eq exch/Cyan eq or}if AGMCORE_plate_ndx 1 eq {dup(Magenta)eq exch/Magenta eq or}if AGMCORE_plate_ndx 2 eq {dup(Yellow)eq exch/Yellow eq or}if AGMCORE_plate_ndx 3 eq {dup(Black)eq exch/Black eq or}if AGMCORE_plate_ndx 4 eq {pop false}if }{ gsave false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne grestore }ifelse }def /AGMCORE_filter_functiondatasource { 5 dict begin /data_in xdf data_in type/stringtype eq { /ncomp xdf /comp xdf /string_out data_in length ncomp idiv string def 0 ncomp data_in length 1 sub { string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put }for string_out }{ string/string_in xdf /string_out 1 string def /component xdf [ data_in string_in/readstring cvx [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx [/pop cvx()]cvx/ifelse cvx ]cvx/ReusableStreamDecode filter }ifelse end }def /AGMCORE_separateShadingFunction { 2 dict begin /paint? xdf /channel xdf dup type/dicttype eq { begin FunctionType 0 eq { /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def currentdict/Decode known {/Decode Decode channel 2 mul 2 getinterval def}if paint? not {/Decode[1 1]def}if }if FunctionType 2 eq { paint? { /C0[C0 channel get 1 exch sub]def /C1[C1 channel get 1 exch sub]def }{ /C0[1]def /C1[1]def }ifelse }if FunctionType 3 eq { /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def }if currentdict/Range known {/Range[0 1]def}if currentdict end}{ channel get 0 paint? AGMCORE_separateShadingFunction }ifelse end }def /AGMCORE_separateShading { 3 -1 roll begin currentdict/Function known { currentdict/Background known {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf /ColorSpace[/DeviceGray]def }{ ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }{ ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put }ifelse ColorSpace 0 get/Separation eq { { [1/exch cvx/sub cvx]cvx }{ [/pop cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll put pop }{ { [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx }{ pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll bind put }ifelse ColorSpace 2/DeviceGray put }ifelse end }def /AGMCORE_separateShadingDict { dup/ColorSpace get dup type/arraytype ne {[exch]}if dup 0 get/DeviceCMYK eq { exch begin currentdict AGMCORE_cyan_plate {0 true}if AGMCORE_magenta_plate {1 true}if AGMCORE_yellow_plate {2 true}if AGMCORE_black_plate {3 true}if AGMCORE_plate_ndx 4 eq {0 false}if dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading currentdict end exch }if dup 0 get/Separation eq { exch begin ColorSpace 1 get dup/None ne exch/All ne and { ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /Separation ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading }if }ifelse }{ currentdict ColorSpace 1 get AGMCORE_IsCurrentColor 0 exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse }if currentdict end exch }if dup 0 get/DeviceN eq { exch begin ColorSpace 1 get convert_to_process { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /DeviceN ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading /ColorSpace[/DeviceGray]def }if }ifelse }{ currentdict false -1 ColorSpace 1 get { AGMCORE_IsCurrentColor { 1 add exch pop true exch exit }if 1 add }forall exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse currentdict end exch }if dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not { exch begin ColorSpace dup type/arraytype eq {0 get}if /DeviceGray ne { AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { ColorSpace 0 get/CIEBasedA eq { /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def }if ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or { /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def }if ColorSpace 0 get/CIEBasedDEFG eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }if currentdict 0 false AGMCORE_separateShading }if }if currentdict end exch }if pop dup/AGMCORE_ignoreshade known { begin /ColorSpace[/Separation(None)/DeviceGray{}]def currentdict end }if }def /shfill { AGMCORE_separateShadingDict dup/AGMCORE_ignoreshade known {pop} {AGMCORE_&sysshfill}ifelse }def /makepattern { exch dup/PatternType get 2 eq { clonedict begin /Shading Shading AGMCORE_separateShadingDict def Shading/AGMCORE_ignoreshade known currentdict end exch {pop<>}if exch AGMCORE_&sysmakepattern }{ exch AGMCORE_&usrmakepattern }ifelse }def }if }if AGMCORE_in_rip_sep{ /setcustomcolor { exch aload pop dup 7 1 roll inRip_spot_has_ink not { 4{4 index mul 4 1 roll} repeat /DeviceCMYK setcolorspace 6 -2 roll pop pop }{ //Adobe_AGM_Core begin /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf end [/Separation 4 -1 roll/DeviceCMYK {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul} ] setcolorspace }ifelse setcolor }ndf /setseparationgray { [/Separation(All)/DeviceGray{}]setcolorspace_opt 1 exch sub setcolor }ndf }{ /setseparationgray { AGMCORE_&setgray }ndf }ifelse /findcmykcustomcolor { 5 makereadonlyarray }ndf /setcustomcolor { exch aload pop pop 4{4 index mul 4 1 roll}repeat setcmykcolor pop }ndf /has_color /colorimage where{ AGMCORE_producing_seps{ pop true }{ systemdict eq }ifelse }{ false }ifelse def /map_index { 1 index mul exch getinterval{255 div}forall }bdf /map_indexed_devn { Lookup Names length 3 -1 roll cvi map_index }bdf /n_color_components { base_colorspace_type dup/DeviceGray eq{ pop 1 }{ /DeviceCMYK eq{ 4 }{ 3 }ifelse }ifelse }bdf level2{ /mo/moveto ldf /li/lineto ldf /cv/curveto ldf /knockout_unitsq { 1 setgray 0 0 1 1 rectfill }def level2/setcolorspace AGMCORE_key_known not and{ /AGMCORE_&&&setcolorspace/setcolorspace ldf /AGMCORE_ReplaceMappedColor { dup type dup/arraytype eq exch/packedarraytype eq or { /AGMCORE_SpotAliasAry2 where{ begin dup 0 get dup/Separation eq { pop dup length array copy dup dup 1 get current_spot_alias { dup map_alias { false set_spot_alias dup 1 exch setsepcolorspace true set_spot_alias begin /sep_colorspace_dict currentdict AGMCORE_gput pop pop pop [ /Separation Name CSA map_csa MappedCSA /sep_colorspace_proc load ] dup Name end }if }if map_reserved_ink_name 1 xpt }{ /DeviceN eq { dup length array copy dup dup 1 get[ exch{ current_spot_alias{ dup map_alias{ /Name get exch pop }if }if map_reserved_ink_name }forall ]1 xpt }if }ifelse end }if }if }def /setcolorspace { dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/Indexed eq { AGMCORE_distilling { /PhotoshopDuotoneList where { pop false }{ true }ifelse }{ true }ifelse { aload pop 3 -1 roll AGMCORE_ReplaceMappedColor 3 1 roll 4 array astore }if }{ AGMCORE_ReplaceMappedColor }ifelse }if DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if }def }if }{ /adj { currentstrokeadjust{ transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform }if }def /mo{ adj moveto }def /li{ adj lineto }def /cv{ 6 2 roll adj 6 2 roll adj 6 2 roll adj curveto }def /knockout_unitsq { 1 setgray 8 8 1[8 0 0 8 0 0]{}image }def /currentstrokeadjust{ /currentstrokeadjust AGMCORE_gget }def /setstrokeadjust{ /currentstrokeadjust exch AGMCORE_gput }def /setcolorspace { /currentcolorspace exch AGMCORE_gput }def /currentcolorspace { /currentcolorspace AGMCORE_gget }def /setcolor_devicecolor { base_colorspace_type dup/DeviceGray eq{ pop setgray }{ /DeviceCMYK eq{ setcmykcolor }{ setrgbcolor }ifelse }ifelse }def /setcolor { currentcolorspace 0 get dup/DeviceGray ne{ dup/DeviceCMYK ne{ dup/DeviceRGB ne{ dup/Separation eq{ pop currentcolorspace 3 gx currentcolorspace 2 get }{ dup/Indexed eq{ pop currentcolorspace 3 get dup type/stringtype eq{ currentcolorspace 1 get n_color_components 3 -1 roll map_index }{ exec }ifelse currentcolorspace 1 get }{ /AGMCORE_cur_err/AGMCORE_invalid_color_space def AGMCORE_invalid_color_space }ifelse }ifelse }if }if }if setcolor_devicecolor }def }ifelse /sop/setoverprint ldf /lw/setlinewidth ldf /lc/setlinecap ldf /lj/setlinejoin ldf /ml/setmiterlimit ldf /dsh/setdash ldf /sadj/setstrokeadjust ldf /gry/setgray ldf /rgb/setrgbcolor ldf /cmyk[ /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx /setcmykcolor load dup type/operatortype ne{/exec cvx}if ]cvx bdf level3 AGMCORE_host_sep not and{ /nzopmsc{ 6 dict begin /kk exch def /yy exch def /mm exch def /cc exch def /sum 0 def cc 0 ne{/sum sum 2#1000 or def cc}if mm 0 ne{/sum sum 2#0100 or def mm}if yy 0 ne{/sum sum 2#0010 or def yy}if kk 0 ne{/sum sum 2#0001 or def kk}if AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace sum 0 eq{0}if end setcolor }bdf }{ /nzopmsc/cmyk ldf }ifelse /sep/setsepcolor ldf /devn/setdevicencolor ldf /idx/setindexedcolor ldf /colr/setcolor ldf /csacrd/set_csa_crd ldf /sepcs/setsepcolorspace ldf /devncs/setdevicencolorspace ldf /idxcs/setindexedcolorspace ldf /cp/closepath ldf /clp/clp_npth ldf /eclp/eoclp_npth ldf /f/fill ldf /ef/eofill ldf /@/stroke ldf /nclp/npth_clp ldf /gset/graphic_setup ldf /gcln/graphic_cleanup ldf /ct/concat ldf /cf/currentfile ldf /fl/filter ldf /rs/readstring ldf /AGMCORE_def_ht currenthalftone def /clonedict Adobe_AGM_Utils begin/clonedict load end def /clonearray Adobe_AGM_Utils begin/clonearray load end def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall /getrampcolor { /indx exch def 0 1 NumComp 1 sub { dup Samples exch get dup type/stringtype eq{indx get}if exch Scaling exch get aload pop 3 1 roll mul add }for ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /sssetbackground{ aload pop ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /RadialShade { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /r2 xdf /c2y xdf /c2x xdf /r1 xdf /c1y xdf /c1x xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if c1x c2x eq { c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope c2y c1y sub c2x c1x sub div def /theta slope 1 atan def c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if }ifelse gsave clippath c1x c1y translate theta rotate -90 rotate {pathbbox}stopped {0 0 0 0}if /yMax xdf /xMax xdf /yMin xdf /xMin xdf grestore xMax xMin eq yMax yMin eq or { grestore end }{ /max{2 copy gt{pop}{exch pop}ifelse}bdf /min{2 copy lt{pop}{exch pop}ifelse}bdf rampdict begin 40 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave c1x c1y translate theta rotate -90 rotate /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def /c1y 0 def /c1x 0 def /c2x 0 def ext0 { 0 getrampcolor c2y r2 add r1 sub 0.0001 lt { c1x c1y r1 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2y r1 add r2 le { c1x c1y r1 0 360 arc fill } { c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r1 neg def /p1y c1y def /p2x r1 def /p2y c1y def p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y p1x SS1 div neg def /SS2 90 theta sub dup sin exch cos div def /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y p2x SS2 div neg def r1 r2 gt { /L1maxX p1x yMin p1y sub SS1 div add def /L2maxX p2x yMin p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if c1x c2x sub dup mul c1y c2y sub dup mul add 0.5 exp 0 dtransform dup mul exch dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop /hires xdf hires mul /numpix xdf /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if /xInc c2x c1x sub numsteps div def /yInc c2y c1y sub numsteps div def /rInc r2 r1 sub numsteps div def /cx c1x def /cy c1y def /radius r1 def np xInc 0 eq yInc 0 eq rInc 0 eq and and { 0 getrampcolor cx cy radius 0 360 arc stroke NumSamples 1 sub getrampcolor cx cy radius 72 hires div add 0 360 arc 0 setlinewidth stroke }{ 0 numsteps { dup subsampling{round cvi}if getrampcolor cx cy radius 0 360 arc /cx cx xInc add def /cy cy yInc add def /radius radius rInc add def cx cy radius 360 0 arcn eofill rampIndxInc add }repeat pop }ifelse ext1 { c2y r2 add r1 lt { c2x c2y r2 0 360 arc fill }{ c2y r1 add r2 sub 0.0001 le { c2x c2y r2 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r2 neg def /p1y c2y def /p2x r2 def /p2y c2y def p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y c2y p1x SS1 div sub def /SS2 90 theta sub dup sin exch cos div def /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y c2y p2x SS2 div sub def r1 r2 lt { /L1maxX p1x yMax p1y sub SS1 div add def /L2maxX p2x yMax p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if grestore grestore end end end }ifelse }bdf /GenStrips { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /y2 xdf /x2 xdf /y1 xdf /x1 xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if x1 x2 eq { y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope y2 y1 sub x2 x1 sub div def /theta slope 1 atan def x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if } ifelse gsave clippath x1 y1 translate theta rotate {pathbbox}stopped {0 0 0 0}if /yMax exch def /xMax exch def /yMin exch def /xMin exch def grestore xMax xMin eq yMax yMin eq or { grestore end }{ rampdict begin 20 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave x1 y1 translate theta rotate /xStart 0 def /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def /ySpan yMax yMin sub def /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def xStart 0 transform xEnd 0 transform 3 -1 roll sub dup mul 3 1 roll sub dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop mul /numpix xdf numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if ext0 { 0 getrampcolor xMin xStart lt { xMin yMin xMin neg ySpan rectfill }if }if /xInc xEnd xStart sub numsteps div def /x xStart def 0 numsteps { dup subsampling{round cvi}if getrampcolor x yMin xInc ySpan rectfill /x x xInc add def rampIndxInc add }repeat pop ext1{ xMax xEnd gt { xEnd yMin xMax xEnd sub ySpan rectfill }if }if grestore grestore end end end }ifelse }bdf }def /pt { end }def /dt{ }def /pgsv{ //Adobe_AGM_Core/AGMCORE_save save put }def /pgrs{ //Adobe_AGM_Core/AGMCORE_save get restore }def systemdict/findcolorrendering known{ /findcolorrendering systemdict/findcolorrendering get def }if systemdict/setcolorrendering known{ /setcolorrendering systemdict/setcolorrendering get def }if /test_cmyk_color_plate { gsave setcmykcolor currentgray 1 ne grestore }def /inRip_spot_has_ink { dup//Adobe_AGM_Core/AGMCORE_name xddf convert_spot_to_process not }def /map255_to_range { 1 index sub 3 -1 roll 255 div mul add }def /set_csa_crd { /sep_colorspace_dict null AGMCORE_gput begin CSA get_csa_by_name setcolorspace_opt set_crd end } def /map_csa { currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse {pop}{get_csa_by_name/MappedCSA xdf}ifelse }def /setsepcolor { /sep_colorspace_dict AGMCORE_gget begin dup/sep_tint exch AGMCORE_gput TintProc end }def /setdevicencolor { /devicen_colorspace_dict AGMCORE_gget begin Names length copy Names length 1 sub -1 0 { /devicen_tints AGMCORE_gget 3 1 roll xpt }for TintProc end }def /sep_colorspace_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin currentdict/Components known{ Components aload pop TintMethod/Lab eq{ 2{AGMCORE_tmp mul NComponents 1 roll}repeat LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll }{ TintMethod/Subtractive eq{ NComponents{ AGMCORE_tmp mul NComponents 1 roll }repeat }{ NComponents{ 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll }repeat }ifelse }ifelse }{ ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get aload pop }ifelse end }def /sep_colorspace_gray_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get end }def /sep_proc_name { dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{ pop[/DeviceGray] /sep_colorspace_gray_proc }{ /sep_colorspace_proc }ifelse }def /setsepcolorspace { current_spot_alias{ dup begin Name map_alias{ exch pop }if end }if dup/sep_colorspace_dict exch AGMCORE_gput begin CSA map_csa /AGMCORE_sep_special Name dup()eq exch(All)eq or store AGMCORE_avoid_L2_sep_space{ [/Indexed MappedCSA sep_proc_name 255 exch {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx ]setcolorspace_opt /TintProc{ 255 mul round cvi setcolor }bdf }{ MappedCSA 0 get/DeviceCMYK eq currentdict/Components known and AGMCORE_sep_special not and{ /TintProc[ Components aload pop Name findcmykcustomcolor /exch cvx/setcustomcolor cvx ]cvx bdf }{ AGMCORE_host_sep Name(All)eq and{ /TintProc{ 1 exch sub setseparationgray }bdf }{ AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and AGMCORE_host_sep or Name()eq and{ /TintProc[ MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{ cvx/setcmykcolor cvx }{ cvx/setgray cvx }ifelse ]cvx bdf }{ AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{ /TintProc[ /dup cvx MappedCSA sep_proc_name cvx exch 0 get/DeviceGray eq{ 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx }if /Name cvx/findcmykcustomcolor cvx/exch cvx AGMCORE_host_sep{ AGMCORE_is_cmyk_sep /Name cvx /AGMCORE_IsSeparationAProcessColor load/exec cvx /not cvx/and cvx }{ Name inRip_spot_has_ink not }ifelse [ /pop cvx 1 ]cvx/if cvx /setcustomcolor cvx ]cvx bdf }{ /TintProc{setcolor}bdf [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt }ifelse }ifelse }ifelse }ifelse }ifelse set_crd setsepcolor end }def /additive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 0 1 numarrays 1 sub { 1 exch add/index cvx c1/get cvx/mul cvx }for numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /subtractive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 1 0 1 numarrays 1 sub { 1 3 3 -1 roll add/index cvx c1/get cvx/sub cvx/mul cvx }for /sub cvx numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /exec_tint_transform { /TintProc[ /TintTransform cvx/setcolor cvx ]cvx bdf MappedCSA setcolorspace_opt }bdf /devn_makecustomcolor { 2 dict begin /names_index xdf /Names xdf 1 1 1 1 Names names_index get findcmykcustomcolor /devicen_tints AGMCORE_gget names_index get setcustomcolor Names length{pop}repeat end }bdf /setdevicencolorspace { dup/AliasedColorants known{false}{true}ifelse current_spot_alias and{ 7 dict begin /names_index 0 def dup/names_len exch/Names get length def /new_names names_len array def /new_LookupTables names_len array def /alias_cnt 0 def dup/Names get { dup map_alias{ exch pop dup/ColorLookup known{ dup begin new_LookupTables names_index ColorLookup put end }{ dup/Components known{ dup begin new_LookupTables names_index Components put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse new_names names_index 3 -1 roll/Name get put /alias_cnt alias_cnt 1 add def }{ /name xdf new_names names_index name put dup/LookupTables known{ dup begin new_LookupTables names_index LookupTables names_index get put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse /names_index names_index 1 add def }forall alias_cnt 0 gt{ /AliasedColorants true def /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def 0 1 names_len 1 sub{ /names_index xdf new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{ /AliasedColorants false def exit }{ new_LookupTables names_index get 0 get null eq{ dup/Names get names_index get/name xdf name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq or or or not{ /AliasedColorants false def exit }if }if }ifelse }for lut_entry_len 1 eq{ /AliasedColorants false def }if AliasedColorants{ dup begin /Names new_names def /LookupTables new_LookupTables def /AliasedColorants true def /NComponents lut_entry_len def /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def currentdict/TTTablesIdx known not{ /TTTablesIdx -1 def }if end }if }if end }if dup/devicen_colorspace_dict exch AGMCORE_gput begin currentdict/AliasedColorants known{ AliasedColorants }{ false }ifelse dup not{ CSA map_csa }if /TintTransform load type/nulltype eq or{ /TintTransform[ 0 1 Names length 1 sub { /TTTablesIdx TTTablesIdx 1 add def dup LookupTables exch get dup 0 get null eq { 1 index Names exch get dup(Cyan)eq { pop exch LookupTables length exch sub /index cvx 0 0 0 } { dup(Magenta)eq { pop exch LookupTables length exch sub /index cvx 0/exch cvx 0 0 }{ (Yellow)eq { exch LookupTables length exch sub /index cvx 0 0 3 -1/roll cvx 0 }{ exch LookupTables length exch sub /index cvx 0 0 0 4 -1/roll cvx }ifelse }ifelse }ifelse 5 -1/roll cvx/astore cvx }{ dup length 1 sub LookupTables length 4 -1 roll sub 1 add /index cvx/mul cvx/round cvx/cvi cvx/get cvx }ifelse Names length TTTablesIdx add 1 add 1/roll cvx }for Names length[/pop cvx]cvx/repeat cvx NComponents Names length TintMethod/Subtractive eq { subtractive_blend }{ additive_blend }ifelse ]cvx bdf }if AGMCORE_host_sep{ Names convert_to_process{ exec_tint_transform } { currentdict/AliasedColorants known{ AliasedColorants not }{ false }ifelse 5 dict begin /AvoidAliasedColorants xdf /painted? false def /names_index 0 def /names_len Names length def AvoidAliasedColorants{ /currentspotalias current_spot_alias def false set_spot_alias }if Names{ AGMCORE_is_cmyk_sep{ dup(Cyan)eq AGMCORE_cyan_plate and exch dup(Magenta)eq AGMCORE_magenta_plate and exch dup(Yellow)eq AGMCORE_yellow_plate and exch (Black)eq AGMCORE_black_plate and or or or{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def }if painted?{exit}if }{ 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def exit }if }ifelse /names_index names_index 1 add def }forall AvoidAliasedColorants{ currentspotalias set_spot_alias }if painted?{ /devicen_colorspace_dict AGMCORE_gget/names_index names_index put }{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx 0 0 0 0/setcmykcolor cvx ]cvx ddf }ifelse end }ifelse } { AGMCORE_in_rip_sep{ Names convert_to_process not }{ level3 }ifelse { [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt /TintProc level3 not AGMCORE_in_rip_sep and{ [ Names/length cvx[/pop cvx]cvx/repeat cvx ]cvx bdf }{ {setcolor}bdf }ifelse }{ exec_tint_transform }ifelse }ifelse set_crd /AliasedColorants false def end }def /setindexedcolorspace { dup/indexed_colorspace_dict exch AGMCORE_gput begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ currentdict devncs }{ 1 currentdict sepcs }ifelse AGMCORE_host_sep{ 4 dict begin /compCnt/Names where{pop Names length}{1}ifelse def /NewLookup HiVal 1 add string def 0 1 HiVal{ /tableIndex xdf Lookup dup type/stringtype eq{ compCnt tableIndex map_index }{ exec }ifelse /Names where{ pop setdevicencolor }{ setsepcolor }ifelse currentgray tableIndex exch 255 mul cvi NewLookup 3 1 roll put }for [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt end }{ level3 { currentdict/Names known{ [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt }{ [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt }ifelse }{ [/Indexed MappedCSA HiVal [ currentdict/Names known{ Lookup dup type/stringtype eq {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx} {/exec cvx}ifelse /TintTransform load/exec cvx }{ Lookup dup type/stringtype eq {/exch cvx/get cvx 255/div cvx} {/exec cvx}ifelse CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx }ifelse ]cvx ]setcolorspace_opt }ifelse }ifelse end set_crd } { CSA map_csa AGMCORE_host_sep level2 not and{ 0 0 0 0 setcmykcolor }{ [/Indexed MappedCSA level2 not has_color not and{ dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{ pop[/DeviceGray] }if HiVal GrayLookup }{ HiVal currentdict/RangeArray known{ { /indexed_colorspace_dict AGMCORE_gget begin Lookup exch dup HiVal gt{ pop HiVal }if NComponents mul NComponents getinterval{}forall NComponents 1 sub -1 0{ RangeArray exch 2 mul 2 getinterval aload pop map255_to_range NComponents 1 roll }for end }bind }{ Lookup }ifelse }ifelse ]setcolorspace_opt set_crd }ifelse }ifelse end }def /setindexedcolor { AGMCORE_host_sep{ /indexed_colorspace_dict AGMCORE_gget begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ map_indexed_devn devn } { Lookup 1 3 -1 roll map_index sep }ifelse end }{ Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll map_index MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse }ifelse end }{ level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{ /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin map_indexed_devn devn end } { setcolor }ifelse }ifelse }def /ignoreimagedata { currentoverprint not{ gsave dup clonedict begin 1 setgray /Decode[0 1]def /DataSourcedef /MultipleDataSources false def /BitsPerComponent 8 def currentdict end systemdict/image gx grestore }if consumeimagedata }def /add_res { dup/CSD eq{ pop //Adobe_AGM_Core begin /AGMCORE_CSD_cache load 3 1 roll put end }{ defineresource pop }ifelse }def /del_res { { aload pop exch dup/CSD eq{ pop {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall }{ exch {1 index undefineresource}forall pop }ifelse }forall }def /get_res { dup/CSD eq{ pop dup type dup/nametype eq exch/stringtype eq or{ AGMCORE_CSD_cache exch get }if }{ findresource }ifelse }def /get_csa_by_name { dup type dup/nametype eq exch/stringtype eq or{ /CSA get_res }if }def /paintproc_buf_init { /count get 0 0 put }def /paintproc_buf_next { dup/count get dup 0 get dup 3 1 roll 1 add 0 xpt get }def /cachepaintproc_compress { 5 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def /string_size 16000 def /readbuffer string_size string def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal /LZWFilter { exch dup length 0 eq{ pop }{ ppdict dup length 1 sub 3 -1 roll put }ifelse {string_size}{0}ifelse string }/LZWEncode filter def { ReadFilter readbuffer readstring exch LZWFilter exch writestring not{exit}if }loop LZWFilter closefile ppdict end }def /cachepaintproc { 2 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal { ReadFilter 16000 string readstring exch ppdict dup length 1 sub 3 -1 roll put not{exit}if }loop ppdict dup dup length 1 sub()put end }def /make_pattern { exch clonedict exch dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub matrix translate exch matrix concatmatrix 1 index begin BBox 0 get XStep div cvi XStep mul/xshift exch neg def BBox 1 get YStep div cvi YStep mul/yshift exch neg def BBox 0 get xshift add BBox 1 get yshift add BBox 2 get xshift add BBox 3 get yshift add 4 array astore /BBox exch def [xshift yshift/translate load null/exec load]dup 3/PaintProc load put cvx/PaintProc exch def end gsave 0 setgray makepattern grestore }def /set_pattern { dup/PatternType get 1 eq{ dup/PaintType get 1 eq{ currentoverprint sop[/DeviceGray]setcolorspace 0 setgray }if }if setpattern }def /setcolorspace_opt { dup currentcolorspace eq{pop}{setcolorspace}ifelse }def /updatecolorrendering { currentcolorrendering/RenderingIntent known{ currentcolorrendering/RenderingIntent get } { Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd AGMCORE_gget dup null eq } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd AGMCORE_gget dup null eq } { Intent/Saturation eq { /saturation_crd AGMCORE_gget dup null eq } { /perceptual_crd AGMCORE_gget dup null eq }ifelse }ifelse }ifelse { pop null } { /RenderingIntent known{null}{Intent}ifelse }ifelse }ifelse Intent ne{ Intent/ColorRendering{findresource}stopped { pop pop systemdict/findcolorrendering known { Intent findcolorrendering { /ColorRendering findresource true exch } { /ColorRendering findresource product(Xerox Phaser 5400)ne exch }ifelse dup Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd exch AGMCORE_gput } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd exch AGMCORE_gput } { Intent/Saturation eq { /saturation_crd exch AGMCORE_gput } { Intent/Perceptual eq { /perceptual_crd exch AGMCORE_gput } { pop }ifelse }ifelse }ifelse }ifelse 1 index{exch}{pop}ifelse } {false}ifelse } {true}ifelse { dup begin currentdict/TransformPQR known{ currentdict/TransformPQR get aload pop 3{{}eq 3 1 roll}repeat or or } {true}ifelse currentdict/MatrixPQR known{ currentdict/MatrixPQR get aload pop 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq and and and and and and and and } {true}ifelse end or { clonedict begin /TransformPQR[ {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind ]def /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def currentdict end }if setcolorrendering_opt }if }if }def /set_crd { AGMCORE_host_sep not level2 and{ currentdict/ColorRendering known{ ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if }{ currentdict/Intent known{ updatecolorrendering }if }ifelse currentcolorspace dup type/arraytype eq {0 get}if /DeviceRGB eq { currentdict/UCR known {/UCR}{/AGMCORE_currentucr}ifelse load setundercolorremoval currentdict/BG known {/BG}{/AGMCORE_currentbg}ifelse load setblackgeneration }if }if }def /set_ucrbg { dup null eq{pop/AGMCORE_currentbg load}{/Procedure get_res}ifelse setblackgeneration dup null eq{pop/AGMCORE_currentucr load}{/Procedure get_res}ifelse setundercolorremoval }def /setcolorrendering_opt { dup currentcolorrendering eq{ pop }{ product(HP Color LaserJet 2605)anchorsearch{ pop pop pop }{ pop clonedict begin /Intent Intent def currentdict end setcolorrendering }ifelse }ifelse }def /cpaint_gcomp { convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not { (%end_cpaint_gcomp)flushinput }if }def /cpaint_gsep { //Adobe_AGM_Core/AGMCORE_ConvertToProcess get { (%end_cpaint_gsep)flushinput }if }def /cpaint_gend {np}def /T1_path { currentfile token pop currentfile token pop mo { currentfile token pop dup type/stringtype eq {pop exit}if 0 exch rlineto currentfile token pop dup type/stringtype eq {pop exit}if 0 rlineto }loop }def /T1_gsave level3 {/clipsave} {/gsave}ifelse load def /T1_grestore level3 {/cliprestore} {/grestore}ifelse load def /set_spot_alias_ary { dup inherit_aliases //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf }def /set_spot_normalization_ary { dup inherit_aliases dup length /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if array //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf /AGMCORE_SpotAliasAry where{ pop AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval AGMCORE_SpotAliasAry length }{0}ifelse AGMCORE_SpotAliasAry2 3 1 roll exch putinterval true set_spot_alias }def /inherit_aliases { {dup/Name get map_alias{/CSD put}{pop}ifelse}forall }def /set_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias 3 -1 roll put }{ pop }ifelse }def /current_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias get }{ false }ifelse }def /map_alias { /AGMCORE_SpotAliasAry2 where{ begin /AGMCORE_name xdf false AGMCORE_SpotAliasAry2{ dup/Name get AGMCORE_name eq{ /CSD get/CSD get_res exch pop true exit }{ pop }ifelse }forall end }{ pop false }ifelse }bdf /spot_alias { true set_spot_alias /AGMCORE_&setcustomcolor AGMCORE_key_known not{ //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put }if /customcolor_tint 1 AGMCORE_gput //Adobe_AGM_Core begin /setcustomcolor { //Adobe_AGM_Core begin dup/customcolor_tint exch AGMCORE_gput 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not current_spot_alias and{1 index 4 get map_alias}{false}ifelse { false set_spot_alias /sep_colorspace_dict AGMCORE_gget null ne {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse 3 1 roll 2 index{ exch pop/sep_tint AGMCORE_gget exch }if mark 3 1 roll setsepcolorspace counttomark 0 ne{ setsepcolor }if pop not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if pop true set_spot_alias }{ AGMCORE_&setcustomcolor }ifelse end }bdf end }def /begin_feature { Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if }def /end_feature { 2 dict begin /spd/setpagedevice load def /setpagedevice{get_gstate spd set_gstate}def stopped{$error/newerror false put}if end count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if }def /set_negative { //Adobe_AGM_Core begin /AGMCORE_inverting exch def level2{ currentpagedevice/NegativePrint known AGMCORE_distilling not and{ currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{ true begin_feature true{ <>setpagedevice }end_feature }if /AGMCORE_inverting false def }if }if AGMCORE_inverting{ [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer AGMCORE_distilling{ erasepage }{ gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore }ifelse }if end }def /lw_save_restore_override{ /md where{ pop md begin initializepage /initializepage{}def /pmSVsetup{}def /endp{}def /pse{}def /psb{}def /orig_showpage where {pop} {/orig_showpage/showpage load def} ifelse /showpage{orig_showpage gR}def end }if }def /pscript_showpage_override{ /NTPSOct95 where { begin showpage save /showpage/restore load def /restore{exch pop}def end }if }def /driver_media_override { /md where{ pop md/initializepage known{ md/initializepage{}put }if md/rC known{ md/rC{4{pop}repeat}put }if }if /mysetup where{ /mysetup[1 0 0 1 0 0]put }if Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put level2 {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if }def /capture_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put }if }if }def /restore_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup known{ Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put Adobe_AGM_Core/save_mysetup undef }if }if }if }def /driver_check_media_override { /PrepsDict where {pop} { Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq { Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and }if { Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix }if }ifelse }def AGMCORE_err_strings begin /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def /AGMCORE_invalid_color_space(This job contains an invalid color space. )def end /set_def_ht {AGMCORE_def_ht sethalftone}def /set_def_flat {AGMCORE_Default_flatness setflat}def end systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_CoolType_Core 2.31 0 %%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved. %%Version: 2.31 0 10 dict begin /Adobe_CoolType_Passthru currentdict def /Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def Adobe_CoolType_Core_Defined {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def} if userdict/Adobe_CoolType_Core 70 dict dup begin put /Adobe_CoolType_Version 2.31 def /Level2? systemdict/languagelevel known dup {pop systemdict/languagelevel get 2 ge} if def Level2? not { /currentglobal false def /setglobal/pop load def /gcheck{pop false}bind def /currentpacking false def /setpacking/pop load def /SharedFontDirectory 0 dict def } if currentpacking true setpacking currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def end setglobal currentglobal true setglobal userdict/Adobe_CoolType_GVMFonts known not {userdict/Adobe_CoolType_GVMFonts 10 dict put} if setglobal currentglobal false setglobal userdict/Adobe_CoolType_LVMFonts known not {userdict/Adobe_CoolType_LVMFonts 10 dict put} if setglobal /ct_VMDictPut { dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse 3 1 roll put }bind def /ct_VMDictUndef { dup Adobe_CoolType_GVMFonts exch known {Adobe_CoolType_GVMFonts exch undef} { dup Adobe_CoolType_LVMFonts exch known {Adobe_CoolType_LVMFonts exch undef} {pop} ifelse }ifelse }bind def /ct_str1 1 string def /ct_xshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_yshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 exch rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_xyshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { {_ct_na _ct_i 1 add get}stopped {pop pop pop} { _ct_x _ct_y moveto rmoveto } ifelse } ifelse /_ct_i _ct_i 2 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def /ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def /xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def currentglobal true setglobal /ct_T3Defs { /BuildChar { 1 index/Encoding get exch get 1 index/BuildGlyph get exec }bind def /BuildGlyph { exch begin GlyphProcs exch get exec end }bind def }bind def setglobal /@_SaveStackLevels { Adobe_CoolType_Data begin /@vmState currentglobal def false setglobal @opStackCountByLevel @opStackLevel 2 copy known not { 2 copy 3 dict dup/args 7 index 5 add array put put get } { get dup/args get dup length 3 index lt { dup length 5 add array exch 1 index exch 0 exch putinterval 1 index exch/args exch put } {pop} ifelse } ifelse begin count 1 sub 1 index lt {pop count} if dup/argCount exch def dup 0 gt { args exch 0 exch getinterval astore pop } {pop} ifelse count /restCount exch def end /@opStackLevel @opStackLevel 1 add def countdictstack 1 sub @dictStackCountByLevel exch @dictStackLevel exch put /@dictStackLevel @dictStackLevel 1 add def @vmState setglobal end }bind def /@_RestoreStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def @opStackCountByLevel @opStackLevel get begin count restCount sub dup 0 gt {{pop}repeat} {pop} ifelse args 0 argCount getinterval{}forall end /@dictStackLevel @dictStackLevel 1 sub def @dictStackCountByLevel @dictStackLevel get end countdictstack exch sub dup 0 gt {{end}repeat} {pop} ifelse }bind def /@_PopStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def /@dictStackLevel @dictStackLevel 1 sub def end }bind def /@Raise { exch cvx exch errordict exch get exec stop }bind def /@ReRaise { cvx $error/errorname get errordict exch get exec stop }bind def /@Stopped { 0 @#Stopped }bind def /@#Stopped { @_SaveStackLevels stopped {@_RestoreStackLevels true} {@_PopStackLevels false} ifelse }bind def /@Arg { Adobe_CoolType_Data begin @opStackCountByLevel @opStackLevel 1 sub get begin args exch argCount 1 sub exch sub get end end }bind def currentglobal true setglobal /CTHasResourceForAllBug Level2? { 1 dict dup /@shouldNotDisappearDictValue true def Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put begin count @_SaveStackLevels {(*){pop stop}128 string/Category resourceforall} stopped pop @_RestoreStackLevels currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll { /@shouldNotDisappearDictValue known { { end currentdict 1 index eq {pop exit} if } loop } if } { pop end } ifelse } {false} ifelse def true setglobal /CTHasResourceStatusBug Level2? { mark {/steveamerige/Category resourcestatus} stopped {cleartomark true} {cleartomark currentglobal not} ifelse } {false} ifelse def setglobal /CTResourceStatus { mark 3 1 roll /Category findresource begin ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse end }bind def /CTWorkAroundBugs { Level2? { /cid_PreLoad/ProcSet resourcestatus { pop pop currentglobal mark { (*) { dup/CMap CTHasResourceStatusBug {CTResourceStatus} {resourcestatus} ifelse { pop dup 0 eq exch 1 eq or { dup/CMap findresource gcheck setglobal /CMap undefineresource } { pop CTHasResourceForAllBug {exit} {stop} ifelse } ifelse } {pop} ifelse } 128 string/CMap resourceforall } stopped {cleartomark} stopped pop setglobal } if } if }bind def /ds { Adobe_CoolType_Core begin CTWorkAroundBugs /mo/moveto load def /nf/newencodedfont load def /msf{makefont setfont}bind def /uf{dup undefinefont ct_VMDictUndef}bind def /ur/undefineresource load def /chp/charpath load def /awsh/awidthshow load def /wsh/widthshow load def /ash/ashow load def /@xshow/xshow load def /@yshow/yshow load def /@xyshow/xyshow load def /@cshow/cshow load def /sh/show load def /rp/repeat load def /.n/.notdef def end currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /AddWidths? false def /CC 0 def /charcode 2 string def /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def /InVMFontsByCMap 10 dict def /InVMDeepCopiedFonts 10 dict def end setglobal }bind def /dt { currentdict Adobe_CoolType_Core eq {end} if }bind def /ps { Adobe_CoolType_Core begin Adobe_CoolType_GVMFonts begin Adobe_CoolType_LVMFonts begin SharedFontDirectory begin }bind def /pt { end end end end }bind def /unload { systemdict/languagelevel known { systemdict/languagelevel get 2 ge { userdict/Adobe_CoolType_Core 2 copy known {undef} {pop pop} ifelse } if } if }bind def /ndf { 1 index where {pop pop pop} {dup xcheck{bind}if def} ifelse }def /findfont systemdict begin userdict begin /globaldict where{/globaldict get begin}if dup where pop exch get /globaldict where{pop end}if end end Adobe_CoolType_Core_Defined {/systemfindfont exch def} { /findfont 1 index def /systemfindfont exch def } ifelse /undefinefont {pop}ndf /copyfont { currentglobal 3 1 roll 1 index gcheck setglobal dup null eq{0}{dup length}ifelse 2 index length add 1 add dict begin exch { 1 index/FID eq {pop pop} {def} ifelse } forall dup null eq {pop} {{def}forall} ifelse currentdict end exch setglobal }bind def /copyarray { currentglobal exch dup gcheck setglobal dup length array copy exch setglobal }bind def /newencodedfont { currentglobal { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } { FontDirectory 3 index known {FontDirectory 3 index get/FontReferenced known} { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } ifelse } ifelse dup { 3 index findfont/FontReferenced get 2 index dup type/nametype eq {findfont} if ne {pop false} if } if dup { 1 index dup type/nametype eq {findfont} if dup/CharStrings known { /CharStrings get length 4 index findfont/CharStrings get length ne { pop false } if } {pop} ifelse } if { pop 1 index findfont /Encoding get exch 0 1 255 {2 copy get 3 index 3 1 roll put} for pop pop pop } { currentglobal 4 1 roll dup type/nametype eq {findfont} if dup gcheck setglobal dup dup maxlength 2 add dict begin exch { 1 index/FID ne 2 index/Encoding ne and {def} {pop pop} ifelse } forall /FontReferenced exch def /Encoding exch dup length array copy def /FontName 1 index dup type/stringtype eq{cvn}if def dup currentdict end definefont ct_VMDictPut setglobal } ifelse }bind def /SetSubstituteStrategy { $SubstituteFont begin dup type/dicttype ne {0 dict} if currentdict/$Strategies known { exch $Strategies exch 2 copy known { get 2 copy maxlength exch maxlength add dict begin {def}forall {def}forall currentdict dup/$Init known {dup/$Init get exec} if end /$Strategy exch def } {pop pop pop} ifelse } {pop pop} ifelse end }bind def /scff { $SubstituteFont begin dup type/stringtype eq {dup length exch} {null} ifelse /$sname exch def /$slen exch def /$inVMIndex $sname null eq { 1 index $str cvs dup length $slen sub $slen getinterval cvn } {$sname} ifelse def end {findfont} @Stopped { dup length 8 add string exch 1 index 0(BadFont:)putinterval 1 index exch 8 exch dup length string cvs putinterval cvn {findfont} @Stopped {pop/Courier findfont} if } if $SubstituteFont begin /$sname null def /$slen 0 def /$inVMIndex null def end }bind def /isWidthsOnlyFont { dup/WidthsOnly known {pop pop true} { dup/FDepVector known {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall} { dup/FDArray known {/FDArray get{isWidthsOnlyFont dup{exit}if}forall} {pop} ifelse } ifelse } ifelse }bind def /ct_StyleDicts 4 dict dup begin /Adobe-Japan1 4 dict dup begin Level2? { /Serif /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMin-W3} { /CIDFont/Category resourcestatus { pop pop /HeiseiMin-W3/CIDFont resourcestatus {pop pop/HeiseiMin-W3} {/Ryumin-Light} ifelse } {/Ryumin-Light} ifelse } ifelse def /SansSerif /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiKakuGo-W5} { /CIDFont/Category resourcestatus { pop pop /HeiseiKakuGo-W5/CIDFont resourcestatus {pop pop/HeiseiKakuGo-W5} {/GothicBBB-Medium} ifelse } {/GothicBBB-Medium} ifelse } ifelse def /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMaruGo-W4} { /CIDFont/Category resourcestatus { pop pop /HeiseiMaruGo-W4/CIDFont resourcestatus {pop pop/HeiseiMaruGo-W4} { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } ifelse /RoundSansSerif exch def /Default Serif def } { /Serif/Ryumin-Light def /SansSerif/GothicBBB-Medium def { (fonts/Jun101-Light-83pv-RKSJ-H)status }stopped {pop}{ {pop pop pop pop/Jun101-Light} {SansSerif} ifelse /RoundSansSerif exch def }ifelse /Default Serif def } ifelse end def /Adobe-Korea1 4 dict dup begin /Serif/HYSMyeongJo-Medium def /SansSerif/HYGoThic-Medium def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-GB1 4 dict dup begin /Serif/STSong-Light def /SansSerif/STHeiti-Regular def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-CNS1 4 dict dup begin /Serif/MKai-Medium def /SansSerif/MHei-Medium def /RoundSansSerif SansSerif def /Default Serif def end def end def Level2?{currentglobal true setglobal}if /ct_BoldRomanWidthProc { stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth 0 0 }bind def /ct_Type0WidthProc { dup stringwidth 0 0 moveto 2 index true charpath pathbbox 0 -1 7 index 2 div .88 setcachedevice2 pop 0 0 }bind def /ct_Type0WMode1WidthProc { dup stringwidth pop 2 div neg -0.88 2 copy moveto 0 -1 5 -1 roll true charpath pathbbox setcachedevice }bind def /cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_BoldBaseFont 11 dict begin /FontType 3 def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /Encoding cHexEncoding def /_setwidthProc/ct_BoldRomanWidthProc load def /_bcstr1 1 string def /BuildChar { exch begin _basefont setfont _bcstr1 dup 0 4 -1 roll put dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def systemdict/composefont known { /ct_DefineIdentity-H { /Identity-H/CMap resourcestatus { pop pop } { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse } def /ct_BoldBaseCIDFont 11 dict begin /CIDFontType 1 def /CIDFontName/ct_BoldBaseCIDFont def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /_setwidthProc/ct_Type0WidthProc load def /_bcstr2 2 string def /BuildGlyph { exch begin _basefont setfont _bcstr2 1 2 index 256 mod put _bcstr2 0 3 -1 roll 256 idiv put _bcstr2 dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def }if Level2?{setglobal}if /ct_CopyFont{ { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall }bind def /ct_Type0CopyFont { exch dup length dict begin ct_CopyFont [ exch FDepVector { dup/FontType get 0 eq { 1 index ct_Type0CopyFont /_ctType0 exch definefont } { /_ctBaseFont exch 2 index exec } ifelse exch } forall pop ] /FDepVector exch def currentdict end }bind def /ct_MakeBoldFont { dup/ct_SyntheticBold known { dup length 3 add dict begin ct_CopyFont /ct_StrokeWidth .03 0 FontMatrix idtransform pop def /ct_SyntheticBold true def currentdict end definefont } { dup dup length 3 add dict begin ct_CopyFont /PaintType 2 def /StrokeWidth .03 0 FontMatrix idtransform pop def /dummybold currentdict end definefont dup/FontType get dup 9 ge exch 11 le and { ct_BoldBaseCIDFont dup length 3 add dict copy begin dup/CIDSystemInfo get/CIDSystemInfo exch def ct_DefineIdentity-H /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefont exch def /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefonto exch def currentdict end /CIDFont defineresource } { ct_BoldBaseFont dup length 3 add dict copy begin /_basefont exch def /_basefonto exch def currentdict end definefont } ifelse } ifelse }bind def /ct_MakeBold{ 1 index 1 index findfont currentglobal 5 1 roll dup gcheck setglobal dup /FontType get 0 eq { dup/WMode known{dup/WMode get 1 eq}{false}ifelse version length 4 ge and {version 0 4 getinterval cvi 2015 ge} {true} ifelse {/ct_Type0WidthProc} {/ct_Type0WMode1WidthProc} ifelse ct_BoldBaseFont/_setwidthProc 3 -1 roll load put {ct_MakeBoldFont}ct_Type0CopyFont definefont } { dup/_fauxfont known not 1 index/SubstMaster known not and { ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put ct_MakeBoldFont } { 2 index 2 index eq {exch pop } { dup length dict begin ct_CopyFont currentdict end definefont } ifelse } ifelse } ifelse pop pop pop setglobal }bind def /?str1 256 string def /?set { $SubstituteFont begin /$substituteFound false def /$fontname 1 index def /$doSmartSub false def end dup findfont $SubstituteFont begin $substituteFound {false} { dup/FontName known { dup/FontName get $fontname eq 1 index/DistillerFauxFont known not and /currentdistillerparams where {pop false 2 index isWidthsOnlyFont not and} if } {false} ifelse } ifelse exch pop /$doSmartSub true def end { 5 1 roll pop pop pop pop findfont } { 1 index findfont dup/FontType get 3 eq { 6 1 roll pop pop pop pop pop false } {pop true} ifelse { $SubstituteFont begin pop pop /$styleArray 1 index def /$regOrdering 2 index def pop pop 0 1 $styleArray length 1 sub { $styleArray exch get ct_StyleDicts $regOrdering 2 copy known { get exch 2 copy known not {pop/Default} if get dup type/nametype eq { ?str1 cvs length dup 1 add exch ?str1 exch(-)putinterval exch dup length exch ?str1 exch 3 index exch putinterval add ?str1 exch 0 exch getinterval cvn } { pop pop/Unknown } ifelse } { pop pop pop pop/Unknown } ifelse } for end findfont }if } ifelse currentglobal false setglobal 3 1 roll null copyfont definefont pop setglobal }bind def setpacking userdict/$SubstituteFont 25 dict put 1 dict begin /SubstituteFont dup $error exch 2 copy known {get} {pop pop{pop/Courier}bind} ifelse def /currentdistillerparams where dup { pop pop currentdistillerparams/CannotEmbedFontPolicy 2 copy known {get/Error eq} {pop pop false} ifelse } if not { countdictstack array dictstack 0 get begin userdict begin $SubstituteFont begin /$str 128 string def /$fontpat 128 string def /$slen 0 def /$sname null def /$match false def /$fontname null def /$substituteFound false def /$inVMIndex null def /$doSmartSub true def /$depth 0 def /$fontname null def /$italicangle 26.5 def /$dstack null def /$Strategies 10 dict dup begin /$Type3Underprint { currentglobal exch false setglobal 11 dict begin /UseFont exch $WMode 0 ne { dup length dict copy dup/WMode $WMode put /UseFont exch definefont } if def /FontName $fontname dup type/stringtype eq{cvn}if def /FontType 3 def /FontMatrix[.001 0 0 .001 0 0]def /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def /FontBBox[0 0 0 0]def /CCInfo 7 dict dup begin /cc null def /x 0 def /y 0 def end def /BuildChar { exch begin CCInfo begin 1 string dup 0 3 index put exch pop /cc exch def UseFont 1000 scalefont setfont cc stringwidth/y exch def/x exch def x y setcharwidth $SubstituteFont/$Strategy get/$Underprint get exec 0 0 moveto cc show x y moveto end end }bind def currentdict end exch setglobal }bind def /$GetaTint 2 dict dup begin /$BuildFont { dup/WMode known {dup/WMode get} {0} ifelse /$WMode exch def $fontname exch dup/FontName known { dup/FontName get dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse exch Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index/FontName get known { pop Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index get null copyfont } {$deepcopyfont} ifelse exch 1 index exch/FontBasedOn exch put dup/FontName $fontname dup type/stringtype eq{cvn}if put definefont Adobe_CoolType_Data/InVMDeepCopiedFonts get begin dup/FontBasedOn get 1 index def end }bind def /$Underprint { gsave x abs y abs gt {/y 1000 def} {/x -1000 def 500 120 translate} ifelse Level2? { [/Separation(All)/DeviceCMYK{0 0 0 1 pop}] setcolorspace } {0 setgray} ifelse 10 setlinewidth x .8 mul [7 3] { y mul 8 div 120 sub x 10 div exch moveto 0 y 4 div neg rlineto dup 0 rlineto 0 y 4 div rlineto closepath gsave Level2? {.2 setcolor} {.8 setgray} ifelse fill grestore stroke } forall pop grestore }bind def end def /$Oblique 1 dict dup begin /$BuildFont { currentglobal exch dup gcheck setglobal null copyfont begin /FontBasedOn currentdict/FontName known { FontName dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse def /FontName $fontname dup type/stringtype eq{cvn}if def /currentdistillerparams where {pop} { /FontInfo currentdict/FontInfo known {FontInfo null copyfont} {2 dict} ifelse dup begin /ItalicAngle $italicangle def /FontMatrix FontMatrix [1 0 ItalicAngle dup sin exch cos div 1 0 0] matrix concatmatrix readonly end 4 2 roll def def } ifelse FontName currentdict end definefont exch setglobal }bind def end def /$None 1 dict dup begin /$BuildFont{}bind def end def end def /$Oblique SetSubstituteStrategy /$findfontByEnum { dup type/stringtype eq{cvn}if dup/$fontname exch def $sname null eq {$str cvs dup length $slen sub $slen getinterval} {pop $sname} ifelse $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval /$match false def $SubstituteFont/$dstack countdictstack array dictstack put mark { $fontpat 0 $slen 7 add getinterval {/$match exch def exit} $str filenameforall } stopped { cleardictstack currentdict true $SubstituteFont/$dstack get { exch { 1 index eq {pop false} {true} ifelse } {begin false} ifelse } forall pop } if cleartomark /$slen 0 def $match false ne {$match(fonts/)anchorsearch pop pop cvn} {/Courier} ifelse }bind def /$ROS 1 dict dup begin /Adobe 4 dict dup begin /Japan1 [/Ryumin-Light/HeiseiMin-W3 /GothicBBB-Medium/HeiseiKakuGo-W5 /HeiseiMaruGo-W4/Jun101-Light]def /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def /GB1 [/STSong-Light/STHeiti-Regular]def /CNS1 [/MKai-Medium/MHei-Medium]def end def end def /$cmapname null def /$deepcopyfont { dup/FontType get 0 eq { 1 dict dup/FontName/copied put copyfont begin /FDepVector FDepVector copyarray 0 1 2 index length 1 sub { 2 copy get $deepcopyfont dup/FontName/copied put /copied exch definefont 3 copy put pop pop } for def currentdict end } {$Strategies/$Type3Underprint get exec} ifelse }bind def /$buildfontname { dup/CIDFont findresource/CIDSystemInfo get begin Registry length Ordering length Supplement 8 string cvs 3 copy length 2 add add add string dup 5 1 roll dup 0 Registry putinterval dup 4 index(-)putinterval dup 4 index 1 add Ordering putinterval 4 2 roll add 1 add 2 copy(-)putinterval end 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch anchorsearch {pop pop 3 2 roll putinterval cvn/$cmapname exch def} {pop pop pop pop pop} ifelse length $str 1 index(-)putinterval 1 add $str 1 index $cmapname $fontpat cvs putinterval $cmapname length add $str exch 0 exch getinterval cvn }bind def /$findfontByROS { /$fontname exch def $ROS Registry 2 copy known { get Ordering 2 copy known {get} {pop pop[]} ifelse } {pop pop[]} ifelse false exch { dup/CIDFont resourcestatus { pop pop save 1 index/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get} {false} ifelse exch pop exch restore {pop} {exch pop true exit} ifelse } {pop} ifelse } forall {$str cvs $buildfontname} { false(*) { save exch dup/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get not} {true} ifelse exch/CIDSystemInfo get dup/Registry get Registry eq exch/Ordering get Ordering eq and and {exch restore exch pop true exit} {pop restore} ifelse } $str/CIDFont resourceforall {$buildfontname} {$fontname $findfontByEnum} ifelse } ifelse }bind def end end currentdict/$error known currentdict/languagelevel known and dup {pop $error/SubstituteFont known} if dup {$error} {Adobe_CoolType_Core} ifelse begin { /SubstituteFont /CMap/Category resourcestatus { pop pop { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and { $sname null eq {dup $str cvs dup length $slen sub $slen getinterval cvn} {$sname} ifelse Adobe_CoolType_Data/InVMFontsByCMap get 1 index 2 copy known { get false exch { pop currentglobal { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } { FontDirectory 1 index known {exch pop true exit} { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } ifelse } ifelse } forall } {pop pop false} ifelse { exch pop exch pop } { dup/CMap resourcestatus { pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS } { 128 string cvs dup(-)search { 3 1 roll search { 3 1 roll pop {dup cvi} stopped {pop pop pop pop pop $findfontByEnum} { 4 2 roll pop pop exch length exch 2 index length 2 index sub exch 1 sub -1 0 { $str cvs dup length 4 index 0 4 index 4 3 roll add getinterval exch 1 index exch 3 index exch putinterval dup/CMap resourcestatus { pop pop 4 1 roll pop pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS true exit } {pop} ifelse } for dup type/booleantype eq {pop} {pop pop pop $findfontByEnum} ifelse } ifelse } {pop pop pop $findfontByEnum} ifelse } {pop pop $findfontByEnum} ifelse } ifelse } ifelse } {//SubstituteFont exec} ifelse /$slen 0 def end } } { { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and {$findfontByEnum} {//SubstituteFont exec} ifelse end } } ifelse bind readonly def Adobe_CoolType_Core/scfindfont/systemfindfont load put } { /scfindfont { $SubstituteFont begin dup systemfindfont dup/FontName known {dup/FontName get dup 3 index ne} {/noname true} ifelse dup { /$origfontnamefound 2 index def /$origfontname 4 index def/$substituteFound true def } if exch pop { $slen 0 gt $sname null ne 3 index length $slen gt or and { pop dup $findfontByEnum findfont dup maxlength 1 add dict begin {1 index/FID eq{pop pop}{def}ifelse} forall currentdict end definefont dup/FontName known{dup/FontName get}{null}ifelse $origfontnamefound ne { $origfontname $str cvs print ( substitution revised, using )print dup/FontName known {dup/FontName get}{(unspecified font)} ifelse $str cvs print(.\n)print } if } {exch pop} ifelse } {exch pop} ifelse end }bind def } ifelse end end Adobe_CoolType_Core_Defined not { Adobe_CoolType_Core/findfont { $SubstituteFont begin $depth 0 eq { /$fontname 1 index dup type/stringtype ne{$str cvs}if def /$substituteFound false def } if /$depth $depth 1 add def end scfindfont $SubstituteFont begin /$depth $depth 1 sub def $substituteFound $depth 0 eq and { $inVMIndex null ne {dup $inVMIndex $AddInVMFont} if $doSmartSub { currentdict/$Strategy known {$Strategy/$BuildFont get exec} if } if } if end }bind put } if } if end /$AddInVMFont { exch/FontName 2 copy known { get 1 dict dup begin exch 1 index gcheck def end exch Adobe_CoolType_Data/InVMFontsByCMap get exch $DictAdd } {pop pop pop} ifelse }bind def /$DictAdd { 2 copy known not {2 copy 4 index length dict put} if Level2? not { 2 copy get dup maxlength exch length 4 index length add lt 2 copy get dup length 4 index length add exch maxlength 1 index lt { 2 mul dict begin 2 copy get{forall}def 2 copy currentdict put end } {pop} ifelse } if get begin {def} forall end }bind def end end %%EndResource currentglobal true setglobal %%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%Copyright: Copyright 1987-2006 Adobe Systems Incorporated. %%Version: 1.23 0 systemdict/languagelevel known dup {currentglobal false setglobal} {false} ifelse exch userdict/Adobe_CoolType_Utility 2 copy known {2 copy get dup maxlength 27 add dict copy} {27 dict} ifelse put Adobe_CoolType_Utility begin /@eexecStartData def /@recognizeCIDFont null def /ct_Level2? exch def /ct_Clone? 1183615869 internaldict dup /CCRun known not exch/eCCRun known not ct_Level2? and or def ct_Level2? {globaldict begin currentglobal true setglobal} if /ct_AddStdCIDMap ct_Level2? {{ mark Adobe_CoolType_Utility/@recognizeCIDFont currentdict put { ((Hex)57 StartData 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8 cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec } stopped { cleartomark Adobe_CoolType_Utility/@recognizeCIDFont get countdictstack dup array dictstack exch 1 sub -1 0 { 2 copy get 3 index eq {1 index length exch sub 1 sub{end}repeat exit} {pop} ifelse } for pop pop Adobe_CoolType_Utility/@eexecStartData get eexec } {cleartomark} ifelse }} {{ Adobe_CoolType_Utility/@eexecStartData get eexec }} ifelse bind def userdict/cid_extensions known dup{cid_extensions/cid_UpdateDB known and}if { cid_extensions begin /cid_GetCIDSystemInfo { 1 index type/stringtype eq {exch cvn exch} if cid_extensions begin dup load 2 index known { 2 copy cid_GetStatusInfo dup null ne { 1 index load 3 index get dup null eq {pop pop cid_UpdateDB} { exch 1 index/Created get eq {exch pop exch pop} {pop cid_UpdateDB} ifelse } ifelse } {pop cid_UpdateDB} ifelse } {cid_UpdateDB} ifelse end }bind def end } if ct_Level2? {end setglobal} if /ct_UseNativeCapability? systemdict/composefont known def /ct_MakeOCF 35 dict def /ct_Vars 25 dict def /ct_GlyphDirProcs 6 dict def /ct_BuildCharDict 15 dict dup begin /charcode 2 string def /dst_string 1500 string def /nullstring()def /usewidths? true def end def ct_Level2?{setglobal}{pop}ifelse ct_GlyphDirProcs begin /GetGlyphDirectory { systemdict/languagelevel known {pop/CIDFont findresource/GlyphDirectory get} { 1 index/CIDFont findresource/GlyphDirectory get dup type/dicttype eq { dup dup maxlength exch length sub 2 index lt { dup length 2 index add dict copy 2 index /CIDFont findresource/GlyphDirectory 2 index put } if } if exch pop exch pop } ifelse + }def /+ { systemdict/languagelevel known { currentglobal false setglobal 3 dict begin /vm exch def } {1 dict begin} ifelse /$ exch def systemdict/languagelevel known { vm setglobal /gvm currentglobal def $ gcheck setglobal } if ?{$ begin}if }def /?{$ type/dicttype eq}def /|{ userdict/Adobe_CoolType_Data known { Adobe_CoolType_Data/AddWidths? known { currentdict Adobe_CoolType_Data begin begin AddWidths? { Adobe_CoolType_Data/CC 3 index put ?{def}{$ 3 1 roll put}ifelse CC charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore currentfont/Widths get exch CC exch put } {?{def}{$ 3 1 roll put}ifelse} ifelse end end } {?{def}{$ 3 1 roll put}ifelse} ifelse } {?{def}{$ 3 1 roll put}ifelse} ifelse }def /! { ?{end}if systemdict/languagelevel known {gvm setglobal} if end }def /:{string currentfile exch readstring pop}executeonly def end ct_MakeOCF begin /ct_cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_CID_STR_SIZE 8000 def /ct_mkocfStr100 100 string def /ct_defaultFontMtx[.001 0 0 .001 0 0]def /ct_1000Mtx[1000 0 0 1000 0 0]def /ct_raise{exch cvx exch errordict exch get exec stop}bind def /ct_reraise {cvx $error/errorname get(Error: )print dup( )cvs print errordict exch get exec stop }bind def /ct_cvnsi { 1 index add 1 sub 1 exch 0 4 1 roll { 2 index exch get exch 8 bitshift add } for exch pop }bind def /ct_GetInterval { Adobe_CoolType_Utility/ct_BuildCharDict get begin /dst_index 0 def dup dst_string length gt {dup string/dst_string exch def} if 1 index ct_CID_STR_SIZE idiv /arrayIndex exch def 2 index arrayIndex get 2 index arrayIndex ct_CID_STR_SIZE mul sub { dup 3 index add 2 index length le { 2 index getinterval dst_string dst_index 2 index putinterval length dst_index add/dst_index exch def exit } { 1 index length 1 index sub dup 4 1 roll getinterval dst_string dst_index 2 index putinterval pop dup dst_index add/dst_index exch def sub /arrayIndex arrayIndex 1 add def 2 index dup length arrayIndex gt {arrayIndex get} { pop exit } ifelse 0 } ifelse } loop pop pop pop dst_string 0 dst_index getinterval end }bind def ct_Level2? { /ct_resourcestatus currentglobal mark true setglobal {/unknowninstancename/Category resourcestatus} stopped {cleartomark setglobal true} {cleartomark currentglobal not exch setglobal} ifelse { { mark 3 1 roll/Category findresource begin ct_Vars/vm currentglobal put ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse ct_Vars/vm get setglobal end } } {{resourcestatus}} ifelse bind def /CIDFont/Category ct_resourcestatus {pop pop} { currentglobal true setglobal /Generic/Category findresource dup length dict copy dup/InstanceType/dicttype put /CIDFont exch/Category defineresource pop setglobal } ifelse ct_UseNativeCapability? { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } if } { /ct_Category 2 dict begin /CIDFont 10 dict def /ProcSet 2 dict def currentdict end def /defineresource { ct_Category 1 index 2 copy known { get dup dup maxlength exch length eq { dup length 10 add dict copy ct_Category 2 index 2 index put } if 3 index 3 index put pop exch pop } {pop pop/defineresource/undefined ct_raise} ifelse }bind def /findresource { ct_Category 1 index 2 copy known { get 2 index 2 copy known {get 3 1 roll pop pop} {pop pop/findresource/undefinedresource ct_raise} ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /resourcestatus { ct_Category 1 index 2 copy known { get 2 index known exch pop exch pop { 0 -1 true } { false } ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /ct_resourcestatus/resourcestatus load def } ifelse /ct_CIDInit 2 dict begin /ct_cidfont_stream_init { { dup(Binary)eq { pop null currentfile ct_Level2? { {cid_BYTE_COUNT()/SubFileDecode filter} stopped {pop pop pop} if } if /readstring load exit } if dup(Hex)eq { pop currentfile ct_Level2? { {null exch/ASCIIHexDecode filter/readstring} stopped {pop exch pop(>)exch/readhexstring} if } {(>)exch/readhexstring} ifelse load exit } if /StartData/typecheck ct_raise } loop cid_BYTE_COUNT ct_CID_STR_SIZE le { 2 copy cid_BYTE_COUNT string exch exec pop 1 array dup 3 -1 roll 0 exch put } { cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi dup array exch 2 sub 0 exch 1 exch { 2 copy 5 index ct_CID_STR_SIZE string 6 index exec pop put pop } for 2 index cid_BYTE_COUNT ct_CID_STR_SIZE mod string 3 index exec pop 1 index exch 1 index length 1 sub exch put } ifelse cid_CIDFONT exch/GlyphData exch put 2 index null eq { pop pop pop } { pop/readstring load 1 string exch { 3 copy exec pop dup length 0 eq { pop pop pop pop pop true exit } if 4 index eq { pop pop pop pop false exit } if } loop pop } ifelse }bind def /StartData { mark { currentdict dup/FDArray get 0 get/FontMatrix get 0 get 0.001 eq { dup/CDevProc known not { /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known {get} { pop pop {pop pop pop pop pop 0 -1000 7 index 2 div 880} } ifelse def } if } { /CDevProc { pop pop pop pop pop 0 1 cid_temp/cid_CIDFONT get /FDArray get 0 get /FontMatrix get 0 get div 7 index 2 div 1 index 0.88 mul }def } ifelse /cid_temp 15 dict def cid_temp begin /cid_CIDFONT exch def 3 copy pop dup/cid_BYTE_COUNT exch def 0 gt { ct_cidfont_stream_init FDArray { /Private get dup/SubrMapOffset known { begin /Subrs SubrCount array def Subrs SubrMapOffset SubrCount SDBytes ct_Level2? { currentdict dup/SubrMapOffset undef dup/SubrCount undef /SDBytes undef } if end /cid_SD_BYTES exch def /cid_SUBR_COUNT exch def /cid_SUBR_MAP_OFFSET exch def /cid_SUBRS exch def cid_SUBR_COUNT 0 gt { GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi 0 1 cid_SUBR_COUNT 1 sub { exch 1 index 1 add cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add GlyphData exch cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi cid_SUBRS 4 2 roll GlyphData exch 4 index 1 index sub ct_GetInterval dup length string copy put } for pop } if } {pop} ifelse } forall } if cleartomark pop pop end CIDFontName currentdict/CIDFont defineresource pop end end } stopped {cleartomark/StartData ct_reraise} if }bind def currentdict end def /ct_saveCIDInit { /CIDInit/ProcSet ct_resourcestatus {true} {/CIDInitC/ProcSet ct_resourcestatus} ifelse { pop pop /CIDInit/ProcSet findresource ct_UseNativeCapability? {pop null} {/CIDInit ct_CIDInit/ProcSet defineresource pop} ifelse } {/CIDInit ct_CIDInit/ProcSet defineresource pop null} ifelse ct_Vars exch/ct_oldCIDInit exch put }bind def /ct_restoreCIDInit { ct_Vars/ct_oldCIDInit get dup null ne {/CIDInit exch/ProcSet defineresource pop} {pop} ifelse }bind def /ct_BuildCharSetUp { 1 index begin CIDFont begin Adobe_CoolType_Utility/ct_BuildCharDict get begin /ct_dfCharCode exch def /ct_dfDict exch def CIDFirstByte ct_dfCharCode add dup CIDCount ge {pop 0} if /cid exch def { GlyphDirectory cid 2 copy known {get} {pop pop nullstring} ifelse dup length FDBytes sub 0 gt { dup FDBytes 0 ne {0 FDBytes ct_cvnsi} {pop 0} ifelse /fdIndex exch def dup length FDBytes sub FDBytes exch getinterval /charstring exch def exit } { pop cid 0 eq {/charstring nullstring def exit} if /cid 0 def } ifelse } loop }def /ct_SetCacheDevice { 0 0 moveto dup stringwidth 3 -1 roll true charpath pathbbox 0 -1000 7 index 2 div 880 setcachedevice2 0 0 moveto }def /ct_CloneSetCacheProc { 1 eq { stringwidth pop -2 div -880 0 -1000 setcharwidth moveto } { usewidths? { currentfont/Widths get cid 2 copy known {get exch pop aload pop} {pop pop stringwidth} ifelse } {stringwidth} ifelse setcharwidth 0 0 moveto } ifelse }def /ct_Type3ShowCharString { ct_FDDict fdIndex 2 copy known {get} { currentglobal 3 1 roll 1 index gcheck setglobal ct_Type1FontTemplate dup maxlength dict copy begin FDArray fdIndex get dup/FontMatrix 2 copy known {get} {pop pop ct_defaultFontMtx} ifelse /FontMatrix exch dup length array copy def /Private get /Private exch def /Widths rootfont/Widths get def /CharStrings 1 dict dup/.notdef dup length string copy put def currentdict end /ct_Type1Font exch definefont dup 5 1 roll put setglobal } ifelse dup/CharStrings get 1 index/Encoding get ct_dfCharCode get charstring put rootfont/WMode 2 copy known {get} {pop pop 0} ifelse exch 1000 scalefont setfont ct_str1 0 ct_dfCharCode put ct_str1 exch ct_dfSetCacheProc ct_SyntheticBold { currentpoint ct_str1 show newpath moveto ct_str1 true charpath ct_StrokeWidth setlinewidth stroke } {ct_str1 show} ifelse }def /ct_Type4ShowCharString { ct_dfDict ct_dfCharCode charstring FDArray fdIndex get dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not {ct_1000Mtx matrix concatmatrix concat} {pop} ifelse /Private get Adobe_CoolType_Utility/ct_Level2? get not { ct_dfDict/Private 3 -1 roll {put} 1183615869 internaldict/superexec get exec } if 1183615869 internaldict Adobe_CoolType_Utility/ct_Level2? get {1 index} {3 index/Private get mark 6 1 roll} ifelse dup/RunInt known {/RunInt get} {pop/CCRun} ifelse get exec Adobe_CoolType_Utility/ct_Level2? get not {cleartomark} if }bind def /ct_BuildCharIncremental { { Adobe_CoolType_Utility/ct_MakeOCF get begin ct_BuildCharSetUp ct_ShowCharString } stopped {stop} if end end end end }bind def /BaseFontNameStr(BF00)def /ct_Type1FontTemplate 14 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /PaintType 0 def currentdict end def /BaseFontTemplate 11 dict begin /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /BuildChar/ct_BuildCharIncremental load def ct_Clone? { /FontType 3 def /ct_ShowCharString/ct_Type3ShowCharString load def /ct_dfSetCacheProc/ct_CloneSetCacheProc load def /ct_SyntheticBold false def /ct_StrokeWidth 1 def } { /FontType 4 def /Private 1 dict dup/lenIV 4 put def /CharStrings 1 dict dup/.notdefput def /PaintType 0 def /ct_ShowCharString/ct_Type4ShowCharString load def } ifelse /ct_str1 1 string def currentdict end def /BaseFontDictSize BaseFontTemplate length 5 add def /ct_matrixeq { true 0 1 5 { dup 4 index exch get exch 3 index exch get eq and dup not {exit} if } for exch pop exch pop }bind def /ct_makeocf { 15 dict begin exch/WMode exch def exch/FontName exch def /FontType 0 def /FMapType 2 def dup/FontMatrix known {dup/FontMatrix get/FontMatrix exch def} {/FontMatrix matrix def} ifelse /bfCount 1 index/CIDCount get 256 idiv 1 add dup 256 gt{pop 256}if def /Encoding 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for bfCount 1 255{2 copy bfCount put pop}for def /FDepVector bfCount dup 256 lt{1 add}if array def BaseFontTemplate BaseFontDictSize dict copy begin /CIDFont exch def CIDFont/FontBBox known {CIDFont/FontBBox get/FontBBox exch def} if CIDFont/CDevProc known {CIDFont/CDevProc get/CDevProc exch def} if currentdict end BaseFontNameStr 3(0)putinterval 0 1 bfCount dup 256 eq{1 sub}if { FDepVector exch 2 index BaseFontDictSize dict copy begin dup/CIDFirstByte exch 256 mul def FontType 3 eq {/ct_FDDict 2 dict def} if currentdict end 1 index 16 BaseFontNameStr 2 2 getinterval cvrs pop BaseFontNameStr exch definefont put } for ct_Clone? {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def} if FontName currentdict end definefont ct_Clone? { gsave dup 1000 scalefont setfont ct_BuildCharDict begin /usewidths? false def currentfont/Widths get begin exch/CIDFont get/GlyphDirectory get { pop dup charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore def } forall end /usewidths? true def end grestore } {exch pop} ifelse }bind def currentglobal true setglobal /ct_ComposeFont { ct_UseNativeCapability? { 2 index/CMap ct_resourcestatus {pop pop exch pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 3 index def /CMapVersion 1.000 def /CMapType 1 def exch/WMode exch def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search { dup length string copy exch pop exch pop } {pop(Identity)} ifelse } {pop (Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { 3 2 roll pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def setglobal /ct_MakeIdentity { ct_UseNativeCapability? { 1 index/CMap ct_resourcestatus {pop pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 2 index def /CMapVersion 1.000 def /CMapType 1 def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search {dup length string copy exch pop exch pop} {pop(Identity)} ifelse } {pop(Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { exch pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def currentdict readonly pop end end %%EndResource setglobal %%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0 %%Copyright: Copyright 1987-2004 Adobe Systems Incorporated. %%Version: 1.0 0 userdict/ct_T42Dict 15 dict put ct_T42Dict begin /Is2015? { version cvi 2015 ge }bind def /AllocGlyphStorage { Is2015? { pop } { {string}forall }ifelse }bind def /Type42DictBegin { 25 dict begin /FontName exch def /CharStrings 256 dict begin /.notdef 0 def currentdict end def /Encoding exch def /PaintType 0 def /FontType 42 def /FontMatrix[1 0 0 1 0 0]def 4 array astore cvx/FontBBox exch def /sfnts }bind def /Type42DictEnd { currentdict dup/FontName get exch definefont end ct_T42Dict exch dup/FontName get exch put }bind def /RD{string currentfile exch readstring pop}executeonly def /PrepFor2015 { Is2015? { /GlyphDirectory 16 dict def sfnts 0 get dup 2 index (glyx) putinterval 2 index (locx) putinterval pop pop } { pop pop }ifelse }bind def /AddT42Char { Is2015? { /GlyphDirectory get begin def end pop pop } { /sfnts get 4 index get 3 index 2 index putinterval pop pop pop pop }ifelse }bind def /T0AddT42Mtx2 { /CIDFont findresource/Metrics2 get begin def end }bind def end %%EndResource currentglobal true setglobal %%BeginFile: MMFauxFont.prc %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. %%All Rights Reserved. userdict /ct_EuroDict 10 dict put ct_EuroDict begin /ct_CopyFont { { 1 index /FID ne {def} {pop pop} ifelse} forall } def /ct_GetGlyphOutline { gsave initmatrix newpath exch findfont dup length 1 add dict begin ct_CopyFont /Encoding Encoding dup length array copy dup 4 -1 roll 0 exch put def currentdict end /ct_EuroFont exch definefont 1000 scalefont setfont 0 0 moveto [ <00> stringwidth <00> false charpath pathbbox [ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall grestore counttomark 8 add } def /ct_MakeGlyphProc { ] cvx /ct_PSBuildGlyph cvx ] cvx } def /ct_PSBuildGlyph { gsave 8 -1 roll pop 7 1 roll 6 -2 roll ct_FontMatrix transform 6 2 roll 4 -2 roll ct_FontMatrix transform 4 2 roll ct_FontMatrix transform currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse dup 9 1 roll { currentdict /StrokeWidth 2 copy known { get 2 div 0 ct_FontMatrix dtransform pop 5 1 roll 4 -1 roll 4 index sub 4 1 roll 3 -1 roll 4 index sub 3 1 roll exch 4 index add exch 4 index add 5 -1 roll pop } { pop pop } ifelse } if setcachedevice ct_FontMatrix concat ct_PSPathOps begin exec end { currentdict /StrokeWidth 2 copy known { get } { pop pop 0 } ifelse setlinewidth stroke } { fill } ifelse grestore } def /ct_PSPathOps 4 dict dup begin /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def end def /ct_matrix1000 [1000 0 0 1000 0 0] def /ct_AddGlyphProc { 2 index findfont dup length 4 add dict begin ct_CopyFont /CharStrings CharStrings dup length 1 add dict copy begin 3 1 roll def currentdict end def /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def /ct_PSBuildGlyph /ct_PSBuildGlyph load def /ct_PSPathOps /ct_PSPathOps load def currentdict end definefont pop } def systemdict /languagelevel known { /ct_AddGlyphToPrinterFont { 2 copy ct_GetGlyphOutline 3 add -1 roll restore ct_MakeGlyphProc ct_AddGlyphProc } def } { /ct_AddGlyphToPrinterFont { pop pop restore Adobe_CTFauxDict /$$$FONTNAME get /Euro Adobe_CTFauxDict /$$$SUBSTITUTEBASE get ct_EuroDict exch get ct_AddGlyphProc } def } ifelse /AdobeSansMM { 556 0 24 -19 541 703 { 541 628 m 510 669 442 703 354 703 c 201 703 117 607 101 444 c 50 444 l 25 372 l 97 372 l 97 301 l 49 301 l 24 229 l 103 229 l 124 67 209 -19 350 -19 c 435 -19 501 25 509 32 c 509 131 l 492 105 417 60 343 60 c 267 60 204 127 197 229 c 406 229 l 430 301 l 191 301 l 191 372 l 455 372 l 479 444 l 194 444 l 201 531 245 624 348 624 c 433 624 484 583 509 534 c cp 556 0 m } ct_PSBuildGlyph } def /AdobeSerifMM { 500 0 10 -12 484 692 { 347 298 m 171 298 l 170 310 170 322 170 335 c 170 362 l 362 362 l 374 403 l 172 403 l 184 580 244 642 308 642 c 380 642 434 574 457 457 c 481 462 l 474 691 l 449 691 l 433 670 429 657 410 657 c 394 657 360 692 299 692 c 204 692 94 604 73 403 c 22 403 l 10 362 l 70 362 l 69 352 69 341 69 330 c 69 319 69 308 70 298 c 22 298 l 10 257 l 73 257 l 97 57 216 -12 295 -12 c 364 -12 427 25 484 123 c 458 142 l 425 101 384 37 316 37 c 256 37 189 84 173 257 c 335 257 l cp 500 0 m } ct_PSBuildGlyph } def end %%EndFile setglobal Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end %%BeginResource: procset Adobe_AGM_Image 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Image 71 dict dup begin put /Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def /nd{ null def }bind def /AGMIMG_&image nd /AGMIMG_&colorimage nd /AGMIMG_&imagemask nd /AGMIMG_mbuf()def /AGMIMG_ybuf()def /AGMIMG_kbuf()def /AGMIMG_c 0 def /AGMIMG_m 0 def /AGMIMG_y 0 def /AGMIMG_k 0 def /AGMIMG_tmp nd /AGMIMG_imagestring0 nd /AGMIMG_imagestring1 nd /AGMIMG_imagestring2 nd /AGMIMG_imagestring3 nd /AGMIMG_imagestring4 nd /AGMIMG_imagestring5 nd /AGMIMG_cnt nd /AGMIMG_fsave nd /AGMIMG_colorAry nd /AGMIMG_override nd /AGMIMG_name nd /AGMIMG_maskSource nd /AGMIMG_flushfilters nd /invert_image_samples nd /knockout_image_samples nd /img nd /sepimg nd /devnimg nd /idximg nd /ds { Adobe_AGM_Core begin Adobe_AGM_Image begin /AGMIMG_&image systemdict/image get def /AGMIMG_&imagemask systemdict/imagemask get def /colorimage where{ pop /AGMIMG_&colorimage/colorimage ldf }if end end }def /ps { Adobe_AGM_Image begin /AGMIMG_ccimage_exists{/customcolorimage where { pop /Adobe_AGM_OnHost_Seps where { pop false }{ /Adobe_AGM_InRip_Seps where { pop false }{ true }ifelse }ifelse }{ false }ifelse }bdf level2{ /invert_image_samples { Adobe_AGM_Image/AGMIMG_tmp Decode length ddf /Decode[Decode 1 get Decode 0 get]def }def /knockout_image_samples { Operator/imagemask ne{ /Decode[1 1]def }if }def }{ /invert_image_samples { {1 exch sub}currenttransfer addprocs settransfer }def /knockout_image_samples { {pop 1}currenttransfer addprocs settransfer }def }ifelse /img/imageormask ldf /sepimg/sep_imageormask ldf /devnimg/devn_imageormask ldf /idximg/indexed_imageormask ldf /_ctype 7 def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall }def /pt { end }def /dt { }def /AGMIMG_flushfilters { dup type/arraytype ne {1 array astore}if dup 0 get currentfile ne {dup 0 get flushfile}if { dup type/filetype eq { dup status 1 index currentfile ne and {closefile} {pop} ifelse }{pop}ifelse }forall }def /AGMIMG_init_common { currentdict/T known{/ImageType/T ldf currentdict/T undef}if currentdict/W known{/Width/W ldf currentdict/W undef}if currentdict/H known{/Height/H ldf currentdict/H undef}if currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if currentdict/D known{/Decode/D ldf currentdict/D undef}if currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if currentdict/O known{ /Operator/O load 1 eq{ /imagemask }{ /O load 2 eq{ /image }{ /colorimage }ifelse }ifelse def currentdict/O undef }if currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if currentdict/I known{/Interpolate/I ldf currentdict/I undef}if currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if /DataSource load xcheck not{ DataSource type/arraytype eq{ DataSource 0 get type/filetype eq{ /_Filters DataSource def currentdict/MultipleDataSources known not{ /DataSource DataSource dup length 1 sub get def }if }if }if currentdict/MultipleDataSources known not{ /MultipleDataSources DataSource type/arraytype eq{ DataSource length 1 gt } {false}ifelse def }if }if /NComponents Decode length 2 div def currentdict/SkipImageProc known not{/SkipImageProc{false}def}if }bdf /imageormask_sys { begin AGMIMG_init_common save mark level2{ currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load AGMIMG_&imagemask }{ BitsPerComponent ImageMatrix/DataSource load AGMIMG_&image }ifelse }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if cleartomark restore end }def /overprint_plate { currentoverprint{ 0 get dup type/nametype eq{ dup/DeviceGray eq{ pop AGMCORE_black_plate not }{ /DeviceCMYK eq{ AGMCORE_is_cmyk_sep not }if }ifelse }{ false exch { AGMOHS_sepink eq or }forall not }ifelse }{ pop false }ifelse }def /process_mask { level3{ dup begin /ImageType 1 def end 4 dict begin /DataDict exch def /ImageType 3 def /InterleaveType 3 def /MaskDict 9 dict begin /ImageType 1 def /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def /ImageMatrix[Width 0 0 Height neg 0 Height]def /NComponents 1 def /BitsPerComponent 1 def /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def currentdict end def currentdict end }if }def /use_mask { dup/Mask known {dup/Mask get}{false}ifelse }def /imageormask { begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata } { save mark level2 AGMCORE_host_sep not and{ currentdict Operator/imagemask eq DeviceN_PS2 not and{ imagemask }{ AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{ [/Separation/Black/DeviceGray{}]setcolorspace /Decode[Decode 1 get Decode 0 get]def }if use_mask{ process_mask image }{ DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and { Names convert_to_process not{ 2 dict begin /imageDict xdf /names_index 0 def gsave imageDict write_image_file{ Names{ dup(None)ne{ [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace Operator imageDict read_image_file names_index 0 eq{true setoverprint}if /names_index names_index 1 add def }{ pop }ifelse }forall close_image_file }if grestore end }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load /Adobe_AGM_OnHost_Seps where{ pop imagemask }{ currentgray 1 ne{ currentdict imageormask_sys }{ currentoverprint not{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }ifelse }{ BitsPerComponent ImageMatrix MultipleDataSources{ 0 1 NComponents 1 sub{ DataSource exch get }for }{ /DataSource load }ifelse Operator/colorimage eq{ AGMCORE_host_sep{ MultipleDataSources level2 or NComponents 4 eq and{ AGMCORE_is_cmyk_sep{ MultipleDataSources{ /DataSource DataSource 0 get xcheck { [ DataSource 0 get/exec cvx DataSource 1 get/exec cvx DataSource 2 get/exec cvx DataSource 3 get/exec cvx /AGMCORE_get_ink_data cvx ]cvx }{ DataSource aload pop AGMCORE_get_ink_data }ifelse def }{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul /DataSource load filter_cmyk 0()/SubFileDecode filter def }ifelse /Decode[Decode 0 get Decode 1 get]def /MultipleDataSources false def /NComponents 1 def /Operator/image def invert_image_samples 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }{ MultipleDataSources NComponents AGMIMG_&colorimage }ifelse }{ true NComponents colorimage }ifelse }{ Operator/image eq{ AGMCORE_host_sep{ /DoImage true def currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse { AGMCORE_black_plate not Operator/imagemask ne and{ /DoImage false def currentdict ignoreimagedata }if }if 1 AGMCORE_&setgray DoImage {currentdict imageormask_sys}if }{ use_mask{ process_mask image }{ image }ifelse }ifelse }{ Operator/knockout eq{ pop pop pop pop pop currentcolorspace overprint_plate not{ knockout_unitsq }if }if }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /sep_imageormask { /sep_colorspace_dict AGMCORE_gget begin CSA map_csa begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_avoid_L2_sep_space{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def }if AGMIMG_ccimage_exists MappedCSA 0 get/DeviceCMYK eq and currentdict/Components known and Name()ne and Name(All)ne and Operator/image eq and AGMCORE_producing_seps not and level2 not and { Width Height BitsPerComponent ImageMatrix [ /DataSource load/exec cvx { 0 1 2 index length 1 sub{ 1 index exch 2 copy get 255 xor put }for }/exec cvx ]cvx bind MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Name findcmykcustomcolor customcolorimage }{ AGMCORE_producing_seps not{ level2{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{ [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if currentdict imageormask }{ currentdict Operator/imagemask eq{ imageormask }{ sep_imageormask_lev1 }ifelse }ifelse }{ AGMCORE_host_sep{ Operator/knockout eq{ currentdict/ImageMatrix get concat knockout_unitsq }{ currentgray 1 ne{ AGMCORE_is_cmyk_sep Name(All)ne and{ level2{ Name AGMCORE_IsSeparationAProcessColor { Operator/imagemask eq{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor }if }{ invert_image_samples }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ [/Separation Name[/DeviceGray] { sep_colorspace_proc AGMCORE_get_ink_data 1 exch sub }bind ]AGMCORE_&setcolorspace /sep_tint AGMCORE_gget AGMCORE_&setcolor }if }ifelse currentdict imageormask_sys }{ currentdict Operator/imagemask eq{ imageormask_sys }{ sep_image_lev1_sep }ifelse }ifelse }{ Operator/imagemask ne{ invert_image_samples }if currentdict imageormask_sys }ifelse }{ currentoverprint not Name(All)eq or Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ currentcolorspace 0 get/Separation ne{ [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if }if currentoverprint MappedCSA 0 get/DeviceCMYK eq and Name AGMCORE_IsSeparationAProcessColor not and //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse Name(All)ne and{ imageormask_l2_overprint }{ currentdict imageormask }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end }def /colorSpaceElemCnt { mark currentcolor counttomark dup 2 add 1 roll cleartomark }bdf /devn_sep_datasource { 1 dict begin /dataSource xdf [ 0 1 dataSource length 1 sub{ dup currentdict/dataSource get/exch cvx/get cvx/exec cvx /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx }for ]cvx bind end }bdf /devn_alt_datasource { 11 dict begin /convProc xdf /origcolorSpaceElemCnt xdf /origMultipleDataSources xdf /origBitsPerComponent xdf /origDecode xdf /origDataSource xdf /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def /DataSource origMultipleDataSources { [ BitsPerComponent 8 idiv origDecode length 2 idiv mul string 0 1 origDecode length 2 idiv 1 sub { dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch origDataSource exch get 0()/SubFileDecode filter BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx }for ]bind cvx }{origDataSource}ifelse 0()/SubFileDecode filter def [ origcolorSpaceElemCnt string 0 2 origDecode length 2 sub { dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx }for /convProc load/exec cvx origcolorSpaceElemCnt 1 sub -1 0 { /dup cvx 2/add cvx/index cvx 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx }for ]bind cvx 0()/SubFileDecode filter end }bdf /devn_imageormask { /devicen_colorspace_dict AGMCORE_gget begin CSA map_csa 2 dict begin dup /srcDataStrs[3 -1 roll begin AGMIMG_init_common currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi { dup 65535 gt{1 add 2 div cvi}{exit}ifelse }loop string }repeat end]def /dstDataStr srcDataStrs 0 get length string def begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_producing_seps not{ level3 not{ Operator/imagemask ne{ /DataSource[[ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def /MultipleDataSources true def /Decode colorSpaceElemCnt[exch{0 1}repeat]def }if }if currentdict imageormask }{ AGMCORE_host_sep{ Names convert_to_process{ CSA get_csa_by_name 0 get/DeviceCMYK eq{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource filter_cmyk 0()/SubFileDecode filter def /MultipleDataSources false def /Decode[1 0]def /DeviceGray setcolorspace currentdict imageormask_sys }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate{ /DataSource DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource /MultipleDataSources false def /Decode colorSpaceElemCnt[exch{0 1}repeat]def currentdict imageormask_sys }{ gsave knockout_unitsq grestore currentdict consumeimagedata }ifelse }ifelse } { /devicen_colorspace_dict AGMCORE_gget/names_index known{ Operator/imagemask ne{ MultipleDataSources{ /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def /MultipleDataSources false def }{ /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def }ifelse invert_image_samples }if currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ currentdict imageormask }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end end }def /imageormask_l2_overprint { currentdict currentcmykcolor add add add 0 eq{ currentdict consumeimagedata }{ level3{ currentcmykcolor /AGMIMG_k xdf /AGMIMG_y xdf /AGMIMG_m xdf /AGMIMG_c xdf Operator/imagemask eq{ [/DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ]/DeviceCMYK{}]setcolorspace AGMIMG_c 0 ne{AGMIMG_c}if AGMIMG_m 0 ne{AGMIMG_m}if AGMIMG_y 0 ne{AGMIMG_y}if AGMIMG_k 0 ne{AGMIMG_k}if setcolor }{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def [/Indexed [ /DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ] /DeviceCMYK{ AGMIMG_k 0 eq{0}if AGMIMG_y 0 eq{0 exch}if AGMIMG_m 0 eq{0 3 1 roll}if AGMIMG_c 0 eq{0 4 1 roll}if } ] 255 { 255 div mark exch dup dup dup AGMIMG_k 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_y 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_m 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_c 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop counttomark 1 roll }{ pop }ifelse counttomark 1 add -1 roll pop } ]setcolorspace }ifelse imageormask_sys }{ write_image_file{ currentcmykcolor 0 ne{ [/Separation/Black/DeviceGray{}]setcolorspace gsave /Black [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Yellow/DeviceGray{}]setcolorspace gsave /Yellow [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Magenta/DeviceGray{}]setcolorspace gsave /Magenta [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Cyan/DeviceGray{}]setcolorspace gsave /Cyan [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if close_image_file }{ imageormask }ifelse }ifelse }ifelse }def /indexed_imageormask { begin AGMIMG_init_common save mark currentdict AGMCORE_host_sep{ Operator/knockout eq{ /indexed_colorspace_dict AGMCORE_gget dup/CSA known{ /CSA get get_csa_by_name }{ /Names get }ifelse overprint_plate not{ knockout_unitsq }if }{ Indexed_DeviceN{ /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{ indexed_image_lev2_sep }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }{ AGMCORE_is_cmyk_sep{ Operator/imagemask eq{ imageormask_sys }{ level2{ indexed_image_lev2_sep }{ indexed_image_lev1_sep }ifelse }ifelse }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ level2{ Indexed_DeviceN{ /indexed_colorspace_dict AGMCORE_gget begin }{ /indexed_colorspace_dict AGMCORE_gget dup null ne { begin currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and AGMCORE_in_rip_sep and{ [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup] setcolorspace }if end } {pop}ifelse }ifelse imageormask Indexed_DeviceN{ end }if }{ Operator/imagemask eq{ imageormask }{ indexed_imageormask_lev1 }ifelse }ifelse }ifelse cleartomark restore currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /indexed_image_lev2_sep { /indexed_colorspace_dict AGMCORE_gget begin begin Indexed_DeviceN not{ currentcolorspace dup 1/DeviceGray put dup 3 currentcolorspace 2 get 1 add string 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub { dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put }for put setcolorspace }if currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse end end }def /OPIimage { dup type/dicttype ne{ 10 dict begin /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /ImageType 1 def /Decode[0 1 def] currentdict end }if dup begin /NComponents 1 cdndf /MultipleDataSources false cdndf /SkipImageProc{false}cdndf /Decode[ 0 currentcolorspace 0 get/Indexed eq{ 2 BitsPerComponent exp 1 sub }{ 1 }ifelse ]cdndf /Operator/image cdndf end /sep_colorspace_dict AGMCORE_gget null eq{ imageormask }{ gsave dup begin invert_image_samples end sep_imageormask grestore }ifelse }def /cachemask_level2 { 3 dict begin /LZWEncode filter/WriteFilter xdf /readBuffer 256 string def /ReadFilter currentfile 0(%EndMask)/SubFileDecode filter /ASCII85Decode filter /RunLengthDecode filter def { ReadFilter readBuffer readstring exch WriteFilter exch writestring not{exit}if }loop WriteFilter closefile end }def /spot_alias { /mapto_sep_imageormask { dup type/dicttype ne{ 12 dict begin /ImageType 1 def /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /MultipleDataSources false def }{ begin }ifelse /Decode[/customcolor_tint AGMCORE_gget 0]def /Operator/image def /SkipImageProc{false}def currentdict end sep_imageormask }bdf /customcolorimage { Adobe_AGM_Image/AGMIMG_colorAry xddf /customcolor_tint AGMCORE_gget << /Name AGMIMG_colorAry 4 get /CSA[/DeviceCMYK] /TintMethod/Subtractive /TintProc null /MappedCSA null /NComponents 4 /Components[AGMIMG_colorAry aload pop pop] >> setsepcolorspace mapto_sep_imageormask }ndf Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put /customcolorimage { Adobe_AGM_Image/AGMIMG_override false put current_spot_alias{dup 4 get map_alias}{false}ifelse { false set_spot_alias /customcolor_tint AGMCORE_gget exch setsepcolorspace pop mapto_sep_imageormask true set_spot_alias }{ //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec }ifelse }bdf }def /snap_to_device { 6 dict begin matrix currentmatrix dup 0 get 0 eq 1 index 3 get 0 eq and 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop { 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def 0 0 transform AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch itransform/AGMIMG_llY exch def/AGMIMG_llX exch def 1 1 transform AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch itransform/AGMIMG_urY exch def/AGMIMG_urX exch def [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat }{ }ifelse end }def level2 not{ /colorbuf { 0 1 2 index length 1 sub{ dup 2 index exch get 255 exch sub 2 index 3 1 roll put }for }def /tint_image_to_color { begin Width Height BitsPerComponent ImageMatrix /DataSource load end Adobe_AGM_Image begin /AGMIMG_mbuf 0 string def /AGMIMG_ybuf 0 string def /AGMIMG_kbuf 0 string def { colorbuf dup length AGMIMG_mbuf length ne { dup length dup dup /AGMIMG_mbuf exch string def /AGMIMG_ybuf exch string def /AGMIMG_kbuf exch string def }if dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop } addprocs {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage end }def /sep_imageormask_lev1 { begin MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ { 255 mul round cvi GrayLookup exch get }currenttransfer addprocs settransfer currentdict imageormask }{ /sep_colorspace_dict AGMCORE_gget/Components known{ MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{ {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer currentdict imageormask }{ currentcolortransfer {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }{ MappedCSA 0 get/DeviceGray eq{ {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer currentdict imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }ifelse }ifelse }ifelse end }def /sep_image_lev1_sep { begin /sep_colorspace_dict AGMCORE_gget/Components known{ Components aload pop Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf {AGMIMG_c mul 1 exch sub} {AGMIMG_m mul 1 exch sub} {AGMIMG_y mul 1 exch sub} {AGMIMG_k mul 1 exch sub} }{ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub} {255 mul round cvi ColorLookup exch get 1 get 1 exch sub} {255 mul round cvi ColorLookup exch get 2 get 1 exch sub} {255 mul round cvi ColorLookup exch get 3 get 1 exch sub} }ifelse AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end }def /indexed_imageormask_lev1 { /indexed_colorspace_dict AGMCORE_gget begin begin currentdict MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceGray eq{ {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }ifelse }ifelse }ifelse end end }def /indexed_image_lev1_sep { /indexed_colorspace_dict AGMCORE_gget begin begin {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end end }def }if end systemdict/setpacking known {setpacking}if %%EndResource currentdict Adobe_AGM_Utils eq {end} if %%EndProlog %%BeginSetup Adobe_AGM_Utils begin 2 2010 Adobe_AGM_Core/ds gx Adobe_CoolType_Core/ds get exec Adobe_AGM_Image/ds gx currentdict Adobe_AGM_Utils eq {end} if %%EndSetup %%Page: 6 1 %%EndPageComments %%BeginPageSetup %ADOBeginClientInjection: PageSetup Start "AI11EPS" %AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0 %ADOEndClientInjection: PageSetup Start "AI11EPS" Adobe_AGM_Utils begin Adobe_AGM_Core/ps gx Adobe_AGM_Utils/capture_cpd gx Adobe_CoolType_Core/ps get exec Adobe_AGM_Image/ps gx %ADOBeginClientInjection: PageSetup End "AI11EPS" /currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse { userdict /AI11_PDFMark5 /cleartomark load put userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put} { userdict /AI11_PDFMark5 /pdfmark load put userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse [/NamespacePush AI11_PDFMark5 [/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5 [{ai_metadata_stream_123} currentfile 0 (% &&end XMP packet marker&&) /SubFileDecode filter AI11_ReadMetadata_PDFMark5 application/postscript diagramas_01 Adobe Illustrator CS4 2011-06-17T09:35:05-03:00 2011-06-17T09:35:05-03:00 2011-06-17T09:35:05-03:00 256 72 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgASAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9KSaZpESQ8rXm0x4qFJr UIz92HZDirHLM+QIbGTVk04Wc0bTRmGVSswkiqJEIRpKbqRXpiqM0i3nXzFLHdRGB44hJFbogMIr IFDibkXZjuONKfqxVlmKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KsbuDrdvqVtPql/YDQubBIxBJDMhaBwvqTvO8ZHUbRr2xVW8q6Xo9voUljp8wud PaSZVdJTKOLn7PPk3Y+OKrtN0CfT9SluTctdQyoFEk7cp+RdTQkAAqANvuptXFUV+jbx/jGoSqG+ IKKUFd6Yqxn9POdUW2GrWv1GvKS8N/ECIviVWWPieR5qFI5ACta9iq35o1SaxsibHXYPXqi8p7yG 3CvIwWJaukwo5rvTbsDiqZ6JHcXVlAkmtia/EYN3HDLHMFkFBIoZRHVVY0B4D5Yql0evxtqf1U61 ai3KCVZxfRF2hbZXEVPFlB325DxxVkNvZzExzpqLzxBhsCCrUahFQcVXvp13JI7rfyorMxCClAKn YYqx6bXLaPW7ewGuW5tpreed7g3cayq0DqpVYaHkDyJ5ctqHbFXeYtah0rSri8g1y2mmgX1DDcXk dshTkFJ9SktDvt8O52xVXmKTxIU80rayIQk4ikglX1HVSFq4/wAoU2FQcVQflzXjqi3RutZs4DDc S28K21/HdFxAaM0nwQ+m3Q8d9jXFVaXW7VNXhsRrsBilhknMxuow4ELcXpFuTQkb18fDFU7tbZ5O E8OqNcxK614MrKdxUVUnFVaTT7qWR5FvpY1ZjRFpQUNMVY5NrcaarHZrrdq0MiPKJTexrII4iFkb 0uJJ4k9jT3GKr9f1iLTdMuLq31u3nuIE9QQT3cdshQMAxMtJONAf5d+mKowXNqYS36fi9VSqMonQ qJWUFU5dd+Q7dO2KpX5b12XU452vdWs7Zo5pIYktdQju+Xomj8jwh4Efy77YqiJdbs01eKxGvW5j eGSd5DdxCRViPFqQ9SOXetOvhuqp+ZNZTTtKnubXXIJJo1SomvIbZEEzGNJGlcSqq8/FfHrShVRW nyRJZxtdeZllkdghYyw0ElAGjUpwDUb2riqlo2rx34uPW1u2jeKZ4o0gu47glYwpLPtHwPxVC7/D xbvQKqV1rsUerWllDrdrJBOkks0z3saSJHDszJFxYyfFQdQOu+26rvMWtjTNOluLLWbW5uYjGXhu r6O0jCOxHNpeM3EDiT9nscVTGO5tTCrvr8avUI6rMjKJNgUDHiT8Rp0+jFUDomsxahDLJNrltFSa SKEQXkdwGWEhWZjSMKedfh32oepoFWTWdrPbyH1Ll7gMNg/ah/txVF4q7FXnOpeaddvL2fTP0TFP Z2lw0clyyShkpy9KSNZF9OUhVqTy4g/diqBi89eZdNZraw8txQQH1LiYv60Sc5aspSiyKeTghhUF etNxiqfeUvO+r65ffVbvT/qnpqGnJjmVQwYgoskgUMQwr03UhuhFVWQ/4c0ozSXlvCtnfXRRrq8t wI5peKhQsjqOTCij7sVYNceQNciuBHGtxcI1JHlGpXZgA9QuYhbyTLDQlVqPTpQ+NcVWeYdJ0vSp lEzanb/WDHVI5LhFk5MIpGP1C4SpRKEcl+HryG5CqaaL+j4NMjuRaao0rzNK16kLetIrkAq0ivI7 qaDfl74ql+n+S9Sv0WCUXNuLJYkQzXd+scsYAqjQmQwuKp9koQNqAYqzyLQNDtbz6/bafbw3pHpm 5jiRZOLMpYcgK0biK+NBiqyTQLB7qfUbZFs9WuAIpdThjj+sNGj1EZZ1eq7UoRirDb3yVrUTLHDJ PcSsp4lL27SNU9QBlMYeKDdJWJXiA1OleOKqGvaNZaalp9Ze+t2ERSCJGMMcjxlSFkewlgL9v7wG vXFWtJ0izu7Nb62bV3FxIk8UkkLSOOCCPeeSR7ongKchNX6RiqpDotu9+rzfpIXEYcm1ZZLkFC5A l9K7muY1LLsW4V3p2GKtWflTVr2tsRdWqx8jE8lzewoUBQ8WSN1hIcuwKceJAPwjbFWZWvlTy9aX FrfpptqmqW0SQR3qxJ6wToVEgVWoanFV7eXNM+uXOpWkSWOr3fFLjVII4vrDpGwojO6tyHFAu/8A DFWIX/kzWkWOCF5p5N3Vo7y7jXj6q8kdQ8UBBV2JTiFah2rTFUJr2k2GlfUUun1C3Z09K3SLlHFI 8YDATSadJByFFArKDXbvtiremaNZXtkLuA6u4mlWeKZ4jJJ8MYi2uXke7rwBUMJwR9GKomHy8GnW eaPVfheQ+lJHJdIeRC8gl5NdRryjXeidz3xVZL5cd/ThH6XEShz6i/WkFeYIRoo7lImRgW5Lw4nw xVq48sRAf6PHqwU/VkaOKN7SogYjk5s5bUS0R/8AdgavHFV0WhWEAjtfU1M3glNxH6kfOY1Lb+rJ I12SFJXkJq4q1D5Yia7+tTxaqWrIGhkSW7jIJ4BhHeTXUSlox8XFB79MVaby05dVrq5Xg45j60qA 12X0EuVhKsJG5DhxPh0oqvn8uRLHxgi1Uo0UNvJGsb2pKxuwLlrOW05MEk2LVbbY4qozeWpreyP1 KLUri8SQzRvPGwkLb9bpmluix2Wvre+Kpv5f8mutzDc3itNaJ6q/Vrye6uSTvGJOF2ZKc1UHtXqd 61VZPpOiaPo0As9JsoLC1JeQwW0axJzbjVuKgCppiqPxV2KpRqEfmNm/3GCwRAxH+kpKxIG37BXF UlTUvM8nFk1DQeD0IVlnD0K9CDKCDy8R7UxVNNCu9UlMcd9daZdT7mU2HNdgvUIzyEfF74qibyPX mST6kLJX5H0zOsjCganxBSu9PfFWPR6t5sntYmtrjTXlaNHaRtO1BVIbeoj58lDDoC334qn+nXlz POscyR04ksVgni3A7eqoH0VxVc36WSEzSGySNV5O7BwAAKkkk7Yqlj+ZbdJTF9d093U0IjWWQV22 qnIdxiqV33m+/tZ1T9IaUvqyBIEa3uA4qduXKRK02rxFfbFUwHmhI4BJdXlgrKvKWT0rhU6VLfEN hsepxVFWWtLfQQz2l9pc8U/H0WRieRf7IA5VqfDriqZhb/0CClubnnQUDBOPGvzriqU6lc+ZLW5V fU09IpATGv1a6ncBAORYxtSm/U0xVSs9T13mzXn1NoyPgMVper32JZgRSmKp0DeyW8LRJB6jhmk5 q6ildqAgMPeuKtenrA34Wlfk+KqdxJqkKepKtrQmnwrK7EnwCgk4qlBvfNRkkKvYcD/cp9Qviw3P 2m5b7U6LiqnB5mvYrh7W+aBrqtY4obDUFPEVFaFHr07bYqmZ1C9HWKIf9G91/wA0YqvhvbuWQRK1 oszfZikWWN2AFaqjhWI+QxVETrqr8jaLaqOI4+qrn4itd+JG1TiqRvqHmVHeJtQ0JZ4nCTRukylK gN0Mta8WBGKo+wvruRoUuLrS5p2YBxbFqkE/sKWY/ZxVHSDUgXZVtVhUtQvzBCgndu2KpTP5ntIJ TFJe6eXVQ7BPUcBTXclAwHTFVCTzppccayyX+npEx4q7CUKWFdgSvXY4qoXXm1zMUtdR0pAqFnjl huXeoPX4SlF+jFUNb+d5frSGTUtInsmL1mhinWlPsqSztv8AEOgP0YqmX+NdOST0/wBIWCy05cKT BuIFa041pTFW5PPFhGnqSalYogPEu3rAV8Kke2KqsHm2K4nWC3vLSWd6cY0Wck13H7Ow9zirfmTR 9WvEpaajeQK8jcorcRL6amJ0qjfumPxMG+KQ79sVSfyt5JubRfq+rT3l5bGOUMk8sxSpeP0gtbi4 f4UTuaBiSKVpirK7bS4YboTrLO8hd2o7yFAGLmnEnjQcqD5Yqk/mPy9q+oykwX7C3cTK1vJHEVj5 hQDGTC7V+FjyJqK7bYqlvlPyJcafbQW2pyGa2jtyjRJJKWEpZG/vAscjhKEKXYkYqzgsGZaA7Gpq COx8cVYi2h6dNYXRtdDvNHvNSEkl29v6UMjTyghnn+rzhZWrvux+eKpbYflbp31+51OSe4S4vnU3 okRvVkVWRmVpFlckN6a9WNCNqUxVfq35S6Pqc1o091M0NhO9xYwyCaRYi55ELyk8aGoANRiqLn/L iykt5IxfXCy3Szx6hKDP+/Sc1KsokG1K161rU4qu8ufltoej2KadMF1DTkge3W0uIS8dJCGkPFzI o5kbgAYqyGDSbSz01NP0pP0ZaxGkC2saKIxSp4IyMm5r+zirBtQ/LrXLvWrfUJL0uYJZnVg3pgq0 3qp6kccKpKTQBhICKbYqzfQtKi06zhD83vfQhiupS0rh2iSlRz9602xVME+0P9n12/aGKoDWvMeg 6PA76pfwWigKCJZUiP7w8EoXZKcjsDXFWIzHy5cQWsNndXd16RV0M2p+ujqUYj95JPOpYh+VSCae xriqQ+WB5XKNPLerqFvb3kpIW9tJmThG0KRKtuIG2ReVSSSPEb4qyee98hRXccLon1ySMvBafXYB JIvWqIbkcunXFWLecrLyZqOm3dyW+o23pxFma9toGEsXNwR6pnV+aNxBFR4VpirI/J/+FrSOK0hh iujOytazCS2ugqLbIF/fKR9pEqNuhxVPfMs+o2umPc284jt0aATIEZpTWWMHgyywUqGod/pxV5v5 am8z3+qyQyancrPdzwojB0lWFo4XFwBV6/ZVa8g9abFe6r1XS7DUrS3iivLpLv09vVMZEpq9RV+V Om32cVQmreUtHu7bUZobGFNTvFkLXKoqySShDGnqN+0Bts22KvLJvyl81w6pPrc+qXHrJbmNruWa IOIgtGjeUychEFXerU64qitS8nT+atFsjamzvtLu5457aW1kb0HcQ8JDxM7qZIuEgqR9oUPgFVbz H5a8wXKy2ri6trmWdm9e0guJpEtzarDxWdWkVlYsylSSduvHbFUl8o+UdR0H1bFxfM1+JPQtBayC JJ3lhHrcGRUP7qP42Zfntiqav+VnmVtdTXxFxv0szbqiyJ8J+rfVwqu0jSAUYn7dO1OO2Kpf5u8n 33mC0sI7ZNQSJLW0+vW5srgRy3aF/WeRGiCllWX4SFp2G2Ksw/LvS9V06CHSrmW9kt7dZ5Q91bug Kxx2sNunOWOihQJOKow+4Yqy54hdX97aQ3VzFdQxpLy5n0R6zSKlFBBNDEajb5+CqVweVb2RBFq+ s3s+oS8vUbTp7i0hEfRW9NppWQ08H3PTFVNPLV3cWLzaPrOoR3kUzwxvqE808Ja3mMcrNFFLETy4 NT4h8sVTnT7SUpC73VzMyemXnD8YJWqORRCzvwJ6Vrt3PXFUBeTaq0uqSWoZ4rCRlbneNESfSWYh VW3loAJAB8WKom5hu7RBJcTzhCH/ALu4LGqRtJShiX+Q98VSy7s9SinnD+YzbBKkxPdQgx1+IV5W 9QOJHXtviqYJb3qBIGuZ5LkTC3djcUBpD63Ooh6kdguKqlxZ6lBbyTtNIUiVnel01aKKmn7jFU5t 0KQqhZn41HNzVjQ03OKqmKuxV2KuxVJPMulJqbWVvcaNa6xZpI00gu3UCGRF/duiNHJyY1I7UxVJ NQ8m39zdB7KKLSYT6RK2zA8Xidz6qrwReVJCPl3xVHJ5KiWISesf0kkokh1DgvqIix+kIlPPkEA3 oG64qhtF/Lqw01Vt2YT6esz3JsfRjSJpGBCllDFTwBHHauwxVTT8uzHqNrqEd6y3FlAba2lMK+ok Z2ADiQMKLyG23xHxxVfqX5c6ZdQC3hCwQelFHJG0EUitJDz4TFSQpceodyDiqe+X9HbSLWS39Rp1 ZwybBFRFjWNUReTUUBNsVTJYgFFa1oK0JHQUxVsRIOlRXc7n+uKu9Nffbfqe304qgV0OzVpGWa7H qyPKw+t3JAZ2LHiDIeK1OyrsOgAGKomCyihDBXlcOan1JZJPu5MaYq6SxtJIhFJErxL0jbdRT2O2 KqX6F0j/AJY4f+AGKtfoTSP+WOH/AIBcVb/Qukf8scP/AAAxV36F0j/ljh/4AYq4aNpIZWFpEGU1 VggBBHcHscVQU2o21rq08TSxx3EsERT1GCgKJZviapGw8O+Kou2vdKSiJeQySyMOTeohZ3Ow6H6A BiqXjVNNFtcaeLuFLp57hJU9RQ0avO/Jm3+E8TVa9cVTSO+sJiIre4ikYUIjjdWIUMBWgPQVGKpc LbSmuNRW8l9IzzfGn1iSIOpiRK8VdRvxp0xVU1a6t7q3CWkqXEgEp4xsGP8AvPIP2a92A+nFVK7u UZb+GG4s2W85cWe44laxLGaqEboU8cVWaldIkFxcxSqqGeQxzBgByFkVHFtqnmKd98VUb7UtEaIR 2GpJcSSrKjxLdGeqmB6fAXk/b49v14qmmqCyS0lu7xWaG0jmmYIWB4p8TUoVqaDFUilsrKyM2oT6 VqgiiWSaUvdxtGqgMzH0xdHYDoKYqnGow6dY2bvJFI8CMjmNHYuWNVFCWHj44ql95Bbtay+to2oR RKvN5EuYUYBfiNGW6r2xVKx5W0+7vIkhudY4xWsFyBHelSxuPVUGXm9CQI+g+Gu/hiqpb+XdPiup bKZ9Vll4QtEJLxhKTJ61aGOVYqUgJ3/pirX+FdOtJRDFb65K8wLIp1JpOCRsK7zXXcyd6n6AKKpn Z2drFIbc6VqCtIGlUzXKSdOIIB+svT7Q2xVMrBbcLdrFDJAyUSRJG5GvDkCCHkHR/HFUuE+kM0gj 0+9lWOSSIuglZS0TsjUPPf4kxVLJ9B0y9vLc2k+qRrdJPI0MN0ytG1vKkbgiVyB8UhDD22pirdp5 SsYtUjspJ9W4zwTzgz3rGhjki+yY5K/7upQ7YqncNpZSQRyx6dclHUMoMq1oelazYqrXMthFo6zS K7WYowVS3MqSePcN37nFUAZ9IUxiTT72JZJI4g8gkVQ0rhFqS/TkwGKoG70DTEuHtIo9WunDAj0L 3jxEfCRlBkniND6gB5VO+22KonS9K0dIJL1Ev5atGgt57l5CPWEbLxHqlP2xuT44qmH1SyV0DWU8 LSEhHaSoDBWffjK3ZPDFU4xV2KuxV2KuxVCW91M2oXNq0XGKGOOWOWteRleVWFKbcfTH34qteJYf qYlJu7oSFIriUIrDkCzn4FUD4FPQb7fPFVFry4udPlbk1pcNPLBbmILI59GVkUgOOPxrHXfYA9dq 4qrW9vIsjzywxxySemHdTykfiQAXYKg6dgPpxVvUtH0vU7Y22oWyXVuWDmKUcl5DoaHFXaXo2l6V ZrZabbJZ2iFmSCEcEBclmIUbbk1OKoTUPKPlnUr5b+/02C5vURY1uZEDSBFJZVDHegLEjFU19NfE /wDBH+uKpTpHk/yxo83raVpsFjKIjAHgXgREX9QoOP7PM8qeO+KqnmQcdA1MD/liuf8Ak2fniq/z L/yjmq/8wdx/yabFVDzTU6TOB1rFTv8A7sxVH6mK6bditP3Mm46/YOKpZoJ/05h/2rNP/wCJXGKu l/5Swbf7qtd/9jfYqmch/wByduP+KZv+JxYq6T/jp2+3+6Zt/wDZxYqo23+9Op/8ZF/5MJiqF0W9 ihtJo5I5wwvL3pBMRQ3cpBBVKEEb4qhNG5HU7RmBUsursoZSrcWv4ivwtQjanbFUynp/iOx8fqd3 /wAnbbFUv0TS5E0awSTTbGSRbaEPIXqWYRirE+ieuKqdxFLH5HtoSGllSCBCEDOzMOI2FOTGvtXF UbrN7HNawxxJPzN5ZdYJgKC7iJJJSgFO+KqsFP07L8pa/wDAWuKpb6Lz6B6Uao7fWNOLJIeKMF+q swJAbqop0xVXudOdb7TZVsrW2EU8jPJCxLkG1mWlBEndh3xVP8VdirsVdirsVSifUobLUZjJFPIZ IoxGIYZJASsktQWVSin4h9ojFW4NVtGvImnEq3EwMcCCCfgi7FuUhQLVqAkmg2oOhJVUdOvIop7p rlJVZJpkgpDKw9NpDIWUqpHxFvwGKo6LVrK5na2i9USpxZucM0a0LClHdFUn2BxVHYq7FXYq7FXY qhL+zubloxHc+jCA6zx+mknqBgKAl6gDx23xVJbHyDoluUkmhjuLlXEjSemEUt4CNTTjXoDX5nFU 51GwlvIPSEyxqzL6lYlkDIK1Xi9V3r1IOKpXY+S9Jgnlmngtrln2RGtYkRFHSiKKcvFv1Yqi73y9 aXcvOQqF9NIhEIoWQLEWK0EiPT7Z6YqvtNCtLZZFokqSKiNG8UYSkZYr8KKg/bOKtzeX9HnXjNYW ki7ijQIevzxVqDy7otuKQafaRD/It0X9WKouGzhhR0iRIkf9mNAgr0rQYqlK+WZHntp7q6Sd4uTT gW8SLLI1KkgVHH7Wxqd/teKqNvtGgvBGHIRYlZFRY42Xi/Go4uHH7A6Yqp6foFtY3KzwFQyxvEqr FDGoV2Vj/dIh6oO+Kqx0XTDKJjZ2xlUUV/RWo74qq3dpLNa+jFKsTFgS5QOOPL4gFY03WoFengcV QVnoEdvdyXDOkoPH0ozDGoQqqjkCN+XJSfhoN+m1cVV9Q0LStSp+kLK2u6Go9eFZNwCP2q9jiqst hbLbm3WGFbc7mERgIaf5PTtiqnBo+n25LW9tBC5qeccSq1WFCajxxVG4q7FXYq7FXYq//9k= proof:pdf uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:F87F1174072068118DBB92CA1052A9F9 xmp.iid:F87F1174072068118DBB92CA1052A9F9 converted from application/pdf to <unknown> saved xmp.iid:D47F11740720681191099C3B601C4548 2008-04-17T14:19:21+05:30 Adobe Illustrator CS4 / converted from application/pdf to <unknown> converted from application/pdf to <unknown> saved xmp.iid:FD7F11740720681197C1BF14D1759E83 2008-05-16T17:01:20-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F117407206811BC18AC99CBA78E83 2008-05-19T18:10:15-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:FB7F117407206811B628E3BF27C8C41B 2008-05-22T14:26:44-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:08C3BD25102DDD1181B594070CEB88D9 2008-05-28T16:51:46-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F77F11740720681192B0DFFC927805D7 2008-05-30T21:26:38-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F87F11740720681192B0DFFC927805D7 2008-05-30T21:27-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F97F1174072068119098B097FDA39BEF 2008-06-02T13:26:10-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F1174072068118DBB9A084B3843B2 2011-06-09T11:06:05-03:00 Adobe Illustrator CS4 / saved xmp.iid:F87F1174072068118DBB9A084B3843B2 2011-06-09T15:15:58-03:00 Adobe Illustrator CS4 / saved xmp.iid:7FF2245A3B2068118DBB9A084B3843B2 2011-06-09T17:21:50-03:00 Adobe Illustrator CS4 / saved xmp.iid:F87F1174072068118DBB92CA1052A9F9 2011-06-17T09:35:05-03:00 Adobe Illustrator CS4 / uuid:5a29c771-4184-7441-8b83-5454d69a07e4 xmp.did:7FF2245A3B2068118DBB9A084B3843B2 uuid:65E6390686CF11DBA6E2D887CEACB407 proof:pdf Web 1 False False 731.130859 430.000000 Pixels ArialMT Arial Regular Open Type Version 5.01.2x False Arial.ttf Cyan Magenta Yellow Black Default Swatch Group 0 White RGB PROCESS 255 255 255 Black RGB PROCESS 0 0 0 RGB Red RGB PROCESS 255 0 0 RGB Yellow RGB PROCESS 255 255 0 RGB Green RGB PROCESS 0 255 0 RGB Cyan RGB PROCESS 0 255 255 RGB Blue RGB PROCESS 0 0 255 RGB Magenta RGB PROCESS 255 0 255 R=193 G=39 B=45 RGB PROCESS 193 39 45 R=237 G=28 B=36 RGB PROCESS 237 28 36 R=241 G=90 B=36 RGB PROCESS 241 90 36 R=247 G=147 B=30 RGB PROCESS 247 147 30 R=251 G=176 B=59 RGB PROCESS 251 176 59 R=252 G=238 B=33 RGB PROCESS 252 238 33 R=217 G=224 B=33 RGB PROCESS 217 224 33 R=140 G=198 B=63 RGB PROCESS 140 198 63 R=57 G=181 B=74 RGB PROCESS 57 181 74 R=0 G=146 B=69 RGB PROCESS 0 146 69 R=0 G=104 B=55 RGB PROCESS 0 104 55 R=34 G=181 B=115 RGB PROCESS 34 181 115 R=0 G=169 B=157 RGB PROCESS 0 169 157 R=41 G=171 B=226 RGB PROCESS 41 171 226 R=0 G=113 B=188 RGB PROCESS 0 113 188 R=46 G=49 B=146 RGB PROCESS 46 49 146 R=27 G=20 B=100 RGB PROCESS 27 20 100 R=102 G=45 B=145 RGB PROCESS 102 45 145 R=147 G=39 B=143 RGB PROCESS 147 39 143 R=158 G=0 B=93 RGB PROCESS 158 0 93 R=212 G=20 B=90 RGB PROCESS 212 20 90 R=237 G=30 B=121 RGB PROCESS 237 30 121 R=199 G=178 B=153 RGB PROCESS 199 178 153 R=153 G=134 B=117 RGB PROCESS 153 134 117 R=115 G=99 B=87 RGB PROCESS 115 99 87 R=83 G=71 B=65 RGB PROCESS 83 71 65 R=198 G=156 B=109 RGB PROCESS 198 156 109 R=166 G=124 B=82 RGB PROCESS 166 124 82 R=140 G=98 B=57 RGB PROCESS 140 98 57 R=117 G=76 B=36 RGB PROCESS 117 76 36 R=96 G=56 B=19 RGB PROCESS 96 56 19 R=66 G=33 B=11 RGB PROCESS 66 33 11 Grays 1 R=0 G=0 B=0 RGB PROCESS 0 0 0 R=26 G=26 B=26 RGB PROCESS 26 26 26 R=51 G=51 B=51 RGB PROCESS 51 51 51 R=77 G=77 B=77 RGB PROCESS 77 77 77 R=102 G=102 B=102 RGB PROCESS 102 102 102 R=128 G=128 B=128 RGB PROCESS 128 128 128 R=153 G=153 B=153 RGB PROCESS 153 153 153 R=179 G=179 B=179 RGB PROCESS 179 179 179 R=204 G=204 B=204 RGB PROCESS 204 204 204 R=230 G=230 B=230 RGB PROCESS 230 230 230 R=242 G=242 B=242 RGB PROCESS 242 242 242 Web Color Group 1 R=63 G=169 B=245 RGB PROCESS 63 169 245 R=122 G=201 B=67 RGB PROCESS 122 201 67 R=255 G=147 B=30 RGB PROCESS 255 147 30 R=255 G=29 B=37 RGB PROCESS 255 29 37 R=255 G=123 B=172 RGB PROCESS 255 123 172 R=189 G=204 B=212 RGB PROCESS 189 204 212 Adobe PDF library 9.00 % &&end XMP packet marker&& [{ai_metadata_stream_123} <> /PUT AI11_PDFMark5 [/Document 1 dict begin /Metadata {ai_metadata_stream_123} def currentdict end /BDC AI11_PDFMark5 %ADOEndClientInjection: PageSetup End "AI11EPS" %%EndPageSetup 1 -1 scale 0 -260 translate pgsv [1 0 0 1 0 0 ]ct gsave np gsave 0 0 mo 0 260 li 446.836 260 li 446.836 0 li cp clp [1 0 0 1 0 0 ]ct 429.459 246.266 mo 16.9805 246.266 li 16.9805 45.6978 li 429.459 45.6978 li 429.459 246.266 li cp false sop /0 [/DeviceCMYK] /CSA add_res 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 1 lw 0 lc 0 lj 4 ml [] 0 dsh true sadj 429.459 246.266 mo 16.9805 246.266 li 16.9805 45.6978 li 429.459 45.6978 li 429.459 246.266 li cp .193668 .150057 .155337 3.0518e-05 cmyk @ 429.455 46.0337 mo 16.9805 46.0337 li 16.9805 16.8892 li 429.455 16.8892 li 429.455 46.0337 li cp f 429.455 46.0337 mo 16.9805 46.0337 li 16.9805 16.8892 li 429.455 16.8892 li 429.455 46.0337 li cp @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT Initial %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. 12 dict dup begin /FontType 1 def /FontName /ArialMT def /FontInfo 5 dict dup begin /ItalicAngle 0 def /FSType 8 def end def /PaintType 0 def /FontMatrix [0.001 0 0 0.001 0 0] def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 32 /space put dup 45 /hyphen put dup 48 /zero put dup 49 /one put dup 65 /A put dup 67 /C put dup 69 /E put dup 76 /L put dup 77 /M put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 88 /X put dup 89 /Y put dup 95 /underscore put def /FontBBox {-665 -325 2000 1006} def end systemdict begin dup /Private 7 dict dup begin /|- {def} def /| {put} def /BlueValues [0 0] def /password 5839 def /MinFeature {16 16} def /OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup /strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def /Subrs 5 array dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> | dup 1 <1C60D8A8C9C3D06D9E> | dup 2 <1C60D8A8C9C202D79A> | dup 3 <1C60D8A849> | dup 4 <1C60D8A8CC3674F41144B13B77> | def put dup /CharStrings 18 dict dup begin /.notdef <1C60D8A8C9B6E3FA5101D97F0BCF44F7161DEB1E2A84766DD477E7 C8A936AA182F5809A9> |- /space <1C60D8A8C9B854D00D> |- /hyphen <1C60D8A8C9B81F2C3A78A5675B101A923F2D2A8AB56C> |- /zero <1C60D8A8C9B7EF322B1082CBA0BF9C14E99A3DA73C31B9142A392BD3A BC1EA97FF39C814FAC04D646DD2C4A98FCAF9A9470BD1CDA748490BF1B6225A1 0425162B711F636C55967253E957B919DCC3F666292C622E3ED0D587E9E568E3 1D888BB4F8FA5748005C40596B5B6BF48502A62C5A69962DBA8DFCFAE3F282BC 60C6C207F4C9D9AD32681DD3B2E0F2C2045F707B1BB6597DD9D355BD3D00BE3A 5B546505C954A88> |- /one <1C60D8A8C9B7EF32247817CBAD74894E625B0BAD23872C089E8D91F92F E1B529DBABA181AB8B085B7A00FC86C529813E9B576642> |- /A <1C60D8A8C9B64EDFED26B9E21A4F64848088903AC9891CF791BDBC4AB29A CC8B3E8D13924A7DDE35F09AC5F4A8229C87124C732743268600EF8D4582208B D16D82> |- /C <1C60D8A8C9B6079F6D1C46AC2732DFBDC9143C94793529C1940296210AAD 6EE09C39CFC4DAB7C5F3BA33C9E10838E0BC6FC9318A4E57F309EE20438B434C 69AE73A499211EBA75E22A57C1581D93869428818DC700A28C027571D7047CDF A8B017AACDE96DE4B2579EFD2C826A30F6EBDDC52701A22CDD669ADC60B66F32 261A1F55EDEF9802FD4511E0EF130772EDFD708A4113A1EDB1E717E0FA7D3148 51DE59> |- /E <1C60D8A8C9B64EDFFB83C6241DB110BEE5AB2FAD9D94B39ED5E81E7411B6 6E9361DDE78FC667AB91EF9824> |- /L <1C60D8A8C9B7EF3224EC6E192BD0FEC2445DA87B99CF0E03A72A> |- /M <1C60D8A8C9B6B41CBB4B6664BFFC865F56E6FEAFA79E7B90883C1C68AFB3 79AC174B0F8DCC9294E2C26BD06BBA9FD3867F8768651EF4BA798B4F538FCE8F 80AF5A83421F8F> |- /P <1C60D8A8C9B64EDFF4950CC53012D47AE97D5586315BA2F5162B63CEC117 C5379A1B3DB174CB2C739C68916A1E99A346AFF71DBF25658867D9AEF1BF3C47 CE1BA73978E8D0D40E52B85A56E08A1369D85E15B0A0C517291916FF6E61D0EF BF59B4862165C7DEA15B42BE3811C2CAA25C54> |- /R <1C60D8A8C9B6079F62E89B521DCDBE3DC5497B8DD99916239C0DFA5ED4F6 32B33575F4260343AF5DB7D477D12055F49C5E99C0AC176EAD42723223937F2B A15ECAD7751CB6A136B700EE485E38E7CDB87D9465C90BB8E29B04FDDA42609F BC3833B9FB5105619F4CC434003085F449D9FD5022725306B331FB97B31D2952 57B180DE1FD5465D256CCA19301DA97326882845130A5257BF61307ABA64C3F0 B222> |- /S <1C60D8A8C9B64EDFE3D078722A65C31955939D63AA5C8A4945719B5E558E 3B73A676CC12D1E18D93A8DC67C074D6E352D426981DE76F8EC4CFE5DAE051BE 47753A7C234C4B8D7D9F50292A61882B5500CC701F878FE626CDC6D4C322BB39 1537921D673F5AEE3EC19E36E7EFEC0F06A0EA4EAAB6BBA94DDCD11A6A564B13 B510F8C915848233B82F046D854DCD4F1639F149305DC73D3C68DF8AEB47A96A 30E55CF8BAD07FA2825BCE0D675F1CC2EBE61B07B772130E23119250F1EBF8FE 12A2098D9F09F3F21BDC41666CA4A0BB70D5F0A750B44BB93A5FBFDD2BF8DE45 0B277265536F77D5BD6F44FB72FF2E708C60107653AE44BFFB26AFF8> |- /T <1C60D8A8C9B7D8BE16D2C1CA7ED2E06F707C0E9530AE37D06FF7501A595D 3927> |- /U <1C60D8A8C9B6079F6D3F1E4545C3E1CC9D8EF54571065F01BE5A50957BD2 D8AD04D30C23B37CA98B969ECB5CA0D9A7C563636CB33377BB3DEB53D45DD0F3 E333CD69EA3B53D63C91B303CFDF29F59C20776D4DC576C9C080B76AB60A2167 3EFC1F645BF33D33929C60> |- /X <1C60D8A8C9B64EDFF4DFD017B43F7EAB96365BACFBED2D71ADAE4E00FD12 B461A7F13C64E3A175013F8F17B0F966419CDFD1925B86CBC99EE22C73270B3D B758F48A1908F21BEE4A7E0F431996B89DD71E609DF64575A71FFC> |- /Y <1C60D8A8C9B64EDFFB70684E072B8DF628E28D14904BBCFEE7A51F476B6F 96EC861657AB39D7A0FFD2C8F278DA1F84C35526773AA865D18FF930CB> |- /underscore <1C60D8A8C9B7EF3224BB0E94C1F3EA8D5F87D58A9CCE> |- end put end dup /FontName get exch definefont pop end %ADOEndSubsetFont /HMQBUL+ArialMT /ArialMT findfont ct_VMDictPut /HMQBUL+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero /one 15{/.notdef}rp /A /.notdef /C /.notdef /E 6{/.notdef}rp /L /M 2{/.notdef}rp /P /.notdef /R /S /T /U 2{/.notdef}rp /X /Y 5{/.notdef}rp /underscore 160{/.notdef}rp] HMQBUL+ArialMT nf HMQBUL+ArialMT*1 [16 0 0 -16 0 0 ]msf 118.448 39 mo (EXAMPLE 01 - MY_STRUCT)sh 40.6719 160.366 mo 33.9082 163.25 li 40.6719 166.133 li 40.6719 160.366 li cp .75021 .679683 .670222 .90164 cmyk f 248.694 216.828 mo 86.7412 216.828 li 86.7412 128.132 li 248.694 128.132 li 248.694 216.828 li cp .123415 .0936904 .09897 3.0518e-05 cmyk f .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUL+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /colon <1C60D8A8C9B854D0F461D1A979903F917C33CF6EDB0A437B4DDC7150 150B60E1> |- /a <1C60D8A8C9B7EF32244AC11AA6BAAA29EE8C78E0E7206F4A2776A2D1EA7D C8D9A28C62ADE3B609CF5E2EE23C64D0B75055BD249ADFEC7B4224D040D883CA 6747571955349CF8AD17E94E6FE5D0259F4D55623D4DC5C3CB4AC64A7A87DBBA 48B7420D7990F3C261DB9838C5B90BF72B82C8238A1A58FE8E6137AAFE2405FD 710F7ADB95B4F576668A6DB104942C88ED8D01E4E58188F5E32A24B5B964D5CE C10C08F76C0F472E84A0FB6EB5E37AAEE233DE54C212B0A012D3E20F864B2D53 463E221F81B784B6F7BE81FBFCAE6785C2430454DD81C436E0A516BF8C8307B2 879FF86378629C5EA7E586D83C83550D2E732930F7FE3BAD07B86C81E024D177 B5D88A> |- /d <1C60D8A8C9B7EF322407C6655A1B3652DB8522EB511BE6B0855A72D96214 58876CAD1FA22A00635F436A34E23EAFC09C394044ECC1389CD99E4AF1C1F6DD 52305C78619784840FC37A805B0805EF290BC9E049CF068290816CB7E74DB612 941355BCE71CBDD11DD0F9CA29531036ED13EFB9CAB613E9F630FBBC9408EF13 CE4683D92968530F64760C3DF85C7C7EA06EBA8BF859> |- /e <1C60D8A8C9B7EF322472FA01213C7AD90A23B536C2309DD40D370E2449B0 D0FEF85A6BE8067F30686F143E75903EB6FA56935472EF47CE3F33433C2F0C8B 6FA51573AE54B2C516F6F024F8775AD6639544E339FC2A328548BCBFD58B0EEA 03B7DC3AB069F44477958BFBFAAC7196D411DF9BE0B78A86C4BC33EC5D7C3729 5284C077711C162623860AACA404F650F8D516970257> |- /f <1C60D8A8C9B854D0F47057B2F13303E258FCAEE9E8BBA6E28AE872907C56 63BFD2A0F535ED0EB011F2C2A875E053FAF73E8AA16B1F99510A6812F90D61CF 3F1DA5EF558899A9AE12AAF6AF4568E0F6003B0A2FF6F33293> |- /h <1C60D8A8C9B7EF322B3BE19FB964E037672C8A279BC86F7B9BF0C8203E13 1450D56E388301CEAE43162551FBE05CABF94DC3B5DDFBB4DA55D11470EBD41A C970CEE2D2EFA88D51157B4EF5536CB673423CDDB06FA774D27105AD2B1AC2DF A8> |- /i <1C60D8A8C9B88C087228DFC7C7ABCC71B868F57EDB285655227000619B17 1C8A80AB> |- /l <1C60D8A8C9B88C08722AD20D19A90F9064193C8D82> |- /m <1C60D8A8C9B6B41CBB5F87BE20C872DF59FABCB36542419CBFA3D5519AD5 BA8076F32ECFD724B055F72CAC37BC47239ACC8B0FB48B8ACFF099B97085BD99 C333951D0338D27FF6AB9B3F3C69320476BA0CD4F9573B79AD358A91B0176AFB 9AEF169308783E9C6287F18E6E658AF5AA6C9688B500806DA169A1B21069D55C 54A2FF607A6A38976171B08665C3ACCAA84DFB970D01180645CE5CBC48DFE37B> |- /n <1C60D8A8C9B7EF322B3BE19FB964E04D2DB06D4930CA5D8F41D2EF3A285C 0BD536CD2C57668EB9E30311BF9A2872DFB44F2BF2A4683B5D66FA01BB1CCDAD E9C8A9EE2CB010715D3D6DFF0E843CF77C87A07D1DBD0482675E3CA1DAA2A520 3A8015DD09B7CE> |- /o <1C60D8A8C9B7EF32334FFE7884F6C3B903D000D9FD76C2EAE8EDCCA90A98 7875625CA0393015EF6761BE1C3B6D9E9DA4BABE1DD313B783BCBF8F620C846C 7F6361946173FB7A4A6BF94EAA0CB4947DD1974AF371F3C211E584576DE9AD79 F9DA988E9E531810E3876F3029BB1D2ED366525F30E48DD7CE3C9B66C5CC099F 518C54BB58C51D6FB6D0C8> |- /p <1C60D8A8C9B7EF322B3B0CFC8FED720BC90E20B208D27DC4B8F11F10B964 70F8B4F5FABEC7F7010781F5077B417FE44279776F2304ACD6E0EA12F436330D C4B79C907B9D28468D10FF9256A7D2CA504E4498D719ACD86FCA89B33C61F556 CF1168C3F262A781155D5EBF0C47D71C584AB93037B47B18D39FE408A49672C1 E63F9E8368D19E113FC95C59A9FA4650E46F6399F2FF256844E27568BA34B9> |- /r <1C60D8A8C9B81F2C3A9694980E415F1DEF5C498473095A24D1BE11285789 4FEA85DB28AD762FB8D2F4CAC5BF8B9C18D8A2DFCF155E0751AF58898A6619AD D420F549AB7C795751D32E8EE6> |- /s <1C60D8A8C9B7A73DA057E90C9BFBE0FE301E99CB771FA2F05368A6342B5F 80456D91458EA2F3CAD55CDF89BFF34EEB39D7DD325B057E2BF0E9B878C214E2 BD1BD70DCABE10E0DC8EBCF7B100B55EBE94FB0F17084E21EBD279B324AEABD9 6538911D053BE9D7ECBF43F934B1033C9E405BBE31E7EDB643609C8D779046E1 B250C3CF05E6FA4787649137D90F47F85972A6603BA900DD7CB710E02662DB32 87CB26D7B7AE794611498865FC85A28083D2F6C2DEC302D47619A4A577C5B843 5558FCFE71A1BB6783AFD5F58B6D2C03593B3F2297A66A7E6D13C1E321C57F41 72D53C8FCAF4D28F2B78D3A4BF03> |- /t <1C60D8A8C9B854D0F45CF665C7276F8075B54A4ECD6470F395A458CA2D06 5152075036EEECA213894C1EA0DACFBD370590F4B831924E5BDA5281442349CF AD2545E0750C3004A129C25B1EAA8DEF5DA8BF1998E80AE266F591E64CB5127F 5C42C88FB43C> |- /v <1C60D8A8C9B7A73DB99D94C9412F55B03E92C174A4755E69F97C27D9162B 37724F74F272B140D258652D102C2EAC46833C73F9> |- /x <1C60D8A8C9B7A73DB920A1A3B81DE7234ACAA5546B4C65820CF3C50E1629 C5A6423BAA34A2ECA8C7FE4B71726AC6704CC23AF1725AFB30D2892FC1BDDAFE AD7BE7BD65F1051699CCF4B0> |- /y <1C60D8A8C9B7A73DB92EFAEC912AA9CB61EA2C87B96577B4D13A11140AAA 18C6E226D96ACA3DE3B427B0A298EF106E8BC0FCA1DC8D81AF2F08A42A0F5836 B6230FDF576E37CE129EFF9730F23EC10CF5ACA4D4CA70309E71B89A944CA734 8AEBF55FF5ADA9F61B4BA14C9A2301A8C53EBFBE665E1DC22E> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUL+ArialMT /Encoding get dup 58 /colon put dup 97 /a put dup 100 /d put dup 101 /e put dup 102 /f put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 118 /v put dup 120 /x put dup 121 /y put pop %ADOEndSubsetFont /HMQBUL+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero /one 8{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E 6{/.notdef}rp /L /M 2{/.notdef}rp /P /.notdef /R /S /T /U 2{/.notdef}rp /X /Y 5{/.notdef}rp /underscore /.notdef /a 2{/.notdef}rp /d /e /f /.notdef /h /i 2{/.notdef}rp /l /m /n /o /p /.notdef /r /s /t /.notdef /v /.notdef /x /y 134{/.notdef}rp] HMQBUL+ArialMT nf HMQBUL+ArialMT*1 [16 0 0 -16 0 0 ]msf 42.8398 179.504 mo (prev)sh 174.228 100.171 mo (last: only valid in the first element)sh 275.884 137.895 mo (next)sh 309.732 140.206 mo 316.496 143.09 li 309.732 145.973 li 309.732 140.206 li cp .75021 .679683 .670222 .90164 cmyk f 244.941 171.348 mo 90.4941 171.348 li 90.4941 131.973 li 244.941 131.973 li 244.941 171.348 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f .25 lw 244.941 171.348 mo 90.4941 171.348 li 90.4941 131.973 li 244.941 131.973 li 244.941 171.348 li cp .75021 .679683 .670222 .90164 cmyk @ 141.977 131.973 mo 141.977 171.348 li @ 193.459 131.973 mo 193.459 171.348 li @ .69482 .6318 .621515 .583612 cmyk HMQBUL+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 136.617 157.699 mo (__inlist)sh 244.941 213.703 mo 90.4941 213.703 li 90.4941 174.328 li 244.941 174.328 li 244.941 213.703 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 244.941 213.703 mo 90.4941 213.703 li 90.4941 174.328 li 244.941 174.328 li 244.941 213.703 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUL+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /B <1C60D8A8C9B64EDFF43B9E1D43B76E7425A98F23F483468D5596DA760F15 54BAD296AA38A849FEE692D78BAC3B162E2013F61317550246D6F77AF27886D4 E04AB44C473130F6FA990DAC6640A48EC2A80691207E5DDBCA7196686E7CD5C9 80FB78081AA13952C8D8F3373FF54323A4853D0F014ED4C5A1024912E545AAB4 BA7F36D08386B7A08B38C3035C03383BB204897FB23E6B597B4E784900841F18 58E5E1740AFA815171FE44AAE751E7961222B185E93D26B02E1EB5C1FF9174E0 C619907BEEF9FED49CD2B96F29B7B01884> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUL+ArialMT /Encoding get dup 66 /B put pop %ADOEndSubsetFont /HMQBUL+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero /one 8{/.notdef}rp /colon 6{/.notdef}rp /A /B /C /.notdef /E 6{/.notdef}rp /L /M 2{/.notdef}rp /P /.notdef /R /S /T /U 2{/.notdef}rp /X /Y 5{/.notdef}rp /underscore /.notdef /a 2{/.notdef}rp /d /e /f /.notdef /h /i 2{/.notdef}rp /l /m /n /o /p /.notdef /r /s /t /.notdef /v /.notdef /x /y 134{/.notdef}rp] HMQBUL+ArialMT nf HMQBUL+ArialMT*1 [16 0 0 -16 0 0 ]msf 162.601 189.367 mo (A)sh 162.604 209.703 mo (B)sh 90.4941 194.016 mo 244.941 194.016 li .75021 .679683 .670222 .90164 cmyk @ .5 lw 99.002 163.252 mo 40.1445 163.252 li @ 171.601 81.7861 mo 168.718 75.0225 li 165.835 81.7861 li 171.601 81.7861 li cp f 168.716 140.116 mo 168.716 81.2588 li @ 235.812 143.092 mo 310.26 143.092 li @ %ADOBeginClientInjection: EndPageContent "AI11EPS" userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse %ADOEndClientInjection: EndPageContent "AI11EPS" grestore grestore pgrs %%PageTrailer %ADOBeginClientInjection: PageTrailer Start "AI11EPS" [/EMC AI11_PDFMark5 [/NamespacePop AI11_PDFMark5 %ADOEndClientInjection: PageTrailer Start "AI11EPS" [ [/CSA [/0 ]] ] del_res /HMQBUL+ArialMT*1 uf /HMQBUL+ArialMT uf /ArialMT uf Adobe_AGM_Image/pt gx Adobe_CoolType_Core/pt get exec Adobe_AGM_Core/pt gx currentdict Adobe_AGM_Utils eq {end} if %%Trailer Adobe_AGM_Image/dt get exec Adobe_CoolType_Core/dt get exec Adobe_AGM_Core/dt get exec %%EOF %AI9_PrintingDataEnd userdict /AI9_read_buffer 256 string put userdict begin /ai9_skip_data { mark { currentfile AI9_read_buffer { readline } stopped { } { not { exit } if (%AI9_PrivateDataEnd) eq { exit } if } ifelse } loop cleartomark } def end userdict /ai9_skip_data get exec %AI9_PrivateDataBegin %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 11.0 %%AI8_CreatorVersion: 14.0.0 %%For: (Marina Proni) () %%Title: (diagramas_01-06.eps) %%CreationDate: 6/17/11 9:35 AM %%Canvassize: 16383 %AI9_DataStream %Gb"-6CNCfDD(,/el9Fcr,,C#8ZLV.`>/s+&6QUPrDp)$l,[4TqNCrM+%@0 %BD[JYpFfk0s0."J[pP`WBflbXVm?rOF;E#dL7eG2s*a^TgUE5%X64Q(=kd7G4F_j)HiNNCD]YM-^3tA(nESuWgL$OXrcE42p?S1i %i&f1a"^V,!mlK6nSnTSm8]UX[47JP(+6eXl)WEjDjGn0FK(b:PGS/_J9.--,21iE?ko(HF?#t+4[jo)fH %[m)X3If&[rZZ5a%h7#';&+D)^Te+cWJ+^GJYAW7qiVk./^*9NG]>&f>EVkX',m^Y\h&uSaH:%Xq)uT]tbn%;P5`d$n]gr&e-V+!_ %hn?dOG4X2MS%"!OIJ95_\+dXepj43q()"Q/QHjQ)^86#('(Bielo!>"P\0e2rQf-h$)18O'9)6q@AJDEk2d+,msc4JLM,(<=9ecu %c-$o/"K$E%o,lJ7o@a*"oRA2&HN!9fmCeT&icga(mWcbAr7BiCB+O_i/g'M#,XCF>[KeOt#O-R-n,r^9I\u#Q %hVGmL>d&%k>.s^ic-;l!EL\\*04*MLJ`",RJD"oA_o3pXoZL=>DCuDXcelLL^%f3`042E&^%dRF)_V+tDqo;q)o?b!!q?JJjSN#f %s)rD2g[P)!K`&A)^SNlEMd(Z'f"HBFYJ+Q>0=f>#fB/p;\L7$e`<3Sti3j0!m=Vfp?rGj&e+_YiI;_/O]XP=&DLVB>p9f7/!DVJMq!e87LraP? %F!>pL5OV]0%S#6)=n=.us2p8cYH6-T\C#6)d;L!gmItP/`?2V/+$>uVn?60V8A0HKo"r)b"*&PVr!ge1k^I8io:.-1:MHEJ_o7]* %mshimoD\1.c22]=%j14Xs7t[M%D4Xtr]k5*r/^;qrtZB4?_73:r0!B];H&AJk7;5;r:929=cmQ4rhg,-?0JJ:J`eT76>$qsQ1gr]=;J04)D=Gk(bn %bl3rZnK$mL5X2`9hq[&eE-!pj<\@dcj'4SPD7[6&%57XK:snE`X4p]`^Vl4&5[e.#TA05bDU2c5Z10=Ug$cZRl0_=XYJ.X,^DB$d %be!7nQ+r#m^f=k=]@ZhIq7GOuH4RdegG]Z3?iTEjqhO.n],)!-\cqfcP5W;ODuTCD6%T!om,nH65CNG.jh':=S!U=.nNfQNpY=Z= %3?pMrbeRjE@6s_V%?PVMYJG-qi7ro^S^ %%/W#uDkH&Fs5n.tk5F$Vc[Po`nB0*1Iq@799MfR*TApm*V&/QLF3b9KIRtHZ^BF8dJ%DgKlc6a?^\lE:rUL/Y;R/Mn5!Sal,JU]@ %naAY3YXfG@I!aK,a[(B6Re$9TgM_QCbNJ:\fT7&FL0oHRP1&UE52(FrUT=(7$[[+N %_c8[LlSoA/JH(sFN[<79`AtB:Mu.`:YM_FZlSPK#TKu1!Vike`d[XLpV1#pK=7@3X2:)pj3/'BU1?8egPipim0(8CC^<24YSZdUk %:h!!BQW!,`M5l_")>Z@W%/B-HhG]J4BK>b_fu?U):+H% %'`&>i1L+9o+0MfM0OJos.ibbB+UT_r\DChB2Gmqoeqe^Y?6r]V"n??hSc;p2L(0(jFTD_sV8`\_HRr]=+2Qe#r,] %0(74@mK3%XR`=XhR_"+l\tVr.\$0@(lPt(dU+Tn&Z(%/mMOh`S6AP(s,_s9&4ib9D;ZDj]aFcs05Y`FTO;im5Jil?%+CFUUNB>3' %php-Z+e+!Zn20.T9`.5;+jZ6c\T_Z_hr,6@X7\8b6,KBmH1p!*3!.lP+6ZB^qq62j2peI#iL/ntiG%es0U=jb+;*7U?mUb)-*aYI %_Mk[TSd[:4IoDnRULuMb&ioY`1Q0Z3-ZFdf0FSd*MYg.ri?^i0hdS3q@b6(uM:c:H=_IoL5GcZ>RAd,t:S#pY,@ %IGJS&[ErAU%9*RoO(:Mnf%R:o)ospt.1+'QbX#'9X@'/O!PsqS`U$c-#6-X)T:kW9Vaq>s2Y])WhjL&kJ?D:W=\3*unE140!b(Tm %NrInQhj:'+01h@6KnDRfMa4J#Lg`1=7NC=k:l_28$gCdCZ4m-rPHJbuDc,Q_8`QPj4b-/:7Zp%"ZK=lSGmejQT$Z %6@Qau#N"iuK?-P&UP`L]g]\,s?cMMm3,`4.Y$`e5@75:k'LlaS@'D*h=b]]rYlQ]A29nf2hb+f#ckCqLL@MGi#:L)h3YjuA?K8[% %WOW0-ftf)^+BGn9!G!a6X@6Oa#]b.iH+X:5g]9u&a_c`s+[]$M%)E4\irJ]D'%W-b#fI-YW4B\VPCT,''Kk\-SC@*UH\@M_1bpO% %1>,(Q>`uD&jT"rGm-&-c1@C1]oo'6hYm*:a%?cT^h#5Okh6k>P"epoj2X\&6P+qm)R_DrI`''OSbn %ku^1WQD5:3"9HM#1JH^5A*e%R@C@>fkrcA8c;HZ@V0%#YMj>cn.:Af-L'Et";1pZ"@mPb_1fD=O%4n/4,JnC0C+Q!.iRNcI)+L9; %Iq?X,>.M\ujQi9O[qG.NcMlcm1t@B3^L:4g)obE;9VJ_%`12me80FhL:o<=b8E!IN&C6d(3SI>ZIJF!)+bef<6e6/ %(Er[GJc+7]\$u+gdoc]j)ao)o;2JR-HA1RJ+ks&2Z*MWs<\)n+@(FF+#V4k!b@%(kYgO/OAbkB*mtrqO/;Z/7Ylu,<"Hs60@9AJl %5gf$$@=pFVJd!,1E`h#2RQZ`IYTk)1P9DZ4fmtaV3X['9Q/%Jbr0bNR+0n;LpqL;Ed9pN%";EPrgcZ>NpGTk[a"D6'a'Bt*@qOkp>nUENe4L3:%MhUO6-Wg%;CH+^ %:^RG+31P#N?qR5&8eK*^hG12,UR)5DVp;;FAeiT>R8Z('1nf"`+kFa^e;bM2G4?(/iXOu/Z'RsE*r-62im$OTTTdE6SiD&UlCmO[ %r+9S;gq?!9^.*PZgWc)IqiPa,,M>B_O(N:*ft2X;4_:9tTmS9DoYpiY$Gmp8/gFH`fG2_r3/GSn5KbO"Puj*Krb%L1!s@(=.8VJ$@D'DR2CLj?20qm?u`cbJX?(T6alVcU!kH$6t/dZe.qKcshc1"J);++Qam+]On*A %K1*WR!$[E^S4SZ:K_OE:Jd4qHRn-^c9(sU%faik0JO(K]0h0XLB/Vfj!B5 %6_7Gt+[H/P#75]qYZSf^/Waf66B++$E.KQ:%o,fbB2^8>q/to9BW&;ZS5e9cAnS@-j-^@l55fZ$ebp %"++fimj'_O;eWV&V2=0a7$_I.0C`5_Zr\LRqgkKL*3YpTGc_[f`OKbs,FTSf1`+f\7$iW3SE5of8-a@ZLA>;R@iME`%MbK-Chl30]ZH0:`+RXn7GDnE.JgnnTB#[,=YW%=?S<6*bO^_W&Gp'Vt7c)+L6n.h?%QB8Fbd>Jg.:SG< %Q3$1mN3B,E5ahs9:a:t+gil/o_X#<[.uA.&niY<&Op7L'1ei(TkWU4c&"+D"2/l8lqIMW*E%^'2TNNt)QKKFR_51S*+iOKDTgWT2 %h+ZkL)\+FV11E4LK++-WM]g=qaZN0sX,RJdo0Y]eEkb=4mSOpTa8EX<:H-/tmNakJGIGI_2;mfp!#.@TAjDf$5PBE\_K+1m=?#bFpB"lQt#dFuRB*F4lg<$Z;K`'_m+XZ8\ %[Hc=LO=/b[piC_BDsDQ>gQQIPcE\!:'g#P@pK-oChD^`hoY;uWg=c8RSt8'GVm8ER*jGiYfq)j`a+m-&&0m_f=TPps#Q+.es(@hF %]Sf@/1RDd=>u+P3P`%,abUIh&NaHc4l"g=fQAs&sgL,QY8DI!lauCD6)/U0UKpFnZXSRY,F;L"VIig6SEjM+Lj[/Ia>lVV]h! %q,=&5;`^n-:'H=1A5+[!o1Z'ZP#lU^U`9pHSI %^uIaDOu&kaSj\44iL]]Ps!j";W5PXgpIEtjs^0h`RoS]"d:-k=)X9K_EI_@;gN`:H]9gSLBV;$,CkD[T!A0Z$7&1_t'kaRZ#t#L>#. %12+4[V1O>1'Cc4''s.p_9$)`)A3+R"3Y25!_lSk_r7^XW-B$rF0c5+"Z+7Ef0Ie[d8*D`UluWN&cmSqC`PP80!clqK&m77_\k %iB#Z@[tMk<)sE@%\=7]=Iap!;.E5*dm8@J89_PL6tB_\%.&%6&5iCDot2s.qkg8O#CI.3]ZSaLk),)_U)nTI,t_m>!@eLZp0?=X?Td\_mfrW@ghNI6YY6/& %)/,ImVO;+\M^AqE3oqVHK?Hp"Zo)(>nE+c@]!jkk),OSXReZ<'\aRolYQ_Ej>ft^8H1Y2#f6?+Yr;/eHR:ac]:Zl,nVmn)r8XKMb %O7!>B)>ga4><=C-X5u-BDZAI0T%tVegHK.0dVp;MOgGP=7hR(3Qm+PHkONTtJ*l5KGF?[q+"XRk;ba`jnfmD"8$[P:698JCEZ#fCckI=TLgLUMOchh13fbu_S[9'gi]J=p %NY1f?0U21QGfDQT9_laQ9XW4r@-M7@^2`/]=cMSN"MeRKI6B3WM0?#aA`ch.e%Z@o@Q-fqgB]O)>E*9pS`9coQ85='3RUZXOsp5h %_8u;^KMXrgJ/LA=9&A-43@P62IpHFf@k,rZ'obg2T?8tOQkq08no%"5n0I(dfj3O^S=,X>R$6" %A#iF2%42gF<08GT1_u!7?UH+RID`mZ/@sf<:HP';i3KKF,Pfou %B3aK-.aZ+8P',S/O0!qXF7+/V0V(2&R8]QD*9o(<$iRG%hd-!4BP7p*OILba;tcG@qgT0GAP"%bH9Oa#/or!XV';&Ee^XW@r92fDcL7k,83\kZ %D%ROY\cAQjcnTf0+?u"&hpJtZ4X,AIX2-ZMcR=S0q-6p"NqI]ACId[bhjpOYNk8!l7cJ`)BE4c&87HG.`[U`M$D7ceoMi@&N2Doi] %p3r-^T\0TnE!Zh'-"2q#d&RoJ2L,VpbQKC5Z`R*oOn8e%s(@OB=j,l.aan<2J?mnUmp#X&=RGCcSc-gi^8B^n*SoY?/cNTRnb6>g %m66$Wl!NfM]3Kb%mpWc]n+QVh+5?6k>,JN]bnKQgJ/kl"(Xlhl#./4fWPE:c3RCrjgIZ[#6(S&mD_KD/qPc$]fNL=bN'+u$%_1=q %o`s0,gY+3V62,N!9Uq041'%$F$tlcbH"i8Vq1%]jl@)X7T;p0erG5)R*U6k3&BQLmENsCMG7)F1&9VIkWREH("!-WaZrhBOOO!^* %6@t^P7j5^"QIdT8Eng4G4/=6YQoDqLJ0(Wg@S.LBn#e6`GaV.So7hITWI(HR4c8N=1+jl8%?u"Y\[IqkL:Lf]1D]ebZt,"f(j2." %'p'Jp402??[qFkgUC>Y\qU=po7@tX%oYcXY$Y'f>65$Z<%q!)c9.:c^0m1ar]AjuZb/)@_aDm8i`h?Pg"a0[j^ja%Drp'B]pTOS2 %7K>7LTMY]H"0ANAU_qfpkC&fHip[F6kdQ/4%eD3T:jLm.h-Ye'*<(Uk:uHQh=AX,t0RoD=<2?OP/#"d3k\+gq'4C\uAXSSDb-W^& %=PQh>qFlr6Ou0,KGCJm]:2.hBm72JNm>%9pma"d98b-\$<.9qY=l,;/[3%;@kl11L;iVPJg))Z=nI/%uB`$/X>[#FF@5raNTPos4 %s0OgNXc?2Xj'U!p#aYJ&0XaVkd:]J!Xr>j]JmWQ\f4K1')D&N^Ieii/!rR,2:9mnNY5aq@G!Lek5K^\*b]SmO>X5.C\a* %U@=COpQSnVq>WV>eii-G4_<%=F_B)aM8GH)4Ggq=-p3r<BkkkH+p[L"dCj]ueHiRm>NHq1sgZ^*JP-hu-1A]H)4BgX87RGoVlE %A6rD$+0pHD'u;-9f$NG/2TUXgG[%`*K!V7)S?6mEel"DAC$,hE/.7,S=3jt0fF=nHTLl/9Z6c\SDj$@iALFWN!4&ZE60@tceNqS( %B4l_7gB_%%P`0CWBVY:+NfX/WN^>j\IA5.FaX[gdo5jiU[".@UlYDU;RU'N %HR7FkO2s1Tr=_)M-&?Nnb`>2G5BE51*f12QnKKbOQ4LB/A2l+(6Zl2!AKW"hiub4I_Ftd^AJD9ugLsgc,V;WE?<__Q:G/*$6e1ab %5$19r]n"%Q>5'!`H^=SpYt`CteXWHkT$J&k8>ZNU:hi(T7K)o#,Xu$KUl:NF.jVg#VHV[TOe+SZF=?"_]>nC!-c#FuMblDT,6fiD %3Bb?;T45`71#f)JnPbDA.7X4L,CYL^5K/GNU-VS+_'`*)&qq]1ppq=4h[C9);D1DNNaqfPpcB_med-b<`8\K:IojSJQ3_[jKKmW/ %%l5et1Ca:F;m6&]Wic+iX8PAKI`FgjF\q.n?XY]AC-R01F<$L*jYaXu)_;k5/s]DoAR[)#Er3Z4G9V35n<3:>/F`UoK1J=q"Xaai %QcXAfb@g3j/=[AdJG(^e`Fc6qOiq5'C:2ji#X2QHG;5Bc&#L:@]9gNsW6TQfch$?Hb&mI'EoQE30!F^4dslY5EMEO=]AVWB?lrAK %1B3DMJDn!F==Aand+dJ#]6&')&Z?>2f'p*7*O$rnLNr!0O'X$c].)Q]kmi]4r?-`2`KE1AP-6bFTZ*)'2\Y/('oVC7\e&OXA:H70 %(PD)i/iphli/>01.LMBOS&Cq9h(AqD=KMk$.LboYbJ>;>!6)b^_de#.CBE#i\h*24>nie0E%IEhhc&OdI9cG$XS="l.!lf`M6803 %]Bb%9-#%HK8Yl5S/mG*_8.pmG!QGa*+MmA67_3i?dA8&oH?2en-1J4&JesCHlfj.dJaS+UAd>nLjHA/S9P3CDlt+.nCaGqk93J%T %*OEDa&f6>DPj*dRO'U_U4r^cZm/)^Qd=3TuI>c>lig=$,q=)5AEt9_1aPu^*d,H:$`Dp/_EB2)/A[c_3U="mDip_N23?G`!j28@` %%Ni4[G'PAn0A>f$=?i_X'r-r %p4XALo'Y\mp8[.u:9AtRZBN$$\_0_b<\3NO2j`k#q?hBES5N4Fm-Qnrn#hDq*flq?]#3!8b<@iY0("hgTV\C6>Jtm!"0'V^A*'Gn %Hc3:F1Up0=eeVhlgtqPk!k>Zf)g*_k]>G$tD"h"TI[@[\ZIaH9cBM*m3`^UMhsR(:R79c+*;Ski\ms1_:%Uu#Y=7".:T[6c4"Ip/ %gk8/d8iO?l!_V[?L4)\_p"JDnsd_T0i0IDI5MY!1:qcmr[1^=rF@j6[#jj/-4MQ-:.IK%DI=CbH]W7I98[WT7>(.c;]V!(jo=mL=gX^6;=8Ff(JR12n]f(jf-.#j7B*(loCF4UJ^'1E>S(e8PQ[BANu:pm;TeGTr?GlZpq5]XH2Yg)`WBP=U^Y %W%0]tZ8Znc5.5D+d9Y3sh15If(@5Oe5.6fi6+*.\k_PFMc"!2V7_f(.(Bl-t]%<1PF%,$^p8"hgScmetesajQ3>%>7n&D`%-l)p+ %Q9)IgJ,8GO;H*8Vd<0%NHR.R4<)fKKl;LPo/X7;TG@dFK`J[0\+%dZ$FIAHB66R6Ul/@`I8!5D^$+n*[$qo^k0<^G6>*bq_Q>LSd %F+"_npjIta'MIsUQ^NLjZ1Rf[jPB^_lr**E+Sg]6hQp$893:PPGH$7bN`5+r77Q7@SAI]QTdHE&8Y?T"dbC_?'"[u(lt_u%dMh`]8!e(5MidmNlf>R2gd_jj]M8%j?D&]qH*uXch4n6f"L$@EcJPDgB:-taDo!59-E30 %'!.$[M]kb]4E<3Wq$D4YM0(;f?1bWZ6%8rXHm<,)99S_2Cp?fbUl<\]C`d\Pd5dsE-l7Q]Ll!$_/F9`HMbeojlPA]Z1!k'"=Uf%l %k^3i/SGj@Z5@uXpG@1G4e80B:TLDeg7Q%MB.k:U$bAL_Sp$jB;lEr+ %d^Z#l7HaZkGtGTXH[B"`F'kcL?b)[Ccdg-SA]/j@%>t\q8``B-i\`0#DeADsqlrYp%$IN^uqFRo>Q242E %R/-sLB3u2(6NK=ectFfbd[`Fnc/9i3o>on/h;bbm`t(Hfis%[u+j,2:4#8ele"3:0q=\t4nXJP(ON>_<`ESnR.peL[r<\bBOi4Cu %<+c/m=ll:HmEbe.E(h]u^V<`"1!W_W$!LN,lbR!nNf+3)l-81N?Jk\EHp8(O0A$uZ)nAW>dS4_,qs+s@d6L<-f#moTe7VO(rhR3i %:J.883Uc:O$'V!KK)'-Er)VOLUhaq_iD3&"q9P#F7jV#$dZQPLFlFJM]+@,c=CfZ\s1h2MkApXdd"NfBL@Xr6fW+GVB>41A;_&rL %k3&MUr1s_7/FC,/l#dfr(S'*_o@'qB,i?i.pU7iO#4!C?rI\@-V3bT[@Z?.I>bV8&T:0H/QXLWlbtR7Obi[CIB6fBF)>n+fpb20"ps8r`p@iCV$uPP$(=+&7(3-VUF%Ht#96m\qF6M9gqFJU-rU'!;a---+c:7-n=\mXRT*aBa %M^h'M5&7iVKXeIZ.b*f)3*-`MY*Mm'ZrFZ5k$`9AVZuN:Y'!h8LQI&s@,iH'/8'%EuH7TbM'S8PCp3*]qm:NdDI&Y]7b-k %e+qt(:1$A_Vf[OK%*P`t8#hSg5%bZP:*d`-rj<"BQ_Kr;'BiN")hQbbmo^Dpk"39A",ehqeXb@&m@9]D?O_5I+Pagl`5=\i9T9#BuM65Y"mdNH(kf9-J^ %jYDuOD54G8-#rEfR@M4[8Wof)/@(Ks;^nXj/C)]s:X^rBdXifk3gBSMs%rF2nii(h.@-b,`T'(j9ZsU]Bc-0pe*?+E@'!G)4abYk %hZq/JpuJ!\O,j"XB:\5&Sf>8,E@_fbPq^H2\LmpWiJqNqI*(,m2465?bH56]e]5>LYPlcf^cZ32oJH%(mDP&L_Zo2*aSP,dM`2\C %pn:cL4c`G7.Et(n-loElqlsV:qU,UrO`as-\i>tZPG8@ahOn>!C&iT1g&#: %<1rtlbJ=6?'@SB&AoGE,'l'$:WYdM_&p_0FJK3(c>A^h:Qod>ER^&- %:`d1>boQB8@n+KKph=U)-95D"h\G<2W(1O?M6G/Mm$A]0Y;jI2X6'#/JTL>c42eTQ09M=bKd/=+A#K'I9Yl=__^_>;&+4'#OV^U%P<1bksLuYin+mjW]Y6"BJnuMm>3r+f40a)Z:CcB6,mSF\OHO?IiuV7'7/O[5QoHaZT!Xq6gA!8b %!FQr54<;3%n-%tSC)i(VF?9l'7rD?)\;Tj5s)mYj6krukhpm"rem@)/RZi4Qa.`s<>rObNXh,`,lU;:(q!4?iG+n1'akJD[*O77[ %0J3#d5#uf6fPH<3G"B)KBLg#7N7Es9>BG.'`9iNm]KO.+0h5+_RFDMsD`o\E;t@+<\3DSUAh[:5iX:P=Bs2282+CGm0&Fa]l8(m/ %R8MRR%tG0q9UrpoCCZo-+Du0CHQIuGaK@\.D-(fcn45&P?UDug&+AT5iG2V#'5@/49CRrcRKqM!.X\M=r82jBJ60sUh/)W?]>1ll %HlkA3q;E8GNZ?[Ccg[n'r7HL#O$"'*QBRoiqp.;&r$dQik8cDSKV`fN>o(-oI[8,^V"LOn+*k8sW1+V1O-b"L%f&/8e?+;7m61:$ %NP'5s+88V/aM$Y`*kQTa].4[n&(kO\[6J!6I:&9BoTr?0(H0l@%pU@rUa:Eq2NA5("Vsi?O`s+%nrQ-5q8(_SI^?J2R';C?QlLRagrup%:,;k)X2gFcrQc4k4q[qc*Gu0&i,G<+$U[@EPWFihU>,oplhU %.nhk5UQHaDBc]pD.,WN`=[X8*`2d1`$bmn4n]fIba2[Bu`R#B%(/H`hA6uA=1+Zjc5@=YY=LZHCCTr2WW]XGkV(F3k8>6mr@37W3 %/g5p=MmM^mT&E4>l2$O:llRn&0)99[;RSQ>e0JnS/sZHPp9&bMi[@HQeV0VI\r"8"K4U?g#d_SfXX9BS0t2c\Qj$*A8UQ>fb&/eH %GWqM5Ru^.Jqd^Y-Hc\0-:hELr>b=^C5HN!.5Ai_,A@Im!CA%LnSaKeKmB=rna3"E&d>4Ef%j*`3LQC2jHMdSgFYIE1Cj00&pK3I* %@=82h=`S^mSU8J:I&V8.e>i$+i6Jj>bG1nXH07l)a(hY<[.Q$iS(haupO+kV]A669TNc-96c^U!^Gq,\nb$eRZ2HL;bb^'G9R37Y %SRNODp=*-$88BM&/oh1;PhMi=V/?l&XeqQM#eFiQZG.Fs(Y0MJeCY,J'NSCqne`-f3m]`dI*Pu>LPVF6a&]XtT_m*!!eBb=mc"/S %DdM;8H[5Y/2rD-1`rBNC]@ZhI`4u-8c+A2/Dsh$?qY":Qhn6LJHa^QdiRR<'=FF5#ZOkE'Sn@d[S^i&CnDF.fJo8`UX-a$cV+r0DEP9Wq5Z]TqBC\gX0 %[`$j#J%WTN^fT8qcH80B^mPKE&H>J^Uu/U*&:*Zr());6L]?Cn'b=];T0\d@M8#XeeBUFNj5T`A0R`]K&UaEqH4O+XTVJ/>krT6Q %iB4NI/D`Sqds%E)_5H0fRe2$SYpl:-2?dMc)om+1jM/@IVI-%KCA#K=+?'T(ee*]WK,#a3!-N)"qX0mVH-RlUNkr@b/@"G0L`2?f %*Rd(Tj&asooj][/%r6P#DQUoH@=A4KrF7NG!c*2[*N[9n&kt>^b%[S+;-Nl/L,Me32FgXXUllk#D#/]0gj&NS5&`B1>>8iP0SG-U %?pB`k5]IFD`!a*`31J7n\DtBIftVi)mBUbKfT&\',BJ$^%7,JQQ!a*ln/WFKT1d$W=&MMsK#iTgA?U`6^6Yt77n.q^)cn^hr%WJ. %;JW"l#S^U*a#PY#O`S-"2ZiYGks@j.QQ220jjc)Qf,JLQSPnrmAu\39Vik6Bj*)*rLqH2O+"?Q4U!V.Y]$T5M"s;TDIXao2; %4ehNIFCo4nac[;F9cPnWHYns9&'>j=R``Ii'sA<],muqiVVRE6Tb2@0@'Rl&+C6h %29^],:k)0i$$lg6Za^SC:DWb0&nmjsV6^q@5nAdI*gW=NMP<-#ZP>HmeBS3j80.dNP#KId@BZn-+ngS)5UOX36;iOAN18ohA-Tnh %e(Km>BK=BPMA_$[G7RQ27G=K^c+nirFS+TQTYR7[9DBd7Et1kYr,@\DEs1[t39G17^rSjaD6^H,!n6s-NIi&IBLEb6N"H-l$na8J %gQ^f0AW19W0]ZC5>=Tg+h_22\N\_=Kj,p;-F<3c.gid:aAWU6&:Q"]I7%+^<:o>k_``alc"Fu'WBu-@15tp8hln).,!_aacZ'`AN %GS-I1@CVCT0ZHtok-6Cf3*53%)RG0k9K'[49&$t!:hCg#)LNn)`""9di8KV`N\k^TMgs^`$@0JGb#ZW(/bHr!&UD-S["KpoI[l>'tc>E1^h"%Zrp49*"te=dNlVsP0WWc %$uK:!NR>ToSP+-"@ph&,830t*E=,#4CHDa<@Na`l@BMp`)g-Zu&ZGe(0_^^Rdbfq[(j-rd2c/69@Lk,j0QM(^bSH/Z8T1X<7)_/_ %GJ/1RisB2>pG%\W>Z&b1rnn+Tm:8BnHEa,QWY)(]knDVp9SH %F.3aU*(:l%=[WggFm@99@TlEu?ilepnHBAI=A"(l=//EHo8"#i&C&"XRp/]'.F*V5RE1FiN-;M?)<%,cO09 %ei#%bEA:>o"mFCC/DLsl03`9;lR?KRcM(1'?_7K'C71$c/`G>T;$Od`Tc8X60r%2#%5s$Q"HbU[Z(9:7(/*KsMA-gnVFO%eb_6t"<\'YU%2L,:i %VF`t:P)-nAQfU*T0DqpY9VrS,/-K>mb %3=p+*Ok',RMIo;$o*BjIj@@H>AM"*&bbi@"XO;81Zfq^'/_FE575!a&@\3a<^'VhEbdsrHjXmW=;fRIFE6?=l+p/$1G+<^N$I`h[_^&:.9NC!=97+`W %WLAu%TRCV`C-eCL_#,th_V2-u7KpeW112\gTSp=5>o?!1b1NX9_q+,;=kPAFZ)i^iQMAqo,)FRu[R=H*T)$2Qm\@WUC(*NIhN"pR_5Z#Wr!@V&; %cr*_$&:8M6AlM.P\J,(aQEtU4N=u;i=XP8q?@YU[8/24;Yr8-r26-`f@/*k9:hKbfO%riAhnm0Ho"YSUap5al>i9EEIa8%)c[gj0 %,Qjnm.PM27&8DTMCr%eb-e03DN%o:ol@^upM$U0Y5+kuad9O[8`5A=G>&.`X#Od[I"_]Z4$,BtM,Cj*ASBs,8`A2A227D3;9jr$:<'IOsOjY.sXV.WaGMO4)hZX.m/$`JojKGY7[Aa?HNM>t6Z%8p<)t34;E4Nb6T$S-)ki %8XuP:Z1rds-)I?=@:6I!2if0VPrH$[&6,>J\8%+8%Pl)?,:L\"D?a!l9bo4JGShT;\gl^h(1>3EMMW>g"=@sl*_SBoWS4Z#lT2g< %j9VMX$hn&KPu?3j>UB1D):X\\Y6HR$R#8$p1dhag\F.P,K"[5#.E)W+5669p.aV]>s;(S/i9u1"5Rp^uO;5!XI*&KcN'Ef(q%R_GjEDgR>S8\T8V%jNX)M2[&RFRr8!:dMKjk*Ie?EMdVe`(>J!6f1_V(C+chT99h3JAeF %NFW_[SY@:+A$TfM'LBu8.?Hdt!6J.T0hBFh:u=uJ[gHJQ?8Me>L)2R#kC:Y2">=RFK.-TD7hJRW(_LOIBFXe^EFg^Q;NjL&^Js_c_%4rm" %^t,P5Xr1)E'/K=VnJ(H?E[@9QG.*jRLrrcRfc1Q,W\pG'bqjhWXhAODRuB?-kG3i.dFEuePH?b0!Wb!AXDN55#_=GeBd8S8NFtIO %"`)S+E"bThKJiNrAdH9+f't5%OVd07ANYa&l9l>s>ar %*e]uM7s`1jIEaWYB=%1M$[^NV`)&Zf,VBf[XOsrkPAA3(N=6R4oe:t)1FS0I:qn$$4W)OB+rNALZ)VcD9o@l_`Oe"l=H=[f8He2h %q8@s.oU(03-?eMg26]JV?!^*5'Wl8Y!LU!D2L-69r#u,UO95A!,o-rC;*-,)(=rDX$NhhJDA]-o)eKRiRR[Cpf4";1$*8>9p[8\d_.qqQe(8;u(EGc6\1/\MMP/:#>-OS) %=LT[6,]13=`d3XsIA/T4khdTYoXUigZ'&*.b5+=W?-rdqA#8 %,*3FG)&TGV_:I*[;0Qh[9f,l*n3bT>9AFO;ml(V(W7,.>b\oC#Cm"#W`VSfR;hBRT,(T\*:RTKbUO&YCAQo?eF'9JJ*TAG,E3Wr8AG,`fa2FD2?5MND"t2ld/ccn9FG3CcW0)MthB_SBVQ_$N(D0ThLm,QbUR/1IDA9Y;1f %?&c6ji-b5ZX0r%i\!hArnVh,7g/@:eF@49>36#a*dQ;H't8?I)6/clMMP8!FFhQBk/b-"@'k*-D9Z^Bu\Rog?\d6*Eg2^Sj/^pq$#a=)e(bCsHdXDpQ#m;9[HZMJ_c`,InG]8].]bOKR9"^cB/cW1#T@WNHR.Fd886'A0;)&G-Y@$3)/&CC3G\68:1W(n=&9YF[*gfd_[c-gA:>U]a-ej&KpiIV+k!^n@:,\doB9..[g(71.f3d$-4Zr'b#"h*D]bYj73& %elFSWp19[T+9oEErPWJC9Q&DF&PtT`'l5h)Yq[9HeZ^?;%Z6p7`/98e&AbGg-sKU!IPZo5i9FY\sQgJc[NQVj*tLnR&V8!\Z-^0c"$WXk+AD7V"!c(h`j8O;kR1HCpS"]94Pb-'hNbOhB6:>0$]7ddMF1hiDe %*o!@-Q3fCnMRB?7#9CY&,4;]!fc*OUB:s-&9DUUmR-gu=;#N\>SdDpM+U(ULCamJH!XO?u[N'V=AjRW!Y')Cdcsd'LZ7K]f*J-Z+P=\1eRfG!_&kk/4>$uYi %A(C`oK[t1A,TR\(dt;Cu@Z/$IdaKJ+]rVK=;e$a:PZDV-ZPZ*1A0iKbXeH(X56cG,)KE2k+\VtOG%&CK*jR#o=N=JV/sD$)O8rF6 %&dOa,=G&JIXhSeP8SI]^Un^UM!1nKOT^KE>(I%t?SM[sL9NDbFTIJri1TsnIopfLUf$TEq.:r+UIV)96UX3NgFgrFqGQpc)-@$=3 %eFR7.O%Y:(OWi)89%YhV2*92p+H2u?<&qL]F@=K^(m_F!D=*9)q6U4)3c?I*;j`k %Q@Yk]D^gTAXhiHX\YI=&pK'/BB:\q':n' %/2U%lC`8egO.;-Q&_V'.&5eWY/m %JO?2(nV13,V(ef8N[1Zm!k+e;^GPJ;6G=**M*5sGll92^Z(EjZ9XtjhLaF5H;_;WS6.MJ:gpdt6BEal(d%Z9Wlfi%!- %bLnXGA:sn$hBA/kTu[<5%ILbcfg(ASmHA0I.$dNei.g[jW[euF&!&W%kF@bC;:1!D9\5,9Q'Zmd< %11n^7_Wf2NnX/\l5h)o,gm,'Cpsmpk-rZW"C@!'Q\j9-o;GVmpL=0/G6-su_4]`k2l-BK+?'kQ5*^0X<_5i"cib_:RhfHZ)#r1_> %/T,';o;:fMGd'PMZ#=R]1eoN.l:I#2KlM`7j"W].Q:%m=o2RZ5Kk;[,Q1G[iS>$W-3'`M>.L.!1Vjtb;#f&k[,e#d8e3&i]sL'N:J0'(a/6/u;s%^sS0Jhg?m'+g<@55.nI;=1K92N1 %l1$G12k:pS&r6ReBml+FG6(IfUpJWIch'?laJi%o:j0H?E4]pqd_2G67!:s95m=rsF,"l;(^Th,dO@+h-@_XX`Ri8P@IFB>0Y1kmWl:sL8W4"kk23Hb?H9A/el0P'"oPaNKYAB.&2Vu0Ao?k,O(u.\64ErLAT^XNK%4j=Y3J>4h %,ATNd*;GU#+Xl7j920qM7k,*1.M$%5>#dj!pI7>TXU*p".S^=m1coan/Wl;:5R&)@+MS`F9?P78$SQ&L\N._&^2(3YiA^ %p-JFbZ"Sl(LBL9'0?$[`"d^WDMHRI*%N$$I7ul#2]AVE#a!?X@bSVl=1WQT_Z6X!kBcP7N$LX9MY-ohrfiA!*C?oP@.VL4GlgW7BV=7M%PoMAD&FItg%VU4tF!djrjD$9'NZ\J(foE%WkXVW_ %rB6Dj_E(-5"V5(,,"X#K.boKS)O+o<:SEK9$$b)AMN!EVl[GHt5lN(,+>Vr2#37cmQXZ>-(@\uZ#G %0RHJ,@n,3`70Gac>JnlPIbPOH&6LfXE3p==f[$Ub*f-P4'[7P7l6WW[TO!K<7Nc8A]3)k4DTbI5C"+1#/`(.2 %_9oN>,*R3PSh-FV._6o^'ho^C'2/gN.96TfNV&3Bf+gH$`HsYWIAM4,>66F:13L`sf)K9b=tu.pL65V$ebaQmO,B0R=TS-%7jqu%<4/TU"LOQmH1"))]HMi1=di@,!O*WY.mE(fkYkl#\jjR4e&;;:$8N22j %oD%'R5RFH!&l%U.ah#lNd/cm@.@Qr`D(V/@?2f;q*ttGdgODd0M]JE1e-Ikp\2s_XAk+;si6Ytc]sIi0#bE&,,1rf.KtT7r:j2tA %e_\Vl@N>Nn6.:u'e\[XO-nM*p]!4AT8NHT6X0S:?KE*Il"PnFB]i[/$o5%WZO^jb^-ne:h!c2%W"O#;+N>H:LQ4cpRM>gMd %`fY?NSun9@8-M4I[L6*FPk%\]]hZ]^&#nTG&jfDB4T7ftRH/;loarhk;(NV:`)nu4FrRH)0Z-W1V'[rI^T;JG%--e^nWfnJ'7QU>Y%@8O?!Wq2j1T0g1F#^+Gk8D*De.\,7Z9cGtjY.#;2C`UFD$; %1Zc;gkX(Ys&$2:HdF*$3UYN.JoFcU'cGF^]*t]S&So>u3J*Nk;d.VAdXDIpBj:k@oRi:VDk;&gJ4=)o,&Khs8WEBi"&/\H-RVcQX %c?iP"B2';0N*>GBiXq/"k-u1t^`m&>3n;M]"(=IiXLtg#`17oPnYaL/>%3?+6IF@5lS^>\8=VZWN!^adko!O%j@P']l16s`nhlDM %bW\f@NIlnln>ebr"gP:KOFT!X(s+M%7Qnm`Kdu+6o1,q\m?$:sGX$kfh.mn?0hijCj::%K^mH4eeS1t@+q]HiUL'!7F/]QOnrSl8 %TZsmHGVGW")i)rEK`X`j_'91H(KdY]9jU\i5h0L6X`)tkeZj";J3<\]G8IkMn#ft\J+rNmroVI$B>4SrchG16]D2*US!Wk6SGiB? %+)bKCmU+dJ[HSc_FnL[!rsP=ocUXK&rhnAWh!"cms)AKrN@Pa"A&a\mF/bF>M1_dd*[`;_d7n.PD*2Pjmjq+2_1dXGQCq7!OhFtM %2/rfuDH.D$JkEhj=B3*L:e+=P7U4\?Tn0d?l[j[D^CH^Q5um8'j(g10YOc@@i:A=,r@tsX$D3XgbG!*FDWNTm8:74@UbnJ-o,.qBA$t4 %06jreWO86G-GAU)JBHYLa0]YUZ^NuqLXcEnJ?Dlh.^c;m81-Ei]c]Rkb$6+@\*`!l=P"O#hH%"<8Ugg-l%^*h3t`&JcFA=%=tsW; %@fRM7^5\L_$f40^/N?a^38nl-]+mOJMrb%fNF$U1R5NL1`1[fT2sCaN0IN2"Nfkm91+`DmMC1,_oWXP,S7hWM.eTMT#o0AsY9 %a!FcF'U_Qk$3[;d"V3@aGP4]XYa/Z]r$?5:3up72FBFdGC92#$oG8=D^ood-"R0]-LDH$5St+T7ha; %??+JC>Ki%'?cTBs+And;'T=@3<,<<6BKIT%!!+QnPuuYHGH2tEE'TeKCHc%l!od",Je=<]Zt+%g>qf^&J8T_>>B<1c(&_CDUAPK@ %2.mt]'*nEsBXMX&cNlZ-"K:`YjV((s/ai+go*T7<$3`=K#*un3O#?,:ZQk!/b$1^M\+G)+PT'fLDZeb'\OH/J7uAQ[^>gSKD$eNr %]oAuJU;\8n@rT\M+7Ctt>=$Z[)3mCrZN018W3Rq)G_)9(-Q\"\.CV<^PT@hPf@N)`[O=8`/pR?\$rc"4SR+^22\"l[muKOX]+[4Q %Iuq0Hd't.pojXk?Tud+p`Ru$S_f'3IG=icY,004k"YR6'96E/GlCKj,eJ2Uo+S!)4s806gVI4YM*LN?elbJ&b0,I`Q5Y`eM'I]%T %(q$NKlW;-a'6)#R(8DW%mOG_J>'!fHSs8m^#`oX?C0fTN08F\fK2]=< %'J-QbN:&lU0NOKqb2(;;:R&_Z<,t<#*iRitH!.Vq\54\+X;r]'.!HEm.X$!:7E[f=$3[<_g0u)Cn>*5mRfcF"Y+_#;VAId5n>;eX<#@bkkb_S(!.KEU,OKG!X,IG.raDd(@F[c.X"t#POPuY&l(]'D[PO5m9$6i %_5]bo^]\#[=A!J^YuIfL<[Y%!&>14DC0fTN08F\fK9Q+h(mA\Q_P,s5G8mbmV*XXP8Y(q!3RC?]")@">dd_+3`8+@&Age1TJKIQ=J[*h:em6s8NeVmBq5heg03[X>=+"T$S>l!K(DB'K00iH4 %(+ul#^/Kc/_gpp?s7,Q^YOs'ZOklD>M!ruJmD=,*d=J.hr&7k+Ra4R9/M9`2BZ]_*&_"!3/8$@+[^4i9ij!["pDk86oNL,mlY'?R %3=5o1#WfArD=:Qq'uX09&4>tu0V7d;>*3#!5g7b[QgP:+eaZWH7JXA*DsT-^G+_[I#Waq92P!?!C?hB<5_.!X %-.]Kkh3@h3ViPMJ(tBGSNg4K0tJ/?:jF`Ed$#4BaRhrb$BG0/`%nO]JZc2R!Ks:K=^):*U22a6$EA5a9Xi3Y&3Wn_n,!Gah1): %)WtoM\eZT6jsi@FR3Fecb#!-6sN\R815[^:M./$'a>'U\6Jb+.&T>Db9,[agOki-*QhZ*%s4<_'a[^^8dc<(^CJI$UNoG:RY'2`Sm\ %W$l_-Y_qah":%o7b#(F](,LB(XbO4cK`X]i_,deQA&YPccId1P#Z1>se@N*&]7tIGK9Nj*3-4qFeYmi)%\2m7=ZT+%7$Qq:JoB_C %VT+DuW8*MN6@GH.t#Y]c[9TEmS\P:mqW9LFeb7=bH(]h7[dD==W9h=0?5DI\lH9Qi6dGWjPOi[.CA7++t12(Y)s.T$"#8Qs0/ %X]0UM@dUrdGM[G?hTaDe@RUb/lLtI\mjkMu[_5c6&Qgd(4b9qqjHc[gBJiH!K;5TU=D0%7c)?skH;QB$M.>DLPtU/'=?CI^XUQhh %R[.'R(,l@=9OI7qp6NBj%crQKln!V0Q2:r6EI9lUjh\Sh%sA-6P?*"!X47IpWQK+"^up@NCOo5teJ?UEe1^4Wb@05ri2aON`&UU3a2.%,G:TW(WWE\^kcTtPQ%?sCS/bAY3l]rUD6Z2gLb#PIa93nm'cQ.n2NQ;qB?*La^0;;nZ(ekr3qScSpBDj=MX[eIsR %h=0>j:)r(#_T0hK=0!3['oMkr8U)1qemei6l].$*f-iYPnlBTXf+p.EFQZA\Fr5_cFGW8Xec'PJKAM+@^Fqk6XO?Cfp.dWLli*O! %KqmC%RZ87#GeI=41Df"XH;i8J34YXnqaMl:3`()@\;IM/>PYYn&o.^Z"c>R]Z/jfVMIg@ftUX;`4NaG$B]2lWa& %.^ngZ9''EJg`1F&?4,K92(p7u(jE(F3EXn==r*&al%.k3S^_;[>p_'ZUc=!6_=[?8Y@*o!f=(Fq@9n*WleOL#of@\H'_6,FmYAc\ %:m!*^8m3qB$LGUN!L9^-)J.a5nQC=%[0)*a7F8ks%uA+AX<+mH5_.!YV:N'Ih)28Q*h:B$UKJ7P*%/BVltuu%G(P++4/WC`j^gqE %VERKT<:0``@F_fR_am[1Cjm6L-V3O"`= %>@JV`m,*s-!A]7%X_Z\gjfiWInF[hBhLmZi$(tfZC#Zp2\,GQ#Q.XR4B"^Dsb$lc\HSoMK.,PdJduJ^-[0)*a*>erqTcoIRFKT]e %69c.PM%-&/g9$BW_gt`HEM;h4-9d]=[fU2D$T#1?^-gJ')]2KjB*VDearu5kG1L0M%V^]pITXsLA%t+#,7SgIT-HUO`nIk8gO&%d %DE)Sb(Cgh!ett&n1!V7FXq#&YF1'8"]-&KaZ#uEhAHEAa#&g0I$XV0sRp25#K)\/C\H,G!2/C07hdbP,O %)sB\l\]`)q%hLr1j*kG-M!jMCb=SnCFr3Bd.EN'[^:"q]D2V&o1T[)6T>5fKEl"((4-.)M:d9k>jK]9.^l,D- %-#jlhX'l@g!L9dPMr4?='@mL^/$'a>'I[HQ=K@]IXJ+O=egUm%FG]U(sigSToFuGClamr*,D<7eA %9<8NZ36m8OK;f@8)J^oVDC?X#1"W@HD0s#+l\5WlF5*ok=OMis['tCk!S^=m`N9/Ykkffe!OZu#C&4TC>MHO$g4?]s]EIR!^'h$> %/,T'F=1+SsCY*pon?%$:.:-6RMks802#q4J\/?u)Ps7)`B*l!;9%IoL@1_rPg21ZWN[f3p9`.]TUbO.g@YGg-hDH6Q+(H.;X]*bS %.d[`)WfO&<>_d!nV)cmSc$([Wend(8P\WOY>EG?2,>n9n@g-nVn>\Y-_6CA-CEkI:G+_[)K:lW,bP,+kh)ajM&>8PnW-)s84.L+h %2`s'bIhm%$kcc?r9&maTLF@A@?t#t/KdsB6o21.j`5rq/`@FYPFc!5;dgN!7ed`B$Pe.9_rCX,N2NW=e_DjAo1Z?OHbgb@Yc %mMXje@eJNNS?DQ^g]\\j7M1Vaoh3X$Y*A9,`#CNdORI&o6]bEB==*<:26DY&3Wo_n+gCWE_9mgr@W-;9&@d#&H-g %/T\OGBYnd)d/eqYX(F/S3VDSuLd#VVh__3.`'^tt5-7-*^FDM/VblU2p7=6sRpM`&1W.DnU/nH8X*S@cYZn[!3pg(Q*g:IFp#3!J %,d#Kh2i4X'N0X%d=?V`o:nB/HgM7;"h&PB&&>1dZWHE')^Dtf6%o28TiUSuT9kBm?0^.HEY@RffV&iR@oFANA$<:15.XOfMdWXcB %69Wm0'FGO?#Q(!o"=p?.kI@6OJB$HWC$WBH=>r?%R=duO8E7XQDK*&dVnTBF4iPOQP>l_(RT0SBG@4itS$o/-Pp'dD-nr4pL]pnn %B889cDgEE6`C^d''V`[HZXgh`aF_' %3D&Vo19>7$I-<-;.EerCa:\?f^L(!,"Cdk`c,i!Ome'LVZ2MsSBdKIUB/@e6AOuo@dTojaM9Qe(:ok/j:Y%OFYFj7J\k4KDJji\* %:9AHhqrP&"G]9CW/;_ZDWF^!J=WCO9W$K#0,HRoN5egk$I8Q7U@1[k;Emi+XL9O$m9bn!%ePd0UX0U/<]r9$#an0FsD]I%scVJ\b %0&[7!l3d9C/.UHNVkf,MeOsAN<`r"=oqrQPM_gT$TG6prX;EYVVQ[]6(9)G@rj %;H>B-X0H:sIDi5=@S&aqVH$P'B`5c(^c0QDj6*f"&0tedh%H=;G;HQf>7CasrDQ?\QHr]4fsrjfkn4 %E7ucmWE:HJ?\N%lerhI2lWjb%eQ+tu$G(@g'1*4Yh*8cJ@/RNtZa<@(*J87-oOn+.H==gec6DaS\M*RO\?%btir339fnMPIsg?ua]-[`,4S_n+gCf2l@rI5Sb.A+gX>*4XTm_2Ht5:'[o$ %&u/rEYJHsEK]2k+@+DXsl\m[6[#NVIR %?12o?PauNB[)77p('j98;B4+kd]4X=t+]#@S+;d$?o2sKO.Vc!B+V22qJi/9Y.!/=?Fl0 %?uaP"/&`\!^&j3;f!Xo$E`gp5316Z]dG3>JQX56^JU=L5]Ljs2<80T/<3oc[eIsRh=0?%c6?ZAEkdF6^uE/C[+j/@C/pOToeg>gC.6e_FG3_!]YWA]0GS@.q?eb]YguEd=F4$_7tIkZii%!:I`*fk)gS5%eLK<(1=@nZu'm7p1%6&+@'MA;S-Vs]5(M-4?/bPLd[3aAsi(6BIcr& %6A`h,@4Pp9kM0M"ZP7MJ]XNhkV9u"'5V'UTJAtDb7MViP5O`#mR(f_FqNef^%ct"b-`at5`(%Ad_Q'dj^fi)h4(1mY<`Hn!UfJM_ %7&FW%Ve\@/40%&?G2RC5)d#b0/?h`@Pm%1hI:Y][DqR56:p(Z)+*Mf\j!gY&B.CItkJ1+G"]c5>"4bk^MCP8On\/9>,\E"[c8#%$ %,@93(G+<#a5juNLE4;ti/moRQ@jh]PqE-QCtY/KYV=$5!tU_'5pmdTH-NmOaL#KL-CPoS.We9s>o$`qeR5C!ufe8M1hfmUP4KYc'mo;lhmf09A[t(r`-XE1JqMGM^SJ4h49_naMPo%5mJV'-2`s'b!sb3kW-'AmqML&CTbO;'o2Dcc$MJ:.]'EkV=-*f)=7s!]Q`VCA+EanpIDnRU:5[)+'ik2+?1eq. %X)$HOjfkobIkpaMi!$Q(+B\:O&%4MJ8FMenk`q#TfJgM6buJ+:5.%+q@r5X<2*E0q=?Fl0?h%O)PN&iN728ULX1mSmF_uK?*7bQ0 %:?B1jB!&8cX04(J;CVjl-#MLb9bm"tbNaCeobE/.^;Qc-B\>!JV$EFum%@B,`T%AU"k1d&^OgT#?/+3`LNVGO'=_qUl88gnWipZO %eO`&!bG=(u]p(80[*it\LGW1Nd1Hpq*7>G2B\U.q82hMJRH'#H**)lm;`tE1Sb>Y;]/se>iG1!aBf3qtTi+*lKdPblaYLQr^Ju)'H!juEFm&NL\,3!UQP,-[;D0ljF %LU@5dp<"#lPu`Q-haYhXdBr*)^H&Mu8]`4&@]bG8oi1KA\nsI.]oq)c`i-:>D#tL&]"mT^c@>Fn %X-2JI>!3TrJZHKDWHE')^C9E?*dk[$2Fa`qmqT%NYZ47\8uFFJ+rSE0=P(*jQp*p@@BGd*K*nOQ%18ghF) %?Lbr$/#pU+NYYRSFp'LUl+h*c+hS4Ar5XiX'S3=$3ajD=<`u4i2bK %3H-3L&uui@WcRNW<[`[#Pmp6cW.H%B0#nH#`p0,.g(Kf2=5DODPTFMG=$4h*ur]h%nBD> %A\6cb[LC@I(3"7::b7pN(5HW?bHfFFhi'">[5YW4=WI,f/ISl*@'1Io@ueX5p.@QsY&.B@'A'+>Ikp+[JR)73XJiO.H>p!L!n6gK %4?d"G"d[`2%]m'>?lS0(pt?L6`i1rig&nt@.m7"WV"C5/H7Jjr]%S\5A@o9e=jlQ'*I''a9qcuBKJKO?14n2%Y&pQmgWDZWI6anu %\#Y%)g=3T"SDuk5l#DAV,2%TaQ'B#/>#1t:^8nrqca7KBQIPT=ZMZ)sh10_?9,1b"Poa22Uu54[<.pPrO;1lj;I$Q'B#7>#1ue6!&E0T5E2g?Z,7RAIkA+G>lb:f@=1F_3&6!$da3F67br*+tbL+Wust0+qd-WrCU95FIMjU")@q' %*fPhWkoeL>92QS<);%]tk[rSWD'pU?bt5H$?"j[?[jl=OBnLO3=@TOHU#,fS %h\o9f:FPR8KMMRD(NCM7JMY(QCn>6h;@e%SJS[*k#kC9mJqX=\L3;3EP5(]H8U %FjRDT(N[1!/3ULD:k@:8SOHK^WjREdj.uXV/dq#sUuHT8+i.N=4mB?VG'-r6E35e]pKD@7oJ>^rZLkJ?D7aqu?D(K.US=0$'!P>oo4h)8)l$J\1/,]TS?']rB[:QhGf&c0$4H\n54cb:o/go"L6Nq'P %2Q^/""W#[&7]jl9HOuq4$J)Y*[G"7aCmA.LBW\#WG?X=7oFpG'Zh0GuD7aAe?<;=.W>%=Z6["W>?>Hm+@'65Uo5-qjaY=':$T3(/ %en0J]85ZCUf!_Ok8u1&>=DP88i*&RGn$U_Nl"AAnB'Es_g32ds]rpe>'<,rtF/iA@[5Q26Y&e7dF\]6ZQ"<8$RZI^2`jBJb.$,rG %>huLdWWcRPE36%dpK9#Mo](-q>5Ge<[b[BUYH.!hF<(iPQ%CbsQ'N$;nM0(Q=JZ1e,t6:o.P1WYEDiV:0b1A2d-C\5 %5MOb4=K_;-\d)$-_\$%O6'>-BV$GUu.KIubkH:(O?u`^]:Y%!IGZU(k.b1qL8]hA4Jjto468`(Y"B.UO^=-82V4U"SV59f#CHJV` %4'gZn-dB%,;CbWX>q8gEQWX[9lCr\4B+MVFIOF_3mPPf5NtZU,F#!Qdj0R[ej?*]$4j>+7gWV2A1;V>+$Hd:bg/mJ\1:Ij_%hK&#c+)C_./$AGj:[g/a&9rLWOr:Njo1? %PQ7;Q/t^P:3:I^D_1@3a;0?GZ3_1A.g'Rit,e>FF8PNAkQF@RO-AX645Qh/im6RHje?H?8&pC&71,hQ7+*1E3b#ZfM>tY4@rm6+t %T(rsA6Wom%\Ku"50"L&NZ"#)3nUg%=Pd[#1:I]_GfC>^gdY&f.%4Q(n:7)o:/:j$Ml,+iDEBp,WU['1"0Erpq*#M#+4H87Cq %l_/kLGm,"tM0tJ?H;$9G5\\(d!".'i3<7CIPd(*imM@(`dJCaA7Q->Y62o,qInno"iTfghc,U>Z(34kNG&mgP&&@Z5H@>Iq6M#+'g#([7nDW%2k?%U(hYd%0 %r'`.4dl7g^RFH/ir:>,>?G-=.j?)0P[(bY::+e_.e+:%m1q>ZX`"lp3B_.iL]a"/!NH>-ok,JB-4(nQ9k*c8?$8^:K`nZ&-Is_(Q %k4s))m9IPiBBMMWGe855ddG(UEW,k93BOo;]`*0K[`n40qCY`c96u@]katr>[i[N3CMn+Me[6X[W*nkc)-ascS)qkX6X\AcYlVJU'>HL+0aE_c7dIT+Qq,H`ReWY0';HZjk$E>-i]XAQG2b01SP!52m2QaeE2/)^;'/gHuo8Vk4J"92^e'D4?qXQRU+/Lc)tB0I*J&W>rQJb^3PG.hmp"/p=JcZDGG)Q %D`08B[=#BoE--O(rqaP.m@:6H*"tSG@cQ+Us6At,hA9D!0Y'V\g<,g:$Ib_'/IKt1qMWA#BM>UZ0oO%nGkS>IMf4&,H$fM]/j#Nqc0f=AZf]!(\s*""FJh-7Ge!1K46d">B=+5r/pIW8:pgDP,/m;!9q),m0D%c=u)5Fck[\!@M0^O,_6m.MJgrtK5?9%WfQ %>gj0gg^@N,&.3T,I;s],?U+R8\!GB>emC%AfUTJ)E\/=hq[`/A:;?dQ(CogDLYf*X_,ip5;<47V:ic+B1gZYrT7B&3H[oe&i37EmC`gUJ:(]m1.fq_aUK5A0QAWo<8H>OAo%CS>jBS>i(l-]_G@@T%lSL(TC,lg5BXZ1;npNPd8/S8V=O,>SM>9aC@m#=S[e:enCFnL %Mt>]V.i[U_m[RJkTuO*M8S4_5t<#5:+X(=H$fO1`[46g/N;a-W>[^*lJ'He2G\beosV?m(FM!Yl8tiKrT3nZ@7)gZ<"_b2(nFL %q1n\\-`:UDB32Ql3I/A,X?us.A3eC&K^YH;kD5:-PDSXi[ %hTa4"p>4ZNF5QiK4!PF2R;4Zrb:VG\'CThA04tEB@&oVQRbT2rFRG&)FXsE<(7KVgY@hg8lW9JMai2RR^MMd)El2fkDW[&_CA@A> %Wm.U>*oGbs%=3I %-=b&2L-a%^B!k!G&Bb/`>K&KY96j__#k>Is^$Q8^38NOYL`(9kHEOpa67d[!0?UoqO+-l*![6^Q[]SX@3ueM\A+!PsQ^9snf;;Mg %DSXi[hAm)ZQne?;^V-fm#dModLu!pJQueC%'7j4G[9Y?A2(+Q&g%VE%pSY)TYQNYZHkUb$_*D[1:0+_B80,pgWPq2 %-A?Ghou/a'!d-_Y$GT17[<^:1JQ`?/6D.YK5lKZ=!#>TMThhjaT?[EE(\4qpVtK+b&YBj0[#h2>4Dc*alJ3H;4f'6JGGs$^lM>Ng %k2)3pX1TUF=2!CN?h"U$g\JV10)g$6o#l5=S;['GY?nk`PlS5T2[:5K*R2>9Br[B_'o"XlnMrD8"7+FcC3U?EQEC4m-PSXhWk>ildAYH(O(WorZDoq.[icpusXg_e(^P:NrqDT=Wn) %WSch'l)3rU_j[fTl?C5DoM`6R:-H(VRE_#$GCl)C7rbf#2L+)Khu7kGFur(*q"=0ah(cN+$nI[GX'$*<4I/e%Z/";)HAfganQ97i %`FHH'/E^=gn6$\&`OtNEGUXF^jWdg5']NK4P`(n!;^LhM9=]9rT4dk%Dt[>HPhU;^GM>ddpAEaYO#*fCDs`g]]7@#ueT:-*hor-n %4Z)$4`ULDY?!e>3okML_XF0NsMu)Q%io9gtN@VV#s5D#Qo(W)].!E.H@FOp'YPE(u-Qd9`'et1blA_oib+,inY8o7XV!Tla&[D,j %LRYWVX"T?hE;%9He_B[;Y.sb`q=V_[m2%]oDnifr3Ou`M;mFuC(-BuSBDNV89X=kT`RqO7Rm'9(8XoYp-i\UDq=40]\#oK?OG5EK %9O[NBc7[6mo*cXFdoWkrI!(J7b;%@of*[W7MH$QbVF*Fuf"5d8q=+CMZk0O4cQ\I^#dBqn.Qla.4?:@UQAa9H?@H09FF9\A+9)5Q %E:AXaX*q7s(q"#"o-Q0%c8:-B,oeZ.LZEgVmX6=DSe3m:*>+bdf48lW@Lf0@)A.DcgZ+6/0RMX;>)VK)&(Q)*]WE %dZTdnqNlOuEqm)?jNg@,?W-H%A*Vg;P5gpaXe-WF\\2hGir&Lg-g,^-RWjRC/ZJO"_onA:1(,a^C4t8@?8e:)DClfSQs.&nXDB=9 %o6Kr5h/N_Ha2k*QbcD,`dbp`d8XXLG4F);PoC;t&SSO\DPM$s3oBSt`hKm2T\Q[IF)#SEPZ2*@c\!u:;__s0.82I,l(]!BprpO^; %a]hDnY2?qiE-;VFIWP4+*_h&BiOMY\4)b=\*jin4cjn[Xgt2Na)eVB&3d;+m@+O+G#\C1_PA-pQ %ci*%u[r[/\\Co'/_9Q0#O(Yd#Ztd4l'!N\CD6X4[N?o\uQ@LQM6IY@+!bP,SYlnm"#.[h;[ZDpjQ@S?^LW'nq$kl_o!Md$=t %IU,_AZiBpmm-8\IIQD2W9/M"@DS3Tl^7<$JYgnXRkAJn#;$WR`g>?5_TQSki0_s%mE6V8fjmFp- %8tdf4:oF`FAD!O#PsG]I:k,94kLj)WA,>Z_'gkLL5+JKZ/8I%O8^co661]I!8Y,iXXUWAjh8fBdD)bR;Zj\ %OnoLGLutdIM'L_O$i4_6D7a`0^"jt%/XG0nZfH"aC=satY1a(Qm\2F!LjCX6e"SWM3n*EZ9UeW9U,+A^e"SWM3n'fZ^#1B+pm5jK %RPn4NfHIA2o3rK3C!4TLU,4Goe"S\4YgW0YYHQj_E-!c:2muasg=Ns;1X2Bc[VAP91XMTQXC9MFG#W8R9Idm)bB2Q@o)*cDgi(ak %QAk]X3fU8d\6j">]kYRcmaBLZ@_``kTQ_2@Dk]`Ws6KQ?PLH/?&u*FrI)JeKL`Y&TjNHR/iMB!ZcR(mV:odkG4m_3gNp!b/n"#6o%^-o^,\?E,PDS+[r='LDF`;[q!@P[STXeF %M_FAY+6OmZ?gugpqtGq$h7BKN?[Q"GUYS+]]Qn^AH8ZH.`n%b4nC;^R?L5h`niL*W-S02Z5Kb%.IdZ.Co"-J^I9)E6J#4c9Za_3W %3+#uprSeQDH=sGI&-%*.IeM`oOi,h+em/HTN@#'dAZZmL6@r[2C@VncCPmoppjftL,>0Bg*ecXo'(pVU)\?4j'81?Xu=lQGSmW02$N:)qW9I*/SH)Arb!C-I9mdT9AtD<\fgm>-'bU7*3d2qV$!=22"SSbpj,NJhk$l2?Z>k3 %n7dfo!ap)([J]'kW)^G4C;'T]Ih5(dm4Id.nJOGuY%Kko]SNp&++2uUq=`Xtbob8MT#1uB4+>E.POE.Sj&R,bc/*'U2D4TNc*T)5 %NF/mecH!!7^[D_6p^Ak@+RZ5BcP;fG[,BAjifa:gajT-`Kd`Td!?%^5\2h+rn8:]Mo^0KZ#DjF).l][K\ppbt#IKk2OoZBb_6;.1 %J.Yaf?IklOM$lkB0`m"b25rXWrHqO[T"5CN.HjnI@CDgm%X %o(IjF4h\>>pUBapT76N(mu&Ra`D.-pV&nS\I3/r^8_DT9.%<'%NFb^=IK9ZA(hdC" %*KWKp)p2fPBEbhK]?WhKp-Og;d<',7\AE;)cN?:$nf`T_0H6NcKe4obMSX,nqs>[ %PbARpLFb)9jD5Ck&'A5e-m!%FSsI]>Bo0l8^c@k)D2jU\c,l;$CFssEkemmH^?qlpsPdW8uXNET! %BcTV.2j^B9kiut/X>Ls4/R!`fYW9QiA_UXcpBROC,]M%["tOb:Ygp:SUX(/5n:q_Y\5&[(^:Mk%EDsDt0%@"e3L5jfC6O&#a*Irdd8)-nl!if>UI %!jpa5]cNL@(9C.2hA<7D5NQ/=9kaW\lZ1!uV0J=NIUB7[[S^q5JlQOjdr>!2k+o965Z?gGN0L,74BPc*Y.`5>=piq*&clBQ]oWMf %CBVt%l\TK_de?)$LUKOl&K#U2a?GQYFR9'1KFS,COm!SO&gLVG6KL6< %:fb*7gL&aR'C$;^mb*S*X3U,GA;0YgW9[M2YR.HmS8T'qXe$pI0K'>p570Ie:RYC=p_<*D %4sB(!M4djg[$/QBRDVF7"2os<-Xn.R&R]gR7#709Rs(MN?b91VX;A5[8*a1C"]rA1,c13$0$jU%_C,rt/YT.%aVh%;#6Z&XCnsij %$n[$lGs)boOm"eg(%Hi=H9H!F84ZVImIUV#lH2N6+9F^R0o2'P3l6bI-2XI#;cuMl&.("`XjXB83i$8"+o9'K80.j*9XF^ %V/PA_"_eB^=?.*HEg[Do)*DskjdG3H8^S/l/b^R6AfK+D$k#^*P5ks2'-2/'OOeAp"VhML;CD_(X+YUiDC-LCSJQloiuTDg+I8'sSQOjbOd:MfQVV'jW;N'`uLm"iDOH$6ZY]QO4]7,dATV'/?7iNSN:sT.$]P"3Va4-M-?IC?"A@?B1CIO=UMc*X#G[ %R8L[!(*AM-=lfTJ/0:e"N3?&o;QfLeOp29;)e.s,@KeGB6_+uD02N_)/B4Y_*1d$D0.W^BJ4Sa_H=KZO(SSO&S=/j+'pP7^Q8lX1.jus_OIo2t??cUSS/H^bKqWBh\UU"b]I"PV]88X3(1M"4`fh\n %OHq<4QU;,(heeIG_p_$IcLP"!G5rEK5hCuC*!'AP/qG_OR*gqH4Ps/d1*JRWXq-KOkY9#oB)KcTA<-H/Af"f$=E0rA/C8m[HuMle %-6?Nj6bH9QR(NsG%CZl$HkERJmA69Z*%eI\-"d77J\g''EL\5r+_Mck>PF_-IscZ]P9&TAqrB %/Dh\CPdW$i<0B&Gbdj'tOXb+jL-it^o`)6iQE %*\T'Ne"uCLR#CeXLMY,1/\mrbWJVG;0QfTEBaXA!gXm;f6&lZ?0B"XdEM,Gga=4m`iZR=A] %7:;!j,S?%onU['X+\bHc,s5KI>98Tb2f,,NadFeDR#&``l&3sjki-l`P$[K26r(F;l?TBpH>TYqa;M6&aY`P.!\E?.*pG[%/Ye_s %I^!d;]]4uCPjrmPQ(*$'i>SVgE#uOkhLeY'KhFE]=pAN0bg*L8@5;j**.W"42tdFqP\^caa?@$"AdP!\M%uACe$3jpprMgf*qb+N %h9B8ZW&mf'7VLhg'b)H&-X2AH8Ks,:_o\+H@rpIO[c3ugUrA-_psb3u(&(1;X5[hHRT5:n+\oQKqaZ4@g_W,UnZIao0&e(31n[l:s-&L*hZ1'g"%,qo>G@IPn-TL6Xt23i",/9dOO)p2AncAZ9WJA?kek='h2%(.56^ %_TJTa>gTNuaZs9GU3s>VE11)Ib.%WlU2-]\a?F<0Op\uk@T7GiCGg?&EoSFeaAcGQpBOMJ;RFT>QMl0l-p8_Pg!@NWl=ErG)7k#9 %_Nue@!\'1!))oi?&s;tGUD]076+JnF85D>ZE`a_+;ZdRr').61L9-SH,narjd*<1['XTA9Q3o4nI1V[C5&/Cl$4'XXJ8HhE'prC113sV(7fMiMK+=gjGL6C %V_:`VU9*9-l+h1ooAt]gLZ39b*h\pr!nV=PL]EVH#KC^.bPgNRU5:'%6G(2Gf$"O2B_7t`XUu$_\b`uiOc_YIjJX\baAs9]9bbn& %C&:LGKc&CCm)^Sl]5^a^>E=T]Z'BC*_s@[g*k^*',*,:So>hISRmJ)Sa5F^j]m\8IYpH-ME?j6'%$Wo5UFTe$D<3BmI'[.kOi>m% %g9]gcO+h4j9RSU("5rt!]/Tc[cStkl/,$Gjhh8]#rbh2Zs1Jc4kbt[=6Ae=Ca[l2aORJ&2:@a!L9aHm,Bgnh)6#6[NRr$H;J_!?p %8^cT1#/N2BPq%(eMI"_t/30u8FG7\I&F`Qk;;"SFMe51&K%]l,5b$FpV0G`=js0bqZL"JVjbi1G&J%;S.nY@;e]!o%SsH6VmYq7f %X*@YPiZu)q?<%dSM,4P4:;5H?G%)<`"UH!h`R9POjbemR&:g?iN[CTRJV<$?.16T'b,4+=(Bl,i+1SE\Uk"\nZ<#2?.9e]sB'!k# %aF[P,'c:kFNh`d2Yo$AqUH2d%C:RI)loM0(CQ;IF?-?EHdi>Q#.>F\Ce7m*\?.=YKU!+\okXDp@T-LhhfuOn(*$YGY%Mc!N$oKS6 %C/V3^+GTA,^?$=!R2;2AKd^kGAJlJ\A!ABq&8j_.3-q %QAA'PTRa0WTMC\&LVbuJO8qo9)&b;lH02fclh*@[o"Ob8sfQLh.sJ4/)kb`R!9GDZFGO#^0HNcu0]dA^ubRBMXMY!322Y`kcKH(T[5H_'mlrbcWr %9M$#Dm@Y4_#lO1=j[dP7G3Zan\5[-Y3Ah29QGNt&+^iY`L]c!nSV6hX]$G?#bK^(\ndWN@+`2nB]**Abm`WJ+3DL1IG9F;KViMkj %E:0AfZn:Le_51Oi.:][HrL\"WoA/lM]X]$q+b'$RiZNN&52SGUe<>qpDtcHnGk1iMmh0.1s0K*/UAXo.N7$c$+m`-S^S;&3>NSdd %S39<^h\e4WG%L..S!0lpc9sKd:%;EWY.!YouYR3:k]Qaq09,i7*NB!!,DB`].BL\&d.?eU[c(T,eGHJJ"-d0Y$Nig/c$76=:50/DLeaON6]I_t?\A %QHjIBgo]RR2/6Psk$Y`BU&TikRYMbrMl/73*X&+S]Wr@3Ybek`@HW0L#'9ph(>"<$=k%?0PJ]DRfjm)*3b(L6dbVFI!JBZL&@t:p %ffI!p_COpnlVL+R\=AT2,4Va:+Hmo`87e->JKUI"6)%A+#.RtO;'t?)]#7Z %3LAjc`G=DQB7;DcKX#?LLdga1?u8J\!bPIpYsn@FXQBN#X!j?8in2YKlD4NX#JW?]SmWmOsdY&WXHJ:R.#-"m]rDl"k@Xq[HErcLrmeM*b!6./DNuTc_OBGZ_J.%d1OS"E) %E6iL2%JM:+%ts-,.[Vn)6RuRmL[0l1IEX$9M?9Q-%8'AIlI@i1MapH^J2hZqdu"]gB3Z=)+nQY=#:Tj&S.0gB^bM9?h7:BT,k`Gq %DA,!mVDL;t!`$S8*2*IW41a[-(VZ`O[8Z\tGrXn#AFcCiTUUC.!60_[DFBY1qeQbJ`E#tgG*%( %\p5M\W*;CtO*WKJC?ejC0bRpcdk`@$(+0AS,Z!Q(d:jkfLj[oNa_A`DOn]DcqRCV*+l'C#cBB%X^I8O@a;5[\JFgqF:=hq=Tu<,M %<)/>F?Mfb#K<%!<'b.H3je/n(r@QA5Ei`fDLL\:@&NGc+_D_=DIi+tZHh4L]aq: %65YiDl7O3&!B,m`2WCIhlf=Dcu&(=JgT-hp!'#B?S>86^t^p7\n@:c(?BM8="#"?-Y: %Oti=Z1DC)<#7i'q%!(L+&sW)VL;$8Q.[-Y^Qo5YdCS:2A.;<5oSjR0UUppU#?jp/Hn9T %!q(rMdLOcbXJ`a8euC&q.*'OTbenh!Uns$NF..8rZ5;Frc8Cu^m[T3B]9@XI#IqoJ:;o,q@cZb!&@'fUl%rI]-i=76$NUGaj3l*3 %.7c%he6TG'ckPj74s&U"?o#iU8-B-oJd\Q*Km(,Ws$S(eE'qDh%%E5Z*mT:a7 %l!0$G7kJ-O60fF'&L;,u75V:9-]4jX0O-1fI,tH3$Bh?VFXD(*=A\3KFJ_ohM5\ML$q!IFnnIE>P.q#pt$G\rp+rPPAE;5>-=1#[C$:E.`@SD=HdKb5.5aZ2J,#/QXL12]rW %X_I2/R:GZoSlPs!$cW;B$c`5Za`X\3KJBkI&hCSNndN$*qjkbQ?1@g8"R)((VO"E14\oU8S1Idg*aMPa#KbO1Sj;L2$;QVA4[S)? %iiO$P!uQ:.:>b\G$;f'Oc\g!P%@:\BI"NJa3B4YtP[SH5'I2D2.#HR4`-V)5/#'"LHrNT]S(lPV`=r`9K1Lt:\bMONY&u7n6::kW %?T97(;A0Ic0bW?oU*tY157shc9;,n[ppF/N$)D"r7+Y$Rqd>pd8h%n?Y=='eO?*pc4gYr-Nkco8>#m^-Q3O.Adl5,fN+DPO/OsEi %l#og)WKn[XoaFnf`Wm9uVKb[UKu++kc@TH.=rSW-`=^7`a[8G:5"/&Lld/&j[8+_rPZA:BDY#]9,.rX66%"c:e$VOs!/7#OD)+k. %KPj#0n>*Me7Vr$O;htNm@Bij2LggX9HMES$S>6^J+:>^Q-.e86C5B$m\4:O@B%kZ_Dani'\.8q2*DdjP_V=%85id`SD'0!))!+`E %`GeQil7j`.HOLoEj7"(,:6AEAP.0^''uo7=`Pp:TjV,g"_ei%!4#CgkT7gJfE"gg&B$l[U'W*o %CFA3U[$#Yu'N:Cil;et"kk&#VF:tu[dk0hJ3DChp83_L*EZVcEOu)M$$+T8[a]%$uL'd&&^o#6_2%!b44);'$*J"5Ch$H17Amh8k %Y&hHq7GP[=7PjUH=H,e":WL:ki>@("1OIn%jI%D4":58A<_79697..lhH+Ed41_)u'Lt\sl6*#:gaL(iZQJ;"MC6)R6l73fOhC?l %Y%O!..[p'o)'Umth5Ua9\8S*4HZF(M:W+7rOs/[0j[L,n?G/Y[PY9^2+'_MWR;R!,#]G'gr3kOG*a3AV/s5<_+o@Jq]bio#j5[%N2X^_]BM&>]G[VBHZLPC,`)cHBVPi)2JAnE7TQH:pUFb1dLki %OJ!<3C2&@B3pgF8+%bti@uDGZR/=o>5E_]:`tgn&k\#p^T%6)7rnQ*hP2Z`IPL/WNe39lO,r+kLYC.[ij,^[e>hgSB'/DP$@gVg./QD %:JEfoFR:<0d!eOQ,Ne#gqrgT'41Do0peb*-@46RM.3GZo!eQJel][D"iAHaXhXm>u_)7@8K^1k2-IQB3hB%MZpQ5VtO2S-sfRgS& %@b6$=_:p3>lTVK0Xb:ISUu6*]hM9,f]TnGB`tlPI?5[l)O(,4lp_n5a/jk^p:LpQ$eKHh=1*d>&ONQ$`,DK"#c9+'nA:aMoG4hB%MVpQ5VtO2S-saF^lk@b#mC_:t_D_BL%& %nFfDs\dpE<]2VC).O?X2&sc,r9;R:R2jR&B9;R<<;Sl_)&d%lj0ItTf!Jb/`)]0hc-[!\>GAR;Blsn,pFI!AI+DOMN6Xd/BfnHOsl;[pQG9Jge8Z&\GPZ[1#K.+QQa\f=)(8->q %fBS!MBMK9N1-"eL-n1:c#'V;r"k3,(Z;a^^<>nl0Lul+MjZ4$6j_ZE7PrVj".OC4^6d%@V+d"XrB(D6#d#$j3'Z;R$>d/k2#lsQ_B[?A.5 %Cl)@f5`*nk18@qV^k.*7/AcJ9$5d+7@_.2B[U;*\AF@\2s)j?T[IE:kMbg."CJh->TSMs*[L:.(uIGAW30FTm2ief`JoFg@h*-"`SOFFpQP@W>]$IfkIm+?ss2Y^2-TRAk,j8c$Y1BTQ[uC2mN/1oPiA?4JXI!%Yp-S#'H%<,59= %VSPlWb1+V0WR=FHBop;q].+9<^""<`e4*9B&;*mW^;^M8&mBgn&8Qj<+@Q<9]nit[8UX$12V)@0B&"T3g*htXfhBmTXIF)i<.d#Q %g(l<#+LiDh6^KPM3s=dUe])>KN$=Po]N&"lUr8LM#t+h-Na]&\1h3.:U2Z>.@'5(.@lkIb<,u35&riJo<@lbdX7`tQm9(NFng'Z: %.KaE3P#6$#?,=lQ,t2l,/pb[K@Vh0^6DWu]FsTef:e!!SC?14%9ljkFBFQ:7B>ID$'aq++Ck9\jVegAflTo/+?!F\d:fYk9"^^Nl %B"F;"G>7;;ZE[YW8MC2rbT]YFM:ni'\qm%.*Qn5XKg9b_Q1p>o'P4e/$;> %U"=4UPT!V)l89`(=(odK&Db$UdDFj&HkXRE"XGT._NTcY1b'X#F4jt%;C+"&6O6Z9:.b(5&lui'iB\!FgLC[VO2P42i$X1`gT"\) %:Pt*lO/Q4j0%U_SQ*ilsZkL?_Pdgc;,rgL2a%dOHD^62jpH]grh]u&_.T1j'LAh=\]!.4/HA7KRD3:PJ&ZNVJQ`98IAnc!V(Q$$n %a/5#BMld?Kc0XogY5T>GFId;;k@tm-8ci>IDJLSCMCgJNlj[?t':6(n-G\*a":\n?<1'Rk",AIYBd7!uM3QAj3Vo8_4%=D1&FdKsgJe_+A,7<)m:`]XoRI(RLbJY8r>EidpGrE3Y %[Fp(:g.!B\Et'Xu"VF[-fbr-)&ZDeI79q/^6mtS?QbBZpW_#*j3'a*5dBb?_+f6CSD5"&_m#DVFmMJ@3PkFPChD9g8C\HFZXT8SY0f/(X[u.?+J&^4 %a$no7>(e2meLc"[D?Oo0i1WDVZng\((torPF3)[.RKcP>>$FCR=hPm5fk]?4Y1L:I!n(upFas7$]7c'Wkd5s>kO %%.B;^^iP=B!4-cEYa&gHXrp^>!I;6tb28n/)%r2D]k"@-Ls]f2A^?6/?io2ri$aMS#o+rC'e&&E0qJ``RA#N;?9J]ik6c1#EN]X#+Y4QN]u++e':&HtEG\=>f9fiM:7:kXJ(V@eCT-2@a,AN:6-jVh=VF^<_Cki*LjBET\YCipX5 %*$@k=o/>l1+]7!&&M9Yo)qO[#VDC28]32A#q\3@-!e7tA*OMpcbY:[O8P+^aA9VQ?fgN'%>!Foel[!Z:_8T3gcs[G(\6Eej %WS<^sVdTtfo_Z(:?)M['JYTVW`ENW1G,Nc!$Ti$+Y`/lkC-SP0=h!1hgHdBRkpJ(=\fT[Q^K%+"1I;X>ppN6YV0CJ1/em/!T'D>@me#.6U-S^9V,Uql?BEu]61Pj\fIa`)YU=.]l0@joU.&$+0F9Ap1;YQ %L1$ic].XdF+^jI//SJLiPsV..$#Bpai7/;4N]XgYR83MkWO/4 %"*r#gcDA((,ViO`4\?o;<+4dr6*+2SC;1lf8f`f9s"9Xo*+9Re0+g?_QjqUGTeiA*Kl"_EZ[+/mK^?U60%l0!FhEM&K.WZo'C8#b %Hfg %25$Vt&!h,=Yi:Pa:n]-B!`YhY!,:]ULh.Gm*\m/Y6+);S[]@fa)(]F!jLn=i)G3[B40V\YVaZG=`crc,J/$p><:gI5pQHA&MKS-L %m=CRD?gIGV_sY=Rb;Mp8UKgIhlU%,@LC0h"!m[0?g"rJN9U4GP@TRfM/]7\,.C&;Y"k.p`f3[&6ALj]mq^FB]&X>($Z=JpR-_gTj %-qV]^*P2Bl:F$fD?!GVil\AdM3#TJ^]9u9p_hqJqIk%-9CGc4MauA(iS_W(nh-BolBEB8nDbctY5CRn('qBF!F(l.U5NJ/`29/iT %7/m2SB."LF3Oug`s*&09FHsVO3'TS'k4I`or9B&%h427YJ'NM:m`at+J,&d8l^QWe@d3^XqYFZ;F*7'P`S$kIT"dGccrHB\LhcPO %io9EHNBtSp,1i012-SO&@@=Ib*4UB&+OSN6A*%Tm7Pol,CGj6_3Ar9?hK+1oc2_$7$hY.!t?m"mQcMED"+N3fQJ8`21oc%%X!]hV9aKV_]V;JASMkZ@P5EQP[sP[okt45_!1r*Jc`+NRm, %Pr90J78UHNUQW,Q:q0^eKb,Xueo!Ou!Dc\GF4;l26*YM2+nX[tl@Rl_L0'^eNuFZ,E7J2>74b:'EQ78.cXiL1)?\^=#lk>#8hcV( %%+[16btLarC,J+P-7Q`?`ac0rd(\Y0c=)qE9.ee[="([d!Gt95G>eTVlF(f9\TEBC?e/T"b/iFhO;0b$Xs5SOWh8A-fW#0'Nn'G+ %)\.dD4]Y[u.h$+cV#kI]b,+gUWI?V0dBUGFXTCZ1RTm\0qVLF[_*B;ZI#mg'a?*!u/3fL:;D8WX-738C+!bS)'8+GU$/U-aLMDAX %M?i'Hp]g7S.!E+LHW`Qb%7"EXLJRC;'Zp`7_2UJFhi#PffYd[c:EZ]7e@AaqF-2JWGjZAm:$?GN87b*:DiHB=s/`4\L.XlL4CgK9m0crr^P4AfWuEEee#eI%NUtgO5"lM`L]Qn+Y]RSaPcu %^#'kPIX-89nac/#\#:!aQXHE^l%,CSWiGpl]&d#F5He+irG'_2?UV6-=M^ulEXrIn=C0*X3G3Tud"\p)KN!W\0e)(G--7inR1#!, %*8A0*R>[O0oP17""u?i7?:Jaj>f(t?[SEXLog7u%bUU<>JBYTcO*Es$Vb!pB6M/4P;Cb5f")b:W.H+]8SYjgF6n@-e#s>El!AL;( %3bsttfqVr3&ua1VFHYr1nnN,9P5V+C?f3/`Ta)YM?piI"]6B@$\I1HA!RWSbXE:P^&d#qAD=8*3-FZPjN_(%m:t0=rLc'L/mhCTJ %AWVL(Pa4>PQ-RLun?tgW'6+joq7nWNs"n-JQpDF8fU.F)*YWT9c1?b-&_!0t:H1s8I=^A[U*d5pYUWU0BV7jO7OYp^98Vg6\4;B\ %hfStu-u-BBfQ1r\":U\E)o-n;>ZZ0_G29k(c7:)9TtW;?CK;m:=!u[U`OBmZb%/*F(SsXY^a\PKMCW!))nQFtB<_Ye^LG!'VOgaA %GYk5V-RheDUBc13q^70"g4+^V$=dB/#GSK"7\*;rX5hnPuY$*%M=.^$,7 %q#j$Kg%6k\UOX7k&+D`a%Xe'@JY1?_A8>&ZdIgK"fTfs3H@*=]CA%K'Q/3eZ]EZtd"cnZjGSFh&bfTU'Jf!%fF)./`BCB^Sf@/`* %=u=Jmdp--RMsG'^>Ye1hQSN0`AqO)g:^5g*#;u7#!(5HFqO`d:#`9e\"#eCFdIja[$Lcb;jo"/(R6@[q8OH\)*`VM/-dCSdnM4bb %<.8BM38pLIL/3FGS,VVmHH;b7%j'5."kdqZT0`BToV)DIJN8(D'Dh];a%-u<'A08F"P&Xd:`$VqV^Dkt%W(Z!jhH]6Rh%_AshDZ/]nAp,Qs?=i%TFFdee.e*3(++@I:JOLAWFFcjs %=EK*_(YAao^qujB=?_V]o,7aM]UK2o*OM11].VZd8"B_V#:[ >X^f#7cnmK65fl]j@%qLFMYl2r':n&cMK'CGirGK$cA.u"O["dI&>%3eIa %:@s)pi'e`4?@Cb(mh]PC;$IeI?r7+DARJ@>G!Hpa/bC'!+C>W*%+"%s=CmgaKpR*6e8:A%'F+fs6qFRhWbAf[R&=E^!R!<[f1tc0 %;Gt/1c1,2hg]S_MA>H"1?UER.'CX%6fehc)6HY$+jXn\hciq!:`jb$/.UZ_]_p"eqAtTr"VVk!fg@#-U2.1\$cZC!iNtJOM%UJ_R %2BF3"X?\MjKsEao`m]))l9P*QQAu"Q-JGOPV]U$jFN?OXqf`9ikQA+i!b"kE`EXNPnJ$eHUjL/J8@JS9T%j*Sc %50@&@0]aS"3"+.":tF6-KVf5[,nXH7n-pKk%Tl=+S]BY!^g)\ZF9mM[2fTX2;Hn?As44Bem)]1XHcU\/u`fZna%l3<:CZ_f#QHotH_%Lg-TkN<3;]+N\];'GE/7`7f'>).VQ %Z7WtRX#iE"capH%3'-1]FQ#K>iDZh1Fhi=UY+e=THL%e>jI1L#-!7fU%nIT'+*r(G*E^K#^7_!/<"AK924NcD4#$*Um/73l?f+GO %Z=0j_g$DlVGj.MrjGoJ>-E,?+,/&jG?0l,kkFF^JO,q0gHB6n:LGtr)Q+R'#GkDsrM(8/V_#k`B@R)aMKBtWB8=s:FEPWDo-t[!D %@F=>YQ.)f$arCHf?E\h6?.%ToDcfOGSn#=tU%i4#Qt>M;pbg\ZIXN#Sqr>?PFo+_gauleFUQs#n*6W*)Vr!#]aP]!WE2dd;k.\oeFogNY1UVZCh/*l(@0,6MNYBGf9A>=2(^6Bh_R=irV?tOMs %Uf$J4ZEU(a_RjGj*h/&kkkrG]UVSY`8V$Jcmdj(+ef^mBj0`qg%pV"Bmr"M*B %&jKb/]*(s)TuRQ:90do(D[6m#!B[j/e/Q9RD8"&kqE(Es*n1)OBl8-EGc-:#f$0Z?<[S_L;On<10(8-,CpU:+'Vn9GlOD]p)J;d+ %ERk8n64gge^gD]c/]Ucpk^`=?l^P_-\udnoeT=#VBZu%B;t0&8B1(01J"V9&?+UQ$[g:rHhTIr4^7Zuag&aWQn/IajH*U;"m&]D2 %Bu!u"nGo[I3B)?2OU]UeRL.R:K*p).E;F2>`jf9WK&MXLn6+:Zl3ob#1IY#gNYeF<5K.c3=0BL+Rh8PrNBe,KlhUUYPD\BqJAMnk %Q@HY`!T%%&apm+;k(Fk2HOZkoo,gQZ/P)b["(P!USgC6F\K6Vn$`lmAo(W[HJ^IoQ!Tb.J"CHn&OYA^dc'20AEI9I9%:+P[I?>%u %HKE2Ui4^GN=k@?k2AE*ODMkj>IPInh5$G]Ao4qid#:%,@.7e%R.lEb9;Dp%Ae.e2(ahtLV$XkB_&"+L9Cei,K(QI0m7nW?djR%t. %%*cM'\$+P'klp\`Ch0S5&j1Z5nm:2s)YdCCRt4(gAhMMQN3-sUq4Zf9o\+gNG_Pd2X<%#8=^Ci#a('EHCtfRFmuq(V8[Y=Fg24o) %:WPG%S!iXZJBr?2*AkT<:=O/787jiAZ*VQO:?2;nE%Cqt+9JpJEkZ-?R`rY]5_$[2cOY*[Y51j"@ %a6NCpO[0Ee8]#8M%b+@&i2q$p3bincTZT`cgEt(L02`uV'QsGr0bi#37ol3'39&mA7\ghseMH8[K,Q;e$hGm[Q`S`;a[+Y'X;/ER %HG'7S;3*X.Nu@;MQNJ)9;Se5Yj]9B+q>O.Yp?U0&BpImHT)@pNk59D&49%f(r&r(.P[GG1oEl5GYXbiaG[hVn6imR#+nQPl$NSRl %NC@!?_E\>S#m%Fk,h`MG6nVkCT##i$;Ms=`#?N5(:C,%fKI)3n.;MaUeH_*P>4A0?Jhb_)e)EMXqdgp$oQlqf+uTIR+'baa=N7@4 %;fE.8ELTRuoYqH'NSarpbn9nun0*IfoZMe/;F"Vo3'RA.A"7F7;.r,,hUuhG/&EMn(HZFr(tCFJ0*,Men0jOA(V75ei2)J_,9)*A %XkOABHjKD9:_VrAW30k1YtR,Oc@,pmNk.3EqF;ru:lu#623@PWf8ebm/iNJk&0ukc-$Ob$#p.V"'oEbS70K)e\Vq3'Q%nk2WQeDW %V<\a%O[hPEh)8,\F:(i`Os4>G[Lo8<#R7.EJn<3MYp&_fINCU5R\TP?4DYJGdO8-E*8iVl!9@eInJQ3?QM&8E"]6:R8+4olI?ljq %E"F&'-OnD'V\-i*I:7(g*V%)`2[M=coT4HnZ5DAr9an*^/@7sKcu()Ro9c3pV9*bbVUpudKkj1C:,Y[2"f!bh-Nkt<1HD41<'"3D %@<]8Z\dR0iJb?9*;#3ZeU[hJJrb2`A9FKLJ6h#:DN %`+!7^f7CCb5]/sJQQ_U:MgA5#]o*.W_sgt4?M7al,59i*lVjE4NXe;WLj[?Mpb@)Ra:%pCAmGT?Z*(J"T^GB9PfoZ$75q1QlR0HQ %USm`$,rfUr7(A"\PP>f.22#nAGTjJI+DEBG'BJ]R67L13K*Se`Vf"?FD8e/[U7'EWoB-jEL6gbFmD'hJ %p!a^n\-rR;3Q_HjF[fnEB@O.CrfKghnfR1Lq]>%bN2%+2PKA53ZO6'NYe%HEp">^JU+c"@[uDMZbB'VEhm)1Pu%1 %`.[A:]R?9j:KY,YNOacGlP+^OB&T,%M5=%C!=&'#fi1)lb_1Z>N^Jj>OJGL94LtN,A"aAk>5l+Ajg9CFETjdGL>b45Rq_2q?dd*f %:XM6&,d4cpR;NhuEr@*3QY06::-YX9kC4*^d'QD4D.LY_Ymm;#p-p#Og-/J`e1.,HZ5;?4H*b: %%pVFps0R1B$]:?ObN`k-"c'68n?.RhD*<")!Za0IlZM6ifqRN@&o[/%j!U0E5SX162sBc;9rUG;.JEY3I1KZ926MR@p7pmo,H!.Z %6qWS)B5PXul]m1ZDl9(S+b>7[Pn"dqOLkqs*(Au-#F@^th7ZJXp!*7#g@E5'nZ(lf0AkeYeIT0<@!&WS9UH_7eU]&`ae5DRmGN+3s;QX(\rRTqrV4Q!%i*#q=DP//Zcp:b>qucbL:]f1W!4$=m %$OWUC[7]@]."[ceOW*&#&_9`R`Rc%pF!ruXq=3$Fq="4l$JMeiM@YSu>5aJPYa1hqlV/6#U/d'M.HK_=/LJ^-P2oF?^^QrHVeLne[F&[8J9?X.h@*eV$D$#=]7g-h %B&$hmSP6GYTU3Z1"]9X[Ull3,YTLN/]8$8)u%>X6&I#Tem\li@'7<2li)6aMel %[LPCW\GZKs-X(lYe]:XLqK:*ob[ra\fsG<_'2h[AEN'q5rp%Z=SCeoKWeq1KP1A&.a56=j'F%X;\/X1K7tj`n?5l^QE;F/L(C`Mg %aZcV/6/bIQiN"c55Z+Ur[XHnJ\ZOK64da.P[(Df$CG[Xd@A"]RRVeUhJ%Ps1,n9$8=so+M74m"=f3Vr%Yeir(I5DsYD(HWo^im1_ %mM.4>a"Xcq)P,oaBd-,Vkd/*MpsV/H\9g0/G,fsJ-IqVi-H8KGC>ZD#WU"Y;rL\B_?l-8sF0#rQ+u?>OV74bF=S=cLdBT5Gbs.O. %0P?6il<:eaEs\JupJc_l:mGJ8uE'r2"15f@BW,Z3R"J(9ZjfIphh^nZ-WIeAff#M(FuTR?hXR!`YtbMGWGXu+A-N^fVM-/RUts[;#Gg=tN6"ho;TZe#mF)nu6uWuLJ7:Y(WV11?9mrXt`II.b %Gf\KUr4J9l_XfV,["3NQ22[e+hKX,.g4=L\b6cZsp'4`bPR@?Z[,I@Q$8A,e[0#GXb!t&UgJ"fFN4h+l9q\(kL%\PTmPG]ALD6h- %!Xod4RS:/*gFp#/3o,?_AfLsZUD)4p^W9*.Q@\CI0qc+0ZXiSW!XIJ5)UqXlfRBK+(s!@iQr'N-#b*9.ZiQ"K5Z!l?cPKZS&B[WP`Te!1C;FCnscN"e&UqIQ0FO)tmGLBncl]O6TE74DVc6*:@D:ajIMHM+Ne"3F$cP9^W6 %BNX-mKkR,K).g7@_hYa67-.O:B^1/:fr#%>(Xt+\NBY6"7Q[j?C_)AS+_B)\:Ra=[_r,jbf4#Jq5k#\5OLV'Lq)] %,IoR7GUE7O(N[CMa]E9hJgM)5TJ?]IJ,qAc&J6T#L2=+/mq.,RF=dR@-0#i@;e1fa%8p'%#R`PSKaHP0,gG"5H$Lh*+N[o9"K-I@ %$OrPq%!I`ckmmK%fE=-KE',?61PakUBt1k"u?=rs-(S@THAt3K[U/G549mS(#iAe:S\ri:E]dk %XF@3X_]`&;LSEh/OK%Xk]\S2e\+5/MO974M=9rXFUOMcu#cb[O[dHe1G@M73V"Q119f$F@EG>tnXWred2O;qI?u!=B:jg(f\4_/[ %[--@8TAJQ3&%fh`cG7\`9,64:3eQ5$k]`YQ%Tn<%kmg*,Os;fFZ6RbBb%o;8_K>@URDRrYRIIIG*Nl68.ur^i/1G1u&$jO/*gRU=IWJM$MI\Gu>kF7[E831ThknU/nE*RJJ5&F3+\F %d\N:]MGP$2$[A&p:T,2fIPLup*;4#f6Pa3bnuoaD_#].=g!MolihN0h413_W-kU$-N?"p9^4qEP[0_W6*C,m#YAcN/2*1bt7( %Mr@eh5.Z?c#0BXhap;\-$*mi7KODj]epO[;1R=fjZ\=m6Bn@Z@'F5D#Li_6&-fZA)E8Jr,7m+G2*e4CPCL^f?Vr\=4LVo5Hn*g@a %AfF;ab@s`6;i/ku'.TnX,R?Y9XU7\9\Ya#572fM7M<;3[;&jG&E4_j/:j'1uER=bri(R,Z[0C\>K]8,!Ue._p%h^Uq'Ia,(86]ba %k/7\2g/_T`(_L7@&kAU>+D[8b`+WVp:\AQ1a@;81?]:4=dte-$Pm,*0L*UGLCT'a4&VQ?mJ?M$1N,hPPdFVQ`$ENcEM+T;h)Q!pp %&>c3G,*_mr*6`1Y$4hY:E?lcdL.CU6[OSLY'ZSuCfb3OMbgj;2H3TEW7NU?lJDq,9!n9sis)k2D_r(lS[o!l6:FTL'm=5oOr8sY] %U7>ca1)<%TU']=K_a>n'7\WF(6\8pD6lKnU7I+)5Ftm %k>/!@pDlmmFmoD4+c[/%4@o+j5_(\Y:mIXHaSiHmT9W%7<3ub%*HD\p%"o6^FZi=C+J$Rl %<2t$_&6-tRQ_J5eq\Uub0Qmf:2`4X]EC_B%7YmBU %MWGi%8&YCX-t5jsBrt\CC("-BJ3R"eTsR5k;K+LH0fjb[)e-N,[LoPD#QZ8p$_oo=K'&m$%SCf2!oR)hiNXk7Z7+VZo>^]8L)/;Q %iq4H5d[%FO3C]*_]ESi"TfReo^[=Jf],369heS5Up2]dT;'Ar$K*iJF.lS"tl3lG?@/O1+g'/+.0c;9L6TGMs"bD<7-t9$"aE>tt %5$^*$.Ul6%)01\pkVZc2RSReVksDnm,5Gs0PUSR?Hfg.p>fr\=Lu!83*hF4Q78PP)Os?[Vo*@T>J2Q=D#nXB"5Zoj=oGrP%,^Rao %A?A1-')gjhHmPR*GV,TsQlLdp(*$OH'7SU86kd#^W5'"r<;"&K9>=AV5Ed6]U8\O7U%2j^ %e+E,j"kokJXtOO:-$0^r%SD=D$TKD';FBdq@.p&DU4%g$Zd9DDod>nm7NXm+nmWk8-^H1/PYe88nG%VL;qC"4*\Hh?YfUA%0JJcE %BT[NMUa"CaHI;)Y+rIQlR"gRoS %5ALd]R0#KR0kXI]2%TgqmQ]'gJp6NE"<3pZ,,NIpB<$kOCV&Rm%-3@!BU)ToFBReP,;B3EBu'[f$BT%8h=G;`jk=8\mAii?`,)7a %8]3C/U0.XnDT.8CO?N$jAH9V\5Qt:WTBjTWY$H9-shbmsYJ@K-b;j %BX_:0*NY$KG:7bE,Ih8.JfG\s%6dT=(ENZH@l[ms%R;SN018;cV`5Wq %h"PW"(ke`!Q3`%-&fHGMB5(,/M4CK3\/GFIm@7eoH;]p3je;N7Q(mV?P4pLlblGs*M,XbWb %D#S%ErQ5.'>1Ue:'F3"TYU53ZH7][MTJ]hP'P`,OX-_k&*:aHV*bOLcFp=['+L6WW++caZNe#"h/S'>2)%%6rO-HF0 %$*HuPd`:Xn`hM3&ZpnihR1%Y`YjK7(1jYKNBRTK,"Y'R3\:PSpj#Rn`?2#LEELbNq!@-X`h!(P*-Nu#NA@hR#!meRC@KP%mKb8H& %+Fo"Nk?4lJO>`cpQD/jEnl,-/-I9)5$5hff+phcG^kVG#%@5J:QlCF1CqhJ]!P_8u8X=lIC#sp3\^5QOJTt;EEu9iN2E9,]\qKDs %oN=e81]K'6N&85N<*4S\@TbK6&$E""1$XR$N+nYk6)[hWVS/!N^N:fOm?ji\O^k7AE']&'k786H>\Sg93.[*=\ %ZE[6#fA6%@biL0=5qpVO`oG*'I-B3SCh&JF=F=9O3>rQ46D0s\*"XD-XXU0K?6Y(/h$A5$&>?`9.8u&,_p'Vu+UlV]'V_-n+^21, %]&+Tt4_.kOHg"BLfNYY:QL(:mc5tF"Z\S2>lll>mfgGT:fgC'kp<^#K:Qdl:q!CfO7Aah,N&2o7aRgoDQP8kU6)<+D&GZf:1Pfcs %lr.L-)0neoa<:$oXCVt-FW!SZg?HcVT-T'1n@?UnFf%s$658%J&B2%+6scug+elog8I?%1=&Oi&c=T`nU0a`H6udV^;1-=s,/\ui %nr$2,nu\K2LPQOb-&60^oLX(ZVKkIMps1IGaKNi3o':=Pi\'=(`H=1/ZIg=UW8E.RaW]Ya3rAK+bg^kTkiHi@N#CAZ?;Osp6^63c %&ES$p6q/Z)D06=cf"s''(R\s`h+1>06UYi0mmmp#4_F4%jq+LS4,9bHp!(Q$MLtFUEeq6,foSRcf&[J5;qOm:6c<Y8K?4h7&nA'^s?k9(ReN08F69o%k@\%5V=2LpeF]85e,*Y8ebZWB!AFUs.%+E_?niP!cV;&:Jj7&V2;i7%X!r %qA^]E3E^$Y6_ln#LBu:8P!c$022=`)b99dLF,6b[n!kAl]KV*AlG[Xh%T0;f7#BB-nBK_Y-bbn6bnKh`B+YTF9--r6Rn!V0#NcU! %a-\`m,SFf_,RRuYQ^CF1k3!@O50%K6\Au]Z:CppG,ST!t9I-H5T/`7[bB'D+16L_-6S_O6e7>;`2OVXbFid$k>r%PTJilUOb3P4I %dK>Yho^$+_rX`BsRE/o1-;&LFo\boTsnqNn\T2!p:2ap%_DYb)TYp9=/-IS4XL+^A=!b %oMVYVAGVZ?';YpZ'DZdm7"/DsO^"GO'\=WEf`rc9q%l[Nidp7Q&t*U[-.8#Mj:H=Q9S2Vf.0r_uW %U2jS)8@7NsF^qjJ,0Pg2DV^)8849Xe66]9c6R'o@PF\Q_JVeA<,C7Kh+u28Js7Ois %FA8^=nnQM51a4p)F^I?eNG.A)GGc%THo`d;kcT1aBgaVE7MOFO&VY@A7!a;#O]mrg`6d:l#-Q.(QeVkt%0Z%.%47)K&A%6Ok=`7t]>m"$`JQ:l8QH#"DU9$!%fDuqmPldCWrn((4EXL0G#?Bhs:n%pfm %PDF-3g6M&VbSpmI)R`.gm0CTQL`toI,scHjoNH&Cg!Hcd0"kdTU/lo)=I.!8#[W(d^gd\de:B&+5-7FU1PoS);p?suSaXu&AK3qR %H\X:F]*BkhA5;nQ"@+-_;rlhR]rq(Rfu_M'NrsP%aD#537G\)N1b?rYL9d0`_&tj,-ao1q#pOnHQ\mR"noL7'fl]gXG!'IYFOA7- %Zujb2]nCXHpTG^N"LP4q2W=jq68JYq'qF71-HVX^?q&H/+]a;S;87eh3:$@%:eXSo@&Bh\2@;0%el*@$DockhM@1cKm]g9k:!MeiPlr1Y(9o]2"=*IFo%-aP5.Q.i!RX]?N./i`k?kHLP/ltohU[R^V%.l %g++(J@[6"=Ss,0P^aV%7#)_m]YI->T64<\soQE(n%H.+I7P%K+=T^BLV>uHo))BL4Zc$!?KSEQ*j_a?PAMD2360sH9O%9EV9c( %beB,=lOg*$m].RDC\8+I1st`PMS?T2dDD$[VeSF3_FPYZUS<]5[lK=u%;eX+/9i$n8k;=s=u$]t4_&'B>'Ve??Z`/8ZTW4:fYlHl %@B%faXY"*6fVRf*CteGj1d;1^Jloc2OH+&p6>U(lLeLJ)OObChl4-nI3m(`,.%nX7JO;[4"XH@C5kZ2#Klp.OfKk?,*G0e/[bO%b %LqJj]qZCXs>V8[E)X(ZL[*aA&^Or(unD,J\T %SnWA9nD@"U6p2Br%D;.F_2qY6@trK-#i^F@gilR-]fipZgY_nWc,hUPEE!R<+$c;I1Zi^^7=-X8.UiVIH,jiL!X*]Ujb[I_bqKhC %YHr7Lj&1`_O0-l&T%>;^&""JBFg4j*VJiBNi8&UVflK@q*\u`WREfqWe"!-::t))ag;5NY<"p`+'bhjr2$KVgX>cU>^l=tB(%1\> %6uG="*1a%FOH@Qf%9tA4TLOQ6R5T"cN&dcu:kM'GNcu@=U>`M+;#Gla79Auc.r,-17,X695Q68WhD*/,H-CBs6H#e?q$c+]9(QKkLq=IaMYIX#pAgW-b=-6>(1[Cln0=T3DbZ"?UI&6s*5SKt^WEQ.M1F %gSOt>-cM>Bo7bC-IT7$CK^ZAB6K4>eUW. %D.lk_X,>\+EbS\phqCigBn)AdeW1#f/on5OgkI\fK?UF5cr2V2Np(%J3$S!O?h/Il0EC-D0h+]ofo]K$"\K+^B&/YL]HGVJPOln@ %E^$7B_m2oCr$e"KM*MpG8F5d_VF[QUIM-&" %=1%%;`X]@=9TL_S*X%lNYM\F$HYi2eaA%]ijQh7'&JTVm:FUA;5So!!i`E1#V'_fAUI"T7F %=>i9o;^eaI'K2Fq\ejH=*Ee/qNumt5m\o%]Mt.EKL<08KfY1Bc;,'k`H`,J^n#nr^^"rSTj2q2)^!#`NB:T`U^Tmc:HiI&BlEqq0 %23l9I5*`dE5?Zq71BjA8Fq5@5[/OTm8!ENW@KIa2+jn(em81aC\?JlLal$Zp;A"S3+jDOsMTEH&67;@e9aR^4=XRgr0!`>^mG]Rf_@LPRqK.7>/^uI4LAp[D<^f_BY'V< %KH.,a6C[=,fReX#1K=>l[3<_T$UJa6/bWNp?/lJRM#=a*L5gc5ukJa#V!"R$qVZk/@6L(&5$^:*CEtM"K %$.A>3h&9KfFXR%1RT@$WWEuq3bT7r)JY&]m4SiaWmql#sZa(oLPWsS$$R4#[7kE"i9CXZGp]H1MI&/QfKor#&2unSYMdYR,0EZG+ %!_a&:@L&,"7]-mT[E)#Oc^bF^Bh<*ur2d279"jkt/T[=.rpcrEfa$/M3`0N5K!.]J+b:1F0H$UppX'6UM7*a+0Y$2m %JqHm'(0nU>"6C=s(I7q1%q6fH@T'G^q#o[iG`.ap)HAg75b*A_Eb@9-TY\>PIk'c=fS5+Z/bJM/+Nsj.VV9)# %cV,5Nj_Q5O9h@f(JPKA0+u<'I&CNck57p;4=*%_']WhI1k`M!"RTc`?6F]?Ui^Ut'E7h-tH,b8!J>ArZjZ@/ZFfAn-nP:1,-enhq %@/6N;pRm[aFBBBYFAH*@AXFkZXtMR;TeJ*WomJ"F5R\#I.hE!\$[G[4Ste#&C.0nbm\"AFeD5Yl]\q$.:odlc %,3BS9I&=i?1FDagt7k3(IP]GN(HA_K)7i46keK;&pJVf\PEHG.TF7f'MTi+]X$M7h00H=dn&77dc2\".1'I)DGeZZ^&T%^3p;$a3b2nB+>#m;U?a(4mmp'ch4FISL;U4Wc@i-M %n$2*KiQP/]TVWQ(%U7fMbWO);6g_>^3;L;TlQ%W\4iD1&YeFOokE5(-3(T(UN\`7A1$W+'a\KFDd^mYnHRcIT7"FAMTSLD_JjhIH:Q"?B!VTR\BbHHS; %_4(JL@DfQN\?op&@rgZ5a$"hF\4.NiCe4I9GM/2WBttD7qc4@PM^':(@,2n&abI)@E!R^e,>'X$WDJ@7%&QDjs4Mbf`T2%#J,$\X %mXa5aD6W8uG6.e3.NtZ&C+-],pQ+4>^QMhV[PkUq*dYA"k&*_GIokH(l&E](4`4##8a, %m-MUulklFVr<[7DH^G[ZP2gb0Y2XQd>s*\!..jZZ=%oo#R%-?0Js"8s_T,7UVmQi@e8j\g_U%QR3EFT:Rnd>@1d'LsmW(>"mGXN''Ydpu)NkP*$!c%=1\4KWf8Rn_ %Au;6N23XbtJnq6&rJ><%8kN>E):H^=AkY*F%;?8I4`IqpKV<7>bfLtE`(VTVBMSWRg]`h>K&__2O&^`!5J1<[4%QbpT0msnXSfo3_/;"Y^b>T+.&f@T4$!0QqLZ?6i;Ul-p %)-=0e'%]KD+O:D7hhkIaO1E$&AgcrXsLfoW%A5DJ-hO,j5V#X$Ht7p#'o#MK'7#"A[;_<[3$9qJ;eat7)k4rt!gY?e%%sPln22rbR\taU+/*\O,j9=%Ft*$H],LUc=2D;D(:@<_0b,\Wi"$.nR9rUO8SPKk+,bdpN.(mJ=9fn+[]F20#]cqVd/C'9fXnK*O`8b9T7PThrJaRshT7iRZNPtqrXnTS"K>!:*FA8Ca*d1J1NF("r %d2'YZ_pR&/r_1X#bg;9e$j_>=SIO57mIbea"*)b$n($%iTY]g?U;4Kp.`CG$Wo[fLU+5^AH@N@cJ]]q1Y1)F:W!\q/.&@_Tb;(*S %JuHrH:=G!Q)L.b^kos8c6SsUVI_>+_%=aYE2EHs*d3( %0D`]VI8Zj6Wl>586VZV1+&\0FK4^RkIS$l!Urro9L[22.T:<=5YSrN+e8.r'jG\'Q=#\:n(cI8F#(\qe'+C)0?dLDO@5=[W/nOT* %7tBB^"E\W.*KfR7F,lD4",cDaT:YobElt:MliQ,dmjtYRSH;7I,7>Zg$hqi.o?2q%=Z7WB60t;:'^1.h*CqO"&*>6a'bq.'@(4Y1Mq*U1tgl-)sJ;,1/72m9ZYCl,@J<[rqUc*G);sq4A5V;J1f==3_ss;\6k* %/OO1l'qX:HLUU'q'b5>X2>cjGUGMPsebjSJ^Ko*&=7b1saB6L_J@QAGqOK3O2rW$)?#N?Agp#\%s0q+iD>F2>/3cFk9/?K0icfu8 %QY65#Gc9Lk`pY25\#]>lC4C]r1V"??S0YNgNJ:V2q(\-dcrK'L`^,)gR0&f#2mZLo4l`MMW`ZG(J9:3V`=ss(\]F_#m8m/n?g(@0[UR;gZ]2*tbKP8g %j86cX8$@[5jm;Gc0F7S(Ch`tVG9s\s"npS&p%^q6oVVN$aK]Rf'uTdm!If@:3Fq>i/raq,V%nf]oS(9\:NZH_D\)?l"8lMQ!'pca %>X3JEhR'0PE;c]/%hQLXbm=M5PLj.](u#BNX(-W`Ds2b);(6&;qMUUYYM`YM4^$jZc1VN/()[&a`nTe/qjkcHhQKgursMt>k([rBF(ire7?b&X3Dp#CS-DY_3-J,c@K %dC]42EC5e-j"\Wb'WkSg"RI&fVDcVPnL7O!q5YFEs!n1/ohm(6p(>@'.(RY^Wc*+`_]Qjb^k(PjnfF>#F>#.X)-E\<:J4=`Hl3O]p(p`l'MT$,o^(SgqXKWJ^ZYF/Mi %>8+Z_gM^fIe#ie0mJ1[koQOSNE#H^_:Xe!G`4i.3EAUW\i1HgIKu6;<'[e'\_nFDJV"N![OF)]"_IsI^n1GTs!hj**Kf<@.$TRt& %]M.bcfXLQH4*HEZS0-6@L5Z^+pMsQ%j/QEnaC)hU:F>m+bGA+l$+X4N01D^A]2F!RU-snL>jJilOhVIf]OVm"X/?&7Sc9s %7^I#CA/Of-O)@.82k,F13/%S[.=REeTF^NaCh2&"+:`;tiQi?239Ca, %r3-SF^u0@S9XQifAKd(h5d^_D<%/^;%qLs68$s#k$6@f]L/js-$5Bp-\oG"M<).r;]pYl`K8=%jblI-5sGo7UQ29_:au<1k\-Uhhs"c+OCjmgp^*"^B/M6uLJ36Mc,<2V %=t2dH_5!,*%T@h:#@Xu"*[78ME_r9\i=(pJ2ju-K7"\r)!]gk3l]GR/:<\)mR;p#A8d+pl@MiHh-kJWJ1@,Mp)?W84hS@Aa %0#\AnP40@jpu-lsG^3^;$W$r^gr"'n-SX["':43X(>a?4/089@Q]W\_G(3i!A.\Y0n8Jct(;&17QG"iKO5"Q5YuSL8rgnL`>NnO^^WM9dU73r %;\\Xi.Y@I`(p]SU]VZ7rkMufpU\pY9@)3DQ$2-@&gDgW8+Zkf,`Ym5BU(C!Q7'QAO?lq`XB5DOIIpr@KS3Wd;gE>]7+;m7mhdHpQ %BUG8KkM6W!Uk3*HO2^'`WTYC?*'"@N5Q+Gq6#eqQ6I,ehj806e%.uZ7"q/a@@.sb:P_,nA7_qCR:n;.pHQ^co"-ML\OK@+;72+rW#8-O[(08<#>'$.%2?)PK6?&B<4*lBaBlZ"uR:Z %\Of\XE=7j(j1>(^in9B1=X$PJY[K-,G+%CrA>;0lD+/)4Sk"MYKdd;p:3"FC43DA,Z$6c6'LG %j1QLfr;+]TZ@WCAK.S31GprOo>;`?4:CftlrE@P.*pPU'QPJeIS^UQ>79Wln7rHA,@Ps=cZHRpZ^E2e:>%k$=p(^]?^%HfH\"fKX %[@/X3p2j7?o?Wo)`iac3o#des*TNT^M<3P7*b:!c8Wq/2K2aF]0npDf0ufU_Fi@lTY]^t#(_65)Nu]hT;8Rhp7Nb!1X+Hl'-\DPU %Hr(BM*6A-]QV/L.#=q::&KEs^%nrf6)Po,@TQm5X.7TqRmdMkdH(8^Q0gYl.G\D9;61G1E'kCeWN\'E"[UL60;NtjG^YG3sJPAVi %$rA+e:]eBEAGe6>9dnRWO^_,,\>:p"N6i=^#QM:P1 %Aq1(,r8jZ-:`tQl00bOHdQ.r7;rhqQ`DIu\^kE5HPYXTA`e=O,6s<9-M?b#k/puS-AmNIIJ%;WnKfB)]FRYXG8Of>'q$u=Q\Kq3+ %c(7>NHWV97OTZc?j*[L*S:gitG9B4a`XDf>JFi7E(I-hOrL>2h!?#qOPVaQdr?dWU!RjS+1:O!> %*))k,0br]Pj2;7T(N-MikeiP";k/)O?o!=)06%=S)%o;7jDh]N3-&%[`dLoDrc$aWQ(X0d3r]cse\6d%qq21rd#5fiCn)bi_3:OY7W<9a'56+^1PM;S/(+aK.!3YQLqW;TLh2?d(Y5_a`^K3qc %UZ[[Wn[C?22?'D\6h,*jop5QU^?pRAoe!kG^nt=_&.FB/V[rYf7#oFfL5UOse,A;nn;!bO9LI#<+R&fD1.!WZH1=*=]tjP6J=kKY %8jM0J0HWUWd"Eilsf(!=sO)W')hIFh!92pl)cb]eYG@G0#Oig-F]YBheJNf'U(G+8/2ne8^(m?jLo %DQ/&oR($2Bjf.o%;`gV$YQu42c@k8qph=@L4E)o6f3E7Zpsq>e;LO0Vkr&*k/,9^"N(Ydg %3n.O*5r8R?b5-8cdV:@>4+6;L_"/e7f309)K2EP)TDcf95B'I!1^V@QSfWJSkbiNUIn5?/aNch[d4S:)o^Z4'1n5SPqW;J#?6%V2 %Jp]GT&r,ZH\K;C;*&dZk!hPDP-P.6O&Hku;R2-YK&jaJC'0W5]o2LY1AO$nK;>U(q,cBtG?9d,G%ia&n1I*Y-++ZIC.$8%o.dR7l %'\#Ua.6f,3k'TQ[A_m^P!Bd/O1p3IDBf9g>[p3B:plFX;+8-Z#.s4I';9e;UM@C#ZAFLD.?oHO'pt;ILcDk %q-sQRf$O0U"hbgFXh<_[_.'hR]R^C:^Ar1!5`WHTNKrhH*\`HlIosMPp\I%uUV3W6T(g!u6HdbR4H6JCoti?[FcZOQ60e %K8Fcp`L9;7U,?*gkri^V\fT3+3.uM>\XZ=ObCZ$MgJV'W;Z+$6'-PpWX/=YP-nNr"U!;!IYh1DK]!g30dA6*u1GmF]pb[ucV:DngRH,"bJ.\K9&HlNM`poao`Q9$jLZF_Zb'`"h?^ %Xo!Y""gk.AeA>Z60Na`sLa2&Q'SH=Y(CTn6]D69l#6Si2:aKrdFF(P<_*2\C29T.*h7;rm"[u^Snl?3;h(Pu/V:BfBP(I%4$>k5g %Mc>Q_+jm5uLPBnGXq"mr@^R!iWpi+#oetML!/Te''A?pncbThE&uc1Ia][^jok!o?s\i>1KLD;Tp\jnmEIh]h8p)ZEeiL %[_2I7;'59GR%U/Ph;3IX2r5SO5B)C*,N/OFG!2EK7`UXTU^S(mUY0CcCgI=(Xd:,4I0Ip.^Y5[_l9h&km_IWm %*.stG%n/gY+.E;KI\tauKU"Ss'EuU,HFm*a,q@Q&;9O8Jp+G:s"KdCPl](&4>@DD;6YU/HJP?.ZM_F>^I!88lL;H(')Tmr9ekfOD %[@Dq2mc._7!q@^s(KH4CGd[8U(Rsf:]i#f/)dqQR;ZK1)Vlgds0CUYLqHnfJ,'/01nm<@)<][OK4-1sQOd8rpa-r=m8Q[0DN_-:9 %CIE@EBRF<1;F8@4N+]UuDAej]-:o.-s&'.(70V;eOW'1rB6QU,a5Q@.L82/[[K_$?W2nu85_M3c?LPtuTM0Qo0U]qf?&;W0EC`T("Uh8$=GY0e+-kDDt[`FL"PE3u*/K'?fSt$1U?l;uic3d#$s&?o[SjBiH=ZN>TXlWD4*&/0dMj5&WRHD/ %$__jMF(sDA8[a#*U%W,-0+EL.AP>nb?M5YLL`H0GkVQ*6Ic'LJbmP*fd\'.88Dma+4==([2%j/Y/l*p$dm- %MYR8Vesh4_,`E)s<4\(s$kJd^EQNRm,F8]`%]b09e4b`MG<@m,d9Q:24P9X6=tC.3!\:Fq82GBk\R.1;/b_.5RqL:ti104MhdEa(89n^YQuN=#2A#&mB?noI"8YsNrL`EC]ZQ!FU:H6C2`7_YW"GSOBiYFlX>'Jd'75;m %EEs,fd$a,@6#m"Zn67G(6"VD[fqeK15Lc+(D=)jQBpS-KT6jOL/(NkQ=OQ]#,W$rH)?PcA`\W')BR %]pQ^C9Oa>X['Y/7eOphBf"b2!oC_?rQ2YR+<=N0X$pmu$2&Qp-Kt'f/D)HO^Oiihg=q-!VP`.a7.PJD_G8Zh51J,>`N_14_i0H5R %d]0]*B@$gEW"1\@`a@.FVgK\$"]o,`c=Q2KZPGVAWT5n/ScGjIRj(]>\HHAMS26@5k*7IRhThEE3-0.Ia]a%;21uM\%:b/ValopT %eKEl<)Q\NS0VjWX(g.4Z4DUYF@$J%:#S\#qTpZ#(S$pP$&%PGJ7lqhrqYWI1=B9A`Up_cE5k5][9)kWZhnZO`K]uQl8R8=l4Ga]j %ZQ;B7(MY2rAJ1u@RZ&QD75Ve[?=L--1XTCh)4bQC-c^T;",tdZW8F#&r]EET7(OU$hWK_Uk8tPT_!sk^8+#PLfjE.5"j9PcHOB,' %T&,&b2]_/9Bad-YmEe8goRBV+/,bM-"0*0NdR,PIJ?Ns42fq*,H3^&sV[nC!ph`9&rSnC<$i]S@CIcqS[6Ee5+&8B/%c[cjD>+?dS#E^Yi]MHF!Y-AGjF70UP1A9<0V4GS9:Ng1=Figcb^qf40B#fhR$!c/F4t %?KJ,N'BI=(er(C_-V>56EFn5loN[F(Jq?\F*$tT6[lJdc*MR!fDm&P9m_rq0_oh?jFoAfncCc7f-"M#rU %NQE(oI-/I!]V),q!P!rn7e58)fB(3A^:qlT'!4V"dPEL'9slaQ;CIn9H0Gm3G\@E=eZEbmfMgQ@V4ZRT_HQ]0PM[[tb!Lcf)9n"UbH,IfD%tQ(>G`k%+,%lV,=RRpC&9_0n@;10QPO\O,D+H;]-h-=_U(.l3)2 %#$J.]2E>KO3d^tq;;&T.6G40.fro9SnEP"kQL!fgFCldO/^FBgO#rknTL-9'pji#PHfDI %RuH^H939\]3TTR]iE0_YbfYD:2jGD-T;_B+\Tj-ne'i_W9"e\(m.dr"#?^X\)8!4<1%bO0GF=N6`u9?2IV2=!)X'V".19R,V=364Y%5QGR*U^$c:"RHRRRMaH4E0a>e+isb-[-'I5J@&R6Mq&O7G!M&`qf*hQ;oD`9"@gHc-ebp+'4iuhR_FTC/EgPC/"r56T,j.h0QZ!,rNEKANUWj-)\n5?Y>1SpK' %.H_0GG>6^i-eN?#5g%`SWV? %!pHs@OcQc>@SaNA;`s*cI57)H06df%m^(f98EAQNp21LUlZnB.U;O23%jX`D8cI'#DS0n,o&$]TPQUnN^K70b.*n4))S,gu5;;E$%G\?f?HiCZ>n18%Up..nBk!EXQKm-b^"ST.HNa'%; %i[:[jG.80^kS#0a=L6;9lX?qk3q-D"-b%jp@j"Zr\jI);"_V$P#g_aYV:XZ:.4^H@0'579-Ut>E.\.mNMBD3\liKiWbJ=JZ;t/,# %H4jbVAnsOJXjMrbK@6QJP^*)Gb,D/=/6,oOM]#f@XrgGIJ9lUIK3X_Ti<6l?BQ4[fq+U0M,i?(R]eu."i %b7267pV*jdp;:k.B#R;6p8%dY#5Sm&/>_S.s6VHTVRXD\l`kEu[s %[N_,Sf@H-rVd6%g\^87#c4Y3oF724Q2ECO.*m\'4a>8qR+e0Lq^TC`CBRhXI`\:WSCfOjaj0hp.Z#PZE4jZW*rbMV83H]XHQ'^&o %B+^PNmWgJ=VQBGaot-2(\I>An4&4HmNdO)JTC4cK;q)7aF&sS?Uk4$:;c`baq>A=_Lu*:V-X'X8h!IBIE:Mln%.%W5.hO-8oJG*= %-Wc_hlsU13Aq3>(fh/+)aiAEf#C6aS13'IaipBptP$XCO?7;j5@=1tH]9tI:m.>^*UKD;@rK"u5@5XEn\AS6,_$ZTF&q3FQ(!#>5 %;*T)V\a>eHrjRR+Er6DG')`$LVP-l2TGQ!WZ;njci6sZ3Rr9DOInMRtV.-#Y(%c%+Gjfd=K107b-H"j4LFh=^)A]n#l=!kIm2]8j %jG?\%Da[G78502KKP1@6!VN6*;IDGO%RZs5GM;Pq.&osS"]Z^W&L:M^;=p.8(p'ubbY7Y('L"tA\._ud'SaO\>[1!t%m15'LnB&F %0i;9\i?_GlX'#uH1$C/$5qqamAdNUTDBM+`ZQkKV-%&-]nLYO[)K_9T=XN3/:/rPJaljDq/#H2&/#-U[MP3gc?<-^!F=mZ+9g#k+LcP"&Tb#ie[U0h5,9#[3,n6VaFfL.[].Ye_7h7S0#^j:NJ2[9?]b %U-Vdd&BfXs+WpNk'649gFc@K3Q`2,@#fEnahZ0CU8VSoh*IVDLchEYJ45M\Gi*QWQpVNn0W]?YM5Zh1B8/t+!h5RLH8IV*S/-S\? %#C$lgPG6^jn6h+7Hi(6-)>,osY$C/#aLO'e=VOVeU&o%p,VB*IZ?A+Cl4+au\E+*K6nXRQM3k1k08M73fH %pnjVk.AfEmM`;Re1_b+mafqC9omHK!WL'$$OhU%(BpjMHeqjF!,X*ZW3F"r24@4G6L9[jL=/ZI>10`F];eA#P/G2dMs0b$5V %M,+\]eSU_RlQtS\-/oM;[#Dm"XLQ&JaMN$*P=)NO-dVcnf5(Q_:;M^KSU@3bq# %J[kZ/O.aXTd0!dsm\[Su&p!aJ(fer*#7[\HmrH)Nek\aWD-kU8)'3$"UZ4`%/(K*E?U+^UKg5U/,QK\j%r\#8',Wc'G`c?oPr&^* %9=DCY/$;S+kU"/'MX'6RO-;#.[N??ocAl3C+`R'KJ0sG"NC>[r%DLi)`(S^->,-g'?W:lB1j[X$hA#JnaTk&!/a-+q#i.V7?Ife*M]DsBpORGb5eI/!2g79KP8oKCQCrFuPt87G4-Y[d %IF"YJ@XjQ"4Qj[`0c$8#h8=Z3"aTI%qh6Sq\ja?&/a9`s4FKEonp?@.8"4f>KbL8])DK"bn8+q,1CDB*SOKpq*8R/GfCQ2Wfl9)8 %eld%]FmY7t-<"in6"Al8KM1[UjMWeY"uU4mG/!iKWa/?9@2S^.&g+G-\"<(4eS+fjOkE6<$mbi5"EG*.2iKhUqgc[cSKL1CJ'@Y] %;kLEo4Rp)f6Co$Whfj^8n,UVrO:(Y>'/*DQ\CobiLd=/S2Lg)Ep3#"2H%bjk-![C#pTK\>HV\smoT+R;b[8I[V#HO9DSk%?f@Y+? %/taI)H<<6D$_\c,iNW?1>3+4tonQmkq94YbVqP8l9.rW/O<8[rc]XFe_ZC-KgNaoUpBJEdcj2juDpD-k!Gbk#T3/ZF3$u>jo4aYPeIG6([YRYgV7lr_ip%e=[q%(5&>.b@EmiT;C*pe3>,-e!O`,1$qK0NE.<',bNZg# %nZ`p\&(i`3PR[5EC9`-C@4Urt4\.eXC[nnZPAB@kbAaTtF>laX5`5%L(930u+iA`bn^?'f.PKFNe7cL85KjV(@CLL+!`3J6_X#N^:c))GeI0CT]'e0Wfl=O7aS)/\9=Xi/NTF)sPn?`G9(W9X+"lYDmPDTOCo%d90qfNbd.67=f[udVUmabJTMK`=q:e(g %SkgZ\Uh(4`QKX%a`;V;+%`"QO'A??&[SekmJ@.K\5V`#,nWH]EpH9Yj1QoM`^F""+Pl@re);W>(_j3)<$JkS=8Lc[^@FW6#;r^=fFDL4/ZkO"O$==e!YWt4YG %pgB5!of$A->Js+n,eZ$h^-n)]ZFK_m7]#$M:b,=0N2E<[ogYs(Gf3Au8oU7O/S@0'[aIf6iI]:'egt7k#bW5q2$(a4_l?:7gg!Mb %$Enl1>^p&OS13'u5':r=B??NI\u[(\c0:TDqRF.e#*PR7f'OcKM8n@C:SC,npOEg5c>O87QgQkpN6LJ:f(PWC*]Bd8i/e/2%`l"G %3B8Rp["j/8p#[%SYHLDN>8f]lZXpa3&!oRTbdpYd5qc)KPhTD8#-R(Y!CYtG_/!%'Jn;jPX_A(6cCK9#p4.otX4Fc=]4$e+'oVnE^?`lgD56gp@N:4/ %$=dMS`1R-9F4)iRJbIlQ_J?+KT'Nja:YA=d3g3Z!hJdHmMtbYYSRP$N6aG'Ack9l$qA/tRV]*ZOUp`@dO/E1Rnf%rqZ\&ZLcT5^Q %!>Qi"UYP1FPiJYh;3;V2nZ=qG9lqlGnJ^@k8-,,1`3I<4ec%,ro%?A;/PA9XLr8Ask#\N#n=OPfH6/&kfDn?pAn4DKJqQ7*MTHCI]@ %,Pg;n^j06Glo\\r(iW:-6uF*(G9HOg""(VMSOOlEZ_R;JI1Q!"7Qr_b4tokVh0BB?#C5o.e"&'0`dVnO_BLVG<),\\N:Bp?hes$\[B@m+4p+PR8!31\EY(q %,+5WB6P`Scn!t!Wm\jd1ZPSgM[9>6aOYYal$2m(\UE;c!>Kbb.Q@*\oVaV^oH89iRAX=hoDL&KGk6?A/&FL`e_XH,aQUWJ>Hk454 %Z(m`T/sVBEGRg]rL?a>kEsOO;T8-1D;kpuj*)d5R:IUJpmUM\hQ.f?K46b`Ihet*05-?YK0,d23ramn3iM04+Qa[a1)dtgkf3f&3 %8?t@IODW=e/"SPAd_=s\8=RM\V_+RL#g[!QA!rbDbm)1Gb;o@CqTYTHEpl:]`ef8:?tfc&raW\CB21#qnc'4aXQt*]>S`m2LB(.M %=G5s#0%H+Hk.a@b0rc60qq5R98f\uV,X0FZJe$P^.h5-A!8`Q:j@ccY#Z7pCqt(:$6gbM'Pg_e59-QZ4IJ%&/R\qalGe,c8RAr[I %hI+u"q$kn?YmHTTj?>]LfA?N;eR&eb`;ICMrnCh"HtEflVp/m/fZQaT,o!HCl@03A"0EF0jS#:#JIglpr!G3cmUQ>^=<>7"A#PJa %NXCR`lP)Mn-9L%%#P_]5Ts)#Q6)b:-7a]gE&W5G]YB?^]qfNI$?O,e1.eGuB^^%I`ef@D;)II"DaUs;8J^#k#]I>f7m"C(O9d&YH %!do%G_ma\0>\X)n=%$^5(`gp4I.1P-.1!u&hsfqVr9DCP-GJm:!tG6_K5#_ehkIk9s4P5WJ,aBAR((2$;6Wa(3-j^=n1PD/'].l; %'qTLGb5K$CR#I-QXrdEO]FBXN%8\&5j?dFi(9ms:eMsK8O'TM6H&c7(Fu:g?CRqVnBRKJq+Lf[O52nnrbuE^ %o6AQlIWcLTn)S,-*Z;PQh_2=C8]o"o,Y,QK%7! %3Po[1R1/gN$ak@XG[]`$!GA$#UBo7K)7ot"ndTr1:fE:rXs*%qX+. %FUbuGE%1#k4t`Y8XTradluTGM4-<7hC'gk1)-QruFSKd,aan^G-Jr3F0Fj"J#"/)5!-ECR0c9?$HUt&sQ'K8?2&[J/ceeq>,j[o[ %NoUO>YTq`UL#7Eu=blp)P>@d($cI.N&:EPi\o"YiN7Mmb?ufoK%;+DG2cqI^FKP(Z&Eph[i\)/8GDeD4,M-*X(e=kqqB2BE:ZNZ&c@e)"m`%ZdD/BT88dUtbNMTWm;(&5(LZ6T?/9)Bt5s%mtFm!"q'*X\Y0)OXSfjGFeNIOBc3H %6TX5N)DZ6.Sfqb&RLT)4GLB/5(uCl,.Ds3D %ina+W%_<,J::"LK5&\Z"nM!ft9\8pn0Xpn:L1TH-gT[i-$\n,de$icS`f!;RM*;bNRrlng9q/4Rqt0^3kfV]VNLl^&e*+!_;'UYB %Q9'pYp_>4s6h`LN0cF3.)\Y+jAk[)L^5\OpZXq@1 %LX"@l:I0'N]o/AP %]TIgAh:HA.l%nTK4K_\]k4pAqT/ZY!f4'OWiZP8,52TEnY(I1:S+lQt6LIc)9C1N(Yb_6XQDH9`Qs+6i\AQah]Lg;)EW9kN=NnN3 %_ljqlq3MZ]na.YnkDU`EIV[YH2TA4)TIp..jXKIho7`7_q%L.f8;7*^#H1Rs"Jd %Z$AgQB3V%Xp"H,NdMZp"%L@GYd,JSn@\UmGfn&fuE*2bI4L0B6t(i7=0C3 %ZJ+3nl%+7bhGim#[%F_odhSXqQ6$JT^5T,OTW6Oqj6gF?FVMQr4%I1M+$-":R4$&kB?Zh]0=l8gb7Ifi?!@Z3VTgDJ+=FXmCC8I8[pl^`09bfm_>AVQ,S"8klflMcfb1(bqo)PVk1feeaIXWheHKGg0])gdg^!0 %>Nse4]U`f]m%l4n7IQt`>54%f,3JJRRseXWBF=SkLZ4)m*n_4@f>mH;%k(o6pYGW.qsF)VbYL?ik5Mt8SbJKF%?nO_aZfOt%n+dZ %!psH_Or\)E(j>B;@I]XnMNqk)%=;>Y37c,*CM[!eFE#Ft/;<,(RgW#nEsoXDq09`JS_aE3*473m]5"V`NbiK"O9*BLOU6J#&e-5l&B1$p6VrqnVF7]F4'3o.K6q486S\'4hRf1)WaSd8tMp#G-c:q!E6&UskaG,=C*rOj'_O %/[F2KouR-L^*(2.0366k*[%Gd@gMhR'g=+n<%!7CWSr$fUio,h>AEi/:omdSKIWC3+S;+YhM5^.jB'u5:Z>f1<,%$7f$5W?OIO8, %T-H-/n"H+1igd\E6m?oO!SFKc6KD]7"]9M+T%-u7 %\EE9+'2LTCNqbb#*Q3:FF!\OL#Dn,G:t[2TfmYl"?ZDAE^"40aIUY+f=RSADbks)5^[9n.2q>ngSTe`8[Mq8to[O>`A;VRIad1al %8.M!X:!2tQSYlbiD3iTfg4hE-Qf$Ekd3Xo5u()>=N0XSMZGbYn-2?++#4 %HF)G*Be$ajXL3(4CLWT&LRaC[j1?J"RlQfgH/$g"/g'a\_tj2Wr%[*4mrnq&`"=X*4e[p'a`.hp.2e5tfG=GE8u@tmD!/e# %BeE7f3Z"!C]3S!m;@^`Kl1&VP.=HmXgTojihj5!$PH3JR:V5_&B9]@IlYjC-r:Qg`Bo_C2Ya;\EeK3GY<9$,(Xg:u2[Zn*ZmC[kt %*13Eu9?bhP>5N;of=o[1_nCts9^bnjmd:!&BY(rc`nn%ED_3'5B0Z<=rQTS+f=uBJ>6CMGVFKhVBmeH8_b--d8os!8H %ZTO1PUn_Yu2>k]\ieqPp6GC(oo)>oLnr9`3Xb*b0Dgg+US$p0.mV7O2GHl<9@^!6gqf2Y`3TuhOdr1Mmj(g1@n@3=*kFLO$*:)+O %M-=P.c$_`8d]J&Fns#T%+.lk,(?.o9"]-HXnA^4/$_o=e$>D8Gl %]F@+%M0DI;@!L""B!:[lrCs#%k^'?l9/h/=l$"3k>1N&P]q@Oj1hlfb)d^Q,1WoOGo0,A#H6kXBo`i`@f;Bii3dbO?f_k@$D*O]< %V>`Q)Qg?i^YK97l5*QrrrFiObk]_cP7Xsaj2[?&RI7Iof[!(*V?sP5/6de-n)EnT-gYoI0jqn9Erns^eInbt>R:pY8'Yan5qU>%E %4U0eU80#T3l,=;#4q?]9Zfn8LZh6>8P2&-_$jm]<;[WLuf[EMjFN( %=rO$"M.JHn=tW&/I!K;0LMa)^%=;FkI/`op9mQL!EfkTM:]$"$#5?_DRmsIQ\QQNQAY%pEoU,u65F#pBej+IMgSD=5g%Lq8@HXkR %_af"E8\QZ"e+UQhr_,4MDB9heX.!%d(5p`L6JnRD!i8M8/ARdJ$4eEb4B4+(*s97&5+G6?c5!jRO%@m5Zbbum"(h*F#_ltDkPjBT+X %;moRZZpN#)VO#O4n'%bSC@qkiBI'A?LP+3f$PpXPm6[=[IQ**P\rBlQqjP3f7dmRC2sj^N>JMkD3&mCSqfL4:PU=,L5Zdc3aOA9F %FcPZ:&tYoSS,763'&Fp$`RpA5^O?W6Eng=iJ+bc"da#m3nUVZ;M2`ag5s&d9\2jPVocB9W.I+V@6G@9?#0c*LSeir;K9S5ThDd3r %]hnQ0jk6nO2qui[Z0aH2S\Z&=9sS8ER@1pZ^Hq$'HRkY.GOKrodZ#4A^3m)IgMM&a"r+[BIa%Bu&MYflb`$_=r4[f5XQNXT@H;Mr %+kNE,g9,[aS8Pths*4\W)9oDi4,tUiopC/eR=e] %Zt!<7'H:m`+$TRBN<6Y@AdeT5AJ:8?E0[Xik**'[I&!1:;6eMDY@-.\7RA_BO?pE$(Qg%FDkUP)]^'XWInd\02(fY7%cLLeak?E:FH %22^-$p>U'fX8Yn-,R#,]8/_YsIXNH)YHrak8Y=KHmafrKgZ\X^-0_DfSUPW6NM^'ed]js;Dg.6K")KeC1^\8PegcqI>[M!nM('to %8Z'lsXQ#A06MDgGcZgAF*6D0?)`;QCFFOJ!%%aZ0['/66B[,d[RZP,Oi)bU)1j>&eYCsU/p#ra,ps]o3,:1`+YkVo1=@XX_Kr6R7 %fWq:EFQtN.=q6Ec_0BssZ;u\B5R(7jL5ft\[.JK?IPToRRDhi:Eo2GJLPl@mYSdHG^9e"lo3`(49 %l<<$&b"qp-EE)J-c;HS2qF-,$Tq\q3He^>Oa0tH@jR#Ih/Gd=L`JbDndsej8i]&:V]T[K_[u,)g=o(=7o$d>L,VF?lk1HTnK/+sk %rO$Q[MMb3m*Ba:npf(m/cLZl'V<V,78/BmQ&r<5D&5ZeS\T_OHG.l"9UZ1qdsiE %f=UpThd10@b+YB@aI'e$1sFn'2P8nG>0Gjl%GM*aS)XK521Q%Z1BpXO(IUigc>o-b^._E86n8E(cF?,g\t5\'5%5Q\DW(*.DCFDs %^XL:GVC.`VU.,M-#UOhIU#3 %GQXO3[G5gZ6qTZ-/@[:g87Y69S;#)#qW?q1':oh^+;`Kn*6?8biqu6-4HQ1tFZK#QLkD*6&a_"[#L?ddaF!a06sd\@eA+.qTs/t( %M9CEMf&)Mu)3HpINV[ko!`$S%#Qc>76=gL()3:Vt<#J5X*q.ET(3"@1X$So?GSu$jk\Of`D]7g@=]2MMSn!>sHt?#H*(08Mq8s`mFE&!!j\/=#"6$u"YJJF,Ar'^k,((uBoeg:U"[_+IfkEj]U-A$c+i %R_d4YS3q4pNnljLh[W,ajM\>p4dt@>:q,>LC+TkKHnNq@Z-hk8i7jO<+1A8?Y[[i;31Gs;(\7_ZT>]NGR%+-I"tFDMm%b+Q\%3/@ %I&LnieI(\fReC7UpBe/,P+VN/Hu=.V&5#FCM2cpCJOgOiB?/(K$4]+j7(Da=!:d#?k(1pJK:rGNCBC6rqA3B\_IL"3AZESi62:RU+RstIM`&TU)f?@:ZlVDl=6Uee8;Q7H/EToAn#\Y[LnlK]V&H;YKB, %_2U,'\>BKaDIk&?XI<014*K]Xnfu2RY*]kLRm]raR47,bJ(R&>-IRqZNR#C`ZX])=;neIZ&,i#P*KjQH@u2GSd7RC]%f+6\nsDY: %L=aSD,c;!6PHbN6q4Ulg!04=%o[GFBrafA=3Np_PB("YM.oE;lH-^_Gbs]C$oAt"U:;%Jeb-/scUjob$oWak(O"f:t0?D9h;<[K, %Seu%`W]pbt#B,XGih!HT/ul@3NlZ8fqY44s:kL2HZXSWWbsP4OBk#+cLB>'\HoQsk:<#cl?j#(_:$=l/5ur(KmiKmlomnX%@k;n= %O[bYL)Q$eJJgoms%\7]QR]d=K@0fEL?Wl!Z6T`ZR-6l1YNMh,5\4!@o9R7PPYuQ#,Jd]:.Dlon#LSO %MpIQHaHK;9>rT;o(6T1NQQOEs!?lom:YLUVbSe_+G]J_5;1q=L\!V.;,fr_t.F#Z#j&8c!8W4[%r(C1HZAePF_Ki$-BbIR%gbd-Z %nh^["R$1KV[0OS&L7BT/.Tijc/,WA1.ki\2S_%D3=Wlq(9tcab2*UOsT7WW:5gr]G_<`RipDA*f1F*G\1*fKj1C2G46>UofkIHOX %SKsaAU400P9TBOW,#2T]blhe35DBU8p*6DKDmN7&%GLt40p'gROb %G-4VLTP7M>#!J7CZguOG*@7qf8SqlGViXNWUOXa@m`-D&s1hgrmdu^Ni%(l/m%6XjH0_34V!$i]\L%K)IRJ:WY9RiOT?NaXaAYELII@>467H[h1'M-ek61k[0]E7Y4.)YVF3E\[5QgsMRkaS#"$a&E;K %jrk.JE=5//8%D_kG4UZIR9l`c"iR\;MiA':#+QKn93B3$dA<57!!?'Jju&4*,fPGurVK'0AO`sAkGJX0PO(F3%hb3&D[dA43_cVB %)b9%_Qi_/:";5jPKEWc`8!:#[]<;b=YGO1m4L5\6M")h@%;6OY@+K&/EkG[(D.hBl[%$2kL>Z/Y,ZB@OCJ!])PT@UQ]3B7\,@&Zl %FD9b"?)r\9@O]n0p,i-aV,dX@P[+3fDQ-IhJHIbk47+#AtBP"+e\@)C&@\p#"ft.Yd1!omG`J(aQi.JBVH*fF3Ybm>C3%I9EoNAJoW%bpYisHIXD)q#jhp6A8%tO-jH@6j%=#.*qi5tg %LKJ+pF"o?CeXt0`]n9!*mAma%n2_n@qs#ePE4.k]#$8j9?NkoM^A@f?:MY-8)4BF1<"7LC:>UgTnF5&\n:iQ"eHlLo-0T0D#Z!s: %4,<-]);Z'YZV\[Ff^V>)T`I4?M@So/?H8:d$Vm7YQshS>d1p*10@/?[a$ZI[EU3uTrd6g+E0`W7A?!mioN=l[bGU"QGSd&)m+;se %O_9%Je8haFn"E]ghrNaeCK*Q+9$lH]>jV2".ta`J]r>)A4a^^F`Mu11"DK0SS=;=!)=t4UAKjB`F,>APV>J%tSF&\d5RkX>ZMUaV^(*2G7#bOa.s"AX)uFCEJ>n9%]i;ogR=$rK2H0?hBeI %;(m1*c@Fe^S;t/XA:ls7!F#J5kn.6X)J0EL\EFmmmA8uYoGb8dOGf0SQAq?U` %?!dq\:]V6%R2qQR9eHV`+7Fi)f@HC0PA9k(\Z40+[J].q%2]?CXVjt3%I;s[[OJ"@=dcB0Ep-\dCt"("@&r9fXAlF)k;PlI-rY97 %4bp4_VP5I0W'A_=UT%3=AGo[%GiDJ=5FHMFAeh\3/1hEB-j.($r*$Cus"/S87cpFb`Qb?]XL2"/kt/E]kf?mo@kf4;Eju$Sp8ui5.Tk %5iS(ENaUg%eW++9MU7-FNCn?7X6('eF;jYTl6ha.U$KH!.4h$F;6K6g7O:NC,cU2W'4XMW&u@c2U1(Ou0kIi6.d8LRr\=Sa6 %+qOAh%p'I+D(:kSB4Un;1gD]QnfUKl`PY[kRo#5gZ<'A=d;]%E2PHjR\=Pi\kErP*LTC9aji9hNkXGj"o3`FM+,K&2Pn#=!fZfU[ %kc7HsJGGpom@[Y'/-Mn@7-TZY.@Q]$Qj#W9O6P9'Ac[7YIXpPu"!H;0dCS,^.dY`=-tAYbq-';nu07V-JGM[?P/YaAmh3-!!6:Zn-E5GK7,<@(G+X[tb1F %EfEj4)D(.;fb6]TK*EhK\S_fb^-u@R*ZD-Y]^_UZK-g(uDDY/p93hQ-4u:f7,A?QYHXXpl2;1&4lZ %??O8(^OOFte9\e9*b32G-eDXIrYY!9s,*3Y\T:K3,dD$^P&'^o`Rn`!+=iZ>f/\ %@4l__$U1N"i8.MoJE7Bu)I;k(\`j;.;T>e?.;[@pe9J:j>nNkZX\Wg>&ZkMgq,qVDqJuQ:&'aq'3+A4C8BQ6h%7`lMCVMSoHqL_C %Z3SJBT!%sic&*si0[FC6`;.*:'#>X*roN:,Y.ImB@O7:Of\rs<)6\di$af %@#3jT/Ljk_31]0^W*m09:8Io"<3R>hR#/k$M$fQL$?GLAW*g&S])aB`%MPq`Z0P6&EaW,(b&("lEj%2;]-Sq/%MPqMg_ppO#A'4EgU7f]q[eY"j?R*a,?1le-CDOOi+AoqNB8;5L^KFe=#)R5 %5=>[u@=g/g$$dR,I*#]1't0Z!Tu_d(PZL;=dD_G^MrF)a>MMrS%O^@]Wn_,N<,jKYDE$'&G8%%'$,X@G(3^Fm@uE4:"apm%X-t)E %5M90;DIRaO,aa^pmj=>Daa_Jo==r07&ao<^G8'S-b$p:44n%AcD"7>U92EsSQVYdqDIM+L0"r<0XEYMfQ5VVjM`E'7-0X@3Z,OqT %>sA=sC;L`ZBAg1jM_@S2T&.J3*aO.R[TN(d%Ma)j>Yio?Ic?R,[A&RtMA=Z\c(A%rORt1o(V;<>(@*M9\k-!K[TG;#XU/9\)biMO %0"r<0HrDl5if4!F<`BaDfQApW=;AZS-*#RM/_43Y0"r<0$u_QE'O?)H[eT,nSJP^mPp9CBFReJFiX9c]ja,3]Mfi*oM_Ct4AUG;g %Mj:8=_A6L9i4f+'/."5nZHJ'SZ,K5EfF)FS8PaNN?%c'emn!C3(0DTPI"G#>=P77&AX&$%=*>gI1,IN074G;('tXgJr$.`AArO#" %SG3OIao\#!N)IAI7TnbsI6YXuCW2/1%&5AqpK>R@08^BX!T[k_uNXRi9dSQpqm(1Nh5'^+kfc2uEs\sdS2XKs`"q__JgKis*KA"D`, %:VK!C=YN^aCU)/g0.g5_f^5ogJcjS,IN@!B3WoCtYg+`]_qYgh/3%%n0>ooDc7/]!XL"3KIaSd!Z=WQ$DJ#Det\7T<`+KASnS\c:ac0D6>nX[N]_)89gRMB^K^)5J' %,0B^S7h`p"i0r1nc-lL-YJiB"URH=kgYeON;9^6G^Bq&G*S&B.#(DMH<_#$*k/Mn(CK?K_<::O8!8";33J+8?emEldCK`%[Y$&uWe+l^@1rg?@Ap(QHDM2e+-Vf%AgeVn6lDWhe,9Si!Ff`2CWYb-pk1Fj_b&\WUS7FUVBd;cEYHkJB %F=;3Rs,BKRbe9@MY.Ug]]Y:mO2P0qZB34N041dcX[:2)@5_s?cZR^7+SQuffI\WH>\Jsr&66tB!B34LFOK@XU#c5'ULppF;)ko45 %j`_7ViP\$gQdEK/ZTVL",sguRJ9d/7 %IP#7TdLaK*JDE>F1=+faH)@nG?!4#%,5f/%6%mdn6W-4?=l1lG$X'lP8_A&qGK7ZF>*[Q]6moHKJ3qh-_kE@%r %=a<*P<=G*P6hP(?A8Mp[p.M,U2rJCZT_p8MADkS<&G6'uC1La[p5*]61L!g8ZWC[b`QPQ)GmR3&M?c8bYDUKGAUgTan+_`h@.;L? %TSIf??2L#'$C'V,K#c69I\+)\T#NIdRq(Bna:KNopiX:5Me?`=*@'.+a`p3S:mlf89kBaSq/RTeokgbCDD/<-<$\X0YoKYqnPl:WX %AblB]`OW28rV/1hbQ'7g>rj8\gYo6@48LWoG&2BpDENl@*R78/)qebDoF>N1h9e3Ss7dV[9"Uk-+RT`liN2\(I`Wt@oLJA=LfE'q %&?IlI)SI+D7d9PiQQq\X)%O3?LIn,9Fc4cR9Ud8n[VYq@m(@eEQ#:cl.)A!]j3bkf+<_m04%n>jB:=cofpfTMHLh'-Iis/d+),Ar %#9N.]+@pl*f=AK?\)hk#O0h)@nQ0o9T?M?f.#'!kek^*TH7'UZ9Ql8.7]EmIR@p$0f2c$4>+l[)=AUEK_p!kFm`WEr&D(SA?ol?" %`+YfW5+)jm)l:"Mlk-N8Xm!6g]FWos#*3l1\8IAGnY)16j*lEP/^o4\g\eY^>[GBTBff_&>G7@:ceVDjls*iQFR+%t6_Ka!:BbU> %)C9WI@!:/*c%Gn(G%3]EFu,b/":;dkRHJpC`N?@!)]H*)]W4%r&RJ3+R"k*:oM4K,5 %a]"bs)VEk`E;OcajRC@IMh4\e`Q2HnIi4#NlE=N6(YBP-pe0)gN]i66*qa4(6/R*_F,+$iWH4j1FnicI?--EWrFq+R-jb6%ZbIoa %6Wtujb>QXBrd=r[(<5f8R`:S6$W^"D,I-SO"3*;rCF*\.?FQQIf(V`1[0BD65spaI^%2ManK9TcfZjKNgX8!Qkf %ff1\ip!KV>1X@KKC4[i19^pNWI_=!!a,g?9>WjjWY[t-dIAL>cOlAr-"?N=m4fH:%=*ID[3d>:#I<@sI]QHSZok]h^J1]+JT4N%;(;)X8AEpDD[S4:l#3_0elQKA$a+m+Fc!6JUOI20jn\r,A0M7lT/K2cS[G=bo2KLL)K-U3f$>rZ %/&8NN`E:3QFCFoTdTS917U#bSeY"dO=juTB`d72UlNk7FemRRZD[ckC&(^=0rL4G=2^]ocf`RJ'.12=34igNXU>J^W;n3*trTs3V %r5Zu2FaM%&WH)`m7odR44mJ&rHr,%[nib1.]SYP`(GAoC8^[=S?LSo'No5+_:,T)NU`J%dqE!BFXiZNthP? %o?+\iSrqeUNc.O]!RECpcYS+hB4?lEfs:p34:u<@Q^,Em\?ho_i.Y?4S7gO.dsM;n*G6@2_26uFdiYS-WgcMRSDF%r&\6-[eduVU %;%fM[.B1oj;i,niF*q9f[.17"h!K7A8/cH,ad4C&m`cZclgoCsnI5HV/R%8m@nm(0Ui\7q@,`BRQ+g`[pb_R[Z;O#;h$l\V@iJ)' %LQO#?BahbPOOU-,iUcP8^\#NI`$2_0b/"@I1'[c& %PE,;cjW'WZ1il^43ujO`\l(KdSA$KtY4=,oMZ!#tbdE0m0p0i-ZFU\">/ITP"tClM!7%r[`0\t8fM:DkSU %r@\++/H$jSYE,7=o)Ab/g?FhqhbBPEMGOrB+ET1A[V*)!Li=rYbB)4WJ&FNQHjp_QBZYAuK=LD#$18^!Xr'cY6ls;?GLFbOC>Uu> %)@=1Vn;Q2q)%/n%?!KBQoo#C8+$Z.*S"J?3j"TDV-Q9\N%7EC*Qi"rW[],pdqu"a"iU!RO6BA-,'$j@N5lB`P:t`Jk2&8Z#ZF-qO %J$D6;H\$Nlr7.D(,(FoiqX_o0OMc`uJ'q!T#BKb7;+RNmL?8F=qolr>T<*G=`!7kA9ek*%41p"9CAAT?c1CYMQ$WCkcu\Ijn1L9t %pZUT;b`_bm'TakXS(2R#\A&b?[ZDNe^cH,3*!8.]^PJjq4sBrT;fZnIbL7m=l>"7o6jl/ll6Ae/&RR6jOHi5RClu(_PB$;@f8]MA %b<+VBJ'rc62`tsTHKBi9[D_g^__9XD9]on?2O[6-J^6O8;69K6LV9GX=+TjCYkK$bECK7^+'ujS(=LI4!Q6Md9JNuB&)Iu#rkNU, %Z5!99n.?$lhbUaED82VRV`QHPUm&R1[pNTg]h0"jRk^tko>QIf2*[*B:pBS;.m52b03g]d57![Ap?nO`qG`pQ?.`\s2*DK'8kc8" %kT3!0X?!!K4c7iLU.8`"VfV5dnBhZnK8$`E=%2GB,j16GeW^o9tRtkT.b:T_0KD[atLK=[Vohh`ZVG(=592VFm7ij %hk)\^XXiaWicZs+2Zh6_#Gim-86Qir3>_NDXX:Cc'IdPk#PTiSAk!aIgTc4nkpLk1uK %9Q&3s2pFs58n-l3gE(K9_Z\ajSPD'u]heTR/9j6*J;ZB(\gI[;Maj=`Y5.qhV#`\XJV)c5e+i79 %"<5=)S-HJql9TAqRD!](RmMT5<%<]*At8"%Wp[a8Y+:!&[F]/ucsS>u^r`9JYLethn7!hPnI5"dOA?WVot,gJAcA77s!"P$WZVQp %#&!(Ps6WLAd/q+\%QuQ8niu$gZN[Q6nHjB<7e!%H^l=V-6mjr=S#+6R'F?u5m^^jq9XYC<-7C*9XW[L6j[p%D#ACTF%cfDLRc!X9 %Q/]Ic%3fB3YGa.NY8"aBrc%59Xu+T]]c6u4_7KP7G<1SqH;"L(b(#9'?@KWdo^I*7X_Rp$oG*aZMCo\Brd6]E+kl>o\R"-!^u%ND %QubBK'!Fin[L.:K%ai;dasNaKMOdpqKNqX]iuT+iDY">DL?(Ba**uO8+Bh?[S:[;Yqsp6;H_T'Mkq+5BV.KoVkq$n$C3[X]\M*dY %4O[*74nD?4^bpGkF'3`c_"0/l(mLX&kHbW4B;tr7'#3W$Ili#4m:83<1,ZD!G[W-&=8I5m'&*U`,8kr>X0N,'s"S_Ja7<0($)bNc %KjO`C4aC=*3']ns4k[+EF)Ugt-+%%THGqa67O.h8H%b=tPS/lN*+=8#EeJ^,S %ljER,LN@Q06EeVHi*j(0]HR2t\6]'lP#dKcp`6<\d]`[XLiTs\;7n:dSl30? %S3To@fD7_-c;X5/@NP$0T<$A`S+1H!r+k`/_[k0S2s:J969=a5;06(C6TdibQ?5];[RBT=u\Br]B&/2]U2;tSX'6serE6iW&tnfGJd`FkCRo$#@B,puktO3ii#[.K:Fe5D<7?fXLI%. %:qY";QU:W>#],oC!/kZq"@q>6c0uKR6YChE1ch-mkRGeDXO0!+D`4--nKiiR*a)G9W@/2t`,clKeG@uZpo/E&=!K]VX5 %I\p98A6?"&b6.dYHE!7>b6S&K$S\9[jmkm-Hrs"Qdn?J2D;13J %_IMX5,d9C:7MbR\(6[c7n4Pi$kB"NZ0X)F'OchU:NsO2C'a#j/@$-/Wp%_f)"g`F83Y5q6>]tD5cL7C%C'%2qZR*SL6C#1M(oQT1 %-@,>kEIsX_M?+4/9R++W0Z4/LU/jrJ#DrG=Y@XM?rN]1N7hP#O90Vk %(FR-SN2cgpVettT@6\#rC`]jbV#KdI)hs!Dms&BkHQn^j",SbqSBdR5_/ecEFC3mh.+_V2XL$JnJZM00E6(9YPnAs6Ef$=N1c>j_ %*Q'5N`Hh(+?)**oj=Fp^#S&f?=5#fGpTC'7K#G!4mu,/)^EEH!bUqpE.]XkZo1NrJ,-:"$P-2 %9N18$D^ouNSaq>`\#5AcI2bCMoWpRHYB?Y@VZ,]Rb@01U3:F'E=WF49/Rf@"GW&/AL&hgUaF<]e>otO.(5ID!#MDV!lnY%JcnNHR %CD]/=Pl>X^BDVi4I@-ct?r[2#;qla%!9tXR!XB#3jt.=)5RUkd!16MF"c%6fUoj*j!,KY=LD_h28N6tC'$iBuZKV/'HupRh9sE$& %.nY8fd3&/$]CO5*lm4Koa?@$HFY?,T9G3"7\QkSVftiWMSV8K$&J/_`I37q@(LG*M[idiI^69GMZdMM/@3f!7c0Dqq %A%gjYDo+I?*5p>q:=OXbO\LprLB%2uh'5-heOj%>Cg6-C;.'Q&*/9jsu!fh"cVg/a&iH'G=WphT5^TZFBVT5hl34RMPo0b0bk0)$a'-N0`8W_m)ek%O8$3 %JVFh"MaZouLYjr4Gmq(8R<#l,biIa];1_<mj_j!2S5U,:5Fo$ %eEBmU`!.)k2=\R1Je:%hL(W*8$GoK[08^)60f96A6&,1tV)&coj(G%*e0)[6)+[bL59XKbnWtO+QD\Bep'5YLH:,GeDMu//?IfbCB?Y"Ml5PM3BZ8nY %D_0'NMCBZ9Z?RGRQ,pk%PLX_\$"M/KXJ5sPshmY%(Y]kAY)jS+kHmXj,cKb\c=s`?sr!]J]WTq,/16pf'1J,rK(6L.3VlfFE!1g'UYW&T),f7OgACV5f&)U8pHIZ<1)Bj\b_\684 %0iq5<:C_cDlW@Qi*/)'Q&YjX'=iV0i\)=V>dd,+WHq+&SMH?V#+7n_ZA;KR)D8?.p/SO)7'pPHM)k@5dK3?:S)u-A]*aqN %ad_3:8iI$!NKU`5c!<43\b;3n4@1/rq8=j9*=qX28W\9E:T_OZG,D4t[k>?pi`iGD\#sAHeFHi&O._-UG+N=Cft[etou8o>],<[n]E"F&;)_:_PjT!VL9cKdqQ;Opi6DrRU(UP$--]q5m:FJ2_q?heJU+Z-b?1\$?7;9Y:O4XII=LO?oXC %Kb,26f[9Y>.O"en-E'4d%5Q"\]0ddQ)@Ph-$ZZegiMLgBn=Dm8at;BJI@SaMR>jRSj2Y@0"ZReeNL64m@ua\s8dVag#)tZsfHA)+ %kP]4QJSdWhh"Z.,"5?NBEfT.:Z$*DKXu8cBDR=<8f!%eHO04D=pe7#ZhbgpJRuQj#/1J0*2l<_)@)C*S+8N!#GNp_%ZGf98[@GjT %'4QS&KJ)F8`!.)9qEkNS@Er)OD5M.%)C^VmcI\XF5c*r(GPgu*UmL8:9[gQD9XB.p)k!REkF"$)T]h.Y %jdG&F[UbgBGpXcdWsiK[]0FLpcf6[[dZjkbDto,."JaB.mo&@WE,FPWFHLB=0A_bAh5D(MD%RQpp?t+G#UEWNKHeY4fJ)8*4sgkmSAJT(+36no$o`$@RYaZILsV-&AcqKq%$"#;bm-GYlo"2J3a6"$dp?s`#^U;pViJD<[b&]JI>S+g"3ZP65^-\W$n-)(VuS-jXAnPboRf(J%lE!O.#p+tE+3P^OuLU<7^!.AH)nTJ*K[oj'9!cScG3_1k;*m2hW]+%'2(+^p-lB6i]s=TV3C4u:+hb:IiPh'2?_0$O6:BNZ\Iadk[_^?:/&'SpsO.C %VH4NJ!!9dD81,=egpnFQ6pmq7L4F4rdRD\@"N5;skk3_@#hgM2!BM;'T:tJHD04?i\aaJdG#6f/ %iJuB76AW40fJC^oNqf&Zs#Cs*_`/M)UG541"C6R$@]>\c._$bAJ(oT=/CAHP`2>06EMNi_&?(f2=L2n&n?+C1uM^IYsF-+PVY2O\MSX*0HL0qA5t<(9/;UsVlbWFZ+i+]G@LQRWp,\!rM(>`j(+Tf<.a%s^H"<=\E%%YcG>t6 %`/fr!>[OXk92XZAc50)XEj1=P'(+X[!%H"/BNm^FO?`lD;M@s,P(W]ZPk\XS7^WgZRnmLjDn7bJ!>V;7@?m[Kd %=S6^=f_?M]P;+u?lMNm'K?V8FRar@SC!lCBrW!LA4bAU`7hfP\Yg(=Zt!e04O5_=;LuM^A]G?/3r48bl3Z0,l']?BppYlC=FiNXFi7U%oI;fO %&cG'Nn7jl5&UUY-T-^]tZ%c(3%Z9L&JJ]bRS0%+Y3+;-,O9+^+)MH`c_dZ)gWaOK.CDKM^-\>2XM@a$qR)DQkik/p@'`qUeh)[q' %1(RF!H*Fg;:3$j"0sK7V]`Z*TEU]R>S!3!C3DSnMEOETdBOB'>j`nGNSE`(b]^1Z_+%A*6glDQ;.Cj3q*j;%o]GVctV7HcS(,Jt? %b)$'M0B[JJ1`I4",'/F9oKtUDbtoBo-G[5i%F_R='.Q[hh_-YJ-"8%W@iAWYKM#&.V0U\2*^aqCR?4>;W7Y@!^8XiARL,_aBTS5#*NqoM8TS4D6^)4>p#ZD_qklDUb]7r;N;6>`J`-A.V^C:/QVO]u7M1/[&rXjXMW!;$KIDQ#6\l1, %B_8;9iWp!7HEmk6jigR),:#K@FN:)uaK&>Q&PG0qMJ$k,g[LVAWDq8j4V$(fPg:W$m5[1aaPhpbM7-8gn\m957%l+g.2aPt+]u3U+\sSp2H4Q.)'8tI1??R7p$[.tr/2q6s:4ZbY:]r/?#]'oZdJ=MALhA"nrsLo@/gQ=CM'$/N.fY?DQqG$:YUa7M43B2%ebs'YdT94K;FD= %,LfUJVIX3+8#MRJ*4Y:mC7^PU=/KV#KVO[_[\a5S#.e8Rrn1. %s3QC0E"m&?2,oJt`bZ_d)56BB/EPhGMr9Y.&`D;\2]]_gZ?G_Kr>>n->3VSA'@n[69tq=5#r*^*VI+Q-qTdqZK\I@YUgGM,p>g* %".CT%UCbA#?lhLW&ZZQB)(,X5p*H\#HrSD-We2+5a(i=&%dh#,FID@4QnlE.9J)J"F*E#4pS[236\>"\qSe3UgOnB3*mpUjj1]tf^8UjsChljtuV4CFICh#4$d61hH/oA?Z.<;Ja!VNVM4_jKiO %(mTrmV(R,Os*E"t^>Q\*NBU6>V_a1lT$1,XM^"(KJpULIQY=Pi*ZVqMc'42NUN\!HosRTf\icKXT9RiLn>S7d]1$6nusN %U2C8Im>J!^fnj0A#:(PnU[n=MCR[kYY]"7L-"3iQ0W!XoLEa(C-UK;M/lErpJ94%=IdBZM2 %[]LGnU)nFe$BIdDjmC$<0hiA+KMK+'Y^c)Wem'=&Fb/gh>qX.pabmU-1NW(os4i5QKZFO?kGY"-a&iq*MJVpXdXt$V(%6ea1O2iC %*;I7:`VK@#(R)Yd#f2o)XVf68r#cT_@16,!-#ooArk/PP8"(fmVHT(lE9="CPG(j01JfK](;JIhm-Yh]_Y %N0\j5d]8ATM0dda6&+LP5;c*/168E`;6;OMFLI&H:=M:c&HG2-=rT7b%9'CZPF5$e6lZ:QF.kNYCZ-:pWtm*%-$[Oc"j-nhW%r>KoJlnX4">C>).THk9PtV*Gf'0XBoZq_cRro@RiK %V5EO8pG5l>pWJJP/)G-?CkN5R^^^WsfYnaqPX,'h/fs@dHE]qrY]J0oa)Ook[DZ1!m&R`@F-[tHGsUS<,JLkb)D(GN.*Fs-7ORDE %K^PYS+DA$"KPoBlOc>go.Xk()M2D\!XB&9BWUb([^"2BXmLHP\,TmTP-%?NnonNW>;()+aHN;2Ml %KJ6m]-^!OBCSZ%=Fq,S)&pOjd`=n@5Q^oSg7X>#3ZT-D:Pc^K*#*u;j;kT6?"bsdA#A0[+!+XSq>t@AQ15o!8*Z9;>l %G-no\381Ylnf[Lmo^G'85.]cc70k3&WH5OK'/Q?0X5$`MZoq16;73NpR#/@tEOO8\(9/1k'a<8+#A1g]Ati*ni]Pl`6letAdS(5L %U?6.4ZcgO01I8<0-]YW/(U@HN":%sV0H_L;(t5ke=3SV&]KVSnZ#XAp=CB0i\T/bd[ut9IK/#up+7`j5/dEraN$a+fX(?(21!kke %J$b@lPKjk2?U)LTB_;1S39O#h)hVfbQ!g3(5KNf&.#)g;#Osuii)Oo_#k&EJ;q">7A\R7da2D[M#K=ONGVG'GQst1='2G5-#ADkQ %5B'4m""^ah:(lOaUT4\kcaQk,]7g!b8f]3E''W.Jj^HA=44r[,.pdOHs0d^WU#Q,%#iJZf$g;-@D#]I@SJ%PX"i%<,QH!ePl4$=eX5R:O3.-],?(6mo&",S;i;hD(hWd(V8Os6q=0c)Ne9(Zh_LSAE&44HR:+5nD>]!pr,]NIdt1TI,b91fgu*i4 %#UiAYdNhN3`VpI=_*lLX^=;?gaVI&HD+YPS4cM\?U8M;)Oa(L`P>9NBI\LK6VH39L8gJcb'_Hu_tIuCe#j6P<8=+iGuo-D$S %%sHAn?93i?\msrtLC(sZ%V2>FP7pb1dp$;]%#@Qa>(p_!dn8BkI@a%Y;@-m!+?[P)khfcLn\1#V[JE",'S-H@&'Oi2"iMH[^`.`: %kGYK^?F?*ou,,mQ$^/V05YZacF7$P.1a!l;T %j_GB>G0rlW[W/9Is'`=hL]^s0.UA,[FR/56a#$]J'X1"Yn:.-8I5ouR-8/!9"E$"U*/=A`V4<230Hh[C1@^YuAHZlD1(!l^-\3't %E"QS>b*Z*gRM"69/DWn&)5V&FA^*Qd[NUW:j[G+8jlIKX5E`M2^@."F0EQqm'?Gh8]&:L`Qp6onQJ=g'dho[\?g/p&cQU[Ch*CdD2^s(r90!4P"IFSP:Jl9'C]u'a/JG^U&FGh1$6Q%)T;Z$ %l(m`!Je.^-AK.BOqiTD0G5T(6Z-Zo^IFf=V2-UVf=GeB@/fpU-qVQ+!Cn9?%[-_KsQYet"/)R;8:Ya'4!tgOX=]Fh\U7Yd_r0hfGCA$!I#r8oF@iAWG`Ys,p,#B9,:7f7uRF(0JM^Og&6:RlR'2P,N %08Gr%c!c>.ibDMeg\n9?k0&=+FMWseo%s=Wih,V7W[o'WTl*h91o+A_eEjE7P7B[E8^A^BKVAH`Ms',UpCgj%a_/C:5CCr4;&#d3 %hX_4n,t^G,B?ZmOoB(X#4q=4O`"dAKWcs56T0@38Cude'#g)R-n\j>/K3_5"K+h0nXP(Ti1DT)hRQq3BE?KU^,O^emJNIs9D>V^9 %s8?Y84.ECX=*-seobj7%2>X)'k*oNUc@1a^Wmsl!Z5$X4;;GE4OE#[u6==H_\B5B8?[Ad!R:;U.+Vhs+m/bUi!n1[9IRa)@#qT/; %VA,hn2UEHoQ)ofIX!RuCTAF>U9%HC:G/k(DX.PDt\6iU[h't&?TRAK!]T;GcAeFt*/-7W)P7hsbk"fJN1'l4aMSMGZcXdm.+3u.p %`2FX<^n$X%].SflcosnPp1c^k\+)53i8bSNa6]\Xfb?q(id!':?qWPbh'MrXHM]HNZO"".$+C@KjGJI/.W4ZsL7GI)YrJ^N>\4TG %kpulDPtjjn3pF%bEKc%`gh)A%$pn_C@WoldWLN3@6DVJ#(QpK(k@I?cMNWP3QX&FYF+'!M=,4RD&Wb>1ADW4FIY;EiP.=5gn#pe\ %miN6\I4n0bT0e"<;dt#%h1"Dq=sJC9opm>Za,o7.*+S^-'"Gf/Ju?[_#d10,pN(aUmeoAbqoR'L+8H&)/qc6LQSmAd(!#PoMdSIe %U(U?KMaO"d9?6;V_>^D=.n^#oX;2Iklfu)ri1!-]n0`_][,AMA")iF2*Z>4OQor*`KJ' %Mf:=m5H3AT7Ei\$hEP(2]`#[.eZn$beJZB^`K:_B>2cdal*#:q+X%cGTnp#<@*H3"LhVasgdWsQAbVDb]:ZlF2`a;_h1P)T^iAWA %$cF-XN($rG;n[nthM#k3N(K;hL,FV`2\9nR2C4K=0Zc\HJ0m"QFJ%f'@N2$9HAB %]0^W0?rc`)WL(^Og')hnNE0^O%U^"0)?#FK:)=H7Hlahjo`G9EXD3A!<9PNJdVCs'irnqI)Q%"YY7[>.(8bT6]VmQ><3rg]*=&aX %%MQUB0meWe7d*=Jk8?XE;Q1G/@qd7qmQr3na1Ap^L$:iY_6AZ+'(#TU']uqVfV&%?_fRH?(HbgM0HEeB!Uk&H9Lgnjb\UZ@d2W*% %KmB'kX6)NH,Xa#l++nj,#Q#n??oogOF:\ZJ1(RE^H*GpYE<6@91(X(po3`H)jf8=0GqbV857dIt`b?atefZVM3j)JQ#A^3#%LWfu %U6l0#cG;lY>oWuo/b]4]4P2gga*o%6G0nQ3?JpV(-">iSlS6nTGEr@O;4?hjk@pFMSiV)U]10!p+>'3'a;`#Yqt %R-ef)=H0$i5m8HMqfQRJQ\bV2+A:hL$*eKAB8u\0b(JL@Y+-&Jr6CedGBVMW?Uq6^7"cD8[MYfdJ]B1AF%h3V'pY]?JZ#=3R^>Kn %&kt;_58"X6CVg:lFX9B/IdDo40BOJ4;U%YFkH`/9ZkGj2Vb+gMmDPAj`Y^[1[5,6KN!"@l4V+hQBU7.PCN,[R %Z$ia*'4^nN)=rW'*_NFWEg[10kOW*+Fu$fQiD$KRhUAQ0XWF]V@?FOnFq?D?\u5r%+Cmapnn@u4=6_qS[f*51m<;PpJWhe!_1Hk$ %dUDn5*Hl&#:GYHf@r0.'%42-9Y?G>X[F2>71bTkma*$%fJ.ltm65ET]%jPQ5#m3KEsVEe[.:Z"&@9C@5./iUg;4;WA'_6khT%[>bVi9e^I,f]sr]KJ3*%, %KW[g:B&eBUq^EFoJoj*O-o0%^0*4IV8K]T*?qDePh35B\SgPiq@]dQF^PiqRrTgKCqQ<2A>*';PhbE+s="!FDNm\qDr:smr%j%g` %l\1AD=s'I;jZX(FedEARW"$$[>">.ZA",]HpPZ!VZIG&?q2XtQR%Bt9&_U!8DZ=B'dn]nP=1$>l %7gea-d`Vk]-qY%&5%$jBBaSc_+W:;3V#@PhaCA<&W/.f>;S?m26746g`9f:PXD6cDh6-L+V,/;c>-6I6lb0"tMoELu)T]Y@YH']# %/lB$uR1F2^$o)@"5>9hk>sTnRk'ro/*^64/&SU4JkeiLc\*aF-)Qh4qV#Kj<$5tR^QQtMk&/MV5:M80e:G1WGPV">MV)QO16Q4$f4Ah.bnK-9daZf%#a#4k(_oj%=D\-o?78 %NU]^9:JM`UE.(9qG?VjSJUti?Qc%As:H]g9fe$(2bnknuMK %ckRPrft3hMW+OI;*(*gL\NK3?S6h=MZ.T(D?-aiI?&/_f6cbmaec-DWkW^&F*KB;`@h.^#rSoH:_nDe"%PB]ca0B91hXHCT4X5I1 %1P/hR6R'I1jWY86lpMD\7&:Q*X+JdulC9BtLA,'dn"D.e__Dk(P7L)Z**u^nk]\s%-K6WHbT\>CUGcjkY"5O8!_tr04dFoH`cmEV %el9Qdn$L58?#-6Dp^EWUJchZp?Q8n$ %Y%+_uXkT,G$88[BOM2@U-IZXo[KsV4i.IOM(Y.R*>B,sgn`TJ\L)>JAH-GRSPg25H6am]t5a'u*9@Qpu#E7AgY/",pZJJMR) %R5/!p8rHK-XAnYFnu')`XGaHB>gO:P1*1jFu^@gOG5P#JrF--F-L6=m`#!PT2JlK+TjiZhe?gPH*paP@#4q]qo8gj7W %KibF)2t]]=8_k?UP_?<'[T]hZ=-\WX5B@N_48ugFgH2>(FYZteH8KICB_^(>'me3jH_L2)ZZ(WEgV+BjPi=qmo/"f*/5>QE"1kUV %[JU_!fk%n959.O.UlJ,`VerLJmn<_T!g7oOm23Mf.]&_7SVmZ&^!6Dp(M) %k>;Cn\)<\L8_Wu2W+!spGP`J=Cgl1JW5Q5H_*TW4=.-FLF!pI_j]umaf.`e1M61Z#ee5#e>(I[ddFcFV:S*@#A">,RJks$`Yhr#H %L3"#lD[h.pEXV%W#Mqo=\H,"Hf`$k/Te5?24)ZTU2P3^p@X#LXETOL"i+ImUP52)=R!;srD@0DQD[Tu\iEJ(6r@K10l&=42Q?Ffb %#Cl`UT9nh=h[lD,SpobD8t=9(kGCqf34ik(F\aRZ2Z&-VT1DcXhUGt@:qsc_qLAYlQh5)I+1rt%`@*06I;Z)pLJP3/;22i8aR!B9 %k9[#YWJ_Np),oKgT9V1^.SEbC&6\@/WoUkegF;Q$.]mLaB\:F+emKkTZXbLQgF?d7_UEH7;[ML=,uacCa(Fu"a]'nU?Db4R9i$FX)@S_[d$lBWq@UEWZ8bn+Tb9ClLVNV,m(;.IX0Wt %!_8VmbZZODX7b,B#TTX?kLBN;Y9'?:n%L\^C@,=#lIAh?l8!\AW`L.;`"To\a[a>a0tMLm88ZhUo"3CI@4H?2eueC"eLQhefCWh6 %le(V)ksO1e6!AE%PE0:TpZ[,i7B-Z,crBo8'["T+;g"Pl@B+D2@5nEV"hCR$YB!H*=:1s=,?#oR%bkluqScF/*SRWnVV#=dO/[ZD %>FFd8FhEp;[&c4d^;3\dnc$Gd\Ut6"W@lS[ZW.,@Wm0tOgl`"%TJgcVR2&3'KXa2I2QXo-cQ'9N3<"S>t;1H'PHC4-ortH7cC>V>>L5&DKZa`Yf]r4f?l$@[D>`[S9uS\ %ofE!C']J,Z7]P58e7N9Fhs"&gNE!COWHf!Ia@N`!M)uGs<#Y]iOfC0t$4HlP@b]S*&.c3O-flb2J"T_r4Kp*&CQ5e_?25J()SF:F %+&]?XDnZ_jZ`cJ.mSMnoPDA7sf("gta:V*re23IAMkYQTr)!CG %9=\2of9Xla_3'3V!F#g3MU(!>9B+3eO-HFHoqRa^1#!]G];bEk0Iu>f70nX$?s7qhKCK-H$Y=p(#kgFpI4lJ?WgduD_`F5C$[3*$E]QUR;)"&0)IGjlf>AR44fFFP&X"58pQ$d3tp0h*e[s\&Q9=9-WacHZ@chFL\a#_.,kiBJn2COb!aC&(A-g$]#1KVu1Vs[9dK)'!`N26Q"-7,f(4:SJ2KM1oa)K2Xa,ORtI"R!?`9_F,hE.#r9;E)L %U?gEW@%V)('^)?qfPjNnB,DbP@Bf*GCd%@X6BYLp(d?s8Wi[cCMW4o(]-<+(813%n5Bj%Sd_;I5Q]S^dr"8CFl`#O>!?jUD#(jP7 %TT1O-qcuT\h&l$e6)[?c&;aWi0'e>%abZkbV_'["(uE`5*h"\'r]&3)<<2[:5J61Z&j46$s*r; %qF>n%)!XGZ"eSEqI+8[lX:)gW%Ki=S?aj'D)!dh$NLmp4%Zm$+IP8Gi@Q/6f?;f[%SaAV^W(mAL*2lf;`FQtHO;'-Ha+EQo:%Gk@ %9aS!q>$FR])Wo)or(K-c=8qpE#j@$D_Np'g"n3:q7'0R@ES3t:+/@r1ceVCB7D5P\.&Ys*(L'r2EW-"7TJCj;gWtuUG^C.to(M&h %Q^?sR"*`tDj4U%K74RDC>\sUa-e'TBB\)`76i)?ap%eisj"X&)!=R_!0>,JtNVaLVZgJn^H"Z'kAri4910[Fh>'/FcI^C]P %msLb/,2a5d+KWWTOJQkTG:M7*rU:96!_;G:$\JBd`88LM4KCq)5OAm9Fl*kejj_Vm_k,IWKk\+K1Fk+:K=VP_FsgW;4Io>c6;cmT)3jcGWRADG2JcXkZ`runQnU%i=+6Y^O`b&Tg62B<&\V=&AsTH.^UL# %3Q_UsH=TGDJ`5L)m$%*4RR;:YjX^+CO."7W>A6iqkJ73kAl!$"21uc_lq0$](MSJPP%ii5HaO7O=][S=8$iNT1\UXUit.07'OF8_ %#3W+(*D!CkZ!r'ij#jt?\ng-;a^DoMh`^ilQkR(+^hs1]U'kDG!@ucSk,(q!tQGB/b %DSb^q2?_qQAD\#F'bPD[]A^Wj\`"*q187/7_&%Us6+6[PnG]&#a6AO[:o,tQ:m#7egX=nGePteLf %$d7N+iV4:Q/SCUVGDo$72+(r,3fu.@1Kb]3kf7i..7T-H %dmWFVNT?J%P;*DWKtM*pHpJYr,(kad;)d?87qrr//YoT:TZkq[aL'<=6,DM;^2Q9jn/G,bIfSqE^u4cl.,+S7")/q_a2/$a+J%lD %Io_@=>!ZC":.n@UG)D.72/u:OCd[GH5954F<,MKU*:5(Id4C?3T&Zp_qQOpmZ^=G36(o"3j]OErE9Ai3RS$&*Hjs*H'pQl8Ng8]1 %AIMiW'E5l_/g>i>@Hdg72jF[[CpEp@-@78sD*8QB546?%:!7s6B?+O,.!7Zd+A_?Z]5=E:@!BXk%)E3h7>7\>>Dm%o\Ql4;nV^Z# %djp6LgAP"Emp"%o/f+Ba]O.0jH>o:4fP7ruE.-p]`P0N:s(LML%t&iS)UFuuo(+<^o`5Zc%_7+3*?+KF_:?4OgG]3AUt7N=VpF((c*%c6(9_):@G8 %bl#$r(cA%^(BFG7?a&#L/Ek-<2ur/?e3]&+)[FspOA-*CM(=-3[ji_^ltIb)B?n+Yq;/i68aI52=pi,@Dkf+ll"lHV[>Kr@#H %#o)JDK^BDli/>u]_"-S3*h.)q?N((Rg2t#u>oS9aVQ0/P3"hU&$a+eRK;!Wid(M\(hL=KLI+LQ>G$^7.m\ebDR$IsZ`,rA/Q;/?! %$sMEO>?S!?]HaO%SG-cXk&cWj<@l"g4,mPNZZckeRoh@[SB+`b9YD&`g:3Ri?>^&%Z'R^5.KJ#\Le?7V%^rH1*Mhb(`6C6fu`:-KO#Or"sFFaq= %CJ5,:9oX@#(RYlO-Coe_n:o*(]qj-7KPF6)Q+h'k_lrk(og7;>VnZhdSC_*Lcc5s;!t]9TgmAqRdZZUKr5R#LA9FMui%'bQ81%Il %`/8N\%64"&UW@JN@UAK6HRY;"KYG\@Nfh5`P&d+3Ask0gbYgOKg=bD&1H4cR\XKX?KKkR[7fW/fcB@-QlGI`Hb,R>Fp7Nquhr,[J %>-VRce'CtEe91-'BR7OQ%;;-\HQ@A90HL*>:d)oDHCjiK`*=D*'og@Y3'[#T8?4+_73=,@#0jfp&j=?SUfmS&qa$ %>D>\*W!DK[R194pG&Bl5du$bfA>Lhl)#2NW/"nkHKij>6bmGCOKkk(s"Zr.gu;4&hHYIO$*rmAYK %>2$#:G=>sLdLdg0#PO4L'bmsCA)5gAq;JE;Cfs;3PYk8*4;ksn"hitqhpBB%q00[M3q(jP\=9mmS'1t4)2VG2om9ff]EZ3(4o)`3 %G6N\"-[`E&4jk/2j)/`&\qO^b`Fi6_^gls_dPR\96t]N`na5PWePEk9>4V%0R(^-16C%0T`;u4ADKGQL[_WDMRcqn %l#'ifnM>)'IotbpHKbd,akOsu5`>Ghj1';Qjn.UD5L!Y$-d7"H>KpYMjH74%qHaP0,9rH>.$`;lBb9"o7ZO8PXb'83Pt];!b$WNQa3e@!dI9W)QV#/qTOtj=@LVeMR;9gs.`ND*OYu0% %Bb#Ih(E^o?5 %G>jePL-p3qHm]a$?u"?WesNNGmue %8pt3>T#^i&ifRW!`>7V%O:@C@2fqRQFeDa>P$ATa$.)I0&r[Yhr0C`tEjtJGGF[@i2UMI^dQS<0/*lP56FWP)p[B]S`#]raknXmd %6>V&%O>GSKN(!gtJ'#[5\I18sWY(5^GYO#"F#Qm443n,uAYA@N_)ZII@lVDtNCmEOkjYKZQZ;fo+(\\ %ki]r#[p9O-_YndL@$'PAA>R![fZD%=EjZV;8[17PZb`qPNeLj$EbW#uj+^doLZsh*kK"(;^Hb:['\gKK:" %ZUEF3'`7`f\M@B@(Mh#m0U%pK`uF&8@q7#6]:?K8)2Z!]E,7:W/BWe\=TTE8jJ'V;a*iG!ZGbr#]:/HVf`X0k?A#Ye`-KPr&"]AA %4CZ8hY*$b?$-lSm5dGJCl;nokO*^$9ZV*[aY;H9]G)l/GB@ZT"LYB4;c`N>OJ7a'o2?->:Hu!niW93K)\^7Y`ZeY."CM3,g(]*s? %g=bV-%W&9jR2EZ=@WbulNL?h)-*<&^QFFu>-tu[\1jTtQ\l0uWkYi(;b#J!AD+g*MD)8o[<)M$S=mT1gT9c9onF.d`G[/RL6H,)Q %@FidV-5EImZL.D%/,l]G?!+TJ=Y:C_&J\%,b>Lp<&ie]e#uPbfB2m7srJ$J977C_JI8*;6U8$&IfFDj]VhugFq8[j=Y+jeY(6Z;G %#dYa'D.`XrH11?JZ>%$TLum^Z#s[rUj&0BZr%?;!"Yg3IG0QUU8O6("pr-[4(aXT$_c^gh%UHG)kFB3@+4:du^R2_/3)dj/../XB %P&_sGDE2W$P^7Tc"@7apP@oclPS?OK3@.Z4U6.js#R\V8,iqjS\(k!qIB6Nq&,*rY=u842a6Sh?LU'VeIDqOI5i]N5Bs[S'>PL-k %B(rd#4P(;jn8p0IV;"o/hjf?!Al3AlgfEoLlpj85MBUH`"j[YT_%K!.g);(d3G[!I4DgiDfW+i/+ZX/F]"5B3WM&1+3MdB^SdGgr %RaXp$4)$;T@Baf[`TU=rq.1<0mZZjPQqr9XTMOe@^\tN3@#Sj&"V.u:=k5b-s11='[Vr327klSjm-Q/.o_k#A-<"QC3V8`[ba#Fu;ldhQk.*Lf6A5[uW55[JUskR:;fnM%_T0F;Ei;=Je/Sq"ZE[d35\-(bacl\M=2U[s)QCA$sMbXjiJ_m=ZX.!DgsUB`gF%Spm#m?]3/VQ^U^joI;:IC\55rc&(=! %'LT#mndSjp?oQ/o;g'4@2Le(*\@ZL'LVhd>\@_dlD*dkkW8&jcBScDDb8/;PiR.+>F>GG5b6dG(dplnPS>*GS`]ZJd1BT]]p68

+ %Fc>p#(&mt'YsOLk%c!5cE]8+_Ap[Q.;<1gm+oGaeS9OF`:/jn^ps$]8[KaA<2\@a\oJ$X/HZ3,_60f4Dk4fd'pr/"0/:J'I0+=K1 %Z"M4mJL,`9S%KOB:,[PZ(RK5P6qd?APS>f0o#')V1"qrl,V@LSKJRV.BsJU@r/jZ]pLWEPAqO]uM;.-.5A\U`2*9Wma('3=An3#F %2o_D@67'I8CF)2T/m0;\.qrL0oWESJ]a&o1_m(s8$DT\tkMO>Ws)2K0EM8q$=?h0I,]?K^9mbpLliuN!/GOf&/=#di,pNr`+3jg))9:[FS#+Xo0R%eJbb;Zdr`K_*9<[C/PkZO^BF)\DO6/!8!GrJt!_J*^rfGBFLI<`ujaO=?X52)(QU^+dIrDZesj&V:NU[L7b<%LBeNZfln$ %2/LO(]QWKD#DC=l0A^kAbKJ72hC$%bfoST&M3+qQs7Sf,XjK%*3)&'V[,'maj;Q-2pF.-kVV_bL`9!f>/kH3Wp9+0m?CPi?hAkjo %*Y[[h-SnfM2OiKcI/QLtgJ&=oa85B&a"4[?[#jb!n40CR27QOZXjNr&b]XF$0B9!HD1VKR%B/UZ6u(BB!](6Z!ti*Up0mFb9'B!@ %:gQGr*oa7+)Q!9/b-O@,ED21<.FH %89Eb[9LA-8m<,"<_18?2=i:=kbbYF`A!52W*SmDilo1!D:IXZBK]kTum"[!@e%B0: %]V3_'m)qUBp7$15D;Z\b*W+)Cljf`SiNXJ.0dU50K4;UjpI=L.X'$hS)BTjoBo^8Y*7"*QBMa,!DR!m2h_K@*m/JjP$?fLJ/;3T8fu=)@nE7-?iuQ_$(iI>/LLT@p;W%0KlMJ)c3?"V'N*(b[XTLsnJ6]S5YsmP)M*]#O6% %=^DLXjQ^IdJG*5>NM9r7X*WO %,i,%BDS$s-qjh)6/!>diQC"%i!*5,sMB%u60KD_Xj4FO6[7N%MTAjk?Xe %-%j(;]2MQH4\mQ6>+ioCZhi@s(TG15>reUgdRB-)Hu&[iHP?:s[9k:Q$h4YQII`'Pr@PsV1JLDH/c$_6L)]`Ha_&XN9M"#)+.747 %m[fMf$SUiUj%,n(S4O:p^mZS+$bmHR1^2QFfHFZH0K8);$,RJ-?ZWKVSejnoqMGHU4.TXI.tgBS"BUZL0P50J4tY[Bd3oWF$W65, %R1-$hRan[,%5EUO9@M5Kld$GOf;)i^(H;IE"C/k=6S%ncqX;N7sEp7c+bQ![.:M/sA&"3X- %b]8YUWSS9Z:3Sgm$*`2_CmtO+g%6=]DKX_M1hlSD94hfFRaCIEdqcI9R+]b^B#)OO)eSdSDp5h9pK+G>j"3\[&,nZ?P(\7&@d693 %#u*;R@tKD%Jae#!W?$Yt"MHR_79->0WWu;c-CBb&GgnFmaE0GTB/Tt7fP)n>dirVg/*g--H#SVSliA)%FRkPc,R#/PQk8r)g5gX8 %W4qquDD1J3+I/O_6jTsDp73&qce:j]-!0ul^qgjrTI.*$0QLU<#:>Zk=!EJk`?p5R^'kb))8!I_nd@2ElSS&g$Bg[qrZ3WV %8eUUr,V./9hMu/!D];^O3s<")OU**"!bQdY."e,=KABH1h'dlXHEcurBJ'*c)&-=(kFgWD=i3rU*2idGJ@<.sfq%f$Iq%J[LW:Z" %Skl%W/Nb?bNHS[ZnG'MQ3JW@0,WK-,r$mE@X&W$i_ILP5K)\B6pa#G%f6uX$Um2M?W/]j;cer3c4UZ,mIrbG``9"hg6\`AE:2([? %ANsb)#@`&@Yc+2L4*eroR/5VASb,f>KfYWUBX5KbU"2@K_,8EaCS>B!,q5)%09)Sn^LaLeYuf^Ee:UIfG[_F#ZflTc13n^6BQ]0^ %a\/IlQYBVc.@e#76!.s`E9O<eIu;/g75ng#Su.jt7Z_OUmnm %<$U<.Z8(O0iHPT9e*a+X_]q9s1T*(X%qWJ4?__!fj)68@;XG"<:"JTg*_7"<>Np %DOIT/FMHIBPLZo_F^"o"dBVZ^,GuYS[SI/h)EDhVAE`2sY.]B+=aFBmrP-F9oTsXWH87+GdYAr8SE4VB[ZWgObM3hG\f;):'fX!R.(NTiU9_FhakWj"?<[b-G=J>ScB;_-&ihF-E?lZligXnDY6DK+'=5Nj3!b$raVlESm@fX'?QJ0!K_Zsp^L!"er8*qJ_p %c#J0ac2DQ6G=ZZ_,%9E7@DDu(p)%DcO5^VdhgYg\GB'p13t("@]AKO;)r/lBRfA$kIL)A)UmZ_1n%T/VPC9*'3aiI_(fhIC(GqQ5 %KdDaUdRPKAkA/D$$OCke3`5-2kftEF,2UNJ7/nB[5-^Bn5kGQgkc\h"4Ue(b)aGKY^0DW_FA]D+mLZf"n)Cia3k1HVN`3/A:88nj %R#)86Zbs:Jq%5]!s$-5&F00FmmFk('K.pC3@iJVb@%;12?naT!d=`jqK_,6/.:p%8A,U>".;fi$2=!(>^-H %fn#1c;pTEQ94dY#H'#\PG-m&=9$^c"c=g!h/sNfkUAK'npb=!"cgI![qp?`h>hOP-[0=bYmali'"`^"d`Hg:(:c9CifZ>\L*j,^KY?T8$JCTZ:`JUGY:1Mh&;=!e$gJaU&-mSqf@[m)M.$ %$hb?EL)5"L[;YGgs+j(eS2OCi$kPh?Ed^o3DB`LdJWLZKgN5`CsCV8JMm&rPnjO&C)3jH,: %STHW+h!cOlVp8*jHXh=oX!Z^sA;lc]6LI/B-h %pIJ[MpKeK)i1R/\B>>:G^-1nG)b746s'pLuF0P5Ghcp&i8MJh)^?1b-$adZrbqHbk:QYP:COY6>Dc-4pYH.nZXt]arfDO(c8jW0; %YPEnH/QlVOnoMho_[Q-0Op0QH^/@Op)A$G/q;+"nqbV$"XYS %;dd'5JpFV'.sR'!a-\B%rL=J)'tdXuJWCdd"Y]k$O[bA?Jlh1e#;'%,4^Y-O$EWu6\/VF6#(K7i[SKl4M\bluh]!T45FOUp;.-j3 %6L$F-JXp=2.X4[CQa,GQ22?(t@LYA4Be"A0*o:!LGa\"m\,E_KS>do>j]8^I"@C88#iI0APDq(A$u\'pf#R)nXgZ!!rBkXufU6XN %>BKUfAJT1*"G^\q.3ZNJ5/snLm4Spqg):q]Ch7ni,qHpmP$-Z%Go`r9,Ed>leSb@@3uf%(gPa6]4)Ief!%GIiUQ`OLL)Qi6U6&O/ %r(D.*73T"arPC"jluVSZ*N^\4]h^T0B3U.73nd9*MrYbJc;t[iVDe:;R)>sH=nN/nbIQNm,le'<9T'J05m.!o5qOp&3bZ_q'>N(m %(_/8q&PS=C1P.X*n;U-U#Xi`i-(..F(6"1ZV+F7U`7$V[VO5U!"q5S2'$Rp-#Utra>qc6s-WF!3$]%*lDKRZO?18hT>$X5ZJZFL:kOsK5d^c&9K:@f$XKH5\V<\O>2](M[EqAhJn?ojSo4d>+Emlo=r-P:Z4O0eRR!'MP-+^3ZAD1WR,q$gMWe:cGc+S!%F_,DE]sGMIQ^K83.gg.E2sVj'7\nX>LCOrH8[VE%Qu+[A7,Cqs3IH]Y`.1bJ7*A %CJGQf/CGd[%g+f)99mHNF(\P?^`[@^-R/,hLPJninkN"^c'=mj-NB8Zogl>d7"DSRgXWkt*L%^+F/8WU?GCq19`g %&h=7?l&'LsA;<t!kKIS_RG %g!N)+$,s_[(;n[`*;t[][*duNXoU:o">)-=@JtOT#L\aCYm!@,'r*_WNJ?E.q8_UQ*["M!Hf]&)K`/.mcpf(\OjV;s(2[TPo8Ei2 %P2pShOmTY.A@.KleF@7MVIU9'T@n_/3:i^>3%$3QC`dW>kK4N#'rR;E(iFM\O_=#H"+q %@s="Sp/!,1>cU-Q-eRGmjnup-5OJE*G(.flP2Q:`S0.C]]5I1!5B)TN-VVme'&$*ToCd+-i?>KN'Gp4-dBKMb:]nhE4?50c&4uTJ9OF-\_#'5Dk#M'aej^N %J=_A7mc=6+ad$[0k@No;FQE:>R,d[7Kr7ktSU`4Khu=[lXgcs*H)e-afY$P4'"Me!m?rAm?f8gtYPE6_XLHjlp=5N-A*mkC^@Zgm %Xq3M#nm?*@gdQGF=b]mQ_,O5sg/4ZGW:2C;:bU[t;kARJ8bT?d\=VsGYfItfG3@f_\]UYt%c$A`&,5oXP5>afmf!3O7TsO3Y %.#N19T6VV$cR6h&5bBo2,\EVRk:Y`s2d!3DEIo/+Nr+OAD_^66Oi:)Ylrsmi-NYo*cpX"`Gp;i3ju6-_AtDQNmI?es&i3;d=h(,] %+u/[WG(PN4;']bF85[b+k3k;O0KWs%l-&S\`4 %oac$DK#^mF+O(RFAeSWoPpAA7U.C6DUp$#97E9d\,uCch=;*5j\@>ciXS2fDMT!^P8KJc3c.n5F-^$eCMT!"sYR;7(;'a.]_Wa@$ %FC*IB,%!Nm:fiMEY2l*#K$P'5&B4#d_)94ns2.#r,ft-ujI7NK3PM/C+u/[WYWEb,&B-e."D9s++GtN;#d#^=#^NfK7#i&F#_]j) %52L1NOoKMj&\MI;a,7B^MVoD2:<92ih$$QK$]EgAD*B-ecg#-RpTpZ?.b?h4(:l$VW*K)l=X!FJYo#\u %hhR$g.VJ=Y?uJ0Kd1YJPU"+k7dJ?^OCCA:27B%$f=q,s:i9:PZ(U&=1Ye-sBhBOK>K&P$NJ\4,$8LI\GWV$qW\_?IHGCPWb>krKIqVWQbr9g>.X_)..X\RXte8Om7^_-[7'P,6t&PD^9gL4.eH:D?QgYntZ\ru(_gDMN[]^A2\GM,O^UfZ6#2k? %\n#ZC+N;tZbJ5=[k`Q+7Y`Qq:0C,!AI(L%h1!o1h3%m#9aEgHh,rq80=\jl*YWB[;AF&?J7FuEu-/%'FS35.N(+%Z/3t&+$4p,$_ %O+2YNK'6>u*WK(0j_Y2b'!Eq7h)fGH^K[-sbJ?\>W$8'%B=Og/k@\\CmP[9SlPr_:_+NncH9%,al"nf6*)(\]GK/&k[MIU\648^0 %['M>Aki?-9$12kqB<5A-C\PYGB$85Ah+>&DCQ9K[/soP4[Na)iQ:CuqA4ca)YbOb<+FAR?Sq!*YRJMj.bLp"8"KER4-`-2`ZF(4M %b/Vt=Pjt5hk34ON0@cu"e*\*1'<\!(UW44(oD1*p_A1E2-JfT0`J07-#3T_XLb/gdjUl`/Z,Y^@L^H-2Z,Y^@#gV/3SrUX$p&4?N %(q>1N=W\Q7gJp#Tj].0B=jiiJ]Sfm%E0PRC.gDnpDNi>^qK=)+#.O;iS]+6L&3qb5[=D:M=-_O?LUP!^MSmGf-Pbgs\Ji6nrMG`0 %n('1`c(0_Blgk)T1:]fDMR/=uY%5NsP#?;Q.QkLNKtHM(FXe-Xh<9HWe1]B$386Qp36[2Oib\4^io!G+j(nsuip:_]9#\VP.AAaZ %3#*7&`<<'tn-W2]DesAB%dk,;fQP24*9<;PoYq*5i_5Do[l63)'o1*CDf9H*.LuIm.aA,l.Sc-uS-RH@3.6R8L@`3EMDLNB39Pk5 %cdI[!1n4fB<1H7Ep2V5>Q&N_grbH;a<1MP;rB[!3_p'b)YjI7G\1+G'/?-/SR);[m#eLFQ)jm!3 %5D>rnoJI%7Ccc)U:6P!L>^WM1M6.aW@Ob,kqpfb-nYP6l:EdN^7Ao/3\YLq)"&CDlHWS4NMShNh7P6=-<#gA%"Jj\gUuH?oXQ,-, %UuK0]1im[,V;gtX`lQ-n?Dq:\")Zl$@^?itcDa&DO)L3CZ)X5*(=sioeqJc'^!L%68pko59rIGk %me$'2?bsGmjsjd%lfGS\Z6p3gL[KT-B4Z;$Jpf:7pF<1la4L&0jck.`0D))19DtR],r#'@-M@+?@s%=&_Vf2$>$>= %Vp"m&_Vff7m0jZA+QlBdJ)do@N4u#D,u[msk-S*6]W.QQbE)ip0;5H=nZr,Fco2`N%-`"$0Fi?$VX)3B4I7e`/:g##19X&2g$ %KfCQs>(5&Mj6e$Fp%k@ppArCnl?FbcdWV^Mg7-30YP'u@oni.L\>,D*+)\=L8"1,[=N.lfLC %K`-C&1[d&[+`%BWk?>nnL9M[PUb#t"6eDkcjSIj[6hi_f_@)e$O*;inKTdSG43[&pN.VOI4()`=)&jG;Ub,4N)8^R4J>s1t)8[0O %OrPP]_KN_6+($K0$Q6g)^`9EpiFE4+8ol75K`/Ml%X]ZBU,*Z'Gj8nOprV$.Z^>JK',eYnK1a!D0TlNMYb>ML6eEkiP2dcSfFF9Y %InVg>_EOl:--&H/YjWpP@4ENsn32h'X>PZhdJ]6JHs#Eh\[.K01$0C=05O\uI7<<[UrE6)s&A'S_J`\oa'aL./J&4=m02Q^S$^8V-o= %3p\2FCBXAqQ#F#Gjr8a:%huCZktFa(SMBJmgs9&PkY\,LNIm0]3ZcLI"o(Raq8ZX7=]iHrdnQ-5=o&%VgG)oDorTI2=rBGJDQhHTb&Qf3-/W`Ja#U%MDBbM1OGB70 %bL,EVHJYm,S%+BGJ.WAsh;fu%au-T?6tVV:JR%)/O7[!1MsEX5\:U+*.$%L)"+@\;gIl)'KlsQ_mZn+8`/ZJF)o8,&VN1]"B[h'MlB %[&eZ.23u\n/Fh9F@tHIfa(:YL:Ljr]rE %CWamh-D,cMGoA,qSV&HjV+NN>>5M=pMsCqA.jM;As*tT2,[E<:-0^:H8I#Gq$3)+4jj3?-k3T'Kl:"jrm]E&@B$fEu=gBlKrc_dh %>[:+A@Gs2HZM@:8`6X,p/QlD]j1h?q:3m*:r9Gq#lQFm[&]%2O\bRqoU'Y#T.IT:;ZaO1;/'?-#XK,YJh6/!037lD>D@b>+pZ;2c %A[8qr7c32k#Q8[8;9:-!#5Gnfk4fqNMS)Hta$U[-q&*G_%gLW(526@Rq$J,f^,G]3pGfp>NjB*?kr\:%]t*E$JaBE,:XaC!@X<"(ut=AEG:gj`m_IDHeEJPr$sW'FVWNP-';4$IUSK8BL5#NC?53VMPP"R-tsBr/sH2 %_8J.EKG-b<%[)#QSfZTu:I'_jp75"Kf7HY2dF0l-g0.`bMk9j?[C'`n2*NOqeCLKKEHPsMPqgnAi^^@10bdu3D'l2k86B`2q&H02 %XY&=Hc4qR9k%lUbQC?jUbXjS!d%ZV)e,:rD6H^OYi(FNKZ'o._Na>rRKi6aG1ghAO7$>NfXl,JB,`>N(_(/;X(9sSd@eBH.=pt%4 %7&V\hf!5>+$>sD=t&*B(j''rocZBlt0hU=DG78o4pSaq?R/S %T=orhaeb99]>iUbX8DIl$?Jf8O+g8*cioZk][*Ynm_05&s/1-j2VfEJn1p6aCG+[1QEZ+p!gQa'=pkI0`R$9P2A;Y'FPHO+4(o'- %X1kDcUnQ)@A[p*+g23JkP)U2Pg/uIW%dI6hC,#8r44Y!8a2:u!^_&_Ma6:<%rMZa\j@<9I4Kj5FlY9MUfYS<$RQPk4U45>.J]ZD3 %MKZH6;`;eB$*E!>BJN_=8^fS]5a)N1Q$tViOND%*o0T`c;JKhp7p1*>cWcSSCQaISYCo*jqVSEAQ.c^O,fh@?il\O([+EQ6n)r)U %H+B"(-[6:Jq-iaE)"48c`ZOt&nHS[3o(2JrF[[#Q.n<"&I %%2!nfRRKUh\1;@>\!u\6j,2Ja^$6Yd1Y9?XDC6g$%Qjl?djD\jl^+M]nbg>"258R,FE'?^rOI\*kS\+4<+,f>O4,^=b$332k51d' %[/&V);iUapk$9p4aBb;$hsCH&;5#57H.SA+.C#p/i=BQjgOG(S3QB=ehqW,(l*c!fEs;I-HNH6KkX %Uq1Y3^TG-=M7NHC)N4$PZa,#iCXAifbQ\VVps6p)i8jPGm[ij(U1*;X?W59!ZFO6,*Z'"#M(VjK]iq%T&RjpqkT?D&Qk'/,:<=)l %oFF!mA$oW^oT,$0jV.UIKQ-T27J%+iUc;cH1qc$LY]S280BU7o6Y>Rh;EU0O_+nHQoFL7[nZ[+2oM;+@&IqJ.7/nCc&HaT?'E*R6 %KcU/>\sn`ag':PjIc8&`=^`>6Eh!*%_oi_l_p>U'n6`#!<3N=(!E'MR"eY#9_cD]cO>f'+[4dXuU")5>Os:25RP5DQYtC3)'*S:oG&nO>;O&i1p! %U-\qV!Paa9j_k'rF5OR.>>tD$;Ecco*@T%\MK2q.!jhQd,kLZoAuql0i1;D\2'AQk._)A`Be^c*&Pmq;S@i:Z%^27O0^4EgrB&2Atoc``AsrA__3JIE^;=,P1#gA$]d,VDpmUY/ %P^`M>9+kUAeCLo_(*o;PHoYA]Z1tX$3W08>K#F!-^#0=Ks*7om,du:OB5Q]u(UWGL_SJrF$'- %R>F"D\8Q_s(PIQW!U("V'VWamj!CCafgd"GrV[AN9C`ZpQ`m6GH?hU(-.ML'TgLZJb%.>S%'J]WXC>N9?Z/rd4R[I?Df_#HIm#-R %bEM6*0Mb+m]$PLln2qH-k^rQCDKVLmR&hneUC4:%U0(\p7Me$/5#ta_SloCgmo1>Tf\>D*[X`BfkA:A^>B'QCSLn6JdWo%Zc5+"2 %.(u`sB?NqEo>a^qlf<;1'TrkiMHqLdcSA0"4sg7O\mM0Tpsb5rk7fLu&(;IY3LhO/6LZ]1pjh!4$,OXbi.D/0,Qo2&J.EQq+sH_: %oh+A%2GE?+NWM+a`5m#enq/h<`6GII^63fePVs>,Vcbfs\/:k4).haUo,49E77JO8#($^70!!eug=)oHM)-COR/AN%Ma`5#o\7'bEq=;*Vsq$g)!AB'mFa%Af3[a&kAiW'\s %J5>VMZSY^jRt&WlLP>X!i\L@IcY@4kXLj<7hHS[H,GchJUP#.YoC,Q^!q7)J""hN;6uiUaqR0;M;P3,^JnEK2)O\1&H;(Je.pm;&/k^JACi*uiX\PpibgPY+G(2@&Vks=::eTW)0&gR$5:M!*54ggOub\Y,NCXCRsR+<^EC+a=;M_qbOd8#?hD38G= %oVX#(eCN/=rin\(q&3@[5M9aZ`F<4HZH'gSUh\q!@P5@.-.'F/-18(CHqt65JH]]DFYIe>et23aG?\1S(g)*]f3r*U#1i[B^qqPu %jEFX"&L?Hn=tl2)50MEGR9h8IIuS[1Mk?&7:YiRjb0\ePDS?QHoF!n.g/ptB]+3uB65J&H4PZMcRI^Y6>.c6i?I7C^>EBm?41.M_ %@\4kIe.r!WN`($!#Rhjil4dRr)fm!eN`,)iPiIrH1+AW);JK@s*e%Ld&'c]onGI8X7Y?p8@-")j[kn6?NZ!e1^C,HpF3R(-fClnZsK$QI.:FT7r\= %i^^I?cSiOp<3'e#Ln=jW$'@]d3^;57-dBKMb:\L@--9V.[=\?.8JX+_($oR9'AT+a>/>ZRh>ne4hUge#H.4>VYg2]M_>P!6V3K$H %dOAf0Pu9sH/-1EI$9u_q=,O&Co(ZA']83.Y$F\q6Ki5,W+%)lha3R(Jr\uC(4FWU4<"WCbjmfZb#G+a@FnrAe<@PmU3K*08TdP>+ %WeHoT_!#F)o+If(2uP;c>K0Jgjmf\(2\oFC-,@j$VDWDi=eK,2W0HlJ=m3N:!bXGp&rT(];&\\5:]X"="Pl'hclG^b4b%Dhb/_^e %a1+D-nn#2.eIOFA4B<5&aY[j4eIIa-[>(pe`G/uCej$@+(%I)D<`VEeP?]'u(Sh&j=J1o_ks;Rk;C!bchglTs-:P5GXS[^_9e)$c %jlF4t#9_MtYdTt-ON:rclbFn#d4+@kVRjldC>fA?5%6R,WJ-R*\?3_eC-f-UeCGh4>4qI3,-@hU:3-Ql>25tjSk9Bs[CAp_i*3M4 %AL15MYN8/%qq.`&[@jptFY:l3jS50INXUaG7pm&$'oqq5.C^2mHDVO%2sA"1ZIVR!?U8Js:K'sJ2^fSASeUqou4E*'?jA]<(I %4#NAD16ltcLtXS4=pjK2@b381qQTrnrF2olKCoV#+'.lG<"d]9'eIC6(J[@?D7R/!nt>+)I^>& %k3>QYZ.D"hch=rN4*PWclgG2Z0(FQ<(_'Ch'SZXkW(o5O9Mm$b0Zs6bi;I5-.2[_hes6At8-E@#i;qfPKc`@Ve)d'A2nDPW'l-2Z %/fG#5BItU*0Ect]+@5(@_VbW,fOnHPMj;ESdHZ2Op!#`P+!%8)WrKl+>qA/;\_^Wfr]%U2;D9L^8GGEr]t^*Cl#I:Rhs6j+X05L+ %g/mF=N?%;$NB;=lh*8p.ib('&a^?pikNCRg^3-h@]@FuP*>_B)eOd4HGu;;sPZA!T]i).ZhV2Ca)l%mt>d+`^3@7[X).?Wa\83kc %n%f`^C\QZbLp>)0F\1J]J6,@#"+=EZm4eU`"E\SB),#Au/mC#5f02iXkj&JK)T]c.;a+J"/ILm.4;Vs*X;JdBW84kqH(! %4ND,T*1gN%@CjY?_$Y5#f)"PZ.+ZTI:bX+3VnX%&'F_+&MJ6-MRCANe>l\1bkApC*iqmk9S8UJ6VD-GFVftO %/^A %aOMD.8$8S`G8"g>-a2l14*#P%ep+f^mf!.=j$=aBfV]B5gZ+O3+<%A[@+AF)%eVZCR5@O(D[j4R/'>L2Z@fV,H9/lfJ`kL,['F0e %!;0RJ-UrfV=G-FY=WKc0ZnCg9]C3.!B0C[Uf9cC#Gful3\OYOLF71FFM:A9.MR45A9AB+1Kid7RZ[VXHX#KW9W$gt"*eb[6`ie0k %kFGVf)=">dW-45*-X4:Y_s^aaPI\Cg82_sdYK*70(@:\ilNtU=4Rj.$;_HBdEtNhEod%+6L2ZiL3uSO4:=s]Q$\r]l1lk?8k9]8SmJ)rJ'[j\%eb.!I2rbu/*tLMi`L^@A$]b(e:M$dQVo[2lSt*Fn4c7GI>8 %)HCD$3qrM5E,2$t[-qeF\&$edkgK]!j-K`DIUp+a.IZ`7+!/-/DJV?g5\bW)Q8mn8',J;CTA\cTI')X:0,4]e11'YcbiR0m1U0:C:f?:6[kJh^^9NSnanT%jg+eY>nCq&XY&,^O1^-,(:lZ3F68D]->u7oL@_&0J0f*HDQuE'G+6. %A.%r5G>OE]#T>S!L^CY$kRHsQU*OfTj=,\[O`V %&TkTV7,i<1=(uBY9VPYIgc,DVJh0i$O%9bD.re'4;d9PPa:r!DU9FFkAVud)[l7u3MQ]POOrg5hBq[3QVAgNC$i.eo_gRhBpT$\+o.mgGqd=^\5l9140>0`#.A)4%tQ;FRN!YF6tu.4B@\d %_%*2q;#T6@$>oV')3='KSj!g#=MO)n?[JI:@XN5-J&L=roWAYRK&1LTeCK!WhuY@JTXhTX$;X<1^I))^-gBBjogAJk/tglu56$uj %X_Z2-`6((*B]':QK@0m?1V2]#Kq=&Cj>(%O<]l\[%h$rrHR`+0@/pY(+&%mjB/X%Ha`eI)&n[5&bm %la@2e2nb[-'^Pq+E*p`7O%9CUFK7KO-/1V$@`8T>_p5&c7?_X'%J25!Q@0>\9E5G`djlE[mK$E\E\'b)dh"@]\7?l'Qk:*-!"44` %=u_]$"0b%7V2;GOSc8F[S9@YS^JESHlhODU[IH8p%;3_2%J,cD146;i#e+Kk>T^eXdHUt3OgDn]\j_6/EgTEcA^P<9c)I8ig_,Hc %%X[4[a:O'+j2/+QfU8?ZOjMBRgKWE]:LJk[n!?l+ %*]Img>*BQ!%P[T/ib1c(7&&UR.1F/_.r-G;&3CVC&*ChtEI6KF4\971T1=Y'3B]Q5g`ACj%pGAfEI6gXamO"6fH0l?iOD$+D!sQo %U8DuBD<6(U4WUWV-#1]M"5A`S=1Z]7SsKD)0:*%c8nQ0U[b$6_S"i@l/]jVN[B/A;?.10cf(tG]IqUJ!o(8[a;a1BVHQOk7:D(!M %8p:2#AXH,JHplCf;BCQJk)2diSHC`aYq:HS%Wr+e?bo_SR/SLebXS2$^[(nU+DF?rf&gPtuMjiskn0cHIu)>;)NoE_T8' %,Wi%^\*ILM0(?$&lFOdM5hFWRE8Nu#H[5I6-(23Hf676idFScoS$;E-ddRip>1@;SeZ%V1=!+n(#A^f`g?:Qj]T)Y%oXR9&NIp0K %cIop)&\26Oq:REKH(j,2mJrlGjn\$,n\nes+ZKF\`Sg$+HoBERTsL)pqriMVVdL5#'6Ece$="OM,=8:SQ:h!jXf8)ahIZDbD!Z[W %_FtBd=umnFnb(r"Z$?%!l5T7l/E&rk%PIRKI/@7538*Ch-?gO_D#D@U1?5@@!-JP5P+Va"HL'GA&nlJI2YKnm]ap.aNVZs%F=nM7 %Mnh.5]7$$GgnB)"HA@ab."f8H8>hs7$2RhDJ,6"mN+.Wt0Dd[qlegHnme,c-*7tu8F*iZliAU@g"_ZVfFrKQWDU=@a4l]!^$RDm6 %RpX$L"RYTGp*RI1B+Y4`_A3F@Y)J>K@I%4?>/s'dYZL&b'PBO=Ld5T@(`C2^4+_B%/i&)C/<*]7Z&p3bc:D2N#^btFShP/H+`&b6 %m.@TG+emVcAeJ"Gq!pQC]S\@IHlXh*d8F%]*o<4\8`t`,2$Kt^2>!>.O3nk84o]g\+j$#JUF")>1].\\kV]jfgb@h-fbp.+KuE4> %G-R\t[p6F-Gj8'4)rHB!Dpnjf&W(3\c\)oreN6s,Da^4SS]]@7kpbe/nHqMNHoT %DZ>LU%7acNXfA6>1+`'PcASC)>#2iHoS,?i%;j:5C89ro+S@kN=O`q_"?+iQ^=73Y@o;%W0rhK,9Jn1,7fBuR/Vk7`U@?YtPR8\5 %Ypa_fH&\P#p\@sV+h[PUP4^#r8[Ki %:$kWoWuf1"`?922nff-;"Na#gYIdX"+g!Y?'K5+8-+?7MN;fe5K#`1u-VT?G.k`61,"r8<(f!aG7@6oD9sDt>0U=C9W$GH70U=C9 %S/57s:_+56[G=Cu1KiKJ'-TcE$U/M34EX"9KK.NH5iT`r+U#C@j3\W%#tloZO#QH&4.J2=FrQTc[s[N'5QV&R`Lp'n?\F0 %c!b/qNF:&iBA'Y;5K^JA5Kh-/"^aOMI[8aKUG%tF7UPe3T;#R?TIZ!nBMli%fH#sZ>`-D)i$t(F0=AP04=;a<63q3geoE5+*oc?b %SE3Xn^$1n"N%mZ?fC_fV+iJJq36S.;KFjaQ_VjOikL@rW,2hRs&OLR(3BTV64,U.r&OLTS6n=TZlYlM5./"IQOK1p2T-_U\NhhXU %HW/='OfjrAFRl2B^`:(DFg\8eCe\hEC&RtinntXMYKWMIg]LcPE@q'4^pp.' %U@5nK;H`CWB`OC=@DOft#0@'sZe[gV1X:a5nTejXS4t-!a>;g@jHAkf+r:M/\""$p01#r#*9g'JaorfAh!gFtAsP\4$[ieGRAKi:fk-O8&@oMQnol"k=BXe>B4:_C %>?Tm@ZSMO4XXmcH3uEG_Clh+rd4-\=k0[;<$;9!l>\Ip\KdFjbN5$0P.gtP9)&[qjDa920+mX)K^L$!%i&0m$c2^Ad\jR/>N#9r,6nn@pH0<2Nq$S)Fe^)68Vig\gM.qX[K-Oh4i4 %Kn#X=dL/ckp(Q]2k:_Ah%?gO`c\p1jbNT9N,kK2S%uMQEON]BM9FeAC[ak!H.9/Gk>lt-S&oo;XF%! %[MV]4&-`/j(Csh=5n_Ui2]@1T43.*XDD[sLgA/R8iijT/l3?*JD*d&O&Ue/52iUi0B#!`foIeO7%"+@CLUa)P=Kr0d]6k+.p %&MEr4(3PGV(.\dXbi*i1O_!:s&2;%6>:+R`P$)+q.u!n)!/(f$iI)eAD5r$)/BA)r^tC3iH`odgF`h"&Z0uaSBRO@khYO]VBX5!. %Dl9h_ZrF?RW2);3p;d0X(G>)Ls4jb$amlurrnR)m>\u"Tln?'hmOoKIdeu'$`2T4pFLij+1WgtE>=.e]P@^u?B$lLHp]:Che*70r %'m.C'D`']A/L.NEpT\MksC3NdiTDPB!f!gE7APt'rU3ErV;V4eURc'+[>]bS;_AJ>I %+3tu81L(u;b\=%ETrFnj?3ftDQF56&f"-18[C)U*ci4]Dbk&=Lb';$L0FAIf=+!a^9di+%m**k>b-/7*[?e'V*]&=CP2j^og7l]: %_ShQSZpg1`f,#NP&;qmFP2j[ng1th&N\<2%-O0,=92(a>4#&/*<1-$[@&.,[7SK494#&/*nRVoA0rsc[`KM1H2,o+L,ERJM5K>0. %K.kO_)&W'+((>ZT@pkr[3=bPj`tEu0"bGV+T4R#rZa7>E+S^A"Z9B&nHPFU?[sZ&@io7fCSi*^C;\BRhpW+`SjGsE@mZC:oF5kcf %=GV@Q\^j.L,u?e!21GW$>ndCYVTi%jhm*-tY+-\^I#Q3>P/A>kDWPE["D]V[dXf/88$_?SR&R"F+"d/r:bh)_H2=MWnJ?Km%sSo/ %7%U`Egmc@U_-csbr:#skE'uJ\+t1g:ack='qUa2b*Bs[4W^*[W01KsfCQcq;9;^Hh6[#64kO?l\qLaU>n?"b2)pQI?43iV3e*,J*pmiV8=:[?E\q'U4MY)+h"&eR#l`F03'u]&,;\ %(/)XSLeslnVFF3MI8u3h3HjrlS0A\^AOn[^=C+:4d&tbOI`'Ln;(G_IPQ:f2C7A5U&jb\l3fM,@;n3FhD*L4djC,61Gk@cGA/Iqp %!iR%$@Sj\Gjh3>E@XoNVdHq5CKKJCfQS/^"_L*8tdLb;'kY]^aK[&0lN6(?3ZF`9?G6769k5K_t'[(L/n98F8L0sED]rTNk9\IqE %q,to%[hA(C`KF$U6/lbh>u/VG^j9"e%'f0TScHbFBJn^Q&lq4Bgj?=,gS[C0<@ekHR) %`O"'YBX[09B?2b;Q40K(3(!mA'l(Gg^+HK0bcfWEoKN6]mMCO#7o:_pF+d$NUE^3:"/V/H!S/)SL7WX4(#=PDu_fZ8>Er@lgup%)O68*\nlKH*aUKsgSTCRh,q0/a`&b>!&^X)S?#XJ8Pj %4*,07d'1[uVpsG6Z?#PVgQ-8g6)SG9P8UaR+9!fN1O)*E7)a:9X!=>"'ZsOk5#kXW^%G(N=O#-2#q!1q["aasAjS>=SkDE]d+sC_ %YBGIY56T/Ffc/(T9s_^.Ou&Ee$Zr:2UAK0rc5d`6/tb:V"\VC1SrX1,`,YeNIAX0D*g:A7^FV?9K&B=f',p!kGd.CXS_@FjtHe@RkQ!/`)^9K::gu?L%]r:ZX2LU'P$@8:pV#MD#_$C-I %J(]I(fn4e-K@C!-#B8(lOcUEq+/A/P@RahnC!D@[4(E0aPJBj(7I%\O?ZEG(H[BQX\f18]e\,J73:V!3?m^47LM"tS1Cj%b!0bc2jMML=iCIh %6um-o;bLi\+U++W5rOaCS-r3tF2>I5IjFG&p;M*Z3!",P?p`p;#2,m7FiBr0@*O3+.p9mt'Gd/J)Gd %*Z3!""/:fX%ufS"R;K^u4>;p#-HVuF0Q^G;ANVD/m.(FH@HNE@&67Q_5,_lsDfbTk.Q_cV5(OFX!KYjg32o4HcaZfTN]&eWVHN.YCEjhHhJFZnqX/H<0[a-ld64>7U)oGu[5R_Dnb!FhL%XJqJk'Z,K>u\m@=>c8 %i^(B?kHI-]'-dS8Q%k/*!KYR:,M*_B!ZmDDJ[1(H!KY:3bU+Q]S1E,OaT"aW\JXiQs2@R4S\L@n[$+`jYN8/%qq-n\B$Xo?X36ti&M/tqE')(CR^o\&1I(YkjS5K0$3Y2hebgJSUQHoD$\X,>kE5e %q2*[4Z-hHGp,gk&1""nGkb$pu@3Xt)[S\6f8:S,%n$!097"9u=X:^ToDAul+p5Rek3m'[Y4Db,H+jY8`o+47P9=CcVZ99D,TbVBa %Ue`'-i99NNmGP$( %*AAIL+VB1ZLYGM1",>06',iUd%N(Y&hS=pjGJFdGQ/NlLbX(R/_uJ56H(0A-h#r3^X/h:cQ\2^#?gU"%;H`Th\q2F:L"f/84`pX0"7:(sV'@6QD)T<.>=8_&AFe.PD# %I@EW'8)M#'ls\S7!PSD&>P.YW>MJ/pY^#pul5Kp`*aj(=?X4ng+V\0i6MI0c^X+:7Tn'GIcY_q2%XR:n!5S]&k"l"i]le7!$uMA+ %f[r8OO$^?/Dq+OHTQAf%9+8=c^>!k2arQXie[oFm15>H]5[:b %DGtUJm.-$*>hP,PUV(%K=6Kr(9jTQ2/"8NC.'K#<[Ii.]#kEkP=psfjB.?MS\^f]_&L,1AQnq8oJ+-Sp/]/W(o5E9MrrF,b[dLS^8@W^Yb:uu'HS(_KEY(>\)=chB?:UrU+sRi4^gXtO2VYH,^%]0+Z$LFcMW&D0LL?,#`f@>_LhR> %(EXHhC&@"Q$[T[AHA7)/0"??('b&:lrPl^:)&0jpSE]-&Al(%TVn8RgOVnkK$qUZK=,mNR6(nl:IUiWd0E^s]=P#5Nf:($1UEm:) %D)$s-bb+rJTV(3`.p'l.[lW1EDeDJno@7>YYLOh\'26pQ1X9,0Hm?0KIFr3'XF!/m14oXqJY$Aaa:'qs]BH2af@%HY2b3GqVVG_e %,[^i.?0OD"cS%goI9pca.q`eJaBV_'7Q:\[:83cm\A$1g]qf6o`gmF(5lo1ph\abg8o3ki8+BuR8kgZT#1HF3ZC`Gb*(M:M=iBAE %\8Ok1E'+)EF&5pB\_cUNRZZ(FdX-8LO;Sa]QJT[&L!61iAk6qj15#/NG,DD:qH7n[G[.1<*3H&*lM@2*`m6u_1=4D]j(J0#g'pPFN1]4ooh@MO@f.d),mQD5L&:ZRKptaAZpmfa73T"a %H_4AQd[aqR]si`C59cg$a001a`(2c$i0,ASh!_S,J@] %>/Bk*q.16#2mX@k0n\?(9]Ls*LO:YcR$Tu)?0OD&DbC"K[TJ.`X;,(F4Sgos8u>q:-a_Cb=37n`d!:HY!H/iFHImZI"FP_'YHB6n&U^uO>!+LT4EJB%Y7oRr&;!KWjii)dpUJ9T@j\Ie8T/6_N:9!aj/&d"YNI\-uKNre`N$c$rN2&6_Yo8 %3>O7L*nq9=4*GEGGl6UH6j+M34t;H:R'5T=-4WKWi[5.)2_c>1OML%7H-ZE\_$?eD%PXI]?_(!Fnq$D\^AU(n6g6rD>!oJCp(S7Z %r=VItEQ2!XN-(oHR`m[[76-gEk=Irq%VIMUAkB9^RjDH!$hc2>L9j(9_\PY6p^7RT#6XrlcRF^@F<[hGV(hpG#lXli@JEe)Keh/a %E&=^@&,sH2jtHfQZ/@:021;gj0-lsKo?W-*0\2Nk>Df?K(\JIjnb].diU5q_rK#2KdLTtFSNf]#1C3g&q6H/8mq."<([C+X\#^n! %ar9CS1>sn1PnF+P&;\*2/DNCTX(nR3d%5tlCojDNpM`jo9ZFYP"<$tgfHAo\8b`ZU2.-G=(@##&2$t;onrh$:6iU+(_.11!Nk^)N %],4q.*rH36=i::Zo\_CL^$g$f7H,t.hpM\DL]r9Z[FeHNYlfK,,[U^7nA@Y3]l]^a2)R'-DF[Ak$r`&f68?!4(jKs]%#Vl\_uMA) %$H6C=@X,]HJ(]J%_LsYK#N;de[-o>5VBo`6m3jp`h\'9;l"0T9d#0R'01oYp8THAW>JTZDfRmBT[7T0;f$l'9X&2HKV1d$up+V]J %JkNU97MkFaO\3.3a,7Z#+^7\jC8+Of@k$@Le+_"P.#^'N`%#_WWY%T)QR>Xd^9OmT/cgeqK*o\e87P@.#(!IHM*giVp,0Eh:-=]i %'kVR$&#!'=+'*]+3CuKf?hhVCm))5s\q5knqg/'<7CqN\%CD=[o!1nZ405RcbTO#ulLWn?>"Uq+JJMJ7eC@/`]rKjg_$JLS]%#\L.k,gg6RgjP5uZsc=Z,Ee(b-b>.C_a(0u!W#[F4]&L9'N%5=LI;D1_`)=D3?oa+)88s8][-$_2FP#1ZNk)\ %"6KIYII#;!iIR+20\i$_mt!@e?alH_ofII]&d:pfh3PPm'm`Z!(V&.iPH7L(,m0NQ#Ug)/VadI=>@++Zle;n+9NJ %$C0t*XbI'SR"-(Z3BpiC`YsjZ!caYYJ2h3;@LcsC!S"or)<[2(b*f:Kfcqt_A0JP(U-T1c"oc:#MeVj:d3pn[9`LpgCK-:U3m[g6rQ(2/_Rc%*XDIm.mRKau$hfb1'iV=.Ms=^Dku(7=X#NU8?#Gtj%2s>7,175lZUc.XjfjZY$r80MCZ7k[LIM7.d3P*DY.3\ZpF]]k$ta%d4V#' %HuU*Y,Ee(BPE;@\)ScduDBi@OJ#gK>>,[[j[_gHaY`+)jRiDSu1eVLTTeE>t)- %$f(6GVIY+8YJO^F\VG7I.L=a$7HgCP'a3tA0=O(OK0>U;0$+I#o9M+!qQR#r1Ep:eoO6^1<_BVhQaWa/SNC`Z1g1c8ADCl6?_`l3_DDO8ZuSj:m5M+;Jg %U,A2-#".@%8041qZYgtOX"kPbn4)OS=ql^SfoI,VTd7aoO:'SIS-;PJI84c@#Ks.!k&]K-N=-rnl^OR1=GY69JZ+[kpf%XVV!)#& %C1BiZk"(;qK02gYWl7/Or>28meF]oPJX5Y[jrAnmW0X>#UeB45Q9'Dq77:,=W>dUsJ.,_epE;WO;EI*UAM8)[[H6EKUjM!.leFuU %\OMs#&,F$0`[Xl645862p$S^K8"%_H-KI5!pDpu1fNp!gG/qUpETcfDKKD)?f[1cEc]![`R6l*DZY.2DfK`2'[$6r$Ce0t#nMO69 %^[Qh8-la3$``PACG/qVXJS4Lhf]=:O@]Z.1]41q=Qr)*5>gXTgbnPJ-16U"Z=FR,:AtRpiM9o,1eZKJ>iDTY047$_,_qU>]KPlT0 %m[B<*XmdZ;^]U-!g@l")9W=?:nJl%S:O %@d<`rV3`n;&Mh_o5hu7`d=]K-?rg50*Sia$e=U:1&$OY'$-:#;Jg@i\'&^NXJg<*V(^Ve)A+2&P:BY;omeUtC8^cWOp%?")^jGaZ %R08sPp-bpuAu\?Pp%?SM)>?e>]ceRA#B/\5fDrA2_G`?)eCK^\lKd#)f7gi+V6\[R6K]S>:XA0gb]BP\V7+ZbSBqYLf(*q9#[iRS %f&cbBV4[j8?`aLFio4&6=`7ig)4irmeUsa$&?ge1_J2h!4Vr@(=mDMCLWe\gO!MM %Tee]'n;[6h:%`V:T\Nd7[+2]*qT39Gko/B/2fIS-g/CsTa1"8MMiM+:-VKl8Qe;M%``Y)uTem)UBUj3\P+lr"lKY;YqoO>pX\=0B %B18#&@=r;\e'LF/Ig8AO?V>6"<7&O*>f15rrNl:',d,Xt`*4_$$L^q&'"%e$>_M3(2-iTk#$gkjH %T$K'61e.53N%U`f;9Ah!+K'mB4a,Z#?p$Fi.uJ7/@NQ9qg4S,I`:Q@3/C/D_<*15A,>mhL[8+/Vmt]f,RIEBga%FGol4VeU"^/A" %7OZZ4:e%LeV\)OC+-`a3i^Gib\Q;8F_le6c]lAVe4QYbOUNe%E8Fu&(ni?&11SOCGaf`-oG'rodg74]cJ07-'5%h@e)%_tl=O;=7 %E1W16'91;4l*B8O&DH%^VF(smOLmfqqLimJLKRR#J,*9]N2=)P6[ifM3@/0j4.@R0+%^j5Xl&:Y%!_tT\\ %";))hc"<]NE"=P1i7;=68qR^!)P-$lkFqJk*hCoO8"VV:Z`bOCC`F[gh^!cnPI!?]8f-p0&+Wi>6K6:h:3KJ*i.4i3$*]r!X3Go: %C*%)sX`ls`;=iB9R;u_Grh<',YdrO::PR-D3U#gVW-Ju9BMnA+be.Zq8YoV.G-"rB]g4C#:aV1ec?*_QN1*7Gk33Nj,,oi5KU3sS %RR[_Zl1YQC2(rFKO08A:2r"WYFquqgH[35paPC],7(Z(R>Dt;b#7k&D=%T$eNA8k:>p\.d(H[7;>&?oQI$$U6!i\#;e*2onn9*oQ %dCc7G1Ujp\T!4,.[3Wl1F%]u>Q6`Ma$ic7!8*JKEOiGlbgMk=1oa]C?nUNRd;qNABAFaT)3aM..+(Ss'`DH>5s)'t.G".Ik[_7_# %aAo3"^,Y#sSaPI@5/scl*?qfjn-7":5fU8RF6C<1BspcE;_8Meo-s%"X_"t'%K,h"$&rJf4N19jV1TduOVQAIb6#5_o3ZV27o %8Z&nbkHD+XOn`+Qd!MD)!9%aF'$7cT?YVWI(\+mul)R"qPRDC;'Tg/T*iSj;T\Og[\6>Qt?66cb._ZZHh0mb!T]0a<6McBSNYfA4 %lG&VMj(j3$]N<#-MlR!g(jA9J9k%;!d*jcJLtjRYOR"]LTJEd[5j?4q+![s*orB]LH %@tC7@$R1pJ5ECUNc0%8i(Tk\!T2tMRj;e-^0,]N!-bplm(PCGT/an*JpF]KY8%0l(>BeFS04,F#L&!RhV'3R.d%d8K$/;sS\1,"U %aR8aAh[-s-ReuQm;ln+2lJH"j%DUcgiN=0:K\FQ>2g=)\DqQbuQ,;g0I2V+M;A'0io4=$L4c)"<]:bZ0,9eB-]5),B&c]!$>!?I" %:(I\Co9#P0nG(YK_C3J2GeZpNa@.uCCEKmcfLoPnN-Nr]s;\MESHOcIt=+5&WM`7mn0LGFZs^n7pffF %lWL*VQ@H8RkIEJ;L6ZA43g5K3cC3I=#te([urRcsFYCho$5Z&P:%L\6l*\V>uHSdSc_#@tH^!cMtW)!3eYt7Z34U,\4!T %EJlds.r$'e^'l=UJ'R;(FofoIK*:Ui\oI<-8Foa+q+/K2.jZs7`I/)b?-'1V+J'UD^D\.1`K:LT2&SeY,P(TWJ']Wt[]"fLie\3b %dD413]lUsGd9P\sZ`<2Ho`+X6p^I3'kX`\-P^]K&9r*CGm6q9o/?J:9aAr,X %^HYM*0[X0=p[Fn=YkdiJ"-1n7Ik_#h']=iU^ku3GknN?f\G-bP.l2Fk9W)ja6r#dsc6$O7D/p_WMG@Tp?NQ.]4;SPZSH:6(+_=Hl %TYB1QV,L3=A&36oD_R>.0BMgWG_k@q41T0U8Q"^d5gUPOmW0&\K9M<.\(;02cmQ;)C>5F7mDsR'%`e_ZS^==4UR@]=ajeCq+q#30$PHL/44Ii)i#+[Vd18_.Q.!a=;K&2?8M&`.inKblA67L^f^'^u;ZQ %E.#suW@XFt@\(\OT?<=qeWr@b`BKP5ae,3uh*N@dh&80A+'4Y"pfnU3<#4uDki]6pXIqE)<#4?"A=UhPT?8qH0._0Irs]U[FKmH3 %j@Ih49R[bK9SlZLb>bPnagBU04FWT=p3do40n'mamftmW@f.dEYmPNY9L%k1LW@`X=tIJ:''!U*%@FP'Q[L=Mg4?/;P16/?QMMIT@:c6]@W`7;14_?Z2[b&fXIg^=bHNT-Zp>eRe4!2748oX"JasY*C/=B[p\gZOD-^/He52T*7G*'S6grh4f4@RqtRd %ZQqQjE#+Y0'lmBe>*3_MBr!,:)h>cJq@kkOSK_X=b)dLB,3:L7KDd>mjrse[,1(>4YCSm\`k8tFWOc*Y\I0Yt:W@5U!haO$dd^]p %/`;FQ!at!T\Qi,ronR5_i53KOrpf,b!(otlq1$bT.$aj(o!=9u3Iq;uP+RH8(cqb[g!>gld0.7XoH54V0[.iuE_>ZnZrWj8A$gj_*aT7ur2J>4E&J&0%fS8u!Tpf[)hJfH?sI[7qs#]_l6r@H:eP>;cCYFc!: %ko`JhN1]4Q_seK$qYF?T=],/B>[K]'AeTb9/MV^?PAVk)1J%)CFRM);1\c#k3cF)o*ib4tGP,[D]!D"RDJIks#!oIZ:b>TJ;L"fu %CdcF9E*5A`3$@*.Z-n[+NY=)OV6Hdln4!\mq*fa %mdud-+IStr>CT[F,/q9'3+^8.GBr"GUeGp^`tH"BcmftXG)-#gUD>>$aV-[X-]+':^*88CDk'%8#NSHb1<&u<(I.dd&h2;9DfN_` %+OBLT$RN"k.^2cR==MbL^!A$(cG+6X'X9`jW$=d/li:IoWMQUVPn4RQ4L$u#cd+1Am.7-PG8"Y0h?F7RC$E/F&c*i's*b^[60dR- %[u=AE8eq<6`r]$:%gX?0iq<5I[1ON`cK6%!]C0`6\'d8KDKF/KU>_.>Yo:48;(:pC`e=/%!\K]/##SrJ+ %Yu]o4_<;R64A"Z>UJhj7(N/hfJ$:L1)PEXMa"\tKJL,A_<Ds5S:'$FFp@(NOUH>^DRFCtH,1k=6*\9@rM[?H=ou3XuZG=%W?S"70YnC'Gl\e1Bi*+T]d4)<`OrP'm%f,FZ %P!)W^'\PS?ND\+LGd;OVCo-UO=L*-lQAal"qL,\ohS.TdZ?LQD7n&X"akjj=&fj\ua4,^5@bFqK>cec7p's7].;9DWVNrLJf=i1r %e+1]=JLKAa2mqSW:IgW,0t%"-'1:/AXad<%/!fOm,Y)b0AMCLpYQuXNXXLMoXXoih %M6#[g[^)jp`ON!#oL>^R8arr0J9N/gNZQE-^s=_bRKO-o!h;XjFS&t,"E\U@TVDau,`Fa'DE>AFP*i%W8Lt/QX-8I%*mBciGSZG* %keTo+oLp#e8"\L`E3U\XB/+*5PFVe5+rrgK,>*R#Q=-#3,`A@k#Hp)62("!:*iocYVcPE^OCT0m:#GkjoO*u<]4!1F-GdT_?ssX8 %B1W[&rCD&&@$ZJN$cbt3%q\C$F[b!]/@^k^'`A6@,UAeD-GdT_d-&>]BG*EY$0QTm3+<.d679.hcm3j<'':/U0-*3C,m!j2"_0"2ZQX% %;Vs1%m_:a@KX$1:C&=('_LrGED&F0a&eQID[ocVX*.=1ch>=H3)skO(3rAH5(0ap$!B+VI^kHmA.o$pSR*_84EEH#teBRJ'f%/kX %prV#GQ/npN3a9kGcLRhf8JW-$*m.S(c+bHW$2&Z&&LRtt'-=r#Zc6Nt5n>X+r77Ij>UXH_p&"'\mpjB7KFs5=`u5Q8^'LbPab'+9 %[51MK84FCV0D`O'O)CLHQI/d@VI\uWg74I$O&sm'Dn2T0.'D"=b7Ue+XTXbm'RRJ7(cK%R;@?(g$qNPkVe+3R-;ms*RZ]88.3@/p %]53:3_l-'N71CPGm3]82q8_m_VD:.pX*A`XQMTCoe5BIo33Df9UP?Rr?jI]@N#K:]9>eZ%&Yk(A]BDiAJj_m(N=_eIa,hocK4OG@iXYe8JL]TF+I]_r(^qG %\Z/9rf5m!rS;[0%#p8=c.08t!Es6bPnL1WBCKh4_*c,'gN2O9GauC3=@H(0m[f1l5WONY0XhSt\6Au)lpnlDpD=K#.>CT4"bM5J7 %E@u%451X^+I=dqTJT6Zj)68[_a13IXp6VuY"Z5.njj":p>d0j%2WnQkkJHV,jRFaOj'7a@I70*8/lHbqpi.q!f,%S"d4-\=k0[;< %j'6mCdQ=?VHCW/hVi)PX>'mE&q)(k,ek;npfS*@Si.61:]0oG=l1Af\I$a']/t8j"SF7(Rh'L1=q(=lr,XR2"rYpqBM7(2-LCV_# %5Mc_t*'-LRjEN2Vn8B_s'X>Qmh:#ZW^7._f=1NCL0eC#'M/79S?o1!\-@-oKIo5pV@#>OLoX(D:(Ja853mWTuXN#n6Ki=W9J"ami %IAqq84][&ZXT%oq`Rn[ST$F293&o>rcfc>&X:-"?8?V+,IdG.;Z0[jI>ZsY.`YZnb^-&L*Q8^Z_fbO/Hj>YtOFY39r^SrMPD`IjI %Ji$hnrZN?k0BT+LlgVKgQsWi=UX.Ye,*lLU-C2(<.XkJ#-[[4=TE"o=;X-OSi.[QPUfLCYTN'f[iLsCo;PSe3g %/L9(A9o`u\"]so4YgXQQLnmkA^QSl9fY[UgqGGj-J3^8n#pjmAM0K83HmmAU8OUlZOeG0b1ReoF6F'`lC1f%e=a:*I2s=E5dToWb %kk<]$EI718kEE0=3\p\jojEAA8dg'W*RG!<+]OG8,>9-FF`Z75q*nqD\W:&Fn7"g^?WZZ(tTr'q=ZA%asKh4&7a-(RoX)>U"B/&eCkTmiLgWUt#=Yn)!"DC@Jh_K*_APikb*?$mO+QJn]rbo1P7cU_&/7M!2/N %VAYQ@0/tUoBni>;:I8`L,kK3RRZm-B$Bi(]>pc!`ao"J.H6,U`5U.58HQ`UR3IH!8CG,iP`7qs %+j'Y6CJ6;(0[:!:i:rukdf/fs+5.UOa8n\dp`Z_H37NB[7A:?hU_r(HnVt.UkQYN0,df3EfK)Qqn=I8sfmp50?K@!OT %?WOJoh5hQ_ipa`7B`&bY,'k4_oL=iCC$;P]`D9.IGh"iQ1;buW1E!Ak.2b>\/?&JJ59<]oUa)$cYb5^9Kg]VX&+ptmAI'RN(m'In %#7TJd0d$og%N*EHa+-#=4PM,A4Br?m,0q3%84/F?#0a76*a#;>[,tcUX.RHcXT.h`^$q4M-Ea'0Hf6;PbP@%Pk<%48jD+;*R9foB %^;4[#k5LaSchH]+4i2q*r+pYZi:N)h.0<;F[Ql0"0rcS(cl$o>$O:5&CL6J!lq`%-_o\P$@fdV@O,]Gau %QX8R$XbCuBU,oZ)+uUC*dG249FgSiL1/nY68G\V5/@aF(-jt6E=UsR9_!3h\ODD$*Y]kuHpnB%,P=XQ1-`<[MP!F" %Yin=rA-tPBQto=:gQLe_-Zqj$;g_#kalaJ\:`tT/8JW^QHprq%+.5d!pkfcQiY3_a^*3`_@Dp8%?]i2[qo1<9`Ps'0 %RZ]_<7>fA7&0t0US%`P$Bdd]_([_gV"TbuoBot`VSOAbm^?8;DQ+BXd4,\s?_YVMC_,mKJmPbq_!E"E;Ra=\SSY&>X_,DL:ZA7=H %1kK9U,$6bGB5>XT:36g5@LG-"B%FbhV\^n87jK)cXcihi96Gpec=1)$[Um]6=O:fVM2qOT821nATP95s/0;>'D=TCe(6;]T84VY% %S5$54SoSf=`unJHEWphFQI&t3nod0Y]A&],Ab=2(^Gr?)?39Wg2)BQ?<=luS&'jCt*\.7"p0[q`"+;e`_&c9Xf:U/Q#(,=CI9]3j %]JP[MToW4CA*48.kL'*ngQZi%2lFTZGATo'YGT6V;)=c56XCYFj6dL_c!7'8&-`Y+`5SFfnNe_YBnXQBIH4]6Fe&VdHCdi;Y8)6A=T_(+*R])2X6\2l?gb![[`\BKPpJ;fo %%qPt'o_8aA[AB%sZdZO\8EO'%(STMEWasubr3DJ+>rT.e_9?@2]0i)3C*iK@Pt[If@lSsV9)`h===`061fj*^)beoKdqt+]hE#39 %'_GMN-U;m@,4[*tq?3C=]'YuriM=h):u69=Dt,3iK[p2nUfG"^,5en%KGc1jA7NRlCIY5_TT0fIK:ur4d!]5p*t^YEcHebp5Np39 %*TqnJBi5(P:*P.oWP/M!4qnjVtU0(#]Ad=[S]5kbj,)eqkIqB&`H]e8DD6>k&XWt)1A^X\*%_*NmUmK %PtpR^0i6[c&8.fBi!!`[nZ7+fSF,MN"b$2`.55rTO!N`hPF^AU<_c/uAoYTadSbO#c6.A_`W;],rjnQ81'F`0O"OiMqI!p25@i2& %\'MQ0HQm]c!BcZ\RkoSm]:r7i5`Pi9:2JB(Gb(Jm\!,r^j^hM8!)J)J]%rV?!$7XpQ2mM%?E=E=/-.k)p-eCZ$/df^F$sI;+b7&& %G&h4549m2&j4>aBTV-k,%_o/Q]K`o4r4&W"ajTgg=,$4DuTZrnEUeXFn6R4^opP9rhi8Z>g0A' %7\HVk'=^N)P&[ %[EoLJ!X5oKSG746pq""O9n?[?O%*]ZP$DNV[3,PnU#(dVe<8m3>K^?^6;s(G6I-`q*/@@6E7\IC1Ndh#WF!;tnpEq<\#Q9Zr.?-/=qFWN%@q_+!D$HbDjQ0$e"nsEP]XXnmd7p(V1O-ShkI<1i[%P)>^qACG';dC8_'"T;q1qgJb;00)E8=TTVEK %]ljTDg(?Kg_c@OdA@IuW>r^P7]8=?84`E>;G;jLRrMXJGE'JiS:3R]`=BTsV,gjgKBP"`OTA4%E5V(%!_YK^CC+Cgqfd=hJ1^P3R %$W]l.1l:,STo6!DQRrt*kOf6MdWXg!nZ03"WCO>(rbO,[%KT+Xn-hWurD5iDD)EKO)g,4.AM]8uqa3nqbgG,c0LImk\[Ch:pl?*B8mb[7Yo>I^+\EVl`\TH=f>=%rk.u6_\5!@'*n0 %^V/b,A%(#jZ6/J.LT9=[.W+kD-rE@tQ)1l^4^FI3CO)0pHJUk%QrnUah!6d+&!%?k;n@bAB[+&u@GRPH)cX"183flBVh^JE[U;eY %+Z*SU5>8Xf2>L8lWEo1j3]3FLRquiaa8<8YTi%BLbHkBX=Y/sSKAOrQP!]_&q3l!7AM]-E!/4Jj678`rS6I%#YN6bca)K26aY$18U,K2;JcEbb?.90Pp&':q5J %N\rRTE$?Kr*4KG,j2ib.jD$`d=SBPPd9XkG-]\N\pM9g!_37A_k!bn:?qKM6ZO')Z&&-UgTP0:Gb`f!3Gs&s`Cs7afKE:P,Odd+0 %R:gZ>cut_4AIjsoj:RT$HA`XuSie3eS0i/7j(uYm"=NrUpO2PljCDRFS3.952@V&6^TPPGE,pF[7`:K\KThm+' %,JqQ2/r9U)*YD-W4,P5FHbm6UGZotqmKMeIF;chjSiia@KR62Pn`18k-+$RE`06NdDl`?'DXm"XI5]5.N@r@CR\#MU1F)O:nqaVL %kW-Y7-]^5+7EHV3S;jge&ukB]&`MfdLLIu^7td(!1)$6A,+RGW8n6o\0uD$u,r+?",JqQ2=$Zu`&#au#?g8a+2oaCml_0k;k5GP- %!cP4p.ebT`q?K)-3qr+5->]Lm]pi(9`;L(@ro'InJGU.q&2j(W]\L80q[S(4#]<,9b/Lo2!SkFtl5q:-6u`0Xc`&1Gq\Lfh^%X]( %pQ$4fY'6c4F8sSl+"UMK\""#\%I8NYc<:V6r`SD[6P#k63cZIEg=/>Yp2L$sS:K+bPF"mck0uA[&cL=@aSn>Zia4iVf:#^BN]hJofGX:rR&2^32[IYp.$&_KU0jGZp39k %+j;30`==PG#,Lm%=&dlqD=+Q^Be: %f^`N)_<%..o9!;Nq9C@7[LfPnKQ-tjcfpe;fg;70_9`'i-FQA&rWQpB,nB>bIC>6P\!eXJ(eIjaAIIhcm;HdbccQ+nVZ&SXS\cF# %s+)5lAYlR=gZh+7YSp?IHeMS!(7O!S9O44h!O\cAs0PaOXSIGsbX;T!meYQAe6QtdhhdI\:Wl^(CDGF0`sq_>>@+-.;Zn)&F?Ja! %(f>L&T&WR"Kt;lMj'GAOD&lW._%b6Q+]`fL<#84:M:GlWeV,$E@,5Cdo>ipY_OaX63C8,^1[6Ud*2-jp.0^cGR3P*l>_q)@eln4Z %[2#2VKK$1B[2#dNco3:>D$=],#7$hnD$B).-!?2\$9gJ5bc/%LEeO;$P-I6=3Ca?3/[>8jTXCe7lU5`/%,u_HOo<,7*$JS/@f(dL %Ma`$^$geHOjTtN9Pe00Tl;i"e:m1'EF4#&^i:2Zk%i2V"cg8^jD_ZhA>9lWF]*`$EK1S'iS(&pf5F?Ofh6d!fEeOE3&s51@f:59G %3C;T"Dn6p^,`C5ZU`:Q)[!Zt^^`9<n\7u/SphUZ)n3C9fRN?hq[3C5kl(_99Wc4O78SetQJ`9aFAQA1qTKG6^W/.F[2BY7[l %/6c!S]:cD@.\f#8[f8"9#'V-!IBni)QUgAht6TYle_&KNT-W2?' %V[%2mn(1&\'tiDQ9fs0'=9@]1AW.A:=9;m!T8<_RIL0%,YtRB)6+))V!BO$P %s'tn>"g=hh8PpuB9Kthl;'"(t/%@&9SbPPe>S,Sa!m]$BItP0b8nUN%0a-77JLpDM-JpHJPaanZjXKbFGGgLf0;T*gH/'Ydp](=> %*0FbKl0nQOjR>(Wc<6hG`/^"MAWG=ucf5'&=04cHT(%7X>]_*.kQqcE![h!dUF/1^$#!u@So[a[F5&CcpO5deF5&C#[AApqeD%/; %0:RTZX0#'0q.%%!s)*f7q2_Q_?L+9]p`S7g]Y>LD[$SB'ied,'cW&TF7ro95mWoMFZJh:`pVtgHlWGF\%k$&&7Jq+fP+Af,TYW9/ %ai2/gZ[EYhcCK4*c[KQbUQWGFaNEr&;>+=3'@-&_);9_e^7l*@IbAeC&:jOo"pSJK.ZuVq2:,Bo/[LY4jero\I.' %*gR6[pCc'3L)mVh'es$2g\'Zc5a%^S%5*sBkP@XI4d)E8Mo8*5o6f!d$'H?WlFFYT]tYi+^EgMf8:'$orrPc1BiSr6Ap=:T+mGO3 %6(2Yhl,dqeT;8q+kWE7paZisDo)UG&dPKcGn?/bRh_S80<-*;%*X"h%J=J<.JWO.0ZGWj]E]k]rkI.VP+j#r[4mF8<+F4lu#AGRs %7.5,26g6ft%1!NYXo.5$e!MD=OE0"2lo\g"10W5)**]3c:W\"$CtK7[HT0Xq+?r_9n9?kj+8?j@dIjf,lEsim"aD\Z?*;B!-MfL# %mE;^:qu"CSo2_SIaZR]-7WW"HEB#oW$Q`PCc2HP?8U]4ZFQMI_qfd&L!QlkCs%Zo`l8>To(q7dM?7G]?F3=>`MW^PZ8W6c$92U.R %>ff;)\)/L9A+gSHVRdYmK[KOX\a")^b&>Q!$V1.I7JX(I<_'@.V's)IX$5D:>DhuU8>eQ7DpKg+Mcj>6gq"K,h>V.6mJFPU,H:NF %l'Eq1elqQA,-.hn@W"A4`G-o*CZ0\j?#>.([/L8cLI9gJ_nT^On7C,D#`YLQ'n1$o^?nH8;LFTWC8l"p7rFj.4Nm;."Zb?p0`:8_NJ_+$+MQ,=,6J42&Se6F=Ce(^aSI5&)l'(lEq"eQece"Z(\kV %5i5[!3?H$h[o9f/mkrJ/n[RnFO.`>sB)NIb`2os:"l;_Wb>2:*.gN2nqX]Dumif%d4m8j/qH&63h/QNM5LEj6BY!clc$X4Sj*b"m %S=:`iMhbDJ6,:+/HPV@:KTq[$OoHMMkIoJ,P'5e7cp\e5$+@)bA"7Pa-:k>GMID&b1`?Ft[MX:&^SLH]UMXJI?3?Bld_B.+\+_ti5#bX %'*`/;T7@2UZVVH(s28`j&\=-Z`W&$te$5;/1` %7*7hqS-[o8??(R_c)ke3--`/_'/h\+a;"OJ*mfB+t9N7ODV9)l?#qB?la?(F9PQ\s^mtde"!>gb`S=i=!HUg`.MqMeo?EKD/ %Bs0n*JpbuLkJqhd#nMajs##%]8]/;?iGYr=.1Q;Hc'4X`5Kro3o]L)Ec%'#c4)!4Yj`)u>@$[9)LIqR0ALII,OT@tH&c`_C/d'Cg %CV0;Ee%)a<>e)a;T?NXfks0og3ap?NW;DtR%OSNl743S$%S`f!=1=:5nfIteRm8*99,g@ %$&h[FRMqig1r:#fIg%>XISR@cgs'2*P9sKqpt?OhBLK?;lkYSTb0`MLX\4SAUG0VO_ %-AU&9Y&RlddkCpDDW.cD_FFhr`G1udm[b/JX1H\9^5DqNq",XCBQ7VDLVtk*BJODIAl$/TCm5lL`+=54p %n$G>lhQBSt%W1$?UArp&``e<8P!e,oJ:#3!h13N^hS!@jDA8Ad]lCFfF,/i'>ra,F/0cEqWTN9/h!C,-17$R`X$S,W)(^nG@S+8F %'h`ojlb:R_f/-"]bT-I1e*)Am;JJrP1M?;3Au=]Y13;Z.0rJ1JhkDok'K'>^2fZ]03h@8mj3W(>>s0\HN:X=':$#'.c@qKY`_Yj+ %*hV$4mD7`EgNZe?+RV1@ISJ:\;P^p',]=$R-sX/N2\@jWV`q/bIo_4@B4M]&%F\.QEE&9;WdiTs`eA)uKrG*]r`KhJ*;V5W_Iuo> %UJ-LaiUI?Y1'6#\]M20!lY3\6MLROCM]-6l8s]HZ&S`;'11KO@'qrWuH49sckG#s:)@=q'fbTkA]7HlVgS3EJ2HG]>RF0Gu:<$e` %r*"V3)hCFHUX48(2:C(W-lhVsT>S\'Y(-n/Hcr[TJ+]YtU#b^Sed&bD[[dIo+3%(UWl1cA<-^Tgr/3kT7o"rk+0HINWFATZN %,r9ICE&"K`Lns()T+ZN>1/Mk(S:96RD?+LVll1]%`]jqkZghjEi!_uhP`9'*/H\`XE_:r&Zj\oSfS9b8P]Ord-WilueJ\6T(rIbnhk'[o9=TeTZ5],Vp %m?cmgZd`=])LYVtQS7T*^!nM"1lCBl$Jf[e4nC1J60-B!Z[EK\Sg98+n5AV))0YN1(STJebcB"?mINZRebHj:DGs %Sj4E"*)KLP+OEWmRh5oOE:;$.n09l0VTS"`$i+Bh]#c`a64TFX;!?"S9nrJMTe6bFRHk4binYb@,6F,Wm9$5:-s`!P<<5<[H^iTRWCtH;tT$o:0]YLoQUDc,C8o-"2$$ls3"_Q%[I4XC3cc>4kr4@TPO0-5@oHb?$7LMnLa5e"gb7jhAM5Ik13<1pWp&j(6Yfj4NqUn^2c"im).m$6G;(W4J_ihI]S!\\#C70mo$1\T;U;lf %:kY5XN#38fVU.^9MEpJ^;:CF('OdjE+pLJ<*CJ5+,$;A+ih-RX[6.VhKJiEB/LU[K(/GW!)Gl+7`6("n'cCpp&/9[0T,^J\4hCWl %TEqE59GeK&cLjU2MO7j@6ir6reBR]jNnul^fng1QTh%d!#%nLp]cWYWEAWUHhN&Ed_:\`3#`8UcUPomrE!?pC>D=2rQ9*26%#T#] %qpBs=^jQT%F`DsVN$j)\X,G0b'"ogK5S9;l'eLiN,TK8^MQfY0d=NPbX5KGdM?jms3@,P2^>Pr`,)OAW%#P$+ClkD<#8EjcX"=oJ %92Ro;lENtEW-P]!rVbbl4qRrH!d>)-_o-acqH8(#1;M;#j(DN`(Rh*Fa3TX;Q)Q]6_B7WR@YHM\_:qB$+"N#A]\k,?mJDngD0Z1#UUn_0SpTq3u'n %'8>Y<*%g$mT&^Nl%VJudGissjM)I\(UJR]3RH.gqU('j3\n$km."lDt.oY)KbM6I-$taN(=V?G6oXf#)r=s[QF"H6NdM%o=q^hX*WB$c#qdd_iR6oZAF1Up=s,=tn;Rt%2UMq,4,]s0Z>L&2M0PGSj)Pc2%^Sjj2$XH3G2NEf@OL1EOl^.RrL=WP@ecI%KfqWD+6&[K:n@oKBn>18EFtB_n&?:MLd=aAgtqrYK\.1-]p\G1Z`\Y5R*\qu<>$p:dn5 %rnC^/]t5&.Xi\?6[=>f(s*!#nmB6EB?2M+Cp2>0Bs4?[BAh5$*(T4>@--+._;`Aa@*3,:!a>@t::d-#eaR+6s=ZP&lPnYbk2*FI$ %8.CF;UI+bjOb;a'OWb$^jeGp %<%&ii@&7<-W),ZBnN[B'7tpNmM'6#(4t;d-H:F]=q5@+R(U6\H`6K1'K5&.-,'L\NSYA`pnkl*.7\>A[/0B"j$'JS!=M@U!9_P!d %$nNKCL^CdMBimRa&/-B3aMRLFLR@ilMDMJae0-0NM3Vq:.HD&h<,75U%&44cR<.Ah@n\&$R*bdE3bQJs`5LnuKcFPgWsd%?gn[&*IK4pea!E0)cl:UKhK"c5*".T5Lk^nGSa/>kVLj[$96g0$Y-jL5"2)Nc&_F2,rleG_o#o!,d;iUM;RimhH3-g=Oac+n?fY/k4 %M0r"SQnXXUR)au[CF'PfK%E6N3@9I$#MUM0l<;bY'?#]Si_q`YJpb;gF@Db.T.Y>Vj'U<%'s\PkHt4*_^>SBbn<2FMJOM[6Ql0>u %"VteU[TPP@7)!&ibN(%sG.DeTj&RpZc`Iq2O"4`g(T5;2ql]S$>h[HA2A#[*l?&)FO>=ai(^WUE!$:%b_?MhjSY_c%5L3Wd>D2!A %[+`(cbVGOb_@]A[1UoT!7jJ`CEo;[0OEt]=VTOCp#=J,`?B)>X\]Ysf)8c?hQ894H).IoE"W\i:poo\o`e@no.BcQIkJTVs-i!bO%J(VcU&bcHNa\TS=L6R:67U*aP%DEJpSH8`oe.!/P9Q]Cf% %P@PuifRDJdi"Gh$!nU$&=`CUnCNR"bR],SpiO4To?tI24JL+VN!#Ust(;C7$[_hB"0_,!6ZRTmL?H$rI5(,`Y<]mF^[Jo@6/crpauY?:VnEf`Xgf]U3-; %8/mIb]P$_Z%An9VZq7:/k-=J^@o7kpm;Qne;:>o_R].,D[_ks(R,FPJ[_(o1+ViEZbkKs[&&lL=k&G`]gu_9Zn6i<3f)7^K#KY&9 %7+1Vp'B]3$XMkFWH8ajp-lo*o`oo7fFWZ&PQ;C;h'C-I4n`-OhHKhq%D_.%]`n)k=Ru,lcb@hFOMtJ?]`U/Co%UP^Acg=b4M30`s %8q8:J[)a1d-,@u->3(Y]GVe5dE[#GO^`2q:8;k.N9lbrI]MScLE5+r%]MScLE;$+shPbua8.J:N]MScLo %I$i"0L-8\Y_X/\!@ppU#eA*$iN_55BL$TWhiHF+j7ZM0R064VZr#MbF]F@\/dNWVbPQ88jbi&(_=S.Mi$:U3sH(u]R'NJW'D73q# %,P";5]GZ(#Os4ho^mh0_V*s1=f8q14njX)$i@.N)OZ.%5%">7LW2B-\u7,Fkn2k+q7,P";5]IBl!a;[#+ %AkWV)MS)g:'JTt32Y'd$totDsIG&s>m6Uoq2JN$#_(jVk\hTR?@'S@X5^`2&^S<:;[bj`hUi!g;2dNWVZ"YK)&8;k,Xm5o1u %7ApRIs!3FFAE8^gGV_p;E[#GO:^GKYnfi#%^`-H+ac!f/")lgdO;3&9#2Xa>$=].,OLts(=9n`+PS&29#2Z56dfPXjC>]Pl(O;-% %C>]R"'R>g"C>d?"N@l2rUB]Ro41;63)qE(tmn.kf\,S@46Z%pbh]Kk[=!QE6q"&]=(5q=GH?=T??X&)'_r2UKrO_agHZ8'@:Ys.lHgYZ^iN@BRHLoX6.EiU4(+\NrT"_RY?RPBpYB;F*8H$O%_`1I5%q5q6r'r;E %h9O%VQ\Sdi!oi:M*=_pt*o,:$49[Y/jmh>sah1"P&sK:"@W2eHDn("EhU34`mc9glHAF^J0DA;E3Q[241Skm!6&!;0'V<_0 %S-8(BX#hcAjs9`ADLR#dgJUm*-geZo1VHXC-Q,&!#U=b@UGP?6%t1E#,COeI=cAusg73h;j&&;BVK.+42(+gAVLP\X32/qc%eN&V %$"p'[!SsTnOZm8dID.MlHfZJ`2jVgM<.H0so?HVgGr56N:$W&`*OJkNP/+pI1gG>F;H@1eL0b!"_IXqAWTOBI,(l5fn2kB[d_u( %6Jk]+WI],6Ic3Z>qFqumF?K18,92i5p$6-MD5=t)4\Ra-lF[IOgRDC;iE_r(NMf?e7]+X`6!6Eb.-#C]DmZ"'fN679j19kY!uEC( %^S*YBAGbabX.8PqcO45IJ23:J7jFO3;SIN>mPaV@Xd>pYrGi*b74k$=C8\6cEU47Q8h"n)#mS4u,pZ47GT]\B\\$EKq&%$`7?=>* %oB8Ej?(7d+NCVG'bNNpqq8"EBaYgq_2Afc:g.%G0A\>J$8Q)ArSf3\:L8[uU4^eE1O=Xh8W)M,VD32Z`7S)0V1O=<6'e>@#%r!6- %F"#,n5rUiC8ro@e49$c>W>RjH-$,sUpbR4]#-1H:kV5.?Z_mB)1O=h"2[;iFO$BCP:(9a0pEXDDN6Ki=Phtkq=f_RqN1SR)/>Ysp %C<)u)Iq/Z`B-"(X81n=%S[EAR),LDC0"CY$;gS?Z4euGp;gS@LE:d99f"\:oE(BH'Vt:f^H>!6irDH9S3if7QCO=b7%K-?ElFeqa %YU`]OP.BIT.2X8k2VqP++ssd\\NbJa"@r0_VJKoHY/)Y]h/fWm-!Q.aBl.>%rK1+.e,?:Tp`76@8MbcB"?mINZRebHj:mSm[#M/pLbb9MW@6"N;llaoe_`i_04"Tk_V#kBti#kL"QaGl[gEk18:9YBWp %r;EP*]IYgkfC,t7V19($.)UGI-Abt4;ZdU7q0Xn\"W))VA-_p^]iVO!=*AA^2a8WM_*`"_`JKDMhHXE'/psWIOk/=/B6g`HJf-(r %2'^M9;4&"k,-X5ZGo',Qc!3Ngc3T?\%GdIgm#UshF(MiC_Nc)R1!S+7CSYk#Zo29,mf&^)RL:Xu8F[6AA:u:o0=t4EL@U<1Z0OSK#rNFGPCqF]Z>JFP!F4j3'>SEtft!:O&#SN=SqE%WK>*D/?^'d8%&>J#WI"Z1p8!_$BuB %f,\*859X3p[bkm)=$uCfoAsfZDV@dg1I.A+DntAqhVK`cZrcjWGM!3lX5i>6lfu$o&,YY\SRc`Zn?1+Ok-gM%D3'GMHV6mJl+0.[ %0XK+SC=TZ`USKrf\Y3C5>u>6DAT[r$$0mbFV!l7c]UoW0@e7`>S"MEi73^VX018"j!DO>_C(q\%8[6'.j5+Q7",`%'G]Np#,/&$L(nR)3H5@_L<<#]a7f2q`0S%Ur[+1n`.h+"DegXoYrCq=q4d99tP1V%s[ %o&q]J?Ig`(a.>MNHZ?eNYT@$p&-mU[f5T<]RI*=\Efr"WG?:K/HMqcm987X]h#qb==*bmL]bJ>]J9mg*(>i^L,gYGF5ead9fhb5)KD_E,.Bo6j70)#p^/pn;UtrrrRn/3Fa@.JNXh+9gW+Pr293?]_eh0 %^cskoA2]1Gp&me4=DZJCQ^cPs>LH?DLBJIRZFC%@h(5'h_I'WL:CX&>U?$2YjQ(*P%.]clE_Tt-]O6)s_+U+a83l+*o[=rMl$p&S"X``BIfl#r$ %TU4&>0UHi=Em4,QI-L(eTl8p&%sP5Lc;3Fa5!JVBE\*J^gkqs%2n#h'r9Z00^j2R8Z"Wk#?UN.Mr"l>-c'0ENA^G:]>_QUj2uBRY %`C$F\Q/S3q.c8#5*mhM3di9B*"m9I^:LXB5n[$f\5A4[mip3@K7$NZ1p0I\%DSi=A.iIN\fXM!r+"f207h,Yr:6A[o_JqkK=:k'V %c6rCF$"d4o&1\H[Q!*&l<`F="'mTSsCr?2`bcD@!_HC0t`o]^\e`\3,A$Sari5skgq^)V[8.B)-"&in_?ph1S.n#1.kXsu''MBPi\8Y`@=lH's$'d>MI7^c5'dCR'FMBLb %/%ifX4nKB;MWcGVY:seR-m;hJIZKDnle/U^IFCp7TgpNC@24*7/fW\q-nCDRh^J`h.YM4F`kC9]02LIUqXVLMa4Q"7!ldApD'*/U %#-755&"`^C7jPr$?qIq1dbAEfgb_g?dmJ?!fg&EN*%^pmm?7@7$sbjq=!8!QJ?3m',-Ejbm.dS2N:ulb"mQ+B?TulW% %F:,Xt/eiT%Pth>nG2^R/XE4g(YmNp+B2'(,Fu2=,SX$es%&37PF]RokqCD^/F]RqAYu1p%?>$[8XKs"/]["Z*a*UFPam6#a?)D+C %PLj#bo0f&tkRa@g1IF?p.U";hT?s$1,M8Y>6&EoUTMl`>VG %4BWbp]["Z*&)$^"2q)p/C17W#hno'.#tniEh0'uV,Xk@,r3PMiDl;Rd2#(WfT[k2Y#KZ\=u)P,G`Z1L"gXadUqXF4Zs(X"`UW,o9k.YtC8T;TI&i;q06YR'``,8/r"L4t"3W3N$Za/bW("EQ-S[.mSY=+@>Z&g\:7t7j/h%N@-Sh?_+"a)^e7Db]e@D($][-fAu^qe66B,P2"rYjqIe-eLTg8[32_XYPqN5@ %hfnOEWUaUKnhoQl`FlU,S+fQ9.onU"s %JUA]sk]HB#`Oe=DT7(%_+-BghHhpl6C8s;6&GIV\/?;NP)sCX)X/o=8M:li4@ucTfmhZW)Vl3jF57Y2q;r4$IJFgW7P/[$/Ri9B= %0Y:qXA;)#E;H*pnrEB4">5['dg77f(rVc;Zi41EnBGM^qlO=6Oq7'UYOI\p3^jTo_O+%'462X:3mQe?CEf-&@6!^tec\jI %GaXBs=I$<Z"Im?pST-pBFfe/F(\A9`8kkmd%BB`<%! %bl,sY$[nX3f"MKi7C7`!M'/JpNB;h1/9n^0:Oh5elh?1*!IDL#e4QXpikc\H %$kqa-D!?P*$Tp"dV$fLa!hF`\UdRbH"QWunO:o:q+O5RFPM7+7A=bO_<\P6Gi\/Q7!AO6:)>9"'gG8Q2mrQnm=!B=,[%-@SpkpG?%V`:nFD%U"2RH74FrO %eP)WYFB=2`jms3UJJR:EM@*K#($m5$'g",a76+[PkT_hs7=gfD;&/d(e4Xfu76qtA4F*K_]5Cna!hhc3a.+p)#!#k`*e%g3_h' %_gL@/=D3a=ZA5c*&\2>q_?bDHEnmn\S2r/b(5W*6o[doF>'L55XO[>Jb#otsbWdlrN<41n(T:F2$HsT-6/S&CBTF>-L#/)hTfn.O %T(.IG$LKQ9p8lQ[=eWOI3h@N&)>s-s@2MJQ*kr,tOZcsinG#q6*e5;H#bZ*.Y^)`2%(<^qH:VS=j:/V+r*uSiQs]&L([N&D=mql@/*mH0j=>Ou($o3lt#q7%hYpj=_Y %(3EZC3p\9;E5$pP072ted.n%B]q"NEo!*BF.2/P\W'6S0,>*A+I51OId#VAH&.0UM;`]R5,:F6`F*4!Vdnb1rIO<\j'SbkKC+IQ, %DD6_Fs1cSPZ9pf964aLuU!RG7#GJBVI/T?IId]c5Ttls11k&W*(VFX\Bs^3&(t*&f%Jo,%r,Hb[(aX\So4J^HR6Z6BCd@U`e.n6: %<0tj.rtjsecocHG.?Db$PU"5"gCp8OWPd#H6W?;*.qaUMcGu9c]@<4H:J`B&S-1 %-+.`>]#SQ0'7K=VH#8_Erp?s7STAte](r:'e6*7W?6-?WB*$R4GkKC2nOPTr;3# %=%IZGpm)m(=%I\]@M(:4>dNe!Vq4ftSp]o"ln/"PW!4&=>;4kJJk<5R\EN?R&h=Rf*/nWN)'h@WK8XgP1"]^om.2'!D"cHU,nb9+ %4_JsMXt^gL5O'URB<1-5s+2%+pq0/UrWQ7#lqT/LpCDbU]rdqe,UZ`#])V?idP!-U#UcRtIZ"ME:kQ;#d/=Zs26<`_p0^CjQlS%M>oC;:Cq.q_9Z_f6Vgl,T!c/^ON6n:Vss>jtbFs%#Zk %mOWO`DiEISeO7"0GI=$Q?i6ZpiUdnW2R;jTG!p#2nk1J(r??2KP,,\=Oq1)5`Nr^"*iQ"YIUIX2Al^#5K)(M!!9C?V/(SQ2K*.M'3Y8nSmJg[T&$7)B>^W98#_>4<2 %/7^/n@!uLsOi8&-YWdVp+_]DcDa$!&$/=E3gsZ(^L$bTX*Y:DUVhbSbYh^-OYM14k+!hh1[a4cSqN?),FnqRM7G\f)JF`jG.`%8t %:A)c`Wlsl/i+*X:X"M0Y".^kacRO_A"$SJYX"Jn"0)1^EXh+GU%rO3@n"ADle(5r>>"JqNIO\i"b[#mhD[J[XMYdh=?Tb$G2ookA %<9l0'(NI_1/]>CRXMqd?NJ4C`2-9gekl2`=Y=$b'hl4f:b(?m%QgKU)@U2DK<9r\R`,gApn&5&kC:,ZqZ*$N4,$!sOK/qj?3R"E6 %QV)ceEi;h[/sQE#o!D.?`SV$;Mk0drXW4PdqCLD__5@n_`f#5H9X=q^6B2kU-U5q-&T'j_`cr)sPW/l+6B2i_\V4P/.-,Ub\3(`5 %7]*cEit!-pVMtn;*!8YR4)S?8E^n6S8B37q1" %6B2j2.XqaT^VLLfVm(O48*q!;#P:??1sqg+gN\jTEX`k>*&$k;mUcnFKs[se=ZD]JUQFM)k+$[J@DHR:\aUY\]Ekk]a+0:.?DK6P %0%tXK[Ff,:bUDI_,f=k(LqD)VrgmKD6M9AR$XGdiX-E.KlV#kLIu2LfJp3bB;%tATp08U4U2SE"k*l;fmAD%QLHTmNApj27Gf*'Z %??k[TbS-DbKCcs*7,g=kIW[IcTu4$WVWWds40XIM3NQrn<4>,].$?A^"Qq(_n=)*-#1H@g_Jf-.-d37Wn,8?cPAKhY[f7O1r!$T* %\(Jj_ghU_OV4fr7!3+p9?h=e.I1_.iI")Xs@hFCOI*jms+d!jqo0qP-4]_L>\#To/+;m!L[)jM%`_&9QcSo"&W'kaaipq&H*M#-1 %Z3V:8&YS`-V:=S!o6e!3a\e:^cLXaG),k7FfqNQ[#^c"9@ft[:Mf=Eh5?m3("QG]EaCGl:+[Zd71J\e>%9#&qM[5M8n>1#=1AFMH %e&sXR,iUJ>G-.T5(V"(O0#-cCeB*H6fi??eUku0BgTWHQ]Zo'M89:A?MdM-6[l;Lk*#.#T//qT %i.'\NrBRR&Q$Bdg/?W*EL%.[clbhI=05I'@d<+dBHk\"[5odpj;QW^?b^BB0imLWT&400V?cNODXR:3/i?rrqo\X)BR8VPkfCHnU %Z#7U-^"MR2?_/5Z'b2!chooWTdID8HZcuT$OkfP,])uoXq"3`qDuK##o\*>n$ug6&/%iW\#(M,:miJV(o#(1jl8.;!oX#okgBLkb %g[2VnCncQV$7!_3L^joA:mUMn %W@lP,U:Q9LB=Ufj@Qu]dB)&gjGH*jpZlYjjdn&I]s-9oT71UWH\Jpb;i %'lpNX>O1O54tMcPqq4Fd>LOp3lQ^ZCCRO-Q^4b>Xn!h$uh4.!$8BiBI=pBaMk1gG\]kKuj.YUPoQFP4K1>&b(2hWXD:#4bd?7/_.VeUtE/+95$ %<_m5I"];ZYqPX-Lb^MfqOHUYO\.=C41WKb#.[t`8i1dnVs=2Nr/SX4eS4g/5L`ZSAbX_&O>isVm^ %b/UWFHB+HX4/A:FuZaP%bp6cCa)PNI:ts7l'l;IG_^V_jC5tohEC?Y^L#t\:RmuG;U4=!,Isi^]IqLJMQn1%t;3I_\JOZh"l'+ %)n[aT'TJTEl]W$B';m\1gpIphQP_/aK$cR)aDt8`8OM,]Jl(fNeoOHU8s:-PoA9AWlttht*n:iCUM1oYd9f7,q[GljCcRT;!-1WG4?9rckP1OXg:pdWajQn0ru%/!d'e*k&B)K+7aT>,s%F@b?.c'VHgnmDgZ%dlskM %Y;`c%dF77$?"^!V]+r)fma$[3bcmF!&'E)FE&rrd"irX)@WC&U;)CD)@)]jd?eH[_,Eakd>4m#=.W+g%QI'.?FHH7G]ItZ$NQg51 %ECQa7<`)4b+E>d:^on/HJ]'d>oKM9+96-Ja".Q]Z[M/]*\YOC#OW4";b7BfOF%QDLF%L`*Q'OI(A@.8?'re/'6FYM?^4pOb)fsrX %H253[T/E7qIIf=iND[+?gXpA6)7bZR(fVumLS%Woj*@mc?X1KM>OLV82VpXbSfB#5CP`QRr`RA/(VcU& %*XR&)@9Kk!V:O[>7=th`$Z>W_gb0'$jQ,gT\.>YM3:o:]jMoGD\Qj/hN1_=2QgQ&3#b.D[d9YU]Z03ggm:54A!lge@FVdVl.;B^U %oeIWL_Sf/u@o6Xn+@.8SGEGjk,$fD\WbZgKEE7&BIYi4naZoApP-:7-^8tqlJ:AG %9U$bn=EPMJ%URuAlB\fHpY2:8a[bl`,Z4='jF#)/hJ$+Old)E=?I*T4/.gRia2R73P'log8gjS)*"4UsXjrr6T']t=bi!K)NX,Aj %p*12qglSimB&aurgK:e-B\]0GoWS-[%=MaVa+XtZ4DkdkgO+oJ2j/h!Otc&Kb)mt7SrsqOS(9&>I3e'X$kCZc/@E6tNS!XW=%566 %KG=OC09M8?iIN9Cn+l>TPiGb#23nbY#nkQPM'f4DkdkgRR2faQ"Tfb1Z$E`T&;mmM&YZO./PL %1EA!$a/q!jNZ59>=LH/j:#TJC37oqNqI*tiM)]/Eb:FB %r=XPtM2c\6BAWcZNo\RTbUd!Edn%b8&l:E[RRV3IQK1N]jT",o+22FYGXPk2=.?(1o %+HgXO$"g5@#E`bR<;leMmf3^Y6B%Wuf_0Z:?Q+>U8rV^g,LA+sg %A+ZTR3N_9S^ZV_]*M@0qS+XlR3)(jZT/14mX%t[,c:t<&E0hb[hP"`CT^cXl_0no.d7Z,\Il!LcR:>&-32qhYs"V?S%ST2g^GGRbE@H^+geeKmll'HOHtPGRU`Op/Z4MqSpDF+O.4$XAiWk@ro8"aWO)A#*gk-R``kZPfr1jU(65J*!+%E;0n?E;o=$S6mCqD!o*9cqphLIJFc?CQ#?$Kh;0VNPf8@W)FdruJ3\n %kFS7sLFhqPTC6GIbB*7$d6%1l:;ULqo!S6*WlE)D=>FYs01^qp.jgm*XK7Hkj^HW]*!=BkL\-?/3c')lbSEApeBju)LDD2ZqEd*S %]UdZWkOq)2^),j=\=>5Eap9If8s[jsT`rU=G0Su!5dgn2(q-m"\!22R5]r:Y-SUViP/p-=*=mR.hBNX@Ouh8k>JJ;rHP!qCH%?VD %ppN,hjMST!%2`8#R?@r@HiZT:ogM]=j9lgAWfNu!l1i&Ci!eO53brs2jc2V>p?8Z3mS`"%L)p>qNt0E&nNIgTpT6Y:ph`3`MU/&D %3HI/n^78.]fs?C`hKWa-CHj9uAApIRf=!hTGiJ/YS^1%&MtU)/r:uqh-H&X_?5P%>>2q&tfQ_;S;N:$&QHJF]fNbI3LXel-oQg5T %To.M0U>YEVf3ca,d6_k6?aESf4fNohTA,:=@#"kt@e$LX_h@S6\u,a&gj7&aouU-#,X#[\fT?nGKT*ON5u'=R!VZ=\P=Ir3`cEP9 %LP&(YV2*Bg]CN;GnWhDaejnq` %9W]D"BZDNK>Nm16t0c$Gue^Z0o!Gm(pSkt/S:S?83*6kZAl!B %&llk\mPe2SHDg[E!E5eKPY=(I_?PliIcSl%>Q$-@^RtbXAcQ6_[X3PUr!u/2bW+Orp#YYsaqUeD4<&F*D5NB&d:'N, %;pqKtl=qb*]Al`+5pZ\S_ugM#)5.^fmRUIDl0QWiF<2e&=96D"GDNA=SUR9[27 %]>/?e[hBi2;\T#jigP<5=?b]5QORgg_imYl#C["njYr_gQ!YR&p"o\"'SBif%rtMD``@"`W2%33`BVTR??o^V9@*g*b)(!@3 %f!.4mt#fh8eBlj'`k>m7o&&m\dN;(LhU^-;qh&E".b_EGKt: %[iSW?2CrW:f"O33^"H`7p3;#;I!?LS>W8G41MVqoHM^?Ro>Xmaf"AY2m/=(^g;E%4rLV^^iY?%0ID=F\2"k9c+-;p@i,tje32X#D %L*AM`F^#'K)U`F;WlYk1OIjMDuR)`P?T-#<,XE-Tsr^o`@ %[-(i'gKB1"Q9N1&q,_9$F]a7o($rV+E*0n_W>ir3K"o1JZk%7\%YO]pT4\bi@:=&>'QR<-r=t6+N?mFM`*it<=c+J[-.lQZqSf6@ %]_Ie/Y2$OK_\+N'i29,:h]hnIV@j\g=G$JdGUCUQ=G"ku,0=7"p/h1d5*s0-k)5'nr=rBp>r3m/6_AJ`HDmYU#.e_?"F>)V"K/F_HHTS^V&6>IJQ2qghfk"6)"Z?o[t.2>P*,(Sjn*K^W2 %?E"?PHLS#:,r9J.+$A/(?0Pt]=-(E"K#K*=N+]G<_;^Y/4Oj,g:'01Ou+>K$8%lD+/!EYq$4N_>)Z"L;QXt6Z1dIK\ZjE4X.cq?XI.KUFjVk0bj<6\\ph'8*sO6&KiS!WZ.m.PQ!S(rE^oBn=rDm:ZKem?/9VsZKOAD8^5W'$Y(F2^!5s%,Z-dpB0Rs?E0E[2iIr%C1 %C#s*"D*4EYB\.[^-F.4Sdo?(i(VFSE(:`%5=TpTM8`(1dFijfk4Pe %7<2h4!5i9(GTg,r:XD2M+X8Yjc2P%5ofbWK'IP(Z'4 %dCqitX^F*HFJX+erNu```O7Lo8g,K]d$+K;f-Q!\:O^Bc[=H'lL@k5$"XDI(;h6CC?K7cg!:'#frH75rdDs9soql"fllWTM9=Lge %X/"!_[\A3--",HNnXQ,s1jDaO)4;uW!bkQf(,9,.M_"->!foi73+tH;I)`gr8.`t7@h<9"f6Xl&`$"43rn-iH`+'K9fL0DtcY+#d %fBmWu'n*M\^aN[T>Y-K2-.t]K%'PIa7+snKU"*NQ %eY(06[ns\T-4Mu,*/WAX9BjKf]c'S>pU@D7ZJoT?%,5Df[#$?Ze[/1q_J0c>fL/16`,)3I\VP.OHo5tp;%GC;"(tuf-t9E;B&Am) %)2.U:e4)&ferna(ek>(FfgH#t@&:-#`A9L+*3u&mGjQ[/.d5,4LN^$K&?!Wn:O8n%g'FI*J3)$%I9%52ZSHP#CP>p3lP0AhU"X_8[2>Q9o5VY^-^l9MoXU %O"\Ld9VFQI\<>cY\(UZVdc^l\G+55Gi\)6\G.I_*=EEjD(V:-Rd\^I&6F0&96fH]A=H-P66NXS]rl`>@4+sbIH[7*Ofcf]-^-"Be %:D(e\!Rooki^GXb,eB(J5GjZoG9jlNc>dHfR.qa#24:>qN.(\(T"b$%?`-US6lS'>N*>aj;nmqefD7M8(G7JgC>.4R@^B@,oX@F\N %`eK4OkN>DXpC\X'Z;PiX[E#7?)^_R(kYZi.':O&%'cNn6[MK'Y$g(cK]kJu5/&tnX5kAc1H;IZ6X(Zg`2p!d&/C9[@2&<70_KVgZ5!uQk;M6kBPJTXn.fLt2 %bre#$\kNKe@-5S9Z39r4**/AnKT'I(acR)@M_#RNZI"e"ZC*(Q],1)I`QXKYAJ#48m_t54.gqnrhO18QsD!L^&@Z\arXAkBA8^u)&W=V@hfd$c4D\o,fe'%oXtT*3_`a[Qa^Y!*)#+I %-6]>sXB(X]Z;DLXX=VDAR52)o>$3XnX<^qO;J3)0E+;0Mo= %i\,hAV#Jo4Yqc\p,H6135D=CaNV=Du,0(F0#ZHKOZY4QZk7"*.VH_JdhJ[a,*O+`bF87RD)SJMpd4BC!KcA=+f`CtQ7<54b`m[YT %P1Vg"'*0,XmNZb[b#19.mrn8]CnoJ$F*58"F#_Zg(>!48hWkP*SAd@SKaI/5_c\-E@,YBOZeS`o!u?)DLDeAm8$f5AL]8Pf2q?-8 %BOs2-Cs's7['J]'IXX'"b`ZXNJ_m;l=V@hf(J.CB/+0^KeD/ZMO/g$Q'kaq[d,2P$fR"DK1Q0f+EXkRHZ9hFih%pWTQ%cBGBNe_h %P?$d[LaVM"`s)F61^EGQUo88^COS/l$gE(sRC+Nlb/2WkndCV.EWs,-#R$&]Y#t:)OpdG#<`\E8*1)oo47Egr,l+Mm\6jLDZM:OQ %oM\(Z+ad>A%,)#SQ0#M]P/Y&[%#O1QfPek!$LoQ_L;k'=N`f9XkTGDCB1g-[p.)j\7#n\h(#W_Fua9.$a''jeiu#jf3`=VmJHXg>BdMG %G[WmD4"I=Tot8PRgMWBY/q3qPdG)Dsn>.I'.M/eIV/cc3$\,g5+dFiSSkP9k)'l>r6+o`q\,@!*Fc%qfGG[pk$sJl]B/]#ZGAn3T %K=8N?lMo.TpQP,!kHR0:Ms"fs+J]6VSAC3J_E0tpO@0sSmn.3;TO[Za5%]U=:a++lfXl1L]m)\#?U?g3\rIJUQDKDe %(0?G,Yg.)7M)f&LVAU8]H15?SY*iMI!k-b7GqGk`)7%me&OauG7([>d.o]ckl'KeTu.bL@c&5FoD(dSq>R5b@)uiuZ%DR&p#iQT %.XosqU8siman^\#ohdG7AB',rY5^hDrUXb$;T>,rY)d$?O!P>m*I %7n@`+o8Z"Z]Dilg*o3t$mpc0q8:n>"d-]#bgA9cA#Q,P'J%U_ejphZ5::cYn-'j9kn&^n)0ZEr;\rp:l,HY:O/T)HR%4Nh;\2:sI %ho"S>^).8)hEm:Ir=efOK^81us'=lu0C*kN!;FiAlRlMXlQdN%GE$'WSFCqSkY&VfmM244>/D0sqK.0>oU)H=<[fe!p))3D5^_XibglS;pS;@n*VZV0L>ERqC!6X]*=XkSJ)OM-;n[bJl2"M[\YSFH+u?Mm29#J/"Tc %7tjnTJQ+o_?d(\Xl$2t0A$RaMjGSQ@+[>e>TEMbOfchSH.&t2!LlQl!5Wb)n^-L<&eC.,Uq#[[^*BQBFI%eMDA#gcH(FDLL@T&;P %'6I2OPgBfNJe_#f0(4)G:]?k,\rn?e"\C^?Hrip7$BfF]`nkt(Uu:L_Um)bp9RI"203hGG@S&kD7S\VC5`1(>.Hic/1\AP!@1Gg8 %qCeKQcjN:-OVBq+K:s+$5)_a)d/Q[ocjOs1859ML:8=Ze.C]7PZXg@a6?R<7+4;qJZq;NR]Y,\lCIlf_%!Nkfe:p_4Km^DIjs[a&u#:0c0!6Gd.s %palES@&a^JA.6=MpIZ7S1gd:oS+2P#qZIZq*mXHK+-@NZe.U*fL6b_WTpAo^_,"4uFHJOE0Rf7V\=bK+Ln9o0`!(Qt6$-EY`WbaN %mL'C@^"(QkJjGE^]XXUlJT\;SFd7^haFb/edT%u,bH%`>FVUk,:cL`n?"LZUkVH=]-EtjB$&92TdT(HgKbl,XV5qs(R9NhalRG=4 %T#$RGJ`UYCk/.LG9jj[hIQ3i?Q`dV.T3GHhVI]kaNDq9R##!5E(:qN&i<6]5'mbmo_$QhhPt+p7pV,-h/-ah@KOucuY(CRCJl*5S %XtnkTd4j_=[!C?L=IOpN()/p7ZS:4##!5EQF3>YS&+rV.%4&H/!C<2S\YZ'^cGkg<0mD>HQG[f %!m=D3N1qfo"I>bdcX=k_^f"-g=:;.)13TfG@4eF@b'7+TRKXIIF.Rdn]mMW*sUIDl0QWfSd><-SQ<5=2`>eu[V%<+UE[2Xra5'b,nC8^Z3A?sqZ?Cr4Q`RPl,>e/WK %Tg#PcETLEr7q>hD:YCE,Xg$!$jV@Vq,I=M:BE/i4EFgilU]W5sX%^E\OUemoFZi60>8a4]l$s/6\,puo[(Og?#I+kEc#)PknnRYu %mo7TAB;-t`NL&7D4!EX,tu$bg4C>[Cc,a8]AR`qUNu,Uj$;6*B`D9IaMmlg\Ij%4]%4(PQ*fE, %6S7%DHuEY557TT"XENd>KKgZCeK,[sUVCg$b7'GM13b-c];VpO:(P^hXHD!.ou1?O\5R>*R4`pPiH;62l`#"=pjg@[BoEh+:PhIHQdO4f.@h.'96eXaYaX+DjMPO%pRU:*)'PZM+X$2qg;Fa=,=pI3!,e$@-<]tEqjgIaC %<^L-3(DVc8SUJUs;R?):jg7UAoSKdWQ:\L!Qol2C[)E'NLf#C'`^+"5k%#5K*[e_)Cqdb3fbj-g2K_ %Cm-?4E",!5"4!"La#3X"%>l&1Y/(?Y_#;>_E=FG'7.RVfMpC-\;Xa%;^^\po@,?MF$ZY\g-YgJ]7Fgn!S<+I]UdO*m-V1..W-CAoeK4MnT$W`R %YMtCBn74A*?"hi2?TmA*-X+@8OcMgR:agGUcpR8Fnmo,.S@7jS>PHWmn>2t*6(;(I,kO2fS-83.gUIFf'&o1$h/4MmSU]B:sjF@%e^\8aX^g\iT_6tb#k%"%e" %H7rOc[,g1K-enFKh=a:tPR&5#*)B%\Yjohl`hB_'Heuh(kNpSUc_JeI%5"r]\:g.K/)ID %BATJHEFU4tLu\1B$U4%_B(*j`^,3OgU$c6/6+NM.jIXKD/;f?0RK,$@`3]3I0C&a*L/%nR-K*:X/8JU.;^o!Yf(ZQ^Q;U %?Xk%CiQ7b/OI:aO3*U,m,VoZ>)Re.c87kUo"&j9d3?O&fk2;ZOQC8K/bZTo0ZVtq"+gG;*r#K!JC#!`?jtPPU.5_ng1P\8j9?WAu %M78L-S;5Q[]oqZQH\GM24d]2uGlJb\4;8_2al`hS8'r#]F!jN8TAHRY-6!<6X#(G(c't08#k"J&=FY*L4s&P0&,$?TYPpf%m!fqU %&qIPQ1`j[q+.Ikh4tT#id\H,WR8&#drlu0W_Rb3/(K>'Ag%=\/%c;heOO2_&C!!2d+\nIJq"OE[nX?\')mFQW);n$r^m,n8^"i*7)C@JsRG?o"2*nM@Wu&cX^bZE[nYj_W_L70;gEaOF!/s0;#g)/9En^eR!J\ %I'"RNj]$?t1p]gT?;=KUMAdL0J_nKp">?[IbDiEr,^;?"@Pkc"3Uh&=]%j")&cob-(eTqLjbC6a^(YlhRFm/Vblb'Np;+Joq:Sk: %[n7fPY'%m^0n[J"(oibWj]$=^9Q<[WQQ,/ZXnd>F/^CQ.bRYc1*g@&`"%'WD$=;onm:>RGX"+ %#/$I`/iWJU-,Id(k]/',_$hu0I't'3qoVa-kH8)p?&5d\glQTl/&p"c*`qJ2q`]\5JbUOQQ0 %`&4RNir%DWUS%LmgR.>FFZW*qeXtZ,XE2qUYAa*]s6L6BQ/#_2(e2sDlf\gIAL'rcMcaV0&r#\4?cP20obqA4C&R^E>r]ZVc:_Q" %;,6cu]Z#-g)o$\t<,25n`9Jd?SZUdmZOrF%Ke.**<.SqSiRUW8t1jnMEa$"-oDU.:]2B&93\3 %66=%j+G7p\ciae[c;Z/ma01glajBRiF/8m`Tp$?GWB./-C4J.c)Ho;g"Vn&8$Kth1o@^X&=N"IS2L=\Rof49%:QWNlelBmsqicYO %A'@J,U48W\cbIsB/e#`Z4nMPH68lRRi$9IU+GG\BVm-"\=@`D&UVg;PVFAO=cunh)"">U3lmb\oYIfpH\VbjhJ*Q:AK*@5P+m;'1 %m)(M!OiV,.7Pd[`"'>YQCA?XiE>BZ]Z7k4!8L"JS>h %2i#u^;skX<&hS<&N]2`!ScEt0N]6.dY2(83F)noR;^55s3N>$)\SiL`a!9>P)IE(sG?.,,BeYfqI%?1?1sJZTfi_RE1n*Pi'[A+! %&pF8t`u.UXZrj]1BojN`?e1/b.]_,nqIgf6_+oJ\fqW96(R&^L9T>n]B1;qldlK]P2Yfkl?r$Xi]G0mL)CC#"X[G:?`mZRVIP_MF %CEnXTqK+N>^P":*Gt6mKVsgM\Ge\N\WYh!M6q(GrM;psYba"qTJ.bfDUO@V;r],tIB(],0YR]8e;j4"JQ1qJFSH&QFUZU41dFDaB^hd1JXj2)'[+ %?>Lj_Ze-F_4gr]\l5a`IhT?(E31O86qQEuI'$koAo\1@_=A+Y1`rPIrZ@K]F+0o-"XM&61Ok9lPd/kO2]$4kb9eI0 %TEB$ds/c@'!ggLi>\Ksh\,NA?F7lqaNb%&&Xg>DeHP;n*A@0UeM2gV\CW27Ikj;^tpek1*FE1)makgAe26tL!pV-D44Ne"08C&^t %ou]ZbO=pSYT&[]hi9LUq#A\6#5Q0g`X-k"$\:mGPb`T3N6,G.E8j:jc$6d=S5E*4cU/%H'CVdKMD8?O<&\`AEnWM.%.Nob" %=Gc"[`nj]U1G(?Fb;@(Z[I^$Ao(29.]MM?AR>p1+4cnPXH8Y#Vb=tWpe^"XfbYc"HPrLXu7qQ'm2,"2'-MbV3lXd9h?2,R/+.*QP %7Ls,N/*i\X7]!Og`>jI9PJnp#R]Y]^2bl$08^YQM]&$2qUS"8,a,.2QF>%b&ODN7"fr[b&ODFW"Fol`T?%o-Km5]<,4]7dA*q:i^,%sHqWqLP*f&,3L&Q%!?XeTVt(?Aq@JP:V*aXnBG$-S:k8bs %=(rKh6?1o31_CTld9MZ$N)7I-.qEs=qG]8OKE;^BpfGL[AX!HhCL/PqKHanRQQSWbTC:iu%\\\a.Yhjkhkq+Si+DS[r3R.%5*`ia %h.\o&Pqea>+[QbC'[\d]\"a\cce`%)LO'W0oES=$UMo'c-)s.?m%PlYo^j,V"Nul1/?q)>40V+nX/s$;b7"H@KMUJUqXVLMB0$1Z %$fEa$Z*&Xcrdn> %*IIc2B$l*0i).#BQ!F.)mluTNepfcBf+1n$GF_\aF_r_'PJ8'?^E:2;1V*%(G&46WqZlsjqQY?FJ>^fr>11*6i[=FNBB80TK&joG %Ne_der133gRRjP@5COOJmo[Nt:W*(mIe@=h4o(di4<^soQiol8'VEVK?kO:gm11Op&`)Ni %kh.eF8p&n*M=V_CIH %0OtG##U/g'3HaqTa:]DpHLQ]u3Gkh]j.VadbTjj/8*Bj4k-K7/)kSWj6S*M&NMP"_d;V-IfLHJAjIhp#05hf766K&bQ!l?#YDpE[ %oEg;<](&)OS)F!W\.Snh&AS3Brrp662ffiArrZU]SG&Ro^PjXVHQLkn5i6ClS5%kb75o$i;%cM2==pn:+JiKTNCP+*%Wc#>!PUb2Ag_t8G$o9Z5j_*&%MT9c<&X!&T?ncm;^rio@5V&n>PMA-8$?o0Ra(\3_;r6CB;^'JpNhsiDn&GGt5gquB%/?;NP)sCX)X'F+S %Ye$4a*[W..>N$8QR@kmHg<+LN.-Fjd[$@A3*c)E_>62EGRX=7f[]41E]=I(Sf)/S7I$bsbrZRVnje#4dR9:0)/G*(YAsPh8$b]n\ %Al^<1b?r\.=BY,eAqbkj\$CD:;4!]YO1q!/'`o($i<_'j>9,DMQ!g6"9!.?U4'Oo_KF'4)/3u'oTdI"V-YNDrh(QT#=NknmJJ2-A %S+;.L`0_pV$sk#3WfUcnX4R8Jn4d;a]93D!(d*B2s.o>kQJF8`RDG%BJH]@X(qYB3HsL4^?%I/]`NYZ21q0%R)#_eG.rPUYg>EkE!@i2"BOu1 %YFHL(=rg2;-o7t:&k'CF6DjAK*D^ImV(O;=mP;RQG=htANV6=(i)2,$E>^6l9fsT]%/tLR@]N-+n"Nk:h$gO!!c,0i>Iaj*<^!?M %$aMobOVZ4,i]X#a4I=H,-AQ7-L@&lQDuM8j9iBO7W?/@57[L*mq5l8%UC6D10NK!Vd=iUAl#T&ClJd->_1^WIG+IOUi\J*ho0Tdp %MD1`H&5+nQ9qTtTATYbI<@Fo+bNOQ574>3pbNK#@+3Nm.1:e/WUt*FqF?pNpPh!`aF=CrqX,G0bJn.q2X,G0bJh'uAb819J6pf'5 %all(;0qjo:S%T5_d077Ogm0U^s!"r6MrYWKRuG9i^84QjfensD(1)i(sEc&GSa46EB.u&4BjCg/f;eJ`90Pj>qhWtLt6'6k^pXr(4,OETaM&d>:u)1&7$uW/SIso %`9DliQOhG;,:MOA3EsdXZJ4,c[Zd^^$(&ukR`SE;U^IAg>>_U"\!bhF<4X3"WN3,GQD2Nq$O/[s;f6_'NE5Q0Q]\9TG.&qL0f!Rc %lo@6>\mVbKKr<qhWtW/+"O7VBn@I,]7a?tYBg#cXM9nZ8ms`(!0U@7!*V,(V?`I#4WE6D^()h5jWKbM2#7*JC\; %ne#Bq^iF)HB&i#KRkJuVQ.G>'r6kH'K'/dfRo&m=r:m#)8h1o:I& %+U4or6&.cO!AR+K$sG/-.>U:TfI=DOj<4`,J3ifI@n$l5h@=%p]?u:h(o/dXctZf,@ZUp6o^OQP&;*rt+C&F)&;*rtTL0$IJ/G'` %#2umZ6OY;TJ3auE9cPlY"Ur7DObO^K!X>b8]G/:,'egKQ(F(./WIR9Z=%Ygg)K%,-0PKYGA0;)UJ3ef#+:0bn>o4K,Y`]QM<5>0$ %\e'LPeX^Oh`#s3EVML]l$n4Y"o[> %&:N>%=\EM=IWTpY]*`FqV5SEH[G6sLXY,^UDgPD$fu"[qYF3S#E=omhH[1(c+GhiZHV-(RK4K=B-5Fm%)0DDcJKke!mOi_.kY7/\ %)'i&`c"F=Mc6.s!#[W[!c6.s!#el[2c6.s!38:^tjU@;#K:$P63J2t]C2rLY?1D[uqm"eqO3SEX[A?)kr1ikOmake&MHB]:O4mWW %DRo[nJ+lg>,TF5Sn([[L#0Y2t2]gQB@^*N'ljK7g%$m6JJJU&SLmD,JV3]om[B^)WUfa>B8X)Nf+N4]8H'(eIJ666r(Fqmlj<0&o %U@!=K\=G2QMU6\oI%5Cj-BY3gq!ns1a$mOG!e4)H*$KVQM]srN@"rj,;0.Dl]*a*L6LVBSi";\6R6W$^bp10;$_A6,:cq(c>8foH %F)=relT9mQ!]dBN)/7\?rUMkt83\H/]"\)jHR$[.QbapE8(m-#/kC6,#Q,:82CP&YLpndCo*A&k-gSck804H;FB57.#lXWS#oa>p %_BX^ONqtuA`HKUPgoB\2b0cNN=]+<)/j.!^41l3.b+0atBo$ZYBdPb%ffjXM(DJ\i7^c0E0?T_jrF.eJA`*#TBe<-h1Ui %1VC83#NZQj*9h]5S"Fso;B@P3O(FgWjm,Mp>,bpOCm8m+XOJ?ps4g=:#<0Sn<)Flp)rc")=,TKI2bZn(k"o^)d$H4; %nR]-`7L(ljZ:@b:L)Wl"66^t"iqJ&!7LTO<\cY*(U4jQGp`Xrb7LM/>3&*7*iettpjdPtESi[TmY\tC.gsG,DUpoJf93Ud[Ah7rO %EL,I*A=>oK#$MGY[,,[?4c='E86IP/maLADD-ZuIBp7MTB=DSa%iJ2[ZI`P)4U&/:Qn[!;VO$(FN<(Z/l)uHmqHkXn>bR0KZH3fm %o(]es0+Si*.@Y.MdaJ!fe/84aO>\!%N^d0lKqCs##nq.rQaolbSb#Bg1.@24NXOTP5\_UrEKP+DbgfSPKAS"ch&@0:aj:Aqnn]/b %-A,S`\[,]iRgeMX525,$(5l:QZ.NUNXqW?RB!]V3mMA`i9Mm#H?UuI_]507_aY-eE:"a'%Vfu0]Q`s1r9r3P4fs04@OL?GNG9+c3 %agaLJ:c93daD;/J&Y"_Q#a&tf76N59fOV=c"m+BIE50UJmLltMGZ(*kD)1VUAeoRsgLP8)7b!=^ZH3e@QdUhP#@Q:UV8+(?%/V\q %UF_X(p>[aW-A-6\A!BDkPG'AJCg0Qb-H#_HS4DYKaYK4p;K(gC\"b]:aolQ:ZED'VE+&g(Y`Lm@hsKJsUW(jV)#_cZl/0n1"l$$l %fn3>06c+cb#sDs5XHWOW5q=Ot<38L#77p[+-n7r:XMs0pY?M=:]7M>"UAfFk>4XZ,A^HN1ts4&5\^X\]/"b80PaT@\mO5u %_,m[B?,Tt>nZ-&7V9 %%,2Mu?OgP?Cu]7\:QZWLhgiu.<`F=kmtqFnq+DB=Qlnq7`f**o7u`@Ao.nKp@-AZioshECXpYb %e(q<_a,FS^!ND?u4^`ZY5PBfG,2W"ZS3`N`>:O@/dU(?In=O:D*ALq1[p2\>3M[k+%9R_Q_)MdL?JMSf)Od<8N2&XRqGKb#f,e,E %XRaaMSsDHj%D=pX/kj[8.6*4C,Ee(bW5]Fk3/SXJHg79Rf)0L\jkEa)lWmcIVW$l?3""9;O,B\\bGCYG4;S8&]2\A9N9QtSP0:68 %O:B*0@ZoH)br's"`fbXl$iX?o[WJ!AN?pNEa0ASeFV.hk(G93s7eSs1)A]g@T.UhCT.@`RPsFMD(0:Q,[QRk%I]A&6Jh+Z5Pq[O@ %8TJIuZtmO.:X6F[FU^b/4ZVC4gb2NQ:X6F[Ap^&0RG5*5!B7sN(7ge*iJ-uJ#+9EtN&CgUTaPbJFd$3g)]If478+R+Y3e!iM\g9@ %Hm::<\Ef^FPUS55^F#c+\0)b7&KD9\_Zf#/e#qlJH6`bd8-F_JIL1>'"I4FMai.V4C(QLm4GWu$&$%m.;+,.1dHKVsH^8/WOhg.J %aSE^BH1[(bVXkdmLOP,n-mCO)#Uogh;+,.1OjoIC+$QmLN$;0Gkq&/k%Xd-c*>OASQEV?XJjafJ!%8?DY7*Y>f!g=JD'ng^[MI$Z`uBK7!7RO70I11R>Z'UsnsQAH-#dZlTI#uf^`;+4_l=GphFLI`j4?N> %9#fu[Fbh<-',rlK?gt7EnCt#-H!X=,$5)Tr2UM'n)1"be94+=2IqTn\I`oe^r-/Up.M/gU4(gp/H$>e)`j^s4RGgoAC-:5u$eJ,* %HliMmN#9Tf).)/E&h?GK91bT9Tt\,J41&RDnn[9FCuaQPLAk]q(A&DkXnT&C(+Q@M*pLY87?eN3Gbc,mWfei$c46ct]o&=Bf8Phu %GG>0h&!roCqle\^SDrN,p[)25H+<=Z %hMQs!$Si7e;K&.?;_;,1[c6dkS^dSD:c3KC\GS0gFH(;3E;=4X %Qu1$g_r[fT6;!6(LW_pE$i;Wj4C%k??Ua)>iUW'*qR%.J&!qdif3f0[nSl`-hqD#&T)PaL]#D4KROG=?cJ#\EE4>SIs)HZhII_$O %FZrK[)p-])B`#KsRbpG]BQVekkQbts:U*(ThpQkBO,MFTU6ti57=T^!hk%SU%a]35:=Q\Rp+FFgsNA572sT!Sm^N((JNqp46,p#"'Ton1f7*Er'4 %@]=-YNLp((Gl@U1h/.P3*?0pprdk'3I]VB?i-Bg&er9'ipm")um%:6Am;JK9J%3bajElnd(!57UYo.Y\9fNe$blkV@FnXJ^McsP; %L8[;K.gQh8e\OH^_Up6X"'1/Fo1]cH%-kXKGiP7sL9E$5/3/=(G %AYk6g$Ra&,URkC[@npR"-MB5UI&..nR;0QdOm&q^BT*AO`[Go__O],1F@Z+r5%1gF:$]LM[e0:\8oU9AEd?'R5r=Y;ck9jO@nu@f %4BXInh:5B(Nc'UJT5=F8AHN'.%6JSAn(2Dp/rT^J3Nc`R(FB!7+jp8%=+DN]g_S_OMN>8urm6[[rtYNV5sPBsMt%a.`Y>>kU-gTj %+R3i0<$L)l5];.AoAli*o,H^#?VleS1?a[B0u$0?OeK<8gm.QVW:d\Z/OGj63o#n?8_rJekg5U=:#4nik[:5t=EGAB&dp4<"s*Q[ %U+!,8)0Auo;CoD(FmFoQh;o_b7e[9LFdJ`2lVW%ge6ROcY+kJcGPRZ=`Y1h?&;>],A5\mb$;hZ&Xg.oC9R7%-D[eL'][U59jt=NG7DD4+*EpB\I5!_[&?'/eK34Dc5h%O"l8-1Fn@%lXeeJBWKP/i;A5)%;hOMpM,[Ul-,qfl %\>VJho]%H)QMF)]\jQ@U[&?&D!fA@'AOYFSkLAQ?bDEf/KC6bVKo`gg+.G+]0"@jll-8*Y-#I['l*F^iMY+Qnpb[afpfc.\F4hnO %G3HB)d<^C9i7,$t"P_;2dg&[oZR6h9C'p,Kfkb:^dGEPMs16NXp#X;8Bdtl5)7mgX,TRCX^;(tVLT[-1Du?chc.I@.%/o"gc6cGe %Dd[IS+]\6@]Bpm)("LIJ:Q8Z+*kJN,]CuD0oA@>"fYXn*lbN_Y%:sA_[fG&*W:gR:Hb@(.4t;L!c,&pVT/E7qII!!s]ANR`[s;IH %VDU$q)LK6"PP/tkGe^0ML=idaJt%;)QcB"tliU@k"mcsbO5ARQS4-?7HU#Xs':YpF-h[8tr?R\rXR;3+O5R[o9g+XpO5M;+9g+Xp %O62I3,ZDe`edRtG8!7YBehE7cO!N?$Sk504H6d&C'ifGBOlVt).p6oXOd(+o?VGA&Od(,Z=)nuWaM,kChLdu+64<=QNl1s/h^A(O %mNeSLs,!-UZ=2mf)53oKiChFT6Q0QooGL_n@:ld=2BtSO-pf"6U>Om+7!C2ZQ>A$)\@*)eY']fH7g/oHmjW*rAgJL0g, %IRI)h&Y:]5^uI,X6@oO4:ZaBJF4P7r$h!WlmjWn47u/JX[c6n48O#)H1?9J]F1l-A?no1dV/^d<58,FRr'r %0JY#fKG'7-8p4b_GN,g?%&9lY!!J-Y@X23Z)FV@GO&F?A#jDBm'uKWa`;/MfN2QSP>aqkc=pL4t$@Z\]+*;TL7q:lG+HYQGM)cH$;?$P%Qje]\Z!(U;qGrEq4Hm01ndT8o&_fhmf7R%S5l2];o- %YLZ$4gh1b,^n3_0!A^4.5U;.]BUG#rfgl[HZ\=u\OnD;C[l1fDrMm1]<`JI4DR^[C!cu'kS@XPJJQ^UJY8hH)W.GpJXa5].M_D0f %>c=',m4_C2CeWj[qJp=F6\"uo%O@rroRAD0s+K>Qg*B\CUAqZ:n3_/k#uZ/V3_ZE\+C9Nf\":o(qh1s+T]nj:7C?#jK1[otJ2YAE,aQ"&AUk;aDPV)-)HKUS2XF2,B"LiiaH:=CSbrQeu62>P3hpR!elTHfr)7[^()8/'p^m %>8Rbc,_>3W(E72GCKtk9'=YL,s#9C;TRpdCd>[c_k<&KPs,u_:[S`MOCVA'*O/t1EpQ;u5H]#aC)AfVqr=b$2&&'7QIHD:D#J)E1 %M<%Z!'*%au&Qr7C\:\.bjCAJ^`$#%^6HT_jb"2mo1MA-?bpHK2bb2EGYCcDbn=F&#n&WD^^DWT**5\-rk@QqX4/<8!g3i\OYPp6L %oQKL^OjPctd3j\0eO?1dC4+p+NjD;R,8nPc`Uhlr4&-hm`K#;-&Do&*((7fnA%-T@\b^j2/V08\H!N2oo:n>;@+^k!l'\?VG6lht<-Eh7fg[['D6D04]TgBGW%cQ)1G9-V$*1bijZ5_F3HN?Q#*E+qXbU(lke)'ZqmTSmTIn8Q*WWUo:ln]i/4h%-\JBIb+=bh:]8Q]Z&n4E-W+`??VSB8 %@d0kn;bud%(=<:i0Talbq?A#")Z%BqEd.WnI[fG.kpf*thD$m7GR_)]6VD132Y8T()dM*IR?BKWhK+OR4L_rd%3dn>57*Vk-T1G+^o4Be/$m; %ITY>bAsGR8n"c*W0sk3.p!>9!Numq4EE"oc&#$E-+.+`$RIl4Yk`&]bMq@[sc0K)=^\5=\&'l@::[h$f#g\%C3(DrMG"*am1Pj&7 %U@Q/W]Y/_E;Fs`V]DH#.-.%oJ/;5X?d*Dc&M-2=YG@N@>WJ'kmcpok%.jt4Mk^36K%@a>;\`D*DU(s#.D)oAl;RhG!Crr2GE[e)[ %'U>#SE=h;7:>"H:j^nXu\5ZF^P"T5Q@7iMTQ!El\>bVbZ]stUgfiJe!"ZMQ;XuW6a\+\5ZF^P08Ml`?eFAHqbfCc'Xcaj-V;q_B,o?90p0``7+$3nEJCi]`aCkP$&c&di1#Q %:;:@,9"QBSah:(k1Pf?5%9g<^;V;8Vr/M#G>k=$?5A4&2K/lo?re5^GWh5@%[;imcM[-@l`l_.J'%3Ef,_sQH/EB)IF18%aCs^:&JTaY-#cQpXSZjNXjDoS:;j!`@Fo(2/#rqh"%9cJTQ>d)2r&F3:#Ha(#pERjS*jhC&^kY!b %AWl[rP3)WdK''4f9X;=g@r8)#,EtJE#MkV:Q:EUumHRsdoAlCmg\QB.n9l61F)CN#Fg<$$DD?Q)Iq=)5k>kV&+I!=2edp&&b4G@$>ugiG]@"/`eMj"d^s)ZkCk-G+D_]?.jh'pCjLW%s?2GOfYkm5^HjdelG %4@n_-Q*m4VnN4>LTbcEpFVqO(iQrV^_9>$*$HO-_4N.8S9O;giq8J4C@BEP%I0\b=Q1$AMIO %RK2D([G3-B"Q&HL>Dm00\IV.f[3k6+p@50R$,W?onF`F3LA\8YANlQS3) %BuFe%n`Z=tVUiMX?^Su\Gtfk4-W(ZAcs^YigNKa%-#@>Lkmi2I$RRV5;"^8)m/Cn8l(,u9LqXIOkm]13nK\gbDJA.-r$pK=$2Em1 %1FQs%(ecN%6IfL[br<$_kb]+V0Cs$4DGr'GeosZfFS*W/5F-q-6YG:g_Fl&hgZL5jh$us:M100:?8c5rZ>__2@JCeUNUa`7C'N"Np&GD+kIO`4[b?MXb:bD %810@RqF]i8!'T'T3W84hZC]`3h.U2s9926M%/"d,[2(UNa356.27i/:Y96M)RpG+;L*=^A;d %o3!>FffG0>P*]PFX+s740)ZGqZ0Li5VatXki@qRe/u7F7Qgh&EHY2SJ;'YVsqf0\Wb_f$2'"Y_2fZO`lPr[]1+]^>08//C4nQh>o %mFH4RlA\9Y-gh54VpUaJU[?m/fj,]8ol>=/!fKX'$@WuIQl]Ymc]/UY_,bU"12WO/X"pj)CRq@\[0TftRBGf!$?,t0T\JhB;#aPH7;5qBl9@;.H %0!TbKk'C`+lWqii?i9?#ZV/?`?dHnGg3jKQ*n#Z)-^`(\+30`?psNmqGSk\&lN@*TT;BL& %g#=1aE>aW+kJ`5uYLTuCJ(tjAhk'5sdJr$+V>G5oIPOR6ZPe\/>#4Qf]9a?(?2JXHLB&R81FdR>C8[\eV7$tQhitdK@f#][V,8)%rNb"?h<7>ngLi'Th=:!!Xi3?r>P\9R6Qq'\u1W!dXU%_#j'YB,Zeu#-iDlb^M/,q4@ %#'n06Xq[."?K!_tH>q5WI/Jr5Pm)FG:JjPo);\Mmb\-eTeD"WFFn^.gmsoVBG&7"D"_rsu[:&/iL>)33/L.8;enhGlCg.clMfS]^ %NM#0=#H+[ATje7Hndp"/c.f_6qdeG0>TmkFA.G?Hb?Fl*f_G6P3AboRg_"Fau8i+ %i;D-b3`6+7,BQ/P1cA9uV,/3A>sdl/3?IpHIA$^'Qhbh8H=3]]X,prbV.qQsl6>qfebZ>7[:$m[Qfpcjh9=Z(SSOnmS*?jDPG-k$ %=0mF0m-=,-m1F^\YQ%#=7ZlMTFGP6C^\C]hGi$iji.:8\FJ4ZSkbt7`a%qSAk*Vmgb^iV$<^Fmn&W*C_$A94TIer=&I4I*ejh]oP %^]`&3h]F3o[DNho8Gp)#-$C,0#pL2LjK?Ntg9?"]Pi'KDid;kC=W=Y<)q4LY(MgoUg;mpV,o&"ej5&F4jlD=aW+`f;i<0lc=J(.n %R8mq+opOA(.m'\s\c;S5E)$fre/Jd^)[#VE2i_D?"q6;.EL.W*VM.q!C0\jZnsjDYo8C<" %NqeSh#VsUDQ=YPkc*,CUH:qEZ)!3jOP?1qhN:\1Co4MRh&=o[aoVmD\t`#!1&sW7!G%>f\81?r]9Ss0pB)CA9`Bj7QXT`FF`]Fhrts.E %Q$#>te?BY:YJsjr.LHVIY,5RlQR2QrorIPp!Z\BHf@X%Af&E\iiWbJV%K@4C2$>:6,9l5WPFi"b]Yo-#g!O1TcbjFDTXTDC2$RaU %dal)o%mXacR@*[/&]jS_`7-R.`0[Oj=WiDhcQL*kRuA%*I7%2#PX>#c+Mro&SC>C!QU7M:VL.QK5uWU3%&3QN$,]&d9hh(:K$*]&[!kDSbT"h6'gkO3R67r.:O3aa4rU^Z7N %fdVmQ9*M;eK`qc'`kRENSlmUW#6["R=@L`uBq"_c0&ij'Zu/#I[Fk)*PN/A._L"].=Y)82.XJ`#fUBd+%!JlPL(r&6YPX8;_s!]3 %&t-^j:FoHJ4OsOX^60?8'U4NLW3R!(>:8f/WfXfN/8HceaqOa,&&;Q-6?D\nmrftUGMDTlLLrp^.?"-q@[u/3,bD?u81M=N"8s*` %7jl"LfYJY>.6:4Cf,S#?#ZoDn^ma<*F,[BfR(_Y7AIk0B(j")E_!WgW-Z]tB#K.V!?-,rc*3d$_mp.WTGO]/Q %@FMLLjB[S(jkWCfO-"DWqj_&Skr3A!kiY1f^$j5._pl>9U"@`l.=-r?*Se.#>G^5kWoJd5ge(qUqe5f>PBa+_2i?^*_@rtV=GQ=4pTRbT %c2ikt#*Hn&fnA$[u*l^J_9EX.!$rkc[L,-BUg=aXnCXUR*I=OYB92 %6A\/'5LcmYpfK1&MeN\ThCBL;K,jij^jl`S8l*Ksf"@A#r(#7T9Ln_8*m>u+kVl,bZ#[+%m`JtgBO(KccX\C0lHPg`FQp:!DS,mQ %rs?oW=)0Mss+(Os0"rEhB1btOpNDd8X8.-,I`GYRP8"%K-d[Bte\cJZ]b7Q@fm:EWBQf09.&!4M\!Hn-1eSf,F-0Y*6XutVCZ2DJ %a^dJ %G#Y&7L9mY\#/gLMlGrQU\oRLGZ.4E4fSj$XF-TjWN\8,! %G>1'FLY(@$p1N2:(JA8BO0m;C0=,qES+/IB=Qa'-+PePh]5N7]ki\4:,3:m'TS'Ci9Z?1IfKcMZMC5]7& %bk<,u[70g[("9\WWl'4`gcUOpY\QH7Ha]IaCCiZ.M.E!&L><`&qo0nld*8.Ja3MB,mb6!^B'or,t#4/8Jb4Afed]lN*l\6p;6)A's*"lhkoZ+2h(4VAd+(Hj_f %/f9BBY%5@g\6FN(oAKD%_IPR[bp/&?B9VVuC:7A<(W*YqeZ;-9\5rEKW3sIY)EfrEW3?7Oq,a14!f9<)3_di;cKC7Ep %Eke2_2LhXV^[:]VeTA,[^7*3P)m%"IdRerB;_oX5-%jOh]+tR>2E3VCoHB\ %#5[^i'i.T`N+1_uW2Kqm%jsR'X"(RUbPo9iOL5?h!N6O\Iu,mn*gQjn(U*\c4]a'-iG)3%C=n6bq'T<\Z]0/bq^(=..<>U6HP6/itl2 %4P09@;FugP6e3K.O%5kfY>j4HVH)qG;8a([?]hoXY#fca\:uold)qE'>fDYor#p%hm=DT8Z:eTdN8_$r4h_dtKkrdR9Q8<"3K$p. %X!1pY=M`97;&6<2<`htYKe&B^hY@fEdj?CL"pGa=6?K %#Q6%C_[bZ6%BX'U`==rk`BqKQiXZd'UtWZ:IX'L2n[;fe!$7O>,#-:en\um=5t)5rFE0,5'fBOgTJ^?o13RW*m0OLhLkPt8>Ol8/ %4$V<^Sr#/t4IF;*%l+_T4AJ,3rn>rCWG;;0#CFhEY;V]$VW$O0YcOq6QHZugd#0*Q."SB!dp5qQ7^EW_?GgH`:C:FmEdKfMf2?@' %O(0Z_3ZdpMEur_qWhC_3)sCTir9V]Y[Ji'Dk<:ml@LCgI>An_5PCh6kerpg?;c?Wg %TX:NQ1aeXq?H3'/"Dqd><`79t-g4u,pa-0f!pXCTjmeK*N?!(nf.[ne1TPEUBb`k/U8Y@Xl$ek=7?tdhUUr=gSjb@$+5KaK26o49 %O$:[=Bj.<8VWZ,L/,,)ga^e0!M0&^\P>(u^MdXKA+s:q+i'T@=-CJ+T>64.6h37?c:R7PQ_k3;!mN5_*.B4BU+'hDd;J73E-CN60 %;@J5tJ0V_,daUJEX2'<;Q0++9$%5mi %DCt/2KIYs.-g25-_YnQ?M9;\cT:i*YXX@AC3fFDWk(nK,o-I9/F8lHL;3RYL3a:j@&)!h0k8)JnYi_:grM,i9k%oW/pQ'4/_#6TM %KM+.1d!9']r^FGSl$t,)oN`?7$0+RUKkS>j$)4P`9c-D48WtSkOb2K3IPO?l$%qul_ZZE<@5F=Q&(cJCBJP`Y_YB>1AXbAeeHbO] %@1rjYj1]h-'5$5MKknR's6G,cO0uIq\,5E.pXA$fVm*b)GYAs4"rsoTj1`OM11=^*'Zh\\omX/>R,V1&'GC[VaYP,2^'One8<>(e %R4q0iJIN9u#rD*Y_DPb0G>ochJRH>C<*Y&,'?30i,i=8XM'S6cBQX@.o_hUR%CQqFW3"2IGX\_>7%dah\58P%2R*;O_pFb[[9+e* %g]E2d02e2IFpjO5Aq?00'O'uEl+`\AR.GD9ehe33p=2':i'_d/GI1_X/A*R]dtDPlJS^smhC9RhN]0JPT,rG]^;&J!$0Pm_GZetR %V6WXJ>Y!PXUT86Ql?Vr$h6=A&[H.3XQ];H,'ut<0X+$)SId_LbDu@H^$'>m^B:2Bdn'g+8=e4`-'G(T;`3'--c?!?+>[b698r]M8 %%crB2Yf\a@$j5e-gSs@(%bosS8Pt-)4RZ'<%,53U#DqkF_fjnT>ps-n>Ia#io_"T)YT<_o@0ITbfFBD5o]-NACc>dHKH%@`7F,S] %Eki/VW*qcho#s&`XqS>-YOg&dgZ`aO,p01%IdQQ@!C/]ld;";Vh@u%t_P+lH)g7bWlb>>ZfFFrEaRo_fH+P2W#1-@LP`t?CE-%Yc %9L@/!Z5:2)?0>"E^DK[^]N6Vn:SM?h$(UbYo-1CNW`Esi_:tD'qogk,*'\=X*%tVUp7C0Al)3=@1L6";&CX]!h+p(:6L/?\\fP4< %(a'3Tl)43/K!KZ/?8X9/Sk=?g1[3M&i],W4j;I;Isqb`@<27s#OU3 %JU@:.Po6t"(Q%s$M913%2dCqD/HIL:oY^f,4:kaA_1It,]r;?bn)Hnt(+8ZB[rrFLq0dO`>9;,;>[+WWVJR.u6?p8hN>N"<>=GBg %gDUX_G(g+&WF$pYHk?ObeL3#Sji^HX:3T23>/"aJh,V&%SN$Qm#>0f/e+4jQ^[>g8MiGZ %iAlbOTCdWO8bB&]qWfF+FV;T4&joK_'IQbP_@5cV_SB^V+*J:k[)DE2+Z"qfjQ,e^K.'F@]@*f8gNQ:",^\g!&'&$Sc*X?^"aqa7 %E<6]NUp%1?O&lL6>@HpVnn[-g35$Z+"6es4d/VKp]t@Jb9HSe5=F"h!ajOK13l"@*V,f@Rm>%a=m&X)HNo:uk%,=SNA/qiel`#f^ %;BoQ(6VElt%ffdcqZ`,NB'0*e\NV644+g:?Z^7k12[`\IO#0;kl%?,3@ksnS(K[@Ag9F;FQNm6$$r>'g`]sHf[DG#U(JONZr!,FD %&+j15M'?)%>a\Q[fP2qKKq;4%G+uP2=W#l'5"p/!V,#ZTRDo$MEpO$U#jC7dq.),;Z191uY//WZ %jIGDVj-/N?_:$N-"^+#QM0l\[\/od\5tP94rq^]B#Q+GfB/`baP9ICq)0>'2Ud;RS!4H^M]m9Pom8eO:Chdos1?#0[^XDp6?1iVa %V9lP^63$_Ym:GSIYNE'\I_QqnX88=O_kh\TmH'"22TkR9:)0%]4e0n+mgX@Xk%[O[Vf04C"?-u>d-;P-lFs!j;>hVg()N"3qhj*T %eHiA!.[AQ1G.)lG"FI5?_d3@?l7C(E*2O.O$%B-O\L;UmZNR?UIOO#dX=3a5k9F=c0eZ->h3DlFH711aA^7#L&>aiR@;uIB"[QHd %7&eLOi'Tf0:S'6`bge]h['0cSW+Ls'1ee9[Zc.VrLNTm1VB-(:?,:fp,eU%a[..$Xjc:?=f:s-D$1Zk2fB-opL2N8C!nSGqAOjR6 %l8I2JJuONW;E*dX*&)MYPkr?c2D`]4lf]daNm]"*?E/;/!B;Q$4igpn3e(A7l(;lt"X"JHl!!OG_M(nF:fJid>/RbdH:NH9KS!)l %CJ1!UQ%Ki#Uo/O@e;OMa.SZ_$,@+X_5]F?Zj$=n/mh,Lql?>neHMfnUoPqLi]2HE/^UMR"r@l@^GKm^)r_`cF@_p!7^0JitYY#'o %kM6m]>Z+ucQ,YBkAu3@kWR5)M39V-lD^-=&!-:___uc9)^jAZ`Z*9FZ0LkTmJ'U:1[/kH?iULI:]VIZ>cQ);OrjpqLgns?U;jRa$ %2jsCl?m'BTEO/&F/`1D0-eI`cmFp1MX4k75:.OTG:3d'r*![o@`jToecB'#,@FK4EoM"s!fS@Bc8#gW*7aE7uEi&Di2AefDa5T-q %96a?@4W>'^o`]/\HW-0gt&F^m="/`VdHCJ-=;2BSH+iCC=147$L`/c<[*3!Ut!D;e!nJ9D-)>?j<%fB'4gr5]Z;aY0'!6"LO! %@pA_F.aN2DPM$`86`"^UP?W>JiGYP.:fJPAT:A.\X$iR;LnQ[XdP.>df>.fn,s:"0sNVa;2;c74R'/O)0C8 %IE?:5^WX[i?Y\f&mZt67pUf;^+0,-*Csn*8)$ICebB]ft=2/0MWlUY/Z]k)KfbU.N;fZ@mo?^[cnW>5UC^ZORqMfp>rSk`'5U*+> %6pE:n5&?-SqWC5?Aji8Welg&-+EbRphr>gURX!gSoKE2Y0<8H=I*UE?EI?Q5&>F0++^lJj$6"oqS`PtTN<>abn+7EG1en?2rP]k< %K1R]PkqE$Lgb`lk1&]'5NO(^#kOAXCU2d[DKZ"Cc(6(]5(hrn?@PhuNRm7]9_U1>bNKM5a"JTm[SnK+pQ2]fF&u0HtY-m0^Q,I@+ %#igq.)Mdt.m.f,%lt@A?XtO`N%e!WE#P<:0N1pN^+ZQ6:dhSsC8nXl\#?a$\MNAU5F6ns5a0-aXj1NJdQ=q"_1lg]Db)=8bpg_V> %.uDY5@D@sS)J>n>rPl#d7cWE@kmGIb&rj6gQ@@\G`+U.QNB>$tTg[pK@`T:E$RH_SQkLRo%qaMB3(KUNHYFlc)MdQuro[Nq1_.f[ %E5.=]m4s)ERbq,Yh90o_41[s4%Sq$KZ+=OGE>5/USG,9L(RNMQ)9"jA(Z)pY3^8(;)2p0l=$\9%(OEq$Zb!N%K>A"t %d03?jnCE]**B(9h\r;1R>pN]FIBC7`8!j".;:jiRF:LP^!E-[e %P[f2q)X2;_:JnZ_kTB&98_$+]%FI&heh`e&)`><=%(>+f(%h37U^shXFJHZZlD:+nHelnu[W!-5dRO=?=POr-KEYUtdsW<-J-C86 %n0'@FSFas&USq2=f8c'[!:LQ\\2)9e\,sikr2/Tu=.Wa&n?cjmY>odtAU_dd*d%B7ICS0+,p-Sejl^sR7Y8)rH=T(j^WlN9>5\tZ %%Tm<`_.%X04Hb0jqr[RYd9h7W;mY6G?+bo+mP`\HmQu!\j6INIf!XP1D+F=2$$M723JY:f$ZeLbgT]CV]tLtb$'s]eYE7L`C/H_;"j.#4=/kS5e0A4OTU$M/1IR@/0r`t(,.(_YaoAoM&[m,Z@JT@YC\BsG!Hbi5ZTpO%=Cmeui^p[fS*bU,OG`OCl89T,Z:VYK/m>[+cDt>9mEViQf %MWeM7n&ip]C&cYr*7bm\GGh[3dRNE4FI=ja@W>MsDr>sJ4UQL>+S!1N+5;c#pU^,UR9]P%_Ith_CYk;JM=.8%"`ol)DpNlVJ %%%:G-pRJ)eN1n.>SK!LCL2E*I[Hd!FU1X!5nRp+?eT#;[?sN%NFPDY))n]19s*38seQI>QDcgeL`bYUH@bee(C-L\'S4_P.:<3:K %+1:p3tsBB_hQUPgr"*re1@9o/K.ePnJjB`0<'!%=;N``k6:EiF+B..'8?>?Micj=$;c!;J-$4 %[pi.#W:TohpS/FP(7m:A@4A6"^BX7=If&N$;DXFq[P_Bk7=YN)&JYJ[_SGH^6lTZ9n9 %G(=UiRbikZaj/#Pg1[g(<"IRMC3r:rEf5YI,u&$skPNOslY\e120m\;7^&.,AHoE_N_`+T4')(!W@+N$h'=hkN+:E`qAi@/bp-ta %d5\R+/V'BPpKD8UO]JSgs2H'Om,oU9D-X:2c@uu#,NoL$55!L!%b'W*4rZRqH(7\>nBIg@iJKeuld19_a`B_Zqu+$C-]*XIB[TXI2j;Zt27\IZ[_VI8H"HS6LJ0SQ6IckM&I'Z3$0%HmsofZ@R5Y>#1!G]/ib0SPu\ %[Mt9\!iAe+.7HV`,(q&mqp&?(atE/*:"%cVIA;]M7S2/(81O6IF,MM"q=n&JU5%VS %JY:LOO$q4eA@C!S+K=l#'K*Z'L#A/:f:H^Z/?p59TmQ5d=+9_MDf$5VZ!2!PtP#K2mNGN0,QjAQhD5K$R]q2l&es-%Z,:0LIY5Sr>-g7+023C %Bu!#JJ#ne?prOMM.\NR=r=YXoa""(XNZu*6$7MmtV^8[JqJUJW8>=6QWIDLd8h0.pbUTUo8h,'hEep`GOp]cM*24pUUk7-A=?`!% %WUOs[,bN5F<0LU'7Ssms;W2se,bN5F<06I80<3B&G;GDn+,hEPXi:D`j/JA/%t?@aUJ<0&bWg(E_p#M/>B4B/Eh:+?_L#2\6t^Q9 %kN!8+=9*g"`Ss\W4L^>jlHapoS/(=S<<'fu=]K?XN2oIOI%Zo(.l?s`^R(fR_q"tA_J+0$P*_4hd8DW?d`:a1k&&B8pMhmfO8`Sd %[Is06Hs8hf/)\D=JUZ/L2"TB3I69>2!qU*]B*FY\HEn2sG`Ij!*]%>Ys1/H+T^(#F!j>jLp*C^$[8T&ARUcf_sn08cM;lT0V9Bs)pX*m=+ne\tA>6QiGS0kqoTQ,,+nUZ1u.c %$WiMX+6n<,[ZBQ8h>N"UgdG:&ZUYr-/ta1L3h1hl`n" %+8&1$F5/n6m_0]i/LI9X4a@/3?eej9k]*GI6R=:=-^1&@\Ui;?nI2NZK^eU%'0UEC10,Z7"W#jI_4-:9#k,Nk"&':*bq`R=o_[u(JHj\B50<-0I3D.etG)P %ERKa.q1F\p5dt)CR?^tXR8kqULP\HH.SEWqn9.ZN]47]E*%Q3^3YC1CR?E0^i=pi-]\O[c:)W%8UY@N6`?3qh&`%?m_#)"'-)0-g %U5gn>>p?l9jH-UnH@hpHnIrnahTgjns#c**'?s2Hg_E_jnj7rHLnLJ7$jdOkJnF>@UlaMn>B60i3DuE26A!.3TV>$e#neJ7-DajC %8<=Z#S?2O_KEQ]S`a)BC:FIKu9:rgOIBc$\_8ul!0R!]p^9j![Ca&<2R`"$L'G;\jUf4;(N0%GOeV1B@.m2'BX9AN-P;@CtKFu$b %GP,l1,%Su)$$AHecWs8OE&'b3`/#O^-Hcc'&gN!c.PW2>N!Q/M7:&LrrK[5U?UPGg@H<+F]b/*Jom.9!l4fpt*7i;>;+%>'E]O<9 %LD6gtO2m$q;CSIV1tMIWqO>eCOl7hG.r(s$3qJMdV%*(a*I`0EV+Vmn1=o_NoF4<&>GoK##dDeVP(LN18/T(X@u=2_;U@'E#WmoaPCe6D6&TmG*5BYiYP0qDW %h(U-E[%Q_77?p6IT^+)7L64g0T^+(#]a>E)Qu]FJ6jpT/6D'VZU'4h(U&0P7B^qK"3.-G:qbi4cFBo(90c<@e\hl]kA19p)$.%Te %laQkEr0Rne"^P2t4'1E0$bEK=<+28X2a8'];_ij./'.4FULcoNBL16MO$J&:eF[ %rsmjZ'>]M@Y2QFV=-'.T<&m>SqXBcEarss8LTc6!/q[h'+21'S?OG24/u`6L/;%V%QW.R(OuUj@/udc$Q9hmN9.JRm&g1@'P3D(( %lJ:huEpI6Q8JP-iIUcKq;e"jE#9UiMf9gUj$XQ]:K36!#=JjrI1Pd>>L'>,Gg%n[o+I;L6Q:]Ao1Pk-1_pX^QC)*HN.96NYX^OPk %>YJ^0<`,Q.fEd1O@K0]uXnM.j'f*"R4YdDWU,",5hR70cbVEh3_kC>f1(3qcYgD*]jCD1Am%5!AX1+L$^4?GSFqUKk;jL;KZif]u7#dS;u3AjN"Q/BWYuZQS'9(?NE!=m0K),d`_2Y.:BgQguSTR:V]*?L6Tk$BpN;6;&gp:[>aGq9b"l %>GZj&kK:c0YuDbQ7C$l;#1hWO?MMF^86D+7)=hS3HBe`J8a&$YW %dJ@@99^Gd'0Jek)73j#J,pO(5FZf:i %Fs#,@%u]"D>h0P&o6DoJI+2btMlelgSF2KcLIH.!Jo3jlI9?,"/E"@MoO6G9gqOAXrhq(/.8:bf)>gZ%D-6;7%+L'_/M;M>2u:P? %h>5#tB;8a*gd40T_.L.nl!1^D\rC-m\2Lj7U.YrdQd3Wsjf89-F+;]PhHnu,s8)IbkI>D7U>P85k\mUDU-ni@YG]-9g=K+)`4;2)YQ7GD#pKYs:n2>4V6] %.]t=U)M%i&A\lf%'OXn_beT!1@-/AmEqC]_$qgaDPqk?FKOLkY56e]`MRu,gf_1d`d!FEfL>KX[(1h_+pUAfW>&:hl=EiNaE<`NY %0D5P#r-Ssh\$tgJcO&/VEmoDbT8g<%3?0"B>/@f9Ifn[YJ>uJuYIDj#R>7OPoS?,Q_tI(RDF?^\dF6O,Zd*!Y)^L!_M_H\n,\jTf %:Euk]>',X*>l=kD<7!9^?R,&)$:m6pI"4J^_?=NalQu19Vbh>tN9JmT]*c-h*<1?N0lLd-UR/hsD8BIXFrgOi]F=fEh>)4 %=uecsJ!88iO,j`%WL]j4s1$]U5NQ'kJ7B9KS#7WVHtpn>9:aRa%#NlCQIK/Hf9s"dBF5M/L#[aE&#M<]5FqcliYc;9VGL5&RN`G" %`KWSF5uW/Ye67^_G4i"m<6ODV(,=X^pMGRVY^#49DClY@/10&0Lo<"u6siK=6pq3K(BUCa!DtRWW6R\.&=\X:"YC0\!D4>!.X$i= %p%D]A9.pM[=:L5?@m&kgNb[LYST-*bnK[SC:^q6D/f(j[L*"B1'YPL=Y8Z&AEdXp=iC[^W8[o;N=Kl(Zi.0g>`%@j!HrT#8$"fV\QENN@\$LDjtE3&)4/,e&\BNO\Gn0SOR!of$PH4iaDXA+j+2j'A.69GJ:12,!3sc==3e894!rFNc4rApCSgX`,,_Np.:D@8i/e`jX51D-+/P@Fp.q)X8pfe!l2(UM9]iOn$M[>'<.&%8sF%B]Co?agr1YCrs6?nO4@'J)d %lp;[\(M&Oq@#$+g$jO=nXDgL68,'_3#!:#26I"0m'`u9aRSsQe8_?4Vi4moWnFRoZPe^#LW#]UW$,h:1L&`1[P9Q"ug@c?p)OglO$.amK07>#PO/OmF-.+A<0c6aGed+'Tr&'=7%Ya>U]LCUu29L&2.RL*000PoG8?d3dW %e`28'8(0c8Gdjlbfs.O?mSrW[85*4]$bN4)-71O@f?sqfhoS+@phS-GL]eY25bo^GL]eY2970:]5#7,QI.7rm>s5ucZ%`;90QD*pmaY`1:XCI#S^]CbnYm&n$!2XWm1(`d/'q/ %l$a7aeQ=slgl=PQ76gXs!%mC>`DF_>CpGdlhH5@[C7ddTraI^lnQr?UQY(>P)6;5CY:>1kK:*r3" %PN7S(Pt(M37bUCGZ,8Z'lg`M]0h]N"[ZDUN&+kc5[D58c88%m]Bb*OuoQYe\@l5aJ8/pb2MH.%<98g.X[/!kUL2>:m %eX#<*D9S/$i&).;["3G'B36*/U^]*kBE^8u38oa/.eKCr/pTn-'@VV1N&.Eck1@$_f$4'>"5s55pu %@L@0s.#ZD)SD,=I+>&;H8BPet'ddOmfX]8m.hAOGNl!&>1o2ZqPA_=.YEVso>3_@t[g=/A_:Ll;_Se8!&osI`KaGAd13/lV[4GXD %9?:tu'rLAUMWHaK,jo1n9IgVe34I#,0S)DHd?rlAbeP3C/qo/M(Nb^\Kl``*L$?]_&,3HLmnt;bLqVjp.SSJjAg3UJ(>?GVA\jg:5Ai4X/A3ULn5$n[$#*P2".5O;d*GEkD9l-s0o=jBC:qfWb0CY*#%:F+D?.`"kh86J\L %aU'G20!%GX<<=GZYd0dB'[MoPP+LdB^V&+na(N%^:aHp'o\t_`_qTXh:qnqiSIAN-X"QWnM9c)WiMg*&$uS&qSL-NB$*r]s/j8*+ %Wh`p@-rWaPdrMO/_DAiP-[mDsQUj[C:93[u-TiR0=iidj@V+6g:.6K/XRbqQP8R\X>%356-g^NRR#sT.c7XLC8ZmFgSp@dXT&Jcm %s&5E%K&f!6/H@O88r7p4p3c%Vejos7ddir&]>WXu]N"G78q_'KLMo0(,!Pe7(f.jZSn!t;B6a5I06ae#oc>ceR>7QYVSmj0T&Gr7 %beFgN53nX'T]LT6l@nLUaHUk^M@iI_inM2KL*0o//^>TV-2t-6lBUaJO16Ro*?t9)$s`Ic6KhGXlWG+(FaAcl%!^7r[Fj %,(HE6,Idm)K,g]dM6`4*;WeWs1G*3Z7d;D(jUt)K\;?k`,B`2ip^&QA%:u?\'O8,b_hQRkY%8=s/is_8;guO1L<^Y$?"R;#Tr%mS=9ZC(*L>B?12Dm+t#.gV*-+1G9/.JE+aUCd#D(F="4KLPF+Of8'Rr0/BM#Li)QV&XsE;8:AB#u,b=Z9*PTI#&r %g0!@Z_G>bS.[/[#TU:[2;CQ@r@PTi5AY!i=jC]6.NjAPm&[A$([6oW[q,=h7S=g[/:^%dl7, %eF!AY/+1Llg&DK:qqKNs6c'+r(M#LY)m\1B]tLtb/d?P_ieLhbe[fP_/<.+YM*eQb=R(i`Sq"RmJqF2_c;=6*D!:_b3)THVJP:TR %/]P`MI,jV?@=7WY(X`)qC?*$lMPP,:8M[?h%)%dsb`'$Rb_mCC[!o.emtln-8R%KjASV46d4)&+]4QQgg$(nO;ZhKVq=)"'rF,'Q %-\&jfB?(&\/I%UH3@-k_Q-/B)453!0S1WC*#V*4:-\j%T-;t#Jq#"OFeq=<$mrk?2/I%Vsoh,:Y"clHY].+u&=flC9?^7,0&gsr3g]48f1_ZXU*H+?i(&1g!L\0]s5:UO3<-Tpk`c%hCZAB:D5K=Del,$CR:)JL(s7L4A>6$>-kkT#[thZDH!s%-L^e]NBJG'H %01CS7Y=p4L?e^JaYJr^XM@&U)(Ha:%;bU:`]R4B?*#'(;&[)N$N_VCJjja:PJp+@e,f:Z->.mgAL09?r1Sbo>KnHdb3Xo;Ac\$,(A,m!bj %=6i%R^@*>=.eep3H'gi]Mu,:r+7%a,YLm+,&sG)S:]!4@COs*6kN:f@=\G(+mG=:G3*n76*sE.BBt)62lu9VLYO._uZ$4UE2XU3h %XkQ(P)?9B^DENMpHT"Z.05ROB?AglQP0WJ2o5^^S*,SjXX%/O+T#]6uibS;L@C"V,+8"t[r_VeJqLCHS7lN.2I_D*!i4\$t;JKbR %:;*&n58EhIaDo[ZC[;PuLoXU.F1%^?-EDXE7r@a?@-_L&hcS2HmB%Lj>^qOE5QV" %MWfsE+T_AkKPAN?=--]XQJ4n$qQ.Urp159 %8].SMd$:bQ*-u2EAcB-Mpa:P`?bT"jB.p\!!B.!_j.h01(Y+CD;oY0bTs08`6 %cRR?rrHr["Yn4mddQX^\`s^ahG/'5Z(l_9]dR %qqID0[k$ia=5&.&=5)hT,arCQ#0[jOal.1WdVLcujUtOGi>4qIK %mi=N8C$p?Ob7VTmR3W*Vb7Wau=t^GiB'IZJMW-4=XE/maVcd6`d%!5E_NmN-Rpu_nteP6a3 %QQr$n/AfI?!i$]_XRro^E/ma,oNKmfK^aGQ0geH)VrWFKV5O5)m0o+1?dQbpoX!Y%-Q]K(>!ct#N>jO!79cTUX\j]7n0oAG)Z %=e$^,=MNq>&YeI@1eAN@8%?6=D]2@B;%kU0`I#jb1=IOF,PN6WqXsCRcr_d:FH=:jpPZ#UcB3G?4\,":C%@sY2HrZD?leR^a]d#I %JfmM&Cm:+),?.W$Omkt9Q8[+!GPKj^PqILWaBWY+d'k!_PqLN;6K?6Kp)FT`IG@?bKbCOFqf&_r5]@K$8e$36EUC*9NUt?\=fiH! %0'ETLRd4MKEC!B&&;Y2/ie$kahsc:&c"*/Z>gRY!$$!fLX*)6JPAO*#OQ'A6N!ift_6&oE,ZRC/F`JmM5u1U%L82*!,'GeMAHZ3TGPi59YK,7/4oJPW[l64*^Wj4k#HrhRBLctb]lR9/s0SuL %[Dh+\.jL';+]\%3='Q %>U+;/Q2HJAC`BSAB*iL#hd/fIW3c)=pJ&W95@&R6_&p&[U!?g@ %IAc[]*n_$HA-V:r`GXRhQHu`[U(HZS=S %im5J?`Z[aW6ETL0h/U0HJT`g?(*A@W#WbtI%enZaXH]fVbDCb_QY>aKIf5"la8P#$O2s?T`QY5'lqJVALNb*u8%0!g>Vch8h,o^Z %FO+!_gT_INfV/j4f-G/&A?-Yj0m+DL)bn*2_0dQC=Be?]Sc7=IBL#b^0a$TmH19#T+ob4hq\@MjdWl&'B^L2R8a#rdWkF:cMcNR% %oQ&HV:QVjfUep9noW-1Y2JUr\6;cS$MJH.G9qcflk]]/900Vnu="'>.U-d8S'5UshY3bTOknE9ajA[O=IM2o]57ojcnk9m6a7cj, %jdIk_EQ;>L>E5N-bM/0/rq_GoM8=PC@TC-k:(07+X0r]%6Z37HM#jc2@$NBbhS`GE/kSBB:<^Y++__ZO:(4@DC&1;Z\j8Og8gsn%\S%iH.1=67F3&Tk[,dom %fS\4N(c$(@Rp,!qC#4G%I&rQdJ`aHqaC_II!mP0(QS%IhF!EV*ZK"Ub'7o<6-\(V1q?,!ghCEo"l+JlerH$:I)=%!nJUVrHPlikP %E_;1-J`_1]>>`9>RQEU*i4O^M1jA@8LBfZV3-.O-5]\ORk;Jg&[R>t2&h,;G92n5cPfPTZ18cEjA!PR-!Jfik+<7Z$X3--YI7?L4/0iZdm_/psU3 %qC%K#8q`NEXcEDoqAds4&NVT9i8m?C5`l@+-]SgBM/G?CEpfK)iEBR>.$;C%&g];*j<1qUBo*H?-(J."*59m46 %V,/k`9;mQ-=:0bb0iBTf`)8"*?:_J#JP)WqHg]gS=UN.9N/3]bR=!tC[8;3r4*@.9BU=Wlo4<#@kdDDe2eM:''J-'HW&?V`DVZ<\ %O/Jp;TP$>f#Y7DO((7fnA%-T@;\U@]9'smLl]SgUZEmZWiX7@4I!ZZHT63p?'#e\H6XP6,k6s6B[Ht3;0%Man"og.6=R54XU.m)* %MeF9:a0E94Dh6$-,PiHGEl2Lh>V8#LBq@b@kK!%o-_hKj+kLk@3>oLjo3tqR$]$g4nK_8V"ESTSY+?jcfdr*o2@Djd)RMiQ=KCh\``^4Z0;p"CC&rqhMe'+A3E)Pa.LbCPdI'Hd8SP?B6?,/ %a.LcNp%[[Fo\:=t@top`gm,N$4^(ah%S("=j0l6;#KbN=O\MJdArJ %)0cHb!Znf2Xn88N"7IO9#@0*J-RM\)?WbF!Dd-a#)Wu]T_k]0WH=/iVq^%:UT_X5Cb*00TJ5lr&Ff0]M8I&l@p;YT;eWV)0ED^V$]T]ba0nlF %fq#a([M:X)d27+K#^D`db0[[L7_ghCOi\"o3O[Hh(G6-NC:^02\#m#*7DuV9LR6#rP=*.'4', %9:2pcGB7c&[MAXA,^8\Q8Q`HJ%El1XUj)8'fiHZf9ZXZm1nbhfD.Tt6L^ZC+[Zr`G33RDT$IPtJi@'FNTa2>L:++NGa^[!1B"C,MFsKg_G:T"Ralq\Z8mZ)6^Lo9C9U;/D4?lJXGKS7$6M^l@.4t'O^[1,@a`3crQ&NDRqJIkHk;E&r %9t53M'Tqc>q)9j!51HQX'gdBta7NdgdsGX?]C'++RBo\tQD!nH&-,#65W#/pspPd%"#^(;^KPg?M/%=GU%tTIe0Z@VVP#K\kh!f($LVsL(WR92+)#K]46]4@ED.Dp[;4q^WdOQ %B(YJ@Zj1pdb^uNHhEBBec7)MgYRf2Jd84,`hEEIMgJ$pI-Q@C/Y$%RLfB+Q&T8k4,_if1iWNQ$<*^pMArQU^`PL1jl.j!>?%"s$O %.395Jl^e^EHGjs,I9>;ai0et=S1tp((ONL]9'*"#X^@C@2.-BY?_,a!T]fE8rs+@RC%'IOqB&oGrY6^:TF4h.1878l"n\/1BFSH> %otpio)II:R^IFCPr(FdWhc8&'\GO:\Jg2&Y3_EI..h3J[Ep0WGs2@7B1M:sse;:@,&c"Cj""g?]g3P,%fLJ.qCb>6Tg1t:Y:[>DV %X^",lP2E);jSFmtb=4=oZ8oV)Y5Q!beg(#3&&0W-]rbI@0-b1S%OA`CFnBU<4%RD0XJ<\Qf!OsRXfIF_,>c2RQ.&W(T7-UTqDhcG %_b9^3UeF1m5)^B:]/_&ZlA2mZj+66/S"kaZo]$hFQ%"_$ZMSJ.Gp+?rrk)_QZR60["4iIA9UXLF$i4GCd8kF_/\K&7)f90\f`KdZ %fe6Rcj0O"A*C6fB:f<(Ok=:SpV*>X*Cb_nh %IZVkhj+I)aN$'4Uaqe%<+U%U'ibC6d.lk]FnPMZWnEoLHX^+S9m\3MDH<];$X0qn!U'O/]0PZB\iI;c&@cqu=DssO.StRV*IL.nj %`FWVsll0YTl>1*9+L5gmh$3N_NeiK[JrWR8!7]asV5Vk)d(\1c?)-3@ob? %LC]Xg5P49CQ]F')YL,!3.o1rt(*_I[VD0G4[/"f$/e)[#?Yr18BN;O4pTu^/qnF(gHDbdMBW(3"E5P6Y<[..%Ce_Ic-^`Nt? %K9GpQ?uD/l1o7-7@oF0Ma_:;AXII1@*3J^l@-Qm9\c:esT7$nED*BG=&#"13AQ-?)2qGWToChp(&PT&7;IHcuM21-*;Cd=@7T6HXtWd%^np(F78Y'IUP=40BkU)H\`a$=t0&^=U3CN %W2Qmfc484-Xc_)9?6\^'c-qZ,e\eH.*aaX=>TpA1a_kQC;ek951"f8pMCR?!1gi#K9X=2YLRlbdDMu^%o$q3$>thRoQgInsmp`S& %K!c-,Dfp%;?.cCh@WcZ.?.OBL^X^;7F?-8I\?%;8UWZmi#I(eLN%RO.BQ\;4?-4/`4jiQS1:egg*8FR2QdMW4[CWl,0"cdY=^;[f %`uM.?tJq_Bt0` %JCVVMFBNl^I]JCMke`o[&?C`4k^o^D+KLE9])bG:JZLK,XT`KAJ`#bP1:f$b&\ll8ATXW<-(*6%ATSN)IIjQn/u*3"Y)d+9E>`&Z %IL0D)E>`%\W]@95`V!?N;pRb2/hWn,>TQqHX87.,l'-C6IV0&E09"bRLpQ2bXQ\N,LpLYe5;@CeEu=3q9Us_f11tl7]Ia_.CXU*^ %T<^'NWrOHk7TgO9XMb"R7Tl>kX)QPN>VfSd=`F14Y(JIG.L=^)q?=eHX&)brauU8<;)T=WhciKN"b+3?;:`jJFmlFf$`h)1fM%NP %$*+G'j!#nQ!bjB2'6iAEc-e',,-VDCgi[%U)!douj_fAA0Y@N=kNU'/&h!,a'/Zq7qZ1k7<^qGdA]G"WU\i"8[I1lu\R9bR?'"0r %3N*t\9<=e/71FK0!bgD^/SJ`2$@7%Vd`4;8`:g4L'XWmEY!Qm,Z57*9lq;3!ZHp&pZjr(f@C91Ik/9W&YJNT.HtKALUo:ieS&;S\ %`@1[@T3:AlR82iiSL>C`YDH_k?E\a8(HrJNlrU>(IJJ+9oZLl3bMNgp5Q;AM,n\k+%t9f\#74XC]$&6WM3qTXQ5?n^$^tB3b:EGF %hX\"cd&PFDoYQ1g&r3p[7;05PT*VJcf],?8/f^&g[H".?nRW*ApWF?NM?u8fV5X;EQeUQ32O6t;!Sue)6^t!7F7$1e""h2.SdaZ& %NsRNCdpBG.b#KON+Yga'Q4Vjr4IIGY$)UA\R3mnCNY4tFbg&[`Fc=ZDsH,VD15<%W9?ql[uSmf7k-Z\\VCmgo3F %CZnEn^;7iu@(lhKG-%F1l?P+Ya.G#Cq#>*h<7O5pB=3\Yo(o3'qqW6B$?OiWZ^Zl*PMVLYg,XjRBJfT?-_B)IKWgrm%*D6,UV%NS %TsI>n/_VnQ`aFn,`>?u7F_YUgH6u:Y&>CEG*=k=/k8r$36?o'S]WG4nB)3AsDIVL=8FJq*@DsqmX7JjiJ/[23.B[7MDb!ere`0;` %I?X.;J3rH,#neJ7kj5X0"PY+)QFCQPkc>QU^]HPn^fdf)mmC+XMb%cJC1)U=%5aToARJZO$i]*9/d#n+:?N\Di\I`WMBGGa0UI@P %hom;!^iD>]F4CD7)-DbGL`L"]YY=^>;O#.0@)9cXTUK7LD-]dM^P]IN"\hI;C4`u)XGL<+>nbGYS4msP5\)m]E^E!KO*6,9Q(GnQ %1U-Z0\"Ll8;$5AP$aVqU)d)()44n0&A18m6h#s_ak#+rT%[OjVQqKHeZ>f@C/9G2b^^bZ"XFHrbqrpaN"4dTr)-A\#cRo=clAlne %$gUE_Kb]JrjmEomIRLbuKm.iUlEOk===3>\BNHmgJYf:h?,)JVB[L;[]Z)IIhd=kc[/oJH[R-A'(R#gim9nr7$etdAHND56 %?^NFhN.o(aaaiF[PFt"0lL+UBq8a@c4XO>LbclUeCDbI9?oRm*kpHYjh6g[R0Au1)('ZRR1V%_f_]iHto4)3k0;(6iYV;GqI">=H %U4pDi')BCN1#p7nZ,0lQ>6FTp"Ufr#a;62bN*$pERZKkMJ7gWY@;n#7%4q$mjoq>KZhDe4(LF4L"ko8tU2nE:e*D8@rp)9*StU3j %0AphLJfULhU8BkY8@>hEmjkc59kUAF,P*mCeHC+<:l'T$irm[mD,3Ci_<>YsakqYAD@\fZn0E:0rO'c,oJAmBl`()H#KAmC^/C#Ml@lqeA&!/*eOYe<_"1C(?NEBK3LCu_Id$qobnb1_R$9sgk-N;ZBj#.N)7[&/`HeZ %&51Zp;B0<\>rLN%G5Ha?US0W%J)tA"`BT:79qSfd?!N%,X!7!`ViQG@5L$9]J/V[6I?2X %FYW+p%Ms9Hm,AEaFb-0%VT0Jsl2p,O'pU3s\:40QW?cu+'K`k-D2,Q.fY!-5`.'r=@V0rI5D+/G@(D3j=n^?1i*'U=cVegkb="Q& %Y%0GV]83'o,hL**B9=.1[\tehT:Z9l3(Y^@cT9J"R_8C6>)MM==WU08L#jrHB5p^4"S/ng"9^\fn?L9l)\;@L.704`XF?JGEttEk %_8=1-\XM+o,iE=O=(.T;'CiE5Qc-g_(\+iIHY$]tMic_^8`6Wn,^7Sk"bl%jib'\ih9k6OZhc3:Vq]6$X`q=EU@sM!2/%^W_5O)?'+UOR9>,h:"R %#1T[]hQHP;bF=pESU+3Y]%qB?kdHe]WJ*O@q6lTnWF_Y;QBktlF??4_G8rd.[4eZ#I(T/H7'C`BMsiCClBrAO]B]D`Hap&!)7k3cDDb[h %hnAL'k/6h#BXJ(trDRg1_f^7*^K(-tX#_"7E"@B)m\An@:?&6nh^FeG$-suN51I45?Eq%ko4+(!pp@dlZr4Q[G&BLhQ89%QWVlC6 %38F_ebL>3p^,+Mph"\mq[V&@"haL>qZs*^bRt#T;ri>8=Gbhkjh)pD3kY>d'(3cj^OFB4%>Km+7COUMfb\I^-'3Mjo&!N\+r'Be# %it$9=[V$qd143eN.CHI:QS3BZF/eaadK4ZNY[Co+Y%?[4Ls1r0&e2`)]N%)Eh_3IGj7jnQV'l;%)hmAMgI+<':H\9,[6Ld[AV]@+ %).*C#L$o"o(_F\E!-Y!QX1mAH(#4B1qS6"g/3]b"jRdco?!@<(%mP_.ct>)\7MG6jHGKck?pIl=UM-O6hI7dJHsZ&qk]BR\O"3$- %bCls2h`7HgXrc:^f'N]>;F0$&>u\5r8O4s(LkJLP0`6!?>Nqajq5PJXT9NHAK#Ao1*=o-FGtGh!qDW?CHKJZ3O7#^LhS,W6OBgN\ %fh"KES06Z3Od[!VP>p`aPFN?ZP>l5G2]m1YPn`l6#m,0MDGnhW;SdY;:'r>2kiY_+htE"d/NUu/f[Mr:eSg.FmM]!"VFq01[QQr-M,:Z %KiY=_]?28&n@^J%[-07Q>r8>+A6)YpBTZlWoI%'C`C,@pK?SAI4@6qP<1,V;S<8I?r`JCm+pOIsT&:)(Zl!

ind'Bd1PlI9Kf99f'UDH"`F)&89]L#7Al(,tA?gIW'`6bVa86B*]QTMKZ&9:#:O(o*5HgsO:&L@)eUI9B5@cKDUrn54g7 %@NW[T>F@c-&'`fa8.9j2LRm_UO2RE-5k%V+q2lLRF%(akf]SbBM;e?1F71QG&%c?HS1%?\IO#,hXCnHB@i>RJcb\aN6G"L0]0?p\ %BD*o:'#X>mr1Fo(k_$uY+iiF`@L"'.Fkk]NT;1NGl*jFCpJ?Hn1:UeIOL/X'AI-3]Tt`>o."a$N3+:Q^K/0rGKtpFo"Nk,5(%*%h %S_\m&TF@u*iIlBk%EdUd(!:$.dpe#Sg6N#e3;*MeE5`1CXpb=bmYM[IafYW:$ndH8$+_PHEp<)B;O2\UMFX$I%g:&5MA8m60h+u/ %^f]Q[g(ZN4`Y'e4mRe.M'j=1UIS^4Z-6iOeR($0l)qQuq$1;hCKq>C=%)H4EX:SX.V0idB>"rk(qUFk>TdNkHo32CF(e$R4`>'oA %ca!7bCZB[0Wj2+!;rR\S<,KMq# %>s81m4gK]kBQ[`P"+k##tS`KW/an:]hEq(9b=NH/:-FmT+aFlmD>dbFDk9d`#;/Ns\CngYj@G15Q5mr3"qho-:8_@$^k!Zsn=X3e5EM2,=S?CRCd4'G3 %=1NjaM=Vrm:r]#CX%AY9M93PO0fLN@V:*IJ*58ndlf>lc^uD5Frp7p17+aW)X.C'b\k+Y>Ue;G4MrbIV'EQ!2%Y>0_9q@\oB0Tbd,Lk>l=((MYt!nf3ouREa-?27laZ\56u+=OAV+KF>3'9aJqA %YR@jXpJ[//@e`cd=UVXQH_"B?-%F/]atOMlq86n^EY`BjY:hGQU0G;<$!3uj/W4Ah?Ui7>W26EnbD:S0QfLIb7F8&F/(B/tIr;*K %E1rS9,Fc/?l_!D!Q@L0$ZTAGX>."+-+7BVl>--sSYsL&+iLO2P-![B;9+OcJ[=epqrcceCp,Np>e07Y`rgW.<[+roCp3+W?j8Y)1 %TW:oTDgG5dH;LJUj`(q:D(AMXQJ)3nVc$/)5R=DS\Of(OgBqtLEg)*([M9+c8cu]n3-3`S90#Forn1L6%'Kd%) %$4=#d"`:;iSt-poD<5Xi$d6!Lms17:>:D+g>/I_ur5hGH[Zqrb>X!ZLmRjHM_.@_Pk,Y.5*'$<99J6X$cnSlVS.r?V?d>P#@gNYA %`NN>n50@XkNI<$Ke&tTs!$Sq:=aIK![%\02\/5BceO!p+gT)(ULkJg2:AQEMYlVR@CGj/ZX!Q2o"hP,XBc4"R$q5u<_$V:f10AL! %"tM36Sms&O5R8%YG-BKJ8Xk9n_,&.>9\8hh19@B+%0Mu:6NEBS%%sZh-m/`@!s&P6=p>1m:7?]GEa[H$7f!i;OFB.uA[3ZB=Kk%h %eWJ>VO\to^]*cstksTr/hNa68ksTr/?Xq<9FG#(+#o'!g6on2;^q?&A?la7G0\qAH=SW=HlJ246&1W1'@n9e-Ni5_fG%:#Jg?P>W)"+-@^(mf%Ys9rBu)ji3E9Sol\PC*;'dF7M>BV;Gniqg-2hr^CKhaUWbEnW+tk.2W)%[+9'?#nU:'U;-8r8f %]taF:EMR>#Q*`$BqICug\j!t!IAA4pYu)0kL!QothI$$IYU_3!:c@92C`&0*8RY)\/H&c(Y:I4=@jOL9PhW87ja0[p.IKTnVlf:B %m=.oFd%pdU0tj@aj(fmfCe6SiFGR25r^G#o^H9BG;E9SGpRJESauFpH!!G.Po.h`olOL43b36EJ08Ie%Did'7YqXh4;u %W0o_6%unEF6I$psQp$h_h;(6d8NbsJa@bp\1jXi+RpY8J._WJ88aW^BLqn%s-DNTBEX#p^,<&p%5UT%:Yi7J=>[BCb+[g]MA-DTP("T2QCV-+fM]hPX#itO(,ip*ubrE(MtF)QN,2n1BO)5t.g2>7oAm6c8N.\u'.5b#k/\hts;K&G!"BE2)'g9;'hD+'5mKk1,*PXGXDpPEl\Mq:Q)skG`c+WqLhTWtZRCP8ke/Mph]]WNNpZD3P %_^\5mm`dEX#$3Q'pSM6_IB=fkbS*9(6f?6qk'8.`pQM,m?,(Y/oGloZgi^s3Zcj).GMpG%GQ$Z\bkDKjU.EQl&\aDW'1Hs(M3L"6 %7>,q12\ofh4HVSQ8YIR=bS/5rfm#+l.J#rf)(XU$,/8CI/_O#p>k:A7]95-N2"+IRRjWe%1i8sXc9.4EB;-g44:ut>M)hmKIEtPl %Gb3"(1;dRE"Iph@Ss!?\_OQ@$9GGU:-OQ8)B[%4L:Q.&+,\N^)B;[\ur\P?3H(mjT4H[$L,#/hTjq6OC"QkQb<$uscaD[XU9S%rG %fWJdg07--0OH)n;_1Z):H"@LW&\TH7R&0>0Sa^#)7FeK83cEJ;M(f)6^%Zq7#jAb*:1d>6R@rZo7Z"'K"kjOpUI8XO6pXKDDRD2Y %c^%OlL#W_E!@="rJS,]t!@8J,Mt)V'flPFaWP!-Ar4SgIP020[a& %*&Ikk*"Y.0`&P;Pr8U5'b0S&eVrB-Tf76`6nKKX:>U[7W8Nt*@(T,7l'/eLL34u!\->U"tDWE4B84^rYs`.qK3-7"2a=Znr'&@p+m %kraT]5ih,B,K9C&K#jX@Q[g9H#U0N12uuH#&O`e#6km1"&37>r,uaF5R!H2Q-3uJi$Uen/0>8iTM'-gTZV-+C=-$4HImdKS.JAI-]_[L4IS@m.`*j %JLUl!$aVqUU[pSuAk54CJBma'?18gA!M/C.\mPs\!]j,Ah8+ikZXhYU_E32NU3f*5FIq[d1%Sn_C$]^pPQE8J*>7T?:bd&ng0f^5 %*Nb-h5j11f,cH>brc3S>Fm,b[!oVr>:Boak;43(K,O]8)jV %O6Ad!WNa00FD@nXb[rM*ap_aG*M8b&;>THCU1QfcQI]\\\t2DFNPbJW(LI,aUDp1NgF5PbbJYo9G@6`u)FXoAG8"nSf2I8UGD'Ja:.k`]1n_j&fT(4B'gq##`M>3Nr:eqP %=Y9KGen"VKFB32VAA*q)/c)7Y3*,6Q'qWsMHUSVa1tSfEh(+)FO\fh/nYVeD:C\cPBRf*#arh)F6m6,>bFZ!OS(46/C4ZC/@oeM: %:/.ICpoG7e`Nd#Y`FcOAP?R01-=Kq*QID#7RlXFd$`e`;RFrsHjOtsfGGXX']kUIgi0n:`92Y)-/O4;kM-;n[0qqaA7K.iiijb:G %d.JL5]&1UgN(0_/k8LPpb8-O0]KqVBT.N2&XD7]]F,6(7T01C7K)6m3@#LC(KX3=K@#LC([(KI#"'`]`/[S9=2m>`p(+Q?&JLt?> %:f2#_eS_O8]tLr3]%B[e4!0fc9E(eoHHOT>>DbB,dSkmXUo%FDaq1HU=cqh-PCP)L#MW:XBpYDH`/0:(LUaRpV5S4e<[t/Bm;2g\ %E42:5:o;.R1W8B=3Gd!,K@.A$5+$"4PbQll%si('LU)]FXKTJu`0ImJ\I).?Kq=ThhNmm`j`.`e8e-!"$gRe7mn4_]Je-C9$>#B\ %66,"%h`?-oTal)$25m7(4N-@9`%$1k97Ua&lYO*Fh>bOPHYt4WF@jA?TQ:rdKM=3mfOU1%(`^>AD%$W-F,%*Z?f/,<]j"W16D8PJ %4YtEVCL'[:eEZI-?+$_h2fUQd[[LK,;)D4bbB5YP/P\"nO\IeFKn<5,8_/Nlh"l_]Q$gIj_,)P;hSF'je)tMeThoFp/N%Ou#FCil %X'VqAl4l0d%Dsjl#CE*@A++M?m`ELfj,5Ub_]"aLO&=8pT#J@1G"4i:4l)mj$gk:,bVG)G+!E>FfD&Keb]j#*$II%-QLE77]CP3E %1PtKc(g5+-GqK:,+>RX2Lg\'N9(=ggu&*jj(6R:X"'le+JZ %AX;]bQ(!-8b:MBoUgr0>]?IQd'^^SB1@U^<8'("C7Y#,"T*SdK\T?QL1CdnQfa&KX%]+2W&)3mD9:8D8+1EgP'];D=_%Ffe*B? %V$XlZlqE\T1u$s##kF5bI$\!E$W_`RI$\!E$W]ptI$\!EMpFl%a`j.a]5SRa93rMLgEfo3P4m=cfIf.k[a0/cA\0AE4YI8$m6]?W %CL.qA[;]YcGl`c6jeX,?>R8*Sk+s5Don`$W/pM)$0<^(98U5#@kH:&-?5euj#.eTY+*=,'NT6UOgH-^L!O.4o$Yl_G*2OIE)gtUJJQXGEQq-d#:iEf91*aJi:+HB?5euj %#-'7\o?r_j1]U[gjeX+\C#HPjP*^o0eh^G^%1/5me^?<.%?4NTJsV5QUk-S*,qf_L8HYPp\%FOC-OiU!G03bbP*:XC %99#m:L?,-2B,>H2Bh1u;'^_KYL=52-M3g\Lq3B3ZmQOP!PI#.'cSXKH2hu6'%EV1oe&/]UV'0heBH;0=91(2NANfM#]elOOkB:BW %?5i"E"1E4f5)qDmqfM(t2bDTC`Q\K$Wm.frqWZXMJ1hZ0_Ho1^_:K1k#"%6@"hb$D?,GMm"hiiI`!,Y,KO0V)@R_,\l(;7C"CEYB %V;NoGJM1=,U(=sTlekD>]j,_KrYUPi6/R/dh;FR5qeo^NA1-*5qc(;:DS=lV3mAM?Rk9Yk?!fN?OH#I %#f$bgr2IffmuP>g(i%us$=99@)JX6O#AeuN&OX`<'4&0,ATbg*ZadP?Z),ih172;4mo`7+Q=W7Kc6:1uL7Je.D1o@W"a^juU65RD)KF-rC6*WR`oXX, %94Y&-_hUpnAnOXhT$;`eeP8,*5dmgQnW7Mn9pQX%(^-"303!QeEd'7OaN %4F?2L*\QI\l+b&U2>@f52bV`k:3sc!7V@%;c%ucC,el_5*u`7RBAjGQ2&C?5L]/)HcK1b"PNsPuaG(WI-*kZmRZ#X1"WPId>fku* %kfo#,MjkY'!o"Y='S!HbT5_>kcr:-VLseDHCL3%-BV7R@I$S,GL@[b315Q0LIj7M7poF8>'GF+EY-4/L&0<0%6e56"WQ2@%P %?-FdFq/&0t+jN,FgS4`J+Cpa!M6>!r/Gf%h@nVnSb49tjd(BhN\,*'8Notk?q9]og.qn_8:)W%i?Y7g!\!J_]bHb:>m)Won;8SOcY %1fAg4`a"4KdC@h%.7UOSFB)V"ZJf9]l/LQEqJ>7q)*^BOeK?,5]o2lteto:a"[Y>Vo+q1f=fU,dTkd::T>d_OuE+Pj(q$<2?1t!ZgN8W^#W@38'M)YA3P[k2VM=UQp\_ %QZ[D0'nn?Z8mFRm^[rdhUTk5UNb`+'52mN6mo!kE`^IU#AWCYc"7PeHp7f/?T["k[\A8Re@[=8>.;%WL41-`H`>SdG![$Ze"NbXi!5?+[10-2FX^eKaC":(AKo:,&g+k'&l`V[/4_l#Jj;JGnOXaI'">n='Z %[]c&]XOI&$D_[Bc6o@[5:>_]HTiYR-=@EM^mC!o(VN4Vi&Yr?'MkWqm>)l0+c<"EZXlYr"&pm)iBe9^.RkCZdpOUp"?d;3Er*KZQ %b'q&\,Aj3L&fBVJ+`F-L&f:sgI=uGo1U.#0Q]`1X@o]<,AAXAC2Ec>h4`(O8n`PnA$ %BZTaq+849."Y33j7RLa]Jb_p5/ED-A-gB8+*dD5//7eOWA.7Jt8^>1U(,EJ#IUe"TSAe(V7RKVR^m",N(SK2&^]bYd'f$KQK7n(u %<61.F`u5j5`:NrKUhqqfS`SdPj+<8Fb!^l&a$rF-U4IN!V+(iE#-,2NLAqD:H`AKM+`G'=D@5% %&snj#Ki!qJ8R)[0q]iaGl#01F:V-#lMKPiIn^8`Gn@(?HNLR=JH<$+p;cg;P&!E@Z^m %d]FcI$"e`MOK0]B1+(D>,VBC8mAQ3T;/gnIZ7ALO'$T?9IWpsbUbUsnLYYP];Rk'b:Z>R@IT/!/T>S1'`5T8%cL6*K:oQlicH4!L %kg!.,_`.g'-H6SafR2Y=q0mhjBTj;Ul,7SThJmO?,2oP %(HJT4b+`+2c6LDQ&DMBfYYAlS3e\UIC)N4=J8lWFLC9s3g#gKqD&F.JGTA#Z[Z%I, %\%amm>K0d'pP!\DX(@6tN)aWTd?ZN"l1`D'i#1"P'D@^ZAU %R7od+nV^naAR#@8K[?#>etQifX[1!@bHBk^8T/iD$+Zp)/`9rl#p0+t5!F$O,gOc&1"O4JOoX2k*`K_3&O9R?=A..Jg<)Q:95:0# %cS=.j@_:":e'_N6[T46ck+#UWMd1/mG]LlYdLS4D1jY([YSLb5o!HsMB*M.MRW0[)[LVJ4n=gj+\mme[a&N7d&uY)4kfHta.b6G/ %`t%K[YGc#h0a0$W%3!I!'Rbq%\C9qW'5$a(:@u>FLIV^5)=N()SR_e/9g(Rq2B:e$*S9*!b*h:"dL*)m= %K812]@JI)61O&q%\n_LGd>l,*9picg8U2qX_,I`$n7*,Dn-E)V%6laZ##EX,_iIMKJ5N]O!HQ?l*^@aNiQ"Wj]OW"O_..sfBAplX %bi$m_mkjspJkNEp1O+"?GNJ17`S:r&SJ@1W"Vu-&6*eJu6a*i?\bhto!]W5Z6JAiL_+.Fs:a/>]X_N.EY_4t/t2#Q!Z %)*E#mRKu.?E62D4jt_Sfq433]4.DMiB(/Kcp"s"$FNra[6n]4tZh,0i[:5"g/uR[KH4iR.K1`&07C/H!>&.d0a/UY)>n=W+p$h#; %rBh$P%aCHYF']!0_N.D^#^Ln:QR.A)i+[i@WL^7:P&5k?Q?7k4-K9[O>TW8\l %_+DsY#pI;tVOTB28-gYjgDPXVKFmu1M:oT.8dIGsMNHZ+Y(Vnc?0I>0)$qHFpWY[-30=b=s,.b-N/&'Gs6`r<2mpud>&lFn=OIeu %q&%ef/YO;K""lPP-el&*"h:4W-.fO^=f5J-J.#@LKY+\"!#Mg[,j>',jnQ!!SL*4iY3#G=Yo$?aGNIb%NpiV\[YKhV(Y]P2AP&YA %Ec&\b?-DaYSn*GEn)q$5QK(%T\dU]a844has@0gLKn#Mq*N$HXjNj*]9_J=m)W^#hm)3'>7'2^l[&S?fKoc> %qD88_Asm3G]ZcEKp^2:3+.!4Qb[XRK-ob%C2M[(<[R%c2+H+TBY#\r2R?(:3ZT@qiWl9Y):!J&;=N@k/hl"lQr"NH"rk#LRr8,.U %E4T+0RBOS8$IGj9`OZlDN,d/>_oKf%DpPGN&Go_Sjb0dm$+U^oR@KAKQk0I+aF=f`KKI/+gAX<@mQ]pOQ,J@N'M^8.F@AmEH$2c" %_IHDceOf'4nZ+&\_JUA;kZi.oFG,lP8a)b+OJ4$Ii@Z/03.,C<7k!aXn2DV8KX6$4GW&2\E.#\hmmK=r[2e'Qg9g%TDc8YPiVCb\ %^1.sG^fnT8^Eq3M`SbET^2#mp^fY;BrY-0TjS?MWUNf)Eo3KQ0SRY.5HG2V"9UicZ]@Q!na'sdpn*3]KlhR^Fp^S./XQR3];G8Tt %eWK#V\uDIp\Z-Xd3Jg-ehmKIfS7G%;o3DaTEZNp\4l8tE%(R(k%&pOC4lWJE6&5PAP^U4&\G!bMJ"A.`KD+P4-=KRTX%rENhRAgP1]%k-.7Y86V: %#.U\_6uT5ee$:1V]LHL5Sb4WTD%/1pfrHE);O]cJ\<:Ra*VF.bK.Ac/ %D=hS"@r;oa;7'&BAI2U5?Cd+&[2;\!EmXB1Y4%i`WEQMNS+S2=T;mT7hdiljcp=ZIn#Be?=3F18(9e,/2bi@J3D%bqBX>6Q:/\Jf %c'9l>AJS]O[+S\9-`L;58`jF.3Zk_hZ*Y+/i_gV%J_Q$0N$[Hnp#Df6=Qi>"J?deIPBCWe %7T`pLY:5FgFQ.@[UePn+uWD(=2=r(DgXefct7cQ7r/a*=IR713p^N:Ssjg5fp<>u6" %L+jr654)T,B,Fd;X!Q4_DWbd)%#!O,M>>GgdP5[/8Y@a$NJS'RmbIA7h#=Z9N$ZLibm`W70mc_c=QQ_5=\jjn'3q^kHktN)Wj85C %aY5Vm7BPkV7M\m\'cG"-*G?`K`ep$Y;XLj=89bKcU6*(@G1tMm9uKg+k8r"mr6eZt53(0Z-N`D&Hh8GfE:I/`R7LZb:;&15rd)@cqFJ(i+]'"pqYJN4%SD8>%Qp$tHWD %:1kHa_"*jZ>E1It5mp0aD.-OspGMQ"G3):l5pMQ's:!i<6[o5rd'.75_Y1oq0]5)Dien_QJlgAtTNHk6*3m@?L %6$o3l6&eVkYo[u=X(C(c`Fh@IoR,9Ue,g'cM-_d?.Q(+qmol8cE"570=3J*PMt;LDhQ%AJm*lZnq474o=m/G!d&Ua5WQ"9%c?lsX %41-?IVou2cGMK5fd(SCFKO;)I[5@@\1&&V9-H/[DeDfe)a1YZfVnZ?\ %8'tjn[>`.j,1NZ)go3`iA9tYB41-KjEj<SGP&Ql4>__bYWt=[>ZDb$W;?Ga"rh+r`-]+> %mf'B:W?n1%d&Y[uYP(k92+T+E]itDH\AZV++)2Q*L&CVj\6-G=G/IAXYa:EZbHFX"G-)h2IL9\^XjK8r\7&$3;(*^P\DdE>.1/qC %9Whes=&Fc2]qcRTF;9L!=H&cEOJ8k`>h1nfm+Gs4jg*0O;)VN/lPu8LFL9;5O]3$0UK>m$6;DGjZ>3*kir\nHq*1MF)^EZ_])rXXO)pZCe9)-F099'nu7MkN+hH"aV#k?!CJPQ_kRMoAD)5^iedRB8gVYL6r?M&>+.e+MF*1YWrR79 %.+HWm&lo_+7"['c+_aB=U/t=D'TuK2!h6Er.3u#DK[brt9d+4>+o!L'CC3W`$?rD7P#)ij0(s3T=Grp0ledk9;Gs+jq>Mu1j`*0G %;ZE&9[3-pEXo9mYCVe,X>Q%d[3EFH%[u;#Td(sQ>@4fX@r[mBJU:ntlD4q3Hm9!5! %;l=/';$\10DY7o[4QeZBaIuc$DAX>]TBonaQHFR$V>`&\9_#0neA!;?if3G/PM8`u=Rk;:N %I31,#eEjJ\PM*&*^+suRG8Te7"3XA%3aF,-hOEuX9mck`g91X/&lHuL0'NXMmQ2+*RZJTm&pG`h1a,'d^HRDS6kf,YMO%de9PD4P %*G6O23>bXNkq$AI,\/N]R:I)=eF?_c@d502iUA\Yiic&qN9=qPkJ`CgK'Q#W:;0KPC'I,7SVSN$ebILP(ab&C=hn^V$nV64SH6"=/ %Raa-nsb[0i"8.:t1NC&fAD\<oashH,@*_bE6_0B!$b&Ak84K%Ce!F@FTG4=E['oD=F1R$+2/EQVErJIY %K-(m-FY=[aq,V.E]RN-IkPRcG;2?:Zl5$3T#I@>,p(#5YHfu0sb"WNma*I-]cDDh-t(*l9WT7)1$[272KQEcS"dj>:MJ+ %nE_@N]#DRg6G+:3*M7s&.MY23e&U:e"n3fSV)Vc8ZdO#[PPnY9G;[`&/D&ri3\VdRMkBTr)(uaoHT[WM=:CO_`H1M-9JUmK`PYnc %4M8EY#csu6G^P"iiB8>!-L[ETXE\%teWhP3r=&V@pEmU@s/>]p%=>r&6EqO,.Xlb.D/.&7m>,6V)LWCOlDO5!9Yrut$)-fP]J-D' %F17lbhq-QPF1h*X?B*)*7;iT?ce@Gf?@)Ea2gm,N*<+Pn]erRR@[AdDK3CEBJu4l>f9TI`(5M\7?!BuOQ&i95rgYn&[>"E-#WL?" %f`F(JY\QlD(i6'b9+1*Z=4tg/:]]7i7,X>rHT90SJmb[bnKHDX-Y;/[UNM %mb6++:n0lYaf[4tC7@TM,eLLl0GHs>mb6)=Hn"&\>?Vl$;PL+nB/h7/a_<=jUgD2$m_KceT(RSD:D?XiocDr3o0"D2@;tN7g;USa %LSA_.s,ooX35&HmQnk\*-\%3HDGL?)>[4o5jc.#sEYa:[_%X3*I5?5cqd"4)a]5>38g(I/%t^$_0]\77cttkf1^_8/In"GtWS)mT %dMsg8,#A2gH%TY"DJ&Es$3FdNs5Xf_\V>lc&!Kk/Q\m\eb]mdVllD+EDX1?O@G;`JVU"&SC9hZhuHn:]e!_"WB-?=8/Nn3(N=P0,jj;rta\DebPI %n$)H\ILnad^##e12P2=8;#,sfb-T-\s0Y&2GeN:9_W!A;S_o*l"YOcm=uj0!Ln!;kYi`].Mr4c0?Y#Qn^6od\&4%@d*.;Z1ce*-b %%3hQR\MT$GD4pa$:rB6U=J3g$B`Ssf*I;*42uI^(5+Y_Shg8"q1==pI5t+$qlEt9m$l4cgAGRd'X*`/M\>`=m8C_=hFL8nc4mabA %K+?p8kl0O?9Oo@`;6-[9!^MA"ro7qr9.5(1e0K3j^99^bf>b^AXS=lfe,l=1@ZDqTcZ92J,IGQXB+@j1tVR8O)[hJR:ma)4VQn'Kj,t&L1m1dhXE20oC4!E,9%d`M+9Ir8nF0YUZ!&c %%Ll&;MFOFl,)$C#=4u&rZBU1@fKfR71DL22lfR$#.)2'taDc!_n:OHI*/mdFNRp_bP,57J)Cc-=NT!a*bWP;us3e %#!>leWLikk1bC")>u>l1NgPBt:I`TV:Cqus2\6lFp>KqaW(qdk1*L6DM%tdT81m)#6QT8Og)?"Zkh>Kl0lNrF0ubSS7j`gaN"%'] %RLDM;`[;I;a\p"Rk694&jgMemunV#Ou(U-N`P-kEl(G<'VnXTeL+tlAXRCqYqH0aW8QA?E.;gV(42`WG1WACeO$Ljfc(ISbTZ_&YmCSg*NW'Dg"Z5`BGnhQ)AT99+.N%^/k#HM*("HU&8`Hga2k,Nr %ZZ2>$KlF((cWFm=$gi$V;f?piAjs,a2+:_ohmT)r3R5L44s?nM"21O8I6p[d=&tm4iCS3n:Isa`P2R5E4s:eod$Anb,;8*/%Od-8 %VtnE_?^P09!^#`)AFMucQFf6.=0TQ'kS&h;5"lJ4^nQE2kZ-CoeJ0RgjRa-*.YAK(o&a\#R`O!&(@3Kf$W^`'G`C>5qg]$eFY,Eid%at0?RhcKuWtDuG@>+U"gl1/+4mqU])e(YPrj*@s_eZOtSCrL+b."njbtss) %:@b7ic/=VQ05MJj>CgD@oB$!=%e&1E1=UeoGlNuFqk"kbSbR"Y84P?b5^,m(Tom?-*.#k"+5]P5-;;J+d1lThP;_ZlWc;Zd2e,%B %;QAQEUG7)bLTjD;k#=@,Eb_S@\Vq\V&b9n>/FSYd1Y'*Qp`@&.(,#&)GS]AVj^A\PnKdHSj3W!$57$[=2`-:q;bJ#6.5RJR/d/gh %1C#lf^?qs4/[1Mp"0hej'oU4961Q[lMs]TWe&m+p\>#iaY0us8p&=q*h=DLF67K)]hbJG^U3JRVuKaIVWc)#A8J1g*k3Jm-46jBu]k8[b*\:mb``\X+$>>;fs?&)k30.=-_[2rYiWBm %:A]1Shjdd%)s[*B>VE_N>U_+%$I6[_k=Y8jp)I8O0*'&KTR*]P3dj0sVRV4jQ6,"S7@Ruj6KYkPgdH]?.i/H)bU7_@YItp>G+SZW %eVj0I0/t!mdBiU9YKe'76eppJG@E!k%^I79$ml^$pA@?!h@U$gN"[&bjHf\o3o3$"M:i@_kNQ-A_A^*?>4V %hHl.A6Ht0FPV+jfkfa]!k4mSD[Z*6('&&JGmi?)l/V#;Bk4`IH#P#I7S`PDr,52C',f(E/E8D+LVjF/'==eV42805p(M&Tep:V&LW_:U4So<&K8FFV!GtRnK&C5`B(HBCP%&ckD\)[PM63>F+XdJr3VYf)H>_ %`er;]!h=929q@l-htVUrY,Q),;peA&':l2aq7RG#J1)U0Uc %#,aU"BJc2()V=pudhJO8n#$I)%6_gNQpRaE(SqlROth[+Q4VGok95ep15^8$)+#Ni\1ASCS09/\%*gH\Ee][c1(K3kfs9\#N&--W %)0*t?6LoiW@B0]-(==bsRPTWX$R''4.LUa5.?rRtYSb(g,ul5OS0?CC%pEDsF,#ci1-oiXE/%akdq#K>@eF@[jK=901"Vp=,[Ug: %K=0_J_<`Xq(&kf>%+Z_;#jJJ/BocKD&/&jp:T[oAL6-@!kM#!W1PAX2l]s=p;"TIWcM9(Q6V)_9F*oT#6V)_9*2hV5L6)BQp:HEV %+aONJc4H-lKL(>ujD8k,#,tcD("gJm-g*Z/]$_R;A_LF[M@j*c7%RJ8.I_eGkumA\d@EGsJi)KnVTF@gAC4UWHt2)(dE[o'Rc"hc=.^m>CSU",N3Es4IK19hqF]G3X%Ku6BGHK+ap:iSo2HSiRIIIuZ"MRj^93D#G[5Opr=2:0&ntb%A?Rk8np(o['QbMI>YdM"]HANP/ %ZJ\@Z]a4DKl`sq3oWm.%BSm7_9_gpUmfN8^5qgHqP-X2uSH),BM<'>Ir4YtHQ;=u<%*"!g/YB0p+.QRJZfTXnjeHL@[X>Z`([=*E %Np-`(pIX'/l'boa\<;Y"T<9Ubk6ac$Q7o1LH3)\p`,,6kb:6&K,\G5tCW_Dr$TVETh4bgNMi$-Xl'h2AO6EiHg@FKsnj.aO0j?hI %;a1,I(aXO]a3rD?apejFMNS1UA9.A(iO6Gf%L\:.-#Q;?+s:Ip`cD>E+u#&W)b\aF5bl/&dHD[=)hf"GdshU$Wn %B?R4-"G:K=_Yi@N$KOnT&Znr!mRT\=:C!_1g8O23`C=h?&'>oF*A;SPCfkWcoB4%5(W&4AH8Sd,\A/AB.s"BlV%ql-s6WR/d`\=ZBoRgLOJ'()UFlD?n?KlB8A#2TN%%AC7C7R)5u$_%j_%O[-j[$.ud4eQ%Rf=69g_N[fIki-Mj^=#H%Bt[(<6,jX$=8@ea$d-!BQ3qD[>) %;Z0RB2c]f>!i'pr@rbFhJK(P4#:%@Z,5m(aQs)N4oCjH[%p`1*Y2F@i,&)Ckg!VUKD2?N3oTl=_GFrLJRW!@pRM1E?3mtX3Jq;$,44Q/fp_F %c?g/)D12higS$:u=mUGAWpQj0\LZL^6Bo*VBNHCS<883W]+QQh\uCjZ)HQ&Seojb2A?skT(+44ED!UGr7_c5IKP9%07fQZXdSo2# %"+&/CGmjT!/62&m:YOTWD)UuK/1B\Q41$&>jX,hgr4cgs/.\>'As)17/W.9blJ'X8C#&h82.;3$4HX1Ue5G4q9S"YY[4F>-=(m1b`/$VJu^@*V$2?PUe$l=:RI]/.bnhr[b:tF@M6m"A. %"S;!=-K^fsA\mpjMn]C*QpfQ:>oS.hU%r0?mI0s??ZDFYYSh'0\ZN0Di@5Z8Gn-jQQ>PcYX#+!BlVHCAMIo21[1'O5L:r'G.ITsZ %m;M_6[B@R=Po?qionnd4F'/R!&7M$O8HN=hBTlRU@jgK:!\MCIhX^Mqq-r7Kc`G`jOH.SVp/lJ71[F^h;ucLGriX?3=hl7$0j8,_ %/Dr(\\GZRap6qT"F?0%;?r_m[[63E(YAGi+UM0CBE?tW,a,2q"`Dr2ER_7"-c_AMi=m(Je>/:UV%p`dm4Akh7HoAILo!CT+,i_%$ %(pZ7e4>*qolHhEW@2a?Fjk1RNs%\m#^DI^A@sRQLr'/9n>^K5)EPPUEagcP0k]91Yi5,&G/Bc%%gB5T8Jd8&'kF@5D^NbWZJ`)sS %$(f0?&#OQtBAno8,_Drg_ZnK3?q[87O%ei'1KSY(WDft2RZ".Ds.l\U0g)Pd3Ml"4F=AOQ;OOt7Vb!^\#oM>0$"H&>$MYFTPUI`T %;i2PF4^"B:e1'a/5ftcV=-NqIbYD<4@o4<8Z.`oZk;7`I!,lXr8p; %2TYjnh",?D*#m7gm$_R>jOeu4=P#YS1d18s)s4]J-#FO^l.Y5"S)BTF".G'"a!1ECNb="BP>\c7SdeS?7(MO7+MCk#N9GRGT\JbI %ZU&p'i"4n6B7o9tJEFR]Sdc&$#1ksV,hr[][;L7J8:6uHMimaMO;o57ZT_GQ)hL.7\k.-)8<5)?5'K+.jE>gqOm87X:;ZUab!aH- %:NlkVB+5DbQ-f;GGtEYto,MdB-4TQgmIDZoTOFFp>opIV&i.\[[EISl;ofgop6# %AeA.J\]PEJPssi4'Ch^-58Ro9H]kP+KN(:d#+,hYQ+s5>^47aB!kP7?NcOYn;M(u??EsFd4eW]DV\8h\r-MhI/huSo8EkP\B3f)GM:+in&hT+Ilk]@0V#tr %9\(G4&U;%W.ie&CgI,TP&$qZ0YoaB^'0SH\p[0+R:Z92KB'thqhJJ%BIt-.d#G=$Qkb#g'Wna)Fa4Ipt!WlqE'O8k'SDoQ:@Vf[_ %Rte)p4E!@d'Yu^qp#QNF!LclmmQb0?g3,CCq;\(K=Vs2"=R34i5;2IiS,0!^>007KN7PP?0rjA24i,pDrQ7#JdfP7QYSO@aO1rg_ %g8_K?kZR9Uq%X@^B=[DH\Z)K!H]3b(roD?VBH::u=!)m0%[bWACK*F1&j;''N!R.@0*PJ-`*@>:&T7,j]83INNVc6bTA^^.9g`u, %7<3&$"fJX;cH,>rJIYK-*#*RZI%/K,V*^Z074UR6_F5 %pV(+$&8_?'Wp=*4+RV^#=S9qMrAkj[AK@7mi34^al7.:n@1cJO/?goe)n*Yj%.\r]Z>`Mo-n,Aj1Zjj4:f7]geYf9HDo^EdK?!`& %=?11P+kX@2#+Sr/V&>N??-Z6f*R17Q(dq0*CRW'[T7rA=:f7_=3p)`?:f7^"[!S6-FdJ(LRR'M".-Zr;CBc*(+@Wo?)$C&kS@$/C %U`#Eb,"9,A)3cUmb!jRJoNj85XJZrKs(7g8#&PRm9:E\H"gT8H)3jPIW&ib_$qcCCW+"K0$qcCC3/)EH1[*ar_1H8q)J;tgT2!S' %U_q%Rif[o80IORJ)<0!%P%INg%"`BP/^9ra(o1j>1kUt.&(5s_dL8b"droXPUD]:1K3ZsiNb2*c%!(#smUugdMJi/FK:7`6EQt.> %`_+Yf*Zt?GWfbl5=UL&P7s;k]5t4-@?YPFOZ:%";/l"JRPV*-IAI+9g&?7=QRdler:HX^)`/N#q'd'XG+p5At!>hC"D@1FC`aQI9 %00_VuH'E"&5MkXb&D6,Gh6Zbrmr[aLl0,RUb?SU%f)Uq@JZ[]K<3V*&]"3AC`_)BkFYM0TB=Omp7(MFJQM05Of9RPmYZ0 %Q`mdU5Cl9gW:Z_?jkk[e"?mpn+#&U@p^Bnf>F*bq>$;iBDY"2j"$[$Rn"4TX*pidB?l6Bb<[@\OaaF5tU[InQF=uL(2o*9R71k+D %]-[MQ@9lCdCP.HhbI9XF5-FdKaGHD.(4oIV_dP:T*\1Rj%Be^K$TRq+;&(R]%MaoXZOK$]/dP5pN.CFlClZujX[$#9O %1t-"U)J*nE^A4W8("K\"]`p-)]--^\n:VM'MYH+bICK/,1NZ)go6!OA1,&oVUBV' %Z&M/TQ>rf<,dM0j8%u-/,p8eE"F@J7.r1#= %YEkjp0Xa'Ve6K2C0eC,NDZkBoN0Sq?pI_/]b?,(lo4!`,[Jgb6a;rp!pOmYDX(A@87,pV0=3L@QK-JgGA]Z16@_T!J7s)sU'Bmt% %:=fYNF0Z:+>+Jimo9$H0F[`cb>PYjBdrct/?9@toB%(n5',%qQ\n9E6!PR45f/;ko%a;P5[rSf]jZ$hk[Tg;qFBqip3QTf0S$":8 %MqQ8)24:UOU1fUsP4ZXVI?/=81b=>V&WE;J=A1AqMI?&joSMme:D&PWU1fa2_/&?S^J\LdpUq3cpuQQi;MSp[I`VX,CM+1Qdu`PL %<]L8ILDmUleU^@KQOE/u=^=WP^)Wk^k2%c#($@9*co./%g0pHk=G!8Omp]IX6gK%cn/gA6J97pED&TMY(,KU2*m5'T*LfOa4SNT( %[BBM)\6tC!5R!n`g5+sG>?)&`!h*#d$#k8YI?aZMp_OKSm-9<"_\c#rWjs(nh:2H#9'a,0N=-8!Su*&FR7I;4Q=7gGA&SGDMnDa3 %NWjDH(3:XIF%)jE\/"JU6$l#SlGlHY?H*.'518["m*)-,A>$*IV0',"g9] %VEBeP1RBhL]&l3k%F%<)Aa7S\-5?CeP5nr3/J[nU3jf$_FSN3oZMnG#A;a9AFW5..R6>11CHAFAP]W@k\Ee_&dcqRT&_Lq#+fsfl %$_!r%9)]5B$YJ70k+VPGKJWaon/(6*>s_p3r^,of)$D9(U50(K_I!S,\V@nqU-q+BEWL^tpabliYZSu=0:HaDZIp_(jeTB9/-UB% %%WhWZDH"Xa1TU9H'1Z%poG.jqoR#B-0*hqaIsJCjspdMmT[=iqt4%rnoGNrkU.*Wftjo.M"I;DDZE@=D(Z2HoZ:ph/D&IuCBm),^.LA:Q5H*CCmL362!2B`hCb`+CKdU^jNna3X@]p=SYtiHj(O4I,S>%*CgX=MD"X\ %d,/nYPcQQPRBncpL'a)?_G;A&!&fT3?;O2`L,q&\c[?cXZL5[=dn\`2+kAiqRPS-]_,D*qsQ2QW5);$0.>;d7JtV5K7P %d^!E&RBWf94bUdt?;]IFYg!S+9Ht-4dr6YP0@c$W.M$5%]td.c"n8@??JGiLEU]fV?MLVJ*r$Ag>Q]AQ(-(0!N\pN/5q`Bpjq)p: %4i-tjfb7U1jZVQHHR;$3>f2X.?Rk8n=%`Xn$@=rO"4_*H79cLXC_BNoOpn<;+p#Bm,J-Pmn[])A/Q.TJU]fk.Ei+7g%8q.3ZEm!B %EJ"tWq'^0Do&![f8B4oUI2$g.U`;IRO>QGbEic9X&/M!q/m_;9n>+^JT#2PKHDcsb[d'F'Ir_Wta4tPLYG=s;1Q3.I.*A[b %bS]Z>,.HM;AND]Qf^#!QkSa*bkc"-TC@nY6J1Gi,1la"'MDdcK32UB9$6tWh;hB[\MJf,$EeMViAj6ll`MBf3PVkA@lmF*JqX;XW %@U.3-P(1p[6eP8Z%VfH'_ELfJHIp;5@2ECFYXf1Khcu.h_ImWi=h#FJj=JEo&es-_7:;sWBE?<1Tq[g.F#6UdI:%LWf9)ETW"S]- %IiN7q.T\hhE#,rK7FHH_ld/N"8lM"e>X,M_?:@o_iX[je7UsEpae]SVl$uhibGtK\8^BN9`+l^pG!("4eofE!q:ItWQ6.AmfK'N^ %lTtE1`tG)_kIt)n<-I2Md/?SaJCI=\Ku_9c.2>L/$EhD9:b%b:(!MWh %Ti`U%Vc52Z.Y=7!Ro9'/oE:nD$]k>Lh=!B!ma"#pmeFV>(nNAt"ckPC>Y %)](ln\Uj34_uCLl:^QNSp)9AN5paZk6^+?i-<+:'CM5KF.UB#PAU!pA40e87Zor%!c^i__i>T]Na7KJ"RIo5E6*Te[[s9cil!/TM %blgYB2+,FV.qKnX#Ok"3AImerhsX3Mqj2KN(W/3.hs&bU^Za`ap$5Q577fhDVsGVdQnFXa8e!mca)jm>#ARJ.Li2]&gEiT;[W.dX %$-,]5ZFQ'-lK)S?QG;j[l1L"FC7C6G':P3Sg8HcW8L %)aVm>Ac,$C-Ku/_$PX&++n:WdnI^P)Z6gnt-WdXN3`H'8G4\N+EqB)clX,V1Ch`Nr?=ji`e"jtlr[Gq:&u[(2n0jeQjZSJFTZEqV %7=Wn80nd9W:=adU)[jD^q"`;l(?cpS'_634m-)VW0I)F2+]\$+O6B$if'(#!bfb%8'so>T_IcLDm<-U[_(P;"j+'HA`GWamMa6_\9VB^^gEVo\g>Zo;pQFC935$/J8=@R1fH9&ppgTY(n %,`eNnQt/=jGI:jfO)C[/;@>dbFc8#/e3]62E=Ai>BEEK+7MtF=KbR770\k'1 %`RgEO3tYKh`a(*R`A7Lb2Cnt!6)bI>E>o[8%I@oLEnlBq:B5BR`>retn6'om@QA>D_IlJ/=[Odd&GfbTZA)PQ+[s!E^/WI;EX-uk %TGOX("n6XGI[U4\,E(<382(eUq7p%dkf_.7DD2sars+Go_.'tOp"-t+#Q>'Yi5@(+gL\DK>cNb`uu(Th.GG[-Z^Wq.k7o7VX2JSM7E?#4\Aq4)K@(fh*EH/+aHfRlbG_EI,jSWdV7]B)CaN?],4"DS`$[pj:CEE[eA?7Ho,]7j7=f_l`=V %fW^'K=/,r9f6"BBc=G:LfpkF/R0AYgCs;(a-c*a8&UBdoT1.Mr_up9.<(N'*qqRTf^[iS*LNm9*aKK-Gk]c"L9WAG<%e'ceht8br %qm[p\c7LbWiaE\.=CO9-?[ps>E!m#^%a-t6Pt1T$kZKCm&t,4aXdJ==hb22UrO-r.CR&nA=,B%MIecX-(:a.E*5KS %as?>)oaWg%g@Va^`E>-ndp:`+_JJo+N*lmZ?!;\):'+'#P+8hJ9I)rC']U3$j:.#r'Ys_BnCFVtKA'&F! %8ZODmod9%HDQ,05N@"9q1fRVL%hF2C5B[[j"_UFgEF"UA]'d>iHkI[Em4XoJ?!LK5TZHsa;R7Fq'n-",9?LN@/U>C;R4T-nf<>:\ %Xm2/-W!V#`m[-B=63Gf?Z]#6/-Vj%:2-D`s?2VId@CM'\Wh[caG%%3S.0-'rAr#k>@5iA316ll\W1#".^oPofZ)A!397@[fg?d\b %n89U`c$1Kd\Ub%@TA %3::fX1-E[kmhYGTAEe@?^PeFr*N[Rk.]b5R>LouA0apD[cnd("6f47bPCF)pon4;Ob2N`0[Xq?e!+GP.,QiI4F`nP4aD=3d*nRV<@L=%@@;fG\)=XIqU5A&Ck%M.%F`*2_,(+]IM*qG!!XgiR9bL1G=1W%tW+N-dZ#%?SZGfKmlQhp_ghQF+R]q^< %UsX"ABTQS8JOZt;U,h_SYs>$lh1^+mbpJ:UeR*#aUUcX;Y,'H]P%\mLV$S'b*/R]V(;G'H8Mh&to=IRNSA]/toWglZJZFM/)U0Uc %VF#[BBJc2()X#IbRRXVTU>_:do/)n1&e."GYdBf&2]el,#Dq^OiT>L9[Y %d5iD6pK.`P9PW7+N^6m6Ia0^9OW:.Rqa'gdrqsqjDJkXDRaOCK"hN=!TMl]"UL&/B]7Q>TSPM*D(h;8JpEI+`\6 %SM"C]F=SjRR:Aa)F-8nOBe:-<1CqlM`sutc$ssMVT8b@9nRlYNJHg#rcJBD7!sf!82pqRF>PT[U]9-Tm*[&K#R?7/Xf`T/*Itkss %L^+4[OJ6H;X2U].m^/[e!1BMDG0ksjgh9ZO1n4;V1fGb,BV2DR;2KeTeB+s^p\Ro7a6KGn&3b@i56l-#\JO2=fA6UH^e+``c+#]p %>"Qb^(sGlMEQ7Ir%QfOb48*_;:!)V7U,X]r'lH/a4HJ_IY4M1;ld-FYd*^]4?LVS-ggfA-W)[/*Zg&am\Iu,=r2L\/KEoA\YtO?: %;Y]+nAbr6.GnuX^q"a&X$O0ok,WI6Dc*![2n"0hn/iP!:s4f:$.g%GNVFOQa@a#\J@@nQm/`.Jb+ %c^44GrKJ&2GEY'dj.-Bjqg$b5iFgZ'Z/a67^u %#K;;tqu.shk'uFD>;>eOX?Ms,r3;@Yp,n&QV#;fk3F&?@aKntCI9H?!pGtt`7T'2Jn>-Y_GF_1&>mmksnJU@Bj^(4<2aNok'H:Fb %MlO/lHI:u++oN5VK&JKjSHrKhL"@fc7_Db %C6Mcm*>gD!Y]uOLWk5.SiqLW9X %n_m"2.)*5c4j$Pt\ROiAEdH=hT@SmXVa]k0U=YYgE]i"D=m2b\I%Q6*,A1(r0c7P7.).CWB;_A5hWEtd#H`%Fo*!ju9')bs)AFt& %c!"B"%+G&ZKA].;oFr^F030+]^qngb_%p>iV9n]5Rr[]XXXCe1LFcsh9DV*;\\U#11e4mA^TB7e#l;?O"H1d'[`cs8j@=!4-<]]k %\#Z?EqXId[M]aV^h:)M??A"t,9?VbXn`tEsSUN5!Ac!0jq8EYd7(Q0^(GocgX'2sW*:iCr[NR5NeF4T%-Z`Xsl9tI]e%o^&&AZ&9 %;+8+Ba*.gf-pL$kCAEKd;PCK=QDUdluA/8Y&#= %2j0X$-Y99`C#Ni)X`B1Fgm=MuC%:N"(D%20?Qn7-VpMq%hIErgf-^u1-'"Q3MsCr)/(`h1iog5J`g%C(R;K^H$-I/S4IZ#0HL(I@ %I"bEMTC:ml3:U$q?%9M#%e<']Cq94;/eX+5-"mh()cddPEA'l^01p5qL8qsckN8LPI.GDf1@/de3.8+.P?0+(ii*uHqC^-!@SiWi %2tL&3]kLPe>\P;&WYP7#kQd.tWaNBp$lsb\HCKPR>'Y+Qk+D)=@[R2Pis)W@rSf')T%MJ)go8S[Q67c/g;dtS'G5i:e5p/app87_ %M!\*^;k$L&"\>$WnLr8.%Xn*qchX`l0>ZH=$_Jp0J=Sa<,8_Lcr3YsReMt7WNXDRJMT%6f22Ti'KmE2En+f:GEdU+BE]WreqM2m' %=CKS$_?CiEe%Ln-&`MpB&f^]?^`@cS2NV!"(\lNIPJ$FAmql>)=Zq0_Za>+EGW9dYY-\7g5Q'6iN@`ChJkXI]iGdjZ7fG8pJ1PgO4c_4,AI$]qW`9&A %*-@e_el@9eW[!Dp%f7FY/(B46,4]Ea]Q@m!sqV4m3b[.BnWX_[_Q\ELA %:eAp7_F<-I.fujb4@f='-D]sRqhGo1W90/no@Ym6T7*qKarukd\FK]fX$jR]&"tWm@I_>chMo[n&=X7A?LJ&<9miFDLaC5_op_;]Q!Bh3DpTGK**)^!Rqd4H %^Dt5)jlIPp-eT9H:WlE`[JtDV*>W,YR@DK7Y5Wl5\go\uSiN$H5;4f'>'1^`!Z^3#;)bb[>)_YT`7k3h"O+PYCsm`qUb@r1]@'L^B+JeP/,h?"4/VM4 %;trD)$8if24]8VafQC>_dJQhBUjCWg^"WG@f,&mjOrp1JAu5=nZ&]+pML1kaE$*Ebn`>f215d3b:AjgS_hl9Vg<\T8=Q[b]nZ+u@ %Greh$+S"L:j7d\NnKN;!,W+4bU-4G_n\-1+bsLgsd5qR3p_lq&.!:]WiSFo\[e'o->,+]#FHKD5BY%ENXPcYDY1V1mTi%WC@nM0^J^;"?4`:mIhf`4^ZQGb(6e:,;6;VALI?3dd*Hbbs*&Yrbs2*p2\"!>..D$/Mnj;iQ93;uB?_FM'(^V4U\UZ8 %@MT$F+7K.Y1_@&9T.Ot6-[n^..JAb<$WJ0S^3]QC`V*mYG=)!l0q$WsO9_SK_(T;1^0\@)R6^$`_kr)Os>b[dhggjMSmFH^Q\^dF,A')eiOMYX_U#%OTNGX`M`r&L(Jf:4[]$t_J,#ZTjR:rr`_U//c>["7k4]^R(:%kl4)!C< %oci.N9/dm%N+8o,s'G%F(41RMBs#*Wr`D[RdWbhWg'2S88"S*#IFSul)id&[m`hFQ*'%\XJt)Bm.N@4_i6C)57&ZV'r-<;F#qh69 %`pNi:;A+V?h9',W$&hM25M`B)uh>.0+Q(?;[3(UVr':Zt=;Q`sod %.o>k,ZkbXrh+0dM_1pQEnT+f'RUsT*.3YcNhVX\>%p@uYg4r&F*]jeV^bN(M.`ibd23@_ %n)"l#mnclqL$GSR$%cc%7HM[RA7j7!B"fdG\&_T6%Xde@39[X"'m]YS?4s=D*5*c\1JbAAV %?Qf]/RIa]H_T8bHrRXG+?mKkrX+^b$,1Ei/I-&)G9uLTk4,\L!j3A6jHE0OH6'pBZV]K/>6Y;i8hB>Q@V)b %j5F@f^'.K+&\ZuQ,:6)S.rTT(iKXYC8G %g;H:CW%LX(A%l&t$[f$<"XdZbC;leV<\!=BqWf4NrZY]6J;9VGK0AEM%Osh@o?q-c%=p&&bW*8m^jT7fAlV+1JH%=#$mb.QXm#<( %\)pM?hNsMJ;1KBDAE=lhk`3bi]^N!9OD9i*e@@/`,:jca"qI(Vhod9^@/b$8B7bA0:bu@uMCmeSHaM&-F)DAab0K_kli$_5M7OD= %?`od>C?-\m/B*KZpMh2F19TJam"rq&d4AX>m,Pu0!,cl. %q"\dp:=UT)8LMh'rB?Z'o7G=j+R'-)_dMU;K8cSHeB:WBf"Z#XfNEFL`P1!)@Go66dK?0]#%`_QY(>LVT3?hBK)iO"E?7M1f)JQ? %^=+#,eM+d"ApPRD$sK)(j_3suc,*CW@-73m"VV7WaO"cU9pQPAN*bm&9pQPABW&,C1g+"L:i0pN1qb\"H5SnVrCnqtQDRUjSqsi+ %N%gh6*"mHZ,E1df%MU'?,E2X2`eD?i0V/f>E^lRP5o!T,4^ZXZ5cBD<7n8ab#h:W]>@D[bK^-lkIrSm>PRGqP<3WVm.Jihj.g0qZ %9eu;;Fd.H=NX;m5^K@Z#MbnNn[4=jUh=$eGr5?hLR:oLR:U$aFr,`MPB[9eTe\d^IJ,s-C\?r$rp3SUm\esXmG#]o/h-`:2!gY1_l<'_0V/dt9%Z!G%T$`jYG4%A %D*j7p$9.pXWh:+_$`!M)eegq>L=+eXg]=2k_h)1c78R#HK@,;'>m[<8c`'7b9-mX:ojja`3fD.W5g8A9L1'mOGT]u'+N.]OgO6L/ %$qK>kFe01.ceuit#u/L %kNq3#4M+u=AoS]eU6dO,8[Is-couQ/nA>'1WnNq2M\]N^WS+tQ\&pR2RG-Jd@D:Ci6Yh$)AZ8l+Z^#+$Nb1Zd9J_\Og%hVkc=5=W %nWlGfQ4CHBD@&Fp?uX1]@S=LmcdX$tfb,thC2h8=/Ed0m(XF1,?J$B"5/8Z'q9IUW`Vp.II4WR>=kk+ug8`(jdqX@99nKLPM7#K`4D4dr! %4^$kT'?P'M_5YAC,"K8m:h;M_-)9&?9/(U[Q2fW.k>J=7QHe)@#ViR2cKkl,m-;0$tLujJ&c&Vp8$qV7,np%8(s`BMd5[NKFCl %o2_uq)H6iMcWdfcC'^pri1hOEp0k/GqIr_1NQZ5[eZtqc40-$>/TD4r.?Qc3eO"A&>i_94pl5c4L=*'a+3n_p[q['I8q#P'`meRs %rY%`,1(Z(V9"pWBa'1FbqT,B:XdVi]NfgE2d&R`:UCDo4/<%d(Bf4W0h(`;1P\$a7jD-)Ue9C53:HGfAShYFapnV->gB#qCmId6i %4P*a9OXJ0F]hbP>9mWaIFje$sIJ]VSMR.[4/`=Nq0[KS4X::1)]DWdScNan9O3n2HNI.SeNYGXob>=1fpiXuUab?"0qMXM&Gp.l" %IrBrkNSY4WAdUNu#fi6U"aH29-$\nk&uW2aIY_N@VaQVJ:dc#h9$*,H>'1\Si%m[OOmd@aSl?BMs44La4&`rC"JBH!6At*3+,%M- %kit3Z8tWSZ#cs=B#44JA1.e0nWq>7FHAN"]f2:k7Nd(co((A*]%Rh&dG]eKRbj:.&]Z-kErW&7o7,&Fe\*b@uIZ.^m*LTn4pPP,c>e6sGHBN+\P?(^) %_=>=7]F21#;&1S@%QjJja1qoLPk>gogo?"XA0P;&`iBS<>?=[(?ZddNZ1QG^We5([4'a"',8"^BTJ=DB_DTnhebL"ri,,YY0`%r< %qfpZ-op@(O+,SCg5`PFio*LA\Qr&'2;.2#^"X`U5Y0*j9/I1$;(RBBt/a"@9h,*Z3Z*HOHWh0K8pQMqQDW6u"P>"YJXh-]'/r;:W %g(mXTJ1.CJ#dDdIf-6PEpc.^V!GeObb"ZroBh7$YoVERpU)iU2V@PZnnWc0G3H7llh0h8A[et<$XaF+&W!nKXd>Kp+k^/o_rr`Lf %c*L*Uh1F3QS#n,q%adb-.PluN\:k9a[s4tknA:Ls4%,qF;%Sjj&4K[P@8mf?&k,Xk->h3'U_H3PdhX8fIB$#nPAmYV.,5Oj=3h,g %l)Q)39Kq2m^Ob)/sqDk1PZAd)G,[1'9)Q*5c!o %5D_l0._iV`aR\R^MVc.'@aW60PDD'i=&Er8%!/!S;BkeYi\C<,Rr&\$n%5EF4l7I:(8'K(l+D&I=7_L!f>V&VS.k;hMk@uG?hVeV %rYn_VmV2"[:1pqUm'!uJb)c(_)b^?6l'"G0iq@"r%o_MUYh^.GddYqm:O9pe\4T?mZgsa\G^R6sP:h6oT2[`FgrC7kcAQh58#c@X %fY8s/HE4,<;Ht^Lb5"T&-oUMTI^"$F#>Rd08!Y91B/N>3*S1d"EIThcgAc[;U)rY#-mbVSa5/P^eZSt"g'P;W>,W%O8V4AIf[uuZa&)L.rjTJ+8%k2$l-VQuYt7[;M*2c)X:\9b0?(RJ\iIf9Y4+51G??OO6L?1-[D_DB43HiuZHb:fciT\q-E>f-@u %_%3ID0RrsP4En*?PW*n]Kc#83&GDdqVXCkKPk`_4V72+&MRbZGd!\iBHaRG'kWXuE\`]!RSO8J,V0HDST!&NTI2Y9D/@Aqu;7KpA %/o!2NG_2hkZrW(Y:gJ/A4o2VMpbbSQc;Qt9T6@09r2NJffPbZqK7L1X4C"aT253YU),t(q7!`6h8/:[(4V46+,.Zmoq_2(Bt^A#^@#2lqb+Bg %G@gEDn=ALpeFm*UN_I)3Oft"_WQi6:51t6TfG2d2S(`4Z!hE&23o6YqToHnuk2h!!AAM8u_7?1cG;d;Pj&1`n`;V$DdM9n18Y52E3YNP;6EC12OYOmQU'2\bM= %K'^];3463h:_e_9DiMpU+9eIA\u>J3(gL*SSM$:s!5QIW4^[HW%V;b0tGkJ^Dt*G2@'G[3(H'KfUq1F4_er@Z&&X!k"DkP'(5 %b7!&\IPUe'jR1^U*s3"Lp4.YOi`s7TKZFs:69#I(>73`tk^USGcTSoE$YR\e&&j)QRk&#Qf=fW&aep685q4EZq'ZoYfYs3GPP)K\ %Ys,^d^[b.%Oo<&Eakb3'g2k7toW0f6+iefb"0]k]a'2.5H@2n<.?ACG3E(48@^egDGLspZn_F6;YZD/&kY?SAFJ4NT$nW/*=#f2T %Z'HSMTc,isZ,L4lLFi=hQV*1LWWZqEP7>2q;n-oZ^L9U2&T.c %E.eP9J7gSp'^s.7c1"@SgDEh`"ObZNh.8u(Y+:rPEb:]SugEK?[^lqOu'8SjO+I'^+g?$@S6!7riJj/4t42D %UqNdM9JeB7-h##\XV0tbi:+e*mn:MGV(H,kY%*]%NY9#n+PO/5P\Qmg@?B=mW-3LXb`%*Rtqn.-'KeXMZW:j29u9U,CpZ %+Z+CU4=-UXRf="p)#6^#*/RS^hq_%I4tTO-Kb_VHHs4Td7lMOFJb8PJ8O^9iq@A>V`r_c>%3Gu"L$%>c\A;W4iTj:)2e*Ui"&PiO %JQ&#Y.%+1Z>,@/K6B;Ge,n?YC110#r<:e=gN>8L23)A[H;*if8Gje;)mV"G/"a8J1aloP3(Z&Z9htKdBShA9Bb6k>L3Z)s'91/GE %4m"hQ3lXQSjCS8C@29Z3RINg`NAKd_KWM35e]I+r:8^Xrrd&JP/`Kk4l1FJZ2daD)N8V)2'X*(>)*HX?@Mp*T'h1uVT_V>UkY7/A %1M)SaM?E><5o/,<1jW6VO_PT"l6J2$C.iWQWEZ'q=$JFHoV=*9EIN<;DCu[r":i6>CXe#dns#B/b'S?NI+,i/BFHp.k/Lg?qYW?# %QtHpgp]h(fS?qG&N";Vjhd0,5#N.f5HijTgW@FKrN%FO`B`A\g[' %E3pfKk7:[GP5q&Q3k$0q]c#>aGZ,,IZY10tY/OUe;gNqp#0P,lD^qgnC8!p-3pV\tL`&Y.%jiFIV=RA*hFU4Aj&(B"=.+5e %du\gig%_K;JYY8CiBI"(uQo.2DP_;:>0SC]O_o[Zr/_t9@Sq1b^U'0WlB%m %.2N<-`TZ+ti-5BU?jBjU(.sr:.S=#:b0$iK+jsT=O%,rt=tPY>?Ul,S;*:G(-[\9ID=a@?giR;M7)/Y+@Q*\a`N*.B*99JDZ9Bge %-tL65.3uDc#o`o;K8R]S)KDj6Oc=W"`oXX,94Y%h_(1G5[^iEH@3(79R\fcKl'\W_dnO4Mr1K;B16n3CpE,T_#s73@(^@hd82Eh2 %0"DBrS@$=:g#6E,aqJ$500I(/]r!/6?&lbh]nLpNcCk+'T^k1$roYpk4Q0gal9S8.g(Rq2?23/q:H7@GLG,jhpBD<@Q[nRn[gIMl %ih8TsE$UpqA)D(gH7ajHip[I5"-57<7V-(Z+P)[AZ9N^&cRpO<\^mWue9fIboNlf/=QOA)47=c'Ob;1SMqK0gOprgY^cf#eF,Op9 %58<-Nb^PiYpD;i0^`NX5[)A"Ka+jIoQ.s"eE6Ms!@A9\a4QLbCV %B*_Vll8!e\L\X6='\Vq+a.P;hE-[DI^nIBp!Fn"W!f.tAr>EA-in4/k1ctYJ^m97:=',C!NGO50S\0#eZ0K6_2FA.P]GmK1I"5k$R*]7&jQh04eI$q^-j-&.4U"hKeA9bp#R]-rd-jDbm$;,/d,eYAd>l7;1Z+hH(s&,;E`=JN.4F,638lU3Oo?A0_Ar][h!_(!T %eGR(F9,[T:W+YfYmUBhq4WpfB&,ZC5pR^]M"%fuk'lX[&gXonD:_&"M0ZaO^S-.&N4$Mi?J%f^uW`lAJ,b`/bkI`VBbT=AJ>,&XZ %Q!V;\LbE"Is;3/fX^h+ %@eVb(HG@1'Q.S!B3?;VnCpe!3P\*G<4).=W>lf_lD%0A(l=^\Y""QNU5B%[60t4!]#&M\plu%8UdZlX':)4D,0!B[FJ\Y$BttCL]18\3Ykk %W+>GS+Q[;e=sZfM>=.[qAZqf>V8".5+C,Y3XnSYd*Ri4SDeaS7`_k:Xj`0=[g!re$qJ4>np2q!.KN3bDSDVi*r[nVJ/%L<":8Y?A %kg&KfQ`4mfVa&m.%:14WX^qdZN,-hLhK(<9#7(.KcIC%<M-M+ %Dl0jQMp&R;C3K&8^"E11:g7u/'`@@b4+"QPs'=tl?XBFCs0@%%]DA$rV>Y3)l^(_BIegKR]&f]6n6j#7CRP>043[+lXo.qT^g%nT %SNuIMLD7X6QG!/iT;(K;&;0$l@\b"tCO$3(?uFZ@IkB]No8Wn-31]ZlFdbMuT^iRF75l^BPK:Y!"qqpnYXD`6,aC<:mn`%j&p]^iYsA;m6RLDH(IEqV@+3%au_aFb7f?B_bE8oZ5E55V<\;<0nr)OP\YS.E`0rbPFhK;&qhmqo2Fl'k%LO7@8=5D]=(pj %5UK>k4gb?LRntf)oX5F@@7P?;_Zcff[JaYFA5FcD]+kgr3jn?BtV4SX'@o32s^+[dStBV&`O(MopTfM4YbM["0?L'Mnkp %noVmVH+'mXC=uaf1:]Tp5Bqdho9I@R.`*.GFmZY^,Ze0ej0aG.YHsXr0UhA4tLS'1Uf1/ %*4)rU>[[lC\r);FK&(^]cE(9A276X?IpVKlGFI%ucQ:p=94^54KZ/.]N6Cig,Jm![i,kCgDb#-\71L:K+q]? %CO7kj'BJEZI,,l<=]J2tQ$(tT#'XXmo9DCaB\2Ze-e\cC\glWi4C=6rBsJnULOQ6Vn]'+-44BNhji20rUXa%T2T"^t/`PrW]o2*j %P25G=K>NORrH=fd!qFi:5>\CnodJ72Q4oJQA&[2$Wmm?^Ipbcg+&dUJ]%cMO]-5Df..44?ZBur\N:h4e1BH1o6]6CdY^( %kP3=i3]C8-79B=K4l+uj8nW%/f6$H@@j710k??X%FS<:*^l'ho\VI(Yr$S*Z"_T9;KV[OFD(Li`$=XelLp)4'gptnr=]9%cF*M+G %LTVnY:]7B3`n]YJPD884n(N-UUI$89O"T.E$AYEnmrsoSAeq^Y)[q):%+.ok2kP9]UB3EQJ)_%mC^O/\n&I]BcAlJIr^ac7^3kB0#l#j`R$lu\qLG++%JoH-:Se7k/b7OtmQft@-^$Du[6c,W,=E!_F.^XgQO %hNZ#*DH&e848#rF'G`pIOBuQ!mXKU8/mL97F5*pAB!78_Mh;n-4l,@.c>!*j#0\>d5/&].-K(llNJ:WDYE<`elVOhUfQLet3e86< %:;_-Ua&L)pa5I9'2L-I!*NSPXR?H.JF2R"+g7![P@p4':#&T_n-=1Y9't`09*GVD,F8G^Q)+]Y\tV]6ng[_+:cS>:)L! %Cbr0R[?]?2'"=N"G]QP.=%E(5itqgg]=/!AK2(I2Qat*Z]BlnEeABa:ZL94IH*IgVXE65WRh@*?_PG2__Yd#.=f&a^mZG5'IgN"Q %=!t/MeC(jS<[t&G^E12>f3mLum)bG,C8_U6qL+9lN?<'5*V'$*AH[^k`4cB6[c54s_Tj5TJ2S*oK"21t"g7QdhO)+/T:SbgFPr#h %,h2*5&*8-77n5rP!1)'g"[\_3l8g^0>Mki)\AH[LG%C?]oJ32jM,0s'QeSOC&?(8%YeratQ<3MeK[bJ$OkOok(P%*0q3+WX'6S?j %['RaK^GV6HT/[)[G//aWL]*P,SAb`h`qe?-=:,\oGnk\``n1jcpJE/)B`7RRQ/k!X"YM[Ee+DY*A#s\UnfG(!N'ClgLfSB8UP\`apGlJ7jWuN8"g_@SaL^XG(->SK#f%=ZW+pactK;L?j+rHmY %O,\lVfZ;]Ys0KdJf^Bb-[.:50]M6XmIBh1C.#)O@I^++Z'2e"DdQfY#m1GUZl7C2i5/2Sk^/l5^-@<>Rm.IdtQgTnH %^gD)2;>6kU!eKk.rE?e#0&HXcX5)4TEds+n)JTlB+Y\0XH1(O@UGaH$1[a_\H88,hMTsK&bD)-6G(,!f>VY*4d3GOaJ*Tae6X4K? %%WE:"(-+VlXKcc\,0)pIZ,!*B_lY\Z-tl`D>q%(/^`U5dj+'Q.:dhiDSb?.gD*/@%l\75;;lJY+Es$[Qu# %Yi&".d)M(JaT11qo?QdL&V2jmcL,8;ctXd`fH+;Vb.eaERT-*YZP;)C>GI]kfQh,:u7"[p>W'=S',k% %,#:'?'%6l)N\C_`OL.B)N0T7VsS&m %"_:r>)T`%9R/O;[<0k^Z9]ER,.UVg/#!`CV2(VP2)bP^8\0B"O`oF&,\F],5(%h6f]*':^4((/bdApiRr0Bt`5\Kp0beV0_*UO!9Wfo# %kb2jY*@t!o1&5WqQlN\dDY?i;\],;0n<`JMf#(qaS(lsdluuk#he`Fr/]c5X$QX/A3U^B$%`?=+VBSDJL5IoX=)1m@bn2Gb0RUMV %;$ICGE>UmrOGoPYifM(jcFiPg;o+,#9D&US/7hAF#P':&&i"',*89X0a?jts?RTilF %W)_ulVtNNbEcZN1Y\1_6PQF\Hg\I`re&LWdAeTs(d#>OB/%&9U\DOr9>ZK$R*b5r$#`=T31-O\d..8@9TL_I2&bKHg5nP^3?kL'% %9fu'/RU*L1\DLE"(XAM=GrKd]i6K[Gk4"Cm+<^e3G]GYG#nhFXZQ^%h&gBT(aomhL+k^C^e4*#k33Y62qk*qG=)ga0^kOtAt#pON+>5?XT@Ui`HUrdG?fql_Y%dV,m6/1boCRYmf\CGW/ %-8^gf/1uBUSs3)9BlIt`F%I?XALFfh+dm-b`:JD(MlX;p'fM]O07X^CchbXc-70Lb=T]^cOcdU,XnD7M;.4IdePl_tk]n,uG/Ou5 %74fXd4,)\k6V1c.PMSC)/!=.N2\1-'m?Y&'A$J.H"(oVY0F`Mr.kp5"mT:;4BtH;Q^eM`=dC/SF3Xf=d$0bH#3OP %$Ob$hS]uF.KQI5hm<@4\429nd0Pja42N&*:1EtONFpeOCNEZcJAYj&j5=M5$$B$pfL)NI'*6/I7TX %jFP8hrQh60'L?[V/L$%+-R>I$[/Bl42k;VrgF1pg(*8pto9-$_`dq_mVT-c`Wb,K2n4FY2ekJsIr.kFL7,]g#h$ee`%.M;BFYha` %&uccc<&_^%!+1Y82fX\ak6>rN5odHdGUr$IHCou&KtdeOU7a2h9IHM`!Ks9'VFi!Ib?aSVOj"(RQn]?e %G"==)[0D;NAB)U]#iEP#p:GSW2_K)n!XhnoUnd6"A$I.#i4fYX78V1se]J`ehNfHk)'n(%W+BX?\<^=<*k4K@9baWAgjop2C;-t8 %#&Gh&7.`+k-J2/CA)n"KCoNQN$totZ6U2s/@2!)\*TmJVLG^ahfHCb.aZ(Xk;(p_ %?kL3GCYHAF:"dDQa8E=s^d%+0Jf%jOG6Q0D/0W4.EP"64,Y4n!Xb>ueXZnCTgkBP7e[46&FqD6LpdT8;k1$d$T%@?7b2DKG*.,/m %Qa*99$UqNqS_[E)*;<^Ma$]2p4[]PT_;WB3mKArMU8\g/QtInLNT]?G\l/==S=-!\e//Ek.l8h+)m %E?42TNZhZS!OtfMd4&jNrZ3Flck.h-H[SJ@$T`kCrH(P>KF9hm"\EikUgu&>74h2e_i_5?D!U/]*Ah$JJYii?R?Fs[b*6@j$T`kC %2>lHYd.lRO%]#E5":Q*J7hdnhZI23u)d^QSC38"sZ%s@17GPio2oK1Jroa1kRAcc@P[;<[,5MV'I8[>s:J`*)O&(eW6j6j8Td%+# %6tq+`<+1q1cEc7Bnc6YnqhY_IF7]opLt8k^\*VL+PP6trGAIGqlpW4YPFmMTKP-\*79SKKppGQoe%?o."6<-F=^OD],GMrk12o>Eceo)aj^g&-]md&G)XA*uimWLZ,u=): %s/UR>h^dqBoD*UUe?df61KF]2nrccSLPX`s8m)X2I(=G[TbA',#Y$PB$>N2KS-& %g@WN2ZKrO4JWuqY-'#,UjgZ2`!$spSLTD^csq.BT4b:MP`f\)[$#P.dB)Q"8$=uO+3tGm"=gkE %3XATZliL,l6RL3Z&Je@+0>,/oBBE]Re'`]$c'./o8J4Yarq#;N`QY%JhVVT_$?G!2W1#6_?npaH/FQSYMo%j=E]=QT575`"BQHNr %J.:W[YZp[H=S>HkBOAq_=CWqs[tY.A13i;r.P,u2#;.2j9PrpXSN-7012]7dogb7^*BgtWRA'\"l0Rdi>ip6fiUbY6"V#na/H1#NE]o-!uI%I'[aAtftj_J,&ESHd1T;O*0TAjs+=[#VY54);m %+^%!)2@**\'9hPLA:r6d,ppgu.0PdU,Ugk!.E\Q"E$lpS2hHNN8=%S#PY]Up:I^Yr;j7gG2\0%Tk'"5@(eU+?;j:)LPS0/@o@/<+ %mkV%:.n]u];?DoRF+>dCU+^%!) %%1&GL6X3bX:Jj;-KA4.Q<<9b_rY!g4^ISssnR,\C60gp=S*+2`10o'"X-PkZq2C3K?Y,!@+8B?famqG\q69!?G>[&C1qJm4jYM7* %lORJr_TD@K42q)$TtrV$O%Tsc5#5$>'%`J__"aF*PV4m8JT6Gn+6N#>-HkS_\"thdb49hp);QBm--J7=[W@8!%k"=#GD@Yrk87i5 %94s<,VqC^#'rI.r-KR_JTLBog8tU6s[e#PMV9]L\,Nm1?.XbA1W_'b;/6p><6LRc/GsU!dSNqh-2^ %^uoo?l+;WQP@3$K.c^2p8VZ'c4%s%I^8]OY078?cS]Bosdc^P*@IP02Q=H1S-hpAr;G0oacNTpa1GUSJ50'Yq3+^PF5'(a9M5Q7C %k7lV7Z-&rU."RFF2Vm<1`[dN"_2!l)cck1REQP'kW2-!X"B"F$b&'c`R3o08O];2Ni-"E?-):ebY)nl\)6%ScU,E%5c7+ZAc:'DJ %LDEA4.AR#!XKefbQGo$&'j\38kZB,WJ_@l(b^m%Q;tLX5kV]).>H%u5GZT_G\p/%8riHY'qQ;P(iGc&)I$g/A7Y!9HiBZ%1pF9#P %HZXmZ)DAN/Y=a9Na-Lef!:nS\4+4ndr,S;G;6Z*M"*("W*:bbF5[5]CVqIC_Y&U8?7&6RZOAW7%imL[)a='0+EMK9EQZ&.,\Mk(l %YG>h%PM22o0?Zl!X3We+/d9)eK^B$u;A3E,KW[$'CS^`rY1>+=X\(h#&+m(.Yh %3;^>j!91rB40HKM*`Vi;Ge@3t?-UueB`Q5eXeHMseqS-=#2_GUBR/:Z=79puIK!JFf1N197U7V?k.0'EeBqpR&DK#3p`-7kYV=Sr %Z50%+(0VtoCfuYsq7;ISY]el/]KTJuPujP8Lu8XaR!k3'&er3uX8rh\%!NkRK1dp^rS:]f/qa6R&*s[dr,\";Y`YQg5o^q@7nG%$ %g!mCp&rnAn&K?&C,Gf[tS'Ona)Y:N1e[Xp_p1kCl".d%3[D%*5g=(Y.Q^=c=`4=:JiQY-.6A-9%&NR]k\_Q4e\O_B!'YG@6VZB0H %=BJ#$)f[&/[HKn@[D0WN2c$irTNZi@;I3nA^M%9?@Fb?jXZn(+rD=3;p+7=jjC>.o$[\.MlGo82k@?+*J\Rggs?mW4dX^TJuVA/or=Q73G#LMQ8Goc*]S=\![2h7rk8N"-4[*DK;g#7Gj_iM0o4f9i$q-n&P5@B:P54[J?Jj0/%/ %im[c@q1Lq@1!9lqmJ4):LrEu&#(S@K#T`#[O([4dLT=oeBY.D2?od1e\,K49@s!e"Cu,0((1]\<)X:m>U[Q=3eIS80XK@%=CE$I@@.'MiXc=S"D;TQgiX!,+gbX/!4_W:eTgr]VM.<7'[0T %V7J015\Ca;b\^_FP(7/2:2&dgO6io,G]C;!hKYoTaK[Rt39U^oo_o-U$eqEa2"MGa<,l7<)gsW:4l]B/G/a/iqFJ5R&p>Y7AJAkQ %:r;YA,Y!r?pRUmeooU9lWpd+Eqn`-MF%=nUHG7]!;jl8A[fU6SPBd)S"h0(T%(\qi5,kk&HAt^MH,:r'E#=i=\i>?:DRhJ<=r]n6 %@tE_rI)Rgno^q/Omj=&\WrKTOA'C=VM`Wb9MBn5@Q]pXb=ZH2Pl1P7Ga+u.(U":3=?F\.V/*./2r3JA2iDU#%$p7Mq+ce?Y]l?sl %,DnJ#jZ28t;">G8`A(WX/V>I4LVck)%@+"MURPm*50VZR/?ME7,nX]K&jog"$A%7m0Q"OT.M"C0/eIrQKa"P$1f)(B!nOB(&(]qX %K9%68D":0R*cT9QA.Om=r0M2!:=i>rCGUEG;BDn8XCAhG!Pd/)rn:k.-2&SuOOCEdT2rTcG-HRBUtruRa[[9kC^4a:R0R$e@<]sX8U9HbU]G"T12kT4F5gEdHtkc.]fELM>1=T#?6o*D@-* %fJnHq*I25M]EH>-$b3[J]"o9EX=nIf.XsEf<&2TsT-#c#lmSE/4!_SHBp@LF%cJ0%;:P5SY?]RL%-K6\51A3\Ma:2+A#mP:HpoR! %fPi>#=`-48@`-nlFtGWmUY)eLNEb$#$^8(:U"D'@I<.&#S7&U1YkqbgL(c*r$u_tFDO?pkgD0OCpbcQF92)#20Nr"B(4WDX>Rkao %>m:FQXC;Qg%$_6?@^]6J/!l0Zm$Gn.59FP-/i` %_c@#`2@EU6^m8iGZ-NIABX\S!E.5c\78]*jgtYn;.@#01iN.1M'VLf+=8[n$iJ4B@TY!4or&a?^Cj>m>?e-_m;(pbn)dd[%ZtJ(, %oCRY-(Js"&QeD;i*E#B$Jl=qj9YUdiS4J\@B24NX/E'?6M!THX)TV#;N5sSCg(HjpL+?*ea^SseS-]oYp11F+R03m3&$oBYqds)? %@KhWPj[Ab+5@]FrW=3(*GkI`%Slb(#P%Lt(.nkplEk$=K@'NV44BBl](=BWb+Gn9+#Z*bOMd;h)4U?"8>u"0[0D:6OEWWY*IE3T! %*%!EbZ?>;6R2BuX_eR5I(Z)sm5=s?O[OMr[$"rt&5EX[jeF4g._>&)%>WHKH6bjFMX=?oY,d2.GgV7 %0$atjXZ3A.&gXTt&,DsRM>-!lar.%R7'9R>@j_gEP%2Is76DG,:A_o7hA,VY_(&cFXEV&s1Va(3/,^-+-9Mr`afL;s.m]+/+l?""r6U3f"TqnIsl-Ts^@.r(B9GK8-b6li\GaBG.nU+s<;MSV? %(5DMAK-M87!kWeI?8>%U.iS1Oj<]FhaLS-)kKHn2AJ^B'rHtK?S])t\[pc,G`j<%VM(HbWi$)1@X0UQMcei?N0bujT*TJdP]d$>\ %X4hGEe_]i_iaRV;:$nVah'/NmQ;3d=S#qaXP'95kW,sB]0$t<#oHf%"mc\a>.ggSNTkR'Q3]\3JcM@V45loX]MVGD'*NT5r/oJ^= %G2V1(geM]BRgmU/&.jIdn,D+fOEN[1+_(nbHV+R<@Tut%GW5ZZ5Egr^b)j/-_(qER0B=7.2=9/lVO=-DLoh %e8VHrR7s&iriiOnkN(IV(E1^Km_:U2q+PACW^,gCfTr2Ch(UB615FWC!CQk>^ul&UlG'SRs^J<[jIa0Gb.ki3Ba^uM?e?5?q. %]r"/:1:fr.K9\_I]53]X\LF2MnYS1$YYeFT1iB@S4GMi0:rb=/As!Kr5TLRLn*V$>/c(_l4du=42g_IY>iUZ(po?3`>$PDf]A?pW %]:WpV`VB,crU!jTT73/2*)`GZ?@Sq)K;1rrk-_+RkJ&#;:d=9@[Q*SlRX;3n@gLD]/f0NIi:,_AI=d`ZMIqNn@W"?0NT]?LD*O]UqZm+BLM`[YdgO=8s#'h&M)t.4ouqo.i02Q>*tgR1Y7CL!e:DhBq8Lj7 %GA';iW<;U6cl^bgk>&ca.q@([+8Vl7)g(#oZ;pn)"92^Kq#BWpO$O#"+2?"Y5LtDCJ;Hg@q!%b++Q7UF=@b%mNf/h6%kmK-SS)f6 %nE1[\7lYLNf;&Fgh6mIMk6;.PkmMs2(KgHJOjeF1S);7!5?5i5F,P\+'URS@95Np)UI]J02-E64=4@;)Ru/n`Mt?"=oYrieJhB8P %>hM)a?"<96f[1ns(CK!k;@-R!kut&[gk;dPdX\q*gmFo=c"t3!V#dWX9!.kgm9(`p8Z_SE-/](p0]F]iMAjee=4.pKV+t1HgNgDGK %bbM+V#e[Nfjc>`6qrV5735LctL5o^c@OcCi@q*E)\?od=)Ikt:7o73E.?Sd"qM\1.sTod($ %j_C3G?,K*j'.di+msaJ*VXRCgq8stI')eMek4OGOAI8s5m(!G_JkC^T%@PBR*\*;.Llf/@EH1*MTG!hEN^7u#c7V514%s2LM-6'2 %>=8G)R#!)"b`]t`4&!.h1kE@*?`rnIXfh#iU(6t[@R#iP(>/j];<%dP)EX2U7M&0h8fD2hGcD=d7sF2(+8u]:i`4Jf5pW51$&M;N %304PhY@EZc#d0ti?qKC`.d?%r&"4aGl.7?JL!2jZ%oLa_P_8%_J`KWg8g"A\/H\S&mRT)$j"?M>6#qS]d6+80#oJ>@:G`;*Ue5^H*$dJ-M[XO03Cn$* %89em?C^uW_OarbjS7E+mgX:cDP&Lno>6Y^T6cI>:3\;aLR+k6YQPW:G#K\P"a`iLH=V"+YTp_,58S)]u8A\j&*$i!%,iZYOjrat8 %F8i;\c=^ba:`2W<)+]"=kWQN=+<`&\_"=?b9Oa21)+[r=h^!9)gbOt1p;a#,?tCJ>LaB4$0U.-QasBKEm$^7>FB:;&pL^&TfU]ba?Go'%[($#P,?WtA.DLV[Dk0d88];9\t2gT*2HSa3Ui.L&W+S[ %US^XWBt458orrWp%QSJ;M>J?<-U>_6pEcE<>Q?ehAq(eSWuS8o=L!O!QeU5e2=BJ^/q5q%>fkBijTj" %@tZpnfIS6hhIpEfeLefi\4T$]#WQTrM1#\uAJ@>K#\QA>9Q#t7Np>.^J2q9+hhi`I8U$>',f=0Gtc#^?ENhdk^e8pO0kDOI]S8o="oV4lU#\llb@ %gihBKfk1sul9nFuDn#^Bj">//m],/lYKNJD93nIXpYrZ:\1Ts]*3_?,C>m.aV^W>P#1jkKK<$:7bR?Q\%Ur(]YQrob*N8Fa %K=%YS0,6K\r+a@b#PHE/_#O;4X2Z`?4b,UR]tYUP]$+2^/?WC;S(0j %5n2#>k4JeKj^-io)qP8bNc`+Mo?Rb.pNB-scKd8jFoD$4jk:pcL*`PtSUV4rk-q9`6g18>TVPf>3.5R%sIQq64]TkGtKq'1aVKqb\IR>BjITkLK+`a318 %->g/T.Cmi,J1ICOj*B3BG,)/nq^I[f?5VCrC0"ja'5_l/j7gSe>M6:6\7dD2@O(H>*]@NWqG^:,#2[YjOi %-E93GMme6+@Odn/O1'qbnHGel6J(9*7pDP!'1d[O"MsZ)im:`*N1ME)rN7>lm_N;^7OUHR%kuLt-c7As7#SI]KbuSYV9:0n>FSuC %bb\oc1fsS>lA`u8?RmO.Vo!RP+8AtFDH6JTgn*&8MWHd!]`j]U>H&$=)4?9'T-R,b%n6sRmqrj1CEbKj9sjdeAI,MfHXF2OMUF9s %/6*S=V(QQr?AemgC&Pn&6Y+0kk;uYn^DK+7ZCT2b5?4'#XhV+=SR`^OE07DG'Z*#7@H_3>"#+a]G*6Z#4$0Lf]DOdAX26]i5\3=+ %V4JD\:4`K=F8kaTN3lIN*HDf=)kHnZqt(+EpY"g);F@!4:,"84;HSY)p!PTS-$*udJTj1;BcK`&dTEu)mP/54N%gI']p\3n`XD7e %GO?!=1ihqR\iX'+Qb./A1Zpi,\[)MM&J.%bWHAL7fqG+9QEX,qRn@uVELh21fU'_t3pC!?f^bX1nBYSnBp!JR^I1>-Q25[Iudj7'u$0LM/"'UanW3oq'r4&'K6+<=N)Ygh@k/bNJ^N^d`.XBK6A:"al#`Qf(hf*HTOFg(5-,dLDR0BgC#Eh %"^Y;WI6g9KIZn*q0M1K:P"?;Gjde-AVE=>ChU3TS2DPM1,aAY!di56R=L/PN[838@=,<$lIN;[g7c-"6"iGh9I/RMKp4ujSrep]m %\so3QnY]g66DWu/M[uAbTp.'*bJm$S01O+7FRf?2=C?"fDfVg3lK)5CMHJq-&WqM@_!`&F %W7[ChD<3?)^mT4c5%okAEj\H:XGCg"/[CuQShoKNc4S_I,#!2a?:5f8_8-ZpV,e*9]P'I>V-K]`KJ+W0Ro]E:SCINl,o/W)MQ/$f %6Hsj07`lJ6QGM(`j.opoGi)^-0CI]*b"o!44Zp4GMo\O<*Y7GQ:BN8%[^M;j)qKr9J!,^U%o]?!E];Q+udbVpq$f41-p::jjs!eN>e84REi#=>^VZ#VC#+5/22F %hj>=`;R(FRkb_O9bNDC2EJGm+#;[g!*VF:$Ok@;7$EPt$,,U;LO+^\Nm7FJ\IG`9eD5YjjSO3:P24pJT1^)T#(/iSF>-5H$qU3GSW8jaq%3F+&"oVke:FokZooI1f=GpZAHO_r'9m4YEh+*`3[.-Ace*8PY-=?h%(H\Pf='q!eA %053HmhA)EZ&IVcnaXr8T@h_)3W#Saq.JXcFn.0o6\<;=Br$WfQ4bi#>@1N2a.'tWZ*fSINe73.WX":St.$p<-l"r;o,TjD70r5ce %"\&ti6,?bCUV:VB$7]H&S05o*LP!r)YZi@eTci %;+0r1&tkEc,h/:3-7E>NDg/'LUuWJ8cY %[t*q[bJr#F1_0#IdpaJm]4s'FB0fL%l")l0RlV$.rIrpC$TI:@PEX[YYTI>o? %OGm#'3"4,G3V4Uo=!>/l6r6(*E8hIE3qYl1=mh0r5nt_unlZg-'O>,k.%d?.-q71'#g-dol4$U+3X+WOOElmndjZ];AOf=#CH;X\ %Zfmpt"L4)Acbf:YkV\o_nla%m\C>UUd\]L`F:-0'NJ^P,LstBiVBRI3W1^fV_[q:/*+F*o6[F4ZRIUVeZ9A4n`Fjeb/!"Hko3*-_ZggO(87*,bgReO(?U5NaC0`.%^Z64@W&C %TR7N"(GTYcaim`W:40dg];Vl4CKl*^8<[I.^S]?[Zo>G1e^,uVI**Ek>Zp'Z?as63?UNim>UH? %H;V98dg%3!4`cF'.26q^Y]+lm4&mg2I5qR!lVJZbFDs;WZ\,hP%f#Qp0>JL-:&uPDIPn4(()]gZgU:LT<'Eu=P@Y0ij;ejJEd;UX %DdB8B!GKa&9"36cj4/29C;.,MMch`PX-geu[39.G_6_E?>'^2MC0TYBno/_%c#:okT/D(5N2!%/XIXPOY>:HliBD+?m=As,'W+%N %o41Z?B%Vg`coSZNe'm4!eY"<%GQ-M<>0f+^d7C_NF+^Xr@Bo[.Jcis\;l-Jm!#X#Noecc4!J2X#[Cp3=c1'%rP?fO0)4\-Pomp;[ds %n*=qZE46fSH!^f0(8+VJhSj/Jf?e8Erde$c+,*6l1JCMVeHmuX8[*s]@al(9W"D+!2fPMMer7@U2gfj,U+E>d7L8inZ&7&!T`<_O-d!5Oo__hNVJfK&I!A?jsiEq/!:N[WKZP(_;:Vg(The:bK]>-eR>TTQ*-nYgmkn&g97Z/N=T9k1'CpD %#+#q]+"cXi]YhZb;f,gLLV4hhY=V'(CsS"*_6$8bi'kqN->Xuhe8r04.frM?tjuBh!%m@@e46!$ibrS %qFq^%%ekQSR#7o?@6(DI5C"6%-ik5?@\L1d:a'>r&]TWk_@.1!=Co7`l"]nBSM?"$BF`8+>`H?t4">TQR_tkkrcm;:<:d6eQ&@Fh %0R*i`*HDc7Lo/(X0!?G?6A;AIBCIe*39d.=*/BS\)?LS'SOd %g0Qg)p"AHm+/`>\\^cQ/kec-J!5I01FQdA\:mNbm112/8R2mjM,2?pV`AZShX'EJsN@bsk3ml!,TlK1g=j.mHlT<`/+,(PDX8?%" %NL@8Hj7I/keA=Pl:T+_PREj)bgd`(30Oke1$;/6n-UA0og]Q30V1"M)B's05(Vs@":[QY8\[ah)fWulrBdmUcI67Hc"]#!C&Oicq %*"&a&0^m*6=t@"W3fSQq71lo[W-5WZ7a!X]nm$]BQiW` %iI1li,FTNPk&IDoil-Vskt/=jFL/ZcCV[N"'t$(7qnnX]04"&0pJ$ssIa"3a;)VFNe#mUA*>;)'@dp5Vb3)2bgL2uenbMHr %\p;dhgmM)p\IWTKDc]VDpl+u*A'8CE>r2[N#MGr/cO+G;pe5H#).o@PYE&dXd:d9aW\'da`!iN5]X6Y`8O-jr4Ve6;AkbA1`$I[f %_1mMhgQ!K1,DpUeHM&]<'sC`k`o"-@YFj>h\l%XV/"91UoJ$De7+j.DP_m%&Ic"*m4XEJ_E-tiEL-A:1+$>qA+i.X!g**;8Lr5ZT %dGcQ\?hgA7KTS#F\],DV8,ss[rcj>:s,1Pp?2K&'?=3W)`TWn%gr4Mr(6bH?o#/RN[$WC=fZ+V+Ito',h^aBX?!8AYCXjKX3&m?' %ImG7=CT`94X,_MdN)rDY94tuQ?9d)naTc6Q@M4#JYq>3i80hPYM6Jd"Epig?J?.,Sc/F&T753!eL=48D5q`Gd(VAUoRkILE>AL<% %)5L;EIiE?C^L>Y;*gJD@q0;[R'a04"2ZKB2rgPQ179L[V=![K-CB$Tq@eYr>FM?Oc(N=G)/HA!+Xc]%`524i2e'T"tZ)ZJX5!XX, %.MKEFEI\$VfO9^M_t3CENMSC]_?J]+;L3Y^oHGWAV)!MYK&U)l8RmEFZuq[Bd[6^kW5nK7(3GV)1e.&S?"FQtI!)pU:F9e7`:c0% %&9j=5)Z(>pM"^7,N>0%8)rZ=7Vk9>0VO`4^G/d%5r&8!L2s6).E-KLZJcthSp)q17E.\Xhr:Jj(i/V\'?=@?gJSt)sGjknIQFZ.# %6]GHqp?"tDpr;s`*W6?dmPCdPA":n9T';C$#31nAHrJ9J5E_/VE/82C?",4f"P%EL<&K&`;%h5o\%e1bFXSK^WA:sL,IKELiYhYN %[jtsg(lWVjo?EgJeKg+.905*\(pWSLLqu=@H'TZ:lYATJ`J;`V(Db^uQ!)dRQV$SBF<).mX+HR!i;J^@E!*UaQESW7lfL-F%BOX: %dB,Vq*ujLm-*Zh)PcnFn]3K,pIg83S@$.HMRqE7hI!rca60M5+)o_UkZZ::edn,[BY><%#?s]!(XRck$6U*T9^cKfG3^D[j"7*$K %%pY=@f\8qg3F'g5FiWO/W4\1H!YS/_dmT^.mRDp;4F+3r$rLgDdD2YGlD#oUncb)I81DTX=Rt %[Jtor1is`g?YT8.Db:EpQ&B3X=f&a^mZG5mI0lgMdJYtCD'^_14#UM1JFfdlR*F:_o %kcF/Spd2qNjg6>.JUsodLr?4>o3@6m-_hki\AY:pb?*u@r63*[rhd];>&FGI%@$D_M5odi?q`T3!_rDMVrk5/>JXk@(#PYKc+=B(c_:-eo+=DF%&/@f/ %k7/@A7)#-rYcZ1uG:8^o`S&2R*?lsKi/`T>Z&naKldPG!D#aZ[W)toU,)a)=OEfAsAK6j,!,5<0N2NGB %?s6MZ1IC.CL380jHN8nH7'A=6h?*ndl*\t;6ePp)J>p&XqghQkbY)3'pB23t_W4/q9>%/XYsmLO8A*"$?YnF$rY"Z:5nm8Y4b1I4 %TVR7o.CZS0C8@TFq_>auo5>I_>b"PMpV_YcgY_[/qs4kW2#U-%7u:dG0LeCE#\`1k3rA.L1."VuC@ %l+j=4mbl[>fN$F(mX0;g$b0tfIQ/g;N_[oEP3B06m:7R>WOf0KrIrk`"N(G%@$0EmW`9&m[7%+h]S=Q@b8:m!0A=nC!o(8Xl<.PG %SaUsfc5t]I]@r)WI,G2.;,q+m4V#SXKo/hFTC-.]A+3bife2dj@dmYh.0Vh0:+Ue=PO1[` %0fn2,k.=%E]7R=og6ki<^+1Vd72/'4o3FZ80'$?6o3FZ8/j+oGc?BG']*Mc3]^WOcm6WDgl/nM4?'oDAdb'%Ke.>aBsG1YrhWj99!fEId"5tNP:EHQUK75jr'5l/@hnkS3NABK=h-"iRPQT %"6'q\Ek&gpq^C.Bj\BCbF+'4noSL^mKp,j<%?+9uj;::2!HSo2nV'n^Cf.%I(N^8+Kr?6W0m;\Mr)543WG$3dE;eI\2Wl3&tH@95cRYYJ`g%g9L %2%dqK`%N:t)JdX'ICh4SL`IM7\u+eD@&d^0bbL?Z/H$oQb1*`eHn8D\O-dfr\IX^KP?S>^T;U.igN`o#LsFX>b'0 %>OVF^n@^jn>L*HHnZfUs5XP1/r9'>Ark@JH-%>"O87p;&cC???N@8KL-)DU0";oHLL6>GpJl69Ea&#[V!NAs7RVd;^Ocq4CjZnR" %bZIJ03=8BpDE3`?;UIR+E@sKWuRJo!`XL;I\jB*^- %T5!XPkF`9oj<"^mn\E)).V<[*.QSp1:nrPT?44dcRR\Mu%SDbp.t8lG05'E/W(]24+:;)fqt %g(]?cMShH".H_5J:2r6@eEMsWF;0UR_DO7&JkRM;*G[sHg!r2+cs<#h=p!8L9u^[_.#_$r7u'+biVG_?d>:PJMe3EjuWQ[UXp;$#7RA@)gl"%b'XF*q$(b"Y0;(iO`0ek`fp3.+S)Z#_Bi7$B]I'/`/'X3 %!j?NY7>ql7@027@4FHB@=4U8A0F3g^*&B1Lq''rZc5G+?S1`"_oncl0.a29jSm2-T1>G=o\cTW)Z21O]'iY?&\!>gHMp1!&1rPMb %03p4e2c%&a2P3BF*S$o(`(=N,#1hVV^t[W/Y-G*m6S9e*_&>[t"kIrcS5^iO^cG8IUX`*.8IGp.qAlf75togI2\cISKaXXOrHXUP %?5EiKDK]>:17NW8q@'BUi-mSUFHK_UkI6_E*D;Mt4bqW=1Rh4'=aT_MSmds.DrenVTrfWU/Rp15gF*[PG1!.5Hf+G'3IiQ'iX[OkG^1m6i\&,c;4]C:ZXYF>)a?YH8&tHYk`KlD7I=Hc=ZU?F/E">(lEiRn"t/ZhUEQPZFAR0ci.m>hYJNMGgWA%/9htCL"Z"HQ\D!fF:H8l?PYdNUVcB] %qQeiflc\9[2Ccq2YJ+g&@o\n=Y:iP_Q%!uR]QA5dHJ^7fUa+moHgiAY'*iHMA_0]!]4^M(C%:S8c+LkJBiB1M)Z,MlC#r"Bd2&RX %RI=E'!Y[kuf24gnGq=6tMr:)/_8N+W&gCnEB30:TGKqm*B&KO9?O>GOhTV2(o0]sZWGS`du0f%&[GI!t&=mj`^ENiJT, %qFV\WDFRm8Kcd!)r'3A3Q-FEVE\%Q %A/kHA^Ii8qR$<[i,-:"bB>4*00ZY,m=8uqd[uVkp?Rl<82fIq61jI&=`+S]<_j`a8H=,CUhegV@4B:+u?RLHa>?]I2mHNE'EIs?C %&&%cF%7k%=AFgY(\@/TYr5oi$hFg+iutXd.V.bD#;1rW5ddc4t^C@lWUZ8"8a%2NQ>M(?Rp/D;Fo@Kl1[@rdLKu %bM1L*];*Wao'Q/U^6$$nB(98-2U2;?@7b=LCq!49ehbm^_W-%Be_E1:c(EAe;K*GCb$4R[pnkAni"[5[8Wug5kJe;sqEC%E^T9gn %N)Z30`kS.9/tDW=722Z7U9(`ar-XdqY_V!SPZJcUrH@k?Z[q1[h)qEFe@4V=1f%qEV5E]X`[@$R?*s-W+eHeWU2XLC6!a2DTJo7uJNdb4"lqR/[rqCkietf(f%2/;<0Ia2_I\Xc1D'?iee):_Znqk$SR5 %DZ'bElOj(D=@i8$%td01.sg81Gf#_Mn=S"o^uLln#6WhQEaahIFd`0Rl!*TT1DgP*3IcX)5-\RWoEa!X`NR7)7BS998/J-^ %oA%&>hjBT#T@O4"NiDKO]/L2XM"udnr&\],"Z';+E@8N:*P-U(k"6AHl;dHFri5FgY,Bh5p>D`o %Z^Z;T%,N?qo[cU5:GhLk[KheIQ.8ksa_iq:.Xr=j?-9en=,`MP=NSP*Q>CoRe*195D0#C)Wmh-S$K%9SAd7C"iE`CPhqd'B*KP?0 %?/Pcjp>'PUWGM;#<2,r<@dECOktjJ*d=\kks1cNP):n.0bFZ1LYBOm`moT,Li;;WuodcqAV8mVjIOdnrfgHJKI:7&S:NcaRf0/"97?=&IXKl^Oo2SfN.d.iU+%V%$0pCnB21:n-DbgkE#+Fp!<.W %oB.$aE%@b=;?8m*q%(ZkI">3ama"O`A(1Q)Z96[iV]#Ra('IBtU!`_HCErNB.i=$c:**.M$n;(Of`&CkfmUR5$NnH-DjN+9bHKMV %rtg.Ij?LWNYJ21Z@l0EK.J6IppZGpK[@8@IlT-?V%6.csa-h"gf!YK=eTp;I'3Id)qTQ2uV6>AUs0/4?lSgV;qu)RgOHh)j+Kuh: %?5?d=:?D_I)F\2q7nKNqqfJTjT2D8@rjZa=p$m!"_`EQ*iMhs0;uc`lL4co9-ZIi_fP^M:#f@!J_oeJP+.sSMFJHnl,RHrDDu71o %X49MGal19&3J-nh-O9Q2YorUtal+'Sk!>8DgYgM^ejRkJ\@4qu*_maI]>OUHl&euK^acX'Ri\/4jFSl@`^C7gh+CBEeUr3aeEMNI %Eid^lm`'1;*f1O;M?F$t0e?B;79/*q`.FXQFCUq\'\J#]LtG7HgpPQ+GfY;M]`,^FH/V`A0e`/>)#m#^r8`n$%GmHCoo@K;T3u"m %JpiI^p>rY^_gR5AKS"95,eF=NkDXYf_XA$\+=F_tjO*Q=lIh>*K&Z!,e$_YIA2rB<,[$BHT)?BC@+CZsb-7%:TI,1c"]"st(f$?M %JcpPX+''"oq[sGaYmL__WMHOnCS,L0_3s=$Xju^Q]p7mA1Xl\&/gCWEchYQIk(I-iO<[$q6K&V4-noFe*T5=V:*?u2;@>Uj.TG_T %C>0atBA%kb1N9rG553+8leS1LUJW*5N8OL/FbuIIk_3rlk(&M=8\R?5,Xin%/'BWP$EH<in3)M6BE22ZQk7jKmh@UK-#?GH)K#!5#p6;fV,i3ohm@_>-P_"Z,-8aW;mlk7(%?e`-eM_pniD)H180Y0L>DZ$36,$8L=,,Srg[TH>`TE?-5"(&WDA'@_5pS[Lh$0 %`HjU,A"ugA`rc0HaRZ(,"@.8N(*FjSp3>m]Fm=KT"SE2Cefg^Bg/KUo(8IW^m:INr1Q9&um,lGX6[Qb=\]?Hk/ZM)[Z@= %b=K-bn<6=N[,W-A?=@%#boD#`CNh=;qjKa %:O:dI+&Gf$='Me`)@=r*c,VRPl=`^$a%-Jp>(CTilpcSZTp.RR^;X$QZoP@:E,U_P,ZGTX1d3/#8K<,4=)CEY"8bnk^`!)67KOV; %Q8qH)ehRkGPehlC$tlmZ[VJSfiRYnB=p^OJZm;c,^u52@cpg>%#8'-Mr>Ho3&&a>8ClE9Z:^)$q@37NP6S %h+DXj-q0`ha($EshW]H\\u3eF=AMIp9g*]p:a4QC(8A^oLMCh1KS2aW,RJWE+i$p[cJp+KQ*pou&+6Q^Xb>oTOGqLX#Vqc)5nNEa %6Ju7E'Ueng\ohKH'e3.Y\_KnQFC?i@IR>DO:]J'0JZHIs"Gh>mP'-&WT-rboB<+on\S6?J,R;fW7,?I\R %Ys$jo$]e?%K7mPt4DP(lRE%*q&UqOiKH)ifN=sEKNT?linrXE7CR]8T/6e2=T!`Hf>:Z`g"@eO\;knqKY$s5CH"l0D"7K;,Sk]:p %UP+#+j)HcmJB7jO4GpEm-T[-j-k24]ngMDNBO9D:m9g?t)!]ou06O=UMS%hH0nButn0\4s'5&4"-bQB2[T7Xfk=%SUno_7bhn(_qdfKSN]iU+F+c-+%tWYdt_9!@t;fs-d+c[A;en;SE>gP[;#-:(UitZ^\48e#a78VM$+pp% %+K:=.Opl$H#mH?%7%4j,CGl'%:;A7i%CCJh-L4)j4T:4YAeWER0buS,SC4N2Gc/o\U:D))F/n&Lpa;;M$E]idT2:!89*\t2THU1F %FBh.!gV1+]j2.VTLMBOoIWuq'-D;jP$.A5cg#3%RF,8m3;i%"fQQCTtL?-ao@UcJhQk"jl]KoM4+u9B!'FYm$T[GWlh$#r7HA4gM %@H#:I(H"Q44oFLPnY9gQ\>M\H9QPdcOr_]F8g=%sAOl2@+aRXMKHZ*70?NurG'%BE>Sj!a()#gR@K[*b=]>]A'b$-[)Z+V$Z7bp7 %54rX!2XA9>BG`p8E*P`AP"HpG)+(ihJ2pVH#k1Ml-:;1Jrq)&\b*$C:?q^a`MSjlIDO\T1ccBgGG5>d#4jYeF4$WIl]SeK#(bVCk %,VW("%\t218cFTafsi*fmJ09+`EQe/H_3\8<-07KAXV\n-m)qtmOBI#,P%09JYP/IWfaRef#M&8UY5m\"NI_""eN]# %?:'?DG(F9dbh3]_hd[J\Od(FtOPFFfTG9p;B#eL'CtG*k_QAS81_\;^o0IVm'+1gK6u3`QJlc?m"IApRAca'2@sQUB-?s'bAQcC0 %$0k^;9Xo36X3:^-JJ+KKfZXKEWa\7n'Qks=K'Jo`po/Vob_5\CMJU&]C/*2OE(NQ?WMA@H3*&?[)*e=XC9joD%jS&eN4`^JX@C>T %=,K-4LEA>^A&]$M;b/GafI_`mM?Pc; %^W%r-TIWP?/(mXL!k;&<7,Df"W,"!Fi6oHF1(U[`()0a_mH+F`Ba4L"n^n)IGC%T5mV0!=ee?J5;pQK06B'98Eq+sKNppVM4(t?3 %^)D-e*Ep77WfeJ9E(75ZGK4/`"&2[<[-Be"(?>i5]`P&OnL@$(&p9BS\eRpWBoPJfnu+.ZX*?gZr@s20=EdUV/^@E0H',&6nR=fD %kY(fU*W2oc3blTp#Tb$WD21i'*3m9;EC;!qBH58iqlUt;E1jDX!C;l*mD"JKjZ2f\^m:'Y2\^b'0M7RI7;3N2W/NV0S-Zo2Pk7++ %7X!CrMkJ&bWYejga%!5)Wd+)I?J9Vji)dT[JdhXFMHMn-AJc7S%[T-).`sMK*$24(&*pj#o#QAZXjKWTmNNRL.#_=@-'I;ahj^-i %_!pobMB4"L_UAf:3Sq9Sn(P[_)I=Ii?gu>Y4f2>,IDqeX?bai^?f@I;.c.gpWuu%o$+PR<)efAn$rO-`b`DhmZR#(B %I>5gK'Sa(m&]r[%A^N\1/j9-r'QKmJ8!5p"#:Gnt--&)8[3dXrGke4P#K"t!Bm3EVq[?&R9U*`f1Z[!%O3WhJRW4>#lk:?WeIpD2]GKpFhfVGSEpWpW*p\-d/f%GNIFq>51W^hEV-XcX6%pKY@=n9Y$+\=r"\WU(f;PL@g\+"HDc$CNLb6$ %F(<0P\-_+>(\]$pY[Y`FZE/_0WkgI2gS3E#7`uoN+*VR\C*hXbNfD:U#RihlQ2sAk#uq_U%HXEnA0b-u@+SmC/0b2-LN/bU)%$.C %b=K/8n:O2^A]AL3"IM#b7!ZD,hujlMjYnL^ %Y %0BsF"P``1UCDmMg*e#k*DRBEWCLRGOpJ.-_)[SeCN>'.c@O1H*3">s1D'Vqu<`OFjDC)5s/M#f._6:-WW)bL#/[JXf:0%D[$0-l7 %VL#07IHmC^.q(RaI5U]Q8QlEYBdCM!34"QR-6sWd3Nq0-CBU@Mlo6_o)C^SPIGD4b16`%[Ln9]r5j_O2Pn^iu&3*cD&gR;u1P(Tt %,Q_+\6JsgW%Lt!T?YW^MQO\HW9"7T:P%FbQVaNhUkLU!&_Wg&^^W&r<$PGLm$0qo^X/Y8'D'k3O:5i#sdf(]`LMBP:qbb05id%!<0lNe*G3VS/3%b!O7fn?_bdS*:p=Ia<&ISomh' %&D`en"@7N85uK$+%-_up7GA5:/#1-[;Np(j_[fPjBX^1!.H5W\+L@*lD7VTe.H7UNL:'NilZYXB85BiDj%^`MR8UL8IX$`>=/SW' %MF8%l*/]o-MQ#)oVFVE+N$oq'Vb"FXm!+FB#`V[ba'7WQ_[fPj\2\BWm;sX8no/)e'4JGZ0J!ip5_0CXDoG8U_^2=F_ACeD>oP#\ %:&S#;+Yu6/\>+Zd8J&[aqaLDd4;#(;%+!Z_LBKf(%e1so6!nDY%[S5c&p+8<\Vi>MMSKuEc.esX#AcI*8J5^mYb.LiHmDE-SH^)_ %pnffIk,APGW,"!3iR5QG!Z_Wo(O1K^;@7Ne/9o&`1S3ArWco@N;"q>J%dOGcX/Y7l$9A;mjpQbV,=u$JW\kB(/B^ol")Vnp=M"lX %#9>'98'bS?N:Cil5AZ7q`,+.OIN1LOjX#/8dIJuM.0%[g&s$Zd#I#m.pd_rJ(]J4NSVjmQo9F-1GQgc@s:jZE.'jd4ajuIJRTa\&3dj %&1$/JMPaDSO:.4p4qASLKBXJ`!hTOuB=7]B4!cDY;/A^Va$m`LSl-?ri`tOfd4j##nX*_$3?%Q$s.G9$O&n\MKs?/pL)au=^*835 %0[&r><*BKWdJD>Rm/aPD=0#=V-\G/dKeZ]7S`e8C]dl\SY*e'<.N3^rl(<_>jRu6*!&MUAXLlWI6agoGmk;'^!jC$ee %8,.oqWdX(A-eb`2)K"*GV/;Kn`H.08h7o^J?/ %",l0gn5,k(4Ko4u=`L/m(AgAi:2Tk"4m?80GXBr0[FOPN,JMFA`^p>7cn\m$0LscK"8,T!jd&+bd3\f0%iNEeOgccWsACMaC\QNQcU'qarb<@Rq7=_J]mPB/G/PoG*kCS/89-gVBL[p %QLI>-+gtZj>%4tes.h(bDtF_o?kFnaEo8d:K@/[8HK1?Z@Zb0A%Vi>g+t%/Q\'5OiQVrQ_q")8C%L]#0BnP+*0U?t4`QZ>0LTTEI %b=^U>Ar!cAA-Mk\I9qIJ!N8KB5^2Z3;NdHZOt1M*l65J_)epVl-D._MZ!&Hj"M.)s %N50jlptN)(:i-=%a]2@Rm8mKK`p.R-HOkL9T-=4@2#FVkM=gA@Tat9M634O*Tj*Me;%"r8(iU3J$&pO5VFG#kFk/a5d)ITuA8>+R %CGVlCC,H6ZlHpMh\@9QMcDeXt*nuA$^5Op,6XT`b9oUF7bJ:HEWNikr;hJtOlkj^23s9D[dSlnT3)*J5\l(6fd[D)cc'fQ))KK>& %X<,Uea*VkYkEm0885ZY,?dtFIH5ue8^M7MOnuZOQ$p-&s0-1?>G[K.anX7V0tqBU$QF@WPVdqXPQk\Em@_C6L%Qfb %E]dW1Q4tMV2&0N(!3WtDh1\Bg!`0\XQICk#\:ULf'm8Qj^2"7o8llcjfHbgc(X8/@<)7g^?as3fAJD.(gB;XB,;DjHrPVJZHA))j"o5!0'AkX\R^P3#"JaB:n/,@2sl!X_,D\sG^N)X1sKe:>S]_f %=7*,%&&1cGQXsU-JOL2f1W8hs$I,6cU8E`]rB55?_XfJjSk%.KKX/aj+L1W#ZEC%eaJFZa<$RYuPG+*f$MY0*7#>K>YE?n<_dJU2 %M@sfBX@10mZ7+_6Q^=qh/\9JQX]V/pZ+L5&fp].gjaK`c/`6%pNY*HT %@?a/BMdZdJit=`dTV!S,cE_\,J8%hlCZ!\M:+HRe"0HYUm]BM#iIW(U6Lkc]YAc`!GHaJ$*h&hlYhP)/81[FD*gQ6!oO(mk%9i'cGLC@mV7@4<`>NYfda';K$2(&ktBg6[c:ab&aI"+3+JD:AX-U1FQ(>i6>@'.g)@E=Qfnp?>V/dBRGY %m_QT%lJXXc-pXNlPA628c;L/4 %!r\Cd>rEoZKJ']XNB@KtBT>Z7lttDEBSeC?OQ+D#8\RS&6DR!>\HHe]Qg)D)h.Q,l_YH#$MIrI,+?MK:Z"00<@2$!hq;IXBWV1H/ %%!X9MgtMJZVFK&"@!Kr9,T'!Mpe]`\qMqD\tp!s$4<2">uY8^ %-#j"gN4hesjc!#$iGq1E$[k`%$k_$8*3UiS"O_P=ar0GiK0dnDUlJOnH,aCQq>c*LU6)l?d$bia35kA;99DW2l*0[%OJG"S:(@/9 %+QXW/7(\L68,ESlqW\$-qW63+=q\"sq(_I_%`*Yg,JR!',[-g3]lW%];s4SWb,JfA$Df)7i5lp!Eb`qG-u$_ck@bsr,<.P5X"CT6 %SQ"!;c)!,5E__Up)Q_Y6C:^F`F]K-1`i3h!oJJAk3&U5EkEg57NDj$a.4;mne?mQL/mMAlWhE"p:`$OGC5pU4HjQj..4aC/O0"ce %\4Q)qF.A\Db`BW?%FJOdU)c7:6UsnR@J"(TbJ987f,6&U(B1.[07u#TK!qNi9Fk>S2.`T16?G8k%AX;@PVrJ%6ci?m0\*OYTfH7`eERMA)f8KWU.)7S3hNC!jZ<6LpS]k:G:LE7,lcFND'ISfpK$;\[ %2cVH2bK5.OjqeD@Vt6G)[THXuds4H]1&INTPC:ck-b*.QI6b"Yf]S!\9FCn&*6Ro''0-KjS2eak%KiO4[dTKMVYeC4-T1eNL1AqZFIR7Ln&jgLL9GMrbKKKd[H4I>b %:[#'IaftGEb4A$XD<,p7jb+\QeT22C6(YOi[[M:ATuW-D-#s6A*\#6SE*!Ts:n=,9fa79\\aK)9niZIfZe+"UcTBV\Ai&t'H!VZ` %K,7N!HB&Lf2SJ5C4>!!37ZWej+DeXAFI.pWTFP4'6kXeKA3p[<7%VFfk;7UMcl:\9\4L$Ocf:a(1X^Q$o(8G:k^CDFKA_4,0JaO9 %-gJLi8$1gI;]TCeF-DTESF!'CafO4HF5#F1P?-R/q4o;q]KKR1]R#;rpnXa!ff7kiGq?]WCuYsnN;K@B-S;k?hgNp>b]i/ki^ldU %ikN.7MdNh29ZrfFGgUOA=faV$aud:M^$QQ5,kO#d6tH5j&k'M5VO:9(Q_9A]2kN:N*$&@;hWL"&OYT#Xarc>c+.ME)O^*GEl7,8j %UXBoa*\!0XVg;5J+t1fhA:!GXL@)UYF[mPH!dLMW`<1+&OS8#3X[0Ll.KXps95^)VIZ^S*'m)Hb0(d$;J9c33-uY0%D.qXfZi%SrBo;B:aD!?(&UcW9#0U%TQt[dX4AQPH^I?2ABD8Cjq,j %RHI0HZDBi6.C2N[s7]m^=&aN-,CEe$at_\9=1cLo<%4b(GO]o1g5=MRaTt,\o=RrB+ %#j"09i1-cqalUJ(:/92#61:"ur=A='s?6*0:1IA_r %j,,rc#Ko4$lF8%,0@tD])-Gs66WNZ3>9-i,Hudt'Zj85R-JTg.3+!_/6o1]E-I(`F&6K&AXM.'*%P2WApY9VHG?\I;Vg3#jnERe5 %RPAXid3>g9461:#eYmh;@$-]("Xt8Y^*)M='gu8b0Lr;Q/=QL(q%)@5.^Ja;8"R-U4Ek1qi2G)4ds87+m7>L->B-II3("drmB!H? %Dq&QC,!UP7`1dRmN`_+JD5UAiF8^NC0",u'Cdg]OQ(re<0f+93A5b3qMmV118bgu&G_:l;np]mu64Pc4\$l%q#g79(\Wko%>NYr< %'l+2T2:08k;=:`o0NW9QLpe(Z1j4qWc!L#0$K91YK&0=Gd7*P[/:H3dQZP5ec(F %FMFMV,\e=i<*R^aQ]eIRT&usk+lr]th@JhM%nS?j[9HP&k4tD:H:o_X5EHR`Q28YK&lG=u/7$(F&i?-'a"WBUhrU8DNf!jhD_/;I %cP,4J86iGHbtGMs"\Z.k[W]#/oqoU1FR9#Yd1%KIjLAm&ZtY:0DBu(4dAG_sBt`pZbgAqU)dZClreq-UROFqp.=p][gD&X\Tug,P %]kS&sWA9Xf<`j#^,Q(@R)BsVLd2$2>a=rP5;(.d0&E(M5F7^\.1bn9Yp0Lp9,0?[]KRGJ^d%IhJAs#JbBHiT9kh'lc\V15V!81LW %>%jY8[9DL7$OsM?/OdfSBq^A1h/pg=!Xh_uo4A(epSEQj>!q1Q*(O%6BHh\/MKuSV6lU&q$P]bQd6tQ%8Lm$ZBMc_$qVjN@g.%8? %C^;!k+`'!__1l@#0[V-L1J(98M'bQ'.$5n#9f*1(`C]Gj1sog)Cp,P?,[>HQok:(nIA>K?4'?6+L.@NX,:P#%BJW9h;D(d3[)E;l %oGS+^jN#Jo3*U&C5P".48"R*7kiWF(QQ0#`VgGnl<\B#"h %,tPRSG_2.f<"Nn$_An!8:l%M=/pfg[pd3X_O!70]aa>9f*b*nn2FjK:`jdNsI([MI-8"Mq;mO(^bhiRDA)Snk.2\D?1R+[J*)I(D>t!1V0,.G-"j*khoI0 %Pe!L*2(gJbETMYJ\Nq6ta]uoDgLHk,*oaaYGfLXXJ6H)<"*VFeDI#Pe$>< %:eaWj-oq6q%)ZLq3)or %Fo!?/LZ3:LeVXm4DN"2UY)lg!dG;CaU:Zl6#A\6.^k`N?O(*-ORkijpY''(;D]eQ+m %>[P-ea[ %S_*@tX2QlJ5S#YU8QrEic>,D`Q)#^(TVjG!V0L"#3j38h>Y/*C"a\U-E\3lfRa,\.ba"tM;PLXVUXp=W/pgP-9=9#!OQ\8ON&c:i %U"Ae$96kVcp,!X2\?BjX-Ag#cc]M,"-XEUHIonAOj/*VW.RE.e6eg,\!\YKr:jh!L6Q?[b/DB %?4CPUpiYh++7Y>PYLb1SND(,JqtHEB@smOB?$1'>+b %Hn&lC*6Y8Rr4B##I-@"o$H1@">u`"JhXnS[CH]_V[1fu,=:I,4d-kC%)4sH-_a!en\"(/d-l*V3?BXjh5GB%$\]=$@b3]%ip!"+* %.p,Mf\7'kRn$)VdMO'rNk<'s6iXY"ZC[[.DkeiIlE^[crU44b9]C""/1%($W5+fl]m;'XrL[Y5kG7m\#rnjc"k3mc2A/eo\8PA08'032Y82]='TlOX2\XZtpg/7Qc(lo5.2INBibBF0RS)>.4^0 %ai3>n=$5()J&BjQB.TN+2Dj/Tp8o4:[P])m$e\&:$VjWuPi?Rrn0:SDrh3p%(bt%/Z_(uJI_07`%hhH)+GAN,U+qjj-4-H*2sp3- %(cQ7VN1sl.GL6B*,'FgL4VC4tLSSo#"-Pq58-G&sEPk8W-sH>*B`fEjqPcAt7i(43$u"Ib:)<_Q2mOhjV@t]3YS"L]0a#ub7\JKs %M?2IPGH*&MVGfq2Z@>LdnF4iO[kXF7aGh(a\hTa(p@W;k;/T&T@A70TFa[a(XDNn][riAe[cQp6;/T(*M*oJR>M=U_O++*g\V)4h %'9G.]-S#8k0b1K5Yh\IUPJi1b,Z2#*#T\t^*1T*Lk8m/<-PD,kjY3FD)-D.f9l/HI'4oAd21LR8QCq,TgYr)X7[RQp,+iT7S_&HAo[\cnjfs6*$+7\jRcaPck64@'STQP#g=VNC#Oi:aE)ASGF9j>]I2$;F<7\FTA`JABI)dOGl %VUG.>\0fdHE#?4639n!+o=/USh/9`qR&k4#r3G\t>&?7T5t*0`tccAYkrHf2:s %)5-aPuqbSc[W>`-A28]ZhYiE!aRNjKS2)P,MtPgF7N;U>p9eNg@.T6dT45 %9,#3V&iVVuTqHI0='u0PYVuIg5T=Ai&_!KV.s6%2a^"W9WNHKaNq)lE>R*F=b2H,dj6i41%F2junWe4r46gk*ak9*.phM2^* %BHQ2oVtOlb8$u/AZ[;Sl[q%8)3N&\q'.cabZ3NUbH]9uo>2N^CC`b3NPDg)6S]/qkniN2HSW3+aBhf*,cbb1=:U_0-i,=7o%\/P? %HC$$(%"^"eecqLnUAq24-S*@Y'+d`il"F8@kZ5B;fabHB[S]sY!O]%^r(A$2]Z)?XN@_!1D#9I"_ %h9c%L,5m\`j"CV(K"ZZ9")j9@>B?Xnf&Q(HDI$XoU^N%>W5>][7qM!BLZu@5p\,CJ1.+`;LN-Z>3pmB6;,hFHMF8&Bi(oq*oU\0B#R">k>6U,VqQfejbRe1L0B<2jULYai?'8m%NQe2P)4sTWX/.=,3=Wj\ap#9Jjt^R-fC%e=_V@O9 %,8_&W$"TdlUfK<\Jkpd%+!mE-RGV[N'iA.0MLhSW+dYW?L-D+D'rOh\%-=6%I8..gI(UcG$(km#]I`Y%iWn.Zei0$Of4=c7@Fji, %K>lb"__fW!g?WA3F5^DulSe?u3mC2^CpAcc\I.Y=RPZ874teAu?UqQZRN,-qfs<+6GA$0?)Rj;48+;8:Wu;&ekT#K9G2:-1l0+R? %?;c^Ebfmp7h*UsS]E,g()WO/ZVH(.gr(LtubnFeC'*]XV]V;&)Ic9n8`55&82jR?;".LF%?1PrFCnd\f,I@KK@.1ih0V/jf-M`tB %UFNmsJje<)dJPrb(=]M0E0giNT]W[#K>S`4KI;L"2_j)H)2/6USe`&`9I8'7:!d6U8paAI,;N^UY*1#%pR&ke/IBlt]%i^?9\ %2.3.'%;hSp1`PCVF#9of6*%A[-u#nUdp%^="kaX$*a)Wd')LA3gW>(;H^i=\o.^polF'OPiVD%(eoL %%E[mc1)9!k&ahC8:nf8qO/gn9QUc"[[o6@>m29%/l8``SfT0@5fB'F[#"#7\dAH;R[L=fiiu/srZE %1_%Q9T&R2c=@9qlB%C%pJn.I!-J]uD.hj8!Q&pkbACHWR`_^8s*t>1\>TJ!8Jr+Y/4$M%haV+FUF**8%P[8g[p]r1FnO&uq$%=@g %S:UEXI7Q'A$2C`f[!0H9]94uWdo`LnaX%Tm;I>4J.7mRpM3;CH@c\d[M1kJqP/O?UT3"TN^9)(ZLp'XS>P@1>*!tBWBeDf3E)*fPBtET,oq=3:cac_a@i*oq]HmjaP;*K%n]g* %3AJAj4fV)>(qalIO,Au`#;q@6=#^W#Z*ch]5YXRU@PNd629CT+8knOW29B"/\`=)TM9B;KSkG0(-.at]o(m,8#4Af#!tb!n6Bqh?D/RjcefAr %$Pgd_5jUMmjXQG2'ur^;#A6r@%oSf78neSl,9bN@2e0M:1hpmoA.NX?h^iqpJ@Qfj8I"@mM1<Eb&%3][ntL+8ZE\V)P4@,<7X3MS#O& %>UfX;M#*UX`?gJ/Sn#lmYp0Na>]dMBJ,7)kaeLF+E[F.R>:O8TW6U@I"0)p)4:GoHmj^,7b3F`3WKi?TCam,<)tEFJ:DN^u4%_"8 %DTNuD7\FU286-t_er:'OV-b(J-Dm5j>II3_n5='sLZI#WZnA-kYUqi3/e8nACLXBaMe#KVM;*iAc[NU18Q^<)G$?3<[P``kP*3F1 %Gk*^#FP*#rC.`Et1:3>%[RNMkCBh-uU_p'Hj-7Btd1/BY*Z<(sZ8e?3_LK_j7VZnGr3YV15KMfNSo %=VNIBa+t<T<>1S`H,9B&GWOCq%ZA>5+O]9Sf/D2Jf%EZDIK;D8a>)5Lg7)FE,s%NqTShFA]2cbLS!6VNEUdE[,dK %D]1P#NC<))p(@1Z2o7Q@9d>V&V>S>M`5?d`hqg0s1$hV)qqa0H-s!tm`aNd(*Kr'6H7/E`@rcJl['!p]Z*/DIN5OL/auHirhmeYj %q!P'6Rl=mq\i?*bG\r&+#F"tgD'F4RO(Yn$"(HnbFab8*AO(+F3E%G`Hse]orqY9P>X6'KKtP+]eV%'&lT%2%BSuPD`!QDirKh0f %4(Fk/q6fgAU4S%dH\tICS!ue)@?.80W%#[HBCj@m#N/lGV*C\tB`tpEcgh@E!pQN#ead.=,*4t]btUW<"aV9;Ci29&\&f6EBHQ3_ %,C"N/@@sk9^*Mb.;8j2OE7Lm\(U9:_A(o)%XCPQ)`TVO(2S]jrG-/:*4>S.`%T=PR&8[F:(\HM0qgbPcbDm+8*+=m$&UG"!,fu4m %HZ*3(%d;K?"[U.mo[$d9ZLsW0Nn9OBqP``^EX>_seS3(+g!F_S>TaK.0A!E7;m_U)0%Z&R]Qbu&%&DoVM1K-W]+')!b`^*%h5o`7 %>>2VV/.jY/`,%'S]:g`"A@BY$\J4K.>0':@3=5>G]YAcCMdUlU6q4CDfs^Lcfa,p@ppufX@!oi;9<^")$5P!YR%k0I^@7T`)isf1 %8[d7L[3XLB/N_ECFT.t9?@V,P/5Np8$AKj(_;)s7F7d9=KO^L/K\NVQ8g']XMn1XXfZE%,?erM %HDH[$A=-UE%;e3&](l&6<2_''^!qVUhD4t`JIHV*kBb`">N+M(#91f`O0)5n(r6eFHbF]@)2$:`E-3GD?0\X_X3"nO-8all4jaVH %LnVCidS&1+pUo!'NN(tsY`R`-%^I/XJ%ug2Y._15'L&,YD+b;99OK#]mA6n?Oph-00\]i`:S)e,ooZBs' %XutIdN#LCBGsXWo'SgN/PCm&+A.1,5R4EV,h7koA/oi!H?>3CAhA=JYQ!JApOL*TmqMk,/'&Q,HU7GVXP2;:lG%82eToRZY"NQd< %3,j3YD'7hZBsr2;\*&RGSoPF:^t#4@*O#'hh?T8T6$.ZV/;Xu$BHLYW^366>M"Z?:&G2)`J+1>&&snhlO_Ec,DlN:Ndb)om4h[\if`!8f],S[r]W0n8f`L[_DTnZ&,V %8,;^C($R7+OlUt4dQ(]d0cFW_;YGRl$-S%b1qO1iXfs31=&\hb7A#S/iEK/DJ8I#h0*HUcB"\+dg"3p/4a7qYHH)gOjYi--pEF+4S\gM`G;%=:/5IM?hSM7FRErDs1K$0HJO-A)EkA_Aj:8S9j3V'Gu*/lh>/u %M5AlAgrm^KZY)0@1`7/rBi>R[SX:7)0(I%A>J(q!h#0FD71cG06$YB*Z86j@TeRk*]o6[:S]7(e9!,e1_`DT^:/.#:'2!.'?g/$*V1LNSI7l&E%XsN_T0=*C %^<$9TrK]!MOY+gjq`5*KlM:2hng;kN-h\,#/TU-dL+]di^HpOGRUi#nlWI,L3%DgdiB/(SJ`gE*rpqhL,`gmcX5PV)c6,b-KhoU:XP!b';qnZ+[ZRZF05g-WJ0,3E0AF.]/)h6piqd_0so5 %7rkGZdkn\DBOn7+J1!C/JN-fPb?Y5=&k&['cQ=C2p_cI.^*PepXW-(IV8$P8Br=Jg0j,>PW&UlTc/X'm;N8p&uJ(/1b)"_ %UQUI,KN(;?@:O1T8sM!?QoaR5,]]oig29KE]:b$t(q6<&o3[,J&,,[i@F=KeJUBdJ-,pR1X:EbTf;/JfQYQ'/&$L"N&<#] %PEiP.bW6^%_^4"4!R;+JX?\G'ASIEc=[rs\lG>)LH9D0SIAJdt+bFMap1@<:Rjam'9)3YkT!loPn1MOFf7VmQ7IM,F4.imc:7eSR %3mPAriQYRP=9GHE?ce"7(BbH>+pkB/W_jMa68Z'F7n'lhF+)/U$L&9kU#%*(M"\-nLb[!-#k0H3E:0OTT=9$:Jti,k/$"/&3]pn` %IG$6!`]j!_jOL/gQHP*_.aApi6l`T!'jWo9jjcpgiQ0*+G2i^hmQZlal:Bomfl)U*AXHr#7[m%SJ9MDM3.Jb1mECt^Srnkd!r,'\uQR5i0?M5J3AF-0ht:@6mLJ*t#Uc\VMFVgi?.rJ0-D! %,52'lHhKKq/W(U$GLUGT,WWZ)1aq59MR9oO][(nR\-U5A5&Afn<4n&,k4i*Kqd.b_b+HrrUm\>kFK*=j0#npjYQT3%oQc0Y?KgeE %M+ftR_>I-I6Gs5\'KPj$^XW9A8D[bL^O)jg0(B;F@/8S+GZ+/!W=-(B+[R")kg@?ER2UAnd&_1qMYXfD0Lu!G-`QI_@eu[R^ICm] %/Z>#aFG_Z!8@5JNm>Ff(:L16m+^Yo[p^M(3=LW*3R>p\]i]=gu"HN,*aeK!!C(r&SYiZ/H-0Rl'>!2hBm/,^:pGm3%U %@+,:%26td[&s38XK5%O^bskIsO[:c8grHk3PdJ/#8,/4"Ct`;b?b#o]Vc<(P-7Wdt''Oa/OhW@7knaFq_;;qafpqm`.o)YBp%US@ %>8IioNGL@-nVLp2:tb\u$h!?YPs6`)U0'ZUct@R7;Sd?O&GK8/\6/_:eiKG(p9_I\m\RmojMISD#gth_Q)h-?ZW^.n1qm2&SF<#: %6=IkVs!gJicrDNQ3QE"!V(osJ88FqOSg5-d"StMh&N/`@3q-&ak\;16WGL>bl"#H[iMQ^u/b]+lCD94mn^@t?cIr*@dDu#2(sPC2 %Q!2L2,@^K[*&SqTkCKDN[[j0g7eiZ:.RGKLStgTP8N#@G<.PD=fa!mr7uk`W-k74sTE@[n7b(,cZF)r/lhk/6'RZT5597]MR&#)ri+$;>_IMjJa@#CnjCdu"tS5pXVN7lU3k+bRP,MIto+I2&BfmoID %ec_/!8^KKG.JOpIkc!PII=sW77sICQ7JCgbq$/0I'[3ds7tR(Nm7=P=V?mQ03l)ldNr83*jNm$oYE@'N=-(;B#kb,L_fsWUDo0a> %e0>c#LUfl;$3=IC47rl2@X)5PLi2*<4UPo#*m(ir4dq?!/F$*T'D3d-M0dZ;W)AClB,o;eYC4l %5EpJYnjGW-7.sJ@&ua`.I=Nbk<0(^$-gHgZ#PBLUR!+[dkl;;$RBjT6^:lbsk2.=NN5d@^P4!r?PaUe4RF**7bUgA47 %r!;to1W-@:$!u?9,KY+u.O8-\"FEg*;QHQ!%^B_`[3Mq169FJ5n6PE0\s[^UdUh,EZHsW!,KP_nCI]bB81#8GC0/)9EmCG\SpUMQl6qb,isPOYKC?rm2dFAlC6DIHH6735.&N1<5i9BNBVdYKFILUB@Q[o3Ss@cY1En@O+Tj-A'"Hp3VuP)5i5]Znb.7nA %]c(IFBZ>m/%M,h(Bl"-uFS*5@7Pk0g,\-&o:W>Hq9t<0LkR %1*?IP"@:M`bRqmCiIn(mUXJY5%Oh7+)$Bhr_!,0&1WJXD]9jb5#7e73$,h-);<+)Y!Z5Ga[7d]4VPWpQ^$!q3acU22[BuI6KQJq0 %`XB196W[S[b;!6?Nf,:5KSdWc::*>e+NK1;EMaV8IR:%M`_-h4YK[!B7Q^Rk"&2m7J>3\f>>;tDr.3S+nN.DIW_iSe/9E^]TrE(2%2_;VeamLMl* %WRN@o`R8#V(*u.o+>>7D/6^nCh*4$AU\oEY5A0*1\G*Bur%kmLatqRmE6Ro*rSUfK:43"na0fHpp(9i0h-6;:!a!&W40El_>.+,V %0]H11XDGqCCSksZqM>s-\BLH6:4GJs>\6Q,hIP%gZ]kh>9OM28D`r9b)ju4K=n=7^S!+8O*+EfK`,*]da.CUE?Jn`DMSZZ.$!F^3 %^ES9rmGoQAe/).hP*b_Oh?m^):`h3,W9g5@o?`ip_ti,ed?fSn7pjtaV.hfEdZGMUVTn7E44=Z7gH]^Ifd;#EDi%\@^r6&C6:<]' %aQ<'L9e6&jGgn62Up2,bJ,[biE(_FH %'iJA,FT6;0[m*^VK=lP/+c:0s:&,?r'GZ&@J_m4OdB&1%a0$LZkB?1;EYNsL@YCouUZ=V'?P%$$Aon0]/OeJ6)<;NeiMn&6$.!?^ %3\r;>os'0_(4EWWn8u4@OW>TH26,,ZW'enoTf>BAC=lJ-UN[&s0!*&/?F;A-4+Ia4_[rk %qccJHr9f"4*?D]:s&XXJQVTZ;F<[%9_XNGS_J([W8Uk%rpo!"\&/m5Q.`[ki&^7nj(2^9rVVn@oGaa"F(_jZo*'q %?$)]jUAM-lXF[RuaSf1c@sj;k:-/_/.Do8'NrW"X^/=C6Tg)fZ5M#fiD:*!K+ob$Hfu@6T=?2V_%[pbJZ9\q4qE+8C?*//o83PI1S_Y'qRP_m=h$Y-&q3$^;ca3Q'=:'AZT5u7h?=`nCKd!LM66Xh']$5;`;cd@aXNqQ %>[Pl4D6gmM7btQ_/0O3JL><";C/76`01Y=j"af]]@IS3XL&?>gm^H6%Bk-M;t[pF %h]YSOrfPOHoQ](F/->aSj@]XiL_RqY'c\+un\P@B]-GGI+?6CXLo5p6iJhD8sl %,WV5H/;bb[+c/[K-2^t<3!:Vie?^m3\8?qFQLpXdfKgZ7p?kju&0pKWS)Dt]/T7.KL^t(lH/UY4>(8=_nA&8c))g9ZD[8BP %gfbc3"=Hs#UrR23XLNn7mIosHn6oZ$h9q9U"eD!mRGK:SAGCHgQ&"JGE:n6+&'N]n\WX)l'RY.N-d((^;"bm+kGir(FS\f:D6Z8t(gSfY_Wi+0"AmZE#O=fjT.f-s!WtT7RS,mrstcXuY*hJF_eG_or"AZg"dEr*gPM2k=QO$n?u71G!Imk!l)@*gX9f@O6Bq.JW,t:(08.&+`FsH]NsX %rXYWMqYU<\J,bSEr6,$LJ,B$p^\Q-PT76X/J,&W]s8+I!ppVn@s5h_%J,R97rquR&^\i["U7_H-rQF@gs5iENBpPAUs8&r!ra.ph %bLZThTDnAQs68#4#:?^Uec~> %AI9_PrivateDataEnd eina-1.7.10/doc/img/eina_inlist-node_eg2-list-inlist.png0000664000175000017500000006244412175475327017744 00000000000000PNG  IHDR/`_tEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp 2aIDATxU}cm j 6Aicpe,`0[$Ye6kPdP+$ &vBۭʴvlp9#?ι{}:׼;$I$IRUC I$I$I$I4$I$ ^H$IJ3x!I$I*$I$I4$I$Үmĉ߽I$IA[x5͖B$I$U I$ITi/$I$IR$I$IfB$I$U I$ITi/$I$IR$I$IfB$I$UڵI4*.]0gΜl̙c{,Μ9Ϙ1#;wIR$;v4*meϟmڴ)۵kW͛oʕ+c=?fYKG7EeׯjC}wݨd2lg41hUeϝ;%K,p|ݕ+WuwٳgUߛ}gVǹcӍue+Vȏ]*blψLjrq>[$$a4Wf͚ *ͺXُ0V~>\& f+i}~+2p'ۧ5ۍ#/s3eFpʣ>Á;%IueIȡɕ2Ac@ѬrG#0>|#SOHxۚJУc-)T^ʏa෥ETD"i6.J;e]%%\9$I2x!IҀ؂H*TNUi0pSOǶ jt-/f ^O>D%~nPi'8 BJ1e[Tι|7~ƍ{䕀߽MT~vێYL$I I*f1T >p_6ft')r<%TlWGı` ϋ3q4E$>7G`J{!X~;w[J]-"0ngBdBcPXlxǯ߁Jq:E`E Le|aL*iWtV ;{3-g8>EMRw&0ױ4x/ ѽP*k]g-X0$ՅvJj)L?| ҙBXRQ-ò'GEJ(LCWhY_Dz#1 $Sz?8ǀ2lnE8g^1W UTW$ΗuTYl A #6JfA!b[V1"9CKǹ4  HwlAiJ{1wRi'--"E+fuLZeӼ6S҂M7\?$Inݺtŋ)Ik>я敶f7*/})_~=C+LZdtJ~k;3,zi7fߋvr U+ϟ{y 14_#@~;o??n9Ec,|+N6FKo;>?wܑW_~doFཝ$IU4{mM#N'N~n'I$Im4[$I$ ^H$IJ3x!I$I*$I$I4$I$ ^H$IJB}:۴iF$I$I}?x{<@ 3 ^gʕ+N|qBK uc^,]4{5>-/$I$U-ܒ_|rei۶my0 *T^@"3 TPY{zL >ol}"y@@j…yWׯ_c҂1/8f4k׮d͚5l$ǎ37a I$Is6lؐs=ٖ-[yM y ʂ<xZZp#(cǎ|9륭xt`w9Fh1 l/Jq'-.q(>T}ޫWΏ qj}QlAp`DQ:iuBB"$W$IF̃FP *Š]5Z,X1bhzin{Ķ5/~^#p16tt$iW$Iյu֫^5ƩS%xA! ̓`hlx^ÞAKѣ]w5Aar I$IFg^yR-0|'|R-/$I$UάY+\QXt(1@f?Z0GTʔ~GƈOG}yJ4 `xe}lQonhiA*WuR=\XlFv,d$I6hOSR*t Ip#TcJT.\ߓ6gY.Z  8B}sb8kF߿:OTØ*$I$u+HDPJ[tI+r\EЂ s|;bҴb٪7nܘom!xX7Z}6[7Zj0 ky&'#8q[4zQ%eRˣ?Fi1/$I$IR$I$IfB$I$U I$ITi/$I$IR$I$IfB$I$U I$ITi/$I$IR$I$IfB$I$UڵI$IupBM|8wl͚5ץ1x!I$I# E*=MLLxPT[v$I$IfB$I$U I$ITi/$I$IR$I$IfB$I$U I$ITi/$I$IR$I$IfB˗=ƒO)/$i̜(.]+T͛7E}n6e|V-UgϞ|L ǍΝ;9sۋdMFі-[<$I#h-/ WS- @עEhТ` Н֮]y,k=c AhNr8Vqx|ر8E~l$I$IeՀD2Tnx:`z$|.@Vگmtӓ<@J?$I$I0n#1`gm6cc5НVTy~ۨ$I*CwVJN];_ԩSy`èdZ@ #8hF'hqv |-*s$Ieg7SKQ!!E͂b\ ey-U5o$itТ5f4)WF(SF|N#t-+HR9Fe0wzU:+ǩj d2\ɏ. ` Z0kt w|RC\*vj 3Ɗ@ ɟGmı)N!"퓀>O'&Iŋy^611xO8 ]qi!^oʕ2͚cpqb4]x-mKm}_mLv(7MpѣG'7~ / su'qu:zuS΍ԧ8GΙ[nmV8[/t5?^>яc^h2]`~$֟fdz뮻.~_1&cg oFvwd{o l++55m'~^fa_u6H0Yw_r\CloٳyLQzIoqٳgO*:eUx72(sP`L|%;^~F6e  %b<3/'Xv)Q.!He.\'A*Ow͛77sN1-(@p!GΡ\`={~lܻem͖EVEq$ إ.>+U\Uk|DLFVe)'D"kǠݾIҸǭȫ" qZwRIVQXfM@viT\|-:VY`Aޒ.Cq8r.<{=?N͵uM/I#Bfp -gb8W|Z? Z~l"߯qKJ["ݥZ+yl%HU3Dp]>4cE5kN2UJPA; S4(P8EaO 4qŅu)^svcGm۶66(Xr}`k_c,+hܷ#$_|IQ@LǑa ^zNb۶;4L\NsoC/="pmnYi~䭼?z"]iMW79-Z}O;3c9q!ǐG%LϏ/$I@( >(D+1 K,FR@C @AY1*7b(^Z&P-&ߍe<.^j&=gՍ.z.">3 R01Y &G4Cs YB:S`_ }Iy {RkNn1byɍJ~2,g^Ywb?b?iQgFi+u|GVp>` IRE᦬n[WT(Pp)^Q($sOEw z8 |T xquX+6Jxx-[]+U iPL"+ ! FG< YB;S;㈆mTyG@HxGE`|VK'^ZV1%o4X-6ǰ m裏6GT ^HTY64ZbpbyZ8jUb] qe4nSrvVǬ4`Н)pqőV\6@O!>N93 Z9/[ug:y*!*6G/y ^󶴫ʨU6iǴ;bfL$ibL╚vc>H-MNlf(4 Ÿ`Q/Tٹ]ٸ{cB>ir4gqO?٢f> q&\5[iQר.;ETkTE׾=٬Y*_[y]9b ߨ2yVdugϞ==3W'$3>hMg(1z l(+00[rMNm3^/v)+Uq $._}(`Fm|*bϘ)׋EyV|ڣyA1Gq]45?v-d6lΞ=kB4I$)dQXPH!.EaL4'(4 51G>hBteKW((sT]s8~uNNR}q5ӟtv]w5 JFpC8O>d ݽ v$-|P0"P]EbNGsh(Pr~ Vv)P@#^nCtVm3]|>1T2}R9fHx >oMLp4"(Ie"Z`Pz衇*9r>\ Sl*y1"ϊ F$"iF_yO:=y#ocx]g> Mb6  bL1Ny[V|O]3PuQ>_6`kL]TS<$/< PdZQHD@DL{YOJ!,U+NGs]2Equ, [|g։+hޛ#n94;ۦofg;M%*me1o޼_վϋyg O^, x_>+;w׍3x-iR#vt!xQ_ug>GPl#- `֬Y~fS3_Pqw)]V;) B44KzRZ-7)Xn7"sV V( vz /@SGA+HwL:7(wMy!I4JMu0 $UW^y%ۿhyBbwM21o,^gE'6"I4T30˜]R5djTh5H"@:G:^2Ė$M3]x 1,$iԐ1A@w_|1sxu˖$UM ݈/$I$IfB$I$U I$ITi/$I$IR$I$IfB$I$U I$ITi/$I$IR]!sB={փ ikw"Q$IZ1x!֭[=$IF hyiKI$I"Rp =VG$I$ ^H56lժUcnb|^[=LIRet2X'yT7/{ٳg}D*m۶lǎIRm曻~lcݛ=yz$u.i^NVJU`B0 A^x&(j(V0q+^y"}FA>!]mcܑZ$$u|-wD,@7b Z6mʖ/_?H&b܌ݻw&ye["pk_Zi̕a7ѣG._fM6o޼n(Qȣ?oXRS wF^zթm;uIoy睵*1VEAxcthUkqVn6['b Im͸BYٮ|)Zm0SbyFvJKTP/]СCٕ+Wy:ܳ㓖}Νjv9e5 us8pu0}U i*ې =Wq~sIs[o9Xre^\9f8?]vtFx͛'3#_tՍۊc+@Fٛm GU$92o I( iS~By]4h]A"-|:m/[,_'RRP(p]% v12n c. ($Wx=f`ېsAXҌҥK=kTD  t:^z)Oǜ;O:uylq@bu \DC|A^Ec[Ny21SyK_'?eAµحD2x!Iӌ@C*Hz|9 ,WSpb\^D !7.Ǿlf}نTGyscǎ5Ι"G939<9!i1A@|lPFY^ۗ ^HRE]DD6lP^PX ϣnKFHH, ΃qNViCf ^HRf}УWU2"iH[lIeD W ˞E`ri_T>3x]HĕJHcTت=?VfVu$eD)J4(8G"?mսhUNw|5 l.#FQ:}cL%*x`1Au(0:ˈ$S4HЁV\U`&y>:Ku.#FGy$?<֪{Q΃ɀq_<]F$I0x!il`PMѲ&"ƱH _WK xcc!IUtf͚IAfA^p>+W$t@aXISf˴j-A8S JԎc^H$IJ3x!i,lٖ4E$UF$˗{$YW:I-/$I$IRBFБ#G^fP75kRp%o33S311QmI'cbI8{Ad' w^$k1ӯo,Ioa1x!I$I*$I$I4$I$ ^H$IJC^1޽{G^cXvZ$I$i ^gȿ$IAۈ$I$I4$I$ ^H$IJ3x!I$I*$I$I4$I$ ^H$IJ3x!I$I*$I$I4$I$ ^H$IJ3x!I$I*$I$I4$I$ ^H$IJ3x!I$I*$I$I4$I$ ^H$IJ3x!I$uiǎ3gd.]JR $IRh`{D ^HR9$I$ҮH$I9w\vɓ3gf˖-˖/_?rJo߾ԩSsfk֬y/=[dU$Izk׮M6e8㥗^+W̗cΝ=9s䏹=T` I$-V,]4֭kaq<(-*b;v,_뼗@G I1x!I$ڵk1'Ԃ  Ib…H3x!I$*:?HD}Ak={iA ֗$fB$ItXbEH7褋H;l!I$Izp>ZW#)DfYFbL IRk/$IL!ta< 1)Ӣ`--n馼K nVFG$i2$IR@DaѢEٲe Tlܸ1hA;y/Lbӫ")W%I$IԥM6MzR1`j$I$Iȑ#$I$I#ѣ٧?쮻jL\g/$I$IQ[n%۶m[vٮĉM3?to= 94M8̛7! 9s$gЇV$P=A߆Q4x!I5A, ]ӧL)q#ɐ̃)kܧ3ƦM<k(̥- dH?THS2T|"}֭[\IFD |\%͐瑇EZ3I%ISL:o{<,9Ǽ4ҫEɦn m,[TȔ"bŊ<6(JJNꦛn tjiiy (FҔ6>"J7[0I%#"dY{D/M])܏Ⱥ;v\E}%u5Koޤh]Xv},7|쁺 ʹ7h\2,Jvw 3@(B= Sl~/9[j;?v[~Ϗ{ަ s[uKoGݡ}ǿ&1'A^ ?i~|g|{>O\2nݕJo4oi4t~d_h׽jeI{~.=zt(S_g1R $Fob3 t4 3Yf:QI4 6p[ j7۪os 8(EHOTt~ăR W?ϴ7_r~܆-[o['h΀FNo:i>2tq~,Y ^D"fYr9$ #,Jڕ(>E4֢`m {: 6 s[qJ#(ŕ' n`PQ5*XٳU>O$k[7p?`A|:ƿ -HcEoNGn6u-b\ M`eIԷ 'F}fTuFf@2POp\-i"#V6l(z.($-M tEtFz~H_Uz}`E<^#] 7pN8-0LEq[o?,$HYJ,ٝkyf =PFTG?Q1c^^6ȑ#Cim۶l˖-.òk%hP(Et|*}c2nf4B|;ٽ[}n)|ԭ{ձ'*F戮^WV!lz]OSϢFZK&7Ʊַ5 >*׿z뭍}CCH/(!0xk-w Ij -.՝^tlʡzkdzZ_lj< ^z,?6"Iӄ+/X. aBUCR`7p1 U?c~_߿ݬ"U\U maB@Yƃ0\`*F]|y?}h;zEz'6AC0)]w5鍼fӑBP{4M͛APf֭yC+] B4$1NA.4Tt i$id]9慤JSVMO (|uծb'xb+.[8zUd j6ʮDSO=瞱>1fFk}c \4s?'p V;߇ޢ [K~|ݻw.نo.-KM61 Il&mdP2|0/ԍ}eO Ф} V4[,sz#=Hhbe9Ƞ[08m o P՗ܗ/.^bi@~SkSETժ8yWzEbv[xN:J +ߎ4FZ#譒TL/n+_J6zJ.z6ic*ۢX~`QQUegy&OoG5}yZm^~3Z*_>V4@ ӽ_zf4G&' \F?Z\nIV\ٶHA.w} ~-ӛ'pQLoR鍊V'Wʗ2Heʩl鷛i9 !-Gu/p i(D E_p?J_"M*B_rDžb`VִRg%4;//;n^L[7[6"PЯ"B嫯jYҲ IYS-4"NtB)pɶ̙3]/c\p՗ u[.HokT|-\t)O7CmEYe^Ƹm]r%/O;wS/!7"~;G~Xd6!D3oq+s124h)MN_}Q!cOGP~<6t~`{e"]e˖ImPp`87*f5*TQ؋{F~hȇ.Ko*o` .D*"ݯoʒ J`UYU~JY4J4DZ(c?b {\7[^HӄB]:]ڝwޙgD'#H=쳓22N>w!!2sH g+73իӂ+: *aTQऀ`4G pWYnG -JoӮ"[Any巾ezS'Hn%ׯ_efeIaVeI_B~-)k4lI4M3 ]?: "Tx H᳟Uc\Y3wF"^ QЯ&V"m m __8FR?ǝ?IjZ哑DZʹ E nFh՜/"i$ Ӂw3bmHЯBA "1FuAKin's RdTo >$+K$=ߘ1*R`im|ɓ'dh-/hDunŹSNx-F.2annRdQy.\mذTEUqc>3LݻPcCNڝhaA".(ʐ"m()pNfYdI1i+wuWvy@W"". y4#+h6HTEWX[ K7gq$+%pjPnU<ϞJÇ|ֆCŀҸ.:mm~J`b#1-|ɖ/t -ISUm۶M dD*Fy-p&N[|^ (+ {'fz8. *n[1> %(/!2ilZ.EZkFF~Jњ#BMc7't_ײ,35 t-  If 4D3gӛiM贉{7ݼxNiGǎ3ilZ.V鍴C`>mĶ<ҕMU0R~TNi%Vd8' ybYӱXicTN t28'jW,NH." (4t7!Y+Rh-nu"͐bug1Hat2iVvHn']mܨX'CF F"9сj>B(fHgiugty'y \YB2tc= zf8vSvH3t-=Zllٲ|_qE8s ~ūR7n̯bE+(+Sn/} \DzK[&[]!e-*\_D~_#ߟvU1J+pH[ٴ,^x&-OfIL]OX$i(h9IG"ZT$SJ8|rgϞ/ZbMQJĢUi0Y@Ǹʱx衇SVn/ ?x{ZHl^X,qB9ffQ|[W??bzK.VlyUHCkvy?eI*Xv iJi}ŴۥHi,+KR?ۼysik4e4,&# 8nP([n%ƒG` y?k_b5&p1ĝnkQ"4Zf`~v$eHe1.=u'}JHs#"zuSۻwUW 4}1Nkx:i.jjʎ۠0M#SOLo.2$-Z[nm~%2x1dt!QTuQkʂJѣGG;g?k \LOYrT/ٯ~I[?U{L7en \4bYAZ,gft`D{=R1 ?-,(,{V]iMF%Gں#FURi \NY eSEfV$l GT^) \ z[lz3p1 x!lӕ:]z ^PDA9>re\zg|pDY+V4}d]IRs4*3g|B2p1ےjhD#e Ttnϗ$(.1p! /<=jyVq:\rxm\4ӪI$˘,_W]zy|#.Hʇ%#zmBk=r0ׯ_7uhʲe˲+W۷ѰӰט:4}3%͛=0paz4i*޸7z8x`;U2!?W$i- V̖%4u2 \}:ˊeIZdDA%qwwj:2MLXydNis?O_&#(sE* eIM7tU7?hy*`gYRt3xQ1e#GpUfv¦̏~r^_Iorfiz+E]TZɴH ۯ݉'|4pկnmVWdz+/O#׬,:U??eϠzW~WfCS`bVXܣ>gB1Flc޽}mGrx~=MAUH31Í~¼ b[є ;K_ s=7-1` Wz&Ӫfz7c=DއE魚mmlƍy $ˢ,IzL xN-KJ2xeEfR,Q?|lݺuyL#~>Ƒ4;m۶eGiFjG,E'h7'"8\H[LtRe[fy6'5!+Sd4\4tcݻwg/r>n_=Ϟ~ NАҸ0x! і-[<H i}"Q$c^H/](W8ۈ$b@3n֨X8*%[Y'ly!Iue* zE0?>ӱg$&$? Ƒ-/$IDǺ0p! vA;L;-OciBT;.(1ˈWb L׉VO0IìYE.hd 'ڡzdhaJLHkhsn#UlT7/$IB"3"{-1B%ƍӧO-0H[1I~0x!M*Pg@H}]Eq hseg9-. \H'~2x!MJH[|A<) H$IJ3x!I$I*n# FwM2IusIٳ٭Q/Nax̚5`FӛMaYhM_ƒ06"I$I*$I$I4$I$B~:={v|=Aj*ԥ3gi… 7ܐbzK!=ϟzHo-^& Ebz,q` i</(=2 txn:eany@Gnَ֭;&Uu'LoR6mdYRcϖҀ x0/[k6:WV&THki 7K)%H?>7vܙ+.%5N ^HԮp^?.8"*SoF*6 Mn#Z!pA!oŊyB`PiR믿>^X;cɐV'`\K/Z51.W`Hgԛ1 7$K4VR֜ѡ1 ;9ƿ(. W1sӛ9,'7?%]G/,KjQΞy$G!.Ǡe8:y+Ȓ:HE>%ӛԻ_~-Kj8`4A(F| dD%U)*D0hA?> =R6nܘO΍`ŋ|,ͻLoeI ^HCB̥; 5[ը8u4.\'͑Ik+K]TOkzW,qaBݻwN+Qԑ"*W@"Q@MNyҲƅc^H$IJ3x!I$I*n#>_Bo{ =7 nz36,?_4Pjv뭷z F n HCgM/|  fI$ITi/$I$IR$I$IO|if̘azLoR̞=ۃ +$I$IfB$I$U I$ITi/$I$IR$I$IfB$I$U I$ITi/$I$IR$I$IfB$I$U I$ITi/$I$IR$I$IfB$I$U I$ITi/$I$IR$I$IfB$I$U I$ITi/$I$IR];7ٳ'7o^3gOZ?i/5kVvlڵqI$Iԕ)/\LLL䏿gs>O49sf|&~$I$IZF\кE.ڹtR:@oƹs粃f'O% AN~+W^t}4j$I$;=/ \nC5*T;VcucΝy+)t٩*wH0E8E$IdFu) \|n櫶AxTC\ѿ 6*3%K\UO+Njf2:gΜ|[o/W^|Ǿgft{mvb[űIv 4+Og_$].oı5ޟnO~ߗ5}oK?7]?$I$?`DO}Sel*λvjQD }tB'zJk;vAX/ZLUtD^ϱx-(b{y#Nk4;^,uX>.n6bl?l9/>+{+>/l+>ߊo\ܿnO}i#}>qXK$Iz7i0b* rcҥDCq9RF""e2DdhRrMHDg-=VuW]Z}¸lW'mu˷GGG;WWW=ou&m{T@I$`\;z~n6=7 rkEcl9K__?;^$ noo}L_ROdrv W-ɳ{zzZYgjV7WK/۞H+\j"cҎ3I^lHP7GNH=}r+N$6MI|l* ,"ɂ߿oI8ɄmIB% +3;,`;>&l&J վj9@{M{Ն=)6/okA WJ4"N0YQIUۙ:kS̚g#05?gH}я_3/Smv,Y uru"HX;ZmH{soɐ/K5ڤ?SHS-q)cujolD:f`b1?sxx89qїo[ F=~u PBdz{[G1Vgo(1Q cmjDoF!(uFo{mcRǧjϺ>oҟ[ev\SzTB\Aɋ)3.V%/ؾJ^) _Y𲑟?.ooo%$Y Ъe5 噯)|6|8yqzzjG!L5 `$/Yfmi#FتUɋU(e `$/YfM5 `$/Yf,6s0]IENDB`eina-1.7.10/doc/img/head_bg.png0000664000175000017500000000032612175475327013055 00000000000000PNG  IHDRKtlsRGB pHYs  tIME $ VmhIDAT(͏10|!`wh &:tp$6NPM4@I9 1nl,$iձif#but&e$qɴeimЬJhrIENDB`eina-1.7.10/doc/img/eina_inlist-node_eg2-my-struct.eps0000664000175000017500000214266712175475327017453 00000000000000%!PS-Adobe-3.1 EPSF-3.0 %ADO_DSC_Encoding: MacOS Roman %%Title: diagramas_01-08.eps %%Creator: Adobe Illustrator(R) 14.0 %%For: Marina Proni %%CreationDate: 6/17/11 %%BoundingBox: 0 0 443 260 %%HiResBoundingBox: 0 0 442.7871 260 %%CropBox: 0 0 442.7871 260 %%LanguageLevel: 2 %%DocumentData: Clean7Bit %ADOBeginClientInjection: DocumentHeader "AI11EPS" %%AI8_CreatorVersion: 14.0.0 %AI9_PrintingDataBegin %ADO_BuildNumber: Adobe Illustrator(R) 14.0.0 x367 R agm 4.4890 ct 5.1541 %ADO_ContainsXMP: MainFirst %ADOEndClientInjection: DocumentHeader "AI11EPS" %%Pages: 1 %%DocumentNeededResources: %%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0 %%+ procset Adobe_CoolType_Utility_T42 1.0 0 %%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%+ procset Adobe_CoolType_Core 2.31 0 %%+ procset Adobe_AGM_Core 2.0 0 %%+ procset Adobe_AGM_Utils 1.0 0 %%DocumentFonts: %%DocumentNeededFonts: %%DocumentNeededFeatures: %%DocumentSuppliedFeatures: %%DocumentProcessColors: Cyan Magenta Yellow Black %%DocumentCustomColors: %%CMYKCustomColor: %%RGBCustomColor: %%EndComments %%BeginDefaults %%ViewingOrientation: 1 0 0 1 %%EndDefaults %%BeginProlog %%BeginResource: procset Adobe_AGM_Utils 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known {currentpacking true setpacking}if userdict/Adobe_AGM_Utils 75 dict dup begin put /bdf {bind def}bind def /nd{null def}bdf /xdf {exch def}bdf /ldf {load def}bdf /ddf {put}bdf /xddf {3 -1 roll put}bdf /xpt {exch put}bdf /ndf { exch dup where{ pop pop pop }{ xdf }ifelse }def /cdndf { exch dup currentdict exch known{ pop pop }{ exch def }ifelse }def /gx {get exec}bdf /ps_level /languagelevel where{ pop systemdict/languagelevel gx }{ 1 }ifelse def /level2 ps_level 2 ge def /level3 ps_level 3 ge def /ps_version {version cvr}stopped{-1}if def /set_gvm {currentglobal exch setglobal}bdf /reset_gvm {setglobal}bdf /makereadonlyarray { /packedarray where{pop packedarray }{ array astore readonly}ifelse }bdf /map_reserved_ink_name { dup type/stringtype eq{ dup/Red eq{ pop(_Red_) }{ dup/Green eq{ pop(_Green_) }{ dup/Blue eq{ pop(_Blue_) }{ dup()cvn eq{ pop(Process) }if }ifelse }ifelse }ifelse }if }bdf /AGMUTIL_GSTATE 22 dict def /get_gstate { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_clr_spc currentcolorspace def /AGMUTIL_GSTATE_clr_indx 0 def /AGMUTIL_GSTATE_clr_comps 12 array def mark currentcolor counttomark {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop /AGMUTIL_GSTATE_fnt rootfont def /AGMUTIL_GSTATE_lw currentlinewidth def /AGMUTIL_GSTATE_lc currentlinecap def /AGMUTIL_GSTATE_lj currentlinejoin def /AGMUTIL_GSTATE_ml currentmiterlimit def currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf /AGMUTIL_GSTATE_sa currentstrokeadjust def /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def /AGMUTIL_GSTATE_op currentoverprint def /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf /AGMUTIL_GSTATE_ht currenthalftone def /AGMUTIL_GSTATE_flt currentflat def end }def /set_gstate { AGMUTIL_GSTATE begin AGMUTIL_GSTATE_clr_spc setcolorspace AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor AGMUTIL_GSTATE_fnt setfont AGMUTIL_GSTATE_lw setlinewidth AGMUTIL_GSTATE_lc setlinecap AGMUTIL_GSTATE_lj setlinejoin AGMUTIL_GSTATE_ml setmiterlimit AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash AGMUTIL_GSTATE_sa setstrokeadjust AGMUTIL_GSTATE_clr_rnd setcolorrendering AGMUTIL_GSTATE_op setoverprint AGMUTIL_GSTATE_bg cvx setblackgeneration AGMUTIL_GSTATE_ucr cvx setundercolorremoval AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or { currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne { mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark }if }{ AGMUTIL_GSTATE_ht sethalftone }ifelse AGMUTIL_GSTATE_flt setflat end }def /get_gstate_and_matrix { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_ctm matrix currentmatrix def end get_gstate }def /set_gstate_and_matrix { set_gstate AGMUTIL_GSTATE begin AGMUTIL_GSTATE_ctm setmatrix end }def /AGMUTIL_str256 256 string def /AGMUTIL_src256 256 string def /AGMUTIL_dst64 64 string def /AGMUTIL_srcLen nd /AGMUTIL_ndx nd /AGMUTIL_cpd nd /capture_cpd{ //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf }def /thold_halftone { level3 {sethalftone currenthalftone} { dup/HalftoneType get 3 eq { sethalftone currenthalftone }{ begin Width Height mul{ Thresholds read{pop}if }repeat end currenthalftone }ifelse }ifelse }def /rdcmntline { currentfile AGMUTIL_str256 readline pop (%)anchorsearch{pop}if }bdf /filter_cmyk { dup type/filetype ne{ exch()/SubFileDecode filter }{ exch pop } ifelse [ exch { AGMUTIL_src256 readstring pop dup length/AGMUTIL_srcLen exch def /AGMUTIL_ndx 0 def AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{ 1 index exch get AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put /AGMUTIL_ndx AGMUTIL_ndx 1 add def }for pop AGMUTIL_dst64 0 AGMUTIL_ndx getinterval } bind /exec cvx ]cvx }bdf /filter_indexed_devn { cvi Names length mul names_index add Lookup exch get }bdf /filter_devn { 4 dict begin /srcStr xdf /dstStr xdf dup type/filetype ne{ 0()/SubFileDecode filter }if [ exch [ /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx currentdict/srcStr get/readstring cvx/pop cvx /dup cvx/length cvx 0/gt cvx[ Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx names_index Names length currentdict/srcStr get length 1 sub{ 1/index cvx/exch cvx/get cvx currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx }for currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx ]cvx/if cvx /end cvx ]cvx bind /exec cvx ]cvx end }bdf /AGMUTIL_imagefile nd /read_image_file { AGMUTIL_imagefile 0 setfileposition 10 dict begin /imageDict xdf /imbufLen Width BitsPerComponent mul 7 add 8 idiv def /imbufIdx 0 def /origDataSource imageDict/DataSource get def /origMultipleDataSources imageDict/MultipleDataSources get def /origDecode imageDict/Decode get def /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse { /imbufCnt imageDict/DataSource get length def /imbufs imbufCnt array def 0 1 imbufCnt 1 sub{ /imbufIdx xdf imbufs imbufIdx imbufLen string put imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put }for DeviceN_PS2{ imageDict begin /DataSource[DataSource/devn_sep_datasource cvx]cvx def /MultipleDataSources false def /Decode[0 1]def end }if }{ /imbuf imbufLen string def Indexed_DeviceN level3 not and DeviceN_NoneName or{ /srcDataStrs[imageDict begin currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi string }repeat end]def imageDict begin /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def /Decode[0 1]def end }{ imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put imageDict/Decode[0 1]put }ifelse }ifelse imageDict exch load exec imageDict/DataSource origDataSource put imageDict/MultipleDataSources origMultipleDataSources put imageDict/Decode origDecode put end }bdf /write_image_file { begin {(AGMUTIL_imagefile)(w+)file}stopped{ false }{ Adobe_AGM_Utils/AGMUTIL_imagefile xddf 2 dict begin /imbufLen Width BitsPerComponent mul 7 add 8 idiv def MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{ /imbuf imbufLen string def }if 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{ pop MultipleDataSources{ 0 1 DataSource length 1 sub{ DataSource type dup /arraytype eq{ pop DataSource exch gx }{ /filetype eq{ DataSource exch get imbuf readstring pop }{ DataSource exch get }ifelse }ifelse AGMUTIL_imagefile exch writestring }for }{ DataSource type dup /arraytype eq{ pop DataSource exec }{ /filetype eq{ DataSource imbuf readstring pop }{ DataSource }ifelse }ifelse AGMUTIL_imagefile exch writestring }ifelse }for end true }ifelse end }bdf /close_image_file { AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile }def statusdict/product known userdict/AGMP_current_show known not and{ /pstr statusdict/product get def pstr(HP LaserJet 2200)eq pstr(HP LaserJet 4000 Series)eq or pstr(HP LaserJet 4050 Series )eq or pstr(HP LaserJet 8000 Series)eq or pstr(HP LaserJet 8100 Series)eq or pstr(HP LaserJet 8150 Series)eq or pstr(HP LaserJet 5000 Series)eq or pstr(HP LaserJet 5100 Series)eq or pstr(HP Color LaserJet 4500)eq or pstr(HP Color LaserJet 4600)eq or pstr(HP LaserJet 5Si)eq or pstr(HP LaserJet 1200 Series)eq or pstr(HP LaserJet 1300 Series)eq or pstr(HP LaserJet 4100 Series)eq or { userdict/AGMP_current_show/show load put userdict/show{ currentcolorspace 0 get /Pattern eq {false charpath f} {AGMP_current_show}ifelse }put }if currentdict/pstr undef }if /consumeimagedata { begin AGMIMG_init_common currentdict/MultipleDataSources known not {/MultipleDataSources false def}if MultipleDataSources { DataSource 0 get type dup/filetype eq { 1 dict begin /flushbuffer Width cvi string def 1 1 Height cvi { pop 0 1 DataSource length 1 sub { DataSource exch get flushbuffer readstring pop pop }for }for end }if dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and { Width Height mul cvi { 0 1 DataSource length 1 sub {dup DataSource exch gx length exch 0 ne{pop}if}for dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if } { /DataSource load type dup/filetype eq { 1 dict begin /flushbuffer Width Decode length 2 idiv mul cvi string def 1 1 Height{pop DataSource flushbuffer readstring pop pop}for end }if dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and { Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul { DataSource length dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if }ifelse end }bdf /addprocs { 2{/exec load}repeat 3 1 roll [5 1 roll]bind cvx }def /modify_halftone_xfer { currenthalftone dup length dict copy begin currentdict 2 index known{ 1 index load dup length dict copy begin currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end def currentdict end sethalftone }{ currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end sethalftone pop }ifelse }def /clonearray { dup xcheck exch dup length array exch Adobe_AGM_Core/AGMCORE_tmp -1 ddf { Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf dup type/dicttype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonedict Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if dup type/arraytype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonearray Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if exch dup Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put }forall exch{cvx}if }bdf /clonedict { dup length dict begin { dup type/dicttype eq {clonedict}if dup type/arraytype eq {clonearray}if def }forall currentdict end }bdf /DeviceN_PS2 { /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and }bdf /Indexed_DeviceN { /indexed_colorspace_dict AGMCORE_gget dup null ne{ dup/CSDBase known{ /CSDBase get/CSD get_res/Names known }{ pop false }ifelse }{ pop false }ifelse }bdf /DeviceN_NoneName { /Names where{ pop false Names { (None)eq or }forall }{ false }ifelse }bdf /DeviceN_PS2_inRip_seps { /AGMCORE_in_rip_sep where { pop dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and { /currentcolorspace exch AGMCORE_gput false }{ true }ifelse }{ true }ifelse }{ true }ifelse }bdf /base_colorspace_type { dup type/arraytype eq{0 get}if }bdf /currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse { /pdfmark_5{cleartomark}bind def }{ /pdfmark_5{pdfmark}bind def }ifelse /ReadBypdfmark_5 { currentfile exch 0 exch/SubFileDecode filter /currentdistillerparams where {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse {flushfile cleartomark} {/PUT pdfmark}ifelse }bdf /ReadBypdfmark_5_string { 2 dict begin /makerString exch def string/tmpString exch def { currentfile tmpString readline not{pop exit}if makerString anchorsearch { pop pop cleartomark exit }{ 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5 }ifelse }loop end }bdf /xpdfm { { dup 0 get/Label eq { aload length[exch 1 add 1 roll/PAGELABEL }{ aload pop [{ThisPage}<<5 -2 roll>>/PUT }ifelse pdfmark_5 }forall }bdf /lmt{ dup 2 index le{exch}if pop dup 2 index ge{exch}if pop }bdf /int{ dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop }bdf /ds{ Adobe_AGM_Utils begin }bdf /dt{ currentdict Adobe_AGM_Utils eq{ end }if }bdf systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_AGM_Core 2.0 0 %%Version: 2.0 0 %%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Core 209 dict dup begin put /Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def /AGMCORE_str256 256 string def /AGMCORE_save nd /AGMCORE_graphicsave nd /AGMCORE_c 0 def /AGMCORE_m 0 def /AGMCORE_y 0 def /AGMCORE_k 0 def /AGMCORE_cmykbuf 4 array def /AGMCORE_screen[currentscreen]cvx def /AGMCORE_tmp 0 def /AGMCORE_&setgray nd /AGMCORE_&setcolor nd /AGMCORE_&setcolorspace nd /AGMCORE_&setcmykcolor nd /AGMCORE_cyan_plate nd /AGMCORE_magenta_plate nd /AGMCORE_yellow_plate nd /AGMCORE_black_plate nd /AGMCORE_plate_ndx nd /AGMCORE_get_ink_data nd /AGMCORE_is_cmyk_sep nd /AGMCORE_host_sep nd /AGMCORE_avoid_L2_sep_space nd /AGMCORE_distilling nd /AGMCORE_composite_job nd /AGMCORE_producing_seps nd /AGMCORE_ps_level -1 def /AGMCORE_ps_version -1 def /AGMCORE_environ_ok nd /AGMCORE_CSD_cache 0 dict def /AGMCORE_currentoverprint false def /AGMCORE_deltaX nd /AGMCORE_deltaY nd /AGMCORE_name nd /AGMCORE_sep_special nd /AGMCORE_err_strings 4 dict def /AGMCORE_cur_err nd /AGMCORE_current_spot_alias false def /AGMCORE_inverting false def /AGMCORE_feature_dictCount nd /AGMCORE_feature_opCount nd /AGMCORE_feature_ctm nd /AGMCORE_ConvertToProcess false def /AGMCORE_Default_CTM matrix def /AGMCORE_Default_PageSize nd /AGMCORE_Default_flatness nd /AGMCORE_currentbg nd /AGMCORE_currentucr nd /AGMCORE_pattern_paint_type 0 def /knockout_unitsq nd currentglobal true setglobal [/CSA/Gradient/Procedure] { /Generic/Category findresource dup length dict copy/Category defineresource pop }forall setglobal /AGMCORE_key_known { where{ /Adobe_AGM_Core_Id known }{ false }ifelse }ndf /flushinput { save 2 dict begin /CompareBuffer 3 -1 roll def /readbuffer 256 string def mark { currentfile readbuffer{readline}stopped {cleartomark mark} { not {pop exit} if CompareBuffer eq {exit} if }ifelse }loop cleartomark end restore }bdf /getspotfunction { AGMCORE_screen exch pop exch pop dup type/dicttype eq{ dup/HalftoneType get 1 eq{ /SpotFunction get }{ dup/HalftoneType get 2 eq{ /GraySpotFunction get }{ pop { abs exch abs 2 copy add 1 gt{ 1 sub dup mul exch 1 sub dup mul add 1 sub }{ dup mul exch dup mul add 1 exch sub }ifelse }bind }ifelse }ifelse }if }def /np {newpath}bdf /clp_npth {clip np}def /eoclp_npth {eoclip np}def /npth_clp {np clip}def /graphic_setup { /AGMCORE_graphicsave save store concat 0 setgray 0 setlinecap 0 setlinejoin 1 setlinewidth []0 setdash 10 setmiterlimit np false setoverprint false setstrokeadjust //Adobe_AGM_Core/spot_alias gx /Adobe_AGM_Image where{ pop Adobe_AGM_Image/spot_alias 2 copy known{ gx }{ pop pop }ifelse }if /sep_colorspace_dict null AGMCORE_gput 100 dict begin /dictstackcount countdictstack def /showpage{}def mark }def /graphic_cleanup { cleartomark dictstackcount 1 countdictstack 1 sub{end}for end AGMCORE_graphicsave restore }def /compose_error_msg { grestoreall initgraphics /Helvetica findfont 10 scalefont setfont /AGMCORE_deltaY 100 def /AGMCORE_deltaX 310 def clippath pathbbox np pop pop 36 add exch 36 add exch moveto 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath 0 AGMCORE_&setgray gsave 1 AGMCORE_&setgray fill grestore 1 setlinewidth gsave stroke grestore currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto /AGMCORE_deltaY 12 def /AGMCORE_tmp 0 def AGMCORE_err_strings exch get { dup 32 eq { pop AGMCORE_str256 0 AGMCORE_tmp getinterval stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt { currentpoint AGMCORE_deltaY sub exch pop clippath pathbbox pop pop pop 44 add exch moveto }if AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show 0 1 AGMCORE_str256 length 1 sub { AGMCORE_str256 exch 0 put }for /AGMCORE_tmp 0 def }{ AGMCORE_str256 exch AGMCORE_tmp xpt /AGMCORE_tmp AGMCORE_tmp 1 add def }ifelse }forall }bdf /AGMCORE_CMYKDeviceNColorspaces[ [/Separation/None/DeviceCMYK{0 0 0}] [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind] [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind] [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind] [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind] [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind] [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind] [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind] [/Separation(Cyan)/DeviceCMYK{0 0 0}] [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind] [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind] [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind] [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}] [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind] [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}] [/DeviceCMYK] ]def /ds{ Adobe_AGM_Core begin /currentdistillerparams where { pop currentdistillerparams/CoreDistVersion get 5000 lt {<>setdistillerparams}if }if /AGMCORE_ps_version xdf /AGMCORE_ps_level xdf errordict/AGM_handleerror known not{ errordict/AGM_handleerror errordict/handleerror get put errordict/handleerror{ Adobe_AGM_Core begin $error/newerror get AGMCORE_cur_err null ne and{ $error/newerror false put AGMCORE_cur_err compose_error_msg }if $error/newerror true put end errordict/AGM_handleerror get exec }bind put }if /AGMCORE_environ_ok ps_level AGMCORE_ps_level ge ps_version AGMCORE_ps_version ge and AGMCORE_ps_level -1 eq or def AGMCORE_environ_ok not {/AGMCORE_cur_err/AGMCORE_bad_environ def}if /AGMCORE_&setgray systemdict/setgray get def level2{ /AGMCORE_&setcolor systemdict/setcolor get def /AGMCORE_&setcolorspace systemdict/setcolorspace get def }if /AGMCORE_currentbg currentblackgeneration def /AGMCORE_currentucr currentundercolorremoval def /AGMCORE_Default_flatness currentflat def /AGMCORE_distilling /product where{ pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and }{ false }ifelse def /AGMCORE_GSTATE AGMCORE_key_known not{ /AGMCORE_GSTATE 21 dict def /AGMCORE_tmpmatrix matrix def /AGMCORE_gstack 32 array def /AGMCORE_gstackptr 0 def /AGMCORE_gstacksaveptr 0 def /AGMCORE_gstackframekeys 14 def /AGMCORE_&gsave/gsave ldf /AGMCORE_&grestore/grestore ldf /AGMCORE_&grestoreall/grestoreall ldf /AGMCORE_&save/save ldf /AGMCORE_&setoverprint/setoverprint ldf /AGMCORE_gdictcopy{ begin {def}forall end }def /AGMCORE_gput{ AGMCORE_gstack AGMCORE_gstackptr get 3 1 roll put }def /AGMCORE_gget{ AGMCORE_gstack AGMCORE_gstackptr get exch get }def /gsave{ AGMCORE_&gsave AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /grestore{ AGMCORE_&grestore AGMCORE_gstackptr 1 sub dup AGMCORE_gstacksaveptr lt{1 add}if dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse /AGMCORE_gstackptr exch store }def /grestoreall{ AGMCORE_&grestoreall /AGMCORE_gstackptr AGMCORE_gstacksaveptr store }def /save{ AGMCORE_&save AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store /AGMCORE_gstacksaveptr AGMCORE_gstackptr store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /setoverprint{ dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint }def 0 1 AGMCORE_gstack length 1 sub{ AGMCORE_gstack exch AGMCORE_gstackframekeys dict put }for }if level3/AGMCORE_&sysshfill AGMCORE_key_known not and { /AGMCORE_&sysshfill systemdict/shfill get def /AGMCORE_&sysmakepattern systemdict/makepattern get def /AGMCORE_&usrmakepattern/makepattern load def }if /currentcmykcolor[0 0 0 0]AGMCORE_gput /currentstrokeadjust false AGMCORE_gput /currentcolorspace[/DeviceGray]AGMCORE_gput /sep_tint 0 AGMCORE_gput /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput /sep_colorspace_dict null AGMCORE_gput /devicen_colorspace_dict null AGMCORE_gput /indexed_colorspace_dict null AGMCORE_gput /currentcolor_intent()AGMCORE_gput /customcolor_tint 1 AGMCORE_gput /absolute_colorimetric_crd null AGMCORE_gput /relative_colorimetric_crd null AGMCORE_gput /saturation_crd null AGMCORE_gput /perceptual_crd null AGMCORE_gput currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf << /MaxPatternItem currentsystemparams/MaxPatternCache get >> setuserparams end }def /ps { /setcmykcolor where{ pop Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put }if Adobe_AGM_Core begin /setcmykcolor { 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput 1 sub 4 1 roll 3{ 3 index add neg dup 0 lt{ pop 0 }if 3 1 roll }repeat setrgbcolor pop }ndf /currentcmykcolor { /currentcmykcolor AGMCORE_gget aload pop }ndf /setoverprint {pop}ndf /currentoverprint {false}ndf /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def /AGMCORE_plate_ndx AGMCORE_cyan_plate{ 0 }{ AGMCORE_magenta_plate{ 1 }{ AGMCORE_yellow_plate{ 2 }{ AGMCORE_black_plate{ 3 }{ 4 }ifelse }ifelse }ifelse }ifelse def /AGMCORE_have_reported_unsupported_color_space false def /AGMCORE_report_unsupported_color_space { AGMCORE_have_reported_unsupported_color_space false eq { (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)== Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf }if }def /AGMCORE_composite_job AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def /AGMCORE_in_rip_sep /AGMCORE_in_rip_sep where{ pop AGMCORE_in_rip_sep }{ AGMCORE_distilling { false }{ userdict/Adobe_AGM_OnHost_Seps known{ false }{ level2{ currentpagedevice/Separations 2 copy known{ get }{ pop pop false }ifelse }{ false }ifelse }ifelse }ifelse }ifelse def /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def /AGM_preserve_spots /AGM_preserve_spots where{ pop AGM_preserve_spots }{ AGMCORE_distilling AGMCORE_producing_seps or }ifelse def /AGM_is_distiller_preserving_spotimages { currentdistillerparams/PreserveOverprintSettings known { currentdistillerparams/PreserveOverprintSettings get { currentdistillerparams/ColorConversionStrategy known { currentdistillerparams/ColorConversionStrategy get /sRGB ne }{ true }ifelse }{ false }ifelse }{ false }ifelse }def /convert_spot_to_process where{pop}{ /convert_spot_to_process { //Adobe_AGM_Core begin dup map_alias{ /Name get exch pop }if dup dup(None)eq exch(All)eq or { pop false }{ AGMCORE_host_sep { gsave 1 0 0 0 setcmykcolor currentgray 1 exch sub 0 1 0 0 setcmykcolor currentgray 1 exch sub 0 0 1 0 setcmykcolor currentgray 1 exch sub 0 0 0 1 setcmykcolor currentgray 1 exch sub add add add 0 eq { pop false }{ false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne }ifelse grestore }{ AGMCORE_distilling { pop AGM_is_distiller_preserving_spotimages not }{ //Adobe_AGM_Core/AGMCORE_name xddf false //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq AGMUTIL_cpd/OverrideSeparations known and { AGMUTIL_cpd/OverrideSeparations get { /HqnSpots/ProcSet resourcestatus { pop pop pop true }if }if }if { AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not }{ gsave [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace false AGMUTIL_cpd/SeparationColorNames 2 copy known { get {AGMCORE_name eq or}forall not }{ pop pop pop true }ifelse grestore }ifelse }ifelse }ifelse }ifelse end }def }ifelse /convert_to_process where{pop}{ /convert_to_process { dup length 0 eq { pop false }{ AGMCORE_host_sep { dup true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process and}ifelse } forall { true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch (Black)eq or and }forall not }{pop false}ifelse }{ false exch { /PhotoshopDuotoneList where{pop false}{true}ifelse { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process or}ifelse } { convert_spot_to_process or } ifelse } forall }ifelse }ifelse }def }ifelse /AGMCORE_avoid_L2_sep_space version cvr 2012 lt level2 and AGMCORE_producing_seps not and def /AGMCORE_is_cmyk_sep AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or def /AGM_avoid_0_cmyk where{ pop AGM_avoid_0_cmyk }{ AGM_preserve_spots userdict/Adobe_AGM_OnHost_Seps known userdict/Adobe_AGM_InRip_Seps known or not and }ifelse { /setcmykcolor[ { 4 copy add add add 0 eq currentoverprint and{ pop 0.0005 }if }/exec cvx /AGMCORE_&setcmykcolor load dup type/operatortype ne{ /exec cvx }if ]cvx def }if /AGMCORE_IsSeparationAProcessColor { dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or }def AGMCORE_host_sep{ /setcolortransfer { AGMCORE_cyan_plate{ pop pop pop }{ AGMCORE_magenta_plate{ 4 3 roll pop pop pop }{ AGMCORE_yellow_plate{ 4 2 roll pop pop pop }{ 4 1 roll pop pop pop }ifelse }ifelse }ifelse settransfer } def /AGMCORE_get_ink_data AGMCORE_cyan_plate{ {pop pop pop} }{ AGMCORE_magenta_plate{ {4 3 roll pop pop pop} }{ AGMCORE_yellow_plate{ {4 2 roll pop pop pop} }{ {4 1 roll pop pop pop} }ifelse }ifelse }ifelse def /AGMCORE_RemoveProcessColorNames { 1 dict begin /filtername { dup/Cyan eq 1 index(Cyan)eq or {pop(_cyan_)}if dup/Magenta eq 1 index(Magenta)eq or {pop(_magenta_)}if dup/Yellow eq 1 index(Yellow)eq or {pop(_yellow_)}if dup/Black eq 1 index(Black)eq or {pop(_black_)}if }def dup type/arraytype eq {[exch{filtername}forall]} {filtername}ifelse end }def level3{ /AGMCORE_IsCurrentColor { dup AGMCORE_IsSeparationAProcessColor { AGMCORE_plate_ndx 0 eq {dup(Cyan)eq exch/Cyan eq or}if AGMCORE_plate_ndx 1 eq {dup(Magenta)eq exch/Magenta eq or}if AGMCORE_plate_ndx 2 eq {dup(Yellow)eq exch/Yellow eq or}if AGMCORE_plate_ndx 3 eq {dup(Black)eq exch/Black eq or}if AGMCORE_plate_ndx 4 eq {pop false}if }{ gsave false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne grestore }ifelse }def /AGMCORE_filter_functiondatasource { 5 dict begin /data_in xdf data_in type/stringtype eq { /ncomp xdf /comp xdf /string_out data_in length ncomp idiv string def 0 ncomp data_in length 1 sub { string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put }for string_out }{ string/string_in xdf /string_out 1 string def /component xdf [ data_in string_in/readstring cvx [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx [/pop cvx()]cvx/ifelse cvx ]cvx/ReusableStreamDecode filter }ifelse end }def /AGMCORE_separateShadingFunction { 2 dict begin /paint? xdf /channel xdf dup type/dicttype eq { begin FunctionType 0 eq { /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def currentdict/Decode known {/Decode Decode channel 2 mul 2 getinterval def}if paint? not {/Decode[1 1]def}if }if FunctionType 2 eq { paint? { /C0[C0 channel get 1 exch sub]def /C1[C1 channel get 1 exch sub]def }{ /C0[1]def /C1[1]def }ifelse }if FunctionType 3 eq { /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def }if currentdict/Range known {/Range[0 1]def}if currentdict end}{ channel get 0 paint? AGMCORE_separateShadingFunction }ifelse end }def /AGMCORE_separateShading { 3 -1 roll begin currentdict/Function known { currentdict/Background known {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf /ColorSpace[/DeviceGray]def }{ ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }{ ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put }ifelse ColorSpace 0 get/Separation eq { { [1/exch cvx/sub cvx]cvx }{ [/pop cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll put pop }{ { [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx }{ pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll bind put }ifelse ColorSpace 2/DeviceGray put }ifelse end }def /AGMCORE_separateShadingDict { dup/ColorSpace get dup type/arraytype ne {[exch]}if dup 0 get/DeviceCMYK eq { exch begin currentdict AGMCORE_cyan_plate {0 true}if AGMCORE_magenta_plate {1 true}if AGMCORE_yellow_plate {2 true}if AGMCORE_black_plate {3 true}if AGMCORE_plate_ndx 4 eq {0 false}if dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading currentdict end exch }if dup 0 get/Separation eq { exch begin ColorSpace 1 get dup/None ne exch/All ne and { ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /Separation ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading }if }ifelse }{ currentdict ColorSpace 1 get AGMCORE_IsCurrentColor 0 exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse }if currentdict end exch }if dup 0 get/DeviceN eq { exch begin ColorSpace 1 get convert_to_process { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /DeviceN ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading /ColorSpace[/DeviceGray]def }if }ifelse }{ currentdict false -1 ColorSpace 1 get { AGMCORE_IsCurrentColor { 1 add exch pop true exch exit }if 1 add }forall exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse currentdict end exch }if dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not { exch begin ColorSpace dup type/arraytype eq {0 get}if /DeviceGray ne { AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { ColorSpace 0 get/CIEBasedA eq { /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def }if ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or { /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def }if ColorSpace 0 get/CIEBasedDEFG eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }if currentdict 0 false AGMCORE_separateShading }if }if currentdict end exch }if pop dup/AGMCORE_ignoreshade known { begin /ColorSpace[/Separation(None)/DeviceGray{}]def currentdict end }if }def /shfill { AGMCORE_separateShadingDict dup/AGMCORE_ignoreshade known {pop} {AGMCORE_&sysshfill}ifelse }def /makepattern { exch dup/PatternType get 2 eq { clonedict begin /Shading Shading AGMCORE_separateShadingDict def Shading/AGMCORE_ignoreshade known currentdict end exch {pop<>}if exch AGMCORE_&sysmakepattern }{ exch AGMCORE_&usrmakepattern }ifelse }def }if }if AGMCORE_in_rip_sep{ /setcustomcolor { exch aload pop dup 7 1 roll inRip_spot_has_ink not { 4{4 index mul 4 1 roll} repeat /DeviceCMYK setcolorspace 6 -2 roll pop pop }{ //Adobe_AGM_Core begin /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf end [/Separation 4 -1 roll/DeviceCMYK {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul} ] setcolorspace }ifelse setcolor }ndf /setseparationgray { [/Separation(All)/DeviceGray{}]setcolorspace_opt 1 exch sub setcolor }ndf }{ /setseparationgray { AGMCORE_&setgray }ndf }ifelse /findcmykcustomcolor { 5 makereadonlyarray }ndf /setcustomcolor { exch aload pop pop 4{4 index mul 4 1 roll}repeat setcmykcolor pop }ndf /has_color /colorimage where{ AGMCORE_producing_seps{ pop true }{ systemdict eq }ifelse }{ false }ifelse def /map_index { 1 index mul exch getinterval{255 div}forall }bdf /map_indexed_devn { Lookup Names length 3 -1 roll cvi map_index }bdf /n_color_components { base_colorspace_type dup/DeviceGray eq{ pop 1 }{ /DeviceCMYK eq{ 4 }{ 3 }ifelse }ifelse }bdf level2{ /mo/moveto ldf /li/lineto ldf /cv/curveto ldf /knockout_unitsq { 1 setgray 0 0 1 1 rectfill }def level2/setcolorspace AGMCORE_key_known not and{ /AGMCORE_&&&setcolorspace/setcolorspace ldf /AGMCORE_ReplaceMappedColor { dup type dup/arraytype eq exch/packedarraytype eq or { /AGMCORE_SpotAliasAry2 where{ begin dup 0 get dup/Separation eq { pop dup length array copy dup dup 1 get current_spot_alias { dup map_alias { false set_spot_alias dup 1 exch setsepcolorspace true set_spot_alias begin /sep_colorspace_dict currentdict AGMCORE_gput pop pop pop [ /Separation Name CSA map_csa MappedCSA /sep_colorspace_proc load ] dup Name end }if }if map_reserved_ink_name 1 xpt }{ /DeviceN eq { dup length array copy dup dup 1 get[ exch{ current_spot_alias{ dup map_alias{ /Name get exch pop }if }if map_reserved_ink_name }forall ]1 xpt }if }ifelse end }if }if }def /setcolorspace { dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/Indexed eq { AGMCORE_distilling { /PhotoshopDuotoneList where { pop false }{ true }ifelse }{ true }ifelse { aload pop 3 -1 roll AGMCORE_ReplaceMappedColor 3 1 roll 4 array astore }if }{ AGMCORE_ReplaceMappedColor }ifelse }if DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if }def }if }{ /adj { currentstrokeadjust{ transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform }if }def /mo{ adj moveto }def /li{ adj lineto }def /cv{ 6 2 roll adj 6 2 roll adj 6 2 roll adj curveto }def /knockout_unitsq { 1 setgray 8 8 1[8 0 0 8 0 0]{}image }def /currentstrokeadjust{ /currentstrokeadjust AGMCORE_gget }def /setstrokeadjust{ /currentstrokeadjust exch AGMCORE_gput }def /setcolorspace { /currentcolorspace exch AGMCORE_gput }def /currentcolorspace { /currentcolorspace AGMCORE_gget }def /setcolor_devicecolor { base_colorspace_type dup/DeviceGray eq{ pop setgray }{ /DeviceCMYK eq{ setcmykcolor }{ setrgbcolor }ifelse }ifelse }def /setcolor { currentcolorspace 0 get dup/DeviceGray ne{ dup/DeviceCMYK ne{ dup/DeviceRGB ne{ dup/Separation eq{ pop currentcolorspace 3 gx currentcolorspace 2 get }{ dup/Indexed eq{ pop currentcolorspace 3 get dup type/stringtype eq{ currentcolorspace 1 get n_color_components 3 -1 roll map_index }{ exec }ifelse currentcolorspace 1 get }{ /AGMCORE_cur_err/AGMCORE_invalid_color_space def AGMCORE_invalid_color_space }ifelse }ifelse }if }if }if setcolor_devicecolor }def }ifelse /sop/setoverprint ldf /lw/setlinewidth ldf /lc/setlinecap ldf /lj/setlinejoin ldf /ml/setmiterlimit ldf /dsh/setdash ldf /sadj/setstrokeadjust ldf /gry/setgray ldf /rgb/setrgbcolor ldf /cmyk[ /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx /setcmykcolor load dup type/operatortype ne{/exec cvx}if ]cvx bdf level3 AGMCORE_host_sep not and{ /nzopmsc{ 6 dict begin /kk exch def /yy exch def /mm exch def /cc exch def /sum 0 def cc 0 ne{/sum sum 2#1000 or def cc}if mm 0 ne{/sum sum 2#0100 or def mm}if yy 0 ne{/sum sum 2#0010 or def yy}if kk 0 ne{/sum sum 2#0001 or def kk}if AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace sum 0 eq{0}if end setcolor }bdf }{ /nzopmsc/cmyk ldf }ifelse /sep/setsepcolor ldf /devn/setdevicencolor ldf /idx/setindexedcolor ldf /colr/setcolor ldf /csacrd/set_csa_crd ldf /sepcs/setsepcolorspace ldf /devncs/setdevicencolorspace ldf /idxcs/setindexedcolorspace ldf /cp/closepath ldf /clp/clp_npth ldf /eclp/eoclp_npth ldf /f/fill ldf /ef/eofill ldf /@/stroke ldf /nclp/npth_clp ldf /gset/graphic_setup ldf /gcln/graphic_cleanup ldf /ct/concat ldf /cf/currentfile ldf /fl/filter ldf /rs/readstring ldf /AGMCORE_def_ht currenthalftone def /clonedict Adobe_AGM_Utils begin/clonedict load end def /clonearray Adobe_AGM_Utils begin/clonearray load end def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall /getrampcolor { /indx exch def 0 1 NumComp 1 sub { dup Samples exch get dup type/stringtype eq{indx get}if exch Scaling exch get aload pop 3 1 roll mul add }for ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /sssetbackground{ aload pop ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /RadialShade { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /r2 xdf /c2y xdf /c2x xdf /r1 xdf /c1y xdf /c1x xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if c1x c2x eq { c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope c2y c1y sub c2x c1x sub div def /theta slope 1 atan def c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if }ifelse gsave clippath c1x c1y translate theta rotate -90 rotate {pathbbox}stopped {0 0 0 0}if /yMax xdf /xMax xdf /yMin xdf /xMin xdf grestore xMax xMin eq yMax yMin eq or { grestore end }{ /max{2 copy gt{pop}{exch pop}ifelse}bdf /min{2 copy lt{pop}{exch pop}ifelse}bdf rampdict begin 40 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave c1x c1y translate theta rotate -90 rotate /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def /c1y 0 def /c1x 0 def /c2x 0 def ext0 { 0 getrampcolor c2y r2 add r1 sub 0.0001 lt { c1x c1y r1 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2y r1 add r2 le { c1x c1y r1 0 360 arc fill } { c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r1 neg def /p1y c1y def /p2x r1 def /p2y c1y def p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y p1x SS1 div neg def /SS2 90 theta sub dup sin exch cos div def /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y p2x SS2 div neg def r1 r2 gt { /L1maxX p1x yMin p1y sub SS1 div add def /L2maxX p2x yMin p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if c1x c2x sub dup mul c1y c2y sub dup mul add 0.5 exp 0 dtransform dup mul exch dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop /hires xdf hires mul /numpix xdf /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if /xInc c2x c1x sub numsteps div def /yInc c2y c1y sub numsteps div def /rInc r2 r1 sub numsteps div def /cx c1x def /cy c1y def /radius r1 def np xInc 0 eq yInc 0 eq rInc 0 eq and and { 0 getrampcolor cx cy radius 0 360 arc stroke NumSamples 1 sub getrampcolor cx cy radius 72 hires div add 0 360 arc 0 setlinewidth stroke }{ 0 numsteps { dup subsampling{round cvi}if getrampcolor cx cy radius 0 360 arc /cx cx xInc add def /cy cy yInc add def /radius radius rInc add def cx cy radius 360 0 arcn eofill rampIndxInc add }repeat pop }ifelse ext1 { c2y r2 add r1 lt { c2x c2y r2 0 360 arc fill }{ c2y r1 add r2 sub 0.0001 le { c2x c2y r2 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r2 neg def /p1y c2y def /p2x r2 def /p2y c2y def p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y c2y p1x SS1 div sub def /SS2 90 theta sub dup sin exch cos div def /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y c2y p2x SS2 div sub def r1 r2 lt { /L1maxX p1x yMax p1y sub SS1 div add def /L2maxX p2x yMax p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if grestore grestore end end end }ifelse }bdf /GenStrips { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /y2 xdf /x2 xdf /y1 xdf /x1 xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if x1 x2 eq { y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope y2 y1 sub x2 x1 sub div def /theta slope 1 atan def x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if } ifelse gsave clippath x1 y1 translate theta rotate {pathbbox}stopped {0 0 0 0}if /yMax exch def /xMax exch def /yMin exch def /xMin exch def grestore xMax xMin eq yMax yMin eq or { grestore end }{ rampdict begin 20 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave x1 y1 translate theta rotate /xStart 0 def /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def /ySpan yMax yMin sub def /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def xStart 0 transform xEnd 0 transform 3 -1 roll sub dup mul 3 1 roll sub dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop mul /numpix xdf numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if ext0 { 0 getrampcolor xMin xStart lt { xMin yMin xMin neg ySpan rectfill }if }if /xInc xEnd xStart sub numsteps div def /x xStart def 0 numsteps { dup subsampling{round cvi}if getrampcolor x yMin xInc ySpan rectfill /x x xInc add def rampIndxInc add }repeat pop ext1{ xMax xEnd gt { xEnd yMin xMax xEnd sub ySpan rectfill }if }if grestore grestore end end end }ifelse }bdf }def /pt { end }def /dt{ }def /pgsv{ //Adobe_AGM_Core/AGMCORE_save save put }def /pgrs{ //Adobe_AGM_Core/AGMCORE_save get restore }def systemdict/findcolorrendering known{ /findcolorrendering systemdict/findcolorrendering get def }if systemdict/setcolorrendering known{ /setcolorrendering systemdict/setcolorrendering get def }if /test_cmyk_color_plate { gsave setcmykcolor currentgray 1 ne grestore }def /inRip_spot_has_ink { dup//Adobe_AGM_Core/AGMCORE_name xddf convert_spot_to_process not }def /map255_to_range { 1 index sub 3 -1 roll 255 div mul add }def /set_csa_crd { /sep_colorspace_dict null AGMCORE_gput begin CSA get_csa_by_name setcolorspace_opt set_crd end } def /map_csa { currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse {pop}{get_csa_by_name/MappedCSA xdf}ifelse }def /setsepcolor { /sep_colorspace_dict AGMCORE_gget begin dup/sep_tint exch AGMCORE_gput TintProc end }def /setdevicencolor { /devicen_colorspace_dict AGMCORE_gget begin Names length copy Names length 1 sub -1 0 { /devicen_tints AGMCORE_gget 3 1 roll xpt }for TintProc end }def /sep_colorspace_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin currentdict/Components known{ Components aload pop TintMethod/Lab eq{ 2{AGMCORE_tmp mul NComponents 1 roll}repeat LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll }{ TintMethod/Subtractive eq{ NComponents{ AGMCORE_tmp mul NComponents 1 roll }repeat }{ NComponents{ 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll }repeat }ifelse }ifelse }{ ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get aload pop }ifelse end }def /sep_colorspace_gray_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get end }def /sep_proc_name { dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{ pop[/DeviceGray] /sep_colorspace_gray_proc }{ /sep_colorspace_proc }ifelse }def /setsepcolorspace { current_spot_alias{ dup begin Name map_alias{ exch pop }if end }if dup/sep_colorspace_dict exch AGMCORE_gput begin CSA map_csa /AGMCORE_sep_special Name dup()eq exch(All)eq or store AGMCORE_avoid_L2_sep_space{ [/Indexed MappedCSA sep_proc_name 255 exch {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx ]setcolorspace_opt /TintProc{ 255 mul round cvi setcolor }bdf }{ MappedCSA 0 get/DeviceCMYK eq currentdict/Components known and AGMCORE_sep_special not and{ /TintProc[ Components aload pop Name findcmykcustomcolor /exch cvx/setcustomcolor cvx ]cvx bdf }{ AGMCORE_host_sep Name(All)eq and{ /TintProc{ 1 exch sub setseparationgray }bdf }{ AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and AGMCORE_host_sep or Name()eq and{ /TintProc[ MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{ cvx/setcmykcolor cvx }{ cvx/setgray cvx }ifelse ]cvx bdf }{ AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{ /TintProc[ /dup cvx MappedCSA sep_proc_name cvx exch 0 get/DeviceGray eq{ 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx }if /Name cvx/findcmykcustomcolor cvx/exch cvx AGMCORE_host_sep{ AGMCORE_is_cmyk_sep /Name cvx /AGMCORE_IsSeparationAProcessColor load/exec cvx /not cvx/and cvx }{ Name inRip_spot_has_ink not }ifelse [ /pop cvx 1 ]cvx/if cvx /setcustomcolor cvx ]cvx bdf }{ /TintProc{setcolor}bdf [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt }ifelse }ifelse }ifelse }ifelse }ifelse set_crd setsepcolor end }def /additive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 0 1 numarrays 1 sub { 1 exch add/index cvx c1/get cvx/mul cvx }for numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /subtractive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 1 0 1 numarrays 1 sub { 1 3 3 -1 roll add/index cvx c1/get cvx/sub cvx/mul cvx }for /sub cvx numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /exec_tint_transform { /TintProc[ /TintTransform cvx/setcolor cvx ]cvx bdf MappedCSA setcolorspace_opt }bdf /devn_makecustomcolor { 2 dict begin /names_index xdf /Names xdf 1 1 1 1 Names names_index get findcmykcustomcolor /devicen_tints AGMCORE_gget names_index get setcustomcolor Names length{pop}repeat end }bdf /setdevicencolorspace { dup/AliasedColorants known{false}{true}ifelse current_spot_alias and{ 7 dict begin /names_index 0 def dup/names_len exch/Names get length def /new_names names_len array def /new_LookupTables names_len array def /alias_cnt 0 def dup/Names get { dup map_alias{ exch pop dup/ColorLookup known{ dup begin new_LookupTables names_index ColorLookup put end }{ dup/Components known{ dup begin new_LookupTables names_index Components put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse new_names names_index 3 -1 roll/Name get put /alias_cnt alias_cnt 1 add def }{ /name xdf new_names names_index name put dup/LookupTables known{ dup begin new_LookupTables names_index LookupTables names_index get put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse /names_index names_index 1 add def }forall alias_cnt 0 gt{ /AliasedColorants true def /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def 0 1 names_len 1 sub{ /names_index xdf new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{ /AliasedColorants false def exit }{ new_LookupTables names_index get 0 get null eq{ dup/Names get names_index get/name xdf name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq or or or not{ /AliasedColorants false def exit }if }if }ifelse }for lut_entry_len 1 eq{ /AliasedColorants false def }if AliasedColorants{ dup begin /Names new_names def /LookupTables new_LookupTables def /AliasedColorants true def /NComponents lut_entry_len def /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def currentdict/TTTablesIdx known not{ /TTTablesIdx -1 def }if end }if }if end }if dup/devicen_colorspace_dict exch AGMCORE_gput begin currentdict/AliasedColorants known{ AliasedColorants }{ false }ifelse dup not{ CSA map_csa }if /TintTransform load type/nulltype eq or{ /TintTransform[ 0 1 Names length 1 sub { /TTTablesIdx TTTablesIdx 1 add def dup LookupTables exch get dup 0 get null eq { 1 index Names exch get dup(Cyan)eq { pop exch LookupTables length exch sub /index cvx 0 0 0 } { dup(Magenta)eq { pop exch LookupTables length exch sub /index cvx 0/exch cvx 0 0 }{ (Yellow)eq { exch LookupTables length exch sub /index cvx 0 0 3 -1/roll cvx 0 }{ exch LookupTables length exch sub /index cvx 0 0 0 4 -1/roll cvx }ifelse }ifelse }ifelse 5 -1/roll cvx/astore cvx }{ dup length 1 sub LookupTables length 4 -1 roll sub 1 add /index cvx/mul cvx/round cvx/cvi cvx/get cvx }ifelse Names length TTTablesIdx add 1 add 1/roll cvx }for Names length[/pop cvx]cvx/repeat cvx NComponents Names length TintMethod/Subtractive eq { subtractive_blend }{ additive_blend }ifelse ]cvx bdf }if AGMCORE_host_sep{ Names convert_to_process{ exec_tint_transform } { currentdict/AliasedColorants known{ AliasedColorants not }{ false }ifelse 5 dict begin /AvoidAliasedColorants xdf /painted? false def /names_index 0 def /names_len Names length def AvoidAliasedColorants{ /currentspotalias current_spot_alias def false set_spot_alias }if Names{ AGMCORE_is_cmyk_sep{ dup(Cyan)eq AGMCORE_cyan_plate and exch dup(Magenta)eq AGMCORE_magenta_plate and exch dup(Yellow)eq AGMCORE_yellow_plate and exch (Black)eq AGMCORE_black_plate and or or or{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def }if painted?{exit}if }{ 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def exit }if }ifelse /names_index names_index 1 add def }forall AvoidAliasedColorants{ currentspotalias set_spot_alias }if painted?{ /devicen_colorspace_dict AGMCORE_gget/names_index names_index put }{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx 0 0 0 0/setcmykcolor cvx ]cvx ddf }ifelse end }ifelse } { AGMCORE_in_rip_sep{ Names convert_to_process not }{ level3 }ifelse { [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt /TintProc level3 not AGMCORE_in_rip_sep and{ [ Names/length cvx[/pop cvx]cvx/repeat cvx ]cvx bdf }{ {setcolor}bdf }ifelse }{ exec_tint_transform }ifelse }ifelse set_crd /AliasedColorants false def end }def /setindexedcolorspace { dup/indexed_colorspace_dict exch AGMCORE_gput begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ currentdict devncs }{ 1 currentdict sepcs }ifelse AGMCORE_host_sep{ 4 dict begin /compCnt/Names where{pop Names length}{1}ifelse def /NewLookup HiVal 1 add string def 0 1 HiVal{ /tableIndex xdf Lookup dup type/stringtype eq{ compCnt tableIndex map_index }{ exec }ifelse /Names where{ pop setdevicencolor }{ setsepcolor }ifelse currentgray tableIndex exch 255 mul cvi NewLookup 3 1 roll put }for [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt end }{ level3 { currentdict/Names known{ [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt }{ [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt }ifelse }{ [/Indexed MappedCSA HiVal [ currentdict/Names known{ Lookup dup type/stringtype eq {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx} {/exec cvx}ifelse /TintTransform load/exec cvx }{ Lookup dup type/stringtype eq {/exch cvx/get cvx 255/div cvx} {/exec cvx}ifelse CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx }ifelse ]cvx ]setcolorspace_opt }ifelse }ifelse end set_crd } { CSA map_csa AGMCORE_host_sep level2 not and{ 0 0 0 0 setcmykcolor }{ [/Indexed MappedCSA level2 not has_color not and{ dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{ pop[/DeviceGray] }if HiVal GrayLookup }{ HiVal currentdict/RangeArray known{ { /indexed_colorspace_dict AGMCORE_gget begin Lookup exch dup HiVal gt{ pop HiVal }if NComponents mul NComponents getinterval{}forall NComponents 1 sub -1 0{ RangeArray exch 2 mul 2 getinterval aload pop map255_to_range NComponents 1 roll }for end }bind }{ Lookup }ifelse }ifelse ]setcolorspace_opt set_crd }ifelse }ifelse end }def /setindexedcolor { AGMCORE_host_sep{ /indexed_colorspace_dict AGMCORE_gget begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ map_indexed_devn devn } { Lookup 1 3 -1 roll map_index sep }ifelse end }{ Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll map_index MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse }ifelse end }{ level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{ /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin map_indexed_devn devn end } { setcolor }ifelse }ifelse }def /ignoreimagedata { currentoverprint not{ gsave dup clonedict begin 1 setgray /Decode[0 1]def /DataSourcedef /MultipleDataSources false def /BitsPerComponent 8 def currentdict end systemdict/image gx grestore }if consumeimagedata }def /add_res { dup/CSD eq{ pop //Adobe_AGM_Core begin /AGMCORE_CSD_cache load 3 1 roll put end }{ defineresource pop }ifelse }def /del_res { { aload pop exch dup/CSD eq{ pop {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall }{ exch {1 index undefineresource}forall pop }ifelse }forall }def /get_res { dup/CSD eq{ pop dup type dup/nametype eq exch/stringtype eq or{ AGMCORE_CSD_cache exch get }if }{ findresource }ifelse }def /get_csa_by_name { dup type dup/nametype eq exch/stringtype eq or{ /CSA get_res }if }def /paintproc_buf_init { /count get 0 0 put }def /paintproc_buf_next { dup/count get dup 0 get dup 3 1 roll 1 add 0 xpt get }def /cachepaintproc_compress { 5 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def /string_size 16000 def /readbuffer string_size string def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal /LZWFilter { exch dup length 0 eq{ pop }{ ppdict dup length 1 sub 3 -1 roll put }ifelse {string_size}{0}ifelse string }/LZWEncode filter def { ReadFilter readbuffer readstring exch LZWFilter exch writestring not{exit}if }loop LZWFilter closefile ppdict end }def /cachepaintproc { 2 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal { ReadFilter 16000 string readstring exch ppdict dup length 1 sub 3 -1 roll put not{exit}if }loop ppdict dup dup length 1 sub()put end }def /make_pattern { exch clonedict exch dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub matrix translate exch matrix concatmatrix 1 index begin BBox 0 get XStep div cvi XStep mul/xshift exch neg def BBox 1 get YStep div cvi YStep mul/yshift exch neg def BBox 0 get xshift add BBox 1 get yshift add BBox 2 get xshift add BBox 3 get yshift add 4 array astore /BBox exch def [xshift yshift/translate load null/exec load]dup 3/PaintProc load put cvx/PaintProc exch def end gsave 0 setgray makepattern grestore }def /set_pattern { dup/PatternType get 1 eq{ dup/PaintType get 1 eq{ currentoverprint sop[/DeviceGray]setcolorspace 0 setgray }if }if setpattern }def /setcolorspace_opt { dup currentcolorspace eq{pop}{setcolorspace}ifelse }def /updatecolorrendering { currentcolorrendering/RenderingIntent known{ currentcolorrendering/RenderingIntent get } { Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd AGMCORE_gget dup null eq } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd AGMCORE_gget dup null eq } { Intent/Saturation eq { /saturation_crd AGMCORE_gget dup null eq } { /perceptual_crd AGMCORE_gget dup null eq }ifelse }ifelse }ifelse { pop null } { /RenderingIntent known{null}{Intent}ifelse }ifelse }ifelse Intent ne{ Intent/ColorRendering{findresource}stopped { pop pop systemdict/findcolorrendering known { Intent findcolorrendering { /ColorRendering findresource true exch } { /ColorRendering findresource product(Xerox Phaser 5400)ne exch }ifelse dup Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd exch AGMCORE_gput } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd exch AGMCORE_gput } { Intent/Saturation eq { /saturation_crd exch AGMCORE_gput } { Intent/Perceptual eq { /perceptual_crd exch AGMCORE_gput } { pop }ifelse }ifelse }ifelse }ifelse 1 index{exch}{pop}ifelse } {false}ifelse } {true}ifelse { dup begin currentdict/TransformPQR known{ currentdict/TransformPQR get aload pop 3{{}eq 3 1 roll}repeat or or } {true}ifelse currentdict/MatrixPQR known{ currentdict/MatrixPQR get aload pop 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq and and and and and and and and } {true}ifelse end or { clonedict begin /TransformPQR[ {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind ]def /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def currentdict end }if setcolorrendering_opt }if }if }def /set_crd { AGMCORE_host_sep not level2 and{ currentdict/ColorRendering known{ ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if }{ currentdict/Intent known{ updatecolorrendering }if }ifelse currentcolorspace dup type/arraytype eq {0 get}if /DeviceRGB eq { currentdict/UCR known {/UCR}{/AGMCORE_currentucr}ifelse load setundercolorremoval currentdict/BG known {/BG}{/AGMCORE_currentbg}ifelse load setblackgeneration }if }if }def /set_ucrbg { dup null eq{pop/AGMCORE_currentbg load}{/Procedure get_res}ifelse setblackgeneration dup null eq{pop/AGMCORE_currentucr load}{/Procedure get_res}ifelse setundercolorremoval }def /setcolorrendering_opt { dup currentcolorrendering eq{ pop }{ product(HP Color LaserJet 2605)anchorsearch{ pop pop pop }{ pop clonedict begin /Intent Intent def currentdict end setcolorrendering }ifelse }ifelse }def /cpaint_gcomp { convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not { (%end_cpaint_gcomp)flushinput }if }def /cpaint_gsep { //Adobe_AGM_Core/AGMCORE_ConvertToProcess get { (%end_cpaint_gsep)flushinput }if }def /cpaint_gend {np}def /T1_path { currentfile token pop currentfile token pop mo { currentfile token pop dup type/stringtype eq {pop exit}if 0 exch rlineto currentfile token pop dup type/stringtype eq {pop exit}if 0 rlineto }loop }def /T1_gsave level3 {/clipsave} {/gsave}ifelse load def /T1_grestore level3 {/cliprestore} {/grestore}ifelse load def /set_spot_alias_ary { dup inherit_aliases //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf }def /set_spot_normalization_ary { dup inherit_aliases dup length /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if array //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf /AGMCORE_SpotAliasAry where{ pop AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval AGMCORE_SpotAliasAry length }{0}ifelse AGMCORE_SpotAliasAry2 3 1 roll exch putinterval true set_spot_alias }def /inherit_aliases { {dup/Name get map_alias{/CSD put}{pop}ifelse}forall }def /set_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias 3 -1 roll put }{ pop }ifelse }def /current_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias get }{ false }ifelse }def /map_alias { /AGMCORE_SpotAliasAry2 where{ begin /AGMCORE_name xdf false AGMCORE_SpotAliasAry2{ dup/Name get AGMCORE_name eq{ /CSD get/CSD get_res exch pop true exit }{ pop }ifelse }forall end }{ pop false }ifelse }bdf /spot_alias { true set_spot_alias /AGMCORE_&setcustomcolor AGMCORE_key_known not{ //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put }if /customcolor_tint 1 AGMCORE_gput //Adobe_AGM_Core begin /setcustomcolor { //Adobe_AGM_Core begin dup/customcolor_tint exch AGMCORE_gput 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not current_spot_alias and{1 index 4 get map_alias}{false}ifelse { false set_spot_alias /sep_colorspace_dict AGMCORE_gget null ne {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse 3 1 roll 2 index{ exch pop/sep_tint AGMCORE_gget exch }if mark 3 1 roll setsepcolorspace counttomark 0 ne{ setsepcolor }if pop not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if pop true set_spot_alias }{ AGMCORE_&setcustomcolor }ifelse end }bdf end }def /begin_feature { Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if }def /end_feature { 2 dict begin /spd/setpagedevice load def /setpagedevice{get_gstate spd set_gstate}def stopped{$error/newerror false put}if end count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if }def /set_negative { //Adobe_AGM_Core begin /AGMCORE_inverting exch def level2{ currentpagedevice/NegativePrint known AGMCORE_distilling not and{ currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{ true begin_feature true{ <>setpagedevice }end_feature }if /AGMCORE_inverting false def }if }if AGMCORE_inverting{ [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer AGMCORE_distilling{ erasepage }{ gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore }ifelse }if end }def /lw_save_restore_override{ /md where{ pop md begin initializepage /initializepage{}def /pmSVsetup{}def /endp{}def /pse{}def /psb{}def /orig_showpage where {pop} {/orig_showpage/showpage load def} ifelse /showpage{orig_showpage gR}def end }if }def /pscript_showpage_override{ /NTPSOct95 where { begin showpage save /showpage/restore load def /restore{exch pop}def end }if }def /driver_media_override { /md where{ pop md/initializepage known{ md/initializepage{}put }if md/rC known{ md/rC{4{pop}repeat}put }if }if /mysetup where{ /mysetup[1 0 0 1 0 0]put }if Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put level2 {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if }def /capture_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put }if }if }def /restore_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup known{ Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put Adobe_AGM_Core/save_mysetup undef }if }if }if }def /driver_check_media_override { /PrepsDict where {pop} { Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq { Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and }if { Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix }if }ifelse }def AGMCORE_err_strings begin /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def /AGMCORE_invalid_color_space(This job contains an invalid color space. )def end /set_def_ht {AGMCORE_def_ht sethalftone}def /set_def_flat {AGMCORE_Default_flatness setflat}def end systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_CoolType_Core 2.31 0 %%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved. %%Version: 2.31 0 10 dict begin /Adobe_CoolType_Passthru currentdict def /Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def Adobe_CoolType_Core_Defined {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def} if userdict/Adobe_CoolType_Core 70 dict dup begin put /Adobe_CoolType_Version 2.31 def /Level2? systemdict/languagelevel known dup {pop systemdict/languagelevel get 2 ge} if def Level2? not { /currentglobal false def /setglobal/pop load def /gcheck{pop false}bind def /currentpacking false def /setpacking/pop load def /SharedFontDirectory 0 dict def } if currentpacking true setpacking currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def end setglobal currentglobal true setglobal userdict/Adobe_CoolType_GVMFonts known not {userdict/Adobe_CoolType_GVMFonts 10 dict put} if setglobal currentglobal false setglobal userdict/Adobe_CoolType_LVMFonts known not {userdict/Adobe_CoolType_LVMFonts 10 dict put} if setglobal /ct_VMDictPut { dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse 3 1 roll put }bind def /ct_VMDictUndef { dup Adobe_CoolType_GVMFonts exch known {Adobe_CoolType_GVMFonts exch undef} { dup Adobe_CoolType_LVMFonts exch known {Adobe_CoolType_LVMFonts exch undef} {pop} ifelse }ifelse }bind def /ct_str1 1 string def /ct_xshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_yshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 exch rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_xyshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { {_ct_na _ct_i 1 add get}stopped {pop pop pop} { _ct_x _ct_y moveto rmoveto } ifelse } ifelse /_ct_i _ct_i 2 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def /ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def /xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def currentglobal true setglobal /ct_T3Defs { /BuildChar { 1 index/Encoding get exch get 1 index/BuildGlyph get exec }bind def /BuildGlyph { exch begin GlyphProcs exch get exec end }bind def }bind def setglobal /@_SaveStackLevels { Adobe_CoolType_Data begin /@vmState currentglobal def false setglobal @opStackCountByLevel @opStackLevel 2 copy known not { 2 copy 3 dict dup/args 7 index 5 add array put put get } { get dup/args get dup length 3 index lt { dup length 5 add array exch 1 index exch 0 exch putinterval 1 index exch/args exch put } {pop} ifelse } ifelse begin count 1 sub 1 index lt {pop count} if dup/argCount exch def dup 0 gt { args exch 0 exch getinterval astore pop } {pop} ifelse count /restCount exch def end /@opStackLevel @opStackLevel 1 add def countdictstack 1 sub @dictStackCountByLevel exch @dictStackLevel exch put /@dictStackLevel @dictStackLevel 1 add def @vmState setglobal end }bind def /@_RestoreStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def @opStackCountByLevel @opStackLevel get begin count restCount sub dup 0 gt {{pop}repeat} {pop} ifelse args 0 argCount getinterval{}forall end /@dictStackLevel @dictStackLevel 1 sub def @dictStackCountByLevel @dictStackLevel get end countdictstack exch sub dup 0 gt {{end}repeat} {pop} ifelse }bind def /@_PopStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def /@dictStackLevel @dictStackLevel 1 sub def end }bind def /@Raise { exch cvx exch errordict exch get exec stop }bind def /@ReRaise { cvx $error/errorname get errordict exch get exec stop }bind def /@Stopped { 0 @#Stopped }bind def /@#Stopped { @_SaveStackLevels stopped {@_RestoreStackLevels true} {@_PopStackLevels false} ifelse }bind def /@Arg { Adobe_CoolType_Data begin @opStackCountByLevel @opStackLevel 1 sub get begin args exch argCount 1 sub exch sub get end end }bind def currentglobal true setglobal /CTHasResourceForAllBug Level2? { 1 dict dup /@shouldNotDisappearDictValue true def Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put begin count @_SaveStackLevels {(*){pop stop}128 string/Category resourceforall} stopped pop @_RestoreStackLevels currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll { /@shouldNotDisappearDictValue known { { end currentdict 1 index eq {pop exit} if } loop } if } { pop end } ifelse } {false} ifelse def true setglobal /CTHasResourceStatusBug Level2? { mark {/steveamerige/Category resourcestatus} stopped {cleartomark true} {cleartomark currentglobal not} ifelse } {false} ifelse def setglobal /CTResourceStatus { mark 3 1 roll /Category findresource begin ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse end }bind def /CTWorkAroundBugs { Level2? { /cid_PreLoad/ProcSet resourcestatus { pop pop currentglobal mark { (*) { dup/CMap CTHasResourceStatusBug {CTResourceStatus} {resourcestatus} ifelse { pop dup 0 eq exch 1 eq or { dup/CMap findresource gcheck setglobal /CMap undefineresource } { pop CTHasResourceForAllBug {exit} {stop} ifelse } ifelse } {pop} ifelse } 128 string/CMap resourceforall } stopped {cleartomark} stopped pop setglobal } if } if }bind def /ds { Adobe_CoolType_Core begin CTWorkAroundBugs /mo/moveto load def /nf/newencodedfont load def /msf{makefont setfont}bind def /uf{dup undefinefont ct_VMDictUndef}bind def /ur/undefineresource load def /chp/charpath load def /awsh/awidthshow load def /wsh/widthshow load def /ash/ashow load def /@xshow/xshow load def /@yshow/yshow load def /@xyshow/xyshow load def /@cshow/cshow load def /sh/show load def /rp/repeat load def /.n/.notdef def end currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /AddWidths? false def /CC 0 def /charcode 2 string def /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def /InVMFontsByCMap 10 dict def /InVMDeepCopiedFonts 10 dict def end setglobal }bind def /dt { currentdict Adobe_CoolType_Core eq {end} if }bind def /ps { Adobe_CoolType_Core begin Adobe_CoolType_GVMFonts begin Adobe_CoolType_LVMFonts begin SharedFontDirectory begin }bind def /pt { end end end end }bind def /unload { systemdict/languagelevel known { systemdict/languagelevel get 2 ge { userdict/Adobe_CoolType_Core 2 copy known {undef} {pop pop} ifelse } if } if }bind def /ndf { 1 index where {pop pop pop} {dup xcheck{bind}if def} ifelse }def /findfont systemdict begin userdict begin /globaldict where{/globaldict get begin}if dup where pop exch get /globaldict where{pop end}if end end Adobe_CoolType_Core_Defined {/systemfindfont exch def} { /findfont 1 index def /systemfindfont exch def } ifelse /undefinefont {pop}ndf /copyfont { currentglobal 3 1 roll 1 index gcheck setglobal dup null eq{0}{dup length}ifelse 2 index length add 1 add dict begin exch { 1 index/FID eq {pop pop} {def} ifelse } forall dup null eq {pop} {{def}forall} ifelse currentdict end exch setglobal }bind def /copyarray { currentglobal exch dup gcheck setglobal dup length array copy exch setglobal }bind def /newencodedfont { currentglobal { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } { FontDirectory 3 index known {FontDirectory 3 index get/FontReferenced known} { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } ifelse } ifelse dup { 3 index findfont/FontReferenced get 2 index dup type/nametype eq {findfont} if ne {pop false} if } if dup { 1 index dup type/nametype eq {findfont} if dup/CharStrings known { /CharStrings get length 4 index findfont/CharStrings get length ne { pop false } if } {pop} ifelse } if { pop 1 index findfont /Encoding get exch 0 1 255 {2 copy get 3 index 3 1 roll put} for pop pop pop } { currentglobal 4 1 roll dup type/nametype eq {findfont} if dup gcheck setglobal dup dup maxlength 2 add dict begin exch { 1 index/FID ne 2 index/Encoding ne and {def} {pop pop} ifelse } forall /FontReferenced exch def /Encoding exch dup length array copy def /FontName 1 index dup type/stringtype eq{cvn}if def dup currentdict end definefont ct_VMDictPut setglobal } ifelse }bind def /SetSubstituteStrategy { $SubstituteFont begin dup type/dicttype ne {0 dict} if currentdict/$Strategies known { exch $Strategies exch 2 copy known { get 2 copy maxlength exch maxlength add dict begin {def}forall {def}forall currentdict dup/$Init known {dup/$Init get exec} if end /$Strategy exch def } {pop pop pop} ifelse } {pop pop} ifelse end }bind def /scff { $SubstituteFont begin dup type/stringtype eq {dup length exch} {null} ifelse /$sname exch def /$slen exch def /$inVMIndex $sname null eq { 1 index $str cvs dup length $slen sub $slen getinterval cvn } {$sname} ifelse def end {findfont} @Stopped { dup length 8 add string exch 1 index 0(BadFont:)putinterval 1 index exch 8 exch dup length string cvs putinterval cvn {findfont} @Stopped {pop/Courier findfont} if } if $SubstituteFont begin /$sname null def /$slen 0 def /$inVMIndex null def end }bind def /isWidthsOnlyFont { dup/WidthsOnly known {pop pop true} { dup/FDepVector known {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall} { dup/FDArray known {/FDArray get{isWidthsOnlyFont dup{exit}if}forall} {pop} ifelse } ifelse } ifelse }bind def /ct_StyleDicts 4 dict dup begin /Adobe-Japan1 4 dict dup begin Level2? { /Serif /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMin-W3} { /CIDFont/Category resourcestatus { pop pop /HeiseiMin-W3/CIDFont resourcestatus {pop pop/HeiseiMin-W3} {/Ryumin-Light} ifelse } {/Ryumin-Light} ifelse } ifelse def /SansSerif /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiKakuGo-W5} { /CIDFont/Category resourcestatus { pop pop /HeiseiKakuGo-W5/CIDFont resourcestatus {pop pop/HeiseiKakuGo-W5} {/GothicBBB-Medium} ifelse } {/GothicBBB-Medium} ifelse } ifelse def /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMaruGo-W4} { /CIDFont/Category resourcestatus { pop pop /HeiseiMaruGo-W4/CIDFont resourcestatus {pop pop/HeiseiMaruGo-W4} { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } ifelse /RoundSansSerif exch def /Default Serif def } { /Serif/Ryumin-Light def /SansSerif/GothicBBB-Medium def { (fonts/Jun101-Light-83pv-RKSJ-H)status }stopped {pop}{ {pop pop pop pop/Jun101-Light} {SansSerif} ifelse /RoundSansSerif exch def }ifelse /Default Serif def } ifelse end def /Adobe-Korea1 4 dict dup begin /Serif/HYSMyeongJo-Medium def /SansSerif/HYGoThic-Medium def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-GB1 4 dict dup begin /Serif/STSong-Light def /SansSerif/STHeiti-Regular def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-CNS1 4 dict dup begin /Serif/MKai-Medium def /SansSerif/MHei-Medium def /RoundSansSerif SansSerif def /Default Serif def end def end def Level2?{currentglobal true setglobal}if /ct_BoldRomanWidthProc { stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth 0 0 }bind def /ct_Type0WidthProc { dup stringwidth 0 0 moveto 2 index true charpath pathbbox 0 -1 7 index 2 div .88 setcachedevice2 pop 0 0 }bind def /ct_Type0WMode1WidthProc { dup stringwidth pop 2 div neg -0.88 2 copy moveto 0 -1 5 -1 roll true charpath pathbbox setcachedevice }bind def /cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_BoldBaseFont 11 dict begin /FontType 3 def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /Encoding cHexEncoding def /_setwidthProc/ct_BoldRomanWidthProc load def /_bcstr1 1 string def /BuildChar { exch begin _basefont setfont _bcstr1 dup 0 4 -1 roll put dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def systemdict/composefont known { /ct_DefineIdentity-H { /Identity-H/CMap resourcestatus { pop pop } { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse } def /ct_BoldBaseCIDFont 11 dict begin /CIDFontType 1 def /CIDFontName/ct_BoldBaseCIDFont def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /_setwidthProc/ct_Type0WidthProc load def /_bcstr2 2 string def /BuildGlyph { exch begin _basefont setfont _bcstr2 1 2 index 256 mod put _bcstr2 0 3 -1 roll 256 idiv put _bcstr2 dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def }if Level2?{setglobal}if /ct_CopyFont{ { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall }bind def /ct_Type0CopyFont { exch dup length dict begin ct_CopyFont [ exch FDepVector { dup/FontType get 0 eq { 1 index ct_Type0CopyFont /_ctType0 exch definefont } { /_ctBaseFont exch 2 index exec } ifelse exch } forall pop ] /FDepVector exch def currentdict end }bind def /ct_MakeBoldFont { dup/ct_SyntheticBold known { dup length 3 add dict begin ct_CopyFont /ct_StrokeWidth .03 0 FontMatrix idtransform pop def /ct_SyntheticBold true def currentdict end definefont } { dup dup length 3 add dict begin ct_CopyFont /PaintType 2 def /StrokeWidth .03 0 FontMatrix idtransform pop def /dummybold currentdict end definefont dup/FontType get dup 9 ge exch 11 le and { ct_BoldBaseCIDFont dup length 3 add dict copy begin dup/CIDSystemInfo get/CIDSystemInfo exch def ct_DefineIdentity-H /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefont exch def /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefonto exch def currentdict end /CIDFont defineresource } { ct_BoldBaseFont dup length 3 add dict copy begin /_basefont exch def /_basefonto exch def currentdict end definefont } ifelse } ifelse }bind def /ct_MakeBold{ 1 index 1 index findfont currentglobal 5 1 roll dup gcheck setglobal dup /FontType get 0 eq { dup/WMode known{dup/WMode get 1 eq}{false}ifelse version length 4 ge and {version 0 4 getinterval cvi 2015 ge} {true} ifelse {/ct_Type0WidthProc} {/ct_Type0WMode1WidthProc} ifelse ct_BoldBaseFont/_setwidthProc 3 -1 roll load put {ct_MakeBoldFont}ct_Type0CopyFont definefont } { dup/_fauxfont known not 1 index/SubstMaster known not and { ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put ct_MakeBoldFont } { 2 index 2 index eq {exch pop } { dup length dict begin ct_CopyFont currentdict end definefont } ifelse } ifelse } ifelse pop pop pop setglobal }bind def /?str1 256 string def /?set { $SubstituteFont begin /$substituteFound false def /$fontname 1 index def /$doSmartSub false def end dup findfont $SubstituteFont begin $substituteFound {false} { dup/FontName known { dup/FontName get $fontname eq 1 index/DistillerFauxFont known not and /currentdistillerparams where {pop false 2 index isWidthsOnlyFont not and} if } {false} ifelse } ifelse exch pop /$doSmartSub true def end { 5 1 roll pop pop pop pop findfont } { 1 index findfont dup/FontType get 3 eq { 6 1 roll pop pop pop pop pop false } {pop true} ifelse { $SubstituteFont begin pop pop /$styleArray 1 index def /$regOrdering 2 index def pop pop 0 1 $styleArray length 1 sub { $styleArray exch get ct_StyleDicts $regOrdering 2 copy known { get exch 2 copy known not {pop/Default} if get dup type/nametype eq { ?str1 cvs length dup 1 add exch ?str1 exch(-)putinterval exch dup length exch ?str1 exch 3 index exch putinterval add ?str1 exch 0 exch getinterval cvn } { pop pop/Unknown } ifelse } { pop pop pop pop/Unknown } ifelse } for end findfont }if } ifelse currentglobal false setglobal 3 1 roll null copyfont definefont pop setglobal }bind def setpacking userdict/$SubstituteFont 25 dict put 1 dict begin /SubstituteFont dup $error exch 2 copy known {get} {pop pop{pop/Courier}bind} ifelse def /currentdistillerparams where dup { pop pop currentdistillerparams/CannotEmbedFontPolicy 2 copy known {get/Error eq} {pop pop false} ifelse } if not { countdictstack array dictstack 0 get begin userdict begin $SubstituteFont begin /$str 128 string def /$fontpat 128 string def /$slen 0 def /$sname null def /$match false def /$fontname null def /$substituteFound false def /$inVMIndex null def /$doSmartSub true def /$depth 0 def /$fontname null def /$italicangle 26.5 def /$dstack null def /$Strategies 10 dict dup begin /$Type3Underprint { currentglobal exch false setglobal 11 dict begin /UseFont exch $WMode 0 ne { dup length dict copy dup/WMode $WMode put /UseFont exch definefont } if def /FontName $fontname dup type/stringtype eq{cvn}if def /FontType 3 def /FontMatrix[.001 0 0 .001 0 0]def /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def /FontBBox[0 0 0 0]def /CCInfo 7 dict dup begin /cc null def /x 0 def /y 0 def end def /BuildChar { exch begin CCInfo begin 1 string dup 0 3 index put exch pop /cc exch def UseFont 1000 scalefont setfont cc stringwidth/y exch def/x exch def x y setcharwidth $SubstituteFont/$Strategy get/$Underprint get exec 0 0 moveto cc show x y moveto end end }bind def currentdict end exch setglobal }bind def /$GetaTint 2 dict dup begin /$BuildFont { dup/WMode known {dup/WMode get} {0} ifelse /$WMode exch def $fontname exch dup/FontName known { dup/FontName get dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse exch Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index/FontName get known { pop Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index get null copyfont } {$deepcopyfont} ifelse exch 1 index exch/FontBasedOn exch put dup/FontName $fontname dup type/stringtype eq{cvn}if put definefont Adobe_CoolType_Data/InVMDeepCopiedFonts get begin dup/FontBasedOn get 1 index def end }bind def /$Underprint { gsave x abs y abs gt {/y 1000 def} {/x -1000 def 500 120 translate} ifelse Level2? { [/Separation(All)/DeviceCMYK{0 0 0 1 pop}] setcolorspace } {0 setgray} ifelse 10 setlinewidth x .8 mul [7 3] { y mul 8 div 120 sub x 10 div exch moveto 0 y 4 div neg rlineto dup 0 rlineto 0 y 4 div rlineto closepath gsave Level2? {.2 setcolor} {.8 setgray} ifelse fill grestore stroke } forall pop grestore }bind def end def /$Oblique 1 dict dup begin /$BuildFont { currentglobal exch dup gcheck setglobal null copyfont begin /FontBasedOn currentdict/FontName known { FontName dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse def /FontName $fontname dup type/stringtype eq{cvn}if def /currentdistillerparams where {pop} { /FontInfo currentdict/FontInfo known {FontInfo null copyfont} {2 dict} ifelse dup begin /ItalicAngle $italicangle def /FontMatrix FontMatrix [1 0 ItalicAngle dup sin exch cos div 1 0 0] matrix concatmatrix readonly end 4 2 roll def def } ifelse FontName currentdict end definefont exch setglobal }bind def end def /$None 1 dict dup begin /$BuildFont{}bind def end def end def /$Oblique SetSubstituteStrategy /$findfontByEnum { dup type/stringtype eq{cvn}if dup/$fontname exch def $sname null eq {$str cvs dup length $slen sub $slen getinterval} {pop $sname} ifelse $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval /$match false def $SubstituteFont/$dstack countdictstack array dictstack put mark { $fontpat 0 $slen 7 add getinterval {/$match exch def exit} $str filenameforall } stopped { cleardictstack currentdict true $SubstituteFont/$dstack get { exch { 1 index eq {pop false} {true} ifelse } {begin false} ifelse } forall pop } if cleartomark /$slen 0 def $match false ne {$match(fonts/)anchorsearch pop pop cvn} {/Courier} ifelse }bind def /$ROS 1 dict dup begin /Adobe 4 dict dup begin /Japan1 [/Ryumin-Light/HeiseiMin-W3 /GothicBBB-Medium/HeiseiKakuGo-W5 /HeiseiMaruGo-W4/Jun101-Light]def /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def /GB1 [/STSong-Light/STHeiti-Regular]def /CNS1 [/MKai-Medium/MHei-Medium]def end def end def /$cmapname null def /$deepcopyfont { dup/FontType get 0 eq { 1 dict dup/FontName/copied put copyfont begin /FDepVector FDepVector copyarray 0 1 2 index length 1 sub { 2 copy get $deepcopyfont dup/FontName/copied put /copied exch definefont 3 copy put pop pop } for def currentdict end } {$Strategies/$Type3Underprint get exec} ifelse }bind def /$buildfontname { dup/CIDFont findresource/CIDSystemInfo get begin Registry length Ordering length Supplement 8 string cvs 3 copy length 2 add add add string dup 5 1 roll dup 0 Registry putinterval dup 4 index(-)putinterval dup 4 index 1 add Ordering putinterval 4 2 roll add 1 add 2 copy(-)putinterval end 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch anchorsearch {pop pop 3 2 roll putinterval cvn/$cmapname exch def} {pop pop pop pop pop} ifelse length $str 1 index(-)putinterval 1 add $str 1 index $cmapname $fontpat cvs putinterval $cmapname length add $str exch 0 exch getinterval cvn }bind def /$findfontByROS { /$fontname exch def $ROS Registry 2 copy known { get Ordering 2 copy known {get} {pop pop[]} ifelse } {pop pop[]} ifelse false exch { dup/CIDFont resourcestatus { pop pop save 1 index/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get} {false} ifelse exch pop exch restore {pop} {exch pop true exit} ifelse } {pop} ifelse } forall {$str cvs $buildfontname} { false(*) { save exch dup/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get not} {true} ifelse exch/CIDSystemInfo get dup/Registry get Registry eq exch/Ordering get Ordering eq and and {exch restore exch pop true exit} {pop restore} ifelse } $str/CIDFont resourceforall {$buildfontname} {$fontname $findfontByEnum} ifelse } ifelse }bind def end end currentdict/$error known currentdict/languagelevel known and dup {pop $error/SubstituteFont known} if dup {$error} {Adobe_CoolType_Core} ifelse begin { /SubstituteFont /CMap/Category resourcestatus { pop pop { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and { $sname null eq {dup $str cvs dup length $slen sub $slen getinterval cvn} {$sname} ifelse Adobe_CoolType_Data/InVMFontsByCMap get 1 index 2 copy known { get false exch { pop currentglobal { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } { FontDirectory 1 index known {exch pop true exit} { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } ifelse } ifelse } forall } {pop pop false} ifelse { exch pop exch pop } { dup/CMap resourcestatus { pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS } { 128 string cvs dup(-)search { 3 1 roll search { 3 1 roll pop {dup cvi} stopped {pop pop pop pop pop $findfontByEnum} { 4 2 roll pop pop exch length exch 2 index length 2 index sub exch 1 sub -1 0 { $str cvs dup length 4 index 0 4 index 4 3 roll add getinterval exch 1 index exch 3 index exch putinterval dup/CMap resourcestatus { pop pop 4 1 roll pop pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS true exit } {pop} ifelse } for dup type/booleantype eq {pop} {pop pop pop $findfontByEnum} ifelse } ifelse } {pop pop pop $findfontByEnum} ifelse } {pop pop $findfontByEnum} ifelse } ifelse } ifelse } {//SubstituteFont exec} ifelse /$slen 0 def end } } { { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and {$findfontByEnum} {//SubstituteFont exec} ifelse end } } ifelse bind readonly def Adobe_CoolType_Core/scfindfont/systemfindfont load put } { /scfindfont { $SubstituteFont begin dup systemfindfont dup/FontName known {dup/FontName get dup 3 index ne} {/noname true} ifelse dup { /$origfontnamefound 2 index def /$origfontname 4 index def/$substituteFound true def } if exch pop { $slen 0 gt $sname null ne 3 index length $slen gt or and { pop dup $findfontByEnum findfont dup maxlength 1 add dict begin {1 index/FID eq{pop pop}{def}ifelse} forall currentdict end definefont dup/FontName known{dup/FontName get}{null}ifelse $origfontnamefound ne { $origfontname $str cvs print ( substitution revised, using )print dup/FontName known {dup/FontName get}{(unspecified font)} ifelse $str cvs print(.\n)print } if } {exch pop} ifelse } {exch pop} ifelse end }bind def } ifelse end end Adobe_CoolType_Core_Defined not { Adobe_CoolType_Core/findfont { $SubstituteFont begin $depth 0 eq { /$fontname 1 index dup type/stringtype ne{$str cvs}if def /$substituteFound false def } if /$depth $depth 1 add def end scfindfont $SubstituteFont begin /$depth $depth 1 sub def $substituteFound $depth 0 eq and { $inVMIndex null ne {dup $inVMIndex $AddInVMFont} if $doSmartSub { currentdict/$Strategy known {$Strategy/$BuildFont get exec} if } if } if end }bind put } if } if end /$AddInVMFont { exch/FontName 2 copy known { get 1 dict dup begin exch 1 index gcheck def end exch Adobe_CoolType_Data/InVMFontsByCMap get exch $DictAdd } {pop pop pop} ifelse }bind def /$DictAdd { 2 copy known not {2 copy 4 index length dict put} if Level2? not { 2 copy get dup maxlength exch length 4 index length add lt 2 copy get dup length 4 index length add exch maxlength 1 index lt { 2 mul dict begin 2 copy get{forall}def 2 copy currentdict put end } {pop} ifelse } if get begin {def} forall end }bind def end end %%EndResource currentglobal true setglobal %%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%Copyright: Copyright 1987-2006 Adobe Systems Incorporated. %%Version: 1.23 0 systemdict/languagelevel known dup {currentglobal false setglobal} {false} ifelse exch userdict/Adobe_CoolType_Utility 2 copy known {2 copy get dup maxlength 27 add dict copy} {27 dict} ifelse put Adobe_CoolType_Utility begin /@eexecStartData def /@recognizeCIDFont null def /ct_Level2? exch def /ct_Clone? 1183615869 internaldict dup /CCRun known not exch/eCCRun known not ct_Level2? and or def ct_Level2? {globaldict begin currentglobal true setglobal} if /ct_AddStdCIDMap ct_Level2? {{ mark Adobe_CoolType_Utility/@recognizeCIDFont currentdict put { ((Hex)57 StartData 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8 cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec } stopped { cleartomark Adobe_CoolType_Utility/@recognizeCIDFont get countdictstack dup array dictstack exch 1 sub -1 0 { 2 copy get 3 index eq {1 index length exch sub 1 sub{end}repeat exit} {pop} ifelse } for pop pop Adobe_CoolType_Utility/@eexecStartData get eexec } {cleartomark} ifelse }} {{ Adobe_CoolType_Utility/@eexecStartData get eexec }} ifelse bind def userdict/cid_extensions known dup{cid_extensions/cid_UpdateDB known and}if { cid_extensions begin /cid_GetCIDSystemInfo { 1 index type/stringtype eq {exch cvn exch} if cid_extensions begin dup load 2 index known { 2 copy cid_GetStatusInfo dup null ne { 1 index load 3 index get dup null eq {pop pop cid_UpdateDB} { exch 1 index/Created get eq {exch pop exch pop} {pop cid_UpdateDB} ifelse } ifelse } {pop cid_UpdateDB} ifelse } {cid_UpdateDB} ifelse end }bind def end } if ct_Level2? {end setglobal} if /ct_UseNativeCapability? systemdict/composefont known def /ct_MakeOCF 35 dict def /ct_Vars 25 dict def /ct_GlyphDirProcs 6 dict def /ct_BuildCharDict 15 dict dup begin /charcode 2 string def /dst_string 1500 string def /nullstring()def /usewidths? true def end def ct_Level2?{setglobal}{pop}ifelse ct_GlyphDirProcs begin /GetGlyphDirectory { systemdict/languagelevel known {pop/CIDFont findresource/GlyphDirectory get} { 1 index/CIDFont findresource/GlyphDirectory get dup type/dicttype eq { dup dup maxlength exch length sub 2 index lt { dup length 2 index add dict copy 2 index /CIDFont findresource/GlyphDirectory 2 index put } if } if exch pop exch pop } ifelse + }def /+ { systemdict/languagelevel known { currentglobal false setglobal 3 dict begin /vm exch def } {1 dict begin} ifelse /$ exch def systemdict/languagelevel known { vm setglobal /gvm currentglobal def $ gcheck setglobal } if ?{$ begin}if }def /?{$ type/dicttype eq}def /|{ userdict/Adobe_CoolType_Data known { Adobe_CoolType_Data/AddWidths? known { currentdict Adobe_CoolType_Data begin begin AddWidths? { Adobe_CoolType_Data/CC 3 index put ?{def}{$ 3 1 roll put}ifelse CC charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore currentfont/Widths get exch CC exch put } {?{def}{$ 3 1 roll put}ifelse} ifelse end end } {?{def}{$ 3 1 roll put}ifelse} ifelse } {?{def}{$ 3 1 roll put}ifelse} ifelse }def /! { ?{end}if systemdict/languagelevel known {gvm setglobal} if end }def /:{string currentfile exch readstring pop}executeonly def end ct_MakeOCF begin /ct_cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_CID_STR_SIZE 8000 def /ct_mkocfStr100 100 string def /ct_defaultFontMtx[.001 0 0 .001 0 0]def /ct_1000Mtx[1000 0 0 1000 0 0]def /ct_raise{exch cvx exch errordict exch get exec stop}bind def /ct_reraise {cvx $error/errorname get(Error: )print dup( )cvs print errordict exch get exec stop }bind def /ct_cvnsi { 1 index add 1 sub 1 exch 0 4 1 roll { 2 index exch get exch 8 bitshift add } for exch pop }bind def /ct_GetInterval { Adobe_CoolType_Utility/ct_BuildCharDict get begin /dst_index 0 def dup dst_string length gt {dup string/dst_string exch def} if 1 index ct_CID_STR_SIZE idiv /arrayIndex exch def 2 index arrayIndex get 2 index arrayIndex ct_CID_STR_SIZE mul sub { dup 3 index add 2 index length le { 2 index getinterval dst_string dst_index 2 index putinterval length dst_index add/dst_index exch def exit } { 1 index length 1 index sub dup 4 1 roll getinterval dst_string dst_index 2 index putinterval pop dup dst_index add/dst_index exch def sub /arrayIndex arrayIndex 1 add def 2 index dup length arrayIndex gt {arrayIndex get} { pop exit } ifelse 0 } ifelse } loop pop pop pop dst_string 0 dst_index getinterval end }bind def ct_Level2? { /ct_resourcestatus currentglobal mark true setglobal {/unknowninstancename/Category resourcestatus} stopped {cleartomark setglobal true} {cleartomark currentglobal not exch setglobal} ifelse { { mark 3 1 roll/Category findresource begin ct_Vars/vm currentglobal put ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse ct_Vars/vm get setglobal end } } {{resourcestatus}} ifelse bind def /CIDFont/Category ct_resourcestatus {pop pop} { currentglobal true setglobal /Generic/Category findresource dup length dict copy dup/InstanceType/dicttype put /CIDFont exch/Category defineresource pop setglobal } ifelse ct_UseNativeCapability? { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } if } { /ct_Category 2 dict begin /CIDFont 10 dict def /ProcSet 2 dict def currentdict end def /defineresource { ct_Category 1 index 2 copy known { get dup dup maxlength exch length eq { dup length 10 add dict copy ct_Category 2 index 2 index put } if 3 index 3 index put pop exch pop } {pop pop/defineresource/undefined ct_raise} ifelse }bind def /findresource { ct_Category 1 index 2 copy known { get 2 index 2 copy known {get 3 1 roll pop pop} {pop pop/findresource/undefinedresource ct_raise} ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /resourcestatus { ct_Category 1 index 2 copy known { get 2 index known exch pop exch pop { 0 -1 true } { false } ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /ct_resourcestatus/resourcestatus load def } ifelse /ct_CIDInit 2 dict begin /ct_cidfont_stream_init { { dup(Binary)eq { pop null currentfile ct_Level2? { {cid_BYTE_COUNT()/SubFileDecode filter} stopped {pop pop pop} if } if /readstring load exit } if dup(Hex)eq { pop currentfile ct_Level2? { {null exch/ASCIIHexDecode filter/readstring} stopped {pop exch pop(>)exch/readhexstring} if } {(>)exch/readhexstring} ifelse load exit } if /StartData/typecheck ct_raise } loop cid_BYTE_COUNT ct_CID_STR_SIZE le { 2 copy cid_BYTE_COUNT string exch exec pop 1 array dup 3 -1 roll 0 exch put } { cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi dup array exch 2 sub 0 exch 1 exch { 2 copy 5 index ct_CID_STR_SIZE string 6 index exec pop put pop } for 2 index cid_BYTE_COUNT ct_CID_STR_SIZE mod string 3 index exec pop 1 index exch 1 index length 1 sub exch put } ifelse cid_CIDFONT exch/GlyphData exch put 2 index null eq { pop pop pop } { pop/readstring load 1 string exch { 3 copy exec pop dup length 0 eq { pop pop pop pop pop true exit } if 4 index eq { pop pop pop pop false exit } if } loop pop } ifelse }bind def /StartData { mark { currentdict dup/FDArray get 0 get/FontMatrix get 0 get 0.001 eq { dup/CDevProc known not { /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known {get} { pop pop {pop pop pop pop pop 0 -1000 7 index 2 div 880} } ifelse def } if } { /CDevProc { pop pop pop pop pop 0 1 cid_temp/cid_CIDFONT get /FDArray get 0 get /FontMatrix get 0 get div 7 index 2 div 1 index 0.88 mul }def } ifelse /cid_temp 15 dict def cid_temp begin /cid_CIDFONT exch def 3 copy pop dup/cid_BYTE_COUNT exch def 0 gt { ct_cidfont_stream_init FDArray { /Private get dup/SubrMapOffset known { begin /Subrs SubrCount array def Subrs SubrMapOffset SubrCount SDBytes ct_Level2? { currentdict dup/SubrMapOffset undef dup/SubrCount undef /SDBytes undef } if end /cid_SD_BYTES exch def /cid_SUBR_COUNT exch def /cid_SUBR_MAP_OFFSET exch def /cid_SUBRS exch def cid_SUBR_COUNT 0 gt { GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi 0 1 cid_SUBR_COUNT 1 sub { exch 1 index 1 add cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add GlyphData exch cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi cid_SUBRS 4 2 roll GlyphData exch 4 index 1 index sub ct_GetInterval dup length string copy put } for pop } if } {pop} ifelse } forall } if cleartomark pop pop end CIDFontName currentdict/CIDFont defineresource pop end end } stopped {cleartomark/StartData ct_reraise} if }bind def currentdict end def /ct_saveCIDInit { /CIDInit/ProcSet ct_resourcestatus {true} {/CIDInitC/ProcSet ct_resourcestatus} ifelse { pop pop /CIDInit/ProcSet findresource ct_UseNativeCapability? {pop null} {/CIDInit ct_CIDInit/ProcSet defineresource pop} ifelse } {/CIDInit ct_CIDInit/ProcSet defineresource pop null} ifelse ct_Vars exch/ct_oldCIDInit exch put }bind def /ct_restoreCIDInit { ct_Vars/ct_oldCIDInit get dup null ne {/CIDInit exch/ProcSet defineresource pop} {pop} ifelse }bind def /ct_BuildCharSetUp { 1 index begin CIDFont begin Adobe_CoolType_Utility/ct_BuildCharDict get begin /ct_dfCharCode exch def /ct_dfDict exch def CIDFirstByte ct_dfCharCode add dup CIDCount ge {pop 0} if /cid exch def { GlyphDirectory cid 2 copy known {get} {pop pop nullstring} ifelse dup length FDBytes sub 0 gt { dup FDBytes 0 ne {0 FDBytes ct_cvnsi} {pop 0} ifelse /fdIndex exch def dup length FDBytes sub FDBytes exch getinterval /charstring exch def exit } { pop cid 0 eq {/charstring nullstring def exit} if /cid 0 def } ifelse } loop }def /ct_SetCacheDevice { 0 0 moveto dup stringwidth 3 -1 roll true charpath pathbbox 0 -1000 7 index 2 div 880 setcachedevice2 0 0 moveto }def /ct_CloneSetCacheProc { 1 eq { stringwidth pop -2 div -880 0 -1000 setcharwidth moveto } { usewidths? { currentfont/Widths get cid 2 copy known {get exch pop aload pop} {pop pop stringwidth} ifelse } {stringwidth} ifelse setcharwidth 0 0 moveto } ifelse }def /ct_Type3ShowCharString { ct_FDDict fdIndex 2 copy known {get} { currentglobal 3 1 roll 1 index gcheck setglobal ct_Type1FontTemplate dup maxlength dict copy begin FDArray fdIndex get dup/FontMatrix 2 copy known {get} {pop pop ct_defaultFontMtx} ifelse /FontMatrix exch dup length array copy def /Private get /Private exch def /Widths rootfont/Widths get def /CharStrings 1 dict dup/.notdef dup length string copy put def currentdict end /ct_Type1Font exch definefont dup 5 1 roll put setglobal } ifelse dup/CharStrings get 1 index/Encoding get ct_dfCharCode get charstring put rootfont/WMode 2 copy known {get} {pop pop 0} ifelse exch 1000 scalefont setfont ct_str1 0 ct_dfCharCode put ct_str1 exch ct_dfSetCacheProc ct_SyntheticBold { currentpoint ct_str1 show newpath moveto ct_str1 true charpath ct_StrokeWidth setlinewidth stroke } {ct_str1 show} ifelse }def /ct_Type4ShowCharString { ct_dfDict ct_dfCharCode charstring FDArray fdIndex get dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not {ct_1000Mtx matrix concatmatrix concat} {pop} ifelse /Private get Adobe_CoolType_Utility/ct_Level2? get not { ct_dfDict/Private 3 -1 roll {put} 1183615869 internaldict/superexec get exec } if 1183615869 internaldict Adobe_CoolType_Utility/ct_Level2? get {1 index} {3 index/Private get mark 6 1 roll} ifelse dup/RunInt known {/RunInt get} {pop/CCRun} ifelse get exec Adobe_CoolType_Utility/ct_Level2? get not {cleartomark} if }bind def /ct_BuildCharIncremental { { Adobe_CoolType_Utility/ct_MakeOCF get begin ct_BuildCharSetUp ct_ShowCharString } stopped {stop} if end end end end }bind def /BaseFontNameStr(BF00)def /ct_Type1FontTemplate 14 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /PaintType 0 def currentdict end def /BaseFontTemplate 11 dict begin /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /BuildChar/ct_BuildCharIncremental load def ct_Clone? { /FontType 3 def /ct_ShowCharString/ct_Type3ShowCharString load def /ct_dfSetCacheProc/ct_CloneSetCacheProc load def /ct_SyntheticBold false def /ct_StrokeWidth 1 def } { /FontType 4 def /Private 1 dict dup/lenIV 4 put def /CharStrings 1 dict dup/.notdefput def /PaintType 0 def /ct_ShowCharString/ct_Type4ShowCharString load def } ifelse /ct_str1 1 string def currentdict end def /BaseFontDictSize BaseFontTemplate length 5 add def /ct_matrixeq { true 0 1 5 { dup 4 index exch get exch 3 index exch get eq and dup not {exit} if } for exch pop exch pop }bind def /ct_makeocf { 15 dict begin exch/WMode exch def exch/FontName exch def /FontType 0 def /FMapType 2 def dup/FontMatrix known {dup/FontMatrix get/FontMatrix exch def} {/FontMatrix matrix def} ifelse /bfCount 1 index/CIDCount get 256 idiv 1 add dup 256 gt{pop 256}if def /Encoding 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for bfCount 1 255{2 copy bfCount put pop}for def /FDepVector bfCount dup 256 lt{1 add}if array def BaseFontTemplate BaseFontDictSize dict copy begin /CIDFont exch def CIDFont/FontBBox known {CIDFont/FontBBox get/FontBBox exch def} if CIDFont/CDevProc known {CIDFont/CDevProc get/CDevProc exch def} if currentdict end BaseFontNameStr 3(0)putinterval 0 1 bfCount dup 256 eq{1 sub}if { FDepVector exch 2 index BaseFontDictSize dict copy begin dup/CIDFirstByte exch 256 mul def FontType 3 eq {/ct_FDDict 2 dict def} if currentdict end 1 index 16 BaseFontNameStr 2 2 getinterval cvrs pop BaseFontNameStr exch definefont put } for ct_Clone? {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def} if FontName currentdict end definefont ct_Clone? { gsave dup 1000 scalefont setfont ct_BuildCharDict begin /usewidths? false def currentfont/Widths get begin exch/CIDFont get/GlyphDirectory get { pop dup charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore def } forall end /usewidths? true def end grestore } {exch pop} ifelse }bind def currentglobal true setglobal /ct_ComposeFont { ct_UseNativeCapability? { 2 index/CMap ct_resourcestatus {pop pop exch pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 3 index def /CMapVersion 1.000 def /CMapType 1 def exch/WMode exch def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search { dup length string copy exch pop exch pop } {pop(Identity)} ifelse } {pop (Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { 3 2 roll pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def setglobal /ct_MakeIdentity { ct_UseNativeCapability? { 1 index/CMap ct_resourcestatus {pop pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 2 index def /CMapVersion 1.000 def /CMapType 1 def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search {dup length string copy exch pop exch pop} {pop(Identity)} ifelse } {pop(Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { exch pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def currentdict readonly pop end end %%EndResource setglobal %%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0 %%Copyright: Copyright 1987-2004 Adobe Systems Incorporated. %%Version: 1.0 0 userdict/ct_T42Dict 15 dict put ct_T42Dict begin /Is2015? { version cvi 2015 ge }bind def /AllocGlyphStorage { Is2015? { pop } { {string}forall }ifelse }bind def /Type42DictBegin { 25 dict begin /FontName exch def /CharStrings 256 dict begin /.notdef 0 def currentdict end def /Encoding exch def /PaintType 0 def /FontType 42 def /FontMatrix[1 0 0 1 0 0]def 4 array astore cvx/FontBBox exch def /sfnts }bind def /Type42DictEnd { currentdict dup/FontName get exch definefont end ct_T42Dict exch dup/FontName get exch put }bind def /RD{string currentfile exch readstring pop}executeonly def /PrepFor2015 { Is2015? { /GlyphDirectory 16 dict def sfnts 0 get dup 2 index (glyx) putinterval 2 index (locx) putinterval pop pop } { pop pop }ifelse }bind def /AddT42Char { Is2015? { /GlyphDirectory get begin def end pop pop } { /sfnts get 4 index get 3 index 2 index putinterval pop pop pop pop }ifelse }bind def /T0AddT42Mtx2 { /CIDFont findresource/Metrics2 get begin def end }bind def end %%EndResource currentglobal true setglobal %%BeginFile: MMFauxFont.prc %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. %%All Rights Reserved. userdict /ct_EuroDict 10 dict put ct_EuroDict begin /ct_CopyFont { { 1 index /FID ne {def} {pop pop} ifelse} forall } def /ct_GetGlyphOutline { gsave initmatrix newpath exch findfont dup length 1 add dict begin ct_CopyFont /Encoding Encoding dup length array copy dup 4 -1 roll 0 exch put def currentdict end /ct_EuroFont exch definefont 1000 scalefont setfont 0 0 moveto [ <00> stringwidth <00> false charpath pathbbox [ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall grestore counttomark 8 add } def /ct_MakeGlyphProc { ] cvx /ct_PSBuildGlyph cvx ] cvx } def /ct_PSBuildGlyph { gsave 8 -1 roll pop 7 1 roll 6 -2 roll ct_FontMatrix transform 6 2 roll 4 -2 roll ct_FontMatrix transform 4 2 roll ct_FontMatrix transform currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse dup 9 1 roll { currentdict /StrokeWidth 2 copy known { get 2 div 0 ct_FontMatrix dtransform pop 5 1 roll 4 -1 roll 4 index sub 4 1 roll 3 -1 roll 4 index sub 3 1 roll exch 4 index add exch 4 index add 5 -1 roll pop } { pop pop } ifelse } if setcachedevice ct_FontMatrix concat ct_PSPathOps begin exec end { currentdict /StrokeWidth 2 copy known { get } { pop pop 0 } ifelse setlinewidth stroke } { fill } ifelse grestore } def /ct_PSPathOps 4 dict dup begin /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def end def /ct_matrix1000 [1000 0 0 1000 0 0] def /ct_AddGlyphProc { 2 index findfont dup length 4 add dict begin ct_CopyFont /CharStrings CharStrings dup length 1 add dict copy begin 3 1 roll def currentdict end def /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def /ct_PSBuildGlyph /ct_PSBuildGlyph load def /ct_PSPathOps /ct_PSPathOps load def currentdict end definefont pop } def systemdict /languagelevel known { /ct_AddGlyphToPrinterFont { 2 copy ct_GetGlyphOutline 3 add -1 roll restore ct_MakeGlyphProc ct_AddGlyphProc } def } { /ct_AddGlyphToPrinterFont { pop pop restore Adobe_CTFauxDict /$$$FONTNAME get /Euro Adobe_CTFauxDict /$$$SUBSTITUTEBASE get ct_EuroDict exch get ct_AddGlyphProc } def } ifelse /AdobeSansMM { 556 0 24 -19 541 703 { 541 628 m 510 669 442 703 354 703 c 201 703 117 607 101 444 c 50 444 l 25 372 l 97 372 l 97 301 l 49 301 l 24 229 l 103 229 l 124 67 209 -19 350 -19 c 435 -19 501 25 509 32 c 509 131 l 492 105 417 60 343 60 c 267 60 204 127 197 229 c 406 229 l 430 301 l 191 301 l 191 372 l 455 372 l 479 444 l 194 444 l 201 531 245 624 348 624 c 433 624 484 583 509 534 c cp 556 0 m } ct_PSBuildGlyph } def /AdobeSerifMM { 500 0 10 -12 484 692 { 347 298 m 171 298 l 170 310 170 322 170 335 c 170 362 l 362 362 l 374 403 l 172 403 l 184 580 244 642 308 642 c 380 642 434 574 457 457 c 481 462 l 474 691 l 449 691 l 433 670 429 657 410 657 c 394 657 360 692 299 692 c 204 692 94 604 73 403 c 22 403 l 10 362 l 70 362 l 69 352 69 341 69 330 c 69 319 69 308 70 298 c 22 298 l 10 257 l 73 257 l 97 57 216 -12 295 -12 c 364 -12 427 25 484 123 c 458 142 l 425 101 384 37 316 37 c 256 37 189 84 173 257 c 335 257 l cp 500 0 m } ct_PSBuildGlyph } def end %%EndFile setglobal Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end %%BeginResource: procset Adobe_AGM_Image 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Image 71 dict dup begin put /Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def /nd{ null def }bind def /AGMIMG_&image nd /AGMIMG_&colorimage nd /AGMIMG_&imagemask nd /AGMIMG_mbuf()def /AGMIMG_ybuf()def /AGMIMG_kbuf()def /AGMIMG_c 0 def /AGMIMG_m 0 def /AGMIMG_y 0 def /AGMIMG_k 0 def /AGMIMG_tmp nd /AGMIMG_imagestring0 nd /AGMIMG_imagestring1 nd /AGMIMG_imagestring2 nd /AGMIMG_imagestring3 nd /AGMIMG_imagestring4 nd /AGMIMG_imagestring5 nd /AGMIMG_cnt nd /AGMIMG_fsave nd /AGMIMG_colorAry nd /AGMIMG_override nd /AGMIMG_name nd /AGMIMG_maskSource nd /AGMIMG_flushfilters nd /invert_image_samples nd /knockout_image_samples nd /img nd /sepimg nd /devnimg nd /idximg nd /ds { Adobe_AGM_Core begin Adobe_AGM_Image begin /AGMIMG_&image systemdict/image get def /AGMIMG_&imagemask systemdict/imagemask get def /colorimage where{ pop /AGMIMG_&colorimage/colorimage ldf }if end end }def /ps { Adobe_AGM_Image begin /AGMIMG_ccimage_exists{/customcolorimage where { pop /Adobe_AGM_OnHost_Seps where { pop false }{ /Adobe_AGM_InRip_Seps where { pop false }{ true }ifelse }ifelse }{ false }ifelse }bdf level2{ /invert_image_samples { Adobe_AGM_Image/AGMIMG_tmp Decode length ddf /Decode[Decode 1 get Decode 0 get]def }def /knockout_image_samples { Operator/imagemask ne{ /Decode[1 1]def }if }def }{ /invert_image_samples { {1 exch sub}currenttransfer addprocs settransfer }def /knockout_image_samples { {pop 1}currenttransfer addprocs settransfer }def }ifelse /img/imageormask ldf /sepimg/sep_imageormask ldf /devnimg/devn_imageormask ldf /idximg/indexed_imageormask ldf /_ctype 7 def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall }def /pt { end }def /dt { }def /AGMIMG_flushfilters { dup type/arraytype ne {1 array astore}if dup 0 get currentfile ne {dup 0 get flushfile}if { dup type/filetype eq { dup status 1 index currentfile ne and {closefile} {pop} ifelse }{pop}ifelse }forall }def /AGMIMG_init_common { currentdict/T known{/ImageType/T ldf currentdict/T undef}if currentdict/W known{/Width/W ldf currentdict/W undef}if currentdict/H known{/Height/H ldf currentdict/H undef}if currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if currentdict/D known{/Decode/D ldf currentdict/D undef}if currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if currentdict/O known{ /Operator/O load 1 eq{ /imagemask }{ /O load 2 eq{ /image }{ /colorimage }ifelse }ifelse def currentdict/O undef }if currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if currentdict/I known{/Interpolate/I ldf currentdict/I undef}if currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if /DataSource load xcheck not{ DataSource type/arraytype eq{ DataSource 0 get type/filetype eq{ /_Filters DataSource def currentdict/MultipleDataSources known not{ /DataSource DataSource dup length 1 sub get def }if }if }if currentdict/MultipleDataSources known not{ /MultipleDataSources DataSource type/arraytype eq{ DataSource length 1 gt } {false}ifelse def }if }if /NComponents Decode length 2 div def currentdict/SkipImageProc known not{/SkipImageProc{false}def}if }bdf /imageormask_sys { begin AGMIMG_init_common save mark level2{ currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load AGMIMG_&imagemask }{ BitsPerComponent ImageMatrix/DataSource load AGMIMG_&image }ifelse }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if cleartomark restore end }def /overprint_plate { currentoverprint{ 0 get dup type/nametype eq{ dup/DeviceGray eq{ pop AGMCORE_black_plate not }{ /DeviceCMYK eq{ AGMCORE_is_cmyk_sep not }if }ifelse }{ false exch { AGMOHS_sepink eq or }forall not }ifelse }{ pop false }ifelse }def /process_mask { level3{ dup begin /ImageType 1 def end 4 dict begin /DataDict exch def /ImageType 3 def /InterleaveType 3 def /MaskDict 9 dict begin /ImageType 1 def /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def /ImageMatrix[Width 0 0 Height neg 0 Height]def /NComponents 1 def /BitsPerComponent 1 def /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def currentdict end def currentdict end }if }def /use_mask { dup/Mask known {dup/Mask get}{false}ifelse }def /imageormask { begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata } { save mark level2 AGMCORE_host_sep not and{ currentdict Operator/imagemask eq DeviceN_PS2 not and{ imagemask }{ AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{ [/Separation/Black/DeviceGray{}]setcolorspace /Decode[Decode 1 get Decode 0 get]def }if use_mask{ process_mask image }{ DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and { Names convert_to_process not{ 2 dict begin /imageDict xdf /names_index 0 def gsave imageDict write_image_file{ Names{ dup(None)ne{ [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace Operator imageDict read_image_file names_index 0 eq{true setoverprint}if /names_index names_index 1 add def }{ pop }ifelse }forall close_image_file }if grestore end }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load /Adobe_AGM_OnHost_Seps where{ pop imagemask }{ currentgray 1 ne{ currentdict imageormask_sys }{ currentoverprint not{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }ifelse }{ BitsPerComponent ImageMatrix MultipleDataSources{ 0 1 NComponents 1 sub{ DataSource exch get }for }{ /DataSource load }ifelse Operator/colorimage eq{ AGMCORE_host_sep{ MultipleDataSources level2 or NComponents 4 eq and{ AGMCORE_is_cmyk_sep{ MultipleDataSources{ /DataSource DataSource 0 get xcheck { [ DataSource 0 get/exec cvx DataSource 1 get/exec cvx DataSource 2 get/exec cvx DataSource 3 get/exec cvx /AGMCORE_get_ink_data cvx ]cvx }{ DataSource aload pop AGMCORE_get_ink_data }ifelse def }{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul /DataSource load filter_cmyk 0()/SubFileDecode filter def }ifelse /Decode[Decode 0 get Decode 1 get]def /MultipleDataSources false def /NComponents 1 def /Operator/image def invert_image_samples 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }{ MultipleDataSources NComponents AGMIMG_&colorimage }ifelse }{ true NComponents colorimage }ifelse }{ Operator/image eq{ AGMCORE_host_sep{ /DoImage true def currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse { AGMCORE_black_plate not Operator/imagemask ne and{ /DoImage false def currentdict ignoreimagedata }if }if 1 AGMCORE_&setgray DoImage {currentdict imageormask_sys}if }{ use_mask{ process_mask image }{ image }ifelse }ifelse }{ Operator/knockout eq{ pop pop pop pop pop currentcolorspace overprint_plate not{ knockout_unitsq }if }if }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /sep_imageormask { /sep_colorspace_dict AGMCORE_gget begin CSA map_csa begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_avoid_L2_sep_space{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def }if AGMIMG_ccimage_exists MappedCSA 0 get/DeviceCMYK eq and currentdict/Components known and Name()ne and Name(All)ne and Operator/image eq and AGMCORE_producing_seps not and level2 not and { Width Height BitsPerComponent ImageMatrix [ /DataSource load/exec cvx { 0 1 2 index length 1 sub{ 1 index exch 2 copy get 255 xor put }for }/exec cvx ]cvx bind MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Name findcmykcustomcolor customcolorimage }{ AGMCORE_producing_seps not{ level2{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{ [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if currentdict imageormask }{ currentdict Operator/imagemask eq{ imageormask }{ sep_imageormask_lev1 }ifelse }ifelse }{ AGMCORE_host_sep{ Operator/knockout eq{ currentdict/ImageMatrix get concat knockout_unitsq }{ currentgray 1 ne{ AGMCORE_is_cmyk_sep Name(All)ne and{ level2{ Name AGMCORE_IsSeparationAProcessColor { Operator/imagemask eq{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor }if }{ invert_image_samples }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ [/Separation Name[/DeviceGray] { sep_colorspace_proc AGMCORE_get_ink_data 1 exch sub }bind ]AGMCORE_&setcolorspace /sep_tint AGMCORE_gget AGMCORE_&setcolor }if }ifelse currentdict imageormask_sys }{ currentdict Operator/imagemask eq{ imageormask_sys }{ sep_image_lev1_sep }ifelse }ifelse }{ Operator/imagemask ne{ invert_image_samples }if currentdict imageormask_sys }ifelse }{ currentoverprint not Name(All)eq or Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ currentcolorspace 0 get/Separation ne{ [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if }if currentoverprint MappedCSA 0 get/DeviceCMYK eq and Name AGMCORE_IsSeparationAProcessColor not and //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse Name(All)ne and{ imageormask_l2_overprint }{ currentdict imageormask }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end }def /colorSpaceElemCnt { mark currentcolor counttomark dup 2 add 1 roll cleartomark }bdf /devn_sep_datasource { 1 dict begin /dataSource xdf [ 0 1 dataSource length 1 sub{ dup currentdict/dataSource get/exch cvx/get cvx/exec cvx /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx }for ]cvx bind end }bdf /devn_alt_datasource { 11 dict begin /convProc xdf /origcolorSpaceElemCnt xdf /origMultipleDataSources xdf /origBitsPerComponent xdf /origDecode xdf /origDataSource xdf /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def /DataSource origMultipleDataSources { [ BitsPerComponent 8 idiv origDecode length 2 idiv mul string 0 1 origDecode length 2 idiv 1 sub { dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch origDataSource exch get 0()/SubFileDecode filter BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx }for ]bind cvx }{origDataSource}ifelse 0()/SubFileDecode filter def [ origcolorSpaceElemCnt string 0 2 origDecode length 2 sub { dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx }for /convProc load/exec cvx origcolorSpaceElemCnt 1 sub -1 0 { /dup cvx 2/add cvx/index cvx 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx }for ]bind cvx 0()/SubFileDecode filter end }bdf /devn_imageormask { /devicen_colorspace_dict AGMCORE_gget begin CSA map_csa 2 dict begin dup /srcDataStrs[3 -1 roll begin AGMIMG_init_common currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi { dup 65535 gt{1 add 2 div cvi}{exit}ifelse }loop string }repeat end]def /dstDataStr srcDataStrs 0 get length string def begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_producing_seps not{ level3 not{ Operator/imagemask ne{ /DataSource[[ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def /MultipleDataSources true def /Decode colorSpaceElemCnt[exch{0 1}repeat]def }if }if currentdict imageormask }{ AGMCORE_host_sep{ Names convert_to_process{ CSA get_csa_by_name 0 get/DeviceCMYK eq{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource filter_cmyk 0()/SubFileDecode filter def /MultipleDataSources false def /Decode[1 0]def /DeviceGray setcolorspace currentdict imageormask_sys }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate{ /DataSource DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource /MultipleDataSources false def /Decode colorSpaceElemCnt[exch{0 1}repeat]def currentdict imageormask_sys }{ gsave knockout_unitsq grestore currentdict consumeimagedata }ifelse }ifelse } { /devicen_colorspace_dict AGMCORE_gget/names_index known{ Operator/imagemask ne{ MultipleDataSources{ /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def /MultipleDataSources false def }{ /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def }ifelse invert_image_samples }if currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ currentdict imageormask }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end end }def /imageormask_l2_overprint { currentdict currentcmykcolor add add add 0 eq{ currentdict consumeimagedata }{ level3{ currentcmykcolor /AGMIMG_k xdf /AGMIMG_y xdf /AGMIMG_m xdf /AGMIMG_c xdf Operator/imagemask eq{ [/DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ]/DeviceCMYK{}]setcolorspace AGMIMG_c 0 ne{AGMIMG_c}if AGMIMG_m 0 ne{AGMIMG_m}if AGMIMG_y 0 ne{AGMIMG_y}if AGMIMG_k 0 ne{AGMIMG_k}if setcolor }{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def [/Indexed [ /DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ] /DeviceCMYK{ AGMIMG_k 0 eq{0}if AGMIMG_y 0 eq{0 exch}if AGMIMG_m 0 eq{0 3 1 roll}if AGMIMG_c 0 eq{0 4 1 roll}if } ] 255 { 255 div mark exch dup dup dup AGMIMG_k 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_y 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_m 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_c 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop counttomark 1 roll }{ pop }ifelse counttomark 1 add -1 roll pop } ]setcolorspace }ifelse imageormask_sys }{ write_image_file{ currentcmykcolor 0 ne{ [/Separation/Black/DeviceGray{}]setcolorspace gsave /Black [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Yellow/DeviceGray{}]setcolorspace gsave /Yellow [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Magenta/DeviceGray{}]setcolorspace gsave /Magenta [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Cyan/DeviceGray{}]setcolorspace gsave /Cyan [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if close_image_file }{ imageormask }ifelse }ifelse }ifelse }def /indexed_imageormask { begin AGMIMG_init_common save mark currentdict AGMCORE_host_sep{ Operator/knockout eq{ /indexed_colorspace_dict AGMCORE_gget dup/CSA known{ /CSA get get_csa_by_name }{ /Names get }ifelse overprint_plate not{ knockout_unitsq }if }{ Indexed_DeviceN{ /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{ indexed_image_lev2_sep }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }{ AGMCORE_is_cmyk_sep{ Operator/imagemask eq{ imageormask_sys }{ level2{ indexed_image_lev2_sep }{ indexed_image_lev1_sep }ifelse }ifelse }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ level2{ Indexed_DeviceN{ /indexed_colorspace_dict AGMCORE_gget begin }{ /indexed_colorspace_dict AGMCORE_gget dup null ne { begin currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and AGMCORE_in_rip_sep and{ [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup] setcolorspace }if end } {pop}ifelse }ifelse imageormask Indexed_DeviceN{ end }if }{ Operator/imagemask eq{ imageormask }{ indexed_imageormask_lev1 }ifelse }ifelse }ifelse cleartomark restore currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /indexed_image_lev2_sep { /indexed_colorspace_dict AGMCORE_gget begin begin Indexed_DeviceN not{ currentcolorspace dup 1/DeviceGray put dup 3 currentcolorspace 2 get 1 add string 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub { dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put }for put setcolorspace }if currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse end end }def /OPIimage { dup type/dicttype ne{ 10 dict begin /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /ImageType 1 def /Decode[0 1 def] currentdict end }if dup begin /NComponents 1 cdndf /MultipleDataSources false cdndf /SkipImageProc{false}cdndf /Decode[ 0 currentcolorspace 0 get/Indexed eq{ 2 BitsPerComponent exp 1 sub }{ 1 }ifelse ]cdndf /Operator/image cdndf end /sep_colorspace_dict AGMCORE_gget null eq{ imageormask }{ gsave dup begin invert_image_samples end sep_imageormask grestore }ifelse }def /cachemask_level2 { 3 dict begin /LZWEncode filter/WriteFilter xdf /readBuffer 256 string def /ReadFilter currentfile 0(%EndMask)/SubFileDecode filter /ASCII85Decode filter /RunLengthDecode filter def { ReadFilter readBuffer readstring exch WriteFilter exch writestring not{exit}if }loop WriteFilter closefile end }def /spot_alias { /mapto_sep_imageormask { dup type/dicttype ne{ 12 dict begin /ImageType 1 def /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /MultipleDataSources false def }{ begin }ifelse /Decode[/customcolor_tint AGMCORE_gget 0]def /Operator/image def /SkipImageProc{false}def currentdict end sep_imageormask }bdf /customcolorimage { Adobe_AGM_Image/AGMIMG_colorAry xddf /customcolor_tint AGMCORE_gget << /Name AGMIMG_colorAry 4 get /CSA[/DeviceCMYK] /TintMethod/Subtractive /TintProc null /MappedCSA null /NComponents 4 /Components[AGMIMG_colorAry aload pop pop] >> setsepcolorspace mapto_sep_imageormask }ndf Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put /customcolorimage { Adobe_AGM_Image/AGMIMG_override false put current_spot_alias{dup 4 get map_alias}{false}ifelse { false set_spot_alias /customcolor_tint AGMCORE_gget exch setsepcolorspace pop mapto_sep_imageormask true set_spot_alias }{ //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec }ifelse }bdf }def /snap_to_device { 6 dict begin matrix currentmatrix dup 0 get 0 eq 1 index 3 get 0 eq and 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop { 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def 0 0 transform AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch itransform/AGMIMG_llY exch def/AGMIMG_llX exch def 1 1 transform AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch itransform/AGMIMG_urY exch def/AGMIMG_urX exch def [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat }{ }ifelse end }def level2 not{ /colorbuf { 0 1 2 index length 1 sub{ dup 2 index exch get 255 exch sub 2 index 3 1 roll put }for }def /tint_image_to_color { begin Width Height BitsPerComponent ImageMatrix /DataSource load end Adobe_AGM_Image begin /AGMIMG_mbuf 0 string def /AGMIMG_ybuf 0 string def /AGMIMG_kbuf 0 string def { colorbuf dup length AGMIMG_mbuf length ne { dup length dup dup /AGMIMG_mbuf exch string def /AGMIMG_ybuf exch string def /AGMIMG_kbuf exch string def }if dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop } addprocs {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage end }def /sep_imageormask_lev1 { begin MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ { 255 mul round cvi GrayLookup exch get }currenttransfer addprocs settransfer currentdict imageormask }{ /sep_colorspace_dict AGMCORE_gget/Components known{ MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{ {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer currentdict imageormask }{ currentcolortransfer {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }{ MappedCSA 0 get/DeviceGray eq{ {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer currentdict imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }ifelse }ifelse }ifelse end }def /sep_image_lev1_sep { begin /sep_colorspace_dict AGMCORE_gget/Components known{ Components aload pop Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf {AGMIMG_c mul 1 exch sub} {AGMIMG_m mul 1 exch sub} {AGMIMG_y mul 1 exch sub} {AGMIMG_k mul 1 exch sub} }{ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub} {255 mul round cvi ColorLookup exch get 1 get 1 exch sub} {255 mul round cvi ColorLookup exch get 2 get 1 exch sub} {255 mul round cvi ColorLookup exch get 3 get 1 exch sub} }ifelse AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end }def /indexed_imageormask_lev1 { /indexed_colorspace_dict AGMCORE_gget begin begin currentdict MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceGray eq{ {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }ifelse }ifelse }ifelse end end }def /indexed_image_lev1_sep { /indexed_colorspace_dict AGMCORE_gget begin begin {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end end }def }if end systemdict/setpacking known {setpacking}if %%EndResource currentdict Adobe_AGM_Utils eq {end} if %%EndProlog %%BeginSetup Adobe_AGM_Utils begin 2 2010 Adobe_AGM_Core/ds gx Adobe_CoolType_Core/ds get exec Adobe_AGM_Image/ds gx currentdict Adobe_AGM_Utils eq {end} if %%EndSetup %%Page: 8 1 %%EndPageComments %%BeginPageSetup %ADOBeginClientInjection: PageSetup Start "AI11EPS" %AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0 %ADOEndClientInjection: PageSetup Start "AI11EPS" Adobe_AGM_Utils begin Adobe_AGM_Core/ps gx Adobe_AGM_Utils/capture_cpd gx Adobe_CoolType_Core/ps get exec Adobe_AGM_Image/ps gx %ADOBeginClientInjection: PageSetup End "AI11EPS" /currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse { userdict /AI11_PDFMark5 /cleartomark load put userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put} { userdict /AI11_PDFMark5 /pdfmark load put userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse [/NamespacePush AI11_PDFMark5 [/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5 [{ai_metadata_stream_123} currentfile 0 (% &&end XMP packet marker&&) /SubFileDecode filter AI11_ReadMetadata_PDFMark5 application/postscript diagramas_01 Adobe Illustrator CS4 2011-06-17T09:35:05-03:00 2011-06-17T09:35:05-03:00 2011-06-17T09:35:05-03:00 256 72 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgASAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9KSaZpESQ8rXm0x4qFJr UIz92HZDirHLM+QIbGTVk04Wc0bTRmGVSswkiqJEIRpKbqRXpiqM0i3nXzFLHdRGB44hJFbogMIr IFDibkXZjuONKfqxVlmKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KsbuDrdvqVtPql/YDQubBIxBJDMhaBwvqTvO8ZHUbRr2xVW8q6Xo9voUljp8wud PaSZVdJTKOLn7PPk3Y+OKrtN0CfT9SluTctdQyoFEk7cp+RdTQkAAqANvuptXFUV+jbx/jGoSqG+ IKKUFd6Yqxn9POdUW2GrWv1GvKS8N/ECIviVWWPieR5qFI5ACta9iq35o1SaxsibHXYPXqi8p7yG 3CvIwWJaukwo5rvTbsDiqZ6JHcXVlAkmtia/EYN3HDLHMFkFBIoZRHVVY0B4D5Yql0evxtqf1U61 ai3KCVZxfRF2hbZXEVPFlB325DxxVkNvZzExzpqLzxBhsCCrUahFQcVXvp13JI7rfyorMxCClAKn YYqx6bXLaPW7ewGuW5tpreed7g3cayq0DqpVYaHkDyJ5ctqHbFXeYtah0rSri8g1y2mmgX1DDcXk dshTkFJ9SktDvt8O52xVXmKTxIU80rayIQk4ikglX1HVSFq4/wAoU2FQcVQflzXjqi3RutZs4DDc S28K21/HdFxAaM0nwQ+m3Q8d9jXFVaXW7VNXhsRrsBilhknMxuow4ELcXpFuTQkb18fDFU7tbZ5O E8OqNcxK614MrKdxUVUnFVaTT7qWR5FvpY1ZjRFpQUNMVY5NrcaarHZrrdq0MiPKJTexrII4iFkb 0uJJ4k9jT3GKr9f1iLTdMuLq31u3nuIE9QQT3cdshQMAxMtJONAf5d+mKowXNqYS36fi9VSqMonQ qJWUFU5dd+Q7dO2KpX5b12XU452vdWs7Zo5pIYktdQju+Xomj8jwh4Efy77YqiJdbs01eKxGvW5j eGSd5DdxCRViPFqQ9SOXetOvhuqp+ZNZTTtKnubXXIJJo1SomvIbZEEzGNJGlcSqq8/FfHrShVRW nyRJZxtdeZllkdghYyw0ElAGjUpwDUb2riqlo2rx34uPW1u2jeKZ4o0gu47glYwpLPtHwPxVC7/D xbvQKqV1rsUerWllDrdrJBOkks0z3saSJHDszJFxYyfFQdQOu+26rvMWtjTNOluLLWbW5uYjGXhu r6O0jCOxHNpeM3EDiT9nscVTGO5tTCrvr8avUI6rMjKJNgUDHiT8Rp0+jFUDomsxahDLJNrltFSa SKEQXkdwGWEhWZjSMKedfh32oepoFWTWdrPbyH1Ll7gMNg/ah/txVF4q7FXnOpeaddvL2fTP0TFP Z2lw0clyyShkpy9KSNZF9OUhVqTy4g/diqBi89eZdNZraw8txQQH1LiYv60Sc5aspSiyKeTghhUF etNxiqfeUvO+r65ffVbvT/qnpqGnJjmVQwYgoskgUMQwr03UhuhFVWQ/4c0ozSXlvCtnfXRRrq8t wI5peKhQsjqOTCij7sVYNceQNciuBHGtxcI1JHlGpXZgA9QuYhbyTLDQlVqPTpQ+NcVWeYdJ0vSp lEzanb/WDHVI5LhFk5MIpGP1C4SpRKEcl+HryG5CqaaL+j4NMjuRaao0rzNK16kLetIrkAq0ivI7 qaDfl74ql+n+S9Sv0WCUXNuLJYkQzXd+scsYAqjQmQwuKp9koQNqAYqzyLQNDtbz6/bafbw3pHpm 5jiRZOLMpYcgK0biK+NBiqyTQLB7qfUbZFs9WuAIpdThjj+sNGj1EZZ1eq7UoRirDb3yVrUTLHDJ PcSsp4lL27SNU9QBlMYeKDdJWJXiA1OleOKqGvaNZaalp9Ze+t2ERSCJGMMcjxlSFkewlgL9v7wG vXFWtJ0izu7Nb62bV3FxIk8UkkLSOOCCPeeSR7ongKchNX6RiqpDotu9+rzfpIXEYcm1ZZLkFC5A l9K7muY1LLsW4V3p2GKtWflTVr2tsRdWqx8jE8lzewoUBQ8WSN1hIcuwKceJAPwjbFWZWvlTy9aX FrfpptqmqW0SQR3qxJ6wToVEgVWoanFV7eXNM+uXOpWkSWOr3fFLjVII4vrDpGwojO6tyHFAu/8A DFWIX/kzWkWOCF5p5N3Vo7y7jXj6q8kdQ8UBBV2JTiFah2rTFUJr2k2GlfUUun1C3Z09K3SLlHFI 8YDATSadJByFFArKDXbvtiremaNZXtkLuA6u4mlWeKZ4jJJ8MYi2uXke7rwBUMJwR9GKomHy8GnW eaPVfheQ+lJHJdIeRC8gl5NdRryjXeidz3xVZL5cd/ThH6XEShz6i/WkFeYIRoo7lImRgW5Lw4nw xVq48sRAf6PHqwU/VkaOKN7SogYjk5s5bUS0R/8AdgavHFV0WhWEAjtfU1M3glNxH6kfOY1Lb+rJ I12SFJXkJq4q1D5Yia7+tTxaqWrIGhkSW7jIJ4BhHeTXUSlox8XFB79MVaby05dVrq5Xg45j60qA 12X0EuVhKsJG5DhxPh0oqvn8uRLHxgi1Uo0UNvJGsb2pKxuwLlrOW05MEk2LVbbY4qozeWpreyP1 KLUri8SQzRvPGwkLb9bpmluix2Wvre+Kpv5f8mutzDc3itNaJ6q/Vrye6uSTvGJOF2ZKc1UHtXqd 61VZPpOiaPo0As9JsoLC1JeQwW0axJzbjVuKgCppiqPxV2KpRqEfmNm/3GCwRAxH+kpKxIG37BXF UlTUvM8nFk1DQeD0IVlnD0K9CDKCDy8R7UxVNNCu9UlMcd9daZdT7mU2HNdgvUIzyEfF74qibyPX mST6kLJX5H0zOsjCganxBSu9PfFWPR6t5sntYmtrjTXlaNHaRtO1BVIbeoj58lDDoC334qn+nXlz POscyR04ksVgni3A7eqoH0VxVc36WSEzSGySNV5O7BwAAKkkk7Yqlj+ZbdJTF9d093U0IjWWQV22 qnIdxiqV33m+/tZ1T9IaUvqyBIEa3uA4qduXKRK02rxFfbFUwHmhI4BJdXlgrKvKWT0rhU6VLfEN hsepxVFWWtLfQQz2l9pc8U/H0WRieRf7IA5VqfDriqZhb/0CClubnnQUDBOPGvzriqU6lc+ZLW5V fU09IpATGv1a6ncBAORYxtSm/U0xVSs9T13mzXn1NoyPgMVper32JZgRSmKp0DeyW8LRJB6jhmk5 q6ildqAgMPeuKtenrA34Wlfk+KqdxJqkKepKtrQmnwrK7EnwCgk4qlBvfNRkkKvYcD/cp9Qviw3P 2m5b7U6LiqnB5mvYrh7W+aBrqtY4obDUFPEVFaFHr07bYqmZ1C9HWKIf9G91/wA0YqvhvbuWQRK1 oszfZikWWN2AFaqjhWI+QxVETrqr8jaLaqOI4+qrn4itd+JG1TiqRvqHmVHeJtQ0JZ4nCTRukylK gN0Mta8WBGKo+wvruRoUuLrS5p2YBxbFqkE/sKWY/ZxVHSDUgXZVtVhUtQvzBCgndu2KpTP5ntIJ TFJe6eXVQ7BPUcBTXclAwHTFVCTzppccayyX+npEx4q7CUKWFdgSvXY4qoXXm1zMUtdR0pAqFnjl huXeoPX4SlF+jFUNb+d5frSGTUtInsmL1mhinWlPsqSztv8AEOgP0YqmX+NdOST0/wBIWCy05cKT BuIFa041pTFW5PPFhGnqSalYogPEu3rAV8Kke2KqsHm2K4nWC3vLSWd6cY0Wck13H7Ow9zirfmTR 9WvEpaajeQK8jcorcRL6amJ0qjfumPxMG+KQ79sVSfyt5JubRfq+rT3l5bGOUMk8sxSpeP0gtbi4 f4UTuaBiSKVpirK7bS4YboTrLO8hd2o7yFAGLmnEnjQcqD5Yqk/mPy9q+oykwX7C3cTK1vJHEVj5 hQDGTC7V+FjyJqK7bYqlvlPyJcafbQW2pyGa2jtyjRJJKWEpZG/vAscjhKEKXYkYqzgsGZaA7Gpq COx8cVYi2h6dNYXRtdDvNHvNSEkl29v6UMjTyghnn+rzhZWrvux+eKpbYflbp31+51OSe4S4vnU3 okRvVkVWRmVpFlckN6a9WNCNqUxVfq35S6Pqc1o091M0NhO9xYwyCaRYi55ELyk8aGoANRiqLn/L iykt5IxfXCy3Szx6hKDP+/Sc1KsokG1K161rU4qu8ufltoej2KadMF1DTkge3W0uIS8dJCGkPFzI o5kbgAYqyGDSbSz01NP0pP0ZaxGkC2saKIxSp4IyMm5r+zirBtQ/LrXLvWrfUJL0uYJZnVg3pgq0 3qp6kccKpKTQBhICKbYqzfQtKi06zhD83vfQhiupS0rh2iSlRz9602xVME+0P9n12/aGKoDWvMeg 6PA76pfwWigKCJZUiP7w8EoXZKcjsDXFWIzHy5cQWsNndXd16RV0M2p+ujqUYj95JPOpYh+VSCae xriqQ+WB5XKNPLerqFvb3kpIW9tJmThG0KRKtuIG2ReVSSSPEb4qyee98hRXccLon1ySMvBafXYB JIvWqIbkcunXFWLecrLyZqOm3dyW+o23pxFma9toGEsXNwR6pnV+aNxBFR4VpirI/J/+FrSOK0hh iujOytazCS2ugqLbIF/fKR9pEqNuhxVPfMs+o2umPc284jt0aATIEZpTWWMHgyywUqGod/pxV5v5 am8z3+qyQyancrPdzwojB0lWFo4XFwBV6/ZVa8g9abFe6r1XS7DUrS3iivLpLv09vVMZEpq9RV+V Om32cVQmreUtHu7bUZobGFNTvFkLXKoqySShDGnqN+0Bts22KvLJvyl81w6pPrc+qXHrJbmNruWa IOIgtGjeUychEFXerU64qitS8nT+atFsjamzvtLu5457aW1kb0HcQ8JDxM7qZIuEgqR9oUPgFVbz H5a8wXKy2ri6trmWdm9e0guJpEtzarDxWdWkVlYsylSSduvHbFUl8o+UdR0H1bFxfM1+JPQtBayC JJ3lhHrcGRUP7qP42Zfntiqav+VnmVtdTXxFxv0szbqiyJ8J+rfVwqu0jSAUYn7dO1OO2Kpf5u8n 33mC0sI7ZNQSJLW0+vW5srgRy3aF/WeRGiCllWX4SFp2G2Ksw/LvS9V06CHSrmW9kt7dZ5Q91bug Kxx2sNunOWOihQJOKow+4Yqy54hdX97aQ3VzFdQxpLy5n0R6zSKlFBBNDEajb5+CqVweVb2RBFq+ s3s+oS8vUbTp7i0hEfRW9NppWQ08H3PTFVNPLV3cWLzaPrOoR3kUzwxvqE808Ja3mMcrNFFLETy4 NT4h8sVTnT7SUpC73VzMyemXnD8YJWqORRCzvwJ6Vrt3PXFUBeTaq0uqSWoZ4rCRlbneNESfSWYh VW3loAJAB8WKom5hu7RBJcTzhCH/ALu4LGqRtJShiX+Q98VSy7s9SinnD+YzbBKkxPdQgx1+IV5W 9QOJHXtviqYJb3qBIGuZ5LkTC3djcUBpD63Ooh6kdguKqlxZ6lBbyTtNIUiVnel01aKKmn7jFU5t 0KQqhZn41HNzVjQ03OKqmKuxV2KuxVJPMulJqbWVvcaNa6xZpI00gu3UCGRF/duiNHJyY1I7UxVJ NQ8m39zdB7KKLSYT6RK2zA8Xidz6qrwReVJCPl3xVHJ5KiWISesf0kkokh1DgvqIix+kIlPPkEA3 oG64qhtF/Lqw01Vt2YT6esz3JsfRjSJpGBCllDFTwBHHauwxVTT8uzHqNrqEd6y3FlAba2lMK+ok Z2ADiQMKLyG23xHxxVfqX5c6ZdQC3hCwQelFHJG0EUitJDz4TFSQpceodyDiqe+X9HbSLWS39Rp1 ZwybBFRFjWNUReTUUBNsVTJYgFFa1oK0JHQUxVsRIOlRXc7n+uKu9Nffbfqe304qgV0OzVpGWa7H qyPKw+t3JAZ2LHiDIeK1OyrsOgAGKomCyihDBXlcOan1JZJPu5MaYq6SxtJIhFJErxL0jbdRT2O2 KqX6F0j/AJY4f+AGKtfoTSP+WOH/AIBcVb/Qukf8scP/AAAxV36F0j/ljh/4AYq4aNpIZWFpEGU1 VggBBHcHscVQU2o21rq08TSxx3EsERT1GCgKJZviapGw8O+Kou2vdKSiJeQySyMOTeohZ3Ow6H6A BiqXjVNNFtcaeLuFLp57hJU9RQ0avO/Jm3+E8TVa9cVTSO+sJiIre4ikYUIjjdWIUMBWgPQVGKpc LbSmuNRW8l9IzzfGn1iSIOpiRK8VdRvxp0xVU1a6t7q3CWkqXEgEp4xsGP8AvPIP2a92A+nFVK7u UZb+GG4s2W85cWe44laxLGaqEboU8cVWaldIkFxcxSqqGeQxzBgByFkVHFtqnmKd98VUb7UtEaIR 2GpJcSSrKjxLdGeqmB6fAXk/b49v14qmmqCyS0lu7xWaG0jmmYIWB4p8TUoVqaDFUilsrKyM2oT6 VqgiiWSaUvdxtGqgMzH0xdHYDoKYqnGow6dY2bvJFI8CMjmNHYuWNVFCWHj44ql95Bbtay+to2oR RKvN5EuYUYBfiNGW6r2xVKx5W0+7vIkhudY4xWsFyBHelSxuPVUGXm9CQI+g+Gu/hiqpb+XdPiup bKZ9Vll4QtEJLxhKTJ61aGOVYqUgJ3/pirX+FdOtJRDFb65K8wLIp1JpOCRsK7zXXcyd6n6AKKpn Z2drFIbc6VqCtIGlUzXKSdOIIB+svT7Q2xVMrBbcLdrFDJAyUSRJG5GvDkCCHkHR/HFUuE+kM0gj 0+9lWOSSIuglZS0TsjUPPf4kxVLJ9B0y9vLc2k+qRrdJPI0MN0ytG1vKkbgiVyB8UhDD22pirdp5 SsYtUjspJ9W4zwTzgz3rGhjki+yY5K/7upQ7YqncNpZSQRyx6dclHUMoMq1oelazYqrXMthFo6zS K7WYowVS3MqSePcN37nFUAZ9IUxiTT72JZJI4g8gkVQ0rhFqS/TkwGKoG70DTEuHtIo9WunDAj0L 3jxEfCRlBkniND6gB5VO+22KonS9K0dIJL1Ev5atGgt57l5CPWEbLxHqlP2xuT44qmH1SyV0DWU8 LSEhHaSoDBWffjK3ZPDFU4xV2KuxV2KuxVCW91M2oXNq0XGKGOOWOWteRleVWFKbcfTH34qteJYf qYlJu7oSFIriUIrDkCzn4FUD4FPQb7fPFVFry4udPlbk1pcNPLBbmILI59GVkUgOOPxrHXfYA9dq 4qrW9vIsjzywxxySemHdTykfiQAXYKg6dgPpxVvUtH0vU7Y22oWyXVuWDmKUcl5DoaHFXaXo2l6V ZrZabbJZ2iFmSCEcEBclmIUbbk1OKoTUPKPlnUr5b+/02C5vURY1uZEDSBFJZVDHegLEjFU19NfE /wDBH+uKpTpHk/yxo83raVpsFjKIjAHgXgREX9QoOP7PM8qeO+KqnmQcdA1MD/liuf8Ak2fniq/z L/yjmq/8wdx/yabFVDzTU6TOB1rFTv8A7sxVH6mK6bditP3Mm46/YOKpZoJ/05h/2rNP/wCJXGKu l/5Swbf7qtd/9jfYqmch/wByduP+KZv+JxYq6T/jp2+3+6Zt/wDZxYqo23+9Op/8ZF/5MJiqF0W9 ihtJo5I5wwvL3pBMRQ3cpBBVKEEb4qhNG5HU7RmBUsursoZSrcWv4ivwtQjanbFUynp/iOx8fqd3 /wAnbbFUv0TS5E0awSTTbGSRbaEPIXqWYRirE+ieuKqdxFLH5HtoSGllSCBCEDOzMOI2FOTGvtXF UbrN7HNawxxJPzN5ZdYJgKC7iJJJSgFO+KqsFP07L8pa/wDAWuKpb6Lz6B6Uao7fWNOLJIeKMF+q swJAbqop0xVXudOdb7TZVsrW2EU8jPJCxLkG1mWlBEndh3xVP8VdirsVdirsVSifUobLUZjJFPIZ IoxGIYZJASsktQWVSin4h9ojFW4NVtGvImnEq3EwMcCCCfgi7FuUhQLVqAkmg2oOhJVUdOvIop7p rlJVZJpkgpDKw9NpDIWUqpHxFvwGKo6LVrK5na2i9USpxZucM0a0LClHdFUn2BxVHYq7FXYq7FXY qhL+zubloxHc+jCA6zx+mknqBgKAl6gDx23xVJbHyDoluUkmhjuLlXEjSemEUt4CNTTjXoDX5nFU 51GwlvIPSEyxqzL6lYlkDIK1Xi9V3r1IOKpXY+S9Jgnlmngtrln2RGtYkRFHSiKKcvFv1Yqi73y9 aXcvOQqF9NIhEIoWQLEWK0EiPT7Z6YqvtNCtLZZFokqSKiNG8UYSkZYr8KKg/bOKtzeX9HnXjNYW ki7ijQIevzxVqDy7otuKQafaRD/It0X9WKouGzhhR0iRIkf9mNAgr0rQYqlK+WZHntp7q6Sd4uTT gW8SLLI1KkgVHH7Wxqd/teKqNvtGgvBGHIRYlZFRY42Xi/Go4uHH7A6Yqp6foFtY3KzwFQyxvEqr FDGoV2Vj/dIh6oO+Kqx0XTDKJjZ2xlUUV/RWo74qq3dpLNa+jFKsTFgS5QOOPL4gFY03WoFengcV QVnoEdvdyXDOkoPH0ozDGoQqqjkCN+XJSfhoN+m1cVV9Q0LStSp+kLK2u6Go9eFZNwCP2q9jiqst hbLbm3WGFbc7mERgIaf5PTtiqnBo+n25LW9tBC5qeccSq1WFCajxxVG4q7FXYq7FXYq//9k= proof:pdf uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:F87F1174072068118DBB92CA1052A9F9 xmp.iid:F87F1174072068118DBB92CA1052A9F9 converted from application/pdf to <unknown> saved xmp.iid:D47F11740720681191099C3B601C4548 2008-04-17T14:19:21+05:30 Adobe Illustrator CS4 / converted from application/pdf to <unknown> converted from application/pdf to <unknown> saved xmp.iid:FD7F11740720681197C1BF14D1759E83 2008-05-16T17:01:20-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F117407206811BC18AC99CBA78E83 2008-05-19T18:10:15-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:FB7F117407206811B628E3BF27C8C41B 2008-05-22T14:26:44-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:08C3BD25102DDD1181B594070CEB88D9 2008-05-28T16:51:46-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F77F11740720681192B0DFFC927805D7 2008-05-30T21:26:38-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F87F11740720681192B0DFFC927805D7 2008-05-30T21:27-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F97F1174072068119098B097FDA39BEF 2008-06-02T13:26:10-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F1174072068118DBB9A084B3843B2 2011-06-09T11:06:05-03:00 Adobe Illustrator CS4 / saved xmp.iid:F87F1174072068118DBB9A084B3843B2 2011-06-09T15:15:58-03:00 Adobe Illustrator CS4 / saved xmp.iid:7FF2245A3B2068118DBB9A084B3843B2 2011-06-09T17:21:50-03:00 Adobe Illustrator CS4 / saved xmp.iid:F87F1174072068118DBB92CA1052A9F9 2011-06-17T09:35:05-03:00 Adobe Illustrator CS4 / uuid:5a29c771-4184-7441-8b83-5454d69a07e4 xmp.did:7FF2245A3B2068118DBB9A084B3843B2 uuid:65E6390686CF11DBA6E2D887CEACB407 proof:pdf Web 1 False False 731.130859 430.000000 Pixels ArialMT Arial Regular Open Type Version 5.01.2x False Arial.ttf Cyan Magenta Yellow Black Default Swatch Group 0 White RGB PROCESS 255 255 255 Black RGB PROCESS 0 0 0 RGB Red RGB PROCESS 255 0 0 RGB Yellow RGB PROCESS 255 255 0 RGB Green RGB PROCESS 0 255 0 RGB Cyan RGB PROCESS 0 255 255 RGB Blue RGB PROCESS 0 0 255 RGB Magenta RGB PROCESS 255 0 255 R=193 G=39 B=45 RGB PROCESS 193 39 45 R=237 G=28 B=36 RGB PROCESS 237 28 36 R=241 G=90 B=36 RGB PROCESS 241 90 36 R=247 G=147 B=30 RGB PROCESS 247 147 30 R=251 G=176 B=59 RGB PROCESS 251 176 59 R=252 G=238 B=33 RGB PROCESS 252 238 33 R=217 G=224 B=33 RGB PROCESS 217 224 33 R=140 G=198 B=63 RGB PROCESS 140 198 63 R=57 G=181 B=74 RGB PROCESS 57 181 74 R=0 G=146 B=69 RGB PROCESS 0 146 69 R=0 G=104 B=55 RGB PROCESS 0 104 55 R=34 G=181 B=115 RGB PROCESS 34 181 115 R=0 G=169 B=157 RGB PROCESS 0 169 157 R=41 G=171 B=226 RGB PROCESS 41 171 226 R=0 G=113 B=188 RGB PROCESS 0 113 188 R=46 G=49 B=146 RGB PROCESS 46 49 146 R=27 G=20 B=100 RGB PROCESS 27 20 100 R=102 G=45 B=145 RGB PROCESS 102 45 145 R=147 G=39 B=143 RGB PROCESS 147 39 143 R=158 G=0 B=93 RGB PROCESS 158 0 93 R=212 G=20 B=90 RGB PROCESS 212 20 90 R=237 G=30 B=121 RGB PROCESS 237 30 121 R=199 G=178 B=153 RGB PROCESS 199 178 153 R=153 G=134 B=117 RGB PROCESS 153 134 117 R=115 G=99 B=87 RGB PROCESS 115 99 87 R=83 G=71 B=65 RGB PROCESS 83 71 65 R=198 G=156 B=109 RGB PROCESS 198 156 109 R=166 G=124 B=82 RGB PROCESS 166 124 82 R=140 G=98 B=57 RGB PROCESS 140 98 57 R=117 G=76 B=36 RGB PROCESS 117 76 36 R=96 G=56 B=19 RGB PROCESS 96 56 19 R=66 G=33 B=11 RGB PROCESS 66 33 11 Grays 1 R=0 G=0 B=0 RGB PROCESS 0 0 0 R=26 G=26 B=26 RGB PROCESS 26 26 26 R=51 G=51 B=51 RGB PROCESS 51 51 51 R=77 G=77 B=77 RGB PROCESS 77 77 77 R=102 G=102 B=102 RGB PROCESS 102 102 102 R=128 G=128 B=128 RGB PROCESS 128 128 128 R=153 G=153 B=153 RGB PROCESS 153 153 153 R=179 G=179 B=179 RGB PROCESS 179 179 179 R=204 G=204 B=204 RGB PROCESS 204 204 204 R=230 G=230 B=230 RGB PROCESS 230 230 230 R=242 G=242 B=242 RGB PROCESS 242 242 242 Web Color Group 1 R=63 G=169 B=245 RGB PROCESS 63 169 245 R=122 G=201 B=67 RGB PROCESS 122 201 67 R=255 G=147 B=30 RGB PROCESS 255 147 30 R=255 G=29 B=37 RGB PROCESS 255 29 37 R=255 G=123 B=172 RGB PROCESS 255 123 172 R=189 G=204 B=212 RGB PROCESS 189 204 212 Adobe PDF library 9.00 % &&end XMP packet marker&& [{ai_metadata_stream_123} <> /PUT AI11_PDFMark5 [/Document 1 dict begin /Metadata {ai_metadata_stream_123} def currentdict end /BDC AI11_PDFMark5 %ADOEndClientInjection: PageSetup End "AI11EPS" %%EndPageSetup 1 -1 scale 0 -260 translate pgsv [1 0 0 1 0 0 ]ct gsave np gsave 0 0 mo 0 260 li 442.787 260 li 442.787 0 li cp clp [1 0 0 1 0 0 ]ct 428.314 246.266 mo 15.8359 246.266 li 15.8359 45.6978 li 428.314 45.6978 li 428.314 246.266 li cp false sop /0 [/DeviceCMYK] /CSA add_res 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 1 lw 0 lc 0 lj 4 ml [] 0 dsh true sadj 428.314 246.266 mo 15.8359 246.266 li 15.8359 45.6978 li 428.314 45.6978 li 428.314 246.266 li cp .193668 .150057 .155337 3.0518e-05 cmyk @ 428.311 46.0337 mo 15.8359 46.0337 li 15.8359 16.8892 li 428.311 16.8892 li 428.311 46.0337 li cp f 428.311 46.0337 mo 15.8359 46.0337 li 15.8359 16.8892 li 428.311 16.8892 li 428.311 46.0337 li cp @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT Initial %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. 12 dict dup begin /FontType 1 def /FontName /ArialMT def /FontInfo 5 dict dup begin /ItalicAngle 0 def /FSType 8 def end def /PaintType 0 def /FontMatrix [0.001 0 0 0.001 0 0] def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 32 /space put dup 45 /hyphen put dup 48 /zero put dup 50 /two put dup 65 /A put dup 67 /C put dup 69 /E put dup 76 /L put dup 77 /M put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 88 /X put dup 89 /Y put dup 95 /underscore put def /FontBBox {-665 -325 2000 1006} def end systemdict begin dup /Private 7 dict dup begin /|- {def} def /| {put} def /BlueValues [0 0] def /password 5839 def /MinFeature {16 16} def /OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup /strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def /Subrs 5 array dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> | dup 1 <1C60D8A8C9C3D06D9E> | dup 2 <1C60D8A8C9C202D79A> | dup 3 <1C60D8A849> | dup 4 <1C60D8A8CC3674F41144B13B77> | def put dup /CharStrings 18 dict dup begin /.notdef <1C60D8A8C9B6E3FA5101D97F0BCF44F7161DEB1E2A84766DD477E7 C8A936AA182F5809A9> |- /space <1C60D8A8C9B854D00D> |- /hyphen <1C60D8A8C9B81F2C3A78A5675B101A923F2D2A8AB56C> |- /zero <1C60D8A8C9B7EF322B1082CBA0BF9C14E99A3DA73C31B9142A392BD3A BC1EA97FF39C814FAC04D646DD2C4A98FCAF9A9470BD1CDA748490BF1B6225A1 0425162B711F636C55967253E957B919DCC3F666292C622E3ED0D587E9E568E3 1D888BB4F8FA5748005C40596B5B6BF48502A62C5A69962DBA8DFCFAE3F282BC 60C6C207F4C9D9AD32681DD3B2E0F2C2045F707B1BB6597DD9D355BD3D00BE3A 5B546505C954A88> |- /two <1C60D8A8C9B7EF322B3EBC745A0BBBAC411180C089B13E648172E07912 D1BA378FD965B994D86994B65582FD434477626CA0A7A4AA353654D41B127367 E2BE1B714FF63CE28DAC81B61A78F94AD3218D524244E3D9732CC5A4165C96E7 ADC9605690D1ECC190DFB9D5017E24EDE1D6B83BBD5FCE6B540AFB666DD6E17D 0C90E5976007C04DC3CD2FBFFCA768526960F8706ECECD> |- /A <1C60D8A8C9B64EDFED26B9E21A4F64848088903AC9891CF791BDBC4AB29A CC8B3E8D13924A7DDE35F09AC5F4A8229C87124C732743268600EF8D4582208B D16D82> |- /C <1C60D8A8C9B6079F6D1C46AC2732DFBDC9143C94793529C1940296210AAD 6EE09C39CFC4DAB7C5F3BA33C9E10838E0BC6FC9318A4E57F309EE20438B434C 69AE73A499211EBA75E22A57C1581D93869428818DC700A28C027571D7047CDF A8B017AACDE96DE4B2579EFD2C826A30F6EBDDC52701A22CDD669ADC60B66F32 261A1F55EDEF9802FD4511E0EF130772EDFD708A4113A1EDB1E717E0FA7D3148 51DE59> |- /E <1C60D8A8C9B64EDFFB83C6241DB110BEE5AB2FAD9D94B39ED5E81E7411B6 6E9361DDE78FC667AB91EF9824> |- /L <1C60D8A8C9B7EF3224EC6E192BD0FEC2445DA87B99CF0E03A72A> |- /M <1C60D8A8C9B6B41CBB4B6664BFFC865F56E6FEAFA79E7B90883C1C68AFB3 79AC174B0F8DCC9294E2C26BD06BBA9FD3867F8768651EF4BA798B4F538FCE8F 80AF5A83421F8F> |- /P <1C60D8A8C9B64EDFF4950CC53012D47AE97D5586315BA2F5162B63CEC117 C5379A1B3DB174CB2C739C68916A1E99A346AFF71DBF25658867D9AEF1BF3C47 CE1BA73978E8D0D40E52B85A56E08A1369D85E15B0A0C517291916FF6E61D0EF BF59B4862165C7DEA15B42BE3811C2CAA25C54> |- /R <1C60D8A8C9B6079F62E89B521DCDBE3DC5497B8DD99916239C0DFA5ED4F6 32B33575F4260343AF5DB7D477D12055F49C5E99C0AC176EAD42723223937F2B A15ECAD7751CB6A136B700EE485E38E7CDB87D9465C90BB8E29B04FDDA42609F BC3833B9FB5105619F4CC434003085F449D9FD5022725306B331FB97B31D2952 57B180DE1FD5465D256CCA19301DA97326882845130A5257BF61307ABA64C3F0 B222> |- /S <1C60D8A8C9B64EDFE3D078722A65C31955939D63AA5C8A4945719B5E558E 3B73A676CC12D1E18D93A8DC67C074D6E352D426981DE76F8EC4CFE5DAE051BE 47753A7C234C4B8D7D9F50292A61882B5500CC701F878FE626CDC6D4C322BB39 1537921D673F5AEE3EC19E36E7EFEC0F06A0EA4EAAB6BBA94DDCD11A6A564B13 B510F8C915848233B82F046D854DCD4F1639F149305DC73D3C68DF8AEB47A96A 30E55CF8BAD07FA2825BCE0D675F1CC2EBE61B07B772130E23119250F1EBF8FE 12A2098D9F09F3F21BDC41666CA4A0BB70D5F0A750B44BB93A5FBFDD2BF8DE45 0B277265536F77D5BD6F44FB72FF2E708C60107653AE44BFFB26AFF8> |- /T <1C60D8A8C9B7D8BE16D2C1CA7ED2E06F707C0E9530AE37D06FF7501A595D 3927> |- /U <1C60D8A8C9B6079F6D3F1E4545C3E1CC9D8EF54571065F01BE5A50957BD2 D8AD04D30C23B37CA98B969ECB5CA0D9A7C563636CB33377BB3DEB53D45DD0F3 E333CD69EA3B53D63C91B303CFDF29F59C20776D4DC576C9C080B76AB60A2167 3EFC1F645BF33D33929C60> |- /X <1C60D8A8C9B64EDFF4DFD017B43F7EAB96365BACFBED2D71ADAE4E00FD12 B461A7F13C64E3A175013F8F17B0F966419CDFD1925B86CBC99EE22C73270B3D B758F48A1908F21BEE4A7E0F431996B89DD71E609DF64575A71FFC> |- /Y <1C60D8A8C9B64EDFFB70684E072B8DF628E28D14904BBCFEE7A51F476B6F 96EC861657AB39D7A0FFD2C8F278DA1F84C35526773AA865D18FF930CB> |- /underscore <1C60D8A8C9B7EF3224BB0E94C1F3EA8D5F87D58A9CCE> |- end put end dup /FontName get exch definefont pop end %ADOEndSubsetFont /HMQBUN+ArialMT /ArialMT findfont ct_VMDictPut /HMQBUN+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero /.notdef /two 14{/.notdef}rp /A /.notdef /C /.notdef /E 6{/.notdef}rp /L /M 2{/.notdef}rp /P /.notdef /R /S /T /U 2{/.notdef}rp /X /Y 5{/.notdef}rp /underscore 160{/.notdef}rp] HMQBUN+ArialMT nf HMQBUN+ArialMT*1 [16 0 0 -16 0 0 ]msf 117.304 39 mo (EXAMPLE 02 - MY_STRUCT)sh 39.5273 160.366 mo 32.7637 163.25 li 39.5273 166.133 li 39.5273 160.366 li cp .75021 .679683 .670222 .90164 cmyk f 247.55 216.828 mo 85.5967 216.828 li 85.5967 128.132 li 247.55 128.132 li 247.55 216.828 li cp .123415 .0936904 .09897 3.0518e-05 cmyk f .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUN+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /colon <1C60D8A8C9B854D0F461D1A979903F917C33CF6EDB0A437B4DDC7150 150B60E1> |- /a <1C60D8A8C9B7EF32244AC11AA6BAAA29EE8C78E0E7206F4A2776A2D1EA7D C8D9A28C62ADE3B609CF5E2EE23C64D0B75055BD249ADFEC7B4224D040D883CA 6747571955349CF8AD17E94E6FE5D0259F4D55623D4DC5C3CB4AC64A7A87DBBA 48B7420D7990F3C261DB9838C5B90BF72B82C8238A1A58FE8E6137AAFE2405FD 710F7ADB95B4F576668A6DB104942C88ED8D01E4E58188F5E32A24B5B964D5CE C10C08F76C0F472E84A0FB6EB5E37AAEE233DE54C212B0A012D3E20F864B2D53 463E221F81B784B6F7BE81FBFCAE6785C2430454DD81C436E0A516BF8C8307B2 879FF86378629C5EA7E586D83C83550D2E732930F7FE3BAD07B86C81E024D177 B5D88A> |- /d <1C60D8A8C9B7EF322407C6655A1B3652DB8522EB511BE6B0855A72D96214 58876CAD1FA22A00635F436A34E23EAFC09C394044ECC1389CD99E4AF1C1F6DD 52305C78619784840FC37A805B0805EF290BC9E049CF068290816CB7E74DB612 941355BCE71CBDD11DD0F9CA29531036ED13EFB9CAB613E9F630FBBC9408EF13 CE4683D92968530F64760C3DF85C7C7EA06EBA8BF859> |- /e <1C60D8A8C9B7EF322472FA01213C7AD90A23B536C2309DD40D370E2449B0 D0FEF85A6BE8067F30686F143E75903EB6FA56935472EF47CE3F33433C2F0C8B 6FA51573AE54B2C516F6F024F8775AD6639544E339FC2A328548BCBFD58B0EEA 03B7DC3AB069F44477958BFBFAAC7196D411DF9BE0B78A86C4BC33EC5D7C3729 5284C077711C162623860AACA404F650F8D516970257> |- /f <1C60D8A8C9B854D0F47057B2F13303E258FCAEE9E8BBA6E28AE872907C56 63BFD2A0F535ED0EB011F2C2A875E053FAF73E8AA16B1F99510A6812F90D61CF 3F1DA5EF558899A9AE12AAF6AF4568E0F6003B0A2FF6F33293> |- /h <1C60D8A8C9B7EF322B3BE19FB964E037672C8A279BC86F7B9BF0C8203E13 1450D56E388301CEAE43162551FBE05CABF94DC3B5DDFBB4DA55D11470EBD41A C970CEE2D2EFA88D51157B4EF5536CB673423CDDB06FA774D27105AD2B1AC2DF A8> |- /i <1C60D8A8C9B88C087228DFC7C7ABCC71B868F57EDB285655227000619B17 1C8A80AB> |- /l <1C60D8A8C9B88C08722AD20D19A90F9064193C8D82> |- /m <1C60D8A8C9B6B41CBB5F87BE20C872DF59FABCB36542419CBFA3D5519AD5 BA8076F32ECFD724B055F72CAC37BC47239ACC8B0FB48B8ACFF099B97085BD99 C333951D0338D27FF6AB9B3F3C69320476BA0CD4F9573B79AD358A91B0176AFB 9AEF169308783E9C6287F18E6E658AF5AA6C9688B500806DA169A1B21069D55C 54A2FF607A6A38976171B08665C3ACCAA84DFB970D01180645CE5CBC48DFE37B> |- /n <1C60D8A8C9B7EF322B3BE19FB964E04D2DB06D4930CA5D8F41D2EF3A285C 0BD536CD2C57668EB9E30311BF9A2872DFB44F2BF2A4683B5D66FA01BB1CCDAD E9C8A9EE2CB010715D3D6DFF0E843CF77C87A07D1DBD0482675E3CA1DAA2A520 3A8015DD09B7CE> |- /o <1C60D8A8C9B7EF32334FFE7884F6C3B903D000D9FD76C2EAE8EDCCA90A98 7875625CA0393015EF6761BE1C3B6D9E9DA4BABE1DD313B783BCBF8F620C846C 7F6361946173FB7A4A6BF94EAA0CB4947DD1974AF371F3C211E584576DE9AD79 F9DA988E9E531810E3876F3029BB1D2ED366525F30E48DD7CE3C9B66C5CC099F 518C54BB58C51D6FB6D0C8> |- /p <1C60D8A8C9B7EF322B3B0CFC8FED720BC90E20B208D27DC4B8F11F10B964 70F8B4F5FABEC7F7010781F5077B417FE44279776F2304ACD6E0EA12F436330D C4B79C907B9D28468D10FF9256A7D2CA504E4498D719ACD86FCA89B33C61F556 CF1168C3F262A781155D5EBF0C47D71C584AB93037B47B18D39FE408A49672C1 E63F9E8368D19E113FC95C59A9FA4650E46F6399F2FF256844E27568BA34B9> |- /r <1C60D8A8C9B81F2C3A9694980E415F1DEF5C498473095A24D1BE11285789 4FEA85DB28AD762FB8D2F4CAC5BF8B9C18D8A2DFCF155E0751AF58898A6619AD D420F549AB7C795751D32E8EE6> |- /s <1C60D8A8C9B7A73DA057E90C9BFBE0FE301E99CB771FA2F05368A6342B5F 80456D91458EA2F3CAD55CDF89BFF34EEB39D7DD325B057E2BF0E9B878C214E2 BD1BD70DCABE10E0DC8EBCF7B100B55EBE94FB0F17084E21EBD279B324AEABD9 6538911D053BE9D7ECBF43F934B1033C9E405BBE31E7EDB643609C8D779046E1 B250C3CF05E6FA4787649137D90F47F85972A6603BA900DD7CB710E02662DB32 87CB26D7B7AE794611498865FC85A28083D2F6C2DEC302D47619A4A577C5B843 5558FCFE71A1BB6783AFD5F58B6D2C03593B3F2297A66A7E6D13C1E321C57F41 72D53C8FCAF4D28F2B78D3A4BF03> |- /t <1C60D8A8C9B854D0F45CF665C7276F8075B54A4ECD6470F395A458CA2D06 5152075036EEECA213894C1EA0DACFBD370590F4B831924E5BDA5281442349CF AD2545E0750C3004A129C25B1EAA8DEF5DA8BF1998E80AE266F591E64CB5127F 5C42C88FB43C> |- /v <1C60D8A8C9B7A73DB99D94C9412F55B03E92C174A4755E69F97C27D9162B 37724F74F272B140D258652D102C2EAC46833C73F9> |- /x <1C60D8A8C9B7A73DB920A1A3B81DE7234ACAA5546B4C65820CF3C50E1629 C5A6423BAA34A2ECA8C7FE4B71726AC6704CC23AF1725AFB30D2892FC1BDDAFE AD7BE7BD65F1051699CCF4B0> |- /y <1C60D8A8C9B7A73DB92EFAEC912AA9CB61EA2C87B96577B4D13A11140AAA 18C6E226D96ACA3DE3B427B0A298EF106E8BC0FCA1DC8D81AF2F08A42A0F5836 B6230FDF576E37CE129EFF9730F23EC10CF5ACA4D4CA70309E71B89A944CA734 8AEBF55FF5ADA9F61B4BA14C9A2301A8C53EBFBE665E1DC22E> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUN+ArialMT /Encoding get dup 58 /colon put dup 97 /a put dup 100 /d put dup 101 /e put dup 102 /f put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 118 /v put dup 120 /x put dup 121 /y put pop %ADOEndSubsetFont /HMQBUN+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero /.notdef /two 7{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E 6{/.notdef}rp /L /M 2{/.notdef}rp /P /.notdef /R /S /T /U 2{/.notdef}rp /X /Y 5{/.notdef}rp /underscore /.notdef /a 2{/.notdef}rp /d /e /f /.notdef /h /i 2{/.notdef}rp /l /m /n /o /p /.notdef /r /s /t /.notdef /v /.notdef /x /y 134{/.notdef}rp] HMQBUN+ArialMT nf HMQBUN+ArialMT*1 [16 0 0 -16 0 0 ]msf 41.6953 179.504 mo (prev)sh 173.083 100.171 mo (last: only valid in the first element)sh 274.739 137.895 mo (next)sh 308.588 140.206 mo 315.352 143.09 li 308.588 145.973 li 308.588 140.206 li cp .75021 .679683 .670222 .90164 cmyk f 243.797 171.348 mo 89.3496 171.348 li 89.3496 131.973 li 243.797 131.973 li 243.797 171.348 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f .25 lw 243.797 171.348 mo 89.3496 171.348 li 89.3496 131.973 li 243.797 131.973 li 243.797 171.348 li cp .75021 .679683 .670222 .90164 cmyk @ 140.832 131.973 mo 140.832 171.348 li @ 192.314 131.973 mo 192.314 171.348 li @ .69482 .6318 .621515 .583612 cmyk HMQBUN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 135.473 157.699 mo (__inlist)sh 243.797 213.703 mo 89.3496 213.703 li 89.3496 174.328 li 243.797 174.328 li 243.797 213.703 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 243.797 213.703 mo 89.3496 213.703 li 89.3496 174.328 li 243.797 174.328 li 243.797 213.703 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk HMQBUN+ArialMT*1 [16 0 0 -16 0 0 ]msf 161.456 189.367 mo (A)sh %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUN+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /B <1C60D8A8C9B64EDFF43B9E1D43B76E7425A98F23F483468D5596DA760F15 54BAD296AA38A849FEE692D78BAC3B162E2013F61317550246D6F77AF27886D4 E04AB44C473130F6FA990DAC6640A48EC2A80691207E5DDBCA7196686E7CD5C9 80FB78081AA13952C8D8F3373FF54323A4853D0F014ED4C5A1024912E545AAB4 BA7F36D08386B7A08B38C3035C03383BB204897FB23E6B597B4E784900841F18 58E5E1740AFA815171FE44AAE751E7961222B185E93D26B02E1EB5C1FF9174E0 C619907BEEF9FED49CD2B96F29B7B01884> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUN+ArialMT /Encoding get dup 66 /B put pop %ADOEndSubsetFont /HMQBUN+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero /.notdef /two 7{/.notdef}rp /colon 6{/.notdef}rp /A /B /C /.notdef /E 6{/.notdef}rp /L /M 2{/.notdef}rp /P /.notdef /R /S /T /U 2{/.notdef}rp /X /Y 5{/.notdef}rp /underscore /.notdef /a 2{/.notdef}rp /d /e /f /.notdef /h /i 2{/.notdef}rp /l /m /n /o /p /.notdef /r /s /t /.notdef /v /.notdef /x /y 134{/.notdef}rp] HMQBUN+ArialMT nf HMQBUN+ArialMT*1 [16 0 0 -16 0 0 ]msf 161.46 209.703 mo (B)sh 89.3496 194.016 mo 243.797 194.016 li .75021 .679683 .670222 .90164 cmyk @ .5 lw 97.8574 163.252 mo 39 163.252 li @ 170.456 81.7861 mo 167.573 75.0225 li 164.69 81.7861 li 170.456 81.7861 li cp f 167.571 140.116 mo 167.571 81.2588 li @ 234.667 143.092 mo 309.115 143.092 li @ %ADOBeginClientInjection: EndPageContent "AI11EPS" userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse %ADOEndClientInjection: EndPageContent "AI11EPS" grestore grestore pgrs %%PageTrailer %ADOBeginClientInjection: PageTrailer Start "AI11EPS" [/EMC AI11_PDFMark5 [/NamespacePop AI11_PDFMark5 %ADOEndClientInjection: PageTrailer Start "AI11EPS" [ [/CSA [/0 ]] ] del_res /HMQBUN+ArialMT*1 uf /HMQBUN+ArialMT uf /ArialMT uf Adobe_AGM_Image/pt gx Adobe_CoolType_Core/pt get exec Adobe_AGM_Core/pt gx currentdict Adobe_AGM_Utils eq {end} if %%Trailer Adobe_AGM_Image/dt get exec Adobe_CoolType_Core/dt get exec Adobe_AGM_Core/dt get exec %%EOF %AI9_PrintingDataEnd userdict /AI9_read_buffer 256 string put userdict begin /ai9_skip_data { mark { currentfile AI9_read_buffer { readline } stopped { } { not { exit } if (%AI9_PrivateDataEnd) eq { exit } if } ifelse } loop cleartomark } def end userdict /ai9_skip_data get exec %AI9_PrivateDataBegin %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 11.0 %%AI8_CreatorVersion: 14.0.0 %%For: (Marina Proni) () %%Title: (diagramas_01-08.eps) %%CreationDate: 6/17/11 9:35 AM %%Canvassize: 16383 %AI9_DataStream %Gb"-6CNCfDD(,/el9Fcr,,C#8ZLV.`>/s+&6QUPrDp)$l,[4TqN`&s4P)+rG_cHRdT%F]Qs29hn*6Cqu69S="eK!X;gMTdQX.+=B9]7s,k7]^I;`l]PJ@kuZVtOP:iOk2tM_N`H/4'U'T?pe[gLo[BcS'5:op7?QcX5PD %H[,E4'C<1]T/0&_Dr,p>o)A^WEfT>349[u/numN:rmgD*5MX#lBrD;Pr9ga1?JN7=apE[c=#W[mOe0r"j9EB6H1Sr@45d,o=7;8P %^H@uUq:4B9^O(.qe*WX6JusIqS(G.D^OQ$*l>dk;5a&O]FIj]c0"&$O&e(DZf2U'oRdG1g5N>0`LdR;#0Zh(`C&cGIQTr-qs(-^( %SkW^'LA9L^04/gMR,ZfCJ'\bPBD6o)s1,YPt]mTM4p>S$bCq07m]lCqaD@"u# %E5W^RP4)c6rnGCdDo;&$&G#"Ar0H1Z/oLL8>PIEb^&!o>^Z7:+?(723k+9p1(D#^!BhS4AZqsNJ:boQ"V#Vc8\qh%SWTrD#oMQn*.*AYl,@T/DL]/V)aZ%kYh3rtS:rk,gq8@Xr_7^dk)6:p=.mdUOG,u/@JuhQq]B_%@NMfE.q%'!^A[@edRepm_)khnFCI^\Z\D&+.=:!bCMG8j7p?:NnaK$Zi-BfDgsnHrPQN'6bE8]@2CU`Z2K04Du>o-\Gsf:'577hBs@RL.!YdV^&kDYrrW,h5;W#V)q[bS %s*4A;fE[H7hS-qCq]*U"8bDT@?0(15m$]9?cqS)df %"#;U.Zi.T7rSO>SLAgG)B0Y:gH@L;848:0oAHi*C3"?,r*Y?!bFo$$2&cW7.`%d5hScV\.Vf;G&s7<7@)oeC#u:dq-+BkE)j?+!H8RQualIY4,,1c7SMU %5%!HQI)sq8)EJd//?.].8fdmQ*R+5lYkT["T0-rgPQ+-.n=T1Y6kcF*s2bu'5DqYSriAN"$IkR/VhokkM43qs5^tLsnUDgfrjdgI %$Aa*IY@''E3VGCcrkmV%f@SW0l`9?pli$ME]"p10:Y59N!&;oE]FNQRiVILQ>TGF-qnqjK%eF*ie3c7W6TW.Q!6js/e`#fYlLJ\> %[2Z:&eU05[eZ3_UJb8I^5R4GF&!p@aQ^@Tmh.=3g0;m!>=YB;W\r'< %mb#IFBtn;5KAqAH^aU!]c#qs?0Z!UdB,$mqVFm(<38(fRF'9_?Qu1jECHbFTd5 %#TQ'j''?#'gXf81`RdLRL6qGFWQqp!ZPtAJ8d/f.iZ2u1@;!'TIm*Pf_<,=YB %F.7a.k5BZ61PF5*h.W(]csfWW6jIfU])`@FCV.#n^tUiH`$![9#!n?U%(VN+(eYo^ZYL-jr8/oPK".SJ,!@(&i6P)HB6q]#Z4a!F %-&FXuT/6BO*J;+No_0F+^(`#B8Wr]q*:uO""EH@foWd@6iW)2nE!-bV8B.BgS`%h^A8NQ:M\:50&f5-I!CYX!FpV\39ATf7[t*PA %+FE9AU^aIm?9Ub)U_g+VT\U)+LigQqWlPr@?'+"6AK9!OlP=*j$Kg=\An6Zk@>:W[-EG"JAb[No2Lo>N``3?:HO2J;EWRr?0`Mm_ %!;ReS^]MU)CL"?a24)*C4.*u)fW*LX!0:^L[0WQKJI`:,O-dYO46Y*dHs:#la=u$J;_Wgi35BjRKKWiN$o,X9C+ca0,bS`L!RGcm %f/,Y4*[0SZc&Ar`/2iVLQR"+7q7f'U4*oV2KY&L=>S9!U$Fll8"@=u0?q&H]8\F%=P*!@(6&VK2MSq(R>l8M!OPF[uHVsX6r2h5s %;$ps!`!N>k:HX?c$E`[tM<-6#bp])Z4JRFE/A[?;K-O1he7Vn]F8i7R3q`tP_=\J6Z@0PMq7_:R%R3Yi9YjX>j%JUt)N$k%;HLO5L\=D`k23_q?'ZW,4S.D7sD78#eG.A3FpL'F+&;1pZ"@mPb_,Z;W?%5a_<,JnC0 %@LSguNbBfX#lWLbR51mJmVt,[qW>caft3$GJ+sUUojRN3R$PgN1%lfgd$QUuc::8JFJm)SVWA?@_^/e9Shn?,FJ/R.nd!*#%'ub` %C!b7lIO2"nS=QfiK^IXK8m=T8m>\hm>j3@/!?j8--im: %(,0hC/2Gk2@5GV!6,*YX%JIRD2K7Hm@:og^p-;fsNc]qJMSod8#FYd//-'lo1..eBB,:Mq8/(s]s,J6jKp>@D&A[pAR2ZYUT0CC(SJ!g&am#!jVFa88R1.oO^dg3Me.29> %'"IK$.OP.]ph9$i;K)1;:6sdKjuD=:$>8_FCDR=;;Y6M,GVi4@D*oGH;=b=V&7le %"'RpGN%)#I=^`W,&oi4rJ;1pnR:SWF):TsH'F.l>1q5f/N5*EA&a?j)gQI%oi>cOj(f7]W_Bf18UDdljH8N5r0,t_nWn<`?Jt*R, %3J#;f+&F3j7C.AILRs5/rnHQ;hfZGEXO),"YnRaO% %d)]]Q:CKB@p!E>=HF'k(k2%3r?R*1:p#\oRrCAm'&auCk7k6OHlLh>HhBTorh9d7q2 %Oi`@=9k";u%"$%qegFXrf0FMd=;+iCQ$cUg)1Que;m3>6kY@jDM'+0$\\oi#p#4YU!$pK/c$H=fh&N._^lf4q2ZR*sQdsm)4B.M>(-Ma/#;fi^3(U\Q@"Um)-1D&%idT:K_f2X!:rN](/`N %rDX$U8hOg^fa[)HRUONNIhd:2120_S[0e;kanrlfX"2o>p>WpBOet+%+)@>15Up;!LK5Us<[>^dQrqScm_8-eIGY,e^Y/Rf^@1LgDW^ocrpSi/AIB"dHcH?R*'<-u45q(2HH$`7Z%9A#k8s4)1?TpXV`?u0 %qT@;l``uRLF.0(faD;]a"&5;!r%-W3LW)WF)WWQAT?fVfZ"'$=:/Qc=6&K?LCHZcRNul4WbH=t/D">IR`72WUq8sPb.0C7H-?[:b %1\St]Z0I@?=MGoIK"Y0fGN,'^aYd9odmWqH,0_p*Q$=lug+205rBT4Cp=ITc]N4UWU>Il8&krQb=)ajc.]#$KDZ3d"(@';:#&Y.a:-8`[rK&9YjU3_#QP5nkXO'B:2\fUG/.`lK:2822WJ/.apD,O=>]]G,]j %LE$%=AiaJ$jKZf*a8k94qH)-g+A%5!W0,#$Si`ZKiVd;qSOAMXH(F.K8HUUY=sggOoUM&0LF`pA)Rq.Gm4qoU\/'$(cmfl#b4?>= %jO1EXPi@Ae<$Jf0Co7$g!sdt,R5(585pf:L7Gqh?A=fWueNj;;T/\Vmk@I4M1PA;gFD"lNcao,VF=iQbfI=XSM)(0*@PZ+s:V68# %CD9Es/K8W`[tS7?&>-p$QsH?'F\t_rc6Qb@,]bV-4_68Nq_9:s^94E?WnK(L"7*!Ao=-`Xau[uE_29bCY.2;I;dX1kKNO)eZ[g#7 %mGuq.6N6Gr&/0*4>4lP^a:mr>r4+r22tafZm7E=eBA!R$(H^:mpK-oC4u\d%oY7)%2;>cX'0YBGtg*rB=/)BeKFE).2,R"UOk %5Z1KC7P$.ADkt+B-IQr_1/smh`?Qm]TKa3$>%^muP\62.F6&[/5"qKRSbQHna:H,G9YBFs_$q1"`9U-!gSJ+k;&n4ZDf\@?1W"D] %e/**baS)<3#Hoc912+:]Xb**S'@?rL($uHJ8]cQ&A38/?+R"-W4eOGT?;=/H^QeUWFAT2t5+"T)6-O3RQ+AJ;D_b<]WJXLbSqBU0 %it_/qlqK#l5tGu_iB#Z@O+^)?)sE@%]UO&?G1A.+d9P\+!s__a/Z882n#aG[t6:$uC!K'2e.7[Ce0CqPL/N"+1_+]ZS[JAr;N2U)&$A`Cjp-!QkgPp0?=X?T`/4 %mfrW@b\A5PYRDW;&SN):VNGO)M^AY=)WemsK8WC7ZoqXfnE+30]!X_i)Gj\WRb7%\RIAN,YQ`Q5>fbR6=nGd-f6>tUm/'*@R:ac] %:T%U.Vmn)r$((`'O7!>B)>g`I><=C-X5u-BDZAI0T%tVegHMDpdW?RfOgGD97fjr#(a:trjmmBnIr40u:RTGH+3^pb921J:nfmA! %Ha7g(l;&19Q-G8A,r0k`N\+`07q_=<;jIleDY0,I3ug7^A"2&AXJrJ#Yuti#H5D)k!=#fN&&MOemI&6YD;l+7Q[lXNfENs?$0U_% %(m[[\(mk>r*iDGO!d#hA,#RnfBDMZ$Le)MBOX!`_=cDOBcRa]):5=u61o:juKTS9fCeU5dM24DCUh&5EbLeM!VSHG)r+]Vu']dZi %H%^J3>rr'>NWT@F(_P(";`W0_B1u7?OH1Bu<"#N*b:"TqN<>fuC-5;-!%n?:lZ#dokgXob7LiGBs)el\]/_(l7YiL324gXfNZ6JN %aqt?E\op-!eAJJ"N*O\%#Se0YLlp_sphc"VK7[M,f*-m_VD9_odE"Yj+/W-qjo(31$QT+u8_P#l'q,L?3[)qt#nhRXo)=s'].?Qf %%I"I3Fr[?X&B>G-*`%Btlq%ar*e:d[=Hp_k6ZETZ?GAV)FEW6Qk&G?`3EtVD\<8H7BlORMO5Q(fj+F\Y[heeV-7:a92p0Z%=2UPU %9S5BoN=]JL>5ntNma&]Lh2NC)AN,4GM^pBl4#l&j!E5\[*2n#J./a\ZcutY0^s"(%4d.nJ4UVE6:""1bXWFVr<%PL=$E%4#\5WZ*?sYdF92/\Du%]2G#tn@qRcaZLaIj4*%pCVj#AN %E7*8,Oa-3G,H`c)$7,/,6sVa/,HJW:*.&\-/11pBk)e^P8Y)\J@6_$6'.Z2M_@nG9=M_P95#s:q9;-/8I6R6calrQm4L?cd?i/&0 %SSoUaJ&`l'cMmh)&,3R%..-::Zr\Q8_%/U%5mKWqi.mF9U%2hSs-uZ[o/S4oq.r[dT]sJBT:Ih@p?R.db:/t-F\HH>Hp4CZ56'qa %"J>A[Y@kpPAs,C6hr!5F^,Z!U5\I=HJ4koSM%.F6,=rJKNu1P\/S?f.O2aBmgU\$[CAC[3`,,-FGIim<1jgt_,$6J0O7%!r&2&N> %gb$Dg@1X=_;&59VHQUAI-4JM?kSXMC@1]O?pI-`m.rq=t!d/I)0"Ani05Rn;#m'<=\WT@2K-f#g'"saXEKH9>6m>]"s!P.JB1ncP %=m;'?14O-^((RnUTfu;A4=A3G,k#rAGGH\YQa@]:'Dm`O,gUa9<@QMbKrb`_j*u91#"s0H[(!l#);Qs0&\Qk/a\>$UAUEM$iCG1f %qT+TP,tl&>+8#5$jR6O)Gl)Qf@4h*FGjBG6k,6R.]YZFo6=]NmbA[fJ`@ELWQYS."(?qU(f.l(H#]:Hn]r52qb*EHo\8>-);mk_p0q2Fb(-k$,8GH_/I1"qnMht91rp?gio@uq6pHq?(gBYRe&Wc8 %m"!,nab/F+S.Ka(^b&I!1j@cO$cMq,?W-bCJc`58@q.rBFmHRpD&BScXENsFNQNcGtLjCb0^!e42"/YWYg8rsZ %8@cGbQQX>iO\9YdmBoQBgbq:?P4V-So4jX=k]-ANL6SD'mb/k?Q]YfADKofV\l\1E,Hm[Cj&-HA5Z,!1CTHu8(d!I,A!']d,t_u? %YHp>BJ2AkGYR6BIk0AHG)5qEFVr;]S5!;s2M$<&YqBV*2,\VNH^4(Qu;Db[hlCPP1koZAU?o\^[ma6(qR[%/TUH]3(pRC9J[_H#G %CB(=>5^`Xt"X$%FW`i)RTe0$rV\q?%D_Qfk.k'X9^&j4Xf<*a)2-@fT:KRc(IQ*;k799TaB3@qtWk,\a.O0M)eeU7H[]^@1l):[W %bE@Ru4nYSro]RMcK.;62a.DCUQMB.)dd([5oRM%U95u8oZY<;45sf5[7(V!!fS#sqc]_$_;TrgLd!Whh/2a*f6`Y7,3IceCr2#Ff %7E#/RmeF.N54+A[/\<6@qX[&,0""+iWQ)2X<6GYuacTr"h=59bnF$)5qeHQ.cZqRn?ELa:C[TjNpm.K"d_&]jaf!e&VqASYfXe!5 %\rX27;f(8gCu+:SpCpj+'O1;G7J#+O7J"G):TX'($;[bmBP\^W^7QCS(=3h7?PrD^07Rj><@d5W-F8+l&=(!,Q0*?RDP">6H/@R@ %*i[5ndWdsO"8+-q8!'jHa'3AA%kI.XEhPL+8Qn)Zl,pB0Ctd=_($8U6#jnL\YKF*hk\5/=,V^\o0KC/ %U-?lBrf3$O\2#H]f2C!cojaO7rA,FIGQRb-V.G`i)D(%6pn)7$dFZt$+M"P7L;b`8P8J8&7"mKK*"2eMSA65XO_/sH`(."h(`p4' %i`",p[YGreCS:MOC`WrqiNejno*Bj.2D[JT'E6ucAp>jJC:hT,<76QeSj\K%3lo*$;#,d$0J(?p>ZnG][dH^jPRtO:n=gt/1b49[ %`>*g*N9GQiM$9aD3@skTnLJ+=Q9!J8V)"Xg'.+u'!)"`J*JpNiH=Z"[Xt`gB8qe:KhG7'%D1P6!c8-ccRsXmsO8&k1^2=T6a*kl+ %L*nS^'K4$K\dX+mu1B((ZFh?=POPJDMIY[ %9KeeXOj5fUI&:6Cd8aEDPudd9-N/s[Id1A$!,jmY3+3SGCOZ/X`4C9YM_Xk^/,NSQLa6uF_]\kg/;-r2X&I79Jc3oXO %82$1mgm6:?qH+R^:''a'2N,jaQSXssiRM\RlPY)_>4,iP#G+UJSTZZGRo*JYY+Fh(99e]3RH;<;WEiidiKsR"ST,kT#.rgOpgbH] %!4)Tb8q>m1#Zq@`p!haW+1lW8&/M5(RTB0jSK0C7XJ^=+Cl_mHgm]bKGj,Elc2AcKDoIkujcZf*%%tS&[l4uZKb]O3M)l;`=_*"8 %;.kOK'e[)5bM\;i50=4r]:6b%[ViR,19>YP:M#:VZ0bp1$%VC#RGfk\i$Ers!o4XcT?[d=!B:k=hpKa=oDirh(QdSJ,9pJVdcf,A"J`N)>RA&ZUu4Zd5^L"MA>$PBOP#+:(:b\G,EZ-=,'d=q,$Bc$6rK>L %HH.T*X@1%d0k%X9iF>s!Y&bg'LOFYl1\rbYYTL.G,`^RRSIZh74Em-To.1@nF=f]9=BtY:(RK1O?ZnNO_Ag2X-Oq6.S)]X#3Bhif %mI5\mDjND'\-m7?FT:_N[r@.e5]U#%g^[8DH4!"5'i;c)?><$Q.X5YGkGrR1b(L6Yb#?+bPs`MFDs\iGq(f?_Pc;;_%'pZ^jV#`cGe>cJoZEbFf %9Xp<"N_@k_#GZ[YPe-YHRU'45["'B=3J`[L;DEI %MFXEbK3/IV's>:%-gZ6]_l*<`O-do`JkM,0IAG&[=3@gn[Ik9TgC'%^9u/A2R5M(K2XVA#qm'@__HEqf=j,f-]4"W&CKWqRRK%Qf %'[^*Md?6h"K<(eJ(V](OD-t=uCON:uemgSGMD$fkLogMNXY!UklZg)pi.U&[dB.l(f($=U^%0a:g0;Ihr0B"OFmQgo=+fi&X]t9' %7nRdsbI<0!rpprgRSjE5rCm^2K]AM3i(um>p7d3Pc6]qS*\/R`&p.KY36q2qiX"Jg]G9Su0cTWP5UJqOj.s/(D5#"X4bh#_OW:W& %=(jj0DsD:hm+h6.Vl$)4!;k.gfZ+POln!@5C:1"e&1@IGa#)8&J.8e:$;AZcY:2p'$H)E$8R)0W$+Bl824HO?+s)a$NG5XobQj4] %FDQC*o[W,XVX!!4lc<&68AZUFW'2'KLSE4'.P[mib!7V;(Rmrk8g&S)Od=C"+mKL#mZ>U^Jh/h]]>LlZ9;W,9YE+EAQD:.>D/aK9 %r=JSqI>I2#9p&o_:l9h>5Xb;Ao>;(D`sB))-9V>"N#&Vc-*f9Fd;.6S+ehuL>l"I?/T^>2%jGR`A7,4ChAD4tHth-(bq(=1cK %l0]Wph1lO+md9Pn]>kW[iFC7Ta+HBcE2O]phMV:,d#Jqi+!9A/nR.Vl_rI0^9Y9V#!usMVmeYT*L/3ZFfa_r\-qtr`!G/5#QJsNC>aM*J!BRrWZ%=;opIr"tW'4*Kmi8bH3Q(3ROVng?ceV5k]=>oMH^o]#:[21d7.2 %_^_Q[U[\(:r]Hqa+&/BSZ]+9CLA.V:.E3jQ>PmY"A`$u>pV57#>qu.+-0/&XkJHap3VPmuif@#F>SF:qNGbkFLQ2;hZP#^:oUtk %j/SHHIdW9X9@D)@gN:QNKq$HRndME-A=LF9C\Z!JIdU>&<5P@48;nX8Ak %nHmRg^)j_p!kL1\d7M-Mb;uB8i$77Q893_XESnUm8Pi'pJTjbC0H]Z,N6V1*n'S%\Hb4k(6h.QWAES"'h]$,u<+Q_GeGGtP_791s@i33:/?Ys9\M3IK9@Ribr)Va:%\LZ3P'GDT[Q-n]FfSY/".84h!.R@b,gb^n*4'_hMs %iNkUYI=4(_ne4AE57O/J9)Fil%B_Yf.:G=d$lbt*e[+/!HApN<>8LV/R6>b(Im1PkC_*K%ZZm3?F($0d`8=mg'8Ne6f0d]spBWngs``4Ua]j+.EEH`CFa0@cGETcBL>dPNk %g'n[2LFKh"Nr5,$]17S8i2XbkHq[:!WeB/!V>)R,PE5[O28bIsJuNAKcd]UV\gS4GfKF<@,1t)q]@<$se!%JB/H!oO++q1YE#I.# %iM]LY6_]?X!oj^4W6Ro5Nc7*nB,qI-6\kZK0FsMERP8eZ\;-UIauYO;nd"\dB47:Cq5eompC8jYTN#fN>N7RUFPVK0EH;ce*i9oU %[gOlV!tI<+m%`^3l&Gb6m@uK9f:MC0(IkndI^\+KA/cIg4.-V=>2H&0Dmln+\A#WgT##TR^3B8;.Xkp?ijC'b3&PXNV%;uZA9o37?[F-gQmC8Mh$pu&Lk#uT5>G_Z3U_="G/2a5DEb-#9SGXmq3Ma`$UoW+DD*ZP)V0f5bp\TOffuEk/p+< %?.qSW%ngBpd5!\<_il?6BimbPBr"X':0?T+0!f8Y\[3JNSs$DZlR-89/FMQ.RpnD$?TcYeMmWEYR>/6n5-9:j#Ng=igVXhuqgDkd %LJL,0qrj!BCtCF^&rS%9V!p23XTSIf2D^U#+))`Ue7Fjt9?bGn7_@O># %m!5C^T@3YTMUKn0[3$nWX"Sn:(0T73Wf*s3SYR<3H%h.+W<)XjAEU.t5L!`90(6GrpK_!45qi\<0>/\GHn`0:DnHiaR`soc<1rtl %94EJ5`&%h7fphALKp(PJ,)4U[6rktuVd;'0L$k[MAB^],6ch*"#Er:HP!^Bac4$+!Cu!6Fi%tf,\[2u`#?:,e=rs+oM71AQV:(gg %]Y=+h2>):Z=0Rl7KXO^BEbScCn'[A7%]&n%M7;>oFQAC7Fl@+.$g@\WP>'>p1-XKub$aBN4,lKd;M9)R%`sj1af)a@p#@6\7kT42 %8Ud1AF=b7(CD/X`n\Y((32]%o67YfYD'i]+jD]Ib+U2.&Y;Zk0M`4`Nhi=d+:>lRNHj[p"pUX/:S?9]OU#;./d%A[uXkf1[q2q0/ %54-Y+7rP+@5&q\"dHg$\oPC_6qp:UNT5]qKE28rnVpndsoGJ]%_#1HM3rTPKrSiq@cL`[47O>0s?MgWKe21-o0\B79g4GV\nn$rOI/'a/[JHrF\H&]/'F^ %\/c=@fSXm;5pH$1LJI+C@IZf+7?2g>Qi$=qaL$8mCeF4IQL80.M@S_u/EhE.E/VO54XBiOcn7(OR;rao(Xf %(Iun2rA-R94?rPseK^-"[3a:c7fPLEc_%MRIU8bb-Z#p&l([Ynq,o1kOjoTSIUq!?U2H\N4C6Tu#NY4KdBEh\[eFNMd.Y$ATBM-8Z`UOUla&bA&a6B>rj;PKi?*,`c6" %a&:%&2mla'*_4M#[EEgR^97BuZ^fM`!bS,u!e5XC)\,<]GO;QELse7k::?AL/#se3Z7`KDFuq;L#Q.]-d%V %8%_IGNtc1*GY*(8?],Q&`BL(E@9[oSr*QdQh5_8\fcmLMr+t4aF=nRbZA`(V7?2%=\;Z?V*@/EO:hWP^,_deH[4L8s0o6D_P=YGi %%NtKYD0DSnSj9PERA,15PQQ@sJ3(bc/YCR.rgIEm0'2e.ahqWM!00Ug:QU?mX/j.Yoi8^(ID8C5=VfatQeOY=,B[+$^ar.HcE"UE %]SMnX7ng#lmg^tjV-P,o]uqd9H9G;5SYD2SXGF&UduKusZ!o=C]Om&um/%L_k]3Q/g-f*p %@<%DkaIq#u<@INrW+e->4@bKE>ESmW\@Aco=Jj)A0SZg[?BiL7LsppK_<,h$W]NU29KT\hSHdo*[M/^hpNI/B^O>_ErnYcp+27Qj %m54eY_r&/Ih^&3GDf=LG]7"`2>L9kZo)@drmG"u'r=?)L?bl*9!h=s`T(=e^hs%5no7m;-^Cq%I4Ur497!ek-'E.NP^lSL7JH'q] %c[L<9:]G2mHU7-crXSp2j1KFe_0bka@&n2t@/B;t,PVgn:S7Ln9g^GHZ;cl0[5i7"Z4a-=&#^J)$Cd%!$s:t[9!BV%^A?k!IK@1: %k&OMJ_$83?@0,oUoM,1!3s(PrSo$2*k^3(hc<0T:G53##H(*q)$;9bKZoKaF56fS\T,kbGhkBdp_"3GihW@BN@qg@1(\fTolPSlgBn'?`_6^b]j%'^N*CkU7DPm?B3&T %.m&kL]0J8@n%#>(*YhguN-CLea'`4kXRYtTJmC02*Qg@,e-`,27GoDr)Duo#lOhgJ+F3G/#1H.UHR8XhL>]!'R++5BS<*"_gd=nMCKf45W\=HP>!THHl`B03O=T`I %cCaF=SV-GnaBQ3eK)+9,nS)@^3eZ*84AJaQNds73@i>Z&jU]7[[7a=d7CW1=olT?Rm,,I*qkN.*In1Q/0oTa,q#?ET3kU5\Tl_>W %3D&3--IsrEKD81r@0,*_<;6Y2s3<@E^k&+0_4eYRabdfji>AZ2IQsLJM;0e)!B;d],6*bOS735?&3%sBO;S>=9kVY@6-FPF %ONeW4G^,$b/CG;ND?^;UU8&gN#mCZIgqkFQSTE^q_%5_m4\'HTO(/Z4#`Qulg_NP0,;>\7djUUBO%*EmKe];(JAEN9D4@hYXGl\. %)hpJuGj>VUkP#ANM;uf#JGDacFug/-7W(:D_(os_kU/f5""_\&J>lJ5cGj$0MP0(*5aYRU2XOTg=9K"%3PS:N`rPHBWpgUV>"/kC&X>@A@*/9L34hdi6*s'p)O#>Z6H5Ad %Kt3jTFgh$C.7IAtkkhdXqs^R%MZ=\/Sq5?1"@:!10*nG#,+]$IDEK]m(3u>P39N=/Xlidq!H=i0!=1'@)3E!>P0`5<-mmG+PE&\B %4TY-gl"q>O`B3%m+KKdXa,[XSU\'.19em94d"L>"@N]>T,q&hVKS"Ef>5C"_!/jqJc7mTrrJdYuJg06F0T)#?!S3KWQ,dEKlgehM %(09[)Z6L7iPDMPff`I+2O:JM%@k_^'dbQY%.!)jnNBfb:sAfqLV^XRAm,<1Xfp;q*k5Tj=c+@&"[J71!`J@`fpB4g[88_j]q#;#4W@@>TDbm4[% %U/%(l+pcE(FD!EbXekYt!f:Fn;R-b0!gnPH9Tp+?JE1,"*Z,41',PNEn:UlTW2\hbg8R*uVE5%EU0"9H"T#+AgEhGD<+_O,en)=-8cVVgl:Of&@K>'WH4eh3@<&3U\NVa")*Q0S %3!4)m#`Q?$n4;^.+/S?-HbSo)Jes_Xbf6ln^d'%.H:(9Ahh')cUnaZlpBqUDZ27M8K2+9tL7jMtf/tT*Cce>1)blH'Pm;hRRcIBr %#n'FK=^G&&_V^eIASQ3R63%eK/4:1-!\d/\dfkAUSq3]Co5ou"$8@O!rC[aP36Pu.DQL\&k?8H3AFdm`cpeTV.i@-b1mXem"7ZS, %=l&PEBNfLZNrU#IIoJR/d\:g!FBU69.W)(FB\Ut:9NQ"q[U>t3,n2ARL`i]EL/@r&!jm;l[W2rX[i=ngIF[)HefJk]?;8O" %cosAlV4at1+T@c/@;f3MUB9I<)6alDcrjW/Xph08F\EfcfGm8!6tB\b3oq5c:QQs8V]!ja/nn;2H/$*\1eA"6DCP#&CsQEI7YV0 %:kD49<3gX&Tr\q^#\Y9rm.LcdW<$,,b-W'WSHVj:-J`L\bRtcIMA_aT)an)\Q%0[P)$3]8Gduu&(*M>HN"p"O5S2,m!t_\kTV\B1 %+Stl>df+PL;5o%E1t^Q;oTF_%"mr>?hRBS?e,T\#NSIFW(Ah %>QfWuc^d):8V"D3KTd6=2Oau?Rmk.%\8kLc.@(_LZ`U`O;AF%$cA$/p:]V]qpSo=)R,F6(Q7aC"6)?X]"4EehAf3_OF&(qoX[s1'oGW&RhR2 %W.d_qj%cS#)X\79rX<7+hcGLI&55N:'Ug3M2Ve&g9>TK*A4k69`(g;?NX@W"KO%&PD2;.S63,"Z0dgP(#oG3ih*$"`SRG#[8NA\g %7=`4E5P,;X72MWb-r'Ca!-[1QZr%#C0m95mT[trNL*]oB?$)`jpru['4,Td?J827aN=s(PL>+%D0UWDL`E5P.Fu@qjFIR"nWg!,a %I@GhrW\hNt=6kG&VfP]//G1,&e$C8#Z&Y#_)e+IF0PFfJ&_7LeU[kKI4TL;I[4^X.>kG&(QDtj)K+23hjXOj+D<-mC(7nH'kag_`?soMT,rW$+Sq*\5e(1LCZPaZM2HMYKF`L)_9ob`B@ra]P#gb54 %qK.t^ND-L?oub1;ATG)4;*c,0W^50Or,(2$$8ucKIkh,r=@?0@U3Ok[V[3i?H=.+9p\-D#GH&-9bYgT.^U'g5SQNM2@lI4>[.]/:P-?bWhO4.dR+'LPuI^MnG9s]#9g+H'GUO4Mi6>ifIlgD?3DWa.g %2)UHUN.LktCRq"jcZ^Z$D?F?8r>9Zs.6q=^[XFN:3sM]tYct0`&QDju=ep`)m/ZLuJ;,&c^q#G)R9Of3"P:rUXi\Ai+45'P(mdc@ %m[,Pd$2W1?cQ&]@Q3aSH/$Y&-eO)4pZe!JMYG6q["@.*-TO"=`70R,LJVg=Z4hp4#5f/X&`bnaP^@:qBS^[^c$:aDPcG;7?s!3KOU*B(nog(m/H0*/--YaH$7&/^%G13@LJe3%t2f=i[DMU/IrZo-*WR7%o]E/q9o3tRn%RS98Y!5#dX3YR+eFr%sG %U2=BS@*Gsmki@ZbCXA)-&+u#!' %9gamIbe`a'MP/IrG^3(RTSeo,8&qic*F\2?QkA72M]&uaaLHn#rB`bWNOn7^(?R%-ZWNo$h&F)O7R\2qEG&-u49F'r/,C,.^o0+j %YHlI6ChI^@S^@jfUW&M8#QQDV%'5J^No83F%m0T-)t'2=7(6-AK%-l$&DB@l1M&h/MfHe0->T_qjLInb8bjr%7`3lF70j7kO8aJgYeco4C]TK %JJ8C5^gNoE[\jo2\ms3(XJtQ@+,Zq"iea^b^R8$*$>1L0gcZpn#V[RlWGROJJ]WjT(B<$19Y.gfW^:*["^+hB"P9[MD&Nk7ZCm^% %;7dB]BdVXJ*d\p6]]<"=_N$lEIk#mO^takuUdaO&>nH_53OldYO9eWIEh+t;BSW0J%k\.RCk@<\G_Ekp0Q[G+C:YoB=^;VT,a]_% %pH_s0%WibJV?DGYk//,>p=7F=&->L&V*!DF%cGIa*eF8]Yh&/3W1;&sM;q&dA+JsHlr8fbnK/%e53W\F934&u3BKT9E_aJ`-oK#= %B]L$4RrEN/,=)BB'eH%.:H3Ig:NNWQG5*jIB&s5c2>qK0WcqE+^\&ZaB,?02*`0KN1-:I+fC*QepQBM@I)IOtV5-&[YPCkqR0e#-gHc_K2CZgF%ZN>A'HQ,u>cBpndZ3>^5,TKolP'Q:$PpP#Jj;^`W! %+B4TmU2ZdA6LR4Q[bHMhA4f-rX%RJ,8_V%1WoL540ab+KOfC&./gN)d$au3Z5ZoT9Z/=)hb#CN0;*#^ %%G8$peZ!6qF+D%_l_O."(,noBOk%2gX,^t)QTP=jd]Gqh.mdu'hQ.J$5WdH:i>a"XW[-$7#m6(l"ioPO^fX)(P6gO?Z\4R/0_&:. %%lMqp")"sl=euR0][_sFoOg;8eeV_mWZ,Ee^bO^;[(d8EBJoK/g@bSb-hW]oFp]BH=bL,@E'sikA.]';`@(:SWm%YD&`?+'1:o$@ %_3,:>maK8GcfPm]1H%<0LV0_t<57.=A\+qTYSt[">#ZW;8K^8]$q!4<`=VYj,G1cZXQV-P]'3W;SI/_FP;!'%<2476T`.\I]sbpn %4s=TO==Ab]"l4BS%C^L60*_PV\$A"8oL,&"f"?)<:tqXlB(;MBVp)2;5Xs+j1Nh+t]".=oM="&k"a,a2c341h9m]N!l.o5pG7%R2 %pna^N1Q!<'56lPMjX*]K,\'bEMd!gY%=23/?k*,bI(ClEXIC&^SM3aVXI\Gbg7TCe>@1c?<0brJ]o3?t<['MUr %[&5RrdDBqGU1B2_NMCA6C0)RuVKSo:-tj?pjqfme'44h0kRNWFO3MAjo'KSh5Oqr\Q_J5I)PW9U'$$?W+pub1L<_pU0h$.1W7[u. %:$/7Fo61>cnKk@=NAjA33cp8!V]p)?\f^/D5bP4o$Vc1XLBkQGQ")NB]^5>#XHO:)WqVIfU$k*tLOd)`UZ&:FkGn+i9hULk0K$%E %HjoH4,`>/#a"#76@mA^a#f`_omjbK4LfM3J3D_fa%N+OtKIBbg4(+G6O\=#M7*S3Rgn\AF6J/KpK"sC\LjCqZ:K't&!9u0gGnW4? %<JGC[0VhY(6mL+)BslPF(j8^%fAb'ZdV3MAC0Y# %'%V4^JG*iK/0G-XTDc]T8PF$RkoN[FcjFq7dTDotBPQ082[;du?"1cX@YeDm5*R9@C+D#Bh-Q'R4NTi&8W'15jq\G1U#+(3--B_< %?>pP2eq9^2X&/J;oeouE!!.]no@$Pi^Ft/fbr\'tZEVa3,n'r>B*VB=?ih/eo#;KXje*cQ,o2EbOg@B'T1i]oJ,"\l`6)k+A"ig%Pp,9.KpE''CrrRlQ\3TAA33k9%NYaWi7+\\HK%:VmZse^fJ777pY8aBM&="00tpWt-mG7eB^Q<5V)(r/S0`QQ&^6R,,e\UQi#[/5 %=j@:h*4Eq*fqnmScDEpPC"Vp.>ec$mUh9bsHq982"'\=%A,mclc5&dnd7ah!g!ud-@p09@<0AO:W^C_RR[I-nZO+EVR:%LA;$5:C %NEHq=#d)'@8N8>cVE<%>R]nt6mX,(<`&u<*s3`aM)a7h&;G`B\M3#3PO-@?f(mjHbG;9Zm!rn; %M4MfkXMGg`f&*rQ&j!Z:mO49@!4,u8W9[^V//?HF2fIGKbhS)e*VI33DfQ,M5rn7 %k*IAhQOoQ/;kTONfJ&7A44[j`bb4U-Ec=7bLnM9q(9pJK/Otn==ohZ0[hQe16;#PRYbe38=VCiNFd(!;-V[VoQ;mB%VF\.oO2Lbb'/WtZjjhZpLQQhjOcZB\^=Oq0J-Z,rR]:j[Q!!X)VF>TnQN2&b#VRhZ]+'HB7 %YV`1.75:f#=IQ*[8Uq=S+2JMqDJN$jf"UDU'O$qoj^5*''%7.]]c"IHCMHi,SDM7Uh)>`$md87R"IrNoej!>L_>5(/j0LM'H3uA/_\5j0SFh*USas:n]WrY<%KLH/T$&E %UIk!1=oG2$VM(!UWgFd7U$B-En;1Daiq8/aFd4Kg/]-:=l7]#:$Gi`tQ?X`!MFV2='7jQ\j\hA"bmsZir>do&eIDgQGE&]'o:b8^ %&LVV7rsbT^9%ZsN#6'A&?(2fV7'_".0Qe)S-*hSZ:O1J)N>dRB#JtOW8qa-V60Ke%o:=j.E`"mGdH``5qV7K.2*F("*d*jc+N/Q3n2r-k]>;CDD/5N5BEqEGJq/S2UJ[=97])_@Zm6NsX_O(X,lCr-5 %@rUb2lCiI,,dl882ujjEAMCM;a3i\P6+ue*Sh`qOCufh@%:u5ua_2um!e=5!%Kps:,Hse7,M870Qjc7t'nOC(;rCACb$G]'1n.nb %3=(3Kb\!@&nX%2*ot[1GJh\3gBm;\X(b+(c+i'jT0j7^mOeU\L6+*N\T[Fm4I:ElWi2AV@GL8b%Or`@JeIO?+1fbV_OB=U:-g3Uq %r8uRo6mBZ`4;2\"bj1o&!#S#'ro2#\&K$mV'a,;kLgeCsV3E;LcFpSN,YLbHR`D;, %Jt"BQ+9BC\e?H[.]=S'@C!p!sfeYc$4`Y5c2\b)N*o,&1(j%E>%?V)s7SlD=kaJ3/56c^gP'"f?)Tgmg;6fUL`*3p/S[3c4B`jgA %'KOI&JMl\HD`%r8F=>E=Q2#_eF;?d#%MV"9"eb.%R/!<\Vm5Eb,YiPkEb3?X$GKRWUcXWTfk3qcdR<0KEu@G/JW"n@U@2k]I)O_E %:#![d,ETQ9QN@o6P6/R#]W4"GU"3m+K"+/P9ge2ecuWDGhb"A'@a@df/b1joF<-<-;8GmQh1T0N(=a/]G`snpMXJ7um6*!Pr-I0=:-]j(/sWB'5.TJ6"V39O?Q`WI`0hb\d/ScAt]M1pfLOp?\Z0l(0j!Jqs.()pD'.WaMn %%mj+.5*hW;d8DG+3%>AIbZ\"4PC"Ne==\t_RY[./*R/W-U'7i#_l=>Q2.o6+:?/!eW*&D[.;NY=4p!%)/@`V+XCF!TAfpY](5ld< %F@`WtrDG2)._%b6;G=t;Q=,5.EVc+:70mK=VRC\WN=[i+"$7a!.6+ZM)#4"r_/[tMYSnN!<2fbd39Us*H?p.66B*9g.)_+\U;gSD %QoSd7QR+%!9B/S0EK4KNb)/C2"0RlAk%(M.)3$uT:;On)7cmQrZDsU+\?%Y$0R?Cp@n&Oj %70Gab>M[``J(k(9&6LfWE3p19f^mWdG=5:fMFNRa[?=T9d%Nla,Htf[]3)k4*lhA1U5P(g*+2P)!)[59d\nPe>J/;CK;0XpGp_t_ %4BXZ4<:i^n.N1?9),(HT.96Tfp%46@f+lQHi\MT<^=#!MD$M\qB53YGXoHLNeRC':')_eGcC6/#YDujN[W-8Kq/Y_-8rjkN&/2f9 %CWK>W,I#_mV.1?Q0P`p,c+om%K6D&L29$bN4YbL)4ga5qMNLY-e`-$FR:b)HSEeK][O5jH_WpaH0-@>pUf6IiRe./91lK,."r*sR %#18YVOfSd.kT-m8Q(ej_f[bW\eE$($rYQbha8X7g1#$^9TR)ts`n^s21eXZ1KgX;lHYEZS&3N%77'KJ;$@?@8U$`&bU:o`0@N>N. %6.:u'e_HHS'c,1t4]iaoV4;q]WZ:1Bl$sInX3KbVO^`d;i+BAA0N[5$JnOc3d8/)K,C)a9!PbcM+G.r)QWF8'l&UT*3$uuVO[dlP %T.Rn.aDR8UpAPiU?bNB:?i`O*/;8"icDch\lFWoaV/PmiJj`&YgP?FO)"L@#(/^3jlVsea+R4),OJ4I$I.a&oFY/\/UN39.^h$72 %RY/jF<\`_$H#mSEr4+3nF!eMADRrkF7t=W@<[&:urOqA[gnP2m+Qgr"[r;q,l-"A6rQQEP"r=6W;]Xlg[(DCLj+5=lL^6j8N^`_4jbNm?6t=m;:f %7S=@Mn1cua:;CQjo2WWQ %fK&PtV5$^S\L!T`-2^f6L$I_`,!$L`E$[AklD7iapMUJAXT('='FqC;)U$^pZD'TI,r/!uONb>dX9b*pL/k!\44pidYDVbL8\L9a %$f+cUdAWe"CXEG>dNu4u/ajT="s'>$2E$bDZ9p_Q1g*gO/9+e5gH&n/VSs1)'1\Ee6)5hP_b-3,W,O_E>pn@?VU>hb-mfjrnu %X:?XA?j%K4ZEnV'Q&=2S<=]eBnk=Aqg\,W0XBQScNILTW`U;!_X-_/i]mR?)H1TM<0*1_:r@cGK^4#bH/:'L!OYpB-MC8G+nTIQ_UM1Kbj':Di>O'9dib8+)sius1(8/3mjmoEg*>X>u+"[t;H %'$r73Q1"k*foroXf=$iXTIu,4fAk7U8i9"Z%S.G:P@n2$Q"&.KbDrqr,tLph4Vs.o`Y0n,!kBRo_kD0;q7Mkk %_1@NJ/W`_eS]H`X.o8ef?1i(3TH)Ml!JIgf#Z+N9YZ2oRm>&j:9U@#h`&A;U]>Xeh6pU;ZYIKa>C(e60C,S(c@^Cpg$eDF4C+Z?@ %61;?ETFs370eM/.W[>p/@3"cl:BAC6NX;I_Hd/f8MhaWR+ %"m_hF(5s_/S1n7AD?Wd]L.e@r.k(h3<'oQ;a=c[/XgW5XfuuAoKXco_,:;MM07lM[:KjOW5R6C]!d#l%dSiR6J[UG %F/!%k1Z+$D>CiUt2Kr0dN$?S>km:0^*-2_5`EfLHa$nh^,7Z=0T3!g*?f#nqs./gL=]P %g,au="/uN_5f$Q3:YAd2NcoI&3Zp\aY'/C(mDJ3[2\Zh_igrr4])__lUL8a,0.i#"72AS\0VI0lm+*/=91;(sX=1gc7u`p,i5EpT %3EkegZnhce4TVSY;)tDm\&B$;EF*)@5jd<23]$]+Dh5H\%+r7had5_7)%\/?u63G@(hPuhkJ(B %)'a+FMBD:B]N[\Lar.U:Eb>EUTi$):*:X(dj%_-6hbn?5n0gA[^TObaW#SZZS=T3Hf,:HmeUDf[mDCcFl`iZlSEs!aSGY\NH9qLU %nCNSlb(V&.:Zc:oGRqQ_e(cCOF,:=G]+qj._(F3jA?C4,fN2.9;1V.(IfAfj:)\`CZ$'Mq(9IZD%_Q%S`=?obRHoD*)1hJ3[<:Np %=LU+0;>'VE,*jIt9H+:+]N]s)H'*)tH %Q)R;o/>J/`N[+!ni.-8,/ZT1;A06`W$@BcA2$[+/f"$H6gJO0q4k:+-*[l.GgafKeXAq&fI1HJ%#^UDpgHI6FF[Ld[R>U&V1B3<) %5'en`QAA/hbjeIC_NL.)6;AT#e-1;([me&..k@\A-p:Dl.bIbflr]13H1F*0TMejRPWS>"FfV69P/\&pq5_+fdpXZb>j)S6\1cU&oLnC;ORB\24"G@"Q1bJl/:`oqDo!$&>Y!AZ?J\[[7ub!s'l[[C<;U+.'mVTu"jP7?fMH\q[pJN8)*OJHNrsn2OTL[`];SKWdi+DuqM7;])u\a"i>Xue!3cWsX!@e015ohCdOUEB1*N)P#Ah6sem6dodmpml"QT><\Ei!psPB79)-j;Ju`Q,U1[GS77ErPT<;efCq@/E[j3"`<+ET$d]$@\P'$+ %+-^3i&E#RhJ,DBuCOO9CA2E@$@QV#+V_HtNFC6O]rs]d$jub):`.c#D/bq1X,!+;.jlduIG1PDN4Ot#7[\Eq[?L,45*UO1\f)l%/ %K&0_`[Z;s6$KU7OedVdX %AN3T#F]>]LMIkh@GSNg4`1b*MYJbQa3BM"WRKAb_E`\lOM`1tlD%17cVB1QRTIue7,9;+SkhZ=@14n@cf=uqVb#98GtH=O>fdITTFt>3J:61Hq(*S&#>,L@JV&M-c)t0$?)?Y/+@)d+p=?Y=j)S6\1cUcZ8D,FpUDbh`pML/SLimn> %E.5H%$lWW2jUB-4ON3*l"`mkTV>Y19@I6>EJar`<`+_r\V+:\1>:hoJghE5CXD?RGeWF_tE!!?XKbB^[T-[M$D?Wf7"p_[R'mWOe %X12J+E'P_MU]UD$)!S)3267fH4\u8%C^&!D<]k-ULcs>l!@hB_\#uhTY$p/5i+-FEY+0rI2n>4$[@AkoaH6>I!YP*.e[L^uoDJ3uEZa!(Y-6!lC]H1gU\4K%CZ"p>;(m[fr'rYW3,ckM'<[p6a %Z$'NC4)I#Xmq1cCYp+r(p%ng?pU.2_[XD-H&Qgd-4b9koh(;?\d;#,%#=mT_Z-Z/MRoqCioW2G:'?@b"/!n7-Z$,&G=W:IX2(c(. %/T*V"0R^Y/[C>LTE[Xul?t8_:VVGOoMW=>VjTi-O4P1Br:Km""Y#Zc`Uaj"$!M:#,X9CYmD>TtGf(Jf6A\ui3 %.S])b$G>5t^mU+"E.:g7dl=n1&][?e>WP\q)n:d0Dd,6VG)sU.c$npk,IR] %9.6'TjmM9(VtFI't>WL;kYBE %^6Pp1*#7[iP63:7.2ujS[W*q7a4c*m"%CSQH4PhL)QY!il[]&$Y1d+3edpB:DJ3u=o8QdFd!;/Nf!)b$3*?I].!JE":s7%BR&3&; %#?9tRVo#HN0nn.d/IO/=Zp$\Yp.Jbs#-Q:Ym"#.r][GP'gHJl[\tQs>bW"eif;_-U]>`(/%QmL4Fd*SD6rSkZ&uY&gU:N_uW.SlL %*qHTDD+ndC@t)5Vq3(Q&DQ,=?DUj %?jI/l`TJ%.kG`@5O"c!oGLa+.0m/GUiW$r$Duo:^cIl>RG:RXpnqu=D[6PU:eTs&OYL!dB/16PE+I4pfg,>:0D-/mH>At''-.8)] %7kX\Jm"#-S61:pkgW/E[DJ8P4(*)1a1C%omA1MBR^fc`sl!fq1_pE#/5=EY'.$-qVBk8^M((8TOH%iX.V$B%9$J%O2*bjh;koC$m %-f0&*GRE`?3mnH@:1_@tIR9D]/+7?ZcE7ppC/o)*X9CQ0V_HC+W2,\(Ic#>"1h_ZO_bs8Go\eBjcKIfO?/Xm,+@%/ggU-@CE`b77 %30af*"[-X"';cUX'e!,gF)Q--_dC"u-g.aWQkEHbgUibR83!bLFs)3o:1Z&7>T-Gg& %(#$9(JMS*$jmGaSa1:*+J/8HU&0+Lq/#B4m>H5p"<`hF[HCtNXCiqr_;QS;^ASJOS!`[lgB3j7UXH%BiJQ!G)Gd!COR?9bGgOT)" %SU,)6EjFL'f[%BY>SoStBDU>&d]9Gi7LsQ,Z@ep;EHaAEh_Mb?]E!qoXi=AqiWAKUlXoo>Yhl<`Y_Dnu@kU$qF7G,meq"W^nQ!': %DPL)e9HcKjP-o?#45Y4u=s7U6[0*619%XX)C1RljkVoC3*e[k]_=uNgotrYg)]G6jH4/P_(\o9*]+l/'F%s9?Q>O$f]uE'c%TCef %MjE]]V_G4bG+a4fhsXsa/Tlp"b&dFJ$W&:QB!o&=j#!9q_4Sqf_o_#7Q&'`+B;;L0:KH;/de%d1F0H&3Rd0R3Rn(,%nYOgFE`M6J %ecg"4B1(%^E/V\XL@U7$_bLS!6W<#1LRX@J#I2/ibIYIXP\oP+JM61gXrSJt*$9Ja1CGr7X`\@Bqmo=;* %IQYV`K&#u>M9>Q6/!*8T=7,5YL:(l')f^_B"/Q5`#n",II#g/;Xg>/8!]7J\DdD,WP*6@@ %L'FQ]cQ]M+S[P>n1`hTqLiOjM(3W;RW$9tR+#R.pS?/kt][C=iPM"SI]hlj]m6Koe;HL]>?YS&q#/,Q:Fb!mm>O?3Efa$V8D?t22 %o*fO?Z$L:bZE$,&:BW0CUlgmi`;IENA8#rfmd1`TrMK6mp$sM->FGXDBrP^`ZL)It\\m]`g0<1;O3:tfd,8H#)/c'FdSSNJ'S?ljrE;,CYgd/T(>aTY9VDaX5UC>_8(u79 %;lIajJ^OWhd)#_D/&@,%brMqQ+@%/ih6cjm267`8SBO5C@AJ?]$9,J!JQ(IYZ(Brce4IeE<6_EFPrc.S[nYW*[*"J//JK%-*5hn0 %f!@^^3LXs@!#&6]g(8F`YK>e>]m>P[FB)BEP6L3qm[Ws%1Q't=9gWeU8=,X %72?-r[8R^XT4fBTXg4+QhRg@taHDWB<\=7fOl>Xl?]QN/""gXF@Q8^g(&)iXNQ(S?[I%IE3&fk^=^GB#:U`g7=>^j!m<)>?C/VB- %5"gTpKU7_Kk($',NLk6/X-Qf\=?Fl0@r]k%2oQs-'inQEHo2\k=kC(mb@+[Ti)E9jM,O%IMm-qI%c$BI!/nq;6*A'sb#VNl=(=gH %=j!aUEAdFuVtZSO=tIembd;,BiU#)pgt-s#(=uL:[ZAPhgl279.hd,^a"=Q> %TWc;n^qF?;_qM/l\/tE;/?ZIbD',+^\tQs^;X/37kU)`u@WC=4"p,Yf/(83T'`_uTZ*2*/0P>IWZFJW/L9pY9a]=29JU>?M_q?Q@ %\?GcZ/?YnRD/trCiS9ClAEe3g2_/CmX0=.j=t^&0,t20[7=]INV-.nZeH49,gH)gP_:jIR$HiLPohld\?/3/APF@`DA1QPCD7f?ub"-/sEj'mSV.3ptqhJ$Q`3u)X_dC %"8>tJ0jEo4?<&:@@n9sX"n2%$F'5p\9lECB=<5cCM%8Of)]60`HBb>mDEsHf+^34V&3(cf0bm2J]31eXVAE?1=oM0(;'gVBYJ#\^_61KV3"bqKAI1.Z$)eD^uE/C*7^&lIZ%!muCD6DTA/?9ft:s#cO?*s":267`8SBPN^:5ids)"W&e %.oBkEM93nKCX6D4\\iN".Hi4+D]+aZUI3^cP8(XPfp>(XSN9I2VO-+#W!+$U'co( %[H`:^1.\Wc#l2J]f?V?nIYL^a_3A(*0XE.uV.8Q@2R>jba'<@C^_&Z[f@D<-/MnJZVZSllr)-WhgjRTN-r#%);b@HO"`M:\f3Gc9.aToP.Z_P=S%_Ouc3Nk=R,3M=*bkAo8l8>Z'1 %G,u2+X06cH/UrP^?R4mMn#ESd^:Lb$<#t4Lr22=-!oB*3FDK=i.irML;?./>Nh`P];GdTfbB.&+9FD'@^(ALT_ViK:.?1epC %[Q5iYX&W-h4`JqQHuE":o[YBZu]9#9A!I&^1G_3%G`:OT>@$;s1_WnnNCZ5#bDU^ktVYB["r8b"dBU5Jub %X1mTjlItqt3NVQ:T?MZjG_)tH#ZcAmK<7lUp34ZZoL_Oe*1Pg[k,PU-*Epn%Z*pm.Rc[-YedcfP=$5.#Uj/tA;8r:F:0F`%#c %*7bQ.:1_-?B!&8cX04(J;CVj^9@CKGROU;&QIYWSl73.:F,o0^+70&$#-.FJY/:1h#p$qHRH9EC1S\C)h0sEQX-/W9>fBkY;sL@CEHK6AeBkQYhj9+_X.s_(s6RGPDIpkn+Sl97%t$*>*ur]h%nBD>A\6cb[LC@I %(3"7::b7pN(5HW?bHfFFhi'">[5YW4=WI,f/ISl*@'1Io@ueVO=DP,4^a`IZ?.OUsh1_n5QEW6MnJ&AQ!kd"LIE!ktYBi %Q$]>'J6IA=[/%G6'1_-,_.NDQ*rU7 %2!MCQecIBc(_*n$6)`1tU,$gHYap*fc*hEBf%'H)Z3O1&]tkRJ;(QJhQ6';.ObDAE-k;P>/+[Vcp^ejCPB(6GdMA3f6Vf2gDo2d-+F(1=DX=^*rcXTqM`'V"'%%E2=`au'X>(1FHs'g=AeCU#>>d+$cT#OD&k%U:$OI@!iGV'!>"AEbIE>NXe: %,[IQ*r+XUFTOZ.uk&b`KH>p!Z!jaI>Ml7%`CBYNo8c)e!(>&^\`UDMIK"hS!]"R[FSOGB@,1?l"Ac)G3`nVY3s+> %l#+jhZS^:F/3ULD:r2tY-o=\jL:+Q7+BdeG)Vi=Mu+<1[2:LG'-r6E%Rg4pF=]oq?aO?/H&ghbAL1ZbLI&H,1R-K*Xe`J %:8#"L$HuOe>.*&k/?I6X>+#Qf+@O",:V[+8IG-d^CUkpP6>G0=X6Y3`r&.<$trlm2>X\hZgPYE_ %@h@3,C?f!)bl[d(U/X"PD,VgH8?W-"en40_[>IT6CTY(oc_.>`da,A0mFKg6?/:,\;W4;3<3rB8D3bc=kKk46S7I=(bCY[1+Uc)F %C"9Xg+BO6+\m#VC$afQa>#2!`ZW:Dsa7$%8oQ+kd]/@!&=4dK:3ZN5k"_G7p/L.dcA&bFO8dd1CMPbMr=o`BuUe2#(**eu,f)]!S %[.N9+eFgN+at*E!\gf<1Cg5Y3?*2`/4a8Fs%L!Rn7ZLZKV$GUu.QCigTp$H#!fK]HStW)_>*-GId)iGm]EmD@m=8K-Q4_@&&Gf^K %jct9!?'U_)[]Sr$>j6BR&"ZCK,I1:$,c+++&$GS)!3"Ss>q<+oic5L"XArHnXsSEnWb^p`PS<?]".u>RVOi'ZW(WVTj1@skM3.D<-\Z!="OE[8dchC'jeM\7Jn6C^PkEtOcE8@Vp]cMi,iT7d@CKho"dC]D9J)K=*@t% %X0d!5GFs3H;s0d*GE5.G6X79oJ/qc'$IH[bNDahL1P'qViID>)D)r@`WKeLY7Lpe,bh-\9j;ArN+`QH]#X4i1>G[Z_"F$'^e&W&T %N"\Q$:M;%f8\E4N@I* %E*8nN&KSu&ZtPJ\O0CZ#]R)'P@^rcQ.)iP*%dmr2KgYqV*aUFZ'#J>(;X!%&H;FXdgWJ %Q3*0G,?LEHK!hlI=`[506XM,[D't@2h2h"9]qZ %W[mE.A8HqN6N]@>$8-WSA+m^]4!\a+(dOHNl\Em,uYYI'NG#IpZMePs=Z&C#,;/s7,gL"#-1\_/^W?EkATg&EclDZ/^!k8k!*4!%I,kkkPjqp;ucT8cMX$R1]QPOB!0[C %\c7'Vp@cPOoB0`?\V;3Pc@>WZG4QoRh2AJrqYU;6G'\L[rUK/iRGZur?)ZVGoF?`)5Hi@N5AXZXd.fh9(4r\\=?IG:*$6jLkQ>gd#L2bY4%eT7UgT8O%i]Sc2!rZJ)LM*k5+,_l.M\H:>Z"qI_&Z=]:'n3?+gmHRPF]ODUL4eo*Y*(F(_Y!9YUe&lLJ%\&GYc(62(A#*e %dq5Jf6RpPsPNeer^"dla)Ulk$(QE.VQsTf%(6.SJlsFBAhu%`ipA3rXFu8TUh:8$-c$`f=-heMB:35"UE8>5Pe-k9^BKOmQmem%& %a1I/t%d?NRV=5#)Dne@1fD,`sA<'F4[sg28rMPj?+$Q3e>TM[L8D>Q&DEa&h1[+Daf-&9nVETVQ^3pH>39qo0/KMEOp[5rPm6-:) %.FdRHY4'uPVB*7X(Vk\I'^YJgiqhfPIfAkT/YT)D^Kf!e3H;Ce>!-Kl+5WW\If8dh*82PG]idpYV1-':\N.78qJ^e%2.JAA?bCsm %@J7;3nF-,'=(`%H=8V!rf"^?'=c:RT]X!EBF/Ho,di(CFI;RcK)H7_q26'I]e_28lEI^Y0X:hO(YH. %cXUoUqhF@W0sgTpP"=a+^TD)*%l4i7XV(K;O[FTBf)0Bqe=1$cT4V>]T3gP!D!"2Oh6jhCl?YOiI[B`&T=WcLjl%RKA*WdiMgU&+;/H:I8Z'hVDFDc3Oip<\JAJ\P'[#g_Vd3<`#PC2#5p5ceokrY;#X5MkSTX %bTd;@nE#X0Rof,C]K%dc7RbR._6,jMB_1'U`PnnaYDZIa_o;H%fu`A!o[B"^e%]/6#VtgO^A(lLc;=>k\tNt)5hS&qXO.:4lHbHK"ACo,gN#eSR9[1lSCugmqB81rNq5D]Y`/oG;p"?`nZn7Lt>%bX[W(,%YL-' %pT7NrQS=4i`f/LXK:#N\C5:dkQ3Y46MJ[0qo!UXlicF:0gD^E<]#0(11ZlFE>^Hd1=99XPP]u",rUK^#i3"TQ=gp`k- %07a\<9r[:1J??Mu3ueM\A+!QNHXAuK@]R0R]+`4>k9A.t!j?]\]3)ja:*eGsmn^^e:K_sN#IaU,-LaW[IhidJ^;;?(h`[fIBQlG] %%%G\RQS8/.$KM-NMeO^Fl@&dLI[(%No;WT.[1K9j5eSLqqSQ#./-=]m/ck!G]r!%Pjh?rd@P3@FoUf#aq9HWP?Ek*gVZiX(us^M@"T) %Ippiup>u>)?MX>RnoOWq(Zc0S]-#@GF*;hWB3Bd+.0spBp%Ib.q:4:S1%n]2rRo<[=*(NnfC[$`o\hqI\_+E\V8U?2-\QAFSP+Bh %\tE?/Dm:m7b@g?[fCuVCLtu,1@+O\R5$30ZjL=AWcaseDHCl;E)VNu[>^bj4NV[0>F-#pdu<&Ndq`3Cc"<]B %mTNm\FhO>E^WY6X:Yi^=2.?++mu$f&Vf&u7H>Y`!Rk%q9"=nhZiaOQXn@UcrrUKIFG(tD7lf2]k@s3>=<\@NVZR2o$/>'dh\\j-n %(6@S:Z,APYa)^]PcFm-6ZS^s*H.Qj%;D):u8$$AQ`4pOG(GFmJ9%o2iEq*$kcg8-tm'Cpc\*7)b[[6RPq7ChmB2iU&g+,=1!F(&S %kLu]GR9)V"BY9%WiH%)l^+(VueVo,`q;B4.oul%-`V%Or=*AT__iM:gn,'"ZluM^7VX7_soA.Vd52Nq&@fB'N)dDcq3GGs04'^!$ %gLEu&@e%DJ2eQc)?PFC:m#1J9\*#t\J+9`6l\i+(05f(lIW9dWEcn:X@^.^@G,E7(oJtWnAdJa$Z"YpNI>T;62Z#.&rqlWaj6^,j %>P0?d%::*C_WFjg?'J^Y)*5@+Y@cnkl5\?@A"Wk+'d3#]WD^c1LNWs*GMCd@iVhGD+_3O(73H^b?p?kUGfJK_Ees<=(TUoUr46M( %pcQ_ar;1p$i"&slqdM)-[Fd)IgVmX6Gb?YtQ3sp'YTX*C(lRcjZ!AohMoBkEfIdro`F?HHF&dD8Z+cT3Smr8fYg0V.[[2bO0=KF7 %o9gjZITDc1,piTa0DCFdn81nAT91,-Uu];1e@.:]s"c*-5i"So(MqCjTUT)f/0HSZTD^[f9=duoo+6=[AG6)puP7\o>>9\2o!UmD-e3EAk`.U %o%-\9hqNI@\!@M0^O,_6lkU02k3VItReh!'oLda1CL#Vt6hYuI3IY!qppQ^1F.)lKi!:)]BT)PV*NlHRYPiAtc@1Lin/B0[XLZXg %b$IF^dnXbOqp4GDk6/bDZ^5$OS[!nkcXm>oeTQis?q\Sq@L:[*90cT1!F$h'VVSW_baA69$.ok"Ej5a`+]DVs!S_T(M^@:!-EpSR %5/@kNHSQtc@Vb?2M\`[K?V[4KhVtBp^;G,n)0=\][I)epam&37`F#gpB>erA=.@bbID:"Rm5MN;\#4H'U3\s:Rf2:E@SW2=U%-<1 %Y;V0G?@BKa\t%]njt*BJqsr.G#Fd6AI"1_Gm#O)6tXhpsb2obk[[buqps8$o$,o\2^eG2JU4]1Ld^/@hrrak[reZ9s@O[1/GW7:UWToicI77;#eGVUs:b2Nu?RB3KDS7;#eGVF>-D %_,W&V0AEQcD6=5M6X%t$`@OX1QBA@>Bj-au7;7'VVDm-)I&\N^XV+eeVsC]V5$]&J1Vs1mk0LS7#tmXfCp(/Va#U78"f2B-`?.:^\l\'$e0sd?Y6uS:!HuaiT<9(]!_9D %hXl$SMYn(5CPQfK9^LGMDXkNR*a=doif[I^t.E)\PES3F4I]:+Ic4kAcOdOMQd)2'$SQi9K\9C4 %2Of;9/K9&(>.LlCKpB=u/))'plLG;6G+?H+;!8qPrTBZc%NYL\nN-$ViX.ccg6Q1u)gmC`@ma&!QDI"2G*-7IVtcm,5?5eE1W,hs %+J6$qAobSm/E]gjdgu1@3U@McRC1O-iCcZi-/&SW%FpqRj>mCT]o5G$apLDaWHr0Xr@hp4:&XZ"b"^!2j[ %>iu'TBjD\s^L$`,O&r6/h]]#h).:lYgf&Ql.k^d7_5.se-2mY&V8Lml;*^BJ1._FbF)ps4h2Gh,gOmrc&imC$E-c2>s&RkaBJIgY %""r/W?_-ii,H/>h\G0'>'G%iY93g=P`T98'i"(-Rj>UHF=f_#jE:pZR49?W9ORN0pIJ((t"d\N--h-*J&*I$m+5Zqg4njMWqW=-f %n#nD$r:]X@m13iVH>e<%Ds(1drU,[!qm-.smE]]7Q@IE@f5Fioag]$L?iF^6iVsV=c[0Qu073`fs/5SI6MnO4falr>K:MO>ekmG) %^NYMgF.f&s'aPq/TTjX#dKe&$bJ7p=^s#)@f'f0hfBsbqChXDH2@`sfKA]E'TK@s!7g+R!@!*Z$:8N124rbi3YcU,d2JHtHbEQ]< %!Y!p?d);#-+E`bUFT#O7joaY,Vm1iOq7ErDkVE66.'peZSZZhs5tV_:lV,taDRGo*d1@f:@eb %^Fq\0'i3@.6QNrP=^Gjafc\W`PeRu14O>_Mp(sCN1jh?'.9UO+XN.*YA^Gt3+S/:l+IG4gd[@?oI*r6XGT&"OG\nW*I3MeXaThmd %b[:85GT/$jEC7T3VI:k@%:e.MuB5N$]:Aa0tfZROfI- %D.*WOQ$#RF3f)F,/kb`^e_*DoCGp]IZikS\F+fOq[_k;t%nc^ii1'lY]8].AkIp&Bo7L"ft(7 %it`N*&k7qOBn19)38JgXcq/";BkrNjoS3aR1YPM5^8s#k+A#^FFEEp#2O0o?Mfs\rjl`;c9$;8,[%K0K$$lh'1I6B?+dXQX"Eu9X %nM6@OA!Uonq8S`i<"Uni@-Pi0$.4kZl,8jXurL/UW6Y,rne"c\=Y22U%mR"hNP#BU4uo84=:2_=@.%34])i"C`!Y3'Qtst %1pI>V.G@XH6HjKa6*'!Y-]oQ-LPb4!L^ujJ`&t[W_!X7?&2+\Tm6jIYG,(.%05*#!euRR6Y'B>*9'q=;TE/AQ;'6'H6;q`a1Jf)& %#Wg&Z8=t8H=ool=H6TdBd;sU`iWFW$HIN.\OJ:[fkm`BtQ&1Aa"F?eP&1JEFjdUI*nAE/<\,Jlp>n9maf05KTi3F-bLVC3p(<'Xl8[R4C[_bDY1;Q6%q^D$cXTd4cjf' %$0Zq^*AMmO0lu(`q,6=+?_0\Wiu37T*UH>LHa$r4d]idQFsIaliL`7l/96i"*t++5XG>dUdg9r<;[S`;_X`V&a8EX+$N;(l86V9q %U.!]69_*n:<4^GeQq?Kk@P=Cs&MnYIja`[J\l9e&"HniDM)%2>0g`6:rp$=IP%3\=H?TKI[+N)Q-(4:>gFK30CaKu"#UKu$9?>'^CuVKdKU %ThCE5Go8(e2[?>jh#%/Tb65gl<^<>ZOiS^=`gX+a6@0_51Z-5'-p*bHEIJ!k:fr)g5FGWdn-E,V1\btu6f#7ms"ZBT9f*c4'7"aP %`6u)R-VHoO/Q%6ULD6,jgE8S5Vhsc2jfNjs!%d,\XrC.r!kc0N!b(RQUE'Sb^8mu>6>cj0*uN&GRu4&dplf..*:]HA0"t#`i]\5^ %T`9?6i1=IR4MFFCGbYm+GoqVWDBH1[,$rmU9/dSF>%B'VXu()M>bKmOaK-oXHMN(h"C]E0oOfEu!fVSnbL`eIA1F(B-.&uM]/704 %,6Q@Xa)c9(^.145D,[=2,"7JB\l_[/L"$oM3Fa %6QV<:JNQ_/c2Q@dmb/#*\3`NH8cp[Tp=kII?urU(:KnS`EIu7ArbU@(l('>Ha,K`p%7)0kb=)Jr;(s1uf1T0jVK+Q=GX9.YV,SM> %Z3qpi:ThBh^_GTq+rkCX"#0gDRZ;8XGe>B34:ir[fKRcJ1LG;Z&WHtB(Sq5\`UcVH^"?tRS9jGLo2L;5g/KG]1L`A-C#Y0W=N!os %dW7*G7Pc@h@,^a&`uC3jj6I7,2t:@p2,6U!4E:V<#GFs%QZ?WD%*1W#SRjt$AE3qS!9%=(ljYp&fbh;_HZ%T_&id32.kWEOA)X`_ %OkJ>Ll32gOS%T))GFkUid)K]K)G2>O[LS@^6l;8GP:'eZk.:/#`C%I4M\2D6XmZ$4,`RA-MWu+PtS8n`*Nri\!.@(YJ'Fsr= %_4;e/ei)Pnum7`)F=uUDR4=s![D<;F/_cH^]VbFCOlMa/oDeV,Me8+DB/Z$r7@p9)M/(^Cn[q2lJ"0f-1DdDUUQp %W?0b#;=F/pA,t"OFWP'/@bt\h#^ORk6NQqdfhSq,jA`Y>SS!Tb9anQ_G$GmYO%"'eC/k3A.t8=V85Bec9%6o.hnl#.;W4Rq@dAHF %]I_#QL0PIIPsrm+TNClNJ\oPtq.OX(1qb<%E=FNgf2)d9IF=9('nD"VW9EUWOfn5&"m7)BU(k8qtJ61H:"L7T7uOZ %bG_KuFRMVN03?p4;BC`ODOd[O,4W?:1E_g4Ec!q$Sp2C=YYZsL"sAFAmM#C)=XV$X,h/W_SKV_rBNI_U#sBkVNlZX"mU,CJl#9N:?l)R=049gLigl=#'>YqfsEcc?q+GI>$ %I)R+gBJ!)B*h`RIed+R=Q_AdJ>M<\2!d_C$`%eJoO_EdNX^!51H=]1n4G3ak'd5DKcP!o'Jcf)B^/kuqQUU&20sXeVZ*8*/`4K?k %,,Z^QTT'6.4*5"TP6:Xc<`(IYZ&9D1g7)(&52$9-Sco.D:j8"$C8L1VT>^nRPS3p5iD %isIZb'kOF@?^Q(,=i"UrJ__%'b7/Y*`Sku'5Vkn6Y2(96!@ATmN8[0hUj/+*1*YFNE/*BBWfb86cGd"#5*g+D(OWbi*KfF%3_1*8Jqk/pY913@O7^ghb.!l_"=2[kfb$F<- %B"`@4Mlg'fB?0Zd$d\7.qI%5G_"!n];R;aEai&5$B*:Si1o_8ZBkh4c$iOnZgSc^2RA64nXKs18+o/Yfh[CG(!T;o*f"g]C&0]!?]7pfV40r,FPFhfobEjsD9#_M^Sl'k)YcH:rDob]ak*IJ:,`E068_k-C=6Mrk,1DJ#Z^ectmY"E[YmZ*HO]8<%TEb$;]3eX5hbCG.$,(]nK]!d<=7VQY>&n'.`656L+S&VEeCk?)7ZqgO4:2:Wa$Y#8RYq4Hsn3X_h#!AV2G%7HO;4LJ# %5@P`COO\0:LKbFGU_d_/5>7MD,Qd_^#.UC[8'MaYKgZV0a%IZfHd>!-Z6Z'O,o+gabf8]65qOn!F6p8SL.PNKl!%R.@hP/"&gIHajbZrn-.ld6@US.&@MXgWLgA!pB#>4"+]b!TfcUcb3$OGAk_OtC)/o`KbNlA^n?Am#G@&;$2$/tTAa7GS,_m;)i1mgg'D\B$1MQ_Q\?;uS0H&C %5\^g*+$8]Fgd-j3>L8pn9>LU,`amEm5MuD$]AJ*`F#tX6r8p)[61PS8^39p`-QfPKmX=m#jSdcg--#raB5.$-q=fjdUWk/QfVeFl %7h>C(bbMO)H]!p"1M4Afb21`/-W`O&I:C\g"F+V'p3b2`-3k/d@PK,E5eA@s(_/ej.rs_CR%l;cP:LUOk#X4/lAM:i-96%AWc2hbkkQI,%XprFXW83I]LN>_ea`,OJ`e5&&]5`6$ %#1^s@FGkURFbH6<=4TOcTo]Cr3?>:li`WNO-:'2Eat,B+R+;_l"?iHuH)@.^T5i(?8+N>cce6\#+aJ'l?7j[rKZ67:)-m6VI#&Uk-Z>0LXEDIg:(`9KKARV`r,'uUJBfJ\#'Z?)4 %jIlo=/4pk%0$D(hf>*Npr)g<4A(_D*Mqh1Gg62"0bcGtsMsP@ablNQ#;)#&hZ(j>09*7ee'!2Z'jc3Jt/&EBt:=)3LXTJa9JQ)Ws %7rf-GU#=(tda6@4:V/KkkMmiGf&3-\;au1:b5pN&*E,J`oV-?(5)BlYU*S:Y*.63le!FOL=FHqS$dVs"0PE69]Pj?ZF)2u.uM+AuF?VhjWW^XFu7C"T20f56"7l6OAbKi?Q:H3rm= %a"(B'A%^`Bo1!as[sB;@ojEU*e?,$H,f8W?B22DW:(W(LT$4C4dmtSnq6ZWSdu(+LnK"S#ETb2+\7PE*-SHfqM\^>q0//+\kEX5] %Y)?[TM']d5S.tG*p)Vrn=*"p&)J"3;6"NR_>G*_3=NN`;a,2YsE#K=BD>4;70M&&6kVX=Ed&0&;&%HKsR`XC`)n_`'qMoaY1!&d_/AdcpS4o$uCo('LdT(k[$N8+`f2mPD-V"Ud(nTn:O7Bi_$23[M3fM6YiBhBRCF* %K@uIpDA&lo@k_J+-k;UT'Qc`O.3);ap,Q!AN3[l'%T(-ci(W88#ga"0e;9`H_E6FsdC]SnU.Jl$":e_"#6OkOc(R7FF9q4^5m7if %KduS:8noJq$Q(E`9L(ZodR.(>G;,(-12fJf;,.i`Z6c90VKeNgW8%L\Wu&9,Ugo2!s^A0>O?QCG8'13>ZCR-i4;^E0ZWWMJZb?aO-V'@]_T<'RV3T5&OBPJ[]4gH%.G3I)4MK^gAPD#3YndA%c.*OT]<3a0Wt="*QG@sWffk]%B01:t4ah41$A4^D1nh:4q*^8cio6/$&4\d4!n7^glhTLUhL %Ma-=(-nNuu\Ibs)>/CJqehnj"8CeE2BO]Xj'N#BL\6<_Dap5)NOI]Pab!;U:p2r(<[brX%$'ZSY\BNGFlXh$d[40H8b"`%YdW.=! %N=m,\6:q5)G'VelWEle@qm;8;*Jk0^tU'^?Mm:TUoG]'qGdP0$SqB#!MBpE-P#(_q_UI7^u5k'!K!*p$-6l6rUeoW/aD,\$$s5.2WO"OW#`jnM+re %lW-i9L]dprE(!*j-5cGc,eU6J;$P^&,#FJh6HRUECTXBG8Aj):Y*D9G_)R^E;Nts'N<2NkFW_rUBIgG0JOuB=XEHi[%7h/1DhLOr %al_bjNm*1*m@:I[/O?K()6SRM%kNT4nWN5GKb6kH"i4TS2F?\d,Et9RLPCn=MNVT'To%iGSW"",XW4.mk%OlcGRY%4p`Sn"CPQ9t %$9`+XA=Vihh0ojm8T!pUf_YKB&-pq+@]cF;`=V\6n0+bj8Ke4&'QiY6Xs7H+&7&:UO5dCf[&$dZN9C[i*u$+bTK_dt\&0eKa:Sa5 %5RKb1b,M+nf8:f_H:,f89\u!VGM,Ub=?6:9^%W?Y03OIZ-hgL"@S_/;9W2FCPjX&JfO`11jA>J8_71`udP=PtA=kX)4cisS"/(Sr %LkD3d'1f"P:LLo?RS903Ie[724E:`SBA2qjE7GnkVn<6C'@+RJ9pHT2'Z)nSemPU@!WuW; %'6`N_^d)mEkChHE\:J^[B&q.>)NF`fNe?B/1&e[qp:*W61Job1&e#\[P2Zb5p_`G3YL5maF?t7&Nf^Qr5u8`7;22&_5KZ&&:O:]M %0M4)EH0`"GcR<^32!lSF6tgVP<=o^\haEV#jP]O!Lc[jI6bH4;NA>%XH@r^VQa@Q&lXfJe=M4A@p=j+`U_/bc.<7-U'<)MX!q[$t %>X`KT:jH`1KM3jBM!U-i:D2chR#gmeLJ]9]67N-H7!BJ7TpqW>"?K?4+se%uQ2iNq/,!^QAIlIH<#Guk:I,=7&CVdkbKBV(T1C?i %l8QT#HJNG4j:.fZ!hA9bc&#*ocG4$BL^J_V$O*-E"NNU+OC4^a$Tgf=Q[R."12(N[4XeC]iYE!N5gUn.DGWdp-F[YD&-o)jX9!%/ %Ae>_kJFX!i5q/2OdKktXg;asnP2P0:(-efRpQ$nT,XM0c/UetmcQ$R\XaS.c\Z^E,`=W(sU"9gSI8i-t@br26qaa&o+'\X+8GN)B %C*1tsfuMW,3arThkh8O9'7P&jUYNgRFC\Fu&\/3L63O_ijKCEM)kLW@t0Or6Bnp/+QYGYIKL8QC%Pm3B/$O/m[S %\+W+qO(ptQRW.i]g.)dLrK,`'bf@!^d?1YWDL6$dUTQ)`;#Ej^5$G2o">?7]Tm0t7i&a#@b]h9$f2r0D=F][[r/#1Ws*EW#ELH]Hc1*` %#8b$9H8>OB>4>S$ma22VCS3gZkWQT:Xj#_N"`Iu@+'%h(kY7,4%ki/XpZ@SADroP6]&9]PNCObs4VG*h,7E?LM-9S8"`KI?Wr(G# %[mt@i76Ia2m?*cY+'e;YWKaVd8m!Ph/r,2.Yp\p4cDfp/+j.o`c0(jL\Z"Rhc33FK5Ws47F6>AiM9OA5XZ-iXX;1dPc %ULGAu5RDqDeH[8FS15@dE8jGc;BffamRCRj4FkV;JWVHN!]s>3'n@pcfolD%Jj%Ep7.;V`X>Qls8Z46%b()BuatgVPJWmZnMGfa: %$VFni#I2!TeAp4d;eDS(!ZNgaFW]`9bfL-QPUurGc?KG_1@NF:RRu7S`l;*PO2TBf_*53!5@l(5%>bEF,1s.0\o?/0V(MeD"Z"T[ %_+n-J-$RPb'"=$S&u>hD7^3GR"T_D%K]d(b0YGoSF9hL4H\bHFIU$PnND,I&IoCd[OClEh-8"KZOPcClT.;f&=5YMhDiftgD%5"T %,QC:"eNcHXY2K\qHJ1-@AS?-BEio4-).2L[IKPP(_C*65)-8&KgU9GZ&X2kZ"H4Yun^uDHTBQj9BWfnekMJ0_FYj\%jZ^ZUF"B4W %PnKN\QA#Y[8#lsLYI%;glX"fK<,TogH3&O/PIgk2>.@@!?5-%>CL34nSWph1;'V8i)P1h#Ych_c/A),AFet0fRK9ZY+WL$+RV3epE+H%Ce<>qZ[X$mZ#NM(#0#,Us?N>2pLZiFkbecLt"M?:;6&S3PXqMMRpXMsDJ\4'N-;&l:8RAb+- %2r/_W#&3Y8/R02[E&g[K/nI4i#gsNhNR^K874]*sX/s62M(&ZCL]etC_cf-9`]eQ^bAFtCM0jL.#o)El9D=K^+SlZ$"[ %ZTcgu8Mnam#1Q6jUY$'fJt[`fMWS)IoTX43fHLi[8D>HW8sX(_N*+rda:hXDk/dPL)GEcKJtZj-(0Dm9!g@n)g#OR4K?c`n[V2_8 %Wh>ae][li%F=fZERa?[uA%Clf?j'Mt7?iB:ZVa;:&OTDVPk@r_J`sm,UMAb1Hlo9_4RqITd;.Z-ZI %_aU60'jiB1\YIm$&3sfAARc;D4EmH?%74slX^L(eb^3]J&]O8\e)^6kmM&9BLYrV)XNa#E"XJ8E89Jr"%0O-%&mCd/jl,IJ/e@F; %ZK"@$APLTTPF;,%X)WN)VS>+6iW;(^Z@0^7Ej?AZm %!dIunVC<^@Q:gSfbjkh;8c('DI8M3D`ml.o*"a0V/tfO!4C(KRf8YUT3U]_2:r3*;q4Ue %daXpB&r1mq9dT*@>8>AOg#(aorAD7O3o,V;eM9CT"MCPdekGKG>@*9@)o+oj/nm%7J>]d])TYaS0MfLh%U/q^7a__;22d)\9isb< %M/U^Uc67d5?EQ0j0FDpHHtkg.Xp+=LpfLZ,CZX0"PJmQCi],^ZN7bHNClCt)HKZB,,Ug71S3JK:g&F/\k#/D:lm(XHXl/;PAKH%J3Ka&B3-!=9L7ms66JFYOH.WFT^:mJHEr$W0*,!gs.MA;N;!bcZqeW[g&A`@_I&UMWV- %PE`RC4:.[@Mni2s#YR4Z>OX&r#iJh#6\4<3A]DtLZoLD6OIrX3%A$b1[YPd,H9JpIf=!\FYBM,nUu)sQo)&g(++?8_*V++Jj!/l> %1&2T:Hm%PhhBNDYk7D\8B'H$t/'[]k6)a>VnoR$Z^I-[0,UsaZa^?,$UW`ASSe[g3"MAln;&25,.TE](:rEZL4;BCn-`FIahh>MK %@i,U_c1KGK9T8g"]ZE,C_El3EQOt[9iR8-YATc%YHSk;#R=X0,6II0ndTcbEZDg9270aV]!R[K`APZ^ %#YpuDl811S5a3b]D:G7GU:.t@"B^@&>!Ut'XQq`;B5k5$ZX>$P.D1`FrdGMBBNm3YS!'#"Oq::-m`9"GM-q(+IVe6!p#m`TMk>g! %_]C^T\(Wl@[k2Gl_\T]FpMJs%:?-Et7r,Sk[h-dN:8Q&JG0m[*)\9=*IS/.rDRj&^K30DJ:Kk>P4hAbniY,tgY_' %>.6rebG54K_+MOe?R/H7^s)IUd(W=,Kg7(#f'p:4!4pbZK(@N06PL[,rN1rE#6lK*Z]V(c1n\hd+3oDD:N2ptoY+%_NM.>;P]:/@ %'nWj?Hgj3'nrj$D961>0A@-B'PXOH._SgGH=L$H-IR0Wk3Y\:f>qQ^L_CE'%,'qfo)lip*B0aiPfo"HpoiR4[fnU;JZ58/ZGRs*F %>+f76:hpqW'Dp8daGrDb;+r;@c0\-C'DXo=/0Ug=O'abH_1?rPaF@P@&ZOiM\;_BnOQCU.DVdYkRiL: %-S<=Pld.<>""iWKf'eZSh19p>D3@4T\X)s@KfE!A'hCUnS2%da]gkea._CPVY4+tdL]`e.[[o##&%rbNok\l8?gp[NM#a0/I+"1q]Q)0BT["rG:,rE>4HX:g %WP?V'VLAo`p+sG&g\7N>eWEBeG+0k2%9fN4D<]m/'59'6Gm;b9B30GC^fs-p!GVCVSXOd/9n %^"Pb4@d!_XkeReZ"hco*Y:fDf2*`bOWjt`Z=@tC0N76=Lb:qU,#.0p7 %!#44R?nU[]XC\E#R?Z@SC3ZUL;LlfHa'>+-IEaL;_^H7c>-KBX:j0GPg59Y6V?Y>qDsL%H<":lu;psZ@5sqJAr!.TAKGoPS47Re`#bf7m27hW)s*Hk2$rdrm'A%N_g^dEO`:Jh,Z%NbmtQDrg'8YkK0VM %PqB,_>R)jcj4SHV(`E-da0"EH$(',*-/:?[+!69^[LQ=*`oT9BgrFE[GSeJKQM.o?hs9S40-f'I#FpFj3d;_*%[8dE6AYnm!ECn1 %_qUs=*AFR!LZj5Q*I'4N(?GBXj+#<:\1lPio9@h#UA85"b55$3p)3.X/o`hqq!YN5`,U %0L&hL7bLTDNOYHcJ5GHVH1&s-#fO7=ZdZr#nP3 %1K@c_;Hq)["fSOfmKL"7!,W7r^3 %C\.Va.1kO_+9cg7/T[.,SWfc+D2mU(i\7n5JR.(2Bu&.OK.-Z%0b5?g-K[FZk7N=kVDV;DE0Q7V!lYC49k[=1`3m9oHG/IK=[.g1dfW<4]#VoA,3pmi28e)GS?j`c<6!)uET]M+Zd>6UQZ2aV@@qOL[%InAf: %<65DF>\CbA$%s_5l!#Q+!B%_8i-SWJq!d5E5GRPdetRhml`%t1/&s.4p3LB$lM(6-]h.L7%BcT9*Z[uE.+$,(POIrC09BUXjV\[\4Hf@(5>StJ>%A^#2>#-58,%)2TKC@:TlL9qK`595Xn'LTA8CmmM]lXML\hRSEaq8Y!AHWlc"L:!70W7hJO %R_a^4ru2f48r_efX,*o%`R!C1=**>ShQDd89o>2]"(-#(pA3*FCgfpqTYYVlq[&`b.r)^!l$Kji:#hnr4(ql %M_;6t!fJ\8kQ6YpYQMIeKh%c>Hk_M%2$i&`2\Fb*BJ9+(?*"3j3X,!`IKDQ(^E7QKQ'o=Q52]t>lh(;VZeb+bcr@E$[Q^oNkVNEZ %o:XF/%m]^!*+mY)d*'i/[D(TJD)^r,RQ"n5`WM[35iKtf-n)V93bTS:M[V9Ma$XCqS5>Q0?V))$nTQ:U'rTq^nM8(J26%dkW@?\^)Wd`T$,<^atA5P0D//?gE[(S%LT_&OCGn&d;"Xq:W;/m %Q>%>BS_Wh5Uj057j2%J##sPH484ac7KXu.MhNO)-BunhXPRU"&>Fcd_@CO<9GQf.jhkrQh7\R48:k74J<.RA]Ih1GhLNhfE<8>Obl0pGVrs`aN_CL,@5%C[ZT849E(++;+B[bSSD8S3I %ntBP85%\VYPdS_Cb"7P3(8BESXKTSK9c^<-,.q%9)aILFY`oDSO22og\I^.Q&-a4piZ)&[hrq:(VLSsd6:DaSdf>SE>!#9k(QT*' %[dKgfX]n41##D=(uGBUWkF_BZPFNeag_LW-5VcX2iJG$-P7>X(uemZ&/2>aaQY]uc]O>>Q#<[CPJ7noefl]WC5/@`h %Jh=?+bfF2/U=5#NVcVW<377Y`LCua)]j#n]_+hbL0tkCTqCJqC_"*a*H"sp6!4WH!91,E"#BXO/jU/H/^!)$)Fqa %nmk`*Xn.;l@9I_ZG:$(s[RNu.ARJGQ/"&0@JHG&i;92h\*`HBVA%G=;$bVYecih!Y12:(=\6Rl.m]:,%3o3ZWHNhUqq^AmHQ/8ApgIl$f_\Qihi9i7$*"L8]=q5lVt9@^=j_<=J@Y=3!Es,VDYT_H)k=#f'\dMX)mu>`$og,G\'RJL!G2o`7`6 %'uujFKd/i7s*iDu]XR*h)n't8#sepm)GWHX5E`N\OA(cA`g3bj92$LL4VWG_=HVn0nJe\7UVi`,atZj$^'rsE@;_[e$7YYDNON[u2C,A#JCf]2e.4VrnLM>id_G!uP1-P?aSbpO">MI$d6cCkG[/jk.$L-_U47$%T](2VVa7NKd[O"2q-bW?? %C.AH8gQ7hpODVck1YXJ]TBY]("O(&U/[jE"Z@t?6f<&frYQ*+sQ?XCAYd:WqeaK+SK,PeoK\'lXW2'(%>NJ=seF<)qQ&Qoq9pB9tUdTGUlMciS.&*DqX?8^d`5>*(82$X9B?6JF2-?Fdk#ZXX=fYPd %K=$nH.sebuGl@B3*c:0a1Y=94#;C7rJea-bXc0g]rLMm6f;8)f.a``.q:G;aq<_.*rf:C\H]Amj_)A=W'dS6:O'IP2`\L_S":W(4 %kUhr6!2A9fMm>elpnKDY;:'YO_^Y"Gpj&)`I!@5b^^C@W@,Pple6O6u^QNKUNJAAU4I/Y_<38LC)d!C)QZenS\KL^8>G1_*pWb5jL!lPT,;(.JYFE_T< %9-7##2Z.Mu[iZ1W&F)?N-HZEf?.8@SR;eUbrhh+!pt0ge<#PN?IPY9a\ef8btoE$)iTSM/e/!C^X65GeNdTGESaQ)<7;OXiq%r/(=h.X1MMI-KT1S^f0cRTP9 %/]%8:JO'Y.W@Q\A)%<*WPR#k,N6&,F*lB5Lp#44k.^o7k6nQPP]60("f]uFa$XIZ`W`j7UQ`nq*5#Sn@8pII?pM,QD^(K %a=jd"+R;tCAHbU0;T0,kT?1Q3jNJG=s^BM!]O0X4K)+/1^Xt?EqErN %&&f?A6R3]s0r+uOC'c/5R$/9i[O'8!**UepK_u3D8gDNOp%Q0VI*o!,-=K05qq"Qs48Mu@f)@l&P5Qi#s&lb;+%%VJs %.0iX!^d,.:#d78Z\`O?+p=KTf$geq0]GQ)M4,`S9C*HbkBa`k4(1>!jdXe$Y[=WU!UcAPii,g-V`3/WA9D[G+aGT[]B072#3>^j\ %Gf;()9,j26eQOjj3@B/-+hiM`kB?t*2'@)]+>`;hM'O/0o7EZ'gA#M+J)X4Hc[`VNK;-97Ie'q^]/Bd(HZmH+Z)iMG=M %LKRSUc>e4P(5&DUB0=p[nNrkRoU0G7DTp#UVd(7=q%ZoKNs?Jil7d)gNm$S'qd#"M#ap_hUDsPQP3#dYV1"^2*M'*M+Q1nX/5hVl %3%i-]')>Uc$.F*Cq_jS/Y]'abEt&B*.JOCs_D1Qn9;+`U%,qr+WHc4H#moW4LE7Z_8X1uTF90h0660sNr,ll"C&&b.ctS+A_ft#s %e(/6JUm:&6U36B*??IhTh(HG'qEM,9c_f]lISOn.!>/db;7X'lpUOf`082[AC*?[!9-0%BJR1B_cCisHqn_b84G)B5@nA;3#>O+L %i%3i4(rb2N\:g7KC&-U%'Jl_Se^o6W%UET&>nQ>THK`]Z3c%XDlc*/87E9g&hV*J!:G,e#./JX9d,P_,;M2hbm.WgC*k\Xk>R/77 %8(Bal:0iC+PTkJ"g5O)'.groF:,i2>!XC/(*B5/bG8]s3MTUbd/qZ9tH^FBjS+#=Djbo2[)rp`*arC*LB$_(a=G%e@X_RX3jY#NX9'`38*n%MU(DbTXC3#jEJ2V(0UU`!,J&>-i,CXi!"h4e:QJZhAUu5XT.WK=&?Vm2!oH7,2*),AeTsTZFu=(e`p&SYGl+Q[euJ %0CU(PY&>rW:Q159=l3P8J+h]bJ'Qr:$%6mlbJi.YD&S&o>D$d'gdJJ_';o0(ZLlO_KNL@Y>Jal#nj!U]^`YunlOF8HA?#J^8d%]Q %#9Z,9%pB+pS:H/J-r"0*FD=(,XpE(_$+csLq^*otdBn5`W<%cO4)d-rg1S0d@Dt_eHSEY=*"k]'.d\38Ma57eoK\$ZRcmAj4,@V4 %ItY6#$hMR.\.1Y/r$s5%aVEY=Ytgsi`CSZb@/O[],j9a/5_5U==HRHA9fJg6jI@+tFh9?ea`>Hf`f!;NLZscOS022CI1bAP*V6;&"#L*/FOYb7U8s+$ci`$^?h)e0W/lnHK[3=/`VJgNlAD:PN0p:hF\C %AcrnZ4Z^\KVd;[J95NRf1T3Q9XD#%jgMXR(f@<$O_s4V@RnRTS/g+Sq+(^mXSY:PG"jSD'k>GJ2La#8>e10'V@hl5b8>(Af*GK@A %)k"Kb[nlE,.[e=2Z)/G1j.pB58RUbg_0Gb(2^>hZ2kkJqI5NA%nHC8Z7@n8O[&p=nFCkECH7!#9[a&rq&HI:#0No_5d=i('??u(+QT?SfP(SdiPgbs:oI:6_KbIs(j\Sh(g_`%4Qi^;D.QFi %T9I6Dl4J9^f5UZ#Pl/Di1s31VH7Ce0R0MMmF6qV3Ge;-*e5Q&G=d5-Xr:75RQ`LNJTP:e8j[@6\fh'plYG-uh2BY_eSnNiOP %(6O@dXDS(J'UtOb[VOVN[e;c?hm!(7X\q78!nLO_HgOpKp;@;'*TP#+_'3(>qU4a<2-SfgpC6..&/! %?$c^PGG\Dd$<1"clA-fp:'Sqj)59BR_ItMIJHko\!/o20lCA,H&%jH[@-3PuL"0i6i"Y6;bS_1J>/@/04=,S/E1*j*'&DB26j]jkM.kA^).T2*_cZ41A%@SqFZ,W@mQHed %)/tr9+DB*;M*AVl%3B\PZ(-B7)4)h]\TJ+eHdV:G$QZGS2pr_&80g]=+D"';o9@jsH%kMBqc#n:Zn67ICA+RC'2R]$alFm6idPa] %YWVt:Q5Q730,1(=!`PNhGqt)mSMK/6Il^h-933+VVcZj@0HXhtUHL.]T`!rPbS80.'"R3TWSk9rBYQ..08VSQ`!D/j$^IZU.mp1_ %$0YVL6B/A9-ikPU&X]A[(=F&*$ap>N.LVt29$7]>No4o!#?!]P7cZ00`rDe("X2o;Y;HG:;bX2l"].qtjL.C(+:C)9G!6TRJYnOm %!8@l2RE:3Fn>m@s?,:$'oHt>i"B=Rfkq4DOZt",l^=V9]bL,_1_Tp:d6'VWe"<'H,]'PcYnIS)JDeL7=*ZdKU5_JR:Z*)V9q1F;,_$,Z.:')>2't]O]VhH/083#N]s56;L.rC%dp %NcWQ%+is`<6ble*9ad],l&^d_OXS`%OJH#-O[eA!Oe#+.,%&4aI!Nug`YV;m.^*-.TI#C./=.8McGGRbT]1UgJ'Pi`QpAkOUtG$$ %as_4ceaEp.*[LRnXQ5Ijc($G@B1K$`OV0"@IPM)#747=!/f*5]CEMs*DM3Lgb!7#,98n"9lXa9[WWm#,tH0netJDL\_9?!4raFn7'05J$1jLfZV[C7$U_;%Ou"bXP?(rW%X]gYl:_QD$.khR#M`bTqhjRK"s`X1pPIl %,eN;`T<9+M2)-ND$q\HXoGXrTc)8#'Y@sORr5V\59#raV>%/:%3s^Bh3jshkr3QQ^->^%dJO?N'Ti,[ao`lkQXN:c2>2F7,Pf9Y2 %?n2K6?9+TD6d+!+('9&j`l1J@0H5JVE4lLWYba,X]p5oUf+6&[mUL99aA`-ZEcE\YS&,=o<%+KFE>e$FPn$kZFoc[K9;<]r(T`HG %Ltr:u>'gh+']@Ar3MRe'JKXGK!.a8I`*;sZ=Re4F.:%*Y;e=`edj6)F+EqY:E#SYu%d*f;'_=$BfAp'cf/.K$A;INH/?YXa %L=Ilgco?G,=VI0ZRA?2n]>bgikF`fs6q&lQTZB!<$IEB"C?>iU('';u*!?[@56D/j'9)J^&.$.s&NchR$^;T1VOb9)IN`&4K4<1> %Zu5mc/_DJT8URugfd;q$/-5k9J%k8#V2#aV[1!0'5qegd$=un"<+$fR)Dn_VZ54Kk;.M?G-kSJ*%LqZ&+L$E?SZPV^7'?JLU.Z%! %Etb@u@JU*@9n:q\)Pg$1n=\nuDsTeK+QP+@!Y:`E?lR^I$=\/?7iG+t46]g&kDdkIb0X?$"Z+W*&tSnqaJIgfZD-5L-3_Q]IKlg) %7;Ics[pA\JXGDLQ.!c4G\7?e8//joc5#EgH*^`>*3FC>I5VA_&i^d)W8[A%%PDg^9<+d%\3hpd*WkQmS7r4c;NeoYTmAqgUARb!paeYT!6c=;;"g]>n"V[.`Q6_+.&'9r":WhrYnBu? %7EM3=!,&e>aoOV.fZ>0k#>juq.Z&e8/J'(uMgtu.eY58p8?%.K'7']dX?-d=T;$Qtagj`n!pg?6GsH0NPs5D.XrIHI5[)8/!&>6D %<$*PZitG[e<2>T*O,ZTK/#\HY^dApBfjNTdq.]ISGul8BH,B[u!@(jc%&e3;$AP_\&Bm+/.^sqnnSmo<;5]V@'gON[r,dMQhK(CP %WjKX!3[YKS^kqY6jrHu4cuY,m57@:d)&8>?>;V%mEDho%13R'CR>qIZl;5t>5"`HPYb87[L)Wjn=mp?bl1&9nA %H.TW$)BHr>6BPSucdsnrEPX;aSTWWTt,U2k*gm(9\%f`G#,/OgK-P;%d1g?-! %FukInaWKesIq8P?H+EjH:O-DfaWF^WLRpJT8?^>]d^/P#oW.-ckm-8[l#leh_]Cp3rfH-k2rtjDWmNTMS/`a%-h1G:^gdk:?C+%? %4'9`NWmS%HR6tNG/]f/kaEOkS6_r>q&=I71/*h\J*$W;`,/;Wq5$\du>aIhmf-V)T[4[;l;YMM06j-ad,,.>l0o:^4SL+rfogqRA %'pFF^LP!]&10)K,HCcZ37b!\SU.Nf]aWd0c#1_ZsY:Lm42N,Y[b9DhUPXQ;O3WM-cN=[ZC#]:`MAU-WuJ4_5B@]jeW!=[_nP`FkQ,V"3k'U70[m,E!rWcHjQUikf:p(/\8%7Dt6q5BR_RHYK*/ %M^Tj"&pAW.La(s2:^kQr=[^!djHt)IEY_Nb5Dpr7)tpusU>a:BZ\UN`Gf_/`Jh/*;B)fNLLt&>7&YY@C1Q0=+=[Ymud?6q?-S_'^ %77?'*(6Re(Sj&''APO&1A.be:bT]A1Qt-fn:X((]l`u>rqCEhjd5r_6.'Lr@P*3(ST1'H0(/a)0)LV7er/%U'k4?O)fm-!'kE8E$ %en,PGpjni$^bTM]/ZD-A;Md_Bs!;7jV>8e4PKttU..2(9d1\q#0'PduU_?>me0e!=o(&MgT2)2mm>t'W4uJlZY"^9!C0`kt>aJ22 %%j=`sM=S6"U@`tX,!A#YW'>s%:+%f"dYZE.=ZuQF!G;##5+MtoiS9s8Z\cJP:"_q3cR+8#+e)$ARH(_lU;5GMApjjt5.%*9AeT$K %0ddW'0!W,9'>7@#&_T@FksXb:ksTu+3g!d9:?:!('?,+Y7.pZG7/k0RM0P[RfgKHV%Tp+E8?m5Q,mtqO^%Q'V@q:7Q]OfRj,clTcX`r16ssP1&rE28Ober,09Sl%f-M%uq0mB/O^=AFj<'ISPW9=h %RhCR4rI=c6,$e,^XM!>p3KXT-F5>FY9I/=Op>(Qn/"b*Z,e@dJ9-Vak-PD.+M*tcX,*AIh8>Of^&p_b?H?:?.Gi_=;s/CiC6#>Ib %,11?00:k^FEZp%!8AlB/?BT(:MfO%)&X?@8Arb%)7+N:q=P(n6aJX$TtV'&najaOU\i;fs[f_AdCpLMBsQnK2ZhG)giF]kY2SBJ<1%&>K7B>UMIpiks,e\P/rnf.#"F1 %XY0?]r@T)=>D`+rUKuOoaM"9dULAL+(k5?jJgb)W>nZcf7k_jtOU^+rjO6bV@qmmrLh1i?##bs6"s-DCV@H;!nTe-'RRn3aS8*f# %l?nZD0B;gVhE6HOg-&g]+EPDL+Tr.gSmq_Cl\2`bc;&7PIiPEA7ntU^0(Ke9U1&aF0U0Pp#SnO25I$VU9Fq7&]2YC/OIm3:b-!h+ %\Dp0@TSli'V59ZYkV^9d^4-=6-)=hS`"=@^n&Q1I>_mdD)'3[YS4O)h"O/Q.A/PnNZSVIj?s2aH@AeV/jUM>,7B#MQ4l9d %o`i:6eWK%\jkX8DCF0L^]b^rIoK"RKHjI`1ae,`nh$_0uH[+W4:VZ_n,QA-2!6XtN/1;_4qX]t:I)62"([KA6rpWLWN*WMHBDTLn %SMYMpm]>X`T5`M.lo+JEbjqBNJp=Z;q5tb+,7bM_E>ZA$*LR91:bgBq?=:X04m$#P]io.0OWI-f*S2V/X3/6nQ=7H(@JaHi8**eN:F_hC>cLfb.R9lQaCm-+Y&H%o'rY>=3jm:u/")T0g-]kqFSsF!kXc^*6_&;^9 %4Ir&S9Qls+Jrd8,A&rsal@Jit8D.00K.^$.qkKl=/m5Q#V!k;:O+fP+a8)Y^A'f(QiaG1ndLcjnL5llZ;7)XZKL4!e=g;!KNQ,%j %l/?I)RfbQg[U3.:G!]t;R7_WOH7YPo4;lBSJt!n6Dht3anqJTeadeC8dQ+*\LRYlme[:W^f+_sJnn[.pO[B]e&20,.a(o+_dj+Q_ %U-se4+.+^jO+nD:86:^[L>PK/*Cmt6pdM.FRCHc4"Rk(fH*99hU\6a29q(JYk9uQFKfjrf:u;NoYe5MAo!#3nA6rt)SFn@8*3I8I %qk)u(!+T54FH^@+>pfLD'*V5D`bbfrr)tdb'ulUaGnZp^i">](PXKFcDYEeurcE5Pb=!>8']oYIB$6.DgfDgo$]9h/JU62CS"9Vr %*CG,3Qpifi"iT`.>h->`iWNfXFHS#[ajL8<860#tPe$&5.5?)A?#"Q=:POXpG\a0t*S*'FX8u9X.($E:9Ed9W$:tDT#]*5OB/&Y2 %jui.n-Xqf,r%jJ)&-I\8W\C5ZE_-A"M@-<0?ra'5g_GI%kt0B4d&uD7L88L-YoXU/?sM(o4REIp5UI)Q,VD*I*J/oW'7Jg;.StG" %7mSnc96J.I&L^&BdY;Bm0*B)u\_H\:nQh$2k$$.k1DS]46J`Du&1'0I5:b_]lsD %1+Mq06F=CkjP)Qrco`bUUn9=$hXJ^?rSfrRaJc"@!Lt^0l+Yi,=l>K,/l8bCoK7kL4._[MJ;aOS*"P %SE'jQI\*'*#$:leH#n-MnU!*m&.jRX')R#F<@id#8rsKKJYH,>"TfgU:>X1BPg=?nJk2$21LUVKk]Y(1qtHHmkX#IF9#J^S\$=\> %.8h_1T*1PL'eQtgYlehR'-rKn#=0]WlSnY7*ZI3qEg%_3qmmjO7-$Z38lVH<:5EGsUejI:^&9^>8`4E(@%E%"SO1/f-egM3nPuh. %`Vj^.hdH'nKpU:c2B+nWK-[]^EG<"ftqhWa^pqs0;EDtcHnGk1iMn+->B=XOC.Dliug %hEP#)H>SLO9l71s:F5Jj:DS3Q9S$iQh1GkPXZotJdH%rnR"1!%82Tg:4-X_?0!(:W1AIN=e-+`;8Fq_K+u8Vbd)eCG;oEB=eqr(` %'m?Q4;9^//."g*$0MnQ*mPbt1DFdL/oI2OrcA>Wa5>5"5(U3EPna]T:,jZ$L<6+th'[E-jBt"Yk,U28 %66uX$'RR"H=?FF1Ofl>Bs%4`3QLa1L7M(c]c.H0QabUtQdWHe%NKj43kpHO1ecO2L"U23Q:'eV-`uC^kAHRX-]mUB.EnXI+/4`"SlY5,CYe@9Ft@ZutmR4fmds@?-eVb2nfct#ld*pL+80;^I]o?c@iQDm!s,lkZ":g(7E;'\T:=e/SPZaTN.:O\X35@`KY@,b)_jaAM+\959BJZqZ'hq-gE6Nn.gd&A.YI;-:8LA4rU+< %doN.D#+'^@EY+,OK'O4dT_q.A!iWm#6&['e9M5">T0QW_DfN'KUIs\NL_C>)m];-b1t^F=:M&>ngT]&>L&QMOoFE-A*9TaU0\g4M %KK7u><;RO,R4773S?4'<.7m)Wcmc##A-V<;6M^rK-\BG.C@Wm02\mO#4Yfo.;bMOB#ZlgRguqiN%QbCVcaZaVOE;2>I4(#I16lZ& %ri(PCKUVrJ/75dE*`Q$s%LWAW.+&eq+XY?blO-ER.#\NR]Rt3!rOtUrNK"?nI:#N*&As+A$3\6E6J`EPk@b9b>*05q4"+;?Kf>Y] %00&Pd<,:*]LcNEgS6s[f`^;Tt$6g!WA.U64-)g_C:r[e?;n':Jdn(.Ea3j@bN,*aY6('R_:mqI@fM@C$g].A=T_+R@cGgi=QsIj %CLBup='/LfBV]Zdc8+$Vb=7RP"=- %Oca)Q!^-&7+ka+-G9M%D:Fo3G.:2cf#hFA_8/hD!CHdI1*0meeM:4j"bC+^'W/!0!F^Pb[Jb'AV*_Cj>oiPsOc95LOA#1"m#G;-c %U=BP5fTrP:$75f,2N@H,C-K"T0!&\719]iA"p)HNn?;u.(ZSIT!t^R;&AUfp"W(0,Zk\PS#6VIcQQ'[T6#B7&+o6Q$]d7S)@eJ)S %+.t_cVV7FLKBN[p!mZImWj%,hZ#F&Ghf#LE-c5da2%:Y,P %:`'BnW'GJrTua*_)Fc4lhF#*:7#1n&@#P8G:W)ROqNS(".*"c7aF%>s,Z1B^D+!;0<)\A?b&s>.=Jj0Q#R9+8#$n01YG'6?q18*T %f8^2/fJCjD'to.7We[G1]@jSQ6dGJ%AW&@8LV!f-HF8$5A@+?;VIcEtO.SDt3_2,u@3@,e8#Lu+rEIL\ae %DFcHL:;A8Hp$+X=?FEh&[/8_C=Bj@-3hT.RHd+kS4hQC,[HkC;NAI95L=#"e;&RR]3FW3DPfVB#a$M0#P7B67@9tVe"\#CAb60_' %k3cH&-%$*W$t'Pa^4k"37=,o9.j$b=iPW\nncWJjifCUmT%m*DT"s3lWq][:nTY3&p?YR5Pi[E_r;Z,spL<^'nj!'/!;AbIbr45H %coZdY+dEVf#rRt'Zhqf3g0[FS(u#nEoA*?:ZY-UpASEtWRNgu@+X;-2''t\#$AnD1rL"6IE3]W#egFDt--__:)\`1k&VfQsaV1e< %f9QAj0lSTuAS3)s@)iOqlpp7QA_dTb-P8>=JkV*CRLe^Jq^0.:mTB!4Bf(6XUZh7d\?;O]h(oiq*BSV2]h/Rl4%iW5"=<'G/c$3R %[Z*BW;Jp*@'V3$`U-jU8%M9m*_O70g7INSQi(EPLM1.iL"k[=rd%u%.n^WikS68I=f*0'M6Qg=gLR/)EB<%UkcilcDiEQcq+gr#g %LkZc#J4&7(28W0^!;"r$mfnBfRFNKE\t\ojV3WoU'7OOXaK_1?fQ?tiVW$2dE0nc$D%G6OVtfYrdu\Bj9&R"X %R@0D)\7T!c2)>E4Y*fuh'O3GJlVCbA;c;VDacKiS2.NrNBh3#al@I.G+Ui3\A53?F+D*sn7sb;Vjt;H`'c^9XH)q'ps5=,[gc=r" %[mP*Z++Ep#ObZ?Cml6Pe]ig8[p6J %4WG8ePH%sIaLIuCYbLl[d$cbnCdXp=3MJL`6^Cd:Je/\Q[k7.+7;Xc8#>DA'*$TpYB.jUI%Ol@WY8@]"G=WulNjAIV-Xc\).-'%JDjFco$5t %He;'c20q\e7U$G]$qFNWqD1;+0LIK/1EcV?F>dN"[b'i!&&_&/]iSS@K*IrDMZWb_WXtL-Wg8u#MQ4`Nkl'3*"=i;^]2"F1U+0\[ %TTibB/^&5=$_G'5"Bo.ikl(.PlHGLL%beSQDWe0)d[U:Ahp=o7f":4TS1'^El,k2ghNWN^@L5;6! %^HsQhs82c=^ZZWKpIU@uWu;f(%lK?aIn2^`&"72Jq^'K"OtIF++0NMUIr=*q_eM.L:pWH9O>Fc4?em-VA(W2a)?fb1:G>J^IR1T1 %KZTIM\s1=G*!((i'%"UWF@;j!cT+Up$n/:!Is;0&/*Uc7^D3ADNJP"L3`.;P4C=G76Si7#Lg! %4uJ.rpI"!YZ@=Q,5ZIWg;LPecKUF4CnYA7;YHh@3\O'YRcXm[KJP33W^$d$77ISh'>-m=&1#e'EBCq;E!(+l6Hd51o1dIf=YtE63 %9B"b9%dIJ`47tIE5dW_Te,-GG1&.q'Oa&i.+u0DC2@qeL %oi^r&*.;/C[qo2DM;!6a5,K1?&&!,eTX^"j]3_DEMlM=NQ`(t5MF>pd[sOOWU_ffV:qcV'KVS:&l,M&t/J'JGY!B/tl'_3ZGaRk5 %a;2O8$_]q-?I'u?jnuV-jo-+!lGFe30N+&U9:`9I^JF"l\%OcIqhocooB#s/)B9k+kH/7`[rqUc*Ih;6hq%>,Fd0.kjF9LH9:[4= %hDp@A9gK2C[g\sQ<-W_e+5T0b=#eQdf'L/dNm?!i=7b1sr,ss4?-R:h,@_bo"6NJel?B\0h1R^?GJ,HMEl3?1rnj%A\)mWCYl"WH %0$3n_Lu/O(>b:J(iLt]J)8DAohlc+NX82-t:9A"[5lJ-O^THO7lhK3qrjIhBehQgc+5d>*kN7X#4gKcLd/VkNr,ss4?-R:ho@qfc %=@\62kA'uZX>iY'Ip;I#ObYX8GW;a'*dAOI[fia-N(=Zs)#W&RrB82M#XoD^THO7lhK3qrjIhbl\OGI2hcoh%!!+, %SFrT4Nuii;c:uC9_j1C-h&+H[QF)S@>0d)g5EF**5TGO@u02E,PlRdGBpIh)87bbam[Yc.dKgm-Nh(>*-7eE72sd[TY,,KI59<".YO#PdO0kE)CD\MVSLQ<#,gdME\b5LJ^o^HKAN %&+G)9!2_tBXZ5!]%S2CB's9O<3g?u.@+XH*6r]qGZ@7\u33lRu:Z]Rk5'n;'2KIB)93k+=.NqK_3u#)b)!(_A]k %rEl&o/^)k8XlfKPk`=-N^G7SSrkcnOG&4.=a1K_?Sm4-9@1)T75#UIcdHfN]'&_f8`G?tEOC,%O)?CO:@`Q*o`Zal%@7?5."%ctk %%S-!rJQ!73[LDZ6;k+-1r>d.En*;?5iZF_;_gdAW:aH!h1E?0cR6&n?e$;$YKXNSFTXWq5(*6`i0@#2?h81<;Nt6nF.EdFVf8g$R %]&aHPs8A:u7doIe`XP)RNQ31%;RC?;&[6&4S(]D4`i!'9W6/X#^Jj@R54eW, %nJC>Nf/Z?gK'PGA^-"PCHka<4[[>1OS>D8H94VTg5D*KDh!_Sa=M\V5>Khb^D0k3_`M>DImPE>`BsZ\l1!I* %H=$'m]U]1&^6\!f9JYGn^MZ[$^p!B=Z1":;DgBa?Bd2.*EKlkg@5>bH?Qde8dCma@);r)Qagitno;q.PjkOU>ef&c8.h`mITdJU`ik((M#::e6)c%/3)pOOc?\6gb[%$_okl_Rj=i$\XNH %']+3T/`>\3o.l/$,T=t&4I`D7kUeWZcFsF"La=HhM\s)94ad/[`kS#=Mrn=TKa8=JUuS;m0Lj3jPn=8uC3jmX(lFO@Y"):n@%X'Q %'nlA4)Ee,k)9omTO^Z$Q4hCG'hJiioKYA!F_YS@:&EMpV?6t`HYQ,_0ob0:_.8L3t %"Y@Q^YDsbYnC9j?1%6"/lPJj*0j#G.#R*Q!\e'Q-rnpYecr7_8A=0pfh2;p`!@5M4)hd9=o$d,:R&`.W'WtMGC*Bem6N)`*L!rBP %&c<_K7`95J?6"!P5jTdVAI*uT2jmj*0SO8XM'J8mZ-3YSXG8m?'gja/QS/]R#5pg&N&m\n6)F&aTqd/?I&EUI5al7:i$UXiT%1&q %+#3k'2\RRLC8h2i"cl,F3)'-.*e_r'G_gm%b!C"cL,2M8WXU/7KeQ=R(#T9?8VD\(UuF\e7:tHkJ.(l?5U_$*bldNe*F^Kbe-2M$ %85;RG4(q_.7"@TPXDit^RY?rS15IQTJCb>5-GnXo35WV!q&ouqghd'b$ir&:e6p %G+J[8$As\Y#Y8JS`5s;6"s@D8JcTK%&:neN@3lcikQV2u>EJhln?O61&3EN4$0htm^'>K1)?55N@'H@+*!kQ&7LXGREL7[s"B-O, %>0pZ.Q3d*ZH*%S9L^7C>0Qo"%)5Y>mG_IFFmdYK`"<"8Y%MM&Hdm.#s1/>oAE%m)]#fD#3;*P)^=?cfjB)'HCE@*K_Ll*.#'PH@/ %!&sh+8V>Qe:/SMCWM#)D"#JJDCa/;$s%/)i(19JJ?#dX@[Y %NV1b!3.KRaO8!r7o'8BDaU0@K%^pocjItoZCt52m4?X\KpM2pUH`5P<>ZRdjG"tu@(27KV*k<:MMUb6)b;'H[s*D'0CSA.>fiMSC %p=AthhMudUe7u8hg!`eEbWg$?)S>jjaX`]iG)U3k-C/k&G`Wg*,Y92d%8sSf`Y_a8`#*+oe.n2C^tNY(@5ub@5'FFE6jWr^(kDg` %XU9*7T*u>Hnj,R'EZkAi>V:`S*Zu107W@uj5;8@#BU$BHJDuRRV&4X;\\l2/jDhU7`!?BSih>$3#K7e_<03(O33o>%fSXZZ92VDe %rc2Ki#2PF7Q7#F,Jj-G;8Z)7\L,Vlni8-DL24p&#R8ld@#1?f%P@Z#0!-j$)%ZNU1:M+GQmgd[tJ6/jj) %&+T\*>2g'cQiS+Mn<]%O6@g7O^&1-i8F&O":6ER7(.Xeb!uElj;*G/K)Aa#O&8l9+.olHS?"D#U,;ppI1oUA*D#>??KakVb?;B61g-Ik5,N7c$E %r:k8c+RZ-=F"hSP`)MQ1NYC1J]S0A]u2A@A4R,#OiQE)j2bBb'IWf\-nK$[`mi[4o94XYgtj?dYZ5>J]m)#+ %D4;uhqK0)Sl?%NRlLt7A8P;If2>>35?SE"kq>YR1id(nak:;Q.)t9IV]pk&oiP>=#V@Mh8rr?"a:Mt*Z>-Q(V!P#$$kaSp#F>*V: %]Dcjtra$V)O.JRR`8Aucf(bHc%`Q3Ef3@sHqR-pKf=1Be!h4)p5qjGXSj)N8&3263)_V,l:%s\V_&n\00F]a8J=ueWaU#Q[ji.7= %oE+Ut!IeLU.fjXr_0cCM6PH=:Ys8ctE_*C^A[nlo4]^=ClbR!9<%(E.Bm`CeKk3V-Md)Jg^Zr3p4"?8>g25Df %a\VP<[UXc\\>AoXB'*ZRic_gBf$&GtV&.\:;^HkW!5cGs^"\UVls=a1NM((`%D37# %HFrXLJU6NG_eZ\l@/W?8`0K<6PbD0.d(:&hL$uQQ]jD:?ZKqY2s(f/IJ]AgX^Yd?5L]*%r]T3qsOoL%`DG\*He6k=A%(@II_jh"C %Vsr%3Y78Yp]61OIrBY@G;262F+Tl"40)C>G%eTWnTcC^@PLg&JT_gsF40/$hUk(7Y26[*K/Y(clhFKB)m8neG)?N5[%=J?$d2ME@ %;('Z`:L*`cir:/L0NCk]lMlh201K+Zs/]3"P6Q?o&'[H^(B'"G)Kp%*uBHnIj7kj)b0(0 %r9(i"2u\Sf_/:tHr28:Y%iHX;@&]lF22V%![_!]Q"R/*m[Pr\Ml-3T8FDofb6G4n!cA$$(o%EH8"omO6iE4GG,XUS&DGFuA%Rt0BIJ+b,rP1_tdj-J7H[5rATqBaFrZN;Z+Zo"_7CtsAdE?I9d;X82 %lC4R)H?!?e$M)`C8f4GgkC,[4F4f^J$[=]6S3Un,7hA37A6NLt8-BYT9_=^dcVlEaQN9g"7-WkbOIWHaHi7Ke5&=2Vc2b]QIK\pU %TgY%YWj!!N;G\>"VYlYiRe%-aP^+L0#Omg1dC=XWVV/>Ah/\?0iBO'3Ib8R(YLG#;75^jH-oNnYP/1LUK%Wu8j(FS$;B`:?X@,II %4'S$>*-NS>U^#R<7f)iB?[I3=38;p\fj_DiM\dI>jf'k4l.+i[:Ib3#HGbSD>e+3+k-YY3`F?7ol$!CRYZ!3fiFlEp1"pO'$n"!) %..m#mKe8IHkDp3;>=7;G(\DGb[ITJ^#)h.=n-14-rrTj$!'0IB2--jfHb_%Qr*]W0hs2'f\Tt3>5:dQiUH51;%TEk.1+rbu!b+YD %I-olX6]UK5$ms[[(Mb)&M:Q?;V"^OIl?Y]Ki"4b=kAi2/0+1r)D+e#O8b(h!9RpNOXI=/3TWhN#L,MPk_d]Mtle5Z`7$Fdocd4eh %imT`)Q_MMtpmBsN0&_G)CV+hC(T:uLdF-Vm)KY%h:;)(->P?PV9*<8mGQWeBsEkB/2]`%!gM'sgTk'B!gY8?s_ejE]7.RBh] %e>X`8&Qb(k[I+-#(XSVN;%&;!^gL^h,*&%7;@N,W?7aT!mH1`L*t5Ne6^>#1d-9q8"T,FRegtIEG3?HS'bkd>b$-a5FhbTWQWE.S %8.'el.CAn:/Q+$pKLDSq*?*?d\N5CdMq)"8A,=jc)4gG<`ej#o'1ZT33:7I1b!=^I@;T4ICtll4'GY2,R]jV2cLd7\'K]g%1q,BB %VcQ7:4%m6EOlp7]Jt$cPW@d]SnhSX[[)=\\d2I;G'NSh_Bj',o.-;7C9Ja#Big4\DH0[T)c56l`!<\(uc:b?ACK6jY8hmZFb(Fi@ %oI`F?b0'/"g[aX%7X`'f@"O.0GC/YThKX8.s1fZGNI^a^g\#g"(`c+AOtpFTN+T-(Z?[<=[U+DnoasTGWK32o]cDFN>:>QmeO/#A %A"Yq(^eDGQnl$tEqS%^b6+1>X %*g@l^'ci=SE"%Wd4;8*UIV]2sqjCnt&Q\0j;%t;Ml0V6"Q)J(47P3rrfXl[g'=8P3Y;_onDM>V5%AfKg"uZW]/A@phoA).O)@H(8 %CFC^->!m!YeT)Gf\;uF$#fNVh?;qeSj43!J>\pk/oh''XDLd-;:&tdBS[r"k]YMG#k^NbnMTk`baa\0?>Ns3umQdr96sc8I6-l17m;s\Rfk@A@R3@7eJ+nce-1r+>8c/V2;2CN]E(_UuhHooc&3981]V'ouREG6?%f\OL4RS1?L_'U*[0 %_pN?[=ja.r/@*qrT:Oe#Rq@JN&#GS[FC`F:DA>56H?(WGJn8&D3%G]*s&0MbGQut6`Y*6\6[etfIMN,g"&/6F<^3j(p++iuh0QNIaKqUe4:RUJ\S5cB_CcWL-#A`S`Ba4,V/h<]`06Jhm5VJtF;g$t=B"87/2% %EiS;SU$[0$9JYX@O$k0rApbhnC %[reKFf#'.Q.cpsM=DnBnOYA8h;s?=m0Ka$k`$OlOO'F$!333=);_ol*h!sIL70VHFcN %ZGPg09^DqOa)s\86"d'I"N^gX_f)g@"IYN_A[^?38V-17uI-sk"X]2(5@nFR*P0g!iBa>tJ)pe6@M!ce#)hbSFVN,'jQFr3gZO!bZa@LUls2WH31;lDMghBj:[9&ER%6qR9-P9HTPH_i69Gk-#;o4eIY&d %1lNIK,br-Bq=]K2L&0,>_>bLLq#=DqZs.53+bq*USAfl1=K`@TgNuOP6_Y"3Fc_/,bB\IKRbs&uK"N %-?Z0Mo-?pFc[#T%?DrthPY%[FC,2)W(XW4aH&9?QbsZ?6$nt^XUOHi6qXaXC''YG/Gb6AGS:=rA!ll+j+18#%AUd.p %(+_-+m4#88H?or'h/oH*V_RhZZpPM7e,MEKXn4^O&#`h,8e8%k"2;doh9bEMkoG/kS3@2sj0o&7ooD160DN.HY8pX?fD;/tJ9Y0, %/GY+,M22G7c3ZW/EOJ3;ksa1PXU!,An#l]ni.1s&T#!r^6S#CJIR0a\rdpW)kfj4gih7Z;=1>oS@S^uJP^[eB$#A@\:2UH_ %Bk4M)Pk,*gh3OJVhOU'^/ETK%,l(P5e,jiVlFX0ag`?Z!5)7`V(+^"Nq>Iql=*ETsS!251Y;7&;Dg'6."o%74a_95/jU.:Ikt1E= %RZ%D>Xir>f(hC;%B^oPMH>-=p<<2m9t\e:h'OO"-T:[,':m7Cs4NrA(RCh73.4Jk.MDssZK`nO@. %<*V'(9uc>kDDJNh/mVVhjcHqfL1?bX0e<81gf/IPIA5/JjPi0T:/CVP.J8Q=Z/a<%*FRFdAF.V8`7+l[hISkt+)CAfqOK2I989f$ %oOUe*4Jii\__XG5/ID$MB2232-mNIu%mf)]]_Ca85%n.-bMN/n26`G0D)a$!$JW5b"b %_+W=Ab`lS6Vjoggg]=sMhFLRsb,dg4Z-MhjK(huF<,H)U!?Fdo:(n>`)u2lcX<=,Jl+)H=Yc?@o_J6pAV>MEU&N9_"''pW6Bh^YgE2]$Gh,,*?s,ft0hGXlh,SM[mMi5EI.9JjFhXFHC>C'M=^;!kJF6Qp';ZKgl+8 %>L8JWp(49UID$#MYN4:Xe]rWSZ=@8'4%IaXF.2G[5/`?3?6[pk%eclVGu./AE<8Zq7`nj %'A1Jh4)X/7LnC>Dg>PYkU/-`$@*L`*Y(sPKl+h@#TA4=^O+Bjhkmg95'V'#3+?ZRVQ!T51UoZ]H\D]WcXQ*.t4_cZO8>O %0*``[:Vf8*l:I*9FY_\-)cQ.prc$"PM'PN;k61gt28J,'^lEhiB.5:%%aFJkDmsU(R46g:c1V#iB6LZ<])ABn4N\>SY_-RX[?0[= %0r/Y@cY";Ze;?1hqP%Y8ln\\P[D%um<;e%Ib@eiVO<:OqL\]/5q1=R'N!p'X"W;e&l6c8UphRIn2T6t!kU_7A;*A-N>=P9bLD[BP %KRXte>+\\C/N3[%h#"t.fFNaCdD3GK,LOqW4jM8p1D3kacW^KqQqBf@=4'm`\ca7gl%&&!F2c>+AZjG&40W2tG\X3=$iAe"R;./9 %ZbBStSnBMigPTOA?!C*fST]k8k<]^*3_R]Ycb8r:f]:iRHTZ3m,L8X;LN%,bs0cqWTE2?k)8g9=ZW2R%N8%7T`Ps>ZpHTOGq6L7' %k1&Wij>*7Vlo8SR3:[*pI(nbt9Mma!c!?=EO:(\-:Kcr"kOToo,C8)NS7l?%F12Bo^r;'V0X.1o %Y!ed*d*kt;SQo`HL"tO5a %8ba_8<#ghn8,^LLk-epjptl]FbOIYf8b4hD8(Q0r%6/mQ&9kX<7$hGikjTr&u#F!"k8`F8:fT-3XgjsghF[`U8Ti@'i]mO7?D&j7aY;'A$Eu(0f.3=;>:iJj%`u.;]$.fE,dal %54C+:+b'!a`'f"cKU5LMX_'ji`1XG-"Mq_QR3g@B\q0Wub`4[JQ1,Mg`OB(`B[BnBAXSWY3E;1q,bn._YF%e5YDeL`.Y\/8J;(%O %Y67jfl7CC#7:sN,St_@bYp1mn)&BBu0i]u,FV^R&ECi*7Sj\U>\3$Q7,J8r+8fD:&,)eUG`Z.Q-+_WGW$osH5)(JLT_?Op@(aWbi %P"0mfeS8['L^$k-5qE8hLOA1K:<4;_WTJG'!F]PN,B4R"G,MXg %-S]G?ZP4sE*oKW::5WME_h08$n*SlTACTKj\8n/',3R*2Al1N2M@-.^P.2LYA=+2fi0Wt$ %\[d[iJE%-M:kG@HK[s^!Q1MN+JSaH94!8Deh&E2ZX4Cd\[4a+QY,]fsr,e&sL+O>sWG">GjGR`Fo[a":eMHFoN+(B&C3d`7OFb7s %m'rsf@"X=H*h+VD^"ght\'@d[$<"]L\!3mT4b,M[VbX]lBqa50"B[;<^orIh,,I[Ib;&UZc3pi %RrdI)-Jg(gj-t?MUmMMR/E122cqr@P-Gt:-eaqItVd=!/7J`b=V.B_f>:0W"P5(iOk&:cdo*Fju)of<%?(ia@a_YPg9pl1LjQ?UX %fnmaha#*9N,X+Me`.$&]@=j[Jc&?&1$I5!Y;,tSH=@l^^Fc\Ll^d8^0i3hOA3_]1H6;5O\K5aX92+#3(dBj=O2O06rrc`I\L %\0\crZ-n]Dc+^Xu25lhi%uhjubKKIJ:%/ZHQINg#X-:jjL>2ksg"07h2*^^PrbA:E&TVFHS-/aO#BIp[h[L0!U_0+A'^UXR&<&.X&0nT%;C,iB.Sn]!p?U-76 %/Y7>HKTQ\)"QK+W5(Y7C7Lt"i]:83u8BB`p?rTEB+#Kpj^!$(,=?d[O[!>*(A9`'%N/eF.Y>kC]IK9mG(B45YOoWuG4hPp':139: %iC/2Y85>J)Wfm[>Y3]hXVKYYts!LfO&1`"Jd2Y`0A&hdPRBoO%:Hr7:OdHF;+HW.jY+I<465%M@O %TdL_gs-iO3W_FE'Wsh'I#aEZAq-MCQ^?90mj/6bTRuTZr+[:0%EJ85![@g=c+E[4"HVObpYDEFV`LcE--gL1MB#j<*=D,adfdPgA1.uWHL-*LLJhV8pnjSgj6hm<28^D7V3a90p)0o'?ETVhD"@GmK4A+ %Fb0VTrA!2f:4:P[n\k/7#^KlMIbtT(_?23e6RpUC9Y=K4j(g\gH\gXfkhj:TtHQ>iN)hS2C?mlfpSdQ[s414LS`Onq^+ %\d;lE?";&D\U]iBk[EjX/;/mKL;X#bBouImefT@KjYJ-%Sn_nP/A2=W6@R_g4\J90%gsX:ObGgC,.'NG+$@;h6'JFIRdK21WG\)H %R9@2291JIfR_0l;$^plckDkT58_1XQZ.\%e>8f=;l+dtH58!gKaT.idrul;6hc7S5p\^TlJls7CJYH/cBZ6J[B.'QoJ;S0U)%[;& %S3g4(l@Y@]7r,&FD_[%#dY$6obOp:eS)_SZTe+^%RToTZak?gpF1pa#^@hXc#C4J<_EQRI47,(%UuilX;XLpCE25%/-,/(_4%mPm %7?oUEgt-`R"Y#o2R8auULrn($Y[^g[435_c1=V'AWE_MRKq"9Fi%r%LSP8nqMa0ct_c4b:=h3:7GQtIXG3CiH %$UC+#=S_f@,1p8B#d6Ij6.&6b="bDClagGQA]Nd#,27=e/E,mW2O7,j<^nnd.a]%TICPLX\^1'-Z^"/,a+S4&6d(\>@:OXJP%kmq %JNhbG;q"'Do+L2umm.9k[25fh0AR!S6gd!6*`K`_/M[htMZF=8feJl,GsqqZu'cj'^pZT3rMmKgaH(::l-M %/u^c%_6$uh/]Xo1//+b'HYJlT:Z(V8q.uhWb$-b)?sK9mP9c9>%1$I+%>2GD+i$E[GU]Y(b+uhf`FR3QFi^um$X!jVZM5FSaq:O] %bVW*!m-2Q\IFmpS6\7mtjkmUUOT`J8ot2]]d]00aa1*^*"_K7q@EMhHXf$<>3-.t:WCZEeN)*IDq8r@iZjHeEKkKXNiOrVJF@/<# %jp+cBI5TmcdSH;A@8O`@;MjH9/N-'giB`6)Jg8I"igu%*+R\`He85m4p_+Y]]C!j^S@;Q, %@BkoVY!0Lfi.FIue_c=RC_8%SPP!9?q@Z4hal;HP)jQ#)6*36]0q*t`e/PC.9ht-5q(U4bXAWg]Kko3kmu%?+T2]1,>J/>MF5UHJ"2) %JO:>d3ZulejlEA]dN/H*e=0[<^V1W.Ch`[Kc^*tl4Br(B1$_<."hd]m<;X#cb@_>7Zn2"Q+qC(iRpW",^jid5l$5,J@0738N>#^X %>)2fJfXSb"6akDJ@lihpqg]\+7^<\i[:Go=9e;W6hE@a)lfojcpiam#.5U%)g(paOgtag.pIT`]9[4ho!T3cG>5El"rVHNT>kU!p=jfYk*Nf@)+pN'=iN>hLX&:%[cJ&G8cU^c&Ucop-$p')#;f$qS5XMFQY6C*TYHU9m=$^)#M98?j^g+ZL^4S %+d\;"<2k\LDS@gOZ+TaPZHA3Z>o/qjP+B@"9mo&*B8>5qK6QpLWk:AZK(S";!*a>[0Re]?7A:eLguW4`kO(_`IGsL+kLL9TI9b*2 %AhqWci2V"bLh+5O%9Z6(^NVlO];(tbcoKhAn3%Vl`K"QA]2UQ^iAm^f)6*qIc6:95I3(GW:6"fGED.s;4V^[\]8pZ@i&Y_ %DM7CJ?@t,j+j':k6FK$1YB\@N8c,Bc+`.]bT!j1#,!:o8NFc^V2]ESe0'D.SlSj/kaLqff)(,W/Ju''4qiC[WS2mub`;`L"Ycd#g %E*7:c*WeT(@1fO*\5Z,hR/[s#a/F/`lt;g,.!9nKOSCMZ#s)liY;ddN!I,u0OY=fX+@OJSmF*j.%(Sa8;,6io08Tgop!nuZBV)YK %j6>.)AuZKkH\5c(j>U0C`?n-APPai#?[Mf7<.?o%&bH&%qeq,'nX26OS2R.Y?nWIAQ;FfSX8adL&%#f]PM:j*#!SE`n12T(\s!)bWR(aP!?^Yt=Ec;2C4)#W-V#/*"ZF,'o;:=$ %ZP+*02M%Oi$1Q&b&)YZ`E2DrS?P/tt@!"LmnA0aNV]Zu6I`&@Mn>dr2RJ=5.%lF%p%]8c1IuD%8^4ZMuA8it[#9LW!ru7@*bnN,k %^G-f4m_DIpn!lf"k@paGh`FIpQZhA=fCj*bDiVK(UbH"5&0H^>Lm\CQ>_)XQPfYVuZR)?#B?b?,s(;RPrr' %^qWFY:jA%2Dfa#jTrJ`Ahr0-/Ca5RiJ![-"e:!)N?UbtAaBb#b;\cb6;9%8g(iqhJ@c?-7%)%[P$bB!-iEHX!OPcARtTqdc%qM-3rZfR!aO__)Nup)%>2r!79D9`aH;,mie5k<`T]Cf4]-Y %5CXWBOg#M`30Gd?_2_WE(OcGrB-$RC9g3h %K*qf3#']7*A+7.o^'rl4a'nI3AoWHQfm#2Y4)/:K9RF*s3'<@YTJ]b.OD`O&J\l_;6RZ(^%,lT,BS\bh4q,iT!(b0B[m!ZD7&!pF %gi_Ti6ZRmk%-`R(CWO/VHA7r4CGt5mhap2_Z?\Bnl5Pq\!h>FI8m?Urq`C.^d'/ZZ_a?XG1UKc^JDnoUr+P:6^5Rg0[6&#GmDVAo %@sEKPU^S=UMg*'O46STp43a("pq/=#`kt3p0O<.S_qaN1)O?MPDo90S/Ju2,:Z$o?)_W*=-2M"+D:1;:2/TW;mF15gUFUEK2gTY5 %:SYZo7u[XP>O!cZi)c^j%,K\)`b8oUDG8^HQnc."q)2i^c'C*a;$e(4h9s/BI4s02ojKF[Cb?c0`lEM*D1(l+HJVR.UTrE+oSi_p %BR(RLiPsOqW*j>nFH)bZ#\<>B^$Uq=)-^=OaVq[YRN/[5PKD8tM^FC-$(6BG_IX'+l('9s)',30c*(2Ip:acj'jL[MWVSH4Ri:`+ %!E8kGmP2DB*&^_S]J5l=#/)mR-EX-/$a4sB/>cE'1H"R$WJT;1^DiYZm``W9qC#%^rb1E:*&Kc1c/JER[lI==(sJC!Aht6[PfI$M %4U'))pF^?4njWuKG@.7VVB_rso=.hhRcg:cIGX;u?AftQLkDYKqKuYX\.1D.DVihm$b9'D/?sP;_NOVR>F*.u@;;cAiXSV>ng5qA %`r37*@kn"l%)6DMjfA./Y\_=3V:@8q"'40(pgEbuQQ'^j1.JC.#52Y'c;JhV`EFBG'l32^^9Y2Lm^Vr_U!U9sr`R#t)$Sp!X6c&% %HLNncCt@F+a6"98So'$Rf5$:.7,MkGauWo\eQYCFj#qBpH^`VH[ZA>5AfHpe0&*[8lIkn&j;kIS[RAnYpQ!/;Ftu`\m.%:+hO_n\ %TC"LD(%(BgbA)NVV[)p(GuM+(dXKWY:KNJb>C&,FpbK",K;qrcNk:@Cf2;=gmMl])I->f-B:^*8CI?&q9=-u8NpfCbkd4m8>u%Tr %c/^.^fl-%Z0edee$1l76?sV7,QhBR[fjE+pcM=R=k1m.eD_?fTdWONBFjCdS)Z-](Vgn'EG@q_pVqUan72pFdf2jQbFmY/_8nW.u %H`".hc^4(U1!f^@S_N7=meU=(Ekc]8KR<2[jP7rXr5iGR[HATl-/nDk&PpQ5])R6M<#4N%V\=G*4J2(<2:((4S9b[/=23@PI]I`c %COb;;:,eg\Dl$rnnoh#fZ^7gW(;5XsC>gt7M3uWDlM9Z6Et!>'<5TkJ^A0VH68SUP$_Wr4c+sa;5Fk" %>D6Z*eMIu_`\]SBtaLi`:\&;fJ-#%4e*$B^\&'L^pIGZJI6ROa;=1ls0IUY2_c(N!fse`cM%Cl@^qs&7-[2[*^5bh"DsQju_C %3qVirI?.`"j.]oNl;uqMEI5A%hJY1@r,rrO.&Shc(P=FP`S%gMZ4odT8*s %Osu9m-!PPN+ZWfQ2^uX7GFg#B[ok1>I$pe%-;W[OQ]7SgP^!+l%R1r!l,q#\9n/rHVY"I^E.NtjHg`48.D2+j[.aB;B&#%]ZKC>f %0MBsbGM.#mlcjUFVQ&qEZe!:pXGL(4*HF2]O7.g&DWY3c6n^>BY6&P'JFoRoC8--&/^V9lUYC5$Sm@pAS\ %/"'kTZ(2]'Vn#38l!-nSmWKmR8i[kuV8p&2VXtTUCs.h@IU>j/9WiE:4meQ5SPc+jYJ9HSn^igsV)b9f^g>=[b%JMJi1;-JG\[VI6T]uH))10]\]sW6pT)J0=of(pI?2r3pD%1kbRi8-8pHt^bs4BOQ]&U[q %.).Z(eAHHfcLNZ4OcH#b;Z^j[L0`\^\(HJCt]*R];lreho4\H_rJ0G %STfZ-ENE*.->K*V2>?e)8@JX]b>W.2IXHGN=c?/2E?b-N(;!r"FdG8f4IOe*0e8TQT7S/ %%3+c+D\ZaPnM^=/-f,m6J`/b%RD$>LpG[r3U$K,O/D]N7=' %;>_JolVGi^nU-iP-3R).-M<\42js-cL+2YsMG>,)AS8TADn!'g]-B@`G`9;[BPDj#-C2bUCUsAYoAu7^*k&1k2XGiLnG2*[2s&l!b=1E)4maV+)r+dZD&TP5k@X*:P]`;\ct=QtrD]MN>6Eh)D3Ngo %BA7K*Kq6+:%Njf[-i'd(9\TY>pbUT&\Tr;0YA.+/=tEi%#^qmX#a?h'YlJio.Qif7^ZH%?kKn8tB<=StHR=gB*e\Jqk"\6fOt$-! %LL>Mh?Y"4s[$?fD0--#CNX%\3r(_ao"*aFa"PO8%*CVM0oG)5Nb(!G&[_0HLk*Q#.]'K!:E4.*\C:WRW5@UQLMD*tDW7/m&O3[L7)`q;!;3kr*;8ltc<4)SO$ThR$d,D#q6Wio"Y@mF+M1:n%1! %!aXmi,#9^be2a8089g;1ALQU$hKj9DMBtNA!Ek:Z7G;1aJ%HFTZ_-lB#h['=_KaNCXGOu8WZGQ^KnD,; %UXWsQBA%I+X1$CA;56^OV"/+k[aC/Jc_aU875JA5^'fq;[9BgbFa'_IW%$Wf6cP8`2D;+ONOkjB84'#ti)F?/hRt9%npLt[]_M), %s1N6D`r(KF2j\bpY#0\_gW^+c!kB;OP%DA-AX"+0r<;q.8&!B&5@keeW>E*7JR%mqpDr#TMoRGYnD/L8c8%BR50k<.qASs,.1ZV% %NL_n0*3I=0mD2)`IP<7JIBC5sdL(ts->G`gIjd1Cp",_iY[!qabKa5dN[2BJpJ'/=[*_q(7OU/u)79ab6DJH?J#h`dU.3OZJE+@E %MPL'X=,1(id>i'$;/ETsIJE0P2%&CGRP":rPtarD_,\ACQqt`]nr7P07`@hY]n16b)?kEWBj^3*Vn5Q%^/LNs%-^PDaCh81Dokl'+F=V$8nfg^<7cO)N:rQAn^\!E?'T[;oGUH^\AQ=V!Eh0Y*8ACm"IN=oQk;:#ZU8r"JTdesp!13gO]d_9TtUG\saBgV+-K3o5Ae(dA5]FsoVf;$YMj&8HiO-E$K_;_6_ %@i^[o(S8?'@*=SYe#C+WBfRS*"lmRib$#OO!uY3H))eW8I>oYs;_j%!34a>*OS%dPC4'V`V;--l;2W":^)b(]btmH!;u4BYGq*cl %1o50WlTk"-WbZa4.mNFQa&0gR3_S9gkSFu*LPjYlluC'.*S\Ve%uPGZK2Q=S5luAWBn&f$_0/l"t2ge;3@70j.)SASdQ#7T@LIY#c/s\_(0]CY7UbirZ7V\U0\^.9X'a$B4it?T(@O=M %-=/:0H'`fii=1#ieT0!\&1RFNZf&9:,EX!,Eu$))l^OAb:3]ClJQtkVE?He'M";EOnj%Xnf&at7+qA4"7'rj_*'Ak-+n+M['6saK %:]p1aKu3P;-S>L)=arXsA45Pk2g*_[HkLKb@W)1k)lTi( %ZBI?9h!.?GnY*DA<\(Q7C"eWEh^?VP8:KPWo"!TL5q!UR-T:\W"@?Sbo[Yq$&9(f:2EF_W2JK\Pqm-.o9Hl1.,m"B'Ti_E=_@+\jj%[o;4U %Z=qjW1]^4s"7.9obnDqu/>>YKJg5,&LK*']1>7?EISph-8'oCCBcBBVc_M3JM %':+!k8D1&M"?4&6j-h%%\=jh*Y3RCS5'X[K.Oj?;Oc2%p-,cBl^G3qZs4.).7(P5`l.dDou;5Jh*o %^*"r@7%qAJHX`3sX8X5p*P=BbMgNUD\u=idLK+2?q25(6Y"^05u]R*1N %e-E//Nj7Z=72f>"C7'0q$)X@k3-*$L3UoFp!Y9f`GeMR18ASq)R9KC:SEJ>M`i^.7+a%\*4K+"\KJ7ISfD`2bBZ8(1,T3[p/iTY!"g@cg1K5C;alBt6h %7S,0mMmdro`h2a!fL:H\AoPEL'0H6@7cuVkH1D/I;NqKBZ_F!rVogG1 %knc"u@hg1iaBa2gGa]pa1WcpRCREo*Bpmge %3uRQ\]s$#//Nufg,#9u-Fku+Z=\(`,>^eAj"GHQP5%u7M0P$nRccSmfFd0\5-FJOfS3e^MNWPrJ\0$45qu^_c]@0R,K!2B[Y^[/EjfOHlP+GlZNa@/liL!d.M#Huo %*qFtoV]i?.a->qA9SiW:/b-?kCZ:'!l8FR&CcB'tIa)l<#5=DaGq?+H,uIpBJtYRiqD?209RY,FEZ/&n`)RA]'m/CP?4rn)ge%#mF$->WNCJQut1F %NYgP)=aIbn.cGY.[[4?\e_l(SCT$0A/Yp'MIkq$"Rr(2Qj1=laK*4TF1%KnOGCQ)YdepiamWu.^$eFSAmA!"?` %kJFcL7EWoX+^?^Ud&7()T%W"IjVZ-b4j(BS13iZk6h>EYfeEX(_5]T69?0kY-T?d/1+N/_X^d0HPL"s()6_Tp(YLNbOsLDREc*Ud %qE+(aZBd3j[l[*"*_(#<$)$Y-0r-cY6&dfA6NMC0=A,[&F+)qRR9C%^lVqhCW6$L+aba)ne#Vc__P0ElZDQS(QOfRL+8L)SO\>QE %2W2RFm5sS:*Fb:^c,I?R=+Ec00!B$A`HQ&,LsbpE?4p4DWjl4SQf_5+\mXda:;r49VN5kT[rGZeB)I-"B%Efdou$8*4s(PYpF]YC.CV.q+45ee^p, %pIFY^IaMpl7_RaE3WjhlEB<7QP7?q&"_d^qV+5bRC7$a"j.^IR\!N\Yd;Rh.5qY>>>2:pThElCW+6HiHoiOKc[1sni!@5PNI<\"u %Ms-H9R0A1sFaY^c5m9r0Ap.-;2RsYuI(U!@?!D*]9rd/>jJl*FfCGCe1ghRT[U]*g=Ni#^>OS*8.j,#k>rFEn_RT7]iZEulQTa^:.n8$-prjV7))4?E&'fVb2#61FA2Ar"7<*[j>-apQ] %:+\G"J[F)]"n]#5rM0TNHMLg&$HhLck[Ch?jodnrh(5l:\%ABm, %`VHtB).`6(319H^$ULX[`:Z"Gp`qIh\[%>IWi+_7VjO8CQ*ZdoJi]8pK-621PF7"%M'*L`38thN$ckE#JQE"0Yn=&Ug:+KdEHd+q %Dcfg=qd!^U+P)mO&&4)NG>=/b3+a;FnpUUEqE2LTP^t#?FpaR"!=W5S5^j^Uab<(_VOq3n$7N\];$50DCG\4(Sh=HM<$j9nrLFY? %!,"f%o(\gWLQS^T6td(,iI!060UqUSX]25E)G6r1V2SG`<^E^#10X`XE[YM`b8l>6TcS@#YS+\@Hp+Kb&"MeZb4V:C^K487nl.Fq %0?@+rK+%:L!Jt#]3.ck1<',u*.RG4`2Cd6#YF864d:pDBWh2hVKs(G"Up+q^7_,f<'\+LG45+ZZ[6rEb-=Sp.N*mD0J-[fODQ$eF %&lsltQ#Z';'A0$K[[lh*8!)SkR?m0l#,?rH/^,O9?m2]d:n6_=_:iK=$$4$5p")e`l)DS;Yfb'25Vb-1RcEK"D,4:j^tg%69j:7jhjdm94]qlDm>oVOefRP9T0iL99f9hLka`oa->BuX/*'9g0MTqE?^(GHaK<6Lt0(K!@i/YDM$l47Cl`N %Aln)giHd]!Lcj=>4Bt`G[]*LAS<<32dVul6bC^qN(CsSMCdLS9a^,;<7Dnf]fS#-:iHk2cSR]gF*3SSuQ6.(-TGo%"c\#e*Hm"le %<'%)t@Q.(`Ts$Mj!To:Y[Y&<8ZOicJ&Z%9UVeBg/@2AM-4JlK7RK`&Wq>m$t%"N"]7-ekhX0>e=U5WZ(jD/bT=ofI$%6.klD6,$m %f%'1h*bm74e,G6b30$r"L>4Bu?K,p*k:IKp+OjNUGZ]Zun,*30E5'>k@BEUi9K@mFL,E^&P]HH%el%OY+BJlhQ!"!0dB_Pqh&Y*6 %KB79Sh]<\`b;DIpBX";1B28fD%N;F!jLR'&p_J/:H"aGUo>Z7]%@5(r\^&>_;*<*d*g?WRA=4ektIpQBajTZ&\%$p')AnKf^Rsr:H2D %0rHB?d)Mq@Gh!\c56j+ptV+Xu`>2&mM( %XSp-YnL;^TaW;SNHb/XC2CkXA_`XR!''K"08d'JDqj3dN]'aGRLm:r.@>D>7B"T%B0$q&%)e+&1N3&@9"j>Go'j7^\'s&!Ms$Kbi %`0R-g2E+%TZ`)fO+mW-*_&"9\Y=8[Gc<]3>(!I+b0d^"8@8Xk=b=l!3Jr_V%gLRp?"Y1b_DMnjfX%G8g^Y'@>g(Cfk2pr=B\pLC(\:-ffPPn0NF`:gOl:7MfEl/V^l!DK.V?3h2GhWH+1+;8opW\_U*6geFk6-OB=d>MMrSN\/h0 %(A'U0YA/B^rFBF2]8>'0P$gb^^7/5Z,l]IZ@'sC#7C^qkh+c*P.Z5mmp:Q=,Yf5dD00M`??Tp%d\V40"](g;^Z/Sp5>&)QG/`r." %Q_96i`tgIDG5VEjWX2l\SUoCE0"r>HG1/kU'_tfODt( %[3g"cD)D&.](g;^nP.EpME:kb=A_fV@b8TO@Tf/_43Y %0#!hoPjr%8/lni=$!Vd+K)>+;YU%kSb:Y#?`tfc]@P=\A,X'g(G7d<4]d*3j=C?91nd-p?@qD!8PYid1>hP)jb04+_'W%n:=6qDq %nrIbLRPDr'E8igl-js\u0hV8m(hJ]ip&,GsX;*,^1Q8Ubhe,g/2e1TUJ&uta@Rm=6lRX0LcgN'f*p]nLkMpEac@RL,[JVu#3X\LA %gWWpEA"CTLfWW1R$XGhXn_giXBONodNUFT`CV)sH^%G"Z!Y"JKf>@=!*V"8FW]]Y$M %[[k=f@@^um/T6YlrqUt6>-Q:bD_=5Nm)R"D4@=.)XKsT^TK#/Z"0AhZFOoHjY/NI%Gf<8gela4Im>"eVJL%ULn/#N(Y=EV=Jp#X` %48',fc2uGiL-&@1Yg06g],B1&=DebBg2qD;ZU3/cA$!"5+$'l+(L`j<7e=5RIKA#&=V=D%[!I"Y,hkr$P>F!Zd*r>McDgrd_*Z-J]-G&eVS=bq2q;4P,53X\Jkl"\'eZ-Ld&m+5X9 %'kS1uN-1FJ5Pb"TB>I"#Y/NG;]sLmmA%0?:$P$9Oq/oePkm[Kn_)eWe%s(+>Zf$@V^C]^Y3iDU#Yg-Ft<;AQ*=m2L'o',?_>N5f=D*sONpkP$B48CVUWL7TlR]MSFaL3rOIr*:00d65bBi6=A"W"6#Cs!"PNTMjQ*MSB5YXDoiVLKJ3ZSuZ4RF]OItDMiQPONsko`=K6!/CI\H_Pgk5mkBYDY#udq$o,E( %^br0fRRMFrrWq-"j8hlg@3Co+i0r1nc+q3O"P9`8C6lR%oa4s13iZ>m+noWZAp%(Zr11]kj-l7tJuE9UG7&-$263L@`HM[h"P9`8 %C0%iuq-mU8MBqX@*DIO&J881U2,!BO^D>G&Nb[-JDM)_*7l>pds!G6fF]:/T)Yc%i=WQ$DRN)8=Y$!mp;8#p'!aN(kj9VcC=b$6- %Y#udqI)-m!,IUm$f.i'=r[G!Q)hRsb\7RJM:?OQId2Z6GRap)g]+M2KSN-/ME'M/rX.u,5N.B8sfLL %VN$t\^<4_Rd%S\:rAPX;1&##&](3!foD7H1fm*L[SR&e\md(#Rf8ABH"!PD+cE>sIG'605qi,cBj_hH3$^#P#SR&da5dI+G+I)#G %+Pp:1DhusqQet)NKEG.W/YVbpgt>-ZDg6X0>34utn&<"_JJ.VIe3lq@gtLn-`AMBDR-H,hEg(kAcpe=t?BA=HqFRJ>&+.l;K*7Nh %rpErA!TlE%ppHoC84+MD!I"&_auk$#jdF9bG@d&2MX^M3";+\T%S6hDApqFe/S*D3-"4ubh&R;aBN7gf&Y7]t!=DuQ"fEa>a_E57 %eZ6VAS54kfAEE20=#!P6%+UuDOL7N]g+S:Hh12D[Jb#j(OF\e66IZ6rWf`!`fdFM!b\U/(b[-G%'edbAjWu`4.N\(%^FC]dQi3I% %]]1C=J\aRCJf6*];Juh<"N4G %lAsd[&ZN(h+]r_p1jV/gN7-t<2Ff*B1)t<`&!K1QlP?N/R+=b[D:nc_fQmEf/)BQb;1a"Da.nXW5XId?G*]S]Y;@-IZ86]uo]5tc %s$6F(518"u%m8?E5`kb3Y&e`\Dp%T$*bfbWia-g1T?M?f.#'!k<_mO!H7'UZN44XZ7]EmIR@p$0f2c$4>+l[)=AUEKK?Tdom`N?q %&D(SA?ol?"`+YfW5+)kX)l5J"lk-N8Xlq^<]FWos#*3l1\8I>FnY)16j7Y[bL2"GYD15c=0!F9;Zn3u^NDRg8f64)=G-3H8\oG=G %+]-A!Q\%+tN=n?50Y;+=oAD6h?(2@Wh9>%$6%X#Ik4tTTZ,/GZ:!U)a$sT0](Yk9-Au):!*-4YA6h?%Xj%$R8D[%I/W\*=Mk$@+M %Jb8q_@cnh&nm!EO#.Cu[gjYk33W/aQWh<9d0le,J?cJe,qTDsq#56"dmV*ToZ6sY\;%Ijko\IhRGM#o[3]EM@_ZrXQ9(ml(:.m-, %8_CYDh4p&ABs"Hf8i]!1pD&Wi(k!fH)H5'9=?1Yc`1gTI(um`\Q)(+!eUAQDh^8lSMFXYlcqle6CNjQjU:-5]NhOU%N6m](-"PX! %p;Ra*YCb.?8phX'Q&gR(Xo-GIVc,KIDG_CI?oRZX^!\Y8g]=Tu@4q%-nGqeY$^.4YhXLe)baOgh+H %YdW(PPtu:#4#$p3d=nb[b:)d9_;efJq"]+mhIift8:_)]5;L!X@C%5-V-q$"i^llJ3i!HQW5JhrDk5s2nBQ@VlA4ADj+c@dZV>HA %[QjqBQK\k2d(H8\n;rrJV69H^D'n>JcPf@?7MnEbV`:9Chp#0(ek7/#'8S@4`r=N7^rq5-n[3n&HZZE6M'Wu\X/[d0c=*`E(I9V^P]3T3!LO/=+W@rB$n$ZLP;\p2e %KWVCCgqi?6pCG$uT!7[fau^[&Y;2,FZ*)ho69ZlkPdo>SP,Z2Z'_='+3ZVj^YNQ_8#uC;L1+V7MqBF/ug6$/[h,p6CocqnMiIiEbr(Ia.T%h:`p!\C,RO_qTUW_Q#KpVA[liik;gASc=*!_Qt&n %2bE-U_o7)"mD-"4]@8#WgDp%>QG+Eor+2U#Aj)6)\'s4I?Jj3r>e-rNT@PR'nkI.N2MY*)q3dI[s&YJB*2%`6*9hUsR\%_:Xkd^( %ENiS1]/ZkldkhhM+a_Xkh3U]K\^2=2p!6Zked,k^UXpE"aZ$=Hr6AGtO^Gj\'J)CNbPdJD8eg0RPk],,:f=/=:sr-(9-oIE4-`P% %l;[JXgS=>3YA_qX%I9q7WW!o<)810l4)4[bh:9@UlJ?u&U8g-,_b7\MY4>Pop<]Z$-$Ds>fEWYO\1n_R_kH96Nh1`P_[69i2k8BG %VNK8A(fF%,\eS,fO3hjeN/dO[-^dcmr8$#]9=:\*)"\=BSM0c[lO11Y[,LC>%mL#YhjH9+J%##!Qf!mC]fucGMr.Na.SY,+7t*mB %fU$rZka.bthJMrpjZ[[3;t:?AG0teO"0=Hq1CVBc4m8ZG:mJPl'^!:",p`[Ie+\l1Vdohj+%M4m#IP4;N4Mt4<3MMepU'L %1-\l.X>*19I"nPpDECQ=o!tsOFj8CP[gI)`f0(?m^bmHGT1-@NCB1QakDdJ;r27#;Q$\QP#oJcP]lnp_M_%s+M)F8@bZDkX$+3bl %#^),D,afa0VSou.pm+6EL]3(T_ZTkS)da59huYD6+&m[1CPVn[c]=Qji+kUX]lor8.Ve:[C\5MQe8#I0IMeDrci;k@S7@Ibot+C& %?=]3RpqN;?XBR.:\>6$bZhiM:W8uQq3q8R/2//`0HLL3%2cA\Ui14W#bf,.m?hp,)kaW;[$#qoboOh0PpnY]Gr6b`fmd^;=$ah)e>?@USqC=lmp&S^h#]k==) %kFq]U"q(?WaSuZA^WH9*;gYhF^HdNs3[N6NK-lp/P_:t$>t]e:`@]Ub>SHSsEpr*SA"Pqj@>^2G8GEj=Q$me(^O(.E& %C$,iRT,W$7KO91Q`btX1Kq])1Y+2*Y`V.?U+&(P9Df"'L)">[XNF(rS,%&"+rG<TdM`W$*gbi8r#XF1&fqb8G40p>*h]RAsXnJ+jMoDZ[n]"Ofa %FmA8]0(%tckkkJ*P5+noO=Y"5eT2aU\/!c,O<*5o3b,?5"#o>VM5afD+ocO\EcOUlo.^1+WlKra$XNbg7ueQ5^0pdl.uB5<,&(m@ %j7MlElQ7jIGJ;9#UjLr?GhVrcdL0WdM4^W"T6B+S=/GfBUi_RFpiHW$%VOQP!=_X%bTHVB$]T=2Hn#5RG,f#ZPI=1SgfYX1P<^jp[sHHa2qMM)l:u!2E@LF,3"hVTaWZ!uqB7=7eEh?cJSW;i %WT*aZ0eda>aUQtlL0LRslWq4I*tf`KfVp_^VB,P]S_i5Wo'TbErYc-giEMM.W!&)?^h-("'Zo^I*7V/$'qoG*aZMCo\Bq0G0B+kl8m %\R"-!^u%NDQub*?'!Fin1^eRt%aj##asNaKM!\r%Lg4'aiuT+jDY*Q.L?(Ba**uO8+Bh?[S:^,5qr4++H_T'Ml-:Y:V5=GAkq$n$ %C2h(U\Sq'X.^bpGkF.%AQ_"0/l(mNo9kHbVHVQ'W!'#3W$s#@XGmD10(ZAG[X8F=8Mo@(0^u94W/]\mq!:ps(cKS %O6%`Y'2F$Q$JjFd8+O6UE.Egp^;gOE^QL&EDM!N:Tr&Wq'T'"l!8k]VUk.UF\RS$C^NU."BM8MNIgrYjk0_,44pMk?3EUX1EH\up %T9s:#=0'-,Yq+lK+3r7_$/IB2MMLkb%Nee7gYG\lo@JRQ,g0Z5&F+kcf6Z?l?G5n&J=tYQJprcqo+O&CATDr2gD?d\Jm$J$Ffg4= %$he5GophH%GfT>1=iDW %`Y'?!7Tf)]j(B;)m0q/qEd?U#2_XjXEr"YnWW>Srgtt0iXes/XDL+U[eU%YM[Pp*[ND,jN7W<%)FOKLF1(B-hmd+<$&u8bu?=P9C %b%b42fde>VX7-gK"plhV(6O=K\qO\*%/eP2c1p(u!Xrm5=JV`%`?W5V6H&rI#ZtW2B79T<7)A5\\dl[3(mSC`On7a[TpibqqJ&VW %UN"Q8[Z(rB?B`&!XuJnqf>.#QP'@-iZUuA6)LoaZ=%2;Of(DFl-iB+H1W:+tAdK^t]('BCJB:R89A&33M#'=5/PUP-c\#co:COrQQoPhl:'U98h %2fabFC"LrI)BH^"d)C;%hH?P1Cl."X+chqVUGTn8q((-.Sjr@S%_-UFH-ct[M>X]VN8^Mp1#m\@p\/ZWN=ho0+Dq#KV"*Dr/8#9? %0U+n139)8HE`X>o%Hb!1XD+&-5EA'ZkK&_U=+0DVKLN %nEO'V'hO4\-f65I&aTXO`U,e2jnKcuI(o9ZL.5'm58k]B_29,W6r.gR&:=QHP\Xf[/o6Qp`JHd"7fZg_\J9)`iOl?SK)6)AIIo-% %jo.V)^O_tkI\rh3]@Re1NDB:7_;!G[rP#Z].f.hWpK'CR!*b#'8(gj:1V+ag9(sO#`HSbnUp0A %6$A[@$tpJfMDb$5!_RsPp9WQVJ3M1S,-WTuVMT0!!!)\Q'7kc=!:uM67%fAh9`Rj7T7XtlG1+s&=F`9i?G_X'[`e*%>?iEc9AE:pE^.h_rQ)*$VI@a($2k\qI`f9&jLK+piWf#1h#Wql[WK1>lqZ"Tmk&9(*D %5_ptqfDU-e89G%_VQMX#A,s6F"sN^)0f:O-,/OJ)BkSsbENZ/! %eAos70h-CC$5f%RW,D!n@sR7uG4EJ&I^YV-QVB)IcV"ju+jF'i\[_5K.pL;E2(0_.)r74fI;!Qi?\+O=T/8/!'9o6sh(oP:1)V[S %_1uNa^`>mF'a"mmFr#qe/J%_8b]sW(gmN2o6ql_$j%4hmWc/)O".o0._3dmn`DcVC:C0EFc\#2O_hcob1.(L]9IFQqk8G6#4msk2 %/CqG*c;'2'o@2u(+iG9:VD[n]-%Z`_H%lpa:^Y'5b9"V*rg4UW=rU^YtgJ>r8 %6)Ihlh,p;s<6l-3)iXG-9f:#8efUL0<3K'I+LX@/Af+J8*G@Wan^BBp/]KX">Y4?H3A-pICWk25H+S\h1;0A_5IX)<.5*1Xm5*l\ %8G.s068W1k^NZ"*%E0"m,$@$ho1J(Pb/rp/YCs/l:0,bfS^4oE_g.4eMDjsgH4`4&nG!8Q\J([bX_dWgKNKIO7^!.B%aZmW&7UV- %Et$14;+-N96841U'R)Og9_EnLb&`*u_46[gcKhH0SrfS>D1b]Ki?)5;,M5(?b72YO9g4b1D916.!*Jk[/XjR>N %7[n!h/8Ype8P,"j,YtP[9m`jL;:(Y13#HiK'Xae[N;&8H%m? %*PZaU/to^QbAUZ?/m)Z7r76S62"el7jgU8*['O-'jA6LM('4)MhM!G.l[fN`(&c_&H'2=W.f$1S14V<4P2C#CGd5XP"LkZAW(ai1 %>-*q0Y)u#F=+q3$AD#?/F=JI5XX9u4Lc$s/Lq?"u\LJ!P;%%CUA)X;/G4;(g8'3FY5=- %7L"i5KNKJ:]]]60Lk/8b_qb$4&HeLrojWs@P-K28qMmI'F`4X)g/b[U<0sbEVt`rP>i/Dh5+@OLQRjSsXZ*,Zd9si7R%O/T4Ep'A %+L:f4"1=ZNZW>t,.jir]:r@Rd=m/8W`h?@pCl\pV=SIVRh*PO_Cd@N.'so/r5!l;e*D]%%a1R?u;[rVr%-HU %VAP6"I!\JG6_b--?nJ`L5"7_>?;s;eiO]fX(gL9i#[J\peW'W/j[1"A7K/5?J"H.7k+h2X1pS(01[KF %'-n2TXWX=Q9W00hlXka]b@q-:KpeTNQ1l\'K22TM,j_VH%8etmJ%OVjrt]O0SW??1+K)GFdKd&i#fB@UlXo.>K2k&>>Bn!\BF,mL %@6^jC9O)VB.catleWJ+2W,>n-4OQpE1Et>*-Pg;\ULH?Z=C09P[pIt:0o[R/XbS!$$?@6q"P\UR %+Ku'THu/-")B!KHS-jpO,6Pqp.M1U3N1qeTR$,:Mjdc:i-NW)C8BB^m %FVD"u'f4iaaNH2_4e(,IHm4jXYm?QA?kiO;.YArZ@^CX3;gXKcL<^ReD7.t7-\G,M2(lBQ_"A5Lo %R#Zlg+EMkT("aNN0.K3n1eSQF.fJQ?aTIO2)2]Z`"IthtJE/RDU!]nB8DYaJB*T\8bQK/F?8?I9hYDbWU(@+Un\i:HVQ,0\'qk>h_p:Tt%btLg3eL/?M%@U&=Po(C&"udPjJR:0d"eOYEhJ-'["S:FDJapZe %cp-%XHbk1Z6iZ4-,Y,cdXF[d0j! %AXj7u'L"#,Uic%'PGN,K08VDFE#S4P6EH;X1$)*RFtSb\4\Wm\(0MAGa+=_qqe78uB^@BHd-[3MUM@C$@/hV[b;boE(mQ5Rk&4!) %,q_41UNA$i?SAk4%q;Q2u2EQQ&b#phc_HkkA9:G.c^KAoA!O9'cFmc43.d\'V43o_,[o?b=H! %EuhO;)SO;hFk^W_=1D]UHI\;Iom)L7Y2#$$\C.do_JB-uO%W@(, %D5lrRZh[90[5-b=jlO.8P@i'K;e1n"Q$s-32AqAsbli8-WaRq(AjV1XmCVIK]gOD>Hq_5KMbr[.K/Dn_fO61g1_]Ge',@#&c8W.F %YF-N%?Nj+nim!j7p06ug`gi:k`#ID^keIPZ1r/Fi)Y*6g_9NIkF&e^>P+\=c'+R8qAiT>W*MufgZ')&UtG0/sKh54G6f]K1<$O+cao'V^Itl?-XEY0LG=\7(42JN4`m/&[A-qX*F?(\i$*OQ:_m_fAggu8,5jLgn'_)L`DH=OD#U+D.W"_pFr01 %qNj7HfB80o1K&#R_5]UqlU6"qQu!sK\:``[O'N9pUSer(-"S3lY!k'(T%dEg]&6sr_neC<[57q95\2\'A-LiZL4KkE[>P:e[iR)k %N;5ml4g'UV/-8NS`K=a6oU*37HAS$iGu8cRmgaV'G6/^"12[9MXhY4:,Pa\Wsk-EpsUlA/bhWhMT:7C<`@?mZeZLXES$0pXaT %!X]@T"\#'sMSKEI?kf#Ta-%TXJn3f))i>#\i+seC>^R4*dHrr=UcWbE9O)VBJ!u!)S:-kPd;=5tg2/1tpdN.6]i/1.as24nQ^;/Thd#[P^t8mGs?lluX--Y#W;lI$3[VMrt-#Q%R^=>SD3AL*ekEJ&\:GhQ2'8CRoPE3OhN %K=05])(\LX(nmCm0dRck8"u5YSGimU=>r.1d6*\fRh,gIZlF`fFGqqM3^K&F=^:"S_=H1eNH78cA8f8\T-7M6s%lu@m&,WII`11_ %8g3(@qdhE%m&;sH>X('$J/_]$1?OrecA6b]%Qj"s %Cmqg%n']1-rBh*]_,7-Ceo5!g0kU;*ap9#;Ag%\O=Tj42MZCeP]BKSRPdQ,sld%h(f1^,URBU"sCAO4j9Saih2>t*,f6?rF+l(A9 %+T4A#Yu9C>9@b$W]_94k"NYK0Nm^&=s)KL=611]RkEP>ogA]!UMEA@B9KbC.;6R*d*EaN-1b>_I\DOmE8b*'Q'aJFbSO=fWWB!Lb %6iW'JmLnJh+4*.G'nmc*"S;-%Mcc8&cT!Xm\h?Y:iM1E',+k_B:X1HeR$WD.k([>?W9/0(4ZogJFV>p,cj&GU5:`a'5W[>pr%qlPdKJK@b7Dr'&#A-!]"`FrI]RtaaKiWDBDJ^;iP55s_, %L,,-la1XU02KR'SN(kAI1$^]S1?`8+5S(.9f[1B60F6`!$, %@63YG4H.rWMG]f:Hg7p"rNGt.-]/[?hm"H+FK5f9Oi:*O46Gu6GiFD/U:64"-rUj[o@Z%5kP$*[>O&)Hr<,.*?T$O9[\ %1hmP6-]2V-(NiAiBO=^Zc;#)&UAD<]@-uBF%ZKoX,bbuIcq1nuIEEVm92=`MS?lZh\%9[_-$i80[d"MXnfcY^F*b%p\5a10dV'H]k1-"=*GCHF6hbP/.^rEA0R>aWUg>"Y %\`@=G(bP(7A)""L,&0tf^[RJ`?Jf*1(t1mh9^&:1#Q*[*Ct/]0:_TdFf&^Ab?`]'Q3\qQ_pa+<]Z=e)[FF?U"YKb03Bf8Qt>a:AoW)oP!!=V@($khg`kG,0D8Bo#2s>1s064@LaFEc6T]GoS2k?KK!gKR896eK#&d %*2dM"9U-@]\=s\/.oa^m>rm^rP7d.UHq*unVck\m-ZU"\f*`2Y"\r*B]b#1RjB8$dRVGF-IT/^OIL%Y]UTom1GI/"+M,F#dKDf9j %('l(6#M[AIa_8dd-b\4NSZ$\$CLgO`rDU$Z.eB#g*RtL<8nY3GiC'4=#pD=d\lV`YrVfMg),i`9#[a1A`In,9&(V)#i]n&Xe3g]< %+V?g!Ef;_FV(Od\5L%$5=G'$Y@mmG+Zpm6.YYa^RrT'mukr=e8#W3"?`,Uqf*N-9i_2]%&?2';&uBXeorWap5cUHO=GX$7LFLSo]\Dl=Vb!sJ1%IAVLLL$u)6j]YBio7fRV$Dp3#Wqpc=r[cY;%&=/aM,4n18c!&Po!u&2r`S+YJDET %KX*/agZSb\O3m9Y(^)EKMU8J/-*gQ-?,hr)2c4R4Ok"2=3E9AqYh'fl_;.BmS-6c]]AtVs^&E-3.-fm]Gn6SDeK&KuaFN)BWfFMM %39!$VEIrDf9*d=CEY<*3Z:?se+2BG7'O].2Xm8N)NW!=dNj^5, %)J!3`fV(t?OjcF%jkp,C0cusBG7n`!iekT;>lg6!nL7lCCF=90#$=7\-*6`O6sc1/W/BW2R2,%&K+t1DdKm'fBY/.ME_br>\g-UM %grH>PBZm/shi=!='h;IDL)ra3P9/R.hFG&gX9bLf13N#nC18MHHBm6bM71H]3i]Vg'/MB70$ZB/dR&*:\=t,#jM4HV_+YOm8Xp#I %)QSMT=I9D(?dp'4H$4JdDC.o_kJYc6ks@:%JDe3m"U5)T'k8-ts,rdPS(FQ9,$'^T%L_W*/m$=#s&P:6D_OY[oOC&neE)5")popM %pO1^5AILC?fUo8+bG6p_dFV/K#o`d1+O572p;S5D:*l9od4]Ni.Z33?_a1qr)0f/P,f9G3a4,3op<:!.kEn6RqOffm*Y2j;Sl2XB %@)=?Li;d`lo`n5`C4J`Rf1@1!IrmR,kkUP0AX>)84q9U=;p&XCeg-66t%?;YN'GDi?T!OM0T,%e^M!GRou);Q]rQ %C,KjT6^kUh;'8raKjBXGS-a;R>Q/oU]$U1\lW/nOe\!Lq;1"+Ld>mX/h7DMrc]>OdZlP+)pR]3#L78d_aTQ+6C#^#Bje(QbSJJ;a %-L&IY-]J5>F:91t3/+fgnK:T\`N!V$2" %ECEu^3D\XMn6j;]jJ?AMY<.I[]9luRkllfAiiP,*bDo$,SJ\JGp"$'^t@t<3+>$7hKFmo!#d1 %>sRa""h`f\[Z8N,mo?Dg9uR#U05=OgYuLtg+HhVGC,KcDQIEVSdHr/b0@af['!X)*gA6pHYemI6HPk^79YfQ<1rEDnktAG\&$+7! %9LNT!D3U3=>eY?#Af%$1AF#RsocI58NB#irU='2o68u*>I7uf#9`\JZ!rj(:eVCL0C%A"J9].gm_dUW)<6Em4%2(GE.MH_m<(>5H %09a3OH4kJ]',NBXUPq40UD]2BajTPjRo,Vt>1>+QC`Cgd3,J-W[NRUbFb(QJm,lqP05@p)eLcTfHL"l@W@iV<0F]b*@N(q\n_DqM)SO;/%d#n.jcl,=`/gH0 %rRuDQOtC+rq=iq^8RrFH3VQ_$b:]949bIq*."6m7[au])X"Y,uhjobeM!u5HAK0Z:DIYLYjsNqEPuN?\).31_Sq)SP5=L!e$135W %NA3rCdieY99.+lN&U_t*/)(n@fT3*DY[d\k`^6/+oc7N^f5*`8@4@?F]6JSSl$p%!Z$CA6d&*EY>rMZNY'd#(5&hsnogKj,mQj3[ %9f`)/(JcE)0#cXgS'8f^TD5*kCtrS8e&GM-Ya`VMP8hg%'OZS(J#4q'`(\7^4r)*LCr!reebr6"^C'L!;E#.Q'&t07T9R"Zrg*cU %h`Br+Vot)D-2!*:$DQgh,Wns8#@A7q\6_9mb1NYVOd %"*`sRg@hRYrqk0O[PhE$YNV:\lSCG)C\1+-br7K`SGaAF<3)RuALk:Gj*kJa6H8\t#_AOmj!mE(p[hLY1W;1>67Rj5>(*+U"fB+J %r/C+[&m4QcRSo5V>!mM4<3dhlXI9^QIsS0G.p3O2fcE5ZXF;qaiI3orGH86DrRQVBnijL/R76VCZO"dB:.in#Qp6T+a<3Tt.g#`] %4dT:SIlrX^*M[MBIM!(n-K.Z?'G*hPSlKud-bTb\Q-JULuOXgKZW49Ci)03Ii %`8[R*ELB8bVm?X[<&u1VkbQh%`D$stE18"/1'l-ILtO*+Vf&XJ$'>R)>tDh;T9h;*.S9mh?ZLSXcLio(>n$kI6p*rJPBeecp^sA8 %9'.b:^;%tdI=+r"oqNd`IL>o8G)>=[FR+cJBT;@)f6<6[+%(dXE/`JN9Ag-Z$D&Fp+h4EChp:sI\G-%$mO'f#Ic;#?\e+"#?<1;Y %aqog*+e+bA.X)$F+!:m>(bOkV[8 %nOPHeH;)j90#GkLOtD0"[b*hu*]O]&"Ka %Lb=Tg,NB)i>spfZJGjVk]nX.tQ4[KVCQ2Z6N;0[KEicqY>Icu&UY@4Z`u6LPM7.@)YpFj81#:JV\&ht"G$gf!pqg@\;Q3D\>e.M; %a'R)8%'<\!emO"bpEHofatgi#7A)De*dsHRouGOgJ.T6Q3Y_^Q8761\qi!S1YlLq)ha^lN[QiEN]g<:n`fo8[%[:N"a9jC7($8]gd+T>*t=UntO,@ %;U+!+[iN!@3_]HP`p=R2(nhVfSnAH\8u5^YNeNlD\-nQU*NSb*(8_2Y"N),r8[/)]:mgFK@"[TC%F_T??LV?&_fRHR"MDpg0cc6Y %,I<-@6uW!1']rsJXIA`gOV$pHD@GZ=*pfNCK5IO]dQn_ob?YJj=BhH:J16trrFS>U5$#O:*(mi&m^K=$FQ!H26!6!ApM %BT^W3&U1GlA%'-F?op=I8K.N:#-cF_aSi,N^.M$RG]5g6rnN1Z,5M0PjI3#_i'+n\)g1$0/#+hR!c7obLB8;2V/Of9mWlT"a8fg:^P@cdVr-7 %S2FD28]DUD;ATjE/J#9fTT]!,Jd1:S=1#*X+^L*GL4?-X8-kf)om3nC/+[0!l06n[5P_tf^U8?kDAm%?&>Ipu8dKKh)7gj;S\CI! %Ve<&q&RWK.7no[;3&$t9'NJD^Q"[[iqN7.q>n]+%Xt(+aQ>/&K4dST(b"WLs9]ES/C"9aI#2No2&=*Oiol>5G&0r[ZgOS#]FbNp7A/3CA!)tF,R+LY_/$gcp^Z:#9a3GQ:L6g]2J+^ZL(_ID849j %$(Q\-%2Q=7QO^Vln$"U3I@;lO).PJRBJ:%6H.;t+Y*P+(VKqF140HKH#+Ud-(UC9^GmJDX&TLJ^gH_UU*KE!ja_]_oeS?"n+s(Res[q'1\GKYTH[%uo],=KoCWi!`A)/tb1$A3WU-LG9F:PHWt8+1nIjqXa!LAteeNK=)k%/B"+P&Tdqo`Z8=21mfY4"E)W!*Kipmi\UIWaXVlR:T_ %`*Z8?s5:_n]3a^RXS!1j?gb6sDnV55DT,6O6dcW&b=Xf6JTiZ5ru5/trrE40IdFH3lT9QmlB]Z4M]6<6a$D,B1mjpe^<>7A*E]CU %687d^V'6Gcl[iIriAe_(B",sN-B!k_4@'M[N %8-@OHqK5g$_BnVeEor#?2aWI+f*g'9GXkR;L%ug'XTpL,DZj8@1AW]clcfZ#X[XhI)6#iFMLrhUjlORn%tqnQq=>K3Ngq7id2;oL %_l2."Kc(L<(1f4[ge/Ok5C@!ara3lSeZ8.9ptouJZL@I)pV"#hG#4$d$uThS:5s6='gW8P_e"GfhbMOpD0O\nQ&1PI\p8F.7h7H` %`jcXe'+0_*ARdifrK@ma$="YcnXYt";IH0&s5gIBa:f)?75bRjo7NPe;NNO-mn@ZPP;#nms.E>_QnUR5>8H$I=V>i9f9/=mJ_'$b %/g6E'-Tr]P*P-hI5C;"g$.V]fLLUUJ,F<'!SC8ud.2Mf1W9`,)V$lenCC'a"ZMNJ:'E*\rZ(j%eC6G.:WGfZ*$mq)J), %ctct8V.\jbHU_tTDFfEtZ8hXDTQiB7lDEB&[SFn24SMSn`e)ZBBl_F2$CSlql-@FRb`aqZAU:;FuL %\u5+g:AM'LPNq0E]>Q"*cWmIH[]&XJ55K)E8V6ir,&&XCWK&i60RSRK %T><]f^Sd(iEn@QuaO]Us=G>@/E'Rb:Bp36j9j7bXFRVTA'as(dr-Z44kf8FAJAE-VH/>nhZ0%p^OYGk=E/[]-djpT>O`PP&8+%Yq %HKB=qAA:bu\A&5kd;&2n4cc$"9Iu9d^PgY9.lA<$1A@iqSR0('U$^%Iq=g")#c0&nr)aeWq7&Qh.PZ("g^?/g3+PKj#FkBbnc$/@ %.ATl9PCN!:DCeqH9kQ52NOMHTD@tLW'J#"jn&h$qO6kk3GJ1!SB&B(YRIno3OR;Kt*4d1!Hf)2If_q[GU^DC,LPGqt!!WCA/%0:< %q`jgb7^m?ODJ3q"8j^#b@Z5LU$!mJRPCMY2Y=DWX*+A][_*ABHdnH/]Br/f3862a57JYEjCT[(1+64:0!PHVRUJ3re*"L<9o?dDXnR)*JgY'o&>=1uUIKL[fCdBQ)eT0dD`%SP`If0uP %=W<7c(8V\Uh81+4^74mBrhStQGY5hD86[[t]^)/G^culSG<>Z8L"e[:noZ_^iq79=#gi(?Gp7?;dLS\=-YMBF?ai0IhCccuIc_HB %+'=ue:E+C[l"]`;EjEmdJ=eXfI[IU]]@q"=b,Gk7O..i$fbAl2SFPF`,=Qf>;OCTL&oM;Ai1]Yha28u*A02jB[f)nS]K*=YSA@LKbpds398>otB+a:O?M/6U,J#L;r[4[ %BF-loDS^cL2&OV59YNCZ=inpZRiHYh_3[1c&cbPkI%i %[&#oh@9D6gE#nlP]3\gD4o[cpRX"gs0.V$/qk'?5^#J[YWTF;faIDN,;L^5\s*I\"I89at(@)&4Lg8B7]mfODfKD\qRJW>:.X(S4 %q\!K8LW@UsVKuBal@QT\Od.X9hXj5c;_>=T,lj(H2Ps)1BRcQ3d9)ZB5<+.n%k?WJZJ`>t;1^6gKU[IAkjWQOku.9^khGHk#KU/nB:WE&'TjTlGpU/bPi %XXk'7NUb3`:(]J&<+FK_JR5Itej\L>XZE6VI_C&XK!5qacUOd(e/Ypa9XVo?UE/'k %V^C&)[u759^)NL*nSPXuWO/`cs09RAC[qDae%()p'\or/g.9W;',AqZB7Bk!8Xgd7< %9XVl3n>GZ5U[0p/IkNsZ9pmpaJn*>8sl=U3Lfk\,qRam_Q'>]f\$NXH;I>Z>*]L_&,SWB#2$2('XA22gYr.h9D9e\*]!C[9KKO@u2AV9LW!=NIjBaAlH'0ReqM\/Lm %CKb-/>AsOh0Bk$/H2f:M&RS[Kj_loH]h.QL2@M1&kF"p.%5.N>P3_2X!^#"iKp$FGa@^`0r!*nd+s)DGN"Ju$TdNoNMm@tKL'RPm %JgfUjYCMgrLp4Gg7TPsYl^?(=#hUL$.e#A$'*;BcJn,/(%Jl9h=YmoJ^!m':rPc--.Kb`FT,)g'_DX2:%7YPHu)":+$u-Z,8`W)SU9,)cn1:C8FD?\dR0R5C]<1aU.G0=IU>G$MX`(,o<"o' %%KqIWW"B;Y^OeMLE:%i]+a&:C3X29-4[LE3ot.:mg+WkZA^RT*3n5+V7n1tc;7B9ir[:1\d5'=h+:OdF:&%s9,*nl7X(7Y %5=S!!UG>q4o]olOD.9.GH00K,c1+dm=L'OZUH&a1Z@(J5Jmka4-8^#MRlEZ>HMO-0_MFbum:\e6cZQ\f.&/g,+EF,EYniN@gH\Z4 %A/u&T'0"&!Ou+>p.VW`G8ZJ8PWj=Kq;dB.=>:#pa!XN!YMC$&BA/r!drP`=u@=O6%o=f=\3#D7ZStV\JZS&\fjQ$._nj-j`6FPbP %n*tQMlLk,+9.hmHKa7%ms2;7Y7>b'eiD%d9_-KE]?MBI).b^u %g,/9(M>V+XSDX,s?:M`Ts$0\Ik:oWeE:-]0(&R+YL,k:>cPH`a2i,/,=aO2/?@LTW]^)7A[`Y<0)9f$=62/!qlTomB^$mB/'h72[ %#(uilYG0&/11D$;nt*3WAOk^Be&\D'F7 %*L2)GJ7?%Cet>YMJ4HN\VblH33"%$%-fPY=>HXFTDdLTi+7u-ThaG6K/!%2X9:usO/'Ai*jnRp;Wn)rO3^Hhl.fE4SLohf#M\pMW %6l$qfafu!F[<*("5Hl:2Y9<_.aK(,I)r;%d7aDO!+I*NZl4:W*bE&rgBA=RnU34BmVLVoDGaX/BiXTq)bQ.b;MJ7r`MnV:ej%&P. %q@dUe]8mpH8Un_V9d`X`4U";QopaWW@Sb''pY_fLX)]lP?B3&I%>r23""?,mB+]`9P/)>`3f&Mr657`FfQo5UNs0pSq8(.UR58/t %:F1-=^(rK:kR^s^_$c,m&bHTV9n[rjVDCZHW^a-,r'EFe":s^jMSSKY-ALg:/Ld]0Cl/p4m[HW1HdE"NDa$L\r&nK48]aDZc`&'t %/nSC^j^,XO8Gi7@DUn@h+tllXfI9+$gc][CcH=l'L6eKslSf_^4s*PP5nP7A+T5e8B_$EUP^o&+W %eu3NNcTGaak(BOTcM0mg+^MOUc(e=U*1mMS:IB-)@tbV'r#,I6F4ZgWqE#c)(29Md)lk"[7] %,7XU]c90&O0mf?;IAWSUEHEs*iN/,B/Y=[erC!GgE?a\f>A["B6`>k6PoZ*WRL,DE)DrAakfcI&\KH.ac('b*Ts?<:S)p&4u5R<8Ji@4\PI"UE7<*Sg%3jTAM[_%s&L(T" %4o#FWj[\(JEr@bJ/r;=_km8.<5l8(\JE33BKEnsmLo.LH:' %!EqUc")gnN#6;:0Fbs0Ai[XF'+%j%13jF=CrHHOATtL`AJj/\Vj!0'htg"pO!`+oQjk_Q]Yn`M(R79]fhI$]s:bgunDH %erjdnINjKE3PPk7ANtk8'#rk1d8RjOjV&])Dr+h"%!pWL]pN(EJ"*8%j8EpB0^BKZp8%NepUHlCKlF]tc@>\nI2)(]*r4X!k:]aSNA(i2.9@+I<'XU:JBe%[Brj^:WF#hdZScWIa`>>[0i8_k!u'ttH( %Kp@eL@\^rofOtj7btdW@fP((H\&Lmqa9X/EWtHA"paqEF#WVYHZ-g.qk^PkhWtlX+]\dESVFk[3LlBF3l@3:gA%7WX)&mE7(qdte %dHK,=N>@Wg7,k5c7Z5=nmClc/dGi71o.F!uN>@WgDDG*?2HiLj.rJC1q#QYLaI@f)i=ZBR/d@WW]Re'1:M7@9S@$DdtNLuaQ%_USYV%>/^dFT&M %7^`UBXTW)E5`A3,j(8i,3@O[\&jCTIp@K/>q/i,9QQtQfB;o+GO)6kA9%ibIdun\+:4EqW2(_o+[NuEuikO(Q@>CEQRalCaIgJ4Vq_J^IY^(4u@Z3p?hqdc@3tIJ( %6Pb9W0O>rkA@W7%_Elf4cmqm9b70AT\a/[k>eUer2ENlf%`;2eFgd]LVA(fom6#5uK>1.:]LV+!]#G?]5aEAggES[PL'stVf*s./ %jt,8>Y*a]sJ&lEE[e3oj93kKJYre`F)(RV<@GW&Ij;GaToU\AA,RMZQ*g"+sis)S2Y"?!1_cW-1+B!.WLuDZD_3i9+.kTg>i]P25WDdChsQp2LL&:7(B]&45LQ5oSU]@HA4^.9>iC\uK'/_`*G]6XT$Rl->*&ToHr4jG:O!^:)Qt7ZJ#f\^A3Yf %gLp0jI[Wh_G7%"!m;jY(lAag7MnDP5?%FeW>M0X&0u%ZI%kb#T*oGqS=j6&^\aNS*0l<<\cU9Z3S3>`f$G,p?@BS:b:=.KOZ/,>* %?TAcla15s8lr#9N>+h@A%MX%Pk9`_j9KAA6dd&anlt,/la`A# %he/"%qV]eVgku$!Xk^@4qs2Ut*a>!oo!`>jCZ4-k#UMQ),rKESKN>gY,O%Oq@+.ms;_jX/(\A5XZrg?c]M[s:>]D6l)/lMl6i:ue %Rdm84Yss4Rc$3FB*kJ\j4W"SYV$'gJam&rtb`W4#a1gueeu[f@=DYM"r)2OK&Y$;5)EiR+*5Y)(4'kiXN(7Z8A],oEc>Xo&&!V`')8oY1pE:W3+P3d["9XlWbm %r!G3a7u)E%M+!:6)]q!!9QiC*d6Pi]Eq*r-6M2.07&),9;rZ3[ackK)Z9^PikW36np>+C=%WSB]UbO_GAbFD,VYlUlF1/QJ.[A3L %F5f<"Nlm`XoP.:lSWkX8alq;b0%oZ2/7]i!`dSP40le3W!rBsOr,<<^8;".')JHs'c,nHsTem6"8msA3br"kCKZ3OBT?9lNit!=d %r(G/bOOU4K#Q@9dC[I"KY(q)Wp0J=JjQ-\NW@%pono1^92+=uQ/<8trZRhGQi>9%0)K*O(iDpIt\ujSp:nK+SB1hJQKrH&.Z)HAA %fRqe]939Csk99a[d5=)+T)Nf.bSK-UW\G:5AB(tG`]2Hb=UN8'k:W&i+tjBF)\8NtE[!o;^j/,SB^snu5>hOjRHE*ZPbN[/00E?pN<0&4n`L@V1F(Kc1fc6EPCPAHG8<6qkiYh2)=UK/8r&En#;jrb`3=d]NHs*\i*r^ %#QA9$%)1h.5G)"=gDnMQbnVK;_m`XIcE!ZoF1%a<6qPicj-raX'b-;EG*Vo88NQa0 %mh1Z$orKTA*4[,&%?4gpJVkf/ILj*NIMM7e_M-'OTkK=^BOYO$I-SJ9jNIMf^)Z/T>Gpt.t0aP(#qM\#RC@]9g&*q.^ku/KoCQi`$U?s8ijR)r.Q72_- %m(KCI+2L6ZI.iGmg@rlUN''.a4JH;_4fA+?I[pWDX:e,g&SQ30kg=LD%8]VLn#1`>X$/-g'!ScM9S/LEo!JD3F*5^9.PV %BC/I[`@or^^IqM;^Tlk1WW7UJRh7.+Os9qg*;hbe@cPq7K'.MGo!)7)RJnd_Y1X>OprV.=!--+`K9kV5)dU9\h-U]71!A+tSL%&8 %"]*>kSQPG^;"2u)?LllDF'/d$m>$%I??KW4fYlKlF3\')bFYE3slCa84W7CnlkbGOO"KCYO07E[RY^qL;7'32F)G^cB]0rMCQV#Ltbq.K=E)fh:1oJRG4 %GD_9tR9fh"X9',2[XD!.^q96B6KL#KId;QSH)N\/Hm:-&kUUOOdAqP[07OJ]H7VNjnhh/A3KOsJ3_kA==4'R*o:f,@WT\Wannb7h %9e%'nT2q2`.Ol@;4=a$-.5V4FOFe.hn(m([oEj5.tidh3%9Rq>H(L\*3lc2jW7_@U`\Fh>kj[;M9;gr %*nHa1*=t;)V`Ni)bRXFIC[M4kVr0LFR519j5Het'Q79^85%R]!$2Z[qQmeSLflc2;Y"+`1p4RkEbe%dqCl39ioCX-B@#>G7870]m,lc^7?@LsJ]I(`U.=he__shXPQdN/#45cL:T'nc&Pm)0qZdV\I\mT*37T'LC4)pb^_+3=6/.TZ?sP %R95QNV"i9VnBIgADL$-GL?OX.jCk6JSp+^Zs76Z;qCof7-g_JoP[qNcA?>uiEpp+fnr_MWS]8$+YI/ir?F;[\b%[tX;bUtV9m2*=W`1L$Fm0dH^k.V%SPM6nNGlCD[r%g\/J]G3M %nBV-O\$bDt0=$>7qNBG?IK+hZ=oQD;enB=@HHQ-'f/ak6-m0*7(?45#aeUfJAdX<->D9N_I/R;5)oEWT=1&66b,I7eFHPgj!TA/8Ffd2+J%5T&SK1@GgKe3ETrB8' %(W&B&*FB/eaV2fIaAtZueNfldgL#4A-o?qjnLl/6Yso'Jl1KqAKB-V26!#0"?4oF>BdF^;4TR&[\9.KCqkqhn@gDUg.Fic2,f_hT %?@+QSbGN#rM,GV1DfI+tHhKU$56A@TA!$FaYB[41d?/?uIM>LCS0El@:12m!IfI3:BMelkPR!pCU:VE`+Mj %M1Jq-?X=M[a`dPG)ZA@eHe]4E(Nn1K&X`Bg*%m"uRJTHkpOb5q((C"C=!(u_k.I$u58D!c%:;_L;eJc:qQ6JRe;F3:OnboSh3/E+ %B8ZX!7<"]>XFrMhHA-eC-cLP`NhJ>#`49Bm=bkfV<'QWqSL(&'jKo`]^ %S\uO/7otUA2:ptP`o1+=hSN6pA3.75SGu9X1nf\9mT;'tL %*hkEe4GV<)[gPd:j,0>/LYI8j=58V-'=AmA8j??SGb-I%?nLjV?[RS2ZaBBm&of.ZQSIe11&,c[RLU&/b^XWHG4hE9CnUS5.JmWX %!&:dD:0UC?@Qn:?nMaPJHWitU5O]!$9'=`YcAUXL2jdNiC(D(3\;NTb]UdCGH%C`<8$+ip,nrCR:`.3;/#0t)d9Q47Y][&T;L'ON %mZ9_C38\af<1&h7@Fq',-k9V(Q"_hsj0)Ybm.d("?hCLk:gE:[`Wj/BI^,H#rSuV8PGEnWMWd6L6LsO[@a1;f,VKs^&s%[Qq8d*Q %j;B9in",S63Zkh,8A9cop4dQ4;&mlWL]Lo6'(:S4$7M?pln`I?YRm1kEfgK5F6]s==BNn-,?'$2K%->d0)65K_aoB[7$pCZ(krTjk9]o\4dQ\"pH'R\YZMKrCG`1QD$+&+UN+K=ktq%:h)e!_rp+%nK!2J3T4"#EXqmJ3E@ %-):k]S-O'2dhW'g7[N1u4WVG8YZ"l`A57&.\&HrL?:faVga"m@n$&F2(QI=ge9j&n;X(]kC%Q^J:Zc[t!`PTcr)2+)&RW(j487id %8_>CHp9"WpJlu\G7^Ut.'(\l-4^SN"geqsP"0#Gt*`$Zrg_;SZoNOt#B+16UmN9nn\8dnhekp%palaUTp())c\oi3uXL@.@76(mm %+)4Ba4ub9>TpCA/)Z;D,_P'6iS[6fU6+d0CqkB$`!o,-L=RH!>PBZq@NPH>"Q]+\s'nHBcG=Gt(*7kp<\`%1cBs?!S %"V.);KQ7A=iKYNac#;Brg!eoGOQ]mm0I9fUF?S'5r,2_HVUfU:05_94&(7Rrb"pdbFuS"NrWM_7cd't_BLF[-b>'g#=`d(`K9>!k:$=T53K=^UNtfsJ-kq^^")\&Q!fY`k#sh_X!NjJWKb".aXSc*EZrN`m6' %R4`Q_[g[GC[k=cmG*6L9WsDI+WUT<[Vk,s%M0'1T_QobbA=[UK;h/FB"j%*6[M-hV]oG:($RKp@P',IZ6#s$J34U#NR)k5Ye %?hl'=5'M6FK&bMu)V)]7EmSLo<=P"MgR*%qGYE_LL!Qr#Ge@8r*1%jf[rr3B:[ahe4[b_h0]2)ZQ %S3:9TLX(R];;_(GL3auN7h1H'adnW^r/@W,8^L$^Ki=q6=bnCT4;M\fZOn1r%(6ptVGiXE\bs>>C%N@aH5q:NbsOYHUkC+-&M]2m %k9?+V=G'Y@=J!0)$@/%o`KS0L9,WE%edmP=b'*eYU%$VuGcG2t'+/XaKR:fE)X?NqUk2JiR6.E^o$St.QWADG'[FZZI-qWA3gEEG %3b@a-&Jk28\P#p(Xrn[)NZ!k$&8#M1c#G>(EIqbTlI&bB1YDX@.*kr+^Mc*g6$&ALCD91T^+2gP$ZXqPiHPX0@j0iGNBf3EC^U"I %E8pNH:'66SqU7MEa?^on[@qq.j=$A=0A=)sH?b&S"8X^?7*pFHb*_g$lh4)+]iX!24eaMe[ZI\kIu>\61S'\fq6Lj(2is50FjG0, %e$,:qg-E@YF`[Pi#0=p/VL4o^5e`20h+I:&)p$DN/"?*L8cq(kRG$"Tr_EWA9H+W5q8]#tF#UhA.U4MpZ2klWapC%jIO!BX2%spS %rJ(=(q%@WlQapP1]$gOdVbL44Nmpc0\4#)+?]U_/*8*FtjCmVqK9;j7b.6(AEb+-SC%VEL8(-;?^?aH3LIrY?*-%9'D;.5eh6D"* %rQ-md4fBp&[a%,WRKL",#%7K1\XEVPM#!!Jg9qI!ngq],rt1N][d\dDc^gsgHnDrec,-$`0mp)T>bdoML5U;XY!'jgL6d]O_NRj4 %!K.MIe_W<%"6]X*>VoFPPe`^".N=e)hkb;s0N#Xjo>H4)0,\1W_)thj(57;(u[&JFum*htnYYofLfLJ2X9`;]Wim9I)0&!gc^Hg6e!cXk!Q-7k><.g@8]ObDsa!r>e\,JsBl5ijcU %@cu.e!6MGS(m>qQWQNm?D``+N"]03I@oF_cKbZlC'AI3-D.(\GYQ?6.oI[X`AEo]%CdMCo,.>MqmsTMKlMrQ,2-g8#BdiVje11#I %"s:B"[IF/\b78n6R!OMI>UkZ0c%G*E[A-0\:jV:#G"-g^F.osp(>Z1;_2fI*G]o^DglF@]il^\)Xk!"p[51MK4Q-qO*='c"d)\F$ %qE(U7Ab6_>.8U(0#L:r$HN#KtE.DPI;plfG:]d(\=.?(.DDiBg0h,geCjq)$%,#3##,@t3n9 %+HPs^dttK?l_K_qj+\Z'3d%lGJU3&3J^qttVTe?9Y)S;oD\b@NS'?g9N(5B[`m[757Adr)bDGHt=l@FG8CT %^?1c2/=ur5/pjDlfX4_Xl.1p$[h#;.sUU9M_oIe'td.G3G?6$l1m[=;..'r_qdjp2u$pRbkFM=3b27:iH`#N+^aJrV2>gE:+0**1T@TnG@%N'S0:\N0FC144_4on$XM')8f8,dlh4jNBL2N7l-?`1eV2RZQlBe>a7HU(I[#rFnu/6FMCnL'qS]:r+m=>8 %D9/I\,rmaE)/]i&[:-1`bZ@dP>tCA6+RSl^fsfu+9(go7XKoJ+f\qp)cPKb@*bot_O<`O"lC%h7kSUTg-[#7\]pniG;T;I/TlY+K %!uDJ&M[HSMkA&a'G,pPCk^qube*>Y<%pU^A4gu4qONn=6);Ja:@!+oM.pZda\[`QDQ(*hiL9K-]Skh0"OINDPkMJ)Gi,LCJrBaF& %@uh$2a13g@PA<_#jBBpS;?W7adFh>M8;5@4h0'a>FtUKc!(\8uFRuaT;B-?p7+1VP:GIl#*9Vp4B!#3m@/u=)39QN(N&7:-M@!j'7Zi?molP36m67Q%=pfp,V=+ZZIcg?.p:GcN8,[OJ=\pB@UmC$f).t[K#nkY+LAW\=MGSn6\?':HfEK\Lf0ThQ(h@&OSS)dKD(Q4P<-b6*lQ2c\40)/VVIj_f+:3-<(jGIf;lQlB$:JZ"Fnnhf. %96CJ.cPH^UPup>f:03Za,,A:4W$gZ]f3foB/N@jp&Wu/O$D_qk5c9ErMp&M?!hCDq`-gZo5J2ZtKNJpmb %Z"PBBS7aCWOX,^WNGQX8+et$uViG--$IQ*ckuhG5=[@8nq=(60rOaOcO?-C[1ofcp;,X=7#]@O`oBk]:at^%8:#2IdA[JBWPIcPThfY.'q13<43amV@Q/M).aL[%*Q!cXLA6iZDOq@uA/RK1. %aH1YZ+48A0n:%Ykk=6/ia:EEBFP_8l<$4h_9OPi;O7S#&r@.2jchXhGK&?"[M%tYI&@e_toSYf%'tIc&chRUT5OJE*G(0(*HLR$F %NcHqe?75!#pmArrS=dU/dWGb&+l:dRBEdT3QS.I!18d2uXlF>To:p@@M'tRhc4=#6YklDR$-)i!>5c))ae%%tTCZP6O`W_P-2AUE %kkkG,pnLIt4,J9mYbA_4A!>"M4,2`>U&76I*u:-7pPT4?K\J[H!7e+_#]5No3oM/qA,Nld4)#1*??U$_K#:=@DI+Tg"M?6/ah;;h %IGTP"D8!nhc;T`$`TCGbQcNI%CX;?/q>qafHHi(gA%g-)Ycke% %+)5U.E.tO,Q2aGqj"@nFcSD;R$DrC^dZ,MO7>5YGKmN:gSFR@n8@!_6`UunPLID]PU*@+?_S*T'A)d.FD8[>!pVHd4%OSe4 %,,u/Z$u5OF]_>uE$nJZZgCnO246VWi0+-FMHlCeLc&X$^MpTA7^Bq*5+,hN1-*k-Ga*.SH>g<6Ai[G@,imAR_(sh^;rP!J5Jja$s %BAS8`^n*M'ljsKhi;KIp\;&CtdjqGSd7i?7>Ju>5)"#UpX,%A%eduQ83`IBH4>$[%:_A"T`Z#pS)[sWnl)+XelVLH;8P"Wa'p+(_ %Lior/=O:.^pJ?u6UI[8,&n.`[k^;HFQ\PtaU%9H^2ec(e('WVmoWR]toDa]082>%,B"alJ;Qb#oUPioNj>D9d4K'Br;As+qp4 %Z&X7(#b?D46rC<9qTKW;GWn\G!rB!T+u/[W3-Pr^\A;o3Nt^\^#M(Eg2BA[1f4:uPkJgQAnbS-C_0u&Ph1%Rg0DNFfc %OdLD)L4OI0j[`.Ya3PVio %>U=X0Le,,]YCD?A&3R,D#&0[M1Rer>X!Gg''1HA8-%2U8/3;qR.Y2m\_4"cj_StUd@D*a:;']bF8FjhUDrtBM4HU=5;'a.]JmGmZ %M'=[W&l&s8U[t5*'D_3-KXsd?G9uE7&U]nkJgbM<$*H#6q&fdZd;tq8*.>& %cO-AlNQ(ZqqE@RU:cX`3"af8qNg:MH$`u$$Nn07@>?aqT.nZpGf4t)E!DcK>]6O:LKABh(oc?\](CYe:$KU=5:--eV9!+`$cII)^ %ZBBD!A=q`((5):<0Ph]pgP'f6lcNu*ptcu1_2-^7H'AO12 %m_X[e6j7^$eSu_7!H#>>*n%Ndcct)tqEoTJD8*7_b.-umh[7&Db7$4*YE/f.7DJ.Z1W?mG",766&uBup#:TAbnqs5Vt/qH3aR:>YZi:N)h.0<;F[fI\R)s#PQo&,h\kqtGu2dB1L#O+S-'HgN2DS`49+<>u_fWL(")cAeI/>DhXk %\h,hf'f#Hb5OW$]_jE!,'V9c!3@B_O#i=ba$Y4L?+aE$_/8C9-)LJ,9JG:q5RBZuSFR8J1B55r`nq<%h73m,IR9i+4[hs^@`-Gl_ %K"!IqCbiXN'@C5MMZt/:fFGMCcnc;MfFBQ?d?P\ifZmSJ`>l>(Mb8o,&m*`2cAfj^[WA?-isOQ"]8:e$M[\A!W#\QPM%&-=(X`)& %e5j2Hf+fHs?3Z"jS`pkl@&n"dKu-*C2!X1Q`1;3sPZWRkU5Be>2dPG2m^oa(?<)3XKdH.2*g)u&X7u5#n!B,.;EI*Ujf-1(nnHAF %;;@#?$C=U#WB8!bd*KS;f@HWeC"j4g,\MLee]^j1d17b1K^/'5'GaEgHhJ^kWE,?lhi/@p"o/'6pKioGZ6Ypd`6 %hcX(;oblDfJ,K38'L^9ql1gm>05iZ1Oa)#"mbV@[rS>ma=q3__65:sB3Q!^;3^7]/Fgq/a=m(=@#Za",f?9$#:M5ktk@!!_\20Gr %Z*i6P&R&:AUn)A%5plo49PCVN4CdK)?b6iW10Zs!lV=b9>]]hIF2=(b[2"7a[lb;U+A;!\KcNUN#2/Thp&)G7cI?33?d?Y0-;aYc %5:LH!Ofa&)MDYTn6WCjPO#7,s6ZCVZ %olLU;X7(Q4`5!,3cMGm)gocfc0!A/0aHGsji*F8>K;6(0>qn=HF.6t]f!cS!0t=W`lmuK&K)f)kX9Gt/\uOOd4gYBa<#deK4K1<\ %cIDodoei\6#+aMl,bMF5_N333Ze.aFDSnm>VuV;elEmgn\_*,]A^LM]OT`D'4S@nFYY`uK70 %7G(TOgVCb_paIa/VlsO-@G;AmEKY/$io3VM8SmM(&Q<[qgTR3,M_>g#IL6+a/NOVZcR"9b*dCS&hRbP7<#jcZ20*^,V;h"A,p:/R %-5D;?AK=:"-PZk]U7$pt0,9870LdZI^/Q)BrTJ\HD($aY7-:Ds+B`%#]f]OC3I"VGRU-\o %Qc*fg;-7/o[-[7pH2)][l$@THIu:EG8CuT`+1G@)J_2ktcOmb_".P;RoGem"TiI^c3ZXS07gYu0r_qf)P`cLonVtX^tbQL %e=S"m[n3j&rZjK`pZJ%BF5RnVWP@CRXK9IpO+g%]^=67#G*Y(P8[>i3pJAl`B`@,Z,L\&WVUXK(>Vp6[m)NqAZ>lAb6_>.@IcY2Q*D"j&PdM>D=CGH3mlRO-f7KL;'q6AOsl=JT8I5/[^[.c[b'i0Y408 %ci,9>=H/c4/\EN2_T1XT\`/.",Ee&lD'j^%,R+;`>GM,Vp2O$!S=W_C3_rCsmVchhXZIe&5=Im-0`h'FW!GR6!$A;_(_M/__X6-$ %Q`4[7?-0@6+mf6HRX'sF$t25*3nHD615,%F+_;6))8^R4+P.DG)8b8K&RNP3J%R!<+e/sLhdL,HAK54dgAsZWbLjlI+`1A6a:Pc^ %##pSla:Pd6QfRq_&@M[qqtO'G=ND&^"6O"I#U_tn;jnqn+me)$F5TF-&=pqQ^f*28`D.GU-cQWI1JS0]2)8J"WIB9kRWZm#5A.jF4fE7#r8"D\R:]dd^_b._n!scTf])c,0>MDe7'MdM@B!18uM;E(O5jdARPi[Qu94jb0'J!foF`8X)B$SeB6^kF*ind-GFLHNeF?&gQ#ddr3!h8EUS"H8/`l6]#@;m*+e,r1\>%cmJ@HDE2M=^22h`>->h7YtYg(&_(B0hCA+Z^2!*"?cnE"m#[0hqh,h %nu3"fI"D:X!?C)-ac5Hnr3oEfITuU_ObTPk+r\t.jS9QS'$L&?]P9`W4'KQ'"uX(:>Eg:.tn5kftFpb-p#_ %?`e1q[#n/+rgD[r;H!YYO$0qrb+JCnS0M5C07S'i)d0_L$Zs\'B-?%X6PQl1V)BDPkB:MpF_(E4PG81_k+1rJfN$"2metOtS6XcF %kA#>OkUt!'ULiQ1Y-F4OhNi;QDCodAY[P5H2C]fk%-U,r-?nj*&Td]CNP;htLn<9P-O?F_FN$o0b?[eEX[`_LA&TUGmV\=kdBhsU %IFA+)1&nc=?;k__1AUk.ajWeKll99h03+1_f@mFF?X/B%>T&A%q$2!Q,jDT@.nNg\8NJPM9)/E_07S/30P=1p;D60RG&Qan2hV+t %ac`KooY1c\j6CXt%L^<[Q-Ff1,CV8HC!#pT*WI/QEmcJ:k?i-6=pN1CNsKX?c-;%>'i!&d:3k/GT!e6K>#B0,B3k2qk^Eu?`OTmc %EI52r\1c13.$NJP2Yn1"3p;o/MFoMs28JsO0urJ0-(H*PFHF/QnFY'kHNHMj[-rBo^D:'XMk67)f%/j/>4gkdXfYS:WUX,JV7&:!M5s#(Y)Kp"(-eOQM4s]ZCGS6s %6c*SRc0#pTD/J6\F06?71M:L.YgaXgAknN"KbfBdRdPZ6(0V39"^c#sN7AUeGP'TU09k`SV?-;@,EaTID$@+*-!?2\$=8"0ZA96< %&YmD0eQT0f,=65Z[$D/oDuKa$_E[`C9)Pi1:%LOoLBG'B/_>n`_rl1 %S6u/uf1-C^rp25\9eNR7h)4%)?eq'(Q^u]bgm_`?ZWM;H %[B7s8JWEbaC5C6KdOZR\_-L2Z^>3%$)-=b"l;dT:S%860F#uD8FPn=hRl8rj>e`BYMruH'XV%,$V2Nfbld%`l5gN!]V[\ %P3R(1edKl2,h8a_q/+rQ:X%'2f3!.HS<`bg=G%[FAN#(#_LF2`""1:UE;+HU'Fd_0r0hq$Oj2uspUIG39m!r"kgfObM[2uM7/ubH %`H:n$F\7\(UOUY,*NSjbUORAB/YD7a-A8EY.AD;_-,fmXVs3=%LS]>5Gqh8?(c"bYP2`0?#^-hJUOQBIMMJ$TU4<"jO)S44-i+)4 %NYl0gT'.8t0'r)be(oC&cp!gho*bRmc3im!PhZ*@*F>?$++B4RLArb%U3]gV%?QIW/,2O4*j.9kq;Zgca7P,Q %%!RJk#9R>`diCLq"/K\C*VE#Toa-`O.O=bg!("rZA(+`("2C#qLdZ'*"oXE=B\V:<.;\k3r?h@_a=*eW@RlCgRr5>(@`G9To*atY %:AYE:k/6+K-8VD6@8<"pP0(`\j(kjp](SfL!H4K:ob_[`8Wq2:96_On55g;_If%3_[SBndQ6)R.aUj`_E)Jc>s#I0g.!P8QSbpu4h4!%>ORdt=ks.hK!"V7)\lYoq0Dilf^VN5_.6cfn4b'I:D/klk^mrm134+L/>75&2Ar\tDc!(B-J1@Tn)kDF+O*e+G'G'3%3Z %X,H&hm13.*cV3,>_gU9\]c]F*$UAq"Ta54)*\Ri%bWa`On*cT6?BUAJ\pQ)PeB?UW/tnST$QYth<@06`@W3p&A/4_4s*C_URRMUQB!d;X>S6J!OM0n1at=d/=Rd_5CVP5Gr/qI$id;al,o:'7u8O^^%fd8-hC+!$Zsc:nDbP,;&3XG):MiPj/9o$b>-kN(&(qm461Dk=k[mWQl'%0[b*L^`cpCa*agR0<1llP^8WJVb@fl-kHG%Q4 %pYBX![rs@^_k4E.EJc`'5?Wgah@_;Z:7N3PC(Q(*ih5)#UT`AkWOF]Z0"hoY],Or[ge[/,?J3>8(r5O7tN4'"+_ %Y]Yt!&I56_!.9+-R&.'fh>Cc+3%Wjo(RNNfHWF(oBAH9-n_VFV*@X^n)'/@6Rtlbc&:i(d*b[:J,Eb]uf!gp-QMN]c'/Z1Re]?7J %e73ODX4dUeHqXN(grg?7_8c]:6ha51"GRZ= %Mfp:\C5XpTV*?PWVm``\nrN`XbLaPHqoMS@.i&4[P!'R],#oQu'6EF2/V+*A-ukT-ja2#m$nOC8Y(MQeYkD>r^>$M^`PBnX]abFn %1pGj*";Xbk-bm!.MBF@7d=S'^oN@dRbk*rarG0%J?i5<,HKreh]'@0_M%>E3=[\9f %/OO'P=]k.%F*7No-Fn'u:TLqRbHjSIHV*&oT$QU9nVF"$!RonJ7.TQmD/p(7[9O(g[6I*(hQWe5(TL^'Tmi-ujTFKV[.r$#O.R`? %Z&ERGr%-(Y&jNthH+*NCUfq%36MrC%9o(X;ebQb)4)#1*??Rdq/4gU5Wtju68[=^dX^FB:Rc*=ueI)#VoF;/cotDJ3bG/C#J9?<* %$gs>u.]#7VQ;0FJW0@qSB*f]f;tsKJ^J\=5PfM)OhF.j<;Qpo!.$T<(p_YKW4FS&lo#FTVjmfYcVMaS0.?C))47InqWQUo>Y"C,q %b#q\.$U+;q;_?dh!(K0\SX10^\ERW,h_KpY.?C*T^9On7.04l526E"acN=%X6`$$fcU-e@(-&qJP#rFXMUG$kK*j"V,jejZ(26JpF.+?#f&ATqn5NSY %Xi5-l!T0&_/h<'1H7^LBfuG_IW29 %[/0cGO*rJc)Q$X"ZE1%,>p])I?:>7hfB(r2N"dEsbK_>kG#u9#TA$hM2@Jj*NJ=?g=VnEK=N6Tfm&\q:3Q!EB(%f#9bc+[/gFE,: %(!uAsdg58F2HNt;MnREXI^[j6h7818=FXE9GDRCU_.]2[TeHmo7j'KMg;*"n++.9>M_Z['gZf6m;o3$4lVA0)X(!SM&g$ %]?s&&X]QhEE7$of7Vb!jKcq"\!=9ql'F$K%_`m+D>c^VZO&l"=YAXVKq<0f_;uHsplsf5Dch6_KpW)MUQ@_Ee6,NYQmeuN88=+\U %pg3Ej?[\bse\3eWD<,);CYZI)kl*<.(-e9K9Ept`5$iAjAcj7)u@%+AJd%p"c2[amZE8YJN7^!@BSS.6Q7h(Q3#,Eh[CE&3+=RH':N`Q\\>BAi;?("tNK\X[Joen;@j5!FCl %];"if(#/QnGSbAm(#*(UW2-s"MJ[cR:Hj[)/%5,=^2)!>bn/#:pZ5uilSIjpbgBL>Io+DqO*IA1;QM06TjG^L@C?u,pL$G$@2c4h %)d5iQXLhR;DK1DXXKWJhZ\P4'i,=tSeh)\%!`+7[rtAAL %Lns&sDEN`d6*:E33cYrm]pi[c3I,1Kg6'!?[)Ui`FRStU*Y7i*`]fqqfcI'X"jq!H"fp2eEN#e/bbS+YHu$MT>uB`YO<)"$d*i:DV0.(8gjQA#3pZ%j]tW9/a'0U]c9;#)RX6]E:S\c6%q\R.\(X>.p=769T$) %ngO.o2g4iu4n#KKbtr><7(%Bk3n`f3++DQ$T$6lX6*a@5Im*MD[pZ,c?V`Z\ieak;Qu[I9RZ$CAX!c9u147"&g!O2`Fi(;N>W@D# %Vg3)63%m;Q*'l5i\Si`l!a]$]KV=ZF6DSW%4\XU[iJ"AdhG]n*iq"q/ZGVV9CLjXcG0S(B5AL#5i %^_tOgRGp7E6)OF7'ReNp02o5g\\19Z;g_"@OS&na%JT*4E8fqV7/qrgh"Q)tB>;$[*(MK^/:q;J=6LcZiEuo^nP2_tm)7qUu%:(ZV!3p`gPUTm(@P(A*WfV7,N-!#J0d#0kC5;0Z8Jq]36\5=samXWP+r %Fofjro(g>mBO,D&-K/f'5oYS^>ktLq,ln^U^QU\;I:XYE6NX?WT)[B;h![+XV79]\!/KH4[q;>?1Ml %Y?&/7Y*J80>dn!@^Zj:-VI1KrL&4K&IRGBqU0HIb$L`m4KEM0+c]jCp@P<\;\XCQfq@c6`#,-!f?U_Y/AlZ/FDAjd6@_#J%QFg`H4`\J2WPJ4G#Uf\Y?U %HNG]KGe\pkp:+OXd@-"rFb$`@&P"@W,8(/U948rd?WeoLK%R&1HS@)gMVI0Gm7B(Nq`HWMcfsuqiqBljHdKnLMVBq289Snr_Y2>h %$-2Fq@=.a:'fDP/BIh[jlfhfr/l?D-*nXe`]@(j$p9abdHb!D6:bk[mYe;qgfc2='BM&13WauqFl^C#2[+9^Xr'PNsQ_tp*R/.\n %htqA,HA\Y,;mQ!2.`5Lhj[W'alLKF+t1ib*iZAh$!B&m?fP&9Qr2Y7bp::=$^g?brrTq38f %lh$("Y.b/,hPXf=V*U0;ddor';E,N%?;>7)#-j.[[?q?9ns7^LKWfS/.DG>2m_V$J*PXM[Y;sZ]Ms%_K!je=UW-k=d+)feEG%QJc %gj83AO_\]P,2$+a\Qp$+F+JOH<7_:+#.hNTL\hk8fZVaq/'5/X]tOkfMS(=aYuK.iCJ>gt %pF`e-ARbu+&nYU7f$YEJNisQ)NlAo&;;[2%@L4,sEcB.pjP0Dia2or`1:d9i@H0klOr7&l"fOLjQi-K*em%n"Q9`'gZ*AM)mX9%" %Dq+OHTQAf%=p1EghsJ$TjUU+)eN9T)7iD5a5W[a!:=.U=qpR4+Ae[lhI+c7P>6!G3Fg"#*kJ466R+j]%$+HmP/3)ZJ[F7C-E.`'# %kSZ<_=Wh]qh#%e&,A;#QZo@6O3K"`q&@OhhG@bT$#[?aaeiGE=KY9_(V`<][6NfFp_T3;^g_"pDEKMF2@;3*#NK"A*G"1I86eHHM %n:ZXV$t43#@&K?N$k^H223X,R`L#c0k>cogip1OiMO(hWoC03L:HBS&XXQe`XeF?7HApE/lM9%Q#t_;d+"^WeRGi(O6Ee5Mi.`], %aNh;k/gO3dZ&8df\`L^,_,Ghef_@?uH(-/EO%;sVGp\aUWnp#sCqlol[I+UW0XL/\R[tKD9m?)'#DkCZ>4[6Q@ELds/.GPOV7SW0 %VVS>/d,0SW^C=+k)lETm9`6mhVLGI%0^@gQCdGun %(58XjU/W6iNCBPIcYF66]$J]s%,nlQ_Y4H[Mo)js!,X,r/.+IqjM<6q@o8?RM_\>N2AQIs^&Vli1_t4snJdD'CJ45+'^&Rt4dH%q %^Jl`=4l)t70@Lm,o*7t-q(a@VnnsaM(o@*qQ]p:3Q7OQM>Q.K2]GG+Yh!o\pX6m+L7CTfiEU!]h=GH69=1#%NN6*U*4dW3aVuAAe %)(f[+k9%0gCMIK;?M,.)/d@FWP8EbF,Y/tSI,0L&%r&FkUTcI+0=`+/Ab8cp&NnWk4CLRP??n8N'Oa=Q_JiuT.)LZ6Ck@)\LTuL= %5pa)$KX$1:iOl\[KR0!sXmJjrRE=HkQj=j=?1X&^q\8-i!F9D56An0B_RI(BuPe4f=V&(BH2`N=_OWcf#I&fMQHRN"D`\-!IjD=b"&m5dA'HKj7&U %r%(EOFX1hrfUIaNMbMBJ3HUq;lY:kQOQ7,_1+(ae0`tYF>eMg:NGIeQ^-5l"VNW*-"6T)9XK,WD@r$CC9'bX^QZme1HY)=biuZkD %N,.+e"3)AS&UanmQHEt*9EUqU%L]Fj1.X=]S*fpsST-OjLUXou;R3'M3mn=e+]"5bDiL!QJJV92j]`r5Go4gN.JoY4K#ip`QAD(? %ZljC0H8&fjPV7h4n%k/aj8qX.k%k)"7@k(r,*uhI'Y-I?\`JeFGnEA.j@E?m;(h&tjG&^h1:%*e=m31ObUhl=c8N!3K#mVMP/#Ho %`l^'_4q$D3h9#dpS<`WbDIr'Yhnf)o@"U9SMcO7X169GL?Nr3ccGlk\$F@nM/DCs?><)2>(q=&8[,MI %BAnh1;HR'+H]Xfjc=CMNM/G5kT=s(H:d!h+hVK3K9^=.8%<3M+(%.b!CRK76nS=Ad!R7rR=UpdRRdnF9A\%KWChqmh,l\]'`d#YP %c+Fo5+jmcdoK=K:7K2?t?+BbqaLa=8_o75J;&OJt1/_?$GmY>q3$cs:(7U3s"Sqb%Xm+!".#phZ*\^QMAPYTko0G+Y:aV1%J(^%+ %`RV))7(Nds%>qFmRRS>^u*c1=Jl\K_hck@`GMP9nSoC\Hj`8&E4Bd165K)\hBUb_<=fF2[`aB20\hr]D9 %d[u"-M;6q`/c=o[O^;^qZ_'cQ5(>@]8+IQS[H;G;AK4KG)B6'+4[B6$MQe/dER:eD&$R#)(At[-,EeZ^)$u'6m %9@TK3SF:B$1Is;gb0Zrd)nX[M-XmM,kr,8BK(8ChUG#4.r79Bjo'^:t$4s/I9ZRVL@"oqj^.38$&XK>EFpd;!pJ*csg.JK>^nZ+c %4'>-:QXZl%Zc-;bKeNcl]QioY$BgLb]@$Dch)W2.GGF\%f?Om2'Sd-;q+jd![)<8$h*t#C/aL]AjJnZ!mXi_hKp8XWN5WJLjbnZ6gG[! %nCG?s6Be85Grp^cVPTGU7O>0^Zp48.^2Re)qWE#:8WM[So]Mf1iG)R_B7KHbE.?9^PjYa6-ViJKU=28nSP^`Eg(J^USLfCf2N(V[ %`=M`^RT;XTXIpfPIB2TuD]+DFZYq2eL=%I:AML9'5Q:kGKrN6d)]^la[9?[d!9FuZ<4g&brS/L&YeE9%.[+=U'>9msQ,88rcid_B %k+WMG(<1Seqfqg2R,RUD@noZC$;ECkniD<9Z`KuE\(9*1Xf_7iIK$.;A=gh):rZ/"K2J"L]&IebBL:D:B4m6b<.;4iXL4##nX'?1 %OrRh@ck]@<'./a`TIlUk]tX9GK30tHPoNk;csEbGEdX9@4#)QS?Xh.dg5/*eVTK;K"!dKE2Iaf;g5/*eN\<2%MckHE/tU:[Xe>f$ %*e=_.rAd?8)16^iaM>$pZ!d&_*s2UNa`2jg4dHZG.L60ls""iXSXo/E!l=>(PP)22hkO#n\E+Cl',M1.pT/Z5S<@j\]15&Y-\!,o %GE7.BRhN7H`^8aMcF"u+."UpqXn`(7n"LX92Jo#mr/U.dG3'Fcj'u%`OrX/qF=S`F-a_X\%cK6E6?nJcp0O'9(dV$mXV;qnCjQ3]N)dpY?kT?;S\DYrs<,nG?N %_kS=P-,WRE(-pD8(PCGT/an,@(Ba=!Nc%W8+P]9G]R3T'(?X'gQ%o&T6B?`t->_!,?pnT[OkoCb^(Ya82>?!dVc\u>Ktek-2uJ!: %mp1p%@*5@j(D5g=6bJX\/$!-hWommMl3H'b5^fgpA3c_ %XL7-sY\mn]/=r]87'fV64[XsLY[eJkM@J[1rnKYI(BoY"a:/p4M`>PV=&<));/`mR=h`^\8FlA)XiYFkj#4&YP(+lmUj/?Gtg>2p;KIBh0J>]-!_ %?&^X2A0#ghhjIF'LPB(u32P3oQ'Ii"gO=NS$T_!4T$3jUrpXR:RDJK?,V#r9=rdo$VbkCuor55(mB($4`bK[W9/+JQTJ_tX2A;gY %oNW;\JF5&fHF4.9q&rjHbMH'eCRQ"3Pao!@?_BLZ&`(LVEULVuDunbq/6G6Mo6a5&+cc0/mk])OK"*,cAks`:0Z0D.D;V54KZg^9;r=JEN[_7BmdJ4pRe+VAB %-iMq1%n7DgqTBrXb9$T)*i'k03e3-#NJ,4MrYSqE(,HS5:MVSI[L*uFYKN)j\^7R?#BX:*j9%OdQ[QP\Xk!"pnHbm46H %kjP$"Q9@*0&7hi7Iml#aX7Yp;M>hC^?]]r:Z+l=n"37r)[+%DT4TgjC_eFcHYQsc\CQ06/l]nFj/+PZ$a:V"a1Kp0fj'7GC;>tS4 %\>`.scRKta+d-X_m@u\LZ^Y0.o"[d+(o^RnZ3R7uDGSE/iNLJ7`rVB7 %Ih)t>Ck3^=o"[d+(_Ci.H=/!'b\[.kkCJa80M*&IJYC9H.-!l:@[BTX$mVYYIHbfP?!FZD&:!Y6n(OL1)+$E;-YE]lX#Lu/[E?K= %_e`[2:)Se906C:8/&V:^CrFK#0]IX#)2:SI@idWO)91Y\8!dZ#'H0gSGW_dUcAQoMr*U]JGk3UgqA5&MF,hn["?c[FOrPDB?:,6s %+ZaKcWCjHL!Zpu%#q!#[oa.^5#^F#M`^pm`GfGG`FgSE)1sJX:=rZFVp2358e9@fPK9=a%N:&.&(%mAnXgPD=MQ_NV05JdMiI^RZer%EO,uZZ">of2;P;jCo!X%XFqpSqdkD?a<,& %OmN_u%BX$%,CT.(%o9-79A`mSIZTu:s+_lK1+UEH6bp_I":SK:puRr0DWr.EH38^W(ZRA!-^Su_JO$u#TlEKKnK=SDE'uiukQr(U %g%#^1D$OF]l%%`#$]4B=529bM*AE.!S'Zs7GJMSLoEIbn\H@TMXpg@.qO_iOJ>"5E`ht$b%.-/N5f>?=?s!J(`dT,`<&[C*6:YN\ %n6RtRU(@qLAu6-b?k#?j6migN5)X%]'D-_L\^kf0C\s'AI_o<*WDu!bM*H,lR)Cb=^?I2\f@g- %rb=AAld+=1^/D.E+H/nWEu)mWiQg,jb@YcneW?B>@NES)\HA42SmVI(g=d>BL;h&s;;X'pnGo=Wq#<^,+K%3+rl %J<$2$,CQ!<&::Q+(:q-_VoAi5Hg)NL^mSDRh`5qB=X:[hm(46ZdMm9kjettlK3dNpGWTb$BV?1gY4+J4@QK?P>bRE\1jR%cXs>/P %q-i8Thh@!/F.8Uk@[C.iilZGG)!)Kr\3`uYB_%$P>hR&07X;sPXej@X7?CSEeQR3i5>tFbb,lFdNY!X'_43g>q1I"FBc6VXRX`6+ %r!s?995*/40/E39=^3q@L+O'/nPrKl`RY=ZTKgER2D"?\BH">CO%AQf!aj1-Y][E\7&mBD/c%AAZ1i#odN-gH>O;;l%W2f"_\RU6 %(@7'e2JfW_gL(3.g9AQQYGDo1KuX?[+Y*EH(EXIcKE_$mV=;!f-S/pd\cp+X4\K\V'oa@hkQqV`IOp5`+K;]=&"0+KG37t?JJn:t %7X/1b',JO\^A,2\:"q=N>gO-"e2&A?EP_%SY@(a-kVj9;bb+rJi(PdG14s$b4l-(TN6IppAk4[r^2c?W$jqtBnKThrd7i7cp_V0u?LIE"[;(`qO.i0LM!jOVsD0[PMd>f?^2O_"7D*OrWh%M=IntR?iuOj(B5< %+sob`]:W["8q0"[21LH5c]Vb5^YA'KS)"Z(9MlGd)Z#e5=VD?$d,3Y_/2$e2c$m^FUG:0RD>$'& %.q>?hg[',XdgDtecS(b1^R<&sNu@RZAf=1h5NH>5`OtP_mn21LHrKTsZc*gs@'02Ji6ea];)7f:5,"f*^IkrrL!E>=#^FNHd^o\d %+Q*>QW'UU8k*ZeM!=ftR!KS6V4jt>p!ZqAr#,sID"?Zn(UF/aJ#^H8`"2?Tl"MB?kb_:RcB$kq>=.6fBOV%$3oD;buGRT,3=oc!0 %YH]5.iA+Y)c`q^,nCWaTgTb6U^uHMT-6hXbn53&9`dB(V2fUO/&3jS_\r#ZJKEOJ'b]EKM%mDCAE.IIXq!*7DQ4KLPp?gH<(ePl: %cl.41Z)=N;m["cjMDME0@\bNVemu5J/BZAA4\lEREB&kj1eX!cfdm0!=g3)^17\%5*4?ss`F!Sg3uIH'H;7&mU_@IU.>@SQ6LYfd %$,`Yb.$UEsKqiVsH12VN2hq^TL]r8?Xm);iIj)puS:<0hKsA'#fMXhk^Sn%qM;Ku:$?o9il$mLrOa]9Jl24+.S3b5GcBjf4GrP&I %^JHR2]k&cuZElYL\^8Z %#Ti:pG5MM;fYmh0o\_BqcQWSGTEfstmX:^K/eWX7qj&i77P+uFU4"sl1+aArCe)$ms-EHN82%S6JR3_LISgHI99Nd&h#_b<_]ISgWD2AA\#)><>)c-p %/1"Pm[>1.i(0n`<0tLbrO&Wu]5#qe5$JBGl;%nYH*(pU)R(cYA6t*I5,Z]I(MD4mGIPa>ZBg0o+5?j:#+c/BUiU2%lUCA/?*0G>*4jct4)[8Xj&($BKmX_*s15gZY*0l2Z>D_+XVb\.r9mdnou %$JB-IGc-mc=/]ZmCGe4^_?A@BaSG?-2:caE&;\e7!Q7"A(NV!7$D7USbrD?^:sN=ra<"2e,7DmV((FI20C]!1?VILBN(1)J@eqJN %?__@p[/0drhI!;&?`M+17+IYWWZfpB.+sAZ?3"!CYucpa)D4D=+/3Mcds:q"kXV57("Tcl@V,02F?_Ol?EfcLY*aO3?W=5/XarN7 %].8-G^!'ogLF]IKTV?3*?2NA&9\P"Z@SL\[Ij<4(c4YEm7S8Yl(f+m],2tMl>.:85Br+">EtumF;-_LsZ#.Q$<'^ahFeeCTTagRR %2]nNCNHXhSj,;Y7*0G>*S:pMSd/\'oE#[I;qE&Q0cJ1$WYDqDGW_#\okcErauJmM]ENag!70"ZgE]gg]mVpr.#^fE>u>> %2?hkILte#%?f6[R*2bGb2YIs6?-+f+7QUd.eSEYpYTbnMmnlc0KeO\R2'qR0Hkd-Lauu7^<^G)=.RF@DWuuZ%Ge*3=)!o'AG"FS/ %m'UgfOa:.Ld50FAIa+SZHREH2?DaD1T!sY%dYD*SSIlHDU^mhLZr2c]]!O%8mbDf?VpWY3,NDP"p_p7[&Z.j-UQo==D9psM>aH_d%W4Yb^SVt%4+U>KiGQgi%/!il#V`o3ET=q2P1@1Bj;30?f(uLa$Om>#Xj@l %a/<,!-:QhO:`E&:2Fg*P*9:O;;(_M;lb=R-Uo&@D%CBYI2!4k/6a]&4+C1]g[FF/N/L$oU:Yh+`"_?hC]arfN\0oaYgq/HcQG@2cc(#gY&0QY'2gq5K\Y^1EkAt^$kHM`:cgVYrYF!d08hU#Z,QGY4lO55,iA='<j2m)BKuD1g.BRrMA8iC<%>%87.!0lGbo-]B!!PoU;p %=Cc:P:>ECSHM-jSU1eEI\gs3/FQgP'?Y8;j'@OR6;L4`s-QVU8>f8 %@meE2MQ`F7qLoa06/gJ32ob.9YWFc*%QoY^__)J9(M!,SfGtoU_M!4ni/75QC8TA,P*(D=`UYfB1Ag\b98&>JX`fE^%[ZaIfjRrt %*o<4\,'63EES$FK?!WrK;X*^$be8HgQSN>(fg"[3_bY_R+*nB6H3=fG_)_^WS#t]Z\ubt3Tj5)lGj<`_kKMuNks;0kP$=hh:N9HT %:?rBu%5Zc,X6IarFQ]m4egWTUEDcT!i#K=8`)-D-'I8h"_FS@^*J88JGTo-=ES$O-:6HZB %WNYd`!oBu=bp:YHZ6rNj2H)bJWNU5(cF@3_mL9d(3-Z[g`\h_iLl\I.eWJb>3Hn==6f+L[9Us-@Tn[\X],4G(F&Hjd*@.TEn?Y!9K7,@Vhpc^"M"+pZ`no- %>8-$Rg"n5(%\:^UJoAlZCT=;="m+n+TrlVjcqbuM:"SS=]QsC/d@R)d3kkR/=EO1=3a'V,^!%gB1sVPp$Dg>h8)p[TP8'#*;HHA: %fMDLAD.W#(5:`1M$QE%QRYDU;q`>o=qc[b+Tn4>giu1CVl^u.O-#obf-0CZ[YZFh,VJkQVKAk:&W>*lTAG6(1;VPgd,s\2!<`]QnN"3= %c[_*&a+DV.JFe`tQtUR_9pZ;R3mRoRF405FFPct+QnK54c6M]Ia+2J,GW.=s(RL_teHEJ'i]u[P^2ejK'8J\nA/QP7&Hb)?"4"5# %LA4\$)ntJL-\uH_CGli3KmRLL"h+u";AtK"dHE\'3"MPrn`[X:4SkkARXGY0AE+NSr$D_4St+WYZD8#NqN1.64c]eeVo+t\!L<\gDGqs35c9Z+#6d:O67#RMs@cgZP81N..[U\D+m1"r0L,*IBGG[`S@FRCP1JaWn %&4t+k+hT)Ze3$X=:VU88WHf)nI<=:@]\u'D2aT@lmfh8^XsDLdVkiNu4[Q?DM_q<.fS3>EYBPegNsE=;T>Dq+-BiAceEL`2rZE^Q/r%6pqKM76 %YVU#n[I&,/8$5J/n\t9gn\6>PaQ5SH['jh=_mRdlN\.d(??M2a=c\IIKfs#mi6\&9C]DTi@C>+H5,$6--:<@'MAh`Y1h!gAS=BjOQZ@(OUD;SUZWJeaOQ4C %kEH3?mLLM^)@QHo=qJ4iqftS7Bg29b\nEu#pp?2S,3S/[J&sD"4ol-2\errbD0bTn\Tb;641[QUhn"HcH242-/^1+Y0+IG7KH:/RucVEK#bpo'h1JY_#%]367s/o!F.T=<_*cWK!eT:)DVBj?=O93GqL1EM:^.QmZj',O5#+7q[;HnM.gE&H<3/P %XRg^93VjpE?I(D"[/?[V43&XNA;'rA"\_UD+X=!m)!i.VmbN^uK+_#6#O0a1+\P*Yr,*tul'EW5]\#(ZBg %2-OMn,U$YdNEa?c=Ae*q(o(/FHI+lp>lt"nCs;r71;P.#q9bX2uK9)Nhe$re!rh %Zpb_"(Jf_2L^'0ZlCIhNNogs]T2e$]V#Ror`bthW5Y!='V=ZQLC*FZTBJ2]>Y_#rWYS3_qCMTH#]IDnUj+IS=-G%RV8Xqoi2]!E_ %B45r78$:Q1rr%*lK8K"W]8%3YJ^'Oj)/uZ(pko_TVZ9dt!*6`N9W(.J`Pn`G>FE;pAibY#-?@N`FT*-+BTr=$<-/KEr=W3XjgfnD %knH\Y#q:4!#5-fL0:d^[)[iNAG_;-3Gq#Y(_*\nIhT9?p98Z?>!.sY6GFt?Q*h7>:\@iZHGq!k(a/3$Vc!nE]H&:Osq*rLX*%.9Y %r(7Phn_e[AUR?gM@Z#S?b"1>B9h]R'Pq5=CW0D5JdOASpELK\>8uENnU5teC-s>Y4'B=sJln:JMlYd^-ZKJnO?0BP5)dR2]P'(oF %o*!S=+8,29<'i+EIZ^ARM5&BhSZm:M%?f([G'8L[Ffc&Y6`ViOT4Q@gBHcROr@I^mTb)gO2Wj*I:XuS9c2FR)5>.WQo67R[pfT:`_9,tppTqZoA`^&#qcV;A3#FTA %GjF^Ff)Jo@mJoQ`4+A2is#/s;6OgSgr2dsK\P.HQ9F\NR5Kc`EYjg5sr@G$W!ZWdHq[4HGkEM_f`m97_''*__nZsb^6'/^pm:U^A %T6uN8H2T9::'Wd_@f.cI*eqE8f@S>hb_ks-iVNCR0UiX7BSl8cS9.[aS3`=1V0fBHSAChudWm);oh]Md^T1-[hoDJfoDEm+JRLs6(lD'=-cGE_80S5i:f1cG!D00`MNm$7 %Ap5]RHoE!!G,MO."N_@ShtjZO&h3PQ_C8F/^WYrW,%[d\5*ji,KN?b3Yrh;R)RWD89:j504%Z5AnJ*K0HfP%/4!7<+P:=4Q\bOi: %P";"4I>]=n#C1cj=t"ru:k=VS_FgN!mX7!]ErL41TnqOh6le!;AHrK>9eBB$WJ$AKj,)S0I"#t$@\5kB]ph9Fo/8kT9M<^NLsS*N %qtI/D%oP&.]k+SA(9cmcXc3=sE]2MtgjP6!\o#0qX]3)@f`nEP6I3ne95Au_PpT\aJs %b8!U/7Bh$tMR=@`%S!?%i(5[_(nDk$kF@!Y#Y(]ti'Ff,'9#Zu^r%(Y%ua877Fu`R\\RDCi_!!7E.QCcYit:2`X>86^nU/NkZhM; %r`gNS(nC_dmVL(@"JaR"77>r?jo*1CJC,gMkidKS"f#"4f\4S$Ohp81=S0^`-Bup&$:\[U0@@W"s,)7KA[;[=Kp+;`P2jj-:XR)j %)iJU8PBjt-'NfHeT:Z@I:2s#TIP]odTVkS.-@\<8kgkS.-@8`g5P;de"X(?5Ll %;ddurF2\GTVnf%mCJ-963X$9>hI2p!q>gD41K=c4$^+e;1l22_lSc;.Ue@k%,ir:N'3`YfCXBtGnYMAl/@(NUH:63O %n9^d@AhCo";\SE)G&GIFde;;?=*_3)?3HV<'NUOAkmaO^n5riUoM[_DK#c$.b$/mj=a1BC2R\7>rZ^_H8%u9W[l6SB>KiaVW]sp,pCC;1^P4hKK^bY6^-G:8N>$(`t:[@&iu_WL*jaSOtc(oGj4G. %/.'ZV,3\7,/."m[TVG"h8^R)*GZYUB?"q_4ZAHfN9F^i"cbOBW8S$B.<[.-6C9YV(4_P-nk(]_Mmbh8&=oo=)0u24#BF3=HM$QcC %n%I,/>ZlF6%'1>RLfkUqU$dLr$b;IkI6o:!4E(87HMahRaQ=Nku0LGs3jFO$+ %3-Zo)\,gj>PPU"?FoTDm-]B?F8DBKL'de=DCWjM$P)(e8]Z$V.k30^9kh_A[fjHJYdFjSi[+NO<$*Z]_">6M!?#d_`_M$4aNPg&d %Vf%7XYdPU._G@&SW?b91e_+[QG*Y(P8[>i3pJAl`B`8`$9W6kGN]:HlR.().Rl)Of$[R'nk-t&kk!EbiXl!KPI319%-]E"\3nB++ %p-i)K8/@_6WL[Il7l%[&H-mGRG]`8YZ&HDk2'l1&fB0G>HG$8LJ'/QI6?/8S?B/+sCaFo0U=eN)^p)dOQ]VYM&+u.(Z^e? %i_S2:)!!;?*gkT"/niGfo>#%Z\U\BIecR-W@*k5cecR/=>((ToU^'A0^gM<4T4DFQkCU%d0#Lf3\U`G@oP6)AEA!#R)<3]C8YV#b %S.#6ekBB6Sc;dlU^RfeZj'9N@9_^T68I:2sS1D,HM+<,&?/&fgp0coY?p*8Q;9$.S%25'0Zh5+k9Z9/9b\CkCWYC[5f?#3#?J!,EH1<*9WJql6C>.F-2oL`K,*!]tVQ+ %McO7X169GL*Ttk7OPVutdGnIY4'go,f@k9LbcbG![pD+L_(N+[!tWU;h^*T[9;cELkIX,XGM,Y)kBrW[kq5OSc$0!Z+V?3*nDAa) %8ZWY-3-9u-r:*fiiQr`O-c]G"KmuH]VMH6.m[ij(p>&\O]#pR"NFD(R9Oso^"/FiN2:3ArrJRrt##gJ*Tr01?\StFgep0`t?o8un %/tDd6rsLtjkY!N*mBQNBA+d=O.`NM[oQ2u;^ql-SHUcoFAnB=k6?4rup1$UIN+L&bjO-*3283a)pZ5hk[CiKlaf_:T-boI@XD=fU %rCnkHHHQV^(8Ub8oFLb"GVLit?AI-T`Vc_[)1C'?'s[,r0X7_H=7O0838lBUqY^)SQ;S5c!&):?-FK"7Y:@"]oJ&CqQmQ6d@3"!` %7!)bJTu:>SBd)/!C3!:K0=X?hK:UjI7jNd$rLGe7`>8.Xd#Yd+!bC0"LJJTh_W]IS4oN1BOj%jabC)n7%LYu.5 %iFR!bqZ.^)^!c9/87($8m"!+.Bs#Ii)3uc%290(Y9'mX\WgWA*dL1aGJI>b!^>3%$).sl$_"9U01Y9?XDC6g$Nk?N=.3uNhl^&uc %5""LEl/HeqoS^6mLHed@O!WWYXOqq#F-&<[gNfg(^Y$3bjq>4?PB\bbIeR7-+f4<3IeO?@:kRXg)+<-?(CtuhAe:)R&POu+R9u+. %-A<;,5t%>60[5\iI_g:A9/@"DIM+t',ai!TeXUH*[q5WL2fu@"ih-"OnP,[r6W_;7LgP=`"-8[b8ER@L``)_0]Hc#,kDDl*WGb64dH%q^Jk<+OT*:H'D)h2a1CUR %Gje8f)2+Teq6H/8mq1Ck'Scp*60$R9&CKNgTf7!384-0Q07I(c`iI[QOr:F%S]Q,!9$-jR?pWnhqXKY>+rug4JH\c3/L3q5Gc:@- %.755/a+-#=3+274Nr`tYEPPsW49hUTkLh3(iSeP((O=kF65k.i0OT&mpV8OaV)8Jk?ih[;BJ>0^4A52W?2 %,?L?fcL_J-o*oU/2>>.]ID/c!kRf^hiFdN7pWr?M+G%^m\b,_6Cb<;((=f+d'=$5hN97j6XeY:&PbD9r7aeIkB>N,Y7p3@F_]m2:ih8W5kYmuQA;[;^aXpD4p7NOri[[pB)6$DH %QMJWK;uB&+JOKeV+]J0(_d$,rQ&5!`E/kN'W3XQi[[n\JP)/#nJ*Kd%3nWFpkfcG %ff+X7.5hYBe!/@M/Q-[+JKU?nf^q=2:I@]h^Mn[!/dS,@9T'Stm3Ju2nNDB5Y1.$?g0%*c(=mC6$GJ9lE5/rf$A]&Ee:_-`l23+/ %$D%U@OZiUXUCf&p&AbYL5$LqiEhZ3g(L+D+27!M\4M>,/4Ije@.D;QBTnKC %Y^#5d5ro?;kA5aho9=lS56es`OXo@JZ%VhVQac:;gtfu'.ALOYq8I%_o+HSOYF3djXF^]^HZ2FbpK.`0YQkio)!!/mGf\mj/%%.$@T"-+$4*84-.\5gnq0B]/_1?]PC/TGr6nNC?&bIos-J"M(<\-&`jb!LmmSh*:h8I*I!RkC??`-KJ7Yt+YF6F %Np#Yc#_#PFb&$luY<0j,F3X6mc@tHT!K(J7[!RN29S'?W2k#=39_%^F!`Kp=?-9fo+IL#]Te[Lccp_SXnUP75E3C]*Q[D;'ki%kEhJ#kdmJ<%qZRZfcB&\;(J&iY@OYL*lIf#;t?!U`EM7"U9T;_gL.ln %T5J^\o@>(3VkD(64or6q'TkUgdjOYWdr"!T%4?kdK(>LSIZ$Gd-+"F9,-B;\(?)aA-Hn^m,TA8*=>Mua#BdBb*t1.!RSLj3kYc[5]AMTZ]4NqAQI\Ah]H-.M[64A7G:Lc0qZ?eb342+ %^HI>kFcaK4il&%tN'Q(>k*p4Ogu93&ZL@ns7\Jmj %%9SU"IK@0JXG)\m&La#pj2A-"^t6h:CC9ucIl&WBQ/j.$W,Q7Lg3*<^B$`T?/kjbUSAAA_C-@\$H"t:9Lh8Af`H1\CNiU(?`@'q0"*L4@s%:fT:^I4M$YU1IbgY2^:b`jb[eb6&(%+1I5G\TiL"$ %CiNHjIU6k/+'gGOd\lo!))FQurd]6dT>Bn]rpf,ZW:V_Y2*];Q&'6>uP$+9uc&uu6=$-*,r)?ZLhO]$F %FOBPW"I8$sla8PmEN*k&@>,J24%m_[A+g.`!1k^g@F\\!]VkXSYML&:[]Fh6lu^rk)p-&H6"5V(#8rT#lC"Bnqt(=)*5;d3BJ %cSe@lV+L/Y=g1d2UIkAYs*XLj)u8rV%L,OI:XM4]ajfnTo$D>%W(\eq'=96;ENY?7BT?tgd>3X^#LDI5J``?&#;_4(YK+c-o6#ir %=3$#+8`jXH&S$%Xo$3tN_N%9i\.@^@];(h!F).$cp=LCs?Nb-Z&@gR\.+$$Z[7]PJUf;^j!CC:?pmE[4X,rPQk.nU:b4b"Wkh)FO %>cWsN$@3p)eg_rA,0?Re$;%5\=U!cg%ZaLB-L>3%h:W2\;-LqWQ:J#W+Xn/`H_3m1m+qrem_DC.X&\_[pPVJI3,NL^f/)aWIu$Gn %*tg`#"`"kEr9Z*!+1&qpP5T&14]DlG7o6-[]7an`1;@jH:M#i6rC1*;[W`*IP_6:N4())LV+2P>f)3>k1ILRIK8L6[>9:n]6kD(f%6sa/JOh %&`Mdjdn^BkEibDfJJ/XSjL?5"*`#N3-Wed=`Nf_DNp]LT4F'=S\R55p&"Ymm1,&K?!_Y;pSkUoEH184R!_$UPA=c2[c/TBoAn+TK %-4G.&N81cGaZQU[Ksn;/*).t1+,WN?l^$gS$-R\LPiT+ulZ"Z2ns)fpUKTl:K0d<2O,+RFNqil?r %Li@C0Q&-8P*YD-WF%Hdbnq_7*fMN?Fg^DEp_:):ME\BD]Vpg0qn`18k-/::CO!g!%.%un=-(_c>H1m'BR7Blm31de%>i %Sf+6BP=M.&6I.A%4F+lu-qa1UkA6AGP=UBTNsI*<4q%Ob4E7S1mpWkmM)L;Yud?,A>eY`=;ZA8;^ihWBYNdn7tnNA$!]oHt?'(,-S]fOkt %B\WrGc%i%s]+&=Jh^o)>rp94hrJ3km?XdLUrJcGY@K#tuJ>WRAdS1T9k10q+gPo6%%ufS"l-En&*Z3!"6f48=%u^W=f?]@G%ufS" %&USc54>;p#L9>%sg)hp4:Qg!:J$c:A3%pf!(PUrsaZQpp>1T=.JrWD!ULjCT(5krbUE,F_5D=a`8'CamXPY`>m>oic_E"I6Zp39k %+gbcLVu>"t%Ug]H.X$'Q1E`MA];!aQBL@Q0`tsm38%\ad=#($JcP8K'HjeuM8#6+2L(;VaO%m%/F5\NI91\7X'&CF)K7.#F8WFWL %A-s?/iepS/UZGpP7*oVS5?_)-H<5.6rb+ZSq@b2*m8%[3Y7L$hs'-(Q!:>i5od@jDZp.aF+/B.:e,F#`J*9MeT`*9DrfBb3T`*7J %8/WH'&SZa%"&e>7`^0Ksos5p3L\=7(B0#TJ=5@cSrh)@>mFTOZ^!]S[cBM@%Vm`o8H-7%^G;CKWpp@Ma0alBeGC*kj-fF')2-LlQ1>.<>MKca4Ic,$6E\,2A*bS.??>XV])%2YF %-6/0r]u8-?`KhTe#qk-5R#g=.cZ_S+Z\<(8+b]aeInmaHc5,\E%=[^e1U/MEpFeL1-uj5+kd-!@^""sm_FVh$.9fn-Dgtu,IST<< %0_Nc.l4ir2q%*+"/Lu6\fN&e$K@PL`h:'B$ZI%AZAa8RY&#_'#rhlU@A'Gf`@4!1sFP"Q&T^Hj4s%\LUH-"mA4`74]hsr6; %Qm1IEUuOJu`JD+Ko,Mt+.F]+)*VW`@C?qf2%&SQP$*h("Uq0rC8?D5'W@mO>"m[f:5;<@hAAZMsLs$ %jp9p<(>Bp)=tJZ[?YFpC.7^>7U"oU_=1=oFKT]$DRZ!a^"HQ>pJ$?/*IV)*qG`)mph]aLQfMrL;+&'fhg8%bHrP>:NlDDhHPp>qa %OGM*m]&kPQb7X;'IFI9`-!@VC,39)]VWFSb"Qft1>_RWS3C6CGn?rN/cOjXZC*X,Gb7X%(_0B'#G)jr/p;Fbp+D+,tZS_"g+f#D' %@VOIT6KA%(?tn]Q9:(LZA8s,^m&Y(,>%<6bkG_-!YL@OD@?N-%H/7Vc6gUZ79` %$=-^?^]:P1[pOR.+gY%7?EhX[\^oNA8?:Na.-R?Y[tUI;U_Dm0'*?i&mU)3d)%'uVK=[a3eBLhE^HR%7U$/jc82JcF-hTMg*nlJG %$JoI`5ES9X3'E(-H+uOPWSmHHDW7YR`=bGN.q>[=`=`1"[,S1FFXA9lX5G;Lnd)GW`@l(q8<&N2kdncC@fcG_qb/QVnk63%M.QO_ %$``;u$da1Aru]]c.sO4Z9T!".@/:1uNp;]i>JX<:kenRCi.B#s'l[d)rYr50;*#Z=N?Qr'%:kl.2#2]"%Eb9,Jur-)r+aF@Ghn6-(Q`s9^Ujo+k>TtStK(JfFVHD\iF5+7DnFOu^IPmuWp]f3Z[>gF%NIQ5IK/E2GK %PjEe""q?#A8M2(PSF*rXGOECjIeF/M:@qKI%cG;^^\g7/\Ec9/"N9<26s %1qWYb%nZ5c#h!NV9i$dBrZo1"5j&/@:B&X=Rh'1HPb.[TJp0pPs.63IU7/u@o,nU=#NUP8$\[T@QQ:O_OR">U3Oa_@%S!l4\.qc+F9)Q)bU.hBg@44D<2j8T#N$YKTsCRB'1>,PL6B_jk(b7GtR34B#B)Mft5YO!;VI4K?(=gs1n*uM6<2!<3P+-/\l^A %luHBt2URk2D-r#Df]OVWT!o?g8`iT&2jt,\NPi=&?guu7C@;*c:?oH?V^i:mg:rPu%o?$3rce4u;6Nj9`jg02nOgpdS5\"r;EXE< %:1D0<>DhuUj%9f]^\od9*ODBZ2:]s--B,[2bZ0-c;1<;p?T@=h.EZQ\[lSj6/OfIe>4qF:hbo]r69@.iW0IeP/RuS0GW+!tdukOC7hO6lZ3TE*(RAT!9#,<&\2p]]YK7o%Th?hU"\)'jIgE6\<3KTC %]^2e*M[f&r#5Z?&amfp[\XgV9I'8):NlPFLHiu$\2X@P+->$!>0CUm*?%0pg?TDd7et4TpHk2o>ks7g6f=qZ_m#J^+re^Ws8'@b' %DWXSb)=P1(kM.$h>!0_i$Nf1es2WuAmkp-$?2+bK&I)ctD/;c\B:Q)6%lC@T/ %VIs>J8k:r[-$9G_PWWq#LeOS_#$b[30$^<%H`>#^od030lWCO_:F*u.=An:ZNJEl*L!i.N8:?0?IJljA)-GDF\D6&H).:t,etU>87Fn6$i[8Ug;"T[7/0 %=l:P4$7uIML#4Om6Ap08F/AEs;>st^oaUj6F6.Fa]^/NniLXn?Va&d[lX0+YfC"k=mbq_R>Nf\V8V9^IL\/lb27WLAGKO3.aduVQ %%afIcDPd/cAZiG4ONL0n,1>eKIgi7ZV5+GDW=b0QUH_7;`nR_g+DeRo2k[TeqSc<%`U %?i5A51Ul0ALCW_gUfq@6h84g-Y_GtRlG;P3kHOT<[VfC0Bh+DG:3m=iIb_s86glib96K/?HD`eT!Y4RSbZtsUuNV)6@8Xro2A@]'\H9dJM0>@aFXt`dn6C&s2W!WHm(*0Z,,UVbnrhbkBlNLD<&g4,L[Ds>U&P+)K]0R(mD-;(%@.`!Yp5n9.[cHAu\Z$5SF,d1BJ+m_Lj0` %.B:Xgo9UFg5nfWXe29*K2edps)ZL.FAGhs8dC>[\W$[L$4o!_IZ"QP8$LAOfU<:kLU9.+*3p9r#as='@JlRoM,%/nd:0rpmNHpD& %:Km=_P'5,"H7"Er6*>39CsdK>g'&h6GUsbX3\NKE32cFF4q5g:DU:FI)kU]'%Z7B,7`V'lC<%!)<6E,=l3`m%'&[_2)m,l*=H^`V5j*j1rMYPrmW=$02VKb]as_@Oc4#c^i6PjAdm,+ZX-K*abH8jdPKm.H;]c0COF`1OP_V?:pFB?bD"j71n@B)=J-9""3Q]*56k:0;" %Es>:uP?:`OCrI%EKpjYNa#2*R3\uOTb;?e+l*dPaNVZ7U %.l1FVc,t:T=C2G4B-XXZBG;AG\4.CtHqSDN@iaG0R`hE,ecMeU/Gb5^1o/8P('2pU#F]eWbgp&O+(s^-,on'1j5c0oaoZ[*/MB6Z %$.D208-dZp=u,]H"W,YaN^u2PqC06N,Qm/:7d7saj#Y!L9"n^^,Q;\eBuH!Sh\h0#.3$*4=pCK:jHKe*Bc1l1YR_BO.-HcR:9]`s %X#'KYR!5@adBlLTeku+.4)lVbXP:opd0hYM,qW4hNR_HCl%:XV:`:n%pUhfZI5lA(:NsX#8br@U=[?8;]'6\B;RO5%rIbnhk'[o9 %=ag5*5],UDXdA+'Zd`=])Lb[IQS7T*Xk58ne-i*]$Jf[e?0a"b60-B!Z[EK\Sg98+n5AV))0YN1(STJebc?`TmIP_'=oZ2oDbX0i %Gj[8QI'i>sSj4E"*)KLP+OEWmRh5oOE:9mcn0:#0Ue7JX$i)\hFH^?LKH)c9U!T!1RLJe#6X:Nk/(YRG_@srI_7bmqGhotbiK,0> %+pb5hBd#cW6kEYGndH(E7*o\5AdA^;Qc%Nl89dN&InV%K!dG"20TqGmA7B&+hIe %jP>JP83Q-65S7%C0Odk3RmIc/-j$Nk6qo<=:kY)XL_pg\kno9n'Z%Yo('d9%>0EZE780SMUBO)Zcf0d*7K\N%RooJ5VBY&[$\BRa %ifcao]1:I;'bnLVNVpO74W#]SZf=^>:*#kQ.[_Wp,9\jZ!Z2Gh?1Z&0;2@1`to#";3Vi6d-#+KOFh`ek$9!BDGD7)%TXTd#?7(CZ0$*c-q5 %,mP-X0WQc;5>+j<5&.?Cql"M?ebT1(CH`=6-j"T%0Z1hQ6Mai0h_N!pP2g1LhCg]U99,VZ74V;\S:j,>iPZ(3RY/)+Q9SCU9mOQL %[+b6p8$(':=Gto+_ICiJ(#l"rB+lkH&$7L[aOEW$Dj)V"IhOF6Ya=1]*]3;=?3JNHaKV#*ni+te-OO:kLUW,+5O.9&UU)o,:+$Cp %mt15*U@L7jng=dl1HAXOSNY(@C)tU.3q1E0B+o-8Zpp`WTejg0hF&j9Sq7'\'FS`t@SeGCci6K_Id %YGN-*XQ-WeKZ]%Z-27+1UU5t![V0f-=;DBVSOWEF_GGui=Zce=jZ]tG/CNf2GpENQm3I51,$FP+uY %*Zd'r0aL\[;.Ts&`#tpj7[+d4&qf[CjsZqbYFrjq20^Hp*c/4(=pp\DL9.%J<3?j;Ig,4;p#S$=>i%Sq$JKlDkr/Jj[f#YCollQl %g*E$")t`#AaYc?dr\(,RK3ND6NQ`oV\6V?9Q7ReSpJgV#+6;+r$:t+.kg^gb35'd%V %g-7O&M2e"607CC_aW^n3p(\Pj6t`.=S'0QTX-_5.]@5-19"1Y@YQTSZ\&/gSD>"@k\A-Bf<24na["G1!Hs4;OIFbf4/[H3(+Z,4f %d0XZ5^tDnDU8WWl[C%kW5:TmU@r4aiX[>?1##W91`Mg8+0CY0tjD>(uHK]^%Y@`O6pYk`t8"S3ckE2aTX7S(/Y%<(Ir9^ZcgKj]c %]Cu7jGO9fuWV![3qpZ(E?UY^BCuTDabk_"(?rI/(%h_X_uFI-9,LVkld4+8(h$qF(m[01:O?"I>)eTu.e:(o"X6 %[;b,]d!;O*"L3@(#bAkhOBTQ_>F/+Yq5%KpW/_SQa/!/>W1k)@H=^O\W"D'moh!'l;5&A"9U2#J^6%tI:+RJ%ap2*D)O?Ekj\qt" %KsNZ^d!:b/jeG0C=?\4!%o3VU_X^QtI*aYn%Eh7qo!sQn1*^tVJ/q;k7M)ir"mcq',*n8sjYQcb,[pMI6VNU. %ikk8?)Ig#8`+H"VOsY+?M&1@RhDI!kg7hY)59Y"A2oo>uf5_PF7&7*b,O;`8opnR]NDXMp=eETipKI+Yn/#0.WTUHrXrN?(]u<)\:"I?A %aM0+q:NS3*In_Nri'lTE^s_cu3n)=u:CZf-^/e#%cFmtm"Qs?$q;M:9\-P'$hbQEhfT7=NGKl\[D*h_&!O!3!L.WPqmMe)bHPP@( %J$&FqI!e&fW?(?enT#2CP9F=KU/G:=]ii]@c>$aFT,_-U&G,Z2<=Y-E3,/`t0-')h+escm\jMk+(OVcX.j\UJ?Z<$mSp_7tnc^BO %d5.1FHO/AMGq+r;ko19_nceX[n8tc8,%'j9#kg9O&R!eZObK?+kAh$[O% %>;*4:7fkIkCq[V.XhZj\7Zb\-lu?2+jOl0;/puGpk3fdj_XDJum,[0u\7XW`*g]O3\_%*1haL8hLY %_rBjibBaOm]SffP(S:nQq(E_MF?GcA'6lnhOY7)[=<4BMAnn@Df/OV?YOZG,?-cegEQSj\(Ufj-8BMLm)^H!jJl@D].Yl+>5LqO] %PcppuWl%U2q^.X(2`+4E2`gKfUfGl*?()/Vl6ZM/NW6hkJ %SjT3`EkZe2h]=/gWVZ>+mKJrm%i2ZM$?,K)NiX3:Vsn*Od`g[0UFF6S9Q1>K"YE,o=b)a*cr^_jB#353`Bo7@_CTf3m"ln.@$JU7.'"@M]m7>\2rYo$#O$:e %=I)[#Us+abL5WFD.)gN;T@[ISB1j2A.Vg(UcSZKg2l_XK)i:Sda43k;i345^g;*pdN3M,T2[HCEL1.gj2L6c()OSS4TlF9mV8._c %r*&jd\/c\BpCU!;_bZZk1U%W:nES\i4.p\WOr9tBf[>3CEEGOboQI<;R)Y2Z->UT\d_*+]3Z)/;3,L![#;)]6W%X>^Yq0cO9QT^g %"Fb6tU.UBW;,mZ[@AH?KW%%h>QI6sqeA.RH(6]DWUB]SJQUb6?NGjt1CugQoG_>l^>3(Y]G_<=U/b2@?]KpR?>3(Y]GambHUdX'O %Z9+jMhPbuai4t,)]PZ;b<@lpCi\qW2njX)$_="8/aBQ`G+VAVd]kc\b2ZFtfgWeW<)TLM3Pp@sP`_?c$X3XI'ItU8*pngkeM30`3 %1.4tc7c%`=<\bk;eA.Qa#:h7o7Ld")1pW@e)tb+IA4GFSJN#^1.4asY%D9M0S@$?V2=Q@`.qM0+A<=S1\D:1QY+3QP2=P4aDIc/l %W.?lrPo+eA#2[R\+\@eTWgY,DiPJ(@W.?mp9op-9UB]SVopD8j)`@*hlS3+92eq9qb$<&F]MScLmY31La;[#+2T]5qM7c[fDi-#! %njX)$=gSi&OZ0<3j%oe&7,Fkn2tS)R(O;b[hCQA/MS.bMW.g=q2eq8F;'e]gW.?nn#nt;9Lb%s!pBtWpXZ&$u1DP.e7"hqg)g+FS %4!`5uDcHUoRm[jgK(_E#U'MW^UB]R+P+J2b)`8=][$\MI)`@,><_Dp,Dq)QAFq\CThPbuahl_Q5j=MYG65J.g^+3b_hPc"7C#ZKb %jGb(&6g$mEjGb(&6U+"GjGb(&F&/P=8)C1q2r'EF/+Q0;ZI$3]?KCLgNS[M!VeYs]YtF>ho6/]b->lQs='P9#NTJ4W,LtJ93K5Wp %jo@KVk13q-:0L\2$_;]s:0Ij7.s(H,QZI9V2b[G!2g4c-3Wa6uNKsF5^!PWPHt8&IrCPXH5M3Suqp,5L%\LK_!Bp'Nop<-JF:PH+ %ckY2OTYFc76FYo`)/b@$lV9T(5D--k:V,NS%Z12@r:Sl1Er7[Bji(4[6W*C:rWjo2pncZ9M,l>2?BGGk9OuQ8#07iqm.( %W/_+fKi[Ud(9_Q;@Z/E^/Na&Ro%T0/r]h"^8dV'jS$g[Xn]PBJU'HOoe:XbHo*-q[LA3^_4$mlMMe.*QbsOY4*hSdG.+XpL7D`3U %$](ImibJnIk\j4Jo\cN,.D"Xepr73#IG!:P;)BZf^NhWK;)K_h4P0oaIV" %m7>?-l-2dkPA6,]R%.#\=Wa)5]15E(X=j:XATZSQC8.^U@n-B9To'oa?!s8i$\6mQ+ec18l)RUs/Xc#.-+?g;q8j1^EcH\(jaB?9W,Ee(BSn!Eu'!m%(UYS6DXO+pcF0Ek>_md=Y,p2!OC#+$&"D;7+m2)#[F+uGF(\'u,[>B=> %*&k&_\2J;gP5-&#'194cNjQs^Y5,^apB)fgl$,&%#q"b+Vk[!MGL1_OB\tIU:fl/b.Ag/B\fAa#&Zh3p8!dTp4A:F(Kc1JT.5H,! %H6s_dGbXEL<-TJ`kIPFBAZbrF).=CG:*i-W,X&\-R*PuS.p1O3';1:cQeG$2'Z*cNZG[;S$DAh@J/FFqC_V"ag8stR=P=#e)fJ1V %cb3fLOo6Ft`-;aq)*R1Qk=t1Q1OA4k`;qikLTb76PTGIP-E<\V%Ypt/MkN#B=8s+l-'VBDG[d!F5* %j*sG2!1S;<"9e'H(EYk3f*ErC[2>T6!34id8ha]cVf5n];O<;tr\+)p]fYC$N`:K>K(UpOFB03s/ZAIS-uq"^_k!oF)fj_1skQ %j:!-0[E$7qS1uB;1*pKe+^*s'd+[f!&[uFd[#94;n[a.?mkj@ffB/W=c6,u%3,j.R:`u\F#c"i?Zt/T.1Jo:!g4CH>6\2Ij_iO/_ %OXcWR0$D26DSY.Z]$&2>6[8PNHW1@I0S2((pM5r5FYGZa6'0D/j&9pe7Tjnr0A(WZH?3Z,k'HW/U(]Yrem+`$R-Mrh[H>>mRM'>Z %NI7#sX"KdEU0'2aN>[F1d3JeJZ^c6EPhO=b[-`gVLu$F[\`WmY^Gf5;CG&l6+VE0CXgr'/L.uIT[H?nl3N]irJrLHT@8Y:uS%ni# %,Q;qll1F,\DU#TA[aF%WnF_C)r72VSZ^cL"3GX5CSY`aVp5F^b.T0YI?_9em5:f'VDB9+i;I$sdh1@h+)5Mp-d'S%kG4o_0W`s4\DG[1XjET8J'<+*cn-(@SI@N`O2[PNLD:CEN9#hqQ8iMWnE?-d6E^q:Z_s %HM8'rBr:1trPQiG]qABNerQ!Z&Eee"%R5EB<[g3S]Pi?&&%)JleT+@'B%FiUZ'ET#YUOX7a)J.[IZ;/@?dSod7<%2HhaHYT?h:^'`jbYTBtV_\,I: %UQ]*rM@X"7iF%&71(:dV/rdLQ:QF26Ng45eaBt-h2?C#WV&Vk$2?"HbT3'4]'Ut6SgnN3'p;j=b_ko.MXr-]YT$m"N9[*K %\2fILp-"]3kh^PI6W-8L2X7F)!kQD.@_U216Y+N5)"K5hT*tStTs[d9V]V-$IceATRe9#k4EIGR,_Xi)71i^sN_#=92H=6W.i@f; %o5+P/@lsYT4oo,@@:P1pJV4ekbjo^C_[.n!R>&qEW6f"8=ccGQSo_#Ro;eXHElCr:E(PbKb>@ue#5POjo.QoToM[+saK2hsc(75A %cFu/S>;+`jljr_D)YW@"c:3h:?4&?Vh*(C)4Q>>fQ1"H>r5Zj5r`+iPdYh>7eGdJ]A-IJ[$U&IckBSVI4oEpY1E$3]W`(^M#c\ba %)^\Wp)!oLrl;mBc.8FILVPHiY0AQm*Y/E.e7o[Pg,#Iq;8o%^VES=1k-hC4;[9aT_H@C"oZMnTZJW< %92.AukR.c-hSo:-Iked`$5$a$U9ZO)]Yo[_&$Z135?Vj55D#:<,/ai#@u-OR*embt^).fq6A/Hl5"dl9bG]>ce6%\_ni%o-U^`'=FolV7V7@@=L!WfU07TrjS]gJN>s6tbJipiEHXKleu`l%KfSc2AN-\W:X9pKc%hG`H2jFE0Wm_ZiS$Kba4:M?*McXc=`)7U#^=9W6;_ir\T@26:^-o?4?'inc3^kX,; %ZZ=[&8d\:!B;JPZ*Hn-tl`>18R'6ro?>$*5fT&r[niCQ\&@/(iam6%`F^Pc7-a0jsf?n4C+Kr+lf?KRY=RnMRh)%.hiQ1>dgi^9- %'Ul\[3n%Y#<]56:WAdSZWIbW-R4^oC+g85tFIH+nG*S_`guai %/i,F-QFtKM.)qJDTulW%h"?bWYC&-3-a"fI&EIubR4b[li?b\6\l_8R;0ad[RHY/R?>&B&RlcL9am6%`Fm'_L:L7\qY!Z554F*K_ %]0=J:PWZlq:Hq9/`.]5@$%XQGH(FW5#$HZLjE4Mk3dSZI%WNdJD[3Psh/F>r[7(G3+oNU1CBK;E %dpj,I]["Z*LX._M?I.CcO37iIpg8VBaD`QPK(-PMbJo?1aFKoB@q8tm"`ZhGp`HobfB"94V5#g\q1:+H=QR_&jGV$ds:D?EW:WcNO"s%Ab\@:qpi]S-29VI=XJ%sX0LeOM"'ULJm-rW=tW%s)")[hr\?IU/(S6So;aqUjH_;ouH1;skTqU5*ha%Aas %:mXAsr4X/=671*;AEr3=:+pFm;A]YXKfkNI;4QI\fiPUk7KTj=!eI7j$\m^jQ<075<,@!"c4H\+4BC,^9 %:dU""Cr^g&HHtF1)Xt#DGca^C8i64AUKA85?EG\dE&HM %.4Y?0ab&WuBP$Uu/t2#$r3>C\OV`"!G/"2>8;4u,QU<"<5-fRPifbnN-:eb#c8hL@81:2Y$qpd1-"u'_]O8S!h-0[H[T'k'D"l?S %je,d>m1^>uct/RmNFYZu/6q+IaX^ZlJJ.25o,o>G![Ss"_h+-BFU)n%oNL#k&Yk/UTN=u8)0bW\4$apBC"u:YT\%UFN8mY[H]apM %JZe(e#X/hpPJDI:E\MFi`U.15"tdlhk]dYE(dZmhZW)#I?Odi"?Zk=;g$0<3ud)FdN,CZ+jK/Y83$oMn,m_6AG%F %Pmau@Z7&XPEKj2'rmg@u0KFo4!IJ %rk+lA''%M*rm2]RA5?'V6[K6(4ZG*HTfn.O*Y>4Q6[Shn/`quX@7I_.BTF=BLOP+oBTF=BkB%&d%dbuQN-LmE(><8Sm(n(G?tbTE %ZA7;XCn\NiIQ,LFNJWA_(a=;d$Q"pEjt)IA2_N,[>L'7Tnmde10LpW;AuUJc@*VsS+/PJrU;6[_,LInn7t6)9Q*8"$YnltkM2(^@ %,%'P>.2poMM!UO*(no:t6Y(,`q)Bn3QWV:,6m72T5!BCmW7^-saZ$M\lPL[m9$d[e6Oa(g9bB:%%F8FO40=9+p.0h"@&[K0O>EqslEO@[=eN=qL %8*u@qie>_QiaY907B+1bU($38f_;\LSct[g@,K/lXt:Z@Q]Nt"lAFkZWAC9upX'e@WrW*s)%<2];Db4;-np6>;);:oWAXWrBBs2^ %*C=2'?E1H^Gj5E!..I7PhCgtOP9U4(E$#F8(3pGu]?SrGH/\LHPRn1aR`Nc5!)Wn72H6_BBTV %YDj!)I\+-FP)/D/H0YDrr=YQsDDpV(fn=D,3,j42e2MI>e.j0)?$@TB`]0d9F-jRoWgT*il7b %P)dT1A(AYmpU-eTC/+G)m;AZer@=e*;jG*\KB^%M#$N5_!AD4eKFh\ao%_J0IU]0\2#FqtnMI7[lo_OcBWm4FNta)#^W/g(@F$_;\e %K8\"23kn'lm]5[?%`1(MKDS1;Ut0@i*:@2'@KW5=$/E:'lCZnSjl69uYI1tW'Sk`pX%W1ora#AS`;nj"(#!R\_$k'4pB/"!K%T@/ %aQfp'@3So]%U%VXY+9i="j-$1b/+ZE.COO^ZMK%H1#)&.ahh+gd``:(iO&]8SC`a\f7jCo!D^`#=D %a=\9Ve[7USdXsW>S]Nf[m]:.G?1PU*bM4cMdALr0$Vq^24D#!.%9%^IA\DFRN_#=4QWiq\8Yrq*R.NX4p$`'1"#.'-&/WQEm&VC& %.\*o4g0$k-<3Gn]Us:IQS3)l@SJTD=9$e!X&`=@]?rQ.GS&pC97!Q)l.RVOW(:%Xu)!+/tb*+$urDgin"]0Y0JLpA!Ne2m]9mV?&3]*OYe#Yq;ld#OW(87Q(bMk/]tMc2?bs+2)*T7m,c#+X+A*: %M/%L_=Z`CN,%l?4^=9p^_8#6N^ZiT7\b'80nrMa)%H[+7Z8C5&8d=?`@Q*`%FqQ$X&-AG!;2(-^%)>)t;%uCs0gl;@>ttt,`t0E$ %\t:1,&>HY$..WEB6E$j"a?Kl_jeA4O70om/5o^j93*&lZ#B=Pk4^hU36$V\cd/I-oUR5327+r_5lOQ-eJsrG["n4c%HQm^?>+e,9 %](Cn#KbCI_T[,rZ64)3jjr7H.T`jZpQl(EUh>$,",Ef8O^;MCF5I.M!1rKK*VsY8hJ/5R460<;OV":?LK?NsK5Eif,SlT-Gk=:ZD %"WlV"!.dbHUl&*aZF9&h4$P^X`S%97n,,F`9$"?]iV\4ebhK/@hl.!4-#]h:^[m's%7WGC2U1m$ENNE/!OeWCQkFHV+m,8Gc_'2\ %KD-0XkiDDrm=8s-jjG?ufqF,p=.-Hu(V[.Ne[j>srtbS56g]"]>5^O*H!"3'1LNV?:nKIK"=kdY!Mbb:76kbL %(bc:W?3Dkka+0;KDY3]+LUq2._BHsM;94c%Q`ck+E\#RX9BPo0>&HcrHJj^$$lHOCHH.s)f5p_THe97+WmS?M[M\KujA/ObGgDchKgdG(`kJj\/ECB?52D%oUN\Z(UR$;\Cs8NcMf;)]]f2)p;UJ!F0OS.-VY;/$,8V>qS)/41pX[SItmjba6m@P %Su*C_r"%X<%>X/Olg@+;0%OFATprsV'K2l7]iA]YdKD\gSiAY-9%\OJ,&Er!^0*NNQVZ!?%&O!CYJWATRkpbb?XOf8nj\-'Y\+5!*3quA+mnZ#=FFVCB %!a/1-'7J.GBn657YP/.4#$9fTAtuRcfdr(H_Hn>@hK`8Y7$"3\BBQ$T=UF(IcBC\'k7c4W_^bMZBJa^FLO_k[C`Vc:dV6r^m;rSsW5o:fLk6 %3pRr(>"hn>Oo6j*Bi+/O7bA.,[eihM8+#I!ds;p(S>1#o'uY70Cf5a[#+:00MjVkcb:FUkJ6&nK6AltmI,EoqG2M?c %q0]'*&l"J6pU`a%Q>11u^!VVsnU'/l[uICG5$K,GHXFr):3&eqY'AjrrT_rrZ:&FKaj`(+,VnP+8F'!Vl!#JlO/*0f;JI2KetcYH %*]9!hC+1VO232D8H2=$4M1WnbEIri= %J'$iQJ[FtXqJPs_QXlBehpbLi17pR_Ba4O!`QbM&\obR84PMsp:J7#LUh2FfoRN3E6VLLVs %g_#!=;C@Nm,S5S.R_3!tDk7tWa8XS>A="FSNkoU2<3kJi[eqqI8hV7+;Yeh'=AnU(--F3PF%G?5F@MY"VdSNk[d;.'I7Zs/_S.:n %],'E-9K#iULd<0#?o8`"r2_j`K?7kuVhrt`'1Cka]/jTLZS)C%-;"U%C0OR2\_aR-e(_@NrD+dl\NW6h4b6mk(:jR*(E$^oBc0sR %IB1bg_njrVL^[F6c,PY0/^V6\W!k*"u(fsNcm]HcS$=FtMK3M^NFb7*AKq`QCEda+FET33pRCh$ZrXpI;9J@@i)Hj5#+DD+N71b?ic$E.L;e\"^ESc&7QbCW^NPhied-PU.H$_C%aP8ps %2b;-a&:-Q/1eoefrHiuN1H=W`Oe.rhSS0"EP?m.Wj&>Ro/68jLfcRD/-rPbK?2Dk%+$O6i@V):u[KfO%Ej1,0eB.!t]bn1b2gOUY %>l/MuhR!fonEUPNDtLF,En=W3hJU:c-hlfAAS0:`TEjRiC+pYtgB-H*s/!.:)"lNI:W^,R996q\#cQtSGaaq^j8)&n#oNY:pR`GuM];:;QhmoQ_iOPaIkXnL=,r42n]S]\D(8&UA;ISR4kZ#X"F3hEuT%gG"rM[KsejS %(B5rKoS_VQEK>c7hj@NNj/(nuB3BilD\I$]H/(%\lf@-bc+FQ6)fY"br5am:WD]_ZdMP8;0J;0MdL\<"S"dO-#@l.eUt`r6.0YYl %EU,6?l;H+c]'Eok`eB8=rl1\J`'JuGY3mL5/k*A>Z;fHD.-%Ded/=UE8;9^`=YjMsE %@nnHHL=NoP:REP#P-F4,fc@`:X4\q:2t+4]8X#4p,>"WtgWB9>KR9U7DUtFQFhOC*P$&p9[>kXBN?n>`g#[DR1"l#.m[L7[5<[c= %YaN>f-63Wfam;MCo!fiU="rVUkM'+FH"c"#mI[UZ6kt,[n]-=mM*,YgNSAc;75pB_#Ege(.a!l!lCO.UO.4]M.t&]-Wrrp[<\1Yn %Z&RB(i)`B/P(XPNgb4eM,iO;"k^SG2,RL(s-0gUl%a]Y\7LoY*>3Zfdo\N[Y=G.D:1Y_J!L)TgAXn:ZWj[5aTYmor7_N>=X9YR7Q$1d>X%WsF&+%JU"?5D5X0OD7:JG5W%CYK50d&R?50l//rW1E!-G-: %kAX*'?1C!F=]r7;TY&\IZG+!@hDRN_4OmSoZa"Vo3$;OOBpZKa=fuhc<^O;()TeC9!ht\`$:FjrU:^HfmM?7Cm`h=I\u)nYTl3UqGG/B._;7MZ4s#>,PeE>eR!`E&HB;al>E_iDTq&r. %$S=f*$^:hgmTcZT34Qthg"aX.el-qcXjjhG?1k[5n?PngB.Y*+`;mP]BOUsIajtBGC>+*JlfJ`WWq"[ZCa:^A+JH+p>(FcBJi&l3 %$eL%'&+9&h]988LH]V?6O=W!'fRq,0[5m-,Y]o&_0uAUh._aULi#5g+R+h30\J!e'8jR#_g_BgX/3=oD %j-Z1Xan"hBI6[W$4E8FDYP@q%#.$E>%rK"^5@c'&Agh#E0;3-09Sk(%k4O=j34`R>7X\irBIXO^?KN),Q9D$.PgNo4X&c[uEM872 %oj+pQ=k4CJq!rT']:RdS,l(c.LZ*9fcmp?>+=UG[.to;us4]Dd^Auq.9OQN,6Jk]+W=IHQ\t?c'/k@0.O`W_XNHpRU/4aLpm?W34 %'Y4jj/:)j\Ab`\m[H,6;7L^20=u%B?,l%LrYj..>+NYERKN0*e6.5:SrP7[8NHEb:j@X9Q,j`oa#G%^hD%&Q-BfjrDE:A2\c>?^>i;'@HuJ\JS[3R\XcDsr'kU0k9oWoq\%bV^Pe.e(;7;:b#.Z,FY'/!d1SUKB"@a('28 %qA`NT[GpB.08D#h-]!A`]3Tn@F%$JYAUVfiq=g]afm%Bdrdl.'S;G4g1(Fu?^Z_7-*-(;<8Zkj\+sQ9F8V\O,p5ZPHr@ %T/:g=UguTC!d6P:A6sTWm("W23uhVLSFgcLFu]-/<6 r'De*V]O@20"iS-s8ffn^q%EQt'&sA@O[W&re-Q+^;/aYR*BN]XL(XgK&ppNhL?hqa$U:O<^QEN2/L=30tH/RG)g[R/# %`&@tVD1o[+]]*Z/X3%u6W>>OT%Sj$Ur35K:2IN@V7@f,:/rlDVp@SGeR7`6JT2bQ&pJNho@>N9QP&eSXMqhGcA(slaC %)2+7'=k0Hhm1uZF-?Hr4P1SHbf.r^;XLgLc,>@$aJLi[,uiT?t74("q#NqMV?0\7p!pYUD&sM+mMmhDXhE4&f=V^]Zk<-c %0Q32d3mM8qg@!B%o=PYN/:_k^VN$E292uq.>hMst$9(-cQ,/IJrU:Nh+09E@d)[sjg_;a'bDi(YF/Q<6/nI.$%(c\h]?pc6KG:Ci %p>q@*7tK3Q)P-PQ[>5I'on%ZpX=J#9bLbL(YkdH,Ms](UIGLVMU,2(JBTTCq\cG3i3f;JGO6;X5aY)eD0;G&B;#$6P$5T7=ERlg#_4hB/JV)tp %l%"5H?tL)rK3?+S&>V?i"\\iBUlBGL_R*_8[Iq^IA!:)C"I*Mj@%eXCh.n/oo!NmG1QV6S?=FlqO:] %NT'/l'B>;L;1.rEK"#/[>FOoZ_qpmMV/24DGHHXUq93t;\ilhNGc/$[oJUWJ-"r:]]DCCQb.'<252Pb.h#UhZ(0^Hj]hEkS-2%A= %WB=KW3fdc3]42smZV\,BJ>sd;AtbYEYdU'5ZTNlb;NE--Ia:k3QJ`LQbo@L@=G$Jd;t%%Q/5,A@a<;X<;HV.O$2.FEbE$rHQ14T( %1p/=_2)#?6I)fO)JOWs"1]r0<_=llu3TlqI:ALZL5B?h&CWTcFp2Ak=/$-.lRmE356**/cd-_(nZG %jKJda.qZP`oRRh9P0K72(NNW0`>/:bWUj=^J&P=F_@B5C^B2_l)%K=/3E7=b/A_=Cs5)pZ=O):K0ri"J8uITe`2`$bmT^:0e3[O: %D2:FfD_smcDL]X\du!kiRKI?5#)W[FgP]A:%O##>-BFs,C]<1bV*(GElEDQ9,B-C\MEC`Q7Q.NEi&5>RZJt#Hu]C^r"02MT3SX%j'KRm)[&e; %kJBWSfa\l#es9/fZQ3M`V_Mh1qVAp,*jW"?;57W548+HKk`1=am9g.f1Kfg-mBNdLlo'#uiB8#"]?PGBBk#0N4,C,q@(/X:\E3&B %Md`t=GkN_NRI.8XK%Y"FlALOfc'qWE@CNXfS*9e`*AcGQ:D5+cV6eo!71c.u@4c/$2'*Jg>I+,a;\\5hAOOaYLMhcdYRrUrSTCg0 %d4qu@pHBBL>8qt\ZeOtr?\"Pm\6%._V#?QjSsfXoSTb[/S.h-V["0Mba*2VEc>L']#jR@Pk%5H_%pY2fVg>u#3X+#==u %!=$buU>d76d!/a.)B&4go,[4EmP=*P=DgTTA\HW$SC)QG\rm5W8F/Di)sXO[7/E]qE>5"@Fc]j#\\`3'aAOG %JtN-j.a1*:MCObs@nh[1.OdJnJ0>Y^k:A<#i4W7]Xa_=4o%uC26m,W_T.9n;92;e.:4erc@%J/uZ2d*j!7U(u&nt9l.S:nEhNoKD %O_3_&]&P(6iJlFe_/:.&$)];uqoZ)_5V0@f!EBIUZ&G:P#J2SpjF-Sd?EFM:p,Ae^Ik6tL[[f0IEH^XaeHJd!=6m%?^Q1QB2C^Yf %C1@49:eV.%V%9/NLn(g=t]NI)PG]G3I1G#@EGP8$jNS`F0I`[JF,r9A0/^Yo6E3?'tU(^S&LqtDn4!8,S7?'`XPNF?_qhnX65o_l] %Jjp?)9f2aMS=Dl)In4Ee'.#60h&9TDT?AQ:Gl]GgI07gR?usD,1?,]sCoa3jb8f6`$:(+.'<+-O?ltGug.FaV>iSgkck.`#:]SkS %Q]'D$ENQn>i4%,4@KEu!m3+*'aI*_)["l08+]qs'Z%onqjq-)s;bsm_W9JX6b_Ud)L,c_/'1ZT&?%Xlt9tP6_2T*Z`2:o?+8W40O$5lg78Mb4DO'uY_gk?0H90eS`;_42H]Y*@(&<# %\"Sghlf_\O/(6cP=j=.6%(m9.)\pOcmS&c!r/-u&8EZMRq3C'H#%uh@Y][^TCOW[('@prKU2,38fDID>#!pM;MQ?V3]&m(am]a90 %UMG=4>m765Q.Gj?]5Wu%fBAZ1'pYE1J4U1Gr9k[_M8@F0R,+sn28=1U,mcEC#,_];28>$G#J9"IK>I[q).$gX.P,sK9&MK..kF+[ %@kfD`oVLQn'%+peo;gW1J-]bY*%O[45K7,C=\6\*AtC"d?[dU_D.u_X.a4P>6/"/5"g#^nfGD %Q$%A1f#b2Hh/F?sb.qb'.4Q:%6-RJlr0Jig9;7\/A&_-(PpLRmMJ?^jdn_cWLkMl]FC'c8f$eCX(B88hb-A8A)CD\E8;>lYg8rMr@EO)FFns!"2MEOP_qIh?U(\Gk%&?+:5L %,H6/=pE[naIoZCMY`[GM3\sf;!Gj%SYP>"l0;-^aUJ'[XU'tJQd!cbtY4S5MFP1bngd8? %Pm-mimp$XCQ%aZZ-nBtsb*kUXiNfa/QcF#UiRt\R>$g7CGh!Y(pHj<`ODlUX*-":NOcLEij.9UNCI\6^irH2hYNJY]h5S^,$3OQG %B1K7P(YVLAW=pDS?H_`[rS`*%C]F=;k*&'7\7q];G&%4R.M(tloFZqCC0eU@4g^?chFj9L$]h5i.5\F%=`8h1kWVl:s-@lfS8fV, %"_GT-5uR[C?2Weir.![2*&$U2q8(WVi\0c[hoNDXBfGKaBbI&0`%0Co:P6c+cdFZNg[s7F`X1G)LU1k5=;\Z?1s^kVI!FtJ>,ghk %[I_uJqqS;8gEXA8TWXh#e[p.aB%UrZbpo&EJ\UF9?Z#R9P9^m!f?$oNK;=2chRell)'i"TaQJ)72J(Ui?Sd %PX/q?l3;HO'0(WQ^Ei+Ec?]/JnL`q/4[P(iC!%Qo#AK^ENT^4$5A-'G)+d'[p(h_Ue#Ckl1Q%Y[SdYLIihhu])gLC"UkHe`pSRFbH1umYLdAScTHfWbAqOTPgZ`)>M5h/;>hHic6f>jA6,o8Y %f6VmnqLfZ9STmBl9pfJGE'9&K)B8XOp'VXXDq8q8rWg/DGRaX/]qi"Eb&tQnRuNc@n[gTU6X'lJ@>/c@7uPNle_K.)*Z-Kq`#C)K %X68%t:8a_s\!)L\Es/Rm>>-6c1[*Xj2W[Wi.,^V2NLO8qFd+DB)M^s8C^UcQ$s!&ND:Z$Fqu!MFWU$J-=BMfEZM%ZR\&q_U*BX/L %]PY>u2mPZplY+qCb;r"]AmFMqZb)",M+>3"=m;NM`.*/^k[+MO>o^d\Fa_`Z6$IM[Z]`]23U#]*i[(;9)6@6'*cLZG6riLNV>FZC %A&kj+o.p"%YbWar=/"^pG=3\gR*05'X^>*>fjRXon-%qlE&7\'r^kbI6.$iFiJo)s2U^N4RRM#]*8IPQ`A!L0a9;\RI4+5O^&@@7)KT(k1,edhr*JSEJ%Go1 %R#f_8bl*TV/-F6^,gIF5AH/bE!-Aa.F6D5-BA?f?i7nWu"r*^lr_c*M0@1Zk>F?E:oE+a,,";1Hk?:fLTq\i-6]'mGLnGRJZZqa8 %,gZoqYB!m0+QruT=)oWR_a#lJ[G4]K)[Z/R9&$4%n!Cr&l=gVn1o;SA,/\Ls3-4bI[A4_(oq-"![F#3C.a5925hWEe=(hPaW:3jTNiAn^'kDe"(J5e,Pj2$AMlsVDuPXJeK%_&UFI,!hQ3\ %k?uN\Mb+:t5Z5sY!JQ&1.&r6%i/o&h]eK1h"HnB9:J-:HT_h/u;G_HR4Zr?P*igErV(u1scV< %Vajq_Msh(\+'E2ROE=63HqV#s$^Y5BPnZ?T-3Zt$6.!^48\s3t*3@Vlk6B,*b?gUJk!bJc,_[OA,QCq;BC^3OY"RHGYjhP/e6&qt %VX&9^K$G,E%L^-dn](f32:*Wo&9bWd]"k3=>1mT-5AKNu=Qjuhf>iA/Ea2F64HJc29#ZKfDP[P%AYn3Kip=JY;0(ZJ^9A`+>"0)? %oS!IrH'&p[[*Q99/84`X990Gb3EG_1Js-MBRm!jR4B+QeS040$K'?HFA]:jR5eVoh$$,8[oDM"J_3-U*L!E=NS040$ZBHcN3'f0& %L"=B$b)0P-.;J>\QCJ74=49)M:695m$bc;Pi<6]5eO8r, %^u5`k_3-U*L$-DVB!C>i?s,91e/9et'3Hg_r8JAlf&WTQ#&EC8;/biueg/sMNgh.+E8_I3E$\-Z>YnSjB&\hH?LbAUl$O>9XEM8. %-O4U1[71m40)&)=%kCaeq:>HUfiHm,2PFq;m.+P0Ktc-ZCb$eM^kGQhR>a5lJ.(6ae+@"C""n7mc]Qp^-L"&^i5-kEJDMt3YOp"e %Cku,5><.SRlMoGijn%l-BM2F%6%HU?VB0)&BWP>iNoXr=fjE>u=h'94S6&L`G3QiQpL2`LtJ,5 %pOl!+7ejW^. %uK7$V8P8@;O8*o`eI.@%3u]Q4*'&N8B4Y.JMsJ.I#E,tBB9"*$hOSV %d'(U(4'8,JDbRB0W^O]]pg=Oj6R!W(i.Em8C*^:n+05M;,DX5qXMbanb:5&(G@O4XZVLW]?qZ&r%lPuK!Fm(!%5e/F^gQ\eCiG$U %_]'o3@5A[f3+b*E)f$FmAQmN6`>7((-Ge3#$_DbCan1H5d!A5tbf$D*4A_,n\BH^._' %'W`iTHWoF>Qq-K+f5)^SaN8a%9#VJ:r$ed)W4-X\lPiT2SPCHHL(I0LmIaAlf`=g>1B`J[q5?d1,TsTc9'(Z %&[k$idC=@F]W!38HPN&'"$g,u*0_HIa3ok-#/L3!_AYhqOHR/"holLu\T<'RNcmh=nNcQTN_#Tt8s\EJhT4J8TBW!^)X5;%j,r3` %-RTgfcMm0U,NkT'8)l^m3gX(kFQP,G`HFCA4`sF6Y$H\thIlL7bCIerkZ_NZ+iT10,F+r[K=-O.n*^1jI8=r0lL#h/t.5;LjNSg0(*JJQdY-VcTUb?seV&6*KL9d!=3@(",&%ro=%6:rlfkR;2hON(TZhSi %BLqiW"m*D9ABc6Z/>rm>Ls^k_)3V><#""*H=@.$dZV0!\')[l5T*8ff`[/nQ9j:GRAU))i)-"+'Z- %%SWhgP5,scW+i^IKbPAWjSfkOrfENb.')&,Q*N:J?*6jZc#&!)Fb58iT-+-Tc3oRNTBtC#rU]0:s7V[tVLns(Il@PUrgH@rc %E30Bo_RqNXVdI0X2DToKI[qW<#HMjQe=9'A%Oa/MWB$*bS>$4bk+$ML(Wjn;1RTgP-^'me1`FS5c'a=)Ed@8#CjDk+bE\L5Cg3dd %>aW_T#)Ora5@Pqq4S!G4:@kl6Wd!kG>,>8L>l!@WF-uN[YOjW$I\c-%in6&Y5;cgmFhD!:K.YdqXIlgTfH]5ZgTu'#Q@"UCEol+QRW_%H)RQAiT4$\3J#Tu)IC,n %Ma+lnUo^3Q^Q@C8Mcb1S&a&rdKAkokF?+6*P6EV;U<=FOdb*O?<-1-lIusmf2pp`2?_%oR\f@<`dbs4dF?,'()\-1L?$7@`.M#iL %F]1u\jks0diT9R:L4kmldH/j$/cg2WO/I-^PCWS;JpXT9bYuj]%/cnm:FnbGj]GLH8'2r&S:87>@.uhT#@dn2Y&h&#M8r %Zm+--qc`l0I0n^Zq1Q0,.1JcU)T-*a8qNC.dH*($.1KU$UGg0aY"?RH*V,5=,_^eWkP@.$mgiNJ'G>Peq2LMJfG#?YC:_AkT^_fjmA>.+nUZ3H@>G$h))bS=q:M0EYg1YCOOp! %,K%\<1j$:Q:R2#7VkVAZI7m0$E[nZU8Tul+b8Hph8+=6ud,jJ?OU!P;Uh^";T*QH3':SD\XY^oCV>8p@Z">irs %l(9_48d#`-O!WjAr(Jlu9F";=JE9IIEcq;+acd,R^H5L8:_MKMiKC4iWi,\ae#]7nPFbjLH7G!T2)0$fotpjn_R7`pVkhW^0mJ9q %hRBX_XL18q#WKcIe0Fgf3W8kK/`OWTN71/oUbBEf,Ymg@P]Ss7Y@k'2]5.H8TRsAWdNW^r6(E!bMH0! %?g]R\bQpN'nR*Gnq1qEk]/Och7L11MF4J_mDdtq![??[bE7pePUrad:Lg>Bp.-<0"FG3'bs1=8_(0NbcH5V=Yfd^hueL,^3"D2eQi8W]N`Djtc\UA+Y"V)bn5N53L4KBJ^0qdZ1N;&W`f7BdZ!# %MipQY]SF?A77kAAJ,)(!BbN'6m:[E6#i:n*F,F^1lQps9%JF2-5HF.u2!g.B[U,h#dtfe)!MaArT,X9tUM2D0rchb.GVfkn^n4XO %*_k\Z(CNHr#2Q[!`&N1V)80BDR%M$dBo7e'e&%'@EO%7DD9P]99D0'<"RKp+(fU4!TmT)CckKCJt.+[-'N=l#(cpJCEM4^Mkfm@X( %QW1d55gVABK?IS7+f2Nt-BLC!clm.@D7n`L"`lYn>r_\aQe)krHS+mE*2Zh2KRHH,1@Pm?#lB!/dnPp1,#%Z9cWUrSKRMTRGh"1V %7+g\?_6,Yl6ob'a=`)=OaqRj+`m-\YB'ihpUp6,r17X$Y*&R8q.C"i"iAj*$2"mn'ZgKee:8Mg7mLOJ,BUu:_mjl.rR_RE+>NVf` %IES=Vr,Q=tQ"BT^44n[Y=l'r8N0H3Y6@,\t1-ZO$S\dJMO,\&UU:L?Yn7qoEjnI0Ca%#0fN6K3*CB^L?hNehWS]'3/'p1\i^pXmT9Me=7SJGl^o"'i5k4((Jj< %?K&Nc6\7KU+!upf2X2gYRmt(r?)M-A_1XQ4M4MjkF,(^4Qe/$H@sVF!V;BTqd?:9Cg(ZRZrEia3!(R1TQ01&;p6aa*2*Z#fXou=L8?&`_J-PK]55RaV>g_&\D!PgK)$a-/-2[ %k#;(i-dmDmIBg*,E*Ol62BbD?+pKHiC[>q//"iNJ^[_p.-:mA3VIi?U^n"(sI*1)1:TWjG3=#qW+:D:^D%_#"M<%]?IBf7*#;caZ %^6eNSL%k:_#gaC'@s4quO%\i4WQd[5H4OucU %7F`[M^_4o`6>I4:NRbG=eh4&YG8oj_B9%c6[c.-AFC)E8qhLEH,ejg+_=g?prcW@2AbhUqfn;;HlD`o_I:m!$l!i&8a6c3?I/WU= %HV,n>Q!(&h?(?p;IhK*O^WZ*p>jt@g>lFDh_r]!i4-.u'bh!&oU#2[jX(L6V$"*#HiM#[ %lrhWTb?#S'MpWOUmDSoagF"h?>'5;l2"oh3LuFs1pWpOq:BNcUTl3%:Ys4TY7PkjPbl1u_(_KdbU!SU%O(?7PQbBFb5pL[d(:KdW %gjouT_kaY\.;C7fi[MQ*Qm>1m(1pT(UApF_J.XBuXMk*GOscqomgl"?&Pl^"_=0p[gE0*e.Zf@JgE0*mC;P$cY#Z^J125eb\aeb&CY8nmE"?WtA=hK%XZ48t5cQ+8'(]XUF/l1&F@*@pKM#C*Q30]L:1AulQb %P>5]AbP#^75-I^XR]unEA,#`kh\jf*eMT-epAmEn[*TFuI]+)_YjaGAGS8gK0WX;B6NEp\&3CR8a<$ %mZ"iY^t=R\luPA&#Rn2/7Pn90r#\+86tEUgWt\4'(UmkQrJbZ$rKiq,@YLY6XoC_g4t$DPlG)6cUP3'M9W9=YWZ'#=;TV=5IZYtAHtDGNYp_Tjo3Oi5KM:,#GoaeIRL?u$;jW\V(%_:/nc=ep!mJuKXG]uoh.JuKVo]cWi8&WAo,U^@9S %-kUl@:"c=$mh>#T]H)!D?Q8JHVda9c4,4/21gR!K$bI9u>MTFke7 %j4??gf@()YZk]YpVR_HgajX9M"\g>B8Y!5pg]Yb[QSiWVW1F5u7+51%Dj]Z.qPLBp>EqslEO@[=eN=qL8!neIAS(Zb;dO'"-Eo$:1h?m7TndQFLqCE6L!sg_`^Tr$g31ctG`$E":J7mA?TFOj8h`qH$Nn*b^T5A^j4mHFlm`\er %\%9).0'g0sXKDUuBH>#hFa__OF`A:)0Okj?lJaS1+EnF?lJaS15jsK6]"!\O71EsRE>`&DKFDF7E>`&>)Udp11:eU](!>h$1:lC9 %QJ:uL5Wb+TnjP=FcuVmZjm-M3_dIS;0.+0iMrqdqD>>B$7K+VYnWpAXN\C%$_Io"cnjP=F'NK>"(Wkm8,p?jl'g'T7=MmN,lgQJt %($R;WFBYH`Q7nEKKc:K<=C#B_(T^XRQdKC@a>-u684JrVL'c],[<]LijR)9%;*CFR%HR3(D>>C;#XdL7T(D]R+n:\qJG<4o\R"@# %_>r)OQDg+t1#Ttd6s@;qDAT+B#_(C]:9JKag[,uI4%4;(n:Y)7,8+4p/l+\^=teJE!=qEX\6XtAichZ=?*JMr\)iP/Ft'HXQ7nEU %"hS_/k^pWgQ_KB4>mtW&\tSh$PE]5b9jA04&D!.&k^pWe_$TQSMC'q\mY>GU--ugJfn0"38>$=pZN\a&9F>&Zf\&SeIOTBT?t[YO %dM&>_#."J-$B7#N0_k2>\nM9n>WufDfhZd<>L7Ok&Ll]03En:"MMuYn?tV"T2?,S`R\*1gKJ.J5e_*i"3HW)FB5>YlNhk&0T):?A %mrgG+&8O+T&%ltkWpF:!'*i40%\PsZ>rAd^(t;M*qjpa+qd5BkZ^0Mkps#I5u*dYcbE#D$O0ttkd+)7-?hCa %Ac;2.YY>@2Cn,mk(cnnV=h*.p\^SRA?$iDn]+r)Nr,TVp;!gt*Hq(/V/[`qYp]9^+]?Bt)Njt*?3Z_n2]92Ju?or4eCqP:I<8?[H %VT6ElJ3e6k5S@Of$5dk51_L@P<5@F&V'H4!80'c\f9e\=+;HSdSn$!#_9:S!/9Nlk;\=Z3,nsOBb5rr<59W((28T@":['K@]>2/#-!,=paOW&K2fYE,Qf\'0h;HVL@iI+Ldei*p81>6HZO?*Yp=jpFH_%sE<\C))n0JTmqI`#qF2OfUQ,P!:oha!ZBSU]L`DFX%>M83NlnN*.5T`#poZ2m)fX %&;*rtTUG,0KG[*!2c8"dg8uIQ*o3uN>?iVWS67H1*>r-g@A9%lGPX4W'/js8q<$J@O.Mq,q\0cZ?HW!&Yk %Bfn`^5"rg_"1%D%@>:QN%r8EjoGol+HFnR3-#$DEH&)ihE7k`)7&t@k84OSmdrCh59mX5YT$`,-BGS^o[r6,rH^ImU7NYO%qtPjO%@D<)Y'3BcnAa-)FjBRQS[W^>6Fh=CMT$1/q'Xkis\*K;RRJDFT`sp^@_b$Fa>.C8#Cti)tN"0`]Ilqgo %6jblkpQ_R]UOsLpBr7gkE'odFA"!+D>i5,>N]ahFpJBGZ(N,QQKcBk@T4t-VH*C/_%C&f`%/b/o&KTXQOm70n_QDM[0XMAe2h"R?QiKS^I^LuX9S>o>6L:u]F?XGJS_=-RL[X)dW%I)3O.Ui8\Z6^$;p %?S-$K5FIYP;9)gchiVUc72fho/CV2BEV(f^DB`Z"Uq9EtMmRKo1Sda"Vk2_AM*5B7Z,p;[/bB`6L+m&5qb/TT[2K-P9Z(45D"bV? %lF9/$O^sY)G3/7:7pk[;BN$hB9"CqoEiBZM;'Bd3S/mTpNXJ(8ck@b[3\G3=loXBmfOTjXE?,k(aahl5XQ(MZA=9Knncup(`k")] %As8o'XQ8%gP"c.mE,oU/82_@49msIj?S*%u(1XVkcs8)"Ls0IpZ/%(-2OU:/,/0.23-Ntck*'/XpmSM1n4rGRi\"Z/Cbh7k(1kNu %P:?j-s3,-#Ad]>o?KiZHFRnjBP;52BIBc %)jLJGCbk@l\;ddj2VF/#@%.S=0oo0IM+r_r0XGUJ@@I\o>B1dIgEt*O6:e5X0Ad74fI.E?aiM%#n%sbb+MpJ-jF=Y&.ubH\!P4RdGqQYCPWJq^7X)P6gi*V8-@8ZpdBX,oi_2OPpguf4((!PAGm-Wc& %YK#&+maiqV];N8P$'1L2%0iV/qY#I8+og12rebsPZZ?=Zc>BPZ-&[+AMnjgSX?0n,*,`;,GHsb.BH+2>e>\rX_ZPlJS*fjd0I-Moad)o_8;K_"^Q5UIGiL__:Q(KSC:R+3.AJS>K7^bHb$%An- %&qVXM:R*V\hFVa#gTkV3Io"A!2!Gp7id5^[-+IR;nYdZTO'Emu3UJTq_,Hlc=:d\;QI+JRQ0 %BD3stefo[k1Qh9_iUc7PMbN:o.M)IlGu6tE&.qeCd\;QI+Nh`IF#*/mYalf'T@LHIK"a(kjJ>Z:/pm37a>)>JYfjK#Pb3(i/8mG6=T-neM@>M]H8\&]qcl+iUCLs?2N5@9]Y^)s6q'\ %&Oc*D(%`g[O3[Y!e^i:M1uZg;pLUg^?/c/Pg95-Gd';aI7I6:6!?GhHI5u.OPH8m@I:(9G&sF^flMGUD0g&mU40Pr*Q[K]sfH6m= %0(\HTG$i\e:2Q,,9>7LE'Q6PQD$^j2!jTJ,boE^kHBW1Oso %1b7^pICsOTJBdgs@)[qI4IG*h4X..?A@e#$JKF*ggTX%LJg\;kg+_e603.Wl$a?;=k\8k.[Bi\4"nG2;p+2r>(r7H1^eg:q0lhG& %*U-SbjLJl]oXYtN=F%FS1u*T*^?$%>pV1Y(P0Uu,%r'ZX,TJpOIN#BR,kCJEq.[A&)YT3_o1pigM;b/<>=iEGV5>Wc9jHoYGA %]KBGJ)QpKG'_,3Dls5]u\^dSDgm(a]DE9UZQ50Hb&(d];U+c37A;>_jMmXBL%p.1s:P`'Ji8l)/@tKFo %6Q4fd_+Kccpbl:j)-`C_Bt3qDaiVH^f4X5MN/rb;:W$13INC++%2YUG]KBHuBK>o %iM(+HRto0__o6Fr:*)#P%2VoW]KBHu0jiRgiT9%hO817T57a*1bh'&;=Eq@RA%j:BLl[=,NVQVIo!S*kFkA.eKub*H;m\S?:*E8e^jX6qEr0$7U&)jTmqseU&UG8CO]S'0+s!*k:ZVko=``Q?*]NOF*"(YD7+OQ(@3s1e]o.e'+>SD %aXYR.(UrE$LQj5g^X*h6#'m'EG&r)n#^E\cWLdk]eoqnLS(?*)"?l:_clQQ/4F&bhAtcq^EB<[g3Db:l& %o6BY1[=3n^r2Ef`HEp"9riX$8Ie`?\^X%qb7<%]\In;k*DY!;05CjAf'Q(KS&o\bdEFm5 %Nk`pRA*7>sC]?M"1POZ8;65LiL>!^orira0Ju+>F3JdFq[Pqil5?s*3=8G>ts'\H?J+)LXLdedA\#eR6DP05$UZ$]V^Ra!&5MorJ %#+[cnl*9I!M`6I')\A8gl6#6WDf_KiCjDlQ5MSFf;:tbPGr!"1QP.@R(r!"1CPY@#' %i`or$V9bf%hcLSHPs0g1X&k0I(U%X\Of5ni_oq7miMQ&61Nu!>O-.#sceMN"Id/OMF4YfV#Sj'fE1SUqP=Qi(_n7l#?^OD\@HXb$ %`ep+obKnst%H;0'9<.396k&nhYL+Z]GrFVlna+>0FIOm]N3EI&W/*KWMSgW&n""\5R.Z;0Qd% %h)g`KMk\/"jpr8NVi#qN--J&.WBk`As,e(>Va`rA7&m>e48#+Ir+%fbGA>L\I)#/JGPPa4f%pQHFZ7#0H`>s!K(j?.e[iM!7oM.[[mksTlF1]?W'=4*ATa2P%!3+_:l+-CY-nG!'G805?[TYL$/;R9iu %bqo!9ce=jZS\BZcH%o;Oa6pC"OB9q'7Xf+=HM5^.g"sF2_j^T0^;)(U2,>8eYh`.(Q>d4^4b@FPn?tjQ]@Nao][.W)ea>s1FuB''%M*;W\R]GIa\C %;W\R]7(K9e;WcB\;2f#mg#&5A1\F:Zc-R@uEpAeJRb9KRdSc.%bbLoT:-FbF1NXp9:-FaqO5Pr<9g+XpO6B2r@K>)JH,P'6k>u=? %IaaTBJF*0/5/s.HeDibJ1I="Dr%fSIe0B@?fhk;X9T_O!8i"U;CaaS.8!7;X85DC3$o=9$Ll)3aTO'u'B)daf1eEE>n!l@u@HM)A %JI!_aognIC)XX5"PZC%6H[eJs1l3oa2pG>Vjih5sA[8!P2V=(5Z.W7jb4lDO\qs$Ui%[B-`&Ac1i*mG3H;3`RIu(o#HWa]^G]-CT %6;qkofMu;c4L-&k'R,3XN&U5caK?9NesVZ^%m3bMN\6?dGi4]&G6BKE/au;j4&0qOL]ecuO#:kiU]hg=ECY("/L^*JZe$J[.h0P_ %s#@SBSITR%8I7lKA=$,E&REM]%-(+\eX'^/P@/K,V%GMBEY=>p?.h;q?iSYcbR$aV/N1)5U*m^im*]>q^9B++k<9?4rA4gd-0_7R %&_Tr'PE8_p9CT_7r[dWZ(KLk+%FH.jo.Hhq00^t(ZHr"9I67lkFIi/$Xf_E&[<(tucJ:O.g8o'#7G)D/AlpT6WqkJ^(>.:)gA]XB %=fOaOdPL0*UT0="eq`JShUF<5P?]gu/A?%[o3kbB[m$;&oIGWS+pPH2IgS7[+lnTPJ?n+K2c#lF!q[ZpI'4V=b@Z)eo^o%uk&bdr %j!H,:>3V%C6,K\1O:q:j>nlcU:Ifq/B-\#piY*4GV-,\h`91s1k?)8CP3K*.:/Sc@DiGH2]:Krm8#!ehY6ChA,#Vg4lfD1`[q8T) %NLX%^6JBBpeo!+iN);`3'G;AFpq4>2>1:jUrhBS;koK^E9BJHIpkLb&<=JNW<_\#KXu&G%:KE7m'Gn^2:]Apd7X\j]A+i<:)FlWZ %Oh^@!ac"I\bai;_4&#Rm_u25^7jN;G(dk)(DqB@8%[2n@C_\qgI7sfq<+f/N-Bc%MR0g:Sbnho00J.bhbkL7dhc=?YNc\](JiEg-,4g %W:u]]p`J_&N$OQfnOWTo0O7D'iU"92tT8ob2Q[[`ic;!j>s %r+bi^GJF!lf[JTSo0c'[>XY2$P#iHRDQE;U@lhm^6&fCpUDM6tlg?`X4;BsG77)C.YZi[N\rGOs3TfT/DRTaTdcYbp][(d;Mcl.k %rS7#3?*o%24Zu'a54P="^@cQ%Rep93Kb?&i-i5:O=R54XU.mf@78l`CE,]j4GUaoZ-Xnk0`NOM[NI3*$,Y79mS@6X\9RlTYI\E#> %D>L:UVl0bs"MW>lSki5-aqA>R1/HJB:4IP$^Po#Kmld\9FTZEHgMFuF<14b_>'r',-%=H=7WeO%.acDE4MHmX*hlr1CfZjrL=\!j %#'6/DAXU(:^?I;".gp\qSC:jCp-Krocr3Ka$^X,08)S0QI:K>^6[*F_%9S+e;6CnU_VC6d`/j8khK>^*R %Mk3>E21@CdpPYlGZ;*QjHWWZPCr&A?qs,2GKPTcbgWAC\/GO(JMl!Hcl$LJ#m,9hSBKX*e3?UEd-K>r& %-efN$!7)c+:Q!:&cg^Z%Yt-00Fme[Q-'^_s,-_if<'ieWLa?Z4<8W\SR&(G@s$7aKjK>$>,GOYs,<'G9b2ndR-\tf.U:'+\P"XaL %'!im*:B,K`<;5Cl,)"<9/qkf._1.kWE[b75aj\$X1CY(8,)j6#DsDb" %Q]eQ3dUK6'9.iX_/mZ-[\J#8O&TOdpi!VU$D(DbAp7OUEUZ,0K)+lLpU(s"cM=WT]/2h!=Ar^B$:^MK]MD#/#1(d8-E$b5kV9C'*kr3;;)G=W\[.6:"9QJBBUApldV%)Q`h>.rU6*#Gu;V/q]at=aBJf-(/)+dAObh#^H/Ja%@[bShOg]XVi;?jZS5sMAch.52dQi_D#qiBEdDOH5b&K_lnD(BRq" %1MEV`M(nGiSjOZ,)$XF(PP(F?Q/N3V_:ipeQbW;FD2'fZjZeqWHdF7,5/%nQb)`;g_opB,C\JpXK(j^"G^7WENpcj"nF@Vtkao$d %CXo0,h88o'`6>XF>TYTKbAT$]7"O8d#'9^[;rSA8 %%,UEcJSrP6D$d2\NRu9qTXi&6!WA;Z_4Fk6D1GG@4BXm.6Rg@=1Nc^jfBl&j2HAXRAcadW>He.B@D0W&j-T5CT9JU7dWb(on5\j^ %4f9MqMj8K)`UY.JG?3:@f#R7C[YJ%*QdoNo%YmDu>QckS9I_0#R.:gg)_u]dq;iDC[Y2%hIJ+\;IoX4th"d@?h`5#ogO#p$Yc6a9 %>jS'_'ZpA(.Vf*IbLCR)S.U"LF)u;[`4jTKjX9eFNU7VQ&[Ei?d5^_PWVa_\@m* %jl"!MD68`G]VQ4DWPtW>Jt#sDP($ghj5i/+I%3T-QpZY."`2r([[+.sAZ%WfD(V-r(dQVeT!8+(nYUL[(F/cG!2_]Z&B0i0"M:Li %Qh%1r[jBtAK?U!arEq=ea9bk%XYo"c\tGNrke,-K[CAr53*P2_\^JkIF8o>PFq(!jRgCa%#]H?MXEHZFPpcF)SU/tBl(Ktq\#$RK %c\jJ=<15#hTgJRUN$7Xp7b=HJG1Q@(:p$lnUKP+ZYYo`9\-DP4D56W@O@SWFm4E9[lUKpu%etO@4kM<5O,Vf?_%t/Xi]EmpG_B=/ %AG6Wu_R1$%oc]k[.dAOHZNKi9CZP,gQcOJbo5paYXY)d1pbL@Rp!d0l>TYb#OO`R#S%jP/"^-g;FRKmg3A[P'iDBhRaNDI;AF]ua %@G5]rM.UnLC2Z@;S/$Bhd41'C@7LlDafZ(YOBLT="u3T&PM?Yb$Zk]\6%g;MhP9P %llo__S(B+dX%kk7'"&Qcg4Zd,R@2t&*PN.+&>,Z$@:MLloL6pmSsN@[2)/8?dYup %Zt,')S]]!!YAm]L!oNHM;:f,ThMsfaeuQ:I>%7N)?&RO0AZegpFm\0rE0Gf!#2>*CCE"C@IrCc9VSY`ic(\W'Irubf>NT[jH6QGm %Ld\'D4"`rl2nHrqjdGG2rN(3+B7KH`gWhDl2h*tDY@oj&]hp_snTY*#Pui&[,7@O/Ab5R/VqB6!h"9$rgn#gA:AOs@cEK6N,eK(H %h>"/0W;iiVbF/67p\@B5Ie$C[Aq"SlG%p)'$GZf^[@4"4HQ5d[P0`=4"aO`G]MBms6`=V&&auB!q'#4A>:]>#1\<^Gi/QA9e=,Oi %,StpMht?K%5[pp]rN0QU*bM3$.(b,R4Sb%IGHaHk)%c91>:_JhSREWBX^FR@mgP"r;Poc_o$2c1a"6HNRrA^s0%YLCraI1Voec0G %s'uHlN;1jHQC`;o!bS'R0mnkZ,m7+#c)W#]W-'A&9[fWT;rrNht*RJY)W%F8W;enR@Y?gV0+`-:Ul)-#:,qWGb2"&mr;P>eter)Zrm %%e#jmZVun&r[-qCrJmeSdj%&c#8d>`o=&o6L7dKc70+Gr'-..5"OF%!H)dEa8s\1#[!bmDNf*)IUR+GYI.k`e>BZb\WGeE6\95j0 %;mmJ-i,@`W.shi`/)@\@fH+5M-9Q_mfa.1#3q<)9^(KM4_(7pbCa7/6K2'q=!_/Q(k/UOod2R*.)dsd2"jRCG&Vf-]V,?S#hH68% %qRs/V+KkXSC`)4JQafpm:3hQB,jN33lgaL$i`6iU8N]EVTk/I]Pqo!!%o@2:h:CEF.D,c>3SLb&(DWl#]%2J(.iE*FUU?&ZITWqa %(9hXeW%H0Z@lAdjM]J=rAqZ$^`5tC%q)F!IKT@uX`t!D70-;fr22l/DH_8_s'HVEOi?2!N-XH69"c8%3Z%Mfr8+6CqZ%E^N03mid %QP1^e4`eh-XhU`%G@nVA?38)(Z6_[cYu]G!";ke%$#A^E.L>4;!eRX$lMCeCFk %Z>;;3gah.'=+KmDMsEnGBTLO=[*mT#=dDC"0Q[W'?fu[h$hf8]kZm9-3Tu$j2QT66c'PH8!3;%1>?:'nB%DPCK3b2ZD0IdWs)kJq %hJ]9`ek_$H]3iea%^N.U?a`Jo*[`KCaFmBTTcu/2eg2'F]3`.98`=l1hCOF->cH293nV.%r!8\;3t7h*0,5YgQdsUrh-"Q %MM;dD*+=7"qIN^$ajt**gTTt:@cm[]GJQ9o`)(A'>]'tgK=UZp_WAe)%l:EGR'YTCk-6>g`TAkCS%+Z_>D$`+MnnO8C2OU:;ko?hik.?^L#((cOO][Gu))/X-7bM%9lrTmPri-F=`J'bL.'?RqYr(c0msj,:hbO2f[k9Sf_aa4Y %C'Vkg`GP6K#1r'Ol0&@ho]sR>qU>(CkMrjiR4.2]GL9c)m'df"P8i^F\#1EP75NO3[*d'RA`DnBp5TSVbM%E):(B+m\RcjnKG %[\>ch.56K7F2.Ki5@EAHY[X#/EMKHPMtb"dHF(*W'"uF`G61er1[#<;]OI;F]+S[CY^'=>9GX^3Asf&tS?\6G*=YuQbeX/WU5iX# %Z9["A8&[69P(C#P+S#d*d:9$$,F'OlDYo2l2l:QecC^e+/GK@:]a'Wfio@2<\*m@DIbYHQGVT"=?=&As].2$qTd@_(a+Dn9F]$%S:qmomor0>rn@4p9X^@C`?e2EppBklP&mSpFD-2^sk(jsA7Pt$Ipt$(II#WrHK2$e1GjuF4_.H2iSNIFX %nU]Qr.Ff9.PtP?UniQo?KkK7*ojE?3kZ87Ko,0563)+'G!@G?,gm.QVT_4_D"dj7pKAgsY<'S^T>d4,BM14=J?GY`W@ipGNfSuNg %#eDdE@5lN2S!CC)%(dh2@[0Ka@14GWWkiL/)qWJe;Jil(bHKq6Xtd\W0,JM%fK(fij)`GN\^oI,AbrC8d3S!'HNbqNJ4rHY_H.&t %JF&#\dkZ^m`gpcMO`%(jT1)?ZO`#GQ7RSBJCCjFfX:nsDY%N;",!CPaZYqTsM"D-j78aK?07sNPC3!&[04,'K^74PecNR#ddPH^A %'.++mM2gB]T@>O669kQ@KU``#4bJP.G7mf0oQ+a[Fi747oF)r?`2'1?knulk_$3OU-=bT=IW`-L@!KmDP+42:mhOc`FIg2$E?)*O %:[3Im8ML8)gW^i,dN,H4#p1:"!`==[2>B0QBGE=:%1lbD2:Uu#t+*up^]/Yjrk,DgDT2j/F2 %FsF!YndkA*kT-32YP-p>)t9Iopp2Q,RUZSPN2>_t_-M+u3?qct`rTt9-dONeU1dqI7Z;`rWfa@%GM=F;tj5#^7Rbd;cti %0"cDEeDA0*3J:,I\s%=]7[A6;5s@WXiU:i>3Mt]4-)7+4I.t?6Rh&Hh[Y8$\qkrX4@Wl_Jl>Mr:ql5Ym!cTZ<[I0gOqbH.MEo/:2 %LC$bX'"sk(^3di]Ji8Imm=!\Q1O>2@ANMgmB?Q_?gI#i+_X%EslK.9D5JJTIc`Ll-GiRE:K$`s&jpJ;BX@#FraNe&ATt(P$WpkU- %aC$%"BAUO8*EinNTem(&1KVDZg2+,,fS>S)GU/I-dTQe %i=hDJQ?O,dK3l'?8Zpgk7u^X0"f>'1aX=3*EXbr?)c5[^N(bFKeM4kJYBh"!LcCt*@J=, %7#tZSfLE^t+UBA0dJm%X-KAUL]I]pC]QgVn/.HXlY6"eQ81HbCDd)aAY4*N1^G-bVkBJ\Mi1o0X=i\\(%_=0Gp/C3[Z, %gFI?U4HbOACtV[2?5_%Kar1fnKN6.?/":d2@1YM:YKTmlTb';=G^TV*ZK]$Sk[t,aeq?G##N$$(\6!;(q*QYQDktXgZZf5?c?%NdUG"M %g!*N+rAhFh$f3c"80;/^_qCZ)b?QTX_*6::LV:poa_f&XCgile=b(UtbjE+J5,+ZNG);IP@"8`uehIo3gF__6[<6gue,$%]6%W0m %Zkdhd,cE<+ehZ!0`75XZ+&u"pVQ13uV/l/]VS]M75j[0IDQH.rpa;55qAFHh*:=c0j?beP"s#f"g:D&aO.*U(oJ.>$/EH*X@H7Oj %4gQa5\\#J/5)1Mu*a(etb)=a4dDq%A<V^Xn@2(gs"47A,_>4=qRh=o'Kj5>N/-u)!e#8`=$4ic^E %3:oa`FC+Ut34N?9p:HIka5Ln>`m'.r0*[opdUKS9Yn(X_>rnA4oXfWe?5gSB#5cN$?J7d2-8UW6n2Y3k(8H1ihHP\t_ZBB+]Hdt) %4]_/G*+TNaI&QWTV--A0r1!>GElL]1i9,&-W]XdKEL)AA7ie>k&Ti2RF`Ihmq#eo;Z',`sNYNXILssjO<)sbYK;mE#^3MkYo[f]/4Jim?_XQJ/I/&fp+J9ee67[_YtCGTNP`A&\Xac0Kb9HaJ,;>6&[@h%lII"&[FQQJnBk%7;#h*5g0@`XAtXqTh&]+h3FZg)T=&ip`k]S8h=YA(g.") %?*)nL-*deeA'UMDY/oU:_JUt9VshgCHsk7:.VOj9T/BITAUhP2s$\j=&A9S7&=(`1Gio"k0MRKW_W.S*7L]AccW\(8sJQTb(&)sdT@DOlp2_Z#!7/c'shfs^S*?-,F`ge.4Ws0/U%j#o>\eQkp,B4,?+#UloHt?i/ej#K>GHR0.\E6ARHQbJkKfTEc2hT[Cm#lrV\uZ%LVt7EF,tBsoBg %ll[&VBPkkP*UN]+YBqV5kjr17:HZ]df^Lm!FS]cW)lK_#ru^Sn6bh>W)OcD=O2A3.eljj#RQrN``1dC7##'5a#FI!Z7&0/k?DQP2d=R&$P9oUPg>"GnR@gMFRZnP'?c %03D"JcqdA1fn7_9K%$5t*dA\-S.i9#&Qq[k^RUsP&`K2n/.8DGI@%uEdPl3r%:6qKoZaJKRAX'_P_u3Xk+qlOdM5alpQ+afb^(&@ %\:8TfajeDkgctW\';fK+Aso5DS#kC0qBV7b@40A!UJEZD,:nEY'8qC^rIYX2@$kJFZ#'ZSIrnK'Im7(Z?4DBn'"EF5+f2,X\:8TD %V+@;2baW-0:J3.l5PdIsRM9qZ`T?b=R5`piE<90h':cK:pQ%M["APsQ\:=-B-F+8f61Cn.DUPF'iPuA.`as,h!o0'D1Uo59(t"D* %"8%a:>p],KrOTD8IhSi88"ZGM9FCO?V'da^*drX3QF6n=0r_O.Y9 %inQc0#m9o0!>7$4KL+dTQ2;Bb*i9%.0[k5WW$[HJV&#d3@j[#?68i6p5pT1%&4HqT,Q#RsW?r&1)\3TqNeP_gZ9DM,L7u^[JdLI5 %!gdc@TN*)HCP5D!oT&h6&P\XLQP?S/oDc#k#sQqsp>>;9^YM\8]:Zt*Ic<(j//iKK-B.g?$d43cR8G6!0\6-?11?&Ia\YYJF=#7h %*;Loi3$U_LaCi@4/I"+,aZ:l,0`/o?[AgNU2?D5mQ@+4j;@5cb5N2!U5)rMI=*YqP %]FRA>2Ul3,Ui6\UHGBRj?VU^ju03pUk&69dkXf_F[3r?VN'tj&E4![3h4J$+6h7la0.qa!r$W958YS4VQ>WU2Z %TlGeR-7Lg(c9%7([_jT@CbQ9ro5:It'00lamj:I4VXqGb.5>XoDEr0W*qch#gec"gp#Uf %h%=PW:)6!^!QtL*,b]t[Yf\cZaLb4*R_R-06Z8mGJX1\bVYRX3]*/3!4@cF]ep11ZQ3`6UVf(.0*j#Cq>[]^qnfZO#=Qf('//gcT %;,L)cQbgppqD&@Ge&u(iY&p4!4oSnI[IIS*i'*!XE@,Y]^X%hR7]9Lu]``7hNpJRJjDt1.[;ij(e_#4tX/;M0_p3?]mR'ZTBllT( %E!`YENTth;2.D(eBVqEQ:PO2-?d7lfQ"J3qIZ+O.`KscTP)&3@n6S>&7s)6Df+IE1fk:\-+3&n*S1iFbG^ZDu_'O9318+Jei(K?_ %<>;L$!;u/=JHYE.qc7=Ub$QFVUEq8aakUhA2REV"7*lST4Rk[UM$+2i_Xs]Tke3$!iE2Vk)r94B;!.N6NGa#(6Z[+tG*o^HTEsNT %1,iYjXDJ];WbuT;Lt`X[\>F_;eFH$B\5oB3`0N&@JNM[.'kmECQ$-6n!dEN!M]=,g-;MmN\Gs.(q!4ajM'eiUs,`H.4un3iUAJ=R %S]'Rg(am_l#_qLfH@OBC&LYu09'NOCpt&(Gb=N+.@8`U`M$c&CP6_8Sh1+'KgsZnN981S4p6(WW[g\ub7INjX_JJ*]23@1(f0(+' %75`P_VA8`o>f6q6UlrICVEJ6#phb_mJ'5$DbMr/_?k/j):I>(O?hNu%@5**0p0m'rV'Sc]5`k%)]4^QSldnc7=Jc1^;mB=(n-BsFYRJ]WS? %pAIVHcZI_3]p1q1U':MUUUHMgVn\\T6, %$40s]AWPK,b]p,LJHt,3..n^,VX.U*si`UI7$l*fP(fH %''gS:Yn.77*N^o!mSj["TTGc1[8Jdn^o0)P7ZMS=,lkdK162["CqN:18#bAtXm>NK<7AnT6LRPFWrLpBO7gC9^Y^p7G54c7oSE_b %$i4lqZb\++31Y7t/9"17a]'1f=I>?\n"iL'mGjjDpqD`4U]Sad"VM2J;??583Q/d0@_ru$O8hB;@+PV8D2-)pJb,&qr&o,*X8;.* %UN;p)DbOFXm+u:0[t'%B@E-P)RC.FOrL@-%=1)gNKju%6,hdWb[Y5gV_X+LjagU[`>MpL&<47K&f`KkFJ8KXTF[=%),>)6^tEQ!neiKp%1b\4Ym)XA$'VT$V#\H)W!'rm+?n#A%+]dSIuENQab*29/4]+L3S$Np&Fq %"o!ocgB*5%U(R@6)#:Bf7d6NUM4,$)>$>PZqh!<,07An2ltbU;o?d7,a1eX(1%I>;O2g^0HUe.Sad5\dW.3Hq"&M].]aG/W3`_BO=1+JiO7NQ+!Lak_p1sW?jjrM4"(le,6]3(e-r6[Km %P:/(&kM_I^a0-aXj+RA'VJ)KbK(^.uOr012Vkkm`(J6O0b$4^f*tk>gQoFFAa+Y.cK8CaQ3%gG/S7>9%(M"3^=^?:P?L.Oah.8:OLg1+_3!u#e%V0^%)-uG4 %'?oai/e/(EX@=!gq>GnmF02U%3u-X_0Y5?tL+Vu4\0:9t9!l1B(Q\X8*IQp5,:V.o4N$dL[G;eYj,1lJh8&%UsR#)-tfg0>H&VAX'u&.?N*!ATV?&RE+SR9tp0ch!l:0 %Lt.3=/jm=qC`Cbs5Q>*8]5V^1E:;B9'&.n3g* %kKu9iPlsYV)H)Uo%;M]bEBH\O3hh,"mj1s=))an7FBd(-IVmU,N\T1@03-BRX-#Tmk0].mJ#Sc`b3a=-&)+m7TL^..?t"&%3"QjE %[8$CD(]bE9rPF>oQugP/99#ZH4^U9GWWTn,N8r&71ZA`m]CDAZIp@8F_8=Zqq7Kba"d\s5;gQgd^\$K6-^B(8+dJ\cTc48K)K.VE/@5gflATYQJ%6utke(FZc\AU;p\52#L&,us[\3!`Gg)At2r=NR`[?7Z&Zm.V2XWZ+8Eser>VHUN=^6ZB#G3O_ %J`u%@T&*55-SjE;U=su4>njlP`qPH!AMHpBH+^lOjRL`BEpkA#276X>oX^%lg651u;9Ahq)3SUi1.D6Bg)Du9=Hi< %Nk`i*%*.a&aXEmA!PL!FGGY76qf5eC*8[7'?:l0-o?q3i=Gb"*6,/!>+nR2HD1TY&`dV__P2,B_cXc&*NAHQH\,7,H)8Og]2.('H %B,dI]&)HR1pG-E&c/*N1-8:/a"*SQ5FrRk]L=WB&(Q"U*?c8QoLK;Hl-%^-A]?kCB%W:c:rbVea@W>bBJ]nD0S'VVl\p3Q+e %f3\,D?;$gm[,-['@A;'=&)<4Dr)n9e3/49:6ETKm\MtOEm/@pEO')oM<3qjN4KcT8[PF]-T+Ds<=i-n(>ipM6`p]8RYE-abQCd6f %co.XO8%0#k1rnk18@buH53T/O7^lkV=;+1Fl_DRVmZY=a@r,N1lk$;3dLn`'ht63jKBI,RTl#5.uthm_97\ %Ibh]7l[U$H-.i7@-#.`NL*o&11M`c1Q;KeIa/eS6:!5+(k*Ioq24s>!/$6GNkge`k#8t3]U6HP6/iu674mZ;(1T-h/hK4t.pbIk4 %O6CdM75^.)4\"Ja-FEhsk1jaKNC6sXDZ(Mu.']D*e?s;0Z9'!t]T8^9YkupSIl^8uqtP!oR,rO##bs!lo1RR9OT<(l+T%j %9]Ke\! %[,g7Wc%m9mT*0aDh`MN+j-/.o?\5)ja&CIf8+`-I:%U*qWqFTRnfQ[4WK7n-I6Xp'0u3UZ.\NRm>u?&g3M3+!-]AIO\bhnD-'][] %=2ZSf8<+Fem?j[7ptu?L.`h=::r;=V<"o3S\V/-NWF.J-KG#nuUf-tUk7F.B3[@O&](\.`j->=t^(1m>k7FR;"'];&)o*KfN^S9.JY[%@QpF5#a.+L#0lP[(g#@CgPh&&2'Kk[A?AkR6)\B@3$C\ %7J'rSBRd+Hb,,1EU&D5g.c;[qLoPug$M6u1g)mAk_E3YAU+2h317slVU?]M@Yp,#SQ_aKJc75fpB/6Nd$7Mn3BuqNu!_OqEO)]uU %J_>>e1=XVjQ-5Y6[urK)CV>>dbmCVH`6CYd6+l@(FI/@6<'G`8P,qE4\t:ldZ*YVZ-TU%@&#`i23"rGkr;=&Su)pLI:7]eQZ2\ak;`lEARe:]=[hc4!nj=:;%[/P'23i^?GQe4Cak+.BYr %e)/3^X?QK9p".dDe+%;R@'>(sdg,_Ls3o2)6hKoqN!RY&Fe9CVg??XRSDcIlqKgZh2nt/)CQ:&4%9QBcQ$n&36/'o$"912b7dE(A %UcYP$rkl=>:2Y*7jnRsr:\PN7$:5ks+)jM_(Zt+6EZ[tepQP=QqY.RncpIZ='4U^"pF#n]l$`\^1]6#+oXF_^+6n<\j'DX_hl"r9 %hMR!S-cb3O""mhMZ@AhM$/.S3s)duKqJd0[/ZIPDs4,q$pA&cM'$6/69h2CTX63n']s2p0Og6>FbM.+Pr.u1jB:i2+T5P2k:q:YI %aUt>?SS=PO=d\A@i.uhn:['G,(\rg5k]HB?KF9Pmp(1<$dmG5Hq1c.R=tP'@_Ka4p4?O"=X:M#kahtG]_C9j&nCn\CM.j`qD"H[i %.*Qd!&Uq?dIXKWiQ-OC@FM%EnoX1'J;YK/`#^CL.N3rr6Do\AS=]c%Ue7.utTjfU,qTVIJ#djX^+LRiAQFh[1 %0en,=hWn[e>);_'BbNkh=:=+Jf.>HW!,FlR>1hn-$J%N_miFATq!F`nBNPX&r-"mTjC'WrgWM9$.KaGe+0%M[fHpo?6(A4L[l5pp %hlb&==qK;TGdg0Yeq1C9TYsDPU?<%J%KYC7JRhf!$"R)QW#[3#mAVX*-,SD*dHus^-?-'=;;17dCA@DT>NiIs=$o])D4C&kt29l#Tos]ug]h&gN!c.PW2>N!PlSJ!*-M1N(&B!9c%qHAG9tc;`&r6$c,.R.#neJ7kaG'rIMR2P61e7DQ[TN4oRr>C'(eWr\(Bq?S>]A>G&^V; %HUSC?*m1iSc:W:.\>]cn?b++m@'A$Mrfd4,tab8P)4_S07/Hb"W6>jTI0dNH>"IgV;_q>0qC,?B7Z#>0qDW,)Ku! %f2[\XLM0!*HLFKM>0qC,XN+i_/a1Uc %]of-&/LET.B^5#'>r'TnXU^,,@EU4cJ&+He/!?)j\ZgQ]:p8_fDYXJPXH^Sr %>hDZf,TX,r/bG_@1pE'6$B9)bmMH:hEac.1'hLL_FI<;Xridde[`j>F7p(u`>@sS$-'6JG6Fl6E2I=P(r+20s,($SIcRDOO$4/;d %"?ima>3AC#L2N7X\st8e>K0Qd0GMXGE>_l*GBi'W1F$=*/nW1gl)f`kI-1F:Zu.E0?W5sF)0]m0V?QqlF0NB(auiHPI*oRSFU%TH %l)2Kg!?OV=Bgq?K8M[PP0uM4+8edD!6@+Xqq1YI1Eh``SpF)b>Ur6FK5jR?$9D(`9NY].0@66?uV%1B`NAb9EYgTZ25bL2/WT6(#r/Gc-%[&5`tb\$4ZU:4RIdkX`A %O@\e)$53k+]M;m7I\qr$sFC%!MkEW+ApW`Y6o6Pb')u]*[4.YECEJ].Fn"[Y.Eek4qo=U[o %>%oq!\'E^ln_&48_)(WCC1=$bI.9mXH!@EcQ/6R>44TN7o1LRZcQ[pWi?_^`J(79--&#;ALJrcq0GIF(*);4fW0HI4D+7nB'3G\1 %3P2k:'icgWL+W8TB)kj1hpR4UO92;h6-nuXd!fcG`/k@$+UY+9I#>t.r##1H'`Yh13VsT=$=TNm69gCs`73JN6(P\++SCq4l^c+) %?bcAnX_Go#S#X!(&8D4E=-Nk]Io1_n.5M&J6@kP?<6EUX^bRGUE)b!@O:[/CpAYun;C_)9WF=P"VEjH]-Q@C/Y$%"J=kqnH$YZg8 %G$s-CVoK[^:;#3m>k@PE!8lYIdlf'\_oPRDq0b0XIcPHe'PI[9Y5\reUB%;`?,,5[.q]o`K(npWr@38e7b;H)0\n1j*4OQJZcth$b)CoqU@bq@R#E!7]d9J,\n=<"eFBLq:FpWd$SiuVZW^7JI9gL6*ht/d^_De6N^&oj3;msqCPZVf %0pk:)4_T^L^_B`HfE=q=nPO'JC>7:N)H&/V]3*!n$fAE*0#?P0/%Dul>d0T+2^5!5F:s!F'bV)nE*`g3$3io;FJ1`#;*f"RJetdN %6j4uY%&ql>?ImkXW@Y_&3++Tt>*&3<"$PQUe^"(rLOJ`k6YHHUl=5:O,](pB.VbCK`sl4g\7oqWQe=>b&@IeT%m5S^(5R)HCE@48A/ot[\qS#ua@5 %kF9&[GP&qG'\Z,t:5-JhkraGum<1H=Rh)39l=CVX!b9JHU+eS0EamfSTDg1Y3u\ %`(nPVRCPLQ+EiL]PRu'=.>Aj=F3"Ef'C@A?PmChHg08a8Qims^6T_^Z&3J92F(?!(60q"KbC#>TqH^RVo2OHeK%PotQds>(#K0BU %Yetpq1_;`g6Q20\A:`C8&,#"*a0WL6\!Su`4)m2b;'ghHk7A-"3CmtgZ=4r"ifZ,T6AQ#em[AY;"gJ_<`SN4B+V6`_2c4+;fSLGg %aRr+,YnJkY3'kI`@^g<&q^Yq+%23mi5;SELqStGgkb=-NlKGNE<66ps2*JVQ[T",MnN/&`3T4aI!e[%5@"5Aqo[D68a!@Pi0\Gb; %qAmnPX:N0UhooY)HMcL=@0Sfa^^e)G$jJea^lCPc#n1uBI[/")B!7(fCDoFea,Y)'fdj\JYHbZqlQ= %6>5+\6k$\um0O,/n"cS=)]P3#enU5$@>@X;*Q66D6pD)Agb4+!FsOSWkf:Yu$cGdKpVB%P1_;_\_`m<#PQG;A@bAr7Qm<5)n_%Mp %i$Es,'-n!u1S7>CZ%&kUgS,!jMu?2HTl4q%"*$]2HmHHsT=t\"g!@F!c:?K=PEo@C5+m9,BKM>N!.-'I^V$O'>i]F*.,& %a"-cPQ8m&i\pp?da;pl+PR88KqN1RL\SR)S3ok>W#PXc0XE&V:QZEcB''X;?YdX)QTcJc+H]EIf"J,-I\R* %<>-f?\Qk.:[l06_ %Y8Vc6Dq4InH;9VN^/c0.:E!plS])*-W340B,K;8PUY.tcCcp&t^=33'Bd92A4.a^bTH)@GZuL6&<7Bn#Q&aCnllp;>CFE62DD*Ti %#12LF=W=Y<)cg1/LUAj0g47dGE7+sI[@UfDb`Fa,5bJkA`8ZG#VQ%ppR_.Vq,u72J4u(?UAt*/^H<<,l6f4HHktN'mgY/\9OchFt %gX^nI\*GD\na)_J2EkF)ibM3h)kSa%Z$qhN`hs2L788l3HdXsq'K%ihT1.\,MAH++)7`IfC/\!3gubf,;C%]YlEKG0(Nrc!ABr2X %OA_Rjm/DY'jG58/ae:7L^Mn(SJ:k3CVBRIu8QV:HWFG$KYHL'Y&ig;_8C<[%0MT8m(qigBKk[MfNnbt/W!?],>RD.j]M$=_dM4+q %NloF[datdL2(g&]8QV:f.k6k>%$J,aXY?k>9]4\QS&,=)gdGY,V_A3oi40OK\mNfIeeQJIdM8W,CH^J%'#.(nbTQVBPGg0D5FIL5 %,,-chGGXU6lKu3["qj,m\q>1h"lt.\(I;Z!?q,$Naq(JeD^ulX#[32mbAuTF1ieo2bsV]/N`3!DbTQGneP^RVMFbg/dO:$M$)-2T %LjiK%.Km%5k[ZSuq5SVEE0^##;b.CRQ0#B:S9P2V;O5d,Ee=&.Ol`sr3A\#F*d-]'TDu-Jn_I4E/>lF)$"c1.[I2dPCp.-&,s7;` %#H@ngM'6Fjm3F'XUq*]B@8mPpoYSakg/0t&k"9rce,Jo=lQ;bh7R<;EjO&l5Fq8Ng9gem9=EQAuh6+KaHm^uPdtFWBEA4o]aEO*J %HmHe%^Uj&bVl>i&ae;BWq+f,<_?nQXnt#QDCgSA0jZBTIB:SIEHtObs:l:NLk;sEDr3OPhG>;ap"_rl3nt!#:7q5$bj?(!CTdI>@ %STs;Q8pH)Wn,,surX+hWFL2%h1aj[@@G(1B'3ZUq*(e=t1@5^,bO\WR9.1C\[3*-A>`8C8o3siX:3_dn&t\(D42'FsRauhuXC`N6 %,+B5:STolj<`p<`?0OJ([CEAP#23Qg>A7oNS5fiTI-7^)6qqUTfAgN-K.G)B(a?uH2d$8176_n^5BD6pC(Ot/>`t[8`;QjXJIbP2@1`_.Nj*'H1mDUCQOm_q70a02Us:3p?tL[;OZJQ]R^AAR %O^+^'ku8sc8M9=:7)?hsO\338r'os6JdXa;_\fAZ"P5>3[620"7d<*#.?GrE(od*40(Gnt(.c37;C'jJ],GXacL\/B`&?9nFWSA1 %.WO\tFWSAQ^P_rO3fi238.Ta&qBsEPnjo@E&(/kMnpD#-'aZ]_Gs:L-)o7+Hn).2gXU0OQ]/=)2UfRha(=L5 %c#1"7!B[gG>Z86BFKDu"94\&YFRO->%"DapY#QL1.>j_(J)m7e&b %e`Od?baM37Yi>8,3Em.@.)"Ad.^U%'(=k,>KN8sBm8I:kB?N._ %asaW/=tJgYXD-jm?lL"iAgu_+Mb#IO%lHRac-IrJ(hAr,8utE*b,k)1S^-mT1"@^1(cg9)O]%$*PZ`knYnE$EZZmf>Jid0>B>hjF %&ok@]]l=g]<@dHa"a%1\%lTg%l5f;X1Rl'YLZ't_0RI"Jc;oJ-dWPQ'UM2:tlb^Nt5!s:t*\T6<0tE+hL$2dM$X>K)hMF-TW(!hq %4(5&aUJ*#mHXH,&H7O3HhXIA^?trEI#(dref`u'IV>PuCk2?1+DP9l*/$Fq2e[:h-!*W/9*Fsb9>%/ln#*=\9$DU:NkM.-P6Ka%/ %AKj&!`M(6RL:n99`k=-ie:)6fP.V_-\0r]*,@9lH$r/Nc*V&]oST%D!=@^"NN&s)>`6G:>+7YdVYQpqjY`\04l`n@tm_6,B %G/W6+:YW82#I\OMlt61IA%V7:hX/uYKtX^]c?Lr//4_h6>Kk9Yl>a1Bq6(iJVKa.P)iLoUPD@7p)h65HhtTR0a6NiY=(cQu;bO*T4^:"c"hd0:b5`bY]U`OUVE,_j;G*rf@PI?p+h'"*e$[X;]pIte-uQ`"P(1IuQc[r@9V6RJf@lkJbHdm#c"EAFn^LlB %UGiuN!V\C?hQ(EXe;0f&V3#XKj+EBbSO!dieJ+S'lfE>-!Aa6@1"@1"jYYQU7/1_8KY@Vj+4>-Q%!4+J$c\:1ih^:g5&c6gO=3/'9ts5q4e=7TZ:!G]!KXn %]A)SJotq6RaXX#Ab)1ecd\-W<@58]0<9kUdQN9q!(Ph7tl*0Pf*A %d]@Ss?(baL@>2"6N7Qo/UQ %nhL%:6EEbriHX:tZ.,RT?TWG1\8`J=HU#031lU1>7^c-/ddYBt=IkUiddW%W:O[i%AZ.J#=;FTnP/=4j_r$X:r)U\58]0k7oRmO[ %-4R/pPSmm[\L%chH9bPd>*ER_Q]Q"2-7jafCXOnSA$S<7>"oq7U(4L!]UH4P>b\;G[6$`N)^@_sQ84mn3JYqAh56=5*UJ^0riZSc%BJ[(fm\J%O/.G,>0)9)IA.7d*IFBZ\GFol!p#e?6/2I&K=9]DcuM %rU!5SgQhKA/+%7Vg>B'?^KkRR9jMJ*]9-d$Go8;?BI8MPBh5S\e5R`Jd#_jP$`A9!JVLQ)do;9t/OXnL["^D=VUq4g]GTZ>VGMNk %^?VoZrFja)S%j1:i2+!U&M-EX?Y,BG$nk,,Ve`C[Tg4WWQ_#Ei:J22=]DH"&3C<=dTlB80(JpbETq^74_SA/um6!b^&Mh^-WB!<6 %Xl>rt<)bqN(g`5Af!>W,7gP&koWcir6Gb`L7F5gYb7VVg7E,`VIAppZ25H8+Gs69CPg)G.k?eQL7gLs0T_%=43C8o=jc`'DeA()]3clD$*OAU8-BCu#h*f+1/Qpdmhqm=)G?2XL"=A>`!&;4_&8E- %Ip>fAn.-u(1'=<;Tp;)HsI$G:[A_cf[1qk#Q,%$13&**_hTJi[dj1ed(LKP!:2j] %D,5PjB/Xj:@rmXRD-1N^@ASW9AUEVTPJQtVSVu@.V'X!-qG,U7WaEh0jVj25/=@gYFe'hu7`Z %q$2Drk(c!1rV)l.j*>/sfT@&IT,,%e,?d:GP))H/pL)[$M"sDRPMS6i*b%lW!!t*EmU.-Y$7M]P-ikmu)W#YD5@/]GFfLSOX.Wc[ %M*3!ooDA]gabr@k:Dnp!d0d:Y.sAu/%L:_0bZfH;2C%Eb5s!e:/$MpWE\8^@p0OJuTDS:#FrpC9^HNk)fG??9L9NUf'Hc2&\/aWTfFh@s+R7Kj>\m0[\`4- %3U-hI/6%$BLZe`^Xrql!Hpe4,9OV`C(*GY'Z>5cj&=hs'Vu&J/2Mm#/#90&o?qo:!Qk$Em(e"n<#3U/=nBYQ"*U`PrS/A+`EFC4! %8?L;C"Aq?JG*HY+,a]7_a64#u`(X:(DPi&&-V!W;3llJRPWp6eR#,*Cneg(GN!!l"=H5UehZu,LM>'l"=p;[0]nt#,,?b8 %A'?+V42.aZt]T,\p!*956X'a)^gkb$UGK%^h`1.n@@X=[9UJPdW3r6(Ur.$7@NcR]U',t_^4 %aOA("Bo*H?-%["@C%-0&.$:70[R>so7%p6,YpE"QPfTFhRb&/udLkU+H5;4$'1[n`&uW-*%9iRMiDCe4a(B+D&fE"4n!>_pqfoAa %p5+^CbId8;VWjjDMCK3E::*(]9B^FjUI==YaFffm>l[;?]UUrRA0nhK^rs94HA--[?)'dpF%_b=.$9/;18cEjA<^bf>O?*\&s;Bk %%20Yd@6U<5[O#Zp7o\V.7?gbMWWnB[$JZ5IT9`/&;'I#X:9FZ3,tasX$MK]N.,OVf._,4?.,OVf.XR%o?;"6aTHag"q`LT&TVMY7 %'lWWF(B'2nEg8u-$nn:i8n'4`]#I:K:_HEpd!6eb63SimMXS*.7qO1a]/(X/$>&Xbqpe%#l0ZuG,,8ErWm-mX7A8INI,CJn>Tk4)[9G3S\rGOs3DNG%cmlF^5Hd`Bm`Wmb0oI]lh"0o=[!gLg4\-9nM%>%)Xe.E!gt/jT'"_8dYSI)B %N+8ufc\aWWBJ-$5\/r]]b.Im)RuZ]Zr5]>:WH,Q18>LMHnXUc:]:Osfn:k3"_<,;#k0/a#;(j'SN#njeE2N7U)82SNbqGgsCDbom %*[.+O*,nDO$BBeEQq;$kWp;_+BjfA+69$NkJa;o8?F%o4*`W.rfd$IPTGlsVVY"O>^"jDJqXJQuh(3B^m17:_[?_e-SMJ9kpGtYb&&]U"7JP1dF=-G\!"u6gP6`Tp %o/&LE.gR?_3bI:r6j\+jP./klrX?H+<#p)&&?;XMO)tE_WF@]Z+*@bhSs`@i32/&,D[jgd@7*\eb6D!^csLL&[?XK'8[ANj96mq; %!!*URi+WT^3s;4^k;'QHDJtLDOt`ihi>Dd6aqUnora@9[taW]SN;Cb,tXr%2cS4=n^nDr5&ZWt!oCocf\,2K]U&eu#5$63@j"&BC-&+Zp\X= %9hT*]Y2ALdh_/ET%c#=JU"WQ2B9Cu[lR-,sl8:-I8s.u@lXsF)q_02Jq8=P.YXW7ed.MW.Z\Xa %RB@:Po*6:k!5H-:eF_N/TZ.@/m4beYRp&?a#40s4$bpI%bu1\(Zo%2D@YWDFiHL;,qAg+48q6c05Q%[N-tNUfb75?d%VL(ipZo-% %n'(3tT`)I'n2lgta54!=D!hZ-Q&KD&i,_up#nsgU(Zql8O^u,]N\%RG,I;&2eM)/S3p%.Ulo^GU2NZpN5M_AGp$P$Akn!QY,P*Q7 %`iIk`B8;UK+aF6@"bsO%gVA7T7M9@WQ`T6Qs7T>kp;:/+"2I-YNGI0t%ld@-Hi*6o:@\65_;-P)D[P_FE2U(]n,0J`f-JCN6<>r9 %Rd.MiR%N!klSRSC,u@"D`P#,1ptDXJ;Vj'c`c\DEhNc+dBQXp;YVGM?Y"b0,]6`#.+lJ>"6MSg3rgS'q"mA-]LK1!+EYq95B@[K^II<+Are;^P %$/E:*l2ESF0UgCu"4A7W0e`uig3E?gpH,94WPUhm"%>S"rHe@BN,LMSVk%YfmCQtm:1'Kk`-j\4L^d#2mA7DR-[QOb'_F=o(/@?" %R&tU@7kkSKJY[Ni0X#gmFR'OjXnH1GhgfA1l#F^VHsH$_egm#\qR(cT6J$V`O+)4P?\>(Wh>A?;L8MXW$g<(V)>I9pJ:fIZIE@9d %]bJh#:89\*&_.C"88/d*nJ`R=mdCQ]WTFP'_i\G(OT.T8nfg]3!ICAV\ %Rr,Nth.I+#CL>+WC7hW&qDI!Lm^#nm^IDG\ICA'jcSjK(,kotQpg_Nm#l["la=";*/]@L%dFn8.Zt8U1]g282^^e#a521qg.]Tr@=t0P+3Ye?^7aGh;JN!aJcDPNX+eY^*=8jCag'V:(MP3 %43MG-WNsL=d/,-AfG'[;"g`-CZ)P(#E@J6a,Or`hAW__ETUfNZfTc9o"@/G,.d:@3d,sF'GAhV+BQJ5IM)mP;OV('Pj(C-pgFAi:6(:7$ %0$r6M0]oSFg)N:UCAcG^ZX,iLr4b_90W[AWmTYK\o9mUg:se@Re[RHC\ULpu)5(!cG2C]jAFKP9]]l!0`BE3Z)_[3;\/da5nqjmS=/4$)"/ge2ea\8[fe&>iV0e',9(XmoNkVC9"EuoKgO1HnqUWZ_s$$J&J %)I9d]-,5A[@%):?3ATVA$.YuWoATV)HQ2FZ!QdOob9&m4g\;W%]SK,H1i\J(Z25&L=ATTABkk@KGMp(=QFE;D*?!Kjc'%H4+ %1:lr^en&tuQlL1K/hWnl;$1!->Xk'Z.g&mZ>Xk'S#-b["5M!Uj2R.urS:js9Z9qYK64kud_-=-GKd*Vo"%)?7N%U"q %aDZ3@m0K14JcJgfQdKC+/buM$/u&f$(.##S/u&fGQ@Z+iY3cE9;$=29\@*0S>m5\XMp(=i84WSY(RNO'I[4AB(RNN9_@Ye$5Wo>9_@Y2>tJOD9ZLj].e52B?Qh, %@I^coS?5?nmsN9h#cn)l3#cF7KWu$]$QEZ*0!)oaT6&7n@:d::5Ih9D#cf(Y8*Lg$2lo>C=XiZ9=@LnVr-WDp@28S9_F.NS1Y07K %at0Uq[pq3keg7CM(laHHYR72FcqW;HO#9S.XGakD'QM`Y!EK6qMi?F<>n8D7.qN!S%shmG"J_"\=G;O(8ti>E^ac5*iOP1q&Qf4) %SF<;UMngfI4c*.\q@'Ib2#59$X$BHR),j`s)bKIAg%3Nk#%=Tk[[+Pen\ai/XIQ15cUjY>?VJh^cKtkh2-CgaBG0(#&l[.&H\al/b %cBG!bSo5+b8f+8pc[9>uVe%oSQZSs8I(^ka\U(s[0jaWG'XM/W;Y9)2U!PHbr@EF_r;?IcBU;,#O$<>A?5t50Ja"d;5:0ic0j%c/ %_CTAH3@qAtGC.NZnj9B@?dfAj1.WD=VAGrfb'bJ8&n-h3"hS_I:=P;nG/oq$o\M6*oID9H31$B1]3K67le5Gj[0C`6CCY3Q50gRR %apbZLIX!W,00^f%$q0R_jEiCEQXN@YA"]14q:Yh'cF(mYBtffLPhrlOR=Ru_1(5hg@:CWa)2?`J;lW;h1(8Y*XuX3MA/H(jkS">* %L>f$1qC:IH0Um1uV@:?d$n7)712Q.QPG(S#mLb12^MoD+rh"6-l1TN-B\BYJI]DSML`V&[/E6]1NDigZl($9Z3m-cT*q+;o!%Q3$f?A+b%Sh=G*bsjP$DGl6_jkshD\Kj. %4u4T?To\b^0SI_$%CBfdL`1n3U)%*06e&*/p$8"sKgLTUk]]/]jI^ce576@lB(NH70q.?>[((s@Y9CRiM2)h`d'(_>/HBO%_l(#1 %\\B.b'ig;J4n_Ue@fQk0.jRZE#bnZO((tGA(g,XlM4h1YF9;p75QPN*WkT'I%4i^:6)oJ>l8?q-(70S`jY$=`Za^FF#s4])3/btq %_C:'Z28NN%Q@C]KC]hl6oZ^ALb[k02WZZJHahT[^X%6)'Mh)$F6\0!(l*PRb=o9c'"r9$5"f_mk19`*S-$N';QZ=k'q#QW>bfU7j %/3_bo5#ut>MpK2uF5MR!-UeJH'.hAqODeN\bO/c-I?ULtJ9;O(-C@Fd=ZKU`RU@c07*EHh1U,5O#m!-O26d(:G3l+[71E?4b[k2, %F?R5EXK+R+$nSJ1SJG6S#*ul./GKhA"r?([SZ0YmD.&d5S"O''X9OubMKB$.)H_lc&EjI526`T,n,-J-X9KGd_FuP_p@lhtBqrH: %]Z4SR0pki#g61'JK(Cq/UDV3'7GNo40Vd!!N89M7QR:+Am%,N&6bg]1Z?tkg(%K.K#4_r/pK7lV"X*53JhC89YhKLn-=9GeYdB%> %P:pk[K^T'iPC-fI0JaIK?R,`:02-ucI&agQ-flR[T_4[c@5,S#)QdF9$\R9rMklsZFEc>k7D=;Y03B(80[Ab9JIdZdiQdL<7D=@)Q^Fqn[p*fA)hO&)t> %RJX2*[!RPQ!PO$(;$hDrEf$7ALfnT0U6LQWO`Fm>7A6nOk_n`(T6`3'MQ<^]I8M94"hB+T;Boa6Mh4F_tBem+UQ'ME7`W %P#&VZ9GnY6di/q]_D\WKW"Xi)@@qTVS3*;Zip/mKoAeUHS\fuCMlXJ78EtXXp;=GYc;du2$_),:mTWeX$_)-EG,9m[\ZeFqciOao %jhg]md<[?#b(Ul2ZT2+X.2R0c:Jo$)>hFuC:jc\K/o8N2GctOQ0'nJs?-/d;0'rKXAu])uYQEV_inUGQY9?^p!pm]1ok&JjYf,D" %#7P\bLiXBh)e[$uUJEGr$Jm5n/1eqt/IK=@%?#78MaFe*$&rt61G3X-^RrJJ#GZ^1h$`g;`J%3KsQ[n4OaO`[[A1DLo:]O'3%r.Uu;+*>G[M\nP\`7[^I(5Jmn7'FqXiJ]Si3BOoGjH"bGbfib-qC"+b6E %9g;:qI4Z-2/@^kr=RIA^Lj3LnDXL!>3E!_@mL=BYh_MB5]oBT;;ff %!jVT)k0?t_dKL!p#Noi.Mi`I]"^ct#(/Mlp_Hmigb?`'4!q2D6jXrl?B-r25MNHUVHP[B^]83)UW,tOf_p@VOUn;NH2mhH'C5U^u %(=o,nhB*F"/%3crJK@,skfEECh'T\%lXYdQV2`eTbPc&sYs)K!OFhB=.4Wm!]%!pE#6VXQ=mO;+gT^pi=4d;V]fG;"qn*%rU-H5; %Y`Je&+d,eP[i&#G/pP"ZY:jg+2L"F\MSmXCn"oR2j7MJ1?+ %c[<*NU71@T-JheHFB@JD_U:k]fsaT?0W%hI]ZS'fGZ7_0;33mIOe%N8;S>,HCi!BpdU[.I7X3+SM-l6HUf`#J\##@7'Ue`q/Ktg^dom %YnRO@gK4@H],rW3%0+!CX7=$abM;n97<7ui]B9DO$0:6gVADJeV,Vbg>s:Y`3>]keN@s\SO/^cuebiDaNR!;$+8Y.0pnnA\5N=Q, %f\Xt"dF!4?XukG?/Mn[)U3R+cqXCP4PrpO!=lV#7pfg["%OVjEIRYr2k(?,MkSZB%/*KEI1FljXo;Ac\$,(!BYZe'e[gg-mlQB(b'g$e*[X"A#l7Bd^3di]!mZj09&S1tcHo2R0&*r4 %3*XZj>c%#?kM^Lr:bPU_qt\NR#BJiDce=sN;19Zd2);?q'Mi-( %Sif]$DX[nEqi*hiH.edWUrr2'WMS+e*aZS%WQq?c^ISaj.Dg[jZ+H4D6VL@Wd-G"M:"'N)T6qIPr>BWloVC)PTjlTcqdQ5CJ8bHcqdQ5;_52U(08LHUQ@"3FOO.Hu=l:Q[ %ea^gVRqKm.rC>8t`Io"Zbd+0AN'b^r-;shaia5KMd>VDuGg<;M/f(Ja %qgaF>86-j7h9=[S51`*^,B:5B1=Y(WC0&*PoK,#qQl,n208l,^k8dLm:oNgRNp([LF&0n"MLdt=/M1,ZX(%#WAogHmK,_6$qtFYR %nN3ApP/Bd!6A^+5:Ms_JXZSFUcQFt/=WVad4$O?fdK.0OFlu8(i62oJMIE,uAgE-"UX$QNA3T@?iH(_ih>*0MGd2)$+6$;ef7h=;ji6OLZl9-rt"-mJ0$c4ID'14CR)U2/QUQn0PTfM%t?Beh[GQ3O(niH'\"]^hYg8EU$K/K8#n!+j=j> %5[tMu3#>Yt&3n4pa/t?]`N.#8o,H+?V^K1BX0i-"QYl>2@@D#IM]3?KHXq=BM5GT!^\C\7[c0#gXNF^B)^,q25:P$uL3D&XXkItX %1\Y8>g5I0?Cj5RIbP'!e#,9Y%'b0d=Z-s2kI6GY6PTJTSqt@$YpIppa)IEc\^)627RqTn9`PCf/9QeIGko*m:d#!2*Z(Hb_;T550 %4e"Ws<[H%5!@<8Wrr2M>T1ioUI>92fYR%RWAU#s=M_K748Lqs;-'AQPqd'HJKJjFlT2#)F43<3Um;5AE,a\C91+0WF(XToSagH2[ %#^MTVqih"T9QItiqKJ+gmj-LL2T`pjn7!OScC*aNaWV<)9leojjI_q&l9r&MWj.E;$\`0<#6ZUYdd/W]q'BHN_3ku8MIhe2a2`aS %ZZ*Kj7n'?B_-c:*\gG^`=@!gG\ud;b/g_nI^W#!$N0d-ao5OK]_QK(-CB9?_(Ab@!K,p/,Ne`(L+@iNOHnZFRqGmR#UF!=]PR!BQ %mb:>G$.neJVD":-"NoYc<8bFo!bH=B.Wf!KJMQHPg`rfBRD])u$nb5..h0H"b$^K6\56rrQc-e_i$W&#&+A:G/`B#J["dOOAFL6f %nEOIhV3Z(o(-XCAN"#\P/LPV,=K*TOW.hV2r(8R"67qMPTiYt8(MYtb)2OP]_M)1/\"$[%-![D1BZbBqC1T:n5M#0n/`B$uWFJAt %e.OC`!]M8RVnt(9_VJ!Rb)#"D?"P\/Gts^5Zsc9!*T;K3JD7d*:u$<,0hC[sktG'PanM#K7%XTSI`/V3Z(o(+h[/Xjdt9eGA&o&)-2OXAFg7Ons!n#LRQN %\(TLf5E>b"dY"\hXhX*dH0IV_[["m-&@AQ1Kj&*_e!s#^@/qIPqW&t,rG4"*ouTo8qUnoB`FL;!c[6,.S8NIo!(,.+PaN5U^Ua]o %[_fXqG#Ig'4=M\o:)C:>rcr[5Gd`mL`@NRpb.m+F[V_kF<,)`oZ %5(>S^?B6BlkSM!?XnX:47l7Ku(#@kq?5_oT'R\hjh'_@6NFAheh=\tacm5S!u/ghI]D5WWT\T#lOd',]t8A3g"M %1mH+NLh"7&9iX\Yk=8#'0C1/Z6_kCgM0W/p6DP:fM1(@<,LRL@8]dLbY2I00"LdXlV[Ku8!C(J'1J1B813[97HIMt[?^C5l*"r@S>rH_3/P;(FJ:tX\LX66 %08nE,2k/IL,52$$f>j#RYuK/OYj.FG;!@`Y^\'YO@%WR:U+=bg*_RlIBrK\?,*Q/_Mj`gKi2flk*PNk %Kr2?nD4\2=J%,0Gi:FXG/?VB8cf,lq,*FVH_.N^Undj!@).d+_d+DWHQnO_oLG9MZ&HecNN7f3cT@rHakC3GIG8pCHm0g0;1\f), %SO(&SkT,H:>+FsOK14sC'O=dk<3+NkXQjc8,@2'B2p!E]hYI=fQ2 %`#N/F;CZSDZja(rVc5#!:BJW.J!Zto:cHTD4[4),9%*>)]aBnogblVT8U=^Bq_+-)J>!l*8T4Hhrf<36%b#o!H@JM4rtn>R2^#s; %/.Y;"F!AdFJEW%\\gc_T&]\[MQ/oLllc?4p65^/st%dX0#n/%[0n%!DKr5efI_1?@9T7m0nP-GF@WNSD?t]3d:PbM9p=&]5uRe^X"Z2jP>A'n(dT*-SjR4jG>'@o0i@G %VG%]GR3tnp9GA*$M;23`\ar5G<%!Bs+>?SJ4([H_J>CC&3G,@?-]7iaM6ped/TK#K=mnuB7+&YOKl*Ce;UDe-,!#6_b++<_JFc1u %TdJpG-M0GSFl@Ti8';=!fb&1p#^As^[0gsnatZa=B:^M^p7O9=KKh367$4!b,+b@^i;1o%I,p,.3V,Yi8r5N)A=5rki&k4A5o,JJ'uAJ %hG_q>nNHYD)97ZnN@ZZq7hc&SP?`\!Hc2:J@/#Xr]]_SsI?OdXLV5khnNAph*.;9A'Y-UC3VpZb-ut.eEhm%'`V52I4VAiKZ'g[Z %,%pTD`'EBIGGXm>8ck-M:Q-"FP6`@f*aSo*>U"tDGiJo@\O7">U(U>a&jbUBhNpp\o4-qAQC/lF4>%2Ul+d"fatBIqA][0f0,"sU@UK:QP'c\g[hP" %_]&Y0[og8\t+TmO3%?&9@S[+bN.oLK/`ZTO8"oK96Tg.8VNlW1mV4d(KD!1\f8(=kid %Fl=<3EpOib#!AXWGc&=Z-deouXtlK[6n'pJ?$:U-\jkqV%uH_eI9KgHRH]#=]eg)VZX7tUf8X[D^29bZh(KGFE8C$q[V&)%kP@tV %c+R:2-28!u]^QF/!K&6fc+k-m6>ERsHp3"gWG5smEW[(9&*Rc/QJm"hctBcMP?MRM8:4HrLBnfG<\$J,e?T]Te6/n_,V`UgLnksc %(3*B5/domM?[Pn45,gD>8V49PoLZ/VZ:f:?Ma"*tLS`!QX$rZ1_@=$gB!qUG8/0:S>4bB<+Ap4IeY5iSfaUkhZWcum/`?4.c>'$h %lWT-/WJ,Dt&n\Q8P?O17-dc)!q31J,B!pid>2WMVO&^F*Ms_'-qRAk#+hXi6cIAj/5Fr1j4Q.k60&A.sZ]8M,;37Vl+` %5,e_bMi:djqDgEi3o[JLF;N!c()37gU/,NtkEpp*X]S=k%WCW'D(Mdb4_A;u0Tp4D,i"ZfoCo7ZJUhO-E@jVe#IXWOXX.`DFMruA %I2;V`[YWsI-:-75@-`7hh_5t>:7c76atHt4p@&8LU49W@m'E_bo?AFVC4Ge6>6sYd["0f<[Lg`u["0f<[a=SOjU>r;a0j8T=l-q0 %0jCTT&dPk$fg8-0D-+?[k4SH-G3`Tn4m[Q$Q7i!&G3LGCF)ZA_Q9puL0@(2rqrFtA>7O-s(AV@4V,3%a4$Ml94WMTcij-9*f+;$GroP[q.27)314!0]T9RCLJh&k2+YKhud(M)X %L^QCGD^goB3XTk_$\.L3M1n"/L"DuTqL@kFkB?DiQSa'm3etO@fHc*&9f>"a_#Xts`aHSAB3=Kuoc2t84I-I#StM^sZsWcu"6-F^r#`]g[7a.Z=KWZ]E0n<@.l0X6dZfHV4?7F=3,XaKtmm5Pde %NP;59Y57'3'5c:CalkPCMqicH8D6j %H-GhbqJ94sI;pU=>mM[Uq(C"4!!,J7%0-tkpj+AIi48*IG>gV4dB6`.PH29Lr_J=:6Iu="cd!8J'SXY#P6it7$>-m]^cR7[XaU>U %=Q&0Ih>)0pbTu4QJk%'"b:MD%p&)8o0!f@1BLhI]?2A'6A@j6W^5H@bFtIjGZ+)OC[1eHYF=-)$/rFhhGF<$S0`PUOmkW(0.Fj&O %q(B!i(N_gpkI\sD?(b*%cZbdg]7b9BH[M/_[YplNn6KYZ0!rJTi4I4=?(chXcZbdg]0sCt>C;c?[Lbd(NAiO-pSR:X!L %Y,H3Ob:MCZTXQboGF>#$17)SlHl#)_dX^dAbBC_EDkHJRbBC^:BqOiLbBEF/kVi5hZYUHGicN:86Xm[gl9Wj))A:d.Vq1S;0!f@1 %7D%`Z+gG=O\o>ne_n6bF9Iqh>EOWS;,`W8k(Y?;VUokcdIEi!L%I)u^cmpOu%I)Z5Em[NIEmd3sbV_$_aZ!\P'p,)TL3+k^(N[Vi %6ZUV*D@X.g1aFFXMH32T,mem385:(L*Hi^@2"\=(P$T&)Z,h'/=GjsfmOFC.K08Jg?5ft]Xu+KLqCJdpC$]4r$$g5U %:)Y,/GK3?DEmd4\V/'BUP*6(m$b*c*,UX$`pKd@.M.gi'Oh32Hid3c0lr(VHh%pgP!t[jeaBH;4ZcMu>e3.E&O98(0K:(s0"g@CqNG %6f'hdP\o+JZDlSbNB'-u]p2mfhKs2(YkLQU^$)F.X*m0r=,Enac!f;/,hr=*;+2_Y.lHb3GW3/RH,;I\C.Fi^-UB+@m^e %RU5A9Do0$>hm5.Hm/GIGch6X_XD*Y)W"%]pqu;hO0^iD_1L`lM#B[cH13@I!jLfrcMu8kK#Y>`<-<6;,R`:EA"l@lR7_O? %HECSm30l't]F)>td:70;,=>jc@t`i[QLkhC(D*$m+:M,9kAebiE>B#ULP=(FbKFj2k[,[A5cr@-)h4A!*/M<0\,Pe.ZJ?e"]BMaa %c@[$-+1Q?@o;[^OAM:em-T8nG#ARK8ruZoqE[T77H'Cb4SiWsuq_))3DE-S#5_bJ,V7K`RPeh7[c^X&nC;*T#KV1C%A:r&ioA"+H;t %6WCtYq_9PE1Qk5m:X#3,0JFC]HRZo>p5H/SMbl<:loeY0)c**.*%U%SW3R=pjJd@N^Xg!ge@7c"-[+?5^G8FsHhW^^8$=k@q&\As %.@MJu0C"t,r1:^\op0;O3,[!@^U?JYZ^ASId/8"X^o0uIo5eeQ-F'6XA4S0jgXrl$oS8!p %7p5;Q=SE)j<=/&X_&4ZclJ.5*17inji2Y/#ZIu9-*W2Wn-9M'hS-651I`J13/DrA(9G-fJB:C[4abGZe1fp=pI8'=Sg^,?To(H&m %rl'9_O_qH\&c/enY-F]4AlsoU-fUJa`,.>sU!I^Q/Cd7Ikld+$Lfr-MRJfhVsHOB`S3Mmf&:$/atdFf@@;XI>[H'O@ %]&:aLWKmM,TNTsoG@mXf1fOND4>,]31fONDiN/*ENJ:&5-r8%?Q5G@ZaFn]Xoj\,A1fONDMKZs.6Y3!CFtpj:aBD0Vkd0W]d81=5 %/VA:>$`CM%;]?0K54HJH\uoF0ak:@+9JeG1Bp=XI"VLT9Y@$r'/;+36OWX2q;h_&3=)Q;dW[*_.(GNY3irrfo.Q5Nh?3Ct/! %e$Dq,K'-JQ[Mm5rfZAH#eZmNs\3j@KGj\1S %0HFprT,Xh125ZadVjCn+eQEA9>9i\os#u@LbDAg[s)]WT2!1Ys\`DO]=M'bi>^HC=41Q+C0>0\_*Ng.sZ,kCDe:U0=K;CtX+>EjuZQE\3,@5Xt**R:58,M2ND<_CY&HCHmX`*Zu+M$]U'[8R+C%lKk>qg:\aal'$-MZ9(W_'$R)?""b0?Ma)bO %!*["%"#FhKYZeW'`$N5NE!LF6KL3[(\s(&Y_5nZ"1*I!bmmhOIM+`G'grf(\&skGPSEI+<8R)T=)WF=nleIO.B&ReJQ]ej<\&.rh %Y6ZVcaNHT3GQcijMJ=!+5g.+@_&]!ur%[*tD]`gOj!1*SY1G`fNiU;dSYE#;'=C5CajoWjMPG9WC'cuQ2Q9^$2Ca5W3]roeU7_LE %mA.-@>u?O06K98f[6e#k@i$UC[o,XNdJ0mZ'MXebrj]8``a'N#&P5f/W(m-[Z%JWk\fYkD='qYhP#YXOaCo1eACgrG4)V<;@?nfk@eXM %Qo;rf]2HjrTIlA,a#nfjN4+\'+Gp`a1<*K3%C\4Y(i@rKS0mJ0mjK@21oUZ6.l"m#5L@G`cA0=Ug+pZOGZGGB>K101f.d>?b8>#O %H:qJQa(@mp<:r7@>?G\XRX//KbKSNEj4Kl#$YtmJXWC7JR8EaR`g0)4;&.Z6bX\8UHJm$*ktNtZ"OP`Yg^IM2_a&E>-iCK3i(i9r %SII_B.oF9SB(4HHhYkQ9RWPRDIo2fc^3[$'gj9 %@l&ArDs8hNfRt,)g@q.m+'W\uG%:fZ`W.B0C$m)X?_sh.LB(5S;e62RO %#r?f_/"MD:RkTJMmTL:_`uH_B$eeitYWon/n7-+;En_"oag:u9bCm#94IG>DJpEYg6b?AmdE1K,r)c`]#^oP61p^jr1K\G[/GrUm %7BPmL=0Wfq4MQBE@F:cO1O.3'^esm3#mhdD&*'sK&2Ld9L*)m=K*T-=@JI)6#pH4XE>3k<6:/bm#^4g!c:BOo_X+/-*0XRaVR;W= %E_L5A=fKi"\KN-7*CIGP/]XY&Y>KCE6AS\[Zb9PN8M)R(H=0E^3L14S[,YIE',!W&rZ]ajAP?h>s719%F]h&0<84u1+f&d,]irFO %Q9s?$0-P^(%QbiA*9C:j-FNh13E?8.KR@q$Z@ie%#Y=T&)3\7f<@miYfcda'M*!%QG*6#E&uHX>#l-8YQR.;u[0.)8b7[.!-I]#, %4FXO*it6B567=hX\LSiA=Nm!cL(ak:7;k7tOI$MFIjHh]G?kLua&iqZHe4MoEk2YW0de1hjQ=/oB+-.#6KinRj,EMIK'M7l9')rD %H!lklM7S&*7"'pPf*4! %OlBh3ijLCP'Mkl+GeRrR^;H..d.@3`(=@/M#=UQpcZf%0PrZR"V`c:ghmJ>V]YY6QI+NCd#B)$4o,V_L;pTZSh&?cMrLc*#XQM[% %F+/IpS2)aS'IHo!>1#F&R-2)Ij#]]boA-!BUK,Wa/Q==gQ1dAuDhG[^[U<.!oR+u[O1S#Zk:^1u(qMRcoR,82I"r`1XQMZgHtOtg %HZWQ^?OU/;J7"p-h] %jb0dm#s$*?fkH"[q"F,6XQ1cB=3LOsp^ndh,KbUa4`l,92ILD<_D'r<<1TUlKD;Nu$&R.0tt&\EBE]kI[&?4%5Y4 %I.qJ-B-oauH,k-q63p[d39Rd3q5tPS/^JXCk8YV.>& %=qkg3=3F18QDh@"KsAiG/;c?TX5tU,$U)TO/6_4hehNIK_GXVG,:mdqZ&c.XgnB1EW;XjUlfk-G5^?nAVi$fdQ` %A?)0N@_QS%6,jJU"NRF2X5sa7bAt"$R`Ol$/Y7O_q`Q[kfi'ro9f!+J-+u$q@Eb9HrefI&;j)?a(f0ro``M0"GFc*VdYngqr$(rk[X9Hoe$++96@;NCHbuocUQX&ksD&Hh8E7H(^[Z%I, %]F"tPAXm1F%OC$delUDJNZ4;%;UqD=,Curo0'&"W?p,*%XYUB414k-7tR?$>+Jii+X,76AQGWsb4Ao>;[^lZ8G$X7GA;+]nBQBgJqfh"_E#B[?7cOJM%4j> %N'"GWIG]=RQ>rggUpi2:X*(/eX(C(cKi9c5oP,7fC8!MQ8?\=BD3*4R/S1j2M5oloa8:mD[0X?&r/:'&[2T.%3i5Q>rf<79f31$A*>+#!s=sAsXBm:p61iK[@lC<:jq!#E:`T(5:t/JV8"+ag%\i3Y#/^ %TAEtN%"rkDf?W402*//+ZP%Sl>2[q;MQR0JKXt7.^C6Hrq=d8$Jte@A*Z>iq=4D-?C*30?d<>>nWR7m!_q@i%CpZ'g7iaO)kpd$o %`#L_kh^(]7WftO^D!kp6>c?e>#EB*/P1,&BlRCN*jj(1 %=m*]\T@kYtE8:OBN,KqoH;s$ZS0otWuhPJ3c1^@T"-kI$eDS"9d+4>+aOkDQA_Q5OJ8k`>h1nfNEN5k\VMX@.9]AC %86Sk]d:O,D:)&CC)F_N#6C__nV(![l-rfhrMOHl[MF(\a[P`c7'nqa]IjgipV-"/Ab\T4a#90:2:=oXeMU(BAqD5/]3MF,Z<]%+R7_#an_i\`!!oP\#PiC[2J[j8%D\_+YC]iVRB %)P\nV@(..,$>o'm/1M"#A&teO/V<0`VAMe_O:RchJ"1h/Znka[`8p7+?STS[iI\s%`HVi(kQ^=k"`<+j>@i!^m^m6U9W@"c+MdLZ$eI:k34G %IRqkL/<'rFR&o=!A1\$RMC+mJXHeI_V(e+W6InaqVJ%[l3GBcIq#G1@_8oG>`YVfV6Tbe`A7$!r6`qBaRc;]*hGD9`2Q8[cm5NWV)jVKXLq3tPhVqGc1(/.TTLd>8c15!.L;-ai1+pPi77.LaA-c7W[C*2AmJa<2 %j>pY<6sf"O*HoHZ-hS+6CZt2jCbW?fmB`)&D4E2;T$q@kqHPh7MZJ5$Q9^8oq$3G]:XGGha^FPm[te,6_D+.JqdCYbC7k/XC+!]a %*oUT*HO(bA7kt'X02*7qS_T57\[6(p2_:5hmDJg90RpTha64h>J-BC:G'`JVU0I-@Jt/tl>*B31BPW'(;&rS5ZnbB:$\j][[W3=7O@pRobo]BO^Wo)Z!)/TnT,$VTl,31`PS[*_5;hL!'Z_:SS9gLpUfcrkFc`63G %/F;%Y^3*)&VA,V-jBB$;QrSs/K;mmP:d_)=#CZHY>IaaJjJ!?dCO9+9:3*X)lh[ag>)).-r(@9,`+ea_r\3BOU1fVN;?i'`NPnb?hiKr=6L_@+0/gGpd$CMTV*mL`?\\I?fU$GjN*6_&/^[7mOjb^nT>-#-Pl!!6**-5^oC.0>.HFDY`C*V:i9(N\*6V=jW)O9M>\/ZkTrI*SqM[C(lrn(Q4Tg#A7i)I6S4WT"1N;7+Nd%2aihrQ+]E %[a7b)SZdau0u@4#=r<-<#U.m/V,_AR8=X5BQ554LB[U0j>(nUu]PC.J6W$Gip%8a66pC!r\ %6oPNlI6bC]fDJJ;%Ja?DM$p4?9+"TeFn4V^&`2nH5bmQA$0F^>Ab&*%Q&QcJ#=gTj1:<\]%[*^)oOnR7C)5magD6AW>RL6I:tc;9Nt]5tD,=,U %B5=O&\,B%'EpOg4?Jc7pkbHaV[DV.U":cnGd9(\fq")8Ok8:DsS5`U<`j53*d'LLkY$W\LQO@g))]mT.(Mj\rT_"'mZcG)s_@@d2 %_iLRr/`@T%NOhDde16m*n=U4iT+l#WPo0s/R5-@eU:`$/qR2,4-Bd+j-Kc$p$G&!'n)q]_.F0GE;qAlsS5QhR-j/e'V0%o:(0(!hYAJ#\l3:S#t01+"gP %PG2MNLfJV'Sc#3M-s]TZTXftfrP['XPe$k_UT:eX1Nd`@fK+6#"mM)uA&7&O[LI'7Js`RGId;o'FP7<^pZjEP2[UaGWQ %k#86Q&p,rMK@HT'.7)@[oM;8Z62rE]3`MCX0crJJJ4_E6)+mS@$?8_t^UT"QD^cj3GHkVdha=&Ncp/,q5sF!`Y@ZANXf$srn]rI3 %Pi\;$GD.LHf#N<=8g)Xt5Co].KV^1KYK%52;"_r/RI:I!0DPf=,Ju_C9bc.":IQVKN$>OdYQ;kbVeO5i.R[M$;#su"rA*N[Zoc;& %"RX8u&;m`d"@\M?.)u%8U+KM?fNd0M$@oXtfgdI1pk1k-2FJr`>^[PD`]B\&>O)>kkutBYJEk"*Fsk"f5Y0t4BIT.sHm3M-r50.% %U[_IiC5*ic_l[DRA7u`aOp+ji:2(L24s@m>V.bWdAUgS%SG*Ud=g].>#TRqHmC%FEo<$Et_5`"ihEJ,P`2YAK,ut0o523`-%]c>8 %M`44tp$?:s&:ZV+EjHs^=EU>71B!ta0! %O(%*\r7V/T&aM7qH27ot.p-1lh4"hEBZb@>L\_?Y(_V6`dDq%,JHT(SE!(c2d#]DC%JcNG4)aIE@QR2HFA(l[Q5tXmRu*o;8:b>:X3_Rh"+Zo;SO4%;VpFQ %<"gAQk\Aq,Rbt*ubuj99fsLmEFeX%8f".RN6:C3QUikFAhT?RU`POo%+*5oJJTPK?DQFJ0T-Z1EYYUN.m3CjWno?c_2s4%Y2':CciCEd7VJ_n-SSXTn"qL'?e$Bco7\pl%SDq<6kn.*mS2pc4f&T4-.p %rDGN@9^QH9Vc-3qgN,2@0E)M`M;=[Oa&5Ya'f212"><(_%[H/SOaX*QG7EG>pX-k>4U'/`4LdN?!BZm+rFHuFNo^M^IHQ@IY\RuF %iuhof'?>fW(Mi.5#K=0#'qtl?EdIf[+/iXGq'nr77<5Z(r-DQ":BjnMeAkRX*jje]^S4rHVNWJK#rD]*T^0L*YU/2=#o1m`bW^7? %h=!I^KS8-K&0XR??-rRCL[R/,\65>?`1HdQJtigWN0k.8MfV^?M^/tQ1q+8@\&6Vlip*B,0uqPlg$l*:`DuZ#Rng)Qka12SXCO6X %\&GCNX,Pn(@)!>"aSPBo.qHQ8.28s]_G9^)$eoTZ/b\,(cWM3`)2gZV^*LtU?IK[:#N,Ja:S=8]HMlUh)b#,OJ`;=F0Ka]*cef^j %(@rdc<"cVZpXEolmeE:C8p`q=?B=D`\""rpV+ST")!P9S?I,31$hsn`\/SD.Pujm0kJ.d5nBB<*I'[K"m9dq>(R1C;ct)7t^mFjb %&,*DtA(&Z/^U\[\548ZqK-P[Xrs3u]It)O;o1D2kKiYq*j\9hT3ae@I^\r\\X+U_SfaSnd,:HUNrO1flmpE-@odqRIgAPP0E2kf:mEDJi)MAU\*LQ/XtW/5MqIrjdi"(UP!-:T+9Y:eg`Gsh>NE^+"!3D;!V %#gNS#rj&:d!8lOhd7U@*E/2l\L'aDril2r[>KsVH#$aJVo(9TtXh"Zi`Eh&7`5k0).f1kkAMR8so2mRD`H/6NaV,EB[IsX*(S?D< %m:ma&q3[d=AISMgpgb.K(Q45OikG1`q;X`+.qQ!u8_&OuU[LMoP,\rt"sNG%\TfM;t(a@&*e9c`I,R@'g9hOOHViJ&BsLL!/l!3/b%W=`9=%q)-rMg:=O.gRO73PDm$D)XokB0ipilmQ!X*U^i`&j,PpK`0J0LV-D4V&m*(] %0dU%i*0P;rO>A-L3C??O&3=Vb@EB_I`E[J=OF/4)lrmuZO#D]4Rg^(MQ_L:5KUaiOqXHj%N-ih]&ks_:/JZPB$u)/(Q!CEiXG#C% %cnjgQ1PFfs!GAW[S0=8*jfZI-(SAOTj:!3FFZAc.b8EX`NT-qF$dK:rDWG&lgi8'FlL!cm+N&XEOu#LE6-pK9nqAd=Y`##GNmf+N/#*0XGj+5Da$Njr"0P>0Mc2?^l]]E]l7`CuY;&1u]f*I.7ph?i*5OHL:mESXl\TNg %gaLlZZ7j\pkTV_%iGD%j:^t:6>]"aS/AlUB;93Mu3U%pgE`^c%*k27i>Z!T9\$^)hU9!pA7W;A:Mf(1hWoDN]S<;Y,k>'gY3Ccno %s)U019C!k^R!1d8N0PjlEsZu!@AkIi,HNS:+gkl0?6 %`O*FI$@6DIkrAfP>,H[\*@#4?pM\D,Y+i(6'\S&qSaNYg\]OgeLXtT;r1X_9U6`T]$@3"/^Ur(Z'^Z8&;H9uNrNY9[`'VeaG1T.s6PI(F&UkS>FUbD4VoBW43gX42H/mZY!=dl$5#:In%/ne'K7C"i.BRdpcaZD&omgt&,m><^YeXX2emQKeq< %(W*aB/_(f/0B?sFFIQZWbtj]kgdZjbLT52q^(o,=.><(2hJGg-?ck/D(Au4Qm@NlV<7X8Vo:OCt+$a$GfFbUR#5#XhnW68%CpmmZcQJY"UAc9VY0541\Ck$r%hf.96:B2NJk_,Me3 %FTEQW>34CN5DT,,KQ9Z@jJ,Uei=eXTV^3>c=uNmh[K0I'7kS+CDOKCUXUKDp=>IB?\tXp7&)1<=YC`@^7D70l79fF[_n*[<8t!_6 %iSs#8'/m?s.eB)aeW"0bPgd%BNI.FNHSt)K,1@LMX);J(;2=uA-YSX2H%MaeGE;dcm0gY[p\95f"4/?:n*t&:5!Anuj+kYs %..)9iDuC(=o#VR/(H1&Ed07Nf2\f;?AG`@5\uGJN6Em(SX.'H8-/!_s/XXNO=G]?^6gdc*1CUt8"!eb$Y!5F#8.Q*\+K;bdc$ %Wk9TmrD`e$>Y1rfMXRFB^IM\]:2rr[W\/5m(%5NUq-Bd\ckB>.a*dkm`;61.lGs]fY"3**nq%eX0Sg?-B1YRY>h!iTl1]Z8QP@Xg %<;P+!q&:XDVf&RU-KV-X1;%Z$nKdu+QHl0/.+M:V-+D]L<5`eP_KNSW%(W1`JBdX1oa!g(CR1g)+eJQLB@BQ[FuZqfn_ %[kl\2YReD59So7an\PeRL1%RM2&+k,XOo#(#1Y'#Xln_2AF1h?s.-Ns_gHB^jZ$pN(jHFVYE+fHodf@0=8MF.rc"r3qBW5]HY9b> %R4lAmR,>k-1u*@0K!ij!iH.0RKg1K$:I2C:[4Z["qcS_q1A1]A;J"m[.j^h:Cdk]`5L)*;c1?^dgK^&(BjS$:.L^4umRgiJ8%K<3iR&XNI+9Uk.[1XI\Y*2c6Q='9tK))/0s@&,-N0TmfH%/oNli*o!7 %fE-N"HP\]=]fWc&jte+$&6NnKA<\U`qSU>s`rm0X`a-cQP(3aKX5,UM^pPD9'pis;,Qc/?a.3A8$fO^0\Pd_V(=Y#F$Hj.cbFYWF %<<khS.mDd^&14RA682^q4uU\Ie1pQVoZ6,8`e@M"=upgAi_/HDW.L?UEj0'.VHC %`]c6#MeE"Q]0Ob;kcgB3 %%N[ %)*SFQA0XR%%%d]nKb_)3i5K$O':LPo*X&R%n@t8:*:^Fr"aCaK?7rB+^uJNo-b6ae&m:D7g@8<&R3Cn/&4J+:U#D]g/<;1$hOMpS %(0I0Z-]_fN#7X%dVh`;]G$>uujulDum]\fXU]95no(X#rU3eF%^5N!r=e9ETM(oLmas\/%:(;WSa:^V&hN;C&\7g4S\P;R$eE*4, %0]NsFd4Ptm'0O,&R,GgQ%f.aSEKW`ZoR>EmRMfpU2"$JtSTT@2(+-6FZQF"4c(f1j?b?FG4$(/e0tDCRj)9W %VbR9m@[Ics,]u_AA#1QrF.>:F*=k[Yk37coTSD,KbB#5W_`_$^%J-*e:0WDh0[:!>:ef.IS?`RSoV3W%rF\.j+&!,#dX %_khSg0[Wn<"j[C`?_;\:%?b3'HBMS*ClfVU:^-0RB7m)%STD\2=1G%X_`V5:4CAiXnn^QIn`&^cN\Jq*I'J5D]Kfah"#9C*#m8[GKmH[iSNL]B7kjVTtAl-cN]60PB\hQSdgim"+SnbMJ#:qVaiZPcN`X]"N9J`B7ntl%m!VE %db.3:*`AD^)PP9j1=aJNpHAHdg#E*sg>Ph*\N^GIfc0Fg8rQk4k^/t;!s3%)V3>q\b[nNa_S7q%5HFIXL %Mfj_#;Z(?9.XRbU!4ZMUBk'EFV'D^s$qn@Um:(Ihe*622=e1prTU\HT*FbN%m*n'(kH\po]sa&eu?&XsBKfC#I8Mjg#+Xt[^E?>p]XeYdC/ %8`MU3_mjDoNiP_=CtsoAq9*YO]orRKP*f.SbreB;"JpoS2b\eqDjGJ=4S@(2\8,c\m'CZSclD(%+h?5_6Z\44pj=gj%*^LjK@+nn %d/8B5_URggn=NLDar[ccBUi3[K.n22eV"S+A^(D(M[u)L>])Oc29Kl-)q.;#k'OXiHGa:WZ0L?PXBa,m&+F_=8dL8a*6)aY0 %'^P/=\n9;K*uHM`/LCU)pV;0h$-lW>FIiL0aKXq>FIiL0aO[rDJ9:qS17Xf %$qfPrMW;%B)3bhfpf1SI$kh^@G9TEP=^9A`8r>p]NOu#)PSA`am@Iod;YWQSO'A&=l$D(O%:h;JP%'NRqV9I,8r>neqoKl'TNon3 %Sn:f_Yp-=g[)Z9?R_e$Z^JZr;H8S>]EW*t](cTMa.,ZUmO\h>l.,;dULP4*PTXG9&&JRR>V,K06'C^kAOe%m0RBY]2Q!IoCQS.4U %F5BVW0&/E[p\X'MVa$4TD>_F9h%9_Cgo>_0ro9R;gcHP4lkQdCP'>46IE1ar/A,QLAOU.Sql"J8'RRTqCj4%pP6"]'<5k=k0DUF)bT,7t=(W)'j59[R5J9KE_s,##) %I..>B32@rHY^Y1,^a[LQkboM4e=u306=3W7EhREpQd5dn9_GP'JZu$o#X^XBrsRFITK"MMisA]SNVfDQ20n_j`XjnJ\k5$':,\rW %Y]jBV$^k&$/WXMTNL"(gD"e@.02eIebHo`$]*iFO$9`V-"_Q`lLe:N?JAmJbSuc6q\6em5:@H69`C0"^$fdR8)ZJldSMh#DE5aZ< %Zp5>u)F3&rfib`d06M8g[dr[>$+Z]EqaOmEW"KJYeMqQZTLpcV.ofPYmT;*?>2Ug_'tKtEH?%tS2db1[2T %n;ck2=3FRS/i^;%kg_HVe:IgH'"qJgSQ_s5,LWW(go88`-p$YD16J_tW]g[`\n9E63@&K$?e9,*/lYHgHF73/dWKan\*V2f26-ku %Z][SWQ>pJ1&aIn%/og>q\n9E6`I9OGq77p%F\Sq9.GSa\([d8L`r;D*324l]Tnm.n@siYfLYDFs+)XiW5! %^gc]t!Il"CSD5T,T^kps[^/#68`k&ESN*ZCai0T6<6a4qjgO.g`Xpk$nk;,]ZNEisFR*4+96"WND[>3PgCKCKe[eJMFhhJKXO^nW %6)S5ABV";rttb;if%0V&:YO,8OYL\UUclJ?XIN2l?V[c[%/Vs-rl'8$h$!Hn5Z^YX"SNuVs)rclZYXmbuYTr0edi:+,W1ap+fH?Rgu-d*,,r..M&?j`f0Uf)SZEb %qkp3MlTmp1>0<(bZ!uiNL/?M"LSCK1#e`q1H,G<0T4&Ajl_C;.?:q+r+I!A.Q:9B>9V#u39!N8dXXpgAlsrgS4D7%0<(tE++_8F543]n[?D!N1B!spiif8l.2^C.fT2nYH<07J\5lh=-pbnm50K\fCoI0F!p5(K1P>k79)XWh-DeK8qUT %bHp6m!EIP/?4m$\/o=Lb'Q&7*nG;^.]heXCAEWaT:dQX`S/;'"f)O.-KKS-:*TmejjTVT@_'rHUHI.U`Kn2&=@C9t99\>*ME]e)% %aDbmPq7?3_&O9NcX>gm%[B>:hfZl!^3to&j6%s"uU1YCiK_VC40jj#cNM.0`.(TDm<7$ObJL:rA<6u#Fp"9FSig=M30@^-E]?cTD %?Rk99i5H[fYI#ZZs!`;HMkdp4>\)/+k_3dho&*.E^$ocNi)F.2Vdc;[9rDYte<"t?.KEl0\;efY-sjj"X@X_cj`9?'jf0-j2.Vt7Kq+1(&'@(i50BS*?0](?b, %>9^RndT`r9fapGQbiZmNE\!]IF>g=ibG.Vk-(Wr2Do[(S#8J7U/>M!q`@o_u>Em[q$e+c_!Q1gU"%HE`G %a_lk'@NS%L[@S7G4]LK#4J>HH"r;Pk',j$O?61,PSlLd,o`/sm:6NUO775HL8/fM_%9d0CP%I=JE)G"7'MXU,\^9[jK!LbCp62f% %-COh.6rX,Vfh[RMfh_07qL9pjM:k0hCdlt]l<h-O.it(T9kcmqNk(8mZ53EgQ)^[`GMjb$Fpr`kuJkpcH#Ci[Z&=.V;hKs#B828!mE'QGSXeYK+4LH8-L' %8At(O6k3Ga@:MH65Oqo#<;>6-99dR/*"]]2.&5dDFWo]DMAAF--Db2MMW4;>KF4?f#)!F;0\@a %:7SRQs"B1M_kl1/W0ll'tbbINqMPZXu#4'9$%QX[[2*8EQGA+F.Ys*bTX-A$ie78B*V`G8"$D$TH60rVH" %`281V.\"ckqO?(D'7)i=7q"-G_ci5r0Cqo2,oLj4eo'5.Cc[A.leSog`+pu3@GJ41`&nL!^k3[AeMn'TJZFKI)U??."g5KOKo&8M %a)+p`2nJV).cWEonAn'8Ze1"dIGf<,@QA>D!hV!D3Q1JHXMG-WU(,;e %X\ga,fQnJPXHmBOU_\QXLh"MC"Si)oQ+J!?*4K?jZYrSmjF7F3B$q!UL_,c/8,'/E/F:bY'LQUY8@4Bh`fO@0Os5o0[2r%-YJ^]6 %?+Q,lM%GD'g9CA+P&r(G9&I-oKs>k,T[SX,i&rJG@QA>DK!'ZqNED4qYiH*5%^*=:%1>ACc:0A*D-6R,M(!/<`>M#B$X)%WM_h/B %=2:.0H;X*\0,=+G289.*%`0mj+)b\0q[a(2@QtseMApth)9<76U\k(!0d9^N=24b22u:XKC1Ek1<>k0r/]d,4UI\hBdO:oLJl40/D\>3?SGsT'+`22d7DP>gDg[/OsK\YiDRDF*Xbtek.0kn(b?!K,7]3Ik4<2kO8 %>3tl+Rim=%3qq`<.J\,3:V$-+'.`m5]mgZQ_.NVkqnR]Xdh(G6MKr-miW$_XnC$n`:.JXa$TXmF^_-R[*Gq^B4%VM;cZ4lM9-9'A %q"j"h@?k47rGVOjrjj/fha=GGJ]10>KW5]?f#SstP[UJLmj;6fKQ2]P!c<"6XY`e6fib_DQI]mP*9V)lTtr8(^kW9];.cF^ZgW)Z7.Cga/.2322rF$9AO;Qj#*.d %8Tmg>.;:=nN?W)%V7PN:*SE$0V51B75)P(EbOaZnE:CnC_ReZ!8LL[a;-;HKf:,QFjLG.W1TlWDlO">/5=TD=_n)S'Ir@oh/"e3W %GVuh(K&[b-+LY:@dMk'[R_^"cBO>GgRWXon_sc3dR86m$Yr\f_bg %@:74GJkVZiq]4P\A?6Z0`$I>R@JdB8W^*9+K@ArjeX44T[&DRa5qRT+/A-faQto!e[+F7Sa4Fo9%87^l@$N[@q;t[#all_I-J>eg %j==29G>:HUQO(W;%S;C&RJ5M]*g/';0Aq'Ed]J/pGtWk!ja,,HeL-)[kQ,u67:k[%'5$h(Tr"?B6V(?BU"*0tl2`$/*fOX&c`PL< %@MbGL#c+5'1kJ]ll[b+km##!c`a+D(4)@;hF+j,CV,W7H;D;!11lPrZN0IM`#V0me-Y(6+Je=!VTn\[gIJ\@1>#d9!:Sn+nlCL`+ %`o:MCN+fE%j^tGWU)j6k0==>-0(7=ZF$iWq!>ZpG/?_L:$"r;ZSE7.L1d6QH/<+8*7&+Eg1n%,O%D)\1VpT=DBP:YPctG=/1sX_, %1lZ+27,qUm>,JTJ&re(Qn>/dP@9uVnUHRtGlS\jZF@e=ZI*tY? %82P;9YX"u:,gfSID\nCFP=4FNg.g%02G#`QEb1h3ZUpmb-e[eKE'<0M^@i8FWR9e9J/l14i#%UkWKX.Db'BcO!M0fE=Nm7hM_+U4)ep-o#H"8[cj>=_H/JTk_NBZ27mfP8J_R5#?@1=_,rK %kBu<@E+GTU^J\W.&.AG7^.iM;opmPRpepZEo!U@9Js?hO*;`Xn8kJ,<\\E/)];u?F##2;%@QVt[eopEN*)9%N7OR\$%q+gl#1ZGV %e:\%t#SVS9Ugq.,jHOaBPb>H2*4r;(3,lpnEp8c1,@4g"a"D:OHu?kTX$W.-7cn0HlWi>NbastZX-U?A30;^U5q]@Mf7`hk6JaUG %040G>Vrp9(\,!9GL`CBX]&7O?0%q3*)Xd(p/r@p=[@QY2&QnDAgK-9-(\@/SBXBP2gc>#AP`Mt-"L]d%KaHmi8P_HJI6*@"#hF=% %BQd_d87W*3ehpV9AF^cl!K]l)43oWpMpfpS"uDEPoQrf9rlh!aRDmEf&j[0l`g_rmFMIqYhd\/Y-#>M\CsrL)Qp28T %?7gMS=Q7ZR\.J01i>tlRX`(WB1Wl7H1_h,H'\s8Qd"E?tMNVR-IuS(*j8eSRFY>67&">U?MFrgF,!A$G'!__XG*IPq6li`e($ %hE%i:-Y$?k:5:_II[/cV97O3r4n>AQ]OVUF%C^TO'fnImq[9c8rh/h(EXGOH\+i#,X1V)Q%__r,/X;Z1)s(uJ3OQn/TDW9TlWc-9a %B`08kdtV<6N,):u<^AB"h(PT(_I#"PKgOp;oRY/KC0MSrkXOa*?0E!+g22.BM\k3n?0UV9i``o6Vha6X$uP9^Ph_Q(h"RN?!Ld78 %3RE,Vr71W)a&QshX1e[G"[(@b\Mo5:AHo3N\<%.AF@m@Yn__2`\UB;A7t21a?r8n8&2,b3X\e9=IaE>eCitl0m%\\X1u_H$iM6/B %CYsNSW(p^(N%.$hW#io:Q`3LN.4SCmh+^Z5]&hCEEUgCa?!R$5dRK6%)a4Z.1lC`Xd:),&l7E3m(BW^M7JZd8Bs%FB;a:6b]%E\e5NFi^%j'X*q?q'$U:\i:M#iXNtMtYDShZ>@.B"ZHb5F%),647feXV. %r2T&'m(qR(bF-jem6BE-*il%9BRg[2UoG'dS%4Aa3?m#]D#CuT>.2Nh9om@4Y1+-HbitH\l#'4Pn)1WbG)b"k^8\f %B4lFbQf?i&3klMi>CIf%B"b)u?kYGJUVc](^PSQ+gNgRRTjke%Hf6p?K1697#/u6pr0V;d\_n">;ap%AcmU"+"k^o2jq!QMNhPX` %V6'$6qE_Lr5ad8me%rUFcr/C^Z!T[9_X7;fG_?#L8&\85b^ZIV<;aKTQ^d`ihqmhFe'$p(Kr>Cp.5i&Un@AIsrB3(0D98Y+Om %O1gF20$"IQlc=_H>GnlpCrLMl,3DeW,ZSood4s%Qg;b%KpMkIo5.0i2'G2,^c0rKMg-^SbnD;7pUEDJId) %khSY;c%X#r[;PnC*5<)C5'`c%J'_u'1l@9V1gS3.T5RB//pijs(\/aAjWZ84(ra*a)&Qg=_SPQO5d#r^'+M3Wq5o,;ZF?!Te)_$b %,EJVBrc1ph:[4:AGdk?@6h_k\6MG2^WMT=GcE"iLlooL>q97CHY=EfU7bfeTZKqfC#"#@C@o\%Hga_S9<`P%ih8-+!`f8?Fb?,Kr %nCoA?)-3",8$$@MVKe\>FbN=NWbo>@ilUcV#Mo$?=86+G0DOd=T8ID=?(LjVB_[jspcX,?OLkcjYD6/GOLP4HT*0.\Ja5-&q,po.cK`& %m=*$(Aou'-^2aQf-W$Lk"0>"-p(Y+kb;,M.MNq00qPdQ.^\dlEcVX1BF5*cQ5%bu)[)=4Gm %6X+%!:OG!KF@FD?5kX0NIt\*$f&O*uc/ll^.5&TR;0[Z7j3(L7^SofAXQ!!r^*k?">0BP0iU'lW!Dkb#m,N//]a!)s!4:?@GamRt %`.-Hq-i)o3-7o2l]-"5TDAoVGa,h&G%M#&e[dLSd/D%C7WHuJ.6Op]!LYr!aq?gT(=aAE.]#G@k:1!Sd3'l0\0Ft#S\)nF/OG(0L %5!1l!T*8`6d)+L;rBO6k5RQp#gsch&Fb<>G@*m%,OpueWi<8oh@,l/[Om:mHmPJ)S4+2ua5=QjoRnFo/Pg>L5"B2%>6DOKqiD)K %o7T=]mQA>);9IN3!*;d%E3WUb9MiPTquQ:C;-f]>4qod0.0cYo&cp_CO%:f\TZb/!(0a^T.6rBKJD^6cJ?;pDr'AMlnD.P9G5$T3 %HhIdEkku,Pb^BYP^51>A#JV2aBHu1!3\+O>hYa42TPr%[Wh'0E3pJ4)j\c1*03DX.r4[PnUbcur@+7o-;]O2=J=FN_9d/4if1U0ejg\sIL2j'S4N:QfH5DAeQMfs+X6's[[;ZmK91_(dDJg@IsH0iqONDb-t4GFLWe:5ao'[qX5Mt:pnmSX55tAI=-<`YX/lKam0?$T+c4GMJ+m>0GIg\%]c5sE)?CK\N>&GW3ij; %;$=8l8#<\en.Qe*h,bY1RsF7MrXR#LRJ5Fp/etSe(Edi^LUgb@^$gC#'%p]@>$k(??f3?.>e31#d4->eB;Tfmr/jQSJDC)\*6BQr %/DeFq5qoO7IIAZhTeLQ%ManUe'u'^:W!J?XmV8"`s$.bB/#u726*'Fk3ELJVi=haOrDZ/+^E^+%?bB4(bC\r.M&GjrF;ukm-''@Z %bT*/NQJOAn-Z_EJ9A-e)MDLun4+"o!l"GdQHJ2HeA:5;M/AtJn^J*&1Y7'g2+c3RNV6"VoX'mlS`LegVqAXl3IAH%TrgB(4QLL7< %f`8D,Atq5\5t@D(a:d#,l$U\kCN+icQ)ER$X&c@t'>d?FrDnFHj2>^gq<p>tAT3<6A&Z5L1Zj%PU^bP_NW)T_mgd@ee+]F'4L8jI2oIna&H"K3h#MKXL:']TV)4n":tSRMIi6'WMZs:+EZ`k;W4A/(]e8)[[!Wn4[<2\XS %>2_\F`PWQh!VHT:D,(`-.SNDJ9,,cobS41ZAsi\I>;_^Z(:Wfl(OsjO-dpCcqYSM3&,#rr@oDeDd=V1BTm?D;EatD(!S4jZe)$_Wj!EjGFqc/#@F"?>Z,H)'7eo4;5>q?eMH+ESIEr*b\,'Ua:C.E;4NN;ZgO3C.s6<5YAFESND_SE*UAn7`GA %2`T*8Lr]?6MTL'g"/-V;=N=)G7"dj!e"@[trN04I8d`f?rjH3D@0.=XXej.f_M$=;SYaHV_?B6_[[&75$PTNl%@3l8-:TZ+B<8l4 %A^JkiWkf@res[2jo799gc=_h#I)(:W"D3>WT>A%!Qk@@0JPsdLP;&qEMkK6+3Z/4R0];/.ncPR(#(%lEc@Jgj)=0"/%"rY03e@\s %(+;Tnhg0uaDS8V2T"g:@&CN;l[Xc/)@/AoZ>1XEAAESS2#,ZTfP/@lW5EI5o`.URVP.0+/7mm,XK_`Bj'F(8N2l %;2!uB=9R%&WVK-D#sljr6OYrp1S03XA:ecV2L%J[-?H+Fb.sE+[52KncYJ>AI!hRSe5KlrM%fYE,J7#E=XWoo\n5b9`2rTDfB88iO*C/DKSZOCJpL5UKI-a1BS\aD.h@rRRThMVe=()n:;8futb=5D+\Ro7&aMSIrm5!CR7+ %B#F_M9`&u)VQrq;d7iMr?W7ci6=sX_?bmW_Bu_orS!?'cZt!4BCVC(sC1f5(&A'HD2!d5&8:.>SMSG`6F@^%A\J0kQ4O4RTIgHX= %C)DU`9QIbKet:o7*3ILBU?m)L..kaHHIcGiT %j=#k&H+8]HYlC5!r0(b0/Aj"k"',!a,rBAjm.=\X)m/M6o=NW8Tc+,m[QP2b?RO4FhM/lrM3/2bNDW8_5&dbQ`!8Ud$u#:h(^SYG@.['?+B67oh(b)qJMCFjMnp\XK83^=JZ]>SKilIkEohPH#$iJ3*&Cl,IaoRhP9"HE7qSa]3@G2+n9c3^+b %bBZ/LqkCcQ'U\&ElTasY=MOUp'Wjq;-)>g,$:D %nkXb_S38O$d,se6Ybf_dK$6n3#6<`8'!D:2ZE"*=5!n9$QGa;rbj1K!nd:81@U:MZd7()GK-#Ce#WqU*%b-\W!rCf#G%#"j=IK4( %9jVKfrUke>\.i4S#>j[Vp(Dr,ElF\W-XJ,KZr!#Ogds/=TnR5YGJs(9$S>=hNiHa1PgBKFLO=e_i(rNpM,f>*Xm<2keQ@ %\E^ktP(c--\`uFUi_Fn['4UB&W8^G1i934:IFSqU@,6ECGh&L$JfCo]08#Z5Z&RB1FOVDJ&sm:Dio/H/"NQQXm(4LKlJPuG;NOOq %eNm!:c!o,DWZsJE30\X'(-BY?L"p)aJ*Rs(+J,n<6@`9_d$dY(/&Z\_TkNaA$L=`&76?f!RTO]OD/#muKP;]@/J'b9Qq"U*)Qu4% %64LTp<$Z3MK7SK_ID1g@M):,i]>4-dOej&37:4kK5GOU/Em61bqR'a%e;nmI6OoKN[,dL)`4l8jk2U/donlJA=2R\#aq87pSmUo$qql$XE%Q`L14\X7n!hk[3G8>tE?^fMF-q\9ARJk5Hh;Y+K.JP,hq>M4"d(*0)',[nbKcK.u/2? %h1+t$q"r86q8%P*.bQt%^#&"4QB(oDpI+g3So]NuTIP@fkXjS/XR'A1*##b"j%gRWg\"-VfG7O;l$lb5P9,e2GCIto:\U'q7\BPp %UX=@l0(UJk^E38rKjJ\_'hO9UKjQh^8JK.`^"a.lcL8R58FFP3jQrs[l*'.$@4L]KL-th[O@%H,r?%k(Pl95r7^r4/?r&j-G=W*! %JiH?+G/(%t5Ku=IT0K(mFBRBV+TIST+'+D^idY@YH&U#3+tpXU@(&q#StR5_6^_V:jT-Jrk(\=T7ZNl7N#:BKnLaLjEOBlOn\#Vi%)MOXJZqqF %#G7hnX=O_1X2.5A`YMA>RERhC[o..RgCEQ?uIilhSsGl&(=[f".gp%53(+F'HD^n86^eWVH)LhGj-AV_%k6f!RRVrP7DgnaiN[pnjX)*\XY) %o\7uG95&gsN9#^;4]7B4Gm:1tp)^6N0^u2af`Irle5[;bIhm[[lE&G<',(Au2llDuBNH)/BY@IaII=E2IIH8&H`qQpHuC%\fa#lal:b]bHJdJ)3nfI7_e07Sb+YLUP*;Ja9a?1bhGT_a#)SYBKEn(,4m5Mbn+($VCi %-1lJ1:EOd2(K(N(l0NWmC,5W@-i:6QmqNs`/4sO&5FdAoO4"TNUGci*5&KWZqQr//O*D#rC?E0rb-]'&2%ZraL5pju.t=E!`iS'o %G[_CV2?3TG:2P8bHcAin5E";[Hi%4ocrSgD(90JDcc;VW9s!kGr`T#?lo"k@347H:Q6t@ %0qG"l,2rr"HnEoIKIp0`7No3bXS@lgs70'%Yud4+/9eCnpLjnXbTN6PogWk_Q.7!FQ[7s&hN0qtf34N4)AaEM$#-)?RAGeSqam8u %)/M5&4gZQR#mu\HJJdl-`eNJ9\LG4'g+;]d%gV1Z@Gg:nfSk'l"jt`(KD)&9n8OO'^"S[8>2cM8S4@V>[?k-eiR0Z>_I#un %S^5'9WPU$Z\"C$/Q&^^@L%jZAfW/#(rAR.u*o^/bb.1JJJH2k6[-8mXHgZTMXsfTkR?*U[4L)(UV.Q2-Nqh4^Ut_B!4c]TdQK %AT)t+>Z%jt4=,[CmYn()dmiq9651Xd8W"`ilM\?L.F+j1l*R\3\r^4:*rKbU.`9 %WUaZF6>-A!oK."a',`)0Mb^_[!bfs%_j[12<@Hn6c2q?l\>.FfGu7^0\R\i1Lt<;47VbkM!`$.[M$fl1)F %'ibKkmUp7t*i[2-B2?R88;Op;?TZKk@PBSZBru@ZSW](7s?=2>Fe7P.Q^Of@T/hNVF#-6/iIi&2"g,]L6eF\"Y.g$:Vb5OJtBaYR!t$`cqg6rP#HYpNgOb]G7'C(L7R1IMJ/A@;_d16e6t\!pFN8C>)K;)'.TeJR=26HlusN-L!iM` %@uFZXIRhpJc8Xi/6+@cFRfaXk+;!m)X2@71'1>:2b=GdH2)7RGMttc!Zph$,na#M>__$bdZg`Wd.&_">':G=bXdJ==hb22UrO-r. %CR'O"-rJQNKb&lRGW:B[QR?2di,_`bQqJZaoe<[+Do0$>Z^r54_g+moDRCB,lqB;gI_VNEr`a0OGh!+_KYP7b+GRljq#qnl#0oO8[b.j?D2Lr-ur##2rJ=Dl"1$$u+5HAhZQNE3CCb&0neVAo"YIf\K*7ZE\L["BiebMI(Xl5WhNo>C>08H6pLn1n? %/W(A+>;#DbE10O'>(@"9/R0ak&YKbF0tJ!o:h/Z2^*!_6O?*(c9LjF7o(4 %$C[[!Y68L@5Vnh_]^j/g$I,faXh>Y.!]7f_>]Oek[u&LGtnESJZIs4ccMM%A2-N,OLWYKnZ'5uA7X8md!XSM,W&T0$*k5%R/d@7C8FaAIeo:L_%@ %UVY.d8jK%_(knFYGB,-"58X":5/pmpm/L_e4kEU;P&B5/i#XebZ,+GQ)uuI9Oq#\s#Fs7dI*R$;I+S?t[8KXg6A]R*H"Z9-4a(&: %7!G]4ctVD#,.iERb2D0:r*[SUP-B-k.uO:[btFE,flLTB:;o;agpuqPO?i*.M*6Nr4PnWcO*U*%%#K %(Z>nnJ.+Lu?Wug1L0shquJ! %b9?LfST*^QiHlR4Y6(:n-Srk?eR`mh0>'n)RGkfER9&id@sJZtbt@>1X3gtFU@q,O3a\LZf8Wl'-J_e]BKpSS+*NRH7iVul(XnXB %>^(%DL&sja^aZt?Xg!.6+,)rYhdEC;?eLinH*rN#LYl)dCV[B^WfQV8>C]/'/nsd('IknDU[CS`&]cOE %@GJ]C7ro&BGN6qienf@%G!XC@h5D,oh[aHpm[\sESUG-H\+dXqhgnj(0eQJJcT_HhjjVS9*OaJ/bD-hRZJ2LKW10&/QCkQ)lK %-Fqr[c7`Af9E86kf2-T7k1KUf_I>:-*-t3u`*?tZDW"YEekcIWT:8r\-D@A#:Eg>CYm==c_56?bj`qJa=OCMc,6O6fbDi=gVXOJ_ %4AR/^Z7d!WhgiDRZkAtQo0f<`NO_2c'IqFmaO>7i!`FHCCeK3Wi)aq@';d'M[0^[SDOV]d-,b:&*A6.WKg6-arJ1ae[9tZK@YbWQ_luZ5ct+O)j)+;[$;jB-OXrt%r\,HoXX38 %GgdSlFEFm:)O&`;`"rjF`^.-rB+Y.,L>km`[#HrUWJku6D5>0R28B1JP?O6W,#p6Q!cP>"aHL[ji1>d*H]n9!+1@A]oI2_H=+GNBe[TZ+*Nt1*!tghrjGs@7!*u2A3&]+V_S2_d!i$>u% %nf,%--pV'm*ac[l>dl9tgdj5XdR; %CW2(JX_$XCWW2B90:l:60C_hJ#@paVLCA1Z7Xk04"JY_"rho(%,OJ %D.Tl=rFQ%7Y.'Nt'c^M1c[W:-ZeE(8cY'hQKk]g;gGWlESeV<8nI"BI)(^YkaA$?^,Q<>%n_qPbF!*YT't3=!la3s.*fZ`+^6pj: %q@Zlr0k6:Hb[bR/-@:>L4b0a5K.3kD.A4!7)p.$@b]gdAB+OC`?0t&7i([8V>`e,AE[4@;,kTGZod/J)\o26XEiIjHc"==$c.#3B %]spN/I'Rr.4]o":?#Gt@+1l_ir=^Se!a4(%6r%J-%6I=+_a1?i%Z]:@/Q(C,34ANKSToSNV/';XP;KohB1*3P8i&kt[YU''qNDkB+8 %g,s.#c$BjQbiR3:"S&I`FRG"(XR)G!,a'trq`Qd88-p%6i]JqTt8hhNqP\F?8rk<9A4*eJ/.N0Fi7c#g)Z&4bAdLY<#RNcM%B: %:apl,.VkbR%\IpQGlP7-''U&7Tth._YdVLg.^X7-F,(Y769DUHZ'?S$48TsFK&,MRCR)VD_ngT@&/9F=!aPn=CGQX-keiLk2VtFc %"R6`RfZqo2$T6MuM[rlB.i;J=PF3[25fd1CR,+b*r6'eMR-sVdfb.g)b<,f]!!&JioQ*?JJf";qN#c]/OrrQSWQKPgMUX+,R6!RdVlcfM8G3AN%<++u0ok`Gn22D$$AHMVi'!99` %pdQ(]7TOIrA>WG"!crYClbhBBZ#"l']`GTgf[+Ed@2)q:mFE,jT+[)R#b%Xu_'m-UKHRRp+XfVm6;Wldng=S5\tTlb81f5`5`8!N %1RehG#c9AN.)A0%@.dBr'u-c^[dnj3T$oL+`l@@J'U5TP1;rP<:6ki`J,+Hch6)5L+)"nIGD?8ZIGmf7QZ'or1W*`tEQ8t:%9WhM %;fU.u`a&_b;rP"/O9Z^B)sr+jq$R"Ij+`OEA;!W#KoK,>oo-AZRBA2$g())`NPI4@c?pfcrD+>f7^kOTnk#CK);"'Gn':Z"j47a: %Q^YVEp>OHu0`q,#mP!jse4:\n^:dlH2q-k-J7b(9\m"OJO]b%'!^$T4mip(`Is9D^"Dc$UI9KEYkt//UR=!U@1<.Tm0TRa(gGF5p %2#hKBWH!`pD:\e@K>Jf;."X<7%Tqfe-T)ZAe98?%V@j%AMnCR:6k&jCGCLU:a8q/heVrQtOTQ;3ReDTU+pTLt/2du?j8_W'#FdCu %Ee#?SDOEU+*2!S4#_Ksg_hd@jmP(lA6mB[OZPZ**a@kE=me0RI$Q5O2"dIYsbAk*gFYXZdi'F-Y;9 %O0/9h,:@N4ToC:IScuZ11d6^:NpD:#%&=XWA9SAbj!5R+PZ2P/'3=cc2p(Jj.N?H3&e!54-KWHLX#O:YIr=j_IVeJXg3T@WAZ)qD%)Uqf?_^uBfFXg@LrI$S\]V3b^FPZ]SHFqm/4IiJ@,R6q08Un%5I$/CrBcWGf*L6Lr3'ZL?NC> %lErW=73%&C2^HOR+X7K7`uC0RZUGjs35V)mSTu]PE+5e16'A&Q$1pJ(V,8E@m>F=nh$$r;%cn)[/^JhH(mqim&3IH2UgcVJpAc^Q %BcgaFTc%O$=Tc(SI.u-^BNB"'%i4m*=-?G]8prf$1hGB#4j@g&&/L^32drO`C)-K4[uIGgREL5!65W"N;-p,TS-\4^";)?)-msTf %X/P0+T!.7#`]9dt3U2eF=\F\&TE1fanqJi\a3\g9Z5SG&$7#uW#6^H*Y?HZVfM %M`>J[PRbh&dQqH)efcKU@(r#\?K.l(lbs!s(6A-Vb!_(R,E'D#gA<6.&nPRV`VJ;"asRYDc$h:%_lN-7Q7F5E9nR])Df9XgG+le8Zi(&Hip0b)Gg"%D+u*lK6S:."=JW?2^+q/h0"IFn %?j&W2_qL,16E[6j"Ep\>I"*PYXCK\*kB04V$gm*8:;5O^2K(-)aJ`\1l`qJ7+#a?c9&?orSnmlnlc"Y$V)E(P#ZSssijW%LcBm!C %[OY"V<[k3]!,5jB)6L5*%u$)tTW.l"Rt'VQS,nAHb0FVhTlW[k>KUjBJ>`h=$jcKS4Hp??Q\aG %:qTYd]!2Ei;OBSNGbb:a'T"">:8:6'dI;g"1l[g9J*a'(jaJ/f)qVqo1OEF@ot`W7%*@"$3EF[H.j&)36eAmU.Y/[=!1tYZ-D6je %YF5LkR&b*oHWMCkj+?Q.p^?"q1%6MB&bk'G:*bW_G6Mn2>uU4`&@_/<^p0o"83*.V#=Up]3JenNW)+0B`fK@0<$af8<5_`b`+$:C %h)LQ8!c;%b5.[+sr?">K%6j3F3@Bg)Q)898l"5MY:6n8"=P9a]KMbLcnUkb*cA %Fb2]ZTiB8qf%be8-%^s07GJ"b8pZGDTu2;uP34(]$mQNrVS`D'C:)"1_lRg:PHG^`@kf=<>7)#fo;[KZFr4\lXL/+KcM\WA+JGs6+)LQqukor"'O4hC#99 %93iDT4d'=Dp@L+@1iT/P(9+VZbF@O`C\N(0rMkY:i'036\DNi"o2@Jg_A2Z9A[V&U4F#=N7lRTMZAn?%sWB/Sc"\h<)OR_>!S/[6BC%T['BI-*OFe)[dCi>NZlh;W*P\1p]G7km#@$bl4pT$*bh0LYCT4ZbH>9nEOIRB_DQ %3e@MU)+-uL$TbH.][nlk$T\9SaWroY/^E86KF9hm"a."%l#8pYYb7WVBT-mr8$F,8cB+9lKr:l'WGjgpeq.b04LKfr$TcY!i?qR0 %(/(&nlu56\Yb6_X*"NrP>gS&O;ON'oK(XrZL/q@/#][cJfLV")>!<^A6aql`39#Zp9\KH959^aUP_[\fQpjD-6*X38(A\?[6g=-_ %&XfSjCEleh=-.)h%M7K(;a*Rh1I6g4!+]%i`PP(s:Qgr%76,e/7ed/Dp_J %/6`#gdp'Cg@_9&DAUe\e,&KkmHT]4U;)I/A2k6K#RT5c2Mk;7=@=]XM^oo[(q:.\1N;,(m;S\`s+"qb`PRHP\VgXtM+R53YEe21D %$<8.?3.8OQS@e@XdB,X725'VEaZ@u>;'-Bih@ao$FNb3Y,9GDiYH52F+M^gSbEKH3Td.@7W6Q_CC$5gV1f!#B,n61rLTppi%D@[Q %,n1m!&)YNKP(m=!Q3lkcV6SRD3)9(cU*@,['uFAI/sCfLeE;l*d^SW5";)qBKZN7054e!;a[+a3\/KMAb^:ZrORE1<(.GT>R\cR/ %rP$mK@1XanJ5k]5o\n/,]R'/*k4+J6J=!sJA9%1(E0'Js1V5'YRh`]hcYf1q,\qq#aXHK@a*gAJQWOH0#Q>S\J\/S=V5Mq+?<8siJTA`mO!$B,4f2t#oK-J-Sj$+?g-.Tm8s>1c/Bo=[+_o/Z5j'0 %]PfRn^f9@4IDXOeH;='&=.rHug^e!@(U=15*K%2s[e7B.r/DT6?XaRhn.J1[IAu?U_l>i`aOF=1Cl'AOB$j`>^@4 %jpbGu`/d1&2I-P2Wg$e>$=V"$)E#B`CA`ceq")^Wlu-(]&$^D#4<[9_l.pjg>cO/OPhu;L912(k)[o_fjV]VH]R]+W.W/+.kZ\P; %iV?"&=V>Rh8-Z<7HinOb^(8E$#n--9\I*,R`V7sQ5[+F'^/frA&,j:4jG9e[gp.TKSk-l'8%8JR'"F],2^D<9i(\W8Z1FA$*aNVN %5O2U6>=?fLeUc[B?:H38iYYbmqF,V]68C7litZ2S>7\`7NE)L>+IQ1UBX1S;=[(0Fc)Gn!9:!n&PRlI4kd#SqM`#D,P3)9LjmuE@ %%P>le.E\QZ.O6:_kK*qeWHD[UI%G-c>-Z"Vq)j?R;OIZ!q)h+AZjcAUAGJ^a0+#bkH&D1Wg$$Q!np-,`+oCCFbK&E+Q52j0np-,` %BqA3hZ@&5^>PN'kq5n5ZgY:;:Nan+T7V03-PL@QY^Ub;a1+W+todX?`Z+%VjOWV_"H;EVQU$&EO"D/3-isV^NY3^f;OJ;@Ar)NT`h_Ya*6f2pcZKVLaktu1eWq/]6,OG#ngl"#/m$OL %i6aPrn]89)V>S]W-p*,^!/<@Sou=:>'"FZop)P0SUa.WUR$'H`O>`C.UnHV&5M9)f&9Wn0B(Q(%N.N\qI?E6R#YO6;^2YCZ"P74'SJjQ,nc"A"lV<8ZG\V\ePdW5/[WirMs4EEcVAgjd.$UHFe(KN)EYUb.9D=%UH'Mg\0mViS1YV7 %OG&3eKDIE4W#Q2Gk]S1G7%kAZkbn,uGlHj)p(p]oO&X8[XS*ItCcnfQ+0G3k`2Psn!nY0*K8Y+.ojD43ZHUIb>[i#U\(,"5$Lt5< %K63^&PtWJJ4;(>_4)sQ4Yr:s6N8eW5\4771>[n,)N[P;MFV?j20]a3OQuk_>gATut67\dlI$`KK(bdV<75<$6WA:sLnH&][[l,A# %M*fQ#k#=HCR"/@iq!No=qtkb=@**gLF6D-i`KQ6jYKeml!p4H]*PQtIs!6pocDg]-s+Jd.iMWHm8c2s^0/e3"N;=H6P6_=\/1cbQ %K;U(f]jgn>Sm-Sgs!")^7kA74iNk[s[L]XqXOI7>KasfOSFH&b]D->f$k$o2b6KRGI.#Q-C3PX)d@KZ/gFV4=(@#)GQ+`\Af;r:2 %!]"So';1-gLLVn`4D3lqN4#00!K(D`N`q+:7E.+`:eYH?>Y^[a+m$qpMH6=AX)h?tF/i2"Xq0+? %\"ND0Rm]5&>P/-%>ZiG@e@X/J)RRcW[Q]^%kA\Q(>5RdIqqBK_9!MaL^C"Tk@BI(s=\G4n.FXlmgg-[EW\gXL,,i7`:d!(7P7h*COS7,/9#bLJZT^JG\]p\*:Vk3b[diK/@ZY7'00&ABQYB4;[k01"g1Gkn,6bZMZI"+$gA^_`j< %[O6[Yrml`;\3'/S9R-QIJ17Eb<':]JIZ^2%EnPB$IJ=I;>MnB2+N]g7!JCF#plc%L'dp9;^u@ojl6sp4%\M^k%?!gXVPYc %r.LEdZ^=9aJ\+m*jTXjaietA7$X==km*Z3b*;,GB'aHBef>&?O<"V-VL(jkuTpaaZ6%!*fFFe&\?;2MU %pJA`pA@ILAm2emP*LXi:ddFhj*hkj(@peob=m/mq0je,]AQ]i9m75r5J#cR0Sr*i8B3*#Q9qeFkq>j-6kg,`dU*f' %nD5`Uk!Fu9BPT0'4GL%!L6/!UI,Wo"0hCsZ=*]`B1O*np7S])a1&Q&)rAk;kT/>Aq_"&EkuW8?!l//4X.tlVo$h49h\-2c/V0B#t4.s0Jq[22(+k %\4+2:Fn!3cI:D\c`.guMWS7MMfp_89nsBAsXiflhl=FhPcV)Dj%T[U>3@Z8d,@A6o=KQAra2PLXA@ %-!EP[S6R8'o"sOS&R-,[l.qdmj$&8fo[+.N_n$+)D4n`Q`$V4+Asj %MLB<+=Hfq%V&((GAN\-F-Wk1e>KO&0L1:o:G,fQJH@937pEC:j-Fn'_jb=F"2@OcdX5%ZG`J3?R1s6>LPCL1gT+ShMCiY@='H9N" %m*OaQjfm3pJ=W@o4)66IN$b_U2* %PRrWu!.oEE]JPeB91hMV`&#Y3htb;_=-0h@r-i*A+J*:Z,ZZ';+V;sV1Vt@a,m<4qB'-%]&5NSM"g76DD-j<[8fib`Tr3'[Ifi/c %W;2Rd7=cAmLUpMb*C">R`-HhG6oO7q$-rcB77%#'>"JM0!*7\l0$#L %d8*N12R*cQUn,Ck7RX]1Hn,k?:1@>mq!c->=T'V(g;I$'@Pcue^@N^MS(OjcJQ;0]%Q@T7oT[GIb&?VLJjsd^fWp;\A&E"fGh0JnIQprRX-!"WG2ru1;nbbBZ$\RGJ>Y&q %?N@HuOTGT:c/63$PTDPOXo))j!^k.W4^PKO5O:4.Y[-!mHWiPL'Z*^.LoX(t""SOaTPh1/G(,h:$3=K/gb'6pp>P%[F/3(XY %#I\-tjhH!B8mt`SmA8MuSm>U&OL1uMe=g(l'Yr/]noM/1EE;X*BF:$M"Q(M/6Bf+dE7Z,$c=B@0%ja%AM-EJ_K?.2&+?h1r)an[- %(:/W.5fUe1=Nh8fqh3_'D.^,*\K(`\;!Hf.gDSF7-SK"H+a-Wf5u_Y.Wu^Zkhtq%A&R62/QRQ#`e*3]/:4fS.OL9F*nl$+Pd_Td"\-L.R+f4[WAOlX)u)kLK0"-5,'qVDG&R/u^%bW_ %Xkar1Ej)?^'WuUtpr^;.NJF[m40!>iPOdj4Pp!\M86q'KWY2,/;_"OYFrG/dC:^u]K!^PJrWk:]P;iI1Z%Jb^"WEI8q".Zh?jD+m %+ourdo\RamXKgB!-r*7`LiBRRBOmHhZ6V@4'K+aS7M.Q$$AQQ;eWImKS-%tX-GqBtTa@Zm_Vs;kA$8>9&uS7+^ZT4t[$thnYm5c$ %L0'@H.D#NnK/`WgnITKE`CGF:f,B< %B=78W4F#?R>EC+OAi)m0\6.`o5@b;f`n=U#0%!F]Lk)Xm8maV:f);hARbM=rt13j2APHT(7]I^YjDY7>q83q,K]0%XdmF=Q65N=^c2fOIP6MRsg-1SST!sNh@^LW;VTWJ8eF!Ao_m_ %>`@P7Am`pHkD(Q,LTbKpI2=tK7/K1=OHXO`fGBZ2%G2(eunr@&n0\QM]*sFdb)oD$q*cX/nn"\Qk,OL9M&a<8+n?Glr2?BPV%[5A/Z@@s'2FW-&l>mGni23&1XNh %M]0Wd8hC_i=LVNe1U:f+W,[D8NT&\(S]_]g.Nr/eKMnO/<78FnE4J[$ToqPt@9cWc0YAQMRDM<;&eP^2QROPi*#DSk'?)[s:X%LG %-ZFit/3P_GP%\Xph\QsRKT''^fPQBMQ]!2p=8g;WI_+'p4]Tu4^Kg-'Z-"9&i$`?1?qFj`P26I2.8!0Aljll,6MK[r4lO;N_-O^2 %)CL>O1c?Lskm7TX61/k(dM'H^oF`]h4B#sk9,=SG1?pbqKS''e/TaC$m_QkO_>5f)]2*lSqCS"5e8)0&B=AhRtKea'4KZbZ8kHnYTTC4'K,uE0^jk\+GEd/NgPI[ %L2rF89f<6u/HZ;TXcq!qE]Xo\ZC[9(6#p1un6H[P6#t.66>`[R3Cp%O`<^NhanbL:M<,kjAK^g:0HoaJ#pqKMni`t2/I+jLN1GU^ %Q@VFd=P"N6[tTPB7:t>6[tTPB7:t8+^3+3Cn$*88'N;bsC?L2D.sa\fBDD'$W^_b*U0#f%>Xs%fBj6d'6)"PDZPElSAa2%&&UMuL9[08(H0^`sc)mmUj*8KXOa-\A;]!P]B3lYG34D?ig %KG&MrFNf6+'"Bk@o,je35(\e4*P6J)Dk&f,UR`beeN1b4(O&PfUqVGnaK!2Ja)Qkr!(Bl0)27&c_XW=(aSV.X)RE7.<)nos64nNUII]]:@%/aZ$*DiN_C7D!Pfa]l(>C/'U:&SH,b/>m9eLQ$ %`uoY_Z#I;keGNYN(6Pj_?VW9GooJ9N19073:XlO1hYDX]ipORhC]>4$Y3"*\ %lc7.tCY/Q?g9l_-f`8QM(^h.Z%T97\TiB#TZnRg$TcdLaZ"+XL)fbW0Lq>>QG9>GULQ)De7TM+R)#H.DK&5Fsj(32;jFWe.kJTZ& %#nZf<)lj)6?#bs,Q1Ums#E<(bq;J"Gfb4(0Is';O`NKMc#H.=J_ag'HlANUrba\3eb=cE0'$SNOaP`R`e_N,'^gbClk'>*#@&-D2 %_)uN4Xp-oKQ9D0T\^e?!!4:PIRsO,+@,@"uR!8O4iMT9]'+)IB-["*=2g#q\UFX5Clb_fHcbR:YXAt&A_@F]Ll15O_7opE.7i>R+ %cVG:mh'tTn4a'Y'U,5hQGGJWOihX&J)FXYs9bH?gINYdS]d]M/hBrb34EBHJ>b#r>`JtCCmKcA++iXQVn*%r"CKg'u3EP,,T<@SYZ %*%r"CQ-.a;%*,0GQ80aFg'Ve11iYY(>0(Tg'kT[!'#tAI>?/q*Ch'3AY&4+9G\JZi()n',Kii.ZT%(YiCt`X:=p,$06@G5g&1@MY %9#^O*"41*=4kN01#@l.^n6J_AoC:4/YrKJ5ZrQ=Y>iB@so616b0T$uTSl?]`.[AEQUpf/\K[2dubh!RdsuK`J8-3f!Z,W %VRLZX`-,qfbDs-_/]n$0K'[U#b$h6@MWS7^7enhl$qa %Q>c5m8U"*):F30-mKWPd)+,eMWsDqd;]l!a/0ulg:AC.] %8?PkJcIZBh*Zk$YC-,W,nRZo@NDVbK_o/]`%B3/Rc(5e1L_Cgr#l/2,G][Wo&XGpgnY7.53.7lDC8I"Gh0/inM^"b+/[5%VG5`k) %f06p5daS#I$WES$NnpSlf,`/N*(n#SUBt$F104$VW7f-X#^*ca7N!jM8r2?51q0\AL3R]7;CNNB]-j#\XG/-h[0b8c/VMN2+G9,CIo+r %S1#SecQDr<@MT^5ntiJ$70Y_MY0I8h&Q>hJ$'c5;cCdW"e%g%%>hM+]4%"\c:0E^kF#nrckco<"A?9Uh(_O,(!_I4l&BA<75ZQUnbd-mSogAR+"cfd_>ZX'.]un52RW4BuB+9h?686'P2<&n,rSXT:@ukOa(b0,,TO %O&R]lk@t6Xa2?QW,cV.GP>R'(7!Ja:0_'CdFd#p)/5NX/=Z1_R0c:/-<5r8I0,XpU]c(C&"gpT&Ge0?paMf#m!Dgn?+(InU;8>h9 %r&*u,;8BNW.#oMuM9I&dj1ZFVaXH)D7dH`oTR[:=ii@WsMuoSW0um2p0,XpUZc^M5gnHcr7Au^u/@R$&As$6fd6e!h)$N-mI6S1R %A/+OWk]@=E4IMU0T;i^^CQmcLjh\4M/U+DVVoQtY6Vq*hCR+U/V36?,XR(-hm](%1'=m].h=QrcP'a*mAfdtu-**KtVO=?Q_@-##<+$ETNKB-' %RSp1$=*4Q#jBLW$e+P;Qf8.knNq:god6,H3JJMKH_*U>Z/V.KMU7e,CJ3Bb\\Wh*0:0QAj_ZsRpaaCI=?fSFbKo$583Rq(.<8"R7I)=-s99B+[m$6;=A,-pGg[EB:&86r6&Tj-68g9EaI`oFo3"$55`$/5o)+UYi0Qj=o)+UYqT7-# %3X+WO!/\apknKB.!q.=&9dc?sWnrTYQZj7r[7]hsI+6pJ.l3C046>omAQDuM]UY7a?cCVrVHd\5?IY:hRXg.WLXPhsU,9[s\%FjM,=;nLfO4NWp7O06X7.jhEGR+_Vn]@ttP3a's3g\&SM6hWb8HK@MD9KZgQRe^Pe<8RgEiXHL_]WFrMq %Tq/h`U-^IC%d'nZoI9jC\QS/t>'R\`DI(N=Q>&&]k%tiS34(T^Cbg7dq*dq0+@'co4AR$$DPd0r\`^<=DiIUnP_Z[+32D?P2f-%@.E$?pVJS2[kOCr?r'7LZ$$KBb6(rQV!:s^8%q+i3HOqSdn %Y6u-I$I\oUK&qD$mLnrR@jpg3!"sUd@++.b*Dd=0,uAPjB6#V4AZRnY,V?_/9B\47!diH^DK-Ki[u8AX'+_km5CASfhc`th,*,,[ %6m4St$RlihR.M8KBXPEaST--6sMc=q)3>^7O>/KVWT'.J'KPKS7Hom;;;?b/;;e,;?i3'(*&3YV-m]B_l\U1F7'+j(U; %lf:kBX=6mV"fgYpU@/T8lW)M<2<f`C*Y`0T@rs%X76o"a=!VHK?U.b-$)>pniBX]ToTG]\U9g\S?#fLgg@,[Td5E2pFb"rntDAkg<*\nVk`]*]Mc" %l+/[hp:\]";+[O:H$nln2oHe-f1^9b9[r]BPLN9J;bSJ,Q>nbqTCZ"\Yh!:@&hR*':^90rWT)Y!DJQdcS\$qa'u/1><1fWn='GLO %ormn:b>a53bL,6'6N!V?S:]AEh3kop\>RHe5LLB/6N#lg=%ru9b=LX5!_"mLN+HNr91*j?1;XO](X8m;:g[gJ;A8X$GV;s*B %G;`dEo5ta#k0;O=*]/6q@k&-KRW2:Xj5%SHB.P:4qgkIZ4_#@b^?KSfUYQk2=8Ck7b/NBh?]7"X,b"7@U$*F)eRRbu9G8soDjrie %b"?LLluM(BE(RgD_URONO:"o`[59Fie`J6?K+K=o"%FiKQ3JgL/3:WbO]%R?_AK??2`P*FhRYL4OUB?afpJg[(McNPO&U1&eC,Mc %>F90>'u+d/"psE%5J;@ji"sOFr_f@/D!kV_Jg%BK([p?V\tH$bl^/-o5/*Q?+GpD)XH7UG[6diQWIE.G_GP`*lM?[$SrAeV)0Udl %`mXZ`RL$^8DSPeIor+>[Ra0IC6[i_UFkV_]q3.\3'"H69_&$Eg!BXl-%3>41L&?h^W(NR0=2qeIk4!u5p#b\BAZfhm@t$I%dkX?F %,dqdgVqAL,A2E0 %gYnn=_eaH[X/[oG[W@t1m?LjWaS6(Li@i[5q2>-++rb-Q@R/Ba9W;sn %T;KD\5<>Np[>@7Z'bTRKfii0fD1WcZtfc)"oZ8Poo1e6Mg^-ttce %`hY'q&2$.R>u*D?g4qb2W\F1`:&aO;W=5C2^Lh;MCo<2G5j0?&o^H!l9a..\NBb!t=7gi?tIl&Iqs+H@k^V1g[e=2jWtMQ!F`W#^mold4"6M<]]udlJaV %9NO_@m6KK\7GcdGfWfD6%HeO3m3N?aL[+1Q8p_Dp`#L<*Gmg(lK/nV$[$$ip-!:_u+k8OM=Er %Uirloiu/.MF8mmAKRD$EE-]u2Dk-?TW,1_Bf@T]]M5a`_HZFXMgkWpFX+NpSd,HGlTL`B54Q+0L3gYefJZe(fHE`Mb3."7M,cSk/65-su??Z('%*qsXZ):94W7B>-6$'>eC/]6H@T %UG>k-gWBa,0MH%eQR*+Q?jJiQ&RouK^8/#5-;_3[HWNg8&!UD=Up3n=03h?/9."A30T!6`&kj3"Zj68KrkO-R&X14*T"(g0@YM#R %pA;rWNKMj7V[VR&dRdsKJf2tmrMYj1(O%)D&G,N-o>S*.ce6V=k`Po-MuDdcYlX91=^.!GIb#Pc\-Hou6'IqtHP,&\%E0i6X?"Xe %*Wlr0^qheX]Pa\<9A/0,#n#RWrk"qTTu29_ojNdmqT(HU'&?rCZAEM"g#bd[1)^W7%Cf%>7@'VCm=qWqcS8#nqX+!cP,8_#,W\rf %Q@5R[L-n(UTB:<.9GN3-c=O`#o:qb-EI2C)k6*"F^)/U"7m50r`-cuMB>+)eg$QXCS#J.n)soD[rKOJ&,(EUSZ3S&BE=6Xa2pLpd %=`rQu#-NN"DEYT(LZ`/74h:dI]q+`eMe\Soc0k&Y-Q"C4G<6(98pmBn?Xm+H%r+-S;XX3L=<5UYEe/A)@oh1kX3iF9a!C/PXlb:(>cYpNI:F)pI0Hp=1bg2#r`6,=;]@&:N?Wp\j)%+479!DU3n^\3I7]kD?a %-Hp[j<9TYgNG,nBY(_>tJ.5`9hM=UIOl6aH[auq]RqB1*NJjjJJ44hT]BCtlJ81rn]"Va&f?LcR>gZl&pI>J'=_2q)(@=!09nscH %8PGm0;$<,,?_I+b0URTtA*#6.54hR+JYmImCb)Q.pY%dYpU2a6'K*JZ-EaI]Kn%,iX9W]N2%[)SHh*t$HYESqIc#-t"iqre/r7t% %Z:#KJt;efH3qT24R5m(08g]_<_F914cc809bB?m;d?F=8jZT]+q,57JZ]c"pBnO`=P;/^jTNcu#4 %#NVT;Nk"OSar[+]4UYVqR&-=]6o6TZ'ciG3<-k-oOn`HdA.+b!oPaOtI@$RoGh(^$\5g^hJ96n5fPY<0_mW<@k32W9d[_Ei@<]kl %OY0VCe$"T8qYW?k$6*N#))e:$Eei#omTL/,I*9n[LOpe(q)`CCeNuPAbSH/c@lT9sG^mI5%tAiZim,2A5)hL,aE= %3YLKVcQ/`H.I#V2,D+!\ZO=4lq;`$^18?guR(5RP`<,tB0KKs^5BD6Vrk@dT>9`M:,i5s(Yui4=!@6O/+T:)6:dL!W*tPW<$o&pHN8os)#T:dqnQRu %*@$ALMS'1UGR'It0K\AS2Hl)>'R;otpNQTGUQ(2\8]T[jfsODN)1!HG>3&t"YPOU/>"G$QaEom4$*kq*84n!egCbu,J=X8tqM\O` %R"Xg7-)87"mlMOl[FZGSH5X>P3m4'IcZT>5D9WS]`R3)tq+_PcfUqRBVR1lh,O+V!2QlHe3jeLLYM@eu]677;d=MnAi'45Vm'=YTq6!PVb2Ul5b^Ku7.k'-U?=+,T.k%6E %kK/R7ms23EaAr^k^6H.[S&\\MTU,HA\3ab87]Fb.,0I2CNR9@.,0I=0[]^!TPPG'/!CcuGHbAO"^N-",VAr^pnku17cq=7 %Zs[-r/Me^CZHMYSh%BIcTPTr1#9/rs$HdN>s[-r'%n"fmg@3\+_)6;Ub<;6Kd/M,O?T[6l52nb#ht&qp3*<)$q!Dp#+1a- %1(7tdX\.Bsc;c3q#Qr1A6AT.$(%mf"Y\/X.XS-Gu/9W/.,@SWmOd`5-\O4:TBAZ5!r6hl-Tk)@f,3BeVi?DcL:DEu,*CkV]EpNJl-@Rq!\(LeI4]=H^rN.8!+17:=')67`)$bq7t$A'7M82"@gJgS3N8rbL'Pk]h_@[c10iqh6`\_2',(Abl+\h!_H %`Fdfe+2Yd+"OOk3aMl-$nOr+FBl&Aa\L#?9^D?bMZYq4AnF3k(5TDGA1`j3N38ni_-&T4.cd5m1"/I;\nbtGAi/3U9icq?Y_?t*. %.gdC:0r$2:F>"E#8-W.91tD'DmmbW]XDuC<@]_IjDGK8]o.S8e-$IdH\[h[?$X)NVdB,XO0]/i.`D;b$H!%7' %$saO/X75aV0+c"u]Oh]BL5k@*\Ei''=?[iS)]Ss',d'$B+@gnhs8*$<9rHI/'9`Oc^.NM3/46^e#8q8Z<0b#(tB/b0`N8i\"o.RUNO %O#M)7-)DU&0U3MK8L[.q.G-5m;,Sm47KaJBT#n+9"kSR7'pS:@Li.OV.JQSg0S<4\Sk@COp,c1A)k'!OU_8/H[cAC3PVlp*%;]O*):t&$)nCnU0i4GU`!kfrp5q3Zu-2?j6IoAoGIXAq= %U2^uAn2h!?6r]WWYtf9u-SOTZ@Fck;kCbn0Ock_kEDF$```eJG7'C)Pa;"*F%)k5@-R:u[V`:31V0"POFc+'sC#:4+O+B8<;R\[u %lP,+q6H3aK.7+Ni.5d\2+U@1`FfU/":2r7k<8]m431NnsoC5[`0+p4QX\PJ^)]*:RC\=iPOX-I5."[7)&0]tjOT@2:]Oj:?7m"8= %Wph$.h]!e>UU)mFot=4(+hGP"06_JG6fKiQ)j`B&=74(_?UCtUc76d3R"g!TaR"m>VR`u*+//rZRD&.MDOfT`O+rN:o,W@n8]@%l %%`$n^W#I\h#)5".b]a&Lmk@ip8=mRXD1gL]8a+@ndl+GMilZWRTPa>t@cMuI'Q&Kk92(cB!$^=YNQ7=[%Nt=:hTC'uhZ6-ZF^;Mq %MAU3C3/SQ8&k:gPNNJ"6JicX+&Wqi%rT)+)8dP\fZ@cYa`AM"u:MV0FF`PP,KfE1E.'^QK:Pb4W,T'YH$$!>`#sN'3TiJi0<]#W3qX(/3 %J?a&Z<51Y9db3sG!6`X4CIMiV%o8f`<=ms3`fi#1Mu*@[1:(I>199U->%M:Z.Pbd851_UW'',&-=`Z^Io^*o[[GAe?"B8jaEG[aGXZ63TL(:eM]1E[1:*+#bW;"PS4.$EO3^j=Ft?'oEQ##_hQ/K=@jj+EnY2R&-C!RJ6@gVkqC!D, %PG=;'=-=4*C7HKSnY4NbE_a@s8hGLS=n%Xgc?+)JWaYT7c?+(W1(3lr?=n@37:tRMW!4\+)\%XZ`Fg%65E*sP`b.,S/[!q_<7lT, %O4#u[Ck=ut`9r[8kK/$7os^)j0jbe5QBtiFaY;SPaD;eqlA@"d0ZA45C-;DN3Pc3f(BjGPi_W;uqoN3cJSXfQlc"Y$V)G?e$&HRa %'!.>o:)oA %q!-%sVdrbo*F3#q4(ffHhg%!UZ9kCC5ZgRKtag]\/0;"SKDI2e$Kn=D7*.JLUUibVS9sj9@.=(ZhI46b^*Ntki==.n-c:MN\ %nMI@qBfk%C1cpRh8(.HPJ]H,XYMr9IuYfHGhBV(gRYNd %*;s/sYL-3i'0Mn8)8\T&l?ho.:`p_K(\m*M05-IWp.>jhgu!VSMV"=R-:^Q7L_mKKI6;RG9<4DK>FJ4rsngj72CVc/nZHK^iiSJG\I\rIkIE=Glli?@R3@-X,t3S,0b!3K'e-qu#bJ0RQMd %)R2GrgGDZ%dcdA`5JaAD:,[cR%c;oXpX\-drd-`=I'@0WcDl>N0je-3iOlQr4*.roS^1YnWSY1;mpZ^G4R?`;rPmu>qV8qMkddhM %rijad:!MSa1OOIp\oDr$\Q?NDhS9r5\'cfKCs'a8^b%+:XdAGK.GoHk3`^KqYJ6MfkIUIF\j-VjU/Q?\?4Pk7p'JB`UG$>%C&Qi^ %i^VfQde/rlk_P?No>gY#PLG67?E8nAoN.9BesrA9EZOk8]7]ZHA$FjnIWdW2]WR_o'TMt_r7(#[lGDkMFr\R4qO`blc1To4i:Zt@ %J+o5[]+_o$[<[:f[sJ:X.NNVs>$Jk15//2/1[[B^(L"7aB/TWjS-3!)f/U%("8N_Qku-& %!>coth:GTr1HRZkGB]Zndg!\T-!oZn^#sjbp+@ETB_'E5c>gn);c$Z0.mF$X;JrU]$!eFMH1UP"\7IaD^!Af&t@f2[#XB_RIG"IYno'8VjD7rF+r6Wc8m4GfRBR@TR$220*pJu2+o:Bd#`Yn-; %<+Xdi\U4Ef;-o)$@M/;*(5DFmZe'L.#;`i"lnI+OA&==R\?G;Um^C4O>7hJD,Wl!Cl#OAF)#K,"m_K%@9b-t:[NoMQh-ZdI36g-= %j:#t'4j@.+Ic7JPPE37A`$)?QhJY<*X9F<##88HsY>`rc`S:7_f@tM_GEc%Il6^@m!fsHfY>6OJX6J;YPc!9Wo-:u`rgk&cf"Yk' %\4:_3[q?@MLgLJnCd3U?J)rBm"7ql,Dt(G3Q8i[f9YLeJk)oF4*6)5HgeFN&=K.Sc^/'C#3m?0aT&4.&?fA(MO10EXp);err"1KQ %g'!;-.``TGJ^(=Si*\^B*sE$$^\;.j-uqb;*!T3KEXVlqfc>XM.Es?<`\@i)S`?F26#8*%SZ0 %Q1MVW4/V&Cm]m4*^rsH]XYZ6eSt8Q]F'EIO>s99D#W %C]EsTDE^tb+76fOr"oBueNYU_r8C$UIM&imJ!J0>C]CWL5CIdqc\qIWYNEa\lf%eot#LM0b4Q1RCq,<(K*W."h3W/IXs&X]&L@l6Z?r^NrPX"Yia=s>^ILpcGIph2!4?R(=1&lH:#p7n/s"V1"p6FSkrWdmTJKGr, %l2UYnriH)Z5%X^uitH=,'LjR&LEun.=d^p^MTGaA8TB\m?pp]qW@gpn!s?RS9"btk[0rB(8g`sn*;&r'P./S`biKj %nI2^d,S^HJK>l#cCWX]2!)oYK/Gpoq<+DP<<:MaO[*]t>D6uJJDJE;:cm:e3P&ooXIjZ""hD%#1,JuXBZ>:Ib]%*5T\d.u\W7/Y`@t&X3h`j90aq\#I(2_Ot?<@Kba;Q_-BdSjPYFP"SUkrG:2R.#SLhgR][kP/d4NI84XkUZa75&7l&`Qc&"cG^-q!PAN/A"+]oGJ%mW+dN#si:"UHT;(p&#-]b&oA7T6h7TNs*#NZ=E_i)Ne$9YS&e?r\h %<*"+Ll94c<[iSn6/+B:OW^<@3'ubi^/oK^rHP^1$<=(cl%OW#=V]Z>b?Nqm8"W2,6rU?>oo>!G^K'U4p/5m*>;:1sJ(8&O7:Tb^; %=I1csdA#oB2*+9U8u'X^^?bK+#7Q#d; %OBcV2bLRHGg:17'7qZZ1l/Plr*t2:YPa)5>0>dj%"PXtn[8Q^KlG:.k\s75S)olP:_!r6"&qncAPu&3p!610$792`Tj8puJ%r,5R %%ZJtL%q,WLX5cg[sZ88qrY %$48bf^W/m\,Jc.uaN.OS!fSlOE/EOio8ap %=U@@uZR,sPh+@qm%$VsB^W9%*,:T_fTU(iS=JpQ>5If.O)<6)ggPkWcsQO98I5?i%stL`[nt;pn!SB7\`gi3N\F61e'[W@;p&s/qRXBP/+ET9lOlZQ%HeB11=osE6D7?jtJIU %]6<-2b/2UVJ74\(YA?<2`Y^C4i.aa!(?IqS;&6"e;+)I:GSJCqqlUru@2))BgZ,,JePUK.Fn1!nI-@\!d]Ya45\TaE"qfNgXO5k8.N!_^AI" %-duBW#)8\$\(GqS8IO1HY!mAnkFJ`$&)L5Ac\(6[-C=[tF2TOPHlGP_bn8"f3!Zt2;fb@7-9arH2[;k``mXQ#,.n&YBPW$n>CXt& %_/[u5?@&`XZD,gGoNIrl[FU4.&';#?&@cY#J6>k.6;ld=+RYkt'KAD.JoX9_pun6:XaRc\@aL>nUt+bH]p7mA;gUMaEg)d8lD29f\o_nVh.&U2@$0^W[!$-),s6O4IjTk_R8d;9j!Pq'X0kVOUSr2$r^cqGT6FJoXVoRh5UQnkPmDe,9s& %%s@,E$l1\pMLZi-5`o4D"rJ'BITZO3WhLH<3ea2$MIFE/ll5C/&5n@%W$:_ZNka %L:"RcB1^F2LaO_n3UWVRaJFY6SKWG=D&`4kaG">'&4!Ng=]J#rs0D"T]d6'b9TUsH0`<:8s3$Gj/=PnA'AGhT*CPj:+YSa'+g$@T %O[`iQDFE%Z5LQGnmFGlt3#iCF#7HPbBNJ)'KJ,[u(D/@!WXT!#C!1#mN7OUbYub*!N!bNC5[8<]cbOC]Gl8L?/^I2,%'TuJ-%4t> %IZSac`Z)h7Z](^A9+g_]`U"Vh]olcf^o=27Is<=!Oa(g`nRMX!'1M&j,V^1&S1:"hY:/IKZE@bHOr;BhBQWa5\/1_;\>K[EAKp@J %G_E/"=G&/]V__NjjBeqE_&nH9bd!1TJupEB@Qa);Bo'i7Q8(O#<'mN.GZ6F8[`_JBh(;TdVCL^>U %i0M/<2S6c2(t2-V:s(E[/;H6T!rI?2!^)WD&-.mJN!$H(aM[AsN.^M$dmCS;n:P=>)K.eFcZ;F('o[r#_bBP,N0h>#^W9+,,B59< %g(igT/%Jb@.d:`q:%QE(;bAaqJ,<+_c_d-qG&Xa %;:6&jN,o4u1rNIj%^\S2(f=9G"9QlI4T='QB>qB[T-D]7PEUSq@b)#dSl)i/Q=YZg$-t)\\h`Qi!I4W2P%=+8lmSC\!N0.C`G.MZ#P7o]/Hl0cF).o$;l8$^,1Q%MWI) %%tCSATNW"Y%_"O:F5U1K3G>'-_e`$G.BmS^)M*>E;&!EuP8p?+[3knn/pG7Y=o_+60T,fhXOc:8PMrRF\H_\,`a^nKp$QNu)1AWl %QaqMC-_o&aECi1]4H&2o)#o38idcIaHK$Va9u/)5ZaET<@_O99akBRZ4h.t!4m5c,@-*LN+UVP#>eomjSn=`GEt4$n_Q^OC]Y2^mH:F %23Aah^jVLoT!clU\Vn>op*h1')lbICVoY]i+.XTn[-C1[kORO61VDdnLT&clAdAnhZ7W8WejM\UB3;HMGl*;F`OG %d5i=C7"op8a(AXXKu89fHVb]^#&@3j-q_ZtV!'>pj0"B(KAum,Z5J__WSegXK&Ub[5]`Uon6l'&JR`BCN3N1 %4oAjWo]YZsf#4S=A0lu8#K7"FArF[HrXr6>*XOK="?Zsg3@jT^4Xc?)emu2D3qu^V("R>$MNDZg2>K*kP=UBY1VpmJP-mPFc!k=r:oS\Z]MAbc,/;@^] %@.u?MF"&>"?Y^McQQCV&8?g<_Xb6\<#*(*M2\MV\j/)[N"<6o&XN:!V,Cu;i.VfQPUG'#kKZiP.PDp.CGb16Ic=S:(7cFb!Vsn3$ %&QJ5KY#!r=hY$Ohe:)Jpfi[[4qbmZ^nZkl9$XFdce5E'Fff4$>WVX[CMPs<.c2=7T:UD&Zh&*2F`E6_#i!t1)$UWb-@+=2\Q5t %X$pKN?XtMQOc2[Nb=i0]#KFSg-0RuR/)epm:I5AsBhm)MT]VIe./*QW5uK[J*:)4D#t\P5'$%;$1P$\c]HSbI1I5;^R0f2iI[->: %?nI'Km9)?!J?6>^^H2(.2j#Cc+9IK6q8;9XD]:6[ha]e@M($86/o!`a`b0^ %2,a4dqRC1T^m]u`.WqH9N'D@)XS2-gKmk`@r[;G!uA1BLh!*. %6READ+/>rV[E1h-O0i%3G&=$=rFoGFZI.X1Kd;ct1''6k=j66.)St)SNH)BeQ%`LN+LV5'6'E\,"55n/qQ9u#%,&2\\4)^k.R!W^ %ICE#PXS-fsclRf"qcD1p$35*4da%#a"(O%`6WW,D!;?uK]"C16(@Z(H9'0[28Z=BJ/%5&^q=kpaVpr*_phZC3j4;+dnrQ_7RaGSicuE"Sq^DTdPnW[bUG4e' %f]l^rGFBMQg[5>30h/P]rS^0![8s'ig:4MlP-fJ:1>3t/_:l1sk*q\oL=NZEYVHqejq)A&PA6pf/_,K#X2>!opu_T3=+FlO+A`l. %1/*<-Y`r!&jk#k(Hm"9r*mukSWf$Vi>.IhS2UE8/[__(S5A2"#n_+0_T"VpRl"-*!!([4h-kTGW/]If5M&/&..a'fEU'JkV-$V$% %5[@###F?K\PAsu-S/NG@[$_/b_&t7'Pf@/SW8=LJT=u\dlPiWug97qg4`&'G\_&m@^^=8BWsL-:eg/TFoER:4P8,%,d-i1*E.VXm %\OZ%s`e4h>TDqbRTnEF\&T9Cm$P%_d7Rrk7Hp]S((1(D"DMEEPe(Q*0#c:d>K5:/M;TaD %dpS;VO>p9O`BU<@K!NMfKCqGK8PXq'WN:P^^^II9T[U"MNtNMdVXd,J)4c)jihOgM0I-YKBH-1']g>=H;cduC:0TklI<.bmjPJtH %<\%4O7$p76Lku_R%hO4pN)%Xmescg3IK5CmErFuPOi^,>O+9112D2E,`Y0fNiuAK1fT_Btt]V:=!c%'%V, %-P>'W`LLa]C2@bLe53:05Z0aK!tP&@=l).rGh?Mq0\_r!VIo%-s1YIp,^:2OehK%jnA%Xs2+X\jCZPQIcIMG[G)k!3*K %6ap2sUJOWG`$2HTg!AAO>-YSqAcP3;?en0:h %0a2)S[#o+7U5GESb8T^dBd@i"Yq\/SVq"ONH$DI.A._Ca>u]A;Gp5pO-pCO9f=\EXp@04?m<,I/OsCo0H7?j8m:B]N08Pc<:l*Pm %N2.JYR'!Ul,Y=#o/'F)BA>5q&//H$d=00"FWCR$S!mbo@d0j$;'V_=>>haJiiE,9dJu:)dC>ns]8\.-'[#2/`)4P7I(`"q?5.WV; %Q`Z^ni.)LFQ+-1`.>u@d!3\E4]HJi/?eKZ%r9kP/7Kd3OkkaWI6^Ec?YXMTK?/V)#raRQ:Dea27=anE"kX>R4QJo-6E?:(>'1g/-8U`ZRV9-i&k3WG.HB= %$)lr)50>THKHlG=LhAHDJ8nhG-irth,i;`?cO;K:b&$J">/=q7@!J?0m_QTel60E:UJ"-aK)QMQVu@0l.*+bSoGr+%&JU(UWPP>B %*gRj`.B98&.hi,\WR&ai),\co.]dCdlj93'4'IUb&iqRt-,T0R3I5.69XM\:=&f'[OZ6JT?%.;W#Hj%ii)mA1!1sY36=bZOPqgR8 %c.5)7.PNnamF+5.[o,BEL(XY\<..XR'%%S3?&1$=]AO56T8XQmjq,VP?c%gf?G4=)m%JEIHsJ'A8b %Ya.[FMHQ&1OI_`BU`.q9"U',[Ms/K'mFthEs6@>"eWT#To,#o+W0[mO6(=6s7iQ8XfX/8a76cSt8Ff2-<*ctUOcB?gYAZj?`/;d; %3[aZY4D1!GE:-d^m#5@IYm(hAK@fd`Zk;G6+5r9QrhFhJ^3Z+eTW0VWF#+,:@2qV1l;tf\DtsaPRjH1-36=C490,$Y@af^oj?WnP %,ro4u&?I_m/->d8X^*h0/VGabG`=fkenC(8JF%.*n7[Y3Vi]o\)+hP1%RQsYo!nm@AXDZ!D;Ajl_SZ+*&rL:mclbD.LTtBU_dO4c %*r4c\Y,V,:p^DBt-ecu0fQa@.YQS-jB7m$rC@Lf0j;.UOB %M[BfZ;dE@3.4&s9!fXfaC#t:M5iH`K3X^@1/dr?BGoX";OTa*WbfUgfH@nN2N22J9(O=#2i;*G*"/:me1=2I-]/[b".SGmlRd%'G %c&e_`^eP@;BcuLXPsi6F0Lu!Gs8)![I/;sRs&p&=2Yf*!*tH,:p*7=IIjA3i8\K3%JQ(b>n&hV<8d_CAQ/Kb'3c\u]c7!DIPNQU$ %i?L<>/upS/MOd\pE9S9gZJrknK#]!n:0aE*l?Gg)5cW=@6^YG*$tF[JYoX^Uj4,KmldB;c[+O(W!n=6:;] %,;m/Nid'"(l\h(`USV4O%37UuC3"j+l*;8([OMKq^uQf(J65]I1j"jKg#GAT3'lCP7r4N))c)t&i77to0Mm>1"dOhM2 %^nbsLZk^U.aTt[O*9E-iT#Ej,*&YejiDD:,)Flk=bb/Eu3VoCg'T)3Y)Fn.u[-4%-*,c&J*\;-&aQ-D3aMKhbRWd0DV#QKd)5S?# %fu3cYAJFQoF;_ro:(+EZc>nRu.P7Dh-(TamOE[.4#Gl2$/;_t*ZBcaTGP!UY=O2RqSqt)&"VfCKfE*3Z$+.lIEeHIL&W/8A>n>h. %Ta)5K]0Q_:64nt.NO7S&.`)D80M#c]?4h@b/LltOW!F?,6]S+SYZqc`Yb+Cpge(#f,Z5(3%Y)#5lsLu[&WnhH&Osl;dT,*,MQh^J %>j&UqKM@3a/;rSi'k*Pn2UCSLC;Q:(,;T"rf7Y0915Za@e:ar]ogO&7-LC5,;eg#;:"Z1j!od7I/&DcL;C^uh.`,3k\sOo#\m,iE %)/7L*gF:"jB_l[MV;=QOQHVs_o$6\,-1@KLfqSKdrO*X"ane$&keTqn)tU@'m1]dA$SlX[^BMlj_"D60,dLP>X.@I=$Vt-lFmI.s %7MI5.Lk?GXNS_5`o\'FCT$cocaHqXQd^4MV_S(>]p!mGklaG*=A@qK$94Mp,kKUKRjf-(j^d5QUQMlE167mBe\\nbbWC'7 %Z,.rh]MJ1UC^XKCj[jA:;Hk]RK$':36US@6aLm/7F`_4ck!LVt6n]\S6oSg3MhP/mH.#ho[BR@IR@d.=;_n:\P(#`,IhG(d&kj$f %\:csT^NpBt=AS.cPKC'%?HVk-hJM=tp>prKVq#htb<_`/#.BtB"eitr/1#;O]QKC\Z)5NmO6 %q1IUSdP*HnngE_R4o?")feT9I"jHEX%7/_]O7?%,qV_AjS&K&5[Q!g,6"ilW?sdN=t@ %]9-?L$L0*1R%r(F?61PW$E&2J$6gnFJRj)j)M[XkZ?8YZo`BB6CrHKrFcc=_o;tsNdd+hV%n)4IP7kl?*XV'cS#k; %#-#+)bdXL@W\G"]o6p0L0\"jO?BaEJYh9<*'*YWrXt4X!nHr"*J2jTJj=\t,J$#htKq=7-k\$K4eQnT\go0E.3[9#XYf\]UPZPK;F&XTe2L"\90%u37o>q8&eFU6/+QE3%n0%7K/l;(7/k25'*t_W9 %4Yi=EW*BiaEX:k^G@Gi.OnVC@'&=C-j@Dcn;4u)WMjtHuUKC69 %LgD*)6o.0B+6/5@63k[qo]iq1RP39:BGjq5BgYnjLKbd$jEu"&41#8Eng<-9k;Zfi=@=sB>:.VXo+5",$*:j.Y7<+(*r"H,O*=f9 %Of*J>B^k<&,+:6'&()T*a?/I#F4I49F^U>reHIBrgQ#Bl\S\6E1NWMCLb?,[WGG!j3L-@g@kfcgKOe"9B8a.Moh"r3PB__;54X0g9L94EOLM[mkm5IR %'tKRb/R.B;/er.0V_ui>.T,W>YV9.!2MedWN\kp?VTiH=mL%preUlXSFO7Q*"3#q@6A$4QBL>iq(c7ek@VR// %Q.R4/@6hQ_noVX??R0A+nl/i?C6t*c=e=cS*$ODDU#$=DWXhZQDRE\HU#u0F#'-c4X!IqCGpg0+p+3c,VMq>i4Y2 %DN9STJo<3JJ^5"f&4g'3--])l/-S\PS@3UJ/G5mWY]T73/C=nT+lp.HWO-Ap'Q,1mgdQ\'UeVX(IJ^>%f+Bqrl[P %A@[Bu70)"D=B]C4Z*dcnH4(1iV(G-Y8njuU-J`ddrW3I%V"81#4SP\+-<`do>oZ@8>A,4*@#B6:d6nplJI<0p\'[UT1J')]g1X=& %f_XSfZJ%d3'Pn$p%j>aGdD:QFXt\6K"Z&_DUPU.DXs:;,LQohAgL!Y@!I9f$WI[S0u=oY\kn2N<%`M^VYEL2.?>ZElcFMu1*0o[75dZ1:<'do;LH#c9sp;rFIlIVm.)Hbc&&Bi2S251 %8<\h-Y=S1PZ3$-i(O%$@0qip(]->31bm;dsg-mni3^R$59-Tj>)/hr:OAnEM-eoGfbm@O`Mmo@TnjM8+rRhS"4A!WAWEinQU(8b7 %pb!]\S?']s;LBdEb'XC0ni%%L*RXs5@-"h)m2ks7m\<-7MdGD=YJ*j %Hpc&1OjFcd,uKESP1C$5Q>U50],VT22F7_u/*(uFn:[E'6;MV-9N:NpH/;]RTCjG&a*WO6*.PV-Sp0F2%DTI\8e9H40o&t-kbG%5 %oD@2&5^JABcYgo4I3b6nMrV1/k8!5r*$`%dcpu@_\BA8Giq?)dM!0.G+*#V"L,(4'X'B"Nhaa8&9("'$1Z+;bB,\TTQ8]DA0q!3' %H'>@km-Lh8mE'dO3kLZk;10[cDj9&LmKFmSp'c@+Q(sp1XhW+>8m`P3-5K>N7YuioDVQ1.a.!gHo>Q%X:U&@]EjbX0i"m$j68Q3D %/9\*tiTT3"RZt@V__ila,MRBCLY2r/ip5O=5Rq@C]PciVKr9MfAO2eL_An!Rf7EX*V6@e[&O^9Th"1S!=luT:JB9Q*U9,hb1E#.A %no^U"Ss6eUg.ofG85rPS&0oEH&+F`27N]h/GS6Gu.W[uK:!28G`hVbQ)=%5$siAT!I!Pe$=_JU(7`)_P4,06?05HIjo2F;9gIDJ3f5ASrbCM7/t?\XADg<9'GG %R/%9UjS=u]q/uNYc\B\?KU!q5\0OT3$FSs:>of60W.H-]R%kb]lQA00[uC_i^"P:m341H"8l!(4bY@9M_DE`&p$sjsNDg5.W8uIO %bM72?/PMq&JX>JlAj+F!EYe[uC_i]tV^Mi7-R@.QI+5PdqCM8s8a% %./mYhXN:E-=8d!%8r?;K`o]Oe^uqWO'NVA:1T:[%%" %L(`Pm#e_sa^0Fs+hj7q#@ZYbI+)+2J@89[E!MLlm=)qP;8oH7$,(E&88",NQT,h4kBKj!R,t$X36B<+8hQrib+S[6kFZskYhs7?VfmJP?o]EU\!=dGkdiXqgLnCT2Ool;=rIulq]t225sq?L-`oPMJ]-I$9GBL0?6(G#([hE1pqSJC-o,_0N\0u %Kffl)RZb$g3M"dkQ`J(]KKp&(>Y/,)SBbn0ba"tM;P9p@1So?9E]UC?B(Eb:S>J7(ll\2a\1.oVhCDPtN]f`OG'8,$dIKt7N_>o`jJ%LBQ!toNT*WFe\8O6_JYgK`,sRf$.&*DB,V&@hGU-as$&,:U %*!)=&MRM0R-!h$n[eP"0>T`KqOK[7aJrNG>j88S:lXP>,VLLQ(nG^+\YWN*Sj(Vor\C?\=-kp&g4YC\H9idoo,`765K5Uu>Qu@P] %^U8oI75=tVVL0k.AfT!lpADP'SUBXi:("qf$=-XSo\SLYkP3BfE\T1*TJtd`HF1^heOtlBaLd%HOQL/J+LkkHudruF#.K85*G387B %]4@/@d^K@#bJdC`m`g:5]g47#aJZ5F3:)E:#*N2C7hi;a)T%Al0=GK.g=CAQ04Z0000#i[>J%=$plQjV:pb$\,=XeCp@E,q,`P'S %BQLF9"'W/@r>79KiNo.kCOWm.ndcC(8K`]A1nl^g %N$\k+M`:%p8/O:%,`JI/,BqN7^`mq=cTMn1BSWC'%g.t[kXYi=FE,2f\gUbUO(e\;^A=feGXiP2c4"CBR8+OpH8i,X2l76CdBF4p %^+f`@2Fa@o3f3smEd+N32l9MBdB\6p)t<@EcaPX"3lm9ud(1s&./*=O6r@hq-Xi`X,B\EE#-;[#5dtkM"1I=Z1f8-aVhmdam9A:p %LQ?naNOa]f3YRT6@4*Q,oe?r^,-]ke&sL7g%4"fZg^"p]L`DpHN9;6Q+t""WMrcXe^DU.!"\igc5SI_Pr\],B_fn>q(6:k'fUDoD %HddeF=RhA!%U7CqQu'9p3jCOEf!\&@D'?lSD8@/k*4D_A7G4tr9HWfog!@,bNC"%X1SAl+)Hdb)^6-BCCDmqO%8C'J[P\0<[RQp, %+iT7S_&HZ"[\hHkZ/t[6IDj$95Ln=Y#bs43knfj3O#EljXKK0dnRMI35Q-&@f&"A7V23:^ %Pgms&q?nHZJUW_p$e]cr;FJg+P.Z(E_su(!qk?I'&62U)!_$sZj`\/VC=t!,@9s?1'^q;-GqFChPt_@a"m5#9)V9)RT4=/%QeAR>aN[(-

t7K=fM[CkruB@+8\ka_l4Q];Dl>sS?G*@$8.h\:T]=YRk=HL %7bFn5i]oKBUnu`mZqWJbl=\J?Vcd8md8rPKGdOdkZYi6&qe?k4AV?>fV_VbVGn:np=!MY#_UL9.,dgNO_J!"#!b+X$C3=BaO<\RQ %L%Xc2T$D44h[;ZGmQK5:@.[$`B385m0R%iV] %TT5>I<^Y5A8kTi8BG*6[f:ejY=]ccl8ABd?*&Ke193%JIo!FLm;#ThW+smu4K2d_22Y8V!S:TT"K5H,f./G#+QQF;9!>cBlL&XCY %Q.\oAWb"gAHC(R-NX/iABH(B?M@o?IIhf`o'W:sPUS#&84M^=6hZ)cSm(M-K:5sCGs7ndlI$i14!&dc=f0fG@]Q;)f`2\H&I7*H* %$KiO""5\eFk%GjqO/M\di^^CQ.'n9tb-tn:\N-Ra*tp1t@^65'SU6>U%9hXs12J$`Fd%ar3M".9(@jPR[[iEI,\^!^n^#(%Zqn.J %6Jud7cOQJ*3dR,@+q0&Rhpr"!Jti:E*%*8[)AB5XS`7S`9VP%-/4lA/j>d#D1a/4u.g1.EVQq&5/]ia=9:a38NeB0(1ck\VrMcb`DS>?`@+if^9B>__/\831l!F#W32KY(TY%EZnYN%:,-1X,Y?!Kc-LVL9%.$3B7Pcgr]f0p?",C %2V7BZ_nt1s1a5fDg]2D`sJAO7_C;D-fPBaFk/L? %0\9k4Lgem%jFbG0/AjWo^n[T"mCmm1*c9@(3ckKM/e&)BSKCqKeaL`5;?US_&$k57nio$%h^/JA=4:V$8M"#rOi0;.=%CE%W6mn$9#skQM2k!=b;%b93YG)D %l"P8cX5ZN;+uNc&,7SLZN\h^6=`bo5cNbK4ib@VL,7.>L6Z%?&pn3Z>ns)4T!FLtiq5f=(>TZHF$"8ue%8""q)U`/L+%emUnYdVY %$(5Ht&f"ZS%kn.t)Nod[ER9dm3bV((bVUSr^;#D5q7W+&TEu(Liq5<5I:][pQE8E&?9%T.U,i#&N/'Vf<#ss$@qF]4uBZ=/G+>;*'O;&*`r!*\Q6@)L/ %?WjKSJM*=iZ8<$4@\2SfZrf]46>"eM\q4HacR.HoUam-)S<]1n4(Qg%BZG8lB#OmjUh/gPM)(;.AW2-&IbK*>J7f+;K %&BNXQZk#c.YW4GT*'L;nQ5I8T2NN`V5R00'UfTMa]9UlHPSW/CV>VdLe"8bi-B/2]&KN7\PYj@;1UQ>Dr+&U.b$BECh\T4]=_Ve*L.&,O"a)U4=%T[.eOB7 %;Wid48a?4Q.S5ftG'upPdi&"\RUf`+l1Bq'qXPE7784DQ-Ia+eaCiX&`Pe>U)%3PHT'rg/NBWYb3ubC5LRN\DqR?p)tEFN:UN(GZ;sNu5m0aac=jgWK3)q5Mc#hU %"BjNQOY$3\S_@MfE.E2qOY"p7+VGLVhhgmS8G>LU]'?gpf+jjnN'-<`\ql.$d'!d=f %/m+no&!AR!=KN9h/iIO=MmB2W`,3H1B0XoVO*#BoRZ@*DBlm4TGg"Ya %pSO'-flA<]Ec2jSm#=F!9(ikoMDrC3lqJ^`ZDIK=D8a>95MtTa-eWZ#(\0IZJ-M</jlqHHY)I4PscT#>Ftd^u2',@n7*a12oPqHCs3Z8i6`RCp:\J;[f^,"+o)4k[:8^"E\;_YC^/Q=,*WcV(JoM$b"G7[Tq] %1;<7HoG`keCIttdrO!p*CFqWs4*:Iq=C-L?'J*%mM$et`;8M&+#]oXRnq:M=A7>T\=C-3qP-"m;>JHrFQ:[ah;n6]N%7]p %2YrT2(R`KU>gaN$c=nT!som&kdWt^>+"d=RBQt-UYFI=Y++Pjdkoe(8+'4,BQ"5Xj>aH^%N5`i>)g%p^#3tgF>7A?>ZR$-E0"%RG2f;_3b;k%GiF9tkeFRY^Zf)%cG&;h+;Rd8f[.UA"]-.tT68 %Xq*2iHiH$9CS.DY>V4F#4[4?T?2GL"G%-Va6UI0,;eDVNprar&DuP3A-As1DE&-K`uE'E5dmQaklBU!T:NQ2D_Zb5 %mt^D7%IpHgqa^JQ6P\i9hiZuKF4*'VJMA'Si_oK!fEo`Tjts[Yp8tPI1fmWLoL5C3nDRSK5CdT*I4k_Ll"7U-G1kK\Siq<<&UMHo %7ccOlOT7u,+L)iB"fm5+c$]uU#5HJY4fF'^it.id7<)Xbi4::\G#8_a,@D:qCmkX.ouALl)L; %lZURN*8i`l*:4te:O4apc!n5+q)Y0Q(Oje*ene-1U:!6tlSJ:tFi>EYeT7Q?)cGI%X`iIHcuD-(l.X6$(4M!q&LQ8;FW%W_FkL\g %B\h(0obkV&+_+c]%@3$_2CDaT;6_i3ZT,Db@.FYJWD;-r*L%k7^I*3a_+\ZDE.0.t(&? %L(8Zp+J1h7J\K5)!r\E9CQU3nBDX^t53ht='_3U#PUH/9dk,V*\:uWAi4hS29:BC`"BE\q;VDQ2&[o&M`JBMWVGCW72aQNfb'gDV %I6,0al[%[eF,19F?'g`L.\KPu&e)!Nf<^I(W=4[npecG0Oe0V4PZGtfDTu:7I!G`_(Ao2DC?%V\bCs<+*rc>FW %E710F]2+OsSg!jVlNLHjKHgI@p?:-G&h;S#*L3IEaOpqC%sAs,m;*oa,ao>#3^8J8P]];0+4M4qH/r/H&akU*S:[MWQ-K>u3,idl=ap,P_T2:3\j\XcUX!B)sqH/m`gh5Gm,]?-H-*u3Z7UeoK.A@ImLfn7NN]$;Y5t(=q %YOC;F@..F@BMoXb3JJY;I$NX@!DFYj>+.f:D4#-bk&=+Vj*/3-hc#d-.q_a423-d91iV(VP6uFO(4HIFm\fUdg%AhHV=ji+g5m_K %;;CrI>al2h6?M9rif0'[AhK2.9!iBQ5$UWQNfLchdiU\_NFkeJ/4n=3Ue;hnUbWl_Q;\l_LA+j>%i8'cO2n"TLaS%WWI9n)jbGV? %>;)Rg5`787Q!C*j:jnk,/^T$ajh`HprI6t&;]_,r%Gc^iJK(BjbNHknj@"3^DIc-'&p;0E#E2H;0Ls(fIq699>3`8C=Z;/__p<&V %Y=-"$/4Z)&Nsa7?r+eq/k]_8p0^p`Pr)bKqBLC3_j1JBFQ7]]W4mW+n6F=#ODFou&'THoG\"o,W?c^%b'dBt$@?*N"8Zrl)mE5[C %cFc.gO81NCG/`1^-#$lB\'+S5Pa60u/3Os27hV]``*b!*+C1G51Pb-jp3u5rYXH+e/4Z)&#Dj?F,ASo-+X]o^9$50K`j+#KYMV8uCp4jK;Ks+n*:fA,GkOKijXq1pWk96M&MQU?9:B1/4##:LS>Qp,&K0k>@[h5PA=3Rt:))ElmFS:I*>+U`JM:r;XZm=]qJJCG$C``Ufe-Mi`iZ %@_s_[j9>>;_C-$.&@6$$j4$E[+all*`_hm$9Z`"Jc)lel>Jp?>pP6qcr8Y\,?VSM9\7(C>0#-jIrLa_eN'XW"l:RD#gu*4c+W*k& %(UtZZiK+ke]R(idc>l<;FKlC^!]ZuZsk1F+lX']`(?C9H6:M8E+4\6\rSO8qZnRK %m+#SASr19P9Kt,-Qhkf]c$maBXP!9*:m+U[1%6?#'0H%"D+Rj=CdjbOn0I!S5:$FBpOV.q7#u(^.,ih@#2UZi8.Sb#Hs5u'8,E:a %bfqY$/Iol+hCN'`"a)]8eg;#l"+,]8YP$.0cLI#`YnZ!6[^O\n^/%8oOb@Q)@7+D33J")-mR/BOCI/ZtI6`q5.IcR<"&-Pf^P^^7 %s!'&>T=":d3hT[n&9a%t1,\rcBJ!'6qLfsYl^X8*.MJOY5gIejGIpbhEDmGH=0B&8rX%.:T.B`E]JAoO'qaR(T]?B!4a`NqY^s-4 %:RX,S>IL'oSXDfQ`ZY:27P2teH&F]1)8"-J`SkcOU+Mr^(_[&K7&^bU-V-;f;]"Y4*r)^Ng\L)EKP08A!?!N`r7#L]7bmO_%SG%" %qp3[1paI')6Bd[?#l85M`r1MV2.<[B!hIu9E`0G;/=jDFNZ\R3pIQg[gC;LQa2@R %'0/fV$Q&Hp)B]]p*b^57.MdS)feD7b*N)<"`JUQd.k;7%#0W.Rt[lM]o0U[$7\ZkY5AkW!oCZC@g` %g!A.mfs[qOP7`6lodJpYHA&NhUO"1^_;k@l;t-_,dDAZ.,Cp?i;0"Jc8>%&t*[OP?[*iPcO(-JFP(J%kG*GN'b!fP!g/0,Ijf5Vl %>!5LIRAe8#=-&0*ct[QHn)`h3ZBe5o^S(u,Lih!Jf'*P/#XLjHCt#='+^7Gbg<+1'.$69J=BUdO;<40r9L"iD7u=@8UN.&)k^1NT %-q=Tc-NYY1([=lADQ>P&>!5KJWg&b`TcOfZ^A4M)/6@lF0"E$g,G]ZO7bfMYUP)9XD&Cfu`#dF@V!juu'l%O$N_+b1CLqZ_U8*kn %oF^6L'(nf/m#LiQl;;2K>s/h5[&Z][m5@s8YgNjOR!PQ/LD1^0eCJA)@UXq5e5tV@g/2rJm3ndRZm2B@4(q-G'`@>$%3O@5Se*A_#+gPbdkHnN2lg\WT`_[%F[oPbu82oJ"')\%Y?F %._d/Ha-j`>fAolel6r1[J@?7l+F2!BmS=)FQ,ddPN8`;4V-GdB`>f\Ol(eF.2m>GKl-1HDAosjn&!sP6j`KI?#`Csh!%OWE0)NOD %!&CGp17PeZDF1/'7]dr)0bcPhSh],S%@iC0hH$X[,a8utMrq@TOGgnCCO!1SZ\stHW'XZ9;JKYW_=.KI1j2HCV%H,9mpQL7ZtWrS %,H^Q<1"Hod,T4/:8&$66cnmS#`%bUYTd_ju1d%f@WdeEr5X-K4c;t^?0m_q6Ar,W$UFoCKZ!Kj5\ul>K:tTXL1k %j?\F(TdX$]$YRU+G4[tk8`-$oNmU&-*:4u`V4,9^Z"L=pG46dVQ@Lm>3W@W/hWs;=Y?*)@S#'p"`\HY.Ji;^l"tr+:Md?mo4s/'@ %UbOjA2U_OIkouC%-)t(99C\apk77\B-'^pBqlK[Ma*[W64]*%^82nk9CdqCTCB@V9\;N1H*)EDF&V"s %pLD6DmmX8mT*7^^8tVC9fQ,6D/QY0AiY\#-F5H0MVhiMIPKK@g)J5:ZiI_H\bP&'Y%XB94:ap2NKl(moTp%jf9p1mGg&9RpH,p@u %b$6Zg2Cp$%G4\j(OM.3t"GJ&;8k\_Q5/LMi9EL)^"V-e\oR%_V;LUU?)`@K?Yj:LG40:?A7V+WD_ooF?Hu9ed5 %_D#4Pj=K7mm7Cr&Fh9i'nB@WQee4Q,=#I9.jJk[l\e'#Jq)f?]aAi[r9"Csa%3\h2MB`6SdB6&Aa1fkeEeJ,6Odt__X7-(2if]#G %DpBV:XgBJ#l?%N6#b9eccbH5"p\FihciR0^!7)2h5[eM"`h5?q0rp-K>eHnD:eOUb&Gc3(1$u'Nm %BTiGb!fXQ7d(PA*;c%T9ooq?'FZIA>.W:9ldElS4i?VtOC[D]6MUaWmhDb(^C]DH/J#4goCbXr-kVq7@M\.IpHItOTCKWPDj@k%n %I^H/P:4?EZWm^QJBq:7fGV[uK^],D3U2$HQ_];qVRVH.@^jft'f2t8hg`R!Va%X@rB6`_,^i+f_.!RYJfYP0",772H;DbY$T7Wg7 %G(]Q32)[H@<1cd&RkUT]@fu046qk7o26C'V.G294.dQ,>\@$Ql,$#rs-WR0Yfk@DOCI@Ol%>g*oi&fWtR"DXDWLH!@l<]^/7W'u1 %-t:*#f/M_qhEIMu^)M;5+T&T[-:P'2$ko2XIJDn"C&DZD_2hro=_?Fq)1:1ZiqY\?U6XEJ6]XkTCRbQ=?J_ou^d.:DaR\G+SYola %h(B-89t??MB2YmU(JoU(\)i6Y8a#78T,3TbVD%?%Of>qpN)P_;>.B;ic:3 %kH!QaDgn]-GiLk2C"trDfpEgV)eG.$3[._^Ye7O%Zse)99WVam49Zg5h!^O0?Lr8bW*8hqAR457HJ0[e+mLsH@RIuP;N$RY"HjCJ %!n@am$W&>Uhm-]nDZ/as(uUI9AE>9cTe8'\mr\oR&+&NT$^&F=/Fu&a0Lu!GkL+.jb`E4]CRJ8UOFB"1-hTCTZuJu;Eq#*rL082R %F#k]pU=O[G9nXbs1PS?["ojX7Vr1fN3l>N9QXf7'LbF\!B*@FbF,@R.6n#3J7/U"T!@Va0C"@tPcnN<*Hfli& %PQJ@b3sQ0c.0)hBeki1Wcp5G:HhSua%4QgPJ,`cs_pT&16DS,k8AgU>P63lp"NK;H$4^NUrF-F&)m\Rbdg5IeU+%bNL.1EH-3bN9 %lT<"=qt:Ib#M!&%K9tN7$'Fj>/Wpim:pAd4I0r0^Mn`J$EiG`'OuLkE"J#s.0;J*B]G[kY0'6Sf4"+19Fe=6r0CM:H>;#3RjMu`a %F[i(f&Xq7q2(_Uhqlr\f21oQ[Kp:\3nfC?FnrE;eaYnqc^/b1-o>[DT=,r.P5D[46Rp?klKiT:#U %P1);Oq@HL&3YD?cVccOQD[s%!@_"?5C/@o=Wp:tH^9XL1'RY/9?ZJ&1G+)d>AbN"MXHPs'OC3h):"nAnPgmVAG#58Nmlgms?/CEh %BDGtb.;SDB0]2ohdnbJnhu3$DnX"a9s5@l\s5c2Sq=N-3s76bNrqV'DjU_CbjlaC+qX^n?ps5Qss5B;On3Zd=s.b)>r9(imr%$%_ %oB0K\p##cW#^+ghs7Fc)rpr@&qYt)fY2T~> %AI9_PrivateDataEnd eina-1.7.10/doc/img/menu_bg.png0000664000175000017500000000030012175475327013110 00000000000000PNG  IHDR?!eTsRGBbKGDC pHYs  tIME #@IDATӕ1 @yK5MR$GTS$[~ZI読pv_H%b|&,&IENDB`eina-1.7.10/doc/img/eina_array-growth.png0000664000175000017500000006717212175475327015142 00000000000000PNG  IHDR: *rȉtEXtSoftwareAdobe ImageReadyqe<nIDATxOWzbB^ dK$&fܯ Xl^ڋf+XzC1vxfA(XA4吁 l@jkfClA" #+ >]׷n?Ro[TSySu-,,$IG6$I2ё$I2ё$I2ё$I2ё$I2ё$I2ё$I&:$I >|%IҪ۽{nGG$-Id#Id#Id#Id#Id#Id#ILt$IlM ɞ={V`ƍZ7|SzذaCc\2ёmffoD1==]>>yd155U:th{?%AyRFϜ9Sl޼/+W{-?u 럜,>z֭[l۶`v lK$/.ZONq:]CiK}۷˟|gI݈cݱJ2ё:"pW?pfWN877WADy< }=Ǻy/G4!aً//d/_,v\$:MrHB=Mrcǎߍ72)rI@X_].i^[U>>cڕa(ئHX*d# Lՙs7\>zBdSѣGA=CN{e˖%uo|UshTsa燲IHjHH"س^z c#)zGrK}*zsXcd'4~@ʤ~AIIs24d鱨:ӯJrnpL?9HZa2ѫdž !ED޽{!*$ t,e;)?MrRף>vZ4OD4OLf$8'FM@$0Fb@ӏ$NsR,tILz{Xev OC[[nȰ$!ڿRr=ji/ j/Px")׎dDS]Imi &HZ`V$!g|J|{*y9PzUFLx6IZU<pۗ|嗭])I/LX򫤺/e- i/#U E/_?=:aKԕN' 0A5ӉWc؈᜴ _c٘dL"QuuYl;ILړv}yHS0uXzu\?ECFE](11:JԕASzj 9U*z酊^i/A?7HBDDUNvqUL׃G|HЪCM/sPv\mRy4qP5 }(I'#K+,tK*zb*))#9OU⊱NW f$UWLtsߙvMϷyJˊ!¸.WōёёVU՜TwW3uS`YN ꊄj{\\;pwN@Qv{ta]"IESU(aGgXc[ðf}~b*{#?vܹ|9Kku늿*[,7,O{|L*I@ߝwYߴ]rb{N?._vhw;e(ӟ::mO˿,,^~_+L7W՗2x.-;_EVר={ڶOIUBNW۶m;gBW >|p$Im]֡+溙/J$I&:R7<IZʡ+I( ]yy$I[&:$DG$iz<%IjJ,xΦMlaI]I$I$I$I$I$I$Id#Id#Id#Id#Id#Id#ILt$ILt$ILt$ILt$ILt$ILt$I$I$I$I$I$I$I$I2ё$I2ё$I2ё$I2ё$I2ё$I2ё$I&:O/_.>|hcׯKsNy S:^I'mfxIN8Q޽Q%[nZ>}<妦g϶ۺuk<<$DG#311Q\tضmJLOO6mj=I  ΖM$5333岼&IMUC1zi8N"ɡcŅ ʤ9⽔AY4ݣÙݻwy+-χ7}Y;rHS*̓!X{}|9[ 팡+G9 O`GLX9@EDeKݬ X}l[mgUmƾZɷ|WuYW:hozuht{MbBW ^>O,B+3 N=6úoPIX di˨4wr=*iBQ:^mdS#|wGRqI$0HV Qu5YzSd$ eڣѣ U>Ht(+&;3񸪇+&D3O(n# zIZma` T@i8#g[B(&f灞u㲒eׂ ҭi7[tþ;E]y=,EYN@d*H/ӍaacH&.?fFt=PJ| W[tكIj~N7Po|btrH>Jt$c+u{0P9="ub$&ҠGq#@eXoJ=:qQNpq3Wc!G2t؈$:T]UGmz,}] 1OD<1icIM;##^ĽG w0gu+VԪh@M" U헪:WfCNeu{A^j}UvGO]|<_G<{K@#73L1응%^DGZ==n蹢&OPzMXIYzL0S+ ׉u9_1Uu% zEI5-ItzIuKttԑv7D'0DkN|eT7%^ġ+-sAIvLm}NnOOJ}OyI;GG$ a$I$I2ё$I2ё$I2ё$I2ё$I2ё$I2ё$I2ё$Iquի9 Jdb["q Z'IRs8t%ILt$ILt$ILt$ILt$ILt$ILt$I$I$I$I$I$I$I2ё$I2ё$I2ё$I2ё$I2ё$I2ё$I&:$I&:$I&:$I&:$I&:$I&:$I&:$DG$DG$DG$DG$DG$DG$H$H$H$H$H$H$I$IfXčzjqݱwk\tY?9$!-,,tÇvmIU:)^#]ޡ+I4Lt$I$I$I$I$I$I$I2ё$I2ё$I2ё$I2:c~~==<>}{9~y(m-k]nݺU\|yZ\I2Y%'O,fffkcavv弯N>J\ǽEr>nBHҚNtN8QLMM3z1.^X9rغuk-7kbbbNIN?Duu I&:uLt:W$$:uM! I$iӦMKǴ<aIjp}ɓ'/\(0A.]*tg I@<|,˱|@^ʎ&ȤFo޼(xE%={}ܹ i}ڊ]zlžN,XgP6`#X|Ei4S.V {bu#>!guOX! NKLt ({$% ׮]*F,g鬃Hx.?{ŋvue-YӦ9 :׉mN]A0A\Ka'5uc&:MU֨[7(+M. n4iS ˴K$DO >\E|$X"{7ʲ?҆^<8GKܗeXV+Ĝ#p$´c{$Ik0щ3J~b^hRAJ!ilk׮]0q;OtY> UFWcmۄcB4(zhjooJF%-#mA,UVRcӛϥ댓^hLt͓n\aW哉y>^/'ؖaaPnSN+h4H譢c{ ([\d4)󆁒]ŝaˈ׭[W~O>20ٳgQ gy˃ W#`Ň~X>~뭷sD]^E?ew݁}Ŗ-[~Y駟="lwl={V9sf2z"9,u?~܎9aا,:m'/E]zjr;kia'˵A'Цԕc*-3!-I+8|ןy ݞ-&[[rbhݽVQڋd#|(3I+釛v6/M;\U><ݪs=C&Ng^UrLs+<$i% QSV%u^FRcHXnGУVޑt.UׯHΘ/6e:"ؾ{ʤ^S'Wz +c"~Ԩi%Ir$Ij^&$IDG$H$H$H$H$H$H$I&kW@<~z{Nٳ6$\}Ο??vt\$Ij$I$I$I$I$I$I$I2ё$I2ё$I2ё$I2ё$I2ё$I2ё$I&:$I&: 7o.߸˗K+_Kݺ5[|paݶ$IZ5u>$IcDG$H$H$H$H$H$H$I$I$I$1kcӧ=㧟FUuT[n/_^8ʕ$8yd133_H8fgg{zZӭ%} {?SSS<]"I7 $iM':'N(?ܥ^(\x8rHuZ&olĢiDҲm۶/޽!qI{i+ =($5H $5$$}LCCBCbsҥEkI ٴiӒ1mZ$ݻw'O8p`lÞx@{(90tSvl73Q @ZG /yeE}|ڡ"o^{X/c=1|TX嫶#w~XH1z('o(dS`~miOʏ$Q$ש[:|EuHtx_ziIN ]|a…E.6p& ri$ 2ϡj2&˱|gMI'޼ysgϖϝ;W9!;/@[ a׺]b. { H(z9"0=ztQ{~( ˲UÞo 1Kt²{-<鴿$DR|GRB {ڵ/ x?`D q:O{x.?{ŋvue-YӦ9 :׉mN]A0A\K 5uc&MU֨[7(+M.M4ޣ7qi˓-I2_}բu>h ,>ȗ;C>S ϲVYK-n=i"y?E`.4^-ڼa^vr:Cb_)6>~[IQ^z|*o<ْ$@ U$%,!^: ֳR߲;9 k˷~{sizƢG$e{ U@sHbhuD/ H{Ƽ|n P$;i2Q﷕LrjanK%Dg?#=/I/=:Rvneʍ^`U5|5av=g?I"GD?!iJH1Ӳo+0lO%謰x3a`$O^o>7ʲ?a"byp/˰V u9GHin'm SL=9&$>(=ye H˚ j+Yv`8Gٴ׮]̓ ?OtY> C%n4߸,&Sh&+!]ڗ$ $ [#C+1d#Um(Ypzϙ u-;_GzTW'we*qX=UI@^/'ؖaaPnSN+h4H譢cI&A$i7W=x`2 #y@I&:+-#y4PLn7C"W1sn/eie1Q7z$⪤r(~Q0'-$<0EBoML.f{I0k 6y2ߗӍږ6y>i~A{t(w_gz$Iunaa۳?z1M=!݋h%ٳVE"I_@E=:V7+]&zt}id(D͉ފn5*7 _7w?s.HRWxHJ2ЭKF$b*nձ݊7 ȏ2ѡGN#\4ɏ_$1?zY.*ݼNu=u~.N8&KV+HuΏl2I4Lt$I$I$I$I$I$I$I2ё$Ij}w}W͹jEףC3իWu$ Y#srrrΪ޽kR'IRs8GG$H$H$H$H$H$H$I$I$I$I$I$IdV|7۷7nxeRn'O(&u$DgHZՍ7^#IҸ5$9HmIزGg+ ujIǒ$\rdkI|+9~ "I2}sg.%ȩ}z$DgIC3 $Ik{IVxy$I2ё$I2ё$I2ё$I2ё$I2ё$I2ё$I&:$I&:$I&:$I&:$I&:$I&:$ii䷗͍ݎxqqԀ:ILtVXcǎY'$IZ;S8p='IId#Id#Id#Id#Id#Id#ILt$ILt$ILt$ILtÇ{|{yy,<}rQ`ۨ[jNuVq%]dN}裏G* M m Ik:9qD.dŋő#G[2yc&&&=Đ}MLtVCݻ*8l6=9^#;ضm[O pcݔ(Gcע=^CQ>P{c=>g,Uۑt?u{,a=UI2)buӶ'H)|Xu=WC$:/=y贿$DOJy|~…E.z1y~e>K$1Y=nL:i͛ E%={}ܹ i}ڊ] T bPN}sigmPr,D`fJ6J;lհ([7H.b8*}XWzSxo8=V"AJK%I&:}~=> >t]U;'#Y>Y4#O\~=.l/ZB=)+23K[>MstMۜ݃a$ ԃ6(:Nj)'MthQnPV\tJ4g)OؗU8 T%Xd3_}բu>h tA;|GB{y~[u^ovsF H8:#๼W6g*W\',}Đoʥ稪z=.197~"`GVIX١ ?m<ْ$ĽP U$%,A^: ֳR߲;9 k˷~{si!g#Aòƪ`I1:K6Ҟ1(*sU"I4z7=p]dBI2êS/ewvQ& VUWj#xӞ$r$J X*!fܛNˎb ;}@Лu?%YpC yREp&zQ i8σs}Y5lRHȨK9"G"L;v;nm%pl$Uߣ|  yeI e^vZ4i{|kSԡ]}yK}-I2Y擓e2bƍKW'&v7o.ݻ \'gϞ}vLv(v^~LQu@311:zw,JduIξ}{ԅ:ILt ۷[z2AHk0S۷oo%E[lUB>Q7umY?СrIX$ilW/[=T$le]9uj!R'Q$Dg 61 cǎ:y8x^H$DbDeÆܤ=$DD!+n#IkZqdn=~$_43RnG>;vlvݻx!Q%om#i!y o(D}"$yqV1聛}3)|jjʞIZF$?^8UYum$YcIw4_QJ/$h`NΗ_G$ U WU]-'I2ʣ+W=Ǐo|OWT1LEUѣ53J<1Ynzua'1DM_:\^RϽH?$I&:HC3 q=Uo֟rrIN7{4]z/qpHT9:$DG$DG$DG$DG$DG$DG$H$H$H$H$H$H5^>777v;ŝ;wS$I2Y1c#;f$i':Nq$IZst$I$I$I$I$I$I$I2ё$I2ё$I2ё$I2ёԃϟW>|%%DS}mN֭[i{I2ѩݻwqϗrӧO^-}G2ɓEMMMU>ƹsY{y$ѥKizFĉ>M6-y2y:T[n-{u$-h3(ˉuęm/e6Wahv:1@Y][a.<~5rmq׋;w۶mk:=W@GyIR]oRHgGYrͼ ىυ  ̘ĺ97HoQ/eZ7olͧ`:}2>Tܤe(ې>zh^}kuDB>c9ڎhe r,vv!Nڋ9D`C׻ tG@ݻw/.z?"౞8e9#'le D<82mɣC5Ht⬞xDu@X o SIH'FW_- >Z+ ==vhM8eWCoD:H2 C'[TC N{rJr4ƙizK"!*~l䯑^iB7oMHۏ}Pt;X?ezet)=UNľ+z)F߆yR@ې=[g.$٣|$;1RNLS>iRi/)vWEvqca [KX'=lKzx]Q7=z-;6jQ?b;Iΐpf)8 9aF>asV4U]VLu +9lT7bRy )ѳoFOjAӉqua$B]U&I&:3~U̘\JC>抮:xc׮]ePD1JRd90@b';,'|'Xf ~V[V F; }$Dg' ;*hrf?!Ǚp>7E] ;&qUUVUC|AE3 =,<*PhGw\BNk c}F߆<%5Ac'# _hHÚ,NvZսHRrH/ѯ|0n07R41?LDKug8ry_\QaTD;ʼnC="${tV=9=juɧePNH/&b)PNBa AIgd# 1|ŲÜ:-nH/ o">UHo";,CY#&o1ȕcuy@I ny>T 1׀ sy}>{ڝUk {VZ݆DU9sT7ё$II$Id#Id#Id#Id#Id#Id#ILt$I@+s֜;w?׸qLt^jSiJkzNNNݷ$߽{:YU5ORo#ILt$ILt$ILt$ILt$ILt$ILt$I$I$I$I$I$I$I2Y+7~]|r2sssk[f'OuI㵙zG}:C uٳFILtj`>99Y&/_*6nܸ$z.z~bbWy޽jE} X~ٙ2y۵kرc{ŋ3F}:~bburpvXuIξ}{ԅ:I: +?iS:IN ܾիWϊ BҀھ}{+)ڲes:o|?M(w!OZ: г^lPQÇuԩsd`KYGuWUuJQ\'I2ѩzaÆ2x!V1\qVT^>Q7w\УA7OԱ.o 6llՇ&m!y@$B P:%Uu ћXlֹNTGj azzw'ܻwJHE۽we'K}>uKF'Ї7s]ne>սNQV/Es$D͗7kx7§ACp CJLtG$?^8Lum[srs2*IYckPI") e1 T5 'IG^{ -;%IGg !X^rL$d-ZbmatQ:@LtT DHg*c|#Y1ҥK̅bz%DGD/=h/M[CTL}pyI= "@$,#8;2Lj+zvU-I2^;M޷e\0LjaqNw~Q+Id#Id#Id#Id#Id#Id#ILt$ILt$ILt$ILt$ILt$ILt$IҚo/Ν;:d$ Ѻ|ݻW};?$I;w,u>RGu|ztyiI,H$I$I$I$I$I$Id#Id#Id#Id#ϟ?|ܫ{dǒdSs{)N<_ /_9xjO>ڶq~zyWܺuL$} ?ރHR_+'&& A/8O8l[8uΝIZTk1Ν;W>wСZ$DҥKm>ȰBĺVbc0ObV]WX,ۮ0@mq]v-[C\\É'd*:kt )A#G)e=;~.\P~eϧg'@MOO-;nb`۶mv̧̝:}2>Tܤe(ې>zh^}3 nWmG2Pz9G;E;'v:ujU[7'@y<锨_7}객ԅn$ʇ1gL|z7n{n}Eg]<g Gp"D$v,'MȢ_xQ߿|Ζexm<0eF“,ޏ(_1u}^E=/-ʍ:=P|PN:,IL޳1 ֟ô=ZlFH(GW`Ikށ g AI|"~!XEg| X 0Ugtyo$9_}բK}?El 4ު߫t;H6gT1M(KTC;l)~fgPvXNGJ$.;G@LjH!G Lk;.A>NF &ti}6ބI1_WQMriRi/)vWEvqca [KX'=lK?z)b)v=D j(0ҊawX]O$ g>y0]DaIXɲ!<8|<]9lT7bRy )ѳ\st~LJ$J%Zd3t?W*fL.%!~sEW$+:̘b:A50@ĹJɟ$ }qOz6,qI&: Jp . nqN>7zJZv`x67B3 =,<*JK;ю$︄8vgmU#ajLGꬱ&2!aML'-zJXrH/ѯ|ڐ`H3R41?O2rc!p򾪹(o +/C=u܀P=9$bePNH/&b)PNB AIg |Bj _0縰Nz؎p#p7mWAQx[7dyy6=bi([ )r ɡ,̶F۰/K󆁒Ϻ4*>7n~ӟt=?͈yERPΝ;>~'Oe,ײ{4Ϟ=+~ߗee|y-y̙3K+zX7/?,?Oe\LNۀc!k#}'[er3>bMCUնo~?GxWXmٲL^EW*ꚶ+3g.naa۳?3=$|({(F-"!S{E/V!niÍ\ul2u&!7Uz%רZ6ᗡL:n$ e4v#:Iԇa9Uw`?72gff_OZ077Wܺ5[PT'c۷o/y]}nu'uʗK:iٳgeLtƍ;_ƍ$BW^)ݻ~&z|:F}_~ţG2+\zoZc&&&$m$7ԁTM{U: uoQN_$i33lj@t-Wߛ7onE=1k:?x`޺+uܱcy;z>+n'cqO}g}4;;[LMMM]&:<Q_ j]'D!W:u:Nl3J]?I4V֐ędEs&)>| ,\[z:rO}:QX>OԱNmU199YEIh,! 7T:)MHS\Nu9P'^'Fn=tr _v'~?Ԯ^lw'?HoGГPCԧnA&?{ C?~|QԽN$}FMut'$2 Sd+Q'DgKpM%!4 :&b=$4 b(S/I&:zsLkpMC/"$<51aOg."ipqE/I}$iؼCr&9u+%? }[4eA209$'.w/#-:b~Uo i|أ,Ir8{$u`F&:18$n$p霗qDI&:Y M4>\\a۷D:6}o9,LTv$DG}a=\%4-RxpCV$7$? OKxm(.{6xZ@VP̃yAʼ3g>M2rm>z`:,GsqGj9}[/~ٺ:qޓf0lE"JowtLt$j\(yy$I2ё$I2ё$I2ё$I2ё$I2ё$I2ё$I&:$I&:$I&:$I&:$I&:$I4K=nG<~suN?Y'ICnaa>|{U1IkΝ;i-{u.߸wy8p{Z$-9:$DG$DG$DG$DG$DG$DG$H$H$H$H+j~~$ܞ={'O87˗{N{ӧO-}&?>*QL$} ?ރHNqϗrӧODmKII Nm۶Ν;'LMMU>ƹsY{y$ѥKizv֭28qɓbӦMK/=7$.7o!! |[eث#Dgh DiFm;8*|X"}-1|au5ϲ  ߖkK.za9{гCr_^\<ɟ$5&o<4hp6{ȑ%gIÞ^\p@O`9Oό fV| Aʓl~yGm+vvZUXj; ؗ1D˱X>)ڑvH8i/ԩSߺA=c8*}6 Xo8a;KiIN|sć0w(膏wtg]<g@Bp" &$v,'MȢ_xQ߿|pfOY(CE}) L#s=,)z^[uN Go ?gcT?x#ܵkWm$uy]hWʉ<$E<82M%"~!XEg| X 09<= 1|AꫯX˕8i/!)9t;H6bl$a A ^ʥ*Icv`4Sv146^ϨG$iOzw#ڃ2dKꢱstiONYiՐB@~Ǚi:C" T zNewJ6HVhyFoB~bi/ӫ(L<왨:vw#}\TK16L$9$RLFMv~%${t$Ugu-;M˃-=lW _ sتסnĤRg& ӛE11lhoS{IҚNt.] 0cr) T +Xv YTHj[la 1ȓHMx_\^>p dmX#qH0%Dg>ʠ.fXwC+tSRײCI\UUF$F Cy žJRN# Gs~;.!'Q5щc}F߆!P摰u#;KjNF&`ɿА ܰ&K]=%u,{uWa>mH0$V` Ii.?};dI/BԹ$o76c($K=:+GbFePNH/&b)PN0>3S`_NW,;9.؎p#]0K[UP'*MY~(+zd`-JjQ?6<b'X7 TG[4*>7n~Aӟt=CkfDܼye)rcfΝ{?~Z|Q{kٽlwXPgϞ2X2rU v̙%1q:~߿?"O?mr1y:mدю'Ǐo(94yUUoNj~?'66>W*ꚶ+3殿toBgq ~-fzH^$'VŨ0ڠW$dujJ~#M<ё~nMN=0$JYK&2ISuS핤6pn_2Z'1I0Q5?N짘4z07N#q~U=^ús$T|}Dz˼R[h~` =$Ցst$IRc8GG$DG$H$H$H$H$H$H$I$Ijw]};W^-v9V;z"Zfxq{ƱN]4Ɖ;6ߒ<`֩jXVRo$I&:$I&:$I&:$I&:$I&:$I&:$DG$DG$DG$DG$DG$DG$/_,߿W>72gff_OZ077Wܺ5[PT'c۷o/y]}nu'uʗK:iٳge&).MWqF}q%իW{/y߾ze:IuaQoԷ?_U' omD:gf.,ig|:KS?i-YV+*7oy*޼ys 7~OLZ{jW/;֑3ϥ͜>j)'zo "E/KHr3zRuS/8 aw'[i=Ug$h_=W/NedFKM%!4 &ѳAdXu\DsHHtH~c>;S&oQzGV)ɹxq< =ujzD즡3iHޚF$0x-zqH_쫘״'#&Cr&90o@C=M/v LN2n$xUuEC7Oև䆿鑓T!KΞ!ɡ>y8}D'&\č.2ܓr.JLDGkBD᪸7\\a۷D:6}o9,Tvē|"9x%9tF0\B)AIPH4}}G8yTqW 4ss$Շ=:kD̃hZALle^ w2,[^)ta9cǎ7>l;sH8crᒉN3Ӝ^ `l0!TzOq@@"Jow nz/՛I:Wd#XBfcz<\ؽ{oǏW$9/8`ChM{u.iܹsgqY$IZCW$DG$DG$DG$DG$DG$DG$H$H$H$H+j~~$5R={%`ťKkɓʼn'ʟ^w…_n;}tY-}v,bbb\6zǠ۶m$|K uLr>}Zmc^c;w|СClIZӉ=9׭[ʀO'O6mZ8ɑKD=غuk?yF9:Oe{9KٱUkAs y,DG˗O_\[NVeU80$F2E'IM f9dE>G@s.@O`9Oό NΝ;KmvGbg؜s4s*輏'7i}ن㑷!}Vbhk׮ `gD/cc!|S#q^lSVeuz>$yEziI]fIN|sć0w(膏w/^\~Ec=q:r KOkl7x҄,zkXŋlYvQ_#Sf$욵Y>y9U|HۓuNiL(3i2 Njt|SW9' ?i Ki*Oؔ?+mwpMBQv_TipS%ho ه}/J7=PsKNC6yc(0_;y}S[c19:i۞ҡ!^¶a+vx' WPћ>9s6%d-o7iaSv;]!Ԗv󼙈;Ԡ;Su_+z)C9O폃%У3|N2ωxޓ}{"~Jqo~W?{MĭaXְ^A 3=ٖEwIX/KZ Fl_Ss`!;w]>Oɱe < A N ʲߡF3W˺r'V1.v>UU~K#M0 {Xۡ7)1 xy>}-!OP[4Ա3# E+Ld'#N# {nY%ɮ}Q=%c|v>LLYVMBiULkO'WB Iy\iP繣Q?w 3$9$lyeqjZV. v,ξUP)O~[7[幪G9z!Ž =1˘?40УdiX\:'՜kNFG?!^iB1;;'+<$,܋lw\_i?rSIh=e [EmKV{_m9}B9mvCQ۲|X5}Q7={WqޱxI#4[22yLzڷ(uO=:azy#+ߣ7n\fo+Rz67C 8C=c^vrSfA<7,dHbh~ВLRO5(ˑAc!x-Hy7s-M)wq?Ĕ~MY׾aPݓh5g`l&AtA@t@tkruX;JUDʵjoLUzMbm'YITw#II9V5eR1@tA@tA@tA@<|{9RζU6ǵo^r/66n:u=}}zǤ-ϭ[feܼysh…msq׮]U3gq R_}WB[ܹsl7RO~V^L}c:~o[uvae?'yUL۫nsյw߽):#{Nga+9\NnPɡrߎ\U*cNߟĜr|!eg;u%'>x¬ WiV7xԩQEHLUlslȔ|cO^}=0U6c=G޽/OZvzfX~?Ξ=snd}B~ѕ-O1Wb)O[:AmycjS152}ɵm$K5B !cJBNY<2w=}=̑  Se(qgۺk]UGX屹_sm@ЙzQӈ&4fO8cWӳ$êzDnϮ9bϔXk/9oSc0u( 0͐w7fW~}v5=e˕tO)Lß_3u9rU/NB]+uUV_my9bSzy90us$ܴ!gs<2Ho'I>ۑ0pgh-G1.#_DxUcE<2-OAZY61a9FX&*mBNӗ!WwUQ=fÙϹTmVaHcA ݈-ZAMlͼ/{S1BʐN;,4hl{%"rӝ[ttU dUdK៩ɵSoL'sœU;@aeӐގU[q3GtA@t@tA@tc\|{7kjvl呵IDATx]r0 ty3y9d!\B:}j%y-XW-p4) y,aLJ!<2 C^ (!q, "K(v2gZk\.n%Vݗ1!rglv|߶[JyhOfm|߭1q/Y־;iZ\ؓjƦi aڶhhiϏlFcًѶc95N-hZG"Vɝwe{, 3EPC`FepaF#ZurD*];0E^A5bh=^?܆A/l 7{7^U qX}1mu&z7l" kUm_K\P= PK ('p"p %HNπ"%XPfG)VAn$NݳrZ[QR16ztSb=ڄ*3et{UqE -[ǢN{ ؞Zل` vf'*+NEc^$[~x*āwj}ƍ'OvԩSwUl߾IO˺0̿V'}lΝ;;ṿ^U76={ڷoAʕ+իWSaO6mٲe$Ϡ&%c7o|X;q@;ymq<Ǿo*Ώ&Tձϛeu$>*yt5v[n-yFrSPqp'ŋb`PdmrBpv+ַm۶ʂ4>}:^UR@JGC!wt(?~RM~,QhR1{%Z=錠wN߿?*Gc&K4lKk엺 $I?yYF"q6mkl()ظ2VEA@RrpP88((XNNh&jJ9/U(HV7դvo)d"=,XEm$/3j4dp TKyM2Rk+򨪕 C̓'P&Kigl/!φUs<`| Z81a…Nz4Q2+_N ޣU8IUU0qҲAjqu\ݓ | G/yԘf7/X 8SKV]M?Z?KMss|6ZqUI=N4 0ָ2m_I rڶNg򈂶 GaL^T6..X7E @E Nj8f=p1 U0 ,,4*σ 8Qk"j.>@!GE oXvEW]_i?㍴\Fiط'/|?O59q YEFE'pu%GAI[~Le]*|Ga( ^W 5.aκb~~q (AM4?G=ˆB`d;j)1~^؎r/j|gXA$. JfE򡷽Yĕfyd EH@'yLGA<,|5J0N^చ a6K1. A;NJWhbP$F 2. R 7)$t >GjI7]F}IQpdG?I~hڟQɫ avOZO6v>&9v תYG(eRhn*5n媻IQn–waywjṀ4Jw܋U%>/q~rӛ󋆲^}&7Yr<0I9;c$"هu۸AG)W'qMIEMwXC,[a:?l9µqEy!hB<'? fA+h19Z 5'yH&ۂ|i4"?sTMyAICa-EGx|OB)NA\}w:ţ) &OΟϕw}7RQ$U4 7eKWxo)I4IiѓQ oG 1oNK \j$Z׮]{lP5/j`dR+U5 \(f&g-=dRk9r$d^zLԈM$$I.I \$$I.D7n(N:5e>|pbOg[ئI$/]^Gyܽ{7-ac={O/۾~ܹsxKqRpr իWW܉4d[HCU&yc_Em$2'Q+[Oh&ӉXn|z r+fffR>Ǽg)MUgwHquߑff8Io+qi\F:F"Ol/6jjD<;wL'YDhd|O`ANP !^6mY$Y/E^'<i"cuU|9e.M t:eD'mˊϪ]QO<|ƶP8>}t>~x'hJZi"^LլKe7GK0zm_=ˉcr32/;c,y! 6iyFs5.-[0&qu۷;윌|wDG\PŔQĕl0bya(׺(d56%Dm $IIk~0c9+F |$KϘmEQ0|0͡CR>Vdخ(_LׂYF*UyK88wj~||q\gq'NtS%p1M~0Bs̑^/}ͭ.MhΡ `_q2rwTyTQX6o Q@@MOaA+o 'U ?jy6ѭ٫N6[u"5ou y\oW/+/8Kzh)a菊!FE $/zOPޮHpFYnz\JC%aZ[UޖZF},tK˴0pi*pѴV.CIMA4/N<9P[|ߤ[?J?"N09nh.0]& OӶ 5w}F"yϠr3/j34b4 WQ(SQJ< mM(@(d7-elKBlR+r3aWyS(fЊQ9.Ry9y@?_ԈYo;5=)7ϑN.6.F},73sRt(b(ibx0'/#j[͋)fr扁$2m IdxGO0ig{YbMk4ױ߇fBHrm[#o@!8` b"k\G&öG65_Gׯ_o驡dNN^F.}s+yc:{n*/}K74nW^IE!Nt0[orIWxX?ߙic>_jJ+Ӱ0=!MllWa< yxOS>i}ºXgoy;;}G?)ߪw}ϱz[UsUV&?c(_w^]I 4'id"Kg(EoX>7gX4{.haaaqnnRVCf͡i$rY)>7l*Zi^ ZRs*&&x0kfI.uۙ#s$0H'KKc$%IK$$%IK$$%IK$$%IK$$%IK$$%IK$$%IK$qٳf,Xf€>Sr@_vݼyӝ+װ}Gfy9=Ν;ڵk;ѣG͛Ǧ{aqƍ=3͚5kwwMoܸe̤>>+O'$5vԩb˖-)lذxAqb׮];)ݻٷo_ p%sbǎi+Wi8YFܹsf \u>|S"'EࢦEТgϞN.]5(%@1e%.V^>>Õ8L˿瞛hn ZشiS <TMԬlA yAM,G2p'|R?X6sڵ⥗^z>ϧQk\2./'諪yW+2Qo%GXf1C$ UބHUXQӊŋw4^p$a ATp)1P2pI":t(aŠ _= XOL7[S>.I}*o ĉŭ[R/^13>iQ|7 /^uBdbA@*3 2ʟ3,l*D=%5}yoa&#~_zq̙?6S \4A d \ZW> )x;toׯ/~_tZtA3$}\Ly]+Z?65s'O4%k\PswKs!̓%ۿz'xD+>.I.ّF}Xm!iǥG N0bL qI°rLKj/^y_Lq}^ZA}3^Kx"W_W^"PqXl˪Ş}vr/ڱ /\POH|XlݺصkWf͚4k׮-n޼Yw۷o/޽2={ضm[Z^xA)zΝ=_b[o---ı&Zs޽|ѣG)`lի)۷ӧSa:{ĉ)豬/?ڰa@~Ձo}mdjT ԊN(Hm C7nH52VAjaF,js$WNyڼyszuVr )jMԲr333)8P@HpPIIdjA*`:ys̈́4}Z9>M5r/T>._QLI8#jHPQeǎ)h1x2U\a4ji姕M$x:4B>p#ipgU?O6N狧z*0~R6pnU>'!rib'=IA#kI2p]ѯͿᅮ \Iţv횙#O?M_~}[42HCzYmhyN:^eҐdRLH޽{х|oS$Z!:zh}[4ҌhT>. }XpL+$#(2x .FJR76jl~ӟeIָ$I2pId$xq ,$TaD4jܤ-d6J \$M+Qu1ͬ܀,I. t 5Ο?~ȑ#f$څuܹ>9ɋ/ IR+3 IK~.ITW S&Ժl&dRZf$U3|;IǥVXn]erML \j-j]6JŦB]UO{A \jaПߋedR8BҠ$$I $Tx쬙ͦBIKQpׯ7$5=fffI3 %I.I \$$I.I \$$I.I \$$I.I \$$I.I \$$I.I \$$I.I \$$I.I \$$I.I \$Xt…sK4qI԰Pd$%IKd$%IKd$i+EF8IENDB`eina-1.7.10/doc/img/eina-list-reverse-foreach-safe.eps0000664000175000017500000405257012175475327017402 00000000000000%!PS-Adobe-3.1 EPSF-3.0 %ADO_DSC_Encoding: MacOS Roman %%Title: diagramas_01-20.eps %%Creator: Adobe Illustrator(R) 14.0 %%For: Marina Proni %%CreationDate: 7/7/11 %%BoundingBox: 0 0 1121 1695 %%HiResBoundingBox: 0 0 1121 1694.5000 %%CropBox: 0 0 1121 1694.5000 %%LanguageLevel: 2 %%DocumentData: Clean7Bit %ADOBeginClientInjection: DocumentHeader "AI11EPS" %%AI8_CreatorVersion: 14.0.0 %AI9_PrintingDataBegin %ADO_BuildNumber: Adobe Illustrator(R) 14.0.0 x367 R agm 4.4890 ct 5.1541 %ADO_ContainsXMP: MainFirst %ADOEndClientInjection: DocumentHeader "AI11EPS" %%Pages: 1 %%DocumentNeededResources: %%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0 %%+ procset Adobe_CoolType_Utility_T42 1.0 0 %%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%+ procset Adobe_CoolType_Core 2.31 0 %%+ procset Adobe_AGM_Core 2.0 0 %%+ procset Adobe_AGM_Utils 1.0 0 %%DocumentFonts: %%DocumentNeededFonts: %%DocumentNeededFeatures: %%DocumentSuppliedFeatures: %%DocumentProcessColors: Cyan Magenta Yellow Black %%DocumentCustomColors: %%CMYKCustomColor: %%RGBCustomColor: %%EndComments %%BeginDefaults %%ViewingOrientation: 1 0 0 1 %%EndDefaults %%BeginProlog %%BeginResource: procset Adobe_AGM_Utils 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known {currentpacking true setpacking}if userdict/Adobe_AGM_Utils 75 dict dup begin put /bdf {bind def}bind def /nd{null def}bdf /xdf {exch def}bdf /ldf {load def}bdf /ddf {put}bdf /xddf {3 -1 roll put}bdf /xpt {exch put}bdf /ndf { exch dup where{ pop pop pop }{ xdf }ifelse }def /cdndf { exch dup currentdict exch known{ pop pop }{ exch def }ifelse }def /gx {get exec}bdf /ps_level /languagelevel where{ pop systemdict/languagelevel gx }{ 1 }ifelse def /level2 ps_level 2 ge def /level3 ps_level 3 ge def /ps_version {version cvr}stopped{-1}if def /set_gvm {currentglobal exch setglobal}bdf /reset_gvm {setglobal}bdf /makereadonlyarray { /packedarray where{pop packedarray }{ array astore readonly}ifelse }bdf /map_reserved_ink_name { dup type/stringtype eq{ dup/Red eq{ pop(_Red_) }{ dup/Green eq{ pop(_Green_) }{ dup/Blue eq{ pop(_Blue_) }{ dup()cvn eq{ pop(Process) }if }ifelse }ifelse }ifelse }if }bdf /AGMUTIL_GSTATE 22 dict def /get_gstate { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_clr_spc currentcolorspace def /AGMUTIL_GSTATE_clr_indx 0 def /AGMUTIL_GSTATE_clr_comps 12 array def mark currentcolor counttomark {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop /AGMUTIL_GSTATE_fnt rootfont def /AGMUTIL_GSTATE_lw currentlinewidth def /AGMUTIL_GSTATE_lc currentlinecap def /AGMUTIL_GSTATE_lj currentlinejoin def /AGMUTIL_GSTATE_ml currentmiterlimit def currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf /AGMUTIL_GSTATE_sa currentstrokeadjust def /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def /AGMUTIL_GSTATE_op currentoverprint def /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf /AGMUTIL_GSTATE_ht currenthalftone def /AGMUTIL_GSTATE_flt currentflat def end }def /set_gstate { AGMUTIL_GSTATE begin AGMUTIL_GSTATE_clr_spc setcolorspace AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor AGMUTIL_GSTATE_fnt setfont AGMUTIL_GSTATE_lw setlinewidth AGMUTIL_GSTATE_lc setlinecap AGMUTIL_GSTATE_lj setlinejoin AGMUTIL_GSTATE_ml setmiterlimit AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash AGMUTIL_GSTATE_sa setstrokeadjust AGMUTIL_GSTATE_clr_rnd setcolorrendering AGMUTIL_GSTATE_op setoverprint AGMUTIL_GSTATE_bg cvx setblackgeneration AGMUTIL_GSTATE_ucr cvx setundercolorremoval AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or { currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne { mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark }if }{ AGMUTIL_GSTATE_ht sethalftone }ifelse AGMUTIL_GSTATE_flt setflat end }def /get_gstate_and_matrix { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_ctm matrix currentmatrix def end get_gstate }def /set_gstate_and_matrix { set_gstate AGMUTIL_GSTATE begin AGMUTIL_GSTATE_ctm setmatrix end }def /AGMUTIL_str256 256 string def /AGMUTIL_src256 256 string def /AGMUTIL_dst64 64 string def /AGMUTIL_srcLen nd /AGMUTIL_ndx nd /AGMUTIL_cpd nd /capture_cpd{ //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf }def /thold_halftone { level3 {sethalftone currenthalftone} { dup/HalftoneType get 3 eq { sethalftone currenthalftone }{ begin Width Height mul{ Thresholds read{pop}if }repeat end currenthalftone }ifelse }ifelse }def /rdcmntline { currentfile AGMUTIL_str256 readline pop (%)anchorsearch{pop}if }bdf /filter_cmyk { dup type/filetype ne{ exch()/SubFileDecode filter }{ exch pop } ifelse [ exch { AGMUTIL_src256 readstring pop dup length/AGMUTIL_srcLen exch def /AGMUTIL_ndx 0 def AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{ 1 index exch get AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put /AGMUTIL_ndx AGMUTIL_ndx 1 add def }for pop AGMUTIL_dst64 0 AGMUTIL_ndx getinterval } bind /exec cvx ]cvx }bdf /filter_indexed_devn { cvi Names length mul names_index add Lookup exch get }bdf /filter_devn { 4 dict begin /srcStr xdf /dstStr xdf dup type/filetype ne{ 0()/SubFileDecode filter }if [ exch [ /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx currentdict/srcStr get/readstring cvx/pop cvx /dup cvx/length cvx 0/gt cvx[ Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx names_index Names length currentdict/srcStr get length 1 sub{ 1/index cvx/exch cvx/get cvx currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx }for currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx ]cvx/if cvx /end cvx ]cvx bind /exec cvx ]cvx end }bdf /AGMUTIL_imagefile nd /read_image_file { AGMUTIL_imagefile 0 setfileposition 10 dict begin /imageDict xdf /imbufLen Width BitsPerComponent mul 7 add 8 idiv def /imbufIdx 0 def /origDataSource imageDict/DataSource get def /origMultipleDataSources imageDict/MultipleDataSources get def /origDecode imageDict/Decode get def /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse { /imbufCnt imageDict/DataSource get length def /imbufs imbufCnt array def 0 1 imbufCnt 1 sub{ /imbufIdx xdf imbufs imbufIdx imbufLen string put imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put }for DeviceN_PS2{ imageDict begin /DataSource[DataSource/devn_sep_datasource cvx]cvx def /MultipleDataSources false def /Decode[0 1]def end }if }{ /imbuf imbufLen string def Indexed_DeviceN level3 not and DeviceN_NoneName or{ /srcDataStrs[imageDict begin currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi string }repeat end]def imageDict begin /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def /Decode[0 1]def end }{ imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put imageDict/Decode[0 1]put }ifelse }ifelse imageDict exch load exec imageDict/DataSource origDataSource put imageDict/MultipleDataSources origMultipleDataSources put imageDict/Decode origDecode put end }bdf /write_image_file { begin {(AGMUTIL_imagefile)(w+)file}stopped{ false }{ Adobe_AGM_Utils/AGMUTIL_imagefile xddf 2 dict begin /imbufLen Width BitsPerComponent mul 7 add 8 idiv def MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{ /imbuf imbufLen string def }if 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{ pop MultipleDataSources{ 0 1 DataSource length 1 sub{ DataSource type dup /arraytype eq{ pop DataSource exch gx }{ /filetype eq{ DataSource exch get imbuf readstring pop }{ DataSource exch get }ifelse }ifelse AGMUTIL_imagefile exch writestring }for }{ DataSource type dup /arraytype eq{ pop DataSource exec }{ /filetype eq{ DataSource imbuf readstring pop }{ DataSource }ifelse }ifelse AGMUTIL_imagefile exch writestring }ifelse }for end true }ifelse end }bdf /close_image_file { AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile }def statusdict/product known userdict/AGMP_current_show known not and{ /pstr statusdict/product get def pstr(HP LaserJet 2200)eq pstr(HP LaserJet 4000 Series)eq or pstr(HP LaserJet 4050 Series )eq or pstr(HP LaserJet 8000 Series)eq or pstr(HP LaserJet 8100 Series)eq or pstr(HP LaserJet 8150 Series)eq or pstr(HP LaserJet 5000 Series)eq or pstr(HP LaserJet 5100 Series)eq or pstr(HP Color LaserJet 4500)eq or pstr(HP Color LaserJet 4600)eq or pstr(HP LaserJet 5Si)eq or pstr(HP LaserJet 1200 Series)eq or pstr(HP LaserJet 1300 Series)eq or pstr(HP LaserJet 4100 Series)eq or { userdict/AGMP_current_show/show load put userdict/show{ currentcolorspace 0 get /Pattern eq {false charpath f} {AGMP_current_show}ifelse }put }if currentdict/pstr undef }if /consumeimagedata { begin AGMIMG_init_common currentdict/MultipleDataSources known not {/MultipleDataSources false def}if MultipleDataSources { DataSource 0 get type dup/filetype eq { 1 dict begin /flushbuffer Width cvi string def 1 1 Height cvi { pop 0 1 DataSource length 1 sub { DataSource exch get flushbuffer readstring pop pop }for }for end }if dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and { Width Height mul cvi { 0 1 DataSource length 1 sub {dup DataSource exch gx length exch 0 ne{pop}if}for dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if } { /DataSource load type dup/filetype eq { 1 dict begin /flushbuffer Width Decode length 2 idiv mul cvi string def 1 1 Height{pop DataSource flushbuffer readstring pop pop}for end }if dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and { Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul { DataSource length dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if }ifelse end }bdf /addprocs { 2{/exec load}repeat 3 1 roll [5 1 roll]bind cvx }def /modify_halftone_xfer { currenthalftone dup length dict copy begin currentdict 2 index known{ 1 index load dup length dict copy begin currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end def currentdict end sethalftone }{ currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end sethalftone pop }ifelse }def /clonearray { dup xcheck exch dup length array exch Adobe_AGM_Core/AGMCORE_tmp -1 ddf { Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf dup type/dicttype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonedict Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if dup type/arraytype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonearray Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if exch dup Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put }forall exch{cvx}if }bdf /clonedict { dup length dict begin { dup type/dicttype eq {clonedict}if dup type/arraytype eq {clonearray}if def }forall currentdict end }bdf /DeviceN_PS2 { /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and }bdf /Indexed_DeviceN { /indexed_colorspace_dict AGMCORE_gget dup null ne{ dup/CSDBase known{ /CSDBase get/CSD get_res/Names known }{ pop false }ifelse }{ pop false }ifelse }bdf /DeviceN_NoneName { /Names where{ pop false Names { (None)eq or }forall }{ false }ifelse }bdf /DeviceN_PS2_inRip_seps { /AGMCORE_in_rip_sep where { pop dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and { /currentcolorspace exch AGMCORE_gput false }{ true }ifelse }{ true }ifelse }{ true }ifelse }bdf /base_colorspace_type { dup type/arraytype eq{0 get}if }bdf /currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse { /pdfmark_5{cleartomark}bind def }{ /pdfmark_5{pdfmark}bind def }ifelse /ReadBypdfmark_5 { currentfile exch 0 exch/SubFileDecode filter /currentdistillerparams where {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse {flushfile cleartomark} {/PUT pdfmark}ifelse }bdf /ReadBypdfmark_5_string { 2 dict begin /makerString exch def string/tmpString exch def { currentfile tmpString readline not{pop exit}if makerString anchorsearch { pop pop cleartomark exit }{ 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5 }ifelse }loop end }bdf /xpdfm { { dup 0 get/Label eq { aload length[exch 1 add 1 roll/PAGELABEL }{ aload pop [{ThisPage}<<5 -2 roll>>/PUT }ifelse pdfmark_5 }forall }bdf /lmt{ dup 2 index le{exch}if pop dup 2 index ge{exch}if pop }bdf /int{ dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop }bdf /ds{ Adobe_AGM_Utils begin }bdf /dt{ currentdict Adobe_AGM_Utils eq{ end }if }bdf systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_AGM_Core 2.0 0 %%Version: 2.0 0 %%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Core 209 dict dup begin put /Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def /AGMCORE_str256 256 string def /AGMCORE_save nd /AGMCORE_graphicsave nd /AGMCORE_c 0 def /AGMCORE_m 0 def /AGMCORE_y 0 def /AGMCORE_k 0 def /AGMCORE_cmykbuf 4 array def /AGMCORE_screen[currentscreen]cvx def /AGMCORE_tmp 0 def /AGMCORE_&setgray nd /AGMCORE_&setcolor nd /AGMCORE_&setcolorspace nd /AGMCORE_&setcmykcolor nd /AGMCORE_cyan_plate nd /AGMCORE_magenta_plate nd /AGMCORE_yellow_plate nd /AGMCORE_black_plate nd /AGMCORE_plate_ndx nd /AGMCORE_get_ink_data nd /AGMCORE_is_cmyk_sep nd /AGMCORE_host_sep nd /AGMCORE_avoid_L2_sep_space nd /AGMCORE_distilling nd /AGMCORE_composite_job nd /AGMCORE_producing_seps nd /AGMCORE_ps_level -1 def /AGMCORE_ps_version -1 def /AGMCORE_environ_ok nd /AGMCORE_CSD_cache 0 dict def /AGMCORE_currentoverprint false def /AGMCORE_deltaX nd /AGMCORE_deltaY nd /AGMCORE_name nd /AGMCORE_sep_special nd /AGMCORE_err_strings 4 dict def /AGMCORE_cur_err nd /AGMCORE_current_spot_alias false def /AGMCORE_inverting false def /AGMCORE_feature_dictCount nd /AGMCORE_feature_opCount nd /AGMCORE_feature_ctm nd /AGMCORE_ConvertToProcess false def /AGMCORE_Default_CTM matrix def /AGMCORE_Default_PageSize nd /AGMCORE_Default_flatness nd /AGMCORE_currentbg nd /AGMCORE_currentucr nd /AGMCORE_pattern_paint_type 0 def /knockout_unitsq nd currentglobal true setglobal [/CSA/Gradient/Procedure] { /Generic/Category findresource dup length dict copy/Category defineresource pop }forall setglobal /AGMCORE_key_known { where{ /Adobe_AGM_Core_Id known }{ false }ifelse }ndf /flushinput { save 2 dict begin /CompareBuffer 3 -1 roll def /readbuffer 256 string def mark { currentfile readbuffer{readline}stopped {cleartomark mark} { not {pop exit} if CompareBuffer eq {exit} if }ifelse }loop cleartomark end restore }bdf /getspotfunction { AGMCORE_screen exch pop exch pop dup type/dicttype eq{ dup/HalftoneType get 1 eq{ /SpotFunction get }{ dup/HalftoneType get 2 eq{ /GraySpotFunction get }{ pop { abs exch abs 2 copy add 1 gt{ 1 sub dup mul exch 1 sub dup mul add 1 sub }{ dup mul exch dup mul add 1 exch sub }ifelse }bind }ifelse }ifelse }if }def /np {newpath}bdf /clp_npth {clip np}def /eoclp_npth {eoclip np}def /npth_clp {np clip}def /graphic_setup { /AGMCORE_graphicsave save store concat 0 setgray 0 setlinecap 0 setlinejoin 1 setlinewidth []0 setdash 10 setmiterlimit np false setoverprint false setstrokeadjust //Adobe_AGM_Core/spot_alias gx /Adobe_AGM_Image where{ pop Adobe_AGM_Image/spot_alias 2 copy known{ gx }{ pop pop }ifelse }if /sep_colorspace_dict null AGMCORE_gput 100 dict begin /dictstackcount countdictstack def /showpage{}def mark }def /graphic_cleanup { cleartomark dictstackcount 1 countdictstack 1 sub{end}for end AGMCORE_graphicsave restore }def /compose_error_msg { grestoreall initgraphics /Helvetica findfont 10 scalefont setfont /AGMCORE_deltaY 100 def /AGMCORE_deltaX 310 def clippath pathbbox np pop pop 36 add exch 36 add exch moveto 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath 0 AGMCORE_&setgray gsave 1 AGMCORE_&setgray fill grestore 1 setlinewidth gsave stroke grestore currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto /AGMCORE_deltaY 12 def /AGMCORE_tmp 0 def AGMCORE_err_strings exch get { dup 32 eq { pop AGMCORE_str256 0 AGMCORE_tmp getinterval stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt { currentpoint AGMCORE_deltaY sub exch pop clippath pathbbox pop pop pop 44 add exch moveto }if AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show 0 1 AGMCORE_str256 length 1 sub { AGMCORE_str256 exch 0 put }for /AGMCORE_tmp 0 def }{ AGMCORE_str256 exch AGMCORE_tmp xpt /AGMCORE_tmp AGMCORE_tmp 1 add def }ifelse }forall }bdf /AGMCORE_CMYKDeviceNColorspaces[ [/Separation/None/DeviceCMYK{0 0 0}] [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind] [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind] [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind] [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind] [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind] [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind] [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind] [/Separation(Cyan)/DeviceCMYK{0 0 0}] [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind] [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind] [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind] [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}] [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind] [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}] [/DeviceCMYK] ]def /ds{ Adobe_AGM_Core begin /currentdistillerparams where { pop currentdistillerparams/CoreDistVersion get 5000 lt {<>setdistillerparams}if }if /AGMCORE_ps_version xdf /AGMCORE_ps_level xdf errordict/AGM_handleerror known not{ errordict/AGM_handleerror errordict/handleerror get put errordict/handleerror{ Adobe_AGM_Core begin $error/newerror get AGMCORE_cur_err null ne and{ $error/newerror false put AGMCORE_cur_err compose_error_msg }if $error/newerror true put end errordict/AGM_handleerror get exec }bind put }if /AGMCORE_environ_ok ps_level AGMCORE_ps_level ge ps_version AGMCORE_ps_version ge and AGMCORE_ps_level -1 eq or def AGMCORE_environ_ok not {/AGMCORE_cur_err/AGMCORE_bad_environ def}if /AGMCORE_&setgray systemdict/setgray get def level2{ /AGMCORE_&setcolor systemdict/setcolor get def /AGMCORE_&setcolorspace systemdict/setcolorspace get def }if /AGMCORE_currentbg currentblackgeneration def /AGMCORE_currentucr currentundercolorremoval def /AGMCORE_Default_flatness currentflat def /AGMCORE_distilling /product where{ pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and }{ false }ifelse def /AGMCORE_GSTATE AGMCORE_key_known not{ /AGMCORE_GSTATE 21 dict def /AGMCORE_tmpmatrix matrix def /AGMCORE_gstack 32 array def /AGMCORE_gstackptr 0 def /AGMCORE_gstacksaveptr 0 def /AGMCORE_gstackframekeys 14 def /AGMCORE_&gsave/gsave ldf /AGMCORE_&grestore/grestore ldf /AGMCORE_&grestoreall/grestoreall ldf /AGMCORE_&save/save ldf /AGMCORE_&setoverprint/setoverprint ldf /AGMCORE_gdictcopy{ begin {def}forall end }def /AGMCORE_gput{ AGMCORE_gstack AGMCORE_gstackptr get 3 1 roll put }def /AGMCORE_gget{ AGMCORE_gstack AGMCORE_gstackptr get exch get }def /gsave{ AGMCORE_&gsave AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /grestore{ AGMCORE_&grestore AGMCORE_gstackptr 1 sub dup AGMCORE_gstacksaveptr lt{1 add}if dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse /AGMCORE_gstackptr exch store }def /grestoreall{ AGMCORE_&grestoreall /AGMCORE_gstackptr AGMCORE_gstacksaveptr store }def /save{ AGMCORE_&save AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store /AGMCORE_gstacksaveptr AGMCORE_gstackptr store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /setoverprint{ dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint }def 0 1 AGMCORE_gstack length 1 sub{ AGMCORE_gstack exch AGMCORE_gstackframekeys dict put }for }if level3/AGMCORE_&sysshfill AGMCORE_key_known not and { /AGMCORE_&sysshfill systemdict/shfill get def /AGMCORE_&sysmakepattern systemdict/makepattern get def /AGMCORE_&usrmakepattern/makepattern load def }if /currentcmykcolor[0 0 0 0]AGMCORE_gput /currentstrokeadjust false AGMCORE_gput /currentcolorspace[/DeviceGray]AGMCORE_gput /sep_tint 0 AGMCORE_gput /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput /sep_colorspace_dict null AGMCORE_gput /devicen_colorspace_dict null AGMCORE_gput /indexed_colorspace_dict null AGMCORE_gput /currentcolor_intent()AGMCORE_gput /customcolor_tint 1 AGMCORE_gput /absolute_colorimetric_crd null AGMCORE_gput /relative_colorimetric_crd null AGMCORE_gput /saturation_crd null AGMCORE_gput /perceptual_crd null AGMCORE_gput currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf << /MaxPatternItem currentsystemparams/MaxPatternCache get >> setuserparams end }def /ps { /setcmykcolor where{ pop Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put }if Adobe_AGM_Core begin /setcmykcolor { 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput 1 sub 4 1 roll 3{ 3 index add neg dup 0 lt{ pop 0 }if 3 1 roll }repeat setrgbcolor pop }ndf /currentcmykcolor { /currentcmykcolor AGMCORE_gget aload pop }ndf /setoverprint {pop}ndf /currentoverprint {false}ndf /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def /AGMCORE_plate_ndx AGMCORE_cyan_plate{ 0 }{ AGMCORE_magenta_plate{ 1 }{ AGMCORE_yellow_plate{ 2 }{ AGMCORE_black_plate{ 3 }{ 4 }ifelse }ifelse }ifelse }ifelse def /AGMCORE_have_reported_unsupported_color_space false def /AGMCORE_report_unsupported_color_space { AGMCORE_have_reported_unsupported_color_space false eq { (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)== Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf }if }def /AGMCORE_composite_job AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def /AGMCORE_in_rip_sep /AGMCORE_in_rip_sep where{ pop AGMCORE_in_rip_sep }{ AGMCORE_distilling { false }{ userdict/Adobe_AGM_OnHost_Seps known{ false }{ level2{ currentpagedevice/Separations 2 copy known{ get }{ pop pop false }ifelse }{ false }ifelse }ifelse }ifelse }ifelse def /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def /AGM_preserve_spots /AGM_preserve_spots where{ pop AGM_preserve_spots }{ AGMCORE_distilling AGMCORE_producing_seps or }ifelse def /AGM_is_distiller_preserving_spotimages { currentdistillerparams/PreserveOverprintSettings known { currentdistillerparams/PreserveOverprintSettings get { currentdistillerparams/ColorConversionStrategy known { currentdistillerparams/ColorConversionStrategy get /sRGB ne }{ true }ifelse }{ false }ifelse }{ false }ifelse }def /convert_spot_to_process where{pop}{ /convert_spot_to_process { //Adobe_AGM_Core begin dup map_alias{ /Name get exch pop }if dup dup(None)eq exch(All)eq or { pop false }{ AGMCORE_host_sep { gsave 1 0 0 0 setcmykcolor currentgray 1 exch sub 0 1 0 0 setcmykcolor currentgray 1 exch sub 0 0 1 0 setcmykcolor currentgray 1 exch sub 0 0 0 1 setcmykcolor currentgray 1 exch sub add add add 0 eq { pop false }{ false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne }ifelse grestore }{ AGMCORE_distilling { pop AGM_is_distiller_preserving_spotimages not }{ //Adobe_AGM_Core/AGMCORE_name xddf false //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq AGMUTIL_cpd/OverrideSeparations known and { AGMUTIL_cpd/OverrideSeparations get { /HqnSpots/ProcSet resourcestatus { pop pop pop true }if }if }if { AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not }{ gsave [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace false AGMUTIL_cpd/SeparationColorNames 2 copy known { get {AGMCORE_name eq or}forall not }{ pop pop pop true }ifelse grestore }ifelse }ifelse }ifelse }ifelse end }def }ifelse /convert_to_process where{pop}{ /convert_to_process { dup length 0 eq { pop false }{ AGMCORE_host_sep { dup true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process and}ifelse } forall { true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch (Black)eq or and }forall not }{pop false}ifelse }{ false exch { /PhotoshopDuotoneList where{pop false}{true}ifelse { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process or}ifelse } { convert_spot_to_process or } ifelse } forall }ifelse }ifelse }def }ifelse /AGMCORE_avoid_L2_sep_space version cvr 2012 lt level2 and AGMCORE_producing_seps not and def /AGMCORE_is_cmyk_sep AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or def /AGM_avoid_0_cmyk where{ pop AGM_avoid_0_cmyk }{ AGM_preserve_spots userdict/Adobe_AGM_OnHost_Seps known userdict/Adobe_AGM_InRip_Seps known or not and }ifelse { /setcmykcolor[ { 4 copy add add add 0 eq currentoverprint and{ pop 0.0005 }if }/exec cvx /AGMCORE_&setcmykcolor load dup type/operatortype ne{ /exec cvx }if ]cvx def }if /AGMCORE_IsSeparationAProcessColor { dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or }def AGMCORE_host_sep{ /setcolortransfer { AGMCORE_cyan_plate{ pop pop pop }{ AGMCORE_magenta_plate{ 4 3 roll pop pop pop }{ AGMCORE_yellow_plate{ 4 2 roll pop pop pop }{ 4 1 roll pop pop pop }ifelse }ifelse }ifelse settransfer } def /AGMCORE_get_ink_data AGMCORE_cyan_plate{ {pop pop pop} }{ AGMCORE_magenta_plate{ {4 3 roll pop pop pop} }{ AGMCORE_yellow_plate{ {4 2 roll pop pop pop} }{ {4 1 roll pop pop pop} }ifelse }ifelse }ifelse def /AGMCORE_RemoveProcessColorNames { 1 dict begin /filtername { dup/Cyan eq 1 index(Cyan)eq or {pop(_cyan_)}if dup/Magenta eq 1 index(Magenta)eq or {pop(_magenta_)}if dup/Yellow eq 1 index(Yellow)eq or {pop(_yellow_)}if dup/Black eq 1 index(Black)eq or {pop(_black_)}if }def dup type/arraytype eq {[exch{filtername}forall]} {filtername}ifelse end }def level3{ /AGMCORE_IsCurrentColor { dup AGMCORE_IsSeparationAProcessColor { AGMCORE_plate_ndx 0 eq {dup(Cyan)eq exch/Cyan eq or}if AGMCORE_plate_ndx 1 eq {dup(Magenta)eq exch/Magenta eq or}if AGMCORE_plate_ndx 2 eq {dup(Yellow)eq exch/Yellow eq or}if AGMCORE_plate_ndx 3 eq {dup(Black)eq exch/Black eq or}if AGMCORE_plate_ndx 4 eq {pop false}if }{ gsave false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne grestore }ifelse }def /AGMCORE_filter_functiondatasource { 5 dict begin /data_in xdf data_in type/stringtype eq { /ncomp xdf /comp xdf /string_out data_in length ncomp idiv string def 0 ncomp data_in length 1 sub { string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put }for string_out }{ string/string_in xdf /string_out 1 string def /component xdf [ data_in string_in/readstring cvx [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx [/pop cvx()]cvx/ifelse cvx ]cvx/ReusableStreamDecode filter }ifelse end }def /AGMCORE_separateShadingFunction { 2 dict begin /paint? xdf /channel xdf dup type/dicttype eq { begin FunctionType 0 eq { /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def currentdict/Decode known {/Decode Decode channel 2 mul 2 getinterval def}if paint? not {/Decode[1 1]def}if }if FunctionType 2 eq { paint? { /C0[C0 channel get 1 exch sub]def /C1[C1 channel get 1 exch sub]def }{ /C0[1]def /C1[1]def }ifelse }if FunctionType 3 eq { /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def }if currentdict/Range known {/Range[0 1]def}if currentdict end}{ channel get 0 paint? AGMCORE_separateShadingFunction }ifelse end }def /AGMCORE_separateShading { 3 -1 roll begin currentdict/Function known { currentdict/Background known {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf /ColorSpace[/DeviceGray]def }{ ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }{ ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put }ifelse ColorSpace 0 get/Separation eq { { [1/exch cvx/sub cvx]cvx }{ [/pop cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll put pop }{ { [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx }{ pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll bind put }ifelse ColorSpace 2/DeviceGray put }ifelse end }def /AGMCORE_separateShadingDict { dup/ColorSpace get dup type/arraytype ne {[exch]}if dup 0 get/DeviceCMYK eq { exch begin currentdict AGMCORE_cyan_plate {0 true}if AGMCORE_magenta_plate {1 true}if AGMCORE_yellow_plate {2 true}if AGMCORE_black_plate {3 true}if AGMCORE_plate_ndx 4 eq {0 false}if dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading currentdict end exch }if dup 0 get/Separation eq { exch begin ColorSpace 1 get dup/None ne exch/All ne and { ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /Separation ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading }if }ifelse }{ currentdict ColorSpace 1 get AGMCORE_IsCurrentColor 0 exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse }if currentdict end exch }if dup 0 get/DeviceN eq { exch begin ColorSpace 1 get convert_to_process { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /DeviceN ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading /ColorSpace[/DeviceGray]def }if }ifelse }{ currentdict false -1 ColorSpace 1 get { AGMCORE_IsCurrentColor { 1 add exch pop true exch exit }if 1 add }forall exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse currentdict end exch }if dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not { exch begin ColorSpace dup type/arraytype eq {0 get}if /DeviceGray ne { AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { ColorSpace 0 get/CIEBasedA eq { /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def }if ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or { /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def }if ColorSpace 0 get/CIEBasedDEFG eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }if currentdict 0 false AGMCORE_separateShading }if }if currentdict end exch }if pop dup/AGMCORE_ignoreshade known { begin /ColorSpace[/Separation(None)/DeviceGray{}]def currentdict end }if }def /shfill { AGMCORE_separateShadingDict dup/AGMCORE_ignoreshade known {pop} {AGMCORE_&sysshfill}ifelse }def /makepattern { exch dup/PatternType get 2 eq { clonedict begin /Shading Shading AGMCORE_separateShadingDict def Shading/AGMCORE_ignoreshade known currentdict end exch {pop<>}if exch AGMCORE_&sysmakepattern }{ exch AGMCORE_&usrmakepattern }ifelse }def }if }if AGMCORE_in_rip_sep{ /setcustomcolor { exch aload pop dup 7 1 roll inRip_spot_has_ink not { 4{4 index mul 4 1 roll} repeat /DeviceCMYK setcolorspace 6 -2 roll pop pop }{ //Adobe_AGM_Core begin /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf end [/Separation 4 -1 roll/DeviceCMYK {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul} ] setcolorspace }ifelse setcolor }ndf /setseparationgray { [/Separation(All)/DeviceGray{}]setcolorspace_opt 1 exch sub setcolor }ndf }{ /setseparationgray { AGMCORE_&setgray }ndf }ifelse /findcmykcustomcolor { 5 makereadonlyarray }ndf /setcustomcolor { exch aload pop pop 4{4 index mul 4 1 roll}repeat setcmykcolor pop }ndf /has_color /colorimage where{ AGMCORE_producing_seps{ pop true }{ systemdict eq }ifelse }{ false }ifelse def /map_index { 1 index mul exch getinterval{255 div}forall }bdf /map_indexed_devn { Lookup Names length 3 -1 roll cvi map_index }bdf /n_color_components { base_colorspace_type dup/DeviceGray eq{ pop 1 }{ /DeviceCMYK eq{ 4 }{ 3 }ifelse }ifelse }bdf level2{ /mo/moveto ldf /li/lineto ldf /cv/curveto ldf /knockout_unitsq { 1 setgray 0 0 1 1 rectfill }def level2/setcolorspace AGMCORE_key_known not and{ /AGMCORE_&&&setcolorspace/setcolorspace ldf /AGMCORE_ReplaceMappedColor { dup type dup/arraytype eq exch/packedarraytype eq or { /AGMCORE_SpotAliasAry2 where{ begin dup 0 get dup/Separation eq { pop dup length array copy dup dup 1 get current_spot_alias { dup map_alias { false set_spot_alias dup 1 exch setsepcolorspace true set_spot_alias begin /sep_colorspace_dict currentdict AGMCORE_gput pop pop pop [ /Separation Name CSA map_csa MappedCSA /sep_colorspace_proc load ] dup Name end }if }if map_reserved_ink_name 1 xpt }{ /DeviceN eq { dup length array copy dup dup 1 get[ exch{ current_spot_alias{ dup map_alias{ /Name get exch pop }if }if map_reserved_ink_name }forall ]1 xpt }if }ifelse end }if }if }def /setcolorspace { dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/Indexed eq { AGMCORE_distilling { /PhotoshopDuotoneList where { pop false }{ true }ifelse }{ true }ifelse { aload pop 3 -1 roll AGMCORE_ReplaceMappedColor 3 1 roll 4 array astore }if }{ AGMCORE_ReplaceMappedColor }ifelse }if DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if }def }if }{ /adj { currentstrokeadjust{ transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform }if }def /mo{ adj moveto }def /li{ adj lineto }def /cv{ 6 2 roll adj 6 2 roll adj 6 2 roll adj curveto }def /knockout_unitsq { 1 setgray 8 8 1[8 0 0 8 0 0]{}image }def /currentstrokeadjust{ /currentstrokeadjust AGMCORE_gget }def /setstrokeadjust{ /currentstrokeadjust exch AGMCORE_gput }def /setcolorspace { /currentcolorspace exch AGMCORE_gput }def /currentcolorspace { /currentcolorspace AGMCORE_gget }def /setcolor_devicecolor { base_colorspace_type dup/DeviceGray eq{ pop setgray }{ /DeviceCMYK eq{ setcmykcolor }{ setrgbcolor }ifelse }ifelse }def /setcolor { currentcolorspace 0 get dup/DeviceGray ne{ dup/DeviceCMYK ne{ dup/DeviceRGB ne{ dup/Separation eq{ pop currentcolorspace 3 gx currentcolorspace 2 get }{ dup/Indexed eq{ pop currentcolorspace 3 get dup type/stringtype eq{ currentcolorspace 1 get n_color_components 3 -1 roll map_index }{ exec }ifelse currentcolorspace 1 get }{ /AGMCORE_cur_err/AGMCORE_invalid_color_space def AGMCORE_invalid_color_space }ifelse }ifelse }if }if }if setcolor_devicecolor }def }ifelse /sop/setoverprint ldf /lw/setlinewidth ldf /lc/setlinecap ldf /lj/setlinejoin ldf /ml/setmiterlimit ldf /dsh/setdash ldf /sadj/setstrokeadjust ldf /gry/setgray ldf /rgb/setrgbcolor ldf /cmyk[ /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx /setcmykcolor load dup type/operatortype ne{/exec cvx}if ]cvx bdf level3 AGMCORE_host_sep not and{ /nzopmsc{ 6 dict begin /kk exch def /yy exch def /mm exch def /cc exch def /sum 0 def cc 0 ne{/sum sum 2#1000 or def cc}if mm 0 ne{/sum sum 2#0100 or def mm}if yy 0 ne{/sum sum 2#0010 or def yy}if kk 0 ne{/sum sum 2#0001 or def kk}if AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace sum 0 eq{0}if end setcolor }bdf }{ /nzopmsc/cmyk ldf }ifelse /sep/setsepcolor ldf /devn/setdevicencolor ldf /idx/setindexedcolor ldf /colr/setcolor ldf /csacrd/set_csa_crd ldf /sepcs/setsepcolorspace ldf /devncs/setdevicencolorspace ldf /idxcs/setindexedcolorspace ldf /cp/closepath ldf /clp/clp_npth ldf /eclp/eoclp_npth ldf /f/fill ldf /ef/eofill ldf /@/stroke ldf /nclp/npth_clp ldf /gset/graphic_setup ldf /gcln/graphic_cleanup ldf /ct/concat ldf /cf/currentfile ldf /fl/filter ldf /rs/readstring ldf /AGMCORE_def_ht currenthalftone def /clonedict Adobe_AGM_Utils begin/clonedict load end def /clonearray Adobe_AGM_Utils begin/clonearray load end def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall /getrampcolor { /indx exch def 0 1 NumComp 1 sub { dup Samples exch get dup type/stringtype eq{indx get}if exch Scaling exch get aload pop 3 1 roll mul add }for ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /sssetbackground{ aload pop ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /RadialShade { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /r2 xdf /c2y xdf /c2x xdf /r1 xdf /c1y xdf /c1x xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if c1x c2x eq { c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope c2y c1y sub c2x c1x sub div def /theta slope 1 atan def c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if }ifelse gsave clippath c1x c1y translate theta rotate -90 rotate {pathbbox}stopped {0 0 0 0}if /yMax xdf /xMax xdf /yMin xdf /xMin xdf grestore xMax xMin eq yMax yMin eq or { grestore end }{ /max{2 copy gt{pop}{exch pop}ifelse}bdf /min{2 copy lt{pop}{exch pop}ifelse}bdf rampdict begin 40 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave c1x c1y translate theta rotate -90 rotate /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def /c1y 0 def /c1x 0 def /c2x 0 def ext0 { 0 getrampcolor c2y r2 add r1 sub 0.0001 lt { c1x c1y r1 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2y r1 add r2 le { c1x c1y r1 0 360 arc fill } { c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r1 neg def /p1y c1y def /p2x r1 def /p2y c1y def p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y p1x SS1 div neg def /SS2 90 theta sub dup sin exch cos div def /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y p2x SS2 div neg def r1 r2 gt { /L1maxX p1x yMin p1y sub SS1 div add def /L2maxX p2x yMin p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if c1x c2x sub dup mul c1y c2y sub dup mul add 0.5 exp 0 dtransform dup mul exch dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop /hires xdf hires mul /numpix xdf /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if /xInc c2x c1x sub numsteps div def /yInc c2y c1y sub numsteps div def /rInc r2 r1 sub numsteps div def /cx c1x def /cy c1y def /radius r1 def np xInc 0 eq yInc 0 eq rInc 0 eq and and { 0 getrampcolor cx cy radius 0 360 arc stroke NumSamples 1 sub getrampcolor cx cy radius 72 hires div add 0 360 arc 0 setlinewidth stroke }{ 0 numsteps { dup subsampling{round cvi}if getrampcolor cx cy radius 0 360 arc /cx cx xInc add def /cy cy yInc add def /radius radius rInc add def cx cy radius 360 0 arcn eofill rampIndxInc add }repeat pop }ifelse ext1 { c2y r2 add r1 lt { c2x c2y r2 0 360 arc fill }{ c2y r1 add r2 sub 0.0001 le { c2x c2y r2 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r2 neg def /p1y c2y def /p2x r2 def /p2y c2y def p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y c2y p1x SS1 div sub def /SS2 90 theta sub dup sin exch cos div def /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y c2y p2x SS2 div sub def r1 r2 lt { /L1maxX p1x yMax p1y sub SS1 div add def /L2maxX p2x yMax p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if grestore grestore end end end }ifelse }bdf /GenStrips { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /y2 xdf /x2 xdf /y1 xdf /x1 xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if x1 x2 eq { y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope y2 y1 sub x2 x1 sub div def /theta slope 1 atan def x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if } ifelse gsave clippath x1 y1 translate theta rotate {pathbbox}stopped {0 0 0 0}if /yMax exch def /xMax exch def /yMin exch def /xMin exch def grestore xMax xMin eq yMax yMin eq or { grestore end }{ rampdict begin 20 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave x1 y1 translate theta rotate /xStart 0 def /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def /ySpan yMax yMin sub def /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def xStart 0 transform xEnd 0 transform 3 -1 roll sub dup mul 3 1 roll sub dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop mul /numpix xdf numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if ext0 { 0 getrampcolor xMin xStart lt { xMin yMin xMin neg ySpan rectfill }if }if /xInc xEnd xStart sub numsteps div def /x xStart def 0 numsteps { dup subsampling{round cvi}if getrampcolor x yMin xInc ySpan rectfill /x x xInc add def rampIndxInc add }repeat pop ext1{ xMax xEnd gt { xEnd yMin xMax xEnd sub ySpan rectfill }if }if grestore grestore end end end }ifelse }bdf }def /pt { end }def /dt{ }def /pgsv{ //Adobe_AGM_Core/AGMCORE_save save put }def /pgrs{ //Adobe_AGM_Core/AGMCORE_save get restore }def systemdict/findcolorrendering known{ /findcolorrendering systemdict/findcolorrendering get def }if systemdict/setcolorrendering known{ /setcolorrendering systemdict/setcolorrendering get def }if /test_cmyk_color_plate { gsave setcmykcolor currentgray 1 ne grestore }def /inRip_spot_has_ink { dup//Adobe_AGM_Core/AGMCORE_name xddf convert_spot_to_process not }def /map255_to_range { 1 index sub 3 -1 roll 255 div mul add }def /set_csa_crd { /sep_colorspace_dict null AGMCORE_gput begin CSA get_csa_by_name setcolorspace_opt set_crd end } def /map_csa { currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse {pop}{get_csa_by_name/MappedCSA xdf}ifelse }def /setsepcolor { /sep_colorspace_dict AGMCORE_gget begin dup/sep_tint exch AGMCORE_gput TintProc end }def /setdevicencolor { /devicen_colorspace_dict AGMCORE_gget begin Names length copy Names length 1 sub -1 0 { /devicen_tints AGMCORE_gget 3 1 roll xpt }for TintProc end }def /sep_colorspace_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin currentdict/Components known{ Components aload pop TintMethod/Lab eq{ 2{AGMCORE_tmp mul NComponents 1 roll}repeat LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll }{ TintMethod/Subtractive eq{ NComponents{ AGMCORE_tmp mul NComponents 1 roll }repeat }{ NComponents{ 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll }repeat }ifelse }ifelse }{ ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get aload pop }ifelse end }def /sep_colorspace_gray_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get end }def /sep_proc_name { dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{ pop[/DeviceGray] /sep_colorspace_gray_proc }{ /sep_colorspace_proc }ifelse }def /setsepcolorspace { current_spot_alias{ dup begin Name map_alias{ exch pop }if end }if dup/sep_colorspace_dict exch AGMCORE_gput begin CSA map_csa /AGMCORE_sep_special Name dup()eq exch(All)eq or store AGMCORE_avoid_L2_sep_space{ [/Indexed MappedCSA sep_proc_name 255 exch {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx ]setcolorspace_opt /TintProc{ 255 mul round cvi setcolor }bdf }{ MappedCSA 0 get/DeviceCMYK eq currentdict/Components known and AGMCORE_sep_special not and{ /TintProc[ Components aload pop Name findcmykcustomcolor /exch cvx/setcustomcolor cvx ]cvx bdf }{ AGMCORE_host_sep Name(All)eq and{ /TintProc{ 1 exch sub setseparationgray }bdf }{ AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and AGMCORE_host_sep or Name()eq and{ /TintProc[ MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{ cvx/setcmykcolor cvx }{ cvx/setgray cvx }ifelse ]cvx bdf }{ AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{ /TintProc[ /dup cvx MappedCSA sep_proc_name cvx exch 0 get/DeviceGray eq{ 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx }if /Name cvx/findcmykcustomcolor cvx/exch cvx AGMCORE_host_sep{ AGMCORE_is_cmyk_sep /Name cvx /AGMCORE_IsSeparationAProcessColor load/exec cvx /not cvx/and cvx }{ Name inRip_spot_has_ink not }ifelse [ /pop cvx 1 ]cvx/if cvx /setcustomcolor cvx ]cvx bdf }{ /TintProc{setcolor}bdf [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt }ifelse }ifelse }ifelse }ifelse }ifelse set_crd setsepcolor end }def /additive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 0 1 numarrays 1 sub { 1 exch add/index cvx c1/get cvx/mul cvx }for numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /subtractive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 1 0 1 numarrays 1 sub { 1 3 3 -1 roll add/index cvx c1/get cvx/sub cvx/mul cvx }for /sub cvx numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /exec_tint_transform { /TintProc[ /TintTransform cvx/setcolor cvx ]cvx bdf MappedCSA setcolorspace_opt }bdf /devn_makecustomcolor { 2 dict begin /names_index xdf /Names xdf 1 1 1 1 Names names_index get findcmykcustomcolor /devicen_tints AGMCORE_gget names_index get setcustomcolor Names length{pop}repeat end }bdf /setdevicencolorspace { dup/AliasedColorants known{false}{true}ifelse current_spot_alias and{ 7 dict begin /names_index 0 def dup/names_len exch/Names get length def /new_names names_len array def /new_LookupTables names_len array def /alias_cnt 0 def dup/Names get { dup map_alias{ exch pop dup/ColorLookup known{ dup begin new_LookupTables names_index ColorLookup put end }{ dup/Components known{ dup begin new_LookupTables names_index Components put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse new_names names_index 3 -1 roll/Name get put /alias_cnt alias_cnt 1 add def }{ /name xdf new_names names_index name put dup/LookupTables known{ dup begin new_LookupTables names_index LookupTables names_index get put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse /names_index names_index 1 add def }forall alias_cnt 0 gt{ /AliasedColorants true def /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def 0 1 names_len 1 sub{ /names_index xdf new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{ /AliasedColorants false def exit }{ new_LookupTables names_index get 0 get null eq{ dup/Names get names_index get/name xdf name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq or or or not{ /AliasedColorants false def exit }if }if }ifelse }for lut_entry_len 1 eq{ /AliasedColorants false def }if AliasedColorants{ dup begin /Names new_names def /LookupTables new_LookupTables def /AliasedColorants true def /NComponents lut_entry_len def /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def currentdict/TTTablesIdx known not{ /TTTablesIdx -1 def }if end }if }if end }if dup/devicen_colorspace_dict exch AGMCORE_gput begin currentdict/AliasedColorants known{ AliasedColorants }{ false }ifelse dup not{ CSA map_csa }if /TintTransform load type/nulltype eq or{ /TintTransform[ 0 1 Names length 1 sub { /TTTablesIdx TTTablesIdx 1 add def dup LookupTables exch get dup 0 get null eq { 1 index Names exch get dup(Cyan)eq { pop exch LookupTables length exch sub /index cvx 0 0 0 } { dup(Magenta)eq { pop exch LookupTables length exch sub /index cvx 0/exch cvx 0 0 }{ (Yellow)eq { exch LookupTables length exch sub /index cvx 0 0 3 -1/roll cvx 0 }{ exch LookupTables length exch sub /index cvx 0 0 0 4 -1/roll cvx }ifelse }ifelse }ifelse 5 -1/roll cvx/astore cvx }{ dup length 1 sub LookupTables length 4 -1 roll sub 1 add /index cvx/mul cvx/round cvx/cvi cvx/get cvx }ifelse Names length TTTablesIdx add 1 add 1/roll cvx }for Names length[/pop cvx]cvx/repeat cvx NComponents Names length TintMethod/Subtractive eq { subtractive_blend }{ additive_blend }ifelse ]cvx bdf }if AGMCORE_host_sep{ Names convert_to_process{ exec_tint_transform } { currentdict/AliasedColorants known{ AliasedColorants not }{ false }ifelse 5 dict begin /AvoidAliasedColorants xdf /painted? false def /names_index 0 def /names_len Names length def AvoidAliasedColorants{ /currentspotalias current_spot_alias def false set_spot_alias }if Names{ AGMCORE_is_cmyk_sep{ dup(Cyan)eq AGMCORE_cyan_plate and exch dup(Magenta)eq AGMCORE_magenta_plate and exch dup(Yellow)eq AGMCORE_yellow_plate and exch (Black)eq AGMCORE_black_plate and or or or{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def }if painted?{exit}if }{ 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def exit }if }ifelse /names_index names_index 1 add def }forall AvoidAliasedColorants{ currentspotalias set_spot_alias }if painted?{ /devicen_colorspace_dict AGMCORE_gget/names_index names_index put }{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx 0 0 0 0/setcmykcolor cvx ]cvx ddf }ifelse end }ifelse } { AGMCORE_in_rip_sep{ Names convert_to_process not }{ level3 }ifelse { [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt /TintProc level3 not AGMCORE_in_rip_sep and{ [ Names/length cvx[/pop cvx]cvx/repeat cvx ]cvx bdf }{ {setcolor}bdf }ifelse }{ exec_tint_transform }ifelse }ifelse set_crd /AliasedColorants false def end }def /setindexedcolorspace { dup/indexed_colorspace_dict exch AGMCORE_gput begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ currentdict devncs }{ 1 currentdict sepcs }ifelse AGMCORE_host_sep{ 4 dict begin /compCnt/Names where{pop Names length}{1}ifelse def /NewLookup HiVal 1 add string def 0 1 HiVal{ /tableIndex xdf Lookup dup type/stringtype eq{ compCnt tableIndex map_index }{ exec }ifelse /Names where{ pop setdevicencolor }{ setsepcolor }ifelse currentgray tableIndex exch 255 mul cvi NewLookup 3 1 roll put }for [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt end }{ level3 { currentdict/Names known{ [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt }{ [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt }ifelse }{ [/Indexed MappedCSA HiVal [ currentdict/Names known{ Lookup dup type/stringtype eq {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx} {/exec cvx}ifelse /TintTransform load/exec cvx }{ Lookup dup type/stringtype eq {/exch cvx/get cvx 255/div cvx} {/exec cvx}ifelse CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx }ifelse ]cvx ]setcolorspace_opt }ifelse }ifelse end set_crd } { CSA map_csa AGMCORE_host_sep level2 not and{ 0 0 0 0 setcmykcolor }{ [/Indexed MappedCSA level2 not has_color not and{ dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{ pop[/DeviceGray] }if HiVal GrayLookup }{ HiVal currentdict/RangeArray known{ { /indexed_colorspace_dict AGMCORE_gget begin Lookup exch dup HiVal gt{ pop HiVal }if NComponents mul NComponents getinterval{}forall NComponents 1 sub -1 0{ RangeArray exch 2 mul 2 getinterval aload pop map255_to_range NComponents 1 roll }for end }bind }{ Lookup }ifelse }ifelse ]setcolorspace_opt set_crd }ifelse }ifelse end }def /setindexedcolor { AGMCORE_host_sep{ /indexed_colorspace_dict AGMCORE_gget begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ map_indexed_devn devn } { Lookup 1 3 -1 roll map_index sep }ifelse end }{ Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll map_index MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse }ifelse end }{ level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{ /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin map_indexed_devn devn end } { setcolor }ifelse }ifelse }def /ignoreimagedata { currentoverprint not{ gsave dup clonedict begin 1 setgray /Decode[0 1]def /DataSourcedef /MultipleDataSources false def /BitsPerComponent 8 def currentdict end systemdict/image gx grestore }if consumeimagedata }def /add_res { dup/CSD eq{ pop //Adobe_AGM_Core begin /AGMCORE_CSD_cache load 3 1 roll put end }{ defineresource pop }ifelse }def /del_res { { aload pop exch dup/CSD eq{ pop {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall }{ exch {1 index undefineresource}forall pop }ifelse }forall }def /get_res { dup/CSD eq{ pop dup type dup/nametype eq exch/stringtype eq or{ AGMCORE_CSD_cache exch get }if }{ findresource }ifelse }def /get_csa_by_name { dup type dup/nametype eq exch/stringtype eq or{ /CSA get_res }if }def /paintproc_buf_init { /count get 0 0 put }def /paintproc_buf_next { dup/count get dup 0 get dup 3 1 roll 1 add 0 xpt get }def /cachepaintproc_compress { 5 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def /string_size 16000 def /readbuffer string_size string def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal /LZWFilter { exch dup length 0 eq{ pop }{ ppdict dup length 1 sub 3 -1 roll put }ifelse {string_size}{0}ifelse string }/LZWEncode filter def { ReadFilter readbuffer readstring exch LZWFilter exch writestring not{exit}if }loop LZWFilter closefile ppdict end }def /cachepaintproc { 2 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal { ReadFilter 16000 string readstring exch ppdict dup length 1 sub 3 -1 roll put not{exit}if }loop ppdict dup dup length 1 sub()put end }def /make_pattern { exch clonedict exch dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub matrix translate exch matrix concatmatrix 1 index begin BBox 0 get XStep div cvi XStep mul/xshift exch neg def BBox 1 get YStep div cvi YStep mul/yshift exch neg def BBox 0 get xshift add BBox 1 get yshift add BBox 2 get xshift add BBox 3 get yshift add 4 array astore /BBox exch def [xshift yshift/translate load null/exec load]dup 3/PaintProc load put cvx/PaintProc exch def end gsave 0 setgray makepattern grestore }def /set_pattern { dup/PatternType get 1 eq{ dup/PaintType get 1 eq{ currentoverprint sop[/DeviceGray]setcolorspace 0 setgray }if }if setpattern }def /setcolorspace_opt { dup currentcolorspace eq{pop}{setcolorspace}ifelse }def /updatecolorrendering { currentcolorrendering/RenderingIntent known{ currentcolorrendering/RenderingIntent get } { Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd AGMCORE_gget dup null eq } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd AGMCORE_gget dup null eq } { Intent/Saturation eq { /saturation_crd AGMCORE_gget dup null eq } { /perceptual_crd AGMCORE_gget dup null eq }ifelse }ifelse }ifelse { pop null } { /RenderingIntent known{null}{Intent}ifelse }ifelse }ifelse Intent ne{ Intent/ColorRendering{findresource}stopped { pop pop systemdict/findcolorrendering known { Intent findcolorrendering { /ColorRendering findresource true exch } { /ColorRendering findresource product(Xerox Phaser 5400)ne exch }ifelse dup Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd exch AGMCORE_gput } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd exch AGMCORE_gput } { Intent/Saturation eq { /saturation_crd exch AGMCORE_gput } { Intent/Perceptual eq { /perceptual_crd exch AGMCORE_gput } { pop }ifelse }ifelse }ifelse }ifelse 1 index{exch}{pop}ifelse } {false}ifelse } {true}ifelse { dup begin currentdict/TransformPQR known{ currentdict/TransformPQR get aload pop 3{{}eq 3 1 roll}repeat or or } {true}ifelse currentdict/MatrixPQR known{ currentdict/MatrixPQR get aload pop 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq and and and and and and and and } {true}ifelse end or { clonedict begin /TransformPQR[ {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind ]def /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def currentdict end }if setcolorrendering_opt }if }if }def /set_crd { AGMCORE_host_sep not level2 and{ currentdict/ColorRendering known{ ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if }{ currentdict/Intent known{ updatecolorrendering }if }ifelse currentcolorspace dup type/arraytype eq {0 get}if /DeviceRGB eq { currentdict/UCR known {/UCR}{/AGMCORE_currentucr}ifelse load setundercolorremoval currentdict/BG known {/BG}{/AGMCORE_currentbg}ifelse load setblackgeneration }if }if }def /set_ucrbg { dup null eq{pop/AGMCORE_currentbg load}{/Procedure get_res}ifelse setblackgeneration dup null eq{pop/AGMCORE_currentucr load}{/Procedure get_res}ifelse setundercolorremoval }def /setcolorrendering_opt { dup currentcolorrendering eq{ pop }{ product(HP Color LaserJet 2605)anchorsearch{ pop pop pop }{ pop clonedict begin /Intent Intent def currentdict end setcolorrendering }ifelse }ifelse }def /cpaint_gcomp { convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not { (%end_cpaint_gcomp)flushinput }if }def /cpaint_gsep { //Adobe_AGM_Core/AGMCORE_ConvertToProcess get { (%end_cpaint_gsep)flushinput }if }def /cpaint_gend {np}def /T1_path { currentfile token pop currentfile token pop mo { currentfile token pop dup type/stringtype eq {pop exit}if 0 exch rlineto currentfile token pop dup type/stringtype eq {pop exit}if 0 rlineto }loop }def /T1_gsave level3 {/clipsave} {/gsave}ifelse load def /T1_grestore level3 {/cliprestore} {/grestore}ifelse load def /set_spot_alias_ary { dup inherit_aliases //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf }def /set_spot_normalization_ary { dup inherit_aliases dup length /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if array //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf /AGMCORE_SpotAliasAry where{ pop AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval AGMCORE_SpotAliasAry length }{0}ifelse AGMCORE_SpotAliasAry2 3 1 roll exch putinterval true set_spot_alias }def /inherit_aliases { {dup/Name get map_alias{/CSD put}{pop}ifelse}forall }def /set_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias 3 -1 roll put }{ pop }ifelse }def /current_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias get }{ false }ifelse }def /map_alias { /AGMCORE_SpotAliasAry2 where{ begin /AGMCORE_name xdf false AGMCORE_SpotAliasAry2{ dup/Name get AGMCORE_name eq{ /CSD get/CSD get_res exch pop true exit }{ pop }ifelse }forall end }{ pop false }ifelse }bdf /spot_alias { true set_spot_alias /AGMCORE_&setcustomcolor AGMCORE_key_known not{ //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put }if /customcolor_tint 1 AGMCORE_gput //Adobe_AGM_Core begin /setcustomcolor { //Adobe_AGM_Core begin dup/customcolor_tint exch AGMCORE_gput 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not current_spot_alias and{1 index 4 get map_alias}{false}ifelse { false set_spot_alias /sep_colorspace_dict AGMCORE_gget null ne {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse 3 1 roll 2 index{ exch pop/sep_tint AGMCORE_gget exch }if mark 3 1 roll setsepcolorspace counttomark 0 ne{ setsepcolor }if pop not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if pop true set_spot_alias }{ AGMCORE_&setcustomcolor }ifelse end }bdf end }def /begin_feature { Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if }def /end_feature { 2 dict begin /spd/setpagedevice load def /setpagedevice{get_gstate spd set_gstate}def stopped{$error/newerror false put}if end count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if }def /set_negative { //Adobe_AGM_Core begin /AGMCORE_inverting exch def level2{ currentpagedevice/NegativePrint known AGMCORE_distilling not and{ currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{ true begin_feature true{ <>setpagedevice }end_feature }if /AGMCORE_inverting false def }if }if AGMCORE_inverting{ [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer AGMCORE_distilling{ erasepage }{ gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore }ifelse }if end }def /lw_save_restore_override{ /md where{ pop md begin initializepage /initializepage{}def /pmSVsetup{}def /endp{}def /pse{}def /psb{}def /orig_showpage where {pop} {/orig_showpage/showpage load def} ifelse /showpage{orig_showpage gR}def end }if }def /pscript_showpage_override{ /NTPSOct95 where { begin showpage save /showpage/restore load def /restore{exch pop}def end }if }def /driver_media_override { /md where{ pop md/initializepage known{ md/initializepage{}put }if md/rC known{ md/rC{4{pop}repeat}put }if }if /mysetup where{ /mysetup[1 0 0 1 0 0]put }if Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put level2 {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if }def /capture_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put }if }if }def /restore_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup known{ Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put Adobe_AGM_Core/save_mysetup undef }if }if }if }def /driver_check_media_override { /PrepsDict where {pop} { Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq { Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and }if { Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix }if }ifelse }def AGMCORE_err_strings begin /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def /AGMCORE_invalid_color_space(This job contains an invalid color space. )def end /set_def_ht {AGMCORE_def_ht sethalftone}def /set_def_flat {AGMCORE_Default_flatness setflat}def end systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_CoolType_Core 2.31 0 %%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved. %%Version: 2.31 0 10 dict begin /Adobe_CoolType_Passthru currentdict def /Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def Adobe_CoolType_Core_Defined {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def} if userdict/Adobe_CoolType_Core 70 dict dup begin put /Adobe_CoolType_Version 2.31 def /Level2? systemdict/languagelevel known dup {pop systemdict/languagelevel get 2 ge} if def Level2? not { /currentglobal false def /setglobal/pop load def /gcheck{pop false}bind def /currentpacking false def /setpacking/pop load def /SharedFontDirectory 0 dict def } if currentpacking true setpacking currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def end setglobal currentglobal true setglobal userdict/Adobe_CoolType_GVMFonts known not {userdict/Adobe_CoolType_GVMFonts 10 dict put} if setglobal currentglobal false setglobal userdict/Adobe_CoolType_LVMFonts known not {userdict/Adobe_CoolType_LVMFonts 10 dict put} if setglobal /ct_VMDictPut { dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse 3 1 roll put }bind def /ct_VMDictUndef { dup Adobe_CoolType_GVMFonts exch known {Adobe_CoolType_GVMFonts exch undef} { dup Adobe_CoolType_LVMFonts exch known {Adobe_CoolType_LVMFonts exch undef} {pop} ifelse }ifelse }bind def /ct_str1 1 string def /ct_xshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_yshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 exch rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_xyshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { {_ct_na _ct_i 1 add get}stopped {pop pop pop} { _ct_x _ct_y moveto rmoveto } ifelse } ifelse /_ct_i _ct_i 2 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def /ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def /xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def currentglobal true setglobal /ct_T3Defs { /BuildChar { 1 index/Encoding get exch get 1 index/BuildGlyph get exec }bind def /BuildGlyph { exch begin GlyphProcs exch get exec end }bind def }bind def setglobal /@_SaveStackLevels { Adobe_CoolType_Data begin /@vmState currentglobal def false setglobal @opStackCountByLevel @opStackLevel 2 copy known not { 2 copy 3 dict dup/args 7 index 5 add array put put get } { get dup/args get dup length 3 index lt { dup length 5 add array exch 1 index exch 0 exch putinterval 1 index exch/args exch put } {pop} ifelse } ifelse begin count 1 sub 1 index lt {pop count} if dup/argCount exch def dup 0 gt { args exch 0 exch getinterval astore pop } {pop} ifelse count /restCount exch def end /@opStackLevel @opStackLevel 1 add def countdictstack 1 sub @dictStackCountByLevel exch @dictStackLevel exch put /@dictStackLevel @dictStackLevel 1 add def @vmState setglobal end }bind def /@_RestoreStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def @opStackCountByLevel @opStackLevel get begin count restCount sub dup 0 gt {{pop}repeat} {pop} ifelse args 0 argCount getinterval{}forall end /@dictStackLevel @dictStackLevel 1 sub def @dictStackCountByLevel @dictStackLevel get end countdictstack exch sub dup 0 gt {{end}repeat} {pop} ifelse }bind def /@_PopStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def /@dictStackLevel @dictStackLevel 1 sub def end }bind def /@Raise { exch cvx exch errordict exch get exec stop }bind def /@ReRaise { cvx $error/errorname get errordict exch get exec stop }bind def /@Stopped { 0 @#Stopped }bind def /@#Stopped { @_SaveStackLevels stopped {@_RestoreStackLevels true} {@_PopStackLevels false} ifelse }bind def /@Arg { Adobe_CoolType_Data begin @opStackCountByLevel @opStackLevel 1 sub get begin args exch argCount 1 sub exch sub get end end }bind def currentglobal true setglobal /CTHasResourceForAllBug Level2? { 1 dict dup /@shouldNotDisappearDictValue true def Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put begin count @_SaveStackLevels {(*){pop stop}128 string/Category resourceforall} stopped pop @_RestoreStackLevels currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll { /@shouldNotDisappearDictValue known { { end currentdict 1 index eq {pop exit} if } loop } if } { pop end } ifelse } {false} ifelse def true setglobal /CTHasResourceStatusBug Level2? { mark {/steveamerige/Category resourcestatus} stopped {cleartomark true} {cleartomark currentglobal not} ifelse } {false} ifelse def setglobal /CTResourceStatus { mark 3 1 roll /Category findresource begin ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse end }bind def /CTWorkAroundBugs { Level2? { /cid_PreLoad/ProcSet resourcestatus { pop pop currentglobal mark { (*) { dup/CMap CTHasResourceStatusBug {CTResourceStatus} {resourcestatus} ifelse { pop dup 0 eq exch 1 eq or { dup/CMap findresource gcheck setglobal /CMap undefineresource } { pop CTHasResourceForAllBug {exit} {stop} ifelse } ifelse } {pop} ifelse } 128 string/CMap resourceforall } stopped {cleartomark} stopped pop setglobal } if } if }bind def /ds { Adobe_CoolType_Core begin CTWorkAroundBugs /mo/moveto load def /nf/newencodedfont load def /msf{makefont setfont}bind def /uf{dup undefinefont ct_VMDictUndef}bind def /ur/undefineresource load def /chp/charpath load def /awsh/awidthshow load def /wsh/widthshow load def /ash/ashow load def /@xshow/xshow load def /@yshow/yshow load def /@xyshow/xyshow load def /@cshow/cshow load def /sh/show load def /rp/repeat load def /.n/.notdef def end currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /AddWidths? false def /CC 0 def /charcode 2 string def /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def /InVMFontsByCMap 10 dict def /InVMDeepCopiedFonts 10 dict def end setglobal }bind def /dt { currentdict Adobe_CoolType_Core eq {end} if }bind def /ps { Adobe_CoolType_Core begin Adobe_CoolType_GVMFonts begin Adobe_CoolType_LVMFonts begin SharedFontDirectory begin }bind def /pt { end end end end }bind def /unload { systemdict/languagelevel known { systemdict/languagelevel get 2 ge { userdict/Adobe_CoolType_Core 2 copy known {undef} {pop pop} ifelse } if } if }bind def /ndf { 1 index where {pop pop pop} {dup xcheck{bind}if def} ifelse }def /findfont systemdict begin userdict begin /globaldict where{/globaldict get begin}if dup where pop exch get /globaldict where{pop end}if end end Adobe_CoolType_Core_Defined {/systemfindfont exch def} { /findfont 1 index def /systemfindfont exch def } ifelse /undefinefont {pop}ndf /copyfont { currentglobal 3 1 roll 1 index gcheck setglobal dup null eq{0}{dup length}ifelse 2 index length add 1 add dict begin exch { 1 index/FID eq {pop pop} {def} ifelse } forall dup null eq {pop} {{def}forall} ifelse currentdict end exch setglobal }bind def /copyarray { currentglobal exch dup gcheck setglobal dup length array copy exch setglobal }bind def /newencodedfont { currentglobal { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } { FontDirectory 3 index known {FontDirectory 3 index get/FontReferenced known} { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } ifelse } ifelse dup { 3 index findfont/FontReferenced get 2 index dup type/nametype eq {findfont} if ne {pop false} if } if dup { 1 index dup type/nametype eq {findfont} if dup/CharStrings known { /CharStrings get length 4 index findfont/CharStrings get length ne { pop false } if } {pop} ifelse } if { pop 1 index findfont /Encoding get exch 0 1 255 {2 copy get 3 index 3 1 roll put} for pop pop pop } { currentglobal 4 1 roll dup type/nametype eq {findfont} if dup gcheck setglobal dup dup maxlength 2 add dict begin exch { 1 index/FID ne 2 index/Encoding ne and {def} {pop pop} ifelse } forall /FontReferenced exch def /Encoding exch dup length array copy def /FontName 1 index dup type/stringtype eq{cvn}if def dup currentdict end definefont ct_VMDictPut setglobal } ifelse }bind def /SetSubstituteStrategy { $SubstituteFont begin dup type/dicttype ne {0 dict} if currentdict/$Strategies known { exch $Strategies exch 2 copy known { get 2 copy maxlength exch maxlength add dict begin {def}forall {def}forall currentdict dup/$Init known {dup/$Init get exec} if end /$Strategy exch def } {pop pop pop} ifelse } {pop pop} ifelse end }bind def /scff { $SubstituteFont begin dup type/stringtype eq {dup length exch} {null} ifelse /$sname exch def /$slen exch def /$inVMIndex $sname null eq { 1 index $str cvs dup length $slen sub $slen getinterval cvn } {$sname} ifelse def end {findfont} @Stopped { dup length 8 add string exch 1 index 0(BadFont:)putinterval 1 index exch 8 exch dup length string cvs putinterval cvn {findfont} @Stopped {pop/Courier findfont} if } if $SubstituteFont begin /$sname null def /$slen 0 def /$inVMIndex null def end }bind def /isWidthsOnlyFont { dup/WidthsOnly known {pop pop true} { dup/FDepVector known {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall} { dup/FDArray known {/FDArray get{isWidthsOnlyFont dup{exit}if}forall} {pop} ifelse } ifelse } ifelse }bind def /ct_StyleDicts 4 dict dup begin /Adobe-Japan1 4 dict dup begin Level2? { /Serif /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMin-W3} { /CIDFont/Category resourcestatus { pop pop /HeiseiMin-W3/CIDFont resourcestatus {pop pop/HeiseiMin-W3} {/Ryumin-Light} ifelse } {/Ryumin-Light} ifelse } ifelse def /SansSerif /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiKakuGo-W5} { /CIDFont/Category resourcestatus { pop pop /HeiseiKakuGo-W5/CIDFont resourcestatus {pop pop/HeiseiKakuGo-W5} {/GothicBBB-Medium} ifelse } {/GothicBBB-Medium} ifelse } ifelse def /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMaruGo-W4} { /CIDFont/Category resourcestatus { pop pop /HeiseiMaruGo-W4/CIDFont resourcestatus {pop pop/HeiseiMaruGo-W4} { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } ifelse /RoundSansSerif exch def /Default Serif def } { /Serif/Ryumin-Light def /SansSerif/GothicBBB-Medium def { (fonts/Jun101-Light-83pv-RKSJ-H)status }stopped {pop}{ {pop pop pop pop/Jun101-Light} {SansSerif} ifelse /RoundSansSerif exch def }ifelse /Default Serif def } ifelse end def /Adobe-Korea1 4 dict dup begin /Serif/HYSMyeongJo-Medium def /SansSerif/HYGoThic-Medium def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-GB1 4 dict dup begin /Serif/STSong-Light def /SansSerif/STHeiti-Regular def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-CNS1 4 dict dup begin /Serif/MKai-Medium def /SansSerif/MHei-Medium def /RoundSansSerif SansSerif def /Default Serif def end def end def Level2?{currentglobal true setglobal}if /ct_BoldRomanWidthProc { stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth 0 0 }bind def /ct_Type0WidthProc { dup stringwidth 0 0 moveto 2 index true charpath pathbbox 0 -1 7 index 2 div .88 setcachedevice2 pop 0 0 }bind def /ct_Type0WMode1WidthProc { dup stringwidth pop 2 div neg -0.88 2 copy moveto 0 -1 5 -1 roll true charpath pathbbox setcachedevice }bind def /cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_BoldBaseFont 11 dict begin /FontType 3 def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /Encoding cHexEncoding def /_setwidthProc/ct_BoldRomanWidthProc load def /_bcstr1 1 string def /BuildChar { exch begin _basefont setfont _bcstr1 dup 0 4 -1 roll put dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def systemdict/composefont known { /ct_DefineIdentity-H { /Identity-H/CMap resourcestatus { pop pop } { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse } def /ct_BoldBaseCIDFont 11 dict begin /CIDFontType 1 def /CIDFontName/ct_BoldBaseCIDFont def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /_setwidthProc/ct_Type0WidthProc load def /_bcstr2 2 string def /BuildGlyph { exch begin _basefont setfont _bcstr2 1 2 index 256 mod put _bcstr2 0 3 -1 roll 256 idiv put _bcstr2 dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def }if Level2?{setglobal}if /ct_CopyFont{ { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall }bind def /ct_Type0CopyFont { exch dup length dict begin ct_CopyFont [ exch FDepVector { dup/FontType get 0 eq { 1 index ct_Type0CopyFont /_ctType0 exch definefont } { /_ctBaseFont exch 2 index exec } ifelse exch } forall pop ] /FDepVector exch def currentdict end }bind def /ct_MakeBoldFont { dup/ct_SyntheticBold known { dup length 3 add dict begin ct_CopyFont /ct_StrokeWidth .03 0 FontMatrix idtransform pop def /ct_SyntheticBold true def currentdict end definefont } { dup dup length 3 add dict begin ct_CopyFont /PaintType 2 def /StrokeWidth .03 0 FontMatrix idtransform pop def /dummybold currentdict end definefont dup/FontType get dup 9 ge exch 11 le and { ct_BoldBaseCIDFont dup length 3 add dict copy begin dup/CIDSystemInfo get/CIDSystemInfo exch def ct_DefineIdentity-H /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefont exch def /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefonto exch def currentdict end /CIDFont defineresource } { ct_BoldBaseFont dup length 3 add dict copy begin /_basefont exch def /_basefonto exch def currentdict end definefont } ifelse } ifelse }bind def /ct_MakeBold{ 1 index 1 index findfont currentglobal 5 1 roll dup gcheck setglobal dup /FontType get 0 eq { dup/WMode known{dup/WMode get 1 eq}{false}ifelse version length 4 ge and {version 0 4 getinterval cvi 2015 ge} {true} ifelse {/ct_Type0WidthProc} {/ct_Type0WMode1WidthProc} ifelse ct_BoldBaseFont/_setwidthProc 3 -1 roll load put {ct_MakeBoldFont}ct_Type0CopyFont definefont } { dup/_fauxfont known not 1 index/SubstMaster known not and { ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put ct_MakeBoldFont } { 2 index 2 index eq {exch pop } { dup length dict begin ct_CopyFont currentdict end definefont } ifelse } ifelse } ifelse pop pop pop setglobal }bind def /?str1 256 string def /?set { $SubstituteFont begin /$substituteFound false def /$fontname 1 index def /$doSmartSub false def end dup findfont $SubstituteFont begin $substituteFound {false} { dup/FontName known { dup/FontName get $fontname eq 1 index/DistillerFauxFont known not and /currentdistillerparams where {pop false 2 index isWidthsOnlyFont not and} if } {false} ifelse } ifelse exch pop /$doSmartSub true def end { 5 1 roll pop pop pop pop findfont } { 1 index findfont dup/FontType get 3 eq { 6 1 roll pop pop pop pop pop false } {pop true} ifelse { $SubstituteFont begin pop pop /$styleArray 1 index def /$regOrdering 2 index def pop pop 0 1 $styleArray length 1 sub { $styleArray exch get ct_StyleDicts $regOrdering 2 copy known { get exch 2 copy known not {pop/Default} if get dup type/nametype eq { ?str1 cvs length dup 1 add exch ?str1 exch(-)putinterval exch dup length exch ?str1 exch 3 index exch putinterval add ?str1 exch 0 exch getinterval cvn } { pop pop/Unknown } ifelse } { pop pop pop pop/Unknown } ifelse } for end findfont }if } ifelse currentglobal false setglobal 3 1 roll null copyfont definefont pop setglobal }bind def setpacking userdict/$SubstituteFont 25 dict put 1 dict begin /SubstituteFont dup $error exch 2 copy known {get} {pop pop{pop/Courier}bind} ifelse def /currentdistillerparams where dup { pop pop currentdistillerparams/CannotEmbedFontPolicy 2 copy known {get/Error eq} {pop pop false} ifelse } if not { countdictstack array dictstack 0 get begin userdict begin $SubstituteFont begin /$str 128 string def /$fontpat 128 string def /$slen 0 def /$sname null def /$match false def /$fontname null def /$substituteFound false def /$inVMIndex null def /$doSmartSub true def /$depth 0 def /$fontname null def /$italicangle 26.5 def /$dstack null def /$Strategies 10 dict dup begin /$Type3Underprint { currentglobal exch false setglobal 11 dict begin /UseFont exch $WMode 0 ne { dup length dict copy dup/WMode $WMode put /UseFont exch definefont } if def /FontName $fontname dup type/stringtype eq{cvn}if def /FontType 3 def /FontMatrix[.001 0 0 .001 0 0]def /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def /FontBBox[0 0 0 0]def /CCInfo 7 dict dup begin /cc null def /x 0 def /y 0 def end def /BuildChar { exch begin CCInfo begin 1 string dup 0 3 index put exch pop /cc exch def UseFont 1000 scalefont setfont cc stringwidth/y exch def/x exch def x y setcharwidth $SubstituteFont/$Strategy get/$Underprint get exec 0 0 moveto cc show x y moveto end end }bind def currentdict end exch setglobal }bind def /$GetaTint 2 dict dup begin /$BuildFont { dup/WMode known {dup/WMode get} {0} ifelse /$WMode exch def $fontname exch dup/FontName known { dup/FontName get dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse exch Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index/FontName get known { pop Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index get null copyfont } {$deepcopyfont} ifelse exch 1 index exch/FontBasedOn exch put dup/FontName $fontname dup type/stringtype eq{cvn}if put definefont Adobe_CoolType_Data/InVMDeepCopiedFonts get begin dup/FontBasedOn get 1 index def end }bind def /$Underprint { gsave x abs y abs gt {/y 1000 def} {/x -1000 def 500 120 translate} ifelse Level2? { [/Separation(All)/DeviceCMYK{0 0 0 1 pop}] setcolorspace } {0 setgray} ifelse 10 setlinewidth x .8 mul [7 3] { y mul 8 div 120 sub x 10 div exch moveto 0 y 4 div neg rlineto dup 0 rlineto 0 y 4 div rlineto closepath gsave Level2? {.2 setcolor} {.8 setgray} ifelse fill grestore stroke } forall pop grestore }bind def end def /$Oblique 1 dict dup begin /$BuildFont { currentglobal exch dup gcheck setglobal null copyfont begin /FontBasedOn currentdict/FontName known { FontName dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse def /FontName $fontname dup type/stringtype eq{cvn}if def /currentdistillerparams where {pop} { /FontInfo currentdict/FontInfo known {FontInfo null copyfont} {2 dict} ifelse dup begin /ItalicAngle $italicangle def /FontMatrix FontMatrix [1 0 ItalicAngle dup sin exch cos div 1 0 0] matrix concatmatrix readonly end 4 2 roll def def } ifelse FontName currentdict end definefont exch setglobal }bind def end def /$None 1 dict dup begin /$BuildFont{}bind def end def end def /$Oblique SetSubstituteStrategy /$findfontByEnum { dup type/stringtype eq{cvn}if dup/$fontname exch def $sname null eq {$str cvs dup length $slen sub $slen getinterval} {pop $sname} ifelse $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval /$match false def $SubstituteFont/$dstack countdictstack array dictstack put mark { $fontpat 0 $slen 7 add getinterval {/$match exch def exit} $str filenameforall } stopped { cleardictstack currentdict true $SubstituteFont/$dstack get { exch { 1 index eq {pop false} {true} ifelse } {begin false} ifelse } forall pop } if cleartomark /$slen 0 def $match false ne {$match(fonts/)anchorsearch pop pop cvn} {/Courier} ifelse }bind def /$ROS 1 dict dup begin /Adobe 4 dict dup begin /Japan1 [/Ryumin-Light/HeiseiMin-W3 /GothicBBB-Medium/HeiseiKakuGo-W5 /HeiseiMaruGo-W4/Jun101-Light]def /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def /GB1 [/STSong-Light/STHeiti-Regular]def /CNS1 [/MKai-Medium/MHei-Medium]def end def end def /$cmapname null def /$deepcopyfont { dup/FontType get 0 eq { 1 dict dup/FontName/copied put copyfont begin /FDepVector FDepVector copyarray 0 1 2 index length 1 sub { 2 copy get $deepcopyfont dup/FontName/copied put /copied exch definefont 3 copy put pop pop } for def currentdict end } {$Strategies/$Type3Underprint get exec} ifelse }bind def /$buildfontname { dup/CIDFont findresource/CIDSystemInfo get begin Registry length Ordering length Supplement 8 string cvs 3 copy length 2 add add add string dup 5 1 roll dup 0 Registry putinterval dup 4 index(-)putinterval dup 4 index 1 add Ordering putinterval 4 2 roll add 1 add 2 copy(-)putinterval end 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch anchorsearch {pop pop 3 2 roll putinterval cvn/$cmapname exch def} {pop pop pop pop pop} ifelse length $str 1 index(-)putinterval 1 add $str 1 index $cmapname $fontpat cvs putinterval $cmapname length add $str exch 0 exch getinterval cvn }bind def /$findfontByROS { /$fontname exch def $ROS Registry 2 copy known { get Ordering 2 copy known {get} {pop pop[]} ifelse } {pop pop[]} ifelse false exch { dup/CIDFont resourcestatus { pop pop save 1 index/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get} {false} ifelse exch pop exch restore {pop} {exch pop true exit} ifelse } {pop} ifelse } forall {$str cvs $buildfontname} { false(*) { save exch dup/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get not} {true} ifelse exch/CIDSystemInfo get dup/Registry get Registry eq exch/Ordering get Ordering eq and and {exch restore exch pop true exit} {pop restore} ifelse } $str/CIDFont resourceforall {$buildfontname} {$fontname $findfontByEnum} ifelse } ifelse }bind def end end currentdict/$error known currentdict/languagelevel known and dup {pop $error/SubstituteFont known} if dup {$error} {Adobe_CoolType_Core} ifelse begin { /SubstituteFont /CMap/Category resourcestatus { pop pop { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and { $sname null eq {dup $str cvs dup length $slen sub $slen getinterval cvn} {$sname} ifelse Adobe_CoolType_Data/InVMFontsByCMap get 1 index 2 copy known { get false exch { pop currentglobal { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } { FontDirectory 1 index known {exch pop true exit} { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } ifelse } ifelse } forall } {pop pop false} ifelse { exch pop exch pop } { dup/CMap resourcestatus { pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS } { 128 string cvs dup(-)search { 3 1 roll search { 3 1 roll pop {dup cvi} stopped {pop pop pop pop pop $findfontByEnum} { 4 2 roll pop pop exch length exch 2 index length 2 index sub exch 1 sub -1 0 { $str cvs dup length 4 index 0 4 index 4 3 roll add getinterval exch 1 index exch 3 index exch putinterval dup/CMap resourcestatus { pop pop 4 1 roll pop pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS true exit } {pop} ifelse } for dup type/booleantype eq {pop} {pop pop pop $findfontByEnum} ifelse } ifelse } {pop pop pop $findfontByEnum} ifelse } {pop pop $findfontByEnum} ifelse } ifelse } ifelse } {//SubstituteFont exec} ifelse /$slen 0 def end } } { { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and {$findfontByEnum} {//SubstituteFont exec} ifelse end } } ifelse bind readonly def Adobe_CoolType_Core/scfindfont/systemfindfont load put } { /scfindfont { $SubstituteFont begin dup systemfindfont dup/FontName known {dup/FontName get dup 3 index ne} {/noname true} ifelse dup { /$origfontnamefound 2 index def /$origfontname 4 index def/$substituteFound true def } if exch pop { $slen 0 gt $sname null ne 3 index length $slen gt or and { pop dup $findfontByEnum findfont dup maxlength 1 add dict begin {1 index/FID eq{pop pop}{def}ifelse} forall currentdict end definefont dup/FontName known{dup/FontName get}{null}ifelse $origfontnamefound ne { $origfontname $str cvs print ( substitution revised, using )print dup/FontName known {dup/FontName get}{(unspecified font)} ifelse $str cvs print(.\n)print } if } {exch pop} ifelse } {exch pop} ifelse end }bind def } ifelse end end Adobe_CoolType_Core_Defined not { Adobe_CoolType_Core/findfont { $SubstituteFont begin $depth 0 eq { /$fontname 1 index dup type/stringtype ne{$str cvs}if def /$substituteFound false def } if /$depth $depth 1 add def end scfindfont $SubstituteFont begin /$depth $depth 1 sub def $substituteFound $depth 0 eq and { $inVMIndex null ne {dup $inVMIndex $AddInVMFont} if $doSmartSub { currentdict/$Strategy known {$Strategy/$BuildFont get exec} if } if } if end }bind put } if } if end /$AddInVMFont { exch/FontName 2 copy known { get 1 dict dup begin exch 1 index gcheck def end exch Adobe_CoolType_Data/InVMFontsByCMap get exch $DictAdd } {pop pop pop} ifelse }bind def /$DictAdd { 2 copy known not {2 copy 4 index length dict put} if Level2? not { 2 copy get dup maxlength exch length 4 index length add lt 2 copy get dup length 4 index length add exch maxlength 1 index lt { 2 mul dict begin 2 copy get{forall}def 2 copy currentdict put end } {pop} ifelse } if get begin {def} forall end }bind def end end %%EndResource currentglobal true setglobal %%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%Copyright: Copyright 1987-2006 Adobe Systems Incorporated. %%Version: 1.23 0 systemdict/languagelevel known dup {currentglobal false setglobal} {false} ifelse exch userdict/Adobe_CoolType_Utility 2 copy known {2 copy get dup maxlength 27 add dict copy} {27 dict} ifelse put Adobe_CoolType_Utility begin /@eexecStartData def /@recognizeCIDFont null def /ct_Level2? exch def /ct_Clone? 1183615869 internaldict dup /CCRun known not exch/eCCRun known not ct_Level2? and or def ct_Level2? {globaldict begin currentglobal true setglobal} if /ct_AddStdCIDMap ct_Level2? {{ mark Adobe_CoolType_Utility/@recognizeCIDFont currentdict put { ((Hex)57 StartData 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8 cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec } stopped { cleartomark Adobe_CoolType_Utility/@recognizeCIDFont get countdictstack dup array dictstack exch 1 sub -1 0 { 2 copy get 3 index eq {1 index length exch sub 1 sub{end}repeat exit} {pop} ifelse } for pop pop Adobe_CoolType_Utility/@eexecStartData get eexec } {cleartomark} ifelse }} {{ Adobe_CoolType_Utility/@eexecStartData get eexec }} ifelse bind def userdict/cid_extensions known dup{cid_extensions/cid_UpdateDB known and}if { cid_extensions begin /cid_GetCIDSystemInfo { 1 index type/stringtype eq {exch cvn exch} if cid_extensions begin dup load 2 index known { 2 copy cid_GetStatusInfo dup null ne { 1 index load 3 index get dup null eq {pop pop cid_UpdateDB} { exch 1 index/Created get eq {exch pop exch pop} {pop cid_UpdateDB} ifelse } ifelse } {pop cid_UpdateDB} ifelse } {cid_UpdateDB} ifelse end }bind def end } if ct_Level2? {end setglobal} if /ct_UseNativeCapability? systemdict/composefont known def /ct_MakeOCF 35 dict def /ct_Vars 25 dict def /ct_GlyphDirProcs 6 dict def /ct_BuildCharDict 15 dict dup begin /charcode 2 string def /dst_string 1500 string def /nullstring()def /usewidths? true def end def ct_Level2?{setglobal}{pop}ifelse ct_GlyphDirProcs begin /GetGlyphDirectory { systemdict/languagelevel known {pop/CIDFont findresource/GlyphDirectory get} { 1 index/CIDFont findresource/GlyphDirectory get dup type/dicttype eq { dup dup maxlength exch length sub 2 index lt { dup length 2 index add dict copy 2 index /CIDFont findresource/GlyphDirectory 2 index put } if } if exch pop exch pop } ifelse + }def /+ { systemdict/languagelevel known { currentglobal false setglobal 3 dict begin /vm exch def } {1 dict begin} ifelse /$ exch def systemdict/languagelevel known { vm setglobal /gvm currentglobal def $ gcheck setglobal } if ?{$ begin}if }def /?{$ type/dicttype eq}def /|{ userdict/Adobe_CoolType_Data known { Adobe_CoolType_Data/AddWidths? known { currentdict Adobe_CoolType_Data begin begin AddWidths? { Adobe_CoolType_Data/CC 3 index put ?{def}{$ 3 1 roll put}ifelse CC charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore currentfont/Widths get exch CC exch put } {?{def}{$ 3 1 roll put}ifelse} ifelse end end } {?{def}{$ 3 1 roll put}ifelse} ifelse } {?{def}{$ 3 1 roll put}ifelse} ifelse }def /! { ?{end}if systemdict/languagelevel known {gvm setglobal} if end }def /:{string currentfile exch readstring pop}executeonly def end ct_MakeOCF begin /ct_cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_CID_STR_SIZE 8000 def /ct_mkocfStr100 100 string def /ct_defaultFontMtx[.001 0 0 .001 0 0]def /ct_1000Mtx[1000 0 0 1000 0 0]def /ct_raise{exch cvx exch errordict exch get exec stop}bind def /ct_reraise {cvx $error/errorname get(Error: )print dup( )cvs print errordict exch get exec stop }bind def /ct_cvnsi { 1 index add 1 sub 1 exch 0 4 1 roll { 2 index exch get exch 8 bitshift add } for exch pop }bind def /ct_GetInterval { Adobe_CoolType_Utility/ct_BuildCharDict get begin /dst_index 0 def dup dst_string length gt {dup string/dst_string exch def} if 1 index ct_CID_STR_SIZE idiv /arrayIndex exch def 2 index arrayIndex get 2 index arrayIndex ct_CID_STR_SIZE mul sub { dup 3 index add 2 index length le { 2 index getinterval dst_string dst_index 2 index putinterval length dst_index add/dst_index exch def exit } { 1 index length 1 index sub dup 4 1 roll getinterval dst_string dst_index 2 index putinterval pop dup dst_index add/dst_index exch def sub /arrayIndex arrayIndex 1 add def 2 index dup length arrayIndex gt {arrayIndex get} { pop exit } ifelse 0 } ifelse } loop pop pop pop dst_string 0 dst_index getinterval end }bind def ct_Level2? { /ct_resourcestatus currentglobal mark true setglobal {/unknowninstancename/Category resourcestatus} stopped {cleartomark setglobal true} {cleartomark currentglobal not exch setglobal} ifelse { { mark 3 1 roll/Category findresource begin ct_Vars/vm currentglobal put ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse ct_Vars/vm get setglobal end } } {{resourcestatus}} ifelse bind def /CIDFont/Category ct_resourcestatus {pop pop} { currentglobal true setglobal /Generic/Category findresource dup length dict copy dup/InstanceType/dicttype put /CIDFont exch/Category defineresource pop setglobal } ifelse ct_UseNativeCapability? { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } if } { /ct_Category 2 dict begin /CIDFont 10 dict def /ProcSet 2 dict def currentdict end def /defineresource { ct_Category 1 index 2 copy known { get dup dup maxlength exch length eq { dup length 10 add dict copy ct_Category 2 index 2 index put } if 3 index 3 index put pop exch pop } {pop pop/defineresource/undefined ct_raise} ifelse }bind def /findresource { ct_Category 1 index 2 copy known { get 2 index 2 copy known {get 3 1 roll pop pop} {pop pop/findresource/undefinedresource ct_raise} ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /resourcestatus { ct_Category 1 index 2 copy known { get 2 index known exch pop exch pop { 0 -1 true } { false } ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /ct_resourcestatus/resourcestatus load def } ifelse /ct_CIDInit 2 dict begin /ct_cidfont_stream_init { { dup(Binary)eq { pop null currentfile ct_Level2? { {cid_BYTE_COUNT()/SubFileDecode filter} stopped {pop pop pop} if } if /readstring load exit } if dup(Hex)eq { pop currentfile ct_Level2? { {null exch/ASCIIHexDecode filter/readstring} stopped {pop exch pop(>)exch/readhexstring} if } {(>)exch/readhexstring} ifelse load exit } if /StartData/typecheck ct_raise } loop cid_BYTE_COUNT ct_CID_STR_SIZE le { 2 copy cid_BYTE_COUNT string exch exec pop 1 array dup 3 -1 roll 0 exch put } { cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi dup array exch 2 sub 0 exch 1 exch { 2 copy 5 index ct_CID_STR_SIZE string 6 index exec pop put pop } for 2 index cid_BYTE_COUNT ct_CID_STR_SIZE mod string 3 index exec pop 1 index exch 1 index length 1 sub exch put } ifelse cid_CIDFONT exch/GlyphData exch put 2 index null eq { pop pop pop } { pop/readstring load 1 string exch { 3 copy exec pop dup length 0 eq { pop pop pop pop pop true exit } if 4 index eq { pop pop pop pop false exit } if } loop pop } ifelse }bind def /StartData { mark { currentdict dup/FDArray get 0 get/FontMatrix get 0 get 0.001 eq { dup/CDevProc known not { /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known {get} { pop pop {pop pop pop pop pop 0 -1000 7 index 2 div 880} } ifelse def } if } { /CDevProc { pop pop pop pop pop 0 1 cid_temp/cid_CIDFONT get /FDArray get 0 get /FontMatrix get 0 get div 7 index 2 div 1 index 0.88 mul }def } ifelse /cid_temp 15 dict def cid_temp begin /cid_CIDFONT exch def 3 copy pop dup/cid_BYTE_COUNT exch def 0 gt { ct_cidfont_stream_init FDArray { /Private get dup/SubrMapOffset known { begin /Subrs SubrCount array def Subrs SubrMapOffset SubrCount SDBytes ct_Level2? { currentdict dup/SubrMapOffset undef dup/SubrCount undef /SDBytes undef } if end /cid_SD_BYTES exch def /cid_SUBR_COUNT exch def /cid_SUBR_MAP_OFFSET exch def /cid_SUBRS exch def cid_SUBR_COUNT 0 gt { GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi 0 1 cid_SUBR_COUNT 1 sub { exch 1 index 1 add cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add GlyphData exch cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi cid_SUBRS 4 2 roll GlyphData exch 4 index 1 index sub ct_GetInterval dup length string copy put } for pop } if } {pop} ifelse } forall } if cleartomark pop pop end CIDFontName currentdict/CIDFont defineresource pop end end } stopped {cleartomark/StartData ct_reraise} if }bind def currentdict end def /ct_saveCIDInit { /CIDInit/ProcSet ct_resourcestatus {true} {/CIDInitC/ProcSet ct_resourcestatus} ifelse { pop pop /CIDInit/ProcSet findresource ct_UseNativeCapability? {pop null} {/CIDInit ct_CIDInit/ProcSet defineresource pop} ifelse } {/CIDInit ct_CIDInit/ProcSet defineresource pop null} ifelse ct_Vars exch/ct_oldCIDInit exch put }bind def /ct_restoreCIDInit { ct_Vars/ct_oldCIDInit get dup null ne {/CIDInit exch/ProcSet defineresource pop} {pop} ifelse }bind def /ct_BuildCharSetUp { 1 index begin CIDFont begin Adobe_CoolType_Utility/ct_BuildCharDict get begin /ct_dfCharCode exch def /ct_dfDict exch def CIDFirstByte ct_dfCharCode add dup CIDCount ge {pop 0} if /cid exch def { GlyphDirectory cid 2 copy known {get} {pop pop nullstring} ifelse dup length FDBytes sub 0 gt { dup FDBytes 0 ne {0 FDBytes ct_cvnsi} {pop 0} ifelse /fdIndex exch def dup length FDBytes sub FDBytes exch getinterval /charstring exch def exit } { pop cid 0 eq {/charstring nullstring def exit} if /cid 0 def } ifelse } loop }def /ct_SetCacheDevice { 0 0 moveto dup stringwidth 3 -1 roll true charpath pathbbox 0 -1000 7 index 2 div 880 setcachedevice2 0 0 moveto }def /ct_CloneSetCacheProc { 1 eq { stringwidth pop -2 div -880 0 -1000 setcharwidth moveto } { usewidths? { currentfont/Widths get cid 2 copy known {get exch pop aload pop} {pop pop stringwidth} ifelse } {stringwidth} ifelse setcharwidth 0 0 moveto } ifelse }def /ct_Type3ShowCharString { ct_FDDict fdIndex 2 copy known {get} { currentglobal 3 1 roll 1 index gcheck setglobal ct_Type1FontTemplate dup maxlength dict copy begin FDArray fdIndex get dup/FontMatrix 2 copy known {get} {pop pop ct_defaultFontMtx} ifelse /FontMatrix exch dup length array copy def /Private get /Private exch def /Widths rootfont/Widths get def /CharStrings 1 dict dup/.notdef dup length string copy put def currentdict end /ct_Type1Font exch definefont dup 5 1 roll put setglobal } ifelse dup/CharStrings get 1 index/Encoding get ct_dfCharCode get charstring put rootfont/WMode 2 copy known {get} {pop pop 0} ifelse exch 1000 scalefont setfont ct_str1 0 ct_dfCharCode put ct_str1 exch ct_dfSetCacheProc ct_SyntheticBold { currentpoint ct_str1 show newpath moveto ct_str1 true charpath ct_StrokeWidth setlinewidth stroke } {ct_str1 show} ifelse }def /ct_Type4ShowCharString { ct_dfDict ct_dfCharCode charstring FDArray fdIndex get dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not {ct_1000Mtx matrix concatmatrix concat} {pop} ifelse /Private get Adobe_CoolType_Utility/ct_Level2? get not { ct_dfDict/Private 3 -1 roll {put} 1183615869 internaldict/superexec get exec } if 1183615869 internaldict Adobe_CoolType_Utility/ct_Level2? get {1 index} {3 index/Private get mark 6 1 roll} ifelse dup/RunInt known {/RunInt get} {pop/CCRun} ifelse get exec Adobe_CoolType_Utility/ct_Level2? get not {cleartomark} if }bind def /ct_BuildCharIncremental { { Adobe_CoolType_Utility/ct_MakeOCF get begin ct_BuildCharSetUp ct_ShowCharString } stopped {stop} if end end end end }bind def /BaseFontNameStr(BF00)def /ct_Type1FontTemplate 14 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /PaintType 0 def currentdict end def /BaseFontTemplate 11 dict begin /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /BuildChar/ct_BuildCharIncremental load def ct_Clone? { /FontType 3 def /ct_ShowCharString/ct_Type3ShowCharString load def /ct_dfSetCacheProc/ct_CloneSetCacheProc load def /ct_SyntheticBold false def /ct_StrokeWidth 1 def } { /FontType 4 def /Private 1 dict dup/lenIV 4 put def /CharStrings 1 dict dup/.notdefput def /PaintType 0 def /ct_ShowCharString/ct_Type4ShowCharString load def } ifelse /ct_str1 1 string def currentdict end def /BaseFontDictSize BaseFontTemplate length 5 add def /ct_matrixeq { true 0 1 5 { dup 4 index exch get exch 3 index exch get eq and dup not {exit} if } for exch pop exch pop }bind def /ct_makeocf { 15 dict begin exch/WMode exch def exch/FontName exch def /FontType 0 def /FMapType 2 def dup/FontMatrix known {dup/FontMatrix get/FontMatrix exch def} {/FontMatrix matrix def} ifelse /bfCount 1 index/CIDCount get 256 idiv 1 add dup 256 gt{pop 256}if def /Encoding 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for bfCount 1 255{2 copy bfCount put pop}for def /FDepVector bfCount dup 256 lt{1 add}if array def BaseFontTemplate BaseFontDictSize dict copy begin /CIDFont exch def CIDFont/FontBBox known {CIDFont/FontBBox get/FontBBox exch def} if CIDFont/CDevProc known {CIDFont/CDevProc get/CDevProc exch def} if currentdict end BaseFontNameStr 3(0)putinterval 0 1 bfCount dup 256 eq{1 sub}if { FDepVector exch 2 index BaseFontDictSize dict copy begin dup/CIDFirstByte exch 256 mul def FontType 3 eq {/ct_FDDict 2 dict def} if currentdict end 1 index 16 BaseFontNameStr 2 2 getinterval cvrs pop BaseFontNameStr exch definefont put } for ct_Clone? {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def} if FontName currentdict end definefont ct_Clone? { gsave dup 1000 scalefont setfont ct_BuildCharDict begin /usewidths? false def currentfont/Widths get begin exch/CIDFont get/GlyphDirectory get { pop dup charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore def } forall end /usewidths? true def end grestore } {exch pop} ifelse }bind def currentglobal true setglobal /ct_ComposeFont { ct_UseNativeCapability? { 2 index/CMap ct_resourcestatus {pop pop exch pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 3 index def /CMapVersion 1.000 def /CMapType 1 def exch/WMode exch def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search { dup length string copy exch pop exch pop } {pop(Identity)} ifelse } {pop (Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { 3 2 roll pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def setglobal /ct_MakeIdentity { ct_UseNativeCapability? { 1 index/CMap ct_resourcestatus {pop pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 2 index def /CMapVersion 1.000 def /CMapType 1 def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search {dup length string copy exch pop exch pop} {pop(Identity)} ifelse } {pop(Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { exch pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def currentdict readonly pop end end %%EndResource setglobal %%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0 %%Copyright: Copyright 1987-2004 Adobe Systems Incorporated. %%Version: 1.0 0 userdict/ct_T42Dict 15 dict put ct_T42Dict begin /Is2015? { version cvi 2015 ge }bind def /AllocGlyphStorage { Is2015? { pop } { {string}forall }ifelse }bind def /Type42DictBegin { 25 dict begin /FontName exch def /CharStrings 256 dict begin /.notdef 0 def currentdict end def /Encoding exch def /PaintType 0 def /FontType 42 def /FontMatrix[1 0 0 1 0 0]def 4 array astore cvx/FontBBox exch def /sfnts }bind def /Type42DictEnd { currentdict dup/FontName get exch definefont end ct_T42Dict exch dup/FontName get exch put }bind def /RD{string currentfile exch readstring pop}executeonly def /PrepFor2015 { Is2015? { /GlyphDirectory 16 dict def sfnts 0 get dup 2 index (glyx) putinterval 2 index (locx) putinterval pop pop } { pop pop }ifelse }bind def /AddT42Char { Is2015? { /GlyphDirectory get begin def end pop pop } { /sfnts get 4 index get 3 index 2 index putinterval pop pop pop pop }ifelse }bind def /T0AddT42Mtx2 { /CIDFont findresource/Metrics2 get begin def end }bind def end %%EndResource currentglobal true setglobal %%BeginFile: MMFauxFont.prc %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. %%All Rights Reserved. userdict /ct_EuroDict 10 dict put ct_EuroDict begin /ct_CopyFont { { 1 index /FID ne {def} {pop pop} ifelse} forall } def /ct_GetGlyphOutline { gsave initmatrix newpath exch findfont dup length 1 add dict begin ct_CopyFont /Encoding Encoding dup length array copy dup 4 -1 roll 0 exch put def currentdict end /ct_EuroFont exch definefont 1000 scalefont setfont 0 0 moveto [ <00> stringwidth <00> false charpath pathbbox [ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall grestore counttomark 8 add } def /ct_MakeGlyphProc { ] cvx /ct_PSBuildGlyph cvx ] cvx } def /ct_PSBuildGlyph { gsave 8 -1 roll pop 7 1 roll 6 -2 roll ct_FontMatrix transform 6 2 roll 4 -2 roll ct_FontMatrix transform 4 2 roll ct_FontMatrix transform currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse dup 9 1 roll { currentdict /StrokeWidth 2 copy known { get 2 div 0 ct_FontMatrix dtransform pop 5 1 roll 4 -1 roll 4 index sub 4 1 roll 3 -1 roll 4 index sub 3 1 roll exch 4 index add exch 4 index add 5 -1 roll pop } { pop pop } ifelse } if setcachedevice ct_FontMatrix concat ct_PSPathOps begin exec end { currentdict /StrokeWidth 2 copy known { get } { pop pop 0 } ifelse setlinewidth stroke } { fill } ifelse grestore } def /ct_PSPathOps 4 dict dup begin /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def end def /ct_matrix1000 [1000 0 0 1000 0 0] def /ct_AddGlyphProc { 2 index findfont dup length 4 add dict begin ct_CopyFont /CharStrings CharStrings dup length 1 add dict copy begin 3 1 roll def currentdict end def /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def /ct_PSBuildGlyph /ct_PSBuildGlyph load def /ct_PSPathOps /ct_PSPathOps load def currentdict end definefont pop } def systemdict /languagelevel known { /ct_AddGlyphToPrinterFont { 2 copy ct_GetGlyphOutline 3 add -1 roll restore ct_MakeGlyphProc ct_AddGlyphProc } def } { /ct_AddGlyphToPrinterFont { pop pop restore Adobe_CTFauxDict /$$$FONTNAME get /Euro Adobe_CTFauxDict /$$$SUBSTITUTEBASE get ct_EuroDict exch get ct_AddGlyphProc } def } ifelse /AdobeSansMM { 556 0 24 -19 541 703 { 541 628 m 510 669 442 703 354 703 c 201 703 117 607 101 444 c 50 444 l 25 372 l 97 372 l 97 301 l 49 301 l 24 229 l 103 229 l 124 67 209 -19 350 -19 c 435 -19 501 25 509 32 c 509 131 l 492 105 417 60 343 60 c 267 60 204 127 197 229 c 406 229 l 430 301 l 191 301 l 191 372 l 455 372 l 479 444 l 194 444 l 201 531 245 624 348 624 c 433 624 484 583 509 534 c cp 556 0 m } ct_PSBuildGlyph } def /AdobeSerifMM { 500 0 10 -12 484 692 { 347 298 m 171 298 l 170 310 170 322 170 335 c 170 362 l 362 362 l 374 403 l 172 403 l 184 580 244 642 308 642 c 380 642 434 574 457 457 c 481 462 l 474 691 l 449 691 l 433 670 429 657 410 657 c 394 657 360 692 299 692 c 204 692 94 604 73 403 c 22 403 l 10 362 l 70 362 l 69 352 69 341 69 330 c 69 319 69 308 70 298 c 22 298 l 10 257 l 73 257 l 97 57 216 -12 295 -12 c 364 -12 427 25 484 123 c 458 142 l 425 101 384 37 316 37 c 256 37 189 84 173 257 c 335 257 l cp 500 0 m } ct_PSBuildGlyph } def end %%EndFile setglobal Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end %%BeginResource: procset Adobe_AGM_Image 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Image 71 dict dup begin put /Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def /nd{ null def }bind def /AGMIMG_&image nd /AGMIMG_&colorimage nd /AGMIMG_&imagemask nd /AGMIMG_mbuf()def /AGMIMG_ybuf()def /AGMIMG_kbuf()def /AGMIMG_c 0 def /AGMIMG_m 0 def /AGMIMG_y 0 def /AGMIMG_k 0 def /AGMIMG_tmp nd /AGMIMG_imagestring0 nd /AGMIMG_imagestring1 nd /AGMIMG_imagestring2 nd /AGMIMG_imagestring3 nd /AGMIMG_imagestring4 nd /AGMIMG_imagestring5 nd /AGMIMG_cnt nd /AGMIMG_fsave nd /AGMIMG_colorAry nd /AGMIMG_override nd /AGMIMG_name nd /AGMIMG_maskSource nd /AGMIMG_flushfilters nd /invert_image_samples nd /knockout_image_samples nd /img nd /sepimg nd /devnimg nd /idximg nd /ds { Adobe_AGM_Core begin Adobe_AGM_Image begin /AGMIMG_&image systemdict/image get def /AGMIMG_&imagemask systemdict/imagemask get def /colorimage where{ pop /AGMIMG_&colorimage/colorimage ldf }if end end }def /ps { Adobe_AGM_Image begin /AGMIMG_ccimage_exists{/customcolorimage where { pop /Adobe_AGM_OnHost_Seps where { pop false }{ /Adobe_AGM_InRip_Seps where { pop false }{ true }ifelse }ifelse }{ false }ifelse }bdf level2{ /invert_image_samples { Adobe_AGM_Image/AGMIMG_tmp Decode length ddf /Decode[Decode 1 get Decode 0 get]def }def /knockout_image_samples { Operator/imagemask ne{ /Decode[1 1]def }if }def }{ /invert_image_samples { {1 exch sub}currenttransfer addprocs settransfer }def /knockout_image_samples { {pop 1}currenttransfer addprocs settransfer }def }ifelse /img/imageormask ldf /sepimg/sep_imageormask ldf /devnimg/devn_imageormask ldf /idximg/indexed_imageormask ldf /_ctype 7 def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall }def /pt { end }def /dt { }def /AGMIMG_flushfilters { dup type/arraytype ne {1 array astore}if dup 0 get currentfile ne {dup 0 get flushfile}if { dup type/filetype eq { dup status 1 index currentfile ne and {closefile} {pop} ifelse }{pop}ifelse }forall }def /AGMIMG_init_common { currentdict/T known{/ImageType/T ldf currentdict/T undef}if currentdict/W known{/Width/W ldf currentdict/W undef}if currentdict/H known{/Height/H ldf currentdict/H undef}if currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if currentdict/D known{/Decode/D ldf currentdict/D undef}if currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if currentdict/O known{ /Operator/O load 1 eq{ /imagemask }{ /O load 2 eq{ /image }{ /colorimage }ifelse }ifelse def currentdict/O undef }if currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if currentdict/I known{/Interpolate/I ldf currentdict/I undef}if currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if /DataSource load xcheck not{ DataSource type/arraytype eq{ DataSource 0 get type/filetype eq{ /_Filters DataSource def currentdict/MultipleDataSources known not{ /DataSource DataSource dup length 1 sub get def }if }if }if currentdict/MultipleDataSources known not{ /MultipleDataSources DataSource type/arraytype eq{ DataSource length 1 gt } {false}ifelse def }if }if /NComponents Decode length 2 div def currentdict/SkipImageProc known not{/SkipImageProc{false}def}if }bdf /imageormask_sys { begin AGMIMG_init_common save mark level2{ currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load AGMIMG_&imagemask }{ BitsPerComponent ImageMatrix/DataSource load AGMIMG_&image }ifelse }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if cleartomark restore end }def /overprint_plate { currentoverprint{ 0 get dup type/nametype eq{ dup/DeviceGray eq{ pop AGMCORE_black_plate not }{ /DeviceCMYK eq{ AGMCORE_is_cmyk_sep not }if }ifelse }{ false exch { AGMOHS_sepink eq or }forall not }ifelse }{ pop false }ifelse }def /process_mask { level3{ dup begin /ImageType 1 def end 4 dict begin /DataDict exch def /ImageType 3 def /InterleaveType 3 def /MaskDict 9 dict begin /ImageType 1 def /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def /ImageMatrix[Width 0 0 Height neg 0 Height]def /NComponents 1 def /BitsPerComponent 1 def /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def currentdict end def currentdict end }if }def /use_mask { dup/Mask known {dup/Mask get}{false}ifelse }def /imageormask { begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata } { save mark level2 AGMCORE_host_sep not and{ currentdict Operator/imagemask eq DeviceN_PS2 not and{ imagemask }{ AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{ [/Separation/Black/DeviceGray{}]setcolorspace /Decode[Decode 1 get Decode 0 get]def }if use_mask{ process_mask image }{ DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and { Names convert_to_process not{ 2 dict begin /imageDict xdf /names_index 0 def gsave imageDict write_image_file{ Names{ dup(None)ne{ [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace Operator imageDict read_image_file names_index 0 eq{true setoverprint}if /names_index names_index 1 add def }{ pop }ifelse }forall close_image_file }if grestore end }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load /Adobe_AGM_OnHost_Seps where{ pop imagemask }{ currentgray 1 ne{ currentdict imageormask_sys }{ currentoverprint not{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }ifelse }{ BitsPerComponent ImageMatrix MultipleDataSources{ 0 1 NComponents 1 sub{ DataSource exch get }for }{ /DataSource load }ifelse Operator/colorimage eq{ AGMCORE_host_sep{ MultipleDataSources level2 or NComponents 4 eq and{ AGMCORE_is_cmyk_sep{ MultipleDataSources{ /DataSource DataSource 0 get xcheck { [ DataSource 0 get/exec cvx DataSource 1 get/exec cvx DataSource 2 get/exec cvx DataSource 3 get/exec cvx /AGMCORE_get_ink_data cvx ]cvx }{ DataSource aload pop AGMCORE_get_ink_data }ifelse def }{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul /DataSource load filter_cmyk 0()/SubFileDecode filter def }ifelse /Decode[Decode 0 get Decode 1 get]def /MultipleDataSources false def /NComponents 1 def /Operator/image def invert_image_samples 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }{ MultipleDataSources NComponents AGMIMG_&colorimage }ifelse }{ true NComponents colorimage }ifelse }{ Operator/image eq{ AGMCORE_host_sep{ /DoImage true def currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse { AGMCORE_black_plate not Operator/imagemask ne and{ /DoImage false def currentdict ignoreimagedata }if }if 1 AGMCORE_&setgray DoImage {currentdict imageormask_sys}if }{ use_mask{ process_mask image }{ image }ifelse }ifelse }{ Operator/knockout eq{ pop pop pop pop pop currentcolorspace overprint_plate not{ knockout_unitsq }if }if }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /sep_imageormask { /sep_colorspace_dict AGMCORE_gget begin CSA map_csa begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_avoid_L2_sep_space{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def }if AGMIMG_ccimage_exists MappedCSA 0 get/DeviceCMYK eq and currentdict/Components known and Name()ne and Name(All)ne and Operator/image eq and AGMCORE_producing_seps not and level2 not and { Width Height BitsPerComponent ImageMatrix [ /DataSource load/exec cvx { 0 1 2 index length 1 sub{ 1 index exch 2 copy get 255 xor put }for }/exec cvx ]cvx bind MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Name findcmykcustomcolor customcolorimage }{ AGMCORE_producing_seps not{ level2{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{ [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if currentdict imageormask }{ currentdict Operator/imagemask eq{ imageormask }{ sep_imageormask_lev1 }ifelse }ifelse }{ AGMCORE_host_sep{ Operator/knockout eq{ currentdict/ImageMatrix get concat knockout_unitsq }{ currentgray 1 ne{ AGMCORE_is_cmyk_sep Name(All)ne and{ level2{ Name AGMCORE_IsSeparationAProcessColor { Operator/imagemask eq{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor }if }{ invert_image_samples }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ [/Separation Name[/DeviceGray] { sep_colorspace_proc AGMCORE_get_ink_data 1 exch sub }bind ]AGMCORE_&setcolorspace /sep_tint AGMCORE_gget AGMCORE_&setcolor }if }ifelse currentdict imageormask_sys }{ currentdict Operator/imagemask eq{ imageormask_sys }{ sep_image_lev1_sep }ifelse }ifelse }{ Operator/imagemask ne{ invert_image_samples }if currentdict imageormask_sys }ifelse }{ currentoverprint not Name(All)eq or Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ currentcolorspace 0 get/Separation ne{ [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if }if currentoverprint MappedCSA 0 get/DeviceCMYK eq and Name AGMCORE_IsSeparationAProcessColor not and //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse Name(All)ne and{ imageormask_l2_overprint }{ currentdict imageormask }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end }def /colorSpaceElemCnt { mark currentcolor counttomark dup 2 add 1 roll cleartomark }bdf /devn_sep_datasource { 1 dict begin /dataSource xdf [ 0 1 dataSource length 1 sub{ dup currentdict/dataSource get/exch cvx/get cvx/exec cvx /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx }for ]cvx bind end }bdf /devn_alt_datasource { 11 dict begin /convProc xdf /origcolorSpaceElemCnt xdf /origMultipleDataSources xdf /origBitsPerComponent xdf /origDecode xdf /origDataSource xdf /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def /DataSource origMultipleDataSources { [ BitsPerComponent 8 idiv origDecode length 2 idiv mul string 0 1 origDecode length 2 idiv 1 sub { dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch origDataSource exch get 0()/SubFileDecode filter BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx }for ]bind cvx }{origDataSource}ifelse 0()/SubFileDecode filter def [ origcolorSpaceElemCnt string 0 2 origDecode length 2 sub { dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx }for /convProc load/exec cvx origcolorSpaceElemCnt 1 sub -1 0 { /dup cvx 2/add cvx/index cvx 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx }for ]bind cvx 0()/SubFileDecode filter end }bdf /devn_imageormask { /devicen_colorspace_dict AGMCORE_gget begin CSA map_csa 2 dict begin dup /srcDataStrs[3 -1 roll begin AGMIMG_init_common currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi { dup 65535 gt{1 add 2 div cvi}{exit}ifelse }loop string }repeat end]def /dstDataStr srcDataStrs 0 get length string def begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_producing_seps not{ level3 not{ Operator/imagemask ne{ /DataSource[[ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def /MultipleDataSources true def /Decode colorSpaceElemCnt[exch{0 1}repeat]def }if }if currentdict imageormask }{ AGMCORE_host_sep{ Names convert_to_process{ CSA get_csa_by_name 0 get/DeviceCMYK eq{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource filter_cmyk 0()/SubFileDecode filter def /MultipleDataSources false def /Decode[1 0]def /DeviceGray setcolorspace currentdict imageormask_sys }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate{ /DataSource DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource /MultipleDataSources false def /Decode colorSpaceElemCnt[exch{0 1}repeat]def currentdict imageormask_sys }{ gsave knockout_unitsq grestore currentdict consumeimagedata }ifelse }ifelse } { /devicen_colorspace_dict AGMCORE_gget/names_index known{ Operator/imagemask ne{ MultipleDataSources{ /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def /MultipleDataSources false def }{ /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def }ifelse invert_image_samples }if currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ currentdict imageormask }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end end }def /imageormask_l2_overprint { currentdict currentcmykcolor add add add 0 eq{ currentdict consumeimagedata }{ level3{ currentcmykcolor /AGMIMG_k xdf /AGMIMG_y xdf /AGMIMG_m xdf /AGMIMG_c xdf Operator/imagemask eq{ [/DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ]/DeviceCMYK{}]setcolorspace AGMIMG_c 0 ne{AGMIMG_c}if AGMIMG_m 0 ne{AGMIMG_m}if AGMIMG_y 0 ne{AGMIMG_y}if AGMIMG_k 0 ne{AGMIMG_k}if setcolor }{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def [/Indexed [ /DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ] /DeviceCMYK{ AGMIMG_k 0 eq{0}if AGMIMG_y 0 eq{0 exch}if AGMIMG_m 0 eq{0 3 1 roll}if AGMIMG_c 0 eq{0 4 1 roll}if } ] 255 { 255 div mark exch dup dup dup AGMIMG_k 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_y 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_m 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_c 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop counttomark 1 roll }{ pop }ifelse counttomark 1 add -1 roll pop } ]setcolorspace }ifelse imageormask_sys }{ write_image_file{ currentcmykcolor 0 ne{ [/Separation/Black/DeviceGray{}]setcolorspace gsave /Black [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Yellow/DeviceGray{}]setcolorspace gsave /Yellow [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Magenta/DeviceGray{}]setcolorspace gsave /Magenta [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Cyan/DeviceGray{}]setcolorspace gsave /Cyan [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if close_image_file }{ imageormask }ifelse }ifelse }ifelse }def /indexed_imageormask { begin AGMIMG_init_common save mark currentdict AGMCORE_host_sep{ Operator/knockout eq{ /indexed_colorspace_dict AGMCORE_gget dup/CSA known{ /CSA get get_csa_by_name }{ /Names get }ifelse overprint_plate not{ knockout_unitsq }if }{ Indexed_DeviceN{ /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{ indexed_image_lev2_sep }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }{ AGMCORE_is_cmyk_sep{ Operator/imagemask eq{ imageormask_sys }{ level2{ indexed_image_lev2_sep }{ indexed_image_lev1_sep }ifelse }ifelse }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ level2{ Indexed_DeviceN{ /indexed_colorspace_dict AGMCORE_gget begin }{ /indexed_colorspace_dict AGMCORE_gget dup null ne { begin currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and AGMCORE_in_rip_sep and{ [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup] setcolorspace }if end } {pop}ifelse }ifelse imageormask Indexed_DeviceN{ end }if }{ Operator/imagemask eq{ imageormask }{ indexed_imageormask_lev1 }ifelse }ifelse }ifelse cleartomark restore currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /indexed_image_lev2_sep { /indexed_colorspace_dict AGMCORE_gget begin begin Indexed_DeviceN not{ currentcolorspace dup 1/DeviceGray put dup 3 currentcolorspace 2 get 1 add string 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub { dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put }for put setcolorspace }if currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse end end }def /OPIimage { dup type/dicttype ne{ 10 dict begin /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /ImageType 1 def /Decode[0 1 def] currentdict end }if dup begin /NComponents 1 cdndf /MultipleDataSources false cdndf /SkipImageProc{false}cdndf /Decode[ 0 currentcolorspace 0 get/Indexed eq{ 2 BitsPerComponent exp 1 sub }{ 1 }ifelse ]cdndf /Operator/image cdndf end /sep_colorspace_dict AGMCORE_gget null eq{ imageormask }{ gsave dup begin invert_image_samples end sep_imageormask grestore }ifelse }def /cachemask_level2 { 3 dict begin /LZWEncode filter/WriteFilter xdf /readBuffer 256 string def /ReadFilter currentfile 0(%EndMask)/SubFileDecode filter /ASCII85Decode filter /RunLengthDecode filter def { ReadFilter readBuffer readstring exch WriteFilter exch writestring not{exit}if }loop WriteFilter closefile end }def /spot_alias { /mapto_sep_imageormask { dup type/dicttype ne{ 12 dict begin /ImageType 1 def /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /MultipleDataSources false def }{ begin }ifelse /Decode[/customcolor_tint AGMCORE_gget 0]def /Operator/image def /SkipImageProc{false}def currentdict end sep_imageormask }bdf /customcolorimage { Adobe_AGM_Image/AGMIMG_colorAry xddf /customcolor_tint AGMCORE_gget << /Name AGMIMG_colorAry 4 get /CSA[/DeviceCMYK] /TintMethod/Subtractive /TintProc null /MappedCSA null /NComponents 4 /Components[AGMIMG_colorAry aload pop pop] >> setsepcolorspace mapto_sep_imageormask }ndf Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put /customcolorimage { Adobe_AGM_Image/AGMIMG_override false put current_spot_alias{dup 4 get map_alias}{false}ifelse { false set_spot_alias /customcolor_tint AGMCORE_gget exch setsepcolorspace pop mapto_sep_imageormask true set_spot_alias }{ //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec }ifelse }bdf }def /snap_to_device { 6 dict begin matrix currentmatrix dup 0 get 0 eq 1 index 3 get 0 eq and 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop { 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def 0 0 transform AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch itransform/AGMIMG_llY exch def/AGMIMG_llX exch def 1 1 transform AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch itransform/AGMIMG_urY exch def/AGMIMG_urX exch def [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat }{ }ifelse end }def level2 not{ /colorbuf { 0 1 2 index length 1 sub{ dup 2 index exch get 255 exch sub 2 index 3 1 roll put }for }def /tint_image_to_color { begin Width Height BitsPerComponent ImageMatrix /DataSource load end Adobe_AGM_Image begin /AGMIMG_mbuf 0 string def /AGMIMG_ybuf 0 string def /AGMIMG_kbuf 0 string def { colorbuf dup length AGMIMG_mbuf length ne { dup length dup dup /AGMIMG_mbuf exch string def /AGMIMG_ybuf exch string def /AGMIMG_kbuf exch string def }if dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop } addprocs {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage end }def /sep_imageormask_lev1 { begin MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ { 255 mul round cvi GrayLookup exch get }currenttransfer addprocs settransfer currentdict imageormask }{ /sep_colorspace_dict AGMCORE_gget/Components known{ MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{ {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer currentdict imageormask }{ currentcolortransfer {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }{ MappedCSA 0 get/DeviceGray eq{ {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer currentdict imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }ifelse }ifelse }ifelse end }def /sep_image_lev1_sep { begin /sep_colorspace_dict AGMCORE_gget/Components known{ Components aload pop Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf {AGMIMG_c mul 1 exch sub} {AGMIMG_m mul 1 exch sub} {AGMIMG_y mul 1 exch sub} {AGMIMG_k mul 1 exch sub} }{ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub} {255 mul round cvi ColorLookup exch get 1 get 1 exch sub} {255 mul round cvi ColorLookup exch get 2 get 1 exch sub} {255 mul round cvi ColorLookup exch get 3 get 1 exch sub} }ifelse AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end }def /indexed_imageormask_lev1 { /indexed_colorspace_dict AGMCORE_gget begin begin currentdict MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceGray eq{ {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }ifelse }ifelse }ifelse end end }def /indexed_image_lev1_sep { /indexed_colorspace_dict AGMCORE_gget begin begin {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end end }def }if end systemdict/setpacking known {setpacking}if %%EndResource currentdict Adobe_AGM_Utils eq {end} if %%EndProlog %%BeginSetup Adobe_AGM_Utils begin 2 2010 Adobe_AGM_Core/ds gx Adobe_CoolType_Core/ds get exec Adobe_AGM_Image/ds gx currentdict Adobe_AGM_Utils eq {end} if %%EndSetup %%Page: 20 1 %%EndPageComments %%BeginPageSetup %ADOBeginClientInjection: PageSetup Start "AI11EPS" %AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0 %ADOEndClientInjection: PageSetup Start "AI11EPS" Adobe_AGM_Utils begin Adobe_AGM_Core/ps gx Adobe_AGM_Utils/capture_cpd gx Adobe_CoolType_Core/ps get exec Adobe_AGM_Image/ps gx %ADOBeginClientInjection: PageSetup End "AI11EPS" /currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse { userdict /AI11_PDFMark5 /cleartomark load put userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put} { userdict /AI11_PDFMark5 /pdfmark load put userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse [/NamespacePush AI11_PDFMark5 [/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5 [{ai_metadata_stream_123} currentfile 0 (% &&end XMP packet marker&&) /SubFileDecode filter AI11_ReadMetadata_PDFMark5 application/postscript diagramas_01 Adobe Illustrator CS4 2011-07-07T15:53:09-03:00 2011-07-07T15:53:09-03:00 2011-07-07T15:53:09-03:00 256 156 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAnAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9Jy6VpkUKOLFpy1AVjIB G1eR5ugp9OAsoi+rVjYaPeQmUWTQ0d04SmjVQ8WPws37W2FiluqeXNN1S5NrFZW4NoVLSXaO6uJR yBiMcqNtxPLkN/oxVU0bQ7WzEem3lpAXpJJFLaq0UAjD0CFZJpJC45Dk3Qk9umKo+fTtIhngiNmW E7MvqqRxQqpf46uG3ANKA4qiBo+mxMkkcAV0ZSrVOxqPfFVC503To7c3H1JrmQ8SyRkczzYAt8bo tBXkd+mAllCNmrpbZ2Gk3Pqg2LQNE/psspFSeIbbg79m74WKXa15b0rULhLKKxgaWFRMZ7hXeIBm KhAUljcMzJ4UoMVU9G8saZpE7Wr6fbf6U7MklmjRIiIASZvVmdmYs5NVHffxKqbXem6RbLGTZmQP IkZ4MPh9Q8QzcnXau22/tiqs2i6UqF1gWoFVILfR3xV0+maeyy3D2pmkqzFVJ5MQTsKlRXFIFlC2 VnpNzLLE2nvbvGFakpX4g/KhXhI/8h64qRugtf8ALel3j29pDZ25uDWVZ7mNpoljjZRMtElhcMwY AHpXrihDad5P0jS7xZZtMtWuLqRYkayVoyvwtyd/VmNfhX9kVoO+Kp1e6fo9rbNObMzUKhY4z8Tc mCinJlXq3jiquND0k9Ldfvb+uKu/RWnzkyTQh3ooqSegUeBxVQOnaOL0Wpsz8UZlWao4HiwUr9rl yHIfs098VS3zD5Z0OYRomnwvfT1ht7mZDLFGwUyfvVEsLlaAn4TiqAPkfSLN3nv9LtLuJ5F9KGzj eKQMSgSvrXHDiTsVFOo674qyK60zRbW0luDahkhRnKIdyEBJAqyjoPHFVlrp+nTyMraZJAFB+OUr SoPT4ZGP4YLZcO12ijpljOIxLCH9OJFSpOwFdtjhYoefTtHhuIITZkicsvqgjghVC9GqwO4BpQHF UNrug6E1iUm09bjk6pGv2gjyHgjkF4zTk3Zq4qkUfkHTLOOO51HTdLuYLdDI6WlvJC5kZW9WRDLc Mi7tXc1413xVlUej6S0KubTgSoJiY/EpIrxNGK17dcVQljb6Xeemy6XNHFKodZZCnEBl5CvGVm39 hgtkI7XacWsMUMIiiXjGpbivh8ROFiq4qx7XPLNxqOjzWdrfSxC4BLxysJY2ZmVhUyLI6qnH4QhX FWG2vkkjUJ4tVvI9MiiEjqyNFHJIZS8ZcbFSjKgJrRvlirrHyt5auLpoV8y2wMMqAm39BZJPTiUj i3NxtyZTUNtX54qrN5G0dZ4rVdch9No3/elYvUCJIrBOYcHkeda+IrTtiqjceRVm1K4trC+huI5y DDcMUkdHmgYOXou3+85pxPSgxVneleXbTTYYPRMiOiossazStCz0VWbgxoTt4Yqs1by/LfaXeW1v fT27X0bpIGYSxkPGycOMok4JVqnhQ4qwaDyTMdTtW1C4XTIZC1xJITFHM5ESii7UqPrDI3L3p2OK SKWR+V/LL3cloPM1odlHrKIQ59SVz6auJNnRlU996VXcDFCMuPJOkG89JNdhYTLPKssqxO6luCMC wdPtBj044qoXHkmGK8hh0/Uo71GWNjJKY5JFljZIVeirQCso6b9etcVZjoflO10uxhBdxdRp++aG aZYpCCSKoWoQK7AjFUxl0t5JZLiC9ubaZ2oeDh4wqncCKUPGOVOoWv44q82tvIV5Dc2kF7NHY26o rNdt6cbP6P7pVSoryA+McxSlB40UkUlx0bRLq7vNNt9as6xG4j9a5ZVdVlkC8WIUbsZyvUb79KYA bZTgY82Q3fkrSlu4nj16OQzOo5zrBIyPHHI/qEhkH2vYYWCDv/I9pC9lDZ6nFfLMwt5IpDG3EySF xwQBqIp8ST7nuqzHy75Oh06FXuZGa/8AUZ5JreWaNGBINCgYClRUinX54qmc2mm5cTR3dxazKqqj Qv8ACNgamJw8TGhIqyn7wMVef6j5Ev4L6KKWeJbW4LK9+/BAq8mlCFqK3NiKii8a/diq3UfKnliG 7eAeY7YS3LO9JfQkkhVrc8pD8anifR/yRTbtiq3XvKWlwQpeRaxb3NrEirKJ2jkNHkRaoqq/wog2 6/1BLKMSTQQlx5aSPRLS6jvlurmWWV7q0Jj4oJi5IWNlDdWNamlTt8O4bUxINM08veRlsEmN3M3r uy+nJaSywUjQcQpCFB026eGFin1zp4u/TIuJ7eSJAY3gkKbnoWXdHoRUBgR7UrirA/MXknVEu2uR OlxHcTEPdzCMGITcUZ5Sqx/a6fux4dOuKqN75T8t2ssBfzBAbib6tGsEzQyuXSThzSpU0UTdl9z1 xVu48laCdIjmi8wRXIt4mehELxSARtsi8iVqxqfibFVmpeS7Oz06eaz1iO6uPWikS2UxRx8UCJ9g eoS3FF6EbDp4qp15V8jCFReXUnFJoE+qi2d4JIwxEhr6ZVa1PbxPXFWaW0YjhWNSxCVUFiWYgGm7 NUk+5xVUxVbF/dp8h+rFULLq1jFcfV3dhNyVAgjkJJalCKKfh3FW6Cor1GC2RiQAe9K9XsLOyKXF voVpcpED+84gOhc8TxRIZWNe5GFiq2VhZ3GnJdaro9pbyoBN6MS/WQtEDVUmGJywJIpwriqYWVtp bJHdWlvHHzFUcRCNqH2KqwxVEyfZHzX9YxV0X92nyH6sVU1vIWWZhz425IkrG43UVPGq/H/sa4pA s0kd2mlT3Sx2GkWl9cmtzP6qeiUeuzMxiceoeR2Yhu+KkUaVIbS0mk+q6rotrC0p/cCJDco3End3 9GNYzQA7+OKExe20m0eKT6oiOzhI2ig5EM3T7CkqP8o7Yqi5f7t/kf1Yq6P7J+bfrOKrY7mKSeWF eXOHj6lUZV+IVHFiAre/EmnfFUg1B9LvRHLYaVbalfXLxySJdIbdgkZU85GeGRldAFKK4BO3Qb4A bZTgYmiqC0tnZYNU0S1jgmKqhjX6yC5IorhYVCj/ACiaYWKYT2mjWUX1h7SJViKlTHBzYNyAXiqK zVrToMVR+KqcH2fu/wCIjFXfWYvrP1b4vV4ep9huPGvH7dOFa9q1xVLdcttNcD1tOgvry5X6vGk0 dQ6V+JHl9OTitGY77Yqg2QROP0joVrFZOrB5Ya3L8uir6SQVIYVqa7beOyqMii8t/V5HhtITb2y1 LJb1XiAf7uifGNv2K4LZGJAvvTWN1dFda8WAYVBBod9waEYWKyLt/qL/ABxV0lzFHPFA3L1JuXCi My/AKnkwBVf9kRXFUHrCaeIVuLq0jupo6pbB4/UId+i8gkhQMVFWpTFUsS2e0WFZPL9lDYR0SRoW 9Vo4wtF4RJb1feg4im2/bdVGWVv5akHpWllDxRS5AtuKjepFSgHKp3X7Ve2C2XCatMbOa3mtY5Lc FYCv7sFGjoo2HwMFI+7CxVI/sn5t+s4quxVDTwTzWqJBcvav8J9VFRjQdRSRWG/yxVhHmSDzempx q81vcrO0L26crmBPUidVHGNLpBtJIhNSa9f2cVWTeWPOy6f611qaSx/V5heWk0t1xAqrAKYZkLni pWrN0+ZxVu90Lz/aWpvG1JJ/SklkltIpLrh6Jjk3DvPFJt8NF57HeuKozypofmQo0tzey2VqsMA0 xbeR5Iyv7wtziunuSPhdR1GwG22KsyCskKIzmRl4BpGoCxBG54gDf2GKpRq1h5gk0u8TTb8Ce4jc QrMgHpgxsFETxGJlbmR8bFqYqxCDSvOs+s/VY7pLJnmaW/nikuWpwhC0KSXUqtVZkpQdhv8ADTFV G10zz5cTzRwzoLkARS3qz3PqBFuJQpo1yUbg8bCnp0IqB1rikikxn8tedheemNRt7iYrcPbXMkl9 G6o3BGFI5Qi/aHEcWpSuKELeaN53s7iG2mvF1ISejMssslyiCWJkUKEjuY9vVdT8QNTvtQYqynRN H1i3sIZL7Ubj6zwJurdnSaMkE0Cs6s4FPBqnxxVMJbXVvVkmtb5VVmotvPErxKAfiIKGOTkabVan t4KvP7XSvPjahBYtcLDfmKFry5Wa5dxFGCgLcrl0b42JKhRXc7E4q6fSfPTXM9nDcLc38C3UMN2Z 7mOTg5Vq1+tBA3CaMj92QKDwxTSpeWPnGLWlskvYdSuYzHLCXluYikhjkJPBLqPitKqepod+oqLT wGrrZq+0TzzbQ2kd1efXI7oiIxyS3AEcrS84xyiuImcgLTmfuG+Fiyny9o2vpCLjU7+eG7aRmktU kWaDgSDxX1hK4H+yqBtiqZzWupu4ls70QFVUCCSJZYiaCrNQpJ0PZx29wVWB3dj53XUobQzR/Xpx IkM6zXHqrF6nqO9DcmNa8F24b/Z6CuKta7pvnHTDLLPepPEJWNleTz3KcXe2oaKlzHxpxdV+Bjv3 5YkpjEk0Ba/UtJ85g2am9F/FPGklGluFCv6sSpRobmJWKFlblXc7jFSCGtR0jz3baSbm9u1njkeY Xlk0lwY44pWZVXklwkjj95sKmi7bkbqGQ+X9E80gTSalqE1pLyRYY4ZPXjKKvEmlybhgW2r8R33x VPbm2vZvTa0uzatGgJXgkiOf2Q4YcuII34sp9++KsG16086Q3685YZnnuHWwYS3MR5yp6dURboKg VWO5U0/2WKq9z5a85RKkk+qRXUTm1+C5ku1KTiUgUWCaNacnUkkmpHsMVQur6F54tdOgFxqC3wkW Rbq29S59PisLOV5iaF35UP2j0FDU9VVSXRvzDt7G5vZLwAxSqy2IlnZTDHGvNvUNzz34fZ5/aJNa HZVHeVtF8zsqvc3b2NmtugsRbSPIhBPIco7p7kigNOo2psKYqzS2VkhVGcyMtQ0jUBYg9TxAG/sM VVMVWxf3afIfqxVjPmnTrbUL6KKfTtRnAiZfrNoYPRoSBxYSODy+I0+Htv2xVGW3lTy+9nGrWLKr IOUUzuXoRuHo7Cvjiq+LynoEa+kLZiFFeTyysdyepLE4qqHU5bMC1h0i9kihpFGyegVKKQgYF5ga U333piqYLIZII5CjRl+DGN6BlqQaNQkVHzxVfF/dp8h+rFVOexsrhla4t45mQEI0iKxAalaVBpXi K4qxm/8AJmh28guvqt3eAzeoLWF0op3YUqY2CA9g3t0OKoi18u6HqAlM2k3Fk0LcEaaQqzAhWJRo pX+GuxrTp4UxVMoPLmjW8yzw2/GVejc3PRg1N26clB+jFUwl/u3+R/Viro/sn5t+s4qsns7S44+v BHNx+z6ihqV8KjFWM635R0eM3GorZ3d40jRu2n2jRCpiKMPTEjRBOTRKDxcfQK4qrWvlzy/fiX1N IuLMgqfUlcxux6fC0crNsNsU2mMfljQ45YpUtqSQsskbepISGU1B3bFCaYqpwfZ+7/iIxV09rbXC hZ4UmVTUCRQwB6V3+eKsf13ydot0ZbtreZqw+i9na+mqup5DkEei8wHJBqD4bgYpBpR03SNH1FTD P5fvNPQKCDdOlKhVbYw3E1GUtT5qadiVCZjynoAQJ9WJAAFTJKTt7lq1xVN8VU4u3+ov8cVbmggn QxzRrLGaVRwGGxqNj7jFUn1TyrpN1JDdLE8UtoGZIrb00EleLcXVxwbdBTl+rFUq0jR9GkWPT38u 39tbonpCe7eIoyrzX4vTuJG+IJX7P7Q71AVTiPyjoCR8PqxYb/bllY777kscVTWGGOGGOGMcY41C IKk0VRQbnfFW4/sn5t+s4quxVivmi61IaP8AHpkchjkjaOVpYDCsayortK1wqrHyjZv2Xp86YCGU ZEcurHdFv/N9sgtrWCJIFW5lmNlJaTqZRIOquYDGooy1qw6UFBhYt+XL7zhd6px9S1tjezH67cwz W106PFbsOMkQCH7Sp9ilNzT4q4qzlLrXOKs9hF6hNJEW4JogrRgTGKk7/D+PgqwDVL3WbbU3uLWw tbN4HmliSa4sre4XlCwjqAstNgxPqMQadqA4AKZSmZcyzrS21wRQC9MdykypK9yCsZjZgP3QjUOG AP7XPv7blip6tqOuW2l3bW1gZJhG62UkMkbHl6bMskizekiqGA7tirDrPVPOEerNDbpAv164aWYW k9pdSgCLieaN6AJqY2qCvfbeuKqob8x/0hLdjTwLz0Fi9QzWzSrH6zslY+ITi1CCFevQ8jTFUFLP 5ht9UAhs7WO6tfXMYeaxt51RlUIfSUSqCCa/G5rvTjgAplKRkbKvf6p5wke1hv44Wfnb3UaXU9na kGOhYRcfWqS5orFum3E74WLLNDl8yvYwz3zR3IuUrKpKIYOJI2aIOsxYGv7I296BVMZb3UoZZKWB ntQ1EeGVTKxY7/u3EagKevx4q89stY86LqCyCOBby+SA3QhuLOW4ZYkIZmhoiFi7UWjDwqwGKou6 b8ymuUuI7IPdxQ3aWzvLbJMVZ6K4iCvEKfuzxLnv8QqcVQd5J5gg1NAtjbLIs6XYW4lsrWZpHEsj Hgvrb7txd2py341wAUylMy5m29U1fzlPaQWV8ISLwfCt3NZ26SNHOGUrwaQyKVC/yivjUDCxZd5e ufNVxELu7MUkckjIbRnjrGlQQ4ngVlk47rTiK7dMVTKe71KBgbex+t24VS5SVVlrQAhUcBTtvu4x VgVxrXm0aqLhY7db4o9rGDdWfrgmUSlWiApxVQPhLV3ry3piq3Wr3zXLeGG4jguWtZHe2ju5rO3m Ilt6oPRAnUCvP+8YhiOgoMVV9Qt/O0+n2ttDp6SWXwMVn+qwxLL6ihAixmZnDMSakrUHcHABTKUj I2ebtY1TzwmlyRalAIUuGnimS5ms4YljbkI6TqSX2dQSETpWowsU88t3fm+WKSSZLdkgMcSWYliK U4UZknhU0UEAhSlaGmKp/dXGoQiM2lot0OAMoMvpMKCoCgqwYn3IxVg2u6x5oGqJcm2ig+rTSraL PdWcU6maMRoqJSUd6sGY1/yaA4qpavf+bpWhtr5YZI3+rXAju5bW1o6yFXEYUzs458PjNBQ0INTi rpE86yeX/Sg09Pq8yub2Mm0igACE8lkiLs52A+FEoR26YAGUpE80TJqXn6wsZPrVqLeOFo0SPnZr biEIvOkx3A+BqL6JNDTtXCxRHlC482GBIFFsLW0gQxwRzQzxzVaopLH8aVQ7lg1SK13xVnFsZDCp lUJIal0U8gGruA1Fr86YqqYqg7+1e70y4sqtEbiB4fVAVipdCvKhNDSuKpNpPlfU9PDINavPSKgJ FGkAUHkzM1JhPSvP9mn04qmuj6fLYW8iSyyXM00rTSzMI1qz06BOIHTFUaC3MngaEAdu1ffFWPa7 5Um1a9ec3ssMUiLG8CqKFQGVhyV0NCrsKGo3OKp+qhY0jjj4InEKooAFUjYAHwxVfF/dp8h+rFUP Np0b3H1iJ2t5iGDvEEq/IKPi5q9do1xVjV7o93YXou7jzBfL6snINFA0remhLCNgiyQj7Z6x/IbA hVFW9i99NJcWGs3qXcQEbyT2sCfCxBpR7aLl9j6MU2mS6JIbiOa41G6ufTpxSQW6rs6Sf7rhjP2o 174oTGX+7f5H9WKuj+yfm36ziqhPp8UlwLmNjBc8fTM8YTkyVrxPNWBFcVY9quh3sV6b+XXryOOS SNIVjiMjR/FGzKoiHCj+lT44yu+9cVdDGuo3bpY6zfi/hRJRLPZxonE81X4ntYlfZ3+ENUVrTpim 0Z/hGB9Qi1C4vri4uonjkDOtsKmPoPghVgCNjQ/wwULtl4kuHhvZPsLBTg+z93/ERiqCXQNLikWW 1hW1uFJYXESr6m4IIJYNUUPQ4AAGc8kpczaU695fummfUW1q5gjSERBUjLsrkSIkii39NiV9fYUP vthYW6Nk1CRbKLW9Sacr60ZktIo0rCykFna0Rft0+Hlvv74qjpfL91c2voXmr3cysB6qhLVFJFDU Ug5DcV64qnOKqcXb/UX+OKqd5YW136ZlUerCweCYAF42BBqpYGnTFUo1rQbm4kgvG1aeOGyDPLHw Dc1DJJT9wIn2MQ6fRitoG1MUsFvpkmu6pNJOn1cu1oqhiIzyLO9oeNQOrv8ASScVTYaJqMlu0V1r V1LzDLKFjtEUq1RT+4LDb3xVM7WBbe2it1YssKLGrNTkQopU0AFdvDFV0f2T82/WcVXYq7FXYq7F XYq7FXYqkup+YDp+m3Uxs7gSQRsLb900qTSLGzino+oyr8O7PxxVi1p56vodQkijj+tC7uC0UUgu KiP0iDxCLcMgEirsqN9o7gDFVJfP19+kHugpeUxCGOwKzKpdZmJAQFjzdBs3EttQL1xVffeeb39I JLIptntvXAtaThG+FfSLqxgL/Ef2kXjXviqjc+brp7iOWeOawkaSCYJzvSDFXnKfTl+rim3Dh6dO vx4KZGVhluka3qt7ZQzXWn0iuUrFPbuGAFSC0qPw4DoV4s9d/DcsUdLqyW0skc9tcrCjUFykRljZ mOwAi5yd+pWnv0qqwaz8/wB/9cFx6fqPerADZss/FCkbNLwVfWZDvT4UblQGgxVu78/6ktyLkxel Jbx3UZsys4RpA9IqhvTLfYA5FVI5H4emKqupeerpr2ATIbOOCWOYqq3K84yrk8uYtmcAANwKAbda VxVCah5x1C4iUyRS2cs4DK8cl4iu0UgUiOoiRVZBX4OYNftd8FMjLamTad5wnkhhuryCJdPuZ/q1 pdrKsbO7sBHWKUhQG5U+GVjy2pvsk0sYGXIWms+sRWcywy287qyCQzQp6oAHFfsIWlO5X7KHr86F iwi/85XM176h9WNxG0S2afWYqyGb4VKo4PMIp+LjUnbgcUg0bXah531COeP1ENqLB2PpqblxIn1c NHzaQW7Scmap5KtKdW3qqTZX65521KWKCBoDaGTjIHjN1GW4OoZfUKQEBiStFDDuGrihde+f7+fS 3Ah+rx3DTwxX0aXCnbn6bCqqiEgKfhkk3rttiqc+X/NGp3sLOth9atYSkZkhciXmVoy8JTRuLjdj IDTemKp5c35tPTJtp542QGR4FD+mF3JZahzt0Cgk+FaYqwrXfOUj3wFZbaK2eYCPjcQM6mMLH6g5 wk8nYHfiV261xVTu/OGoiKC0kjks1Q28yyBrp5GUyP6gd5UgbqvHhQih+14ABlKVm12pefdSn0eO sH1YXaEC7jFypB4FwwYoiJQUNVkk8DhYqsP5g3q2Tf6KDBA8ULXXG5YgMiBuVRxYhiw5GYNsDx3x VFeVvNGrXEC26W/6QS1hU3UvNhPy5dufISMykMK8O4GKsytnLwq7I0ZapMbU5KSa0PEkVHscVVMV dirsVdiqGuLVp5driWEKo2iYAGpPWoOKpA01jNfcU8xXVuI4kmlhf00X02CsG5yxClQ69/xxVZZa pcXGtW8MU0y2TNJwklLP9YETceUTRp6XDau77gjvirJh6bQ+nIpZSvF1KkggihB2xVLP0FZQagL6 wiht7g8+bNAz1LqiVWjJw+GOm2Kpd9T87pqMl0l5aOruqek0cip6CMxHwhGflRz/ALs8N+xVRc6+ a/WS4jWyeSNGjCH11BDshJrxbpwxVRm0K6v9ThvNSgtHMS8OUaSFqerHJuHU1/uuP04qnwWGOAxQ x8EAIVFQgCvgAMVXqwAIINansfE+2KpU+gacl+l/aQQwXKp6VWgLrxDBlKqCnFge4xVAXdl50bVG uoL21MMdEtojG8Y4O8TS+oOErHaNqcXHXtiqJul81v6UiLZNJA/NEPrqCSrIani3Zz2xVD3uiajq d7ZXGow2bfVJFaqLKW48gzL8SkH7OKU/jgs4goigVAlSgWOlK9aUHfFbKklnaG5W6khrcooVJCpJ A49vDqcFDmyGSQHDeyAn8saQ13HeQwRpdRO7hniLofVqXqgKCtW69e3TCwQ2r2Xm+e8SWzvLZYYI 2eFDE8ZNwUkQcyy3HwfGpNN9sVV7lPNM0AQ/UiyskgoJwC0bhwOhoCVxVD6lpmtatZfVtQhsSrgV KrMzIagngzL4r4Yqn8ENpbgiCFYg27BI+IJ96DFW4zxpUH7C9j74qleoeW9IvJ/rLQL9aEqzrI0Z ZS6gD41HHkOK0oT8t8VUNVsfMk72kdnd28VpG6vcIsLRuRG6OgQsLhR9kjpirvS83Tab9WumsjNJ D6c0iLP9ploxHwj9Q+WKtXNt5iv7Nre+gsGSQMrJSZ6VBWqll60PhiqZ6Xp9pYWkMMUKJJHEkbvH HTlxUDrSp+nFUZH9nw3PXbucVXYq7FXYq7FUJeLqLOPqUkMZ29QzI0m29KBXjxVjvlqHRp9VaeGb 1ruSxSG8t2VuPwLGjUDChHwgYqmEHlv6pq0d5FL6tuGkYRzVLQ+q1eFvwKIqb7hlJ98VTuQkRsQa GhofoxVKb2G4s7Zp5dRl4gqigJyJeRgiLRQx+J2A6Yqktj5iikhWS+1NrRpTJ9XCh5VkSJgjMH9N B1Ybe++KoWy12Z9Una51mSKw5elAOPKrsvqIaegjJVFfZ26g9euKpjq2p3Fm8cdtfNcyu0aFTyQV m/uwrLFIGJFTx60xVG6dcR6gjy2WrSTrDQyDhxod9jyA8CMVR8ljeSyO630kaljRABQAGmKseh8w 2z3MiyapJHahYHgueDfH66lgGQxgx7Cor1BFMVUp/MdsZgkOsSfVGhllkvVVuSemnIlYzG3P4fir 02NcVbTWBELeKHWpdQklnWKSVo/T4B+VKcIqM3wUCDc18MVX3fmO0SzknstWe7ljUOYuLRgKXCVd ijcNzT4up2xVMbG5hvriS1t9Xka5h5erCYyrLxIVqh1XoSMVTGS0u525pePEKKOCgEV4g1xVjv8A iCNb2aOXUnjsooxILsq9SC/pklPTHFQ+3KvH3xVfJr1uJ4Fh1SWa3kMwmnVG+AwJzbioQ+pT9rif h74qpXfmOERBtO1N75/VjhYUaNQ0u6/H6bgnj8VBvTpiq678y2SWs0lpq73M8UZlEJR4wVVlQ8nM bBDybj8XfbFVaTW7ROcX6WlN6lF+q+k4b1GVWVfsV3DrvToa4qg9M1uL0TPfeYJVkmVZVtfTD8FZ nUBHSJDJvGRsDQimKolNftUWY3urPa+nLNGlVY1EJHItWNeLUNSm5AxVpdehF1Mk2pSQ2qCL0rgo 9WaZC6qyGMcCQPhqfi7Yqs/xFbm4jK6nK2nPbm4N7wcUHP0wfT9OvAk/brTFV0vmG29WEW+qSzxP I8c8nB1KenGJGKr6Z9SgIqB0qMVTfTJUvFFzaao11DHIquOIAJPFqGoB+ywxVOcVdirsVdirsVSH zPB5mlMA0O5+rEV9dgsbV/lH7xJR49BirHI9D/MKGUyW+ocW4lKmO1rQUoAfq/woKfZHfw7qpjoM Pn0amjavcs9iN3jKwb1rQVijRvhIG9fv7KsvkBMbAdSDiqR6n5U0S+tDa+gYoS/qNCnrJDI3NH/e xxNGJP7sfaxVI7PyDb2149wtnbxK0bw8LOW8syVZ2+2UMnKqca++KoHQfLFzpeqW17H5Xhiki5+m 8MxUxgxelRmMjCTkCeqd+1N1Vd/J66hfpNcaMsUYAQteSS3bLxYCqlZlKj0+XEDvT6FWV2uh6ZbW Vpbi3WQ2KsLVijngWNTx5lyNwO+Kqk+kadPK8zxNHcuQGuIS8cpVWqBzjo1NvHFWIR/l1c297btF depZ26rxQmaGQsAVNHXmVop+EjeuKoLU/JmryaldPFZTPazOpZVuvUMvqNGrn1JgjLxjD1qrfTiq M1DytczzfWU0++DkASgXwkZgqsF4tMH3qR1NNsVWXXk6+uZLRILaayjjokskk5uPgZuTUXkiqKmv FAB/BVlWkeXLCxsI7SYfXPSmNwkkkZqJD+1TffFURc6Rp90xkuImW44oi3EReOVVWjUWSMq671rQ 4qxKf8ueN0v1cWzW4+NpWgMdyxJfmpmVXfcOPirX8MVQeseUNTe9meDRoriIsGMrvHcTOGADUnuU WVSDvvX22OKo2byn6pV20V5JB6Y/0maG7CqhoQhuI5CvwfDQUHTbFWpPKKm1ihXRpH+rRvHbJcTw zxIXC7iGWN41/ux9hR38cVXDylCIXhGizCGSVZ2gFxH6HNaU/wBH4eh2/wB91xVTt/Kn1eB4Rokw N0kcdz9XuIoIiYwfiaKNY0YEnoytiq+38pJExf8AQrxufUWttNFakq7GgJt44mPwHjuaYqth8nok ok/QjK8Ugkhlikt4ZgVQLUzRRJJXlVqhsVWyeTIXda6IxQbs7SW7T8g4dCJzEZfhoRXlX3xVuTyR Lf6hK1zaJFb3AIlkuo476YARLGOM0hMgpw27bnFWYw6XYxm1laFZLy1jSGO5KEMFXY0J6dTiqYYq 7FXYq7FXYq7FUi8zSaMkYXUrx7UygLAkU4t5HPMD4CWToWFd+nXbFWB2L2Wo+rDb6hqbAF0RVluH nYLUrQRTitU3LgAA7dcVZf5asorNpLeO9nuhEroTOLsvVKxkmS4Z6/Eh779cVSXzfqflqGBVj1C5 eaJ4jW2umA+KT4ldIpoZGIETbeOx6kYqraDoclzdtd21/eOWSRVM73MloAknAqn79o2bklQ+5odj TFWRXcCRJbpPDc3PBSry252XiTVmUvy+QHI4qxHU/NljHfQ2llbykyyshlnNwvFUYo5aMojVU0Yg VPHtXbFUg1zzHNFCl5FbXjTTtCq2qyXcR9ObkqyKvqLH1Tj9r7R79cVR175rk0zTLmWG1mufqqSN Dz+tUn9Jwr8JXLbLzqS1KD32xVkmi6nHqlol1HpN6VJVJkjnVmjd41k4sJDD9nnQkbfMYqm+uT6L bQxrf3bQM8SRQxLOsLuGbhVS7JuC4qa7YqwbSZLPUvUFle6k4jed1jSW5mkZFkAAIFy/QSruKCoI HTjir0Gx0ee1V457gyq6CNCpkDAVAJJd5DX3xVX/AEFa/wC/Z/8AkYcVSbUpreziYC3vfrJkWOCO QylHDSKhf1LdLmg+Ku4r7YqxuykW6aPhbalMs4Z43t7++dRw4FhVoI1oC/HYncfLFUZpcmuRPJBc WFzJFCaKQ9yZCW+IcnkDePviqFXzXeNqItRod2YDbfXPrP1icD0+PL7DW6t1+Hkfhr+1TfFWYwxR RWEj3/qWEZIM/rTqQgXlQ+oDShxVjOr3Ogm+UWtxqFyJI5HleGe+SNPSqBwMUUkZ5COQ1rvx2riq M8r2dtLaPNp8tzdwGWs091eXLyK3BSeKTxIeNOirRa+G+Ko7XrqKxivr2WyvpY7VJJpJonjWHiiM 5O7hqLxoaKT4A4qwG2/NLS9R1Kay0qRJJFYiBZJZ4xIqBy7CSVYUAHp1+Pj17nFVjfmRdjUmtVsn a1WD1jfBpzFz9EzCLYGpNOPIbd+m+KpJrPnez0zUbWwubi5jubiYfWpI9RvZVtkdYgkvwl45FKS1 4JXcdOVMVTHU/wAyLvQtDW5ltnuWX0PRVp5TJLFcRPKkxelACsdd6Hce4CqN1j8xpNLsJ72eH9yk jwWx5zAzTxlOUQH2lIWQGrDj74qjvJvnQ+Zo7eeEpFGziK6h5XTTRysszKgCoVPw25blXjT32xV6 viqV3PmG1tY1kuYZoI2IVXkCICxFQAWcb7YqhLjzXPDIyDQdVlINFaOGEq29BQmUUr7098VRFt5o 0+6laG2V55VBLRxmN2ABoSQrk9TiqreTRTxqJLW4cOASEUBlKtUbhgVYMtdjiqRWuoaVZXLDTdK1 G6PN3keApNGs1OL8uc1Fkoe4rTFUX/i+EcDeabqFlC/Sa7SCFAWVqCpkry+E7Uriq+90rRdTmM17 ps7SIoYOw4V9ImRQOLCrciSMVUtO8z+W4IVtLGX93GGZYkkgYirVY/bJ+02KqGs63p8TQXpj1KUl TEsFpNHGrLI4JlZTLErcOJ3r4gDFVHTbry5PNPOdNuvVVS8jXXoy1Xqz7yyjbu2Ko+XVfLkxUy2y yFVCKXS3air0UVPQYqmkNhpl5ZxVtUMFG9KKSKIhQx3oKEDl12xVE29lb2ylLdFhRjyZY1RQTSlS AB4YqsvdMtL2AwXK+pEQoK9PsMGU1G4+IA7YqhdN8taPpkxmsYfRkYOCwYttI4kf7VftOKnFUVfz La2c107qFgQuWmdY4wF+Il3pRV23btirEvMPnHzHawodNt9PeR0dqfWWn+JeNFYIkfGtT3xVKUHn 65sA17YrMsPo+tbubsesXkofgLPvGtGPHYH22CqB0Cy/MC3tpSdJtrW6T6zOzQ/W4eUYcOsQqzci 5rQDelNwQaqoyzm/My81KS3uLNLe39elpMsuoR/uxGz1ldpGX+VfsUr2xVALYedW1mG4bQ7VLRYW BpHeNL6jcSfi5qKh1qPau/fFXpum2F1awtDdXJvm5cvUYEHgQRxPJnrTFWJXn5V2lzqc+oG7dJJ2 nYqIxsZ3LA19QH4VYr4HwxVltpomlWSKLOxSFkXjGwC1Hw8epJPTFVK4OqXMd5ZzaZG9nIXhHO4p 6sTrueKo3GvIila4qlI8i6SgW5stOhsdSjnSaOXk06DgQDsWT7SAqfn9OKqV3+XXl97iWSPSYnWa 3EBrM8fE1Ysyr+9FTyFK9KYqgL78tRe3L3k5eS+d2mMzywEGRkKVZRarUBT0xVFWX5fWUcHG9sEv 5zwBuJbllYLEqokaCONAqKE2GKqN1+XFvPHNbrC0FhK7yCxjni9NHkRUkZGe2eQcuAP2uvSmKovQ /JJ0iaFrZX9KJuXptNEwJWKSJSeNvGzELK37WKsxxVJ9IVbfThbRD1ZWnunRW3oGuZGLMfAV+nFV XUrP/R7ZjIxeO7glZv52MgSh8BRumKq0cMVzdSsygw27BI0/ZZwAzOexoTQeBBxVQvYYjqGn3Dtx 9CaTcmi0aGapPbamKouNWncSkFIAeUcfQsf53/gPpPsql9tAkWlG2WkjyXs4i5gOQzXcj8gGqCYx VhXwxVMfq8MEXGJaAkliSSWPEirMakn3OKpb5dtb1LHSjMsax29isIKOzMxZYqGhRaf3fjiqirzx m8aFpEf1I6tCgkcIb6YPReMn7BNfh2xVbO87remSSWRFtrsQtPGIm4enAfs8I6jly3piqZDUbqnq m3jFv65g5CUl/wC+9ENx4U6705YqoWs1zBo1nJHJBFFHb855JyQqqqg15AgAAVqTiqX6frmozXZi fWdFuPUJFvBblvU7UBPrPyPXooxVH3mrS2hAub2wtSdqXDmMkjqV5MNsVSu68wa0xeTTtT0a4gjA 5opeSRSzKi14zKtCzdTSmKoQax5vubuKzml0g290rxlWQycm4M55BbpvhCI37Jr7YquutQ8yxFH/ AEp5cjioeZlSUfFyFAD64H2eX008N1Udp+s3EgZJ9U0WaYGoW3Y7Lt1BkY9cVTIXU31Uy+tZEBgP WFfSCmvU161xVCz3OsTIE0250p7o7qkgdwwANfsOD9O+KscTzB52+pGdrjRGHps6yrCQCCAyN6f1 0sKCtVqSfEdMVZHa3ms20Qi1K90oXq09X0g8K9K/YeR2Hj1xVHNeXYtBMZ7VRX4piW9LiaBaHl1q 3jiqHa81i4Ux2F5pz3NOSg85BxBoSVRwae+KpMNa81SXghh1ry64PECECYylvi59J/8AVpt4+Oyq c/pDUIgI7m905Z1AEoqy/F3+FnJGKpnZyvLbJI7I7MCecW6EV2K1J2piqtirsVdirsVdirH7eAS2 /wBZ0y0c+rLMLhZrue3IeOVkJCp6oozBiOm2KqrxWCWbWtytyfXuokmC3E8hSdgki8Ji6usanj9m g9t8VUILSR5xatazRwwsDztL+4PEg/Zfl6K0ofiAYn2xVHagljNdWdrdRyuZJmaBo2dFR40kNXZG TbjWg337bVCrcljAhjlma4QxzoIlS6nYPVwqc1LAEb1ZTUfPFUJ6WnvGdQt4pg73EsTJJcXEZBWV klMUaGT7TIW4qo5d8VTCytkjicKtxH6sjMRcytM26U+Hk8vFf8mo+WKoaXyto8lxHP8AV0Ro+PGO PkkfwmorGrBD9IxVWu9B026tzA8ESKRxDRJ6bqOXL4WUgj4iTirVn5f020jkjjgjcSh0kaVfUYpJ TlGSxJ4Gg+HpiqFXyX5dW/N8LGH1i3qceH7vmQatwrxqa16dd+uKqvmKJIvLWpRoAqJYXIVVFAB6 ZoAB0AxVV8w/7wRf8xlj/wBRkOKqEB/52mQf8uh/5PYqgfMNP01Fvvxsf+6lDiqK82f3Nl/xln/6 gLnFUzvP96LH/jO3/JiXFXSf8dS3/wCME+/+zixVJdbMQhvDNx9H9JWAk5048TJbg8q7UpiqrcHR v0po/wBRNsJTdPyEHDkV+qT9eHatMVUR/wCS2/7c3/YriqJi/SP6S1Tj9Z9L6ynpej9V48fq0Nf7 3468q4qgJmI8v1vqAfpNRL63D7B1RAOfH4Ps9e2Ko6A6T/iW0Fgbev1K79QQcK/3ttSvDFUFB/yi 1n3/AN6tv+eNxiqMsP0l6c1frdPrV1x9L6pw4/WJONPU+L7PjiqM8tev/h7TfXr6/wBWi9WvGvPg OVePw9fDbFUyxV2KuxV2KuxVI7XV47aJrYQztOJZSW9CX0gHlZlbmFowof2K4qsvLuJ9Gk+pmZpU uoUlkaCVZOZnjMkqxsgZ1UNyqo47U7Yqjf0zpdrFGgE6pUIgW3uG3PStEP3nFVuo3UVtJazyCRo0 nJb0o5JmAMcy14xK7UqRvTFVNdXtZbqB50miBfhbRNBMTzYcecjBCq7VA3oBufZVT068iimuWuUl DJPOluBDKw9NpS3IEKR8RPXwAxVMrXULa8JMHP8AdyFGEkckRqF7CRULDfqNsVRWKuxV2KuxVB6j Z3N0oiRrc20iPHdwXMJmWRHAHGnNBSlQQQa4qleleStGsZIbg2tu15FuJFiIXkCCHVXd+LCmxriq tq3l838pZ0sZFKhQ1zaGaRakl+L+olAR022O+/TFW4/KukxWoigs7SGYrGrzJbr8XpOsgDb8mXmg NC304qhv0JY2NzFdXT2qgSNItIGB5NG8ZClpJOK8ZDsBirWoXHkiG1efUf0fHaRfE8txEixpX4QS z7DrTFVmnw+SI4lls0sXUhgJ1iVywLVYc9ydx44qjLk6c9iRbSWkcHqLzWSAvESKmnBWT4u4Ptiq EtLzQdNUz3t3YpIZCYpxEYePIH4QXdz9nbY4qllivlO+t2Wx1LTrq2WIWzNBEZAEZBT7MpjDlCDX j3rirIJYNCvS924hkMLB5ZQhFTTiOf8ANsKb4qpXdzpklusEE9osfPk8U0BkjI+0KIGSjBwGrv8A LviqhZXugaVH611eWUcpZkW5EZi+FqHhWR3P7PTlTbptiqhYDyBLdyXtibCWaM+m7QorqjcVanFa qrcSD40PviqOn/w1PMs0hgMisWJCEci3UvT7X04qm1ibc2sf1bj6ABEYQcVABpQDsB0xVXxV2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpfrqTPpl0IZ3t5BBIwljoHFACaEg0r4jc YqkepRa6fLZun1UkSwxl0WFFNJeINH6g/FscVRv+LtIglktmQQyQyPEYvWswfgcrUKJ6gNTkK0IH 2gDUYqr+Y55f0BqFxZXBhlW0klt7mPi1CsbsrLUMp6Yqw06b57k8lLrDebXIOni99A2NsTT0PVCe rTlyHTn174qj/Lfn1WsrGK6syZXhi+s3ELB2ZjErFyiqvjUiu2Ksxgu4bkO8TBgrBGAZWoVcjfiW HvirFfLOgtq2kx6je6nqRuZZ7iQL9aZRHSaSMKipsvFdsVRNrqNpoHl3VLrVp7m/s9PvJV9SUNdT 8GkUIgCjk/H1KDatMVRX+LIUhP1fR9S5UqiGzmQE02Bopp92KtXfniytLaW5uNN1RIIVLyv9Rnai jcmignbFU9tJknto546+nKOaVFDRtxtiqrirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVQupWk11ayQxSmBpFKmQAEgEiooQeoFP1YqlUugavLZCyfUgbYKqCP0VGyU4io37eOKp0Y VZuRijLeJ6/qxVC6vp73+nXNl6htxdRNAZYwHZQ6spIDCn7WKsJXyJ5yVG04eZnGlG1Wx3tLfn9X VCvAD0uXRuNede+KstsPLmi2tjbWrWsc7W8McJnkhHN/SQIGbbqQuKpmQKkqKCqdqftYqwuGO304 zWunecILe1SaVltpXtJGjd3LSIWZaikhOx6Yq5rXydf6Bc6VeeYY5J55nluL/wBa3WZZndZH9Hmn DhtxHwEUxVMJJJpraW5sPN6ta2an67cSfUZEjovKsjpEiptua9t8VQc91pV3p11a3/ndfRmiIllh fT4lELghvieKRegNd9hirLdPSFLKFIH9SFVAieobko2U1GxqMVRGKuxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVZMoaMqSQGIBIJB3I6EYqw2x8uatodibaOysN QX1ppFlEJ9YrJIXBlLt8TDlQtXfFVYprgFf0DaHelBEnX/g8VSnXdNvLLy15omvrG3todRVJJfRj iSFYoo0jb1/3rF2YKRy40AoCNqlVU1Ffy5/wTdKRo/P9GyDj/ota+gdsVZnoQQaLYiOnD0I+HHpT iKUpiqOxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KtPx4/ F026V8dumKrP3f8Al/8AD4q793/l/wDD4qoX/wCjfqU/6Q4/UeDfWfrFfS9Onxc+fw8ada4qlUv+ BPqT+r+j/qPpHny9L0vS471r8PDj9FMVTy29D0E+r09Gn7vj0p7e2KqmKuxV2KuxV//Z proof:pdf uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:01801174072068118DBB9C4385CA24A4 xmp.iid:01801174072068118DBB9C4385CA24A4 converted from application/pdf to <unknown> saved xmp.iid:D47F11740720681191099C3B601C4548 2008-04-17T14:19:21+05:30 Adobe Illustrator CS4 / converted from application/pdf to <unknown> converted from application/pdf to <unknown> saved xmp.iid:FD7F11740720681197C1BF14D1759E83 2008-05-16T17:01:20-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F117407206811BC18AC99CBA78E83 2008-05-19T18:10:15-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:FB7F117407206811B628E3BF27C8C41B 2008-05-22T14:26:44-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:08C3BD25102DDD1181B594070CEB88D9 2008-05-28T16:51:46-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F77F11740720681192B0DFFC927805D7 2008-05-30T21:26:38-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F87F11740720681192B0DFFC927805D7 2008-05-30T21:27-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F97F1174072068119098B097FDA39BEF 2008-06-02T13:26:10-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F1174072068118DBB9A084B3843B2 2011-06-09T11:06:05-03:00 Adobe Illustrator CS4 / saved xmp.iid:F87F1174072068118DBB9A084B3843B2 2011-06-09T15:15:58-03:00 Adobe Illustrator CS4 / saved xmp.iid:7FF2245A3B2068118DBB9A084B3843B2 2011-06-09T17:21:50-03:00 Adobe Illustrator CS4 / saved xmp.iid:01801174072068118DBB9C4385CA24A4 2011-07-07T15:53:09-03:00 Adobe Illustrator CS4 / uuid:190090dd-b95e-a142-9c53-7c955168a3d0 xmp.did:7FF2245A3B2068118DBB9A084B3843B2 uuid:65E6390686CF11DBA6E2D887CEACB407 proof:pdf Web 1 False False 549.002930 356.940430 Pixels Arial-BoldMT Arial Bold Open Type Version 5.01.2x False Arial Bold.ttf ArialMT Arial Regular Open Type Version 5.01.2x False Arial.ttf Cyan Magenta Yellow Black Default Swatch Group 0 White RGB PROCESS 255 255 255 Black RGB PROCESS 0 0 0 RGB Red RGB PROCESS 255 0 0 RGB Yellow RGB PROCESS 255 255 0 RGB Green RGB PROCESS 0 255 0 RGB Cyan RGB PROCESS 0 255 255 RGB Blue RGB PROCESS 0 0 255 RGB Magenta RGB PROCESS 255 0 255 R=193 G=39 B=45 RGB PROCESS 193 39 45 R=237 G=28 B=36 RGB PROCESS 237 28 36 R=241 G=90 B=36 RGB PROCESS 241 90 36 R=247 G=147 B=30 RGB PROCESS 247 147 30 R=251 G=176 B=59 RGB PROCESS 251 176 59 R=252 G=238 B=33 RGB PROCESS 252 238 33 R=217 G=224 B=33 RGB PROCESS 217 224 33 R=140 G=198 B=63 RGB PROCESS 140 198 63 R=57 G=181 B=74 RGB PROCESS 57 181 74 R=0 G=146 B=69 RGB PROCESS 0 146 69 R=0 G=104 B=55 RGB PROCESS 0 104 55 R=34 G=181 B=115 RGB PROCESS 34 181 115 R=0 G=169 B=157 RGB PROCESS 0 169 157 R=41 G=171 B=226 RGB PROCESS 41 171 226 R=0 G=113 B=188 RGB PROCESS 0 113 188 R=46 G=49 B=146 RGB PROCESS 46 49 146 R=27 G=20 B=100 RGB PROCESS 27 20 100 R=102 G=45 B=145 RGB PROCESS 102 45 145 R=147 G=39 B=143 RGB PROCESS 147 39 143 R=158 G=0 B=93 RGB PROCESS 158 0 93 R=212 G=20 B=90 RGB PROCESS 212 20 90 R=237 G=30 B=121 RGB PROCESS 237 30 121 R=199 G=178 B=153 RGB PROCESS 199 178 153 R=153 G=134 B=117 RGB PROCESS 153 134 117 R=115 G=99 B=87 RGB PROCESS 115 99 87 R=83 G=71 B=65 RGB PROCESS 83 71 65 R=198 G=156 B=109 RGB PROCESS 198 156 109 R=166 G=124 B=82 RGB PROCESS 166 124 82 R=140 G=98 B=57 RGB PROCESS 140 98 57 R=117 G=76 B=36 RGB PROCESS 117 76 36 R=96 G=56 B=19 RGB PROCESS 96 56 19 R=66 G=33 B=11 RGB PROCESS 66 33 11 Grays 1 R=0 G=0 B=0 RGB PROCESS 0 0 0 R=26 G=26 B=26 RGB PROCESS 26 26 26 R=51 G=51 B=51 RGB PROCESS 51 51 51 R=77 G=77 B=77 RGB PROCESS 77 77 77 R=102 G=102 B=102 RGB PROCESS 102 102 102 R=128 G=128 B=128 RGB PROCESS 128 128 128 R=153 G=153 B=153 RGB PROCESS 153 153 153 R=179 G=179 B=179 RGB PROCESS 179 179 179 R=204 G=204 B=204 RGB PROCESS 204 204 204 R=230 G=230 B=230 RGB PROCESS 230 230 230 R=242 G=242 B=242 RGB PROCESS 242 242 242 Web Color Group 1 R=63 G=169 B=245 RGB PROCESS 63 169 245 R=122 G=201 B=67 RGB PROCESS 122 201 67 R=255 G=147 B=30 RGB PROCESS 255 147 30 R=255 G=29 B=37 RGB PROCESS 255 29 37 R=255 G=123 B=172 RGB PROCESS 255 123 172 R=189 G=204 B=212 RGB PROCESS 189 204 212 Adobe PDF library 9.00 % &&end XMP packet marker&& [{ai_metadata_stream_123} <> /PUT AI11_PDFMark5 [/Document 1 dict begin /Metadata {ai_metadata_stream_123} def currentdict end /BDC AI11_PDFMark5 %ADOEndClientInjection: PageSetup End "AI11EPS" %%EndPageSetup 1 -1 scale 0 -1694.5 translate pgsv [1 0 0 1 0 0 ]ct gsave np gsave 0 0 mo 0 1694.5 li 1121 1694.5 li 1121 0 li cp clp [1 0 0 1 0 0 ]ct 1108.92 1682.78 mo 12.1719 1682.78 li 12.1719 40.4468 li 1108.92 40.4468 li 1108.92 1682.78 li cp false sop /0 [/DeviceCMYK] /CSA add_res 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 1 lw 0 lc 0 lj 4 ml [] 0 dsh true sadj 1108.92 1682.78 mo 12.1719 1682.78 li 12.1719 40.4468 li 1108.92 40.4468 li 1108.92 1682.78 li cp .193668 .150057 .155337 3.0518e-05 cmyk @ 1108.92 40.7837 mo 12.1738 40.7837 li 12.1738 11.6387 li 1108.92 11.6387 li 1108.92 40.7837 li cp f 1108.92 40.7837 mo 12.1738 40.7837 li 12.1738 11.6387 li 1108.92 11.6387 li 1108.92 40.7837 li cp @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT Initial %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. 12 dict dup begin /FontType 1 def /FontName /ArialMT def /FontInfo 5 dict dup begin /ItalicAngle 0 def /FSType 8 def end def /PaintType 0 def /FontMatrix [0.001 0 0 0.001 0 0] def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 65 /A put dup 67 /C put dup 69 /E put dup 70 /F put dup 72 /H put dup 73 /I put dup 76 /L put dup 78 /N put dup 79 /O put dup 82 /R put dup 83 /S put dup 84 /T put dup 86 /V put dup 95 /underscore put def /FontBBox {-665 -325 2000 1006} def end systemdict begin dup /Private 7 dict dup begin /|- {def} def /| {put} def /BlueValues [0 0] def /password 5839 def /MinFeature {16 16} def /OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup /strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def /Subrs 5 array dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> | dup 1 <1C60D8A8C9C3D06D9E> | dup 2 <1C60D8A8C9C202D79A> | dup 3 <1C60D8A849> | dup 4 <1C60D8A8CC3674F41144B13B77> | def put dup /CharStrings 15 dict dup begin /.notdef <1C60D8A8C9B6E3FA5101D97F0BCF44F7161DEB1E2A84766DD477E7 C8A936AA182F5809A9> |- /A <1C60D8A8C9B64EDFED26B9E21A4F64848088903AC9891CF791BDBC4AB29A CC8B3E8D13924A7DDE35F09AC5F4A8229C87124C732743268600EF8D4582208B D16D82> |- /C <1C60D8A8C9B6079F6D1C46AC2732DFBDC9143C94793529C1940296210AAD 6EE09C39CFC4DAB7C5F3BA33C9E10838E0BC6FC9318A4E57F309EE20438B434C 69AE73A499211EBA75E22A57C1581D93869428818DC700A28C027571D7047CDF A8B017AACDE96DE4B2579EFD2C826A30F6EBDDC52701A22CDD669ADC60B66F32 261A1F55EDEF9802FD4511E0EF130772EDFD708A4113A1EDB1E717E0FA7D3148 51DE59> |- /E <1C60D8A8C9B64EDFFB83C6241DB110BEE5AB2FAD9D94B39ED5E81E7411B6 6E9361DDE78FC667AB91EF9824> |- /F <1C60D8A8C9B7D8BE1661AF70E1029B586475C590C02056C6BE2BB9C2329F 7F6ED1937D1E8A10> |- /H <1C60D8A8C9B6079F62EE7568E8B09CBA01F57B4ACE6DA24AC6EA79287DF3 1270F7DC42D147A6FAB1DABB6C> |- /I <1C60D8A8C9B854D0F463D3892D665712D6B7D6A81E> |- /L <1C60D8A8C9B7EF3224EC6E192BD0FEC2445DA87B99CF0E03A72A> |- /N <1C60D8A8C9B6079F629170873C67115641D0B6890161EC48F71E8D2106F3 AC927984C1E464F121F968> |- /O <1C60D8A8C9B6FF86E621E1FAD9CC02A23AF5AAF7451327A9277DAE8170AA C8E603A02E3EEFF561DDADE9FD6F6F16B77EE709DD797791A73F1C532C58482F 9C51E1EAE7EA6E4D820E6AA1026E7BE345B1C97C5D9EBBEF4840C4188F96B538 0E7625249BBAD172254404F6F1CB17CABA1F131B17AAAB56C5D3B94E3AC2C2E9 F0A0D079C435D0249DF6C47E18FCF00E7FFE3C519BB35DF797EF47286BDCA762 289BE1> |- /R <1C60D8A8C9B6079F62E89B521DCDBE3DC5497B8DD99916239C0DFA5ED4F6 32B33575F4260343AF5DB7D477D12055F49C5E99C0AC176EAD42723223937F2B A15ECAD7751CB6A136B700EE485E38E7CDB87D9465C90BB8E29B04FDDA42609F BC3833B9FB5105619F4CC434003085F449D9FD5022725306B331FB97B31D2952 57B180DE1FD5465D256CCA19301DA97326882845130A5257BF61307ABA64C3F0 B222> |- /S <1C60D8A8C9B64EDFE3D078722A65C31955939D63AA5C8A4945719B5E558E 3B73A676CC12D1E18D93A8DC67C074D6E352D426981DE76F8EC4CFE5DAE051BE 47753A7C234C4B8D7D9F50292A61882B5500CC701F878FE626CDC6D4C322BB39 1537921D673F5AEE3EC19E36E7EFEC0F06A0EA4EAAB6BBA94DDCD11A6A564B13 B510F8C915848233B82F046D854DCD4F1639F149305DC73D3C68DF8AEB47A96A 30E55CF8BAD07FA2825BCE0D675F1CC2EBE61B07B772130E23119250F1EBF8FE 12A2098D9F09F3F21BDC41666CA4A0BB70D5F0A750B44BB93A5FBFDD2BF8DE45 0B277265536F77D5BD6F44FB72FF2E708C60107653AE44BFFB26AFF8> |- /T <1C60D8A8C9B7D8BE16D2C1CA7ED2E06F707C0E9530AE37D06FF7501A595D 3927> |- /V <1C60D8A8C9B64EDFFB759009DDECF50F0319B844741E3CEB2C0ABDDB89E7 563FC0955B866D61D9CC736D3C346A5623E20C1E4D> |- /underscore <1C60D8A8C9B7EF3224BB0E94C1F3EA8D5F87D58A9CCE> |- end put end dup /FontName get exch definefont pop end %ADOEndSubsetFont /RQJJJN+ArialMT /ArialMT findfont ct_VMDictPut /RQJJJN+ArialMT*1 [65{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /.notdef /V 8{/.notdef}rp /underscore 160{/.notdef}rp] RQJJJN+ArialMT nf RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 408.938 33.749 mo (EINA_LIST_REVERSE_FOREACH_SAFE)sh %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJN+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /U <1C60D8A8C9B6079F6D3F1E4545C3E1CC9D8EF54571065F01BE5A50957BD2 D8AD04D30C23B37CA98B969ECB5CA0D9A7C563636CB33377BB3DEB53D45DD0F3 E333CD69EA3B53D63C91B303CFDF29F59C20776D4DC576C9C080B76AB60A2167 3EFC1F645BF33D33929C60> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJN+ArialMT /Encoding get dup 85 /U put pop %ADOEndSubsetFont /RQJJJN+ArialMT*1 [65{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore 160{/.notdef}rp] RQJJJN+ArialMT nf RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 36.2153 1466.78 mo (NULL)sh RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 1032.89 1466.78 mo (NULL)sh %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJN+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /a <1C60D8A8C9B7EF32244AC11AA6BAAA29EE8C78E0E7206F4A2776A2D1EA7D C8D9A28C62ADE3B609CF5E2EE23C64D0B75055BD249ADFEC7B4224D040D883CA 6747571955349CF8AD17E94E6FE5D0259F4D55623D4DC5C3CB4AC64A7A87DBBA 48B7420D7990F3C261DB9838C5B90BF72B82C8238A1A58FE8E6137AAFE2405FD 710F7ADB95B4F576668A6DB104942C88ED8D01E4E58188F5E32A24B5B964D5CE C10C08F76C0F472E84A0FB6EB5E37AAEE233DE54C212B0A012D3E20F864B2D53 463E221F81B784B6F7BE81FBFCAE6785C2430454DD81C436E0A516BF8C8307B2 879FF86378629C5EA7E586D83C83550D2E732930F7FE3BAD07B86C81E024D177 B5D88A> |- /c <1C60D8A8C9B7A73DB9D8FD6AA4FBAF8D65C36EA1D4AADBD389F972C0EDCE 9E7F36285FA93A80D3647871D2CE5AAAA6A6A370DC54E1595FB6AAB3E389C9F7 BBBB85F787D6C418B35B940450E5E243895ECFD2205F51B2D154CFFECF34148C 344C1EF806F9AAF539FB961E3EFAF6353381E833DF7C0542FFF27122A28D3654 8FE63FC8465B1B685766E782F0> |- /g <1C60D8A8C9B7EF322851D9960AE993FFFAEAEBBA8EF734FCE7E65DE817A0 65D42CB79E2F25620DE08D5E215259551032CAAB8B674940F5B4BAAF40766D55 9B26E9A0C2464D0F504C4718579670D62707FEBC08A2CD71BF2528BA3A24A0C2 47BA70F9E817A1709BB6F7008D6C121249525DEE3A93F6DA16170F68BD3667DC 9FF533284D078DAE144C0DB42F376056761CFA5A80B4ED7D37E57EA658F3FBD8 8F779C828BF992A89F02F1397EF90BADA44FB7F676FF0295FF6F9748D66EBF57 5C72F67F4BEBB98F8AFA57505EC9> |- /i <1C60D8A8C9B88C087228DFC7C7ABCC71B868F57EDB285655227000619B17 1C8A80AB> |- /n <1C60D8A8C9B7EF322B3BE19FB964E04D2DB06D4930CA5D8F41D2EF3A285C 0BD536CD2C57668EB9E30311BF9A2872DFB44F2BF2A4683B5D66FA01BB1CCDAD E9C8A9EE2CB010715D3D6DFF0E843CF77C87A07D1DBD0482675E3CA1DAA2A520 3A8015DD09B7CE> |- /o <1C60D8A8C9B7EF32334FFE7884F6C3B903D000D9FD76C2EAE8EDCCA90A98 7875625CA0393015EF6761BE1C3B6D9E9DA4BABE1DD313B783BCBF8F620C846C 7F6361946173FB7A4A6BF94EAA0CB4947DD1974AF371F3C211E584576DE9AD79 F9DA988E9E531810E3876F3029BB1D2ED366525F30E48DD7CE3C9B66C5CC099F 518C54BB58C51D6FB6D0C8> |- /t <1C60D8A8C9B854D0F45CF665C7276F8075B54A4ECD6470F395A458CA2D06 5152075036EEECA213894C1EA0DACFBD370590F4B831924E5BDA5281442349CF AD2545E0750C3004A129C25B1EAA8DEF5DA8BF1998E80AE266F591E64CB5127F 5C42C88FB43C> |- /u <1C60D8A8C9B7EF32240889FE90FF09F794E92023A18223CCBE3629AB7F51 7D090BF7D55C0A5A8EADD9BE381137FE8504E8B2DB3D16839889E327241ACA8F 992A2BB9AD2BCE57ADB306CE2789439E67A64C32BE8669C197F5851EE3879399 0906DA8D7F8ACFF6D70790F06B02> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJN+ArialMT /Encoding get dup 97 /a put dup 99 /c put dup 103 /g put dup 105 /i put dup 110 /n put dup 111 /o put dup 116 /t put dup 117 /u put pop %ADOEndSubsetFont /RQJJJN+ArialMT*1 [65{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c 3{/.notdef}rp /g /.notdef /i 4{/.notdef}rp /n /o 4{/.notdef}rp /t /u 138{/.notdef}rp] RQJJJN+ArialMT nf RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 192.565 1487.79 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJN+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /e <1C60D8A8C9B7EF322472FA01213C7AD90A23B536C2309DD40D370E2449B0 D0FEF85A6BE8067F30686F143E75903EB6FA56935472EF47CE3F33433C2F0C8B 6FA51573AE54B2C516F6F024F8775AD6639544E339FC2A328548BCBFD58B0EEA 03B7DC3AB069F44477958BFBFAAC7196D411DF9BE0B78A86C4BC33EC5D7C3729 5284C077711C162623860AACA404F650F8D516970257> |- /p <1C60D8A8C9B7EF322B3B0CFC8FED720BC90E20B208D27DC4B8F11F10B964 70F8B4F5FABEC7F7010781F5077B417FE44279776F2304ACD6E0EA12F436330D C4B79C907B9D28468D10FF9256A7D2CA504E4498D719ACD86FCA89B33C61F556 CF1168C3F262A781155D5EBF0C47D71C584AB93037B47B18D39FE408A49672C1 E63F9E8368D19E113FC95C59A9FA4650E46F6399F2FF256844E27568BA34B9> |- /r <1C60D8A8C9B81F2C3A9694980E415F1DEF5C498473095A24D1BE11285789 4FEA85DB28AD762FB8D2F4CAC5BF8B9C18D8A2DFCF155E0751AF58898A6619AD D420F549AB7C795751D32E8EE6> |- /v <1C60D8A8C9B7A73DB99D94C9412F55B03E92C174A4755E69F97C27D9162B 37724F74F272B140D258652D102C2EAC46833C73F9> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJN+ArialMT /Encoding get dup 101 /e put dup 112 /p put dup 114 /r put dup 118 /v put pop %ADOEndSubsetFont /RQJJJN+ArialMT*1 [65{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /.notdef /e /.notdef /g /.notdef /i 4{/.notdef}rp /n /o /p /.notdef /r /.notdef /t /u /v 137{/.notdef}rp] RQJJJN+ArialMT nf RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 115.87 1494.38 mo (prev)sh .25 lw 318.451 1500.25 mo 164.004 1500.25 li 164.004 1421.5 li 318.451 1421.5 li 318.451 1500.25 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJN+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /d <1C60D8A8C9B7EF322407C6655A1B3652DB8522EB511BE6B0855A72D96214 58876CAD1FA22A00635F436A34E23EAFC09C394044ECC1389CD99E4AF1C1F6DD 52305C78619784840FC37A805B0805EF290BC9E049CF068290816CB7E74DB612 941355BCE71CBDD11DD0F9CA29531036ED13EFB9CAB613E9F630FBBC9408EF13 CE4683D92968530F64760C3DF85C7C7EA06EBA8BF859> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJN+ArialMT /Encoding get dup 100 /d put pop %ADOEndSubsetFont /RQJJJN+ArialMT*1 [65{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /.notdef /g /.notdef /i 4{/.notdef}rp /n /o /p /.notdef /r /.notdef /t /u /v 137{/.notdef}rp] RQJJJN+ArialMT nf RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 221.157 1446.69 mo (data)sh .5 lw 172.031 1478.13 mo 113.174 1478.13 li .75021 .679683 .670222 .90164 cmyk @ 113.701 1475.25 mo 106.938 1478.13 li 113.701 1481.01 li 113.701 1475.25 li cp f .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJN+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /x <1C60D8A8C9B7A73DB920A1A3B81DE7234ACAA5546B4C65820CF3C50E1629 C5A6423BAA34A2ECA8C7FE4B71726AC6704CC23AF1725AFB30D2892FC1BDDAFE AD7BE7BD65F1051699CCF4B0> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJN+ArialMT /Encoding get dup 120 /x put pop %ADOEndSubsetFont /RQJJJN+ArialMT*1 [65{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /.notdef /g /.notdef /i 4{/.notdef}rp /n /o /p /.notdef /r /.notdef /t /u /v /.notdef /x 135{/.notdef}rp] RQJJJN+ArialMT nf RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 332.585 1440.07 mo (next)sh 309.361 1445.26 mo 366.961 1445.26 li .75021 .679683 .670222 .90164 cmyk @ 366.434 1442.38 mo 373.197 1445.26 li 366.434 1448.14 li 366.434 1442.38 li cp f .25 lw 301.646 1460.88 mo 180.809 1460.88 li @ 180.809 1414.9 mo 180.809 1506.72 li @ 301.646 1414.9 mo 301.646 1506.72 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 410.047 1487.79 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 333.351 1494.38 mo (prev)sh 535.934 1500.25 mo 381.484 1500.25 li 381.484 1421.5 li 535.934 1421.5 li 535.934 1500.25 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 438.638 1446.69 mo (data)sh .5 lw 389.512 1478.13 mo 330.654 1478.13 li .75021 .679683 .670222 .90164 cmyk @ 331.182 1475.25 mo 324.418 1478.13 li 331.182 1481.01 li 331.182 1475.25 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.067 1440.07 mo (next)sh 526.844 1445.26 mo 584.441 1445.26 li .75021 .679683 .670222 .90164 cmyk @ 583.914 1442.38 mo 590.678 1445.26 li 583.914 1448.14 li 583.914 1442.38 li cp f .25 lw 519.127 1460.88 mo 398.289 1460.88 li @ 398.289 1414.9 mo 398.289 1506.72 li @ 519.129 1414.9 mo 519.129 1506.72 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 627.123 1487.79 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.427 1494.38 mo (prev)sh 753.008 1500.25 mo 598.559 1500.25 li 598.559 1421.5 li 753.008 1421.5 li 753.008 1500.25 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 655.714 1446.69 mo (data)sh .5 lw 606.588 1478.13 mo 547.73 1478.13 li .75021 .679683 .670222 .90164 cmyk @ 548.258 1475.25 mo 541.494 1478.13 li 548.258 1481.01 li 548.258 1475.25 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 767.143 1440.07 mo (next)sh 743.918 1445.26 mo 801.518 1445.26 li .75021 .679683 .670222 .90164 cmyk @ 800.99 1442.38 mo 807.754 1445.26 li 800.99 1448.14 li 800.99 1442.38 li cp f .25 lw 736.203 1460.88 mo 615.365 1460.88 li @ 615.365 1414.9 mo 615.365 1506.72 li @ 736.203 1414.9 mo 736.203 1506.72 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 843.515 1487.79 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 766.819 1494.38 mo (prev)sh 969.4 1500.25 mo 814.951 1500.25 li 814.951 1421.5 li 969.4 1421.5 li 969.4 1500.25 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 872.106 1446.69 mo (data)sh .5 lw 822.979 1478.13 mo 764.121 1478.13 li .75021 .679683 .670222 .90164 cmyk @ 764.648 1475.25 mo 757.885 1478.13 li 764.648 1481.01 li 764.648 1475.25 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 983.535 1440.07 mo (next)sh 960.311 1445.26 mo 1017.91 1445.26 li .75021 .679683 .670222 .90164 cmyk @ 1017.38 1442.38 mo 1024.15 1445.26 li 1017.38 1448.14 li 1017.38 1442.38 li cp f .25 lw 952.596 1460.88 mo 831.756 1460.88 li @ 831.756 1414.9 mo 831.756 1506.72 li @ 952.596 1414.9 mo 952.596 1506.72 li @ .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJN+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /l <1C60D8A8C9B88C08722AD20D19A90F9064193C8D82> |- /s <1C60D8A8C9B7A73DA057E90C9BFBE0FE301E99CB771FA2F05368A6342B5F 80456D91458EA2F3CAD55CDF89BFF34EEB39D7DD325B057E2BF0E9B878C214E2 BD1BD70DCABE10E0DC8EBCF7B100B55EBE94FB0F17084E21EBD279B324AEABD9 6538911D053BE9D7ECBF43F934B1033C9E405BBE31E7EDB643609C8D779046E1 B250C3CF05E6FA4787649137D90F47F85972A6603BA900DD7CB710E02662DB32 87CB26D7B7AE794611498865FC85A28083D2F6C2DEC302D47619A4A577C5B843 5558FCFE71A1BB6783AFD5F58B6D2C03593B3F2297A66A7E6D13C1E321C57F41 72D53C8FCAF4D28F2B78D3A4BF03> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJN+ArialMT /Encoding get dup 108 /l put dup 115 /s put pop %ADOEndSubsetFont /RQJJJN+ArialMT*1 [65{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /.notdef /g /.notdef /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /.notdef /x 135{/.notdef}rp] RQJJJN+ArialMT nf RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 231.562 1570.86 mo (list)sh .5 lw 318.418 1523.29 mo 318.418 1529.85 li 164.004 1529.85 li 164.004 1523.29 li .75021 .679683 .670222 .90164 cmyk @ 241.207 1555.63 mo 241.207 1540.63 li @ 244.094 1541.16 mo 241.209 1534.4 li 238.326 1541.16 li 244.094 1541.16 li cp f 186.15 1559.24 mo 186.629 1559.16 187.104 1559.12 187.57 1559.12 cv 188.023 1559.12 188.49 1559.16 188.971 1559.24 cv 188.971 1569.74 li 188.971 1570.16 188.992 1570.49 189.039 1570.74 cv 189.086 1571 189.16 1571.19 189.26 1571.33 cv 189.359 1571.47 189.49 1571.57 189.65 1571.62 cv 189.811 1571.68 190.01 1571.7 190.25 1571.7 cv 190.355 1571.7 190.473 1571.7 190.6 1571.68 cv 190.727 1571.67 190.85 1571.65 190.971 1571.62 cv 191.117 1572.17 191.189 1572.7 191.189 1573.22 cv 191.189 1573.33 191.189 1573.43 191.189 1573.51 cv 191.189 1573.6 191.176 1573.7 191.15 1573.8 cv 190.936 1573.87 190.68 1573.92 190.379 1573.94 cv 190.08 1573.97 189.803 1573.98 189.551 1573.98 cv 188.523 1573.98 187.699 1573.7 187.08 1573.13 cv 186.459 1572.57 186.15 1571.64 186.15 1570.36 cv 186.15 1559.24 li cp .13611 .942718 .883391 .0357977 cmyk f 189.32 1555.63 mo 189.32 1540.63 li .75021 .679683 .670222 .90164 cmyk @ 192.207 1541.16 mo 189.322 1534.4 li 186.439 1541.16 li 192.207 1541.16 li cp f 241.207 1410.63 mo 241.207 1395.63 li @ 244.094 1396.16 mo 241.209 1389.4 li 238.326 1396.16 li 244.094 1396.16 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 701.985 1633.58 mo (last)sh 458.572 1511.15 mo 458.572 1573.2 li .75021 .679683 .670222 .90164 cmyk @ 461.457 1572.68 mo 458.574 1579.44 li 455.691 1572.68 li 461.457 1572.68 li cp f 890.852 1543.16 mo 890.852 1618.36 li 506.631 1618.36 li @ 893.738 1543.69 mo 890.854 1536.92 li 887.971 1543.69 li 893.738 1543.69 li cp f 386.811 1599.79 mo 277.357 1599.79 li 277.357 1511.15 li @ 386.283 1596.91 mo 393.047 1599.79 li 386.283 1602.67 li 386.283 1596.91 li cp f 529.045 1599.79 mo 675.482 1599.79 li 675.482 1511.15 li @ 676.121 1599.79 mo 859.791 1599.79 li 859.791 1511.15 li @ 529.572 1596.91 mo 522.809 1599.79 li 529.572 1602.67 li 529.572 1596.91 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJN+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /space <1C60D8A8C9B854D00D> |- /four <1C60D8A8C9B7EF32245FD0373664E2B980D56E9D691EE5A95B5050BFE 023151494A4A591D0216BE411323E192BCC75A7A889FA57031D> |- /colon <1C60D8A8C9B854D0F461D1A979903F917C33CF6EDB0A437B4DDC7150 150B60E1> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJN+ArialMT /Encoding get dup 32 /space put dup 52 /four put dup 58 /colon put pop %ADOEndSubsetFont /RQJJJN+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /.notdef /g /.notdef /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /.notdef /x 135{/.notdef}rp] RQJJJN+ArialMT nf RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 412.786 1614.61 mo (count: 4)sh .25 lw 513.281 1627.02 mo 402.982 1627.02 li 402.982 1587.65 li 513.281 1587.65 li 513.281 1627.02 li cp .75021 .679683 .670222 .90164 cmyk @ 496.59 1581.09 mo 496.59 1633.58 li @ .5 lw 968.064 1523.29 mo 968.064 1529.85 li 813.648 1529.85 li 813.648 1523.29 li @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJN+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /quotedblleft <1C60D8A8C9B81F2C29FEF6324F1D6735A7858A1650FF442B8 8CE2923602889F1B3B1A969EB1BD5F20410F3DB624E1F268B8C262BA05A2218D B63CD4FCDB84E55D828665FCCF9A1929C551F51708569F37B29C42371CBCFE1A DDF91> |- /quotedblright <1C60D8A8C9B81F2C2EF77CAB1B3909C6126BCD66FE80E8DB 29C6D13E62A206E4D2C01E4CBD15B6CCAE445397315B1B2A4223B2D9E8CFF123 FD968D68396195C7E56F7437E66455F3A5CFF0D3E7C9903481BE93623D7A22F2 1FF9D67D> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJN+ArialMT /Encoding get dup 210 /quotedblleft put dup 211 /quotedblright put pop %ADOEndSubsetFont /RQJJJN+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /.notdef /g /.notdef /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /.notdef /x 89{/.notdef}rp /quotedblleft /quotedblright 44{/.notdef}rp] RQJJJN+ArialMT nf RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 217.265 1375.67 mo (\322one\323)sh 459.572 1410.63 mo 459.572 1395.63 li .75021 .679683 .670222 .90164 cmyk @ 462.457 1396.16 mo 459.574 1389.4 li 456.691 1396.16 li 462.457 1396.16 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJN+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /w <1C60D8A8C9B6079F623B1BE11B16961396A063624588AB070AF82F2F6FEA 646F6999B73C9332DE350CB17016778F548397735D109B5E72AA9A92DCB1D726 4371419D7043A117419C0FAF4C> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJN+ArialMT /Encoding get dup 119 /w put pop %ADOEndSubsetFont /RQJJJN+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /.notdef /g /.notdef /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /w /x 89{/.notdef}rp /quotedblleft /quotedblright 44{/.notdef}rp] RQJJJN+ArialMT nf RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 437.229 1375.67 mo (\322two\323)sh 675.479 1410.63 mo 675.479 1395.63 li .75021 .679683 .670222 .90164 cmyk @ 678.363 1396.16 mo 675.48 1389.4 li 672.598 1396.16 li 678.363 1396.16 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJN+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /h <1C60D8A8C9B7EF322B3BE19FB964E037672C8A279BC86F7B9BF0C8203E13 1450D56E388301CEAE43162551FBE05CABF94DC3B5DDFBB4DA55D11470EBD41A C970CEE2D2EFA88D51157B4EF5536CB673423CDDB06FA774D27105AD2B1AC2DF A8> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJN+ArialMT /Encoding get dup 104 /h put pop %ADOEndSubsetFont /RQJJJN+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /.notdef /g /h /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /w /x 89{/.notdef}rp /quotedblleft /quotedblright 44{/.notdef}rp] RQJJJN+ArialMT nf RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 648.678 1375.67 mo (\322three\323)sh 892.736 1410.63 mo 892.736 1395.63 li .75021 .679683 .670222 .90164 cmyk @ 895.621 1396.16 mo 892.738 1389.4 li 889.855 1396.16 li 895.621 1396.16 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJN+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /f <1C60D8A8C9B854D0F47057B2F13303E258FCAEE9E8BBA6E28AE872907C56 63BFD2A0F535ED0EB011F2C2A875E053FAF73E8AA16B1F99510A6812F90D61CF 3F1DA5EF558899A9AE12AAF6AF4568E0F6003B0A2FF6F33293> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJN+ArialMT /Encoding get dup 102 /f put pop %ADOEndSubsetFont /RQJJJN+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /f /g /h /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /w /x 89{/.notdef}rp /quotedblleft /quotedblright 44{/.notdef}rp] RQJJJN+ArialMT nf RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 868.671 1375.67 mo (\322four\323)sh 32.127 1517.08 mo 32.6055 1517 33.0801 1516.96 33.5469 1516.96 cv 34 1516.96 34.4668 1517 34.9473 1517.08 cv 34.9473 1527.58 li 34.9473 1528 34.9688 1528.33 35.0156 1528.58 cv 35.0625 1528.84 35.1367 1529.03 35.2363 1529.17 cv 35.3359 1529.31 35.4668 1529.41 35.627 1529.46 cv 35.7871 1529.52 35.9863 1529.54 36.2266 1529.54 cv 36.332 1529.54 36.4492 1529.54 36.5762 1529.52 cv 36.7031 1529.51 36.8262 1529.49 36.9473 1529.46 cv 37.0938 1530.01 37.166 1530.54 37.166 1531.06 cv 37.166 1531.17 37.166 1531.27 37.166 1531.35 cv 37.166 1531.44 37.1523 1531.54 37.127 1531.64 cv 36.9121 1531.71 36.6563 1531.76 36.3555 1531.78 cv 36.0566 1531.81 35.7793 1531.82 35.5273 1531.82 cv 34.5 1531.82 33.6758 1531.54 33.0566 1530.97 cv 32.4355 1530.41 32.127 1529.48 32.127 1528.2 cv 32.127 1517.08 li cp .13611 .942718 .883391 .0357977 cmyk f %ADOBeginSubsetFont: Arial-BoldMT Initial %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. 12 dict dup begin /FontType 1 def /FontName /Arial-BoldMT def /FontInfo 5 dict dup begin /ItalicAngle 0 def /FSType 8 def end def /PaintType 0 def /FontMatrix [0.001 0 0 0.001 0 0] def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 95 /underscore put dup 101 /e put dup 112 /p put dup 114 /r put dup 118 /v put def /FontBBox {-628 -376 2000 1010} def end systemdict begin dup /Private 7 dict dup begin /|- {def} def /| {put} def /BlueValues [0 0] def /password 5839 def /MinFeature {16 16} def /OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup /strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def /Subrs 5 array dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> | dup 1 <1C60D8A8C9C3D06D9E> | dup 2 <1C60D8A8C9C202D79A> | dup 3 <1C60D8A849> | dup 4 <1C60D8A8CC3674F41144B13B77> | def put dup /CharStrings 6 dict dup begin /.notdef <1C60D8A8C9B6E3FA5101D97F0BCF44F7161DEB1E2A84766DD477E7 C8A936AA182F5809A9> |- /underscore <1C60D8A8C9B7EF3224B5E5D595119082786BBED216CA> |- /e <1C60D8A8C9B7EF322BF270AB151730C1576B3DBF6DAC6B05EF7C7C2AC355 0E4D7D76EEB5EC00E2AE0B63EA674701E41362C9EF4C943E6044930A81C0288C 730E9CD4222EC82D37FE43450E9A846C17FEBAA9742B3180B655FFA4E0E014EF 214E09E7DE6E45A7476C6DEA21B47E198DDC2AD648DA39E6CBF2981071855AA9 4524E4E0809AB2B25573430347DD> |- /p <1C60D8A8C9B7D8BE2E8563B32C07DCC3804272870E069E443B687857C9AC B5C7CA1CF4F6A17C25172CC3E3E31B65AB87A5F695EADCB9429C1CB7981C750B 5DB31D41989E5AF25C22D1AF173045FD1E2E798D136DAECB194448D399145071 5E7374AE8B43D8B50AD9D750A67743A1F2A35DFF73BE71D039D15D8530023A7D A074A0D1B66504E092406A88A86DBDD558> |- /r <1C60D8A8C9B7361F02EEC91E54B85D1C77E667FE2BCF3D09A421FBF63CB6 30EA2A0B7B19FFD8078B4DB5A7731C633809BCAB3FF296D65B89F29DE6B6DB35 AA635F12FEC0F1664A8FB613C79352FA72> |- /v <1C60D8A8C9B7EF322BF34066C52D57BCC44B5A90A4FC7E0180FB67572BDB 310F0242B864A0AE1AC2B2D513C4B2167B53904E1D55E8A8> |- end put end dup /FontName get exch definefont pop end %ADOEndSubsetFont /RQJJJO+Arial-BoldMT /Arial-BoldMT findfont ct_VMDictPut /RQJJJO+Arial-BoldMT*1 [95{/.notdef}rp /underscore 5{/.notdef}rp /e 10{/.notdef}rp /p /.notdef /r 3{/.notdef}rp /v 137{/.notdef}rp] RQJJJO+Arial-BoldMT nf RQJJJO+Arial-BoldMT*1 [20 0 0 -20 0 0 ]msf 39.0015 1531.7 mo (_prev)sh 68.4629 1513.47 mo 68.4629 1498.47 li .75021 .679683 .670222 .90164 cmyk @ 71.3496 1499 mo 68.4648 1492.24 li 65.582 1499 li 71.3496 1499 li cp f .13611 .942718 .883391 .0357977 cmyk %ADOBeginSubsetFont: Arial-BoldMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJO+Arial-BoldMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /a <1C60D8A8C9B7EF322B767253CD3BE18E6883E9BFEE680E471A3E543E6B62 9FFE599C78BF6E9BC360B4FD3F4193BE88F8A133134BAA650EBC31A9DBCA73D4 43463241F1A95A036612031AED6950283B0D14D29C497685C55C7946BF118B40 E370FC30C35C6DDC0B89863AEC8E7000DED8B394346462262BD43999923C02BB 76E45D38F5FACA7247DBA2EBA6371EEFDE7DB20E4C849532AD601D5FE565E2F9 524F3166F0EDA1C9CBD6F2D9FAE6CBD991E5FC9CACD3E5ACCC612FA46CAB6837 78C9E93119C2E309BBBA2FB6B108D4ACC24630A4E27912F2F48E37DD6F256C92 0ECC30772CD6DD1CCCB84D330E3FAA> |- /d <1C60D8A8C9B7D8BE1937528A8A04A3F08B6D80EAB145BDD9DBE53FB1B70A 6DDBF10422FFF8F4C48F788DD104B24EA5229392446A977753676010F4776395 4952B19E372D9318BC5C7A48B7A85FDEA74862756E58887CA2F53B9D7C319DD7 A84656FBF89C0C66533E86D0B18AA2C13EC41ADA69D4E07EF68978C6DC11D8A9 705A6EC736D21DD4607DF3> |- /t <1C60D8A8C9B81F2C3AD0BF8CA40D7105A9B3D27345F202DEBDE44606EFD0 E90137AE13DC9D19FB7B4ABCA40FDADEB59FF02A690A47D6F26E8BDAADCFC051 3C14FCD80BF39C6AFCEFE1132622D45FBB576E32F86682C5BCCAD00B4E7E3753 50009EFCA5AC835906F56B697B29> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJO+Arial-BoldMT /Encoding get dup 97 /a put dup 100 /d put dup 116 /t put pop %ADOEndSubsetFont /RQJJJO+Arial-BoldMT*1 [95{/.notdef}rp /underscore /.notdef /a 2{/.notdef}rp /d /e 10{/.notdef}rp /p /.notdef /r /.notdef /t /.notdef /v 137{/.notdef}rp] RQJJJO+Arial-BoldMT nf RQJJJO+Arial-BoldMT*1 [20 0 0 -20 0 0 ]msf 306.091 1376.67 mo (data)sh 298.984 1370.17 mo 283.984 1370.17 li .75021 .679683 .670222 .90164 cmyk @ 284.512 1373.05 mo 277.748 1370.17 li 284.512 1367.29 li 284.512 1373.05 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 487.505 93.7988 mo (FIRST)sh 533.435 93.7988 mo ( INTERA)sh 595.365 93.7988 mo (TION)sh RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 36.2153 1060.63 mo (NULL)sh RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 1032.89 1060.63 mo (NULL)sh RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 192.565 1081.64 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 115.87 1088.23 mo (prev)sh .25 lw 318.451 1094.1 mo 164.004 1094.1 li 164.004 1015.35 li 318.451 1015.35 li 318.451 1094.1 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 221.157 1040.54 mo (data)sh .5 lw 172.031 1071.98 mo 113.174 1071.98 li .75021 .679683 .670222 .90164 cmyk @ 113.701 1069.09 mo 106.938 1071.98 li 113.701 1074.86 li 113.701 1069.09 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 332.585 1033.91 mo (next)sh 309.361 1039.11 mo 366.961 1039.11 li .75021 .679683 .670222 .90164 cmyk @ 366.434 1036.23 mo 373.197 1039.11 li 366.434 1041.99 li 366.434 1036.23 li cp f .25 lw 301.646 1054.72 mo 180.809 1054.72 li @ 180.809 1008.75 mo 180.809 1100.56 li @ 301.646 1008.75 mo 301.646 1100.56 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 410.047 1081.64 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 333.351 1088.23 mo (prev)sh 535.934 1094.1 mo 381.484 1094.1 li 381.484 1015.35 li 535.934 1015.35 li 535.934 1094.1 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 438.638 1040.54 mo (data)sh .5 lw 389.512 1071.98 mo 330.654 1071.98 li .75021 .679683 .670222 .90164 cmyk @ 331.182 1069.09 mo 324.418 1071.98 li 331.182 1074.86 li 331.182 1069.09 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.067 1033.91 mo (next)sh 526.844 1039.11 mo 584.441 1039.11 li .75021 .679683 .670222 .90164 cmyk @ 583.914 1036.23 mo 590.678 1039.11 li 583.914 1041.99 li 583.914 1036.23 li cp f .25 lw 519.127 1054.72 mo 398.289 1054.72 li @ 398.289 1008.75 mo 398.289 1100.56 li @ 519.129 1008.75 mo 519.129 1100.56 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 627.123 1081.64 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.427 1088.23 mo (prev)sh 753.008 1094.1 mo 598.559 1094.1 li 598.559 1015.35 li 753.008 1015.35 li 753.008 1094.1 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 655.714 1040.54 mo (data)sh .5 lw 606.588 1071.98 mo 547.73 1071.98 li .75021 .679683 .670222 .90164 cmyk @ 548.258 1069.09 mo 541.494 1071.98 li 548.258 1074.86 li 548.258 1069.09 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 767.143 1033.91 mo (next)sh 743.918 1039.11 mo 801.518 1039.11 li .75021 .679683 .670222 .90164 cmyk @ 800.99 1036.23 mo 807.754 1039.11 li 800.99 1041.99 li 800.99 1036.23 li cp f .25 lw 736.203 1054.72 mo 615.365 1054.72 li @ 615.365 1008.75 mo 615.365 1100.56 li @ 736.203 1008.75 mo 736.203 1100.56 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 843.515 1081.64 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 766.819 1088.23 mo (prev)sh 969.4 1094.1 mo 814.951 1094.1 li 814.951 1015.35 li 969.4 1015.35 li 969.4 1094.1 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 872.106 1040.54 mo (data)sh .5 lw 822.979 1071.98 mo 764.121 1071.98 li .75021 .679683 .670222 .90164 cmyk @ 764.648 1069.09 mo 757.885 1071.98 li 764.648 1074.86 li 764.648 1069.09 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 983.535 1033.91 mo (next)sh 960.311 1039.11 mo 1017.91 1039.11 li .75021 .679683 .670222 .90164 cmyk @ 1017.38 1036.23 mo 1024.15 1039.11 li 1017.38 1041.99 li 1017.38 1036.23 li cp f .25 lw 952.596 1054.72 mo 831.756 1054.72 li @ 831.756 1008.75 mo 831.756 1100.56 li @ 952.596 1008.75 mo 952.596 1100.56 li @ .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 231.562 1164.71 mo (list)sh .5 lw 318.418 1117.13 mo 318.418 1123.7 li 164.004 1123.7 li 164.004 1117.13 li .75021 .679683 .670222 .90164 cmyk @ 537.135 1117.13 mo 537.135 1123.7 li 382.721 1123.7 li 382.721 1117.13 li @ 241.207 1149.48 mo 241.207 1134.48 li @ 244.094 1135.01 mo 241.209 1128.24 li 238.326 1135.01 li 244.094 1135.01 li cp f 410.152 1153.09 mo 410.631 1153.01 411.105 1152.97 411.572 1152.97 cv 412.025 1152.97 412.492 1153.01 412.973 1153.09 cv 412.973 1163.59 li 412.973 1164 412.994 1164.34 413.041 1164.59 cv 413.088 1164.84 413.162 1165.04 413.262 1165.18 cv 413.361 1165.32 413.492 1165.42 413.652 1165.47 cv 413.813 1165.52 414.012 1165.55 414.252 1165.55 cv 414.357 1165.55 414.475 1165.54 414.602 1165.53 cv 414.729 1165.52 414.852 1165.5 414.973 1165.47 cv 415.119 1166.02 415.191 1166.55 415.191 1167.07 cv 415.191 1167.18 415.191 1167.27 415.191 1167.36 cv 415.191 1167.45 415.178 1167.54 415.152 1167.65 cv 414.938 1167.72 414.682 1167.76 414.381 1167.79 cv 414.082 1167.82 413.805 1167.83 413.553 1167.83 cv 412.525 1167.83 411.701 1167.55 411.082 1166.98 cv 410.461 1166.41 410.152 1165.49 410.152 1164.21 cv 410.152 1153.09 li cp .13611 .942718 .883391 .0357977 cmyk f 413.322 1149.48 mo 413.322 1134.48 li .75021 .679683 .670222 .90164 cmyk @ 416.209 1135.01 mo 413.324 1128.24 li 410.441 1135.01 li 416.209 1135.01 li cp f 241.207 1004.48 mo 241.207 989.48 li @ 244.094 990.008 mo 241.209 983.244 li 238.326 990.008 li 244.094 990.008 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 701.985 1227.42 mo (last)sh 458.572 1105 mo 458.572 1167.05 li .75021 .679683 .670222 .90164 cmyk @ 461.457 1166.52 mo 458.574 1173.29 li 455.691 1166.52 li 461.457 1166.52 li cp f 890.852 1137 mo 890.852 1212.21 li 506.631 1212.21 li @ 893.738 1137.53 mo 890.854 1130.77 li 887.971 1137.53 li 893.738 1137.53 li cp f 386.811 1193.64 mo 277.357 1193.64 li 277.357 1105 li @ 386.283 1190.76 mo 393.047 1193.64 li 386.283 1196.52 li 386.283 1190.76 li cp f 529.045 1193.64 mo 675.482 1193.64 li 675.482 1105 li @ 676.121 1193.64 mo 859.791 1193.64 li 859.791 1105 li @ 529.572 1190.76 mo 522.809 1193.64 li 529.572 1196.52 li 529.572 1190.76 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 412.786 1208.46 mo (count: 4)sh .25 lw 513.281 1220.87 mo 402.982 1220.87 li 402.982 1181.5 li 513.281 1181.5 li 513.281 1220.87 li cp .75021 .679683 .670222 .90164 cmyk @ 496.59 1174.94 mo 496.59 1227.42 li @ .5 lw 968.064 1117.13 mo 968.064 1123.7 li 813.648 1123.7 li 813.648 1117.13 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 217.265 969.518 mo (\322one\323)sh 459.572 1004.48 mo 459.572 989.48 li .75021 .679683 .670222 .90164 cmyk @ 462.457 990.008 mo 459.574 983.244 li 456.691 990.008 li 462.457 990.008 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 437.229 969.518 mo (\322two\323)sh 675.479 1004.48 mo 675.479 989.48 li .75021 .679683 .670222 .90164 cmyk @ 678.363 990.008 mo 675.48 983.244 li 672.598 990.008 li 678.363 990.008 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 648.678 969.518 mo (\322three\323)sh 892.736 1004.48 mo 892.736 989.48 li .75021 .679683 .670222 .90164 cmyk @ 895.621 990.008 mo 892.738 983.244 li 889.855 990.008 li 895.621 990.008 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 868.671 969.518 mo (\322four\323)sh 157.715 1153.09 mo 158.193 1153.01 158.668 1152.97 159.135 1152.97 cv 159.588 1152.97 160.055 1153.01 160.535 1153.09 cv 160.535 1163.59 li 160.535 1164 160.557 1164.34 160.604 1164.59 cv 160.65 1164.84 160.725 1165.04 160.824 1165.18 cv 160.924 1165.32 161.055 1165.42 161.215 1165.47 cv 161.375 1165.52 161.574 1165.55 161.814 1165.55 cv 161.92 1165.55 162.037 1165.54 162.164 1165.53 cv 162.291 1165.52 162.414 1165.5 162.535 1165.47 cv 162.682 1166.02 162.754 1166.55 162.754 1167.07 cv 162.754 1167.18 162.754 1167.27 162.754 1167.36 cv 162.754 1167.45 162.74 1167.54 162.715 1167.65 cv 162.5 1167.72 162.244 1167.76 161.943 1167.79 cv 161.645 1167.82 161.367 1167.83 161.115 1167.83 cv 160.088 1167.83 159.264 1167.55 158.645 1166.98 cv 158.023 1166.41 157.715 1165.49 157.715 1164.21 cv 157.715 1153.09 li cp .13611 .942718 .883391 .0357977 cmyk f RQJJJO+Arial-BoldMT*1 [20 0 0 -20 0 0 ]msf 164.589 1167.71 mo (_prev)sh 194.051 1149.48 mo 194.051 1134.48 li .75021 .679683 .670222 .90164 cmyk @ 196.938 1135.01 mo 194.053 1128.24 li 191.17 1135.01 li 196.938 1135.01 li cp f .13611 .942718 .883391 .0357977 cmyk RQJJJO+Arial-BoldMT*1 [20 0 0 -20 0 0 ]msf 520.404 970.518 mo (data)sh 513.297 964.013 mo 498.297 964.013 li .75021 .679683 .670222 .90164 cmyk @ 498.824 966.899 mo 492.061 964.015 li 498.824 961.132 li 498.824 966.899 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJN+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /D <1C60D8A8C9B6079F6249419CF69509002AC79A016C34D114AD8C7A9DD247 4EBE314027FB7E1F48C795DC0A22C11652551956D26D402DBF3954D5C55EEDC4 D2E02D32263ABBF714C52111C5848A3EB8C8B527B0FF3362F75E292ACAF79767 633E5CF98F1E087651E36E4721AF4CBDAC7E4D68359E9108BDBBEA294A048906 8CBF65F37E7CD4C7284AEAF641D010DF> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJN+ArialMT /Encoding get dup 68 /D put pop %ADOEndSubsetFont /RQJJJN+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /D /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /f /g /h /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /w /x 89{/.notdef}rp /quotedblleft /quotedblright 44{/.notdef}rp] RQJJJN+ArialMT nf RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 476.244 499.951 mo (SECOND INTERA)sh 606.626 499.951 mo (TION)sh RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 36.2153 654.473 mo (NULL)sh RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 1032.89 654.473 mo (NULL)sh RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 192.565 675.485 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 115.87 682.078 mo (prev)sh .25 lw 318.451 687.944 mo 164.004 687.944 li 164.004 609.194 li 318.451 609.194 li 318.451 687.944 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 221.157 634.383 mo (data)sh .5 lw 172.031 665.826 mo 113.174 665.826 li .75021 .679683 .670222 .90164 cmyk @ 113.701 662.94 mo 106.938 665.824 li 113.701 668.707 li 113.701 662.94 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 332.585 627.761 mo (next)sh 309.361 632.958 mo 366.961 632.958 li .75021 .679683 .670222 .90164 cmyk @ 366.434 630.072 mo 373.197 632.956 li 366.434 635.839 li 366.434 630.072 li cp f .25 lw 301.646 648.569 mo 180.809 648.569 li @ 180.809 602.593 mo 180.809 694.411 li @ 301.646 602.593 mo 301.646 694.411 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 410.047 675.485 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 333.351 682.078 mo (prev)sh 535.934 687.944 mo 381.484 687.944 li 381.484 609.194 li 535.934 609.194 li 535.934 687.944 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 438.638 634.383 mo (data)sh .5 lw 389.512 665.826 mo 330.654 665.826 li .75021 .679683 .670222 .90164 cmyk @ 331.182 662.94 mo 324.418 665.824 li 331.182 668.707 li 331.182 662.94 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.067 627.761 mo (next)sh 526.844 632.958 mo 584.441 632.958 li .75021 .679683 .670222 .90164 cmyk @ 583.914 630.072 mo 590.678 632.956 li 583.914 635.839 li 583.914 630.072 li cp f .25 lw 519.127 648.569 mo 398.289 648.569 li @ 398.289 602.593 mo 398.289 694.411 li @ 519.129 602.593 mo 519.129 694.411 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 627.123 675.485 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.427 682.078 mo (prev)sh 753.008 687.944 mo 598.559 687.944 li 598.559 609.194 li 753.008 609.194 li 753.008 687.944 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 655.714 634.383 mo (data)sh .5 lw 606.588 665.826 mo 547.73 665.826 li .75021 .679683 .670222 .90164 cmyk @ 548.258 662.94 mo 541.494 665.824 li 548.258 668.707 li 548.258 662.94 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 767.143 627.761 mo (next)sh 743.918 632.958 mo 801.518 632.958 li .75021 .679683 .670222 .90164 cmyk @ 800.99 630.072 mo 807.754 632.956 li 800.99 635.839 li 800.99 630.072 li cp f .25 lw 736.203 648.569 mo 615.365 648.569 li @ 615.365 602.593 mo 615.365 694.411 li @ 736.203 602.593 mo 736.203 694.411 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 843.515 675.485 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 766.819 682.078 mo (prev)sh 969.4 687.944 mo 814.951 687.944 li 814.951 609.194 li 969.4 609.194 li 969.4 687.944 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 872.106 634.383 mo (data)sh .5 lw 822.979 665.826 mo 764.121 665.826 li .75021 .679683 .670222 .90164 cmyk @ 764.648 662.94 mo 757.885 665.824 li 764.648 668.707 li 764.648 662.94 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 983.535 627.761 mo (next)sh 960.311 632.958 mo 1017.91 632.958 li .75021 .679683 .670222 .90164 cmyk @ 1017.38 630.072 mo 1024.15 632.956 li 1017.38 635.839 li 1017.38 630.072 li cp f .25 lw 952.596 648.569 mo 831.756 648.569 li @ 831.756 602.593 mo 831.756 694.411 li @ 952.596 602.593 mo 952.596 694.411 li @ .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 231.562 758.557 mo (list)sh .5 lw 318.418 710.98 mo 318.418 717.543 li 164.004 717.543 li 164.004 710.98 li .75021 .679683 .670222 .90164 cmyk @ 537.135 710.98 mo 537.135 717.543 li 382.721 717.543 li 382.721 710.98 li @ 241.207 743.328 mo 241.207 728.328 li @ 244.094 728.855 mo 241.209 722.092 li 238.326 728.855 li 244.094 728.855 li cp f 626.824 746.937 mo 627.303 746.856 627.777 746.816 628.244 746.816 cv 628.697 746.816 629.164 746.856 629.645 746.937 cv 629.645 757.437 li 629.645 757.851 629.666 758.184 629.713 758.437 cv 629.76 758.69 629.834 758.887 629.934 759.027 cv 630.033 759.167 630.164 759.264 630.324 759.316 cv 630.484 759.37 630.684 759.396 630.924 759.396 cv 631.029 759.396 631.146 759.391 631.273 759.377 cv 631.4 759.363 631.523 759.344 631.645 759.316 cv 631.791 759.863 631.863 760.396 631.863 760.917 cv 631.863 761.023 631.863 761.12 631.863 761.207 cv 631.863 761.294 631.85 761.391 631.824 761.497 cv 631.609 761.563 631.354 761.61 631.053 761.637 cv 630.754 761.663 630.477 761.677 630.225 761.677 cv 629.197 761.677 628.373 761.394 627.754 760.827 cv 627.133 760.261 626.824 759.337 626.824 758.057 cv 626.824 746.937 li cp .13611 .942718 .883391 .0357977 cmyk f 629.994 743.328 mo 629.994 728.328 li .75021 .679683 .670222 .90164 cmyk @ 632.881 728.855 mo 629.996 722.092 li 627.113 728.855 li 632.881 728.855 li cp f 754.566 710.98 mo 754.566 717.543 li 600.152 717.543 li 600.152 710.98 li @ 241.207 598.328 mo 241.207 583.328 li @ 244.094 583.855 mo 241.209 577.092 li 238.326 583.855 li 244.094 583.855 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 701.985 821.271 mo (last)sh 458.572 698.849 mo 458.572 760.897 li .75021 .679683 .670222 .90164 cmyk @ 461.457 760.37 mo 458.574 767.134 li 455.691 760.37 li 461.457 760.37 li cp f 890.852 730.853 mo 890.852 806.056 li 506.631 806.056 li @ 893.738 731.38 mo 890.854 724.616 li 887.971 731.38 li 893.738 731.38 li cp f 386.811 787.488 mo 277.357 787.488 li 277.357 698.849 li @ 386.283 784.603 mo 393.047 787.486 li 386.283 790.369 li 386.283 784.603 li cp f 529.045 787.488 mo 675.482 787.488 li 675.482 698.849 li @ 676.121 787.488 mo 859.791 787.488 li 859.791 698.849 li @ 529.572 784.603 mo 522.809 787.486 li 529.572 790.369 li 529.572 784.603 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 412.786 802.303 mo (count: 4)sh .25 lw 513.281 814.717 mo 402.982 814.717 li 402.982 775.342 li 513.281 775.342 li 513.281 814.717 li cp .75021 .679683 .670222 .90164 cmyk @ 496.59 768.786 mo 496.59 821.271 li @ .5 lw 968.064 710.98 mo 968.064 717.543 li 813.648 717.543 li 813.648 710.98 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 217.265 563.364 mo (\322one\323)sh 459.572 598.328 mo 459.572 583.328 li .75021 .679683 .670222 .90164 cmyk @ 462.457 583.855 mo 459.574 577.092 li 456.691 583.855 li 462.457 583.855 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 437.229 563.364 mo (\322two\323)sh 675.479 598.328 mo 675.479 583.328 li .75021 .679683 .670222 .90164 cmyk @ 678.363 583.855 mo 675.48 577.092 li 672.598 583.855 li 678.363 583.855 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 648.678 563.364 mo (\322three\323)sh 892.736 598.328 mo 892.736 583.328 li .75021 .679683 .670222 .90164 cmyk @ 895.621 583.855 mo 892.738 577.092 li 889.855 583.855 li 895.621 583.855 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 868.671 563.364 mo (\322four\323)sh 474.672 746.937 mo 475.15 746.856 475.625 746.816 476.092 746.816 cv 476.545 746.816 477.012 746.856 477.492 746.937 cv 477.492 757.437 li 477.492 757.85 477.514 758.184 477.561 758.437 cv 477.607 758.69 477.682 758.887 477.781 759.027 cv 477.881 759.167 478.012 759.264 478.172 759.316 cv 478.332 759.37 478.531 759.396 478.771 759.396 cv 478.877 759.396 478.994 759.39 479.121 759.376 cv 479.248 759.363 479.371 759.344 479.492 759.316 cv 479.639 759.863 479.711 760.396 479.711 760.917 cv 479.711 761.023 479.711 761.12 479.711 761.207 cv 479.711 761.294 479.697 761.39 479.672 761.497 cv 479.457 761.563 479.201 761.61 478.9 761.637 cv 478.602 761.663 478.324 761.677 478.072 761.677 cv 477.045 761.677 476.221 761.394 475.602 760.827 cv 474.98 760.261 474.672 759.336 474.672 758.057 cv 474.672 746.937 li cp .13611 .942718 .883391 .0357977 cmyk f RQJJJO+Arial-BoldMT*1 [20 0 0 -20 0 0 ]msf 481.546 761.557 mo (_prev)sh 511.008 743.328 mo 511.008 728.328 li .75021 .679683 .670222 .90164 cmyk @ 513.895 728.855 mo 511.01 722.091 li 508.127 728.855 li 513.895 728.855 li cp f .13611 .942718 .883391 .0357977 cmyk RQJJJO+Arial-BoldMT*1 [20 0 0 -20 0 0 ]msf 750.636 564.365 mo (data)sh 743.529 557.86 mo 728.529 557.86 li .75021 .679683 .670222 .90164 cmyk @ 729.057 560.747 mo 722.293 557.862 li 729.057 554.979 li 729.057 560.747 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 486.029 906.104 mo (THIRD INTERA)sh 596.841 906.104 mo (TION)sh RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 36.2153 248.32 mo (NULL)sh RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 1032.89 248.32 mo (NULL)sh RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 192.565 269.333 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 115.87 275.926 mo (prev)sh .25 lw 318.451 281.792 mo 164.004 281.792 li 164.004 203.042 li 318.451 203.042 li 318.451 281.792 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 221.157 228.23 mo (data)sh .5 lw 172.031 259.673 mo 113.174 259.673 li .75021 .679683 .670222 .90164 cmyk @ 113.701 256.788 mo 106.938 259.671 li 113.701 262.554 li 113.701 256.788 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 332.585 221.608 mo (next)sh 309.361 226.806 mo 366.961 226.806 li .75021 .679683 .670222 .90164 cmyk @ 366.434 223.92 mo 373.197 226.804 li 366.434 229.687 li 366.434 223.92 li cp f .25 lw 301.646 242.417 mo 180.809 242.417 li @ 180.809 196.44 mo 180.809 288.259 li @ 301.646 196.44 mo 301.646 288.259 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 410.047 269.333 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 333.351 275.926 mo (prev)sh 535.934 281.792 mo 381.484 281.792 li 381.484 203.042 li 535.934 203.042 li 535.934 281.792 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 438.638 228.23 mo (data)sh .5 lw 389.512 259.673 mo 330.654 259.673 li .75021 .679683 .670222 .90164 cmyk @ 331.182 256.788 mo 324.418 259.671 li 331.182 262.554 li 331.182 256.788 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.067 221.608 mo (next)sh 526.844 226.806 mo 584.441 226.806 li .75021 .679683 .670222 .90164 cmyk @ 583.914 223.92 mo 590.678 226.804 li 583.914 229.687 li 583.914 223.92 li cp f .25 lw 519.127 242.417 mo 398.289 242.417 li @ 398.289 196.44 mo 398.289 288.259 li @ 519.129 196.44 mo 519.129 288.259 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 627.123 269.333 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.427 275.926 mo (prev)sh 753.008 281.792 mo 598.559 281.792 li 598.559 203.042 li 753.008 203.042 li 753.008 281.792 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 655.714 228.23 mo (data)sh .5 lw 606.588 259.673 mo 547.73 259.673 li .75021 .679683 .670222 .90164 cmyk @ 548.258 256.788 mo 541.494 259.671 li 548.258 262.554 li 548.258 256.788 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 767.143 221.608 mo (next)sh 743.918 226.806 mo 801.518 226.806 li .75021 .679683 .670222 .90164 cmyk @ 800.99 223.92 mo 807.754 226.804 li 800.99 229.687 li 800.99 223.92 li cp f .25 lw 736.203 242.417 mo 615.365 242.417 li @ 615.365 196.44 mo 615.365 288.259 li @ 736.203 196.44 mo 736.203 288.259 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 843.515 269.333 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 766.819 275.926 mo (prev)sh 969.4 281.792 mo 814.951 281.792 li 814.951 203.042 li 969.4 203.042 li 969.4 281.792 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 872.106 228.23 mo (data)sh .5 lw 822.979 259.673 mo 764.121 259.673 li .75021 .679683 .670222 .90164 cmyk @ 764.648 256.788 mo 757.885 259.671 li 764.648 262.554 li 764.648 256.788 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 983.535 221.608 mo (next)sh 960.311 226.806 mo 1017.91 226.806 li .75021 .679683 .670222 .90164 cmyk @ 1017.38 223.92 mo 1024.15 226.804 li 1017.38 229.687 li 1017.38 223.92 li cp f .25 lw 952.596 242.417 mo 831.756 242.417 li @ 831.756 196.44 mo 831.756 288.259 li @ 952.596 196.44 mo 952.596 288.259 li @ .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 231.562 352.404 mo (list)sh .5 lw 318.418 304.828 mo 318.418 311.391 li 164.004 311.391 li 164.004 304.828 li .75021 .679683 .670222 .90164 cmyk @ 241.207 337.175 mo 241.207 322.175 li @ 244.094 322.703 mo 241.209 315.939 li 238.326 322.703 li 244.094 322.703 li cp f 840.484 340.784 mo 840.965 340.704 841.438 340.664 841.906 340.664 cv 842.359 340.664 842.826 340.704 843.305 340.784 cv 843.305 351.284 li 843.305 351.698 843.328 352.031 843.375 352.284 cv 843.422 352.538 843.496 352.734 843.596 352.875 cv 843.695 353.014 843.826 353.111 843.984 353.164 cv 844.145 353.218 844.346 353.244 844.586 353.244 cv 844.691 353.244 844.809 353.238 844.936 353.224 cv 845.063 353.211 845.186 353.191 845.305 353.164 cv 845.451 353.711 845.525 354.244 845.525 354.764 cv 845.525 354.871 845.525 354.968 845.525 355.054 cv 845.525 355.142 845.512 355.238 845.484 355.344 cv 845.271 355.411 845.016 355.458 844.715 355.484 cv 844.416 355.511 844.139 355.524 843.885 355.524 cv 842.859 355.524 842.035 355.241 841.416 354.675 cv 840.795 354.108 840.484 353.184 840.484 351.904 cv 840.484 340.784 li cp .13611 .942718 .883391 .0357977 cmyk f 843.656 337.175 mo 843.656 322.175 li .75021 .679683 .670222 .90164 cmyk @ 846.543 322.703 mo 843.658 315.939 li 840.775 322.703 li 846.543 322.703 li cp f 754.566 304.828 mo 754.566 311.391 li 600.152 311.391 li 600.152 304.828 li @ 684.313 340.784 mo 684.791 340.704 685.266 340.664 685.732 340.664 cv 686.186 340.664 686.652 340.704 687.133 340.784 cv 687.133 351.284 li 687.133 351.698 687.154 352.031 687.201 352.284 cv 687.248 352.538 687.322 352.734 687.422 352.875 cv 687.521 353.014 687.652 353.111 687.813 353.164 cv 687.973 353.218 688.172 353.244 688.412 353.244 cv 688.518 353.244 688.635 353.238 688.762 353.224 cv 688.889 353.211 689.012 353.191 689.133 353.164 cv 689.279 353.711 689.352 354.244 689.352 354.764 cv 689.352 354.871 689.352 354.968 689.352 355.054 cv 689.352 355.142 689.338 355.238 689.313 355.344 cv 689.098 355.411 688.842 355.458 688.541 355.484 cv 688.242 355.511 687.965 355.524 687.713 355.524 cv 686.686 355.524 685.861 355.241 685.242 354.675 cv 684.621 354.108 684.313 353.184 684.313 351.904 cv 684.313 340.784 li cp .13611 .942718 .883391 .0357977 cmyk f RQJJJO+Arial-BoldMT*1 [20 0 0 -20 0 0 ]msf 691.187 355.404 mo (_prev)sh 720.648 337.175 mo 720.648 322.175 li .75021 .679683 .670222 .90164 cmyk @ 723.535 322.703 mo 720.65 315.939 li 717.768 322.703 li 723.535 322.703 li cp f .13611 .942718 .883391 .0357977 cmyk RQJJJO+Arial-BoldMT*1 [20 0 0 -20 0 0 ]msf 960.277 158.213 mo (data)sh 953.17 151.708 mo 938.17 151.708 li .75021 .679683 .670222 .90164 cmyk @ 938.697 154.595 mo 931.934 151.71 li 938.697 148.827 li 938.697 154.595 li cp f 241.207 192.175 mo 241.207 177.175 li @ 244.094 177.702 mo 241.209 170.938 li 238.326 177.702 li 244.094 177.702 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 701.985 415.119 mo (last)sh 458.572 292.696 mo 458.572 354.745 li .75021 .679683 .670222 .90164 cmyk @ 461.457 354.218 mo 458.574 360.981 li 455.691 354.218 li 461.457 354.218 li cp f 890.852 324.7 mo 890.852 399.903 li 506.631 399.903 li @ 893.738 325.228 mo 890.854 318.463 li 887.971 325.228 li 893.738 325.228 li cp f 386.811 381.336 mo 277.357 381.336 li 277.357 292.696 li @ 386.283 378.45 mo 393.047 381.334 li 386.283 384.217 li 386.283 378.45 li cp f 529.045 381.336 mo 675.482 381.336 li 675.482 292.696 li @ 676.121 381.336 mo 859.791 381.336 li 859.791 292.696 li @ 529.572 378.45 mo 522.809 381.334 li 529.572 384.217 li 529.572 378.45 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 412.786 396.15 mo (count: 4)sh .25 lw 513.281 408.564 mo 402.982 408.564 li 402.982 369.189 li 513.281 369.189 li 513.281 408.564 li cp .75021 .679683 .670222 .90164 cmyk @ 496.59 362.634 mo 496.59 415.119 li @ .5 lw 968.064 304.828 mo 968.064 311.391 li 813.648 311.391 li 813.648 304.828 li @ .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 217.265 157.212 mo (\322one\323)sh 459.572 192.175 mo 459.572 177.175 li .75021 .679683 .670222 .90164 cmyk @ 462.457 177.702 mo 459.574 170.938 li 456.691 177.702 li 462.457 177.702 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 437.229 157.212 mo (\322two\323)sh 675.479 192.175 mo 675.479 177.175 li .75021 .679683 .670222 .90164 cmyk @ 678.363 177.702 mo 675.48 170.938 li 672.598 177.702 li 678.363 177.702 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 648.678 157.212 mo (\322three\323)sh 892.736 192.175 mo 892.736 177.175 li .75021 .679683 .670222 .90164 cmyk @ 895.621 177.702 mo 892.738 170.938 li 889.855 177.702 li 895.621 177.702 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJN+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 868.671 157.212 mo (\322four\323)sh RQJJJN+ArialMT*1 [16 0 0 -16 0 0 ]msf 477.287 1312.26 mo (FOUR)sh 522.326 1312.26 mo (TH INTERA)sh 605.583 1312.26 mo (TION)sh %ADOBeginClientInjection: EndPageContent "AI11EPS" userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse %ADOEndClientInjection: EndPageContent "AI11EPS" grestore grestore pgrs %%PageTrailer %ADOBeginClientInjection: PageTrailer Start "AI11EPS" [/EMC AI11_PDFMark5 [/NamespacePop AI11_PDFMark5 %ADOEndClientInjection: PageTrailer Start "AI11EPS" [ [/CSA [/0 ]] ] del_res /RQJJJO+Arial-BoldMT*1 uf /RQJJJO+Arial-BoldMT uf /Arial-BoldMT uf /RQJJJN+ArialMT*1 uf /RQJJJN+ArialMT uf /ArialMT uf Adobe_AGM_Image/pt gx Adobe_CoolType_Core/pt get exec Adobe_AGM_Core/pt gx currentdict Adobe_AGM_Utils eq {end} if %%Trailer Adobe_AGM_Image/dt get exec Adobe_CoolType_Core/dt get exec Adobe_AGM_Core/dt get exec %%EOF %AI9_PrintingDataEnd userdict /AI9_read_buffer 256 string put userdict begin /ai9_skip_data { mark { currentfile AI9_read_buffer { readline } stopped { } { not { exit } if (%AI9_PrivateDataEnd) eq { exit } if } ifelse } loop cleartomark } def end userdict /ai9_skip_data get exec %AI9_PrivateDataBegin %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 11.0 %%AI8_CreatorVersion: 14.0.0 %%For: (Marina Proni) () %%Title: (diagramas_01-20.eps) %%CreationDate: 7/7/11 3:53 PM %%Canvassize: 16383 %AI9_DataStream %Gb"-6CNCfDD'8Z_l9Fcr,,D_maNA-ql8ih$3TQl8].H[LO_jhS2C>A?c:m[ba`]mZci3d!GG;)Iqfu^V2Q(#qfjGR&M*rNg,SKpZ %TC!`WhnOD]s24ip?[m>:kHUP22Wh?qicLJYCW"JIp>93Ume6%Fh0Bp4M)MO7:O$A50C[9;_t3VH\+f??qrZl5mG#+:&$I&2]`$sF %j\Ii0B>;1V!If*2p5c\d?9S50g&BOHoDe2a\UM&<#>KD\?J`?kp$^iUrtk_5c2Q\P$Nb"bDr8Eq4!Nu$Dh/rP%=`!ZYO8$tHN3!u[m8U5MdP;VYM\=mVXNa3Df=OH"%L'2"+9D)fDkV1HmaDh2P*]UMuip\;lau6+3#-B %r6WG[o@_Iil$'U$]R9VEc-pAXmI&62DdWJc?t'DgnPEG%,0P2FHiNC)boc@\iqQIU21G5M%khg-&I7FrlW6$d %dZL-Js5XC!^NoFgm5klsLKEr,B>6Qu8,:]m]t\o;o@*)r[t:`1pRBdDpV24QH_NJtVs7B('Tf[7cbc(4ZS3'lg_+R7[dVWDN#9qb %'#d&NB`Ajfs#4k&rp]LXQQarMC`3[S`o"LUq4\8:'[LCjKDKON]DnB"cbr/bhn?Y8(ZIg[mdesMcT%NrqHNa]iVpgX_]93j#ia2( %+?]B@F0?X6i8<56oG`&RrTiF7L=@jTq>J4CgUD_!ea6M?(I,RCq=EuVM"AUR`QR!pn=-m'0N%7f\@;Z-J,/B[c,JZ(q>5BF(Ou2I %jf93,(Ve@0_o3_aN>lbU6eF"V,2Rj7I/iL*?S?;C)h.gAO?Zh-\+Jg%EQbQB\lWh;eX)6o-+A0ag:XdNpOn"*Gi6"@h"JRlIB^-j %9Zh^"qOX1jmnJRqpX]&Wbn!%o^:AIh"Q&!A49p=B]R>#$jq[ULmHntZ]Sf"fJ+`+#h8S]L2opR%5@2,EG;o7Lrq$Q-oS2Kc@!cn` %r8I2+iYH2#"k-kO4268ipYtoDMr!@O2fE'Z]_uh(d-Fd%hql&ZJ);40h`orR?ei>%K83/_rVPQuMskQbe][hor;#dC %mIU(Un/pBB#2o(FIsunE(-D?OiEu"+DZBD*X.)3I&Z"aSo:&hNK"^h?9]DE5>;CYP%mtblp[IV$mJ$)G^R,\-n6`oLT"f[_WqBiA %K'i\c,H %i<9PoNHLk+J%BoPCBW'MT]s'1+5Xa9&K*3E:.,W\k8d48_2(0,COX7l?[6YiPr8CQ2u3tBqMiCjrVd88p]J##K1GMT5K3CBJo^,p7";F02S@W3;^5dqG6"_J,/O+r9!,,?[NCs/Hf5l-6g^_);K\pssET5F;-^p2PK;5"A!#c.W*@qmSe]rVkd7Q(_L_b-28@T\06.`]&?> %0AQTiSf+p6Ou-9j$#IicE*n1IO+.1Zq&^LOjUEd'A-'AkId@/,IW&TQhgLMmOX>DMp9)T&KDZKBjmuQ_hu3befA24d+ZDXq^ApPF %V:2Dl\9j2Vmb,'6hRpQKSF:p>VO$*X_LcO[X1iMdq1)5!l"kk$8\V(lj6bK`FLo^nC^s@Dr0I %4E4&)L8Vgca(_'a#1%2BO-enWGSmX)CM8IZ=:.&&=I1@:BH0241A&o4#s**_4;ICtM?n/UG1)H02R+Jk<$ %8Ms4V:+bk]5$b$9GRisVkQj32Peib-EeS/KF)H8ip\?ROj[6c-f0F!tZ)!OU.p\m"9$2t`W)(6qWAok.q&'Z]RnFfk=BLurJ/-*Y-5#>f2pRjfDFmiFb=>@T!%C%!G8.nGTEs-_tDu- %\2mk9p4qIt*Tk7]W/#E7LNJ?-!1;a=YB;W\r'i;!'TIUhG9C.^ko2\]l71o7"E,&]3M@DD]O?BX+B_;n??kd5bX'3[H16t5W,-Z4n3BVgS?@m"]J>AUo[_g1K %Tr/KW?j,;*JGFKtCWHtg@YQPc>[WC[^s)idT(N`ABmPq*_T45G)&3[MCnbi#8Qf=f'p(=&_4'+Y&6A."YD8"TFRc`m3-r)q?flkth8 %lR+l-qfH-<:F>dJ+8CDZGZMiUWMKq!=*XPqiFh%rfus9%nC7Z!Y@6X*-h;%,=6!+VK9-Lc\ns#,olgCW+]Sm"ZtWLUFq3^'B0 %99e!A0[q(0"3^*\_O.7++MnI(.:\hO(=8Q`@5nKLQI!A9l9q3P,LEp711OLiguE#;p!&ELZZcpms6q8%lGMoE0J&=qA#(E%+nFk=kCcm3o``quQ>L^b!$>)K[g3?\rMIB;_M_OF>D>rp?30gO&DRX8mdRWfJASYq&8H&A9i0HPJ,5[TV9u %7Cs9c='6&B,ogS9CpX=G=ou#]J%YP^O[b$NEMb%jJ>8<9P//=NMt%N1qE5s;YQdk,JE&s+.m$k>#I4DSA0YV?,XsILcm:qi!MlcZ %)\S]+ZhWuVQKT.bG75W5XR(Oh!iE.6V$C]lbY,_MtCBmBcqbeD:*6\W]dpt(o(Q#%VC^# %4^+3G."0W^9!fuoB2;j%,oK!\16>L%Nb4BP*QZhY8D?!Q`W9U(JOC7r@"JQpiHi4njo#N%qeK=3!uM(Gb^ooG9jfgIqFpl:fp-*b %Yn;aDF=&rXYh>S'Fu8L*WG^d!n&W&rPCn94:A34ghG5>.9)MjN=NRpj:$,F_tL74_UbqID$5QuomFr%*N?q"H0+_-YZ`JX'lfo'Z$"qo-qP*db_T"Wd:?p2r]+*:s`&M3R)B`T8.j>r@;9R:(j %>u4*7'H&k/%nDgR(Ad1H^'^V$N*FN0*^iksq*<*=!\$+-)(]&#V+_XsiF!"J;[sF6M%iW4iqUdQWO6^;nc8U;=Z+C(_AOY@$HIlJ %PYN[G3n]2?Ob:\,hLStFJUBTRo#SirT7L:\R2cNTo%;2#7o*AQF?Q#Km-KS@2i,N+aDYM!q9jXTZ;#Ng46Z^lb`+H+QVY&f%(%RM %%u$LepqKTj)!'"SjD#^Iicu.AdCAsa=iIQ7.WX)>X>6oXB^f0a=,l6A9kG@Ea`/i$H'e7!V79&$=V;L![.qo*3=kTiG+-ruQgSK%$bRhBNQ?AUf!XWPA!c:k_VtVZ&*jV %pbj7Fs(JXrE#gCkuOLoN#%J)(80Wi7q0?+i-(>JcP8K8$@<=E?H.Kb:@Z()9?A!bt)[5&flRMAEG07'LiF.F&XJR\i-- %$!AgPPpiRG.BjO61P[V7f,$*p] %%UJq+#78Cj-rqX`iiiLkFYIgL1-oe-^a-H^6a78_]s;%IL1;U>Y6S]JDp@U=KP"j(buV,,0g(rHndOS*?;$[ZMBlRo:pcPK[5/]( %Q(k](\'8_WPJ`"7!]ue5d]e8.>d=q*i9o5O?Yjh#6e0&I@e61n$m2V.gIu6B;Fc8PCob;XpIb9$tf[f"e5fS$O5#L4N'@l1orI.31rBu..*auC&E4nJ`U**%**.F!>BYhjB3ds8*Ocrd=C@,N_If>=Ye>D %+gNHN?<>RgXs4lkbH3B,8oRn,$l#+sbk'6<0&>h3`RA8A`]Np3iRf4tAhaeXf4PCq<77U!l.6s?ge0@t3JtXmN(C:Y)ld_S[`dLB %p*u"`Xpo-ONjO2`&L,@5W4h31NHB]B],tMpJ"@ %J2W7fYMstIU7Fl_X,47PhL\"6OR9;,gTa#u1=RX*.1_kmjAi.kuBTP+,ZejYJ`DQqtq/@b4#?,7CW;;UU$`Zf1 %W/#pP[Q6rmF`QHk*YHh;s!sWB'HIPKM4tuRaAF!L95;D$[ACm&1j7A:HgX:Wl>sL\A>Tn0a$NMdaNBn@BQ@pLic6Z+M1`7#R-PL+ %+ZQ$LVjpGj_:"]q^?KIGFL*Pk!#t`NTa2&r\4D:m+ta+'5'6&Ifqh=G/Jk]lE0+l[T&?uM[D>QdR8AMe#J(TPSPQZuoZ>&#BrUur %H@L\N$-[Y]U0Ni5prNR2`o<-THRO,;?RQi*iPiYtP=mD+Fc]b16 %V*T.(e5JCZh!"/s:Z;k`/)?b19aqYpB/#*eku):H^buX0Plfle]kH;=n/G^B(]/G!EH,:6,7h+K.4m>@L#L1G97-AjLV`N"^egE6UMT]*8 %hgI3Q4h:d)TQZ&_)*9g=rlY08mbBI"oi3J,@KsHfSnqLMTI!mNX`TQ6H&p %K&d/8,RSd'*NI^r8Fpgk,aIE_@&Z1Z6aBZq*smK#/]F,u8TZ+2EnmPXcBI'.'6hG`MLA1-+B:-n.Gl)M(DG %R01G5*l4[`$8;eNgi(>HCm[Id?n4 %9(p?(`AYBdJj8O\&'c9SHK5I+SAItV.9Eu`*HR)m%2rb\KpadEUn5.%S!jMNp5V'Qr"UI.YN,&rJ0uMH$kDB(>B`g"E]E %;d$4+21X1#PH=Q@c=C$&S`om0UBr;C0K/*("t(AM#>WA4o.eG,%\M<<@P[0;R%ofW`4KB2E0`e[<>]@&++BcSmq$-PM&SW^)&CUl %o"TsT#ohJK>e-)paeYp!C+ODt#Eu.Fj@YUl<48fooCGSkG#$?D))d6/eaiNX;:tVQ;Bcti08m2KH:df-4%Z_HfURDE't8g %Oh>N^D]R)$6266a7*FVi/run8YHJc%OS,9$cf+*iZ-M6(Th$ega+pp".'A %n0A?:U9G45(MeOeCeEkul,M$kSM^J/l[@d9.@e_,9Ppa6\-)(1DAaKeK@!#BZH2+[qb/&S@CZ#"5=#hs%`/!k?hC)&+r>Q!TFS-M"kU9J %Ke<#d5_-jGY2g_@_%+ud+aS:!iufccM,^XTr_MZHcZX8VB;J,pOnidNY]/"o..r.Oan#Q/M=gb,c5l-]q+Fm#Y"="13@)r6WiC*@ %f*b_C;TJh**"@)Hc&TIHp<2ZKR>g+\-VJ=W3\9#157^7&l(O0Npg(0-Gl<9/hMM.n//iGV:=cQ/q)r'\gqNS5//E0.%&^=3]YQ@n %_IE$>bOFU/$h$O\/FIWjpH!r]j_le%Qaj=I_]j$R<@q?aClc$(fi,gR:s#)ANIm4e-ZK&L %S(u1j-HA^gChj3=eV8P1dSIbq=5WE3Dt`l^mJcD7#/>!E%rRHCn+(Dkq>3qe@^"\NlH=D_bM@WVhgbFRIfIhOKiMr\GZP+1OH$r@ %(7R(PDJ$Pn^cGHCQ#('1:!5@2G%< %?f.[oNNAMYB("LF%mB#^B,p!B7mH%\XR(O"rFoZSh`QD]rRLdHs'HuN)?\>7!6"t>eRDDbD6`[rc"M*ALDf_g5u!.1'`i--\okX" %#)bJ=$*0`7n)gmJl=s`+/?>a@<>S_)AL,XMg*.o[p3"M5*S$Eh=gG9AVge9+*do;J:j)7)fX%*rP!@]^o_R8P4X&XRV7;]LfsI^U %+K;][,Md-"Csp]/k=MQk.;#qABKkGoQ57j@Tinq5S3Oo1rmF'h,3/Z:FaR@5T2s"IQIQQurHVgfQeJ1[<9%4@WoXE!jNOgPlM*5= %G]irToecpJk<,;GX]A^,3EPQpI*'ZJl/&M,jATsP;f:DiDV\6/h8_tC.C\^o\*ikfHciI;b,p$5UA=-#U3RB*-W,+$KdT`B1q*rr %hbVO%$g7u-02-\UQTmE[Wg3/f&$p[U&s^3.Q0roZm[gnaHf"?R*i[5nZ?SQD"8+-q8!'jHa'3AA%kI.XEhNYL8R"/Yl,p*(Ct@%[ %($8U6#jnddYKF*h`Skq=,V^To0KC/U-6fIrf4H"\2#HMf2C!cm:..YrA,FIGR"%5V.Gfk)D((7pn)7$ %dFZt$+M"P7L;b`8P;mNFA;)lk*"2eMK"rJ>O_/sH`(."h(`p4'i`#PC[[SA$CS:MOC`Z4\iNejnM[4gp1,D$*'E6u[Ap>jKC:hQ+ %ZnM_[dH^jPRtO:oV.p^1b4?]jV<3JN9GQgM$:lSH9Y-3ZiqX:F.VVm]S1Qj`J@=I1cI]LrCqXmUc`SPc5a:=r_/nqK\rEp!HcDop&STKdQbYLOSQ^a@3k\A6RK3r$:Md %-6LEHG#:/"1;$jCV8CEo;Bk2qJ]I4Im'>OqiDEb9q[j'qKJ!X-)TXOpleIfPgA=u3-dD_Z@lB7i>*gJ#`Sf9]\a'iT]NX`4/-d4i %2k5%EN>k`cmB3&Dd7]_gnsSUXf:cJVh;P:3ni5Z!!t9@h_=>?*WW6T/+4UA/E>>]S!pcPh_*<,-j<,XC,rDa_CYLpY;-4A!cM8Np %7(@G>](=>j)B8Q>#2b:aDosA5D$3+^-#[]K_@%k0f+W9Md'Cal?D9%VgFHNNJsX:iFa[4'-?hD*5MNbT%a)"Z&O'23k/Wd?5r8S! %K,99_oRPNrWXEoOfRLI\3!8)@13^L2`39'Jl=X5h7p8a_0X)3r9bMX$"5QVukY@:3pQ8^h7X't?(t/SG-!iigf8kl4nOTEJ7hYIV %Ra+O`AKq@3)?JF<%3ku2"bY#/FKrn5Yo/tRaq`UQMA=f:9I6"17b'S4H"A9S%Z`'f"UcEa_KC8b@^4V\(O)YS;@*.8Rm4hG]=@Ik %K9>=<;K@o=iIdiC7fnUL\DlLgNoA0!k?(-I(\,H&"*\fKE\kakDnd;VE;f1p7LjVCmYC5F*TRtG#nk<^Q705[e>&.Xcsm6$?pu_+ %Ur+[,Bc1`-L1P"QBc`c_9a7Gg)rPE(mIJ\)lS\D1-eCSRjfAlN=lMNZ= %U)r"BH$%nK%BDW55PK8TVr*egD!kT_-.tRW7BO%TpMpL:T7P&*7;_dTBa\QmS&DE\b!rqTiT15^D,W@X>&JM=)*6FJ4fpK!Oqp(KeW4gmV!jf:OmZP6WnF"JPtH7$G([:2QVsQ8]gs_QF`"TfO*#o=92t/i@Zmdld2/p,YSRLh+G5!+ %i`(98#Ae=TW=J.4OE2A_)OL"o<1PMfc&*0OhTW?XZUoM8$a@kGR@4]Y.ce@lsg%5Vo==MQcJrS99*;+Us#H5b-HE& %obGO%$]`8%_(7+)26Z<<+&=f]tRbMl[:@8fC+=[=Q@r-@'3d9;j`P!W?)X/&`3Z00)C?cQnsIB:06@l:]P0/TrTXSbns %/QZfTGeG\jK],JLXa[V-n[_rJm35Q7p$rm(P&QKBqa'>OW%k8oa[M[m]rhitpjH;@%CC9anRcj-F66<(8S8U8/CH-+>TM %.jfQTFC/Z?cLn-p#iO%A($>!?+7Seg-:QPXUpkVdU$&gHL<(a)*:Zj,BL$-Il>V,eht3\UVOtF#qp@"J`t3Z806`%`26"q7-i'4O %1t.D6"gT`f9[%U^.:q\"_"$e`>PUDg[f<9`Rl>C4*mNT%Be`I9#*:EZCjl?Ue`Wa*lJ86$bZ+:,_BZ%Y4rMnKU=*3p3N2Ag5d-%] %Mb$'s5k=+o/Ye"d1`4ZY+d\68=`+jqLLV3fbSa_n+&0-o7oM"oi:?%,-Kajq&D&@sic-S,$%6:InVbK#pSliBde,os$(&>hl_IGT[Mek^S537tn+1e8W;2llDpX.[G$;5`FY7rE3DBb.5;rT"XFi``p0'O!T]Rk@%bBL.G>8d2l_oJtEGYb1T %@RL]#KOe)aZDua)oK#gu#hejPk]EW.*;0:!:[P4r)@BE7#Mb!3AD"j![m_]9Hp\+CMh.)3:n?Heij2i:j\^P^2DoI1O;Gd>Jsmd\AHVVh'O%M#,sGC?Q>_l)STCqI._PbsT'J2'Oj:%f)7R9j'#b)D>29o=VBsSSI!nl0WcpqT=lOpNBd.ku`)E'VS0a`EE`p[Q)iM4F@F>%.9PMtQ$]Sj$en5_T`U$O6% %H2h)Af+jLq;F4^7E\8?hNH=!R..K9V`ANJj;t&;GGM(R*rDZ,H.\$$2&n=&n$)UIo;OAbh36;?u9]=u5',@te&j&cVWK%#+qUn@: %k9NDi_^SM-]ohbtoMg,t4f+`N:[PPSH0NX]3iX!rq?60iUgM6DF@/DGHRGoso$..#4*k$h*H8)#>:;E\fF[V_88(?^a_hl"G@gA&:Jm-/' %Hrr_"q-\DYD"abi7A'/r]RU15NUXlrUo-:;VZ_NWENc$Vo07UZp`Mu_gEF?'6MZl %_^E.3q9f"e)K]>j.?6?-Qh[DHipufp.@R#_PdINWq'i;hSG<"RH-`+I5.bmmf7t"d5;/?_iIT=&o;e`h4rV\l7t^V1'7O*e0%EZQ\t'N!9(4gFJ=2m2_^Vf'Tf8Y.$S.^)IhfKY2`aHLV8\D)G=lff=#S,SXN9Tf-S`G"Krrj<.2,g/2,F %MU$Qi8tP/I8Ne5S0d]spBWngs``4Ua]j+.EH$>d$a14@%ETcr\>db[8g's3]LIZGD*;M%/G)n,n_,ZC`rKs+(<"6C%9(>ua-Qi5( %l\6M="B3Lrn#:U0FAXAmY^>Lh7'N#cGA/E0B.&%!=lc?556c<&_c`PEL."i%"MktA=e1UQ*T;Ck/ioLnL&q6g&KWPn2;uYC %OWFk\X6;AIb9&!9SOIAg(:3F!\T`:4"Wc^EYVf`c6.ZS03Gq%!]n[cOUY>qTTn*=d@._iec#cGUNqUk_rbFacrte/7/Uk-7^gn<% %<\'S6NEY270lNA^h7124&Y?g>YJ,2QjXP^i\`1.G+ZOU_qP=_j,)9/eY[thr1=O0SR&"/Q>I)YW:e=cZVd5mk?(Rkr %:%EBSq`k+Sm$$OZ*"Pt!8,8(`H#T1;?U)smf#+E9chkL[Y=-[d2`Fee>&,7@7\k[Bf.Ua\p&$EQ2 %`TGYMp/J?r=14`5E`8"`bre;L*O11TA\T!0>)RY?1%jK %5('`i9s8_LohM(u`;`L@i]85/eV_@0XBLJSH\!nk?5u+B2,CUL>LWbj3n/F9Ib!B`d/DKS'(tI3(-mr9Wq^QMi=l7Wf$B1&\pV5m %o9cYn[/2^.s&tFO(J;;WEYM]$6WVcr*'3T@1R%2meH_8H>Bi5?>C'[\mY?1klG0XW%,pT8DS=DWM!Z(\*M^+-o$3'G)]!AkF?V>?f>TCsqY"ZbM%enFYd=>tjUAeE1Q#kJgMZ,E,Y2(-!+1R[tK:UR53^5pci^EK&&@7I(HWo1,kRug9<^=BP %R'.UgagK%<['V1.m$3mp*CVdqZu@YQlirnikotkD_LlLE[:7o2dRIaY3DS;;<.JWs/mDg,cWFD4fS1JF8ku6(>$ko %B^c=$lYsEdHo_*UQ+KTQ8T?ucC0a[q0bPN\lc't9FoJ=D"*rXJo",idiRgB_U%XUqao+>Fm50#g/tO,gcdll]]Rp$p/-kAlT4T]l %Y+HcF7`$D7Y.4SBfIgiSH'5P("*hol-/nHt)ilWj0eOUiUo+j^`o/JGdOR;NDk]/PaQ4C=09X)*m^QjGNr %IT#O]SK1LMG!+U6nT8Eae"%LTGBTLt%0!_$G\l!ql-><7(A($7<#qQ/gJ(q)VN$Zk>u8<^Mp:/bHqEGlCu8$BGs8f0_[$TWPT#b\&4;`=>1W1j0Sq_1PA'^42B_aWD0DSrSj9hMRBhSBV%8WP"$!"e5=$ATDQXHk[o`7rp\jAbbd,mh]%l_Y*3$jP"O+14m^tUTOr*pll\qfCiSD>@EG:b09CMGsR9ks)r4IKg#2;qBP_k(S[:\ldU\,p:%3UO()u9!h6^\hBl'/0%Bl2j55RC[2S/7SXVR&M8m#?Z%QZ#G728GN,&1:U29ukVfiD[64YA@g %23t5H'oXTCZkhaX/FmnUCU!T(\`sY:2q*ehCo9SnTd9jBhu2BKrGUT+]RT\HreGF+E@[%K`UJ)TnMc;So@oaYmr%%<_\2V/5JOsY %F8PZIGQ5R]gD@*jX8llVSEE#Znom-qot97uq`>g9W@X"FUg\ %`u-BK^a_R$/5Hq-6"-a`LGm2llc3E0m^"/5oK2[dYc9rY6#k=s'NW+sC/\9JIgi4C5!+?l^SHp= %E1iHE6t`7$p`U&_S@EBqUa/JW5ucP0"&6;qm!!j8C'(l5e2UhA$_P4`+Q%_/,\W#NEYi[QTD`cMJX*QknWMU;jk-dXRnQ?7lj=\` %rkp;$jDj-?1fuu/KP.H`N,Af]#t)d?%J>*#?[%Qir*hRe@%R.'o#dcZ6n8it]GuuR<`UF-G(FN6lC$(SN/B5J-9KAN@kb)Ff(_;& %i7H1PLGDUN[DKuQ,01@ANLE%/fF^KETp9_n\_RZXVF(AY=fGR*\]K.cjo=R5o"N\k?9BSP\LdY4*I7kNkM\.dI_nrPne3Fq53<7O %H:7KV8D\^%_/tjf?>4o(+S_WnVDXD_k9FaK;[CBZ9oGH.'aA&<$]%i&SX#b/ElE^kpc/]L*/s&HhWio3bYu9rVmNUD#]EdhS78E: %!I9XE//%m'+,0l%QXGi2D>?W_l--oq^NokQ8&]!.O?!5K(sdBpru_8PGRr-;kWEa'P/6rgXCXR#opoR/!k&->n-pH:43'Gc#Ca)a %LBeB"`+5YM0ENr:o4`kh %W71G[&V(is@2>$2+fn@&C\&!b66=>cOG;I.JlTL%ph+CKnhPod(LIDC#?Tn2SXut3VorMr2G>70M%Fd1aDPrIQPAX#4C=6Yi)8`` %fe%(V<cZ'X*"3ZQ]?9nN:mF[)tcZfJL?0@>d8J/=7'F;UV %^nueXN^`GV<:\cX\ITg3To'h@Wb%tK*)VCl'UHC=5dIH;$E>[Me!QAu#mF\m(Z>Fil>5pe;Mp?Jd._>9pYf%*('-=(49MKA#_IpI %?4]g%6o#:ggj!?b9_("JE6`S=?I,kp!g#qn!`2WI18'o1,bN7W:eYPJ-LIpSHNN.T6>[WR`B3%i+L??`a,[XSUJO7Q-5hV2BYs7" %0b>n3&ek@[6GY`n/UckfJB9N2!+>J2JXDjY7Y,])3JAKipI'm$Pf.A1E[_[K,>%KE0SH%#2_da;r0'KnMAL %!/Dar".!?_,FPCC'i-RL5_*aF[M?_%?;P(khH$!q(mC0?<:0gX-_4bt+_XF^c((.$)!X(RdhudV"/0N, %V5A;U_-rS=:JjI`!oq]5!W#@h$tD!p6m>EtRFPXjF!mn+Yd1HdF\_*X,:GO/3af7L+>E-2S^GE`Q9rCj)T`PdA.)-90EZ*Y-=s7Z %.DX(?(^i#1(N&1$J--@mWU'sae=:[/SV'O3XXrar[BUDHYj4kYM%$J&frIOar0M4bJ]==/ZCh//&_J5`L0P7su6!4G'u7/']KghCYd-:T\!A6C9mi$B(g;8*At/Zr1]^`o(uW'WrR%V]c@@8P?- %OA'g=Y-D".k&IYT.=rINl#"P%/QhjS.tW@X?MPH7-t6Tg_`O:*&p/.:hOl'nlhqOBMXKU=!!C<'RRbM($ndoAMre';m5/G(&&MMS %^Tr`%[-8$:>FJRUC9=5I.D+H'Zuj6JX[O\/%N,[PB=^[bE.YN4R;&N-6W+2J&;8WJo%jUf#)p#M+89 %NdmF=?&d!2>d^Hg#\2eWPr1u7%!:hqlgbdfg"qKUXIP]Y^>G:NOJ>]2-!NY3fG)he3cBQEB**ao>nN#&N:USq=q!\5E='64QnHlC %F,XOK%*:5dJMl_SB3_MQ/OdLB6N_0Q2%hdo4CjHk1"7d?oRRl1n48)&QB_MJY_JgIU2hCMkg[hTL:2.P!fS^DjfB@J!)Bjq4CYu(PKo7>"s.5j %3^[X_"!#,GZQPpd!,s!MZ6m>?J_fC<'ge,qK#P78fh216"3-o7%rFiA9N+nu'Fl88(/3D5@;nuA3G9:?i0;auBrhpZb\@[F*LdD_AEFMT_lQ<-aT;Q;CI7u%=kjT+FW+&Q2j#H9YspiP'WN>g;]L=mW$OU%'&g6H?>M>N6eu^-`UFP=2c0f3O:-:O5ZO1#DegA]H#*(HK9".2#MRo\2,6eqQBLFPma-[P/0eq*]K-A@"7@n^XTPUi6nOH9?E1*%(dPN"\cl"PJ/H'Q-qT1Z6DMFej7c!6d@] %VFaLh\Mt\:8O*H0Gi,QNCgr-#G$2D:A-A1cBFo-!PI)@TSC9J'Yb7.=7s/;2rME4[7:!gHBG5;*7I2OCB#u0o6:Z"F+NGI4Ne'\s %P1SLuU^3G@<&X8#6I9gS`2P?(OED6N4":M0g(HN6C^#?*IV9(>!ObV>u>9k(t`f`QS/Mh %*tM;-'dA).!-;,4aX4)E&o'e0)A*$)VMR;bo1ZsXJa2O:9C3-<8kLS$Y,ZX[Al.$$s02hmF+(/Ga9``-M/:65cj"AeqQ0C#RjA8ronAktqMhT-C7=jK4#=f*R)3#,tDWu4m]a5==RVI5U"MC11k %[meeg/W.#r\uSZS[o9rqo$i?oBrL;r9G6W*f``@08QGsK.g+#d3UO4Mi6#NQDlf#F&DYlR&2)C7GH?2OaD0!7W+p %qDCkr)@3*]9N3UFq*c)(;NBNd7e8O^*,N,PXa3M"_//)Amb._=>nA`^p%;nt$KGp.&:NL;3Wgg*F(GY$=R6]/Q;R^uW:N)Y2"$i: %`mJW!_Y]7u;[_M4(q1Ff#Kmt:BI@3MTIg4f(CXRQZ)A89/!.[rWFaUfaM\K4i+149oQL%Q=;]M#9,LgG"K^n+B&<#D?jmsqd)e^Q %Mr;]Zqki!phS1,Zf/3M=&n;Wl3R/i;^hiFS137aBm-_149F*!&=VtA$[Z+.71!]orSM)$ch#jFL[T5;0(_K=0eE7SLVe2V>-93-PhJ\EhU\K?!gYTR+kNAc]d.1b%!*Z^\b:2AO2f^bhK<%5fUh#J\D0Jl8)tjY[d(W_/.d*Q&;/N2;MB7Y'5Ek1o)A %r=VEh'*3YAlCBT %U.dB;$o\EDigm(V(a,dB>UBqE+Y\VO$>GA)%&p7\3(A7eJrF/B9Tq:b-*)Rf^(LJpoXoJ\'S2^PK`cFK5b^;nh*D7.<@uLQfSN!=-,MDk=Kd=YWC)lI#<.#&ZGS&`K(#/Ro,HX(u;D'_YQ+p %7k4[unH>Z7.3jYWkui,gK!7hDPpX(%7F'sU5[.2%%NN"mY3b[C3r2pqkn?`.;0C(/5a5cE,,;ZJsd?0Gkg%"ZM($(IX<*/gPZB*`;teV1I8$'\GpKW6fdd*Y'0ZrT0EcbPoJ)JIXm_l]oo %;0i2mIoq;.#jQRumE3VeSs"O/'V^P>6r\u>W7!g$Ohc*E2*IslB*.I$]'OkgYf`8&;+I4.p+>$`+`Peu`ei_Z"O,"(E(=/YEYWX %JHFb$;Y^[s<=Gt&06fon)BUAU[t;tq"&Q;h=SGK7-I:RA.k<9GCKV,!Pcj;q1s%aC@%)5bH#&\s/C$1/#`KYrfE'ReT,On>.G4Sj78kYOr0:ocoCT"uDluc?G"!2Af0#mRiXDs/ %O[ND[T^AP;o#O*?"=D==9:V#u^mlt9TSrSu&PCUL2(A[?aB:u62)]^-U!.p%q>JuU6>j_RBAuapQ%9iT>DPr`Pnu>G)-DeH"EXqQ %W1.3DVm.(j5%G@kP`HQMj\6OSbbA%tCLIiF@%(hp`;n->8Vbp[prkf&bo@*[0W1T0:9a0;*p)KO5U%^_i'DR/WGTo'0EJQj)J>B2 %3IT&Eq?1=3blq#n?)!f]O.P"m6s.g?=R/ibi6eX8'U7K,<=>_/kD`gul8bUHde@gepKMO`ZtD-Pe[0#?S)'aL'aWC_T>J4`!mJ63 %ES:`:<6a-'*ha%Sd(9#VN^ZrB>qsL#?qlV4*8qMEZA2+`'h@"_P=0co;B.8?QTRm[#gbQr!ht,Y@Vk=bMMZpkO]m32F#NQ2jb^.u %q"`R4eKWnBFnqf"V3)JB)UoILUdtPoP)C_ZRlNP$h"qd;R%S2`4uQQ*LA'L:8DBIn"#SmT_&CZLR\,JQ3U1pd1B;ta="H34gnP!f+M\'^c%BNf8b",+Ycp?Sj8nil9K\dd]'%c''[j/aTN3$dAQcZQU0TL:jR?INhhk/f$_>5hf\N%2%Sn %)/Y"70#fO"rt.%+@<7We>mhf]ZR(0DIM#F7CJ7Z4'`dMK/a"If#AONJl5(W-.1?jg6X\IZL9?5>@*UJdNB1B/:JA&o$6;miGtCR6 %Mu^kuf^A^^.LUen4_o0^,'m)J(M\gA[`tKp@@[+N^h132-HKTH(M0\MAcV5A1jM=pF>p-g8cSmEDY)=X0>B/seBJ4]@^h9LaB>1mCf!OT@F;D?Pa'HYh/\hRECMY:=XTp:R=KYH)4be;@,nU_DTb3i^iD=H\nf3<4665qN$gb%E0ip!S/BmVP2ufX %!p=A[oUO0Z5T!eo=uN(n"@-O$d\Jo,LS?/[MF9?'=R7<#C/hRUo[(UZ#L!IUj\AB.0!_>ZeKi*LJb,\88LSpg&ZDSH1up*ffP"nP %LfDJg8:4T0&SQV%oKY:nCqE$$"t&]RN#+Wf7p`H\Y9mL$%FlR%Z2c0\/dnlfCY2g?hbKB^k(Q>rR=kQ&odW5_G>Bi?"Q2=TFuu+n %,)efda>7I8Z%VC&`R:l`))kI9k%"A6QlJViaY<"!3stHcP^Zu;A#2]+,U7f#&62mgm6*$q"3Fe.`I-J]:rARN!8MCl]ECV">mq$S;sOUUS' %%k_*J(!5!TVJDjcZ:8n"BjoPu)]D3M?nfPc>B=Q#3'QD:VQ6*aOVKDL92j\F(8G&cVUp(d]sn;3.X&p<5H8<%P$smFVJq7[)g@Zc5XH:5Kr^<\Xbo6e-X"iY.#n-0c.jkUP7GZj:/+ %BtTgR.0Q\h>2l-((`nh<9E]sbQV1=*2V[_bn9Hcr2mW00_[IeF1HIOC,D.@,#QFV[tPo&F7gJNL">EQEG?`W[sX7]>e2Ug4/6,n#!TEM'^ %"9At.YEX[4q$MGN7^CI7$(/:VrKTNn"O;U#r;splP_-X4KK0]Te4!Ts`o,uReP5RALX]ejhuIG\<5@"I*(LCs#*$W4HHIdo?mFj8 %C+9V99L^Pq.0)=r,p7/W*._*"3eC-fNQD`b;%[L05:,0nUuE[,6F/ZVOcpn)_/-glDLY6\>>P0"+rIXXQ_pZZNfcpsD#uhW'sj0J %'Ii@-&QCiV*`Ul=YV.OO*LmkBo.F4H=gG0aW:g7(M8lPY#a/tYnH>BfG.tN[6R%Y61S+n4bK9(C#lp>YXRY;kjUi>sEtnhD`JA6M %8[Xd(5b*18K1MSuUc"3-A\4kacaGf'0&FB/ck*3NE!PDB9%O7j2&Xj&@0ga33J&Lf"&RJC,-UD9S>JkjXdu'JH0CAhUV2-B2oQdG@5T*3Iql,Tn_@6gA1. %caMhY/(ol;rH-J$RD6!Kf>0Q`T260)=\Ds5]AH9b>EI0=:/]pn\> %;KL:>6##Q?ng>Xo>:^[pBL$SDKB5SRIZuk^+V-n9^d"-R!7?g+,&gL&`gF06Jfa?>I)9&!`6hPS %'^04RjsjOY.lFE.U"+01Zk>2*RYQd>*h%tPVX,O(1)4 %6/DHRQ'1,H`Bf_+I=q[)P_AI8X-OW_9(Ylp`D2B9UW-ip6G[bH#pT.2=PSL>#a^DMc/.3*N!1(p"-4-l9>WoN8Efn=]Bk'cE).XBo^GTfL:pDUVeb=bO9JVtmTpJ7,:;K4&RmtXWLfnpq %F`S)lGfaEj*E2Y+qbF"K[M'bUBUmh@2+:sHH)8]^WtZ]a6UHuS!fuL6\']^=<5TuMdPI&/UB@7nQE3t@6ODLN14d%7rKKMn8D1HO %Ot%5/5!,\TB$t[C!\V`X;P:k"`rpa'"c`a!c&?m<#tbe&j2-nAlP)Q-4r-9>8nS(P %9>@.eh\]JKraj2#S74E7eud807Y,hWClfl,1@A&H,1n%mX;WtN`g31iWYj$M1b'BNcqVJ()HG"$/NSGO\n#o_S\#*CJFH]e@j?gl %41+!CP?#$/&r218X]*ef=tGdqEJ>>G6u(.+XAm<*$G4dMFe[u5)XWo?Shq>h%;Fd&Im=?M@G;n*?U?K1@lB5?nr %_`@79#\Ud$13R/r6itIN]N]qA5F/A!:`2\G"sZXO*ae&-)%,FJ*OS/%CKp=:2L.4kWri\4N1ben%X'J/;Xp3gU-O:0c\,KZ[eHh4 %h=:PkoX"!=G&Q5C]mThIjhq&AS"IuT$)!pjO'eD_I/E?VbPNC,IfA_q2m7/oYAU>noT-cel1OEscMh`u["#I1YHGCWrr`;])Yt@R %.M0XZ-->=J/(G7;;]._n9VeGQaK4*?e8!iCQDfBC%g=LMX,nQQ[fU@)$MrSY.&mH9J9S8uIOCeKT&bm@[Zs/]Fb/&YjSLu_$6ImW %?Qbo.Y:(h&.$+\[M"PV3Y<(5d#B91Z.`\&lpq+frrK':`:a'4?KVpU$$.jM$(!N+;V1CE=8N5Ku*o/A/:3S4m'JNsAAc9V(+N[5h %L;6i@!0t*)-7.m0<_V5BBTp@!J3j8]khsjGX`UXH5Ukl18V$r.]0`Wd]%3tH1?:d.Vj`;hmRaO@GNV&=::,h %WW[=Yj/R;RE7-mS.OA?A:me'l$?rWC %0j+[#fC5$*b.Y2O(G;R"ed`B$FDqpF'u6,;8'Y(<;BS59Y#=T>p3o$')]f9/1Bu0^K;He>-cT-]3f8Ta7U3FX<'_EW %476tiQC?H"WmhnTR?Q&4BQ/j0,!]^USl/[uD-FX!A*lOT^nb;PJ`DeaX;EBAQ)#*":`6=`]!f:Z%dSiSbZM*67WqmBi/#@F)5_\! %JQl_8FZ4bCG$TtVW0O*j1H>lTR!GpiU)9TMZhS`9Wo=aE/u:`g]%dJ-T)o0@/9tsOgaKaA_LM[Cp11YpLgDS-\Rn;+*B7fZ49?l?pq(red`B$Cig(: %Go[rAcn/j"!5k&18o&A0qe@N<$p`YR[Vp5FkeE/m8Vhc7:VbZsT##^l;85PX6Sc[>RMA'DAU(\9U6dYcI<&s$cCn*HOM@s%GGo=TGar(/qUZU^]N%#+M"Y^)b&uUVdQ-!/RWJ$)M)lbQp]L+4!s]K]PhD%Sr/L3@X9Uqn?t*:Hqd@N2dU %B9TIc8TS6E5t2"j^\e#FD`_Y?L<&#!aa(6'*'!J/JJALPUbYGk!Z?Pdle8q!Ff\dgOK//'G7i"1B','u,2TH;iOh^r^q;.+Bh=;g %R<"F&#Ln2o7_`l"C,@l1Z:!^-r,r;]:*%,`:V<3r?%Q)dHl,)ae2m\:"sAVmA@c(+f%.4e%:-fj?>b$C*qF^'e4[Bd[' %JO4p.=2D%KB?+2_b`eqiJBD/of!XoDE`b7_3176899$'n&JUMd%[FoM%.(gm.2M$J'NA)*Ejm?[?#(DO@"QGQJP:U.YL$U&0\.M^>ChFG`i7n"\n,`A8JUnB.0XbD0[");X1"C9P/7QA#7:XW>QlK*[cjr-95\ba#`oX? %C0fTN08F\fK+iKfq"\Wi&Y"qo5^9MDj"`:l"]EbuG>$rg$<5"L;2q_q5ktj>X;r]'-t=!NKi(;k;ls0.jjZ6s"K78ZC0fTN08F\f %K9LS=W+.f0%:`>([stjg#L6c:I^Gn[QR+^"?]-Dm"B>)l0Q,X*AI9BX$5r?%RD4P4 %WMUgY.P>bN!UE`('Yg*dq<4@OSMW@"FtP-_+4mr>B0*+78/0_O(g+*s*S.$_kr]+N5=GkFS %_aU^^bZcG3[*?_pS`D`dL/rXruO$3cB]K7d^`H).44mWej:W,,IC?/+5ZZrPl %-kn'2"UAD'?*OUG9$:'S5io.Hle;&]3NO/@SB>iIdj\G+)DJ)`D?\%=FUnB>q0;EH1rg*L)2nqGpC3;ok-Skrldredg4;SAao86_ %Bhc@=8--:]qeT"j8u.ghPf, %4\(&'Q*3f^C[8TJ=>r?%RG3NRVsd]H\qfUeamPLlK-X/ZR;O>G7Lj0JN0o.<*P!N8[tSt&.XMV?#7:WlTS#,tdUC*Oe<7^OR-@a7E:Pb_u(# %=7A@eV74!=NNePFlo#)r:'e'>kgWXM1&X@S3EJ[VJ^02F@'d("erfF*>>cS/7aS,WD0s#;edW/(g5A=go;$@GX<)JmK"A!4nA'YD %qUedcB^F$d!L9csb\blGb6*F-_V0Q7J9"Y`61/FX3%^EKIp[a(I](`(mChdUfDRpr$V+9("NP:4eOl&-DomTO'?24En]&>8SpWHE')^Dtf6%o23(dJY28]UX#MRP@m;\A+,Y[kVMY7M*)tpdfOeOom1P %e[BL80f)(=h@s[Zn`NW5#W,`P+,;Z9rHJ8_n3l?]ad/"H?GGd>!uGID\Au6TV@0/#cO;0PA]np>Io_CXfsF.lJ+#.>1dkHFmc_GFUI8Io>aeqg@ftU %X=G?^b(la4APG[tb]B--%]2"Y!j&glf8"ef6SpFI'!MeRD<9dA-.WPO$4MK:V>0rikrdM@pCX9@G>_^>lVkj6lMePj#8aWDm@9aA %Ejl*_0!G$Zp%oH'M)98U#%ere/T/L_5R,O!Xg[_6#Xl\5XOn%msW3-1/]9"'m0%\.[r %T.X0$4Ul8Zqa7/1L'"neP?*G/D6Ye^QrdBO:aj\A;6UfSnjl.28gbbR1\%'hi&Rall:A1bh`g\eGeEcN4*LFH`0^:e<= %KnSJ)AI$Z(Q)tD[VNjN*\_'faUjl[#b#Th<[I%7?=BD%XRJRc`qA_6+W6jDW$CnZ:.?c:T*p8!I!aZjG6?#3OXH]UQD5f:#>@Hna %Tg02+*8HqMf3[ %K$^P\G\UMghd+.2iPEXK\'RKeOY9VG>CeL_f9?^:Co^k.29m@eR'JVS[Ua;:KkZON"6JS>IL">=WCs$fT$r0rJBD#;X0&5eVr?EQ %ra]mc%PAR"7+C6V)daV1ZKbJ49TOrf#J2+]WEjFTo15/u^XUt3uh/l`R)W6@amq3;144fXm5Phgr9cL/SBUd:?Yhni\^hUHdJ%p,+gF9OR]giRiWqW.F[=u@t$70!\:c=?'!OGf%6Xt2' %:ckjkrDjU:&Kdb'`b+V:@TUUgs7B&)6Xh]LfQ#hTZXNM]L@NkV

6WmLZPtGacNmLpgKU"5VCQ[fU3e(*cG^"sgb`\`l6iQ1$k: %+SQ5Hg=%&NCYQ?WiY$#3$3`Hr$F[WqO#>RlZ]5(f)IJ2%f=&3,abFrUK2_SY&SHt2>LK9'*fPB#E[M20G"Pr:,24ss2-TPF*LPVema/JRp3o$')]kNl7Dm;clqA+)I,AeV7RQ&g[nDK'/6,hEA*lOT5S8+B^\LL+@X<*U.gcDmm&cbc^:T,B_h4.5BV^SD %:/'mVG:RXt$Tlp1N>FJS1Ei+NlUW\9lJAlkY80_b'/dW)^E`\*?D1-=;l%T9f4\N7(Ak^4WgH_67P$76$ %2-tlsF;=&V"Tg0'6CXlIgKp/aY^55t3e'5U.cE"B/nDO`(C4[_[YUB9eD;dp]&pe0T;DG'1+XMf"TRt0=-Y(_f]II#ZHe#JrKL8t %^U%!F8Z:t.9_27e;S\cD=&iC4F2^3TWrr3^FUm3mVf]#CdRpEF;3dtVleD,^3NO/@S>[o1U9eKIfiqGl#F5uP#qsL.X/[_t0A1_[ %<+SW<6sm?lZuWMslk!Nf`IWC/'Lh5cXRo:A.^F.OIG?\ns%lC5;lKeJKk@dQEfM8b$mbnPr@=''AUpe!)t>1^4Wb@05ri+,@CE"V:dRT3g: %i*HTh"XL.qBlt-jlFCA2M'_,KbuMsHC*+D?ip.jo*>SnJ'iPNRYH6`tm]3QO8mU344BKG2l2SkcdiiR/`jSrW=b*nd$33_V^>OkK %kN5FDB]lBAWk5]^DJb$6"+(cK"^()e339g!MPIsg@<'dLg@ftUX=G?^[L,YW2:2#SAS!jBCQ%83c4kUWksYSBfN8:+>O7t@eY %ieV_oHac&a%0oYi.Rm)qe]:(\^uE.1/1';YeKbIB>#g8ofF-(-\S"mnHefHKB3HJG0OKCMJU=L5LU:,_EYi(DU&&%9hQ3[08UTmcYM=%WiFf*44O7t@eYieV_oHac&a%0oYd/tu74XMUW1?ub+2.j^p.:kXI)<@)+&NS0Y%;76O3 %@FZ-30XhKb`S,mW!m:YH[8J!q?<+sAi%)#kC0b'$?,O84_9(J$**b#gg+0BeE5*A(J09=WHo7ltUL('bAgau\MVYnQ\3H^5UkZ8Z %I0Go?)!i;\gK_/b=B6+A:t_o!0&$$e)V,?.:?F;U&YllS-G1DR8lV?X@^:%,8f@7]GF8(T"l1Kn/Rq[mF=95tb-*@h0bfmM`MrM@ %r7;g`Y:H0XAab^J\a948WimPMd;H=ql737Hek*\QR$4H`)J).U!oN4nV7=8/[7VcXtdHZ0JMXXf1W.]R_#>kJh-X_Z\geZj";nF[hB %Sm7I0nTsjC&%+GI7-LR24F4UaFK3EuEE@Q7#IG:i?V]>WX7ZD;Nn"/WobA"Fl0iTbM^7-Q?1eq.X)$I:eWI$3Ik(1Ei%=1bQR8iK %ik\YC"jhe]3/VE#'ihJN2;(]E[aQ$^\$rJV6/H^'l<#(R9(X-;PJ>"'0%JZHNEWHE')^Dtf6%o26%!TkhG*=8j^ih9O("f^&M %<3)sL4e%W&qH3D*jFZ)c]e.N@.u5fK*NW=LnPH9Mic/-j(&r\`IDs\#g@e9%XR#kXb^BkDJZTgrX\K5O4(U9qV4n=j9lGE# %eQ7hC/a:ni>F82\cU\r)%Wp6&4P8qpGcXqC`Db]pYBXefgYOT=Fi/i1\Sm"$lg+3..nch*8jRJhS$u^&"aeh+\fP%'"ei:VZ"Q.$ %[YmN;JS#!GW7=K03.kSSo^fo&@%C3I[eImP?$H;OXrF?dblP3:.irML;NT<^Bt-D]AILQ#Zs8\m?_N`2C;@^?ia%Rfoq>j^5Z`AF %$'o)1*ii:?nJ&Lu/"Tqrep#`MDKp+Uf*u@eeSIOP^9Rl/05'N>YJ)[c_?^QJF>!7A@[a)YpHbouE!E@O%1=\pZp$YX(;JEDN>>`? %"@O&]FMofcp22>-%0oYj\D[]`eNR#\`Im[jR7W[GhD9l5:p)qf5g]#R!OZiSZik_mM[Qkf&hDNCFL>29?oliC`#AODe1$3sV+djo %[-c[l=B@UER0SMSc'mI([9&Z%WKMiu/XRCPl4C(RG[.BsWO6Tt?Gsupm6I_cZ356FPU4c2`k6e.CTf9\m4E[W3lY1os8Dl)&T_P@ %mCE+4%W#-CnqaVS.q2+6Prt(E>L$ueUc+\sC2Hn=J-E>5Y^2u6h`TPkUj/tA:W68jC9Mks?/+3h_g6t@?gkahd;%RNg++4\Eon`eEX#X!aP+-:TS?dHY$?dCH[mb[;osHjG[0Ll_=%4lF8a1T(oi1c*FL>3Hflh60jjma>p>F&7 %2q8=]?1!mh*'*/l!3MS8_ucb\io78R$A,',+ouf5YI(]'Vb+'TYSLX2_.]d4%RQ/h'U>A]JaLsFDRNj*[]ZdbPs'@Im1%@nM.0U\ %Yk6j/N?lGC6ufGa>+'<0`J6_3Sp:@O3:Stb?,b1+)Xp%os0IOsd %:cCTV\Ub-m\[-&P('H_@\a/!"dCm+t)mI$P0n?fd^tp;m'i][0V[b %WUQ%D=GonYL8NPi3`rSpFl;O=mCSTT/,e,&-;-SFg+rC<-0]GmiD5YD#9@#t0rM(qdXu<='prjc=[Zho=t@*::>51%ZG7MP.Xotb %')Y2NP?p=Y=-o`gf*X!UYI2qR5D-*k90_1^[Tci!F`e4d89]]XS#*[HAa.%=JdTf47\Ohm1p"q*WHqM/ZG8XBYp>?*8(\'<,lro2ljkEWW@#<+*.De#Lr!?t#%,eB0>H#9c^B?u6iaX1e/@eg`.tVmYAR %5Cosq90_+\[TceuF_(fL8qDUTA1+qN[5Q26jshi?hc=ik*.tK(:fGt\D&1cZ'W%gDD4I6>IKj(pQ@?9E %D7?\!lfoNROU;=VVj\o3CU8uX3euiok9MQ_=VbPL$!@7G9WPUU!kBMne_Ou5>+h\sf6SopT=+5^5CQ\1V4VO=gT@IJ]"7kofAWB$ %.4EYFBc4`-+#?*?d!/$JS$kc2#^ZYaQ7j[u_WHgjuq*0I'9,Ul_sH>p!a!^P"ZmTOl>(7/h+ %A?F:3G;[L;;I*LnUmt77BI##R<9#8o0GRRO40=cLq?_7D>5H@L[_ljje(#I`dTjESR&*Eu#j$@^39Oo8U<5!r^1m\I"RO3U:k0U)C6Y/#S-e7t%0pDdC=Akq %8Zh@32L6e)@E)V8+OB!0*J#0m5k+:Hga^!j,.O,\Sjn/gA=OJcE>QKY75l(d(4;LJ>ViF@+E\9q+R*8Y#LcaNb$/g*onephR")fn8*%:S%/@@ %GtYDYK%P)G6nf2!*[E4%%9mTr@5jW-F#-5S0h56GCulYi[1o;#&+0,VR3*"rPdMBl>GA"]P"T+#4'!OB0;s=hBre6(AAjgX*H/M5 %9do#MOKu=[KSf1(M5(.WY(]MFt,bs=1cTX+u-O-&_mjU@$b %PR(p?$LBpo(=t+Od&pn;:(#0V.\#@3TqAVeH6ouU@2!.*RkM7V8cO?TE't6"7VgS$/;ZFIN]=DXZrmsA-9@TjBm<5qt/]_ %Y218WI/`bJ+m-7H2cg"O!;u8Gf2mGS'`YTQrV_-G+.iFMIb"JWh&eku?aQOlIJ^d.pY5:td`oC2f,kBeq=WYFE;[cBpLj!U^jb_L %_cM3"r:fo8E?%B34SHZhNeC?er0*_>i=H+8_m8l5(HcleD@/jPhsQqXNqMLECI'BQeN= %M64qaddB?/EY\U8It.@Uk!a6q(LP(=(&YFap-3EWbl>A%k5TmaR=G24n%QO2puBJ?HK,@Xheug&[!D1!>^ud'c;&9gYDZA\7ngoDRhrP+S=_g^sEXZlMB8io@qa+fOJ.5-Z&M.o8>V%)B-qq*Ht1_h_Xqb`9uuqRg;G:pS%Q.Nkk`2P:M702+SqF$UK>%@J&4)1d)EZu;%u@5:9Q=RDuT'05MiLgoT]$HM]%g:DRNf.#L37sa0X5ZID-)EG)/M( %Ng9D3q<#T:l.NPD-aV06B`/;+VTnEU8,)i=jQ8E$rcij6FuAhCN48_f"=YB_1dIm*/JDbCn5m6<^!b=,iU#]^1YB;[&jp7EKK$=9 %cSpD$T&d09c.e%%d;L/!ABmb_Xf671e@3rSp\"!i41`/?34q75qsVc>V^2h&a5ZU]_GF86nE,DBgF'ld/T54&U:-S3?AQT8n@_\[ji6q"F(6 %lu\Pr]_]U*0C(9\h*_c[f'4'T`[/>Zs7Gj@jRhg0m-=9T-QdPgb)^lDET9+MV]!@.[+e%g\%TFcL[1MU %R/>/G6&m):ndkJ#r,&6/F0K:m0n6O<\%S0DH1"liI,U%(\5!_5e_8N'PnZjo)+os#Tsi %o.%n2\NRKkGHn+*(7MLGY@e-$f<6q%bm3`e7L^&H["Tdm_p.l9N'!!#?GU5u[@%AmS=Y2Dr-XRg\6DJ\p>n)J2KOps&45$/$E-cPEqM4ASZ0bi?``TU_V`a];>Y&6K6W*LTC-Y8`/M7qN!3Sq %K6T7`jd[j*[F]VX_]WR8II#,pDt3e0)-*f)5_p]tic,4/=j#Li5_qE7GC'E8G+.%ME$3)X\SjX7>65t65_tahQo>lgU#0`1`#SWd %[Cg(+"!M:#I:pbH],:l/#CElpo63/*@`I34?E/>M5_uQ96L7Gea./&ERg?[TWU4-qY;q_MbJ$4>^-?2jJKD[1:0+_B80,pgWPqrOfG]OqdLHOJ\%I=KqBZBg:Z^)5V3+R+],@6TRLr\!/gibd&0sA:M533$[GpsdsCSlLeeD(>0,/Z %T!jYAokofYT$iD,4&fs?Fa^eDF)OVI=l,7bX'T\bchN7mq>B,_(Os.Yq<>L3cGb+_="dl@04!u@blN,Ia1oiTdHd7h&g=kI]=bj6 %STlS`nPYDA2cH_CcT$l#0)2ZK^G9P"qssc%YPe8tq76FtX7D%Zh2g_^^NtD'iV`!/QPb'Sqfm:)qotY+lC,FR2V;4`ENtAX/G1U' %Tt\LDO&4eEj'(;MI>_s)>MdPCXW\gu]XMo/t-9l`Pl0;;L!83qr?ekm0r7CkJu%pa6`dZXB`'6 %Akc\'=?_GZEehia/KW*SA%?h8(Q[[1*gj=PM %iPXgr(&k]99$^eYf&,bbc7U`Ps0Zhe(["$\G[(0]IgW"d2m6lJILCQ_I"Y#A=%2MgRW1eI+)Ko1#`l]j=6tZIW]`*ri>@SPH-dY/W606YqnP2"_3;BZP]/IA(+n' %6I(cQg\t"Jqu$$Vm9OWXosc7V?Q>?Jk#IpWP[EPj3kD2lB'&gM*-IQW+D7km+Rop*:WH.,G6kYbcqf(Mq/X'?4Ln=DSe3m:*>+/@LIVVV@m,]b0#<`B>^M %%QN#Ue&ugViEOkfG0osR7PYi'@Y@l88P;\T_sd@QVW?&o%UW-)T3ft!4SE9. %9hSsbbFQZ8LXY,;776q8R=DsQ,0cMOk%=k&c$%t)XeeD:+$P'5]*1U;3I^#ZY3.aR0 %g,_Af>P3o68GM5uXSA%6mcCRIDT41*FoHhbF;?f^nMTZK^Ng8E7%DkjE+[@CL1L)uJn;7k/EGXi,?LG&/IpS(.k36G:`hO %VS6.6[R>aQ/-/tr'GjEXG+?HZ$$_12/=(f>d"?43k!W<&>0r:D5p'u>:2`o\rciiT,K,t`g9_[EpC"1coI2"T?@)$$CgWPapT7L^ %e\UCj,N#,@3rAhBeWh(2Bb[S]W2B %?uq&!gZo_noD01K^Y;aek)es@2qOBPD?71lKj<'&'Zu0L]P8m[3BVejKX+QDGn.I&r(8B`@PR]EkF:p)?PL014gWhe(O_[G%W8KU,4Godp#\18LG9lHhdqRfMRD+2aZO`A-=4'FE-\*5`X2WK7c^%\NEpUa'gQ\kfJ7"@I+'WI5Oqu!Yd02>:Bn^S\3Y!8MJ %T&9P>?ZQX/T5K.Iou8sKHhj>g=g+62m05k1SXK^+Z*aN.3"3`R.fBENE\0s\=Dbj0kM!.4d(LPDKGb7d(Da'\]T$:NbfQrkm^=mJ]Md:U3 %IYTH/K]R(HB:/j"boM18I^^W)2t\$b)\l8BRg!\:/LnTZhu*B3p!q_8WGD0b/JPg-P4OCLeLq\pj`Mi77:97$Q@9>$o$,rUM<0^" %X?Q"HkXGJS%)+q2KC=bsm-cDcd;;(SH25+:bu;C#n(^^pD5HUnO1UkQ;qKd7lSDYY5@/sEb]XM50,&[W;4R2`qsO'[PFM0u+"tt& %Pdb"Eg$;SeKpTKme@1^0bs7Y5j^etOB"""tc"7(d.pH-/CU18%Z(`kSE,EWU49KBNFa;WLe5@t$C/eE %6Q=jm9=:&**m!G7l"Y8Lpf8&:]r1XtF[&mI`^Sl_1XJkMD)7mB>%[B*0,/LgJLF-Rhe(gH>@QnLdCmHjnC1E=GBhaE1M,uEq#YP<`(C+&Gg)gM3`cZhg#&SW',n\?+7pCCmq^HK>W %*>?;uSE9.[pG:*7Wss8bDmO-sQheC.>3:RZY?-29o@<)4G).W\!DGP1HYW#OimR92>^B7PdVkI'*PPR1!icrr8c%&.PH.J$Ae[Vi %*h7[m;#/Z\%NZlWD7'L;8+K>/i*nkEfi\h>K'MZ[Mk@CHn\C'j`8s-^>i'N1rh(&tIe!+"[JK;M=7>Iu,6797qS?EZb(SDh#@rrqbX10+Uk8s)>EEp\+@\I"(aL?bKBb?^H9Bri^O*809f-/-E5'+uK%5^. %3L/Icqf%Wj_RBG/fqbli/5r;5$SZhG5SHNQJCHkGd.Ma"RLb?MT#M,/k3pIXU<`s!U!*kYGIk5j#:W*3X>=E8*&#JcSm(H7;qR:SOFA>;jRr)'[lVH$/Z31j.E;BQ. %J:t6&KI97NEX2;aHid.?S*MfTk]24hIp>hbT]HCEosbF7?sO]?^0k7B.Hc"q8dcJ@QSTs>`OciSqf6P]NH4>!XAV-IL9%dA-]PeD %RPJ5]Ua1ZR_:$bNm>Xlj;TK')#QQsPKga!e$S^apl3N>4(])Xj'LE!X?$9["H8m:Aq!]ba"E<$!S>oC`=;,.I:NS+K^)$i6ZkZK! %^nC9ap0f5CCBqX!F$K]gP?_[p)7lJB+mIH[&"Q-r.>4VfD./sA;FSeDJ>FdZ-U\2'b/jp7 %U7o_jAYDf(i"uH[JAWb.GeEhBZV`=\E?nDXr"pH&%V.D.kqh8V+itJ!K65O&+jV4O1JBJ6c"r%QkD(H?&:Nc81`I;8:)6:.Ng6PF %A3:lcmDo-Ds"\DjnD %.CBt4JHg?67Y)Ci#u.g!c9QM7+QsqX,CT,kBF0@9l\X8S7*k+sL_'.*lVSTd6AgA5V`,Gn=!fC$&a5(36)7c8&QW-dfcQKLas).c %89bGXQ$,=B+WX2`d2*!UlBnIQ0H]Vf[SaRs>,1R-^H;AmS]((@r`GEF?iKF"'\W5-5MVdA5l.XCJBM-#?PT)h7I_onW:E/W`[G1@+LIt$m6cI`+ISL/ %r;EEu+)l;KB?Sm=6t:hr;/P:m")6R90a#`l\O5@Lmd"paHn@mr:2C*)Vj=SjbVRma[3f&5sXOt)p_9)Z2t@BLdV`P2qEY)&_cQlRJB$Q6.reZM=V[rK#6LTq8pS7Kh&r$ %RDG4o)!],+qj3_eCSK4dS&hpG+dTQR4BXE@Bo+Tm3MaIgh$2Om4ABAT/8s'[#@J,SFPV2Y&`Dd4&dX,N)=9E)o3E(_'64cEqS5(N %hGl+<`h*Z4k(q?"G4B-q(&,hc!r^`o#PTKZipg#0`#FttanlY)E;PaA(\,)n?Fm,Od3;4tEi">.i<&-77qQ%0f?4D`+p^hBUd$(q %&Rb73>eXMb,ZEA)/V0K.gnise)]=b23M)GXnibDmBq$kP'e*m.dD]k;.\sd,b9>7(h'#B23j?tQbGIgo8BO9qY?4Ob/pHrj1(%Rj %Nqk\V'AO18#/11%5$%S %N.MYp\mDrl0pSeR`X<->.&HKZQ!GLeHZJLZ"K(BP'&cq++,C4?dWBS0_W*MYjafsJ_tKLiSGBICM.eH%^*k"P/tPQ_l,>hRjO?i# %Su2pkf;:T[S.Wr,9G;n,^`m[]Oe.3Q17BZV#7IHM45Q>m).//$\VV+AY&PoukE.:Q4U?aF\2V4L4.io$e>)]tE:V@$6EGlQ#.\?@. %=iG%eifkCdIh_\#9sLJoTQ%tR%IOo:\$d/UiVk8\.92KDn#D3,,+dej*lZcXrC;^ROp[A4g!_3'V%]U/4)PeC/"Ps0!^V`>A9`-F %<8ojZqit"O\j7XA]bW=>Egt'G8bLG2LjH8F+9RF;Wq.@>&G%NT8'"Uu*=B<;c$$+(+fE2ZmPH_1BO]%gZ/`^2^Fb?/2l$4^=S]:r %6[F@2<2-g1rtbT5Q3p,N(0g6Kj^flQ1$#>_X=RPp"hhL6$ku_hb"$4TVs-XDN,*AU\qWh5m$!_\W;nIp7R\]6RK86bP\]<9oY^hTLP9b'2#mY&EM(sW.,,$=em0liZ %6+]Hm8`2%N;mTTU@#YXPT^Za:U96FR-'LAF=pMmn/;,i8$O#_VOk(9=]Q_TbN#:[S;jX]bT6u.X*oEYUcZUP3U]aX#of[;[Q'@=o;+c_,=MF8C2D<3gPd4mP&U!fZCg9UdoN:>Km!\0.eG>-]e"cS13UNROGHaZs2<+W'bare6_0\9YO92mTR25hWJ'\fu=G"@.l_cct515.@sIhq8iQ5 %/Gn[.\Y;)U`'][.MGiA'FYTbbVkn*nHXjk].\;oW3/MO5=4N!m,*W/&PHQmSSJVQ[!CFeHYr#oW\ROP-"JDZ^UIf0-+JH;Sb!O"8 %Z71%h7=g<3#B&i/.3R`JX;,ehb*L;K=ZP5!Z=$^$"i_LUj65f%/;@-`W".I7=tURM]8l1NRc@C?fTkK#5r2KHbM`s@3Z6\XeA6OesFqBK7pKq+K;uIr!GRm=_)i`HC"/HaINlW %3HbEW4gI[*qH&fl24_/Cn^dd:-JuM?Aue6q>`K4\;hn0`EZ$R87RV3g7G"tEcRj_`GQ)A+GphIpdYa'!OA/2o5JK>ORrT+rJ*sCMF?Adf`5)qn>Ma![ucCik'2a$@IH5?:R:)5[\P*.OkFta5,`&4 %\T+Z8o\qm=9h!a[\`j,s?nX!)g1HXsn5t*u,pH4l.%k>YW7,;#U%"$U,_4r!-X'\l?/p*E)B^u?>Cp.BM8I@8Rb*'X#uLoYlq[t9+3A!6-LP#)mQF\heY7R0#T5< %,TF\<&Ouu0k+$*_`'K1^$3Dobl%s!58OQV$h-]soP2IV"jc7sSEfMU:NEi_r8'5OajIg(]jnrj5+H\P^F!P&=SROkU@h.%UiuNhE %FD>#qk,W!llOO%:lssdAhP];Q?K]"^^Y7EI;j%<*4/`;p!^HTh3Kis_-_\8/mPA,7EqB<[ %q$pl9O>]G\>lqZApLRdQ*2a)54-816e&MrE3-W^ng(neni)28EPVLk_rjR*dq!Qa@hqS]u&AS!8EKE:NTC8=;lH/4ipNrN]4Sa61 %GDWU)s&iNRsKd:%;EWY.!YouYR3:k]Qaq09,i7*NB!!,DB`].BL\&d.?eU[c(T,eGH %JJ"-d0Y$Nig/c$76=:50/DLeaON6]I_t?\AQHjIBgo]RR2/6Psk$Y`BU&TikRYMbrMl/73*X&+S]Wr@3Ybek`@HW0L#'9ph(>"<$ %=k%?0PJ]DRfjm)*3b(L6dbVFI!JBZL&@t:pffI!p_COpnlVL+R\=AT2,4Va:+Hmo`87e->JKUI"6)%A+#.RtO;'t?)]#7Z3LAjc`G=DQB7;DcKX#?LLdga1?u8J\!bPIpYsn@FXQBN#X!j?8in2YKlD4NX#JW?]SmWmOsdY&WXHJ:R.#-"m]rDl"k@Xq[H %ErcLrmeM*b!6./DNuTc_OBGZ_J.%d1OS"E)E6iL2%JM:+%ts-,.[Vn)6RuRmL[0l1IEX$9M?9Q-%8'AIlI@i1MapH^J2hZqdu"]g %B3Z=)+nQY=#:Tj&S.0gB^bM9?h7:BT,k`GqDA,!mVDL;t!`$S8*2*IW41a[-(VZ`O[8Z\tGrXn#AFcCiTUUC.!60_[DFBY1qeQbJ`E#tgG*%(\p5M\W*;CtO*WKJC?ejC0bRpcdk`@$(+0AS,Z!Q(d:jkfLj[oNa_A`DOn]DcqRCV* %+l'C#cBB%X^I8O@a;5[\JFgqF:=hq=Tu<,M<)/>F?Mfb#K<%!<'b.H3je/n(r@QA5Ei`fDLL\:@&NGc+_D_=DIi+tZHh4L]aq:65YiDl7O3&!B,m`2WCIhlf=Dcu&(=JgT %-hp!'#B?S>86^t^p7\n@:c(?BM8="#"?-Y:Oti=Z1DC)<#7i'q%!(L+&sW)VL;$8Q.[-Y^Qo5YdCS:2A.;<5oSjR0UUp< %Ut:TI'[H/0.ku:]"9j.1@M'>pU#?jp/Hn9T!q(rMdLOcbXJ`a8euC&q.*'OTbenh!Uns$NF..8rZ5;Frc8Cu^m[T3B]9@XI#IqoJ %:;o,q@cZb!&@'fUl%rI]-i=76$NUGaj3l*3.7c%he6TG'ckPj74s&U"?o#iU8-B-oJd\Q*Km(,Ws$S(eE'qDh%%E5Z*mTs2Ir"PqTs %&AG/t?pWL\ijoDL>"5sOF.c#[A;`\6X!fONd^]pmN`s:(K%;e-,"U8tMJ-JP:D?Y:@CTKWprWiEXH8uV%E^r/)"r)+e$e0aQO/m" %,e2(J+RB'_Pf!qQL]pj"<#($#K!kPOLgh'JH)I'e=AQT<]:B42s#Y %A\@h(Si3A^3P,mS$6q5IP&km7%"^/"ADEo8>1;7=1<80g4fnp!(Q8Uc(QJM?P3Z6E#\.Tq,Z](%jV`$4p,e=,]&jGEeKnoj9^2QJ.V'[&Q@O/Ug78X9BINhUPQ9r^?nS>8&'1g$nM6<+/p;&_RPZ!`]?B#"T+E\eP %H>"h9*.^\O[&eF9/.G,`Vsf:-(s1q'>E6p\e*W[2;Ct29lPZjWN"7Is:%=D5$AB'_SHZi;[5LA:MBe?IPD=mSI>X2"f:e&^CRpCn %.BOSch<&DQ7iCRnTNS++)V@X!d_IBXC&B,4Qo^F$'3(Y7r5nnG,9ncEKB+`bd=3H %hMgY,E?>lC4.ne*Kt"rOJ]JE0gHZ*20ZpAhMqj$dlMR\4YN+V.oYSrN#SrSH`_D2&"BD/i*a>6[G#SIOaXHMQKQM;gFg:k0$SqoHn,X]4?b)J/e]m>=@.@7CX9^?9X"B`>2 %')('j?)/'q:FU<=&eh5T^]O->9O(#',Z&c"LkJGO-A_#K6r+HWWgJk>d>(RD5XHq($Uf1U6D9m?5m05Eg*.gZTU#R12CnK9:1XsL %8lQZ7.8N5:-4nWL7E`jKbb%ERj6AS?a*QQYU>ucWV#m1I'[;J.!7&Al.u4Oa+:A@EaooaHXcQq`":I:[jd1D@*AV;FLHR',\De85 %d6Q&+e8A)Ood7.]1(X\fi2crnTk4lNBn5a\+[IQEe^=_cFkXkO5Eas\`tgn>1&$_\IO%5RO"Gf+dE`eF4fs.Nr40"Z,fL>q-DB$% %WI7`)8n-X!?i*A\`ueO_kXbLGj(][d8D2&65!!-_n`\[s@M=34mA&COqV"Gs)>W*rO,fU>5IgELUb"X6p5s1IUMCt%P_[<15*?dG %](SuqpNTC!,=tm\D!`IX301+g,e*J5[?#&gT:0`ikh8N>U&C),8'K#YpmNW+r*f4%oYm#',`30!YK""6Zf6po?>7&o18AX%C]ap/WGUjXbO"GU',_k,F'tffFm7.r)4_!1(UC5p" %Z#0!5K"#Wnn#HV1CBonPG^IAPh$4b/4aK$e*a8&6[dMNHDel"/7HcnIi2t5]d04H"miPR!p?5eCU(8o%/,/1g"`NMR5.][SOGuaG %]KHn6mNW+r*f4%oOTfZa`2`^eK""8=KLJ#+i9cYoFWXlXG,^_1<(^7B,qP;oQ:_H.DCh%cQ:_HVV1cH1,mp*-P+uJ0/O0VlYLNk$d@;['A8pO":f8KO%IQ\n#siN+o6 %a[rE_jNUpg:^]m*3X;q(B%4lRbu85F=ooWs89H$9o$#2]Od%F!@a93#ShfcY.[ir`ElQ+#oT-r;+Mg7JTg**5 %Tachc0-]&R%D$N.A>LmZUBNF&fYLsL=bPsQ'em;M`H2@Xp3VTk-[o<6?]@aA7"8-`l&]Mq2C:$? %qiK^%R%Gle"BXM14)^4@%;cR(j!4Rold\6eM6>eD[X-X_QXsiO20,hr72]IogO96`UV\CrAf4YpQJ8i7\Ik%toE:+!oC:Ja0V@S> %eS),:!U&>u5]nmq8``.ToQ)QA@$M@n:6pS@'M#21frqb_N9aep&l`bm@lO*J\X[/nhlXWT39?]4)kQFs)`T"J'rrrrd6%8$D@.b.21/m)]POt9B %clg;teDe&=BMeS`]c:@q!EOm:2G:`(WRdZZ9S8T7Q)U*?;l,hpdNFGkG?#QWH`KRJWK!Qc+U4e8I>nsO-+!Yf+k?^W6&G`RH4a^? %PPU0BCokV>c+$2E[8@p;ZC.Y2=?#&\W!6u,Zn5N$6#\hZLG!.%FpQM4Wf>Ou(e#thGcRpa8Vnl$'8Qc:*5brABuW>T7,]O;^g$u: %a*'#NWT:KI,oSqiW`ZFQ=6jj-g9Wukj@M2SkF7t`Rl@FKh0rElq3RUTo<+1eAr;)Rc_]jd2G\Nc@Va' %.Mc,4f`I@_:>+\Veq;75]!c:QTrOcR$G=sac#bO#n!_UUARi:9P$eDnQpm6k'!kG,FV-u<3gB;9$\@NW25=p:%S(`F't?DU-N\eSR#aLS)"aq-gLC1UldoK7>jF:CQSiiQVHWm#fsJJ#lk*Rj*D7.(a]IYZhj4flmn^',d* %KLg6+-4L'ejUtadYiXj.bUsFpm'>Y>dUc/$=Hf0H-W]%)f>OC.^T;a[,noQ'p_;>*JY_@f)lf\;dORH8m*./6tMR;0][6Suuj]>uQcEFmuKSUoj$QPs_%q %j5JfWerB(.h1uH-1J4,dK#dp`FBPsl;-Pl@KjMNF;JKHBWRlg=?(iis6?MrG7LP"7n4b$\'TfCU#YuWWd&;J&cXhk48UYl5;d;[RH(r7&1.p>c+NjR\cuL>pKpW*1KRO/[d-r2m^9:]D?;fd<3#4SZ?=P.LC>k]<.LV.CQl+Yr@2m:0c4VRK--!'/YfE %;IQ/K%32eVVN%Ahk\Cq=R@:@7A.mdkf:522RCldA$t'e5RebHZ-=%#;\+-`/(=pX3"Xf0";cS5t:4D>kZ1[X!ZNHi;e9q7F/+nL7!S> %[tV+oZTC@`]42Bi;po1%)\F#@4qo7Uk^e7WM7!U'.hX@b7TZaT+t&>ONf&^em9>,h=M-3iF!mW[iTakp<`@,gR+h;plP?4Bhuke? %)T`V3ZC+u;+]VT_cAGm?\jkG=[O*GCK6S"o*>a:%BG$PP9B(^IpBE'O<]lupI^rK#:gD8tX@#kEP6B6]Ig!1lR%"dl-EJuplYEs88[&'35m;#Ur9bE/Z=kTtk(7#WbQ07-`A!Yb(S"\2_^ %9W1e0Y!um%A47?uAS7:.di( %+hJtgaX2U>eG?GD>M#X>$ncuQL(8R_^tibk8DU_]3=T3FVVekBlT1$S#op)'.c*KG[l]j%>M)6rJo*Ws;YqnCbIZeYh%!nV9L!7U %f(J5RK8WNqTu.X(E4=OZ<4=MtJ-Pd/LQdfJg,&`Y[=63L-6%Hi+SBDO %^]!s;X+q^(&W%(:O\Aije6o&`j:19O6ni0VW0*4"@u/j7kDh3nq_i5%B:-_ZX&R!c!WP!-1?6hcqn3* %fR]k34Y99Z1<(P!"f)-bU7t-h^7VbL;li@$C_*n;qc^a!)KlAR?+*<3)lIpQe=?lF-^rc?\gs&fE*EKPQqGR\8=fWG(YijFU:io5I#:#57 %A7,9-?d;D!rbun)F8kXV%LYDR5G-`fT&!Z5D_KC3cb;P*\N%A#iHI6Dn,K#dT;^&ADUkDVnR%/_n`fc0"@i@U:ER+iFQrhpqYFZ7 %q4"FKmk;t8p\FacfdCNGEHNBtSp,1i01 %2-SO&@@=Ib*4UB&+OSN6A*%Tm7Pol,CGj6_3Ar9?hK+1oc2_$7$hY.!t?m"mQcMED"+N3fQJ8`21oc%%X!]hV9a %KV_]V;JASMkZ@P5EQP[sP[okt45_!1r*Jc`+NRm,Pr90J78UHNUQW,Q:q0^eKb,Xueo!Ou!Dc\GF4;l26*YM2+nX[tl@Rl_L0'^e %NuFZ,E7J2>74b:'EQ78.cXiL1)?\^=#lk>#8hcV(%+[16btLarC,J+P-7Q`?`ac0rd(\Y0c=)qE9.ee[="([d!Gt95G>eTVlF(f9 %\TEBC?e/T"b/iFhO;0b$Xs5SOWh8A-fW#0'Nn'G+)\.dD4]Y[u.h$+cV#kI]b,+gUWI?V0dBUGFXTCZ1RTm\0qVLF[_*B;ZI#mg' %a?*!u/3fL:;D8WX-738C+!bS)'8+GU$/U-aLMDAXM?i'Hp]g7S.!E-"rN^lU)M#g9&"h_U.?kJMK@SrFUIRIpn>KFj,j*r#])L"3 %=,p)sST20EpYAk#Gg-a6g]!M5!9_J%.$ZBdc!1K*Z/aMX=r8.QD9&d>G6sVbPU5*B"!8V?bdJ!]m`+?M3S_Ypc?L/IH^=B:e_f]Y %"tq4PrWesGbW9tiiXV2/pd0fAH3%#$LVqlAfGuZIG*iKt!cQ&roj9sT.Fe(U&8^JGLNCMOHs/bef"_,?PdrZ9H4ZQ'[S,lj_s4Hhq8gD`.i5g\7(`?]> %JDKSu#=sNil^Dc)GY0#9[EdfV\F93'dgh=@'$J#ubRrFXG.?UV6-=M^ul %EXrIn=C0*X3G3Tud"\p)KN!W\0e)(G--7inR1#!,*8A0*R>[O0oP17""u?i7?:Jaj>f(t?[SEXLog7u%bUU<>JBYTcO*Es$Vb!pB %6M/4P;Cb5f")b:W.H+]8SYjgF6n@-e#s>El!AL;(3bsttfqVr3&ua1VFHYr1nnN,9P5V+C?f3/`Ta)YM?piI"]6B@$\I1HA!RWSb %XE:P^&d#qAD=8*3-FZPjN_(%m:t0=rLc'L/mhCTJAWVL(Pa4>PQ-RLun?tgW'6+joq7nWNs"n-JQpDF8fU.F)*YWT9c1?b-&_!0t %:H1s8I=^A[U*d5pYUWU0BV7jO7OYp^98Vg6\4;B\hfStu-u-BBfQ1r\":U\E)o-n;>ZZ0_G29k(c7:)9TtW;?CK;m:=!u[U`OBmZ %b%/*F(SsXY^a\PKMCW!))nQFtB<_Ye^LG!'VOgaAGYk5V-RheDUBc13q^ %70"g4+^V$=dB/#GSK"7\*;rX5hnPuY$*%M=.^$,7q#j$Kg%6k\UOX7k&+D`a%Xe'@JY1?_A8>&ZdIgK"fTfs3H@*=]CA%K'Q/3eZ %]EZtd"cnZjGSFh&bfTU'Jf!%fF)./`B-2"-f@/`*=u=Jmdp--RMsG'^>Ye1hQSN0`AqO)g:^5g*#;u7#!(5HFqO`d:#`9e\"#eCF %dIja[$Lcb;jo"/(R6@[q8OH\)*`VM/-dCSdnM4bb<.8BM38pLIL/3FGS,VVmHH;b7%j'5."kdqZT0`BToV)DIJN8(D'Dh];a%-u<'A08F"P&Xd:`$VqV^Dkt%W(Z!jhH]6Rh%_Ash %DZ/]nAp,Qs?=i%TFFg'P.e&er++@I:JOLAWFFcjs=EK*_(YAao^qujB=?_V]o,7aM]UK2o*OM11].VZd8"B_V#:[ >X^f#7cnmK65fl]j@% %qLFMYl2r':n&cMK'CGirGK$cA.u"O["dI&>%3eIa:@s)pi'e`4?@CaM*uAKr;$IeI?r7+DARJ@>G!Hpa/bC'!+C>W*%+"%s=Cmga %KpR*6e8:A%'F+fs6qFRhWbAf[R&=E^!R!<[f1tc0;Gt/1c1,2hg]S_MA>H"1?UER.'CX%6fehc)6HY$+jXn\hciq!:`jb$/.UZ_] %_p"eqAtTr"VVk!fg@#-U2.1\$cZC!iNtJOM%UJ_R2BF3"X?\MjKsEao`m]))l9P*QQAu"Q-JGOPV]U$jFN?OXqf`9ikQA+iX/p)6P`iGi)'QV@g<3Gi:e8]JP;^`"#*Z!nHP[RN*&*TFbm4p %)Q\\N#-U9Clf^,f6/TJu#VJe2`&)Spg2fStYQg=PFc\NSemZ&/2L#BHXl$$G;#TrbH:#Yc>@8g:oMi#=p`*3bY53fh*!J@Q4=kn"%@DrMa= %38`r(32V34'1,,)kL0EpB3IAf_&&.CV7,fbriKBn(C!X^`AH6MD?7J5f678i`R\fn@s'Js;1l6$\*gg2G*bgO8*foJZ(:F)eIj=3cHd6TG9a=DUI*l>N/3P-Zjm+,A6Xd-=*Ji#T64f*E-0t'T2p"!Q\a>Nk%9!EQ4*fr/, %5P45m40Y#&HpKd=W#XlPCGsMhG$s+3g%u@b^V5n(A]%\IZIuW6nBuqmaW2g[9i.Z67!]Rm]%G2`c9$:s*Zp.XoH(WR%rXk2.X1p% %nEMkn&ln/5K*OMd`.2M$#2+,cOM8L?j+8ki:s@!g_P5M;/#QJ'PrSsW]O(QJ];!-hhlr1n4NDKq6h/D&0[%mUn8#7>r;&&0p;_I) %lh6IXQ$HQlWc/A>Di^qG=*`dKM@$)cM"5(V#HT,75R]hu@I.=XQbaJCg1]t;d\WV40XEZ3L8*,6p^N#_?7L%&?L8GPa[YC/I47UH1C'c6_9D+p8YapHA77pKKm1k_4>mu`d.rYC7tXUo:(iO-2Y,g:7YW:?`#eQhdSbi8qS5$e %acLaBc`+MP8eGHcVai3UYihR^@KmU(msB[epaL*b-%FpXg06]W&SQ[nq0h@La$"*S^=WAfL.gNo&`oligq4Jr#'e(jBjn4jG% %XID)\X\LR#UcKN@?/F68fOeD4.7fTnef29j1sVO4j/`PfKck\UJA26O>E5TkciNG]ei/69FB`[hWp+u6d$OobVr6%Oc\ABBr]pK+ %\oo#&D\9ho]pEkHHpLiLZiu3,i&<>]o44U#fic^DdX\n#iW34qEc1ZB,9*/T2&!(S#8O+;iUkskNH)L8"iD/"iNoQ?e/EDO@#KE(44\JHlE]k+f(0H^ajRF1n %"/Ec,"3N>t#eg`+,%5ARROP3aiqQnP)nH+@q][*tou`>4_0nh&Z`_aaCa`+'h%XX[rF/gZIC+Gbk1@TQ%n;:`;NT*.!2&NB3sUpWb9D@"uTMS(Zne@03P>UPCp6-=Y"g/oQ^?/UE4:;+#DP$0*a1QV1KG=b,pW5o)5-;mFS3+djib[4o+:6c2$a+GQ*Y0 %pj8#;.)@gAkS5@l@?4ZMnA[4eM$+7&6Kg"a(BC2c)N1m\Kn0_1&cuf`8@/smLg7`e4G3P'U_LKI&$AO/T+I*V#tkCg;V%M4WXg(* %[,=0\"_4E2VT!n:p<,d'kk-^U7;N#.5IaPMY`)SGVVi;Oi\m&sl&?i-)nuijRj7dui'RcUl'DK>Uk$7hE.%X:a#MnNUln0WJbr?NS.Ui)(n`06DDT_+PkI7Q10`>IP[cq%2gQTdIna;-hZAA!q;)SG`ed*-H6hooDotTct(LC*;t8XrY=d>\rn` %+@lXO9CDT''0N9$.MOI0M?l,TEZ$6,.h1TC;k'b89@kI*,*.$i\o"/AknKfK,XoRlD'MLX&.D5i"O!7#@mfCVrB,=J1e6j\H.X$m %V,=pAm/4RX%*I%qoj>I^$)+(mHW##Wa]83+9%.=AXAcK.jEkdUB54qM-kQ"#$aJ[79 %+/?l4]YJH#elD2]lUnc!lCRW8\a8QaFH``/Ie#!NH:j5qJs3'&KR4OoM*KBg6hhFCk9I2kU)3=_#!KmG>+)J-'saJ8P/[P^5oq+$ %PgYLRGYh%Ul:.Q)BF2u9%Lc63:L2A&b@'h(UHH=uB1/&.7L`S^+/or*s042dn"FXE3*HnLRGLM\p6rpZZ3ofH1b.0LP_CJ+O&s-I=c_-&*)'<0INL\ko4c9n`#Y/b)!>E'P!\7"\/I$0VGU-;'ONV%u3j9+\?aYWL %/(U&E29E\AYP=V=:(&MBCc=S_%PQq043XFnEfT2GYS\Wk3oemGM\l5SV9`-,E+9sg53;&Xc*+&qIQY-em?kArl9uR4[9Lp#h3:n$g8ZIHc %UC3/A(@#k6jf`H(:gmK^X*n-F2qN$Z"g*]/<"K_=EDP^D2uG\_=!mS,m8"O2hmI/,Q>[4uO`:cRVCe>7@*6nfY7]d` %,\m\sX[iOK8GRiGKrd?a@$.;Fb:!lDYoeMc,Wt9%KQ.%t`h5-p):GJb8\1W8s!GgQZL+-k$ma)!b6XmEkT %f5jIs8#iq;i$nd3bL5tjY3;Q0+n$PLQ2_HIatLsjZfYC\4el$q>Aqipaads"8r$nV55dQbrW/`3p_CWp'\C&B^M'd,>12bf0)2HS!ff-dZu=V84?CnV/@9!X"Qt^@W)5q.P=Oa %<`>;(qo0ROfNY'/DJ\VZPs$"2D*XN*l+7O4o^h8lpRHO5FYC"JYKidB7BN<;p2.G'[U*&0?k/s\mVXe^dBnFWJUWht[WR?(knZ7F %1n73QSKNY$F\o,DH](n>$KH[1d;YnhZ#!kNbM>?B=/]LJ_o.jUFH2Q^M<'2\cN`Fg:Z%/ima[-IWV4l,<6#fBQkjtIIFGX%Y1&[/ %J*EAOd*dm3T\0;#AFp?K_i*YbKAYA"),LXT%;"^8ggOQG1i=&t9a(MEj2Amp<\cKd1),)$>(4qX3G%7EjOG4Pr %,"&%n-&^cj:LiSp_-qQhMWpY/g:*>)omKRNs.r6D+^;kSj&5FUcdO;k#3r2;-tXBBiQ\W;#GUT<-W!UL+(S/F.e((!L>T6c^jq0i %$Bu2Q)eCC61VJW#p=b$RJU4%*g=q.gdo]!Z;QmY<0Mj<81>/gI^Y%9+F9fOIE>0CO:07c$+u;)[#.!:.JD(@UP.e1-*,H4%:eM+& %qgfes+?r\26A`Q&Co0VK"sa6N+_>Q>eq"8a9mZ2W49=`?JUuX`gT^>h,UTdg!<^:M-F<*nen)6a=#T![R>&I$;Tp]UQZ8`^dQL8D %ia[f8JfRH"V1=O/\IrF?JLLEZe&QbC,TC;jOuPRs@=8@pU4L&VTrkG*oNeX8=D)ULD?L'@Z?q"t+H9n,[!i&kGl"S8CtH+&X`V-d %#JTtfJ8:(R3<)+b'?5T)p"HsLMS+[e@EC4'$ii$lBiBl&-J&9P4[VW$0hS`i'o+daED?l_UQ^612GeV'"SQ(U#d+L>/4&>$M>7KV %q^B(AR6>D(4CI>_&_/ZR.nW\E#%#7,:4XZe&;dD:U*%gRRFf?aqWt?k/6CN7'n'RZFs.`Rg!EOYmYLIff4MN4`(VQ,F@EXs)Daq%65#/m$?+f#iHqT2YSVuhb-\hDIaN@C*R %fUmsXc($LXWB#pEN\HdR=BK3gWU9[P.5QZM/9!!I:A!d&DXa`CN9(K'bc"LGc)ieCh2?aV=m1A^\<62E4.W]q4N3ImL=m^H*:%$Y!Tc7AAYr!6PK5%G %8Hm-T6i1^m/-$Ln>6/3]![VU;b)iT0!]l[,:a7PQ9#*D^"=C+DKf"PNJh?u(b(=;ed^"Lh,Bt3aJOIhG&\6):n\;#M6,7`ula#Z) %k7M"l&Ze.sC(D'E""CG\;tH]G#df79#M<>/a@nKCL1dX`kR&4I,X7tN,G7=MaE:&d6627oo=Y@C=H7:F(2d0M$(<\I+AhPNb%8>X %N/%\UGs_ZSnaPgh!"ss'NJ4d4Q8=U2%R\g^_["DSD'XZ`V`C.u,sn(rW8+-l5le3*>g-SFhVe'hl[K=@PL`#B=3<$hu=gS#G7MGZIW\6_)/qO6'@[o9D7O2NE/0NLf,XH3M %"$I9T+Ip:NI+?VWPYio+^=I=(=I[o89NmS10OYNG-nXNlTu^U#:gV="GQ:^"ittWM4CW6: %pVd$:d@Z[blVt.l@NBJ#"Up%s79)KBclen#)H<_Y+B=-a=JQpoZFiLDg=8il5j92RM"-R;e:Oug\H43a"!UC%37eNB7#X^T(`6!; %:_6ON;O=+]TDKHWW%`6!]f.fHc>c)qV+$3,,DtS&bX]VNJLFtq->BSg_J'B[;g:OVKV>21"B&nj">Mrd:)bCk,dJ"t"UG,UFUM\C %fn/@^n.&'3R_mr_%cOZB=L'@4e)SIG?\Sau+=\"5g,WnfhffmLdBsm/Xff+*`Chd\kgoeN1(RtFG:K>3-u+u\`Qgp\%5BgY=O242e@jUb+>#q"/#.NC1?q-9d)buB;nFZ %AQ*Up]R(\+a9F=g]I!e+*ZQS"#&:k>N0jaoGnFnVR,bQ2XNrjF-+OL=%[Pp?eZ??5F^Xfup.9jc**'1q$j3[ZFocZ:&D1H%Mep6@ %4+M.a7N3(%^m^-%3-j^h.e%)V"A(:i_)KmCCjh]m*iD7*Q-&\bD6JU(K&]-g$u#`t,WTUqI0@c#F'CKj&9\h`6D=BHo>p2!LeM]F %"PL^+7%+`<[0GK:E+7"ZSA:m'*X>/;X;M5NEcCE2j!dC'W3B+u'LWB<72!d)`U!\=lTJ@&/R97XX.4":HrrFO*tt,1VW-KpLMMb# %'IEgC6BQq\b>9^fBIbST]7>2!V,r]kK2g9(5`Cj;C^PV.;l&l9+O>F=Qk*umA`K:F\ %NcJSo=B:Y*MK'K_C[s!A9:E@O1;m94Q<)?g_qGl4B:Q]&N![_F9N&rn*FfR/F&7-:_/POr`U1/0/O=Mt5>s1l2R?G?bdBm(he$dV4p&uHisYR_$LRWrc($BD>= %Or&j;P//^hd],Q;"5Q"BRn/6_7kPJa1SYbeUVnR#e<$1i.50=s!\6(RGVX6jmT!Nc($_Ig*f>7 %0GMH!?V5D-59Q;M\=(1'SkN"-0tI0!L^r":.>$B!=a.(e%UPjm.>m&HBaF9Bj>H]nXk\,Z%uo[u=Z6>SJDuD1fdJ,\g.0@?MH!?A %@@Z6mkf$@62%1@-JljpehJb/?)8FN<8Xn^=W,g_#WDO4mJls;9"\E)=^7D)\?RBfVB&Z\oTXAj(*N2P$C6jY?qG`>M4%\/4r%8*@ %Au%`GP7kTjSer1e-ShBC-D_8-:'8O/9Q1a.J[4sCXc*NA-Ertk>*&u8RgOYRi4gtjuZV[9_9/1^l78p]5V\;W5@g=o^j(PZ]%Ro121M$Ag_$TmB %!_TbOlUWN:9[AF,ZOXpkMNYkbXKKBZL=.AY2PJ/hEgulK8RA4WFfj@I]'`U#I-7&]']QnS64KcH5t3i1-WolklC:-N/Wpqr`e2m[ %9PT>l\/*"JJH$%!.(Y`uMN4'OEo"BD74+!hA7M;qYIiu`R*/3Y@UPd=N5q!-ps?:0=N2>kYP>F&D)#S$p]gV]. %3YCdP+$sW?;l1(6LRZbJ65Z.CksIP&5."i1Fh^-rF3)"!k0TGWXg_gN/X\t%S2mCsB+F1ZR7$i$1PbT)15GM5bb8GUSg8AJnZ//M %MbMZ7)/2k>OQk5QAe3EOfVcq71@g1\O?MYd=N_c6l`u;i[*t<55=tR1iH(,gl:dg&I426k+,Xj_LV-fW5"%th %POp""Y+uS*N6R_R7(l@ELZ81&U%jN06\^6/jVO=7j]XfCrX^=>9)d25l'(0=9lkpOn8Bh,aKNi1o'>k%i\'='`HCuDZIg=MW8E.R %aWKN"48\T,bg^kTkiMAjN#CAZ:/G8`5Esd_&*7s06UkggD0>hSf"s''(R\s`h+1>05=D[kmn!Eh4_+!do7p;:SNg(0qI\e!7D\d; %q*SE6Crd\jlgfi+&aZF@+(>cJPNEC0`)"3eDuNS/N#IS&\M&HRf5)G5mT[sYMYH9EV0Tu8QTmf9q0>AlcS:V3mVsGu'*Qo>M+%(`&kUL#-VbrXnrROW8>Nf` %O@U)"1m'2h9dDK/>p<-NQUiCj+&B4OU/_\XIQooLn'Si,1G]e619n*UuKU< %>96Z"4cZ2U%Q;La&0d?daa:.ZK7#+4EWPoRK=R^FkYiY=g-]lP#-7\jRb>J4(U]@YmK8d%!3BZXnDMRaR"^U_1/& %KH?#!L4gV=LGY`oQF$E:-P;X(js2.J1mg[1Nf0'VepOuFba(Y-3JkhZq[esIkab@;,)UA2,._EmdhEu[0eOnC:ROO;VM>sZ+k#[S %Ln]:33JC#-9-Nj:80Q-G!jkZN7)T#=H4#e;aY[%ile.dp"K/fulNa9uD&iH@'V^jgB;H0q2=DiFk_2rk_YOt@YV(W#cVG]^CJosN %B+$j`KdaTS$BbA:'VZ]Sn1KE.3.R>j+YpTi5Y<3Z>TPP422T;^]/,8c+ugr?l.(h@K;^>i1PgXc)+5rq#*GB6C/#i!S3XIL1JAn- %,?i21\pp`C4V[XVm%J:@*obhB%G=*gD"SLq6d,ZlA.R@ueWN)fo>i!LbI?B3:E"PN[pGUO7mAa;="Y\4%1TCS=:.0ll5WIF(pHJo %eR][]+CW%Jr78Sr>170jj9^W87_kE5H0m[fG0Td`'X`MTg9pQ`'"*VhI7%ms_\='g=dWJ7b*3 %G1;RX!qau.]!j/[jDZq4=f]YA]:g]#Xb-K>"D6B[dB9$neUio=g/aYtbjBH0,T#+YS+FGRQPi1@lbp@2q0oVlO4W&c:+p;^& %98nq7iGPFl5tFQk58#5BdBlr@HaJ50u#+C>+;9g@Z/0Z4r&,%-,]8[)B?]$49e1:$3UMR %9DG=n9W@PR@;*7XS,ag+pb,#m+kT^Qh]$uDmG"t2S'rGalLpX0b+=O("h85JQk@PQ0en7`#foeX %+r(1_"Di@`aoof38ST0.Ce%P>'b7fgj\f9nBo64^]\rZg&7*0+;125q5M%Uj7hS0fC/,2ir)#&Eq6,8I.s'/"WRNuH8ZNQOa-j#are@U %KX$GXB2!gMU/T&aet"VqiJUGL]3':.oS5(Zm5oJ1H3S!W2`sAgg0]6Z%el*@$ALMKh2%("Km]g9jXBRMiPlr1Y(9cY2"=*I"o=8F %P5-D8E;pg9jU\D%h"uj;876"3Ifg#Sl`9?P]qXI3<_<;N3U)n3S0Bb(T_K#e=c<#!['5TVDcS+0!5@o3]J:4h2%Y=L$BR66+k&Q" %8tF]-u"%k6$ngkJ#l,m/%X&*g(d,^,f0#Ue_G["A-,Y^kic %j-G=/4XKYkMrCa=dGeh&[bUls0*E*GU8",>e*JjK^Zu&#%jl&on+p4l:DJ>F+Wh@AZf""?[k*BmT%r]"n,;\:jJRho.d>+eTZrc? %F1JEI4VneI0a%*]j**WeJie_X`%d0^(^PrL=h1PPWPlp!(r1/C,CuZr9TZ?e==J4<[o6c)m^q!8[\!s=q=)s/k;o\Y:.YPdBM`AZ %@@.De#o&O0$5(pZK$RiU)pNZd_b\2Xp\AGG2^&Bc9iPOla5h7F/eo*tUVSEGG")3-,*(n2e6pY+j'@CmBR$?p'RsLqd1q?&MAe_q %&U5QR3L%4!bF@\tmoP(g]/kX9-7BEW)]ju(+V^2"4L9;N(f&0.QA:F&;.MN8MS?')dOY).F`#?GLm1>-+^2dh?h>2i.M%"Fl5o2O %d$m3Y_+kq9E$cG;qHb=C?;'9pRf]Oe'N!6((\2J=4i)Se*oCDUe#`UF(+ietMq(b4*I!gta*Z2H0&KcAUNrc!F+F5=`ckn,uZ=$QY,/rDf)8[Y< %2E7p96`s1Xi6dbU)FF5!=Gl,;h_3kqj;?GUceoKElT^*JVJ>Nfq*R['iT[+-4e+S`GfHI?JWV,D^,NL('ie3H!S#ujp#X6[cWBT0 %55f`snSI[bqL("#gi':odbaF*V05;e=]:UPo2Eamq25Ct5?$KCC%l"d8*_goGVhE6+XA2)(_R:jcjh@lN!h-^S.%Sk.J5t$(Xfr? %Y)(=!.kdhHb)O`b.,CPA=Xf1J+>r'fU?'_,V<[,[cIg2RXdG3h3E`s=bP]sO!TM*"2/*6A_@^IY`dnSjL@MCIK69Ca'AAAOtIp%i'(,%M+7&2bV$89u;1oTSG<.I=hUH_o7W,dsmm=`:92#pJ2oL"A"a:U^7:f %e1`\CU&3p=OT\@uZ$[95'rV68Smp$r*,B1(2q!tWjBj@Ndo+V!f*F_6Zl(s+0H%+t=LrAQZ]UD72#Tg-b#eY4V4]d`fa6URoQ\8O %Tg%QmK<_?[JL,\J_%Y"8fTq!TNi&:+9?>L!0=8h2e#7fm'd?4iNm<1NP8bO8]U1fP0#-a_4hV]bd=@K\<_PSdH!m^&]r%#B/hH>, %EB7Y%1"lkoFohq2QqW11SR1$$ki,XHdUd2DOS64+RR2A0J2H_?qqXlt-S-a"dH6PCi2mu/:4Z3bW)O99o?M?>Mj3JlJJ"M+:c'TL %H*O7XJAZBKB`W7SOSU_8,)Ji*CP\&Qurh2-TeVR8$NWY[5eZU`)cTEhG>Ma#kkHQ1M`XK4u+j%gcKEesAJ&IW^3;Z$n? %rW&W,?YKp]@H8e"%_s4E,1uZ#bWm2$!)iugfE()adA]NX/M`O-F6@R5>*9d`3NF^!&hj(TMCIS7PTMJKb?Qpau2\mO#4>Kf);bLt2#ZlgRguqiJ%QbCV %caZaVODGW6HRFfG.[=fsri(PCKUVrJ/75dE*`Q$s%LWB"-d`\p&LPYQl\eG'.#\NR]Rt3!rOtUrNK"?nI:#N*&As+A$3\6E6J`De %k@b9b>*05q4"+;?d+D>aMl)/$aIq%4r;#-R]irs.+(TIgmhr[\!E!d"fs[k#$P6>gaL6C2A2l$UG+KDg3TKQ("Na<7\X?G=^,!uP41W7!JEQf %A1<5&Fet^u,G-c(UXL+W2nOca)Q!^,r4+kNt+G9M%4:Fo-E.:2cZ#hF>^8/hD!CHdI1*0me_M:4j"bC+^'W/!0!F^Pb[J^Y+6(eK48 %oiPgKc95LOA#0_e#G;-cU=BP5fTrP:![[s$2N@H,l92M)0!&V519]iA"p)HNn?;u.(ZSIT!t^R;&AUfpm1r\iZk\PS#6VIcQQ$9I %6![+k+o6Q$]d7S)@eJ)S+.tG[VRi0,KBN[p!mZImWj%,hZ %#F&GhcGrR%c5da2%:Y,P:_X*jW'E42TtmOW!_+]jh*]!97#1n&@#P8G:W)ROg6A[W.*!'\aF%>s,Z1B^D+!;0<)S;>b&s>.=Jj0Q %#R9+8#$n0/YG'$9q16t4f8^1QIhYtta-+o,1IjlcQ>/fJCjD'to.7We[G1]RjSQ6dGJ%8T&@8LVlA"tg8$5>?+?)JGcEtO.SDt3_ %2:XA]@,dtpLu+r-IL\aeDFcHL:;A8H[H]jR?J0;!9A4g_F0$tZ5TNZJKtZUkrZ5C^n_/-AM8kt1=@6bBfr,>AJfHKICJ*Z&P%11! %kXgP2U+id;s+6tEQ=U,e.Wb>9^Cn6aD[%nN%GsM*d\=F6ad!AVp[I/%)L;7c+n94#AP_`l!Dd+l>=EojNHdR;FaN[,)p33:+co6S %.)A0E666%ZQk$MX=c6^:XU@+&Bj1i.J2/kGp]"mp]bcmQQ2fh;#.OnaDmmKZLY`=pUlrZ<64N&0Zhqf3g0[FS(u(F2kNqX4k3UbP %@!OSt),67dO\,,^.cbI.IpihWl:a4jLDe`!665q8qF'$160_#EcC,m)j0@]5g1Tk"=OeE2r[",40CBOfGQp@`clVVCQRIdb40#[&)j6oK]Sa#8kDLDI\5j?""QLj0927s(F@l>b$L:PNrQ;)3Mp0RRR?"KpeS[=BBe %.[UbU_2q$o(5"o/X[Fb8.>Bb=&@gAO0N8\#qY&.HJKT#?[E+BBcu]'SSfu#uE-tR[Z-mTeSu'BQi?J.)F/Q.F^ER6^:T/(R0FF)h %,3sj3*?]V\p[9gtrb%B[pG-7]?=om$(bF.$s%"Q96Hrca9$q'XTsLVJOj%7Na$pE&[0cW,jilP6T@j`qCo/"lSc2O=n7WcNbN8*! %LTdMOq"<(aODK58i3K&E=dP;)Am?Z>1C^1SR2!%C68O>]:I6kd;A,G?OBsOrA$Y?588EP:JWJPQ(tt:sS.(!8b_1"qp&snFOr %33NVYfED!>_j=#9LWGDA%`+-Ppt<8FOmH]gSo=7lr^u'%a$iKP8b,iC'#cI=]iYORgaa001P`m3`E=?hTgY82/qXSReFsQpH@u<'*jCs;k#\bIRVBp]$W%SAFJ-hg4PN*Oa$J[C+#'nrKK'7#" %A[`"P[3%EHTkCWN'Y&X4IWCNjP1YlNTV-?8AA-2\H%9W8Keb`oG%;,e.2Q..,:,r0`46:#^ %42k$O^`VhJ7`a5#ka.GpWKo7gR&Ru2^K&% %jIr.Zpk#CaK?+I`@Xbg_%AN.d&35LC+06.ff7'i,?YfmSjpH;pkt^EBXO_m&ckd8"R6u8X,?T`XG72EbGO'YDflFD9ED;fVHH:%* %U#joik9NS:TMpGE-"bK"nF$McoruK-qAM1u=s);ZIG*!br)]1U4<+neR0&es0:kaBL';;PB+(@7GS@=Dfh0RI@")\84t47Cb@1h5X@f<,+l;=`U2%=lDQPiGB0j5%:8$C&p])S.9r%-_, %_ntdJr2Qum=g*R8fj95HnVu-s3`P:ojhq7pmrkJ]YL0@6*5V_$,Pee!Gp<983reZ/ik4V2)MQJ'qp/qpJ1R5bNklh+puA-K4ja&?mU>iU@jTkW(+T^!dML4U%HsTXS(1s8G2G6U.:,-e/'IR\*FJ'5D'jj1etRKqNmp"mmqTFa<1FC"=6s %j8"0es,Z@C+7T12Ffrg\BB8LaFfs$b7ms;J,3,TBp^&fBU#m`PS9i4`JGSer5MkqN48sKF+7CW<*CKl)"?./W[ncSAW"stNs%fTh %#rOr@jsS[VKUNSC8=^2IrsUPUOoH1\_`uQ2-eeJdS"FBc'5^LX,N\sg(H*CLr4)5<(]NI3IpDc0$^^CDplBXsnW#ijn]*`jGXn`W %`;LkG9S/07nE"`\YS3Nn.;gP%^uK_=?9]$t_BJ'sMVjo_!]GOupl?*gET02Xr5XZ;Gt6j9^IeNor&IL0a+aQ'n/iJGj20ojA+8B; %LL5Op\4!=?JO&GW-@KL>?&c9S#9&D;$eqPc=<)M]/\PM0^%>n=fOE.o!UW?-K6@PA?Y?fSSFsk:FgjgsR&]Yg_S],_:44Sfr!s#F %mG@Vfa0GVNnP0eo01[cGngD9O#Ps.(;6o_U@/_F=s19o]>_;d\mml,Mks+j[olg&\HF3tafSc;PB=,B4rX!K@J(R-gA8X.K87tT! %G2r7=q2Or46pk2C_2DjMh8p^XMQ.6e._%HC05#d._1hQr&su_neR=kKDe>d)VRllB(fb3!k%Ar:/R.#'$cTTpBKI'5p@'9F(I$%8 %06h3WOV3-1Ek_h2?8o2j@m+<-#lK\%MpYr4J@^teR&:0SA4M<^lTMp']sU,97B^lTQa3C.FsIqCgW?5G\@U[>@?O7b#CfMpq`A7P %!JkY?p8nMl0Ri\^TTS,R+#l?j%tQFI&%r`G00.i1STq=m.$Rc*FOqCLO#NhX3,\apH-A)JBOuUW[J$D=DnU%5Xk>BhMH2rHTJ*8Nqs2R6;A%%ile"^9F`W,kQB^dr5N*]:J %p$m8cg;C8UVr&'4&J]0BU%hbFhX/9KNM,RErAHq82=m*[;Wi!hj(3^d`oKAC\nriT<"PFsJR;#gQfEi%+?=8K/RpWbmB]4g'.OSJc6 %.at=M).G'MOESKrF^[L(#.WVuEZ27]3\5TB=`-)jnLlXZq_kec]bp/2,NL-iIEg!iT3L5kPR7GZp)HV?%tEi>^Zuejb9U]7T?d-T %p-+IfUS/!Gpa#5Y*%&OrOT)0tmY4acX`'2Rgasce7U';SHc[BG#TY]Lh"`p5^r8V%AeON@#p0u>*1`k:csf(`;\5_@"=l5pMP$[GkQ;PF %)2F%PEVPQ#rlonJA/ksjqEg\XldPAhOOk;YPskJc!dF^m-ZJKB]\rk%"GoFa0n21DLMa6q"t6fgE?NCj*"N(U"=Z21$J[oiUEMu= %V^RKYUHm1eG$u"G[msuF:PF&G0-L_ANuk['QcT=RTcb3uogd"8!_*4FE,RVPO;)rFOBW.k"a'\E>o\LXLd3@"K&f647ehU+FC>l8 %D+J(7@Ftc30EPp>V&P*S6MAmu@$m].#RW4BAuH8C#jiK@d=l@(kS!e81.EO-N\1g<9-Ea;S2#[`@$h?;,"s.03,rJ,+]c)rMN+4J %<&(1)TPtLnTH>SL0h4&SBG>n>F>Qi[>XgVFEP_nMKJ/0m/M,h86@^_7NftGc.R7IZUR;`);gqIG@C4&am[o$L6#dZp1I>]p#*I%p %(naJ)\;<`hTjS_*GRt:GRJ6oH65\!5TR8AG!:0_N`"58j"e^`D:.8PMBNc!9J3nTB_BB7h(/F_J+F<-"I/,]4,5_n&1JCKd%j`(R %AeP?FBMe%b^u3%V4]2^.WL4hY1Ck=s7"?@/L@JeAJH0_P@=JRQ(^O$U+KHPT-U'K5[tD#R?!<#;G^&g-c'V+WDfE`!d`u1sTY:)-(\*O5_-A(>u&3E+tCR)AIo&ObmKF&;IhEYZK86hP0EAg8"S9fjMW-TEIb)k'[^D %XH6`<%c`L`$rL]%;i"i[KciR65L.s?SG^8'P<=DJ!aMKat5$eAk3c, %@"8*AJV^"*LX9Sj`s6U.J&`H"iEUiuCES(b't>"/$AZKIU_Qo3!QO^rmK"1hd#`3a@jle[E/lK+'?m8F!e*Nq'_$b$.):o];Do?+#VMRPTgp*;;#'%` %,m!R!Ub4D&]KM.["IKH/ZLT+N!ipAZ[9/p8Nn":b'kISs-3J?XTR-]V7^QPI0^0Pg8hc'a&O+4?ZP:V:6*t&K!Cj;`>QY\ZGXr/E %1Qn/o'Sba"#pqbI,L5h:EO3j7pgf+/Ot2)g0f,`UI@["Tp!ZjLIb7tfpNi(plasLF$5P<*[XnA9U$NdNBg==I%nHKp>0k\>lBI=` %$8c;F1_lu\>75Q6G2t'7OYi@=(/4c$BV3jB.p:P0+E;c*o0@4a4+1j$=b,f%L^sRpTp!OkpHuOjj %U!)JD'?CaeaMgNU'+Tmapo,C*,B.Hj5Hof\j@`@D"o`O`*X=kH%5U8'(e4nl8s"nU+?-"HpdBua*>=`j`,VRTFX2"<3%+o$-9hRC %4t9S]N\fo)Q8$:2:m?N-S6H'bLI<\&0Q3`5LELSAJ;jU8#_I^/89Q+CB''L$97Vri'UM&B%"6Ea %R"PkOHV0`hJT2>olTf,/+^&#H.&qncfqOquO&:6@WZOGP#kEEO#mV-15n$%!%\,LenA61^!e30bG`#E1%U;I7fd0BZ+[]j4MEFWM %R6]%9Vmt[*6=I\s0ns9bbqJp5CO2S\Vb]fEW_W;YR1id(p*[(SG&CqtPKoPQiZN.^=UQo\V7rrooaOkef.[pbK4akuOiAkR,^Z"203ctD3&cCUd"k+'i":0`HS;bf(:ga,27lN+d&`>$[\IpST)pCg65I=h@0al4`:BrCo %TII.qQ*nY9>BW.h/:e+=krl/T]_T)+q?ZpEH<:0^5Lc^BletD.@T7:GcZ68lQTati^Rb$.HY1SaBZaH5ItPZSk_iURVR+6\$Y5=P %E-hVqX74I7ccq9VC:C?hDnkN'0'^g$#GaW5a%_'2;"mXfq"mg[h25OEbud_a8)O(b?5GS+6OVYi!X4;^K7$%8o4Omlh^Y,@?n-4[(I_GZ+4k];1_oRjm&!LGG"&hmo3WA_t!I4DF %Z1>X`96]D\rk["WDk70F`GG$^pVd7Q`4\Rc:N0NOPQj2iTcugUNk(I*Y87D^G3J:crg4/Bf%.0;@N5<[6h6<>D`AFp4/tNQN9JU& %Il'Fm4#`E(BQ>SPpJCX5CeDV/Y>T4,bLS_^Bg8u.rFse8*-<7o:4hn9'Egss9T3oC?!TE:a*q1rAE#I7fV0-F2Q\&m`uZTrL^b!=H]Sj<2EZ["$IOd)s[s2DQ*jg %p^P1]H8q.V`"G@uNdf]!epGM7oO>i:8rAi&E&7)@5B01cJ5L4[Bp't1;ht=?=4jM&L@lL3""(j%[QH*S6&E8.du2Ue#i0`,R&cUK %G`S"([LFUc%))L+n(M5'6sZTc]F]4+Hl9$e.phVE2kk*c*p^[Ph5;'kdH7[cnKU+e?B=)@HaG3LHb_CEI^C\Wqa7If5XXEPN;@Auh&C%nulMp;JTgMqJ<5 %&sgT^II]t&3Z+6]c'ET$cst>DQ9ggNOBe9/A4usJ`D68!$cjpjqI,fQRGnG[Jbo)=MJ#IIHtMr1ue0< %m5`N/:N/Ia>:M?q4;-.%!sP0&"kuof/8E>OeUj4QcgQq26F%6#DMbuWlt %R:]Y8SD[(>'FO^/Fslh1-Oot"H*>7umfG\he(T&]hIpf='oI8GXdPo;bp*pl0BqkOGKdIL`]Vikg5KPqm'3VL"7+tP4h-dpJ0Wq2?Vp^S31WgE@_sP_W$BkBT %PY.N^#rUapfP[VBo3ghE6K2DKk?PQ-;8Y6n5$)n/W-=*Sk^VP$q+_LU %CV^bEnpQ$j4IQR&*P:nDG3/&8L82/[[K[WFW2J.gH3''`"1E._JkgXGm2+-56J\ %+5:VFZR,,%B3ctD:iJrBY23(;Ni;H8[UNkpbJ4+drF:hkq<+2@--]0f$%aN9jDHkYdAI/HZlr=WT3_1gUPKi:]DcW]Uc6G"jI<=& %UF^6%d*gpV#)b)%LHl,iWGH.q(Y;>F^Olr!H"\e*L %:P3N:.Y;\8X*>g8><>`>Cn'7Sc]*gDlY-Tu#J^,.ON7$, %YfK[YZ5QGNGkT+E]Fd-KQ$So'#.$sk@p*..0XmS#_pNWQUfaq)NmgcrcDuL9:qD6%RjTh#)eI#TKCriL;GWtj4-cM7#/c(j8mHD/ %qTNMKd_ffB=s?@MT5Yer`O4/&McH)rHXc".W/Oe\i^$3LZ?peB(f>uO6lLJU#'NCT5?jW?)]+:Yh9dcX6jd- %g"U9-QN7cqI.=k!b_L1a#Yk?ZF%SZ]=,AS?:q3h&`eH=K*&gCqJM245PE-O/TFSlf%Qh@l*87 %D:?6h2%]FnS&Hdu/7aVFqo,<76IFCDDu_u5Y\ri$caX"Pg6khf'[2.p%H/`NQG?5NqWs*qa)+]M_-JChF\b'//M*f^ai[H*)r,U@ %Ak%,kB(E*l,>F<]>p3&QgdJ.q[T[]u(f:#J?40o?5euITn$4%gM;)rD7UNjSAB_a?-$L*ZVm@YDU9Tr:Ye&8lmWV_fA%Tos7L*S#>;f3NK)n,jT4Y7]\2n2I`r&#hg&ipCC9KO%"gG\$&>d4Mu\U4WS'[!KGN=Sq3KK!+q;$@&$R!r>%5cZYrCag!T47 %5X(;PK2a5qiQ@1/Q-UFEgWXB;J(KVoZYt\"B0+\C)Wj=;e\MQbr=me/1kC".:Uu8TRfb;f`bLRYoQ;bt$SB$G,,_ZcF`uQc%?WaR %=k_h,R%j>6L*1&u-23/)]'7!t3M5)EVg!\_mJ[<(-kr1g8YA2DgQc*#?_sJZ*k5>?S=CG86;fj;e.k4#o@X;5p6UCDn>G3:0m"%= %J";OAp;U(0]K_pD;PHaFgc<>&9C8uhlZY2qJ"Ela;AqSR\m\9p]i;aq"GoR`%Z$ae$(2?&gmG"cl^%lt*V@T:Yhk*?VCWYpF1L@C6KpZkaqVTN%-lG=I3DB[iEc-C9DgWWQ]KGGl`AQ!*:aPB4:fu>c-6DjfEA9\*"V1@p>'h %F_^56ZJ-hUq-9loTX2RArnIl7N_Rg4^;]\E1@bEeIL,*@o1pmg!Lb,=RW6R&B3Q+\a1*_O>&9_gG"oORgn-/`[AH];Wq+eKkq""p %cS3Qr:c7j=73YG^Y#TBgd/,5nGWLF7.1/>7h[=T"/Bgm>F>ItBP23j5C(tG8XT*U5,-1ui%X4:I1KYf!9u9[4@,b;D5O(aV %0Xj2d_uH%L=cVrZ>,'p4f/.T,)0@,"9"(dF'4-Zn]D2pln@(5A.M_R9WLtWn_V^qC3S5S]HnoLJJ&q1dV.$-'JI^-:m-g<0P%Qtp %h[r:O+?'bJ'&iqN"jfgqXMA7"",9K8l#bj%;+++A"d+n(#dQ#5.Jh1Z$rUm`$PV>0KicYUD?NflN?NA%'N^K3P8?M(acl0>-5qf8 %]S*;"2(M"f#+\2W#j*0V/:f\t#*RH?39"UN_H0-_n$sS1TX,X(1*L:NW[_FZ7\BHQ0qAYY)&nbs$k6eL)cui4$)SoS=_94B_MU,o %75K]47pHleCg<;?War!l/A)8KP%!o:M&__h3T_Y5gl&=-3b@t.bWCs+*,.8R==n7r-'=@Y.T)eT#4FYk,A"lX7rh".[>J/+K;uU- %OTXu<3V'NjEXiWiNLuZ+R3>H6,I&*C!TL@QL+l+$9NL!_03=XfV(b%%HQ6"\[e`aIME\aDhI$Y:Bc.%Lo\"k"klg^[FA/.@p<"b^9MW&2E/TO=ap8K15!*7'Mm'GZ%rk#94R>XikOnUOlC5gWY# %la!/*H/.FF[W:sW&GM?:)l6`=p0F]30.h7JWm?-AFcfIS/K:jkBK:b*Ms6o,h"aXo1[,+f@G'p]GpF5'J\iu)Gbh'EK8L0,=t/a5 %grbqlc?D8MWF2u48lb;K+AZT0]o7HA.Hi?RhlE?i5`bsBG?U(6)TAB/fmt0RqI^Z`/%;g@8/G!/kgdbE<.Ns+oadPr^Dd#kG(WR$u"kI^V;)3 %ftnsk#3C(>pZ$rm9hMj.E4e`!'ZS.5>ds1Hm.ek+!.Hu$`>ui91BULN$=c>gEEo\%lWe.1;>Jh8e!/1\%e$nR]F;(!O1ENLk7BML %QIF)J&rbplH-6uuLIY";H/%cLZ]62Q5qr#?ePFF#rJ&'jl#24n=h:Akd@C62:Hnp+W]4WHh\eS#sNOS/`l-c2/#9>93XZRLfq)C5Oe#oV&L#E9`972XFmgNX#"/LLXrIBs% %ac4[Oi5]`4])trO\-\ZTkiJ'6,W`QmgBQskUN\W"BTW]6/r\3JU%+91gsM1UK?1p%In:9'S"b]4cI)k)SL(qiYK'6NKCLNTh!>ah %dl;[\nVX(;r:T)\b*q]&7d[Og=2YB7]b=eqGt2?Vc"DZ)\1@+%F.Q:Z;!!VV<^j>R?%&1dGlkZ)aRUM?D%/YMaR.$<%oF@qQsXFW %V*SL:T$?GEQM!C/PFOaP,N!V8q@;VtA!niXj/`L!NsB*\a4&4X!^s;g`8`b;XriHI+R7N1kAl_q;8a+6%[n#E2LU=COo*I-FBn0. %P*(O4Qk\ScRG'gZf3(qgNk$7R,,-ZHh/#a!*Rs?N!RT_&1csF@X!jM]:"=b#re>&9SXNF>T'@r.*>%FPbdf\4Wg=`MZ=BFOk?caM %WF.LSS/X:#%S=7MY"VSAF5Tm47V_+umA;qp,b0TtcRJH?HZJEY+&\)aY8BK.oG)@Y2 %QU&Y+6h9h\0G6!'>och:rat0/MHr1<)c/91a#`?Y:Yreq4!^/sI^Oh:,l%-A=haR)(JFcFfZX2L9LS0,alk(1SIUWr#PA.%;PE7, %WRqJ6M%#1Jq4V1q+Rdn %;T*,1!Viq$]+a8W$lNs#o2MlVU;F$(3:NMGJjH:4MG7J$TOFh\n>tCc5!9!J=JpL%:W=$:HOq\D/&,)=`$ddXmE=b0U[bK(IgOaa %NKd0/Ni:UD0L1RmG$&0BE9V=du$4A+'=NGHNG<@eWWQHGD'Qk=tg^^[.A_8S`AcXlt"#"#R:B^^@38sQ- %1anflr6l%niOWpY+5(YD]ZBf;1J>7S^5_5QMj4l+LJ$n:BHKF\Mqhol0A/rDk$q:H]\3#>F4f-:O/,rK:8.E*i;#Gu17h8fd\LFf %ba.IHji%0M)@dmZ?46U-DmiP!Aq7?QSj5%)U%+LGqY+nnkGs'gi,iJ%KY<$4KQ/\eLj(N^DaGYRK[]?sMG's:]lMH%P*Y.+DlaME %H$a7n$;Y#H:&/V#f$7JX!T75N8!>3\IL6@%O\LJD-R$;mcgXh3gQY9\IuDF9a6SiS"ZEY%i*u3aBTs`:kEotT$J&5SqtcnZrq=Cg4qcf1nXu\g!XoL"(<^n"<9&8r-Q[$[/KjOMN:'VY$M2ot[D %7F.BF*UA,,8&(CLl(uQQ$IG<&M6`23gBXD9RHV2pKU?H0SW"6ePjo\h@aXuX;XVsb(QjjWr7K^Eo%(]jPR\\]T[Ek+[\tNC9pYJa %n=\Xn,5q&Z87kN4k!!"Xg[jnhBSh"PPZlF,PT&ZWerkUM\U4D1phB;&Q-3Rg1j3XQ6G%<:Ra*i'+U:Y6m#K8E]ta2ELe6_23u3pN %$p'O*fDZrnre`A&N=l*+oI$mm`CFX)qhOd5Ob:V;Ig3aJ_4DZO2^WQPfuN]&$a9#tQeAEd!jo4R;NY$^)a4dQ8bGD0]>OJiBojT)Z#D3TaO'O[F64E<0d8R! %4cN)pIX)P`BnI;\cGS:&Va;H.&[$g%OP<)7CHPIbpS'=54f$G7aX5(gCn>HlQ)]E1fleM9&o,f/k<[b,jst;QY*7SP4Dlk2MOAauF6rqOg%+;I@1+m,sIm]D#[qn!jaIU/3LX`hNm&4FQG<<=Q3@OnYU^Fm3tN]224:K;t&Le$YBWdF0juRQ47?=GQ^_#%7YM*a!h]8ns1a?OjN50!uoEf %T-gW*GhmG7V'F[dCY%%66Z@1X;`K"\YGo[.,:$qED?7!'"pa1(W*U`1@DZ<1k24tMLh&&!SPF&S$/JZIU0);dY'M.t1Dmo!f"iWVXp?(/'miK>O"S_[#qs2[DKo1A4q-*,uV7T5D %UT^7VWfs.55h.jt't2FUVq.hE?=8ee6J,5aA@-QIVH0N'QL.Cm32lT+MklCY#5go"#j1"q"pTI>MWXK\6?OMh8+IS"i@[]fB+qT2 %H$mJM##Er3>n(LhG]LP&]G;Yc3fR]_L1_Hm0.uGG1[?uH<[bTc%2gMtC4`8oV#,B7!aIan@)W(#o.eAt17Q/Se %59ZJ8bqtXDA]5>dJBjQ'K(`j)M]VPcf0X0U!6IRJi&3m:oNMM$(#`l$b^j/":oE(i:%$TdHF4ef\*N-H\A'e'SXubQFG8g\i5[m6#e$32d"7X`,?l4)?UDYL7.cF9kucX;A4ZQT4AO]AE^Z<$Ds9TG)UGiHSq`!`Auu4j1;q %N/[(f4#\?@fWP,D^.SDcide3l0"8l+X@L*M8e=.NlE>\OkRs;cOpS(2.^=54YErt"-,<7)kLoB%V8fZ,1%L6dFasS>8<6#?J:g(RMD!'md$>2a\55)'\ihE\F*1:p6M/_u_kG7(0REJ:"b+fR!QrTN$@]!_q)VU7HO9Z`*3V,mK1?Sa- %_$V5+"&tS[2p=!3Z]PTXO-;qD95c^NVHB,Fp7W!C]jC)1:erPp/+*oH,a\+Mh!IQ:(=3XZSFE3*<.ctHZlU5.n"N!#e)CH2'UuDZ %h[pkSFC$%OU>s-SgIqAoMB:-j2[hC\,F[rHZuZq!9mK@bd0LHE>oWs@()FMZiT]'Y=?TBh,Y %!t8$;VUC:*$,cs6Ero]?4'SE5`:('VlTr#Xr@=O#pne]iB/%c[d"s'UIR0a`re0H.!ODf*Kpf0W_dEh^/Zl;a)(X'CqIOsT$2Gm3Yff]*1Lqe %TQ;nY2E%OShAT+'nCRu*3J(LNWcZ)`G@P8I>J`Slc[\T4hZj3fM*F2bU0+QMf9I;.qT'PJVREK)+rU9g-i;/O:1`$Z`f/_;d2<1hUA-fghJN?c@39%50dgK#[Vo&RK=!#Uac#i&g$EDIUl?N$t&h8%Nc((E:Tq/Q%aXo %N\GOS#dMlgd2p,!pbV)5?sj1k+a42Nb3:k&@j43LIJ%&/R\qalGe-&@RAr[IemR.eq[M+AZ'C9tPPai#?[MT!<.@#(;/Q?b?[iq% %Nq]Wki3X@2#(,%%Z\3q\>l?>7J"RS[T%l4s)#.Lq_QTLEeXJ,*#>5a.0np&"jJ[V(Ytj9N@'\PaFFXl[)u?"M+-aq;CD;1k';=V! %r*!_OGFf!NpiV,$VF"!d"$Y@sOEN/iC4(uV-V#/*mH?))RlBF5T:N3KYuS$PD[GpTI1,MhAS/Q7%t6s+#.*0PB*UVF0Q]1E)/VUs %f/rcXPC$)Qg>N8Tr!^Jp2fPVC'"Fd"[A9;ZRh5+1lbs4qa/;t<28$2kF$K<&][)r09$Y/0^mq_39l*f%QjRDfX7AYWtTG1=Su %R.b+oEO[5&6#3Q<+Pinr",4F*%A@I,L1pe2T`QHb>] %<8X&O(!e%7W7$tj_sNH,@;&cbP+gQ)bm`u;/RZ*[5MR-fLC^0=@I;>XT&/I*d*'VM*G'J4/m\tTSY4`an$^r)iPWZO(_79[_fSWA %%Pj!bIZq8l.f!NP6Zqhe3N3:Bahrr`rhMqLQ*AnI3D5jiYK--5]0m%3;)l&PGM_SY8A&dU' %n^Ekn[bAb!CF*@>oh#U%oqbbLeq^Y`Z*e8JN-G/:a8"j'FC%iQU[bI'GVf&[T]^=%KH"QJJABU?knuF>:^Qd"\)!/n@s_uL=T^T] %P@N1Y2gO+fd=`*m+]H`[\4iSB]edXaULR6.p$lS8hNmK)@b[M6?&(O&eHg6,VO,*.E211aaalK/o.7Cuuq(nsF3qqk1L]hSmb6hFPK\ip/MHFN!ff*nMl?oDF#\0Q6Xg %YJh&9`,uiRp#3>oE?/jK(@7>n=ic$6AVo5H':-"TgpRooc)IO?M*!8*b+#b#)YXc.f>[[:1AmN%QB/NLL1N.^/?OXM*O+8[_ktt" %?#H_Ear%NU)VDAR3D8%J(2JKfAta.>rNh#s1($3L=4qr(p#'iFgT8#6O3KKO4kKhlT%=`p7UKurauWo\e_i6#?@lQ*&k&_YG:TTh)QD1q9\Y.cJ1M=_BjK35a7\ZHfjE)ZcM=R9 %m+ef%Sm;iHV!#T^lShnPB^E@:n,BTXet$*VmV<>;(N%r1>T^A8f5J\GEk2:bGUm(s]sh4*RD!_(Y39/Uk%ID=U0MYW)je(fEdV"=TV^1$SV-eWir^I\S,/'oq].G:a_$\mIuHs"&KQsqAq?c2<_ %'TVjkbSj\#)dV7i3D8=UgucHeleDQFA6pAJ#H,%]%nCIDs/_Z*KHo5X&S/]I:1StFG=7'UQ\f&$S0U:uP>K&>?h`k;!T-*$$H-G= %2,JaD)$:CEo0+jS2"(K-_Rp8fk0AB/HqtW4KhTK!]^sYo_1?7Y%t;*\'^9_:Do`L`?6o,V?^pDhg2CMO@:,+giC>E[HjPm6fJ/&` %XMSc7Ja+TO3AoTpS^_N_@nWqQ+,UekRntDp%YUDddG*$LP5GTTl:F*sO"--.g=kA9S%35ar&ulgq&YF(,L4tP1D7eK%DZW4'I&U5 %kpA1O`3VKte6H.XUOc)^+3eD7]4`SHX%%m=AQs7PqsS$D]."RiAj0h3`cP%7d@h@HluW*s*r"GPB&X-[ck4$hVh=bKf3F/Nb!@61 %/l]99GdcL&gfBrA`7n3"BKrbiD6,Z;:M,'>\D?jrlC2PKLZm\d&Nk.T?kq5fEU/fesnEd'0k %<,Ui'53?_V+1lpM2\"qg8+X??^V8S?$kZ"B&G1W^$RNhFkbZY4$u1JlQXa7lLF\d%[]uA>+/ZS:ETp_%9(#G#;+`hg+/QU46)O8d %/o8^k"+FHLN(gBp]//i>Vqk4E@]r#b.e0FgD?Z8?@GieOql2fdIB:HGn?gJ=D;.t6lEpHd;0--"DCmS9B54!L).*227h)p[C,3Is %Oh'Z0qk33IFr>YKf"JJ=[%;^=j7R'F_-R)bc#!o;8t-`qS!QM&D?%1c)LCF21R)5cS+X#AU9c\s0%/.Qq\oIb%Il`l\fos*CO(8. %DYloS]6;$BlF1-dN_RQ%HuX9qSXW`Z&[BqLPPr"@k8\SB:n\Nc[@UZeVH*j1G2dOMuIZ %*@Gk0W;ifVg?2q2(N/*u5oPFF>R9"6t3pt)cBpj$AT<[q3q-5'iYKt,QJ'a197N/h)1#Vi %cI.X-7f'g1B"Qc$G8A\DJ0n!oFi2]'F[eC[hRn&V\[R_BUYZ1c;qJW+:cc7%BZp&q0"h-]JuXlk$@%n[^rSmm.5jG$q_W/(YA4f1F^<+@I%A^mq,MJI.sn>(U74$[!4]@US[KhR91eGmH*mRc^.]kHe>dLfs$gn %^upc^h3<,u/f0BAosC?ID/b!\ZtZo)hD]5:TrbSJL>ET[che>lg_pIeBUeYf]%].k5j0rFqn`1jcduA%P^5e5_%0%gr!`"Xnn5%HOnn)?FeCM[_TNKF8+or/*YeM %ZbBnk)9kA,gT?]e*Oj'?^<[47*^[\NK`S1;\s_sm`!D8P;J5*LN.g*C*f/b<-/^t;Wjdeq%2q!^AmgD_C1u3K/%_9:4qML!md`AS %CX0NUcRq6Y+ZnDT%lm^nHCq=(%.-mWOK%?J_&IHqP?QeY3uZ4SVg7e.G/9ou&q99`i[b2D8M&;*eABn:m*.A5K8$sPa3r\eJ.+Q0 %H[^1dXA%UmMaSoW&jcD_/sJrM]t#^B/)abX2n+3\ncLa4G4P0&Hm%APm:G&dM2`ag5p29uDN;JE]nbZSML'Pp,TesI %,B%E_/D0q+.;O+>EF9&2-iL1O#n!nRcbGB`M/!l?D33.o2[&ag.Ki)1d1>`si;iQNA+mF]QYir"dZj4-5eR@HV,o>8<+h>8 %]6uQo34`X^%bbb:_;[?33SYifkDJcK;9T'KQ[umBl78-f8XRn`#Gb'5"&Ap-iHpj^Z)J[ol\l3q_[bQ)$aE %Urg:'3oY1N!kiCPO0AQ\ppMb)?t7"aZXW%*NbkVI,2Q020E.4"]VA4f$LUU\F2qIthnC'CHFOa7P1eEm1hMfR"qKhbi6CgHhJ(-(:ZtLfQd22UR@trjc1`a!b4)JRLM,3`K.d7Z>!kWSD(QjC+ %=HP$mDk<,7q+_$QO8aOZIk09Q0gDAUXX.9YIS=@Trd:o9=6Pl*=lubg7]B>??ZQDMU2W7;Z'2F.7r,D!HZ7?2h]j.Up%aGFk`do$o3qVudOFC6lSe(43I>31:.q4AjN$u&-/3,qC*OESXc1te %?Y<4Qla+XhIWH@f4092e\'Ih[]54BNgM.qs'_T=dgR^=\qb!Cpr8#LB-JrO&Yh\?(Z+,1Z)u(OAENJ!*JoS!DC#+8g;p!1+>"dr5 %?CSX"cm^BXKl281GtG9iO2p04YL)N,aPY`(4S#'"IXkP2XG9/rlr`.;Ss>*^^;!@QAcC^RXbX.(2gj4p6AC$GASJ#8n %UcH(bDeu>"_BG=(Ni+Ao7%N>GKY;Um;L%?X]/,V%h'OCW"_9h]3N#[LUn-r)ei;FKrl-6%WSrP[FtfJa+0cH;@U`F&hX9eE#2!Y\ %e16eHgdkqBUf4d875CFj?kna@&aCq8:#M=o22!uQW>p+shJVTW$?hl(Nc^a/XZ?8Q'@K,er.qS>jsJOK!kfQ]fXN!9GF5O%% %VM]TKf6'LOl=1K3G3,m$-l/?LMslsadbRj[HF$Y+X$?nj=,+t87NWjIEg7&AD]KjBI5_[.YHOhC#K<`CUD.uN]GeYXX`ra(6t5*N %P^^"hhOVNc:BSS:)TYt*HQ@>q[?-c]lVGm+.U9hQn]euhCl?>MH@Dmf6jWDp"n-k)2,%< %'"`Y87cK;L^KY"nZf9MrI:H3?]?3`^hSmr<`OhK.I,\/j.M,'*)H=@Q`WM&&AVjOoX+%[\FOb-1Qk9giS[9-c/=DLJS)*=q"BH&V[N/pQ4a% %n(Oa9a)[62'El2TEqK(Yi_$Cu[n"1rfoVOfOB1Gdi6sd3i6Je!FVacMY&/-m%6FdkZf;$M21Q:a1BpY:/VqQdUS@6tP%kWs&E#Y1 %!qkf(NXi=QH(;BqX"/Ojr7h4):.@10&`FXM(2e*BASRca"_MKnCoF((;,7Q$eQBVtNallY[brZ(;%pZIBOt[7KuGjH[=!G>D3OLN %IOWnC,kJ`Q]^J+NGdYWD?0:g7GN%4SgH@L56\+TE>J-*>Ngr,L[G(N?eso[0&p']]':=E_V%S-J.e>'o-SPej1U=1/*'5[q.jFh5 %QG(=?/[>K/>>W2,c6CGZS8=Q"1pJ_5-).@W.bm'3CD(s(:Ro@9)X,!:4+Z,TWXZnsA^&I7)mOZc,IN;1V6;03bD>ACkaAA+?(LK6qc%H^.< %_HUD_D&[5gY3s&r0/_E#jX/Q/6ih#be]q3U*WOJn%U(FI%s466kDZq?\5BUpQml<#a4;)E[M:H):1mF6n*RDpTu\3W*OW'?oM`9t %%GAk5Y[JWa0]^#k(9%\b]k!o?%W6[Q``HEtUO120I3g6l(oNXe3@>?FOB'$W(t05C_.8bN5mN'NMR_%UG1)mEU>lI22/!mRqEmJX %iIHgPRZ\Y;KK358WjBbD))]'-VB@lVT:FgWJ6ob-Q][nfKo2-)U9`h&\l=;(,Bo[oahoV.rn&;t`Y.qA/5oja9PIoA'V(3sQ:1%K %(Wje&Sg=)$q`>m8=($b;-R4]iD;5q<24,faGA[C\ZhrYbQKNIGFk1!Fek`]!Q9BqME$fFSgm(D*:LpMp<;,c"O!A9E'Z/"e"Y2P>EEQ?Agk,.(>u4d_pp:u[$@GZ.))3^GaA^*`0n^QOKi>5IcWDXBb_b_.C"f?8+CDf %pf*,`7@ACt:k=.AVR*3;89ju>.#hl>.Cj8l!20;eoNb`1fO(X;Jm;ETrAncaUV?28mbZL$s1cX(UF0d0:[-c='R?[Uo^$:/VOogRI.)W %:5PHXV^A-a%oA>a-]9;e2k0._#2bV=Q?ApJ/N&XKmOMd(ip]K'3NC0n<^ %_($h?_cPDFQ=Z.`S6t.$RKO8c#[Ch"*@/6i9mq:[NkL>d[p\!X%shfTL$pZGD?2&4qG08uf-IQ6\>?N:_A)N/Q6\!MJ16oJXfohq %.'UY?PmU3Qj;4R:HtBt:l?qhk6fPXfOpC)[&n!B@;I@#hF6;`,d0MWF/D&Vk^2M+.=I>H#Bh2GC#k\gEg,.NDq"^))T<:H"<5$06 %-uj;EGA(2,G?BtH;91>_)G_.V^9Bk/61t.IAYID6,"q4@TX.n=eB@"k=ZTaRJP9b`"<)@NMNEDT//LFm3L>B9I?HM!g7?>o14Z*) %RUU^@#nk>1,\fYCljL6(q$NWl'3BF"&Qtt&IV?p#bmJo'+`0DLlN:Y1b$u\Vd\J;9@_>3'h,-tjm2meV%EiiISD2BQI[`0+3-jR2jg'AtHFd0+W6fuJ7PR/iHDnRHELI"HicUltD)0?4m^SN'5*8S:on8p>:d %/hS4fB4Ijc/A=qV5UF!:GKZ@i4NceQ@JNk=M(X2HN[UL/)-)Q_^#`#6>J`4LbdmT8\3"6-,Y2e>]j$Ig5tZBEnOVi6^\!G %qC#V_kB3 %]Ll'Q=C+1p<**\GZP,iHQeK@U[gNtn89L6a'J*Xf,I?B#O*>`caO8tDLCeGP]-#D"A1ekgqZ-I3\RS` %K&q6h9%qRZQY8#]45kDp,GB@f8>qrNg_>K&$T*\bG.6HV#/or:788Ib/?-SF[d'(/2dO&TV^m-b_iW5t5$,#tqKinkK=gohR.g"j %Ym2o(d(+Nt.D,bJba%@u(0>sM7)WT-sNBu^8jH62F1HB&olob_Lhij.)/i>k%Z,@OC/0oQ[c;%G?E#^F#(jg^3I9K`pl*ma.Gf]!ak2^i]+'$Y[2WH`bLNHfOf$IVgd>AW%7j1ANPR&+>A(a`k]G&1-QCi,$IJAl96WCb%YbkA4>-I7H$ef7 %!W=A3*oumeU"(.sFr)4e/UYX<0;]%IJg=8+YJ\HJIV>a_/N0\G%GUeWpc>%.26<9cK8E#InB,_0UFd%b[3e`5&NYU0jm0i[[V!Tu %d+;DWD:*9(%pom;A=)!^q"JOTnf'/0e%SH"E!g+oWV)+(s.8?A#.=pEhC^i_cjru8fk+:WUClB$WqpS-n-^NW%d1ePno644%DJhMS%Mp`GY2Z %X"V=.&ZAPI_]V-E5oU+"H%.hb:_`Y"fK4RNLKmE?jP#94MlW_s%*e9!SaT8G$+9kFbuJ[Y`>['mCU`$)*Z@U^B[;6]rt,m,lK#jJYsVL:eF"GB\G*R/2Xb/EU4gZ%"u9=R/LR0N>>*l=_E.h5d/a+qmA%MAbbNkqWL: %MS_f/HI%4s,u[5MQTdQ`/OH^6GBIX9Rt`^%"L0]3X"sQ19H[LMPdO".4!ie%u3b>.bl&a"mHoDVc*U`*8gTB=6NCMFd:]X!8d %J@Z+80il\Z>s+$l]uh\YZ=G9Ylfb5cXF/C+s%dj1WKT@>V>^=JWGCkX/^(!f9)Fh&[V,ua\d5>^]:]+F+f&b<.SnZc43O%G=RFEc %!&9i)8gmFDi,l*M[3A;ro4LC)R')RK?(F"'M)q[&W11qRVQ2-.YK/kQqC8<8Ge/>=b>Yrb\uK0P&6%2JXq_ZFjX9CrVCR<bO,>2,6kmH;>q=@^%"EV7bsO"=cit192&t %:oa`Z8qObj*m:P&I8,daA>-hH`/Iq,%@/PST;$/)!Y%=3Bu=nL'1-6&_30peJE49E)Q[6k>mhQ%!="&B]Q$ARYek_Wjj7Dc6b+M2 %M0.(oQ(YsV>XrG;%Q%9Nf+FUg6$T2/[\Hu,5j)$RaR8KC>+oK0]cRH;oGb=NS&+Z*eV\*&O64.$WWFp`NOd?f1K>!TpQ@>7<6eHo %gKE%hh'Kq$H'7sQ>(sdWCKLm*H"Y:q&54#N2bG7g??'W%nJcO+L1&`fdT@*[T;DcXQ<+4_1V9?fSmA6C"OkB)F=$%,kE*?(?F7eH %Ht"%Hi1A'P[/t=#;`1]iJg"B"!SB's<[Mrj!7Aq*Y;F=%YDTMd\0PH'T;s+/RYC3b?l4D)Cq:IQ$_.'pJVK\nb#o,!]8i&(k1FcKO0'Sk(?n$/9 %\Pl[5INK:U7nS.ms)h/SEr0VdhCSI3<3R?`o'8!e5m:W0'CpK'(7+BA]I#+1:2J_?Z+l2(4r0W0VX:'Q5@<*=LBj/ahNu*46oCWfODk<>l&?t9P-1V3@%Cb]*4^CX\P:/PoV>d=T@'>!rXDu@6J?$nZ@q#$U-07c<&41dj9HP^.L:Mrrmml"GCJ\NH.PpEOHA(LN1S<^Ui,V7r:)MpK)%#sR9. %H(K5"]dm:P';:YoNDVmZ-#k?pCL`T/cL/1d7To=ElbA-N5$dK,.-55SPco]Q5DN+e=_,C3$J>&f(hEl@pm!SV=2]rr@$HpP#e;9O %)-F2e/!`[Dc;'N1FL(e-IhUC9r5@mp@@`\8@BPH05$GMnD-1FB/bY[Sh'ETdoH?pI,Dh&$faUT4hhn?8&L>oieeleBC?[m.e0jj4polO9uorua):S#0' %f(lWGn9u,W'h=QbU6nU2;@/@XO-qH2qH]H-khelf&_r#XEl6"3p83X\Jkjh3h7a#Y<]b27qreu&E7@\$Lp %"hYc)=Z,VS%I:+g]qXE%3hKAC^BNqN*DGHQXL%&QNkU3iQ;gGj$0ut&\%Dpr=W8jXin#;'Y&n\4cJO1q(6Hi2X\?J;lcf6Y0(`Yg %$gT?jg<%mMc9e\/I`C4l8@@b0IWc/9qq:pFdlX67eV"+TS.<`4q=TQ8s6]2di3fo[88%]SiHJ_$-2%7U_E+aIqcC]sMsL?!LNPfP*;N3/B48;2bO<>0T@l/P-*4F\ %I-9AZr#MlFYWiV0j6Bb0;\,XTFhY[CEi;7WRak9[ %Ec9%t$EdMPeU7@e_V/tRlDS<$@c,*]X.u-Fh^Nq5Y#udqI/^h0g2P=%W+Pg"iG7A?ePXR84S#t#c0D6>-A27\Y#udqXELJ`-+IQ0 %<&7mrHkY*_%Xt=SAm%ge(N@XQFq0!l<&;:doM&Ss %qRl\)ft5\@['_O_$ht<5jtS5\O?"P=5u9%RTE51H37Rd(^O%&!'H%P)TssKS07@`O7?X2-H0r!Te];@sR[7qMO)*h$pR7Fe21P!s %YJ8[Oe&*%fYn%u>;InDJIWo5N#reZ]`8;D#G/5g^)OnCC5^$_b6JnI!lQa"uCQVnApI9:6='ubHRO-$-bq`fG0"G2>m*[FPG0u5R %!njCf5^"%1'i!"m3AQ9-(IN?5bT>EBBusrC6=e\ZhWTL-d,lQXGM=5QHTi9^As3Vjot-.=TF[!r%hG7^fResVGk?+@k?B4Pr"^r;<%V-kuq %26hl5AHd)%mFf9+SsM,-S*VN_(@lK"Mto=-qcmQn#A>rH2?!Tj"7SFeDlQKC*oJtRauK$,sX*k),8`62dX4R4SkI9j9eihGR7YD[mk&]07PMULWH_A6M'[o@Z+ho4m< %A&SBMk15f)Iub1"KuJ)ST6u<>g>4^%?b'k>oU:22\GJLi?RF?9L_"<]mH?F8CJA\:e%!0$L9o:n_UDk!_g0Os1Ntp,K,lHUgX3(r %/!js0)guPkrT*W.S/2>)DqiYI1F5C,c:5:<^T*]heSmGCfOe4e9PQO+h2XD0#eK_QFKOM(O:oc/A9+L`5BEd_ZFj%'X&YMYeQh:q %?k'jZDPPRgQ.tNRR-QhX#@(DZ1RRH4W9)u$*I0[#F.no0]4qf)P((qD0"!Rg@!(7B2:rWSA&:?BGdT:L<=HI6c]cOJVuQ-j/Qo3o4.X8R[[&.P/4U#6g)#Cn@QbWd %\Jj6hMcM>1;CZ.#_f#.b>2J>A*IVB#1pA^a=NL\+++3SN*LiPcS38K-/+Ge@=NB0a;)):Bm@6=WE`QOjhmD:KfnRZG%0bNuIa<.; %1Ue2dq7rORcZMo0Y\V"'YKM/JZ]U+qbuSp$`XC$5\^!\0%*CmCK,L^G_KGHcjmn[VXrH/.2D?41]!DT:CmsZ`T@eO+@5FsLY7#Cl %g5#M&A6fI)RFbeJMhtn.IMe^k1!\1KC^_ARh;^T%-j7GYc5+`aHV1>?RZ.FBQLi#0CLIO5do_5aCf(JPr,FDLPr>gX66FdY&3LU[ %a0r`:"J;b5JnG/S-Ud]!#];j[$,K3*!V^7A"V"gMiFXJ10^p$J!\DT6G.+"PEC1W$lqI87FIO:?QNNIt$5,fe46I_ciJ+JilpUdX %_`@bFbt`L6Qhgtt#h>@#BR7#Vql]-&bUX1h_M`a,\F&!R60dEJ)o^Fh=.)mPT>$qZ)D'm';'Om3jph=076Xk2)!E._/o]bM5(2$V %fmkOAb\2*@(sB(Ha@:U9RHYYqT&E4%1%>F`?\q0PjiLlbUQIWt/pFega&`2ZGq;&T`Cj9=Zr_H81KL*fW\GPlI067h2:k;Q]$O][ %r8*?op5PodnnE7j-V(;cWUqugqB4>gFN\]Ls7u0M`R0#3Z#u`KYE.H/h3F4M^\&7IhLEI:i`!"HS0#VH(%H:f);j/GJ"3,)O2oIP %^8\PV@P=26W`M-U#O2$9I6ugkl1gpdX'InJVda0Y5
_:Cgb.WB8d]pp3ff>i3,Br('5V^7Dm-]==@"e@IT:C-%I/D)^dE?1mQJ(BDY]osX5W!:8$qSH%Aj<4aQ;NhbiK)^mGSD[lM\n$ %/(V\O8kM %ZcG8?kEn^'PO$?1cM."&M#0ZE]jAFKY*/3;hs=pC#qoe"LjP>W#C]`9Oe7)ZdFWme9^HqtZGu2Sr9U(%%N\7F5VmNr*fEp24rGT(ZYOYmf*-7YI\CWn8Q>cXo)`]qq.tSeWBY[n'd1`qQp.\hsuVOle-b&;\^[g`Eh?5 %H8E,HPGc-W__$XBWFWa1DjD&lmSeg'IM*P/Zg]U]5-9/o8qY_iHW+!P>`:kWBL7+"WCY(pI7Sa5+c#h_G?g&;@i',>=n>pu-(b^k %ER-'%.ru7Pe`,Cr;nc7SDO`Kq:;,",42i;iZ-p::(GQLu#N99ShFl'-:CIlJSa]'%Rt&&.T*S[dG'`t+%-RA(48s"Bs.h0sc/.4I %B981>8Mln14`gu.Ab7P4%amFa20?*iDeGn>F`;=5Qg_jS!H3VA3DTEtOs!JFgQZr3'ppD`@MG*[SPo"[g-\'VHG9/2_e5cHpagHp5(t*puZoY4oJnkIVYt&U?J$E/2cM7DIpNOk=HOs7L@qpgK>B]^].g?O(.:WS#0.,%%l'9eCE,r41Db]YP74fVr,UD %^`Np'G*8af[9b7%`]FI?^Ksn]^/Y)!6T+fZj]+9cP&Clr;<]LuqcUJdD(F,5eU`+R:ER08.\0T1)Xe3tSKXVl?67/UZu8B!No#`p %8quj@\5m2(dg_Sg$P2m5nAOP0J%QU03h&Y!o3:(Pb*B;?SDa=MO/+*PIE,6;4?R8s?9h'[oZ4rAUL1":gEE#$q=hf/+mkr]S,Ncm"fcsn8)Tc!>5R'@p0DViEp^*7WR91iq"WE)IeWhOLjoGHoj5O1 %m^h?XhYu[4f9DNNI6"DP?!NmJ6KU7#qZ:8Sn\/89Un;'s$dLcrMZ(W*O5MVCLNa0A)b`2frK&'A1I(!XT=E3V@(#Nge#XIeM*qo6r,F1%=E&ZboLi!ls3sFDIS'^Eobe?`kLaVC8352G'H^3o%hA:m[?Z*"9". %XaPVe33I0_oL[b1^S&'fn^B-[mZ&r-bN)<1=2FJ8$)l$)%PiZ`pT9hZq0E<KD$Vj't(I]AJHU;#>C8J,Jr5i%FrA!LKeQIBkU&qDY8AR-]F2D@GU:KErTn7QT?V9n*akl"+f7*Qan0+8U#P.nILY?,Y]7]iTU/P44o0gbc[)s*A`j3J86B]],5l(B7Q6*X%0DVSHd>]$bEMQd,FLSP#NX;=AfR:iP8/ %kK8oW.0@48k5tN3K'/3MSE,r$R=Im)gg;-VPV,2XSg<:GK.6U(OIp!,A>pg2Mp]VhC<\&Cj^a@2QedeO%=8`R`< %eN45dr&ZJIL^cP8S;NNZ8+N!VWQ%(B8B9/NnP&Z=R %J[a$2K(FE]LoKs5:TE;8"stcn9+']\NG*j^EqLDY:%8J&-2YcY;ca4EdM4sI)bg#Lg4au=O0/?F0V4m.q@\RToDgGV22'KKa0cm^ %Wie@darBG3IbUXDQp*U5m>iUCYkO7sH]54,!O660&L@b\md%reK3MUm$*N%j%A/kkMG,B %*s1o)g?[3?06^_Gko)`\c\bc@i5_K3^4k%GFAICD5>-'Eh/X!T/HNVSHA/*'k"ORlHbWK\%KAue4oKVsA2>t)LO(4`WgNSc=bgp7Q?H,-`i?..K %OCR_V&%SDV*Db+rZ/t%+bj-JDXfq^/e(B\&r2\e?\F`W9hlK="F?G@oXioHT1bM"_bFp[iJPGG`aN#&t@.0Y@FKgmRNh7:Rre/3D %g7$Mf4isH/*rTX9cY%\bTkuQqOEHkif5p#p/aP[inQB6KY6H %8dW5gl`.:HI/E;$+5Zd9&lJi+&8aX+@m/(r;4@Zoj3Llsmg/hH@0bf3710#ea,Kgqn*Bcjc)I3(FRgt?p:VQ)d1HWZJL`Y8Xk*<. %P7r5LkuGQ,>fX??lUHJRrp=>Pq\G0DQOn5n^t7Z:hj't3S\-S";U'Wb++nY1o"d5tg+NoVMl[\q6jiCn8`N^_9bH90%q=Z<-J0B?%taesQ!X@Wgmt]*`EQZFH/EQhP?pBma"[(]%YGQ. %GtmtP-b2+Z`a=aMj"Jf8VeP4H;W@[207).^l"A?>L=MhIn,5:n`RLQ5cVp`U1W:bs<1;7p#DHm\m:-ndgBijNDMon;<=RYDq?-"mHF7=hsoO#7>^Q/Jrj; %rF5'%IK5.%o+d9i_VR8NIiXg_T$HPMkjC\>;N[RQ.?L8t6G?B9N9RbJ+D-Ymo>GC7K.n&Hn4g>8K$54QbVVBI!GCg#%O/Lm %#GECGl/X*IEss-=BPS,fjqoG$#ceKQ9LN4e+D-W7nhDp*!G9t47Ru.\4:/FT4EpHJJd8DY9/I/SQ!N4gf4^7BY?m7_i*5ceYAZW1 %O7LtF52bgud-`?+J.A5Wc0SgNYtL^%r7>5N5YI-Um8[jc5PBB04a5%)/t9M#ces,uiUJm>Uj.2qF;C'r]]=^/l!$TK:=;@A,em9tSeh:Np;Igfe_,o3c@*kl&Q %\Z=Is*\OH9d7H=$L51'2?^HtG6jTad=<,9'0s'bN9RR?/5)Y'gVNqD*=d-ZO1DpdlYmF3dIQ@`g&k*NR3o-+kJB-&V&uK0Pq8,#C(K6dQWV1'Li;Us %/C>]II7Tk\1L-n`aVd'oR:Cbg@;ui7`rNQoiZMhs#-j?16-L=d(Tk&LMN:+bLDQdTU)&Ju3.86W/+k%[-8SA&l,Op!AXg=>Sod<9 %S]&PbSX3-a*&spp"TIZX)Q %>GkUS,48RpXm>Z"f,p0m]r]@\;\?k%],/"Djj@>i3jfP)_n:,\0"kcQfqqF&*\eaIh4EV0PB_)pd&.'Ka#9*(^($o_%XU?=WXRt,-Q>)WEgnkS.M\2 %S9lO2%VXXJ['Y*=PMPP7g?[eH7sYmUeMe2g']Z?&M^\ag$/)\Q-Em%Y`Y`rTam6G#)`r_F_nG[bL`i66MLqAfbM5AIB6f!F1+('I'\Y&]i3o_Kt**'>Wd?2&m;5`nbS1\3A'"LE@]#6k*^@)Tp1eFnn[4I7_!1a^cFi)_WeV@U&i54Ec2(Np$X"7-&2ia^M3dp/,oqab4!)[H6VENmgj\=lQ`pD7*<^5l4gJ5`XG1i[=Om.PD&f]>r&Lsq#t'lqu&,Wa*!AFg%7UBibm2MDFU %_7Bse'Z&c"???n89l57h1WMa253i_g4V+l-Zg!B3Z=R<+Nc*7+?A'igP`A,3b_k>XmTNZ.3G*^Kt:]\Fm.$<.da %#.sO:2CqCi*5mPU5c90BbqLkLB!E9"0bYnt\QBC*0PiCC/eC%WG<(C2,3d([.Z1a"R6Y3PNc'i#'Y\PmJRTuNna3g^MEkUF#hYgV %c?dRY?:X(lE#7379EY\A7:7R%+NScTM)*u9[*hX8Y^j:BHfP$YVRI`"CcHi(f %7!UY;;rmnjdrjW92N#9O'Z&aL*/lOUk5A"l"]!rE&MQWci/B)^=:h9@B7*EYNLdn'SA?9'TsRO"7;Wc=/nRsQfN\PK%cUn51F3Xm %_M^*H8D#oSD;nrKSlbfl!q3<#'f_^\!o=A1PMUS+[c:oY@+jOI]t>[kEE%.0KH2H$rU\0`eELNC%34_g[HcSDfVjUVNg<;6Up29Z"2>/Pd[#0 %H$E>BeAr:/9B>ZafcF/b+JJ,j$5&-p8uD7\ZS;RtFA%OP6AgBZgE'U&+8s[%\M.IdqCLk''m^J.h=m3<:V$ma_DTQ!6JHdiabI"T %lW^FAkDtcmUTQl=RQ(^fH_+NQ$73[ghtgW*@q_>mmuT0Xj5-;,VYANXnT@#EaSTndImN7G_.sR"10`EZlZM'HCB,/DlT(K[EQDrC %PO=VJc@oOe0b"d+L@kZOHW_76TM!p;:]dU=^i'"*4VT]6\Pb`@aJI(\:W!=rais%,kukYp7G4gQD.#"D_?BXEZh6]t^:mdfCT%KE %\"bA4;+X4GZsS+e_ZY>pZ[-(!-6VVa<_of40C**GTX$6c-uLele2]N%>Y0,HY9D/U?>oOrL5F$,*FnB3YuS*/-]Hf<2-<(uHbQBJ %lXg'JJRFOlPZjM+X5S1KV-krmWF0G-5SQ%R.bFpu_P/"8Qte)qFd#b`Y.FE?7-p:5$H&?b22jh7Pt[OSLuiB19C7Gl&f4f+(5S6; %GP#2l6_J\\72!fYG%Ng:A,X47Z_`8MDm.('QjT.6$+Le0l\R?7<]T7k6(%-bPb=D?g9m]WX^8S5p!QF!fM`KuF7>P249:cUBrn7- %_o++@-(E_a8bL5d$J#Q20c27Q-a,D"LluYPT&]c<%dJo'99+[QXYMQ%-VF!IKYu'%L4G!b`/\$%M`,K+:$7e-lCuN2'+VLf5S;pH %h+Vht[EQA!&[9rCC6TgZiFYae9>^mCY\^:H%GT(g]0g!'$^XNp_c?sL#TBn?YU_R%C\IeD?J$lMd:9se0@M4"qCtCn0jWf8[)qu< %fX9.H;6F@^Hfmsi7u'MJ'htki:7T,;Ya+8.QY8WdS2cMYZ.[6=_(iGp(!&#=X\0N_i^&B\6@"\"Fd&B4/q]O"a%7Yl\m3(3'1#f^ %4J'_MG\6V7bT$`0qH2/W/G:c`Y78n$qkb-[=6"Mt,<.#:R1J[mL6faF_6WOGmdUSBcu:st%*:jdErD'gNrD9%/R,-o@i!ETnlCIV %]".ZKasYk(n!iaXHb%R-j("MI/C(eOr9I@=]+29bHsISTsdQi01[Vc[B\>Pd[ulEf#ng[`'c%Tuj;5V"$IY)tpOXhI'nkdWF+Wrco@n1o$ %JD`Yfr?Oq&O<_GNX@r]D!C:[IOt.n%iV1"P+X%S_\MC_VpibOD77SLF@LFbFo.e0e)uQp(R5=YQX(3:r*`Lb0FDp7L$KN_7'PcCDrKOqn0\8d'uu_V(0:YtD4er/[c/E-kcU'S#nOp>\56#1RB(:Tn"iL7iEK*78^?sj_(om&IZK2eYQ\f&Q!^<2#4hV;%jZ_Dn"kgfc&o:m;=+6B7KuK"(aiYo4@:=*lfGZ?,_=e,gt9d[-VE %(g9Nlu"V1>JLBu\l"UT3($$fT*U[!0aZ:jEl)Dng*Slm$!hWEP4ID$Ok`<`TdEjHGng8_O5_0D8s896FUf?`pGp'R %Nle`$pt",L6;bQt:$YV@-1UBo(X\h3DI8AXN+?Lo+R_No_.NYfkif*T&u=j6($PPp``1G+s'lm7YYjDe@Og['b/qg83$c%h %M,T9G8@&FfN3I(n7CP>n73ic!2!$UCb8'cV\%'c]MZLZ>@(2]C2O]`DG$?^\8GWHo>f7oQ`Ca<&RgIl3Q;&2&W3O_^&En!hLHrUQ %>K^XE=uKg;F'VBLZn!#IJ&e=Z]k!SK^MPQl/Sj$E^"1Z.gM.jU-CDfN*TmXfAiK5n^1SdNmb'()=klacmWu`bR[QPGh%D(k4qCReP/ %lA5&A0:1H>?;K)3)++]MXGMLefS`0pJkmeHY7aW$3fVeC`+qb,Zg*?B_Z]%1bW=`Vm"J"Uf'se0)NU.ZoEgh*`2CY+>\^?$im[(I %3BsR)pu`+n]8l[](p4+[m$NK=h$VnM]LLXgeIeG8;e"2fT>p1gG$u8Q@'C#7,ab!Vf5NBZQ\F9ncto&&/@LmVnJ_<&Rh7nR&_U,c %*j\QFWN6sacml0:LsHGBPhXbeN4?_!_OqM,R#Xp%bZe#A=4b5V^HN;V#*0XP3naFsQ8W3# %]UF2kdRdo.1'M7I.cT]P1#hfA"N2+bct$V)%^3/:+6G6mf+Ya];1VA$uQc'4mYeIfP(DhA`gl,qQ%,-US/LH?PS/3Su_Y[hk&\_QU6gEOq %6(k/*V#*^6TVAm&Cc9YGn`-Kn!V3K7)*(0clBVd,I5*9N\hHgn'4\Ym`Ib:3\\53d=n@*oAJXarXARm[hBrdj %FGYpi]m)2(Qag^r^coN`93es$0K*)\&peTh]YBbj4d"@Ob=YI&1GDV3RVb%7<7Y`lDDE$e1]&2M.r>B";.\\@^WmO40j%Re.WhZmQG0t+Z5t!\3DGL %;Q!Ij-[L4@:CQVQmN]3eD^;uGg-cmdOO''9ULK6jcINidYlDc@q_==q3%CT`(?H`r3-G#7$YO5`D,k)E(Dl"m%f7/G](m#Y:-E3n %VmRf:-mD9AO8bq(Jg11E4e]YkK\3J!/SqoX3h9'0W %MY@/UpHG.D6GZAs"H#(S"Ka4W9"])P>AY]\d!N$tSq(o3Ta@;U3)9TRM49N^CbC;kEtS$g@6!kb3g`>eaY3#\fj"[(\HobkJJ:X= %bIS/o6(ZF4hJb %ljf#%(Ol/!>*?LDX_$Fb\d?4/(J55eEYacsfj"Xaj)oRucXBsX`8:8n4U)(6\d4'if5*'km;`e\#>r",@LcCJ"l:ne'g_+)j(A7F %@]%C=YSAbl5(o7J6bH/D$d1T#MdQot"FbUZ0/r27%1XP^-lYWHBSMkJg>C!l5O,153i<2n&]V6dgJ %EtN5XMkIPCJr@d0JgVZH)rh6@/qWc,#^Eid/M%8N5qcB#-a:,ebhrdg-RT)1QSAR229$,%?ulo2n,F-1"1TUF,X&gVUNci$Z'ldB %CbC=AE=j>m&$2FWZDNJ(GQO@m?qX`-4:u,Md/b_m'b'",rbGaA%!J\kH`72rE.11O>++82V@V?I %)FGS@.]i\X3n/EMZlOjEhj"HD.j+^7;pf`D2s=4_/]J9t;pdoZ%%$$JJlu=km]'JjYc3cGeaqe>6DK'5aYju7UOYsaV-0$Ap,ZlP %oDa*,Tq;#ihLC#[L-N$i0S+"-\i(k_Mg.1LpMj#*I^(Hng9m;VYB-%`1.3O3V;"Uu]=P+3 %3`Kdm;`Z[\=*.ZYU0\I1E!8c\(VrW2!FF<3.d9,WbO^[%X9$-k(f.G$`XjHm0q+*.KIB]mR&FU6UgK2Q^0r82GL@jQ1^c$!3bp3m %8%n^GFK7@"N2IabDoo"72N5$;+ui71Uf"<*LN=0,X!h6+f.trCrC]\.-35%F$`hEpr)\.'F6G2C7,n0Y;];D%V"".gR,RoqZ>.V* %,0*h.S'$!@FWBfYKCKP/(7(FH7[pt!+ec)78QrlOHe9oRI3@sF/m<+b/n\XB"s1cH8Sb9Q:uRDD4,%`9NfjGmb(AgP_Og47HbQ\A %\MC2\'mYc\63a)fApAgQBc*^^o8d%p58Ji1XbYg2-^90A=B-tWZrEuR"85KgW5Q);n0&ZT>>p%VR%P6CN&ijig\/6m>W0>_nG"p1_)OZrB.1pk^WORTuKe: %YngneB4Jo)F^%MV7.ssODSQl`+LjG?t30-rc>Gf5N5cj1XL1GT'oF2>KUm3[&^+gBCTQ-T8;*iN[,.a,H_4^p&p[K;&[Zm5=NXd"RY,oPX %:YOrR]Q(s3<.^IFp?4TX;M'*]&(X?pjQuN`KDUEB>frgrm>iBnL+hL!&a)X+YM5M[0p^brQB,0J:X&?(pl=b*@AKeP#h&<=Lo`R9; %MeG/]plRlt%NV]<%2'[t"&<3m$f*M`m/X1t.ptiY*U#'m/0W;dN92hF0-S'ML%GlB3.8#G[%G6@fiOBIdd'UF@?hF\icR]ZBLfD- %59H"JLL+O/;QDDKS9>ebRIeQVG][OjfG[VU?GBRnP %gV%Ur:ESFB/pKF'RIio!>S+3#[q(?)gsHZ62_8oZeJ3^9>*7a+'G\*_Ch@1#bf2E/RSHJ3pT,-&n(/NhZqHm1!q".IWleeDW6nJN %"p]W3gtOfBZ7?XH3O/K)Ara].rNfJrYAhNL'`maMdlE;T3f'26J9,/=dPj;nY^L+7I4IB\(8nEtY6WI56Q5i",)%DBYfT2` %^%%)J]g`RP+@\>%Y11]$+`S8Sgqlg)/AGlY`m#Zl6NP"J";G`m&:daGX:qGDMq>%]D;S'6:C]NZi/+]BgjEp%1'QH8AM48A:2hiO6I74VQ09X'Rmd(k&?d/2kM]E4gDTAO1Y<1m"guJ^82JBt<#8Z`]jj8=&+X,:VOjK;5QL;jo]H2"E0U,5(nXB$dY`qeK@kXnh4NSmr?7cN\nj'Hl %R".f!X^'!M4:DTG_'HX#!@@4@Sq%5h_=^]Zdgntuc=ilT2]o0YHrOAVdEuB$,pD\PE#L(]o[uRN-h2mFADC@8@ET#1MguQ'ZZ,%S %q[:;pbmMO`(!n$g\Wj,PEH3A#@H,&>d(Xf*c^_\Mg]'VdjN;cM)$$uS(NP:K276?WNSX]W(;M1^"c&R %JdUBIWqCiET=gI$KY`_s*+j$k$.J\1_FPg*8gR2XE@2p'G!MfQ?5jOZD?ZY[\V*K#C>MGTQJA\("'1)*IL\='&DQ6[:M@7L6j's; %%1\mtjIC&:57lRY+7?EZ.E$EZ$>qg^!B`lH6&;-o@XdF0hYn4GY&MSrKqem*>q(*u&/5:>4^B5]CMuC?X>JlJ4=;L;n#soj5._.hEnAAt %2ODVA^%#t6`XgB%eoX?b8prp-c*h-q8iDo.30imfpfbB$:f-YW3=3nR>T/B7hlq[BouT[*)k.ShHnO0`d31KfTsDHc`rOP"joj@Y %;6u^+S/MR`$X:]^"Y=:UKD'ZLd]sK=b*BOU&X(bXT31"Ti0Zn=[lNkd)[Q`faCWEf(n4+9oP%O@.D4"U`]2T[c(]5cN/k3_!XA%J %i!HnM;J>\eah#f18o0U3PKJL5dc6\='P:"!1h`X[?>JefF=[:k=$#`c\QjJ)X$mol70@C^RrM:k]bB0/gS/.?HW_k445:$Um3(kA %SP#,%2L9?$bMd>d%\`fu"pWeRe:-'b'sscU\/?(tL@&PnUb^U%6<-NZ>f/jlGkpuE#[;pqW%?Ls;R8;(2qr^B]Kgm&?]+;c3grJM %M;RV3krt8i-mQNgYlO:>(ra(r^9onRXT\.>(r`ui.md*q.m[e-na[\dOHK<0ZuP,1`f6UD+DBB5UfRs4E;HH,L&"h:ENkCh<2P_9 %lF\o^;OJF,]bd`n!fZ,:!q15/jY'qhLSqDo7bql"Fb=:'+JMCn^.N'IXSBpM_$W;"D4dXY2LX:]M),mdVFElAa_"D$Oqn^&Y9#3W %J/%YoL_Zlba)i2a)?n]W9UAW@a07MJF;]5,PA$&cJFIFS7M_f,^tY-nhlJBU/.rTQ5(?OGkJOGRrZ\6IR"]J2(Qm9mc`Shu?=i*3 %D8GkLcBTMs;mW\YMn`7p'KRs7$H1)+!_4]OZM9oSKa6d`71pemNElIE!d8/F(FtCEUejLXb'*nIlp;:=H9H5fH%1(jXt7"d=\osG %+H;D^j"?S2m`[u9=3pgiQ,RA!AXk!7q&n_?!n#1#=n"Da>dV(@.mXMB'TKsd5OpO01cKMujDZoP\M6&W[fZ(cOXbF-7j6=(^#TV[#J,.C:ds*N6c7WLZ?QsS(+dld9/iqgV%t?19$eLnWGR`$AY**&;hCFH?`)ha7OpXB*Es_ %/&HC?+\LO_nlXc$//B/C(iRM-#\B0W?k^H`c![XY6K)fs3I:Y^9>EFO7rZcuf$=\p!4PG\_e@DOXH/dPeE5O,k&OU[gHlNOhD`)H %"Y$S@6dUj++HOV)p^Z3HfN^Aik.3PYjE^E)Y$m/'6<(Kb%jG\.h/&GDVX/)1q"B-;,ik!clp>.4b4(sco;'WRZX'^Q&lKXHLX=X% %+q:P66/fs8n"D1&1^E?@Jn@e#S+Wk?MUbsHQ=Wi6>+CK_Z[.:Cl[9L#C6W![HZHV6(DYFJTRL:tt/Nrf1r;gHm;H[UXtfLZd`ll[]10U^lWI`TFYLF(g7PUg]+Y#MsKDFsUd %^9ClU[Wqg`=dZuVcHVZ.C%"Ur;lG:JDFG;9NF],](u]IT)oF8\3t)Tj)61>B<&1J.l3^cq-FY[FgH=tAGi8N?2lO+I.%LS00P\i_n60K3g_4>3,YW:4cWZk*EnPBE %$RWFNR(Zr,OV&nP3@q$T-!ie92QO3*1RmtoMrkdW1cZgcQFKgYe7^JX[u9+cEcHA[Rn8Gq@ha_u@8Ps#h6.k//obg<\;Fo\Js)M8DUF< %lJ[7i2>MI#Cc,0XHF.3Xn/Mii/VFqe)';LdI`k^6=8+k>IuM3Q`E0!S&F4amLh#l._*e0?>O6?lRG,"[#$7IFXL47n?_.8Kg+iUI':0a#kYq[V$B1S6>X/(VFQ&,07HZ-\^-"fg*@J %C+l[2$]L@Pp9s/X?l>7Hi5_.?Lr>Dp4pCAsm9f(QD!fq.B\1PVbjOFY.>%2>[#nn!K=,4k2$u72O%\/VR?\S50/GGkKh;QLDFG_& %iU0/K,[:)f]^f-(;b6ZQV$-N:TDf6cm"RLMF5?"N5eb@pm&&NI2[op%X,2d3YmNneA!GRTVGQTHoEC`?FIVWoO?N9ukichb7Cg\l %KSf:%:A2V?6Mh3Nc6T+^W;)_i/iM5t0p^1H&ZY!<,0Xgt/e@W(22tU[(,Dn!RW%q+gcV?N0Z9h_N<1J.XKZE.l&:uO>`?:67]UD@ %YimUY#j(0j.AoeL6b';LZ!mo#a9^HpmtFW02uT+0SWOADrD[FJ+P5u+VgY(F'Y#n)RS0@@b$riB@YSYVaH^Y4pp-F4G%IrOb2Or' %m)j!M5$$=I#tAD.WBmW,iW]O0F`Z['Y.Ac*KhI<5G4Ec@/QIRqnJK@T*dE;X>.>B,Ob-s!ZZ&t$(@!6Rn%B-r\#G:S?kjLl&M:f7 %>"h=@;4-'V](uRo$SEpFX5SMfKGnA@\K,S-bM/Z_//U!XS*7\+3k1hRPr6hG'7ABOQ'E.'IWd3qMJV$KA0]m[D)-fTU]M#Yg^%NC %&MCSF64b=r>?WH?U>ELFC^1b':s^0B;%C',_V)?>MfBhniT^en;%D0X01NGV/LiD;<>GrKB>Y[T(YdMeAm&Gfn%^a1HN$5jCMe=t %;2j0lrNs5A=M&bPIO2VsJmrDm]hD80m)f\TV7%;=(3#jHpeL\\OLcjOQdh08QPVP=e,m\l\>[l8+B>i%9R1&f6Z&//MYE%!b,]ZY %KSX5)=8(Ik:k[^S1J;0MrlZ)N?c!'sQf1KPH!4OiKu>e\C>CFa;)[b,<`iuFNdXJ-l7kTug_o&sqJ7fYkdi*)R5&!6n_*6JH'H3` %(eQk\hEW-ID8At;YDYUA'EkD+Dhr. %g0kKS07EZ3'Z6^AXS/3?KIq21`>t*F/dcFP'$MKU3@U;W2sgTNPRhMfRKPk@rLtpeiFXVqneJ"@283oeK=](Y/2+iaTrs%&V7Ee"T]iI6-gnW?5PAh(1YA/4:N.cPF6DHYDZ._2lhXR %1!h"Y2dJF'o7p[l8YlF7h6@%/`C,Ek7pBV:X#_J4n?g6P,Qai`>j8[<.n25Y,F;#EZr^3]PZqJ\faUEj_'L?&ootq2N@2S#+dfQKGAmZt[8tSL!d= %-BtR[IM>NjQkk#jZQuEeSeW7YKDd2dFK_TAhlYCJ>q[`G#T38A'$Is6.'o\D_cDo`iI&RC^mMMG2L)WLgh0aURHorN1r;LgQO-LU %1h;s\(q0F%-2K8NT\?q"_aY/S%mB[o<,6?1@A=(P'%>jR]Mm:bX"eG_TRhYl+JJ:>DCD9#)c`2/.qG"S(cHa7I$dk9'b"ZV<2f": %!Q3KihmR.q=*E:d!Q3LMfnM*i!mW;U:m+AJ&e#T_(_5,+T/9rk]s&7K>^*r'N>_nkfNQ@".)H,krfCnR'?/Oj-t\ULIWuC9$K%hS %S"lp)YU23)!Fqj9@Ni&./@Va(29*[9oK0>o-a!S>L5=[oDI_0fru6ifkq]F3eDUo*.c=RCi]b;mIR2%4G'!0)h'A4\EY71-SL=g$ %MFkW_]uV&h)!/4)r'?X+T9(oNl0rjYk3:B"OK&@A[>:koUBe8e*^&S12>i7Ipjr"G)a,&),,'9Y[*aN\7LqrkNt?hP.d)H&#ohtlf&pd07m9.lGB1]RN]@##7>pR+N&g"AN?+m\h$R,O.HT!DJlr4Z>OoeB.-K+H*)T%.U %P3t#KAfse"MP&HKINh:EZ;3g=h?/G!mgAL>$^BLbf:It"gFc*X]=KTVE4T4<47JHNn3mEYFB[b=3Nd%je@(-1gEZ2>h9'G4n8q,[ %$Jp`%\uc#dmTDrJD9jblbq.esLE_BeH@Q8eE70O.S\GO:QW$#\pXO[p9E%`_SWd]3`_))k] %-hUkj-Pq>871lLs[*`-%_EGu#m""6(@pT=nA-[i+6EJ:?-U$+MVM?:@Su^Z)^noMac$'9kC@/10Jn!(r6WoG(b44.!,d.cf4U4@D %:WYedff,'O/&\r_`jD\K^=TjD?5OFm'#)g,A-;PW"$GX?_$mWLV$2ppG%(-b\(DW1$_B1Vi(AbrE>g0cn\@PcY^>CGou8j(F4i*" %qM43e$+i.1S_j-G-lF%r?'`$P&d]H^'6\;a=`8\S'M'qfBAQ:M%hj,)gq)?e&3%*6DU@OgCXs/BDqpf<3:AMTAR7NG&TNWlgUNiZ %2=&k1!d:1r`:JbAGm",$Xfa%K@=k6'(tB:sEIAcMa<=S>(fG;Y;MMJ0>oe]W0hX*,`d>gMH4fDO>rVC!D`+O6:V@$hl]B %:a8fp3HHJ,X64;:W,6TCSaYo78(kJjGPDqD6B+Kl/"L7Ws,,+CjdO7`ZkrXQ=]kNCk: %..R]Z'acjjEXE+93Rs+o2H0):Tk)(uNAWM?>PRFOuK''VET? %`F9aha*iCp.MdriK3#!S9]PfUGN%Kbm=<@VRsGfXJ.]`>MR]cO)^oM3DPe?-gsrNoN/g4r&aTDh%>"7!/0S/D7<#*G's!0k+M2%9 %(:Sf=_J$F=]h5Sh=Cp:T&3QLY)SB!4M\N('\rdn>;bp*#'1GGG=X-ClEBnX,isou-J>T]0HSc2VofPSH&?4U,FWZhPY"B,Rf=Uf4,15ROVlESMYB8.]]J]Uhfu(fLO>_/ctR]Uhft %2o7Y9a$cV,RAq4rC-M\7VmLJCiK.uk4skN+O5;ip@GsrJ`E9boo-p([m.LTh%:<]Ng!`M2BKOnKJBV*r"/H_S.O=)uVeNeuCY6mp %cnJtiPIHHGp7mjI"p2b4'b;LI13a.R]s^DiAE/k4`$]U5689pG$BIT78RBZtW&?hb]D1I(\H(OHm_($]HEUhOW#u7L15?&-V1nk4 %S%E01R.(EF(0:8)ICb$eM50MVJO&`>[_/3!H7,eVXf3\La'10+estoo*,_hBM(]"">cEfV^mCXO=aVYbQ)2"?-XLSCi_n>VZE6f1 %Oc*Vbq8>?51C^&Du;+6o/HdP/6q=;d=N(TmZ!]iAE(;8K/+U*$YOa74J:GuO'CIg9LU(@Ni15En`ZN#4I82cMbsDl %P4SD0U\1+;!T("E.U5!qXJ'hN8:fiq^a"8YH7*rHCa%i2d2e0WF"FO3"5\lPEil7Hk,Tq1bup.2+2KM>%4ulhn3Om9F7j=g-pBC4 %V@E)N-`#krN#&[3RL@gZPK9XT\4f+*Le>6GGY=@Fk1HbcN*$)k8V.YJ3:'#/h*`'m3XPUW3L^b&]<$MoXIF0+LR2SBCBqDuD%j,3 %FBpA'Rh]mjNRVGlMnPq'CVk&u)>LP6>:HHFG2Hl`/F:NrMTUNKAR\q*+j192N>?\K@+%beVOM`g)PYUbX6<>P?53o<,N&c%?Oh]]/(^d43rVt.U>WNpCo]:PUJfj*)BVb1]j"E0M$g`Ul0ATKVS>CVl^ %20Zfeb/<(,[ZVj;U$=J %556nl?34$SbH@eJ2c<][D4\X6,8%XrNmXSQQ5!^[Cl8XI,BY&H3HgJ6*Hs3@W1`!]L4,'oZ-!mm`NZ;F^g;tG-es2S@pIF%1QP2A %s/nd5BNI"rg2W5o<-IHMn8(3O1Hb\=TOo)YNFEe4[;LraZ?Z5Ip4K9R/DeQZ7%.,ens%gPjTd`hAKb),U#G0udHeWO![XEk^^WgZ %Mkn'ioB[ro_6VdtQl6/$ac*YYN-)5(K\e]N9_#tg<)b9-c'"52sJO-#=[/*bTk\"DH@TXXXlZs %bU8[02.g8u()q:,:5o<6Ke5(g>KOsZ=g\&-*5mE;8<&38)T*Pup>poU3mc^thU8:*++C,N:\#ObkU.^a5-F7Q8UT]s2jZ.9I/47Q %/1*EjN)qR]TCJ=EBZEomfKroj'8L?/mUKZA_SJZ)3m'>f8<^Jk*H.5_MTra%R,+"cMM8T(^5Wb/ls1GtCSlLk-=f)lc>ggp=o;P@ %9iRL88*%j5V;$<,c,bn$P3MNqNSO#`Z!H4XNuhhpcoS&.ZiYKK>*0MR]0SucmWJH.:3;i4\WdS'(nkg_=WiGI0-mQ\1Qn,kASpPcOK^pU3#j^[Pr(jDJ\Zd946"Q!ReC()hn?_9HGAHNpe?7s-$g=]c*! %(\S'B72t#i(.j`pbIgp4T;.,9=CH,eDmI4(X%2neY&p%4Q:D=P)i?@/e6=>X'AdqqF/.."k(^1UcD,1t&iXJ3j&c=Zb]L3G+"J=K %$dHQZNDsu(_VqrK/>0<$M+E$kXWF_tMn`CtHtCm9.uV/E=eO4=<9N&>/H06m0n\5f.uV0`%95A(51+-e*;`-%+;I?7<:r+pJi;r] %-EOOA(HIoXpCe:Q3)"We6%M8]g;XtZWlW0mTLQoGX_6%OpG"ds[H,V-M4K:.UiPX50t^$$!`(3j8>Ar6_H-JW>0R&?p>rR,F'8Bc %)^RSB\Y\s!20en6&L4d1%3!>BS4gYC;Wc_.Y@:QKgT<$<%q,_Wi/TF>8C8<[F,-6UMT,3)5&1M3b@RfS`)d1\LO8E@f[7CfeSRK3 %U[(%g0f`@Z#uelt>W5@h&^(/kp!DD-/OQ;/FeLosR)tVn.V*[N#hECJQ3e(H2bLA06nkEM&Dcl\K/jna(+3<2=j9E^iMMUK/i9lA_hBTPM %(u%N(Ck1sK!BF(>:IRd%!JNgTNLN!M5'e@NfX?=p#K(hh"Z&4j6c"0+)iRBDW8r(m5SN[\ZFt)j2P6\`hNbL %,SqKgAQ2o-%1#iZVsteAeY-EgiFWMbpo=82$J7ZC&(TfM$1+[BR"ggcgJV)m(l^iH*iC%L]F=qn#rY\ %>WLoGnJ?+aH$PdEWVEQmk,2X>h?utkIP^M*6W+H;3kI@JGkb#V>QD*lis$d"D6=gi>W8%ijpIpR'W?TGn-#lXs+,r6]8T@qe$qW^ %E#J><]s)!JJTEhr-peB24]UIQJ,%qb#tqqG.9?XRWa)eUNIBt5@@P9*;#j``N?)XJ$nr^hBEV!nN4ap/O!Ul@b_`s %p>BnZ*#.ds&15!_7G8NTK-CD-,5;q^D/n9QqM6f+g>Z`7r#<#6*:D@:V]]5D-HciJNrkU`=k$kQj,T8\?+UE<%c]Cs_3!Wq0V70r %2"jiPq`0WFq't;?"dpi6E<`:/[_`_'KrLUm-b0%?KnQ$18b:E*^W`ZDLHZ93/X[A+rtt1<=YVL3fR"f*;,Hdhiit6,2-6M'*rT?k %C/BK!c"'@RH*>ObX?Zq#l\?0ZFED]+^fQ6aW3Z,!]67IsD-LF`"1&7r3CU*Pg_AoXcJ/-TD;pa:!bl`P:ls*,+$KDpRY&oF;GjcA %hl\N=?!6NM.Kh(q-/D'(J9Y,F+eIpE\j0b@f5=Ht[f,R/_Ci_2SB&]]H5qZLg.d3^-MD9Cg?iY,Jm%/'#h?kgSgSnUMatA_\CQ=cI9o;!CYR0Q,XOkpOQs*M=CKN,(sFOO&^mf2-,H?_E\pseNtqB4_P3HP*_@'=`077^ %'an=>l6PFP>urf3k(-m'#N809tq/%]V@8JeiA-mqcMW\V%1\FaPOHn$(p0cKq;LYcJ#faD@o!,Dq:=u.@Ch%&X&&"S6=;(=K %A`&J@$B6!93BGNY=g48r:q"@FYL[3=k2h9r$Z(e2clEPVKU8u%mV!3h2f'r3nd'$S$/77o9kP5j?4FASRPS(u?jfbhm>Am:Rp9_b %;6X90J;55?Q1uJi6Q3*]3rrQ4;g@tmL$(k,#kEG*o"YKLQIL,XnC&FG_AeuHEPV]>`!T&*&GCZISZ%Cscim!(D:q&@>NLG96$f[M %&_HPF$g!&VYl_3M>eKgNfa]VmfLmu^coTsZSWoUsI$qo7#\TEmYg#JPP_07A3AoTY81tU9NUs(MWG-<2jb1mQ\QotFCe!ZN8%CDh %;*nWj">rsY4e$*p&nQ!#Dnk2.3.Y0`c5H.D`TN/nQ&'K$5QRkZLZ5rN+$YTMg! %(RrD>%H7gl`AR>&VC<3]-*mp+1kft[g$*peAC%\$hXC6.7--`H]3k+N"h.c?r'bM%JVZQc;<5kk&qYf1*j.5%du!K*0<@`Y_-WK\ %eM#r,@$/f2qT4\^lK^/.C@6*W:4Ks=@4GYMf#MrmA-!4Rd=CbYoiX:ElKJ$S,gJAWTXSG]-Z&)qbceTnJbS:cAeBJ>WEX4@s)$!PJ6peQdm\@?L`&IK#Ug1UoH\V,a/8J755&R%Vrj"=GS7<-JltD9eP@OPDRfPKf:[4k %.QenT^a%6OorZo87L7K[@k)'[Yuu"Vo:\0S&m%,0'^3 %D\YY1I<\rNV=l_SZhuecei7X%_'g+hS8) %s+Y^!fcgkgbkfj1;sdcXN/'s##o.PU$$1a-;r[cK5]L5DjDZoP+/8!4DV$Y?+'O_^@]c0BiAOY0GG5[?P)cPoa-i\b.fiS,7UIYR %Mah*6$qDSnHp>>>2W#.nJl*qY^/7YjrcG5IdKN*gn7"2A,a2IU5NA(e7d"#=&50"%\i?2&=j7ieC]85o)M<48Yq6\Ran(t-HG&dNbIi@VCqr`@/1g7L04ej0-tRBVMNHb54H5Upd48>/lS:,$38@2^HL#hTNGAshN`nNo %,DF.4)BJ5,%0T$'^W0X7S=9lulNEiVTiZhS%7!SmK<(aCthb %-ZZ$GMD#/dK=>C">qpJ!%QD#eMKS[gf$.s7CVAFnQ$obcdGs'r8jf\uY#a1JbQA5lqK:=_W<7i4l+\8Gg;EGqp+iE0p[XNiJ8$1mci-Bce5R*--D<=3?]tnR5YVj@YG7$0>9Uc4p3e(9[ %ACqjVRl!GA+85K<5"%*r8U=^YYW')$[_Y[[[r<$%AJGNcb-ej/3RZdBB"PnHKrh]i+eu(#iK?e6UW\f"Sc+nuNL(mS#.MDZY.kse %H@m/O%-3Gp,=2aJj)n[IpVSKF%YKM8*GksI9,%e_6l0nJaC'cQ/\N=."i&`34m(uZ?p9W<";-:7Hc@JL.Tr"mX#]Sb%$Va\ra69@ %,kGMRF*?`60%QmjM"Cjt056o&8N?=Eik9I&o7HW$'Y(3u>+W$Dnc%CEPrg]W,-rio/CSoOm@k-oDgenR,G?J<"K6ZBV'?D]QfOon %1(/ft)I]+'DOcY>/bV*gNLT2C_S'',XMs"R!h@&aNl@Rp.LRCq$H&4YGf%Y.fUM*<1+r:%m>rmd%Q`C7(OKo,RHDY&a@?bi^8;H! %V35.iM#SFk@b1:nXV`Ig[4bQWC,/Pt26?4tJtuChdVJ-EKmAor0?.g8/;tC1`H=l'4sK&,u8--=2TAF)o[r/\H'V* %d6:Rm[T]":CLj<]hE!dgCL]n;(43s5#a^dBi*Ja-gHVIWD9nBR2bTTne;e[^.73^WYQV3o9JLcqW7DM39Q=M[iQ[P2\,\=,UEGj!bDO]-tA\jW]=6s)HVf_d<(Pui>GUIpY#NIf"Ae]$F6OL1HdLgZ,KOXq:8W/F&*[i08:S*!E`]FR %M^Ed/'8=grlH'2nWDLgf"Us6p(DLCn:O*JmV9>pGj$%_Fiac*VYs@%r0FHT0Y\(38M8QmHOl1(GRMplC9A8Y^WIXXEA@:KRTC3%G %"\cn7cJt!)`tsK;K-.$2VR1spE-7V/'pI>:>'Sb>B!K]2+G45k#r6!)'7DUT:c7:W/Xn#m<%hs2Zj;nkf7P/"^>hG;/iS]B7c@`L %6:$UjK<(1b<,H>>dBXI$MGj=@i;?@-X9V:I'QZ['E9kpn+I="I3cAaIOM`cQo;3W,VSpU[*9DF+(9J_o1"hH,%3!>B'L$PdPCp): %C?t#f'-JmW98\KJRn`)!jg$d:D+W+R$D]9FI(SUETXnA_QhVA]-*?XPXqe;q:mRV[Vr]d%;ba@p4k;faO2+A^DfT2O'G+=s<+/<),h?uue %H8CgG9?#56=i>T8PLHGW_L/GhB,29H-%/),cANGrHhOo#Z\-="U61OX.N+$XG%JL-s/#7A?1QH,GY;,tMC74\/]k'()jL^8#mldHo-UKG''g0*=q6sinHrb2;klTh(09(pYIZitY\E!7YUm"m %;kp!flZE37TA['+O2),%)`7=t9L.oPn)\$@-)@F[i0q(Ns8dh8cL&"hZlgeklbO^RP(?oLbo:grP %=hgNPqSPBgF%)K`QOQ=jS#)Mr9Cn:k?/7F*b2TU+(1300ePJ\l?9]^Sn\) %60sKas*OH2+:s`ulHK05^A.Vm-'?PdTTp<0"[%]Sb@7Z011W]Z6]sopB2K?Z`Ej#H=)+[N'AC_VctGoCI7F4GcUb&7>f'WaEa3L9pi.02 %l&pMqRsgn@Z[Glcc['(alT:f<&!A*Vfuc#e85+'bB_KYP=>RV`)n4!+9"sHDQ7P&b4DB^*'K5gGBJqcN %6Th7?[*X;'TN,^0/_&KKb>qgq]I8#Zf.-=s/W(;McXM`8Reg1GYhKr9@ZF7OXFO6n1jKd\!tX=NVW(a`GFe[;>\>pa %'mnQc5B<=N,E%$_=d06(':NS)$oS\C"2.JW>eNmFoEu-%aMK4.#_Zlg8XCl5j;F`t=[+r!cHp:qEu+[l+H'2.\i-+aeAH&b)L`[f %@UpoP.FHi*#m_qS&i>e]/*MC'L.M>;/j[+=pM!nT6gJ=^6(=!*WZ@N5E\%FMi@-eI6;Q(j]S-gCmGofd_(e?+2VA%%b^XKj/:?[C %pQFaU#Zg^]M]f)6oSI'ZFjF4g/S?eAU>:pTJL*;s%5k_G'LL?DZ5sdd4ZIA`L/L(Ca2^qo.).6qj[^D/;$fc*ApS.XF'!e&7A4e[ %2?lb.U=O`^Cg`@sW]SG%b+\QnThUCQO;!@\0%g;L.&VI%EK9V'e^!:9W4hMuXff!p5?r&h;)3+LBn-6aqDn[Fop56OpQ;<*/5;EOS7S3NQTHtr4mW-HB0?tr9Am?G1T;LpiQ0Ag@-i6klf0^+.Gfn*"+4E74AB(W %6Vef7/3.lBpH@jBZ=c=2cA+D.euRg$M6?S$BTgb026G!2"li"6dtZ7=j#WV_!f-@H4S%nCLgjh)ag[U %[d%iHmm:M$HB16;d)N<85i<>EERZZaR\*V?g.h8:iYJq-_/37"%*nS!8ai)1`&5S43.f\]6$W=,-Rc.WikR2$:\e8o"M1e_!a^t8 %p#'2W#C1V+9abu>_Jp:7>fM\$JZ^m)NX(($G]7^0ja*P!gs]2BAF."Zrn'k\eF06]N&XC["QW\TaS>N'XLF8IP@[37Vt]\3_'("=)t`/g[0@=X2IkDaqsChkT,Z'6]L]0,d^dsPGPI%Cu;SuO*fH=F#81jdfbHOY2"$lnYK5R-[.0j-T>D'qtA_bi67IW %?k8mbr/#57fY])G6YAl'9H9an.Fi7mUj73R5g*X'>*RP6kb2q"([U*4$J)qn?r)!$`;%H6Sn7(3'ndH%7c2f":YM&&o"EF>E6m)d %ra2iF]>,IO\Zp2-:9^WJ6XiX8gd*?Yh.&[\.5FX=3A8kVa8i\2%\4`L!V&B@iq@seHsiUIBeS+;M3G'E:i^B']c$H"bab@\QKj6& %1tO8d=nIViA$6sO6hOgm3c=K9BaQChu's>HrNQ,FhAYJ3r%?8(BKmSuHgL3n:T&]m[bS*nIjE;*3$hr""<=7s_VZ?(3V#fp;\;AkpM;jSe.)sYB*P`L]`.ND#GU3!h;9B@4T0g:M"t3L;"RELqYk^_\7b]:E)Q:"/iAP'JZO,3+%jSUj@"+p[Nr(OIe!Dn.-MN&+]Z %obm&Rc!ulM1TuA=;)i67SV=)tekY2^#6f3n%G"0$m>"Cc%P@C[\6@!hKbR]Dp4>G#l7B<];/fQ>%/.]D"Udon4>)BqfCB:b`as88 %g'@?F>`rQb[PqV,h!VOoYid'lbMd0LcWb'E#b/ZeG$U95(>;ffD0Knq%`/@fHAhp'(./:l!Z#Itbb`\gZ1I;lBWgnQsX8,SE!@iC2Mk!]X %r3al$S-k@Q=YE-*9]u\@C;\Sg4@Aokfuh$9dU2`A)SL`o2O_E/7&YCb@aH^gF(Cq6aqh;Nq^'qH0?H_(Dt/4b`jn^G8Y&+pGD:8_ %L%ej#hfD@2'MV9]HXgdWVsA"D&bh0,aTZIrCJEe4NnU.:Xa!>G&tQ\,+-((_-]/C:kM*@#bJCBP!mP91Wfb4gi?7Kf7bW^; %/WOB_dUb_1a?5+5`E_LWg"*iO%7LBA4b0o?N)(//fR_p[t-o %Hd9JhB=fbG-7,5uHXu[0a?n6jnu>E\ZXStHrW65qAMHc1CRc'\_J0eX;"<&WE?uQ*jL6._/VQ_.IN,#$)[__OFY5R#_Em4Vc!h6# %-I0cm>!>p(t"9$QO<^q3PO4iH4+>Tr,_EORo4nW8bPRon^/^Bj15X)+'1OH<[ZDK8cVCSU#8[&J,O(!(YD^?eaqonHX:k,R$ %RN>rre4R$'@bF@eIQa`."7CGF@4]$7C#2Qc<(eU$E4)6LJZQYI#=gDVa,&geC>tsQ;4kODKddNVIBfl+Y\IAe>N'te=GN@fGF %U=`L6fbM\6KZ&))'pqKLZRhhJ16B7&J]XZonZ:Ba_:mNE7`^\Dg]YVV'%_2*5]i^'DjWUYN_i7_IXK6ZTk.)6&B%6&paMlC-kPCE %f[^ipspAJ@t])N/@OSnUG %KsO*S;=Luf2E(G;f3-b[m*fd+>TIG\MICTC]MK,Wc91rciiVR_V?j35HbhjXn].0=FpiZhIE`BB8.7@kanK\gf!tg"W\pL9C1ofr %QRH2d@6f=Kk:Fhr(>ETK@n=l\aAQrnmQ$1ijt)f1r%)Wac2/oI:2t1dG#0])LA.3lc@5"DFG^661DZF-14.=+D`N_mX_-VMT8#0n %MK\l#Hd:W33K%aVAk;HnfQ.h:Eu%tp9s&'IT!PYRZ]M+CO7f+[HXpP&ZIi&jDP%\kAF[]TW(j[3p))ThPRH)uqRV$rjZUs0Z\(B' %j?5&;d8X0X>"p&0[$pJ8/%$]AGk(jdSP,@tO!NsTluul:5=tCQ=jW:*6TPd\I2g8&XY/l4hCK_76oJ:uI_W0AQK>`GfiV]l%hb5b %SPX-:9o6iT<\o7aX$57=a@0h33r;^_c>M9MhC#VUj+9Ss8_uuR`P-tuboI5%eXCr%5gq8$!U'0ZZ[_@'.qt**:(.#5KnHV?GT/:C %LY]r(>*-6_Z0[2MOeQ%.,<7@JT+qWggKV=M(BnnlZF+p]!K#Qn-!qn2D7+!9T$2n[VF6[>"](qlL&SC[m:5i*Dl_F$gOdB2/)KEr %R^c9;YLX+Z^,'Df%!^+(qqgQ::iGtEl1]t2jG\_>CjMVfLK %rQhtQprq$@<3Y3\I<)cR2C;c4Xh0e`IjG?3j/$O9jUdK@I-Ci?!PM;>c]E]*\ut_&n%Cfahu5dSM7^NlBMN['ADrOV:u'8_E@1TC %Wh9Ci+;8F\Wben*s'"k$!s^[H`iY5Xj;%aR8sL]Q!mpi[#Oe/TB77$YBRZCC;r"n5ffd`Ue2PTFF`Sfa,hGq#A:2V*T8)h.^a`$lee %.abEo(Ce%t&Oa.A8Q\n/#Q8#rPJUGZ@n>us:b?@M'IHAtF`^:(3*+kF@[&P@QD(f\Y\6\e?PL?1.tuC75A!>qghO=*8dZ4UE@WGX %*0%m5*;.FIPo.b3"M8ohZrtt>G=t#o0SZ+5NC?YH9K5T>oN7EbAd*-N\l[3jjSJ26>h@l;E@!AR\/+&m[.f<@k&h4/ %A!YZKmX'!-f96S2:M7dgNVol?_h1DqD3'l;g+m"gp-#tc\gQ,&P,>mu[lc^Qb362tkUn\69e,,eiog/&OAl"JlH-G;(5ife5%0nj %N0e4%WaL_Vg%XP_e<=Z?U1J>06\0<",D`WZK\H1]dX"rQ>,cJK<+I[=OsJG4#_PKC9A/LEN6;j)0LE.V."Fsrb7eQq*h?b#/c=fsh36#SIT3?5Z\KV;Ej.ATTc4^?`hN7%E*8m&'O;i:/l1/h %,@Sjf=C)"%Gu$5KC`2UiQX0A%b"Yc=nCCAkc#*p6SR.^rh<8[U?FS?rHl5QSo3Hi.]]/"\Il."&AG@PUd[k6=n)c/rQ?m0p$JCH> %qjc)AkEO\Q&A420gA[*\%?-g0Yg3bRSGVMQCib6`jj\$&,Ng2VXb]4B]E*n#.=YROccH(649,=Y2b">>WuNj-*n4p9&=o1sjSfHu %@meb7L6"VXa6sPml>.H]5?FNf!=FXsO5^p1Ee^*Dq4/B%Q&,WL\V9M;J?)[g#'mNK[O=1tc@]?9R*IC73K:>,!-n`$VTQW7__F3k %)RG%qWIM7G#Pn;q3>1=$Q-3b2RkE%?qT[%q>->DbQqfiUd'@S]j:]_(3881tc?%mdKH'=FcHVk&)'$In%cC>Chqup-GYH`L@I_']J)@_B %4C-FmfAmoGigDUs`>n#\WPE%r2m_Pkij=+.'j3HA5';SKIUO3e"n=NhIpX.Ch_ZYG\dIm/5DDDkaqiL!e3Q(M2cNfI=gu0AE9EF6 %*6C>me6,>720.n+=;Qab+a;9=)QpBH3l77Dl1_6TEh(43g+\[(9^?kal4RbLSR:=7MV_5k;,(]5iqQ2;UMgdS+3[Um8J8%:Iht=ULBl7IXOJj'^/2=lQ*O]mNU8T[s`@!G)h`0lmWa` %_"Y`BcK&cE\Xn!a2[*hZ;<(E^rXn59^b>s@!`Vq^$gq%;?J]:5:bae\I %mps0i'CdZbl$[]/IGiE][O:G77d*)@*adSkmd^a6qL0htG4C%\qb%U`qQa1cd<-#do-XX85F2,n.rk3H:7p,QUuW:reUM\^Sm5/r %EJou??S"9oFe185]/QZNWSgDqP=dUAX3m9)<9Qsa9rb+fA4g]&Mj'10?Bchf2g]tR2Q;^hihV`r/jK2)PA2dJRoDCOEDio/Q_.0] %1\jLg;Si.Ba@rV(@XPsUbH@%)pS;"iX'p4B^IN,u\Po->*uFmjaN9Qu0r@WqM3HAY7rtk?'r\_+pi@ %:VhA1S5_;`8[UN+Q!(LdFoAHs;o]DNFea'3ij81[#a`5+g/[Sf(I]`Dj1]8?IUC_&qPE"N-1/R]MP`P+aDgJcWiW^a[o!YC\W()->Ycg7hW9gS7 %XCHWZ4Uu@g^91'#W%7j7Dp4B88p-b8Gb(#ZPKI,OL+N#1IU/TJ?PJKXNM,;-nJbgLC(_6kCUH`fa&d7YSV/7e8ilfM8uLrVGuB's %^7*2.74h(PmoquT,^BpbZWI\e[ROVD;O(OuOG9;uI\23D6Pt4r3u'f3j04*8MqMk32n0%C30%?9Ia'hPPoj#qNZ[j %NE#$5.0i/!K5'"(h&oU\_l5?d\rc4@9:Gk,&5cl,P,=U=91/s#V!.P8gs.j![n_L5qT8SZf;:'qk>&bQ0"R;kY7]dW?mPKcS.DXp %/RQ;cAFNgaZJN\tW189_-f&.IJbYkr_8S:U`Ql;gK"EKBgo2I3p:J:pV`$.9LSsYWiHlI&MRef98cl9f6%QZ.D^=rI`^=%p]n_MP %":lEi6,O]XM!n.%\B(4Q>n/(Q\Z!.C8)IWok*Rbcj!p8BG;3*Rc@J$W'_9;! %2o_?m?_%;elU]nt)^2e>K^\>]\`KqT%>hXg@7jXA_DMk(YEhkWn.PSYT@ps.aL*Zh2dS:Q[/h+.D#iVt;!iOt'K %.m1k9:>;#n5Okg7gGZbe9rTf4UNgpuFK7VB=9-65_q,dA!GV>\(T*J>J2a%=3O=Ml)P>%(`)Rj/*LOst"l2V9RJ&#'th?rA8 %h.H-ua("Z&6THs5bnMggV'SF2S5aQ`6+13ao(*Z*Ln/]$(f,>;&/TAi5r+s@6/*gRjs-G[fH]VL*h'q\Qi&*:7lMG^d$Tt50p4)+^V+*CpVj4=g6sjS:CAlYVW%CXWHp\Z6,fgIdBN7gaR$7#\ %FZ$d2*c:9U!kQ-IT"TkMhNPT@Ptbrda$a"E92M]eY\9?>VdFp]Ik#V-a;7@1Z[@saN/oW4h`iL_h":2GZ69t)7.-h\A3Ymq\F*Xc %hs-[+:`gBa5AO%0fS`ct;FD,=pG%ttD:AooIt.rFb-nkUHXbj8%[h4p1U'c#q7bK_!Yi0%(S?k;jh7AI]H"4uFSEYdI)XpY#dp6R %0H,$_YiJ8BD`:=/*qJ%f-TB#Y1kIrDb4'FVUR=ES"`cn*WL^s1AKJ$Ao,L#5gcM1ece3/TT4"uOggfWD0Kq'MMnZ#LJi<549,'d5 %O85^6c4@rRO81"D3IN,YElmpF2B.T<+)s)dk:o3G'QLl5\9X1/_=hl#G58KM94_(pJDI^I?GYji*h^hSdJPQgg0:jZ2e_/8L+V1` %0_`@G3cbNpmmi/ORc_\6SSU!"?duX;\b(a_o%V+eL0kaKCc%Lr_..lRlgGVuLo\_Sj1"W2M>!L\pe8NHY3,fV_=[s`**'^lZ_tNn %J+KPgHLT.FF3)9e00bq@iq3h5$cf4q+/\?Tnhr"mm(K^+aaa#g;eZ-kQ,!3)F#Do?Zdo1ia6m)SlfmKg+rs!m\rhR@aiubG)IN\Un+[apX%p %[G(e/I)GS]PMsNJ_?]Y6/,[_MN`Y83c^Ls.K/6.3A:o,aPb-RU1A$#jW>ua[.l'btA_`l=2c&=Tgdcr&rKXj)M>Rn*>e!2/&;Fd)NWs %lFJrXcI$p[pD2q*=2LT(RI==3*$78#?iiktgp+0i^'\dp$k&QP\%(R6/WQlDY.24&.p'>9qq)_Ul9jcCL_]gF"(.]*c9`P)pBf:J %;WP^F;C+^GBGSb;N`3 %;"jrSi:Y7BC;naRiRWN@P,=P=,Cf1Y)&< %[1abrZQ=+>?KK1sA4KEaU)m#Sfq+NY559#2_R[E4H;LQ'3Q%mQeEE&%WfS-k6^".WZ2OXNMfnqFGlIfr-F1?--:+pkaCY@o"%#bfWj6Qi&*>i$cLCq19Hh %6'Vno5?ESJZ9.drr(k"!]S47>CF%*6':+%QAX9l;h>&YH%DEZor3-q:%rkDYlOoK4l:[mc8M>Q'\Je[37d'baq0Md";XENcq(SuhY@d4 %iT7PKGrjd+5f_3W?=5)Pk=Zl1f-!RK%&K/G)\g<@7X.r+h)kn>eg_$6ToS"ds7=+-jq.NkU9='g\EZA=p %ahUuj.dVq+^dA(JQg.Y:],o8jD-`9o\U?FG&/#sr1.\nSdHm'jh;u7>n[=D)Di%hK:68>%[r;\^(F>>$'pt].)]1g*pReAY7j>P,o^::)L3kF9lC3j'0A&[VjQ8GR7qOZ:?oCA:S?"7IdI]I]i!U#<#Jqj6!uLof1DgMnS1ZGVK-*&98+[gNHohl0b^l-hK782/&d8Iq %F#ZPX2CpW"r.Jdr`XP*e'b6HM=(+4=IGW,VKjDnos/*O'GI(lK/%82<)!fo$bXIq\YF\NP`U;QmmP4<8#WdT**3-hUnA2bcba(\0 %H$bhM/u_@Lgne=EoCOF8o:V$8jNe"dIodA.oeq<:Qb/%5IsDf)9W[JNX7Kl@e9*$6>b&D7Ze"YcG2?j+o@p=i<0XN2gMUedf8<@j-6"-q6N56lkYj26)Oq9+c-Z=_Sc7=okeE`sNRrLN&"dpm1Qm %9A84o##Vm0E!mp*S/*Wo! %hJB<@%\Fkg'kF6fk=mltnI,dt0MM;"En<\9,$n+^L.SiHBTPU?=Zqbh/?$B^0F(kn$Lh%MaJ]hek.;QI@2K2WOL_Y3L>bZ7X)76W %@2OYXLtsa90049,38lXDFhPHrZ/4T-:BN%rhj?MX!-@urrqnW9Mu7tZ%+j`*%1$bb':.Arp;MA:hB&*2G6[oe"(ZVY#'Z:cj]:!""I-U?bO*f0I %ff-JPr@gS\N*PBRk#q`ES"(Ti1%5@#WbFcA:.YUKJsmBRBTQ2dd5N>N389r3R(Pk,#-tg&QA0nN$fcCH)lGM]D,7XMG0oICT@jY0 %X%OR,;r?I[gjDclEgW$J@D"kpd>7gV`Cb*`ZnFQVG8<:IPPmiM6+m(s1!_D+r"A2Ai^t^9%EWC7EZ%.2WO$jEIDku^YtdD^6;\iR %akssn3KNg\M$-mc$kat98\1;_@Jg8OT2&``'/uM1BU\e48bXDDji_j,d3A&A;F^[)U\1i^Om>a*&2T0-%q@YLH*-Y0kT7K7lYJ8C %9L*Ln7W_N?Yli&o2\9*hA.ZD?)][]VVYPRX0]"IU+N!S5pFmM6DQN(s-\fSt";.7eer/gQ-E"%SbL3]=:76!d\AYNn>ci0uNIm># %'AWreOXbD_3DB7bNqJTcF=/.BTM.MC[3&2qr=YWYJF[5RMR*QK$=fSX`+Ki+B+XJZ-eFih(Qup9k3SX2Y,kKM*qjj8G/PMO_FC`4L*_Hes-&Gi"XL[>dZ/1^CeO1I[FY7tKXEn<8@.kNdZs$QF0_1Tt]1:SMT;\.$;a"\*5# %r%a!:qIVZC+3hsDO:=#P#k4tV3^/t$DnFo.&J/@>N96M@!Wl%?3!cVle-u>`-lVPfMT2oTS+qS(j0$p0<]J/HY.Sh/rEes^Bbu8V %c,1LaNJqFO;$%o_0n\3RGEuAha4p_pKT7Z^LeLiX'0[JtQ=sK15UWt#i@jVeo'B^.X)lYkM5S_>Ue\Z^R_k\%_&H$?1_8l/#Oiok %V0UEEiuOTO]G^"Y1_R!`OJ@,[$W"GLH<[_m.iIis!$tLK2!%UaUd(=W3T5i="S%(=oZ*"!!"MDnL^MP1[i-Yh&,4d[?ofc5US+e51/5U=p:)]j\tT=5h)]>X.>^Nfu+F+rX3_>b,lguM2Ca@*Z9=-d+*hLaNHmfu?H %/i6840scQF_rUtCg=])npIQd/$&068H%#kNSQ=k_oJ":q40?_tYkC#d45`ptop!ee:,`tas5?u.kq@HBSUL^k!!Tf^frI)0#^YG< %hA+>,_2tQ's6n`gHuO?SU%^6D!I7=Bl+N@CU:p2jW#i=7hK(nu$n(Dt%`2h(&!M?RLU!3&_f3jdfM(b94aM3ucYoMIL %/]K8\>T)Et=NZq4c'=,8BUrNsU=`Q!lN9bb6F!_W.mS%mOMq^FNRK/jfkPE+o5W)`"[;og(IJM]O6QMMea<^X85tme,bif+>:M*] %VP"tea:[Bb[&'6MJbNN0T6qK?M3NGrJbs&8%E;=A4DEA=aBM@"TeUdpb3:A&%V(?i;LQPHCfJ-,\p"BfTCO"V$ZA&hb1XTkfP5Ah %TZ+,-3>k1+I(KOtmi23smY_L,hh)1Kq@8%WMIVGI-cdb(8fXVTLJ#-lpVg>Lm:\`RT)g=a,gW4KZgA%daV?dghkqmrq>brt7kEbd %RC[O/*-K#,CLY!0`=E<)@^Ym=Pc6ri:d\?DDINYXgt:#Lk<'Hq@\.s\hX6YJpB&K]G*Jc31M:T:8hI6iK`3WWEY86eU_)V0f$QZV %VCA[<4q1S#l3V3E<,U]4*E.`(J?86dE4!%0hZEC3j,oPjc!a'8;'*QfK1rdEqG2UshG+s%"qeP$0J0'O+JK+KX[sE/VMH:qrRLa3 %!$P+7D^1SLU'?Y,k\)Y!J[fOTrJ*fPf)]XN>(Yec\5Epu;>'NI0JN0oBmR-Fk2cF-SEGd[Pu>td,HR5rCZ"#*B$4u%oAXBhHLXqD&i>fr;@7Z %.u(/g.p@_P?(-$\%0tnd@A2>?k:Dkh!S1c`G[)]["$0mqLMbW:%-!3n[-g*gQ)S,rf!m@K)Af[/BpT8FO*lLgW(?TQ]rsf$1sTZB %E^@"DP1/%2XI,L=mP`o.<#5H/41r)_M_$gSEqDtD-bR.]e4)5,C70DMJl:fa+S=f(&-+9EO't=$fbXutb%6C'4;i(*hdK"5+=ZC3 %poXr*+c+fdO(X[SKN)L&Gs0naL50-]o?sNe'p4u+_C(@QB*tuIErZe'IfgcG^GQ:t6P'2iE315Sd:lDX%n`1da?@k)!\om`r5>%` %:$pc:`X&cj\/,=%o+[^VT&cXodY:`@mIi8[LE^$mHIc!;r6qrlR@gB5$(3L9oCSsJH7[n0N1S_SfO52-Aa"(F5J=[Sj[qbhmeg": %oEuF$T09Y>nFYMt-2R%O/*cd%W_M88AkhJrX:O.l$@t?)4G&5C&0t;$b'e\qnY:g,na$ls_nHX'U)Ud$6uk4Zeq+h8G*.')$>q0( %IJ[Jc>R:Ppn9Xi?OC[UcBeM_fS:'9aonT*'47uj9DHG5X%,ss]Ip_4:S %S3QQ130%DsMnoRSMR%/iB?otVO7:?dm)R:u/SVlH\kfAVCo^d+D;XM!,Td_U"G:/G04ge?Lsa*64H@\ZEqA95IXa$E_N9:)rd:tU %`%,N[`aGKr@?p47 %+J[QIJfsPl&g%7k`@_EmPPEl;_+ZIIc36MTp)$WrlZ#5KSLCeT1]dFf!S@X+_ZulpcI)h/Y'GeuKe"RK9K]]3*4B*KQ %iTYt."]U[h*O9.Z<@.$L!Uo7)8-.mp,SG!OJ/deKCliU/"Pbtg[9g^%&TI>XK&W/%`5^i/obo>pGqr[k`]P)nk(/^Aps56[hH+]r %Z"A4BOgq\iNQg\]XPM2RHBl$=+$hJ_["?t^d(*7[;I.P.%mjfShMs8%WDAd=f01tpOX=k`h&e!/O[:U&LQoe:B>s.WF;"GG^MC@TGS>82\)mjgA=n2Okc+NE_:JP+9HQ$pDdOq_/0`bYqIs&)5n= %@(34511H[1G1IfS %JC(Ylj.'$89:*Pkr[f&/akL%b_\$'C_*qL=MiOPLoaHL!FhdW%)I3l%Mmb-NfV0TI1%F?#)M[W2)SNBuEQ$:!+jLB[^(":'FSiI3 %RNgFZ;9WrRR\FMSL0@IQo"CSu[%tutB<4;+W0_*5?2O7W5N,pQm-+ZTZaIrlWORBGABntqF,&Ph*'6n;Q0tj3(Z4-":E2L6Ra,:u %hJrh1Z][,cd!Z-B=%cqD-,KTlh*jt<]t&Hs3R3[g:iELCD8+S^RB/>KY;YRUbF,Om=0FN;RRFQ0oC1f0+ejnpQ=IZ1Mr@:m;Z"^4 %]t(F');M*AYbp8^^"T![(K7@nT>XM_e=3L?RtH/`Z/0m*/ZRBkqc0]ATutB4H?453'@c:/lcjjU]@#q"'Fd:8F4p'4Mh2%QMV$43 %>qCX*kC[LE42,k,,-[fuh#;&Kh2s(fJ$G['>Wj!J=BWP8=D]\e>M>;[_pAg>HEF,)=0FOF3H=Z`k3CLZ>BSr+HLma-H?45gK$PpF %HgG*k]i<)^E<.P&]p/fuM$o)NFTCg#2bUO4)6)tEf`+rM!6g6q<=grb$,/;.4-u^"YWc3ggI@BER&,252lPL)O_=toF#];9i)QJ0 %VI;X2HeOg4ZRjA@Q7^WjJW9!SRWfcRPck2pg_Io,.Go0/,"q`4>Y'jbR8^D]o2K.R\M!%&X(]X;H`L(M/f7IKT(UPN%RNDSXIn'o %84bK//4446`P"ad4:JN7`mlnLc,3Qs6`Tig7a/b*BCjU(iG9&5/4O<.8M6pj0LC,(Dk^\'\F_GQ)X.+nWs6@6+_jK`N9aeoM4!s. %R.&)jEW7D5V.$46*!4k5#_ND!KcJCq2_u_F,-\3(K[I7:JVj/;e)bBRJYaQf&X\BhE"<3\!]tn@#(_X+lOR`Td5'0I_lJa3,.kY+ %ne>%^,T?W#N?!\PLP_3\B/c62Z[63l!Y]LC=$bSn^f8"@/43hF1<4*-#Y`0Di!a3$![C?KNt#/tqNR]iY4s'04rdRGWm8!p0JD)4 %B$#&'7DW.h$9`guJ/Kfd&$B_7?m9VXpdISYkZK[LW-]7BmcrslF6(Q/j'4KNN>&gmdP2oRPXAj'irQ3pQaFZItVo^TRl)ZF2:+Q#+q;b8Nm2#oAA'ecQ'U[n7*ubpmQ+#aLO]GG<*q&hY*heBl0[kMoG<+E_5Z.r2%^b`4T6XmZXj8dRr:3/Jpo<5Eq+a"f%a!bue7*]#n72>;3X#7VjXn'jPBG %UFgVi"m:dYBM/MEV-Bi-_W`,eU3b0%csP>td/;tm6EA"i@N?QV/<'Pf++l1J>F.BU@&6JTbb_V:-@ZpP"a6'nZN\&;38&?A-%TBq %:.O6#G!"_bJhIH&P,k^nhHUG18f$1]b*ZrNh6Jr*Kn?iNI]5ER[=laR=o(f[:t5?]P!L:7L*G8m,6@[fkPWN5,ZDBt2Ke'Rp!/\= %(,kj2q;nKM;0F@>+];Wg\.5NI9HadVHrNIm/eOc]c;T\PCC9'^]%r[%>hknQ) %1sfBJRG"2,<]AAkX)dJWk/^FAHFT'[;ZshsD&(j64E]t6_:hap-X3lD#%k1mmAB+Lk+O3l$n?!ijV[?MNR6-2R\kJm/)[*J))Mb< %"e6rGT!DhINrCR"f@soG*:&b.(4GYb\WE:HETl"Ai"/CNZtf`hj@,XIBtB65E>"=n-E]+WO-i!^ipFh'k'8/MI;Q^/JL>,VV?Ipi%Y8(IOb'AHp/3p;INY63C^d %E!>&7/Mf(]"BU[,1M:*CXoVeD*7G%oc6_sP(V!B7mE*#ZO8^05CgR"?L;p#=DbT!!Qqpb!BQ53Fgi3,CMBa)DRU5(p+[5fa\`]i^ %#88hrZA,l.BS_"=)T$pZULp:.&nA&p;['0XcdZa2dCEVaf5V&.4<2?TboD!Y[!R7ockZ=CY"sgeNBt`+F<]I1,-Kqns,7Rg,C7mK %>%>nnJ_.\QQJ!+^X:^_'RS7K*JnG=^bHqJ$-!:,A(;qmrgXt";n@5Iej%KAB*MPWs1b_rU[>_61D$/fq^BLiLQ;a"_@`@0>&)Yar %roYC-%;%j<`A`L!?t,8^EKRm$#)\+:k>A75j3LNiA;SUKf-*?Upd-K,2I'DRr9clb+&C+16X9EP?pRB&C$(S@@=):71hHC9C(E*F_G %leN>$gkGR3a)8B&blU2pHf0-s4I2)o[E]77k4k.,K"VMKLur&k[OWOtld(kWl`&+Oi\J/4-``KV"i.X3i%h=I#ULk_;Ce>*cX/IsX0% %cNZB8-,:_(I4OCAc]Jc?WE_(O*F6_HCIii!,rbZ23eEC1*G/Tp>Mkf]])bGf\*UQW[''SQVU_P]UWnpN %B:ZOA`DGkm/o-qpg<[LT8F_/8Dfu[o:bcKJo1b&UcU$43HrEoOjWJAR^*spuLHWm@,uQi1Z+Kh/q-k`d.Hs8QkG8,(T-R)&?9mg7 %j00-'LmS>cg's_kg0KM6_DUea129+EqD'Wie.N)']1QbOIW,>JL5*!'X.H^p9OK?`e0R/8P&SDGbsJLc"o5RB`]@hLaI/KQLBsTJ77pVnfgDqPVut4_5FY %Z)2l*i"Eg.:fphY+$S3S2>BUiUC/n2`Yr4\oea5[*NYRHQ_EhjKguJ9Nr#MoJ,[u2>1ZC5>?:[uh_I]!!Xo%.:1)0.48Kr1Q7+R> %DWajsdX`H,e*tUZI[Y_#_p[UjM2/qd9;07sgY&6B[_iD*Tub-IHI!nT(G7rGWG&3Dd2XYkrN$AdYX.@;ki;724-L_*=oUM9lF`=M %nDJ=!U/R;'L8D1"VA#6&WSqsqa9)Qoo+20PKY#h!i^TQ&.bnMm5FX6pg\i/C"paqcdS'%-_`[,BjG*6E/?+HBD"V^)7CDT %o9Yc7QYCQKeEa\l1.^;iHB/1X`N$]'!AIPt+YZ@0Po0]_ISp:N_"--3^iX^/["*gL&G@8$&UsgcD&39.oH1CMJVj.0*-CR7?ktf2 %C9jT7InRBbR#&M1*C^6a?*B*CTof1DJ%VT59lCSP@eW?>[&UU,MtAeI`a8Nh/c;Fq#HAdXkV2<44\\`#:s\FU:RAr^)mDfm+7a21 %m>oJob0Ak065.V%O@A.[YYG,e5`/A25E(NY5=&nSG)2In6]IAA2O,S2Gola-Vneuh43RX^MPsNBo6)D^c@n!4ee@rrjfXBP#M#t* %n#2e28u>W!Ti^5A@Qf;A'sFg2!X7TjGSV7"-RA7F3%JjMSrh%b+LX+94]0WRcbibQ]@n<>GLTYY=I[TDVJ;]!Cj5:=O,qWJjE]I+ %UMFuPP`t8r*l_@g5WO*2n(V?K"/)/H%un:EJY#/Q*nDcS([,:Q??hpR9)8.e^(VNcF>gn_c>5YY`M*-BaYgFa^H9!t+Cr:lFg\qf %=/BcuhTT+uCg@CW^4U+S;"Hbkn0&sdcqH>eFm1*]0IOT)l_h=9&7)!tQ?S*1XqPj(,2Q>;9%OB[p]hcLG.UL[P;/E?_C$L]Yus,B %0akj-p(fi+<^N6)I):ZNK^Peltnk$9s%Ic1YCt1OMUrN@/;X/RACeZCB8Z8j4q%-Ad&&3a($Jg7B?t7#r5PE0]Ldb"Y8!FtSe]*+*V'9D>UlY:P+R"nrcW@TXU)N6kpZ2GlQ/>TT&22T)i/DukdI*3VX*BRqn95ODdq.5Z6>3TI;[r0foa2;$`'h-tK@E&1@U2&'9I-l!_ %Z8oDNjLfYqd&Um(E]M&.nDGdD.N4VJR,=9B\U8I9D]p6Y:P@-ILJYE4VP-#Zk.7@[)(?Wjq5ln1TGeb"iY/G49HBgs?Dult8^))i %Tig*(foRjIXr%4I]U/AH)2+`E:E1,n'QneT[;]07bUMNbLm+r+.-gRqW3*M0,J$!$Oi3Q?&W/V5&Qp1RWYB=KTS,>&WKiRU<`"se %Y7%&R7p9+_3='C38uQauO-8PX6Bu`5hh)Q=AZb=)fFDr6'pJm&EbkRk-Vu0h_Qg\nk2C73J15bYE9YT@G_J[4X:dLc##tVU-C,Ch %N#Odqr-\#1>Yt_W.-CP?:fu`QXd#U(70FL33*[%@VnI_3(;Bm._(3ZCmiH@\%f9Q(H1g"%p+Cn-@>0=;P5\aRUsfO/mk\E5@$/5> %?9;m^@+g,^cP9;qW>VoWd,*a6dX&\QJLc+)/cq>Z0!pukF44Hh;XA!/2oW;m!)5e0dZbH,k:A09/rEOhLU%cC67EtIamrn'D,S$a %Ta$5Wi\BI5O]I2B/+*P#a?Bt:35l:ejQWmf^i?Zc+1YD[LDFgU[TZBW:sVkS_83NAL4-ut^b?26el`.k(acdj"+!'7TruJcW5m)_ %Da[WeLV;2\D%N^n]O+Gaj5Y[%b6d^II6J/;1fm.p*71]JDEX8/g-D/!EDWjFYfb#&6.jtQ$]!uN-YjkgcPIlN_F30\rr&;:\B%spck3Z[k %$k$.1Ro2UkS([.5CnWqd`$>leA6?<1]f3m&WG$eEmi-@ %c;CrnO;^4qkQ6P/;S7\+PU%PFTX.;]!lHn^JK>B&((\![-ti%"F%Y*E+TR8[H#S%uSG^6Lc"R:YkeOaM;>L_Cpm?Pd`IhlW#LJJ! %[!49An/uCk"HCe"j+[L+l5D_XJe,NNhS&bIpTA6E'RKM.SGp`**W:4X8;t]6fp)*9#mQ@2FkN#>N]BRfb&uC%_[^1tW*J0b9u0iH %5o;F.pZlga5Wf!!?O?+G4frH^'2B8+#4YN[tP:Gp/85T %%267UCKQkqZ!ehA=B.T=_1l*cm*ZW)@TPgafJ#$>FkFciM-D>!'=Wl/'=5X@7(/'a;t9:[O:@DTID^@oX_PP/qFY76fYL.h7eUoe %fF#/h]fYRi_lV6iDQmQiTr/D6@>s]&GcS8Ii50^R1j%DZ,.JjN(fOPbO`sa0#JFr&EF?q$FU0Xs=;4n"Mm?B+$Bi)$**jDlU-&[X %i:Y-7@#rd\;6#J]omXt=#:@KAXg?TEEF!4=cMHJ,p'RY*b.lf:D"q7UMgUt`hCO,:9 %1+u46s4=?N%:80dCO,PtR2b`>e*CTETBRf+$/hs'0R.)NH'sR!R"MWhb?Q#cghFVP06<6VKA;0g*1.]Jjrgbf^^Tj]2Samc@79$[ %Xl[@Z(bf>2XQ@7Y(bk1Q@k@p4a+/^^```jGNWB5`F)*ci3##;cJ4AEW.SgYb405.H %G1Zsb-R/f45RZr\_';:_0[N.u5T03/K4-jVp14[8PmuKq[)qMeC^2#,bHbEg@6;^R`LGhTp[(q"S!!+mp)(6UkSlIefJ%,SA+r]T %X#Q#XL@*ou_KYOH0If-fYBCPPZAaQ^qcY_JEX[LUC>c]b2+X*+*"T3`W_S.og3r$KH[tFmo%Q[=gH[/8QNj1FPdp^$V2D@:4 %q$;RFJ?rAhc.c;.3PN$u8t6#upNO)4]BMXNF;!*l,KOL4Ci&a%I0?hPS=PXg0c]Aef*trMQ:nKN\U1C\ggmf5d8h<8ZBA %5MJk-Z7%c:G1]*E3\SL=,:AO1L4c'JQi)*?dV=C^.#?Fr]N/QgIVJ(2R:Gk)ZS"(7.dsF5N-A4>E;WCO%hr7L@2N\b!eV'lDYjhL %mXaWc;5GrRjslik/c=9%;%s!0!-L_gghS%=a][hGJ0cs!CVsq!]8[gCX@7:O%RT#kUONPdJF@!e4L6$uMj-.i=*![2M[i1.%_fuF %;2YqLn=tA'';n'd/Mca\6&2Zo'eMJ"Hi-(0Zb^0-!VqouZ'Ud)i0^S^gV0%e5doWqT`iH"=50sN.SLK<$PB+'%dT97;(P[\FEaacF_pXf6Kb6\Xoe4h\Z\Nh.T!7B70[s6eDk* %P=4SY9@F8'`E+FgjO)fR3SC:AH4=LT].f9?2FFa=a^N\8pE,A+!KNIO$6m]PFfqSl"VK<;64Z/H%0`N,.JL-dc71sD5;VM5bB*7p %T,)?bXf=VT[C48T:CKhH\C(Rn:CL/BKN66f)W!o$9L-78=U\rD(VJUNT>(`G.&]jFjY>g-2IWKKhr_lj'&B:L0*Zl4J&_78("JSq %^cT:Lc,)-0XYAUb5Q>Nh;dc[NV4U*4^):C4nWX\_Rrq3_QI#G='C?lI1`9hMc'F6PH=og2\J6Zq82X#'R9Gk[j0s,caFLaeQD;Pu %%'q/#qEP$$Y.A1acqTF=dI)q%1]mI@:,@=)?Rp^fSR,uY81)\QR>XY]d^bi9!MnSKh[i:1RSRT%$(@?R!Al&jrQG!2;R9oK`7>um>KRKdfN/i/%SNWo? %`%6KjTIm*R[sN`BW("WU%`1EZ+s,eT_EQHnNp0$:!R">uLfqM87Or6DEo.)?IGd;%%(-4a[s?\Ufkg[s(BAStT7L"Q21@3^I`aU+ %=4'*7EX=42d$!b;Qcpk2e#?W%_%%S]b;:e8n/+Dcb!DBa6 %R[7omk^Co?$QK%R\,os[Ci/g&iW0c/dUMT0L3o80D6>IRsLC;.*A&%s]10]Zq/KBJYg2-<9WWAk0c=9Ss*lLI),nXb8< %XHDs#MYC/aQruoeF[$8@o3:3fZ1>62+61rs.B.nObVg/88\gUD:bA\>kp`V6L8aqY9rKZi,urk4[B$6@gF,Bp\YlUb>H8%*(HYlp %8Q?uIE:l&5.>&TuW&a]2:03EXJiWOtY6bN5o7'(lSS$UMOJ]l#KFA53(Jgq?6D(+:TuEKi,g#[:5'-!*fpWs1KJWBd3'l4WJuOR1qE %;&8PiTgP''UMi=\18@hQk8'7n()jVG3+$hc%st5$[.'tP\s%uV4$G?q63jm00hXhB9=:4SL.h4;!mcB@Tj$D)gKh4hjRiT_f4($-pBe=0SU8n`(sXTVgR:JR=MC$SekD"m5bkhfQDYkJqb/^*aEL^<'MmP'g`e0gp/Fm#j&meLKC_MtN+Z=O-\dWY5,POXQ$t/'p9rf5ql2K- %IZ&t!K=+RLl;XgE10bbe/g(&Xg*f7`VH=kHL0#F:kjju2ej]rMFfVGObBZ`6]haX?[iorMr_h\YpC2s#"LBG5CH,ig6)CH@JlKc2 %Wf@fB)V=1UU#3*V*42[J;]>B"NUI'&![ %\X9JW=b:GHUp^3Mm]JEoaEl2WNM]"P769e?C6?u\o8i^TT(kh<*MZDK%L %<^/`tDa^+=J)@^h;1rh)=J4KLEpT.EC2]7Ya1#jgLC;8T:I_Od<;gp'.YQr88gQUE+.j`&E1<_P[tP%*?G.`-En$L%a15.So4$dZ %hCFbafe!($]_Y2>o*UH"/Q[lX$[h#E`SST8Rh5!ff[oG26[Q;Db1Dh40US`SFj?pNMKV0rI6NbA'o*Of'L_4-=L!lY28@p`ma`jsB`sf8;XlV!'C2kgk5g %E@6cRkqtm)cKH1;m?+aek';]8/]HQ;#hFoFKgC;&`(R`e.1=jOc:?93[M4%VT!/p<]M1qls"3Yd48P;qfnn1j`Pa-5IhUg %89NWA@&F1lFm@<$m^XhmKf]K\Fp]VuhO%W>TH>JQ;bT,Fd#Setoe9QhJh0O`I%Gg9b1q5#/Q4tp%5KkniRQjbB?$bXqH91"]'YZk %[6:*uSW[uGU5i#g-'pWcRg,9"mO`*Ikba#I.&X\")oJ%TMri@M*j46Z]Y1-^2(!DY0;^.=EtIJeDJ0)cOLa>/U,ep:]$)c(pl[l$ %*C@+U*@!OVoq[0MM$Bbc#3RrOrS2pPS?o6R<^JkB[@2!gA?W30MUk%jQjLO:5P.b&!6ra^("EB1!/kPHB/eANM9ke^B\g%5DB`]D %8bqKqCFlbSV?/-J\+,N8Wucie5<[^/OcB**f%%8ZI4ojX%btJg93b?LL+S.6F'l\p9p`@!YC2m&kr)H`oM!J`,-oWZ.Nbc:>CTS %*S+GE9>kZW6Bf(L.X49k:[c>QNRlu"E>uYB%ER:GM;,DB4>QIc?/daI@8PgX9ACl\@iFHGamc[(aQP9"68AL`$'?eC6njgAD9.A4 %*l2jM\qWl^GcB-22u")nM*[;*5MRsi4E`GM,(G89h^/P!`&S=E4pFT;bL&Lc)hTF,7h3C"#"dm: %5]`dFBeEadOJC,naeHLf(,]XN[jnj(V!E@\_?%QE)M@[*MnfS&U`&SMNoud(%$K+A5t+"MKL,HW4nL=<(aLuL>YF.=TN9Q!K='*0 %c9YS"e0*r'i#k]R22GbFC+L`PdF?'o.l]E-+fn[-feTI[\C3Z+mQ,t/eIW%g06lI6qH?t!SSWDeEhJ`S"jOk<52 %/-fUk;hH'@`Ht!Tl-phG?o\LnSJpPp/880go1fa8QboM9WDeEhJ[M2\[)f44NkiLHg]E0uNjG"PBr;.qR"b-tQ9$nE_(>S5Z+OM %q[.KUO6n>_1PJ.p^KlJFcOtJ5X6gfNI+F$>Lm<,m&jC*5+L9S$_6:h3`p+U;TMa3Rf8rRbLm'1;!C,iZ)^1(D)@ALo6k?Io" %HZuW>bWHYmcJT6aLN0C7pgDrBB$2C)]Y3=:JNfOC7WH7Ks8VP:8a*LU %JlVc4[P)6(^Ei%HqM4nnAP.Sbo`hj.Pf'L1Co'pRMW2m69Hf\.d4*qmuDCW9bCLG=U8ldu1aGoGa\"Ik=%P:MaT %83Zm.(K)r!&G:e1j%d5G&C$43>F7i85%NJlF6..M4rWQ("?DqHBq&fe#@WP,\:h<-DSRS.`\VI-;4Y-^1KfR![ue%=aT'Da_77Ei %*3oo0(lV+$/#[a&_-gM7>Cj,c%0ki*g<*j!1PCQZ@CNV[?sH$&Tf6S=_750,EY,YrN([h7+[]]pD'aM-fh#C.#[7_W-+"CoO5/Qe %XZAVbC>)9S$#(DsAY`p+5A^Si7Ai>R9Y9:;B=_b,W91>#?sG^D[?7oGmFQ!,[e_BMqQ-Qrht3U]P>6m'>2M>_bPY$%m4h"W$<0/Me6AfP>N&5$50.fDNY\ %)2q5T`MHQm()`&]qi=lo0J9UHLK,c?N'H#d><+76%ba?UnLak9kj/`NZ8"XL_7/')0J:0L%`0!6E=$Ic?8jbZN(_1?@?88"NX@k+ %%)sU#eODJ2dg"i=!Kd5N6]b*Pbgo+cpr^6jbBEF+^__Itl%LD.ie$#bn.ngV-30C&,.,=6bns\Vr8[Rt/.17n-%@+DoCh8O//9OO %)$11YH]2UYh!#`c83g5BEVM949HUWdspCP3J.`G\&MWWc<2,M %Mfs#YaKf8.+0TUC7QQ%0,m(`9j\iqcrAL*:Eg:Y@!dgh`r$@X0`gHA5Meek%'QD[?2+$aj'4Q\@"b`R9Qe[fGA_0e$)1=(1StF=^ %8%J%j%#9I@lCkj5"[rPB+aa.<]8J)JM#kV`lS&_J^N'%mZQ`<'q"ilobOTu8V;Ycglrtu]8d;rm1`>M>6'9-f/f/!pKC`U8>qW.mEmth6=lJ/F\P;LPN]@l[ %=F\uH7[':g$n2%Um'\=S7-7An)p"WHqD%Z#3AXfrpNh=^(+)U7]E!*\,GRbm^%:FY[)kboU/ZSQ %+cE0?X&/9#j/.'>:h.IGTMa49R5@iiV7J.c7Z\V_>>T])bPVR %b^-`%RecBY"C7XK4$d.OQItA+Vk'J5.LTm9FP7&dVm:iVr4T_am;:fcJikq^AZ\%ClEq;TAL8fRM"KF.lCtR<&iX8IW/JfMr0SWh %6![G*BGCs/$0n7j5c8/6:/Dal`Ledflia_a$$n#j^=sXd8BH[YTIq]%72Nu1"EdREi!F,=:/Dal"l-.%4$d.aK!:;]^>cT2>_l2@ %+Dd/Jg/qp]%(!D?PEkM<4^[K[X;to)I&>Nd&g<+"+SLUF@OJ+t9[I4t:/D`^'`(t"6P2DB+nQR,A1-Tm@j[$/^DO3he7Bs4.Q,\& %aA+NW4ac@WSY.Sk5r=dbfa6q!'*Q"F+Zhtqq"#:PC5YeJIMO/OK"B//=#KHXm0%R"#t"6![Jn!Z"_:b;s\?!tSP-)*6%CjD;F6K$4rNWf^\A6:VYBb&Z=mc%D:Fo&f!3J]Zp)!W.iEng`a0SE\%eY7(0fjbAg&NW4:AeW6 %]][n\O]&4HMa\*h=6G9W+;JEjZVFlE%e"F"fk/J]-2]/Mm0/<*<(;+0rF'@#:-Fr^._0%Lr"sd$etp95n"l" %/)1EZ]DsU>&N,]*bNWK+'$NdKgm`'AMkQJesnN %+'^0;2hfh@3o?e2MK3MLk)qFU'hH.VcA!EJDQ-uj=.rY#=%grJK^[@3G4Ee4jeZ/o[L4i92O&)NfIlg9AB%l$l'Ac[%S#>8hkcV* %il=K=mn,fe_hDWjP,#U1&RD&-1KV!7d6MgP_IBtGbsHc_0rg-_gq=E0&mZ]FBN4qe"fiZ3I6[G/GkE]4t"1)cMMs*VHEa3PYe,YI.A7EflI$nuAf,i;0%$N#_7B %@D1?e.XnYHD")B4MhD10_Cm7\"skOnm7a79;7+;Y:f?*,+D`bO<-$Enene/\Zc+_$)QL4urHcZl,rJmnFJ60YX)g\@^V@Bo40JE: %9RDQ/M/U`W6YAWA/`tt?JjscY"$.d:22M%PQ;Y5H0R:S^Bm:Cd*!b*Of&^k9"+e:t?k,Fs*I%55[]k95qFM$F_XF"<98qc[K:Z=O %Xsg=qN$-VUB?24STmo!I/eiA^YtYm+GZW!J?j-!lYC3j*K7VV;`!^fA.^#>OIh>9WF3pjS-1hU+3/=c^2Z %<4JOH3*RG\L.G4]QFN=1K^ %o;`OjO/G''-ei`EY9@"a(WI'EAs@Eo3K2rW&RdD@Xi>?,Yi)@T&dDbMgUWcU_B<).f3)"cE`&ApfME8k0/]dK'Pho20[l]IC*lfU %U(F[p2RN=dg,WN(U(HLO9fFII'9K1X-OY-d\q94%kF^U/;%"(P@X8nFUfG[#_]5W%W$m>S"X'j^UA\T56*[/Y&:KHWP#MaSMtSlj %$,g>BYB=U=a?2p%5iTOENa:%2K[))nlH!+gD0(oeU,`GNE0H31pL"t"c_B5+M\nJdrJ+qA1Ol^HJCT9\%bCWu21t$qO-9#bDldL8 %?_id;$Tt63I=KgK'5\^A*g%P\boL#WO+KtVOYWZe:7;VngT;H)ddH7/ni&pZ %K2/[Vi[T5pa%tOfE%R@.1`6U`1ZEPB8J2s<^o'?*+C?O@+8FXhCkEUVAU]5W&C'H6ocQRG[iKqpi-/I\8q&;u&sM;%jA!>/7(`7r %Q<_/\1?X:)*bWd/cnOS$b6OObK9m*V,qrP?a+C*_D9TmM-;LFV,F8G*L=J:gRA/k.g-OEtil":L'i!NBjt=`b082VoQQF$;_7iCe %*H5r,euU9)*P:J?=Teh*0++sZ95*_10oG\ONSFuXp`d7%GS:pK>lY=r_=911>c6+M-TN-H\'[P&U+.%dVMu@mI2G8<7TpS9d=QU: %TokWUD7"uESoobCmm^Ir[aDtW62^$3='EIQ7UVPJ%W9Gej;/q"54Y7E'[aNV8&"UZsq)jg=e0dP%$!W.2bTZgLXu3=:=jt %YQ/O^A$,IRcY=e2K!qIWCYKD2S`_qg[S1qFks/J!0>@N9.pZ&TXIS1*85sJs_rK`8I %<^-"re8L1Gbh[i@KN,A[2_+W@hjIS6d!_Yf[3 %)\%W/0%'!&KBgoDIg>9a&5j'l6kQ8ml;mFt[V-15W3;7*BQ9OV)SI$#\VcHP, %4)1\7>0or].ie4"Y+=9L3@30@+oJWHbun$OF](5BH@48?=9lf\'JJ#F6rP+j]DsU.W@5Q7dFX.$[P"FSJ0uh&<$2b>9&sc""F(En %'!I/Y=pZT-^shkoe-1(5)?b:(rK?NP9p\n%fOLD2"aJ\)D8%10gNWPNGPee[g[@T@P.Udunj+!gpFSAl46F0RMWDW/XTFR.6Kd4_j:F;Y9'IM:=-P"d$E6c,&7>Eoq+VBROu+n5k0R=ST$#GJ]#Z%bm4gp?1%bWKSCO71S;3\.O$X(HEa/Y\SRKagYOI>.N#>3F.Rc5.hr5,0_4YU-*4kT6='g\9"o!8[BFF)lIABc=/.mUQM927gEW? %Q>;tPPS3rC_\d:lom'4_?bWFeR8P5[I?Q0.qGg.p$!ieTA9fD?(`,o4$JQBGBgaRn45"e.OC2,L7c^4ud*YZkg.o-,5>Gt_a&@7n %l4/);I&?1ik9.u.jCsTH*MshIG5L,MQbC"U0dgLHK\\HV>h"s`](5JM>9%<=WAI$K\V:(;5RMS2)&F_["F %qtcg$>k+/4IO"F`A+.Y9)TU5XHj.6?!"OZ-,dn"&$Y3$=KH5rP=i4.=7BtYJVcR2840gHk;GGJbohYV!B;uBF@p;Id4jO/T+q^e_ %f[\!Z]Ff$4Z8,FCJ]Qm-Ps/*`l[/s2r\jmEj>`3J^Pj43\LB(8@(^=oL:,OjrS^[P8-.5OCEe@2!-M_W$V/rtk,c:Jbm],QGEJ+L %.-nSBXY$=q[FO8bF`(%q*'Q2E05P,*J?Js1I$gofl4WRCsrGpWF[2:^*XlFT.1^!Z!a?BIKfk*M5F %5af5Il]MXKcl%HC-lE1bl_FO']Imh*"]1-s1n3uZf^KV@fd]R2!L2-WPc\`g4ErIDWU+kNOmp7S(u-aKCt\\@i[@B5_;'K %Kd.psA$3h(;`J5A3;^8nej#@/E1i2QIkL),YA0lBG'@%_4%4BiXcU(WErE`$"n\Dt/a[lLT7XK/X)3eX;dm_E7cSHa%bCku %'dLEf:d^-_=Bc7VMde(?pkN%:_h!1q4YnX,;)H:)iGiM[6*KR-$KL90DuJ_um`F&V1f0 %:Bp".&eBRl3"h&Q@-N]OYSF\k`YrDZEXBN&JG8?#Ca3UY-sY:PkkTjk'+ho=7rO43N.1RX11:E=nJc6Q6OVgka)APCa41ps*IFtB %q8+oF^P'O:!ol5U8#..9>+#En3*,rhOKB9Wjt:sOi]$(8)&0ju(r(VL9L&SJ@/S%"]:]@I"NG@f&i).G-nKh"c<*mC-TZ^_cKYV- %V^8)[Pf+#_q(XclLuJUZZFW=&Bb$"BPf+#/<)u43M&W7hXF2b615Wic`)"MhjL:]a6RrZ.5RkF]Mc;?@bX^"iWL8qbhh^+ghnE04c.N7.1O8Q8=S`j+ %]s_EO]jeO(hI:N+?L_+>C<)WAonnZ6nHr;feZ3=;l,+5ijhqhm$F""TUZrT6UY"AH[s_6Ile[d"jF8QJGg[a.mlF_I\@kLHK-;W3 %]D-Z:mbVbeDW+*:1Y"K2Wu3M`rn<,I6HY\2-e-lk %,Q0@Ri1Y:_8#..9rKPYR;Lo7CB/9u[e"#mC#qYsm%-Tc0=4_=B*].%fY,FoXg74htnq9^E_J:D?XW-*n&X.fY#fm?c@<(9D'$S`S %4OHk4BC,o,-o$gA-^k3BN'3]]NFg*a:NRu6[Wlr27)KD\[M;>E*JDU>;t'>>ZM8"5ogZq:Q;?-?PdP2T(F3f#a]]6.XpNVq*'RD+ %CUKP7EVRi"pr"^:5Ajc0Xks'+C"Ck-GOWMhXC)E^7OY8NlO]#m6>C[]VN-X'B`)DH%Pr@\Z1,9ucO]$Pinq!0 %$&;tDC;9^4,_e`KMCVd,6\#2.%.mJmTbp@_(jbrN52rW"@dH=BI6A9s=NM=E6d*Y]bH %s!W4jZD;TVafLYgUNb.1:!M2lT-SD6pL6_YbT$etB#I1T-7R=_f(L7Ad!&0`Ute.9OHI*qhXKiQYmFYR#(!ea,/[$(E']+ %jV,UcrAPfe*IYsJN]QXAjn(D\O-!f=_CN?J^F3=;$u'82Z^bB@+24fo:c/A65#$FQ&mC8qB3_dohGs:;<54nc\AjT_o#KeA;fDB3 %2RM%AXgb]&7;m^C9U$_TAM)8ZXXqQ@Dg\STBao8.+dT?emTE@o2uta[D/4F)^.2qqIG-qpCe/r:)c< %?(#C(PX44WC66B)_9ZNd'gT3?J^dFB+3+"TpX*=oV7;6]=TYH)"JQ%@=B/6BM;*e6MA %2RV>X]>dJ?0_]!DG4*d@4EumCmG+O`GY/P9j7n-)$5;G+@@f[r:m`(qLosB-T[6p\B2@^UWI2l+n[Cb4WdCXJ?jkK(a[[GT.Nd't %X`FVZ5o8;9'T%PAg:::/e[iZgaq*s5_dnhiepd%4`n=D"o\%_#')e`;l3#np6<^Di7*ti)9uC+KY9f"AH(>Ok'[D*pa$:ki7H*`p %@L*m7hZKW6@$%]+jajNh'o"a0H>c0Si0[DE'"/@ka'-mo6=SN`4Zkuni-XjL_ %Et*c\V-r6si>ri\!OJ;?JK>YF+U[[1YoXbLPXC%,X9V3n\V_lj"/@kaOPgm4 %.]s:CH'l)58N5[;*M(ET%4"Y$97A<,m=EY)0WQouTEdr-^gITrecV[-@#E+pJ[%AmTM0:?kC>Qt"^rGhblP]qh;EjdhYsP,F8rmR %HDSk<0%5`pnsWsa8"3gH51>G+nhRCA,1DIdnq,Ol2UcGNoa"DL`j%cn^r`W,>Z`&-eXC;C2s#Ep5>?@ %Lts]1>5#">BAm3i_WJ$^@&K(3l7q?7f@M&j\mri4Y3H%4->VKbUQ)uN_+Cf[SWdDP3fMHjN'J&n3fG_C]\,!e %L-['$D\dfYQWNh'pp`@NKHI[$GT+_>0i!0cC5;>,HP>hi?RsC\rTnIYO2/MU5AQWueHAdBZbtE>[deu*\2oS>q.*f."rAW(`TUnT %&p.\RkoIeB2sZ$Yc?8Z5+O'Nb)\NQ!&[\-qXs(X:jm@@DJ%%/p*tf"3 %+KH6[X$A!$A@9i=X!;dn[J8'!mKI\"9!56206n/,#hT@WLpH$l]do;dZl!m"XSI.,'u-nL@ONaU>m5[gKX0lMq32W/Y(DlIQa42p %.quQAFjk"D:+_:cH"ZX-pO433Uir);eaW[W'g[foI3aA_.8183*7]h45MikaOXLQ4#-su=-l"^YimgjPu %s0(CcdNUk4m8YYLaO[hdo'6@1I.B.0k8K;maOI%#H`p($qSC=V:YNM7irhR.lZ9RFs!j+]8aAUe)Jp*B>LP4km)Tc&g^%cB:.qn1Ne64HAilk9sl",#Zl-@+g %Ir>%#%[1pOkgH?*XKBb?[hJZZ,NludDpSBhd?QE,[PrA@7ZQX-R9dMVr7r4Ap$R(:+dtp"W2s^7,[%3.47N/N/9nq6V6QOAg1F(_uaO4q^*,Q(okN.'enY[6$kh!aH0ff(_%&1Kae=mNX4@PDpeu[nWjZ&1QbhU9VjTn)A3J6A,ql? %Ce0ZLY"V#)p]jui"%N.V5bHTD/7qF,E't6C+i8s:"%NLo[P7<=RSC4Eb:#7.DIM*\mo"59KlLl$rSYZm\'06c3gFulJK.R\--;s42GojKCrZ,faE88lR*?+?A;(Mi"B#$REb[c@UrpIrbA10A!iVOoW=a5d'LJ %n*Cq)pE@m03R3=B$O"%Ci`ssIek1[#qO6N,F4i]W^@(7D$P?%#Oc3:PbQZ-sT3F^uVPu*-jL;EiHHY(e$0)a1G39ML(n/t-+=#*S %(1UF-5m'Yg$!H721A"M>9?l`->#`lf3u2''!,l8:t"^VFL:.1@SogW6\T@0TG)*G.+-)BAWMjDHL"A<1FoIhOE/,.A?c+pPI1ULApR^H5ceB!rb:8q"1YHrf?EQSltBGo\#M!78ro^/WIpB %T4PBYs8?O.%EE9PhrNF5gVo6CWCFtq\+Ru4&o\O(F5KWFH4.fgH,DnjrV8Y*=D-iUFuX--L\:?Jeo.GE9D1-S;iTjo[,Z`7(3Dt@ %>iXCQiTL/+$VrVq2ek-3FR4u!dOII7bVere28XZuF0;d'cR0No*d1%63]CMGl(+>5 %/1--HV15\Wes8K0qTIbTW@WbE_92(:L7q\u,YS\K+pY@$j"i\tM&`Z>hAAor<[*XW:GjZ/lO^A%'PP^W;bE#(&D-gFaZp!\,H,O0E>Z7OVKbIcf %-B3,WLZU`%EV+o)Mk-;Z3:Qg1ViT=Fp*%]*/V<&ofY4o:CTFNQ5&Y-iJtJA0T5W&mC>9^0eE$"+5`4$CT,.p.GL+*kE2+<=1CI0& %-=2/8[;TRpH7dAV+1(\n-PtTkE1mGG_MXKT38^Td]f[OuLQHlU"it@DMsH2+pm=E20SNQ@=*VpuLW0/96HL;k>:ZV?g:1;Cjc>J= %?=-$m`?;K,3`*\bj`$Ukm6C5Y/i#Tp>0IX&P7es9eAZCH]TDn*b`E*>b_O-W'T%co&g&oB']h%2ac[S]5@lS38USaXbpNR6A>A0p %k\6H\lAIA\L;%0S!1B)H=DSI0=*tG&>d:$hA&lV(2'J@IA^')$KqC(snM,F[$Z5^6Xa_&D/RO\^?b\h#(_L6:A+]ROdIAr9_T5V, %m#t^aAhXrC,!7>=#/!.)/RPm[(g?SY"`lA&;n2Z1_&TPZ-l86q:4*K$a[s8fD"06'mkor1(Ak8qMN=0hOKJSOPkZ)!o1tTrM3!_V %eO>uQElH)Cm$fLj-7(j1k:YbYH#^gDJ2\OMb_mu8#-/,-J4rR_/=JJh0L"&=I,S6@19uT\sBDbjZ&^D@NU``r8k(tVDNd>h/B$; %lu#`pT`;bbJ&0D-_jTqKT/L3(ROO*AAuo,k7CCTV?^4T6]PrtT\+ECG;),^c`%$U".Y\*0CK/N,Nld9/H/. %L4X!l>Kp3RS@a"gDo9?7?UC3rn4AUC.7lfRia5tg,pO,/hGmP&*nYrULEm@u*rHhR#XuC!%!3Vk#Y"*QQto?O#Y"*1_:):364l:e %OPcC^:eXDAiE<92S9\M_!9KVGXC&Xg1u:4C@"qJ!/:&=(X!D)a+Jeh)E]7/a10]j>q`AL1u"4A7s_&Uo_/O*1BK@=HDm %?UF.cDorV?5/oV#,ZBH]?--Sq1"ohhT=kF-$eq0ppQVB;i[?:C_*tW6PBe %FRRDgB_V]H^A?hD)Eu"!-;iEYl[D?G\k=`\mpDnu"P#+p26mOPj)/L&;5Mbpqj]79,F.\6OTfiu^AD\4jj/.h3$Vt8V_s7dY00uB %=B^)`_3OHB]+&tmJ9<*FG$/4b*/"6][*UiBW?u0i+5qD_\BI/Q3OnZk.SMQ:j:;d(Ynnn %=;jSMiMLN#9B5dD#n.L8M5arRX)Vi)%AL8W>q(c06*qDRN_*_p&?TO3-d,q4&?Q,s(0N0t6ILCt5$9EG6INXp4\716U5'#T;e?b# %_i1=?.V:2nb0/3m5Na6;e'=?U.V<(db@51IIjhU))M=S^Z>Kd=9bpBSBIu>j+c3$]f&]FK8RlHGXl\pB8ZcGsU;YaJ#_>/eMkr]d %D.$+1(/'9b;bQXPY%#EM^*K!Kd9:d;_9^QN/f!ih%L]@q>nJNr!X0B9^=#q%!4np4S$PTB#U'i1-Y4PJ>#bh!;M-HA)l[!1*]ncX-h\PASpFXUkh"sdY?^\VJrEEHmH+=gO,D:PNR/aTKs(u2)hniW^Jq[:U5W(!0KM\7QiV'SZ4cA6a %YA=+L6;3nmKAiYc&>IJpNBcB-.<3;L@ZD!dMXB;q=]pi5(#-JlZa(9&[!t`q#U.c.F>HR_Q%aZZOI7EAb*q6l %9>SK_Ss%U>6+gH!<5F3><%H.7^W794FK&?AR3g5&18ghEAsP\4$Q)84AsP\4b9Z>kl94:6Z@Ho85*$Q4aoYmVJ=..qb.>0W=]pjD %kGV=>Bk>]UF5jIoGh8C2"iP1fiJ(UXbhDm_-3XeGTBm1S3/BF"qCHXl#I.ll$!!sWKCX&1'35l#a!Vo9YHU8H&mJLD4hS&%/D@cj %*XcoTNsQ[D%(*>>];>hNXXp2Q-d4,mWN/&Rrate;WJpA2BX=QdLk@'1OZJ`aZ0h:)AF6+4(drQrubos0&:lT+@k)P4.d%+4TMkOGm] %3IR%"P&Dok=;)$XUrQT7Sbj;6JH[XK`1##B*#J\EZ=H;Eq^WS_XIf?qI?]?0.2n8aBM&itLQsAu#hSb-h&ujO"M2Ahi %fYQSGBQ527-"KcKYPI&A`VYRkQI.=4mjF[>gWf`,oiOX729d2C\?'utWk$1XBm`ia5M2mcHLQOCJ,7tW(H";>E,"( %NW?g)3rQ(%o6rdrK:,+3n2oN5l+2K"eW]SbS"lo"DP?Cu^V?A.$EM]?XoPCSKoI^\pd"d0:%^/`qt$4eXh1k.]0-HMJ$>m6k\[h@ %Y+BV!$b[@2G(fX.Tmq'Rfd19nZj5Uo`+4A%-XPp%%sI=SY1&D%4.`1$*q?)=EP@`Q5ASEV]%(p^8##/eS)78pAn4+W\IH>Ce,]ZOqUBXA)`>t %A;R"Y_OQJpquuF97>qV'*$f^4jEV#mr6O]\CW_lsDG6;GIA"h_h>V,3/b`?r1Ej;_?If+4k-5Xj?s5?J[F1GE8 %]O_MY3u?NiXcqe=h79=/]_>p0h79[1SfNfCG3?0:P\=PO^rkX;];)i;4L@2:Q"B>gn>"gMX=QGqb)LT-ZEbT_'asESAS!m$!FE,p %f06 %4(6`_1!5K,DCQ(h:6Jf+0-Z6981cbY.@LkA`ehluc$X(rUPQJ9(k%^lHK-(%T,V3N*+ugeU2h[&f]C+DnVOT2!Y$BqMT4R#E/)PL %NRGog:n#2=qdWLr`ehlu0d@mBhDfMcZ+jY)Kjr)0D@ES[aElmbji6M^E4]BQji31r:-!>u'U@S;i\*5[=tI8A3,uJ`$O=D0\D.oX %Eb)k'ic8Q,hN+Zq:0_[Qm?!"Q)^d6s[XGF-HK2s*`m.gr=M8_6Eb"_WMlo!6>]'ssj375Kk?Vij[P1J$^)uE7RJGEV.eEH5acPb= %IJuc&@DY^i5=al6=9P9NEMa+Bc(b8mnM4D)Nid&uqMqd4i@0dN2#g%>E;p[_SRFZi38kbKCgl7Un-p3IOrfYc]=qP0iXpq#0;6-/MZP."$aQM$'NdM[Q/UtX8> %=_$LTR&RmtE65OT("d[!mUi_=[-I$%>/!ZH[-Vk?$:O$AE-Fd6W5+5g@[XcaX2'PjJmAO_$B1KqkcU2I^khuYgpn&q^khskrBaFj %A87(+^ePkfA"MYJ.a1I,;h6r-5$UEainiit@+UaO$r_m-:J$cP>KadjMX*5"l?%gl]=SH:fOAhf4+mukdA<\OXL[l*?ghYAh15rN4Q/h[4mSGE)`gsJ %Qt(nV6\kXf=J%3<-j37pU+SfkI'I4I;V+;2Qi?Ui.EArqp$;eriNLnMXSS`UJ](AnKdZY7j/:6A5+(2?fVZ:RTSH3MnS-hYU.#_H@C1Nh*m5o"h$26_br4a;V#(pf8f.7Id1^^S9tgtD*s[LP21c/3j0<@mg"NBZIGfeZkrZ!*im0?YJk(J %?('P*Ah%_EMeanUOO#l*B6Msa)rr7$Q]j0a,9(r@HsD5m\-q3X*omFahhoCKfR*Z[`RL72diVW_o<5->G4d+FYl@2mZF.>E7Velb %K3Z1#]R/h:fnI!Df9_79!NOWb<:u:*>40)1m-!_@c0+t-?HmEIY`kf-8:*W'.ZPa"O(ZJ15ZbN!<#8%#EGIo\4?T`?Jcu[H8ih7O %`b#s?Q^U#*M#pZ5pf*78fUt#IUJ`R78_/fd %/iJF0@d66`p9WMr(K8?IUU-YgIt.U:cT>hS@jtE602@=Eb?R?RJ"u:YC\MET,`;$NLh_nT,0/q+28-im`M``hkC:t %7$^?#@.D>RnFrd!Gd(ERa%CqknU3>YNn#60^^Cl.5.Q8JSKW([0l.)0>F($R+G0!RW,VqJ0A?N0P`iU1E0I$&3&J(=g9RNa0#Vg& %FBuk(;SO\^lHqT6KD]X+$q;qMX)(YkJ<;bl_f"j+WJr#EpO,l9i-.HdtRUF'b%r_N[ %OpuDm`7oglF!Rt4.BWY09Sm>rd159,Jel:TUClG21KcC6N^eQ*3@$3]SGaIM3S6o?%7L^A6f.(/,dUWnZISlZ=X!D7^?I1]2CfDO %r3sf3Dj-f\-00.V+WMVRkeorJf8$"&4>2kYmG`0NgZ*E^a+>&n0`5]r.ZekRF %7R@-X^Rn$[+&CFS7KU"1^uZ/:,et\oC*89@f)5&0CoeU7fS'tc;Z]Ap;Qo(j8t\^@pPU=rXtJ(,4)AP`PR@6Q%n03'JBVWV[qMU) %55PFf(XiB#foq_n&Q:1?qjt\6M1ed#W(ns"V*_mg+[o+-.Wg+UDMg-<0`e-WI_"K_V+aejY6>WnV?f3d5JNu7?nk<.I.BR#V3D>_ %j9&*09.1PGm1'(S0tO.>4sm%/Gc?dC3ZAadc1u2(`L3XMB:G)ck<&U9E$ArRRA+B>Tc7]+lV.g+&m#7H('!:HHH`S)K6Q=*h%,joU^H>$];dhhncY/ouUMG.LmN=RNukf!:ZT+Tc.@CR@[5>7"o7>/g/#-U/3C2sP8Yngjs< %^WVdi,Urf6;.t)+TPUD]214coCX^-=MH7X;@-ek$Y:=q)pDU/C)/#0?q$@4/4>XKYdt+^ShN@_Njc9f %aV/==>!fP,J[(mr9MuiL",tKp+A.;s@t:g5a`2,*0K-ZC$Pg_U0?V$T`j%8.8ta-9in,(\1Y.Lo&f_jCdfe,?$#sbiSr>OBSHR!Q %!+U)B0if-AhE;m^EnO0OY359oNTVjua268rr(Bnj`; %6:ok;FeYUf-=qP"g$sWOVA23DkHilJ?q@lZ55\tTQn$E$A5\Gcmkt*?*),*JZZ>m7asC""D5CjUb<'/a1&TXB[Q:rFb' %N=@lZYE%,U0.1IT80BCHfdd1@T!^+A6Q]/D8\AY5Kt3`>L%a8,t0'6'4/1[)^U5RZUj>m8/g %h3b0:9uU'ehT7Adm#%rV%/"eXYMK,J.8B#dhX1@q?Rd#%gc\gid;>c58#.ROaRU1G)g_7[fLP+8U#K!+>5!5g%K33Pe-:[=%JW/r %NQ.$39s3Q:U.PW[@D&"dBeK^17au2^^_rcd"LAG5!GC%qJoC4Uc."a\08t3!(Y&mJXqLR^M+W6T8q1]*Xn48R$E7XF=5.G_=)/kZ %8!XA1)@bkmD!cbU>Bi1k!QZ..a+Qu"$fl,5R=.nDb^pU^A_+TaZ4<2R#A$BiFTTa&#(C1S(iCafRCS@-_]7ef,iu$N2-U&i'U!Le %OeU/7%q_^#7dl8oW[3gQ&><;*';JDO%)+5\_9;rsr^t[f8g4oQS^aSHYoE%-+(`HYNigN %>(s"E1iNj5*tOS>mh#ZAi+Lqql9fX.V)CM$>!A=!IC#4N8&lJhp>'h9pqZ?`Vr-*Q %94..cfC&V50WW*]<3\A@f6.MZ'&:C=mr:o1@(J'$Ug %&>'0pII,JM>lJ?c4T('AhYXsSLL9S-mhqfJ*_Je;T]YL;fpFV'jP>D=0mmBaM4NY#aTmtXr\CN%K@B$M4>^K<%(sP+ %>oD%]N&=$8I*IA3LeT0WJ;"N\hlWU+i*aY7#_@WYQ3bJXAs?l(Eq\KDHn?r'0eO:00\$\SC:2b=N$ %PkE>JV9p;Fj3IQAgF#:3]*?@tiKFUij0$j'&pWnalhA_@/,pI`ki7t1cpDWJo0:n&WM9V&qAg)-%hG9]06*DKas-`)+bgY';l;"5 %j%%=eDfT[a2%^olf026d5Z1S1MMkhr-]M4;7e#.,7AH$ANbVCpq1T!dbH!nBi[q7?s-=f %1E[Xge/\r$o??:5)[%`S>fXD)(/A(h1Uku=lHuPKr+Ou$bu_@#:YD+^/VsM51X'&eI[Td:c;uIJ-H"r#9"ls9MM/hAQJNXZqE?'> %b!'n"r2la/F4r1=;m`Q9)uAhN,^l!Oo.RM+rY)tuXtn%o5Te/"PtXr;PlM+Wcs7LQq&/f5R!BVHA.L"^+)D]6=.:]?P0bP/%imqP %Hpl]Yn/8Qn84Cn%[RPtkS`:JbVUg,UcU`O*C`7#_2k8BCD?Lu+-3JoR)F7GKP2PZg7_??jS[Q:WnD1$WF#FpShJ@AB#O.TBdF,2j %]J0'^gcP/2rHXnn=IXZ,2C$s_5'An+gYKpdKH9De\!khLZQ([)M1FDsM?e=i4IR&\4YW<,#!!'?&$5;-D65C<*;#T4Dc59P!mna9 %*^Kt&40H\6OWG@a!OI/.JK>ZQ!OK;e!^/6+!sT'LVKol*Qnf).0`!DlkQsIB%?k4b#sW#>k-gQiQ'PG`>m<];8TCji(A%ZMejmRn %\Bt[AXnU._T8ZC8B/1NoE,?I\:=8'tVNW+s-_0[]op7O%,Xm9@8_-B\0VZ<9TAQQ^cEG/7Y]q$9?3Ngj([T&\;ICY(M?4OF+.5uJ %=c=L[MMW&bd9k2s=@1S_39f1eZAHp(%Mp%@.YdVe%?2g1lQV#Tm>3:"B@0FW?@dE31T"\/\.c3__dc;N+uMCHRr\Hm7V6F>::iA& %5O#7fPH-Cpg,BjNhq:iS2kD.$@stQLBGDdpcF6rugk>+9#CE7QW[o.5U)o@+L<'6,/2E5W$-1U %G;-oLphP]$jbYN48dne*h#md\aI^]-;u)_6,"4nVCP^pI&m7U::dYAXR< %jjnnKGm8[K:/>0TC[,GM'*;PPGe&?X<8jd&hnEea9Be<#FAPpTdm8([We[Dt%lPm@s$TEDU.9"2qQ/K9q %M\:j#0M4GTGf#]:J+^+>7bZQH.X'/*+i/jSGbu>_45)m!Mp(Md'b.u*88:]9GJ`tqpX/8sIQB[0id1V>HY)i/Sd>41D!R)Hq*Jbe*:\M!mA %J[/ZI@XW-e:)c!kEb4\UqE"YO7O$1if$UJ0g433N$3^=qi*`ngONSjP]o[Ch,!=Y>l3;MHPC7SS1$1lr1)G'%&+_CHdCVE+:F"gs %RC?O26r0NWlF?S.1%h;i[5Io[W:T\YXY0ls.uCU/ %W6sH;C^j.T]fFHr[:=.K:"FuiWVFac#:C`Cr)tok7%d7b:9#ud7ILW\p[cFR2@'Hu33B*'k4RpdLa+OS6;o@k)K;q5>/d[E)V*XI %72;q)BM&G8QVaf)W7;R5^Oj3BTN-rjiFjL6rY9nunJ.\1[2"e>P%k_RqeV%iH6+]d2d*@cTdc8b*Vd-JKsi?)'78b0BFQ2iZ'I2\ %c_XWT9#]TM'rb2HDf]#dLt*t3V4n7I.Q!uRM/@.4@PeS/qFS%$9rWeeiC80u4KTFgX1)8qTffW]+A/^(gm+H]W-;$%=1);rYS/dV %2n357coNDR+')dG^Z$rW2'@hLrE*3nBO[U*a=#_(o\f+XIlsBjmSmC<;n4JrZ55hU*c8Y7*FITCGctU.77S.TiGPYdIJZZYffBh;;[.,E"qN=N/-?O_GP9M3F^qq %aF#`VNWRdbqr,,EVRk+m7^2:fmRS(l]95o"ZK\NAdI^gUh*k7JMCMeRd8ZI,MUl&ieV.%PJoqmS+gSW/!d.R(lR%W^`9Im;mZ7\` %6VVfQ>TOKX6Ne:`p`:$J6Nm!7nNA'sLBt*[@XCME%ZsJYMWYSV3^g4;Msh7_3^c``:dXRlkFRjPbS+uP^p@Fn4>g(1hGO/\X8hM+ %f//gIjI75)RX$*6-_.<)P^+I0-h-nAAY)HPagtiTA=gki,C1S-b<5_rWTLH@:F,JkTpcA74H\A'p+BleSk.iIFqmDVStK2\Zf0dE %[&?^I1/B1cA1!&lA=gm=a.2RZPBeA<+1NiGbgY*jPRkg(H/e(lN1YA>R`4o+jJWig=^:EDiL)'6b2K8>aug9`?o!Q!A=c?Oad&tD %Sp;O3<0E_-XYL4WE0sW-XYL4k4p=ASU=in:_j]':;3qGIH"!qQRiG).;EV#nT()@ %e2P^H96NM>Wd+iO?u1b<=.e7X/#Fgc.a&-lH8>DG5I7:lT!(/ZC"pG %R8+&#?QF0&&pk!)5\rO)87*AH[+oS0/)-Hg?8C#7R(AkJ%)#_,fEFcT@&,_'C?X'V]n/9/k%=ucqH`>eWS&%JkZ&Y&UrtQ($YcNP %@I\g?[q<"M:5A&;]=X^i(Q06d+^Ff#DVte/fIqHUM=/-42DFM[$`/\e:[A@\`DDg^6AT[uam*d^b&:^\J"lq.V`8Va`DD"F3BbGh %InM<,D<9,JZX9-7*9$HmFRLTZ^L\h."ck=@rcT[fC-Du/q9EhmB4eg@)Abe;SXJ@0qW5gdPsEr4n`"ZOq/[)(d$iA[Y/?`pli:Mo %7(N!VpL2)@hp0]qK8%l^0;$BogFH_+gm*.j_E8ME\LVc-&umN!Z8tlT49ek\HV75Rg$3%flBYZ!C2h/![lc,hg>Ij&Ddi+"h;F0) %Dn/u@/qZgCN/q2"o33KRAZ#`qZ6mF['6nP"+un=NDnuc=?@E9Q<1UGJ$GH2I`E%K.J!!WEj]X)>U.`tbU.oP;4Sn8?Mb6k\Of?n= %mp3G]XeaHM3>j?ZfLec<HJXqqjq7I.CE4?VpN@`DJl9Z'59$Q[8otKrku3Frk$U""`MBuLab34qOJ"m[4mGduaG)*c^.c?,ij'ffu]@`!=CNWdmH`krmDW@EH8RpZ1.m2ZNX[.$3&K'-* %=O:LY>Cfu$g`7+DfF$,3E:k*uRR-h_?*qmE@kkF %'c,F/N,+j\MkIjdi5MrVUF=#;L]Q'K0M#oSNa %LN@huV$e%k:6UgEe/$pCKo8giR6>nTpW@aRdjmNmYT%Xh"L#_1h7I=CMVm^9,/a.YH<+0p"?;SP2SnZL6&RLWn9a7pQ:L]"m %mR.7*Na%VJBc5sTN1N&cKDsfdQ'bf@=MsX([X.O8:scg47!IC_iQYK`8Si3*;);5RWNCD8bYg3#R,*n*U1^p>NmuWq@3W+E>$Edd %ojS_@^6W8LrS65m@T$F;bSGYf#u,9a10`>:Xh`F%/[M:PU/P:'bSDIX"3>rib08@$47dK3T,?gJ7jCjF/Cl1l.1=@MI4PIYZlQ5Knmkee?nmYn,rYm\_2+hcqh$)!QgiajEr"C]r1)oUpo5-1LdX%U=Vb8H[+O'^RE?EN\Tfp61)[7g[4s.\pb[_;4L/s`5$4!)M?+R)FFR_]@4qZJ"S3fAWL[=sqD4i[B$p*-2Lm.5an %IWo+2>raC1A:W#Gh+/\KElM/&hGP>_B8WL\l^NfKqgr7?j5an=S %CEWTgkqp.2UKbC'K,+Foc`a>XZsabgOHiBDFIHuGO)*5,f(HlCg*'J,-Q%cqKDK%APDqEo0BUFEF;B)D=NrF!RC$[<_^c>R23nIM %b/3\!cm&I*f6f]J691^%#-I]0PF!iCb-f\q^K!J]]X5*8QSTIElejX*[r>VK@q2oLcQ?FZ9^BMq=I(Zt8T;&>\=s0;j&&;9(nYh= %gV-OtTS^9Gr=Wl[%iPnY@D&5#n#t5TpU'tlUiX7V(j4RP+&dD80C_j[dZr3iH/V,9%(lh89VE+A-7I./4)P.`>bT(@3q$M?BGTFJ %q*eJY#e\cn6kO4+W-EGi/-Y0mn2E?Q;&#-?!mES*&22C%S7%),4"T`DYqTX5Pf".%YFofSI#$h''H.ZjKC>+(e9DI]s-&37/&5)H %J8=YV9,0Is#01)]_6NcSZE^@j,eRnE^gRQD=/`Gg_OHb9do)">P(5tD/4p&*PmE-kgg;ef0Zb?$n8!o*H3H8ZiPJPk\K$p&1ii5A %M=7Z&e&W8DA"4_A9"_d!QUVI'j=hXc5lD>4,8W]lT?o5GNu1V:Vs5'7O'E*Q*3]4uN43d9\)GX/39+j\1ic$E3Sqb5gnr"1DrVaR %6RsIP7p\bu`sW-OHqW?2#]@G9ICr=81Z$,/gnr-s2rNXQZYL]'GT57RRn_>k*cHrVDEAs#dt7I3'ieRM/a9<):O]alg,`#>D8ma\ %rNP]^H&]5M0X?'\.?1`'d0289`O8%*qh<]Y3d`?qUlhE0%"i,UPX^\iQ/X>>G2dTVb6X_>RRY5:IA/9f5Zn(mBu2Er^o_=#?W&)k %-u`J[Ap$]P5"V7coG^9(X!#VA$;<6iN8SCfC`2oL\1FC?_[(MIXHq94>Y3+u %Y+')^5./3!R"=Ff0Ztlt?&>bXIJr$0_W,``V0IL;>k.k*n`6-Q(p0Q?Z`@XV[6b4p6l!nI:0@C83s_0UkUgte;f3JT?EXdP/Ihf` %@;h'W0Q@4/?'<)0&s@%JLtX6!n^,`?qM5/=lZ5L!/%8"ahu%9Bd!NdP(7paHeF@;^rT>WfKf@,n]V2(C]H(-@5]s2.fu+JjHH;cN&5,K=_F,XJo[4fAG&`j:^phk1n"fRbQ^CM:fM_a#4eh45/1(]Jq],4 %T3ikMJ_5!V"Y2P,jKJl#0cLD'6'96)+N+I->jDB%6eL7L3+`792CPRfAcjo#-(NXRmSm:oaC7(&mn,Ua#"!.1V`SEC)[KjQVJTm! %)p%O`;[ZA50UM.W;Ye2r<[tl!]$4f$i<4fZAcjcq'NH3\JXBWVm=48muJbFfjukF?qN"Z %aY&4FKg1K*CSB3,,mWPh[?d#/Jr/nd>:Zt[`BB%tjQ_!4d-W+$b<_7nKb.H=Z)OS(fNO,+/VV4ZM/@!q=j[LZ/$Z'bZT:Hj/Ik]0 %]7g'ErYQ'OT-D^538?PDI4&Y`%Yi8A'En"(Dn,^u'NjH"f/^qi<"1\9J@IfgBl %R%ktIcSFCC&qa!4cZ5r2`g/uf^si_D[%$^-QUE@6"hEnB%q.RV$hid+ftN?*5K %l>9[O+Z#B1]WB]I$c-+?/$#L6)ZELenP.eu?B)]5GG6JQcq40tEVF\:mdJ*Ms4YEIq8+mjTmn%qf2M"'s+uTEkJb7Ih-%H$iaW,_Lq;Z(4!pnqU,$-4@RJugIGbc %copd2SY8L8c&$EsWhd&o]s"7`L$V9B>#B+F,\/jh.;ZnH/idAe,nE@ %=V'8GhSRJlk*U#QQ_'f=qk`lUOZLDOJL4opm!r>WhqZ*k3O`)RrG/=Q#i2m=l)hKY/6(*$D,kr%nOPL$.@Ese\(f1=4nuMNI=]:S %^?O.R!4$f;_QSR!M1C\Gi%a+"onhGjt`h:+4e-GWf8D#dq9[q).j9_]lBVICq':?bj?EmZ.C6+g;pT$#C %EWn'`JY+JeEd;'HDS_%;4ea3'T]![mS>%91TM8rm6jSo[JV$Nl"\Pp__'Ou7LF&8eOrf8:U0J[:E5AW-J96l%\H2pNW2*OH-CX!& %'O95MYSbK9^,1m>Rc(L.Pp.K?s-("s(Mt3?[cCmCK-caeJV"7mq;%2AS^mq,.o:16+sg<`i'O&)SE("k>WBVO8ob(B/ifmf^Ykia %dUGhO5f)R>ktNG6!jASt$C"eHJr;ZQa]eq1kf*D&@.''bSD3P?rGpMZn(_fW0C?(_ %Om6(&4RNVZp$R'OGp:dKVe=E-2nk6Gj@@]@dM\![Ct9P`W]`"CKp^6;Vo>%c;j@qWf)(Z9W4Nc?)YP6XX,i#>F>KPLS`P^?p'Ckn %o,OpNY!VYh'crV*k*""r/u'n"b`ng=3nbtcoXQ)``V0bG= %39*MoVoXXUo_DcT(5IkkE"h5P;Y^Y"%@GSO0Y<:]:,jnG;EM(\2^:\u(3;\I`. %T?B?k$fY %5egS$1_ZT;&9qkPN[Mlh[N--*K\I6s_ja2Eq4ng#G=W9P53\oB;T+ntHC9W>7,eU2Mreob3DX*tYlEk6%Qr)CZbnCtf_L!Ds(!Y/ %i@T=Bb%PAWS])_pM_qbr=(#QIjOGnm'c>>*fL`_/85WdU+,WGi7eBbATj:V=:+7X'1="UI@r:4;p9DEsu3/OW4fhk%UWI6tgbCXJ@#B6JJGdhHGY**dgFJJoJ;("P\b=lH %s4_K9EODmim9sFX-Qt%.qoLD5n8*\k=[LZ#=Y5P4(Q?T-,_Q>BV=_Z2/c44.7tPR.]TJ7'3*/L1OIRYYEk08lP!5LMsa1cQ^(f-bM)cZXBO1#*fM@GbMp!5>SmH^ %[4GKe#\I2fb5!*Q %UZL&%&Zo6fCb;8;X(>AI952);5Le*'V:q$*?c&jTF*0j`2+I@bn.2"2DeE6Clg]E]0R!YGhjZaneZVG5P)Knu%@=1KE5HtGXg66G %bTrPL@(Y@RD"k?,LF`g`qerP%s$Ec&!G::[kTU9VJ/3EiP(ehnpj6nBAT-()sbtf4$UK8 %7t`ncIIb.>^34,V#3VmC:[OM1l",h7\/l:c2$5rZ1`ncjT[oj45&U(Pem"B]!ktS.6]RF6P(nl?%7C)_<*'Mcs<@Om7`P17s/8=,#id6<*(c).^&36XkFNK\r3Gs?l(FhGJR6G %RnItQ<#;D51@))Kppg"Vh/d5#lS0'_6Pu!CPC&kQFloKQiR_^j$C9sb7U_(LD#ED\,KnW4UW!*;AtnW9-@(M?O#J$*WT %M_Ro6K`E0_WI"$3IBqE'p#BhV9W#W7$-,kHb`Of.^J#'Dm:6AVp#%nIM0MQ"Gkc2#JZo(M>%K_XiH08kYTl0eR4WJY<9]NH-UfGu8$X5Q[_^b]DDj@`bJJLZB0=W@?WH8A"C^3E%io`TYBGL.B6H='XiE]-jfCNfG %0?r^I0;E*REL<:,09ilV3Kb-"f"4J\X>I&Ijj)Nd&kK]1,`pl_A:)JkOpp_iF9q$V6SYZ=QKa3ij1R^].&Ba`I?:QH2s)`=fZumn %f6,D1f@Q^PkE7]8Lp%uprLkjANfW=dL'Q*SLjUgEXQI=VOq=>2R0*NP'/a?90XGG/kSi&7<^Zg:Ssc2 %C&ONMqO;s1A*GA'KsD-O-NSq,M:58eSPA+l:\SoV/N:7YrjSetaRso/$BNZtQ/_a2F"*nb(4(hECnk$%iRXkje1,gS;f3JT?EYo] %@lETL!SLWoDYsQllS'aVu=c^'`&_[CEkP[Z\k22pge8#[ITmCf$;Kae"s:qbBBaA^4(>/K!#KK %=.EtV?C[$g0Ohba9_G!pHg+WO:fsn^>UIoGTJkICA-P1$FC+F%)9oJ]&qpK %-OPj)hj,'nI"8jl5j@i;VL;VpC2<-DX@&MB=05qF,:XbB?A9L:H%*6$XV+r7ls232n&R4DnZs>=oVlSMFc4^WD[\L9Ze1Rki4,Gpfog4gaO5+ %o]!r;SW_uE@,1,KIVoUEU_E,`f/1D0J%R3Bs\Wi$%.^<4cX"Kcm %PZf[SX^6^Tc2ICN*437:SK=h6K(j8H@!$J-_-b'jJA4o:,.(;:E$gjj4nXirZb"1\A$_ZHNH7!b'@">IRhL]=qP0,%"#k(+J;PI.]5k+qDYF %M.3_L/1G(-dCr0^aPN\kjBC@%A %pVGG1K]i1Y\sfpa\aB]PPU\@X26gqf,YAe21P_4)\0r)Y0,?WAocNbDCpb,JMfD4c!eXH;Cl=*I1%)Nbf#u/_+l+K!WGXi&KCES5 %E(7c6WR,]4E6Jia0V1Qp;.G'i(71#(AU;[iWP%i=.[^9?YKr0EVQo&tb"N"t(Z.EA2rXH4uZgtL*Z%o6sT=gV1R4F,YX!=/f+-$rN9*lil_ %?S\,Aic6SPr?Xml\E6-U,s,TO6k0(3)66pj?^TYAjnDics(8A3AutuDXSuh5m#4s7^,f='Uf]=AYs=M2GC!k\H;dnSq)^K_C.,QiaZqK=S^rBMot!_U)oi/l1@*YOp\XlC'i_-'/#mM_4&=0,MSAMAe7R-]Aaq5"jDOR/#m)$]d'Uj\b14g%)a5lR-I^:F%TPISU#U&r=OeJ"OYA+:)I#PF=k %UO':54dY0u%dLm[NVSA+D\cq/S_H[nId%?-lYmBZKAO*%#Os1iU'C9uL;Z6TGN,^rY:[KsXoDGM>B>(_%A[:OF*k1^8@E8,#PTKb %]C#OCK4t3=h4AbF%pG-u"h60nC_&7r^nAXG'"n4]F$\l#&9?*l^W*4B3L<]8Xa(%sgM0Sd((,Fm[loF0EE19G`oB$KKcqF0$,kj,WhY4T!b?qt]Q=.a7> %Po?Ojl]opu^1Di>E'$ZdF]q^g3T$oe*r^hi$'$V[neY`4jXM\9;t:4t79tAgl(@1fcMk2c'gr2Ep_=L]=J7\c2RroSSDmXqhA#rDE2XuYaEF=[(:e5@4hF\0@Mt;\Jg7*hsdBtC?KB?.[\MZfQ":m@"YBkXF42m$d&su %ffqoqq""BPf\TM*/qY[O]k(%AM8?$4a4h'NR!*\K_8KuWKF#Rc#WbnT@`(8kKOEFh'Eo\:4_csU7BY<1FN-YF$cU=*HJAX;R!/I. %>+F844@R%li>'h(K/H?X//nD%Trn*!A(m>_$XoYlCqMpWH%;^J*p0__6b69[-(bcpq![9=S1dBGnAZJ"1(kghN*F* %jN9qXMDH#CO:*C+BIB<05q\O4J29N#<[8hh-n6aR,+F*bnV>l),+00;L_YEoZ4aNU2>-["2?CVTp:t>O(ed;RotY5K8DM35e,uI+ %@&-Sg_#o$mn\AfJ(j[D7p:t>C_42O2e+)bkjUpg0d2Xj-[MA+Zd8[9CMY=i!%[a!1oY@tE(#aO5((Z?-PJ;Ibl`\J542`2n*@\.gU3jF&`m;kJ9Hq4>9S?-.#qu(gFh,$T+%raZQf>kA";k2BFoC8nMQR.@D>Wiiq1Flt8ilH=5,jU`Bu1 %"k<]ji9A*jEFVaLoOl)(;j@qWf))OB$<-DOoY>,M(hq5+jakf!0RKruL^+^jCa8qnq/h7;Olq]L*Z3-&6h^tp#Bi.0#Ns9KH>sRq %A"$^4QC!ZZ*lmn^Ye8mUQI,72S=_"TG1M\IACPet/82BcM!/"#%NSmrIPHNIqD29lBs@rYThHuUc@?*JWhn`*k$9.d=( %jfclHYAH44DO7(EXsI\9F%rmgUr9h!42(4E>g?=3pu9atdOMC13dL@#r*4F*?lbf^Wt"HBlEZY-b>'fu#NFV`jWnogP %T5=1MrV2!3*MJlRGZoD=Js8rqH!U!T5:JYBL$faHia@pCQ`7rUV[LIS]!)q`^gI]IZP8[]_4E@0jh**H)!nO+/CUp2G-o3_=h"JX %`6f4XBAks.9/G-K3qh/JVOqG14JC#%ao*bugEskB1TZ(R47Gfs?2(hUHfOYdlO86.4kV-jB$/ALQ^?sB\NL8glb]&>EW%FZf-\G> %1M"'fF"oQH+=P^8W$Kn>0@OJq@0.H$0n,G-m#(W@9t0::b_-O/1f5]&i8[UiS-^JmJs36/na>_I&/+0+SQ0+b\WgspXZ9j%5r+/' %qhdP^298gV)flfYPq`*n\0'L7t8$(LRu)tO^$[0i:S)1b!*)U/f&!e`nG)JdVFS"U %]ogdYnn#8R7Q-C.Xbk9QI2;C=+A"sp-&8Eo@!><@=CPMdZ>,(.lt?NHEm=)eA2ao^[pN4U0jY+=*q>F=Cf7J4WK#a9YWkq&Dt %ZK?S<126=`#!4(i-"TMci8*L2Ub@/0TC&)n"7n$U9/!Z,nI@A6PnMdF0%WigrDr`eo?u4(?d9dReA8cXh84:tN>2_&VB9*\o(0]k %gtr"+AWRi"?h:4$(B7kRY@'A3=o>6Mpa-7,Z9%0dQYu9PU3aZ+=[btp_%(kPc74(orm+ICrGL!#6q"=Mh>fLUHAaL4rnO&E/AuWS %+$_'o,,UQ>"oc4e@QGC2K>sGV,BeBFGJjQI#WZCOM/3MF8c.RXdloFr$-o^n&KcY7!I*]@Fli\3Xi-AZNq"njjuVVMS&/G'XAf$9a%$3=K<]m!]: %s287KHb*^5FF+(aX^-%nWu"37IP(^1llj)ud%b!Q$*Th:ghbP;jnAPRErnF.Xb1!B;f(/rHb_LE2Z3IV/MgHQLi2&(]T[MFdG;GK %^6h07T$5CaiTGo+7Y:D\g^2*@a;"&L@.?JkAYP %cQhEVhaj>]1:`nD8kBX[&,jl:GItt1e2[KK*a#rL"Zp9CXlAXBWtPVLRu<8[A=,\=RHYk_QG*fnNh%d4\irb=:MG4&'>GQDXMF]D_QLZI[japtbWqf^WU"fV[-GSh%\i6=/k$R:h]h %^%X['n/t%=`t?#*1\l:";Kc^a0pl\8*3)ZU)obhfcjGV5Q0s %`__8X?E"[P'4-ha6V1.7`kg9@A4$YR5+*.uGeFDg"fW6Lp3ZhS./ait-opN>WJ2$H@ra)Em@>c<'tis]?a?@.h_D)F]FpTn6#^j8 %$;7MZFhB!!'tch=P1U+JHp"bSQWq9Vb=hD,n7#K%mM;$i_$c8-])%R?Gk$q#G7;Tpi,qiL9<-oUD2tlFL$)lRca^6+=6PSHcaX9+ %O2Lsam9[p+Y08/X(C#uX(%#;#lf(KGamlNAV*kXS$21OKPM^A`o]]^u,ss84c&+-(;H2X^OgR=JgG_8MhA&5=b>%1,olX=I?t)*TjLJoq_$!`"R:E/jDf61Oa&s.aQ&MDeb%Rs2Rmu8b1V+'^UX/taK(qe_W0Ra"("V`-q]/(=Gjr',4+qEgM1B0+(e`b %8+6rRBf?Q*@fh07o/(t^Z>J#/$oZjtl%h1N$GL!``D2b'mc#-VV8oA(8_[us"3PlCAlUR\D$>8&$&b>kCb%Tf-eGf4P?`[j>_m6N %kJt5a]EHsroY)>4%(!'"mo&cE`Of*h(d+ZNo2KtQ\ANkQmUulOW;'UMIZFm)r;`/l %2@3H!/f2:C"j)'sQ]'b];C5\PS]fo?[Fh,$@R9Vjhh=VNplrLhR9GtF_N^5k0sr@B0=jr*JL`3mE"GYqgg>>'OG\!JhbMNn7+XW] %\L0h2>l/&;(H+tDq#u)XTBq4l>M$j+S&MDTWje[qEOqfST:8h*]lh&`,lQhmS1Sj&Gf!?5V61GTN/Gg3Jj'PS9i^/qB(mhr'.>)k %ZNYDB*+>h6c;k"]P/Gt)4]ib##EQ3fjZ7/McVG(G]=)(sYNi$4>48*7S7k;99R"QU?uCJOZbh,C)QigE+$GN#97al@R"m<2oO&uW %3_iK:RJ`e6rpF\f]6]We8,pW"q/>K=GPeM%G7Q5!hHr1HX3Y/1ON:]oB5FK!rm:BRr9#7g%q7khc#;'c=h %s19*[$oSu8G0'lUo1c/1ZH5WY=VB*:l/Ip71rhMBR2V.m1q.\3-@t3Y==\$Q(p'Q0?'D&"*bc(6h"l:dXC!>ol3[CX>hYJ#W]`*U'ZNRdq260p%8+Cm/'f)pd: %WNDZUNb-4a3Fq?4H)"YC*&;a`H_OeD*&=faAjs>-3+Thj$V[W/F3#IOmYQ*U#J5#Um-`@1J>LR7FEqMqZu %9OBUF!u]!_gEmuYX0l>b/@jL*rL+C5F*([fDCufDN[MHA`^]!-1l>EX'jVlgNHa>dk:m#^(c1^DZnh.]SoH'j-7G)+b9IBhHZ>)+an@H+ckZGK/*KfOU?0.WA%c<0u[?e,]o]=g%-M_Ak$ %0@F;9>'sI7I$I)O^8r!%pl*10nR\7><"cV6Z;)*#?W-e;?e38d3H#eE`L"!M(LNMZ(>nKDEt(79@4K#u3DJU>#(YlS7tIMNJLU]& %qS\Zqg><1W.sNOl_64PRl5Nji$h$\bV7t[tS,%6lPtaAKXM'KoHA0rJeCpsoUKP:BQXAh*>r:*nbO6h->t/mZDN:U*n2E?cPCoaE %@,n?Tlh*+UhH9TU_>]os+;I,Q+/%XXqjlKf'6rWR'1I]2ZIh%*mh]O=*o^4tM%6X5^dB\tphokgo'kKP#*nqT77VZd"Lh4t'hrKX %+hi?PM_sM+`0ZTgI//56DoPD:q!q!0E-W^b0;%l'h_?#./"=2`QJZ/)SR)W^b9su.SLN&gMLIQZD&BCUX`D3,Ab\pee^(^5Nb:k(P[3D;`eN9,l&j5D%c9&(rP;#<6) %1t"j33,,;/B6 %Zg^tER]eA]I@1amf2m_`c.]AQA"#nQ4E98abOlZIaRE/+?iBq\c<,#]1Nbn9SUdQO[hd=nCs8QUb4*Z)Q0!Ig1D\`%WZAGB:sNBS %/16>*LJh+?<+&AAKHIf"YE%HUo^Ct(qd^@hoIf&H:V0lKBtg?]FF/D#e>VdfYUUN8^P&uq-W2^Pp?uS@-6LY?*#%/rbR'`\hd5m^ %*opg,%1#A2_la&hODb]@+C[jMRu1!$i5.DfkK5*-"C1_$(VKJg!%rZ!$U'\b!%rYDMb#Ij&9PO6XtKco&b&!Y^!3t?_b,K'9efWm %c6CmD>aRm1B?!iZ>Cq4&70,$6*2-.A0gGpNCBI=`DV)2?_i?Wm(/'MrN_Ygp_;r_"2W2Lt7dn&XPED/4k=6[>AoPMDPYgGMBFM$>>ECW%'3uX>le?J(q:.[UoDSbPKtZori/S68+Q^S_cjVk_fV37r3Ul0r_U^_e3AIaiNALipQfL%2S@0[Z*VNC\i)l2QXG'Ho'Xfg-Pf>HohlLrrdX3dGJ)B0AbZJ@d %%m?[c9>#=!5+pfl)9Lu3l3D[N&)nS6`BSCed(*6'?-QiAYX2nZLh@=@A"m5T7/7-M&/#CF"g^"J,3tQ0K;bB@F_%KX=h]F4M`q.!U %jEq_o3,<#BHNUJ?GgpXHFuumEmH=-FAqE'gQb8g$WlB%aX]`mg>_%%k0]&`aeICo94(k>8)MU-j`Ud3,bXMb7!C^Xr)QC[j73-2E %*c@\S!b-"shj)#C5f)-Pn[gP3+V$MH%r"Ti/V(,NOs"9RSAT#$*PT8o'j)[1S:[$7/PfdNBTV+aD$R>l5\$q17$ %`3W<#fB549FgEK/2@eD;`$G7bu0&;rkb^+r"thujcK]&"taC*4XZ %kJ:mq;BR*RNPZ>r;$$dg4pt%Ie#&o$bXPHR'rK`lkU%n2J?u@LiJt3G]#HE!gUcb77.3b2)2+MgWhQ>tgH9%4$EBc]>!%#RV!nd` %.4W5k'HrSR3$>W.Q&r(/_mNP/RERe?j?FdK3[3g5^q0jlOg51eH;Kj6S@e7606.LmU")RkkW2cP&#[mo5hEPEGj%c^J?FYJOFh+# %e)[FRJ)\6U^:#Xou+ST[[6'?r)E3@O'/C6J4`K2=PkEtL_enBZtV0d!(m+)?t'rR]*+)U6Pn_$]_P3d`MW7H@VUFZEhWV,akL-d6]8D %Oj$F_U$I!tG=o_^L<\`d/[U+@k4GIk5MWaEMjlcERb;4jt]I+.D>a-6/sou6-36&Q<>H,*A[[mhtH*S5gOL^N=o<`3p#k<7T)\[<6e;7`rH$PIV %K(G/qI%^8C4>&4Sm@r!5*m!m$)Tdq!LQ,@"-.iEGg8R\jPB?b\` %P/9"=N0TPcK:PbF=&_0gG5=3.QqLn#YgYa/_S+:7@"0VSQt\H^1U638#^6sBAn!ok3Uc7h\'iWu:(;\[-394Hs+;h)%KXp?IkRur %PCHoAK0Ye/8dW*'o.uZ^OfS3@l695XNDG++>=*r=4[p5k$o/49r_$snL0@s?aZ^1-#.^#:l^VTg$dZNGhHr0N%:pHJM#c!/Oeg;QLD=!H<6O;>NiegS"4k`-0JHHaFPpM %;[YfAAIWJORTbTmJLt5-b=LA[)VFUdEf[VqP^tF<\CTb%HAjDadD%8!"3C0';\e`4fui.;dO&d-S@ELO;tT-H=D:M.Vt9\iHsdU< %gpus9`UD'>]><1jolL#<3*jHI>`)]g4?\-^0<:jmkAa'd)4p-[a'K`Hf61X[h83eU?J?mHAs4b2E.@kmPh`uq1U!K&H1ouD]%EO6 %RktQ#>2uR_j5\0Ej7WM"s-tI-m7t$PK4Dt2f=A"7.$IY%p`/_oDUR'/CZAjhS,o,D)$NC"(jQs7U@CjOn&h$(?tm8?Qc60*OC:J2 %(1TY4LC=ij.p7Dra1@LiWTWcX^IaJ:)'^_gn6IJY@*$pXA(Uk1O[_A8K %$9OT!klZ@;`o74qFt\b&]LFh]k[?1o'-7s#8>H]2q2T5VY:/GHf(sK^37]CGmD<@oO$?(V;g$'$=1T0NRlR8M*gX4Mq0_&&lDgIp %ltM_arFQs`X[R;3<8uCC!JsYXa(d6AU3@Pp=n#DFfr+Zi;Er(QK"4PIQ6UE$I&=@#A^^+!Wt9MDim_"ImJqpkE#CfVfCBJPXFQbn %1hO1"F4ESE5&mE/BEtn"3NsM:VRB#O>@td;`2P?:ba-pg.WK3]1p_n*ng9rGZ5]pc/2\kT>KuNdD5DNmf3@\32Tj)=d``E:#ZDI[ %NC>tJ"`*/Un:%&AEG`_QKF=rIW/%mQ%9&HX>SBQ2!98E8[Sb'EiYaDV/bYj\.s0_+-R[r/QFC+O5Q,K7D:BB0FJ;fg\^q7HQ%&ebn75Bq^m6F\fM`(oD+sl@pUN%KFNs,8NnF+/&,"W0?-Xmo*CeYu-12WTgA2Gnp,>V]YF^e^I+?TsD]aE]iPYkK$PkI?AjNoR>AXOArLLK)&_S^W`#K==Uk8:DN5nWg58UVqGdOYtcl<`Rs\%B9'I7S!MZq--; %J6X_mYe4^8U@$$c\]oT!:Z:E,\a"etmh8tIF7F^W?()_Ig$HB#_A[`4?.lgj-(k-]N#m=Ha-.XVl/qt]iY8ntKrp!Ymc38bU%jY7 %*_t)rB_VUTs-^]Io)-UK;m;?o.$u>@@&!Wa)mYPpeHk>hOcY9SF:X>kJ3ce%Xp7F:^n;uPXp7F:_!kmJ<"FrKJ/Lon;%G2`=m2&u'%&Y9:!UY6#)B(-!c5 %7T(NN"_R'RUJj,j"_OsgEGdl_"_R'R7?+eq=UGh*N=p0>4G!paBCr@+k(FJ:KAD)-n^_NRpU_P"$H:Dn)Fp*Ko&0Cn%)YlCeXqV!:^L]3s@>5$L"X5Wd^0MN6SX,7Bi)7na1921g_!OgRH%OS,HkuT4O/Y;dn>CNa1:t),[na(b`$#Lj'8D5"Sq(_MTQ+K#W^1A %jHDr5?!QDp\B---[#f'nbNODW=n1"N/-#E(9O\Qbk3`KuUY;>;%(hWh4RjrCAuUQ(<&3#>U2DJhr-,Eg'W/ol.hjXN7&NJGg?37mG=p?DF!#YL)[Iu?//2/`GN %G+?`phIZD!OiFr56q!j2>a@/Ykr>#l]!9M];ClrH^DkA'oJMJ+(/EXVmGB*j=lUlZ[,YCFOXdhiMmVQ"]VXE_/WuBQ<_APP[n'Pc %U<;o],$A(2>q*%.Me(%jGtRZ([n'Pcab#i2^I>H6`m6BZr[kfbH0b$*=jBg%??n)2AV">+Wq)P#ati^Tq(%O)XK3/8A)6\=5u?R7 %.Z_-A/4^;+W]]FLZFnX^d9t]kg`EF?q`hlLFBMbL'EM"k0pe0%GhDQ)4^VVJ9CXsI,[+?T$V.6[Q=FLbS.^21Yt\*Yg0_)=j^e%& %$/Cf;riJr1XBg>2%VU;liWlun-+%P/']=2/3EgJ$/>QW*Nk]>_Yg=El:9_Ol56^md'?:2\a`9ck5O33nd)rhD]`R$9Ji6)eUF!t, %_L$\CAHm!9CYYI#ggO&H%k#0H)!g#%g0Ea(T]?)X+>_!i+_*BL"?]*MY@AH$A+>Tm6,&m#qYJjQ-ZpO#^gN7U+)JpluP[$T9[&ji7cN %(Z`X7M=L"4&tTmMpIeI:%74Qb821qW:kRPVkZAb32Lm`,<%JJsi[u.8L:oR%'L>\L%<'i`1b9**Ug^[!7)76T[u,_s*#2,a->DBs %E^VGfS"tV)N4d+(\!5r_Y2EI1l(42h3dU#S4oJeDjC8Cb(Xm(;/BA%0/#018`fLZ%7[@&6I(8Ls %f]CpfEccIbVFnsi?-C",#?0kuQ/:0T>`Y".]7_*7dMKACZ-;%hNM=Fi3isj417I=.]gj\!JErih0)[8J%0De.F'ec8lX0%Gmd/uD %4oikb"q2f@:MB:L3H,QeNfd;^%+!`*XO:CgWU8GIVq;-3@V[@i11P/ORegjc#`8Q@>P/$cCE^*N4m:b3Y8c%jH\hZ(o=abfFE$'k %h(E0O@i)]jN+`9I>!W)q,T),LQ@B->,Br$*XHI*2(1DrDNDP@trF-Eqm-nbP;hcloc5QZ&";uq_R+YXqO_..I8d=$N-I%Woq3_(j %M)7R4b7O:RO_/i]WLnU*=+l,CG[Y-gD<\M:?9gUETPN?j'dL7F@kXpof0m)Il0QV$)&<0R/!J@3)72F&KdE)!3Ghl-`eXD5]u;\N %KrGtf!]<#Nk>Q9D-(;mn,kVN9#LT %Ru(A\9Z42FpV9>?"5\`:%ufS"TsHE*"!]g6YbNVu"!]g6MCR?_$gmBjcZDGg0!#;4hW*q0gIAZ7>1mXtY3S1Jim2b+A:>DCj-&a^ %?h6of-/)_?k*JNeOCHi`7FRJP3=G$1H[2o9Ia/aWVu_8/hM"=72>]5d+6MSuaRdSmPPUVE!Eiga<3'n!_&Y,g %dQsL8RA%OQ&ba7\ml$5.35);'q(V>lG/qmFSu,>j$8nIPLgu+3sKFin6*8];)NARL5quf%6Sm\X@C'hj,YPWN8@5r]>VFE(&.Ed&PDUU@o-o@Vp$%$+L]q %[^Cl3iEA6cIu\=5?/oE2Dm=V+j_21^3BlSA8qo6fEE@1&:!)VU\%7`tCJ&bF$4!2EYM[=qW.UYAn9u1SgBHbog[C$Oeh=Sr]RUJ+ %$VaIX"Nhr>oMNKMfZH+Mn*C-r"`-FPd'+We?F,9:toRK?-nJ@Qts=bIO3.jbt7SX]cYpJ72st,@_Ri) %*W#nXF`JAY^WiN\;MagcHcRqS`?n"'KpI0Q;CS3`pTOce]&]lXO&q**GZq7]+7BRp4aD)S''Qca:.0G3]:)#YI32#ah&IT!8Wb-L`)jVB%eXK6rl*(a2^GZ$M;+`_.6RR($6rT#A^\>WXlBgZ-TL=h6'(!OE\3lL-NjGIQ*b>Lp;L:I/(Q.7D-Tre$3 %(!s:4Pnh':6GH/-Kub<@7EHoifBs<1>'b;@bW#6mk!b*q`r;@t6=ct*dS5DHZ;8r')YbsY.pB,+]$891M7naa*O`oZ4@BoY@)E4J\,G7jQAp;=fThp#`B1rq!WXR79;6_\skR6=eE]:"j^80Y^@7["^[r\[rfM=B_$B#kBiNOA:I!n&j"F6$=G7c%N^/?Sn0:kAQ6% %i$6AQHAMmSA-VFneTS#bR6gJM$=j?0H`YjTKE%Ye/)e^FXUNU(5MBR_S/AWtF7M,>0#ri(1WZoclRde]:c)<1B=>%niEi!pXjG0d %5).0L^TOH'PG4P9eTWatFmMKuT)ZshGn,b9WV0r44 %CkLY0\_R4iqh/#1<(DlHLa52XYoKl\0Dgu??I%ANjqhl)bODimKih9cBi_]0qH-mq8oRk/I6L %UWk%aMW*T.I6On3=h^LF]?k#K=YO&3.'siB5DlttUA.l;Ft.0D>U#CD4i\fq"\F0/R>$Pc[5e(8GUCU.$Bk<<7=%jnjC]@TOtr5Q %Uci'RQ(8WMC<-jT'IQ5i-4_]E@ZTD8@9TE=[*Ol+JOhhC?/rC>On'L,5c %$9H8SU8A1gd>j$TI:(G^i4!DcA!?-"9l %#-=$+dk\<&llulf*pK">7^kL4>Nc`Y@W]dL\-7l?&WCUQ#.NLs6QY(;,.UsM'>YS6[-*T7o2PT^TR#t+q['FY=2/hRFTade+'ef5 %OWa5*@fE?%Y'fR*UD%2dfAsX(SCO'i"g1EKR!k/QX$mgZk]`.EX-Kt;[GXDX#jC4fU1HS2]i@gn_R %=FSI:B?ZoQBnK2lDM#\GN"D["Z'4CQ5/q5BXSeGdI;H'a'c#@;S&BnTbJFg^oDt %h=C+6.ai7E91-M7(\7*oobE#'YFogAfKeWX!NFAfisPXG(hgik/`5h7T$rC_Z%eAT7J%=4Y&6PQ.&*naK9_U$\t/V+j$PkCUsUTng%'/@Pc'4W9,#F]/,\*.=^.Eo_T&Tc/e6*h-_rQMMu#'14&.iU3L`#OF&(`P29`#ODYA2[mZOVc>WNhL5>\@='1 %*';:gkk^6nGMtS"QT8YA@Jn>(mfaER*)fg;@_UDW %eBVTL^I1+fLYq6(NQ`60$lPOV\tTg-l9'u>fXYH9`f'?G6hcI1jc.IJ9ZAm$9Z21F(U*L,lV0!<4BuB4`-=LQr'C&@k]n2e8(RF? %=&c=15@e8j&:)\^*:isFo$#0VR[L=WQL:[h&80H)3k9c!Df-]Sc1fQ1P$:Zk$/d:fnDgoAOqbUg^?bBM\s?2dgQUS[8%N2aF?K'3 %303jg>s0,RgFq:>07;ND[#ac5]%?YiqNG(%iAtLrY-/%KUZiH)O4TB#I)=Lr,j3*i4Jt6"fm#TismeU_jZ1GJEnW"th0QVIr %N^$p5k,5H7b?EYXp+gQgrH`MU@HoJTg+;&[\_DNqYb!?sfQY'=(1l%aHsu^Y?"7:!UK;aB=q4C=1np0pXi'rN0r/ %3BY,Cce7+3lmTUJq5Jk=41G3p)U#M[21p+hN%,5B.Kg4f%93[HYTb(cF0Z'>qQT2K#-VIF?l!1d'T*f#OO"U#;cML,nf;!LW>!:, %6L/1._*i\rdbL+]OUqf5"2BC-3GhGMjq!;0!Wc&kbs9,2]a+EMm]!@#@(Q;4%e=JX\s7jck;[-jEn9@5\HgUJn%bjNL)= %G=T?q;0$9DE$H<53_I\6PbQU(UZBWg_)duD*S$Necm:fUS#Dd/WHY31$j'6'C*atj%1Bn9&HLk-*tttW[n)>.r`mT0_*PUSiQ;0?Mn0bRaK>66&AVumspkpa!nmO)_J%c?33KaL86dIJAD[3^F"$qAq&J=-_'@o@))UdA+O-GZa %e.3t)ZCATgX/WUdWNb6oJL()6*PDQ`?mbDgY&drsgk8CQY*#RTdIpT4hV6k,ADu;O!WYi7+QW>.=)r2.-AAE4S(5j]TQT+Y!@;s# %oJZI0i:F9]]C%RT4(p4;\38,C*mX')g$\\o[U!`9Ap^o8X8DcU_g4"%)!R<0C\e?#_CUtZ!^G^_kMbAMk#Mn.%@)XoKM(qr(TP>QHtFNCPC%c%S&$PIt0m!(r4$N=3_(X,QU#K%E#^sb%m.AZ-b.KI#ZO4j %ju2%$C9)Zn"++<:Ukhoo\pC\=^#>#CEV9t8[h)J_j2.![p0^+C>Lr0Mt>pCDML.RHAE2`naF\4iI7M`5Z*)f0dd>64?X,JKlqY&>N$[]8)cg %1(13lUQo7iKGj/AZ=TE4Kc&YCgc`UR/]>k:9W0^>;.HR^qTZ9"LOD5M_auK,)RF>Bbu9b%WUOs[,1"MWgjjFbm^X?k/C-ZW9,+Tr %S2\sGM-#B+&!)gJrN%p1tR(+Q!S?pWVeoLUWE#Mu!$C6Z3irscW!gtbUf7Hu4s2\X*XP-LM/qj[Qi %GSg-Bok`D&l89L>i']4o,fIMQPP$+/>%S.-,fDuu01dL1d,kes2,$EV6$lHKSXUY%GM5Z^ %>G[]Bf0,DLOdlV-89Y1J#IeXO3:C>DI_LoU].V^_$L^.L5KpaDcem"LdLN6#4G4JU>1u7^*.jdbL7(4-l+uFM_0"6"U+4CsqcL6T %(?hoki)leU0QYr;&(_I8]]F>1WIBYfbcnOK?WMqF]TEAph#^aaSb.l(?jajs?%j/s:e)c4#gqhGVPVJj2>D"1^lYaME8/<[A[\>0 %?4$if4aPHT5_u$0f,ne=eP6/=&gRG_Z*"M[Z!aD1J7B=c@mN3>:&lHMpF2A2p'q/s;0T7,U&kUQ[?r(eYd%O#0;?)LEd`8IF1.5P %ofg^FkO`esOO[P([,`Xe_V;HqeQV/g``'#TZ<@VKG:_iZhVEUoC+Wq<_-F.^=KSu`5*eN0T<2sRE:=J20'#ME4i'WW%?*J_(A-Y3 %oi$n7US5J&D6Eim`ui%#5K4OgFIsP5nZb@"9$6oGDOQs";^IKc.B7$2b\qm1K,3h*]o_8ajus22p#t5:i#a%^jHRTf(;=R#Gk+ME %>5UJcYE\)d@3-BSIu=n)?\hmE#eK:,LPfg_@L"uB1:ZAgQaSI0!o![E[$ %XpelpH#,2$Modop4>rQO4Xebbo,J;7/L)sd4>n$=@3RDB4>rS$7Uh$rCbTs;U+jGH2OKnfO_obsUmJW-/_^Ph-"`0$CrQW*Zq!Np %YdFMgkF\DP^m8dWF+*O>ahr&#gqO=?qTXfXWC'q,<8kdIiKRd8X+@T?h7QC8I9)?hRIPJcbt%7<^5N;InVf$,OWjYO?Xd!63\]bi:Rpb'#> %Fkm@4H8/N.n4Y1c.dX#KKB3hJ(=$cBq./I^9eZ.4dZkutnj4j/;:CGYEVD-70*..p?cu)>KhX3)3=Zs1d.CeO]G(t,Mn+WJIhsig %MkOZ3Up=s.?@eDDm0ne3Ju0?:jTY7@2WT:4*\G-Vk=0s*?-_5-S"4ja7k;Jail5`g2'Y*5MPFf]""dUR0$e'n-`34MpV(.e'8-^X3+Z\8(te6_m@I?1\QLY"PrZF@25Y]!*d8E3.eZT=Z]a\=_gB+q2Ihf7#sI6=#S%("ujLJoIKL*(psbRD4Lk>0)Q*PX,+1QJAL %aQHgfL_j=<5!rWh8%aeg-#q"!ieWpK60'$VOuVI_ATo[q;P"'V6(];RM'H?h/mPVm'cQU?<8SiPM'H?B+7gB@iZ%DKhRk<#Q;:H: %U_,9XhBrhZ8K@8PHTr4YODDcbJ8-]N`!`_YT-:BL,@1gB*@&ZW]3d+rcsk'3RdCM-6An-ATm*?3csi)>pidUbBuTbY>U1^.((Q0\ %aogmpaAe)"=jT%G@=*YrGp&@t*A>`.Ss5<,n0K%.=g@gZM"35^MmmGPiLDCiZ\k(5U[q6p?2V*EhFL\7LW?qNh"s2^O%+EdgJ"q2 %c;)EgeD2cK8K>-Yop%JV8uZY1BpuSj[5%9dGlfV76$Mgh3]=`e&.>A/%JI4\\WoIYkE/nBhRMqN"^>TTPq4>j-I1LE4KG:lIE9=] %jffi"W+JHI+g`<9+cJ@>q&>tNME#6.`d>A=p`](h9(nqSd#2AXK5l*%f;ZJ]p\:co>?(cdCS[mCN-hKJOs'0$o3tp>k`c$!!)IZM %_K]RC\;t88W>KhfLc[_-!\s,[&9iakjuhhnGXf\Ch+<&%p0],\1O@u%7\[7Lu"d;'Wn5HJjaTp`^^n_h2DPoc+"( %d3IeTpV(HQLC;E&YK82I_)$DqN*I5hG!)P_3]Cc4ZLNkp0o&nHo'qY[39,8KR1[d/Gi8,q'cl@,Rnpe"g3>A&^CgKf0pF63ikde919LsGR7Lu"$Y2flXN#jr'c[u0#60pQVA?@)l1O>QQ4MrZkccDW0'Z)Ypc<]gW(XJ^^Y-lac1t):>A?OugTTSB_d+VCg"<)"Rbh26&$]+SDa93DqrlhF*q'XOt %okrn;7Kgo!c'kP>5r$en3d`=\VcR-Uq-?0F>/Q/j(`?SiZ&e8Dkn64dj,iooYcKg[eXI+a*"p[r %]F5@=P0\0ZFKeN+U$:cu%c3J5!]BKDf#[Q@CHB&$_l`#51`]lL=WM[;RZ=Q7`nmbpVP>Y&[-EjLl0+#MLT&+ml0+!7ShRC)#kmLN %>WV=;9EWkfXaFotZ1,f&-9-^Mmj4"-U^:Ir=)W0Go^4Id?2C.*PuQ<;2c3PFFD]1@,i^,]UgFNPH+SrWp)Mr-mU%?'\dG@._pgVdkpf15ek]Fo0;&l4HUS[q5Lp(+$Zs>#O]8$pH)ZUHmr(fdgnXbc%CqN&ENc>-IRn_% %4mj(R+"LhYF@`\BQ-V)mEKB:FV6VXDlY`IPLUeD0@VF]nE)]4% %OZa?@2bhj%i-ZhbbR?HVEg6+AAMSK(]pC&0.eKls?O7cEA_?u:/28Rf%nA!(>fhY"k`nH6S6J^XpZNXCXL8k6QZ,Iel%JIKO]H7D %Cb&1@@;:K3Z)nurV$Logcsfmmp@^Lj:cr..L5*%tH)u.:.38g`oMLS,JJO27^pLkEhi8tMBPR]=AP4Ae".(s7B]g#1G@^p!6p$`K %G^R6I`1;u$HOmubd`BE=Z-V6M%]efO9*t77IB#WNGSZ?k)BBA:m\$h3Sl>[R4T6lRfYKlJ(>?ggpZB]Ui9^78\c#^%/n2I`C%:ij %[6+.IMBfO-V9jM(fA#Z4?9FO&I,9k-F:4_Gpu0b4Cc8i0%U%k"QAF;)K$.rSb%UM'=Q[D`WYnD3R:Y.WL1n@eiV!c6kWoTOVUQr14pb6M0:.A;>ihcQYkG[(>erV!/qCIjlLmfl)ZGG/aalYR-DHN$CL>o1@@jB413%ZHEc$B,/?\Q;+b2#=.*NsNSUjdVeH$X.?"s&SfL==,?[hZG?hq4BXe4pN@D.`(Vtkc-PQN>DD2^B@ %O.HE9";Q%mYDHQN,7(]LQHB]6G+m/&\+XEOY8lFVGZS=\NF#Ic$%;!-3K^EIZY;`M^Ri+fcfK>al_\?;=ceBB1Zj5[lr60_p/$;K %@[RAlJ>m0'XG8IY6_A5VQ75Xkj,^43SGD@d@;W6*co#E$3*^f/*i$del7mQPdd_:ZO,WaN6TnhLJ"`rf:\'F-^0#<(mZ!EAoO=@E %OeZjO1lqh)@5kHs2`L=q4`J"QB6,jne,uQPGak2uTcT*6hqZEd %otV5.SB]=V:_,(U+u_.<#n*Kr&k-'P@qlT9n3V+\'%@"q7`=>=5u8(7KL?@foU&gd:=^rc8EbmgeAJPh,b:N?08HVk9EauUqe(WT %+@BE'ibMBol4J<>0NK[Moc-8&cm''dB]=UbGmJ?L#i^FWGmJ2Q#i^H-YTWcpS8lA!:_1(!KqT'/:_+%I+TV2>C%G6_JtB1hm#_!M %4ecc8P=SKVcQ??.pgH<269W=o!sG]\7&U>g8Mg^.,cCrq(E]`67&U@%p\h<;&tp@c=8H;f,XOYE4R%LkO9kM5.;'p-LIA'GqS`<9 %*^3D]YA8T6bLp1E?uUhdBSQ,q@;pq-[pU,F_r.9C>FWA#(9;`rlY+:;%SN;Pr4mq0#;)"\1D9)[YD %?e>diOS0I&/*3WL8bNpN$:lt_6J>YJ$R[nXc>ZMn5(bA]]f"KZ9f9FCp(j0N#(sU#;4H2H/ulUmRsdnqd0f[.GsMeJKsr>EGDI %K*@Tofb%&ZpaNRkp\UAQI1d"_TQk^)n5p:FZp14;Q(fQ>F>BApI5NH;Jk-.7n`lBl!+m*s1_d* %an&X9/^2H+)l\=qKt295r7XTS$Zn&b%n7k_B]ttg>b%Z`93^#mm.XboICXOV7K5BWLLG<'de*9/CRBV,C>E^.pNm.9q9sdAf"5`- %Qe$rUJ$tZjs6Qn5*&:VD#D2Du*AY]r:4VdlA34>+f,"_,(O!k6eH&hj/rc,mPm/?OF(:Ohtt60AQYI?FP97)9.'F_q>X7@aPFP&PmpO2(sXPD[3I:AF*W.qQ&M+e,8$9$ %)-:i8cCQP))."1:Q]0Thq^>+W'Qq(8M6^[9O$b,#A.1PVX]S2%Y;9ndCHV2@b$t=9p5F %oqWC(E;tj[5?$$-mSP_KZ\gpM,fC$:.RL<,+BF7%kXEQH`h<0R$*t@t?;XHTP3NQi;OC56g-ZUhUl)o(4h0'8pe12Ccgm5jA"9W[ %3s\g*V<&XmXY09NEMN=F9UiF:1Z6Lj>mdW-Z^%dE,l7MU[]:Rp!V %k3Y,q$]ka&1JV5m$.U.pObkLoDoN[M*Yuc0T,G*YMl5:lG'c'F3uTr]h"KqGTfZFTA[b0n\tagC,I]hil-gV`'$`AL7!2#JG)@bR %h3#&b9FT$CGG+==@e&Wj]WLS@X)WFPd2p]rRH+uqO5=o&8JBq-#4Ea8Hh@(7o!CoN\te6@QeNQuG=TQ/[;D+fA-k>QXQuFkoPFnm %B6`)Ap`T\5MX[p0"b8g\h^/s1,FF/;OCQ<#4,ICi\:9f-.+aDFlf;^k,Zm!p]a5j[bui4M=S%^H`@?7Xpu*Z!RnpTesj %^/e=JhpudH)+0\AC=/@H80Kkcp!qC\ilh??(fPGe\4>.i7;uTmCp/?c2tas!lC %o<./:=)N6cPIPXFH>*VROB5]Hb"ZRD>X1,k`?h\,cS9$Woeb.XGKnnlBUZSS6RVmIrF-uaaoh9oN3"6+LI=J[OY3fLMD(DuVPgaa %FOj<uq\Go&qq.$ClrFE*#ca]*O3#N^Lu\=)I/2YqPp'eQQDk2gik;G5"Hmn.fGfV$\`)WTk$5i[,8I\?<@CpH@C %kSNh'4_4.HT^VRKX/6=6m1EH>"^h65#L?o>GcZQ0+.gO/AcZVS?EZWWGtaCmUG/o;=&'AkA/eW_#2V`>ONmA^X,AC+^4J>%@T?e. %jni41Z%#idh#;RKoa7a4WR=,m2`gj+ce_`HfQ_`r?1(ZU)sao2AEE"Rm^$(k[r*]\\'=jc!W'VIBJbm6+eTo^a:GVbS0.UD'kg#( %rG^*o/_s:IXK%4M24(Jg%$%'Dl,B=<0R8i-oYQ1!,*+4ko.LcSf+tV#b^C\FLl-ANJN\$sn_8&Ik.\F!YSVu"f^79&]Ri?BK97L9 %AE&K/-H!jf5t2^r[?+Q_`Ws*L)(6Su:XK\YmgH9gmh^95H=(Lhr@cUGor7cf%PT=LdJ`&mf.WlK^nTE*X_LotaIT]D:MHr1-\$$; %7>-ZRQPA6e]&&eCXJccZotEnPU.Ri*qh".M(SdYhpO00H#dr;3qNO'9]iR@!kM#K(V"S+NVE;5 %E"I9/d$huH76U21d)k+WSEN4e=@^-jp2]SMp:$Vtg$Dd*-(R9-+C2L-T#>uXgrf;8QSur$F@=RIN8+SVOt@c:jkKXNgKY\0h[92S %e,"rN\\>e@C*\86q:==6HJ34;MsuH$YuduW?[&(cbd#";kFH/DT4:7WII9Zbr])m7@mubq4!8P4q'l*Ce'#qNkGR75n&!>ckGR7- %NGK276C\a;R',Q4i:CGFJ=Y!/_<7`S6]Vs8#G3(O@W4m53;EE=&.cH?!#+r$:uZVkl4D %aLOa2FM+:%^6f`a`1MWGhReRZ'*E6Ir2uIJaY.VO+:>h;Qc-q\kBG09^[Q:5 %q->eD9B,'ko=JVM+lVP@o=JVNKFf$(),:]O%fU.UHea*2DYJ2C]?T\dFTmC_e6M_HX*qNB^#$t^*>XOMlG7l2CaD0[@$+E&BmA#Y %c.(&8]Ckn-oV^h3W=GAffHsK$Xf0N3B^?.%(.&D\5q=L?d)'qPMMf,gqU1Ch9)P4G:W`6k,Pdkr:C6/7UACD,f>Xp?3k7SC\hT"D %I.kNOh&+']pb.5qD@DeJYhLC)l4tXWO%t0BPE4aZ'\#DY?M6Q"T*Od6JE4+V%MX>#gdt>g&'E7i%:''uedOgcZY!f>IG;(3]r7DX5@T:r'R51k6%j#H`BN8t-<`7?EUk!H]YP-+c:;`5q`aA'PEZHl/DP5>(quM5O@o&=)?QOhj3P]:^roP:/s;,_\7Q?QP^hl^-q(42->oT!:H"Nd@_6?%[Jp\2KZE %n]T+U#S9F%%4"P.2I"e]M,=]qB4U0s+f,s>1:D<[4tfg!EUN8[@a?j=LYho*%.8D\p<4mK+"@ZTc!4Bb7rPeST=BC%`(gji2*9S@ %Hh3E;L>j/Q:/J*iS9eX7i-_U5J;`_E$MONF\O)@@0a):ZB(B\pddFfRh,5ZC\_R[*YRl&%b8gkT\k)BK%_S3i.,Ao43%c%ldXT,Edhf?&fZ4 %?dAQEq"e#_n)\cFdEA67eU*RjRPoD8CZrG]1k(0!b2sVa*d9hg%qTgAA1MD^U$U&&G7l7U(Qtku&i%KbcBT);ZAgtahXC-']8b>5 %Ohj!]mP.n]*qrm6<,$(>ZJEt_LV;#tl:(I1l>@^4M5#LuZIq7EA`I/J9tfT0fIoEonQStO-^_0m=qTt,`=V?u*q^6qr_1Nr-NGq3@,2e+`fcAUI,H;ZZYSpP$EkOW?X %($9U%N:/Zeb!3'(kU#jEa$3q?)Wa!Bt?NZ#QV"s8H>8p"GuM=hq]915K8i2Ve5N2i=i8;_B(Ct`1,'8#^_r2N=t24MLEI] %-T4_GaNAepr6>Cb$'tJcMu(E^"1W;`\Xu/os13piVt'fG`;cDM!AHJNK0KA[3,_gB`c#R* %m4aItO0`u]\,<'\@*#"2><+`\RWfM]QeJ6tr-/-jon]F(Thin26@FY;n`=RVV9titDlrJG!#9gIDoZK0GU,Ph3/PIB^j?BEYA,.n %[Z:H:.kTYI.rC5@ls6^+Z.XUFe=ZH?kV7+*j2`T0jXP*-=mpm@[7FOWlJ0E[l1+;E'/gOS>%/K6L:=%FCYK[XTr4a_5Vi%--@4TE %_]+QY@H)^hR+'R=(O*"K?aZBk9(Hq6TFP#lrE8FB,OO.;H&[6hjDGQJpgK/\W)tABJYi8;4j0?Q\[u/rU3WMS9elqZH7 %%K/agTWmQSn-lLRA-G+tTh%dVcuTr=MD+f'mo4[tgI,n<#W++NaU5UK6t]jnZJoMSSu[CC!dh64ff*&"cW/W"ZG+EfpCHPQXJ"`+ %N."@XA4<)m)iZic!Tc:\^QrUT"sH]$]Fc>bblWd:OYhU(#nZ/BjES7U.BW9qt3^.4TfcS[&,@JkAmACO'HUU=9U. %Zq=1H[pa+kc>H#8D9^[Mo9aCA!YBq=k4rg-2%mOGA$u[t\t(1dJij@11@9`7jR0B4_:07L?fE4dr2@qP%d;+cJAD*V0;7Rmpaf0sN;al+WI9[P3'C"4l=:\=@ig-eMlVWbZd %G++.K,-fN0&p;Q`9('9i_-PaIqem0^a#u6Pj_u?$^8T=Onj6]AH3seZ+"c_uf2[O@VNh**]l5[=- %pr"Prl)l-i09Xj+(YppT\hcQM=$mFr,?6oq)1>tWeX^C-2Z-2!fHHBVmRXD9cni=>&7tXTjJk;)[Y+LF>]o5-?f\4KP.$"6?5\sb %FDDGi@AHSK8*YpeqLc#\PVEJ>T*,+Gr+$+ti:K$K6%6*s$3$9`r0O&R=hjo8XennO9"i3Ooot5J*!1u@Q!8plpdB.B1DPj:joQaE %2&6OUbQUCXG1KHrDu;e)ip$Bo1]@QO93"iK\f^)G0O=>W=8T_LJ#_:pDa"6bE)uFFB,5OAq6Z$$f3,B9C&M9S[^hN"*oD:dK`@$B %mq_+[+FRY^+SQ3j\Ph34'aO]gCbA9q?(2s>!nb)`:hEC9K_/+7.+n_fVDr-_"bGV=X(N]DR5/*S+d$=N/ %eLYKc)ElL@,c2b)\&ESa%/kjOMkbHm;CU@TdGp3Zf5; %"N4%_=KKuo4hbq>RoZ#lS#)o:IqpB[:h_+o^1iK2Y-S=59+)KSR'7,[m %)_kqH0RbI"N&0t>%[r3'k1E[IkfM%o=7[8m(H^K-\[b/A4U(Fd1Cli8pk;]HgIUck1Ja$cA/>Wo`Q7Sl+i1To4:Tb17!+"6PNTeqADkl\=" %mL %aO0r!/^tVq#(tJD+k.@t/])6b;Q-iN#9.MVET5iA%5l.+QE`Xi+k/JnX";#NAbL/.8MKVBJQ\Bt]cUhhN3`j*cR"8_!TP'u %F!s5d&MWYR=JG>__Qk%B9%)n[n>EBj>4:pu1+doK;7UMMO%KiTg0igeL/I>#/rf;O-gZeA %Z#PHWC$$D-Hap4eK1@9%8c)hI5HW_U$u;d:D7uE!8bo4unMAjRefuiMLu/#0??)K9]I`0p`U?slZm%tgJZ6>m53pJ"+-$G@+l8SAoS7A33eNA_HN'kRDHaAs"$-OMuVU^`pl?L\F<9r:r*qUOu1 %cFR4W/n;3igt+i+7:@G-6YD9!Qt+p4ZN&*LPpu\I,i\rhHs=33`!1Pbn99Edk$YuF3.3OX&UhJ85$/;C$%8k'(C@B^&bh0?JN4QH %R@34S!HTrn13gYAJN457(fZpMc5!Z8)fr+b^`4"iNf2YW=QXMo`l<&7e:8[/K)s/(.LQhB#6U7ocFtEgK)s.-`)VoJBo0MK0ec*I %(s?@_PsSjg*^5'u0F%]G6O?;OMC:1U:uhLb!AF`\Q9u5hF"gu^i0ip7F.DL^,AlET70R`d?o_V3.1#'D^iDipPN]r*q"?!0K/q6P %To6.,'a/S3A/QDZL!5]MO.:2'%OE:^-@A&9_aIZa?m`L=_&Nkd7[$%`!p3krr;aGs&BqtPAOOj!;(r5BQ4^6,7DTrP-CSQkFgMVN %#Seqnh<$$7Z,01DUb^/B=1Z["\nq4SmJ>k/aBfhk)UW?_icS3en*<8j*b[C%al7CPrSmUQV@`$oik^c2cR3I4-5n>dRlUD)LKDo]YP4QT>3@'g[CY.>=FF3XL[T6;3kk:M92\4a$gk?^E<"[OFd5>P+ %m8IJ9qtQJ\a(;*s3*\(bO)+)/n@2a$*g`E>$cD%5-$#[QMZAsY)ZlOF?2$lX%\#B&mR4Sr`^8`_<&Q(YpB'=VgVZ'44HmZSjJZU! %^-P2r:Fmom3'0dB\(i6J?7#pC!a;!o4nC?f=R@^,,_Ek_4jT(%C2\s,Tib?`MCQL(@+Bmic?^A$7NZsbdN.;7*3AiL %]#KEgYh@=$_ImhA[("ib4r9Cb((l%^C#=G5H*j/LD_-u&Hg`g=`RgXl=/&D&/od.XDfb7?G]-]'CZKJ]ct[Gne*G*-b/d>h*q.7r %*W=)4knh6m*`B2rR7Y6CkiGjg='bdk>:hUV=2sc\4iht@ZXJK5a?-MhpcF^s=].BnnYBP\$j0G?K %p,Sc/J&\gh'+N_WZ2B/#[umG]Z)-DX<$r<'VHam %ZdZVFh1EY^j#KZde/gQ"PgdT1PooLmMV\BG>E0"ApS&'A<jbGWg)t3"?`hprdJX,sSr'YUU,-WehI^H!V5n7_g=Nd1d6pJ5Y\!k&N2jN1@f6:@C7gMm`)O&)9 %S%>"-X@*Q2[LCFA@#a/3s%@S`LIL:f_2"Hd=Run,/I%Vsmh[^P`NUUh,c.O)lV7#`6u0GT:CDp'&Lud,MZF>HmM@+`%jdq\XhBWa %pn>VGU"KJ*'j?Ufk-mbN+Ua"$Tag_(d3E_Zl%ON/.&ubjR.stO66H3FZW]E;LS_moc3JdmE,H)-R>F6d63rS!qen>`&]."_CQ1_K %1ahY^?>OC1q_YF?d=\`-oT0H'oN(BoK@/G(K7rGN*c>Uu4sH,BLd'.kAYeNZh+87=ef+D?^C08;ggk.m$nOdY&u+&m^q`8N+X,j@ %$53fpT7gmMF$C9]BhsSJo?'?co[.+N(*X7q0c/%"1q!F=0YhIME3(6(ikd/GmMDK=/dPh6Knm2-#T$Yn76AGA:KUFcc"8,VJ2b]c %E<[2Q%s[.*4Sps;DGqd5`ao&;*P_!L@:<4"iZkbG3+/XC'TReN`aS4Y?N$S#)s$t0+/.BZ=SCk*f/T6Y;GLCkA %V17C\Q-FR60RN!q?VA-qDmKpULX.Sm)I5nsCYI$,+lcnHf_`UA?96gThTrEm6YL>i4)H:jX\qhQQgnKoUW:LHGh&PFXF+\[OLI'; %pRY)N*CgD4QP*rBN*amFq?<*h]3cuJmTpBMHMd1g`W);3`TLn#qdR;j>moBb6MBquTrD=IBR.+F# %oYBa*V;J9hp:'4H7]tTTk2Y"BFk3K7:3X4bL?Ls.eWZEa5!ec?-t@0u]:-<5eC&[k4nO5?D:![8F;IlPe-]MJFr?e:k2VfK %AT4p$_ts4>/[sF_SGArhc%D,gKoRqT!BGWkZSJNJmUGDFmQV0G:OCd?A)[4&g>mC21Z=g,iT[@"'KR!>5]5]84[[%cLmU0K'\@kjdR"lc/ %5Tf.jcXO1m=he(!Xl`iSlNNo#Y2s$Qj/DUUatV+P2AnqGc3:i214#8Nj'7ZiOO:C.+6S57ZAbAdqDage?6UHRK(C1]B:5d=MP.n! %oISJ3\J/%=cSBp=bN]e%FI^Or\qt %6m,7r;@uiearj8__0JurT!FKY]7Q5P13D+ijMH1AQ]^KtWOk^$bI<*c[-f-;0$?lpXh.]`3Fgp"<4)I,)G#-pk1'7onaQ=89ZB,JpqglbW#6mk/CO/6$3A!ODsNgTY&V]Vq84MdtJ]B5t`i;V*fI/JFfVr@!Y"cnQ#-S*YNh$r3D*e!ufFG %1+IuL'[?[ZA+l!FHo5n+\6nIQ6eZ?Y?G1W"U&R6Xd?B?I]9#ZA,UEtp/P@_@OH_lGj;*(8cp$V+fgF>')duO!,C@M#4N+@OSCtgJ %cdhniCUj#Z4O[m40";OLm!1rXJ)L=$H_3B>aIbCj66m$Co7l,0UQHT+9eKu$)qn%r(il>M/r"_MbBUdXpFI7>?.6QCMtuL9,2nsS %ZC<2XO:-JL\i_Rfn/RY>ZV7"U_B]Hp4j3Jc/k)&SZg=(DWXlP$*gq^`j'k?56"V!k4!C<:+L>J+-Rc>=A/7/;DP;bKefab#B2C\! %MAA>Q@6S!X\bHh@3&5k&]dok3:^H^_ng_O3%p!!TPr(EiBulPFT=;5\"BnqPI,7RZnNEq)n9J@J%3KusBIjAa=6?7_h6XNaH6NGA %i]&tPpA/IXE:[TJ2FF#W-#Y`DDn6m0cVCq_AnBQg)D_#NU@EBnW$,@;8a0BLR)qG$9]kcWpTf%@$iH@]<0obs"V7CaaH+;>6Z4:? %2UGRaDQIsN[Gh))0:fZJeC^qP!jn;n#lA\fFhO-q@1tH'R/#G-Pur<^O83 %?(ZYQOO=N14;hcKPgTS@/;_L %bfK`L/U-r:Q]r'@ooX#2-D^0IrjFHW3O-2:I/\Y@0N.u,IA2Z9n(VQ'38`cokSH2V73l0G3`I`2>gACmJZ"R9OI`#UQZ?*p2BFoC %o1Q,78/j,3F8+e7![]fRWfu,oUJSI\kW#01:LH)sThlXeT\"jsjot3Ae6K(3dP'HL,Q8i5n6RIV9#[YhLpJ,Kb&c6X7XXG1EnCk& %h^]YJ4=&[tGk0U2LIs+]SR%:fG3U"Z$[V@""blC&?dK2S!@up@HLgs[*TXFF@+SSbb1Gh'9"f"3=*7>B23Q;JjCn^.4IHpjT(U5u=GSGDAC %o?`U,s4eqW4p/;&k@cmeT[BOi[>E2=9TI.$',^e'+jef.,e#I\1"!f_M?!n:qq-<<=)CcS1JL=34#rLsB"hm,X&@!q1i%UgN-@IT`9C)PI=Jc7r^6gncU[(%.g6u28s-XpR %gb*4IZYYr0Y81Wt@`Ot)V7aD74o8m!=RLXA>aNFUF.Ht9?/u_lH%&HAncBGX %1jHR7jbV;*sp=.j\Og[[Z:nA?\-fUH?O/A9J3%P_+k'+$#i66beNnmN5_rR?Lkf$SoroT[4_? %#Vu$XW,r8)Jdf,UnJaT1d>j*Dh#qV=]Mh0akI%)]fim!d?WCt8Y"W-ml:UZ`p0`"dO_*q_gOi;GM;-c0iV%q5Hf0bciqA%6HdKYLmYF!0 %4[iqtm0U](N7EW(N4CEk$j=_hFXk`]IQFIZHOUPng\Br/9BRX %_@t]:Z-7(R$CqtWb?Sp00.%W:=lqIXH*&WflX7";H(?4oke&F@@EOXBIWhR\:1*k7hNah`WI]*&/+M-nb5tjEl-qs6n#CS8?__sL %\;/[XYG1Wkr-N^"H<1l58hN6Nj'=*K_uj_;;e_A>=%7M_E3H#-Y&JF6FK_G1Xq]E'HUQn"=cEWVq0f?Bo\%r1>IJ`ET7%YqUK<[\ %6Jm'$:*`\MZ>NcBZiZ(NEfZKtO]OKRY:TWh'/HfXd*T*tq=rZ2"^UYfA]'01T`uX)_GDPVlDD6@nbtI%FDe.ZA^X+I*!=6]\D6G %2rPpN;:,_)mb":Wq0qF*q]Une%":[78YdSZb1JA&s+-7*'3uPuEMRhOF)\="?m,^&:PP*#/)fg\PoX?dq()U;DY188iL-0Qma!4T %+k(ebg3l)R0g^Z99+Rra#rDL0"_Is%PJ<=E:PKsCdu;-+]MQ.!4=KXC]Y0fh_?YifqI@d>*]tQ.ek49'YI9e35E;ou'9-FtCHU`5 %gs!X"9k*u@L?_jO/!jW5IW_;03_rg[X9gR>A#"B0fDBDK)1L-lkc$A7Iss:>b,sXNkAJ'0Eud('OfQ[=R:bR4gS%+Q^_=^p(c_NR %Ofp[10O-eFoB-R]8MX0DDV*c"3fZQ2?*Wa5,=Yn[IFT(&Hb7__VJ*BD`-E0@9O^TomSE>j_Cus/C$_^A4.r%rPcFEOq1%^K[r@EBMj` %Y>*Q-cqM\/+>@_Frh^=@VuB1Ypjt2lAL8;DU3,b;C*eF]1lj,X7<-ulkOBAQRJ@!AB-Ud6LK,1 %I+nnp^;+2uUXMC^K&Y;;FPL0f:jfDRXo.ZP4>s\-^DG1W'V)bBpTGn0^b]j]D_S7!a6M3[NlE16`a]NCeeE6Y4-AO;5C[S4gY&2> %n\&q.Gp8:qjJ6P3Bjd)uCh"98Ye#X`:s:^0a,oZ)k3gd;G]dh>+@#no)']Z]laeo&V^WR0,B@r$(\BujGGa`@eQE_$uL %hf>k7]'k;ME/WCbs23JS#3o;DIC>_aB1g\k^1aU=Q4jq!nP]9=EI!PMe+%>:h(M3N(WoT*='p6ZejjS0g"";PXGrKKo)saB6$Mgh %3]=`ed&o\;rQbAIG5ZDBpnM,/r2!71NP&m1E-XoSc$X"sbPRMn]q$"=_H-E8"O\j@5DE`G!k`o">#LH:W,QTL:#u0KP(I,&8BM7u %hWb(fa%#dm51R`pT4TG;[`Pi0'H/op&m`b9X %O.OHj`!(EjR=pCckX3>4+\4mh&/Y!:kigla+ti)A[H;O(G$ND#h?4m9"E?`R)H;P?0'ETL)Eka]j+N4Qft$ZoHB5[=L)iIt4W9LO+i %hM!'a?>GniZ8N+4I:AT/*\@fWR-#5[^u.03D\?LJke$m*5%5AAiE04u8(-KU8coWnM7\QEKZZ\$2[TO.qHX(eBY`Q:!/-_[!B&f`kd^EnAj3Q@.8>XK(jKf0"M0u4"3_C$"A45e>+39-YRfA&sIpCS=nhtb=i8+EeS06+n8kfXj/a&hlEE'p!=X',R$b" %61dj:S.t&Upqe?]8IF1r\ri*h,io0Vdo(3anG`sdiohpZapEB=(D;m_Un$@fG>qmHOH^D8c\o`;+=S[oB+h$f"\C^?h"*-U.7hSf %iXS&L8O66L&=jWZ8O66L0S%Lk+t6(*#q@DM"m;OjWrW7(/ZWZ&9fOqB-O-hJP(abF"UpDm8l9+'mDL-k^@>_<)s+2If$'f#Y_S0H %<1-#tH8!UN:P7ae?7/YWmW'-]n4]\kgmnk4kI5I_Spotpo@pAr)]sYnOb)IT3=H<)R'H3l!P/dg_SGY=bmupI#WW;%MeVWIE$m@o %N0k[t"2ibkn0b`pIoBAP"set<"S[^"L;XoG*qOp#Jp%d^jY/C8-cQa5$S,\\BU#+4P`Zl\jnj#b?60SDJr>0\T,%LCUqd)UMX3.Mm=h1ZOIo]_N0"Tf&DsZqqRMbqI;+dg*rQf\m:E`$[Y8S(F*4>#C&=SpN!!\8n_k0lA$VV?+Rol3^dnoQWk=AC>.4f %`M/[T46bj2T3E7V^PgY0JshbjIM]'>L#8/hr@[q,\(rZP!lERX64Z/47pU#?XNgXR>teGGfC*0i]:P]L.Jqq'%I&)A\m:39iHK:= %q.p]G4^l!pL>4guXA2&-KhV)X,kDFGPdqdd8EMe=&db^U?uu1dcK7Osm8I!AK1UaiRJUJ+6i5*L'WPQOaNp)4X!5nS7AU>,8^KY2 %2F4o^nQk_o$'ks4-f+K%qO$lq&OZHZD-=0;I7c>J`Uglbnh-Yhp._ChUO`'sM,_TKAMUT$E8cUp.uDV:F%7roBHQT%9aVZhcorZ\ %8J`p^g@aZE,p2Rb$R$TJMAh=ZiOLJpP>:Ai?H4>)qi^hATChc2RR`uX2^,Op#pT,7AD0"+L\#$4r*1XjhtW#'j.Yp.3?jmHLK7"h %4`VSsf')3r25K6f-,F2K>mQ-n%370^*9#I5Z(WCsOX&&O%R5'R0QMi339SXcA%gH#CgX>@YBS8mZD6:>H266e5pB#G.B;_P,glf. %]O0aF+H\"4?nP%=%$E,%Z4V,V*1;Q1Z)XRj7J;\3&)a=)'mVPYkbp6W;I5^87EDcDq0I&S/T*YDog)X0u^=uf02Dj/K,96JV.Ps+h:'f %o@jqA_]"p_PEQ`EgY8l]iYuuc&``MRa^P!)^%(oN:[BI#e^B:Pg!BKCG5QAXd.:dZ3af1)^TnbG.``^Rb"3nhTA":!V&(`))ih]haVq$R9?92o`C1F3hCg3mlC54c^(uG2Ssl=)H'MADSGeS %>L7_<>ANGds"6Q6o+JWl*ZErED.(!8^YH_BT6#1e*r/[rlJ]/+j+"FkpU^Ps;7l`t3DY5tVsC&6Ktu<(:"P"(M"$s1XE6VX;%0P"&uOt4qoN0Y??j'<6_6]tF*)@/QLWDeH:A-mQ`hd+Y%LV$+t_io %^Pg@gHcS]T`[e77Ldp!K"Ar,T"ag'%RuB=3M/[Q"5"9`u]&&gJ)Jp@q6KIISVX"EQ?-&`*Ockf2A\:]Y4fcOq8f@*OI:@1Yb;2"/ %+`GKQ(1lrrLu"?a[O;TAO$X;o`tEPBZ$r*km"*m=;N4:,QB,C#Q%T`rfQei3p)HW9]?NYmhs0kA+VB(ho+M%Y5)?nURPl_(7lW[, %]0Lu78OVn_fcD>J:Ej7D;10U7&eTJJ.cPZW\m6:s8HO]2GZWU\]u%s%,_7qF#[b(:ZI-!/T1+'GUVai+s;!>HkROh\'q;4<-fA_&*1a%*k05H7pCY!!Iq\AaPQ+X.hf#2%aI/!+?X3I?`ms=9Lqj#R4oLh_4O(Masou;?TXSZ\&XNC!>ubE!!Iq\"lCWYgU\HnTb[EMA)[GZXtR!8k14NKd2gLhHn#5YQ7dU3P9^lTW,cn$:V'Ls[A7.<+*q*ogWnFQ#e_`/=h4*' %=$QR_Mi?G3iXnc&_eiPmU?\l7bMDW8FL9ohrdkC*Vkm]\?#5#d8h/KVQbb8O9.EJSbM\]8,o,Jn=@AF&cGN1&kcp;e/Z25k[(6O` %/MH0sH;BI&=*r!LZ]4<]+ZD:*EkUa./lg&D^Sa\^M.1I,3I\(-gs%YjFg+kn\j_+RH;j)D%^%;%X4L_N`$'Wed+Gng9-!Nc%@%K] %6iO_ASpk-C*6''`,:&pST"#&]`kQfmKc@nl]f1DhGX'\$g^ePo+2XY!\)0+/Mn/`1@5S4-#eWA;,p!-B@#E*[LH)qMN5^:XC]&D_ %/#Q][nLDk_-knARpO8>^$nE3?^PL%:S)]\p4^b4e %q,T/0hDHZRX6BCddrHs/KecgJI&tGP@K0!&9M>K)1"ABA)2=uS'"&.c,0X.:7ju8%;`@Rp0^F]62'.:8i#LiJbe %g\G.#5$^C3oLo-F+#9mSY%5h4/VCJ#gG5Vg)!l^*PuYS\]6btc[GcLNa^9s3T<"%h:R+iNS+s@^bUdGkCAX!'7ZPn=kl47+i]l\p %_qQ7mm#lNLFgR71^J;h2C,oRMs7Zp"h0oqV@X8BuFpmdcM[ViWPGT&p:es=*c6sRLI!ZaQYYHe-NmH9tX-FRpC#6"Q5Z2=#>QT*F %>\nO=eOWGJOad1BBu=P#JW`k=47Kp/cUS^MXV;k %*YlR'<-2224">tb*o=M:f6KBPQh((*R<3U5d5q0^@].\WZbPjK?L,hQ:)=cUUKD1,m.$QP1K\;i+5,oB %@hg'nqo_b7b>/)\:A87rF'*)'f]cB$b^5=<;uS:.q8d0=.B:iZRsduRW;N3jcFiC-Augj53Wi`JpPAau)>Yu%k*`GrL@pJS4Z'NuqSMsC36GY&]Bo6_&moTCJnqX=pS+'^1OU&%#FY1'h++"m&!6BnE4r1h0u&h0i!9PBJ&eV?SWU.1+,P<>,m %KBg@I53&%^P:]PHmG`f!<44cC/?VNVMj)6A8A@QNlGJr!r[nma+8j"+gtbV9:(@jmU.?C!Y&p4#mJ;248u`p\D"0u8lJ"SsSUF:Z %;<$dXM[%^U4&aap5hCX>,hRllU;'@3]?O)F9:p^q=^g<],Ee&lqLs/^,-#PnE"jlHQXjp"\;:jEY7J%1R?+dZSa/V!6V8q.<$2*P %32%f8eX)"VNiPYea<%t3Rq8EE%<++GCV_=\\ %U]S,7_MNsHWA&K4%&j6-Mbml69.HZ(S:TA1+s8Lctd4d9(,Op\#Q-RQ+6 %,o'em5*T1-OpXs6?_j0D/eo4/*l/a==qZuJ(:^.AqH^sp"YQeD-hR$D;F+1'nb;%H;Qk%b)kF1*W9dso+>DWO"Gp)Mm=bcURLA@*!\#7f4h+J@j5u@t/buU"/r"3kBKXk'^@g)PYVYHL1iO1k/A:Kpu6n.k.2YRrbt%$F<)VO27[HedTb0#>6X %s#9DF$^DUSBV0^uQ[e]^a\HACSY`aNB+\f*hsWnZLubb5JC^[n\4W`ui_h%N%skrDoXGOA\>#P:Z,nCWod";iq99jWpq:#Pd"kO;'J`:cQ)8R2"@V)EUDBVm[_O)o!jI^)+MouPYd+;HBiN,O*b=(dKoqUMaMrf=,C;$eh:HU[FS %(''\qi*X;38Auu=.`(^Fc7ULOq5=ErYQaW*b=h0ahmad8o*P&hUg=q@ULXrIeUorI7o,D^Dqm4CUEt)s^;b1:G@0$AjbB[mHE(:'eaR*AV5,r/O/kks[PB\BXD>"A>/1p0[YKCJHMXci\sohmMZ2>VR*L%b %gW!0+2s*2`Z3T1mA"ar4I1_iND#@I?rXH&cd!b9,8R*:X3@d5i7Q7jV46X=NmlPeT_rWt+#D=IX!o5M)-qfa64qr,&b'RMFN8Y<%LH[.6V-G>@U*IVX?A8cAN;b<7t23Ca]9ML%*A$5s2#6fW3ur[oj@F-LL$uZo-!uG2]e>)UgW/'D&]"`#Q2Y] %<'&]B?ph=KF^kU48,og`\iH6#:E##c,of'/"Or5'1pCBBjst_#4fNEN8M:p>c:3dl3Ju\K3'PhOb6lgc)om^P#=$1g)lIHdr#,6i %d5'W8Bhb`jeD9Q@P2"oUhI]*P^har7)#Wo$ir1;:e_gtN)sVp0/'Z6_cR)'km`_,!frka[N %c"DK?+i6(.WU375oaiF;V>3f%#O)`-1nP'[E*%7]\-WCdE)sKST[blkD3g`;n-@8aLKA]`(t8ir %J(1P$T/>FkG*_%P!o,iufKhJ](fYN3\.s-Qkcu6($e^X=U_A30V6rdEThFP0sjOFX<_0Wg/95qjWV/W:c:!76dk<"9Lk2&qEEMGBCG? %:![#GkpF-ok@8)>EM95Ad9Ba=e=i_Oq(^au@r@W4Jo;;S%:-qK;?`p&frV9Yf@\6o_M]PVOt07hWem%ULDG*0;DuqNpX!Ys;lV0J %qArh1JZ!=YV=1+3S.]ZPX[`ohojrYoGX"KQmUj6nn]C'K-03)Lo\m*3JL@:It/P"-Wd!t%Rd([)br$-\I/$^\nqt,MX)&6L8E<5FN7F:14!8= %k=2:WrP$^]j`HY*4'.!e^qq#CC10P??pWqtAmtKS=QV=CI.M@B0`LX3lMN^-_cqbhkIjS$#mN\:>8:k[r:k9S`CQ.97DM %pVV4'rqFk(_IL"(l)1a!>(Q9Jj%0U?ZNQD,6>Q@bSZVis_JasV,X<:G:$+L4[SOj7TR[!D*H/[S_.AumoG/K)`n#j/I4oF=jWVbHaq3-H`9VTC\cECBYeZ=:A3"^WidUZnVrWZQ6>a9/TUHhYi=]s>3+gYTf#NRi@M"`)Q4p! %+[Jmg9+\dkZ`:9(Fp[<12KkJd/Gursa3io,B-G7WlY,hYZQRp9EeoXjca'@r>TGC[I[98$:%=5mQ"K'Wrl4?obsljN[#;cplC/;; %IQ_u[SKHR_Z>:%9n?-N*U["a"U.+S"&c12Vjo"kuj^%`a/[4dDU9q7J4p(cV"t'0Vd=8$+Z,G?]N[8kobAc=[(($nWf#mK5\'[on %o\I2Qs/Kb7elP(-GZJQGl^'%>n7O3G&>CajT&I?HAfo>XEg\S>CC_6$Db@T(o] %4!1^fk&[N;/(ousSGOdO0,[.OjDeXR$KRo:cEr\gYe5TP]3QuYRIh'mljA""PQTKiWhe?1\^sp1GXq6$i15bWZLG$C6_V<5\=]>b %i:2i"qkKLDPS%^.GhR]uaG-kr&719l:c=9OgTi;e#8\6S:qK1Ce?+MHdjg*IRcoXF$,aK.6aR`G6=h %B&gN>R6s!q6YX&M/&/ks%/MY,7bPDF7,AaT(J(,@C %l`&!?,PrKK7j%[j5O9BAGJ64W/S7pS&..*#"1Wj[e3A'IqhL*]T$pPaAtuT9n*2\+Ucs %P>uRU)9-alK,cu'8#s/KkNlA`a(jMSUX&#gZ&if5#0/snc'j60\K,eaH"ZSr76iW^o_,B)/"9`dZZk+1ep"LCYnoc06Kl%#kuspY %BsBr#[ZjfN;fmB"%*(e@=?*4HV=`loqHmRd?X=fpYE*_4R[)K;&2K3'U5aEe:\":-].Y>8MORL@3Ud&QKfRf_+&C[[\.NG$T'OJb %QU9#R=L%f&"f.!\#,]0Q$'d!fQ8".>+86"3UrY5&S":H'FX#?PqiEI'PL3,_GP?3D$]1!2f09!GBe^765OhIIO)?>\lT;,2r':t> %.6Q,s$NNaPVskhX)[MVr:Z:F'DQ]#t*?ph>l1peh1If6VM3S\1kB)Nq)2W+ja`N?sSPiEC:\M_4<&7=I6R5&Zo40mM^f=d2Gp79b %i#QWYO,2:/&k!LrLt!TrShD6M,5SjG0HLh*6R7I=*YGA=UsVpg*msrJQV?ZVOZGmTV%hW.,'A^9D#Z41,/4\+n*bVO %:+H#9(rl\^S3KJe9BoP-qG&L`6n;8F-WU/4K;X_KVC5ZJk]uHjH?F)$g;d%QS92:i[U+,09&7bScVWtc"kgbE2XnQd"NQd6.ZPs)_g4-sL4R('a4Bj8/G.d%-!MI^o2fi:KE=!W,u %:?3B[G.\aVLh(^YdsUKGUCpYc>IlAop(k7,eDUk.+"_re`fH[efBPVj;J4gdG2S#i^\K#FV`?0CO(Zce'Gc`S[SHo1s9$DPuOcm %0PSDR@[>^4_sVR02MRe8X"t,Tcamfc3mdn!pJhkoI`N142,6=k,K&'?@U#]7H'mHqP>q,rs7h8>0BL7#fJtkieGGs8]&dsFEY!Z] %>ZV'a)su4/Y1`KdGW>lLiWM:pjs!A=Yb%879i^ASakIirLE6Y*Z]"K%qVntIV3P.4raSWe6*IXEd2))2PZe"_RB4^[XS@I!kjhk)990-f\rF0YkI^3X&N'tm9?0WF^.uq^qr'],VGEm+.R!FT\ %q]q=A>+u%rE'(kt)t/>g&.)._4Ab5X29rfpNqY\r38'Yrh8gb`9!mME[LJCD8:b"7.l&>&1V-RZU/[Wp;]oc'6Qi4Zj1S %d^%OHAC4C=UV`UGB2DrQ=dOc&].b"RGYYodr48i@%$t.!GKp)qokAc?4?;V^]clOBPhYqG^GHImA"N`M-t2/\I-]nVAua1*o9^'H %\=C%?`G.m`g#d:,CP-8^3uYJt:Y3(teX$1i\2'B(1YBA[kXMkaTUP:L:sITMqO%3ik)Ji10AcR,mCr*ZFO:%nM,@%h#nNfT4LKD]0BNf5#_.7M6m0NXi"!>,>`h6@k5 %U4K.&1nriebo)i8+C;m;>m.BR?P5=W=Lpko_TY(F/01mu2Ef:qehEe+l$Mp=q[dKlqqkug:3g#mHRmlOBt(RKK/f#6j,6&*/&]XI %K!)2PIZW8%As)LRImBlMblRJFMtFXVBl2fZ;%R$,ITP^C9r*TbgIf,a>.30VATZd72Pb'b,r]`e\Kh'78d`7#2l'f(9thMsojE+] %dkqe,br;]2i(*/TT[h7dhW_q_L'_;NS[Of@5"pbq$d)MM!2Q6,bY=n*0u<5`oqT%5Gp<4"VOqZ[N",$\5!_CZf;\2\WQ5:9[#(L7 %_5Fs\/'Uj9*I78SpsApq-ddq:L[I3!>s:)0S;?[nq=10SBs`.]Sf]&CT-/ILr3gLI!DQ&TCHlV$o[[O(NTQ#P"AbUrdWX#kVto9h %/)/)14?jUMT6^:sN&r\a+!6pn1ei5ar1F^DP7Po6?1g4'IWLh_,L$bU>X^?XjVZbsl:CTDq8#g3,G=j8o.Y&E5<^ng,B"G7\,eh$ %n/dL$I`k]FJf*>AQG"A#Wqe5fH:nfpc#Y[KgHN5A&n$ %df:7D!l6>?Q!-asYK$G61@pP<6L':;1I2QqKK$T'QjJ?M+ass^O-q\_H0>O-1!(/EKFlI1;dq)t#[sct4.f-%O3*j*b^t&CO^cf0 %1-cD=Kbf6`JhoD:Cq@Ft0Nlb"@FI*6H,S?W/@-Hb`#Yu'bq!Ci^^9X=JL0([>fNjC&+,/ZLD6R9G[oZeJ[,&%>7nH!?j^#-2T`F'HiND>G6GR>.^n8!bHR];<\Y %$0N;%1HRXV,Y&-I'0So(?&fK"q6_KACQ:+IkHQ+%=%DK8hHLhPbRkb37kOb&,tA7(_*"GY&;`.(p37AgU-bJEj,>_5*ooc[+Dh'd"CX8/Ed;tKjoQ42;rU%0j;<&l]VY!EDK=GnT&OEB-U+0sd/roRTCeLcFAnNG)%f@0 %H:hZD@1>uaAK1)s;Mi8=/:qjha064"=[HKUUga''/ose_]7f(9bG:?M*$=UAIrWtnfsc9F\D+.F %>[ORh']3[4l+h1.8oNRniC?I3F/?O%+`gVH:2]n2>q_]qS_Wjog1A0Cd`H@O#oF8*$AIX![cOA^N;&Xn-CrraM'0f9cYGTs,lTm1 %e24MJh"0UHn:PNfhju2SL7d$M`j+^KNT#Yq(QtAfms9kFi?sFY#UCe8&$O!`p,olW.Te(imf&V-Lg>HEa/L;T>IGf$1Cj>=1?mo4ia-A[i(^o2t/pHIfJWDESb\$a(j*aRDRhP %jMp[f]:X?A4OGNVGVT-CZ]]CUP8hD8I6ZlBo/*uQVqL=fmC1UI>1\0D8iI-qj?LR^;8;0CpT1"\XB27C7/W-4.$(3=Apqo3j>Tn$ %I_\][`1KFe-Q8\5QI%%TBsq[%4d_?cdkd/cd\T(ean?*&u^r@&_Oo-0X/-Ulsm<+F);qa-EIQ0hSSO4]MRJrPZfP5.6[qNiB%XW2L>P7^m5_n&^h;6CZ^f-&D1u#qr<3oCOc:'"Z-(g/R00PsG(SSL\]Ve;m(oOA/aS %R>_V"C6V8E'6?SPq[Vs'!;AkWJB@9oMc,_Uut@sMh-@bpCkY`r*RDa,\es/V+M";4]d5akZSPN-Gmj&'$f>m+tPnm %R>_V"LS,B>_rRTL"Eqa`goX,LV0kU``6a98k^j]+T4CVocAna?_&C;qji9*+LZcUt%Bbcn4NKS*'IZq&Nieh]T(b-Zl-ZsmpW:0]LW*K0_oC?i'e9oA#03i %"n6IURl,eq#4V,"jVP`0b8^K))u&KSo*O=eo>[1"GlPIinbLW=<_TKCPsisEX;7,F^D2bjJA0aF[dpNT8Imq:4=)kY@))LB-eBmdL>HV-79T?P"s6$,"KXYf,bL?$Z?53;4H %SkV$u3gr-S`ZnQ?1cMmYBFH!YA]ds,jImaru`m8e,*,5iib %@&Eq?l1D1elj0](3e:#$^4g&PMG0L1RZ'`%EjD&]35c<>kDofPBsifEd:Y=oYYAZ"01o\3mK("/R+h>,8OuPqmqAi/<\@_I!-@[@ %F94T+Gs)%cKZUm]M[SmSF7)E_8KH:(1_*_OoQrXbjkOS4g:8uqTj$[:,Nkc15%XmB&=[=Grdanp7!CU88J %nt\4kCsf[SGBuUpBsI[75]/M93)8&Ic8JEeEkB*#L8;b-5<#+&[knTPd`LjQ\mo\V3*tgEF7<29mfEk%T8^8j!1SKGf#e1RVJ.bqnjdcG0-BhCL:1HfXSHn9\]lA#c\r863TnpUbC<8NlZp=5ahjBtNutJ"Zm07`Xd-*8)DG$q.q9Mim`5nr\TRIK %^puDV:=5:%mDf&>]Elk3#N;e]/U._h.cp(gCIN%B6#tV=mQeNU2er`/rqXn]/Cr6k&Dol?W]m;hQN!68F.;=&C6g=Q<%8(/l9N&J %2`o>`-0@fGuYLmMjG+G2RT!QYg4h]h0b=fd@^%3.\s>.L@:Ln@JmcQ?E46-",P^#Cb!).NZ*g*QQp09MFc8u9h[jUS_?^89ShfN^<@=d=--6[hV8IPIQGUgC*odZZC %,r>&&\(RlSl)WI`o/8CKLPZ/3a)k>8No0*?ZBVNIFHN#]7h@s%+3PVl+mqE!u?]aPML4D?uUh)\'X@aL_3#HE)7(;aaR+#qoqX! %"epe(PL*b$$.3g#.UaHG3+%<0qp@b&D##diL`YEPrX2p-glE)B([Sp+JEV"BTs&kN6jpnjW$[lHd*.sLJo=WM"$2`h(Rrfo]W0Ge;kAGH*B?)JER/BQ*qq4.V37N`H@!r'tbZ86RZ`8;Y=c_VBi=Yb,2.l %N_?UYj^Do[p3`oWf?f\WfMn<1:(b'Q*JHqj[oA#\[[&MVD9po`mb"7\Q0m8V]$rCA7S'M,'^bim77E`\1sp6fSGc.VM/4cMNMO]4 %IYt8O2NfOoNHeisf`kL1R`Cr2b#[UP3q$t!X)-<[YGKI/^<3mOMq9'AcSlBdol7,(>Wpj, %-,Ot-SVD]u8t&'rK8(NQ/]E205lQpM\Lm%MhXk.1`gYR`>&).#TA)p_V+:E6).9id= %RO,FFZZ)e;Pi5eM0sq$\5;MaoQMRKQ'SbO-d?4=]Ej2<%-.+16eF4EDNW=-]L$>KZI?ic](UFuoc\X-_oi.#$]6Z#Tl+AW>GpTk< %qYDEaqqV;d2Kri$4FO!^B%A7"J$W6[4>4_8pYa^H$<$']DAN1oE<6&W&SYc)O8lC?\J/,=LN`d9Op0XhM]R/- %G<%ZHJY2L4J.\\Jcsh:bB&OH=[m^7'l5)oY,foCGkhl:haN=3l%Q7NW+6ql*s&Ql/?Dn]*,n'_krQr[8(]61H518BnBqp*#V)U]0I=+_"&M2/p2Ql(MnD;SO5ShK:(j`pK#KRnFA$C^"TcG5EEs7,2bRO=7km@K9PgUAL`)=:09s=ifUt22M %>*.#L,dmp-2L,Lm`XsY:h+SYS*CXu0(DAjiC.pVLEsMOKG<%aZh3/kG6MRs"E]<7otMdefQj.5u/Pr5p]$ %EOsq7Zq=R>Zi3Re=)JW;0pgsqodP@ZTqG>`]SBN[]48nj'uK5`Br]&nN=+[;!Q5p/^Hb`J-dcKUYJf]TD*^('3M]Bk960D]&XXa0*K[@jK.7`rj`gq;"Z\)E^l6s %e9L#LKiB4:M\aWjUl[':D@tH0`\AiA-rfq!UebreJ3Vu/Thbf2?D2c6KgZ>qU+CDP*!s&aK2(E/tp]Tl[Q!p9QV@uL8 %W0g5V?nTQ^a[&N8oXD+/ObtcYS`MfB;S)dsU,q\$aiEm;Ma1kdoD)*:Z4^F<$TZSa2cET\@d%7)h5.8Ma6uW9)h!J6L?A'NFZRJ` %T`[[8,4G<7D:*3I0ZiFj7Fts%.K/a4Z.DgCotHFi %V@ZJ8Y8E6VFU4r.L-o#C]chuR?UIm8K,q4W %NkQ")O62.JKA8erX9`s68_q^%Y4['-8q5oZp;:PI*aVodCZpdZI-9HjTr2YO='c?_a4m[GX_\1Y-Tbmb-$FHfIXEq)oc$Oe3I0@\ %V%?g:^Pjich8cd0fV5FV6:X8R\^SV/T5I/$?D0g2H1K=+$"`k-HVjIY\:^hs86:T;Bhk %7FP=SY).Z?&li;D3M2!QL##:\#XWLC<@Z@7f2CVif8Q\Hd%*CkKVq.UB\aZ(TkQ^oLO$V(j.2@U5rk"`BfX`k:&bJ^6R'>7rV7q/r;:6H %QHta2n7Sr0jQn>_.FLb5GhGNS`ZL,k*!6BW,:#!?UeSSq5!HgjYE0r&I?M`b]C$\^n %2>M:.kFlT6FQqC?.2.j%H?#0uffs.XkngN#;C@4oQ@A(9T/jT=PQehtXkZ(NU>2,lk"HsZ'p5)E(k/;L_aH=_8fAEV(<5+C7bA/D %_Glb3XYkX&jK+SlC/gG9pgX1DiUqJs)m!A@/H*HN#5sd"9>B7[Sbu-qn@@M#-?C^9Z8T&a7gtdfL;A9:X&&G>Tg>D\./cL,Q&IqT %*j(Y%%WU$]U5ao#A+@>7;R(uUjp/JH-@\4Ul.L=gkn6iJ5T"8dIq"jL=*.Q`pQ'fdZ0Lg^i.%=e %`cCCH4S10[BJU@9QI+:e>eIE7E0?S.>E'd?FrdPXG*IW %ZCflB\/fJc,uN4,#[@ %'0X\[YfCG8)8sY8ms<,]r7\IZR$3AV>F>H!0GCiJEtMsD/^,btN)pCngc@IOoUP\Ch^*kbi\!&(GGP4QY/$suS\Q)6U#Vl]r%h)qk*\C(pdtEnXK*VL0<0Wa %0NujBc0@KS$R[#okP)03RPWD+P?6",Tt&fnT,slAS^QAcfcR;%'_Z[Y+BfV$^1n$iSu'#_r_UW+j&K<9ltl6Kan`4]T3d#)fa.7r %.J:()KTp&u1&WCGj!U>e[8L4MnDl`CQF86096/e>D5OElC\>OA+B_P$ZkWCEcae&K0!5!d%Qq#p76kEAR&k/Rr$#qU %,.,*IbqE`a2!hF[NR,d7hJHZONZk,'V,2#:K#g8bB66U&[t1e4EUl"APr$,Q3O+7.@Cm?"q7aPVPEA)P1]t]-DQu0e[N3jO/ %+mgk'\FPK!78;sbb=ap\9&R;Gr=/,a!XHE6!$$q=3HXH2uARs,CjULALorKZTtHIB*- %V;ic(SbCl3k?r@,(C?lpE8.3\Dru>Sn&oF^2O-L,pr&mNT5'0!$a,Ef58b(ChRVXDa1?1gS[&lG%k& %-@W\QB/H`-@#HmtN]""%r2],=jmJbj7W4`M^V&M`qk_"GVjm[[TDa?ODWgZDOt9lYN[H9Zl*'p90=?.P$'TnpB#!gR`cLu,Hft_S %L5[#XU2sfagUW9l7t',*!/kJZ`T*OX='0iE8oKS%8(]M+e52c/%(K7R;=X-Dk#T4WM2EZrbjds;G@@DH#\LiQNM!#q?hC[3s*jo5 %55QX^+T[O$At0F@retUc$g=IpdpJnR)`)3'4iOL*)n(Se>HJRQi1?epaBV"3.T?4Ji9Ze&e'b//SkAJN@De1(6^[$*#TKLVh5s64 %X4WO02?TNS))'s!$U-:DMrDeK=`EIg^o]R"g"&mH2"GIPPoQpW[ip/I)>tD`:OL\eb(nR0Fd0j`+uS&lP&HA=-1!$]q7n'4QQ2pa.W10HhDPBe.(-F(jHq)((#A %?RUH;GleS2$'F3T#EYi,D-Wh4=R/ql">Mlk$%HYp2B`+l<+/*TM'=Fn+Xk&)JGf'd7%JL(_Lte`0E3['_BVaQji/Ob**VKe,K(Se %c3Q9mSgmDNY/Q>X9Lu<;W5=4J-=hPi3E")[Sk90fTnRe9cf6qDrh`!+-X5S`Ob=&"DMaCHS1NIHd"ubj_TLQ]c)T&f]..t260OUNZqZh?TjI-c>6qd2I;0E@@*X]4'H-3p+6oa#4<@[dk=V+L.7])7r,aGod_C+DjI6mo>5KNgqmhD0,re"4cgX15#-=; %?S]o6G[o2hU2gbi^aZPLdSIc5:*tD(go(_S4`juG*=L[Ed&QQrD=j[DM"&*Od.i,SJc2`Y?q>*AS3\kGY3?*4.bs,T(CIk%U\gNt%Jp0%X)]AN\%q6/!ns(n2b3&72mY_KDj %eXc8?e@kj(]&%h*gg"W-d;Ir4I;.6UCu.'oj3qiQB`m21j.5GZo:o$Pjl/N3\3(_`r[%gnrm]j9)n.?.@e9!I.&m7"7A=e3g:Z`^ %@[S0`?(QL48)W@(g\a&r;&?tF6Q'OqegDb'DMKR8E8HFC:0BEC`eKARoF#Fm:jeCkIUUJ*]Sf.5qPO[1n%d*Q]`kRcl^)&79gB#'SOS7EuMnneB0C)t/IJq!SbOQN?R9U]B3I[MWdHQ$(]@][/*fAnHQbNll %PPt6!DYWuVkI.C1n6_?f>9fMQPN5Iif2e@#rXS'9_+X^'e8OF!r7nc`D9T^ieX(amMKfNthGt_/D!1ciDEOfQ7jc69c;T18.\4)]\s#>]X`pLGf-s/>a5H3)nIK Iof$&.*'nA8\CR'FG!jJ$k]Ul8HU,?J^P8uj` %LE*"UKe_^,*-0i`>TT2u,=0B_QB7k2#[rQMqLopN,AV=e-0AlYbVS;c %c^/T*8)j^r#W\V:5ASKj1ZXoBIXP9kl7?/`d5Buus/,XW%>1/q&9@obS0JSd.c8Z3jp8Sa,j%W/En"bM/96b9bc/,\-94R=k"LaS %>0[_93U`1N:W0ph1"p6]Q,J[\Tn41_f_t2%$Q3dAi6bjqnqUr5g,\ %dSZ&!-p5!1Du,VOPmV2/H%4G$IPJlh00!'O<^k);TTP %pY2M>7aPW$)]PPZ2)59\K545r#gFJ0S7=ZPM>i-:&epS!L8Pd6d!YrqBX)/gZekj3iBc(qM7Z<G!XV9C%!QCONpaiic!Dqp;4gW-BEVZk#HukC(us+'RsWINTVcJX*"?HhZVT_^MZ(h[`>0pHYd;@),8\]Z7-ji]YeZpAi"Lr2mcD %C!=:-eIF[ICFm&o0r&5,jAMJKBagmF[&u,fe(B?o,T;1'd#]cc$s%C)4%i3U3Vd_XEI;k9V__@^&VLI!V%a2nB+>U?qB^g\69ulJ %`*JV9X"&8NIBoKt`K%:8K?`"UqU2:Jd&>Wd#)]:= %ej_DOs7h8:;Tb&mZ#_HoeV1#k>J/aZgr!Lp"hg?V2jbdoPnE+"GL_t$U=1"[cY0T>Bc[mTPD9a;1aUn]ZqrrtB^\4BfJKi][su]> %?i'p8g$?+(h)iJs>7l_&59EGb2tH1Ai3#3j(>uY=O"\BlqaiH`aaQ/ZmMftYEC$$uMQ73l/X1a.IVO-emcpGoMZ7+8%o_W<1;9f,/[5Mr!$Y914H3gGVodM!7?a#?Q<(&i0r7"Sq1.QY(O,#,b3%THu,83o(2O^sm$`LD?#XV#1inQTce/3Z?H %&ea#rPAK26ObPZdX1#eG&LJ.t3@2?a3iYm7im$9>@jII5c*-a]?";/J_B/:d?/+>%M8\f6j>L2_'c#NE-u:^^'?r0DWUe'Z<+L*= %a<5'1-PIBE.Ej4SM7s?b;`(J1-A['2Z+Gi>0Ju:?l/gm4n2Hr[A2[U^'2A()kF81V?9)UAp"?gIVWc9IqZ5A%_\@L+q51@rLJO^ZZ&afr`A#')aP>Z(*l)N7O3#o*VA=fHOrD*?RP.Ym"07hP'1Q8[P6:g@rLYopCti)Ji%1b@6%3!]0Kc*;ufMR&RiNG/?b#U$L>e`[H'5C"X5g %.C0.AWX,@$CS,`Vcb$$GM0^8%'%D_3*CtALAJk5fANCt[1/O`(/a2>_Tc;:$Nt80$LXts7@0JOV*\ZIQWtdq-1a)Z9S/o+\gkLb+iq/mTA,I$CqS;qKL9q\aV%_S6r+0SrhEB&NaTEbu5I1'qJZ&)VY2^+#'B)$&/E-D1 %YlnICcMiBZ)Ht5rUsr@Jd`"774#P)?b8,/C]8\j4qY/0Hd2pVnhd(Rg0)7jS7'BA0_XGIUV %ooZuJR$i55FW#Op]\P;kk[C^i\l_V"eTdo6?Z3[qQu=d"[u>DOc0MC:*l/go)_4:kBE7,lAI'>R_:_2AOH7Q"_r'tEiPSYe6,Y\d %'YGp:$>h4:.U0DsbbWjkN`AYWIWu_Q(#1:&'Ce5okdEY@,R+hMoC>o]YpUn(EQLMbQ`lZL7nR\`%\ZdnilT(SR#(O50h-_NLeeq! %6q9I$aClW9nee-]LCYG5GTo=cN"K>K$q,J@*^8XnU)XnHH2-T@)==@>Q<@DNNr,cB*V->W=%5+uL1M.G-q63HL(f4-P^r7u@dZ@+ %6&]PXb_iXV)[o)pM@oCJ_djIPPk\W-4t)*>Po(5=IL\L/jQ_ %7Q`/4\o1H+MD;=?BltsfqU(=\@?1f`Z"QYHn1bZrLe#F9gTd_I`VauUkdX#8.d#[JZVRB[:b)](dSV`YLC^^RiJI?*4FBhr#u/>c %jl,6l&t4VP0e^O3`$b5acomd3bX(0"=k\>BJiO,7/C;JsM>3l/I)qA&-fU?\n<)_"-fV>G4AHh^?0AId;r36pS3#H8rh-mKq]_"b %fZ4"#fH'Gl4`u@`[=-HiD#Z!L5&rfAY/U#_kf$VU,eS]Wg%_\A6W[:VT6h*[7Q*&TE,at=-<=1/Y<#j6[1uoSn?]"?Zdh;;C&EOU %RkOFZW<^&j]EUQLIrc@3=;?/bn?PA]f8!I5C(j]ge83M)q%d2,!AH+Y76^iC2#rB#nuaX.^`TqXb7UIa56MRj2Fj]h4Zhnc.7,5m %j5>.lKrN1s5U*pZ@jVe[P_TdUU*O.4:tp4V_;?O %>%n`LD_hHm4KUgY5BNZOH2Ncb=DB%f]J\,Q_2id[C_#7BL"'-I\H@Ikhe4#SD_*>oX04:>8Zp*b8SXfjjeDC5Z!N\[feo`Vm51WQ %=E&F5UB>KqUp@IkY.QfVfB$NfhT)d_U[T/WKF9q%43B-Akd`.mIB0$S]J;tRG$LF7Gj[9`'FbBk:C;l.iDZH>OkpTR_tQCNNX-g' %00Va.BsL5*iuS.*U%*j_WX,;?Z2\,)Ri^XT*n1F$r_;Xn5Z8&mq4k';`hjN_o?Z)n>;n#%RV*A@JRhgIZ0Q+=Gr"b#H[KS"nYT8( %0__#Ka6<\I(6R01@oLS1P!e<\scHT&8.&jRW.GN'PEIq %+XXZdM6j[+Z060#f[RbhkU:HEg/BP3S38d<"NGO3RAgAA5.7k,l8sllB5d`H#I=M(P&Yo0cbq$qiXDro6>L+qd\;Q,\Zq=]oS`G. %3(n3%3pX*TC'prl5Vbf5hd`g(WZY[A+$*;'g<[uO"_74#DQ@d[GKYn_Z/c#q\r\X;\*17`6$*oC0==RCroebD_[Z!0`fcR4g2+t" %7],[a?d/21rt"g]2=?Md"16jSS2R\1YpTS,@&sf,)U,Gb?d"D%3icuF(0:rAFFVPQT&@4nTDfp3O'lA`*?O7`3p0&@rf+& %V(Zc06I01:du_9t^_ %Go%["&"dUXfAj3;1d00-jRu4Imelc'BSEcGIt-G)-?KB;7C3Vm7JXN@>D!M2.92`+EDiH_QKS!38f5jTbIEc-7[^lllm%4,g8Lq7 %eU.tn`gpl4mcc,),e_jQ0KV@E*!*84g<1!NhW"J,C.MJea.;Kq\VgC2Gt5S4^>D3UAuUD`fn0a@=`dm:rJ>GbI<7hRl:7,&P_fKF %8Di0ne93uB_KjqY1$k_,qRDSJ3JO(-d;@YfGB\+N7%(p`]@CWOK%?Dsrojs^'HYUrk&Yc".D0sX/U+[6WG,ss5(KR)M-D0KbQ0i= %dWYi`e.dH[JepuY&(WGC#[Z-`hSrK>`A<%"gDMt)f_kns>,s21KAE08/r3aLlt(YJ4"qk[%/-JOoCU3_47Hl6rd#XY*;FON,6,HB %l_gm;WH=JT@uF^XUtUunH4* %+_cWbTA;+86VbQ-F3uIec2h+dQ%N1C=CLTfh!6J+NR5E6K6OBr)@dt]rTpTj!PJ.6H8^gj>3LN8gW'[>s(Ie8*Y'FQS)`f\8q\B( %MX[40/=jahAJ*8Z&2'I.o8V)s@[2gj]T=k8,;7'r-E0.qdN;CM8Y@_XZ6p-Mi)M9!,VgOG=PMqR:=L;[&b7I'3>oS^ %V*h/tUp*:eSgALcPaGA.)@M0SF80jhTWYBRS0Ue!^9jJ0>mg\8m:4<c5.`dqAV,F?ndfK?*FlIs8b`\2Li=>JJmg'HXN:;sqZeG+:RFF2=M]$Z.c0u,E!ts!f01.'@fC\Y %$8V;M;MnS*a_$l3a5056o3c!kPr/(]\TqcM.7T;(=5qc4OZ+2_4c#eYl/cC[BCE&e_Ca!#5f->t*NA<8802G0QS#dc&,ha'/\7VVdpUQ32PfRe:@gL<@&Jd?`q]TT %K@R83__KkTKH8)a?5]OEa?#>a]J;bum5Tjn_aR+*"f+3$Qk_/Y)=FgR@TL!`AP8HEje8qI_jG %Jf8&`je(N/=;Z\pQ%+PO/A`M\W;JG;[+YSp?Z1,?FD^VF@<>#.O44-JcD_-0Y"5B+oHZcW:HqZZl>b[H1ip.qX5X"UJ,QisJA,o@ %*A$#@IqBhm/L):>_S]A-A#52e`H(P&mW=oW4C4kt*Hd2l:71@P9Q>c!K.QJT3S%]n5:1VHOjml$_M\U3dLop"f_2]"6CMQgf*a[1 %r?'rIke5"8>Qlc?4.Oq[bWo8Z764bO2+gA$?A01XWfJ.YGSL]AiqHq[N`Y1\_jGq1C:jn/(Nh'8kj^.%,'ReN"0(m=A)t3j!QYDf %n%[A0*6,$Q?j9rHg"6N<^"!hU7GIq6l]#C1QCE`.l:QCZQST=^Dl_O92/+6^%)G-"-q&D^T,LV'#OZ%LH[a099p0:(.O`i3m[>^@4AV_a5^'c9/EkUB[VFqO[s]ah#oML04r$YDlF#VGqnJn,X97nJE#irl(n)M>XJUX1c-B-oF;t %BXMRQX"R2*9C7#lG8EUoEHg!gQlT`srtNeV`gi-u]G^:"7Kl6*!33lb_#'HT_>&Rd(2>?"ZVsRp`jIdmoL6ua^DVq5fdQDc7IDS*D#q$n@qlg#S2m"XpZ19TT9In;LU33rN]!'gn %-]r;Y=]rRoFrj\M+F9JZ*3Cd5oJ2"Y#S`S_(1V1#E`6)U:F=FjN)g]hFE;<=E`6(*$"+_W,>_KG$Sr0XK>>VB6pcmPA7bT6@_Acn %=MoBN=WFOp5pQPR>V]GbWl+/#Z$9ARHC#'CR"IY4@3-s=Qp\o7>R'o8Z@Fq@'NQo9Ne`n=M*)Z[eC;R'd=i_5o$c9&'EZKETWg,D %SINe/TWlca@g-ob-nIJn_$9$E:fs_5F#C9`>$:,IH6AT-dE4d+=B7*\DiGajb2SR*%(*;_ECXG#Ks\.)$Zh+Z@QH#4&4;`q;d!8= %\-l;+9P%eoXEBmc@O`m$,95-u&Q;h82Kf=")6q@m4Y6'*5l"gh8e[.[[pCNLVU/>bY?+=2_Ci&"r2bjU=3?1rTV#]c9$-J6 %c#o&[;W]o,lS5m;ar/haLsblfREK3[i?dfTJt9JF2>DjFScge-_5DeKRQiX:>nA5%I.GF@nK!#*?(T,`V9ER3GY(d*8hmKgl)f.O]?1o7lk3LDp5."GZS[8UG7DYNd=A:-#;7RZ/eOK2R]jC>ep!B7cit"NuMNO %B3hhKDrC;`%^B %0a#NMQLNYk9pWS^JXOHTM!=&Y#4&OmM!:0"0c"7'n'n#<,p-X:IBoFT0g52j2&E;d^S'^u4sE^WOI0pC2"Y&t,GpsMN6s2e=A-Q! %rjFYC(GkL<2\jDQYtK#ZbU'l;W.="c\l;9ND5+VQ2%"'AW&`LDM!:ck"*]3[nCqEWUbk<>a4_@(\BW7,1[lWdF1<]:a)Ul:3^\=hF[MYlNV"\_@tBQ0-*"9$=[qWqCiZ9`pGok`p^;B@X!A-$FXC= %BB-qHO]ui6h^tD9?j)hTHLl9"F)AL,lJ%nBB(NIA)kV"PdVe:5)Xg@J@b;6h_h3N6]WPPkjDHC5bk1dpR;ZF(]7,r6o %H.U0V1,o&u2uVmrk)8]MSpe=r$R7c9%htYJAu,aumE=n@Gq(1I/qW`,.!7J<5;tQjMA\h?Q$T9#d?Ed>oCb.lCfijopS>o>Bs1e, %Fdm`IkO=ZGJ?ruYYdLr$&lJc;`=TC=X$ %Ji-60=olP5bdDt %8)W(N4FAZN@:>2r]TLqah6mQKQ-0s!kDa5Ilmt::jR+s.o1lWl?]6kA"LU#(Zf$rU,Jf1US>Dq1a&kHgjAlB(#Ob7L&AlHn>Yk,--Qq]/6p$*L3.kc)nLU.me:7&?)J`DZ0Hg]D? %)^,/G;M?j47hF@+eTeUNSe`j35=TFUbG5m&4^ZMdQiYYOIROngDeHCd*3E.1^X0L-riW1I\fC?+2gDk@\pUO-O%(AeD3+?qT]NHi %Hj,.(PXZ>1DpN?:cl3I1M\auY>AV-.,'T_-OW$_!F@h`N/r\E/V16^qJ>q0dcXQU%Q'JnI7\IZr"_[2=8(^2X>F"E#"i?J %;)(9r\=sQP/rio$0de"k%UAMPL*Z(Z,%ZSf.RZ+OAh$0T*[>Y6+l@#@GoE_)rF+5CccX`pfJYlM=\pTtDG4>iYF"mq4kDWsV"E[: %SH1htp8kMMl[%Y0.Dtui<[EJ7>&bN\r):HK(;[Cj?_P*#QM@?\&j,O(LSsE1=#p&'3o]Ccla %JIYWoGO_-S[Q]<>Mr3WR`>u^V4_t,3nq\T-UF+Ni(jg>k::Z2gi[7g^qQImt0;7 %hXWk`i<((!s2K+fbPL68CC^#P??Q$EJlo^uh#3GjkY5L(G&bF7.Ont+'[X38WhT-[W$PTX3#k^lKLJc-7+R_89DEXmIoTI0g#t.D %-&D1,;tTZZnEtmO@Z#V@$i'[W7".?HOX6l!NmP2(p83oFk0NGS\S].B7YBfW!O(pW[hiMLJl(UGpO=/lY\1T[.T[IXA4V %iGB+m`"]m?'R8,`"jTc/ZkN"e.Je=hE)Y)io/9@W:GOXnDd'/?5e;e$qKXO&L7t-)ZHPsEg5b(T`A5jB %2[r:_.W4iU32Q=hSuO0W*uHjb'22*IcV'sQCjoj9a"dufF?nR_7RWUq]$F#p3FpJc9KOst:NS:28n<2;O@0:b)N"G!jWJM,8==1Y51ib-gYd"iJ5L1#LR%><15L97SlE`5aI\'-W_sIk=r&j0/8a%WP9D]6DI\&QqKl]iunajsJ/O>>U %T4\XJTfW\KQkk8C"T!gl9T-\:e']8!nFOjI/U0AB3Mn[F,oP/U(t+$/(upu!_3!54j]SgIBq_(i0VelurM]L:JN[&(X.WEU9JlZ0 %;]2=mIUju=;\TRd>f2(8/KmH0SiOl"9QES;cSOg2i$Lk2cSL?`0GT[d9T*:L$i"5'r4Mo++a<[/P\#/2$g5QX*%d6g %0Tm\1?Kf%qMU'*p/+L/JFdp^oH9_%Tf)0nr(05j!'tJaqj@ugK&9YJ'qLZlS(:d4S\Sol4Hf.uZ[cfcGF`mCaPEYP2Nr"p_DN61* %oVICnHaZ+VNbS)f3^9$>kH,Zdd:@YS139o3(@Y0C4?-l$O7do9YM4(-J2mH'n(7>(6'GpM6YJO.V]2 %-aZG-ZZ&MgoRn"E'#Wp_$#*J&c"F$@eR_&TmFL2%/^jGGr'$OLfA`+5",:Rc#q\&Y#O-om^P1L;g4_iZ%fZj;']FETVU'sfcm#%, %JnE-o'3_4'=TNt_^k>9PBR6 %B>GT8r.GjMI$U5fM@_k*kHj*'*%?%b"nPl9>[/V_''nRnN\6X>JnAfPolmZ_kFK"pfAFQ!F,[,5GB[bXhSk)j'p#4tIht`h,Cp:b %>V&1""?,I/%;P3>)VEt#]o/`Y@-7cnFud-9g<@2+$,k*-dZju]e*]hbhSlcH+Tl,)c:`lH`<$6@"L(1t2*[:_Km'K6:f.n^ggPhq %O05oFF,(2cesl/-,(L+`jGNfrME>W.+:Au[$P`$4j:<2O]^CK>)'2Ma6!6029tUBW(9E`%@"[b]bUsYf9@CT[\)3K%B]WOc;k56(7db`i %6Zu)%anp?h`=ofog=])A#pbeO?F!3HWSedJA]\hZ?;_(RF3-%cUs]lD9[J\s)L_(]g`=G`gF&auVNeW5i%HMApI!pnd!]_jl4/k' %^A&*6'VhJ8e)N(ad9(i>P>^6$nJ?dJ:N`RJ\t_D(79n1_ZNLkneljWppnEEU=p-V(foUR)-SFW8'NRf\ie$jGhQ!'hZ=HIN`W[A< %$\!s^[!q,ZI,]_fRAJ0Ac@&d6\=c3$_.l)a\=c3$GpMgjKbiCAoLsK$I#0%"kkOAgc4E9Hd';GtRnVcS(Nd_L6&['Ak`As"Z/QiA %FN?"a7;*8hh:32?CKrQLl0d!t`?R!KP?IdlOG/T80'G9C?u!Ii(L/QSmO"2.-!l&FYhs%$#8b]5n>b4P\ghPen6dh0>>1=?2O&E\ %\uYWd,ULT(5fdq]C'"*W4]RhAU6<%_.Q\i-nEqJ'jSaMM01)&/!@"J-]6cT*0p!E]eg?Qnf'hNV!;]$sed*Gfc7QVE&)EFT[ce3H %Y>)L&FCfqBA)U/'41r818u\^t;+clj,WEY':c'%5mfX4h6"G__'1<+G.haAmh)si<&OQ.k#Odlo+n#OG6?H3_5i1heokqKd4^K+H %?4=08cKAd#dOe-`S;(J[';AL!,u1t>G_m\>..G0gH\MjS'=iTp4lM$?pC%^=C%I"fpB.d4MX(7Tg*DA^W'0UfG`5I_6]nPcq-s %20:+u,u'Ks[0sl47RP@t=8'(Ng4a$`7n>4((!(D^([t1&?AY3nipPN4?:I`P%_TsL@BW7/IX"/)We#hn2_DpWMf.:e[!Bh1h.R[m %BRa=sUpMsn@r!Z?\%CKd_X4QUG?4FGd@U@j9%2!FU_P!:T[.eGqQIeRPEc/),N3>SUoXui4W'KN6-@?#UE<1Q0TWc8QJom,Yhn[' %DWuGQ4')dgZj]i5L*25FAUN=QH9YAQ^`fcsd$aF7*TGh%Kbt\ESrmFLl3ICUSs.gmuCB3`IWaqil %98"!F<67NaQ\_e:U1E9>(Q2NSkJbN?^Z]=FJ-ee/rC&sJV9b%q:Oe5smj6t:Y*GlS`1"r@rDJ'KGso=*5VPd9`4_K&it'YDI8'=t %7p*fc-]l^&G9?R*0(Z(&_J:LB;f[hD-12e61,C5JBl-F8M2+%Z60%C)Pk]SO?@LW&V8V9PmNu_ZMmLtQT]c,[<_>M4.S=/tZ-KtI %\Mkud %nV[0U?dd39YEDqVS692d^HKi>2P.X4W$]R7kIt`mbo\sL,\!0r1d)rLTq?]Y.uDr(-sr%U_c2%%Xn/^lmsQW0/h-AAD6/ZO\+OkD %2.#"",?EkfeJ<#Vdua/T0i["Zduj6B*Z]l1#MoC",u>@eoPaF.3;&XXSi025F1aG`MIe6G,onja_oZJZ!'+tkB1IcJ#<0K,IY]Lp %*kYQYblHN!c=tg7&.)2F8Qgj#,XcKdl,uE;`A.\kI>FBc67Oj8!eQ)ZaJ./m_I4PpO[Z5eoD=(i6l$E0+Hj#A=_>`/H.&3,]=uM7 %H@o8@YM]f>2>pVS/m%di:Ef,m+Y',;s,\gOn7kGEp %&K!RV[ZHSum(2sp+FoIVkdqs_Pp]9h_O*th8jBBnST`b1CoON^Y0STh)+C35Qn;^W+S48'g.iaG#kg'lGq[NWl:b\"n0qT8S3"P< %-!k0+Sl9:sVf4%gQELLt/Z!_U0"OcJiV_?d9tMR6T=,q0H,/1+i41YNoZd4+/-idL4F3=la34Z]4j3h7B'MH(QCd2$Jh]'SBCk=i %G);2^`lqC+.!s:GJ'0UO3uE:0'0kl$gp?A)ZE02[[;[AcAg)Jd:G^2n/^(qc+OrriNB)=bBA$W(R,,/d4j3j(RCA[$'GkjBa`XHfCX9<$-5T'J#E?nH+(NX&^OM"3 %(mgh*C0*5kca(tF3S0a$Rk,)=T" %k\.EF(h!k`.HtU?iSuf3E%9*U1G3l0Ul8F4V^VMl[Kfq=at:2jIS&eH!*sA1?eouo8:M'9gZ54:(Rc=8l'Ke[)JSFPN\R8LN)Su- %EQh^I/j!o6K$l=N%=D-O?Rl-LW.W]Pc=C=0*5jU,GrrV60BdkB1nKO'Ssm9I0V4(P0>*&01VMon"_$]2<2p-eE2'u+"_TS$[H4U" %i(^DQg3S.G`"M<;LHo_PCG#<1_.q/BE88qY"l[hB0e0TmcO+Y;+[`:^J$#QXDuOLp+Rj`Y/cX9;=>rEYbK7L*R9#!J/J#8NYI2_Q %iM*bgW,p"#h1fY8*7Pafs71)C/gb(MF&6*?$dj5I0oE?4KgfV:8G?PhTAjabROR^q2eA1!20j@(o^=m0Ll%gNYM5ghekf6\/9a+q0XBJ'KQ8T6qI%c)S@.kK3o>rh-,@ %VKH$deLVGmX53L6@Ck2BmG0euJ6pM:SucsR[a`6d5;K".b5_@>ptEA$jdnDQC_+g%i[no%6\iA:6O;pmF`PB+ES\N\o1^4Qk7(El %-XG_n5&U_K@G8Ynk:nVjV^KN]_t_EU(=kK08`Eqp1pI8Am+cK$@+;?F+$XZ:$fCDc2hi#g'jU01$sibB=cb910K:h(&$N_\h-*TX %2H%nhij$tH>NpNKGDi*\%([*(aIf)a=KQZ"3ZWG%IXNlHZqfSLl_A^"qY"qr5la;^5lYJpT'hQ:'(h#[l+Mp+_gFW(GlJ\pl8N.Z %V#qh(ICl+/!,kbT#Vn@l)9:XPIMVE]*[cTc,h!T4"^18A)d7pE56H12m'`P8)s/?Sn@eM.hS"6\`Yt+;FgkMVDIqnS8jS[$@-QpZ %^32I.N1rgLe1lDh6).qNe:6F5@;#N=M`$94BO5oX=4Oq+h*7luhA#b$M];X0&$:o=rg&0u`<1N)NT78h9,EBD8W'%tU"1hLiE&DG %'G"\[bd3%]BiId\P^`7Uj2$N1iB2O=iW0tNE]QTVnPE;k.`XoQGU0>JOiM8Uc*b_HD<"ok1 %XOfHRd8<$q>Z-dlGfr^97Oj.dG[MV]D6T!b-lUQd+c=mm.3:r79CjhPMW-qo7Tc/@@\uCm4Z.W'fl6*_]l+T!&%IZ`Q/3aR&i3<* %I(-IXM&B=4WuPJ*pua5Sd %"(8$"rseqJmbp@M::81b4`NtEI*tr>6AB%qeLrmAGP(,*)7UWV:Ef:O_39sH3\TW&M!WcPF.SRf4J61pr"H.$0V4IN)QqNlhM<9K %X]""/Pid,%O.MWWLM1gmO>,+;i$Gfs@Q6*s9nF3&$d`/Y_6m'i`s?Bfb`&p03'GW2Jq2;@P^J9(VhfW[)%(6fYbhf%qgdG["UckiQ]t0UKYe4*WVR(uSCEm;&R*M"h:dt,:'2%)'n=`,:Et@7TA%1&]k+*%6 %Q;OnD9[tGF";+#`JDjk8#&V0F?VAoT&MV.%2F.pBk('.KAC'L[P/@;s$O(2<%%SnGj#6mMSi %F--S66+o`;p@)hA3QW#\3#Bl$iSE3,7lS`d=7Q5hHm)BH;uo?.`Fg&uB+5]4CqA.BH.0,>BZA.BFpX$/=K\8hCHX/1<\PWS^.YrsNQ2IIqh %";+#`J>%+Kb;3VK*&*$`hS=pjF2/>c1kR!,C]VH0@rt_nmJY7tM4]h35-H"D8o'D)4qH8Z%6q%E`m=R]Q)Re7(0AWHi9Yu2Id;9N %lU2c!/7<+3p/oB[iH+pl5*hjXO!)*63``ER`K3iaS'NF;Tq&RU.M[kJI1J^*ZoPm8*\Bc1EKB5ShEn]B3kU"`/@qYn5A0#scI-KN %TImdEYC2F?5k'+<%M+dH0qa+A%h(_Z#N!kn:,V$mi)[Hu`dY3^oU'IEF8*l@3SY&Nn%nl4:V?NOHE=t3RAeiEm/]&)G&5G-e*`04 %Nb*&%NJ*ReDe=@gF\QMB;)qdNT`t/]Dp4+hs!c35(0[D2WjceJbamrDM#L($KBT]FELf8dPa[G%`*p9BNI)I"7@Is4j<(#$k=bX@ %1Nnc\R-OXs'MXoUPC!]C0p_\qg8tTcZg3JRUZj)!s8A33s%)HdMLsU3Q\14W$ %:I-q5!SVQ=0&%,J'gk2K4"oVcY!3h#5+Lm!7BS^f4l:B_2K-Wm/$+p'IXJYiYE-0$jA)f'R7A!$p?R/plIYb\F4FJa6jA!*;+?iP=a%c/!TmiV'2EHCUC$bL%M`=o.:qBYL%VBkX@!)ND.MGoKD?>ZpO/j:W4i[V\Ro4lNqij %7'sgp)p(bTK!M&o!n&Fs[58R4Y:rC>.tfnj>$`@8X\^6;;t14ZBnc?<3$kbiSlVf`naRl<\Ck)<8C&f^\$q%dS7j%KOIfLOo>\S@Gg2*ka;:XF'e\(%m^4:)pD$X/IPaM%&c>\`!+,ee\6f(]*iomN7& %d![O':Z%LQDe\Hr8G^%o=s9JeM5]mdU_SW&!MH^,d!)2G("1i@%fJ`4/,ZT>j9jf[C:(iTC6b#aB]f-4H%kmt6<,>ZnI"MpKqS0S %H%kmt6HCTE3lIjh5X[`QV%XB#,_FF6VOs[)H:%Z074RQqP[PL6?Tl`E[AkSB,U\'m!Y4jXmSP7Ku&N@P6\(J#(%g4;r9mMn*f((MF\(`E[)cngW^Qob_%f %\XQnXJ\&`^L(bE %>g*@mI/>Fl&JoNIIcR7i`5Q!V=m6tYjB0X&^/5;IF\s#^OLkd0F\s#^hX/rXMn,M*,a?hJATXW@:MP$K5Me+2A"T??Ti5XAq->%Z %(W6\tDAP-XL\JDOh(C\-_Y[Vf96.)fAS/*^pg'\5QeKOrf'af*]?GKZ%-(UNFtG"q@o'QA^K%N8>o6`N`/YDr>dfp3l#q&[/gbPL %TYW=8VP>-oK%re>^WS@W-+?XGJXbD*Rn=&QcK4u$s$,-VBXaS'mRAtW,r#.#Ui)MW2%]:;(Ha4cqd$"8QQYi/6+Uc7X][F=E@uLb %)rC$-Fh<6Mj*]Rkk`+tbW[b`mYi2js %dP<)No'5N,]d>,emiBVobmhDmFh+7i\MfemY+O)]bM/)dX*3kjZ7 %:P\,XL.COZKauFu%1bTHo5sa=Cj<NDu$"YO[icr?([NZDO6P+$A,Sdd?_dc#JXiH;/T.n#dE)r=,b %g",B"g$i1o[t>1:Rgi0a.W';-du.e5")]#LrCBi!!:f6PZdilaPX1bWE4/T<2MLQc %%KaRmZEs12!3I-.X*IU9].Y:5h4iZtE8&liM]RCn,e0,XkJ[o[+DSDO4`I+!^rZA$*)U2*$.R,T,b.a>t7rJfRhRuQ_&$"!%:IB,"c>]PMo %e,Z<:,0LRa"jp!V#3Q8UL>)JmPp:t4L!r6ET-FKZb)]$<-V"GV-p:-=?&fJf@_ZAfL<1N3NmR>lW>/^!O=Pb)1Il,Rc["[Zd8"8p %&aIhsSC)VB*2/f@joh4D>]0rPg5nHf.#9Ff@J&s>,_fa[*$LEZF_+"/,;c<<,ki:P+b^!>/TcH_*PC1NYP]Jhf=@!SZF6qZ(P*J- %!?m;AOC#mY2O;$.lq?mJ^Nh1i,[i$fg#Y?u\H(TANF[?VaO*eklG^`pW&Spo6!aAo5oj.\>e08a/8WAp,Uf-f)t]3 %6UMu8iq%=+XSjl__"6[Z;7DZPC:uO%T@ZZpn9Wa(qrR5;9dP[@-gHuHaVDmrT(K_!:WjJ3*8JhTSlobAV6#L3J7[Z5odfYk=>Xc(#2]CU/J\eI)HgA$_@ph^ %6kI6Ud6oB`Hnn8N!ITjQ7;U-aT*QV[KJJTaXK"5+.^7I:\Z+Fjg)36BhV>>d+L9S3I=5+F+(`eQ/t:!@G[?b/hE1s[i-V#Y]^5rg %]Qjk@@!@j'jNS@6#bhW(Us?01DA\c##uX$`a@u0e.Bu..gft %8`#uHO!/bcfc@.>Dk;P>fMC'EDt;Fa[i.a,jsbNg7/'1tOQ=Ybn4)Y3-QKmlJi@ndmjWO7PIg1oA*POg'1@S<2c&K7)61n+DeqJF %8:mpK"`GlW`(9I].RR8-!\/Np$[ei7W=)S@;JR!HJU);ioc" %OZn6@W$%+hV<.i"R$'/-_K]U;0dL27PV\A9cAI8e7,%nU-P?Wr4Ept]O+`Xaq3PnAKTui%(M[JLO/q1[UIA5U\-eBIBT\Qk0OAPM %FpN&PRFOlhXQXX=THm]O7?=Lr4VjD?,0*\epCe:IZ@S_54oqf!6o&:a3uBiX!li@j=ZLAm&6:"-m@csL
;Yg*FI65"QIf5(k(`YGlJ=2Z.mu:6i.sbHsjn)Hnm:gPTnAquXMB5i-FZKu; %6J$`/=5b$O&m8A=7(8q26YYo:2Z.K?kH4m0p0I8'UA%=5G^0rNHA7UcIOWRn=n"nE[O7kK=e;.2eUQjT8a.?TcgoRHRB=n3>J?J] %"]@nQ31_?r_<6XB][9r[PBe-t[NK$u_Z?_JH>Bp.pmiP5i/JL<.P3ZQ9%cZEWF1FRVJ)ses$.bj00D5p?F?J,O@,$sUSWRcK-DrklkiY+Wl^e3eXk4RDnH\\cI`o[$;p2ek4oM\%Ws.b!V((fJY]R8c"cT&*-Ii$N/ %d$ooEW?doUGqE6=6g;Z?KO=aN)>`*"!^C&Q>:*lr-(eA&88k"$1S='s8fXI1/: %NOp[G@+i*Vf!l*ek%m,'h&:JRVp?qR'C"Br0f03f##`6J`nla#U2u[tWO-!JXP?QFRaPL,>Oq.9L&IbJ:d)cc9of1>NOti&?eDms %PQ"-hE3alA3-bC8VPe()4\H%=i^=$]PKa5baSm=a:%]u*8J%LjL2u'4=A[0H8FCZ^lhG1V["h^s7e_\+LY5)4-n0j6hWF&nDYL1N %no\TC/'$OjG3?c]?,IX5#Fdg)cLk6#Z1N]GP(rDkZ0R*QF\1$Z%I3O %QC)0`3(aGc:p8C@8h^^&O8fri.5,ZhS0SjH679NnSE:49J`[4q8I?;QZWRg&:rCV"\t6L%ptm^H>*6(hd])=jChT %:L.\:0hbaI^+;j%cP$H!)DR2nd$;h);C1Rmg+\4;Rr;:1]g6*L)cD/KP?Zf^FP_CnkWg'UrD*"-%7&=V-]`@4*SY9VM&>&?:XM.^ %`Rd.qYUe90-piR9;\T+qG^_71kac0WNbM%S1HC3@jC#5'<1sidN?#GCmpqcL*4,'m1F1"U44S5WH+gPse%-Bn7gP$,%=fRoama&U %2uk-J9r@A`)FPGZRLD#S2PSDRSk(CkY*-b12;GM3#*VuW>kgT7(`cJ'8GJ,%X0[0(hWF0EeRp=KV@_K(PWfD!`p4n6(!sU %aq'6cQRsWQ\\^$F+,29SdrlIr0W\=/S$@-\/Plp%(cFQ+B84*#LXBuM*uMHEWO,sIT4hD#`k!ib4CgQ^f[D.2d4WVojnfC0RL4T% %j7IFr.Y6!Ki2kKuDrhJI!VL+;R.GRd[u_WXK+]\>%&B[UC:c;/DklnfbJnQL$o?0)EZCjcV"9V+!ii>ir+rE"#&DkJB+bB_>"S$ir#SGiu0t/?0k*r-DOsWRN@"b2MJS/9/lA-")lu\*r %6$uSp,6ZC5R3kP?e#XNDnRN[9qo$.33 %<"1JUjp31Fjp*5"jI:dVKIf>A9YNNob.@Daf]J[`V_YIeN0NOXHRuZ;N0NNMaL#RkXb#oF&3_dGU'j[f+ad[noG6dB"o!S1dT`/= %31pe@Phna-AI'@pW=',!07eOZV">FE$jHBVOh/>Yh[f,W,B\R2lOq&>7d:&]E(L(X@&,D/1lm@[JW[OZ">PiGCnV7'/o,R]"o!S1 %]"kPV5-PQVe-3i;=(.d1$pXW\5-VZcUA:,!"bp7)fnVm>ln1!am"b(]OeQ*Q[!e]Sf$=0N&](hG4XJ"!_r>6/j`+&+$WUYh7Q)\+"GX8^IS]g(N.l7EN0O_"JCa(Dr_r_F;Q[\A1?3+#6H[^]d3_NuTY=:_5ua %aV.2S6#FfG,KnkE&O`@R/E4H4GK6&4"16^X%nY1f_Zq7^eIB'?UZ;`WL6a+Sn,Y,4fN-8.#o+a^+>ngggQ5;'9H6DN!Y7#3%1sm^k4m@=&RhEpX]!&;[j9dYhY/#5 %N&;i32:lV9%H1'Z&/u6f^U&icPT8N/&[%92bZpmCYB#sFZ/OG*-+t5adio`J+\i+5`E6o@:3r?K$o3mGodosHPH#UpFLL;nl$E`8 %3cm5KP88mA&4G3:DP*LU%W.n&]-HeWh-eeK^qQNUrOTec+s*)t1Nq5EU6U0.":`!-hiEU4R"%%,$G>8\mO$0Z*bb[j$ZX@KO1LF4 %[LhqdT=Q_@[a;PDK'9Bj%(s%%["Z?uFWh]@+aR4)lGE"0A?"*]_S^`6oKE308PE'dj;oSi?cu]$kOiC,E1l]gPeW\@mFC*_rt#Pn %0ZbDp:XL\kF^ejhcI$KklqO.ibhH4'nkNd'\CtId]!#T3<&R'3]:m3kq($bWSOGh3P*6OR(5T&@Nh_`tn)pIe8j!%fM4WR7,LN.W2E[6H %#'G**4Mok:r`u(omj?\Qd@=H,DlJeL9%M'Jn6:>O:=*5.16/>I90ogOYID!PC22BT:JN57ZYN'J#Kn]c:(KF1a\&SYj0G/EA9>2C^5&@#%thp[-i5b#!64g9iaoSE%j@ %9%1#34c__0D"OEGFJ`q+U.OUEPPA1QL*JS)^XMWC.uRQ9V;l3250t %"H`[`8]dkX"I^%$1CpJ]6VnJ[13%@E[-&jkVU*^p'*nZ>7;, %B4ffeZtgPY)Cu;$#qs%&_Ct6a>Fp!ikY,Dsf^cCbRCYQdL+Q35(:l-b$sW]P.oqD,KU5u&Pcl>fCjFaB"HfBdbA,Y?aqRO](?U`^ %)7DZp>+ec'B%Z[ES[BIN2MNeZ],'If\f%s'Br*b)H.o[gBE%CQs1A\7:SM6``_P;B(=]S]GP-lVTiX:m2t=/Pj!Eeh"q_YiTTN_Yacl_j73+$aL#*)7J\'QF^?p81Pdk5/i]9]HsYSafpfrs_RNMHJM]\,jeT;b51Se==TjO]9*8d&.$&t`38;^)M#l-pnCIG:AR.NVD! %Y?#14,,jqHnS(EM-%`-UJP[U/aiNXlfA7];:Pk_e"qh6bA#_XXKTU[NK!p;caER0U;r>4F_7>si-nlmY>*2O9+?j;*>*7&m?aXC":Fi_r:"=NJ:Fi_" %&]F.)`?N.Ok+=>QKV4*o'a_`Eg6D$Dm>+C0WdhK@"dbqBp2O1.Cj6lKCs*g=Vd&Mqi/OAinKPqR:ccJ;]Vb;;.$4):rk:)]$0a %4R9M]%86"]#[5:!4>.0NCfl;Qccgb,nl.NK3V?di3j*e3PpgP:`=p5Gl;;.FEg+B!(kTg^rS>u2_0_eUqRajT5n44)oQN*^6JWTi %&+kPheg8H%\qEb,56+>l_QT.R3eb:L%Y_ua+:L)2)Gq>LZWPDmXeT*_\.JIJWL^nfb+OI=VrVhqBRJ2quhLb]:$A(nu45P_koG7:.pC0-3?d-*TUn,6T^9?m;#npip %KT7:g*RACO-6TfFCCRg;=<1"LNGZWE$;1Z7%;NZsB&+_ckdiInI!:bc6H1&#b]buP+eE*J1Z,%2;*YF2mM_bjA^O-VEJ%]HbkG^[ %V-Sn0=lqf/N7Su>3^Rt]T6]q<6V")OSUf!sPFmjH@km\nmhTnB/_3Ks0J^i0GDD2TgJqW%r9hoD$6khpGL-q6,15R4[F:Q.U %G3Ro:iI2-1,92'q#^(8[^u0FHJI$@NTMsh]r,1d*V5/3pd[MR##JW@7WM\uk*W5>m3!=6KbfE+@W+W#T"i'*H)HoXejtRpnmg]m2 %=H#W:48XGT!_*[0=0<<&N$/=d9CTP\8#U-K=9lSo7MZtcK^]ae*rJ45Fm'*2FU.NrGH6bn,*@X$P*;(3mAl"JB"YPkJ?pre^A)J= %1U$Y7cRQFH:U#>+#]u#P9&o3IkTqS26>(K?"2T^o3jH5>p*!edQT7r4TmDcF6*BCe!m#LA=R@Qbb"cXl+SE@pmH7[mK:R9?aV/\, %*mkF9iA\%EEb/EnY\dsJZsIi>/i7`o6+&DK:alafO3BH_hFIe2)?I%Tp\h6T.n--SEfP[jHT87][kIkIT38-VARBAIY%p+aqJ5nS %lhD]s=e6UuJ"@!_\Xhm;AL[JII4s2-_ma*QcrnL?X7mFlT?#gWs*-81]NFe\FGtr!6j)jf%P\l^&.Qem$-O.p7u2mB169h%d2O:B %5Be8;!O=kt7!NZ8KdXb"mMAB.#.jY)E\mVl1GG;;I3m]#c$Ef=1]10-TJOP?Rug?"+h9BT9JYR3NhX#L&A<<%rlKgcUSFKKbTsY$ %'7c;bT&iV5XjZC@&3dCi!91dH*4$Po:P^7"X?lOo*NG]!7Q&8?M$G2>O?H$fi"HVH4/ %Kl7tJ4uZYL(-9u=Rh20r.G[06P,pHL/C&S(Cm[@-`]E7"aRT7B=,AF*Tss`7oChlVNo-DijQ>]"%_!VaP0'Hma-hV\X45ITnkc2g %!%m4DG!E*A+S)ai%f9mns!V6uQI$`"^*<&:$2sW6ODLnfnKk@WKj9)?gHI\kFutEV#<3UdlUJR%m(,*Wo+A0g5WDL9JiSj1>[S5\ %V39L]YFr4I^GQ(=:QkRRcT_19PBrr=?VWt?>!qT,1E6*ji?feY@#gmMFO`,R,!pLA3dN7)#)QOM-`;dp&>cb2-j]^P[aW]9[u6`? %1Cpt,?eRUc %*CW4_iTGnpXG,giYn3Le>!tj!E0cqGCeu$3kcHl4NVc=(\lqJ:B=CLJ]8`sWP=,e.*\%G.5p&]..mI6VR+jSB3fANELJfq?_C&O^ %o2+]T.tVrOVaS"d'_f*3fh"YIHsI]pj>!`q#3kNm5Dk[QmVlLOVnGo9?:#:1fJNOtL'_s+FhP7b?(I]KJP\3*s8BAZ>RlFRl[f#!W&Z8(gUZ51ojJg\`:ZaMH[TR7F,Bk&_7p]R:Rc2\ %)"6LuqW2MDglBMC#\$VJk@%CEORb5iS57/S=F$A'3#@G.'t-YY)UKjAQi]/m?`%H7Ult=+>/QRFX6a#,L+Ea+5$+@b^:EMG,%54? %:Li&[U#B^e:#EZYNT2S,iP('e)!;%cgCije"POUGQjko-c.QFf_c,IcQN %4WhIknVK@\U?gFS-T6Hb2!gRt/'osbD+b/]A65^5I#VF:6G'^HI,<*/T@U8Eg"`F'gn#V6d)9&=K"XA8h"mdu49?_=jikWc3&?U) %bRM'mcg>roMbtM"''kCtb"l@uC$)5p>$]7h$QO6K4`@`_D>o/s`hLK;PGTV[Q[b!;e!oB#K:Y1b2;k@j2>I;m3 %F=eAf#\IpOL2/4Y8_gH"i#dA5K`B^k$e`]/rEF$#+:4Uq^BA8d'M7KhrC_`5T7fu.?dc>F$^/k`L[SYl,?4Z]R2ces2rYBsh0]t* %cPFgi_gS_Y;Yj(A#[oH^.c7?I2ibt3+_nc,,.ZiWf7GOZ;u2eufO?SZJoJP82uaRCG&>07E5Q.nZhV:d`MDR-/$f560otV;+!&WD %f;Lm6Jqu3*_bCe,U\aJqMA:=tU\aKE`E/[=<1d-Q4-_la>=tGnRj2"b>W_U:Pcrpnq9XX#Osied/YuVFf[CnPfi1<5lsuG++@Gp8 %JSG\.N'd\&QnG>M9HRQ-Z9O+D:*q,hF:+_*M(6t\]494dnuJ.L-9(4_o9IeRhW7dMX!AS9*3,3:T]%PWcd8J0ofC5?ATj %XZ41g<#?o]gB`?Nj[!O7`n3e\/B@KT"fXG0WhB[^B32&Q+)M66qSfXD4BqA-qSglAkXaf5oSXc&P?J#N%$C<:#rh4ZFLRE/\Pl/@ %_W4$8ff\_^'@TZj8J!Vee@=8*mafjn<2\,FdSHqNV)ame@R=c^6("$W68(XcQ^DZ*n'DEZ/MZ)"[VD[&T>Yh-0E%Ms`HD;.VOM<` %.P+&WQu:n0_tV:s1#9Kj5Wd+=1#3O#$6j1n\s-A9e>X)0kKk`G`,sJ>"RQV&@2L&;"Hau=6RPl;TXs(a_uA]8rYKi7b*L8U]GOb; %&E;`9Qqk_\KhP0!o?q&3R4L'u]"Qn_=OGeos1sr"bG?cEgrK5KO6ndA<:r&m(@o^8k!^1OPT!E72[Sg$/MUg$,J^o6U:HgOZcj/]LJu %kD?Sh+bU$Qo#FpQO0LrSr`Df)/L.(?r>s&EjG(&FOU^%8a'.,*`;jcN@kDfBR%Q$\XQ@Oe:*0X->Ott?H75D>+k4kJ[YJ(39]C4lTt)Z1?';g+c's]Q9WrPbUsZEb9(L+ %N6mkTedA$g8.lUkkMp%o'_,'d:F-sejc?f#4!Z]UXh,l.GnhLjVdeR"UdA92:Skasl67Q$9/k3!ooei1>AlHW>$PB2`1K=j>!jqQ %s)oma<0HlP]bC^#Yn!$/!^$4XI!lX\7%\U"Q/e(R2Yrg0-)`K"!T"nm=tZ(<:2Z!^Li173HP>1-WePju$(;400Xlb-Z($adXn2u4 %c&*/[C.`TZZKW-jmU3KqpC$#cF9f.+PJGk,V)t%rm,[`s[Z"us*L?+qgYa.5&=2_q*TD5H@bK^P,Umq],,o#@$;&DJQ@=(pi;0#d0p[^G";)"'r_k.Z<8gF[Y['W;`^eF[&mOE17lGNB)dc\,0of;X?pdFdhqD$8mI2IG7A&U=*&*#<9 %c4uo:O@jU#qj%6p(kq0MlV(`J^hf`4E"$`GlI38=o_(e_X@,j-[a;!k`4,rKA%"FSm#Xh]Lq+d2G.<[+md2nU(80_73ugR[D^ePI %@m9rCC?U_b4@WoQeQk*AN)%WW!J?e)OR1=qFL[)in74%*I"%Ee6kFb_Mb('NlR@gWr>bsmU$!$DNX+#:WU+T%1&u'+LnU5BFLVjr %Wge9MX_6HXL]=,4Q08c&MdWhX.a]F9/g1iZ84A:njbu>7k+KOiDZXu(bX$lT4.-il/jj'2=Pu+dnR3#GC(1EY^+V>`\6\80Sej'Zdh?PLK(!8gMRN`,0Y'*i/@i&*E%_(NSRH8fccXE %&2Lj!aUY:2nt4hC7VKseCP?LY+r21#^Wusuq-tuqq\H22a:E'[1WBQ7q-u#S<&-^Crmqjf@gp_M5M"7E\>a%p<2)`:on>k>Ma`DB %.ni48jc?h%oo&X&%\`\KOR/'$FGS4E0\IV7kRdXcK-$.WFGLm5K#eG$Qn;-#Et-X7ba,h-_DY5#??@TO!G.$cU-l4cNK@:u8Othr %?`N+m6[i0nVDEp(G"+P@nQdA?^6"3:tO7#+**fccXE;!SdmQQ8t\%c+EPfOl3+ %h@CknV!839qNC&RLK(!8,B]:S!jgl&IL&X44`."a/-dX^?3nb:+bWYB@/smbJF-"Q;<3>EbR^H6`d&[\'7W<.+tj(2c7"8]:j,Ae %^T0Hc!G$sbU-g0oJl['if.L_F*_YBNm08t,3>5Y3:e6&8i4\[O3eA:0O,@;q)LFK77M"T` %A8*NJE6EQlOhL9?T[T`Kb7'HkIlq0Inl:6-rPQiSbYPBJllm\mI`NSlk_`X;GP %oVAWcjf:[X95.Z"jDCX0mmI%D"s7MM]\$7cMD&1IGT@<`Y@lC&RY4&Ah6XI5[AW]DDeTlU[bW6PM/"EWT5L_p3(9J9HQ.CWI]AOF %3*=V!O-RYnr2#]4-!iNR!K2+"0j"i#:ArA@fW:CCork*FAj:>07%Vf.rLL@5JO`YEq<.Dnh9"mH9E)Y^,d6Wscp-sD,LML% %*/X)YMK%Ip(7_9j2N%!d[kin(RWYfsa!GTm\GD%$1mjjqX)DNDNq15oURn6Hf08dJd\_U10'f]l'M$3U0+h.u44nQ*JL@NKSpOFaWeqfc`IKI!<#%Lm)!L6@Y:93-kF@u,D;Z.W0:RjC)f'nZT4QCdLb5Sh1AIogZ75SuU`GTPPH0+FW@f@`#3I1j2rfPE'mA?Z5c`IjYp+`2ZkVp"[dnUGQ4 %]QsJTaO"e3,Mf2r)hr%l1gs1L8'(['XoB#%VF9(<2KZ9MR5sd6,Ik-#8u$f<#Yft4Near%6P3an8u&]GOa?'VY%RS8n7!An0F&&a %h.*OC0F&&AYZQ,obdceAko8j>k<]M,_HMQ4#&X0G/Tp3bUTGo3*c:^_/N^+W4t>W,b9(L;fn1HqQ9Wq%pJV(!od'F\ %D%e(7P)eTIkYpAS=S$U+LkrKm.jTf5/Tq4gESn%S;!D %0p^>nHG:)/68l3Xq9Wf5r2I&/_07=k?']5Gr;7]+Ksl`_h,R5"A8qgu?AbSDH'HIY]@Y)9%5b2HA_4T/D%E5u^?6OC?+I)$H$\rIPMeM'o(DY4c00nQ?g`3 %ZS\1fRt8O`GETgSBp_I138KfS9;?Va9TRo87!;[.cRM;%A#I#$-KaH>1FI@4g_S2(VZO3VMZ.\[)thY)9>9rdB,ikf@MdGgdP?^82pOA;&49R,>4N+]`%",F3TD#qLfK1u8rZo^TltF7jN15L)V-G+ %B(:JdnR-nd(UMPOeDc1ZEINHWrD^7\(Eolhj:J7us/'`_Et-X'lmHi_eBj_Hh@`1t>+KfY!'PFFbau,t[(/u'Q>-.\aB(6L%Ne&+jnRN:6Y1#G,gn"[2%=2n&o0=c4tf%oJV`UdHfb**Kt-U=ZgW:5'5@ZpH-bQrMb1Ub&#%?CRM38OG%5JK"/ %$/M)D5:)S^:)PY$>^*U_cdNFNDmsZe>B!T;3ZASgCfuX0T5\m7[XbF7;/TaY2!W=ukn\Z[R5A:)I=5`5#,cq:I9GAAQ^UtdNJ!;W %?$dDQ4m\$=+V#SB[NATJRE"3$j9pPW$93"?I".Mb*6jcjf:8\3&8-.2BaRun$F(4a:/f5;;5ipV0FF*>jLA1@1S[cl:QEWFo7mX; %?`5AXOP[cD;2E]`.9S9LNXL:D/^$T/ET-Uh8sYBA;7J#!JrQL$j-"dl/f'=2E';[U>k8regP.r57?DE05Z)2SlR>pgHB(W(^iIhD %>gSXj:+I(&7F,uLk`co6$A!Kc:fQhL4TBP0cTW>8VMCUU_dr;A=l;.$>tcdEE],d>Lt$M"g]I2gUT9$LuXWguq2,-q)Z57&(QtU8oi;nZ;qYXrQ'Q<1.W.6kUdPq/V?qu#^8&[:/VWlTg]K5(oEiST37a* %Q'rYG[sVfLr3LLM>BiHs0-)]P+$_S`l!j;J+;$.n5!bPZ%s.<9'R;r!i>T>8[/#5$nt[/oi-t5fObX1@`5^70RU0;+bf!lPN,_3m %-N:l,h\C\WBFrgrTe\a9l3ICml`*^@$\=Y*^dbB]YoFVE<+pebAW"'*:&Jq[V!a7XRX8eh'qY6?.gq-32)NB3OGr5Olc-2JqPEE':,7S=S %8P4+crcI$-P"F^u_fHmt)/!G@BJmo>cY*HDT51iZ1JZoU>B4Nj(Q;B_%$T&O(R?V7spk`SZA``e(Ik %64EsOm=_I.G88n(4_`])$u=N`E796UTLd=Zh?p`/@3'r1Gh1G^Z[2N[mX,Ec)bi.!Zd1;oU-C1mImk\dDlL#g-HU\HHi&W>:K;2d %:`1#XL*=p>Pf5eer3GFAJL:=sZ",l?Q*c"s(pD`PTJ>lubii_[hXU)aZ(.B41!K#bWV7c=?l7N&8`8GQAi`k7pl&E+?kj^5OMLP& %q@YB(bbK8`;53:AMm.i0Gk?+6TI&XbB1\,eX@lISfCh6.r[l=`e:nC!4+mP]hU$D1=/l'D/`@k4Yg"K7%IU$f%*`rB_ %RB?#e=s!+@7d)WL(7"+;8e8Vqm[K&:HoWccotMGD^Rj-J8_($c%paU@,J%l&fBBuP2UDJ4R#M")'_-WpJ<$?PEi3r+KU2O:&"U!! %q&l;T\D=9]'E$?]:]LH4WWnn0r1P!MfEJRd;F*)l?7[WagSu\]PtLWG]DV9Qqi.aOEFY:d7GkH?#cfCug"2_VRmOm&F'jg=>j\cs %Bn@1rlAHLTW@=:[X1fPr%JF1DX1gjh]1E1S"HeTjd/hZP<@?ss6bK0b-q^T/Y",5Dhg'O0"r"'C9_5n.oH;DM&^gLS'<'\UD%aL]/BD1B.$IcdK6.E8s$Kk_p/;2>+\NB[_DVEL?tbL5hZM_Ee",*r#,Ff %#&[juq$+Wh#5Yt,MB(LqAHB$3&O(RA_1.,ajp_6m<%]nDa&!/UdQG..Q)N-q9$,Y[#>NQNJ9`@<=/lc-,T\IcNTmG0^W*HhhENm%D+70E=Kh.Eu=D(S1Pj&TDe1ke/ZfA;7R[D1_1eZ[(6J]3sO0Cc3s,SL[Ik %b9g!9?-d1h]("$4%&7$[I2K7@`%\bkKO-gI&CXeff]I6(Zu-IO9&X#a"lJI9rY_5n'j^Ml`+O8%\+5&]repC&kN6Pg\U\*l1&L;7[G@=C79dNJ;F35fY'uD+OlYuoUW?%h %rro>P+'FR6G@42MX]52T=*Rf_fRhdGGOk#mI1fuE:pHCDmLqU`4Vm>Ia.Mn[":[S^EGO*iho5*gBbk<634(BK>WP%7ga+JM`pV=T %,m$W:f:\Q*G"lMWqCf3Z6312]qQK->C&OAoDNA`7Qh-\Ur=-Kr/i-Z>]:LeplB5'eJ?:KM^DJugf[@"WTJ;$oJZOU1::]!Th2T4?B)Y%pDj(gfgj5DTjl;A(tZi4TYp24!;=@mb(ujSTu]D%jar`&.hm %HKs'`+]l4Z!OCd;4fi.$))bMrFpIC?#2[+UqDK#V*Uej#_Q68R(\-h4<, %[?k3sIA*QRX<6K9+Gc_+dc3,h"\hO_g%!`ZI,.EWiMEsE^W\Z[YU$o+o_9ui;e`jmdd?.68\4kJW]MD*<*c6La]46Pc(G6A.UUDc %.VoqWH*rqUQrjan/?ELm@@i`Y3Bg"l?#$a(BNAeHV<$aI11-gS78kKk"BN@]a/+:Qe9V&ZUGTS-:)L?N/SDn.cg&Y^k, %XJMtk_P/W3XG*eb'=?l2k!65B'TQ5NhXU:pSmY@SNn',(D9Ha\V"Na=T::Jgm.:.p@-K5PC/OR=HJ%u?J5mZE,6o*0u3r%"Yst4FFTe)enX)[<6t^4>FX5IE[NY$i@n0YM7]J:%3$H"='5d_scoSMAu;U %MeIg\N,84\p-.1on"(OGMAqC*.Jd>l/+rjCbf6hlD!I)Q*P.HL/!:M.Z`M"pi5!it65TKn:\^2DGB,K>/sfrjjP5_-ZX95.+L(:u %Be/g[jpr67CjA3P0n!S.COAQhZMW)/[i(-m>9;Um_%Y_o7b11u).bB8LKT(V=!I9?l>=FsmK[YDF %4#=nT)f=h*cYPJM'2*nM-YcKiknD+eoU;aGYI"$&Y45/G&e":`Q>=n?n&LE&k2H+Z*bLgklU#E[;nqB8j0i;&qc$b&TT!cq=@l,N %%[,[[b?&oDXKk`e2K::'K@pl*;Js\'D"SS)+$R?%.WW/peC*n?m!4<&oQ5#U.C\bh$dQCOchp0-&`&HPl9Ua])@;5.r50F2Raj2u %0lb+!J%-7CNaP`Q]&b#cI`sGGO\PfuA?#AN+L9*RK[t1Y"@TG/:7$Hd>6$'5Q0IlN"d-MtfuuZS<2@MqcjZ+/.O.G.933j1oj--*^;7q$4@g44tP*c6]\8dMlqF2>Oh2hpgJ[liZ"Yo5=T249F9*2rqOS[a-hlH3L_fi1qh'"5C_kc'(iKTH*)4 %&&ER1gkWkS.TQHt>6!s4%-,-Hd#FMr %n1H=dakpl$n.)RI"Laqoj336G9hn/#$a5<9XCKW@XabRb#jQ_/Je14)$Z5]-#i\8EgWs\Jh51u@E"C;9^^E^<1 %&+GL#6oP2_NdsWekG1,.LHmqobStA1LZ*2KmnVpIOAej)Z3T7V8u8-9TXI1!)drWXkDRZgD7k#OJo]45`L6WfhO'G$`hg03J9 %;EVG,Bi]fPVA'QRD]rnQ$)Df4pf_,..3?(@_U]>5i$G/kcda&T8rBOI#D6G9;CS1`&X3Q2"d@r>HRr-t"dp'c#k*P7i^!gYLDV[t %'Q5H[cQl0Y'#p4)@Q]BC4A?"H-H9OD`P^:RT[fQ;MMDj2SRO^'>#3K<(eX=cBAC%L(mTSj(#q"O1#NlU&2HbtBCY>j2PkYI^")JF %G\Y6hWu-nk'Mh.5FAa`;.3@D>Y>fso;EXSWQm>l19CW-SM&-(g4S69?8[RuRiX&BTCl7a"9(B9a,<%=u6ReV<&*#.Z@jo;p)(ScC %*^_BJVH)PeI);)?fdb1epnToJ4iMXSV0KM(fj0QW:l8nu?fo=P%&J4KlU_f_;EW_hj=\G^.)gge(_8>B6ReUQ?!P?n%&J4H$IUFQQT%;b?KZ,6o\CVNTqQmsY$f@O`gu\,0l*)=`;.@Pfs671sh1#?ZZb:Z]5!O0o<*n+FrinFTob %o %erL:JC@Nk9DQ;]KdaNPaXS!ekCg]:WoU"1K.0XZjs2MC%=Q-jD0WY!Mi'm/@S\*>[TI,]hltee.WB7`CK7rKC8^u$/QL1=1gu!#e.T\R#ns,1(/3c)'.-7A/RomB:2B)t^BFoWUnj<+^Y#96#uXY/UY?ti[:EB$q(+P>UdV\ab34lC/,Ad>l7Q=lE/?S= %lhn(5a&bGdWm'2R3p#jgC;!Pll]bJ\K\mBtNbA&f\M@>2\(W7Pm>7!sYO1WId'GGE+CMceFOkWgq(+B23^C1X'qYZub!=nu<.'uS %"q6jfiNq[52,HWn(,g5:o+.1\ij3#eV@/_-V!=$$8@Ea'[UbLXiD4BCk))UYKQkf> %_t-7P3fSpZ_t"TWl9$h!e9YLWTthXl\VUX/q&$uQ749M$W>^Q\bY29b2f>J1fZ+f2Q?_h-c?!6Ba=qSMPN.6Np6mV?$(UMC\<_&L %HV3Y?Q[@I?C[gGH?[Ul3_C,aYl]d2>KmLWNA+8T1?325[ipcdDG/:hU&@!FP?;n;X@h5 %)Xsto<8"0Bd38I]kb\'[G6G9P7;G"<&chi^FrT0G0M;]gYI5C[>NCc-q!&0C"EH=N9a %&fFe=)S=KO:6Lia04S&qkc^aPWZc;-)S8ro:6Mn(`n7,^=+$jFr[I/AN*YqU,YM8NA*j$s@POKm@fOk,88Db`:$g;%S;s\j<[tWO %$Ihm?[9!q82gbiSm+CA?nL)O&^Q*W#`[;#IigBQ3b&K@M_,G&%%"g6>C!X^Nk1P<>)fsY5'jEc(hN"U^+!9OC@`LFXGVO&grj/5: %T3M'MOlfD\GQrJG^!9n9DA=%[h_40mU/iU;;_2`r;St7X;p.a7e7nrbPsJC %HY=>\)kpt>dL/L)/.V]q*aT$Wr;J*G&.*@E$6E^d+mPOOgr-VP;Y&-S2Q,kN:AWJ!cHmI-g+7\Yj,(_!LZ;1V9d)Rk6/BbFd2qi)@8oF\Ipjc?=?6ol5J/JsRN9%=#M?YAZ7e0Bp_'F$A"T2lh.(`dZ2B*b,RJih3%G %deq&`p.90e`j.:XO)F5r>$kIr=8mq7$`4o2g\$2pU[NCU4^H?71QRmqS?9pBZWt0N>cT"j"pr,RF9HPad6a%V;OM_&qY7.CVR<\q %&d5JA9hP1TX1_]#`5W:D %7g3o2ESMFRO(tN_DK2W["iM?Eil4`?+4P-(c(*El,-[u\5/3*k/:VXeH8tTu$Vl-*#Th'%j8J]6g:Sa,-po2%/B$0!i5_teGI/Fl&p&FJ)>!H2/4J6gJ'hR6Fo5F1%S]n"(DW>AMWbT$>8+LGA>.lN'ks%M8 %oB/&=M9VDMI652kC*tV`Xl$\:"&4fMqKI,/]Yp9so@M=K=='t^i5aQX3.-,<=+;ZSkeuP_TZ(Tp %RL0raNqP&t#R2@6YLH&`Y]I51p3Np/1WM!Pm.oA9Hu8QqQaIQi:gW>AeiljC^,E%$m98K\/U=Vuo??mLG?Ut:?ha=e2;'kYYsoDn %c/[i:)YTiXd$!ctN<O'UqTF&d`SJFnC/1('LgJf1O_9DW_Df:BG[qR-L,d"G&Ut!b[ff(j %lnca;FFI/8K&Kra@)*1GL3=XX7.!]rX"=hqh[Un %U&Qtb(hFQ\_[Ac#gBsUr0J)V9[)(X\pX45368N!J[h!]rR1!lpN*ZEWH$%'/XONFm@'f]$>;k(/5+*NR&0pl %%d4)k730<2[sZ#Y>nq%LOd'NIBkE*H]63pY-5N,.("R1L-:]o/QN_]O.LsaM@i`&LAo\B=WgcV&kG15dROnSJ%d8V=(\Ze1!PPkr %*nK8m#/*409Q^RppbHdDPWSXq(*Nd+U$%+7pi8VQFlg)_Y>Y#+n58Q5YOC^!QRC^C4#nGEK'R')>b6JhbZ&!N\NBnZ+OWS/B1d[X %Ed:EYelLJNONS;V5s>]5aQ3`XC-cA\U24onFs6]:an9'QSI#/u-J0/!bknEd7^=X!a#@En)t`e(ZubBY<28 %5R=p_!bfYAit:9\#IuqtQa\as!9>m8f+:\lCdI)o:rq`)\1Ge*n;tg,E5<#HF'm`Ci,[";AT(;\r@b5pQRC_.B8dSd$EL`]K3Y#" %<1V&H5qYsKL#4Nk+kPjLiKF7^GlfTuTh5L!C2uFZfp:B2`Vs5cn.J8$l(1N%om:sY+Ad'kitiV`F-YC*N@pn`nm-`(#NT"*1G#+W %.Xpuc3,je5fCm8G:1WZ%:"ePJXJQk*Ad)4MbOLjq5'^,?m[52"XVLWsu("$/Ji#[@E--M:2Gg2B9 %*u5qZ.NUBHMo+Hi7)bYIge1KMn,7dk8JI%K_>QTP<#"I<.XoQ?'EVdP0J#DpU(En4O0El=Jn<@u$i`-!?ZN(L.:=-=WZ=t-bG">Xd.<+*>5(@itL$M"^Ghs7f2h"O,Y#L %hUMletae9-_5*r-T=iY96Mtf,2J:!?0V(I %.C5tsCAs$,a$[qbG!sY3X!Rlih`04`6;Q6.7u::C"[FKjO:Ks.gHQ?nm.(%OF>mnDUmmY"^55WN"\jkN()GkTB(+tFV6ECuQ2hhi %loj,)d='VaTP1VOV?kd0HOjAO"R187pVTPe@I)4F"4r%*0bd#!4)k/)pItR?4FN8SHd@j79q8pfT=maVW^2JAglMkh,?(N/d:_pA %2fe*rLrJRIf.#+Cn'Pe:&NK-/<(].l+.M8M?)Y%1?XFb%2DU+@UeHc9iiEHZ@W %Wg%N<8qh[CD:]Q=0JACH=Q^?@4J)n@;MB%d3F7ha4`lq^o(M*&4c?ui3PM5d$bq*Jr_DC!HbOc.]"+6 %%g&@q.7X@[F:AA1i1gY;oAEum<_>@Rp]U-QX7f\2oQ+A0h87Jim*dYeP]?a,4C&M"9'mpV-19^p?1sO]Nl4(jDk([@PbV&IgJqWb %.Fl$4a6iGp.=FS43"PPK6i%!M]F4X,57\If2`9N%(%9&-dPnhbcX-P3TU+)n)"jRfOo-W>]iKVN'cCjl15\B"7#IPiH&AQIe90*hE"X6(--"D/K2P[UUQ8JSp %[J8!4/STK&ro,je/d\o/#U1)T)ms%s*+$rD@X;jEUj,^/Dj*R@0)bhu;`(I"D6K#.prsq53pC@!0S!-o>$6l:3e0DOF&%$:> %7s(YpL3lfqM1/as\kl&3l/.PYRM)0oCmridqCQl2M2h;T+aqhGe/4,$*7?d!`H[3r*,D#d&eO6W[4P4FT':^`)5jA_](sA1JaUB) %IcD*>-Q)P%SoK(\-9LeF35k(?:9Ki"3DNBAnSsT<'1e*2hsjT&^T`a-^=BSoo!8e/^aKPq/<"_Xp35*'fM1TB1*dUm+aGO>p?=4d)%9&eWoO-s2N+G#il-8Bsn;,Q2 %Xg2]<'ZW0r6UAXJ:(J]lg*e0eEI'V!es>R9,>Jd*aY&tk$-%f3fO*kaXirKH6.<_jNmeY0gZld-:(Ok1q+M$?U;QHpcYW8U';=gl %7R'te=f^V,AlQti>*Bi58a/=?iGoY?-i`OaKqH^)lg59UV&Obt%j03%p4QFs%MV>6`+ta)5"u%B7_>qJ+GZMBMcM %JQ-Rm&``*DqgQY<<'Uu3%]_S(WK'qOpCl$>D[0/HS=]*irTuj"VWZdN.d46oNrF3LFFcGQEC25>NQ`XDS&*r@4c?/6"7`Q.OuDQX6e\'U;%^>"Z3n4U;*Q(qV"3G=W5CUp#8E`?T'!1acX\?50/'*78f+"]ip],KrDjn%VjY_j?iE %1X#i>iVWcjBTM?mO.c"r#"MWX.mJCjB0a?5(A_&(QIN)YPj%->1c?L"7mtK2@4W1],9g]TE8pNf25dEY,)A`S=$LN_&ck@q>o,/S %W#SC*=*Gjf_p)K5as@+DaHik)DQ/!gMY,1+5\XBZrWLu;#<=h-r9 %&7P$3\B6*!L'Xnk@;m$/dqfXN7"2,tKU#15$k_hTZ,L!dj,e>j%$/#jW!cAcU@o[TguUH;+^E,+GIaD"hPhE?s#Ti2,)/Wg&$j,Z %DQ!s;n:muK,.OLbY!T)0,m&flAO]!d/eKd*l3n=-G9q9tLY4ZSIh+Rh3Srg.*"Q\(;]a=DnGDMKZQdFk5!)s'[uD@?`%Z%$UuW(f%^QN?p*>D9XcZK=[gtJE0VQ2sO[HkN-ec@S %ca[mZA/P+/)>EMlC^V!Qm2>XMYRLI'Unr#s#ckaZ:KgBZ(1]a*H,b9u4c)9`:F;>1%Qe9Rhk"iF\;QQ7kK,h#RZt=-SkL5flET@/ %GqpC9k`+pLpq?PTa!OPWDuS`8V['ib]KAuej,#>Mauf*>pX^l\S=ZjPK3Ok;O`nT!:(NsO:7`i^nH:I>?CiNkOrc:&PNd=D"C5Vj %hk#2/>([uf^i.Q/D_t\($iEbE`T_qKM3mDI]R<%.a=Qi8o19,Xb00C`i2I,'q!AsnNQrA^cdR9s2d.fd"b(g,o4.]u,&Ki6)/7<6#PknE#1,O:T50Ho[i9\h6+\QNMOo1*W$&f_M1`jUC?+aO[ %E'LF"2WOaBD_8#d9>"WIE'L*ngia_V#+B'"V=.]/$T,nV&PTG$#cr@mV+(0!W(I*8G"-Ai_thC^Np$hpi,>:? %grf4r*h"+/dBC.Gb#`fC*/8(0GJU>Ks.*ab48N[1(X*KH=`'Q^!3]&(#\slB9SZ-s.$hW_9@YrRm)h$rX=%bUi\FA1GEPr@**'#cS.&D5R6G6MRi=P8\@R-n6Pu(8),MOeJ>@lAo%eqX< %oj*u>3>fsGX]1?RW/!0/BVg#o;Q5=q3412k<%gXc2MG*`n>&GueY1L5XHZ %PBkqih3l;I%hWnZGGjZ<^H!=4>JKdmGK(J8`HdQ*DY,S]N"4)U'GfNaMZX>U<8SdLrL1#+e'!97B4Egu"M8WGc.a9#p9j!L?$4Bp %o:&>CV;9ai)3E_IA+.U@SV"'V8eBesTmX%(E?CEm22H&tNU*.J6eA4n6G\!;Te/XNQ`\V_:^C461d[>s5p\Erb.o;4,,o#@4HaG- %i*3`6\^a&u]9[Qo%pfbM8U?\S.!Ts\(IWt[LVgW\70QP^l_2hH[eXc[g>$`Ke8jmnU!>7I4'@j'#H<]AFL`q\hf^X[h,`S!7X\07 %,\)2Zn9*,#3HRi!>PBMe';NLfrc1ErC;3m7FW:4[$(RAM5[^G^nGBemb's)NM]5bVRXMl_O1*BHB1Ig<7cFfXA'sa;?E*D6@Q$0r %`MQs.E#3:a^FPJPROk3G;N>8BV*6$u9,)fkYO&3U.[NfDqOX0:'nU,!`aB0(n(A=B$'f=s+o3eWKRAf@C&4YK4e!r1e!sZ$a&FG4 %,u`-ZHd+HUrfgGG7^;ogDEDi[K3.(1f6$2dZhduLB_n4sV^t@((;1_[?:liE8h+k',)I(4[o/1_-k<0DHhlI/]!s0Zg1a_p$AmbMCoCXb.R1Rn_>2W.7<6n:%WC73*k;[Gjqn/,#9? %(u,XKY^pUh<-5+%4*pQGRWf/A)AbJUHP#F&-p^L''_LD-=6K6-3^oMN_IB"8&F`MHm#&)P,BY"kc.X)5!rJrlO*mXhb0rTsX?0>_ %:o[h*>U^7O1N2C\r>,DX\jA1`@S3Dl^5fXeW6uQnV.s]%N!hJ[/fQ<#ir[IjTt7J0f*.VNYhdaoORd=O;I'D%<_D,[6gEH/Rb$:U %V#4)XRR.\%6gF!QcL30.h*^GDGGl:0oEC#as_ %djQ`che>k["5`;\Kj<)$d4oY1;`2/-TAYW(!k`(I(Yh@S32ncJnT1`\0JI/5/-.m_mSh58*)%n9^K!bIX:q0DWYuj4D01NWL!prNXb5ef*puisR;L?uL1h %7$24UH9TA?#(jZAb"?A^aXps4CT\LXP4fJ)fW7!-cEH8fbj[/jODZ_DYZ>28ST^*dSrJ)ba43DP[f&1fmoEF2G:NR"*#Bh_N)c[l %9JJ*5JuL0;#3qajf` %rOrGjSD: %4[K$9UmVYL'Fp_Wi8$a>SZ[(Y9ErSL$(f;tQH:gN>G4Vb&@iK#Z(8l@_s]iXi`_GN?XXe#8'-\m%);ZYR1\STj.IIS:lsa7eG8RK %ZO4H7B8h\EcHB&8B$coeD0J]V1W^dpi3u'AH=]ppd/M$n@@^+n#M3+>7t=i[?MWJB\<:;"\!d6oDs;W)-_P=ni>5DG7_d!B %M&Rqu#1U)4L`9^TVVn+aY\,3eEC31LGd7X?3])??#'\]Sd%U9a2E9[B8_b$DF_Lc]N?AENDQ%4fZmITVU%r1MoMdTnU%r1MNd2EV %g;YN/JkCg\:YV7s+nrIU)92$J_:j=hZF-ILXg%cFej*LYT!gL\mdhXj`k,Z:8r'j*]0Y&&4`m[)UT&FdOuqd7SF.3R$XN7g"EuFr %k[Ij_"c^ru^3!G[6*>@sC##$7[I9%f\m1jq2Wa)cXGfLTgmgX*4s6q_:o-[q"\t_G=hPqb=8)ABiIX8K9h1%@qLs43jaL.>RktAu %c,seY[L;8;!X1]\]+:jkK1YE3OLucFfTCBohMEe7$UrJ5ceOZC3^[sbi>[Ze)X#@(Op9B+QSWfamiUb %MibgW3iUO.BYb2M;Esi2ojcV&;q7nr:44@SZDK%dN%3]*5nJZVLKSIbPmT+qDB!f3a@'59IVj611(9UP_8.j&0arnre6IUqF-rnj %\h@qQVqP@6?OSb$JHhaV2$UW)coXHVK5,EWI+)c^;#KBTRVT]GDT.?BJ1d:MWHf!lHR5>3:%rjU/7hD*a6_'Qc %(7IP$P8X3agh6o=or1>H]Y_Z1i^P`^p)iIAASHA/@h(Vd>j^sF`&9r3#Wes$BEi^rE4*D&L.3kQWf=Y$:1\Q>X8.D^!-AOX9/7'LV,WT9[4L'F54)&J!QVN.'h!O"1N %;TGSQ6]U'eH7g(D4#fHMJH#H%Bo+rpbjU@*a$XXJ?g?8Z:etB$J]Mo3A*;`4q79JYnk:&[nUa2DcTH?o1q#bl5-NHje(?:/r)1T7 %nS5!f":&9kPTDRa8=Wi,QtOL-+>SlnK:b7'7ljR(O0)=to89fumEr9B?EMcK_eO'"*h%pKSGX0A,%AQkP^clOIg.94ij']\j%V_D %Zb;WZhSoek$RR/M1,g@!52U93<5.A>U8X.SE#<$`PRZ2]2)( %eosZ$',S;01)K6$Ed_2bG-?f?(WMJMJ_j'/:M#')GBcn8W_3<2i6$#lTSZi8e_4a1OjDt[545:8s-V`O;-@V7XU^TZoV*&2kFI8_ %E43KJSM/^"24)l1F6Ec*(uW?4>9uTZkQ5Yf5.Nm8$h&d %a(sH%bRe*_q-R&d>]`uL^-mm8$sW:>C*8ZVDia9"9a*&[mK"=XLKE %5>Y^m%nB.EmAFJ%C+u@t@>E+.;qa!n?jpMOoEK0$4-Q"1T/$6G:@K(22qF]/o+]gKOu3nDTh5#;I:M,S7?8Ur)1`fk`3ZE*,_ZU. %n;ID[7.N#3MIk$E*[Z\rn1%C^)!6r(5-,g)FAA9;45GtXflFqN*u6n"%,PG$j2:#s_pg7bI&.A?BPIP:=E,%*Wn/QYpdl2r0?fesjZ+Q@=H$upIJPWj'8U7MIW*u8AaP#2bpPX&%''.i[9>V3Xi]^2_ %=SXe*ZKVH+7/o_QXUeD-Gt=%Kk,9&`kDoiet*;i,0/7D'LGmT6R#d\NhG?@V[B1[]q?2?E8\6oSSEmf< %$Z@0?&fHr9nl_&C&BHgu`FfM:U2:%6E@.`=7W]X#=g`S)Z%\d_>p,N"?'2lk%s1@QnaCD!c"9"UZ,1!F4gVhiAG_=e&[`XZ7]dFORRrN4_eMP"gqNDb5'u+Nt %*c!:7@(*7r\h1)aIm""ppDeGVkO(aR.J&iMb1%>FAa>F;S'C5a%^SR>r%E/Tjj9 %94=iB$nUOj+XeJb4Q'ClimqEsGJBfMO'g2>W?]p',YMO]lm'DO8#Tm-kBV10[_a_&SC=i%Ans])Kn\9e0jCij+MHY*A[ZJ3&%!7&m7jLk<1&`o'FGb/T@MKEEck=/RY[$\?.I/Q4U3nQB9c$c2q6?O/%\W %2Rpp>FeS-\K"L+0[8\OF=F0D@n_+TBOD%j7X%Vp8P8]bE?aANC]o+GY$*b\I8];H.@1a1H&2_!s&t?B!1N]JZ1.G["?)jotJ!3Lg %5MY8B@J$0'Q?gSf5In(k0sOnAUk[`pp^?%:jqbf\(I4uZPiJa&NQbE@RW.](7UQ9IU/eVLe5=Y7)?`_CWF*tfGTo#tJQJMio_*P9 %0l(KVU3;8&]f&9n._COdeUbk[a]J3K@(*(8V9qK?oO,Sl59.OLlGrc_6N:a_178)d%'"DKKdrYQOBui2ks2V56iSVVq;S<_jTrja %][\"S0_`R,eng^[V=TQ5I\WP43pIK0DBl790TukX7"/s>ab=/`NtWIEEaau7;5S/sab?E[M&RCGEa^Y+nm]L1/kciPZ!esqL;"$S %2U$hdYb0-t%5VoE60-(@R9UT1Q9K+%[OP5XZ=,'rL<^Vp2U(7!n/Ic/)eP+'^a"VE_hQeekr\k;Yu68h)j^9.jXQA%J(F7NDB$BOkC##-14pOBal-u"<9F-Yg90Ae78-=6DX%5*'JE'p %JrO&d4,P.[N0l:,h.+)GYtfV6*"4T`Xn=7-?Gf]NQ6Ws]&+a6ePh;Q1OQp;APS1kY%Et,C.5C`,X %`([fc._mYS8aJ*1_/D,\7"_g:;XWs@&jO@HaadfD/Q3/'N<-rSKdd8h`dm$N1o;7[)Zurpjlr;TiHo5Jb`)Y0U]Stc?r3VeYCZtm %jT&Wtk_7b/fRkg^oKq0K!l!aZ'*\//@l-SfXngapJ1h0";YMek>G?LcpdhH;/1??\s6?4D'U*53M %92!e)Y$;9`1aL>k(*fk"!J\I81&![)7n0JXQ9@<1UZ5R/%8D,6B[k(XD=SNPNbATZrVRMuoRC %\7"I$P%R\0WqX$`#>VB\3na17&jmlt'7ZEUc\Lst')DIsptV;3o_-<*`p+dfo"V(hRg2sFF8/-es#!V9@pVT%^FJL4hP:O!,5S'6^o?2]Fnr`Qe<'fr&dq2H1tNap68N#N,!.%AO\ZqEh>*l5Lp^'RCFcO2_e`;CO1"J/B(O&1^P2$1DU@__ %rW[\nXZR-V;`p)[kZ?S^jf?"2%M56W(PDlI;puX:i/A%#6aL@&CiN,@<+_t(PcBr&8Q+?\F,_DEK>)d$A2cg'&F5K<^9AiJ^*+9S %AD3&GqM&+2?RS!Fko4)SDZWX'/:Bl:hM%`kLo&GV&B'*mKiAMdi3T*DLn/lG/;uS'7/DpGqM&*#YaZlQFD%C)"n__rmuD.Z,LKhYZ.NAPThkN2#M/cud4S2oK1M'kKldI7(+$XetE?V9_BU*"\%RNiaQ"hs;/#G/Vff`8\6CAOe;"6`_EYGJqog`1l]5m"eUMZ%>O( %&PM!mMg_dn*O55GZ&mg-gC[*9&;qJ9.8piC1D'cl)D-&[ql1c.;SP7/SdFh7LL2TGIQP+n^'X4D64%W^;d_;tXnsPDI_0CiPC$/C %M#;G0p!5/)SIN?pRVGSq'MIQ"!Y#H%;=*Wo)od)u:)CW5Ymg3X0de$<-oOK5*CWil>^ec)e:h&PZph6!8IU3l-(p]?DhH30-M^Komol&0#Mo%T.gArd(=2Yl_G^\B.cZcR.;q^fAmh#CRU;N%5oo<\VS1@bAdpdLKY:X:%1=ZT*"ig7mLp0'b= %?@CGPOZ1[cmS,L=\0SV1?6"9'$OS)*T!j#hTBRN+I(Wn)!E_XGdd?8*M&+E@INAo"dfll,K(I"r7'\&KV[G!6I0s8KqMICjI4A&G %[8oXjh+TAmkJ`"MJu&kOB+*_[8I"F2rn2mBog>M_)V7eKe/:K(4dWY@`SK!L6\u21C%A_5,QdC122`DJU$#KQ>DJgqCF0P=9 %\[e]t*b4N6EcY14>+(cQWVd;L4$T""RgM6fGY7h:TF[SJ`dTBr2jGUhJUsH9m83#Y0_SGU&OtD)aOF#I7MqiV@SfNjoMH%aVfF#@ %4E;.(W;-KR92_bb(*u_&WqkSKqPOY0AdcJ&T9l#8+3hPsWqf=?+*o/Q;tKh1air7^VNt"cm\b)H*5Gd;Xe3b\9f:PqbYZPs\u>gp %?cn(<+t+[#'kO.^k`cJ<;p!H`ji.\m%3Y$8<-7Q+TRJB"j/L-P/H&OcP!)1g_9>^:-J=$"I^X\T2p!,\qb6rf1g\SfI]A'ZRgSW% %&GrHt@%]Q>U`/e^'dWu$G\3ed-7&fHYA@*'ke5<]BrDIUm'D/GPLmO&.6ip&Pb_5B+:RGeMon)DJ/Ff4tqQ]J#G5F[kmCuF](.fdT\tC-< %YO4eVLRYpU"T=\i/Gs;V@sZ@oW?9;^5m>WQOFr8U#Qim&Om'><,_l`)1\;G]j1>CmeBVe87n'QCrM$Ptn]LEr_7<0g712t/JYgM*.TB.a.,>5rJDFBrS7BogX51h\:s %:+aY$Kctuje!XAV@GLA\p_T)%Fu6Bb2'Hu_B7;"k@9Q:`q#3<_%k0akH<.iS8YGFU'e"cW^!(4Y2roK9,qVAilMuq%q3i;LQ%4cP %5e!8*d"Kp7]OTBVgSo*J[BD$:?QapmGW:,3pkZ)("S23qBZ63>+!V">nPZAP:,mcgcj:O&ZJ<5eo')gpLb20Wf %,1(iMA\lFrXn9o.iGVCM]9R9"Aj)/'B?ouB^X<%%Zddb"D?$kk#2K1k%Q=7:rq!n\rj*.m5Vl&(fK]ET[.FQO`BP1ri)IM*Af0/c %!#bjP=CK)jmO*_%l86DMi<:_?$#H:!'Xkl5XSIR_?it3f2f`Z#=\!oji9*D$H;^.h6mX_;#oq-C#2VE;DL6W*msCp-hSgdJ6)Sq% %"EqGPgN7@66]iOHr=P:c1c=%0=hZ$7?9Yd[NI].o4ZsbY5gt%:-Wi=^M;QA>f2m<>>`=X(5Fd(WO1K8o=lWGXf-ImUP3,mgE_V_e %Ye++(-Kr[^3fpJr"eUJRdD1iU5Uaa6BLr-u4GtKQedirtXi;"I'\#e5j53flRebR^FHMr&Y._D+ZOW^\'K2Ge.mr %@Os][%piHf[Wo%J6G8QI?f6.)`TU0:&+6I+"\4.Um"C!obbC7Vi<>ac&2tTYHI(\`:qn"FrK3H=l7+5A&t@ %B&p.,7OWT](sL*n'rRbi&[e*\"R1TU3Tt`36ooL]F+@["qTXe2"@-*lE#5e$E2N9Afi34b1:f%M+V %cp\e5_$OG8E*mBtgtVjEY3cEr,8$N#*Dj7TI<9TM#:YH6qp5O2;lE-.G>902=8c,2FP)G:kQp[NRanY!omI73XN4k;W.^aV=0&9,54Q+AJG34#^sH87rQ5m6t*:.c!l.SB*:gC%T*?Cadc %$@09*\37UQ=.%"nNGIrC?E[)#n;]#in%\@Q.m;*Ue$JnTRf9r?-X]Ofdt.;7PrcqNNJX@>nTqTPjtgru_Y0Q@:dmdn^&pMF65#OX8.2D>tq %oC[QaT)Ie_qr0StgIQ]`dI1OFW?/.Cg$iZVAc6TiUHA:`-lH1.bA%t&!+ouZWTP:p:\_=XXJZDZ4Jman1aDP7FHpA_Rf,c.6o,J%b`d8_LhK9;R1XMs\J>*)cO@KoJe62R8R8Q5DgT$ql(pM!Au*ETpliTn/S;[&B8eLkN5RM> %^P+JkN&5]#E$q*:G\2QKRqP:NR6f+(?_SEpB82[2=/$RhB;Y7?/e\)fRlAEArE9R)po)MBPVm3 %U)AWrCdLN"3laIjW&gobUnYPO6Ra%Bn_QM*a&F^PPp!_aLuP`>qTt*Y-G.YEr@Gg5a@j5q2_3@3,BO.XjS5C?IbO7UjlUf+HS0E[ %+N5`bjc&2TUuSG=1[U"H1`F9s?#(1R8Grm]=4PN&:#']`p7OY3L9RVck;.:_>p\\[l?su)Y#<["=mrC;SR*p;oc5u9%2P`s]pSou %K_iCmjG=DV%^]e5h=NC4R&q">8>>P+qm$QqoeSL9SUC&e39(CYlqV>$!+,BLcbea7hh*`HQNC]`p*-JbmP9s*.7!Eo$shUl7fS1F %_%j2f"Xu7m4TX<@$QE=OgKW$Qo?lJ'f%qUHRIF^URF4aclf0P1*"SQ'/';"B3M[Hpa2/Bp%dBh;ZlB)tCdpU82D*hh@(1mri+t"n %k4R%rkGM[:`.:j%pT;g_%#use.KG%2p[UhZgUsLp+TguYXRQiR4J2qbpe]-KL'^@L:e$Qp5Fl&-8MX8^\+uRl'fjrtI@.32FPHHI %)ocW,C_Fkoj+^jP2hU:hV*d*p&3h5U=bIN%0&r:^!Xn.ApT)*R_FV?mPR?bm_j:E\ob[DC_bsn)7ordkE"n[Bkm8L_0N3IpG@bFp %bg^!O(nLdbop6eUVnc")L%etB;IHZ@=0;l=UIsIAJP%@r9-6>VBSA/lI7c)_gI4R*)tbHfm2V4RQ5-!fcQGtm9:p[R+JEe_Md?OK %[O'hYdI..m-/Vs.2cZ_s74tc1%aHu:OpgJ\f7)f8f_ME?A*Aj`gjX?O5>+0I8X`fQ5ZJW-,8##&aeENA8nQp+8nmFY0Y/KbmRJNp %1[dTZYN$WLWjI'^BnghYaHf&NdS+V;ZV[H#J@VH[``>oTVO`p3iGb[WdS&73@F[oRF]Q90D1A)$QL4XPF,R(T*6tqE#")QF1sWJ] %#(rn+YW1*D'b-2kYW1)?>0I4ag11S+1KL2gVG52iY51KE9KNl.6K1\.'K8;dO#(WNgn=6[(2)?s\3\]]Zr@Nh1JR3]Ep$,c27=X5 %<8"Vm2qWggaI.dHRV&8'0sRFN.;k5X'Gb?8l08\41Ms]J[A8ZK@\9mI"W'I,S8"2HL2$6&EMhE%')b\_/G$s<3R]=oc-5;.c^?[? %DKqI[R"sJ/Fl"0Df5kGULk3VEcH@G,D9.'Pe-MrI_82j)8[I %.ed47'j">]e$5f8eN_TfU,r=JrjSNbDs/NqWujo+As%*k<&f%?l_)$#fWbV7ca$aS@S(j;8P.V>o,8QGq`P1HMlEJ7(IZkHJ*gn. %gP<;N!@N+6-c\Ttk`>,_J%Wu3=6$945G9sFpA2K+q[[1a@^`b4Ok$k),&L.+ %hM(i`)+*Z=PR[CDAkuch*Cj>SCOc\[PfGT#g_JVd!T4U6hrppU8C_0\F][CEoL!;oXV]Ws>;U/I-.Tj-UL$CL'7KA&:[4[u'R1L>dn_!/^#Skdn?"=> %`8Vs6n^(#MkrtpDo0tp,8:dbW[r4YQpOO50&DZ$,-ks0V9br`4@JA^O$D*\?g7W@Rh%S7D9Z]M/>f5c2XRs%j;JlAH]WGB6?Iga[ %1OR$/UC?rIB1!9:C_auM+d%ODdKLT5@O7mr9YeHi7W;cT\G*]Og$73'(md!rPVbn#V9-EHt6_QmAF*=qUtR;f2e1F#W5=+(Z]U?^ke %qUnkRb8HSnD(M\ZG^'I&c(diZY\=sOl!(L?d=JkMW4/9i&Vtj$k2(/UQ8tX\1m^UY=+4^O`l:S*@Oo'Q6ZEMlF$%kd4(W %#rGB4G[9pb8hDEU7U'LsEM2jB*",uDAZ[bh,6<&i2Ra'oN)ZkGP(uQ0<:Y#<69uuA;.^.WL#T41@%X'H6Lh3i"eMEGY5/8)@NfR$$>$Jn0dWRqr7OS\"_81sLq?/sHEseafk?jp-l]XcL$L++^ %p$KsgRPnlZ';QujlUn>0$(k"im0`8t+`S^Vd2.,M=>-DF&TiK$<)3"0eT#g)3g:?KV^H7A,`GoG&)7+W`&IXsT8UX1K^,RQH3d]Ff[=,QD#o$("dfPM\FB[8tm95H9?aa'(d]EhPSq8(nN %d>:L<_[3(W_F%El](5h!mT-q'p7lP@'>0WG9PXGTiuLeU#JFYL>3!6HBA9p0\h4rRQUBNb_k!El,#hl!`_N]q(mV4Or&KVu5CF9K %*j=0:>,b'X:+q"t9-o1r.g2i)GHS:`i*.ZgBPhr/G=RIt4$ci'EcgSR?;- %_R&&1*3(17mQ`(@<,l1G=Y/"6r %Mm"S>e6'RHc%uQ#^tC&HJh)ae[QBk^EJ[KQBY.4-Ett5BJZAC.)TQ0_q4s/eV7!.k>Bm/rB&nC\boaAnj/ %.rh#o+BO!Njm;P$)!%\mi/DXp$o1*\%XhgC@iP]*>kQ3Dc-J-^jJl"_e3?-L6*C%ehClH,J^_3M1)T(Uoa!YbK3\)++EAG1En)Q$ %]'pXIE\/u_@!Bi\',%o%n6h?Y5!ccChdB8W?_>*L+BNucmO3)o%!'lG)Ju(l?kE+$:gouFg0`q,j4F_soa0Eq4;<\GqX(%N(]F1k %7PC0fFmM3n!gRgfkkSO`.&Uu0J,sfS^e1gP.O,XeA[;,+-B[<2A&>@\P(d]3]nk8+a;$I95!M(0]ap4A*NX]8q'rtUf<:fS5H?&G#8Ps[jfam %%U-nT#B_H7F9L!.:o?uKVupNjX%$U=Eq7I0*H];'#B_H7FB%qU1oNbrVPChe_m@0fD\h[h\.@lc[eUL!?nR:U:krLRLR"`*k9Nt4 %+Uiua\HNjJfE;GTUJPfHpnL2c:8g'1G'X6j0$h:ihS<`Ue!3A32E:%80kP^JZGBr_SB;c]d0>C#4j\C]*Rpc"e+)X(V0A94gIgl! %G$"S+lu(S)CiCFkVH+,`Kg^4!]S$RuN`dB)q0>["fL'9B8hI4QFb5l8Phb\G- %RKLj:2plaSblMJRh`rKAja]/cDicLfQ35G!3Z(i3Y_IjR(Na=#37In^kE/+6cftEfa:o--!G>^Yq]o5Ki&TS"'#]mJF1Au'`KBFfSr=Hedc=G%9^iT:W_Rn7>!=,Nf#s?88C[J=?"ER/.8f*@Y@:&mY5n"VnLR!Mc((1X8B-Dk]j+&qhWS/-r`rTi- %]*K38L\E+b*c.5%3UD75o.M7Ii*?&CS/lS2on,%9Q33/853LCu#/l.u*,mP&3R/,E^\#(pCE#C$@6*8El#UQX^^\[UT(DsdqAa=_ %QN,Cr6D2Z\?DjDV]fQ#Sg_s@BT8N-nX_K<7B3->T_e0LDQ@HPqHUtoU3;6H`rE\dFoChQch)A&A60+3ngs\IIi>Ht=>fZ>'LkYEX %G&^&U999/5\,W7A?7tEeO':RS0ictt*aF%NL1/]&RV[2Yh0_=VMAAisk.2rk/7;9=ceCHV;>)+S5BG3Tj,XVk^T>%3^i=B%]=?F;FKLL_: %>KOGcUQ4X(`%?(L3i]l$H`MC(b>h.UgL[N"mE>i..j6^'EOd*d#K3brdhPoqsd4c;9,'>Im0bLP(l[9p-aKN=;ok:8#;ic8i2$S=0j:T-$ISQY=U %8Zg]d+)^U+2q+!"T9;j=&t_"W"n"[)1RoacWB=%o,[O#1K4kQU!q!(&BhB(+]>)fHCXY`p:B0YZ^UV/POX't/O.*AY`roi*QFD`Z@-Pu9j2qsI>r]6gm %f4%S"p[Ce.?;$h0GgZKJD1ZpVH.]Qq&TD=2N^'h9lE57GCBBF.l$\%D[VprZf)/[rQn+r:*B:Fm$S8r]G@@[.3uD`0c(.DTA!/Eg %W%Ch'>[hQf8BdK_[A=DAKp0)%qoL/8Q=HjFE8X*K0)1&)m*^T^l%/R]\@N_Qm0J8Uld.N=etC:6a4bPB[=tc^9<9_c:g6q&&7]Q; %L>(?\OreCc@?gY5gf7t9`\1?h@\,O*E]7kqmS[9q+Z/&u+H]9f:Sm^k.VKFZTd*W?A@lAQ %gK++&J99?^dO2f=clHJoVMmgug@jkI*BGkAFJV!M9D+[)o!h9'/t2S7O&,3a@)dHtsBEd$j. %#lV\5-dt;pcT'Wh;Ra6k7q/W)s-m:e2mDDT[L"-hAG;+iP'\'k%rAc`/o@&0ARI#cP\T[6Af*s7)*(F;JV,\$HUY!_S/3LF(r@r[&?hid3_3;L"Ig-k\\a+MVQrSL&k(mFr?#(js`4kT(PqDN%IL]:`Jo,B)+X4J;9Eb,/aSi %!=pOC%1D$#9e:s,^dHEUl+:soi!Ej03B9h:SdQL[eUWEMC=9it:Cnrd&'S%\^&oH0Jr]T^34Xs$.bM^r#A+ta:6gNh#A+(05_F;h %2W-1H>4XK,Tc1q[(A2=UX/l=6PQLBjCr!@g687Dm-?ZYo(2j9r<.,,d&'P5?or5<(_/W/7P/$%*FRL3OHVqPa5lFGIJ6>]7CY%_s %\j+e286.j?(\7ZSJ6HWj#k`0:g!;c=ei-;lJ6e^RSK"]^dH<^Jo`:g4+-CY-<%#;Gna*IbUj:8NrHS^V]:47!pWAp'o=O@(`IkO) %>1c2]/"X>I82T@H[,SpPG;8+iYB_fP*]u*YlPqi6*peluR.3;@Gf`M9@&]s%QK6&?nC&2#ms/>#U[)A[>Z(Idq[4XCOSm.?9iiYlmHQQ]ns%XD[a8fH3*DY._ET<*re1+R$@Mb %AH$>K^KU!-((1QVNaB\D`^2pd36hu)(,QYk5'fIj4,+d@pCtYkWE3+="+%hhN+cKogE#mdR"!a221U1_l%YenU=[?[(+Ptihb$j3 %ae=3Ld!JkI7-31?Ukl`S;_`]IlD/Aqk8o^W:HbLVA9Whnn9GIF"IGm86V8fTpdue&0H6>AV3ud#ddb\Qlub^Z1qSL75d._`kMEj. %4$GsFlE2_rN8%R61]uSM2BmG$+e0@)ceGo6ccbZ*bO"$Up?ak'MF!e[hS)-1!JK4_Nf.fd %p+7_`HZ2k!<(^K24e6`5O2jucm0OsYkFQl@.WBFrH2I<^qh9rLcWfL_GEdl(ceGpaehQ(-4[1X[!PYErD$oXb>6Ahd"[I#^4DXKZ %muM3^l3s$)'.ch(GNYR,Dbh[gYWMRp]5)m5tp7NH_9mcD>1]:9*86$R0M[/k?oL5'/PLLN'Zq"QX"*Zf$ %Bog-:LRq+=diQK6#5M_MP][b]3qcg(;:^piPC=eM0Gq,Mf!U@.J:9Xb`k"E0=\g_*elA%T%:u)aZ0ml3`%MW.B+-d5U&K0[$6qoq %P!hUWOSVVE#_tf&1&=^r8JKrN'GHaP2Y]q>pe.@VLI`+k:(V\Sqng]GE=O6$9C[X+'XeAI^R.E/Lq[c$+=3k@o)G.H@9u0?e$OZo %1$L[7_<`ES)80X"?ACPJXECiK'T(i?]7^;[IAh-1B"a)W;?jc))cTEWrNpk&#/o@e_M^eooS>mJ`$2tF@%ne?/Q-eh %$5mca%Q_G$*cq[/i)Qm-[G,Tf08[P1M8I>X)%Ha(.?)J@pmKKr'EWDqMl!b6mP2l@QJ=I6(BZEAN.(\Z]e.+?U$ca]fsP,k@qS],:<::tGYAIW>#P%%TF%qGYd7n4 %a7ek:3PVQ.c5+jLPeAZor\508"e=(r:<9Z,'XT-)2A$%WZ0J\I'jDM^dsP5\J9/1(t^m64dE\J[mNbnGL!iV$N,RJL=CO %HWsPX/kcUSPNdBt/?MeAlnbI4dPeKKV_B(0cq5jT7LE[AheU0rq8/ZidKJ2$f+LssX^@VU+7Y&%Fo$?g=&Ld?d-PTKNh^Ps,V&!UY/a %kf]V8d%7.Ti+WXH!UY0rWUs]I$Y[j"6sg/3JG))koOZAWB[6dI)DBq.DU84#8JGYu]$$X46#FsVB[=$1M=],#,h8`4HRPY`.!-7s %FhuQ`?en/Nj]!TQ:YeI>mf\c^mNSV_?pXD7>pRrXa&QNu>pRrHLk0]8%grb\E\X+J01]`o^HG@(H0[*2m=UuH56efOp,pqIP/+ZP %mA]_dcjOO5K3`77#/,Q\4ICWg@F,Bqcbn9:]g4"RH`JG)15Q7BdgFD21[2qm6R@JG)+KSe@#K0;(H=Li(X=;;\]rApJKg %YAY\Y[[qr51Y^a&?sNJP/3agul(8peVu@A/^Q-kW\h7DJNuY8HoN_aI,MkBe1RfU_*/0)1p\V-0UX3K-TZ%P'NC^DqmIHsUgZa%! %*PE^V%%tGW,C9"[4YJmm%nb7?K""hfildEi%sU!)c`H:\^)Uc_SOqn&!Hct-KV1dQD[[b6R_p-J\8VeOMdG+072h5q#3bL3OYZln %Cd'YrJ*r[G?(J([NWF5e!3pk3Nra@PTL(UT5_iNR<>KtQO?PCL%LA`=T1k(B'VXGX[6XBQ'/>#l5]U+.eMeNL@\=H(pk<.Wg.>"* %F]sk_#4VAJ!s5Em1%#lD$NtFXHs"D\L1-'##11Peaq"TQ6NFOk"oMlf^GcmI&oV;%o?W:EM*d5FgRq?kW+:8Nrhd*(F7Gshe-tGAN^-S47kI'n90rg3;j3gH?4RY7j:X7,-e9)Ec^a83]!Y515Q[)j7,JejKaL>g& %4,HRG3=Qqp25sg)Cj>FMQ0o,3lq8@qG4St[$jnM(`h605k/JCh;jAD-a6Qt#bp3AMX&Mu3c1>]e\`W_HEj:$AfpML'gAp'O"6lVI %l/,i,6a?8l\V=2b0J.]TY/,5eDX#>,T&d('d-^%&)0A%6JSq*PYqk8)6.#!;``I.R%UsE2+m@aO7_4>I2[bHB# %70\"TM62u_=V6egOOKsq<('W)X]1IH-W19XcI&oAEG)2P+ut;1Qfto[StNF"\[FNQ]7*$>fJKuo_e-gR]tMh_lV%5kKD+F^qT&@D %ZDQ1tdI6N:>XmC5<`^Ia3ONk.aMV0X-@)&8TSnFrpBH@`2#@$QVI(ll5-H4Z-Ft7A%U0F_0,N6&@hi0"XuV'/bukTuEAol*ol(7g %@g:$rs2BVnpCFJ6E1P47Mn?6m!1D^bje%HHIWT)j0n`e:ZbAe>/@8YeErlXRLLK<(RfsO?b%GQ&BFh>]?9'8@c7m";93o %@HHL;/Kn)Skqbl*"Qs#poCd`@"_'*%,n;3/[Zo"Ka15mEY]=_HT1\Da`%CA:gmfc3Y.;'1a.<"6I.MEH6WMH]/l@`i=0S0T;aPA? %!Gp'fF!;pk%ee8\=_`Sfg7ic^H,N&Zp0bb_m>*B45*,?9k%(;;h-ZdRr[-]hYPEZT6>e&Lh"ccEijFUnC_,.q@>.ajiO\1.aDD:h(Y4qHO8i0G7`XqXaPSu&(R6-Q%0cgZ,0+'-9PQ36hgkWKWrLY.c/!g>L``>c;h9Cp`WE/luH_iiS\/<^st3+VtPa[J4pb46P%c)XW.HIJ.S/Lpf-UW'^M(AB;1O5qGpkNV5#5 %6/?I=[pmpVn&rgnp)d`U^^F`D:+u#X*Lo@Z42(Dg+8k&\lFf2@a3l!BeYSL44N)r4[do2?K/5rTR``PhUu2e=6;Y>$CCcBR!>@lX %4YZ@#(E0+.$Jp4h2#3WG,ob=uRcL(q:1hm\C?]fp56AuqhEfllds,*)a=os!MN<:QX8U#[Ju0]"V@qG1d%dn;Y`]*)ncEu*W%FL* %0tk'&.9?nLdLpdFnKQIHUpE>"436 %H+^cm,l:;oiGY++1r1M.J_o %MlO'(?A(;^8[E.t(WY1lfp[>L%b*oJ.WA)/S>uhD2E+;pR+\+b_WA"-b8rTKldF,F#XX^n#m^lTVXKC>X@5t%IWbgIkZ%"`BoO!i %3UCe2WT'[$ei#g)NfTn?O+N4^L%/$JjQB.?SQifG#"1UfY"k;X-jmGTr^LLUO.pUZiLO;`paD$h.,7C)MiXSZf>Egd0OK[eF %@YsZP#kA-@/7Xntq;T1B:$:WVbiW %ke]g9$DT>CqX55F*OD@OYbNRqCF_;D"G^K^kWW3d`t%06ohT.(Q0pl5K)RCP[f\QEc[G_j.JI7Y87\o$^JNelhVXQ*hEtA:T7(WT %IO-*5Su[,I4o]$Uog=5=c(=A`*B_o#4kXH]EJ.2Z')HGn7%!$n8otf2Q-MnIo %^%j91/,?"f%T^6/>Yh84&ArhS'g.ITbm`1A%;4QHQFa53qA4JfMPskK\hG+d'\.PoH$IFIO`6fLT9+"IMks9oLud*-(WNYC\].kC %W*\hG=VTH1*7]sGQktJL#)VV6fA*amU$L]M`XB)\NKc#X'p"5ec>:H5`31h>QAd(!Q:`j714kh073j=kG9_s:>ZIumfh?[C87B^5 %2!("m&1KME3*>U;h>j*JBEoIW$0FV0Bb1c2dM972+ %oWOEQ&hH_6k\E!i(@\lSl.$!9T-$fkUfh5PLd(BT%>MA"%O%Z:j"$,5_e`F!8Mg:W&E]bi+-@hnY(8kQ?U6?VQ07#:L[k-BrMmK< %Ho#ZdHQml/1VLPALpKpR)>5F^`E=V;%*p7?^%6,p3SIlVmKfKuk%KC`4Z;1'6\Y&B^N35=NqkBTdQ<2k69DGf;'4T3A4gWUf[%G06C).<_@bGVLYK*6R!e-c$@,d`e2@q?&4qtAFcN4+,cr;<7ik^HI3uk\(,le2kM@t`@a7Vn^UR$b)09+#$&1Gn61gc@EgcO!YG-e/>KT'7=!``8 %7T_)$H-CR0IO_JODpr5@\cOE:NEcIJe<,?*(Dg,!LG[h@Y.fmtSl;@j?U?>ZJ*jhC%Gf` %7s&CO-[S")\nb9.A#%V8>X*_a9AOE[MU'ka>!0UK9tDF<[&*Za1rF[ObG55CkIYt7GC`5TTC;>6h.9o6icLO\hKQ&=Ib(qS`H7G` %@OO'64$8f"o3G=u+s59>YWFm1ho0rR$bUHMo3K#,]bF!AjSE0XYhDJ4^M']ln,A5,X8NVkc[3%#G4iNj:.CQFdFF[MS;]#*hD?`/rY\k91.9_?[#?P?>#o;S=XL0i %C)H)lXG*a!W5j"OEHnR.JSf^oP1?^0Ea`-uGcZ'u[<-"kEFlP1Y:lu9/@VN4/64jBD11L@#%Y+LKIgF.XEJR==H442X'OWis)UX/ %#s@0rY38)lobYOGQs&el/OiF.i59k39UdsU-Q_B[CY %43^h6)@c"XneiE9iEi%"+$4bTT>33SeB(_1i*hRt\bXod3[.J*C%FtJb;?geI:?H5%dq0Jt7im%gb4C@P6 %?Qc`IaRf("o*$GcQN0SA&A^Ia?NM@L6_q6tRIbg>3N'*un0J't3^b[pm&*@<3*>GHZMZJ@W[T-.h#Fmi!6kQX\d;fM!6q!!&AquY %R_9o@?c$7QT)Hjcl+U8M-4*KpK8%/D/=7\JI2=LE(8,qm3$h7hfqaeN!]3K!kZo'*h;o0u]ifk4#nZO0YZQErF&^rG]@EUZ!:A[n %n0s(,!]4\/+[d*=D48A5"c,o($Ob>Zkic:i)@Op!\`%As0S/?jnK9@uTK1:$cE9up)Hc*!m.1Ho!Lgo&BMAtr"__4@5n&eXBSpV` %6j$dI^r$Im2@?Q?Ts4T3fH!ZFb9=R+jC7!*99ihmOk%#Uh7_OOZ.,;'UA84G.CIUY9U,9irqNe^l'-_o6@@]C^?f'(2Qj=VE^KLpi8nY@!.2H^)YQ/XiW3IS4S)gU_i/tneYXCl%L/6oEN!Z %p,n,6O%")7f^f6;P06jEW?-:2r&TNp%k0\kP06jEJ_gnOi9SRXLK;S`!P\R"H'kNtDpSl*ch$QMH6CXag%4?MkZdYfUH1]p,ptJ4e<\!1qb;P3P8P$28(DA?N3:)(gT#E+em06I1)*RO%DiX9eVBi(HQ&T%!hsA %H'm#RDpSk?W&52-&aA\.K':CN(XS`YqdVeuH3*DY %q#*NtcjOO56bgU$5qeloO,=9X)Y=*`o=h5e,-!62S(IX!S\^'=_%KpG:0+BKO100Pm24$-?'#2@+C^1h4\[NqZu:/_=`'/rXJ*[R %Za,1Y@ddT0Fk%@+I&.A@P,\a*=`L\Fi4>`Rhm78m1f78!^@/Jt;q7J)$CLYEJI-Jl^B*:HgMX_Pb@]#bD%+p9V5lIm%OXDX%AYZ^ %H>sWJXasM_?tZ!_^KbrTs1g_=%K>OJr^1TYGPIg&o8oW#s7P8,XgPIgFeJc]G@;VtdrO%p*@NUeSX-l?LmB"$2gLs[]5I7JgrSgA %mU"G/]M>^8KBl+u>6ZIYdrO(1b0RKIipMP1jSj;r,]DriHLGq6rd")Hi(iFNrVOq0o0:8=[60,i/Vc(q3-"s2T%#tV>EG9MVc3U` %..'na#S,_#BebhKB8@]@ghsIjd<8#s21"3QBJ8YCL"@,k]M?XU?bkr[I?>[@+A(lMq[:-$^B+WJ]-ZRlJJ/Rk;@]fnkW%kWrp!e4 %L0T5?_F_TeZaQ.A8RgA(>Y!Zt(j+RA\R'(reP`F4]qS@1Xd1JFc4&W?X,h=be$+'\hC3.;AR*AlZC3jD-95-hnH=WQaM,&\hE,*A>BE]Y5:Pgqf5&,U$KFSlhIFf!aYPS>W:-;HpZG5 %+kJRqW.4$B0?g&W_]&TemL-Rc'd$N578dFT\cdYgqa.HdrQ5,eF^N44osY(#rQuh@Ks2^7B(sQujdO?b$`V0nYY,N06J$W/fC_6i %cJm"j]fbqFX8%ifQ\PseQU?(mlOnsIEdVtE^)0B1jXATK#udA4QU?)X4#s*>1i!76MYM3_0E!I<=FC"mV;pIR`XY!]']s:Nq^THg0YQ8F^RT?K!+u;Y+qmM(j+RMEo$/:%%`79/^;(Hbp*bB>FOO$ %10>T`&*,e"Q,0-Z^6%[WNhUIU]!(I/o]ug8Y589!^pG4iqCkS9YW7d2'>!T>\aIl`q5_L6?!<1S%ubTYoNaHN^doJ"gu7AK"!_s( %cu62]^ad#)Et=5Z!CJ@Gk8kIqacq>/_Zh!;[KfjtAc*o__&GC6).mr5KdO](nQ_44Om5>LLbd1^6A?u-oL--,AJc1kS?m!:P-<6E %10b]O4(*@9422gRl1RF/(hNOt9D5UADN?r/R/O"[8KVQd*erN%HR!?(;D@HCd%q8ZA.P^SWANkW/D7r;qh9)9bb;F`Q\U&8bb;GK %Mh#:^N4cUPqYQlK_^sKY3!4cD&Vf-Fjd/7Y"q>;go(p;PZ!MRPdsI!r_6HN$'R1_`Z^9@(@CcRnt9Y#IU&*(]XTsah`g\cMgHrq+QC]>HAhHP!C=;c`(pM^=i$ZjXSd9n-c@>ZBHF,pFTRY&*56/4gTF]!!IbM6Ud'B#ZK %.cqc[EDPN'3UL#HJYPG]=V].!kODO*Y2ITOqY,bEP`hI/N12]-L\Yqi(To&[[r%([@4K_/lV.g[N>%^V]^P'2C4@Mr`L=FgU;_H,d3$8GVB)!e;V&2L %PD5d1;D$Ad1fARU1PN2Jq0XSL];5u4<[lV]Ro,u@[+Ys=ISN?aV=o&9kB)!]*KbG+n;b("&Zm`g,D]HnWbi1[;))3&,LMaUCI!`) %W;s&eIJ?f&V%t`PU.,#A%6t6,d,0?@A-S%[PtF&0YB7,;!KskRP/]sR;3a$+iA?9fsMZd"7CC" %kPOYJ=\3Ena,=06ka%]N5cAR)Fp`m]!s5SY3X+LcTES'Ip6SQ[%;75fRE:%M@6dbtd9S>;2*Q1=6(CFpI'1XW040cVFu!iW`i:SM %q2Ona4%+rKnrbH.9#=T(W-:!ERGo\oJ>9';_/iakRGo\o0QktG>seUEUN\"KRGo\o1lp3Q`$hW]<;3_VRpp!e^MC %H:_p.`Dr_,n%qkt\;D!Q\`+r7>X]!G^[RF9o-1#TL[0/+>sb%=0lJ."e7Hf!2NfLfBVuojq+U9/lr\7qi3>J2G+#W>18U#FcpPgl %3d,tO<)3"0K3'ELi_N@Y:rEZ4"hG!s>%QF\e1)EAGMGZF+>1tjMf'IaMg/=;RYfd`>%PM^8]T9mV9)nPP\J4D_dX.Ib0pg3am9OS<)mu;"("]Xh(:V@@6LHFI7=uuFR^on*oXgKUYh %Z/lG!F_:3Hp)1V'L\4W?O9]RaV(&t1N)tAa>anjDj]EjE(*F8+d'GkdG3EP">Ef!4[s9cG/Is3F!2jY-CS&;d..O\^(pA7SgD2@F %SK0EErF"hZ4-D^B>L!Pf]5#A.fh:*g`;"'TMS&W]n^tPr6MKjpQ8L$k%>46`=?$(d^R2"+$ROk1o;?[S;9s0l=b$72?bqLqFeue2 %3`p,U'?>=,&YK#Jg3mk@^))*aH_pGmA^.u27r8[OmOqJ!Lr.LB$n&9 %pVqj-_f-s5S5r"_WtVg-bS+gD4o1)9[=g$4[3m6E?@QDX6gj^B;oU#aV!Ue1jFjR[T@p"q?tH6?H"SlpD/f[%Hg]^]_?Ng39.XTo<\[S,_dR+\4#b`tEf&RBEq/atjk_V%(ph/&l: %NN:$NGu*7jn0Q]M,tr78'u&`I]nFZJ^[NONn""c1BYp*<]Q\PY6!2u*F=1Smh-/q51(l,*N$=,>bu/(hP5ZJYI=9'ZZ.k%R,bA/. %_OphChtrA6Fhd@os0;EG]H:8q`P*S%VjCW_+(lkjSf_MU4M;&%(iK%1=7`#P=jP4(kA&k+3]T)YR)=%M_MYtN90&s5Cfk[YW47Q. %*Y)'K!u1s$"&ctd"#JY3#>Y,cWlkID18m!LhJl9^c\q)oV3k(G.mI[$JiTM-;mB%Kd==/CJTM\-G?>*oJ?N)7PX7r'Le$eIRg"'1@U8j"&B3ES+#8!nY#mQ0!!9GtdBe^X=X?M,.^s %.:Sq#>(+rup2h;-*8I %QM/e`[XsP<>?:d-D\]34LhrNQKtiQF?CXfG\lB4_.;uj,qGT\0g?m(m]=\#0AaO+t9"\]8EjMYD3[4\;L/J?.0X^'=[EU^@c%be= %7/_A]A13s\Tk6[R'QK;hO^m&Z"],63k[tBPRE*iB1=DW?)S-_d?qP/o%4,dal;f\[ZmlWZYqRDIYmM2^No7lX*)i?hY.9r0`?uN1 %SenSH-pGaLlE7Nf2H8cl;bbU'_eT&>G"co[dWtu2%2IY5B_)@Q,X[-4bUXWi:GNV\28$5gp`r40k)oV!3+!:.(jB*#m@UN'c,8$8 %T6?^!fd;M+m5CeeYdR#9[lKmol3,$\.SAe>Q?.H-D*INQ);8p8]%*>)D2r3Im#\HZgLO3oc-^A!:+d%3DKFTHq#/(Eh%m)%jgX&X %DmmcGF0#GNgGmWfksKLDQ>_)3JPs,9c+<77pHHC'[Kg2t"(*WZoWF^&\!^PIS['I3?Ulbb&VR9[ljtfZh<+tj.YcOn;-.s)k"%1;9dL\F$j'\g[jL?^caVTCT4^Q3'B3!C]->>(R/\S6jC:4rphZm%5V+/!sLFt %P:=cXH;s,N6nY@D4E^$=inK5@k"Mj,[1Dcs1++/D*$f\IU-I17hj;]qkPT9D;HU*;[,=&,Ji>Ui %pKu][7\$t#GZS=6*5S*`U&/7H8$_cb*O--Mo"'J[FSc;I7J(AW&lpHmU %GJ(HupeD=SM5'B)iAYf8:)*(\(@:aBCc((e%u@="S*kJfWLZes$'#B]5?-Z%?QqP`ZjtbM')YI's-=TUXc2@mN.CoNJgM0:A-C-H %d7n-8BhD8]o.\oLq3o:n>%.1L,G=2n0hn![b^Xf_>NITBJ"bb_*6VsjQ5M2HZ`D$1AcR]:a]Gep9[LIDFV:dL8b-UBdrXma!Ds*8 %m,XNNl!S'G-'6IRF'iP9c1bICU.VnuhL$qZj]\Vuf92;H+t`Nq/?]SnO$;?-0q&cCl'D9O_DK0L*ZSedI)NU)7S:!d]bZ %-jEkgJ.s)X@\D6Z>1.W9#R=U?n0?2g+<44KbaC:XdL5PK/;bUIKS".sP)D[r3.TurA)H+F(YiW'h%`:LnW.W#7,F_";CNfG]Ld1? %nmmd;&.68TXd5JKF!SF!ob_&a*(_dhCns'`]n!7LX6GI-0DmcW)g7Q@H)W<3oqf9sIdI(l]g5R*04-1,$_[f\U_pmBk's<8S19G# %*2[q11fSQKhsRqAW7nCr>t"iTLj[8JMBe:E#?;kF`=Wt-VLLgB.roGV^F=:DLZkO+LNTThlR49+X/d6P'goCFd7ettP\=T4Z_ %:W^#`;=L3o6V?8kW91EYhgYikG12OI>pF2$pf23ahKNZjE,7>GgafAO:jsi]&dM(C8?/;oKSBSnU6D6U#@lqSPDUKDkud0&5mMN\ %`cT]Z:8U;tpj7AE@lgX!LM9S?_W(f4bV?%0K#\8$r*5kJ?U75(d)-OIa=HY'1T7bMkeVfqNEA!UNbF:+eS`g`s;:f1/V3$ %lkDNU!)9m[8HMG2Mm64IS7hAAL8tmA%)qH'Q`KWEkjnZ;\-a48?8PmjG,#j8=5a:"R^*iPUM1sKA<_\UNseun3.Vl@/Y+"Nqc>Cg %3R3VkIT\a8RG=L9n+abEkBc"T_]tuncg@I\q/)?%ErQJhq':kl'KZ$]4 %9G(PZ%CPWQ07#:?gDqAH(bhH5tbkBiTD16AD=7+ecn@j0*N@t+FgYkVXQ#jnP %D[/^_IG=uQL&DFme1[VhIqF8.[cBIC-L2(faYCpKC)j!coRdR#jT?hj<*Ba-3;V %4=]sYT@KjqK420dm.\n7\]r[uY-/$j7C1UHm,?QbMDR^SR3KXQ)@XMVZt9bXm7Ka/-RLlfT;r`E5(:KsZnf9X(q61B>cMFU;u.)G %Tr&V:0#).bWWn#REI^/?A$VbR+TmSUFNE0J$ %od^!&AD+HtNafstNZ@^p.=%m]s82`dZSeHNp`+-+\&;&BF$P>[QChql%JmM;*NdG?>A.)[e5lG>?_8bnjNX$P?C8GjGH)5/CY+O^e&pV83s0-r<\*D.F9l>,=e,L`j72g*X[8C4Y?1HDtS]>Re(8TFe %LYM%\0?E?fXa^H^9#Y?$or,3ni"D7]@UN<)3nN[:%P]*H\t9FGgf"FK@USbZIu?@6g#mBD@SeP#.L5cH1\7!K,L!oQP.=i?*#j@DCq@\d$-\iC;HX]#Qo*f?sBB">m_(W+rP@qe0Nk(\tG#n.f$23@7E2F"c^BLL>Mh!(:5?oO\1bsn)k:)O=h_K\\/qRr8ak=np0dF/Mj$B^8;,*LR'$(Xnh/NFt+C%<$p3_I(^KfXtj;mESY4n %!V?fga4JVD?(G#G=X`'ER2ku%%1A9pXu%5]Ru33VrDcgt2>+`_<.De4rO:([<\HRn+`;1%g_+'afjr`_mhND6`hsD: %7k'ar^3;6.[_[[PqqVL<7EVrAl8kHmRE+XVRSlr]*-l`g"SRCiMHL_n]cUFj&?\LM %FeQ!/4d;_ND?QsD&*<$2WZuXTEJsL-Wh3[/L\CO>98stF(XF&1>GAguC<$WZGJWR7TB!en<@Mk*"Z]l>Hd%-4Cs"s>a;Ii#IR[&o %o>TeBp8;YtJOku*nnL*h:Z[HGI+oL-0dE5`EqE*]K4DRg)*N-=$r4"#7%]KJ4S_/%a]/W-WUk;__&OO-:S$m%q,Kh_ACLT,fd7L# %=BRV9>J&$MIXN_D=dshlO"pt8!*,K0[tRBcI>t,`CH+hr/u8"W0Nsum82K]u9mie"H'f%6=@`am6_':8R?&SUU`$6f%,K#XPp0"3._iSGAs+RBo22(g]gtR?;#R4aX"NjeM;!+1YGGG2g8rKHD+Lf/f.\,Vp[ea:f(- %--=A%18iOqV^25k@fHceB"p=PKC6CBI+jA]!TT+S>PbSic.j897`$b8EKb(kK#i_f/]Ylo2;M=g8)pJj8+tq^cX@<#1(<&R5Wf

o_40ul%p.H4pIk,OjFkr:ODn.Kuh&_&C8c!<8HW6/RrE`eD80H^U_DKQL %)+t?a8lcZ#9qqP(>lrgYQ@/B(*XUI)Ze!qc\Xosda_GU1KW=C&:8WMiT5eNhCaD>-BA+Xh_Al`PVp>N2,,l/t/`3-/#3_^aC@i-X %i@J^OL^<`&'rd[;c_KV"o+6#GL%d1p2o6P<9+XI)K]-]a[_^=5$)8*pBS39?n(\jjN]*7I66iQC8YoL4,H7I/?GOjQGMc&q/uUj= %E;`D)cBib49?VTnmX0QNG__)"&'L_qe%39XM`i!Bpqe>f%>Ftb-J>]mVZB(3Dd42@AFU`_1JO_tJiJO,ZkbTN)CF_h< %n;%nkUJ3sir&Q^#"+F>Ba3?V4K9J^>#rh$$1_SGn4E,A%aXKNOR[nb'R,AQYMt+j43T(LBpHua@H-Pn6iTAKY>r7Pd)`Qr!`VmOq %:+rP)[G;n\\2d%gl?%/h_Tb+!&MX%%+#iAA4YjA]?1:_,fH^$koFlTdOCEOXg6EWLIGs=g'$YPeesnLfMC`>7LPsAI0A]_;TS)bbMOeTlt[Eebj]$=fq^aLNgc)Je]f-Of%-= %^'JL9lgV6]\e[=\R.]rD9Y77#O6W.hJt5;+J."8\%o>(b@/#K4`7p`V4Z?OFE&4D^V#uK.n65p5n[dl4rN%ka%TDQ$"n$$&.@KTE/W,!XoB5Q?U=S.H4`p((dHpJ2pTl!!eZ5IaVk4-2A?V"/T73)+,Ek/lI/7"B %b4!p/ZM1[8OfTWNr$*].SE.PC$MjPY-0f!'lY`\i_EuF1U-dJQSj>cg0gp=@M6\9E0STk(Z,K!sN%m`J%BI+Y22I&KL.L42oF)p9 %YgOs9:T!WS;jcV]f-$gO`hHX[+e8\+9"qtSd\rCQAqXVq.\NLN3*<3sMo*Hd:H[hT3:i94@E:d5d!Msf5t!&j_CV0^kS3E.9a*tL %"7qs"c=*>"2Q!@8iE;)n.eMZt8u.2/"g$+>kaBK&'rk>.q`M&QnB4taDpMC=s7X8isdZe7,mu5qt_I(AKTT:GgeWN3d %9H`VE&p`EuWJr+oiU0lA[+O3+a6?=@dWea[5m$r+C=b=qaSuk&j4WsMk5JJf$)+S'm:R?4OrPFKFs(ib06OU`W\gjo%rblL\f[NN %V>KL6o08i@)Ls52]<'uXVdqSo1a'Lb/f@(!Rn5i-H5MU/'8Sogn0!UP=F__)&9o""YlIK2+O!mkAc^U)*1,FImCY*gr9(44doY0^X2`$MSo-4%s\M^bZ4r'c<]NTP^h:dX>An5g's$DYCRW0h=T>p>lhO/*BZYu^hDU.rW*X&`hFa=!lJ)+Gf %`kAM0k-)t[AnQ9!7=%g'W-@"]k=HAB#EL)[c0Q6cd'JkuCO$1kjpshrSJj*ESSDTC3n#)'qnVKM(=oK8[++8(Pn!LE*hK&AcZRGm %VW?9:1bjNf3P6Et7c"7Wdc4g`;0^t`^.,ROK3Kh]1uRTKUG5p5*8R@Po6ZL83PVObclhj7i7[9dclh^1$]@(]4p`-NI`8LP*5E]V9@+g'#D"s&K-Ue4hi]WYK>c)43EO_ho/M&fQ(hu.Kr>+`>D4-J)Mb6=Hk8,89D`jMJd.((U%cJ- %&Mt!Ff1csTUbkr]QPiuX%9k>5fMh$JAMr1el2GbPYquXNr!ZE]_"bNe*Tk_cf#`XZT7gK/ec7#lk46-;"A=0!Us#C3UK_9`TX&a! %CkdmZa)O5;`I])7\CM7YQ'GN2GDL"$e1X[9N]l`ACJ(_ZauYu$\GOkBTG'HQ_8KR'fku-r52L!KP:7(YJPh=I`b)X&&'UNeZ*e:Ha6O$ %I(Z"KG6*XEKBM@VmD;jgbaI?PCZlqtXK3NffmD?F$.Z^:Hlj?^"]l3KZngecK^4qEr(U13Q(IGkXnu)*B6>)(5'LCQ>lAU!)9fOY %YK=(Q&Ru0A+IX9:?PLB$j)Cb]lR9-%^c@0C=WN4k:7h%knob]SU9?g3,E=8>a&0>R]*`V1C.l$+DmCu8`2h&5^np^R=TIHO`)S/>5BZs-YBpb=@B_ %`qbOr?o*X_nbae0Wb<"@mRXHeq^JQ`e2jaTL>G;d1Sh4T)ph5]]%BCX/GY;)FLn"k^Fi$PqeL;g[XRlaoj>b=&tDaC,G7p:lE$PQ %J_lj14Jo`T_&h#tD0/[)7et9$!8*1N?jL7U3@.kQ[%rqR6Y@[QS;&'XRaeHO2?_E[V%MpIV!0ME>#'"4DX+POa4;KK6tPau9+`PU %fbRX'\Q-:*8O)#qpOPMk6!**BQKd:62gm,4.s7/RebCOMlq[<%C4)87^*]?$S/uaM=e&oGfI'F<)*:9k>4P5S6mb2PC+ZR.3s@m"Xkn\:J[k4ORej'RW_EZ$$f8Q,s.d'R`uQ?QGqs+`[BG3G %dZbGfWu6shSrt!@:&/Ca!E"*!=_dh3!Itj\n>l+Xiao;ChsT@\3N4Wo/tY4n5pL`A@$m*TB<5e/UfaLicr3Lr-foPEC>(PCUu8iR %i;S"#rtb9jBXrWL;c84'-Wd>4mn'5LGgblbO":%LG&Cjth1gd'0H^SH0f0&6+(L`R`R#;o0'82qF::m;2*&b1e/V0:e^EVYNH;Q# %@7-Y09$+J=#prAFs.Wh_7].Z@pQFg+F:&9QgO4+"MV%$Ii8s4hRfeo\P@7RH_+Z&*%(e)blJ=9)Il23#"d3;86,m5e$J=`cJQ-SV %^^glGARdP.bb8F"Wn"I %Td:M=+;HMbMYp\q5!VOk5)$-IgAk5H8j?TT>B3B.DS#+YHNlF"X4=6aXFA8U`fh=]CETXAJp.LFq^&;mi`cN8dUpZ^He's_ZsJYQ %/Y^,uee8cY),[,(.i$Us=,G$L&G2G\n#=3C/nnH(4?#j#,n$ZIBg?`UZ8!`&G'D>:8j1e!:EqrSPT[O[/-6oU,g?HhDCM\7dWE#0 %;Qncd?()MeI.'VJl)2HDc-R=9L9U.nc/9WNKWsqlc#EF%''W(Q?:C8r%LEIqi9:\p]IEs"raQba5,IH)ENjcGb##dF%aG`-qiktTt'eC@iON..KMV#=.eiuegp0o,J\+S&b0k[cjOYV[DfG9BX7X2-h8Cg#l[PcJ?P_"a)<\2Klf+gGLeP0k([4;PoZ!(Z'.24%NFQ92[P: %NkW[V,+VEATK]+AGX/unRU9]7B\RF]q-.4H4%`Idp#_,#*om^]*B!bWToh"tSa96'nfqKQBdXAV2^OGoGmn5/`O2`[WL(WQ[-g)? %'lY9'.ThRjXD4Q`3icWS[QdN"b6d&N=6?$,jTepXY4`N^OXj(B[5rCEb/fkAXu(p:!fgO170*9JZrgrL5i(Pm^F_$1qKYX,8]t!< %m]2`Eo/A6OgpF0;ZUjD#=r-k>/9G()rha9*:!<2`RS2bN0m84D]=A-g>pK2dF.9s5d!/LrR/IV57M,5&VPOnUt$;^?4On#H9O[#Rn0iV+'^%DtS#7He'Q=WRSYmZg'J5T,j#e'H %e?l"/_9YEU#u<--MfZ1KeNj#b]kH5Z1EWjhSaiPY!!^N:X&06nJh_03EcWMOE3)BX,1 %o@>m>?=/d=](5\U9&TQh3h1`9lYEmH;Y'Qs(]4'!K4"YZ]KYqUqr.3n[>0,eLI1.r9g4HRjKCL.bdB?QG5\n*Ho6[e+!sg2aB*Eg %]*LA-q7N1af[Ce84liY(K_o4Eg-`T5HLTc%AC^9_eC3RTr*/iA)>.Aq_98k!-\"`5l+&-;n]@E/UbWMqW;,FLi>kA="=gst-\"aZ %ZZ&^5ifcSQLnOhF#`Lhl5bC^QoJo$[pg*.5V<;2$=Af.96&jn8U?R*_J3J`Y:X--(%d7t5bX);rSpufm^_>)XlHo^#RU;DQIubZ? %qY[qsr-S'XWju=8'qbCQW;56SW4HtJK26hlkB];1ZHU+,@2tqLGUfgs:dL"9:W#4)#,q$t!G8[.>X/8%SLBPcQQ./JJk-J@7Bg?K %LJV:"[qC>EgkopI9c1NHRasJ]I0 %"UhR:HPNKH'eI91FS.)N'b&$<,MV(/[SJ]NdC)?S16e*>gPs7)KW`;Z/pb9?4tXIbp'A0KSVVmCHQX<>O,9gqU7PTV)i%0G&Z'tU %mChtJX'gZ^/=u!sXSt@k'ftI#"'9JIA;4*WFY'na,]gU(r*uEm(E3#jc"@!jb<8B0ou.'7:^MmbE#$U$$>hE;f2_JSX3c7S$Uob& %=@N*f0DA8fnC"*"_B0)X5b.o=*B@g#2@1-YGhKLm)](t8afn9!>fVr?!#E7Q]D&4.0/YbI*0+e2a5tpl0+#m %+MI[r'k-#JA!>,=icU,tXam*PgIbH+656X=gV.WXJf?giddb6ZJlAmQbOdlUe3)Ni=@])>d['q3^a/"6'JdX8o,EkG*?*8HbKd/3HTAq-r"$,?BNOdYd?m'>C1b4F-Icm@X*OG59 %0c*Ub5pec<>X(/2TO8oGL;sP;qF)V3#3#_GGNt*Ghcmu'7lg%[;H&'Wn%qf*+Q$+$TWLb/H1q>0+t9$u-dX,COHm2)Xlr:;9aRTf?B#aV?R3r;B(:W:]1&k%VcQ<.!8=eo_GTej-eXi9)FdLm"6UF1Z@)jm't %aWg^:r6Z1KT'7=/GrC<']d-PEB9icY^*f!EJPp]QU)Y[H2(;0fQLjV_m#V\cM&Y;kdW#Hff.,0j/&AV/f6FOdfN5.Q]f7&W'5aGd3N_9(mS! %a2[tQ3CkHPl6oXk)lZHiC@P\\PfeV46/0me]a@%3'=:IcGeXA/9[G]*n6V_W>Kb@HeoYbD#o&M"eF5]SVNs:A'U8;]gXHj(\sXpJ %FoBTJRChPLY&nag\BR.('2Pj1Zs`#&9-E!5P96GXD@U+LTYGI$S0+DL$9*aUh%?SKjJt;:di3\DLO:t7#W]P>m3,i]+`IqgD\#:F %'OT*.&tber4liY("S@GQ=QVNAGrR?rFAgACAp>fC@[WGEF1bZ<@FOD0bonijNXs='&*8ba3Fm#OoeUue0kjn7U+Z("NZ1d"iJ?Hi=lrZM_mH9i+[[)$I;H3P`hcaRL9CEF18D5B/dABkNk&6+6D>DF*n %&QG>YJ`3NV`O5]+3jD3/)g&\+Q3>pC\C,`ktS)pVp'("'2iJ'%'\mS8Q)q*,;\6U)1#Vdh1K.DW9j9+?b4M4 %p9(S'l@RLN-_.(W_`$:gsqZeWbd"u-2*`=-4BqAE4H[i:lf=O`Ad5-R+q,qWJ8kOf?Z,D]qj?R`_JpbQ!,/Zih*CEs%##M&er^iKel)I %e5[-klr>_(.]IVEBnZugL=WqiW %W!n_6W#J`4+0EJj'%L<6RHBcpCKNg?&kAo@ce9]d>\2YNq;?Ybi#LR]<11Usg#06M=6MBG5R$?+D/`5iq"IDkae%Q8FGSci"f9M7 %I!">sTpP,+^.1\feCc..FhVK=e"?;pH96Dl=Z4P3+#9aSp5"C^]n.>&JHCf_BiC5fuLq6)?uiWFMXOkml7_ %S2qEXSYl/;YIVKK>=bab8.!lr!Tl/U7sm=m(VKLA`)dk?RYL#JcZrU6j][IDP$-E`Qgq(*3s:nm:?Nn5>QkpcGe$?tcX%1mELL'O %\I'teIc2T`>QpIj[UbS,SkM:p-hEL+Nf1fDb%*RN7:<9R'@Nq*7@%2]Jd]Y-]Hl*mL#6S\>fJrlS)eU=;hs:OZIG6eQ`K%bZCmU2 %Q`K%r]fo/24Y85B(.g,[_'ST8>crZOg[,:bXl4'X4YWE.W?fbY5*Fi%o9)()/m#jmeHInRja'W)Ss%8sE2aoRTTVrS/a_0'".?CO %K&':1JP6=aZ10,1W3Gi3FP4cWo5o89;e-(!C5Dm5fU\go:[?p.bS"'VnV93!'0,,OF5qgHtq,jm>N\%Bhqp"341 %.Da0[K0#DPL?ThcR'R$gpCLf$*1T06`e)/`c%VR3Fh91^5>Uh2OC":\a^9EUUmE3Y,/,&F9D.r](LN4#<>W_:qCY`<]]D3jLEEVq %P]=>8agiZW(\1goj",M`][YVfE"n\G[L>ZW)>X_@irH"7%7Pi9+!&u2+Xo*DIt:3!'lJiN$:,(rJar23Gdk?XSjaJ'bcF[g)%0/i %RF`-/]0]D'F-BkC'H"KAf6i_+d@JK$a>=rLqFWTM[DOHf/L]j'G--D'l7Ma'V9m?,\&EY0.GBQ9K62".1/2[#Q*o:(jPk'N]73&# %K5d+>c$'K9RFr?Z_NIY(+76iVd,nWn;2N`&V6l[^ioE-;)f?Hi7?Br,.@ECo3eWa_:+&udK,p("c/?)/,RYaX@$kQ30dk4h+*Z'r %%e_S_4eOXLkmSW_F$A"\c\d$FchU*fD>"D[k>RD#0Lm&jG'cPhKK7aoK':bkb=7Y8q^@W-aZKJ@@?*5_jsRJm_Ve$&]J4X\M.-Jk %Nu&S24JHmQP<>`X;TH> %htqu$$Tt6K/G>;kmq$*+^P!6J'_JB3?,+[#>)jUQ"&u[$MBbq5$Q#=pqg=ICM7fQN:Z"e.*d`re%$\_#4`lb0=nO78d6DNujlXl; %cQ"?kNsF![O<]njAKPO7D'\ugp)SqnS6a;u:j.:g8bFJ&U`5D-Q%G0'h!#"gD;adOYgEnVl#@;,N7SR\C]dMnI-Ch\[XfQakluNt %h7.*+Km&6'lo*LKgp@D[Wu&R;n2AKFgZ;,DjmWhpU84;4.Kcd["D&18b!iJpbdf9fSF*oM^%=.s4pnE+W;poPBJ4 %b"@+G-RFNq'r?*.mj_)N-4[ikMSTafZ#K'VD@KJm4&9+ZN*cj&iLBp6E@+g_:I=ePNbc6/8G=l:80man6$B:2`7^]4WM,]GsG %/97)t(BB&]T*9:-F8uUBC6n;nlt:$9N!02IdE_mg+Lgkcf9Qul=Rd:oH?(TNc+S*,j%$9N/0ces<(!187):p5jB?Jj]0..RO'HHs %@87TDBDg'LZh2I30&oI))o!.?7dOgYl">Q?c)[VYVk7O2E`V44Rt2-^6+'?[_^oj&a^%o3TcC24EN=qCM`RSmq/Z4p"b8B>)hem`N3!O7Ur!(##^&k$=3 %"@Z6^m9'2Mf)'B##pM/*6>pU%DqAoOjeMPCc[EaZe,gGn?fH_.ob[m8K3*m#IO;"KR"IYYZTS97t&t')Qh\MYq=FjB2=1JYg^=lq)Nj;qhoe#;D78mDXO32X_ %MW"p!Z*G^S0$I&Wh>,2f7I(d63Rqb[lIG_hW]-hMf*NIiIBe=5WGGA,mJ?3d6&'(/S#(:WWDlX`H)%Vf.H4-![YTfL.ar4kSmKoC %EH<<;`p7ggFfSiV::k,Lgc3cC9-5VKZM0R&BtnLal,Vn2AonjfO&]`^d(sfA'=TE*]EL$KV>5[RX4F:r2_Q.O:jbm>Y2rhigD"nYF]N+'8$"mG,hs\d]=,Tt%A^492#%6%)CB09HGL %>dn7g*tq%A+!$o^^mL\O:]c6-AYQ?X].WFL6UEKIbML"Q7'EckUq27a%r_hI<9hscm9PMgR9M` %GOs8;:UYQNDof?2g"uBhF.-:%iBa:,]tMh_lV%5k!sdj@qT&@d'&DcJ,HGT1A^H&bQ?2?C$,(Gd2prPn,]Qt380#X$U(RDi+NYXJZ":R"WZpG1KO.P %\q$P=0Yd&Yq!&#)+r_atV!NH==KLR'K%)X">WLu(25as!Ibc36&Mku0M!N16Ch?BfZ=4aDmoMkC>F`j8?_36=!*Po*]4lj7W %VQ$./<2A$`#IhVEEMX>dDE[p#A.*ITE9i'N.C``'@F&ZZeCmJ&kguSPlbP](E5*Hr>>Gf5r-G_f4ghk?p$8/nqt9ka!_rgnobM55 %b$$<0R=,J.f;!KS_%)=6?a%!(mFS+UlbW0ZnEUtLQ(h,Dd3c_JgG%#b3d6gf;1q[o7@OS2IMj(n'EtiOVjDt(7do^'R%n-9nut!/ %-mYn0hC,+3'++#b,)S:@d7Xi'.&(Ag_;7.]UPPX=KYEAP;)Gr[jk$8MlZqQK@_Wta9T+>+b,(m5&E/_%W(l6[grZFcQ;O'*m[Xe+ %Y7Jg<:(`Q>b-u#G1A]01W"tK<0Zl:QL%F[mAi %ZT;3f:6Tg8._1`H[_-:Jt)Jo[,l[-/[0fL)#i`Ktq+`G/l0%%*fK7Ee`f]ZS?\'iHJ.0FU[NpfQc2e>11oZ%LqOUK'iW"]cJdG7CNO %r$R1eBbce/0aNPN>%LqGBPEZ@d9;7d*YbYT,0tY4>1t6)ZrRdgYmOlQ6f02O8d0=5=KUR\._R?J %r^Enh+l,%*K:dBJ'YhRFOU=&&TT-jEde*;==L9+2?qh;%H!XJ7?H5i_O;/d)m*:5#7+BT*,L$C %OI0VWD%0T!_dNgoPCt&":CN#fjiBKJbj#Bo %+h>Z#6.?A1>'olN2?Cl(#OR;%c^9&i`K+Z@r;>7459ITq]:jVhEjD=.%i>`Om'Uar:S<:@M]_l<\bnr`]i%DF]q[B"Inn)?I7kF<>UV-'R`Gt\[&g&(J4%Xm';WgYp563H;Vj>Pn1b0B"OVqaBsADM6G,LZ+de"6#a0:hY/ %+OPL9No0?nXCqBgG*O87^ZSOcl%>S3l`M#,$js5.22)P/IBj@C:,SktG["*YB<<=0C!cODrb3-[Vbaf.m)=bEDaGtTk#dJ*nadQ? %B;;)9r.]gk'phS'l9ePbS7$RRrW;&BYr;"9JV!4>bLu7V>m43 %A"/S\f>[@U+=dnZWo@Y3Q!GET78ru[kg"YU^O8%i_uBV4rfQh'?#68#ER^Y9lTj8N";Sn28/;*HLC9pRP1j;8EsMeA01Wcl/=$p.tK?=XV.B3#8<,k4/_Slm*!K\b\h]qU6e2:5N'6SC6Y*(^^f %iht4I"k?$;U8)o2'F,*eO_84&2G:-MM:;DT<:9`;Op6*FF!Wf%Vn7C7#))U[4_rdjG*be+jY+LR2U1UPk!GR#%T#W<#Y--\&%ll< %,EbN>;C/\ZCEjS-0/I\C]\$Vb2(R>iOf8Qf46Ys"&]E]IfR^`M#_I:`9eAqs,`'LI[M_aR6oLDJDIh@F--grG3_MeXA"!r$ir[sBYgX0*?\l\*.?lpX`V*YJrPjjgWeol3"GC**DsiWW,q]D]'[P9XUNW<8)O))KUtdGbbItO$rn9^ %pU9_SdiKUc>+XN@_"6E6cMMqP,-.iL-(pPGijB'*R/5S,Wr'dT"he#Q^ZRR(i/MCk]]DpD7KY.BLUn@P^>8Od-JtlnOssK^bg$[6 %M.:1+iU+8[cges+D=5I(e8HgF$=s^tSu!/o7D61[lQd"DnUd50GhdT0Y.g3W`_:LGFhggd80V[=iJ"S)VPTb-IopYXWq1B9l21;p<.;YcOpor%UJ6 %=PGpdak!&g.-UOL7O9J-eUlE\1g#*1ed92clgh3hs&P\57Z$.IICVSZ7;9#J^H0FoJ%W]`TO9G26IbG@=ec#o'h=P;r&#:NTE>fq %nTc*/Jdu.S6(3b*]=]0'dWa_SBET?%M]"_r-%ZVo_s,!_`!AD3h4tsm&L6Kf`+d$n3_@=&\qgr?P0D;($B:^bgk1_5kT$+n#SD0# %'"CI8*P2+&l)cjq:?hb(mP-Q+d+.;SDrknP_6_IWhAXN6IQ.HN3iTN(IhIG`"KK,kS#HL'g. %<>jk%'<\E:H;b33-cpq"8E%qOmH0mAZeN`O-EqGrN&//4^SqB_IplP3FAiQQ(Ep+gr_4uOndCl9no&7p8nA@KU&/NA.c$lNac7Y@ %hL9o*qmWt"2mjo6bcI+[;bQl%KqHodDeb]qdBKr\r_5!2\IpTsjZf`@YPd?l[JiN=$J2)>G:k?.XHn@r$!"2rB!qP`AS,"#m&ZNQ %U_]PPTZq5:cPimk>5j^hHIWg\@o9UU2B5-nGS1W?hreL.cO)d17`QN*`r3O`0cIZ[oSi\MohF_bCc?\%;cGhNdG5>..G*A&4AOu)(YkW"e]X`GboE[r9= %$5Z:SV1]/UkaL10+G_0D8@U^W$3^Xjkpuc:P-R^mt %'bbB0Z`RQPJN00kj&!6,'8HM[h@(`+&%nYLTYEWL4npT=oQP:2&tC"Ha2g3R:n/T9K.%:+O2e`)j7J4ur&?k3Y)EG\mJ5t/*!uJr %UTilOHBI.XctXF%qHHejN=Vp7KgU@iIbS\VKc^ucl^*7M[atA%Mp@]?EMpW?98fj+$N.ROWW_'^_j9s+On=C[rrJ;>c>p=g%-4P< %s)jKr;Tdj_hOt\VOZ'rcH>jMmltC:bkrZ9]].YJ_;op3IdTg99i.8%Q=mu\$]Rd6emm=_Al#sGDk.;O!_-7eR)']M9>Np/=F(SMQP]HI`E'C+7$2>_8g[LEHO3uXhGnD`n&EJTpo+h1a,HAbf %E^eZ5>6AUKm"`D,"5YL8K3JG(k$YUX#]:+6RG.l`Yi.GHhoqe&EpR+qJ7];!Q)")m">t8AXW04tJFB`c&P0V:8A"<50SPr[pb\.s %C2?+kd/M95FP;NLMqI9&*8/Z5C(:(n0A*h0J_8^.PH[!peTQf[< %++)p/+'k?4gu6W`o25kVOi=WF8Q#i-OTi)18Q#hrr)(!(D(eMRH8T7t0)+gjL %RXD.FZM-T4"\C[bP&qqBlOjs5Z+qfT;D+':d,NmL[U1->)I9&+f.U]YHBs>p7kn/9/MCNX3I4,bjKNZ&DB=rJg^tFrQZ(`s25Y(< %-$]mu?V+93K:[gHqR=i,]\'Q<]Xf@5CLOoHl.D"fe+Ai+u %Hlij'L$f8O3$Ys9AiuljEhs+FnT*j:bQ`s@)f6J!I/jO'UPMHX1l+Y-.*T&:gM;C-j@ai3]j&G %2L-/PNmT2/]9bY6e9a(@rHP@&YNYWD,.sct._=^*=s]JPC(j/K4kdgsdcQ>jjO'hYNM,Io\g.Xdk#!'`R+JgG'bn4kKWb=6"b@ZU-'bn4k"F]?bTh;!t6'00rYSC\:._R;,m+p8-!n)S" %McaBja1k5%RrGe/oPa0LbqJ]n+Z=r;M5;l5X$0M5o<4ttSdiPT0qm&^F3$H8WWSM3a80%()eomSCK=Kjfl?7J"i]=fO,?h54/YGo %QH,PoFE-,:;L`1^HJU0"4PGSF73?E^@@Gc+%qd0L"_!=1TFdXXE\s$u#_cYKl<1ctJlA%B].3K]2[-n'dQ'&50l.h^VioLiQ9eO! %o*#$PWPlsR-Dpes'>FG@hQRLAn6dI8PCjO_=o$oP.)Innh]'8JU(Ajs\RIVeK+Yh#;$\Ec0K\6_Q1$i)6J-po>KP_b\(?W),2re;DXX7]7)YePhCnIS"G%s(8WGd=(@*Gu[Q;:X>)YcJ$;I>$[Dk$n`3H`&4fn?I:Rdg>rQcZi^+g(hF46F[FWW'Up7=.V'J75[LX`c>JPt+)-`"`3h@.G1:@tA %>#5us`n(.HaF<,6+lG-lAS`qV\)G$j-t@$5H9]:!>3n;dn!>G4CG?.s]KQ1t[Cdmj.;XSQ'++b`i7[)G5u@nQc_eJh"JQICV8e'= %#`(ftN`DIb=uI&rGi>AhXL1n2OrRb:XZas_oR:>-[J$m1:6hajC]1nbTb;-"'>O2%6LqSSCAZn)7^mUIS?3'UGNHI>%ea+\Tb-^B %E^UBs]:f?WM)d=LE;V5t`tl%;2M\iinZRsfgoXE&6SYf'Hmn0K//$Ob3`1WTeIG/rOi#hV5&h.fSI-[J2lV^d[:+J=YJo;S2)MBD %lOufsNtg02ZtA.s.26l%ZOF&rXA<5R/5fU)^Y_8q%VruY"S2=3Ks`M8/OdJ/YWflcV9fQ<.B2.Glj(`U:Im-Za_]T,WHbP46""R' %jt(u>bRQtlKW0[02QT^4fuFH]X7eIb=;uZiTal>-Z?ip=MCfuH:GsPq^=9>=]c+A.fVd/?"_Vg$H`oO@IA1'FpZU/%VIE^k1!QKf %E*5W=k/Nl\WM&,]5c\!sp_7Q!(b(A7071J1=2bb9kYAQRIM2O_??Ys`0piLITkbD3&P:#q\(KIJa]\iPHITn#i90i#!!r/PTskl7kMT*[ %FP]*MU002LCK0.P@tHdOWC5[(8)V&_5>32F`T=dcG@_nB`T=dS:3&ed]`WE_LXZju]n=jU@1Z9An(k[c;JM8P9$';R.(&_DT6slT %6kn@%-YDXhOnVVCHDUiX_.bJbmt^Vn76(>.(&^Ys-CIW/QV<\PHkJ]]gMPHiZOs,hR`m^ %Jf8g+S'Y87,DI]K-"(-m;/#D=I$aIo8+$4'%X]PR/?tor:A;6Io?Y0?Id`hi-dF_e[!ji4]3X92r/]*H11Ck64P497^Yj0 %[WaUn*RstCoubk2=$Qj/?7hSnL_^s!TK5i]2?1;3&j`A+Ruda;h4!"!0p[TT6Lg9Ddh^U3`"/He-A\G4iK7Ic+l[Xn5R!%hf_3T\D6;`S[3#>>Ptd`#Q5!7XYp_XCZqsoTNXU_X_RCnLR]]@%onC^RA@0[hUTr9-E;"ps\Y.UU%CYs>J;seD>[a?"=X3=B"N;H641;/Z2gs8]u,&ki@$99:BO)TB1DFlT5VI-b=]0`8 %D)M=0Gqem6:FM!6ctsW,c\F0Em`.c\6JgM^liB\(YI,\NQoPWA>ZjU)sUd0PTFa0`V^DKmfX]LC@h,\qT@1i %>T@!`\-O8g0#]t+Hm]://u;A#J9rt,\U*5q%9s_L(fIY?iPW+Kc&>&BD8US':V0()[LLkcr*&4NqA'mUbu/qO@b^O$9Vb]4Pn8DI %RrI#gorU[\AC9$foMc1K.\rM(GBAc:%!n2]^HWs.*SZ>?ObINb'!`GLa$N+nfi+qNkU6j[B#:2E/R2LB7H@2f=D<=$0MuoZM2Mi$,8gsmqmRsL6jI,hqLEB^14[5gtarp %DP6ZQ]a`-ecTr>6isO;n9?k<(a$HouI1mj52-BT\_mMAK)k!0H^sQIFY-O]Eb %"i-lMG&CqIZ,difP?E\/n",?ET741^o!TH9FZd1qttiAY-e_h0Z!5[>]9^2Mhr>)n_Y9%26oRifJ0sUU2ekXJK7\&$H?Y(#'S@a*!ItL1U)N/qr2VK`7Y:P\89L,NknL, %NQ_#(m-)d0E*ThAOB?ki@WC(mJK9B:)L>pa4o[!kVuo+npJ!=ogG?'D]@2JnZBHGfe*OS\cbL%9It?)FH*\k0QgOV4;Dbn"cbPPd %7k@rMDul4Z9ro.2J9;ZZdQ(QgG[C!Q?F&A;<4Mj5l7._I\&uG/?G.Y3SRufTB]q %,[a()P5OiIhp429?`cmEo6rPA[C&=[ %[;^9)26@OfWJ*G&ic3YCVO#b('T:0.1pt-T+W?]\HaKerp=#L6j^MA1rL'5nT``aNQ^c`SkHoGRO=Y8r5EtqU-*K3"f%+(,YNIe7@@j/Sq6Qf'D_kY&AR/oa %TTT4MfY2@t)*`/*8a5YNkY2\&;PgYgUI(RntgMJ90YW-nZf4XamBBsnXX!&]l]Cef%1O2 %b7F,8KO.=MD0XHVj)'BS/@FAVS.Y6[J.qK*IgY(ZJ2MmFh[Da,mX&$!DmYOs]PZ=PUU;+%EU4&em)/2*P<:SnS,9J#&&B5c=/b[@ %X\e#0Xl/LUm5db1UaB3VPR_[JthL_t-0A]5(f?N"8gT55&99%Big*Sl2Mr>iL[-PA"YP %pKWlPX?M#a_4^&04TH8WZ>TZ.A?c)DFEGs&KLV>0Zp42WX7@j9HsOtNUjpXhE8Q2B1QdY".EC4'YG%A'W1@m[u4 %3$.H&\_])$8_d)20=C[d^,ODZ4eDIt^KJh<4l%F`YtQbsAi@t6koAR\dC<4T;Pj>V>;GM]/%n?bSFppV8kD>3pfl8N7H'6-q^AA; %[T5PiiT?fDa6n&F/^=G]D8"_IfA!brnOkAkoeLmg>cIcoZ2W+A8%jmPRE+,l:$p0%KfRX%3Jga#,3a?>dHu-GjWU52'&J-NlV?e- %FojS-j#),29=A&c'dp5apM?uQHl&>iG8EV*@dgR/HT]NFa8'gh'duh>$51ZgM8?*3;M0[DU_e,b\J.!!4M1mAar9c6FC6k?(L#QT %e&g14Ypeft+-]A/)hA3/YKO.7^J2t'Kiuh!'Nia#YdhG4\%9u<[V\8BN>q!GiNVuq;VbrU0lk^L8ioZ.&Pd9SXWc.>^#AA6[e\]J %+*-oNFoIol93nh/R62t2n/pt\$1@@Qj6i0r^\nQgQ.Cc2iWIg!o=/HJ6[!*nIP4cL\_oK %599@EZX43QU)WYJLO;39^e['im?!?8Dp;,CZTNJiC1,lrn3^&rtDt5rT]"C0ks-T>Y3-ukcs88t8AQ0\Q5:sH'AX_:C>W%,c+s^VDu!+M],'cOHbXj+/=;:!*Y)P?p6(J?eWIP4;J6"r`F[=R<;C[!-\O`j>0T@\MX,q(jW92%S8d4[E %$.UMQfhXoA$;%5TcFZoT6@,+g4XO41OHbVsC_NXF84lg.e-5p(l:X;V1RrZgtEAA.8IkhfdJY/'TSk;aMJpkns)%"Z7&c+@jSQG,7? %=(J07+Y)&1`h4RHUOqU,4AK7.,@>Z&=HjY^q,H'6NjPe %Z+=^WFa^2X?VI-\,(3Cjq^,!\O]7Z_b!q3T,*bOZrN\tKZB\BN1F3"Z?KZ2)1-\J,Iq2J %.`$4=/m28FCUcOGeJp@/5[<\"^W]Rl,0(ZQ1(r7(m31mBlGms)LEro`j;7YRaN#4AXARZ?T;#e0%cK2ZUclZH*0Po^LU`d?8;RRe %%rj1:H7i!K^HKNc*5^<]g`D>!CX;*EEc5Y/994t.Z#ios2T+q#:0;)P=%-+rLkJd#HrUTf=\ClObMGF76tqFh3\;J^4?.PsnB.<\ %XSUEEpGPXoVpeGGl %k-=2(0MUUkF&;`*;kW?Krf:.3XB8#]iQu\<&'E&J1L+ZodTuq!hI&^oHT6BAhY/8^c1bOm3IC2#BLsi^4'eZWnjoqqqLuhYk?t:B %i[Z*SI!Ioe,Y'&m4OOV$.)_#sO7Yd5=;9b1ER-rcQGar[J.<9Eq!ps/Ml@?%l,D$?@[n8+CO._B]Sm1UXS=i0S#/XqL-fN(K)D>b %>'%BeK8TFg3NFYKlsh+t],'^+,)e4dI=UNX,"hP&i:b1W_cI*]KA;kul^"gsb7)#MWEelON(kC!"dspV;Q.meKL34.RObF3e3^ %R6?IR3Sqc_'/@`=KC %n38E!%oe]Gp`C7L#HO[Tpn-8c3Gaf(J+0TT#61Hms5l:B@GlXb)V_'Y#_E"Qd=8ZeCr65!BiW$cs/5ub&deT5UAlKA+T.:(Lna2Z %%fSt0[fNg.ZnHQ.jm&+o+S[#nrgIt5Nd.q%KE2ts.Hq7#61Hms0*G7'`=#Lrkg`sU>UN#oUdB:K`=osJ*\Ef#5B8TrJ06p#5mp?"[0(>i7Q>JrH/`GWP+j)o"3N[ %a9&_=V9BgX&1g'`Q)]sKJ2R]Fh.)SP!,W>kbjbjI!RC)se")8)/tD,f>=iucg:"tV09>`l:M!AmV8aUUil`R[?qhtZi%g4oj_KUP %.Cf4J\[\5s-fEj"Or#S%0-!^eVNY.uJc?%`a/I2bLMI/jrN %YA"Rdgqa&iJ>"G@*;eH(#Sc`Jn!e^G^arFO\ %I$C%TaiXcgBCIo8euW-O/s2n)n5%th9H:'nP*J,_GaWMNY23`]*jYH.g:g(>R9kNC\LWR\mH/pY#^6SFD6WU?s?VF^*/q.,c %[+slNEkMcXij3[aUr%?G.tbcNjdJ!oN3M]"L,dhsqKZB:Fl>upAuB-`YA>eQJg0NCM/ %=h1d-LQO1oq21Wnf>_"mE+ss9bfoC>.'djq5F&D;pUcN4XA.E1F]To$jm$/f8B]7ZUW^d`>rbETa=56oHk#T*73PgE3Cs^*6o(\" %G.!n^.t:$'lhGDTcH:jADl2VcQ^)?L."l!IWHL;oIW64eU<:WLlgf_QarR>upP6"gkHsu0L+:N=PLe:01:f*?`+/D$bR.+,VdoU+pC%_`&[oZ5@gu3Qa82]YS3%>!\H1tT,@qOm)2_t"5,Z^VMHa2.P/W!Th^W(3#JHCA^[$3==:a. %LC8970_Obb[@r2C(a`Z">o>!AM':GAn*t[US`"(l`o*Y&p!L%?0I*]FQ5s]0f[b5]4TJ%`j.p2Xd4KN.>'EZRgs<$&Q.>q,J@hl` %D(^ks/g&oe'lMsF37AYSpNMO?IS#]FW*elcCC;_&W?m#;K`>!Zc?k/'Ppc)nlZUc.Xk3l,.M%/LX)pgiPNTrT8BeLHnBN#c"j[?q5;lack;Mc%[RGBDi5tblU`g?Lan*$-S_P:@M^rlY2fqjh&PSPKoIo:D9-\n^+UJ#?s:s`&\-Vf!3e_1(6,K`&\-63[+GL %JJ*TANALs[3X5dN$f=MucSq]rd/70_BXJQ66h>4Ki$hD%4u>6uoK(CD8IXoPo66o,?goV@Mk$S'jMD(b9c/44e:sJ0NBOA0^s1!MLQ%lF-IJ^VGhkFIm2]iuB]Me!Fk:/pJ0?9uhYV4OhfL^OE$VeV$EBTd9Ce*Ysi(kCa %.S7?KlY4.UUi5Ouk^;>"?9=c1]Q&pN+fcI7d-&H.kN(jU1a'#!gLXW1Smej8'8`[p_7RMEHok8qT:P %9-1RGq'*kIUKc"03TG=R\b/Ttnp!`sde55C;\br!Eg&teNF&Nl=J3is#8H(:8>/"A^C`FSp0r/NU::J[lg(+DTXr!rF.UIoq1p\%t2_!fWK %)-Pr4]hXTB4>+_V';)eUj*6;;<8nQ!GoZdKa:b+]ni347M(%nNO=6)%T9f*!m/9@?&`"n4&jZ[H5.R:Xk7n,W?a?c/PZuB;5G"8) %Q1a8M%8ZgSoS&sQ+#]\@!ZOsEiMa=1iPOjSnV'IY*KS4MoAqrNj2_3"@,-UWO/%&`ke%MnZk91]/Y4m.M'#5F9OtD(2LZWQQ\FEL/:QBBoo-@s,/K?+n,8pX/lqm0Gchel081?NP-omO[A4Y>rg3TU^[.iufhVY=j$C#Dq!d=kA3YA0j(;&\"X&j/5;(&!!-oj'?N$jF!6?D$O2H0]!QZM%O5jM]Xr^[Vr&B(jKt-X! %pi0,XmNY2P+.$Ot7:0\K^>`t:Z#H/KZVnbS4Ee'$ur:$o<@Nk:% %OT4=\^_9(n0Y0AG#+c\0\5i,*R[mp,O$bQl5_!X%kn(-("5+/e9S\tlqfTR0i!f#r[R2\F\=&]%D*-f6*D3#n"tZW=Ge_UALZl)P %K&6`>V[%b03W!8j[R72aeF8M&9#>!q*Q%5X_"*^WjdPNGDVH>$ktmPrCkq!=j564..o(mNN``ca&D5P]Q#[= %EA)gcB/IeorPUXb`AO*L^J4o %OT;?lLo::`]O16*(dnO&@jFDk"KP_b\(CSF)+i1kUOTa'fMh%GI`fpS']e:AKA,_0 %8Oc?[C0,h^Wom_^Q%28B.PQlLU:@jAW?F!\DAb8nkNl.[-kKB)Fn)FcP:5@6OrW\A,SENm#CWjhG1:H.#p]lF@"_;;eQB@g]$1,6 %7'Q_)LauTQ<*fL#QE^P*:FqV;\cNCV7Wr;K_f)>2\c,:"A?DC?\,_^/SD;VA?iq$Mu$2&h9B9NR7P17KUZJ]-uHBQR)Hgk(-W2 %MJ2rSa.`.3cBEB.\"[3C9F=u%0Y'mBB>Ma:&ZE=OT@H6-V:mU-Xj$2H&?%PiFW$313h@TQ"mYfFV/"Z6]YTPhPoQHn`+ %%b(s?c[r4D&Z?YQT*=Nt8"ab8IMPW1nC.BdYB:]A)TC-Kj4V1XP"X+m$r6\0Ac;Gk^l)kS@Bp&3PdY:U=:tPf4$.E/,2?<6RH74, %Fb_HheO.F2=Nc+e0CCk3W*70$?=>lXS"NFKGn$)ML@AfQOpmnTNEH,M1C%PqFXSFc[TV*S[@0/PlHZ"9D]0.8"qIaZs#q7*":AGj3)G*![KcdaB6472VW30a2I`Kjl!JI21OJW1F?LiB(4.K"rtW;UeiAi %mM^HSZRuJQ2[>j:aVj%o]Z*CJ,]eZ!"cRD`oEgl.c>on_UaCTFrZP#;!A(SmL(`J[3.i06,.%$?pHC&MhbrSQb3.8B5!,2TJP%La %6_^gZY__=7lIF:lT,i>c%'UpPP0]s3#_Xac7"G^D\2G2gT8Y\r`,J,mnRs2*f_@u!EB.0!'=22EH.r/ZUal6nV>KRK?5YS#qeAHX %:%WG':APXGR<;438tm^Ap;27.8%dQl\nT7AR58=fpf6XrNhTVs"Gm>6C)A-*_MNl+_4C3="r;)%Z&0)(i&.3Y+=*'t#V$*Hh]!)Y %JiN>2I%XF.a>M)9s3).ahrXY+o3B1a2=st(H0">6hq"E6/Z5DqW`@\>8f%hq4-tTRmB:].4F5l'FA0Ap8qUCFb8tp%!sp(-RqH32 %CF`s#fn2H$]'rka&jCa\B280Yb^*m[j$"+5p-Om;7LdY_Dh#=:.IrmqU-Tp>?qIi"QIc2l4S:Wu@$U^m9T\(F$X1hT4of %7N>edKa\]*Pt:L_H!`dT3/9TmWW %Zf,Qc_0$>:\Yt*QOr5R4GHcZE\Yp7CTe")Q/mE:+n(YmJUc!^V]@B5\O@U$UkdN7i+N7]&'D=sGm"to7\M\p`=eAR@$kfNYKN42^ %)'kB*KDZOj1J";J,iHSEbog07[08?WV#I8H@4-!uM)9bdI:TT=8>L:I6YR#hK*:cX;j&n(f1#0;&kNMq\Y:9\OJ4$@Z;op^@bU"1 %GSDmC-Ke!G9Wi546e)OJ3p1[<:Fn9sHK\*;jq*/k"VNP]6#tqi7E4Cl8U80bO@U$U[Kh8t%+;lS,l=jlhe>ElL#4N(h.^%\U2V!1 %?<))O,c_tqLSN9tNSrC!!P,K>HR67PqPqX$nqdX*TO/Trd3Y>?X2l^gGbVtl!RrBDh %h],Y#d=t5Hp;*_%om#WnrFQem.2%d009@sUKSE.YlN]NuisLB7?7RJ(dXK>5 %lu7VNWL'qt%Q[fO$oqtfB,MUJBXlRJF/bmWl4T>B(2Y]7i-*H\8`Y'AC)mQg*bRFJm#QO0(rq%%#FFQDN]3XP:$eFcUm<2p, %QB='??.K^7Y(HD[=L4ld(-DOGNW*cu/.g]DVeQK(6$PX+8;>)AeF2S$.jK\9%0`GP$Y[0RScI2SnY.0\=/g&&m'Q(bn1 %oXssJ:_rU(4SqtUbnK?dZ;#e`ra_]fF3e"-Kr?7)*2TBq*QEc'Qr,?5UCa@BUf"/d57;)idCWkH[o-Eam> %30-kJpd-?S#AMH[[3el-Bdr?0Y+^Y6!Ml+_`T69)/mHfeqXfgC&h-X`ZY&5`F?b9LIp9GZ*J(dqe[96s-:$bRsE%72GekTPd %n\:gMek$YW?X'MgfsdX2_mXmjh&95h@Tja'W6-Y5lXNE&hb>^%\2,nSeT\0noT^lR;t5p'HARN*5XAA#d!e:JMqLTG*=ii+rJ78` %Qs)`ija/q5hgXGcJ\-P`@XjcY?i@$=Xj"gD3n-=@$]3sR<1Zfqd)^*66@3,/+feM)6?s)EPo>hQ.5[Yp(JtYYJ#<`g:t*DG]r#(W:&pcQS0`Wk"]P"\e9@l/\/@/;kqn4O+C(5IW-\6j,a=So8_?p+=+PPI(d))1,smL's'b[S*BW`F*D3(m79]5YDF!])Rt6A %Ecl-&/'Z=sdu!C/ibYFZ$9[i/mZ(&Vq=aP:@K*b-GiN2,H.Pd2db!V<9'QjKqb[V7O'Jpq\mbi$^1hK,'hL:e9>1`KmWQBf>6!Fg %3)p$We#MpCf%piu0;S"FD`Y!b`gb6pj@cEDQVTl@&V>mc&@DI-bOs`9(;hsGSNUXq>=CPdK1U7e(SuBD>CNN(G[0OdqNMImrBtM=l#5$=SbO))EOG? %5FWGNOVanD@[r"!3j!liXc`Sr3h=hD,nB7.LicgMPdl?**@dTqR[,aW>"B>k1W:m^LQ@_;#C/mO%UXnp5G#)GPCAZCHt\6(j7'T6 %"G-+',^P)&r4%%L(s]:7*'RC1+*aoe*59U]/M[$?W5f/`^:?`[*.H[-mo:'N>ka6_jm_5mb!=q';ZhS2I&ro"$JAN8I[j)J'9+(= %Y-kKi-`Sq481k[.+.#<6pfK\#kh0Tjc%Y]36!';q2&F7gLVA\q2:oJ"ipa3Npn2+c\UcNjpW9Q(h:H'^o_sFfLPG=Ro[BKTUL65= %eADWDdOZ?bZ.[+]=5\lZ<8X:?Z6LNBC[mJYZGT?p8S:,hOl"$&s%k"tKl(lAn#p35TMq0loKdBlk.-tTl;2b!4-qu8F[;0bmXfM4 %b2t=$d70%T83.gg/aajX`T@"+\s*`:9Nd=Bd,`lP-Ml?Cl9&UokUODZ^"HIjfN#5$ek]@e2.ol\=,FH$(BeYAXEY-s"[+4E;V4&l %qqh0q5MOXg"T=X]'S2XFAT*._bGUP11Omc#BdqpmB@+V3j8JODk.22GHP;B2qWLgi5sLaK?&$)`]B7e3Al5P!D&oJ60ud?N/8I5S %g><;iTV$r0OaT8o[!pTp`:rGeUJYmgd"7L(_emZ5mn16`DM\Zj6OFUHS5Z_`]+9 %XR.1&d@LGA5-h\K,`b,Tc[HQ/8KN;3RK2O%D4,.hm)/6Z^*Hqo?4DHN"ZY0gS`$ %;"I2r2>#CaiWG?+qS^V9Adq9<`X+"P]3#aS-RYEA]ei8PP-%OP?%lriOplbZ^/7/1AZS"9!j_,o4(PQW)HBCmIJpt7okSm^M%c_> %^rZJ %5PCuR>(uX*T&X7UUH'RqVSm-_P#B-]sK %l.;G.X"7B2,\K>&1@H5]iX<0:TG2l-]G8'SX4r0]4*+-)Ik[,]%^$niHY7N&_0m,jpWdA:7l2c-H*/>3(;`if\n_StL.UCZpq'Ckc`RPH/WG^@? %$`\3%jLW'!em@?/YW9H%JFT!Dn!uIu:*)9Ed+A8*5sBF]_]L %l/!Bm080'04&c[`?$+pbb^h_.GL:^)cuibj_[YY>EtWSioA5$;C,>B1Q@.AU5U>bdZ;TsNM`0MPHH\f[>AV*-mFM[]-I16_\,$Si %@:GA#TC@RZJU.bHMe)"t7[P[;&W;-f;K[?FaZ+,,5DAQ`HrhJ^Pq %63&UW!S\)dLg'%-Cp7b7'EU=p$[:P-@+t^_BOF5I^pX?>&F<@C;,0DT)/J%/ju;&bTb)`na8t$*Lt\/*0%b?''P7j- %G!I+#,VOmhT-_DG&1![1pJtXVDJi6AARF%lQPh4dmk)Z&6f<5>S_"B"WV+feXgUeiD.i=Hf*gm*pO5u&+kil^XK/msm/>mA<_/29 %ci`)nc\i%?4^OU%$#nB4&Kob*Zu/okC80S;@YSdB$ %;),BM2>9GHV9k>+/CJ&bdTkbB/Ys;>J8#4eG"dB!QS*%`^&jiY'_ub3$6kNk^oPT7OXV(X@S.XL&aeH18:u4WcCmu\JX4W%4XBc!<>(u.=FC)dXj^rNrdc0(KhAr?VN!6dRMH(f8 %W/`)?$E]$APea!Y2.Znfi`*h>d'g3fh\;$N^u2P&>oh)Uaq\cr?h$4+]mU'W[?$&gM6'L %[A46%Z%b#L<;*O[60J$IVqaBsA?e*J@AL33UoP6L`.)jo3t9GT%rP-^.#=LtJLF1!m< %Ha#&3!Ih2%,kI3'ppgG[ai-mgi9(HWLi#Jc$;%4)H35NtJ=e@MFq+cF`%4_Dkdtet"o,V02A;6lDMO9'!:3!XZ2d*j!)bTUcL!_V %fP`%Ue;ir:(,<;Y`t]``^^EfqToiNtVX`;;41_KASD-?-2>#[!i*=Z[BfuF3>Z'Ho4SC4ZFY'OL*kQk[\o3_,n^mn6MD1%1^8B>1 %Wu<=Ea.JpJ27LKA'sKHI`Q[`)YN;"ujLV&8&!o3R+[Wdu[=dpY0loGMom9[oO3@?6pAUekKk2dar:>.6oKbQ2Z>/QgG[C %0m48!ES7\IZPEWqgN,HoSl,^$CsTm,grU/dZ<<"4iGdK6UhZJZ(gb8$j0Cfi*R7ai\84t&.ER_1Z9>;p9KEfIbP!ard!(F2@>6MHPcbL#g(/a"q4Tde0lAHV7Tg#GR1q;nF:F43*%Wu.aEo)M0lqdq1J2f,sA;<4MK78`gOWE`& %%]ItbE7ph6*D)7oQgJL%8TH)dCemt;cb,1VAM<\mKu@P8cpICf62u0ZfhF'bm1GE&p;d=5IN_JPeAC.L4\[N0/B$SS4\[NGG9Ilk %m:g<,Ec>:WeHK,IL+W&(`AP$p5$$U@>:na7DXBaql-+VKTJM`Qs$A79R`1mq^Y?N-&_Yk_Op:3`PD%J8) %U]inO]LsK,CV@,\3r[NtV(1`loO73?bXPpBI`@j9Cm"*`mMLA6A %Do?^BXQ&]M.frB"?q*O?N^QQ-5rZgM7U%=La'O@Y6V&fASagc;A\\7#G'^.F("]#e>G8*h#,?;6>[L;HLQ0@2(#3$CV`/=ig2b'`u.X\:r*7K^,jd'O67h:>o3C5K23pol%4TshR2K>UZA&16H",g?:"%WDp[\J!SX-nh0W@\L%GeUCL9DNY_GeZ>nS\>e.Okr)1E!"089Y#+Fnp(Tq<; %T%iT2==.*/AiAVIFBq2ok$hLlDVcHR*m(KV4Bs)^'2)\I=+.$Ik?glIAF1Yu[g\"Xc,*M1UXqLd8G0QJ]fUX:Fun(,M4gY,d)sVt %c`]f`<#@];;_N&jC22`Zh(lQ2:=*2W]:dnY-$AaWc(j,D8Z]Wr,TREJKDH01COLJ2>A<5Xql#6@s,u>REZhQSfhoMTSgW85N6nQ: %)CsE4QT6]Jn*]+A]CV+VbCeo9GRi:ZZTrMeeC)uUM=E,-?7:ermR1@/bt@I935$Et27O^r[9LUmF0j5b-ed@q5,E%AkG)_40R"h! %X[#[&2`]QA8shC:eoX;2^?.NqYhlc^p\&i52]-kr-pIUChV\0U5J=K>T3j+lofpfu^7,/"EXsB/,KR%$qMb.uI:^[W[_^4iC$0BI %qq"re^:2R)kugnK^/;#\.kZ>MkT7-,G+.H`hldIU/UC$d0I#=j*'1`>j0*4dng+rbPe,u4B!FHnX53HN^@BbJd*'R6"jq%*n!@6) %U:FY1pX^1[W-1iDGi[nYr\IO8kkt+s(!d;RIIH2\!B^6hpG_qT8#pB;5J7B+KpVN#;XKMhjjGV(V;fb'%'NZ%8d0VZ_-/.J3H:oFWIHDp %8[MMA.2>Fa$L.E'r-nUUV9F\[6b6)'l"/$>SRD4IL-)m!sTP$gAJ7I'1td.1(on83.ec5`fW?\s^V#;Ho&,VKm)JlfIA0%I'51Pa.@b %YP8l3')3=N\r2*"P/,C7E+F#dYIU!_OQ:"!f^kBpPQZG)!aJCd[EMDEP(^MhrX/^MstM^mo)`G[Qoo]IMKH:3c';>d7KTlu7M[s33eS%i!hl_R@FTh!&T+Ym[DK(Xq%4%)7=;[bf5ed`9OLd^L1RF;',g`rdNp,Pf>\neG"5dfHgQ_qAi/0)Pg__m\p %eEmaU"P-j28cZ3b$r:mIem5?t,+Suh8pB+Y.Rd6?;5!_WT"uf/eL>P.8O^*WZKdeudCZ-up5k_Gdc0!lAK]Edr7aSDboth#:1t16 %AX9n=3M)q=\`T!fnqT1KYrUm)BSCPE`tVO_O.M?;TsdkQ.!k'^h!H8fjq-m=#AOch22A!#m3/Xp&.f?hg-Zk')Q>_B0k2Omm3/Xp %&C@cL_fXr<0NRS2p0Q'+p#O@hlY:'XVj2LC4sk[kn/(HK[lk)]YPD5h^u!cTU%HfeS4pMi'O8'IoD\8eYemFpEn]53rOBX %pMBnNl2M4*GPPS.,uq:P?b8r7g`G<9hd^eNoc/=ODh>QDgs)Ce*_2OX5p`FWN$I=WeK)\]GUgUSE %#61Gn8\n`*0_c`48kP6M_Z0V1>3pWK3:4]#s/>-G<:c$#s&%0nTIY`4s/9d@1K@H]r/^^LfZD)6i."_uT9UhL"ol40ga'`9W9?Gr %%:2LiI=E(q@B.H7?pb9p`EKY+S@2or^TEWku5o[i.'6CeA:Ma7*m%kVta"&5DJ;ds$X5M/&SD2NU %ca/=QjP\l^s#aLiH@`7Q!qGB7?;OoY&mmL;nO6'ceJ$S<`7Itlre"cV=kQT8QDYQf"Zg/b+&jKsco>OZ5X=u8WUU&kh&]!L+Q.Y- %Qq;k^q?n\P;(4320L@:K:^-Qq/L#b(pNNI*kK.'a9fuH()o6pk//m,j6!c3qUSb-i6fD]iTjOk6-C4h\seN@1KJYj %(@1.Ion9oNO#pW#m=,Hc"nmGYg,gQ*/pjVbf4AE@!tS*'#Z\q(pp<'"cO:g(?mUsb,CE86jq\^>!MRU!@9%<7ON:b$MQU#Z-d!4Beq).?KK %6*kT_V.QUd-6p^V[J+(r\%)47>bmLa[+slNEXf4[@fms5XB]7M@%h\ACnReOdT4!A5?n'/$s`a%V$l<^l.hBP:aqqU.'lCVjI;E= %"/B2UcH6;B(hID=H545XZsL9+YP]NAmYd:MFVSLb1":[Tof72`SjF&I[UESD*/ebIo6$?N'XCSDL/o``Z`@SLs]?A61_:99:IOrPgt %M)EZep\79R[RDN(?ONF&e'^Z\V%=Y8l35lY$*uE#)/:.$,]I(Q$'Mf)qW^S&n"Y!+G_2J'@\'65G'RSgaNcE1@&J*h_cO/VA"@#2 %04_:#6^\E_S<5]uYU5WGNi!(TSP1$;6AdEOih12nb8]f4>TE&TKb&?9Lin;nA]S7,L01ALXseLue"TqloI@;MnK:Rf9Z^fZLaZ07X$\G:UW*46oP%_ %-aS"e[Ffbnf93$LRJ(E&+&,liG+S^Wa[.P%^D#L3X2"MAn(kDEb1=j>dZ'Om:2_8b";b5Cl7jqs_T107d*ed4P,&X7ZNq43<%3L4 %4:B)(1UOAPeHK+0]Pjb+cQDo?KT4[(0o.lVni.1.@LcXeEem;[\N-=dHBL)i"T=\FPqU^QL(E.TE$h9qd]?pP:SIq_I*J344A:]n:3:F`M6h>Mq8V2>'r[p#^/2b'9-+hM*p+5?RBRVS@ %iUq[e^RVKE_'I,&X`Kp*It`@)ehW:6a"8U&IEg449,j<[FnPY_RE%KJJ+>SGJ_3%FK*<9dETsQg]e<[#4^nEc?cLiga4da*DX'>? %H(9%Gdd_GZQuPM$GoY>[Uo!]:2E&80n]p!`DYAO+FiU+:%aPM]7jf!r*52(up3:]?EF@RibOOS-*gAc^l;ifjO5nMIVrnJW8#'2_ %DEMEOS@P$)Ocd]3;e`MWUEbi[5-i!GO,c?*cgpSMs6rha5b77#s!*7\DKZZ1VUPC*a75`6NI`I94>+`bdV8XbIk2@$aE1U8ni3_: %iY.r%4QLLla+Pd'&]s)&7ZJtg8^(^.48_idVgHm,7?bd&qCdEYGQ4rI9*FgF,o %-b^AVa,Oih#*;?,+#b']JW4eGh(C1P>:=q?;`,="0/;J,2lNKEbb!Zfq!nC8m&,Qfh#F[Prg3R/0`+EmIXG#dP8O4B\EkSDr4):R %[fPQPi5`Y;/XAC`_N.pcf]#Sk"T5bTHN<,hi5b(RX5TU5\geh>gZ_><.1C#"VQjk?2RXn+kB%.NM+.$LK %J34JB\2!UC4&6S45H`=hLDlgp^lKH,lnAN@%-(85,p:,+'a+9j5GH+*p4I&V3;aOV#+cZ8"QoD;!T]C$a+:3&Zrt@c3j_hQRJL\" %n`,^q(W^d`1`\c-CAt(t]NPNE*HL,Z/MA*Im?"Bl+gLoq6GW%8)4srYgEDpJd"e/E&:Ok15Ia"=[1L=R-&CrMbB,/S!H!Ts.b@EI %kHl7MR1>qQ%uTR^2m)=,=C6H`!;nhQ/jXLH(X@Q5*IcGG?96,#=- %RCf8\Q[\VL#KqR>5%%,!8Zpgo'50><1ODgONDo&R4#)9&;<&KMDYD$I;<'V(8i\#/gtK106]HH-BeVpYHG@fL'`tFc4SqU&<:D%\ %cq-q`E-;g:'`ns^pj%]o\i=b",;rlec9#Z*0Rn^MOr7GFTb/"P*E"$l;1[nmacHj\h%E@`bX3i_+t=!I4pS'30"germ8CQ%/03S. %KR2_0bM/:o^h#uu"ifp6I4ANaOdfJT8V#h*N$P5jEP(GfGWJ:a6'X`JdLrGQ),A8g6u`SO7jLs5f$oO@I4_1QOIj!t\Pfs%!j?+b>g#T;p)le?YX_m&@RLVH,^CcE-HPdQ_KqIg6^M2-'D. %9Eg@hBT@R*Sf.k92!8Ug)4e]"_+kD5/Yp=q;g%o*=uq(l03+@RWgb+OrPK8K0.='A5`l- %8sW/K564k)G#QS+5tAc>Ya\hm,ZcfR%D0cI,%PE?b#"7r@qjT<&?RXKYr(gE(4'&&Vs%G]Hbc?iMA%;/a! %Z[JJ$b2.OeAtn$en9D&W^EOQ^Ju96BG"j;0LkF3UJ\%eo4b;NG,lLIMVQ,3!+4)p9Q$4.o81_Z3FC&,>^=,5KfMVU3*d-44VYPF0P=WcmsM$`01/r8Zl?66ODPV %_.eD#V6oY0%nc`*DYo(^L(`^dn]=H$p*b%dD_Ya4ao*h`N!apN6GM.-CS0R]%HnRm3ht$%P5at9(@*0pPAI2b'`BFchNWl[*n&VaYESNksVmRPbGu^_O'=O4W$&sa[L)U+11Uq$k%f` %d+.;SEam74EXY=ohCE6%e&#NAml/L"5%-?( %>\NkkPiTcTirm]O_B^N%Eq%EWY]Q3+B!8DO.7auIF4?@XP'K)U2)Xp%^89.A>n0'Q>4^qE'gl8Er"dip-X)2PC!nrW$*@]"+\lhc %:4jheeXA/pP81C?YXLP9,]MlW-^ODXhf#!$A\HdC>$iZg2,(..Fj;`[,>]1ROXOD2`KAKVe,%Ho8ZhBheakH)O<'nQ$d-`56\iI: %(hOgb%f=rVe\B-r*th$#,EbS3W=m_&l`1IPZ!Sr1"@ABsRt;@%kn#,e@%_]BA4Hi\io7PMV#JBF_+>>-]l4L7!+%YN[`OMch&18K %:b`K47"[1+ho,%-k%PB*<%$EK#jl;'N%=)g?X!O7"B@WN29mWnVF_[5JdR*kA:Z-7.L6)S1mq/O>5`CqEOpPsrn?A$j>te?L>)*: %rqb`6LMLQ6rS]u+mk/d5UKZhoC@,V3(m=_J0EHD5iL8154prkVu#1uO'S+,rs;n`698Id.r_K+U%"k]Q5\hIPBWW685qLO;1Qg>==(Sf(n %='mL69Y3liM)N-b<>WK)&!Q?7R1,7jRH$^;:Eb1-06HRiFg=;9hghUVl,%"i$Es\>l(`^QrRDFZp45)hWn4j."hHK %Y1!:A@tWot42I#"/cN7X2e:8&a-%^CTBU"*80D+:@?VO"!)]9(:-O:+k8YGin`%'TI52Ooqg._+Cg %-;8GW"d`B`dg%B_,SsI"+oN$GEqO'Q;cp3uBB:&"o`Acf8/"PX]/XDaPjc40q[AYUMHe&&h>UQfqVHqI)'mY(bc`8hE*$s]%O@U$U %VL(#d%$GI-]@eLu!s=l0jt,ei=TLJ)->Qr3BfO8/6pdo=]ZLWO*iIRG2?!oe=snY8\]WKq;:0FbM;WbUOp]=S>+#aW66+7A$1O1 %=OtDGojB\/IJbLG,'#tm,91&#hJA$,:!"WbkMcmp]s!q_T%Y8_ahqrY#%eTPGC,rIO(.rmWCfc_`(*CKbuEW %L2ZLk37q+:5,CffV3584I8&Tt3*HY&%n).Fbq.&4_n0d".jGFg16Nt.%[Y$Y,-5::L.gLFKd=:JV9ip>51p[12YSOl7>!MMr@eh< %9At11rK_-7V4u1[p5F5nZCV5pc&DjfLsb?;EdhP4F6d*LXM#VrS/N$@5*L578`O[0\o?rHft>*O"srI?Z@l;J2pja:d<-spnA(]ZJI6X8#u@ZQ-V(T*L'`sWQ2-]?aX]Y:`ds*htOOjE]s#BM>f>X %`;c/3];J`7bi$0bfKJl>n::67@eW\&b6-U*3$l!1gJ_M>QsZfg+q=Cf-WTmh7MtbJ;N#tCilUn+/3\k#6>A51@aB*=aQ*T!2_YQ6 %WO>]>NrqEM^!Fm1ruK!,^-'h:P/E0\CJV5h.G&bUTAN^tH-RVIa+^Z(GF+6&a!CoQEq/n6,[!^HjeRBm95A].#ccPrUUtkW!IK;& %]g:Ma=aOCO.*EQFNsk[XU7s*h25o%u$6Fo?TGA=o$PDE62PZbTbJiB!_Rht$>qZ*t(K"-MYYFq?ac=uk:H96I\HICRdbpH"X0:W].*pD&].b^JDs&E[/B6i;);J,0nLAn!5P-pdKGP'>n'rd\c4Sm[]0/^#?OnEXQ %)7si]bqX=brO&bMF>,c9jP2k..6a %1rg`TOH[p*TK,J6bRk^Pu5i'Qi3Sep3;i(tYV6A5h&7$U*Mk=UgQE_%ACmFbAClERa3Sg8.U$6)Qs`H,r\ %rto%>YW;\Tni)tqM,[BB8RR_g4o;TEPJALYWqmQt:)KOS.BA:g#6RfmO_ %8J*9WfqJMO;7^LuLR8=CKH$R"AN*u[P)0_H#Ju\@NHC2%ROGj%q@,)1l[_7s-X5u;tR0rrsj"=?J6ol//Kb(YRmP\Xk"j/%XZ/$SNnC`Na %ZE@n*=s^U9!=]*cpph9((4kpbSJU8VnHP!'^7(-n'DpgX+7:c4RdTkjqmFJ^$nD!IB3+9[kfD__YHhalAn?EQ*J9bTP.;cONJF([ %i&NT$,JS!,7QGfTCqZ?<[s@P-bj)48UN@PccG.s0I5YBZG<;>@n`Mh,%"iXXJ%i,=l)t(1"!XL4=or$.llk00pa.6U6^+t)t"1j %&[bU67+PfJ,AO2/D]n;L7b"k"Z2n+b-<3E(6nO\c%20;i,&4)g/?4oQ7F^=\8eP[=5:.qUQF]@5aT<]%WLLnjbYStZ7at?%i.('O %<=kHToT=hre9\r2-F"^'PE.!UXWD;#^)OX,MG#&L.Hs,Fbr,-l'Tu525YrI_a7=u8;HQ==[?Ui@YcJGEk=_;tZ#Tj_6^d^6`.TBm %F2C)*Xrs2#%=l#iPZ7?6lN2M0L`I]\>>.F:7I4Q*=BAOm'WYE6V-]b4H:4eP"mDL%*=puJMiUDhW:b5oC!H=n%U.@81>&!"9GN=A %03gms($Md_M@,6>V#n>M"Y2'sQ3u`kHV/@[S);qC1ehum^"ljCA41:tqtfu]3S8Z2pGh9]$6q0tQKj\:s-UhW#?NT]6nQqrlM.(c?-pH:m$jks(5k1PJ&&\/phO`cO0YZkL:)Yo4=;g1A(-sna\a*'tkTkn9n^24r#E$iL %&VP]),obH;A6c&O7AF7$^-rbLA72_ht %;K0np$VN&ON/n"Y-clBtHoME;kMT/T9"e;9p-5,e@l@:7(nV6R:uPP]G=Cp:_A#'"+^oc4.)(n@c0,W@j't@E!>SF$OgiogG>2*_ %fj>jtEq'h=r5g!FTs7ma-W^VE!p)/\flfAXN_4i*aW[A.>]XAsInrROXa3g]e[AVK\C5r/4hO+Z^\RI8]i?.4i1oqHF*H>a\a-E- %Dg13-k#/Yg^#7P7!_.hJ^0pJjZnLg&s+oOl.1^Eg1bh1C0NnYV-CGrk@ZZX.PZace2p\YrkpjM5N&Bk]l7,f8Sb8+Oc'ahpgtW9h %Smki*1Rf7iL9Q?\FL&;eX9[sT_^ds*aG`DgK=0aq+0peiK??,;-HW>@2L:@V;=!E*l:Q.(5RaEGT'2#Xsg=QmN>n)akhT0ZCrPcO[Zs$`8[D] %C,jg&F8c$A-/L*hYZLnO'jqj;GA=*(Y&eIo4P-%NaHdGY=E*C5W,]W_% %6GgV>H2j8qPU%0@?#3-]U=rL=8s6;P,SjX0BNVbi030L#d'.I5;ak4r'%SH"=!-!l6o\'--r`O"(&>.LJM&RX[5o88F`*jlX59EJI*,ME=5`SUb&1,e'XU+#C3*X`]H^>&(1EJ*LDknGc3tW %Ar9I8=K0(s7aNUcNsJpCTN&oj@;=3mS",ACb-\+Ma%d/BeYG1RD@HK90,Z%n;*EEq>_b4IOG@ku+?s";[GD?tR>i%Qjm$i7g*I+_\pK_mt43=Bl&^#HU:9)!M$]_jp %c!/TP47;p2J!#1gUmqbbhM'pLZ$Ys+3r.u8FP])L?BVKV-(O_TW5i0"/b.[ZrV`J&n"TF1)72k.OMZ%PJ;Ws!*TN&2>\55^^!OaT %43jbPFo?KiRE(ePU!g^.ctM:J*e4mGn6KYL9:.IUSbEWHl,KZ!8SbJE,ILJMPF;%!iN._tfe3,3q%B1kc?VNDjuO^6HNujGC,\$f %!rG6(HggO`^$F_HgU0)g`=qOMP@WEr(S1:1knaA_\;S"DqKnk&//I9ZUF"uUoA9F@I"1SQi)JM"l)]`E$Q#lsTE,Ss`YZMW\?_70 %?&/$Td`A,E"_Ap@P*(]/"jT)2?8n?!Zhi@\=3'!af%=22j,]K`?(IS\OBi^Tf=Is.-j4UWa*fXki\h;S_+ak8%=M_O+TSR,%Xks8 %+;)*Y;$cCN;d]ld!`95jD]-^/_,?(]1-]d5KgLbrb>1M;.qV"FX#,,B!,E %[NY7)Qak;dgQhmP\+t:TfQ$'u,+O/>FSq!Mr&b+3?f,Bi\XAtq[(*!4@?qe,`OLcZr&b,9;s>WHcd&g:or9bg3sn.^DnFT80>J28 %"+ij:>:D!9o\U^rR(SFOI^gq3p&)EZp*"@HV-B>>p9ID]a$DZAFW6-h"m.@=3$RU3P.^:?7/$>Og=_:!US[lhR1hiNEDK:;@h!e[ %#e4hNA]`XS2fM,QPpL4@gu,jfN4j(6EsD1nc5;Ee99uYd_I^j?T*gS%=+/jSI,Dl*Y"72T/f$9VQE6W&M]G3W/D2^^C\"P:<#6aU %Fo5lpn-\2;XWqH7EjhPX]-R6\qr'OgBK8f;-J[6D):pMUW'YBKuO*l?g:pY.'RR"X-9+b,R3#cU]a)@D'QT/I'@I4Sq/!< %##dEh[0io4O^ujCKiA_r*Ht@hgV=%E.crsTbo3CNOIk&K!?)0]WoPumWpT[rWL9/_lIB#HVW`a>Ei<1'>d["E8'Y@1`(C?$>h!/u7?3cM3nH-G[M %ZM2MiM8)CI59f?:#"srW:t"f<,qZ;eSkp=*e^K()=D7aT\_BWPpM>Y=h*r"%E?-LG_2tZm8;qGQ66VEopj3tL7cl!)=M5/j\5"4A %2U'n\T.s*H!.Snhp+9uhJU0(1lL0u[Atdrti3s,c_6]4R!&KI@1O)Gq!V@-@XAqgAY:ChtLfPZJ'hRO8$h/3@d.>+K(>r7QP0?]; %i9(I"$&7eW!Ih2%A,_1M/ATRHJ98>PF#taN)m!9FSTDb5\&6<&J2LKrg^^;f+:4[pEH;:AOpb2E!mU+oj9)FY"OHIsjFak#71_(d %HYGaY7`Cnh\d([Lm?$UW8JXIuP9cOLZ0."./ANnG/T2.)=b*+p!:Fr8Z2d*ji;^'+Snj<1>8P!T?%`4rN,Y5Mj`G&(uN1pn"bWH;L^*4jO\AM'b7qU9[/\,bm5,du9c %b5YmXNa%a1*@b:oX^cgm^p[9#iZDf;HnYO]>Q>cT^'jZI.3gpFbYr71aPOC,E^$u5WaWd'"h %7KhYTI;LKm">1UZm2O]/R\)dLF.*SqbOuD35_iDB0&&=h'9ti%8t:o$Z?)HE[d;t>4.`biO3@6>5+Gm^8^[dWY93j6!\W4dY_.9o %ic3YcVLTk2A;<4MUWC8_q_in?lE")m[VoOYe$I$RZ@)g:Q:_dLbOuD3"Jl"eO6f]8<1)U0JBMPN.RT6_:^;/;:9S&1p=-kfAeBh; %fqAoB+>"pXA;<4M"%hA_E7qsV*CZ6FbP!g$?p@cq0&*kD+n[;eQgJR'U$3dWYPTBO&!L %WJ)%Y$s^5ZVgdXi'o^?0277sW_h?54JPOEm(&SLmZj?-97``\llb<5*h0N>>BU`pXqp?qOmCaRp@M[B0?Ic_0QPf9/3mbi\_+jT' %04te2bZ<>=j^Z!U33OoaEkKWr>5isFnZcE6DV(%9cpG3`H]l')r6,um4oTu(:EWD.!a_G<\T2hBIqLgebjLrHZrCnQq:rARrt%BQ %?L-S/1M2eC>])aO`US7E@@sFkZN&5&^('9iAO"okcmD,3lh9r&,dk>o6#duigTPqT1Hm^XQH[k_<%0\s?Pf':X1@(fGA6Pc#,:,e %?/!r$"]?AT*TM:dHVV?qOa=B8CodncDsS;9iDMV>UGqIfC,a]0h:4sN8]mN=#d.d3LD)*oqfW1adT3DoCu1GaDed#\&'`hWAM!K/ %BPrH"an1AnhR`$$#Vl3PG,eo(/K6=k@Jj7kNN.Z+=%s]qj]C1\H4=-bcN>M3HY=II-P$3P"G;=O=7o %RdZ]69LqA0ZJ5;A:$ZY[Dqeg9t6d=+PSS_u-l!brnD]2h+SQ]=#Qbp@7maoa5idFD2#CH1a?7M4e!=^K]roT-\[9\Z*b0ClPK.7n`-I+7tjiT/X*oj/nULH@sm0'D4gf@c]bIID"2*kcCCi^1^$O %/WFR)b3iS.'dVTV=p2.e/s9;^III:V;lmX`X^@()c,hcuVXDG/l#31^[=!D*Puo!=Hsrd4qW[i$P]UhE\HMq_dgIhGT.p&(Z2$Qe %H[BD#q0IAYmMO,d,m]NeWEQM,29n?7DQ78mAh0!"?mdBZ^2)#X!R%^U_,GVojM:oqLh)m%i[@!&ab:f0/37tBX``BIh.l'^d*$)Z %R*.LZ2V*""^34^Dd@#6r(!1Lblo9I`nZePX#oTs3@d2+rAh843GRN3]ZMQ:k%5+M7fO=s]Wd\^eXgIo0jbA@]!SoJ@iSqZ5A8GK8^0\ai*PbE=JC8MG(iM>(mkWtZ%89#]hD %ACi<&K6aj38Z=u$Jk`;=otE:mcmg<;!bY2k.g4-YCD2^8?L8Y-eFr(@-(OA8!?>3[6=@8.0@RkQ-?q6IH+h91bL_,a_nKI&2&#hR`ej.?PC`YCF3RRYEP=?.-I%BmT6Jce!fpFh0aj\'XR?RD$U@p3d#i %--ZAoZ=j]4[]+DiF+p$&kj!r!b5&L@".=2l)`]HLNg2$uc[P=0"b1rk^IQ5r+bHc@h]pR`mr4>DX[=pmK?jAZcUI1^k3ineG).L1 %2-c2u[6ldu0B%4FX;rM/kmc/f\h>Y#=Z]$Y3Bjkm&Sm0CXt>@l/lF^*#hN@b%M:b$.9s\T,+D]j,qAGKT19orRilb6rN@F0Z#tj: %eCe2im[>28\6WQ'.,I>l%amfiU;4Br@irKaVrJ7WMOK1AU'[aLWH+Zr(0Xk\'I;1BMAp]?7 %3Fm9iptJ/@borJ6%+QEYC(=[]X`$:XB3A_[%OpI'Rb]"lBFa96WE=1RXpWF-;j^$7tA6il`^_n2_n&I/1p,Dtctnq!q!0f^4eD^3jKJb_o%(?U!]X8mHuCo!Q-G%hl54`R$BVPicXR08>c/0HmFT$b_M< %$pt%eO"nC_j7f4$MX!@GV0kpW%7;SE]_isd%J2IDB90CtX<9*q/!es=$60c1o,@]4+Z&.8BAHs;09OV+ntj_K?=/c0p=7XTKTQ+d&5oW,.+qSc/fcgTWsQ=`rt %MK%te9/G%6)r8'fQ=f>hp.\,PkCmnN.a""*,ah(,r/WlbL%L9_p`FWNb2c_6K)\]GUp/`S'`="Q-"Thm#_N*TF'=NYr^/Q%3;=R1 %rJ.P63;=R1rS5qE<:lg9ZNu6aSJeNu5:ZL?1pSh1*u4_Z]@OjWJ(,AUlK%0u5BKe9<_C6eIoLt! %`&;&n5:ZRu&IJK4(8-GcnE8oIoQ%^hRa=&s._cWi):9C"64h[ %H/X6PoUhibK`=osJ'b;5#61Hms1EHHM"!VYq@@=i@IQK2qG.\0s.c=gTGeUNs.c`6MCK2:2^=S:)Z28!r_eJ?fH?J$(/J=E$F"?U %@qSaJAufLJ!$.9YAAX?d//=9NBIg.c>^]a+5_fJ%UGF)BcPCmEiOt$74PM"H]"J>!KCu+AcJ:Mk`)Xi`4JUg[Yj0/m7d9h!&T/aQn,8(:nqDbqqsEWok]2IB.'\\F#KYq'ebE5-g6Llm1]!sbgBdrk+='+ICO.FV$'NokDC7>qnm(u %(H8[qV-c5;);I!bE@3i*J`4+.ZZ*@P[g00U5WJ2@Ndfu`SjTDh>sgA`I1]F]5sP6EbNM0W:^s1,-BA#*^egiBUHPV6_qf'JS&oP' %D.K6hlW#O%IFG'^9Oql"59Ar7ZQ5/Vc%::W++"qrguo/??0UaVM3hh!=$[Ich2u<,)O8M&_X?%6.57:d)L;mPFUH@f$mS?,sh2@_kT`]=8]R2I0oJVhOl2hgSVWb>hJ9Ules'KpmgRrQ\Y#2 %S_L?>^oUeUhNsFk$X>Xt+9c+Q/p)=?C'o8f/kiopZ=`3eD_X%"='eo[IOZX<,<8p8cW5+f/`*R6FBsQuX^J9-0GEKAAEBOAAuFb5 %bK>MkcQk)D?<43A%9UrDQ##J.i3Za7=h1>-VXZQj8@*a3VHtd0Z*&\aO=FNA:SmdmhOd$-M`3>uAn:"T;(jmZ(TIiQX59qZgfsF6 %,OO(orR*oG:9lINo?N_g90"3\GgK*(*Kc_SRfg+<3WRE_+gZ3S)5ITo=h2'6*ZZap,:ci8O&8Nmb#MCF_d#@rH!@H/mrnul]isZr %>?mO_^jBs?i==8j+kcA/>:TRLZ(Wf1FW)9(,1OX?c/b=)^d"2!/r?3P]>o^3VJF;J(:--BYg_rl> %/E]O##V[X_:5up48I&V3Jdu!k8_3N5$lB:.oG6bp+dJiVQp/-_\_U%2AAY>uR4o;W\JAZ6;]1iW/^SLHX$0E&oTD*kd90(+2_^PY %1%C*L7+1Vp>Z+thPL4+1QU\68H$s!U?j4jLL6d.1f1:`o:>QX`IBjKXgn%htM,0-gF4c,p`$\XTNnIn)CL.+8hf#bUS(B??pbE1j %Z1Ak"0VP&d@[F00c,Ef]BBLgK.X^SrLtghM0nZ(WR>[A %WaE(+)p8D@8ue:C1iDlo7@kcJFIFSr@6d?Ge7e.a\(Mg#b6P(S0i6B&a%&k2Gh1HM(kDUD9+K<03ZLX8OiL>LkNV33)X;/X?(1VA %5,E]XS[K,;Y&/_sYJWB]AlF5/S*u30dp(e3!8b3j %5V<4)rnko/S&UL>lHF?R!VgY=mmg'L%E=GZWXh?I"[A$F35bHGR.94#Fj(&O9>QYk%G1b*:WgJ66WZ,B]FcZC*3Co$!4`gA\@L)3 %+hg;%`t^gh>RGr8o(4[Ulb[]29Wu<&Yk9gCkS!+XRDV[NdA9M.<*jcN8!h;g?IAQ6'.ec&*#lHZR9G'<]7@L)/hj(?i.Ok.4E-6mTT]3bJ4/CHS"'!Cqj&:gRL&LMMBJG_K!)I/;"&B=+cg6S;)0fV(&X0,U`kW7? %+,Bf*VIigRr4"c/7D46TiPu[udrotp.V]. %Ce'G7+1E)2T!$fI0&qrq57VBS1W'qOj2[#0:D*-W-VG2)NrR9A(W[Qio>edg.e&sQR,KSK:'I/m+B!o\EA#=Y%O+o/iD`pkej1+- %1NSn)-taW6rj1@j+)0qR/8gmVV$Io'k5iVrEO:bJ7?+p8diR$6ptU-67RrHup6MEWHrja4$5-'+=S6SW.U[Ib\e.Y,<1IU2&/C:> %6%Mu@6r`*8?CB4F$^\u<[:&$[YupfTr_7EURe7S]:b+"jN[C!7t2p`H/^a8R"ZsV!96TqMG+N67#gQ;f1H]I'Lnpu?_#-I %g==tINf?F=E(&.EAs+PpDAUld]Lk+7pn)1ub\/P/2Xu^`?P5da8>(HL6i)Ku)=T7>\q4/d[nVUg5O'l^1P %KbJK,;'4c,LaT*(tq>e8e7j$YO/VVO7^" %BfJg=-Y(5_l(lQRLj5CmMTYqW_`+tGnP^2r_l5TB;^m^&&^>C9hpd7K.p4D4VlAck1%nRPrh^J!-?,jIni*u?hGGnk`f-c1\h;uF %)U0T#9p8T?*\tD9+n$W;_(M,6oo+&#)sk.0AFI8+1Us%\?8thQX*e(PmrJsFXi=9"I[7P8cOA=j,tlq=dWm3N57:bFIn)$E&Lm[[ %2A0`S3p_pdT4&,W%GB'Zc9"OhDTI9m_AB-iZCb\l0?gfJ@e7hgs;29G44`VNl79M1b[\EqgKO)nb-E"mBt8B4P9U?b4`q-l+BM4:L?OVPG1Z+L^ee3Uskf'pW8ka%CC3cZ-fB?@5r.2cu96piDsi)0B^MC^7\Nkk/]ii6a,-2'\?73.eaeq`qtOGmXC[/lI0FXKNr'1:qpN([A>h*Yf!MfQc@r@C/IDr&Lm&_8e3#d0ECDhf4.RV7M%JXQV^5]M %-q_]Qb(.=)AdFU54eXA=hqI'g6PX<'lIM(Ys,cDA0.P5Lt5;#ecf. %7,h_00EOf[ToV_aGLA,T8%n9Ylb&8^&3?)Q$D]@/SHD?VZ]-6WDLFjGGXh^FoS9i6+Z^((_g:J.2ZJ"[PEQM_GhJ'a+PUA-*+4L["nYM^GT?Tk0TUinf0f.K-pHJiY&6oT.2Pe[qN$$&'n"q3PGOuEZ$!I\7CYpHA0[8/7..9MoBTAUL<'@Q9B\BB:VCPXm6M!i^c!OMH"V1kV$s_<2'Y=h-aZ>u;b$8>HP;X32`,#)P0fKG3$l %c6,hW+T5K7m.Q7)5pC_UCQ;229Wk)s.Yn.9E[R+6J/P.iX-$n4;%4b[$UXEP3PI\F0tB(GLOruUTnX.@K1&VEMCNoVM)9cop+0\,'9XTq;"@9"!/n^P7u&hb'31NZWs7,&-gcdXA_eH*?FgL%gVL91:V< %L?-lu'0Dcpp#]=G)9hr.B5`pQcD$TB.Rl/'F3M8SsKcB4;?\#M %$:d`llWDeYWVcYBH>pA.^7?G?:MRD(Q!u(#>\Y`s8e0PpS^bjl0:X/l\[=@K)/Tj926#P4\DDmE"f^HYij,.gNd-u!'8b[GGgG!s %:L9P.Kr=NU)Gn3Kf9?>:kkaV&b*G`+0(?>j;2msA-@V;'3Gr4g4l#"-%`L$j/iAkbQ4?hf'dCUX[d %bE2\*hVHf@W5Sn5+K-Cg@!D+6+BC\4Sa,47eiiS%Kn#'V?_j]_g=WWjgNU3DpH4Ph_+!ukN/[%^hC8?':N@7EXj2er63H0lqa2'W"%q\s$FO;hGki6GD+GrSsZ]S#p>;RcA_V %rURtX(g!($$ha)Z?Ul)h"ma4%-iX"pZ&d]-?l#V5Epnu&FRElOkQVp;9s4+>+OE5N)?,&Fn4S6!IN4$3I2 %.c([$"kU@a%c.]]"n5\g`S4P`FNJbh>aO/+=0h==%]P`;JRY85T".4]0XN/X0EkK9DU8Bqc"s&1iELf1>tqY+-M] %I\h_!0YDC"G_I:G2Y"^CTb%0M[=olPHc>tN#--$S*Gcf%,sLQDam1ENEi[Y[3\Cf23Q2jbR$PQT2^;B\XC1S?'m0,d#LbG4 %kj\LC(_[pVKat6_iCn>u(-6O9-%q,898cKpA8W&$Q\>p_pVWE_\1D`6b)Bi)X6>lhmqi7B*LDIT;+$f9\1D_7.EsIQ>l^^hAtnV. %8^26Xk[5GlP_kFD6AJ\H@8(cJ>r-ts7gL/PWpt`i+JQ\'+s[u2#YB1Ih8FBRD5-'rR/joDP_kFD63m.n:aS4U$QZQF'7)rl4K3hG('-3En%fM]4-9 %&tffM9k,]g;D]*)LP/K'.8U;B8PYBML%$6/@)>Y?'Z,WYY]J^?66U_I#`B'<)@GFj6K%esnPBK5&cu\&,X9jbH1tRO?UdZtN8A*teW;,SHa]4sU8[=,Mc"plH&)nt\N!KF\B?)%kl%&3_?BSph:_L%$6/]IU`N."i*; %J[CdQ."i*;@8\q96Qr>J?rEX/4sYejF\W',+aj6iBr\]T."ndrA^9c)Nn._"qt&EJ]9^Z(03@_6?]c@JNrRAt.W@H,G.8G_Un3:S %0=mj1hYRm3J\2Gg#.6I%j]V)^LF19>pD*Z(jl8P73Af\ue([5'[p)ZIcR`bc,lNKI`$k7W&$D,uEgKlC9!CJ[`Q,/Y*o8b,BV!gL %i_V&;Dor9d"-k,uT`jZp7?Bj(dO47ScC0(A="*G7Yp]t@5N*^UlP$RR9Q]_Q8o;Z[X`L?;7T(XcqBQ5cigtC?9"=fPFqiJ@W?fg` %Ch!c7.YX\1LCi%nAa'ku28Gk]#$8VJ-!6dIQQ!>"3EmqC8(n'pZ9OWYd,nIlA@#_'S56!EqJG;U3742Y$f,ACNM*$[UUFMZ_,I>. %.d,f6X;Un!KP=*IWQC,c-)ucpG,I8Z=tA8!$bkY5+;[;N'e2 %ZZ^VpW0%+(%,O(59aCsU_%hpo]i1X-lklN2?MS.B$Xp"kE=`G?8jr.(KK:%Q@)jCm'K%Y]Nkp'tCRAc83sP/EU.,@>0mN.\=(`e/ %*J=(r-o>Ib?,^J^4?(6(mj:+t&HHt_hE0BSQ-c>rH1,]0*Yr/8Kp-7*GjiH(&J8CeHN*#EdP'tD4%0l$,XqC_.7/d!ApNj\&J5U_ %a5FY;(jAgWFq!4h7?%_[A+8=U\KrH8Nkp'4c[2dF7B(\?5F%fjq!skAU>g2,`q`[aP3_BW\c*M>K<=r3.?PC: %Z)@XaE[#@=^R#r^?"^E@%]u&*$t %W0%+(%,O(A?KDAH@IG61on.r>O1P;3YqYk;BVO.bq7bnY?3KsC*A?pV@' %j:o<^^H\L:AcBn0(%C/Xp!X3=4pHV32_m?!iSXYlIr2=N^]e"tDK]2k`0$d?rG4!hpuc:TjCb6ufbSH'ZKKdd*Y\\"^-Q1Tp/N%- %?jL36K]c/Y$3>;a.51mbnY=l*0F@ij$K68K8OaBq]Z%=O_XcR9:^FT6G9>KC6P,&?&Bl5kTFcL(&2t$6K0hgN2$++n16j0q"-$<; %U.U!7q)6=mDQ*&9CeuVi>QdsLG.>>@DD_[B44MRs"t,[A51"e?)-do>71i\TeCX %8XkJ821H/L+Xr)"!-e!]D&Kpq>qM=i>F'k$,k5q?Lp9!:'p`(Gd4ra58b6@k(Haeg2T'^!mVWS^;A2S-g"3^u* %f!&^bpXZV9_hAb)8a\bI$1*@eC@)8sV"o>g=`3&5`\/\%oALlT>1u:Ui353e9]Ks*GF>XXJM`^cdKK:#S+1&0Z6#-M4J]pc&W)$k %jiS.'5/Z`8CF/-c5AK(.['f5krS"UYRR4QqW(h`.Rm<4-l+8(Tg]XA,d//M$F7W`0!F1u?G'C(D1&"mt<]PEuVq*l([>Q]5H9&T% %BYGNh2qU90'+7HI;enV6l!6epajqHgl.o-\6E*1.cj/s9dI">Waq%_ej'G)([;j]VV$lPZfNbI3Qdp;G^?VQ@rPq\(.K.EW;tBio %p6*E\K6PVe7J,jrYF,Id4f*Y&/%PF7\HQC6S]pBW1e%Mp3l/-`VA>(RXV3gtA+a1Sa0@*DO&dDuhY=Jc$/5[770Ka0Li&X:@rehk %MCMf1!+3t>.2D>WM:="cC`Co=0,3/qBu!'C$;%5,HqFmWc%r)o8G/%1fHq!\"r'e:>(rbOcr2AqX,rR'7,EVjWk %!95]6U0et]Wl@@sX!3s0NX%)!@"!WN'[:C#2d;t4O]_DF@Qf9+gf;CN=8IVbgtM/,G&u@WBNGS?D?bLjSh%*5$$/M'4opqU^"WN2 %FTEqUe#K!!m;2"2UUQE;?]3IBRsJWN.hm)kpUf/P_aB^t2N?_V42R0`"h`fQH#(bDR4IkT8W2Qu^c,s?D %h9\))a6ujZ)W2at,n'3`"\bhOT_KNW#MUX+$XoPtLGf^$bl:+YHaTDBF!EAZ3P6L`l!oWM),n'3`"^Kn]6$#,` %W?$@6#Eo>>H*4]Kkp@QQ(]7eEI]`\!@Y3cd8DO?JpDRmd#G'@PZNj7J'0^=ORIn$HZ\K0,JN_Kfk %27Gpm^kEJ7?EsPqQN%k$76-3jg[k>qR*6Mp,[*R:S2Es:I.bgZJn21'gZcdRJjE#O_%XHbRr %TXY`-JK8i<6BCKWKF?RPY9>dNl$sNWLDQU)O`W^pVj@iGn6&2sVE%*YkKb%s>em-n#o_Kj%d^uL&N6p^*S@WC(ArE.,S+.qe"$83O0*.F,gFr;JHN`<5I02R^`/nY;[a1gbmTg+=Abu[Tn-UB]QgMCEdo/.kE7qsV %*Uo%]^h*BIG2RY.JBL]6#BgdrniRhbES8'El?_oW`+=]I;"3YsF'2m?epr5*I,^4@<[99L`0r;&i-0&&=h@oX>> %ES3P;!7Mo#E7qsV*HUm,Rkp6[r`RY8H"*Dg#9"Cn72X %b`uiqW,3t5Iasi*"_\pW\BbJ+,@8M;*Ihj'&\-?89d>Zd9L=B$jrU)Wl]-HVd/MNgq_7e:T'SA%IKk:#>^fJLd"C["t`bo1/9)ge_Mo)[kp-pCUO\.!p)g<)us %J)U+Doh/q#=3!DlFXu.WQe(^lQH<\mZ^oi7l;QrXIbOJj<_9oPJ#H-h9UQM(QcQSQgm?mF+0,1jf3BW4I[oiZ50AdQ+htJ6D'/5C %\t-^`S_oPFQj7Bo>/SqL_,n<4/<&p1Y7CY1l[%PIh6d#JDU_l&<=5k.Q9,%&VEo.M,hC=4X=X%oH"3PQQ8V>9;NP;FKMq:Y(?L!ca)o_@rX`p*&4mS$pTN@Dd#&^ms %/&/c-DCh#U,PQZ_T:^BM:ZT7c'40K#>u=fd\j*uX`A^6Ih#7$*b'3%'O6Bdg0'_i[oI@?d?N8'FVTlA#FI, %NT/;I.^b&(QR,RgD9j#"EGmW,H@6`NT6-.gP/Yu48+uL%Rks=k91p>Xhq@ken[LmZ`b.^r%^A`mEb*a5i8WlJ/D_R'ZL %rc+g_7;3K79a&)'@^QR/S9Qlm+uK1R#u3Z].WEDGC),1Ogtq31VH%<9Ddp*]8ZBK8a\8f<6dQiSX[5o85h4fB._Fp1Y+TG$:X!3P %AqG4A_J#45:Sm7Nl0[2);nEnu%t%R"V,Z#mpB'_K?2BKY+(f`_?-a5pX-%V\N!.3b=P_;:kJof1BN._M82^/WA"s\[f^\B5aS;`+c %n&OS_dk2F_JY/'4cL8):'!N0t.Ii(oFR.<6]fR[m/*[$N\e(,;qfPhT%rSBPq!YcU?84(Ed.i`L=g27EK2-GIJ"N>p7\]\=pRs31*YpF,+Hta!7WqDB551P?YHD^*k[c^h["f?L8CPN2qQ6>"+\#gBJ",gd:=%XEZ$Lm\6#G6*[>9p8P %kn0QKWp,p3,JN\E"sR?0e/X'hAZ51\N,TREA=S[tJC_$\=[!$cZff0uh$`0,_Ijthp6YK1( %f,ipd%Y8[\<-sG%3J>uEE:"gGk0RXA;gat%6di80C(G;ALLBQp<.!ihUGbZpn+U>Bp.>#GZs?=2+#bi3k;SleVoDZ`S$2*d%u*VW %A^+;q/coCsWX6>S(OjsdY6LYc%A+"=/lUKupIoR,ID-bEY1*&pmH_Z=^$PV#!4`=/s+0o^XkS;!XZQ2/=.a5b31[a0^0?L(S=hq7 %I(Thfhuor6%t,81\r3AqOPXXBk!a:P.B6TromXO[RtI0EEZS<[>JsAdHlmFHf`Phf&8=oKB2;AfUqMgh.84]NR5/n+,E"4IoJ/KQ %_Sqj;H;X>C?$ng)g[ef&9nN02I<:eh;Pa*YQ0DU.S1sKpP?n`U67*UI;5K(%TCeT!9d;L.(g:6:mmh5@0snU_qaJ0mnjtL1?I?r@ %8P4GoF)LKimiI84DGIN*,9G$H#TSR#/LE!_M!,n%O0dBZ]f#bodd.3-`]dWSCJ/$,8As$L'/9402aAdkHLp>NO-[$"*,^3kB-^[X %X+g'iFD9;\3c.\b7^6UUp=DoCT3VVHFGWA8_s@!CURFXiMso6pf?@qQ0G*]j#^_9+FJ\JHgA@"MU9 %F"^Xa_&dD@k8lb0#HUj%<[&L[$tuRg.1[.I.f>?br\GQ_K&D...4Lc?-49`BSW^:(8g<2C8_TCC\MNfCBJD:?O,EphC^snC5:ZL? %BeaVs5:ZMjb3KE;s.c=gE.Xc3p`C7LB.=9Tn@p4Xri_MZ/6B%UniklKr*K_h`mD;:0ltG9OC" %7Xcfj_Z-Ru58RBE3rG%rr^0j_*;kkTrkg7F./7/4LAm[bZ&/V_US@c&I4eDMY-6gKZQI&25I:I=r1Lkk5`>e5b!I]lcqqI^Ln7+KXgXLFLs-1h@^h!&QkpQIuP"BshB.klJff_b1S,gFD)-K)b/ %D5L$LQI=(gVp4:;16JD9E8/N`4Qn#:N_#CH[&t>8WPR9Ecr(DCg2p-8P%KS$O3?r^1I[SLATspfACn,+foPj$AE>:UPW:GK.54_\ %LReP%3#],8j[.36IL_dR[\Ro!!$9&T"KPpSrGaq^a[K!TK[ZJY_[K[%XCp7PLuT/S8ZDbkD1p$e*XWQ",@ %Bt5S`.i0tOpcglZ<\A]V8Xi3?BA'NUU.:'OMUiYRji'/o6A%(eD&lY-.,l+pl)aS'lpU#'pSkO*]bg+:6mja0RPiQN2:4umULZEj-9;1l."%mjOtk>jT)J/H:=E]/A.)[n7LndmpiTE;$M$"@k]9YD#T*m? %hN*O4[jdJ^N5R8fINZ@CWaeJUFi&fnBYdFfSR(kq-\b_N<*dG7(@k=SSJ]Lk-$ld/6`^sf_+JR%0\=FoLT`fH;irQ^+Kam-Yb?]? %(h0$Y+ZEl7'>l]HoiSS/-O-P3l&,$84/%uq=,8L(q85;Y/0E^:5n-!3Ha#+"Q6rR?AZFG+j.p2Xd7&4F3qphD$BdiU/W]rm)qt3' %lRu4C9Up3Q^`qk05a)f3pP\6"2Q?^>U\d,H`G1<;19QSR/Z:41b8UQ9fPcu)TRbJ&?N,JLh;6AfD\oo\hCH[WfQ7s#B9S@g43 %`VFH_5D*9a$dXH>1uR4SqGgU&rSj]Dk=U,Bnt%th@DRdr:7VYiF'4>qN\j\al/!Ge`K%3KICP!_1%?#@T>;$2PfOWPa2I`(im1s! %H[BJ;P2H10HJoKABF1cZ_S@Ipd1QJG2NpH@BPQ#j,KJP*-W-6Jnk,U1,A_0J-7GthI7=0bq7-/*)tXp+$`fijEP*%X?Ef7%msSfc %R.k"T3!OGi-YO.VX-TPV!jU#O@4tmL8K_dYki#T$GRb"o?U@Ni9mort$dGh_,5TZ<[kXe]Mf:ke?l'`QH2j.hlpD0:)<(.[r<8aS %D5PSaX5p"HE^^]i\_)-COaLiY/i7NkM"%*lA>sSFcrbW1>X#O2eN^6EcBe#T8('o.>UKIM6GI=RRA])?VO#B=Aa0&f"jNR+IeK%3 %_`fnsjDhZtK&"`kPtp)eqpJJ[=q$?J1/I4g%a=LF"d?utSp:#T;TRmkIE#!`GJ:?iFAn7sdG$at3naCi`D(pEED/7!f]2PDj62HT %luBl&EQ9+V0WtkVkD\;<2IR*eGg?()B+l&&lJct(9Ab_HUl`V3Q/?Z&:EG;W11?6e,EF@T_]G.7*d:aYO+TsM"!IVNADD1`a.\(ob#K"*+#iAFUSlQFj2WMu[;\8Q %ed`;YNR-f#$,DV>5/.=f/d4J"-b.t4E[gd';VJ=!r4&.N+u/f59)^#l0>[F'W0=4?9,N*t]dp">FlMrOFp`<;n5A>p-/@IU%PRe+ %M8>7j%Qn`U8LT&c^F&ga=;dV.Aj?6`rU^V35>gq1Y3[N%RCaaB\0=%VQRVf'$@Z5W"4)uMr&DDClmF,*IU&SLJg0aFkj!KqjAPL- %:g;5`Kh'.D,F-2m`%^t+@&J>OjAPL-^ul6NL(Y`U?rnL")bLNf*8H1bGq,N_EP(rpCn?N;+#ajR,7RI(N)'Jb-"qg$%"90%+V=sX %(riI-;("3tiLeY0Zgd"Z2]foQ'17[C>&9XY-QG>\RDNJ=Sk/dh0*OV2%.i7G6OEO-+Qj+? %q4X5eXXkE?gEAb[XJSA3@\IUn>QS?&SLt"/DCY1\8Nq6SA9r:'#;9aJIh8iS!r*aJIh8SYU03 %5V<4)%egg^Fsn+jDYhC!7duS58h'OTgduSiaJIh8TeA;;(EOGY%_cr/&Z+F+rtcPsdI?1&/Og.M&25%,T&-.)-n9\YO[A_i[lAm- %05k)0Dg\!<(1K7]CGa54?=s[ZL#l9!2Fe=X64Bd/EiF&=F"q_cXG^T_Os4K*HC0$3ch7T;Bd1B9qfrV;VK\'Ul6$KX*ArjCj1le# %L)Q*pr+]B*G:BJ1h`%*FXU1'rJVXXZo$@sVU&qH,1e7e?el=G\$D99IZK/Nk$a/D]R[-A+1?j_E+;Fr0P3@jYD<>d[.OI0g!STg> %U1,VL.GDcp"]9j$/+ZaMMl<#RGJT'5GU^:h\m:1C0Q,M"m7Js1fCY!UKn_?MOG__%Ydci*ic`Gqn+m5g8k9()eR9^P7Ho"ZT-+0. %X!"c!`^4BWN^OQlk)#SW-6b4*9VPXl@51a-NgA0ps5[-'IGW0XO1/:T,`5DgUm!2ZZ?IsuMVbL!O@I341JcWKI?7OM^Ea/A6t'GD %G"*oZ#+3)%nhPaWJ/o6Be56Xs-O4\#!T#m8:$D$)U:iCcb;6%7^Ve0rd#7O`auD3=?K[4=W1%6$bL:% %Yr%u1?Ua'Pe`C^a\b/.%W\/d"$RQs@;g%o*=u[Ha*)#u$t/\Rcf*tNaI*(QgsZed3Y@c>"1DNYV.=[:9q#h0=:cVd`F5i%P#/G)p4"R:a.B;)@J/M*Ek %TB2[*ihu`PqcU>Ol=[`Vc[Y;($fBR@^LE@A4(:S!@fNaH#"LT*Xf@*/9u8IPtg`Bpc_fP-o9S.4Zs %Pu'V%r4FSK&)[).E>;inh!=WM]RA3khFjUCo9nuF(K[qeF0"1>7Vp8o&Vh[.Y!Tps5#tb'mPq4P!M*'3Ds:AoKIJ^'7]$D %Y!-ce'E;SThAm?nHDHskTP#Fu3%2-1k0%aB<;n-jef6(9UArRCXE9cf<2hJJerUqJkCiIBd%.6cIb"!9M;k90feOHN\!I^'I`)L> %9-Y*:S5,6#&>tU%:?Kdtlk$(D')ZJR(kTj:=^bE#*+srRljRdi6pCTVD/%1Q?Io*BCT)]#Fki0Sed0d9/.tDCUc>06-p#P,,OiQ% %mC)Yn0=?l^*j6b4<V4f]B\)`177,VUrQX'@^odQUEQ8nSo#/Ys8/)jh(-O7o\do0'_i[oP.DgT3%Ms[a#69OS7jZ:@bZ$D3.l-m(1b*qS'G:4W\84h;Re6>g&d[71kRtu"*-TdKoUNYfYZj$FZ!ndK?eC/FN(5/` %*Yak>j7BG6DW69\?T&fnnXt(?W%D',"+'E+L%-ne*mEHP;4CoaZ#)W!I;#Ff8AroOs8/&rYGm:7q5,q?NUS]B"-9:PSAroOs8C/"d4+fpNLSb])V8VGhPonQ2gVeMJRnGAef]I./nK[55AOkr0MO6[R9d!0-Sg2Q(9q5`EUjL2;HPM4& %SE_rifn9WX+E"eg%[H9^&Zn:]-n]9[&mR[[2C6tY1F0MO$d`Z=(q'>'4TG0gFnc6E0]_c!8fOaqC>CWS[n`uMij?%c2ilff?;dbr %?'"`lg@`?NQ9'Br0"'%roT()^_ahUNZBQ@]STjSm&ULs[QXn#br;nsM[ka$=8Vg;O=P%lr\*MbmBleg*):n=&lL5DX.trs);2:3+ %/LG0/LcTp:lJu+.7m+s5Aba?am#o?;6a\4DV-_1*+3u6Y9KbgU*C#.Ai-IqkT%/*&1O__45+8tdKo@*NLQ>8K.;o'>au9QLLX^8l %bW!S1_Em-Y6MT^4>GR!HiV.qu;@b*$>`-Jc'-Ai\USTM+9OPB[K55&Z%[WVX50=>$E_R!6%%"hb5PcrU_PJ:j]PoXDV/-C!e8QiI %I82EKgeFN)f8!k^HB*S8a0VLl_kj7)Hsuln*P`j(D/STda_5`O.nsK_PflE,*%nW$?al33HYG'iaflF#/iEO*oNX]LqKr[fV&nnc %@Y[$M.P^[oGP$ZjIeGX#EV`ftm8mK$eEt+6P!\C[Au>a>cHR:]!^42rV9V:7k'iVE7+1TZ$(Q<0@^m,.e7o(WY#]k+?uGRL53E/'q-E%/H.!J_r!UEue0A\2iSKM/G.+%jf.`d>7^4oQk*5-J#qrUT0Lr-c>/=0?,K02OP* %I6W*GIjt'/!8\*?h,@9*n6SZPhB\/C&\Jnm]4\"_#L5oc5=PtU[J'GB#Q=W:>3n$\:UX;6nUA+m8W0#6@l#c+,bXt!Yu#1p>i*ll %UK#b?"]e8&il`^_*8ZBBI,.7`p*JhsRb,N.*eV(0r&lYlA$T?L:6,cqEH665E0!Z\,d**a*gb:<(_BW0LT,jd`eF[%rt9X1]Pg4: %nAHB78Hb;G;fHJJ=8iSg?KCHm6#Lh`-nGS1W'p;q1A/0$A/;m3(]S*OU@NN=pj67<7,'+oO3>YLHi3l`WTK]9>GskQLi&e!5G;>umU?26Yh-DOT9Nr%PB'h9I-oUDZS(6,MVqUfaG(7kd4g&\T %:.PQpqIE[A[&LI*@!H<)S[PX\EsZo+rd8UVO4d;R&[Q81Cl>-E9B9VPCX)r9D4%Dh\hBd>AGGG2!r?;CZ-rE0WkYs5SdqsiHb0Gd %bO*-eS7rp]#nj-SGH/BjaGPeLL[`#hBLN&ge1*Eld_W:Pf^%Q'EUqQG(JY#[!pJ=M'3"gW)W6Y_NlN?nGCOhR']6QfU@M)Rn]sk% %8r7n(.U;_-G@HGZ?:n(-:J=3T749YK`700O3V.L1>,Q]A\2CQG=p3/Ml+VU-eC.,:^@>%j>XTCbY,,JH`bLU#X':Opm/?p)<_,Q[ %j6]$E^>=!u>IU*l$aYH89s5Nb#!Hr6K,%=XDBq'I#O"s%N_36CDVL1hHl7^8j5KIDECB1;T"n&n<(F'j'0^+6/_fUO/r1P(cR!M% %I.gs2X&9m2PKE9&k\f`Np"#c/1[(5j\Zr1LG?YQG>4uuAYtMO!3&G6DLXZNA$`B7J>?.`a"$FHk_??=Hl;ae8jG%$TN3d+o0K1jdW_IUfNbI3 %#I$!lfHTr1b0;F!"DJ**;].^oXAeH>9t>D64Oc'JL[ %4>.)N2o;#XRQFj3!2cE'WMu4FRD\`Ho=AOPm.XYZP'(&^h+SY<54VIPQjFhS`Y[uqUDisdU_[<\K;r+aNR*"@$TIYP5.X=[&8pS#'qJ*r,^OFJ/IsH3 %+qLX29)]H@jR_("TSA;>jE#W/A?3m.e707EH9&9nca?K*D1$O,6&CnX9Jc88Cj`JA,JhIa]7!6:Nq"au_TB*LdV]L+bKTL-^"Xd_ %a;=VNqI&B0)kS=p %aQKo":""Lo)u4ksRnJ[M<]=Z.qbL)jf>eDUIeiK,Hnr;49GU^EEi&P8mVOPf@,0gLYF_rET5NMOi\),&G\7mi50?9Qj6<2X3]7GM %fL^rF"Tih4"'cEN>@IC\-iK.nrHP^gH)SkE;?cm;ObTm'&tQfE)*ZN+[DrGS%!T7^>I_ka`foZ*guH7h>PEi-VRq.u?R/AMbjkn! %.Mt,[;tnIWKG.#eEeHE+N,Sj(EBRZ:%<2^giIoLN4#]GH)Gi,GJC %UnRl)pQhCQ %M%,WUV=2'jhSN=JZ=2sfb2kg_lOL2#Z^pbn$jD\sR6)\<&AaH#%9?+3Lu=5-:.s2ub3`V1f2]nA'G5;HMC!K/WmIY'Kf]#Hl=@T? %),#Dpli6N.`:,C*5Mj'7B8@f_4I=!N77BkDg.tHi;6QCpb#eFEJE=T0^ %!pG6P'0;"#X>_"ncGRqmeFm3./mP?c/+ARVTF4NH-s?pWI5aC;_n811Us,36MI2W+0hcOT[0G%K,Nn#3#b8LncO69rLgJ)1k,t5] %hq>iX^B[#`gB.u9>FNa#Mf`OO'>lVMjkh4)/gR#Mk%=k^n'`%[pMr*;@NV%&GpG5\4s;GYLp$^Y.U/&n]c>WWbI82t)MTAKG5$B. %&BGoOD3!"65&+ai-`:OJ+V75]9!JJ-^@t0jgKFW)G"%%2u$/IXCsN5BAO>+d,6Z$Mhs_&IE%?'\="t99,R:k6m$_- %NXL8khI>:=-h"lR%#/Fik"eG.7N[6FM?6$'73?thW9?V2I@*:lU&UVYkJ;O%cu&Qt"@P!B6h'aP&J0TiLN#&RnIJo/N(?2J_`pO(ltfe:GLuhUT7?'u %RaY[7O\tZ4f`tW,0R=s!GQV:hB"WL<[^`\@jp,f)K?0&/B]@@JG47Q\q5=rm(MD<,(K=!-SLEsCk!-J[qiQW9`o:-=`S)ePDD(Tj25C!?-qTBh7:WTg_JG_mJP[&_mmUfQ0XmG&1jr`g%KG$"s.O2RLhu9kEF&M&5n=;,8M7A)FO'u,+;WY[[:$%%.j.u\0@&M<2 %V3X.4\Hh_U>/(hY15n-H!37EhGf/3X'LT%b;Y(`Q)GB9k.4!_5['9,\,_:`ObkI$%0>D:Dd/Lr+:rgsVPCD*ND3UG@>kJ8rBo+"7 %3qJX7"Fg'i(*eIQe!ia_@'OFa2rTdiG.&_b>^1o0Sk?[9f?t%Z>]P8iif=Z@2=a[lpse3=HW4MGbC50 %O%:$nhGr>_^%+Dm>O%N6ps[IuH,t8p2D8<_q4nh>O[Y*[kF2:1o?*"k%5GqL2]5:KE^%&5;TAQ+;/HI@jm_Y>TE93,(O@-7YXW\HMM)R %qH`.%+o6?sJq8`,*mO^Oo%0q.r&=H;hrLtjPJ:WTJ*k-jZQ=fh%hq_JZQWE[Ii+1,ib!A@oIIs3aHT4/NN@`U`U2UtA4UC(D\CfC-kibkD;; %\)A#";h"QI,YYK52knYXHrQ(*r^IUuL8)!E2eLJsjr^Q31H$mke:ni?(SN%j\,sPfr`Ig0Yg6E6fijBSqscjm*XmM@m"mD'p$e*O %3Td,Kd@4WMG'I%ilCmNhfa,<%U/2BJ)`c[Z(sFI8ZOVN5rK]7@TfLGXHh>tG6<#fLR^mn->51N*d01:_eB"t-kb5BH"bF`)j`N@B$ZW%A0TPD(/@W.5@H'o;(H!]n,f/e$,n"a#!(rhtV_.\Hn;q1TtQW.N7>,)Cp9TE70uh&\k<%P"-hSDt99 %kb%u=Lr$:]VS;B>d8]^hN1QL.$,[`Ju,Td6SL/QEs3mU4Xq= %cu0MOkb'j1T]R%Pk=.4_:07Wc&04_8LH3C&#gkrOVM`OHFU:NZn2aOd+ZcQ-1[$%k6Zc-**Dq3gls2F=N@Y@_5m;?qepoGB#8PT? %;1(\A*E59/3:;GC3iIQ=f]s3*kb)ZB72:XBTP?&I,bfnukciKb,WEd5C+0M;6#DXuqo)$HI%slA>Fb`id5c"aD`1&iheus0oLL2s %m=@!"1+%E(![qPnO.F0@kVEV+:82..i3`1'a!(cu]uXM$ATLi:++@O.RK*3Da0*f2D3SY:q3g[C=^&dkY[FS";C_+'hcmo=r&)/5 %UUEB.9C*u#^M,Aq&9`B=C)'VQTa97"?DW6KlJC,'be"FduNDi6%i8^pQ<"n$HuIkp`4fsKaFq_G1"oI6-nniQk@!TYjNu/F81H9._R'.mFkQ=],<.1W")%:,PUURBj(:X)3Q=eB['GiZhO@C %=Wo"k_jS.FUauk_O#-1?gOtFRY9I.4(Y1Tk(Eni1*kA:m1/IM<()S.FVKiso-dV*L^GNG!p%>kuq>Y6e7C&XFhTS+BFB4H\*jhA0 %%>5S*ioni>;k9B2;C_,gPTFQPkJfNY4*dMXRP:>ecb]Y,*2+LLBCNT`e+2SJ\d5[1[(>Ugd0D %f?ft/O@+6Ub3r_N)iLm/]6g/b'ZhLSegf3pql!b+obCLj?/:\TjS %pSF^NR)iX5/_Li*hYsq[A`gG9EcaMD+NT'M3<1&E'CDpJf6V/G!quhTq_Kk*&X'kE8p`K1GIFOhroupKSe1H&Ta-,4t7]CoUV\9"ep1rich1\8!@6Xk:PFioVe+E#a`V?gY31&&pm@+5SCW82`Ht*JX,A[hPK>IB<%eIs-/%oU_dlgfPu,']CUpN5fFY&9:reXaDnl %2V.S*Y>+E]osF8LEnE^NCO*Xb\Z3S"-!mdN%kg2i4A:4NlCgn8"E/XN>;s1@-u.;]r*`2BWqWq\*`"?G15?saGC,p%0W6[ %k%h]B"2sG6Ai'PdJ[qENUQ\I/0;3_:f0_JT//maJFCO"+7l+NP"(q\YL4dKp]Y'9jc$JOD[TpT)mgQdS[F.XU\1i]hkK:Eu:V.q:IJ4bg %Ai,hF,?"YgB"Hc3\*3-Ycsb*JNi`f)`Hl;j-0Yf$q3S.mh9Y:#4%P1#U>t0jIAb6'(]Yk+]/mn=f\Al-.K/&;ElZK6E;'.`0Y47D %6-[`!7!'69S\j4V?l$:TEcm=9>JE"P4`!RZiXmYZ[PtSC_n-,34$OkH,ZQK,WNt61qDqcRSaGd-79o=b`RJHC %50:-]])u9oX?mo:"1FCGs7LiPA$-WF0W.<[i_AN,qQg"Q*$FuJ1T2lgif$s-*UQ_1R%2DAPAqrtMeRq+:/D^iPJi.?A4]ot:,bR< %j^g/,8PHQ;6:)HOPJi-B_ihfC[!s2 %(6`Bo93N*pPJi-2#ElB[BU#ho=\QU%e.NVT0=%mNS7rsBO%IN(Ef*+N'dSJ8a'l1[>*>>Eb'TD:`T/:!JJV'^(6_[lR#073ZC%0! %*`_7KZC%.-V?tpX7M_3:V/gfQij5#(R4:P@EPkTR\[%Tm,UT>*V.DAA`!/22ZEfjfj2#r%Q,VfX;dlh\Ub!k5@-@+S8;tXo8%5QN %-HBML^5K?L-K^!:86JV"K3\nfabA6REE95R'A'0DrlUMcDn3?bm"05@HbFa>.eLoR\#&lC`HDpt*j1a_(;+Sj]H)>X$Z@B[H<&Vu %dS$'aiL>+El^%8C9iI3iV(;sR17""7e<6$Q?;*lP3\)1W>#r37[6D]_dWSM:L$EHZuLE,ZaJ %A.oD%-&smPeO6HUXi04kT51N&2!e0b[aB8SWm#f5+t)I.IE>+&p"qM(\V/alo9AgHRN+%aP%8gS*tjQ=7-Uc#J'm4&JZrC5ou %V:G7Wp[.Xg$+YP2O7+_paS!b'OnXmJDqY#GjT1n:;=oOs-/1nb_pc'\R@a5P&op9H[f9e1i.6&75-!k(e,4]>6E\N1H*@0]AV\mn %WkMS(?e;q`n5PI,6ue.Gp,0)(+EqO"lhh`so5U;se?7pD$H_tmq3Z>RNp^!@#DW&HnFp<-C6d[kB[VI/,C.;05D+]a7S#^K57aHo %Q19keXX!5>>LM9(7a;m+K"3/Q37QG3<2J&0,5$C0=^1aJ)sT#"]9`somo1oh!*udebmqS-:l7CG(%CaTe5,hEpT=2?kufU8-5sP9 %38/$hRqV#2iG#'@CncK5aO96!$uIiL;TQ'RRd@jKCE"j9'+M^qBPk,?V$]'*U3Fk4#TD2OA*]T"Pn!l]iU7C+!f7;dBAR,1F:b%, %nppB=RV'.Bi3ii92,0+,Bs886BFRYA=p#)5616X*1C!IJPe^GYaIrU`K/kY#2C42[i`Q-qf%(M(`;-8*,S$DmAT'`VOuWHqhXUft %nmC$SJ^W^gn.lqC-dZk4frdS^>$5-^XI_]Nr(DMI<0+FJ(*ks=ll2-3E2$mSQOG%DPMI9AAi%OjTfa4j'*DmqpHML.Q/5>uLKfg4La6uSt>X;>,h(f*fZHJ#RBM5].VD[jCg^]VoKfW(&5-lUe,CFtk# %]0DB`co3Wm^gof$!n]6cl[V>h!SG6;>n6S<"ZkFDQ)@WAM]"aR%NjY?Q8?j8R$P8UZ%j0.e/?jaB4_7f\dd=`n" %$uX\8:_8Y=(Bin_Pe19Od$A:L"ojI:+ge>MAXO3!^@03:i=9I=LJD5igtgh-4=$UKgutQ2!in!kK,`[4+t26_>P!_%L;GMg4Z02m>EpgN6%2@?`],kgfb!Q`X&):])>)?8dgD''d+G8G8=KS?*>Bgt%J0PZaLueIP4J_0l%ZDt_ %bKRC^D@sj<@sKQ;%(OoJT%Gni7VuKg.(t])CMPWfi"o8tT5QI4=:jt0\H[[mMM$Fk`cA2JH+[L$lL"&h')J]-Bn;n)gDj-5Q3Zb9NtZ(Ca7NZAbi>pB'p;J2r%XmKKqq\lN`??a!ggrCidhWp %%q,Pd!,Xn6.Y498icIO7cb>?e#]C>k\:07_%=qf#1&[4+VbXXIRJW:jqB8Va"+,I%qB;QS`a&HRV]0(kJ)Sj+\f]r06]p"3EOm=g %H'-SeECrHo?tK!uS5X=u/>Vo**0I+so(jM)2oM,i@AbC?1D5o`PQZG)JhMa\HrIsYQkIg]fplD"(laU":$[^aQ5N6jQ.cqg\%RAqZ^I`WLOn#U=)Egnk'^S688/R7Cp!"*\LFb$$LeK2;Z*Zd]@^8u]QM#3!jQj] %>Z&6iR)[Rjp#F'?U$G#Idg6aP/;R"Rh_bq30pkIJ%S!U;5LF]:4uI5isFnZcE6DV(%9cr.>pH]l')r6,um4oTu(:T%@W4Nt#MG\8oS9KIePZW(ePq:p*i!Jg.^ %pKA(f@EP?A:M_XLC$Y"NS7`+B1uLO/):XL1$,gNP+LW`(S:3_oTtqgXX!S,=OKm; %pQsh:+tMd*kq>?k?O:AQ-Xn&n=KFYZ8uHaYFc,3a=fM]hMFV#JfQIX*mS[?^2SK+btRG.h83qWVkuK+d\F+uJ&> %PjF9SHpY/F8]e,[+uN?.X)lP!frh,]=,TEi0\_j<\3*qGOooSZnM?JY>oa#gmQ=W$F^LXQ=$/>_dftT8!IjJNF'L4->"eb,erlb" %[_ZAU#q;9Y'^dA;D6(QICD>aDR;,]q2V'P10ED(c?n:XAi1HS@GW2I@LF;Vs!TEX0<8<-0Jqc9inSTj#q/mQB!c %Vf\.c<)OX7O#HJ,Xs*"F,ROP!W?NnDAjQNKSZ=FaJFkBaj^GK(L8n'2)oE/uUi916HfNs8(7q`D8nT@`R#5iD)i4Ure[S^B)i;go %mP2P"2A2L=R`Q;5c:4N.Ql4\W8SR+!)S9Ln[LA/N/s*Z1`IqkYE"o'uZO'F(q[2?LZC]pe2--^7m-O\jE^@J8hCYJ%B=jP4l+)N7 %rVglhRZ0(LF'Ij6feTRSlWEjT[T2.3%bg]t^qm8f?u-Y4dF&en!/Jgm24,UZ2'GO3Z`TR84OrbfTn$TB_i-G %K.?&J<9VOY['f5kr>H!^L3MUNiReuTCnN='in,*LGUBbTF_#.#DoKVp*7,YCP-RY[4@P5rb"c!Ek$fm,W:.Zf2_,?0C2l)RU`P_n %=rbcg];)*"b5p-)a6Fe)Ar(N)r.$?I'Kn+u %hc5bQOdjLI1^hZ)AZ6GPEj6n?&r&ijY?LqS/-:s6`R-5o.SmH3RK`0Q8Q%.#Ac\cd/CafOjX2\D@BWImC*@QS %kF7BtVc:.)-i2Z#kf@+t$X1&Tn^HZk.gU<`;B9J:CbAht)"EM[n8Gr^eWNbDoo%G,AuOShS`FS(HfJAV[U6op?X%+WXd6"fi-h^f %/i9@T9HRH7e'8GMeWpq+aqF844sK69MTXpp]/]USL!r>(_oc\9qqB3V*%0A26p4nMqV&.a<`I-Ne^nCfmDXbV:jm1mD)pA(k$2ui %r)K)e%?ak=SSe;=2X'Ubb?oB\YKk\JA8ubRPNm+>$bcf#'Z2$q[2ScZKNjI*+4p:.@gh!e9HBTF+5_[U7" %K_Do13S_!&>?piTp:.@ggi1MF4qbk3n/TSo\A8YH7#$:jgE2K/*H(AZLh.ur*,a\j\9]\3A13PRWN5nCLnR)6Yn],gQ-JT5K5$A! %*]J1=';k(c9pnKbqN+MlEOLOl[9Hq^:[ZMDQ.0b@n%,gSZOs$ %@V9%_JPgg"*0G>*74!gEh`C0@?[%D]Y3ILPg&I,[PloUmIfJ&RR`dV9m/IF3VUY0;%l'pQuBZjca$7^!A+@>%`K>G3@nu %FO!*M"I(]NP07EMoEOAA+.4>tB51%i/^2^9B!L>hKnc#hDGp6_A'U?%l107XmrR^-r#^:;\^iac[ZA3/&\oQT`&8bRdMmkr@HbB\ %&C1=),Bq+M,[6_nDr:AsfC$pl&f:ASFZ16&ZMJJ"^!4e4#bm,!p&L[VTeXph>/BX*ckpHoMUgV]r*l=ko3S[,NdFH-m"%ZrM1F62 %:mrosfE;%WlknsL.?RdW@h2*]-78Ed)F/sR0,RcAg/_kq1d:"\6!%S*[,HNH*!:%+mekr$G4U[P]n'qjX@?Df.@#2V?,/T(L8Hu7oNZQQnEI9;(<(P.4tZEA %C^u]G>[oP'H*gr1R[8XMJPY(Q-2\@gae@1"$c'dgH[1,_)@u.1BX=DQ*lp9Y:%Y&*bOCkp\Ym;>07U1L*;^qE+FF74/WGDY`%Tco %3,J"G*mNpdjCIN6=8T6^p]M+&[QdNY5P5p*NF2MmqF,DY6/6Y:-QXFQjfhP6Vk"@^?1rP[oj+DAbGuBlPg+CO]Y_j5p_7OYKZ-%q?0r+1dE=X-6cja[IK()KJFQ4QW^mcGhI"3>O0[%?uI"8_T %oGr2Ei<'3;KAEq!i<*jf3c+Qk6-SQ)UYN`l#\""jC8'$bR$aR?Sb3N&N7NZ5C@u(AgCMMp].S& %/r9lV+G^n,jq^,l&8l?t`<:s#K@1h1Ph9qjfS:%M5!TZ8^qTVt&"mjsX!lSl\,AOYE#9nVg@M:c?,>R-"Iee_)F4d@5.#DhREf]O%^5!VLH?p?FHn,[!8"89te %]&1',Z%`c#d0!K8(:J[i)U%:*2e(IrPt`n:&+/4u1^B*/h_DF0EN(ZnC(m8?HN2]Kd,D5]H%YE_f2Bi*A@2WQg?)P3314XoU:VRl@aNB+C,ng:XC2.7a]\NEX1Z]b?gf#.9+Z.j<$noUq/cF.$"?`Y0_#"^4HPFsB:-+hq%AQip %BMJ3AeE0IWJQ"NZ2*k"i;5=>6TU*q3j,p=cMd!\f0BMZBq`.5i\08SAE2pq,=I1aEG.)(2#o?sS>mCK$U4QZ/MIt6;"KSo0FFP;I %FeBKL8l\6a9!GAS)6N783a+*d(6s\ %)nrmB0@_$.>^;]sEo4?+Vt4S>#2Ossl6p2O[[Gpf8HuX=J+N4OftGq`S4CE0,HN)Flo^`MqV,QQmqji6e-CJap]nB0%6$A4^O*[F %g9>""[W8b0]ued0c-;%2F0@JUfMeN]FMnDqj1)>.P*c+qIs6%?jMc+iDOcL\LcC=m1V1(09n#rn_O6QLceeq?KqDctB7Fq-3 %hU9l:lX3eF7gap;!RXnf:WEuO[AuJ*Cl!_-_>"t3#TFCWGAoJb61<+IRdS/r)\O8$%jM_`_DQGfl9`(bAn&R4eBqL%?So?"PFG#5 %T%a";:#7ek0i'9p^\]))F&YRQ9cN$NmG^N[_o;mA8(m&PQJ,'/2u#WoqBL<_6/YuOGLM]*mAQ@T\W=@bgj'Gg38a$ok2B6Il8d:X %p&Zg;(n.ujmR10?%*i>1P'"&I1hO5oWJ,pf\ND=aCsnQ=rDGqV)-.=T7qbF?IQr,i2"c,UosqsEh[ %]QIV%g$=X_BHFApI`DOs1j"I.SZM?$kj0PnN&uf.*]m0W>n`"6b)^MXl\^Rm59i7-LA^f2\FhQ. %*]7]deggMHQf[Alq:V4N=q6>\9sjK/X%qPA5jtkEo:/&SlUu@p20>f?Li\CLDOU+@rF]"o\&Hh(Ka4/%-s%eJ<&PQAf[aa./,5Un %!SWYC89ENMk%Xfgf+U"7)sEtFT:K,setjcM.7n-=Z4HZ,&fa^)3-NX)R`6]nF%Q/6B%DP\V2#Gf=pCo"%af6:q4IP^]0W\Z;HlZ+MZh/_b&JOp-S?_;JuH^U9og&T#aV(tkNRRt %%F`iRcI4(:.h8>!]"hn+Lt0(lXlGDta2*!Y/],tjV[ESNM">^[1@[;WGe2,nMhq9;gXB^j)2ZG,E-St0!?ngH(43XbL+/S8MC>&K %4]OjWTe(rV7)tB3:R<=7/sO=kQ\kL7'["`$/k>GR!>Z>P.#[ht&Jc$a-qj+a&IW15J,9b`k'LH;Te-3,pj!HS-u8B,InFc.Z;;=_ %TTVuE;M=dd8KnLQ-TkZ](A%/]E:\0S];)MHS[YN?n5kJtPf:D%-EXP5[<\Dq=U;RQ!;VqSW%KEk.o:$K'Q=f6R')\$qLaggA*5nj %X\8`$oUJ(6c]Vg)?*^G5#@Wq[#1`f?WeQT5MT*m&325$pE-@$"&Uj"NrH'@#Q8n=gfsre@/Z;=n[WC\i#@b8TD*+*P'c#1DCG0J5 %_9gr=4KQ#&m#m>S#%(H: %eGRO7/G\u90fIW4'k5;=qKjbjJ%^]`J*pU]'">DUpj_lPc@DD%-_u>=S?\^/M3&'p1Fmhs.c;B>$)ui";'AYg<:h8^GW.LRpV'.! %'2)9Q%U)k.ds:&&<^mA\XOM#EJ$/DK=5R^WcQB)H4e=oMmJ+);H^Hh#7!.kk6?9K@>qYesc0b3RIVT"O<9^K5?WM8Cn()<#&Y&G# %YLg6s)Xj3gNq[KU=MDC0^SpdbqD0a[GICtD^c.,Dds"Nk(7/0GK;_?M_t<,GJ77#?JG0Fk+X4A]dGc*Xb7]$VNgD.) %SM@D!M`XK`\j%G?2klS0$ZZZqNOT"B`I&FnP_XGtVTJBQMt6d%masp5_4j%mmi.05&)i%2%W@,r1WDEUd%B:!C[kTBV'^-47U1O7 %aj]7?eJTY6d#79Y:Sm*3l/+&SSlQa=[<")Spn^p]d,;ZjL5jg[$m:d'Faj-Q9I!U4l[?7H`k!rO=ji %H:>RpA:t+bJ-DNPV_pJ'Y0NJ=;]l%dfa.m!L]>e+r6:!]lBYr&Uo7(Ote4,+jb(S,P?5t&: %RS7BJO%#6mr;-P*%OE%(A7V,;HJVpq=\,"*JX?9Sgq@o!X>Ru@7miKnUQ5c.>)HuK$Ceh,6^(*I7?egjV[$:VUrd$,pC+3<-.$j1 %0Csa,F<(oiTc#7&r572@P;icoNNaE3)(\8mcl*_KFg[Xq`/F;dn7$i=3R!Dl"+Q-jF$Et^8:*iJ%re@f6m#_d5T2U1`YuuoUUE<7 %%/aJp`VSr6(pU/fnR@MiXn*(o@`d@#7kC'ChU2U,GWY5:#?*m+Jh*9V82,b#*HabK#RRBT*CEU2k-Ha&6J,.W78jHu#t/\d!TEBU %80GJrXP-%ME->Fj.l*Wc8I$3:pK*L]KsRE&MK\GAp*>M(B?*@e>0"R9Zf;YFE'9*eB=I`V]Y`@LC#t]m32u3WOUl-r@Ud<)Ot8S_ %*M7AnL_(KMN^3c[ObJOrj*X+6`hnKs8'_FI'R)Cmm%O"O+feOT3'3.4#:<;93;^^3Z(s7l/iW89kKs;bI=D81gW\eeDSR64(r)2eZ_LP]kG8nON@ad.aMJml;!3i,;8Z7O=MIVUU %Q]I16V@9YU@>Z^/dCfkF4/C.79+[LL5c\-BreK9\INTs/;sClBlNiq!+18lfQM1G0\jis,?67,OlIe.&`%gDjN[Y`MaOs_bj-Zj: %G4PBmX1!euBcR56@2D8rMA1Lg4=>nKU(8n6ausU$>(H/ZZ!Rjs(PcL8qlQ@&?_?3]G"f146Kh0VAqnr`+e73)a:(f+Ka%Z5K^Rp" %Ol[:+.7n,aL=gbp8WKWC'"(iMWJs56Q;d9>ke#1t6h%CMN%CmbKg5_^0s[=$(Gb]JUI:DHn3T1&'Ig>XJenJn)6lA_Jep1?!Me.7 %;=Hp!>g1>!Z1C<%eRr?GfQeWb,I9-mm(AE*e(+03(+CAmn*Q&],t;L&SJM?u&i[m#jaW*k\^3p=k2bM(\U4FE_8#Jj>bO666CL:J %^]df3)s$"BBi!bSo)rss:PE%0Mto6l]FbR_I%O@p_si:`I%%h$(NPQY9$J/m %iCF!"%nd1Dmk(BqBr.-$+ia+M==THeb;6gDYXgkqO_c*iQ:F=/_@#$tsF %/aDLZRhnEKKp`ffkCnj/9dXJ.SJOV20kP$RSJNJ+.G;T+bDK3'3\DHqrn:E-=9fq4'^H`n0JIcR)N%Hk_8];*[=(i'9P_:L%9MT[bnbj)dU82-_7H %p,VsAo'f?&5#`+,(E3Y$^a)AT"T2mnKuF/r@\8iWEQ?&_jQ1FaeI>l`PF'T%4YNN2!?F?OSUD.g#`*C@4S?,Ed:6?bcJP6Q']+Ck %^7I`qJUmOl6'IFr>Ac<)"k]B=JiD68eM,^O-+/]b1:5kO9.=ZHYHuJ]EtYDVC$eZ;7jO-#U_`<#:XE;$gf%fE1h-O'fUW:G$`6)g %Fshmk$M(i"YWEGmQC^.\hB]m"&kDh[(mQ5:H\g&H:2g#!JZD%n)9&?9- %mLL3jdLX]?.&mYIR]<__Q_Tt&.MFBJaZ;@#:Y"Afrsbhd(H %#gAl;oQMUM;F]hdX]>5Mns`NPY[C/H4=o[JkBEF_j.,$JSdLFl>bt"8A>9uk_/.4+\rL+:$2/sWr)ACW?.TI1Dbfo)>!07#*mC$E %SFj2)\UIsC0%L!2A$_+@LRCGA9LiQeXMg/8^\D,)E+Zb9QE\S,'Oqq[Wp"h$)lJYl6aNrHmAQ@T %\W;ptghOPA#R>-;VQuDR9R1U>.2h%piXrks=f.(ZrnUTo+R\XVKH,$mINAAsHP9+=*L2jVZ9U4@;;)4e6D0akN#:JH#W./ip3_)" %>2X13@ol-kotAqnK^4!$0,CS'2pG7X/'/G.^?QQKeQ-#-@bIWima^.:??HFP-#7_.?$-R/H%GJ6?8LHs)NpG$'2:PrqA^<9IZi#tG>C8B4baaNbbL#>_7-al@uXTGM-b4,D)QjpDsBrl4>*,gAQ.EhR"&F"mkL7F9pjFB %Kk!Ss.NuFNPW+!'H8&.!2)%/mmcs4m/bu?)`FsuSYIU!CA!IC0ORd^Q9AjcO@Db.\"jjpDq%gFFSriI!_2PlJXmmY!iZ1>n0jf:" %O?A@s`);*?c(&Y3>1mpJL2S#H"67n`-@%%gZ9oE:>X33F%_?1?qe5-<4`+%I1QlG8')&;H?,%t5l/H&WHfubs]O7\/TV';W0'LE% %^4lsf8!ULW_:p`Va51=7ODej1GHm,sUQU5+e_dLN;>XeN]*IPr4:LS*_JQee4&+M[7*=Fmq`\m8S6u#SGs%l!M<0P"h+tQY[q0YG %9rS%L@=RW-?.\(3F"7nb6MBgp+1WA]YqRU=Ir&4&:bCnZ1Rb60U>urT0O:tq"&Fs8-k`,`BP&g:sZt\Jq-Z' %69PSOMh"V069Sto/)AQ`;`DEPjuRT3ZbWenr?n\7(TTT&#g>jbc.3.tU5dgq^K'aJ[iWq+FuZ[KG-[&+b#TjkZ(4ERWQCuTAKjZ' %6:AkahVdO"_VlUj'P)\e6U`+C)8a[Q!*ncX%'e9]6qN,(>Ib<<*VE$ZQsd!>)4(8lZHL:o6tKJHSZPT'Cd5HShWsdA/9)ZY*UK92 %C8Qdnm?E>O8WFd&_.eL\DHN)"/PGGb-/YLJ5iU(jW_L\j7Q%j2?L7o@f$[Yh@##'pWb+$X@8+km528%HZqSB^j%SB:hNmV%,ZOO;uN:e/3HTMmG7kFuM!J+07VeALjf@?.30JSjBZa!bhhZ>jNbN)OQ0QC0A^sSa?PK@DL+3q9= %$4:V4SqiMLH@$4$f3!d+$\]dtO#S2.(R?:l#5#km+JA2%WSF#6.`<]XqPQa5P;Mks%%Zq?r;"Y=sJAaLF %N7K(m*,d1hm0k/>_AkP'8m6X-4mU9Y)=!6D9U)#*no(/>/^,B*W.7'9O5lqk'$N`Iea78&nka#-Ug]uKs+L7&G_Bf!h3aGb+)lPb %%JU?fY+Ct&D1,+gd?Cr%L[E,'6)4\Q#[P] %Rd&i(AD%>DO*m14k_o[[jZJcJ)5+a16$%/Ubh$hcU\6TTl(<"6=#`_/XER;"642o6l5SIG'tb'2[g!.`$=PTU-Ag_pbhGYjr0])CPJm4M_g7]l\/oGOS%[c02Wm!+,m$Jt:a0i/:LZs(6@5K/u.&pp0XbnH7t69mjMVpjk*I0Y.(@ %;$-+#njl7]c:0`,Wk%e`+cOrud!G;TjkZA@muKn18"\qKEnrIbC']`g[K2^/r6istOGC&nSP33lh(PQ'<(_I=qIT?.#*p6gaHo/9 %Ek$c/LS;[#R^r2>^g[GaPaZCNn&D-a8UeblRKYKJk]ib#n33Q_1^bYopZY@bp %4jND:\iTF80K.b7Pnkf,]pV1H;m/<11%L2rVpF^e&t=nKe#h\YoE#[=S*nWO$B.^Rb_#hP`Vr;.N%5.q`IL6D"CDY_MZJInKeE\n %`IOYk(jbk^3-&D5hpd3.`5"&WfiTX2S&c]C[q)1rWeH+7Ng3ro%)X1rOG-LJ7[r3G%>HmVeUhA4T^*6u__;AF=+5]SN*@&`+:Q/$ %_q9V'&&VW\R-AqZa+8Lj?tcsl,aO?b:=L!0br3,e'55JpH2T#A\:W7=$o_HOaf]8e/u?WKm.Q5f?XO)"OndZO?ltV*8CUO0EQ%cX.^^L@0G00=e;Q[ %fX/%\P)7Nk+d!@k[O6S2>>5"tpXaO=oCOj90?Hron(/iTK`.1#eC1q!B$/H+k@laB5X^'mR@^=N3LMc7O"iS&EEKHOn3D1`Q\J"B %iHYh(e9s!36JZ+ZmXMJ*69S0!;o4dMYqc`U)ZaT1)ba*ao8cQckSDH&QmWpj&Pde.#QYX7%K7([?aTdsW'(1-7;1c3p=kN0tPmkCrPnT8a^t %kCqhhAn?]:%,cWNQXo5?g)1L=r!G,Yi>ECWrZ,3>IpPmqKD?7l/e3Wti%$(j'$RQ+0T"1%mi5Z*8.8-F^LHn>7#!Ce-ch6/%F:qc4DT-A %fW7TfmXQJ?nRJi+Um`TSGuQS7ZC"u.BePY1aQ*[3[=YPSACPYuY[:Bcm6C@ROcq.nX\4rhEmQa+@lmC_O^NKtjaa('$Zo"YWf;C*#d\F%c)"ftNX&VKVX(Y1^X6nS]$D68)&X&9'L&BM\i;i23`:k(+* %/iV;9?KpW6Q?L:sJF?K'O9-#hJG!D?O?tc=Q^[A=$![Bd+>W_-M3DK)OLQc8-o=Vs!eFS`f3-@2#:;Va!!]qCIY4FC= %PUP6bUNEJ-12WLqPV,t"Ih?IJJR(7K:%eJlXcY8"+XS%N?Kg*BUNEJeL4jn=o0ee'bp620q+R?r]UO9k*Jh,HLV:e7pEO`RQhD?) %-(053%c=+?oj_E>l^41M#e`!;q62gR+M?%Ujhoq6aL-p^n(4C.-FD5q_X(R.7\_f\$okHF#Q2Y4#2Bu?9_/AJVGXPpYoNPc)/t%# %V>CVVT0K*/2q0aB<-)]=C9fm]]e7[c;krPSKgmu32V!=1eQ_\/CWbD3Dt>FS/sL4QZq'aL*hFuHgJePQqPC]rG%6.[DGuPCVjqXOt._Of[jqWLH->8-ji&IG'S"R5-B<:)MrVCZ6KZ>QK %84A]4=N)Zc3ZU*S)Efb&_lk;[)bKb?2amGKDtLGao6h;)Md&rHKl6g$ZMb^mrtLp`+)ETYq8s(_0."BtPgjJNPCmnZq:H"LWAAd` %e8%%C5heQ\GYmfcT@@Z'>DC3$@naSEehJ3G_KWa7pEg%(?Lpb%r_p?7_7A03/udGG\iJ>dAp10C[&#<9F[RtjKFp$!t''Pg^QiAl/5KB,4r7uT^kJjSa++h6=/4UF<'=*_&X3Ccc %5/]8/3]PN'OF-91?4dZC,8/86F0-J'1NKUsO6E!I*>m]m.)m1`ib[,Q-R7ULGB9ma<"?`KCbj;.GNFqF)=dKsLm:=TM&KJjrcS]i %lkn_bO(r+aM"R]S2dD*Yc"sBOZuIg&\c(&Je+h*%(0+hm$0_14ooXQ>pqc[gSdPe6_d.;hhtX'8T5/lt?'dmP0]"q,lTA\kA#tA7 %D/Pr*^:r*8oL=RG5:EtO3<h>CjCRFbnbYfOA!5S2GFGmTj?5.YdHa!iCIbf^J%$`LjAZn2fjpaE^;\1Wsll/l&3i[9_B_ %M4i1=YC40_TW9f^U$qYo@]T^a$fQ+L-VC]1L!U4(>NSj;KXZffhI/?s3RH<(gIM"8WX,6^m2p^RKCrFAb8o#^nB6.Mel&eoD$LS,;*MW/l/CSqi.bG7N,-3Ea^HMnA.4#6M]aQp#I%VH(Tgma %r6;P"-B5P_oD8_)W%stek%cPm7#9'QI^e4s*OmViQ<^^H/SA9bFIW%]\BHtX"F=$>Bt)D4/9Q3#1fM[,C8:X)bQ-g\(SS"64,&D< %SOVmMRc?U3BJo7sKA?=Vb[Q#q3/fo;+_5l\IY_/n%C(jC>lO'dJJ8V@kh)TbqBJgW:RnJ'n>$$,#H21uiRMJh[ONhWeqIC^j %Hb"t5;EJ[+>/7tVqc[_dp#7gZ;m'^b$=6IF&"egD&\X20km\>%RG57e"L#*_K;WbdABJ(3Y4JklU?$_:3C %MGFG'Ge*+r][f!M>EEcTRa#K]mV&O%[J&9gDUeVGYFJP\=ctd//M,Thqdf]WS4ZZQ^*q'&sJY'nqmY[j?FF$l))8`[>GR&J>"Yi01i`9hk%hCC#jKpLb7dLHkYqL,arQ %]<:%$#nh>]7W#P;IB0sS4=J/URemQDW9knrJll/>_@YrMN3^p.^*S32;L.oc#!9c"gBZ<,doA9fb8Og19t\eMB1()b>QA!>,3^6'AD7ZH3dj\;1b %fB<@,i+8'k>@b1kb[%"?FWoL/H$>5l][%IrGYPqRedXR>@XIt%c;&Np9A_!Li\s4##-95Dpe>O?-PFq[*ZS2b`!h)CXPR^+i]#j\ %2`&'*Mr+g))rA-b07G.AD]$5cMVh`Q(MUj,`9dtidfRI+K_/!%Ko"W`lc5`Uhr(;*SLqC/hh[='='pLQNBil(*>K]G,=XoM)])*k %L!@-&&\eq+2eT]N8+@PLLo;--fG^4+2N![aUCnGn!->FPc$e?o*)Z.$$/E.\G&?Dt(;CI02ku4p\+krE^,ZmOe&?7uGjb*NE>_AO %P"a&XKon`a!`6[j8hg,'*15d!$I%B.*?cLU&lf9gflr.H!=KLX7Qj&\Sou6-7BN=Et%- %HI")LR]?M8f"XMjSL=Z3Xaeg33Q*?(m'R9Xm3buE^pOVDW*\%''QEafOB='.!cI+r$E^)@=E_*"!a7S1-Ja\-3FqV7P9:@u.8:=Z %N[T^ICkIj86(F@55KRVU:)#+2%ogF`R6UHjTGO+Q!T8l"=!7qG,+obI`.PiA]GHKgZPEOBRLQUi8Sf*4-N#SER?huQ_E$k[)F:IR %:.gMIM?D\E0C.[_Mp)IN`a=hZ-OPEM[$a8n<[)`uq$p[\7l!YoXJ^mKd%tgne>I1^`FLXXNGF %\h^J.PFEkO/C)7U(&a33O*[3V.RXT/2T_nm4T_'D1)\XYeEON(?r:DOA:=k31t.M@^'jfM4eZ"TKde;4I-n%OENMWG$gSbEM(jMcPN:srfG6O\7aPQ>C<<"P %,A8dE]9YMjp(rVn`aU*J0ENmng5,eRN$*mLNfPt.7aPPi1#u,``Krn(@0@%:CZ)`:@0@#T27&4498Wkicq0d[#S78oSR/!D%"EAS %E``_Y$d;E/#/`,#")!Kf(ris:.6%Dr&e2`4#da8h"i2l$_K9*X+:Q0W$2hjGLbODb$VYH+*Md^Of+16FJ%h$+ZJ39`#\-C_2m8m/ %(87F!D<"->!M1^?XeWp7HKAa^L7l?o8eOCBSZA*4CMO4)/EoG3GdXo`&QVZq1mC:SVa?,Y0j[SE'KFq;ooIp?&0Oel$^/=qC7aPP9 %$A-.<_]]B(2[BK"Of>&to(VOH)Z%Y=7/)#rWA)nR_:<]2jR"0/X)<+p*rW2$mrd>pjj$^Pi,UQoh\>K&1n.-?`CioH]n.-?`fIh9,M$Os-fWH7eJl9`NI;V":+7NCG %X2'\Pr'9.UEA]\M`Rc33k`4Q#:h5K2-&]Z%`fr'(nl\nTF.ZaOQAm0sgb2koe.L.Nal9m4@1h*/WLZti&33tM.p3j)&";22f$:i] %boNi@GZ)EYJ.qj7mYt0c+eE_s/C(SQ'UjZXF'&&e=13lLS9/;&J_6.b/=Tl%]Sp-.O-Ok4Kc%EIRD&QTS^2mO$SOuM&Z^$b>K7\r %O+Zt=A3LBEHW]$`f_I'i%VE*Cn6+u?M[cA![$D(.Ttl$kAutV9MAeK:ad7r2P.f.DnLXrH#Nidi4cOa=n %1:@7-7u?.2*X/_M?8-_O3#B5^n;DuKGU;W\Tij-M_5j#P4`C-3]Fs/M0:tI<_(/COC*i07/U1jm8.AemMX+R,UhY.?KjAHp"g>j7 %-Q@+d'td#^:Zg>A_mOX0nquuiGU;W\Z.bLn_(/CO._,fIlRgF,7LKHTbTh3djLS6onK[4ccpRDiYJ!`q7i'YGC3R=B4ullkCO\1@ %5bdWIQehid<#2EL)9GE2pS<=*,?fTDo&'cu_6E@<>!g8V4$t^&J>PO'icS5KlMKgKS*F1Gl!8-";TY)Rk3_'.8[.\lK\rJ)m"YL7 %eMW4;je4,Q^K]omT-^t;rlQ[XiU0HA=(8[,OKiORT#C.Ah3@np?7i@sOmALIa89s!p[QM19SBR`DS@u$2^cprrp.OYfcLa\T_O]6N8`_8)YK`$SYB%$=^=8e(7g-V`15krgM^UfS&5GhV.k0FV]l+G;s=Bg)8nPj7_S-B,(8l,0H %hGuB;m]6odc&F=rh#pu(V02ahP=NSa[C)Wg6%lT,gKVq.X;,%_42%M;@V>XbJLek>O3hs>8&m6p[r4@3S#sQDp)#A11BfiM8)I*k %m;;dk\EUCcO\bV4eqR6%qYB"ZKS*3o_g'`F`W`]6'gB=N?R:0KIS^/e*Ble>2FTq=g>Zo2!\`S)%pjmSn %hY;q,Bu_SWd.m9gJnP3L>'E41\*!#R$sEffcZ;n\@EYHQkfFuUG\QE9`F0oJT3U3foFM`t1p\K<.A#W:FN3^Y@7odG(8ao=7(<`H %ci'Za>=P\Ss_d"YIdZ$8"sA"Y&Yoq8!dC?(#)X01`p+I9\Sd]KchnPn@F3SCDZ=^b`d.jh+uY01^XUR2\ii*G?aj %0Z=j(T^*f1*7m>Xnpi1'+@Z#OE.TOAK]eV_rAKEn=R1C<$``&u;j&9&WdAR&J\bI!4>TiBMD%L$:>?:WlH8C98=8BE;Pn,Rd4F&? %E,r4!(u6O^(fS+FBu`Q7pO0$GXaQt9/tS[JQ7_*&3d)Cd7Bju20km<2"UF5no47hd6e$sKR]sS3i*`9]V;7:(N]gB4(7< %EX8dW,4&(Rn-^>M'4H(4=W[!S-XsZBWDA'#M'.T3*YVq*,01p!(1MJ3a<=+j@Ws$?:6HI+'4H&N:Se?/'4H'i*(,,@:;ijaW>&`a %,0We9-O[.?&S:5%JM:d`P-Bq&+lqW5eai%Z* %_V+ItCij^f[QC>AAgcEPbMDSSR%5?G5_.[I0KVR,T)cJ:@K\6[a"9EZn_X&Pi6L7H(M)s&O:5%+>=aa3>=m:&X`N"5m^,6^g=_hFp)F;Y %;A]JA_2]cPJ_Bf+9c(YXQmZO_*J)o=$fMn1#gC:q&K7LD+tsscU$"iY!ct1:faYL>ErRQ!"ut]C"Tq\%2]ajN0A+;lEQ\4f:Ak9* %_'A\-3;&>'U'R=e(S(=,N"qE/^YmVVs4nq-s4kBIe3D/YngD;15JT<^r^7ShK4253Ij0iE_/sN)G9W!=_*AGUJ-[C`OhY#bhhoC+ %&7G\N-HST10S0KrB1rF?k+oh"^5>tZ-sn1B5N,EI%)W1',R]?8"IJ0[_hqmGUKe&_@O:$P>d/Rd@0l6A,rXQ*)1h:4s3]$ZrTSLbJmG!T"VXKFq;o %4M1`O0EQ$`B3tcR7]^IR>q:F2,A8d4L'f3CS/dn)I[`((?OCo8HoWn@AoKJ4#UOKQ^q:Lji.QNc-)iHD5Cd/_.(33<>%>/iK>hX2;QD3oVg"fO>^_er\U]NlJbjbWuF+]sdNb$\/qnLCB>4.49GqJu4^WkM<(ssf1I#bB*er1OQAY%\^B)L$N.lseP[RG11V(#KrAMe0Ld%aK23up\1n3VV+ %]!h`9P-)U4#(GWbg8KHM1Q[ZR(SS!kQV=,hkLLXNpCHqn#h/J=O %E&pp"+W#Rf3pqIV"hB!]QR%=p?"]%"#?<-1aQ4AONi0TFU$KQn2-cj@9TeYD<"5/?FXFdFApD4HXtr4)7aD?ekW2Z'])Gp$6J$/' %bk0=nMHlM/OJ1uSQH42j?,D;u1X4Bl(,TObH=5epSCEhs?oEQcFI`^HfZGhdcul5<$:njnD6BY'`qfM\,WTC?2H/\JR;'te\t3Mj %>fS:+@7&S6VKS@'6A;Sk!,?0$Dn+/:-E/0T.PQX\Y85Pd-)971[*+EH*Hsr#.UCX:U-gEQp#g0V.!H]FAhIC[kl$+if_m"dBFWkS %FWJ.6;&FppCS\D!IMWlBdY"8OXQ'>e#bSbI7V`^->-ls8qW=qREg5X-g1UpeNfq%M)m'/:`,33j#.'RP">(C]'hs %V0TCq3U6"^qoMfSB`n5_L"6Q?=WpJC!V,J0*G7R)D]]KS^#mZ*OZkQ2p=.^Le+.VfQH)-F@"!La'm)4AY&HYkP\Ome+5P[(LEOUDJl`M=ob\\:NXp;K$s0d7R10FOPm@s9_\.%hV->f'ZSRa@pFBRau$gQ']f6s)Ob?Us%A0ocPmTJ#K1DS7XN;(#Q %+a./tSeps*e!M;)?7=4Gi+L!D020S$4"g^c1qq2\0UCm3Mh:-2M]":bWu!S1c3sTMp)eHiaN4g`P=iY!\T\bPQm)/Pg/`DOb1i;. %+[*@^A;26b0*L)N4>I=t#>?QL1W7QH8KjHEG$YG;qom7q4"k./@2P@TG$YG%)r&T`kaI)@@crH\Om6uijjq`n8o!Or[Ye+r>Wg.a %U\"@^6IZ;6:u5!ElO'd2F&0,UbX;-MU.\OD@7\.fW<`+e0XcT4o'rI5Lg#9VB_'JGF`C"2KF6gnH6/LcjA!@T;EhD3o8+$0g0'5_ %HE]WF<@6`!['dW2\]CqKO*@g!L@*Z@D]VF@3Z]QS"s";X2.rg0pO(>O^i]p)RVcc@dd+IFWSD3Af:sPn$N&"\4'N7ZqaS0T8Z#?F %Wm9n,L:u!"[Ircpeagk8r+`CVp=sgHO$u9fT]S#/hiRVeLdT.@R9rH"Q5CHunYb.%:*-tq3=1(#b:E$Y-iZ\Ge_dEQ'5__rqd8P;h*SK?!?(h]&K*opuKFJl=dYrc.jZXHnP%q %0C/+:qUo(p8::)3e5G2RDf*k18>4]"U+5]N)smh4(IsB,;/5Y05i#aiO/L*e#$B)a?1s^Dm];3b;9,If/%uRQl39DsT&4n%.1Sp<&nT6fTK">#'BG %\Dnm*3bs*C9"_O+G-\#[-4?'7ZkmJ.6L3;"a%MrV!engBTeqYK!epGu6!8`H"U]8a7:cMR2ZpR^6tHDQ(+=E6?K8%n$e52a&d=fT %^I],hP:6E4&qtt>nQ)[^hMj:`G\/OR&r#."Ur'I(Z8Q?VI/-Bs(+<"WMol+.D]_+7[H>kH>$TA1T/W!!`enfG5UBgIa6JSgpb"MG %kHI3;l9nK@20Uo`O%61d1M4gL(8qUk/nHX6FggO3aQ1]&!u<*gRCk+Je41dF#:_jg[j6*@[;PC]1E>QGgC"1jIqhf=23aS"D0rR< %.R8[m;kL!>5[/qtk@?k]J@5e\mmiD0"W4n\@JuR'FmB=<5_3:$+q*lc;$6RAPjgnECg^[+:<"[MkWeBm/B[a@(mfcW6uV/)k[+SH@nKC'0bMIgTNTsPGq@nCOF":L6\A^b4oN(@q(En?@*J^`i%Z>/\S"D.7H0Zjjqai(@u=a %H,GQs$K\I%VRJNIQ#:n`!Nqa%CE4/k9_^c6BbS6RkTQIMG.cYWGai"'oLMPmG"EP>aMFsiA7+8_.UXT<%_H %k$[Fra,AN+9PPHo751hYRFFRTANHq.RFHiE*Z>o(1f=]CL$<0!+\=7V$(srbMaD1;l!bR5'q*RWZ3R9SqaD[9VR0oS._,%[76Qk5 %U6&Q_"&G'GpGuN76>GaeN$d42$E8a0K2fsA;+N98WR3$h9dR3o8bF$X5X@f)lkbB*P%<9W^F5nD,ZE&nOloG[[th<^OdJE\&f/pH %2`$S"P"_A3(PUAEYuh".'q*R'>e$c?(Q*_ %oU8UG$(K7-CGKt6"?iC-:KR+&M=W@4O]hH,Im2%R>R;Me\kK17r,(:Z;PegdJnlcsD69o.$=G@I-h`W>:u'Y4Gf85fQ+3!W%Ve*BS_SnB4eDB`(Q([,[p2["&%pb=!QP %)XNHQkiZO4CVIO/T_n0#Zc,hh>HMaNY*(.n&+,pk3o9S8fq)pdF)Bk?r\S]F_Zbo`%;FI;Y-FeYO;g]_aoG&^ckK*p+k`!&DU&9?#Z]ErmpF5\A %4Xt3PQsZD?Ak:4+JI#F[cc.cKi*ZcfN(&V9cj?$kHI\ud3S)6l6:npkC&g*]?HD-:TuFFUWfEg$bFY01q0%4hnuMm3e-7+uU39:d %&>YD+W1DC_8GdX:;DRE:>p])(f%!o#Da#T5j)*a+F"RAJ[kdL4?8pc1V43Z]4>->OuK:5-NR<^a,()Ya(=O?`u+(,l2e[&tJuroP?4fA%p,f?k8hd9JfY=&%#B %df83#it800DuCpF.j'?nJ6rEZ(':Y+H*Ee>$dSXTids!VT6< %ps%:\Cg2B'Dh3_00ZI[!Q=2u$G1Eqf]*s!b$7TIpFT/9Z"m;O7-:7W"i#Gj_6]0dhdn?(Fi0+_h+bC3m>qgk0B*@%(;ushJk2Ol1 %Wjbu!FMN8,F[[$0Un4?K]S %%[,%?pZA;u6Vf"@h4'brbu<*7ZE-oW3B1X7"5*o`hE8^:H6VeJk:dn^YpARjm-qVFH@Kf7?$_ZKh_.33[3$2<3qu"(AGb=Q5l(*"13(js"7pp#o$D4;%*\UoBf.dIO:E(oB:\s#pk4"]LPP=8hY]'0SnSuG %f\HJLr[5OlV086i-+DE:j*1H67;M"j4`b0k\)J1pc`8CIRXR=cW:=K3F_n(N"2Cm#F?5T*>rN[*Ad0X&Ji[4#leI!8gtDjr %4X'r?+j0Ie#,NYr_jh^F9#9KCOQUGU3TF&Oq)Eng=q'2m+4r5jBOQX^p&4]-'E-k8DU]3c.Eg/i[UN'k4`>qe1'D?cd7$(4aj'Ho %b'p40RF4c;Pm,1s>b;6FZo&5c(]$e&k0e2!;PJ831\$]9$A'9,T %9T?e$0sTcHpSeNq?tS\9c8K^FCq1>!2iU6/SQb7e0;VHSgom@K16lX!+7MTWDWY#$hlMXjQ9K:Fne^V(@X-oIUd^'0r]#=8r)2/6 %K7;#)%9-Dmg%16XGq0F#ln@!s"'if`;k?V5'mt9qKBh(M#.f#%(S"M\$t5d/-1l"Y>sLm(%#hek#[5!`Cjk*e9^cH&QV*PXfMbuN %h3nbSIP@ifkY8[_^KN?f[IR3:RX9X1$bc/]%oFRR5Z"TO#$$a7BROM%-jp'LD,(O`c*^%H\to4cP/IZn.Q-CfF`MP\m,.*g`/]c[HH %>0$$RQd.5U[X<6Sjckem]!msK)dN?l_7ci"drVr"XuYtu4aC#.<*T5+).`V['PeZS_G.1NFqleT5"h&k)(e':WuOdi/F:?]9m*"Y %cgl4R)iPOS4q"NB&>R4"ca#UBHl+G!I$X$&nRJs$n6,2GoLVN1&"b/iO[XU2HkphU"u0;/pajO%#m`-:UYrHuHt?F-*X//^acT#= %5((qOB(K/e$5cXI8&8i3FY'P+O+P\5Pf$?dHPCiC3b.$*ess`7b^hL*+s`e7^'d0KNpjVpk`hftp*c"Gkk]P2D?]W7i#%>"g8!T4 %>Y06*U:oc+gFZbp[3P[:#nV.]jGRe:Mh%25?\4e,mS/RSh@* %C11ri@n&I?WJ.sU))KFg8M,U&_K7gnP$4a[.9rbaD3tF^[q*]2B+K(1IBRH)jm6CcL3eq1URXKk_/e0_AS]\\:%FJ\lsUB?Y33#t%Mmo6 %a=([3F"lH(9GusY@1JIESl*e):bIIC-tc=(B7;>$f8htd*8P,K)01@\WYiKQ>Y&#bOM?.1,*tG/B\FcCX6-]/]%2b5E\R %^I/p;88B`2)RHTsjs!_oDAJ!+-F7#,;ir?IV%2/dK/"$DjM)7gZY,N/-^6\lC=F-_lj;cm?!&o* %fb;M:Ik7*CBjb.FW?:_+%jBYe!+g^3(281lIN99<=H<[[@q?%URXH]3_].sPnuB1t_`/jX5<&pPh.iBXJh`NL+u.YIPLe6.IPD0!8d5Xh3(AG/"Wndg7S,q4(pm5a+C$&oq@Z).*uOo@M=>Ld436i:Yh9rXH%0q:9&% %V14]fmH'S>a)J,n;5'iT`jD>JF!c+Z9'QQ:8mLh]jKt78gN)\,_q_'dECr+dcNR2ma)/[#"om6IZpI>:oYGa*<[M!!hXLObAmSVci2;AstPp%fW) %BkEX[Y30^CbdkDrnd5Et)F%6-)Wpf!f\T)E7aF.CO@#YJ] %)YW>4eW70a"sUnRA&eUd_F2Q$B6+*E]D>dmo6^7M^>A&u(%?UOCD?tA.UZut>o*_`.1QRVBZKKg]]l61/OnG'E_2^ad+?>AE\sU`D^eTP%":J>n"YK8LDi-lU4[7/PY\*jImjj9/bq5 %,SSKM;.U5YTjo?+\._b3#0a\T0b?i$))SS(k2C?$euu$o\,$a:RoY.8AJ>^om#=ea!q@%gU$L^c#t--blR&;;W1%)l*bW!a0G-`a %mcRENu? %$j=IuhClaoi,",K<_J$S^nuH"BlLLt`mXJd8;"6c1RPAa1L0TD#^!nu7?YWd_:`a3?q*P\_0Ia[?agHf#ZVe5SHVOA9)$;]PQp;5 %'`'H[dbqM/rb1AcafI$QN;!LP_:_t1kdT2YE6Z[*SRWS.rCq:,_;oh%Op2_KVjAhAc5pZ$l%1Z"%\;*3D&Sq8"XhFOdblILE?T%8 %p1u;%%-.M#)P!?%#ML4rBlNdI$Ia^-1cRQ):(iouB4o&s?D"/Q\:>QDNbNGn`2QhH`f_l*%F2\9?r)VLcZ1_ld63>&Sf)^UK6qlc %D+m7[/&SfaM@E1$RMOkM;(kZ_9*cJRQ.'k5nH6"nK\#beXHK!$bkP'_SrGaZU9;hM5g%"SEL[XmZs(IZ=t@A![FnC&`c?o2e.lpj %YN)>6&hN;leo@Ud919[il*[nn`aRD!e:do7jtm\Nf[48"C&A,uAX%Y@d."&Pe-^&d"'n_7_ONZ,]-&\j,=j0S!k=&pT/<8W-C0QgSZC]2kmY.r+ITt]*(0DuCP7$eX.C)bc)h263:2$?& %G?uB[6.-m7b\/3AZK[cA8frnV3j@1C$>tk?cnLS6Ka_fPKN6YK(j`hltopG)g_3&A8a9% %1iqu/q3SKE;.jgrqPCF>-?Sr>D*"ej58H/(Rl5OR/74fW1/6_?5BQTWX_GqkX2(1;9rfKIAjq"0#X,NCWO''JPIL()$(\b(S%O`G %OJ0"iBp6"P3D0!'D=TTpCr0h'djB#!qj(Zs[qV&8%JDAap,;(s]a.acB@!j0?Hk;/KT=k(9#^c]D"V68!N)+h6I]eM;32)lF64(XZNdZ?iTtkC(SESo) %M2+SL_>"-oL3Oi*@!iU4s2%B4)7jf"[$:`c!#"IG:kJ4o_o!E"T`jBhgloe[T`jBh6e<+lT`jBhFBuC!'Gis4VfGSRcPt#$Fub>E %)0::dT@:miT1C_MViuQ-(=DJr[Aq3XK;'Xg+r'_@0Xe(-.^h*@iTS3SJGO6D3lE)G"&g)N,T";q^6[cA!QA>0;E4GS*A2$d;ehAJHIs6ZPY=.n'H)mT*HB=BdGAKSDH+CR]:Chl(X7,@?nd`Sb %/d)VP!t&$M#aE*]YH6A!'g\"XhLM'CnELI02q;+l)#[4bE9,>MUHURXN<]EAYt[sO'RG^dh-R8s#7<(KAsO)>mj_<_^^M/ %HLX$_M!2DNDpmB((8h,^_Yr$%rRJagCZ-c'-p15FNn!H$mV0,X#3$j,hrmV]e8?hpbMQBmH]G_V(;/mAoC^pXKT_L>$ORgC?OB%e %a1ueX^;9L>=LgFP/Z\Kd(O:+Yhd_b8(#V:md=4@ZL-I9<9'E??EDJmNd:j_D\l:Eq%h/X(,^u%9q0%4c`D`30^6K`2SbEA(EmTHG %PIp-TKNdLZ#5VWk_sL8BOZX[--g6%'Y`gut5W@&!%3m5k^dH`GG&=$sJ*iQ0)\_#*&Oi0QKLp72WLD1HTih %'ZBCkb`8[0GB#]]m"/_>j9n`Pem"O?1VEN/GY<'rL,Y_-DfkXS1VEN/GY<(Afi&qJa%ci,0c&7 %_,m80,0c&7Of0"/;%gN]h^b0V5=C)^A.W_oU\R4rgr@E.N96Vfc"2Ts$?7&C4.`-h7"R@jf:WQ@5G+tf5/CHIEqs?mo1AGkNhLt3 %Da"Kaq!&7Pr3>bnqCPVW"-3TRl0U\I9fKR"'Wkl0h4RV=2u's\Fb<.t#*i`QDU9fmM4(Cu]c/e#1T:;UA;F_'eI62+7k)#8UGRTq %1@IU2Y<2eVk+)e9Pm?67@(d3S#/rW-+omIs+:eIaT=?3LG]=iC=)qk<]Ok/?g.,dAlBU9:H1^HE:'C(G5QZ#0Ga.=fd0(r8n_=UZ %accnui]t^54anr<(C,OJLq'`5?5s7-kNC!>G]=kiWT9QTi0=O$/IC5##*%%>lJsI05]O;Gd"&$WkQ[$p%#V3GLfaYO`tLQ#UW3F0 %Ba.#@Ke4&_<&:JUmGZajj+S,meAo,aa,=$Ghj$%STM]q;[#S",K,VD>b3_^$QML2SmM=A4BR'cbUa(o4K"aP@"_XpH[c8-G%=o5A %LqGOR/m73&l(Y?BkNcRN3nkK4F4'QNl`bRo1`E4,R8WBo?8F,*>T3jIGTdgXRDKWc7^ %jju!)Y@(8hs1A;BONK^l57EhVq*OfTZiA"YIMuCCL?Q.,3>H.TT;E]9g!r-0/>ZEcAnV+!s5dM!4Bu)X#\BtsRHBI;Mfp#]TY=?m %89=Lr^P"eF2`%bJMc0]Nqt\d;lT>bdXUH->X81;J7Vacn3gBYuVi&Z5'"%@@\>cu#1gGG6&uTp:;m(!'g0FGb%K#_t=n$Co#Q++P %pPZq_T<,/E`0.+^D%p1`@B+=E2MH/7qq,Z3DGuN>Dk*`-L+q.K1:++&brVAZJ4k/sE-%C2oB_B<*P[&dkSdQ!h(no_DhP/l$ICi< %/BNtpRJlk+:9Un_$I!"I"magbQK.W;9q2u]3.65ST_qNSk3TC)PPR4XqQJ*)O1B(s/X]a[Q]5=dF1)g;?a3ZjTcJ6JZ^jK/G %C/gbEdhs\$,C8oRh:*SJ\%rV-\*KK`7MVuNC'[u'mh8c;E04nrfP*pS-rQ$E4,raQoHMi,Z-u`_>>UGsj;M%SoupV@pR(mShV%+_ %o\NBU-T=bA>m/@/0K&ole^QM-8CZ)@\?bD8aC8\!pt$Is$7?j03bpt- %;q/AX9Ia_%\p;Yb"gPj)[OA":;L%XL?%(1uqoe<;g>:F6lgtU_i;U[O\CH]k,\MFD[\OTV#!bJ1a`%sD>,)+7X6FD?$a%P89:3`r %qM%j]WHRCo`+4&HXe\:@JstA0.%X9Z3r4[u+[b@P[IEb79n-qu@q94U'_F\fume4fn9B#T\^W#pO)Jq"VUXPMEf/,A-14ueJkB7i2Vp]\kQ(-6M8%l"+ %XV"jEc7jeJI0l4<(tc(8&<9dYs6hD/?9-=)*F>=qAne6Sd-D\?AU<1\p)V7rpr]nfITgN!N6T0Uc&&8SLWSZ;1u"1(FFV'.)k&Q1 %-7GXYn#?g@cdF'_YkR!Z[M_'!fCAK>T"lT%&q,%+Rqie_4!3\+rhVRLW1AXp3a0[EPmIFi>O/91@B?/-c!1r:!(,S^#$#koHg@5X %9NE4Y0#Sc7T.[lUA^+PFmCB?F2nu`M>WYu!oPJ::#FsX(oKl6F3P!aZPuD:i[`nk*Y+nGNap-""C]EH3H>jN5'nA5gT.TGj[hKA0 %qr'(fehs@eip$Gjs)j?(jT''LYY4MVpr1kG:F!jU5uUF[4?MEe*k%(fRVN-mn,J]nS;=+taK^>&3)QWn`[k6<0*nuKe7)pR?pAZ3C4W@-'T?43bQ?Bb'Pam; %3drO^TpDW["E^U(?^*tj)7A+a"a3F)TbdNBY4F;U:lC<9Udtut@+8Xq(?jmGW!/tI?/DO!^4!*5dYV.Nckg"R:[RV<`abDs4oi!m %.+I8N<4]6*g8SGePac)r3"<9oe[Tq)Sl`bc;SX$>q>:-R]WGrOFZQS/bu-R(:2c^QiOggl[<1`]2Ll_`QdOeQ\)O6#o4srFO6C^K %m,R[tU4;cn&T:_rFD^<^an(C9WO4Vj>oS6!(mSt)\i)!jZAi/A#+@&3A_S]HY"b)4Q#5m!2IhJM;RR1K[WG5Xc,[-)\nC82V>"Fg %Dr!UO($9QQO/.LGDYg0Dj7kptEIT1VX.JdVP*lJeqb?Fi>Hb/4KY6G1?X]@_P,UC#+O:A0g9@::%GqADluOGPR-inrY:lnU<) %8Bd2W+NY*#X*(KP3Q7,k%b67Y4\c0KlFsJ#`jh5O'kCeN%D;Fp5VfWqL84]:cg)gi/,)"YQ4E?Pp)>YdRXZ;[f_QJ!qA*7rBdXpX %/BF@B/4:1_@ap+'9!JPf7XB^FJkW7nQK4,2R8!=D?oES&r]NVG.CaWejLp#r?.QHsl>JS#3JU=\q^F:h'MB_$"@ %G;)b>/DZ=%:Y!j62jR+4Em7=a3$$e:Bbk'="hSPqd4F5i&$0PAT6N'#/OLj+7&!ho,p!'2K(nF7L*`3oET!0S$qi:hJu68D\hM_] %4@Kusitq^N1,clKlPL.e-(&%*cTW/"`KOY3);!>4N#[[_Yn#p>YJB!`(l!`4WknT?Sh2rV/=ud^e]\l"2VVoQjMJ,(IoDleb(3t- %k#Wg'$qi:hJu:dSL?30I^Hp&I"S4/?%)^h*61QPYai/g>#p.d$rT&bC9/*kBmn.$aGrEEhhN_=_Q=,.Fp+:PD/A_5k$f2D'=G$>` %QnEV;/@m=4F`cF4i`D(VNlVWeO"+tu:p*#Ig@6C8#;LtBF9+lD&q!KDP0lE;@WL0LPJBWJ[!D$0$cm%gJV;Fn,UB;4VMRQV.4V7?^8@(/S2Pl1,nj-tQDX$3e=.e0jKqeF.WA'k2d2U3BAO*fl-FSi %]Et;!Lbk%t[[p1TPX0;'$b@JtSB2:r9$QS%3DS2V9FNaaFnCdhdB^4R21p@TT48+5"S@:82K[sF7Uf0_j\DLm5p`phT[HS8MoWt5 %^,-G3dG<_2oFX6#,(13H.04Z6GChJ]nn]eDhrl'q%X\l8b@k;H%DE,3-&DY02Y=jfgt3S/%DE,3L#6A;_&!-cYZ'0Y?dGQf3?(;IX7$1h2`P1,GJb*7&U><)'Ua,+FaE` %,Y,!dU0rf8N.pGNW#26sY5q3/5/l2C]gWWi!T*\i?g(Q?qlTe]bIMM`8&O/37nqRLo6`Y[nD9e_&^;tI[A%nb5]m`l,J%(/inZn_ %G+"I:EC@/B&L5>/?U#rs61\IOC!0A[7!N\9am-Om%E:Qe@6(b7"=[krdFhT,9Wj_U8,_6[-?eQ#pP.p`rfR-nC!7u;1[`qQ1?!-K4=!)=-j^^1W+OT:] %k`'DdD&*Yjhl_:MD#:ZO20ZC00/uF=j`mqTF7oCrb&Bi%Ab#\/jSF365E4Q[T,Oe+p%35&@ZBO.nLMtKjG49eWWF2_`e6?s/7PJk,jGYTnCZXJbj?#$ %i3D24P0@\G%jGV%^=(oT;iOJp6tlU/+D18ZEIlMIgp1dp'/LK=$?GXgo/kO@#]fFe`/M7Q:[-eW+:rI#VY=uXHFbm0]T>+4K?#Sn %4JmV+2%NXCCiMIbJ)4"T5^b;oR]D(]^4)`/)f-;:NL$^s)qKA%PU>tjpMX-k]:?Thk_VO(Ttao/FKbG1C-YG;)bfMTfdWGJP)hCorFnLq$kM)gb:=o8-a0*?pc+:!UQX3s[e\8JGV&I]]GI(''Ye,Ijiq6crji05$HF5(N]TM0No_a5M0AC5JpV-T&4Va\hFqNte;;JG;IcO/T$(XL./%5P!Y%Q$D#Dr2?G^FS2QP;FdUMI!IHLe.TEV %\_3$kk=p&ZnZs>5cCdr*?tB.s0/CK5fY$Q@^=3cV@tEJ#I&J>%]J"e=K&':9q[kWl"SZ"Tqp>n"5q-C;Rs.e\-m?O43sXX>U%T+> %l[(C++5*fCpAL#%nje#ZQW4)4Y3'?'q"d>mh=Fhc+fl;WFLt7;-_E7R3VV2a<,.Ou-$27@%Wt0X>`JWA0eHuG[KR7tQ?AT>r %jIplU-7+\`2_W]#\h=Or'U8(N,E2r0rroet#Pme:3FNEa]'f&ap<7P";aI,ZQ,ZXuj");KDh_g)s_4-F,< %cD+e)&UIb3SOX5e;fia/kT&1A@YHI6_r3D9#tD+M`?Xp)nNaR %,$XrJY4&Qs:T1F7FPb$..A='i(j16MZQH^BqVYqT0^:I[B>;ZMb.E_gec#Gd1V^6lAdqKe>uf@p?`]_eBq1os&)B.!kUi)ad5SG1 %VOc515\F)Ta-P:jku(*3&W'TlnU!Kj&ZOJ;WgC-E!25Rf4CLW5D+G2(l$?h:%EZU;N?s*`AVA2=5EK0[$sLCl["N"&R-61fnuE3] %=7]L!InN[@lZUcNXk^rSU[Ic/)MDYQo[pjmj>qOD76dL_1s8kG:UFPKic`_E,B`$q*W9Jp'<;Kc>EYLoFE*Tl%*`23>*L<>*p*Q? %\#4BIfTShE9!u(!OC>FtF6X%k.m&!@E)lD1N#XA.Ggt1GEV@6P$d)tWf2PPMgsON;6DZY0X$@^H]C=[kmC[>F$4#e6\i-'-f_rnf %2Y:d'H`);fncYDeZ]la0c]7#j?XN*.%.r.X/DF.U]lLQVUho'/L+6ij:>*Y*%Gm5a46Hb7WntMa+7uUGaU4$n1@[:XmOE_<484(B %bp>XQWp(atrr7EcO6Eg_^\*Y`^KSe)b=6?q?3$d%`NuZ&aee;!1+*q8P_3\9IgHlP]>:DA<-m9.OQ=7#mB8EO]jA-dh6?lXqR$N_ %$jK4Hh]30o&Ib7hbpVXg/A^79X>0nsb^:nbfBDI*n_eQ>2r'!e@loC6`1&eH@g\[VR1SA!Y\5^AmHf0GDkP_>5Q.5)f"H2^[*]Mp %Hea'4?&ka_Y18TeTQAMro)h*Bj7ZckHIkkUeaAmfl6oAs&bN_LlKqB^gmV(k6/8sJaj:00]@agn3gj%RNMRreD.pVWe>i2oe)\Dg %j(L/KG4a/f'5@Q/$4P:r\+AHtlZP&7g5)pRK:ZJOHaArAEU?r%gs-[hU_9>GN7aX)4iOeQl*^&&B4:]$hV=X@-[PXpT@@S=dY,2C %o[ZpGEbu$l1/Z[A8Z%(Fi?K*,?9?hH)C8:tIh2bg[l'p"OK8@hSo4^rfb0X5&7%uHi>`nL//d^lm.M:V:""8@AU`Mn9:=*:F3r#L %Q&7Mqe^jFp@fnC.9>B5"o8ZWQ5Mq+\HB@3e^5$B:9['0nZR'Q=G8^%O'N0\8#L1QQ!u=[qXhqXRDmk8OW.$3PHM8(ZL:Xfad,_fb %QfbfmJ#G"`ka>_[%N:8-ek9oBa.A>#_9Mo&KsdCkKu_ioSij(tN,8FGib@lkPZtmu'U6i*We"dTR0BI!`aj>iEF>K48iI!P=PCkC %QXUYM>l>QnU=!KFlIB,J:fl=`r\=Im2W"Ns8JB?aql2BDPRGeHXa0k^Ci)r;pY;DR;>J9ocf.`<&[OU=VUk*WMj*9LB9!'c1>,80 %pCY*!LK;U_7mnlOfdZ,d+*=iJ_5_o:.t_;HA9>Gp3&OFEH#'/S4B][o)CSQ*XP-7C;)tZ%l9jLdkfOOd3'h:cH&uCXQ.YerSBU#E %c5;m#PAu"l$XSIIebQQG@i0Ll&R"D]V=Ea5[_=0R&i?4P&5.amfur6-mKiCQFQ&YFE-7$/FJ775@s-i!kq[=+bss(KVsEO2rO=ji %HJK`,?"ep(>Jc7\?*L@pKS0a&FBL,Q+[?b%l,%YMT_o+#YUR]AngEW`?*FPq2/\IBW]=p.72/OaX-H8DVi,%8;h1e3&%=lrn)jc=>h.;\;')br'=<.Q %A)B&+SZABcjOY%-h-fgh,e(;N=8m@q\g)OS\W#Ts\"0RP@+oY=p_b,r/jjb+fZo1PILa&r_0.I0rSi1K3SCr^idkTJ'4^2,V>\p# %fGHr%eQ@-EAf/^oQ;:uCV?U;Cm>0?LANfnn:>k4$JrRUS@n8KOn9:]h]=X#l?GbS7e_RWIH"-E-F7?jIF[P[*3JY<bHg%ZV+Dn %L5fR<_,iWBp`c@IH7HlDk'MsWZ5VK0FN#29CLRVn0n9G&LcO_;A %m.8r]R]5i^FP.qr$A*&ji(dki&I_euKb^V#)es"&l_R\&:Q!_\+)[5bJh'&8ofD&kL!S!2;NJnCK` %2&/4+6T8hfTZ+\>f!W$=`P2a89\r6RVib7/TG_W(R)n">%F$0O.r0br1m;IRX:7L(CVllZ2P3R5%[mC!4!&pk"2S$^\kUlIU'PLke\'M$p_T'p!>ab2=tqAgVuiNmp.og %?#AM!h](,D_42"[[VB/"rT8BR%T5YHQekU^LL4C=bL`;2H?ZPk:Y_Q&0+Yg=>#"h'_rS1A.?e;3bm&=iSK7s.j$c=J301PA/G=&u %53#uHiSckqn!Z5!gjQ+I8Z)0.dI:*V0J%=,'la>L>>sq"DMHi:?>"9GYk@oTT7YYH:"Y4=5+KIeJ=`K_CrY*E?%"rWmk4>p!L\>t %dF>"E+E$A^)Jouu^#ZWUD#CHn/>G/lI+N`^2PHTB^S2M8c`?2<5Fp%&?d!&nFf^e4_;>q2B_5LKaWIZ)Xn(sF3&1%.j2J@MrTDD, %]kbk\E9N->+fF[$MA[AF]?kbAUab5#^%p<9e%-5Q.8@1@gn-ei[8u^.2gUf"%6NUHgQQ/3b.Z_!'_f;HVcbhPdh$g?(_1#L>]fW@ %E%^"<\9]i)YVk2us6f0XSh9c:NIchh+kGFA]A6a-X?8m`bgIR/p`=89f_(Q.n%g2-I'9Lpe!l&-"pI53Y,$e[OH&.,IPCZ,pM'E* %QMTWZk%l9ob*HftI+qaI_,H!RH7=:=R_@'jR;Va+@J8uqs,Xk^>\dPHgHGZZKE2sLD/;c\j+;WeWI`D_28+ccrnfg_aeQ!VBkHc* %m@mH^F15IY\c0,'>BUb"BPbeSC*r08j1oI>f\$ng:*O4G5>X2;@anl]H9F]Q62o9#SYHh=',-$G>FXqam.Q`DlUkeP %rnDI_PO8l-'7.uBR0k,YfKGRUk+:Q!9(2[/[7eeS87nO>.;L[NsA(TiH6!>a`o*YmLo2hnGjfiRkZP305uO%7JI*M;)o'%jF8[9S/SEf-\^$G;Dm@[Bib9 %]Z#21"I*-2mE=\<0C\F[F>KcT,aL?3DorrNGXd-tJomXkI+P%6 %jQSF""Oqg#,Yo5$Gt_;+3)r^<`--juYe7B<&]@Jn< %nFq%hmhag1--jtnH"=hC`SfuQY@2#!InNu]JequEK+O?PSP/5H3A+d."Y/`^jbdG-QP>T$(tHoC59;p?F@Yu.Es74L&j$nQ4uu"C %q:iFg[T]o+$`7oJ8XBuM(MKt!bc2ZM>TO3,1$r5*gt,8sEHfbMp@dh6P?qs3DBF:nHFbm%mHiimma>=_rB%WM4(9T5)TUZFme$?u %G4BQrJ_J\iZca*2jqT1<&L9$OZ(pAOOM$`Zg=Uoj2![D4=J%,m97rli8Ii[E2&=uTLfK0@DRf.#?'61f],XGi#So(o?d'Z!N)NaC %pm=$ZgaZI'@(FoMY*ljGJE]@]7=>"e--tAnSL0fs$/Mp;AKjS;?YNte4F;UJi/l2X;0=8TP%Ff??EXCOf2tP%C %"_p#Dho#Y4@-@b6++NcKUjlN0US'F*S5OG@g"B+?n7=p>,>1^nd:D*=6BB98g7!c:/PlO:03q$)!PZ^[BmY2.*1n$n.]M.6\k;D\ %pq@-l]`iSj'\#qk:(1WV=*SY8oo:J9c/l@AD> %o@VXu7[%d.;X5&ul?.)&P2o%)G!(a_lU>7ZdPE(VeU"(0D-tRfNDpOa/ns...mY[-U@Uleb9t0=WX3bYYm.DM=XH-pAtU)io?CWn$Ubb[UXB]O`gHJ %$mh_-_ImL6>l8,XY?ZA/O3B1YhP^;V1qbVZ]dQLdV"h?('W#+q+XCBr(PUNm3/;%M8'6SH/2O((Jen[3nl.Y00VY02l1WQm>Sf&W %P)d-?c!KTTj3m>VDYCAJ#/Ujtr,/]g'LI10S3t0?m1g2D(sqW'oj\uQ]n5;)*N9s>]=igVj'hD.8%2Q=ZPU8)H$"Ce,ojqjp1bkQ %h8@h6s58^EZDfOf$gIBXE7O13):>t<'#&maEYruBs>"4BtTUBP-e.L!5k>*/hem)&q6V3;n %,3Y+3gg`1o-1O*'qTrn;dh%N3>l-fII6_dRhHFiT^8RLEk`R?]4PgS!I3D`b01tRk:#X/(4W%OB,aoZ1#E$7&!NfTas %$j!KI!W]?FXaZA'BBQUCT>_S(SLYg=d*I(canB-!;=#NRfsrf''G?QGhp,e-U(Cu#_MHMn#)][,JKr]obsg9qo[^b^_0.G&G*I*n %ls(Ea1u&(ci=rf(j$ZB(D'dUpV$=QD$Xp>((Ubl8;=8tI4t?9_q[./@66 %$Pta0f<62B9>e@r-Q_\RPP8du%ho1'Drg?!k@i&#`#\tR,c0#9"ha(6`V=BM_6NXN\7n%OG7 %6JmKbjmqHAS2m5FH?jj_3!O-9_CsDi)YSnj!kt8_K%U:85RhKBX11D(%)$KGI:8XTKY6g\ZlED970[MbYuu#E&f@QuTpO`sNE7D% %=tKqc;bS5B=1`4GqW\P1^QPI%cmHYg3]Ap2o\-oKKJQ+UlouTNule)D7L=Z=)DS0(ceQ[WaH_7FD))Vi%_2BcBl?!SgJ: %GY3nMCB/J$)D4nrDl5Q@C;7t0.St]:uQ*uqTG6'19Z.OQ``8($dK/c?>/M?^F'uiIW;4hqEZpK,C1?u"m.O@ejaULiW8mQ %=$?4cg08WP0)@gh8-F'JD=E9l7LQQ[UrWk2);aX$JSA5gQ`n8pkc8@@?aHSc\^l\U"bu/M8fq.kK>sfqC&T<.mE=]3LfFY%F4(Ib=Ts01.*)N39%Nlch)H4r:$)A35_PU`DJ%1*+@aF[d%@C*7@o4#L+5;N7D6NRUS[!?XF%)6Ue+%@Xe_ls-t %Q*X^_FBWau@@.F\$%ZNn1bGu\:+"4cA9F](hD[@qk10@K'o([s@IH]%!5ko4QoGpPEdIrN)A37u5Y7J*YftNb;8'JBBQDhoU![82 %<'t`9-[r3A\UN/Z<;oWQC&m>9@!@PT)ob#K&b^krK^MiFoc]5HRHb%2_VZE_22-R@%N4!U3NM'NDK!dk9/1T85>]E>I+MoPY[Sq%f6%dQE\YA4)&fM1l.nq3=#6eHJoZL1$ %:Tbk/$1VcPJb]Z8]d/0>L4oR9*lloe:MPA0\1d+G6AVm>Ot!^Z@Mue"QA6E$nI])Y\([a+ %N2*WcEo8/GQnTDii%8QIG&]B_RBs6\W;:NMg*iBdNSlr")Io+El%-]IRm!$fPHbKt*h0Q1Lp7>_=6^j1?22!21hF._R?e`=q^*`H %OQEIKolqq;kM'D2\o7AQGh#`6hiP%HTq6\YL9[F_cG)2[7"q8(=1W5hods!hlTHppMi2fchpq]]_g3$ %EAVjTqo)ReV2rk@NEpLaq:'P,1j3"XmTb,3gl,O%ls&)\YrGnWY>44^S;a%3^Zsl:^Z&eQ.I;+q,,?+QqiX8kL/A751i]JMS+>-B%OTe)Io9R/;O+(TUNm1hl` %=MsbHc<<*%S_KpJ[]s2We0*Vn`n/0J]]W@[gCLAT[dZa-XO.=J-4F[)B=bcO=cFDA7'GW:Mj\K@EZe)bS1%*>=mlMq,NE6DfMN>d %NJrdXok"tje]:c[7//XKj;"tu(#lTG`k4Y3ZpOC`R.:U5-VMuX[])ugdL'8S7ML-%FD6H5j_CY-igHDnYE1oL&3TE_H%kU!KpLnU %3j4W.X\`*!Y[tk]-c`jL*T>]Am)edDNZq\N4F:QSGXd9G]D+4+ktYZU/AsN->t/FmDeE.)`ieY!e#]=L$eFC3c7\kY*2Tp`cctD^ %)]pdk?BV'e/6G7!8J22`NBbYl;fM)snS\7;MfnOrNL+1ld)B\>NBhhELW2j*Lu=^.kntE^0f5JDVD+GWQpTi(BoV(HTI?N(^3^[Q %Z1/DF]0nWhcK81!A*"[EGIcdaKp-9cU#gKpWat[=H%.3n&-0Y;DVaTXpZlg6]?m>f?JH:<)c^)J'IJ-n2tG+Ga'(H8EECX7HIm>r %/>2aO0CbnsQ`F>(=[16OcA'C2=BKQEltgpa.iM[J't^o4Ubm-HD#)emd.>-#YiTZPdbc\n_cGm^Y5b^iW#XZt4oVGBd=7.Rkl91N %/+q]D"o>FMA%B"9H"=4%\_;LdfX]B#_VF1jDWa?%138LX@#NY8^ClJ#B#h4c%+3UiY6j*CPZ'*B:qmWqE=0!k# %e$UpA]/Q#QkdX_a;pWK2/Wu5!qR6`n!O&HKBRW&OJ0I=Y#h%DJ`SJ;j`?b$KDir]Tr=gk%L(P?#,@hVq@gkqh'Vf[FbuC#@rKGHk,l:S'%Cd?e*b=0=t<4a32eI/(7t%%hPo%r,<_J6c5>/0j3@+IL'aIhdh!cq;JEcfHX/QDR0+o:[0)KK6]&& %HrCPqY!SN3/%4+=Vp1"M^!b,:0=]:B_FO]"ik\1iUEFf>n\@F+'P)7$KTR`VSGKGk0MUN>LM%GrgXOVpg50Ml9iJXl21?WJY\=GJ %!-n-E"[a9:_JnbW$A:B?OrVk-`FPFC2Li^1_ht(,7QGPqR&49&#j]C>o!1tERAN)Z99+_:b9iRoV%5'n01`A=WbI`R\eZoI+'.l9 %C:s:NpL+5pVF]kp[;Dq@VI&S(5!m!*LRK^T7ueSk@o?d6-LuBBO1tVfl:^T'P*N?W?b[:p$q7>9U@:gLWuneX/'osB$ce[q?CoUc %+';=F_F1NC$Lg[tmTYeGB-t"G0*F()>AO5P\`D!b)*0&K`t60=AZFtdY*MB$$m0?th/1;@$]mg)Of,@*Z*`a`VX:P/PK>qA-:!&6Kj5YF,pO'r,BY#nZHPI^o&/['n3LMWD_Ka_H%83V_bdP+p*msSB %d*8#Pd!"31>4?3VKCG0kad(IW>4R %g"s6"BsLa?Y86]7f^Me-D0e*dTYW5gdcgd9H3Z1KDVl,+.%b>RbBh!Y$dKE[BZsfk@=*TF#*Q=2qB9X]r^YiGdJaL<4e0V %,[Z`G3hk6rcqas3U6!Eo&!!iZgA*`\4%l7O`C'g!eESY8KgO+D;%#gR'A-.`grZWWJXojB%rX/@b(Eb\cO3C)SB3:/]d8s\k?\h$ %jeb_f.p-nt1bj$uG_HTOmk_o'71>J^[ei`8O))7sAQ4n`3%C)hRf9"nD@gPZ)!iC6HGN\jDa+085]Rh,/>N2,";4Q$YkKj7q4go8MuQ)MVoisSM;jpLjAqAW#@gaC?Mu]n;i^49iDF7 %l==fB%D70`&OYW`;M@;(%Y9MTZ._n\L7j@Qls:I??%d>tcH%rX1W;FF0%pp9R?97.ZaGpQhNp6hGpb<`B[(;+URlnWlOcMF^l?W@ %`ThFL&34jP=CU>8L<)qA;iFsLIYg&MWCr0on4T'PCRQ*NM#7me@gk)42LanERU>XCLZ-?.Ja\jI7S]s`#'PGeMNGfmc7_II5=:B77",GdVU3B)71>l7)D%X$r-kU:cW@EgbD\j0"io\jU-4dml_b?ikSk]N9HmSP>"9+h#^=P>"in\QjHkBkYVJo8lK-tAYgHY+*VtNDTY1PsI*.Zs %Er,e6plhgf;u %Q/k=kY9q61i!dRFI?n,[C'dq.V/Abm%*k7:U,Ne6gLaisO,58g*>[;^L*XnqJAQ6.*`lOYR\"<^IB`2^=5"X28=d0#j&p\5Bj4ie %[ocIfCCR/!%BggSg(mat'*K@;ZMd@,*(00@Lr_9+HIKB]Km:\!"u][Q$/#ph19361lK`Ua`DBj6Ol@8Nj[3!d;o;>;ZJ(< %3<6liLOf,opUJY[JBkeiOa:8<8CT!j^i7sdErbJuSPP+a=5"EkUGF3ta)uFL`VXeqE_BVY,dtDQ@)r9UD<*=!C&4fn$*g;@1jLUp:4Xt>'0rnbp\(n?7ED\=&0W:k]7h`"ZO$HqHR=H6U-:mLu+,oj/$UGGRdq& %2ZVP5a8`B0+$I<:i3D:hkSi7>W[G0oDfcHVF%*SoNb*uNo0=ar,OHasUMDP:jMik#)I3e$hJ2^AC %"LI$S?P$sDf9L@,Wjr`nLm)@hW.hc,2%jYDGGKP[QM&-TW5[`$YoScFC=*g>mBNMd7gs,UQj'D4qk9=!YndSP&Bpkai16g#I+L?V %Kj^3k\NR=QAQ4->!7]FL#5:mXQj#;lU/26nkd*ES!N7:ikDBpfq=eG46q8g3ZN1"L$FPu)3H!"QKN\XnJS%JNW.eUpkcH2172^Mn %6nRKn5sN=)[Ii4e$@6fpUY*`uoSeSm/`Gr8j9g@NVq&uP_%=aaeKE@>Y+q+A2m4Mdmjk%76SiZ\0opHoQG0/nor.Y@qWlif:;/WZ %=7g]G'AZ8$eZM7i/*Z5+;46h].eND4k_NQc_^`(P,C7q9Y+ed)F[Njtg+'[UD;B(K+iD8"`dV%AL7T3dor)!E#1&4SH;nC_N*)-5 %XuV3=9qO$@et]hG9<$aF5d5I %/9lYn`ioU;.fg)%*#h@eWd0QE!S^HSDQs\71^Z%%#eomGLg0Y*"K(o($0J%dTYR4oa/XM2sQ5P/X#He(K$qn+5DjjYrGKSAg'WZa0/@Aal`[Y:c"lEfe %Z-!mrl$AG(XLaM4?DFSRZ&0>qO_!`S_,(YdgMop&qOk`.2r`Aa,!,"Sqg0?'-*-9h)8fM\3L0m[pq<1_( %U5/lm=OVj#W?cGs3GlM-r*4iPS7*\'5:kf7Ib30fWmFJBRM^&R;LsS_!%ajn>9Fc%)#Se_;$l&q[2qrf>I %]OKAA/RER:*h9-DlqC8f/c#9d"5RI*M>2>sUrHu#:TU(riU>[WCMM,>dCQZZ`a6$/4)2uoR_ZQ9F?EA01EOq&0;+$7a&gT^ib'5" %ra!)F5moPOaU``)5jRF\.qoF;(uMF"[""+1UT#cJVlLK$2L2U@E]c#5]e3gX8l'f*4'pb0T%qE]Ge9eLmcG!@GHL3-CoSLP?kk>j!\#sRZ&0>q_-NQC %YmNWK6[Gg//)U]EOlTnt6\B9nM&Gb/"el2JMO4*?#@79 %aMS7B@RBDD*Xd>.r1,TeS.6#I#X>'\Gh"*3p'DWc,!a`Hih1j/m]j2`:^.::fR;uWdHNe7C('-g&ch%)f";t2K4>*Z77<*-!K*6F %>n7T!BRh:=5a$c'3IQHRd+YA'$'s+98:_7-983Z\Ho;VfmU>F+X7uVjHTo\ZTO[DLg\rAj!Z_[GVH;se.F9gC`^tlEO9-G.F!W0r %J>=.b8oiu4oVWT%la>$or\!96T.IJ?2BI$l.IH%LiMST9U3FEPDWg_o^?Y*lJ/j5co,q1]CK0l>(Xb8m@Ais)lSm/U$NM(uf3Xg$ %%mN9o)qUX,qA1(%QYoRhQ\Sp.XfD>GB`r5W0rE$j2UJOl^3$j*sIM@K> %MU9N[JQe4I:A1HpKS)4#Xc[HR'/QnA4Z0b&qHbPZ,RLqk<_;7-uQO_.p!H/RLV%?sl'=@th$TIsFn%:*k*:66>8`6-*8&!Ic %0YH3-8&!K9WIsm0:?Otrq;Zmpe.R#`,2/(pW$Otnj^LI>:F;1LV6'T)#pHJ>*8HSp@kV9)\c`F7?'u22$YW488ne/h8$TBmkbf91 %dd%bP>(m+[>3fAj+?e&5G<2miHQ1S>ILe%)LPt(^o3Bph2mh/YmOpS>1PuY,hhB5gNYO9Y.oql4RT"6igP;lLS %TfG,,pVsM?q,iYn42"m@D]YpfN$Ke!]5no,k>=_9D'dUpV$8"Z*1dWp8r=gFK8m\cE?5;\Nm('DY4F'oG6C!b9Q:O??Z5W^`bPBZ %D/pRhFkGLiqS1]Ip7hrQ14=Q7>B[05W[7?6rL3_H'u)?[%;TF\82)d %p,(b,Rd%][mXq/4)c2,Y:6d0qo);D5$)QU!kF0>4("t)cj(^K'pm3q]e!;h]a:NL'S7-,6+*)iJ!nDLVmnOqJ?+[WBrO6Igr<]g5:D %0=:>[hieN,j>r7om?56*8+_CFkO:,9(/n->:IB=I`;Tf6;-,pR@bP%E>nCOfUPl?%=e(NS/P5_G-G)G:Kkr]Z19,E[UJ"%$)W!a/P*iZ7>5/VIBUp884C_PY:joPXNaOYNe-]f %TPIjtcYL]s.@Bpdp_cCk6%9PSF?b!`TpNjep$`hBg$-t5F8rpuJp"%p&8)UL%DUcgHC'g;1o"AAB$&eH[X1!=jHWR&_ed.u4u#R& %6o+8$(=3%e?LX@eGNX:Co_oTV'*-)I\Fn?WI&d[8?0gY-J9NID4>1#>2WuU,VJIi<$>17#2JTJG7bDRB& %Ip2!O]O#O0P_\*)lW?+N]*_NOLN+:<7<3>q.QhRk1TA\4XesAGA0_"TG^;:)0;YSm`$r^(qKb\#K'1n?G?A3/)u$OpV$B/i)p,4Y %/3:i-Uh)_F"ZMKQ2og$k+/a"bB0UQ(lirns/Y\$-\,i'M$LKSnETb-s5*^:$Co3c1.n4ZA9/!"o@eY=cY]kY;QdS%olC.cuHdpV) %p1kL-Rfc:F).!fFZ`VJ[J'U^PjgMeV^=c+b&1/!&VB)M/,sT_a4j6R-*!Z_j1fJF.hqFcL?!PFfH$sd)<:5r!XC!j/1?e]@:9=mY %)FLjce]+QtMM['CD,b`)"H]S-Zj$=/B`Xk.$X4pQY:d@7=c%A/je)BNm]qsuY''JM2<-.g!`nSsRcBbn'MWsC%qf/,s:KR7GV[N-,6;(F_m6C$#E3>cbaAam"?/dtP7PBgar!=S" %`%IP3q%I2./j5gk,]8ZMWd/8i73#*i7k9c':D`b+-;RFhJ#8Lqg+.'%B.K2;]Dc/NA\)Iag\Y>.e,NU>U:2o*H+IrMR,R+'!*Y(*U>C!Y;krEA?n^OSE3UJP5n[+7,9f,Fe6n*,fS4'-=F/NW#phZ]2SL`(&pcpNG8iVlu.cQWs&cXjgkP0cfKG %!p-XN:>k4$g6La+LVJbV]*kd"gY]ujh1[A)XOF[t2\_mGF&8b>F[P[*3="ZMW%8D+,mF1fdFtC06dBh_RTm[o6Ol*UKr4mTK!<)N %(-5sXi>`T]\HJt)*#G(?Qru%RN[o$R/SS??#*-kdMaTuV-r@g#UC.R]E2I:QJ?SC5g1HkNF1b\6%+N)>$f/p6"#]GE)PR9j0_Efd %0EM>6nCVR$0]E-k0_?RS%^)),Nhga'-B"h@F[.T^q#u:%>i\A%?=ls9fU=7B?Dj^sOd8\BD2PB^P%:F$_2'sIP-!Oqoh)ut?<184 %KM-4SC:AMtW@_)h'3g:Nr?YJ^+qW4*!uP(U+WIrVou9/jDDtMlNH9 %X"'P.?3[(P+SU-ZZ'c]CMeE%9bi=Lca4%@Vlpp]"Asj#&2f73<\6/uKej@aMBVKYS)sFb8GFRf_?'*ug<$cU)g=;Xa]A!IW6.1lW %CP+Q&"%@l)CP+Q&P@Uku%52C,Od@i$T;/dK!nqkW&FRE*CAIjGnGrOK_G]?>qu!mDO6-j%9jZ`65+S@Y %mHY+LLAU2$km:>cjqPJFTEC.W'E20JKG]?'n&US[s'(VSjY;R=pr"JqXngHG)7AmE2a\N9@D@iW&#U?QR)cA[pZeDmdD5>U4@S/pgLTESRsqHq2G9<,g2Tm78\OraQWeIQ9G$qe4r9XfDH=AN %T-oQ>ouF+B3`<)`.((gWm).L]*%@QIl(\i6GPQYc4V\Nfd!p92hK/"#.acsBNfHD$Yg]/GV5tl9PFM@l`JcBg&ANdb,'_,I8pg&O %m2k)OS(%.3n,D7o)E]IZZn7KnQBIN6H[(X/f4@;Q&8\p@be/!nmKF,q;QM]j>(7Gaj$LXLAj,Tk3-PB61,C*=lYO(&)6]m\h^Q!, %Qt&nZaPlPRC\$BVl_6gpki7"4dP8_qpFmgO4KbY/Z^QRRK5q@a:5*7p;M,M$2OVJ`R!k,QI9-T[;>F&N!2&7>W(TO1-JR(_oJ1ce %'dh`(("qqr[o?0ZPH+nVqHIXABZB'E&GNUfqX?697C-W`)AN>82) %$?Il8Qn'n2Q^fVdOj4f1/lP>iEsl<-fOJJ0H2nQ%[*=-qCbolKeLg`3E/m)A[?8MY:.M=Yfii\OkGi]LN1*h0^O`-Jrl %3emEU\g3]R]#8m*d.9#6Fc#^38MY:.M=YgXa<$;ukq[>s+`W?Y4^Hu9Nm)]]Ztu*.IUVBN(d20/-C_.jELs=Pr["/69>fd$n7'*6 %&NMG7!qGe-.WCV%*qH+G2AfgP=Og$ud):D^MF9NRQ?:D_<01gF>1SusA,RJ1(:Q?@SCb27Xi %j9"[QQ.%KhFZpMfFg\b*cH_.@`+ScoGA:MJ4-t4Th.&m'6m"Kl5XZgK\UYE3<-JN#\YRnrO@VGLo^^X,\qJ_Hi%=)$22Q2T^3FIr"]YQ"@fFAFs&iu]5W8H@$Z_Aj2*giPUtGD`9M0HAE10jdmP>% %jcWVA#ARZ1Kr/jpJJs"4,p)hb%;-=W"DZkU%XWUj"#WW5OiTeIZo`225bJ<&S'O.ns9A#*JmVZHnajHj:8:2InW4`f27i %!&J)[M;`:DZn2`J6_FX*&&&P3[].7>H/T03WqJ(7H2Z0[bG?dI`kN:VkYaPQ3804_n*Zq:9sBIC[FY3-QJ*3'HB)r:MqJJq %MEtfU5UWM-i)G]i,/e!kFgOC!Y'"AoOOQP1beQpUM]*O,-NBsQ1'?@Z9[E-_HpgbDk)Mu#kg^4HWa8^rVbhc_Z?(RQItIb$a+c,&,sIW,2J3g"$WoqJ[==Yh6G %ep:3G^@2V(]NQrqgR" %Bjg4a=mJLRl=K]a=4D]dO_^ %R4Bk8XVXF*Q[rN'e9XuZ^#5ebe9[7_iCM.NZNDC8#8Z9tZu]Vf93=?VeINA=dHrf,p,YWe62o9#SYHh=',-`[1L/82]=n-2^%BN6 %8Cd3#%:no#$;Mb_.5]9)?3-aXT$:T7mGZI['c\<6VJ=':p'Qh@QXi;9?GW3c8`nLh7@.s1ZeMODaQ=8I'%pX"D(e\OV3ct>b_sTl %"`7D>X%St\98Zp8`T6982;)E\&`DojWZ/k+--jtNVJ1Tk8t;ePP)654S>Qal$`=Sp^S_IhK;P\BS>Qab.FIrD>.+eQ&I\=`&c"%_ %:R>WgW?oj=`Ku)Eo5r[\(LKrSSCBNi/i,pPg4uU!FQkDQmc9KQbuHGQP[ms6(^CqQ'o!mD,c[aM]dma:8t;denh/pKK#0WUZUP%c %k`j/[0'KWLW:5].l%5o'0"m"IH/eN6FPgj:Wf&fPV(77^l-44e:m<2c>q1qddB5ArX8/D4.(SI;U7^9EI$F3TsC5'F(umd$au\3&maHi*L,8[#KTLMjtNA]!NrdSg5F41c]K]69@@ %`8--MIUHe)+*SNiP63nY=P[8chHLsF%kE.R.!^[mH!Shb)'uIsQ8UX/"jKN\dNGL3h3\ihGLa?&QcW:?ES'3O7!YC2GBrC;[t1jk %/ai1@U)\2=h_]UAM1Q&_\HJtl*#HgQX=P.sa+[j.-,OY19eRa7(!L[.7$U6*OjH?&UQ\>iTE[TdOP/_%^7K@m!]BI;QX$/PF.`_l %?BD$11f,E/hDblp#8gTWTZ0[!.Pss(6SEQ$6GXILOm(JYmkog4nHeNobpE"\XJ`1'GX8'"t+CaQODi[HI&0DNCaFP+`.\uoWX^u!Sg>HA@69O6#W]rpMk^;rP1,/;@qdLc8Us6D6B %RK[=.DW0a;lr2@h2:*;2KcSS,GXck3,AVoU,SA>rVNSLi:tuY>/nbH+-LRrEhTu[H86f::]V-5*O^2*/%Y8>5Xd?6.R]MFOVrU`X %6f%S0R'tS(_?FQF]Mn^C:6qp@fHohk%)7M\OBK#+^r1Y]aHR*L4fS[%LCq% %LA)dYK)n?k79H]9@DGFfM'*XIj%+r')NsEq\WV;a=/oY@b3M7*R;pP>KL)+oEt,T+"!Cg/A*id/\FUu_ %$K/O2k"#AneqK*jC($`S6k<_@Mh2br_L&L^+tW!k4gESWbsDjNheBN1j;M4Lh@,hJ,_EMDco %-Gh1_[_lrKK;%Hs=KWg@_=[J[Ka;I+4r103dej7fo+fJr_4Af&q$Q8t8=Kqc>XQAT8[>j26ZRLth&[0=L6-0F$_FK7-Isdm %`\(P2Dm=J>)8"DZI@B$FV8Fi@>:RguV]N*d#r-T`);]lD_AL:qR9S%am_m)sAc*6#dL3a!f9qS'*r@VmN*WXqBo$K[:%gqB@i*.M]V16VG\(XJ4fZO^)S7-$-R)L*@-f(.I-+YrDX:7DIEn4O!t/sPX2R&]9RRtOZb"l\,A0Y\Li)K6 %ZCm&^.kSWj"oLQ"Nu)VG(1G@'dOm=RI%`-GZ&A"KZsCH4Be"V1*!(G'ApddpSka7=L*T-:HrXB!cclW7>B,U-7b3RQ?*7[;?m@mB %P#lWo"c90S;q^bCIWW6YG"5O,)S<)k""+o`&\X00\'O09g8Wu=h2*-34TqpZ#/DK6F.+W@KcX/g84ePC<&$ %lf)$tjcc\Ve(Bqo\i0YRBVmf>Y!S)6U\LFY_"sA4cKs:?GZK %XR@RKX-7B:LFLKpMg_o-P'eR10aTXT%!CtJ19uVtb^YVd>PEd+8Y`$D.g/GD!Yt4k/4e*H:A$K;NNGCXs0pR %4a@VRWiXm3m*7gE-?Vl2R1(Ohmabq*S]M(KiFksJh3f7hOc?Y&fl1uJ1Y.F(AEXtBkgc.VfnD(a78nAVREm2^7IM0#GF/9-Zs>uZ %qKs6&61,]k6&,'^gc+_*)sZ,N>W#eKcLtn>a,B*V>&gCj3Sr(I1>)HkXYY4JY9m=VXQPBNFH*Khh`.)eR&-Ql!RI`(k\f08j %LgJ,Sk9ZoB3LD/J+/)VY3VF`TTGe[a,>4c3O_;3f6E?5g0f$?:iRQ$1RcD%Ip9[.Zg,sLa+a[Cd,dZYKIX]lBnr;FKCXU:P>Y`c, %Bn\`F7Y,i=/89h7fF5nTf"=?CZpKB[A]cN6:Fe9.#?gU)g!^:JWWlsV4F;*2bl"Qqna+BfGi+Z=4.a-j9@"[On*K&_fO\i/$d:qr %e(=gan3NUN0cI[TaLVZFg7Z_D5)ij0W5B/c+#,V/A.kXM(NcA@G_a3n2L[6:Jn#(G[jQiJ@U364n\FW$Ke@Vq0H5$WclNUhnW>UO %\7S(uC$^H7Kcr?<@V@n#.?U,cCn^ABhD](`I)O#WEDEZ_1A>as\cE#ce:37;91:en''/^sb'P"U-eH>E=3q`*8duG=&So#*;]/os %AZ=>iif-F1_nufp>20iS)dZSULD4sO=PIr0(;,d?)7Fq[ %>1iH72Jf32T5P?8furtTWk*JI=Qlh&i4n+]9D+Wc@e!t..^=)Z]7L!kkS7f&h2rU+da5gW_-9SuUnNG8RVC^U7N/"HoAR`Y4@uS0 %N2&-2`##:,N8L5N)iLhGjguIiX%MiZ58OigH#m6!$fOnrRT_[sJ2I9kleeF]?6!fip(,;LQOGAQ-h-f'qUQrkVjdmB0?74;&RA02 %Kpq:9,.a:M2Uk\B'@A,J1TG3t9$j\*Wp;-aHbEV6Rai1<\'4$"oQ-e/-+D/XK"'(&W)OQHd7'7j*OR%B@`D^7Otd__&`"\pp:X@% %>tdX&m#ZI/#F#((DlW,JQ;Y1cED6OtKc,QApR#Eib>u)F9m#Xgap:t5DV2N^.-E!hKa.-DOVgk;/(Ba<[8)2#n+@YK*o>+,0.L@ %FhF>T,0/W1T*8cLCP,@R%6"&doAZa4+'04sWlE;.Jj.\f&t7bE6`o$YXf3+MCkp0n%>_eapEdkeUt4hnmsaHoJ?`"[jQ"esU,>DR %3\8dGlcJrVIofr[7H8%R%DYGU!/FO*!?4iUbXU#.PH1hie.b==ft#0`siH&5bWW(?]YD.0jVaK./!g&k`!cZ:&]I)2pK:'AAV+gf?)d*AFaloqfWXJPKHQSJVJhJ2fUOnKV!TEh8I.&JMH+;,0BI! %9K8!X9cQh^iD-Nmh8FsCQBkJ\nt'1UqU3!MAE@V.O@ALJH#d4i;m5jO*TE`;XK=@0hcpf<%2tCs[DWdW&u_MZ$kmQ.BpPMRhbBfl %-sarU^:lD9q'Fo5L+C"a)%>!3qe@&np!1_H$Ya;:Dg/>EOj,f'A==_"-!DBk@WqkZUkP]GhlHS#EH*#8Vu)Kaa[Gpc18,.uO2hM( %r8$Ai,C^kD[lQbs>YaoG[A9UjbLQN8kreDA$T`NI+CHuB)XCj>()?bG\9ZJeB3;t7#?ecMWKL=YS.0%#C=&mV2IWm?8qm".%[>U][c;s]+> %'u#klUt>i`fKgu0F,Jd1X62B=pGgF'dpo9-"_ZIROrfYu]?"k"VA)*nPW1_'@D4#\'YE9h)a0Hk;XAu?D+PM:kAotmcW$G:3e#3/ %Msk2ZIO_N04(,+7Ut>kF3!$0mD/s*@:POaWWQC"1`sJ:k/h(t[)0X[4_OP)E?`^9,4`.:N&*?n@Q5PM].+Z.D:kg"N;e`jm&*moW %S[?pbjgF)Ljtq`blj\1heTHfa8o[bqJhua9D;NL,6XtMKL8OK,M5bmEYKY+/4H(hce2c2[m*M[ok@CFX#g2fde_GTdg7T?Mme,+3=B %/Y!)1KU?X&fjVL$(OArGDBr@)+%"TkGZTd^6O4V4%QdO8#[p*YNI:\-'#KEcDlW+U`:+q'%<3l0Gk*$=Zbci<_hXnK)T-Y1f.f[+ %\rgNCI#*.7'>]G8OG6e/Yu0OYo(jQ!DJX_me9hP&kluPP*i=o.dg^$g'h!pe8jq99#p_rOWTNf)jkSnhrD;aNY@N?SDY/3J+=VoG %T:U7XYFpW9TclI;@mTcFh'ga9dh3Sd+4eoKl22O'l,MAfn5Jr^Rr6O%bJWie+dBC;gEM9ZMtS(3TY:Yk+_OoH\*8YDLgHqt04nbm %$iQQIIXZB\STgH=PX/f!PTT9L>"ke4d)5?QEHu9.n88b<'pk8AbM4-2\`TDU2gC*G:eMEUh1.[L]Ho",h0`"oQCBg,/P0L)IC@bJ %W?hl%>dG`5F\^i,3(drh2#f;+rs5\,me?Y,%HWYMebm.*D,IR$#<*Vr)/2Kfa.KgV9:24^B@h#>[!;fNqg5K3E]5*u3Bh9Kh8SIB&eriE^P2Np-C.TWG2e1`CL]WV#h]s(q %L54:)fA9QkV"]&d4de3l*+a)60\#9j#ZXGie<8S2EV\*I&'&!5?HdS.*Ej %P!lc_4p"FM,EsVs<9nnqoi7r*3WRmg,%a)KIPBm]7jNoR\+LjIP;QkXC%*H9W9"e9.-`8OJWG*jL1*_M6?Lpb%ApGln %WRoVJHq1lONlV-ufVdi+GJCRfNW:V]0=[agae<9Os,KE2(XeXpIi&!%bW.eUpM?XV%>s5VI2.85Ns2lmELgj:hD %lETQmK2Kf5qRS3@RJiW%fU!JG2_GBDYWS1/e=q-O="RuE>TSWn(:B<)0@fY$pfe*8?VLI@h]4i@,K<=02,5AL>oW#F]"\5UZ&TL4 %gcDeoi!-ngB^o?+;MY.(rES,K<=j4Q>mV)iVd;*Bpl0/bZ?.R.h\%V8t"=(,5Lo>&M+Ue %'o-Y9rYSZ$ %9cX%iDpf5!#[f?C&W$m!qi)l-V^/K^fHfb5RlL*\M7W@,Nr90(j)hC^EU5VRHRVDL9cX$>ADL>s3%&FTeseYm)qa@&[&Mii/"LM$'&=`h&'-^oa-ikauMZQpT2UKN6s*WXH:pZHu#($_C/&;DKu?]ek_%#`.G %CuJHo]/_)-HkLnIaQSZ/YQXPJ3b&ns@0u'tN;(%pR/!h^,;Lf&Q\k*+\071@_a9Hb(VaG9a`/2a@"&:10p?%6&Ub6.Q=,/1kE;@m %Q(;=ik#]@u_Ll8'k#]d)P*07)m@Cr+MAT-<"`tPC(ma*r&0Z$G$qn*^Lg*`M0=X>mZIhcHr411sc\5d6k#]oub_9I3k#^R%I6(Aq %,kGGHr)I1-UZ48$PdiCu_>FXK7BnI]fMJ_85,`U4[&Pgt@hkJA@FXs!e%OiYqPCnIL/l`U&t3`#:9W:c?Tj'kQ9DIpTW>J`O.-W\ie:?RXYinUie:@9=-P49nNn^;EXP+5ijHQ&?ca+bGTdg[P1WrF[WC*; %d]'.JO0uks.B/j)IBTLIoDL>R,?7Q8)bFar6lf,bD-HmG19n3SLrj?UTF&9*U2nsY8fN)7$-R$]g\]TIMt[@PRL@8P,8\D[H]=<> %7]s*79n],:a@&neLpiohi>5o_D89g!B7-PCS2T[l2>[*$jKqd-$c^D)F1BZrM4u0t;+*\`&Tn?YS2Pt0d'GAVVi<;84Dmn5TnrjF %q0@[.mh-uas-tu6'1i7Hg;l.*Vc$Jh)o3@JH:t-*[PKS*8>aQNMPbDHm2:E^2;EHM5)8EPRnCHRQ %_"]RXE-"hBA5C[-+TaPf"EZYRIngW285F+0J1aoESLgql$1Zs+,IJL"OhM@D^_,607`u@rpe%RUZmZt8@s9aR7l4_3DJ%5"-UVEf %$q934]Y:?]6Nj`,FH21N<@u=43$MO\#Wj-uBal-Sj*>TqrQ)X7"9(=R@!%Eb(0;Y)*eP]3AVf\uIB4D#/OKZrX&!`Dhcnl6DaA_E %rDLln5%URo*45:3kB!1B6,VME7nqOKo'CEXhM$m+&M7neZtL=$fM@OQ&_S"qX-&_7%Z4T9N&/qSN?b0/LcB@$jSD/F%%@3:O#rYr %-+N>:P_<=%oi,L"mAfn"C?t)qasetDC0V1dSI[lJ"_!fW!FeZDFO\sIJYSpYKhq@,''"dsGlcTZY*,%d2-e3);kKnLVqX]hpiNGd %PZLK&OrnijgFR%Ih8u1n`k7JS4ED4'(j`bu=^tdj^tLW]-Yj.:S"4l:0^A+-m\a/^-HSR_q[PWShYHBm[TWOAqg-e.B%o8hSV?=* %^>Kj=Q/;u*l.*t@/]/H3Qdt\kM='cfs$0Lhj/37M'A9q5C!Xc\qqm$jq>\a'NW#.)D)[s*?C=`o2cfH8.[C2e:0>ICWM&Ro$*+1@ %1S>`]Tk67s1C,91iZ!&_j$h/l0BV6OiEW$cfnJJLi,KLqTLh_BK81!oVR"B;c+L*i$ZpL)deC@o,%f1b->Wl6`!dne7W@jiPKH59 %i!qh7%NaL1>sTfd;;&C$@Ra/C&`_fSH?mFhGR-$V22^oD4;J(Z:!E7d5Qd(*4d2:R>R(cWI8kIBQ:]i,DtY=*!Zgq"gFIB!'^-C7 %V9Qj*>!rm8E?fsWhGF!cD+Lrl#ERb@Bt]*%FJGZ_8k-A=m(h/GMUS^"bKXB4%Nk2")8I^'lC`^d!Z`6g:stN!B@s2eTFZ7seWSJ! %3co@&'(HKMCSktaJHVD\Nt^dBarYDNNq_BimfFO%<8&jEKG5YE^J9^1Nh.@c09+2UtTBg;M(&)3-a[Bc^VihQ"VZZ+Y`41TfT]r]P`j/@W/iQoV=VuM187%dCKlZ_+C %a$DJCH$J%=/9HcAM<)["0p-j_6*%lmq[COD`r=,?$@IKN7V/n#X\V#DjQ7Lbs"*GK97IFnm!q=\hBA=rc;Ra^-&>`fjEUAC3bg*e %0+Sf*"KNh-q[oNf*21l$O)_KJq,0lT7cn;InthZAFl?mrnthZEc4l'4kf+3-*Lg5Ail**?96q?S-i9%p]ErL2DY>;^AE]9]cC\8A %/r?(raHp)II=-V>,9G>IA_V,sC'h2q\CciDW?q1Bpt:]ZnSYgL<_#CMfCD.j&-?eTh.*ebSCi/p\]oO?R#c&b4o9Om5l!RVJOom` %lSEf4/$#K.k-X43I0JHu46>+rP-ORf?7CD)3r,_SWJ-D9Ti,B3Q!bMSR#[m^d@4-&VfEMH8o!Ng.pu[T*33WCM=]-.Gn#<;GMQI' %P=Vm(@p%<]jskW]*c1=EJK!Cuaq+YsFmMXimjBX]F_lq%us5L]87;\V`%mgJ%qLNmL_H`H`0a4$qCb%-J5@dhHXfN0T+Z %DW:HJ0r@RKn"=FnS)s<++.?/I1_76=!'X4XADm3SG'a %=9$mAokB$VRf;op#IugUhE]=Rc!R^lQWi*:JhWbUK18J4e'im-g5k)X;X,ZpOMUW8a'&=)U[.MGfD_DFmsho4!P1ILlj"$35)tUf %O`c*A10ua$1[A\'b`0d"pZg;bh/P5X)njN$-hQck\sc+f@adG7itQC#6hD-eTBP%_U"^$!.*riGai)o1(W8%i"`GWK_hNiB5(5ts %9#%<2])L'XX*$MhV,lmARSeEX6PUfN %X*X-(7s]fK-&MGR?>0s1(Cl)(9EkBa2XF2oXLdsF[dH'$0>#t@>KC+^Ue_d./P11^")[fF,qOo94MWIIr %?qH*`Ao-!0->RsQNNcFPeg;1)p-%[)JiLCs+cHh&'.bRCSR,5X+bE2k<+\<]>Bt>W_HZo7o %7o5JA/bdSOPJ9=HeaF-t?i,[r;r*CrZE&$K)Obsrk3d:Lp.GnMrS^o\?#7%n(d;S1a52$r,$g^ooVuK %Im8ntFO7d0qF<:[V+](V7Wm'a!N]>#C`4D'WYV[NdU %,o2g_WjKV#3$%31Klr,8K`*7a,QKP8IkQuFDe$YE?Aor&L?]:OJ+AluNK:X9'F*dc_e61Hf\hggmnVQ-$_'_*V;KAa@-Ef!I.p)K7+@?MJ %9V#(7E&bF""h`FsdtPk6"aps$r@^J$C^/t#^ROE@5\3@A68>!&>iHXc&e5`I+>X\*^.ZkU %/\Ed@rGB;%>*Og9L36>H8+8Yq1+7GVJ00PeRmE*-@G-b=T\2>7^nRXj-sMC"%Gkq*[8H`rjoD%5AZ/6iJgTC*]/7S,K0t(O6-nn0 %A^FOr[@VHI+#4pH_+einEI)'X9"VrMm/"FYXI;A\GT(r3jYlRn$;+oNeNgJ;gktPUj)3%tbCOpn@$.'R3sVY,[$,8n0kt`6rMn/# %NqD8CH6nmXgf:Z,AW3(YH+'"/kmn+9(0,$JF# %:-lX@YFB)3:@2ga)&-9gUY42Ye0I0p6Be=N:%UYF2VbCf8Z#?KWm'cri;VePVF.\Ae@]fT^R-N+nWo[ridhU..7'0?ALaZtDo%>C %-KZDfci]);VJ]`;r]&`a(Bn)rjtdZ"Yf,'U/b)=[l;EBRSl=)ZHN2HY=Z'3E&.!J4t]%sLg9fpZ?" %.RBXY]I"$/T-0^Xcs?.dT5].gi4=T]m0QBBkO%Mc)($bLO,p3^Ch9mmN4Z"RhpBO<^+Qp\M6!Q?s-$K\p[tbAp4'2f4<:D[uRQ5TWCC1S%C+U=W]U8R(H=K\QW[kg7HHn"u3ke;LDncg'!HtWgBc38XVX%uGsi`9&S3YTtO&B]fS/HA4NJ[ %7(0&qf5NP9Ed'gE!A.'&mdD%14M6FNaGB,_B?+f!!H=P7/^5;=+%E0^U*:NJ(F@5R)3QK`?:mM;O?"b5\g_IFq.QHKo %P'rUgnLS!)3?\/Iq6/'k+M"[^qr[2]?MPZTF#mQX:E_:@g/jktj^RD_$l+>KXHI5E3M%ik#&4;$(LQ\)RAU$l %%d4'&<'g[En4-"#7;SV$*n/sBr1!jH0_@]h7;SV$*h1Pl.5k!)6SJBi`k<#:O`W4t67Qsq8`uJE'H*j#G95-L6aocaE6XUl#Cc5: %CG(s^ckuddi)hc=c:Z/?6,/caM?K0[WPF^)n)lPs!iFR_[-$P#&](4?9a$@m)bMIWVB@"(?O+j62U9nIK4arl]oIlS4+`LV$-a)ePMG3D;,`mSS5p1XgFfJK %M3E@0]/C%#noK:Z957c1UEIJ8FTR#s7X!%=[DEFb?rt18[1Nnn/Fl[G(RUem6`mSQR!rpI3/gk$qcWqI2[=,jqd/OM %TS?o0IRUVl@^4liR?$J2%QJ6U&%m006eVfG?>a^QPkU4+b=rc*e'flQr[49DD=:K9P&n%#'KpI*X/7t771XrLc:u=guAZ( %iI:\'r[X]2RTPa.e]AgRHJXgV]joC0,8(:8pFZWN#6!`I&VnYGg"Le&Zq'_foh1e[""K*UBN&rL9PUMt9es&_`EG@Csq0pMYZt6Vm3b %HIfY(R(FNRf"Npu9RU0bDqeSS[aCCPfpp(0)AY[N51SBu"$!9J^e)YuH?+6/eC7[4T3q-#ChNeMq"T(^pOWWIVo(,VRWX-F%9VK(*X.oIc,&oq\$!cFn_]X6?dcXHAO:=h/cF5""2!aEd+gFi?0RoPV09s`%*8pJ3G%0.3GBguP%2FZ7$$@/ %B/)RhUfu*ed6#(5_a>'GEtV+^Sp1n_tHLc`E^g;&KrA!1_2NV+KXMi%_U:rH*@&/-*`[1B`:+s6cs+&->2q,n_MuRDT %j`L?M(Br8nCS(cC$Vh?^S@b18^Y2g>0&C]kh%j7_SUk83pf5J!92Z7^"\hNTf%nVdZr-8O@j)r6,Ff::^H'sP.*WR&;i$1N$; %-Z5rM"$KqT6oMNaQ,rs)D6nT#+Rd0hFc#^3l0-[iC5MM'RH^UFPnrKGU?WSQmHMJ9a`)BZo5oPIbB.l`o5p\p137Spo5qss*i/@K %=dTfd\3tL9QR'W1]<#gMEDc==]1>7Z'Y]LVdq-iL&EW.cj^4a-\mS7PXtFg"`Hf%jO:T[Xe"q9@E@6ekCTcY>6V4/oL2f=]HG1]A %L138NZ+Fi3G1Ud,F?(6K"F7R(RCKh;HFhO?=IJp@d[#UF79R_TK]TFZiRF`R(#-9`m[rO6%^_Ckb8$%\0"f%po:C+X8.G45$tQ_d %8TL=GqUi>`&W+;]R3@FHls0%/6.;?34-tN;"P^I4fhp0D`6K[NdmObjjj!l9#h6Z:99KG`C/ElUG_$dPjjc%CJPVqnfe4[1:rBKYLi8qU %B\k^5>##\NW.CY/OUNQh:]h4NP!f/6oq#''&_Yi46pPV6la*FE24)[bZCWCWGS($80_@\EN#mA3?dmDM?>*62D!uEA]Xg`'nbBg+ %c+Sg=\l>DAmu#TM's0F2HG:0%k475.=$56S.4o-b5SiX5'cj`gP-1jR"L'h-oG6`p.T7/UDQg+O]e9`hbEr,n='qjlqS1lXeqP-4 %"_S$WTsKu3C3jIr>!#Zm*75Fg5sup(1&?PK_YN%f1A;lJ4!]q#Rc,.(Q*nFIRMkrV8(IlOBQgb$g$PL,JPdnudDAk/*b-!'XN<24 %]dR,n`k0Z&lZI2'8n;k\;qbD.$JUns7Kdk9(PV8"U4nM/lU>7Z6>LVs>-EDX(;ltTpo3-D.#XVXF*Q_$)WX4E3'e-fOucH5W`1U_5ZCZK#Oj.tC$]t>\gGffM_!!/WFcH5W`HgT`+j__/A&#),Z %.PMj\ll"cP/FSiS%qgi>ZFj99%AX-FXS&B5=@b,j&R(^iT_d;Xd.iY?kAqE)eU2XL[T1T=n7^S@;`Mfol$b^.) %?7$ubYX>oNDRW\dZ^8r_qPOPGG'gch]r]8,7%LjD?3(Xp7^JF,oBGrUNfVe=hW&g,V$#clsgO>(m+[>3fAj+?^gj %B0f%&&>M[.k6f9=K^C5@hK!c/a3VLF(HKBE!$r3 %;dd%o',e3ePt:q>)Stho8Bqb2m,I'nP+WW#;"O)@ioBG.='AF5=$1\n):2te!fn6G:D"k5e`enfo"WQ'/T/A,?^irHK:jie5U@gO %6`[6/H]5NIihO@rSJS%f\b4IIc-d^q:uf+i(O&_[]GtrW9:EM]g(ZPChBc:sijd?X@:m(&3A.rPf,c`Q>V$k]IMOLb!\o6E(j\2( %\[VlZ\F<,kpj+sP+pMf?O,e1UfK]lS]c\OdBV:)98Ee4 %HGTJI8>$05)&&VYBGKab]AiUud%.iF5(p1e+4Nr%g"8aK?Dg510r&IOMVd0cPX.I2h_BV\#`G7^!LFL:nWZLi(LF7pXBEFUb$%\+ %.&#NJkWQ"JP3QW?V@"e8c&;LOR@fcDZ8Cfl68Ngt+Sm^VeA11"G5h2^Z9_@jc-/F;BGR+)BHGL@m][e\$_$mH,XOoY!W#Yp4nW:< %>B>KN,%u_f0-478]V-2g*4iI7GXF9o_K]U.GXF9F][U-N($G_Jos+j+KINu5\'oo9?5,"GoNbr$^mZ,t54qP>(Ep4?KIc*6H?lIK %S@1(Q@2Or1&T(n=:6&QE78`@C5:lMH`+$9*HQjlq>XQAY@6_&j>XQAYU$EmRf+9`GatsKD6#jGijI>GU66H\X3k<2E0`5(I@jhV; %_.d23"2hd`CO*fO%)QBj(CJ(TBWe;`OoJ\TRnsrV(M5gI?6BZof2Pgo$A;j-*iukV6c+@^r$!Q@:hRR!9,isOIW;^@'U!7qZeNAX %f8s6%3+LRh<;oWQC&mJ==H.YC,4+Osa3-hsEYTb%\N)!H=(oUE2\B*2o"@MA]Hj[AY`YBsT""9cj6a9V6G"l_`csm)XC^`JkX=(j %F1J;olM#-Sg)BGA*j;1?TN9RTcrMjO1=R=2EX`?+nl.trau(GGge=5u9S?9FD=CMrC26.V%B[0(JOETM$GIkNQ_uTcXs)c;oUbgP %bZ?Le"kc_HEX`?DKsNfDjVj;%?BW:h)Nn&e8N(W!0@+^#rF%3._UsS3Mr!++B'`\pNOC6o?+DcBOC"`\)pOm+*d4`\.1JbOk'1!@0%nrRhch3p0@+.(H`]rm9gYtL7.lalH&/q%Pr %B^E%g/t@&i*0"6a[Oc3"(Iqu%_olQ-XSds>oaYlcl=>poalqFPX%qeZS1Mdre]E7V-R?s`Mgb0j-!;LJ0a3;,p?`$sa_o89^'N,s %2F"`4L*s^a9.ZFUo@ib5$>0)W?A[$EWP8`m\f\RZcq@pCHBp>g!Dq&>pYq%DCH]J#^k-KZ?gi3Pb6\;A?@StcAXmTB:+Z8DTssWZ %T%GqUANu#^JCcE"B/4^Vh6"f9oOG>\AEM0J2-^IPDGB9LR2kQ2iKZtX`J6&[Ukcq27@h-50"d?l;MVuWaX!e9g7$6t1Ds:lGAAu& %c=@qu3*VSlG:)'@P1c:OS;n@qkSn"KhO?3+:Z`_d<]<8EQf?Hj(,O#cg/D_!Je3R?<)td9]o6lk+_]gATI?mMH4+Af@bsaE6i"Xn %W3'q'f.]3um]fuKp\\cHqgm;=(=l%.of78l;=8F:=Aq<1m<-QdjBs$D"Sp/g8+`lP%]%44';Z!dl9,AHLAbR*X-)p"PXJRtj'lP, %X;J"#aYftk/!OT<]L)>!66kTN.Bh*d#GD;q$c8C_83a=Cds.jXN7Yj"cH=3-t6#gY\M?6OZ!Tu/TQPul%uuEu(8nF\=SYD*konu:-_Nl9V1!*j4F&0826+(r-qs7eCP3XJ>j:bGCj>e$H=b!(`LX]P.u5P$R`j55 %[&fn_R'P]DL>7mMY1VFsR&piKmY[PEDeOKLMnJ=mB,]beYq:`6,8IRIm(!$!cBr.F$rO;?=]?jY%<6!D0cX#qH;U>;HT`5on %QEeKO9E.[g8/5?;X#f/TT"]C+2s^8]N*ro5>68Q5,=saY4,u0ViTN%`pC5`Ybq(_'qk6p=m&/)7%]pJ?Ra/@9Cd8 %Y0Yj9gA[<8`u&.^i/?AD&";4oSt\$<-'pL6*rBlL\s2OXF<9D(@gu`3miOEp4'>;0Y2?r:H3-DE0Cn<;rdI4:H3&JQrq-$F0DoP3 %VGW:WZ$^X+aGX=RKBu*49s#[q0TRgaXD.57LpZ,FFfUk@#\^WXlK)HKQG:,ihG@,YpB*Rad>&OE*7=(s^l/"/d?>Bq`nS&E64^a> %ISS9g?\,#4S+-Wthd7Z]GraL[!4[mt>lsf-N=E#C3BGcSGcZd6$D_9E&B1VNVEemXdEU>(FV9BEZW((Po4#Bl,Hrtll26SYZg_FC %V+%qsW,Q=[R$;<[>2mUV@5kcU %@H,Nb5mg?1>%.hf$,)Iree4aA9$8m(RN/Z"R"A[cmokX2`^NVP@,mUQ%B18Ypa&H8Mci]Sn%h3#YIZc++cpC;H6+`-J1LsTIt41h;B(R:FeK=H3S0_M`HH]8ISp4![=M('X.>I5RNj1Nadc^\Q-A,Rf1=H] %mMl`3GWY-,m5<+@G5I&QP0b8GUncJfTmJ>FP&Butk<4+VqU3!-?;cZ"qF]Qa^,\gtT8 %2G*&e\a.5(82BYZ>qZZj-m/$Hau="A#2L.qX<;3]t+d %^\8rXfYKq4cJh[Tk2[>R!QDeCFYRppan=u7jOD\N2V.-uMWWILKJgG=f4Ydt(UW8l=+h7$h@`K_FqjIhkT4dMf_*'[e\Z\7D=:A1 %HsIhcr?t2.mW#i:DQKn*e_M69Nt^aR=IYi5;1bBXabCJ];$(E$9q3>d=)`?7`o@e3e]mhVC:SWMi"a%q&sS$fLKBRJ_CSf7"hoF) %fGcai2ra`n#`E]B.KLD!lr\t`DhF<))d&6q&Q!./%c$rKb`nt\Z`T'<6rANX6I3*hV5d*LG&PS&*e52l1&UaI`p2)/QRP1gZc-OQb %j/[6bHj+6Cpdr2YVp]_lGOi;blhdC(5@;h9r&-]'7$Vk23^8DSDM.mG32`*0`>.aKacs3qZ8PTBp",_W*L"Q'+L1;khaO0==Jk]E %KH8J+G_+)[o&3^<-3ch6m:pgZ9bI:]I0;1+h/t/RI9: %(F2"_:Qd9)+A'=s1Hu?0NsR4*Eqj@q4XQmGa\e*eSenO58IhI&^FT*r,WY.Pn6R4:JgZ"\B2Q$2.a1'I5^6 %-1Hi_/P(K9$R`]BSk9Ru8Ig3kADW"XCgsB;f_?c>o@k*/33EDFoJ0Z5uM1i$Vf:Z %rVYmC3q(.(_e]lB[.os7iY3;$*Gs:NHBusYQ\XTUS?^"9f,[Ni3je4*\h_A#gd-.cr"\!m/W8AD6$'%p.H4C'Q5Sn#t%n37:QS>L'nW_uYdVLRJTK0/!^/^:0,QngWf/U>`3p&qD:_/.a^Zf+OjU$%,i %.,+>&]XBiHr<'7F].sXf:kf#G![,jNGs\1@DiTD#TRulo]FGC`rm>B]YH9Dr8*"ehi3i0GL'1h8Y0SKdRUb9`'KV,k$G8hU'd+7& %qYm.F>Mup0%QmJ1-tD3.CkWHe_9r(s\Zo77Lf0BH'Ef/%:ZOCR^h`9SnW(9E(jHLH#4_>)S52Wj/$a:KNu);%(2k(aTJT/HiC>2-7PH#ib>:-4%$31K?i:(4o]Y$H%['Aegrf2*Csm)uIH\eb&'@ %nnaV!587#E,K\0.AX0s+#BNJDW5\R,WG?f*=WD0"mr^iZE]hjWlBm'[hJ+44`?V9^!,<\+OX,iP/cWRr&[9gX+C$?([?.l.,`>#A %jI/[B;%(2k#kOoQ0P1@*GQU\#M]9tJ[A;k*p#9PWB_'JG %V+m*_d^?cKLoq2hA*tW,r4DQ&n+>=FkgXkN1'8,\E*H=*k?.!)1cEBj`F3k2:g?H %P,)f7D6le_;N`l=Xpr(,@jFVN?$!'L%@HnR8^auW[W)-WPU%9PCO8VNHnYIb.nno7B5+of[e63jGBBWM(7(X/#5udK052:o@2\G' %qaeoIKk3u69[$Q`#5cMY19llTp#l/Bc:]MH.h[IS&r00)RQEd-i-l[CN>#CI&&ueAK+lu)l/9FJf_-9V]S%*X.+:Z"&BB5e][_Ib %2i_epaaU"#iBdli@SbD8Vh>lCd)D./$Xq_s_1ahQm5L_17pI0ej9,KMPVI.M=]5sceM<:-XCC4"^X7CQ6OIa@gM]c^I:2#.D#92; %;\\*,[bp:/"l[NLA<7S@Q:X[^;nh]A5ck\f44QcXL:khh4.X2OVgeQ?t_XC'E2EZlrP]Y+C'>d5[q6&t!3lA1f\Hd0k;a %/-oC;bGUp/?2;XD&TeZeNFm%(134NlJRJkRK0aQ)UfPLOYNXd^nJRX#IKeP;>Src7I`5h2*)`rjYqfj!=Su0-E%$X!,Sn:, %@i_(!'s00;(m\QY`Rs@_1G!>.$qi:hio#uihj'X=$0G=-2Lq1m8oOlg5JscB2H/9'(%`:%_QX17/+?O/?s$MF7,2N4*8h1qaF`,6 %X\!hd(m\QY"\fe<(ma(r\aE1Jc`dQD/,3DlJRJlI=*1S;8Sj,-Qs]Ak76qa`E4=PO2rk=$AHqU,o3kaqlM=ISSpn&RjQ:kN(or00 %9Z>M=Y9;&&!9&`6nmgdSWMXRaqOYc;$fQa^qX`rKR3&E=O6C^KaL%k^.VRM<9mZWI`P8D\X.4S1e]V]Ulmi@*ADUG-$`S[5OtTl+ %67S/B)ln38E0AEaX*>d&?#^[[ojr>b#S*.6W.'jP'):Wse,KKY"5fV,P0sR!F/!^/At\DX?eNE?Pg`)]9Z)uB,c>LFdY?UficaGC?FLI//r]X^DuCt<6gl!E %LWBV!?7$F"jP#34_Nt..mB'OfrdrR]P.#lF]l[P^,aI`5Y`Q$T>l:FkM9pAO"^g:tn7Bq)[Qu4A2*sQQXp/-oOtP+508_!#*=l,r %T&@f+Na'?O)MEWB[,g9>(TeXsh>Y:qHo[i94So2qQNMQuDmA59*W^XKTGQRM\:Q@=oKk>u/bmJ)*d&+Kp$B4BjROgcV(cpERQP6D7$e!uLUBcp8IiZ8/16W7(J^OrRkfeC#3YG`,#NLhm;(@>N8n(,7q2`Ie7p/36;^_%<_q %0grHsN0tmtr2(6a87.RUE^[:/n($1JW>\&Bd6d8@HaaKA=#rH\Mn+W; %7L+p%1P`&Qq1Pl1`t?-p3FZBP-8!I33$NB`^sUW.G+Dp`3Qhh)Yjj^t,sLZ0=/3%nZd[gA!nkHO$Nj;AXF%HpsORBGV-+_7VTq^+4:N0H/r:p\09oQ8Kl %2AK56el^YT[93^GrgojAC"oH,a`.(r9AATDlfCpQJmSh/l+mafR9Fn1d_G6.mMgX\):!2,SA.#)\%E[@p6o4IY<#jZ3ef$Lq6L:; %0.#r!rA5R'p\W/38EQ32?kj;P_7;]qYmLf:\2mOk@20D0K,o,GC.9=#USr9^_gu]1`!fg$K;]Z="Ze!Ro8?#]#V=?-G2T2VGT:/s %pA+h24MsTn$o'Qk*VDL=`"qQE*NZ%SgmPr0I<'-/%m$Zu`/M/G>HEH)4@*&MM-kS;/I#ai6R'^ij(t\F&fj(E0r#"rn2M)_js+Il %Y(XQ#(OHL.n2R2hD$E-OKgeP]Er%-%3d;WR`_&74.WhI#kPutOkhs!U-to%=A](J8cReT;1Z7>WjkpGl.Qpl&:!5]F(0C*OB8mW: %E-8/>7UW(Ede.?-!T=,l?d&MOr%Wd-kQO",At[cZ^D%.]keV#E[P\&'c&+.d+'k'.]$\/-%-^%[^*Af$LN=3-NYi`m0IXBL#ibb6 %k""=H]&#a22^IJ#CNk:-[$S-]p2uJ0AMi;7V;`(h*\WGEb+$+@^pB\[I'DA9rBf?JG5^FO5+A5A4HO %q71l7C(=9NG3K/k+a`7$$?WAp'W48f8q@Jh0A[$V.0Vbr,]FV]#L9M#TiY^K_62Y:Sttu3frWnRh)[.\g4F?Fme>rm[*<[A&-Drg^nd%c,5BOult8VT2>[ %Bs/?,O'achAohUmbF)*@UFl'tR(OqVg,GXXE@Y7qGP3Jo$I7tK0QU'e7L %&`VU^co4\&rhBcC<_]$um[Su;6gM2l]BQ_uM\PNoIdcG>>/80._1GVen52a.p#\S7`'+6n1SUFcM'ULEEqYoW$(u"G!.[<._)doG8C4. %dIgek(B2eUrMSuYkB)+R)hD+5IJhdPr49Uj\7sOEnU(WGVCHjlVRH$a;SY@tN_6C=m,FR78l)3ER(&dI8O+*3P/?l!fg[c8E %$9?n:6F/Hm\N#AqJ@VT:FF(hGjNKJ^+a-YN:2^DgB$*:5&`O$qjN@AmHd8[eC4=KUA]tRWjc,!i2V'DM"gD[p1YiDnEFg$].BUu<@>59lGd^2u&qKocbo)3QUBaYt":t]B")/SJ$W-8J. %ihOf_i[`]_osFs)5;FS![Q:mUh7qO`n["?HX3ut+q-!`r1^>P'HbIkRa9Rj+P0YBW(klEq7q8<]Ks58madG#7^GBqM+X*/WUH'men5nLMPD3)+1 %$bb&MhJE+l?a%;HZS?_A:0pc?q59@="LRPc5m+mp0S%WP;(&2k:G%dF4*t]\Xk_5U#(WB9fC(C=Do;/j2,XGcU5I*\cF.CQY.M*uVaUbkW,-`'E-ZpC %4QY]HXKZq=[Y.#\4)oO13PkE.oCTM-b'LMH__q];(?B5u+W/YBH*S7KMGJN]9`gC?HXOI_$6+bP+$!Qj':IhOA?$dIpgNSQK4LpM %3ShoeZK56kh_qo6nAO=uSkC0V\6hK!1Eiu?hr090eBG+U?L@!UKq6)aQb>lfI)F[aBfAdpN'6Cs^XL6S0;[JinEoQ*4815Ye]1CV %[*4&$6%[,-a+3\EQ!OseFCCo7e-ni#$@F.3\XofIW1l;g_0b)a.YBi?f!kj4^^5`3+aOXLCH4JrW+;ru2d.j^f,p:c&S/WWP@,%NS3+fDhHd8#;d5IKksF"@ %G'1puFA7oH(aq*K:D\3-Hrh!7h#(b.qeL%AMPnXf/so:6@sY^#FmYl;h]edRQ>Ylk1@6CB\\Q6%?re"Uk;&Th4MA"P7dfT>g:5o+%XWQqb&OUI2hQ"bFEQr[]?p.9n99_4GF>M. %hqs-s"pMTM^r\J$mh5$UnhoRR?:kMaa#YM=2jB\ko1@PaN%>DCFXa=,GHFFC3Oe_&W(Kl=M\hZ]\hgp!Ah/YO]%gDI2\4*^H"mSi>gYPag\D[7Wt^\i1Kl41N72iqeh`'idjPXq,hE5/.E<.^*Q#2,ce$n?ZCPpNUf;e[t[+JX\:"PU_i3VU-3UM+*=lF)bdI %<'5B1Y9X#D`)uP"#bnM,6\hcriC[A5DX-F;ed#0Oc[k9k]dqKWCA1@$rRLr@('r1CN;[:eBW,VII(WSd.+LX\l>WhK#-6rp2`K,e %b!%[+"%5XXd7Mr'IdV%"T\7ibE-;K8&W+l9CNMZ7Ki.7Wp&/>'fWZjH'=S"2e_k7^BUS`.%HC%_]`kQ&2Y-2$ii*W*B"9mL=W=*/ %)9eDq=W7sGR7gj)liJtk(=[XWUNp!e::c'C%?.i81)^NB>08'1JBMO$0h[eZ!_A0UX7 %"B]KC;uB<7=1='DjNAISRucEC;qZ)YbMHo3a7J3N4!*mcV)!_6%J)#&\OZQ(G7W%_G*^"W-D%['+Mu+fHjRk8'F2PR[nl1)5D,gs %fBn\")L]*_#5MGKF14ZLps"u?:M+F$Yp):G?eF2rCegItg,u@rk?Zf;jDR3/+Ur[9 %IYc"5dgG8nVZ6jtbD&g'8([-RS%f*&=\nkB5g_/@*!AJ?P:"itNF&hNi=_m=_p.7BeO&`IoE>5SrhT4jZr4O.6u-=V^"U@Ig%XDq %a/47q31'a\*.[e(1Q1%#+dW?RSi(F]_k"2Z&HcW,^+6ndr8(.t)+eW-b]cf0'#CF%R-hcTF5&:Xh2C%Sji\ebn"MJ*Y%ejA`Xpc` %V5U+K0^;U$j1lZ-Udm0)DOghjfD3V"CuVV*UMSgWL?Hh08o^i^3SM[K\tttPl+SFT-3V"r?S:lLeHC'ep&&d7BDDA9;&tqQmB[Xm %)2M4[*NuOt2:,3@AGWAt,TRE$3mAo#(AdDn]LeP[*/qB@*6^e %^Jed+=L4N.=aPSLeKrPj"aN]R=-l$F(F84aN_iJ4^D!h1b#"K9@5?%-9&Nu.Ln5PDm:]=,*o.MoSXNhbO=[&C,?Lfl#M(+>G=5cQ83CCs$g3n %!KH>I)6H-e-m06nho-:f]'Wb##\Xt8!,.XVqL3aVS'NjTp-YjNMint!B]jE>r#A38Y]EM_'&bE#'p:!#c@pDFPs:H!>i;^P*8a>r %F"+,mUe?T99C\?j8[3=cWa4&gH%r;o\O1(rDRTQ]=W#l%]-Li_;,86K55RQ(V7YcSR#^[?'#Ralg1@U];?e+JqN.O %feS#@4@>4CU-b+B0D'sVX0CpA(7:rWTJ"m/Ll&b9j?3fnO\cjqad14KeJ;@b]r8HaVZS5L]\r(q&Hmhf(&JQ5M8Y$#h3;:^ZWtm< %/k(cFEd9[J#Q%-uF'N-J'-rm%Oom`cW8[I@a:$LRL0rpEC1-8%W$&graU?V&'+^lCC4nG^$0)`Qo#CK>3DV#hN'IhZ*iu/&%D3%@ %hr:5**:_q?QoLq0,-og(0bU-+k4R!/e&:`#B?D'n/A123!I/fF1AF0hj%)?e1gMfDG>W`omm@qlpHZ@_Q6eg:AVr"7CRX:+GOb>Q %Gj^n_22&qDg42d&SoDi;3Lm-Xg:[\Uf;te6$f>;\;Vs,pF)_LF([DmfRi86p$p+>%8:KNG9/dRelL`sJBL^;V>b#TmDnj>n^j.p8GH&4!-=2HcWIgU#Kd)<<_Tlt,T6't)$C0*C7;R,)*@AhW?_olYV,;?N>V %\:U3`d.-&+6p;fggP[,8Lh7JIh-TaKG]QZ;^Y=Yf*tOdW,.bJOc!HXcN(Dc2FAGt/_BGhTlgMkk,(7.XIS7m?Y=P6;S-;V?o+L!G %;W=!f7IkPg/HDS%09MhYHaWK:2FVu(nB14RjcJNe6MHl7lB:>p![R2Q40gtS;qZe$4C)"I5to"NQ0k%$o+UmOFK3+Q@Q[q^,(ffm %E-o1q$3'&\4p1ftm-0+cg>?H1FCCMqjm&#lkp#gI$28O5em-m#860QJK++"VCadU;]l:u^bWq.Qr'CEk0Gn[r$Ill<$hdu)#&<(WNin;q %5RhWBYH0tu%)(#o0/l]0IkER;b72t*hI %L?L5ni:tsY]D-^dgg\ZW[9qE:C97M?ZYoA8"rn,NFIBi101Hi4h^`@HbKMs,(L!$_dpK7)>p;,31BZ$> %8Os9n?!g=L<-C(HR=PCcN1*(hZTA5L8:kIGd)EU+oZ,7C0-\eShYgRrU7iGIn`d+adEi;sUoCF)3](p"9,V#CMTW*+7S=Doer'Qo %3=U_JCV@LeQ:n%*T#^&UV[CQ>246'VC:tI#?a,PZ0Rh!JI4>*%?4=7q67^N7=R=pu`?aL_3Xck0DmFBmSNRI)-VMW?F;Q^%U3Ut/ %i;)AOI/UA!k2jE5G?^@q)!:J\1$'=.MRpk_%"keBmTP1D;t*8B$c>AJXsiR+F=57c@8jjX;IC=G@XCT.$ %LB2JEk/HL%3k#Xnnr.eN$_p;n\\0CFf.^aE7o6@^F8Zg)("BD3[NO2k^>Um9\V[Q?bW!J`YNi%C1Gr3Cf0mq,QO(3k>LQLufp7mi %kf-)'^cAH!k3U86-+!mh@;JFZ@4ano&7H,NZJ*N`qX*V`g+r@kkYtliCR6j?"b4I=&Cs0lZF!k(#A]a_X.3E^#A[HP3rq_dD/D*) %rF=T]\0Nc[d%S9\\NNn9CcC7mICI4UgrIAkM>32V4&3H^P=tEcMU0hTO@?8]`i35;2SJ%@pHc.i$F%CUedHYBP/rb6!Z/ %N_eH9G/Z:])3(2@Kg9,agrUUQQO1#ABg\PuMiH]W20PZN3I5:HA7HEna6"V[-C!+u0p(s8hM:&FG(EQ1A*oFgm#%i[APdba=1BbTKX&_M-VK+F(q>rI^e>UJ*6'W+/Sqs"4N=P'4BO&P/skiMHD/S!A;'>(>Z6>o%!#V?39)[Z8S)9gG5:haT$gMq %?&G)2guB,Wm&DFS%sQ3tYWncN/Mj'dOrA4oDgT,]`ZK*^>X)&D/lYM.a+hh#SF#\63kt(t+A`02jW@bCA*e73.nsfGhq3)K>cHtY %qL*]OU1/P8He][Fl(..BdSrVga4TKYQhX&r)nYB;A_>)-0@/C[I9olnYaPZ*$`- %=Vn?,9=V57h8u$t809M7'%s-:Q=B2YeA/Yu!+Qg]\jeQ#_0$'_lOmmtK&*#K\h8QR0$DF*Wp::"S?/Z?e]@lNP@8AlTK64`EO+,\ %7B0)m]f>(06dgDN7cFFRS,M=^(mOofse7(^'uSk>%pCBL9lGHI`Rno&e\OJ*\)#l+VJ'f3>'X5B6p/Y"-SbiUtuPh'[MqUsI,_0[+%27Y[E^hRE()O\1N+Ps'J %6Ei/k,P"=bC1K(1L$n$k,8.&>WAL$j>c_e:7K"cmBeo198ZbJ%Yk>2,6EDAeQrfZ8S6"jm@Vg=DJSBh_ %bf74F@q&H!!](uEL;kak@cLsQ`WQ+Xf>GT@)F(oZ_89GHD=%*@E,oM*\.N%?JFSj_NBbg6>O3g]TJgD8nH=PciA*neL"h;#@t`-*g(P,PN*l(GL:*0>m.=%"q\d_0P&'shCmC<0(*P#8-9>Rmc)NHa,5\W %iiWQp?0&C&mP/.)X['K6egRgB[_?Vm$TGW^`;I[49-Udr]M,+BT>)$'bh:lAWr)*>Yu#r'9e9g.%Xbo*3$0G7)Z"\372<^fdeJuK#?Rc!)if6^TnWB?l8EZ+am1A\n(HiQN=hUd-G\SX/Jq3 %QgZJ/Ht@E".h^7k0Pl12+hO)\EW#i['dchr:#i)/lr^%h"Z#H),uGcF[[LcplP^f %>#a"=<*(?>bN_T0Uq3)oDiMCICo>d.YGn?Z(3>1WQbWJ_benP;l+6^0T\"=> %jBacQrsTakrFUM#Fk-jEa/C*J!$)qFk3XJ=nbG@TXI`ua>Vl++q0SFlE(s4*HC"F=57HTi,_X*A&)#&ZNuM@13EBCg)jds9k3]5G %F4Yn4Q^:"o;+\J:hMV+hj1=`#q/faX<&\_Fali9_FC\TXTIGhiSK?5q(2+&]hI9r1@=b:0BJYKQ$hKAOX:ZGTmO+;3Ni3O0Vq4t< %(7$FB(+Q%m*2JI#6H.KWV*sn?Wu+d6BK\"4e/!9P@`E7E3Jn>30&fSF=,&r:X+=Qd1==Jq@MJo4RAb=hj40O>6qZM;GQU %?LS]n!X&J:Y_''o3=<%t\-p$"o[Rmad8'cE$a^[qd9iV^i$Qjq4_D'UT)-".'%6ghl^4o.YBZ'N@84(Y`IntRnTSrY'RU(q^`7KP %J:au?$621GLar0,XS4L-aFXc5!aT1TIIb;][L^*5Y/&h<#3Y%A!1iC]?,,%!i^TXeIn4F6G%0HADCFkr!I*plQCc6J%CGPqmAq7Q %]*Pad"#T(&r7+`d]1)LAb8>mU`7OsoJHku:e=<,a)&E:dkL+-9Da4#(!RBfss5efI=Eb>]fHuEQgX@qFP'h%eF#li@*R6\m.]7o`dXdu^1bbIi %-/"eOV5nI-JA?'/_\=&3edE_U!\$$d?G.W=Ep?FErN\O\A4PafFKNu<-:K.K$:_sOoJk6ShI+8?S]*q*P31ZU(K8PSW)EOt5)<_E %`>IB4iEe&DEE5XB#;_31DQH*ZUS!!:7W_*,Y!/UocZ?=(ou1Os8W_6%n68S70dp%H;D*Fj225L_GU(7'\aY*t@!%%i0hEf1OYcG# %cjehNQ^)UMI!!!r958lp@)nAUqI4OobI*6'gToo+/LB!b!tprcEoC8%!\5`Ojhfn4&1Q`#,TXG0(uCO*.2Rp#Q0a&rC%39\1a%uZ %*)ECYjT:T=qg.GF=S;qd5$;TZk-K':Z%sb%TAB&`e\*YlL"nh+Am0qcU4"MUmu %`?k>&L7OgENcoQR?iMeJ_KF-':Zl#ZCKbL;O\%ERT[1+s#.6FX`USnC7kG3aE3T]ZCABHc:>!jHP(d'F$6feT`PF+h]#6rf?@c:9 %NXjC$'\),*=>\Oe?ku\?i^GGq"#6an_(:H^$ag[L,1TON$&>U\`W&Y83#O5r9F>P)B&(Ko/a0"ao+12IbTI0O&/fI,Efqh %Nk`s!oK0=/CSl&q"?9;]pkUC\bNUlIeQ=7pVl]KD7mKgf5^\7#n;'XO1a,%,*BQC#]&o#::/M,R,6W`k0]Em4IGBILVLH8Bs7?[` %gC&qIQ-F5u$93g8_#+%l'QAHa%Jp(=3PD-.i;Q%"-*mOuIrXt_V#NQ,hPD+G5Oc=iqg\<-B&%YB-8OWL]:T!\ADD_:V'n:_cM('5 %5KL@P-hY65]DjYSrl_g8R;k0ur#a"i>?EVKhOGp:-slc^(HF*'-0b?%i"82ds9/7^E5\//[o6U0.Oh(?i$_UKO+&4q&]>bbb\41^dg5 %*@K*@P:SMo8O%7j'j19#0J%8s'r+3kk`?ZCbRqA+I.4(PcAVBZZ4[I5I?E@PKD[<`L!LpI-beFFM3i`T4O8W!X_WY*XW@XoasU`Sjl`5:1tjTte[R %MEh0Z6K_Fs)&'lkd.nE0pEpBm0b;/gk?!7;;:("[gatJC%CsEjbcms'n:_R0kk]Bg^&D\rFh^8`.Nf#G0ss>7.Z,\oX'!G0gMcAV %)mCCtOMrO\(8:bXI99pu.\7lJNecKgUa$(O'sqe\NI0SfdAO4knQ0)4W7BKk8-NcCKjkc0;?>m`=KFhU.VOMJN)`CVS>(n\.O:ek %kmd0f8g:r)1B[s+0si(&M7HCOLK&s1=Z95'iG]nZ\-?3#Dua.^7`++L37BH-0bOtK-:g*ih&M6:V>3B?a3,."%#H-9!&VBZAOm50 %8;[ac86$_(`DD9Lb3M-F8JDbMU&uK3"=jm.;.Ph;oubQX+AHClaat]A!bikJ-(.0K:741a+HRq%rA!2RQ&lO^42$7-6.R+63'dZ= %QiZpaX'[.7&`hZ!HbpH#m`L6a0786e8U\>^S[0VIL88DDL5#9RpA&&V9nZS@(@\_,#@D.UKJddt1//E"XV'VDgs)oD4I%P'JhQs4 %8]O22Mup`+laRm]XlSpdH;u3cGlnj+p9VMZekjb$n'[mU:)R>o*Z,$W3]7;AI6De)_, %b6,7^XXQ3VY8Xd7YVTjeMDsm1s&V/6;r!4A+@S-]mfVl,_ZJBdDKImiC6S9MC![$69?gGkYsK7KZ8/2aguIsth]^)BT%9>^8CNIB %&U=m&bRdM:Z$6^HX:15cno-u_$rP!a&:rsn5"@HS&Ga)?aUjjIU:;0Tl`1rmO2^7;=;`<Jgb(`>4c&VCZ^]"&_RT?&Y1(3f0t(K2'`DH4`*N]F)I]pOqD6l@u(h!8rto8^LceI %HoWsFh#V&0fjR`A(CkCPX+42N9roNcjfBPq(XPKViN%b("T!)(>pEJkPbt\$rlpmTIF9$KQZHhX#(2$*5*6nDGJp/e!6DS)hJGRn %)Uo=gXQldKmY9RZI&gq5@\TQ%2ekDkTqJa)hp\arn+4q\Cuu4T20trlUcKSS>7/Xo,:/<]ZCj4a`hr'L^0tq"IDmr;j/F6LYTM4I %'5lHX2!-cBV[:h-bjTff9B#rl`\-OX0Z8!7[hRi#*,AHObjZBB(k0Ts^R*:*$X2PaM$nb:N %TQ5:Inh9WYd`O6fk/=>TU>hDC*Nr:G:T91*rc%([\NaC/lO+), %5V#&(@ULSa`K.UigU9(,:NuaPL]=&hg[7BoBTJWa:t3"LY(c_qE?\E;3(]o%k;,p6dl0a9gO0g`_-n8a41.]5t[WebrbhjZ(EGf?-DIG!k!q2q %Nt;0&E9I2(J!X9Dr1S&h*W5nPN\-GC`IOV3$bJ@+Z-msbHQ %;h7mQ3b*fUjLsbZ!8khem)$lPg>KX6!$\82Wih5ag&Uk>,Z9#&OU2F"6D8n5o8s7d]t`d5_kV)&Cit5aHf*1S[97:==&`omVkp") %'i8;>EiM^d:agS?3X-E.KL5^WIe!N.qF%rJ85RCrXl][PJPaGC*>J^35ZcB!PM'Br2mNFEC^hsd2VG@VXW)<.2Wbt3]*$B?Le)ar %Y@DH]fl<\5HD#sL&0+t[(]Af[a9k%C %TK77".r'!W_;t"OYB9a$B(FQ&JEG!MSrDV7>]%2\?!b$e@C`s/]u$QII)@^5dGV@8L-&jRYFJJ=IW!UGKVk[V;/!CQC`X8#e0$S$f3nDYfUZ9SK7tHiH8>q_`NSS*A2G`Mn!JkVSe#!ENrhuOq%jqirU2QFFT31I86.q@>\?[YbJc?(V7@M$$<[Fl29]2 %jm`c&\+$gS/@p`Vfao_amimq4V0B`eKOuHK:5=`BKXOs`l)@ruh5Keg/H%r8)E-6aG;;88@Cpt!-1Jp`oksH1MBO]rVO.]U2[b;Q %E"Q&Z-(Nq!k2q2u7ZkOh_/;'EYi;,.9ao26Bq_bOCB+rXnDWsJ]lPq>1uQ9/Q5T/CNTS2fkS#[qY=nd()lLep+=&oF(K[n+DIfuDB5p#J=q5[&+*2^!!q^!98_c'`CG-.!8k'Z %00r.A-3i:VHB#=teg@t>K$1(C=.(Q=K5]6iSbMtTbri>Vs3u/+sgjC+C_t(Y2_(f.M%a`J"pH666p8?MFSi^UK^!&-E %QS\TBhSSd]'F''Z%-8-Yk3HW#oQGoF+PnmU"j<hV9cNE3T>)]W',g\:8QkO)jB`gLttr-i0G0>nXG04?ZHalp5mnM(1#H5OIi?(l-N&+D(b'G6OqD#WkhWG/_[5JKTf %5e;2NIK0rc+7L-]l>S();MlrYPN(sI@.mSCK]nOG;H.d\Q6.D9Al9D,8H`J1-2\]jQFsHBS%TWXg*o#Fg%NFIGFJ*QPn`"fq?'eeBcIR=gpQ_;sCiE8#H`. %^;"J,9VWJCi/3*:;mcbI+t#?>%6PeFFH=*]*;X;ZVK]b,cIcU+UnOLZDelr:rdH@cI:_WO9>.[\e;f;HWHE9CRGe]Y=(3B]n1V3b %`N+@W=A].aR&M1FH]RsM=[*q&>0kp]42.7[kKR[E.iZUVdk-1CAh3UpQ`_:La18T,0@.fWoSa>`):=t5.rF.^b)#1j,V/;a %[1-Di%Z_+#6O0,1nNAq7%\8^4nn=03Ja,8%"!X1_0"QAS>a(rIkG"j\=R(!_49;$1!:_jW=<:(Ad:d!a9mlC[g-(=)[8' %[__<[i[%"mTTt#C%\qL&TT,)Y>85%ZoU/7QDAh;+tU7Y!8J]e`#@/ %*bUV[-,l5"1!CMm&GdMC9SXS>.Gc8iE7q)1kuaHEOJjCUqk/l3^mcG]\qE#IZH;>J`,o+&,sFjC?BYsq:<+KS;^0 %E#,S@Vr'9fK[6t&$2`46DjFF]9>/Wu?Dc=+mG.Q_16XU0)T>Rc3r]*6W/aL9p/qOlAo8'/Tkqp3DRQsQh6gBTP\$K#pU;e8@\6Z1OQS[e.IpM=+hVL`b5*JtOZV*lV8B$.Y-MP+>XMiEX\i%nVkqcp" %0)PaJpCk4G(R)OUX1X7t$U&ZijUJRN>rqj(ANU9N;T1j.@R8;'3jCX)B=UScX':Z\CJdVS[^F@Rc25p>H!LJbX[]&94_PjQ %p>1:Kcgm0$pam7NCN5PAB&7bWJ0)"_e:W>;G0ksjKq?&[Eo8u(+mQqC;E)- %.'5o][7Wo\J^ab>(J8I_P?Kr$,`L=6-FFO'>)SHk.N,&o#K4EU*/R7%Tm((\#+J/Z(+=uL\\t"`'6\`@VG<4b:k]c+nrR#l=bP1+ %gn^7T=@EX2MFqXZnNN)di[2',NFE0q`D()-mO&@D73T(YisJ.>OVbUAkuf+' %-&0`$IBO.\e:HD/`[(JMbWePTZcqH\7PWm7"8JsH\rpE-39ub&/=`;+@C3uB=h'MGU<=rGT*=SNXNW\[cgnLuMp7d`m.AHCSBF/V %cmg^X-]/7Va%(uFhV1`"J'&3L&Tj[EOr=j^09aoe+YOlqcYZ%"0a$]bk?amNP]7+UU\mQNlMn;NY$fMm;gncCe %,DZZNDBMq`Cd%GFXtg`9N4p&Il%9>acZ;&uo8GE0>jp:IeM7KPjn9rt=YAT7N2A"V4';X[@_j][i+kJ? %lMXJ4YR,os(K%(U*.7](3`C^/>W?4LqCXP=QOeE$X"PNA3B:0N[0IVIriD*9;i8[b^"/(rMF',&DmJtn+#sip,">Fc:f7So68)gQ %(DYan"k,mc(Y/BoL?^q#,'hA;d\VgD(DYan"e8#?Su4e1KZ-^?J4^/7's.RJY-PEd97mr/0Apd8:kGdn.Y"C2to-S[E@q)UL//se'G4E.oXDVnY$hl/boGj(n_blJ`dDk %+@@sW0K\e8i-JuBJ7'ou44m.=iZHg9^o7>G%.OjcM?>!J?sFQAGH1Dhd/tL.iZE[aNuA",mRT4Am@383h"?C0GG.T:Y'YTmo&M63 %`Re\sm!.mmRi$AJe6k5VBbAB#Y/TQ#hu2'c^RZ\jHV;WchLW[\$FP!`Ka@lX[%bCJ7L%l7BJi7oS^g^mXpaSn-Yuf_G?1>\^+gC %@oOR>.R::`XeSo>73X_(c&rYgOSf8QpnWX>8l7+#+oqg8'r0QZlh9-%-a$c\l6(u=jl05^`Q@>(l'u685QZs!U:/_PAN0ian4&F"CfN/)f`R8\gZ?]dq9B:e3GaVJUh)M2=UMhOXHt0MTH:F$+cAN^o9Kc=IF_RKb<\++_:jQ-QIG2"4L"W+IprKR=W.Vcr'tb %A-V%BA=:eU9%?Le/mOfqQ6IN!kXQnM/k.3iN6FQZ?)X`RS/]5@gM-X$)@p'#>X4?B.;dV_=4bJYHP\6+,#2_m\81-r?*%k/`UN"J %:1omale5JDX`M%KkY27PdM!CY:3e-D9@uY6p;gZG^+ocV$9h&@RbFD %[Y^=CZeVo\N1:c!\i>=?".eiPj*naEXfu_2.oZA%pn#W<-&t[oadpgGCD1%NgbTcQed-cWk"2?R\U!_Be=4#$a%P0ZkbU"KqF]N %i6"W+9lf3kZkbU"KmlZSXi4"L5sfoHXi4"L3Bb#p1'LfPX]U%WaJ9SF8eDE0W2,^p88>\]GZbBQ@ZjoV4;gb,EKaQc%6+\N'T:JH %R_R(q)DVlC-aglJ8p6j$4qZm`A^BRCS%q;WPOJC!euc9++E"@c#mT4N2t %"uBFlpahr^:1:NJn6+[pV_M@apahktMbjm'PL!-+81CWl[;2/NNloDXD#rC16R90NdT_6b+qS!6kq1+)Z4gItkq.!)7j5C`*gP*& %Gjls$b0mMW1q!qW+`Vfe].=M;O\hC$pnH`Mke4_jU078XD4e,4XVC3_RPXL$T+7tHRhiGA%&(qs9^__>fW^&ur0^fXi(Kkn@MA%72.Dp@;U:.k-^;J\X %kMCL(i=]i84VCsr#h&r=ptCMXB$D-!a:M[6T$$iuKtiT/@X/UrnZN*W?)i_H8>(VPU,OiGI%eq;SSm_`@A4PT?3kK1+!(=(EMJ%Z %d@,etf\/IO$qpH][ou6#MO(o5e7!p+1<[gp!qp5e.Q6qRVS&e*%0VS-X$GBQ;l1uHc-SU3/N/Q96m=H\ClZ?"''Ku*gtONG7X$iZ %&rR%?bl'8.Z!g=>2UO!.M@JT3ZSqY3OQRf6f?d)HKHr]`\V9EXeR=6VD2H-.gL822!hi%QeaCT&b@.PKE#\Y^^ZOHXJD6u1`TMkjTF-e/d*n`[N<;9QNbi>`^7;]3'G$Q@\"lFI+a %FkM$VCunhTbIShTO?;5O[&aX?Bi;hX-OGQK_[Wjl)S8"?L)\k8IAu1[IOCJtE'o+X(T7SXVAYQ&%,lIDRq>461.81>i&!f!QD"pr %f-RZ&bEkTUY3Q^&f&^Yho@J*k/F.m%c%*AXJRr,!l?/ToA;q<6T %e_DY?U8OFbQ?C#84ZqG1/aG1(3/Mc`!mA1Sc)H4jbIZ&CM&6"#M4gW>cNu/gJhEOC\urEMZ7ad\&#egR@7tuZ?,:k(9ZB68Z7ae= %%&iJ)=OooMGceP0JRr,;pZ(jNnX`A!'bjd$"hO40H%dur\hO"N0@ph5ecjAm5[B_lZ7[H5Y"N/*QP*QT-*XHY?2^G-/qIS>0!07M %Xi4"L.4PG%`Eh%0W$$-0>25nhplRpX/T+J0gk?-0[CAd[=CFO1/T+GoX)>df/T+J0I_W,+`lB@4'U=7#i[2&IQ%@NG-FNXI@P";j %]#V[%XVdkb\sBKZUt.qX6)D!!8M/k-fFm4i81i:J&5tX09PU9i6DCm7C!?u9lOohc7j>>TPr1:f#M+LI.ZX!L)D[8L\Va!oJ`;\A %0qO0M6>%j>f&A$aQs0R#81gib<*39>\h;sK(3`p57&pmn/n,2<`#7Ct;2$aJ\tB3LTWUpq=Vol81e(,3=Vok'!HhZLbIX@%2k[_&uRHf@e_Lu]T_Zm"I=1UGd24>.jhq5Ha"(fY*ehsgrU-6Y*`d+e5f^\!V)hl%&iJ) %-mh?,T*okJQ$#f)rs3aQ!mA0j`Q?Cn`@^Cr,uFeR3WWetQKpODb=1F#N4DQ-4cn]mW!B*%>g^a++P0cupu9.DE>=1>K;#j9-EejY %7&M;$;984`BA)X\e$R&F0Ae3;46qTQ0AkFKbD250PY>!23+6p'b.89*p_$WYL$.NAi%%,sQe=13'jo$Yf&cS=MYPab;EfZlgh24 %+uh7h"30k17O[T.4BA8h/qIS>J6rBC\ce=A_9Q&n,=X-J6ASET\02pWbWR8/iJ'q98A14O\$R*6W\h4;gk(L=KWQ-3eX:(RuqT_*pMfVeJ-*XK:InM76Mrt?=/n0N`6mChse*$MK]'Nt3l+/KuAR3+? %#Lml&/F10oJm?nRYcQ$-P'hCX!mA0l(g\q.?+=Am2W#h=W>&IcKs")0]Y`lD?"Q8/F1G>qZ7bcRJrV7`XNTsX,h@+7`KbRS`>uLl %941m=W&k(G\ce=AR?#ed.RHtbSLDGgiT5so?N(.PB*Hj`U(-8SQUmC'e4hFX[2)1[-eg`5X(,r3= %5]anp$mFqk9t\S8C/(p7G[`cGW>2T?+=aA0X<$CH[B/&E:2=j9FhnCu:tI"4J&/7pAr%pq),plS/>0.=?s2*W]ekPm&l[@m,o[(E %>%5XcPi0,*JRr-^N):ED0mo9"_J"ebZOdbI10S/^/4c8.0j8&]/::`T(bK0-?'&bBJ`)DWDdiZ042DYqhL]r_"G/.9=Vl.[/6>)! %Re_U$\ce=Aq7I#]\1=eb$fB(e\h8PF?)FbX()%FVX:)K;Y[b83AR2g$2^6E[b&P[A5)p$-qb^M!k[e%s,!n9a&si_B5uEFQ&Us3q %]I>ju:+eXYj6pDF<(!0n.Oiur8MpYE9ieFUIou'pKZ-Ij(n`.Z*#OM5"3*qa#=`1.fC)cVu %e7/#=['=DPUDT-hJlOa]Z-1A#jCc3j]GF8Gm*&O9@i+M*GcY1KN*V>+ZZ\npFt'H;g*O_jj_jt7T2CKNbK]P)%`W/J;Uffmh+=!= %CSL-)-bZfTFCUYU+,3C6`A_s+G)+,l-,nMjY!,DXa(Ob])EqGgM(;lS+=Y;_bE^)s-5GFj"i!JSF+/?=*O07JD4IfQJ2kdC[I`1f/'V-D-JmAYX/3kj-,nL? %r4^5*-,nL?\2%f*@<>uq!K1q9];e)>rJ/goH>pXiph)1>rWs4ld!o?5Xk%PXkNJO-O-S::k)h%9OC\5DVi.KfL>0i%8@C0?Ga`'0 %@/E:V(q]#l@9TEqrkPJKXsi&^87HN=%4q)$`P$7pND.+ %r"OG-%!c5L.4OgH2O2>5PRKaiJ/!:t=X9lcZY%;YP?sij.Iq)*r*MDa %_1>(akJ,oi#-F]QY26knMZF&@^NuK\rmtDM!<9Whrq55'r8/\W;StQJ_db/LG+nRnDL)kTYmaUf-Gicp_u/?g?Sn,4?Ig8mUB-rD %84D3Mk!rKc*T)4iS(7>0Q[kVFU!(-.I\mHu`1-ES3XNRD7WPidRQ/?"F0K<7e-:p1E_u"elbf,aU?CRuB=G86@\OCt*!QA_Z\t(n %eLJI8)66k";QV_@NlEPLAuJ_Thi4!&fK?IhdP$Op=V;4T9#'<#7;jomoIC.NYqc+8WP[-T7I'ZbP>]>b0=]H\87!iG4"<@/d"d5B %^1@Ee1f<0lS5bUOdf>^kNG@*#c*9HA^bk7M2Gq`XGM5>?'5\ZeN4T=.4?H3H#C9aBR>9#%HR6E'Kq:4e(%:<*Ch:%qpoAb4WF_Q' %pH*#0H?PG^_aI_JL,b(5>Ej9*[uRg=*TD`c'^8%hrbm\OdOn[r0;TP>#l.D?Bklunci[004gi=ndQa$*#nY+8hFd5,AAb6FU&u@TtK+`JF*g%M&;t@!,)-0(mMa+ %ns)((1Edc?',j!i]BLsnC!FEgcKV-,Gj..V %1=-<[$FE\7)Q=kB.__/Tp\@-p5u,W2_doSN1fDj:J2'"UZ3$?%sd>s\en0X4#fOX,&4l3g0RVb?59m$fuMie&c. %0I7n`SM$VBFqhL9dHM9)1HD'l*M"gV1\hjdFEG*I%c>A0da@:l3k5#1da@:l3oK`C/o'2+k]@-%2[;Nq3]^P5a67e]lp_>Fd!=>< %"%@W[ng7.mk73A]]fjO=rnu^_6:eFj>5-f?h7%TcY&oK1W[cZcX.[S$TMoF6Ja[FCOo$se/,\6 %@2X:GK@/p#n@u1pT`(7"%(_WICX,91R)s4/A_nYIc@Y6ss#5)a(o"KC3#r[]bn6(u6#SJ2+VX-KO$gsDlkg),@rN'7-imBl*.QQmN[lC)XL,>/aJt(`!0DhDmUr!<*ShUWF;Me/=^16PI]:U %B6"Y;-c<(JDF'[)3LSF7ls+W"4?HH0SYD"eZQl="_-;k[BD7%UQTC]/L%Na>.ILgI2`efA5$9C<7Kq-VBc`kplT-](2'$(chqfO %A6@@gVmZH8.o/R1845&Tqb^5PTb[m>=Gh"<+u5kY>9JLY@Gdl;aK/'+.B(4\;3Zf=aR)3S:^]Bo>ui6hq"FrbQH4!A-mt=pZ-JVPDp)JJn58UW%:lN>)kX %qd0U\8b%g3%#8&gJbSPO[aKo;ntIcW:-Usl>15-`eeWHhS@NheV^9FkLU5a?AVS*^>YZo.iGe;QbA'UhFD]SMXJ9T)fhg( %]/W!X^L,lZR:/f^Y_KiLfGW6deeV=gqbNFbC]?=&BlSiP9PfG@Bo5qXbns;6XM"qk,qRgO/1*9mRKNXVWus=9,N;]"X8Q]K5CG(L0R'7RVnTVjbM6IhbAhc@Cq+\SAq,TVRLitX>Cn\hS?CW?2a'^mjk=oL(,JZXUhekujpoLbIZ$1S-'2Z*1`6Un=TV/12"STp4ZC8Fk>r?t%)YEp=7EAE %IhIdXYgE1\fGbXCYgE1\oWAnFYgE1\7:g(5f"UHa\kPEYUuEX_YKt..YXg\NOH_Oc;AG`jL@-cSL?6utl\h9$B'h'E)&E62%CG@) %nggjO,(?#1i5R.?2i+d(hZiN!U?a#KVBuP89qOd=,bfGbXo.0pqLN.H152h)/OIqa$;BKsD#/]9E^6fP(`)uI4='0J?s)Xj %b%)D/i[Ra_]8K]NL^KZ*p3.MRsbX"C"ZuEn[1rZ46&)9CD-OXAXDFQI*nGFHiroR0739lKBDY(X_753J2dTTCY?%KO3\i0.[qJ %G2ns]rf_Uu`Ht^LVBEUnX`Vc"c6?!m&cI]a<7J.'!;6p[t@^h*4B^_rWA\VX.'j0,Me[3&Gh\*S#)aj4cD"_H!0SR4U`dBc_,n=:!f %4M#k\XSsqtohP3+/NPo-iqQd*jm;q+aUDH-B0,6$B1?f]L'[N#KLInB#?=29d"KZ.L$..mntjbH(0pa@LIZ71m]O)82Fe!HC+Df'5&*nPn=PkA,0_`E`;V:Bun$JK-)El#f7*kBSHidUq00Rh,IWW!!3c>!bkok_c21VhNJ2l@K3kZn. %A$3+:L3$TYRMUT""$,GjNOoc08(JM+C!:iI1M;\!TR14Y%N0I/3ChK2II*aa72;@N7S4RTGMue\SaFm'DVY1QX.0K\PG,$!f<>dh %2_J^\DA<"-0dHY_%0"F`=kh\N3E,95*HpDgZ4=[C%2\30;9f-41U4i@m;oDe4KHeZ.Hb1%Fn,Fgo5edAW`)^n65/S"c#NaBi%&Hi %[%CQMT0"V\:&nYgo'Yo]XpYZI^r9];OF(731Tt*0bn#3)(YT9=QA$>U`o'eYB_?j(:'L%*[(tQ %H588\Gb_,Z8"Tou:#A6Na=LK8E)I]M"8mVt1h==t4Ou@MkWTVJQ++LIRQr1%L@ZM'@WPRf:\6L)aB?Rl0I\`k`FG)q()$@@a5+Ve %U9L$"4'ruiDrr^bnY)V@KoB[DLhXrXZ]M<=VFYFBk_g6mH>;&62sU8r9+9"&&e$c(G$7@_._VC=,rFM>gNp@*>.)c=@G4ra!XZ]D %n5S[!(&T^r.Fg(XO4@%/TV\9=CCiF0SfYi+XFu'7-YFU7Ns@6:&WV[rOSr>'k;N\2XD>!a/#UUD3t1fY[0_]=`pr=Nnt;d%#@nuV %-j?[mNN20I5oM8MJ=1WTm>.-oJt6u%74EU`RY-mO]g,3+6l$tH>U2oB]oaZlY&,mC/s:qsFqqrq\4B-oh8t8R$43]A1qf$Uar4Fj %G9F]\Gd2\+qQSe)=?c2@mn[.VJ:@+5JLdcW(uL-82gDp,i0uEBK/^9h]tO.HfIk]m@NF;0(s4-oJ %6.d"7>2O]J_7n8d9Q?I"p?B6R4jVA,$d"U'jgg#pe'%Z`Fue%/l7EG5:LW`_cVQe[A+BGk[j1eTnX^EHCs"kB:EZ7PGH^Dcl+o\> %[A,Z"J*Y]\d.E@Ie]BnPR4s7uQLdnIa^ZFL$jBkN>OC"(R86WRVClf[JNLP+QLlUErA3pV*&:s=:M7Z1ramNXf\g7T]fki&eBaT)0i:;>;H>OhEe).=] %['6YR[]rTLdVC`7d[1:pp\F>`Y2Y(!!m7S.83HgMcF?@dr4mTdeB(r.P=k;?pL/dV_;8ocF1RcTA]qIa^1hDbEan:@SkC0VaB_%/ %j)h-R^;C??W0q!3^"W&iP_ZqYp)LLkRg]d4YNc,r`KI&FH@.VWSWrnI!8O=#=&o[6/q^Kp,qSYgScjck\2DXK58*9Q_D9*OP=>h)b#?&1dqX8'gi %0k7WKe#r--o9?i0#Y4M.n"m@>3_4fHb>t\5)nh3]LGK+HF^ec6;[i6FgY##.iXns3MuD,"jR:DjrB#e#Wol,5j/EYI %Nm,FNY!=c!33kEc$"NXc"0&BIa6MJRs5&FL(hf9i+`q";i6-^Ojf^]`]/mrBn*U+Pn[J$k1Gp]FJ,kiC0O]eq(-%(L,lp=>=Q15bSX)A9$GW1nWS8>Og9(4h]82+@KACaN%m:[oM`C+I3'pf!BTuhYR8o&F1>%+RH0rd3%LqP9ShSd#h!`JCK1T36R3,8-h/#fALcs#5#ec^n. %Be=4#bN=q$ZkbU"KbY2.ZkbU"`PRML^;q-0n$T!Zq[:djE[gP/JN@CsSh&bZ2ZPCBA[MH0irnjSVs1d!R+'Ag`[.CoT:U3#/4HBk %=r_oj#@WqK"r91.p5PJi$KSNu7jK)cILD._Rc:[Mkt6DQiN*uTcbb&UL!^ONB:1fW?q*ctT4Mc?Jf--pI$Ub@A7Orco3$`9h>)j45]sjD#s-+H4]nOf`8)Fe,]nO3/42DYqhSRAdli^B`H:q,kZq(/J)a,;eAip.k/PuQ^d[k]:?g-ek=(0^a %9c"Ipg/]cm,,$W2?!Om4:YnUW?"QBaW\(ZNH?:m8\Nf5q?*fl[$rg1IC($M^>Zs+,O`8$q$%(^,o=.@3Qc$O_=K^-Ab",pkK!fO] %4--*NKsFXH[[?Ol"al$/#qkEF86c5k$I^G\[Nsfd*O9SDeCD1)(MJ/k`^@6`=OH'M#JK%:is/pp7ISg1Iqd_'CZ>EFNQFT%eqsOE %Qa?.>+1MV?6LuI[;\[*TDt]FoHK0!Bd61H>]k)*AI0a?U*],@\A\%&'FH6`J;:3u\o8Is#<6cNUVhVG.8K2V?_:&JIE`!8g1ghV8 %?hjW;akZ)e[7LUdt/9$?P%hbEo,=nasn75ga^W5!'g4rZ4O75;e,4h`GIGFQmh@ZM@aA^Am"b:&`m]ZE^mg %]^9;Efuo5B/7MR!N>_PY@'N:&>sL0SG7R_T1:NIjNP:=\GWT7f\!'-qo9Ek'Ke&SG3L"g^`PF8.m:5:!_k*$mA8XomVl8H_DWV;X %8-Q/@IuO/.q3/@[);ErWP*=,Wbh0',,1^;m;V7d%?/UTEb9\HUs3!KY+sh:l_&MUM85&)g:bI&q8k\;iEk0G#laY'lXp@(/JSX]` %'--/Y^Wr=mm4]qL4DTkH!/0"l5>92SFtWM$IeG'6EsH8EbdQZ]6X!a>hjlV]JSeeVhB8*dUHXrL%W#*8=1+!1@sF1F?+!3m1::-3 %(7W&IN4X&Yc34,aNS;D;hAQUEc47KKOMT46.WtU2^Q6dComR4]C#=@JO'=9Hh8T*4B(C=i(.1bo"'@.G&0RT^b#WO"ho5]_&P:#1 %-j^tm]2,<.Je\a(bN^@/LuoR..l$Cl+0EB.4#0=;agdS*Ci7()Yc99W %T+Gf"D/JmqG\+q>LAIE2ciQ73Y[hFOn2:[JP`1^BJN^\Q-g[)sDnaZKV#92-I"aHGB;j\nog8$aiC2BoE]] %mH+i.YVdn;q[`=4jJa[fcO].kK$p_.5#kkP,GTa^.lmV`\HTcgJG5WN;NH(bD]a3heM0DMftjXh<`n_tY?-4#ruQnoV<4u*o:.Cr %\)`<#8';hOC[^f'!#^":*'t7>X1CIe%aY_EhV+$O#?Qnuh3(p+$!h#;3!"![^:F5t`R5cnJFn,/4YPd*:%N"h!cpn;^Rg*b#PN5J %$NK`7+fi#&Q<@<-m=^+0=;rBqpgg)-$%ihkgD+H2)Ou9>?tbmn7.hbP?MJAC#fnME80*QCIii2\l1"oD=X6Zr$PS3kOe7 %B,A;PhFqX!lX]qhWIJ1Tft)t<\3qR=XmTH(ngRimp>$C1+)9k7s_(##=1pY'STJbWnU^ %$siAc65+2-IaZ:?S[ho2.OYf!bpb,*2,HtYi$:o7#j7dYbISH5.BKU*&EreERV6mj'-T!V5E::Y9%2>!D#[YpRHl&4<3h9F! %YA7b[[*%KnGaYi3I>RW(n0Pn^';+`f?,)@F"I-<_QH?o'0n(;:>qj8V=%n4HX5B7g1'9fI91o_91B)[0.?A2Cf$_l?&j;t'$A9@k %)kTk7N-W?lbeQ72h@F^b)9p.S-)Sm";H2$Q9VcYL9mqU4Qq4"gUhYS2>25nhqC^a6(,r3MGq,f#(,r2rD-9Q# %Jm>*P#V.C'DH9UPBIsaoQ&8EtMn@ESBJ"+"$QRrqZkbU""j]giXVI,N9)7dbd<,bn[CAf184e-48M*@G=GmkQDbfcp`64@*W425p>e]U=X[CAd[Kn\+;-FFPQJ_&g-[1nmWf(+u-$g=(W=!R)c.++ar@g3ZOGX#ZejO$CGJ,?pOU[VF:P6r_1$OC?% %&`TQA>%77X\QnWh %0TdB@O+GscY2KSYf16$G9R7(Z&?umR1$L89)Sm/PhO:7c:3.i4*gQL$nMgt[8=%9h_7\XXbq>2V(S!4b\;Q$O'K$GG)3(2@"_QPD %,7B(_,,$W.f$eRSkeW24rOM.WP:V+@!]BJfF=$2XC;qH;>iu#&L#kWW^E0?lMo9UD[Q96+RPI4L<><;fNs+qeKO=MiQQFF!8-!!\ %kXF)PM,G$crVOGiqm#QU4S\K,c&*M1jb$mbNhRrkjU)Y0;V_c=JVi(^F8?BMU+!@FN94Sp'92OcKpZs2kUnjT$Q7M\KfQloBU)=Op!,8=o>MNW_@+tEFS$6eN<2.,CDqe5C\+2S/1ITJqQ3fGIouKn02dQ/&X?LS %HTl,?W*XF4[nU]^=O^FVg.n+m9p)-;Gs#K9+s2pQc"O795^]2N)b/9>%]F*KB@<#D.>.Yl %Tp'5IAkQjKL1r_Q"*tSkjVg1h&+%1:jr+RWlN3"rQ31WG._QghJ?geL`[$3VqFsmjf>eVDaAURmX!MPk@JmD`oMisB2oPM0kZoVr %g^m*t'if:a+^Wn'mn4*KKL\1do3gU5)`!b&_*3h11rD-nb>;&)V\tZ'%*^Y4A=?qq?rXBFh5%V7JRr*ioP-U7il\hTi@pq-941m= %]O(a*\ce=A\[eN'U_cC$(KT7r'?;iN\mVo[(1]sl0tbuHJ"D!frg9&q_n^2*lc5mg\ce=AM+KQ8/*erPm"fdiPLI+O_-PV,1DMTQ %=kCD2'i8"8(Nqu_O?'E,F%jk>cE]&K\?8J4=]aYuRTO-,9R@T2AR4L@j5@OObIZ&=$**;(\B3Yc(rkOH=K`f[i<&;U"I=1uHHY73 %-8B(;kdgoIFU9Vb_AJ\Gf-RZ&bB+.)lad4bFl$IZ7\d97&oPc=OmXW5EsaY-FM(`&jU4=/*k&jYqT@>S(%M('M<.\P?QnL %$Dk/?8M-9-31/:V-FKKq09k&I-FFOF;J^_S;@D@&TsPRoWMQOJ1'Jnd>0MFM/lKm`,L^?Y$E80_>[nna!:bck>25p>U9Z,co8m,_ %$a%BCOU6eY0:Q$(&@dYgM.OjgXj`DKb/-LCGF(-1u$Y(W'_R6;cGM=E^(QGltRBe=4#bE)CSZkbU"Kc:Jg''"7./LuI0:2=j9 %FX_-N&SG75buVlFRUdl5K&72;f-RZ&bO)KD.+a>ZeccBI&W[d(X:&&G)P\U5c^K)JJf$'oHkrr)1e(+HT*5mE<44tOTB19;q&(b= %AR103=P"k'X:',B&I>P,oG7("7j,dbRpDBi@jMKF\F@S,,$WB?W_7`B3CS#\7`5R %FU9Vb1=$dnb@P1YBH.gr0d`3EX/l]sA-q1P"i##.YE+RU.G<#oaD"7)F\9Ne='Ybhf4I6n,Kg'o^9JPl1?s+:lMZqXR#uhT_PS=257$Mi1F:ft90NMeTD0LlN0gdXO:C$>KJP<7Wqo(DE-NkbK+`&d;4:@?IIhb@KJkj;L),)YU>Ae7]:JN=3oe/;?qm;PQ)lMa1=GTsNA=G!F*,ekf=k\VBN! %Z7\sr8e!_tq&-Cu.Q,umk@_S:T@@gI]PQQF".A,&[^0:6\07uU$hc0kVAYQ&%)FeD2U*pMa>3C`C'[Be,\7jFZ7DTN941m= %em+@'\ce=A6)/Ne?.[Sd>PtcZ71H?a&m3]gDY/Ij/qIS>fI]XslOm=NA`=Ll6&+Ws(dl(lArpH%`#WA*(h3jKquLqG!mA/#Um_t> %\d0="PI`Ar=VmUXQt9Q(8i+eKBJAOb.9,m7.eie8-GJ:I?)9,(Se&>I@$VHmpnRAR40+$PlPNVlU9][IO&F\f&A$a %d$u(NCN5\`\J7M`ZkbU"2+[tIdTYG%(0Zp>Be=4#$U6<'^m1,5RcM=_Be=4#$iQA>Z10P?/Oa6D[CAd['>MK1'P&Mt@emteP?KXh %L!j.`UfKL;e?\e3_o9Z$U_Y4OZ6dN^OBO?U6t1m[O]n-#1MNt3fK^.Ce.Rt@(Ii-oUh:'c[D;=;$I@]V6[$]h&#j,T'j)+/Gt9Mp %7RCf@DGlDH![+SGbHDoq:5n?Z[1nmWf&A=JZ;bR9m\1OaKlE(ZN1(/'lU(>J:gKF'ZEB#gT#bRO/*k&&J,CNHQ?@In'FB_a(d8>@ %pSj+;(d8lr3\!$t&V\73ljQq:g9\73ljkY@.)E5aBoo!cc!bgLIQ\fbuRTWUq\R*\6K %d;W1ZZ7_ZI6*BMd=OuSAYokAc6s1>mo``if#qYC/B.Pg]2;u%L'ip@F5!KSc4Hpu%.I#>d531D$a;+T%_8SC_VkMM?3 %falaV'#9hEH7".H3B$.,fmDNQ`>KaACHA]*6lr3\XDB:_ %?'i@4/p*-XeTD0LlN1]kTM%s\=dQZ``[j$,$-af#"\,b*bd&kn>Cu.O"I=0rP+Ja[6RUF2ITJS@L2/a:[9D_=CUm[%fLuZ%lV^]- %\V"KNcl*I*Dp%"g6tjcKhd0F1TVaY4-1;nM?u((>80X@.):,R/(Z:lWPI%2O#G=8,(aJ$tRVZJ-V@fG44]FC.67 %/ODgHjMm_XXTEGZ])YQid66&AHmkiCY%MAM&n*u*j^d3&TBR-slg"i,XE:AF&Z2[R)qpt!>@FX'G)g3YEj6^KN4.;eTqC!+k=:;/ %GotVc#*&Eji0Wh#93sJ2``e6LKa@9Y/]`L05_SrH0J^Dh\@+]]c1%Aio3Q\!16D<`+ %ZZ\npFt'H;g*O_j7IEmkD9`niBK3cZ[(\SFn!h*86h[G+Es9&E2LI?5N*SRp:9L$>$\C<.bSKo20QC<5`i`"SBJ(2J]i0F*3ArG@ %:W>jTS-&SVn"NTYXKWSSa@@Kr&$rq:od?'Yo+DGqWQN.*U9Q/+Z3m]tdo( %K))/4??kXJMYYEPm8qk$""%B%ZH4ErpF!;T-_F`*YPYN?@]N^+M<*8iOV`rCpc'l_-PJ*8?W2"FiQ%iTKN,acMF4,pd!rh.:SqkX %QC$^1C3\'7]F7.gd07'D+u0Sk7$i1)=K/IbYT`8/!)9e'/&/5mk4S>86o4S)d2Lp]ppms3-Q8ibA/NagXqI)dMF;Q[ksAVd80D)8 %<FFJ;E*`FKh6c!J&BdVNMK?OfZo%)Y?D+`(t=/RMC$`F3l%Tp+4e51$IP]Dmr*o3?&NM73*mkTUGV3+>Otfu?%'aZ1`46dpSS %s/TFgX^IDnV(0`Xo:>\5ccgJUCk^;D[J#&N'g8rhH-lp*#.oMej,i*bLDo=O>IN^bJX+8%k?%!W?THS,D/A``N$6-%dkKOOu0q"]hQB!'.@l!<5V)8*8*h?g'N)38M-)rtKSRY<$p6huhDDFMS7)oi!0q"n< %F+8W]K?7*;3W'@m-.22aGt]Q;&OF5Dr)YTs>YV(U7KcN&(Ng3@AU2F31>t65.Xkc%PNhnh._:i&_Jcr]AR,gCOk;c7X*bqmW'H+* %_80%X6Ba+*4GE(*G1S-PL&"Bg60*q6jS"p*^JG/H.>@-+ml'6)mO(E(0S96L8Z$V9;5OCoA=#pb]HL-]E?2!rRJC2.F><"==?ua7&oG.g%YW1^dF=PPk]g783V*AdiT.\+0UA.W?(qA\M_fC22oYe:'$gn(u %YH_5CU,m!Q:PQnL\T^Y^ZY_(*r;49GH\.CiaNK-T2P+:m(LmJ4cQnt$B`j2l13G7'U#F+,"nKD2s?buA3%B<"`\O3An+\. %Q?9Z3F=/aA)M*E#.o@N-\>dK-a$N#hpbV=YUOqYYDJ%gQ?Q=0KEB-(gKB3om-i;`s<&NLeIbMIjjYdjUdCU?]+r(sNA!FO>/?-GR %b3d&ahsA4@Kf@`g1:hq%/?@"Q,bKF%>i^4c2Pd1"p"PdRBVJj5KmN:fO==7&>;f/&Urg&lnHb)\` %#2[t,o/=686D"m'aDQ754T?V^Kde60Go,_tY;J+^[N.Err,*YaQb7li^9;H5(%]s[Rs1(M_]ci3 %T$i^5N`o";eM>'YWd!4'_$BJYAfl9fdBV&>7;A/GI2,^;rTPYY[&EN;bB>KI9=MTTKS9l896XQ-.gLJ=EG!M?auM/2I#R>7PW3K7 %Q")dS@a#h4oi'o8X,bp0-k4CLb;js'@Fq%:jjhPH^EoK@?Vmr5ElY4\%7WOdH(rQmWZB.LoFp)b9D(^nYo;rOMqV(8:te8o9_q)q %SU&k;+nk%-#"W'342BGr3d^fH%LtBY:T60#Jl\V3bu4MJ4'hhDN8/0]%%L%m)^X=>\tDRN^d$`[J"mfg,)V%L.5?gi2i!St2poKa %C[15KUCs)2A:7t_n6d)hhF/KFu_c\3=sodT^pkM:\q5N.4;G,g!b0>dJ@'t%@Wh7>#c)V9a>6IG8(;jD.n1lCfI]191b(NfVs>'op]%U-(&GY %aaYT8*.NIAea>Kkj?>&DA)jo^c10DC3dLUO`)\/77_0HBc6YS+kZP"D5!D0o[C&ba0`2fa?WsWr8)p#N0Ku;:A)Oppl%qbK42sS: %YXtL6XIBi4`rLZ?:ug6YNiD1jlknqc$.O2XpJ&?f(d+!!,gM7G&9[DF;TCdPfJ3'3*t;>2*TOl_/)$",0d=Qi1#VU*MK<74A#,c; %:/"OsI@">]:/#iT/Bri*c:Qses/Lm:;C(*UH2,k2u:H>Sk[n-]7.1109#ffSO)68!:]*G`GRKQS2NJ/\9[Vj@csk)L@0'(FGQ/9$;*,-F.o[Sr[W+HrIU' %1?e!39=6`.c!dQ:=`b;pY$aUp/S9-Y %f\b8mC%,Zs$1u*idOQKS?VT2jiG4/80hm'ul!7T7GKnGCBgc5PYKC]iJeoC<2RTmg;9Q,Wh/:F]fIX8UFmGUBEQ%Us`oS?"H;dT< %i/;8:0C:/V2*Qbu0dY+rs.V=4G(KJBBY.40fXo==rAEkeiu-Y;ea$#+;M'D6$&1P$!kaTBUd0oNL+A-f,P>SlP;#p]"!\SsCb2p$M%Q5q,WSDbf]k0RegXKemI6%nUq./9D$LFa.c_H:2cp2tlVna*E9Nj:[:a9_>b(FIX%UL8fD"A0oG;B=@`,*:.,C"rc:/S.R(r=? %;nR=JpTMjfS0V2)c;N!;.h/oZhYlf+GT?%gGL^Sl#+SLF*KS>\ipiS*fngP[Y3M(m<7ep=2>@d\Ds(<$I7(mAueSJ %:S37qA$Pl9^$Ik1/W>7N5HS"3.PA.9md28ge0=;\ZS_X='>=@W!@Kbj_]fpW\urB#=0G?#Q'pu[a5,ZdT,q&L:]a1n6Ni(j)$?J? %M;(W'p"!([T;*CecC#DM,ek6\o %iUG_$dcY+KTtL<:XmBQp[_]]%(pld#6s'AcEl$IAF8*AB7B=r[eESK`oX%O.XnQ)j4"T7f$LIGBE*0dO'r52i3%WqcMBnB*Q32+XkQ<7b(:6f6rXZ?.#GlBBcq[=7It@he./h2< %rf76]*t(,'(A.+i+(ml,?W_J=H0VW[lMk'kd$oAp2goT8aq.V1d)o_O!3\1&0VJekCeo_,EQ_+tSuJV:)0(na)S:CLK`6qCM# %EC@:rl!BPEL]jiCD6*3?lHiP3oTf$!g1`+A\g\BX<"Z02glr.l?3G$Y2l-TSQ=@7ZgB*/eQ%HE$Ro2PuIW2DEBKR>ZLV8=dq5dY$ %W6<<2lKUcDhn^<:CE0D?6$@,l($f@Q:lr8:Uts,\r+mS&QW_;g>.EqAnjp;X`coPL(0\ijs!/DY5J-irOS]@=O/I=JYYm[u); %H?D-OrB3g\QrKa`>FPB/q6O',k:&7fr&p!7J,1qS3*9lYFOQBEmBd-//=KBu2E7Y*Li,k,LaMF=%s(rY)m.5oOHF[OBKt(>GJO(A %kV$tgLMq;@qEo^ig%Rj.^J_'o@de(QGbK2FID'A3jAOp-hOAYTjb-Gjs^T2A!b'1"Pk2MuYg %RfSKm$C_<,IE-PC2Mro!,2p`u=.jZg-,(?;3>]>M>P3>:l:Cl%g+fR:bkf*!QPJRLJ;=O.>8!g#ad)'B,"4q7'M\k)FY>u %&`egi)FY>uOgX(%TM\+cM\$p.ImcPh'TdG-0Zh5*QDIu7o& %:G+,r[[clrM'-Ma7XTW$G`"/$0XOh0C!haf_XfG8%2SKqF%!Lt)-tUlileTe>K)qt8*@D6d\9sd'agE98DmpQnX.a?8i[8(NQ78i %R!:k1?fj3VP/_"7JO!rZ.uhT6?F[G>(LQRQiHqL"I9""%P?c$m']-pJ,aVMM_-/Wf\cKM5Q$),QFJJTD=Xpqr(O;llFEfIUcOcLc %emH0oFnFmce-u7nQ%uE2B-\5[;j_;@VK>,@Ab(APEE_V4rgA%7]i\F7/B%^'V7e[&7JX><+O8'+kiqU %*$Uc"&JeM:"?AgS;/hSPp/N]d4<>*:6Y(KYVFS!n&PWb.T1A%3_>0_FIpqr)BQ_iF4^2"jT%+u.k)9Ql#>G#Z#]F]=6:PtP5^g7? %C<`)tU%^F@V#ebbW:7C`jj-:$;G%SQQkSAggu;?>n;(alcHlk8g`n"(6sB6[qnS`LAZF&`iHcpP?JbhqMo.jn*[g\PLgX %@9::.4Cjks)'X(+MR9'\PX2@7GT,73%7?Bs$IetBjQ?NeUVj[o]GV.@=e.m>8E9s2PAZQ!)EXMG4pfFOF!H\?jM(h*NB'R?ht>Tq,e%[" %eGW]nEYh<%QHCYuPQUeEgs/IQi8<^Vm%L?A4:+[HH[C.13hB'CfGAZU$[,1^I]p<:5)9*A@:UIe6b0Q&F&UX3JXsd..[G=ipH/!q %Sb5_gP,6^i[hAY=(=]BLDc'`]biROm^itk-LnC]!#6j(?\VM$`:)]]?U_raYb7SbdW_D)Ka<&GS6lIhm!c`=];:1KY=i^g!g679h %Cmh.VGCWdta9L1bM2'7"6:UD[Af2.E;<.>A/6BG+M1l@bj/b(JFr%Bt5NY[-hE_ZdG+dVLlK*Q>%"$uHOC1`-VpZ/nH1d%Ih,)k7W6)U6QccU[ %;]/Zef#_j\A0Ku$KQCRj_@Y1I;E7+HgTtV(1Kc%%#;ZN"2@!;]laP.`+YXOED%mml5MJC7ZtIXNC2M=TCG!%C8EGG1&rlN9RDG'2f7kD=6"h%"FEGiCha4"4Mbga0>((QJSM0@]&8ZXp/Qt0L-=q.S*(5";&(%4"9L'0N"*uF!9S0U2q\X7V0S!o(-97,D'>+ob %Sm\mi@f!Cq/i:]uYnpBi^0e\/Y*>N903QK&N)HadYQ-H-)>M+M2nYD89e2<.r2B+l-#?fNJMZV!PKj']lPk;fP[;*LkIA3"?Ool5 %Ej^>iLaCiXa6D/WHI+HPMf-M^Y_aAhf>XhPJ6^R:5HDJb%Z>5'S]8_)ZX8%:pWP7uQI/''W$.GQ^]C'SdnJ`IUqT9##]/TXY?qdq %BZZ-p;T]`cb'C-FK,B=C&DOdDYBsKoiQBa`ZdQksb\r-T%b2)9cVqaEu %_3o_-T\H^FdU.>]bb0aem!`!,=G7s?/A)H3SLU:Df&6@0f1W\h\J1T,C3U=kPh;3h"^?/V#-I8iIb.[9o\G;58oWq+6IYfSp:7,7 %OL#(,;T*BTqNIn22HeV>:8Bl0&?@nl^)b?IU%"]"M)>!o_7o[Ze'f#c5bqNuml]".MMN;!]TJ(L)hag5(aQt.Fm3&5Md %$6>-8Hc!&_$bFdRA"08T.jBs8\3u[WqJDY_W-!dg[3PS+`1j9ageYU8c$&E-h..`0QsVgYh#pmXKZf'=\XPl7U30P0e[u"V@u\h. %bKDX4oH*?6ouV:m@aj(I6!#,ml`XZrdod9/Y$ScaGt.qJr\L`G<.a5`c`>[6m&@&%^\pU4C+Z?Z@^VXM/#bl^>qE^+>n>N+(N!-7 %^[9sf8j/Gre/aCQn+hN/%,%3@bi0/IV9nC/51E`+Z/"gAeO/LK*W*ghE5h53o+>NFhF:Dpireq7q_K@nAKo=&V)>bA<(flR(0N6R %&$r-nIXB\GUU&;BH&X'L9[)]O29Y7)TASa.5:F-WWC0,g5M?'ZeGG//;Ao[lNDJ%MtmIWM?T\<;IcQbU7G2YJP3@A;s %*pt,F5GEKHg3@<@M5taA0WV::Js+\Y<4@BE1V1_^$riF$dCD,PF#$;$#fs.<1UZlL^<#(J2dJl;L#W98%6B^-cdV#!s1X7_/bE"? %:'ae&K0WiZ%C^'6@h\XVjLVbLYZ2[Er-:[qUo?e?X,RLpe).WFab<+kp2UVA?2OrG=-(;etZ!gMF") %_q*g*[G\Xkg03:/(:qNh:S,1d>4CDC[C'75XZVfHL#;cV[MH?Ojd:?(W@Mje.1)SmYU`)r$R^I6kH,.=0(oCLWJ,C^rG4'';[_,c %rjETOWF`Ba"/%$?9eF%sgrJ"*2RQdpdD],pIFi"(i;S=867rqcRb5Ysi@6B\]09#/in9+E_i0ACtM=IoaqM!j@M=Intg"Xmej(Df'[>1M'`m:)/m7E>hS=d4_ %[7'B^IC.c/8qBDb2^J_8U5/D_;6Zm+&h,k(& %Wg((]V$`SO8o?-obc"eG`EX#nefs)^mDJls-i,b3n)\p7OW?&7T^]6RXXo4qX?`)B-d$_9`PSruA/'eZnNcr'#R04aTQi9;ZN %m8KbF-q*OHE(?)RkE!J_DO6](Dr#VDJS-QKZU`e`&qu2r %]^lCfbo0Uh-DR&KMMbm6EO;o,';[9[`dd&9aj$:BO7>tBH-]<\Q%*ttBW^:UQJ*3GH4IT[AVt5>U<5`WbFqkAVB?bb[L?Gr7=_:9 %FAV^+r$3YEd=$&n.F#$&BOV:M!DBU`/>Ve-;lqhb(HpD=ZD^V&gJ4.E(Nl'Vc6Kn@%m#MONp%t;,$UhdbK`[X\N`0Z33lMkkkDoj %(=g"6q(1'O#YrO;D`/"Pc#BRDIC!?IBa0h8IC!?$UKSW;#XA6>29!c[!-'o$RT>4E#`93ISBAbPJG:TQ#PmfjDu9]LWkLkhTJFa53[=m=U?`F1R2^4XebCcXnq9Nq2SZ6ZMhOO\2J[,#9_4`L %J1L+@]u\uJ>$W@XR0$WGAdm&mKR[(C&0I=p*;>c[nAsC^b(Y0n/2F\kXjC-u8i!l40Y?(Z-$.B@%Xon#bsB1GbQ^<ScGSXaO0Xp?QBC,7GVPH\j%BY)XBNB/I,o5b**%;);U,>"[-$52r7SK:&^X0ULm3Ua\ %V6dGs[l'4VGa`ZTiD$q\^KPbgpJr2-pC&-EH<6I'?1TW,Ypo7jPRRYhRnRd,FIUD#ag'-4`7a\;3uaN=GjA'aq4mOi2#f#0mEG03 %ZE?W'QIb2'](bTQB(>le'c2G7kV,/>85qs5>?53Ej6[X]U#Fo+F&RGJ3/i2gY0@"m52d>b6pKn\81K8tA,+,D7 %Ro&--U>i%NJS2FF=Xbmdi-o>bPZt'QS%$[,=qjcI\uARoDf+j$b:063ed%77AN1uG_%iSSVDt`hd^jenaeM25dQ3?/Yd;'[ZaNH2 %Z+B&RSiaW_H=f&t;I_Q1_k'<;c@*.ASbMMPmKgLb2MMT"ZY.t$/uA=!mN+D&0=W2toIj"88)N4hD[)0)&c0O`H.p.oIRX^jf-6,2 %fYd?lkmnCQ_H^/I4c:B!e-ZK#ce67Q)W#hXgOTi+KsNc9:HBTFCb18*iqT!F<&M-X5BTqKFYk%;j1D>_`Us0hBfq$En=tK/l"#4A %M5nT^HNdq^"a=e!*jhr6L0.O6A^cNV_7[!o]'6O?3IPq4o9)f6gGF@+;;$^B',NrGr!rh4#pjm>!:ce"mmb %H=*]AgauSKQLd2B7<*3ppb'q9+.J[SlD4A@)'58FaM-R*L%NRWcI,)[o'GePoj1lSi^p=Omc*RR]rXu(mH;-Fe8I`SPBX0n"O7#SVbWqgZ"bM7\0a!j+`<%gt-/"b+8AP^6 %>Gm@4b3HtTP[s5@A22:ngiMRC%2?\gUs8#[@g6Dfe`i*\>9n_:8F5];)*4L(#"!f[W6tjar6[YC%/ReNcq-!H7E$:-A/qb`UQp]Y+K`Y[9Z8]nYtL0 %G+geHTE[%H_DkUk^&20?:]nZj"4?`":(?h4RmNB,];DC,I^JpE.!ZUhYTrIfWL]"0+$tW0!5tAOdJ!lmO0erh/9_r2e(P?-Ot#fC'qIC"D6UU$q"*BEe"6S3p65=]"oi6pJk)$u:#K %kih_\[&e_Ba-;sPT7tj,:Ie':T*jtQ"K5gV@Dk.SDK@;L=SpK %O^(7O=;Q;W6fT)R<'u)J1*!Hj8N!lNR0_soRO/EY)>TV40t+;=aF+GSCM<8r,WRuiTukoJjRB[6-Ii[)d_au^RT)XA=bOXL1oZ6! %<#T#ZWbAQ/:Bn:IZj'8Z%#Jb5f%=jXG%@sLeZVjpTJb(83Adnt^GkPH#H`QKb0[YQVTP1bn@43">!nIjiu4@c6V.cKCM8TAp)Mp3 %@9r_OD)bcfoCd`<*^X+u^p#G#Jmi$tN:^'^ijo8IFTGQp)fFjYXTaB$-FdKWYV&`fKX`Xc@9ra,,t,9%N!^COg^l!RBjY4\E'q:H %JWCd#g^rAlk]rkV)[6i=JmJVc1da3f+jR;*8i(R!)8\N`MIoBhldDCAs1V4AYV,]'KX`Xc@9ki9f0-90?s"4Ka%12U!lMU"U)CoA %@LMK/4>4\getp^^$3D*F2s@Mg_\h\-8eE15YHTWNSu\ffEErX`\cPaRRDZW*GF?EmU!r;o.g-:HU7q^0LNWRU<'[(T+!-%E'1.:9 %5FB=!gurfK>aN71/r:S",quFDO$Y':dCNU1l\=l-oFC1RpD>?^941j*d*&ZE;)_ %C.W6opjf4WoNTaPj*=84SW:1UYS$oh@+4 %,0'Wr,X"=i$WfrZ.Fd_WVJWdi=HG=Kc]pa8Ur1\K%7C\R,mgY[)D`BYg;e"BSl8c0YN%^XUj?&8[>h#,po_:?pr?[>QO4D %GZQX;>QO4D+<<0R>QO4DUZNrLqM50jj#WTpV;WBEKn#"Wh;tNF,afM$,quDnP)6bC?s&aM2%U*k_u,nAe2*<3`U7`>kJb@#lK6'= %F[;'4+g+IG8)Z[&!p:5(1eGfVeL=gP3M[Ir:J#4i+_cC4Ce(1jqBoNq3Qbq_*:`-P?BRkL71AK;]5Hcj\cdb1iTsbB\1W=QL%*qH %`,u@plgjJQ'G]3>B>YO+LNUFO+iJL0%-p5;5>/Le^p#G^W^2-Q?t!?f2bo1p&h)#KC_!IW_gp/DG2O7,%0M?-_%'%= %>XQpbQU%^I/Z]>`r#p%h9r]Ad@ps?dc+f$7bL!bRNjPmL\;#UCQu?)nFUpAm^'8m56fT)RHju!'(="c_,_$-_)Oe,G&9YkL)OaVm %n17hSL7P[0R_Z/1l$GW'Y+]!.__,1r>XK1,JMZWoE=L;eo`fPCcl/&e*nSd:kh$aZM/-c?U9O3D`AKL")DK2J(>$q2LD1racpVXd %/l*m#6PHSQm]k-KL*kGIifr,8RPYe:'Yg!lOk&c-'@6!"GV&-O3]tl941j3NPZijo8IFhp-$CMRpZ>*;Qf %CN5hId&#l?CN5hI-<7t$f&ATqE%d`RXi5-l_:<26`Wn?.TMrh]f&ATqVDI\J9Yk,6(!.\Ra!+(fim1. %(*jgF&`\.1/W%Ku$>aIj+"BJ=V+tJ^O/WkIUrR@fc-`kOi@(f#VBg3f3HOgt$,]&<;bN9fM=E^*Q6]D]>26!@7IQFW/T+JpSM<`G %4HHHFj;)*,M`\"5@RCk7";Sc`8RU$nF]]Gj%1qO1"GV%nX)Z:$Xajhc5WGQ(@aM>3kT9A:[)D`BL6##M[)D`B3<-t8d1YJPTh:0p %X_7C7,kjNl3Efn/\g3[\f-N,P99P\OY(653:2Za`\,tAgdsarq_'L;,$g.2;Z8>h(]$P@-XLm7e(N=]6FdIog0"a8%EQ=;N6t-f*8o?Pk&i$XJ0Y>Sk$N71AM!A7PAD/qIG: %5h--f7-_!/FN-jk>lqpTTXJBE2@M"YE/GN]ZXLYR0(cf0`\jQ\j:W<\KrU'pBCScs>IYQ/jr0[_EfqC`f.]4[)Ib=(86eNGC8`N@ %L;PnH:Q'q1`V9YL*%B)54>8]!$tae'H=1V#f[R1sp;"90gD8+C([Stqot]?&0YBUcV@7NDc1tle3iV2aADKrc;23J@FpT&Qq?MAM %_N\J2KLp4*1(9'p.;TlV72X7+L+:*F#b0BB@EC2S_Mhb(JKC2J"(i*e]KIr+T"aKgSWD2acu+n`\09*qBhQ-gHVYi:E3k8dSc':= %'S+..]=gtB]gimS29VJA?)Y=?_[)`HXc7a.@ikbBEW+rNld/,R[R*ULBtt:>C`LjiGi4L**77c'WAhj:BW7'R]CSFNmS;p+m]`i& %d_2BS[?).32]oB#@d_+sIKq8+jbTaZ*9Jt+K4 %h[A"GB*OLn_(Nrb[#T<`1>$.b8fOO2TaZ*9Z=C6lPeesplHE%6M&u#89J5(5="&],kYC7t]dPEbUb'=Rd[&&CNI[lB`F,%[fk#Wa %:^4Oj/i@&aN;I!!T&R,;FqFtk[&)4*?GOB0m\r%C_(KiL_NcbISh'f[/!%M!aF"\ak3P7`L%IQ5,[-kW0'nI!8%V)*llu2?MB(tl %9k4VifEHXq@3@r+gk=&UH:8:TC:pgIL9eqZQMW"XYY29,6*#AYJdh,.95=B@%trNk'!8JtV)FIK/YBk^DW2Ltb[?6u[8"n0L4o^h %Rb@AG.o[nB%q6+T]-ra(2V9=tNmTKO1T<-5ZaFoj]e;0_K3aVU5\jE,*FM#GBa;8I$+[CiY##>7FN:CL)"JJ#fHnYrf3HO-Qei+j %`[bRAliQ/I"g;l^oMcf0Nh7e6)g=NgdctbR*<"*0(:$TeII@(-obRMjf!l]J]A?,jN.'*NrR0.'h8[1U>AQ@qV3f`f1deaW0;t,R %dL=sO^^'`"2i,<*_1h5[if)p3"u]cK\4R?s/d:udc0h*99p2lC35C<8c(&&7:b-,;$I %^*T>6kY718;DR;R>0JY:.q!lDFPI$;(1I[@K'nZW'R9pN*p,[Js"II5#bC0K"VoS\r;UN3L?3l0<5oANfc9(udB9pkaf4[s@a %cX/P9DlbFt$`?"\^f!D\hir@lcoYYWi+elI.Knh=YD/QG;t0#RnA/ %(9M2\8m3j@EtVj(5\s7q))SY"*kp;!Li17c8M6&K](oeoarpZ5D2kRr&I+;nLSL6R;A3f:ct9Mlt#BJ..L0o?6_qRU>iBVe@s]f*Ugg`` %5^s*Q,ceiT'8\'jX-)V6\k_]ISbshJr?ZE.I*mL3d^"8JJ_^6f,eH'1UAZCjl#e)JHF5a$]`&Ph(A's!Er/M6V\HWSM:u=*1%)^$ %JL#a0e[Jd=r$C,cieJ$)p6XQXXi7ch_&3V/.2i%0h;dPAp@;6qP,lJGg0[0BV*@#&dU-0Viuds,S&E-=jlf?s,?<"E%#\>*ZB+*# %"&iNerD?CfQd/05'Y-JEaiNKe;?On:Ri/]UQB?mS%tI!fLf$)f.h'2(0b^Erk2>0s"bTZ4o*[hne(0sXj-ui]PR9fu1TsSLFk*B6 %0aMRG2bk$?2==8dh*%dEPWrmJ@lR%[dHOpg6Xh0c\34rC.=3XC('UJnc9tI,Sb,\olNFC4^>0C:/Dq(0X4d0p64jO0Vp9Zd]Je!H %SDrtQa5t&`8Jbd-pW#W6B=Y4cjiD-7_p)b#_4BqZJlUd$>/Kka4G`X__sZqsT;+3sm\9$q]iaU*`rn2P"QN*'85(^98FY-h@u^k- %$42HILd3]29Hh5Ko*:-ZAdSjAem_km5=l>%':`S>#mN"eTU9,aOC3G`#Dib!$42Gml_"FmI7Q'S_$5`&AdSjaN,HH9cgb/k&J>NF %Qq2kM4X?D^>q=(UiN:*;6@pp^d:)NDb.\(@j2L=#&hJ@O`k>@]Gd*k[4SWukHRrES#G6$H9b,M-_.i,OJSF8*LKK`i>.6_Ro:c&c>T3KQ]L'?h.'$uFZ`0u6O,_5J7_()+n+&e+5q5V^)K+i4$3G^u1> %l$Z&:'!/]-!FgYK6@u+lT?K%+9Po!`V`..?0N6^HlmYfO"A`o-Qd,E`Ro/XIhN'%aq5n#5mQ.h'92>R"fj/7VXYYbCke">Y*IN\R %\K`Gq"&/1W%5P,9@9lllsk2NuJF0$C80nG7'7S[0`XTXIK'1FK'Bf %q,"]QSDP$oL!^iboQN7[?E!;3,H\*3qC/MH45Kd]gfhF^N>Du07C>E@$lJAaQX`6Xe].&.n<8&l*iJW'pf-]Wn7hQeR>-"C!Eri= %2\Ioj7isA54-. %L&Bj%a"f\cVQ/Tb6XB*kY:4SK0j$Eal0)^f4Y"FHFbnquTL77`LTWh!:YBhM[8H`t(;SV?Mbr$D@SR*Mk`,qeK>%]t,T])[mrG8' %G0[/899b9*r!?gHg)]Hh"sb8Up"M$.?5=Jn[=im>Q%[(kX#J(]2>#Krj`TeKk[[`Ec:VU\Xc[+) %5%/0#YGA>MS(O:JK/f5^2]]jl>7roUBH@\d24*Li[G60cBI?9Fe9SWZMWsk0QUn*]E]6$nA_6gejS\)d=fP=_W@[>(_$?aiRCSE* %K,=%ObSPVhhkt7q=h1(Tj-^"ETDp5Zeb?K0Q&**o"2+^3EO5TW<5bEtlH=g_TTPaqI2L_CJkh2S9jk:U.oae`]k65rrSCF!n)lrb %CZ>c)PI[ebZ/O-0VN7oH;E[`Y!5:!c*)k,eK;Qd4;5b7/ZTp/`X_L]kdd5PCOT6S+[;6NsedL%[BMB8<=rcE6mi>.\MpZM\ %MJ=l($)j**;D"bX_;E42/K6mL/gf+(h[Lr2)/*uDBl!uf1"X70ebB;)^YM=V09\iuju5fr)q$BkRc!n'N.1(aDMA.;ms@q8K(Id!ZSSb3R,E(peR?a_c%`," %)$/H\>\"E3h#DH %4aT6bWRp4a"Hgg0s28.Te^T,"d2kmQCSVQiO,)#J-hgdQobp&[bcc%fl8;ng4K6FHW7R4!c+Ql`;QkT%r\@?S-/"c79p>LD.M#b: %a7aA&\BN1!0V6H];!Kpi;e`jmGMaoSZs)i_Xe'Q0YE;F4?iVQe>5b[1:Y%&<#u'$Nlo#6fA9f)\*I$p0M^FM63rEmP'^;>V)!9GT %_;XIGfhIdcc;j?YRPp)KAC3I'of1^H`XH+#]?QLdgMWrK>;nE_RtYO]k^.`0C_ibeJt>SS2N-UaRjJMJ(L]30d:BNP?pb;?daN]; %j--*rj%_b*HO]2CGl'"a`C)[:hYrBWs2A;F#>4i4o2j:]&`U$>q^\W-(ZMZDq^_/81--rkltNHM8M73!q)L"_re_tJ-rgJ,`S4af %mO6LF/A!2eLW/"TJP(cB\AbGhXU^8u^B0F\#_s];9oI\5Z2#o^,tC\.mjI]g/De"I7QLX\_rC'ed!$&kP\euH&0EC_.-"\b/L3*\ %`F$H7Fo`)2pPW;FmGW7kr:I]?LW/"T!WJII__Smd%SDF\CY$5(m"Y'6q[<9-g1<_djKNn+.foPD2Y3@"5=u<3Tnb0BTgr06AN[d1 %q_7I`7A*\$;^tgZ!Fs/5,R4r7b$oo#i&i`5AMXu=_Igj+`+f&m'!t9>XiC+86N\67="8X[HiP_*`q$,pXl?3WN#kE=>/a48TR0A: %!U4KAA>Yft<`fct'[>S+W9C%WhDPspmtVdAl8S;e:s&VKZdo)]N1o2"W7WFPq#'*iUZ.Ullm[W,O#lT\$T/t_WAD,V7T$k3o.)L9 %(#M3XZD^hYS)1"`"Q;0[J>Rn81&SEr*A$o4Vqp790IH&gs_N)6-+CZqB %j@sJ6a]KQ3WR5-[CYfJSI_5[<,J"m+Y:skf:q?i$@g&J^C3KQ"=GKS?/M)W5q>R.GrppOWZLp",\\2>C;->k)l4a)E+Y&_l&YG*9 %(f\BUNVJJ*)G7bmdS1?.d&45)-\:Qf0Hr\$UbPt[g`erJYJo);QFbs(:@9=]m:Ej]2 %I(R`sA&VjHPBe?]/=^&3Jt>+LL>8Wf$r5cj&H"==(2G(<-gO,1V3>0ODJ$]3i& %Lr!&M!3K"4F!PEn%W-]^Q9aP,G%Tnu$Xc>!C,+V-)"*1s4bK6k/M8/Y`0-l$:R`4Qa!1ar;OB'cL*n>Q-L:eDP'>8?RN3gNNI'9) %R?>EjGoet#_4F7h%d):l\o^;VgS-%^OC[!rNE;FrS'&7@[SD:PB!`j[YbbL'dW_Kf-7W)3c,P"2!+>5!$OC6Z&g8;K=6)p0^N09*&*d!W0E$Olg:*T^*5$4+bjXR!RaY/-QkO=mtf[ %T'dVb!d[oTmc&8n'VI\DdDZ99nJkh>DEV5?Ek\2!/iTV9p@ariCU-b](Z`2FVHp=;10lGbn+7Zp>tdl-i'N<=?- %falU:QJ-+1FNr!1=Y15D6Ua/VcOa7eqO?ucR:*m"09Y&T=j@=i2Dl$E'[CY= %.^$rH)IrR6k7O<.d:=-.b&TB2SMUGZN%@L+?\<5([X1Na!,b"628:U&of9df*Xs>J(^=WJ$a.>/K43P[8k(Y]HnYsiWPO0pTSn=3 %%3mPD7OM%=&eIJ,0[G@5C@EBK3U!FN(B]X]QR&od'\J%H,afJYiuJP`%VSf._BrCLkp?\+e&9"2oABJ@s)*OjN)U\p$7A//N:F\(NMm&Dhjf,Un5tJLWIC'SOajIVYbWAgAdq*!KuF3=XLHfi(NhH*:,IU?u&hA?$-[p:Rh*>D4P),`5pZ$\N;;sqt9 %6ejahb($*FU>,3/q(ES(Q5U7>O6r2PKT"F2pj![kb+E6V:l$ri19U%S^mT4%3p\;>:J][Dj7t@j2'9\X3UcSIQ*/tncFgTZHYe.R %l\LS`F?0r16L\NdMgm[WhlOd %Ml`66_i3/$9ca3+Y#@i%U\43s8V$'LN90]lcWE/Q+8$X;='c\uP6L@?6PIIkp?Y0DB3ES?CSA&,4hK)?5A!4=XSp1krf76]*t(+l %(:;JEp5cMP0,IZq)p2._-eS?H_1LNK!E)2u1+'><(,V8\brcbFC0,g5E^L0f5M;qF/I+8sAp1lF:q^: %$%>;:0!t/s)A6+cFS/p[CJ%bd;;FR^qGfunUd4[:7HW12L>DjFu5[k=]"ffDNEb9)]DEgpdKDbV1-*e %nDq7c!d9@&Xi4[_Tp+b>%S8F0Xi5-l_:>G$S*)T8E2=gr]S][,g3.g0Rntkdhug8,BMC'Xp%d?GgnpB)Mn.SGgnpA_;qP:/ %VAAMIq:]$-VA?8T^:)V:e;BrMqAtFaFMIjPY;F[.Y9J.iAbuJG'b#5r0?_!UVJ6k-s(dg\N82$QpT8*Wam7oRI'g4MoD6ZJ*u)Y7d<2nS]#>]A-AP,eN:nXg&h' %;O64#t7(IZRl,^P%N#Qt&Mi'OM@7-&E=ClLcj:Tf$bs$H0*:i?*$5[deG]YP9mISQF`P97drF?YrL(&Q.Q2+hac% %:K-e+#e/%sq\5=i%$c%Oj_/":-;%L@N;puhfVRfC#aqFX?3=j;QLe$SjrL5)MO.O^B,Kkni-sf&'`cNi+N3Bg.9]Z3$sQqj0#Jm+ %djjikeC[1&M4`is0Y1$ign^>ua7j\P72&=-%9RoscA.F8G>n.54aY!;sm!rh/Zg`5Ci%l!ukRO]j?:WO"F!;2]i %!(,S*_L35IG25$/9;gaLL;f82$\tlXg@=ofFT]4Up3J[ahPD/Y*F8M$a;d%GZX91u[-@T$&loCRc?jUEO.'$Q(:kguJ+/!;%7HQM=ga5h=9'1jj5+`*^V?#64H_:57"=J8[2)ag< %Kgk,^\_NPa&VS@;-^?a.eY"gS6K\8SOtf?nju1$p0ZOtFRG7Xp`&0QAU^V3">TQWq[g=b#gMmU?Pq9!C!G$)s6,=)eFFKc:rJ*/D %'qTj?GJ+a+7$G00(_Lo_Xa=X@mVCSoP6Qd!qa*G"R]"U%JR-9[eEF?7eIND>8hRKh,(5t+]c^+XB'5tCm]k)oBp7WpHIodB7(fH` %0AOS)ei]&Qali^mDqZfAeZ'"h\'f6,BDA^Z]=NsiRV.aB1kki'50J*TOF:rfd`JahEC@:rJR`7Sid5=uEY*0&.49W7mHd%`[[h\m %9\-W8bL5+79D?1!d4F.H]`K&[Q%?X40KjCfWG@fb=P7rr`KVeCdu@ugkrt)I$2st'(LD_1^qIq8HKC'p[i)A')k3u(oD:0KWgQZi %2PJ!57)_m&!mb\jZVjnS_#;VN.(;t+2fG78Zm;5lF]5,ihV-U&QW"uFp"'G0;f/Ik*04m<[-jN4nu,BfZjpSj?[[Q9D6mq21NgL= %[cQA;42%M;Ai;bLpD]hs4c>>jqip18\F[GjarR2-dDg,KBr*=9#!o`Z'L>;,qmhmm$&a7'j!,Y05VX_ih%l;b'8X8$fTFITJ72CmLDEBfq$En=tI]rCWEF %W-TGj=$VL?E5ra\6*#@mFsIH,#R,?E(J2[&!9_1l?2gUiI>XWIkDkKHZOnJrNM!)\eIM)mn4Ce %]B.2QEde8%.*g(m%hBVPPs7/_&_0JMGqqJd7`877flu5cEka\/&,j\X]@YV\ENt>_]Lo_mZZl&I3fUS?o1Doi?'i;9UQO'tlTo'\ %;tuA@CYOQaEdW9CT$KXR;q!g-O(OIE-G#D-J+`OM%%eCL8Dnm[O+i&ZnRpW=7W4p"\)'q'MH[Jb,i,!br.-XLW"asDn %rW+DA)ncLjd9aFb8kc]%:%)h>'.lnek.X@-X9A&SB%DQY')kn&p*BSEW9+Mcf)I;O]Fh,dO'AMd]g#$%Mqk1q(ok-=WF]U]GhZEW %VA=9QM+qAu/*BX,L8Y5%2cC+Y_YMkggnkilI:$3:gXLgM'jk1'gXNO)APk/cK:,n"o4%W;Z`l[VCMUJM>+Jm_\63$:)TgRi2RP68 %g!A7/2ROeK>:ZqWe[a5jAtcQSf@Jq>[=XM4fM*rG*>9-F7'&>,`#NZdI'B1m@5peoC.U17Xi5-l3HBE#D(TX(bG+aQ[MH?OL!H(# %Xi5-l!P-2$eoE^W7\__(W`CPA(F1n<@6dX4m#V?>9nH>@8ne/hb6,T,\kL]**3/kblh?O52='CjG&YUKHRuK %A[@p=,#!AEU_bHL&B'nE7^k9"FPZ.Ue46nhTVHIJeOHsC^@R:*3L`/UYbMb7*hrEr04P?:+U,Li1:V&gKn"j(-?cVm/X8NK9QmB\ %F5mWWi.Xq;WB\,dU5H>1GoLisc8M5+JJSe=i$k;"a*rN2>IoKjrXp\bFIF@@AjMBW-71JUVOijGq(JnqL>HE=M5>ChiHJ7j+.@5: %AjFlPHpfo-juRX>cId52lk',qgR`_>hoj?jST.7XW%AmU%0K3YFBr";%B6-@HC,^]?0HP?NGD'BaX&XB$W#Hca)q[sl]U>u\;&*C %eIZf\6K/oP<(#$R@;u`De7,Rh?)WJaNGE4u2:-IPNGE4u25&\^/?Y]2;N[0X"NdnDGqm-?_rQbkW-]<:>f/%8=I7l'*Y-fK6u0T@ %F]_m9Zc7_\=TI'Xl!q;/MgR)tNN\V=_(!n0qRE=GXBTg$45%bK&qCOgj?Med!(%Ir;/&(cn- %X:+lh`-Ph8:Sk;"/sr^N%rO?IRPK+(!oSf>@9o62_Zi%.&Cq"BJ#IZB>23Ol7L,'bXi5-lc$1%2[MH?OL%kEACb9O'$baOWD(TX(92B$iZ*h)9/\Or:)B0dF %eC(6!Hu(BP;[^q@#%\->Rp)ob@_k_ikj%fJ[JWb$2/cDdOst3!DGpp+09jD"*`G^pl(+O+VAA$@7An\.(sc],EKg$n9J(1/[O>:Z %GH0"$j*?k4/*p$@,C@?Sg2]D0:T,afM$,quE9Wl6@qY(63]Y*A,Z %Y(653mYoL2>X?9=/?,ql=W1mS(Ha?[FdJT_P%5oq'el_)g25$-]@b$4YSJHD;8U2]k1JpY%k8p-CUObki,YeU>E(il`LY0\]X@pmUN[+i\X2%-s@]fD2p/JRMi1G6`isiX5!< %=tC6!O=dP,&sAC8#;=#2EaX8XO]i#SRbXE=Mps/N0FDii4XWY+`thOQ>o@L*kGIIk&@p)O`8nF:X,F25HWVj6%>L %B>domW4@Z-b2+%`=;OlpTlCN9Zj,=-@;ub$)VZBcMaV?RPNi9n4"I.Hcl-lC_VuK&HgM#a0P%PFY$]'))OeXERD^!j>/Qq70-%*& %i4i*Z*#dGUFAU=F()kfO6u*p1'H5TMU`,u.cc.gN'\4Q:pV=;19!5BNI#khYFU8KBJkejkE34Y!?0Jb:_%#YG\mR-><4JVfD@%1u %M"qpO*&?:\YALe!/53RIAWf\/gs@p[$ho_gV&?kL%.X3`.*^+uAVcV*:mth@Kk2[S8b,]\teI%f-N,P$g(e%EErX`\m4t^W!;uu_Ra]X\9hJI^p#GH_eY7t'"H$`rdJh$Mts?BO6[DqetoRl %1qZ/HYV($'4MnKoKls*H6Ak(A(tPPXo=N"b#n6.:o>p?>>lqpT,afM$,quDnn$Vko[CAp_o\T>O[CF,cgcC8RCb9O'9<\/>Cb9O' %99L`?/T+M1qRlS2f:]",dFIJuCN5hIP0AT=%qo^o4m$NqELU.9Ds;%QELU-:o4$4H(93SsD(S4UC\+Rb0X]8Bl#1?WRp%UDgm8l( %@qrhD9T[g[2H'uCn.&ZHQs,4[o=YV,7acZ)@FYV'";U;bLmj(G'dn*+MBn[!`Mm,_o;nZsLogX-Yo %B@0CnnbZIP4EImX?n\#MYHSU1B;/H]i`4%8?'44Haqi`?riW=kkZ@$X]&e%1qF)"&\HTTn\!)T'j=`CU(peWRJ3@k %Kol&?rB*DbB/q8AJPg&C$Yh31hL!O;X@AE/acR!Hh+BtqM"QruLA2+M1biYNU %.c!>S4TjPSdlB+O&403FK4*oh[&7=LcL.%VA2WuVVpKr/9/ZMnpp\m2]BY15ZD#5[CF[`eab/gm5ps@/`RA*ro_PIDqZE;RY,N$] %VKY0Q$`>%.R>#lTM%*U75&5R7+OVY&:t1'NfcCYLF&*Tf]4]h3pc9V$;-anD6N9V.T(R#OFUL %J-r2mb)ONci)i5PGEJhpG:WoauTtg17qpr'G3TI5ZYC4ZHO( %3]QRBhh?s[m`g%/#pE<4oU^L+D%oDtpH^k6oBQE6p\dLSY90T3oLrPgDskN##@N-qF.\B/_.g[LiQQ'_]_(-:P*WEp<.JfOUS9<* %=&N,/21?p89aX3E*[naj8IA)&YQH@(.*3V;b@)h*pK4*`AgSt*^W#DKbkD'OkZ02#67:]WRhS85lUbBqd<7&Bi%r^er.I0o'Bi0Vho:"+@37;b)Z.m_1qoOfHdWNm6l,nHBlM!L7_!?4EmOf.# %_fg5%p/uOprIh)jon[M+K/;Z_4;gqYisE(U:$VCAA50U]3aX*q9p/2.`_fqfVlbJW*(\5AH_,DE6;mU&Vod:prb*;CRT$-RiT4F[ %ffH0)14]\]r\1KTl"qYQ$D5EkeT7dD:eO_W=5?FDF6=^0m/L?Y,.i(78`$AK,3`Q_'1OuD?ue3a&+4sc$ALJDRjN=q.Zr6CaYs(h %?hj56nAKP05PH@YVa!9Agn],K9RU2a\%:7X"397lj7+hXC1Me"]iP&ZUYYm_m/On&]#,3E6_tEtFK!4$Aie_'X:q'pb8fF(o+0\L %d&TA0ak!92>Uus\Z.fcE:dP$Q*@9+Gld?Dn>ec29Je*%*6eW>2G=>=k(=p4@2H#q(Fdp9!2Y,lNBb1,,n!E*>@@93BSq)r/q,,I] %DLcsC/"J<_Us`IBS!?d\o3lOJ3I%d%!2>K``kH#/[hlchE,@'%p=_e6@5KaW:%Z`60b]2]d_["hgM<2F'&pPY<>)?Bics&Q5hu\V %M/79]-^I6s.=@^pKb"3j0IPh"DM+G),%_egkK(\Jq)` %eXPU>2(]_NjY_7XA'NluCo:\H3TpNZS=AO&f\-!?.D5-;[2)kRH$ %>E1:3LoF'%T2sla4gJc,qD:Ht:.Mb<% %U5CFoC$8W,L4K)OZGsYrSSS[aFbtV(JY'q@c_``!/`CU=@I7]uHmBB0BCE!Rjr_22(AlDY@FNa-a'5WpWF]CVjYC*>pO-?KWLG\WBIl*m)tg3d^B;gWT"8-"qM-L=Hl0FSAXEc2'W):=+%)RhI$jKjOJ9o0WXEU7TjBn"!jB.) %`R!=jFG?umi]XL-/O.8R<0]t2A4H'%0"uNXK5D"'mgX`@FO@chnMt&p7-3f8u=e'SVo/TQ>t\+JEej4I0/82!g93?!UiVd %h8pXb!d_9Jn90CioWc:LGb&P#qYe.k."\>L*;)pE!qmrTR/I)dMDC*oH>>uuoUVr8430:\5Th\T!-Fl6m#Pa#IbrLjE?SHSd0GE! %O*#ihdUN8m0!:F:Z+UnE7tX"*G.)a44C?C/U?/V6?F'A97pq-cO+DaJ\)Y;nCd4Yp/*[[(BGH;#XGgL'k[f*=`URiE>fubKM?oNAGd@jfa;h8?Dfn6t/f%Q]_'f_]A[8UVQ6\h_>G1,PFME&ZPhOZEK3:pKg:7T`okqB7G3r8\l(OrP0JD:[mjMYDI(i7FYZ2* %f$P_%mc6'0[LQ5/$3t2/0XZ!u4N&h#/3\09U2ZL%6a"[G'51g_k/=C6>W\M$DC,M9r0BT`%(!A'Y.J?"#`%*Mn7U0[/ErR`!MVrK %(eZj7,2ZJ6Ok)e=i/$]5R3N\,25ekXZ67Hph_G)9/@moD.Nkp8k)?M"/a=M8F]:VXluSoVI45N7(K^SaK6/c-r[jI.Y+7-s.X+sm %Gj&K#BVn-BaZLW,hh82A[?5aF47D*DNgQ-gW'CRIG[lCI/QAZmd=""ZCaN=oTr4uk$l[f!NsX_.&`&J&Y.iL"h.TJ@YkQ^G;PS4^ %=cZ;JRQLd^Gs^!0DY7THYYS9_ABgmY_0/P400KcAS?"?l78/KX=N&='m'J'`.RS(;_]'rLD&]^UO.*Kkh%cm-U:WhCXoCXEl9TPj;V7@5i(8\PYg %d&V-YUkCj>CYA(e5%8AgRY(h...nYR?$nkS6f1j']Damn,O)YA"htE%'N,t]XY %(5T1@8h.LmV\W85-'d=K8hI%E8h)s<:G8^L8h*eE;N%Q\;@=nPAs<9V;&)o*6%5X9HEFY+O^p3=>!l2QPngdV#BE:%ctg<@'n.A8 %T\'0Q:*N\Tq6*DV$m_f[nkfP'elu$K8.YA:!-`Unr-$?ncA&%F$^892*7(6B*P*n]Q1n?PpD;cY; %Y('%R8Hh3F%&/V_;Df-PQ52Wt?c)pNI2Apeb+h2Tg+(AU(/cdF8#q^3n&NdD!#%@#%6H %TedI=7HI?En9t[S;0OEgQL`k4k$YTEec!4pfPG)I':n8.T5UAe=9_gh=mt=FFgKU__l[7Ydc0quICW\>m_9i# %s.[8-4\')TqCXgV:otClpfMInD21MP='10PscgE)F'E6mLd0ffiIq3D=5'_]PM*KZ2+C0 %!+SsZ\ds(nH[]@<+gfQAAJTc71FtSZbD5:@\QJ9Dqs'mHKZ\SA:5dl]kG.Kap#d*.^'""gHh=J"6u1Pf8G)VT!)8f[75SbAeWN,( %V5^6IhKA+^Cb/iCPP@i(*BDjfm3`VQ?>Iu*PY+'afVBBXEd0]VP@b59/1dAIF:[4Gh1Hm.?MNYL[:QkW(V[HlC[@7F5=VH/em-Vm>#B:TppG/5+lJ(PV`H(nXE8A %()g!FV:L6]S5MIubjUM?jES(ZqgGm]o:r=>4?4q#eB4j]_#MsEa[\AiS<2u#T"VI--hj%;Eu+]ik2'6a]k]*;qVGBTcIoJN]ia#G %RlG'X0U=UlkOa^b>MZhgB'@u]ruEOEKVhmBb)?<9N*FbIO>IXEVHKEr8`)GLehfIX3HVP4>UcE&DP(G[Q%K=d*49DD%eX_.Q"9?l %=V.)@m]?Z6Xeti."]Cg,;FtRY8c;4Nf"'Y+M2))!4]FN'0UQ;F+@#7sN!M*I\ %09^s\UQ2.*pX]_UZU5ILM- %ebjA"Cnj((4eI!kPoEouqR("Kd['=n+aU;TLrTpRWI&Xq[Ni*'2,%,=%h0b8M8`1at?XH#Ga>Oi-WAr86]n;D,[jjQ@=S%;gUZZ@k=I=BDc=?QJZN7O09<(A"PR0=ko6Zp<^Ccl:s %&G^9+YkYFck;;294Z@q+Ae-ebPMY:$AeThUMn4cVR!BJp\;B2ImjS%S%i4\t;c;^c6b3(4pJ"&9OcsI2@I8OGd&@G\7T:,A;[\u] %UgF%Jl>&_W#Te.3H[-/UkZ.)d4Cr$kQ$j.0o0H\NPEWR=3LA>4!-6VetkF-^aDjJ@6!RdD;U6qM"BcjF<@6Q"6H[RKLDKU+Sc5e2/buRKp %5Wg+2&$7N$dgqm:n<2Hu\&ZaaV>Esp2$GSd9ATL"pXa$9noSl_;hcpHlIFS/p@g6sAQ"3sbPDuYD3VNd$I(eb&*)-2^5Or[g(LHl#7<^EO-Zd0!$0_=Pc^C,RSLAZ;E.9Y,11QWcCd6`FG>&n1>T_K9pEU/r=7Vn5>L2U;I+DOHqfnYKl!4pC@5Y+Y&i^gRG#@H+h!@uE=Q[FT#*/Te9edoE&^R+1CRNio,Fo@jI*qi>Iak4noe.BAhN]o3^\ %q"Z)q>LMYF)RUjt")UdY\?INVY&t3,5Q'ahSJPAWf[F\=McL'O,]![;bfa2%Mc'MAWA7dYma#*)4Kh(Z=jeD>Gs!3P_HrjoAVkl5 %21VU,WAQab&83B;"#rQ94T:5dML)Pe3ikXERtt<.4?EJ!R`@k(Gt.Hp@PqMar7Y^u):4WTH(9Am&:[:+dJ^ %3,>2]C##r?@T#e4h\8e<\+\C=&I.)2[g"cHgLa5p0o(5 %Y<>\Aj6^!"gO\88=fa5#$1QZb/#\q:EpbB1PAS+Y+L9<+V@LX([I_dtI!0Tnc`Z>&,9%4jf7p>LoMJUmV[JTdVCkSq$hWYi77]7c %m\EGh4?'WP9QEu^WZIJ!4)i`5&_/o[l\E>[2EO@@ST(R0e8R0pdH(MeK1K<7AAZ'lY30i0rk8-9bU %3oDf/[^e]3XBlFO\e$PoEQekQ3pgcoNPUY=es-9NAWd+^c>*gPcDqZbG".B2n+O-Pc)&V"kZ\>;r@rjTKQHNTkdU&A2,^e?iApG/ %9@6)S+X>sZ++fSra@Mh_4"hkCCTeP:BPm(t5K,!>n_Io!MA\_/]0U'\g`\<&?+Do*D2ZB"Xm3;*Lr&_=e%(B08HU\@XC+`-N(eU+aXTiRt9T=k3#=5mNkZUQ)l"X.8ZBbuqm)i.GZiA1O@2Z^j'FkG&)Y %b2;$VHTAh[O0l?il_f'_mnWU@+1K8NSrFNo!]g"chbR=cM=)MXdN@#)r`;+`oLBuT %,qW3mE"0^O_b2k*'M(7;P.l5/0@l.F?FZ!4_?`5;6>rk,LY&B);L^Etrnc[i,:)X41N:lZQF9CVY=_u2]#l+n>3iSiW6RB67#cC: %%u?Fdmsuo_:(Se,1TMls0n;72o#O#IKsRBQK/g1JDrm^V;MK&W#@K08SS-rAkh!AK0T7.)S]eO+)VmlLRD8 %ANsHFkZI(([lqdAQ6\Qe0mKK=]7)e].N.n+;/3'h>(&q0Ek293naYPKYTApWOBGmgj6:PhkC)"q1;N0K/EsKLgdk27f$_1'q:1e? %ecKD+BOK#rk&ZNENc[9F,U]iO;K=\7$Z(cGV,d:R(b))+?>9D:@qMC6ZNf:/CQd/+\5?PO;"KOKHW@45Ycsc,R2@^ %"EL7*+qD^d"ENcJGCkpH6m1[bl3fmu&qQR5]aI"L-P=F6m.FMCS<$a2]',@\8J[-C,Q]ucM4lU1Ig_@eX&"S.j?t@QbER#I$1,Nj %SA^T83[lU`[=mlnb^htI%S94eGc"T`Eu(L3S4"KtEV7^db++h/RaEEicEHmOQBh>6H4r5-Z,b/S*>,HjErok7,afK3-ST]R3`K`Z %Ce12LFZtFdZ5(Zk>".;aNGQ&ZBR#MAPff;_RqlTsXEh<4^:!meR@+K\r3#oWUO?)r[sL`IoU?PXRLoTj_m/64f.Y,hRp!Ci+[1>_ %P0[0#M/rc9WP#In9u?tNSJMfH3eOfpo*CIOZo69jt25F+3Cj<[We2OX!Vl6)P(UF>P# %?^K2fDg)__M&0EU,l3k*dA-/Kof!VB0%A=3Km%MMEfB6EhHrF"ZlrUOuVf/VD5@cQGJ %&fUEp0+0qjcRmO1N%_]p2LFDqjXM@b;5__!2WPdr2sTm%A*^H86SJ,!.QhapQ&"K!%Tl3`p?1iF^&2?G;sBlgmAJbj\&SaM`X+uMqZc=J*iW7RBZZ8\1J&nA9CO9lAj:<9\Vd*F?rd$m!C-cr*p/DZg_IHih#T_AGhIb#9\;#]$i`W!;1 %Q??j+iN6>crN]L3(XcQp6+fGL)%[jj$*us"iR9,i`OVV,2Aeh72eR0^4h+jFrJmCX)6.1a9PnmZIJ8Nu8_u%WW4K2l/IH2pN1t6Z %/3t#AS^L6MJ9*acQC_D$<+C2[^K&?rW$s0,X@Y0%!($"P:O-fVoW*"rSC"U'.3I#e<;2tM:SS2DjAB,QNLghn&-D2I3MR,e*c[e4 %jR8"D%8g!rZ__"-b!i5W`^Y!cKQ_ELh5KX7eHNWT$2srQp`$mU'@C-uC+Lp%uA+][e(`n$d;P!W'jr<\+/1]M=d`V6g3BhNtCAXtA$b!Uju(qF8m]I2<0;O!*'u %dYacn_Y;knpXsK89HZ.m'1g^-qqUjWIs\.?+`kr/)HEP%nTW+Lqfj8$cDFd%RhGX)\"*,N`CNQLg$hP4+\nKQ94M;&)T(b]Y;*5FC03nf,nY64+:`uR/I0^CO6qL4$:.j'YJ%H %Q_aNC\#-HB9A.^s&#+t>EQ9DSJ"Xkp9N9pY'luG?/2iaubkdi<;PEi@SDjgR->[IXFQe20YuDH@YHNXVWKkA:f4=/hEn*&+;Q-2# %HSL&saT.h":J.YJ7eV_!XQB7RQQ'r4'.ttP.6$8A'cZ*LCQ-F7mioJZ]H9gPqVSuMa*'6Q],4%deG5d!.n!`KhK%&uQP4aG4G?qE %)/jl_*g_?U"Mr,Y0lFb]UX[J.at13sm1DidiCtajemN52]J4gBD^7*SH*8S3hQiI6iAk[_(/?EnSQ2q7R'HZTBl.o7:@&dtJ8_#l %[M0e5lT<6`/`559W[_k+FZ/T35Glje>#>a<.rB<69n%iQ_+NJ5>?&IN>g4#^Q-FO\QdMInc)@5WL`@dn.>G7+4`!TR9+M8 %';qi-XY33[K!WniZdG&:=/b:;$7l61&Ws[$MjEDBs+H7VcWh>c).V36- %Oa>W.BZ??XZI!07i>;5r7RJNl1P8#V:-DheQu4BS`(c,*`H1PG8>tP3Cn/(!^jf='`Qd]Tp^EEkf+D2Qm[Kfc9K-4W3b,T%:9-Zm %KnEs)<4H0,9O,:S^2J`Ep*tUL9]N5$ZZf5g+8*\Hi]g$I3d(qr`IF-)O+OOO#6-FLTNHDFBlf]YXS%6e\`U1ts8Kh@jhf+/;EmMu %Eb$H+1N:m9Tha[Nd@Cf0.H3(WA,KVR#/#sCR;&7s:CBaGhSAT\`c(.i)tM#!i]$Po%=?s^i]$Po9t'q5GSn2p7rO27<):2.NS]cK %V\[%H7rJU<.cTNO[)pk0C_8%q]l3:AdtTCQEhWcZ%OH2V0hL9gNbZ>[Rf+F"hGWa]a_$KdRf-bDfChbumIR&oV"7p\j@M(b@d`MO=JqIlFE)[VcOmc;E]4:@`r'N %j:/C13">c68-](_<[tPnA,0TXdie!AdbnLKmR4l]"m=@-]Yfg>dd.kSfgEXTmglIeZQ[i@n<4J):+g.u@5c\YSl0,:k-/RqG%gYPu;CNXK@>A?RI\%VIK22$CYM/9c?^(!Q@6<+WjRNdCiWr]!d0V;7IQDZMg&+_6:4JbsnQ+q*lTM8If %.\^6J6tATa;AE'4.0@4][Ao%/9p*sG?59Ial8;"LMO@XJ&bVS:]*a>.X,1GJ:LN8<)[.']".6XH/Z;ko:/[Q_Xt$0[%Yn4H-PD-?NVQAK_[2a3UBb9Ze.`L,%B*2?;6MG> %YF:LMMl):e[p$>BLjDc-K3>mfLjDc-gr[TA;4XQiU0"b&,3h$SYsKP3>%4jn?O:LL`dq;B2TJ(L;7.Mmbo,=rHn?p9(adf)2Btp_l[jg4^]2+12Vu;en)YhVF$)jE;uj;dq$a[ %0Oic9>OZ_3JEbsh@r!f,=omeY"2tuiZ/l8oVXZ:-:.p[#%IV_QF;ZclC5j/WVKEb1D(mJb=XO`I(,T!%2Q*PUduh\g$6V_G=9B"o %2$K)iV_&/TF?'.:IaP`T%(Q_W;o_XO+,eO).lIETLMRNlQF2rt&R:l'Hrr)Cc?7uADch?rGDYQ-3WLa55P#;PAN2(qq\Xq:++5lLi7lFDN%a;efC3lbY)"rtrsMMW%3+p^5`c813"D@ecs<=8rcD$Y?^rKDA%mHrYE1 %)d2B']+WKV&RtO8C0/8goHV&N<\Yh/NT%XSj#]/IPZK4'_sEN5GfM$&b@ORrPrg-0-Z08m&Y=YV=D< %;8UbXJ;#P^N=qO0"Y=]ff1T5W'X38gfP*tO^DF*gcf@-dJ-C;d<6:)IJf-bo)Nm/PBp'>@$Y`qm85-9>]TNBB,m+2VI%prY!qHUl" %N$eF9IfX>5!kXs(U,E0+>aO9FH%fE85#,(Uhs@tt %FP9=+Sk\Zq8aWK_$(&LM/")=g3gC8?$Fe0-e`PuZPsY.9^Y74mb*d.T.t_!)?=>]7CNP8fC"+Xa4%!r9\^A@mYDpj,7D\3!l/[e@ %NdWaq5H7)GF*^tG\igfQDOA>H:U`eQE?+sb*e%OG0V39j!e.S0>rH&r,.Xf&`MC[Hk9=l)5Kat9GIH0#cg:2'E&"iZbb4.DeW5%5(d#*k\E:6!=k2p2L0id*?c%k@sH!!Z_gc%`Pdd# %#d4^"onlLepp6=3GR>-!.om#0N,haVG/!dRH^T^'XFo`r(guP)#%2Z7\\Q#9.2eIZlE5n;`q(B$%Acf_`q4?/?;rFcQfX<0Xf?BVe %aIj[4-%7!VW](XVI]_:GStHFhDU`b9JqRgm@+J.,nIJAHQcjaB:+b(8G*rWjYJ41)YASES``OHE/B^$T76j)D9*i,`3JJV$!^!a3 %R&1DKSYBX))=qqdpL7:N-d4B)hR\\uoHEuQ,AUWH]OWo<7cV^XM<.@#.mueFjZKmH3Oo:l&OUL`;,:Fl6X(XSVEj?4ikb&HqR@QK %2"g\VW7%=+[0;JBQk1CJHQ5L564"-;atp$ZU,\:[9D@IG'"&_mkf"`aQO$3TX&gph0MCY4C6S[B4eDuT1"BBbi*jT_]sBZ>F\7gW,o-GQ+Cb_ChQ+p %1V(.I!KB]#(QZm5/;&)ulP)0t$!RbJlV?D?QXG#/,DP:qZQ-*LAPK'RTh0gOY`E1j.?5Uue2MkqaNOWC75L"X,s"hEaHXBgFZ/93; %YX1L=m^pN\R_PoHFWjBXf3m15$X'3C(sMi!+\NLZ6$mQP20h("FAq8bJA`*(7*BPJ>2GEe'"_p*4*F`ekt$Z/oe)_d,#@W*B_#B] %:qqiL*D)GRW"XG;OsVhiAAo`g7nPle9%%j(-)&EgH%$c(h>8:?:Y1M'moMWYM?S:IijoM7$;8noQ-OIfCtEe$EKr9n(4P32(=q!UF:0KDUo"b@-i% %f(`4#4<7"W8,]^AMP!LSncj4\:Iijo\+Rd@-1VaC4;l?MM"8]%ncpG3+R7E$Rs-iY-SQ]>bi\jRnUqa)?0(6QeQb_C&l1nq6b1:e %OV1Hgg2t7JJ0Bu9Op[>L %,8p'&psb*^*QaCMZ3V/%4<;P*2jb+sjL&F;"6.dRW2,5UAXF507@oNMa:#Nd`?J)J1?;l)knrhA)=eUnW=X>Y1$$kV4J>8G+nB_# %6[h[&9*;7>LK*o'/N4Rir\U+jT71o %q)C7u2,aiqo#O[-+nB_#9n&p-TM4G28=I3-X@hR<8=KJU$+[>c:IijoEAEFZOf*Uaq5ViqGLqom*u0Y#09^aXEtM+*-a!njUr$2q %);in=+DQmOXUf!u\Y7bVI9Yo%).1k'dZH:[E"8C14iD0GE"6%gV3LMPQ`?!"^8BDk"[?>ZqAN5NV;;?oPjte!JIS]pZKC$\ %V0+#nWY&E`DUi`P%J@JZ7WH(#LsV"P^\;jEb),$"*jL*8B=;Nh],IY8b+\,#bR_q0.l&r%mI %.3;FH*8t-[)4@1OV*/AHqtia*C"qE@J8W@HG&YoI&,`Gdpa4*+))"D>Dqjfim4=u/'?crQ7FmDSk5fIKuL=:W-gHC %@\3"I*1X6o!1f*RGrfa7k)$9,^4'WbW>4q9m,[1pEE1toV&`JdMQ7(;M=\Y#1_qm.MaTk%@+4B@#V7jDE`?gs(mpL7NhG+JOl`P* %lds\Z3EYlJ*XB/?bBs87YC=r`VkdU@9!1&UnX.>H.Cn/s0_8/blI9]gb23g]B]n6c=3H/4ZOU %9q3d`!Oc?>?cLFU2hERs:?3PK3VUnG[s4"BPTM+tEthEFq2oBM8'c3TMV544q"S!P8ho'97b4T]EXT4IRb%#8*0ntMOP=jS/4ZNn %5;aI\a4'qrcU_&+o6],Jg$gW7cZ2-9o1QS)k@DXM2s?g@+9t0#=eG[sad"lnS&H8TZTnId=Zt#5ie4rVbL,gQ8Yn+i*@2=i*X#3UqT.42@%q>9rp^_(YDTi%=O>A[QQJMh.ZLLkSZS2*G#1R7:rb$BU#4o?3uJ*W1U3r6AO*R29hRHrJafqI%X/=AA;(^=If1 %DR63WrJ(c3@faj^Ci/jjPAgb^1ND/G[pOON4`Z9qnJ8RK@mIU?fp[c^0LH&)i-c/WsqTBNc4Z(F^TA5?8V-40+oD(6i)OcQ-W-pERYh$aU-n:)s'tuBVL#X.QL5+s %hO(dC8Z(d>F.=a1fX/PqKf_6@B*aM^XA)CEg\B`'lr&XY=QF(TQ!a3m&f6`VbS7=a:f36>R]Z%WAmo)Dg %n'q,jHCkdubFCfA@'trAd:!/M1\0)Si@SD'`%dkfo4`+=r4`*,%89SqPVq9Qh0i5L(Ail)Zj %ZGjX.:bE7ffE?UkJ,u]35"?-GO,#p6/E!^LD-VKMF-%dXZ_JPdNOP>fNtFU&j6IMVs@p&3P'=U1SB%In#C,/Au9jLY.n#3W]S %M>76R96eB4P+=?B.5,]opA19Plr"5`i^VuL6JrUThpaTB#''LcIfr_tb#>ArUeM=e=_h&Iao %n#-DkjelU6%]hQJ\E@phFiH4OXTDRq5`[#$k20Q(T$<`h$WC-?64>M>UOmA.1l(S5@LPrZrJ/b(BqH[I?YA9UnaUX4M3mdU5;C9H %8f4!@CW26A[anQ7*L/3,+ABlD@Q\DcW,Skh4):.& %2+F0:kP=K\O-a,P)R5X$ru3h?Y?:Wc!BT0;O/K^Z%_jOOPO[_o5;#=Ei8J]5h>A+;VS@o(`pj#Pq9T'"IJ>Ps:[gRimQ-cZq8$nA %56o++#VutGVYH4cI0Rcd5>'[G$lAq9FDPEX(XQQ'(c6_Yd;n3J-_gBV^u0-&2*&BC=\@ %=j@W=n']g1cLi'[L!?3mUps8-LM,9sZL$oTrDAT&O?iQoc&m$u5t%eieH1:tfWpA&0%Nhe7KSTkIe]I9Un"8jMr^Q/ogQ/SbUK!i %k%9;t$f85Ea@*rOp_ekG:#$KA:#'!ko2)'[b!tNX#8-)TrUM@s0V&[T+!ef#+[S8CVEM0&T$MD>npe80o?6osV?"*1Xha$00N7cd*_u%\1:6;lr%6$/H=\U7(7?qglq:NBN\uTqH4Q %G!3F6CGD@"dOoaYGJ:El%%q5-C#P"YNA^@:l%PE5=OPIo*Xb98Io:a<7L'Gq^j'ct,$H=\DjIrA$[Op2D67&V5Y=4p$DuRlBV:&E`+2U6YG6!8mkA'$P6B`XfZ@OZc6n&O/GZ)m.+1FS:q:-lBh7aJ_:ti %p*Y9a;uV)^[2Tng0B[HbLPt4SR+d03Hq$>Pc=ELd53/?O7@NSk_Z_Y[SLjRa7aCK*J)_^"9"`h[fBNasd[cNmX]t7p6qo*b^$j:c %blH^(f^3(*Or+[KIA@]0l'%llWES-\Q()b>h0Jc04M:]BEM)94n*fH*p!72M91VF)qA$N#p\mV^Sul>G0"d,XMNpee"DL=H[smH9 %1<%=uQ'TMBq]3FH(@#.YVCD`C'#1]ik08.^1GmosebY"?buKo*Sm29g:@Ak"SA0R*?39TgRg.&-IM<;UE-\^!!+1+rD;TO''XR>e %@I)6YS?e^AN;9i+Pa=?uU:R83oksfj5%h2C(2IZ#$#foI]=qSO:-[NAf)6RQOX1H,hK,-#GtQ\,/4LKg1tNcBjJ<'KDCu8+1%o+= %Edh+eC"1^al*dBna$,*/86822*b>Fef;$TulKP;N&:<8JQIqBV"*t/],&6ed6RF6kT!%&M8B\'l\PA^-IAp]-*IBj#`Y)Z%MZ(9g^2P#tQg5+L`Qp,Rg*> %O!!2Ig>iM.:Yrj#q1FOU\)R)31D3*I*5;Ut[nQ+2P=+&5J&)&*rpFDTd:gSnou4Zee'DeFB&2[gi_5=!!OsPu)47!^C=SiJoJ %62E0Vp?g/s_A<=BDs4%WiA^OQLSa"`j[7fhFD_l84EV)5\U4b)?^[@,&*B6VoY!ftb!QsO1t8K5]/Ul;HSX)551mqgX2 %P/l^L.Lp=:)I<&=_e>Z9UIOuJm6Tr9#q56d3GQbtf!(1^:CF&r=!,cYcn%HB&bg3C,]$W3>Ib*KSd]5I(r-B)pm:FN2FmeXMBmYH %T5e32@05;W)8e,)F`a#6,&%"j_,=bP0U_T\6(kg9IXC7+m?4WQ2gaQ?Bt4s2gpXcC^=Iq=4NGQ&72A %>KI(kd/?qi1\nsus+2M1ak7d30Ej1oYe+PrSmMbna,)>1`%C`*2-M=sWp?5Kj'SSOLC=]i/erQ]dfl.k"n+eKD>53H8D%p)d*iJ& %4nG>U2'7HBZu>bbkclq_JrjhpHn_:BF(HPt;)41(a\g4;Gof>[f(_hm%Hj$WF[D#h<#C"Z]DIHh"!X?k"i;ik%AH2P/\j_,H=31,rD'>rjp=/GGuqm5PrAHc@t=iRqcl"7OnU2Q_T_"@b2rZ6!5i*3a;K^)nfq(L@fgltOGIFT]BCbV %JNI_^qG+\W_J[369Tk]*`g`Q*JPSc?pXk2d>QF\3K3@`:0:tFnOW&):HuM)$,eNS[>:s)h:AmQm4:PnKnO[Ve:]Xb8Y]ch%*ggs+s1'b&k_aDp:^%Y %>dG)M\q3.9-M`KO?,8$]Nl:LbUY]dVjiZ86WgBmHQ/c]3'48>&="`u]:3u.3?Fa/g3T[)1Y8e2m;(=fFcYU:85d.*"F9SjQ7[`>q %991^.HuL)e5o&Tr$7R\L3''+GfGB/ObGEi.h7r\""F<`?eeb+h_&:PE3pqX#p:cWR.D#&um\qCcXfS\!,"[AeE`(p'mM%#SgKX24[=tFbBfnj/[bV^?OBp8l\ %ebA,"r*$-Rh0B62hG\_@Uf4q^-d?3%$A)/%0O,>sVU8hU[aS1M %:Pd'f4sK3X9jQ<%ar'UYi\m-bUHPQDMPG<+&A.54U#2tA4=[Eh6d^cEc^bgX6?^J"43iJ*&t%)Xe/>b,mdp)XQ+ %(>9de]s#[gf'lf.4VX\aY19eMH_#?41[-bW3n(IhEEkndFqpXc>&&:5p)XQnQH*J'gP0jumTAg='\KI,g9J/\?$$\aXgGpBSsM1V %IMiBLdI]tb!]`]<*K.Ud69+i\*K(RT,o+I0n"E!YXQjmi3n9agNb4?=X[5s %ciN-C!Bd)tY!'_XqA>_=4WrSs^a&.h5s/ckbZ-%.fY,,u]m2%!=X[1Q;ON;B'3STFa==fme\ %@:);]aGu%#=jnqhGo9mW:jCMXNIn@$#&.[OmcjCI1/Xj"lnfr`^dJd*F-T3erSGRcl"FFu3)u";[OR7NKOlerR5[+Hd*H?pS^*\[ %4IqH:MLnC'9L(,,XCqaHpBJ"G*RtR;X,N:M%VS]k8dXF!d=A%Q#tJB/=V0"d;9R43/l,RU0$.hIH=,WZ25q %YsU.]$U/#.;1i`0H:lf\&G)-W-0`Vij]COtYZe.\lBZK.65E4j6:`_PZ<"pmK,Hjb?>j+l/Vh1^7%ee8i$tfGf8@7^+%JI4+>U1dL5.?b-f-OEL9XrHIJtuBV"r+F0JNb"*ho/bR:bWZ8>P)p*,+i.\sFd\h\=6DS];]Fak(V]H4E$6CXOEKo]#lkGrEb0Y`1euaP2M(J;!+A$Jjej[%TP&r+* %c4orl@aeDSBY%9H-csI,^W>ELLb,hJ&BbQ.0NXIB!pbNQ$$oU5,jPT6Y?M0%j`rl>C#]nmIJ1d"B&TG$a*FOtDgU]lpkJr1dE_,B %(4-Pq:)MT`Jg;?DX<[%26'=EdLek2]P&r)\>K=Uu-7lP=h0UlNgC@TK1.@T`XS6'[e/r9iANF<2+C:2.7a7T1_[;QkpCR/B\l=db %cN2P$JgBG@K_^Qf<04,P?5/9P'fX/13(ZE>$BgXD-+,"h.S*b4`db078]b+D?FDa,,V(G?B9CJeRBk&sc\%/DkM.&BT>0MsO.i`S %5Fr=l?^-pLKaVDkG/>A\D1KB[qrpdpOC;YDbF!klmX,F.YAS0TVf+A^obis$Qs(bg@T`6;c""<]p2A48O4Gl-aJa0k2g`fPY]bue %D?eq3I27=>cb`#.+a%q!d>0gE&]) %#ke]#7O-73hd[L&HeaS9h2*iAem7bulfQO!DSRs&nO2HtFPl/#/r@cKaqg(@ch6OhNEt+BFA%OagAdlkmBi0_*9*1ibQX@"hnHJZX.]8+o)I)Q+Gq2?%0(#GXCs9_X%SSDdiBC'Js=#/3a)II4tH %VjYG]fma_%7Q)QN\NUaiqT+o&`iPZ-D]?U/4*Xkj]*;uS+:T*j0)E"Y&;MEL'_Q7H3+VimCU"ul_dM&gDNq-Z]L6BH^g8VZ.7ZH+ %g(eENRD`ARs-Im"-WrBO42QmYdriSa$MkqU3qdD`Sm0XPe.Z0T@hEA^08/1@-,,kQcPX:I=*6kmE5c?K %#Y1R8U]X2)WMfY*n^j.(el@1_[uMU@ZfGn*cmN7=k3:_>V=JPAd]s>MHf.ZHRHCR.-?/Of??efB:?sbFXmq'TAmg\aL*n84"CCEt %q]o=B_lYL7Ma1qG3&6;3/Q\H]?IZ8k7DsD7I1"`-Juuo+](BnN4)KUQ(R`qs?#'n1`SNtUK%6j$Y'&X]K4f0"WDW36F^ugqkd&U@ %>X:,r#//1p8o!@`QRbTRcsW0]"ZdKIG)!\!`esV1D7N#bF*Vj2($&2a@b^G$"aDmNF;9=s?n+*'KTVM_0Reo;hmX:uJ9Ro:g=Fc/D,d@=OSCe*=cHH3@YVU[oSYoc<=]&m/Kj=8'3@.rs"c8hl]''GMI`_4s %)*JkGj!VXrpCZ!)]uqX1eqk4gb$)No)lFt&%=3X6!\*d#-QgQ;l'aC=5(1NXR-:Yh,1I%F"4W:6WcbL98e0C.a2Z>KeA5p->U %0`Vr=.l5HnmJejXW';;JOc`9l$b02X,H\68_^!^\6t-=YB+]p([0oYXo_sd3#*5j(P;)O^Jm+q09u?11Hm]*)LrBi]$,cAE3G\^h %,H9Q)@*b5Tlf]2ApEh!^%3G?+JuH8+(>H,]g3R;AW=u'soR2[Dr-@g_8%*G[Y;93LLAa1S>8;$>cdF)f$]EiU %cN`o(=fPkV:2+!mdtM^#HebpU=Q*7qf&cr,\]sH=g>kM"7M[?OVtXAcJ$*OMHE./6U7I\)?E8.#C6KCf/R4R1o]o&fGJfI)`8L]< %W..1\qoS`*pe"!&Ni'tpeF9R]_tE,Q$KK$;-Ol0tkG5KL+0-aP@Ht<14mlj_9mrm.i=e1%%mm<;i_nou!`a07'_%Hl'VAHun;!sIW=EqQ&ipd]C.?Wi/%NGqtYopAUKr[-"ABdTVHR9G^\G/S5HjiDAIDW1-O?`E2;V;s?jJ)1+!+@4gG?R5K[*`P!rD %CpLc"71"pmMNt=h79,tHj'ae,qL0rs3EYn4-O"t8!J/tSj7c5nZO2utRGTKJdJlo]&oIDKMPnXg`96tcLVsN#6TGVND8sI\j_5l/ %l?1+eG2rMJks&@u3T1Youi[03SNN]nI8GI$+SrO9dQ;8hnPi,UY$lSS4<`pb'iaISf\UW#bg$':%-%R4/YW@jB %H,rhkHd/'n&oFNI0DZOH^k8=3Qh14aY-f>L2M_3gG5UZkk--*nCd7Y\N-`gtfiT9Z!:C9^NRM'JrnK=D>t61.jMplR %.5BXt$fH*3P$epihA'hocP"t(4T,;PP4fsm=2UgM:FYV);HT+-dTKKgCO@@2)Yml\/I>p:X)A?VQ+n;-Ce+[+@Xn*W>V!UBRqR-I %h5F@,^c;B5mq$ZQf#9o>/ee@P0p#Oo:8Is)8*&.Lo@TV@\MeR0%&oZGPhJIn'XB %]uo^c`2@5N)pM&Y3![DVKM+e'G!.i`@&,i_;g?8JAOLS_Krmau_5rO@H=VE8ab0PWd!B5s"1-QShe'IOWC1-)hd?&ugQ%Jt8S@q#$fekhH$B;:1.<^T/WSl4-PbQ3_S=(!+TK`G+3 %j)em\.8-?3L[gU(iXl-aX.U&[=LQ@^A'G+aKGo*&G[WV`d]2C>f00.;IdJ_:fB$JQ.6MIeE^LXq"*(VaR3_%)6-QN:->C/'8A@h2 %.CR&;'fjL!0k5qV4W-9"??bHeoYZ/+YpudO\6q1_;)e_1$9;`:_BDCoe_$jg%WJ4:+K&+9JYARUB-IB/)m,!nDuS)6KN.+b'JWQ_BmVp1'69sl.X2"bK4g>h;u8jd'r\.i5mWDS8VS;i %]Ui$=(\^Ut`Al5o=I)qR)(M:AA,#\>^UL[ucuZ/T!Q %.]8'fU)2+=Hj+[X*J?/`?h.pO1mL`&/;O*,cW.%5'V-+c?o,G#;Re>o]u>JNNg1*C_hrkrk&[WT%n3I+$R4JC_q;/`p/H^)U:/G_BgW %`MD-?\;gs_RS**n%T]2Q\]BC<^8pH;T>p,nq4g$rA`F;+IIsg--.4HDcgP6K>)ou;EUAML*&uu+%H!*4S'=\@`OjIi11iNGJS-R] %KQ1WV-XRO+/m9e`E(4bO*td6a1kF1!)rk;\Gs!-k%0lUXL@NWL53)5mgUCjV68'\\7JS\[/AD?$Q0N/us'>g[c:Hdg@PjoBF %J"mJ[Ig:0;N,,JPq(Fip='99_G3)j2-mK!_hIl8@e);T/s`05D.X&l2(jhrHk$4o(B>rrO+cM %.S4guc=62MpFl:>c2?3IfOBA':0tUT5*p%:G4$12RO,is]b,L!)t/H-NL+;l)0#@VpO6&\(:[q@I8dVj[QX+cNKuXQYNVH^hH'B" %;s[!i^2)UMpK_@EBsuj#EZ'[!gXiF=/*rRIZe'02;0ZY-;28]3GdJefd>TOMiiV!VfB5@n4?:(LMmM\94S[BQ8NA.tGP0]q\f:R[ %9\TVTHck_:J'US*fEul)KTBU!cS"0F^ERHlhuga0_s3.Dd$8b%WJ>.Ah&3&BhhQrWl3mNab\[60HuSC]r5FBaa4l(B\kKbEU)85qY/XT8-rI\ptmkP"=< %a4,FK1/PM!=43Xp:[n6Ejtg,:VGH&;SS`4l5KE^]g[j:ImQ4[MR(_7cWADbWCTGogNe\[J!5e]E58e74RYOfJYI1Y(V$jJ,p86uV %nPeSHno?CKADrcSoY[8eqK]dKV3::;?7O7]g3p)Bdg.0^e3*]Fk8jMnNSe'P=-#2pZb=p3#r&[[:u@67&&nQRmp52>HeA3d[%O1m %r1TF;ZtQIcUnrcBpeXIDdc8g8ZbL"3N\j8kc@-2hDcZhn2jgEd7h4UoRm%/aZK;EU,d)Cdc.YL;VTlF%JYYd-R?Ln*@,?+g\d-N+ %ke/UMIV/!embG0V.>b*t%m6'+h-,5/hj*_72a*S,DZto7n'P@A^(uKB[Aj",>=rc\CZ&$t<``Q)]pjm:"l;kl)Us#T0pB2@f)69_ %`2ej:FrJ`nO[igFBt#]f]S^gYXm"d;2W:3/El:X6Vn4/#dcC"(h=Ik=rk)!R&1[F&2X.;NbhDE2= %TC;/hf+NNZ!']5H(Ab#nkGqTRg@@TfSrS:YQ']"bqlH%MQ7P33E6bs$#b,>$q!9C&JbZg6E;YoH %ru<]?gu?%b0LopeAsgXtR&O^2l1knt1]U.lIc)1?m[&4`@MSD%Ka%J$dh#iJn2dH<0YHH*OAD)l2Y,XNg(N\j_ir'm12lmjk]JI7 %-@SF;(IGupp)D1c%<*u?UtYu400Q12V&TFI.'j]5O>OoUbE(M!EN[nCb%ZM-[9U %k)-2udLAmp#JA;P0Zc1(ToXGS\hTm%bknI"mq@IA`(\kU$Zd,ubIcf@p&,njo_=gF]"uF'K0.fXA%Z1bDkinknqfbela`qc@N'\: %NJ7F(jpNo7jLY0\9[9YM_QmF[kWD%;6`faS;bYUR@1ou+_=`bHV:P?`?fOR_GT+%fK).o\]p_t %e$Hr=F`"#`:ZM;?-+pr(`E8nDX=tra@*DZ?T/,ZXYgKSV&fcfdIq`XD?Dgg/rHsp1J2\H4,4(!m9,Z'/PXmh7ELZ)r:Z9PWOpLgM %>VFM64"N5pce>EUS[$;Z3Yt %0l:9"]W:I(MB=0P/o#HJmG4\2r/g7nrp2FDr4(^=e9.HR/D?jP*pU6Y>\H6QKYq%iH9.G!SpU;"h$>7ptT6[X-RI#2cAT/ %TBA*c5+t(;`".jtZaB,+#(^^Co'X1CdNpMRpDF-H(U:p'FGg&UnZM&YV$=4efTR?t;hJ5%phbE#[rE`db-f5Lr*DH1H %P.7fESa2=>&$jFN8&(#/>eoqh?V_9;re#PkGd=ATW#,J+4B[>*o>'>m-E;IO,LrPoX%eIU`H1boG#E]XjB?%N-&U5.#2XCT`fH[u %@<1Qb27VdoV"385?[iW-lI+Vb^G!Z7P]k>5Y7FR`,P#B]8LOP^2+fY@HAgKtgL*)7qdq0f1dga]u;5#?P.WC\]d:/PM?D1@QpB,aoGEB4^f`R!NIRmb*kLp;BsfSV%fj@TL$COs!O$7UDo&QaS6s %VNr:RaQ"3iKsL6l7,lH)?,T*!j1"dmKQMD;Bk:#1i/GPQ8-?S[7g!Ag5()10uk@\49o[]"%D6F7/+Q,l;n+At+Fk^l3;uYJ^hjE=C %K^U+PJ(n?3*c_T9d:our<>V1WZ#j#*o6;\P09<3R#INh;$:RH``W\=bqGQq3@!^6*5$@ZS8Bj%mC:&S %@;D#U"CE$#\*bL]'fq/.KAN/uj^c.:mJ8T8aIDZX//,a#DSaHVLEP*kZ2[cFm=\6'+1DomXu6 %_G.//9]P+2$+B8kYW:[knX&=[jjV8Un-8p/-^:Ucq6;\!T+BeArFs`HEagN6*ZLoK*0KB4BTF'KRCX;RCS]W`#EWC=cuEqDoeF\%e)qGGl]hA)bRat %&L.K$N"GIjjOBs[@$i/pZ+UE+&ilSoWn_U;V#9oIEl %o%GddGi-!Xo(jC]=r)LBn=B>OmH82CT*pFO"?sje(G%/3geKIDX:W/nFtBc"jMu@q/nDp%=m-6!#]LA:\TEKWlhEn5kX+&-GVKfAI(j!o`j-([14@ai %FFbGGN%t&#nC9_d@e39nobcN2rUm(8uCLj?RU-Vsi?#`Hb[<.:FVW@3HUZ1>!,s3?`M.JP9D %k*F#-iiNcO]>+E"c@msU;1)](\H8a)jB'`=o5n^)KFDu:5AQ76$AJ;=g51JXF9uWT,r-n*"[^*ahY;JA?P=PKUA3(:-Y"5+,XI5A %Dn+->M^!uf".*Kq]M[lph@BMK;(^PRa3J(!W(V^(q]<,\dXh3IR2A %IEu8eq;gE8X0iJ(/_A61&:jS.R&PLj\c3WHD%R:eK_ssrG?8T/$jl'MGpN>Fobc`*<2dqC63T<`Ci;e%9E?u40.D#Qa@3-rXGWAa %TCm$R^CU@:9_GFqn&hA738A2MR$g\-1[FRJI_fAj?GbUWQi(CSp?1BdBLXD,,'0.L^I[Id[]Dk<o+]AJ`W1^K]k/#ql3Na+`#>? %KS,c/7:T@motC&I+^JR,7qeKHF.]H4qtT@Vq8pB?(IB3.%UkV-![8om*fe,BR"c,;FJ06dS:V1YMUB7+Cf!9R %%<2!Vj=J\ZluW!:76n;IZ94gQ\#n;+&FP(LU'+As>a`Np\ZW2hoNO;!:=@/NJ#La,@8kbt- %>7j+bWO/$dPoPN=2/6+W,d@Hgs&n0E]Y&lFf.#(LEPuoj3CZuqA=dh]!X*m^+8JqK.DFsg_IL8L0"8(;_a*7J\2X'W=)X][k7;>? %K0+s?'UdFlM]6,JOK"Ed2L,UKI.n!NmC\W%ieF5'S:msU'*8FN&2o"NOk(;Vr %@:ZqA,L[L['\&H7LO,mb\i1SKS^I7dAeUJ2AT(9I@Xa`FN7Kj(;'CU<)OR7X*FV=0r<4.B8r$f40<0gF!eBj*&_][_4bsr\35qse %'p?;O%B&@2XAsO(YD9Xr`E*K&1?NZ/`;'K-:Ye+"Qj#n7K&.H(SQVn!```+i8#Z %pp&"ZL7$)g(/kKIajOl>Q2gqIeO[F]6qX/HeQ_,B\'17"W.aBPi!]P@D<%lpQ5qiL-#a"5P.(_".Q.fV>]&ZIF:3qs?Hq+tMMZ]F %4FUeJ4i#t*E5#H7V/6j_buRX1UhQTl1d7;+LmQkfA%2-[p/idl2>*0I^\V_FlZ9_VSKW;KckdUGl;rk"+%S+?586+ %6-K])Du9qPHe"=)ZdhS3NPcXfQCL'akS;iH1!e'Ou%Ft'c-%W*ue)%mWhkb61cG6:JRlUMm?ErXn %\J6?h];8\_d"mZ/V[l<\3Va!1X(L[=3-U=P5T?\$D%5.a$_U(S@5%$[ZI\o8a4A5\]91+@Na1+2DE5[!G.;/#O.%]mg4lGQo(0dZ %>:[_2Cc)`QdLC/\c=9/]8E=fr$LqrLXoqN6L@^#_[b?O]M76<4&^`0G%1#5SDFJFphB[^U>Lt\4;qE\*eH^SRA&0ph_BR"*;2D`@ %Q@jS.X2Naod'P/R><>LLcGhZ?Bn<,OI8A"h.I0JP[qbi`T#QQ=-u^"5PrR,cs-?(hJE$5OAGm^k)J:T8[7HE;.SfHPelotZFY#u^ %N@o1i?p:mKTaK'rD=U_\X"g+f8GpQ_ST6\7eWNW5f %!L34i>KSD!!QklGFYEVE\tbSH_JPIVd8W\a4nKn@;^qa2G'#eLibG:21%r<#'h#??Fi&F)3lW7aQa1W %UE?M^.&tS*`U/G]1T7;DbE:8H3WlF4YWegVFiL)a`,SCl#5_cc[2t@1:PLZ[?g9H$^_s5eC;J^e$tk7mrSJ7]Vo"kHrg/hIL^2iH %^9L&u)0n3*R3lt7p@$2qasHUTYIYJ\8:<8%EKb&%YocR=p+m\;=_B]'2GRnJ %m?G*u(H6%Z>`1T>74!*%IqTg20ZJ4M<$Spb#FjXX_![:O;er;]YIflOV=KJA9]bQqjCE84beI^$%)Oh"lDXQAS-Jg346 %pk<#X+F09%Whg_Z5>>\aG!kh?7BUu(i%!fRDJOKJ&P5]CMdRsN-q.8$=H7?XK-5XuPMN %O'-hhNGa6/m>UEk:K5/28^Nmf:RYr-g1`NVcRIEXcMGr2=$/,\B5H6W1PjKXqa?GI18JPPIE.;fkZ64iUV:5-:^0kM1S_Zo"u@N^ %HY1d[[]?kR50Yg+K^`S-s5#1\gPGOF'O:P#,<=\[Q).+1fp0KZ'hJ&IFKH&A@:DN0kqJJ\O11Do'\XHD*Jqt5dEZ>N7_=;"`"n7a %USW"?0UddH#QF)CBV2s9^b>Tfr6LYU*\NG2[XmV\B`J'P0?Y)_(U-iEF*5^0qUu2Kd^s\l6B$NFlaf=eLDFJ>8OQ/HLG5XJ7O/b8 %n.?g]c&;ha8hrY`\fNEccJN1r%B^?=M*W,tZ_I&\NYe(8NIQ`8[/$(Xqut!s+5rn]FhJIBIB%4DFnD\@Xe'd)fdu9T3"P.Q^9iLcB5hB7&*@W%CUo@5.oA'pE9f64/g61oo]d*Q\qIL> %I>=d!cTJ_5o.HM"0<*S$&t8d5]2>ZU&]10O/NG+BV!_sapkEa,[@;`]1rjL&bTt*pe?0i,>=G&LYpUV2cKl[Mr3$Z2drGs'#0!Uf",#J\"6!XeJ%RKHK-1b&Qtt'Dn5-lerg_k %;$f[`YLT%`S>nr^hHkA^K*1.Up4Dj-]0sMKjB0mENgX?d9kV6Zm9@jR]DIbGh=eg\]'p-k,rKO@jSo5h%2O1k0-\8+B68H;Uf.d7 %Qh];Wpt:WK/oc>0RZm5:Y*;tqE8'cSg(sOT`rgRJ:#rN;*X+p4;5t0__:oqDMXYRD1nM94G0trT1M0j9=nBFt@kA1VAY/=L$.%[UOP@J$d$Ub2e!!IIde"elI!>Nhk`a"Ks/I?#"gq>hBGas#U3J0Z6M.d`s&bTO %.nj/`9kRS9(KH@LRb60N^98,a.3E^?/_aF_a#WjnQQXA!)KPMs8>"5_gXdK.j_U*T2<03F=4W#Q]7stDs=#)=)jh3$[6ab&($$b``9D;c"Hu.UEh)' %gf:t$FQ!^o\$f.3o9AsD]pIGR2*\)=#`N*4-!/s?S<@LO7siE`GaDum$X7(cXT9&c8#U6_D0T8mOEgIVio%hR$B@?VG@Kbp^O5*4 %Za7K:I/G)HO&Zna`rm#cc119MA=Eb8<-]p%GZm0C\]c*tXrGP>.7^GtN%l*:A312\(#M4:uA`@MMWP>'G1$bQmJXB,:^QZC!h";`**F,(:,Dd"e9:o9F^4&u^KR;1TYA=M=V.N6S<=O^Ti<0e;-m %I+tAtme]jHI&C^->^s#cgDm/K6>0YcNO=.0l`;O7.$A^B[]QtV$G-WP`?'=[*FR81.)N';k#*cmbWKktO8;m%S"E8VOC52)dmuA=NU8Bdh%O-kHP3"W@`O\c!ERYn.S#ZZ2UH\uegD`s\__gf>,EdL!L'"uG2#a#`S'[nGFl %_RXU.D]l*SnG_f'GG/'GRbr7H;$oV".C=e?MY1$)uR7OADle5a4;nG5hFa`+HO)EP7@[m.iZ@4?l@S3()/(f1`>I,U=..2FY%3uZZU;LAF]b?*_$K"c^Op\Kcr1Kk& %c8S`QGR\lM-[GY<,1oh+otX5V`!0Z\Fq#JYj:!&s;lDAq'i*cL*OT[b[B>WZU)f?N7r%n@@^./bY/.urW*QU6Y5;njC`?R0/_d/R %oaQXK4LT]Db1"tF^VD'I.jrlQ*(?LFd-Vgj%haHBQ1W@@%)!a7[a0^'Kf8N"-e$\gWVjI.-rYOYV+q-_R)2IT/f$oT3$W+9.065[ %Fdi:mQ"'N4#\j"aBh2ZeBa.uD1)O;)%hd>#%DjO^9KQb.Pt@Ll,V2>0T4B1+-s=P9?Y$kBYY(d0nW8q"b5!e8kAX9$TNSN4!j((N %G)IQM&>qe=bE5l]KfJsE5WI/A<.SAWE.1a=17`a$A[\X3s1dhK@%?$-Rbn4'n!@pf[3G/0VJ`.J8HLUjhUeSCC"\D$L[tS5l`FQ: %F%g:d>LCPe7:a^@Df%on,95^G?1F!:ACBb^)g+B%F;mc+UkPd:J>&Du/*CO7!;623V80jqJfOjhnF?L'O %n=T\#"M?b7BW9blaDbLc,QqbP2-pIihBpD[kNOAG9i.po4tZ+Op=[^!6JS8-0*K#!llkhJ?aQWkDT.+2SXI`a[7^LXVh(:_3q@qQVo\GXX5U,YS'Tr:g*2U9d"dm>(c#jlP.-]bR>p`=p*Ya=fFHMF7 %A4%B76ldoo8,=cOY2>u?jVXU7L\Mk=\C1l=*6q`'"`1Dq>K%GO,CtijX;s*:5Ho_&6Hp@>,DZ%*h,39DI#]3+o:)cUeek#(L\Sqb %Qr6@=;`)F*hn.6[Na-;YTOe\Qu+J9$(,:?@8'G/V" %k*%6-$AS<]-qWqGT-K-d.+3f29L2TB5XXZ2,mE[NqV8fG1_R2qn?Lu&$`&0PB5]fpI8RsSPH3=YT3hsqRNO<%\W[,uC?h/:PS(]h %R8@u"H2>\Z*cG-D(7+3jF'%/lbOHeU'jlVK4tnSgmd;hO/AM"jc`a3oq6NRa]Q(as;f8B-GtDCaIDQpb>(ukO=Xgjap@5,:=/s'$ %_7TfP!]Da[P;!&cX&rJ@4l1*lS89M_'EKst!rJN0JBTYIZ=R>.&0S<^Qun>*J;bD\%XiB/h.nE1"ktVMrLmu+.RpYb^u!XpW`$GB %F@]/A#?kmI1,!Y[\Rlt:q;c]Aq/@>-\OmrOgdF0k]Qi2uuc%;HZ# %L2J?:r*+pgFLsJXm!k_U+k-E='&==W%PB?JT(-Y*.bl(o:r8I]9'mnRr3]3$K"_WJ^/0:dEf]%=dkRbD'1 %hAP_89ai-8;%NlFI5?&q"bh7/@"Q8"!%==?G]Z"kkGh`*0n@!\F[PdQ];8?CV(%uA" %Bqp2+p/p]qi'G;XIc0KtUdhpT[2QQd(TA!WTr;*Bq3[ZBWUETdUE5k\H5E#.$XnL#P>$aoP-3%r,hb_i)uZ4Z`*?mSodu4C:8DV] %Ohn\[3)R>#ZgAc.Zosk6nE@+G,WD1U5\J6uiC'[aH3!JL-4./21sls+*QOsSb+ll)(RT<*O/sdt/8SPi2>m#\2M<@-QRUkN_f)qa %V+`qH4??dEO`u%lZMhlAQur+$")mj"=D[oBW>j$bSAUdOQs%Vn0rVGF!Q=m`+9juDI)jDO^eRqO!'I)O#+#8p`H2j##IsWO*(Jn> %Q0c?]QL"XpFbLZZ4dP!D09*?`5;9r%/gb@q@m(t0\R,8,q?+8k,^?`,$E(S=p#q"DB6C<6;u7:.fIOUdX4K;i<kj_eZ/0kQG-en7P&,?)[ce7[/^=iii2o_A0TR,KK/MQ5,bQ#gA$p<)a06B<^dpf#*9]4!7"6c9+>cG[V%r:Np[XSo>pXr %m8\dK\h.Cp*!RF'`gDj!080lRWldnTR=e%B9eLcc//o<7[Y>uBa^qZ=G3k`9.Cc,-oem/qjof"2PS9bIN)9c:tD?ncUL[0!,VgY8gZB7M:D8Z5LY'!t%2Ei1VR^pB/2H!E_@[=9*YY=X%I(`B^Qi"pn %OSN!s3;b5AK4`rD^$7q#8M^:gmZGL@.W[hI7ebPKMbTg?UHO74gB3"<6LaiN[Dd<9,dcns4l@[kO:;B$V];1\$,iNY=DY"0UJCCK?(VCa7!5,js9Q$K0fNoSep^GS&[$Jt:\ %`6Q&W3Sg1P1`L3s//@RFB"7\]pAr8P\Y%?!PE-SLZ`h#o2-PH`i(j3IQ.qQn$FOiTJK>/HTG3_aH1.T4Hu8cgEY569 %&J1+Uo\KaugZl4V_mV.9s6m$\%nW/19MTk_kF_@nZS_eU-L7)mXRBY(@uM+>J(+SGjT4"$FmrK^XIVHfD@U9B674_)N#+6b?W&\p %1JROXmiR7Q_pWaGVm7!eboRt@bN2.P^,3I*X4%a]Zu/Ym*%+qa52PT,pY^<#G;0WTSQ#MG>*T1Ldu$N2_+@<]I]a>khgF4\]\ErW %GKK]s.e_;_gFrph:oA)15e?&RSXcXI'f?AZ6;"W'U:(#q_'MFe;8?G"q6@Nk.)u&Lk4=e-l[JO+GH5'(HJQIC@!.^]bK4N$/0OO= %&Aj#+?m1>,KZ1.LCa;&WD\F6E1k5b\F:C7m&$Wjk`R0$]JA+1Rk.Z!Z_d9S<#=;PF]W.!Y3_\+%3]<&qqAKh+1f_DkSUUWYH+oRpj]ni9jFlho2S0p4G*$L6RchmC@>6o:Ip=C6a[@30pjfg(+f*jr/JqO6EbFRTjI5SF#Xocsfht %45udW?YNO%)eJ2_=o51F8j!cSgpE^AJ`iB8jJ)UW%ot(3L8Y!#ElL%ha\DXMb[D1WLU:F&?Q+s2Dg.[hpa\He<]V>ZrPT)sNFK/l %N3@fbVgi`X(hL8V-<`icfRutNa%n<.)>CA^^calUr$E1BBTVjK'HnP]#](nR7E@t0lFYWE,"*5:_#Yrpeq9X7('4i2 %ocWU*qC+`pH4YBoUe&D]HI/US]oe&S0s_o86po/a@fSM2UnQg[g5%ffOG46.W9oTA+Ur&bOG48?#A>i1r.j?n6C[d27+`)KuGo+lX3QK@;ub$g0!8^\38dm7OKoMre"VF!a*g.p^[FN %"KM9#nK.o'&#@-ln/q2!gYtFqKL1)fC4^VM";5e.;_-0!Sro$03&"Xm(d(aI:?m7`4`"n("/r8f3SP/FMhY!FffXZ=`BY\/Hm*K5*jh5c4`9=p, %*n?1/k]T)$41a@+D_?ZXf2/S-d35/nF[l$NOn;<]gIei$>K"r'SX7tBJ-$:+7EJbc!j'$Gs;&0i6j(nU*r_YhqcD#3mJ560.HgKAWtEJoTDC>C&T`=G#b%j+_'H!VOta`>!L%VQMCbIF3,'QB9Ti"gW3"8E0Zgg^PkeGP %=/%qd-kA'"\Z$*me6u&N^8KIUNjeb:1A`@io@$?^'hRkdjA9CqAN&=?H7UjUm+tWZhC=6Br$8BSmV/c\`.9YtpPuDCD@7"t.>$O` %3`[<`NE4j(5S8Tl'Uu#ij^8`+bh6QI,In6H5b?Y?kQ/qk?"O0;9jP:HnUL=6JuIN,f^g@<%l*KTn<\C9Z3>*L'f_m]-/.U.90?5% %+^(:i_U,nP([[l;^,g@tal#HU2`0:7BY[#Wts<<<+MOD,Emp6BSu&4ZW(nnR8=lNh]X2"FWE6Ia.FO.-NLb6,Kd&7Z-YOJ%h0aBc2;j9n*AD+ED;[GrG6O=ime2kLmoY\#k-1%kRe*$qe1e_lK'cfuV'A %A*R+O8nX<8]0/>2?LF\^Z+i*N.DK];$d/)d?HC+oQ)"%?b&hq:,5-==e![#)9p9I07r@["Io3$Kpkqd2oR*?3B`e9:!kLUa1ejX28p9G&TX?<8T-c8d:+6;g %9FCA^'CaUM3oc5X9u%Hnn=et[9FM)!'-O!qYbqg&X!s#=_[UGIDJm@ueKM21bZ`hu2mB+bps8irZd0dh^jk2O.Tda+!rhUQ6Wl+? %$2DjDktIA]'7VS)Id!s<9,!tepEQC7;.[DNc25&]#UhLc8ETl4IT\Z#Vr4a\k5Ff&VkUj-RJ-fh1"jJebIep/FqIIHZ-<(O,!G=I %Ibmkm(^_)3.>Xc5Ik:2?WeZ7fp-M"4#E"S.p7fh/eR%h>e?h.#k%AlMJ$5_VNYOL#b9$Z$(.fr>+luDpFmYuU(8L8nd@'&`e>F\&>Kld^(nL6uXgm:uK$? %MRLG-&CUq'!,^Bkf\RZ8oDg48=MkA1M&pWZ:#IZX@%TY_ZmD#RW_*U1D<]8j%L6j-_3R&$4&!"-/m1FaLPiOY?q[nk(a@[3e&X.T %9CC10M[?sWU'L$Q*PU>`_MM60d0$i,8k*4J5/Y&g"ce(OqI;WB=7j?VB9a]qFhUfG$^(&Q+ko %9ZTH^`32Ajg)'#ZC`?K7:!dJ!3jgiGcL^^LZ@?QuY,Og[;L:+#SCi<(2llM/_o1kun^,_hf9X];gX'5R_@Q$[Z'.4c5;qtF"s0M" %I]`UsRS6KFl:2))XVsEUXT3KVbL/[sZ,Y$sp\mIhDcQ/hgkRueI(f2TH/=0SFBa1IHZYJ[oLX&d]hi@\GpgRfg$,M@;B1-dc=b,T %q)%;E\Ria*pRL`QdsF7WFS'DR0b@QP;Q`#,\bqn+8-d5,qr6Rq.Ej`;8,$Z#n'OT8^Z&6s62(lqKE9qlWL(&>g[P!0_%)<,M&>'h %F8[m4V]/-UEp'q7MFXWs@pt"^5EFWid;1[H/+mAkWbPZ/jcXWBP3e:g]mAp.2%O,uMr-V@U'e?=i`;<%ZbO9)D9%]TnX?$GT'X+3 %<^01YD:cAhd:\1H'$cGd[=1sZV7$R=%@>cbrh/e:$N3R]%hp)jUO2`p85E&A)"@qHU-)K2)W6AWX62rGB]ki)kNu^=j'X]K2m`Z* %<";BK$tmoM?j*s@T81h?_0GoIlPpfsi,#bT5B>mD_M4*7G!+-:$]\m@@P^L+ZKO6=>3Ugo %$c`OBN/gd@2*'GZC3_%Z8(_2iUDRGJ35Pk7/B&0)^_&Iq185UpZPlkK,4Pr.ee=rd,AB[#*;$d16Yq2rCf@\L<*tECA4,33#L`*H %)>O"p*Cu++3#XjTp45&&]h8ha73eUu_84b1#^%o)(QdJ[W4JXM]mtUAYHL4Sl\cX/X:p(j?bjK1<*e-H]3Gicc>CLDV/(E6W$692 %6`R:7;FK'lIOZJLdA$A`YoV,6lE,ltoFS$e3%H2^ncViGq'dNcTt9TB$_e*bO[;*BY?jS--0u+3d_jRF\Vm&dV2K+)DBk\M:pD#t %1F%k67XL[G(:V[`U'Qh7#gD7(YoU?g`?aq,YoPl$.9pZoQ6r!P7=adhhQY4GBc.JHMWf(*Y=-.?O/1O,XVchr.'obrAVHhboOWui %>fJ:jD1JYd9GOQk3A2l0l^n6>oX4Rf?6kNZh0%sXd[p(o94d1-o!9Pe`Dm(J/]`k+5+""]`M`$BqdQrbY?%5RV8VT-VDN2e"(s6G %jh06+VfG:aO-i.h?=#m4oLU'+!Gqtt`$Y=6_9<%2.?;n/AKdj7`c%n1*T9p`[9Zel?](kkldS!`3'$GEIqU[mn]\WWLYt %PPD".E2GASHkcb;E05gVpfLM]=5lXe%n:8C2=N"MQCc@ckJb0H.&]3h*b72l&7N/-Ei&A)[uiae]a8.HR_<"Bpea\d,?))5.$h+1 %Eq8i@9$J_hHtb(In!q"N@@>6#5(ct]@p!KdC;D#.r>8SEYWP'boTeV%(",7eN.2@83%qc#JHrU5eN=)$J[Wn4Q&?:LP@0J_;d/+>MIoqYps\UE?d3#mC? %LFODb0VTbC47?/U8Yrg4r[2EnYpX>L^Y`ZA0XX@-Wri,I[4L4"m`Thb$?grW0^-&]s4pCs=S*ieP4@'LemaUr\Ka>(Tf#b7#@!Xo %+%I3:LGZV+_&nc]*-SS(IU448<9q_up!Y/X6I:%bp@JKO:;9]j+"hc!O;)I1Gq>i%c@4n/d=\>Z#d:ARe2X; %8i+%^95j3?9@+KeLc!J8qC!c>e)j1nXBiq?1pXi,]/A9;R7>L\`E=V;%'F-139)1,Zu^+'%$?!ACb`lo.cIBgF>FaHVdhM#$j@5* %KpRphdU*3Ni<92nn)16Ni$5s+iea^saSP2M:LlW%p4U/nNWD:_7E$_h\dT%&l9_*dMouYm`NZFCnFF^WR2#42QplS')UX_C,*c>X@F<8gI-R@j<;r]*nk*%k5o`6*nW;91hhKG8VSV`eBZ@ %cUfs!C2B\6s.1,kOj1&_d8C:ANSP)opG.L-7rL<^-Q!&U%]-CIHEB5!C;oUK %Pbbq=r;^d\)$41MFPhIQhVHY#"]-NJQAB@@4W%d!2G?@i+u9MEbgbg)>=Od$&7.a_ls)7h1C/LK0IuF>beX07!b;L$-Oo]3,;OnE %PNL14,XQ)S!&MEe`e_h]!+s"R_hcMZ!+qn%(b7@o!171i%0T.4&-+MbI'E%[%"]fE:1dp%B(u?^P22SXH"TTY&-+LO=YM$UrXu7, %/jZTLUa%O'#-(Ak$'6#-^^R.#j23g"[\YN(bj:=g;!?TnmRX]gL6aN$8l,*7B16DD!&K^_AOU2B!&N7@VITa9#+j^b6Y6l01LRV$ %6tRuRAsUUZi9ID(>&pP5^<'4fqC%Bj@hVI?>CI[GPOcAe7X2l2+u_a:*%ea>`5Z4T]!q]U-UY%%8EP!Aj65 %W/8`sohs+sR3mT^'hON*"A/m0Dqs9#Sk@#dn+2)0Gq'\Rn$=2o#hCnAW%oPQ#l7]6pUU?mnH9<&)sCS@!>jc,r4aIi>HIuIj!kZl %Dgqa;j#n#ZD_=K0/n/>cp*m:r<1i-!'gt%")/kIg6UM,g-lm)6);G4aGi(Rp(k.D8/kfTn!(>qKiCqe(_&fC_1L'"+0&h'>kKIc %a(Vu\R.8103,2Uk.j8:W*0OG96c!Fq3]=3`'`pkBdGDaY"9',H7sdl?6c!G\mjdhFBK4^MBS@UIE1n!n@!`8Dn,Y6^W(olXcCTc0 %pSRt?A3FR6S"PWkT>Fu5f!?>8s4Yt+<4ILe;U7tE94sEU">-fX!0i%Smjf>BNgGXeY[:?,XaE-76JpY5rkQ"+eG6d0a/dZBr,#UK %[3*H61\Ah7p`H\7*,6'c8p7lra1rP'p$s7f\k6ujP&;e0Sc16e6J2-R)sP1>9r2UW'>9Q5WC^RKJqUKD&LCaJf_hGkkTR6Uha=#< %1V-c_NsB/)#Lf%irpaC?iF%7.&.c2t*"4D+s%T?g2jO*o<8-6JmeC]MNHQc\Xka^)U`k@+Z[[l4'3_KkgQ0;i-0E]LE_3h]?(eUr %oW\bp"$PeKq>](fs%7IT(tQ,Q)nY-Pc-G`:8PQ5"g.M"u4lbrc4T%MrN';0e\)SgQbfM(FQ_CuT[Y.\A9HM`6Iu^lpFEX*R)W-kd %I.EZpcIHAAL)-,jRb^8J=>a_[kpQ-N;g$^<\D./d8u/1SlE&qme.)'=r'.CVM1]C;-J\2JWa;6#P96%h2(7qr6'IgcM8(. %#/@6L?cm[X4`#NV@DY]9)XE)_A"q9uc*S4?iJ9,Fc#Zg$JnUct4%N*60'_X&/EWei$:I/E[jDL_&@r0s"@PHO6X]ur0e!&5cFM%] %7-DOUJ7u*djK%Q.s3ODs\MWsrpkOG,V=m8e]pX/%`0B+HSMj\dkIsd?h>`Lk&*XUl<#`_>goB^fl;jIH7DO*_c"tp]%lULl1p^0e %P\+g>BNF`(X];9ss+E+bAq$[^L0Z46BP+:TnghVH75J.jBH7It((Jg6-QcCW.-iGS_CV-)\5[ct34!:AG'[8sBP+:TP4HJY75J.j`i_W6ZY3sO://h=B,8b)5!b$\22aBE7h/rC %mGu17Lp.+'eh!8TgQU?j6>1FQB1,@:Uu*Lr;e:SZ9M"u>.cCrAR--"MpFA*97HeTDEJ>9fW$'a=QNN=t[LI8&a)^RIZgp;PND %m,h4?HG@'5b=eehs(]hp(%g^3D9&:_mf5_L$J#Q)P]KB/D0G%,pL_6:OdD;Erin+&Y(#*gKmmSf7GbnCG6^KMa2?tcas4KK+d"/m %p>tW;c+Xk.?_(bDn5fgV!>9Qo[,DSZ/1"ddJo5gXe>TA$824Z2?!M/E^]UB3B+'ZB\@f'4gP0>;W">OGf-!"qD-.?59 %_&cXNJc8W`[=K*ebn@0(W,UZEu*Vb_K*RI!EPIi,ck=.ZgkB7j-(-qqlV27N$k^RW?hZU4B[q-1Hi4c?b?2l4$1C0*W\ %UQNLdb7VhhmmsgkRu9\lW[$^ss"S'8$#X(E]+SD*gZYoM3`VM^fS@jDcBd0Um?4f9SGA0@0d_D'%S#8$Zh9LZj,;Z1En@1NQdJEi %=ZL?5]WJ?32r<"\MJCu"NfGef@3q.5#h/Bp(_Cl#>R;XGkKK]R]4s`Q2aXLI\Q;k;#1-Cf#`":8+9\\N62;DPiJL#(UbMfJ$P9skX0;WB0U8] %3,8'$#/RRu4'Ioh\`>Xi3l)F6]/p'iR?R?6ofXUfL5Vn>JEt!W44EG"r']*h:(sKQB4([\i]g%7>KkO_95R=t[;gd5&+!X^8I:EM %`TA%uZinFs^6rcL^t$O:1%f@M/QcFP)J8.-".X]GXZr"4LR87KJq;st*NP4u<.X#717sRAAgqC%,.GcKIu:lj.E'&aTAsR_kCqlN %DM_Y?&:Qa*BL;;P4nJb^$m;mWi5G-bYBHuer!YmP:!dk>B*]d!>uUq92gtsQXQmoRZQgR"j+Zjs/oC\tP9@:K`XA9tMoL#)lN#ZL %FjFI_2u:(e?/9dNZ\*[ZfP7@r%0)iGmBeLT;PQ_@,D/sYR+Z3B6hb3-\LD]gBHieCQ=&C'*Zf[L$i(1V=)..bq"GA&Ke&.D]A"9_ %:nA/pQ1"pO;F@B!112c_%T?2BM[5=,UaZq9.Pac=6>^D8r"fZo\ %heNsrVt;I8ptPOAoTi,5]^S:1GcD4(-_eLW.\XU4>S@dbKa^'+r]c\?s$S.:inUU5Q[hJ9@a;Y'7?]CfhNDP;7H^?(h"+B7,Ui_P %-/WhO6QqYdW`lk'_>bo@5rDClOqhpY9+\'lZ2tMHc&l4$b]_J< %=mGu'=0l1LXo5Aed^@9UfJ&@fR"moAa?==7X'>&4mVjt+ZN#C.Xf&A3ok%5&!\X1FoWX4FCObt0<8n:")#1d`k8Kf32[;CW!*hMJ %-0#XQ-6MD9`)Q7,Q$e!dho*E6<1Z,Kq;QACb.%H4&.A,]KYbQ6VN*q3>`M#Li-^"RWik9/3<1m^a)u\R]0hG/l6@-[R-JG %+9bgL`)a\!'a;)k+LV=gh(Ik1#,=/<7;6DlD(pk-=Hmu8g]jOf^Z?oUQ)h++8?sCWlO<@]B6;IK0%8bN%PTtMs$b7"SN3]q/WFYc %`!3Tj5)cCTa`H0,gE6$X2`c%sp1(T8'j:\(j?RYjDmY0eNj>B*@#$!=>_3;7Jb4j1QUjPGf2g%iE!\#$"M0b5(9LlP+n($j%GRR- %N?I%G5gcG#Z/U%g%71"?e-ISs=@t,I#eD1<%I$-(m=(a$4/U=b(.A#QRQg$SQn!Q!a7;skQc*^,K5*MnPtfs<_RVeAJ9d`$;.+MS %&N,/B*CP;.*GfmZGTndtbV@l6JC;ZZDWPf'K8EQr!O6$U3CmZg'Rc1Vo_]"@L,ikXSB`'\Cn>+@bMh]` %7>u$q*?!s%0[`cLgkX*0,ZX"%i^;Yi;n*et+WBMj[>E/WZ;PR$YE\P*,Zh"#cH+JWa %S<[aAc6l;VZBH^/gaS8_;qNaSB6`T[Vg,+7U%dQ04-dPU'hQU3HT-.g/u_cQSa=o/n8u)NqV%Iq"?'f$:TI6GjM>o0&X,]bahuY_ %L<5Wt[QiLLo0;lr5D&+QHK(GU-&?!r]/qT]"q?s@e2CRq)fkB.8[rjWfSB&)A-#jc\N%P,1.nk`da+(-ah<=;Wa%ic,YV#;:-fFc %&dM1J^82#qpeZ>"7c4t'MMLH:PLWBsZbf&_2)j5(GLEYN1;W8nlg28qMtCs/]qNrEeV']C'Ealio9bO]aNF2(VmHRK&`-INR&bb? %=[mUbI1@oK0BZ]G?VHZDe2oiB8dXallY*5"oa=%P3i2QX>/eIN`lG^j.JOk*i4P-o`*W]YLk4ZjS8292G*(,j<7?oI29:DrWC(j2 %Ed<2<_:OVZ"QotD=FX@ek=GHAD"^&Sj"sD)Y\CC7,uD!uJrcMu`i %7G0sqBgsHbY6lD7HN'+BJb0kt'A8*,G2<14.?0OgW?&tgb7uN %6BJ&0SYQWiA,df[,OK\`Q7bgn0";2.Z?3e*3Q]2J^+2,hGdW+1-LJB];d9,D+dnbB#5"=O4,SRigoA[O+a4G[I:gDKkQ;Tm)6/l, %SRsE:1NcD%0uO@pMr5KuF.0B/bV2bL0#T/gcOAB818c"JcckAQ')m`rWHin'eGlcq&u:+m`BEPbJsG7qg/:8=hMOTWra?:[U<25e7am*;OE/3=*P^Xs)WE<(Bu1XCum4Zp;3?E(5X %doh6E'7uO9,UtUc[V*o5tL.;tfVf;LCchBAFN,mL4DBZA.eC[f8n^`guNu1rnGM[6Mu8 %$Nm=3PnI$ZNmXE.HX,1[d'MfscChdI;`.3HFaE1j]#57?NB]KjFIf#fPl#=]DY3]\Aq3*H?>ZNo`>9CK8.46';Gh>(%lPI*9L&aE %8;XN@a"oWoo>R\7Siu`:%a^-&XAn@hhEh?q#64`V9cX4A<(at=!!E9%FB>al!3B$hYD%NH!'p$@!19+P]:?FY4Uf*&h@mM6t/(cmuc7KEs]RO^jiMMePOK,Bt2FqsBA-h#^-JM!C*LH6gLr;lG/D(R=40A]9.c>i7GajPM<4p+8W9'#=E/O3&Vr1Eic+3QkF3\YJtb9Ua'J %V6Rb'`fip4gsNT@mO8&'=tHB$13QLKE\jss#7M+@.01\bZ*i(ln";"eqn"Vrg3$nPd(Z-M[#i>9,ie&a(1!.N-77WhXIrd$gOb3O/(6Wdau%;Cd1 %jbV]`?#67sIk;>;NajS[Ck&gKf#><:qK@,j#U-M^i6+\pr9o_2Z2qOW$.H:*^%E=9e%8EF]tn'$h8CX+BGkC/,OnIErsJ,W*7AX6 %H1W&^,rrE>!P,F4&\Y!D.GQT?It2,_)Lj%:^Q&6Vh[E#_uE*'J6k7#0NRnq5R+Gnp_b2sJ<@)W`^>DkoNa'37MGFqY[jrdb`[6-i>2kH^@T9USZ\^:f!^UDqp`-?1r+BWT_KSns4Z<"0K9jo!u %?Q+GHm0rK-%JXZgP"\<"rs6Ubm#EhUmWRc&?G:l,d_(oV<5[YOnU);,aJJ"(K04$0Wps/eLTA+$K*#7B=5`mDn+-2k;G"!G_nBR9 %\Mu+<6[I2Mm&bD[RQ*/ag@gsAWNuIh^=R5g[k@11'SK\q^%HGF<:A>Mj['/Ib@TT!ma4(Mj0@Tt9`/+0(2B=Zlf_*NR2[f[HEV\. %escN$-,Uk7B'I]-S-%f;qCW:A0`hE*Ymp[X%b@B7<@cD0^pV,#aEf'O!C5(jK,`MsFH7ofX3]uF9#J+[)rK>bW9m!B73nnfM*a7d\mb?Em %`c/N5JT5=Z!J*1?B0H8`N4\`"mIdL99/:bJn^(t*S6$Pg]a;^d',%DdWq#JS][Bnhn&_iZ+3B_tNUbe9V@cQGdK587iXAc#4[B\" %$nho8ig4AmVFr$5?$SI6P=%GCM+G0;1cBa`dJWOm'D'Bi>!N-2+06!KnO@OQ:BJ"#;h;95AtB@BaStd1DUVSKY2h]@jYfg:H*<.g %WESGl8rUEh06R%'o3(GT+R`:l0Wc(p3dSsC9;bR^oASL9Wd^l!@e:oBO\;l+j6YOfb:WSBSblmgom..85.E787)NLh.N3NmS5Bm$ %"*rH8T3(O"l2]Wij_poL4+L813;R9,erl&clbqC6i=i9)g^Q;ganig,BhNqn6QrB,5NnQt]'ZspeSJho--a_0%)EBWiLMe5NX3(D %UbR>1q>=dd\mN/Nh*Uf3lQ4oP;!l/>CVnTm4K=*!S^p#'$+^F2l*N[;BY9Ue7/P@qH))'jV`!P&Z$5.IWjM]Bbj[DDm#^/6,Nq+H %MW'o$?";+C[/Sacg(&sX3pj?F-:?cum.(2Q@0R=!FB\\rDG+igPYN_TSgp^.o3t=eUXZ+0`T@^U)^SGrjGN21nT4TBH*RD3`Vu>C %,G,d)#P<`q@u4NuU%:U5YuHp*,-*T#?Us3:c%7/oD-N+qe?jZNAQQ!X.AraZ1Mu?tUqM+ipX)mmkZIMi=enM>VU@G,;7'pNDM6R* %1,QjgkhD/thWftOe+^#pS9LG]YP0aDlWqVXaP?0Y+'Y?TH`'G5R]4=.fLC')SYl4!6.R9lordqP5?]-%d%)0@_8'6od^uO)Z;m^] %b!UOe"mfM\4iWfgkgm@D'0gaT!8Vs&JnTu9oC.'-C@5:fjCh]/-@;+8q=Un@%*!phiSV8!o0UaI#hlnr]U.[JH<8aqVKK)ZlWjgk %ft@`rGGW_,4ISUlH<5Knk$G_O:p8[4)4nMloR*p\1J4^AoWHOuk4)c'p9*n1i?-"ukZt/`0pbu-e[n-i.XgcC"%eQHGP)IkkqVk6 %XLk7dor_+K:@$gHd(9oYZ[3EnmgA:qUO*_^mn0&bACa'G.L:?JHM8o%hGn5>N3.mZOmfl27=W.qQec9pi%$)2pQM,3RI %Ed1lMaLQMKm[>5apOEW2-Y"J7e6W.Tg^,@*mbq+HeYJ=aF0=XCT1]]]ACXBl3&E3J[JX"H8)12[)'g#T+#kZk^sM6bm@pVQC8^ %Wh.b:D&i,#S?&G1ZIu5+T9N6>Ae/nHUaG_%G0+LiK/>9*Gn/XMGoSZcCLQ$cTs8,cnP3gscb;39a\6GA5J.I=baJ`ZX[<6niX#ih %>DPnS=G2Y]!L58+W@#KFL`Za;R1lS6"@(EaZjV %2)HV8PRX3IFR#UXha]A"[%RqGXPS+W@`M+j%m`:$d-hO2kR"%DrHq#_N`FGO,:?2OOWQKS*n`J:7C5aS\'SD@ffNk4T-KD'm6sI( %?$*N;ZMGuDFV@g&d7"Fq_]eiW/)1G^rKWWS]!B=[N[)+U%rt,T*V$6p]^3\-YL9U=pi;)qf^&0KD7:teNdnX-TRlO8gPumu %p[bW/n"uZuj#*C"!A8&"I*iql67+ZXU\NRhBXmRg+Gl@:6,S\STdG6Z,\X^X1UOe?a6L*HD50Oh4'X]fU!;,:,os[N^-r-G+FB;! %%(&$.0k/I:@'mI:4QqQZ2A\d:D@7>!%_L6G.tUe,5T'U_OY.FGg#2 %4^E79p0\9ZRYnT*`e,?NM>P-%M,/#$NP\n\n6/$'FH\i1FZOj[Q?T^tq'0+98/%V-&pkn)^WP %51>s(ojK>&jISSOW""IsS5q#lWf%+,[Fo\<&^2*?KTfR6@fRM\5hLjc`rI1Bb&Zi6)3T_2#siJ1WfSRM$uXhqHd8N9ePQ]@AkQH2 %[/i7m.X3-p0,!?lOu6k>HZ%[r8=*8g@fH"=41W\_%X7Z==c\@1$dB8haU,]NF[[:b2_[>l]J:!jV^*YbHdB(u4u548hg:*B3"L%] %ER*ChB3jc!CD:P';>R@1'lZ?dQ7@q5mpI6)bS0XmY,K`7Zf$R"Ec6$8;$2:@>lhF8AfgJGF?HJU_+lW %EY)sMNZq&\Y(oOurYT7R>A^8Dh7]*;c<:kGkpW^:i;!GtUH[X!0or)IkF]`]G7?aod@sELGpe:Qqg'8*he@/J_*00J4:!l9SV>k9 %b_%UQ(I]6LUmjoDrG(>m"Lndk0iW\]PK#+5)&cFG]R%<)/9QD[b6EnY$eI[:"8SX/iTJW=,Ypl(gL>B7*Zn,GDG.^622@ckq:-A2i$U59hW"aj#B:,B3uZ&;BMik:^2_`B#Fe$B,MhLrfhKpeXtH,^]>X]/*_l(F#^eee.8PPJ`jc7?j)F/;F7p(/h&'7K#po@]aIo1 %_W3=WGKR$HKkl.?h'k;9_nbW5O?Mga&)*S#IJrlsh)8P^i):!+BBMq6%\_DTroC;2G,EFm-VK3TZZC0F_suEJ/j"/VL?>hKj]@3! %ZSPm16ARfedq,G_D8YnsR4^Qeo_7$AF)&7I>IaRsm.:JpOMY3oDmr;q\'M2mP?1GMSa!FIf2tR-]35^F%o'j-(U:$)fk4q\U>,4r %YL*(2@+7ud.IZ^;q!:\@*T"C6a_,69)8+Q;P0_EQ19)-C*1re4[],h9E-uhhHAp6aLYgt9c"CZ)U8m6+*1redZI>]U_XQ5U9g4 %ShHc]i>,BbS<.\,#`#RfE05*/?S#/%*!X:E#p>obiSpGF>FnAFN*HG)?)U:RN']4sZh#jRFSkD^4bK'!@[=CS"G39m<8ZPM.FCmT %7uu6:Zpsmr?nt`[Z*#2Q8N*@WG?.eAt>:(Mcc(B\6F\5C&-4m7eA2Sb*CU[@bR+t96A05;@i[L'b/cs5MQc"YG( %F!`Q>$t/i@I(\?M_#\,pD)D^e3o/:R*+ZM*"74Uong\sqI.4*-Ml?(qVjH]sX)#IYYsN6JoO_qhS?f_W9&skcOBg+4OcPg2IN$SageWg;*A1TGQN%$NJ+>?h-#pNjcHt`L31dRr1 %Tp7QqfpYX`)o1&e9&W//GG3FF,MRTZkR(#XV/a1L[*);sg$RoY;?[Y2_@o;5W112Rg/uqtUq#BO`!%.l)a23lnaJ<"3KJs+E+DI\ %Tsu[fnFUda3r2[r0Z-!(i3?l*nY*H1lp6[@,!H]"FMIT_&1schRHN?E<3>R:1<$=-J?&9J3/3gN3DfDE=uha^.&4j]X0I=`;hA+) %rZ".$=a9EhlG&Y!nWElTdtacrRH-RGndddJX3^Vg!3:"2Jc8W`[/oMV-+s*a,$\0l1MaW51pHm?:4gP7ho@t;#8EddhZo&Z1Z.BX %ME.^BVe4/Loh]8nAH-cMZ[27hA2ULPf//N:H7W2^g1rf17:kR\b\F8S0Ui[Hpu_?eoO]nSjsRL)"Z2\T,*h!./%Xo[heYd1'kKlY %r4e`,H(L/PblX?Y"AW+#rams*%Yp=4A8^2'9M"lYGQ;9MH.uKXrVg.sBg[`KDAZduVJo %T%>m_"Y.Vu*NAYB\kO;`I+dc-jTJI:R23BfnuLup9*pD-fja&Kpc6T$HtIuO*4)[9h!Ubo92_L,gu(TN#iILKcP0\X5E;nHEpUKJ %BmE(R[6G:-KT]K>Bsd&]`iC/)ZcYm;Wa`%K7nj)-;cbmMe!8?0YI;lsien5Y%ogCFObtjC1lj/s]'W%FY=Q\IJ:RMMM)+p$1.?`< %'T`MZ5duVmcpTh1@Er:bPM=3O%N^&gZC&2:32D_EQe1]LmJ$7=es`kY]V(6%oG)8f^q?%)CPH>/#-Z/:XVm.Y)>%#.Z.-d)l60e0 %TB`H:4""NW7i+qC"It[t%;X+g+I:3-NuuS3+G`u+(oV1@@LW[H-4!RNH/li*WW<3%fk,NXO2o3h6(k7(>S=a2ndJJdT,::uC;<)7 %n6JjYWWil2KrG*18Cb\1Wm>SM-Lr4M,6\FVWi[GDE=VQ%ahrt,"0+,H.iMq(a@hfS8@M7@T&Y)#pBsEcWdg\ArDU)qS.,'_(9&4V %k7i"nKs'SaLsAQAhGYccn"6?c<$fiO+X*f_ZZ:>Ir,_LIZI&/LD!j=0r"gIT*5-\/l[;D**5-\/Y%1`9*5-]:@G3A/PRosM;f;F? %g,9bF(+tC8Zi`Pn#u^+N"OYj0[1"`Wrm`P$uN_R"]3ErH^Nb1HU8Mk]T'S>^Spu@3cUYAO0\3Bqo %U(9Ii:Cl'q%&P.4G3qBsiI?m8h0Y`U;@q4R&fTHKX(0,ImQ;p(BXMAYf9&rBeDr81#D"f;JW;Z1P_,QNh`QKiGu5,LV6i3QQ'm5s %H@$D1WKK0:#`-qL)H69"7U.AJqHb8+"I^lT9`<#q%R<=I]!eI)r'%=(PRgEH@q4dW@B"O=ITDb<'Eg^Diumig+D7=A4=(%12@BZh4u"eoG+=,8!#\-T1i"iR!]hte*!G+4KLNgn4qn-" %=#r>I]I=,su1a[+iZ61AlnYtu!^hO6>Q+[L59j7&og=P-GDI2m`>5Z]B:68%UqCM`u+1a,P6hh5&\FlFuf[\*B8fjg$.-<#Ynuub!Fr[6,5%Z %3=\A\V]ZtuD%qXj[/cnt+CL5h*!_%dJfmL3+rg+>p&$<-6:$,_H(KY=7*Nc^k"TX*FH)?-$XVjjlfmX]U>"keX_N%,Yl'ABZ$,U/ %plhr&kG(:i@sSp]qYV:Wm5MRk;rZ!,DEG1Fg3e0M?'fGqHFr"@_:,7W6q.u/3jPPug228.iH-jPB*&U$`3X?&KGsbrCfKVrCYdXW %go,_Q`\jaeqm@B;9?l.K_Ng^Y`op=:_E;K-;I/&Ba7W$uVJpfpm*"PUGF%4#"K8em(`@I=m)!K'O?+2Plq`c[/EH3^Z$6*Wu %b.B>s#CC28;>F=GT1`j=8U.=IiU"=WYE(0'B2O71eB*.WW^.7ss%)@nSaKO?UcMc$f=q+:k8ki685R9^Cd&`:ZjEbPR+^>Y^X<23$IBnRoIVb'bP"`CLO65,@shZ()lls&6t%sSt<9]-j4YcnM!FAqq!6ZbU9Sf(]m2A!d]`L_%8T#&-UC!9:?Y( %5nN9.Eu]6]J(p442oL[;,13mbLh=d6oA%,j[V3fq::ail@Ug"'+^M%2X`5&up%nhsC^r>SLqrpMr1QE)@hR+EP'V^K8/ijiY.PCMDg9XC'3CpRF/jFX?5t %\^/h8cl:81i\`_L.adRSJjn[XP3FkAoGd#AGq?R,j4cUToLm%3#9`6)`thiLmX+eN4\g4QV*@Q;V`7=\OY"RRj\DUYR"mo\-&91u %!REQ,NEZu#/4Xds1"Z0#24Q2n^*P^fIH;GS*^q'`2pf%sQ2*&YGlfPtV.I'Y3uZon7BVmpOd;TW2nZpd35+LUGaMYjY2$sil6?=q %BIkViXTH`\A*M[:IU;BAMh:5WSY*aLan]>g2_hqTdeTira;q\FRaUQi!p2jRWja?u>E7]8^Ks[,?A&4>8T,hfc7\^YRqLMM1^K6\ %8ie>Po.0t+Kp'a'W!OS4o0Q%3ADg&iSek![-\J&gJb)3"k@F(I*&oU9FA<$PG_>15P0V1B-Se%q.-[7\+L:'^P0V/dSuY,%Tql`b %kXoI.$hZgi>cEI^\WoD7-B,A@(NL/nT9k)*-ZUN.C9^"3-4KlUrUIXeG\X-TKmActeZX[J'=d2U&C)Sad!7)1e:nV!/&!!b4ReD/ %!3-.\WK@sk!E96"ID'"`GaMT!6DlB/LOe/5oGJH'g&?VM`LcJaGL@fnM3h!ii8 %*?-l^!q5Z\`?se0BUtlAF_7!Mcgs]'p+Ph"[ShH+Y+4-o/lOFk]]L/gM:WL&)5f4GQHh8?Wig`dcY92Q;FjqImqP>hT[,=8ZYOBu %CJ79B[H4U"n-gtTg8^mfa?JChkNf7jb4?\H;;:Brh4l-nl8(_:+W6C,1I8As[#L]"Vm;bR]"`Pa`;0n;go?5)S#8G+Ed;sA;n$(3 %TMEu,P9W6sk4]_qK\Tq3D$3E$O7A&noc*u6rtldYlCB:(iX?*##&$`&q]+c;:>ajW,?ZA %DL-eSJj/IG$/NA(9g5=k"R;7-&!_=$lVY6sVh`\r:[7l796r9$DGTuP\at6dl_oPU3J/%)L8j)STh,/(gjC_,GD+"RTaphC#J@TgF2lEXsh/*\j+rS;R32529Ik3.CSa!FY<>&Z2*NGMI%4XXPV+'KZ %:_>bV(f>1&Lf)tOK=^TA*&qAl'\'6G<$@6j=0U"FfVl=mlVm[TPis=OsS#OJ@]1@RSksH %!-O(FI2e4fZ4mN_Y!<)P,.6;<;l49>\3Y9'&4N]oe*`!n)& %GWnI:H*Ml`6M.?aFE(4S#`I0HU&29j8kkTp)]bl.l2N-e2n9SnGLMVlQ`_^q!GT-#0-iA4,eC7ADNmte,tZ6%M6,SX%MoN!WZ.C\ctHWV[' %U.m-.&!W(>I/ZqEAT>I[Xn`&'b-mP"dW"7OKlA.XcjCEj'Oh[7NY)WGMRR6-+(pT4k1bH$5D4J3UB-LmI],:NR1+nSp;?$\1be

VK#"5T,-*J'/Sh82s(!V1,3M\@6%FH3'r]aG!h-P1XM=HIar7)$f\pdZ,T,O^;)U5L#446S#E&7$!cV8hA]'1Dlg %*$<^F[7_r4">?P_%1V7CtpZ7#SFm"VZ'd>qVHbf9+RH"q@EVWFbm! %E<`,mU",=J.VsfbCmo:`TSD60rIpjsl;1J&>_r3#:!To_f5IFs;EKmlF5V4;CKh^,be7j.)'5TF+*0;"[TUi&"Mm.Rh:KnmIl9^f]L %L53R8*C1)O%tR052IRCC*[5"lKb=oIl[2Z9L5Ui&E!SbjJqp:tLXBerL5-oN`0g$*pl^48mSNEboQ*Sin.<+/K=Rc;kCmcD^j$-; %&J6K6!nVHPK0)ahKU.r=1*2$o?BVceZrZ4\i$!&<#M1Y1\h>i-E1*-M7 %+\WA.7m+_*-8df1ftlN+][%%t4K`pb9U-,0!^F'M=h+eKiD%9<^dI=]<\?maa$]&eEP.=V6,5M?+^gKbW]=&=U#@/6Ff8$0LPLX= %I2?>O+gC^d8t6C;H\YXN_gPTI+(jt#GFIu%`T[3p'h@^53r@E3DgLjmp@MNOFeO'KJ.JEen&"\QO]0P-]Q^sIc:`$En_Rt#.u-IO %mCbkZgi2/)kIi\I0K:0t,juaZEcFqE*DAZFB#N,Z05f,aHe6Xb&T0@`Z %.a:`bnK`M_g!\)n%;sHGjk@%4Ji0d2!2ic\9dVf2)tpoK@G5Q4cA7*$rZPb=6H-XpWdEk %MTpKL*BYP)2FJ2GDY"R]a/$U@4^?29pE;b"^7i %,4Be,2auo&B/B8:qDMh3FJS3AP%utob2auoILN*r)(p\20-g%>k*_8/Z^S2B07SWXPCd'^>0c;[1(3lFnq+a(-)(Na"d3$;qr'EhnCFt8-lldWNPI]uU%*jj9lSekSu;F*S#::rVU?fF %H-B1r;lRkV.c#$O5Fj>m4,JP:.E4DCV<3[+S>X6D3M\%6/b:Hs9g<@`<-Ot-cP02r"gj:9QJo;3!L](dq@-O>3HS%ue*7GgFgp>e %TS%BGBSu)ArtH2o>u*$uqE6p3T:rhY6nA:J\_DXh=pD+?a,T`Bh,W4?QYC<`aT\Ki/p^,Gs/.&J?RS!,q]-g<[e_:9Y1jLKGC>83 %;B=T]GRU42GI*'"`1WCP\p]kMi#$bt:5HprkV@h:#R)7oTZ^.ZJ\0qsY.sf%gS&+GJ]A&KTEAIkJ]DG0%c5q3r,u^i).7uP@!il!bR!6mm7Gd)PAe3&pd-tkknn%2[d;,u7rr@4sp %4Oj+l]']:?/`(#m3ia@!J[X=gpuje_Q>mAO^Ib-q1DVA#i9@1m6bN[grPB0Q4nfU?rmGTm'0LSZ$6jeJQ4L3dSe#&\9g0Cm %BflNOVgK&Gg4=#=SohP:&B!hER;*S9Ck;ZX=5^O^D-S%K7QD(0p3[N\@pBqFS)t19Q#PS0L$/@ZX^V8P>JJ>=3]\rcJaYiOCB:aa %jY9\A.Zh8*[h)i]dUls+J64adn\sFbPCn2H:a,G0oo`-7dRd^3UmfCl3J,S3Z2&C5p+4RRo:#^/MWkZj=Qls4\+aWF6#.oD<*Jg+ %@$r!'T3HiVJ`Y)h\"1>uFRh9_jOo7m(%C;pFF^;X:YmVc)Z,?#btEU(NbW#q%p*nGQWc%\5m?#YX9FfINilnd8%6f'g$%YfTKgaI %\fD=ER](nsJ!ilEH'lk]$=ndh=:6a'qk(j=T`ZI@X1#BV7V-.f$hf$*UN?B!71rOIn5Y4%FuJ&^ZMclJo+X(s4s36?4?65QuSOh)@Fh_)XI< %Nd[RP5(qff!2703S)B!KON*cl'IiYTY-C7E#I_9H;X=KaV8R4M)% %T8ifR>1m]^k*u6D$]apXI=&T&6p(>e$hje[0+@1Pddq+qMtro0X#0Fbi72;5= %im:rgbg#D#_s6Aj@sB=RWBM?t%t)%IBYdi4G$E5.3d-cuNGSIS1>D!nG&(u@'oi0Whro5h1I?f"mH$ddGF$_$oomq6hlp4R2NFAY %Xf-SpkF58^d5'2N`9Ob#lqLtkPA^>ur`e1d>C=`pTluI(%HdFPJD/7.mMMX@#O-PLg)SXAT/U7UpDa3.Mo.psm.RBYDW4IPrQiro %gR):E;KonQ8+Kl!;Rsugb'8S-e)q6J4;VE3hPTDcoB,8Qgqni\Qp8VXrLMb#YI(C"q<-q;R@5=JA0acc4hgV?^Qh.qN.e!$\+OuK %JN]*Qk3M6m>Q$Oglff*!gnT:Ud',`PT` %9V\(;BaC2B%r)V@h/5cRHt+ZFlruAT]#I7R"g@Hpp%7kiZ*OssGnBWIYol.7%rsjH*eYIA6Mi8i4G]F,m3CNqs5cj'gTg*&:D'6a'GDK"00np3j-uYq_#?'''Z;("h71qi$BeADlNGhR&E)iGgI0Fd&=t!M %H:#6[#ePFgfAFr]U]M(i1sOG_CDs!T0;hH<DP%I% %.1fRi*@^Lnl$-,Lr*GlsA-^XE2jBkG@n&WY4;4+;)Dc%I@m\k22.gfubR8"FWG.l]4!p2_B;VgSd\lBYKC7+>VbYd=cd[[!Ou?=, %5#YNog=)n`dV%h`%&+:QE+Yt"<#;p@](DRSPG$)'*V[n0"Y(X3W\/^s/cc9+/le6%;\sJ!BiB0=gJ-$f$:l''SSsT.kI`mhrkh'E %RCY)o($`#bF(-PV@A1j`GYDrNmom?$lI'>1#'G+:EP#Ks7,3`YHGL(iS08/0LPur"Kd8s]0'lfjVWuTBlGD5P:"?)deCC,-1o\(Y %h*h^PP;lR/5#[d]DgXjJm_=K8:6;F_ZTPUo](DE%C8F=bW_8t`$[G=NWOh_i\k%`VVs;]ClD!Hj\7Rh(khpmreSL!U*Er9<;g%?F %L:7jEl^T2(-JjB@>qG=2gB%Q7IX\#dc8PK+4WD)M::i4:5AF$t7[kcf@f1jd0r\e'HN,RT[C_@5K %[ER1saS'[NZhdaO<`U5/.sA1aC]*uhNp6T410QorBKUC"OlWWN:K'1!<;r8/Aa3t8Up:*^.F'&j5arduY_K138K$s=V56?Hd8F:)9pkKD%>he]&kD]DuDA,E#P>R/(Cqj?>\ %i@!+L?aWq9g)o/,C+5FC.W0%cQ6@c#gr-guZYp)]ad9?rd*m>tKN>"G1o$,d/u%SASZ?H2GNg*A8Y$Q=&(KuphKS'#V4$b.(5;J:d8iFFqRG"lZHEE)2u?$Go`h_)95"e+kLTW0=cc+?UAZX=uanS\Ln?m9+B17HfU=SUE,Z %cH4o\m-aTX%p[^^cLUR.UnJ]rWg"0 %lSSok-2pIFkftD@fM^O@l!'1T/3/bD`:kiDQHWn%\nX=g-J0;"1gR][eE$%/923T%fa7%GoVW1VEr/2Fc84A6#0HdL>b_D(:+7@B %DZ*(=G89WIF+e_4jRVcMo^_Ogk"bO"Bl0cR'[+5Hedko^mlP\>nBIqh&K@7!WH1:LQ]9Wg(4 %\4gYL`jQ=$M9A5&a8;18PIR@]%Ve)p`WIT.m@dPS[7e=6TMK!>]MKee4'KZk8E.39k4I0n37q6hR`+=_'Mil6E+hgJB"c0ZOqo<_ %R5nO9]so>-6.A8R3Jf77'p(&)l^pEGjH[[V=*[c,Jamf/Xp-#7+UN-AkP@=1Pk>d\K#HN9P^QIB[T1`1LiEl_gAP.#M6.IPXGOLfe)dC7G/+SK3T/="6.?'*19 %P08CPgVgiYh*&a+khe>uE6s&\f3`,"Y?U_+S4,;(V1D%g\8:WJU$EL54EjT1D,TbV5-^-r<)F`0FSfc);@D=0Xn9O'=.2t_\\:&U %[DjlgCfK!*m!bSJ:@:4p6j3Et$S`iF7&Hh#( %+U*AtL`!?t-AWrH7t(8%m?L8"[7ZJ%bD=_[/tFYBh^e$VH_GfDYOe$$l$PAYCWr?^NI$V^O!hA&0Q,@4;TXA_h.P:iIH1ABGuAFQ %+GS;MPK(!rc"r#`Dk(_jCbG27ImGCR;&O>]k<#hiD5R`a0X*B!:WU_RpT?C4kY'iR2*hY33+tno5n%;hU,61J6-M6iFCNIS,FcG%VI8N!Jj %k%SL^^Hu@CUbFWK@Rt+N9BiRNBgU`PZ*Ic=OSE7\PKmGb)H4BQ0 %PQ'(YUr7X=fmQX-WU5P\=fks_6YAVgl%2^4EE@l@?'lIQ %`6nf*V`Ja$QS)JM#F[';$WX&X)eh\"_M)f^"8?3%d`$IFKIU93E&"[ZJk?gldKY"N0!#N=U^\6VAT6);^KnU=2c/$cC<<$pqrYXr %^K:]GckVr96iWuh.sgo4jI=Uh(!uBFGYKeZ3R(\!I,fCRdgsoR?G7lWn%#5Zfd2D2"j223.d.K#6k"0_en_tKo4+YS8K?%.X*u[! %7iuJkIm->[gluH7."#iVbbdLIMCl3s0q7`5$B9>V#B4!%g>-#5UN3J^XDMh4p.t`$"6'm^:@C:V0qPmm8)iQg,LWA;s2GJMqD]a# %q);o%SWW`RqM7pW`g4P8T2\83R"=&%:e-[f@n%"m>;I6<1R^h]j$YRYAr[j:Sfg!YGBG^D`SK#QoITc8-f!2\cEbjjc1Thi)Tm^G %Y\l_`kQ#n+^>Yi).*9I0eW%0V1\H`5h1-_%4/,e80TYRuDtp7MFC(p%@.`_R&31MMT'?O+=A^h/kg^-R?`6PJoSjaXoQmlV3&YAf %f!B^=L1=^?W(2tBfUQ/\IOC9j@FUkc&l*G^7\U<-'\(pjt"Sp)i)]V1icA*3"_adKOS4=^c;;X3@g;$#e@H""lX %\>lla3^bjL5teq^MKq_h"8'<7J&]/`j**o#j/N$_?QPfF6kL4&\f*0nKL9k)_cRWPEOf$3U^^La,T`jm+A`hc/3R%]]3les+(tV.4L(3V"_@gUAaC\2MWZ7_?9r"EmMVc %%gNC(9*48\"LRt#63IA8;#s#b!h,p[0S+`WA7Md+.:E8Y0b.$^q;$RO;iW%2\32,9Vu;i7R1fPC]VC]89b=<#:J_V1jOf/An,WUI %h0nRqLj/smaYIt>qR`64rQASV+J(MYpN/9LNq5,^Bqu3KqYs_G_pn:Qe5@ZGaJj\\??NYa %+U8`9s(@]?Y.\c&:]\79hY$\W2)WMDG(;kXpl>bqT`RF(rZ>&>>F/Qn;V?":m#2V>A7P@JrsB"O6(Q5;l!'s3 %E2=7NrV1*!nZAd=n5W?ql$I2hOn=6,H[6BgI7YQ!/0]Ti6e.*t^@_4'!1W-Ze;cOU? %h'nQJJ1h+2`U%b^@fG"hSbq":e.;k`,3^@*G>c[rTcCm]_q57*ck`/'r9%G4s@\n%='%WenmX9V2M*IB*7mJSFsR2?8&MfaV&q&kOm,09Bqed'^Xlolf?EXiBb6cpFR7+i:s\eU-AccDSI2F %J:OCP3F/!+(TVE*qV/rI0Vt2+*O8I*d1PC-b^5]gE6IlPL_+N1I^4!ra]'llIA'!CEQ89cA)TbinOEa^o2$UgpsR*PhN/l]4p&!`FCk>jpB>^7LeEL&k-W8A?ioW(5&9cB&-AB>T(;_O;4^Z&E(:'SE/H$A4%"TW161'W@_@S]$&H7iLTsMLF@]6`,R[h(XJ2&SIDk7e$cX95R %)r5B\d7uphMaFA8P$G!uTFgUO^!EBpE#t:X<"R,@Z %:FIDU+_Y2l`TN`tL#A=8ZGI/4U(G[YnU_poU(@sl^IF>r5'[lGC,M<]CT:_=3I\s`*m[/PcV1SX8)FcNlYjKY_W=(R6A,o0hDmnaPQ7Q %-VN>bpF.!-XN\M^cK`.B-?mkj\+U?!BAI`Cjg=jS[^qLUH>g:)2L)fdV`9jml,]$"1t_Xa_n\e8X;SmXI!;0,euo0(Y7JWf]nN(3 %Veb,@^>,Z:e]&%C<_(F%iKN!UW@QZAC=rJ=KOV_X<$R4+@l8`W(YQ*a>CYl\4HYuBI3i(.\E5bOj/@g]HO42`Lh$;aOKFa:WTEAD,+#mWAX\m!LoO39F]Sj)4R(+6j>-;KgRW>,;S0r?T9=k2Bl)S %WVj+BrQXdUJtm4\&omBUg*u"9W^^EX5W2B")*9")oqkeLI%b6?B0;(@6:IYm%!7b!>-aFoA?I,f'H86l*)ChEU %d^A;*/U37FXf&(hLqT,K3tZ#g#0r.-^9J];=W4&n^>Yi)cnuSnV9biQ:c7[9Dnb[?>`M8/m%(:?e;\Q/3iFIOkbR4+9`[=WAEaf0]Y<]Md3-M% %n<4//%uc:JJa1*>g?<=si0INuTVn0DZuHg=43L(^%DB6LKT3dEm0SIUH++[u)l]3R/:R:h:&$*0^S+n5-"Ar4!OK^"N,.P%F`jXu %?=.YX[=,[$n(FGO/'QJ-Huh@8+iSENVi/XdB[Jf#L\(sYkg&Z//_b7jFiV7)#3Pu7W6t\ln/USdIXSU/krp?e`*tGiDC9opQjl=" %X*1pbJ>))UU+nEW"7`B_>;Y9J$dPf]T6'H:NB3C?-q9/)@RbRqF3>->6%\=I0eoF:Vtjn[\kUE,Zd1Kre88u)SU]Ud+mLs?US]co %c-4O1bQ-ZU@"p)K`!ftm-td/U-YAJ"URmmIT9rLI/*UYXkU0sFO`G'rm.uop@`J+u&^JVI:Wu(1'(*mOI8Pu=9Bqo_s+qVVb^,G? %)1%Jdm#TQ>bg9/0BH8U@h(X'I&`1!mS=-(SbAkN5f,g=6`!ej,PVY,f'/Mo#V4F$J(GUYjV3m[ET:"#_3]&WKoFj#oKqY*+JVfeC %e!8%Fs([@T5j>,?(KqkYD*CTE9F> %ELWV'' %K)beA5rhD4qV=&-nWQ`Or2mcihe*R%s,"3L3RHA_6N&i,&lEXmMPhMWK)@+?PqaAnim %.,k^p)g-I@ms.C[A283=I8"a(\9"rd<-&mI&G[THU6Y1>ne>f<98sO"@/gq7*ch>8+NGr77%77paVW@e!4:]J,s\j1cD?4i\niuA %Sm('H+r5l]8OqKKi]]$X.YR!I`Mf;KUcphI&-[:+Oo"8EOfVjIm\D*#dp`2hqNMU\gMTKd\q0nnl?!n,?FBpDAOZq;+J76gPCr!!+h1QR=Z9#H'I %lb31h'm:62iGP$Li!-@S>If@(TBf$/`V=^I[-T"5->X(ltHp/uF0 %B2\f1"%(hnQ(Jmi*>%M5m_]SA7 %:4(N>(S:@r-gLKN(3/j#l0JmM98p4O%[7.MCluV^B;?0&Gjem%1%*m[IHPA8Cf,HT0dcAFMcinC08XMRLrF]G\Y=HdOddDD-Sf$t %jJI^V>m4PlaA!2E:GJGuaA!2Eh7(@\Ls::%kma*Y/j/Tn]uLqTpC>`qjC0OApC=NI(6'%`HgdK91*#bR[O0I`Ki*0b+D"#dhhC7, %'1BI>$-.At]d2kf;L@k?qFPngL$--JT45`hKRho@i$qP'&d!CJE1It..@Sb5-]$XULo,*=,%R22CRg2p/7b02$RE4*1C)i(Y %Im(UI]nW^;n3[j=I"E_.5nFq(#r#V==2qZ#"C287;d42**9lHnrt;O5QMAs-HSDUmfRFNXVt,hb`9W9]!RbFXQd.A@+>]X/9i3Qe %;Q&p&k$?61[en\t#UI)+r]iuVk(7Cl;cgQ."7aJ;_C5KMQ=^j`dee"LT!,UE/'iRH-dbuJ%N\g^Y'E?OBgPX#o#qd$pdoZZWu7o6 %X1)VC(@b\pQR@I8<2"0:-r7q3*jJ9mSIe+.HYNWK#k2u&4]q8m(q$IWcQmNsEVI`ncTkKg(1RUb=qmq#oT.D)+%Z'mHSO7_(Op4.W$\@2m/.`Ed';Rr %Z1DV\&^J*BUtGKIkWG7_F;2>s\CWd5hElBl#hk\a,/g"FJ]3P;'seO(=s=;qukc %A*4(Wppl>!Pko`2`XOIZ[Qho$q_AniSpeiP[h-$;A1.pab*^r]RZ7S %+R#sjrJ9SJh2\C2c+T/$k!tYWW;M$WW.%-=%no`:od#q)G\I4P,&?o%oMd/dIRH+RU?YM:ksoi:,6E^RerL);T1c18,!i"u=ppQ` %AD[4]-`bJ%.cPb*^gpI#R&bh_a06nk9WoOPpPmG`VfG>FRB//lH\**kA;_0.$IZn %g*VX79ifpfG8r!2C6;X_nUKnrkBc,Y[tV"N(P-F3A&'LCaZ0UhN"ZEYe.-HtVfkW[+c.\J1hYs?q(kfB\!mSdC=QYV>r2:;?PXjG %BJqkFjhdXh:QA3YC[rbDIeS/Tl/['WF5aU_I62A=+(lY]o2B]"%Q#7`4qA.J_l,33*bDu6^d8,f\^4tTa";3)8S&lAHl[F#j*7DY %Ikq&V8K:h+KWcCe>U[>l'_-:GnK'4F[5m!jrj:=hI8>MG\Rp<*MA@U[\10GHgZfq:b_XUH[>&&naW_I2>[O#e]l36dj7qYH1,$8K %*8`4$?e*Q[m;3pi/![0dM*1$b9+I-t1,?BRQi&cVNn0DfE$sF\jH@Eq@NgqF1EjuAb[ba`!8J6%_iiS\jjLE@-XBMh4[8eeOU>cI %UVfdcnKc*nPdp5;S(=/l#D5W7hM2R);7=&[F59p+@(P1b*e%GAS%m;`[".=tg35T$0WdQ$*-ALrC'F%QkG`F"-ka\ub%4J9/_89Xh*C;+9Tn-@b5(KI0Yqp**YYjko;AeM4a@XK57>6bD7?YhAd8_TbP0pJO*;YMc`M$jpuh;/VX9Z"m6PMDOqH+,rk#&1PYC)tC!Rr1o.Y:hRS+N?)Lh=S83E:SqY<#@`4>=I^t4nV-ff0=#+iZ.9a"(tC%V%% %0;u@N`67q`B/?).Tmu>]-T*O#G %qdhpR-n+t(D&T8Qka0gknT$;gQ`Qc2p`-,*mhrN_fkTJk$Bouh5pIP)cnoaOctML0^X5)[_e'g[3Sp+:[s %W!MB]i#qS.THZ&jg915f\(BF;::l9TWB@1RrkL^X<'GpL&=r %3D8&p=&YL`S^Bppsf([$9>h@,mhDd<4$`ZqaJ7\718JVeIV]] %"nWEj=o$rH]EmDmPbe$mEkHg\ArsZoDacj+_&i3!H'Yh(GY,X1$5N.1o?GGj#55rADMC$_#\lZ6@ri(!<"o6c,J(:C:8=l$5*n5"*m3?\@efA60joB.HEj+l0F]fku%k_mt$ %:LkD;+#`b*.2t3=hnmr,X_7cF)dDT\-CP>E#jBr*,nPV-6>IEDO+'2,"1Psub>WS@Xg-FFb)58NOpT.pu,,3MJ@ %8ZWIn=68;f_%"qLJpXZGcC'IUQA"*Wn'8T?HhC)+W.(%I+*C&R>q_,OF,%2GG,oUAgpt-;?N?[u\F\s,l7UL#G#ehi2>$et*9'+g %Vu:.\lgd%b%l5Asp=.g@!]g:P,Q]']J"I@1\E%m$3l`.6,\ZA\LUN_/W*@'Bmg3;=TSqqq!Cs8ZIEoJ2=Qemr(9p5$%"5nmX:C?" %KO%KE1+/'q.bM:@A*UoYK.1p&O@^\ugV:53<.>lkO#1@u]89]R>6s2_Tl#EeW]-HWba1fF?>@[TD9>dt8S)D]Lqu(+H3%\0,r]&" %Dc<7<`G?V:]^X7n1!#b7#N>88#%JN(LJL-lkT'I.3Vr)aQ^uE#Eq7nsA\0QeB!]j:'l4VtDAhd87iV$"h6j*\OHYhNHUXFUH\^ou %!FC4*oJcJY@f,5qAM`f/90>F.bB!AhXgBcHF&4WrF2\Pom\j[Y%I?dHjc2rFcF\$Xk(FESpNrC`@HX*]iQcthR1U&=6inbJ"8&5; %S/hdMI9?a/;&0iOG6S10\lhiPaLKf;)P?0P=bQl"`\r]glu7TXOp)$+SH6Rs:Amm9)@AmfVS/s`hdQBRI/nIaZdUH:n""LkNrka: %kb:Z5XnGTS7-2+7X4!]e$+bcSCqOu7N:1;F_"[*,K?qDD^$Y7$dhCLX6:Y-$k\`DpH"u!Y)nLlmMj$%qj^=VB %^k6p`Bhe*Q@16aJ4Hlt:?QIlbh#?&HM.:H-P@tZ^5jo[nXDokCads('b##=Br-s8jm;_,Fjj6%dg"%i[df&e89+]<`IEc;=aCSJkAC1VF9FdeOaWbjf %X3P9T_dk3);HF[9CR?X`IuY&8L1u3Y(J#"!V1]0GaNcY:Xc^XB-;+Z/hYjggL2#h3Lb@KI?;XlZ*c3Z'V>79&o%5CmeM)t)2s2:H %=gY;>.S!O:$Jt2s\l-=U1S(QX&DdnT&+IFfPole29QIPF?5NIKZ3@s1Dnq`$b"2*2M3h6oZ?`;4@"IT5%uhdCP1 %lSJRU(u7sYRK"X([lU)%;GCfRP`=^N`cX=`9KJ^fiPHW4T$HP`7.Ye<>)le=#_&X,$PP$\2M,L$,K@%QVV6J %5rV=[*/PWW%hc#KlcB/C!ut+Z7dr4)Z"PirX[RE^)8(]4g0/$rdPWk20iqc+GHKPQDU?cY@jCc;cG2V.IJkAW^&S_Cgu^D/VDGF] %93t^WoJiE#GQKFJ_fVc.KNkP7#*AG>kmYUM2X)ufdI,,@=:9!+].Ib>aD!^,F9DQ#PZX'c4&:.oGP6*:OPR$$IetdubOj64ZGq/LnjuZ5`a77s:ZRi`&.\&D<&'Mc9S9#@t;ebUn&uFR;-l %hR%WhI?njAV'tlqfpN"52cY1D4ZcT%IB=5fg""gXa88HSOCi-5Vq69AL,;!0n]'[[:ZR%9Fp?hUS^K=cZX6GQW-`q6n,_ISB@agI %4KKf@G1dbG;HcW;aD9JlKEWHj^;lkqTGGl:F,'&Znh)*g'9[U/6Jk37o1J#B=3k/?.bg7h*U@tJA_0@]E-3e"j.bIO[-ec>Y?aOAN,JZ_CR$t"E'+;p@h];WY9l8uCpeK2[BajBdRIc&\V>>u5&.r>n#PJk"6TH+'71EXqGQ_Y %@aF5TTB/7$r1'XNr+/?r#hK2:7%j=BQEVF("f.N>'LkDRp[PX5A-jdcO@I!]mie/IIoH1K_SR"meVZ1@^o[W#;;K6V2]1.W%!.q) %>\Lo^Wf"O+'?OkEY[_<3_G!MVKOi-(NYTnWSBSh))W'tM/ZBPc&cZ_-/AebN.f[7JhlN@NUdb\rK@F-d=\l([>8=@ni^Ct5d[Q#r2QY=96dMLeA90:XPR26&X&F>*f%Nk:"c=,lL.=V@KaT"cs^+/F"P %BpSDEcstbr$)jO&*LGkVW_S9WieF&d<"0TP4o\@W@U#W(&(E7m26(^UP\ZD]n!T-gA@09hk-mep;JAd^<.3As,5ng[8C_pDWlfp: %02hI+PMo&i<.3AsW\\WZV)ngF4';%K/);AicJW?3QC]Q(:=I)Fj`.GhN4j&B>a9t9-f:QWB9/mEHoWpn7DJ-$i'4%VgH[iQVnpW` %Yml#N.?Kd/]RGpEQi4>6NcHXL2!t0^XZNn;]! %&7/YHZ;ipm@G&!]Scj)T!W@:u)dHLk!F_k=_U^OhJ^@:G=-b$PKp3ZCl^Z8cQOmW#-p>@m9l1eG?h720I:I`d5]1#'g_P=&#,-6>M#l]P8+^qK_3/7BgkBH+Y6uIld">>4mB*4/S%MV7c*. %eoA0XTkDKjW %2(;EG_!YCDi52>&Q=-^^3`G'd:";dKeZ_gBcDr:g<?PZEdNQk*L\.BV=NpZd<29r_`3GEbPfNk:HOB&`fZGMIHL*:JYa9hMJ;\iG?tgO[lb.Idtt!#M?mAEsenV?Tqd %MEZs/1tA]`'o(Z".f-&(odt9Lh9KMC'9$$>`J9.eEap7FWo)HV;%43X]9#+Umgh`$:Sb!ar>V5o6T[SgT.g$[q"(qEXj]NXpfH#? %cP?(G*Si-[g>Vbk*>4Nh&sAiaHaRDL1P3B#\TLi>eXpL11N^IldQ+TQAbR]=eiUo.f0ca1S %FTW*t05WgPJqgnK_+-_O2P/$mY&5rBSol!5FCJ*+OQHg`[\L$!kHgs,AimT8;+TW'Z^m#T5JGlsJo/V7<&a#7%]kX[?eV3K+'9JC %rfr,:1FUSBY&7Wi_5<1sXY"Mt\#sW2//u*[C&6sBnIeLGUf%+tG$"bV'9RGh6NPg[obsjV5X71Ke+$h+_F?]bXGV8"V/JG(K2b_[ %76F])T[hM,7;8d2bIaNug*p*sgHqkTcK?@#A\r1e(tuR7F1""^5_1p_hLGRsFiB%@gqZ+jEs+2*g5]*,rj%c21l7 %LGW=Dd15fGm.Dr=2@ttNh7;&ihe,6XG3;n9EXMti[6(i9p+k+&)o_+[.75 %7kd+a'iJapEZV^f*:/c'DEi"T?cV!b3*tk/T?KNC'$&NciG/Z6GKTB*pe&"6n$/%iCaL/Xc2Esj0b]p0ZOE[uU0l-n1'20U].usa %lO!R#REWkBD5VK*fr6o,8OWDlm&*KV3KmbAgVP?:(GNGJQb&^7^!)u?+/A^?`9:Osk4s#ZTt;VE2p[OGkD6fsI[k\f6aFY"=8N2[J6 %?TC;&9W8\sqN@eV'6_S+NqW\#HhaIq1G+&cI]4!(bR$fIZ_^FL/`JeQe-QkVpCrVPWu6q19qALmcGT7-/Tnp*S\cq7q#kD?Z1teH %PpOP1WQY\HNA78)fJ+blDS2t)VQYc+EFF"8=5]l5$nt'?S %$![TuSJ^JW$Z)aTG0Ge3'):iWqMDr]d6mrtGFG*aZ+ukpY6Q=l&$KZIA5](K8l@Ipa]b&FQit^!3anpsreVn>m?l@a^cbOBm,hWt %I!tY:$+n2XoSjH+[e^kGEBIrJX.RC4,C@eNZdhi].pBb%G..6]CrP'dU6u6QMqT+)(a+bT.tVK5a2V07's-dbaNl]ag<;mnfV"`=EP-Q8Cp_/,3Po3a;P>[R*J6=_FcW9g_CuF"9[*Bl$640uD4: %5E2dInI]oPqIsc:YPOQ/[e`QD_>Y9SB<.YX''q'0Fgh-\Cn2qOakV8M)dCk2:aibnh?_(VnXDe\8a%U8;?F[fP;qE99:Aj?M;s"G %i!A+Si4C-'Z[$MrL#5N*lt-?7'7lc-H*sfZ(7)Ma(8M)=AE;(Xp=tAo)+BR+pQ-JGlD0u(5LgH(&dU* %\2`Rn8gES',c)qCXAkiK:*]"+#A'&89H$Jei]?C[3/uu"(l,71-Y+2a@%<[e[ju0(#`OBlfd#gP!Z5RBjftshr;u$KR;@qC@p%+c %f`VOj*5dY7R#3qhZpr_K[%]Dd[HEM*EO]fjhicKH9]7]JJJkD\8;L0OZpXLI"+B;S]V-dS1p=kei1 %krF?6N:"dBc>a%k;&2h`GK1TA`,N',E<^&2XlkZ"E<_C_[%9)MMH4+O3g@!,XD%9$cR,Z*2)lb9=;p&?B$eRg@5mdk2T'_Uqi]N\ %rK]kA*%J94k?QHXYbG.h>!&g)fi5>Qcf.pPb-7TTVUZ/&XUH^`i>cneBk:Do$MQ91P#d;PXl+tS-u!6pd>Am?lq:M"MR\VcYRF>/.H3*(__TRr&?']e_M."PQ7c:LJ:7f(\u8cZJ>J0df,'s!@@MOd %%EiF10rMP*,[T9s?.!ER7Lqnu@,[iX3j"W*[U]lV81*4=g^eZ;6bIhG%UL!,_Q'mV!;i/PQ.UE_@(?_Bja&JI..SZeVopC=I%[p'5IbupP9et6u>YPR/^%p3cgsCn2CNZge]26d2G?oKkfRjUb2Ub6O %6uck:[R&n$ra#Lk2&VHFc!&,>)WX"@[Jef=AYlAS-#/[:Yc"pQ=P\_.W_KZ91N/ %EO[P.kD$Dmg-6MdiP!ghM%gt]FfGO6?P(0@ER_e3r_\'Yht<%QV:t+k/XMeJLZP,fQDJ"qC-RAcI:!(5hrPJYGr1\hl2N;Bt[WF;??W %Lrn[sN'"f`*u>QCRD(P^'U"pN88j3;BdG!`$4$HS:QF"hdt,M76V,5PPG::e9G*[=YA!ZVB[)TF;1&^@YWPsA*D0s1\Xdto9\'1K %T!QuLFjcrjqGI\+MmYeXitt=,RKbOmiu$Fkn2QG*LcU9A9H`@4V"i.9);jHk]6bL`oe#%Vi7hsJOtqK,1?`'g9Zec'MWf#S&;jQN %!EDlajhR)2pit$)i&t35)BY##)31VpnVMQBnPPj=%(X]-3>kB@:t58b/FgPZT&hgnA0n(4$H+7h6sijW.%3h/N?Bq%(]pi-osnM( %YHRn4TJ6RQBk([Q;X.BD"$=3?8kPF3LjYGOQJ23XmK3sSPfKf"e?Qpsjt?a';(OJc$bFDicFICc;X0`:79!1M=Q2+a:(u4RGV&B9 %]-Tn*O2hkT][KM[j5[D_#N(^_oTQkQplK_7b@kGoXQ94Le`.t`;FsRY8_q^6Nk!*Ln:;QPHu:=6Pe<:q9=U]qf//TNnVh%&f//5D %5+]NNa7Pr!H^=HW?t)!;XI9$%G1ECk%"V/DC4$:MFYI$&s+s"ncl\-dMfkrJGP7\QM1RGod3_=#'Ls(#ObFml^':85+QC72F'?4TGL1R$c4A\:!G+9ufL]@J#p`&1:9$c1, %AOc,J1OWb!!1L1Q%'Gp^!R9p$Kf,M@*bl#)RKu,bJcmpjeIh.Q"U\q_CF5&P(sm*BLgU^+[UBXN!,0AZYBb8q1bRfC/;%!-1iXC_ %m6@Cd)38AcfXD9Hc)dDZ31cS`lldqO\*UEj(m]`$(lGh^a05u]/<=8#bBOH=!#:S>0&nZ;A'+9mMp$>RbMWjlo!jY!l&`bLOif6!b%S_',urZS(YSk6-D18f5bh1[]dCI7Q'5Eck?)@"k@u+T$MO/ %<3n`3e2s[U4!g.ja!6N:N8slHca;BGZ$lo29u)ug@379Z.kC&=D?>R\0T9XPFqZQO]dP\@f8hKE%#gPgQT6kn`oj]g:YDGlH]+@h %p[W=:5<%K:[J'Wc9A3`[kP3ujI,O56rVLV,bM7JPf5c"5L>)5TF9@WA,50[cB&!t9q(,\W]*R%.q(,\Wkb\@tq(+EfFLM[;Co<=- %dG9tVOUhjaEGX^b-lPg]>Q$Rs0SJOLW[1N?$U_U5iO',#VreXXgU: %qZE`A(N&3s;G:?`b@9L1-W[=.I$X5U>Oq0c)=p1iJYuAsP!R^;313(ASe68c?+e3db4ErtqKqT@.- %:ahgBLdJ`VO"GM_Ldc@",.\u\f)sAQ?%&sR%6':7cC97S(PRh#(=0Tjj1^heb`(NDno4Dt`HajTK70+,/uZ1iRXh/(>D7ba>j&00 %HpZh6+85Q\ZQBNsisk8HE_Te$q]2gdRoctD4_X_8]:S.dPN<-.>tpll:%WY=epHVfGY?ar9or'l*?e3Oh]B+P3enuR&Mh(h31b5F %X<2NC&Mh*!f>-PQAGDnM;&:\(j4dR1a=R,+KDoj6"+`6`L4#\A+J10Y]<(SQfb %i=En/;iTDtX8?[r*G+,2fmnFAXu.SNn#o8j?"bUAYZ=KT$jZXTiPa*lXR]Yb'jrW*2ZLm-ZBEsj93;.@T1%hVG9*h+DcImJnPK.$ %XtY^T]%#Si7JXUmm$jfFF&]Mp(e,d9lit$N?OCb;XK*0*g%D2IDjbUT!^0U">M(GG:K^\>N0iIt,p(lkMWSN&BGm*IVbZi)lM& %$]c[GP"0"8?*975_M54l#T6@*t1TY2aKm[n,oSj`oV=)k=MVS<+Kum`XF5[UlqL18gaV %WAM2uM)Ct[h?hWtIAiTZM2;rr1:nY.'nd.h*JE?RSPI1#'<@=f+k`SgeW(g(Ql?DNTB"V/n_M=^OQ9le`[@=6qd\ZuDgC7g1$Aj(06&b[bT]W! %/"i7(ScXZm"ok(1P[aF:1`Q#Hq5(,NGU1;#Sgn4HjL5jUDp5XuZ`o?XdSdD*3CKM8Ua&;hXYb"!a*U8IJY"pF=mM/n,^r2JlTs5: %8?J2jUYONk-W%)k[Za7R)1J8)\Fo\.]0,agTbcYO?N'WPW?+sc"-l*)':.ds=^dk/l(JFJct?a3AUlQ4R35DS#l3dJu1 %%QhT#j2LJ41n2/66:rm%Z2J]kIY&9kl1a)S3Qsh=\LT_.=g67p:5\JreGJB0e%$tiHmUYrFRG"r47*o!3d4!t'Uf2"QO8H8Sl/OV %c<\h;]\T[=@p%3"^l87--CW6JD+E&jDW\`O$B9 %LcOR"ktB;6//C8GEfNE/TkC3/3ThPok<[B*LcLLi/a!DX*67rBEs,stO&pm[JrLN&_@2q,"P[P&^Y0J)S-W)VBT*CXAtH=7(.A>, %)[AAN[_M7(;u!EX-KdY#*Lppj1&!5oruHT_k=8=1CJps5OlZ)Tk@\u':!Y./[5IrpCl#@4I;Mhu?(WC6+1J7X %=-eZmS+_/IkGNSo>?[$!gJ>J@d4;Y$2Ir"t43G_)k&qEl)*Y>..fDi?hK5YYAUOQDH@oq>VtpCOHIIhF[d"s>7)"R=7.le,.M %Of>h-Qdkogdg2#r3'KQRPjZ!AougcI#Yj#MC(M`nL(euF'Hk['m;@aa`$)]M$9q^fG8H:8N"7,HAR`7d*2Y^0.ZH[GN,EMtDAQ[# %h<$\'l/J>Z5B[[[eNMl,#<(h3hZLc=]%)%dQ#sZqA)^I1Vn6S:Knn98[%F@4S?_XEd'9dCc=C7)D`afmX#fV@o\T:]DkSpQ[j`Hl %%Gfufs7On-Ol!7QiHW'qY#p]cp3A03a51jLH:NZ"?(a*DrSW%F<69&0]II6qib(;gHWd*L8p*#Npo@2Qra$'XS61+Tq+.,11'5ER%dt^3B %L4IkQ55Gg]VqRf_]_e)Os+\bc@cUQYWcmEqY=%72n"hW3GHQM\IHY?;,rH6M@KCL %,$MSQS:N._,3@5NOWk$_,Z8Xnl"Fe:\g!/QpaqPI9d>4iK'h3=ga4m>:DL.@p=37Z=(fQE>'K9TX_!F#_U!XW_<18&mGo0rGidsO %i[%Sj(Wbp?A.`WUj(#DG2(J-f+1Z"A-aOf%=l^L2#D6c?s\ %J>*1i:s54@AQY1)M5l.?pKWqjM5hVr=GOko.WB\9-q^^3O6]S;^EH%3lE&N,Y+=*Lhq'g+]9W(rCSUcK%B2^:_?utOoblEZ]YKR7o618-qq1LF2oBD.E2&,$duc]`9E\egQt;?HlOi-WV]ibqQC8a+M:(>RS:\SL.AEo+U[:IClQn-Eb/&lL\ERh&rT"1.:oJQjPIbj@O\o0Cu\bCBRg762."A %.1uo7@lsK]-&JF,U,:>M)SgFkBl1"KDRI*u*EL@OA%l07s.eeo]&X?bf_Hbd96Z7o]h6_;RJGEn###gOUZG8480n:/b;IVLVhqgPCH\^f: %]r[J7hVA"b7l<(?^1(;B/)6-1k'OqNqEW4J?Y:IQU3\1qfQ'IRhm.!GkQn0bad1V8]U#Vmg%9=FoG5IP;>O[GRqJC$k.3*') %o0`CNGieHTN%s5guE#L1aY`R8WIH,b)`(ChYg;q?";oPsOX=A4R"c[['6W@dB>H!$:%qsPj$s"0^hbIXiZr[rOV]cle %-Gg1;&kTeSDu.\SRDj9f4K$PpijC7)0"4c>]ll)i&]$@TWFiu!5mi[LO@kt[Mm?SO&TcT6LlI*"+%p)G,,E<`oV^):r=ueC>.4`M %c'T**W;*MIZ7DO?/5(A4:KA8,ka4G`(D(`[\Ojr2Sar3Zd'jWt8doL*/\Mn+\Mqn,3"pEk%,M %957(/'N%V2r"-h69-lVa0NqCngXE@L"6Ejah"__F:27N\:2]9r\TE9[BNFE5I3qkRER6&aRF74c^oHpl*!aYol]Rk>Rs[9>29A!gX;H'KT'@ %-/\LQJ7g2*P4,P5*crVf)\c)KM]^N5mmh@o7*faZfC@fq%U*N'm*]&eYVXVX3ab'#@4!$p^UH*Q\Pn`;0`Bk>`dk+1[2DOus,#ll %hX?\+W60/K/'n0%qRuP?6Wh/S6dEIHW.k@EaAko">+'cn8_\R(6*k5973#4XW+3%.M?je_8R=*]5 %]eo0uk/(h@.CZdADWYsUr-7JF*f=NLAtIu3"HCNV`(J=j3dEHj_-5,dr0DY1Lp0q)MT*d+ZP_S$]$("Ih?14B.9E?5:9+5\WJu(t %UK1tb%f*BcU"+iq0T)Rk:2tHfdNf[^mVk7rb7r%h%*19OJa"-.M2pCS#hbN:cprS?T=\+_nCq\0:9='!+!a!hM=BTD+:`UU>S-WYs?n\F<- %a*ihtY87Ca*;:ll-ug#D*;:nBWq^tfESO4"("\GK)K14(&TeE;]JePT7D9"pfW!l6`gbo]JP-Fo6$*T/O[HYiP8Msc/(4(5=JQLhG+!tp^7l=PD!jj%o?Wr'q@5RQ"t.4NGS49(mjMMir-Cu!2lr7&?/E'-_mGSh7YQJCXGG4\G1Vtr %Kh_j?npBSmMO*F;]DIaN\ZBrD)TL0@LTP_bcuh8$jfX!#mBG-da;k`.Cc?8aB4//PG&QDcj5#^'!KXVf:0h)82;nFn6]pNY7qcE0 %nK\ed4d<`pG6TZ^oUknl685;Zp9N]"P3c3lICGXllhrmgmVrjVh=M@K%./(*HD9Ah#Lm]iXr3QEp,-[2X=kBKW[\MW(`A]<5GH\Jhs>T#,EfhS^tGFBg\$Ja;-b]1:ubC]&J;eN9TgW2s5jrjPUS*&F;S%:[e %H^"sJK?g<+pFb7n#BRXQ.'.oVkUEt04oQt[:Y3'K#96N`d//rhX+a^nVgcVK>9sO=Vqp[5Ds]f_.g,)2f([]ThTsJ.ku7u;[EJ\V %Nq+"BPJt\IDO_NnC!+tTgd.Rg>Zo^,$>@+u[BkSGm,5_on?nmM'KE^57.n4EX38KB&luj?%:l4oN.B`] %8#>,m2BNgYiF]D>oYlk4dTGBuK5%GE9,4;XmUfCfFIW(pe!g4@8q0"2k,3Sq]Dch"Mn\CI=_`[Pf`dFCihZkuq;f0sN]Y)BqchoO %BAZClfVJbYH10R2Ug706_p3<^SKS:K[\RMIQ"-j8iY)I7k]i('/2Yf"UMp;F$&*Km %.,<>7@X%'KS1]+#DW&%"ODZ+n)gH]XUmjm5VEButV41&d7=W8FD]p]6%Q66#Kpt\P+dHqd7C<(\-/=a@*_5HQEZD#T#rfIk0(U$) %W!K:6DB/,A,.r=DV%R[g9Uo4r/UiUG_JRRpoeof[PCH^nm2]Zi!Fdr74R7#<-&E2Ag?(@+Y6QDq9,)a%>WuCUmjm5k"Gn(To\F#M_s.H,H\7k %frtR\CUk]uX/e7ZBJs&*M#BZ\3;QP0VDCp6o0ZQ6Up-;A3Eh%")hlkDEd0Dj=ERG_2!diZ_?!V15:;<::BgAbZte#;J"O3#ooM@A %CWY,5Zi*=sSiURAce4OA#J4quDsueh4f9KAV1"7YNqZY$9I8,s?jag],44@W69]-_3]!-Ck.8+h6qWG:X^^N1uVRM:n#dqe1Osm&.,>d==1E %87`3-E7\PEPD[,=(,Jeu*OQ`u/6IJE0n[Og7EuH4%W3[j$Y(Xt3UBq]St%V[E_$qrm"CAP`9M[rAKu$bOV/BiihTJtZ101T.6[ql %.@5n@c"dDBm'$fEWC*[*afiVI^ED(PV^-(B4#.o%P%`Kq\+f+4kMrGHd$o4%;H*#Pg16d/9W*T")%(T;54dk&(%'"8n?:%K.5C[b %/h$lM[+'gBeQrIfO^[A-CniZYZ3s8O/&hc@AL+uN>q..Q-]-"N:;2u%-64ZW3;HT1Cn0\G[I#?4+#D!)O[$4:X_'_@>_>-^8+jJ=fS)=t2?]0k\`ka#BHU@Jf@"V7"Brb,4 %K*sm=b4"5)4+?%lF(B[4R:hpk2F;FQX/mpnYC@#8qo@eL9LsCPeDVi.=c"!l.S.+G3JbpgN/=3dBVUT4@D/j^QCn %pnWEZBS0+UiO>%2D'+-ToO&)0"m9'D+Jo;+V^9/,b#bqQTC=g0c1*7!VuF\B9l-I"[MT4@n.\NM9MOV\bZjYdUFtKiS"#SXNu2QG$.NJgf^#Wg$O0/Br1N/?8ulZn&\bo/mG3`Z)%ka(#Y9J$7KrD@q!/fm7XjapULbV,6VAj#dsJJM@e %2S'pH4W^RJ%']r`&`+nTp\X@#2gc9`1ij#Yq'DQ6aBe70Y.%c@:Q@6%I".<.4I^JmAhrSACbq@H4-NO_blHY>MY7Ub/dr&Y/en*' %Q3nn)Q,P=>VrW2^YN'MA*3XIDu^crS7Y/(0T5^32ME"0sGVC_H$lF$(&rN3c#@il=EPO=T(@X83,-sdhA#+Y-]R">s3(pQ+dXT4e %$%K(R*I:V9?/.s?>Qr%Feh(M/=W%eNgR,8QNrQ6I`k^?7n@WXQ>8B)q_(P/nnZ5:kG&\Tc(4e\JKAENKnNfFUY;BJ7*M+om5C\b+ %E:gt^0he+OBknf]3cgT7u%jgBJci965c_kUWFW?f"`.S2P9 %'66tqILkgdNNScu#;RiY7D%0h:LmZP6U;\&/o+?1]s^b+<.-c?8u"^iJ8QGj,!jXi:2Q^01/Rf,%#kI55R&]fS45D[46F9UENk%# %FNC`\a$Ij[d37]2O#n%*M.pg'8UQLEIfh97ouD'bSO8FF57[Pb.-b6-qr<^]rj\_KC*;0/=6tu8T>dYlFa-:4O$!;CW-ZFkD>slmNitiJkN]s.PcB$7Rf#GeN(PUINI_Z/; %mKpm-Qk$K>i"TEOj_mNn+<(l?h@_,Gp0Ml!=rRN/oms_0rLr:3b!2+`T8dgmikeB+_8mL#-;$B4WPMV5L&04^G=)I\=6=/G2Asq(]>k %+Y?1;9;J%(jJdO(Tb),&C14e.oQ.2K%%6DE;A#%S)0QHV-?-!C1"4BQ;iH-[RZ>@hY,+_ekfk,Kk"[r.RsX&iJ8`ZV/*GiTK/"d. %;\!oGRobW0;i]no]lH<-Ep?5rb[0Z<5F:Y@kGm%KSZR>Z>L>B!f\("VClRhP2a[%.r8qoa!a#/_A=]iO)I#4n['S:]@r(K>rsCp. %eBZY2M0im9T>jol?f'K4'+,QMd\6/WBgCP-MN^4SNO\,]11ks%9,F-&*Mdd3q8WQ#/m,WVe[U6R.A4^YY/dF&#STOVPV.GgQd+b$ %$/=$&\r7\$ST6tR%TL#!G!7[H/j:-b1ep'd-lo+*0t1]t-!d6;$\5ijNf?sIpA3RWEbq7df[o2_qKC#\o1Jbg %#?+K/+0]CUS?a2WpD[_]65`fjS`IElo`Em=3fH9Ar/VC#S]&/8W[7E:g[l2*cjJ %n-CWH?_>XMNPCaAn(b?($fGnoJM-GjEih0+5AiYtE5?qE6\mAa#VMJXg'Q.1IN(MncikK,"i)4T5Sli%JIC!#(b*&3,IkNF]7UGq %@%JVVTI2jQ$^;E=@W[/kE.PANf1RmUqtR2la=f %qTis&!\U/*>V2&58\kRD%HE'd9aWM'I&2%M1b#q"fn3;P"X%i-FFb:`.&NcB,\^.q!QTO18Jh-06K-hZ/1J(/pA/Z>EL`GJI7qIZ %NSe7BoR5)pnAj;oKKYIBA]@6ZA90t60h%9,PKfZ>L9>qH9K"W>eu]M!$s]^)A2jYmQiY8)`YgIN&1t^9\AAYXEqss+KMseS3LX1D %6WAX_72J)hYB*\7--YUbOJ?ekd@b,`&44gNE=Z\;M]@`Rif&f)PK-FK@$G3n$6Lhi1E\s6L %9MGS[?6(_%%o?<_@iOc#gaEd4J!`Rbt-ji:Ga`sI]'HcXR4V'5iX(BB!b&/EX`EisR)+M2@!:4-_Hd"Ri_qgg1$,E^ %#=CB)hAjS2S%7=.qOR9C+4ZcbhN!A&ke^;Fr]b)382D/beO_TXNWq"tNe/co4#+)=Wl(4_INMZb2;%YW0pa^G.df[)I%)nUY'K %Hme6nKOpAp,E)dCOa>=:*G:lIcPaDS:rm#ql"kOs5Y\%0UpJa&jm]IXV6eiH?2R+a87s.Xb5g4_+thn1/Aq#$Pc?/bj"W)pkCiI9 %AofeuC#+@l^hf$>R6^_:Rb:C'jRR.(F:$-h*(A;cN5r.2,Z?,N1*4=g3o?)K0&nZ;A'OQqM9C,PbMYGj/$QD@F9ZEobeVYedi#M2 %VhrTA%*N<:!j]=pa05t+LJMiWU%mgM6R^[f/qqjpR@@#p'#/u'bmk/")X)[[.e![Qpsj71?BpR=d=[]H6uDYUms`0H?G\,K!<2^H %[/'?,^R^f.c`47RlTOkSCC49ZGns-I>(;8GLX!/_HrG;Q&Saj/$*@Cl]jG^W>ds_E7!9P]#b5C`,!3#^EX;$Uq8l8R3u?5XRZR.q %`NiE6MZ@X>aSM95mA"HHZT;tb3qCqun^Mi\UEa^)O*A#un&Mb],(%>E@JH>!OhFl'q!g?#h2t4ga(mn5S^%]+qaATDLVm!0Y./tR %0]himE$YBGd='73)eJPfmXHXQGNWnohtK,q5N0+s5=8#W:\>`mP0HDJK[,X)%Y %?>T1C6&A[5_q)Z(fR?F.k)XPO[bq%a00?YB,Dj:VDbBIV`<9Ib@mUO3WLi2!r2'J"EI4I/1!U.9W>XtC+^)%#Qd*LaL.("gg>r$Z %Mgk1k&c0M!/c(ITG1X%E,gmD*MM"gV>kAF%lZKo)2d-u0&kmS>rOo-CdL[FYBLNj,%eC0$_to-&fim^aCY?0aa.4YAI3Y0CnZ_') %QGYd[8bbO_,UFot.Iqq/7kg"cGU>u!1YCE`g(jSGq&-c]YV5kOCU9`9ls1TZbNRN@4[TgDQ0Y+S %S4Q/mH"dFR`M5!4m/.:jl6;4;,s9bf[XkNO`$8K#F;??7EhDA]#M^m[[Q9)^61W1GN@J"RO7s8?m?WKVUA,Tl(fh5H@;B_QiJSnrX?)`R'6[9O`;4&U.klko_^+Dj5(MSrg!c_Z@8EF$f>C/.0(14el>Zq>NY: %m=9,6XW,f.[mS8r":,7K],e,e+P?-J$:Pn\GduYir4_-Mf=,R8fF0%(WjMZe+C6t1e,D,-`6nN;:863L1kHM15;@8AcYM_`bAS;Z %[*d;"0u;HVgff8B^uo-C\M=&:/]7])4B1gXaM8C=L"c'*-CWZ^X0"MgP/p`KYE4B %&RDBN"6[1V3W&!W'hl)-eC0LGrc^rDW6Tkn-?sMqA8eF'Wk"G%%RiXK5g7ZjG(1 %3,jc9`=:i[NokfC)f-UpVl?sudi"p)QaO:l7pYFhZ.%D$>fDFt=M`R++0(*GMN^L_EdlO#gV'D_rRO%sp#nR2"3gf`/.hJYJ[4LZ %C\;lAFGL_&:L!T'ld%2)ZIPdfHp,I&f5fjsQ-7"=A]oL\U>H-mf[iV,*UEji^gEV*qtSM1Tli$& %e@tm4djp:C`#CLW=B3_Y;u*<*RM=YhnTl['2#AoOWR4!Bh:iO?ao%ilS>YO %IBChpd;U0=]f#9lT:_Y6eL9IT'`BfIpu%T=FH[7*6qc^B6^/o- %G8MQ%rR9a/Q21=M^@6BY^?t^uU!"&?$XAc=.p2^=eM;4JnZdW]YB]<32h+]Y6)heXZ9rX>PN&mCr1FiJYf.7THb#ePU"$KIDr\Z, %$'-J.-)j`J[GC9'8"XfZJ!^G"JRjS$%ne/3Am;fshnBUVYU2]:6qXSToiUhN<(-&M`%%@g!lmW.QW'e(gE(;+Q5`!T'YaEa7X^rk %=W[A#:%WgY/1G@qkis_uk=!+Vh;E %o*R(F65Dn;V'fq"'s\B8`OnGDWK;g+[*[2cWkB#9SY'&gPd>p_hT-J6JJ=,;:q]c< %JQ-L-eI8865RaHYf)Yo;JJ8_.!S%#C,dqtSOE,^kotH_0Qfb\f>OQ>^OCCC8XPS3r.`UIeK#Zba4%9Ui=oAImUn27H_hIn13TChC_Y6"ktE#Uh$Q%$Q+4 %2I2,Em;d*q?XC2TNGeK,VECq:FssI61ql\<3ZAL&;("3[Y%Ls.j2W\//<%OoRp"sBPiSIq0)o49i_o\ %0sMokB(t?cB_28Ok5V4$PLATO^JSa;M*&rbhillA-A?TA&\k@SO+UN]isge(Bd\7LhB!nceCf,?=%J7SPGaQXg&>j"JK""(&K6-o %`Q@T^7TlA:BPFc`!fjm;0aW=aL$ii`<@LhKJ0uinUE:S-_>hBESgNs!MW:V5#_/;YIgVoAQIg0TP%%k]5"9"iK-d"nfa]V4NqX2? %X(!YahO&/t@(;-n2:CmR=rT7@cg1(O[Y9M,?;ZT]4a!!-_P)YK/^P:(m6_oPfBuqhs>K'H([FpjurY6MK@Y[K:_2!We40_@#AO#c&_Em&WG]WA_uorb"4Qa3uE5k^@&ZLcW`M %;D>H('2pin'/$;p!1DB\&P+'I2'W^bRefR?F0%+-@Mp%G:$rKY9(cb%Q6SjW1[:6k&`H9cDR %61a-9KA+K/NolZtS+3BFR!W[q]]!gW^hA2gh?o#dBCNZ-Li@W#iF(q:TeO@ %pa?"W("&G^OJB'"mn"C=)Lh=S83E:sM5I&L*8W9s!6W_p'M[ka-i!Kh,_*A>PB[t[p:tsAOM```4iL6(R\`X?T/t1fNCu88qfX[f %.i*^2ItP^?RpVH4Wp/jn>3j,1Gl>kf7FUDd2EQVQJ^PGee8H)No%h8#@jSa;$DoF8MK7VBIB\KK0=n4LeDICTWtm!Ym' %75[,F?oBJq1](TNdBiZmB(cnFb;!Du@n+B<[GMM$?PiD32BFpUhV]#Gb^TH>3,<+jh"a)>+"GqGDCC_TgRXu#9Vqg)l_?CQ %o*'rtCo=IO@<^52Y&.s`lXB2ZTt+=@h[SK.@jK[?0/N%e^8/5diU0nH_3DuA[%mBUAkDlO1Srs0P7CU28YpC1=Dp[3A.61l7aieJ %,m-pt[aQZe-)2aOoj^ae[\C=A2.1WMOa>,1D$@skOa7=JWs6JK'i4pZnKs+@ %[aOA\hD'9YBe,(?W/n;#a'4)mm*\o\h=cAUT`.W3"LZBsc0qK2R0n&60tIGjh;RFi9sHJ;:=n`i`RKrmn)[_^G%A&mbZVnd+LF4j %BAHHZg6K[LFr)\U?p;2B:CPXtmbDD5R+LMHH:'a*_dYbQ8L2]kqUH;?r49NX %h.jCG(OXn)g2AKWM/K#brUEYC.2M).X'9#MSu=il;B0n/r>);pO7NnJg\]P#Ks[T,Fl5LRp&:U'c=RoMMX9JQ5>Kf[aW:"m^XG,O %EX'P>'tRd3rr/DXr1hVE?#WgJ:o72UhI'FC)UCNSM1R.Sl<[`BeA7;Z]1/nX-X(`rLN?!/mCZ*2=Ji %-];7ng6g]E?;s#@mtZ:2[rDDXpOh0Xhcc^.rKM77lhiF(L6#(L,_3.T)#eUWTuUX8F*ooE"*^tDioFOsf#\CS2J':2$En[Sd]9`E %V>tbHd)LV5k'2WrDb&SA3g2GZ\'Q\/-\[>@jGXfJ/[&`X'=_7L#H4]ln0^)l`UimFAmNa9*Gu*k&(J\6*cLRNF\" %K&_@Ho^=fR_8uY*%r$A>g=&=0CZjgMWTXE'S)]J0Ip.l$"?nr;^CLJENU;?h#[PKa$eU'aDbd_c`dQP!rG#MCG%agG!4LkV7AG0" %>VNcl1`i/Oc<%5p)Kmf%X4<(mV/G4Jm&"^RW#K6U+DYn!e48ts(NkB)?j#tsl0".o8diG(VQ1YID4*?KRsh\5dbmj3hF(0-O$6`O %?L6@K!48n=-arF#$b&jX:HMk)XPi9Kb%Arh]_#c.ZNqN&;Z^Zc^54m[g'oraFg^0jU(hgUS#%g)cte:->Ud?JeW64Q_rl`qXE1=HOj*eF=:@?B=-kY@s7C\rfIo %c%[4(b8m(h1m1<`H:BiD:B&Y"DXEfY-Q.=W)9cE$43?]a1O-c0fh"ZZ_DCku]$g*G9P:"OM2[2PB0%hU>LFd_kH^rCFIMftMVI6pcp^Pm6ZVC,/P1D(/ADr*F#Sa7'i.l;?.ZA82/J1]=J`p6.;lAt: %q>npb5`lCU/],^U:o"/aL#Mo2O@TQ*2]aYN!-^?9gR]^CB'e/$3K"H(HDar'SL+['EhG)>Oq[^ %>-?^p3+TnhR,&]m8jQ:FaAre&1Bh2NQD5+-E).fIQeeA7X60,4.epYuB2L[Cp %`V,KBNb?f[9="`h;[PT]Rde`!m%bm!d=Fp\m\D'JbA")aSt'nuj/2VcH+B+K*mb4S'EiY)06.U0-jW'cCC%UsMhH[Ide2t!JtR@8 %W&Cd%'SOSOih]pNqK$nKG,-6g7lLG7/nQUPh#KQ[Z![8.[!m7,%>j*a?4`T-4^%SfT]2Y<8kP7mn)c]hc8DmT\SINDQ/(%YT:ji& %X1,;."kLJfgdQGEg,A)Q>L3QIhE*_Kf:'S:WGmYWjK2r^+dBt9i2-miQUr\V%g#/WKJZ,Rgtpm:H4]G$)'o)3X&LJMonaY.h@;bP %bkJ@Bn94C+KFJ=jf+Tq3hC1Tg!TNLNpQ":Un90RR,r)M2.Z(@VKO20^U[K",7tO6]S;^EH8Q2@O;O)-c'p:L<&AEGVK8(ZH&TO(0\^m5r7D$J6jF+;^(6 %f]qp$![$6]NihdXQFt0#58*bk-jfh7?J,]CN3-(.Zsdd)QGq7mr^3'Wl]5Mas9:i/*_2Af^'[,s_mh9lM@$*'uL$o'H*g?bL= %2fc=1?5NIK9ce)k:!Z)\qQGhik1@[k^Mn,o,O$T(/]EoId&S2'ZcH*6el)heA&KgkVrYK>aNq]GV%C:6[\3p,9@d%jW+U %W1h>sFU2eqCqD4=CUo]F*$@S?`>bi2]!SjU&020ek+X,U:6RC.cA:MMVhPZ&TUU2:3,&b]leglcdhu6Wd/bQ]UlB0jDu/4pHZSCO %/pC`5PIA+aV9ab'K[stO4!qAkWJ'tqD0L5KPe;\#S*^]/88NH^m.P&h$t_1*P`ep=c_q&'C/E/AqHud4GL03ekm'#kPXeBGVIrlg %l\1L"9g>"B\34quC5Tidb,C&_3%^tqSl)UII8`tBko&"k:J[seB2gBOhjI@o`p.rs6E-hp<29+'25Qb5;8'UiO[V9kEp`b/V6s]4 %BZHZ@N@?\M8f,-.<;g=C8J`^!4YfL78tQJd\h*-5+J]A\/rJ8LN`&TtW!;)^/Z"o-ENJs2kpY*^FT#[E<<&0TMj717c_uS42(bYn %Sl#r@95:=\25;''V^X(FoSdPW=fj#i=oY %A&jiGbkDo6#d!E(*$7^s%J<>MKq/XCaYk+AeoihB,]Gh,)>5O2E"H,M&4i#%rjDqh>7L^M$3F`O(0tLQ4_5UOk:0t96/_Z$.LA7L %g)Yp.@mN[Pi+tCZX=4Dp:J*5.6U;jX.eo\[@+NR(#D"`961#JpE"H-4@j(ZWa?a2sNWGD5`d%#@5u;da/0"dW'SOK1Q0Ql:cY*XV %G]LHT6.I=A1_$IR$<4.7aZH/qiB13P)K5m\CMiV5"9^T^RL3#RWO"L]C,d.AW9X*0L':RO"fb&TQoA";*)msW&Sp(j[T#I4o8]JY %aB4j,eV]N@q2C?6[^DsN6G&j1C"^58Y44m4*KMKHg+;je5EkF:q<@t@/Z>X&1@V* %J*Du1j\AsA9s/hIQ``8r6@[fLD[qM9HBEi2C[)^@-.,jYU%@_]9LRII?G(44W;6,O2FE %m!F=ik6c&%DP^Xa5%e1)FoF.u^iiWBE'C#Lqj'--[9Z9D2=P%oaUC4qrZ"EK-ims78/R/HK+kH)(aC=,I>hi.)XS%+p]H@in[pA0 %mVCLjO:hQ-c%\_:27b9No^,Hn4#\]Ql5mO1oJ4g7,fN-VrdBktT>.a-hm[*bNk(b3qNc5^ %iMu7>2_$Y7,^k>H;B+B-A+$RUDNpE,[%'pgUdk9WMhK)iF4$_]U %BQnU.g=[P7qJ"f+QSTUWhRqlScDWho_Sb3s2B-P&SLVO[)\:`2>H6or-k!I(U7lPlA31KsAGZ.E7Th)pkn%,@3Vpt^<"6\e$`8+c %0+0N>)TS$RYUsdX;UYWRBk^+m:t*':C)TI&b=@]Y_C)aMBWR^S@T7Kcr@_JH1`S_%d\*eoI1(G]Ogs(VU;][M>X[$Y[-A#MNMJ5p %ctB&L<7=WUXT#K_RuBleeM*P^^^Y2!1n@LPSb20jC#Yt2hN5XQ+%^PQ71[EW/>N3O9.`u1[g9o(=uDIS4uE0iOuF>)In$P./'JjkbLci#.6L[#WA,S%:_j?0V)^rWu82Qn_YNtM]H)M>+*`=`Ch %6%c6Q`=`ET=(R)0GC)Zu!MHsQ_>[R%mCCWE8je#;6qjaQ(RKYY47uakDnPPh;Q&_Nm<;W0qUASP_dqY/#D`!"gC&bCDRQ`%_P]U_ %ddKP:;qRIj+trBsZk>PDKd+,FGG1#kBG-3BDE^FMk0ZgMo(2e^^NtLhqg`&P$#Np:6LunQrA/a6_g78R*ce4Z7H^Ac69M(qT]<S&$lu*b)TH!IW&L"hPbpqV9T7XAY;grXcH%t\)YO\QTF2O2?:@52QX.kAV %O#T%LbR`-eKW1TBD#NniY`]9`kQ4cO\AP#Y\HsIAgO8F,unsiP:h#_OOG,1QQf=oqKk,TmF %a=ScKJMlH&ni$N_M/>,2$u9<]gHNNZ&725dlR'u_&:W=FFk/X.Ka'4pfQRc4h8'^`a742X;!VRkW>L&ajQ,guFcg*7#VQVL8j$2u %1jFJ0?CAZmSjKJ/;0cb$L]1SY`QFoZ3^o0_EtEFYVK3MEk.c6K7,KJoMgIm8(HW/LZ;MnX?A"P %"6Fb,;*m&"W@`lMHRU>7>mm`u1/`Ll1F^adD51=k__taQDc?9InYD!?4<\-R[FCRLDTch+NF]CQM6':2K>BIo0Dc(J^T/m[:SmC7 %ko=cXQ58:.HZ4``1$r7Q\AsZkE'^EFoiagDhMp3sbhkc[F&SC$gWMHJ4;cu*JP.+gM:>;j,PP9HHTg#lRPV)_j%%.:MlaTK;L_O94:Qo>?*:g(<0V/f[LgS/hXUY32A+ %e3tb#J`DcV!JeEhpQ^X_ZAZ7#+#Pdu(CotIZ(EuD\9*MP_JEcDW'ohGQ@>BOm_1h/(XA(_cWu%c)VLa(ceZ&8s%n\/Sp=7sGp3I(fO3.5q#:PQ>M'_FS"!.;W+Qd3*[4+fHQHHU\]m.YLiRYOi._%?HGh&9ZJ8f;rHi^m&:iL4Ch?JGP`OjmA %^!5_:$TPgma'&s?X_A!qWnn4PCQ6PU-p!2,K]7j]h%9T/^5&Ef.sYMSF@+C6qEDrT@Zeecr:sc7CZT@HMV[,r^u'%F%panaX3D0o %*/=K;V>?I7^YJk"Wckh?c!'3,\CJ`VRNo2P:A%e?L)YomZ\j-/Gru[RQ,HX8Tc`No1V*=&h>TbKg\-GG:o6@u@G;p-]ji)@5'HHV %e'oY:BDprRCg8tab[=.a%,2B:ZNSL:-d(JhAkjR/YMNI&Ttk,B$W8n,!aC\)/b!""$Z%iC[5aa/YdO-S%JN@q %Bd7u0jqu`kN,-\GQt'O)e:*cGSK#N)VfMDM^a`koYNG'@4W[T:r(<-dGe>5!qoV:\9&)EJ?+C %4tj)<(ium0$FaE$l,0(a8EGX]Dc+.pGk:WoKHBPO^\XLNHZa:W!IK5(:jebC)aW?9Lqpg1M]^--I':3cOcC %BNjdbgLkD5%A:'Fmh!9^5L@hfF2BQ.dUG"8cN_:g.*>B9HM:p@fO3^=\DOoEL*Vg(W!$+&ZWbXXgSdh[]Un %!3?r\+9An3nBOrF5#=Q=b"5bo==4I0WI*o8UfJoVjK+0f#8FB53\K3tVM3h>F#%7=]@iQ)/ge8&[W@PLQ %([HKu#56M&rfutThh'hUG>e,+SqTeHMqq0<;0CZn/]EA'Q/g016E5CIQ'ZAA6WNo/)//1_M;tMW;RA!/TjBgKQU^O3*rf/`YA[k4 %_oF:]m!D!m1it$fUupgm1&N$ml0kOM(_b4/EqO6.J=VakcoW>-6>p,TW#'0^5L=2Z#kgF2WMmk.&(5k:]RofXlUA&HJTlD^VHVQk %q2Rsi^[#*[O`lST"cp=^"/V%giai48`=hUN^[mt?FYqgilU3Qehoso]j\WRM-#DfgRu@Pkec0m9a:>c(.nIcQIIIUjlLG0?8F_M*";Gm/)%ZXUn4,ad4Q0(._md[U+a*`Bf4+1dW/:Q %CruS5Eu$3Pd`HB$IO`kb/4ki^Rl.3<4?gZ[LBfoR,9 %]qj+E%6]j$:L6fZH'CcfIDC+8TU;p[Y3n<%UMk8qIGIMXqfkIH'o%JO:P7'f+aP&CTp'nJ?X.gofQrRlDIK0pgFM!&NZa7p&$(;Z %>^cT$l46,WNI>Etn^iqALVMBY`ucVu=H'G+78*O]fH&0;.$!g2XHHZh:`M:bk[/=R*A,OgT5/X7g!OlZn_2"3&e1QaO;87?i`&/W %r7kY67.C^S0jOVNi>KXRP]_3^kE>`PrS)8&n/tn?GV0E-9M%q^>VJ,[bD*hqa6.<:]'ReOcXQ*`I8Y^KnsbO.4WEh<8LukE %2jd)_ltop;eR)V'p^cHTcXn'G'H!/L63e\fX2S>+]eoYH,j6$nK,/%5DfHP#aNHA$O"!iV.JN"@oBIE8RBYGPEOZ1n`^/T1Q-3SF %Kbd'(7J%;Km`X_@iuP&p^#AYRB;'Q=g\\ZQm%>^/XJ9h2DD0"Mh)sb*`6/Yg;_[@i6]]gAEgATBT&WCJVLCY)TI\,hVX>L(h0no[ %aAaU2+#BI8J!,+"Xi<@bgJ"6qjbNg)n)&bsJl^*Q5G]:%hcKR(-9Ht'+M)Qp2(*V:YNX->clW2'=uCR]S9oTVOhk0$2L%f1>$R-:bo(Vqm&&G[VfTQ3PS4>eCTB3KsOtuc;J@uD\HnQ?b@&Jg\Xe^.64X7g2BZGlUUtI&3q)Uk.8]eAo:=$Dm%!c %*rlklZJhtAq3_=n/3"JVo$J0XisXJ"S%e-Les'3K30TnQn#UL,$6R7flsGY9cb2iJMoUp^FK-B,.ita.-!jWI3=(F0*H*nW:HkfN %?9Eu1r%-9h=V1'kWGrbNg(f[J*dD[P_^Ah^4G-@D8C$Uucm.gs$G""fhPdatBW:@)kd[Q1T)0Ui&:[N5"gKYfC04`0Z?A`@ERJ-. %ajm`(rPbk/C7iJE!OI>X5"!J-[GJd<0ff0;gQP+=]03Z"kG6jMW%W>BgM+/n6X)g\#UNt>[ThP@S)\b*[th\qYHlNYJ+X,BJ-7&* %Y"G<`5Q[(fq2YTgMR9t[mdM5#,R=J2X3t>hO?fVX2eJ.c^XKQoH?l$]-"AU_039G#X1%rmZ1O,2-YBjO=1oFJVc:N-EC5#Jqi_@G %FGHQPDB=KNHA^*@\)kKofhT$pd^:@Kc(f5V;JF(tc(f4[^EnSUo-iBR*r=Eq6K-hZ1kBc?+P\#6E[>5]++\NT'5l,P8)XYEgf)=` %r^I3I)fB4rRW>bB[n#sB`pp-/Ncskk&?Q&f7^f;:E'iJ.:bSt";% %Kpt;u&ufh+mjc[BXXt?,;lj\tHa<[sBQrF4[/d9L#]RUlUs[K>2M2s/l"a.PT`.$J8R.h_)'^C);Wu!q^MZ#,oRWF!:RfWp]l!"Q %(U6n&grAVRS.%'W8A3gdki][Xi#kg((Vq^"ag^GOq"$>#&`!2YAH[d[PpXl$#gCgF3W(ZpZ!pk)Kujr'bkE]&;G3b]mn$OCNGf_Q %h/#tmC;b%PZB/ji5=Oi1;Vjk=mB?u8?%h,$9;AiR*?1tkQ]#s2F19&j1/MZ2(G5:IT#Cj?%>@$nh&V=?0F[l1mbT6\EO,'=ig#1, %2]M1jnU3W,f$24FV'UP5Z_dQ\ct0pBS:74\o'Bee_FE0 %@HT')ct?c4litS+UT@Df/nfp/&qm'MaQ_.V=(,`fU\#3[oFtd]lqZQ#Z;,>)o-d]=;cfkIR15k=!Tm^X*;!?h]Bs>$\?GG&pfq]9RVigo(SY%6cs'*O-9$Nj;DW %YDe.*7Fm+oin_b2TEmfhM&nh!]S08MWp2DWBh&XLqJC58%^khK%@Y"j %o->N:NB,(<',l5\K2-.4u8;Dj]nFnt"i;TC]1aFbW\kYrcm:a,qOdV"QX?]q_J,FB%e>Q5IS,ar19pl)`GO\'O:SFnK22C7)9 %6o[As1BH-iC'V-]aHf^%9!VX*[d\%HTX/Vf\o5[`$n\;3"afP %o\L]V]">g6GM6HM4D_/FYc)Z9(U/+dbIX%Qo>bo7T_]CbN4q08I>"E%P(BUn=56k?5a(CE)KKJ*q6N(2Z,iFO6UROAUm!?QLZ4YN+-LRa:hiTus$tq8Y00ZelbZ`]HZ3o3!Rj#"bn-0@FN0Y-+?]e9nP1\c">,:kBqL8AX)Fo6#q&nC" %Ssle.^C2Xf!jJ/dYINt9KjVQ=p#TD]4;2;::H%*B%Pj'EnW$[%ctf7u"J#O7Qa6,C4U3HZ@s7jR?60;$_mb^dXqQp(&@=B/\ %'#rdWo\)^U?c34L?^M4f@\B^TGM]]?56H?WT78E,\U4cF_b80tAet4JY`UU=T?f!FBE,%4CU;/IaWC9>o2h^_naE[]q?kp_^VjL$ %4Sdjk?Ms.Smi_>shl]*:kJ'W(=h5@Hm?n'SQDO2YAXhH31ACI60>C^q't.t#]e+;i1M(]nhm6MK@RSS\6qo;"\L:Z7NUltm?QUr, %bfsLle5:[erOIu#NpL8`D/M8Y*gX>EQe"S#II$J@(KomXG6bV%4j>bVm/2PF.>hpuQ%"]'^rERUGSaFG]mBFtDo1+5kMS84UYY+M %;["2S6eGfV\GM(o[YQrkh?FVaD.GDkVn[VL#BCE@+`+!"#-5K]7F'WV\+=i:4mZ2'2qW,2mJdgskr,:EQ[7h?C2$U+@o#YD>#M`I %n6&bKed&MqXm!_#hY?,Dce4Tla#nsVC--FrE)ujKR&\)fO'f]PSBl7BI''ThQQR_/E8l-0c_ijE4OJlC_PPdX*"0E10'jZ0lO8?M %ORK@^Q1ZGXa84+Dik+*dpr&!%YiFX6'W9Q5Q?7'*@(BX";t\^IR5CXfIjV'A^7V7+^!R2]kO\[(#.X"O!is("En9#_^Q+Mf($DTW %C\Y_m0AV'T`\l7k?3.ItelB/LG=Tqn[>1@I:MTDNOgB;"i#pmjqV3%Lm7[.YiY?,DrNOp,\jjt[4itFb4`XTh8N-/CN1AGhd`4mKI3WC4]_(6TGgFH6/MI&1Q[20IC3f'M %XKnB@B=3+3;B5IlOgA6/jR:%a7*]Oml'!InF?f_._qr_Cd0eJaE`U@V+*.i2+;N'n&B1^gqa\s.HJ%Tgh)BB*o)&AlqU2q1,9JHi %DNW,O4B;*8SCR2YcT^jS,%n8=NBBc=Q8s8]5l@BYqKGYgDur#f;Eg_T7;=Yc#7KLq"nSL]PR1ToFbj;TD*#k]FK&M,MXhW %^2W,Qf7*]H5/_r'9Sfm$B4#pLT2mHRaSaqE&D]>bYC6iq@hJ!UH/lpeDiTsZe$^,9IIf#2CL?ue3E]!?`%2&HfO^6 %ptS:(g0;>W2h(]$F2tSS]T`825Pt*AE-/koqoa2%]^^&_iHb*uH`qp=o=Kcr?b,mVmpGniqRm-[?&>%V?%uY^aW$lO2sfd)5J?d[ %k7:q@%/ANAg,um8m_pO9RMR'Zq0]E5i^M"j=$HZCqQHAqrcn%(pRcT]+7C3]7=P(+g8E92qDp2%B-1#5e4Nl6)g?e:0>6o$4.ea/ %`OUShE-\(QtY=n3a1rI'/S_ehXlH>6k4N'C)p$+%Fe4q$H=q@EV=qTAcgdJ<)ufFe.ps7)RcX./i9>`*F]ceSlX#_%mMHp/@=()/XLptAY0Rpk:aOKnZN99mmXmDpuo`pY\cYqTemIcfMNjO')LS%n_p*GO48XNQo@J5:iANEcV-LpYMIpf0@e-!#HS] %IJi;c[M13E#3=qpVlm3eEM)(A]N#B*5b26O^e`p%r[U,1C`.&)Y(rFnq<(B"/6oI!#&C&)I@o %=c`)"#Vo`pTG#/g'lj3Mn]\?H@_f+,Dr,d0eLTi!nTQn)hi7Y\pA0PoroYAn_URZTRU/YV7[07@m._slk3E5^X1Q(do4=5u_sX<$a.mH/I#T)AqL,eckP %_2#KaR.:6jpH2B-jY+O?[&+WddG`('rq-dD5BlkH)g=Jp3UQ87>e?0'+!(MIr8cQBA.up56(=A$%H!ppm&+KP7\Z"6aG5O(rJ5dr %>KQ_erVGD:E-hI4XT"!i?bQW%4o['Mo%0N4puT,\g,to38lu/b'>uc2>$Y5JI!LUE="TV=a:65CN4E%l\Di#BNggpuhC6^MFr@@&X+uoC]`a?%!D_T`"9YHM$@]J)5VLjU\LYrgY/L($tCm %]?f?Jn]e8hT*H,^U$fCZ#M4J)k5Bd:^O,A*hq\.tUG"CGJ,@@tq;8B("#A*ipsH4ETDeQ,j3`8KhEUL5i5KK(gjJg5@_C%#X["_Q %k)/YLp#VYrIK%6If>%2Qp="UDI*5t8c%P2l-Hj<`P`7N+(eIP`>k8CkPi+S\U*.Tf06a=5KE$eXZRX& %s'EJ0$>d.pKXcI%_=sT"n:1Fbj5HQLpO@GWkClQq!;ZDF59Ko["jHB"5Q#Wt_<0MPq;IABiaViC#lhgB\o:M;Io.*d^DK?thd(Ju %b$GdK05_h9\9.VECOc9X`n`_+hL51WgHY]#il_V`H@PPN4)\AOq-kn%)p5m8nTbtrGT08mT.XJu&^%oqDdO>7?A!`GrGUm>rpq!+ %n(M[[I!B'>6r;J2Msu?:8)re>/,16c<=#e-=AtY4F@/+,P]d=e1'ipI-TA/p;gn,4aUDE@p=p1?/:h5fTtaRf!r&g %a6.gYV6aV:hPlFM$U5IO-(Zc*bojD+%,Fm]G(VZt!QnV[USWZuV[URnaA_6`7q)-HHb-`X!`>rb[HUq,&jI>>kp:.])ZiAc*-Fj`C5ch?ToH>n*\EgHhj?];?h4fk>A&n"G2Z-A %7!RtTCu]68c9Pg;E?^n^K2TNAo\P:_g[`2P@PD\QmOmP0s1%saVi/l.^OGP[#Uo_!puf+goJ/W4=Wf]a:qrj1V]g=Y1[EuO)_^29 %eGq_\9EWfP=+Q^'K+#Q?dF?%q_N.Lf-s0AW7F5]DW)_Vn2u2?H@0;Tj,B7/J#[`M5.RsfO-!c7c]V[A(&cG %o#U>,nY.6ZZjCeqC7tHeY$6NHArI\AOLRH+*.mgCaGdD,&.6V--a1IR78*0<\*fK9JJg?2'6rd*D4j)G#^L,BDI30<`['.i/i!2Y %dC(>QL7Q@UXC"4A@"Cf$@#Rn&;5#s)lAE_?P]6iW65s4T-X;:D+,j!GRY0Z9,`dgY"E+NQO6VDn"GhebdW(q6:BV3ciHq(E+fRt6(*je50kQ#FN[E]%BmunFa1dE)H %dKT$]-:C4lh2b9dh3u8GCdO1k^mV1TKS7GMP#rBCL2r#F>%j\seVOJ23?4NM('pm:TjeZJ35j`@+?^`'!CMHu/nno*RfKl*/DQ8k %iY,>FbU6RG*0F%lZWVfZ0lQ`q*%EbfgB,rA;lR%'$Ob5">;ToH5<&e-_`E*P^k?u&r8RS.<#'BPcE+YJ=5nfeRNE!\,g0UgD@ %>_8:o>b]W_&\3Q+].ZPF>$3BBTUiK\:V[)BUGMIOpk3d/8i0k0E^!nt78uU@MGLINN))8K3%7%"i<,SbY3$B9'\`U3c=-K9Bq81O %en;rLap<9,2XY.(@b5`u_k^V-Cs]^-(T[-hRI)LH^$``]hcE5CK`XY%\uRHV";(mH[X6OF7N7m:k]@0ZiWrGg6;+Wk*n6I;9LB]) %6:I"&NN:;b,AqD1OUuQ;>)CZ6&m#YL4^(AM2$!jO+=/PLBf>JA1CKuLTZ-\[B6M%ZQtaEfT5;iJ1VW0+3Y^H6ZfnK.b[N39Bf9p\ %=^6!Wj^G?5rL@;6T52ol$3q1I&4.#-EHAu_]jIIPPb#+/YLSF%@*'ZOV[$q2pdq#i;L.6IGe$WDC#Ed`36fT`=q."O&X!@/#1>F) %(+?8H8i"aQ?q.Z>n%kopTcsJhiTM>(CNKP]X4XfkOlaTs!tcqCGV;Wd1g1DV=i\[&ROt&\m"2Z#"Hr.G5UfK!bIRaX81Mm2HQ:9L %qC/]Slp)_Z%gTgcKTTpjBfON@6>_&;`p&s$G+DhA`6;?F67.NiQ4`7"h:`=Q7L7%NJ'7[2.NT981Gon%?SH52.C7n21i7_ %k]/ADeMrLA+H]Xe4cZ,Z?GUoGUmLNb!@h?e7-/cLQS!Q\d6dlHZ9Z7`m8:@dm_XS>V+LT;T;4A'?6l2$O2>U#2]P7`ho_).dR"ma %/NeoG6OJHhAqTY*llL6NU%QO+!V1-G(jFE(Rj-PLB#5ueHUt']Sr_k7'2E$b %,bHdT'Mt4Y'./Jm)E7^%?#\qLqrr5IqiR-'`oQI'cn=XZ'^2$.:!"2"p0qh15q7_k]Q3ZH2-N!-$8i=?@91H_1ipak$"@S7'`pE" %PD1D`^-](@PUuV;)/TUlgXIb'B]5m?jECFp[*:u$md2P1Kq:!@^q;Zn%#OnNNUqaqRgMUa)(S\YCX+N=dF,leDeIg4r>db+($=m: %olf2#^!htQqi9\A"o+&:?fo8Qdh,c>^0]NdaEJZ\DDJdu\5^EFaW8?63-n!`8M2]Tc*0s%Zh[9Hb4]^2XlLi^6[$fm1. %d]JlWT^t,J@KcX^k$UN:IB*t`NA85EC=8Duja^lY<>m)QB=(L?R"@PJ`ILqVR$V=RYW`anN-;F+Lj6fO]Z#4F"XOCf8&rt$0-q#5 %c&HDM_>>hQUnrW'fQ4mjiHnA`WK`+_';W7J)E=Q$1,T:2!)6Z2<-AF+,AgOZmfiMMB!gS%=_Z\@1^HW,lVkEHA.7ggNKBFfj6!34 %G.<`KEtV^(i^)D+(&TjYg0]Oe.(%8ZY9bR`$tMJn<,[A(3C?oDNj#?--md;i2.I%e82g[H`T]&\(m5uJ(V8T9J:aKrX&F"nWbc8Z %XVQr<-hMuCKT^WmHLe,+fS&fL?WtMa@M:^H.9*8!KYf6hk=j,I=P:P<)@`2NRo&=n,-A'$KG"=82t+XMfE>u\'7SMF`?sRM]rOdB %Zn%UO%AdLZf/pTO2seF/N#=o1T_lOA-59.MO)>Vb9b`\/KMoJiY%8:;>hOd"heV[cbpJZ5_l-%I6>Q^YA.20`@hV*P"rF"$H!qB! %Cge!:(66K`G)JV4/M&UO5nX:]C][m]]U7RDS-5=s+itUcYTrL!UKl%hEll0B[ORm`K.qPp4j$SW#`T<`o\/7(r#n#E$%D-DiXTOE %]J(:H:[XmflO`+E43N&^K-%3@>nXc9?+""RTc6_f3riX\e>_.2i1MEb2L>7^q&__?np3[ad*c\b/U&b=@d %grig-43.^T;1V.:$=dMbR-_/WM"'DDtLl4 %?G)?Ef\S#u,R)[+#%slS*a"Fhp8;;R%mf/3(dlp$0(`VM&2jTE %A*GRKlC4ju0YL'_PSjKBLJ^tiK;n47ftp31/qN\H%lB>eUE$JKtLfXA5c*f%bYW+c0Aj'ZQpEO:%F %EM0_'/.HtD)=0QpCc]S?i1ht1j:9tmeM%?aIiOFhO]^o]%ef,PE>8%e-lF*!-lR&&VXVtZ4+!*SnZif[CXbT2@f^_N\=6)6-hZ[) %K22A'd*$p+-[b`ND[eM6iM[b_H*o8"_B.&M/>o"gmJKT:n>G0W,(\Ii4n&PUF?D'aq7pR7Flnuh8=M;=0IMQ2gml(0KA?NbtUUSr-%Kegd/ShQ" %!j^R];Sp51q-GA2bNDF$7NH,Vf,"r+UDkY;M@'N?&c\^PR9p;r_j%NB"1`LX7^B]*DqR4?2iLjWC2!S(mp/bZ9)WNn@ %W@GA8"r<67W].c%CngUFlX4NqO.[0)=$V^;"OP2;]TtSn/eL@,S=D;@QN6S2)06[^i+3:_BXD_PVmtQdiq?PW=>LLV%Q*mpW&ULg)0[d"Sn-IT+U\_W!:A*'A@t;g%\tFHnfJLGtm`?\s#BJUT7qgicN'UY; %#R]u>>Xd]kaOieXh?6nE]f]M(n4l)4\oI5feP&:3YoSE*-hQsBL*Y6c4N8Xsk*tuIO"lKkCh=<^(65@d*;4rCeftf'-Yk?.XdKTL %Vnsa!85c1:a12>-"qEr@RSC#lKhXBB3%6b:;8kCHZ^OTZfRn@sLN/u!X`MA*qQ/=;)'LZX`ncnSS1XEcJs3S=RK#HU_CEpSG;G)tb),O8n_$.=qI+'(X.KAr67IAQ %P<8Md'e$R59b.ai-T %^EP<6VJ_KfeS$J6&d+P6;5uRk[H`K.cNJ%;NJ^q_P.G'ZCh@lX(DebLO=!GnC2Lj<5:LeMh;Dk&]$Y3MM!B^UCuQF2.E!o03K'jU %*a`nibp.r`HXUnb0mGi_2_`fe(s@idW,AiF7GVW6E)PtU=.i<%g7q?tE!#*.0coK%->T/&&?O2Mh'aN/V:iB)WbuJTk=nIu8B-N) %g4^8'3:#d8>B/ZTM5o)8HARhl/i-88h8"#?dOoOi4C1]bH\fV,VE_WdRhjB+LhT[),Z^6rs#s*4:clGp$N?55T:?C4WBdYTq=icAO+f&.D:. %huofs3os,35pBrPjW*ED-IUYIHpeS"m(R;iB/p&"!H;`Ae55Yp&Wa.5JI\XRFC7Fr]V7)*"_)=B2Qq)J.?iMbTpel)plZID.m&@0 %(.F]n$`>6o@n>l>HL[Zh(@_467ZVSI4$%rkjQ"ZJ4oRgPmMukD[p)Y\D91So^/eV_G%K^iC?E461Hdq^ %ckZRk-tBZdKf2!P^^Gt=fri%Nj]WYO%%+mt9roLg?93hgT+#K@'Z,P.=]e#sphi(R':sFN.p.$`U\5:FK0-/-O+=JG1;58KbQ3qH %TVE2ooi.:\%S<'*Z)TJ_N8u,bV+>4BJX'fjU!^_+0aE8LWF8W#@Llp9mj`&<621OtSIp;,-`?gi#X_n/TMOJXO7QtIFq?^KE6ZN. %7sen_clS-43a\j"W>Eh0$%WnFd%@C=LK=B6.MPN.Qr^rMg\jN]6">\]`t8"O((RRIfru+)J#oc;@"r]V>?Y^8X4a^=Rmb_^%:e%C %Gje\c0Pk\5?W=D)U[qn4Og>a8Z7o`Q"l0tL7a+L@:>Dk!9Ju4AN`/8KQ%GlS9V'oilg\"@" %%r5Za9X'Bb@g9X]`9[JO\?sOA/*jP$_f:>HkD,BVkUo&X6//4H1Hs%0/ppbu;L:Re_ph?G,kGFZjIf"-j26lQ`slO_`;[cgGTi7S %S4$$H'A>8GhDeUdN%c&&$4FjHL*+RQ30Ve+T7TU'"/T99coLA+L@.;X-jl]-F%j(<..c_d>Yca6:(m"YA^"a4jWNUOU&?RP0^>-B %(K=foVJreTOm^"i`0:Xu@<^_PKCG`j=h^c?\Fn[%T!J2;rH"jdJ)Sj/XZVWtLU.[=TNW:p:2:LI1!V+.!0N)hV/0l(k`*U3M[5^@ %H*QDX<*3HFL?=>'/X?]u^5Yt\V*STe[:%P*Pbm(0m*f/WTIrMZ0jC(R9hU+JPFG9+a;m>0;8+l9O>3=D/*ZXnQDNPB=W5V`Hs2ue %@\.Q*>7*Ap)B>RCp%`&=;d.uQm#tVAXc(=J=.lF1ZdSFLFE`Pj4X)#tAQuN+.2i)f-3A8XuAKi:<#^gr'&p3l^%:k[$T!a:Z8M0^><'h_CodVR98uSlScX %nPjPXXFFE;3uU7QSH?.`Og\&9rTXI@8nIK5"7p\"G'HYGd4ut-U5]6(T$]st.N1+MSq_1DNFjeY0P?eQTgj)2V\Q=8#hWq.OE@ls %6;94VM!8bFcj\`LP_+FT8:sMBD3VGiJrgV!kZA/M3e\i2=M7b&=,a.'c=Q.au5B9/WLUg8gn(4TJan?U7EU5[Z,fShs?U&`#n"=d(s^UF!Jni6)lS/]S$&J0JSm"5eh;d %qDA0e.KnXuCNSBh\U7^4u`Aj4_N-8F;kODHmV`djc&^Z>d %\O)0'q)MC][_%%UScAB'?%+dFCLfGO,V(]M/[omX0oC")hX\'Kl6+Tr,]'&D-7,>WY_,,0X7!]M*PI=r@S %r!6?SOqn[qFW^Y^sFTlkXIGK<`rQ&Jtt9$s4KES>"0Jj:6t]=^]@]r2_HG!0'LJeO$0.nTZ3g>fGYe?:WU;[/DM^f19?0 %ecE$ETMh6+%7g*T"s7[:-+S^fb$+T._XGIsp<9SEK')A!17IhPVFKl+%N7Q)JSq.E!97;F&N.8f:D-kIao3tHO[LB9%.R@!44FUn %MRQ,I*%F1HB9+Cr&O;Cee6o7G&&"ag9u6'/6E,u.i]S)I7FW_EBLT*\!m']3"DOQ0+:5M]LHoibTH6ON_?OW]1^#X9.]\@CGO.$! %mZY^qKcMiW,^!cd+>RW(<5:+o9m+JtV'a>WK\*dlV\\>Wr#%NuAPgeiBX\I=HMdkS!IRS6LHGUU:cc/hr^O@rrAmn#\2p)-;8UB+ %p^GC"'M:]c)XFu[.:iQM:C%,]MS[Po4Ta)5RO/b@Jf/oa,G&t-d?F'3cT*aQ5`Z[D16C>m9i,d[]Cf9:+d/Tl`Z6cCP`+^VO`J$U %7(o`IjVb1VG&F"5Z5.o'nG.bC(I%-TNik+(p:sNKBasW^F-'LMM0Q<'Fm_jBAoCG(/'( %:(:i9T[!B7S/T_RG@njnQ&1?8%`#$.a)H&sbnr<-E=P8UJ5IhX*]CjZ(cAPdJ-t9:(cAN*d9.$bU.WrL^Of]VJ>P=FI %p0*lR;5#X.Pk3&Y9PEhbQf8__Qo^B3P@8Bg;)64=M_Dn%g<%DF"4I@2.832U8k_b;+f@fIci`A&=s"9"e8R%fPg#,]GeFb(P&[6F %/'EmGN>>:-.&o/]9p;6jN2#BEB/"BQ1Pus0R6OjQ2S.0^.RM`$6"bG`YgcRRD=U_>2GjH%DeEYq/Oc(!Zr-k,A.bZ*cd%oG72,jl %X-")!VFDAd.EnlI2Hj6OM*u*43^T3J^_s4Q=u^$U^PBs/B8g(c3 %@);pY@#Zb<;7fF$Qr/OWp`WQ[kk00ub5$@h9A:9kJZnf#>`4TJ8LQUFSF#'q0(p"i)@"0pRJ.s9HC*rQI^e.J"kl[#moYD4e+u1p7 %O`&3M=m\rG;8AF7mNZAt5,1@Jb4CjH(:YOT#EZE,f:mqfYH59DZ$$sJ5QfpXj@l3O9u`:jYeN:2<6gW4*@LJmR?I2' %kQ(09VXgI_^mrbMB#/0-lS$SZ5I6WLVY'Wjdm]14DfK+3,@+XiH3o"0W;V@io6AP0C*4nrY]\ol=EP1#*Y5iF24Xt=R_fr5O#Xm# %\1]\_["\F43mdIRCV/&m%PkB$FUUib?!b+8.nQQu>P@^cOl)&jI0R,c]!IZp[`KfkJ[?%WbS9[j7hoVC!BL24_2;q$nO3L/ %*D1SI\km^!dh%;51bHRrcSIm`da*.ei'/jYu7sKf47AQUD&M32,PM*.(8Q %;3-WjUA%T\Qqbda>sBWeDbR>u]0@UipnF.YT_V5)")F"$TR4F!Jdt/ZK'#jc$lU*6?>]G76m.!;o4biij\L^A)HGc;FQ]Picll$U %og9o3D4#46HTre("q>'a"3k0c)2t%&h;EUo,_@(c\q/usM%$["$F\gg-':)rb6Xej8VA9i\q'5IOpHAUdfhRT8S$2$)_[k2^Eh5C %9iCKcR_9t%n7?.L3L?(#PmC_f3EH:i.5*(sg80K]HD$TmNPVt,51[Y:lR(KaZN6o&\TffG`'qJJ=;EGBfiDc`>If;d7pZjpL$RWjtA,lql"8& %Q%ec3Ju0?C8t8P=4FpF6&Nq!ibnc>4$1:Q'ZU`S:m?'%)m^[d2Y$#eUk\^PT*NEcc^V@Hp]4DN'(_t:`o-,)G]qk,'>327MK\kaf %S6hQ`lFfhVVV3G:+cNW,nNO4NSN]Hal$3ZCSt^61&u"N-4f+JTFMCJ[4G=EDI%XoZL7Zb=*0h!Z-qb/9@;m]%bI(4(!lg-o]X4?0 %o:Q,ZCf11%DH)3R%Mn`(b,A9s17Q^8rDS!di!nt$UTSFd2N.`oVlI%6(Q_k'9Dpc[1;o+=RH>&dAU>A.n>IjU?#>r8W8*grhe#9o %9I\-o1Q<1L;MH&_J!GgJPNFT)Y!=@o8t%C]QeP.@D=f62)$e3JU@)*;)2D?Kiqq$hL)EYk-qGWBL)DA&iVrn4)u3X0!U+/1RD4`W4T[[Ak($.@Mts/mL`Y?2>;o< %N4QVkCgkiK,F1(LmOkbu;fe:-`i6S^`"l+m?"+\Lmd:]l3&Po:/Y'D]95NS:ga/8+lL$:0N)MO!fYXWb]>QI"c$WtVV`ko`=N7EZ %.;''MO`J_O$dn,'Y)/b*dg$C.$HC:VGr[iUAsA&no9^fA3`j(,`g#[bl9g6qJduWQQW/(`q']_pJBiM7G'HPn1(QTR-Opa2$T^\h %ccr&k3KJKY5"$ePm4nHl)eUgl6,&B5i$$1S_3AcB(N+K'I.W9\:Z_-;,e=:;.dolqo&'-go?`KGj6RqqLMg"k^&DQ6!qXK9-ngWA %2X#bP!+[,\]"g[?Oa3Up.GEXhd.t,khPARqT]cbOp(O.k:;S^pj"+_p[;\eSD6Em/]M(du:?[61`l!-/H![I`riZU@"[scVbG>+= %]n1_"3/^pjpI:MNoap],L7,uLYDU\2DdqmbOQSKt^GRmBa6O(@ke1t[6LTkl7[].^;s$.#E8:i61I0%+r%0_kP^#mu'7+<1i1e+G %Qfglce`)e>mY$$]@p4f^,H,AL,d]e,GBhDC3&3,3$^Il6cUXSaQJ<:FAtC.,[kr]S=PigoN(194b?ItmS"2-ZkOt7I]J5bOZB!-T %MD'8KIcB.o!NpO$C?7>,cR$`(`USBT?=S&o>b]m34S>87f4n.+=[%.,i9b<#II->]!FM%X.s%[u/gm2qC3hj!^i13+Cs;)]Bl&%I %io8="iC&&5OS<[iYqa%j\'in_O=.+Yp"S\&*s]4NFm,">Fsk73R`;3ef]$U]b*+KM`ho!^Bl"\>r0;XLN:`)d2R#gmBl"X/ZQ,2F %g?:8=*2(&9)B0pF_:$t,fgoU_KKWQY)^u_?CnShdV6Q.t4,o43mVllVUhZ^1JK>>f`^Zst)B0q!iR6@L]q*.I3]pXc)lXcjC^a#) %U!hTO)ucrr2?n5R*\*-YAY#HkYq^8]>T+Pq)ej,]a)asb,?5tJ%IBo\)B4E36sI(IfJM=LWbJjFdiLIPa);CWIWLTD26G>fila>s %;5?4M/o#@E^IsjpcBFa]&UYQ8Ve.ha`i6SJYpl3SQp`s0m[hFq0PY24jc$ct)OnsLR73>rlL&A&$DV2[;9l,PVm.\@R[HQ(Vs^.r %-?Ep6&`oOoHQ&BjWL6>BF6_UrC^R(P-;i'f];MoBS@[?@)5lnp`eJKu@M<=CqHVJ$0P89q\Sn:KWRr=@Lsar(.'Z/3Qgt8\20Z\E[QRCIG(:2&7>;SK$J]t">u,*#lH#^(?nWY@5lp8[YYTBMMre"6cAKu)@j^$cb_c\ %gqqAl'OcJX+)D9u`@3rdQ,/oAKQf7fKYsO!=#M3$C/>V%YWJQ!=FJ2Nf,>n+;Yt/(3rksUE6b:)cOiq9ND)"Fq\+:74[4sI7ct5B %*pq9&N:.EJp*Q&R&k,$saF5=T*nm&F,.TfH>?JiM-/Igu5X.8d:r3B^oUe]H13sU[JW=b*8HtCAd=!?r.-XLi"o??[,T0j[#?mTP %F`jVR!ZgB#Opi\a_etYm8Odnb046Ci`@.\gHC2m;P%=3^o)]ro;N_G8d49T.0+QsICbS)@O"j8:7'A>@(s+&Z-$jZto:^>2L(5pn %PET"fO1*7Rhla*`%*(T44$k(lZ[\?35OBFC/^NBoDd]Q/F?n2kF`hdI#0M`_/8cfi$:'j"9n;Rbipc"'`h*V,/ah %:-m"TFTYn5jC%lJV*&GH(Hsc/0.!*XVoO3?,C4/P@tBY[o^N,-p1heTOjSLqAMGbFArT@_Paa(>!L'3F7BqAK]G[$RCMnBf1mWBG %:B\GX`aIR=];!%9T&P+H=5O4rFUk85h*[a9O8;1i-06Yr"CkL0\6%#deLQC2j!a=&HGu+lKp>F8H$uN?_o,&8"mqKm'm!i#k=.%C %G'eT0!2FFBItdnD.f1_\jtAhlS(IpQ/\&emTR($T4QIGk]WqV=;#\_EHdRol?(,b*dQB6<7/n`hEmPZ_b83to/;ORbV-o#kFpDdB %dt?kH>"Sj^FRjr/%iK+5G+C*!OD]$<#$oFj(q\AJ<@)'U)[GV%W(Z\79J(.1opqu`R2Y=^1G-cXT6=r10i!BB6?J,t$cBcm0UO6< %dEZ7N%9-O.q7?@CX-FFl8[%=C;D>O3*1YTV1mhnpHPWk+>8J8hHiqG^ndh6oS:C1qXc!9%?mLGrXU>7&]&4OgBO`UBmA@OFHsI_< %9LrA([!6KbRAj9uch %qQ;7k?8LPGCXo/:=uW@8'38%"6hB"GR`K)gU5@FKA.llhAl?[8VI4dc3'&WcBe`D.+c:Y]$;k=[q'Soh %DLM6C/PRB"HtaFdQ_ok`1?4cRntdd7N"sRdXt1%"f[<`4RRl"=T(#&_q9ftg=HtG03469hfdF0a#9f%p14%*3/g>igLJC][ %'@FdX\m68VddO:-9=Lac\"-\$$_]o"MA#\$?j^d)7N5\X$5*1Y\ji/#=q2`'a+0qDpL2Q[ %8FG'uT.%Qulqk`8\,p#>:inGY;+M7Zn-OW#d\Z:,U?gr4_*ROK;UPgFR\MZQ8%%mC025G7(L*IF#* %`etPQAIgkUc6[n4f7QF\JWB\so^YHY*MmoD:o;/VpnVEdkePo8Cs'K:T`2n^0e65sJfCqD*t$B'HV,Dm-1+b:na2!p9eY@KsY'e5ARhkk.^NKt?!b`CDD(NK;+ %"&n1N%@<%hgg8!G`OG-TZK@U9Ft#eg3k&g8qPf_5HhV$)MX*"X.T1V2NnE%TFe"mW\#Kf7(Wpl6>J((ToiWA0;* %DD=0k)7Z^*,d\U&[*$g+IRP@/AL-pe-`nkV$@:JHN>>87n;?ja %N8.<=E%dHIn_;Dr)h0L(L832L]^KnD9p!n4&pQjTh4[`4[!%`,0BT+X),l26h]glMj4E(k!>FZo0^'iZBCp:31Xb"gBdF?$? %.I[].nsC^=LG.#&9I\[U+RG18:s_pjJoE&&Oe<$%%5bn!5@pSpcA_#mqPiQppFC?cJi6O%1TUb9QF#!Cje^;;R9KEb:WV(q9V?@b %!!G"*bEC8!=[9%rl'RePBS!8a&nbS1HTV*3H`4#mE?PMs.KbNFGC*];IN3?^!9"i2F$d)RbBqPd8jf>hfF\K=$iR&EY$meA-W&\2gZ.\'A %K:8uEAM[\1[I@8WX(jILq/%q%)Fc`C/\]BS_EqB-9lQT*#5#%Nii-DNW'cMJ@`bM7LTtK*0Bg`ZaT%XgfM+FLj-Bi%bG0q7]3gU#(p,YVde2!a^d^;!3ek3jZaLmdc7-^[U,f'ga`6'3GToLE %0*S@Zk\'Hd,K;*g7V3)t-`3K$JH?Mh15H,oclGipcm&`CU.NmEn30Pr"Xq5L$T._F-uS_COTH6U=[[fPj%3X6'VL7/'ki1\k_i0f %\gd)I`?reC]Y7hg"m$^I2p_\#rOFM%M1DflX(qsXhKfs\FellJ\W4U1Cf,s)2f4+]FX27@:t\L[^"k\ppX,,UPSG3qc,3J&U`c=_ %/KMq8NUd>%O^MF'O>@o6Ud]d=3g(Ce6Uq28TV3T1A[@EHC>i-6,RhgXf9&>JDs0_#jm#Z[TF%dOOo0+7_NI97QGDh0F51bT8CDA@8.%#s[WEdT1-SbXBS'GLP/?.0><3Be.ieqWg:!$[d.>kO'[!_Md]kMI#pW^a+_`KuFX2\3\k!`4er^Ym %"LtD8o[]-=cDs_Z9@f4>hU$%4]=k\6Up*9W/pKUeljhUW1_f7m]@--B0>;8.'tb\YQM&erbd8PK$L",_[t2b\6qu<$Z0S^*@".U*D+W9&RhR>]cc4 %E.skQ#pS(hcM0dn3D1bP[*_'PddFUka&%sT5@eLAj/5SqiEV[_7"q>C^pRp?4'Sq[,qU/p3=_Z:VC%RRGab(s0S%fARKQOe_:0ap %)JTllN$k\R@>mpY.&SatP>KO2cK(s_C(`1(e>,PAVkPO&J,rd69MY^mDt#!_*HFEE"%*4oV>BjBLuF9s&(n@%Nmim^:"S&I!c)BXY#2GASdC7cpkLp,WJ(4I]?3p4q+RC,S8*',:R@b/'ZEcW(Cq%YWUNih,V^ppoHD4MS*4UJ]8$(QIVR:KT%<;(-F$-PC(d"lVs6hj %4*S&/J1l3]MY/7?p",CL^e\uRNf8jYd2n;JD>ODb8p`rE"?CTs!%dZV>G1Hf1R&SK^gQHlm2LH]12=ZS#BY^g>Tb_TpZ;W"BH!XA %%0d[3%&9u)G!SP*eQoS=g]k3:m$^7TB.W^=Nm?6&bK#h_[m'\b*pUV*.cZ&9R]WEcd'PW)a1q3`GNnp+]f,XNR=^+`P%K"e>1TRf %o%GcScQm9\cT(V=Y;Z10i$^%T&hdD%VR3l+h5@_?pl&"g)/!_`TkS?D;__%E$iP<+q^lemb6@65fUQ'ZsOC/DiFp\FnZ*[5J8`N!eJ.Mc&&i&^c.!$Q*HngbKN6V%q.?To(VrJePhm#/q?G4]d;6 %GmoZW_SrN@)m_md_O.Tc0_1Cg>=sfX?[Yf[>SG+lAL]O=9I>^7_D>W%Q6qeM??.66ASEVB0+C;?7'[$gKP.ku/PW+#]O^i*dc/hj %TAJ",qG8bVrLe%s_8Cn[FF.5ned">l#TKl\; %B1:^*LV`%""&VPV4oKt*aE0JgMPAD*j*3sI"XbQ0#g2M,:l!X %["D>B%?3^"WVGs:(WG#@NabpDlCZ3^32T(]-)I:N0I%D8LYc!b@>(Ifk_>jY9\0OhhEi/m/M-K15)Yp/;BK7>6RF6t!D$WBfp+;W %=,^ojZrN%Jc'un&bfV9^%%USs9ANs9R$Pc)(W)g6=t@;7n<-\/:?\QA"7W0Q]9]qQ7S=-N.3tF:OYVtnip]+%.G.QaC1GHY[3_(X]G]R;9$LRX[*UP/M)f>dr=.3*6(PE?/^@*%C>_1T*Ism+_')s7(FPe1D4578fjMeQp@WRNgRCW5L!3XXV!tRRk$8.dBD7l%K=mD4J&KLJ:/X %@MmPMC=C^e$?eOWL`mpBc:hkFP6DH&0VS`IX36f'l0$tP,P:'',pbb$LQ@ETd^o9kWA)`X+;9;+))./=R%gAkVPaY6*qYg_e\c^Q %4Q#5+A][RR*S6kHqMDF>a[o0O0k_XV'j\7WW$N`ubP"X$r?S9m2(CQF'pq-jOr9DRMLolO:g.P-V1lJ/eoBNIR**7u?r7ajQ*YlQG,2am1%4.a.L5R@.Ok[ME7.tP."5-#jX>RWLJp4!=Ek`;Zl3_,PZ[G'=AT5Oq22DtZRFll/5_d$V,Q5cfeF6ShM_a] %0Rbro;>@4(3s7:W86"IM#.d/tnr=`b#)XJ,<^mU;lHfOMf+^\5^isu25;*Il>me5='UVlHW#5@I'eJtbL*#l"=SJ#0,[P2A5[f?U %ZlRJD1jY+[8>/No_qB.ud9r2>g`]3$AW1&T0nM+b&p,Ne^`<5+CJ8k+H$Ed:m[0OV3],5?;dbiFSl2CA^nR[&*MQK>Q%hoH0At[CDd.;E$_fQ!aok*:KVF!$2R>Ie?ej:<-/aO2Zri&c,3sdb8LP*3+_(T3I %\n;#01V>eOIRt?gR9]>;86IcQ!%Lq.>q9B_%Q'i2dOd>1m?icKRLMC4fX9qUm:32onY=m!ff&=>h.NBKfu.+d'KPU(_Me=%[UY<# %I07GX.k@=?Z82i.mOLp2kVu#`.?iV'iTNps5(F%hAM"aFd)B*r6U$uE]lH?s>;p.DUrl:QZQoU>c"VBPQHSe$W'[ %BrAICH(VQNLS3-HGZ>CD^%dPI4<@q?='kmiA>7LmAh1-u38=eQM3m %J,QuAZTE-CP#m+EK@)64`VR3d"H_h%)H8IiNb&"qE:1h:NQc`AOr.F="[9)CStiQADEIR]Q;I%jl*a='fi7LpTu1\'Nilt@FAnkM %I2D"a:";QL/M0ZJK[.-MUcMMd?_LC5\gI&)9\5'$1dcQQ-)[VKC2F4akNWFRV@C:5)q=tKun-ZOtTYSPr+Bjo,)m$:\cheR%VfUu5\FteKS)<7kKo.ZlJCQd9-K*5K1,^L]JTc6bN %DrF3!)1%@=[/W6omBRKEqBV1BoARM<<+igU^cXp&A,O+jeAQ\^Q"N`(92N_Ic`B17I1,TG&FZAQBY3,J4`T,0Ph"k%c\9SD)"Kl8eo"7_XP)l/CcorXY+"Eh*?O( %0pLlmikGT[he@t]1k?SMU8J3L"l?KK9or@^UsPO4q$OSdV=%p15"jCk79_8bcNGC4)*7V/OU?\`?6-,'WcB44-ngC:>ZT.c<;Wl[ %Vho*q!\0Ao5%Qmfs#G]b>k+C?K,Y;P,WU:$WSRbNod&lK-P'mr.M_AmE2nG9bC`JX`0hFd(b`EflY:7UVnPV[:P$:)S4$kh1p1#A %$s'F&?j"D)c6p=,ZKd?YrNkaf$eA]JMlZMc=eAEJ^t7=O?=d%kJOS"2BKI4j)^.KW=[m_u4+TngUbQ."\M0+dYgap"GnBTg7M,hc %Mk=ETQbrr`5!&A6Jt#g.UC5IhnA[u`)$I5;!g4)d;m.WN$ICJo_2Dt-6Lp-M)9DFhI)5gN&Y:;[V5A!O&p.k^kt6Q1L6EokNYZ>s\'RTGbKs%5MRC2-Xj9:fQ3)6Cdui!g+^0ml:Y`EMd8ejkN,CLl,'(%i@h&iO"DK;A4s@e=#>>hD %.$L*&$Z1!f0WhtDB;hu-\_2BmZ?2;hP;=<*,"8"+'Wnq"E-]#ERK_tW"+MVR)KlNM@1s_3,./[45tgVk74@;3Oe6n,D0/FPQ5GfE %`\M,B1.Smb/>\c/R9$-l\l-$rB?Ok**9!>\+Hrt]&hs-k>-9DK=%gn,=%_-/RaYEXmA0aljOYTRT49XX(CWerf)pnp6Hff+[g.GJ;'/7$GH"oKFPj26qEK09bss98NFoEgU0gF][dE33-[2-b:Hq' %HqIin"#gWfI[m4t;SdcGEmk^f0l%8HhnNfZXeH*FRbQ&NH#JnM,B=-P,ijo22RBRg4(EJ)IKJU@!)%aRtPOS"un&`JK#)N %c7s`qWSRbNouSXO;YC[F.bs4F<.S:PS;ic$(X3dM\KlUM#tr]Xiaa`GOO!Hh_.k^OW#*c>TD&Q2W\7__@O"<"!-,U*mXMk[GF7,^W&UW^\7GT.+-IM.\L83?GTdW'BW2eJfCNp&MpD>>g8WDJWr6[s=;Ug1U_4I;I,^T=OQOYuBjkEaK8*[$_MP3*6K8eI+EO;S"14ohj#g.@ %*TQQ6FMgtuQmLb4Pnr(%CLN?3d8d;^\]X?<#f'k7R?D$3K2bWd`Sf)E4k/O#jj>U$`jmKD@0S0@nYT1`YG;K_V>Ll]7:\;"^1+p, %'?&t91SL9F`=T$d5AsK.cpgY98KEWGN#YDs;jI4p3`SHm"D(sqn:atM\tH_.&f%f_+ZZ5mRX>HnL;R*Xg!WQ-]em_=/ff&J#Yh\5 %YfO\!\m*hS5onPPoTZ7iHm0oEPs.m?&_AkR=[>9C^#H(_Z,L%oLt^FM]bZhgdaCH$?-?PK:Oc1L'\Jni3e>TdCB!KP3oUp)AL/4Dh5^LAiif#4Jg<)6Y6H$2[eM@?)(/uI[*`ai %8jT)Xpa\]^rb=lJJR+OQ-ng!4OZP9[B-bP"%GPp!(^7.qFUY_^"9K8i%,9MePRR2?pBlJar9U)iMC0BNFN*F9E)K1_6?_\Bip.S1 %8Zeh>Y=Ydjog!Mt-jDE'7dAX""U8H#23!OY)lQ,b2de6j[-8DU$hhr7,">K>7$QQ56_e%Cikc=KO$p2D;f^T_\JK/6,^Xuf.i^#L; %<8[SOIo;?C#tBfjX]"MgN]i-]2*XRpEbSF"Nbeth_+8RmfMt=\kuDHB/24/r0k&'Q$Hh$gBq^NP(A>hYXEX"&7gK7?Gp61S(ft8U %'Bd/"2<%lKM69dEo[u(G,qI>UZ(o%OAr#VDC`]1J0,Xe/To17QFb"2`p6_7D0/ufEk\A&0sjiF]P=E=$pB3RjFp:\EO`U@ %:qVh296YO#$O`.?Q'\3t3Rf1Go$U`Hnu*d%jb7DA%[85QBt&:fQTT_aVHYsU/igSh:>/?RFU?rn$&XtieKoudQ^!inlB2Coh'_<\ %W(YG3!R?QcKY$5A3?dL$^\D>&D@Dj#khf8974e0aj`1_9A985ri-t/[WnXlB9m"0'F/;''"gB?".'(WCr``(WD2OeL%luIS$*tji[_)Dn!TpO1N8ALT*p_ %*hKAa3Rq#oX?W)`KRoT#eKknL&$IT;E*toC"/;6r'lQ/Vb'YU=pgVY!@Am;(0DGm;SDY6aV2flV4X?U94H.4<2N$JIj\_bXjFc?)Tp*+JRZQH5"0,bkJDDBbVaMZN=(&dZ+HusrH4gNLhU=q_-SpH"j&*M.I)mAh@s/M" %"MTl$PdGj,+_t!>Q_Cpt2@XK7YkV1d2-+le%sQ7X@o`;1`u2`u[Nq %m3?1VN[JpITpWeEL?dqR[*d;gT3NKm4+8kqtqPl;WZZD%'P2 %lpX8Z*9DupR,@u&YFG)5ll\/sgW``e@'$ldWB@V@=8UW,VM=5C.Nfh$"K&/0E-W!s]a;"0$iS2>RMKi1?%ZaE2?)Z0SoDd%2lmP- %f=FIs!`?mL:(fCj1Hs]!4!Ls,`T?[b]LF03(+9t1;i6>^Zhk'k'E]K\XT]>IYPKuXP+,MFUVCi,UDN>Bkf]3^m!aM!R)Iu[.BAHJ %fZ[C4J6h75pFfpG<8dZ&7o0DK>REm_QiU]t@^!D`?B\0.'29A?7TH\\7Z9H8A]M)n*;^1d>L+MQdX!^ST>*X)QlqG_@(,(M[Kt*G %9qKI[8$<_7d24MkF/*]E`(\-.gGMc^]\!fQ&P[HIN-TuR7a0>Ql5bquTW]N8q./P4IY:RWR+QD;Tl2jD2,B"A`.?APB;R="3ui[j %]+qor<9opP3d)J'`Or*)niml*WF[#]*6OISU0.OT0aikh$[=lEgAE'_prPk'L7[+[f]0sNFTK/bV)@6V#!sXE-MkYA"8a_@]KeV5 %+`G'=q]_Q%r3SPko"%2#ZihS,0e/P%'pf%VV3qm+'H1G'/MAu]+.^R!2cTc!atIpq6Bn5q?>I(cKopE7`%!*&Z!pjpg9,aD3]EOX %P+uu`BQlP.(rb)MNkhY]b[:e]&^sio1.X208oR'3&tZA;>UbH2J)"3%cU%\X"dfPA,un.Z! %0MB+6Pu!4i0X8)`S&5QHA^Zr?nHt3XKJV8N=mI[Zr(L-[&T=XaX.o*)UZ*$Z69m3>af'FfU]2b`MG`o$_"V);gXT=nGICaU93Q/e %nK++PmIk$r8aV0Jd8`9X&lr6O=^TGUC'PnV/PEKT3'P`Zn#GqUpq5]6-*6%59T&r^j34l48nIO-X5`[6h/)pZ\dIjF%?"p'r0db3 %J;(ZV@+^kadKK#K=`b*sM>`6kDl4rSm_uBMMr/%, %CY8Xo*t@/W"H2O%@BTPgBSZ&a1UnlAOI.%pVUXJ%H5#Ai+'nZ!H43!Q]$h,V=ZZbic32aLc@J+]!%hVN6EV;,p*>2lurq_$eD:@&>$L$5e+[e>\I6m_Vt`DiOsb=^-eM,>"T\AQ*+(U<7"YUqFY %0cKcrI4D_3`pMkQFb[gJqsT=Q?e8a:B-n(4X^eAC-4OLE1&b(]$#WBQ/Ug:;$BRW=H-@60P81U0H1(pj_M`L,.Q^re8d>V#EE"+)hbbDesVSk0iOZ+e"6fW.')H4E\"-J"/ABYL`h?7!SAL_&3.:mZCU.C9s@T(`pR%C>Rr&RD+.Ii.SWJCa(J3tj3roPa/i.UQV+A<]"\rEg6/`SUF:76W-A?6!`j&GJ@]"!$!'aXX/Wukjp_;:IgB5r=O7m!>BpEj(`:q/N%UHt2aLJm&_E.XF6UuD<,p2XE"W:Dge8iOi*;c!@@Tq0 %$`IpPUNQPPk8qq7GYqq6s+=11I>h'].10dU@VB;/OoFX2/TkDoFi+hD#?FM_2h"AC&0BPk5,EtmR>gr>>="4C-jjRF!2Nst`'3m]6LQBn4a16H)N4CPHjF.<"R0B:V[oDFSoliuS %4gPN1\N:#QarmG[2A>J%;:kUi2-R.JNXqYH`>j)F7o?(h=\TsF*=K"m92/O3*IXupJhP+2+:cEr%<.H%bOuONu`3\ %%InNTUm/kE3&37%i3!D-ERR1$,fc`4VAVs@dqGG=QhIG8l`GC/:ZL\4=#O.e[*i(O>_cW!3bm$/WRDd-cm,`q6mJF-0&VgJ#R0:\ %%0Hda$VF1s[8GO/AZ_#r;k%A,h,ecle/0HHRLs`mL=#WD-Hf$U>T%q3;i!jmnX)7q)2:E0Yd5qcN(o4t8:cb]QY*#TV>'(X\pIgT %I>0G5lU45\m0+OoKkYmF7Np/6QRmE@dW7,6"CAbJY%8;O3nYYo"\:S8baK9=#U#q&`nM0d'0%8t9rRkUE"7U-W`6qb=BWWk)D)qm %:Q/quS6rt6R+D>q5?DYfK$*GfE@8[OE(ETO/-i'%e;5tL&)E"<==N8\(sXNdbb^aGN]:-c!it/\=#(-5MN30G7R>n=5[\@sJN8IE2#;kBKbb`Y)Yd03b1g2l= %h4J/+i`TIH=CojE`1Q">oKdDAI0$9Qt!7qcfF@7PSS*`3j=<1e;9nH^$O0,Va@N&0h1 %o@`7(]DnF_hR[p'ht]fJnCFIbZ`QOF3.a4Oi07;kIc,^te];EOuN>3L(r5jEu!.\qW3E#^IIOJAP;2,=98%h/u@+N[j3\jpZC %Q)(=Z*(BiOFlY4Ae%gQ3N4s,TS;@:(E[Qa1#BXHK0D^6$7&S@/FOR8I4U3N%I=>TKkb*Xg%6T#sQ;3NKMc[Djj"MtC_W:).l!O?\ %o"m=6=@dO<'eq']-EsCu>7h;k>U7O$W-Z=nRP=LdbHO'14'hY`,r%82nd""qcqJ(Sf2R"s[2Yot-9DF+59*..+XkurOjcC#'_d>9 %a]d0p8JJnB!6&3`P/bph!2F>u*j]%fY"lhj[M(%^,),"^!o`O$'LfpJf_bt>aJtJD% %/p2ee+[UJlnJPQLgf.FoFr2S@Kc.b'R7aL,gPD]:jl=oH[Cnm/SBI0l:d/@;BF9L_j/*^WW.htK-&n>t?8/Kc[4*hF`/t!3<^&T^ %?,2+B[:.7Vg7o1Xp?6XNFBSe0BnIWU@/\Q%CFG.?*.e\NQGaUZ&TZ>i$-!7*V-P2&Y%K%H.ts1RL2Gos*HNSFHcemZXmi#<&Jb3D %[)DRBM+](,_AQtGZ]7,l;iHClKhj3G]>Y7%_nRie-I2?/rc^*m^rO5B!eU22,_YHd-R)Nn/p%KRVWW$(Q %6Ij\OPZ3&g;46^Q,qE3m(D<$5IjJf#F2+$NV":gZ]VKV[R_Z;V3M%X`Aq8*1])??/M'[tQ[:o-i$HZi@G5*]fnB48mPLC?*cb=G/ %rl#la(]a]f`I"@R.0qD15SOAUd+ougoKms3e]uloae5Pp;iCFh%]uLbpi*UeSdJ2f-Xmp6Y`PH4ObK?g*^Z(?4V8aPOrQLp*l@-c %#q%igqC%1rA;@D]4VQM2kaj?b<0i/0W5K*aL$0)FmF2Xe>J_A+FaP3T4t/?/V`d]ul&+`U*H=-An,qeHL33Y\Vd9KK5TM+mfJn!7LMg@ne!973`nP@(%Z+@uUnQE5]3Z"2hh9pRMGb+`3U.@;Ol %,t4qNX&Z3O"5'mp=FUi#^/f16Dk1$[X1bdplcr*rhdNP(k@fpqL\XJ?ROp?RoTUr\P?7G%M/Ff8K`R%7lLen@ipLXVP)I5L]*#_Ad\*0,QeIs]X\i>6s.:rMs+gs`\&4)%=EA9%=q?])JtKK$0f<-6T*i3[*?eDk*;'c9>.a(N#_ %,"5LH6LSnNDs=1(O[Zf\ek7.n,?3$s"8SZ.+Xi&;Z>,&_`ZKh9PbOO8`)GrnX\($"%Kj!a-UC_`J\7!mTf&^I9:9l-l7U26ke)X+q9Q8iICIaPe$'L_lLSUFQJaT%macW;)$9BGS1e*Kcq2Kq6796D1SV3]\F$s4kfkoGVB8;YXn$F#tffNIhf1@C>G%U:o7si=T&i7Kqq18pO %W>BJ&!EESqW[OPp=gZ_rJb?rekAL%SW_T?SP&omR-":PS,uP'P,WK!];=$aKHARlndJV!cW6rD#=(pCf9Y-^8C-fWSB8;;:>uh7' %KOH.Wb?$+c,&P"[L2+3JDcoFKGEu8NA.$gZCW3HtHp@:`-;W-uZAR./ %cqT5R$gTOAXG&Q9>$1R4:7pqH8ag=5+Q,d=XAp";US,YVKq2^j^lSsuD2]m)UNNA`>#iQ'O;J\S"nJd6[;a>k'Der:-;(WT)(^.f %7L.o"3XU3"A0etq8Km.a.@m+<9te6m5Q,0O[F"clll]%W7V8(bLf7YKk%EHf#:/*7s7hXNf%'%TH0rJ %/TT'pMH`b?4"=jYM\]pPB],,B71%\aR7.FUE;,'0UR_7K!$,'RL3@,DqJ=R3Qfq8X[?N:P4"=j)6Zc;OJt\,TYSPsVC1bla %@6'+q*Lp>ufGu?W/P>(5c7MZT%aHYNfto=E/KC$[m#GH(-[&#!/op<=dpX%Qnj^SNEpSgD?gt@T?SkqG.=RDS?r[%J8('@&^L40" %%`$GK?a(-JdL>ND>kH<:Xn?,u7?4`PnV\BdUZ*'uAXn=Zcph+.McT!%EsU`%nV\C(j)k&b%_ts3M]BU/iYS[Iitm[jNbXM6M]oT# %#`jjMj:EB1__6$1Nf%3)&0;S$i+3;2BXD_VquVXVZ&0MtiukFT[EaRm6Ru1L#KI0@?l=TAqSeLWI#9qt'mosG5s1t;ke^EAn,O"L %U3AJUf'u-b2UFU?#9-hMk!A'9*DZaK%ZCY^OQ[_ol7.^o5q!^X6G'b_8oI#0dAHKEKg%%_]W4/4F4!^WqMBppOJ>f(93@]QI$1;b %[=ZrV[usRG(Q3s7OhLuR5@NV<;Qr71fjDq\lB2@905Khg5sB7JF\S,K:lAbhl(4PuY[0AD<11*R`6s8Y^utq@@3]QMhQTRtR"?3& %$%oG4&[MOm'Z;PN$UEE?hdY'B$_eKH.i(h9!glsZG`>sdVV36?"?sE'5,".28HFR>R3OPgLd2cV5cH4n@+OGP_l$fQMUMQWa(Qen %:7pn5;lkd).q?]rW/NDD8+"d<I %;-6OqdLfbZ>M;UFLeh=:.?\[1=m"aX&"/LL)^kG6$[nufD^qG6c7e"P'`kL8^Ur")O&]e65]oRuM=_c=d^q>]oq-bX(@(W"pC[r8 %G]-->l5-I3l,cVj(LYa/4/A"3`FUCUAq/>>_:b8^dBVfG?BL[D!r %XbIiUmucfTla138LI4LrXjP48C+OCs)Ok9j)+o:30KWmp*PXR-H^4uEoHflpS?X*Q-r:aj4#F'?9ai3PZa_F"C\=O;YcsL8=+8WFI^e.G?\_.QPm;>/L %BGWBC(3EG/M\o3[3$E#k>WPiiHmNbkl5qnELhJ(clMY7J&oa&1iNMD5DD<964b9t!WiM`6?P*tZA+>HrOqP` %V\p_h:[ISDDte!WoraQ:3l=Ou`J6&*@g)W?3Cb(G92>:4;,*X0j`%XJ*l,+'N^/f^.`E@r+Z[!-+q>]:J?>Z9@sk+(B$P_@2Z(\[ %*&5Gq++STGj2(m0W%R!u1nK5BKC[d;'+cU>T2fiNcB3.S;XC[f@rm[?;Sft^7rs8+F/%T%:!O?BgYb1gk8XNPZMm8T*0IQ$Bar\: %MUAbg!):6Z$_-!n6Z])'c=P'WUX0\m2F[N_%Rp["<),h4A]+'c8dI=uYL^&bM[rh1kRdM'RDi&;RaBK.i-M %cB6]WL\)cE8\oP-#nQ6#_c;n\kWY1%,.`gl]"3qJl,_53SmGr@LI*XM7M;Z&2HCc;A %84V"WOA!HPLpn;0U^3-(KH'1tP)D_q>UE6mN`cg(W]]jW.M%eb,fU0In@$s';iYtlCmBc$%#N>AQU;TgN_i*D[:=6>#g8*]GF[Nf %2-``7Ti-(Ws2$gnN9NPfH:Z2@==WGd%c]?4c*uueA&]*d=AW;u@nknJT^=O0@!\C+Db\(\`>0r2M":3W'jf6EbgHB*nY7#nSo@)] %Kd7YK$s?-4&5"QrJ#NW_a!l'NM*m*sYVrY$J]T6FHPhR724+ %6'kJL.ee*V!ZNF+fR\d?jfuH+ojn6[SRE4K`tboYaFd:IE!&u=LONiB0(6]Y3AW-"n!A@#&U=hkrNEh2i,ZTY4$V<7Nfg:s(Cb_pJ;J\Y`4#Bf*if>=?6Ii5d^Rt[+E8+>P %!oB]-(P.3g]W>pDWfcotG'dAlO\d`PDqik,BF`c+53ge[$ZrH.Ln#N2rL^@[Jia$2=Dg@87SQd$K]M)&%S2eJ*jB+l^qVS#o]TlT %ZO3k$e,t?a*GJLUMNTNG'd?8-*s*tlje*!T7h]C[UR+:u"^JNY%#%j'nO:Yh8]R/7%lN@s^DIm<+8u'iNI$uQgQoEn5XWN#-c.Vg %<"Nhc%\/p=N'km;[Vg69'i]j`R+g"tDWhsjokIlnpIGn6bMkGG5iIr`g4J_qZ1`N,?><0&-B'/.=,C%/)nt^e#*4lnkcl.G@MXD& %@$0=Nbl1nQ$7"l`e1kH)AdQITWtF!Z5K1.WR\sbN(14U_F^3A$h?Wqm^Ko[df])&?3](WbmQ+9nCi>BSK&<0%;=D/E/En.h$]S;Z %[ldf_fWCpH[q>L*Nna'BqkJdG)q*[gRL<=)q"f&GQqrDjg2\I[R]sI^?Et^]?D7n0Jp0mCQFF]I[qU&f%=UK4dNpL9S_k@22;8$D %H].9V@Bu]aL4C_KDj'Q&]7qVA$4F>?V0r9&InU;3F!2"MlU8hl"#iR?'1_VH^Ze@ZrGH8rm!$(*B#!)oOSoD:V:k<\.V/R1>AXHVh\',! %f9Cq*]VqbX#r,K!lM3$+Jc!"l&m_Kn]Z`i9Lh2%%C6jZh[<85cU8&9n]:@F$6^T6@Q_*(Y$4GPX=>DWJDHqi+\Bt3dSmimIHtPTO %'#\N?dsH;6pdBgJbQF/UhiI9sQ\F;;Z$L*fY$cgW=[;;q'L#$YfBR-URMK\.Q$=30GZe9iod0G<;"# %^Y>;9qqV_cm6>P=c$[!!+o;f*9!dFB=J"m:F=kadYB+E]Dmt(-?c>bFe%Wqp/nY*ZYKZesM_I@?k=9t`Z)o5]9cX[CXO4QP3kL%N$*;T$%:5Kpr85N6/]p`W3n*5$M[>YUe&9lcHu]^,mqoX#^IO[4cX$!g*`WuPBP[q*n>ED&Z' %g.Bs+[$0;jg1n-4iXbNoiVA]`RC_mP,agDJ,tU!i:.]cbqlGCUdsesNcLgXnpfRR4Bg4rWoR_k"+#N?jm4 %5,tN9X<5.BI9OOrnkr#-%ufWX25n_$tZZ@43D8_+E>FMf)_]r>Q@5fn9E2@N_QHI;VsJnr&*ancSXHIEMHX6hQP`m\+qtUPjIiV>S]bOQ7Io)%+("5`pF7HD!gK%mcA@/QTN4QDbHk,><=3T3JIGSk)6HlkPiZ8b?5:\^Wmc5!?;aX+F:([0k\o:8a\ER1b*+/Sm3'2o(;R$^LW %%QuV5KHGMP.LA?3,]m))\[`'q41P^L,lH"0,iFgqlIe4Q%dN:BL(;qcI16'1WSlk:H*+DZSaJl>O+9n"Vl/esqPP_<)#C-Xq\VA- %;T$$c'ORb`pb_\cG,+'>eRO&J`SA14+(].ENS+[8.F@sOqWdD8lMJ!.fhU:bWJep@@4L,[1M6JsfT>:6jub!^GQPJ,H_QC2^8Fe1 %T%h.\eq]F/g`@J!>HTQG3FLEfF"R?@jS#7$B(M,'_d\B9RYf@*3)`dRNtkZng`A@_Qs9,kDNBgL/ZOoV*&ce^P0T)u4h.2H=Ze7, %,=]sQ26#P,U'd/2_d^pJk$NG'N=@uqZ\QMM1jkA%,7X))iZ[8JC(FTRd%U*P'"ke\Jlc=Bdp&$jUU,TqiR.V:_O(ari=iGb*I^t\ %h/djTEfaNIQQZUU`1b:=Ed;>=:h:A%9PQPN*6RUCm[@B%RN!N=a(;bH;K6Afkd`f42<^c$%?h.%6k(W4LJWUqX0J67FQMNK'fn=$ %Q*`oF(3D8g9_M%AUPA>c"gTJALJWWalk!nCX>,8C4omaE!Fth!ak`Z#607OE$9+p-)i>S6mLI2F\u]kgXG0Xi%^.[V/]unCa['rk %>_X4Do7eRsak`ZD6'i=0R+-((G*!sdMB*t%`W>G!.TcUUd#f>Jqc%8q(UM"iYNmEVLuqf_O;o4V%[*SSfKl`2#%I?1lt2"p>rYBX %%a>KHX5bu%+IP,E4%QLabmpbT@Y[MaVm=3a[W%SolHnl?\N2@\%[(NnZ\.?(d-RFK$9Lpr\.h#$q?o_#OuD>#@Si=?="ic.%,<[> %OFT:Si'goE&*3#S04M)Njm"OfipH#uWrm:6:XOnO/&rIiZrA4VNLA0OEN!!1pJp$hk<7^LO2:i`(ht^MT@mR'=U,-e %[Cno>2E/(_3q*gY1/6f<>sZC9*G5qL)2mEVkuVd?.]WQoFFU>DRD>TjP((;(8mqLja`mnn@0-$!!V@PFB'_8'*\h.r!/"CnHWc?O %CtrbV%e%P/1n"ucA0nW8@btWjf#.O:VB"8Ch[Dt^'+4cH9[`:K@=J+RK$4a-()-3hAY!f39OV;--oTG?C':%sel=QCMO:Y7GNN;*k'30)VF*W,a)RWQAM"(Yc)T0b"To1B#"L2#Ei8KWIE---^nB2ehEdrCO?Qm84qkht8GCI(*0kICIh3Zr+Rocp[NNSZA6%'L'@.qLFYFiB0E:BK.eWm4G(B/DO$aN:KB"($Ye0N.HD/YH!i/!];mC"DCFq+$P8u.g2TOsZb"Z2Go1n5*`pmJ%c<>:pf]33qQi2rUeg@%\e-GV, %LW6pf=V18^[Q/S7dBuGWLc/3jj,Q0a*t)7fSrAZ`3_3(@PdqZEU=kdm[r,]@Zq4`n4hmm'4d[I\A-G,)Nl"gGP7`dg^gctJHcr,0 %83f#np6q]TRrs\F*gDFaVm&)/.h?bORHql`fQ'dJ&jDQI.I`[LI_UHr %1XGTE^ZdhKrD)h/XEXOPZJY%8Re>E!K^ADYO_28XO)3r?4ir?P]=t)/n+J*qNUQQgm3C9N;;/Lif;HhWmA5(X-Dt?$jJdZ4i5'[g %11$JV1ANnsDmt]#Jm)Y$rFgeO/Zqrj"cE!KbVuEi;fK7^65J%ZOBa!i[GM0o9eUjceo5B$MHRab;Lu_qrJ)Yu#Se>l7;qF0O+AtZ %N[?r?Vl-N0-?9#MLEZB$;BaksCY:SUTrb\bU6m;6&(g6u$8.gE_Nm;E++SM%b4>Y8meM7GRJM:pd#6anp1L;&R)JHpr!pn[I.b:PGnS(D7E3+aGOo\g1(*M=?sQSiGf10F=:] %8OK),?M$F`i*('.kGb\Np.e1%/f?)@*V*2%+an\9!Qd-+%-B%FAOoeJg-;I1!"_YHFCV&&?GTVTpPgfL3E3Z %'LOr-;oNm6MI`1&6`$]\cpOWG*JV_4Jhp>*7.XU:qIur:$FU4#a!"H:TL5^d@q"X?3FkpK;G9qn_fMgbZUJ`p>SX[oN3IGISuY1H %LhKas5u^mB0@7ZM,!2PZB@EK*F&f1'WBuqF:K=P(2*Y*o.V+".P#\H[kcBAW[J'86Xo4u)'tT/'?.20(D*muYUoR!/LRRu2l_q%N8 %ohZr_]N+BbM>,`^f&dNi8N:"e-HTT`0h#mj#)jEmc-/,:'5Yo=^TL2gH)^IV"?5p&Bg%?1[tG_$ %__C%D$ohWLNO?5mY]XssWB7nSb!\k-XWD.1I=UER%r%L_WuA(_I]D!&SX&_:4#M<(S6eM>=-Hn9P9/dFk/.gIH5EVcgj)JoT!X>_a(Gma#@cT3+MMkm.No5Ut[;ts23:5t@A^T)&X?m`p_J3q4RdF$+j95br9tGdEnUcJH"(TObY$HZH!m5ltmUh3q %1@Vg?K=E-5oBnA1K>h(P)&VBpg]1&h2clrO64VT)%:D*KJK8i8Tncb[Vt.akjo.b5lN4Rj-;MMj*bL*\R!9d'^a9rbh+/+6@L-GC %,=/96MBO<(>`'^F*eCq62+>o8-`O_HMoGdN,;5b4aE[Wc]8Zf#;h(!8qoV]!/"6gG04s3]F9&JSdV2CVL7`u>H0+jEg,AsR-_Z27_,G;Y`!qmk;GfpY0 %1e.g40f,&!N6Tig)FJ`YCl/(Cp*2n7fmfa4lrtpRrI,9l)G(3#W7aJI!&&hK"@_;ojKbfn6;ugG>f&k=:na9cV,eQ5rsd-,1h/H1 %p/L6pKM(+D_+Hm'[(T,_i.qs^oM2%l2T=l4(Dplr&]ik8Df8a1#p/t?/p_9:L-h8pHG$VC)H'4?W;Y;W%F0KN4j=[i74aQeK/tIX %q1aAL5_7fj0Jn@`NL&'F1&(i)][s]?lGK=.r+X#WC^Y#qEDA&>k&/=;D'Q="]D_1Ro(M08fnoge'I7l_7_V4u5E+8Jr&!\U9:>4[M_spG>;W^3G`) %RBlgo5[rdk51$DnYHqKf$e.Xi*7FP9\%,Zge)G^r.;UFDG %-XH_iqHD$5R"OBB.G(87XNgDRna9rD3so9N4a"Upm!NSJG.F`1L\#N?([0l'n%J"F4dUcg %RZ)&m=\V3t\7-@[;kj)@RY:5FZ5Y-a246??;=i$[j&:Y/'BYo.=isJPV9=i2G=O@Uc`V'k37d;&c\FE#bNk1";.lb(l?3aY_HC?pRG$DOHo4"E'lY^Y-UP5GOnG54kX**ZL\%P_plZg>Y %-$cZ1i\*ci5kMs2!UgrFCK_0ub'XPRq4$nQZN,Xe0U'_G,&AUgB800Xmq?)F %kjf^2d)9=ef&[3_[]F'Sej55:%G8d:?!_=/.)Bu72jG"]\hu4W;UAC0\[dTC>eG&[-R[gQaukHYH`CM2XagVZ`[tUuk39/Ye7CiS %XGrDtfZsV7BA:$g..]8OF;^Znm0XO?d.VO&5<%q3m"\)Xa1m4P9boH7U*mG9_#W'Jle8,!\8A7bN<.Qu#fU=-X^7>SrY %F+gLa1eHo:_@j0n:8Nf"8GGX@`3U6sGL.AlgOLP'm+Xo %h7sh4P;hub65;;T)Wp74^A,eq:a4I0pgOp&?&(&De8Cq;0%M!*6BtPm0ra,2\iqkb:`5%\X81]-76/%WnCJW(JT44hCF[!RL,2A@5Yq]XZU+O^-4tK(4)<=q<="dYMq)b;$sP+Bu&G"AQ,)*^k3#m2EdsL/QG/ %h"oX\dY;lZTdp^4"AUe&!+j'pP&OQ*&tYI[*A%Y[8=7:VlY+sXn3/S@R"hhK]N$c9qh#]W4N6jk8F_fFV>sB)>'RXh5#[2.K.%d/ %T\j.Gn7EV(PY9B`d13R\>=I5'4I&V[#ij&Qo#hr)I_n74C11F7$TWl2:-h\`N0p`YN;&^uO7;gC%$351Kj')[+^j@B6=?&rJk;8F %VL57=kQYRr&#&\An9.j^``.g*MQN*ph6_FN5tiEr![n9qV;E>FM@i6]%TO&s/FDR^>q/fI36_a-FI6`$]\nfcDa+s)?FCg:@:k<, %KtT5UWO6;aOh.q8P:P+cJstB"i_:;A+`<&Xn.J??W!3>rA4FXQqWSp8g!Q!4?7s+VBVuB7p/C980Km]+l+T=W&W'j-?KI\%rN8gU %\d6][>kI"a%:=dO/'X;2^a@:'5lFbhhCMqO%5Go)+-nZ9=;a@rle8mht.om3ekOrl$UI:ftTK4#'f5JK$bNh$dJ>& %]DNfQiRB)+][J7$nSYPG`_V%lK\uA0BY3"XYjkKW^rF"a".JZN&8\u-8"fBY0>Y(YrPYK$>FpFrnkNQ.`r!CP&'TJ$K"nU^*b5'. %Su<^+cQo_FkVG!uY*b\YB=<(fT:>?qZ5_q[D %5t`"*!bcL9nL(UK#c6V\g%\GP2j"FK*Pe]_>=A.=k)-c)^'k'0NNNg(d^(Mpdq\t-0H&_+*;gp%Pd:$t%@;CS>sRT\hND]WdfMi: %s3]a_NmAJrFU=_YBZj<#DGKR0$LZ8,0e24Q-> %%'NTuIOZL_\TmU5/o(ceJ4`/l$ABa:2i%XP5ZIt`&je9Yj$8ss#?B)`F@Fe0oq1LiV&r[mU\'2=1M/M7gdOGM*Mu^Al7PuuOtQ%j5M\]$+4NG!qE`q)cP;u* %6*K<65JCrRnqa,H1b[F:qt,O7[<$Vk[b'EQ>HRM#]Bu0C?:RV:WZR0(o?Fi):-SceIP;P-R^h;\^Fqi,Il!nDInssg>!Ej4?606`6-kr?AkNIA,fX'0+>Wo$Q6.CNg %@0Vko.:s.aTOJ+2Z89D:r)@8f<`uTTK8LS3HLNE>+R221%8&d^a?^OUEgYKdM&_b+:pEAho,U(+;R\X`NbO!HA:gh[6C3jf>:qLO %a%FNDj/9saWDPaFZ\:^\0;ofOk^Ku8aY[!i3N1W*.gI^p(8C]TA0K)]9bt=A %ON"#M;p"$,Tt)QV2-G`Un1nMt\j&n)U)_ZnTunjjR+-((Z4I22-4<]@*C1I@G3/`-*QUQ):_ac<4gK;E!'$AlXk!s88+no52]+5t %.^bh,%d("Wfp;5d3OkJ1([0fu*6--4'7bTp0_Vh7%7FV@'(B/f^p:,h$Q01s%"gaIQb:Yg0;d+&(:R^#TKV4e/Oit(D+9Hc %iVZCeh0_Ii`"aJ(i-c4j>rq]V01%J^SEl>_L"8VF5ZO1o=rpDX*VJAl/OpqDBW*@;qbe:UklO.m[1m#?NE_Y^Y_2@Kf^ %B$F716Li!J0Y2Xh>D_k_KPg0Y[le[>*#aTM>RJ4PX-t88nFC6Y^%:ZsUiY3Q@Mg9XCi*Xj`p:\G1[8V^YtLioXHP"Bi:3;jXF954 %%[^%G0gc!]_I+7qFVldb&-WT,\8t!=bo6LK?jsdLUp)c*prl9q"OBnk_mr+g+(B/n]e[bl.=0sM,Vna/-h[ruT`tpo:tbR,,Q8iL %hqW\mrdb:tqu&^3bU6`X$%L9^2"TOpK^AI1P%MG_RumRRrhS69p*e17Y>5.FX/T(.Io.KE_h!&2.TD=?/ %5Q6ZoH];n!VniO85H$18N\V##pM19WkC3>H4Uis1kKPJY55Y4fD`*hb/G.oEUgBfOJ[[=dS+uR_FSWTKNTJ^Oi+DfUl>c.L:\)M2 %7i8J'k=qq/%\Y0)?%im_J=`l[A.G9W_1^[AE^D8ab9,nU6/Piag34]O1CTB3*mn$+,peR(f'oo@9VsFI;^PG7f9EM(IpQ(IP4tC? %aTBM1Ye\XL`i'n.E"!JPFW'h21_0n0lgRi$,>E9!m\]Z:_;SD64q.;-?Ln)3Hmo)f;DNt0Y6lVKUV>-B"EOn'\eat#IV9c)ocM@f0l5J%(t[e,=COOe9:=lK9@r+*9#ps0riOHkj%$h %i^Va]Y%,t@&F^kg6n&f"&5h.N2+E>+gE;naE2p:m^!6]VZ*_pA%#[sr#&.QP[Bq[@p=CErS>3*9B5&SArTV>o6.tJ.`Po!L9,mQP %6D8-++Y(Jbd)AY9]a+P#8DceRNGA/9fS]K;;^^k`B9tOAfk6X0lA=Yen[YqVpGtif[Brg(MZQt%N5uWShh\L6GE)qJF]Ze%34FP, %CQ\@+@AE65!LIoTVFhj)Vop!6rop`.TmrXa34XBBLT#YQC]*5db^usb(TYGZZGp!R4-hg?/$H^>\%9hsm^@=SHQC'#WN=LsEhe!I %,o!"<>1.)**e]H4s1=c5)..!jVu'UKA$c`s/udnt`n8,Na;A?;%r[^Z>$]-=c-0d!/->&9q9tRT@X_p&RJDk\G_M+(7ejBqJf80Y %*B[PVe9-R*VOM_R%PgLkk(@-j7d0%QirdrXY7sq_U-OXi`n6i(:#UgI+_&Ceh^Q1*I\<[+NrVZbUFIeP;"ir%A+RC'qqe=BF_'VQ %).Vh1d49CJTO`s^i<#,^.P=Q'77@ElBIAFhrKYGh %aVKR>\r(Gi)+`<;h`Ea+GGS)7AJMeD%$k\_c*<^\OV`0r;"DQmfG2uM^DK-8]BN_/b52L5U>c8$;nNG\.$:34"=6uGPb?2,-d6:)B"@i %'%O+QY$os-B:m6OQ&iD]5Z9f%b)D4GgU@2%A+:>pea?`h/ %gqB@*3N2YNdXo2)%PQgR-S'tkEO2o4ZGf,87$B'GDS4T35MqQfu=6Fhq?J=R'm&+.s?_KM_,Yr>Vu^WZ/tKL/hJ084:RlH^gCN]OiAMTK[&Tma)s7r&tu %(,[[s<=BNs0!f]$1B\,b5VsCP6GduB^gU1P<)$3\!.\3Oehgl]R@[:NVf9cOEua%0`K,aCn>jKhWr=a\f>OWJL)6Fl&=+i]%/=4( %W=!Fl*#p`"CjY2EUY0C`Z##f`XR",qfW;p/r_8b9]jrsVZ0gZi&et7Vt%Z,u*Nf$e>OLPbh %@b^@Sg[G@tTsKS>';Y@)DUK'%^0(W;hGdU<9nOP2j)Y0URgS+[UMq)4 %^nE"9lX4,6qZ*4jk(AqGe#5>&k!I/%F.HRbDf\9+G#=-kdb9HHJ8Q*,;p5JgpUCh_rA?()S17&B2/*k0[0g(*m&!_6l!,C5E#!3mD[gZ\_<"$Os4nkHIjKHKVA %bINZG2p3Y=itj%*U5g&^5+i'k4t'FDlO'M^f`19>*f5Bj1AlEY4@uZIfBq[`:poe=d(W@]qG+ul)thH"Kg08,lef9l2YkPV&J8W- %p>.-b@`.C<5TnI=,2dkL@GW"KJ]`?IG4YGpl/IchDLQ"_?dU`_F9j9bTH3EOdSGQO@&d0KhMGR*9?L-5$[.][f';T"nb;3&j;J^i85[>7ch:ua6[4%)nkiWl*d:":d"2FNCJ:\YT`nOAn<&^-"e.&i,L$UrV!u7>r(=UuJ=tYFGQ'ns@q!7,D-_$snXQdMI$l:M5`fS'KlW:MNCc%MH4K/iFF\l;RcAPS^h7^=fo18LS>b&+JIYXNTnA3tQ0?"&p@sLTCl(*`V0NlHU8;$e4sclX#Zj.nH;rark\/'sbWc7!9:\4nJSm=rdprB/C#@1q$(j_e\p&_&o*P[$:?X&Q %ahMef"H3-e/sBB_aAY47"@j?:ES4mPB=8Dr?7?2[?p]pHS0Y[DAJk;0P0K?]:1CVP_`=JSL5]Id8BF`p.070>BE,o4_Cr*>4io9V?_Onm1s2$I]8n/_P$'C\D %h\pW^0f1Lo53dXYEtcZtitm7c2VV/DC#V6I,'d,*@PG7.?/],`5--&iLDhRG1%g.mRJ!E5lS"$.%5dSbF#Kp]>OjsX$4Khr58rpAqP'P;%\5n:^0?PT*EZ)Fok*\*W4EOE?Q?SCjD;DC"?u\GuEJt0JSKVHZg:XO+,++:FcdC8S;+9"HR8e-?E;n>RN6B); %kf-W83m>KH!6?BS5#B,7^>O#8]k\"8QDJGWp4FMh"Z_0*TKJbGO'fG[hHl.:p.`UF9Si6@K3-nBIqg\b(Ok/s!c1cPRHJ_Wf^l[]%UTKrof:6g&;-hD\BU/rq?/snB?UmG2'*"LV3uhk*eRW+Yp1oWK)ot@> %MAE">.Cc!"-<&RWW5;$E;18UK3)#-hHbS+j$>^?okm^nVCuI@gJLa]&`>+RT:6"m-3WpEC.']^I7;s72G8[+\/N8%Yg9d;sV&30+G&;!`d/!mHdOW\rP2*Z2%.6Y303OO'33JUqoL6?bA,KqJba"[;q+"olI.We*nS`>RM4ZoNpee^$!1k7lk:ntZVO>J$1pGejW8l6p %f$_dsZr.YMQQNKWreME+[upbdB"'8q:j="k]HB&U)oIHFY$aGkk1:<)[fbTS4Q@4(I1cV_>9N;c3M4K>VRo`aanVD,RB1 %)])1?*N!5A#U*[[:+Bb'$H3i"\sonJ8hk0,`>J9RpLt*"##)t-MD8Ri);Nk3!\W`1Js,.4`r;ZE?p4VI4W"ui.D9id4BnH42tloA %n#GW*Da?glD\T^UD_/*J`kLDE@&/qM)k_`tBr(T6@X`@\*$8l/%o*+>^RkMuEO#(L0E1XcIAaOBg`H>ff=aBAIA8]Mf^-DkCq3NX %O!0t-\P"C#,V2[m&o'r*"'TXb^o48AN_0b!SeK>N0KCiA,i6q!rrQ4W0FMn@PS+'Z/)7N!kh/JIQrc$HHF5H9$LPb^_K7>2j0j]* %,%i=iET\T1U90/+cOB`VB*Q+5MC;,L=`'+BRlg'f_=A/dEG'ush6W,R%(LhE0N3-Tn-lX">3!sJ=tT!!/QV#%Uair %@>T`:iXloW3Oa*0%[J+PRb6#Qq'Mq]E+#)P3`g!nW$b7jh4ul('c'abrqJJ+098$^LE7iC_Rq)?i0Ae\/KDFG)Y";Zbn^Xd]V'#, %UV#2g[X3:-b"90K,F4HD4Gp==?$.0r^a>c8(tldDr7BR>8%-cUKe4W/SB;VN[1T#7*2+FI'&tLN8?i)rltnCB(>80W)n7);^.!4< %$7VsAin=6-6t&69r%TBj'*U3.QHpDZEoM8-`EEt_XOgh!l:QKqdI?l %J4;]0# %B,F9("2Oe"6:j;)`HtQSo^npDJG7UB9ItJ%KWXK;0]>^A.0-h6[')g=B"ZXH4ef'5ZOa*LEV1h@Y5G'@4lih.=GKce+r>>[4GEul %[gi;s5#%dSP8D_X;ggN9.o.f,$h.gXOOt*5 %U[biT,k/.1H1q-CfA6D72ENX*@:8g+$-rlmaOW.Ca`&H$3eK %@)?rCnY$017Pi8mE2)R"Zd3G>]ZnUDm+]`"Vb;KkA(Kc<(A#K><"7<#@KAYa=,uHh%i`_6VSl@VMl3bLS22#'>cZ^^o+gfFV\Vll3%,hJIg\l#7.i+R7\N\%iildBh)9r*iO\hm,6RlR$3.uEZi4Q2OIrAp>?[o@LF7KC0N`7 %;*4:F$t9FoJ9S`7I2fTC4u$F4:Yo7D*OYq2C-pTK*k!.FKmU7qg.1NN$E1BN`I&"VDa!*6e)!*gG9-o,2BIXm>TYkl5#g2t&o>PL %&U$6S;6.ATIKV;%eD?\s %J)HNB[93L-;Tdn*DJ+8TLV]eP3@'=8($]9s<@TH\UkUn0C\S]o(2l,%ruN8E*u^Q16LP"[d]Fe\*u[.0V1sK52o@U5#HRmE_Phhn %>j>tLo=HsW;"D5=$dsN7O6)ATAcYef[NI48PlNk`Pb&%]1+&NuLt4Q3JD.E;7n! %iGVQ>ZW$6j$VX3u_j1@(BtFLE9Fui-A^o)NH$*(hF=)^eG@re'\GZ\KX+Rl';;?oX=u[Jkq?$5u*qu(BhQG532]s\G^bReNRZq^@ %3Qhj`n2jf(H)jdYK[,T'gma^=C'PAid]U*cJ>kcW9UfrLR,\Bl7;Unn/P'/-/3PEg`pcMt/VgOY/u36SPZI!EqGSu!T4P5%8.4Ck %Of//AMf^['KK^&X#*2hOj9!OU5$hZW#fQ3=fZO]0/*%4N#*8:H`J-?KK?)@%MW2FP0S;kY0C;GHAcNmT\*Qd0QpI&RAsh+f.Pn`/ %dXBWMR(^S(/l4?Va&@dJnAX'DMbS4+UnO1WDl'VU4HP1J/*&C`iDSap?+:&n#Ald;*Y09#`I&Nga['"2gqB@*3DfT8k)[od"^Ob2 %Zg9*4Oi(+8]sZpO$YHsq8s)KV1f2;/2m9I*"_.60lm7G`PKO0g14(P%UlcWNX./Y9?&0N*8MSV^k(UoTq(l?% %\itQG1[X0=JGmOHieIE)LaH#%=SnrZ4PJ6?APShj0$Sp!]I#IlUG3:akppVET@:'q#0kP]MP-1V%VfZ%%*\?n2?%G#$k8s@8b">W$,[1n;:C\71FJYD^&qZ&)[Xl\aoKHNpNFmVb.?n-9Jkr,6-[tlUsQ4 %r6ls792fs(R/p$m9VrAPau^F\9a*=nU@LpK9$G\bL1Sanh?48]`8E!V*8YX-5$al7Z0B/ab+V"X1rW`,X:JA-Tg-M"H3rPB%=PXO %?5\QrWhT6%"U?$#s4:WXZ+88OL$9r`^`$IdFP9k[cHl#UopG&g#3tCopmnQggB=t)_^mlI4=[%iQd_f0"Lu\,X\N4W'F<*"E*EdVOBcA@S"(=Rkb\Wl#tVO. %VrTD(n5&#+r,Wia_7Mk!Zd'[oqR_PXPt7h]m4n_;PTjW);Mg94BXk.JAtAGBP)#2\a3\QXTjLUR[\qd&3^IhrVLDPjk1PKe#d\JN,?=V;hlT`W`Tq(1?qS\CDC/?A$L]1a%n0Aa:Z@h$@b"h6Qu`9AMs`*9&s+TXe'E(POF\rN*j,'QrmIl+229-2ZN=)#X,s\`n;/h<45k"S8GP*Br %]e:F#I+7sE!S>9Dg_$elIgGlpN.f%]NB;`hV7c+_n'_WHoarM0^d)3R@ZG@jV:\UK0q52@I7>JF:<0*V&)M3(nG;@.`>0WE+&+Pn %KF@-54,4-@U=&O4p-,P8=t^\U&^[S'Ir/=lr5[cIcu>Lk7GZ(\MilR<1JHh['d[5`*6)sZ\%3#.\BiI %lVkWI(rLpRAb_XJ/dd;eb:t[UXFa%Q?2d`592cBAS9^^#H %]Ph-)L9dD9G&Y^%e5?'pD3DM*9)0XjSC@Rro!Cg28LO50C7W/:rD4!!k/99Y=8GG62'!D#]EXE/FT:ht0WIWc&:CUiS.B*74klU` %5P_3t9Ym7%g^GKtfDQrXRf:ERo,o'LlOKYen@-jC-fHBWD*7(^RFn.d6*hQ9J*f$hC+pIk'`d%FDnlW3SEiMu<(l1raA'o=L0[2.C*sRPq3sj$;@Cuo%(sjWC.`NW&D0-dEJLQ;k"bW^r?k`h&8-g'i %ML_(<]U`Bm/lUJ="VbNj"LTiK7Gc@,:pWk[P_X9>2KB#%Dmbj(VgaH`B'N1o]Rd#1 %--YrM+?#=iQP".p/G2kg+al %PqD*YpW@kI]$cKu350@)033g'3ESI;*Ke(2RX([BYjtsq5Kd]GB&?Y;;/d^an&Non*?C;IE$elZa+P48TMi[sb(TPR(Oo&O$^G+$ %-+^TYL0^(AK!XNM2^Z,oL2n%a?.Rn2GYEV7CH,7[&70!d=d8-%F6YZSH;AY1dBeN5P,UdGg22[!372VBWCoP"[+eRFcfUQl,tQ17 %Q<2\!BdYrf8?*%mU.Y_T$KX+U0g;JG:o+mfPl=pqp,t_04#ObOP1HG?:gB\,>:<:N;8imBL,li;/&$4_lLNF@MC^%G`DsE7-*C'L %Ti,5GXr,<)Y*daY.T[U:8$km:Tt*Kf?X/=9,]SP#$;#Z>ksCY8F>9cR;KO(]0,.]j6kfmQKs"\nJ=n,m8=Bol>0s[!&\^1CI](3; %anO@3^X.'GW@g#5-r^e2WaUqUVMd-24T7`($r%P$%-'*j+fR"L?Uup\bnmsmnAV2X;u,E\dBb+9d!R"Y0J:6Z4dh#$$V?)HksC7W %[Wo6q'Nmt=#u)0u3Q2S8+dFS@hnbF(<:a't6.[k\>b2F8Fq`IoVN<&=ROKNXKk:[G.S`etbgHA_nY9f^,X$lo$;$:u)5`MV(7HZt %4bdPU>um>%;T"nrnVsU'(8]'u9HiXT0#JBdgd4qnUrUh]TunjfR+-((ZB.HfROf^e`=Zp[C0(fdkf=R?KrVMQDt:lJe&=PC7Bagp %;-r.T]d?*9]8agi))D!H)P>&T(giq?%?%qgQp9W-?0E#GitNufn@"RN6,341]!u`IqMo`A(?X %6d-n70H^'*)UI!::*K[);p=Xn0MYeC]KlU]QpP)_/BhVB[;!J-WIr"t3UdlYQY %jBHsLeuW#12O5Uahlt=$2.;.,/ho2+f]REF$[dhbZ,D_BBn4//gYT#H32"+8NGr8G\ojtL-LB(X.j?[15(P.@,fEjL%IVZ%8< %r\K\=j"8a=*klSl&m=sI'>)9Tck?gd:2I?Lhs_.FP0VlR_tQ2'1B5.DOT!+S4Q14iO_2AWOYlC;Y(Y"`E$ihYY<,&A:E3!5hsF<" %qn5bdao4H4d`cnrQM0`j]9`.Vluk#KHedjlk$Rq@3BR!tEcIWJ$+OO:kFCA*H"uoj%saQ>dCZ6]2Egf(<,aE\]M+[H2/j(ik]RQn %Z:Qn1jn:ZjDKio[9VQmeqm;*AZZ^j4559l7fCsKl9\[Cm8(Ji!a-,1%js"U>nCBn2gl0=YDUDLU>/%F/3,[!2q6@he:6e2b1 %$_B];+_c]5=6/]RpuW3Er(>7pJAPc_)N6[*J.:F;%R3J*rO;WB"U %C:J$(NhM@V4,<5JKeDd;8_GgT6]uNSAgm:$,Ghg&BKc*T?LP*IK*7CR!A5F*)LpftgbTL,u-sR"EK[3FrG& %ZtnZ_Z=CO^pF0[/hE4f:g*W*G*+,@s2c'1>cgJ?@l_B[bH;<212,dCE\Y5ps4_9D?O\3n/4X6LsE,NgLpf^e*4D0H;+@4WO:sZ\G %4%OC8kT5n_*P.#t.lb"j_X!uNj[hOU#77u=K-]]9m\-5Z6[+W&mEck1WSlPQHL$IW79M]e_JPXPD3A)?[p%4'6/"5$.cp4)N-=3h %rD627R_j4d[pbZC);Q.u:o]]K"t^*jNU^$trGdp/^qcXVm:0/Nb,P/))cDEEl1g[I.AU4e535_NI;b?3%,28ps"V.2gm8?7qcSBdPZuX9);qX'%I:-l< %[CY2)mjlge.9VuQq:;uHo-;hp8fpm`."/nh=4p*FD3R5WZq\[[n+)q7=-mdfat>.C)T/b[m?-t/#cXge;LZ"sfklca]"do=%G@dF %;XQj+m:7bd",50kWTgS4l%[RXt;nW2d+T/i!fmrfjbs+(h,qhZ8;_V]G\c$liH %+nH578[I=?:<7gt6YY\p>tVH\m8V1+"1Ri3s-@//Xl&ML>2S^i/oB\:Ft`6@h!&5/htbF=*q;Z7lCZ5c&RT(Lr]%5SXVF$C5Frj/ %FA:PPfn@W8kbpXu:A3c8W*LD$``&U7%@>3'nKJ@ba(+%)/pBim&)-TR\-ndfL^M1$H;[HHkinKu]Eq8C$2d@ML(@*1YXZL#EGfIN %]g4*)s15]FYhTpX> %FD6H3jbi.;4oDQi+dk8G=%M`hbnURcXIs*2*8h9NsZ?ROi %R[m6UcK4RAfK(LK7k+6L>L9393P&Wig@5@!m+5n@cqW!Qed@\JisTgCdtTt+n@d[p[WRfW(:rSIIX$"B#RCgp";HFn*D(j=pLoX@ %I?5TFZM/&B=3KWT@3p$@>9`]+nf4!U*,*\6,+8S5N]G;i0[RHO*N3!]K %]^\g[ac%s'&MP,Eg+_\K>FmtjLqf1Yid/G^c/)p!`cgMlFMdp0;R=Y-b=sP$2'%;;]D0XX@s$oo69b!6:_58(*\Hp=n5bLNWBk@t %\[d]#Co$#H(A'DaURqpDi?]IsV8t;.IX'gh:G%`a0T:Wtf"@4me>Lkl)5hh?;9AmWU<=Hj6T0tD4AR&'X*J7PreM!_G&'#4;Jlug %Sah.Qoeg36:eD%Fn.IMS[XQQ:g7M!m1%Q1jhX*&=I\4qodq>lSJA:J1aSl:fdHl)RNb5uZH]\2Ds3[olHP!L?lU.-2/hcd/qjnmD %5C9jeC%f/e8K4u4]Lhu'GP[NfGC=)#%f3%P]*Xn`.sDG`DF]H8&R# %Q7p&6k4%4Eo/qg&i0%0eiM"!T4GWZ-fCKtgb20$RS=N-f*umr>?E\ZVV@b6l^7ArTO@OtORrKNCG.0:N6on'j.j;+K<74,TO^@ZD %Xl*C)/gOpt8as_dNaj,m>et?0Ri`<#.!.m)&U^s.7\qd^^<@WGP\&&ad`^K['jU(d8g]Z%YKif](c$qiFN>`Ua7JO%+s[akZ-X;P %#D])fiV*.2-4MC.7_1PO!SqM#Cap%Q8!5\spQ7dDpQ$ho6ZbC(HC;%dPC_qk,0<7F:m%JeUcdD(RS:Z74r3rNR7Js%'+55j %6om@S'>Xba;R>]%+]D4j5:7,\o8IM?m5l?5)$PU1tc`%+EWVQ,kX0mAWL. %=m;`6F7UO,f:e2);i(o'UsLDNZt0:V3iJqh)1&6Z&fH#Z\Up"Y'gdA8V,cak# %GZY:-C(=t1cNVn?>df+9\Y\[p`2_!`Dppbk10$^>HT;$k["QJ_Y2pVR27f*j=<@Sn<#l$SPW!S5gD:hHC,;21;E3r/+@IXrZeEPJ %N'bEn/(`b!k9Xq+\Xp-Sj#&p2ai""cOUJUidl2:Z$iDL)BaUR@n&SQ,\;1kAo\M,UpL\HmqmBrSi(L'FZ"2Slj'CH_=IX[./oJ.Y %FH*nKiZ^j#3,0*CZ1`'jL?&!<%=/Bu3f5;9C(FBU[#*P/X\mrn*AQEi*ANMOH+)jP>b'\f41OZ*[t.1V\9onq5G]s`EP2_$k%u"jFW*+4Ljpt:qojO4reUk' %q[\&[fh]9%"9,_NC%cm:$(6;$9:GfcDaNS.plf=)gS6V&h*-PZ5O^-up>>TpXm*G\9C'-Z^82:Nh;4uVNk>85r%h]J8>No>Mu?S2 %7-m!,,kg>\859*"k?`oDf+VstZGAsC/*0=[jkb#2f'kGoQjdi,BZ80go?ALiP&H.;Ym80id9iRapkE:pVNik8bKmWoEoCm>Hi.K@s+Tc`6K&Jn=a<;bkATETgr'"=o;TU*1)HtRN/d*QW0EHUC/0ZsAW8kZ!VOpF(i\C1PWkf3K %6j,YWajK^15a,T)?2.NidtkA3-9iaanNK6O>M^ftQsWJ*dF3*N=A3gVQd4gB_'>,!Gka%3AkTTXO0j.!Q$!U/7!*/!C0g[7`LiVG %meTWIB9$!iojf/%,U?TMo(!\55#CB?E&UAT8[SMCrXdass!Me8Qk.kUAn6:ImC)"*d.4Y!'OGjM2El6rA?'4(R9+Sic!o %7+"q_$q/KaLC?SEass-Qe8Qa3Ph0^=29A2iU?L8tY!Wn-qN$1THMW_S-`!]8M.c]YYscpVTikjJj`(DpoX_H^QNn!7+cXs)`'hR$4b;n4c@>m1a/-"f<65U&;@JeQWC5;O!n>QiV\NGg4\#iR#4>d8.siI9'&Y\M-`2W!S4k)ll0&5SiYfW^Q`?_9IhA'2ZXZ98 %\!9!T=Dl7ATH6hY*Q?/Q;k$6b$"._aJ1sbp#:uP5Sh[kaM(kjmbQ&amFI@Xr)+,,k@DF1G0m3hY,o>TR?#(r-8u0MWmH4K3$V]Ue %F8R@P'BYK5HMQnFKb<@T,ZNJ=6T;.Z=ib[=!G)d>h/CYg<$&s0^%cQ %0F+kA8UE?(gk0OKHpIMV(pW;6Q4"JFbhAh0Ke_9p7SJ8T)nc9K/n,hU3fQs7C:!W"h`5)<):R\9$t4mFp<)@CU$fq)4'\4o-ecqO %b[[KXM-7mQ=Kt!^m!!dk[/\(J2#H+#V:k>2/Pl(YHC&6Yf>"]E^Y?Z5dBhTJ[#]7:Q^N?iB;Y6mNsXRAVh+t&R0faHdGfECW+U_S %OC[W1';W+,BlL&>i1trt-Lr"Nq[/UF]d3"?$=,jOmo/")$D]#W_moO+``[2XL/lZZ8e?o["ALnM>-(sb(8f.S[!BF!s,Dgt\)8rfiAXqj+ %b.IL[aVG$:q'b1?i@/SFhQ4W>IK`''?W!<2;7:jGkW%d>0LhNS$/2*Dr[W_XM/8772a9="]\A %qDff.'b[6B&N17H&u'RhHl4.-uIQhL,s4.,_9luk,N>M\[Wk26%$3USt5 %`"s"2R2;:$5+'0qRAGi/9M/+,'tRq)*aRa*`J=7L5K2AcINBMg\4h?;c-IaP>Xjkj?At/1a1u1uk>t.[T:OQP_RWh3B<9Q[?45#\PQi@jSdKk8-../SKK:*5Qd3kPMkfUEtaMeJ<-[ik9^5k?-1+Vi1u^Q:MVpO-fQ[?d)*!5 %e^n0e_OQE'4?lLGq6GtidM*s]O)ki>P_M$BE4]cT;#J'^-MUgfK&Tn=-F@c^/8jhE%4XZul+N]J=4(qO.\NNnu$Q_Nm#CY<:>J,&/O4q"FEdlZUs,[3U=$K6X*[MQj7l5H@ %./jgla$1"1a4kb?_Z.CWi.:^$fmiu9%7Ys/.O %PT7H%+6&:VSjqfhXXc3tc'$0ppoMoH.l#u&BK[@eBk(TJ[:+9==h;.B)*S)Wl9/iTH.n-=;Ap3"?9(CI2-G\H>m355R,%>DJt=Nd %J0kG%'%*1o+(@.iZ41&4hG?8:44W)YUPNYQ/cs'RPd:W<6GqiI&:eR.P9j\qGRi7RB9RTdST(E,ld^+ %6OE/mDdp%EZNI5nWkf)#KH122A0?V&^eT'oZb1"mZ%L(F@ERB(fth).9;^Tl'm@A>`JW9lBQh0RW>%u]Y_+F+fO7[qM

=Ob)qq %SqWebEsZb%f'ECO)B:AaWX+jJJb=?OFo#4h!f-0.;B.!Eq"s`#$BsA1>^9(!&I1%b11]Tj99E@VJXn<"^T7YH+$T@ %+YUK7*.>[3RI](k`L4RNQp.A/UclB-)@_M]'.!LlK$Y7/@2;rMM!#%GqjKc)3p>`'Hh5X3(e*2k#iBGr1"5Ca\PjiZHg3jOBQT.2GV@WqP'[`CNf^0Z>> %_@A8<^(jV".<`f%.fHk=Up*;m@e^)mAr#h,\JDFPhC_<\>6?rt(N.W%HQdRR%W>]M@:Y.0bKUum7s7^?'g#*(30P?mcH$/6&T$Yd %$dB/=_[F?qM!M8IAsb1T0+lUu;"6.IhWI`%TZ[[(9PV'O4&em,7bVMI&N$L-0rC6+i_XXt!8X)"df\<:KgF[mIbeB#QdU-8_#p4;Y.6HiPq %)]#DTB&coEo^k;kZ;1puF3$otkr1(\;#DD%Z[Qr(s %dgb;H6-:k''cO7%ZE0ZQ]3/@h7PX1:A.V4^-cVlPN,A#a2]P"QPQhcc]/=.q!%dj;BFK>ifrP@bffYOq]=J1t^fYok%N&-nX?]qKn]V?@!S`<'t3h_*^d7TdlKHfl6Ta<9@0gA904`c`:O'uc&^[@tp5IHcn34IP$VE)ZPLBb/&5G0XntDkFl2 %"28aM4K5sfZOmVLU))dE&,CuKW,j%Ip]k,Ylp'taA3]T0:\]:NUm^]F-I%"K5=,/W4A%Eem8M+*"0^/>GPdY;^Y?(WfY?fXRf.-m %dbb"1s3a)g]cO&!X*]9=r)5g7cO,.oSihds"Y+W91se]>Zc[,#8.Q$f0[qp5cjL9B2"92t;X,$c2;=:dVp[7#Q;49]^8Iqe/AIdS %d_4^iC4EPcDK`n%1/dQi&b?Uo4*])=p5=Y[FM882.aTU??M%\KofbkA@amM?7uYt?ip\+9.odbs"JCUZ#?(7ZX5I0R:a#nAoSnL8 %%?*g;EdYWA"eSCPI\q[)uK4PPt)J#@=j/EEhf`&!L %>@B,iPbp<_Tu%3V`Yq$GD58X\D40B`#(1mk"hJq'Fm%`HY3Q_o9i&4VXQQI4Y*kdakBM0DkGJ.gkD%)mYY>uq9MV5I:DFH&[ff)@ %H%#>GKo]87rs635J!)Idko2[>T2NPQ6-6Us9g].[.QFto?AHcVS!eTJ!&=,-TPJkPi,&gCR'(dlT9B-!6NoD1B`CZud%l8WHY=&L %nV8031NSI;p."d]*mYph\C!IL#]i0:0R($hl?Q)G_?5%+rZl4kLQ+At4p&V/Z1$393Y;'rj^9q?*I9qb#9iQS7(HuMc`-j_UI3,N:;9#?U[h6WgXN6/o3LZA1u8Os;mgkVnG`7/uNp+WK);GgeqabuOa%D.)9ol]m1E;5'O:mVr>./e-bE*aS#S<&X:('UAn$W.CK^/1b;#$&P\h9Qm%)C6rg6Hp=@/\DL!Lb_fuKkLiO?g+f4(R#c_jGS,! %Pd"g/2.)0Jn1oC=[=Oc!6sHVS6Ad8$Gdb@$=bsL_P==+"*PiIg\T7Zi*19-8KY"C\CRHAp:H8;JNJHBGX#,Br.7?h-R6mU)'3#E^ %F>m-o4ZVI:W!tU_Lt_>R9HdS*bnQm1e4cRZ$<'W530bqQ]tRRI%5h(?g@-jk+^.0+'r!V9<2%GaY*d^X.C'N@SgFimrZ/fjWcl>] %JrY5P>,Y%$\sP.b[s@O>NN\]5C\3@M019*Eq*Ld4),q&dF?a.1BML)*+)8M$rS_>_6I^XV01:;gq*LD_^6mDh.UO0cdn97fRP.'Y %GT"4,oq:FTd3!,;:h:AK9PV'O?\jk@o7a+DO5LCG]4(b+8%qeO<2BbHP:p61VuH2pBT3!H]f9P--:#M>lCRTQCG]P&]?d8%n-a?= %@F9iIYd7e,Vl1Q4:t5u8[od(+k?$m,`bBQ@?3k%WNC-6\8:eTG+l*1:X/^5.82j5>q*)&,VRmYX:FirD4ORlT=G;@M#pNKhI60++qs#KmmCe)m1%CD^*sVhY.2Pisc+-K&ao0c$]F9_C_Tf("THHd!%$4g$fqMXbf0mgI"YHis;^Y[%RZ7 %K.mepVFDJ*);AK!DE)fE[VQtqFe[6ei,*Cm`e'Oi$gO:4.S0j_&"(Q-k7pU5J)n[Dci1QN;6Ebd9K"b[%Z;`_P$Yu %4jqU6N7mTH2ad'EXfK6#[&6e,ESpBMg4m!Y?[9_nP-,g/Egq?!>(-U'9.$qn[%<Y29Zm7`uIDKkY^s.2SljuZj@Hh[E-9)BJ!\WulBmW:#On,#d%,^ht0 %?%>WD'Y7hpkAtBZ4#Q!WLL?XZT(14_V:.:bj*Rre=urEB6]O#d:Rg;f=ZUCpVE@YDPDtc?F"_j3ZO3l.%>bcSi"8>9G*#$O?P7T\4")6e\3pT?n.*LW@D3q=`5cG-_^L3)Aae(d %Y4ZhI&CL`7i9Vp)`egW2of21k %aC1V&Z8,0%24U\!N3B#25Li':pPq9-R'oEQf[2tiM*a,qUQ.CV3N?h=ej4nW\OG$9CE94GAT!NGY(P5.V@$=mUS<#2!aWHM](8`V %:3P;$ej8ShWM"%(VHq6@B;VDUe5K9X6L(Q7Es:`a\DgR@CA8C05",XOuV %7A>Ib>pN<=h*mMG:@=kNjMYu6d5b;8).20-^IANdA=6:HkRqd*(-[-V(hbt)Ve[GCX>`Z(29B>P1rB^Jk\^E4rN2oYVcKg6`Y@+o %&T'C1=Uf*$_/dWlh5`0cqrfBdL]+JaiB&4Vn'ngGX;P>7/q5F-X;4"M)"T/2m-#RIXKZs=-9b\-p]W-)]GZA'GkcTWeo7So %1sm"+rP"`t?L'H,O__2I]fGMjc1bor,u!To'Ub%EC]ZG[uD67Q'.?bh4>7.R8a.s*@;Hr&l&7ZIE" %lZYe%W+eRDO.%C0WX(o@0Lp?9K`BHcGXVn;BgRK7Q_=_J0l!-g+f(tA65-)%e3"m(8BhgZX:W@H %L.a7TW!P=[La)?pW_g)RpTMqp/6!!WBn\/c$buU7?@V=4]V8HVA0H7h9bn(9[%M0$U\i0m8+U_W$6eA0EEn9bsb1 %ON"#I;p"%WFBg#A<+I-jaK(DV#T,F%L]gV>Ke=ld0ra,0A0Fi;9bnpC4G#+`mE5AXFp'e"olsVL[Z^=C>lJ %UMj8fY`s)Ae$7eD?#Q#eeoaPd_&#%0=RhD+m_ea31_qoMprh-Ue0srmW1ho)/-I,Wh+*RG>HnGiW_,pNTbS(o(K9)+*AnG%A:^Wa %iiQ+sJ4]?E*279rrDo#0$f47)=8W]L63P6np*-MN)mt?.(`QlVB$L#`$f/[e%sS`<0s\fdn*D,h11`/ZmfD9Y`ETnJ.=O)83?!H4 %AM2'UG7bV$iGO"I6c0p7AJPdsgl)9.i#TbEed)IeGk'UuK7O_6,N^es#`ZZBjk1KSO(ed^JiCWVhs@d[lSE=HRPdd&a;T!&9C7^M %$Gf1?r-Mm(d,l!ManJlVCH"S.WnaeSLqGkL1\V&j?i=>.le`7VF7L+W9'2CH+ArBF;LZk:?7bI$rVCUjuA\N,R/( %rLSJU5:&1W\rVU7Fs(>1hh@a!b_\I?n%+Wn^=SK(o:<%[=mpM\AA@#m2"TN5L$X#qPg+NP;gC-Je#bJ(h2\>F]\T`eI1CUp9D]WO %]9i=pI\u%b^*Cfr6RI9i>r);8e\_ARJWQK%nPa+qVl"t9Jj#)H2>s#oY^HYqkP#n^;u)e=`T\2s@InhaN-UlLHXl*Y %q*!4DT'#bgWd:8o9@titU)N*SjPGjm=E;d:'DLU)&.WgLi&ta%"Wu;/(-$u.hQ;J4HbMK-S>jM'?+L5+^YM/,9&D>Gs&D9SGkt3n^1W%WIjs'1.]<6tNpA6se*t'-pioKku %Xl6RC8DQe1IFN\@d+*Q?,a#YY?2^^k+lHp$MC9D98.eRl*\"+j)C^jg:=Vc/f-0Q(CEi;uM2j.m9k6a!9dIsI_:^].6a'pYWZ%Hd %OTj'_g-(LK_P3<$ePm3]kC4E;;`t^WIK?UBs6VqAFd(II@hk-Dlr9ZOVPfoVEL<;?7H?-cm>AtnHMUm_\QUW[>.Ch@&NOrp6C2dj %f/!n"e.n*5%s:>%cpO!8:@=k._*+h6O[Bp6F@d9k4lamX>nK)=;---q>r8P>j=YaS=8_4WETTViXrlJ0grCS$aD>5gJU\QhsOVrB'[('l;UU1!H7^,/(IB %/sFnEa:@&3Yf9m\.LIo&K&-@L@'nUH\3HX@oH*5235--2.UK9)6\So'NWW?5pIg9S/I;u%h;n5E_)6O %BMo:gcpJ.dG0b=lUSf*!KfA2++L3j]q*Fl@I=hI,*0;nSiDT2Z?!%BM0i89ZX\J0?&TUDa$p;.UDQ631BH-`S#.%P#r]#"F %Q6Yq+ct.Q?k]3"AC80q'7nj[)'M_Ke;fFZmr+OT#=$dBbd?TgF+c7m_*/L=>+U=`Ih'I]KEbbsB*U+eg#Ju^CE#GUDhaQjC+(GH=ed1q`F;5gdX-mggA8e_Nni9CrrJLJ)6niB1d-&_q'F:mS!'WS5Y %MFe8D,)S!"e3q^WLdr#1<3BNAHK7=*dQUr?[JE%\G]D(dF6fkQOQON%i[P81G877Cf?8\9YB082Lk8\:K0 %>SJINE;EFQ(kSPhEU`eX0h/a@]MIpuVL\l:d^B]mbWm#-n*Y^uk^dFd>+r\;.s1K9(l\R3*56$_YhspB8lr_:,s?W^oR^&%*kXGF %amIblh,0+c[7kBT:#H<9a"\?mAIOX0)ht7%#WYmrq>Zqr[M;Ao,PhT8&+d)f)ChqUq'^e&L'HC?n:Me+8fh#fh6jYKD#F$f'9SW[ %m[T^5RdB:(OVs0?/+OaDO`;SECOqYON2.1+bD%N8fG[*[k0%WBN$_Gad^[A<:/IQLP$aO;&B=7PN-XY[@')5ha7GfHPbsD)?`pZV %iN1O^OlftT:=6746i\:kij*6-Xc5!V,)HLI=Q)Us9ButI?VUR]K %1c88=9hfTjIZ[XND\-pOd^%uOD1,l,N-'lGHW8h%N%9B#HFfMkK= %h:kON^O'H>j`bVp-fm#:>Y=h*gIiEu]c0Y5I=&GjZ6jd61?5ck90OW)Z'Dd.AHs],MBS@Q8F%6MC"a+4.FE#a61hA&h!`Au*.6\q %Cq5Z=AnEUJEc-Vtf6I?)*kP]t;$9'XQ<-;l)W--*O*(StKh;5B-.3K#E)KP;Y2uLS4B9laZOiN8_t)ERgj2D\`!=UpO`/EMFUi_HnTMfW'jVmYWsKt:58A5_=X=1R&Prsi&Pm-$YP-ip7N_E6#aUIL8fGU` %oB/%0t#Y-rCa&c>&^%Yk(1(:E[6qem"_077![g\@hpJj0t2V8L;PmAT0Np)/:"I/r,sDZ,G/j#8u&TTM5#I!-Hb6K2eB0Ff4V9JK/Ot(5dONRWnFH&/")Dk %9A&`5T0UpC:=uVCZZ%I]f/Yp-E-[k;4CkX5>k8;&:ADh.I0uP3Rbr=q:>PO(r)IU).WgPng?>Hg3pliFD4YqMW]!XK5B'Q`>oZ!D %Gb*Ucc;`R8`__*H_I]A6;l/N,VPSbH^0F[sr*]4%#o_lgoPoFR27bqG2]_2EHAND.PsrY=9WR"efFN'ZBNi'n`=5 %91^C[@jmPk^du70Q9i5`0Qe;P,tmE>IqR6i2BQ-F]_1M[-k)=+FPYLQ3k0&HYWgE?iHmpb8HGBYM92I!>7`t%5s09rE4!QL=ndL>]'1B8-o)U.b/a9PZ9bUdk+Q,[HM?1M7U_g87,24/(-eFtX-YbA6Egt9hH]c+HCAd%/Y;73i\dMRVVJ>;1tjsO+-h!q16PZZ7;@ur;tl^?WpE-! %a\1+nX\]<1@X2)/#(\6ir/q`Td13WP'190PktWWM$&at)pj(:C6F&@))CHEg=WHfc*kf,$KfZV#EM:DKdc+ku+4"uY(QIG=fOA60 %9U"X!]FALKlY'ced[^XmbG=BMUi"[VS=E]R)4mU2BEsYF\]tE3CIg6'_+FuNU-)rMM_m5A6#:f1c4Hr!$hCmX/6t7LkVRRlk+HCS %/@Sn9N`9CSDdrP>RD"GWNRV.=j&&09DalD2O/MXmD",p7kl[_;M2^(PWu\S"jN:%(7a$B(GEG/7Bh^J_!WXge&=o2LCo;W:is^a* %UJq%`H":sNK?_W,c(DrN>!21(!>0%U<115Z&L1q^WIgmg7+&WRnUSu><#Q`A2c1RS&L5R/8`#\>H"?ncejs>`kF$a4Bf;(8KLYO^ %Pf/KA9PXEN7GoH),L:*tu_'L-ps^dE^bgkQm\n-LNUuVDJLT7@K7;">>k6^jC*Hk[>c1fIg+a+eBA'#t*F5mR3qN"?UD, %2'QP!]I`$V[$a`hU=a''`Y`eFQN'"PGn,&7XH=8i4O<$VPQrX&XFAfGoCk("TlC[K`t$t9DMCoXJK=[Sh;@Wahu0D%@(0j]cW*U" %BlnI`jX0k)mOOB7MUmZ0b8-c;bL;`!Id=T&1)3Q*uKc,N<6+2=LsTK9q72/_NEre3pS_B$cKNZ.t#(c!Z@\t7BEHM[W"lbCjWnN!\omTh^H6nc%4-/q/-R1 %Aj(K)[G(a#i7N:Dn$[0Xs#@PYBl4;nXr+).h%gLWGp>4]F'I:-`;#qm[r=bD1$btRh935g>.nTQk:"a%CKbKO7oH7k:? %,TC_F2V3X=L6MDVpKT\H.gC&`HS4(d_:kEiX]<]$$b1M(H/lGS8F0bs\dt:nJm.]KHLW(8c\9WR%o*eI[H>&>[$@mNX^)`$K4R$M %5HF+eJ]Op)X8JuVhb$`#OtH(s3cGtV3DL^YIip>"W+ilAckrR%1Y?Xd`IN&b^5 %o3`lFkso<>O0MUXAa8B'k!mKPND&!T97a2Th$Z'XVUs!6U]PJ]l6%SOReW&>Jfb^UnP[X?=GeWuadU=#@6'BTd6Gkh"YW(*RPdpn %XN`P,1Bl('g$c3]UfAJAI>B&2CXE4COMdf"'1#=8hj3bh#T_\'GZMjCntU&BaN.aUnZNEMjeg',s0`BOI[-gm:@]$/6`jbUs/1_h %:QmNZ)Gc^q%d97d2R;"nX.[P'.4l=`1J\jT%1QAMF0Rf&laR7NJ*X%N)Nu'u[N_&t %6%D]O)6#b2iLL;caC#Jr?\@K_<3"AdA_i&brU,!4pT@N8Y4a:&Pk17?`h"80.rr,Us&&DTM37[FiO.nl9 %W85s05:/=[e*@gX`EbE69fgC's)JKr]@D<0ZG8pt'cEh:>*E3b>3'6;'p5TY`L>s57+_WtfGR=$+t*'A)e+Yk?8GIjcO:NJ'GCjW %>mjg%`PIH?E(Pk?-[fF;:R$W9#;*&73Y`eB*TH"1!?&6kgmoi&IO.dbLFb9jgj]JXpZtETbUh8#nrdO`njj,M`=;'F-^V6Y&USOdI]m#V*ak1MlgjYt[3eOXr>jK=5[sAO%U':s?Mr;i2TZ6?Nl_#>Zk:YMD$7@bKt=AYr>=n? %^FIM,AjUDW+%;YRd\3r>UEsc=3miI^,X/[IqF06rQkqQ`/gYaT,Hl^jjh^SLa6d[#($#N:OQ6$lE43FiT&Y %Vqkg>#&X9P$][ghYkRcOmT,tZV2q&&Aa6_>tNY*)3\'B4cr0"7So31!$3O'?.n%MV!$R_5p:35/)'P20iR8@M6]X"g13b)ep;,"7B#O@_Cchg#N7f3a_'R>o]IQbf\B=n3Tt(=5&C=!3A7X2%Jfh1G-GgCP0X)eu0NJ\Z&"Uf[go %G^(CN$3Z]2-,hV`9[6CjA^DTY@O&iIjH5&'O^]1Pds"0:AT5&SP@>D$_(&>66[TK>8?i&%*WMNpq'Y^Y]G1;^6HG?1f(Mp5l2/+djl`QIgg<>AQ9 %9N7T=PnhIRgH^`5.uOL8V-(".Z=:,1(!@0doo0\:CG[]5'e='fBt]cHgR!+q`GUdSMETbu?I+L'p0'-&(-:\#Ff!&@[u&qMJI]38 %qb4rb6M%hCG:;cP>(cb#S!-\**N.0?en;U^`)S#N4<^8%)gdq\i@@iP?G)3dB#E0*+6A?$lqO %iYVH`rNkaeB)8.eT#<^W[H6'\N!V(\iC0Z;Js@q/YM.rT411_n;L9ne+=PjeT*s*>1l'h4Gs\h&Tq53`jTn8=SUm>G4"kej)4AAX,ZcI]^;l[b5IhJiZDqaaD]N8&cq;OF'F^FXPQ_-S$2iJ+cmYNH.0o(_N(e"Ts8TCRslj8a]hf]RWH[Gat %DL^=g[<(B681Fn+"SFhqbtmpZM8m*rl)urBEM1 %I_#@Fp&0@]n)&WoN-[YdS,UV0LG+]ql-#.^?[r%+It:FYqX\q"If.Y:mf!a0k=6H~> %AI9_PrivateDataEnd eina-1.7.10/doc/img/eina-list-reverse-foreach-safe.png0000664000175000017500000023542112175475327017371 00000000000000PNG  IHDRjtEXtSoftwareAdobe ImageReadyqe<:IDATxO\չ'"W k@L`Иdi2 l&X%،$Ɉ#d&1ES= 8j8Apo=Yޮ:sgWJڵk~Zk}˗Gl$jA` $jB` $jB` $jB` $jB` $jB` $jbD͹sdzݻY `$jB` $jB` $jB` $jB` n ƸpB[n}vȌַFz렷{Yz};N#Q uѩS6\ĉW-[x饗F{?}y-9rk'O}ᇣxMow}vֽQСCyZ}ǻR^I?&f>L?y'}$^* $Bni=X距v]O>m̱~|:7{>'ɶfm~߿x^,l%hr?Oc3f8, wJrLLC54e[Mc3oi@ż__>s52>ˣgW% JC8|?]^m4k?<6iov߱]vzKfMO-Idr 7YOd۷cRbq&'dVY9.~6\Ovɚy̶%[qmo:xmScO>N@3ː4Ҁ:`i |v7jQ5&+M|$ّ~{۞o~3qs'6MYw_l'4Ip}~o4ғʲَJ[,ȱRixDiWޛ[z$#ۜmk{峳d /KddKcl~NqwRf4fa2aNNrF`qiW% 4aO%~y*ޙVz'ǕXVCDRzOlg~ªM>dM{ {M>7J?9|ET=}IC;G͸2`35j#遑\5B7g%N!O {g|'NOJő^@3S[ Rې}!y恩9]sRo{[;ʹ+mxld|qemIFzm?.r PJŽK 22 m1ibDk]oT -^?n("Dip׭γIgj>wLx&^Tqs9Wooz3})soy=m4'mô3_o?f{ףg\/|qmߦ6Rqnf\'mfXȶ%>kmBMq4Ǹ߿8Τ >7s94kqAWqg;!5py]j٭^jQɃ$&]iɄ˥uvhVl[moD9Gek^yO^O:l4IVzOj_߱-9=׵Oռf፮}[%b2LML8i}|*XuV=Oroduewh~sj_n'|fmFlgqC桶O>MT26=j(WN5$jǠɄZUFm!mjKLd.v"Ty\lkmOEVI UhI'=_SW]ڼM^W0meylw͸.cPI3r|}U⥆ ն$2.QSD"5=qI5S%i-}d,tvrֺ ̤7x#'˼>|$/iLmwBȾI Ξ0JadH4zZ5m?ۑc0IJYO"q%6seazհJrKdF^ AFXLcq j퓮VS ,F$4KriHfL%i#soHݓmI&=$JzWdNIX>09|N .iqqN͢99ۗ 9}Ǥ^=쨹pjv+4ۑc! lC%n2WOzc5n\_q$uرV،$+6ևt ϩߺ>' _Jfd~6ilc~$߼67:sz_ Nۜcwqѥ7>d쟼~SOu4H\m>N஻:>o|Lpܹ~h޽7~Cl uWg~eS˾IW Jߘ47Kɰ!4k&s\o߆D \'9us D @H \&vu `$1DO!Q05!Q05!Q05!Q05!Q05!Q05!Q05!Q05!Q05!Q05!Q05!Q05!Q05!Q05!Q05!Q05!Q05!Q05!Q05q]ᥗ^]pa'NX_.9=}ԩSc߳wO<1ۯz̙37xc#ѣ,_۟u{7uf_F%C7su)gL[mg߿ۿ =mygjݖxMD5 q˵>.~+zD[o|K>jgIH&Ӯ+ɔ$ /'KE?PIP[k[Z֓||_|ql&*}n{U2%_g??Y6'MVY'IIpָ%iWB#I$ȲI^$iѮ/I$~a3wʤdOgqIlw'*Q3ͶTrرcW'+ɵ2y`yvJJInma7T=Rl>jOI2%rmͪи@ILC6 X^5ՐvPzdMzm2`3I"s3CG)4Y.lf')4iNϾ65P;| }%oMiQdHS{߼VD^Q;zCf_Nf51p+ɘ$N2Iy>I?Id,Vϝ}l^>I={(Xb5DnFЦ$0XHR?Ħz$aFMT KLd| ywHQOS1uO?TY9FM׬'ɭ]kbu!Ty}R+ X.(H$$Kg I[-yrmˢ%IDQ"نV$l,CXʰ&&N(F=*6듨*G҃mWq&aŸuk&8IoJZo*,3_թ~$ 3''ء1!>5J핃j$hS$ڬvVe7\KE4UDL5eL%+ۛV% OUI$!]&fqUIbp[izLH$p>~跨mv^K'I$f725dw'<l._< *?z UD{iu` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $jB` $j`:th_^sHna… ۲]Νb7޸> ՙ3g֏FK/ PޱX˱c6~{[3ەO9N뮻F~U{{V)R}'e۲ٞ}4ϻXJCo)Xx$A[);ݻmuɶ\jvۗP 5 Ri;?4G{V)8|GO}ٶNSޱ˯JҼ{'Nl[ϭg{Ux㌉${6|bH69}z?$Ta&عre&Yxɾ 'Ni}KNwlșǚ'V3$IR<Wu)MԩS,Y_-3ό^oٞ,/^uV)265'E*y.X3Ǐ֛3o ix}]uMt u?si{_ʞOLj/<_s7%.>-.|ʯ PޱS-Q=WWAX˱8I\~뗕tDѽϺ*9ܺ_W?_Ӹ3`0<`.cw)RV6q)seUPn5֝=aeþT0SM{&>>?䦲Z$n]edёe=jR,jUFdRIٔոl$˷o@vzr5q~*I}z&1d3uxqNh3f]IL&iJeZz~k־kS•d]Iv5*V޷sܾX+JR,}+mW2__sY.iuQ0iUXg"~"&jr>*|4@LgUr1ύ[7TjK$e_nuz=o8zkkѰJR丞+IrO4$f'*9SC)L}OGL[幔YObNyǪ[n9ِc͙ 9qR}^Ϝ6[O{bF^]vv޽% vhR'N5nJ~m߳余צ4znI$$+IV>;z$kvsYm5T(svTϾ-We*)PSiNawܺa'Il$vx5s;هzaWqqNT'!r~}5ʿjh0~Vϙ-;QʦSzn$|^*lm"FJ;y}]xqa?{n=$J$Մy>]+ӳ|(dse4+=l7gO /حz/=ށm/ϧzKU~Y4cJr4289V9JϗTtO$F_[ 7c%ι';Pڨ_|;!!_tikuIE&gJ"5L*5) 22}m]k]WzfJ*}'QLz:{﬽uٙ$j`&U`g9sQ4acIXi5VÞSsb˯lFu-yǾov'Q6_o/qk&ɖ Sp^ɭ& bg#V;)C۳əJL:{ WzՒJNdbw}]S8#烙4?LzdӬI$y>ye=g9j``[vZt&f<)Ps]H&vSYKumVlLz{cꐳ!kxvɄ/FoG&E洩$MKeWE$IPPefv.`0ru~%2 ƺ\VyD=*0pj%h13{gL_=R%n2ie3T1eXc[/8*Ϫ.NJhӏ.a K$L&MIreѣݥztiTew9w*OF`*-̏f}OZw*)3#ֺM֭8;dibfQß^}?)1 2ܩKĬ9%J%eV%o;LˠLʟ~_|;Q?!ͅ ^EI?kIO&]Md'|=OMoI+OeBq˗gZZ@_vYCXbE ;7ٝruWة겿[zXUu)E[%gOĖN/,i{dRzd>3NR)L:qbu+=嵚8 J&<3jokɛfYD |$apfΙP8=pLعiCgg9I <505!Q05!Q05!Q05!Q05!Q+ҥKv܀8k `Y]xN~W ku7`1uI;󣧟~ڎvI7|΀J#RCW_J|9sK$Q+VV#XW5|eS+'J|U%! %Q+"ڜm5`چF$,6ƒ 5 D ǏOlL&DCq~<9`ym`X$j`w׀'DYq'55tWw]/I={tS޽DM=.I}wߵk30'~|1E._< Ν;wy޽$ D>=zԎOU/qܹ޽{oe> D @H D @H D @H D @H D @H D @H v `{@|"5bvm'ڵNB05!Q;7ol7Ra]tNc7ca)H D @H D @l0d}ɿ3Y۷oG׬Oi޽DgΜc,7޵khϞ=b uEVD oD㟢oxFԲW\77ND<s(QWd0 ` $jB` $jB` $jB`I| X/btI;䫯>}z'.\b'Q$ҀLCX PXO?ttԩ_mg$>c;blOz=lw݀4&PXr-["@K/?zGfZ b:th՝[o?\ؾ2eϞ=tk?z;^x{Δ9rĎX'fWq6ƝcW MJ %Jz$no,L%VPs gTL' gݯbluF~Ebʥb,%\ʭZ֝ZںHbcv]1u_ޓ{__Za{_Ν;7϶~{Oڙ 3p şݙ_Ύ,T Z&pT#4m֙l*Uz̷8۪?3gؙ _j=*f?iW^yet}u$dGyO*hL%r۷-;|R%Rms=5YlYF`SiPib, $S##e\4Fߊ7#6W&|.:{Ҟ kNU W[gl7ͱ]F,d^PF H81jT1WC3IaY erq&clg>h *ԫauy~ jFɗןB;9$MV53&/v vSV˷q]Y>7|>jb&g!kΚblTT2ʲij8n2160pHZOg.Ǭu Jٕe&=p[M樁HE6)ps#߱c{QҼ{ut j|Gk9Ò7gbvi|5fo'$b~򓟬;N:gj۝٤'MT0uW2&6>|Uj̬<~b,YTnϹUl=pLjb3g}PLטQZR1r_m&>RUU^% .^dMU1Ǐw8G+b\65a5U!]{V"gR8eEZs׻Fu ]6fL'g=겉龟B6%9g)+cq~ǼmDjh8K w,Kf3u=zy\=瘏Xb& SnuYY3rTѬ^7l,qMb 1cÉhVK0ktrR!vXKr+^]EК0V2$3 >C׼O_p{N.WhodK0j./)Hs6$l])qyK佩:\t'9Zà9[ r }F[lmǬQi4.39_.ߠ*}{WeT7qx-8|Yc0e9;?cm$&C.rUrKqzp”])pLYY!Q+K+N]ʪ$s _vW' EsH3\5nU;y1[7߯Lz*֑µ-` I'l經D͸Mb)ض{iulR{\#>5ʡ~rYb/c5uEuդ:d%GY~521c P.s%o$g6ӵ&nU1X0wǸJSO=U 4iP'6:g1Z.^8ڵkWwC]uŝN ^ 43}vgɋoל1u?G?/WmJ/ۿLGdq6Sg13G@;ja2ajb?q\ewrYVW٨,G|Ւ9^}ծW[216kQWd3u)> T:bu;~AQ,۟fII>nrUw |;U6r愫,w?ƝUF+w푘Ӊ~ ʲ E7"]iccI$~F39STW?SWd_TW.=j`r>gSЦwƚpLa±MTAB6 K Z}O颚JTG}t}lkWaR_YٳKS@09۟vfD];g F]#gS#1ihcUYN\fIXg:i~e~gιe8T.UkƟ-7y<.6e@D1Z1OCnY|:^6٢8M]1;s{W%jЫ3)XS>qD\52Muv3k )kGۣ sod=iT]W9\BT[>:PYq;u61qJJUfg'3j}Q pSu7Ϻl{2 ּVB qVtaP4OI[$f6YOKLf}IՉ~&q2,eaP)똯WM]Q]q3uEà3>˰(kAFӟt9q_w,3~̮5F>e;FmUj/ߊ)c'q1m\ovVcBٞ={.?:lL|z[;vXck˯?qfꊹ_ZCs9kEY.߷An,uL՜qf4LMzR{z'ɗGM~@\.7N,^}o{iߛ]@M>MzR{z'ɗnSǏ&_9K9G͙3gMJ.Qo߾o2x[h5O;ͫ%Vܒ{ꩧ٩%ٿZnI|v+sm&O< C;thݕ"ϥSE-dNo߼*F~2x/b7f.˼K׼et=(&uʲ5I8qy3~zɗ&QsȑnFݠIϘqڻw;qۧ~^{́B8IRv1'OVWD]f`?c `']Ϟ=u٬wuWW<#cx4k,7X=)7v,[_=ɨke|pvgj;r#ެ73ό]o'/'|rlA~|O<ѽo({*39Vڮ9&Dѷz[5m7u~?&z衫>u?﫸꯷FC/%&{7׷ؼ˼qF7mLN~/K2)gꊫWWSWr˗gZZ\igcǎ}ݻw/wLbT 2 C]Ӎ`8zU,ߟH-U׳\3o JB]!B,*)Ds[/޾>hz zͩD2Ӽ?ߤ9.gcu,38սPЍ_Fqۏqe6&ooa>꯷.:۝krR/W16Ƣbl:r$4qv _Zͣs\QM[l&6%1_.[#gUW\ѺNuaB$M3$Ynkx_ZAlU>`%ωϸz_|:Ү=:l{vu(*Yǵh=cdrWgr>|xc 9nk:ڳ}u|ׄ,Wq[{q8,f[]xwh4|?$߳kS*0cܙׯE16mccy>5+scnWwHR7L]1+Bu*ڞ3_嘺"lsԬ4&,AVϦ>WqfOaYg8KSݣYn\Ar)0j\lǤ.[]5Ucuj4f32Ws9.'{wc*{m{&ۡ!XI;2Du!I16̫+c16mh*۞c&E:pI*5mb$iI-2zoIl}[T¼ΕSgr%w*5ZKO޴tЏ幊lClc,k^Nn73}D[c&[}A52r*H$N112/CYg&Ւ*z yw;e{?\F4u|*)\*ƕI,fUCs1oT,TŬ=+&]KNץ;s'3ة&mC{Ukc7'5|U kP5K%7J0w1߇ˠʤ:YPUݘGW'*ؖ{J-r,ۖ[nꊕ$M%'깍ꊉW8my=kmBR]$j9[&TRyM[ϥVJS@¸?3Y6I<)гzRyOA, :[RgPg!̸K|YZw]zv/ېn]gS;rZ6FZ j]? g;N8cqm+.uJ$u*<.;tmOO~UF}7%VK̩U%MEmDmw+uv3moq1я~<wqq01Ke6P|^w׶c'uO?&wVC1^2iD&&]bEݸ̫!Czފ۔l3Mm%v]Yw )ABc+m/^]1qTI$FmYO 8s.5 P ض+|zԙTS*s>.Aƶb6>Mލݯ _`egO=i5r7eSA{x[ƮF] ~,1V3i|\&^XTv1RWtn&&&{q;iq?b\L ]_5%gPk*Xai #n\ͻ̛mL3mm6v9Ҩ7*=`+&QSSgLҦ QW=n-AIٚ F*)H?㫞o+U[gL`Ra!5Bn5o2,cUh*y*Q:sPI-c#I1,/cUnԩ_uGSXxc%Is뭷viH3w=Lx$SI>_=o$MzԺK&O/H'EIH,zL.PWMnyN*u$Rv ߿URdۺY4_\_SRϻ S8}zs3dzHHi3I5UϚqel w{ケ4/:5s%+Wd$sr$itueqdxcq;w ۯiQs`!\ |gtM7~y؆Fw^8i'cǺK&$^63 fSuw;M ƹk`)G?=<lФylHB&=`2gL3=`Tqc->?;K}O>[o/˰+>o\H<8:~ҥK=lE]:I;7קfۧ?l5 `$j` I;xΜ93zGϟ3f QU~ߍ^}w~\tK}=<I0ѻ5Uz]Ћ`n Ez衇FǏ#ȸ4i曣ݻwg']q…=3>3>FqrY3`F*z &k<8я~4ڳgs>:rHwl3Qsܹs=r&DnIּkW/30 k+28/~!Igu^/\O,{l~v]v98fG WIG7X4I,$KrQ5pѓO>9[/r>7޸&ɑ:thlϗ^z{y>˷vYok?#{߿wޥ=vңFH2icǺG&J$el4It6YII~륒uVgܬ'ovgNg}>`$jVI:uKTd'NzDI^IZ&{ョ'J'/LےDK&­ywY$jVIډ|ɕ{.KYץKuizvΚJllϤytrߓ96U& No\?rIXL4[&r>h7o1Il|.zRz'e%YSI$/uqWq`$jVIzdIo*i{M.IT$$'GܱcǮJ$As$j9$}'I<:klM/_ik[ *i<2דG%jWԕ|wiqλʶfن!ya;~UÌKsy,УHi)I,ꄂM7aУvt}ŋ$OvI`05!Qu…ӧ/`K$jر9u\y[!Qs7 p'h|ᇣϏ>8z_O"}'[o{mϞ=DMT=#v(G \J-r-{キ{.yl^z.SH믿n QB9sNl]+!sqzļ 9mcȑ#{['?O?z<]& lD so>;&W2)M;NIr?H aNCSIo$j2)w}'q`5p/%\2)3)sҴ24* 77Mw~vURdzdHS15M{,4Y.ÞһS_柩|DMsַ\[aIO?E s$enXT5L4y=ݧN:th5lM/_iΝw^{4%2)u!RLJ^5ecܹs{4:F ˸MI s D @H D @H D @H D @H D @H D @H D @H D @H D @H D @Huy/gL760?,b0 F$˝MBEV- +qVAD^ ٴMGڴ7l$`c3Ø`ӁFsg~QUݺꞪ@qϩN:}} D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H 6ׯ.]4sNcǎ^yѾ}]6zr.^qsʕr:4zWnnܸ1Ϻ=- .teW|^?sLy/ȑ#cץӣǏ/{76i=[Uf}~_%)8oVϞ=w췭_KK~Kֹ=_~#Q(9uuНIh$On޼9zf*sp_ ܹs۷o?Wׁ}Ib!I>g]Iy-)gPF%KL }y˴lUR(IJjo9m%׮gZf[|n\^ksJ-EI$9瀻z$h%QOғi{Sgk9EP=y^xgM֭~$Q&#C>{V?-7 lq2m=Ǚٶ%AOwIYܯU>J̲MIrLdV^߾vS0G xꩧz>9PEm"m/$Kw˸Ϫ;D@^٪$[ pc%ɗ<[ QW-1Wқoav?H.A{+I8$Q3KVzX$!0}I\+@|%:%.RfnA~}ʞ">76m%UZ;)2l7GQ͛߷|;ջC`U ɩ es`]{L&g-[I5'Ckfν!85gQA;<-~/%U3m+Tfh,)omVF=ۧ/됛!P0,5gC6aQIw2uD3Cgsύݖ25pFz7lzgDɏZOYo!QPu0R#M0[ iCZ%#fWɊDgVlV,Y'N/uqC2)~k$j66'm~$`vI 9x7l]q?)frY%I%lvIXIz$9꥝kyzdZCkGoII촷 4ϤMLdPc3^%Qz5zBLES_C)zdHqGͥ33SNޖi@zn܋EK2&IvVOY-]UF\l9&g$қ!IId$NP8:RN 9OJB ,Az&)>qD|+9sjYq*S}5 "LY׳U ig~Mc; q+UKrdV_IwkXj@KvQ3m3l&@9hnwV{L AK"q?[.n2Dt)2R>&@CvWϸ2mϢ|~ekl:LyIB%aIuI[dM+~y.w}h\=KEYUZn^`\y0G @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H.t/|>}zt…ênߝ;wغvچ0TOkmO,2oVܮ_+:}`$j`*ޛ7o۷dm*[8qbW-|g}> U y晇￿=W^|f뻯־˗k)7V'w>m|~퓨]3Gy\xq}XxK#w#Y^{~fYr} ;vǟ?|?]+IМxߏ?x|n[{>%9ZHNx>7qXzps追. oСCC `,~w!O\S;v졳]yONZ~ֲko>ReM H<Ɋ~C{ʕiLvyʻ}7p,g+~:S~TuOq1IbW^閯+ѣ:B[>tm/C3UuPk~r%eն}Y1Z1XRnU}`֤bL3ݟȬIEǍMyǩsFm_DVʮʽV%ޞaoc]@?'/bWf3՘=wmcYLjZ9h-uN멼?qSuY.'ډQ3)͊þe*W OJ]Omk1Cj~#a_6{m,Sæ\{gt?la-2)|Ioxۧ^K}S5 Fi*~OSi1$3IcY_3k:́bO%l[/BWvdǕV*]V1;mKeqƆةi&f,W~\+匋ɼVWLړs~Ї$^*:.I31SOue`Qg%ir /r7Yc-HnϨTWElO9& d5-qiWj(lRURb(1N!X5G*qRЇ='Ȭz=@͉<_U[)9 {n79z7vsc4Im[+_پITr%Ik퍧$cS־&APxg-[lX\*k:Tڧ)zG LV1Y:Q3mE^ͦ{Uu~ٰ{⒄IlUr,NXsjMeS/&K];Uq]/{˗/?mE30j8I$x}{Cr'a+axmzyqmN`$j``j,l=儮T&nlX%i&Ql7?gZ@fIT_Uߥ/ sZzlɓ'G=l8p`Csyر־?sr~x$j`ll4u5) ϨݻwokƋTs<&9\ÖߢH԰Iݱ wƭ]S&Ou9vW5I̴f_\pi/ϝ_uI`XEjT$qK WXKքC^zS^,} qڶ7.SO'UV{,ڲ~%_7dm4:Z;.{IYɝMl67s\U~uᆝQC/uҚI,ڲkTWI,{'m|Tmc 1V=o~sC3=VW?>?.JܵU17-jXF]٩zMW$e3 lrwXeۄJ)I| i}pJFZS[OeOToI1.5X6Z<&Q{ܟ3)v`^=^*^;}K ]:dKokxj9N` q'X1ݳęXݻ6 D _|Qv|0| ;ecH7ް!`$j`\~}t-Ο?L:,1\d^50\5B$$DӸYX:x-,Vz]Wݥ%Q+=ht ;mj{gZ o"Q+ظu ;5bEH;^l{"Q+ m^ i[7n^j`qKc>(mX~@T'Ys)$uI\+0 D @H԰nݺe#ư$jXyݳm~cX 5!Q05!Q05M]|ytp97o{r]~}׷?c+nK{rÇ1v7{ԩSڊb mEVD ѣs26n;~E$U4n?1&Ę"~cCB` $jB` $jB`I|G _|Ew_`g|Wk׮>v;wcI,@@>իWG_; umb.;~ȑ]_~h߾}68}?aװO>'?z%~nrɓ'e뵟go~osu̙36g}6z*G}ԩS&%g%a7XKl&?C-%Ns@ϨN9]7ovǏy160.\Fb(qziZSKU\^K٩"}رc6\titv[1m_ޓ֭[{__]xц_b>1o4O8acTS)?Cw&2iyw#y- 0i-J8 4mLC6 J|_?dqr8qACIn3_}{]6 Qޓl4&[E DMb,uv%Ο?ocp]r@fH&8`xcqJ6k+f[1M{]R'qyNBkۍHi /g1'Yjd*:+YrUufζ|[ݕMf`bb`Lc51ׁfޓɁe@&.lK|U9%$E9IfV}U]6KcI אmEmŭcurz&Mgޤ_M&Śf*tc- jfځ],`gfP:1 $D&ɚ8k+&S˦N6z$j`@2͕+W#+L\6goܸuU3 ylFQΐܺ<ׯ_ʨ "[eX=C%16S kCקYb=<yvN_Q;=ztyُjߟC +ƪǫish+n[5$jJ0cny.m& wQM%l={vC;M禜U/]P#]%_j\*ݺLbܯn_eܼ5yO9%>XrK;.2Ν;7^YȚ:805>ju(Ɔc\AbkU7ڊ+ˤMzf5 ̚ 1ʏ?xKҌY>~,\ɺ_3' 7Oy.gMrqT|1mwr?>7J{jfS#K%fkN9O0եt0n+(U)o&/30/9LnW6J"a9|8U9IYc,^xᅇ /gC7 o~ݕnuY{EPc'1J]Xc_:K[YWW][1.=j`2b*4d4gWuF`Sg;_C8RYlIqYYf//of_-=k'cN>r?ϺpbV׫qЋHb'VL{L%1vd/~'ۚ\&Pg_O,ԙq1H=8ccm2N>6RblH %Rg+?֯gm+&1믿(QKmvQs#ٌTidc%I6~۠M7Uѿ5K0/cVw"iɰD<[?{5? UߊV?9Ϥ X,U~C7;Wܐ@[?A_{?V#>C1B1OD04F:i8(zM[Q[qֶ5 ̪_C3^Jꁓ"uΠo < !O=Tw1ܜhVu1F7wJ?vj_ɢf[/Oub1 _:ichsh<,~[d~_jaj|`Sq'VObLa}>﹵m?mE&ėy5yǝ LٟtmNDK2Fmjf\Lcx.vGg973WǬc;׿uw( :ݸ}^[ڊ\tbyH,t -vfHζey@H }ƍ,5 zM\oMLe}3uuifcY'OcQ;?P.7iv4Y|\ޚ|+sM)le71,Փ1 }qyQWRQs8&_%K9zh7Iݭh5J7)V|,Чs΍ۧ8&_)K% ݭ1Ʋx~Сnxw|=+Vjwcǎ5֭[6{޽k#21&/1,u&ٻd.]uz7]Z3ۿc01&9cb e>vq2#uܼysb9Z- 8&Ծ _"ݭΝ;Swk׮7n)`}JRIu—h[M)rKĉggΒ_-7Τ#l.s C;}ݕ"ϥSE-d^?&|Uv0'e~n\pCgG6n;Ť.]YVU2<ɗ/v=o/lWɗ&Qs̙nҴnPIg̸ \K?~,~egU=<X&}W\99&iI|'ًKeZ-.2[lV2m|>,ECɿaw6U3\=-Ǜt;`8vPb a5IS=qĆr=/,qKYzHc{D uݻ6 J6m+ӻx{rܻwotu; qΝ ̙3]Ub 1sNVD[Kf\|y/Jˎڷoȑ#gyf5lxw4rg{I-1|AVLi+M_]FX*}ƍf%8p@W;vl^glTdG[f>;ryO+g2ZYZ[p*ܔQ^𫯾:n_>W^S7=%q.3پmS~Yc"+Wl~8kܶq/1 /l(}~Wq/]orI3vKzV]V<(@c+o:g+1؝)/~ٻVLl%ƴW8k}UZkg#wsԩhA1{!k͖W>}n%ٳg74|"8wz׳\UTp}ӕ4ZyJ߅;X>/b5SWoRn<׿ɶmw[﷈ﱝ2*$ kZ=YnOZvz۷o_;_*qK|ʭω<޼*]r>}[׺+[֭ycm˵JZ̲Yyj??wؿc/#w3o$f&-[V[ngmʮxjqq3n}Uqm1R/qi/{|}֤v1um;ss}p\2-fsc[vRNk;ޭ/⊵ܯ2ۘVݮg͹,Yr9c_L( SOuYh3m:.99]glnZ۝yy]Pn A[f:SuV#Z[Ki{']g\wI/CcEi˭uϲUfmϮEe=&GG }b=C7{dټ?m-[V{0*nskǝ۪v}kwe<o{wr7~C1Z}?t1cl:/b탉_7|^k`+6scnWwH}_][qڊUߵ=gry1mE=Y9xLE7Y%eUU[.OuN̳ܸ(SapnIk w`f;ISԘFj엓b?tߪ,qvhVc}1~R 92PÍY:@tŗ<_`l7fsv"vmGjtr!/L|i+.o[qy/5,H*ݜ-a~e*6kκ\]\=?nȶte&k{0}u3Olo8͖!r@.n68ɶWۊ;ӒCB[%QcL`u1 o*ĚĉȺLn>s'Gh+NzR}Uʥ"[ouarQW[U2y8V=_mPlIgrxwtmLj,経q[YOUN5ׁcEyc2mGVL\O mEX^&:8nTzI|"7Cri+Ŕ3/ktUW+ۦCTc۬+`Y;b{JL9.&'ZMZύ;r9˵N|FgN]vPwBՄ C剱Y꼊q`%l&b'c\%ƴwi][",=j>ogW_~o'}ov_w g}[韺#?']9O?zY__|ɥ^uP\uVՕ+WsF$<7s9N>IJ*:뙳)+&^li,r%׼u~^Y46jR䔹݄. xILQQ$<]dH%޲|b,O?}`+ϧ̊eosGu-O\WBfUoy:jG\Y֡zg15Ub7[Zq  oя~?RXFYfKb'c&ƶSeVޟ:e&nRf^oT1׫^g-c,)m)sY"gi+fO)\b#imzz>Zb^gĉZ"H0P56L5WJB%?4bhκUeg?YR^ې2){Ye-7$RѥRlRxSV%uTdU^>#9֡j,_zͣV7ET)/߱mVz*W9vJL, Hb(xsi'?5Ӽߘ}UjaDKy{tgY{;ܤuh'N<@,E?wVuvWx%P.l::)Q"M-Ϋ2Wͩb[%*Q:|V".=>bIR3uZ{׳Dڊm}mUfVz YַKo)SVEPi~{$z=IE,:u^3SY֐Zf%>S,H]:[k|Ts|j-2 -ՎQN.uJ'y/w{FKIϸK.j`Guq^]#qSe,+fW7gmZ6rb̴1/*D?.Ж=R6a>cl⡖3?nuNd},l}~LMzﴸAcmHwc,1S+b5Vz84m2VL6ΪQjϼ'r2=y\ Lt+11egIˎ{bOwp *]!jfj'9xs5Q2ILm.ct]DFbꭚ'.۩bMV^k+¬$j* ig*)S[Wa;/ku폋v. gifԜLmg "&Sce5NΑH=6KVv* {B[vDt:1a*Lׯ|k5Sß2{="3];N{\$qծO;5఍O7gb`Լ2$lbj|cmTCM*IMKD[ J[qU=;IfI2%cflg*iCjŚ)'{kS*`Þj#w*G!)ϲl%SW{r4:4$6t |$>[鹙{?# ۊՃ&[{#RAoɓSߓJ4n]fk۸LzӰ஝ #Yc4WH}_⩽[deOzY"Jk$j {؜D 2:g svd3nl%e.WI4s\c.Sٗjb3m\|Fl 9pdb=cmż6O[1 Cf#Ql.0NF"M0 zJ7t +#=U`gmw(0;1ڊ{D v*#[eric<޽{c㴙ڊԩS )?7oE}w1f_a_o"d!Q05!Q05!Q;|7ol7Ra߿Fc7ca)H D @H;6+ݻ cm`GݸqFA$ @D @H D @H D @H D @H D @H D v]mwܻw+$j{F~f`?ann g,7x&`Ο?o#,ׯbme:oܸaclw=Ř{N<6BŒ{spG% gj`=z1F7o9ry0 ` $jBV̽{l`KjN/J3_~ن!Q+$0޺ukte|_VU'r_r_ԥmX:޳1λk#yx{`«9Lo4!0|5"gÝzװh @/$Ic8$ D q4z3<ۂ !q M/]>^|"|믿gR#QK,C^:xb8à* k]6z7G>7M=r矯oyAލ%O=/G_j>xv-s?I$ɡ)I9}f]#GdL&dE[NW^>#{\w6ɓ$NϞCd°b2)I'|M$ 7$́^..$O%cI&$`|zٴe>#O[`vzL.PWMnyP9`Xc)WKz$^..ӜDSkptx4.wI&Iq>-]MȰ'ѣVHzg??B]|y܆="Ì&=9cZIlNX<8ÞI/4DU`o0ICʿ4ˤLnMM.dO3cm$s0XAL$YӪKtlhЧ3T^+W9mJ¦z$璉6MI&sD7IT&ZCea`u˾L262_6dӳ3\!HeO+EM=5driJdvHS/駟vOY ?t5}aNd(S:KtפQo?UsפE}'<$j`ɴ$lÚg8IE^RW}$Xۉo;%M*qI}b0g|[􌩲UV3!MIIat^];, W}|=c_|7m+-ՐydRɁy%Vқ"ɗY'́OʪygRgzOoVWˤdڸɤaңfpԩѹs6 D @H D @H D @H D \|yݻgc0wxѭ[l 9Hoop룗_~_$'QX9N⋣>F /Ο?oC,\z߿tQ;w:r_{~$izϼ{7n9wu+6FQ9w`|dM~^zɆy?9s6Lܼys[ouyGNz`wI10CxHz@w$Mg}zY/r=Icػ`H$Id2s5<ӣ <+׮]ꫣrjxP-htҥ)c{\p{y>˷~[Frgf9M?#Gw0v]99w\H"T¤ Q$pLM&<&k2<)ɏqTRv^kq&M9}V[v;>#7IR~?7ߴ3q5$_^%*2ŋGW\nITLdNe?z$y;̵.IdOGq/u%L>o=WLSTN$jU5) 6QMI$dNjKm"$9{lW:vXz,RK@|L& P$)y晇^{W6,/r￿>li;%KvK͇@ vUzl7ɤ2 J/$I06y.iH#V') T7HcSμ1\zdޚf(f7%S;g>yw[$jUIډ|ɕ.KYץKuizvΚJ즬Ϥytrߓ96vU& No\.E^Dùe,7ɘ$6j>\=Ʃ+AId$}IT(K]jU.vU%=j["Jڞ%qK$$$Iɑ,wܹ ɚ$hYynDM>'Oz$))qvѓO>ٽvV&C;f%zIdO<1z… ]"^կ~=$ovm-ӣw6#Vn%2NGϜ61s̙ѡCeov駟vj~wɚ2U5,K/d#쒣G06OIozO?o~%n&Ü*A$Q6IdS^7:~z!Q;]%C7Û2'M+Crp~wߐ00^4ҔDLA^n;ˤ'M˰9yd8$j`oIOm&s }qz|^_.W}0 F/Q4}QwI<ݰ$jj$i\ {e^::}t7Ѱk؊߿?W7o޼[vY.~4%2)u!RLJ^5ec͛#G<6OzŘ)IKД0G @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @H D @gyf罟}SN\zuy[ig8p~ׯnܸ}=h:eҶCM|嗣;wt$E%1-Q*PI6QRɐA~Aٳg7DC{e/\вLx}v_$3q۫]5[ΝʯKVoHi2vy^:}y=sgn50l50pm"OҧX$Ib<'ҳ#z[ϭw+Ϗ]J\le{mG$IܯICmYI6qΟ?%\RK^6K$vf 9jMUdРV%LHJ!Ɇ@YT^-/bSN<ϸKOr(ɣVIIT%& K%fI!%&}$S2z$I0JڎԐ6d',sc G?Rs$ Ή2MI`ZaJ6d~͆@*^%9eSn;oֵ揙GC4M ʲpܯ0 D Isڻe\'4kyI6$92fqW|Iϗ~{HI̚ Y׬Ce9qa3O㏻Ib;뗍Jό3O%C^}n6[Lx_C'IԤ.?>m{%U5Xua=e|i߸q[II1ĉ$jjRlUIZۓ#s|I$q:I&$w@i{l /ЕѿSI'lyR9HSMْ=S$02\);nY՟h׳mdO$II {ʲ۹{0~9]3G H JåEI"616QWBW%J2;_Q"((F2E &`wv 6*f3ݑlk24l& lI6Xr6Z jk@-ƿ󮫞㝪HWu֭[9{ιf+E%Y"رcC O\5ُ8jq>ϼWê!P1| swݸqc[Xs6^?5z+'s껶 =j:^E5D @'$j:!Q NHtB5D @'$j:!Q NHtB5D @'$j:!Q NHtB5D @'$j:!Q NHtB5D @'$j:!Q NHtB5D @'$j:!Q NH.y7&}-{rٳgooW\bCr1,Ng;1k]paW>g>W޿>cNvtp7\Uжa-y]ld]2폟|[Qi>ܯ9 {okΝ;}FyDz[+yܦ@{:9qС[_zV)RݭH> /peZJ΢>]koG=w0[4Iec˯$As!?]+CI.نOnun$顇>7q+3CK=XzeF .k8Y?B;z-g)cdžm5;ky]_~ a-u%mjhF!ϏLVU+dzWT~ q}G'NlWWv{rbFd'Rˠ*{RLM2-+za~\>|x ӆ+Xx˭bʯ jc-Qq2Ndb_VV'kl7*W>uwݸqcI f ?|~U2kRi{S`:ujq ܪR;f r'ۮ}|V%{[O07Ʊs̙!6ɑ#Gm&1SӧOOT%e*Rv&Zqc-s'q2-q9O\Ôm=Cw߰mgL*ɭ uddVR'O%=R]s&B<:$lXnN{6zTER3֫NPb95b',ə4|oN~gVɯKz$ˬ!KIdI啜>o{q~7I$u:ֶSM>RT){*N*Y l+X@͉,򪍭l9) &+V/:|WJ4۬>Q`oŨ3)D۫Զit]xmkr=$a[;uv?40:d5ƴaYDvy뭷v|dxg7?{(n7OoϦ|oIC~|p1eS8Z{\}8Ozܳk"ۙի>˩&K7wbTy:FY^evŽXYZ>mTfJV $$jRm5=UlV'P* Ǔ˗/O}n+oO{D@OKԴs3a* l+VH/ |Dg_;![Z5nlu5) Ϩə J HtjYc(XF5Й1;vuOx'ۮ)𧺜w;_FRڕi^熚[߱} _r*?ݩ M45LnWg\k${^H8èrnc)#q7ORy^3ӆIR]&1v 4Rn6v۞5k LU}G֗'Vs$β|ZeYVގ4D|~ 7´Tå5~ASI|0\MzDLIOw޷Hj,u,e#GNy^CVYj˥q4[C{ݡG t& TFSesW{ĉmm;۪Jj]1GMW*5*I̴fgWu^;'^hmY\^r+- ]2^Jus IUgo,\ZƊ_&WޱWU?<ՙrB+&N|WHbeL}*ISlvq>=zTzU'IT%?̦;y\qmk.[L]6Id$iliϴצgç7/m/F۬OgLf}1^ӨuK$ɔ6[d0r+l{}^ml)؋q$M=߮ڞ܉®ƍZw㐮ǰ#jS5hKDfn&H5"{Umϲ'~+yGz $ƪM^ se$MɐYoLv=7Iʌ磩9f*yέO?au$hL$i(g*vWb&g97+wm|Um[5,T=fQޱe׸|j˩m6+uճf\,'wI_\˵J{$n΋P o-k(1& Y'SWv˵ugN25ܩg~s< CY]$QЉE$j\ 5D @'$j:!Q NHtB5D #GL_nGz뭷 `\zu1X!.\n;^n9sfoC_I&aIVJ.3 |p}`cxz#XT]ū ,^[UɅj{b Xʭ .$A۹3tW;tmP/'Hj@bMAW ,2`k )c'XTkZ7q]aqe<ˀvb\r׍7K.8t= D§N#`P3@|"ҥKCݵmQ NHtB5D @'$j:!Q NHtB5. o'E`GuƍmmҥK7:dO{ڥK&k;0 5a]zNc7ca)H3~c?~c1tB5D @'$j:q]@z˗/ۑ+nq^/}w…]~'O<ĞbsU{N]Q k)x>,bow"*I?1&Ę"~cC:!Q NHtB5KO?\rŎNr,x_|ͯ%5Ο??y뭷!)Ξ=+Q;g?䗿$j:q]}O&Ν:thmg}6&0l"N<8~0yY >;{e֯a;y>82'͵k&/¶#vF ok,OTϳ6wR~=*,c1.]4܎;6yXg*>ЉEGKXOmU[bʲE7ޘe[_'OKL\)|SNg3wH*)$S??b3j4Vc1qKlUe9V SIL۪י3g_1*JܪyncY~DO5,8_ַ6NYL&e}!RF%G,%vVF$j TT:S2F_%^rj ,:9Ug.#k{&3o :C>+`4;/׊Td<3'NXo,F&cgY^g&&4"dh4 sW9بlKr'ϥ FhT_PWTWdh^_'T:鰝U'hWm'0 ɲ*S`9>Y۰F(:XL\$Y-kN;pKIEeZb[I"GO$Q|48cz꩙ŋu$c3MElG;Dž mTmR}Jq[NᛮUxidO X,#%ispRFo{m;FȦ8sv?˲n~Gb"eSʥ~'>j?CcyaP R'xcP{B]quI$ΓvR ougٴD ǏE5h*{ԩ 7ۘ6M7y T]S7ggTr2Jg|~Uv/k2)S]=[b,iqnӺ'/PM̸Tnجj~q 4i yj_D1_X⭆c}U+b7&i5ЁT0kT*?ɯ~!I3mbG\g^~塰̲:3Rɺ[{ <^<ϲ$ r˙ ˓I1915ƿc1 9^qxH݌O.q9i򸮬f%X3fZ;skѪh n x[W=+qP1gGm_눱b,qzT4:b]{Xs&9S׌0H B. 3)DscYohl2YV3(y}_;3buŤr k*ғ5kԟ"3ƿ74,*7ܙ@*c9+u5yfGU ~~)]qX18TdpO,|OukrSy$b,p&0G hy1WE]U-$ʼVטO$M꘯=ꊫWW Y/'&rr3 :P]J sʲq:S8m;c?i\ |/ˎ} _ÛMZ1d՘)Pym~ﰂ[g TB3fl+ĘC]$juT(MrZcw| ۩ɋ3w 謫Ч z?я3blZ<͊$MR/=:˟.f7B!Y>W^zy|6u"b98NTM~$μ1?- Ț(O92w3Lޘ3l,+qn!VOa$ حu׸RWd_3ɶQ.9_03*u*r?ϺpbV竫fЋHb'۪1xղYM%?p?6r(gs'J|JՋU{? *zPb,eVʱSmrI]Q]q޺bI|+J3)xSV 嶋jUe|6#jY.X<rЦϒW&;361h1qu_b]^cSM\eԕs$e%~fMJ_>$M"h˧jgS.i|5uB#e| @ǔa.A⠌5uE%jVp3~ :{Jn Œ'gElIA߶x*C c*9v;efO!4|2D 1q1?8f[/Oub1ɚx:2wX8k15reKi\oaHð`Sq'V'r̴1y4u1deں,I|V]щ`N)3)<Ǔn~[YOjLTj7-vfⱶ1xYm.-bf+1c//3M; o2!Xr v\PWO\ 5XO5c&69|Mڎ׎'͚5OzV{z/ɗnS~7xC6Y9jrPl;&_FKqnO6JYD /0L hKdSN umUs\ǎnkO81dtmUq~nK/M{l]|NtɅ vU;a111={?Ç[U&5 0}11WPA3/]ڲdɻtҐś.$Gy}.MU[DM;L#l=QMCJjGtj3zuI\ >NS4'\?fVi;wn}gSf&{UdC$7/<$irL;xceY?>?p:@`l&Ob$s؜={vHLJT-6%jY4nDKi;3xεk׆Y7۝ՓN~lv3}mth:i7ά^l/MfV"e79pyՃB"U6yz,|S}뭷KN:zlD&/b 1R?Ll}TWD]:v]^{M26g]6<ف8)|I7:u?uY/gÇn3_xqށnY/1?3^[۟y:Ym7<Ϸ/=M?7m톜?s_?~ 9y"r ͪc0elvm܌ki1nyjq1oO^}{O-̛Vl9wcw_mv]116-auƍ7dJwG*i=kO)<^ bďOu]o/ƅrF5|7ɓ'ǟ7n7<#VyKu߳[988q8[SNgcN3"xJmn6+nu'61cz<>VxwO=p*w)i3v*fmiDjg>c(r&6+6y˜;;;_Hm1bNMJuY]m+L]fHrl޵mQĪ;No?yO?0K{F!O |Y^>`XVoݼ.`)poy|UTϝ x%NGW[߯t/TwܐT7xc$笘ȲPTuβGܯ;ڪV˺vb־dJ}Ny,{evR3Mg\gȺ7~YoZc,kcg;c[)jl#q&kveVblmqbhuժ+]>cꊳz+B$jX _|q\˂6B"-SVB֭y鲙º*v^ )W^a{ԄmYmݩ#Gl8R0Vwy TVhd<r Z'/?cIؘt11VتUc>H\N[0aɫn6r&[o?o5YF3mw+nWl%vYb5gӴl,_]zc1uVWc2OL~_M~߭=a{yƽ6)hRzu~\i{0qީiIEW1fsL[׳{>4*u~,16OL$![mW=6:ǭvƟw16m>v7c9/~!:ym.,[D>'}^_?TW\޺ʻ",'=jVLd˪V൓i'>ܬ3v5xz|<NT%rY߯a2oFjRJPycl|cmLg\Yogw;f}^&LN>F16OevcouUVW; [15Еl0< ^+_L I+{D Ԭ.5Ag[(GRN;E]o9z|/G8bMՒ krnwm;e?2팤cۍEyc2uůXn6<7ϩ+2G L_Wȸض୫Ǵډ jfpz5YZpk]R^?n|M+{~$3IaMXW%欘ȄulY>Z>+^yqqeج'nSmcP]CKƟy~D]qQuŨԦA5"Hб7?g?*\yJs%_ 5\Ms~mvY| HAuѪe\32;}]%*,Sg^m3۩TmrL]O{'szE?z(k{F h.O ?O&{l-I\:z7rYǍ\ )+bdݪrfgKgpƗ)Y۽Dh1Ap}}QnUAYDM~TZ<w?OXyI}b$1xJ*'U ۊI^29?`>C/Ve/Yqe1Z7۬Ffޣ-s?٠q`M6 ?|}^nc~Y7P!e.|ww⬽JT*YW̟CVC1qVXby%. Wȱc#Bu-}Kf,o]뵱3-ns*jݪ0gٴcb*u>8vqJn]M8eY%?ӸXc_]m˲*˦L֭NʜycNcb̶kOU u}^8O]1K5:o]uŭwVjSW%vƍm>m~akoǹVoX'y7o|Gna>׿_mc2ir_o'.s?/uTc(p]1Ƭcr{cZe R'5zΘVwF[鹙F8#؍" uASea^5{D Ȝ=g5)DSeKJΤ7 {Ywm*F*OjaH{YIi\cuZ7ÞnOfȄn93?>;2k~Z֙H7ea7TN38Vr&Zkrmn 4ӘL촍=1;[Wsh޺b:<Gfi*^{͸ӯcfA=@7SY.u`czĀ"^ Q 쬭'@]`kW^\pa[VYmÇ'*~ׯbSgRWc+$js=ǺcQ]9V_+s30@'$j:!Q NHtB~;oo7p׍7K.8t= i.]:tlCNHtBQW^X)ׯ_nu#`'H;߶X)/_nu#`'HtB5D @'$j:!Q NHtB5tիv3)83$jom'8p=C5D @'$j:q]@r93gK… Kq5vŋ eJ֍%QC|M;a:uNk+*؇3]F NHtB8rRׯY ?ɜ!Q#o0Y2_Cҽ$o7IH5~]fe$k$j`Tx]|yLC2Y뾂$^`R}'% Qq/eU3гq"T/0Y:9Anj{W_}u&iWĢ^`sj^pr'Q7M;j=5Lka^`32D /Nnܸ1N>~3NNҝN=^_9'Ii= m=X#C>WI _9NmЃ.LrerߡCn' 1?|N Kko1rq{ٕ+W_ s&=;zp3Xb;vlϭ5?#;S>K&_|1?{&?D$j2'ƿ_6a^ҥ7z薹3j;ƽn0y7<.IԜ8qbrNΞ=; } V'o1w'{CSOM>yrqqksdM CM>qbq'n>\>rdy~>!IPG|ǓC?p{usv̙!ɒ+TO$T>$MT&JԶx0 7'}]xqvzDMdS7s=7w8v@J~ &&\Ʋ,^xaIz?n}w}[5zzMdn_^y"%d'/e,V/\wKzӴaP\6ɼ6ymnIdXTz$qi3<~ ?jΚ'=kG 41S+ɗ$k&qZuWMIo?ܜ&q70䩮Lhxv۬iWQCj^%3?=BId{S<2\2yL@\=cj[ߦz$I3iDM4yẓ K{$kj2iҳMn{I履%)6 >3k8T.ٝ6L|Ozd۳71 LT%>W`'e/uyzI5Iͤϼ\'$k20eDM"IеaL6^8ӤGO<1yǹeH5t-I\Yi^3`҃5z$jZ;|xaC5tmcL SN v߾}[^Xr5"$jD @'$j:!Q NHtnE{*|^O쐔ɼ4mo,:C*_WwCMϮ\2yݓ'OIeP 曓:0@6xLJL|uΞ=;$Qy'`{$j`dϻᄏ8p0 ܰ^z?~}xC=49z-s\ti;vmLVU?&u?{{n&:α CO]xrJǏ0<(;wnHd(N(IDMާMqݯTf{ΒIWͬIzQJr#ɉ$*^~a̍SKz_I$FN֭DN'IlG%hɶ7aP>[oKI2I/VD %ISCgyꩧ *I[ EJ$Gx~I2L=ݯʰ|WÆCUQasx(STHUǼ=ZƦ%YvKOC`WeRy!5/ͬuk2\:ɤGS@ѣbJzc=> C]aO.GNw&sd<5ng{U#/ouK]DjL+$?Wví*S QII;+1U9zp&Wg֓`o`W% $Kj|58=J2nWϒeYIdu'NXnNN4Y-WM}~>KnRlD * y饗J{$A3^%DJ/Op$u0I/K@c6h99ztB=O?\rŎ5Yo&gϞ]6_N~ٹl9j`\A 퐨FC%_Nx {gr?eHՁPD ܔL-%[1Ν?2RIR'NL~!YSv*wD~… v.40^DK0'Oü3I$ $M%n???sjΛ 'vÇ؆'Cʽ{zI&7 ,D 4I kaL5L2&W-jr`Q$jW^yeHCM=aم &/^\vmx|nXO>;wnrرuxL:4׷[=K{m}έ}^xiZK. ۭwϾg̾컌y޻g Cg㏯f}goD j_o8DM^SqBaH>K>N޿ʲӧ~$Y;ev$~گogc">ͳg_ްJ^߷D .@߷k 9sfhI$ |^myϧ~zH43fc=6߮v$PYXj?ǧ~ioVcI$A2'K,_*M3Y*qw}My yĉa[y~\KӖ5ЖSNMMNdyz^$Qh5i'/wy]SO=sUf|n5i8K/ y>뵒0G@$j` $ISs̒I$YhI6"#$DzJ6dkTKI0U$"loRÛϑ=I|'@j'}6/X ɺ̷2͸7H́B#[Ӓ |;kz3j^>dƵO <~6pzP$Oylۼ3{$cG:0TM J!n5#LLzlU Ix3;ff.|K$5LN7s?sO/_דQs}n2$nwIIxTB&#mZgnjTU3o'ߥM% |$i {ʲ|Ʊ<7N톹g}WsHC:=96ršQ&,f5Ǧ&ͤe[ M]&e5'R@d|4\&;1I"9;qūyTϞ~=ғ&s;ɚTvU|{L9FfmjIu&MύJTc?s|ʱcdž幬SNeLz[|97M$e̺n=Y?zCrU5t) GQq%j;&`1G ,$2̦)IT0V Ibg<%;?J%j.N*&\z!Ы>lrʕ[o&~\+XxKlmxܩ26rlD R̙3Czܹ[*[Kٮ]iC^yc_.\0y6,;{]/o9V[IJΤk['Q ѣG'9yKpOcdžglQ$nUn809v-xzꩧn_S'jy[TRӓ_}ʐoʰ}`$j`ԙm\oжLZJg;Sw=ӝ}Z;1޲СC ͱ[SeZ{غVB?C/t//^ZmO^xa}zӬ@@%mKy*b-Ϗ&&1V÷.13}Y2qZu<)[ m˹I4ޯ3cSPKv58љJeoS @o y]o/~78k苛XnQ7_mftN\b'll+RqLU2bl8VFٸBB3gPM%2b TVӠLeUL3))dS1Zgj3mk+IdxRew0~%k^t$OQ#k[,S7ib% Y ͶB[=S :cYxJ gY⬍l3%S+j;}8~⪒sr#eLʴ1s%Ͻ^'Gm8byދJf&x8IYS}%o3Sb*T1Tfѓ$j`%™k*m%r=Dx<>rȆIRSz\)N%gEz^[۱13&IoUVo2ilI2% 2eGG2:Wpd&0 @ڨ%$Ġc3Id[MwOI#3=HLbaFGMl&a3GX 휎oϋǻ#vժUVwzgc2I+hR|;fzum+5M;_Z=ozmW\V2J:⊷?9l7rj+9l8mIgVwu*kZm2iQScZLj:婀fjZLIg9NFZ;vkIw"/,,tId&1I[֤;Ԯ^$oݗVm]M38]vJhZLU6 \lOnO?+ۃd=]V[ܨ2t;z]F2p}$j`Zm6v`iHB%'I(_4SX+.Pdt$)nGfxME4'=fH&Iy& ƍ}Ru;JU3빚QYm*8-cr:unOC>rwHB'c,OZW&g.O%f25p%c*QNS X:Is5ߵLU 9:$pcxr9\O{=vƒӞNSZ$YO81ڽ{?k*!-1L%i2L2>f\~LQ&]n3̩>5j]ůKx~o3{S \lVX])ǝ&qnN-j;Z]/vMCxrDLNk:)[gԩV5c*7JˁFަmM,^IK)pWhNwVŦ5UUx+^DVw{jrҘhJx04-[5ST{BYI*TRsSgLL}MW_Z..d݌+Yq O004?~Vµ4^m۩4jfYdKnJ<2`\ƞj3NGWֿ.IS]ImzΥ+|Ϯ5qZ30 wF_rT,巩X__\ɲ<+f˺&κI$ s+zϮL$6x\YJUuYw\2qTz[mۥc{k0xOiɜʻ2]7q*j ,H?66!Ο?$XJ$ɒ%c˘XbmϞ=vpԩ.1YXgms{>{.˘?xtѮ]Fv20?pWNDʢC=\.cmmYXS[G}~g50'O>̙3J<3v&F)$S>S,/+N7k y>rq=7w}wN(~*qΝkv&r kb(qIT̼]b^su\4b.تrNLat߬n3L_|ߔUPb-V۴Zey<םw-䔍K|m$>_W{KYͲ<ؽ[[]Z67WZ9)c_וǒgh5I$rڮS v})~cɴd0b[E>-D LOq O\H86؎eӜG{E2ey y*f+~nXN8-lr™.Pi%jH Nll^>uQW0ĞD I'iL \-8Ja۬;g?l/SV~?5W:x% k њ+iNk`VA5y]n#__77Ua㽟1JJ9A-g~ ̀õRMdVV\x]w2ڊ$%!$I{DYk|$^+QSb,jV[*'xP]ڙX]b+ $)SeRQWb=z5D/P8jDɛfzn*suBN4Ϟ=)Ӭ Wӎ- Si}F㯫)d<'UѭlL湚~8z$ nU&}d$/1Y>o5|_ìQ?^*q j͠١ǿmVj%E#e,7ZDn!Ʀ'⪒Xʪ<΅zM)jsuŪө+w]1R.evvRE-?2+~ND&x`Ux_ϴ՚':7&kҝ?vN^&uh[LJc1Wkw=j⼮3n\%vƕe/VnC7(uEu+wIP")d̵-$k©{2[Y' >Ÿ x4kfnUi&}`L#>+<H2f ~,kMܟ9}RV +|gGͲirOl^'kI$r&k;3k8|I9vҥяc-Y+~ ۷o_W1lƨh#/9yLȶ୙."l o>nvf7\?-~s@,j6Imjdl4?g,..v6~}{>}NS],ڲi@16cw[nbʱ~Z]qനԆ9)Sf]QI!^ݨWz؎_xکikyB ՞ Xni]V6fcU*{5p?j}*\Lextmc5x.`ydniY5W'c\ɯ$g&?AzeĤkO]rBɃvevoɖ;y=tju_-kR+JcMN f*ms5PjMZ }nv`IdG$>+mR4:6|vOUWsd^82-ڲz#8-r?ڈ1t[I%Ɠ"HX}W[ jYoUPqujG x>[7*I]Y6RxW7ykJ0/W}]}\N'r~<ֲ'Y/'մ<[NSi/KՕUj(5:,Yb&#W s%k˖)r-['>rZnq׾l1z[j7rL]q6t{w`={v`Y?FTN8!x۷oJv>? 1 ={gߡ aa+w@l9 Yq£o1l_Wvl63ĬO!Q03m̠UW<_k,ϭ5V;$2Λ`l|-ՓΧ9̴H^+85׮4}ܤfYZIj v<u9'_yxN>s]gjF91jrP:pN>f.QS܎=se5OՔb >S8O\?sN \X'y^dC$7?%ir;xceI|ɉϽ<ۤT=JId ^xKʌ%*ɖ$|5ɬKBe4J%Ƹu҂旿ֹ|r3_>䓣3gA0^f / @]9h'0)xSmq4yy:z1ƴc,?(11"9rҥO?=71p¦ٹs-|O>=7zGlzh[DcKrرcoꊨ+€lG^N ͕˗/wsu N q̳(dx`tmnս8ϖ?߸}Uۓ'OvqhLGvC*vkߘ2V:mkq1ny⪿~[HO12,'blvble޸re[k[ON~㶽I+SWrF %ҭJmZTu|GYVO!  0qGvW?(a Ǐ_S(O|mݺډ{rF]5|WÇ7{wn7<#VyKu߳Z\o11X7q8#Glgc|=LBSLoy|UT<<;l;WK9,,_-T ;v~T+bl nRF3UIY1eZ7'S:vsThZq/fۉ7L[)7eyeYrXYCFIK Y7&/덫oe_ecVc[gcSXFM\ʜ뉱n['}CC+&竮ؖw9\ժ+Nj&Q3RUdMxinNi *jݺ&)n70N*_|G ؖuۓ<+mᗂMe ٨F[S _u$Wsl|1VXتHc"qlq㻮U3Iqe9NYȵٸ!Մnmynܠ[)8_c9n:_^Sf?Zs=1mY{2\!zbnՅ4QW.us f$aLxdN$?ٳg+'YN/ﵭ IA֫+Js3i ާtv%y1^E+3nݡ^U'N~w 4WZtkʤ̗E Yst{ZԸ3%hة\-ng=ȸ+bLm4ƦQS)ot]]{nSWeϿfHضcZ@}52~ b8i,-R8TOCm~[ ̿3Ha X 椘Ȁ5g6Aoe /7ygy?βؤ%h[),vu-IuiRW QÀ;?]+[)P|f:y\^[o>kUYTWڂ EF)kѪefx6 nWvj*W˶_9 4^{;d?Ufr$**^Kmlsyb$b3+"s+|Yz*_9͖pDY?P+G;b壍o*2b>Cvz6"뎋ݡX5#Tא^AO#vck-j Rqy\3UlߜV׾b,20l3d~byfZX}-ocQ]qu*a_}嘺"]7'E[nY>6B5>;[e{>>:z+rY'a)0RP3bdݪrfWKgpSAfuYeÍNZW b/3߭*(oJkbo_^'qv}u1J<%쮻Z{uO=T_|E{{:u[6RyLu\%1PSxDZIViF۸m 5Nmtf|v&QF;mw]fq*+V"nL]O7VN;o%Yr/XbjqTсVW:}QW;flckKu+]l[Ԩ+D =Ji|'77딺Ym@M7lUzs5Y?'mfe| *Sx}S@]*5`c[1v˶sU&W303nUN]WSu:{u繺ԯfD>[~׶_>j?2>˅oU~uq`Jo2q3}s5_NguKʼnBn,9slXuc?5iv۵^;6ab֭ sq16.v_WY3cjkWTrk֟6ᔓY-*}1vbl#e^UY6gݵnw>g^)scJU3ۮ}ٳg L6N+ 7E>wV׬cWG61&WNzƕYRa$1cՖ9C!bs;ſۿ-]9)[K]q\ٽb-#Ul/W_ʳhQMX4^JYKU\V4mǡ/WZr.Ӝ>Wat[0q+T'59L%t9l&W3`c31[]8vZ*vvYLC ,ƸKS$'8%YW̲aAfJ~я㹨%1MXO/J]j*NGV=V5GYH#Zm '9qdb=cuI-ZWLBG'YK/t#GwjϸٯƤc0b.O.]Z~V5I 4M5mhf +ͼ$f/1E +l5cd\ȴI,,,ti&Y`s]oW `+l5cdgv;6c̪$Ν;mdUF>Jq#~b167n+1m5 ڴ:6ocZ]9V?~cuEa & 05!Q05!Q05̽;oo7 Q05!Q05t钝\Y\\nu#`3HԩSvs… cnlYYE` ngWnqs_ WdM~%`[ ` $jb[&jҵ״>XO?u$vmϞnp_xa9;ݺk|r91pҕ[ Gt3zk4yCFvm]>x{lt|uرW^^DOm3ge|fZTkz,6$PҲ忿jwV.Y$i2_߳K$!Y7趵pMouW[$xו;vNq(qmlDM%Rr? c$[7FM 1]$K-K.Nՠځ^']!= EM!^"Ivl^3t׿>dx%I5uwG}t~9K]2NM֭$MZج51ht%#ϸsP3@=Q%jdHqJjj0 醴IZd$fZIdY%5ͺ8qNG z%j otiק%o?0@2oy< D ׽_yNϝMZ#Q0L9rN ` $jB` $jB` $jB` $jB` $jBm}{> D @lG~rwkw1Νv [NOΜ]|+7oŋ_ H ۵k^gΜv@3,Z裏>r-N!50ҍ)d?~D͡CFz^>EKk]`N|']&]ygG~4>hviQs"HHB;sq=.0HH%ɘ_};ݻG~0#t}9h)O`6hQs$ݟ|Vcּ[]3@ 50'[)] ١E ̉{Kμ] HƮLӝDNfz衇4Ѣm?>t>o߮Y7#ILɝ$M-ɘzjy׼ 5lKvmF_\8G@+%L.TI`eM`X$jؖv;+?^mMu&xGFݭ?cGwկ~e055lK_ݹs5._ҴLKR,;pTI԰mݺkh;X#W_۷oi 5iUvBAK61j`2MwnCq50'.\`'8.`N>=)Fg}#D S$޽{-~9;`05!Q05!Q05!Q05\ܹs .ɓ'G.]#6@kۣ~}{݉7dqqqtرѷя~# `ɉwNs"VZ]71:z`Jn o};gv$A xNs;{h޽vU~n6?˗G{NLxԩS],^iq<׍V"Ql 3MرctG vO W^yK<Sn4?xw}wȑ#xK8~>0ݻG'NN%iŋGԷ{.I3 tk!Q5R"]{=-n^xK͚$hK&  klUtyWvܹ7\uwz/riy}Ɓi-+SDUlƢ6|޹+{Nsb&$6N-GpJ?~ƓO>yMw̙.9J&Y?5y6Yn?uSI9I+&V5`{ -FIT< zU<3z_I$FN֭DN'IlD%hɶ7jaP>[oKww$ $QnDIT$m{HEeJV]z%ɑ<m_E%qLsm=S:e/m7LIOl01fߕ)*yJb$Ic-Z%Y6KOB`KePߵ$Cj\IY:ɤGS@ѢnwS q-{]!QJIQSƝ.Y/'ummdluI]{쒨`K%!Z*!ʲ>>/PUT }ifelse pdfmark_5 }forall }bdf /lmt{ dup 2 index le{exch}if pop dup 2 index ge{exch}if pop }bdf /int{ dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop }bdf /ds{ Adobe_AGM_Utils begin }bdf /dt{ currentdict Adobe_AGM_Utils eq{ end }if }bdf systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_AGM_Core 2.0 0 %%Version: 2.0 0 %%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Core 209 dict dup begin put /Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def /AGMCORE_str256 256 string def /AGMCORE_save nd /AGMCORE_graphicsave nd /AGMCORE_c 0 def /AGMCORE_m 0 def /AGMCORE_y 0 def /AGMCORE_k 0 def /AGMCORE_cmykbuf 4 array def /AGMCORE_screen[currentscreen]cvx def /AGMCORE_tmp 0 def /AGMCORE_&setgray nd /AGMCORE_&setcolor nd /AGMCORE_&setcolorspace nd /AGMCORE_&setcmykcolor nd /AGMCORE_cyan_plate nd /AGMCORE_magenta_plate nd /AGMCORE_yellow_plate nd /AGMCORE_black_plate nd /AGMCORE_plate_ndx nd /AGMCORE_get_ink_data nd /AGMCORE_is_cmyk_sep nd /AGMCORE_host_sep nd /AGMCORE_avoid_L2_sep_space nd /AGMCORE_distilling nd /AGMCORE_composite_job nd /AGMCORE_producing_seps nd /AGMCORE_ps_level -1 def /AGMCORE_ps_version -1 def /AGMCORE_environ_ok nd /AGMCORE_CSD_cache 0 dict def /AGMCORE_currentoverprint false def /AGMCORE_deltaX nd /AGMCORE_deltaY nd /AGMCORE_name nd /AGMCORE_sep_special nd /AGMCORE_err_strings 4 dict def /AGMCORE_cur_err nd /AGMCORE_current_spot_alias false def /AGMCORE_inverting false def /AGMCORE_feature_dictCount nd /AGMCORE_feature_opCount nd /AGMCORE_feature_ctm nd /AGMCORE_ConvertToProcess false def /AGMCORE_Default_CTM matrix def /AGMCORE_Default_PageSize nd /AGMCORE_Default_flatness nd /AGMCORE_currentbg nd /AGMCORE_currentucr nd /AGMCORE_pattern_paint_type 0 def /knockout_unitsq nd currentglobal true setglobal [/CSA/Gradient/Procedure] { /Generic/Category findresource dup length dict copy/Category defineresource pop }forall setglobal /AGMCORE_key_known { where{ /Adobe_AGM_Core_Id known }{ false }ifelse }ndf /flushinput { save 2 dict begin /CompareBuffer 3 -1 roll def /readbuffer 256 string def mark { currentfile readbuffer{readline}stopped {cleartomark mark} { not {pop exit} if CompareBuffer eq {exit} if }ifelse }loop cleartomark end restore }bdf /getspotfunction { AGMCORE_screen exch pop exch pop dup type/dicttype eq{ dup/HalftoneType get 1 eq{ /SpotFunction get }{ dup/HalftoneType get 2 eq{ /GraySpotFunction get }{ pop { abs exch abs 2 copy add 1 gt{ 1 sub dup mul exch 1 sub dup mul add 1 sub }{ dup mul exch dup mul add 1 exch sub }ifelse }bind }ifelse }ifelse }if }def /np {newpath}bdf /clp_npth {clip np}def /eoclp_npth {eoclip np}def /npth_clp {np clip}def /graphic_setup { /AGMCORE_graphicsave save store concat 0 setgray 0 setlinecap 0 setlinejoin 1 setlinewidth []0 setdash 10 setmiterlimit np false setoverprint false setstrokeadjust //Adobe_AGM_Core/spot_alias gx /Adobe_AGM_Image where{ pop Adobe_AGM_Image/spot_alias 2 copy known{ gx }{ pop pop }ifelse }if /sep_colorspace_dict null AGMCORE_gput 100 dict begin /dictstackcount countdictstack def /showpage{}def mark }def /graphic_cleanup { cleartomark dictstackcount 1 countdictstack 1 sub{end}for end AGMCORE_graphicsave restore }def /compose_error_msg { grestoreall initgraphics /Helvetica findfont 10 scalefont setfont /AGMCORE_deltaY 100 def /AGMCORE_deltaX 310 def clippath pathbbox np pop pop 36 add exch 36 add exch moveto 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath 0 AGMCORE_&setgray gsave 1 AGMCORE_&setgray fill grestore 1 setlinewidth gsave stroke grestore currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto /AGMCORE_deltaY 12 def /AGMCORE_tmp 0 def AGMCORE_err_strings exch get { dup 32 eq { pop AGMCORE_str256 0 AGMCORE_tmp getinterval stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt { currentpoint AGMCORE_deltaY sub exch pop clippath pathbbox pop pop pop 44 add exch moveto }if AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show 0 1 AGMCORE_str256 length 1 sub { AGMCORE_str256 exch 0 put }for /AGMCORE_tmp 0 def }{ AGMCORE_str256 exch AGMCORE_tmp xpt /AGMCORE_tmp AGMCORE_tmp 1 add def }ifelse }forall }bdf /AGMCORE_CMYKDeviceNColorspaces[ [/Separation/None/DeviceCMYK{0 0 0}] [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind] [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind] [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind] [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind] [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind] [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind] [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind] [/Separation(Cyan)/DeviceCMYK{0 0 0}] [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind] [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind] [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind] [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}] [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind] [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}] [/DeviceCMYK] ]def /ds{ Adobe_AGM_Core begin /currentdistillerparams where { pop currentdistillerparams/CoreDistVersion get 5000 lt {<>setdistillerparams}if }if /AGMCORE_ps_version xdf /AGMCORE_ps_level xdf errordict/AGM_handleerror known not{ errordict/AGM_handleerror errordict/handleerror get put errordict/handleerror{ Adobe_AGM_Core begin $error/newerror get AGMCORE_cur_err null ne and{ $error/newerror false put AGMCORE_cur_err compose_error_msg }if $error/newerror true put end errordict/AGM_handleerror get exec }bind put }if /AGMCORE_environ_ok ps_level AGMCORE_ps_level ge ps_version AGMCORE_ps_version ge and AGMCORE_ps_level -1 eq or def AGMCORE_environ_ok not {/AGMCORE_cur_err/AGMCORE_bad_environ def}if /AGMCORE_&setgray systemdict/setgray get def level2{ /AGMCORE_&setcolor systemdict/setcolor get def /AGMCORE_&setcolorspace systemdict/setcolorspace get def }if /AGMCORE_currentbg currentblackgeneration def /AGMCORE_currentucr currentundercolorremoval def /AGMCORE_Default_flatness currentflat def /AGMCORE_distilling /product where{ pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and }{ false }ifelse def /AGMCORE_GSTATE AGMCORE_key_known not{ /AGMCORE_GSTATE 21 dict def /AGMCORE_tmpmatrix matrix def /AGMCORE_gstack 32 array def /AGMCORE_gstackptr 0 def /AGMCORE_gstacksaveptr 0 def /AGMCORE_gstackframekeys 14 def /AGMCORE_&gsave/gsave ldf /AGMCORE_&grestore/grestore ldf /AGMCORE_&grestoreall/grestoreall ldf /AGMCORE_&save/save ldf /AGMCORE_&setoverprint/setoverprint ldf /AGMCORE_gdictcopy{ begin {def}forall end }def /AGMCORE_gput{ AGMCORE_gstack AGMCORE_gstackptr get 3 1 roll put }def /AGMCORE_gget{ AGMCORE_gstack AGMCORE_gstackptr get exch get }def /gsave{ AGMCORE_&gsave AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /grestore{ AGMCORE_&grestore AGMCORE_gstackptr 1 sub dup AGMCORE_gstacksaveptr lt{1 add}if dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse /AGMCORE_gstackptr exch store }def /grestoreall{ AGMCORE_&grestoreall /AGMCORE_gstackptr AGMCORE_gstacksaveptr store }def /save{ AGMCORE_&save AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store /AGMCORE_gstacksaveptr AGMCORE_gstackptr store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /setoverprint{ dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint }def 0 1 AGMCORE_gstack length 1 sub{ AGMCORE_gstack exch AGMCORE_gstackframekeys dict put }for }if level3/AGMCORE_&sysshfill AGMCORE_key_known not and { /AGMCORE_&sysshfill systemdict/shfill get def /AGMCORE_&sysmakepattern systemdict/makepattern get def /AGMCORE_&usrmakepattern/makepattern load def }if /currentcmykcolor[0 0 0 0]AGMCORE_gput /currentstrokeadjust false AGMCORE_gput /currentcolorspace[/DeviceGray]AGMCORE_gput /sep_tint 0 AGMCORE_gput /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput /sep_colorspace_dict null AGMCORE_gput /devicen_colorspace_dict null AGMCORE_gput /indexed_colorspace_dict null AGMCORE_gput /currentcolor_intent()AGMCORE_gput /customcolor_tint 1 AGMCORE_gput /absolute_colorimetric_crd null AGMCORE_gput /relative_colorimetric_crd null AGMCORE_gput /saturation_crd null AGMCORE_gput /perceptual_crd null AGMCORE_gput currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf << /MaxPatternItem currentsystemparams/MaxPatternCache get >> setuserparams end }def /ps { /setcmykcolor where{ pop Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put }if Adobe_AGM_Core begin /setcmykcolor { 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput 1 sub 4 1 roll 3{ 3 index add neg dup 0 lt{ pop 0 }if 3 1 roll }repeat setrgbcolor pop }ndf /currentcmykcolor { /currentcmykcolor AGMCORE_gget aload pop }ndf /setoverprint {pop}ndf /currentoverprint {false}ndf /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def /AGMCORE_plate_ndx AGMCORE_cyan_plate{ 0 }{ AGMCORE_magenta_plate{ 1 }{ AGMCORE_yellow_plate{ 2 }{ AGMCORE_black_plate{ 3 }{ 4 }ifelse }ifelse }ifelse }ifelse def /AGMCORE_have_reported_unsupported_color_space false def /AGMCORE_report_unsupported_color_space { AGMCORE_have_reported_unsupported_color_space false eq { (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)== Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf }if }def /AGMCORE_composite_job AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def /AGMCORE_in_rip_sep /AGMCORE_in_rip_sep where{ pop AGMCORE_in_rip_sep }{ AGMCORE_distilling { false }{ userdict/Adobe_AGM_OnHost_Seps known{ false }{ level2{ currentpagedevice/Separations 2 copy known{ get }{ pop pop false }ifelse }{ false }ifelse }ifelse }ifelse }ifelse def /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def /AGM_preserve_spots /AGM_preserve_spots where{ pop AGM_preserve_spots }{ AGMCORE_distilling AGMCORE_producing_seps or }ifelse def /AGM_is_distiller_preserving_spotimages { currentdistillerparams/PreserveOverprintSettings known { currentdistillerparams/PreserveOverprintSettings get { currentdistillerparams/ColorConversionStrategy known { currentdistillerparams/ColorConversionStrategy get /sRGB ne }{ true }ifelse }{ false }ifelse }{ false }ifelse }def /convert_spot_to_process where{pop}{ /convert_spot_to_process { //Adobe_AGM_Core begin dup map_alias{ /Name get exch pop }if dup dup(None)eq exch(All)eq or { pop false }{ AGMCORE_host_sep { gsave 1 0 0 0 setcmykcolor currentgray 1 exch sub 0 1 0 0 setcmykcolor currentgray 1 exch sub 0 0 1 0 setcmykcolor currentgray 1 exch sub 0 0 0 1 setcmykcolor currentgray 1 exch sub add add add 0 eq { pop false }{ false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne }ifelse grestore }{ AGMCORE_distilling { pop AGM_is_distiller_preserving_spotimages not }{ //Adobe_AGM_Core/AGMCORE_name xddf false //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq AGMUTIL_cpd/OverrideSeparations known and { AGMUTIL_cpd/OverrideSeparations get { /HqnSpots/ProcSet resourcestatus { pop pop pop true }if }if }if { AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not }{ gsave [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace false AGMUTIL_cpd/SeparationColorNames 2 copy known { get {AGMCORE_name eq or}forall not }{ pop pop pop true }ifelse grestore }ifelse }ifelse }ifelse }ifelse end }def }ifelse /convert_to_process where{pop}{ /convert_to_process { dup length 0 eq { pop false }{ AGMCORE_host_sep { dup true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process and}ifelse } forall { true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch (Black)eq or and }forall not }{pop false}ifelse }{ false exch { /PhotoshopDuotoneList where{pop false}{true}ifelse { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process or}ifelse } { convert_spot_to_process or } ifelse } forall }ifelse }ifelse }def }ifelse /AGMCORE_avoid_L2_sep_space version cvr 2012 lt level2 and AGMCORE_producing_seps not and def /AGMCORE_is_cmyk_sep AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or def /AGM_avoid_0_cmyk where{ pop AGM_avoid_0_cmyk }{ AGM_preserve_spots userdict/Adobe_AGM_OnHost_Seps known userdict/Adobe_AGM_InRip_Seps known or not and }ifelse { /setcmykcolor[ { 4 copy add add add 0 eq currentoverprint and{ pop 0.0005 }if }/exec cvx /AGMCORE_&setcmykcolor load dup type/operatortype ne{ /exec cvx }if ]cvx def }if /AGMCORE_IsSeparationAProcessColor { dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or }def AGMCORE_host_sep{ /setcolortransfer { AGMCORE_cyan_plate{ pop pop pop }{ AGMCORE_magenta_plate{ 4 3 roll pop pop pop }{ AGMCORE_yellow_plate{ 4 2 roll pop pop pop }{ 4 1 roll pop pop pop }ifelse }ifelse }ifelse settransfer } def /AGMCORE_get_ink_data AGMCORE_cyan_plate{ {pop pop pop} }{ AGMCORE_magenta_plate{ {4 3 roll pop pop pop} }{ AGMCORE_yellow_plate{ {4 2 roll pop pop pop} }{ {4 1 roll pop pop pop} }ifelse }ifelse }ifelse def /AGMCORE_RemoveProcessColorNames { 1 dict begin /filtername { dup/Cyan eq 1 index(Cyan)eq or {pop(_cyan_)}if dup/Magenta eq 1 index(Magenta)eq or {pop(_magenta_)}if dup/Yellow eq 1 index(Yellow)eq or {pop(_yellow_)}if dup/Black eq 1 index(Black)eq or {pop(_black_)}if }def dup type/arraytype eq {[exch{filtername}forall]} {filtername}ifelse end }def level3{ /AGMCORE_IsCurrentColor { dup AGMCORE_IsSeparationAProcessColor { AGMCORE_plate_ndx 0 eq {dup(Cyan)eq exch/Cyan eq or}if AGMCORE_plate_ndx 1 eq {dup(Magenta)eq exch/Magenta eq or}if AGMCORE_plate_ndx 2 eq {dup(Yellow)eq exch/Yellow eq or}if AGMCORE_plate_ndx 3 eq {dup(Black)eq exch/Black eq or}if AGMCORE_plate_ndx 4 eq {pop false}if }{ gsave false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne grestore }ifelse }def /AGMCORE_filter_functiondatasource { 5 dict begin /data_in xdf data_in type/stringtype eq { /ncomp xdf /comp xdf /string_out data_in length ncomp idiv string def 0 ncomp data_in length 1 sub { string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put }for string_out }{ string/string_in xdf /string_out 1 string def /component xdf [ data_in string_in/readstring cvx [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx [/pop cvx()]cvx/ifelse cvx ]cvx/ReusableStreamDecode filter }ifelse end }def /AGMCORE_separateShadingFunction { 2 dict begin /paint? xdf /channel xdf dup type/dicttype eq { begin FunctionType 0 eq { /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def currentdict/Decode known {/Decode Decode channel 2 mul 2 getinterval def}if paint? not {/Decode[1 1]def}if }if FunctionType 2 eq { paint? { /C0[C0 channel get 1 exch sub]def /C1[C1 channel get 1 exch sub]def }{ /C0[1]def /C1[1]def }ifelse }if FunctionType 3 eq { /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def }if currentdict/Range known {/Range[0 1]def}if currentdict end}{ channel get 0 paint? AGMCORE_separateShadingFunction }ifelse end }def /AGMCORE_separateShading { 3 -1 roll begin currentdict/Function known { currentdict/Background known {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf /ColorSpace[/DeviceGray]def }{ ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }{ ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put }ifelse ColorSpace 0 get/Separation eq { { [1/exch cvx/sub cvx]cvx }{ [/pop cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll put pop }{ { [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx }{ pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll bind put }ifelse ColorSpace 2/DeviceGray put }ifelse end }def /AGMCORE_separateShadingDict { dup/ColorSpace get dup type/arraytype ne {[exch]}if dup 0 get/DeviceCMYK eq { exch begin currentdict AGMCORE_cyan_plate {0 true}if AGMCORE_magenta_plate {1 true}if AGMCORE_yellow_plate {2 true}if AGMCORE_black_plate {3 true}if AGMCORE_plate_ndx 4 eq {0 false}if dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading currentdict end exch }if dup 0 get/Separation eq { exch begin ColorSpace 1 get dup/None ne exch/All ne and { ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /Separation ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading }if }ifelse }{ currentdict ColorSpace 1 get AGMCORE_IsCurrentColor 0 exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse }if currentdict end exch }if dup 0 get/DeviceN eq { exch begin ColorSpace 1 get convert_to_process { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /DeviceN ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading /ColorSpace[/DeviceGray]def }if }ifelse }{ currentdict false -1 ColorSpace 1 get { AGMCORE_IsCurrentColor { 1 add exch pop true exch exit }if 1 add }forall exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse currentdict end exch }if dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not { exch begin ColorSpace dup type/arraytype eq {0 get}if /DeviceGray ne { AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { ColorSpace 0 get/CIEBasedA eq { /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def }if ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or { /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def }if ColorSpace 0 get/CIEBasedDEFG eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }if currentdict 0 false AGMCORE_separateShading }if }if currentdict end exch }if pop dup/AGMCORE_ignoreshade known { begin /ColorSpace[/Separation(None)/DeviceGray{}]def currentdict end }if }def /shfill { AGMCORE_separateShadingDict dup/AGMCORE_ignoreshade known {pop} {AGMCORE_&sysshfill}ifelse }def /makepattern { exch dup/PatternType get 2 eq { clonedict begin /Shading Shading AGMCORE_separateShadingDict def Shading/AGMCORE_ignoreshade known currentdict end exch {pop<>}if exch AGMCORE_&sysmakepattern }{ exch AGMCORE_&usrmakepattern }ifelse }def }if }if AGMCORE_in_rip_sep{ /setcustomcolor { exch aload pop dup 7 1 roll inRip_spot_has_ink not { 4{4 index mul 4 1 roll} repeat /DeviceCMYK setcolorspace 6 -2 roll pop pop }{ //Adobe_AGM_Core begin /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf end [/Separation 4 -1 roll/DeviceCMYK {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul} ] setcolorspace }ifelse setcolor }ndf /setseparationgray { [/Separation(All)/DeviceGray{}]setcolorspace_opt 1 exch sub setcolor }ndf }{ /setseparationgray { AGMCORE_&setgray }ndf }ifelse /findcmykcustomcolor { 5 makereadonlyarray }ndf /setcustomcolor { exch aload pop pop 4{4 index mul 4 1 roll}repeat setcmykcolor pop }ndf /has_color /colorimage where{ AGMCORE_producing_seps{ pop true }{ systemdict eq }ifelse }{ false }ifelse def /map_index { 1 index mul exch getinterval{255 div}forall }bdf /map_indexed_devn { Lookup Names length 3 -1 roll cvi map_index }bdf /n_color_components { base_colorspace_type dup/DeviceGray eq{ pop 1 }{ /DeviceCMYK eq{ 4 }{ 3 }ifelse }ifelse }bdf level2{ /mo/moveto ldf /li/lineto ldf /cv/curveto ldf /knockout_unitsq { 1 setgray 0 0 1 1 rectfill }def level2/setcolorspace AGMCORE_key_known not and{ /AGMCORE_&&&setcolorspace/setcolorspace ldf /AGMCORE_ReplaceMappedColor { dup type dup/arraytype eq exch/packedarraytype eq or { /AGMCORE_SpotAliasAry2 where{ begin dup 0 get dup/Separation eq { pop dup length array copy dup dup 1 get current_spot_alias { dup map_alias { false set_spot_alias dup 1 exch setsepcolorspace true set_spot_alias begin /sep_colorspace_dict currentdict AGMCORE_gput pop pop pop [ /Separation Name CSA map_csa MappedCSA /sep_colorspace_proc load ] dup Name end }if }if map_reserved_ink_name 1 xpt }{ /DeviceN eq { dup length array copy dup dup 1 get[ exch{ current_spot_alias{ dup map_alias{ /Name get exch pop }if }if map_reserved_ink_name }forall ]1 xpt }if }ifelse end }if }if }def /setcolorspace { dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/Indexed eq { AGMCORE_distilling { /PhotoshopDuotoneList where { pop false }{ true }ifelse }{ true }ifelse { aload pop 3 -1 roll AGMCORE_ReplaceMappedColor 3 1 roll 4 array astore }if }{ AGMCORE_ReplaceMappedColor }ifelse }if DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if }def }if }{ /adj { currentstrokeadjust{ transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform }if }def /mo{ adj moveto }def /li{ adj lineto }def /cv{ 6 2 roll adj 6 2 roll adj 6 2 roll adj curveto }def /knockout_unitsq { 1 setgray 8 8 1[8 0 0 8 0 0]{}image }def /currentstrokeadjust{ /currentstrokeadjust AGMCORE_gget }def /setstrokeadjust{ /currentstrokeadjust exch AGMCORE_gput }def /setcolorspace { /currentcolorspace exch AGMCORE_gput }def /currentcolorspace { /currentcolorspace AGMCORE_gget }def /setcolor_devicecolor { base_colorspace_type dup/DeviceGray eq{ pop setgray }{ /DeviceCMYK eq{ setcmykcolor }{ setrgbcolor }ifelse }ifelse }def /setcolor { currentcolorspace 0 get dup/DeviceGray ne{ dup/DeviceCMYK ne{ dup/DeviceRGB ne{ dup/Separation eq{ pop currentcolorspace 3 gx currentcolorspace 2 get }{ dup/Indexed eq{ pop currentcolorspace 3 get dup type/stringtype eq{ currentcolorspace 1 get n_color_components 3 -1 roll map_index }{ exec }ifelse currentcolorspace 1 get }{ /AGMCORE_cur_err/AGMCORE_invalid_color_space def AGMCORE_invalid_color_space }ifelse }ifelse }if }if }if setcolor_devicecolor }def }ifelse /sop/setoverprint ldf /lw/setlinewidth ldf /lc/setlinecap ldf /lj/setlinejoin ldf /ml/setmiterlimit ldf /dsh/setdash ldf /sadj/setstrokeadjust ldf /gry/setgray ldf /rgb/setrgbcolor ldf /cmyk[ /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx /setcmykcolor load dup type/operatortype ne{/exec cvx}if ]cvx bdf level3 AGMCORE_host_sep not and{ /nzopmsc{ 6 dict begin /kk exch def /yy exch def /mm exch def /cc exch def /sum 0 def cc 0 ne{/sum sum 2#1000 or def cc}if mm 0 ne{/sum sum 2#0100 or def mm}if yy 0 ne{/sum sum 2#0010 or def yy}if kk 0 ne{/sum sum 2#0001 or def kk}if AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace sum 0 eq{0}if end setcolor }bdf }{ /nzopmsc/cmyk ldf }ifelse /sep/setsepcolor ldf /devn/setdevicencolor ldf /idx/setindexedcolor ldf /colr/setcolor ldf /csacrd/set_csa_crd ldf /sepcs/setsepcolorspace ldf /devncs/setdevicencolorspace ldf /idxcs/setindexedcolorspace ldf /cp/closepath ldf /clp/clp_npth ldf /eclp/eoclp_npth ldf /f/fill ldf /ef/eofill ldf /@/stroke ldf /nclp/npth_clp ldf /gset/graphic_setup ldf /gcln/graphic_cleanup ldf /ct/concat ldf /cf/currentfile ldf /fl/filter ldf /rs/readstring ldf /AGMCORE_def_ht currenthalftone def /clonedict Adobe_AGM_Utils begin/clonedict load end def /clonearray Adobe_AGM_Utils begin/clonearray load end def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall /getrampcolor { /indx exch def 0 1 NumComp 1 sub { dup Samples exch get dup type/stringtype eq{indx get}if exch Scaling exch get aload pop 3 1 roll mul add }for ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /sssetbackground{ aload pop ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /RadialShade { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /r2 xdf /c2y xdf /c2x xdf /r1 xdf /c1y xdf /c1x xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if c1x c2x eq { c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope c2y c1y sub c2x c1x sub div def /theta slope 1 atan def c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if }ifelse gsave clippath c1x c1y translate theta rotate -90 rotate {pathbbox}stopped {0 0 0 0}if /yMax xdf /xMax xdf /yMin xdf /xMin xdf grestore xMax xMin eq yMax yMin eq or { grestore end }{ /max{2 copy gt{pop}{exch pop}ifelse}bdf /min{2 copy lt{pop}{exch pop}ifelse}bdf rampdict begin 40 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave c1x c1y translate theta rotate -90 rotate /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def /c1y 0 def /c1x 0 def /c2x 0 def ext0 { 0 getrampcolor c2y r2 add r1 sub 0.0001 lt { c1x c1y r1 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2y r1 add r2 le { c1x c1y r1 0 360 arc fill } { c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r1 neg def /p1y c1y def /p2x r1 def /p2y c1y def p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y p1x SS1 div neg def /SS2 90 theta sub dup sin exch cos div def /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y p2x SS2 div neg def r1 r2 gt { /L1maxX p1x yMin p1y sub SS1 div add def /L2maxX p2x yMin p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if c1x c2x sub dup mul c1y c2y sub dup mul add 0.5 exp 0 dtransform dup mul exch dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop /hires xdf hires mul /numpix xdf /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if /xInc c2x c1x sub numsteps div def /yInc c2y c1y sub numsteps div def /rInc r2 r1 sub numsteps div def /cx c1x def /cy c1y def /radius r1 def np xInc 0 eq yInc 0 eq rInc 0 eq and and { 0 getrampcolor cx cy radius 0 360 arc stroke NumSamples 1 sub getrampcolor cx cy radius 72 hires div add 0 360 arc 0 setlinewidth stroke }{ 0 numsteps { dup subsampling{round cvi}if getrampcolor cx cy radius 0 360 arc /cx cx xInc add def /cy cy yInc add def /radius radius rInc add def cx cy radius 360 0 arcn eofill rampIndxInc add }repeat pop }ifelse ext1 { c2y r2 add r1 lt { c2x c2y r2 0 360 arc fill }{ c2y r1 add r2 sub 0.0001 le { c2x c2y r2 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r2 neg def /p1y c2y def /p2x r2 def /p2y c2y def p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y c2y p1x SS1 div sub def /SS2 90 theta sub dup sin exch cos div def /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y c2y p2x SS2 div sub def r1 r2 lt { /L1maxX p1x yMax p1y sub SS1 div add def /L2maxX p2x yMax p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if grestore grestore end end end }ifelse }bdf /GenStrips { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /y2 xdf /x2 xdf /y1 xdf /x1 xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if x1 x2 eq { y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope y2 y1 sub x2 x1 sub div def /theta slope 1 atan def x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if } ifelse gsave clippath x1 y1 translate theta rotate {pathbbox}stopped {0 0 0 0}if /yMax exch def /xMax exch def /yMin exch def /xMin exch def grestore xMax xMin eq yMax yMin eq or { grestore end }{ rampdict begin 20 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave x1 y1 translate theta rotate /xStart 0 def /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def /ySpan yMax yMin sub def /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def xStart 0 transform xEnd 0 transform 3 -1 roll sub dup mul 3 1 roll sub dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop mul /numpix xdf numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if ext0 { 0 getrampcolor xMin xStart lt { xMin yMin xMin neg ySpan rectfill }if }if /xInc xEnd xStart sub numsteps div def /x xStart def 0 numsteps { dup subsampling{round cvi}if getrampcolor x yMin xInc ySpan rectfill /x x xInc add def rampIndxInc add }repeat pop ext1{ xMax xEnd gt { xEnd yMin xMax xEnd sub ySpan rectfill }if }if grestore grestore end end end }ifelse }bdf }def /pt { end }def /dt{ }def /pgsv{ //Adobe_AGM_Core/AGMCORE_save save put }def /pgrs{ //Adobe_AGM_Core/AGMCORE_save get restore }def systemdict/findcolorrendering known{ /findcolorrendering systemdict/findcolorrendering get def }if systemdict/setcolorrendering known{ /setcolorrendering systemdict/setcolorrendering get def }if /test_cmyk_color_plate { gsave setcmykcolor currentgray 1 ne grestore }def /inRip_spot_has_ink { dup//Adobe_AGM_Core/AGMCORE_name xddf convert_spot_to_process not }def /map255_to_range { 1 index sub 3 -1 roll 255 div mul add }def /set_csa_crd { /sep_colorspace_dict null AGMCORE_gput begin CSA get_csa_by_name setcolorspace_opt set_crd end } def /map_csa { currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse {pop}{get_csa_by_name/MappedCSA xdf}ifelse }def /setsepcolor { /sep_colorspace_dict AGMCORE_gget begin dup/sep_tint exch AGMCORE_gput TintProc end }def /setdevicencolor { /devicen_colorspace_dict AGMCORE_gget begin Names length copy Names length 1 sub -1 0 { /devicen_tints AGMCORE_gget 3 1 roll xpt }for TintProc end }def /sep_colorspace_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin currentdict/Components known{ Components aload pop TintMethod/Lab eq{ 2{AGMCORE_tmp mul NComponents 1 roll}repeat LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll }{ TintMethod/Subtractive eq{ NComponents{ AGMCORE_tmp mul NComponents 1 roll }repeat }{ NComponents{ 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll }repeat }ifelse }ifelse }{ ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get aload pop }ifelse end }def /sep_colorspace_gray_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get end }def /sep_proc_name { dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{ pop[/DeviceGray] /sep_colorspace_gray_proc }{ /sep_colorspace_proc }ifelse }def /setsepcolorspace { current_spot_alias{ dup begin Name map_alias{ exch pop }if end }if dup/sep_colorspace_dict exch AGMCORE_gput begin CSA map_csa /AGMCORE_sep_special Name dup()eq exch(All)eq or store AGMCORE_avoid_L2_sep_space{ [/Indexed MappedCSA sep_proc_name 255 exch {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx ]setcolorspace_opt /TintProc{ 255 mul round cvi setcolor }bdf }{ MappedCSA 0 get/DeviceCMYK eq currentdict/Components known and AGMCORE_sep_special not and{ /TintProc[ Components aload pop Name findcmykcustomcolor /exch cvx/setcustomcolor cvx ]cvx bdf }{ AGMCORE_host_sep Name(All)eq and{ /TintProc{ 1 exch sub setseparationgray }bdf }{ AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and AGMCORE_host_sep or Name()eq and{ /TintProc[ MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{ cvx/setcmykcolor cvx }{ cvx/setgray cvx }ifelse ]cvx bdf }{ AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{ /TintProc[ /dup cvx MappedCSA sep_proc_name cvx exch 0 get/DeviceGray eq{ 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx }if /Name cvx/findcmykcustomcolor cvx/exch cvx AGMCORE_host_sep{ AGMCORE_is_cmyk_sep /Name cvx /AGMCORE_IsSeparationAProcessColor load/exec cvx /not cvx/and cvx }{ Name inRip_spot_has_ink not }ifelse [ /pop cvx 1 ]cvx/if cvx /setcustomcolor cvx ]cvx bdf }{ /TintProc{setcolor}bdf [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt }ifelse }ifelse }ifelse }ifelse }ifelse set_crd setsepcolor end }def /additive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 0 1 numarrays 1 sub { 1 exch add/index cvx c1/get cvx/mul cvx }for numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /subtractive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 1 0 1 numarrays 1 sub { 1 3 3 -1 roll add/index cvx c1/get cvx/sub cvx/mul cvx }for /sub cvx numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /exec_tint_transform { /TintProc[ /TintTransform cvx/setcolor cvx ]cvx bdf MappedCSA setcolorspace_opt }bdf /devn_makecustomcolor { 2 dict begin /names_index xdf /Names xdf 1 1 1 1 Names names_index get findcmykcustomcolor /devicen_tints AGMCORE_gget names_index get setcustomcolor Names length{pop}repeat end }bdf /setdevicencolorspace { dup/AliasedColorants known{false}{true}ifelse current_spot_alias and{ 7 dict begin /names_index 0 def dup/names_len exch/Names get length def /new_names names_len array def /new_LookupTables names_len array def /alias_cnt 0 def dup/Names get { dup map_alias{ exch pop dup/ColorLookup known{ dup begin new_LookupTables names_index ColorLookup put end }{ dup/Components known{ dup begin new_LookupTables names_index Components put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse new_names names_index 3 -1 roll/Name get put /alias_cnt alias_cnt 1 add def }{ /name xdf new_names names_index name put dup/LookupTables known{ dup begin new_LookupTables names_index LookupTables names_index get put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse /names_index names_index 1 add def }forall alias_cnt 0 gt{ /AliasedColorants true def /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def 0 1 names_len 1 sub{ /names_index xdf new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{ /AliasedColorants false def exit }{ new_LookupTables names_index get 0 get null eq{ dup/Names get names_index get/name xdf name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq or or or not{ /AliasedColorants false def exit }if }if }ifelse }for lut_entry_len 1 eq{ /AliasedColorants false def }if AliasedColorants{ dup begin /Names new_names def /LookupTables new_LookupTables def /AliasedColorants true def /NComponents lut_entry_len def /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def currentdict/TTTablesIdx known not{ /TTTablesIdx -1 def }if end }if }if end }if dup/devicen_colorspace_dict exch AGMCORE_gput begin currentdict/AliasedColorants known{ AliasedColorants }{ false }ifelse dup not{ CSA map_csa }if /TintTransform load type/nulltype eq or{ /TintTransform[ 0 1 Names length 1 sub { /TTTablesIdx TTTablesIdx 1 add def dup LookupTables exch get dup 0 get null eq { 1 index Names exch get dup(Cyan)eq { pop exch LookupTables length exch sub /index cvx 0 0 0 } { dup(Magenta)eq { pop exch LookupTables length exch sub /index cvx 0/exch cvx 0 0 }{ (Yellow)eq { exch LookupTables length exch sub /index cvx 0 0 3 -1/roll cvx 0 }{ exch LookupTables length exch sub /index cvx 0 0 0 4 -1/roll cvx }ifelse }ifelse }ifelse 5 -1/roll cvx/astore cvx }{ dup length 1 sub LookupTables length 4 -1 roll sub 1 add /index cvx/mul cvx/round cvx/cvi cvx/get cvx }ifelse Names length TTTablesIdx add 1 add 1/roll cvx }for Names length[/pop cvx]cvx/repeat cvx NComponents Names length TintMethod/Subtractive eq { subtractive_blend }{ additive_blend }ifelse ]cvx bdf }if AGMCORE_host_sep{ Names convert_to_process{ exec_tint_transform } { currentdict/AliasedColorants known{ AliasedColorants not }{ false }ifelse 5 dict begin /AvoidAliasedColorants xdf /painted? false def /names_index 0 def /names_len Names length def AvoidAliasedColorants{ /currentspotalias current_spot_alias def false set_spot_alias }if Names{ AGMCORE_is_cmyk_sep{ dup(Cyan)eq AGMCORE_cyan_plate and exch dup(Magenta)eq AGMCORE_magenta_plate and exch dup(Yellow)eq AGMCORE_yellow_plate and exch (Black)eq AGMCORE_black_plate and or or or{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def }if painted?{exit}if }{ 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def exit }if }ifelse /names_index names_index 1 add def }forall AvoidAliasedColorants{ currentspotalias set_spot_alias }if painted?{ /devicen_colorspace_dict AGMCORE_gget/names_index names_index put }{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx 0 0 0 0/setcmykcolor cvx ]cvx ddf }ifelse end }ifelse } { AGMCORE_in_rip_sep{ Names convert_to_process not }{ level3 }ifelse { [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt /TintProc level3 not AGMCORE_in_rip_sep and{ [ Names/length cvx[/pop cvx]cvx/repeat cvx ]cvx bdf }{ {setcolor}bdf }ifelse }{ exec_tint_transform }ifelse }ifelse set_crd /AliasedColorants false def end }def /setindexedcolorspace { dup/indexed_colorspace_dict exch AGMCORE_gput begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ currentdict devncs }{ 1 currentdict sepcs }ifelse AGMCORE_host_sep{ 4 dict begin /compCnt/Names where{pop Names length}{1}ifelse def /NewLookup HiVal 1 add string def 0 1 HiVal{ /tableIndex xdf Lookup dup type/stringtype eq{ compCnt tableIndex map_index }{ exec }ifelse /Names where{ pop setdevicencolor }{ setsepcolor }ifelse currentgray tableIndex exch 255 mul cvi NewLookup 3 1 roll put }for [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt end }{ level3 { currentdict/Names known{ [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt }{ [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt }ifelse }{ [/Indexed MappedCSA HiVal [ currentdict/Names known{ Lookup dup type/stringtype eq {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx} {/exec cvx}ifelse /TintTransform load/exec cvx }{ Lookup dup type/stringtype eq {/exch cvx/get cvx 255/div cvx} {/exec cvx}ifelse CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx }ifelse ]cvx ]setcolorspace_opt }ifelse }ifelse end set_crd } { CSA map_csa AGMCORE_host_sep level2 not and{ 0 0 0 0 setcmykcolor }{ [/Indexed MappedCSA level2 not has_color not and{ dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{ pop[/DeviceGray] }if HiVal GrayLookup }{ HiVal currentdict/RangeArray known{ { /indexed_colorspace_dict AGMCORE_gget begin Lookup exch dup HiVal gt{ pop HiVal }if NComponents mul NComponents getinterval{}forall NComponents 1 sub -1 0{ RangeArray exch 2 mul 2 getinterval aload pop map255_to_range NComponents 1 roll }for end }bind }{ Lookup }ifelse }ifelse ]setcolorspace_opt set_crd }ifelse }ifelse end }def /setindexedcolor { AGMCORE_host_sep{ /indexed_colorspace_dict AGMCORE_gget begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ map_indexed_devn devn } { Lookup 1 3 -1 roll map_index sep }ifelse end }{ Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll map_index MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse }ifelse end }{ level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{ /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin map_indexed_devn devn end } { setcolor }ifelse }ifelse }def /ignoreimagedata { currentoverprint not{ gsave dup clonedict begin 1 setgray /Decode[0 1]def /DataSourcedef /MultipleDataSources false def /BitsPerComponent 8 def currentdict end systemdict/image gx grestore }if consumeimagedata }def /add_res { dup/CSD eq{ pop //Adobe_AGM_Core begin /AGMCORE_CSD_cache load 3 1 roll put end }{ defineresource pop }ifelse }def /del_res { { aload pop exch dup/CSD eq{ pop {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall }{ exch {1 index undefineresource}forall pop }ifelse }forall }def /get_res { dup/CSD eq{ pop dup type dup/nametype eq exch/stringtype eq or{ AGMCORE_CSD_cache exch get }if }{ findresource }ifelse }def /get_csa_by_name { dup type dup/nametype eq exch/stringtype eq or{ /CSA get_res }if }def /paintproc_buf_init { /count get 0 0 put }def /paintproc_buf_next { dup/count get dup 0 get dup 3 1 roll 1 add 0 xpt get }def /cachepaintproc_compress { 5 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def /string_size 16000 def /readbuffer string_size string def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal /LZWFilter { exch dup length 0 eq{ pop }{ ppdict dup length 1 sub 3 -1 roll put }ifelse {string_size}{0}ifelse string }/LZWEncode filter def { ReadFilter readbuffer readstring exch LZWFilter exch writestring not{exit}if }loop LZWFilter closefile ppdict end }def /cachepaintproc { 2 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal { ReadFilter 16000 string readstring exch ppdict dup length 1 sub 3 -1 roll put not{exit}if }loop ppdict dup dup length 1 sub()put end }def /make_pattern { exch clonedict exch dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub matrix translate exch matrix concatmatrix 1 index begin BBox 0 get XStep div cvi XStep mul/xshift exch neg def BBox 1 get YStep div cvi YStep mul/yshift exch neg def BBox 0 get xshift add BBox 1 get yshift add BBox 2 get xshift add BBox 3 get yshift add 4 array astore /BBox exch def [xshift yshift/translate load null/exec load]dup 3/PaintProc load put cvx/PaintProc exch def end gsave 0 setgray makepattern grestore }def /set_pattern { dup/PatternType get 1 eq{ dup/PaintType get 1 eq{ currentoverprint sop[/DeviceGray]setcolorspace 0 setgray }if }if setpattern }def /setcolorspace_opt { dup currentcolorspace eq{pop}{setcolorspace}ifelse }def /updatecolorrendering { currentcolorrendering/RenderingIntent known{ currentcolorrendering/RenderingIntent get } { Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd AGMCORE_gget dup null eq } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd AGMCORE_gget dup null eq } { Intent/Saturation eq { /saturation_crd AGMCORE_gget dup null eq } { /perceptual_crd AGMCORE_gget dup null eq }ifelse }ifelse }ifelse { pop null } { /RenderingIntent known{null}{Intent}ifelse }ifelse }ifelse Intent ne{ Intent/ColorRendering{findresource}stopped { pop pop systemdict/findcolorrendering known { Intent findcolorrendering { /ColorRendering findresource true exch } { /ColorRendering findresource product(Xerox Phaser 5400)ne exch }ifelse dup Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd exch AGMCORE_gput } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd exch AGMCORE_gput } { Intent/Saturation eq { /saturation_crd exch AGMCORE_gput } { Intent/Perceptual eq { /perceptual_crd exch AGMCORE_gput } { pop }ifelse }ifelse }ifelse }ifelse 1 index{exch}{pop}ifelse } {false}ifelse } {true}ifelse { dup begin currentdict/TransformPQR known{ currentdict/TransformPQR get aload pop 3{{}eq 3 1 roll}repeat or or } {true}ifelse currentdict/MatrixPQR known{ currentdict/MatrixPQR get aload pop 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq and and and and and and and and } {true}ifelse end or { clonedict begin /TransformPQR[ {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind ]def /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def currentdict end }if setcolorrendering_opt }if }if }def /set_crd { AGMCORE_host_sep not level2 and{ currentdict/ColorRendering known{ ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if }{ currentdict/Intent known{ updatecolorrendering }if }ifelse currentcolorspace dup type/arraytype eq {0 get}if /DeviceRGB eq { currentdict/UCR known {/UCR}{/AGMCORE_currentucr}ifelse load setundercolorremoval currentdict/BG known {/BG}{/AGMCORE_currentbg}ifelse load setblackgeneration }if }if }def /set_ucrbg { dup null eq{pop/AGMCORE_currentbg load}{/Procedure get_res}ifelse setblackgeneration dup null eq{pop/AGMCORE_currentucr load}{/Procedure get_res}ifelse setundercolorremoval }def /setcolorrendering_opt { dup currentcolorrendering eq{ pop }{ product(HP Color LaserJet 2605)anchorsearch{ pop pop pop }{ pop clonedict begin /Intent Intent def currentdict end setcolorrendering }ifelse }ifelse }def /cpaint_gcomp { convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not { (%end_cpaint_gcomp)flushinput }if }def /cpaint_gsep { //Adobe_AGM_Core/AGMCORE_ConvertToProcess get { (%end_cpaint_gsep)flushinput }if }def /cpaint_gend {np}def /T1_path { currentfile token pop currentfile token pop mo { currentfile token pop dup type/stringtype eq {pop exit}if 0 exch rlineto currentfile token pop dup type/stringtype eq {pop exit}if 0 rlineto }loop }def /T1_gsave level3 {/clipsave} {/gsave}ifelse load def /T1_grestore level3 {/cliprestore} {/grestore}ifelse load def /set_spot_alias_ary { dup inherit_aliases //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf }def /set_spot_normalization_ary { dup inherit_aliases dup length /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if array //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf /AGMCORE_SpotAliasAry where{ pop AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval AGMCORE_SpotAliasAry length }{0}ifelse AGMCORE_SpotAliasAry2 3 1 roll exch putinterval true set_spot_alias }def /inherit_aliases { {dup/Name get map_alias{/CSD put}{pop}ifelse}forall }def /set_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias 3 -1 roll put }{ pop }ifelse }def /current_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias get }{ false }ifelse }def /map_alias { /AGMCORE_SpotAliasAry2 where{ begin /AGMCORE_name xdf false AGMCORE_SpotAliasAry2{ dup/Name get AGMCORE_name eq{ /CSD get/CSD get_res exch pop true exit }{ pop }ifelse }forall end }{ pop false }ifelse }bdf /spot_alias { true set_spot_alias /AGMCORE_&setcustomcolor AGMCORE_key_known not{ //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put }if /customcolor_tint 1 AGMCORE_gput //Adobe_AGM_Core begin /setcustomcolor { //Adobe_AGM_Core begin dup/customcolor_tint exch AGMCORE_gput 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not current_spot_alias and{1 index 4 get map_alias}{false}ifelse { false set_spot_alias /sep_colorspace_dict AGMCORE_gget null ne {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse 3 1 roll 2 index{ exch pop/sep_tint AGMCORE_gget exch }if mark 3 1 roll setsepcolorspace counttomark 0 ne{ setsepcolor }if pop not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if pop true set_spot_alias }{ AGMCORE_&setcustomcolor }ifelse end }bdf end }def /begin_feature { Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if }def /end_feature { 2 dict begin /spd/setpagedevice load def /setpagedevice{get_gstate spd set_gstate}def stopped{$error/newerror false put}if end count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if }def /set_negative { //Adobe_AGM_Core begin /AGMCORE_inverting exch def level2{ currentpagedevice/NegativePrint known AGMCORE_distilling not and{ currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{ true begin_feature true{ <>setpagedevice }end_feature }if /AGMCORE_inverting false def }if }if AGMCORE_inverting{ [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer AGMCORE_distilling{ erasepage }{ gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore }ifelse }if end }def /lw_save_restore_override{ /md where{ pop md begin initializepage /initializepage{}def /pmSVsetup{}def /endp{}def /pse{}def /psb{}def /orig_showpage where {pop} {/orig_showpage/showpage load def} ifelse /showpage{orig_showpage gR}def end }if }def /pscript_showpage_override{ /NTPSOct95 where { begin showpage save /showpage/restore load def /restore{exch pop}def end }if }def /driver_media_override { /md where{ pop md/initializepage known{ md/initializepage{}put }if md/rC known{ md/rC{4{pop}repeat}put }if }if /mysetup where{ /mysetup[1 0 0 1 0 0]put }if Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put level2 {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if }def /capture_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put }if }if }def /restore_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup known{ Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put Adobe_AGM_Core/save_mysetup undef }if }if }if }def /driver_check_media_override { /PrepsDict where {pop} { Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq { Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and }if { Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix }if }ifelse }def AGMCORE_err_strings begin /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def /AGMCORE_invalid_color_space(This job contains an invalid color space. )def end /set_def_ht {AGMCORE_def_ht sethalftone}def /set_def_flat {AGMCORE_Default_flatness setflat}def end systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_CoolType_Core 2.31 0 %%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved. %%Version: 2.31 0 10 dict begin /Adobe_CoolType_Passthru currentdict def /Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def Adobe_CoolType_Core_Defined {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def} if userdict/Adobe_CoolType_Core 70 dict dup begin put /Adobe_CoolType_Version 2.31 def /Level2? systemdict/languagelevel known dup {pop systemdict/languagelevel get 2 ge} if def Level2? not { /currentglobal false def /setglobal/pop load def /gcheck{pop false}bind def /currentpacking false def /setpacking/pop load def /SharedFontDirectory 0 dict def } if currentpacking true setpacking currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def end setglobal currentglobal true setglobal userdict/Adobe_CoolType_GVMFonts known not {userdict/Adobe_CoolType_GVMFonts 10 dict put} if setglobal currentglobal false setglobal userdict/Adobe_CoolType_LVMFonts known not {userdict/Adobe_CoolType_LVMFonts 10 dict put} if setglobal /ct_VMDictPut { dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse 3 1 roll put }bind def /ct_VMDictUndef { dup Adobe_CoolType_GVMFonts exch known {Adobe_CoolType_GVMFonts exch undef} { dup Adobe_CoolType_LVMFonts exch known {Adobe_CoolType_LVMFonts exch undef} {pop} ifelse }ifelse }bind def /ct_str1 1 string def /ct_xshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_yshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 exch rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_xyshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { {_ct_na _ct_i 1 add get}stopped {pop pop pop} { _ct_x _ct_y moveto rmoveto } ifelse } ifelse /_ct_i _ct_i 2 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def /ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def /xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def currentglobal true setglobal /ct_T3Defs { /BuildChar { 1 index/Encoding get exch get 1 index/BuildGlyph get exec }bind def /BuildGlyph { exch begin GlyphProcs exch get exec end }bind def }bind def setglobal /@_SaveStackLevels { Adobe_CoolType_Data begin /@vmState currentglobal def false setglobal @opStackCountByLevel @opStackLevel 2 copy known not { 2 copy 3 dict dup/args 7 index 5 add array put put get } { get dup/args get dup length 3 index lt { dup length 5 add array exch 1 index exch 0 exch putinterval 1 index exch/args exch put } {pop} ifelse } ifelse begin count 1 sub 1 index lt {pop count} if dup/argCount exch def dup 0 gt { args exch 0 exch getinterval astore pop } {pop} ifelse count /restCount exch def end /@opStackLevel @opStackLevel 1 add def countdictstack 1 sub @dictStackCountByLevel exch @dictStackLevel exch put /@dictStackLevel @dictStackLevel 1 add def @vmState setglobal end }bind def /@_RestoreStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def @opStackCountByLevel @opStackLevel get begin count restCount sub dup 0 gt {{pop}repeat} {pop} ifelse args 0 argCount getinterval{}forall end /@dictStackLevel @dictStackLevel 1 sub def @dictStackCountByLevel @dictStackLevel get end countdictstack exch sub dup 0 gt {{end}repeat} {pop} ifelse }bind def /@_PopStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def /@dictStackLevel @dictStackLevel 1 sub def end }bind def /@Raise { exch cvx exch errordict exch get exec stop }bind def /@ReRaise { cvx $error/errorname get errordict exch get exec stop }bind def /@Stopped { 0 @#Stopped }bind def /@#Stopped { @_SaveStackLevels stopped {@_RestoreStackLevels true} {@_PopStackLevels false} ifelse }bind def /@Arg { Adobe_CoolType_Data begin @opStackCountByLevel @opStackLevel 1 sub get begin args exch argCount 1 sub exch sub get end end }bind def currentglobal true setglobal /CTHasResourceForAllBug Level2? { 1 dict dup /@shouldNotDisappearDictValue true def Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put begin count @_SaveStackLevels {(*){pop stop}128 string/Category resourceforall} stopped pop @_RestoreStackLevels currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll { /@shouldNotDisappearDictValue known { { end currentdict 1 index eq {pop exit} if } loop } if } { pop end } ifelse } {false} ifelse def true setglobal /CTHasResourceStatusBug Level2? { mark {/steveamerige/Category resourcestatus} stopped {cleartomark true} {cleartomark currentglobal not} ifelse } {false} ifelse def setglobal /CTResourceStatus { mark 3 1 roll /Category findresource begin ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse end }bind def /CTWorkAroundBugs { Level2? { /cid_PreLoad/ProcSet resourcestatus { pop pop currentglobal mark { (*) { dup/CMap CTHasResourceStatusBug {CTResourceStatus} {resourcestatus} ifelse { pop dup 0 eq exch 1 eq or { dup/CMap findresource gcheck setglobal /CMap undefineresource } { pop CTHasResourceForAllBug {exit} {stop} ifelse } ifelse } {pop} ifelse } 128 string/CMap resourceforall } stopped {cleartomark} stopped pop setglobal } if } if }bind def /ds { Adobe_CoolType_Core begin CTWorkAroundBugs /mo/moveto load def /nf/newencodedfont load def /msf{makefont setfont}bind def /uf{dup undefinefont ct_VMDictUndef}bind def /ur/undefineresource load def /chp/charpath load def /awsh/awidthshow load def /wsh/widthshow load def /ash/ashow load def /@xshow/xshow load def /@yshow/yshow load def /@xyshow/xyshow load def /@cshow/cshow load def /sh/show load def /rp/repeat load def /.n/.notdef def end currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /AddWidths? false def /CC 0 def /charcode 2 string def /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def /InVMFontsByCMap 10 dict def /InVMDeepCopiedFonts 10 dict def end setglobal }bind def /dt { currentdict Adobe_CoolType_Core eq {end} if }bind def /ps { Adobe_CoolType_Core begin Adobe_CoolType_GVMFonts begin Adobe_CoolType_LVMFonts begin SharedFontDirectory begin }bind def /pt { end end end end }bind def /unload { systemdict/languagelevel known { systemdict/languagelevel get 2 ge { userdict/Adobe_CoolType_Core 2 copy known {undef} {pop pop} ifelse } if } if }bind def /ndf { 1 index where {pop pop pop} {dup xcheck{bind}if def} ifelse }def /findfont systemdict begin userdict begin /globaldict where{/globaldict get begin}if dup where pop exch get /globaldict where{pop end}if end end Adobe_CoolType_Core_Defined {/systemfindfont exch def} { /findfont 1 index def /systemfindfont exch def } ifelse /undefinefont {pop}ndf /copyfont { currentglobal 3 1 roll 1 index gcheck setglobal dup null eq{0}{dup length}ifelse 2 index length add 1 add dict begin exch { 1 index/FID eq {pop pop} {def} ifelse } forall dup null eq {pop} {{def}forall} ifelse currentdict end exch setglobal }bind def /copyarray { currentglobal exch dup gcheck setglobal dup length array copy exch setglobal }bind def /newencodedfont { currentglobal { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } { FontDirectory 3 index known {FontDirectory 3 index get/FontReferenced known} { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } ifelse } ifelse dup { 3 index findfont/FontReferenced get 2 index dup type/nametype eq {findfont} if ne {pop false} if } if dup { 1 index dup type/nametype eq {findfont} if dup/CharStrings known { /CharStrings get length 4 index findfont/CharStrings get length ne { pop false } if } {pop} ifelse } if { pop 1 index findfont /Encoding get exch 0 1 255 {2 copy get 3 index 3 1 roll put} for pop pop pop } { currentglobal 4 1 roll dup type/nametype eq {findfont} if dup gcheck setglobal dup dup maxlength 2 add dict begin exch { 1 index/FID ne 2 index/Encoding ne and {def} {pop pop} ifelse } forall /FontReferenced exch def /Encoding exch dup length array copy def /FontName 1 index dup type/stringtype eq{cvn}if def dup currentdict end definefont ct_VMDictPut setglobal } ifelse }bind def /SetSubstituteStrategy { $SubstituteFont begin dup type/dicttype ne {0 dict} if currentdict/$Strategies known { exch $Strategies exch 2 copy known { get 2 copy maxlength exch maxlength add dict begin {def}forall {def}forall currentdict dup/$Init known {dup/$Init get exec} if end /$Strategy exch def } {pop pop pop} ifelse } {pop pop} ifelse end }bind def /scff { $SubstituteFont begin dup type/stringtype eq {dup length exch} {null} ifelse /$sname exch def /$slen exch def /$inVMIndex $sname null eq { 1 index $str cvs dup length $slen sub $slen getinterval cvn } {$sname} ifelse def end {findfont} @Stopped { dup length 8 add string exch 1 index 0(BadFont:)putinterval 1 index exch 8 exch dup length string cvs putinterval cvn {findfont} @Stopped {pop/Courier findfont} if } if $SubstituteFont begin /$sname null def /$slen 0 def /$inVMIndex null def end }bind def /isWidthsOnlyFont { dup/WidthsOnly known {pop pop true} { dup/FDepVector known {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall} { dup/FDArray known {/FDArray get{isWidthsOnlyFont dup{exit}if}forall} {pop} ifelse } ifelse } ifelse }bind def /ct_StyleDicts 4 dict dup begin /Adobe-Japan1 4 dict dup begin Level2? { /Serif /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMin-W3} { /CIDFont/Category resourcestatus { pop pop /HeiseiMin-W3/CIDFont resourcestatus {pop pop/HeiseiMin-W3} {/Ryumin-Light} ifelse } {/Ryumin-Light} ifelse } ifelse def /SansSerif /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiKakuGo-W5} { /CIDFont/Category resourcestatus { pop pop /HeiseiKakuGo-W5/CIDFont resourcestatus {pop pop/HeiseiKakuGo-W5} {/GothicBBB-Medium} ifelse } {/GothicBBB-Medium} ifelse } ifelse def /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMaruGo-W4} { /CIDFont/Category resourcestatus { pop pop /HeiseiMaruGo-W4/CIDFont resourcestatus {pop pop/HeiseiMaruGo-W4} { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } ifelse /RoundSansSerif exch def /Default Serif def } { /Serif/Ryumin-Light def /SansSerif/GothicBBB-Medium def { (fonts/Jun101-Light-83pv-RKSJ-H)status }stopped {pop}{ {pop pop pop pop/Jun101-Light} {SansSerif} ifelse /RoundSansSerif exch def }ifelse /Default Serif def } ifelse end def /Adobe-Korea1 4 dict dup begin /Serif/HYSMyeongJo-Medium def /SansSerif/HYGoThic-Medium def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-GB1 4 dict dup begin /Serif/STSong-Light def /SansSerif/STHeiti-Regular def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-CNS1 4 dict dup begin /Serif/MKai-Medium def /SansSerif/MHei-Medium def /RoundSansSerif SansSerif def /Default Serif def end def end def Level2?{currentglobal true setglobal}if /ct_BoldRomanWidthProc { stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth 0 0 }bind def /ct_Type0WidthProc { dup stringwidth 0 0 moveto 2 index true charpath pathbbox 0 -1 7 index 2 div .88 setcachedevice2 pop 0 0 }bind def /ct_Type0WMode1WidthProc { dup stringwidth pop 2 div neg -0.88 2 copy moveto 0 -1 5 -1 roll true charpath pathbbox setcachedevice }bind def /cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_BoldBaseFont 11 dict begin /FontType 3 def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /Encoding cHexEncoding def /_setwidthProc/ct_BoldRomanWidthProc load def /_bcstr1 1 string def /BuildChar { exch begin _basefont setfont _bcstr1 dup 0 4 -1 roll put dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def systemdict/composefont known { /ct_DefineIdentity-H { /Identity-H/CMap resourcestatus { pop pop } { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse } def /ct_BoldBaseCIDFont 11 dict begin /CIDFontType 1 def /CIDFontName/ct_BoldBaseCIDFont def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /_setwidthProc/ct_Type0WidthProc load def /_bcstr2 2 string def /BuildGlyph { exch begin _basefont setfont _bcstr2 1 2 index 256 mod put _bcstr2 0 3 -1 roll 256 idiv put _bcstr2 dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def }if Level2?{setglobal}if /ct_CopyFont{ { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall }bind def /ct_Type0CopyFont { exch dup length dict begin ct_CopyFont [ exch FDepVector { dup/FontType get 0 eq { 1 index ct_Type0CopyFont /_ctType0 exch definefont } { /_ctBaseFont exch 2 index exec } ifelse exch } forall pop ] /FDepVector exch def currentdict end }bind def /ct_MakeBoldFont { dup/ct_SyntheticBold known { dup length 3 add dict begin ct_CopyFont /ct_StrokeWidth .03 0 FontMatrix idtransform pop def /ct_SyntheticBold true def currentdict end definefont } { dup dup length 3 add dict begin ct_CopyFont /PaintType 2 def /StrokeWidth .03 0 FontMatrix idtransform pop def /dummybold currentdict end definefont dup/FontType get dup 9 ge exch 11 le and { ct_BoldBaseCIDFont dup length 3 add dict copy begin dup/CIDSystemInfo get/CIDSystemInfo exch def ct_DefineIdentity-H /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefont exch def /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefonto exch def currentdict end /CIDFont defineresource } { ct_BoldBaseFont dup length 3 add dict copy begin /_basefont exch def /_basefonto exch def currentdict end definefont } ifelse } ifelse }bind def /ct_MakeBold{ 1 index 1 index findfont currentglobal 5 1 roll dup gcheck setglobal dup /FontType get 0 eq { dup/WMode known{dup/WMode get 1 eq}{false}ifelse version length 4 ge and {version 0 4 getinterval cvi 2015 ge} {true} ifelse {/ct_Type0WidthProc} {/ct_Type0WMode1WidthProc} ifelse ct_BoldBaseFont/_setwidthProc 3 -1 roll load put {ct_MakeBoldFont}ct_Type0CopyFont definefont } { dup/_fauxfont known not 1 index/SubstMaster known not and { ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put ct_MakeBoldFont } { 2 index 2 index eq {exch pop } { dup length dict begin ct_CopyFont currentdict end definefont } ifelse } ifelse } ifelse pop pop pop setglobal }bind def /?str1 256 string def /?set { $SubstituteFont begin /$substituteFound false def /$fontname 1 index def /$doSmartSub false def end dup findfont $SubstituteFont begin $substituteFound {false} { dup/FontName known { dup/FontName get $fontname eq 1 index/DistillerFauxFont known not and /currentdistillerparams where {pop false 2 index isWidthsOnlyFont not and} if } {false} ifelse } ifelse exch pop /$doSmartSub true def end { 5 1 roll pop pop pop pop findfont } { 1 index findfont dup/FontType get 3 eq { 6 1 roll pop pop pop pop pop false } {pop true} ifelse { $SubstituteFont begin pop pop /$styleArray 1 index def /$regOrdering 2 index def pop pop 0 1 $styleArray length 1 sub { $styleArray exch get ct_StyleDicts $regOrdering 2 copy known { get exch 2 copy known not {pop/Default} if get dup type/nametype eq { ?str1 cvs length dup 1 add exch ?str1 exch(-)putinterval exch dup length exch ?str1 exch 3 index exch putinterval add ?str1 exch 0 exch getinterval cvn } { pop pop/Unknown } ifelse } { pop pop pop pop/Unknown } ifelse } for end findfont }if } ifelse currentglobal false setglobal 3 1 roll null copyfont definefont pop setglobal }bind def setpacking userdict/$SubstituteFont 25 dict put 1 dict begin /SubstituteFont dup $error exch 2 copy known {get} {pop pop{pop/Courier}bind} ifelse def /currentdistillerparams where dup { pop pop currentdistillerparams/CannotEmbedFontPolicy 2 copy known {get/Error eq} {pop pop false} ifelse } if not { countdictstack array dictstack 0 get begin userdict begin $SubstituteFont begin /$str 128 string def /$fontpat 128 string def /$slen 0 def /$sname null def /$match false def /$fontname null def /$substituteFound false def /$inVMIndex null def /$doSmartSub true def /$depth 0 def /$fontname null def /$italicangle 26.5 def /$dstack null def /$Strategies 10 dict dup begin /$Type3Underprint { currentglobal exch false setglobal 11 dict begin /UseFont exch $WMode 0 ne { dup length dict copy dup/WMode $WMode put /UseFont exch definefont } if def /FontName $fontname dup type/stringtype eq{cvn}if def /FontType 3 def /FontMatrix[.001 0 0 .001 0 0]def /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def /FontBBox[0 0 0 0]def /CCInfo 7 dict dup begin /cc null def /x 0 def /y 0 def end def /BuildChar { exch begin CCInfo begin 1 string dup 0 3 index put exch pop /cc exch def UseFont 1000 scalefont setfont cc stringwidth/y exch def/x exch def x y setcharwidth $SubstituteFont/$Strategy get/$Underprint get exec 0 0 moveto cc show x y moveto end end }bind def currentdict end exch setglobal }bind def /$GetaTint 2 dict dup begin /$BuildFont { dup/WMode known {dup/WMode get} {0} ifelse /$WMode exch def $fontname exch dup/FontName known { dup/FontName get dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse exch Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index/FontName get known { pop Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index get null copyfont } {$deepcopyfont} ifelse exch 1 index exch/FontBasedOn exch put dup/FontName $fontname dup type/stringtype eq{cvn}if put definefont Adobe_CoolType_Data/InVMDeepCopiedFonts get begin dup/FontBasedOn get 1 index def end }bind def /$Underprint { gsave x abs y abs gt {/y 1000 def} {/x -1000 def 500 120 translate} ifelse Level2? { [/Separation(All)/DeviceCMYK{0 0 0 1 pop}] setcolorspace } {0 setgray} ifelse 10 setlinewidth x .8 mul [7 3] { y mul 8 div 120 sub x 10 div exch moveto 0 y 4 div neg rlineto dup 0 rlineto 0 y 4 div rlineto closepath gsave Level2? {.2 setcolor} {.8 setgray} ifelse fill grestore stroke } forall pop grestore }bind def end def /$Oblique 1 dict dup begin /$BuildFont { currentglobal exch dup gcheck setglobal null copyfont begin /FontBasedOn currentdict/FontName known { FontName dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse def /FontName $fontname dup type/stringtype eq{cvn}if def /currentdistillerparams where {pop} { /FontInfo currentdict/FontInfo known {FontInfo null copyfont} {2 dict} ifelse dup begin /ItalicAngle $italicangle def /FontMatrix FontMatrix [1 0 ItalicAngle dup sin exch cos div 1 0 0] matrix concatmatrix readonly end 4 2 roll def def } ifelse FontName currentdict end definefont exch setglobal }bind def end def /$None 1 dict dup begin /$BuildFont{}bind def end def end def /$Oblique SetSubstituteStrategy /$findfontByEnum { dup type/stringtype eq{cvn}if dup/$fontname exch def $sname null eq {$str cvs dup length $slen sub $slen getinterval} {pop $sname} ifelse $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval /$match false def $SubstituteFont/$dstack countdictstack array dictstack put mark { $fontpat 0 $slen 7 add getinterval {/$match exch def exit} $str filenameforall } stopped { cleardictstack currentdict true $SubstituteFont/$dstack get { exch { 1 index eq {pop false} {true} ifelse } {begin false} ifelse } forall pop } if cleartomark /$slen 0 def $match false ne {$match(fonts/)anchorsearch pop pop cvn} {/Courier} ifelse }bind def /$ROS 1 dict dup begin /Adobe 4 dict dup begin /Japan1 [/Ryumin-Light/HeiseiMin-W3 /GothicBBB-Medium/HeiseiKakuGo-W5 /HeiseiMaruGo-W4/Jun101-Light]def /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def /GB1 [/STSong-Light/STHeiti-Regular]def /CNS1 [/MKai-Medium/MHei-Medium]def end def end def /$cmapname null def /$deepcopyfont { dup/FontType get 0 eq { 1 dict dup/FontName/copied put copyfont begin /FDepVector FDepVector copyarray 0 1 2 index length 1 sub { 2 copy get $deepcopyfont dup/FontName/copied put /copied exch definefont 3 copy put pop pop } for def currentdict end } {$Strategies/$Type3Underprint get exec} ifelse }bind def /$buildfontname { dup/CIDFont findresource/CIDSystemInfo get begin Registry length Ordering length Supplement 8 string cvs 3 copy length 2 add add add string dup 5 1 roll dup 0 Registry putinterval dup 4 index(-)putinterval dup 4 index 1 add Ordering putinterval 4 2 roll add 1 add 2 copy(-)putinterval end 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch anchorsearch {pop pop 3 2 roll putinterval cvn/$cmapname exch def} {pop pop pop pop pop} ifelse length $str 1 index(-)putinterval 1 add $str 1 index $cmapname $fontpat cvs putinterval $cmapname length add $str exch 0 exch getinterval cvn }bind def /$findfontByROS { /$fontname exch def $ROS Registry 2 copy known { get Ordering 2 copy known {get} {pop pop[]} ifelse } {pop pop[]} ifelse false exch { dup/CIDFont resourcestatus { pop pop save 1 index/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get} {false} ifelse exch pop exch restore {pop} {exch pop true exit} ifelse } {pop} ifelse } forall {$str cvs $buildfontname} { false(*) { save exch dup/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get not} {true} ifelse exch/CIDSystemInfo get dup/Registry get Registry eq exch/Ordering get Ordering eq and and {exch restore exch pop true exit} {pop restore} ifelse } $str/CIDFont resourceforall {$buildfontname} {$fontname $findfontByEnum} ifelse } ifelse }bind def end end currentdict/$error known currentdict/languagelevel known and dup {pop $error/SubstituteFont known} if dup {$error} {Adobe_CoolType_Core} ifelse begin { /SubstituteFont /CMap/Category resourcestatus { pop pop { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and { $sname null eq {dup $str cvs dup length $slen sub $slen getinterval cvn} {$sname} ifelse Adobe_CoolType_Data/InVMFontsByCMap get 1 index 2 copy known { get false exch { pop currentglobal { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } { FontDirectory 1 index known {exch pop true exit} { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } ifelse } ifelse } forall } {pop pop false} ifelse { exch pop exch pop } { dup/CMap resourcestatus { pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS } { 128 string cvs dup(-)search { 3 1 roll search { 3 1 roll pop {dup cvi} stopped {pop pop pop pop pop $findfontByEnum} { 4 2 roll pop pop exch length exch 2 index length 2 index sub exch 1 sub -1 0 { $str cvs dup length 4 index 0 4 index 4 3 roll add getinterval exch 1 index exch 3 index exch putinterval dup/CMap resourcestatus { pop pop 4 1 roll pop pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS true exit } {pop} ifelse } for dup type/booleantype eq {pop} {pop pop pop $findfontByEnum} ifelse } ifelse } {pop pop pop $findfontByEnum} ifelse } {pop pop $findfontByEnum} ifelse } ifelse } ifelse } {//SubstituteFont exec} ifelse /$slen 0 def end } } { { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and {$findfontByEnum} {//SubstituteFont exec} ifelse end } } ifelse bind readonly def Adobe_CoolType_Core/scfindfont/systemfindfont load put } { /scfindfont { $SubstituteFont begin dup systemfindfont dup/FontName known {dup/FontName get dup 3 index ne} {/noname true} ifelse dup { /$origfontnamefound 2 index def /$origfontname 4 index def/$substituteFound true def } if exch pop { $slen 0 gt $sname null ne 3 index length $slen gt or and { pop dup $findfontByEnum findfont dup maxlength 1 add dict begin {1 index/FID eq{pop pop}{def}ifelse} forall currentdict end definefont dup/FontName known{dup/FontName get}{null}ifelse $origfontnamefound ne { $origfontname $str cvs print ( substitution revised, using )print dup/FontName known {dup/FontName get}{(unspecified font)} ifelse $str cvs print(.\n)print } if } {exch pop} ifelse } {exch pop} ifelse end }bind def } ifelse end end Adobe_CoolType_Core_Defined not { Adobe_CoolType_Core/findfont { $SubstituteFont begin $depth 0 eq { /$fontname 1 index dup type/stringtype ne{$str cvs}if def /$substituteFound false def } if /$depth $depth 1 add def end scfindfont $SubstituteFont begin /$depth $depth 1 sub def $substituteFound $depth 0 eq and { $inVMIndex null ne {dup $inVMIndex $AddInVMFont} if $doSmartSub { currentdict/$Strategy known {$Strategy/$BuildFont get exec} if } if } if end }bind put } if } if end /$AddInVMFont { exch/FontName 2 copy known { get 1 dict dup begin exch 1 index gcheck def end exch Adobe_CoolType_Data/InVMFontsByCMap get exch $DictAdd } {pop pop pop} ifelse }bind def /$DictAdd { 2 copy known not {2 copy 4 index length dict put} if Level2? not { 2 copy get dup maxlength exch length 4 index length add lt 2 copy get dup length 4 index length add exch maxlength 1 index lt { 2 mul dict begin 2 copy get{forall}def 2 copy currentdict put end } {pop} ifelse } if get begin {def} forall end }bind def end end %%EndResource currentglobal true setglobal %%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%Copyright: Copyright 1987-2006 Adobe Systems Incorporated. %%Version: 1.23 0 systemdict/languagelevel known dup {currentglobal false setglobal} {false} ifelse exch userdict/Adobe_CoolType_Utility 2 copy known {2 copy get dup maxlength 27 add dict copy} {27 dict} ifelse put Adobe_CoolType_Utility begin /@eexecStartData def /@recognizeCIDFont null def /ct_Level2? exch def /ct_Clone? 1183615869 internaldict dup /CCRun known not exch/eCCRun known not ct_Level2? and or def ct_Level2? {globaldict begin currentglobal true setglobal} if /ct_AddStdCIDMap ct_Level2? {{ mark Adobe_CoolType_Utility/@recognizeCIDFont currentdict put { ((Hex)57 StartData 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8 cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec } stopped { cleartomark Adobe_CoolType_Utility/@recognizeCIDFont get countdictstack dup array dictstack exch 1 sub -1 0 { 2 copy get 3 index eq {1 index length exch sub 1 sub{end}repeat exit} {pop} ifelse } for pop pop Adobe_CoolType_Utility/@eexecStartData get eexec } {cleartomark} ifelse }} {{ Adobe_CoolType_Utility/@eexecStartData get eexec }} ifelse bind def userdict/cid_extensions known dup{cid_extensions/cid_UpdateDB known and}if { cid_extensions begin /cid_GetCIDSystemInfo { 1 index type/stringtype eq {exch cvn exch} if cid_extensions begin dup load 2 index known { 2 copy cid_GetStatusInfo dup null ne { 1 index load 3 index get dup null eq {pop pop cid_UpdateDB} { exch 1 index/Created get eq {exch pop exch pop} {pop cid_UpdateDB} ifelse } ifelse } {pop cid_UpdateDB} ifelse } {cid_UpdateDB} ifelse end }bind def end } if ct_Level2? {end setglobal} if /ct_UseNativeCapability? systemdict/composefont known def /ct_MakeOCF 35 dict def /ct_Vars 25 dict def /ct_GlyphDirProcs 6 dict def /ct_BuildCharDict 15 dict dup begin /charcode 2 string def /dst_string 1500 string def /nullstring()def /usewidths? true def end def ct_Level2?{setglobal}{pop}ifelse ct_GlyphDirProcs begin /GetGlyphDirectory { systemdict/languagelevel known {pop/CIDFont findresource/GlyphDirectory get} { 1 index/CIDFont findresource/GlyphDirectory get dup type/dicttype eq { dup dup maxlength exch length sub 2 index lt { dup length 2 index add dict copy 2 index /CIDFont findresource/GlyphDirectory 2 index put } if } if exch pop exch pop } ifelse + }def /+ { systemdict/languagelevel known { currentglobal false setglobal 3 dict begin /vm exch def } {1 dict begin} ifelse /$ exch def systemdict/languagelevel known { vm setglobal /gvm currentglobal def $ gcheck setglobal } if ?{$ begin}if }def /?{$ type/dicttype eq}def /|{ userdict/Adobe_CoolType_Data known { Adobe_CoolType_Data/AddWidths? known { currentdict Adobe_CoolType_Data begin begin AddWidths? { Adobe_CoolType_Data/CC 3 index put ?{def}{$ 3 1 roll put}ifelse CC charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore currentfont/Widths get exch CC exch put } {?{def}{$ 3 1 roll put}ifelse} ifelse end end } {?{def}{$ 3 1 roll put}ifelse} ifelse } {?{def}{$ 3 1 roll put}ifelse} ifelse }def /! { ?{end}if systemdict/languagelevel known {gvm setglobal} if end }def /:{string currentfile exch readstring pop}executeonly def end ct_MakeOCF begin /ct_cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_CID_STR_SIZE 8000 def /ct_mkocfStr100 100 string def /ct_defaultFontMtx[.001 0 0 .001 0 0]def /ct_1000Mtx[1000 0 0 1000 0 0]def /ct_raise{exch cvx exch errordict exch get exec stop}bind def /ct_reraise {cvx $error/errorname get(Error: )print dup( )cvs print errordict exch get exec stop }bind def /ct_cvnsi { 1 index add 1 sub 1 exch 0 4 1 roll { 2 index exch get exch 8 bitshift add } for exch pop }bind def /ct_GetInterval { Adobe_CoolType_Utility/ct_BuildCharDict get begin /dst_index 0 def dup dst_string length gt {dup string/dst_string exch def} if 1 index ct_CID_STR_SIZE idiv /arrayIndex exch def 2 index arrayIndex get 2 index arrayIndex ct_CID_STR_SIZE mul sub { dup 3 index add 2 index length le { 2 index getinterval dst_string dst_index 2 index putinterval length dst_index add/dst_index exch def exit } { 1 index length 1 index sub dup 4 1 roll getinterval dst_string dst_index 2 index putinterval pop dup dst_index add/dst_index exch def sub /arrayIndex arrayIndex 1 add def 2 index dup length arrayIndex gt {arrayIndex get} { pop exit } ifelse 0 } ifelse } loop pop pop pop dst_string 0 dst_index getinterval end }bind def ct_Level2? { /ct_resourcestatus currentglobal mark true setglobal {/unknowninstancename/Category resourcestatus} stopped {cleartomark setglobal true} {cleartomark currentglobal not exch setglobal} ifelse { { mark 3 1 roll/Category findresource begin ct_Vars/vm currentglobal put ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse ct_Vars/vm get setglobal end } } {{resourcestatus}} ifelse bind def /CIDFont/Category ct_resourcestatus {pop pop} { currentglobal true setglobal /Generic/Category findresource dup length dict copy dup/InstanceType/dicttype put /CIDFont exch/Category defineresource pop setglobal } ifelse ct_UseNativeCapability? { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } if } { /ct_Category 2 dict begin /CIDFont 10 dict def /ProcSet 2 dict def currentdict end def /defineresource { ct_Category 1 index 2 copy known { get dup dup maxlength exch length eq { dup length 10 add dict copy ct_Category 2 index 2 index put } if 3 index 3 index put pop exch pop } {pop pop/defineresource/undefined ct_raise} ifelse }bind def /findresource { ct_Category 1 index 2 copy known { get 2 index 2 copy known {get 3 1 roll pop pop} {pop pop/findresource/undefinedresource ct_raise} ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /resourcestatus { ct_Category 1 index 2 copy known { get 2 index known exch pop exch pop { 0 -1 true } { false } ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /ct_resourcestatus/resourcestatus load def } ifelse /ct_CIDInit 2 dict begin /ct_cidfont_stream_init { { dup(Binary)eq { pop null currentfile ct_Level2? { {cid_BYTE_COUNT()/SubFileDecode filter} stopped {pop pop pop} if } if /readstring load exit } if dup(Hex)eq { pop currentfile ct_Level2? { {null exch/ASCIIHexDecode filter/readstring} stopped {pop exch pop(>)exch/readhexstring} if } {(>)exch/readhexstring} ifelse load exit } if /StartData/typecheck ct_raise } loop cid_BYTE_COUNT ct_CID_STR_SIZE le { 2 copy cid_BYTE_COUNT string exch exec pop 1 array dup 3 -1 roll 0 exch put } { cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi dup array exch 2 sub 0 exch 1 exch { 2 copy 5 index ct_CID_STR_SIZE string 6 index exec pop put pop } for 2 index cid_BYTE_COUNT ct_CID_STR_SIZE mod string 3 index exec pop 1 index exch 1 index length 1 sub exch put } ifelse cid_CIDFONT exch/GlyphData exch put 2 index null eq { pop pop pop } { pop/readstring load 1 string exch { 3 copy exec pop dup length 0 eq { pop pop pop pop pop true exit } if 4 index eq { pop pop pop pop false exit } if } loop pop } ifelse }bind def /StartData { mark { currentdict dup/FDArray get 0 get/FontMatrix get 0 get 0.001 eq { dup/CDevProc known not { /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known {get} { pop pop {pop pop pop pop pop 0 -1000 7 index 2 div 880} } ifelse def } if } { /CDevProc { pop pop pop pop pop 0 1 cid_temp/cid_CIDFONT get /FDArray get 0 get /FontMatrix get 0 get div 7 index 2 div 1 index 0.88 mul }def } ifelse /cid_temp 15 dict def cid_temp begin /cid_CIDFONT exch def 3 copy pop dup/cid_BYTE_COUNT exch def 0 gt { ct_cidfont_stream_init FDArray { /Private get dup/SubrMapOffset known { begin /Subrs SubrCount array def Subrs SubrMapOffset SubrCount SDBytes ct_Level2? { currentdict dup/SubrMapOffset undef dup/SubrCount undef /SDBytes undef } if end /cid_SD_BYTES exch def /cid_SUBR_COUNT exch def /cid_SUBR_MAP_OFFSET exch def /cid_SUBRS exch def cid_SUBR_COUNT 0 gt { GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi 0 1 cid_SUBR_COUNT 1 sub { exch 1 index 1 add cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add GlyphData exch cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi cid_SUBRS 4 2 roll GlyphData exch 4 index 1 index sub ct_GetInterval dup length string copy put } for pop } if } {pop} ifelse } forall } if cleartomark pop pop end CIDFontName currentdict/CIDFont defineresource pop end end } stopped {cleartomark/StartData ct_reraise} if }bind def currentdict end def /ct_saveCIDInit { /CIDInit/ProcSet ct_resourcestatus {true} {/CIDInitC/ProcSet ct_resourcestatus} ifelse { pop pop /CIDInit/ProcSet findresource ct_UseNativeCapability? {pop null} {/CIDInit ct_CIDInit/ProcSet defineresource pop} ifelse } {/CIDInit ct_CIDInit/ProcSet defineresource pop null} ifelse ct_Vars exch/ct_oldCIDInit exch put }bind def /ct_restoreCIDInit { ct_Vars/ct_oldCIDInit get dup null ne {/CIDInit exch/ProcSet defineresource pop} {pop} ifelse }bind def /ct_BuildCharSetUp { 1 index begin CIDFont begin Adobe_CoolType_Utility/ct_BuildCharDict get begin /ct_dfCharCode exch def /ct_dfDict exch def CIDFirstByte ct_dfCharCode add dup CIDCount ge {pop 0} if /cid exch def { GlyphDirectory cid 2 copy known {get} {pop pop nullstring} ifelse dup length FDBytes sub 0 gt { dup FDBytes 0 ne {0 FDBytes ct_cvnsi} {pop 0} ifelse /fdIndex exch def dup length FDBytes sub FDBytes exch getinterval /charstring exch def exit } { pop cid 0 eq {/charstring nullstring def exit} if /cid 0 def } ifelse } loop }def /ct_SetCacheDevice { 0 0 moveto dup stringwidth 3 -1 roll true charpath pathbbox 0 -1000 7 index 2 div 880 setcachedevice2 0 0 moveto }def /ct_CloneSetCacheProc { 1 eq { stringwidth pop -2 div -880 0 -1000 setcharwidth moveto } { usewidths? { currentfont/Widths get cid 2 copy known {get exch pop aload pop} {pop pop stringwidth} ifelse } {stringwidth} ifelse setcharwidth 0 0 moveto } ifelse }def /ct_Type3ShowCharString { ct_FDDict fdIndex 2 copy known {get} { currentglobal 3 1 roll 1 index gcheck setglobal ct_Type1FontTemplate dup maxlength dict copy begin FDArray fdIndex get dup/FontMatrix 2 copy known {get} {pop pop ct_defaultFontMtx} ifelse /FontMatrix exch dup length array copy def /Private get /Private exch def /Widths rootfont/Widths get def /CharStrings 1 dict dup/.notdef dup length string copy put def currentdict end /ct_Type1Font exch definefont dup 5 1 roll put setglobal } ifelse dup/CharStrings get 1 index/Encoding get ct_dfCharCode get charstring put rootfont/WMode 2 copy known {get} {pop pop 0} ifelse exch 1000 scalefont setfont ct_str1 0 ct_dfCharCode put ct_str1 exch ct_dfSetCacheProc ct_SyntheticBold { currentpoint ct_str1 show newpath moveto ct_str1 true charpath ct_StrokeWidth setlinewidth stroke } {ct_str1 show} ifelse }def /ct_Type4ShowCharString { ct_dfDict ct_dfCharCode charstring FDArray fdIndex get dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not {ct_1000Mtx matrix concatmatrix concat} {pop} ifelse /Private get Adobe_CoolType_Utility/ct_Level2? get not { ct_dfDict/Private 3 -1 roll {put} 1183615869 internaldict/superexec get exec } if 1183615869 internaldict Adobe_CoolType_Utility/ct_Level2? get {1 index} {3 index/Private get mark 6 1 roll} ifelse dup/RunInt known {/RunInt get} {pop/CCRun} ifelse get exec Adobe_CoolType_Utility/ct_Level2? get not {cleartomark} if }bind def /ct_BuildCharIncremental { { Adobe_CoolType_Utility/ct_MakeOCF get begin ct_BuildCharSetUp ct_ShowCharString } stopped {stop} if end end end end }bind def /BaseFontNameStr(BF00)def /ct_Type1FontTemplate 14 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /PaintType 0 def currentdict end def /BaseFontTemplate 11 dict begin /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /BuildChar/ct_BuildCharIncremental load def ct_Clone? { /FontType 3 def /ct_ShowCharString/ct_Type3ShowCharString load def /ct_dfSetCacheProc/ct_CloneSetCacheProc load def /ct_SyntheticBold false def /ct_StrokeWidth 1 def } { /FontType 4 def /Private 1 dict dup/lenIV 4 put def /CharStrings 1 dict dup/.notdefput def /PaintType 0 def /ct_ShowCharString/ct_Type4ShowCharString load def } ifelse /ct_str1 1 string def currentdict end def /BaseFontDictSize BaseFontTemplate length 5 add def /ct_matrixeq { true 0 1 5 { dup 4 index exch get exch 3 index exch get eq and dup not {exit} if } for exch pop exch pop }bind def /ct_makeocf { 15 dict begin exch/WMode exch def exch/FontName exch def /FontType 0 def /FMapType 2 def dup/FontMatrix known {dup/FontMatrix get/FontMatrix exch def} {/FontMatrix matrix def} ifelse /bfCount 1 index/CIDCount get 256 idiv 1 add dup 256 gt{pop 256}if def /Encoding 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for bfCount 1 255{2 copy bfCount put pop}for def /FDepVector bfCount dup 256 lt{1 add}if array def BaseFontTemplate BaseFontDictSize dict copy begin /CIDFont exch def CIDFont/FontBBox known {CIDFont/FontBBox get/FontBBox exch def} if CIDFont/CDevProc known {CIDFont/CDevProc get/CDevProc exch def} if currentdict end BaseFontNameStr 3(0)putinterval 0 1 bfCount dup 256 eq{1 sub}if { FDepVector exch 2 index BaseFontDictSize dict copy begin dup/CIDFirstByte exch 256 mul def FontType 3 eq {/ct_FDDict 2 dict def} if currentdict end 1 index 16 BaseFontNameStr 2 2 getinterval cvrs pop BaseFontNameStr exch definefont put } for ct_Clone? {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def} if FontName currentdict end definefont ct_Clone? { gsave dup 1000 scalefont setfont ct_BuildCharDict begin /usewidths? false def currentfont/Widths get begin exch/CIDFont get/GlyphDirectory get { pop dup charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore def } forall end /usewidths? true def end grestore } {exch pop} ifelse }bind def currentglobal true setglobal /ct_ComposeFont { ct_UseNativeCapability? { 2 index/CMap ct_resourcestatus {pop pop exch pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 3 index def /CMapVersion 1.000 def /CMapType 1 def exch/WMode exch def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search { dup length string copy exch pop exch pop } {pop(Identity)} ifelse } {pop (Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { 3 2 roll pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def setglobal /ct_MakeIdentity { ct_UseNativeCapability? { 1 index/CMap ct_resourcestatus {pop pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 2 index def /CMapVersion 1.000 def /CMapType 1 def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search {dup length string copy exch pop exch pop} {pop(Identity)} ifelse } {pop(Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { exch pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def currentdict readonly pop end end %%EndResource setglobal %%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0 %%Copyright: Copyright 1987-2004 Adobe Systems Incorporated. %%Version: 1.0 0 userdict/ct_T42Dict 15 dict put ct_T42Dict begin /Is2015? { version cvi 2015 ge }bind def /AllocGlyphStorage { Is2015? { pop } { {string}forall }ifelse }bind def /Type42DictBegin { 25 dict begin /FontName exch def /CharStrings 256 dict begin /.notdef 0 def currentdict end def /Encoding exch def /PaintType 0 def /FontType 42 def /FontMatrix[1 0 0 1 0 0]def 4 array astore cvx/FontBBox exch def /sfnts }bind def /Type42DictEnd { currentdict dup/FontName get exch definefont end ct_T42Dict exch dup/FontName get exch put }bind def /RD{string currentfile exch readstring pop}executeonly def /PrepFor2015 { Is2015? { /GlyphDirectory 16 dict def sfnts 0 get dup 2 index (glyx) putinterval 2 index (locx) putinterval pop pop } { pop pop }ifelse }bind def /AddT42Char { Is2015? { /GlyphDirectory get begin def end pop pop } { /sfnts get 4 index get 3 index 2 index putinterval pop pop pop pop }ifelse }bind def /T0AddT42Mtx2 { /CIDFont findresource/Metrics2 get begin def end }bind def end %%EndResource currentglobal true setglobal %%BeginFile: MMFauxFont.prc %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. %%All Rights Reserved. userdict /ct_EuroDict 10 dict put ct_EuroDict begin /ct_CopyFont { { 1 index /FID ne {def} {pop pop} ifelse} forall } def /ct_GetGlyphOutline { gsave initmatrix newpath exch findfont dup length 1 add dict begin ct_CopyFont /Encoding Encoding dup length array copy dup 4 -1 roll 0 exch put def currentdict end /ct_EuroFont exch definefont 1000 scalefont setfont 0 0 moveto [ <00> stringwidth <00> false charpath pathbbox [ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall grestore counttomark 8 add } def /ct_MakeGlyphProc { ] cvx /ct_PSBuildGlyph cvx ] cvx } def /ct_PSBuildGlyph { gsave 8 -1 roll pop 7 1 roll 6 -2 roll ct_FontMatrix transform 6 2 roll 4 -2 roll ct_FontMatrix transform 4 2 roll ct_FontMatrix transform currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse dup 9 1 roll { currentdict /StrokeWidth 2 copy known { get 2 div 0 ct_FontMatrix dtransform pop 5 1 roll 4 -1 roll 4 index sub 4 1 roll 3 -1 roll 4 index sub 3 1 roll exch 4 index add exch 4 index add 5 -1 roll pop } { pop pop } ifelse } if setcachedevice ct_FontMatrix concat ct_PSPathOps begin exec end { currentdict /StrokeWidth 2 copy known { get } { pop pop 0 } ifelse setlinewidth stroke } { fill } ifelse grestore } def /ct_PSPathOps 4 dict dup begin /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def end def /ct_matrix1000 [1000 0 0 1000 0 0] def /ct_AddGlyphProc { 2 index findfont dup length 4 add dict begin ct_CopyFont /CharStrings CharStrings dup length 1 add dict copy begin 3 1 roll def currentdict end def /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def /ct_PSBuildGlyph /ct_PSBuildGlyph load def /ct_PSPathOps /ct_PSPathOps load def currentdict end definefont pop } def systemdict /languagelevel known { /ct_AddGlyphToPrinterFont { 2 copy ct_GetGlyphOutline 3 add -1 roll restore ct_MakeGlyphProc ct_AddGlyphProc } def } { /ct_AddGlyphToPrinterFont { pop pop restore Adobe_CTFauxDict /$$$FONTNAME get /Euro Adobe_CTFauxDict /$$$SUBSTITUTEBASE get ct_EuroDict exch get ct_AddGlyphProc } def } ifelse /AdobeSansMM { 556 0 24 -19 541 703 { 541 628 m 510 669 442 703 354 703 c 201 703 117 607 101 444 c 50 444 l 25 372 l 97 372 l 97 301 l 49 301 l 24 229 l 103 229 l 124 67 209 -19 350 -19 c 435 -19 501 25 509 32 c 509 131 l 492 105 417 60 343 60 c 267 60 204 127 197 229 c 406 229 l 430 301 l 191 301 l 191 372 l 455 372 l 479 444 l 194 444 l 201 531 245 624 348 624 c 433 624 484 583 509 534 c cp 556 0 m } ct_PSBuildGlyph } def /AdobeSerifMM { 500 0 10 -12 484 692 { 347 298 m 171 298 l 170 310 170 322 170 335 c 170 362 l 362 362 l 374 403 l 172 403 l 184 580 244 642 308 642 c 380 642 434 574 457 457 c 481 462 l 474 691 l 449 691 l 433 670 429 657 410 657 c 394 657 360 692 299 692 c 204 692 94 604 73 403 c 22 403 l 10 362 l 70 362 l 69 352 69 341 69 330 c 69 319 69 308 70 298 c 22 298 l 10 257 l 73 257 l 97 57 216 -12 295 -12 c 364 -12 427 25 484 123 c 458 142 l 425 101 384 37 316 37 c 256 37 189 84 173 257 c 335 257 l cp 500 0 m } ct_PSBuildGlyph } def end %%EndFile setglobal Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end %%BeginResource: procset Adobe_AGM_Image 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Image 71 dict dup begin put /Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def /nd{ null def }bind def /AGMIMG_&image nd /AGMIMG_&colorimage nd /AGMIMG_&imagemask nd /AGMIMG_mbuf()def /AGMIMG_ybuf()def /AGMIMG_kbuf()def /AGMIMG_c 0 def /AGMIMG_m 0 def /AGMIMG_y 0 def /AGMIMG_k 0 def /AGMIMG_tmp nd /AGMIMG_imagestring0 nd /AGMIMG_imagestring1 nd /AGMIMG_imagestring2 nd /AGMIMG_imagestring3 nd /AGMIMG_imagestring4 nd /AGMIMG_imagestring5 nd /AGMIMG_cnt nd /AGMIMG_fsave nd /AGMIMG_colorAry nd /AGMIMG_override nd /AGMIMG_name nd /AGMIMG_maskSource nd /AGMIMG_flushfilters nd /invert_image_samples nd /knockout_image_samples nd /img nd /sepimg nd /devnimg nd /idximg nd /ds { Adobe_AGM_Core begin Adobe_AGM_Image begin /AGMIMG_&image systemdict/image get def /AGMIMG_&imagemask systemdict/imagemask get def /colorimage where{ pop /AGMIMG_&colorimage/colorimage ldf }if end end }def /ps { Adobe_AGM_Image begin /AGMIMG_ccimage_exists{/customcolorimage where { pop /Adobe_AGM_OnHost_Seps where { pop false }{ /Adobe_AGM_InRip_Seps where { pop false }{ true }ifelse }ifelse }{ false }ifelse }bdf level2{ /invert_image_samples { Adobe_AGM_Image/AGMIMG_tmp Decode length ddf /Decode[Decode 1 get Decode 0 get]def }def /knockout_image_samples { Operator/imagemask ne{ /Decode[1 1]def }if }def }{ /invert_image_samples { {1 exch sub}currenttransfer addprocs settransfer }def /knockout_image_samples { {pop 1}currenttransfer addprocs settransfer }def }ifelse /img/imageormask ldf /sepimg/sep_imageormask ldf /devnimg/devn_imageormask ldf /idximg/indexed_imageormask ldf /_ctype 7 def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall }def /pt { end }def /dt { }def /AGMIMG_flushfilters { dup type/arraytype ne {1 array astore}if dup 0 get currentfile ne {dup 0 get flushfile}if { dup type/filetype eq { dup status 1 index currentfile ne and {closefile} {pop} ifelse }{pop}ifelse }forall }def /AGMIMG_init_common { currentdict/T known{/ImageType/T ldf currentdict/T undef}if currentdict/W known{/Width/W ldf currentdict/W undef}if currentdict/H known{/Height/H ldf currentdict/H undef}if currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if currentdict/D known{/Decode/D ldf currentdict/D undef}if currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if currentdict/O known{ /Operator/O load 1 eq{ /imagemask }{ /O load 2 eq{ /image }{ /colorimage }ifelse }ifelse def currentdict/O undef }if currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if currentdict/I known{/Interpolate/I ldf currentdict/I undef}if currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if /DataSource load xcheck not{ DataSource type/arraytype eq{ DataSource 0 get type/filetype eq{ /_Filters DataSource def currentdict/MultipleDataSources known not{ /DataSource DataSource dup length 1 sub get def }if }if }if currentdict/MultipleDataSources known not{ /MultipleDataSources DataSource type/arraytype eq{ DataSource length 1 gt } {false}ifelse def }if }if /NComponents Decode length 2 div def currentdict/SkipImageProc known not{/SkipImageProc{false}def}if }bdf /imageormask_sys { begin AGMIMG_init_common save mark level2{ currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load AGMIMG_&imagemask }{ BitsPerComponent ImageMatrix/DataSource load AGMIMG_&image }ifelse }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if cleartomark restore end }def /overprint_plate { currentoverprint{ 0 get dup type/nametype eq{ dup/DeviceGray eq{ pop AGMCORE_black_plate not }{ /DeviceCMYK eq{ AGMCORE_is_cmyk_sep not }if }ifelse }{ false exch { AGMOHS_sepink eq or }forall not }ifelse }{ pop false }ifelse }def /process_mask { level3{ dup begin /ImageType 1 def end 4 dict begin /DataDict exch def /ImageType 3 def /InterleaveType 3 def /MaskDict 9 dict begin /ImageType 1 def /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def /ImageMatrix[Width 0 0 Height neg 0 Height]def /NComponents 1 def /BitsPerComponent 1 def /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def currentdict end def currentdict end }if }def /use_mask { dup/Mask known {dup/Mask get}{false}ifelse }def /imageormask { begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata } { save mark level2 AGMCORE_host_sep not and{ currentdict Operator/imagemask eq DeviceN_PS2 not and{ imagemask }{ AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{ [/Separation/Black/DeviceGray{}]setcolorspace /Decode[Decode 1 get Decode 0 get]def }if use_mask{ process_mask image }{ DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and { Names convert_to_process not{ 2 dict begin /imageDict xdf /names_index 0 def gsave imageDict write_image_file{ Names{ dup(None)ne{ [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace Operator imageDict read_image_file names_index 0 eq{true setoverprint}if /names_index names_index 1 add def }{ pop }ifelse }forall close_image_file }if grestore end }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load /Adobe_AGM_OnHost_Seps where{ pop imagemask }{ currentgray 1 ne{ currentdict imageormask_sys }{ currentoverprint not{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }ifelse }{ BitsPerComponent ImageMatrix MultipleDataSources{ 0 1 NComponents 1 sub{ DataSource exch get }for }{ /DataSource load }ifelse Operator/colorimage eq{ AGMCORE_host_sep{ MultipleDataSources level2 or NComponents 4 eq and{ AGMCORE_is_cmyk_sep{ MultipleDataSources{ /DataSource DataSource 0 get xcheck { [ DataSource 0 get/exec cvx DataSource 1 get/exec cvx DataSource 2 get/exec cvx DataSource 3 get/exec cvx /AGMCORE_get_ink_data cvx ]cvx }{ DataSource aload pop AGMCORE_get_ink_data }ifelse def }{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul /DataSource load filter_cmyk 0()/SubFileDecode filter def }ifelse /Decode[Decode 0 get Decode 1 get]def /MultipleDataSources false def /NComponents 1 def /Operator/image def invert_image_samples 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }{ MultipleDataSources NComponents AGMIMG_&colorimage }ifelse }{ true NComponents colorimage }ifelse }{ Operator/image eq{ AGMCORE_host_sep{ /DoImage true def currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse { AGMCORE_black_plate not Operator/imagemask ne and{ /DoImage false def currentdict ignoreimagedata }if }if 1 AGMCORE_&setgray DoImage {currentdict imageormask_sys}if }{ use_mask{ process_mask image }{ image }ifelse }ifelse }{ Operator/knockout eq{ pop pop pop pop pop currentcolorspace overprint_plate not{ knockout_unitsq }if }if }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /sep_imageormask { /sep_colorspace_dict AGMCORE_gget begin CSA map_csa begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_avoid_L2_sep_space{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def }if AGMIMG_ccimage_exists MappedCSA 0 get/DeviceCMYK eq and currentdict/Components known and Name()ne and Name(All)ne and Operator/image eq and AGMCORE_producing_seps not and level2 not and { Width Height BitsPerComponent ImageMatrix [ /DataSource load/exec cvx { 0 1 2 index length 1 sub{ 1 index exch 2 copy get 255 xor put }for }/exec cvx ]cvx bind MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Name findcmykcustomcolor customcolorimage }{ AGMCORE_producing_seps not{ level2{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{ [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if currentdict imageormask }{ currentdict Operator/imagemask eq{ imageormask }{ sep_imageormask_lev1 }ifelse }ifelse }{ AGMCORE_host_sep{ Operator/knockout eq{ currentdict/ImageMatrix get concat knockout_unitsq }{ currentgray 1 ne{ AGMCORE_is_cmyk_sep Name(All)ne and{ level2{ Name AGMCORE_IsSeparationAProcessColor { Operator/imagemask eq{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor }if }{ invert_image_samples }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ [/Separation Name[/DeviceGray] { sep_colorspace_proc AGMCORE_get_ink_data 1 exch sub }bind ]AGMCORE_&setcolorspace /sep_tint AGMCORE_gget AGMCORE_&setcolor }if }ifelse currentdict imageormask_sys }{ currentdict Operator/imagemask eq{ imageormask_sys }{ sep_image_lev1_sep }ifelse }ifelse }{ Operator/imagemask ne{ invert_image_samples }if currentdict imageormask_sys }ifelse }{ currentoverprint not Name(All)eq or Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ currentcolorspace 0 get/Separation ne{ [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if }if currentoverprint MappedCSA 0 get/DeviceCMYK eq and Name AGMCORE_IsSeparationAProcessColor not and //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse Name(All)ne and{ imageormask_l2_overprint }{ currentdict imageormask }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end }def /colorSpaceElemCnt { mark currentcolor counttomark dup 2 add 1 roll cleartomark }bdf /devn_sep_datasource { 1 dict begin /dataSource xdf [ 0 1 dataSource length 1 sub{ dup currentdict/dataSource get/exch cvx/get cvx/exec cvx /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx }for ]cvx bind end }bdf /devn_alt_datasource { 11 dict begin /convProc xdf /origcolorSpaceElemCnt xdf /origMultipleDataSources xdf /origBitsPerComponent xdf /origDecode xdf /origDataSource xdf /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def /DataSource origMultipleDataSources { [ BitsPerComponent 8 idiv origDecode length 2 idiv mul string 0 1 origDecode length 2 idiv 1 sub { dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch origDataSource exch get 0()/SubFileDecode filter BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx }for ]bind cvx }{origDataSource}ifelse 0()/SubFileDecode filter def [ origcolorSpaceElemCnt string 0 2 origDecode length 2 sub { dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx }for /convProc load/exec cvx origcolorSpaceElemCnt 1 sub -1 0 { /dup cvx 2/add cvx/index cvx 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx }for ]bind cvx 0()/SubFileDecode filter end }bdf /devn_imageormask { /devicen_colorspace_dict AGMCORE_gget begin CSA map_csa 2 dict begin dup /srcDataStrs[3 -1 roll begin AGMIMG_init_common currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi { dup 65535 gt{1 add 2 div cvi}{exit}ifelse }loop string }repeat end]def /dstDataStr srcDataStrs 0 get length string def begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_producing_seps not{ level3 not{ Operator/imagemask ne{ /DataSource[[ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def /MultipleDataSources true def /Decode colorSpaceElemCnt[exch{0 1}repeat]def }if }if currentdict imageormask }{ AGMCORE_host_sep{ Names convert_to_process{ CSA get_csa_by_name 0 get/DeviceCMYK eq{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource filter_cmyk 0()/SubFileDecode filter def /MultipleDataSources false def /Decode[1 0]def /DeviceGray setcolorspace currentdict imageormask_sys }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate{ /DataSource DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource /MultipleDataSources false def /Decode colorSpaceElemCnt[exch{0 1}repeat]def currentdict imageormask_sys }{ gsave knockout_unitsq grestore currentdict consumeimagedata }ifelse }ifelse } { /devicen_colorspace_dict AGMCORE_gget/names_index known{ Operator/imagemask ne{ MultipleDataSources{ /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def /MultipleDataSources false def }{ /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def }ifelse invert_image_samples }if currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ currentdict imageormask }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end end }def /imageormask_l2_overprint { currentdict currentcmykcolor add add add 0 eq{ currentdict consumeimagedata }{ level3{ currentcmykcolor /AGMIMG_k xdf /AGMIMG_y xdf /AGMIMG_m xdf /AGMIMG_c xdf Operator/imagemask eq{ [/DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ]/DeviceCMYK{}]setcolorspace AGMIMG_c 0 ne{AGMIMG_c}if AGMIMG_m 0 ne{AGMIMG_m}if AGMIMG_y 0 ne{AGMIMG_y}if AGMIMG_k 0 ne{AGMIMG_k}if setcolor }{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def [/Indexed [ /DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ] /DeviceCMYK{ AGMIMG_k 0 eq{0}if AGMIMG_y 0 eq{0 exch}if AGMIMG_m 0 eq{0 3 1 roll}if AGMIMG_c 0 eq{0 4 1 roll}if } ] 255 { 255 div mark exch dup dup dup AGMIMG_k 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_y 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_m 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_c 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop counttomark 1 roll }{ pop }ifelse counttomark 1 add -1 roll pop } ]setcolorspace }ifelse imageormask_sys }{ write_image_file{ currentcmykcolor 0 ne{ [/Separation/Black/DeviceGray{}]setcolorspace gsave /Black [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Yellow/DeviceGray{}]setcolorspace gsave /Yellow [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Magenta/DeviceGray{}]setcolorspace gsave /Magenta [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Cyan/DeviceGray{}]setcolorspace gsave /Cyan [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if close_image_file }{ imageormask }ifelse }ifelse }ifelse }def /indexed_imageormask { begin AGMIMG_init_common save mark currentdict AGMCORE_host_sep{ Operator/knockout eq{ /indexed_colorspace_dict AGMCORE_gget dup/CSA known{ /CSA get get_csa_by_name }{ /Names get }ifelse overprint_plate not{ knockout_unitsq }if }{ Indexed_DeviceN{ /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{ indexed_image_lev2_sep }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }{ AGMCORE_is_cmyk_sep{ Operator/imagemask eq{ imageormask_sys }{ level2{ indexed_image_lev2_sep }{ indexed_image_lev1_sep }ifelse }ifelse }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ level2{ Indexed_DeviceN{ /indexed_colorspace_dict AGMCORE_gget begin }{ /indexed_colorspace_dict AGMCORE_gget dup null ne { begin currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and AGMCORE_in_rip_sep and{ [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup] setcolorspace }if end } {pop}ifelse }ifelse imageormask Indexed_DeviceN{ end }if }{ Operator/imagemask eq{ imageormask }{ indexed_imageormask_lev1 }ifelse }ifelse }ifelse cleartomark restore currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /indexed_image_lev2_sep { /indexed_colorspace_dict AGMCORE_gget begin begin Indexed_DeviceN not{ currentcolorspace dup 1/DeviceGray put dup 3 currentcolorspace 2 get 1 add string 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub { dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put }for put setcolorspace }if currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse end end }def /OPIimage { dup type/dicttype ne{ 10 dict begin /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /ImageType 1 def /Decode[0 1 def] currentdict end }if dup begin /NComponents 1 cdndf /MultipleDataSources false cdndf /SkipImageProc{false}cdndf /Decode[ 0 currentcolorspace 0 get/Indexed eq{ 2 BitsPerComponent exp 1 sub }{ 1 }ifelse ]cdndf /Operator/image cdndf end /sep_colorspace_dict AGMCORE_gget null eq{ imageormask }{ gsave dup begin invert_image_samples end sep_imageormask grestore }ifelse }def /cachemask_level2 { 3 dict begin /LZWEncode filter/WriteFilter xdf /readBuffer 256 string def /ReadFilter currentfile 0(%EndMask)/SubFileDecode filter /ASCII85Decode filter /RunLengthDecode filter def { ReadFilter readBuffer readstring exch WriteFilter exch writestring not{exit}if }loop WriteFilter closefile end }def /spot_alias { /mapto_sep_imageormask { dup type/dicttype ne{ 12 dict begin /ImageType 1 def /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /MultipleDataSources false def }{ begin }ifelse /Decode[/customcolor_tint AGMCORE_gget 0]def /Operator/image def /SkipImageProc{false}def currentdict end sep_imageormask }bdf /customcolorimage { Adobe_AGM_Image/AGMIMG_colorAry xddf /customcolor_tint AGMCORE_gget << /Name AGMIMG_colorAry 4 get /CSA[/DeviceCMYK] /TintMethod/Subtractive /TintProc null /MappedCSA null /NComponents 4 /Components[AGMIMG_colorAry aload pop pop] >> setsepcolorspace mapto_sep_imageormask }ndf Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put /customcolorimage { Adobe_AGM_Image/AGMIMG_override false put current_spot_alias{dup 4 get map_alias}{false}ifelse { false set_spot_alias /customcolor_tint AGMCORE_gget exch setsepcolorspace pop mapto_sep_imageormask true set_spot_alias }{ //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec }ifelse }bdf }def /snap_to_device { 6 dict begin matrix currentmatrix dup 0 get 0 eq 1 index 3 get 0 eq and 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop { 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def 0 0 transform AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch itransform/AGMIMG_llY exch def/AGMIMG_llX exch def 1 1 transform AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch itransform/AGMIMG_urY exch def/AGMIMG_urX exch def [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat }{ }ifelse end }def level2 not{ /colorbuf { 0 1 2 index length 1 sub{ dup 2 index exch get 255 exch sub 2 index 3 1 roll put }for }def /tint_image_to_color { begin Width Height BitsPerComponent ImageMatrix /DataSource load end Adobe_AGM_Image begin /AGMIMG_mbuf 0 string def /AGMIMG_ybuf 0 string def /AGMIMG_kbuf 0 string def { colorbuf dup length AGMIMG_mbuf length ne { dup length dup dup /AGMIMG_mbuf exch string def /AGMIMG_ybuf exch string def /AGMIMG_kbuf exch string def }if dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop } addprocs {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage end }def /sep_imageormask_lev1 { begin MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ { 255 mul round cvi GrayLookup exch get }currenttransfer addprocs settransfer currentdict imageormask }{ /sep_colorspace_dict AGMCORE_gget/Components known{ MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{ {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer currentdict imageormask }{ currentcolortransfer {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }{ MappedCSA 0 get/DeviceGray eq{ {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer currentdict imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }ifelse }ifelse }ifelse end }def /sep_image_lev1_sep { begin /sep_colorspace_dict AGMCORE_gget/Components known{ Components aload pop Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf {AGMIMG_c mul 1 exch sub} {AGMIMG_m mul 1 exch sub} {AGMIMG_y mul 1 exch sub} {AGMIMG_k mul 1 exch sub} }{ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub} {255 mul round cvi ColorLookup exch get 1 get 1 exch sub} {255 mul round cvi ColorLookup exch get 2 get 1 exch sub} {255 mul round cvi ColorLookup exch get 3 get 1 exch sub} }ifelse AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end }def /indexed_imageormask_lev1 { /indexed_colorspace_dict AGMCORE_gget begin begin currentdict MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceGray eq{ {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }ifelse }ifelse }ifelse end end }def /indexed_image_lev1_sep { /indexed_colorspace_dict AGMCORE_gget begin begin {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end end }def }if end systemdict/setpacking known {setpacking}if %%EndResource currentdict Adobe_AGM_Utils eq {end} if %%EndProlog %%BeginSetup Adobe_AGM_Utils begin 2 2010 Adobe_AGM_Core/ds gx Adobe_CoolType_Core/ds get exec Adobe_AGM_Image/ds gx currentdict Adobe_AGM_Utils eq {end} if %%EndSetup %%Page: 23 1 %%EndPageComments %%BeginPageSetup %ADOBeginClientInjection: PageSetup Start "AI11EPS" %AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0 %ADOEndClientInjection: PageSetup Start "AI11EPS" Adobe_AGM_Utils begin Adobe_AGM_Core/ps gx Adobe_AGM_Utils/capture_cpd gx Adobe_CoolType_Core/ps get exec Adobe_AGM_Image/ps gx %ADOBeginClientInjection: PageSetup End "AI11EPS" /currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse { userdict /AI11_PDFMark5 /cleartomark load put userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put} { userdict /AI11_PDFMark5 /pdfmark load put userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse [/NamespacePush AI11_PDFMark5 [/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5 [{ai_metadata_stream_123} currentfile 0 (% &&end XMP packet marker&&) /SubFileDecode filter AI11_ReadMetadata_PDFMark5 application/postscript diagramas_01 Adobe Illustrator CS4 2011-07-07T15:53:09-03:00 2011-07-07T15:53:09-03:00 2011-07-07T15:53:09-03:00 256 156 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAnAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9Jy6VpkUKOLFpy1AVjIB G1eR5ugp9OAsoi+rVjYaPeQmUWTQ0d04SmjVQ8WPws37W2FiluqeXNN1S5NrFZW4NoVLSXaO6uJR yBiMcqNtxPLkN/oxVU0bQ7WzEem3lpAXpJJFLaq0UAjD0CFZJpJC45Dk3Qk9umKo+fTtIhngiNmW E7MvqqRxQqpf46uG3ANKA4qiBo+mxMkkcAV0ZSrVOxqPfFVC503To7c3H1JrmQ8SyRkczzYAt8bo tBXkd+mAllCNmrpbZ2Gk3Pqg2LQNE/psspFSeIbbg79m74WKXa15b0rULhLKKxgaWFRMZ7hXeIBm KhAUljcMzJ4UoMVU9G8saZpE7Wr6fbf6U7MklmjRIiIASZvVmdmYs5NVHffxKqbXem6RbLGTZmQP IkZ4MPh9Q8QzcnXau22/tiqs2i6UqF1gWoFVILfR3xV0+maeyy3D2pmkqzFVJ5MQTsKlRXFIFlC2 VnpNzLLE2nvbvGFakpX4g/KhXhI/8h64qRugtf8ALel3j29pDZ25uDWVZ7mNpoljjZRMtElhcMwY AHpXrihDad5P0jS7xZZtMtWuLqRYkayVoyvwtyd/VmNfhX9kVoO+Kp1e6fo9rbNObMzUKhY4z8Tc mCinJlXq3jiquND0k9Ldfvb+uKu/RWnzkyTQh3ooqSegUeBxVQOnaOL0Wpsz8UZlWao4HiwUr9rl yHIfs098VS3zD5Z0OYRomnwvfT1ht7mZDLFGwUyfvVEsLlaAn4TiqAPkfSLN3nv9LtLuJ5F9KGzj eKQMSgSvrXHDiTsVFOo674qyK60zRbW0luDahkhRnKIdyEBJAqyjoPHFVlrp+nTyMraZJAFB+OUr SoPT4ZGP4YLZcO12ijpljOIxLCH9OJFSpOwFdtjhYoefTtHhuIITZkicsvqgjghVC9GqwO4BpQHF UNrug6E1iUm09bjk6pGv2gjyHgjkF4zTk3Zq4qkUfkHTLOOO51HTdLuYLdDI6WlvJC5kZW9WRDLc Mi7tXc1413xVlUej6S0KubTgSoJiY/EpIrxNGK17dcVQljb6Xeemy6XNHFKodZZCnEBl5CvGVm39 hgtkI7XacWsMUMIiiXjGpbivh8ROFiq4qx7XPLNxqOjzWdrfSxC4BLxysJY2ZmVhUyLI6qnH4QhX FWG2vkkjUJ4tVvI9MiiEjqyNFHJIZS8ZcbFSjKgJrRvlirrHyt5auLpoV8y2wMMqAm39BZJPTiUj i3NxtyZTUNtX54qrN5G0dZ4rVdch9No3/elYvUCJIrBOYcHkeda+IrTtiqjceRVm1K4trC+huI5y DDcMUkdHmgYOXou3+85pxPSgxVneleXbTTYYPRMiOiossazStCz0VWbgxoTt4Yqs1by/LfaXeW1v fT27X0bpIGYSxkPGycOMok4JVqnhQ4qwaDyTMdTtW1C4XTIZC1xJITFHM5ESii7UqPrDI3L3p2OK SKWR+V/LL3cloPM1odlHrKIQ59SVz6auJNnRlU996VXcDFCMuPJOkG89JNdhYTLPKssqxO6luCMC wdPtBj044qoXHkmGK8hh0/Uo71GWNjJKY5JFljZIVeirQCso6b9etcVZjoflO10uxhBdxdRp++aG aZYpCCSKoWoQK7AjFUxl0t5JZLiC9ubaZ2oeDh4wqncCKUPGOVOoWv44q82tvIV5Dc2kF7NHY26o rNdt6cbP6P7pVSoryA+McxSlB40UkUlx0bRLq7vNNt9as6xG4j9a5ZVdVlkC8WIUbsZyvUb79KYA bZTgY82Q3fkrSlu4nj16OQzOo5zrBIyPHHI/qEhkH2vYYWCDv/I9pC9lDZ6nFfLMwt5IpDG3EySF xwQBqIp8ST7nuqzHy75Oh06FXuZGa/8AUZ5JreWaNGBINCgYClRUinX54qmc2mm5cTR3dxazKqqj Qv8ACNgamJw8TGhIqyn7wMVef6j5Ev4L6KKWeJbW4LK9+/BAq8mlCFqK3NiKii8a/diq3UfKnliG 7eAeY7YS3LO9JfQkkhVrc8pD8anifR/yRTbtiq3XvKWlwQpeRaxb3NrEirKJ2jkNHkRaoqq/wog2 6/1BLKMSTQQlx5aSPRLS6jvlurmWWV7q0Jj4oJi5IWNlDdWNamlTt8O4bUxINM08veRlsEmN3M3r uy+nJaSywUjQcQpCFB026eGFin1zp4u/TIuJ7eSJAY3gkKbnoWXdHoRUBgR7UrirA/MXknVEu2uR OlxHcTEPdzCMGITcUZ5Sqx/a6fux4dOuKqN75T8t2ssBfzBAbib6tGsEzQyuXSThzSpU0UTdl9z1 xVu48laCdIjmi8wRXIt4mehELxSARtsi8iVqxqfibFVmpeS7Oz06eaz1iO6uPWikS2UxRx8UCJ9g eoS3FF6EbDp4qp15V8jCFReXUnFJoE+qi2d4JIwxEhr6ZVa1PbxPXFWaW0YjhWNSxCVUFiWYgGm7 NUk+5xVUxVbF/dp8h+rFULLq1jFcfV3dhNyVAgjkJJalCKKfh3FW6Cor1GC2RiQAe9K9XsLOyKXF voVpcpED+84gOhc8TxRIZWNe5GFiq2VhZ3GnJdaro9pbyoBN6MS/WQtEDVUmGJywJIpwriqYWVtp bJHdWlvHHzFUcRCNqH2KqwxVEyfZHzX9YxV0X92nyH6sVU1vIWWZhz425IkrG43UVPGq/H/sa4pA s0kd2mlT3Sx2GkWl9cmtzP6qeiUeuzMxiceoeR2Yhu+KkUaVIbS0mk+q6rotrC0p/cCJDco3End3 9GNYzQA7+OKExe20m0eKT6oiOzhI2ig5EM3T7CkqP8o7Yqi5f7t/kf1Yq6P7J+bfrOKrY7mKSeWF eXOHj6lUZV+IVHFiAre/EmnfFUg1B9LvRHLYaVbalfXLxySJdIbdgkZU85GeGRldAFKK4BO3Qb4A bZTgYmiqC0tnZYNU0S1jgmKqhjX6yC5IorhYVCj/ACiaYWKYT2mjWUX1h7SJViKlTHBzYNyAXiqK zVrToMVR+KqcH2fu/wCIjFXfWYvrP1b4vV4ep9huPGvH7dOFa9q1xVLdcttNcD1tOgvry5X6vGk0 dQ6V+JHl9OTitGY77Yqg2QROP0joVrFZOrB5Ya3L8uir6SQVIYVqa7beOyqMii8t/V5HhtITb2y1 LJb1XiAf7uifGNv2K4LZGJAvvTWN1dFda8WAYVBBod9waEYWKyLt/qL/ABxV0lzFHPFA3L1JuXCi My/AKnkwBVf9kRXFUHrCaeIVuLq0jupo6pbB4/UId+i8gkhQMVFWpTFUsS2e0WFZPL9lDYR0SRoW 9Vo4wtF4RJb1feg4im2/bdVGWVv5akHpWllDxRS5AtuKjepFSgHKp3X7Ve2C2XCatMbOa3mtY5Lc FYCv7sFGjoo2HwMFI+7CxVI/sn5t+s4quxVDTwTzWqJBcvav8J9VFRjQdRSRWG/yxVhHmSDzempx q81vcrO0L26crmBPUidVHGNLpBtJIhNSa9f2cVWTeWPOy6f611qaSx/V5heWk0t1xAqrAKYZkLni pWrN0+ZxVu90Lz/aWpvG1JJ/SklkltIpLrh6Jjk3DvPFJt8NF57HeuKozypofmQo0tzey2VqsMA0 xbeR5Iyv7wtziunuSPhdR1GwG22KsyCskKIzmRl4BpGoCxBG54gDf2GKpRq1h5gk0u8TTb8Ce4jc QrMgHpgxsFETxGJlbmR8bFqYqxCDSvOs+s/VY7pLJnmaW/nikuWpwhC0KSXUqtVZkpQdhv8ADTFV G10zz5cTzRwzoLkARS3qz3PqBFuJQpo1yUbg8bCnp0IqB1rikikxn8tedheemNRt7iYrcPbXMkl9 G6o3BGFI5Qi/aHEcWpSuKELeaN53s7iG2mvF1ISejMssslyiCWJkUKEjuY9vVdT8QNTvtQYqynRN H1i3sIZL7Ubj6zwJurdnSaMkE0Cs6s4FPBqnxxVMJbXVvVkmtb5VVmotvPErxKAfiIKGOTkabVan t4KvP7XSvPjahBYtcLDfmKFry5Wa5dxFGCgLcrl0b42JKhRXc7E4q6fSfPTXM9nDcLc38C3UMN2Z 7mOTg5Vq1+tBA3CaMj92QKDwxTSpeWPnGLWlskvYdSuYzHLCXluYikhjkJPBLqPitKqepod+oqLT wGrrZq+0TzzbQ2kd1efXI7oiIxyS3AEcrS84xyiuImcgLTmfuG+Fiyny9o2vpCLjU7+eG7aRmktU kWaDgSDxX1hK4H+yqBtiqZzWupu4ls70QFVUCCSJZYiaCrNQpJ0PZx29wVWB3dj53XUobQzR/Xpx IkM6zXHqrF6nqO9DcmNa8F24b/Z6CuKta7pvnHTDLLPepPEJWNleTz3KcXe2oaKlzHxpxdV+Bjv3 5YkpjEk0Ba/UtJ85g2am9F/FPGklGluFCv6sSpRobmJWKFlblXc7jFSCGtR0jz3baSbm9u1njkeY Xlk0lwY44pWZVXklwkjj95sKmi7bkbqGQ+X9E80gTSalqE1pLyRYY4ZPXjKKvEmlybhgW2r8R33x VPbm2vZvTa0uzatGgJXgkiOf2Q4YcuII34sp9++KsG16086Q3685YZnnuHWwYS3MR5yp6dURboKg VWO5U0/2WKq9z5a85RKkk+qRXUTm1+C5ku1KTiUgUWCaNacnUkkmpHsMVQur6F54tdOgFxqC3wkW Rbq29S59PisLOV5iaF35UP2j0FDU9VVSXRvzDt7G5vZLwAxSqy2IlnZTDHGvNvUNzz34fZ5/aJNa HZVHeVtF8zsqvc3b2NmtugsRbSPIhBPIco7p7kigNOo2psKYqzS2VkhVGcyMtQ0jUBYg9TxAG/sM VVMVWxf3afIfqxVjPmnTrbUL6KKfTtRnAiZfrNoYPRoSBxYSODy+I0+Htv2xVGW3lTy+9nGrWLKr IOUUzuXoRuHo7Cvjiq+LynoEa+kLZiFFeTyysdyepLE4qqHU5bMC1h0i9kihpFGyegVKKQgYF5ga U333piqYLIZII5CjRl+DGN6BlqQaNQkVHzxVfF/dp8h+rFVOexsrhla4t45mQEI0iKxAalaVBpXi K4qxm/8AJmh28guvqt3eAzeoLWF0op3YUqY2CA9g3t0OKoi18u6HqAlM2k3Fk0LcEaaQqzAhWJRo pX+GuxrTp4UxVMoPLmjW8yzw2/GVejc3PRg1N26clB+jFUwl/u3+R/Viro/sn5t+s4qsns7S44+v BHNx+z6ihqV8KjFWM635R0eM3GorZ3d40jRu2n2jRCpiKMPTEjRBOTRKDxcfQK4qrWvlzy/fiX1N IuLMgqfUlcxux6fC0crNsNsU2mMfljQ45YpUtqSQsskbepISGU1B3bFCaYqpwfZ+7/iIxV09rbXC hZ4UmVTUCRQwB6V3+eKsf13ydot0ZbtreZqw+i9na+mqup5DkEei8wHJBqD4bgYpBpR03SNH1FTD P5fvNPQKCDdOlKhVbYw3E1GUtT5qadiVCZjynoAQJ9WJAAFTJKTt7lq1xVN8VU4u3+ov8cVbmggn QxzRrLGaVRwGGxqNj7jFUn1TyrpN1JDdLE8UtoGZIrb00EleLcXVxwbdBTl+rFUq0jR9GkWPT38u 39tbonpCe7eIoyrzX4vTuJG+IJX7P7Q71AVTiPyjoCR8PqxYb/bllY777kscVTWGGOGGOGMcY41C IKk0VRQbnfFW4/sn5t+s4quxVivmi61IaP8AHpkchjkjaOVpYDCsayortK1wqrHyjZv2Xp86YCGU ZEcurHdFv/N9sgtrWCJIFW5lmNlJaTqZRIOquYDGooy1qw6UFBhYt+XL7zhd6px9S1tjezH67cwz W106PFbsOMkQCH7Sp9ilNzT4q4qzlLrXOKs9hF6hNJEW4JogrRgTGKk7/D+PgqwDVL3WbbU3uLWw tbN4HmliSa4sre4XlCwjqAstNgxPqMQadqA4AKZSmZcyzrS21wRQC9MdykypK9yCsZjZgP3QjUOG AP7XPv7blip6tqOuW2l3bW1gZJhG62UkMkbHl6bMskizekiqGA7tirDrPVPOEerNDbpAv164aWYW k9pdSgCLieaN6AJqY2qCvfbeuKqob8x/0hLdjTwLz0Fi9QzWzSrH6zslY+ITi1CCFevQ8jTFUFLP 5ht9UAhs7WO6tfXMYeaxt51RlUIfSUSqCCa/G5rvTjgAplKRkbKvf6p5wke1hv44Wfnb3UaXU9na kGOhYRcfWqS5orFum3E74WLLNDl8yvYwz3zR3IuUrKpKIYOJI2aIOsxYGv7I296BVMZb3UoZZKWB ntQ1EeGVTKxY7/u3EagKevx4q89stY86LqCyCOBby+SA3QhuLOW4ZYkIZmhoiFi7UWjDwqwGKou6 b8ymuUuI7IPdxQ3aWzvLbJMVZ6K4iCvEKfuzxLnv8QqcVQd5J5gg1NAtjbLIs6XYW4lsrWZpHEsj Hgvrb7txd2py341wAUylMy5m29U1fzlPaQWV8ISLwfCt3NZ26SNHOGUrwaQyKVC/yivjUDCxZd5e ufNVxELu7MUkckjIbRnjrGlQQ4ngVlk47rTiK7dMVTKe71KBgbex+t24VS5SVVlrQAhUcBTtvu4x VgVxrXm0aqLhY7db4o9rGDdWfrgmUSlWiApxVQPhLV3ry3piq3Wr3zXLeGG4jguWtZHe2ju5rO3m Ilt6oPRAnUCvP+8YhiOgoMVV9Qt/O0+n2ttDp6SWXwMVn+qwxLL6ihAixmZnDMSakrUHcHABTKUj I2ebtY1TzwmlyRalAIUuGnimS5ms4YljbkI6TqSX2dQSETpWowsU88t3fm+WKSSZLdkgMcSWYliK U4UZknhU0UEAhSlaGmKp/dXGoQiM2lot0OAMoMvpMKCoCgqwYn3IxVg2u6x5oGqJcm2ig+rTSraL PdWcU6maMRoqJSUd6sGY1/yaA4qpavf+bpWhtr5YZI3+rXAju5bW1o6yFXEYUzs458PjNBQ0INTi rpE86yeX/Sg09Pq8yub2Mm0igACE8lkiLs52A+FEoR26YAGUpE80TJqXn6wsZPrVqLeOFo0SPnZr biEIvOkx3A+BqL6JNDTtXCxRHlC482GBIFFsLW0gQxwRzQzxzVaopLH8aVQ7lg1SK13xVnFsZDCp lUJIal0U8gGruA1Fr86YqqYqg7+1e70y4sqtEbiB4fVAVipdCvKhNDSuKpNpPlfU9PDINavPSKgJ FGkAUHkzM1JhPSvP9mn04qmuj6fLYW8iSyyXM00rTSzMI1qz06BOIHTFUaC3MngaEAdu1ffFWPa7 5Um1a9ec3ssMUiLG8CqKFQGVhyV0NCrsKGo3OKp+qhY0jjj4InEKooAFUjYAHwxVfF/dp8h+rFUP Np0b3H1iJ2t5iGDvEEq/IKPi5q9do1xVjV7o93YXou7jzBfL6snINFA0remhLCNgiyQj7Z6x/IbA hVFW9i99NJcWGs3qXcQEbyT2sCfCxBpR7aLl9j6MU2mS6JIbiOa41G6ufTpxSQW6rs6Sf7rhjP2o 174oTGX+7f5H9WKuj+yfm36ziqhPp8UlwLmNjBc8fTM8YTkyVrxPNWBFcVY9quh3sV6b+XXryOOS SNIVjiMjR/FGzKoiHCj+lT44yu+9cVdDGuo3bpY6zfi/hRJRLPZxonE81X4ntYlfZ3+ENUVrTpim 0Z/hGB9Qi1C4vri4uonjkDOtsKmPoPghVgCNjQ/wwULtl4kuHhvZPsLBTg+z93/ERiqCXQNLikWW 1hW1uFJYXESr6m4IIJYNUUPQ4AAGc8kpczaU695fummfUW1q5gjSERBUjLsrkSIkii39NiV9fYUP vthYW6Nk1CRbKLW9Sacr60ZktIo0rCykFna0Rft0+Hlvv74qjpfL91c2voXmr3cysB6qhLVFJFDU Ug5DcV64qnOKqcXb/UX+OKqd5YW136ZlUerCweCYAF42BBqpYGnTFUo1rQbm4kgvG1aeOGyDPLHw Dc1DJJT9wIn2MQ6fRitoG1MUsFvpkmu6pNJOn1cu1oqhiIzyLO9oeNQOrv8ASScVTYaJqMlu0V1r V1LzDLKFjtEUq1RT+4LDb3xVM7WBbe2it1YssKLGrNTkQopU0AFdvDFV0f2T82/WcVXYq7FXYq7F XYq7FXYqkup+YDp+m3Uxs7gSQRsLb900qTSLGzino+oyr8O7PxxVi1p56vodQkijj+tC7uC0UUgu KiP0iDxCLcMgEirsqN9o7gDFVJfP19+kHugpeUxCGOwKzKpdZmJAQFjzdBs3EttQL1xVffeeb39I JLIptntvXAtaThG+FfSLqxgL/Ef2kXjXviqjc+brp7iOWeOawkaSCYJzvSDFXnKfTl+rim3Dh6dO vx4KZGVhluka3qt7ZQzXWn0iuUrFPbuGAFSC0qPw4DoV4s9d/DcsUdLqyW0skc9tcrCjUFykRljZ mOwAi5yd+pWnv0qqwaz8/wB/9cFx6fqPerADZss/FCkbNLwVfWZDvT4UblQGgxVu78/6ktyLkxel Jbx3UZsys4RpA9IqhvTLfYA5FVI5H4emKqupeerpr2ATIbOOCWOYqq3K84yrk8uYtmcAANwKAbda VxVCah5x1C4iUyRS2cs4DK8cl4iu0UgUiOoiRVZBX4OYNftd8FMjLamTad5wnkhhuryCJdPuZ/q1 pdrKsbO7sBHWKUhQG5U+GVjy2pvsk0sYGXIWms+sRWcywy287qyCQzQp6oAHFfsIWlO5X7KHr86F iwi/85XM176h9WNxG0S2afWYqyGb4VKo4PMIp+LjUnbgcUg0bXah531COeP1ENqLB2PpqblxIn1c NHzaQW7Scmap5KtKdW3qqTZX65521KWKCBoDaGTjIHjN1GW4OoZfUKQEBiStFDDuGrihde+f7+fS 3Ah+rx3DTwxX0aXCnbn6bCqqiEgKfhkk3rttiqc+X/NGp3sLOth9atYSkZkhciXmVoy8JTRuLjdj IDTemKp5c35tPTJtp542QGR4FD+mF3JZahzt0Cgk+FaYqwrXfOUj3wFZbaK2eYCPjcQM6mMLH6g5 wk8nYHfiV261xVTu/OGoiKC0kjks1Q28yyBrp5GUyP6gd5UgbqvHhQih+14ABlKVm12pefdSn0eO sH1YXaEC7jFypB4FwwYoiJQUNVkk8DhYqsP5g3q2Tf6KDBA8ULXXG5YgMiBuVRxYhiw5GYNsDx3x VFeVvNGrXEC26W/6QS1hU3UvNhPy5dufISMykMK8O4GKsytnLwq7I0ZapMbU5KSa0PEkVHscVVMV dirsVdiqGuLVp5driWEKo2iYAGpPWoOKpA01jNfcU8xXVuI4kmlhf00X02CsG5yxClQ69/xxVZZa pcXGtW8MU0y2TNJwklLP9YETceUTRp6XDau77gjvirJh6bQ+nIpZSvF1KkggihB2xVLP0FZQagL6 wiht7g8+bNAz1LqiVWjJw+GOm2Kpd9T87pqMl0l5aOruqek0cip6CMxHwhGflRz/ALs8N+xVRc6+ a/WS4jWyeSNGjCH11BDshJrxbpwxVRm0K6v9ThvNSgtHMS8OUaSFqerHJuHU1/uuP04qnwWGOAxQ x8EAIVFQgCvgAMVXqwAIINansfE+2KpU+gacl+l/aQQwXKp6VWgLrxDBlKqCnFge4xVAXdl50bVG uoL21MMdEtojG8Y4O8TS+oOErHaNqcXHXtiqJul81v6UiLZNJA/NEPrqCSrIani3Zz2xVD3uiajq d7ZXGow2bfVJFaqLKW48gzL8SkH7OKU/jgs4goigVAlSgWOlK9aUHfFbKklnaG5W6khrcooVJCpJ A49vDqcFDmyGSQHDeyAn8saQ13HeQwRpdRO7hniLofVqXqgKCtW69e3TCwQ2r2Xm+e8SWzvLZYYI 2eFDE8ZNwUkQcyy3HwfGpNN9sVV7lPNM0AQ/UiyskgoJwC0bhwOhoCVxVD6lpmtatZfVtQhsSrgV KrMzIagngzL4r4Yqn8ENpbgiCFYg27BI+IJ96DFW4zxpUH7C9j74qleoeW9IvJ/rLQL9aEqzrI0Z ZS6gD41HHkOK0oT8t8VUNVsfMk72kdnd28VpG6vcIsLRuRG6OgQsLhR9kjpirvS83Tab9WumsjNJ D6c0iLP9ploxHwj9Q+WKtXNt5iv7Nre+gsGSQMrJSZ6VBWqll60PhiqZ6Xp9pYWkMMUKJJHEkbvH HTlxUDrSp+nFUZH9nw3PXbucVXYq7FXYq7FUJeLqLOPqUkMZ29QzI0m29KBXjxVjvlqHRp9VaeGb 1ruSxSG8t2VuPwLGjUDChHwgYqmEHlv6pq0d5FL6tuGkYRzVLQ+q1eFvwKIqb7hlJ98VTuQkRsQa GhofoxVKb2G4s7Zp5dRl4gqigJyJeRgiLRQx+J2A6Yqktj5iikhWS+1NrRpTJ9XCh5VkSJgjMH9N B1Ybe++KoWy12Z9Una51mSKw5elAOPKrsvqIaegjJVFfZ26g9euKpjq2p3Fm8cdtfNcyu0aFTyQV m/uwrLFIGJFTx60xVG6dcR6gjy2WrSTrDQyDhxod9jyA8CMVR8ljeSyO630kaljRABQAGmKseh8w 2z3MiyapJHahYHgueDfH66lgGQxgx7Cor1BFMVUp/MdsZgkOsSfVGhllkvVVuSemnIlYzG3P4fir 02NcVbTWBELeKHWpdQklnWKSVo/T4B+VKcIqM3wUCDc18MVX3fmO0SzknstWe7ljUOYuLRgKXCVd ijcNzT4up2xVMbG5hvriS1t9Xka5h5erCYyrLxIVqh1XoSMVTGS0u525pePEKKOCgEV4g1xVjv8A iCNb2aOXUnjsooxILsq9SC/pklPTHFQ+3KvH3xVfJr1uJ4Fh1SWa3kMwmnVG+AwJzbioQ+pT9rif h74qpXfmOERBtO1N75/VjhYUaNQ0u6/H6bgnj8VBvTpiq678y2SWs0lpq73M8UZlEJR4wVVlQ8nM bBDybj8XfbFVaTW7ROcX6WlN6lF+q+k4b1GVWVfsV3DrvToa4qg9M1uL0TPfeYJVkmVZVtfTD8FZ nUBHSJDJvGRsDQimKolNftUWY3urPa+nLNGlVY1EJHItWNeLUNSm5AxVpdehF1Mk2pSQ2qCL0rgo 9WaZC6qyGMcCQPhqfi7Yqs/xFbm4jK6nK2nPbm4N7wcUHP0wfT9OvAk/brTFV0vmG29WEW+qSzxP I8c8nB1KenGJGKr6Z9SgIqB0qMVTfTJUvFFzaao11DHIquOIAJPFqGoB+ywxVOcVdirsVdirsVSH zPB5mlMA0O5+rEV9dgsbV/lH7xJR49BirHI9D/MKGUyW+ocW4lKmO1rQUoAfq/woKfZHfw7qpjoM Pn0amjavcs9iN3jKwb1rQVijRvhIG9fv7KsvkBMbAdSDiqR6n5U0S+tDa+gYoS/qNCnrJDI3NH/e xxNGJP7sfaxVI7PyDb2149wtnbxK0bw8LOW8syVZ2+2UMnKqca++KoHQfLFzpeqW17H5Xhiki5+m 8MxUxgxelRmMjCTkCeqd+1N1Vd/J66hfpNcaMsUYAQteSS3bLxYCqlZlKj0+XEDvT6FWV2uh6ZbW Vpbi3WQ2KsLVijngWNTx5lyNwO+Kqk+kadPK8zxNHcuQGuIS8cpVWqBzjo1NvHFWIR/l1c297btF depZ26rxQmaGQsAVNHXmVop+EjeuKoLU/JmryaldPFZTPazOpZVuvUMvqNGrn1JgjLxjD1qrfTiq M1DytczzfWU0++DkASgXwkZgqsF4tMH3qR1NNsVWXXk6+uZLRILaayjjokskk5uPgZuTUXkiqKmv FAB/BVlWkeXLCxsI7SYfXPSmNwkkkZqJD+1TffFURc6Rp90xkuImW44oi3EReOVVWjUWSMq671rQ 4qxKf8ueN0v1cWzW4+NpWgMdyxJfmpmVXfcOPirX8MVQeseUNTe9meDRoriIsGMrvHcTOGADUnuU WVSDvvX22OKo2byn6pV20V5JB6Y/0maG7CqhoQhuI5CvwfDQUHTbFWpPKKm1ihXRpH+rRvHbJcTw zxIXC7iGWN41/ux9hR38cVXDylCIXhGizCGSVZ2gFxH6HNaU/wBH4eh2/wB91xVTt/Kn1eB4Rokw N0kcdz9XuIoIiYwfiaKNY0YEnoytiq+38pJExf8AQrxufUWttNFakq7GgJt44mPwHjuaYqth8nok ok/QjK8Ugkhlikt4ZgVQLUzRRJJXlVqhsVWyeTIXda6IxQbs7SW7T8g4dCJzEZfhoRXlX3xVuTyR Lf6hK1zaJFb3AIlkuo476YARLGOM0hMgpw27bnFWYw6XYxm1laFZLy1jSGO5KEMFXY0J6dTiqYYq 7FXYq7FXYq7FUi8zSaMkYXUrx7UygLAkU4t5HPMD4CWToWFd+nXbFWB2L2Wo+rDb6hqbAF0RVluH nYLUrQRTitU3LgAA7dcVZf5asorNpLeO9nuhEroTOLsvVKxkmS4Z6/Eh779cVSXzfqflqGBVj1C5 eaJ4jW2umA+KT4ldIpoZGIETbeOx6kYqraDoclzdtd21/eOWSRVM73MloAknAqn79o2bklQ+5odj TFWRXcCRJbpPDc3PBSry252XiTVmUvy+QHI4qxHU/NljHfQ2llbykyyshlnNwvFUYo5aMojVU0Yg VPHtXbFUg1zzHNFCl5FbXjTTtCq2qyXcR9ObkqyKvqLH1Tj9r7R79cVR175rk0zTLmWG1mufqqSN Dz+tUn9Jwr8JXLbLzqS1KD32xVkmi6nHqlol1HpN6VJVJkjnVmjd41k4sJDD9nnQkbfMYqm+uT6L bQxrf3bQM8SRQxLOsLuGbhVS7JuC4qa7YqwbSZLPUvUFle6k4jed1jSW5mkZFkAAIFy/QSruKCoI HTjir0Gx0ee1V457gyq6CNCpkDAVAJJd5DX3xVX/AEFa/wC/Z/8AkYcVSbUpreziYC3vfrJkWOCO QylHDSKhf1LdLmg+Ku4r7YqxuykW6aPhbalMs4Z43t7++dRw4FhVoI1oC/HYncfLFUZpcmuRPJBc WFzJFCaKQ9yZCW+IcnkDePviqFXzXeNqItRod2YDbfXPrP1icD0+PL7DW6t1+Hkfhr+1TfFWYwxR RWEj3/qWEZIM/rTqQgXlQ+oDShxVjOr3Ogm+UWtxqFyJI5HleGe+SNPSqBwMUUkZ5COQ1rvx2riq M8r2dtLaPNp8tzdwGWs091eXLyK3BSeKTxIeNOirRa+G+Ko7XrqKxivr2WyvpY7VJJpJonjWHiiM 5O7hqLxoaKT4A4qwG2/NLS9R1Kay0qRJJFYiBZJZ4xIqBy7CSVYUAHp1+Pj17nFVjfmRdjUmtVsn a1WD1jfBpzFz9EzCLYGpNOPIbd+m+KpJrPnez0zUbWwubi5jubiYfWpI9RvZVtkdYgkvwl45FKS1 4JXcdOVMVTHU/wAyLvQtDW5ltnuWX0PRVp5TJLFcRPKkxelACsdd6Hce4CqN1j8xpNLsJ72eH9yk jwWx5zAzTxlOUQH2lIWQGrDj74qjvJvnQ+Zo7eeEpFGziK6h5XTTRysszKgCoVPw25blXjT32xV6 viqV3PmG1tY1kuYZoI2IVXkCICxFQAWcb7YqhLjzXPDIyDQdVlINFaOGEq29BQmUUr7098VRFt5o 0+6laG2V55VBLRxmN2ABoSQrk9TiqreTRTxqJLW4cOASEUBlKtUbhgVYMtdjiqRWuoaVZXLDTdK1 G6PN3keApNGs1OL8uc1Fkoe4rTFUX/i+EcDeabqFlC/Sa7SCFAWVqCpkry+E7Uriq+90rRdTmM17 ps7SIoYOw4V9ImRQOLCrciSMVUtO8z+W4IVtLGX93GGZYkkgYirVY/bJ+02KqGs63p8TQXpj1KUl TEsFpNHGrLI4JlZTLErcOJ3r4gDFVHTbry5PNPOdNuvVVS8jXXoy1Xqz7yyjbu2Ko+XVfLkxUy2y yFVCKXS3air0UVPQYqmkNhpl5ZxVtUMFG9KKSKIhQx3oKEDl12xVE29lb2ylLdFhRjyZY1RQTSlS AB4YqsvdMtL2AwXK+pEQoK9PsMGU1G4+IA7YqhdN8taPpkxmsYfRkYOCwYttI4kf7VftOKnFUVfz La2c107qFgQuWmdY4wF+Il3pRV23btirEvMPnHzHawodNt9PeR0dqfWWn+JeNFYIkfGtT3xVKUHn 65sA17YrMsPo+tbubsesXkofgLPvGtGPHYH22CqB0Cy/MC3tpSdJtrW6T6zOzQ/W4eUYcOsQqzci 5rQDelNwQaqoyzm/My81KS3uLNLe39elpMsuoR/uxGz1ldpGX+VfsUr2xVALYedW1mG4bQ7VLRYW BpHeNL6jcSfi5qKh1qPau/fFXpum2F1awtDdXJvm5cvUYEHgQRxPJnrTFWJXn5V2lzqc+oG7dJJ2 nYqIxsZ3LA19QH4VYr4HwxVltpomlWSKLOxSFkXjGwC1Hw8epJPTFVK4OqXMd5ZzaZG9nIXhHO4p 6sTrueKo3GvIila4qlI8i6SgW5stOhsdSjnSaOXk06DgQDsWT7SAqfn9OKqV3+XXl97iWSPSYnWa 3EBrM8fE1Ysyr+9FTyFK9KYqgL78tRe3L3k5eS+d2mMzywEGRkKVZRarUBT0xVFWX5fWUcHG9sEv 5zwBuJbllYLEqokaCONAqKE2GKqN1+XFvPHNbrC0FhK7yCxjni9NHkRUkZGe2eQcuAP2uvSmKovQ /JJ0iaFrZX9KJuXptNEwJWKSJSeNvGzELK37WKsxxVJ9IVbfThbRD1ZWnunRW3oGuZGLMfAV+nFV XUrP/R7ZjIxeO7glZv52MgSh8BRumKq0cMVzdSsygw27BI0/ZZwAzOexoTQeBBxVQvYYjqGn3Dtx 9CaTcmi0aGapPbamKouNWncSkFIAeUcfQsf53/gPpPsql9tAkWlG2WkjyXs4i5gOQzXcj8gGqCYx VhXwxVMfq8MEXGJaAkliSSWPEirMakn3OKpb5dtb1LHSjMsax29isIKOzMxZYqGhRaf3fjiqirzx m8aFpEf1I6tCgkcIb6YPReMn7BNfh2xVbO87remSSWRFtrsQtPGIm4enAfs8I6jly3piqZDUbqnq m3jFv65g5CUl/wC+9ENx4U6705YqoWs1zBo1nJHJBFFHb855JyQqqqg15AgAAVqTiqX6frmozXZi fWdFuPUJFvBblvU7UBPrPyPXooxVH3mrS2hAub2wtSdqXDmMkjqV5MNsVSu68wa0xeTTtT0a4gjA 5opeSRSzKi14zKtCzdTSmKoQax5vubuKzml0g290rxlWQycm4M55BbpvhCI37Jr7YquutQ8yxFH/ AEp5cjioeZlSUfFyFAD64H2eX008N1Udp+s3EgZJ9U0WaYGoW3Y7Lt1BkY9cVTIXU31Uy+tZEBgP WFfSCmvU161xVCz3OsTIE0250p7o7qkgdwwANfsOD9O+KscTzB52+pGdrjRGHps6yrCQCCAyN6f1 0sKCtVqSfEdMVZHa3ms20Qi1K90oXq09X0g8K9K/YeR2Hj1xVHNeXYtBMZ7VRX4piW9LiaBaHl1q 3jiqHa81i4Ux2F5pz3NOSg85BxBoSVRwae+KpMNa81SXghh1ry64PECECYylvi59J/8AVpt4+Oyq c/pDUIgI7m905Z1AEoqy/F3+FnJGKpnZyvLbJI7I7MCecW6EV2K1J2piqtirsVdirsVdirH7eAS2 /wBZ0y0c+rLMLhZrue3IeOVkJCp6oozBiOm2KqrxWCWbWtytyfXuokmC3E8hSdgki8Ji6usanj9m g9t8VUILSR5xatazRwwsDztL+4PEg/Zfl6K0ofiAYn2xVHagljNdWdrdRyuZJmaBo2dFR40kNXZG TbjWg337bVCrcljAhjlma4QxzoIlS6nYPVwqc1LAEb1ZTUfPFUJ6WnvGdQt4pg73EsTJJcXEZBWV klMUaGT7TIW4qo5d8VTCytkjicKtxH6sjMRcytM26U+Hk8vFf8mo+WKoaXyto8lxHP8AV0Ro+PGO PkkfwmorGrBD9IxVWu9B026tzA8ESKRxDRJ6bqOXL4WUgj4iTirVn5f020jkjjgjcSh0kaVfUYpJ TlGSxJ4Gg+HpiqFXyX5dW/N8LGH1i3qceH7vmQatwrxqa16dd+uKqvmKJIvLWpRoAqJYXIVVFAB6 ZoAB0AxVV8w/7wRf8xlj/wBRkOKqEB/52mQf8uh/5PYqgfMNP01Fvvxsf+6lDiqK82f3Nl/xln/6 gLnFUzvP96LH/jO3/JiXFXSf8dS3/wCME+/+zixVJdbMQhvDNx9H9JWAk5048TJbg8q7UpiqrcHR v0po/wBRNsJTdPyEHDkV+qT9eHatMVUR/wCS2/7c3/YriqJi/SP6S1Tj9Z9L6ynpej9V48fq0Nf7 3468q4qgJmI8v1vqAfpNRL63D7B1RAOfH4Ps9e2Ko6A6T/iW0Fgbev1K79QQcK/3ttSvDFUFB/yi 1n3/AN6tv+eNxiqMsP0l6c1frdPrV1x9L6pw4/WJONPU+L7PjiqM8tev/h7TfXr6/wBWi9WvGvPg OVePw9fDbFUyxV2KuxV2KuxVI7XV47aJrYQztOJZSW9CX0gHlZlbmFowof2K4qsvLuJ9Gk+pmZpU uoUlkaCVZOZnjMkqxsgZ1UNyqo47U7Yqjf0zpdrFGgE6pUIgW3uG3PStEP3nFVuo3UVtJazyCRo0 nJb0o5JmAMcy14xK7UqRvTFVNdXtZbqB50miBfhbRNBMTzYcecjBCq7VA3oBufZVT068iimuWuUl DJPOluBDKw9NpS3IEKR8RPXwAxVMrXULa8JMHP8AdyFGEkckRqF7CRULDfqNsVRWKuxV2KuxVB6j Z3N0oiRrc20iPHdwXMJmWRHAHGnNBSlQQQa4qleleStGsZIbg2tu15FuJFiIXkCCHVXd+LCmxriq tq3l838pZ0sZFKhQ1zaGaRakl+L+olAR022O+/TFW4/KukxWoigs7SGYrGrzJbr8XpOsgDb8mXmg NC304qhv0JY2NzFdXT2qgSNItIGB5NG8ZClpJOK8ZDsBirWoXHkiG1efUf0fHaRfE8txEixpX4QS z7DrTFVmnw+SI4lls0sXUhgJ1iVywLVYc9ydx44qjLk6c9iRbSWkcHqLzWSAvESKmnBWT4u4Ptiq EtLzQdNUz3t3YpIZCYpxEYePIH4QXdz9nbY4qllivlO+t2Wx1LTrq2WIWzNBEZAEZBT7MpjDlCDX j3rirIJYNCvS924hkMLB5ZQhFTTiOf8ANsKb4qpXdzpklusEE9osfPk8U0BkjI+0KIGSjBwGrv8A LviqhZXugaVH611eWUcpZkW5EZi+FqHhWR3P7PTlTbptiqhYDyBLdyXtibCWaM+m7QorqjcVanFa qrcSD40PviqOn/w1PMs0hgMisWJCEci3UvT7X04qm1ibc2sf1bj6ABEYQcVABpQDsB0xVXxV2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpfrqTPpl0IZ3t5BBIwljoHFACaEg0r4jc YqkepRa6fLZun1UkSwxl0WFFNJeINH6g/FscVRv+LtIglktmQQyQyPEYvWswfgcrUKJ6gNTkK0IH 2gDUYqr+Y55f0BqFxZXBhlW0klt7mPi1CsbsrLUMp6Yqw06b57k8lLrDebXIOni99A2NsTT0PVCe rTlyHTn174qj/Lfn1WsrGK6syZXhi+s3ELB2ZjErFyiqvjUiu2Ksxgu4bkO8TBgrBGAZWoVcjfiW HvirFfLOgtq2kx6je6nqRuZZ7iQL9aZRHSaSMKipsvFdsVRNrqNpoHl3VLrVp7m/s9PvJV9SUNdT 8GkUIgCjk/H1KDatMVRX+LIUhP1fR9S5UqiGzmQE02Bopp92KtXfniytLaW5uNN1RIIVLyv9Rnai jcmignbFU9tJknto546+nKOaVFDRtxtiqrirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVQupWk11ayQxSmBpFKmQAEgEiooQeoFP1YqlUugavLZCyfUgbYKqCP0VGyU4io37eOKp0Y VZuRijLeJ6/qxVC6vp73+nXNl6htxdRNAZYwHZQ6spIDCn7WKsJXyJ5yVG04eZnGlG1Wx3tLfn9X VCvAD0uXRuNede+KstsPLmi2tjbWrWsc7W8McJnkhHN/SQIGbbqQuKpmQKkqKCqdqftYqwuGO304 zWunecILe1SaVltpXtJGjd3LSIWZaikhOx6Yq5rXydf6Bc6VeeYY5J55nluL/wBa3WZZndZH9Hmn DhtxHwEUxVMJJJpraW5sPN6ta2an67cSfUZEjovKsjpEiptua9t8VQc91pV3p11a3/ndfRmiIllh fT4lELghvieKRegNd9hirLdPSFLKFIH9SFVAieobko2U1GxqMVRGKuxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVZMoaMqSQGIBIJB3I6EYqw2x8uatodibaOysN QX1ppFlEJ9YrJIXBlLt8TDlQtXfFVYprgFf0DaHelBEnX/g8VSnXdNvLLy15omvrG3todRVJJfRj iSFYoo0jb1/3rF2YKRy40AoCNqlVU1Ffy5/wTdKRo/P9GyDj/ota+gdsVZnoQQaLYiOnD0I+HHpT iKUpiqOxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KtPx4/ F026V8dumKrP3f8Al/8AD4q793/l/wDD4qoX/wCjfqU/6Q4/UeDfWfrFfS9Onxc+fw8ada4qlUv+ BPqT+r+j/qPpHny9L0vS471r8PDj9FMVTy29D0E+r09Gn7vj0p7e2KqmKuxV2KuxV//Z proof:pdf uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:01801174072068118DBB9C4385CA24A4 xmp.iid:01801174072068118DBB9C4385CA24A4 converted from application/pdf to <unknown> saved xmp.iid:D47F11740720681191099C3B601C4548 2008-04-17T14:19:21+05:30 Adobe Illustrator CS4 / converted from application/pdf to <unknown> converted from application/pdf to <unknown> saved xmp.iid:FD7F11740720681197C1BF14D1759E83 2008-05-16T17:01:20-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F117407206811BC18AC99CBA78E83 2008-05-19T18:10:15-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:FB7F117407206811B628E3BF27C8C41B 2008-05-22T14:26:44-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:08C3BD25102DDD1181B594070CEB88D9 2008-05-28T16:51:46-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F77F11740720681192B0DFFC927805D7 2008-05-30T21:26:38-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F87F11740720681192B0DFFC927805D7 2008-05-30T21:27-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F97F1174072068119098B097FDA39BEF 2008-06-02T13:26:10-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F1174072068118DBB9A084B3843B2 2011-06-09T11:06:05-03:00 Adobe Illustrator CS4 / saved xmp.iid:F87F1174072068118DBB9A084B3843B2 2011-06-09T15:15:58-03:00 Adobe Illustrator CS4 / saved xmp.iid:7FF2245A3B2068118DBB9A084B3843B2 2011-06-09T17:21:50-03:00 Adobe Illustrator CS4 / saved xmp.iid:01801174072068118DBB9C4385CA24A4 2011-07-07T15:53:09-03:00 Adobe Illustrator CS4 / uuid:190090dd-b95e-a142-9c53-7c955168a3d0 xmp.did:7FF2245A3B2068118DBB9A084B3843B2 uuid:65E6390686CF11DBA6E2D887CEACB407 proof:pdf Web 1 False False 549.002930 356.940430 Pixels Arial-BoldMT Arial Bold Open Type Version 5.01.2x False Arial Bold.ttf ArialMT Arial Regular Open Type Version 5.01.2x False Arial.ttf Cyan Magenta Yellow Black Default Swatch Group 0 White RGB PROCESS 255 255 255 Black RGB PROCESS 0 0 0 RGB Red RGB PROCESS 255 0 0 RGB Yellow RGB PROCESS 255 255 0 RGB Green RGB PROCESS 0 255 0 RGB Cyan RGB PROCESS 0 255 255 RGB Blue RGB PROCESS 0 0 255 RGB Magenta RGB PROCESS 255 0 255 R=193 G=39 B=45 RGB PROCESS 193 39 45 R=237 G=28 B=36 RGB PROCESS 237 28 36 R=241 G=90 B=36 RGB PROCESS 241 90 36 R=247 G=147 B=30 RGB PROCESS 247 147 30 R=251 G=176 B=59 RGB PROCESS 251 176 59 R=252 G=238 B=33 RGB PROCESS 252 238 33 R=217 G=224 B=33 RGB PROCESS 217 224 33 R=140 G=198 B=63 RGB PROCESS 140 198 63 R=57 G=181 B=74 RGB PROCESS 57 181 74 R=0 G=146 B=69 RGB PROCESS 0 146 69 R=0 G=104 B=55 RGB PROCESS 0 104 55 R=34 G=181 B=115 RGB PROCESS 34 181 115 R=0 G=169 B=157 RGB PROCESS 0 169 157 R=41 G=171 B=226 RGB PROCESS 41 171 226 R=0 G=113 B=188 RGB PROCESS 0 113 188 R=46 G=49 B=146 RGB PROCESS 46 49 146 R=27 G=20 B=100 RGB PROCESS 27 20 100 R=102 G=45 B=145 RGB PROCESS 102 45 145 R=147 G=39 B=143 RGB PROCESS 147 39 143 R=158 G=0 B=93 RGB PROCESS 158 0 93 R=212 G=20 B=90 RGB PROCESS 212 20 90 R=237 G=30 B=121 RGB PROCESS 237 30 121 R=199 G=178 B=153 RGB PROCESS 199 178 153 R=153 G=134 B=117 RGB PROCESS 153 134 117 R=115 G=99 B=87 RGB PROCESS 115 99 87 R=83 G=71 B=65 RGB PROCESS 83 71 65 R=198 G=156 B=109 RGB PROCESS 198 156 109 R=166 G=124 B=82 RGB PROCESS 166 124 82 R=140 G=98 B=57 RGB PROCESS 140 98 57 R=117 G=76 B=36 RGB PROCESS 117 76 36 R=96 G=56 B=19 RGB PROCESS 96 56 19 R=66 G=33 B=11 RGB PROCESS 66 33 11 Grays 1 R=0 G=0 B=0 RGB PROCESS 0 0 0 R=26 G=26 B=26 RGB PROCESS 26 26 26 R=51 G=51 B=51 RGB PROCESS 51 51 51 R=77 G=77 B=77 RGB PROCESS 77 77 77 R=102 G=102 B=102 RGB PROCESS 102 102 102 R=128 G=128 B=128 RGB PROCESS 128 128 128 R=153 G=153 B=153 RGB PROCESS 153 153 153 R=179 G=179 B=179 RGB PROCESS 179 179 179 R=204 G=204 B=204 RGB PROCESS 204 204 204 R=230 G=230 B=230 RGB PROCESS 230 230 230 R=242 G=242 B=242 RGB PROCESS 242 242 242 Web Color Group 1 R=63 G=169 B=245 RGB PROCESS 63 169 245 R=122 G=201 B=67 RGB PROCESS 122 201 67 R=255 G=147 B=30 RGB PROCESS 255 147 30 R=255 G=29 B=37 RGB PROCESS 255 29 37 R=255 G=123 B=172 RGB PROCESS 255 123 172 R=189 G=204 B=212 RGB PROCESS 189 204 212 Adobe PDF library 9.00 % &&end XMP packet marker&& [{ai_metadata_stream_123} <> /PUT AI11_PDFMark5 [/Document 1 dict begin /Metadata {ai_metadata_stream_123} def currentdict end /BDC AI11_PDFMark5 %ADOEndClientInjection: PageSetup End "AI11EPS" %%EndPageSetup 1 -1 scale 0 -1694.5 translate pgsv [1 0 0 1 0 0 ]ct gsave np gsave 0 0 mo 0 1694.5 li 1121 1694.5 li 1121 0 li cp clp [1 0 0 1 0 0 ]ct 1108.92 1682.78 mo 12.1719 1682.78 li 12.1719 40.4468 li 1108.92 40.4468 li 1108.92 1682.78 li cp false sop /0 [/DeviceCMYK] /CSA add_res 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 1 lw 0 lc 0 lj 4 ml [] 0 dsh true sadj 1108.92 1682.78 mo 12.1719 1682.78 li 12.1719 40.4468 li 1108.92 40.4468 li 1108.92 1682.78 li cp .193668 .150057 .155337 3.0518e-05 cmyk @ 1108.92 40.7837 mo 12.1738 40.7837 li 12.1738 11.6387 li 1108.92 11.6387 li 1108.92 40.7837 li cp f 1108.92 40.7837 mo 12.1738 40.7837 li 12.1738 11.6387 li 1108.92 11.6387 li 1108.92 40.7837 li cp @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT Initial %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. 12 dict dup begin /FontType 1 def /FontName /ArialMT def /FontInfo 5 dict dup begin /ItalicAngle 0 def /FSType 8 def end def /PaintType 0 def /FontMatrix [0.001 0 0 0.001 0 0] def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 65 /A put dup 67 /C put dup 69 /E put dup 70 /F put dup 72 /H put dup 73 /I put dup 76 /L put dup 78 /N put dup 79 /O put dup 82 /R put dup 83 /S put dup 84 /T put dup 86 /V put dup 95 /underscore put def /FontBBox {-665 -325 2000 1006} def end systemdict begin dup /Private 7 dict dup begin /|- {def} def /| {put} def /BlueValues [0 0] def /password 5839 def /MinFeature {16 16} def /OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup /strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def /Subrs 5 array dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> | dup 1 <1C60D8A8C9C3D06D9E> | dup 2 <1C60D8A8C9C202D79A> | dup 3 <1C60D8A849> | dup 4 <1C60D8A8CC3674F41144B13B77> | def put dup /CharStrings 15 dict dup begin /.notdef <1C60D8A8C9B6E3FA5101D97F0BCF44F7161DEB1E2A84766DD477E7 C8A936AA182F5809A9> |- /A <1C60D8A8C9B64EDFED26B9E21A4F64848088903AC9891CF791BDBC4AB29A CC8B3E8D13924A7DDE35F09AC5F4A8229C87124C732743268600EF8D4582208B D16D82> |- /C <1C60D8A8C9B6079F6D1C46AC2732DFBDC9143C94793529C1940296210AAD 6EE09C39CFC4DAB7C5F3BA33C9E10838E0BC6FC9318A4E57F309EE20438B434C 69AE73A499211EBA75E22A57C1581D93869428818DC700A28C027571D7047CDF A8B017AACDE96DE4B2579EFD2C826A30F6EBDDC52701A22CDD669ADC60B66F32 261A1F55EDEF9802FD4511E0EF130772EDFD708A4113A1EDB1E717E0FA7D3148 51DE59> |- /E <1C60D8A8C9B64EDFFB83C6241DB110BEE5AB2FAD9D94B39ED5E81E7411B6 6E9361DDE78FC667AB91EF9824> |- /F <1C60D8A8C9B7D8BE1661AF70E1029B586475C590C02056C6BE2BB9C2329F 7F6ED1937D1E8A10> |- /H <1C60D8A8C9B6079F62EE7568E8B09CBA01F57B4ACE6DA24AC6EA79287DF3 1270F7DC42D147A6FAB1DABB6C> |- /I <1C60D8A8C9B854D0F463D3892D665712D6B7D6A81E> |- /L <1C60D8A8C9B7EF3224EC6E192BD0FEC2445DA87B99CF0E03A72A> |- /N <1C60D8A8C9B6079F629170873C67115641D0B6890161EC48F71E8D2106F3 AC927984C1E464F121F968> |- /O <1C60D8A8C9B6FF86E621E1FAD9CC02A23AF5AAF7451327A9277DAE8170AA C8E603A02E3EEFF561DDADE9FD6F6F16B77EE709DD797791A73F1C532C58482F 9C51E1EAE7EA6E4D820E6AA1026E7BE345B1C97C5D9EBBEF4840C4188F96B538 0E7625249BBAD172254404F6F1CB17CABA1F131B17AAAB56C5D3B94E3AC2C2E9 F0A0D079C435D0249DF6C47E18FCF00E7FFE3C519BB35DF797EF47286BDCA762 289BE1> |- /R <1C60D8A8C9B6079F62E89B521DCDBE3DC5497B8DD99916239C0DFA5ED4F6 32B33575F4260343AF5DB7D477D12055F49C5E99C0AC176EAD42723223937F2B A15ECAD7751CB6A136B700EE485E38E7CDB87D9465C90BB8E29B04FDDA42609F BC3833B9FB5105619F4CC434003085F449D9FD5022725306B331FB97B31D2952 57B180DE1FD5465D256CCA19301DA97326882845130A5257BF61307ABA64C3F0 B222> |- /S <1C60D8A8C9B64EDFE3D078722A65C31955939D63AA5C8A4945719B5E558E 3B73A676CC12D1E18D93A8DC67C074D6E352D426981DE76F8EC4CFE5DAE051BE 47753A7C234C4B8D7D9F50292A61882B5500CC701F878FE626CDC6D4C322BB39 1537921D673F5AEE3EC19E36E7EFEC0F06A0EA4EAAB6BBA94DDCD11A6A564B13 B510F8C915848233B82F046D854DCD4F1639F149305DC73D3C68DF8AEB47A96A 30E55CF8BAD07FA2825BCE0D675F1CC2EBE61B07B772130E23119250F1EBF8FE 12A2098D9F09F3F21BDC41666CA4A0BB70D5F0A750B44BB93A5FBFDD2BF8DE45 0B277265536F77D5BD6F44FB72FF2E708C60107653AE44BFFB26AFF8> |- /T <1C60D8A8C9B7D8BE16D2C1CA7ED2E06F707C0E9530AE37D06FF7501A595D 3927> |- /V <1C60D8A8C9B64EDFFB759009DDECF50F0319B844741E3CEB2C0ABDDB89E7 563FC0955B866D61D9CC736D3C346A5623E20C1E4D> |- /underscore <1C60D8A8C9B7EF3224BB0E94C1F3EA8D5F87D58A9CCE> |- end put end dup /FontName get exch definefont pop end %ADOEndSubsetFont /RQJJJT+ArialMT /ArialMT findfont ct_VMDictPut /RQJJJT+ArialMT*1 [65{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /.notdef /V 8{/.notdef}rp /underscore 160{/.notdef}rp] RQJJJT+ArialMT nf RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 434.282 33.749 mo (EINA_LIST_REVERSE_FOREACH)sh %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJT+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /U <1C60D8A8C9B6079F6D3F1E4545C3E1CC9D8EF54571065F01BE5A50957BD2 D8AD04D30C23B37CA98B969ECB5CA0D9A7C563636CB33377BB3DEB53D45DD0F3 E333CD69EA3B53D63C91B303CFDF29F59C20776D4DC576C9C080B76AB60A2167 3EFC1F645BF33D33929C60> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJT+ArialMT /Encoding get dup 85 /U put pop %ADOEndSubsetFont /RQJJJT+ArialMT*1 [65{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore 160{/.notdef}rp] RQJJJT+ArialMT nf RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 36.2153 1466.78 mo (NULL)sh RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 1032.89 1466.78 mo (NULL)sh %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJT+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /a <1C60D8A8C9B7EF32244AC11AA6BAAA29EE8C78E0E7206F4A2776A2D1EA7D C8D9A28C62ADE3B609CF5E2EE23C64D0B75055BD249ADFEC7B4224D040D883CA 6747571955349CF8AD17E94E6FE5D0259F4D55623D4DC5C3CB4AC64A7A87DBBA 48B7420D7990F3C261DB9838C5B90BF72B82C8238A1A58FE8E6137AAFE2405FD 710F7ADB95B4F576668A6DB104942C88ED8D01E4E58188F5E32A24B5B964D5CE C10C08F76C0F472E84A0FB6EB5E37AAEE233DE54C212B0A012D3E20F864B2D53 463E221F81B784B6F7BE81FBFCAE6785C2430454DD81C436E0A516BF8C8307B2 879FF86378629C5EA7E586D83C83550D2E732930F7FE3BAD07B86C81E024D177 B5D88A> |- /c <1C60D8A8C9B7A73DB9D8FD6AA4FBAF8D65C36EA1D4AADBD389F972C0EDCE 9E7F36285FA93A80D3647871D2CE5AAAA6A6A370DC54E1595FB6AAB3E389C9F7 BBBB85F787D6C418B35B940450E5E243895ECFD2205F51B2D154CFFECF34148C 344C1EF806F9AAF539FB961E3EFAF6353381E833DF7C0542FFF27122A28D3654 8FE63FC8465B1B685766E782F0> |- /g <1C60D8A8C9B7EF322851D9960AE993FFFAEAEBBA8EF734FCE7E65DE817A0 65D42CB79E2F25620DE08D5E215259551032CAAB8B674940F5B4BAAF40766D55 9B26E9A0C2464D0F504C4718579670D62707FEBC08A2CD71BF2528BA3A24A0C2 47BA70F9E817A1709BB6F7008D6C121249525DEE3A93F6DA16170F68BD3667DC 9FF533284D078DAE144C0DB42F376056761CFA5A80B4ED7D37E57EA658F3FBD8 8F779C828BF992A89F02F1397EF90BADA44FB7F676FF0295FF6F9748D66EBF57 5C72F67F4BEBB98F8AFA57505EC9> |- /i <1C60D8A8C9B88C087228DFC7C7ABCC71B868F57EDB285655227000619B17 1C8A80AB> |- /n <1C60D8A8C9B7EF322B3BE19FB964E04D2DB06D4930CA5D8F41D2EF3A285C 0BD536CD2C57668EB9E30311BF9A2872DFB44F2BF2A4683B5D66FA01BB1CCDAD E9C8A9EE2CB010715D3D6DFF0E843CF77C87A07D1DBD0482675E3CA1DAA2A520 3A8015DD09B7CE> |- /o <1C60D8A8C9B7EF32334FFE7884F6C3B903D000D9FD76C2EAE8EDCCA90A98 7875625CA0393015EF6761BE1C3B6D9E9DA4BABE1DD313B783BCBF8F620C846C 7F6361946173FB7A4A6BF94EAA0CB4947DD1974AF371F3C211E584576DE9AD79 F9DA988E9E531810E3876F3029BB1D2ED366525F30E48DD7CE3C9B66C5CC099F 518C54BB58C51D6FB6D0C8> |- /t <1C60D8A8C9B854D0F45CF665C7276F8075B54A4ECD6470F395A458CA2D06 5152075036EEECA213894C1EA0DACFBD370590F4B831924E5BDA5281442349CF AD2545E0750C3004A129C25B1EAA8DEF5DA8BF1998E80AE266F591E64CB5127F 5C42C88FB43C> |- /u <1C60D8A8C9B7EF32240889FE90FF09F794E92023A18223CCBE3629AB7F51 7D090BF7D55C0A5A8EADD9BE381137FE8504E8B2DB3D16839889E327241ACA8F 992A2BB9AD2BCE57ADB306CE2789439E67A64C32BE8669C197F5851EE3879399 0906DA8D7F8ACFF6D70790F06B02> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJT+ArialMT /Encoding get dup 97 /a put dup 99 /c put dup 103 /g put dup 105 /i put dup 110 /n put dup 111 /o put dup 116 /t put dup 117 /u put pop %ADOEndSubsetFont /RQJJJT+ArialMT*1 [65{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c 3{/.notdef}rp /g /.notdef /i 4{/.notdef}rp /n /o 4{/.notdef}rp /t /u 138{/.notdef}rp] RQJJJT+ArialMT nf RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 192.565 1487.79 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJT+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /e <1C60D8A8C9B7EF322472FA01213C7AD90A23B536C2309DD40D370E2449B0 D0FEF85A6BE8067F30686F143E75903EB6FA56935472EF47CE3F33433C2F0C8B 6FA51573AE54B2C516F6F024F8775AD6639544E339FC2A328548BCBFD58B0EEA 03B7DC3AB069F44477958BFBFAAC7196D411DF9BE0B78A86C4BC33EC5D7C3729 5284C077711C162623860AACA404F650F8D516970257> |- /p <1C60D8A8C9B7EF322B3B0CFC8FED720BC90E20B208D27DC4B8F11F10B964 70F8B4F5FABEC7F7010781F5077B417FE44279776F2304ACD6E0EA12F436330D C4B79C907B9D28468D10FF9256A7D2CA504E4498D719ACD86FCA89B33C61F556 CF1168C3F262A781155D5EBF0C47D71C584AB93037B47B18D39FE408A49672C1 E63F9E8368D19E113FC95C59A9FA4650E46F6399F2FF256844E27568BA34B9> |- /r <1C60D8A8C9B81F2C3A9694980E415F1DEF5C498473095A24D1BE11285789 4FEA85DB28AD762FB8D2F4CAC5BF8B9C18D8A2DFCF155E0751AF58898A6619AD D420F549AB7C795751D32E8EE6> |- /v <1C60D8A8C9B7A73DB99D94C9412F55B03E92C174A4755E69F97C27D9162B 37724F74F272B140D258652D102C2EAC46833C73F9> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJT+ArialMT /Encoding get dup 101 /e put dup 112 /p put dup 114 /r put dup 118 /v put pop %ADOEndSubsetFont /RQJJJT+ArialMT*1 [65{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /.notdef /e /.notdef /g /.notdef /i 4{/.notdef}rp /n /o /p /.notdef /r /.notdef /t /u /v 137{/.notdef}rp] RQJJJT+ArialMT nf RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 115.87 1494.38 mo (prev)sh .25 lw 318.451 1500.25 mo 164.004 1500.25 li 164.004 1421.5 li 318.451 1421.5 li 318.451 1500.25 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJT+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /d <1C60D8A8C9B7EF322407C6655A1B3652DB8522EB511BE6B0855A72D96214 58876CAD1FA22A00635F436A34E23EAFC09C394044ECC1389CD99E4AF1C1F6DD 52305C78619784840FC37A805B0805EF290BC9E049CF068290816CB7E74DB612 941355BCE71CBDD11DD0F9CA29531036ED13EFB9CAB613E9F630FBBC9408EF13 CE4683D92968530F64760C3DF85C7C7EA06EBA8BF859> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJT+ArialMT /Encoding get dup 100 /d put pop %ADOEndSubsetFont /RQJJJT+ArialMT*1 [65{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /.notdef /g /.notdef /i 4{/.notdef}rp /n /o /p /.notdef /r /.notdef /t /u /v 137{/.notdef}rp] RQJJJT+ArialMT nf RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 221.157 1446.69 mo (data)sh .5 lw 172.031 1478.13 mo 113.174 1478.13 li .75021 .679683 .670222 .90164 cmyk @ 113.701 1475.25 mo 106.938 1478.13 li 113.701 1481.01 li 113.701 1475.25 li cp f .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJT+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /x <1C60D8A8C9B7A73DB920A1A3B81DE7234ACAA5546B4C65820CF3C50E1629 C5A6423BAA34A2ECA8C7FE4B71726AC6704CC23AF1725AFB30D2892FC1BDDAFE AD7BE7BD65F1051699CCF4B0> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJT+ArialMT /Encoding get dup 120 /x put pop %ADOEndSubsetFont /RQJJJT+ArialMT*1 [65{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /.notdef /g /.notdef /i 4{/.notdef}rp /n /o /p /.notdef /r /.notdef /t /u /v /.notdef /x 135{/.notdef}rp] RQJJJT+ArialMT nf RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 332.585 1440.07 mo (next)sh 309.361 1445.26 mo 366.961 1445.26 li .75021 .679683 .670222 .90164 cmyk @ 366.434 1442.38 mo 373.197 1445.26 li 366.434 1448.14 li 366.434 1442.38 li cp f .25 lw 301.646 1460.88 mo 180.809 1460.88 li @ 180.809 1414.9 mo 180.809 1506.72 li @ 301.646 1414.9 mo 301.646 1506.72 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 410.047 1487.79 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 333.351 1494.38 mo (prev)sh 535.934 1500.25 mo 381.484 1500.25 li 381.484 1421.5 li 535.934 1421.5 li 535.934 1500.25 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 438.638 1446.69 mo (data)sh .5 lw 389.512 1478.13 mo 330.654 1478.13 li .75021 .679683 .670222 .90164 cmyk @ 331.182 1475.25 mo 324.418 1478.13 li 331.182 1481.01 li 331.182 1475.25 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.067 1440.07 mo (next)sh 526.844 1445.26 mo 584.441 1445.26 li .75021 .679683 .670222 .90164 cmyk @ 583.914 1442.38 mo 590.678 1445.26 li 583.914 1448.14 li 583.914 1442.38 li cp f .25 lw 519.127 1460.88 mo 398.289 1460.88 li @ 398.289 1414.9 mo 398.289 1506.72 li @ 519.129 1414.9 mo 519.129 1506.72 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 627.123 1487.79 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.427 1494.38 mo (prev)sh 753.008 1500.25 mo 598.559 1500.25 li 598.559 1421.5 li 753.008 1421.5 li 753.008 1500.25 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 655.714 1446.69 mo (data)sh .5 lw 606.588 1478.13 mo 547.73 1478.13 li .75021 .679683 .670222 .90164 cmyk @ 548.258 1475.25 mo 541.494 1478.13 li 548.258 1481.01 li 548.258 1475.25 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 767.143 1440.07 mo (next)sh 743.918 1445.26 mo 801.518 1445.26 li .75021 .679683 .670222 .90164 cmyk @ 800.99 1442.38 mo 807.754 1445.26 li 800.99 1448.14 li 800.99 1442.38 li cp f .25 lw 736.203 1460.88 mo 615.365 1460.88 li @ 615.365 1414.9 mo 615.365 1506.72 li @ 736.203 1414.9 mo 736.203 1506.72 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 843.515 1487.79 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 766.819 1494.38 mo (prev)sh 969.4 1500.25 mo 814.951 1500.25 li 814.951 1421.5 li 969.4 1421.5 li 969.4 1500.25 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 872.106 1446.69 mo (data)sh .5 lw 822.979 1478.13 mo 764.121 1478.13 li .75021 .679683 .670222 .90164 cmyk @ 764.648 1475.25 mo 757.885 1478.13 li 764.648 1481.01 li 764.648 1475.25 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 983.535 1440.07 mo (next)sh 960.311 1445.26 mo 1017.91 1445.26 li .75021 .679683 .670222 .90164 cmyk @ 1017.38 1442.38 mo 1024.15 1445.26 li 1017.38 1448.14 li 1017.38 1442.38 li cp f .25 lw 952.596 1460.88 mo 831.756 1460.88 li @ 831.756 1414.9 mo 831.756 1506.72 li @ 952.596 1414.9 mo 952.596 1506.72 li @ .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJT+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /l <1C60D8A8C9B88C08722AD20D19A90F9064193C8D82> |- /s <1C60D8A8C9B7A73DA057E90C9BFBE0FE301E99CB771FA2F05368A6342B5F 80456D91458EA2F3CAD55CDF89BFF34EEB39D7DD325B057E2BF0E9B878C214E2 BD1BD70DCABE10E0DC8EBCF7B100B55EBE94FB0F17084E21EBD279B324AEABD9 6538911D053BE9D7ECBF43F934B1033C9E405BBE31E7EDB643609C8D779046E1 B250C3CF05E6FA4787649137D90F47F85972A6603BA900DD7CB710E02662DB32 87CB26D7B7AE794611498865FC85A28083D2F6C2DEC302D47619A4A577C5B843 5558FCFE71A1BB6783AFD5F58B6D2C03593B3F2297A66A7E6D13C1E321C57F41 72D53C8FCAF4D28F2B78D3A4BF03> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJT+ArialMT /Encoding get dup 108 /l put dup 115 /s put pop %ADOEndSubsetFont /RQJJJT+ArialMT*1 [65{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /.notdef /g /.notdef /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /.notdef /x 135{/.notdef}rp] RQJJJT+ArialMT nf RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 231.562 1570.86 mo (list)sh .5 lw 318.418 1523.29 mo 318.418 1529.85 li 164.004 1529.85 li 164.004 1523.29 li .75021 .679683 .670222 .90164 cmyk @ 241.207 1555.63 mo 241.207 1540.63 li @ 244.094 1541.16 mo 241.209 1534.4 li 238.326 1541.16 li 244.094 1541.16 li cp f 186.15 1559.24 mo 186.629 1559.16 187.104 1559.12 187.57 1559.12 cv 188.023 1559.12 188.49 1559.16 188.971 1559.24 cv 188.971 1569.74 li 188.971 1570.16 188.992 1570.49 189.039 1570.74 cv 189.086 1571 189.16 1571.19 189.26 1571.33 cv 189.359 1571.47 189.49 1571.57 189.65 1571.62 cv 189.811 1571.68 190.01 1571.7 190.25 1571.7 cv 190.355 1571.7 190.473 1571.7 190.6 1571.68 cv 190.727 1571.67 190.85 1571.65 190.971 1571.62 cv 191.117 1572.17 191.189 1572.7 191.189 1573.22 cv 191.189 1573.33 191.189 1573.43 191.189 1573.51 cv 191.189 1573.6 191.176 1573.7 191.15 1573.8 cv 190.936 1573.87 190.68 1573.92 190.379 1573.94 cv 190.08 1573.97 189.803 1573.98 189.551 1573.98 cv 188.523 1573.98 187.699 1573.7 187.08 1573.13 cv 186.459 1572.57 186.15 1571.64 186.15 1570.36 cv 186.15 1559.24 li cp .13611 .942718 .883391 .0357977 cmyk f 189.32 1555.63 mo 189.32 1540.63 li .75021 .679683 .670222 .90164 cmyk @ 192.207 1541.16 mo 189.322 1534.4 li 186.439 1541.16 li 192.207 1541.16 li cp f 241.207 1410.63 mo 241.207 1395.63 li @ 244.094 1396.16 mo 241.209 1389.4 li 238.326 1396.16 li 244.094 1396.16 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 701.985 1633.58 mo (last)sh 458.572 1511.15 mo 458.572 1573.2 li .75021 .679683 .670222 .90164 cmyk @ 461.457 1572.68 mo 458.574 1579.44 li 455.691 1572.68 li 461.457 1572.68 li cp f 890.852 1543.16 mo 890.852 1618.36 li 506.631 1618.36 li @ 893.738 1543.69 mo 890.854 1536.92 li 887.971 1543.69 li 893.738 1543.69 li cp f 386.811 1599.79 mo 277.357 1599.79 li 277.357 1511.15 li @ 386.283 1596.91 mo 393.047 1599.79 li 386.283 1602.67 li 386.283 1596.91 li cp f 529.045 1599.79 mo 675.482 1599.79 li 675.482 1511.15 li @ 676.121 1599.79 mo 859.791 1599.79 li 859.791 1511.15 li @ 529.572 1596.91 mo 522.809 1599.79 li 529.572 1602.67 li 529.572 1596.91 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJT+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /space <1C60D8A8C9B854D00D> |- /four <1C60D8A8C9B7EF32245FD0373664E2B980D56E9D691EE5A95B5050BFE 023151494A4A591D0216BE411323E192BCC75A7A889FA57031D> |- /colon <1C60D8A8C9B854D0F461D1A979903F917C33CF6EDB0A437B4DDC7150 150B60E1> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJT+ArialMT /Encoding get dup 32 /space put dup 52 /four put dup 58 /colon put pop %ADOEndSubsetFont /RQJJJT+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /.notdef /g /.notdef /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /.notdef /x 135{/.notdef}rp] RQJJJT+ArialMT nf RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 412.786 1614.61 mo (count: 4)sh .25 lw 513.281 1627.02 mo 402.982 1627.02 li 402.982 1587.65 li 513.281 1587.65 li 513.281 1627.02 li cp .75021 .679683 .670222 .90164 cmyk @ 496.59 1581.09 mo 496.59 1633.58 li @ .5 lw 968.064 1523.29 mo 968.064 1529.85 li 813.648 1529.85 li 813.648 1523.29 li @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJT+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /quotedblleft <1C60D8A8C9B81F2C29FEF6324F1D6735A7858A1650FF442B8 8CE2923602889F1B3B1A969EB1BD5F20410F3DB624E1F268B8C262BA05A2218D B63CD4FCDB84E55D828665FCCF9A1929C551F51708569F37B29C42371CBCFE1A DDF91> |- /quotedblright <1C60D8A8C9B81F2C2EF77CAB1B3909C6126BCD66FE80E8DB 29C6D13E62A206E4D2C01E4CBD15B6CCAE445397315B1B2A4223B2D9E8CFF123 FD968D68396195C7E56F7437E66455F3A5CFF0D3E7C9903481BE93623D7A22F2 1FF9D67D> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJT+ArialMT /Encoding get dup 210 /quotedblleft put dup 211 /quotedblright put pop %ADOEndSubsetFont /RQJJJT+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /.notdef /g /.notdef /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /.notdef /x 89{/.notdef}rp /quotedblleft /quotedblright 44{/.notdef}rp] RQJJJT+ArialMT nf RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 217.265 1375.67 mo (\322one\323)sh 459.572 1410.63 mo 459.572 1395.63 li .75021 .679683 .670222 .90164 cmyk @ 462.457 1396.16 mo 459.574 1389.4 li 456.691 1396.16 li 462.457 1396.16 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJT+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /w <1C60D8A8C9B6079F623B1BE11B16961396A063624588AB070AF82F2F6FEA 646F6999B73C9332DE350CB17016778F548397735D109B5E72AA9A92DCB1D726 4371419D7043A117419C0FAF4C> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJT+ArialMT /Encoding get dup 119 /w put pop %ADOEndSubsetFont /RQJJJT+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /.notdef /g /.notdef /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /w /x 89{/.notdef}rp /quotedblleft /quotedblright 44{/.notdef}rp] RQJJJT+ArialMT nf RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 437.229 1375.67 mo (\322two\323)sh 675.479 1410.63 mo 675.479 1395.63 li .75021 .679683 .670222 .90164 cmyk @ 678.363 1396.16 mo 675.48 1389.4 li 672.598 1396.16 li 678.363 1396.16 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJT+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /h <1C60D8A8C9B7EF322B3BE19FB964E037672C8A279BC86F7B9BF0C8203E13 1450D56E388301CEAE43162551FBE05CABF94DC3B5DDFBB4DA55D11470EBD41A C970CEE2D2EFA88D51157B4EF5536CB673423CDDB06FA774D27105AD2B1AC2DF A8> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJT+ArialMT /Encoding get dup 104 /h put pop %ADOEndSubsetFont /RQJJJT+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /.notdef /g /h /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /w /x 89{/.notdef}rp /quotedblleft /quotedblright 44{/.notdef}rp] RQJJJT+ArialMT nf RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 648.678 1375.67 mo (\322three\323)sh 892.736 1410.63 mo 892.736 1395.63 li .75021 .679683 .670222 .90164 cmyk @ 895.621 1396.16 mo 892.738 1389.4 li 889.855 1396.16 li 895.621 1396.16 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJT+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /f <1C60D8A8C9B854D0F47057B2F13303E258FCAEE9E8BBA6E28AE872907C56 63BFD2A0F535ED0EB011F2C2A875E053FAF73E8AA16B1F99510A6812F90D61CF 3F1DA5EF558899A9AE12AAF6AF4568E0F6003B0A2FF6F33293> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJT+ArialMT /Encoding get dup 102 /f put pop %ADOEndSubsetFont /RQJJJT+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /f /g /h /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /w /x 89{/.notdef}rp /quotedblleft /quotedblright 44{/.notdef}rp] RQJJJT+ArialMT nf RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 868.671 1375.67 mo (\322four\323)sh .13611 .942718 .883391 .0357977 cmyk %ADOBeginSubsetFont: Arial-BoldMT Initial %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. 12 dict dup begin /FontType 1 def /FontName /Arial-BoldMT def /FontInfo 5 dict dup begin /ItalicAngle 0 def /FSType 8 def end def /PaintType 0 def /FontMatrix [0.001 0 0 0.001 0 0] def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 97 /a put dup 100 /d put dup 116 /t put def /FontBBox {-628 -376 2000 1010} def end systemdict begin dup /Private 7 dict dup begin /|- {def} def /| {put} def /BlueValues [0 0] def /password 5839 def /MinFeature {16 16} def /OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup /strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def /Subrs 5 array dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> | dup 1 <1C60D8A8C9C3D06D9E> | dup 2 <1C60D8A8C9C202D79A> | dup 3 <1C60D8A849> | dup 4 <1C60D8A8CC3674F41144B13B77> | def put dup /CharStrings 4 dict dup begin /.notdef <1C60D8A8C9B6E3FA5101D97F0BCF44F7161DEB1E2A84766DD477E7 C8A936AA182F5809A9> |- /a <1C60D8A8C9B7EF322B767253CD3BE18E6883E9BFEE680E471A3E543E6B62 9FFE599C78BF6E9BC360B4FD3F4193BE88F8A133134BAA650EBC31A9DBCA73D4 43463241F1A95A036612031AED6950283B0D14D29C497685C55C7946BF118B40 E370FC30C35C6DDC0B89863AEC8E7000DED8B394346462262BD43999923C02BB 76E45D38F5FACA7247DBA2EBA6371EEFDE7DB20E4C849532AD601D5FE565E2F9 524F3166F0EDA1C9CBD6F2D9FAE6CBD991E5FC9CACD3E5ACCC612FA46CAB6837 78C9E93119C2E309BBBA2FB6B108D4ACC24630A4E27912F2F48E37DD6F256C92 0ECC30772CD6DD1CCCB84D330E3FAA> |- /d <1C60D8A8C9B7D8BE1937528A8A04A3F08B6D80EAB145BDD9DBE53FB1B70A 6DDBF10422FFF8F4C48F788DD104B24EA5229392446A977753676010F4776395 4952B19E372D9318BC5C7A48B7A85FDEA74862756E58887CA2F53B9D7C319DD7 A84656FBF89C0C66533E86D0B18AA2C13EC41ADA69D4E07EF68978C6DC11D8A9 705A6EC736D21DD4607DF3> |- /t <1C60D8A8C9B81F2C3AD0BF8CA40D7105A9B3D27345F202DEBDE44606EFD0 E90137AE13DC9D19FB7B4ABCA40FDADEB59FF02A690A47D6F26E8BDAADCFC051 3C14FCD80BF39C6AFCEFE1132622D45FBB576E32F86682C5BCCAD00B4E7E3753 50009EFCA5AC835906F56B697B29> |- end put end dup /FontName get exch definefont pop end %ADOEndSubsetFont /RQJJJU+Arial-BoldMT /Arial-BoldMT findfont ct_VMDictPut /RQJJJU+Arial-BoldMT*1 [97{/.notdef}rp /a 2{/.notdef}rp /d 15{/.notdef}rp /t 139{/.notdef}rp] RQJJJU+Arial-BoldMT nf RQJJJU+Arial-BoldMT*1 [20 0 0 -20 0 0 ]msf 306.091 1376.67 mo (data)sh 298.984 1370.17 mo 283.984 1370.17 li .75021 .679683 .670222 .90164 cmyk @ 284.512 1373.05 mo 277.748 1370.17 li 284.512 1367.29 li 284.512 1373.05 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 487.505 93.7988 mo (FIRST)sh 533.435 93.7988 mo ( INTERA)sh 595.365 93.7988 mo (TION)sh RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 36.2153 1060.63 mo (NULL)sh RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 1032.89 1060.63 mo (NULL)sh RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 192.565 1081.64 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 115.87 1088.23 mo (prev)sh .25 lw 318.451 1094.1 mo 164.004 1094.1 li 164.004 1015.35 li 318.451 1015.35 li 318.451 1094.1 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 221.157 1040.54 mo (data)sh .5 lw 172.031 1071.98 mo 113.174 1071.98 li .75021 .679683 .670222 .90164 cmyk @ 113.701 1069.09 mo 106.938 1071.98 li 113.701 1074.86 li 113.701 1069.09 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 332.585 1033.91 mo (next)sh 309.361 1039.11 mo 366.961 1039.11 li .75021 .679683 .670222 .90164 cmyk @ 366.434 1036.23 mo 373.197 1039.11 li 366.434 1041.99 li 366.434 1036.23 li cp f .25 lw 301.646 1054.72 mo 180.809 1054.72 li @ 180.809 1008.75 mo 180.809 1100.56 li @ 301.646 1008.75 mo 301.646 1100.56 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 410.047 1081.64 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 333.351 1088.23 mo (prev)sh 535.934 1094.1 mo 381.484 1094.1 li 381.484 1015.35 li 535.934 1015.35 li 535.934 1094.1 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 438.638 1040.54 mo (data)sh .5 lw 389.512 1071.98 mo 330.654 1071.98 li .75021 .679683 .670222 .90164 cmyk @ 331.182 1069.09 mo 324.418 1071.98 li 331.182 1074.86 li 331.182 1069.09 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.067 1033.91 mo (next)sh 526.844 1039.11 mo 584.441 1039.11 li .75021 .679683 .670222 .90164 cmyk @ 583.914 1036.23 mo 590.678 1039.11 li 583.914 1041.99 li 583.914 1036.23 li cp f .25 lw 519.127 1054.72 mo 398.289 1054.72 li @ 398.289 1008.75 mo 398.289 1100.56 li @ 519.129 1008.75 mo 519.129 1100.56 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 627.123 1081.64 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.427 1088.23 mo (prev)sh 753.008 1094.1 mo 598.559 1094.1 li 598.559 1015.35 li 753.008 1015.35 li 753.008 1094.1 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 655.714 1040.54 mo (data)sh .5 lw 606.588 1071.98 mo 547.73 1071.98 li .75021 .679683 .670222 .90164 cmyk @ 548.258 1069.09 mo 541.494 1071.98 li 548.258 1074.86 li 548.258 1069.09 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 767.143 1033.91 mo (next)sh 743.918 1039.11 mo 801.518 1039.11 li .75021 .679683 .670222 .90164 cmyk @ 800.99 1036.23 mo 807.754 1039.11 li 800.99 1041.99 li 800.99 1036.23 li cp f .25 lw 736.203 1054.72 mo 615.365 1054.72 li @ 615.365 1008.75 mo 615.365 1100.56 li @ 736.203 1008.75 mo 736.203 1100.56 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 843.515 1081.64 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 766.819 1088.23 mo (prev)sh 969.4 1094.1 mo 814.951 1094.1 li 814.951 1015.35 li 969.4 1015.35 li 969.4 1094.1 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 872.106 1040.54 mo (data)sh .5 lw 822.979 1071.98 mo 764.121 1071.98 li .75021 .679683 .670222 .90164 cmyk @ 764.648 1069.09 mo 757.885 1071.98 li 764.648 1074.86 li 764.648 1069.09 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 983.535 1033.91 mo (next)sh 960.311 1039.11 mo 1017.91 1039.11 li .75021 .679683 .670222 .90164 cmyk @ 1017.38 1036.23 mo 1024.15 1039.11 li 1017.38 1041.99 li 1017.38 1036.23 li cp f .25 lw 952.596 1054.72 mo 831.756 1054.72 li @ 831.756 1008.75 mo 831.756 1100.56 li @ 952.596 1008.75 mo 952.596 1100.56 li @ .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 231.562 1164.71 mo (list)sh .5 lw 318.418 1117.13 mo 318.418 1123.7 li 164.004 1123.7 li 164.004 1117.13 li .75021 .679683 .670222 .90164 cmyk @ 537.135 1117.13 mo 537.135 1123.7 li 382.721 1123.7 li 382.721 1117.13 li @ 241.207 1149.48 mo 241.207 1134.48 li @ 244.094 1135.01 mo 241.209 1128.24 li 238.326 1135.01 li 244.094 1135.01 li cp f 410.152 1153.09 mo 410.631 1153.01 411.105 1152.97 411.572 1152.97 cv 412.025 1152.97 412.492 1153.01 412.973 1153.09 cv 412.973 1163.59 li 412.973 1164 412.994 1164.34 413.041 1164.59 cv 413.088 1164.84 413.162 1165.04 413.262 1165.18 cv 413.361 1165.32 413.492 1165.42 413.652 1165.47 cv 413.813 1165.52 414.012 1165.55 414.252 1165.55 cv 414.357 1165.55 414.475 1165.54 414.602 1165.53 cv 414.729 1165.52 414.852 1165.5 414.973 1165.47 cv 415.119 1166.02 415.191 1166.55 415.191 1167.07 cv 415.191 1167.18 415.191 1167.27 415.191 1167.36 cv 415.191 1167.45 415.178 1167.54 415.152 1167.65 cv 414.938 1167.72 414.682 1167.76 414.381 1167.79 cv 414.082 1167.82 413.805 1167.83 413.553 1167.83 cv 412.525 1167.83 411.701 1167.55 411.082 1166.98 cv 410.461 1166.41 410.152 1165.49 410.152 1164.21 cv 410.152 1153.09 li cp .13611 .942718 .883391 .0357977 cmyk f 413.322 1149.48 mo 413.322 1134.48 li .75021 .679683 .670222 .90164 cmyk @ 416.209 1135.01 mo 413.324 1128.24 li 410.441 1135.01 li 416.209 1135.01 li cp f 241.207 1004.48 mo 241.207 989.48 li @ 244.094 990.008 mo 241.209 983.244 li 238.326 990.008 li 244.094 990.008 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 701.985 1227.42 mo (last)sh 458.572 1105 mo 458.572 1167.05 li .75021 .679683 .670222 .90164 cmyk @ 461.457 1166.52 mo 458.574 1173.29 li 455.691 1166.52 li 461.457 1166.52 li cp f 890.852 1137 mo 890.852 1212.21 li 506.631 1212.21 li @ 893.738 1137.53 mo 890.854 1130.77 li 887.971 1137.53 li 893.738 1137.53 li cp f 386.811 1193.64 mo 277.357 1193.64 li 277.357 1105 li @ 386.283 1190.76 mo 393.047 1193.64 li 386.283 1196.52 li 386.283 1190.76 li cp f 529.045 1193.64 mo 675.482 1193.64 li 675.482 1105 li @ 676.121 1193.64 mo 859.791 1193.64 li 859.791 1105 li @ 529.572 1190.76 mo 522.809 1193.64 li 529.572 1196.52 li 529.572 1190.76 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 412.786 1208.46 mo (count: 4)sh .25 lw 513.281 1220.87 mo 402.982 1220.87 li 402.982 1181.5 li 513.281 1181.5 li 513.281 1220.87 li cp .75021 .679683 .670222 .90164 cmyk @ 496.59 1174.94 mo 496.59 1227.42 li @ .5 lw 968.064 1117.13 mo 968.064 1123.7 li 813.648 1123.7 li 813.648 1117.13 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 217.265 969.518 mo (\322one\323)sh 459.572 1004.48 mo 459.572 989.48 li .75021 .679683 .670222 .90164 cmyk @ 462.457 990.008 mo 459.574 983.244 li 456.691 990.008 li 462.457 990.008 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 437.229 969.518 mo (\322two\323)sh 675.479 1004.48 mo 675.479 989.48 li .75021 .679683 .670222 .90164 cmyk @ 678.363 990.008 mo 675.48 983.244 li 672.598 990.008 li 678.363 990.008 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 648.678 969.518 mo (\322three\323)sh 892.736 1004.48 mo 892.736 989.48 li .75021 .679683 .670222 .90164 cmyk @ 895.621 990.008 mo 892.738 983.244 li 889.855 990.008 li 895.621 990.008 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 868.671 969.518 mo (\322four\323)sh .13611 .942718 .883391 .0357977 cmyk RQJJJU+Arial-BoldMT*1 [20 0 0 -20 0 0 ]msf 520.404 970.518 mo (data)sh 513.297 964.013 mo 498.297 964.013 li .75021 .679683 .670222 .90164 cmyk @ 498.824 966.899 mo 492.061 964.015 li 498.824 961.132 li 498.824 966.899 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin RQJJJT+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /D <1C60D8A8C9B6079F6249419CF69509002AC79A016C34D114AD8C7A9DD247 4EBE314027FB7E1F48C795DC0A22C11652551956D26D402DBF3954D5C55EEDC4 D2E02D32263ABBF714C52111C5848A3EB8C8B527B0FF3362F75E292ACAF79767 633E5CF98F1E087651E36E4721AF4CBDAC7E4D68359E9108BDBBEA294A048906 8CBF65F37E7CD4C7284AEAF641D010DF> |- systemdict /gcheck known {setglobal} if end {end} if end RQJJJT+ArialMT /Encoding get dup 68 /D put pop %ADOEndSubsetFont /RQJJJT+ArialMT*1 [32{/.notdef}rp /space 19{/.notdef}rp /four 5{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /D /E /F /.notdef /H /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U /V 8{/.notdef}rp /underscore /.notdef /a /.notdef /c /d /e /f /g /h /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /w /x 89{/.notdef}rp /quotedblleft /quotedblright 44{/.notdef}rp] RQJJJT+ArialMT nf RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 476.244 499.951 mo (SECOND INTERA)sh 606.626 499.951 mo (TION)sh RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 36.2153 654.473 mo (NULL)sh RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 1032.89 654.473 mo (NULL)sh RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 192.565 675.485 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 115.87 682.078 mo (prev)sh .25 lw 318.451 687.944 mo 164.004 687.944 li 164.004 609.194 li 318.451 609.194 li 318.451 687.944 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 221.157 634.383 mo (data)sh .5 lw 172.031 665.826 mo 113.174 665.826 li .75021 .679683 .670222 .90164 cmyk @ 113.701 662.94 mo 106.938 665.824 li 113.701 668.707 li 113.701 662.94 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 332.585 627.761 mo (next)sh 309.361 632.958 mo 366.961 632.958 li .75021 .679683 .670222 .90164 cmyk @ 366.434 630.072 mo 373.197 632.956 li 366.434 635.839 li 366.434 630.072 li cp f .25 lw 301.646 648.569 mo 180.809 648.569 li @ 180.809 602.593 mo 180.809 694.411 li @ 301.646 602.593 mo 301.646 694.411 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 410.047 675.485 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 333.351 682.078 mo (prev)sh 535.934 687.944 mo 381.484 687.944 li 381.484 609.194 li 535.934 609.194 li 535.934 687.944 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 438.638 634.383 mo (data)sh .5 lw 389.512 665.826 mo 330.654 665.826 li .75021 .679683 .670222 .90164 cmyk @ 331.182 662.94 mo 324.418 665.824 li 331.182 668.707 li 331.182 662.94 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.067 627.761 mo (next)sh 526.844 632.958 mo 584.441 632.958 li .75021 .679683 .670222 .90164 cmyk @ 583.914 630.072 mo 590.678 632.956 li 583.914 635.839 li 583.914 630.072 li cp f .25 lw 519.127 648.569 mo 398.289 648.569 li @ 398.289 602.593 mo 398.289 694.411 li @ 519.129 602.593 mo 519.129 694.411 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 627.123 675.485 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.427 682.078 mo (prev)sh 753.008 687.944 mo 598.559 687.944 li 598.559 609.194 li 753.008 609.194 li 753.008 687.944 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 655.714 634.383 mo (data)sh .5 lw 606.588 665.826 mo 547.73 665.826 li .75021 .679683 .670222 .90164 cmyk @ 548.258 662.94 mo 541.494 665.824 li 548.258 668.707 li 548.258 662.94 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 767.143 627.761 mo (next)sh 743.918 632.958 mo 801.518 632.958 li .75021 .679683 .670222 .90164 cmyk @ 800.99 630.072 mo 807.754 632.956 li 800.99 635.839 li 800.99 630.072 li cp f .25 lw 736.203 648.569 mo 615.365 648.569 li @ 615.365 602.593 mo 615.365 694.411 li @ 736.203 602.593 mo 736.203 694.411 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 843.515 675.485 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 766.819 682.078 mo (prev)sh 969.4 687.944 mo 814.951 687.944 li 814.951 609.194 li 969.4 609.194 li 969.4 687.944 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 872.106 634.383 mo (data)sh .5 lw 822.979 665.826 mo 764.121 665.826 li .75021 .679683 .670222 .90164 cmyk @ 764.648 662.94 mo 757.885 665.824 li 764.648 668.707 li 764.648 662.94 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 983.535 627.761 mo (next)sh 960.311 632.958 mo 1017.91 632.958 li .75021 .679683 .670222 .90164 cmyk @ 1017.38 630.072 mo 1024.15 632.956 li 1017.38 635.839 li 1017.38 630.072 li cp f .25 lw 952.596 648.569 mo 831.756 648.569 li @ 831.756 602.593 mo 831.756 694.411 li @ 952.596 602.593 mo 952.596 694.411 li @ .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 231.562 758.557 mo (list)sh .5 lw 318.418 710.98 mo 318.418 717.543 li 164.004 717.543 li 164.004 710.98 li .75021 .679683 .670222 .90164 cmyk @ 241.207 743.328 mo 241.207 728.328 li @ 244.094 728.855 mo 241.209 722.092 li 238.326 728.855 li 244.094 728.855 li cp f 626.824 746.937 mo 627.303 746.856 627.777 746.816 628.244 746.816 cv 628.697 746.816 629.164 746.856 629.645 746.937 cv 629.645 757.437 li 629.645 757.851 629.666 758.184 629.713 758.437 cv 629.76 758.69 629.834 758.887 629.934 759.027 cv 630.033 759.167 630.164 759.264 630.324 759.316 cv 630.484 759.37 630.684 759.396 630.924 759.396 cv 631.029 759.396 631.146 759.391 631.273 759.377 cv 631.4 759.363 631.523 759.344 631.645 759.316 cv 631.791 759.863 631.863 760.396 631.863 760.917 cv 631.863 761.023 631.863 761.12 631.863 761.207 cv 631.863 761.294 631.85 761.391 631.824 761.497 cv 631.609 761.563 631.354 761.61 631.053 761.637 cv 630.754 761.663 630.477 761.677 630.225 761.677 cv 629.197 761.677 628.373 761.394 627.754 760.827 cv 627.133 760.261 626.824 759.337 626.824 758.057 cv 626.824 746.937 li cp .13611 .942718 .883391 .0357977 cmyk f 629.994 743.328 mo 629.994 728.328 li .75021 .679683 .670222 .90164 cmyk @ 632.881 728.855 mo 629.996 722.092 li 627.113 728.855 li 632.881 728.855 li cp f 754.566 710.98 mo 754.566 717.543 li 600.152 717.543 li 600.152 710.98 li @ 241.207 598.328 mo 241.207 583.328 li @ 244.094 583.855 mo 241.209 577.092 li 238.326 583.855 li 244.094 583.855 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 701.985 821.271 mo (last)sh 458.572 698.849 mo 458.572 760.897 li .75021 .679683 .670222 .90164 cmyk @ 461.457 760.37 mo 458.574 767.134 li 455.691 760.37 li 461.457 760.37 li cp f 890.852 730.853 mo 890.852 806.056 li 506.631 806.056 li @ 893.738 731.38 mo 890.854 724.616 li 887.971 731.38 li 893.738 731.38 li cp f 386.811 787.488 mo 277.357 787.488 li 277.357 698.849 li @ 386.283 784.603 mo 393.047 787.486 li 386.283 790.369 li 386.283 784.603 li cp f 529.045 787.488 mo 675.482 787.488 li 675.482 698.849 li @ 676.121 787.488 mo 859.791 787.488 li 859.791 698.849 li @ 529.572 784.603 mo 522.809 787.486 li 529.572 790.369 li 529.572 784.603 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 412.786 802.303 mo (count: 4)sh .25 lw 513.281 814.717 mo 402.982 814.717 li 402.982 775.342 li 513.281 775.342 li 513.281 814.717 li cp .75021 .679683 .670222 .90164 cmyk @ 496.59 768.786 mo 496.59 821.271 li @ .5 lw 968.064 710.98 mo 968.064 717.543 li 813.648 717.543 li 813.648 710.98 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 217.265 563.364 mo (\322one\323)sh 459.572 598.328 mo 459.572 583.328 li .75021 .679683 .670222 .90164 cmyk @ 462.457 583.855 mo 459.574 577.092 li 456.691 583.855 li 462.457 583.855 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 437.229 563.364 mo (\322two\323)sh 675.479 598.328 mo 675.479 583.328 li .75021 .679683 .670222 .90164 cmyk @ 678.363 583.855 mo 675.48 577.092 li 672.598 583.855 li 678.363 583.855 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 648.678 563.364 mo (\322three\323)sh 892.736 598.328 mo 892.736 583.328 li .75021 .679683 .670222 .90164 cmyk @ 895.621 583.855 mo 892.738 577.092 li 889.855 583.855 li 895.621 583.855 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 868.671 563.364 mo (\322four\323)sh .13611 .942718 .883391 .0357977 cmyk RQJJJU+Arial-BoldMT*1 [20 0 0 -20 0 0 ]msf 750.636 564.365 mo (data)sh 743.529 557.86 mo 728.529 557.86 li .75021 .679683 .670222 .90164 cmyk @ 729.057 560.747 mo 722.293 557.862 li 729.057 554.979 li 729.057 560.747 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 486.029 906.104 mo (THIRD INTERA)sh 596.841 906.104 mo (TION)sh RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 36.2153 248.32 mo (NULL)sh RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 1032.89 248.32 mo (NULL)sh RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 192.565 269.333 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 115.87 275.926 mo (prev)sh .25 lw 318.451 281.792 mo 164.004 281.792 li 164.004 203.042 li 318.451 203.042 li 318.451 281.792 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 221.157 228.23 mo (data)sh .5 lw 172.031 259.673 mo 113.174 259.673 li .75021 .679683 .670222 .90164 cmyk @ 113.701 256.788 mo 106.938 259.671 li 113.701 262.554 li 113.701 256.788 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 332.585 221.608 mo (next)sh 309.361 226.806 mo 366.961 226.806 li .75021 .679683 .670222 .90164 cmyk @ 366.434 223.92 mo 373.197 226.804 li 366.434 229.687 li 366.434 223.92 li cp f .25 lw 301.646 242.417 mo 180.809 242.417 li @ 180.809 196.44 mo 180.809 288.259 li @ 301.646 196.44 mo 301.646 288.259 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 410.047 269.333 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 333.351 275.926 mo (prev)sh 535.934 281.792 mo 381.484 281.792 li 381.484 203.042 li 535.934 203.042 li 535.934 281.792 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 438.638 228.23 mo (data)sh .5 lw 389.512 259.673 mo 330.654 259.673 li .75021 .679683 .670222 .90164 cmyk @ 331.182 256.788 mo 324.418 259.671 li 331.182 262.554 li 331.182 256.788 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.067 221.608 mo (next)sh 526.844 226.806 mo 584.441 226.806 li .75021 .679683 .670222 .90164 cmyk @ 583.914 223.92 mo 590.678 226.804 li 583.914 229.687 li 583.914 223.92 li cp f .25 lw 519.127 242.417 mo 398.289 242.417 li @ 398.289 196.44 mo 398.289 288.259 li @ 519.129 196.44 mo 519.129 288.259 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 627.123 269.333 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 550.427 275.926 mo (prev)sh 753.008 281.792 mo 598.559 281.792 li 598.559 203.042 li 753.008 203.042 li 753.008 281.792 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 655.714 228.23 mo (data)sh .5 lw 606.588 259.673 mo 547.73 259.673 li .75021 .679683 .670222 .90164 cmyk @ 548.258 256.788 mo 541.494 259.671 li 548.258 262.554 li 548.258 256.788 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 767.143 221.608 mo (next)sh 743.918 226.806 mo 801.518 226.806 li .75021 .679683 .670222 .90164 cmyk @ 800.99 223.92 mo 807.754 226.804 li 800.99 229.687 li 800.99 223.92 li cp f .25 lw 736.203 242.417 mo 615.365 242.417 li @ 615.365 196.44 mo 615.365 288.259 li @ 736.203 196.44 mo 736.203 288.259 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 843.515 269.333 mo (accounting)sh .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 766.819 275.926 mo (prev)sh 969.4 281.792 mo 814.951 281.792 li 814.951 203.042 li 969.4 203.042 li 969.4 281.792 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 872.106 228.23 mo (data)sh .5 lw 822.979 259.673 mo 764.121 259.673 li .75021 .679683 .670222 .90164 cmyk @ 764.648 256.788 mo 757.885 259.671 li 764.648 262.554 li 764.648 256.788 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 983.535 221.608 mo (next)sh 960.311 226.806 mo 1017.91 226.806 li .75021 .679683 .670222 .90164 cmyk @ 1017.38 223.92 mo 1024.15 226.804 li 1017.38 229.687 li 1017.38 223.92 li cp f .25 lw 952.596 242.417 mo 831.756 242.417 li @ 831.756 196.44 mo 831.756 288.259 li @ 952.596 196.44 mo 952.596 288.259 li @ .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 231.562 352.404 mo (list)sh .5 lw 318.418 304.828 mo 318.418 311.391 li 164.004 311.391 li 164.004 304.828 li .75021 .679683 .670222 .90164 cmyk @ 241.207 337.175 mo 241.207 322.175 li @ 244.094 322.703 mo 241.209 315.939 li 238.326 322.703 li 244.094 322.703 li cp f 840.484 340.784 mo 840.965 340.704 841.438 340.664 841.906 340.664 cv 842.359 340.664 842.826 340.704 843.305 340.784 cv 843.305 351.284 li 843.305 351.698 843.328 352.031 843.375 352.284 cv 843.422 352.538 843.496 352.734 843.596 352.875 cv 843.695 353.014 843.826 353.111 843.984 353.164 cv 844.145 353.218 844.346 353.244 844.586 353.244 cv 844.691 353.244 844.809 353.238 844.936 353.224 cv 845.063 353.211 845.186 353.191 845.305 353.164 cv 845.451 353.711 845.525 354.244 845.525 354.764 cv 845.525 354.871 845.525 354.968 845.525 355.054 cv 845.525 355.142 845.512 355.238 845.484 355.344 cv 845.271 355.411 845.016 355.458 844.715 355.484 cv 844.416 355.511 844.139 355.524 843.885 355.524 cv 842.859 355.524 842.035 355.241 841.416 354.675 cv 840.795 354.108 840.484 353.184 840.484 351.904 cv 840.484 340.784 li cp .13611 .942718 .883391 .0357977 cmyk f 843.656 337.175 mo 843.656 322.175 li .75021 .679683 .670222 .90164 cmyk @ 846.543 322.703 mo 843.658 315.939 li 840.775 322.703 li 846.543 322.703 li cp f .13611 .942718 .883391 .0357977 cmyk RQJJJU+Arial-BoldMT*1 [20 0 0 -20 0 0 ]msf 960.277 158.213 mo (data)sh 953.17 151.708 mo 938.17 151.708 li .75021 .679683 .670222 .90164 cmyk @ 938.697 154.595 mo 931.934 151.71 li 938.697 148.827 li 938.697 154.595 li cp f 241.207 192.175 mo 241.207 177.175 li @ 244.094 177.702 mo 241.209 170.938 li 238.326 177.702 li 244.094 177.702 li cp f .597284 .512352 .507713 .201328 cmyk RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 701.985 415.119 mo (last)sh 458.572 292.696 mo 458.572 354.745 li .75021 .679683 .670222 .90164 cmyk @ 461.457 354.218 mo 458.574 360.981 li 455.691 354.218 li 461.457 354.218 li cp f 890.852 324.7 mo 890.852 399.903 li 506.631 399.903 li @ 893.738 325.228 mo 890.854 318.463 li 887.971 325.228 li 893.738 325.228 li cp f 386.811 381.336 mo 277.357 381.336 li 277.357 292.696 li @ 386.283 378.45 mo 393.047 381.334 li 386.283 384.217 li 386.283 378.45 li cp f 529.045 381.336 mo 675.482 381.336 li 675.482 292.696 li @ 676.121 381.336 mo 859.791 381.336 li 859.791 292.696 li @ 529.572 378.45 mo 522.809 381.334 li 529.572 384.217 li 529.572 378.45 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 412.786 396.15 mo (count: 4)sh .25 lw 513.281 408.564 mo 402.982 408.564 li 402.982 369.189 li 513.281 369.189 li 513.281 408.564 li cp .75021 .679683 .670222 .90164 cmyk @ 496.59 362.634 mo 496.59 415.119 li @ .5 lw 968.064 304.828 mo 968.064 311.391 li 813.648 311.391 li 813.648 304.828 li @ .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 217.265 157.212 mo (\322one\323)sh 459.572 192.175 mo 459.572 177.175 li .75021 .679683 .670222 .90164 cmyk @ 462.457 177.702 mo 459.574 170.938 li 456.691 177.702 li 462.457 177.702 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 437.229 157.212 mo (\322two\323)sh 675.479 192.175 mo 675.479 177.175 li .75021 .679683 .670222 .90164 cmyk @ 678.363 177.702 mo 675.48 170.938 li 672.598 177.702 li 678.363 177.702 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 648.678 157.212 mo (\322three\323)sh 892.736 192.175 mo 892.736 177.175 li .75021 .679683 .670222 .90164 cmyk @ 895.621 177.702 mo 892.738 170.938 li 889.855 177.702 li 895.621 177.702 li cp f .69482 .6318 .621515 .583612 cmyk RQJJJT+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 868.671 157.212 mo (\322four\323)sh RQJJJT+ArialMT*1 [16 0 0 -16 0 0 ]msf 477.287 1312.26 mo (FOUR)sh 522.326 1312.26 mo (TH INTERA)sh 605.583 1312.26 mo (TION)sh %ADOBeginClientInjection: EndPageContent "AI11EPS" userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse %ADOEndClientInjection: EndPageContent "AI11EPS" grestore grestore pgrs %%PageTrailer %ADOBeginClientInjection: PageTrailer Start "AI11EPS" [/EMC AI11_PDFMark5 [/NamespacePop AI11_PDFMark5 %ADOEndClientInjection: PageTrailer Start "AI11EPS" [ [/CSA [/0 ]] ] del_res /RQJJJU+Arial-BoldMT*1 uf /RQJJJU+Arial-BoldMT uf /Arial-BoldMT uf /RQJJJT+ArialMT*1 uf /RQJJJT+ArialMT uf /ArialMT uf Adobe_AGM_Image/pt gx Adobe_CoolType_Core/pt get exec Adobe_AGM_Core/pt gx currentdict Adobe_AGM_Utils eq {end} if %%Trailer Adobe_AGM_Image/dt get exec Adobe_CoolType_Core/dt get exec Adobe_AGM_Core/dt get exec %%EOF %AI9_PrintingDataEnd userdict /AI9_read_buffer 256 string put userdict begin /ai9_skip_data { mark { currentfile AI9_read_buffer { readline } stopped { } { not { exit } if (%AI9_PrivateDataEnd) eq { exit } if } ifelse } loop cleartomark } def end userdict /ai9_skip_data get exec %AI9_PrivateDataBegin %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 11.0 %%AI8_CreatorVersion: 14.0.0 %%For: (Marina Proni) () %%Title: (diagramas_01-23.eps) %%CreationDate: 7/7/11 3:53 PM %%Canvassize: 16383 %AI9_DataStream %Gb"-6CNCfDD'8Z_l9Fcr,,D_maNA-ql8ih$3TQl8].H[LO_jhS2C>A?c:m[ba`]mZci3d!GG;)Iqfu^V2Q(#qfjGR&M*rNg,SKpZ %TC!`WhnOD]s24ip?[m?e=rkpU)tR2MkBN:bCW"JIp>93Ume6%Fh0BL:[12a]BKr+*GiS)Jq>7eYqfff'oC2\OmG#g>L5'?\eJ,CD&PJ94!c_iPIs^qde]k^1)N@uGi.`"e.Ui-+BapWrQ6Bl>?-_OoQF#@5,sWBl %"9<>sL[Xr_05pmPQS<$t?f&PEGl&`Wm'eX?1KSd=hL5:lrrDp_J1cW21)!d(qq_-N[r;7brt7i!,,k%4^OCEIqhfVGmpEi@6"Z/L %K`3>Xq#/I,+)]tepcZ99O50Tnff[E\rpKa@Z^[S)hn0\?mCV8g^:jRF_qu-H.A6UiYp041ZkC^%R";.kiQj(V'5%+_rQg93%3e[9 %'9)O$@H;q0k2d+,msc3!b`QTj//*O1k2hLR&lUo^q%)c.q<\*!qEGW$rI4M/p0NOcn[ltOG!Ap*Hgr*NII[$em@.20Mmp1A;=Z@=o`!CAgNOI;Dr)TA?N56NDqs1(^\H8.i6iR5d=CW'`Uel: %5CoX.q!J2qpkr@Hdhb]1II@%4iSBFHmk8j>Mr20qFn>=I_*G22]mkD'o)=&UUjrDdH[g&0ILR>VmI]k&2_Vn["]R/DDt3#&S%$`$ %^VYJ6K,]?afDk[Fm9ArWe[hYtT)Ip9mB$sks+%!8IXHD?(.;]CfJsO,\=[sr)$_DS^o[>H_ggdeoiK`.=5qG[:+Cs2PC1kNV;F^OPkSp@geb^AY^JM,CLa&G3U*mu'WX:S?X<64KYOcGGeu?k@5Uq>JPgpd`#BH2g$$_KS5T %WJuk7#,%B&Dbu\f+%)Ctc>_,an)4'r?@MqQ"n_&>b_1o+D]W5tIh)><-")+URM=,pmG^'K[m/Z<%AB$p:cC@<_/,JkDI13gs!h!T %q;U]5("cbGA=4Vq[K"S?r=?BA#`dR4'hk(b^A[Empm_)khnFCI^\Z\D&+W*A(\ilIJXunNAkMI2t,Z'GkV#iLKB4Rq('?8@"MkbrtsYg/\Q-' %RsSbop.NhAr?\[&s206g>!MuipuR!9m$BZ8R$.^Go(fO$*;R9rM1>7[Jjl-ljkIC":Ccr"edLYOd&V= %p>PEsHF@JDrcn&2Q>jS8nX\;h:E??Q*ZI5REBdci=6!`%*j;7TH=JDb:gdRt?r^oL(\[?'L9#8!f5Vd>!08tU*)!AQMK68ek>i+^-1RJ;IU6_5IQEpq6G^V_E_=6jMOJqQXdo'Ej3 %E!3]*51#^Fp9X5]DkKn&_DBRq_pdOp@4ZbO5U*H4^e,H18n)-pKc+524W.SGs/%j/7aGtN+=ItX$(,qP+beS]k_W6,@#!.>l823k %4:Rn<[%BV]JDhUR3/?WMK0l!TS<9NHri"ImT'&"aT[!B0&k3.^qmt0+CSA_5)Q4,g+3B%fXgMHh2iqkr;\G1-R"M'Q=GL/'"+hg0 %MqPM:%/t105=+,Q:QZ\pD=D28^GA#a!*tH8ZBE4ti6N;?"N'*c*W<[,^Fr$6?BQYK$3tuU(P,m%&HdIVNB"]aTH$7O(=KIdALI7o %-=,@shkJ-HPK$%^HN9=SN?j)#A^-]0o+o]c'm/pBLpk,[aO>q>K`$Gt%_UNs#Eb',7MWlD\-j2p^5UkcESeP<>esNI_MIQ_.?)V1 %^gL.ZZ4*?n@KU;`CRgYD^6^P%TI0a"%-(\\%T"2ZF=_q`]uG=*;KE08Z\),F6*+fQ"3=RK=c:)L&`iE]notJH\HA",P1pg-*/7O&;V4<:ih16-36%-.!X<932c"4p';nHBOk()A?q'+\Kka+aoCbmg!S7QADAIcj-$2UB>>ff+Af)+'J$378Epq^ %Od,2i.9]]Y=/9_2iSo@!Jb3h)h2Bu'oku,sN*83)-;HPuH]fg_/jf7l"8TEEDK#!WVm?F)\uIrSW5PhQ]gDA6OR6&T=P7:tWtk#& %YZta&KU$MLA['Pp=D8)cZMa7PG=W6r805^BX"cM!Xb=/8sCBA>niX&OlnN_Bir;db2cSlH%J36XrQohWilf2PV(=9=epW8;78p*26-B6DIJK]3BENbWqL+3 %g8":?ZRO:rS=D`fAX6j0RE7]p"Z`#;VKO(hQQU.sYS[V,_#tBRJ:IqAn:p9)*gZON=R<5"nIK"5,VTT5:cEsQ_!%EV)[.0"+!1gS13uDfjH,T&oi5!J@`UgRAE84l-q"^'F1.)e@@i.N5*EI&_X^.gJWE,&KGHs %(soM&+s[.AUD[fqH8NB!0*2k.Wn:IQJq=_g-%q4G2A[mT1Lr/E`>D-"Y=W3+8:'u=4+d,r07V?*,t5&b"/Z6H]TDGA!]0(lM0)$0 %I8FJ0pcf`m*a.]rBDX07Z86AQ^NpG[H0,2X#7I?cTOtEM.?lSj.#!:&*)8Lb0I9UNV24.jDl;1'dE;X];eOW3ZO1?0bUFMNRSZ&A %&F3j?C.AaT]6FR(nHSRSfZPK]O*h.TnRceed)fcV:E2N;p!EA>I^?@.mbT'-?R*=>mH.(5rQ$nQOmJb@7l**Pls2g.SheZu:d,S2 %qVqN="_!KWQ]\=km#'st*(8iHT4JbLb,`T`s0KkTWhR=BM-i-#?T"6gr$TOeE9:H[hj<=H*Fq`DpsJ([Ms!4<5M0[N[oj_aEh;Zt %p.XnBjl(]O:H^Cfk9.r4Kb6WC=mRG`BX,H)K$I4&&9AG&?8GQ\6)%e9!0K`jc6UCX_L(cX_1O&59dHhlV0eBNCK`2a.hi=RTFeEm %nM642O>U>l=KV!kSH:0AM.U$>BT]ff73^)&Oi`C>7:HHq$u)S%=;,tcQ"!cM3IcBp;m3>6(f$ekM4c4OKu>>/p#4YU %!K;A)A4#m]l4XA)@@l^H)4oZ0rb4DAN3=naGH]AW$g38&kfM %*'4cO3t`@a7`H4KZ%85X(EW/K1)D42Vn"dT`l^,A`_okB$_"&UaC5ul!)8&Yr%,]nLW)WN)WWOkT?l:\Z#,`GG#="e7Z(:rBSb6Nn;Qe]N0pD %@b`lJ&PW`CRLAIiU.`B*c>q#nUk?9h_gJ`:Ymj\@LPj?'[PE6;H>bU1g!lE(#+`.b5h/G``LW3+AIM-W0,)&mQ7.HiUp`iPsi)#H(O4N8HVa$RO1'e %FJ"\mLJ/2L)Rq+FrA'lP3#?NTcn$#%bOZ;:i6njPOQ(f]:nk=TDPlsa%0r2;))3,75mC$<7?D/IA0.SJeOBY0T/\Sla(<@XF+hW' %FF.:bpUZB$F=ju53%2UOM)%n<@PZ8"GIqt#CD9R"4WEkF[tS=AOI4!HQsZI3FAYVrcD4fkUiS3.4QRsqa"\d_^2BmTWS/tK"5Bk1 %o!gTVaZ@l@_1jJ/Y.28H1LFcuK\2+:Z\$/FmGuq.6N6Gr&/0)i>'4U6a:mr>r4+r22tafZm7Fa8B3>M.MOc;[q^_I\mi0FoHJfN< %m;./d:JW%_;d#\9O&uIhCeqEkj$TS#LlouDXFT$JK73UCs0GF3hSgbSR7jnYX&p]KODE>k#&kmf5DReA4lUE!D=+@\IkB&RdB4hI\pFedbsAeY_JI6oD9GbF`2"s>Q3J.F;fCsLr2EOUW^KlX(Y*,LFm0\Nfa84piL@eRAKQ"a]=GS,HVH4F9ShZ+ %Q]L;dfqcE)=Nlf"FenhkVTK;_i,Kn]adLOA:SL/+E6iicIhbTs,j*"<<$+f)/YMArW\15"6(f8' %U=e`RU".8==*m>+\,ELP%T%6q\0m/S9HluP+>'Q),M&/!2q$>U'CE=D*NIHIifTWmclWWQXWo?+b+m(`3Ju"j(a]aH:1CA-'SkUg %-D#65iG/P2k?tK<)k=qcbVH9abn%lp8/Ur,,DlFE1Q@[>JapY%J7\Mgs*H/^M9(YWbVNtGZ'i7F_.O>l9A(116`!b %[8KfbY]-AL,<^lFUonf`VDU4r4J'A/lD7.UW;t[0J5lr,g\%:hYJG.)/R7Z&ko`/5Uq>Aa,-imi#55SVLo>d3HJY"RIFHZ8"$VPT %?=dkaF2c+@;3*i`&uDtZ!#:5=HS4^=0-9i@G6@e0DRIeV=JcW$$oH3qdnDU?72(G]ST5@5_<%M!g7#-ZG]Pl[h-6Mq$n*`<9ml]O %h"U"FfRhfp/nOD-4SgT"laq'grr!u59XAB?VfT)r;r!Rt,g:dl8,!/\N;ZnUXW82'eaaS1\,YhScgHpnD'-&(Bt05b86Uc/,70MT %9T^=5F8<=u^NT.6]1hAI%i3dFWM\EEH'*7",?[*Jod>9cOm@9!Tn6YP1NGUC]WKS%;@lP%]"els<2KgL)L3b+_\>b@PK+p= %!dd/&")?'8$I'k%SIk&K,RHV\H%/JbW%:ST%I"a;[N227+c[XtGl/,kANp:umK'hEK4R(05*Y5O`[>\4,tYX35O7;Nu=I(N#t#&e'H&c'0CSF#DpQqa((-%8eCH?)8]M\EE6M<_0l$#L;'"FaX(j"BOt:6/'7f4 %N[ARI]5Zk0OsZBiSu]-;d2u&ZJs.]Zc;<2o@a<:M$/7I#P@rMbMHA!adm[^&O%G0FGR^q)&VF!p?4_EVka3J4bO:R';Ss)4=@_qj %Z+P39:Bf]%U(Ao;Vn,!^*k]3nLdTaG)ErqS$cG)U7ti.t$m$M1%,'Y!o^s0RKN=tQop"@WCGiPgatK^-n=0s5bWFPo>ra?;5S)sXZq^;,mWrU:?HN<@sI3D%NdoipRrQrF!tn_Gj*o% %mdQ5Xh=1_or3;g;Tq-XAB/jpBk;*Y8aR82^FuJO"AR!2FnuZ]R\AiSiTS]itlafq7=U"?Xh!5MZ3cS%RV_g=me6.)5p6-meM8GH) %4GgpE'O7$i@l<#N'[$-BcY's>-[IuT*86aN?i/&g3o<,Ks,JW"Sc/N1+7=()dBT`^csDu&3^7<@#OVF3SKC=IKZg"@r,W(=cKASo %k-HM-K;BMOIrs6I33N"40;ibQf.ii@oD+V[qu!Y$&U`0]^Kr$I=\/O2It)N`qr6rI!M.%h""?5;-8Ca@N?!hcHGj5Ql8ad_Ho1k3 %f[c=l:s4Vl+D153HI.@nV;[%u&AcYtqs5Aj#2p&r9=SPX,Rm'R+j)!mBC@X%fS/;<(]=J&>W;lPs*`:Qieh")0nDBq3Yu&]U)18j %])r'P-b5Cm!!bS^c\L`7AWDD=<$YAPRef7:+$JApq43clkssm>/],@r(SK7_3[W/XjDrAe#iQKS!el#ZaaVm':9_(qOt@dsZGE!hNB %)_Amn>:dE'l*InO3S`p/DO8,OW*J?)Q4/\aD-+,UOg.('VIiWShCim]1`N+u/g8'-,V5)kHF8@\-8/euR6W'.[P\CUP+KJbs(l^/ %CRH.m3O#V#:f\P3I7ld6X'L._ZbP2Jf>*"tO[kelJZA2(&$ckX[967Wmd!Q73$1"h!:3DtcnK][cqdT85BXKDhcpG4\l$rPVN[(?!HI\16\g& %%IYiHpIZZV'\1ZC>Y61Z.-m1?D)HeOF2otI/FlYPaV('sl7J6!,)d+UAtu5=B18N0snpFq_Y(ei>lOWDZr!=k#V\i-0j(KrYd?I %n0b;h!l(5FJuYl&q6R0",#qoR&XAJD7r+$Q!8H*SbB-]bVIdldih$"oB6s34Ud&gP9D&dW5a']Vq([i1KU_P-nJ5rT@FjoC4+gVknaHX5.?!>l4,`5m'V7_O8JIaaiR-FA>^\gs %D_7V8gqGK,9j[hS"KGMJ7m,#h,tV)4mT7!_mC7N"QL9%Ej*7@Do?-(gO:B^?#Tc:?L)t9<5sDBcgWG3cS0`%2Co&YgQEjXd4'.eZ %=Wk)`HG1lLDHKmD9i48V+r7c;F^A6_br)mt`LI.Ya(']L"s':"kT?>6X6TAtEu"[l^% %?\@FB65gWK+ALk29p-7BXDf`g^Bt$lkXM$.bn;,3/n0(d>)5u-/(nfh7';++T@1"6gpKs$5ZZB#:c#UMset7bbL%Bi.4hg4hoZVTX6h(rK4Vf8+!Of19KZ`g%0n>t@kp]+"'I/'a&O46jT45`71#f)JnPbDA.7X4L%=/?i5)I.?-p3@' %f>WRGB!BpNH5Z!j*4ml@h\i,s7ef%i(AC8m]-8$"7(A^0r)'>?Qt^Q1C$=`JHIYMeD:M]km2)5`4!+7#K-D-1$Bo1$qsflGj-Y3F %YLu@t@*.nYZ'5SK'2+1DgBSe7'=#`4Q\7k?JaZ)K6k['^3,'MI9WiG@5&9UsiLDk0[#`lk2JZTY>S_rnX6$KSnF:8(Mm47H0\p^% %]ejUpFgeo.SjtG2VTWV<'46N\)\"LR"UE'QqksRXq0u?G%*)A`64'`Kh?O#4V3?Of5aB^'L9GI_J43m0`&m./oFg-> %:$KqrGA(gZ#8qn>QFnZ5I'jOd/XF&_R0YII=BnYOKgQH1A'*O)SeAg+j/S_[`?/e[fu(U#F>ZYB>n;$18Y\@=,2Gb0fc&[8P$gro0U?qa$!ohOd`!Gj/fdO1Rqk&8 %JX;?1]P%FM:H+4@F;G?@44(qjQc*KH1+QF:0.U(6.l!;kar4:KR,sTu\2ZUJ9G]7-ljDA;fndUZhd>/ur_"F$>AX9Ma6_g2LCZkG %HUu7I(5EET(*p%;T7Y0?aEZG<`jN(rK]A3(E^#%dl %VL0T9Z.`.UG5&Ad1eLs4aB(US*L"3UU.;eA/ZNE4C/lb>=kO8D-Q)6U8+%+=j,\pZ-;c.\;9K+Is[!=IV#0m^,@hmV5ic_OsR;BMt%8-M"OfIete!g6Y&lm+1:l1*0FXu?.aDQ\/?t_0[H4'Y1 %5%TN6O*0unZ>,uuD]N='!<86^^%1&Vm\P6J5B.]$Sm=n@6XCVR;AF\i&;abD(7S=)&%Bbjp?,W*%4d._a9J,.$i-[C0>J %XlK)_5SAer7CW-<>0#rHou^K/C2XQ>nlrg.fRdj2[r0#<*%Akg0AdDqqi>*OCJ#bsof"Vd&rp1ZJQ!H&fSbn^31&F?Gc[:r %8^MmViAfGaL*M45o2_6ra*b\C':BP?c]d5J[=t4(p)#!G6up45?(h:a]rAp>Z$k)^m[AUi#4+jh?lqc.Z+\p%Wn!n38"AXU*n*e= %!Z&kg-nmC)]r%$b.g!c#-Z.u>,hW*kenj3eM0Lk,2l=P^Yo#a7e?S]FdoW0*R]:RmXts#0,70F,UAAD"T8H6VWT9_`.g*I7?7[FN6H$qO"Z5cTHCkKp#l^O9^mmC?X=Gk/0bTuh;V8k55n(ssSQV,j7aX:?eSqWnA\oR8P %9-rA8S2rkc1('*('J?Zt2>NJ4!e'9qhF9Agd+q3)?Rm\pV7oj'PdlQ4H;9nD)C4tQ^ %SngC:K1C5+%);m[[0Rs\JUP.]`:+\H_*l[&+54TI(5K:U5qO.gca)@kDRp?#[,'Ks]6B;Rm_d)N3K>J.;!1U.27s\$nZEmP9Kq=H %iT&$0a1B;9pR-K^a#Z2-Y2AoWmL>eOMmMg--;^.#NW[R/!XTC'?tCTe$t1(6OcrYe:U!JbUgkkAU;qB_q@fO^)]:/.P'##\MhUF@ %AW4oCqiEUmc5?dO\KG]X9[l%3@Ah@RHjXCk[m2$pJZ_YiC-^fHkA/`2oZ&BXq&7#?;21,QT?t91m7rCsVt)I[.`#?RoS0ZLf]W3O %/R;FO5"c3-29WOLHoK?!Q_MFY1`"[gC.uogbXYB@nfqX5"P#o)5T@u5jN&%oq.EV %3=Vl[L%IjKVpSH-l1C3d>!9:FroBn?Hg.J8d-W:VZkN,'6KR3i`YFah3ql.i9@D)@gZ+HD9/i7jlsrU4=#\'ARXsb-3",adI`-K& %7Z]UbeHloQ>#KE![T`XQ(!dSg*hLGca*N#1Li09D:P.u7e7XZZe0dLGqg-m9$L#YNL9D[rE3 %qW:<2qe=E*_593KaBdelDMlWl?`.Rt##`mTPmlT*%'./i7i/Pb11Z5;hg59C?s02;4QC%&H$YIi/qi4PAHT8#c\q.;P"\,H7_=9f/u+64=k %]`a60CHUD3&e0*ae3jDQ%')@+Ahn:52P3Gl`6q;`Xp3X^]!g@ufE_fW2ub8)"]FVGb>ZX0i'6PCIu06)J+dN`^Lt`%BT$N4GkU(' %Ll9fU98Z8Fb&c[96dLM67ktkDDf;gAQF(jT2HmT9HFhu09_`L-<"\]p=mO$O`3n,pTk;K[Za3P4Ko+rLUWY=3]G'\.ja#=Wqe %=KeIJ-nKk0G]ae,fiu\3+6DA+b;I`h!BAe'8,BFf[/XJMiO8O7H3'4@CfmfM %4uI)#PK(7<_KOu9p-s92>J9meeX*?3Ol_J`QA"2G^$1kI\;M>-'u?1R-d,0sT4*n;7;g3kUL]W]ipU\f-B9Vi7YX@/aRXegAR`_) %+_6]@ZH3%_QAH]rrC*u`Aa0l>BUXII.7d#G_U&sY#0B(6E@_cRGA<^6$TA%`fJiJ[F.4ttj2-h$t]FMq6ElT?!WgsEHfA"e.KKPPgG;OC'9A]ZK %acnelDAB4S53@QJm=4O(jtRgJVg33!-[t\*2B[KcXQqpt`MnN]*'Lh&"r3V+ %"5$Pop0ZL%R`S90hKeMV]=*=q_)utVoU9%S_>J2anQK13Egus"!kn>3%Mm-RQq"&6Hh1OG:pV-<`K6LSaQqsbe-hjUTt@6A3A]mE %cs[gcK?:55.A2d`bRD$?m+fhGi&"'l\[2u`#;kkE=rt7:M3c+1V:(gg]Y=,1C?kK=Y@&_R#^rBrjjLYfhPD6q3KW>1/D`i,dZH[. %[Y:pL=@c5dS7I0DFQ12TWslG?Z-s,W,=O#)DNc&cRZ*_oUOHI$o#RYGmZ8M41HK]p:MUV&amm7GXuN=F4[LYoHu1KE^Z9?\`??R4 %/[%)AS;T>Y+hetBM0st0*/Q*a42'6U$5RFu$h;ol[eYAGblD %@Q2!SM:F\5EY/7,3Jd!SPZ0.OpTSBYg@#3b`-H@pUt%TT`c"]b!:*JEl1e86-U@E-j%.[pgK=M>Ei\3??%c#OY?O4=Wp'$LY0LOc %phJV<>ODX65Bt5>VZ)RoDAi#+L6b;qW4!M+GXEKQZU<>VCDJs(Dm1I'n3KisS %Udj!clY60bP(,("rGcg2K=N`L?T?h:HUS%:0oGgKnQ*q8T.0W_N4O1Z!.<^6iXC!6F6NN)EJkL`o0CMdG3s!\]:qrK7p5rh&n8S( %GUM)Q?dmGl8@)B$Jp.pV4NMtKiJS`=s4WqE]OH?VAr@2W"hq\.qoFoD&)VVOjLD(:L.@6da8W\sjH6CLSFiW6J'RlQ:K^pen"@KE %/?QhSZLHuFZW-?:XXD*daK'GPh8Dj/]W<&raOg6_D@PZDn&b$9jFq+D\;/d.mNqW!fX92`?+G3+^cku+rUC6_qm%37^O2K\Ydo4/ %i#2o_Uq>angg[mg[H1!.D@YSN)jH$%[r+=>Y^Zg3Yq5%*%a_YO7^PD6PXdoj0SVhW1pp$H)J6Q4K^[bWB(:73ZELQ"VILsoo_D(` %:NptEh:_=?B?/Jl*D^m&4Pe\1+uB#O!o^CiUSg18T'kt?0-BA(\u=RZ'V7_O8JM/5pH!dnp!@i0JBrN0Y@]S`*Bg%KOY1Fs/Qr3).2J_*kiU$N8HVT*`t/KhD10\d?-!P9a/sWTI.8VqUT[&Z;_-!n4@Z;dO;R-WM+gn#TVr@C"Q,N>/Wjo2mJ2q5+qN,3$Zk?L9LSp_A@?DiT902HGS^L:4Ut %Ga`Uuo4e_r@0mVF!@sPU\lFbtKB;Dujj?[KD-706'"-'sqr%9o#q7u?S6ZZq$qI$af8gVWs*.+Ya^9shZGePo->?\-WVg,0GMT;7 %7p.%;0)TP59aiWp/@1:&QpnGs27\[(\K)s3/5U(Ti^4,SG&(6uo>)^/Hq^9j-ej1,9=EN)14')aqIIbJ@9!g4ENge1u79a09%i7%/AHbcW_*s5c*rr&lDW*<3OGOHNmF&ohj%-FBpM+p3$e:S7(G[JOjI#9^YE$H3hH8h(P_*6u %;]X"?Q.--_^Pa4)j>C]K87>!sKn`XVL$!P7pm;Np1hELu"lq#r&XEBo'?U,T#CH!2@-"W__fY)SR%K/SFSZ;6*Q_*M0`.4jo]m+F %V]^9Rf`ons7XM!1rIWs_p6aDnU7@:G,toI!ZSa=L&lfd!.4lZG_0&e%9$.k^MWHh[NW:hiGjaKEWkGX %*j\E,.t8BGCgDWQ.^nFTRAVk@B)h#lgE./k`C&Y[Md\a&_>f#_Qf1(i$`!='a[l^"2mJ\E*7T1i#n,Aii5.EtnF%@g$lo&q&f_6P %QCJ5^(llH/lh:LMS1"g[(OuT8/b0DYh'k6J$V:H&@m&e++j\To3We:_hFV30ogiCO&Ze1\LPqQQo,"XZ2lRTg.k?kaPaH6Yi3O_ %Q?23_$\n4BD2Krt!':iJ/AOM)c]is"N.rHDjW[f2'6C%DgsdYj+'U'+iB5.X,Rc4SickM&QaC69b!+hh0Qs!WZ6_rdE`!qfWreb' %eiOY`_bnNo;rg,mpk:2<"KIcMJoF*m%T$9uIK@Qn67]"C-r"2LU*^S%H!c44LoRepT1UO^Z9dBONSfLe`E38qORWaLjrapZ:3]&Y %bnJ2]!-@1_aY:ic/AO9t8U*D=C'['KFU15maiK!5Ss"IR7mSl'jdEKb_X.Y_V[0\ES/(LGl[m@CE?73u3fcT2Q'u5+-D:a`lbl&m %O@i=PTEtejN4&;SDZM2gi16R:=m1jAc%7/"QnXD\-3;\^FI'sXB^>5)N#$$i>d@iX"-]]Ldb+\\;\0"4gG'N\"!MjsEto>AVun#s %8.A[Q\W:9er`2/#Vum(3J_F-9H[%i1OaC;@[U;d(H=&juu3C)$l0o)[,@P#r%=W&.j[\F_4[(Q->elEkoi3(=kL:gPhf`.-c?),(dV3;g1\Idom(^'5/XYOHM1T'u16ZAX\jg#,D5L %;d_/l86iNY_ZLB6i23e1-rG':7<]4k7CBG"1Y0QD"Mh/f8L6-r[TT#XMif235aSojiN?j>fkM1':I.Wm#-75N %"T#+Ab9_a4<+21'eoeGR8cVVgl:asS@K>'WHkG19@kcTj8= %H+:jt"dm?LqP=I4S>E\@2n!,YF0,]TEd?bVkbErf'b'PA(/*#rJTug)XKM:r1b6/,7fWr?5AD5gCGE>,2D(5)Q+#//9g8o!_>_S, %Em^aCZu'MXTrU%D>B!N@ZA&fQ6kIl]_^kdR!<:-KWo[AaNsTspUu5DjL"a\Jr7PtW:c%At'/A47Gh\Ho18Zf^)j*T)q]&`09fW,\ %eo`i"DfOS::28'Kg4ecRB&tt-RBdUDKmQ]-9+j+5)Ed;_P0KI&FesUS6$!iS[oTG!%D\-,Vq!cl."Hk,l!dS' %f"fp=gph1O+9I2@"MA-e&%Qq*A))+c^JPeCW:g5Vb$\lJXWTKjbN.Fo.-`"">6s/"6!PP4ejt[\q %*Yp?X=u33BG^!sR5a.U/!"Q=R!@/$]/?K6O@qBXM@+8mQRGL?#9ZJ(A5Z+J;5YQ.t`hJdkN)$HP%h/YmHMrYmB^`8E2h\u"btK>^ %f:[bj1'kZpW_.f?#Ae*i&m;]$@#h7K-T&H-.6-kY5g:d'EESbn(Do-SN%*Qq74@Gi5*$O_^nVLX&0GCW]Z7r]Et*jHRt7%\l8?a? %ceqBj3:WXoLESZ04epG%]YnHNothYQ5Y\U3`.5WP>AnY`R`/@+:6<=]+R&@NKl`aeW&%0oM%O:iM,:]b(!M1Y2q=&MB`TpBN12.O %dH9G9asF<'sZVPV.o3$J)62">a;B!jtheT]'%J+ILMs+9Jg.P?JpbKHi0!X`tE. %&58kAX9LffLpscEa-K'aC:0A-(0?+l?rl;;AYD$Q:*(q3.5V'?,bq$s'Fd>KP>/Z`#\m+,JHR.s8=m,C5uJbSqJNU=ZEAF!i%0&L %6o>euB+9\l*2tY#BOs?uE+YN0/E0Wj`N<`K2'7>&p6gM,ROOiP5hm,P %e$UU\1?u#/6/PH-G0WW.)A?^$O %LCmLQ6!:RJqX":L_177QahYHH5]oB2Gh1K9"Xo>5bsM&V"6^/h1sM:3KOD&\J6>JF!2Ij.JC1lFC)KOJ %kmQr5dS;BEVdS:t'HAZ6@&'9CR=hpRe6ObM'uZh9Yc^5(S"u?MK-:maOFWN`#LM5ef3r)]UFfnbq%Bp3&"@j^$\:$G,XWpq5qR[9 %A*oapVg/5f6snF@QV!-5"Qqb&]E>LNYK>#Q"gGV^AhtTtHtQl(/_W*P!QI50N-;p[>]gR9RbCrufO7/ja]"g9%%Nc?@T5c@R&kZ3 %eh_kG_ce;>4-N_b1g,.g'KChe> %eP?;Neu3XRAeC&40oHcM[CtP2lr94SRWK=)a!4Dj^1*]h!mFhHo.'&ccF*sZ3#Kn*f3=aoMu^ZQeKA9T8^A %gb[_*%#T8/.U[e"WcORfpk6EsZ7;Y!.PRZu(?-1uI0q`eBe`?1[$7WncML3>SC$lm4\u8rVA9Zg#m,tK'Qs^!86290*q>X)/=(JB %@Miss%\pd1@(cZRIudD5"1g"F]F\K(VgQ\io:)C#a%geoPZl'd`rZeS2P&,Ttr< %VUqm:[EKK_^O5ZrUc#+hQ9"\o)NNt8k"ZZYkAUsQg>K-&5%>rQJWpG`^gOh_[\ags\ms3(U8d.,+,XZ7if:'g^KFC@l*#u'h %,fULZ6Dobbg88N1N=3TaRj-ek*[,JR$lqX$R]_N>Allnh$)U8cI5"]dJ1^rON$-K`]Qll[5.fJe6=2/NFEO:D]e]d<(F3gO;KFCHAtC0MM,Y;J&gU:S`=f2nKL890[*W"8J3O-GQ8+NrHjJ\Wa>,"3Mt!nt,";hi(REuHEdCCr6N>?(9+gQY4!4uI\: %*n=&SD7'f9[-6/A:(FR)bK,_q\S-Ep"es>=G[%;]/i9u*6K(<7iM%k>KbFn2FqMdi"r:,E:;?m]M2]A#&_P?@8LZ6"ik9U)C93s-kHicC[1.AneXTj&B0=YoQ=?bh)e-h*0jaI9hMF%q)FkEW %H%EDf7`lq\Kb0V&6SEF?+p)hkN.WbB'1OBMkLZX\tW>4]Gb?$tWfuWY!N'&>3oq %Tq',3#l9W[9N"&TFI"jkoIu1uQ*5m5(kHD$;&06fIjZ7CS)ZC2U$'*3rkCk2iIdA=9/0>dqB2JAU`iofq_ %Ms:t;&Mt:tSTK^+/j4Mi^Ct$A_d]`@!J!\HhGR1![o=rL_O`]8WMo!=.S/IC_;9+@8^j9QfMp=o@[9J]<,5rb+Dp9)b]E5OZs\KcD>Mmq5oSI,7j)YUndNlmEs-8DVeCN/!p?NJOj3q0g0Co4'NfLfj,6nt %"q/c#CeX(csJocAH_H3e#JXjG4aRo1I'Di&4B:7's2%1+b3SZd"54C`;lI')IGeot+<+[0(8u_)=];1M*p& %L:J/5FT4kTCkU&-)Km]cFNp*ScM9mseZ:K"F]AF?X0eCdclT,/BW5?lTVjJ7p^_pY;]*(]MLde.i&'_DofOtN<[i,M8`qBG,qoB; %Y@>-<1TN&0#5,(JI>I)QR9umA;V3m_VM&sK0*7X1%[nMm?!ii$[[I6(0@St_1!mo+-XKGTEiVrrJDpm;@(RSANTl8%L+RCd:]rp, %<\,MN#\K>hfoi)rMT2eceb:rTBINrb%(a\Z>J9sK,Z6QCoSCW;7W[08Pjk1` %:_A3c?ujfEO4A9V?B+X?C\dkQjqlEb-'F6*MY1NN/a$hXk<``$E6d=gPm+ %VRB:=r,'^KXg15)EJI!/hG@*2"*Mdid`36AChK;lg1LKTR:gWa)1ddr(:c$oPQ8n[9^&Vg)t&gRf.`fg9YapD.<&a(91bE_5R6N68SgL/tAOW8\)UjeGZsof$`?8&) %.j=Fs'h+ek1!g$QLpQIU@2bN;$Su,]O<&Vc3kh&%R5@lq"NUY/34LNT)Q[@_rI$b%6CSc8*G#ibnC4K=Fl,?mp^r&BUtP-GZAL=? %9d.iQH,UDrk7gRuNb7';.@ZCk1LkGFKdO^9_sJkf1Jmp&af@\"ShE`a>XEOi%"Y!L_M2L#fngIH@0D:]b/sUX,D)N+Y`)RsCM*dl %V\NUiGtV;1U82=,%9o98!`[.7_lYFCqS%+]+Ep7Wo\5,G&3\.>D",3=Y;>h;HR`'>8 %=&in.iLO+TG^)&1dPJBHkB\Z854`l7%=k"]Z3k#N5uusc-Xei>TjdM&gMdu6OhD[sQrmI8jBQM]aEF&,GU*qN@]!_C:^e@>-86g0 %;!;\(Kb,O2K0jmI)CR_tLg%0H8R_tE"@kVH7b]`VE)n:Vu"O'3f#!sSR7lO@:Z!8IX2ftBf?.#Tr %GdJVVkG1e-MADGZU:&VkmO8t6,Ak,C6bCZMB[kJJIHj\-8@FM?0jEcQ:01bXa)"6HU2EEZY'd@gYHHGHRG(>9@g#4SH4g?; %PeL$*K'"TI\JiR^IjSRg](B(tn.@Vf?M+[;Dc7#>SeL6[Lf"t*E>sP"2cVfUK,mjJI=hWpEDcg9:N@F,N#OSlO6J+"*.j0?YH"QQ %1c$#OS>QAF'U=3a!HJ%p-s"Pmekr6E %2b$X2:jPrTO2/K6LidT:SBe`[WFj8\DPPnjQmEZOp)lo/*QAb7*n^;NedmU*cHUS\i%-7ZK-gS+#-l1+,F:o.@*Va`=;E-Y,q%5@ %H2qsQV%"Vo;NfTn2O3[$1-aOQ*4^:r"$o;Q1;OuiD^\m1K[aO'O,"mgl/W,55R]nPl\iEe$ZMO]S[EWeVWXXC:6#+)ZJ.6ggLV%^ %mNntYZ6RKt.d.nD1UQbo5d4%I::WqPq>39(QMuV`MrLR]eo0d)J=^2,SEJ#0RWQBT)?qu%'PE%jI_KVZM\lg&`O9XbW:h2PI*_tn %Z(G#fI,';+Q/r-Hn5NPRmQA'pTC#aB*^l%e/Al-_E03(MoR/k5+0d^je$^uG&*-up3s$.DO936uU8up$iRV[4"EB,(H46d65sO+] %kH/8N,50JWULjGEIU!-L:fQu5:,a>`RUpV1g"rNg>t%h&c1[`t'e,"&G/bSsZBHEn!hXN"Rg,"!h7fR]GNo2t[Ik-1M=b]:j%7Ke %B*Y9,J&>oJARdj,nb*E_O4G>ei(db?_/hUAKl=50@%dVC+UjYU=o2(Y^kY#X5lq!fC'$db;Mi1dGo1&BWX='^2t@8j71_sfEDiI) %fpSmSM6,42WeOQtRF"RQ3+s?_(40^E>+2aX5fkD^mbe9"Z']d@&%X]X75Hb^,Zr3<.<^Ru\4#jbbeag4^]8ouoJIkN&Bq"FD=,1Y %+l^WL%RrQZE+Xk[nG\2pj/D!G2**Fj;!FN1kn/KXHP!bSN?qFM`JqZB`aDr:3G)Q`,q0d+j%/T=E5sMM[9^&YY3IrF>=Sco5sqnZ %LPPROKt"XljCf]gBW%GC5iZ(91J)^3=)1BL"lXfn#79=egZJ/GS$Va8K-8]iV$d3TL?tL!hJtEZqOX/U*n)+\-@*I %X&VcLEtejVB(QZB\5EsNPHA##1b-m7"W'6T163?;<=8uZAL2kWfjgHf1YO0+,3Xm9)OBg]gRcK?^oGM0USVYBIU9_[5SU&iB\%E, %06u(Mm92>*!\'nu`<)WQ43!)4/jCP#JiW3#7*R__U[HcQnNN-INfFhgRCj4&AEga*d4LccB^-/"?t*M:YputkUi/*%Y36`ShUBm> %/'W.i&o_QLWDcj)r[3?KMQn^'N!!0CDjhra3caoG`lUXbbGC1Ih.DaC9`3JC.7;(_^fK>/_D')>eq@?JJNF#?-#=JW`uo!M1"FN3 %o]%6UO`jFKj6o'tk1EFVe>%#$:Y$56e`W2MT<;(F-k$DV\d:Kfa59>g8l,t\BM-TAer:/u%Tp#/d0q=;CWQ_Eo(Q)^Qlotpr_'7n %m.fq?7[Qcfh$LSJ4%b&.LE7,qV%kCFnE`+I_*1jLm$67Y\eD'5" %1W9jja?"qr9")p'IfdjAC'XB1q_NE`hFk]t]9n=7:te/-(KmV=9Jj3Roi]IFf14 %oI\otOJp6H)_o52;kBu2+r[b/SI/?s7(]T+1,L?"YJ([^Xp%^8<:5tZ\?(Iuk$V\ZBA;^0*5g8mH"h"+@+/j8=Jd]d]L_@mP\;OBoWQ\#NhfnKCorpi.eka(?)YW:P`N]KF]+6E80(Kj&:ut%nMfIN,_nI[ %EXsP39MtQ#&L_:`Y^B.Q]h2(XD*@#pE_EAor(.B<:K5,SB"V+1lKEIUQ^Nkh_IuR$$%0tB\.`hMaaI1YZP>I*'-f==*jq./>IKUU %698;$bXmo1OfTk\2Ik/:8[QD#J3nf*EF9s9CVh&NE5=@P9hEQr.IV[P(W(9A@-,UjQB!aAjd'2HQge4!(9UU6M"k*AKI`Jd;_S*$ %[XVdpAc%f?Vf7OLe6'1DQPfth.Bu1!!6M`Dc&,na^p%S'C`?T%hQ(*FCXT.le3Z)/O(_KIa0k+6(?q"0WHR\J#QqqVjc,6Fmd/;X %5>>2/&ka2[MRH8_[qW*8iku^H<"Q$#c`g:n:Fb^+T@\pcYA(@Rp3G)"'JuV>?i:!SLkT\u"FLNp8<2@[l;9Gh<#K>:5AK:uLCE@a %q]VKs?H^u\BbC^tGOTJR`r&rA:.&S,M&;0kom2"R94]N5LNM#ID6@`pKA#>A333T<'JP+K*]_l`^e2R]nqmJPW]h)2IGEHrhnAW^Gu,*Z-iQu7_cOo-N=VSO)*rp>cBt. %1R9;Y92904U8-M.sZ6CloYWri\4N1ben/%3m2@KEN&`!+@H=!`YF' %I+:bhqk5`&dj5;HnVr4DDK3H2&Wlt1)m0mGRRD%N\kN['fPP)D_7S5hXlWM:krgs1<9D1]VI`u#e`>CCX:E;SFKNDVWElns3m%3a %"T\s0jpJB-D=WQq@ct,5K#hAOa%FW`q>hLMD=E9"5m;UD8aY%n.%Kp_5S'c$'2.DXh[O&E2f(@,su+,8grK&b/\$- %aBc\^Xt'1s(1"G;<`hF[.+#e-YZ(U,@N@I-D+T9YQ+9MhCYSaJY\n\.gs$Zu-OuFto:6^sjm+<-L)P'fE`\6#NQY)34EZ$ArMe[B2b5**)RK`[Ha!=+WL0!Sl]aAe=#+@'M>;X<'1IQ=JK*\_*?;B"4sKn1HaK4^M5`r1"g[uZCk6Up92s_ %"2\;JoBC93&:Y$$N3MB>-$,jFJdDM`FPE#8RNm-Xki\BLj`fX]3V*NH37p/[X'L@,7c:g)5]o:@T.'8IEJJb.='.O\.'V)RYiKqO %X?j=_*Y@V=1IYgb8_R)q_mL/Y`8/;C!FV*BsR?96^[,D++=K54NcGaICF$Ar08W:\3&"ZV9,Q!F^7$d>,&nM#>` %\]qsclp1Q]^>>Qh7H&60_W@:VJJ(MCa&\P!=.g&)OQtTo*]^1^4Wb@05ri)Hj'"cFoqUUuR.N0P]`E]8(=';_oYQ(3r"#:ap`?IisJ0%A#NCBk1M %b$>1_MObc'd5"Lh!WacpQ!2eJpWI"$nDIj6i[csq)FmV'FurY1(Gi9#S#9AQ]2DI*J]cf7<-GB\d";WGCBlTqqS#:C7<40jkRC.U %!!+QjPuuYHGKXE#F5U$S+pAs<)T#U?n88C>()s0'^Zq,m8L@HeMkh'.?,J4c0s')$62$\L&98\MHuP7,^_2DKG.28S&2[P4-h=3YUWHt0YnPZQBI_[//9\,eVS&K"K2Tj>1^4Wb@05ri+2g2`h]&X %E2^:fh$0r^Bi+_B;Wjg!%Wp.[JD.Q(FF7?J^7FMmFs'Xij'uKA\o_&VK,?OlCZ#H)\^;3q"Hkq&8&G8mce/KZN# %Jc;sZU8j\GBs[qK&f'Y8:,0`tapt5nlh_\RB.?$l`<=QV$d]TPKhJMLn!%8:0]4tSJ,C8PCOO9DA2iX(i]FSV].i)cFC6O]rs]d$ %k&XF4R#N`,r'ebLoJ$mB!e'GcVqLI7FMP^".DJ3nb6=/M03Z^[lVqH#>XAA;BC+K(dF9O\QaV@7=CQW`q=oPfRk1=TS*3L %#BJ,t(737G[T.C'*RYF]n*A=K\7[rdUnab=3^XAr_8gYOH9Fi/c/3KB>B*S##-in6:>?:C%Qi)&Ed=->VFS=T=PRKAb`E`\lO %M`1tlD[gIeVOiV(T^Fd<7lp?1d%(.;14i9&CYQJ_Yc^!*19V:R`];e,Y!iYf\I-W*VFZcGns#`*\T0`-J]_4X"mjtZ4jW,mG+_[) %#S\8+Bm.H6lmaSWJH1tI9!)m`qrP&"G]5.QO\Vfbc"b%ahRaL>1Y+SY_rp(!A'c2W/8$XhJD<(W/st+f/ZiCO$>TkR"Xa,A18d#. %Q6HdND7(W3\D8u3XD?S&eWF`/E!!K\PnKDkTB3#uh$T\M%1[D/.a"8$XQ"OH_#]h'EYQm0`CsWMX'tB\Tg033YSA_X=E1Bq1\Mdl %!`Zl`[B?Y#Y$p/Ui+-^McCDUU2VuG %gUh6'2`s'fgXmbjP8t)G?4XH-\4KUSOgJ(e%EkTK$IldaP1HmO/!Z]l=?Eb2SMqRhG;F?2=HULOqL&D0qb$1KD=?#&"BJ38:Z*cJ %\YZ8]>0Tt7i2Grm(7GP<1[69I?5-(Lig;ZAjjLXbedbq[CBI53VBsfm`=2hRe(6[`]k-Ys6b-Y+4,Y2%jo,+eeu[Dhb?[H1X2Gm-5^c@aBYnlSDr_er%s!#\)#f!XoDE`b7_phDGlER'cfENjc9h$WGMWk\]E]'Ej- %AY?:i-O3VZN\S"C>:^9riX0H+1',NtKa,)_c/Z01B)d8[o)"tYf=(FR,@1'D6nTHbFV/`"'%YLB>Cl1%;6#IMRRj^7$DL`Co'Cn^ %Z`;UmqmM\?:_)gPekMl(LSc_:<4H_#Fjt*5Va,dT>G]oYmJV'-2`s'^'1_eLnF:PAeS<*/L#W(u'&LWuob^!Q]&P$c2+e@W]N*_/ %[Dg>ih0Dqp*QF^1>p@X/[=91AT_I@>mgDrPX0fIH]i,F,])S[KiTN1bVIN(!?LLqQbXFLYhNW+@:@;c5^/53'%TM9hXs35e<^(B4 %`7fc/JKdp0m'j6AXMM%ME"iRS\Z=5k[_6#Xl\5WlEoEtF9e,G"MClJo;YaB@2[A08QNFX8SoWHE'+G7Ekm#H)V"B\!;,`sHYn]3BiMSKK$9c=m>pH.`djWR&rmPrh61=LB_mYWAjs@E"P`a2buEl3l1Yom)i;#gh3Se1TJK %mMaXc%o26#&J89K"qC#:]C\/R39esj;J6YJ*PP+8Y(MTM&gYDjfgpWK+VjCLIO=2dc#+"9?$`*An2r@,m^>2A'/Zhehj/W"VINDb0qR:NhhTO^^ %S@Q;l2d@q2qH('G%Flu9brIj!89GJ:RoXBq4(`>344&=n%P/pSQ<6X0qmW@dJ;g."le;&]3NO/@I(]c?2rVtH![u_oRQ,9;D1B-! %-2'1&=mll`Z5j+8&M,36hXh`W?_G%(hmuXs8#0%@s %f`@AGEerV^Sb3i,6eYtJ*u=M,f^I,L8:t4+k6MWlZ*nN'p0Kb\)\/C\Ku8M6[AaO4N3`kUX+Qho>]')a0$).[C`TC3Q2:3W,o.,R %CQoi1+'5m#Ya\Z'-0AZ0_34e?!@h<=:tN."a^JItrabG$T^-[;"J\;1G:RXpihfDPe9d__N='oM:^Or=Q*XAWb."4iN,=9V",-eF %TO=htl&]A>?7S[L":.hLX2MTX]iuNAL'+>ohXFi%b;1AsFLM;B#!,UsmW,V`"2rO%\6kUcU3lajEmh"i*C^Q\9!X)EQ#V"-"5blE %r4E#hYH>fEgYrk5%-sef-h,uk>d1(#c=8LkeBd+h\Z>ldnD^Kd8_cesC7%>25\4`mici-(KXF.p$>TkR"j5I-enSb+CZm^SFUCI= %o&-KiD1-U;l\5WloA2eEiC1IOokjrQ^g'ene?c9#Z.Csjcsb)NCtXubjV4RL_@Dfklh_\r\"t^>>'WmCI/tg1eZH9G^7U.$e+o3< %D)f%1Zk?5sj(s*ci5r!'d4md*hAkm6\>FG_S]rB^ZM[U9>Ic6T''fTYNjBnm@&h,Q``c#n)[ZjabVa-@gYOU$]&CKIgbu5HQLl:` %mHrbI^in14EGL(DqS&Rr5j_fLRf;O*ei%BLG+`\50>VtLmfKQSb5V@jG\a:m%&/F2[h[2H\OJ2=?X,AVlMrpG6(4I;+0GFrR,c".j[9=nhlK>hd\8.de5,m %E->W0F1FZui`;IESM@_-fmd!K2P-t]+):7I>1`TrMKBqp$sLb>FGXDCT1pbZL)Id\\m]`NY6rYO %.29A%]dF\'Wh.lFlrGaL:4&;-a.up*I5i`+8ZQs^9d4@7@jSfG`RI_2@L%3NabATWttDgA:4UedW-bk+IhldPrtX %)r.R2WA!U?:N8/X,aBCMB%;IT*E^tKVJU$NA]U8T$B-SJ@K@85fcc?Fc+##aJBD.Df!Y1aa?[\7.'?dV-a:\?f^Kjj*"Cdk`c,i!Ome'LVZ2MsS %BdKIUB/@e6AOuo@dTojaM9Qe(:ok/j:Y%OFYFj7J\k4KDJji\*:9AHhqrP&"G]9CW/;_ZDWF^!J=WCO9W$K#0,HRoN5egk$I8Q7U %@1[k;Emi+XL9O$m9bn!%ePd0UX0U/<]r9$#an0FsD]I%scVJ\b0&[7!l3d9C/.UHNVkf,MeOsAN<`r"=oqrQPM_gT$T< %HE8.N/$_-RYFX[Wp*qSQ!ah)/;G6prX;EYVVQ[]6(9)G@rj;H>B-X0H:sIDi5=@S&aqVH$P'B`5 %c(^c0QDj6*f"&0tedh%H=;G;HQf>7CasrDQ?\QHr]4fsrjfkn4E7ucmWE:HJ?\N%lerhI2lWjb%eQ+tu$G(@g'1*4 %Yh*8cJ@/RNtZa<@(*J87-oOn+.H==gec6DaS\M*RO\?%btir339fn %MPIsg?ua]-[`,4S_n+gCf2l@rI5Sb.A+gX>*4XTm_2Ht5:'[o$&u/rEYJHsEK]2k+@+DXsl\m[6[#NVIR?12o?PauNB[)77p('j98;B4+kd]4X=t+]#@S+;d$?o2sKO.Vc!B+V22qJi/9Y.!/=?Fl0?uaP"/&`\!^&j3;f!Xo$E`gp5316Z]dG3>JQX56^JU=L5 %]Ljs2<80T/<3oc[eIsRh=0?%c6?ZAEkdF6^uE/C[+j/@C/pOToeg>gC.6e_FG3_! %]YWA]0GS@.q?eb]YguEd=F4$_7tIkZii%!:I`*fk)gS5%eLK< %(1=@nZu'm7p1%6&+@'MA;S-Vs]5(M-4?/bPLd[3aAsi(6BIcr&6A`h,@4Pp9kM0M"ZP7MJ]XNhkV9u"'5V'UTJAtDb7MViP5O`#m %R(f_FqNef^%ct"b-`at5`(%Ad_Q'dj^fi)h4(1mY<`Hn!UfJM_7&FW%Ve\@/40%&?G2RC5)d#b0/?h`@Pm%1hI:Y][DqR56:p(Z) %mrik-j!gY&B.CItkJ1+G"]c5>"4bk^MCP8On\/9>,\E"[c8#%$,@93(G+<#a5juNLE4;ti/moRQ@jh]PqE-QCt %Y/KYV=$5!tU_'5pmdTH-NmOaL#KL-CPoS.We9s>o$`qeR5C!ufe8M1hfmUP4KYc'mo;lhmf09A[t(r`-XE1JqMGM^ %SJ4h49_naMPo%5mJV'-2`s'b!sb3kW-'AmqML&CTbO;'o2Dcc %$MJ:.]'EkV=-*f)=7s!]Q`VCA+EanpIDnRU:5[)+'ik2+?1eq.X)$HOjfkobIkpaMi!$Q(+B\:O&%4MJ8FMenk`q#TfJgM6buJ+: %5.%+q@r5X<2*E0q=?Fl0?h%O)PN&iN728ULX1mSmF_uK?*7bQ0:?B1jB!&8cX04(J;CVjl-#MLb9bm"tbNaCeobE/.^;Qc-B\>!J %V$EFum%@B,`T%AU"k1d&^OgT#?/+3`LNVGO'=_qUl88gnWipZOeO`&!bG=(u]p(80[*it\LGW1Nd1Hpq %*7>G2B\U.q82hMJRH'#H**)lm;`tE1Sb>Y;]/se>iG1!aB %f3qtTi+*lKdPblaYLQr^Ju)'H!juEFm&NL\,3!UQP,-[;D0ljFLU@5dp<"#lPud6@haYhXdBr*) %^H&Mu8]`4&@]bG8oi1KA\nsI.]oq)c`i-:>D#tL&]"mT^c@>FnX-2JI>!3TrJZHKDWHE')^C9E?*dk[$2Fa`qmqT%NYZ47\8uFFJ %+rSE0=P(*jQp*p@@BGd*K*nOQ%18ghF)?Lbr$/#pU+NYYRSFp'LUl+h*c+hS4Ar5XiX'S3=$3ajD=<`u4i2bK3H-3L&uui@WcRNW<[d)0BCAQa.Q`YZd9k9#JM3%f:E4>u_pKi_ %CgZ(TLTp,l*V&-C!n"Bn2+(`>[]T/e?fb8)g)Ka;B%S%S.qCqDX2_621CIj=%S*Ls!XgMO2@UuP.rY,R9A$<[`3[Qkp:sjYV$C&; %Wpd7E;s?g@C9R7CmFnup20!KEpa9"s'\Gk9c&,\OV$GU%.55&r`T+l/<+'G-l+gJL"h$]cS:UY&nQ6i*)fn$&!h%\T;74=AR.jLEek=Ts@ZE;n,eHaUhF1VdHVbMS4`&S;aPo`Ft-'CF$<_;QQXS#QhiOdeorCji3D+S$: %/'EDDh$nTV^JrV2?Ko;68d\"'L0Y.eQ52A6W9(0=OAt9D,\RlEpk?[9#gO=%VY'Xn>Zi)0E8fqUp%/qrQC8=8(RoF>q_Y %G[9^%&KEgn\H&au-c?(_,i[gh\-dh`0-UF=dBBpb6)R;X4g5]0l+q&3Pn$-?^(cj+Rt9tVMf,t/gU=8ff9JLD1@5OrfSO'?9Yf"agp`l.abr@?5p,^qD!N2K#$#S%P-T&7W7$TCV.$LY.r*D?ag#nc-=tjl#/^e8uL;MQYS"P@T0FDd'X.;9r[WE %Tid4IZ%f.,mQ+IR[rpWo0^ZK:8h9kmXX6\*akANE(+&3cFl?,[?3_KTIPIb$bL2#Y"VmDAd9/kKTNWkU0M^?jlE\2H81K)?()$O6 %fTTW'?rr\k#M0;4IBU'08j@s2/k\F`f!\dalZI=\Sk+'XSsuReen+*^[=Sb2[mm'2nhdGm"fZfHla";i'VWNBg;Y>faI,W'*O)Tf %dXu![aIsEeRe".>$H0.C0du[^_<\bd.:?Vj`1F)2,mtl@ah@-#TgX2IJ@.:.&$Ao3qHdsNQ$rpCD3fXZX_kPM %f'DTB4HTsU4f=_pZhhQX9i#0DG7+>K`\e/`7<[YTN\"b#M48OI@mq<8j@c+V59f"CYPtjot%a60A#0U;^j-D %e*?R($NE'.i=].)YX3q&W'.6d`&ED^&%)!.d>,A&#=.uec[8pVuB@'Xml"Ac)G3`nVY3s,)l#8&L-o#bl.P3fnel0BkCC-Qm %0G%>kEq0W-XjVgfV1q`gD<44]enYNWWjI^m/r.gJ=t?fK1[(jGoWrCOLZM.3X*a>83ZO9Y)C-b3>'b.iVZK-.IdUBb"W!G?n78ZL %Jp0)oUJbB%Q_^-J05)U[-<0"O7PGQVkrZ#4=8E5F?Rf!9>CAP;kH,N*5$VD.NII-jTOqkH;K,5DJGE)':]BiEt&@b+DTB!E(R1u %fJ\%(fjVm,4!;l-kT,3nk=$;(8F<>I!gUtOl>+`E>HHg>sKj9NGrhqCFpe=W:9:kH'Ak099qmL %pX/#YbP\FeKY&GY)dEE"Kg>J@(d&R)Ju=W#hf:>@FdUBSmta'`7g\+!lLGh[N!!uQ*ZQU'**$&eVLo"LTrelV6)'hmQdhgrAU-qR %CkC;["%4gSclOG^64I.7-t,''/org:nM*O6X_d)=fsMNeljrLXlBr_+16f0aP$=ZXm#k"J)`q(E(b_h:7VSp&nmo\*FrbM4,#'KF %du^lDl@b#`#`5;Y#$%Q*-h9i`RO79f8.41f3@>pdEDTqDY:!g)]H/!4O]QMLS&cs[=>ck'=hIP!&'[BsWM$R)=HAR1l/`>2`0:O? %`!Yio`"prU^o&H2QU!["$4E.6@;iS>S?_I'[E5CNFDIeVUgMpfk^?e6A-Qhg=3s)@nVlh>&]j1p-3r52T_ %^\mif`Du`_I[Sd3q=gM"cTVB).3.^:ACBK0a7G5`2eQ4]GI.&0hd>3J^VTs+1*?CiZk0r.cA4mq?leEf$p@ %kgJl`[rN5`3e)YVj5rdLZPQudN"u8tH1jI>kKNt>H05-UKpdGhqsV85q"WmkGC&9VcJNPH!jm7C2-bY2J'Lf-&$J3)]e=Fg]Y80^ %gJU3X&c184qN?/II2NPt8OYF>e`S+/Z=^5]W$r9>mKm$SJC %H?"W7pA4C*l.PNC:-SZ%IQCs^F4TjgbIDV&D=6!tcYcKqYAZ>&TXB0T]5Vk?q=4=1q\LkHaVH%U#n/&%gR,Z0#uJV;mDT]`%bj18`EA,UUs*Sj9Vo#`,4RD.kr:\1SZeH@qnakdP];&Lm^uRNU;SCN+rSd,*LGRSp*>1_O'8/;+UjWGfK, %pAY!LA;3I"Vf]@3>i0r,nbV8ALWs(DHR/VM6'-8W%*_=YfN'd"#1B^k1:/?9?,ie*[C4RZAfpZCD`-&[,lidT[6g_IrZS]&a.k>r"5SjRG*2gAc/3Se<&fj7F_H1"n_l+Z#aKV+9R4Lr$a]D2*dip:cQ %Y.XVMM_FBLS)$IC?InBXYJqm&3WJaAioKauo'GZ8%jrHCLfI]OPcco+NOE#s:j_cZhTCn*pi5=TnY[8AM6u#,)RmDmAV]TBc'\CR %(dX0)e++%D?2SQ8<-,9VCGC=F[^Wr;^No6O03-7f0mr+e%GPo]50Sq/q/Ce&0e5n";##/R>`1Q4TKm,e2E(]QPlC%Egs %ICVMOR.leDQd[YNn:Hhp!!a2IRXb\C:&[?mDI3Ajbu9[X^8hUGdWqHSXc:#^ANA>kI=_dhtH.fDDlQsDH/I[+*$un(H+1$ %n[72CTk_2b=mt7?hk'jhcAHA[=%LEC3]l#bqf$k%EVbIV)6rR7b?#>>:Thtrk?O*]MSe8uE`)^J$%mJVWLrTt(rVBDmu.EX$%mI[ %A*'42YdN),LVk6Hb^Jg%(iSsCY8L?BQ9^6P&E7[7Z<>?)nj&!k'R+m++a0=+m;O2dN4EjiY?M&OQ9^7m4IA&F#bg-n+N,8r]X>C` %LBA]3b^F-J+M/Ks0aE'6(@u`0&7WZ7[pH(\rBQ1@p-S+@*64S-1n+c`d])VC!O"MG>g'iGrOtL-jaeH)p?.p\.h05i("9nrrHI., %'nbtHdPA0k*+t"#C"pgt]TK5"5Pnn.$\>m]5_YgVJ_Id%Kg73mC*?EW8YCNR;ZM^U[EtgQV,(`SKaW00aO>J+["qKcH!8;<6CtWG %4S %Pr7m["c;>l/bhEr4+OU[";^68mJ#.WM_Mh^nFP[\:FS %ViO[5@cLYKA:9AQO^$\\X'OW/H6RN:on-DRhtgaJ7?cWCCH^RcYdIWEo<.eq&uJTQY^=Y'pKN-dn(d%Gp%(;fF6Ztr'D%9s68uL# %LGgf(?J%C5],W0reD5:CrN:e;VljAo'AkqF)8uOsYdm'r-2HF^4-Kd'K<4.g3sEX2gg9Kf2kE.]:*_/.j&TdU'QgoSQG0*B`.F)j(n;KiDKGMCd@l/UH2iL`&I,*9AAIrE\9n_C_F %(9WFTni-UJ=9QW(k*OUO?GTE%HX66f8ul;M[Yr+JnZW`Z[Yl`B?*L/WC_pp/5SM.H]3&kcMsXuY>qEFBEMhKcjLl/[`PjtirXLp= %(XpQKbi)dW0m:q;njYAP+(Bn+/4iK,rkn4"/uI^U8.K!)nt07:ff\qE:!'$4le@kk5Kb?)1P2`AAP60o\'<*>a!!Pe,F=QKZR506K>38+1>i(Uo)AJmb6o/2Y%^d0Ap;>?cR5i?lP]HZC/%?1 %nB7BBk(hFBhaKp/ka?q8![>mVqW;DoZ-@IKjK57Gf,m2(3kGP`^H$X*O/>+2._X7frY)I%k951:iZ-j?&ABaZn6C/-*B8X>&)''- %86bbFNC`j)frXt5g@"()V/F:&rcS3h:3771Hgru[CVP-(1IRbbODngVI>2;.)M2P,">#gL(JDP%9&OX*&eGgO^_TM8Bm2-01T%lg %!k(LL>V#n[a:oF`^il6c@L7:6#qVBm0@5>h:Zb&I/6^D\BgEhY:/5_'0)g*D4sS"5^=oq1de=-QjRalG7p^N04)A8k1&%eO5h3^5 %as5f9Hoh/lc.W-qI!0Wn6]%0eIsJZhjp9S>c^0,2QiE\!WWi$3?[OG,fAGGVhk&\9U$^)-d-Rt!(NYm!1u9OIr>'.G]Ud1ilHnRcXJX)lfXc+5@5,;h`\=!c51nrUCM1B.f49> %O0D^sf5%+!,*$?^.^hI"BZ:Cf1l>tdbdTNcW3Oe>m`OVI!B]1J6!qA[\!mMs*O26S3o5H7=1pUmmcLI6`KL*P9CAN/]ePL\(@bRM %VF>-$FJ`nZ`M,.?3n(c'dq3lCd@#/OB6lX:7rLh3g71OF@nP54"YE?qU,4Goe"SZN9%.!ARf&XORc^\\bE\rQ]t8%.XLW8Qiq1!h %YM]A!F#&A//m?_aBh`NAN;C1\f53t%[uk[F=Z]eBm^MF;[Pm/pWP/&+)>Ca98!f)6>==!*>SO0"hY[5Smk7F2s7+V\JZ_5/S=\X; %oNuYJKV*.3Re=Z[21,.lg0(VIDXDk?2uT;X,/4jhlO'1#p*AZi<.:[[+FOI>IZ(JUMiq(k(r4gitl(Hk'3LoT5Qo`S=[u1c.I?/%)1G5hMYZb>(25W %gk=d+q.H)t;U$50>(3q,X>fehq\p8JSson$?S*bDb2<-oj7UsU*3!`HM_,XTAk!%?Mj0^Y`kRJgE/)pk*3>^ %GhMC]eV0@'`mhJ_Qd%d_D<5=>dq6%ST?UsN$S,F`fk[n!h6E\,YAe@!3BRCXgO\11^'X/QdD)4Z-#_e6gPobgG)/`)_$ZIN@m_3k %\kBGr`u`=`8a0u2%es'<@D/T6T63@uaMp[.:G^?lg2/X>hHFO_]CP3aHNIu+0\m(WAc?Z+7G>bNs!C.#\!>pY'Frcm$aRObPlp_= %9>Oh:3oHE"1G?Cu5:n>ZgN/W%E>VpH'UUO?D=-]jRkl&)?f+8*f-O8Zorn.C0PW!'`>a'u>L.O]FqJF)cLJ[ho(NZ-2nqMjGo[R8 %[[cIHanIU:EN9OmAoG"i)jgB8Am4>O`iiHmkO[6g?Zq5T]E(\eLjNn*Xl@dt(0l/_>gdPW/02H*L]XRjO@f<#S!0mK+(c3Sh]A;: %BMeNU)@df64)MA.84W5E1>lV)pt8d\0S8TUMi4487e+9P[D_/i]g(l^^]0q[ %HOoNDnnp[:Wt'0qHW`j]@/Sk-_T[ROg/fDIm"&'k!D":l(G#ZpN;ta>6!:sHMI3uJUp6aZ#h_1RkmrA%!J'S\)BBD,%YE5fJ2rnO %l2,F]9Z"7;5hVs5l8&OB4PEUC;8F4(NW9+_QEmIo-,J5k.+O^tW4H:=J^s^nkSPA[!5:.[NF'_LfufWInUDoLii:_XL,= %f\gJ>FPsQ`"S@OYV'd>j'Jk7+b;Y:s(*q1W^fRk<,h7J7$[NCrA:NYNU4>U*rm;Vn%9Rqf% %pOjn`j`1V"H@,cjq4$\)cffD#'n9Ic'VOOlm.IjsY[C`Tn@i:9q'kKQDb:BS>aI5n/B,48nb[?D[>f4m'Wb1oR"hZN2CFKt#+@;S %AY^T*ika'kE:&W[e5F?lOU(qKl\.aJ>RN7KJa*N"4r=(F[hM.50O8j2+F6!pS+uJ&JHTrF#Fqej;HOTA>#05jOM2M44gYr%Nkh=Z %5k\V3V/$=O,'4s3M+"h7QPeDU'Iq^SJ$K %JcVI3[\]?X]0\4#AJ_Q\fo93HJ4^YADPdH[WT&$[9gL//rM6P=>1+K>XNkK84nu>"\:Pu;M:'^^Wn::"atDBShNa^c:+Ip>?.4DJ %1aV?+R*5^#@>A*Z>S5bbTZ>5TIZ.F4S`d=05bD#;)d6J"@$=i,U`$b:=!?hW>7[8n?R^Z+mqlL'Zr0?:'S*#1k9iY&50CtQH(q"T %O(G"YZeuZ#Q@Qk#Tm46Fo!;1G#]V+eV>M/NI1BdEB'D,0i??;XWe5EA3[)fjaYQUE&C#$E*9W)*0bAcsTJRT*"AT_$\;liQ=CaN7 %K^Hh]PW:d[]X;6H0LoZjNKl@4j)"ltQABqm40hU$f2OZoI,-gt/dI]$X3kNihRN-(lPNW?]W,XT.;fX);4q:^fpB"akN3*NM+0=^#L-RlG> %Ee+F>'h3`kBF.D@8^9SD4)R(]g]AL=Wrk8>VI]AW;n]CE2gW-5S?.f4qTRXf#Z+Ln;3kh %0sL#LB/3gHXX7oqjQ23N"Na!Gi^#ikQ5Sd'@.D'(T1/_i`8Zo*bP2F`-KPRf-#'$f]HLm).TQO:1Xp-TncIqCb@7!a`8Oia!u]$$ %W@SHA-nbumHIUA!E&P\q_[Kgk`6?D$Oh!JK?/XiME*XeEriuS4%>[C^WAiC]FV3?naI2if?:!8TA;Tms\:VTW$i.o_ie9n8ZYFQ2?o9_/#dm\=:RG@j./HD*1rV!bmKHHo\"N9BM&VCj,>[Jee%%^]OJdb6RbeCZ=ka3lDu&LroN*gi3.Pbnoo]hHmdm^sO?!Bl^&$F5[2^p.&_#=kCh%PTgB+prJp\6 %Etd=@CBhKT4?cgBK9UP$+Le>'0@&3@67*H@/#N4C)t.a"l5U4^]9a %Jk320KDDrm\h2ZFNLR;/.ie,)PRcc"Z>0*RmW@&]:rF(]U/W%MBs?JqX94rM[=6i88;S!JG49/)VF^/\TfZl!+(tomH!)a4R#HV/ %ft(M$+u,@`BuUMfQ7/U#Ga2PW0mds.>m.%g7M=Z^'-E#:(t*MJ;o7QPZ/pO-H,K?DSt,V^K8F7mOM3+`J1dE`.d=o96fc`iVk0dn %Ut;J)JXd=qO\?Fkm%Toa#i.F6lB?e=Lj8))m401$KmO%i&q@">.BeAULc^aam:SE&LJ_]^]=]GHXh!06-7-n %NSJU0DO/)+SQKlG3?8KoKoaHlmSPVSeD9I[Lq<1'D1jf2>L?8&EO'_3S0Yt]4IeM?4#Y]]B.G#17Ttb\KMT8e\=5j--0e$+b'CVrWk9?MWV&mV.HMp?j[uq)]NnMl,1o1k\#67*K:1STiJ5kMe %b57H#p:goXmS#%A8#Gn?*WG,\A'VQlSkU8B3=u9TL4$W %cr?aJ@fI5C<0dk]72B+rF6-s^AhiAH.'+t'`Wa&eQOFR/-H\ho$`E5XTo$@'Nm\RrQ2N7-Vd;i(SY:BX,(-r\/s,X+P]>_W,nZ"&4dlD.*0b7!M=e^g+btbl0f8q3,]THtB?3+?<[+4a"ml^q6UA=N %@S,K,KN#3Ze6n7G1SF5Q`hKUp;^IVg10Oq!e1?801(+6Lbj>"\.49B`$p`AQ>S2*>R5jRGE8/8$dpBeY!#2Q7mQBuX=%H[]3oi"D %"QX`J$0Hi6KpSQuZNhqt-06ZFLdZ$8HLqIH5dNoc1;++Xo@VJLUD)"t'd8TgQ&7sK-Z.s+U!YCFiT;9lkcP2b;1"VmN=[)>b4NB9 %LqYDq(QFQZMMd+)6RUa`!Z!dB@0^X;Yhl&uURN7Es$lVf=[cs9lrS#)86lL5]`O/X,#"I`\k_(#\@=2?8cpIV38JmoP(,th"7.U?I;)?bH;I8onQ_4oUYMI?-@"41X<;(8)8JbdCdV_%`0 %:q<;\8]3uYaGNmR89HYaSu8E!Q@!,WnLC,qJiJU)N`Xbb6m@isTp)Z<\=FH@IK;dTEj7H16b-[c%0W?%S"iPh?m)/Q@`h$TS$FJf %njS+d_$=lD!\#8RUoY;PB?HObV-,h54L/?q6j:RLU>tJ'9.Yfsii!@>L0?2F34k49pR:,B9%UB"kVU>\=GgN91NhEW@2JTFE@A07 %"F?34cKE8#F#J'X'?:B/P=(&h(IJXiPa[ge*sa$O8lNiV,/Z3O0-5;EqVr%\ahdlfV1XH+5p3/=UAP?]#[(\aZ$M`-GK?X#)t`jp)i %5kO%r[7s*Cc+3'>=C0\Q3aQSLEG/#I'1lY$^oKS[.^9,gN(XR1HpPt#d2T?k(uK-h!\VD@;^<=# %_%B0?ZK@Zj;T(kW":>2aYN^mTj[hj@ak^>"(R!]%^?(C,j`6A1mYtJV?q8@RDrdR&VWI_j*$CA%!-9Dkd@F`3o4&9\QfB*?89ATN %CZ_[-Wp:/s*:.3LB&9HDaBn&CNka<&#?-chF$$<(&HY2p?9+2>Z(63E$SE/t>>EFpVkn@LI0^[s&E3\s;(&'OL@-j&luM^tIeaI_ %XcPG-gg'uo=ncK9`Z1l^niMre_pcX9H8p,q,2*fSkMT5l^m$S,oDZ4C^\I6K?f0WKM%IGs:2u@X7%`q=6L)\UX7pt5IQ[FN[WdS5 %s8Q5*I9$8pB?"WVM%KBW^#.3>r[m^i/^Bq3jR8%q0>"OaVjimN+3qSSC*!F=Zt4TuB2aurM(Gou`Pi85'hnGG-_uGB.o>.5Umi-Q %Zpb-^As8.M&0=?1`A&=-$Y/iTlQq@)4VgCJKu)iEZ\9Z4&97j0X0Eg=CH1q:/]nWYWo2B^3<0(H1WDC_+LfGC`moVA".pSE>CdBN %`\=pj)qn?/,=5cH[4L)EI#uD835bD_)OAZfp"Z\/DDc0;;MUL=j^&`lOAe;OB5M8*7c,)!s*pZWn!k=b\f-9ad=qE.O%K,OTj3%ap"ND0jr!cN^AS0E"p5\mg1oPB-a0 %/+34XM?(XZ+-.BoA<9qqr.#0CQ&tWq9lSEt[12jYg^f)$j=6NN'gjK[-\q#G]7%mM;MkONL(-aM/aCkF_M^oXF+?5m,1DD\JnJ=+ %J0FP&QNnrD,b,m6u)!fb:sWHsD\]>R(6\+dNj\FDrYbB!uh,I.,pKm`WDM+uM#SdfS4lr?B,Q04@(il]gT8-pq)%eifLr)(JJq"W5;LA&)%<^l5+,:*V %[W7[VY&JlG)i4s?Qk3KJ9QgH>YO\]a%db-'d+!=p$)po(k\<@@Q- %U^(n9<(L5N\b;`)cqlP_$&QK78d%'Ze<2PR1,BULbQeJ9U9G=AW[Rb7-r3=c5#2E^@UsF)o)Su-#&c2*%1XiP7%Bq0&tC&jXE_PW75+[FO1`gmQM]LDdY?BJk-"KVLf2TI"caVdf2][12oUr-k)T)=WYk>#Gh9**:03j %i6'Hb[QkTG[BF0[mJg.[LI++XFSA %e0+'h):u8Fck=Jr"*)b03.d,&):q2I!%)l7beKOPj=EJKL2n=Kf]o"qW>,#3m/!q$NoM`OWtS2%8ouA_"=EZN@"+F6C(GEJ,q.qk %!"HLg&9_&MhD^D`t3,A/C10lkbZ_,*M7opBY8D,pZN7'BL*NU\6d18\3jWPmPed@8&7[nTpeJ %p,H3ZSisZV5RrsZ-Tlt,P8'N,*IEITHc92B\-F_WS=RC[YnWk&?(Vk&%2pkDJGBC4mW*8k9.7^5Zm\DR:Jhb.]nuFIBi[W#^%eOd %82dr\+c@cd%L8+7.rt/7Dd;U/:ka].#/5%E7&;4Ip0o;[X[Q(kfmY,APEnPWd.(nRU_?;:fSQbr5k`#RQ'>12CL2u%73H^q,^O,S %ZlFWgS@#A@5V*@8';t;P72X//k?EtjK[]=YZ;N8?XQpb,JrC3kMGC$\J-rl_\HQ?iUNsC"m0gkQp!n%cKurmu>urqkao0g;7=$U_(KVo^qVrWAmHm"@3`DlV"B*A(2&q.PAjk0:\,EEq[[f8@(hF,X_lbHMnErgo.&j2*PM\7bNF8'!J`/dN'u)Q]+]#aY6&m_#aO7X&r?HRXu: %ZID0:+h1C(WFnH<3u(P;fn_=S1*V#0\QmH/DcJX],r7r&Ek56_%WUAoOnRkon=GFt5U8_0:WeYPAA*;A\1*cO(JO.+mK?Y)pCd2S %A6kuCP#!NI0bP/!&&88=&56=tD'Vr'BS_=8.OKu5+[sSspro@$-faJN_T-uYD5-)#Tqqg\itTap9EjW_>;kUMAc6G[?$?8]0Eh!OeaNjZM'Dsh4na-eWbj0eio674M(5` %:%rm+m3>2&H#2jm\N#YNI3c;q6+)bg6(aTbo'"dt&u#8cg.0B-Z1cS-Y]ju3BCVb".`,$[85_WTYlk1O$eHaJj25XV*PLc!a+J.O %*=:>ICe^_G(;)dC]C$mOhB%MVpTXm?O2S3uaF^lk@b6$5_-75tIRq<04M;8d06eub097]0HR+@%7hr\%B^J;*]KK`Yi1g\:*jKSO %Y(F-#V!k>fDefT=/U2W\G23B>]KLR"!$5>55g+^nEK/HQF&VD^,!J55Bu %Aae:N-/$>#_qcJ$7B-+jlf0(h@UF8Pi;/BasK"?jSrGbE7@<.msG#;h5[60%8L;!'u3"cP8k;.,h6bVTDE. %/`b')2LW_']QJdh\p]H6Q;@r]@lak"^1Pm8fZd?,SQZ(60M$=.jmpX;#a(?'!b0H"".h::bUT&QgN(R' %$83UUYmn9`e7>C.!M]fReC_T4=_]7,bLdH:P(41A#@p.6DI0NX]h7eDheR8*e\j6A_l($+>0617)QcF#A!?qaDB0jkG4dN2+6;_e'cf,F7)m6Fd\lo^i9F-1gZZehE`\%b56q %ecFsk2F)CA&P;(J`Un4&2IMd_RSK0&$5?"2$/)Mh&KHTXkkF.*/rog<'slASPdd&G/)/TQCW0DW7d+i2Y"J?\&g.nK$*>pI+E`8q)QR%6^f;5e[CIG(`D/ %E[D4t\E+?,S$;#5l-(ajn*I@?7+,X@dTD^$p*Wns!nYAb,JU=+W)O+6knRI=;;Mk_d=%-LVN'$=$Bf(g,Dj&9,k?jW!S1)`:7\q; %%,*^1RE\V!pYs%"`3RI4+>F&h\j/qf6j,*,gm+;h"^7,`=^q9&7(A5W5C,:53%S?#B2NobOIiUjK3_E9O*0rnaeZ'+R[$70gZ.8K %4k>V[]%r/MRPRR*.Y>_A8T\+B*`6,uPD*>XJPp5f?)cG/^g3WcHU;iK,";rqkO;1gLD5iO3!`;('%!S-@*`D>!D&Kk+:KDi2*3,3 %b=G_=)hnS\FDd-spcK1)M1M91G&=:7eNG?:5!G]U0t:I]]N*Ma):M=hb>R=,J<\st)BLtS0YNTZ*8LjBP^\faq5?gj*Z4_e`9P3# %qW\q^K!n+*b!`$4#@+.+S!p1Q6!Y`Gq])(teh+<[QoD@d_n5b\GgUZF&Y5t6J1:kM8\;*mgaT\E(pQ#MND$Y5TJ$sk88V4qh<3JPk1+&GH>+=`I*OUNTGBph2.^D_^IOs&"rDEEKFjh";-`h7b,ZlBd,=tQ7RbY+1kqBLd'n_7 %?F)^W]XqYb),nsncPmH8/Nsjo'Bk!t98U%^'IseHK18qFOWl03XcA9rT^>s7-Wn#5#'2/bWT!,O+BDF_d[8b_j6IJTI,G,_#9(\s %EO)!<)^/3_E6a>H'"UQePdVnfEJ&KK5TLYlUM(7*FB5m/;7I4RZ%.T2ajJ7iRq$,QJBT0$>A5!<[:jCh0kU*)G\=3sF1P]H64-8u %/_&nX'6$27j6Us1]D[f:k\\?#>6seNQtLZ)/-)8/bQXB1Mh8&fdrP\daq)SBohbVtA]p16D!30tF[V0@gFmnSF93-FeceQHlqF?S %af[l@-]%:lY`tZNg6-k#MD^?$0JG?492dT#lF670j#@;L*=lCEUhkc]/)Z]C*TJ;m_u:2u4,YKe.`(3LC<=3,@Y>pFF>]$`bV.'s %fI>!`paXnBd]Voa:.?&O(dfN-H"*i'^u,2iWgpOqLC/ml%^QdU'olr.IG;!/f.`c3dFuisNSLH$65'(j:$eNi`F*RU;GKhN/0VVM %S&m"/!h92K6.Z2H7.=D-"Oqf(o&7j18"GF94sJ[u.X+6Fk;S#og*#([=>tBSLp9S!9>8TF:8_9H"lH2')O5A7>',JlTR4(##dr %%Fa]8S^=TbD4W-E?aC2=J=uYG.LmI9PQ]9$Q*@-cpb3;b9JYNPc`slLs>$(S)JPtc0K`62+7-"WSi-L7D=i5'SrXYP#75&1% %At.=\3?huU$me.,$KVe[9kIfHqPeg`Z9'>/1%3 %%BG7)@1e>-_i[Vo^=6Pc]AsFa<(&EO#,qV,jaOF]4+J&IA;1F;=V.5-[00#n#=g>g..W1F(CdAZ*4&q1[`r2?6RD2L$IDUYg=UtQ %&j7g=KJLOl3t"VG^nr6"^S2.0)fg1HZT2TdLHXIgHV=chO`P.j_lft:X?a<4h3PeqVcWWkO8GCZ_+2AZYn3=(3[$r:VT0aqtF,`K+%O0MkIPkVI&h=:q8TB0.bTK#nd&'XmTdB9qMDX<3:Q\mm-lAW'M4\=Q`U!8*EID&BM4G9P3 %$;tS,e`^*0KlP5D?^,)_F?ACuL&>9ETHM<^_j*+jpdJ#g25?>E5u>'q22)Si6.Tp7e,`?EeoT=omQn+!ruq$m#O6otS;(+3H&il: %(3%f/,t0A]R;p72lHa%/ll#u[c3XIXmRf1"oF0;+lee2[:`"+'iH^rV'[O"E??H@"VZO2I0nbZfnXoEK?QB$*o[Zo1\a:n#'p;M15Ed%UY$S@XEKs8kQ5\A`:[J&81E'^kn%[n(l*1Q^jKmX!R:^E&jRp^bCk[C6D#)M5Fm8&s]cI6kL+?__Ud$t,@n,M&0gI`^5*mJ!18"n/J]*s9J<>r!J&p*+3O %(.ppG$+PG6-holRnM.^i*Jf(DAqMTdQ`]n">_u#/jf3K %h,5amecTfn'e/*M@,*#52Z;B%f'SnVmJF=2.nR[f63L#gib*C8od."J5ne6![>ku/fmf,+Ol'OaNIb:$C%iuC**mO;4_%G.b.8Moq %7=BaH"/7-L-a5("2/&XQ1I`e*]M"+E"1UjX>i0Z)r?uEmdb&VYeH?;K,oaXK'jOgb]QW,EoZes2;5(]Zi+l@BK3'GRL;gWBo?(UT %jVOa`hS:T*XG?Xo>Mr/7=43d=X5t(c' %UENs@9@9kncCGoJ2B;ZjX5C[fo*MF-"=gR\hY@:@PhG[\PbWaI@1VijXU]aRn:@4Zojhi8_U8$UjOf`-Q$Rej1MZU[rfu=cot1L\ %;[&5B-?p5YkX^I0VY(GQ:+b#Pt'Q70nbog]KIZ*msYc %((0Nc6fn7+Q'je;b=P')b8sXM""2@O_XTBp$<2IboJkg%_hLs>,+JSqF*bp#LCYHU?j55(kFY'<1lK.BFR)9+O4M8QXR60d"RD=1p\KE! %0^8`\\F7QXgVD]]d,?r7+DARJ@>(1glN#'N6LE%U]&CEQsocj\7^j]H)\5_YPN %.+E*sKG4XpgdF]jS4%D6O5/3H^EAp"!Q\a>S8H*j+=t45!)s[3SS!fdTmO6@"%khq3^.j?Q]"a7AKa1+qgH1rAgW@immHCj_JTb[ARbN,]W-f:f:L`<]0YX@a\L=Pt,`=<+Q0#We$_++Um5-g;0H+)g-Y=?,4% %YW/M1#noWo)!B?JP@n&\8AQ+'&#H`&T`2&t72H/'dD[rq")\.ROOn[WpVk^!7:UHoSl(-IH+34Q"a65)J4Jr"W3Mo``mkM(KZ5jd4Z-LZ1e9<.A/YbYj!K;hq]X/.L7q>hY)cq6,]Us=ZiG`n_ETk8j%)\uF#O?p5Y['\S3q_'4\&^H(Zq@QIT,s(Le3ETj %Jig3&/UTiEc_qiEKkiTmeTP?UZe>3f>/.e88nGnD:U8Z]..GZ;>0.d6In`b9-U`7q,J)ONMU";/,T\%_*V:Db[h!CFUFLKf\+&Z? %4;(ZX_h/1VI)LPK!!_,!6BJps%c`-mZr"uf@)AYeM^t],gQac%%_Q-H]"=]QdGM0i/3LsnfgG;S!\hgGAajK>Ac2BWkk<&Bcg1:e %_NfCMiMpi*95fll-aAFCFNBhj;.q>hWl\449suUbK,59noCj_tX\&4t5;m4)Vh\5#k.CB'YB+dRJlH %O&jiH;-k_o#[Zm4H-&P;_L3k%O>@->4HG[91Z!SD!i+XosEo[Xtomki=Y+QKO0^Sh=^pF9"b2>348b6Jf#2*/,F4,TLo\omTB6%nbS0JuCXYgcnk6Da!=5if-lA]eo?3S4_bMfe-h:*_+e+l*iJL]([_f6t#T46G/7!"VPR@oAE4#Zb[s4/?[nfVg5K %]9A"ajVPd-dFlIEC4aXVdLTgMUB-gX6Jn%G8a&Kd:pB2W_Wd6T";9DDqZY(sQ<]k87FX_Xg.61[2:JAag&k %k?'h4=0oL/UQ3Ce=P1&.5i*m%:m5Wa"h!*HR@]LW^c""'/HDF-loP?o>-ffhgQo.!3hk6.CC@?GeBO:c)mGo*lAeX%=?GkNZb#_& %oc%p1:RPtCb0d8sKoZ>q$%`mkm35b<6[Z,EZB!K(T-An+*g23.BH=%Hp:sno7Wm5MoK\\$+Lb(0B4%H&GUVkVO(0T4ToQ3:5B+QY %7uTtlTW2YGR0GNNSepNjF>$dt_FJXR(M9;rZ\ao]ii9f-mo@#2:^HMDUp!*="<-S>&?MJl- %(F[*XWot0CIUS:BM=AM?>)<@j^d@6:Or"+mh&;3W3/)nn:_EhECIkfE5)==XjB=]:fhIS89=(*\fc*4g!]!9k2ji$:b.FDW6l$P3_?2$D*kQX`DFVu8`&Fu2_T.='PaMPX1O %:cQ7'huLjE[c90toI]BgTaRSUd#Qt\/,Ll;>i?edH;>HN=\g8s_u%=/Qoa5b.rGu5Rcu!k5\2[[;k"V+Dcg\8=SEDUo6Vki6%Mj6YdcoMsr7jXC@UCm6FkN'*:0 %-9Y=cZ(.(l@Xqc^GWT>0XusGU7b>5mbO(APkU]3CFWG]7"6;?SIMkJ_]VlVMd(>+,1CW^Ui+;qr/on^d[Qa@Uj6-J2JB4Y4Kcd)1 %LqLNAC=ZDS+6uP2%dKYX6b2RJ>',t.Y^Z-n4*jM[;1b"/8;)=,2MjZG<^ZWtHKQNW3MI>ZkQX2g*a4u5^_O/J"Hpb+2aJK,09jnD %4a9drFm;Gkh,aFt.%2#*4b$dhBP7^tf+&3e:etBEL17?pA1TS+]Yc %[l4A8&BY4jW/&])OR'7NA@4P59LXD]D$=(7&hY\"3f$-&R7DC:JJM2C]7R;F+..g6C;mgh0<`i:g7jI-p0g%M2!qMlQp^nhI+49Q %He'ZljVPG3io`UeC8"M'W00/X?i3LBeaB3-=+Q^T3F4j]L?VhEP.SEtGn$N-//s?eCbcDPlK-JP`L]F=\ %nKi@<03clfN^QpT5<@ih#g0\;a20>rq%AcrDpP)3Af2[s4H5lfmlcR@AI(eCo`5`<$3D_Q'eKW/Oa&-O^6$NGloM?\lsI/TO"8eJ %MD`Ml['07p/5?R%Snp>MYRW>JQ93rq$!/rLPBPbl]*lYp>Tr]]H/.*\ro.XjLicr>d?PAjbb-f4;Y<'nZRZl%mi %5a*b>Oso_8"R,&3V#pb=Q=Z29/B;`R2Nu4s8kbVd_qVYWr.KbSfU-G6YYN#Y?l"cZQWOS@)IO,KOA3[rc:gbGml9qV!D0;EaeK6* %2AYRsUZJ[p>>EB)&;O""C`'kg\!a["q^&?qrtMTqpV#iqA@a_uQL"R\^-%mBF8@o93aSV7[KDhj5([_OG:[eX5Mi8sm0HN'!gOlhck@#'?J)CrKqPWG%?VntB>#o#-.6)F/JTjPYC[7Z]([/(h=g&c_bn_>oQ$@*E)*bZB!MUtd %^-RfMBM&^@:U/d^m,#XH]U=IQJRgWtd'n&,_DI![ %H9/rrBC2n4JVMB8#@SeF&*+ZF+gYkX75QUO4Ve3PSngRgiE_SX'M-a;`J^sJH7?R7#b")jaN]^R(J_SJi'9/&(OlJo)sk^5:#u1T_^EC;=9-%c#=5p=ZW\=Rje]*mF1< %LI?]h8im9l,1*PF^!GVo,.\EY%T6L++(;;L_X'$>/jk]jr^qo]EeSX&W"Z+D0iE$-fKNIA$+c`d:hhB\<^b\IZ]/W[3Mf24fe*\X %Z5i@uiJQ"m")=UUU&jQi+2&W/-kn_Sf67PuB?ds(pcDVn0g@=NbmL3?,Y04%2IJao"*YDq]ukZ4"X!F570%/VD'HRJm79/F7YIuT %Uf,HW&f"Xu*4UHHm1:6QC"NIcrMU?-(PZNBh/"*T^iB5TgeY7PU<3#ki#E!%c,[%,<2qiJ2@uW-mPd, %99,S'%4M.V:iSG&ooA=/%)"Qlbi&-L#VHI1FHV#H]n3tbfYCR$:k>?Bd;8]gh/Z`'X*ZOUdqO"bRFZ%U5f,cNau%j66iV<;S4adG %V6iu/7#FU8>s/h#nQC-8h3-f=#%&m<,uB?d(J:%RqhIK7B#O)D)'EnR=b'"_Ys8=Tf3m#rSZX%'][q %Y:u%_W%ao5nIRTW->mb)O2H4:LOf[#)!iWk\#G&?QN>,NkinE%m2?kk,&(A,d0;'+sC-4U&3 %7!ZT[V2J6eeq.-5ZCsgRI<=aa5mEL3Z6r3`?I5pj!t*F@BE$9/eiYmjq6bBR7(mP:*R>/)J6sl/HJE!.DUraH"l*lQ1S;K;("cq'S5S4s64';W3Xr.@DKd2m+FG%MZ"hB&G %hTF'6[Pf22GI!%iRB%&K.0K`Kic(e\&h&XU;b(k>\F*&]eLfp6_3:qP*X#1]?9r.[o)\_sFZfkNpTM*9Z:oDA= %:E-+&:_=IZ-3Fp+7nK/UOj`esg-Ln6p'=F^bcL@LVlFde&Pp-2$s9>^7#Mb5d9=Zn%ItS@(82?8F+Unli1J^LNO`+mN$`LD)GCD: %pJ38CJ8QKY%o+3coXps3Rd-*/]cW6Dh&Dn8o1Egr^.&5mkQ#@3MK_D#27P*iK.$ft&iagPn4XOP-7^ %2U.aHL8d0A[>lr,gK7TkK;n7p6ReB'GA.Rsp)KUddp(Vc?.Tq:)7Z)CWFD?$B99_ArU.#=!D@AVh1:)Enq.-EFsK%CH-M1IQn?$J %'kBki!`,q1G<3D+7'<"QNm]0?f-ZI1"0c7&d7O+"!SSqUV(%EP;cMO$'0^T;_mQjn`Na`H-,g;A62!=k_t!lODm%5VOXqiACS$[r %N]W!hgQYe?0G:hr`2#goeA@Io;niHW/fC?P>'-!ZJY!-@;G%=2%+teg!*kcmd2\uo#:E%234]3[Sfo>!QNcE!;>Gg"nZpd#UCNR4 %8l>Y-98$s4$MArifS$g2:eCjo6CJ#C/necB)]$>tL3rP@lY;F/j`>/s&6 %N.DXB1"$ua%2!>FEfDEVb!&A3TMhQoE#`_g-(=E\\7f)t@9l80ogg'Qidn16ILi31rBAc0+WqXgU4"am)GMFh1K>2%CDE#*[B5Q4 %M+&!$i;p[XkVGg[PrE&c4Xr#.lQms]aD7.t#XXcAHAGDZ06&PHjWHYcWl0II-lO/3]@s:#7St"L:Lm+o>;94FcKZ90RM^acMY7QJ4ob&]M\csKj5U75TTPe;C5YBXYd*a2ron!2VK@2FZ7T2Pd %`72-CV5W&05)'Fp%%T`R9b!A/*)T:Q&`Vo.@Q=\b&[?g.MAVLJ>-"!7g&fh>h[`.a-u0EG'O)#DN/lfEL6+%pD8]la6@_Y`_Os]5 %TK0!aK@69eppZMUGcV7pu%@,XBVD1'InocV2`;:\dX@Z$Xcn&0NC.<$]Gg %.6/$t4c]_V".1<>P6)=,%[87A7Gf7Z9VU^_Lc.iKEEYf^B:OsE?&'4$lY`J4G%dJf.#'3ATE2rgFFG#i-8'26s@AL8Wk!$*s&_"g_L>]KUmgq:olleC9m[9,*Nrj %5ru8=Of!e(Xb"M7SCk+o-h(f#a+7)'MhZeb**djPGR>$?'\!5Y_rVA>E(!1#qgdLK%i/SH?NrPA7pBjQ((]6Ae>A>,r&80G=s>nZ %$\50P6t,+2X?sMX'9h@EVa!^-85rd8L[%#N&di]5oEj_8n=)JOXp2@TZnt9]G%S&!#S'`#T/YN"qLSZ %(hE^j&;6Grp.6\L-o7ks4*+j/6G4cM`Ln;dh>TWBYYe_jphi689dhc!j8md1&h"%eDS-!E$:l-tnOun1@k+2SqiK:"M>NUPi#%@r %HXQn"RG>(k]a=m#d&s^_M3Q)h?Us_o6Mt_QA3*DUJqG0DYcMU)*.=W`DC?E/`fL?a) %M4nig&[!5'N,pm8g,Y75%9CHUl+FG %iuH*)O+ssE@E@LB`3qr7LVl^+pk@p&jqMGqQ2@.INJ"GLc4V9U84(5`q(0c>1Qh8c'3@O$]q+c]5Z(-O[QIOPVc&c88b/J7V\t"F %,8&(ieF7nY`MaV6QO+rpWJ5qc)E:c,MQ8-?PjRAp[9kqE8'Vb9_9[6GJe?$p %eJ>AD*mUF&D6tUl6pNtV0d'(1>#S*r]gMo6 %H4fR;+@:#H;^N&aLRSs565Z.C#t2Cq5d]S^Fh^-rGK@F%ma.<5Y.*I%/\+5ES3*Ouk76b0\O65DF,0AiEej:ugnA-eSg8MNn\^je %MbMZ7)/2kFOQdF'/goR3In6cd+7^GRjq$!5fVcq81@gCbO?_ef=N_f7lgfhT[*t<55=tj9iH(,gl:dg&JLIZo+GsqJLqHoX5X]=5 %P6<'2Xs=QUPg,R\7(l>/LuS76UA0TP7#&UpjVO=7AQq;n"q`*F8d<\=l'#Wh9s]H:n8Bh0aKNi2o'8&ei\"dR`H<%dZIg=QW8E.R %aWTT;48\T,bg^kTkiFRUN#CAZ<`!+h6'Tu6&ES$P6q5=sD06%[f"s''(R\s`h+1>05su5#mmmWp]k$X;1Pf#%SO$4rqIX7L7D\d; %)+7`YCrd_klS=:k*UK]L+CZ/SP@bA[`37!pD['(7S/R97\M&TVf6eREmT[sZMYC`pV0Tu8QU*HUH#Eo7L)DW^6sGa=,`1l+.t^B@ %Ba,/!.5Nc9glat1A.U=16slNO7,UW@Olrg;5(cC;:)04.&?.>,+@7oPA.[uYbofpM15OHV$mM^s4"#Y/YKn>S@^0.05nn)=;<"Ai %I.4TBM6A5fo#/5p3CLdJP!tVdAeBUdJQYCV0kQCsBgc.QLdG5D-"[ddq3aX7cS:b7mVs`('1CG)WC6KV&kUp/-VbuYns3s]8u0#b %O@g5$1mKJl9dMQ0>q/]VQV&N!+AYmlo"%epoRKmb4Zeq-5D0hK,r/V$M:12t4o!q9B(Vl_PmG.`]UZSiM84j?R7*pu,_FkrP=WZ\ %j0hXU^mRT&IJ+>gZ(ol^&oF!j-PAkNY.c.o]i60fffl:47-O`O7"/DkO^FGIjOU4A`HA.Jp&V-\rl%clGb@'b6tY1/M)6Lk3CtK: %.k*Uqr!Y#;3Y.'82)/b:;bePekKR^/9PQ8@W14[#&ZtkJh3]dRaDr2]>PB;<&^agLO@BrEO@F?`!e?t3H)Ln6AYLhmSTP!l+t %,nWTAIWH-a?C+(@+-8mT3=0AgP)+kkJ,LW:?.3Mh]\0VOM$T,_h:E02,2,$Mh+:!bT?^%Q\ng.q'%%(7&V]mL6t'@6Oe/15Ut-e' %H-R4PF:qGqjWl&MV+F'@9]01hd;T(=S4$n.+b>kG`7[7Z&o/-'EHgRWPr3M]NmasM9+Fg%1Zo;Q?#tg$jr>R(Dq(4BUcF-Bh.N*? %KI=-i5BQp)-%@?2/bqcgRQna,3?.OEin3NFnqWS;DTEp*A#go*ki\'moTsL2?(X%I4R]sE9:gUn(Tq"2ef#H/f=2N>>h(j#UbQ>< %.'(NLG!NoncO$b&e$Q"$%`f:pT8\:V4nRHPRd?L5"Xn*fca@QCXf?NT\cZpDlUga+s)@nFhg\SGo.NncDb^[c1uJ7Hmjid78cd0f %J*a*Uq#oohK;rTiZ3a]CM;AS'B!B[*.\XQhWK^tl',k.J"j\1H&kVJR+C!QXCrj0.L-:7@69t6@/189gS!pD1i-Q;2ms6ZUK1(OJ %3gLm1?/sa3"+lo'7#iP6XJ0F20)'&X/f`=ZM>.RU?.g8i]V/H&@='h5IS^<%&7U)g'!sPe0?"]X%@o!0d7]2rC,L6lAU+]=fG02L %4I5b8*LKabZ`5i>P:/7Jeb#$Tq&ZYF`pl31*Q$0H%laRqP42faCI58'GeQ-5ZJ)d#-T@qf%b0l%B9bUrGmeT=YVm_nablld#SnO, %5I$2I$kNHP]2Y.(OIrl/b4.Hk[Gsj9TSli'V59ZYkS;#D^4-=6-(\DMX:ZgFn&Q%E>_kMY).%-BHq=]("O.EcA/PnNZSPG %bX;YIH?N5N-:&Z6)[h0uLRuSdXZ$etX,];L0CSi@=>O[\m(,GaU/u'Fha9)H6iM3+mTq$mhnpZdJ,7-.TD;j0!Don2@mL]`f:T8E %ihNdrieH']mog-"BLi]2it8Y^:M&4/$a2)Q/k0$PE$Nr.5IY&$LeV)[CAFfMu*ePDD_J)i;5\B/5qO2"!L44!/Yb7 %1UMo%(&p"?=jT_e".FP-[lG3'_FlK(2pDZ^+OJ %@h#bq]UhC&*dCSSc*Kmr+9tu\Mt1D)4ttZ0nd@Y(^5qgL&ZH$'X!;1koaJD_dI*'Q^:7_$_NDR1C-NK.8/s"PU5VCI3Jr.m/P&A_ %GSrP7a?n9X&eYO7@qEV_Gq9k@F/B2K4`:g4`7]TJWR;*T/S-E_V#c"K-\.qN/uY-/dXdeL(b9DPsQNX/#[@g %$Wp_!DFms];^S]T(s[FB/WSClbPfcW6?KIa._<_Xbq9\/]3Z'A@'MWZ[]]l3<8i$=&i(Ue$f5EDbED)Vaj&]AhX>>WI[Z(fP/$np %g2*03QeO"DF$WY81JlCZIb,5U\76p_*4'=5Oaq\IQ)bgi8t:h&9#g8Y/?^je22]= %#)1VDL8gi=5U!,"&:pr4p^CcJd@:G:r'[W*T782.'4TnX6ktH(9Wi$d;GdHP)Q_)gJ\,C40ti8Z%,,j:bE*;F0@b^7%u`$MK$[e' %"%XX7H;i4)J(f=AMD?^/kT*f91F6V>r(q7?mH9Ku=pZ;QsMua/9dIF=Vm*75NaY)_hMDZH!.6Fe52FE,N^[q@&H\ %@&*p^"fBJ0!X#B7@e.H!"PV30R,;=Wa>%%,^'p*>BN)[HMO[@\Bj(i#g.pgFJ!@n%NsT5IEj=BSL,H&bbUgTW;_SiEkZLS=,4p[u %np)]=!97TE6:d-iO]+@GapC(?h30Y-+OAAtlcB.1THnGNbp.[u7MQ!AE(=Aec_u_4n5BY!5o`^c>-pNpjOVF?=dkL6N`coBP'/0G %_$8^J3HG*?ZN=F2J6lq,g#+c3>;/LgV"^&Qe%MJ%pG6ucm9t0K;=PdIjEUVM+5^R\#=`TO`:mU4@t8M\LgGoF1r]iaKF":r;XEe; %+\VrMK*1Er,jQ-O*^/2Z+bm1XV'td3rULt`Na^'!$r3M#r_qHc.d13'5BLEVSj%JM_muOoB.V1U(`S5jb+K?[fZe %I._sWduPjuch8uphtL$arPn[emJSY7C0)[P20I#)5F&mF^KBFa1BjA8Fq5@5[/ONk8!ENW+p&sG+jn(Mm81^B\?JlKal#gX;@nM2 %+jDOsMTEH&67;@e9a.F0=XRgr0!`>^mG]RfG8LPRqK.7>/^hh;'rPodH*.Ktqrrh=NJ35j; %RW))!%9#V3\kh`8ahW!47g#&P=Y]<.jaj\6oU8[P %\?N%Ja6A]1a(QP[g'Jng?oAUcG'[j-Jrl[3<_T$UJa6/9K^?i/lJRM#=a*L %5gc5ukJa#V!"R$qVZk/@6L(&5$^:*CEt(_G$.A>3h&9KfFXR%1RMNLlWEuq3bT7r)J_m2W2#:nOmql#sZa(oLN'D_qlQO];7kE"i %9CXZGp]H1MI&/QfKor#&2unSYMdYR,0EZG+!_a&:@L&,"7]-mT[E)#Oc^jA>Bh<'tm&[L'b.Qfm/#J:&;1>kt/T[1*rpcrEfa$/M %3`0N5K!.]J+ajnB0H"?0pX'6UH+"%p0Y$2mH@o$s(0nU>"6C=s(I7q1%q6fH@T'D]q#o[iG`.ap)HAg75b*AOEb@9-TY\>PIk'c= %fS5+Z/bJL+dm&XNEL[aE;0/'e&E\M(;XIuLB;U@ZEjh.6VBd7K5c:](OVt*5#g"0QSHpFSX-p..hH5;)o>jHG9eF=u+^?0;EMI"u %3:'VK4QAUK5a#!Sn=;CfZ;e,tpnnVQ'5djsY^FiYHVd9k3\1]PSjZc_0FY-0SeTeJ*WomJ"F5R\#I.hE!\ %$[G[4S>.f$C.0nbm\"AFPhgl$]\q$.:o[fb,3BSQ.#9uNKg@+3Q_s_!u9?Co0Z3p'[EV4G61,?eL$_6>)N-OBmc)D`Zc8Z[0.I*#I,!F.te)Lp"dML]AN(af=6?[qkRVD %5\!Gu"rOaKG%9V@lQX+II)Zs"qT)2^!!+-cnrW-=KtEGWg*bGtKG6(e#m:W"*$c!mV)=l3E/r(Cm_if`L#kK]G1=EtUH1(7Wk_bm %=H0,k`HnVl3p.QfiNZ:;Pljh`9[RSXFDOV#;OY`sKBH43T0_t5a-9O>%MD`8JS_)ON-70n1^cU5nqN165sH`OXe$%?1R"l> %Q":pAPjO!AWtbDT8]8.A6``Q^nHQ#1J-Hae#Ura*<)CDEV7_-\(n:k/^]ob&+Rs0U>u7&SoaU#mA.b6u$]?:1<2=A%gk8QTOC#Kc %;\7+d\JN)T)pk5c"m\$FH%McK(gt($<%.R;\ElB0S3EH'.MB*f,KaHc@j1U6BfS^AM=q]L`';n %,$0sJ$_9OY3Y[an]O(RFMGdTC$#HWch7*;Sp_LL[^`57[$[#+#p+dsr5&f;pLQ?63q8\6.T5g2\\Xs'gJ\>tJnZb"3nHd_5c(Af# %b5mA`+uQ(t"-Eq5pqpK#eA>`JL@qr,rdXXuHSKeNq&b'(J:!s`AfGQ4kabO;.S3;]e52`"]79a]rKZH$Z&M>"cL.9BcCW8^Q:I^< %d1f_*)/>UUbBG<0O^egI--6h$OLLMTKfO+P1Z`!dAmiXbFmMW^'4oo'W@&9;CP#6@a-I6MT=pFrIH(Ham_F %Sobt=8bP;6W8:[_"t(6"Vf'ncn>L1<=cdVZ$`3(b]b;>/A8R,6fauH!gFToX=od0;mn!'qi[M[7d=pGUa"^pa):"X?am_a8n?!iF %\;nHC"+jp\?pZOM6OlK-JU]%^&PY!e!JeJ0AqZk@!7nVlmL9;e"04k6oS&mcQhLn3/qN&XdZ9ZJ,PH;kRT>:U,7C&"'oZZu'0\^mBTR?j#_9SW1[Tc'%g:IA=7;\+92*l?:47-8"k$t:QJA$dT` %=71[]n[\>O[$8n+9]XL,gkIJOu$&MNfN4Z09G!R,D;UJ=ehA7PE$oic5^jQdVF3.(R'ZSHRp'\(gSUZ(8#jZdm"S@=C[+Mthnl %Fp"q$Qn+08!W9(o5=U:=N]D2UTACW4;gjX3d?Drnj>Y!(etIOecWn]@Mo?)QIl!W)fTr*$HJnsOdUqsuf723+o4_.]?NCIQqk.\N %RAPd.IR3GK[O4oK(>O%Yg_Q$6\UdYiiNt0m&1i'P#>f)^eY)Zc,LVu/]cF2.6%W-nKM9k?kWaEBG4o\U"KkM,K1O@Yd2'sEp3sWF %NrWZr7d%QXN\l2rb>AfZYRn'9i)_D[TalW3.:8)aU7*?QiI.QR`n3_(5X_ADX,BBQ`Y %,P#_E,(dm'4Xok(%m'uX)'[&tE1\%:eb^M1%/E+i.3Pel>.MB"$Gt"%mWd0Nc<"/Ns&bsJ+D*Ebo"[c"%__i;c3fZ$XbfO>K5#"L1SCSkJ&"$P)H1O$!"lBY^u=WmgjNUG;PI/87_)m$)j2-:Npl>g_ %ET(rp1&,\._lpgH>bY3[5Tk/fP0Y"%0:!t@Z.Kl'al/.T;jQJSgS?@&pYCb]SsJ9E0'6+_f1Y;=odcMD#.\m$Bt9N?=DiF/W@ %VnNjnreCT4G&R;nj&l>bGUJCH(F5@^q3,4c"9$*O.,"Ae0Rj_Zs'6Fi0#@J?pS2T7oUl!>H9;">^"S)Am);`91Kn-*rrfh15O>(n %1,kU6UpHn!]CC3Zr'pK*U7n^]i'js7mUVA<79'VC'jM`]Qa=HRi50eI#tulHlEJL62m^nOe(oO\N2j3!o.rN.Q7["$L#Q[?m00ZbVl %K>/dsr>dVc!5u>Zqpkgq(r(Ajd)^.:&"FZpLHl^5LL,n4Q^mK):;#0q'M9lP]'B`^ocNBkpRb"G'++ZmO[(V:P>I@sXuG_s4^A$G %V.]?R5^^&L+Fp`"FgD$g,9mD[WkimO&=?ec"7shTOu-K_PJI;\8Xs@i^K;Y]pq9Xgo;Lsa4b1<;5P,bIs'qY.0jDoql-Z]^idZDc %2#&"+7^"26qKTXlmGZafdr,NULl++\;#IC3n+Pb/oh4XtC_tZ%oN%LM_KUZq:_s7^Wtp)rVAH.^-a/.ig$dPU!TV&fLVNib;dZ;Do5FE6r!7O+-rZ+N %$"%2M<;lj30$[hUAq-Q%h`MEXfbm%R&6Gen^Jl3NX%cht.a(dH5:-#!!<%6?p_sUhY=2&cU?ah_^:\hX\m:d1Q4XWK%#!SLPRn.b %k>6[@%/`$`\ib.PJaU@f(s+f2l$E4Co(o*Z/G%m1r6J'8GmoVQ"a3b$o+"a83>eJ]!*8$"5IiK3=T,?*>Z?2/@QOpp_T?hI2c@B?B"UT&b;*E^1M!EcRj)p8qhdhHOcj[LVIrZhfXpp %AJ2?,:M9P:H_3dDdEi"^I$41=%MRet8:T+uG=/Emf!e+9mM6ECUTH5e]jqZ^KT6oamX-!+i8Pl#1C891KTD%/Nm?$XBX+,A.>Ui0 %JeIg6iB\Y-5/%inn'1c%F16lj":'m].aP_gEX#^Va$bN&\d:ll*KqBP#,!Mb0^\@3Ac8.%I^a=RVq!kNi3/ri5<6m*0L6#n+U %,Q,A&\hFK-2C,O,0Pl@T(]cJ0dLANd+oCMK0[.oR"GN0\1K4W2K_>h1ke]2$F:%pW)'b;'7i-s/-'3?Xc58kk0MI3.&Z-*SS2`:' %&1cNI`CA0`WYj/%:q2/gD=438jpa_O!Zr()HC,+i'F,a%;:B'd0d>d7ak%.6f240\YOkpJ4'7TK!=s %)'LeHK1KPs$rEc%gdEEE:b[i%4:$\_9RHn4+Ui!+:d144!;:pb@L+.F!`2<2V]mf71p%$-5bU=\i=L\o$Rbm`&A@WL^AJoU&cRO$ %)($]mLCt#9Z\\`^1amMl@.7R<*[q!s_U%"U2k=@K^3s']S`t"r!)<*5MV2@u*B0^k`UsJ+VSq %i*2jP@1\j#oj61La!%YM'UTI7VSIbq)W3+;r6+H2kL@E,6c49TLDTGP:E29:"g %G+/3bS-I,fS8h.2KS)S/!uQ;#D'FSr%$a@%_3#X_o3fIQ2VDc-61m88>XCp7:Q %:kBo%o0*B]64b6V+6RHZ:4?XO8Y/2`J,kkn%nPiC&9err%Q``QdJ:"6+KaQ=(LutHS?lVS#B1A*5ZA76 %jVAPC1F.oQYWmT\5fD$P6YNdpiWFWoJ7^5Q9eZb]#)?lT+[6;L,kEPW2Z[S`]L%3(iaP:U9kT@XZV7M6"Caa/"Af+T-%R!DUKGB?f50B`.hBfI2_AR:;&.Lp+dA/+A]JN3;EK21dN"eO/nB8IpOEYoBLk+l0bhAh3(K:Q$"d(3!C%bI$M_GM'OXH?.@Z6&";f>9 %cm+QX."(RAOoTbK;AU2NhB'X>!_`_(=a:PbJ^lc>>-(G,a6J8BMD>8tP6!]gd(Orf,?cc5QuifD,oB%l#TmR0=UO;X+PJN6!$bT@ %XoXDh4>nti;3!e7a@Nru#5L)HXNN2$Mq--4#;OIK'_Hm6OlNX8?Ei],A;3YJu. %*#*uMP90g2*u-:?a-lQ%9:00T.*=e'c7OVB6R!:#R(#rV6]a8[^dJ%7XHiP_-te&?*rP-*L/9"K8hWEU.'bmqUJp5nKuJ$YrP56= %IT0*/UW.uh&7escpqL'6M,KiD<''ftfd((R^jQIWUKWi\^fF7*locmpkX^;$hf1hW"Mqp(,Wh)21\6>#-,;ro %MT[)\L-B6A9L=Jc4XJ@o^pj]HFW`N(OK>Q4'\1$mCf/IKa/D-0eW1dc"F34cKS,-)+GM!K#>UdCGi=YjJNk+l4N49)#;.6Wlk64h %ODip>VoF[;Dl?e#/r]gWrrQHA88`@RgT\e.!MlUekZbC8F>*V:]Dc:dra$V)O07AW`8AucfD(!T %%`Q3Ef3@sHqR-pKf=1Be!kW@=5r'SZSj)N8n/O9Qhf/+(*P-aU#l\emK'A(o!X-C_:.FFOW%\.*UDoSm#k/M>>R?de%H\nV+'LA[ %Qj%*kVh:6rd$.Ytb1^@-/\<&DQGA0ZoUaW:hL++&I0=s34Y2-@+)9?\ol)1'0rh__B=V,qb8tuEhp2(R4gX;k1hEcV^HpidoL5kd %e(J3?"gUX8\@hmt@0u#hin8@.LAi0T@*VV8;lH!e`sn`U.9ZHT'EQEhe^\ZG_s57Sg2c#(^@Q+"jqdP-cia*hm-b(`b8qW[p:_BBea'?g&f*d4?4*5XBJ'#8!>EVp%3Fb?dmc'I^!.[[sCa* %kIKaLpnBB#VY'Hp-r/BL]md7m+#^,nB7OE:5694QeTL<,Rl,@6]LU'OgP-ABL0jhQGAT&NU+XkB?ALX&^5UWn'sDf3)ppNlO*+m9maI*FBQI;BplV*mY=ET14^&Qa4^]-]5MDF/4*4IT %6LcY.lN+\LhF$(!gn4a".bO'lVP*Q`0*Jsfo0>ZYdoRDD1idA6_!Cak7@n=e.ch2!"XhadBF>%LY+GJ,^OFD=38fZ0ZdhU]#Guoa %qr3oo`G>WU$-VB/J=/.ne2a!3-IpKa>@^s0?R'eJL`XX,?4E]eL#eO/2q?Ko7b\AWQJSUu_"#0,J.]Kso831D9,&o4g3uFOXC&)` %^@efI)Y&-/p)Ib(-b(5A/X7.s*XQSNJV).NJo)qC(,]Z8X09];1jpWHEElmTEtoBl1LiD`"rZ$H9Z4ekFK.jq3KqQh5I846B^6A"IHFD+.]FBJ&?b;pkt: %`kuZs_?UF;4(UR8=*sCTZ.Y/h]Q9B=pWa.P-^a]kFgK_GJT$&KI0H's-JD&7s(o@&X^lIGM(I8!,&O=+DQmG5(tVX[;ea:*).e][ %iHFAf"\F1e8gR9@KUQmHCq!@2H*Hp]+`XaaF0=<'W8X0GT.;u(e2t?IEG;4@/&kSfo!\`:(`O=[]PXkOIaeU_*#("mrJS@;?Z3S: %oY5@#Hmaa;[GZp]q*%%p*mKA$NnsL2]CL)W_pR1>>D%l^e5PXD]mrVA!F%Mj5pnh_p'^(U+`.qne\qeuZd".1<2Jhk#Xu.'BkCd0 %4@bT4&)U4?O);>^fb/Q#Z`]O2-o`I\=)TO.7o]7W>HouIARGMmrinrFr,^,[P%H(n"Mk`WE]9JhkgKT4g(:6gc`[/D;+(lX?%9:i %dMlaLnkIa$;&6TMBPDHfK>j/N6_FW_@2663Ze.IYh(drfA6Wu-hXqZH5%d2AC^BTj%0qVV"dNmSPVSksN$l:?*Z+Ig44W!Of9u9j %aRdQ_!iC%aVnk:X'KeGb6j]3;rJMa;fR`VqRG(Kps&5QGc@2I.6=a"PE22>A<$mR>K$&0Q*G%=13eNF=P)PjQJ`_9sP-!UK!C9k\ %gW=`3K/TgF7E84s>G8AN3Eg(MWRqa1BX8QRW=nSpS&&j;-:uQr5?mXCFc*W=j3Z.&D,=tj/u@F-MiFk:c;CpL%a6=rtkLDg--saZNbnCo"NABOe_0Rn6WM`RFS]];V %KAf*p,qc`(IHE:6l!ZF\/J4_b:UgmtinEXN`MuRt4Y^r'<5tsinXu]affJ#oe>gEan6`3*;9/qm1OC\!7s93`:iEb2cScp.,IL@CE79Al[bI\o\gO'((7*Fj %A7[1P%;rd01S_WF1O3'GOet\?Y)oRcDBdUI>:mBK%&eO`YD"N0+COd;GM/&D`9fK2UT\!:1?RH[P.M(hdohj]WaX(..dtiM@^DM^ %"\.n'/=m\h]jBISUoWeM&bJS)o9K[T<7khJHKi5/a.6D:X#hGgrR@)T9o"*S@(oEd/8Y&A96TYTpLT2LWUQ;?2P4>SSW(%Ygo7eh %UmI%bo=\[Fk?Y[)DTa2A0+>l^$PHM>rN1OiNdLM"HBDGp7)nKU4u9%,YTn/#>I+F5qO*;uf^9Vb*W5@t#LoD.i#*aR$;s9J7qU2UBtI %E_'3bekaB%,8i(/$(Zd/G'h?\C1(8WijG_G>/%pf']n)/M:?]F_Hc[<``!jfbI]A<)eBscpOn#5R:Ub&cnAFXgHFt%H9jESbQo8j %Q=Qj,1Yq6LiSY40V=[HM&l`KAlAB_>cOmg.l63HiPm%RE5rq_:--tX8fj$g'-.6i>l![;m408:`SuJ%Kd4oFni-O+o?:]>"'i@7k %F;BA`=:1_IY!bInIYutE.STGm487#3_]SC]0\luK/!7o`na+LGcI07aa.gJ4gK11BSmamfSdr'>J4AcYcTk96!40^MYgFkLIL@(B %ff(2AltCSV+J6`96)p.IE+R)(b%Ha3D<<\.^MCiHfsaAL1EGg\%J-6YlJMflIZ!DRR_V)(Vqf2ec%-ZCA$ng=qDoFKKbiN^O]0om %3]h6BL.Ind/F@C&9[S2V6]eV!P'b)Oh/qSKS54%3e%7l@G(5-$'FN-o,Z()]m7OS"Y>S4=%pUZ0:/6aW+Xrs.lA?\MqIT+3Ldu_[(if&^W"r9LAIM^G %bk%E]1UZ5eQ9H^cRJVq06g`32,uoFhfCG>L3TS41rF%lG>Ws@p.AMM^H9oR>"kr%O)Lk?q4/TN@#Fu$;0rejoF3=i2eVld)6hn]a %qt2DIdWP`^ah9?DN;[_J'b/qj,SD]rf&Otj2^>$*oK5'OLT+5e7MQq4X@k72>7P=Q2-7Hg<9?64]Dt/cJ?,!9Z`nou/lV03En31- %g[bi)Z)pQo3jnW+g$P$fHnNorcrjg1J*r",a!TtUhr8o3)0l3C5D4*1q59MD!)8OYbrB>$Z`OSiA)*Ab/N-@D]-^edm`uZA>#V=X %0=]KSQ;1nqUQ+G^fa3Ho*I#?#BpK8KP7FsZ,n %JZbm(mc5iRRl,t?BEm+bPH@fASpW(*FJ,[R//.3(C#5g8/a5^WmtJ?!(?QtZ\sYP\a_p!+22\dWepkA+&QXNELHE_`)6Aq!-K1j* %0QAZ3+8$j;R+n4CiI=Ma/B@K=/^\M+CDo7Q%([%!-/2G4$*V@rh0]GFpfj11Q&9kX<7$hGiGVM]*,H5i4rH865@jSmd]h-$5_nS- %p301SaYTRImtd\bOIHG`$1S#8!pHEs["!CN`WF?8p#-mC#1Jk/F$"Bh&V'RaO="t@!AKo,5S_Q.>e2hEHG`fN2MMQ9=UabugO %jN7-/'9,FW?:%Z"RM?uCK?bZ<"EP(fQ9ZAu"3Ke0*-!ebi@?+kpKS8ScrlBOR?03b"(%&6.K;'aFX&Y*-p6E34hV[)DNRqi3HMof!;^>kar5Kee]lPYR%?!bmoFD?h^1('[J/!^a+a<176(:pIjPeVbTi;FkF4(INe._P&\!p-YjOc[OZaAS*$[003EC-6U'G@R)8sGD^,Ef8r"RO<:`ACjXPC8-)@qM>])-(8R.$%nL4Y*le`= %6'FjPK1)hZb=l3&);ctWO0H2VQIA\_1'_F[bmT4Zn7,oJ1l=j%TMr]1(D!O)c*PD=@RR2oYU12K(FDDB\,_eJOT-D8rusqMo2-e9 %"uLG`hqo(*CuLKpK5s)0qsd"G-7.D'3*mk!$=dR+Y1r\_G'rI&!'d%#if7H-R=V;7KeX^o33Ll#FfmR)W;LGWC!,U>LNhMd?A;SL %a4t:aF,1`6bNWU`$-)PG]O_KK_kSO.]PVla=iZW9+;k"0lDNd"I`#NpoJ]*r/7!>4TB8BlRH]VQi^spAhDi^DH%?15Q1V`O!i^TX %/BlcQ>\SIXcgeM2\A0a#p`m]<_@M:?/X5smYhB+-5+0-gh(t6Dh28,u`nPUkFQlT(K+=0*'<:DYAsEBq2kiGXYJXrq^UiA^0oNU\[[YCAajS!*/ %LSt\sbc`egdNC5-cfT:3bPE9S8PYkcO`*:,I>@CKZ-3rgERod!a+H(ij6:,L%3Rm'3] %aSk9Q3\L+RaiHhU9T&Am9^NnhlRXGna4u_d&^_B5DRQD!%dN]b!9il#RN681(^V"OXq%F-Il$V(`NG^/%B(-)@ib0=-Z<@I*Kj&t^KSJX&q#(\/Dkd%Mktn3lt-/a-6i-'A98L):5?it %K6dPMWDI['<,@5V7#&VYk@p,-:Y$V:ZK3keEh;Q,Be6q'R6lAXrAdM?lHKK1R)m18=:ojC&Ka+tK1V9/V-9GNkG`KmX2t?nLVK7dQZ&n_i_+aH-Gcbr]thuEA@,f@NO'9s00hrah@)r1Akmmkb5*6c %nRrAkmQ'D`>Mc#qa)ZUce)iX]AiL0@XQF^*c"([Dn[VtHY93WB>(\r&B47FuVk&"%,uSdrc`'[[C,du7RhAN*b-"XIAl3-00_b6/ %_*EmTHm[AG.:TUT!;osMh$NXfL((QMGq.E;;;p(O*-b74_'%3U`?m8Md'-JiGZO5BT:UT`XOFkN-Y&"X4c#A]Q/=&Y@[*J=p>pDS %d5d`QF"&6RDF-Zk"8?7;aoqQY`K2o.d3_hJ@Q03G`NX7oCo`VpKcPnGF:K %):,2nC!s9nAkVd5EoMQa%0qthY6B?R2d7^K1Vd39:S=*Pd!3b^rVJOHo2S"nE4Rc#_VW+U_DmoC`&j?@2^&c9_J+3J`?j'.?Fa]M %8^$YQ2c^43]Y1[GKr6T5VL5gLCZd:=!,sRbUIgV>56Z_NaJM8]PE91GB6Yl*D9AZi^Vsa-j)rH:!ZP8ME3]0A1s-E.F3HI:"mkKc %S:0#X5t?MuL#q4&T9'8m`:Z5BpR69*2GbLTk^buA6I>fEUUq#'.K1O9B.FbOJmG2]9*.J,sB?KMJij*`fB %"56P>;(@0h;8PG`9\-N+qD9P)g'$YHkFE)A$.>Js"dBYA"a\f<*JF`(p(89I^(ZQ,]EE5,kG)pi:r&^UQoJo#L?#q[;@&2GN,5ot %@Y,C3WHNbIAu\:i1euIlA*?:E.4'nA:Ms2?nHJT+:W-org8m52mDBrn)Gl%?ChYoaJZtDG!Y-#Wrk2nM.q\kT8?;t?(6o'5@X %MGSQb)s$k]U?>4^NqL,QUYe_ao[7:c"_c3$7+oW*m/t`-9_@+H6;06):.>Qmb4lDoZ0;)g.i?;!EL& %>?$f]-;/[kGYi'c8hK6Q8r[kX![Sr%r]$b%7en)S7j9U#!7X:$3IOOFni+G/r^^hHtR] %`$Fr**=GD7#+`j&C]BKGJ&Rc$`X)QPqNKQrihNm%rPNp+aMHl.5D.n`@*ak8)\]ccm,RoNL"COubO!bB!SZ0dWQ;-@%A*m9Uj=1( %.fpt!!BLt"g"'Tu^>_e>$G/IV2?4B$')dpI3?F.49"F\a*Q;?EK#1@0ruM.`HFs:Hj2FMXqK8ji]A^G3:g=`nq6tduP>Bn%S`>KF %,ap-?LZ&Sm"piIFcSPe$Eu,0ZU!?<6hauX:-UI&lik9TW`VD&K8i(pR&TF+>_L0fOmCu88]WZh-k`E1ek@&2$;^%4R#hMBMaDE)W24gblHdS2+*`D4,A.rJn2GZ6G9%?3)lo5B[`=Y3q>Jma+f`C7-#rQlQ$WhAQEtuWReZW:*r.FF)f;1AXp3JW]>8V%I/?S?OD^t86@#.^;(*;?k %n&S#idml^p]Q2YI_DlMmT"Kp82N'L:osk)U](27Y/9._cGgjB^p(Sb?)FGU6WH[dC"g`im\_2"9bD*9/49DDM"s^aPitMh,GtXE[ %88.USJW8cn:Qne%]^E>WdZNnm2='PV+h0Sg.3-!if2UkR&JDG][fG'$K7i\O<%elT0]=WSo5F&76o#OL:+*N:K^E81n!V9SDhCj! %6Ur^!"?'d6[JntWi9lVO[PrOiM4[fV%NnZH]/=$p7qHcUjM/+8X^K6eQ[Dp=$D`$T2d:HnK&W@9?5;l`e$bP!8G*7XlQ7FK3g"9,#L"S6OI!s:_Z7<<`iTt1iE,C'aL %E0hinZO,=T4?h^aK.$&UY(j;D4Ls>N?Af@BS]3E@_m9fr(RK44RJ!%4.hpimL5ZcJ28R]Hdf$e,!Nqqr0]N*YpcWc?>N)mOZj=#r %Q$H#),F`>nT+K8WAsu<]Z=4.B5j-?$62S"P7?;cBCSM`Aj$#7#k`3WAX.TX,)k$G/joNf-mJ`1>G+Ll"*7TSW9:U18h)s/!*fgl:ga2t$]V)K>7;ln,^qp:+]?Ea&SW$`=I'mBn4P08,7mWKfX$g*"](G>Y!" %C%23)MG77>mt_Gd3j0&8X2%KAc4oJ4&+8$;V^">4qpPZC5o&eZInW?_rJpj\V]`Z>n!8.4gUOlug7t7r_.uBS_k#`HeH9MO]&<#e %h0)3[ch0T=!J[NX;ea2&"CctV3J"B0SZU7UiceS:DiH)$GjL(&*'l27C=UmfNTn`#g(A;(U=blcKZ'IH6>`;d36%Oc97oWab,oB9,di %J26EZkM)t_8#2(WpNX^=d`4n)XkC7(aG'K#g"4.@W@aZSmqGTnDDde0B0Y0#+(mD6">;rN9nA'"dM.%E$'4c]5;FZbL9LMWLQ@-O %3-eJSb/1kr8!l;:KNMuoBTHOKr0d.+0JJ-qO?8+7jn,&$0p*Ta^3VLRc-qtq4P_(19N<9_CG9Snr<@&1fLeWuaaJE"YJ'iKW]qQ% %W4)`lYJ1JMa*ZBFE8$6TK=u*N=[Kr>Y5XdW5L>;h:MuXJ%"'aIiR^h^l:i&PK;AnR(dj"!E`>=%=JtY70\PiA3ktui%=QL7%n^F. %22],FM,urqagL0lN7'M_*&)MpmI,!rjGZ6fm-`=lh[,:X"loX6(uFNQDIfm!;#` %K"JkFAM?e^jV@\UT5e_-&ZD8s)n8d\$/AG">11[h9o+&)ojWXIj&7JY)W"TF3M.`#q6>8oT%0>VqMBnereE%IWY"fALqrI2KVFO2KnFbi/j, %ZI(L:4)/:K9RF*s38BXNTJ]b.OD`OJJ\p9PL/>0F(rH)6d1EiE]GdMs!RQoODS;qVM+"ml\EV!\L?&\_):B+0erY/8]btkAXkAeS %HmT:kbN?c?Wc(RcMW^'V<,'OFiV(:Q0JokAajBCPAqkK.(,4P>+79Qn_hZY/Y]f1<:N,bPkiLpbN\\7*(GCO;:=*kAG?\q%n6ofb %N/*7i@Ci?1L:PiA1b9l4T8%LE>;1F7mQV/-2dSI*7T\`lDtNBImm_edNZ&5*[a\H=_2h.?(qR-.NR>i4 %`L*mW0k58$ph@rG>A[mL[1Y0ZHDQ>#qGOC6lbcoAfNL+5`k-Z.@smnN3\RIddJ29N]G^T>d.95#_Mtl`5[\<[oSf8/W!%G"g[7Ur %Z+W#aXFZk?aYE,=RlkPnBYoSGO==ih>c,l2hO.jAdBP.RqKOc,Dp*9%Z0fl,WqZ+pWU\CFQoZ=/O6P'QYaKgrNR:-QkcJPUBeN1& %Gi_;*0s+WIWG-!>:!CWRc.HiRB-q6BCLLuO7k5\DT]'d&%_oZ)RM1sG_48VV2KP!OH-A.tIF-bin)EJVDkpcinT>d_3b!CnO)(#[ %H2bN>QoFnof4'OWi]<":qJ]ZH\.5q`$[,1H/EB"VZG^X_#tru:DHdIsk1!;0`#Y.%j\8o"NV`t(lXKj-)1Ke#bK&@a_m1-jQ<(nb %%TmT>@FOML/iV>]AW0e;%IDc:S>GR5MmYfn/(WFlHtD\Ih/VaZZd?20r`R#t)$QY7X6dOOHLNo^D:[OVa6"98*c-CFcYJFsUG'&t %AKA"?lKt:InWLDeh9YF,gZr9OZ]3'sQYfkW^"N,Nj:1U.[RAnYpQ!-%Ftu`\m.$.`hO_n\+7(lC(%%PlgM24`Ta1:"GuM+(dXKWY %:KNJb>C&,FpbK",K;qrcNgnXkf2;=emMl])I->f'BC6f/CI?&q96u%Trg#OE*fh^d*0edee$1l6k['"-+j*L@_ %ln@Q=kBtj-G4*t#cRsu_dW=B@op[I82"k5.GQ6<[Ba#r[#GA`b>\a+m=ao0k- %&FR@rO`N2Qo6ZOEg(`VdZFC$r_BdWp=fh_=lC0eDKFcnF`)b319Zc6K@=&?LSHb]Io]9%_NA]=#Vt=_-SiO44/,$;b=""":(eZ!8LRuZYPWI. %J8_'""l_8Z)CRh]N.D53GomkdRWj<'@GV/nF6>_(^8Hq+67-1KhYHGsi4q/=#=%$>MKCo.2e32@09Z.'1Dm5M>cYV4)Dn=u7h %^'$tVlki&kk_S-Edm0:AO?>I&+T(m;euI$6=up?!fUI\*BV %_oG@6IW@YJIG!atg(p0-Ur1Hp10rT.\*;Ld_3Eem#;2Pnj1TRJR1rt%AD6p/3A^(>\lnXB@@3nV\%?Ieme(1=pX<)bo3Q4qI+H4e %QOZ"r\[rYF.Q;E$+7lrM-$Q8M.&@oD %O4)kU+B/+B(Udnq!P^367OD3Ih3muZe*\V]Z.GUlQ2&gD[fX^[0^tF8IFTCm5$$]^GZnaZ[V[I+FkV9CW&ZP!\!EDX1UYNa%'P)T %UP;th24<0jqZnbTT^i3%Rlk-bIXV+lrtc-)gN[X[*l%DD;*)9T.Bc$J#[d92oJ([5VdI1:\lLA7EF %h2q*&[Cj1'[s]Le?+]$1p"QZma/3?#^:64tc:tChLtM$aaaW$[Et5dY]C^.jEqe'Y2Xe)Fke%j^NFUeu1f8%K_f=mf4P %n_O.BaC;g>NYAr.ZIo&!W4VEDLWR1eG]^WgWQ/iDY5d.$`^4aqRdosk#255^.EM:l)/'e9clue %Aj>!a2#?$:\'a(oqlN0JG2LhQ#43H)4BPZWoT4/j5).=5IlgnYT,j[lfcM1ki_Sgd+qngQM;m]+>ebbJN9B4H0d1M11o[sdDj1!7 %D3ts\MW=GpA%!4#,RCSMei-nR?Z_&Y]V[jGI&`5^AHR0Mcd,">!*k1dF.fo9IuC4p2]tdkK>BF %4`"?aCtQpGi:G"@DT]RuQ]&f\HJ2052RpM>g,.N%n!g`.:tAc56golikC&1FD@M8CZqYjnh"SeDL/1^?-6$MngeUoGlE'=(E^U\6nI33k5+&'('q+`]Nks8k)nk!I[LDV.CTYK\#mUMrfa %\bl#tQ1XI7=^NoFN+S^Qm8hBCNn\%Zhe.[,&#!C8_LU-Xh+[PG@Y@/cWO).a7`+V2%n(C/&o\pXeQYGt"q;G?1U+c@27..aQ/0\- %+,Dd!GPN5e2.tb;B,;S=O<&2eLRbDG^!B_OL3BMnMXp1>5V_*["c %@qfdm5R*h)4hnUB<[R?r73WCfM4jf@(Wn#bhV=E\Q1-C<.`Uniq=R[ZS(kY>q14tU48F+N5*0`9p+l&m`5WDD+HT+u2ojg^hF$id %7D6>sP)gQ`Ogd4j(2SJQPVkPZ3&$#TPQ"U.E9p^A8UVN3D?JQ0ge,-)=d!&pgWVLpr!b^UfN[U1]6ER6PA]0sdWo1I\(g,L"#tIj %r0ZXl+qdqfPo8sUq0a'/?-fW`F6%F/("]."3j*^c"9mGdkMO7k6oBq02TTRH)Zk7-h7f=rX,I[qkC?InhFO`gFT@F %SbhsB8lD?]dUZ[$*HAVbJR5d9a&db>I+sr%Yd%Sl=g@O%8%-l5&aq-*(Oo&!hGL0n"a?j?\RVbuDdO!2.dT!?+/4bD)IGtML&^CD,6YiIAK[Hrbc9\POGkN=RPb%=BrSh%=F8137dM%_73S3[-k]D %WFY*PXX/"+YK^BLkS09=6FXZ)]VO3Ea('(U=6T9&jR;IO*r/QL5\:'n+GdN%,B2n%1!iK-_Oa&A7HU/#]4_Ho>G.6M\=h&/f#DA/2"%CRjd6J)c]NeF5dh4.&dlO&u]X0sN6N %Dg-C3"7.jilBOs_DPT!\dOAG-,+22EY_ks1#^$pW-?./H)T!K9]ihDQ0'BhRR7G%o-SDbSZIKn!DcZ`N.grCVEf] %H>i'F%)UO.M;>pW,B:]7h^u$r=n1dt^9K-0?"G\nX*)9.s&ZX1;335>mf7 %[>`u[0r;K\#2JR$-sR2srOKG%)frq=Q-ROHX4,k[Yh(\fR,m\\Hbl*_?OaMLCoIf#bDaK0JHm[s16ZDWDRrBX'B,\]6`>Q%/I&65 %LdKe(HUr>#GO8A-A%>*)$3K,e3I:R=EM_:!gSEA!])\G2H8)%W2BfMC+S:Ja"b"=>OWB%W!Qf_['DEW_VuH_ %>!B^Z[`S;7^Qe&2P'Pq9hKPVb]NSk30(XD,]C9X:m@Kg++[Ge3/`'$/8'W+7>4$`ZCX/nSM)eCj$-^6@;MdP5Q$F(s':8mp)-L$R %Nh)Ht'bPjUbMM9[(>49(/LY%&B9?c/:tRu<')\cT?o@_Ao:FrB#B-QXHVb:pD7F`0H,rm2Ce3!pK&QOVBonQ.8o2"#3aeS`;6i %padQlHBBN)/%3_:HdfhJ/=OjW/FYXI5]"'%PYE&Ap=Re]$tO/:q.`N<&Y?\Q=Q:e<>+1c@L]d(GaIXR_7XX@,.(YD]/N)DkZJNe% %6RsFB#'2#.i@Q`@Wt4Fl$'n=GplQh'Rs$PFgHV>Gbacj:oVUp+brtjh^b2c?cElcRtuV^mloCtV'^ %`sSng2QmuF.0X$AM7N(/2ui%Y&8RBoU(4f@\e/P%W+36c$Cr!%p1*?R#t!V-\V2p)aSU/4#K^LeS_2SM'6m'#M/a8@)5RPn:a0/S %COg6NC@N+t%SjrIjScCs&OeT)gID*"XIr1KNW:jGZht*W^?I%]iW$:3#hZG=*^lB1P\WLL4(QDC,;'"ujr('P^\me./ZS5n&Z0*TW@m(\Yr51"Y(04hgArn\OUY%L>!D9#R#3L"G'bPS'Zk=$i]CD6GW(OqE %"!QuGO?da1=]jp109r*6@b6u'rK2jJK,pNG5s:h1'< %N`t%ZqC,\KL?rGUfW^EA(ij"FMq!IB?8>CZ#<0A9j!ubKdCj,S^60-FN75qnSXq%`pg#H"_]PI&m=%ZaogAqCf`4&=)!3`8h?!91]s7@_I^:DG$]Nq[$7HfjWB %Jn7\(^3i9[Te-otQ-pN0P[$+F!)YY#l.S'Cek]OfN"A`Hb4oS[a4/?"`G,U*[R?6gYB34[)P.2CF\D]749l"SjQ[P[\Ll=H!6`C %a6Y8?e_nDn]7)dsV2?464I#>G"=`N/FIA<>#ah_Q-R1#Gb@R]Y;Nb'2c)]^h;gI(A@H]8?i_Wa>!\&lgMcg(m(J[$B.k[.h;HD'. %QGSNDb][#fVo2<=;j5ZZg^SD:2F"%[,YEVS9\ha507C>;5Kg#JIFe_Y4i^[t#)UrML_!CQ_b+gsT=X@>ah(99L$7 %^m*(6f%8ss'NjA[8d2(cnr$?X^,"PXFhVsq+n=>Cab0.>$*Y4[W@qQE3V.@QBEXe3QL!oFhm_YR/BgcM1o.5\KR/J3D&R7]r-V)P %:KO3!Wa9+VPdn8^41),Q406M_.--[jNMd-f?W\GSTR-U5Z;>1+OX5-[crhu/lK.Vq/01kd5c-@@!f]3b7EE8eQ4"brSBJb-5"V5K %mEXcH)*lS%9sMG1":8US&iH@2p''3%Hj.fqM(?6LLoaL#5I>"MAd(E$O>\2aomsASjY7AfBi:2XYe-RC0M`/IUWUa_scsC"LN?[c5kG)u\Jbh_lc/FZ2rm6O< %I?H"UW8K'94eLk18Wf`@/b6JQ'JttTGC@&3EE9g]Rh%8>@`^-'Ed)qo$1O7^BEGfVlsmYc9Rt7]pou_65/BHB;T\dPQfF"j:)kRP %UpI"GV)u3m(RL2DZa%tl(14!fTFtP.]4FYo*bBDdY^EI/6l/%47hebSN%.9@hK#OV/KZp<:LW?*6lBs;,[FsVP$pRmY.CV5D+O@\ %\SNjpThL"^I?^mk.ZRJ@;'5,g,2lV#0[blVSMTFBMlu%RQDO]c\"a1FCY9U1r?XTaV.g5.sW4&mu0kM$.J2a2C4b-uR]![XFF %DW%-5SJTjk_/d1o-#I;>9=1%?ST)5sO\e/C,h,LbD@/b$"e*@A]3B7f"(HK.U8GdAQ;lj^>P1SSS$$&edhTTl@7]TJT.ARurB6$q %_-QtD9RD#FfE2q$kZg.c\6/pMMaC&6'ej%R#`]L]S,:4#67q>V/.9uGWj2j./iY8\oh#S %0\tEQrudPUHO`VZ-(q3*\Qh1NqE&jj`3iM(N&R[pLIAa825eN9gMo&4Y>cD/Flj7I%O8SMk::VP^QY-Sa3Q<^`si>DNH7X-<\e_e %^`MOd:9O%)/5rU#B:TA^%Q-7V3'$LYn[Sd"N'4qU4tS=soNTm'4QQ'AF7M3G8MkHZhqj[@GAa?LFGNrj.2VT-hu*:Dg,mAdd_:U^ %"lD,+ohr5(hV`3s>R[cq5J>4toKE:Kp@$k?fg04\Jqm8^i2F85-_A,k+'ZX(H9nqYr3TPBonJ@nCnt]4i%0q:N#A3E_2b"IL'Cnd %.lsW\GT4iCGH*+-Nh)K'@=93Kqk/L#SRlHX%t0mSa.76dU]?'C:&XS(b8D7He/H`p4PlY)'8sggsb2&-rnnIH$Bpm,7F9> %$3!#BCENgW;0l7g`EDcj*V5jK#'?-CGAb^qA^&V$;EDuM1"$2c>'`>)CjCJknF.`2[sqFf`e'W.5Ra7'1d*4k?0J`mTRiKh`C/RR %e)YABX%?di(mp?-<&):60cl$bQC*1Io/'^ph1iS=g5W:kjm(:n8CQa;m\)8g"sg)1`o%Q&XY\m@F?8RTP7?q&"mGcGV7R^A#K)L1 %*Z'6W]Y3t,J:8/T%s%Knd-?Vt]*j\n(-Z9Y(Xn$_6'<[Qf3r355;ZBk()ti4L2DAfI%AU()V30B_8N&_G\&l)d2%Pl=qdk+#T^eS %no\Ch>;KeKkj'dg[cfZOLG+HXZ:jQjr-P_0j3&[tM!!&4[^-nt\UAn[5fkCSW#Dd4G)'g5,EP8CEulq!QH'!"Y<[o)/+IlAIWgXt %F8"CHbc+@fn]4nl)p2V'4;P#]=J+,AnQCq@'/su9&L^FA.#RmLm%$A86S!5VId*KDnOZ'Anjl9VW#h)p>Pt4\(.G0Sq'9]7\*HM$"o`Nm&[62k %Jg(olCJ\$!(&76JS)MXM/K(YPBqYjuGO!D:&9\WPHa4jp4\P47m&KoR!)N)I176!Q"F0'3TU&bT%L&5KGYBR9l'%hc#4V2"HrAIi %0TMAq'\hN8TGZ1Y%5#A(G0cG4EfdK@XofZp8YO&Z!tG]F<@NPPC-!;l:IUM&-F3ju.t`B!5Y&^h=@Z?Op0D@M%%l^;hZK[VhH-Rq %P5WO$dE,jk`H3`7<0a(%'u*YGSjO99KfTr>9StF-B=47LE`B"f6XC5"]0!`%9`7?l(A"\ofY8LWXECkY8/UpS4gP5CC8!VVKn\GRUALIAq#]mq_H%2k%;@T[o:\/+b %2)UA-?

h/tU%q?=adg=gF4hFnF,l<^(3Qs/.s)eB+6ZdXHY`e2?sgQK?PCV>\MN>I4NA?%c4@h9US^&CN@.Q)Erm %S`S'^XS-9BJ=+N%,o!6]E4XWb=qRXtq(j0O9\2haY0NR$6ljg#e4o$ddoDY(=6(DcI211W4C,^Zjf)KA?.H.cLoG/`f*[E4ne:^I %dhP3/AYuLjQ:DN>,6O7bW&u&O#YA-hTAOXdV)jCac')ee?TPk$er-+Qc<8g_)$3b^g,;lEGs_/M7\9V_ec-?q(]C4i`09Ud4:e"] %b/BS"2\'iIh`PLOKJJ:?2WnmM)iiY2^5fZj_YWiide)Q0Gq]dFL/1"_S^;I4Eb %!gOruRFR,uW)\Fh,sgDpO6'@$^8AqkZI%M_@R_u'#"o`::Jj#OJHd3UZsgJa#pD(N@*(qm5]U-3%9BZqXp#9#!/&%1hRFad=CFAg %EbM]BU"kgT7(VRH9$gs;Y+r=.#9'\8lNg;D+?WORgX3)QTQ@(dA9W62X\^e)h@B]XqMea8c!^@PC.1"N8+U&"<<8MA`a%]nR48Ke %Hc_[V.VGcsm4@PomLisM4A#HcXhs"g266qP]JJYs#ca@o_%86"!:6%t/!IOpJ8"&&S8`OcW-'Rc,+Zl0FY`%[:ajm9DRBTbU`Yn"^i%, %[/_ut?LK&2Gk,/DM=rU#GX6a)TE^Xh^I+O]GO)TqL`EZM@jE]k1?.8U2s)O,Kk'8Xl3A&]F+1Npj%p>#I"]Y3?t<&OGW6*/fCWqu %@;i*i_X7nfBM#$XFr5H]A-H.\FC,+b/>[Q%A:7hI*;".mld\hJ?UE=NN!`TUemAe"/;FQ2%^KC^'eJNc[3FqEUOpf:ld\kKV[o3V %:r.1>@,T():r1msW^qmc$n6(TR"ViSD$!*;CQVkTi'"^%O=RJ)/?!J6^/9`%cXM6)3=:Q"GZWnFaHj4#',ujC0I-_cM?npG5dlULBKF4"iV&>Vq)&94b %Qh4!OY`q/XgaT?U^Q/_f,:,OGs#R)d\c"AmDjL;*.Th]kq/r(nTRniS$2M7N$VP\1?5"&)-T:D[f\]+$+,`k);KV&T. %Q(=#*1o(RbXQ^2)hd29WYE4.ph8F?X$.r^XjZ;iWrn]Ghl^Y2:c@ijI]8>(C`Nj.2Ic9,$l7=B/bDY7PXBM"SjPS&PSb43fCbasY %/q#\KV:]8M*>'2s^3LJu/DAjR)-qVM[MZ-+?\g=8V^T#f0%g?1$!mIg2h#(`0"r<0I/_BRQU%1NS_^!-]aM*a.dp).6l5IKf8M:n %hd(R@](g;^nb98^>-Z&en)2cO0"qVd,eJh"$bH+RCpA_bs+309.m[1MBZV'"MqM+rMpTH#6_eEc(LN1S]MrD30Q_KBk %`th=qJmWaSYm,$LA=)"O?;%@#>C>SG$X%R+Dh4@^`Fj1o1?`3/PX\gQQ_TK#\P[tpT%U\`>b9*cqiNb1M_E*dX!,"';W#[% %`TQ+#"N)C/2H0T"`4&nN3WL[r5olXRhk9K3,oN$V9IL,Is&Dc2pZ: %me#CeFV`C=Oi4D_FdC-XIKS/(O9>+:inoB256'd)CLE]el)O_H^@,L$L%1keT&53DG,_._Y(q.#6ZHEClRY`]YJ7XCQnS-sHFg0K %H'IB<$_hN!!ol`AW@ILkbG+L*G,SHYgqo%ou,A"AZij_r$t %CX`9,Z-KAI!aZ?%X;^i:L3;)D?IA4MSPQ8]hh$!b%OU]celhT98)M0E9<+fFKQTJN>@%EtX::GUkO62I$V4q*^2rahrXRL^fH1@)EHSASWJ=?e3o=<\3E.f5/$FP?<_#$B2mHZif;t!I(8#U@*F,p3WYs([/)ZlH;9eI>35:Gg %6gf/\MrSu"kTi9C-MYm@;WMdF]:.MZ#AWjePXT^mhEJUf;t!I56'JSD7F2#<&8p"n2510lDS;,*r0$MAp%'/PJM\if;t!I %<]a7A&mVb(WgU%t^56V@#JX2:ZRdHn$b0ec4,:S/CK=eT3IVA-f5](#W+P-sSX8<(eX=#L_0s_#ToM^8^4lC_BCAIIdal"n0Ao>s %RE(gc60=+;#!o6R3'ZKM1#@YQQj%jpU^g6::MHY-2tn4Z3u+adFdN."gTY*(A\4u?Q[st=c;Wu]/Q_t])o%[dO[\-BpKpSE66o[ %A=$mGZAW%R(!&#P!4'dEY@r62bE3r)^)3kkBD0-,9hR,1(*^@Co0rs)L,L.4]%[FOf^lp]1RhWgYMWXX#(9nWI;iS`Z=qO!mbR:q %cA5_Tb*36S#$dY!>J@2[Pf.j:fh7VU=!j:E;jV-IT#S:/8\nMpq)M&#\^T/8C$FL?a%[J`e&:8%Tnri_\V""TZHc\pmD:Hh4CI8a]4o)QOV65KBrnV1=jQ(*3H50^UjO2n:? %E3b3K52Bo&]kSeB<5C?i>[DJm2-I\86Zr/>_*9tRh2H5d7<.Eq&mV$-osb/2,$mJ1iE:*pm-CtE&f3F'H_J*[CY30Xn4_qKn1*.4gcXro><624TY4(S:X&)U7aSQPUMC=ZJs9Y<,*O7JQUQa)BfR0] %*/eEC9ec0$7;:X1l-c(sTu#g_^-qq,Br/HGY9@-jnQLKsKF5rmg?)(En!g'D*3,;^^t"#enaoDcA-Jn0;FDg9dV9>hTfkTPW6Okh %PATql4WY9P1;'dBpZ\/-gtOr49ch#$1=n9=f;1VVj5sOR8l\p5298DVOpNJKa0LEg7(Bb&cO-5]>k5sSQq).MU@]epqO'\cQfX2V %>-5B3YN@kN#Aa*GE#XMNXkZCT`a%E345e9@S&&(e67i`:l,_',SdVsEh,S6`QLq6?EN-(N#.qJaGP\:b2&KkDS(RoJai_a-mrce: %]?-UA^'ep,",mh&5;"cG0O1q6Aosm&)BKO&d_%ThnG>QDmjDmMAT=&^RIu#g0<9*Jpr(C?Oj(,Vc$QC&?"Q`l_cJcubLqp# %,);ilk3%>;=8^(W)KtlpN='2Kr/L:hoQ+uNL>B$-qHNOAZ\.)g88(f((/#mH>36TRi)r`_%T!q;?n/n(?E3kNm31>)E!q^cL>tN/H<*D!1/)PI(+kqkj=pbr/PP %D^aNro6[XHR^pB;ap7?VH*1XDJR/0OHX4XlR>k0NBssb:0OAGlaE9C=B2B@9(sH*Q&[%U1/!mGuF5>b4Z[qqNd@E.>@aeRpqS_Mp %$_(;$HsN-*cp#\B-gO+gah7Vi>"fV4o"tHuLiJGmARk5VllP&@73NN9FLHF#gf%CidVKo%\""NE?40DnSAlK&@>dJAjc>&)WO-q. %'Deq6L#AAL3O\m?+o#Tm&3LVV59[U&6?)gI8I/)f%(Jg&-trB*$TC/HLOn?m'OYWuZa9UHL`=M3AnTP)Utb5i\f@Be;ii]Eff9;2 %$9)e_Agck6(s_rDDK`m$\^X+d6`A<.7amithfhNP?s[hT(LGU$a)0GZ$;qCigF0cW^WM5Hr:Kr@e6ikQN"Yr`0Q6G>0(R+V`'>-l %E.JB-nEIPsap(OrB1AYs_cV)Y6oO<4cV36SndJ%BM2Pd04)6\U:n/0RBcEe9pt>K*t5^6h:4B-R%FUMJibTF %IW:@6lN-ap>o_6pr=O$/Qu %`:6Ue2,N,o7.)!Q_"Vq[R1B):X*UA(.f#$fl$[S=E'ot;72E*82nklqUqGV7-[4Mu^--J,FNa^^>R^p>4ec6^BeV,`74p6[AM-3_ %D@]gI-T^:d&VL>78J%St#\':+=A1nY>#epK5SUlc6Q=qX>+>#u^^f]S-;h^/"to[IlB`6=1CX\=`Mf4o5Si %mDhHeFM:PbR768c4i]*OT3P/MG.t0K7,0_AmIg#rFd7(Kq.;;/9R%F*6en1'4Rfu:M>[!=N4oMG?t-SaPr2kaiF`BAER6\J8p[R; %%4:d(\U;7omjf3N*P+FAEOb&D_ESP$SHDZ8iXa5AYPGPk\JY@5FSFr'I+:Y)K81u6B]UmWfuI\^W.s)GH(SCod\#nKs-?IA>L3;L %R&W-N/ai2leXOs_Qot&$*,[d,8gX(GJ$YY)FIt&TnWV==R"^$Xn7g_=;&[)bg7,\EiaVQ%72+\(:.73EmmH*p$TZ-i]&QsF)nUoa %adVZj/bscrNdF6@?^ZOKW>=qTS+<\]F5rdQE9`.#fdZo^Ng8`A]SMDp3X@Z[oNl"0G[ccem=[-Eg&0T1r']K>Z.$mo@lV5Yg[SW, %q'TIYDYDqa5D+?b9VTqIn"E,40;E.dGEC\'X.bHbHoiiaWe64n\9o[\$$[Drc>h:iP8l%:F^ElckNQnY([eSA>5(;n98D[@#B1W9 %`&h$J+84NKl.kO+FBj,bBYE/u"9cDj-h4_`n_ikbeb[DS]tCuOa00Wr<*["aW4]pP48GW]\FW8MijUS?>l?d$bl/CG7=BnTGc1.q%BhTiuWs8=%gIhXu*h)(u)@/-f5U9:rUgUYRW %I(_bJ4oJ.<"9)+N[Z`iPWV&UB0]#+brUm2]n>5[t)QN&B.'LM0PC.^RO%Monhp9ICro:tJd+LMoTAT3GSDB%$Mpkb,7`(6md,W4urPt]'iJml"gq=>M%2pT*ft8'qkcDS55E5c7?iBt:rjQ4EP%ol%VO!.c?f1k'O=S`Q0&m=p %3Y;&3.Le,i\oO?mjTMXLi8H[Xp&[SGVahf"+8ne@h@@q5-2e7a>&_bQ=6rGkI0=K15.kD#h-dfKm>(?'R/&3*rk,YYB2Fb< %-i)Q@Dn**DoF;e8-kCZK9tC#V5K&(m#f.&BaJh],FjrO.pTo@PSbGdNM1J1CT,hef'KH*[VcsNTr%0YBrGi((0LZjjZ:X>_e)=($ %J\%*'[\5EkR0gdV'@lM9m1;Bf*NdhWnCa.aXM4iK37qSOC&h+H(U%Md3gr)/[g:A,0q^@p%UW.`LC`UrA2MufgeQ+Pmu*N<+k %q@C(PT"d?,5?n'cM;?\[Z$]2>s3R)G>sSg8m33$)lb2;9QA!jHihk[_r7@Fmas"\'jV>7(ZhW-unfT>;0a02Yf9Kt.^22s+kZ%D+ %NI'1YJV*L=3*2,&8eLQ03>^=\&NkR(js7,=aokD\kPk=&Tlg,+p*9sRY53p/)&sp9*a)jalbC+_f.l1AS3u_iqnFr[`3buKdpH-O %]]VUO59R[m!WrbQ"0ZnNN;pp*"*g=o?>J#,eIo]7etZQf)0nut#*+o7K7]g#i%`PrF5*:inaX`p@^`qQbKiB@,J^+DOc6S?f? %Qd-tW:DtTUWSV?6k20mh5]#r+jA_Y>5*EZ#9/Z/-5WY51N.2am],/&Bg]U;uS@O%.;=MToqB2Fnoq_Q5j28eMi!YDADEmY&*CrD% %+5`mb\UU76?k2q/T@X%trmnZP5[2S4(/Dk@E:(d)PA>)C+0rZIlCdh10mcLQHk9U'(rg %90Gt#f7KdV%_ReX&tJES7nf2oHrBq20ec15>#H3PC.&.\QE03,.fpQAgYM#gf(%G]rGPP#2ckSXQXnL\mAZ'WD %)HZLt3VN_*q%.c]eR"kkH+EMR8_n*.ma,b'W^5NM.q %c^m6K*?8H",cdd6"32"mrBrG2l7GS5NF$Ai03<>U&W\1+W5HpM-'[7RI*Y.jE.>d7]_'c;c1p/j.p5+1?]X*efCE](hnG#]@C?rH %p+l%r%0%GoLE(BuJ&iB'k]i9QN@cNu@9sb4Dgh:CR)XRm$e$>`mq5sD`e!djAmUk=ZV %F8Y+WnL#T:dFP+Jl:E%>nE;60Im3J1#rRq0?I+@uq2ZENd8/Ai3E-j(8YK&(_&lC]4MRL)Uk#p&GX`K@?41FmFB$'Uqj<>Y5Im+P %fU]/YmJ"s%_N-_490RUj;P'g=uR)To5?jGfsbW7]S)[4#/2F>s/m=^mGrE+PA9M)r>;'JQOgOheUD3t?=^HO,uT!69cBAhD2S,F %ZeAaqW23j>eAtMd!/lmXD=`0ES5#*_+a=[#E'jXl[H8TDNWJO$_*Q9b"3&/[Ih4EV0Z!HbI1Z#]Y4UG'kO+:o.GjVFc235_RIoe/ %3/3PSFVqc9aD7e?509p@2Z@a0)h3].4A@%ZPS3_WH-r[a83_IX2luFhH10A4/#ELkI%EAnRjgf]UsbJC5:B3PD]c,$:]WpK"O^.*a.HM)j1k"3"^5plDQcY7qQ\AAmC?/eES9F/HNr)k%ZeXb,K8+NUU-=Ujr %FHZ>HkrpZ?NFZ%Grl4)AoV5iaL2qD*lu4=iT#6ocIBr2=ek$^1mNb!1ke);sjhOGF-1F^NQ8e^]DT9dKI@bC2Cm3K/bdO0E#9d*jH*B`2J:4;fi9lAY=RT=lCc\cK@i377L<1roShqXt %9O?sOB&LegUJO9q&)NJ\3aQ:l %R^Z%u.Z``_eu=Wg)!7sLFQjeJcSf&IpL)\8Xj_CV4(hXgopJ32 %!?X>YWa$5_2Mi!t].b!F2MhtrHK3m-"Ph1H5aq-R@ZQUgV-i6\@UOEB(hgD!qLb.qL,iJa`Xh(W-nGAd`?6jB$(_-gamr8f&UE2b %8F8asi.OpTi7oQNG!P'lUnu>ZRI"6%dp=,W516JsW4nsMVAOOM>"ffQ9ZX*M1jPq<0ZLma9O>J.hq0+M*:BX.5m6Et;&&)E?fhPb %5KipKY2YhDa,FM[DddVs1WP%>_A$aqZu]dre<6DRj-rKEn!t(m.`>mLkMjnTLPWlarl`JZ&:P*JA#L]UWgDiF9R>`8TU,A.+1u0g %.-k-k2_7<1o*N&JI`W7/e7K:ep9^:Q[$pXH64"Uh$L^3Z#W00Gh'_%!I_im!@]#6+\=&Qo->I)WL858en9gs-NpOk7)crT`jr'G>Qn]?Lb-,k/P,I0H?e?W\?rllI_4*c-Z)_F%1^Wd;ohR".lP@O0", %0JUu8ZOk6`OhGS\EPemOZ9Z6k?>E,MOF/J_Y/Dj*Asfe]L,Rm*,2M3SK8[mMEOU6P:tR1Jm@afkh-LdFCn\YFG7B+)O7$Rs:jK-SF>fQ=XWd/E08,g='Z_L?GAI#Y-Ut.>=/ujGuA=HV?B[uMaR3fbeekkW\e_l#>bPX'.6Fb(+U&r9i(siJV5*5Hn]nl %*WRFEB>>Y/ekG)q*ab:#@&N8u/0V5:bq.'b:(C2;[Z@0SZ+AsaDkKWr:79Z%"`8n3P==Ca(d)R4CM'IDPbD)0E67BWjW:tVjD/6SHi %UfT49"PIkjF2HXa;?.$+XMcbCm"eGuJOX0>*V&CcA5i$C`bTlRQ5rBWg8j`1I_(:)D5lbSN,oiZ%q=Z?PBNJX0 %KA]A*Q_NCEJ7Dai^U/?l9REue!_JPRjN=:%fJqNuLkCZk^^XSl]YEYSn9phL#Fp*WU5QlZnj,Rn[8^OY,nqEHI+noHINPVfWn^AQAq0Fk.I%Dj5Jg5ab&^:,#+P$nANsWNdb%*Ak+jrQ+\#J2UR>n(7_/HG*R#=QOu?-"&T3!.fQMaj']?UK0:0mnX61DiS#5< %jQ/Q3CML[.5!,"^Ya+>Es46(,9C?u@PisbYN%]+%-.Vc#WE\WJM_WE$r %EY&bnQmmk'(LDc_6GgaYDA*8uo=We$'mP46W5.AN'(BcMRIndoZQ1D4#KmkflfC!tMPIcC,O@B5n"3YsUeW$T;O:UWI?#`d %[dXt2>MRCP1kUL'8ZSX'nbsIFCbE])8@R$sps-u(.sRS8!hO=@N/5iNje)IiX"OZ3n1nMG+(Mbbs#IDs+]N@j?q2s=*?U%>m!]s?7Au=W"EMYHZIZm]q18RCB+#5>7 %O!U9=VR4lIaht/'Udgq@=c%QJ9f4RCQYL&15m_6.UGg]Rt'Wtl! %'\^ib9f@Cd?Jer"5(Ae2)Kc5Sf#1uNg[jdK<@BQ_K< %>0l/DN^ID7R<5'kE%^MBM.r>r0WZW=fZV\s!EIRFJeCTX!Hupfm%Ketb`rNm7P7tQI2XFT:M*X'9[D^H.`upOBENT9&LP:@S#n&i %nFb%J(ae0FR+2l!0EG;uZ[-(dHW_0N#F1":5]Mu"Us@)Ei(CRZGR\AioQmiV1e^S$lkiY[NNJ@<4^m,P %XMO`nh"*Cg?SD!m$j:o&Ut!gt=UhPr.0Y',9*Iu+"JVQW;Saui(Dbh/a&GtTWLKCjGLarn+C`Aj;Ae7)XC2N(X(8f[74_MM>\Yo# %QakrtZp:^G]VG4))$7eK/s9V>YVY%=)X@X"T.Ld/ID>Yg<(ZcX^u$,V?+T`i=ceZKp(D=u=oWg?Jt`1E^mSV+tY %i!Hnm87P)*)CB(l/_TJ#9r_9<<3TEUMnq(J5'a:+7$MdDoc3ERE_oQM??.=PCR'2@4AhO`-6-pC1^#X/+El7%Q@lI=;iM/K4R[ZCY2rOh]2dQ?asWM(q)2%5gX`bKjCC??aKb;p;2!0M]MtDHC6C*d>oI1 %Np.2.VbO=T_QK/YMfKPbffMtb3]\glW+^LbET.*BL92F3^I/1@il#Q4Nm1=Z$]`&GW^(aTD-b:l&J%3M'Zu>-W13,^FrA4,4&.j$ %e`@-]S-[P`jRHK0_)&,&@ceM@f#Nr.@'PKlHu4[7hD_hJ]GePc+2KZDb'[k-1UJ-F&!hVSG)o-)LPE\iA4Rb>Om@LMGP(nADqR0? %*j^CjOgcgqe]lVt;a/=[H/E`,h92)/)B[.]B5q5epGJGJC"o^`W*UA\%L])ZBSqn\m_kmP"/!MsII;.aUU70%ZnbngHT2bN6*d\H %F!SgifWEZ>20BkVepc>Qp/?c(o9;XPi-hg/!JO+hB?mHL^JG,d/p3P#o1LD_>SlN\]]:ob6[JM-T;LQA9MK %%0=RB)*?i9!%gf4kba$9ra1(q@.67eJ&R/qJR?&NBg<^):%(2]iO>/-@ae*Yb_1bN% %Us2=3Hko]7[eA0N[@b5VL*\6\L'it);K`9A2_s$6%_a66>LTg@f]W5+KZ9:g/S3m;aQ=LS_`PHU6)ZD.]\40FH%4Tu_R\kBQctJo %M&sPr3h7-sdo'dfC\pd8[hT.16?e\_89bs]_M*TIc!5tgHS77&%,ZA'9QI"k%$kVFn&*$sD>:rXXCi,a%:"TgMaDf:o(l^`>j %@2dt,Pd`u,NLr^u]$C\SFA0.9`4+#%'T*6hC0HDP):p"j/r=M=^PMS_FSfg3@3d?:"aU-A$9%3G7Rq+iOs"$pY!CnE2l<>#p`IC%JrLD@'iRsO %=&*(6^`gfW9Uo"V5aiuI@YA$6._=H8-mHcpVCA^2?EUf!]u>EV?OR3`#.s72[aBa:[bHtU6...=iZ]^H036LNg.^FZZu!TM5`Lb` %J3\=Z3<]2Lg0-C=fVej4B7A2SZ(7=uIfho2lk;Ld]IUG]!%VY/P;s%?aPaOX?b;fYQ0qD,%[Oq(3%no1J8S_NbW&=ZHB'+2@Od7VnRO %Ot"-lE_k>inYV %h<8BHV&qBBanV2]L)BFQYu,^P]eOX&JG\^k*SL@bPC;cJ94c@%JQ?J:7XSO0T\QuA@`/_q(C#k$a)lFG@G[Fs]t+D#qXp7!0mLnB %eB-j^['UG2j42ppQ;/'6PUS!_s"K55\=V&QNs].?WC$5^I@o_CB+_Cfm9#(Id*O&P0GYS4em9,G %M$`$Z6\N]?iI/UE%`OZB:g0b)Ut;\KVIU\?cMNoNhP13GlUDNOBc=KR[#:H@\V7(P%bALn1e`GeZP>)uf3[#6'6Ls,0MmR6PoDRJ %A[nNo2TWc>_=RRU)@."Kq-_l!@ZbT!.Bp_"]klJIEk%H4N]u;bOjcHF+X\^DRD^MGL?e_ %oHF8D=D8i@q@:m!;&a48Jai+HG?kjK/d?&mDL&'Fge.=^'cgi+V.6,I:0EjWq %Yul>_C1Lr/JS@Zj]d-Y2JbADA]o[bm9*;RhpFSjd[u/,5n)X\XQcWLsYb%baI;k80!fdUB8lsOn31ijWD\GW %3NZNA@`$A[VFt1dmDXE\]#7%T"SVYn?K/O:KsB#TOjK;UkP\,&a*>#U<1%V^g&../f_e(GFIhMcYK[,@SjAb-?5DJbJ"4q@!L5Y! %-*FFV"AD>:S(ij`0L7(CCXa!uaHSIW]IGu6r5HhmdRTkfEa9nN02+?-06,AnJXnj=#Uj@TRLg6&dQVOl`@G4.-f %%]Kc"`ViY*O?/rd5LJfoIq!*SE?D`>IO!eTe0`n:Km\o6*YiboEjj!7LAa?nhiFIQ`)-Om[jW%Y`2UX%?8u/!BWE%=]sn'/FP,3T %d`nC4G3Uf74dBlDTl"QRFl/@p)K(C`8(6Lo=6.^n:?ja,f%/N]paG%IEXJg9-kdNI]m,DKL:b^l@DZX*ZC"A0cYGkT!,(__0i0-7 %F=<@@j)AmE[kLM.Cg*=7C%^7V$8O-)elKq^rh"g#Bg)t>lgK_6D(dG2o052Y]("$=Hbgt/\o!EgJ6)FEhC%c.Knc\_X^3%q`r.V= %ogAq_l;eD$6u,;W<,Bh.e`SK&2Dco`V'`#u0ml_KccU9&+M^A9/?!R>[^S$,`1'e\NeG8Ub+JcfQEZ %c:-)#$)BiW=h`][G2@O+cOH*XH+CA@bsfEuMgu=*PkGm&;BbI8ZOuM2%IBb.n/h>W2I`#YcWSj!S+^7Q8*kL747i!2p0_#)4(u9] %F(#ICR*4(%Ap7qD]C<]sernh=CFoW)eP->;^/0DHOgBk^alXd$(pCQhILaQ4,50%6l7j]sdmZ6d\n6!qCmU'Q4,Ca"'m$;l/+A!B %X9__e(cUbF'JjSYJuru(n0,Fi)<,d:=]j8.>Qe9h,4NK;J!!=dQg6oX2'OI^]WGR'0X4aYk!-gR@/Xt#KA@\\>Qik`98d+@&;ffb %Th8UV/"PcjRu:\/>Qha2'O4UD'KcC^fGIClEtPM"7DQf@BOP'5#^XU-4FtaG?j9ER3B8PH]o3PRY;(3F!h5*UH2k(H*P`sM,3e@" %(r[08M:D`+?ulorNJdf,Ip`F+PVl1Z_\:[-"C'k0i/&S'NXel/X^D-)n6b3"@'EkKm"8Su>QfMM7q-bX;a%/>4qVfrM.p9JL5kO5 %rH0^o$Poi$s"WoWIfAL]Gt4X[6:6cn%PNaq5`*8[4I9&SmDhiMKS6U1ZG@#EeYo`7qH8m5P^)m!J':kS.7]KrHiCGBudSVe1D@CRRi'$T?uE*(kiJk_4MYFZO`()d@p9")R')?j+" %/'Xg$Z.D:BSH$q$%/%PgnG`=F1AmgdJI,R+d^:Nd?GsJ']OtG`N"uWSKjiU0=tEhdt*_p^6Z;6lmd(-0\:fMojhYN'S?(lXM8['8>]1"t-"#RPp%9%*R2Ou/!>^N6l'Am>tCN&h^*:=7HU2e9=mH82K %5l^-T#rQU@Lp\X@3u]]aX4per/ug^O>MY_^$;m@q:;c"-Jn6AFgl#0EZ,\#[\k79=NErcD"QZkaWS?bK>A%l!Ldag:0`sk'HQVOC %96jrigZBTaLjoij_N,19m,Wap7F\Yk^j2/2feO"3"(F^.2'gAOVf-es-EW6KoSp-6!0-k,M[FbG'[aUY%1X+L\rZTIZDH&U %FEH0VF(HZ3Gg\LRj,GiYV@pPK[7B+/Q4gh\HE^GE,A3om*o'!0i)1URCjuS521,_&Lc@=kIbiTINNiWT[sZDoH=DnY_KTfd%jO5K %6'.\!j4kd1bjiF+9o8M"\]%8RHhWMV%du%e,YkK]S0WD:^S6>Cq,leaW\_YJ1]TJFR"C&OmIckQ'B9S8FT+Qg)M46$,"`Z%,W\K$E0f/fK9&0HK5#i3kX7ulY2Y(r!F.r&X@T%U`^ij-onD?j8i>6-P6m6GU3?jUi8@l/tGIL5O-/u3])a6A4VU\u1pb.a=_Q!SCO#cinL %'X'$=7m!/.[@6PI+h!.T-/A?A(t46GnV&P@*//]K2GS!:OtK19g493?'Z'g72TJST,NWo"0BTi12KD %`s_2m\[-YCg[:&RJ,8Y0EP^,ObG6Msk(8\3]Hp4`jc5'$\7'q=X0*;8dY\0oUo:egAMY:3@lBY;e9"S\]P"WKHGAT]TO$9I'51G_ %<`Kn;7?*>52)tA`iSMR'P[.FZN>7Ja:("-J!C]F"VU*%6f0gB6gl)7mo^/L(2jSu`%stPeE&/U!_-PkTdDLpKV\NOg1JuT$UKYTB %1(2d#HOV]'>;KjX-.3l'(D@_8IFi0p&Gorf)hS)5c'2f,5kN1aUB6F`"0L!FM,nh`&ontMK"NbXn/gZ>I/Dc)YUbWK-T_A,/P42f9,)*!urm+eWe,K)h]NB:UI>\1/>uQd5akPf %TXqpjme+/Bou@q,'Vk=kg*'lRQX[s@2JbHPHW_=:K&F7Y,ed2/(U:7g32@,1X(p=tnP+#`?;e<,WlUNG,ifk-Pb!^W`8`ggj2RMG %`oi!]LRWs[/NGlW+u8cd0t'2@X;N?3Rjj:>*Z";=XU#S>2h=C\EHiOZ98Y)#l(j8=BdQ[/Ru^Tf5)/u'%mT3\h0Usl->\.SXn#\B %;(j?:qaIZ>#8'4=ZSHEoG%Qcn6N_oh^%(mi)9Sf&@i1gG6b*nW$kAI+;1m$2m[^"n@"pd1cP-jj*!@'iFR8U_jSQO]R&0@ %GV(K`a.CFI]QUNF9;1m%E\<:iZ-2LQ])LSW&,(&LON1uHj%L7qiZNRsC:L8A.t*.)*_i%`eV+c$`V %nS1qJQNrC*_ZWruCunP1i*f_Q#q"=/$RgQrn-!9X$a,g?S:3^qECL%a^%l@7k+h3&LlMt7.LC*EK$uCSVp?,65)CqO+lh/-$X6ZI %?3I>PT7o'cfj>RCCfWgpXFU9Ub,&&@O-;(3%28a^LA&mhJ*-*/h>SK?+]m5.a8hT]\<&f504(gAPf&sapWJkgNk!Fk1BtBsK1(\>YKM3<^IR/K?njlq5[kLS-%dlKJYT?@2:k@\jBli&NgFH%0*h %o\!4]P.O0fZFO5smYu.s2h$!HYbiq&R(X\Ujlg=WKWk&]4qN=NcJ%[@38 %3.Da4O'8VGGsp:#Udq0uh%IBGQm1 %@W[hd(,0Dl"Ach0O[>iC8_/;J;dtAYSl?KlQ6*eWVD)5#Ud5rJnle\IUg*("\C,(-cK3af=Y7cu0,eLcgl.-ulCHj>fG54ffumPb %gYk%mCBo."lVsUCZ-e13?Oh;?EsUkl2)*DVV"W!/W1YGj_p,]i0PiD3,F-+=(TKOEiYi<$`65&C6eE;N6Y3N_P+')[\Cp$)iR&Ffkk`S!o%:=o>DEUnNqi$W5mfQ,iI8B!K]2`ct.25U_h$"IgMtBEi68&.3V[bL,V\?NRB=5D"4tZ$oaC"Lp+O@+_EXb[S&>I<)H4WB3lXmb62e?>P_mf)E,p@L1B,:oeOSV3;5Z&i!VHiTU4UV>i+<$8GK`Fu %nu-n:Ysoe"Al!Y(9I\oORYn874cR(KX=3#anZj!od6D>sVNOdAhK!m@H49#XR*)1AhWltf`_N7qAHtMPJ]S>(nO"A34tQ7'VHe\! %EM^emG"]^@nV-@nYf6JmbJFC"EGi319RBPZQpMNMg.jY[JB]oP3\3at@:FuCgA3,SM-:\T-".2T?]9^GS0jV1X@Tcf.'n-ZEUQI4 %:.k#PSN;8j-C8R3s&S[f!>9^k=*ago3fdmh_[5^B8SFL%YYd@6`UcG8>>+".;#s0V5uMBeMRJ\qhneoVLCdiiJT"<%UX`1)MsHL> %"000qlGdj,J#QXDETQ7X_PV/%lCu-bh&(%OhI1@ob#%2*U68A2<*/"P1:`*IgZF'"_ZTAj\3Zr[8*MjDLJ_hnJ_*4]i1;pW-"37c %Ib*LhQcjjD>qjB3a6X9$O,PLGc!`=i.Im68YZ[ffS(X=@=Z!V'U<+S3ZG`"8U.03,^0UA3QA`pJge:>Q)5BHm$A/t0ZV#Vi:8#LA %I$/gK\d*d8]P"qZoeB*K8pH!2P"at7NHMBTa^m]h)OH"d+_WB8FHimBL`WV(c0)Bo_6OfBU:DiOA>\?aM`\V,7d>.S;@a"cWl`#.AZML3d\A+0K'-NdBd(->cM1L>o38(q^:Ncar*p-N/&">]K37U.6QC11%fQdabn?s+Z8HMjokOOWCF/9. %1K=)+kL1LMoeI%9P1[/mMsXO\1CUVFeSQl[*US\DHpKrq#MXM&/`?G%n#M`g4@6W2:(#+b*u34F4m"3PZTYYIk01\<^>NSO&4,`< %4=RZ*b6A$f=*n@U?=9jF[C8<.#Ks?a!'dnc6mRfJn0r+/?Jl0SN]VUbCBeVV>W?L$Ycl %7n740.`um'+\\CBE3^id'A@B7E@)"Z8&`MjE3ZCfLp;VVN)2BM(1CNjEd=VXX(eZHZ]J$!dsSdrioV,4K-<-iC(rY4@YIP29P;&*Pus$NYOA65t8qEH7t6B]]mHFlATP8m&)lh#.\>q54.AMUVN-dcs-oh=a`0]Rb %[O[9<SBmDlGeQN5nIinA$"0d)*IuN"l0sT7sW:[SSoVIICaW]M2\] %"KT>*LhHf!em]htM8Ibse($,@=`@4E?4HXM,h*ssaR*q&?Jb[gB>JP4gI)Qqe%l2VWiTnMTA[%>Y,o:Wn?Z'Hdd:[f76J"*bac,Jq %N6bfhcD)@s_bf&QncnZ`CdU-(L2P>#XI^`_5\YLn1P,H;je#![R;ECNb;?_ATsOi,mCQ?6F4/eK1MCiQXd.F7+>'=]&5'QcPHngm %)e0(:")5Z7cjk+VJ*G,]VALB!B=71j,]&=L/FJTNE)C$?Q='pmc:PR*]P.W7U3odIe0Oflmh^+D%Q@mSOfp/jVF''=F@]HE.#3-O %-Uj,46CWcI*X>.1=$GOncgKF]FV@kDe]+]Q$u+3L@gFfSe`&3BWW(hZE#%5c84N+LaVeJu:aA-4qqsj%?fRLoiJ=D4QeBGZm(i*10T%4.,!IZ#rNVUh5+1Y@FUV3CZU"o3JcW2`)2SpT1`ap'T_TJ'kPcL(&l[%'bcYk@XgFUTMYr$s, %UJ:Uhkp2DS25+9Gp7lSq^pMbkQmFI=p8mJ>)!ja9U3f&"qJN-il[!!U5esVuP$%,u6(&`6*O^hn&*G17!lh=TYedB"j$(@icWl69 %UCd\S]1d`iV]irW^p*K=/CAs8!S,I)))ce[Hg&:ATNZ,H$l_?CQC&HVjdhj+?&`9f#7V*+!XXQ^F$gh1gShF==s:d_^p)LukJO)> %W*h#pV*[VC#oL*_rO+TL^Tu<@$5g3(cSflj&9(slJW`DfQ!hBm^i6LnqkO5pmY.dqkIUPUCXa3r`7@9+64kgun:t8TR4,Mh6nsV$ %otu.7^g`/bbK/K>_%2]a9'+9r1B";c\X"cf8U>M*@3,p5]1.:b@E#YQIqVP-I9UBaYV[doi/LkG\`n`SN70PEHA$pd4L3m&` %;t\%l&#Q&Y5,edn41PX0.Z-c^U5e<@'CJ/0A-XrX*V1a7,Wd]u&7S?d46aT,1d(upo3CA]#;2R%D8%5#:ht9?'bl9Y)Tm(W<0#;% %+F/[Fm5Z#8InKF>beB4@=Wtee1o<]qotA)9p;4&4ORSg$+<.Q"*oJ2k$>,B"/M25F[0sT*^;\rR=R`,s!`qEVMUO81N!C[2L#!]W %W&LlYR*0*(d6BH@9\@&KmI\EU6HSHTm'=hEPXs.dR':qtb^/<]Ud0fO3:gJ)I$h-bj4>BX]`DN'<&Cl0:6%N*2V&e.^:biG^SZhI^7NF2J.!8o'.q %H9A)m>e&C*KGoCCc^?"$?Ti%C6Z&;3l?m5'3m-"g^;IE>&o'O$>j3f'rE")10%WKtU:lroi32/CFuglFHf1O]'&W+u]@#n=Xb9nd %U&fR7)`MXhDVQm9cfHo`3\7:m``>*E2_p1?BUDG&TmgG)(8km5G_;Jo>C;\gO+h<7HNsAH/KXN&X3BnU@5`o-@W)0_gPZ(-:af00:[@)?=%j`HtBrm`eg\PXNGUna[eqPF*8kZu`0*2`r\lY*SmD(LS?)Ps0+PI;1;2?/>V]!3I %4Xrabci_pSaq6eR`DF=4Bj7*^M9d%j],aGClt(I0(c-`H]f(AjQU#Z^Yj!h,KKCZqLhEa!+E_5[bIHJUs>] %-^WT*2pHXqM:2TM_cT%;360i%M3Gij@Sl-h$OZ?H43L0#_"7PS=Fr3>qt6"d5$FRVD[=!'@0t'8.tT9O %Y#nE"!ndb3[^ZJ\&OsAQmo>N^`%'ebLZ%E=dbp\e=en#OduDi_RsJQ/SL>\6AR!s\:#X(JM,kC][Da;K9ucsgG4HQ+K8gM*TT(DKE#]Bli2bbgLamIXM(i;AG_8(1`n&\IX]K8q'UF20cKX.:okN]:rAU[(a-N]:a$uh %5#(&p>f1HFKSC?`T=eHWZ6,ob1(YidWd#(`Peg;Vla8S_-QA\j+[2;m&;j%N<-T['9_)rd7^_d.gVkNVc3,j@Y,"!l";;bi28-W[u,c54Mf4 %'UQ+#O_nYJMd-B(c6qJrQtZgHpHkHLH.^mm>NY@pV:6bmWZol//9c5@bJR]+*)[.tSn6[1[4J\#6bIaEU(H-$esDlF6DJeOa4N^@ %0HXdYUmUrppA,U7.;"Ou6SW3k:Sq!qY^>C]HK/?uRE#mF@,WlEMAE!aG&Q.e,STY.*L$jj>WBq(irRumI,+;T@k%OoF$,0ELe$p0 %iOS<3=bQ?!QCPEC+0FFJ%.J`E;;oYHB+;P<5RJbI"Wln9e2tJ[@ga1SN:(()Rq%#_)"::BPA<=X2.'(OC_JI`+5 %S#]mP7e)Ti0l<#53?]uPB=*I`dp17CQpa,d_.EJj5ZH/P_HXW^#lDOYk[Vs@7Vg8ohjCSW#(=mRFL?5&>taM=Doh+BEH\,.eqAmnaV<`Bj!.MM-j$!ClUBXFuo$d1&YC`KOLT-nqI(.Y.PVtUfS %E+KYm#TgH*M`LW&m^F!0O@JEpER=.8?Kg6k6B$I %.[uX\g\R\`X1A*B<$(a&WoY2!?SIq1bB@)&hnJiRU[kWJ;E*K(rJK"`Y.Alrs-hYpb%&*!Drja54RY[^'.ht==D]^m(p<,kgD>gG %`C5KoO_P*jn\LOupC`R^??Sbk]oflMB_*2r)N!tVEf:bK[%m\K@9Z^`)l`FZbHZDqm^Rmp70W?Z1[K1ALfMH..#(0E"nlET45p1^ %)WQ]=Sp=T#rHBgp6+`jWd#O%>TX$Y'L1fQBRGmtV!]AH:BGAodW-)SqQc7Ed[3%NUAas(B,LW[AQ)DjG.mLOX/dnq)#n9+kN*[$< %'e&U"!H(.@=X<[bRV,^<%$oFe`RH<7:M-t>@AIsU-1o23B8RMVYk+R9&s)cG'.WIc0E3jo@VSs[elER74pg'q\OgH-3%1LbB-+>/ %EP&O/C1ZoYB0N:GX>(*pZIk7#F(uE!.;YDTfLeU;c(a#1i#iNB7;`d8@>L5ao%plZfbk:i+^:a6]Z3="MS_nSON;@dh/f=u5Pu0Hn>" %FH.mFbi8)sBVN@+4@E_.#4;^(hkUPZK5RAlCt4hb1bK)-md#]^8$s-^Ds?9,a%7ITj4ua\@9/frIn#\,'Q\3 %@]#oSq,lTp>A+eqTn]-,)ER45=Tn %`/a9IY&i)()53(aAj64=='.8Q^aZ/rnbjq<> %#B^^P#iF51.X^J/CM0m+c!\)5!^T-7G"scENR!`D[!Uifk`'ck!=(BTKiKHl_RB$%_$Eoo8LD4Q1u243qRamWg$U90X(%`Xg(b2& %B;Uft5@SOMf(nXS?`&!tQYupMHc)ioFr;cZrBT5Z+u`'d;+*h8 %"a<1ioH(h+`n32\@fphn&'10eGnN`Xi$CD_ZTHXtYVXq6A["8X!6&,s9,,@kGD$r\W[F]Zj2SQd)fIqGpjb.$Fq])^Bu^PGb%3^` %)`Q%L2]b,,+M$]L0;IN1C-[kA3K %70GRRH%.uJkK55TNPB_%bKIfA9Z:X-2*VN`oNkWto:(Ri)j5MDf%J#n_S^R!i<#C#*&f#)CieDdj1<&`2HM#TVa(\RLF6b0rsq4# %gLX@LS]:U_LA"OZS!/l40_i\]ML%6(%FT4CFVtNo)RG %D=Iq%(?;h_[0MKAjIg0^KJ:fe0@I9g*>BA.'>_/^D2ZlOdmndoeJ:*%kMMs"jD_;?49a]<10JKkGndKqaJ'/K)L%,Kn(LJQFVq$] %%YbBNL@P0WV6QXJf["8JaB&Dg.*,@rMDHqU8,%n"hlJ!8!UL&g9p6]CYK1p)jj(XaXM7Ajeb"5E8JS^D\JbE&P/D?LOta+puoQ? %f+`lJQ\q6&qfZPUmE/m.<$'cEkAA_n-E%m?+%KAIFBXAW@\6"G#nbrmhaZF<)0L#t*2]+[E1U)G#V_?s*cY>sCM-]aX""Ji*Hd,`3]5p"](H-,/q,i2A7kEn(g.QU6=]FC^oY)aG"t>iKn6Uj17D#l#]9S'[VJqpH %ODaB5X?$khbb4C:NT[bfcX5M-6)ZCmFOE6c@,t?faDYis$A5(`,tfB1=$/]GRAmCDJuiL[YQqeKPO`dk686[oP)k7Q2i8VF/c?=03_-W:]K\#*?mA/M_jNAh*5rbq+KP_2CVAr!#c)K[97!au7Cn+!1854`S.48pIc0_fM %@P^W34Na4_L_BPf-)c)=kh/@FO=5I.Hd`FA&$J"(!\(L2S2G?(p'18[)r0*FaML5*Y#'o/,b^bWZS3G*=Hk8:L_Y_F@D`AI&QCO6 %q0"D5_C3Drmq_3ZW/"fWpLT%fNgYQdhMXfa8D*jMPds(A&>Mk7;]T;%S)"3]lCC,6U"JmL>/b`jgcJrGgh`6>a*3333qCfiGe^;E %KGW]HUKOs0=_tRQ!8$ikJfSP%BGNAcZARR3la'eK;knn:&F0,UsU^f_q!5.(JZei\,=>%7C>6MBZ+sOq8nGpMc,FRSIsk %G[X<5$hhGRWI>^$!K2VSdSFJ^<*t\8:ihu(E;JmS$r[0/Z9G^,,R\kTNC%"2-!Z3FQ,N@=HbO+g`5U`J\#:*!B^f.j%1F6%cGTEYN@mQ%[.mJmIS@TSAEGN0!4u/"q2HI`WW,m %,WIeMp08TkR_jPW;u!RA6q<#tN$,NH&>_;/6]t[$iCK,d):WJeRRN_=*T$ND\PiV'U=B!;:N19'm*Z'/qs*\jq" %DQ]&0Q!%">=!LI22WCu$7cZg.JX9Iid%CC-=S[L>gjq4CmuRP,(X*67YC6P8'kK\r<,6._pq1hF.9/RMMNaZoc!4uhB2+NVYR+>! %[8:;Es&.r-=:dFWH$h/G]GGMnN!C//X5"8ql-tS%>u/YVQFbE3rZ\6_a-&nEJ,G>%#_@['Jk22t58r^5_g@)jPY35CSG0:B\a4QB %FMlXq]`t>!;W/4e!Zm3\dnmpTl++&0>]h[Oue+ %>%O^O%cM8dq_tltbnb$W@FhXMQtk6)B08R39rO^p8sgR)SJ(Cp#Dro<-&7sEr=D\iE4_DbrQoja'Plf(%_&-H\eC&gP&sY<4O+r. %=UCI!2#:BYY\Nsl^)0fF+VRN`RjLml_^mF>c[*4!5T19*IVY]q8EB2H8o.+*e9JQ5Ud7eY/j%BLQPL %^XeA![+E@(rCS=/=qfOLug@Fqf%GKi[O&tgaeH/f5N9;UQJ^qB32@#Alp1l#oi!'qM+7o6g&mbDZTghs-]m@8+EtE2TKBR-e %TuIQV0bNjq":R4aGh):H32u)QSBX@,9b&AA],pQ?hD*Ci9Z!\gctjh,Z>NX$s4($AZ&P %@#VSCXP@rd(GP'uLo%^9X18Ip*'\ugc:8",I=f&T1B=H&F$f?`Ao'Upt %o^j%[6;B=-30>FK=*u`A)8%9%m>@m$Ek'e>=00$S[r,6)?0g$9WpFM4M&uDW;#31CHHdH-qkge'Rq?SX>JJ#1$1Z[Dcq(>W)jB2& %-Vb^hL2d-!6)jh_CiH"Pi'Q:76'/I,YWQIK)r.O*Tu-5"%7)ITPhPXE%2njD\+L]q3,1&."jcdE"#=!.Bephdlj[ijL92V:]MkI` %A(ibId.tjG+iE0phP:a(poqfJoc\pT:X\h9L:tF:[1.#J]7m$D.'#o.bE;K&2qndZ04_Ij#T6W*&!p6&(gW1"n*IeoDS-r\ %2n0eJm:?@j#uC*YD;k*O#'d],t'FG8N/1m:\!e>,#Eg,J'6m5R';LC$?(0/bmS^lS21B!V:RN,)@)#hD7V%[*@(%7uGT,4;9VncTof(,'=Mtcs@Xk\c,&Xd48B:7?BC);R@GjC8N*sk)U+[Fk) %.NMsU]d+[7PZ]Ccf*L+VEoU\`BsG-MDqn<9&FRLuA1d4U']9+#F=d,J:g"'L;Ad-4`Y2[5`SO#OQ#X'AD22Y9GL5=*]\$0#bqrKK %6U#hco/26#.@'Pb6N#`n(ULh7DT+kTXaRI+;Nl+cX^Q>g'I9f\P?q0@/^1!VI5,@2@UZpJ/?\:^q#<;^a0_IOXkeSjG#=D9q %E0Q-E's=XV_iRQ_(J(KF.@MnCTGD#qfp`l``dLmO^$3QQjiQ)>(QKB>i4)(JO%V130=oqYmm]An%Yg1\C#im$RkX`E06o-?@l8UUEl]>@"Q\$0-QUFtif-aTYE0X4uq5p#-,YB3[U?+_S>oSsh0Qpi'R %nBc%ks(]&B<9c*Z,5ZY)#e@hACf(43ma %iU]7X/mJb@$#$]ugPnT(UE#q\7;F^O\2YWlPgk--)3,oMgmuPo\Uf--Hm_MI0_aYu"2YWl0gk2;D %\.fsS[8`CO`hn#MK@2h6EeDO&mkqH*X`=rTa2;_\^)>r0+p)B]gk0Y>TgB)^hBGBIF/;2M+aC"7RnLNKgk-qD(dVJLE\aaIHUq4B %7JaW%Oh5pV=>\^;R4+$V;,8h68VLWF/n"2J\tC05Hcg\+/mVeS*V[DI(+6FtNs46\JPk?CJi/b*:E7Y[NWa8VdaT]3=jg>`8Hl1C %+KHeQr-V#U.:=W#FWQ=f35.)B*W/1Y0VofFJ?..8XI.4?!c1Q-rV!?!Er8rspcR-9G_L8l,(DV6;/V0Y_VUICgq]cR*-nK%XD %FLbO*1^XJ'&di@f+'b@1Tk[4^MO()8;j>up!p=e(Aj&BdUmNBQKNjf:!4gT]eTk)gJ/j;HSN$N"2^MKOi$cWmZtKoBLri[sDU:q/ %U%"39RiI*@;Hl)HSH*B'?;`lofk`^q/sitCC.j0P=!2@JkM&FD"kD^l\\u7U/89MCG-.ESJ[4>F4"[WBRS#oK7t')@s->)ga^n=P %Ot")8-'c!FTKVEX?),?U?<@DPfp7S/&Vcra;Zom"hk+Nq%bC8qe0o:*K.4Lig6K2D=>?E9)`2-(JdV3:%iHdX"BN5iLTTQkU9/)@Z/BJiaB6>AS5,1]r2kurlWS2X-A%$rF/u$?(OiF %Zq*\+S/3dDc2-gDefWaWROcMp\niKmfIY8U=dkCnmcq5hpI:mO6jlGdX0"+^K7(>9Ydfp=s6HRDkJ)(1F\F@g6/3p`&9.6m1!Y&SXUZAmt)N+r!JQVFJ/K:./lp,BumQ.Y!\iB,96n %=^233;^P]CX&B5/BU--BpJS>1(0d>4KEP)>/%j1Zj<+Sd/1dUJc %h#D`p8K\S.OQt'f?bZ=5AsAD<[(Z0:HYmk*SE41gD"L*G/;q1[b"*C/#pk_\AtYD*(BlpZA]nPdL,*:+$U^(HLhBR!(WB\ioiGn, %D%kXK#m-H(P2_e:ZG&_RcGDKb_Lo(9VaLu_j!L>a^)p9;f2\Cn'1_p,mXLm]RfnfC!puj`VkM+Y+rcu[cPU]p8`&eoMa-;S]O4Nq %^893DTH,inF^R$6?5'1EU@t+20fNLEg8psr,-i?=ZLDJBgbBbN5/1Il3K$,_/7;=3X5TLkL3?3L/KbSSLCO\"Hi.ONS:t#Dg!s5V %U-@D2`LaCih1Om3OX8%FaP@pl7ri7]^RDM(+&YI3%qpX#LB)Mo+Ur)'*a.-nL4]9[*($%S2M-0V+8B?d&^Y2\pO,O1\Bd^Fr`mi+P#,X[>4JpU&:sFPCkiNV&Pb$pB,mAth:bVXSZGlnT8O/Co> %Z$2c;#@(n!S/$D&ffsMJh'7i-&6Y5(\eCNFndIDg,Qk_U-="5ZBClQ@p;k)rZ3Z+sVFd+'?fW*##$F/O/^D^WnT,KDD]js;%D"Hg %Z.-[,4W8bhj^MaL5:P"5h?aH9:(fCI@OpYj+,3>d9.iNBS+gW&+%,@*rBZp87B.As#BD@"gu0\Bj$HPjj1L'Tdd?*H7):TGI5]aX %9$Dd%j=G]BjnFr%^^+!93f>,^'(h#j=*;hlr%2P9>,'i7b^h'#*=Xm;IM>-!Ts>^TYrt'bYD,q9\];`cE%&INPN>=UD,CU1&S??& %m;l?W]LAN8h_k[1gnNAJ7VlIooVt!sVTPV,PG(^.%$2-WAhMaO)SiG!kU?cYsP0?:2C %#K+=E?oXV'-tFjj!Ip`9,D/O[W-3b^UJTNh?jQ);k$e]>=5!rR1h@B'M/!3lIeG(8@)Pl"JoNJBUAo6bQL`gs4<^&=a?Jn!lG*]l#"2id:D`C*n@oEcX&*me[ct7E"cbbh'70+uEU7"3s7aV-u+"egkXH:;-s3%npbHS4PY\YO5*#2R+s7(XNV1d^2?ASa;VT#Eb.M7lMU)of[b %f]`3a"l+VFS`UuZFq62a8r36707Qt$6BPrWShmaCV@.?NTYZIYd!U*hb8qK_hR?!2-ls38_EQ5;(-TEt(dmLjXt;6uI7cYeB,nLZ %fnlj6A)Cq;nie;Y@jg?2c<+i.ptRhaF<)4qT(SEAXS7jRfdoj`*h6f33L;f_p-%aAW+S7.6;-7I5VoA^Vr>_DF^XQ_f'D?N?7F`f %+p34!3'9o?V*e$#\L]aa7JAt2s0?9#ABorj.+YHYnl=m0EgoLi\1KNof_Ou_em$h6SdLR1H7r!4B/K=?8jh)"$U%VJHY%9n]:M"p8k`ahNMM? %/>r73J\`RN+#)IRMOOb?i0isZ`t^XrI^&^@os2etSNZ9fOIKYZ6BiBif>`38rBq!k1\6mm12-RUi[ %Sbr-7*oP8-SR;u#h#*"F,M9m][mOdtC.oV@QmpR%i1tXCRR#&*lroY'qrj_lYnucc/IL(CX^FqKL;`l/NLj_E-5D1O;+BHp"&IX8 %S+=8?7<$T(/H0"[(V@I(5.Rq=fM8ZK/ONu=dbI,:SD@[>\g]C0*B>e%prEHE3t@f(ZiT\]6K7]j4a^Y1G3*U4]&Z?%AI8l8YJQk5IE1ZcK?fr1sX[O+ts[#iTS,_j6TYC.M\D5H43sAH$p7s %IG^:15^f"U]e&k^P0RW)!QaEM.2B#'ac4;LOCb-IA.=O4*JJj'PM9MAiL]*1[`fC_p#L9-V@3.F/QE/AoqqfVIAHu20t<(mhML6Q %SLDM*?lcm$Z[?W[j!`6Is(l6\iPhB]ZAhM?a>aJ[qe+`s@b8L!2B*1_XP6Qud'3>[#p %l#4*XM2X5q*VC<8iQYkpBeurD[o#+uH(BYhg=B$Xi!0F-G7E+r.IDmb.Ln'(ZFF)[C5!@*0D9u\9Bn(8`DLST=q(,EXp#2)o/nX\ %$.n_U(<0p-bM!3pp0]!4Un]b$V;U:Kd#IWB(ZpAo^YS#XC`=/9#!J:X?3WlA&G]?huOGVO'o.^-8EGtAp\Al'O %YXtBNI-0.tMZV.6gT$CS %7H#BUX%(g"`%@!\*R\LbQH21@i5Jh1/W4'bo^i_iKr=`V;mEEVYZ[WR(PU8Z8&ImQ*e>59'^/\-=eLk"QA]4]kF;"Mte %BIk&CK_P/3(44?D3bQ&VeKuT6'mjK]kK$!:D=X]$V6aWl/H,]RTOfiLKkm1lb/.m-ohb2.a`/UG=6-h2KIqmK&q1doE>o7Ib]PNr %.)J:1Ukbs4Ijh_TV_L9d[0&#LkULIn]U?B8N8e8HW] %0)Nl[ePLasL70/n2:P7(M.5.1BRW+F:]p-2A77%$GA5o.=&_g?O`7_!B7[/"NX&',\AsEe%Vk!t5Z+/eFG2.S,(6_tKn=nQ96eN3t>(jh=HFZ")-0IV#l*cec"OY_8Et%;YFLC%f3-a(Bh<-2g?d:)LKkj4"c?`1(VEQTDpCKAOlEM0^nqC;\pM7VBCX$4`HDW9oR4ss)+Y/nCWZ'nQSO#`,8X_(,oXOqS0[W<3gC/(gC`LaE?KR&-BBG:5jW]';a3kD[9:k=9g^rQXaM/0UTH05pYIGBQUE`:I=Ar:0:(_3 %R+YSN@1O!;h47AYBhaH'Q<#el2QK$qXN3hEmlL>A\B]!ECYgGEd,T^Ds%2'<(<+"?U!4Sd\(-prC-^6!(]ignY-WWF3\+p+N_Tu\ %B8(uB\Tf&H$A[HVgKK]K7Bu36#Eb`adj$k)oUcj(M;)7IN>Db?A[8^g>60T8OX4?Z^2:8ij.=JKSu+o?nc_gbVhP,V!psLk(2p8( %]\A%Vm47&U[@4U(*j=-';8+i!Q4/#aZMWMBs%mY+)X7!OVrWehI;F5"QYQ^%mm@jJ"MV_mQMN7%aU5f-b?JRV=2)ZXPa"?^ko\NQi(B7\J-+*q'aO2sok/]X9PAmD92jWUe^q2BrA4Gpk+a-25NZGm/#+EpG%d>?Vs\ahDfWf[@q+hio0oH_)=BTm8)ZK?h]hWmQ7Gg>8p=(EFo*3V9/M/@qYc)BCE=khs"2fCiA5 %^Wp#l^TfFj"/k>!e&6;>h,:D/M,gZWZbpZj+A=Yr.oYdi#23A)AQbRuA'HffA938.=+;]5$;Af-aHUSh\5m4fE\[5MjNH\#WV(dXo^l:cYpoH<=Ys97lP=<[fjrAOl4B:BOi6,'SpZ22:Sm9n)Y]1sEBXei: %n?hqEQKE<#pLBN>YO6aXg"2Dq78IR=t1tj]l0D7Q>rjjK/ooc2bZaW%XXNKb65j0gW+&+6DlJh"'5EJh?TBaP+ %=r*#/O?R*A\VukgGH,&.o\'!"1=VM'8tom:Ps^+DF!HLH0SJ0SjO/?TN*<3"[8^Zj1Qj$2M?ni%;bPg,_2QP>RU`dO!a4N_Tu5uC %G<3#:ifsgO'f&O0%.M&@+:[_)!PMZAm9i`!?S)R4SZWk8'2YRR>:EZ^"\CS:t %`0Q.E"Uh,J7)P_sn*8#+c;kP%AEud#ZTYk%^Id^aE`AjjKk;<6=`d<5@NM(L3A(0m5M_OH8q'a>la)?g'lpN80qfO#pVrs&Tl=/. %R1rpLLFuBURNl7cnlT2upN]OjK5;Fm.[OH9(k$iA1<"4eBc57dl[U0;E%&Ujf9@UBHGZ< %&.kD"@H@CoB4FNVT+^rfrp8D[(KmpU2J2O3WA^^R3;#IQZ(7s/CLSSd5)hr&GDL.[A1goU@JZg%rt6'j@cNI[Eko\^7X#T&^O/QT3`7J'N,mbCgi%m*8i-/0-rss!bROdpbD^FSIWK.*%oUWC*\,sSuR#iJ,1_ejE.#C'\?:ORVd+Y#=[NmqhJnIK,GZF,'Zf5 %j'hJlIt-@b?T_WChUgg.:#_QspVe-7EiHibJiC$rd,ME[p_?picouT+n:"dc8-SNBDLZ"4IGZk-m(*Pm"@%W*n&cEqT@?.dh)A;5 %nQE?9q/GM\IN6Hm.F_KkT/CZQ,ZkkpP2F33^jY^C[h4L;/^ %i<#WMX'^g#k\b^L>k6qB>5YLT8C!aDF('GZT\.k2k`("+APUY$m(oa:M&6(A&!d#5-eq.fo$Lnc!(&VD#g_]:9m('bOpRX@f=?X]"6_@SYIanl/I`OnX/C7W23Gc4dGJs&"\+dhNN1W&G,A)WPVr< %/H;h[fg??Ngiq\-2-W8VDr[2-C^AuFKXZs %.c4,^s7Lq]M9dPfhUML5<4@0(&6>XDq*_jS0+A@h*+:Qpet)XhJYF*$.bjo9RTXk"[tL>ApNlrkbD.aO3/RHh[d)tDgr6YPg"Kk4 %ag\T1%CpMrM?Mar6/FYRYHqfa+fPF&F:+ZBmt/Mc)uJ$&?9q9)fn=2k.q[+r6/ %)M,n!1X)Bh'^oSI1_]C2\`nNbL4/"+%^mbOog\.1"Wh%(8FH$VIJSC@>^#Xdrqf>%jSH/`P0nC`lglJ+UHb(?dOT>0Ptmt''r9n+ %>h+=GaIZX7=`K@_3F==!LNT1Ad(;684K773-'LqV\uX5FSQ+fG%8Ek#V.<285)YVb[U,1GeMhi'X#?r;KAr\iN%R?k8s=!D:n(EE %>&dHB8!fiGZ8;;GI8[oV^;s!JS76l]5Kg3n:\UZJN:$n:Zl("iHDKPr.UP2#63Y>"jZH]$\g:9iCF3[-0CLBSC7&k[:TF,D;e;T\ %(?\daB#.6=^/)Rkfpl"t`C[Hs.$[rC8Tk!70N6"&=EUB\g#B@/"pgR/=5$[C,o8uu8`RO"Alf_A$cRNo'hW/ra8+5NP&Wgn8in.T$HFR=6-;U*1Nj"%t^Z117o^f"Z %(^4t2"]9;D%X"1?pp2.7p*kJN&hS.-JIK7A6"X'm8J`IT6dAr2ODH`CA1^=eNZocUqa#A;5?R+qW`RQQs8$7Nd4&%6Ze&`!,q8[7 %2`*Vc5r@DE:Bgb\4CHGF(Of]N7E1il4K2`YSMFj64&99!:.FblA"Nd:_7jl[Vj4(=qSKM#TQts,Y4A$rA>8hMLF^cg9ao+aqsATj %j=93^`V/1tE];".#@:Z.-+_cSG6c_IN=B`#'toIN,r]C*=h(F8eqKe.k2,_$q;j$V4c>jI3T$W*4d6a.:\`5lfcD33[@Df-\(sRP %hr4S_p>N]A!@p:QP>9ksj$3(8386@**_iUem%\fJ_K;hC(K^[T9uGR#^]A0Ef,(Eo0)/pY>E4@'Upja[GQl %\R[p\cFE:JP2GPnq+r.IB0U0-("eFF6W-;aanINUPASeVXFGa/DT]Dupj6K,Y7?tbd]QZNYA8:oU#("D&XX6Lu0^DVR=Hi6U(nEM$XF-/<"qU+eb_4,^hL %4+]B^]1Wi+E0'gmj3A1U2NRYY+ZXrq??40ZT/IXI4WeZ"J*/ONbnP04,e/,]TY^>AJp-ss#>8W-T7Gb-&RN<;koQMD:=8tjp"EWU %:cE(H5_^lG=YTTc4Z[Wh7INa%`1#i0Fe*>&EF75+f"(F1"nLEe"bpA#Jo!92(r9^0jQl7N%#Ct-guGm8JVj)ka7r?Eb-'n-o>1)' %/K@d)E3lIVLk##nep?i0QZL6d6SCZnC?"msLm7]33isYt\M*ZmNA\hfp?a\nV[Y[e"7$-$[Gg+VYq\2gg\0o;ACinmM;Q*YOjjrU %?GB-T#7?tUkG?;,(l'g.UX(BTj@3CWe,GlTZRY!7CCkPH$mO%>a+-dQbil'Rm-LdF9%q`haOrD%g^q1C98CXWRhrD.i$?XI]^nFn7.=hhqY6e)F$'B8$cNZHFR,=&I=bf %2!_kl#nR+IVG8Rs%VX"sKHb*:;Qg10.)Lgi_FQo_YQ(9jcm^%3@O.8Fo9s!53!egeo#X3U`6Cpg^$9)dIoun8Wr,$.eDkPRJ+)]Z %Rl+lFS']0d!:%-T=jGE?b4c\7BNN'CU7(IRK,bspMdQTW;r"Xa#/1F_C^^]@dC6XJBJ#7FB!/YXhCD[>0DjBZ %#0oOUK_Gf$s&.ppeP[\]'keB*d#M&3Ri<^$4+>AH2`j7!fUI+#:&EK\'-#gkj.NI:XosHbOOo"=UP7V1N,_FgH[#@;Ng?"R1s$DT %kgR)?r6rd*]285%5N)4We7utR.cCU/H9;*?V#7IQDYRJ1GieU=]u)N8Ce]3.1Q#aBgi:j8aM\.P+"6PcYOdA_%PkECT7oQ.aGh\Q %$BmjXD)9`5FL;c,&@3EtKO3c[S7G,c7A:ht,h\cU-pIEDCVmWs/:(-kOu^F\1=YNN$*'(*T0nd8^9RY8e;JJI-[>Xlf-[j,_9VS( %^bp7e%^8`<*VFhu<6&eqKJ%L2GC34b]=`Mq^G-f;`,Dul.1&BuA,H[7d7#Ap\r&qsBOC#2F%ouDrKVm(YU<(ELbl!]ifZ=5dXca9SNZ;eSJ'a(&0(W^jKi5GQW5OT1"UKtuFh=uhSj'tk(1sF*@.[U&Y %&)\kRWqh5`Z9a`b^HYeS@Bquh(AptA9>#trChk<>\J(9W$"]F5ADR&5bRM9'CAb:O!"X'G''g0qeET]%BLsk,%_3K^3(E*1B_coa %hq]`?]&?#hRt_h'A/$&1D[_N9X$-p:I97)<*ToWdORqrl\rkL9VEruE=L!HKE/`.ccY.0X3]`EP1? %J'^`p0AcL;.,j9sWd-Y]bs9=qZX.#cp#esh^=OJt5RaKQM]3AMc]3"d]"Z3(p@Y\0Pb0eg&$)HoZ5]MY'\j:oU\'6j!_%FuU%rA( %,YPJ-;fWj_ABDVg]IN9'CVW::d$O$!Pe/!^okdusS@O&-$kO$kBJN,fs3^1sU#"UY(2X"bYRjL%Qhjt,Y-M^k:GXhkb!JYjkX+Wk$FZ3EfMJ\5r\3*86RU*Y]g8DM\a;lB.+2IIK6JpO#sY34rg0\FOC(3IFtKAafL> %O2OW`iK6.t8<:<]n*7PRPc?*Yc/I/N%Q!:Oc>Q6u`LrBP%St%7AbVQn?sIT[@Ph4i9@UpWZWm(A-;LotO6<"[`RZZO3+)V]jTFs: %TFS*cP2T`$ID&B7_uu+iV-A;UbV.U:PN:jcf10F2MI8>05Fec,#LW0)45^JV+U>k3Glnl]Jhn5Op7*`fk(=a7kXY7cIXF3fo#uZP %@"WoU3YDT#1NPNCnhr$S_>Jt#]>b:D1)1:`+'2l5I!sko\:n548cP[%olm`RmOPb?5oAqAcHJ_FO0>-N4N6aE\aD3D=9ps?6QE,B %jO'hLATAG4dbC_O%lij*u=i:/%bR8uqKiU';6G]$b=+mm6>t29fjC_VIl45o<:s %8^hEQcW=@+Xep0QaPEeLZl4hAN@!/_Vq%_KhE_uPXD,b:M/SO.>I"=Uqs&jrZO._FPARn3f'%RO8:I%BQQF;52BC<=bao%b&o@e_8d]MSiFT`XD"N@H42dZgpJcAQ9=X5:8(DI-9<7S&;GpauPs%^*Hlf'G-BkVBihFA%+& %VjNHcW95D[>4O%-67i#=HJ:d39K_Ir6rn[!Ru(#&R18LtXsFIT%).CiCk]L^:`&SE@3t?)6X9a+f/9RcO@p1)_-(IijB;Se`5`3# %'SgX_)>KNia%P.BoEJ1&<,`3j'V#phP&r<_LS$KVBKKhO:S1upBC6jQi-3E?<5(T %Hg8pT0nL<#53)Xdp#lbm4Rh7[JPV0:ROlR2k:*Wt]F_&c(MkO[ruFlVgeh9PWs6'8E!fAV\k'f(TK0j:\fTj#0;K+KOdEI %1biDhok9FSiE8='bq,g0;(r5\%LV]*1!$:.B]coG'k%p`@?A%* %'o([<&?B[8KOG^N3JcKF/2'&-J2lLCeoe[>$aJRMPtqK2JDZ_V/HBkg3<&h54H',bh@/$#3t2I3'bcnf+nim%2VmdR=!G?Rq(P4> %of4VlnYkq'XQ3q;Lc247lMEYI#o5/brnC]AVpk1V,=amLl_c4+3V)#!a%tDQo`%$Zo\1p#fbBA<0kT5:5!sf6.Mq-J!u/ZhYIg3/ %pO)8uO,nY5UY.T;%fJ(K+,jIb&*@$pj-uP]75=98KrSiQb"bM33.dS5\DW]8b'%%+[rE!EVZ4I1_OjU:*l(E98/7;Yi0 %[s$-^nXnJChQ'9l8Q4O(-es)Bqf8'ei*j8`nBm'lKuHZ'^9fOV'R(A,QL\qeJe)EtM'b/9#IW?;kn#mq>oHqCo:p0mk%bF_O:7h[hQHt\uF^Ie/D($3V_2piiZ_2e2PIrm%[&YMf\U9u(=f)65OMh(A/=c0Njj9fCe/];9;*G5rO-n!W9X;@&B:?Lo69!5'Bs(K1m %/#Of".1^^D-a>&eCJO[W6G.moPCuR]T]?!7%uQml42eaPoR#GB/pQ6:Q*lT@fe`rKh(qK^K1CLOcL@$IZfgY)rprX:Z"On;QLs]`J7/,<,t2#h0:^ZmZj]BSsg7Kq%jh7H:Q$;-#Zt-*Fn% %K`,6Gn7`\gMTs$Xk`(O4=]#5DaYAG%p32g*294JR;hU/`;2@nH@1tgGj-F@_?pH*IO5Vb[RI]]O,HGn5"Gs&'`M?8D24DCS>eq@P %9/I1EM?iVp0Vs'A1ufUFkI_\tbVTs9Srf^nM[N=o'7*lh_CHMn`rID_ZS^c8^E=f2U^3E'oF\\+;(gSiCIQW\E25^f$p!:(+U%=e %:@uSf#lt$(rA[,k?RYoK1*6E.AMfjm"fP`I?%=s;`93&h_4N7g52$%Ic6<*FOJ5;md&6t#Jjtk-NPf%pOin5uADet9"o8Uk%-]<( %.jLtU'tF[FGp&P$K.cBTjSI(D#a[#uO:glGEhLh<($-TK\Uor'Oi;7'*1o[jADk:,7:U:&,4Kl9hEdhNVZq5_^h#/@IXHU_$'PAC %E0?!(gt&SHnVT8)I#=U2#q'K8V`gCi=P4[G\KRK8YWsJbL`7Ch5G,D*5.ec%!l'!a+`i@t28T;*,2D6R]uWURq,`ke %^>=Is548_H4t\Zc\M:FE&B!T3+PPL@U\@>.U^;bl)gQl7gmqL.%eMHp\N?q;SZqfH\NA_G4S=rbktX/R:B09Qe`e`824]1!e,TZ\ %J_@(`;$_L,%,M`ES\^Dc%0,eOH$jRV+eeWa=TNe@>NrhdO.s>[Su<^;Rbi*MD%%fYh%%;6H4Q3dBSWjZhSX;cq2.=j<4g.VPA\6)*"5fBWN2Z9kh"Ot/e:)j&#K^l?eg_qAdBXRgGX?NiXm=VjF3fT5:n\(0mP^IV=i %AgF,#_cnT?2l<5h1rp9fKs[\G2M(U0Mk>A6P_kWR$A&(dL^h@&:-<7A9#t41je4DR=j#tXd10ZCU/HEZ4)@m1Mn4*;@A!*2KaVfZ %kfVSp3S8(cPG#muof3mW++1[((@N4@8a_KFK\qCf'`&;iXGUMD#:ISAm7J@ndt^Q,C%oSN'('?sn=K_/bp:W0kd0X^m`?2'K\r[U %pA+c;g.*^UPaT+*R2g@aA8>YffYn@.IU]_X\gbUZX`R_IB*aB\r0BE;'FVGBT4G\2.c8AP+PXbCojJK5qS& %(o.`(b1=s(:8TJCS3@B`?g7r4E)^`7D&lQ1A:UcNH>p7!hVSD+4QDQflHNa+pJE!J^4T+h7f#o1h;1mE]`o(^K.nmPf-$dm[B3"< %rMGAlXo6fH6NA9)VJd]G!MTdYe*(I!.=o!FiVeO#&(^hskur]!f!nTii_fC?681+dU1njU'"_7^W!u^ab/8pD$_iQq`RP&C.js$6 %bGd,^:+LB5<7\)dPFF0NQZ@JZ`T3mhak([=C;o7]]rDB,Mr*+S@WKqoj:7)m:Nb6PmjBa.HaYlU7F:$EMZ$0*K,lj:'G"$-Ibn9B %=D]&Q_Yj?FJLcJW4=aTjb[$Z_*t8J7p0jZIQffoao)[EQ"*e'"jo[YR>DI(HpC-&?-a`;*&!a,$ZIZN=()e!oeS1?Z(QWrpA#Mrk %T"V6Jfs^J?k<;hkDs%;-J91B=NY32U-'<3 %RGVFBi?0T1j7oba![3BQC6*"kr.J$[a*Bi&=GDTB@MX$[Et95q!To[.AL!=qehVoV$I %LB92oGl5LKND8frWl>=Jb.&5kK_#nJOIkO.-dm`K`pNISH&!SLms>hi+/[f@XL?E+S6P&O3t@ %H0%X_fC&Q8K_,Wf6D$EM1[t%ljX'ckF=ZYKpo7'D6=rsU?`Xdp"q#oE5WFjm[Tj\r^Ie\7mT]Cn,n37J2G,PrnYDMJcMCT+'^QX++L:"+j,kgVRqh^E9,),DG$2K30K(DqLCeN=lpD %:]eC/c7eng\su"Tlo:#6.Z;+HMMe]XRqL%8\W?7'p?]iCIP#9He%/>UIr)/iQ>POB+=&$CLBN6=4>19=5)@V'pH4J\olBZ`+F\en %p;2oA2#_m->f8.+iDq)G5q'RV"Vq,p+HCAFm_K2?_a*7[mXmj>:Hg7P&CcM4B\RoduZMm_*hZRYfK-hO^lPuTR"JcP+* %6,m<+LgcS90d*7CiIW3A@M0ac^Vqf2:m:\/#Jj(d6-]X"aS$HIn`t0\i12:%\hjHa'`lqlI_uDaNR#rT'-H*9&U\st,gkNRbK;FC@'Qdj?R$u1'f.c5Q*dp1R4:Oe3:J+O`%'t5m679/FkphaFuO#)R*"E+#2S[VUFP6RHq!;mJ;o??;HcZH %m=aW"ofQ1se)BPD'*V@!=rjnXYuN+;D#s+hfLQ&+F!MB9M1?Q1phZ%29*F$0K!eq%/J2snCkCZ6>K"PAT(O!PBmDI>lc)%(LZX/O %,l#]O0]#lNWNg&Zk)m0Z99%0\p8m)uDRFB0%P:^=VRPc3GIc6ND9E]smWI9"8J^Cr0=&N>E(@


;Y'bqcVYOIFFG6U//#H!VJ-dL&[cHfpLZk@CJ(,G+`?'``_X'E0\3n-`T&n %//gsbVZHc,e`Jn)Z[?@&u4:FBrDYl*k %%a7jN1Cr6qra<4::GQCIiHEcq!jk48bNaC=o7*1bnO]q&5"T/K2=-+E>?J9Hh[f %6,!e41j&W&6(0"NU/B-Q:7@nkMhYD4rURXm>I:3OJ7krI\#>X*(g[%24[7n3>O:SX!jf;W_5Xqmn79g[Z#bZV_]1a5+-l8th&"u+ %e5%&H_OAbX2;W?X\?h>SaO#>?+]h?>[F-O.!(.=0FOF]??VG2cm1@LRLW=HLpXdn0+Nas-@00 %!K5o/ku.E'9YJ!B0cAcDKeSj]Y8:-<2kS#a2:S+r=.=hk9X3H%q^ni!S,63dc(W;"ML'>dXqT=Lk3L9?Vn:@B1)(0^[WC-k %e;Jn\FGe\sM-VZbqr`TGq)c<5n05*2hVA*FNnogFY(*^LhHW2^F]_eaTic.aqHM[<)T0o1I!Von2cm1@k;dPRp#bPik$)ufX*XB/ %rd&X.ie#K+W-dlT8Ap"+@Si9t)N2C#HbBqs0HF#0I`g/4,>(M\!iL4s2=-Tlk#M^'8V((;BOs3QpV6jjkFV@q %)@f(upT1"0Xrc'go"p@7JJY12$4-fAUNW$S4b\LIj+re1a49DJu7XkIC.;W#FmtpT"M69d+7@ %_MmeeGDV^[8so(fpi6<]H_k/I]c7+.)@1s$CkWkSh`!>:Q6NQ8gP!t`$\=00CX_B]$\>,uV@f2O^Mj\h#m*2<[g%D?q!/H*GgS:q %:rB>m^`pD+_"&1=2^B=?E/bilWJ?=o6"`-EK:I"Te&Q=s"_W/;[?(8?f2?)"TfoAA<.1$?i$"](9[ERSj",o %G,iiq+>>J$g1JHH\OF><3sn-!jFA*seISg!6!tmW6MNu;@-C`K[]"Nf4mqUu1iqa%PN,n+@>tr1S^K59[Zj-eif'Sacm=:.q9PKo %o.p$gbe.0U,omrlNQ& %>_5#mN$4Ml4"`ciV@:#<\f0(0I!7TqgYVY$a(]Ce,E'P5)0/=9\GW2L,fI>uZ0mgZjO-ZU(bHRn4$SsgM?TcJ[`qo[0Y5D2g068B %Ak$Sg(_p:g9qs:_X9IdF'kg5DCSb75%`7HOcD#X3(=6F=pX&j!mR!tlQ=:jVlR\"niu`n+=Bh+Q>[XC#NQe6)SgJq*)?k;Il*CQ, %pc-rIn0NWlTMA#8Mfq2B's2p^E$/MmFQ\C%%(4N5Ec*`5K.TuUA6r;D0`f`V3FbV*mFX$qaHKY4L\0P"d %F#J1$p@Z^nE#(A)cM?S!V,;CaJg"#uFLVg\@8%gPB7*ZGN@kg:#0pV-\mIQ(5Xp2J6o_^-@?h9eB;HX98gSdNk[J-k]2HcC&Se@6 %N=TrZ*8dX9[PZ?6Fd^pSpf9?#6*#%k/`t,P*dY>Xb>SPXk%tjg[6/TtGJW!1@4,9b6O%///FB>!!p61)mgL[\;WSb^QAs8?1n(:h %j"'&]-5eWKC^$=V?(S?2ac??No%2W.[N+Ur*>X(c,Fnp97\LWCRt`h8%>qiF:OpK*Q=dim/^/$nUO'+7Nb1(]ac7ROL#87lq;1bCBa,ed2dW$F&ZQhYMJg)!,I\7Gla %MY>"!_En?77;rFd(bINtfnq!o"I`ZY %)^.EC3P"=MT*H#aYd0"nE+k&S=rP8+hP4\XZk?lNel)aP1saZeX3nIbWn24q]K@1R'[7VC.^XPOT?n>J6`s4?BoPF%)K[1X80Y4r %mf/4Y;BpM<@9R0f'S4lOCR3Wj[&ak)?(+H&%"`*sU!'eIHmMnnU_^m&7bcSF47KbZnDd1@80+EdX>DV3,diT5b&%7@;83:=@$X`U %'k5/<_%5GMk5ONd"V#'/'#ce`I:-NHk])`smKSQ&=Q`P]L#^KTmpq:#_Ufqpr:iT/:GuH\g$E)D@+EMfh=/>#PsNbCaPorSiG+iU %K!)9d.I]b_(>,F!fW(*3qr_/p_tCC,<#ZfnY=V8-7T0r3'7NW728*n_.=46 %9@(PVoE2B+\I4Jm%ObqrRljueG[B_`1:op.9_f>/ab$?2?[pAm+ZLp[Hd!cK6EGmie:H,.KMYLEfcqYF%c[6YqoUFE:1R*81jq(><&M<5LN]XYOWWS,+srJ4n<8o\tN.RM=X4F-)ofTReG(R1uk'-MFb@-,tS'/P/M%YdE.&Ua0?! %)AG6/E-5.+e(J%a+b^9X;EW$^R(T/0pQP`-?RGr4=WUaT6A=522G0YLPQR.@T):(j12]s?4btrj#aqrrJDPn3I"ZTF<1kr^];NHS %XSSjIf0*[]I^,bsMVo,_"Ai3&N#t75s#'R?J"mB.0#ef:qXl\V!$//,`g6dtPL;1=s_C;\K\G_q3m)G?dAU"e7nFgf0o0VQS*UjC?5_\Xpip8M`'^7S+,?V&Y`3gH\SB&,,Q$=[Ai,,qT&aAIe+*V,DcLA\FZ&QSsO/5[++EQH88%KR!Oer.E/=%eH%@)Fs/P.c'9.L2L\O,"2OK[KtqeQA$gc>E=hge0G/d8>AY/Xg[lSo%tTT4 %$QO9U6=:Qi[;*"B!.RYR&=A9gKH3MdJR,I9MkQ718UnCKh+_f!@Uf($I'fo_Sr<4s+3%Xa-8#.l.gN'p'Bh.9%R!N^dSS9Tdnc=I %kSp`qj<*r.4meTQZ-X$q$#>\Mf^!Fa5&'H`+ZQ4Zgje2N"G56h>II"3uTTNRed@ %($2TR]a*)j..=+*KhA4C%\Zt`6t/<1rY;W?S,rlS$$[4)X=#:a4?+j.Yb$rto,tIu@QdT:--sJ/S@dJrBQqs,5ZjN$@&@\1:i(@C %oT,'ZjQ(U?H_YA!!0i]15p"$L#=(:p*q.inV$!B\4:dFc*eBnKGokNcBc#uAH!Y`a^In=p[([1oW,sr4e';bm^VuoCBur6>2nqGb %o,qS["a.5e>?@Y\hGMGSEm)aF:_`OmZr'P-*@o%dN[OJ_b/Me\bHCL%sGQ[Aun4D&>`hpU#>kWir8p^rQY?=h09'\?&cR_VK>KJH]LS]>'Di]$1*m8fe(uOrBT#JjfH,K&U\4;j_58cBQ0;!p3cJ %LOS1_E@-Q'!qfk81VDh,R]hCi.uMplW@Wl%en!@Lc"Dq)\NUDr1XN!I9,6Yo'5,X)@f46=s1CpUbc__LT:Qe6koK8>gDZ#7^Tm_]ZRhoXehrV8pJV"VjJ_7Ua:7 %:SMUNjF$?9[B_g%hW2=mNR4_?bAoV\o'kQeHn$&#UR9r+A\!20DJp[@LJNTNf8!220;bF'\)t8tSf&sukkV>G.%hIt/)h5EDbM1F %S6i/S'1pDd(nk'eL"VP@3Na2#?bDa"Kc,Q'8VjS5Ubpm7&[5rX.IMT[!MnppdC@<3]Bb(#GoQg,c[e;>)&7L9F"d8jjQ_`(7 %O7+l63FIub'j`t:3FLNl/'er-DlFVY(sq-uf[>)],(V7l1bJiqE\=_d,]hF@Ti15h'0!n?lMsXGJ'sPqO68&FJhDpY4GU3ZcU''% %T#pP44De!/_k@9h#i[T!*0F9V#V5]?:NN[XC=LqD;8CI2pV64Dmj6)bHG'U>N3FC(Og&!Y*6JOBlhC]If).; %oOcji7-G>\p)qUr4Mhp10@FGoQ?$Rk."-6&I6mT(HMp"Oq5+h/b=UgXX*3p&6M82cKq)rcT8?NM>5>M_kJd %57rk#/991^A'RrYG`Wh+'^,URn5?oPbEO7u8"d1]nH-Tcm"$2hWYQ,VY:+&QJ9+?8iZS;VkBV#lS"0DnH-L%*rTM&-aAMdC*r)+P %LW+m[K*Tb_n$IToAbQ(p?EPWpOWpghVPsB485mm',5ceL7J7e9-*tU:.U>dFkN#N[0[%rb&uC%j,Q,hN66:rPf!u@ %aJ`A##Yi-8_Ef"q.ei7KPs@G204,%QH9JBF4VLR)kuQ:@-]6`+4frH^:tur?lY0AbXmh6']q/94SqA`=L5dQ!e9^CuCmSI(X'/AgZRa.]CA&n-agH[)U":#Nm5'f:$c@3W3+0,RVidZJ`PZ3S'ZIW8cAJJ??0/Q>p;Q%%)[OQ33>;lp5`%QiD^UAZbcV)uM'O"q9lQ(3TMs'D%SY`7`+fcUNWIm^@p2#Eer!SSSeQQr3@d*D3)j;9RY'2:_?gNJ]TWSJ=0$Uh&@[I^Zr0TcBXE=HEeL==$V.R,6TS&?t$FJM9&A2k0HNdU?'F6eE %Dm)DH:4X&5CpLsC"B=S@CmX.JL-!-MVg,J_b[t2Jf97]<"nHJ]XC7cUG(Eio^R286*6`S-F')ie#cF&A@A&MdBq$Z12I1:H-WPWlLV(aA\"g<(^TsBW4G5GGtTlLQm1hts\3]0Hq8K88D\uJMWIG0,16@47K\anKFYhMDk.$k.4O-I0R %@ASj_PG$;Rb4usGG#D?7c.VnlV %6.^.F%TM?=]Kb.E:U2B0Y'/G`P<(A:Q6Rc<2MQjU/!p0Y]@(GH-Raf%+1tWbH%'Jm5+,pQ(:,VM<@[IA'0$K`h-81jbm!)XF0rr@11Mqi(jZcQA6Dh',h-u6_9A\3pB&ZeEE)\,3kE2.mgD1M(b`B:IHnr&_k7TXWt %"H*aYK+>W9OAUoGlL:Qr8e\*eSh2_cQU-D2.MXNrKRiS1'.37)mP`qdbpLo(YcZkAjEf`GG,/\P#pDBSgmDHk6hlr7h4jK %CKUHR6K3iNQp1*;+Pa0Y4Xl`!Q5[9*7<+.t$:SUcXLRdq5lJN@5GC*(?,a$V!s2I<+4K5B^@_3,8^=s),M.3/._2.M]AFG4/)=l& %O_9(@)FN-dhigIkGY?Kn0u[3AXQ7dbnN#:"]6Xp!7(Y.5pbkLES&o*gD"f$2&-7fW>m_e"Mfl2".g6O9/OBt0RLKFqW[[\J`6Khp %m6id^$&2msolegjD&ea#pQnJYm %?[p)j/JZg$cbMWW)U6,PUoc?-KKoKPnP`hs,,Lnui4^(:RcJrk*F?jA/">P>r3F0HHhb5Q$R(7OLZ)WW^o!>PF5U>>N<27 %LWG"TR$OMh:^jZSb5+@'*NltbER7FFK5]DBS.@fP<:&RR&?31XAhIRkg47[]0+c-j.l7004@V;DhS %a>2a)c>hBt/&$&3qm)92+g4*!m,em#K!cRu`]i_'F"$R9[FN8n9BLQmV2e`&^9J]WA]q2Q&[dF^"eB,2Tbd$EI:c:`3gRGX*LU7*W'uYu*/&a= %7?!7O`LT/j7Dpa//"eJmA[d#='rXR>/.TN\e05sp%`1EZ,*(nWY5ugDMhkNO+%@bqnT*Lk`I6Z.B+20NHFJ1RIG&H:@2AodEM%e^ %\M\ghYC=VQM-&(jG$,/Zf4.X"bFL$Aui?;tGjE6sI--@qr`cQ4LY`B/&C\3eQU`Q8Mc5%]MDnX]P`3 %qmk#]U2hl$["ZA[.@M]BX.-7\0'b_+t9LC0$H3f1.'?Fcu: %gKU]aU_c*tTLi-.&TID"Gq"H([T8mRj^<*]9?SeH>u-2;g+q!Xd8gPEE^Y>Ob1o>o#7RhkIe&QfjC?"j:H^K'ADJna,Ntt!QDHQf %5k9B.fQUaIhAJBF-RXW,pPjqXpkJ--5dA`oS:mN8.l=ZG.34iYBI:4ZlntspQ!dWa2e.j?<-$MgJ*An0VOjg!;]IZAE"H(%;or$< %rAX5(2Fg%<@:F0(:KrYD9l`!.D %cKZ&0Boq]?Dc%;;SY8E8N2(;T5;K!6"m6YbAel;n5<*"n1_4r2d'W;?2nG30Z9(6(VEtNp].lrF%9:9;\IOr'X1#nV9Ipe[+%>V/ %)^lJ2SO]Zn9W<>mnmoWQja&ADhG/TaN@S2-`']f,_ %<_Vb]QU6&)`el3bbdEB"=3/L45&9)2#=oT^#LWN\XiY74o\\le3aQV5@?8[>%a(Ep3(Yp!uS=#'HuF&'K5k0>1/@fXE#J1&b)0"nrI_*X&erMeb:_ %5!c$BOb-QQ*NG,7-lU_$=eX`X!Z_F>Rc$B-e[%T'@tiDL&_C(,(IhP0(?I5CZY1hH'"VZQ/rU^pG/Zd/b+a!%r\@Fg"a,2N!#A9= %LRK'@J!%VlcPc.k34,P6$9Np^(Ij6m;&blm^+?;Z0!sP:kTtbn7J!Hqp>)NP%39:CLK,KL+Tnnl[FA1lFhNh-LI+EVMZ;,mVDee< %Ea*L$pjB2qNObFXiE:bJhk[[ZddF7qHcUN[,)rHc\OARGZ"fEM_"3W_[@[.`k#UU+pd'%h5Df&C'7(TGo/mao)c-SN72Y?\`h%_c %N@E5Sgp3e*WE)5HJ8[iGG(8DY0N!L@DHNRfWH.?lf4o5e+ih'."c!K.ePAZo#P2EcW89%fUY.3rs1J2"*:jMrb:QeS-4>4^@`@3D!LjYgRHCe/9!-[1h[ce9`fh*Jt&dbe0[5=&+MRsmnOK@G: %NYIXXghd5oAefMo(UI"Z-aidLV\F?YmK6Z.GJC$Ms1[KQo%fguHc=fIEVF[74#*WtC_Wtoo556AA?03I,q:CKc %=JY.4]D-O?g0F9q9J1BSaDQH&E\7mKe::"o*Ep*AVEF%&]@>T+t3oRFO!D(J$p&;R\$_t\%GF+U]2q6Hoq1kf@c#46c_U_ %($0R]O$C/l2+VlD117!`k]Q1:ddFXr,DA2`FES!>!T'2MS=grMTMnNC:=,%72YAb-EIo`6n9ggW.*C=i2_@rp2[qN$J`5/;;eO+H %%f0=q'Y<[p\[=SlD4Qi0KVFK&E$^i2Tpl7S)t#:k:?\R.BdfmkFW85cArGcukT6n]41r8'*Ao0c'/-42F)qoTKPkH)BoomaN1r>+ %S%?fqr:lF>iZ1@m+<;[dBD&'P%uCLd@g;*U#lWP/I[maEi)W0*ppHQ.ggmUlonqP0<4f/9.Y.*q^LoVSJpcgpq%$?PD8(Q5#.=Ej`gr-5uGI26Cf=:(_Rt7#j6+:`?a0Ju6Kf'^&)oOaU<[QX1 %RYU4$;'o#+fO$Ic_b@rS99TZ$q8]d^@D\b3@d^L^8(o6JE0>[b-S/R%PG)O-@Z(r9*.ZW\Z9am37=$]8>AqWJHFZo@KAf)dN\Qheg %O.]P'1kW0a=O'37mF39Ae)2?B3AlV&Y%fL8ERE:RN[m(Ha<@Wb51q]hL:G\s541Ia%+PmqXB!"\l^SmS#V:A;=R+BY7pob9@B!1X %*.d2oCm!@A#V63h[8V\tJ]2t(=R"AtEgOYXD+R:3LGNlQBjQh %aMBG,I'L7\6jg9O3@.BbX,KgAlaFB'K:G_iKA4fDr(8#isl%<=WA^kpfLpk8)DXVZnd)WZ8a*/)j;%<=I9#@Y#=K:G_i %<'+jOWBnh-5u8.qkgZ83@oYb2AN.-_k0FaAo'M^dFY4G"E"b5]gGO5BeAH&bNoIKF<6hX4@b)[_/PXqV/CJ&hb1=sHqA#8O=29&f %QX.M3/';-.TDJt=%?Km)6SjE_<52^kK[19UA?5)9,^e0t6\q"N%2(j?XWXq#Y/.<\KuWC!8t]&2C=eP=O,/uHf)\,$%N?RK#9!q0 %n3U9W#fI63h<-p)AXh3.\di#id`hT%3"TJ>g\o,>QC)'/_R*V/`i>Z@!0DY7L%4[*)9$pRl[]SYR$7MDI04Kr5\c^=rD5%U4io"= %02^llX63^c^O(1-Hd"SfK$N9c.u/,G)u*gt5%_t^Zb4!2]7?3Ze8&`h*lVM_mYYjlJ$UHhNd;LGN5S_K;Cf?2nh+R&+'[rQ=`lIS&b0UOlMEP.!#UA\TMT"T!oM-"T]$A+^&7>*Qq)%;_k:HA^_,KM/Sn9]r(iq7B#,O[d+Kc0']A4]rAk/*=PC="uoZ,J.E6 %*k7fF'jtDD7DjG&f4o4+>DM<8%<=WAlHWd<26c2UD67npOF-(eO#q\,fPW1Nlt^"P7nQfC29:dAWjeXD:(;6:+)7j93&Ot9Q(/cR %HlAZ1Tm7I5t"/K,pUu-]%E$C2OkUk(W%hh`) %L)F_Mb`aQ=j%)B1M\f8FAe=Wif],`=iXj@oqcfFV1Ho@*F`ZYZBKd?s*<\Bkq.Z=4.gKL@_750,_J[.9%E:2@:Jm[k68Mc$Pdca_ %Ele:'XMMEb?6$6X2AhBGBIg$,\%uHW6G3ufLV^KR[W2qf(lV+$.j78h1MnFaWS'jI3=> %`[.u,?]X!uUoc[@`bO4"9aPMSD.TMT6pGMllU@^8YY;[g05%k0/#_U7_-gM.K!g`Ldd>Y!Lpm.-rVEUmX]??bHYG"sBlC]$\:h;R %G4%0%YJcCoRVG7#(pn%Ur!U@ef0RkGK@2G@,)O;C6osNI`>!D_70upb(RV+T!A-aA#s^r<8j"RDAGGhILc=&.^4GQZ,'i' %^KlDE2=T09N(YY)T\"]'#31jRX:01AXmE@E?sJIO^BoO48Hfmn?nF/OVq>d* %UHVee(YAT)oGNT\m)>f$2AR0h/,PB1BeV0E(Pc!>(lU]57p@u)W=IWN>OaJ[f$?na4L$P(#hK5h37"^X,G(lV,- %e7"ESpl5\CM[[TO[+.W)'@R0G?3-/cSjST8[`m;hZ1uJSF3Aase\DuMr98n\cJjH4;XbGthBi5hS0G>ZGg.(18GqNCc7B=Zi[''u %>k@[N#V6]&7*SAc(d[Fe\gc<2,UI270fbBX9nZEVna>g>.P6"gC)VE=r$K[YG29f[h7 %?+7gX>g?Il4c=K%EQGFp0-@B9N^c'Z\Kqu#ADu:oI!QLMu^l*!!)AI/B_)4RJ2\TYT,6`ao6C6Jl*G*i" %F;]KXpR\#'01WS@=U^($j(HHYl*h50(;?gLuIF%QYLkqj:AO[5,KJul@< %s$/@k(ANsXnjLgf@BjA!!sOHIS(m#(=)qH_@_oUY:jut!Mrc'^iIp>@p.dG %\%,6$NfH+8YulM.b=7\ad0qH$XmE?g9eMH7jNF_8ZWQmLSn;ISD5hhXjKWT!*8.NXJQZ1A^7q7=U)kf0)U/\Z;1TUY\DUSVHFTdr %[^=.FhkF)!AKcu.+feH.^uM;:Dbsr_=.iF?VO98>I&4D([mlH!oik7?29YeO5BE!"h3Y6N<0m"2LFQ-,1j/h>O:nND?Cbt5.Cb;Y %R^b*Y\-0XuS1g1CP=[UQQYf8i`DJIU8't(]5m-e5:t"R6&[(5jpF9.nlABW6"'7bL/':amVs"e.#,/MR&?%,qiNB4B`Ken"e:?sf %dAn8:aPjr;MTgCU"e,8TZij[,IQKi$<0l2"?)O6d/h.6AHZ[sJlDLq(Sjp87enbId4RVl*qOH_XeJC5`_!9\\,]5?A@3+%;M;\>#m7E:aAn^bWemQg9/KErQXPoI>o8e0]*U0 %]t8PYa4@X[rtHXTWtoM7[kmOGgi^3r0D<5"*<[oErE8Of!rN=R]h!TTNU[XiD2!qec;g@nFd[r!o[KN^;mQQF:RtlKeYW; %2VJ-]%8Qh3&A72X^6)FCC'3F@NE?H!,>-gt2_@H$T45"5j/g^ED2sgd)NDrAl;>jp9j\@t*U>&]?-\FD-lJL2o[A&pY[Y55T %hR!IRBW97#!n*$oA;q3E3adRLS24d4#gW39Qki%L$/r<[]/^1koLVIXiC[s&YCpki[b=1WTnC.KkEU]3?E55n6$7Ls@D5E.",OdN %D@>5'eNjTd4tGCle`eYWQ&SdU*>3Zkm#Gr.>u7*Kiq$ZK#qgl&eeUa39og-e\)b4`Fd6[gg$VX5S_aF,Ck]Ko=JSC^?P9V_c22Z6 %DDO8IBPI2B3I6TJOj1KG9#cqO-8#M=LE'*.3=&c>/$fX(imtYR>Pj8Mm4.@o#0BFDr\LD.(PDIhQZ=0ip7g; %7MFPC<.YpU9cmUf+ub5,M`TalqhfE1(Zpl7h\A\u(=%XV?Z)iMHrm"B#Zj[H["Rnrb'*=!LukI;'"/0',W:m)8_>Zf`am(oHg-j) %XU[hX38^QtmGc/TJaZ2qFi/oDS!'PXF:hfO;DVC^e^6X(rPE$PoZ]^LZ8&A;/DRoQ[1ZahPA!tHQ5n;+?-Y"'g6*\l@.a+h?,73> %VVSo66$.+MkhP?@QXEUbVeXD!VNpAni!Qu:0k5X<+EJi=A13j2B)?3!Y-J81/p>,`BY/"Po,CV`>TNL;/NLTM%'R'=>B5jf_t'h0 %(#\q[Ll<>A1h")NTIPDqb\Zcen;Dr%;8Ot5bm#I>W9m9QOAWC(Cf"$bi#lhj)cUk+Zdrqh;R==u)+mBKNBn1e`7O^56dT(IMh"M_4)L.=t$0;?Js,[5Ed8c'D8;KeRej,\_K=9,n2gh:C\,PllTR[pT\2:*"QPh6sP-99S,E*bp?"_5$iLt`[,q]mOYA3u8BN:L<9<8.q!F'EH/[5Lb-)_*.[O#7@\N6m6&>n1pCVWrb]E_0r#[8J?VYGUu %@c#KiI9DWCku>0a`-E3#)AF^=/BB3>!3MPEMF-eQ[B)[!,0X55PhqFal"mP0[noqXa2MkIiqB4(im*-'MT5)=>r$P)]DM7<]/p:T %[6*VZUnUi&4!N1Vh/sUI3s\8jp[,eZ>.a*`r],f%MeTVCh[/8)=5m-@2'`C-h/sUI$PhI3XPI64QKt9rojL98f5l*/c@D`ijI+p7 %L3E3):5oX9aRcGGQB.q*4t#*,=0EcLC_t)'he&*q1HCER3"]RRH`b;--*Z=(V@j)A#hunYY/2;d,M-'r^2d)A6eG3L@P9U>)AHt2 %D_TY5fP2a1VkOa04Z9\DZJ%*ta-52K?5:6h_RC\"8L?G2c;Gdf9BjuB+0;MUmO2Ds9d&8@Gg]\h$Cngl<\jE=s;/T7_$lX-HLKaU#=d!^DpiI5YaN%*4qJ\$OfeaQQP;D3@Pt;T,qS9!l\0,-,G9?V8r+q!'JRs:^H4\?c:%]Vq,I\\Bqqu[(Kh?eF$5/Q] %dH"$8a@*Z9=-d+*hD48HC*%$5\^3%l`leUW-\I`r?mRL2D9%7(:Mn=n/ga>jD^1SLU5%2Y>FD5K52&*g;Ip;+I4dN*:F\CR`0>TLH>#[%94;_JK_:.o9f__I&Bd#Hfi^\B"`06e-IL0XcgOhpQ@Jm>5(;C=IDX1-JCj.\"@ZDNTsXF1pO %R7:?q[aB\O9VIT7'lC=2d[kT8h=!g:(:MW-l9Y58>(5ekBK6?6d$?66l@6IV1"JZI=Td@r*cODMaecb3QF(,B'\_7n[$"lM'Ianh %>ME_$C01l<9s=V7a^_IHe'DbU>Cs;Z=DQY&A=_mBM7-*&WTcZPlHpb]Q1AUH%.p=8B'Qj!\X[B:h\*3FVA"[6oikmYb4jr&Vg_8I %Q9d`I=8eG@[8oK\G1:Ge=Na"_=2-&A.F*q-<50_gXe!!1'D5QRf&FA[mA\tUX1''1a6K;NZrK]G&B^OPT^Er;bOAWBcIS6d!EY.g7>:7-HZrOfTIe?TXqQn@X1X:[C/8F$p %3h6Ql.]6K. %m7QGTAd!>g_@j&/lrj]D/&9X)`mb0:(E*F$)uYrdYt^QcF4aulNWj[[Z#.2u_:s22h08b(]A)dD%?e@(YOXso;YMb&m5sIBrJK[Q %0ruPug/@6358#j-mIsAB!7.*O^MF0E](IPtHoiR&erf>93Fm;5DNR:#(]:A^D!X#*+bqthe&0YS;%-.s;J;m^&V$)jYfC+(-C,B= %64`<)LVQ]BV[D:\C@k=F"Un$b4=,dDms:]p5$T*CdmE6ShrG>.[7][,_cN'KLC1"U#nUJCMYTsWKp"8IETYVPFIpY&6b:>^SF&$t %&*Y9nKMHghkoh).cs'N:po0GudR=Z)gpdrB8/F937'LHQkfL;=oNJfPi]1;'+$R=YV'=/+e"Ss?Wh4H31q7V3,"]*]?lQ"WT[%!o %8Y_EB3Can[gW!iQL%>r^Qh1M?@i %Chpb#V)S$_XS%VJKORkJ:q::M%QSK5A6TJ*(5%Kp2']6T$JH %Y9$f`j==ZEk/Y=tUA8SlHmMJUXqXpS'Nh?1W!oLpTp84XWV#B:8pI0FUhlbtQ$0,E*7$Z+@OfTlLLE&/ib!.'8jJ2n,:%p%aX&[f %Kq2J_F(K;;cWKsIfS$0D1_g5,f(%q?=P'BXWIa9DYi)K7LgW]R/sth=@WXiRQj[Dp$KITuMS",.Z3LOj5*6!hbk8rI$Y,_7_e1Oo %>Sq5\#85g#.3(&[*-3tYSAGl%_8/p7aLSO0[f2[?K*,tLr,Z;%HW;<([Ca=kg*smcC5'n)OmDb4/ti5lBPH'srtMO %2&_6#Fgs%pWu1*GLDj@o^tNhu=;4+g^d$>;*"M&Ql'Yt"MkVpa$]dBE%XM,.<7ld^3V6I5epMJ1B>/&_IIg5*5qX()d[e,0#8pC\59EkaqPJ^9X@PTo86jcFX %#06):#Ys?7al$:%MkgPQ6jDg=6p/glGHNEM>5F\!-6>QfE'f?chV_'oi^%er7na-M5>"%Okk_Ycidnk1p\t9a!8WgiqHr6u?fJno %+s-7HN!RXHGVV7.Q?Wt*_N@AO!)%N8KrrE"1"Ia?P"PfK!5)D-A/df:6K+qF6-gWpS:LCZ3I4&WB(X95OU4)TN8I`Q(g6op4+>X1 %4Kbi[n(;u0aVU6Ds!8pC',\Ij4sKB=d)m%6^p2lXK5@s*0mD#<'#-_.bFeiq_"\@$@0-Ki!ol6%h?>ce,;=QKPE:@S6=KC'FN/n6 %3778cF]LF,4Y7QMTHnCdb`B%)5nl9AOOXdI897W*THnE:U9aV]8_bFWAbC[b\j?2g=*7dc,leE%Kb@5YnaE+R4TG=2PnMH2lfJ-' %;$-C6bX2"V-/^F&i(m2OU6ocUDGUBnJ\qp09*o:UF[,jb,p;sOcm`j3T/Q\l.08N+]hH?#`VRlaB?X>]7[P:)Le`8.$AWM,b5Fg: %I7"g"MjdW=j:WjpX_UiTK9T9$$I"1CRF$SHdp_bStW2L31>o6cEK$']mFs0l2IP_GU%R:&8Z($DOU6G %d7D_;def93=e;Kn^Z_RQc(aq?V/'+Ne*NpSI:F]iihe=JH7"CbMiV=F(VI;S7'gSNe-2!K%kKn*^P"9>G*;c$P5\)Ir0!c]*39M^ %;MpS2GuT77I#bHWR$-eDR)B)m"B1K]P/E*39J@d70+#_70]\R>(FR\Q)cqIp2QXM9^LYTN0I3"ujHk$uZ>2G+JJRks'e(B3e=QEm %"B1KL#IAB2@*6,#D/Hr;#_@#?^X"BUqtTmmH;`u`7f(0k$7dH`m(fAtX*H:01In"pdI_!cn)`..P!u-PE+@1@X8a&0lX&'F)Q%.[ %(/i-T5,$j$)!R+O"qRij4X/4I^'KRHAl-:12b1@mJqF\[ls*nY"8JE^`\0dcLZaQR?TI&7-RfC#/"0O-gV<6U4[3 %$]>\=OC4)\iJDGe3,:Ht7>ZS#4OG_,@dN'TDCdT(H(mBo[`,9T-5p3P[]MeElQBH`RX1SZQc1UnXZ&#DY^F;gTWCS_^*$i78CiB3 %ED-#W$NPfs(`[>ADq/P_@D>!Up::%D.]Rq:YAd)Dc1I=s8=GL9((/hJ[1NdLR6K9GWFdU"ONePNmIsqqF(B9-N+"sC? %&-(Q&1&KO>:H0&@;>]_c+u(Xs;-^Zs*s)j9@\B>+%E1ki`6c+LLJ:3KJ7?Gb@ZYk4Zb80sMNJa4+_[K4!f:@So*7N8ee:^!,h%C9 %8;r&7oUlI]q+'+jOsQsr9kKZT*5.QMCML")p`t]s\JIn2BBCVh2'Y;j0M.,hYdP(!J\GVl-063E\Chc3gU,]@-q<2V?ebSj5#L]+YT8BTb6D0QPVZW3@,;qJZ76*7`9I.R=k[6gm9gK.V.>OBXElS6T# %n3^h>?F=Yr_p;ViM`E&&Wcbk0F^a__?=/m._'eQk#^L$-Lnq<,S;@]4c94scsnS.!HQI'BR3oc[:p9(]FVu#69_)6\c %Q9QG"SpI_][@t#%C;$bJ.=)*/A>0ch.;OJ=Ch5nmIcF@d:M[K;#dK%?FO,O?_[2.HCKnu_ofZ4MmaD@IZT;LB"p%tLV"YbKj@QlB %MTUu>i/bpHn&e&YV[NW.;1g.^%"?bghi1_#q4"Y_"EV>uk!Xmq,VC)67Q6Z_G@"o:=l"8%P6KjiGJ^O4'5cS^+$g([(Vr"/.U/Jr,Di&)I2;Ff%f02,XS9"h,;*`!i'0[Nq-kECVH35Yi2MCPK;Q\&*g)m/q4%BMW*2;$Er %'_Sl7g&f]3\J.H2)Q"9+4hf-`=hC9ZqrIGFW4=2Gap<^$f?d-`"7ku*EPfWJg-XsNs4"odMlt?]qHu<-mhQO9Z!YiB#3aK6_pN*Z3-&RikR!_8=5` %V8^6e3siOdT5,8P0*M`e#ku,J%[c@j$hV5J$W2.MMY4buV]6?)@QcE6b#MEg*Z3-&K*8ZfZ-'jtWe_Xq$l%BY'Ukg=(sN(;STdA0 %Q1/eZ`OkX]BFYlNkQVQ6 %p%DJ#T)7]YdOT0PELC,AQIc7$4kfP^nX3\lQBul&&t*&7Q5@c*ZC,#4X%.u'0ohfm>)YIJ(*d&gCdj%M2@ %=,XtGZ7jn.F?$0h[N]&NZ2%[bb]5`k>ENU(:qnM(>7h\aZ:O\".?1Kg30Lt([J=.'/Vd`: %:DV'DOA"4Q]99H7"f;IV>%NDOlkB$)`aUHMY*;A\-`I?3()'BI-fbY(Pt/.+3ogoq^BCi8`3C')>E"\MU1a$5?+p,==lZu:/TQa` %P!.].l!]o@^LWH0\Cs:,Sc+6BElmucG4d.E"Z44F**b:t#?cj/YlTc^%CB#"9Ba8ZEW,[0ki7TZ>q.uno<:^CMZiNAck1!4_nK6k %&SZd7$iT@(@fm`pWAhpLl0TUiG1b0mo)3.D/&Crf'm.N^dB"mWgd3g'BNA1(^2mQBT.![;1PMPM$D1Y*WH@R5BASpQR6o:7L%&5gAnM8Z6G/'d8I4#F %QOlJISt'`)qo(C49ts/04La8G1pU.FK2e:+Y]2M*1JT?0R*ama,b"91)^[ssV0AHV5>9_VQds$lKLf0:CYpGUKOb_D)CLb)9IQPe %M*VY%&LUkC*`Q*.Y;"?XU%qE+N>%$V'+u4o7NWt!@QN@]C3QQE>ZD;5qC[P@UscmpHp2g7=Zc,8Js:&;OV6DR6e& %>\pmA$`i/qB#g6u8@um1I/-#Jf'OP_4q%De'K1Hc!BY^Wm2^7-``M]=WOd5Wl9I"EA*]#=)ql[Gfbjt7DLh&8!Fb'Y#WGqEnF"M';kcQ=)1M5YR)%=2@[((t4@"5P?aF1#pb`kZsT5VT#4/@*R#uXS?q'&jogllRMBS,Eu4.b,;?9 %FVU]g\Y3+uY+%o@E,%[,cT?cOB7@qBif!cC:O6)gY2>^LGapCi'^m]D9+FPTfUi*^eDXT56UFAf2JNDk?]=X=B>l127epL0 %8mbfdH%2bkr0PZY>gD^Z0T2bq6R^`]^E5cS6r`e!%t$+?,LVF+@E]0J*P]&0J"Eh$ks6D66Te3XSsH[nQUqr#f)1B9QcV+Wk[#U^ %2TWYOh)1)T?4LqUKQJkKdr3FE._YE'/SSOG>m4Bebut.N]?GhW^^bakhO:k3Nu<"NE2W]?3bVeUAjA+X/\TI03r8VR?+K2XZMS;mhJLKmSeeMi4pshc:I!e7P:/G342Xb4 %SZ)]bf@u0kWS2asWUD6jFncCV3Y)an.<>a4,T]>gA&ALFCa=aX.,05#IWdrk6N?CrDEgp)5jpjRCRT1][/6Sm-bj;'F;d:t(MAc^ %:G9'G89YQPqfBZ1F-r2=6^K\gASl:e^Ra(cg9r!k3p="Y'7q@%FI:)7:f2'--9W8fn&>4@_qqq %/WJk&Z2/E;Md5pe5gtm"^c\k\/k*?ZiF6EU,o/2hff-GI`D@j5XFM1L#ho0t6A>UFa(U"M/o4'4E(&(@I?R^IN43nJRu,>jAh'o; %d?%bo-3L1l@7,VtG@g=g_*?;`*&,fr#PtM;AhcZ)JKob3#SAs?(cW`7[tU6Ze82FE=[oA.G71bVH'au3/Whsh*k42U6eGSYIqR=K9-\!FG+?:K)>.F2=s,gHEY_pHplimFI_"V& %O9>it"EJ>iI:pma]aoZHa`/s*=Wl)1''G__[8o'4dap%"SBL?*no[_5?\hh4N+B"F@kLR^qqNCl2,.@*-bkphdTbiD8JnXMYWJJ% %^sJn&"rUj`ZP^<+$lVAT9?7_VOeJB[>s]<46$_$n$cNY)@K_McHNPDkf6lB"FXHT:8h*]lh%5#,__'0I#5@'6"\>@GBT) %f_i)bepsB#-=d*,"8cQ4Bc4!GA^_B*+i\Rq=jr^p=9Y5)tj^- %A"Q-eo!Z:!]ok!YTltLN(:@q\PI0`i!H\oRCDLoupUSUsH4! %/=Nk_D.ut(s"'rJqBj7kgFdr.:GkIN^TD-dQ[kj`R/:2Fe6>0Rbo6jjma(Wi`]?Io[)4m+4fl+oY^SA;?a?$_SSBE? %U`C!$\"Ftok8LgQ$U=(r>'R'P\5Aa[Tjr#"OB21N6$liI8XInCr;M3aY*QNI/2#q8*TpZPs&>a+A$1rDWY*flS9'ZQHp5*>oWUF" %dCBjQ9(1gl@PKlZ.fF_%[C5^IcsQdd8S'>=%TZnC1(:jj-=Lr!&ikK5*hUQj9&ssanA\jVYS&st9HlQ^@k`WlPNgV:]?Rh(@a-9Y %[bKSLS+_8cf41n*S([]sMl4&%m5CTiL7\;ulo(Kh#0K8ah<$NJ?r'@Gh<$TLEI<,*kf![lV07;a)d=*MtHQNT%pOI>^e5MB_0quU[:p&aWhQ? %jI/-#.@fmJ123Q%4Z)UFLnc?a=R=P=_h$^K4FO$NYRbGcD@n/?`V.P>?<_!Sn9IZb&cB9Epj@E(pKF9@S'3:(aa8%V>m,])k5D7gm00hu?>$ORn`Q&tXJLRtk]u"8s3%Wp1(/"T$fNL;c %eAfc0/q86WpA,C//I%X)d")i'/;MD"B`Fc5F-5uIcsiRHR?[K6U+V0Vk(Uao@"q&\@m2/%VFY7APPCM*UF:mP:R9e_paM+U:Z>k2 %D*AQ!,9%XF6VklNg48Du#jgq"jq,`J>'=+/@/C %M2mY5'1S:&@@um!1P;Y4&`HUW1#V_]D>BpFa3^h>.@>bHR_mTN#j,N;7Cg2RET1K4:/1lQ@#L)NH`p!LZe0IJ=+&5^KQIC=Ur:=# %RX_'U972*qY:efSOXiV-B&?ho1+D`J4EhC8b_mu8#/'J.AR8X30j%_+!b>3gA'q[ZK^laHMHPP@8)L,Yo1V]ZZ=&,`HX2fFH?rV5Rk7]u$8P5`:K_p'Pa3Z5d2BDQdo@H-V&4pFoT6)mr,? %4++dke`Gfb\D1_UdH+P#.uDZ0bMt>sV-.*,M,282.7feD^h@;.r]mZ7F"\8n.iGmGIfe& %'RU'&!-62Fp;eGJ0jt5mJJC-S#@9g7=5Yri]aJ6P?\'G[Y]g[^n-)VN\KiDXB)X)#<9>-&eAc.?FX*G\gAHRk:khLYFE,;."ZC)t %UdaS925E>%M?/jFLT>6$mctNAM5STEo^1P8A/kC#2e]H2,X9#/cm()#Q%Yam(a0pX^tUYXeE3s]%V#cfe[8Y)0?;K<(&NfojtCpi %1Ssn_l[BNG@s=DG!r`/,q$V*&+3nsur3R>WekAZ"2Ik"#.B8psql6Htj+W+b^85`TN/HT5,$%:*;)'UE=JK@!F%gIN%**;1]aM9I %R(pqF2UgASSNJUI=tB>^rLNcG]`:A+q=3Z-J92<66m(M_Lr6fOS*T7ttTF;+(5`9O+jH+I0$NEfu;k %#%J+RdLoS31DDD#hJ0KVjkRfWGoQa"rY!ZWKhlI58kB@V&c_-R.N+q9orb$Hp;$Zs3$`Ljo\dJT74@/$@\6muLL %%%`b_&W53AKD`G_KOR:%#u>5nl)m^3:rEj2VhJ7X68=m<`JRL1a$WWq\HkXjJAHo=<.q!r-8-71L`J0"1Em@'R)Ilp7jrZr&CM,I %fXjIG(qBo@CjEk"JlICI[_/+XN%BWk6pn+"KHd#=;cLjE7==E0?CsoE,0k;(VkmXO@Plt?=JcIS(:a]>+6uB/64lj?E(4Ys,$L>j %oV?$/+I+iF<[g)Y`OF;82q(3=8/MmY='&6,g42j5Yb:A_Qb6#D^Q!H",h&Tg;JOC&b"tr<)3mcK?&D6P?!NdMQhs1s4UcgkO0O[F %ei.Q_,g6DQ^cL6"`\Z][\;.BB8Ln[X[=?9R"FK1!Ls-^(/k%(c/pWj;LBBcS2IC^AGo1:KMhSfWS(H0e'EosCe"uiBTRe.O6ZhDO %N:&PTh/n\Ikue2SM4YQB,MLY!e8pkV'qXXs`tQ<2eQrng;Icmk!@XaV\lat`4!*b[e)2+;4N=ekm!,Ch^T81r".ur.4U\#`GBI<+WBhj %'8k3,h^V`ITmL,N7`-U`nC8>9dI7Gp2i5D;>k^=Sdp7QNIK(eq,,fZFWf^#C*-XJKMCPHGg#m03*N=.!M_(Omo\Ejf.Y#/W`Yfq0 %4fpa:G$WD)a3rrt$a+U'hJKd/"frZJ[EAX+jV[XQj-TRjJO^*Z/)fHMQt8i)YPM76[LN/b*E"lTENCj%*+fP;[!l+3B$_IB,\Z7O %L*\rd(iu(kcW/VRW+,H/@=(t:d9\L(]Ur@ZDJ7_OUe1u'BuE+X9m%oM`,j_9]9[uR=#89cj*ata78mKF"#%!<)5a')c0bBb7D#mRh1E%AL8WF%dKFK4liX5?SIhK4lhZ\&`#m&<[7aouUZW&<[5Ekt,>u %&3WE`SMI75).jQd<&%U6<*km1q)K7BSp&,l="se=>o$(cr'QUcdMV>`P'%_RDmEI`6u1bl$V;lYZ7\Ws8K(6SBJ!l#:MLVc&gbge %7gS`I=Y(";B`iEKZVM %$b)`CkZJ%tHsQ?)&7XY+)[nB2KFiPIC&A;+8r4d!(3>-?ZD&?/ZC%?t]dnACY%*J'RWB9&aWlIPeH\HpP",d4Gqqk42W"c`IZCtT %n5;^]]t4X#NHF.BrSe1Fq_J:D#gjP;7!sk1+a!-EpD)3*(N$e)c,tY95"D/a9Il#jT+d9>a1KpX.j/.K$TI--B%G7g2^qjRs(%Jc_*P/*ctAJ&3/BF"9W1Q(*0cfMS$9233Blt8G_HA^TponQ:$_In[rA@%`eXh_dP6DIjFQ3alV,['E4A,FsT5`l\AURdc+AS`6$*Nl28>N].YK`UK %dj#4R^d,)rQd4tqm`:MUhNqS]IgW/E;;-K>o^@^9!FoRYQ %)4%-i[jP!bhF6&/H;QN]k;"0FLA2fVO+P1plu.>_@V.iigZuJsLtQCg3qu]=`GuqOr*AI4nFP7[s(VZ;\A@!&9^JF#`oLS6nKp0\ %O@[>#:/'Fh_%%7L7uIb+.j8spIEhLu0A^%u[>]:fHU$c]h/;r$XiDo+WG2'.`F[Tk:sDF08E63!qS>A/eq4e2rmU>-\Z"1YO#u!s %Yo^caK<1F3?M-mm!!4oQ4?#@S"9o3mQ\"LFf>]'l]!:48rMDL:*;:GdmjrPn=d:Z=GDj7sQ:npHq,X2[YLG99(k$6@D00B,jZG32 %-NV!ZYjYUWEWl/cd-4W>S+k[R+3YucJD^1j9%Og%Y+D00fc3H*E!p4nq#0m0<*69jE0VNUsPOqcQ#[Ktkp\FiiBlTD.#nOa`g' %-$@=kJA;?40AE\4jmhRK%^buZ_u)G^T<>bs`.TqK^GLGW@+(OPTS%a0l%Nu;Ipbp_!)J(0"\/472qouuj*.g,-47sYcd[R.d_-=T %W-9'#ZZgX5#jJ2Z8a#BL]+8--ke5lshBUp+RmER"@iOp<@mETkQnEag.ZoaV>V*l7A!EKsHfH%ZEih>2=X=S/UJfjC*AS'PO<,T')Q^%^lX&s%Z %/h>+:%Ig+J\XmYWoja]O\Z@>0.3)B,S@I@!U:iB1krh/)Ks&-$dX/L1KiUf48FPO!`rGSn5r%"XXL_*7>+k;XQ5ekP/)f,HJ%79\ %l*2141!>Osg'PBgMc"@#FAlVXGEUHrIM#0<6#*s88^WKq2bmUqD!!6X)F_m3`osa&ef4AArnIc8j#G5A'pV-H`\'2>MGKaR'PJ=L %<\t"6JMUP#CQqTVJC4QQhB.ZU2bmUqN#<4)ou;j3NW&fb//12FEar5E7FiD*/iQ6aL"k_K0/loWG05rrU8[uB(OrtMdULVs`ehlu %=ZGoA`9#"3OX'1O':0ZupO6)TET2"KCPO1JhDfMcZ0dI'ef,th2g4?[_Wm*oQQ)^/=EM5ric8P])eZUo54;Bj[tSg:pAH,+b07>t %;jk\h:PMOZm.3^K$57$_r])asa!(M;M)/G)C*!O,N0ie_G&1/oeTZ[h#u>R5U%pVK4[h?bk.:qoPIU/3I9Oa0M#XT#GHp`q]/geH %p>kiq6iRo2SUnLbK)<#jkR?b`_[4YnB+"epKQ"YfOS!c3f_+>=(QU92IL5sA=VM_#?]Z!;V82AIX:.l06kT[cqkVjTE:fJWD(A,- %ObJodS!Tkba;Q!^a%QZfLJ,&jWkbcqG;kF[UK)4CdILk[TOjabQmUh([NWm;IJRM6[,X`"\/.9jNa#M %"\/,#kSKZh,?&)o"a8mM)tOKi<+/N'R0q0+o&13"'DF\g!kZ1:AXG50GtOeFfNS9f%5cu/AMna+#J_=XgP"+X_aj+^=+W\[7AKYqpj>hY.MD/S8$Q' %]cJtS"DDXd=ZES!GS96#9T70.[hd?PDTjrp5DO0#(h(:?_YG![46h]]b>.pcijnEoN)EVh,CKs!o]PBE[['$*M7:lIQ^3g*l&MPb %$?V'6i_6&]5B%7q$RCH6.m1Y')aB&%nA4`d_`$>Q#.^51p*gV[$Q*TQK\9:h!p/>>ajlCKeDB$I*OmF,7ep4ZrHTrW(Q)-sHTY97o %pK/.gIk<8lmE5'm0iNA@>?kqmK7(Bf5-rF%g`R^7^7:G();3@mj5UL-`*N.-pE1P#s&LZt`T@9L.AjiOT)PsgT79ScZ`>JLJc.P( %Q`]AG10QK)*9?t0jkW!?bq@L?\@t'6#uIJ,TW34ceoL5MANshrC-LP,nnNU]LRf.06eVnT:iRK&HTX)J"hN,&TXli*O'#@=?:n];Nil3s@JLg`AAgTiqX!"j#P7?&NoGhER?V3KJPJX[@E`M'OW %eWqN#FWm>LU:\ipr<=nY4gSd;d+Ai$P"aKhklr`Sobf"Qj)p(&*Q50&cl&V-*?##&_RK4+pK9@.gAs7o`]YN:m;VgM>h6+D]/t]5 %!,YkIFGJLb#7i@j;3NioZGOK'=Z@3Mgh!qBWt>,Gee]a*la"CEm6#F%k$'ktI.Ok;atMp2aC#miU#J#gZ4<1''1?qIG^RG\0;39i %e-%!+I"2=GQ#)8/,i/a$Sg/di8T=pD@7i'QNcli&'XSte*/srRT#lR%E&7Wdboq']i9]p*bJ?qgCFEr%)"LF7-(3#8PHEu>bmKm% %pJ#9\ZWWD=j1e;XJ")D82&W[5^3V- %cthl1e7>p@\(sNsld%bKYI92a(PhA:>D!/<)20,oG!)8H7W1&^6i58;$b1H)I`\iq:,TG!ZbALM3FXi`eImp2_-8HSM2cX"!bnnB %,W8[5S+YVK1(jq-rV\iFs*1Q`1_R$P!%s<<,69-:EJIjf%U %"(X,K\sN[-cCVE8N0mKdhtJ+&80jE,7EcM:!=YpG!QA_FoT1e(L,8DU)mY0$ZS-522U73oAm4KbHHScP/f`%c'\!=a,anX]1+"mu&h6o$)-A %CRFlq>j##s9=SZ0f2a%8-jh?pIaTYtg'h'L]@(d!2A_H[e`p>@pf=38E1%A-Yg_E3_K#ln\!Fui$P=3p>/O%nfLdh"eLI^43r+V/ %]hr_6QY.`QrEY`e,>eIq[LunP`&T$T=m1$@'hOpCgOc]`$j!m7hh?s8R]gY'a8/55P"H:t=X`UOfO4,6D"tQ^dAg*="J^m1[ %p4VthG-meL9qF>Vee4F*#`K3U@?TX&(gq1B"Ap?_)Zu$n8WI:jJ?eY+?`5rmIo61k0oh70<<=b<&BDePR'C6;PMk(1S0jWk8;Lbc %n78V'lQeGJ"rNj,N3U5"o^:s_Q-4'>F?PEBBKTpi[;s?)qG*WW#o>=RTH&qE7AJrshK?,iK9V?H"\.rR'!8s$G2U=h0VZ<%&qpGl %(,9kV&:%pR0>\YEYJA3t`CrP<;.(%n=&K_Ld9i8)a.U5JY=Ui(4"hB:3dEicSlU(uH0Bef.5?'B$FB&_`,gNC18enY]*A>.cmKQAjtogmkQE"=Mgk6N6 %Y+0Ne:1tFqB?7d4ALLPc\E"(b>/qPUo?*JH=FP-RMHlo>B(/!6S09pG3J5p;M2!.ppLOZOh6h7U./W(aeWG_B4Ou1DS:IY>RR%bh %#?hsolRF$Slc)V@C+?*DnP48ukD5PVSH=>>#\>W_iEL"m`8Q>6_=8H^mCScOV;Fi[G %^"Q3h]it#@4gHoKen@%0A8;Elh87Y"#scf24!mA,=="TQQK*^#eT,('`n5l@H;\GKPkbL[ZGQjNikcU.3"t)KB`RpS&c@f&*O258L!q/a\ %@rV2HXf+fp8`NXlq--En9c0O99-&Z&6ZDNgN]@;f:p/PMqP[.e-.jmd1Bo5(,I?AHE[$G$gJuXRVi2&I[4"5<`7LD;P,aC %.%s(YGua=0egaoFU4HfnpirG_G`N[q"uk9bDJ2T(;*%:r),&=K3pF'!$"CE`N/8_?,DbUJ=!*k50"(6>dIP,tl^P;83',@[Yj\I4 %_ZtXo4T3"N>P`Y1]lrkjLKPY[Ul)jr\[GE:Qf&qYD:cDc=.e`+IA"hF]FV(Q[_$bT^#.DQid3JBDW*#bXZ(0Jea'bq?7W_;k#U%@ %5N_77N"&"kh6em5nW%)]j2_1k[pWeR=9l_[nq$+ip\d+Y?tSNbB%X`;2hsYM3cfBr1kI])je%:7_IV&Wb8^?[R_%sHRk9Wc@(&STB:Wg:9?eDrue!5!1Na9@.1"a_GFJm:hN %>SuhB\Oh,:TWE?d/rf;O)0b6#fKKVYgGMOi#bP(`)g@iRP/)^">JGYo>PZ=l7j#4QJeiAgSc?OG:E;#Pd-l5+H$K*XH&9_o<#4._ %%PaJURQRV5(YkY4d4]/rl4S`@i.0_>TXbrNlIJcQq;@Xj6t_fM:r]4)-MK:.-h3+a6/G'Old/4 %9=&A*!6]sDT)mWTVX@h?QtI`fhB6LbiB#8\[W'q]S@Q=V7T7d4F!Knq1Dq5O2qmXnm'Q`)KC;9(S$UM`n7K#% %4\3>(O-XskkCpGgi81/OmEah:_:m]!Zl.Qjo!-*sf^;5;+REJ@]@Eu(R,rj\9a'f`;`q9_kL$ZPmt&k+0Z[DdHXMj-C27\Nj.O0b %I?VfC(Ou_8p'<,Jh/Q.!MtFeu%[c@9$1u#H%[b5C(?g=s*&'p&1X56f`fsn6K[G#&6r3S,C7#F)9_^?c0XnHcW3ippkV=9D98[Me %Z(Mo+ZT]#9^l;[!Bt]"fqd`Y-4d5E?KPSaREf(Vc24aZ\5N.8[XM:hC+t3jm9X6iSJJ%j7q>o+ZcDbj'+4c=4+nd_4?td*?J-7'<0)Vhj!F3 %1,<(_En[YKpdo+HRp:[Cf"Su9qTahY^@;=<)s_j!8#mcKEk]djjsHmBFS0@Ln!HTR+FX!7G*3dSMt`cr;A.Q)\BH^4!"oSi#+=Rt %(@d(o6Of/n\q:m'^gBG3/l-!i;.@%em3WCS6M>N(T$"O$&Lenr>XJY_QcLAFJ/TUK9ZP&rF.#O?V)q0MC5:]Lc$Fj+*(qb_.]q8B %N`U[Ss!3?Q/[tFpcSOd#EI-m_?W/>1Rh,RH^rlm,U^BWJqtk0U4]2gQk#kF;EZQgBqROV`Mbl?TKA?'1aa/_#LBZS*S9Og %"PkfQX8#9EET0uom8mo4$D.oP=2p%t4fh1cgr6?o6?d!_WD_`PFDuT+X&Oqf;Q9,k'V)iEf7N5FdbFGm)m/qhTojddYK#?]7s?7L %oI"O;.Ej/tR+r'VDpg$ji`i(gBb$.h<2T:+g_B86J2;qp*R:G3ITa)+="/J"!MY/@&7/\C?[JOrlYEpTh3><*nd4:C_FDhX^**?SOt3Hg3Pf5JGK2AU+BM7<@T@R,O#2hE[l@d;g%q`Zumk %%*[l=c?8Y!&!R7h&aOK?FkW3sPq.3rd+A(82%kIhY`;K?eHWB9;'>(H#7$aSLKklLk_6BZ&`M\\<&_m^R-^kXNA2gWPe!H>J!b/Z %O5A-tHl<<`b.RZS,C0\KLMmOOA7)AM:c3ll92?%gbFRmL4]jer,qm`$F%IO8Q5DiEc5TQDl2&,oSG/%);ocS4Ml@fcX0(VF7@gV8 %D1+-`>=k>:7?.#L?u']_m`g=VXrVkqDmC_f9Z;363B.m2iRaft+9HC(F&I_>.!f7I^RmaYZU$!q^hGsN1Ts;=5oalY'q/#te:<1j %egc-Fd\uRd.&ps_6;oB/\qFg`6`lrirY>A0!3K]e%S%`uorn.sLp-UGXf[*^Q;joXgLiTaeama:^<(u7$;IK&n%cuo.^V(\T@b)I %6>IE`NO>;PI4hWg;_$p)Y=Pc^H^hq<6EF4].2>:]BM'S@$THdlj_;DQ?bP!Q%-Rr=t+(XT@tMH`2iF6bI=?P3^>P+c'mWQ-l'#Zne+)m]lq%\,L$CS+oKB5h,1U*d`E&un"=1: %ec>-Ik`nJbql\M3'IkcPP5fRHS"@lah<'S`iKY$g'.n\b$9,81 %2UV*9U(fIqMa*kkQG82U;>H\pq0Qd,2AB4+/Un;5U@L7jo(UK\&N.D3--#an8Jr..&$6J>M3^@a_M>BE#JtkSTANU); %(QO)/bn1=R60=B!E"oN'g^i"B1t@<20S4FKE(?p!h3E).OA0rtMl$^mlRnXk;H2&TMl+'"Q%nn^8AGg+lE3bd**.p4Q1+aUs'KD4FtO#/+Z.A:Y,Ig-1aOe)poU->3>'V8i;ZpGp8(m&(Op(k)%kWY]h6@o0a3eYcAlr %o*!#NSIPTGTLE^\Q?a[2-SmJ&-hBaW5N['CSBMXLs1hoSAtH0nUO5&XbS*d%Ac0acd4D0p,"K$Pc/O'<$dUqt;[u#\lq.rs4soi]!VcoWZ%U1_2m)r;.T="W3\:'C:>T$Kg0#0#UnqlpDp9Sb %48H`gB(K(hghDkP(,tA.HMhb1?e>\Jpu3AM+R[`JP%ph-rJf)?bUCVi48H`g8A30%48H`g0[DBqmc4a;J[1@KGOgHYkS&/L\n"Cb %8PrE-NL/*nVS7<[?*_YQ\_G!I<9E4b5&lo?0sq(ON#68YXJV;SI>^Vm@l:Z%EgVp]kHFYkR06L=,db>M8\dL&Rm2PN7n1XI'#m!/ %/<#hd,`Hl8f9`00Q9ed/I=)@dD]-]9rNi7Rl>IQ5l=OWRXT!D+Ysc$k@WME@=#?$*G879c=;@.Trt8CCn^$pId9)FG\j\:,PF_4@ %rkimKmUi_=[-DLY4A?X!luTLJUpnWN`)p0H)OD"ZnnjgG@CCqF.grPE`Q+Nsnj-\B3g3ZKGRYlWmPJ);@]ELEbtDLrM_':X2mRXe %/pr?!U]UD;XQ&(/jfC>H-A&M7$OpQD6,_US7k@HbE$_(I\c"!bMT:d^;pm1mi:2a9q8ddKfC9$Ofk6*KQE %-!d)[>=^jC%?'te^GVd/FZMpGh;&6g\QIY6%cP93F9>#=_g].k9m$Ce["2rK=X[#BH=BAM/V^:d&ON"o8615`:jrfLr"Jb44N2Su %08B&Palu+ZqHI/!D(CCmRf1D$jTq41U3f+=r@LD4/U2Yoos[$I=7];Ab'.`-4#>nkf=2rLlHJn?f.To@WW]mcM\i99c_#RZL=V=G %G9,PIA-W\;-d&Pu^CN-os)suO*\=\dHMLP>g0P)lkH<%p''>mDaBbM*P#-##OO]Ici\@rPg09FQc;k`K0ApiB+SDPOT/NYhOPVj%JR_Y-)'#E75H4*cXna]oJV!>%h#^ZRLeP3WGjiLTCaGq/b/mc=`E#lOXcek=fkRYIhY.^g8ZB*a5D:GuEcWaBQq2"LWO63po-^]Ko&#_(.sNkq5YS-`eF-X-XjtlL %-EBLh02+c-:!m^XT_li0CmD*QC;,7GG+6I13H^J"ajFB#G]N!aCDYSu[QEi`-#j+h/g!,G8h'`8K.KG?K(G: %BapMXNPN&i`I\j=fF$,3k3f1@^fI,ZJud4j[M%.p_;;]+^fFiJ92T1&[Q`SHo]B?sLnI?N^P@!\]S!Yn@`&$B/c:UqO"J0[nS9k^L\tWmV %XK2j08]Wkr5Fgbt.:'/sELMi>V7(&,(O@g6n:[qnu#i]XgWTh24JoR5;OM %:qtG>`7>Pph$>%^UE]Y)GXHl_Pn,L`KpI8=1HMYsU2"/mIe;@FnnNR`caG+bY%8Lgq\OD,ZL*W!G-M`=g@7]d"\D5LdgTOgfI-IXeQEl&X=^g7mkN[; %[20.'A"O"5oXj]UlcMLR_uJYR\;+$SrGA,iUggJmcZcZW=A8<m'VX8>l9S);X;/^RW+G=pM7i\qTHr)B5a%HN*+@@Tj;N_Qo,g8V3^[`>(7L %(lpG0a7tl\g@gNc"\mbUlBbVJGgL,3%HIE2I".tf];PV"-_9l%_Pl5GpmAp.H&7=IOKON`b6oE7A)KN.A."n&0L9E5hf0Tsj9d1s %d!6-`8$hDkc7dW:7,Yb5-&Pgr7)c4e@OX!,KYPVPM5#eg&R`h$?NHa]"C-Rt?)ku^2)tTX%?AD_PDr!g-fJ?H!=hc4^I"LY&`0%2SsD\_Q38`?@8S4fX@,$!iVn_FL.Ug;KO7Zjdjr4B#oBIr %b2okGUlhE"9RMVLR7=?8)rh@s=5r&$]JOYR,DYg1"mVEc*k<++q1O3RH,OY?3E\.*Z5`u/gUU6-s@bjdTo %iAN"MGT57R)d4]D4Ru)o4'jm;j]hSY5]?g3m,N5/SFJM?iAO+_\,d,LR9]nL`nS"XgME#opNTp'E811*T,-3`X/PS-CIqkbHLeC" %f%,*bCGQGLmtZ$eb%n()L6:SU8SP7PMCs_4/[bfih(R!lP!hI"j-o18eYeS %"`@'3qiVRp7Y0lG2lfkLn4DX3T\hGT>m4Z&;.-CAl^.*GF0[,M[.I4^'GVC`4oPKu`FTnj)FhL] %B=3]dk=SoqFPT?cnYl\p`sb)NKNUddmRhj1mHaMD'cs9r/&hCDk)osoLaUeJ_e:(hRU%N"W"i2A-)t'bFi)k1gHi?n6>s-@ST;ne %om13ED/fhp%=;;)KS^q@k`QoDOH<]d7asV!Nea3ld74TV>+[>!>.Hf%puYr$L>F^E[d^)_ToNJakW_kJ9f.BTWR>)p@RVY!N?SRr %aP>rSA/$cN7!QrudjQEl4N\uP8q8I)"8P1J)0d%C#*6qPNS-S@+dhYZ`G?[8#3Q:;J_<<.l3L$W4L9TteL@L\AcoU:i/K:Gfg&$s %d*kl2Z[is!jp[(dAqTu`PfIS_`!54&MJ"gY@KUT.#d^5P>S5%n+J0?2@AGUsa?%6*(6l^Q+KL"gKPCe!U![+QAMt*/K;-Lu2NV8d %pA(OW(G&hhqtqY+%E+Q".p0?u-\ji5MqL@O%>mPc"!KQ.iE?I?)oD;$`%`2:YsD7K0cR&//)e\VEi6e>65HoDIojd$2@s>M4l%96 %fg#fN0Pr=ufg(RqW:H;b`72*M0/An(`7+iHPUpDK0sttmKd:74H+(P59GXscQs+`lJ@T4"QHC"U[o3&#eSQp;$R[&B0cPqJV5WsP %%E-`tY(A3:"#749)fq10>4>"A['^O9>-J)NBko"Q[BTZDASWSM[D[#!U.d.\`o<[7\4eK<3?2ICZ("o5YLFO+OMDNqlnXr3G^h8I %aY&4F"]K.B96M1H/c8`k>77!&.6/gVY-jc>'MNU=g00>E/ac3k+BQT^L2JA9?4Mk:.YQGXM+oRU`R[XtC+29B88M5Jb_emB>)>s* %S(/BkCN5_Ffd5F?oZ*>\mU8GXpP%ND#[&2qRUK)h1PhZWT4;b/$a"ADd)%$&IN.O4q3i-bM\("4#6u'GHM>W3-1S=3-\)%="qD.. %R@3djrYqO*_Ak-^I[9f4PSeebI[3'T/iNLcp9W\g0En']q,pJIYH6Xqp9PGJ4'J3HiCgZSEDaC\'6j$C=ce$lMEAWVQb2*T;&K^Y %'A(tgC@&Ho$3EtddVJ?Nc3opoP4;p\._#FLJI-lM7^M9GCM".rmrLbc52eo$N9!M]:N3Pr(g#A4YIQl %:S,#%EIMIRB]U$F0'G%U[f5?'!-`Y)h+#@mo!>@Z'm;Fk_BG\\ima*,IKini=lf%A]]^EL)9If4^-:9O53tXDi[L;f/,ULfL<@Df)/V$@3S`GOJ#[EOrnsUhaV0c@0fX?_1go %lNjWg-'tjAHV$mE;ZA4".:UR6b;DD-5Y`uc/@EGlD[J(JjrTXaHMIfkG-1=Vq%5cR?#iG>DR;Rn#C;*;$b\g/YTNjrnYU01gqDB8 %ar>Q"U))ZnbBhfQoG2&)0un*G^\%/Wh_17mO45&=%l>HIA-_1)qrSt!aLSuNmpA.N7d.!\8T2l8@A0-5D6)A@N^oh;9Z_[F\_VFX %keY#.mgC+ao8UK#'./nlBPZ_+*Nf(^r^,!$gBl:j\Wi5*S8"XcFAPF;Q]ETf2[0EiU,M668Z&q7+cba&Jr/3q;.2CG5qhJD%sp1@ %*_WC\99].[!2=Z/&S];'C]4X;p>g;M9oFPEfTqj#NS[Nk6uC-+oeEjC'=H*L%R3lr1f<"I7`)'72*'PS%pShp57,3 %=*rFJ]O-Y4Ot1Jp$N+FCP03sVFpfqHm1CYT!X0D.iY3]L!c9-.,!q+H$5?a&.St-h$8,1$4Y4,HORsA8(ZjYDJdZ0*"JgZDaV?56 %5UFAV1smRMT]!+&LW)e:oVHgadKGp0XqW%ir1DIb\7kIfYpC22)(_KB$5?b/amYO#kd2[u>_.K"&Lk6l"W."diZqTui5-@<;3EG+ %E61\Jq#qQtPnm;="UZm^:2_>u'mNFfFOdh?1:_sULq6iMg!ZLu2/ %:NfgNYFc;H\Z1srmcAD46W"jpU)>I:rJA^;^LYPf[8e22_Oe:)p2.!WN0T#q4<.o[+Pa\f1X<5[*A%1L75*5I"`o00i7s'bm?bHA %I-5Z'I;,=mLfD]HiGiM?WcuMbS,sS-tONq6EA$b#o<:+r3/&[+D4tXc2T;mk.Z/2+37GXfefk/<$o?-^%[EiitdV@u/J2N=-Io1$&e4<1e::0'8uB&W*%R-L!gI>$(]MOl!G;e@#s %NTpAr7).kf*dt`qVX,oS#`4r!S_;QV=t7-G2,*,`/#T@obCER5m3jjBBhdPdIC&cqplba%lqV\5s2Ftq`N,X=TTW(u/ALB?:NU;` %J(iccR$,81qcr7q?22^-L[>*;QY&CqG4$)K[I/"Ho#(>P1#$-I[@_f;EBpdp+IbDXZMsJsIDDlg,d%JF<4$Q^c4Y@2]VJg(Xn2=4 %FONA)>K2k4#Q!Q9VjS*MJ\XYEEBH6V[dC;l,M]H[*o9!$14JP=OCcDVSM8;(;Z<'gTqHn^rRG5gpNHC %^t`eAne;qKa,3N@*Q".TQ'H9*Fk.pWOPMj!o9Co7jF/\;R2q:)2b0o4E=K3EBUj#*h-m>P"*iHt%5Y5LFI.H%g+8pr[&R[VqW]W) %c'PQ0-@P;d^WIO_pa6)^DmaL!nG",*RU$cpq&/f5R!BTF$E8YP,`A*A>-@Xt&Kq=!8fi!7Q"Db28<[YC/^@6u,:)H4>MAlEXQG^Y %7f).QdmtFk@8(BI\Sjm+8WdW-`(Em]1rFB,VE!o"H!r/PZCm=+(h#TIbhQ!k)duPpgFR_9e=2/qqGWPl=a]lG\m][^*_`Me1%<+\ %bMmV\#Qmjr[4J]`MWNO=Wb&:Q7EO)cNj=aM/^)fFPd"=l;+2WC7^p4(E7UH6AC[t,G)*G>=l.HEGc;u>q1qhI]P:Rqig1IF>/L#l %bV;)Y#[hjU.T-;>Ebfe@\QTd2`hajoYW`)Q'Xr1H]inHFXSl&Dg)CIW_\V3,Q,iGit>eciK_U&+Y %\ph'_?7/@pcW.d2Z7EpgFeNVKlo#qXM6!%P,/R88RLMkCBfDea*Jo?R_IO8F_0YX#mU=pD)bj?hiJsUg"B3Mh#3;+__+VB:g0U2; %"Y$r43YF"8>mq53SW6q=`2j,=I(])jrb>S4 %(1BRP@T#jdSh7au$*TYkbpeLQQ;pne$rY;a=UtHX6+*f%V^/fV<`)T)S=j%$S_9K=GdVA+>b@[(=`d_3\ZFk,=k:m=AC[t4nR*WQ %=r+llikb\_X(B]D6865!6odDjETeU!?ES#9?2 %-FbRSeZuCM*A+J?O(d(LAo%4L=Y78^>tXEGrLo6P0%G[jr=WEgS#[LnXYI]-K7DOTHTT\3>*&EYJ[m#PqqgC2YC8>qP%8qoBt.tr %JJ6mMDO#>SAL=t##MTFVB"P8&4ChRpgj`O>rtejM$SVrI6N;;1rYo$PiJk8A[oHIRX6e@?HEdt7kjMR70MUl<%ene\Pm9E45P*`Z %hH6ELh>-k04`Y;g*Ko'd/&>NUd9YJN`HG7nH%0MUFI0C'c:iY;fNHVJ^S^;c=X"Fg%"JRL>,)*> %i&c*DZ`7Yg-"e"&\kSP!=t=\q[+rWu_$kR]*"Ucb=H5oU4Hr*9[>O:&:7gT.Ti66ETj:H"Q5#SbnW4UWJ6..rLkip!#IsVmLkioj %]f:@2r,Z]g>)Zmq/HkRi9\"J[m?=[OY9.-#A24U+82u@X@ZIh3qdj68D'pj$W<_=c8Aml)^r(X0$%2F'f.+s0&#ZbOs0g(mCR(Gn %W;^Y!(#:?$Z]P.?.f6\Tp.r*=&jGs4%X$fUmbtCNB,[C2+g&%.>1gFF**2n8I]KR+%^[@)J&+"i9r0q-@65m;(I&F>6*$Y+&3>i0 %#k)6f]q/jUH>,j`Hl4LTNPk+)GbM4pc&o)([baHQAYj+c/9fB?O?i)J,(]Ae-/2@qQXjbgUI-_r*f=B[Z:mca*:F&W74Eqrl[s#] %\1r3T_gWB4]rl]O]"YT]"4u:]TD."C:^C.1_;Xd]2EkmenS0Dtc[pLNC8%`*?R-H1il/2lRhnpM)tI+;LstG$-G!"hqcTSTQjRCT %WU+lg+I-m0S,@`$X'&=qTe-1$iJ(U*KsK@W6D$\aTr_mU9Nn-ka%)Fr.-m:VO]ElglX\CUO]s4Q2uOGcZ\^:4PdIbg>l*^SF&?]K %.CukMIkptU:@$g0e)0fH+%nhT/F:8rDJR8qbT_'a<1WKlr-[WZ9&RkBDK?FDZ' %nb('=&9M3n]])V#n`"ZOq3+ojIFhmB7bC$EXB0<8#S6,IL@`TXg:r#V1^ %"4-(L&Wb-273[Hm'fBdcF42oOfi&'>9"iTDQS_FY2ViGffX %hbmp>Mp_YL+iIsJqck9sGWO1@HX-?KjE.q;*nU1g\8J*@9:On$)'sQV'LR-[ls(jM6X'Za0!R=emV[VlFiE%t#m$&qdr(WcQ1Q6`Mg6?$K"sf(s::n%8I(M?mB=N*! %M>jclNLP*T9Gq#TI:A)0!iHHtI7k/@;Lqc$E5nL;IdhYkS=)!CAJ4<[d2Xi/V0HB.5b"rBb2s+ua=!sWhVUq:^FRQr&MJ3D>`^6I %)"Fmk,kEu!LTeP?*0-6SK&/FBl#f1MdZF"Hk";Gt&V2j\5=K1p'\5:IAk@hmF8.1^bGAI> %A.p<% %RRB(l3I;Ps]aqQK-9Tm=dFFIub]Q/FUJue1Wek$I,Z1SWR5q(]`C6c9I'M=$WrJ/6Auimi?]6d5'c<_J@Tu6bMK-E([9cTl$0a>s %9QfBH*J@4pJMSJs8qiieJRa/uK^fKIM&Q!_[CC%[/(8jb9][iZ^oq9FnM$a%)>"Rsk"!-=-Y;dA2AB0;N/oJ1 %JIblVE@b3@(A;K*aDHH-d:#Sc.^cYpPL45!pYK'HirZFHo6i3ok-qFNPt*2)AZXOE83%_S@teI@j48rCG^*DeaJ,fRj2ob.%6tco %0A2O=nMh;crfYs!(RJXJl7XT$`&/@j0A.5D+DTgVcA+_cjAS8*%pXQfX+N8rsN!45Q==G$R?;Yt] %IXLuqA.oZV^2]o1&ErhFC.B;kG'i&]QVl1O1q,_^0+3Ero:][gq!g;@uW0a#p`_86cJn0B/aY9ZK-gfrQl>[9u"nK]eo$,FgR)CS*(DSXDW1NL3 %*K,Ca5,bBt*S$nolF@UiG>JgIDTk>pJ$UgBl.eb6nOn))>_dZ>*q[0@5DVOd(,`#q1F2Bc]b>%TIr5!eB`5E'hO;UiD'8491"%0,gXmiN<%j3V_uK8CpuqhCC_NL;W#!B;+C!&$D0r9l8[emnU.nn'EjNHm2A14J&GQJhiH9 %Af_K\Q`u=ZTPH`ElZ1SDQYSa*jV%E+K4jc9duEp7l_cbW73Md?a#usngsr[L>,R?WmdERbP>cCoC++a9lP4MOM;&_/QY76Srukl.-gAM:B*_KG4qj4SUd84D">n`*mo]1*-kp, %Vp!>2IdPpk`G45fGia_TcXBqpEbdo6$lfn,]?nu8;^Y,`TAHRYGlEbge[hrIuDj;*/-c>TJkcMf9P`0]rE`:fLkEZ&+:m4F5'8.7,a45Ok2`jE>s%44:),Xa=56I;.c'H>p!+U#][TdUIps6t-(@FKp>AdduqBt9US:p9*YbR+r@3Ep/\/\TVe6ND'ICuX\G0scRI %29tT0nS^1uC_(["n=Mbi@V6_.*MoF^_DO#_Q8$:p8F)$G(c>R<>"l]2h#[h\CLHalYQn[m?S7^3^jtAL&eKU[V"pERna:2"_D>Rj %%6!1%]8.]Gcj'tHE`\%[7pYl^bAi#gP2qL#9?[BUL\\3.[DWIbGPnh,@u`HXNPSPNbQJnFM*K"a!)n^UYqS>X=_jSZA3H4:_qMjahtl."Uei`RkM%>bIKY8`kT[4]grq\+.h5<&,EY8BD:&&r5;GANrO+ %ci]1i,40WJ/>sUl"&B^kM]6a&U-BSTT;mk.Z/0,);ODc;U^'A1^dr6q-kD:!JD#!l69MKfB,gC8c)2NIM`bo'n\AfJ(qO(A4gf"p5oGjWFgCmE=T(pcM[\J'i;NQfWJsJmgmYs.UYAV7_#FO<0EI7TkCrSB3+]L=h]k'WOrr<$4tV4 %>3FnoTQ/XVVTX*f&fd%&l%27bPu_mQd)i'/iodTd#OCSa?>XB-;jX=+>]u:pZ?!-H\EkKi"`"rX>]t=O:E]Qg&H1df3CL[_!]+,, %D]H[p;YAmDqdcc-lc0fXmg.0[_:-gW&YrsKbj1GdrCPD)/p+i^&dOV2\kF[k4C'?^dtP2s!![e[T;AJ[%/,@B0'?N^_I/GlB:5>[ %YbNMacb^,6+c_j*57?Y:=dlTrdBUFj1&WZHjU#eD9($@4$Z;U5;LI!Zunaj@gt1&Y**;MK`E_Koe8qmApY)c_YGF %Dp8kE$^)sOh,ir_Y!KL"gmG_;RI!4Sr/*;UAKR%X4A9H!3+>.CX,A7R9%3VUCiM)Ol\bhG-ap;p(;P6*.gpNI+p%"dXXlmM%''_o %F'6W*6uaidX?0!b`s[6F8?jZiK"hY1WXfZ*N*_&pB`qEh!LQ"u]8#u0QMCW+'pm4)* %Rljhn-)0>?P,M-m%]pi6&`Gl*O#/%C\gndJ4I$2eqE=Kl^)!/>.?%Tf>$e?"iAHRjOlc8q'"Oa8Os(Or\'!kVsj`tIEAO]nC,J.CR(`RD0i'6@>>SU;j$?i_ll?6R- %]5b)?YPlVU+*@V>5F_N4::h/(TB3et2@5Qg&K_NH>gCY\Ys2WG`LQ4P!%/]MppGhTo5nOVF*O-hmFR?.NgqjcO.&nro %6^Zq%:1s)jOu;]LPt@Gu0\@Pb.4Hd1"7IjT,CShBrG:)5*gg:p>C)u#N-CWqYE[,JGI_lXlF4n@SX6eYrGi*VU^l6-mhW(lBrjSH %1B$DLQCe\rkP"ZM5MWGQl9YbMlA@NhT^q#D=9(,;@b/+E:E&_"jP*Alos+0j9N]-A)a7*$6=9M?g@.7KLl9]mY/`?hD!XZ+22o^L'q11GQSpQI"7qOd&%Z<+0e %h+sc^6&r(!Pme+IVX]r0uB=i2V1n4sXS9rFom]Gft_$2c9h7;q,;rqK:; %)nOqYD^VZpV3elF$bZQVfRN,p_W_MVkRK_u1-kK9bm=i6;B^?'Tr4h+U8MArH;67`oWSW(&r-L^2aM9O0!Mfn2XONN@A0Tt[!(WH._"#RSJ0Z7C*!4%T467ZgB4VCZJjt"BUQCL6$2GT %k+/mNMXKVtnAPP$o42H sn1D7XPdr$efn7?0M2m3j(L5(0f$_"e@naiQXqEjhBfdJG-T1AMkqC0kfH%_aon!=mh4Q;=TlqmM' %NZc0i'N@sCINB)&pdXhUPKDX6=%\YNH0C#9^Y;IPUW3*op;"Q$0A%^8Bba_$?_&<)gK\POMjKpABPO,i7R$)I^9XZf%h8F4QojdH %a1,4_%;p.49dPB1n>[5PkA5CReTce.j7:X&_=^c37RqhhcSkFDN.1RX=uI:SfkE2L[kuXMh!NF#QF6/#`p^?S_2^b'_`"'Op08Ji %&Fr.8aZQ%\ke6FNK*N"Z30*2cT#o$*Q'.Vu(Hsmh?2/];"j5iKlGP)W(`s8D]^Z;RXF*-!9gZp2jl=2S-0Uf(=7A[BeeH[5@$=F' %MnNA2L.#>OY:KVsZ%?ak:0_B7YLC9>[=T2.)fSHIbR.[X%FFB,D?[55">8A(_Hd8cQjnB( %qmI/U-q0[]0np>-oLc7DSa_g')+od$1_.7n,o]HYn]@lj`Tp7V.S-]"[GUl]7Hp^h6chna8MuaZ)3\:@C[YNMXl+?ZqiVC7pl7qJ %i0D*2%"a[1;HRZ;YN$p#Xl'ZZP/LDjio?`_\D.Et=^I9#Jeuo-9T99+3".j[eY:U#%sT)=UqV,.+p.iE*dCK>NXPbJfbMQGpehnJ?3nZMAT>])l( %R!7ZlqOj)dENeGK=#N2\gagR[)B<9UVhf^?GlMCkPTl8P5A$gL_WSsk;FGJ%H-#%@N@_&WQi--1(m)gfBi%cSmCOXj%/jY@g36*m,uF%<-'+NOMT"836QW.9XJXT][DBg4:sRWJs2Eei6sfgC'HRM"*Um7t5uAgW_bpoO'k+!F %fiC2@r@m!+4b@YT_Igb@[M$*H'at<0A`N\`o&S:R;\W`G5c\8]t!cu;X]K]n:,h]ZFS.P.eE3-,;h\IFUS58a%LfD5fMo, %nU"M[mg$@-YXu>sF1M'//kFRb\m5.SQSRfGm9KYiX2Y(6((6iqpb"t/`i&G\c.'TM&uM0uLoE9%IF3Jk$X?Q.K7d9PiVpuPJlICj %qK@I6,.dIScTN_WjOu!I]!,W6c7dQ1rF@;*ft&fmh(2Tdm"oQPfNg!u;A48M2(b^VuU^>!RC]R*bsp\qI\?%)_KL.(GB3b(5toS:/Yi'/%RGn?1-TC3.YtUdFd%jBaV:!\"VKW=ZSXEhj<`/"1\^^E+YSC))6dr[ %6='_i)-U;KKtIO\1NZoS6='_113CNf6='_113['KHSCR?RGD9fUt*C3200Bc=KA.!`GR<5;?O'gLfP1"PJO7P'"96kaX@S,(MT*# %k/%p5MCKKWrnk\N@'Ia,ZV)XlS8U_OO\J=9aHD)9:)Bg-TK0I&bg_/2TXhaW2$l)UDNeLi0-"Z^9,m,VqqWMANAp_M:S`\T7GT0T %.pLH*[dLVe]Qu17jLd+j![eMpH0:PXeE5L]rK*bPf1K,Z]Ue^CVf9gQDl`A0CA,%);J4F2$G`$]WRWTWII/U[,50`=D62kY#\$S, %"!N$M^E,@F88[0fG:YO&bTT>dbT#r4ifLtqfb=i?XR>CQpV'^5;KtBF^E_.k8sLUH)_,7T$)h2W9/qp>>f6AtS"j)4UJ)_Fgu^"3;P9V1YZNi#bu&(3YNe6; %G?K9fd!'3faja_3g'4Vj3*_n;Jmf2*oUu %b'`k*8@SA\WpuFUnY`<(>#k%Aa88C4XH'5Y%C8Y#[9aV8eKE,)pkH*_?N2ER"20XbPEA9nQcD%oSG0n_Y9EBJ%Q9<7b$4k[fG>di %R"+Bl5+crt3)O]7:]Kr[-E]X`Bdqf(qt`.tqI'R+VhX'GH7c7+eSa[QjYM:a%"4?"-,PO`:No#iL)3cm,P2?c\$Y\i=UbZ(SaD:u %T/o,#^I>26UuuAO87RW[n?='>SA1*VDDT$A1;)g2,40WBBhpnO$Y=SQ!r`[Uc-8?[Yr%(shlbB'3%-"cG&W7de9,-5*;?/.lCe5Q %_:qH>a2'*O^P#EB`(2\*eJCp8&0oFnB-`kU0d4fgmEA9hcf+#iMbS%N;pNk&LXRLK5m+_MXs('_'NH4+OB>gCUF:7I&M5'sI7I$#1;d,N7&iN"5=nR\7>`+LWEM_FBaTou@nQZ]#6qNBjIpp**7b^%CA/\\;,^A,8B[.n67T53A9%9*)qb%W?_1&sF\ %3smP3%9*XIeL.NLfD\6)?GTS)$\"qV;W#8^?[,Y0.eVVhfZ^ftYAE2!A*m:?dOV]eVq,2A*6md)^&0(hm\6[5?[b5-mP:6CF)s1g %Ktka7R2e'>"WM)c?a$ZtnA`Uh%JJ[a!ibtJr;[l4g$d^FT"llVSL?PSQGp#kI(q'[n.<&a9lt%p!?Q!d_fs"RP_]"I0W;Ya/3;4; %,e/PcY@qC7#k@#??DJar-,,>Vilh(sHS\^>`0X8GJ]f9(I/0QSqMrZ/?eOMr[JUdbm.Y"9+55^(HXc.mWEmg.a>j/V+i4mRO^pejbduFcX@0DAh6HJ*=qo6 %;W;$AL>'\aVNEc__auqL0$VVi5XaBXYr"92PTo*nM5?X-=\R!.%\@d=;%Z14?GqZoKY;=KeVnjG3fg.lE%3&]fF+2]7OmEl*>]sWC9@UfUjiJL3*._(,iHP;]&:7T!H@!r?0I\-"*!5:>=Mh(Q4mqo5h %*``WTCPo)0E>HA;i5-HH4>W;?h%JLI/IHFtjTp:'L]K85=;u2lFM!ie*d4o1ZWL+YE-.gB$mnc)ZiMNi0m`R/RZ+Vd3^3r`0n]@7 %Uh!)3-j6]J-[N1OKaf`l98<:+eA^XO<-M;SGEj?M/>l[*$Y]Ui]aHa&#+pRhhY)mA,O:O0&k< %U^C_jh*Y2,K5H/Lg?=TQWnb2N^Y>'.<^:H56WHElA]=0jqV.>/[k6oa>Lq]?XFFM[(4)[el1@1!5[Q(X4C[V$[Q9.02%m5JW]@Y, %#`Zb9,7Qhb`3=0:5$!!HAg/l`H>B:P:NbD=-IEQZ'"6)BbDCcbCnrdF]HjsXi3Xf@kcgDJ#031NAM&:=VQcW-V)4LCph$XTP3.ZO %rVHf&@E'39Hfu?4>5I'#RrrsIDA%Y5N5/3:C#gE=WtC19g1X.h:b.n#dca_7S9&]\GZD/BK0;tia-[Y8B&uCL!^V\c6ToeVAZW05 %QfIu\e)V3hNXX\i)n9/2t.l]1gGss0Xo$!VMl_s1G %?ha*[]cZBmA8HrqT9mYBb,[I>/bBk"[E8EMj)hVT=ID(uJ%MI+/&gTY4Qa!Uol^0D[eIe&BCT0N=t*`(j$nP!hLSf#Qr49C&!i;\ %qYiJ-17e`j-0MT?`*"%+gDbBca.n*aYhOG?CHo!M0GDsP]B%f7G_,nLW#oF*(Bs)aKqfdPM=US[VDbXUPb04d1: %c>8_T@ON-;+J+S0\N\p8W1-49ZVdslUJ48#R>jO:/6X/=?5&cK(86;0n=^',o5M$HPX%M3U\cA]V=nL=\Vg`EJ63L(o9Bmh!@Ogr %dIh*#;$-i=4:bKQOTGRRC_WHXM@p2NpK:nhR5Q'3B/YXYX"`A$75nqS#+TO)$?q`RdPZKqhpu@'-[JiTcQM9W;\^mdh<$-g;G[NS %f@n>V-A?(t8l6HqU^2gY^]CE/Xb:6@)6UA6cXc0h-N=)qf+CTp"5ZK)Lm0b>eUsTtjkP8sIZ\D2$EYqt6.`YFGW;68#.i*F_F%B[ %#BW,qJ.t,0R3k.P#,Dru@72U,4!9f%]H5+Ve[:Un9Xe,_-#U&MG"7j8:iW>*69ADUG7dhFQL/L6Zrf_D5d[sVV`crqU17(Dr=W7' %Q@5r&L*WdZ/6d7jk88>&MQ"-(40n5%@-JK$Ni_KgW7$<^f8IDf_X2A@5q!Ynm'L8#QtU(7E/ %pfN0MXQh:ljD=,uYG4GPm^cOhYNjjCcBX3nrUO/qs)d!K;gf:RPpOAYA%&\E,U>f:Lg+"Q=8J=f'!3]e?#Z=aOB*.$df]4FQ^(R" %--7],N>=i8O(;:k$sh2c^Jbad1Me+>BV?.lZV'G@N'oo?cV[X,Z*N*6e37%G+2.\f^!jC.<;l[l>>Gb+Mu%8WjI9I_4J&VbW%UVY %$X/3[YG+I0^CBPGMQ9BbVki-"ch)dZIW2MOfd>fN!6cO$TG-&D,Am("+Wl2;?dUOYf2j(G=iMm`UmIASq?:'I"*:3&DflT:9h*&d %S^,Qg$Dm,skRi!rFB32_GsZtkpQM:X$8WCoNAs-a`G7B_/GCW`/bEr,ke4O'Jbc!$:_;iDd;5&^ %,`7'dM1Xf.5o*3J!KcA^"_:+j&-,9CQV#Sh-GIo,U`:QE>fdRbZlGd6:2#4bEeIln$\+2`em_j.*a9#o@/i%^$XLk&WZ24)?-/aT %9F?EC5&8.oQP?%]@B>^3)=2GH];!GVYg^p4^g%L.K:VF='(10##5_'`_b@DaRYab*8%>$*2\YN!b^!:Y^6OEoF_^^K1'rIVrZ>Ce %EX73hq0RBURf)bt*'THMp\rT,ld#)G %E'tm`?,&L(>t#!(!fl9Y^fGA0qfKO'd"[s;O_\@JG?bN^TOeRKq2T6AIZZOm2'K*BB3\:[%W(s$CFM"D[X?-'d(@^GfL#>Oh!ENp %/32<[6Omr.RTfK#.;N>7f@3]/%W(s0>"74Hd_M1;P'a:LU^V(M`jIGFd:6^tNW*c$)F1HLT;lkfbuX7EQSr91il$9:SY@K]_FeV/ %5FoiejTCuSiQdF4/:MN_g^VPhYFjRQ`T\QfiDS1Rip#t`HHK %ag9l:dDb6qgn\A/ef%"+]9YXRqLQ8Yu/]A@WBVk\%jMM=LXosc-8/o>">e,!Nt %^::S<\+Sj!;qSY!9-a`N_&SC_n.>I/GEsSuO<<]@+*3h97$2n?Au' %cKFeJ_Ts<&uW0aEsEhpL(XI?"D6X=O?D.Jq4ujK>[(PK=r98G&D54hDV%^6T %be7UZX:.3I&t5-&b0!O[5?^OIJX0`L11i*ZT`]IVZSKlT7\aO>@/,>;>TP6'Yk[eeQk#;96,3;spKbMr1jY*5bT+!^?YAQ/X/Wp) %5I(-*#(Fl[3q9I(F8p=CrZ^;`?84D"pda)6m!Fr>:6h+Flq' %7NkG7YYb`r["1Hn3im6fP.DE]."\7[4aO!(&r4e\Qd+A%D"nhpNDX@GI^2cW72U^lb[FjNTa7Di@AX`r0FH(%$(Ffu:Zhk5e\u*A %"jDi^[%!978j4;#=qc2*i:@T$lJaS1r&O7AX/f)8'_KR`H`59AmW)&?m4c*m/of2kd+4Q1[D,k]GkHI^ii@gZIf&V]#q%(p>Hipg %1CLdRhI?B>BH^;ZKqsT#(X2WbqIRAt^f&9+I&^R5qA1.hXh7r,d#IAcCVWePhh(T3=8+2b]A;;N %mR'%1U.&PH!T\9(LZMP5&T(%0b\d%uI0qY%bZ,`iH(X>6btUq!>G/#foUnEW^\rYN.``]UjHJp#7OLFE]l+>!sU?FE]l+>",82hV0ZMp#L#`= %LjEGpa?nL+AJ?m.M_IR/#qb4)(;aTS-tjb?ZI%mqjb4Ij+Ud7$%L"HF65DVl$4^_moZl(.qc+7Wn^`AaD_>)q,p$#`PRouFIg'ho %I2,j,ZbT.h2j,Z<-nnkT)4eXl-np"MNcX4m.54tU.;HfOaASCeCm91^jUkI"5'%8.e:WBt0dj'<*:+//M77)L"R#Os.IjV\7g]Z^ %9\R3l=2L2H;@E)0)ne_K')Km8F2D2bf_c*C)W7m8Hlmhl.81`0He6O%A8;P!",LmZfdVHf=$Utp;tZp0?u1kr03Z>k_L0+F[%$LX %MHb:gF%LiHD1/jT>P;_]LEc9k!g4Bg*[%,:`hFN:F?GrN1QG#S=EL9HDh.88PND^9H+r>c._6@\F&&64A$IL7aBaJN=KDi;XiI@Y %bXnIO>a@k=q^^Aq@@qNl].#DUE@sZh])pt0kJHIL-Q!o5K/9gR\J/(q-oB5GW5>5k##PX_ %?r!;!#Z6E8@e,)9X@u0aj':WiP\A+J=NL*]\Ur9fLXoOM5SYuQj@AXc-cBg]>KiUh$/f3"4]=pi\20%9%RAMgdNfmYM %k@:iElf+t&[):CXa>b"4?/3=\jDh?5#*pmdghK/]n5aHR1Zq7[,YDGo.IA!M_r^j,pFNRkH^V?8B89"e;\eeuCB#'kar3M?UE/NLM,_%a>GNQ(j=TKeDiq+P %Zr3(B^I>H6'NK>V(9m]jbYs\V^I>H69GY"Rr[j:u21CQ?p2B3/b$14ib&Vr?oZCYU.gm>t:mK(+C`P[]`meI2o=c0t^-.0ke>rZ$LYoG8%kEOULO)9b8 %fD^BX/gm]L9AluFoP\mKAaT?SG!PZ*&jO03/YR=ATE)_7c-_^7B-I4oEVrhcL5#=,E.S5ts!c=@RQ)AP8sU^upfVg1KiYqeA8-o5Q6=l[elE1'!m57=SGG`;K\Ib"X%K*3U`n?\E:c251VXaAiQ5Nt((f155Op$$V+\k##mSlcH)OS5!7EZ&+* %m4C\^oC31`m4DfpO_A]Zk'KK?K]'U5JC3jO1b];@5"d/KF00a(<\0+#u:Q0LiP46,/\6kt>Bb22(7#JP%LDo5#7*!`[[/mq&ULIq^'6hj.2!i1AU^3](Bm@5oU1%cg,Rpg!,Qa9d]i>Kb %iM]is2G""cOX"=LfH^p]AE5&V^SN1lEs9mI:A;-^e'UNYn*(@@+WiN(]Pro@32159V< %2mTN"jMP9\`\-_OP,#A,0i^h`lrsC"5+"qqX7XCakB`*:fd5/#Q+jb6M.Q*UD\P&eeS.`dQ-h.4m6,J%!F5XUGNi2nCCmG7R.K<- %>5r?PFCu]9o`9$/0jlDlHpWb#c@LnHEK$\[ApEIhB9hoU9l8ee3lNFZ'O*Z`QPjRCdF;f-7nE7ohl733?ONj8lp:B[IGM,ng-bMY %RdZfFVh=*P9[p?pkY^e,oJR+MeV"Zhun`)S,aj@?i+UYR!&7CP4Ielkc.Q@>@pBS2+p>FOoYG-HIkl_T^SOM)7S_<&3+7 %122K=bK&Zk9;EGg=GEJULc!#U9E"4h]HRd6^^DBND+hWDn,h=;#@6XrW#3XI)1,f:]dC=e8nVd;aJemS>+(=]ae6oC0.a[#c"Y'. %1Hs0R/W"otX*.)#>kJ4YU6P>,hhI %GZP5u?mGscg.^RR?m:UG]*Ced*q1fCH=/!'%%Vgg*Z3!"K,mCk*Z3!";cMEk=D31kGbtkSE+(m`oH%ACh);j(eB1hhEa@Se(OrSt %,kK43)jb)bq3kZJ.ae7d28:]BL(*t&fDNLeS'd$kf-PFJbBDbilFJ69G?LojW2c!Qj38NVQ_&L1JE"\lp:Bf#n&L6*6OZ: %!ggs*Y)?f$X)^c*]qG0oL@[k.^#1n/3)57)aKmV^.u.Gl0:JbKa]USFhoh4;o5hY(6Oh[8pF[G+X4aE8r\,Ft5b;>+S(,3C$HN:t %VHS-&$1;IMQO`j3b7#EJNj(`SHae:5_WacPbD1p%['G-D`I!N>a5RbY-9J:]Xk7=!A=1^Zn:nUqi2\D2RW`Q*A010HPRB\s^6(!Y %R8>uAkKhceSp`CqUUFJihmgCU00-@e0;Fe(h"d[O5&_fD\!(KZV_3fc?hE^idVQ>`VW9R1c-8&STO!U:.KRgrpZJ=T>,?$`YfhZ$ %*T2VdoUhDY0>%kK*UNR<'ccpiQs0b$E:Ls^poAB?GL*MkALK8is&[dC= %&o2jC8AM>MZ)p1]#hR50qf?"hmi!:[G`1*n.n@dbamh)u;_k_JN4Y7JCJ%(j^=AJg>uS%M;E4HAHi5SJ7igr$L%i2]h(CZ?gjW>; %[XQ=Uk65t#:s_Q*S/5uRf'PINo=XQ[$b>E4$nbcjBH_ZHCNFZbPW,rh.pcm4=5M:]?c`C%jI5\W'<,E5L$grS4Vlp7.Jh>8U#1Qn %*D`6tg*Fpg_2_tA43DuUTVs$DDldA7cNV6Ak@JUZ69koMF'cD(D*&bT5I1#aq(M@bj,]IsHOC]KPXdV2=6UMJ(F388d+O[2bm%a# %')f_&+esdLDqH`Elb`pk.V[sY)p?)(5,V#g=`n`QmaC<"=e*[k?d(*3i4"NJTS*b%UP?04L>"7qmt+Tq`E_0*p+'"kDGI53li"nj %/)&@!(@uBbmFW52X-:^4s(rhUP!Xi2gI%"[/N+cP0!t6QP"P7l^5"!GdNqu.I(VKk_UENWqflJHl,fD^O?g9tF<]G^g=6U8lMF+% %kiN.r7&$KGCSQCLX4GMNci+,un-&^EPMR3)kJ)XNGg\9DL`i^ZNns#:f+/BPO/NC7WJhidAl0:@;W3@8G#8u*WOa?H"oFTB;<@;p %annU,GOpA!:Nq45'h^csG_AmjEJQ=.#baPR?]6s2BWWm2N=[S>,Jt=#KMYNoI6i]%_LH`llhRXsMuRnNj?s9+-b3bU#_<7"5pg#k")e``fn8J$]urtdgWepmjCUc`'re)8K6[c1W22QX'koQdNL73,Zcfi>aA!F28nU[ %X/oW)%Vs'&.9@\`$Ht/;kcpG5 %!NiTeWC)C\Gj0q''Ce20=ul_2:t%Y$FN:OeNIS3Qj>ZV[ %YeN>EX?=4iIG_l5&^hT_Rd65&5l24DbIoWR5J9nZ#<1.,XbCFnBYL*XVtk4aQbK6/;"H<5jH%'gQ*EUG$FbTOJJcmj+< %pnGk=3e()@"!:BPcq?KW-8T?8XL;V-apb#*kN(F[?IMD"F^6MEQ=0ah&&sU %Jers*.-9K]B,_!JalWM_h']QJV`J#Z7jRn5MWJMOHeG=hnoF041V[Tb>)&Y,/B""29s_DGda,e&R&lCBYFhZ4$jle,=a6CQHd8$H %Jum9VFJM"Y&Ys8O3hN9A3&`e^"SD=7Z5kGQg`[[,h!b*qg_?s2=A=!>U^jM#;];qCY`; %lT`N5V"e)5;U@^Y(,\7RO*3qhX?pg%pU'^A[>/j8q.q;Q=NF2GZs9g2O@b`.hs[Pm_Y7M"rq:VE**/(A.mLL;A'#As'sFRA]9#Uc %%!Ysum6W/)116XmSsH(HB-18QnOUD_0tQHagd7W8'Vem(_(B>bNaQtP1UmTa)"QnA(B=fmoGWmUmJF[4B %F;@Uc_ONTH!aDl&bPGdgIAC.CXX*q._onDq"MGmDJNYUe'V]#,"[AbT]099s'pU8bQ$a7;eruL*%K5VMBVg3Cr]pKb_Y=dB,I]nk %9r=4HIlC_#n#lD'4ZVj^,%5Q`bmKHNF*rGhG]_qZ;+)FGmeck">It$2O*)_S[[1F89$=]%pHpN\rm_2""b?4SdZ+3] %T&X8oEc&^6"C?Xfh_PIKb/#`QuCACp)n=2,dN&?Qi.&*naF*.kJ7M1'&)m#::dd=sp %)^!KO_u+&BR4f/-%%*+b(laN=S;900T,8M%50t:%]gX#a9OT9fMjS!D$CZYcmq7Yt0plID?J1/),3B`Da4Q4<,3Ba7,I8!BM7e(& %Esu>a_8T\Gk1ENX6.]a3]F3?-\BH]!$0,ZYGqYhPk*VmK''&q8nJ;t4d@V3sPY\`EnH<12pG_d,`M:re,;K0nZnaq',;_(Q!pHMF %Xi[k1PC8p&V043'q^'\L3rClXCLkHCAB&SHOio(ec,KBWNiX`=j %8'gKD5-hnh]qTOQp`UTgKZK@ciK2YEQ=i\$d`cf%[<+p`J2j$ad)cHuH#j)XDSCULQJ?M$8,u^GKHIB$P,.:NpKaD0e?t6=g7A`I %3RSouUuR"Z`d,MSmcrIZfm_Ho`cZoK$+(*=k&F@?H@t2_ZGLp2kO.F=F %Mg%9\JsjNWEVoii1d?]%?Imh2[$Q&RmFRPk%o[\geRn'Kb2)LOJb<8^_7oNS[4&)!k6nV?kSaQp*kf_N8"IhimLH>W5'lJAS0@'A %\)fGm\?$,-a3S+FcqZUa!6"3(UI)N>hFje$33e?Fb:.d59KQ"-09=q<90]j2SjuLXP:6X.KcYb)FR7!@c>E;uUV40uhO:Lg;iCAC %Nj6fRm;Hj:cf#07HHtXWB1MLjcVOKYh7<3FeQA]FY8Ot\AlN20:a'dKBW+6WK,*A/T9D\ddYC7m2g>eL"g\I:VGPc5Jpa.,T;(&* %OmhM&8=_Fu'Nul2%OUH[OlieTNI9+A^?U-ueN!NVmk2g([%C]5t'`4Esgf>m-rZ)@Bq %N1Tt=gGd^[koeALDX":cn&A([6'qN:Z/X4Y^KuQ0;<-=X]E:rtNfrF9OB?61(AXQpO#qL%"&n9KNP]K[$/>s#/Z/_F7krY:%'rfU %)P&W(-"f-Y]0#;KNfl1;KcA\ndnt-tUD/tW*@5>V$J*>;l);TAK.c+kh*fd=9YDsIB+T=Q="F)kDclM:Mu]MWbKlE\RdY&,I_YC" %rdnaW]gOH_T!l%?X\Q:tcOB9hUZZlPV %V6*k^IIf(WfkIP.dVFW5=R(-S1R?VhlgQ3eZ#m;)Kg2:()#WcE/5sc__d@5rQOdTjrUXS[cB0*.+*rs(Grr6I)@5oOM23PbT(,7E[@&-,P$"!Q!7\<:q11FZ"gfW9PQ %#HdU;$n/[0V74!B#G7X]g3'leg-KNE`9hR4no.X]c?@gCZ0c961>AS+?JXMr):jE@_FUlC>LQC3&SA#<(&/Yj3tDj/0t1V2CT-=# %l\75Vl(mY#`O,@q@GGMLMj[t'9Y_Vi&MrDA63"L[VmA216=aXfakR?k6g,JD`gAFC+ck:W?T6Dq?%_#^]5G4\T11/+pm1qCDb@a:gT>" %Li%UFD0Z.E@fjLZ_$^V.*W8\%#OpZ>*$1CuOU3J1$eUs5j_Jqgd[f-IhM\cHB_DCgF,mK`&,!J27/uTk(u=j,*Jp0^[i2ij?:qG1 %5GcW42Kbf/.^Ss%gA)r@=KM]_G#]\aL*Ti@l74#A`^@XSpW2&XNuuW6!p5(7t`NFU2sJZiI;Hq]3*SB]C+[qXm`B=V3%iVgXJ %6d4FS4=2*=oFUW'&0(5^Hp,FG/]NA4&TKuLZ[!d0&YeA*)L2PqUt$j!ARGbuUaCW9)@$g!iU&('I, %>r,ts/1a_]eMT]iIdS7dIb2f<2fSC#o=JVsqh;)+R,9b?GGOdb"o2>XK8DWE>dFu8a>AAS1%'MMllkM0+ZAa\^)gb_(1MO*#TSu3 %Kc#5Igc`URQ!%c()m'Od,0Xa#OY+J`/]?l0kO'MUD]r`D@R?>_MAf-ad;P&)3UG4'+&6j%esLS)Dk;hC9nf3L&UA9&is(`(G0fOu %A9es%?_W&[ik1tN:=O#^H;?n#4;,G`#B'W!Lj/N'!sDt %khPN<^!g!`h($C.\aHGuNoW$16+S:k34OD6a*AJ:p[a*oh0$8gSldaAWbi"5f+0[0/,8.R%+$Dsl$ %(KG0efZ1!dYs=^]%?YX`b&UQQQ;oLim9BNWgrP!Z\91*"1I\G6/'/]hbWWZ?HkYO1Kt''GWkMXMk;CKT5Y.IhCM% %Qg<,dS[4UJW:tRD5,X`_KrijWV^4jD(>bqMYLZ$Y0qNEfOO[Nr\76u>o'Yr;Umt2OKoDO_obs %mSl1C&K"s3G@`0Ib[Z96?VJ0Gk-;`Bks:_,R-/^uD]+*-jo0Dlcu2*):EAF%V@"]b%]9_.?O`Oml/l8,m'CFXc]#X9Bg.-Pn7=]^N+Z\#KbVq= %1CqUG$4_$k,"OXX$;RPrLB30LGo$(tfi\NZ4$V2";>I3Zr(M>,7M[kp(b@=/'fN`B/2'G7YO=FG9eS`SCX][Y,&2F$/t]E1L!GUT %l,@%U_0<.YYNnphdu2'5JnHk/a^)b9m\\DgJ)fQ*(NeQ5<`@MOIj6N4XS%IL1PKq-%*^.VsDcaDoSJJu0?:je[d# %?Hbhppq)?M?48,a+dIc1oEqt$3Ed="&iWkOXr5'l!A!#_+@Co@MgdmTT?.SPb0ko5Vgf!O"X+rKXGW^oT\.@^;Yf %oI48n#QFlJmjC0dF)`IF8os%/BNmJKXJ+hUQ+a"oJpg996lI_AT%3?^88c#L5FXWdrJlN]mc38b@@/&g4e*\s2#I>a@:o#"4F],P %l1eOmST-c'6U'ZG8%dbPp)3Fa39"MN/Vui$&kBSs#pSPoQc'Ih0=t^SP4C.p&,H][8K@7UGN"-2X3cZhUA>@F8K@7%rg;#n(Z1&# %n`EP+[sXY@-B39/pHElD9B(aDh#!f7Kj5j/!E=,3,@5=8q[@b()"DA)knm!(g&5BRKbd%actm>+&R#Su$b\&ZKbf800A&#fY%0hl20&VE %i`Rk(kX-ER/r0B*75ZU)\6@,+*iOT]Z:Ql"L\ %6_F:#!I1&+'?1t1`-jb38B&(H6epW,'8UWEL:A3#1$:Q0a"oJ7l;$nCYQl*JT$[XQ<7FJ.N#jr'cl+.E1O@u@d; %(`jBDWTOQVN#j]d^%Z(O4'ZaEIn`Be%%biKBB72`ZJufcf==IgP`9>JLcN[WPE0AK^_t0kc]!*<`rhYUW9>@"b/?)^i/DV$7t>5_ %+WQBu)-?\3nXt>A3I&QYrQ'KcOoM3TaJ&*^@e4%A]iPMb7aKWP@RA5T1O@u:(-)*Mt1iu3i1$Y%."+_r)!T$cTRi>GttGXgg@U_'-FFREn)]6O;`F0296TTSB_+EJiQ!f]$dL=VZR-dYEUB?"8M>Od2GIg`Q6ucNI>?8:RCj=*J^Fgq(8*H!HqT]tZtcK_VIe9#e$2tgQH2'#uMTiI^!9h/9,5"$E/9h/9, %n:Z?]7'KH7imN,H@2c@FDWP*gNJ0UJ1r1X-HnTL+,u"ZW]R$&OVg"JAl-f;gX/*$J\;?sFUh`mm-5doY-2h8+[c31Ht<0W/L4dnQ,&=me8n+Qj_p!^W' %N/rL*\)Mer:amJ1N"8a4JWu5`cdhniCUj#J*KobDjs]dK.uLK]o1./-j7`qBZJsJ9fWjF8<^GQZPI_+,UV+a,?WS,5.m@O`YH./: %$(l^cM#6=8,!jg\`d5j.bE>0NMHnEc:^U]H[es'CpF3R$%#+Xc:a25Hc]>.l[j6\cq6(_f^,C?Ubuct7Tc[2M):0f5!.33&Z> %(./25LSGdAO6huo^M0_A#NmU/@qNM"Oe[kr/sEiXn%C8D=.sgar(?HD.`:t@@>RRLGW7aXiCYH(6E^eqjkOV1]LVF0B!nc!]S&A@ %:FC6#M6pI8@p_-LQP?fR"2'PX[Q[Lje^*F'(k<>Y:Z%mSai5`j9mueEDEBEW@Lj7@/)VH`hS`=K-fA$a:BFiYd,Z:*K^'jP'\<^sFQ`\Idr<6\5`a=Q@(0LQ$B$+CG< %p[.!'l0LnurdW*CGq%"kG7NK!iFd%1,RW/>OQJRYl.r/9RF]BqeiD@L6b7XZ23Le1-^"`kM6p*RPo0ur:UD@'MWu!Mo\M(qoL,1> %#lA+o%R/i/TqVnB'B);1]kl0KZLH^p#@MYh.50lE:M47TD/gq;_FtJ0=29cEOE#2*fVpGd`6%-r=X4jEG* %V]7trP3IbCVR(SM:AF %B;b=j[>,*"&Bc>t#>@;X?p/n2*r9[t[nM@!*.Lr\jNL-?#]#&eKW[$;_Vs4Q6Fg>>17m^"YTcT4W-0b%iHT>Wu %@3V?lg-7*`#8uNQ(LN(E:li[ZKs=O,Y3-)MJf]396k^C/a?t1s7h?L/a?s(I6kC1,KE]bIiJ\/!JU5+s/.@4Dc+lOd],Sj[n!IK%S3`XhAY&aD+=)B`EN,XOYU8tnU2,XFTO]D,bs,XOZ@^$gaLO9kN0]@$rM+VEu?j@LGpLIA(r8NA#( %4XL)Y?#(nF:7l-YO%YH:-]`lmK*!R50hV.V0[oh1]=@Y0EC9SX^+mgjCh8*W@q:f-DTC//O]`m<4@rUC= %0T]NBK.G%"EX`-(p(f19Oogn]Yd]-N_99[X\$rU$@lLorp=?W)F2OGq@PbOlln.[ElERh2>_N01l]4aKKsA,,:87Qhd_-FbHoJCF %`LpR?;!S'5rPE/cKs\>I>q%`*8@#]1<'Zng("1rj>r]Y4EJAP7n/5ISmB+J?DQ:P7Z+&X21`5R2MqZ*]E)H#)h<\(ON)m_1cO3Xl %/\L1Q"skCb*\=f@b`73?`D<1u]ALpKm?;4f#FuN3_b>PG#5#bmT1*L'VS_8$%4Ff^hnT]BXRfSfP!U1OfY[!q^,K5_O_W@24'MK) %9]qkkqZ#Bg9V0Q;BOPLjham^P/^0cljju-]?(cO)IkW>i7RQ?Tjl/*s>2$Q*B#!N?mE;ot0)Eo)4Ue+OQ_qNA>/U9uS6U$AfF4oCu` %WpgOcOeu8HX!bTZK)8nCs-]=1EfZAtQrWc-+;%[hs#I-#o$Q"^B&W0X+Pa4*cEC`#! %2QA_^GiH)r1N1;O>(BlIRW7U*:8eAJMG-]@GVdY'p967ErQMe==?P+t\(dZLh9hmXjgI[W#i3mc._@j4e/\u4)S,7_:7pYsPAm]# %-)s%i[Sp/YlAh\-?t)[0\cZfY&;rcfj_\in?B*-DO7nAVcQniRHh/Eq]/pp;XDOGK,YQcM %A6nZrV/K"/4N#@&^^gae=+loG/-,UQq_j;H+2K5HL)`"0han5d`r3716+LSI=slgu+MkYBlqIaGD8p>1_4!UdZl,n^a4'o$hMf>l %ps@K%?8Ja.>&TSJ37tVK5A`kIisr@j8'gL_@EVRI8nhlW?M->G38%o6I^)!k_NS6F2$trjpR]6BNk`2BZH!:_XSKmVkLr;unQP`h %pTWk9]U-%lo8U>I;+oZ-X:-oGLj-#W0uqX2,_[3kZugT(M0#n.rCJuiE'=)?I5QNo9qT4\Y]Z;cHW9LAN2jM6%QPGKYL.HYfk9*/ %8*3WKr435J80[=OZZR"s.imGW,sZbB`\K,oN@qEE`"h.>$6u`n7ZUPS=jp0Znqp(F_>ApZ?F_HpXQ%CUb/>U0\AXZ,L6PbEiX4pB %ApJOl:_%31R$XNn %obGDB'W_)10AkARM>b'7jn@#!WE31b99g8*^X:_qJ+gU^_oCGXl#N]mfiYFP,qD4SGG!E#\oh6Q\S^c4#ga*b5bjHp$j$=b6@P<( %jo!I9Y!=4XmtZOEB^(O\AlWD1Wk!4OAoJH<9J6TML<5X,VAB_!(3rjsSq!.^]s``6@."]E79$W5%IB4`Mr0Pa2##Q!KY8M(`GWGN %i"bn#+,i$:,SO7<1`82H%l29]W.i_f1-X'ucTq=\pbL"8)X0C"CLLJI:*j[9@E_`IWg\!M11ZbQ1gb%ABi.d?l)"mNl-oH`:/j]8P1]/Do#3 %hWENGqc:eYT@R*9bOtOn<$Upsc*ui$d*lmE>(eg;LqQt$r4;J6@?(fB549a9ru;u(mrM:1n^"I#*@nuPgB!.`cVMB4SR,V45!K2m %I2?c25!K5.Ch/G('B5hG_fRI`#G3(O!pk#8%R*)\+*t#53V`N>&;*?ea2-rZKQu\i!go)4[urBk`98&tj5BN-n-.6m*#/=DFufC& %`/4j=5:r^?6I%1RUuMX?p;Os(+oW2Rn_Q^AQk6bX6_NL#0d0*X\N'BJA)7+?Oc9ZE,"s?;eeoeU7$LBP'dbUXUIlm0qNVY$69r4R %Pt\Qe1F#1"9et*[V_/i:FQmMTX8]kBG/j:O[j>##XlL\Kj?K %5/1k;qLt8gcgR==>S8[pTAML.%LFcnTAML6-A9HZc#@t?F7;]kh;eLXEP%R,hecu?X","iU?8cU?gZ&0l1JZ^l`a2*c[:Br6()hlXY3TKb<[8TiDH`&<`=BLR%Z6=XYAZ4L3L%U*9iKGL_C<`J^Ve!G6Z<9!(OInHT!*6IASInDD-&_6&t^+Ojl %dE*-/e;ZcKe?h>_ %O2?:hMZcR %-?athWS-5ofpe=7jZU%'r":c?orp:1!VHRPA!,[4-`$tXAF^QU@n^5ukoQ&&#/ENZ*FP&99" %o7!mPghijiNss#_E0&BRp:/uuV+OC]QgLAn3UD0c<%kgI=*OOd:DEcnQd+AQ1OkFS6VW_alLDfi.q`d\lT+fL!AkT_eL#$pP4[G)o,6ac=q:Xf7C6i_0`8cmpE,=lWXqX3KJr%X4R4uJgZ#bP5D'D?se,i3W,8(b`W %Cm54g;=#eS5-]+U6WVKBkB@u/9 %;fA\R\q@dddnNQqIOT`2hd83#sBlb %#El?11=62B)W"k4%MS<[`gipW^:7rqs/Oms=-A>#"*Li"n'=o+*bi[Gc>2b[-?kAm_[gNN7E$b(%kQPGmoeeSakcVV&Uh[6G3oO< %Te#N;aas-Oe%'(tkue\lhWLBUDEJ_t5\dCo92c97M5KPE&ksl\K@c[?]Df"/hs371dRq8[Cgrfdob[I1HMT8$e\noDhe'@B"No`U %(AdUd@<_Q#DIA-G+t@I.2*-S+b0h.Y#8#Um`Mqh:gbD(QN#V5QO;#N]&,]'P6c?ARW"]2<%5*CDo@a8l>E5k`"mn&QFY! %>0A.k'W#D4UfE:]\IE>tE-<1(Dem(1S&]>t(4Z\W2U?$2W0,_L*j\RkdHrb6(::ouD$MMJ3?hmIbT(LG/$ko0C1`1Dk3%sX'`l$k %Gn=bcS"]WsBqDjrK]=$(K$uAjqRUC\,rbBs@Hs3UGo;+:IdsaMK]A?V)DbT9N)CR!D$.@I1HK9t^FitG:C]VbB8SSR:9/hXIA43c %eL!n'1e$S=ZI:Ys&W)LEOJmel<-$Sb%IVANDRK)D+P^Xff?"XP_>! %OgH.qoZEO(Vd"de%3oEs4AntFd3"%LV2RubqAf8PjXf"9lit+alY1t5&`[?q- %S#Kd@1)CK>Y-CeoA1f"1Za5+TIH1(d&l7]:T(+H>?)icseGV@VJEa((\D$Ztr_qqHI.Iq(LU2;N40t$tcDO[<]?Z<4:@%)cYg&0' %o(^d7-N%d-HXAkD#O)=`#J!nqad(jdWAs+N[Q5cq,I=aY/!mju?^G>6>@qrf["&h"Mm(aAna:Ds#\L,1$`Qr#Gk7f&>TC.-PtK^fN5drm4sstFdaYc(-tCSsi3%/*0EpL'fj0btk1mRVYgGe+BLjH&2Hh?9 %W.lQCe+q(H+s;%i_%QS<bWW'RYrCA0(kuPZ],fC%2^U(7uYj$=Y&gOlHKe=K1El-]5HbJ7DF)J(>sWRgS^F]h2fiCq0);[VKjD75ABq: %r*[FVS'Z4-gk[]^JFQ;&A"8)\G0iYT1WQXb6Vh=>]6a4R1mF0aAXh^iKd/D2Q*)q %NGjOj9+67b,MDjgZqM?$MllD4aq+lF_s8:GBQ'.-\_-F)bfqa!m4"D=Rs>k1_(VVThaVq$R9?6mT*69uF?G1k9c?2Wf.RY8=4(HC %HFOJ"BqAKEI?_>IQuh$+5$dV7Zsfh=e-:71%J4B7CucQ4]5+4iZgfZ6+ %hne<6I@t6_6Yus#\b\QAYtT=a4dOd#DfGB#HM7.^)F6:*6E/B]kk+j6HdN.UXZ4105'IOgP[tU1*KmrLE2;qEXG6R:)LGHlo;L:\J]0Ps]R!d5)DejFm!EE?f-2:h)0335V>_\Si@* %:_>ZgO[>&t7um#(BVEFJ1`3U>#bf7_D\6%1O[>%53S8"tMA,`uCoB(sZAeae#bf83>@mW4/>MAk6DuX<=i]eb18lq929^/4FAQHP %Ik3pb0t+B\PpoV00n)Fji@n0.0t+BPW1h5`b(;L#UekR,@jN(/N3+XM7XW?D[>>n]^A"BGFuZKeEV#M"kDSbT.B4BNMd?RE %T#lFmTFqEr[6kS++IcVAKGS1uVVqP5iHE+W5*HJjc;jAd=q='_H:)K4j-\JV\Y'!).7AE$(+2%@dC9#HY`Y""D*.7q#]hiD#>):kb'G+s'S8JjDG$QCho@AMp$4m1="-W>e\`2c-DZ_C^7&\]_kpr"H! %Y^e4M&A((KW^*EUQ%;r.panrf"8/Vp4oOTh2n5,T!MTTM*Kf%2-#>;JP+Fn+ZBH^),nARA'[#cW'eLKmid0BK>2N2D6 %EG9O85%/+%MiAr$:G_2/gr"7D)a#n?:"o=cr+Y9lAQV%=DsQ6'8]iuoLnDdQZlXL,7J,HGnquJ7iajRB/q2,%V\LrW".V4*[%a9U %Z?^>=Pe6g=.<:E%q.EV>H-Y*;7&3E@.*.j[D5Xn,,&mA/rjr[e"8SLVe$Y:V\ji`H2.]T">'REs`\8O-+;i8%pPNUV %BJQuid'%=GFk5B+EZ(>ei4][n.gd5(+$*='_&VKaPl4t'W_Drd+;kuWjP/B_+Z@^%LVF3B0F%]G_s**,O6?u6nA0//9B]UQ]1A#` %Mmuhf%*ZP\b02u_#ag61Q,+,'#g@:ua.US.G-734fpHP,!9TZaEa7D&`%lP;2`?s(V?R1>*"5pZ;d"p,3>et?E:sIO*"5r0+Kg*Y<]",ci]73k=V8i5n>g3aV5&'%XOc[=>r#!*;!m5Q^f.`c68UG?b>1WVq[t*ZF,jY7CV05^No&:jt>HA %Vi$:JO013qDk@Z;gW-dN4YA7]`o1t.HX(&>J]Hm3pUKSf=;W@i/!0qI?Nc`9h@SUMlafS1EnIaEFskF\0GYjfU9ZL6]GD,$fH/Vc %iL(Z\,"Epuo*m1TI:>K.`S"D*^#^Slo.i=.(XU=ClC!FL_.mms-P6cimU;-Jah__1.7-]<Ys0 %OR9f3XK3!&7RU/M( %<^q8\olsPUmc[Gi8\Z*+oT4CTc:eS27PD5S^?XurheJ;$]/#BOlp9JQ'"t?([q[R?^\?.'HDgWJDLI8BA1dK&l!fZCFP[aUhIT"7 %ID%/<)OCVm\'Okh>^0>(DH.bDQMIdMn!:+h(R,9L0MVb)T:hH92S,7(9>=CBX,nn@W[<8bj\Lf@tFD,rmeK@Y3:mN=G?q42YYbUnBaFV.t)=kJ$WJj#k)f]A%UUpkfq)1V%kdI<$YR`9;G4j6Vs?-8.lfW;4Hi %B]L:9FC4^T/"o%a*hE`q#OU^+ffAG7C9Z)]/3fYUg3?,c2E#,A#ctZ\i?t)k'7l.ZoV4Q$#]a>M``h4=,l5V7^"*&:\>eOi^:qc7 %3C7sod[2$2hpfp3?mTjO[:O"u#AY"aqHq)q3@l@E%mJKB^m\V$BJIRZI(tID/VYR^+t6M\?Z2[r-!K>gHWi+NN_g<(=q#Y[EPE=k %IOGeVB^K)!_@IsT#gEhbYL%$K2npZ5%p:;;%;i>YN?4L?:+t[<7T"kp_8Pe7(]*VKT%28G4tI`BE^&^)LN?t0b=iV=&OL/qhLDRt %M@_\g>AGJsU,cY[pL7?Rfr&PdN#n5.U5*!PUUP8>)iWVX*$dr8nSgPlo+?g)7.bbr/L*\Cl;!KR\(8phr`qeHjX*o1@UL@:O:]Z+ %!sTO8#RM(jY\&/S@RE52/VEC'Ao/j.(+8%?o<.G>ptI):J5 %C,QGs"MA12NAIdMID?egkLlcLEgmsj1a_ODn+^b'%1BL'(E\bS`W807Tl:u60FhUM1,L(M:+$j)Rre)3=Em"RlV*Y>ZI(\XZQ^64 %]MbJm?8=5,OFe6)]bi:RoNajZ077!a&(PmKA7cMV<]ic/0a%kKb"M6\Deg5u\ukYN^';IL4u:k,*U7+hA0dS`rBEWoB44W^i5CXE %DL$:K\s):".fK5KYAD2tLY5%UpfdOMH(/rl3dc+-e*'+Z?din)$5rRV`ni($o[;Ein:$,**("GahJ"KkDO"\R\Vq%<)a-rVa/^!K %B&uCLK"RrE]_?57l8V,_^Q^_,Ab:kOcnD'YgAO>eGP?.1e(]YU.K7@]-pBk*h\Z/qkuuI%(UB+r$Vg$b6d*AI[$k2NCSrTtQ=JU@ %,EBC$o.H&4TEeLf/,`M^YeN>V1ii9g1*<^&Y-US,EOs%&2FJA8Wh.EspBd8n5T+plg==]lU6aXtl(S,eCP1c-V5l:?dKX(FTiUXi %ZHLm:2]ods/q](9*nJpbCUqtjiQNZ\BHE+S.!1\^&'4S$R?^?dG8EVJGQ2ARJ(i(h*Xg"Ieg@RVS-e*&$;Xa*Z'#hHe2.XD`>.^T %"ks:t/MWjYJY9Z`rnA8AD4(nIj8&#)L;M]u_o2GZZ!,W1(O*"K?aUhDga*JT#3oS"Vf>Acqq5D\[IY=6"Ird1LEPshZaI_"FpAEP %a6f_?_`[k<"8XtnGSZK+bPK1uCc1+]>VGl2F"RDI+%N/oZRbAUuP]TekL8H>j+0pV.Z2[c=Q_sf]-4$n+Jiig+F@*p'h(IC"D6X)N@8B@r[QnkcHlj;A&_m %M!,M1!g`7_+p)bQQ\q/FQ^H*n"Zj3/QfJ$.Xh>/R1>ua6iO`l&gD<4QoFZ?*KB]!BQ>83hU$EY_iP9)G;7l/?,lb1]P#obl'hT/ %>g,.9&dclXQeaJ1L0Wq(e)b:HL?Fq_Sn7al(FE!MkZOe/F=F5[Sn5r9=+.<6ai0mn_NEgKkZo&XKL2>eQWG&bH*HkfW2-sa8jfaLpq3`J-IBmJiU^s@M=4R^K[9NnB_^NW7q4:#^G6lo %kanoqf+T$(&]`:EZ.DM+L79PpYSla(.!`F5IFI#FHZluk0IsKLf9!88'TK;37h*kG:J/t(`(]%8AMSK(]pH\o?/WJVVn25_/pJM( %6%1A^)L02&&aO-4iEPO_I@fo`[4ir$QSpgm#U+TdlFDlackR"P$IHe,ed_^mA=%B_H%G2!qs%fLPK,*.gu&YIEX7!P&m[%Wou.R?\6,sAaQm;d7eXY28p%>b'?1PUkdDYC6sM:L/W59.PiuQW>$Z1'"T:bsX=9n18Rm$n6'o2#UXad_'@6(3G_@eX;(/fn%+!H4=Y:!`hQ490/@eu%eAA?FKE'aL5@/XrqkL<,YEh-4n'\,>$6RgVH9R'a9OQg71 %,&H!]!n4&uB1D;*C:Ut>];1)kYE)r[0HlE_o=&l$c\^JCj7Gc-"2P-B=]:70<$>%d5obOW8s5%OE0V6P:d%@&Rbr3QW!V`rXVs/5ncB*!_+@i,\ojj#E!iA+"MH$HFGe[^^:^NL;P2jKrXo`I7 %8Bs=0H<3ulMC.MC;G/tc->+e[%(oi0cgPS&)NBj2g!fN+UI8dDHW2[2%\IeWPLq4<0b50K_Q1D)ZJIad0/ALcY`'2,Ned%hi$8)W %&q*aPjNL,4Z@[:0PR,ul,H]nCDa8q7*FT+)*[S[)E_)-Lq^<'=.ETVt;gW`m1$7:]C2mgh_ilnor#_TjOrL-O1,XqK*3I>3S(\k5`W6$09XA1(FmXqJ;r755H!E_=`h8rDmq9I+VB#\QY]>R?]n,1n'tdh?.p-"tQm %)((O1.Ts@je*U9GEM1EsQ$haFV7K9Vk6rusS\gta.-E]iEhf;P[J$g,g(-CBc/EPF$n(Bq#`H(^"jgm!lT'JM6minr+ %b4B,sQ5>W2Uqt6&/MGnG1cE&8?M8C`n8_mZbQ!$R.EJa!L_?FP?RbdXZJ?M8+G8KI)Vm]>+L=/>UD.7OrQ*q#)>[X7E<#-RbadaO %=HHs7#DMRg8!'G56DZcb&S/DjN8NRP'4cHI$?Y:!d9gE&@H`E5YGdq8mHe"HNE5PS_f;1SD>q&Q2fj=G\L[%g)(Q36'bBaLC%VbG %=1k*jP0_JGod_,*qShr@TV[.YFC-Vs?(\/YdMUk738pcZIng?tEEb`WXJd%2^%%`[qJ>Pq$Fu)5pQtCdmDI[#nX:nOM$13a\t>ip %Rk,ZM*NUA8eu<*3*MZ>@*"STgmNW?]1/Db[djEPeGfK$]R;[Mf2ZC/`=uP'mM6D5(jQoSEW40%7N!+!8d3/Dt<:_e+Ljp;m>_iWI %,1%J3IoFUGB<4(kk2CRs,T9'-<-.Nio?U:Yc`W?:rZ4V#]CL,cH%/mUF'%jaO[6/D8I1`*=$Y0/A;'mCY4.3-=Jm`u+"eZr2OM,G@g%Pp+?u7JWU0j/lf)[ %$7rmXDYm^_N',>.Cb3IC@`pdkmp)e2+9gGC_hJdt%%4D8:5l13$F8W;c!J[G@d&,B)sN86^Nq?9X>eb#\aJ.\Q?Rd"r;C0:$POZ- %kQDc;.W'9hI6)[\LPjZa*/A@#Ju2fJ&f`Z?B-9k4]RI+J1GVjL^8`_Iq`'p\m%pTDibG"H&!0j_R/s;+fBh:h!Z/#c2pccr12:NM %dX(J"nI7T)l$1459PX*o'.2;::Y/YM\BXXPkAITCQcO_jDXh<*n26]L6alcqc?Wj;k;VX:STFKb073$CHII?,_)5h!HmufnT$Q+q3:OZO*L3k0B#C5bRSOgZ#Z+!EK,2H0d>\;Gl:3'7#99i %'[MT%8N;q]^"LmcF(l??L_j5BLF\AD)Y$_BQ:?_X)q[fY\6sZNg(^D@M@6j/;-01k[Kii@M(E]ifH,EL:>F\I$+D8jgB1M6&@X"q %gOgR(E(Au?m3sLeDGM+XB<3_]A'@*06TFs@1$1mV*c:t?O"pC-.>:'$#r_ARr]!g*=R'LI3tdji2[^GG1)F`eohKNrj'=)`Q";SI %O]PDTA!u*.'qX?DLh1IN=6R:.=ls`DGqn!>atf=2aD5AG>R-JKaQk,97H[qo%9%^,oa;=;K8@8uDm! %GZVT-qAS2%_EGQ/HPN)qjkn6+e%;mk<-$r3*q)]u,9BCFS4\^`]/%feL3jZ+GD26uVL'&KGGV6UgERX*b%`csbjT%)V9d^NgTnLC %qWusM)nhuQ')Km8F!?H-PBFd+U(p35P'a:cNP)jUI:_Y]Rui2,LPDCkb/`*T.d2cI//oqSfM9%l'pf9#/%\<`l$fhGFlsJIf&/6. %ahD*?GH,("br0UcA%(e(GI+SQ>dYVq6pq3i`[jZ7.lcb7hV"BOklLa=UuUFB?dB=bM1I^YT4o$4gM$DG3E:Kq*+L0_Dh.88P@^Om %k=a\$ina#T\-W]1N/CYdEQ9-&bP*Njg(.UC@dl2%9HkMA;oX8Hr""1fTBP!rM^-2>RY,s(!t-QFIPR]5=p\PKYO!*Aa_)3AGGCe4 %$I@LLF+6)f$CTb'f'_SWN"J*5?@"S":RL)G/2/mDRJ`Ug8?+KljpT"BJdXhWmL4K %VX*r-GNjJI]@O`Ac,PhHX),4:Q.:iMRp.Y-9TYM!7kZo3IW,JN3Hfq$*1eUh4l]oEH@a@[%ukBHiG.7opeR0eo?G?U %GrVj?B=mK]34OkmSB6SkPJ5SJqtiHB!Z9Lt8L^1K4%Y`S=Fm)a\+B+Y'lu1PM+u+P)c%kAZod"]gUPt %-Tea;(NRhPj4cbBpB;=r)kH\b&JV/BVW7)JLZ3A\B]Y$DiN]p&s1NB+Uu9b)]mhVB#G,p^H%TO"3**5CFYs)r2]d>8Z)4I8fngFC %rV:Lbhp25fM!p>0bS,7Q+X^8W:'6\r@N2p-K[iKoKjpXI3/1r[2Ku>G`iETb"8Vb:cPUr[<"D'80$-e%[!#Ac8VNb%*a=OQ9gd4S %9V,2PO[H]&pm-!'d![:+Jm6H*q]Ef^1/Q#;l*L&!4&`0!n3pjS[%*N!N0iOZM9B\)SW7n=msZ]8]MOVl\baI<[6A=EbcYRG@Vr3r %RO96%&%[D^e?SgDK6@tJk]cH][Hin._&r&:j"HDOB]M2H/6lKuMT't1]/-'2^nr\5sV'&_l(duo;>7"oE'C*M9m %QP9jL6rHbkpJqMQ3B"1(pSgVGr\QEF[nS1Q8NB)0BZa$VP&c0<]LYd)P&c07*>UIO/*V%>:KS0THm.L$Hpi4(MiF.od1P@)\YLA"8V@@fVet706+KC.oXfd9$Yn#eEC#Y; %ZmWA/ie"g2Gk=[i+tgskas9B.7is3e%RCF_K".K:7n<<&'QHF"X>QV[ZK$P.od909,DZ_Ret>VlEC!B&d-0GR*Z+I%"hjQ=BSc.Q %]cS7,*dqMaEP^!iG^(QjM[T(eiK`?%8-0BpRgp-i#`iUe9dY707!NKR/ANhM,Jms2MZ&>SM=B/G1R[a[&`FH^@akPc?(ef-!pUtc %#VV^"Ag5+hnLas$n63F\QaL8kkS(j5pLn")`\b_L!X?CWJ!1.j8*:%pn.ERr%EHVs30Gnl;&Xu39\`&F+B0]9\5<53dI.,B63@G< %"X(aJ$Q-ro!"`=oe^ume_JeEfGl(=Wg$_Lb_0[gW!sT9ObOO[**=Q7O0b/X@K0RXN!e[t/'>2*GIt9b=51I@6_8#?Q^[/f#fRjG( %hKP7o7fn\6lqPS8`EMqk*N.48e@'dP+08NB(-FimDcP&c.**"ou] %+R/UiEHq\MJu"p0U.S#b?@QXRnW)'d:6:;D_Nbf\jTKQ5Y""jtAZQBN".Xo9("8O8LYoET$dUa?6KqHa=O %XG>XT+Xot)$)2(Wa+=S[oSsGP'K)]b6(Ir*E;GPTV]9&*g,io0L];+q[Ju"p0H!VaC"\C^?4Hh0N.7hSf %igt@n8O66L&9lbu9a[&(K'9j<:(!/)JcUPu&4o/c:/Fe2.6%Pi>7CjWD-:.KCVlK*4#)OkOt=PE048b3;MlYSBI=!mp5LFUfI1[_ %ZXsF/Kfrr\UWNuhd(a6c`\D %=A4&`Jieg?@Dr(g(`:8qJj7)BrgU2K0H`AL,Ig6+0dOcSn?DIN7AKKcVMs"Q/`2>)p[W8?&mPhRpr$hK %G6n\:dZGD/bK=Z:rj0c4GL>6LHt.YMc+GQ` %ITN_!Z_jSBgGL5f$Y@[I'm.FpCr3ccD"tU9(GcHW:(=O*f,ne=eP>)IfBn/p?e?Td\/=H[4M]^^]9a0O<'i\D<'M@rn'W6-clm_9 %^"gc':t)SE/f(kehFTBXqV9etqd$:@(X.hkpUaP`0)Vj\m7=M,h=VZM] %.4S?%8:pOQZO,%`Msm*A8?c>a46a3Bd`7kJNYpJ?Dp+:Im8K_k/=m*,PBRTZZu7]_(^78W:S^Su/=jMAR6-9<6i18@ %Cf7LYL@uKV8@i3^d]Q)A/,=F.=:"_i;:J,>$dW,CSodScp,XPbh3Zn%qP:#Re3*R1]*Y/G8eAQ%,h'ct3Lh2_k3#'nqo2,O*=mQ7 %aq;bV5."5ak`PI]YspCUWZ`,G/dXEtlp<*7CZpR_j9W6oM%(I[N#Yus04Bi7LIGk)MXEXX,%Ht.(O@L1)LoAURMP8'0I&*pg$qSqTL6ZVm=C69kg`T]tR>QofA`gePdS0%N/l.b2K %+Z\aZ$M21,L#ap\9amK[-[)V[jI2g#/a_6PRe[_W(oM#J`ecF\aWQF@L<\m%5in&_5n_(3H)h]CkLB"?GXGO*N[]Fr](YqkC=/E! %#TP\]$->'IS)9g!*7i3lR%17>gtm2X']5S4M\rAT9Ff7dl&F"2Ht#>1XHlWR@Hh`t6W_[g>(3?S3c]r8*mP5@"tU\>%d6WNe7\@B %rO3\4Ara!K[o)!cUL`Lr>C5&$Bs!=8PYL@Ng*l3,Z/]-^e$Km5oN(D=%Z%RpcF>#Xr\i3:c--fSXqu=Nddd6^GgFbbHFBoO[1VhZ %dZBotFn;`]h1FLQgKHt:r-&1!R[;B$o[!SFBER!(s5b;.qjb"AouN1Tggn@^8q`u*nM.Vmde1TgeS*-N'd@!\2I.tLmm7LiO-G=Y.cY*7lWGfO;Ta79 %mLtN==e;U<$$f1H[O?KX7-q'u[mb"%Hk^<<5*iE/M=o$pA.R1UQ>0C)Z$cK/X!EYV_p1=]ZKFL4h/*p2q,X\##`72TT9o%;oKhhl %e[/bY4i6I"hZXX':Ej8oaS$/gHP-p;MWtT&PDIji<"Zm'ea;@`9+jMV_7S-MlkNhB,72/OV>*7b7:;%u\2$N_Ffn.1C+%"M`)[_Uu2!'mVlV5OA"#%u+uhh&PDpm-`Bjl%W!%`Sd)?uWOgeU%=:"!AGN/Sfip?5<-1Y),,B %Yj/!/>8+J<-t`pc#fH]SHu&_c!!onZlD$H`^`jY=?LUmOWmnZS1XBF8F@#^S$J0m0Vgd7MDtTf@78i)[2&d.0]3$a %]cS9q_;K-tdt/55#ft(@![&>M/bgs7hU_@5&$=41)[l[AEd`6+2Re^!MXGG\iDUV5ZukPZSg:9h6^%H]['9>[F*cB..(0,;'?LE:2USIKWpD5rj4tZHUl!jP5=&Qju^C5!?>uEt_>6_R,/u]t;_'5oGEumeK6'%9> %DE2!#U")RkDL!BadsG8G^"PP#T5A*\$b<6fQKqO8EiDt9q`Rq_9GEE&b40!'kAI/rW.V53dk1ESeXKI?E,\f;?G6?4-P#tDL;qLR %?fI/3DlA=[*:i8%namK1i\:Aq)'K#\o#*sV2#bb+0AI+&n%J7\`quG>iI7_8rt,2%]D]08?d.>M%]_%/6f@pJ..Il$##eJJ4N-4/ %@P%N-?/rsm==H,s*.8OR,K]',pUFT?PJ#^>cfakVFi2@SS=;a?c+/^F]ZNold!61'!\itcQ0D?HNE:Bh7A55T^A"Ce@9CXeqaFJ= %h&N'JklF.?c*r"EoWC2W>".';R[./<.[8>li+#KA%/XCHARYu`NiD0'aY59ZPc/.1(1G3D3C4TARC\5AL08HU87e1!X"Z!??@G3V %8bj916&`GBg/HrH1/U<6OM-r4cV&n+M\'&CXPh[Te88=_%M)Qo(oFJ9q'cG"0S%k1e'ML378,G'p`i>HQ,B:\/aP %"HlB0jV"fHk@1K]WCCnhMtGb*9,fd1$^?TZi"8Q$o?Sgk,%]Q/,LLbJP%l7kQB4RjM;,Rg?GAIV2:6QUf@DSc@eJO4ogVYOc9)LE %DtuVf;1titn>I1QTVB%Rg/0T+o'kK>]?\SC]p.]hcD7eqM:UA[(-A()Sc*,to3,cJG.Pas(r\PrB;^NicC!8K_Ub,3G5BH]V]I-G %S\[Aas2[r*+050=fO&gu?Zu9QG.JbWS\mLP`_NF8BARDTRdsh5a[\8T9MqACg$E3P7cj)lFllC/10\$hef"6l]LV%lcHpbA2U@&Y %1TXrZjq129)1!ONas0fc1HAV(+A&EVL;=!CIp6WoN9ln.01LgKgB/Z\@'Fhek^a&,67Jq<[#lbQN2^Hu<8coTXPVdY/F]"iU*g@" %Wpb3(VOUjS9muW"k`4PcOeMX@U!QC\>#aCoa%O!/Rcf#/TpI#2eV@c[s55q@%+PSLEh0Ypqf%+!';@nfi?'(hQUju%@mYOLW'2c$ %'K'?!TB)t.+&jF\(s8,=N8<$/i%n9:S!qVW0mk3cP:F)m)0&OlPpGGXU6C=hVf:f?sO@>d(- %;r7eZn*GDDM\8P3=>ZtjgR5XE"M,W_,f)[''E)4Zh/.=M>5J.IcO(?[*0G>*cnE<^&lF(8J>6cY\Kk\&`(cJ@IXS0Nb^?eBl2W4k)N6.XD$L':gRm!.>of!;l\7)e<)r(ZI%Q8LhN>5Eo:.Op^F0%jr.&Uk1TYa=e== %U]T"/5CERW+;N9%&l't\8;4=d?q:H'?%`gu>Z/E)j5Up`>Z(TpQ]UNMG,^!*h32:K/LEu0Z+qY#'K)[gi0"G?puJ<^85]K:l(Q#s %QW,)M5;@uu/u\h4n=dc%QW.r#q]ai9FK*(>nd*eXd?9SjZ+qY#d-hTB/9"175EWF&qDR.4I^-[7'biV8Hj`^ %*C;;r8Hhch%jMk"Uk1Ul(('0>Q3uit+&4A+8VQ^5&d@I6Q3rLQNkZB[Q$S/-gZX"g7:d8CYf[HrnhsKG,dTB%A;r>8:7\MLcp.a& %I5[P'#g<+[83Cj`*'rS8lX2K)#@>CHcOg]71<;\g`GdgB&J$4qrI9BC^p(9F90DuB4HMI91BG"V,Tca.]L>uMCc(T/L^,TPO$??$ %d$'mhY24RW%7<rRIRb[#]Cj@"eQ$_DV;'c?hcmAaR?9TSpTTfGH;51*)in\hWVmM]9//pNlks]V@)Y %Ai-92p,QLZftSdoO[4,UepunGpgs8^>FX=&]nBI!Nf5fEKsEt`MH-'*qXhgk]%n`ECDsSA!9c9l:KLVhnk*? %P3.e=N:%en?fmJ%/<4UDTjOm!Cnj?u\]cKQb=PfS&+I!aW"+1/TYQ$GH.S%PpUbAT3Rd`E1tOj;/"U/^"h#a/-Hk?5mCmp1qEYYd %hXQKN.VjHMN%FVq^nB[(m]RjP;::@Kh"II"$ceDAo7-NC,+jOU^ZbiJR)"AWi!\W?$`/,Sn"XOWnR8FM-R;rjCjp,kjWA@qqT#(`_r(]Gi>PiQo.MNt*@97Zt?0(!%D+PU"f>^\pI?!>Tm_6!aaph,coi/V.Wo;'a8kE_<+'4^qCh79b=k?ub["'a>D%HRZ %D2\!l;nXY^V9.r6KD*Uh#5U8OSa:0:Y^n^E>`bi[or^,WNHJW!kG:lMX)B%]LXW&rTn6`f7P[Me<1V/>C-;t&#Hmhto^lE\F>mFc %(&bP60qJ'O[Z.35DTm;IAIl?e`^2hGqB@W&f_Dk]r#8rOU&3K7PINZ:F&mP\NG`_6GL1W'hKSO2Li9"hJ'2:mNFKHmn4* %Q1r'l(q[O]1@KW299[^9R8S6W*>6F;LQKm[`OO&7=F4GObAqWXNrCBdPH@%")3X$Jre2@V:i-`?lbDe9&%br?k!AhmDEKU18AW1- %g,:pI&,;:EW-#>c^kQSulGa1FO8`SJF`TH&ShprO9/q6>#cJ:,BjeccbuaK&H;`d&P$TgZSW+PcEYQ3tEI=^)Q5-JO2i\D+%Xs9W %2bqsSpbV=[ULh5Pd[FE^W4Ul^-+C]4^!24*J_;qN0_j\'`;NISWkfd%2pNquGAVU5AKUgnDuT<%o/XRb6e85>\7j<<.>CFQ0S;Ud %N0UhUrIl8'Ra:o]6A0&:;qmGIk@^FT8'f?!dX:10LM(0tBg,JM\MSeU9CnS*%alA8Bg*1Ai3)KCE>&iSi2gm/6*"]`gFPGVi")DL %%^5$:(CGFDYb %X_m\Zef20sV%4H7cKFM6o";;gABJ[V6C/N;).a0p:I'ZuJhYIF=BT-s4%k[3?V/2m& %n"J:qVGp9soKBQ@"&IT<9A`)E3@3B+>)s`Ylc\Xr2e]aY.st.T&*7tj.s1/K!TeK\.nlT,PuiIG$?TMV[64.9=+Ml'!D`!`^KcK- %>_TptL&WU)_BF4n%?SkL`9%"2Y(AM;kqsru0ho[LjOl_-#!^91&6GR3EX\YSrW#$#:9Hnq*Jd0@2k4-9Eu"%GFP@l7'\=qJ%83NJ %k`2bRAbtee\[3^^k0dqc,0$1YfpSepu^Vb@Jo4EebO@9LURIZc[2-(&e'BS[OT^?q=3KW^[V2N %G%2pa^Src>(./o8DAKV%4X?>JmG[_>U0HqTbD$7_kH]9bG:T3pmIp%USO'`V"o7br&Z^&7>GpNLgTU(bPS[@>'+[ERdZS(IeXhoZ %<4G\,;QMe#mt^A-rU6T/Ku[r/dnaC"Zi]Es`fh+\B*fd8K\#WM4'VTqK\ldW@^Y1YF3?!.b\+ak>5/CUdePG9>Snfp8ER8TKi(2K %=XLLHkHi\4a\68:WSmS'6"HD1,+['.B_1'o>%kB;bZJ_l>;DKf&^4nHXu*RB,_G]di2[<4@C97+_dpn$c8!@FYmtE[>bpY*5)p;1:kl>Jmq8V&3/Z[r %Q!,-+QLtG]HP`4?PO8%-`I1WGL:eM.0O&YjZ_01NpMcB:p/712f(,Zdd=U>YSaiYs'>/4&@Q>3+gY@E$9p[E-V=6>Ms- %_c]sJ2,Hm"6@teXQ6:J_B2rH0lk7N@Dd.a>t7rJfRhRuQ_& %BbuEjeMeRVr-Iu@3^9uGA_A,Ri*Fl28(CC$7#U!",P8>6bPCUtbIdHM>%$Cf7;6DtHj'H5%8?C7UAmp5@YqLD*)#XgQf5T@/J:g8 %Xd.iIDkifgkdu2,r`.?LXfm2:n>t,meh9r[i6PO'ofVMRYsf"H&YCnb.r %_'ur1_HAm]heN,`<8eR[tqd8J56`]b3[Ed%[fi%8+q]oeWk)G^XEn.\d %K3ObN`MBlEG!9AVbi_lT=0`op3VQP)?8@9'alC>/'Z`YRSS97X@Lm+hSRbTkkR([q/RXgm,;Yp&5B#U=J[A]^'tp\8_JBL0TluAfTZ4't8YX48ATi=SF)K %#?1J/MUsQYX5rW(6W+X_2IDbRCHnqkrcjoBEXJ&3\V'X&q%`3&4fi"9Q@r58gARJ,)qB.H!K93i)sWf/>'055 %HQBD0(@K9cKsO'fZhLF#]"3s."KrRH1;+[/X>"^CB$q?N7Z`RdR2!$k"G]nRZJRicISa@0u=YpqK-Rb,t8_/Lp"lK@"Ss=+>ap)>%3.LQh:eM %8(_50rhqVdf2Im^7eSouN^!;^Ib6Z`msKK9>0Nk0+;2-%#&sV?WIO-qpCA(D4f>(MbXQ#PiA2M93ZE59h'c,hn_f6t2n9BjWhotS/R^Uu`k?6A9F2(PlV+Cl<,72tdTTAoP:G$dRN'fVt`Eo7&,$?NHG5G#A@ %E?ip(4P,_M085u.Z"!P+$V1qB%8;=-&h6nU/R]8\54/rE8;q(''M*:>nL92\77nT>Je-h-:ur4%(]\ddoCZArMC5'.Y`3LI_tZ4D_X4JM_r0:C<7,'A_28h%,;7-Y=Pg&>JB7"4MfSfSL1 %<][CuM$olTT* %J!cH5hr"1(SQ,%Q0ocFG3.HnTQIN$9oUSrJLfUOk:9+4F#>Z@!9Mr5rdIYj^p$17'[?%$,3U(Q]Cq]1?Pe*@/T:m[<\"s`\7<>:ik$s&/tX0>.XQ=XFtUnF0lMCHd^F7m<6c/u(!5kD %ZE&oiY"88tSB*^@m!(D5&]sJ=VYSfl7jY=P[rbbhm4EG7WP]Z;5?duTN?:5TYLS1^V9jVW;lqk6\K>i/!?P9-$U[q2*h]Q3?VGt- %?*3PGJ-E&5c!8TN0;A[lHJ39<0Y+A4WomI`K`C%l_*_!QcD1Z=oH97snh3TG>"6Y^dY%fCB?PVk8HK3c4[g %BpQ*h.]HBc@FBh.`@S@GLY_(?D%&QP;:3,te`b(m%QQ?:WBqSh7`r++4+(l=XQ]$rfF\<\/1<-#VNJ::ImZSOg"m[F#kldPP]H#h7FHUH"c.C\cnIVBica$'N%:r:5Aq:4jtRsnEB.r]Mq*hKZH_D6f*9PFG;NtrT<<*rX"F9]E+LT.BC55c',1(',uBJP(]1AS>3B&SW63F(U(7QL9P2$=Y9bF@V!\&Au<3Bd8:_W"CBC&OKAtH@<>f-D:0;f).]Y %P^R'61d>d-JH#qoOsj;-35`S\Y:g>j)3?777m@\=h>'eDBmt$g7fZ2[T1r^eq8#i)RdBj6_*Z&f*?Q<"#Pl9c*>q#I;MpFd@'2V# %![7\J\mmTI6j$)+BLKNSRklVO6+hdU]*Mg/^*IZ8Y]PXgKpd,l=?9\sD0hWmXC4H5deD[XpEA$cp:niXSFX&dp/\](dV`tt#B;"L %`YWt3VoTgWjRc!\R?>31i:S&XMR\-0KN+.5dAP@$AN!Oi\lSSS*i;'4Zd/9Oec%G2WLpsq" %P3DOrI+fI4*9-P[p[(m/8jc>hd4qRA'e=qL6LQM; %D%Fp&J'>i(V?&Gg"G0R\/%(Pq?B+XJA`b'XK[^GUAqD-l#]G#,0bX[%6MqnE+#@=Ho?\(9A!/@j#U,eAVSl/q&].QrGaJK&)l'`hnN^I\O`Wru7i-G[]&'f#c\u3$biW)CAX(3gNp#(bmoh %+&bkYNtRqBAJSIeE5\X*V;[c1bS%i"Z0?eDak^#>]:@Rm!fT=VSO's>0.jhO-U(%or:H;pX\@Pn5Bco#3QToMBa$XWjD4R39o54O %AL^VOHQp()*(mlT2=bXb\iO24b3d$n;!XCP>>SCR=BFq?0%AQ&aMS/7>#\^J1US>iB",16+)[Qgo!UYF$s)-Jk-gT%g[mKm1C[>g %N\3g-G>":='$`L(B6JA68WF?q-[Lq0\f;l"o4poaf,S5qcXT2*Y)^lN]sf[*R3OQFN`uE*99'S/K6]k=+;/2.mI;eY7"mgi`Yi9H %X$BD7KHP:<:)LKt>V,F?@_ke&a+Y9gYt$M>A557$>_P^\Sk)aoln_H"`"P*THtJt5eIBRCP<&/DR=+'Zo45#m5ef]EoAhZ2*Pos` %3Uqb9G;/Uk]@C7kc#KCWHDITT+e!Bu8!(t[4iiQ@6.l1S#f:O=jRVrubQT>BVo4)?aYE,bGtZmjguPhf4N5]c:4,7oUBTf/53XfP %kb]um1*V\>op!Dg_]#&Lb;S2pV%SLZ=9RYZNaX;W-F8ap"eImZ:QgU54ons2LgiajA%Da:\d]rl=ib=?#1B9O %mDg-Hl>rr9>YT0Gp^JcmHiqRGG6u#QQUrR$3Bl4as5Ksf %ZZ#NlE49&j\\;/Z.DFCHdXg5;Phs&e_iKtFk"9n(6ftmpr;P)fj1OE( %Nn((L153F)ac58WG!GN`H(n*7n7)0dB-l`4-T?dPqL6Ybk@no,:UANVgMa+r[''9gP\q7kaa],GU413emTDdA=g(GeM>/6H:``9Y %bkdbEaD[`'r.(?@Ld-Ln2MY7$2dNKP>c7"6IH].Z)qu<_bHnh<<1<3<&krV68#IunU>,CgR7uG:$_s_g9!btUOa9N)?%PgW6)8GL %V=2of$p8C-/q'WMAp%"[l8juOE2Tk)*2[hkBfgGH^QJ[R>lnL30UD]\3H2Jo^f$rh9$k1980uOV61CVlO"3LlQ,$"^Ot/goQ%3tf %lU%+Wc'6eF'r#;tL+7c+A!C4)HE%+rqh^N+Hu(5l*)fj9;,JY+N,IDHhNKHUKJp;V8eC6t&meNDkNQJS-$53/[Ah<@.Y7$03`k<5 %W?7*h+e,M0W=mRF1]LbZ\J"O6$+^6OiHfg1.Ui1p,[:Y_;\-VRkc#2H8C*Qo(Ba]OmO+1JpqM\L8CUm<99g&VHEIDLd'Y"%9n\X+ %-(MYe6s+gdW^Q16FAib8\J"O6$#'4d\.T&1$a4dMN'!.7%XDL3NN:LQQ'bhE5l,]5lTOZhmS>Pk1+Pu0,,kQbIsVPfO\#ta^+[RR %?dA:0Mja%7m,1#;OC,d=h6mP+GRp%2Vg_Rp>JD"j8CL%FO!&scan(]5>TrJdUUui9i!O1:$)4W>e`RU]K/JSmb)^$4&'p)r)dFNg %GXg\QLZJ"7huU0BXN?mA"8u\ei'e9o;uQZcLnWk;F"B*13-rQT+o12t"p0k7bWUk)D/#nG[c[j7B/ZXHXp55oftgI(//k,30]Y'1>=n09Q;VqCY17EOGig %AjJKm$NC)I<_:jJ?6fP6Ps6$-C)lOQ4ZaQ"C)e=8b7$&/6D4qJJb'p3C)lOQIHK?b-n>gH]=C](E^a;^]np;Vn_9Dcp$kC!f@d+# %s!8=Gmc8B2o-K&[7-Y>_HRu6gAA$pZ6$K%p`tO7VLqH:gDO^p`@h)DSmdZIqhTr8X2a3Y12=u:Te+e%\p69MQ5+-gpK'7#u>%u,N %%*,,]I*18n4dFf=,19U8]2@)TogVBho:qlOISd%TSiQla[U7Y>Y%ns>G+4:i=8LstkH>[@X?dCB_)8G1%nLXK%TigD'f9/_46V=F %2EpXX[KVXUWR(NV'UYl7e2'*'"_R1CpaK&h0_=(e4-Lm,JV%dUq,Ib1QuAZ%k.'W[8f>:Xq"YE>ij09O(Md`lo"#?^/KFg]Ml=0X^F6PE;4mhU,M< %X^&Nq!TrC`kQH25np(!O$'"Op.D>@d"o[,H&q3kZ8Mcn@4hjhN1jHOuoS/BH4Hu`+r?4Y`+mgLSPud-^([e;'crE7)>1oqXCB8cR %PP=J"en4Frj[jB`fqN>1mdu5jdUN1LJ_Y-RE1F"pSSamUjE?$$%7uE:IVq,*DeU3*U[sMor7p$M5a#>4;nSgbbXcbn'*=lg.97]S %>VA!E#:t[k8b77S>#2/kgY29blMTKU\Y\tL3h(C4U@VSc%\!O)rpY;6B %l:n$4\Fh9S/rcCi2^M]nrK#1;\-CehEXR(r[R5AWC7JMhc-uSGP^!?/#rD&TB/6s;RqLYRSU^0d]NJJ@pW2*oiV1Eba&H=nOfX3f %ms!_WPBt[!5^ucTA=iS+DcDk.gtg6*Osf-+rKIT'Eu`r>a_GU2Bs$'Kc!FUig41KG\['YIPD(Xr+$Wm#Bh-NJ>:X'O2.3.l=2m.] %glW[nEpMeuJ9,Y5SY@M)gPu"\GS-TE%`2FC>OWOZAHm:K_I5,?'g.cK_B-fF`:ap[sGod0,/IXC(gFZL'9n6=FC^:d.Sm>9=^_Y7qU%W_`$ %HfDceH7UoB)tthA/\l:#gc(a5m(i)VTms6Y9FMO!0&+BZHBhHYZ;3=(E<:j[<>%]#i-,VO/aNDL9#/"E&,`$2<'5-WgAHCF%T3SX %<@dj>^G5bj,;f"jgo#\OhTgI,TqktP6q.$D%a %J`pNn!:?VF6M.X1Z%sQLG[[Q:8oJq=WP$(LdF2=DU4qf>KHZG7-]q(o!q5dt8fi#:pEL-bJDh^u,Q0DkYWM&0lqniLh5U %PPq5%pR@4!$UbN/-_\H'';F[&<5LomE4uN>pS3H+g%&V]&3[[)r>2j9\K<+c0A(d5!R]rW@n!][KG8O(&3VS]S5(8PL`T%L)7'WH %61bR;(+DW^,P:K[d3p/a(nl_fauP8apR3:K6G([.kMV14e+X7b#n_iWFfJ[)*"k6SY@4fpRCA'LJ1#\gCQ %(i+*RpU/S8c^1cKMN;$4Q"Ulh&g#9? %H59D4Ug]qZ98)u:3Xl0sPr+1o"q)N:>Jc$h%Ea-s$]]m,@NA\&K[+(2$5IZhIX<'n'(M,(X<)CIRUK+/_"'M#G'3^\#1O^Y7 %5SiK1;RTIX2+qhlB&QET.DrR%@VQ"BIUqGh/G2a+.1F%:U*KECj^:T*8to8JWSocg*i+.@5_eX`9$t@GJEbnX&ijoG@,XQJdJOlH6+%`F2Q+2gJ>!KCsd*H\0"l.U8qO9mq5fr67E=/ %i$pFV2jCMdj'esZ>_KVfdRO-%8o];>qtQQ$,$:5iD-Y-%i4Yt(J1QlR1%]ju&!/fka']@#6T[Iik6_:DQlGJLdhN#R.&AS!M5>M? %RpZ]V8Zb;%Zlko"88Ja8D=S)dN?_?T\sXNbkH34^eceq4Xl"Oc8uYA7l.r+$/28_n0sT3`_i#H#cHp#o6Xr#rSr;O4cqRZQL&p7% %+LQO6(KnY60]oG.n26,:'&DT+9]8G;2q98u>iLY]_i*k6%nV!XP/H_X`=D7cP&CnH9?N($[bQ^V*M?]F>`dC#2s]gEW3Eg$V"Zm] %;f:G+pm#8'icM`MBU-([B)RuSYM:>U@kPkllVm`>6U@VJGn7$AG/nLR*cn2/W%3jj@Y_.qe)QtHr4LZ0d*fW<026>h^>/_c4"h@q %?E=EBiT8k.oXO$>0;^#U,EP@5%6Pbfa2buIMhTA,id#'?U"#Dj>FpOJ!>AT!7_,KD54A7.-a7DccU0"fS!Iqn=6_=YD]L)GJ$],_m6s8^V>qUq!:V`Va0?+;QkQr*U)KQ0q %d;I#<.RB"](-,!c0_$9aL5NNp8e;<)PZgD=ph=Z1$`Shc;$@Bn5&t$?Q.8"M?!XG92f)+#p %kp9:FGD>sf/"qQ?A0SUXo:&Xo3'b03_Jq95q2'&1*\\)VWUgf_:p5F-<6QXfK#kgi+<@g5Uc1!12ugSZ)gr#-?B'_PEfcS`#nF_n %[>'R,9dc%P:be;5_-E-FPCo)Pk\k#=+r+B;43MPcV0)Mp7'SA0nbV(NQ1LDl0m7jIa9HQ-c %)GS8Uq*4B)P%bbL%8p@mJ#arI&])TS&R`kRhZu4I7QL\Wlf@PV@&\Z*Yg^h%p7@m&'hFc"K]skI<8dF\G1IV>;M=_W%UB6:S.Sk& %%UB6$,IGUN;HKQEA"Bl69+'rSg.bXG[U\(B`ZD+^!rW`t]rt<$H`cK-U8[g/HrG1pW;qX3p%+dOMrtHKhFc9NFXk_tC+kR&[3FYgdSkV(fH:%i. %^4rdO#!697*ISr1+3b/s#J#On=V9pKPIdC*>jM!9PlA`=m>''r4M7iRf$GG>ps-d^6;Q.'YIkdHO1/7n>1j<<:3OeN9'kmUrV0u2 %l8P#TEq6ZB8g1RSIMlQP\rU@?YXMW5KoUV.F/P->52D7']L%OBosWtYP9$Jc"C1^r=BWG %^=S9S5"hF_Ml*]1>S@,],c\RfF$9t-%%.c4M3gb8LI-Z^5r16o5PLrB%o&aRcEYGGKB=ck>o?XScoa8Bc=HpU6gVQAXAWA>7J:pA %$W`gRfCF78'%QoNnK'#^Ae=A\":,L4[@@ZB&VT(eX&PbNY,0([Y8L9pTK@W_#u?95d(25.6dpJi%eG'.X^l(&N=?_Z.V!U]NkX(l %B!Ja%d0Graik9R1/Ytt:*;\49-i2H^2<3"`W?@#lHLZ$id%U+QGOhf0l5ZO&C[H(BM-!a$TT\Yq<$('p`*7>"%hCb<>AO,GP@+>j %9q%"F2'ij8Qfe1SI+TG(':GE:iQpYj3U[Au%Y$BlesBpN)*"@/1\U8D`4Ai`$J[Q:N-VlM".t(Wce-o_]_$Yt)I'r#rf/:?gCLRN %qX[]&Eo/Y=CDi6P_>ak9VH;l#QJn?Rs/NB\2`3eC\$S;cU6/LkgHY];C3U(p#7CuZ@C6:dP"l$V+qHh/cF,R5')#X.1:Ur>If*&7Cb,bc'^t?.O%"h1&OY#L5BTHPVaj6 %/<%&dNNa@hKW-BE>&++*a]U(ce>OdPn\t>h_X$eo2d!a_=o*j&%JhO$Q@?B@3r,+kiH)p&9]fCPASl&LNu0VW%"nBR=.eg[6\@eC %;#5n6.iEj34Ba-(*TF(D72tR69Bug5s2A0cSD*uFcHf594FSb%`o;OMUgaf3bn"pp9`BE3e$JWYdNtVsJ2#PRrkpY"Y3<*ImiVQR %A(BPG_#HNTN9/VnH0ACAX<_Ob4o+ADkl\4GCSh\$t>)S@<\*17`R,h/SW)X_iMN$X0;@N(R %]QTM*=:7]7AO!YdE')kO9;8X,)5@T:r-t&$d>GotV'Q!%OEBL*\6DF$?`ZtLTfkk)o>NKTV*;jhB"hq*^(0=0AP$OK==1c/R7oU3 %`A6t[G7&C`-@2=@@#r^N1Ph6Oht<5EqA2Q.A>3pNSeGI!Y,M@,6su%KUX)/mq"BXfU8*kHmL[YuY/s)p2oWrIE2t38@.nIni`X'U %F8Or)6Xff\TMr(krJ9f^.SUN`*I%/mR[<,>_,\s4+T+K6cVWDq.H5mbVOV.nWWgg %=BA(!?W73L@C2adRalg/(J[/icL5*D2.rd6-Eil76?0Ef5!;S`4/KVPZThR*..$8;6*r?(I+9"\4A0fGrLo25a/cWQg"GEuPOi?E %5/$q0ZOuKo;X.u0#q=&tA,8hn`_SMSCSeK%i5p>e/8\<>QfPT[gItgcf'7n`6*d0'A[fBbR-*>]\Er_iSo`qt?!?tS*-briMh&rb %0Nm/-q*im47;.0rRU=ELB\6\Vm?8-4\qdQ?`m^"o=p+2YN'`FfAm(]Y&Y_,c0fnAXd,B8ViULoU %UVl\8_a=Z^Pn("kJH`N6faghS)jocEHRY[6;Wl51_WeT=;oI4Q4)*Pg@$$'MKZ292i[a3SRn")jr-Y9HIh^<+:!),)+:$*-q=7lb %$_3_?VsadNeJ*_A)P<@M]\C6'*CE4.8tjtS"HeDNcKL4+D?FBGioFra-@O1n#KF:`/.HerD6>8HhO((X"YY%%bS)S'BT'/RQdMX- %8niPmTX1o3JZ6s3B-5cR)q\i@dKZR/]Tc:3$`T)fm\9ut_FdH([i'aprT.aB;-oNrj0tK]?q=46:Nq[UMWb[@*'g69*Ni"[q+&/F %*WZLPWj,)IMr;2ABl08i$bC-oP3Y6ZOsZOa*Lm;?kPE>7aTfu)j\'k_fB7$iiU*>(;OB&Il7U0R4s7,^fd]'mN1e.)j'M0AH[c-g %1#%RA(hkq=6J>Z-Wh_AZ6J>Z-\Bl't!MFSqQp^8iETo1VnnP77N_bfhK1_Ln^p`V\fnWO;F^/#u\1f,hlF;"9%!>h+gdQ=->ZbF7j;.JN/f[,5=l1>^ %BY(:+e:.K*:&KC,cY-M:^_U\q*G\u*pfH"XbM>C^NSZK$IsJqKp.Kfm:,i,?5PkU)gs5/f-!@f=*)BI=dpM^Q?Y]?+&gdXic$nV/ %N9Bh7pMT7l:Y-@\iPhm*)Nj)s5W1cD=(iZH.U>k-gbcQ97',=F/P(XPljVnYd/2J1B,H\tt42Ja%T[TY&+_*(LkOL]rE<2TAs^tCB+VPR(<4dFn&_hK>0L+pm2 %&N3&7\m(!gi\b>#".PiIYr1FTbmGX5)]*cCaP*r+,AC)nQ'MsKs, %EGPaS8*Fi)_?b"p!(+3Sg_S_S#Brfr\039.$pkAlgM!5lBWf.^2LndYZm"uKpLe#SjOW87P*-:Bb+ZfJI %_@:LF&8)]p_@X4nh"d#YP\:3*f1(?L?b2^o0,c!%oa=s;!(*HBf-H$&Cn4d/@@6uq+dT2)9 %k0Ugk1JA(b^/+fTo)p6C'-bC3%NnP7g:0QFZ.>mb$"@i`'E6FkCdJ3aWPX=3&k,ce6Vr.2!;YqRLcXq/KF+FI?iF@-Kh%M,bDf#N %3OI!T7u01TSIoUe4B7b&>`0J:R#kQU:k]2r:!!1\F/52@4d?@V6OWQRT#Y]frCqp5:U\1J,7,%#h%C_o3E`koTbHI^KpB!DRoQ#W %G%jrT0X!O]JuKKKQe$ZJ;]E?HDuN+/.46@W.qrU]2kIFKmlDtg\)YDlrfKM!Hk..+qoVR`-!%OFSb70QC)gEdk,"(-$;pV"NiBJN %[QRa14=$*bo[;1O4JOnl;p_5hCM=ckCqs'\:rNg?8fN# %H6>4AI%9VT^LWkLnA_>Z7-,I\J5]q!V4WJISP8m/\PXC0Hg&%m3u5CjTN0mmgZV:g&`J((U%&/1!rH9<^l[3a3.kZm?@U$\h`P/q %a0ip.ok`sG>;XlkElj\De]:eLb0VWbLc#=2UE]3>6NruZ)es&<5B\+`,tm'R10GJO<)o3[ngrn08N %E+D;c@1?__W]T=]W-eL/FM7K2\[g;:U>k=;"*bJf#FE-X@IrCm\gr2ILQ2JuT:`TGpq;,[G# %MaZTE[<^BG`%j:J\ifqGNkiP.\+t)oU+UijLGI/lX\VQ.g^[%NiOfhfS?cfdN=?V.knhoeT_K]_rPG!4GScL.IUQ6RC#m&3&X5WS %kJa3C1="A]!YHm&*nHCO*IWr"?Z%&^SJH=0BqMj=ooWOUiK_h2NS_Acs'PP1UYP?LZL%%<.F!lN#Hm`F@1,CO;Jp__XQ6f>n(W>? %Z%'Nkr9K:>kC'VaX*9jXU1Y#LSs>mE`5>P;4$.lCJgG]&"g87#>6Ir5NgC>]@ubKX=$Cj&<7sMa:jM!$e2AY;G5s!+^cs=L7rT%? %*I6m]iDbDE+8p\g?PjN?Lq>12KCcDl-f_6f*R+'DNINHcHnSGQ[KCt/+mlau(4k?b?e2u>qYGh/QfU#^1:];bF8S(9U=8p/G-R1< %4VY`o07O]b-i?SAi4gOU[mi(--HVf\Y,sP$r>j*RJsZ7,WSbe!q71EJgR*D]W\=Ad'_)sq]r`[ij<'01=aIG(-_E&m %O<0qY+?:6fk\EAXWrVeI=K[9O_kX)V/RMPKRkh5BO\1.fD2fqu+&V,&iXI8,2.faSCeg^\l"^j"`Gs,Fp %6u0kE-Tc_J%lls4$Y.C8397TI\NDDt7tQgIXC)oUNntpLh5;r)C()geJrh4Sc*PA/#ssY;3Fe".H6DXZ/KmWD&Af'$oF!\%8(Q`T %9?bf=QtOJPShK&3NlDAn&9:0SIb'm]B?2edr;*R`e605IUMIrur_<&7)[8;m+Q`fM3Cb4S<5,2EbRo"K8^*;>jJ^I$=QCHQQrA&B %9QH.YbaBA0[%&?PF5A?'Sqq_ZA@SRK&jW&i=_n8/k3Cb4Sd&N.,c<8-ApVqtmaAM=u@>['kL)f.rD+RZGBdiIrCD:/FU/`:N %bV:g4ple)AV5#%!;0[!Aht/4).M^==o)>d&rF1f[??Wce$1Z3",1pFKoJ*hpGkMMn^BT"EACf=:qN8I][_$Hcem;_8i)0Rui_CQu %.CsPa1:m-*m^GdZNM+8'2`=.?C1IOA#M5Jn&Xl!@36-9*')`'W9Ri[oPit>(&gfA[Vno,/gKL_AW313?=c)C=E'87oLT2+PbH %#5@4SEI*C7[S#Oj2D&;)UP6qtQXa`g\KfeU$ZK]9nMK]iWOg-=?(om1_UfA(.$=.T8E-3";L*W\S[O0m$Q?WXMc.gkO-; %mt"LU_17SCG`Q(^`-\F= %mf@s"q-/Dge!PP:WZ?7pf3!,h@n+L8aJCdtdhkglBO,,VVQgLh82U>,TcmKP)6Dn2G*\F4Eq8C:iqV`Q:1pZF+p\k!8gt;ecQ":] %oh,SBKn;hsM7Y0Q=&nP&qd_prM]HGO#Fhp5oVG>rTi!gQSfsNtr#9;HbC<-jS;$,LQ0KsVQ"JGZfr8Jajl8U?-Ed_6?UW(V[B18R %U(`$Q%2;MYXc6k)rp^:RV3E&dA*6siWXDf_[s5G>\VIrj$[O[7DD4Mh.O3)#m]%f'7&Mj?T@%,[dl\n3-4_=TBhGgDBq]ordGBGc %Z"[ZEDZ?5Z^\.mPZIa#/\p&hp[NZ?*Im/tNDrf;a_-MC_/AQ0Y*aaXbp6/gIPPoA?gc*m?R%]o,UBrm-eZ@L+q80Q=)EKn,"s;D]#L7sKK\HR]!fL('8bJKa_eDH.k8&i;:oPG-CS9g %;WWn=WQ=9YO[7-A:F7ii;j^K1&q(RNVJ&j@9b@-C@s8S\?ttS]d`]OFiGUi@a_\>G-CX)1c8S06]Q24alEbCp:!oHro$pBY$]1)) %.JaoQFGG\ScfhkD#3ebG)=sE!+^*0/K&k!u$+Gqle@o:`*I9Z"72dG_q`=uGB&TDUrNF".2M*\>/4b/%NC`,h46XTVpE4pXfZV14 %8Fsb(cu#&?P;r!ug9o_mHYK8DdVlL9S=6TZ4$J0;@gfBN]L10,P%[?S[-rc;lS0j]1t\&@Qc0#E"_R$Q3;QK$0N3H%m=^N%6eASU %N)B'Id]tAW;e?>b<"VS'eirE6Sp*gl'D4O)-)_EF3fr_!b:rMWb&fs@A=uD/>0tMG6T:P(*Zn3'%^"^M_?t&54^Pu-Wh(N`pntWg %:iIt:#/0J&"3j^FXaS(4r2>m[<\&c8BgDAR3'2*B\.'<5`9BS2`qV!eoRZZu$u%4K9..*Kq9.1n]mH&&P6XRuIUqtk"&J)7>fS)% %-Gk!+=Mj[A@L9hdSc&X>27/Mo8?&SsUl0AMG&!+]Q7_7eFrPRGo^A-oU@1./gWIeW]BB9%4hkHdfJu.,lL;+R/4\7,9k0`^[!=fb!mNM&lV,#2`3tomosj3tSRH(aGQWEn%Oe\I2FDSkQ8V;3X)P2;0U*LC0b(0)2Ps)USY>5\DOq^YTmNO@13D'L %-cX=I=;*&5lQ^hs0f/FJl8&&iH+RSad)08[Fg76#X78eL^>=;l0]-L#DAh\(Rb(PR4b>\i2HGQ_d/_8bb7He/K!U4`+Wlu#LVMfi %_hY:UJr"=R.!SaR("uPT<46bpQq=J_*NP@9r9uI,._&J*-fTJhd;=6_8IQa$kN/cD@o#i0if\qM04-6#Ng/CJ*($Je`KQ'10G3hH %@uLI&&YCo"LlQq'OO62Qj=s+C%j*pJn3hZP(aHUu(l7s_4FG5f6oc`oo'k&_1>5S[/@2_%*VWDc460V8YDd?u%*L2l;2fNp$mu88 %.08Bt`S>b6Jf*%:Qka&52].8j'dM_sLWLr*.Ik5:Hr(RjN/C3kV*@D4LG+J=8&\_Xpi[-="J]FlUe6<8@QIH,Q&*3I-\2+\3\"b/ %IYr#B%')!HN-J=GFPif4'k:V^dcsqVoV3EA_]BWJA'p"ELem;KTmJOFR"N3#ZF'Rb"`k7M=eLnp'CeY>plHR*:W+XBi?Q<#:W-UmH(6dG]$=fRVS!@j3-D`N %rBYXupI-!OY`Jf%YWLbbHKkWIC\sj\g&>""IH5\a?&RrId#5(38U(?8Zgh6aLT[Z65PH4@NGN22iS_rY9rtG=?ZiaLC+H`/iFbl] %B<-OUe+a#42dbi?;@dr]Gn#0#roP\DYq#GOi+7VDXq.eIe0_EXW7dj0o.@C7"(5<*Xb]\^Ja'Vbq4NL+ZfInM"o86lHdAgXVmghpnSNf?m=S8oC/r6f"I.5 %QD'01/Gb'jM#Zqj0D`;/J,R7-LD-&2pnU$"GhWn'Lel12=$'?:qbX-]_g7V4H&60&X[I;iNJ<;b2ErJ"ZCiE$_ZHq,2A,(9%gGd< %GTsjG:1(U'[F-Q"he!!dH!5\=Ics6'oCsKNZ.)0VH#'5-JfjG@fGqDb$`U6rEX)f`^3?6g1a*+Z/FtJ7L.pl87c]_?$UQ6YKP$W]T6>G8)Z88#o@o*G*H3acuW-cqc6"0H"Ds.mC4kMn_@RJ.2imaSeMY:_l#i[,J>0/ %L@9W%*>(X-?[RU]a1+jM,^ %2;uh&.F&um6;29R&nc.5@aX0$Z)NF[cr&fh[AR-F3.#IV$&n+F1/eR`I;E]8e9;TaceeMp%V>s/,ie_>T8?"l`>MihL"=?%drR(KhL)\j? %N$TqG[+Uc"ND/;L^R4=Aru^SDCYU"S#&(P/3GiS/8%>qV724:nQG$rg)FTHskJZ]oaPQ1*/oSVFj6MTkEah\aLq0tL %M/=9+a5h8,8mgGVs!>&P-+),6g(-@]F=NPaTRD%NVGPX&oOK)RDd-coK_E%">"NESh@;DsEdF6SR\(Dns!XSS\,50>Q4QIH_C^?q %?AKMtJu+;Hnh*="+$S5:YK(9UBmQB:aR,;qh"g>-cjFDmrr0d0:$;lVMJ+.cMt2#`[K[sC;Q;A4j.npH/^NmFPVAV1QZ4D9NA>]b %fgcD8Zr'WLX8*sfNB>\Gh:#428:%P+@*1VmdB6&Lba\IGH93("g'_qr6lbE.6O8obieJ#;L%k:>4-:K;U`hoI/m(1 %'=UC!QihSXV=+]JW@7mA">>o<*irdd&\P=K]T&i[MIuo"[khu2Ykn[pZrU=A#.m*N>nFP#fZX6sG$m^?)=0q)k384HG2U\Kr:N2; %3Ul)&7K.icf2#[V;X#h2`YQ>98[Tifosut\+,HV3IEiKS&BX>?ZD/d&0-pFSA0T\I5^(S!#%&Xfo2:,c`5c30>^=/ccWkha-"F&s %@X&55N-7;36IH3N5.b)OL7F&9k+YlTS---Q.gN>fYeo*U\^sp6)PMTJ#Ob^n2&o$Dqq5*_!dO/KoP>S^[*SoO[Z;4[rm=ZVJ[as*G=+^?q;k8U)q`$uM^GTgQN7p_.n9i?\M? %,NMq-F#&1F98?8r8R[NT4\P&Q-ndNZn'V7_'CjeOA%m38?gi*?8WeIRa@CGc\*o[TGWNnTkm,nh-u^YZU`YAmdWYOpV.`;K:;'kHV$V%g0W$aim,(1d3P@-n>RCq7.jM'*I&5!6.o6[ObJ2(sJo+/'gPF*YV014ARJ>!^/`3R!]7*F=ic!WLbUC8:MCF7[Q$;iDX0Y/IAF,B#DHHOrR=d`]Z@cJDuTKNjg$JV9_s3`=KOO?Cm?/mEGP*r7=,>BE47VSSuECe3#TSE=nV %_+kL]NUm03#-2=EL1@U2#Wn&L]J<"iOEDPLG\)Itg2RPeLPq84$:o<&0e6A=1>HM.`2mqJb*Ffha[\HT4l9U=LY[Knl^:`_%8TMWNp*hMKHL'CQsj(]F$<:<$+-;nL>Mb`:(a@*3[6BL,&]@eT_f=0Bu6Pd,S,(7IJ[&#?'aZ %`lN:^!g!_Uhg_U?3K.%-^^RknZ`t#XHE/L3MmrlKf,MbB/2n5:eWoi?X@`X3l7F;gIa'RQ:rlP*eBM*5RbO9_[[f.NQ0`=lYotKm %-Y3C$rS)4aD5%OJQ,^MLDfhUdJ/5bKNi_rCnRjV3$*#G^&3)s[51!r1lr]1k+hG58%X0f'@gAd@O("lcDVINC %-$Y?Nr`VfP*_OoQrm1h4;3N?%5tsqhl6SA!49r)Z-G0l68WT2&Tr[5+@>FP)s9oFGO;kuB=.fW1b %775u9WVePGS0i:'=SstB(F)R/ZM8(4(,NAI+[6ifBY,`#du6[t7`XbgB,N9qhZ7F\Q7O9S/;uE\FIqME_bt7HO2n(PQY'd5cc1eeoKF5-/o#T;0Ypcl2/M1P%O1aC:_1cGI+rBCN'b/Bo$g3ZHk)7ZLH&c$?K` %L971mn)rl-FL*Ypnr[@39RABIb^*:CNo5[$,>r#cRTX"h.OZ?g>Z5:V#l*eUO%^h0^?\-.IX>mL"=J@kBspf0%b`tT>P\ufh>-Ge %>BJU@qC-jrpIh>c>O"bmUTZ9X^E"a2L.5WMIQQ?*_D`*ko%Tl<`P7Pf39CYIG2ELIDNeRDO&OS)n&u)Cp*U/G*61L";DqH6#lg(&-Ko(d:F"2QNT':Vjm5p)B3TO>"T1iC<$f^$&?oMA=3m0#"=_#%^L;NOfshD %7l[)r%jK@>SFOPh,LY42&T]%&"qWO6UZ.[N.XrPm/#h^`cat_`oVOE:tU@aO5[g?L`X:iN:fqtfJdopiTWhBIk%\LJ['J1qoKY)8UQpO6YcM4BhASD]Q,P%4(hdJHif:m%$>F)1(?Q0>`,o%G %+GMElVR!LXE>PX6R**Rg=mIbQ`)Kd'7Q@1s,GqcPD!VY#11HTdXs.P]/[lL)[-!E-3/FsX\rY+:X_RGMh0@bGc&O02_u5b0[$@ik %?YZ3e"e-P9]$mVFi4]e)I>+Q,X*9"?[p>i=hf#+9;I$0fg*E##TC5Zu39ESF=5PGE'1LSADS8s!9qeVN?a#\DKO%t#pfSJ3YET?o %5X36OQ'0mKS*M&@V9Ek8emiUTPr#XM&>SQV17-7?_b8Q2"ZpjlC@DOj4UGT9K2;Nu21K:S]-'R*puI\^j#d%3]0)5K8t""En<0O2 %Q""!Xdo"kl9'E:6Y#ib.IDC=eHDT&bUJ3ZtLfp:dH7[DM@Q&hfX3u.oGL=7UFP#cW#H-R$U+2DGYEsAS%`\G>M1[bTV,3c+"!<6& %;B,Ju':cS-;(.!"FPECe`S;0M#4O^5IrcYO#R!*A2uY;O+bbfoVkUqg';/k)RW9=_G90m[Kk:S?hV7Feu4P" %8k'_hPbP%a6icTUi*8Kqf%>LX&]/Z%9$/NH$rsj+%[?1PWmQ`J_>\^_J]oo#5Tk'_Je;LFRqUB-L$4, %VL)oF\J!@c@g8*%/E+(_Rk0+F"#Gd2&_"u<%G##d&^r3#@k>V.hPieV90U@Sqd_i3@X@;]CG&YSIR25tHpjD7+YhdeC$TZ'L,!rG?6e04s"WD^pk-@[Gr=R7h_V:]\gPFK(L&g-g(+CD>3a;0/th&CX?`#4DC?iO?d88SNW[O0pY/ELWA7BAc9RkAXGT %No+_,4.A>@Uu(45ieDbUaXoa]Q`@$El/DcsIsF5rFHbngmuuq%%MbhNU($.,r?XNqFMKPg??.&[;]m>HXfW/&tk7-e9B4 %g[2FY&fooo"#7L";X5KGGp?gr")jn9cLjUo9K.eQNSAfaN8JCc %`9m[9'Pt\Xcc1fo,Ic_L^0Qj;6;?;#^hMf8R,db%c1[OJbF%@s%M?/D*"eKcA'];XFS&;*ob %!rZ8Y52g.'"DaB>[/u*IR;"I&))i*.4/%6XatVHWjOQ'\hi=="\R:b&S-=MugYId&itM%JJ?` %%W?N#l2@brO2/*&H2(E&_nmCW>OF`GP?.WmK'=#.$2,NV*7Q*je=P^0:b?Q#kM;De:XCYpY7g1;8n2Ku@8 %l7qN4SHZC[>+Qm;pA>lE;(V_rc#OS2-'dad2Jf;8`uEim?^!`dalIBF]r\FbmUWiYa&Aua3 %R0JH4Zk5iqZBG!qfYQF(+PPWjgKU\nGpBdM\nqrt/!hj!cPtCqfi`VTaPCd;k+-*a^DL`Wdme3#D;#8t/f<`18>hH_XU[R66oo/f %o>p"a7U]"C\0m'(2^1,e+K<5.c:_O#%V(p=Xf9(7"Z'21[MH3K-'6b_bbc/%+pZk+bbg]Z@HV-90q2@LlI@hD='k;g%VIYTS1\N0 %"325@p=uX\2aI@nU^CUFO!(_5X7:/&4Y9^EIuMr4QUr^+HbQ(S0E\1(r/)gXhTf`R3*N5AI\Cb8rEW8rF?/Q5DX_Z_FSSn8+,rbT %gE,[m5g*^\p^.5/.#fR@hk&`TTJmkA(+li<[b-0:7IEK:+uPB!k`RE&>SsZ<9E1Al!E67ST#L%(.k>ZqXmTqH[iTu?paq:CY3a7B %=_Y#i%@"ftU1/RnE()!*>TB_&@no-a*4Xq)%8#-?7*6(Ul-hui3!!q"r:0\ %[+$@hG3^TK"!+>iEYE\2HK]JtUDW'=oKhHUd`RY;dQ]IkRj-/0j",4Y@bp?XC-"cLFJhjkb_jSI6t0a,c_g_YcMOU'`?O3:;qDPcruh&q0T1[*u-+Fejkh^cs#iUa9XqO,9"e/c;9__6Ir7F^jC5"S_5*)4JW\`ST>Dto@M %\KR&qhZ^LN]]FRI_Zr/!s,H3WQM&9Oefi8"S(`"`0_'X0VcfDAV-D<1u<]Tc4Kd_FY*C0jLDkpN@&nLU1D;cN?dYZ%k/m[NO\'`G\/7W4qY>c=BA %5bI'@r:XB6_V6-cM(*a^..F/I$_3P=Bd_sT;tTZZiMN2\kA?`8T4DDghR$7]J92H'o^bt*%7<-1AXSmjW"Ql"bT*7I%m&#k0,=2\ %ZlQp1Me/[dDAnTH<8?W4E(]NZ4B5175;6hO-CC0pT9hn-f_i[PO(B#Wk^^)HN/0/lFJ"ojElanPR!)qrT'0SCPfW@T+c-[oCnne0 %#8%u8@rLr&g17LYE]Zpj(0(RS35L1=t6?a9t0eEIe$1nVcQkk6SVPQ?uiTHUr>4?^bF%g@k9/!do?4EHV#R,j-TT4cUD^eKWBT4\XJ@4EDSQkmN"(@]@,q0D_66LO:=.*MO;_8uZ:dePHRjt@gG/9j>dnhB#M[/B'm %mak-r+$V8C:M>m9BAo(YkQrih-&0hI'%3p*S'P!_X36/3g9&1)>,:ampjFo!YJi)I#7T/P'3]5=%akZcIg`kU[0qW>*W?^U.Dkm3 %9V2\UTg_#7"jN4h-aZG-ZNC'IJ-dgUq(01e$pC:Q3hOC1'dY)XKV$O7S^5`IO+,:amfWbcHTg_#7 %ATl[[RF!.Kc[n5Pp^&P#q(+DV'd7`3cY('-3E#3O$Ke\Q\@>4G-.^,g**k+Z"jPW*lgJ"$#It>)V!?[1pFf%H5B6;_9NQfm;dPX>f+96i\0Ja;+Bm'mJ;<5Sbu@(+@sFaWEG)Ghi`Z1H_+LK)^]rCDQsD7VQDB'@DSIc) %d)ruOV`O4!B]=X3m;d;g_7K9&f6Hgl;ct'OVf/H.JpHG(-+e#D8L:2T*pQ?a;*+1\S!-+lfg#4",\!Vu'iO7L\OF!pJO]@eU.<hJ[nfJu9IY&I^gBp`mt\hg %T_m@]eK#].I.8$J.7QmOVoN-MU9XV[-De<&j"COtT'B(sF@U[/MR]gRKe^sml\0">*/h+]@<9"b(j@DC&(%PF>Ii)R6*FB.%Ti5&T? %[[8P\D(+jBF]\0S84o,/J<8gDe,o.8HE&Ta6mZjGn<[L_c]6VVW,D>?a%c/Wh6J`"mK]oFHJ@sLS %leQsSHFu5o]GP6NS^5L%V-B=K3"13^DQI]Fd*LCj*Mo[p7n`'`i"ldL8mn[U]"qFf\>a\@e4oQQLh-j`lAT:m*$^LPK6A\jXr))mW)>cD5e1t %\-1?f-sp%oCZnr:#=1ZES %C%IWB]$W8cdJgcq882ef`n">]DKidRK\Kp4m]>blUHSW_Pbsjk81QmR6(dNmojCW>qMTgr9:lslTDfJphb1oT>UrN/M)Cb_qka-uo8%Y3JRFXQM0gi+ %`uh6gqj?ZrO0FWP:EZ@+mlp14>inu*L"B"cVrS]h9&)KJAS+Ose(TtP&eAp=K>u_1.Im.)]_o/*98UF*h+cI>(MBj-5gT&@XH\$G %<0Y>r@\%]pY96(4sVR'*j%&B3UnONP^']Er&F52'%V[JO.MWNS9PYc1memdn&KNF4ALRVisQ1c %)73t#i![q440#!^ok^GRNttc!CbdS&bYim0RWW,`P3B2ahtp;@>Z0X` %gK59(DsQ]hC:po"8$'dWW\)r5V]k53@]6s>VBb9c4?<\A%_DV"9;!iUkhk_;E9]/:4Dg=Ik'1eI(!BKm90-hML6Ke=!HR$`c]/Ps %%rQu7r=E&k4F"'Tk4\s\Lb'f>5pU"bZHSD= %nt\97G(#dLo`hO_?bmP[C\k70?*;[10$+6;AV.uXnE;l6"saOnJOf`p.Ajm*#oulM-Sok$&^6LH,0.Ko/aaJ%RrLsKZeuOBoV<]= %,0.K/<,KC'F(Ok'au/Z*cdN+?4l_R>gui8c)Y7r=oNe2i.OH>%LCHBFVo\\&=q2ZPcikIRj,Rf6nI%I"E2s9HO.Kf$X^HDX*e!7. %0IP-tn7[_AY*F'P:F@/.=+7%M%_6)U\JVSjV/a6>j_Mo %8^t2gN`mjj+u",5D':(ufQH_j5QDf6d!%eH.SlLZKJAgZP^Z^f3pjBAfMYpF>b>$Y1Q"HJ0O)>760>L.[%0Cl&aX.bo3S*9e="<# %i)@)N3H^'X9"`<44f?Tp:Z5-Y/7/iq>>"L5>]cGr_tgRRRs%.K5A`i@npn24_/j7&l'q;5=UoV#GkF'gP6)oo\)ftX&qd2OSg>jjKS0sD2ca&&D %Z66IH/Dm3C4mDaN/-ijgnEjA%IT'&B$o\uDkZR&3\-qS)p@ln_*o7KMca(;00Y;,RHC"O.1N,4'.5'gdP3YdVet-H&9eM6t%N:Zo %5/s1*J,]rE0ePW4e?3J`Sn3CO%9#0l4j+CUC,gO*rEGTH*+S;;50hGK+33:?AN`h960)f$]>G8DIc5iN<6tt15#MFH0%QGV]9(I1 %@Kt&_71Q/$d*ZZj0u=jK;UX+\_oHPEiDc75AmFb?8/\\F:JptbD%EoZPZr5]rK>To!P6jB^:NohOT$*P\&h>T/i5SOdP%@?2:Bo+ %*+MD"(oPe8j-[Fq?$=qL"JoK%)u-@(^K(@";$X9*S]S\@3/D.7nof-J?dS`cBfm"-4Z.Eq@6>-+??cq>B6qfg$Gt;BWDj=Ui'_e4 %$dN9(CQ1NVY\nj97P&?Yc@-_F8=X;!3l%\dd-N3N+MVs5i.f>YN0$k+K0\(S^Lr@MENF$\=1,D-=943?+c0/N!oKWi\)D?GObY/9>"BI)i#FZSs)rVBhoBq<+"f15@#p$LjoJcLVFJH!ki4l$uS-0Q#AdX)X5LA?/. %nbtCjeSi<>9*[Z/qfY2>!8aO2&7f`b160,)r@HmE4AH*O8Z"5H$F8Ia2REahIg5JDfPNjN2p=^0iHsm;]mKFBNAW2Vl>Eq5h9*g0 %Q%C@'_:$e>II1q;)+BV#W+5bZJk!d%WW0hJ_TquY(2FEGd(Jf9YGuf5]73]t]d`H'(H;7@*a0YXr@J7uM?iu1)TQ>ZQ7`ZfP8$$r %6`jX#_QS^l.3?LAQtHjCe#8YB.K/H4a+FoA_g2(Y`<.s&j`H<7ih<5,Zf01IHJ^,!*cN3J %._S>--"``4phjf:&i6PF=#n!4nBY>0WWY-7.bID1mWPE^\c\Yn=BYq\!0 %D(0^6"]TR1I2/I+'spE=mA]s$e`oIN.TJe2qpGq.^Q\V;T;jDu=aYk;kVC`2&J.#tUJ'&hOUsTJUC4iKn?TWaA'R-a"m8u9X,G-a %_CcA(eQ%[,PDs`:hCe2oY!](cm"4hO$@d4?90Fg&n7N!+%>OlK2uL?0nAX<=V5C;'psZ!?VNeem3V]"p\d$&JSLlj1q#@=P,.s"L %UMo' %1gHpb]FdBt>G\u>.*_((+$D-8&(0Yd+^q/U_+STq`,K1oRfkH,(8/5;K57(\NtKfXZ8YBG(%-]G/da^18@rU8*UMTmXe`<:DhhZf %?u[`7,Ye#nAC`s7X&$7<;@WGJHre3&RadNr#'0ULdk %p<%oE&EW673^@%^\WFG,m'csl;,>`CV&FLsQ0.UV=!_"b %&8C4`L`piT:huBhNu0VW$r&XE:W/>T?jQ@5JIt93J0E]",F)\^@;*0F;9:M/I\.`la;cl:?S!m?a;cljFm'2X@_WU\aI4R\;*^P$JFf\j.M]nWL2kNeU6TK#4<@SctqAtC2BleaP4BdPAiZ?;/]nL>cFa+!K=EI1f %Ia5roSYas'5[/Ch?i(h^JDg/W*$-Lo@R()a*Z0F=&%n[fSSH(d_6%muN;[:FkV:bhkO+\_F13[r_o9I/@7aC<,^HsQoi\g&H/#'#172ki];GQ.5_d*Lr4Bb)ttt$MDWjG %a?Mk&c^44_BC$TC0\-&o.@Ml5-MJ>e@P%7lZs+'PB%I^VjU=!1-7l:!qMJcp`g*qaS).lMFpJ%Lh5p32JJS,5BFXqpOF!7o)1pV% %&>A:,E)g)&T7UrI"17/Z>dc.r.u&M!G$`1P>^nT%HoTTuMd1JWHG8^HCu10c='-d-rV1=\?QX3'adlP-1QO$(m+;2je?A=Bk,PnL %XM",+*4p%uf#]aQPTCH/XQ['f($+nEUVW&?=dgGWWECsO\4fqQJj5W_XE3m"VOe,WFDf5sR3RL)u %+[)r(kDaO-BXlIt"muL&2gYooU(JWeR\L&"YC4aITT:k.TDlIYFGnMsh(:4i)OaGuP\^\!58UUEL %XRGt[lh`G+U&/(-T=uu-hU9gmOn='iZpHnT&lIPQ8Lk5,!^L76U$k=m/#9Y`*;YAF=86,[aVDTAe7aQ2e1)oLd*2*Fo*X_rKrRb> %it^"k$:4.0nd=VqKof5jFGNSZJ;AH+9.(cWo*X_p;dmomkn"X@'>h)=BS_SGQj^uCA<]EH#bdeP(fc5#;JKa,_LMocD_W&*k))/c %Lq\J7g[@SQlk0grpBT'D(A'l<.0pe>+$mk'bMRhY_3K`2C.d"YO(!6%`SO9h.4h"hBQ\I[=Q795^:m"#m^42O,&,SBL_&s*q77cu)!,h2Ps8947>&8DPn8C*;MU/pLEOpU`uP/j\P=JooJM %>-hbXj';)N2n\$:l?3@$`qcu_WfB\Ec!FcXn8p*r-gSK0.i]k>kf0tD*IS-h%Wm*4G'tugcee)T4PT9na5tFI_5^Y %[aRUq`q_lV='!LBH?<+V3h\cGB#>ST5C>u1*.qH^1o"9PTZ2UgOQe&.h4hE]\Zt)s@crZ'%1d;Yp%M(b?hcbMQ@:0c'UR3!T.Cu& %d4NDs(=)RC+5LrGDAaF=^8"nm_(E%*i'+_0c\<6(2`a'>2S:0DdG]AWi?8Lf:P\,XL0("gmMk3,L=[lCFuha(2S;>H[F*r3%Q8_+ %1Y-/H_o#)\Sds)9%?K#>$QYft)]j;pk3;@Yf^NRPjuq>%qK(OhLZcp:a4C\(\&_q($=)A\TW'!?*BV+L,W4U74<%UGV8Mn:_s:82 %=,8Uj2S>/MZ`VW#Zf/'I8 %iG>2WD$o*Q*!D)dA7t/C!*V0:=7`4QG@*VJ\ja*qiO#`](-MZf88p)9c\ifA5Wj./na/Ydb8.++Hp#$&h6M`*MhU@]V?OmG,4@-p %2hbh?TpWEQX0G?A$(1-"4)W_<@cB4C[LaI-,@-+"R#hcurn0Vh;Zj=T[LbBJpnS;nA.*s07G!';0uZ5O<18fMqAZoY2]L<+'>3,T %qGpsP\E!qgW<#QS7@#/L$_j%7%*fG3%CPke.RscF$`AEi5=Z!>Pol!W:Q?"7:jS9Y\f;kU`I>eW%$NoE*22Jb;Cf. %TC^>?U7KGi,LiUp3MZ0c3C5S`bR$8f\_\#+ZlsdV:_6cU_s#j[8IWM@3C4j>lcP)=7qbZX8H6`eFY9JmXR.OZ7A'iN5Y*(>UfXgZ %NFd#9qbk*,Dr+%r8XN(]G59G_Zd2rj]-=%EhIiGBXs5crd)+iZ3^2U*2YXLmed4K!?Pus9#ROJAP)u;r&>m1^6n\'b)lNN!00&b* %+Q^WH<$XSk0:/ul.]+&i^o:U+30ZJ=cLREWn8#.",9bjn=8)$c&lN!aa33Y]WBD.8#%"j]n(qZP=iiBd!S$bQFX*C)^-Dg$Q<8@q6G9B@;)NY$GaT,5L %g#lmQ>n>Fh%Ln!)M9jpJYkH,m!md4Z8)6Z6W:el/IU4C]_s:_=n!CN42jGfJSZ#Uf-W_FgHIDQ!4tTjkE,[nBH"NmMPcBr&8Q+?\ %,+L@1)I.]5@I)1,#XIg1MX?AT\tuTNLRhE80nq%;C_&['n/apS_bA`':JnK*no]) %HBS3"#u7(&ATI?p-G#e@M93jQRL%lg#lum!qj("j)j?I51_EiYS33JOk[8[UDC.3fpA$_t-IQe<2*IO74NuMO&,8OmuC6*G3ZDd %(<':-$;\1j'1!%J6kc7rn]<',"Rn-4(U5Q%Hm4A_&B[+!Z)ZYGX2%d1k,*HGBkI^NHZR(/K#h-ip@VGaI?[%8\83YHi-A`XH1M`_ %Ja[_Vo!TW:o&_BGKABC:OuH0u,)@R>OZL6`\m]!(-V+8t+u@?1Vr/!uWlu`,T"kQ$0b)iQh,$Z!e1_,)>&-038sU!S!l-[Bdi5).u)B6USC]Qjk@?p@e\]ZF6!h.deKS#>1=&D\Fn5a"'%_&K3iST+LM$JsS.^8L$$:?oFZNiB);9b817hE6o& %A>h8I]Wp_^+pkPu'tgMN&gPMfVr/!sFI>_W49]X)9?E[$-j8C9bTq+uJi>NIZ'2i2$f90ln%/OQM<)qQp&PVZ/pUC6qok'5mI^"O %R2GCo:6nQ^W&j=SYfG-;,U,pC*LG1-&[hB!'ZD,B>JD_J`'gGrW).#pG`CFtab";da28,Y/PED-O2%,kKTnj%W_9Ne9i&PYiKGc+I@;sjM!bPIW]JiTBXQXYhQIAJU\#72F^a%;P %.sbHSe`ep3$=*a[>_Qf-8n;M<'&ASf%Ag=.g[MuFS\#4[gNUnGN]g7FBuAU/=e)hD>@Wf(.]U6j*6Sh"eR$No1!Y`:?HQofn,$r%0r[qkcNCTiHKmpJi?j9WO1`6.V0P^Uk0>9F9OGIb^aVK79DRa0B'nEA&SGfkV=co/H6BE=;ZFc)R3PQ??%"k7Y\&?7 %GtXJ!gqg`7+(+lp?cjNQ1&3:e"LUA.'eIQVBSP3C:XC'Hlpjf)l.gDsgdThKETaK/j"C0\N&u7>kU%feaej.2X`7Fgl=AMWldiSH %5*`jQ]8n^IkH8%LY1bPKZ?+X"E>PthCccih'AGirmQSemaAAE[=Ea,DJH>e:RD-7SR!.o/2=@KcJn=,J>N7?3R^;D:F_fcVnVp]kpZZ8,bBhETKDoo>,(\Wms5kPg)2*(A? %2XZ07Hsu1j9_p-=_9)7Jj5BU*R@^"@p+.5;M\@,h:,Wb&,5[-$1tAWD,scoF)9Qsn?pQ@h+M$6hYN)NLdN2_k);QBH*bH&lUSJV# %GakTU\_XH,aOcuRXrMrGfprWeG7AVt*,P%>44d])a3kVf8K,1Ha/4V_c#_(P;`c+(VWPF#k5B/^_9lg%?.t?&0D486YoKnGSa+&F %=R(@*`t$h2=CR;qi[>s,>\RFhKP4(lS=8V1F;aKoAkj^4U'n(WTq"l)-`_:b+LR>o/sjQ>g[7M(gM6ZAW0IC`4AXL2QZcjLTL9kO %im2$2mn2#<+=m@C8WQZ1??Ed,q(G=#EKVA(WO`%lo_qM3ql>nPbi58>O[kS+3blE0ndK&_qD`$D9!sE=AG?+RP2=Z!(#iGPs7.Eu %A"]sCAN@(C4a!U/`\:ukqm%L34\lUtCW%nV6WZ&C8X6)QC;Ub6Cq`maoEL/#Ce4Nt9Q"ikd!>6UT`]#EpH-bQ2ZQ8KT01QpFDRkK %,[tjC4[nBj(16Cc_6-l^TEl!):JLIciq^!`UN_SQ3Mms>cK#gGPCph<:k_*+2fdhW]TZW!Em2*RcB'$Hm8U^Nk4R$j:?uAV*[*'M %2?8>Z-GunGiW+dr1mu'rBb4i\BJRq>fn_E6^%PglX%9DOsU9J&(a'f%)NQFG)'M*%JbBik>u=6L-Z[Q/rO,)rSds#G@>@7 %r5%%%0VpZKN>_-8D]$7Q$0S#Qc"j0SD9mTNaG>Z=O42QhW<>\sK!SVs]p1Yj#LoM7@*[f+ha2KS%n`pB0p%RHW9r"Y]T(56/.[:T %3QOs>0QnH,buNB%RW-P*h]0mN7`'G$HunnJqrXC.r38\Kh:tme;0#Y3k4;]68%q"G`O(;>Iei,N;UQ3'q;n++UfK)+S6s"@Wos+K %7Uq^%/r4,V3PTr_[.;sq3On.>$_j&.c7e'[bCV&M&I]L"Lp'!fLg\"(6$OVQKEqd@&B+$c,=HKt`S?>]R;\+W8t$=-J.[C%#+frX %X!9qBZI:6h"S#'[Nt=]tA==(GJ.[B&=sI*ghjgj19>7qZ1(46S"H&R<$rDaR(Ek3RKa7mi9eM(UV6L%'YUdT`rR %'\ip_8oJE=iIF*G;L/_QQ6CW`Ub4A!]EIqZOj[I\0biCJ7d:$WIQt=QN78#cY"K$B(o[ne_BfBTJW[OZco`)\#=dt['>uRgY_=^6 %]<'Cg(Yf6bl2nlKqS59K;AU16>_Rka0`:9aqS;O)Mrn5!(Dq$AB-.JCYe.]tZQI$h7Z)57dcQD]OFL*\r'"!3]Vc:!e-.1Pnpuq7 %^o6u[Cd'ON(DqOdi'&hm(RQ>"nUW9")#5*P0]"k\ef76%= %;AY_Wp)D3\7d:%2nh(">^dqa=GX"3m%uf!A#)UgI5-W?G_I?kBh87KT,XE)gBM3.L(+&G/!o$B#?!qog#T"d_huWuiI)m^]!Z)\n %5B<^<6U;,$,u5X@"LThbN\#6]71b;:ZA8Snh&Til&pO\4Zrh&K4E;!,7jg.sL,WY-]Z'Ek-m,r'*l>X&a=)<8a-VP"_F2KZ9\+`# %6Uo028.?#.-[_[!Pn@Tt_U-<-3lJ^b7:D*pe71NT27rQ[$);K?kX8%;/h0QW)R^<0_b`.i1DQ1Sgu:Q'%rKfBCo(LsRI3pC@!0ZZAbf!FSh:9&>^ %db0qUVsbq)lHn&u9j/AL5nIU/\p\nI34+D5m#JkOFG!^t!;hXGo]lQ'Mg/Jnce(r^M,sHV&2`aNIm58p@/etM..D[a\skM]GbbYE %/]94s53bHmg-WS.Id4dHg-XhW$_kDI0_!e.dhW8ue:h_GL$2gAW=-J]Oel)g#nQLtdeEN\-S\?/P'`9AIk>a/S_'3N^k'@8;Z:RJ %Zr_`mr^/6X^a+C\5"2ZJeqoC>3_-YJWdeGI;s!`2Y'Q&0^?m:&[oI)]-=9db`&g2mi3&n4K\k&D`@&;cM_J-,V#ArYXVk&Z+8rVD %HYYZ*\ZHqo'X3D[8A=A=lYA9&HXh3WT!,obZX&ph!aps97;0eg5u"(up-bpH?U%=1p4:<@`8XJc[m/-Hh9@KS2bkmeLPmmogeKBh %XKB>Y)=MsC>YOLFS:(K,rb;?1)4['*a=_<(bg,o_*dSXc\'N=N_K#[X%#`eGkHF(QFVY,i8PVn9>9L6J3K?Rl^RpQ2/+*79,^Od# %NC89Mg[J0k(t@6DnHa'.qfd1[^7/M77WWSN]qmn".Tn"r^i0$/3'hJRb;cAn/Hs*/^#%W2Wi9FE4?8]!c`S:r*A"[)3^)ib,qGt7 %maM.]e`5]"I;J/FE'(EKa%=[!1M"4TZfY29IoNU"HUIEMf>Ybtji*OsrX9"=?2T"IM-@94hO6c"l.UHB0c2>WB`G*ZUR*%2;$hZog-h[+JcZ9=0 %1lCK3D1AP.8n2^\JDS?`,rVm9s.Y2?Ko.Zd7DL=9O[3nC;=u_]4BS\6(.G_3Z>-+XA`=W(F$4XfZ&l$AfVkn4JK8b?gp_Xn.mqim %CY."]E/llH-r%Tgp,qo]ZI+Hed@%SJLaJsZ:?#K7)NN<@qa/=mlc3*o#hP`H%f+i,PFlBMZFG\-%MJ0)psY5q#H-;Lgok2/_N8%p %lfX8tb5I=q9Q1:Qi.u9k'1;mu,pf1T&84t+c9.of%m`A2LR=%5-_s)t(NtNb:Iq3NQ%1Mll6XB6@K&mf`5;SJ=8YiTTN&k%J//ZW1C %.T8%g>*qflA_?R\COo*;R:49[G1Lh-fGM%Zm95T5l=S[8Vj6,Cj_<>8TD?A8rpqU%4c+br)EVrR=AZodhpjALL0j*Q>6usp(-5sl %$sT=T']-pT$sT=]ftYpbd]hhIf)h7nR:4:fY4YlW_b=]H.Nf\JQD\!rG"@u<[QNq\>-fIn_j73+$hH$Q$sT3^8_ %Vs1>mjH49Y6DBlrpDi_.)'^A\YD:2NIW(nRa.3I&7M_H:e;DO^BWE.1oO-8UO^(9o1!'Vc/KV %okf3o#O/_[U&OuI+$/,k),*-]WCVXol1!(ZiILD-+Y`a9VI`PIL %&Sc1R`$.M1UI(8:#W_Ce>*83??0kdX]5UYX$ee7Aa22%YcBu'b];Ge9DFHJH9muJ^#No^ETYQNUC.1$,K(t:EC.1&TI+=6#5-;og %2-&fo5-;o'6kI+?(5i<.Rt&<9&V;'Y<[7q]BiDSV=,CGG"dU>u:Pg4M;e[$SraZQa38&L\7.lnHWH%%<&&MMf1gHBRU/aV<.sX.qUFC1Cb6/TS=/>p4Gt0.G<7l\\>"Z;O(`DtJ%==[)uk1#%BlF?,ipi^2^qV03250)m%&6$/%%:f^2j/N,m3pe[8U %%*"%fK %'HC0/YqJKl7cL*KOW?_)\6gdl+gO[;GQ_GshpKZOZ;/g.ZYodCJ3^lHp\RHQB&6GrH40G1.0qPsm!'KGdp)$Wh)FEiI51&BP'6\B %qnBA6,tsE^&NYs9G!)P1R"4+`X>T)4@!*m"27=5]-nHP"2Q-XlR!"T(U?fZUoA*,-#T7i&1Z."6KQr4pb^>bc7KFfg\8-WCQUNPN %`!qGe1Z+[aQ$+;\Asr*Y11"a@l3PpgIceK8%NV7/Foj^k9n#,iN5aES^K\WR[9+ej_8n0[h]4aED-):2n@M%X.#;,[ha'c"M+!un %<#m-\dl@QGgSKC0L\iNbNc=?a,Lk6a!JB:g"sVD+Jkh.in@PYEP`jH\8oL/+*;o7"VOFZKFn!"QiXj$s1F!8JTq7hC(&X(fCM4_3 %R`BXU^H4[h?ni/-n*KfE#oG\\?Fa870SU-,0#?ud*MK@t@3,9[(g1h)&].b2H1:^petFc+N=#5-*Uj4Mh"G,1&(4.?1CkU6h6d$_>uD%g3h\l,;`@fnXr,?fjloL$Ch`"hC30$R"'O@'un#.m'SQJCO$[\"@SU %%!LdD,YuKMGXOL+L#9r]aH^JU_7#VodX':A\^9!Z"kCJs6DZ(55;LgrGU!fbCBVj;Cn);&ghnfZoHtK5KP^U5j %\utF"lEB=@XlGIiApJDrrcoupj`[)2Q_inmp:X_S%,Zr56>%aFXPRM4pZNCLYgb&c.guK3IZ1@PFJI'3S]K#81'8O+(l5c %Y>RSDb!VS;!OReYf_r1KJ]P_A3p`IVrhFiq>=*g%qhi02-1p5!5dI54`g=>Q'QX$BDYrcKg$KLI+5g\.Y8d/3Z0U,Nc:>N:!oZ!+ %$g'FcEIggaQV(kj]RnGkrRM8<4\=q:55XP.9^7I28a%K]B7k9u&mjriU3i(cc-!,'at9G\ZkScdoe4Z3i@g?7:.^D6_GfW@AuO*9`f^)WLL %I@'G'?NBbIKABs6no\eTbXt5Pf9Vn=$W7".]!b@CD@WbYW@rKi]8m%egUAGcBt$DO0*]N=qZ,U`8OjAS;%A@e&3>]!Mun,l(cj-i %.2.e?IVJD,F;+`nKqB/^YniqC`'S]0C(Vq5pZ3iUUY&T7&6;X7'Mb=:7n3b/V*Gb&UXr*DJTcouSG3 %qQ4qfTK:`L4I0G:o\lG.E_!Z"5^2/0L6Pkm9dKZV\5H/CnM$.tGsiJ!h\LM<12XQ8ffDOa-C."h3G>,j]O!t?.[sA)pUo"&qNTC2 %=rTdVj%-c9+(+o/:fJ,Ck$D30>'NqAi(7GnCZ.WH$(`\0c.]U^K(;WLViA*'i"Lc93Wh5"hO^Fo1-LOPd(a4KSWhdq/AWUi_@^^; %GHH](/qOi?A%[lslBe\WF#t_T,D\XrSVL@]5g%P@E]t@>A*%F9j'3jU=4e_YBgA;L@1(YSI$pH!P=j-LBFRm`XKlWL)6tqIq-8?& %q<"\eLkMbD4H3n_KSHD02LYHX23,"6a4!9U#hO;,mp*AanIRW\X,[bo]/_FARgNs;6=<);!6qL&QMrTg66nX"DVJEsW %=RIN(Nnf*,om?`I`[C>eLot)G@/LX5.>Uh_l't^gYFBrQpHNU-6i-cI5g0W+4#^A^s4^C]e %9mO1dDUD@kd'[C4,+,c0)6TfX,]U;"K7ELs&cQDJ/S$LZoP^^'Jg>Gart;+.;^A%AoIgLpI1eTSInA8c/4`+r*PRiFn8VC5?g+B&,3bX9'J,L,)!pkWdM9ngc-JgL8b'NM<(,O>mmq\9^,cq@>i)Y$c3(*h>C3UfX2=#_$u=UcJnj.(6aoRXipht %`]U73IrmY[>bh.s$6mcG$o^oMN9\:_.otHqN9\;12>6mSrW$CajLUD2qk$F7%K3:qh7Vj?j#)8>6r,[ZkC_@o%I4AlB#p %Z]e[LJ.1D'"faTT1(Fc7@(N$%14=7Qb5NAY3LPP>d4'`D-E9adm>aL,bHGB$RbXioc!L_`*T;jBU'LM_0*RgW&NqI3m=7KL*B.#jeNgb"cB2Xn=Xkf_a(-+TGTu0S;3iS';^q`H^ %'>Ih)oW=+E[GhI9;IPehD'K1,PR!a")IjkcZ5haD'r9^]WJ2IiT3\::I'aoukSM!WnSH=RkSHnLTHf^pd4]g59kk",0LXp0,i#WY %dbRMZj\@BF$^1t+AFmGi:/!UG,sfK1;WDYE\m%tV;Op9a8O'I,Pic4/M[?5n"CYcN$,$J(?XgUG]gF:Y\&B.WQu8qsW3@+M@_.D_%,WRj`,tVE!UV;=`,nr).#=[Uku)8-:o?oZT0oee'%9S@'!sH6Kjf33&k&$>%%U@3Ja.t#%/Z)%qd8F' %-sJIEnmZ!46AU\,@QGYc(,@W#bY*`iA?s-ql1T-6#6aDlKoKmOM>V:R'lB_gecs9f"W7gFo %+d\UlD6dTiBC3T!AZ,QHA>c?jc0Obh %D$SXD[hppsSgW*@KFeo4b9(N94iRP?q-u!B[#C)ApNn$\P8i'c6oJ`%+)>;G'a(i)O1!=P@tM/eZ'HW04+.eSD9ZQBl_/9D!s>pl %HM\O]$i;FlTIkYpKmnr:[X-1_Kn*j[+)C,NP&F/"6:i/54AMthi(?>CKhcC<5:FAXCOrdL"krO>i1Q-lXTut[abY.;KHRQd>Q._4 %1:pY]/UsiJ0LB"C==\d9+\>MKS<&_Z:rH!-4dBj1Q9Ws+m#]`D\*fQXjAglCT8J2(O:#ie4I,VhWf*7//DWQ!e4[d`D8"aNC2nMf %&Ut!FBaqa8r7e3t;b>D5ohle)`B$sZ#jgWQo(>Rb'7JG'b1r-"nd\_V>oQ %`bmh0[*gTm1b2=_W%$-Yb,/BF\qA\ah_0r+dN-OI:',&MQL8.hY`m7ggG5olF]c4bD1d1o6WgoeFGSZhLh2@2OegdgM55mF.kofG %7M=mh8gLrqdd\+oJj,Ti6*9)6o.LjfccXEOC`UH\*-Y"o\e`Y0BitKt@l,PbRojRb% %N"ssC5)d6-3EL=.6RpJ,lrsZ^?kf>&XYYYo!jd^n_(ikcW__ZkoZ4]=Rfg;UJ&`XLsNnN\?Z9p+h+m+qeg#5DH]!pFI=FcR$ %lu34^]qn+kNr8sVW1cH$nedY6=*NIO0KM'M"q5,C5dEaadGZ/C^ltnEnG-A0&jc.q/0_o*Xf"!Np3-dQLRq"X4!%'3Up@n/aoJBJ %+bjTPdG[:eWc$t([@VLS*WD,n=P78@<2)a5/:ttRWC2O*]7`_^+;GpVPV`#$R"GTA]a;o>0F&&AmURA,QpXGVT.QHC@1F2LmH.eO %K`/;\9V]EpYo"c!k0OG"X\9.Z0H\[c<^?s<_?`Sckdp7+_Q5TH3*$Y[/ju)eS#XP],7LoT!cip%<\DK!L5f[N'%7.TLTjs&KjbgO %@AO<,(rdmqNC\.>Ln%n@dE9BBL>dhh?2=:AVOQ1:e\LcJ9K1?'hX+_[_raCC(r*:&_Ao:;bZ4t2*E%_(D7_stLbQmBK/496G"oq+P@p'kg5K_:FA6"&fl9Vjt)Z9;MblQ._tID:G* %>Q._tCG--N[MFc2(GL])/7*qL#&X0G/OlcILebC>*W(niO2X;.bWLfea)r&tLqjc?fcls$Dd+[<&^c575%jc?h=;oo#Vq-R(5N\Ne'r`Dh^i22e\;Mbn2 %e/'$?/J]APXY9e'Q9Wr0f.Z863eZY!5dEa,d31P\_.8=#U-n;)%sgWQd33Cp$6hR-@^\N*br&<"1L',S$/7_)H-r<.#*^-+M%7X* %2*tmq-6_>eJ#S=S%f'ZVRa)U>fccXE:g_8AAVX6Z6Vqk0Or[GW%WrLC[HruIF9lT?JRjO87$m2r%j3s0&fhjpU$("ZQ,pnGTed0KFg=MLB3d)!4FO48!+/\1I$\u)s;df9`,&SMS'Lf %3MQjh5hR=2r3#J'#ETs(M%5NX$X26B?dk=+hYq2^WVq9YT4"'!3$PT2I&1i]C?;aaGq=C,ZlEk>]7OKUat,:P&N>3Mf+Q'INm8OmKBmI*)BDmiED&4^hVd-Adp %AZ(k4c48QA*c%AHaTG3eKKnYV0^n6]6)>Q6^*.DBVliH77r^7J?6BbCpKG0eTse=P5U^SOYHg3/h4-*!LMJ%Doai"UV) %mqq\Oql*'aia>?!5#rtXQ9X5u*5OIQhDr=m-Kg'Fl/ci29;)rCFUW,M0gX%/FtXrk:T;tTDrh[VG:0/h0DYJlP.\@j %6N=PWO$ko2E[84X.DgK\>B$/HfdO^-hTdP?B\'jh*ga7Qj6A"0csV1bXM0fW3Q`GYNd?^h?Mhrr7.:)[@V!6+;-"DnMMa-7ot#^+ %e4#Q6m$"/FE"@+u5>+#92gT73.C!oDqfDn.8MlbC %QbMH%\^k2fJ@TQ>/m0?`NZmP5`F`=/DO0A53]L:$dL %S1`,,`rF"loB,`C,=ArjNc^VfDA]+MdtBl$*[1D:[Jif1R1`r7gT*Grtem'2X#cg8f`jU`3@-2+Vo&YV6i-Aa^[f!BG34[\MI(iH];1ER9bG2GD>DsN#\s_j)mn^f[FCW%NjbNiHF2dp[HtEOq5BCM/Usj5A.OD_>Q._4 %geRstes#Gb[lLZ.cKo"j[f!BGHl!Q3bC?P@-7.6[.gOX'28't=Bf[oe"E!sE/L)>a,hhh0>%m22K!tT^QD#<.M73>e(>eNRdjcI-[7D$Cbsh+7s?V-t]bi,ho?/'U$ %Os`U#C07[HS&Gd/`e+G0>g,f-;Mu?[`q]dQoMaQa?A,Q>P!bmsrL:ZpbV`57ZCf>q:d]:fH:n[oBm%uU#8A!Z^b5]kL4;".@25`G %5h3t):d]SfE=UL6!^f97QYU8@;k0i(.G'X_=\r86C9dK!S&J#33=3EQ!0db?`F8$@]GF\JAEBCWY1qTrA\h=!b8oV_9E.^KlEX_"qE %c\)%T^o]bQ&Z#hJo^Xse&CO=tQpB\[VTb9gJ4Hsd:O7o<&_K*l!m[OK+mN9EPp&--R[M39.ITr!Cqm)0&:U+ujtdSk,3[;&Sb=t> %j)jU2rqt%Y-?O0XrfgAk3b>Z,F5>Lr4AS>+]\UF2Cr',2l>/T\[S.1_)^LGO8i:oWT_:L,aRRfR@)mB,ZQ/OY6uP.,_lAoDN*(EAUmG>]Z3g6CcRdV^Z/Y.)\a!3DCZ47A7V]"%ApBXJ]I: %kW(7=!6[gWEC!5E3iu@4(Hoh#UJkX#-j8\'6W(7$o).*^4o92'QEFk0QA_?pJp^3pQA_?pEc3dBXXH#I8B=pdH:8u\a21&H5Xj=*3ga7jTr*(N!>0J=t:_`o*qu$JiY33TX6?(WIno'YjDHJ=pdCYR2J'5c6lHYY&g1%'1 %<4gQoU90N7_Ea+/e;D+3:F-rKU![(]dhK)g'E\/$V>q%"-sWQFA>:P@.*4nVaBDGSoHOT5b90e!U:46dZj]Pq+l(1]4%V^PKbchq %@@25@HtIYE<,-:bhX[)"o?Yk(DW(bi^N@,5I/qAsV2N`nK1)pXq#k,\4Ntp*;WIl#KPTr&dcLY/aHL5WKDWb8733MG&fXU_BR4qI %0GAr01WBlTRJ70MI9-PPTKutdLZ+J^E5CV9G=rl,V6i`!11Se^C*M!hh?pUbTA'Ek`oJ`M0BZYdqd5n3l:/5TuefC7JQ6BQhhIJ %(Om6u)%4HI$8hr/[M,NUhGnM>oqZR@19>$t_+jYEK-E/\H7RdZKlmZaiE9Bkc0Fg`\FVG*Cc'O!bW`eWMuKsUr"YW-]qrl;QmDFf %md25?5?4h.6Y0@V(kt;>;AT#2o#m=L#+G0k`KK=B=46qjA%Zi3K>tEr1S^_aH,mi"`H$,ka"Xu(V;@h0osas7>[bJ0>\3^imH4tK9hJ&T-ZM3Z7\_>?ealXppVfp;]@K"mL9)iFLOK[iOll@KrW2:]/U[\'YdTVASXO/ %qf0<3H!L:mB=>r5BR.,F)PPK%=B)#1.mmn@5@P?;oJR`!BQ+4aIUKH %&R+a04`n]tkC\0EiHD\f:@M1h4oPDmW>]G^n:tW&@2I#-8d3JPGd4L"CoaGg<%?#an++e7ml.g1`Jn$/'Re %:V^j$Iujm3@u`Y5n)D=5bG/4ubDY'"@PEljLn6;[+\2^uUBaJf"DP(0JgXkYo#Km$)FKTUi(IMZdKFR;5gKM-)%'AMi?//)R=^#I %R)V9s)FKTuc7j;nN?LhkEthng)FKU`3JH9s)E9i?Cd=H"#O?lcO&"'$magIbSXhl+8.15[.7)\I%QandCOJ)QgA:4^(p]M!!bj#q %aSl&Bo4RQ6)n:UtjVn1=)X-YL.rp#ePQejg7el?K#QGD$R5=WQ;Rs`Y*CDFF9(VCU;9l?d[@?4M4uK[IJL2D;sdq2t7SfKD1CmcCL+Z@i/%_#P%?Ubn"W?$,pE7_m8cT_H=5OW!"^[L'O3c/rRnmt,u^ %ZIumLGHNoJ0:Oq,G;i"&TiOh:EhHYR&O9mIq:m3(klkT]e>4"+N)=@ %f9b`9DpUn%],3o]h6[70_5d3BSm4tU)^b9%F8;a,qe'kW.Y/hT>qhq(L$3T:<$8o@gclfh8u]RogsgZ6cELY\khCsp/n8k++M:_'/]Vl`iW6BIM^$QtEp<5# %F-iu()S8fBQO"_1?@ukDgGP,PlG(\\#mF^flG'4BV"J(Y\NR\"?db?2CM\d1ai2FF'&J#%ZlSUn28eV"T!$C?[bE4^H`X$*qu]K+6Dr74IlY7j>%0ldA,gI?%/@\ulLE@sfFGrZFOP84haXKD.Q_el\)>N"*%oPOikj %ZqU\d'%\8Ql`")uKj<`Z#0;r4p99R.A_:*ffc@$gQM]7?"Y5Bro?haK%=[@X]c8Z6UuYH39u"`"V`sEoDt1redq3NY$6",F>Q8e7 %$dD?eS]%uMeR!Qip4]*'f7(nB#eQ]n9$7LLR6S\s"`Wa_34HIdGqQ@:SmIT8[k%u-0b-pWU>RE;0@_!-W_n6 %1kQRJWdHO*Wj#pQjOIFG?t(_SZ`p/UKR$TVjnL+OFK*Y;U040iQ'.Kkb']2744_9h'?!.+S3pNM2mO"[JM:',Q#a6dJJ(j@)PWF@ %^#ds97YnMNZ'MPI$B)@jYnjo'9[K*cRKLZP;E.j*HcOmaG_/)<4'";?[4S^bP1GQ;Ir5a:Zd84^K;Gp4W^Y0>k[E@A"'0\8ZX/+5 %*aX=d]9Ss%1I?OE-+;QW=R5n4QA;+"'O#gKjKGc@6)L6F2+QkhV*D0PrmN:$cmYoEbYfMZk?!ZJ\;o+SiR='(A`&e(k]QN5'tr,? %H#7`UT0)shjbM$mhhfUkP?#/AOP7cHQcik0D>0dOD)Hc[E**Tf0EgOlo'k=1DksMAf@Kmlo#(Mqp+[pY/F4/\]l%>p28Qni&<'_+ %&&5;@.W4$G/ts'b1U>]cg\Y[]]R+gd-uLamMfWhe"QSDL$>R##BWY)d+[sAsB]**+o!I?A[$EWOE,R_Y_@# %8,aLBF!&a+O'`ZM1\grols>a'Bm`Wfc'?ZfEJuIG!Xir0*I*T7O:n3%TLPYnhj'13;%WQ.@HR1mcV#ZE%%Ym:P/VMa^FSWXb[V'p %KWZPfXn6_GgK1-2aV@1bU8Qk2WFSlt=)q`e9J0!Mq6=@M%CtFDMZQO0bVLIP;U2AWUV!`l]HYYS/`!PifATk*_#B]ZmJLG< %L7);6NfnKBm*$=@DmZ>G4gW]&:+QR'Su>(DUe_t/dqbff^!>X3]>cKe8hA2u=KY*A^E5D7R>9s\GaN%HXp_L_:Ap?*N8&e5lr.W3 %Jhjpb@O3I+3_4R`/RR=VZcYm3g;L69%VA?F8\$E7Zdi9AJ,&M2WlXS];bP/4nB3O7s$g6W!?UgBI"_S %ndfNgBNEGq`P`3uro%%V3.aT4l^!#+qD#_f6oOjrOJV*+JB0);&6d9U&eMaZ3F2V-D?6Es<2Ru+'L_dmAMa??;3;dc5Vl(XWJhgV %/@?BhG`o7s^;n"5Xa-1Y?'m6]q2:YVYJg(7!uhqHXJqTQ1HHjN!%hNQc)5$k9&?:mpp3E4.!a+88kH_e`?&eI8b?^Z4CaVcb'.fnd'&EhN7%AfKRoKlP8&9Jp49Xu`E?>t>W`8ep<1SL;[4m1!Y`@B\gURHq".-qQnCoV#h3JR=JjfbF[\IKm*negbY[,6F297dk8H!q9_^3CCB`57j %1Q2Fj5rW[f_7R3.-%E*-_)o$l&_MPYN\_Ue2)uP*/A)m)Z]7>H\,P>(+fO]Y#sndB/@=LP+c$fZDa0#Fa4>RfJI!sQZe@g>qda=\ %'6kCnr/Tua4MWW(&`!jp3!(.0Ss/;U*Wk_Z12jCb)*YgYF-+OVT0i-O=9B:hI1"hr+UqBRp*mA/q&?9VCJHM$Rp5!]m#JW!%Uj4/ %;ET'@BPWG,8FbIJVca23Ro2B<^4iX7-BR3niG48VUj2)E$X67tJUQs6r5(d'hjL?m]fTn(1^<*,.o"$ %M?b0W*b)bn;S9!a4Hh>T9,LaAMt%WVnMCufRi%3['G"Q;J6$`3.3;4eFc,_9Bg"W6@jo<+SoNp#@TG5faokT>e.G %g6CUmoiAD_ii*f>Y$sMJ;EP[scq1e3V0IM@]i+[Z8b(/O@?P<_0?"SA-!L(:n^-mE,gjJ9MC1CBZRNn(.)jYuNnhQt%&J465)cNZ %O.d7`AZT.UGRUEnRT>!3nHi!CAudI1j-/Urob?F@PiCX;Ap5sN6ReVsI[M#40pL\rY:!2o9CZuAOLl?jTbJ%2@6DJQ%&J46F`A/V %0pL\6ZgT'W@jo;P:m)V.`C,T]U/tDN*^_BJ+F8q8I&2'f.OgtT5)^u2@joo`Klfu;&s@t%;L'C0$5.h_U&%h']%'1@GhcHoHO@ih*Uj"ZeXC%%D-q1568GZt-*Ri%3['Mfipr.U9m;*U=sUj.LT.E5jG %`A8NX7+/Vr;EX=,U,ZU9.@ut1mjc=e.)ci.0Mbh@9I7X[N#\dTQqE76^%^d7LoI1phX79FA]+tVLsa^s(.m;`+(,g)4I,M!4OtuE %][o*?_p`N)=ESUd74^Vk=1WO+551J]YacNpPuRe#NiU=i_-Q`drc9$/P'1.=NPji#MQp*Y+g@e!K]CDI`@!c%+>f?Q.&(uk1M5K- %qJ5cueoZ4Y>X'0@YO,W_lVu*J/?0HFRDm_J=8I;Za92Wsh!WL`T-[8]S=d"D^';G.S=,YX;_=tkp@:RE7N[>]MN40>>pr>$YPOHNfHrF1Zt-:g][ %=CHe/9TYE@$hBKE'.0Ra#?iXWV7u\V-;9Ma>3a=Z$VBub#LpC-1=/Z!A; %1aunUO2IcZ,u#m`_?;OqQT".\f(SYN4#B %WOm*M_Bn@>XRjbq*+/O.W%r.8l]f:;WqB-OX]&Qb&q3>m4.b,8jiV7fghNT0[jOdk^:()k6dNb_J:Qm1d9548kHiYhkQ'QS<.#Io %.g(Ju;"7\?(bf43LX2Drej'OU>M./2bs,HbMU-l3R4_`ROK(O*,LuL5pO1Jm-#V%tf/q/;c1nY#oq]&Ns2#mo_Oo\:foeeTKKm-R %RO].V'Ac%@&'kc3lSKZ[&'J2m)R3R;[O,/_2&:Q>h.fPA(B %-?-hSj''1%m4#:B?g_dGXML5fIdr9h$_o*YX]$EA'^?-+N5:h_H3nu7QNMQ%XoYEXbK#sf&:?L2(RcrXJ1k(p+XA,5:o*n;$?7.0 %HgmjI4eS-]lu-i`h+]Xl,oXmBs*o$/e]PS];hg:*GOr6rJ5@3'1@m+\j^)N+K^bp2mH"3 %EB:BD>H-Q/.o8SFeQtQ&hs_YBY[`lD`1J`5r&X+')P8!kMdtni/'$J)"](u20FYg?V*,L,QtHX>DTlNrLhcp,[E.\5d']I_VEQMcuN69sLpf8Ia"u5CM$?Vt$bCs1tV`Io;FkCE<%*mf\Ze1jCD3nr2uf#RaZ$!qr-1uRbA^V8*3^8*];bkXdCgoT@<)>cEQ %G`43oM1^]b9CihsgF']5(sBcQ5.[_gBmj]d?hkZ'/=:HcDV#D^NkXDIoQ3*#brf=`F1*PSb]3Qdm8KBQRb*BJbN[q"LE!=+)AqU2!^DqV/&qUsm>[lZcCbgk$=c::/AW1&qn(g?.2W %F0_u%$E=(89nM<,S=]tiA>k[&mXD*PQLajMgW1JE?CTBhlNE)h>NdlE/[s1fPpjZ(oh+N1$?TBG3\pW?>]JP(lupY0.u4;1D/f.s %.Yn0B&0!\V*YlWda)Pb=4fXdm]>^Tb'G,3\L`8GCI8I9;2fiGPM85\aqtrKMYl)J2ki(.r/3*BJ;\rE?(WN+e>+3C_N %C%\n7VuI%)cCa!=,rT9(o^2SIWL^Pt[!q1-%l?;(lJL8Xo+Gumb[3SqA!O!mJKJ[RipcK7?i?f@U(``oJek,8QK*Bi"J;m**im'M %+QfQ'^;E+^C+h2q@6@#,K>PgDUqV&%-[VL^e[,f3ocSO0#heAo2IGNp2 %eR[:U`u7[V2ij"1C=n/R6VFjp2%H_`gbhk,&3f,OlfmXq@aFB3]/VkIALd,HkV(],(3^9VW]=4:+aRj`7\1KP$/YkQi/q/Q(ubZc %7Jn$&h%C.DZd0o7d.pE'$&3N#J,qG7a]19.1(=*p%"[Bf1CW6LXp<0)r+hJ2rBZAbZH4fm#;PGR0Zc$@Vs5t&`41Y>hEe&SY/4fg %qBm->mO&2VLAoe(@$G*`%ke'*DC^5e_m$L,dft:dhFlVj$-dknh`fsiA1k6[1NrRQjj=sXZ;OI:[,eVc^YgehBfh3@[;1ff.\IM> %Yq.2*@[[XO3M72H(Ng;hh!tVUG#b3#7T,rmV3r4hmFLBWR94DT<`l]%QlOKV?P_i/X#N*)NHO%!S&mZ=Wbs<6SWiV,CUOLr3M71; %?J'l`#P?GfHWYnR)ta!^1=[D`i6/cU;srSe=G.+HKq9)%i6)/7eb6HRmc8n[$a-*BEd7^=1K/u.jRNFY %Jk-9[S1+ISaQ5FU>$GQ*6S;0M"o0jr+I=J6_TtCTjH?96Srh,/E!a?'Qi5npe/PCrmt)H-;TRr+\;VIZY?2PYaQ3`i*bj!0GA(>XLKMYm$,Z5p;RBi3FcC_F#qO^]cghb^FVTJBKN3Q+]$apV3qa>b6HRT.sB. %/$/#j%!$W";fs-k"M$Vq(Oj+MKNt!"KhhckjU&FrKdmhuWlae\AQs&e(&NJ(_b2+0UjFS.fC.fYJO%3INaHJtbuJ6E27eItaERU= %*0=YBc`hZRW;+W(ikR,q?J?Qc4-?X41hD_pYaT/DR2&i'/]UqaqW(ND[c=(M6?,E&W;'$]qIF@L*B)N;&*W6D+`IVOS((5Vk2k[/I8VM&-)9 %(>-etRV3;c-&(J9!hWHEF:-2J*X\V9itG^p()EV=:[PAN`WDk/itF4Absi%/j1CchCTS@]0da;/?:fHZCTTi^*!DrDi1tZ(=Zc*Z %hGms6;#Kk**;daPedC3?Huc*dp]O\??N)On9Lrd'NS?6!1Pno&DI#G?1Pj%XAeJ"Q_rsJp^@]c6U4(p%%p*gpM>Ec',T6.NhS_Q>U0A4%7 %MKCouGGX&lVp(kjX8+!O*=j;$gCZTlXI9EBI,eHr#sD]U*@4nR(BC.F6TSaVDZ %ND,nW8"[JMhT2Bh+;U^k?)L)S^.4g/8)UTZ;CU^PHu+[%G*Pscloe(D&@PL%ffshEW)9"t;T]UOJ<2aO8h&BjAEK.TNq`iFe4qM_ %qAt(YT&BM)"'8)Ti.E0Clc#]EV?G"P2c$tiVo5Z7b0Ml\Y#neQ/Tk`+EALT-MYKX#507?7^<+);Be!2"RC66+AtJC!Xo6>LVG#X58Q %#LL;-W0D=u4:$:JY>i"O&4YM*WgdEd4]FULFCYYW00;T]"On8ps$.CGKJQFM\`FP0_f3>2(F]lCKG %;N='mD-):&V,Zmn*4O+\VXt130^f&AUn[A;n5q2=.3\0TEV,D]UCDq'4jF*Kj[M!;/ZP2\bZ]hK-I\G-/r9[TZ%[(SZSi\uJqlD1?"_#R@6>O,FA.Ys0i %;NL$b4OCt@*7:<\)X^0c-2MbhlU!2jVLLfWC.`TZZ>!30kdT3d,rXaAL\+Sm^33GfK!aRdA*_it/,D41S6%k;YWLa2^28:CqN=*p5LGQnFmK$MueG-E6,8j7KQ"ip_nJS/t"En[Et0F.AgH %H'2*r*`LA$1JZ8fF6+F?f.Vl8e'iJd3QL@j,/YV[:e;A[j7N?9,RU,_HK\XK+=hn\H@^4C<,m5W\fjg(#TTb?2,&"Mdt=Xg0p^o@ %V`15l_';\c\&t_9;B4`h$j@6p3'EdNBVUN2`9H5s>?ds,O#T:E-bEnM,T%mi@"5#"ZnfNe#>G`H3DN?]D6"VR3'H2_jte%EM%7;\ %5I8mI9n]tL)uX%3B!%6NR8G\CBME*o-Dg1DL$c%#?&AU7#[nUn,"C9;?8oh407H>VE.U0h+p_>^E#ikE-esBoX=q%R%AL(X.[o[3r7V$d08Z7`=8f>2_pHXD[(RKoIQ;s %%`G+\fnrb9jtG<5h[ZHV,JJ+'9c&0Uf2N='AmNl\gk_XoV3%obknds7WN9c8XKm39M#MQ?(!uSnM#N_:lY?UeAn`+&b=oEO"VRsH %^*KYN=CN$:qAj1p,WP4'[\O&m^dC[pAud3UZ=B/cI!lX,5qlLl;3S=:+N;O!AYq#RPJ7#^'p##ud[Y[cH;TV:ECA!H(0ETgN\CRG %^&M-X$t!n\bV0.?L%>gGTKT#R4G(Sf(`ZBRXo.ZGS,irn>Nf/=>>i4Z:nj"@d+F#%*"aVeKX"WeNeioC_MQb5f:8^YM'*i??2_!m %9*>ZcG$Va?U2hNE?JUI6%QASp/!gMY,$V3:Yf\6nL'X4o6WPfO0LUGR6WPfO0LUL0\oNXX+VM`?PtM5g&[]c8XBZrWLd2IaZ>teP %+bDd9AE=F)6\N-ki@:0"(a?>IKu%'Y9s[F,&G`/k'36^t0LW.C`"mR-NC2"E1-FuFU+SF)MqW[EEL5E2LN"PLguX:%Gc,s#oH8=0hH\/P)V/ofS4',q1j?'Mia?&CH/XQ<2%M %dBBruR)!W9ElbsZ#%Z"5]2=aG'.$:?k'3(WE'0Z<9mK.Y_!e>qc\`]LqA4la6[O^[1WBABsPYq8r5[qFL*^bYE6PEs&l+fka[4_Z@Y>EB.GjVdfppE]>!4IK.a3:*"9IXB(_j"=)%SgX,+BN!jP %Gqse5WlL!XkK.g.Tf99$i:lZC*1JoN^%mS)S0%$#oC>#3N[M-&/+::Bh-[2cEI,'2%W6947bS1#3'DZ/3-h)h`tPsBH$Q"J8UA$3 %:T!.Y&p0NFIXCMYC(5o6!l$nY^\^nE#1,kdp6`?Ol;]aGc_h-$(cTlPG %5K5_1*9/^N/]ImDfi9uD&=Ah!B8Pf(-/`>Bi %?38#.Ut"K=[FjhMM9=j&qP/`#_f@ae?^L43@$OW/l5rKCiH"rR&'kd,IaDm9*8K#VdtVsg4t/RdPS.8+Bk8>tUFHF(gDROB&*G;n %32.o[K>2tDF">RhH"_@X7_e5c.pq+TEu:@^h?C)8-52hVD`+FF-52j,eM:5C'7-$;>uDGe5="flWCoiZU0p9?W@k/Vp1H&@0M'$/ %1:-I7:P0?dQ\?2(>(`&%G!I3IW%nHBSl!LEQs'KE65cTsPOp\i<&e8qDe1\d`t:BEF6(DATp4j<#k_f;KL;[cL]O>u<'ib@NGQ'p %D3\7Z3T.B6f6:dAk$TkfZr0%:TcVKYTp=oZ8Ym'biRF_I;St^loCr<0'YMVtQ''Jm=mtb@D4f7)0HDouq:`8uWl^M]B&c %M_%c"%8pMgO):6d5(,+.t(J"C6(uNG36&Odk\`>\s#!2YdL$nD@S_#\BE2Q223;AR40N_7s$g6XNC/\8l*ho:;>D\G1:ZI!pF:H %P^8\^)_OU\:?HPCF_;cm4@IOZh4:;7roS_b\niQQZc_CAjC[kO1d3IFpc)M-p_rjK^uh=`-kJQeKD/o1p2&n%UG^X#R0P1LUIU+?a`;q5p9dtdKi:i#F3qh.0Gnn %LnodEo15mTJ8aOujAlcpmTS%Y5Bo=*,jAG=U>Xib?P!s`*X_3c()95kY(omggZGuaBlhJr;p2FYKK?SimpoF9+/CeMdcIdeI+u=_ %FBa`s)tcd&Oc8[Y_q.>,jNo2uD;Cg0:Q,o6qo]SfX8QM$f59l`-?*E(!J-Ni_scoS.f8%+/oG(MB_M,m52&3hSfK,7)i65TN^^]5 %H)84sMqQlf(Ro^W_-O-"rN8]2C9idf83)]MQhl6r02_?J^TsVHWa%.Wl[*O36(f[d5]?6^YkGPnbF[j_'GL"%5TqQ/pD4U[17)aD)OtdU&l*!_>D2T'm6H3 %equPWXk6jD@;nHt_$72>;:240mc`2fB\kHLBO'oFm6RQ6TEHi8;:(4O?_,fTkS.l+#`EQ&6GPqhZ7F(4NRW+K1i$lo$LFZO4n=;= %.Sg.lYjP0o5cK&EE2>r.c+KGdoNV6SkR,QsLae=LqE!>2U.T(VQE$X01G7#_]54S,N!hHEL$HO\?5I;+_KJSY6d!/08p(U0>:FF` %%]OMZBj,`HORbnQC'm]1%]QY8g-MU-Si'%2o]Pn[1da:1:`!Xs!i]O5Ds3>_d %WuII^V2ZQp9V\['J#>Fa%="r:;2pnUAeu$"4[&3u^LdCPm%eXTc!WAX^!>]aIHg7U]X562dJXqF3GijA9:$N-/J\R3ec7q`p%#>r %%?Ti[909bJj?_C<7_i-\3;U^gj-!rCfD#&Ol'`W?IlqnX7mH3+pmTEp$3`dT0X=*3/;34KYZ3kbIH$_%^I4g12h!/7o@Gk)g&MR6 %S3\NF0q:OnOr_ngJMWm"N%(:UT0N%q8i7+iB*9TT#mY,>:JFY:AK7e7Xs'd`4sVR'VQrlpELV"HXd6jh#&1Ls %NA%*#J\BU=&k/fHl1l;D)$gGM-nD-j-+A[nXLVeR8_Q[B@'eRO3kp\61;gGG6+XaW_HMZ(G1o6.H8b2&*`rB3g@jR6^0=Tggo9r# %Ea4Rq0NO;K0;T#-UR.CZ%%d!1*Snh7V*EJTKI^)Cs*4=V_.2,[Y>8Kjo,l8HquAg9,hW^e3bNF6Pu$]s;IpIbg;Gr,V[`shtQ7/j1$o/*nqrgd[t %(hV`ilmGfpp\P/6YJS'QBtitPAu0%>>(mBS<9W+!QZe+&h+4#Q\TbQofX2Z4e^2WF\2;(X3sX*?$S+mni8[;:+;f-FfXXXU;N9M1 %rC]h?ijDG0p&t%-O_-A!;`K"OK6IiCFLomT1Dq>$-?q"m>:.6-D1s<&60(q*`-*%H%)2lRM/,E*IYD5**@3KS0`:?WA4DrANe;Y> %6U?l&;7+;I[Y;00?fQ4CY-j2^i1X8E]TBt*XgR50ErZ^;6NG%[=;hj=07H %<7,r88's+4cU-Ond+OiQ,4&V)db1$<4&%e/XKtQ;T8k+p6L)un=Q`8*BFRmVKQT1U*F*5?*W^;`H0'PQi(Ab"he)`Z^SUCAT7F?V %LL3Sd)uUhQ->obq)c58n,&VdBRt?:$_4Hc3`!mGuj2iWElHoHC)r+lB5_nJtgYd`P-ZN(Xf:i#h2M)d-\=oX6d$i0HLZXZ*cr8%S %LZXZ*39FLKBH*SV$S!0c5AamkL>:\GAf.kp#&Es=bLV\#\&.h`>6B"ZGhU_b\^-2D)t/M1.NR4EmKQr5p<]YANi(N-9CA&%Ek5V: %06G$;'&9lgTo43p'JrEpqU/Z_#.`q$f=j%9k]2(afp%u(ZSE"FE,u)CqLGdo6BrVb(-$jdB(^b'?.n,QKF@Wq2]X2JkniIg %QhsMADUKLq2_1qWgFf#6#o)lbmQR:I%jn-nNMbM1R?XLRCJpGXPKl'I:[]S9X^IXV1NdC:^_5!5+:dG9W?%RW]?s.5>>P02E5Qqnl%LE/<^lgAb/6lO[5m9QM":Nc9ogn`P %4%fYjYY$K$!CE;'?ndEFo)uq+$)h.U,^BH"dKIp@$!Ok8eg.]/QlW._`BU_D!pKU"\+n"prkkT-#>Qc*L'L-MfA[nHBq0>9&+=4[ %O(]GE(uQb10)i]2#I"M>Mgp\'FGlM6]B/m$#B^eqZXbBm#YehV_+uD[P+dt'!]VKVJG'6b,_2IYqTb_(jXQ]*`SAi,=q/$Z&9b2P %#77%^13F:!k-=R36R1Yn9)h6A_84ir3V,j`)>5jY\:OU&(1Dtf/.?^kcOdnD75L7Nf/oP3&li[p!jS%[Wo[ek0or4Z:6QdI?2V*Q %J<3.4-HC2(/4'gOkbLfUTERF$9E!?ferO*4:K=Gf48"S@b*o%-1TG[E#=/cM*G2]&<@Y@`]5??j+qnf.ppJcaa=q:2"UE(5`@rPe %;KE/acXEPGlFsd9S8)ssIPK2/"<)[IeemUC5k"XK%'%FOn4fZh6h-@EBs%Jd\J6'P!P3+0L^&eYW\iAE9ff]NmWk.gB@7p05K)Y[ %*C45u%rl4,=_J$,:1i]#EMFC:f;B5jnHp4bL`=ThgOGaNQ)3:WO#c]/Ej`M`'&*]j+m>^+UD`"g_U\'ll7R>8h<180H.^sG/fVO! %/hML3ZeZW4"G4_JmZ,Q[fIt7nmZ)9%qCPt>mcTlVGig=b0E'ODD%1ZSlgTX6B<@9djBe6(U]e^QPSN`V'>_EMVilPp(`IYmA6]i6 %R6"s>"h_]+8KF#7%68m0la^PZmGRp'!W)8/V^:o`0u"sE*=o9oI]6g]5Ws8+"sVBiNh([ojQfETb;4:b`![?W4nI/Xe(>/Pq7KVG %9Ok[Wnk1##a/bm8&KH2K:jU2"+E;!JA"FiRK#fWX%"@X6+6cJ@4LS!nbU^[o[n"mSGdUSq&$*6(G\AGtE:R@LLklqH;Z:D/rY_5n %M9CKaO#QmYcLt9[H5GbRcct(YEWMr;@eSFLCV)MeMme)tUkF''XaZ;*:mH,:=_['6J=+GKU9C&Z<'L15bl5XBmTe"lfrgZ3X"u?$ %IW%@Vg9"B>AuV?LSc]]mi6QXeJd.Xd\@%R?:FV'!PZ4bYG4NRp0MbUS^:NN'VD+i+D]i:a6Vp^VCI^`+e_"VOVU'uY`Zj$bQ,=c& %C-96[hI+8<>MgU/9jI1^aBYZ*bOok'g:]+F>SoQ&"aVsZ4I#s@h;LN)W%.`bK.FiNK-k@+<,8D^7m;R_qm`+*rF:H.7V/F$[Q76Z %du.,fSp(gq^tJQnG.qY%em)Bcbb5^B@rtrL6/\F])i@W$\:aN2q+<_6"L",f`5n/1IHDpk'p)/ER@e"q@YA(12P(AWI[TL]KNiAc($FIqsr-+Hn/&g<01g$kS9`Ua-_^7-A&+EZl&T56ACEOUW!_i %$VDnChgDrrlZm-Pa^>Z9TXG<$nSBF^9QeXm%#4\[=_k5:/1f:E9hm>B(+TL@.cDkG7+`\%@!Qj(GieYsGZHI.$X4AKrRL^V7?4R! %G16l\iG;>S43H-7M]oj%Sn8KEfTDKF&p?XVA`XGB`(I*Y/h8H3I.72r0<&;<'EHq9)^W$X;6oDtTTe%tODD<9iQuO]4$E4P9En>\ %;j'g7;eAd!9J %'$m;DP8#VX^bZ<_&BVfi.$c_\GaKTd_Q-Ml@@0Q>poo(?dQ)$5m;tRQB?LU.Hs#V%0R/L-N";Bg%o]s)nKOmA*)/Fb,,\K&H*P6[6@FOk93,tS"j.t'i"AM]>q[:^C?@$XmIW:h]T^0JY$#)jD94V!/aCddS5p51r'qZe.Mma5!`gNn<)UWP(B@Z9A`tj!pG(F%%G"',k*>Ogm33eE:2<_Ys=o0(iSul#HO=H"R %0e>f#Ro4'L;g))s=4sL#7(;48(,PD(\s7\MAVRld$&!@?(D"f/qY+J$-gGN:*ZXfV<*p0>Z;4`u$/@&_ZHj)>]6UjqJ`;]@>DK$p7>7=CrWTnZ_RrCH4%i+F?VG^3P7#C6n:[h*8R#\i(#)C.^3iR(&>+Lb:5KVM.0D.R`>dpZ@T"%dgA %ANF#][+%8+/VU1P0sI&FKqNs$o71WPM-G>kh#2i%5(5N@VN+L9Ot;.fZ]>N1*MJ@QS`eC[gBti7EDG!2R&pO?()Cf2`b`?FK(OBD %QeAsl4PXh=PXYi5aQVHnSF@(&8RsE$SG.tqb-N=&[_S"t`bgE<[XbV,j0lfY>=,iW>!cg/ %3"'[C4cVGOg#+JAe:k&`$gs1]f2A0`A*LPI`bS)O6_\G&XY.;&:MO!\J'!#WoIdET-cCmm-5BbWKLJSe6dY0l8Sm7tcd7r[b8>e% %GH%Tor_4l9s)QCb[:l_G32DSKJBYq=;)M&3nLfW%u;b'F&Bb2sUUjbJ5iJH&l %#@;sBe(a%/`2odIMV8q7o\'lTWpD)/<-5VCs5#,p]ab;a$7@CGi-5VC`-#ROdab@QIabpTa\M->1 %a+g!e)#>l?fJ!u-_1"-m2U&g^"HacFAo_=a>5GI3fW%aSaG-*f(cl0^fJ&Ks_f''\Cm[48!KS4\%3&c3V!ms1a%@(ACfo]SQE*:1 %r`R]+\p:Mg->!oNZ=,'rVIamj@Dg<'"dHp;fJ&Ks'0*:+-5Ql'N4dds'9t05(TX6Jh(;4-TD-#Qb7&9Q-ASW&;47/WBtJt0(GR@! %\u>eE;S4E_#rZr-mO3Z`0k/!NFH>sd`&d-sE\PQs[aqdPHOWc-=cV]h4Nr`2:h"ba5cT`J;G%@Y1b`-SV8VjN<;"?Q.5=MPiCSkR %-&1#0)Zti,d[5&_D@Do`Pc&R@L[Uos0K03[OpXb+ %JO,91^'YeRQ32LpTGMKY?k9skcjO+q$i#m[:DD_[NR8<6[H;P^!PTQ#9AR5LD2Ii*i?PH3ZCiIdrMt!N'!_Y*28RrPG\#W5OJJ$Q"n!H<@1\$g#F2\B8R3*HapGjD$cji,]"D6XH:j)=q@-0ZVNX3kI?T>5B1]fIK %JMp#91CA6Tj+<].8tJT\X5;ls+#p[fk[`;#8IUTo9`/IF4WhCn8`]Khj)\kie(YrH(or_5ao@q>D&uY^cf#Q5r7=4,N-Q.0rMlZk %H]o49os.mI)h%3/jV"uRll.\sMs-4"!N17efB)l::e(jd8h:rjcs1e]$-e"*MX6;K7m:c\GNY0q,M#2)[`\jS%Cl9MK<0J28h)%*b*3ZGeEG;jin?;6!B3-V8:ccS^_^%Joe+PMH@96``r; %pqi%nqM&+>PA**fko4(dI\H+aV/M1?]a6M9Z1JL1GScCG,F1NK6P'?S(/d$.K$T%W,BiLgYV>39&Eu8cko4(8OhN'+55NWpUIa)N %9+Uph)k!uVQC])FZ.K+uCm6?'+iiN"d<d%lL[ %S7sA0F4/lBdad]+Q9"2I1Q%dY6dlW?h[k]'=-O`1oF8(*\!jHEQ9P=FF$M9;41:1%J$WM+fb$m7&<#FTPT@%$%C(LUh[rN=&<"7q %YTm%'`!R]:7kB'U/G?bTG/Vff`'SbPD+?.*6S*+/UeF4QcU8HQBXH.^mAkgU8c@pZGUBs#*Ib8dq@G;fA^CT9Bd;(S"$$8a"27Bs1[C`)&p3aMLr`A5MQa..C9U=^"pG8*KNF8>3B;AWq2dh]o#,r#ZLQ[h9b %8VomC)XcNq"h?aNF2<^AkQsA'r-"(WV_IAVeHo'qG@#@I]e9"1SE-<`NIq0=Z%9c(0K$dKhi&BTsrSh?stpF12u %l7;EFp8LEh,7WTJhslCTE]ROng6I9p[&Il.0lWTH"EI-?R6:!Mi_-Sn]mR9De*\Y%$hE<'o3[XK\b2q;0b %1IF$ll)#(]IOQ)9M4fh*<0WBjTi3S6:F/XuPoDBP2h8.(;pi.JK)2J%Ni+55Yk1l)8bNR8#;\T0Rq*''q:YVDga%4`mkaW8dR:XH_:#t"1&-gicT4[PiAg':"orqJnU^R,91S^ob`6Li)DF.>Z9]##,Q#U14@if?k:oXtG7%TGU( %N!MdHI,`ht8r6CBnVNPD&K7?rca5&c./s"[X-8GWU%mX]BOGJ(:eZ6<%k0Pt"(g(hB%6c65$C\pT:cpR#st%UiHn;BnH3>1itHP- %h%@g$Xeo>bI]F)('RtL^^'bN>WV)oI\LG";-7/N$#M?G-,*\`jFN5a>Z[)YX#V,^uTb3/H5%1%&f*e;pZc$dnlc6U*g?fPJ[f8Pi %=*8eC$bpV/D]W:_-D"dTn2NYl\j%b\h,&+j/[<7@$km77J\`=&8"Hc>FRfbM24]W_6!s-U+q3Ma.A*PQ`9f[*h$SL;,J)lrL]#Re8Y;S2n@Ms$ln3bu/K#\,F>K)K>RL38!_-qp5:cqp.UU!6m&<@06ODd*`m.(&q[g %J5ZLCRUKS+!GDK2@YG8H\=XK/Wm_B'L)6pF,d;is;qMErZK;toJdnr8grQI'Af^]HJ=d(+l:GR@&=(a1-ZCUU)L1T3]C"RF^@.IR %Go)fp"eFM0'%l`3DUZ:!%7Q!gp.%s)e'r1]BDI.$Hhl0_2ZbI]o^ltT"&8)1Sm^Aj-[m/@?XN3BEA95;s)@BP53fkYB8o]T?BaHI %8=F1:a>HQ/_sVF@R%Q7il9Mde(OQu>6j#fF!MLbtU*9?qo.6'7>=JbW8u9L!QRmh0`q? %rmohgi9A7dMQur`4a:h7f]'`m$h[,lIt?LB(8FC14h.O6gOBjVK,"scGZccX)k%p\l"jiK'&0#Il;]K[dO4G&k&&?Sch&qs!Uc3T %?u`ssr4K6=/.P5cm#SPL/*P$30f8Pt.j+q!eLXiN(DFCrd-e!p`Jdo0<)b%kBOS?mW/-iR$Ac$U)6k3@,r=PnJc7Q>jGl/T&cgqh %l^ %jdXH>U)[D5CoO;\riB1P^sQG>0'T1(2@nP5BImF7grJ_ta+GETob#=+oiUCU!N5-\6GVhl=6cqfiQS_kkfF\7";0SD3@QsNW@51/ %DD.7EH?D")/*-5Hi:d(4?XXkV2m0^WGeH#'_E4oB^Al&7Y4ODH:!`+BCAROFS:E&69F'Q!=6^X+2^X:A`p;04REp,k+GLM1l56^s %k?N]q?B91S;dASdfrEgi9Pn=9lX^[mY,gr5U\8baPD$>H/G//"4.-chN+DBm@rdkt1N\_l_MRrp%s$EqG3tqW_SdL!mDBnZt7DFa`V0]ASB#CBLQ1`1CN:,cqU1@dT0<8q8!19bYVOi!^52k,UYb!Z""doDQrB_E[U&C!a.1Jd!r+JKa1B1C*jk>qBD4>ZVY#spI9-[!7s^$XpaVO-j!RZSLEi(jhU[@$V6 %S2%`G1D8"Br>*[H1Xap,^n#..igC)sDk\,+B*L@@I#2G\Sf(Sg>`!&lU*2ZR-[:\oWnhp+YWYcgoO0gNmJZRPN.:EqJ!]G %QCHpJmCCR]K+t*)PV\1AP)cG]1PM%B>(L7FF(J3eT]g, %2->skoO\,Dj!In&m1cf$E!-Fn3r3i/B>UZ9,1.!I3:!57tA_#$8V6(8T0QpB5n:2S$i^5;!(a^5"5oE+_r,cuP--8sihr],P[N#Qs1h@-!>Q4DH`5l>jDB+\13\Vslj$7qPLhQHu:$R>>U:b&]Q%:9Ide6h,Q%nhJA+'i1J_bjfRV'gqp %^eF]\hNac`0N3H-@X&7(e6deEScU_@(Z'cR8V+GG?F_O>N%0CJ"tHHg/UdELTG>JNoI71mDAO&DDq't9Zu\K9>#om65(bhS/UdI9 %K7q7p/p\*tg6R+V8&#FRQ[EjWh,Kfj'tLsa3B5d/8hQcd?2Kb&A*9?DO.e@!E;S%.r@Iam,\^l4"'&XRN^V57,`AZK.@GIJ.&E>U %_W["&\f[%_c+F-Y^Q*N&W7'rkU`&%V+^=q*8i+:4c9dY*!ToO`(gB;BRIO:4c7Q3EE&cSq;J"MmZcjY8k=h?Z %2`$eU5A/]G\D^S^@30IXep2UY?+\W,H=1n"]nQ[,+afVrGAgE(:SQmZ+Ju=rL*7[m6(:I`GWkre/k`g?\VKlp$I!M:pa7g:ca:-bgSM6N:U=7fo_,@(0ZRMP*p>0K^e3q$p"k %7on5BMR5[KGSfcqAdGM;;`Y5oh`;BF.(F'!<.#CoGuJ"rKJ+B=>beQm=\d1;r,@oU\"lLNKh!Y7kqm@T">WQKfQnUjr>^)QHH^u!gpCV1CgDK9)ZQF"e7!iHeY[pEIkDUGZlQ;e+PO*VP#:\;I65,jGq;rD6B9g2.'e%*>FbK/)Nq)n)K%oLnN%797\( %M13DOhVa9AfF#!G=htj0'3!Jq.He@.3L!2s*id5.*t^(W=!OrP:0!^fGi27,'lj.P6iZ,N1d<++RB5Ps$d3;`GA[Hqnn[4_EjNbV(nrNWeDDf\A*X1/b6c9-,.^;TZs:<&&<7d*i-d+XB6&G%L?+ZrR&,k5dNL %:8-uML4]AJm-"95XBA,24pti4\@"CC27#9NZ38R_R:VlP8q*FO0`>_;IR`McoRHU;ISE%lm^M.:+/@BUo,Fl\o:[u2M)t*Oo( %hcmu'H3T3%'71O5m`5b7p$.RsBO3]f2a7/=s7k"orDJ[&PFO5@1iLW??V'k*;g*mZfB&WkY=B[_TdDh"9D]pW^"/h1(=pF:691o> %.,Oeg&7#e.;k\G'^9,%3(5:bM:[iMs<%-;H(:+_dpb8iX`$3d!M7@>TP'T0@`JUMtg$H9WC'mPHc %]'9r:W.l4OlDq@hJU4il'AWi:W_eWj\S7$rR4iU%I5>6lWlaO@T@p?&=^,pI3'K[*CMaM^9%sYh(niW#"pZN%kS*Sfc7,"7SUZ@Q %X\T`".\q9kf!dF;C"fAZ:6;&HX=LhZ-[\+C[O\koKuAgI7pkI'A%d\a7aUt-;E;k^(F7C"E`tQem69M)MT2 %-ZL#g73*h8o:at+Q8[f.V;%;S7e&)J!k4<=)RYg`f>4&fUd+&b;Ve.A%-^`UHJkT/[Ml,rbt]3FYd0raQDN-?hD+7t_%BoVRfT5EU`kdkS8?Ogq&%sNJOMGST#(d#Fb?rXT. %n`M0ps7B:[7NZkh;OnTEd[/BmI!$I*mf)NY$YjYGQ0;o_IgEt4P7I1F]uZsGSGRbQNabP_)g]kTB^""1CNF; %OQ]J;\H6]g/AA">;I^$j1a`e&")"*j$*Gh2g$W7j`[*g6U[:gQcW+rP#HH?VC)hSok*&D4Ph).HDW.SgR?@Ad/Ft9\=(*j3kp![0 %0Ce[u'#")n.P(=k,ms+3am*u+5["knlG7Y"V69-Prl(Ip!F_lf\9dVBN^u.d.m,J\pf%ck`?CCGcWt2e.q$4R-gqoC_\`D\)THfX^ %\`AF[+BNtXXi+oXK3\)+Qa=m0@$%EQJMY;_0ZXAc3:r&QO)Z!FEn)OY2*]8lOK1Rm;ZHM##.a"4Ge`GL"]"A%b@$EIeKaQ'%!'lG %K#hpcaAnk*lb[QoaL/elKAA8c:Isi4^k4qUq?6%TIY0pPI=;)!K3\)+\td>\0Z[7dBXE%KK0eF.6A9jaBn)8KO(0ime0f2_o2$jd %laMp-?1dIK(qjH4f!4fX#ZT+6T]^YrTq&i^!+$^TNbF-I^M#Y6LinJ1V:Icdp+sm%d3mN2_Jhn@7-b<13I>lo5+lE)HTHrsd0^Pd %FIYB-8tFm8J?_KQO9mW.GKm];9fB[6F]LF89CK2*`0fWmb6E_rE%5cg6lR-&pH[ViF\mj&9ZNo< %Q/5flDC`,ugKj3IZb('AZb^oLQ*r3QT1M9':O?"&HENe6/\!m"h#Wj2^T,pPipoi&*H7nU%Gf."3T*U2)^OR!ja]/cDr;bt0s0KL[K3ub %/-h^0Im_aTBF[#.hF,sA1^BQ8IfkrMQ35G)^Ho/9=:ROHV***R'>:_o+S:q4eNW[S> %VJ9Hh*!`!Nmil$+*8[%#Ha$q1kHOsqcbG.oJ90[REd#6df+6//=:R<&qOC?r)A!FrEko64k;YQ]rmKt]YANc.L?3r\VU)*T!B3FH %Gg?=.k]5h0e$\:KcH_#WNo]kY5n'cm32GFinRatolmZ^ceGq,Fl,$L"d)HTF&2[lLM,i< %Eui.;+Vr4QgVk=I/O9Gohu8hNH+BG05AH1A`Dg\mH>r9-(ku=3C9l[WG4Y5L.9\9jRIC-V54'C"X$pU7O8d:=Y-rP&2,IAK?E^Yi %?Z^muDA8adXCsaE&5hsq(s!U-*Ya/oh2H,H,[t3q\h.7/8B8t9cL!lTOJ:B__,%ANgRS<*rCq:nM(^fMf`cX4R4EDOXe&Lag:+Vn %/#1Bncn46:rrQUCMqCk`3*4446`DFO:9#Fg4PoaG_+ek7p(:H,`E.CYo][i$CQ3D['rC0+:g;t1CE9EsThYIGO:3FkI/9GkKKije %@dO/b&/HR0CaJC*N&mu:'=Z?%l)=<-mB,B=/QXBHBK,\Yb[L[F0dCam2K<7^I,9-CiE\I)0XCmD_:*#B8.EqVeFkLGR7F2fqIh1h %Q)OE)b;?DEQ*c!t]3);>=SEQ:"SZ#kTHtgpklAG8&_5Nn\Ebp1>[bK8cnRYJ[d,W;qp0OY.'l:a2rL?qr#:.$Y0C>U\F-@*Ib8ng1RgVl"N8Vir/!'XBOh+%ug,4"[uX]A#!"/Y+Pa9gA=?"<%0Xr;Y'Zg %RI;)_retC.4J&R8K,q5,ee+76Q!-(iLh`=,0+iX7!9p=`VVc*`bVg=e4r$5#gd`a`G(D]EIGIG$r,I.5tf[tl)`.?<.`a.oISuM9`0@]/6>VKf7(Q%&6_eWTDTL7f2JmlVm[BhB-V!ARB,:RVo.%X[7cnOZX\ %&%ku8&t`]=S7CZCD9F<[(-VPdfsZ9kD$AOuJfA$1d1G2U`Q0E5Dc^k!"r]&4)CYY,diV?btii9GV6[3GgGX[C]:>D"gu+)B%Se/#Wi0!Vi) %6Z#h76&`55(i!hb8U@K*Ki.9qBhJt_AkUP-[1p-aU))pQ??&)q/TS71E"ST+)8B/#h:X_2p\G>qFBli16%+gMl@iG)]L0oGQ#FtQi6g:oOg8aWL@h]"FXr5mg?`#7Lns'> %8%6YRak=(S,P2WsSP9(]53$=?8_rZH+,ROCrGQj2h8#?Bg*VW?Oki+A9($9K4g=#t\?or[Q@Z/+;6%;sRpd"&A`P7RAdbaLhl/3U %bSJE(>,J`9kEVaK<*)$W4Rfjtl;S#>$MGh,6U1U\.j5]+9jaq@7n_#Wgghj5_g.WaHVf*gh($3)p_< %*gdC]!Y+.?fmpPfCX'nMLM@[`>1B/FYHe@#:^Y,CZN8B=#f2=PRafTZ>.b;h;"ZD.4>7`De>L`<"ii?#9)akFdCjV.mR@*"!qeVm %!G4V$X]_Qkkl+ie+Be5B?H`Z@!G\=E,1OO/B0Z"?=PkqM!HrU;F`+Qi8"]Zpf*@7pHplEQ:n?rb`jA01ho1OE]]R&3GjrAUY&iC"Gd'-p@`J#Hi[#h+K;Fa2>*:h.Mb$``mm[pS\LP^hVtp0;]Ql'R %4BTYf]Ql'R4Fu4Ua!.-`:T8F-rg*ceY9e`QhsmC8J?`od,q'T>,FIQOe1u&l9WL0ofJqWIrGm21#FhbtNLV-[;=%-S#<188n[D0O4-@esege,]KmVAjiUMd@(_ %>H!(DI4J1j,_uA!6LS?n&=%/AP9TiA9uZblWKY1bSU3UO4nXnKOkh2W^umR_&R:>'%On5Bj"$,5_e`GLQY-(+8]O26ZI][[dd.m$ %!km_sSpU(Wm.^_^Wk5]e1N%-!dL:@:FE:>2d`dk+\6r'h7@Ko3R;u'F3[KJ$kPsO@VWQ4\qaIX!om6CO8S%tLg##aUmTSrg]kKtC %LNCer\#2;f=Ijfq^-+cHY-gs2)[akO%#V\Ki6A4`B4!4>4%E/@0EDgUHA<-jFh^H2I4`B4!>/u"Pp\_g_#Pa_h[4/>$D[jM0 %'`c(ln>sUX^H\_mWA@d?:TuP?h48oL^-.b:_X?2`m'^3&YG(ER.#!GOR*U3@Nh]]l=-7r/J`diY0dJDIdO#R`@G6>;.1b0$Rn.SM %ekFO6Kk4%eq>HcUDDM/c,+faS?+1(fEEdJYaeT>Kb_1h:9mcl"BK;Ymfn4Up2!r8?c1FrF<7QH;c;*h?,?8G_/KW-Bdhc0\9N#Y6 %diO3S&)?E.VEG:0*dT;=9m[St)WZh(;:\kele$:?79NFC9_sn$_dL^*=P"mS!rDS')=%>]ANdlF=BAdC1mE+u`k#6k&AL=US2'(q %K_j;_.#\Q`8eM:N6g?=]+rh67`99Se,uJV+;+ss3g#+N?i\-/J+!ORL3C2_?m0c8d`As#./B&,H;:mAjs'cV[+o8d,Js;KHb5Z5i %KmEXD:"':Z`MDN"#IBUBAFu>$Goc%oZI[.s;^@7Dmh-6aoqBBbR.VqL9,[*ADbqmRo[Dr2)\@?4#qlo[cm'/p'H?6`Z8JK0C1Vra %JVf!B[n,>?.V-3"3p6^-HI*hZJQK7Re8Dn3^Ea0d,RPW/gOGAS;;$RBpriC.W*)^I?RTR)>ZA9qS8BQ31F]!*[#'LU9T$N:D^L/\ %RT,16QkYY,Ti3DQR1r9TA2k"=UbFPGiFbJe;@(dc/XFZt]#Q4G>B8d!?4=oN0_Y;Yp9k5CLUsggB@hGMN1EOK3["moi@ueNC.Zt1 %JgS]f^s85l*S[p0jnu"T3a5-";tdXZqo;g+'Q?qd3[)CM;UCTBfgH88_/bGGF7!dpk:3PY/uG`5!1b]Wb"R%R$:/de"Qmk&_"7FA %Pp/=;"eJD-mql>V\1f@>9r@5nZ*[!JZd4`m9A@s"SAK(Z6S#ED)C^cMIBO6dk6l@B9+tS-?Vb %I554a78)H;'1oK^?ho12(_IX`g*!Wr3NehCL%.%XCF*^t+E %LuG>?>sZ#(\Z8B`?G&cpQL!!LO8AL4HsP*hGqnh:o6Bhr!WD#qT]]q5l[.CX<+W_>^JNXOTU0bc75"n,;IUQ^N\_?Y*4R&V[$u!s#6sg/3JG)+h %=8FW7"gmG!U+_.*5^T*BJYtBh"gmHdVp^Vl0;(I(&:GGg!o!5Kd?d-PTKNfjC:nYT]05U)-W,iukUq&l"gpWLTKUU^-dG5+O]7[m %m@fJrU^(Wok\r3AqJ-F2!GEGkV**7\oGEGjk+9pD&4tJ7dai/Aq]HEaWs7SQ@jK6$b[h!dkr##&- %g@JQn8-8*0\#7Z05qelo%sG(')"[m`o3hR:LI!Sd4V(U1oEN!Zp,qa@'!OkogEG!:'Z#)`ZlL>bn'`3I!o!5sHV-+!]n#f=+LY-; %7=ELfRH;h9^:o_Wg3WTqc>7\4K5ol5Z2@FsUjm:/TDD@Ys#O=RkdlGp4E@fhd!$WiO*K\5b\W:nE>02bh!`!]N'`GNK,.*:2BpOd %[*+6EDPuh!G4^sM0Rs?LO6G!_pUojS4t&kC$f5>9LbD,A4lG!A4gU`dpi;lnFXE54#1-eR&V:p8]J4rtBb#=qi5-q-/p_4^'koea %)PF]h8':HWZMD]es1)WgFEOm\3sO%4!Q=8g56fJ3K*pRF!$,g:76NC*tkFeS.=p(r5#n%LA_R`jfLY/J,_RnmNEb)hp6,(dKa0.R+?7%KY)I(\!K6s5$_n8\C12bWdV\,RQQ_D1b#HUQY$+pE'Ct %AX1D0@TaVI8dbEYPY[P4mm#4Gma0i:_;"p^gYnUeGNCg5N_:HCo=X*G4uk,P;qFb-!10>d$TRdr?KQ8# %Ns,K"+Q&b2mj'BfjYUe\f;*:AZf/_*<4Y/iYV1-`gRrk2:&I3jI57ebJj1OA7O?6 %DZb)/&#>CmVLO*O%)pYMjVhJ$_mK&E\H^Y3\>:kMG`oh95e!M4A^L+s#J,>4`l`h@#=5h;`-t,fY8bAMWh6mu'_C].P1`?_ZG`H@jH%k1\s6n+m(@A(/r]%%@^8p\%(oY:o_K %%bdDmkTAhXaI6:n7)-K0E#E3p=^?l#jOD2S+qJ>RS)e9)Jh@Ngh&@2sdHKc6RXVNOq7Ml\R-8kK3G^\m^Kb#6N`Bc'\E3pW2J5=s %`SKHCf>B$;NYs*hr"fmThESe"^i_D"0(-`R!b?b(P^bX<*/9`:C]6]Z5(c7l5QZob<\CQ>El!#: %+m%^P'1br\Kp@R3[Y.I?VU$BE&tF#_c.`JH'o9E1PrOlXg/9]t*p98[_ofskHn)7"&@]#.Ec[sk\E;d_*d?Vuo$,Kh%TP[h\O8mC %>et;A:'nJE"gC-7b__RG44lpdAuQ66C5^fjk7J4^fRjJl[j/Joq)m*+RZj#6FFS^:q4!I=^?5HD$+Z1#ET\PZMq9;YYWZ7_LDc,1 %]mL"t1'BP.l/dP15:eacBuVq)Pp(729YCR3Bg+RKVI&!5IbML"Q7'EcW&T8-GJdgcmNn6]hEcPd[.a$p5#c`P5t %PnK"pdUO1ca4\qn@7TY`@[OptifO(J9O/tATpEIJNQ6U'n)W#)eRQG7.1"mF5FnEqrR'iQ2K2FNd04jU+o1J2r[;rZ2cVCn?nIg) %*hn>noILb"C:V28iA`4KUeZA"\b_J"BS16pF.q<-ZI-8\\m0pqLpq9Y=;_PiKNp3!e`,=$n!m%+C:"AgpY!<\+PP8FTaLa>OU>\SpV=H)?YGOU.sUsAd,],bQ>B6qCQa1e3133bWMRp\rs1#cH3\0M:ZH#Ieo"_e6YMaj6.>DP4lX,!/\a<0u=!Sg",(dU'&tRj)%;-QUh4:nmlObTf9Lo]9]H/aYeQB_7%g9FGJD$_e<6 %@!X&L*RSjh[)-(-J.=DN9iWDPp'8%cB*5[Zl1UbXUt>qckq)[2`D5Q8m7s6#86dLBq=DJ/3c0=.]JHDdOtS:\kt=+!;t3jpM9Qm, %b>hfqC$!c[/?6j=GS/ph-dAXp>o[@LB5@3$3`$UrW5(,VF069XgY=I`@:k"$$^\bS/UQ8tX\1m^,7%"Y,TnMBRD(1@YnfV/qq2Dm %U/SatV);jAk-3#dVi$P0=PEt@3Bi$eTS!,jB)#"+iS&lE&fhQ.ra-lS;X!2ce5hc`aBhl#*K, %f3[c;Y<[-@UC/#,.u_JUlG$]aFj,;0^lG#aXf^5X&KHgjUAJc/*BT?ueN]==\_#qdBm9b2Dhc2c"*ZjM:NLD[`:C^q0j=,4A+d:BZDAma_^#_ %CUh&NE1_tZo]EcaXQ5_63*>]WE]otn5n*(==7A%E2)A>J2k5;k=R*Jhl!Nd7.&)$qlb[U/;H3*Zk2@Un7)EeuImV#o/=&cY+d,pQ %>o:=Sjr/0SUO'0eAl2Y`F&Xef@9sZ!)^MF"?$"JPLTZQ)))'(b2H$tS<]hk33O9Gr&APs?=Yc."==V/"ap;/\(QkNKhMie0E`KfQ %B/AWU,)%Vpe!*qR6_r@^iF&&i*a_!-m&.dC8\39#$T7Z;1!;]R>sVIm;m?Y7YG+)=Y5Yo&l>L>]I&e>\^$rQN.OD]dFdrH;5kqa&3Qnf;SBbEcB"2F(j7/d4*LC,VJ>fLuBd:J,P_,$;AuWj+A"j_(6+\!]*&%SpUrZ.54\MWJ#FZ"&qeZNWCVeDO3DR&9r_?kG)*UU//fkhW%N9;nn7!gVp'tq5]m3g)i2Fl+TaSG%nU/^bBRN %.VlA/,q>PJd(`168['ltU9DsD=MX)<4JlFO&)!?$P-iluQKb %kWS1l1?TD,oJPg.:(4[/HHjc]3PR#fS/5/b?B\]Ck.H?NP?u)g][05U==NdbRKAYD%uHAR2Wk80(_7g_G9L_pOi`enHn:F1;^ERH %KR1p:&A9I)prn!iZ4!m//Qo7*I1`fpR)Fc>MMJgSU8OrME*?WrSfm&A^#F*,T,[V"OVSEb@Su"^5 %q,uI@'[p?rM4r9umI4*#cZ`6sML8*A_=$ObHl)890(?a&cZeoNmaA7r2f+t/\n`o?3>=Y"m.CsQ03n='JnWTd_dg+/W#DA7g9#Ef %iN_+1)@n>CbNsD?4[*Yrb>=CmE.Q_JP3[>R_eK^ms.ZdP^&'JNXS,0J4R^\'g=>qH3#Pl]7osL*E&+`CHIJs[ph+-*aq.jFcn_nC %Bj%-@A=9NBW*u&LZ50b"TcV[.`o42V"h*YY8liP^ab=HriN_*re^BkJ`Kes`^:pg,ZJ;%oYZU;N[e5dG)j&T&&@-ERZeE6<@l\!h %XEK.Br6H,V-h)fh\YB,NeR&ab@qN,QZktNSJe+n&kONT5oC_Nf_/BV\amSA/l"jST4C@P6?W<)+an,1#o7ahY*dPKVD'JVbE67_E %:@j26$]dDWmkeB;jHJcmmE?6^n8b@![(.=MegcT@Mg=JX=m*`@bEXhI.l^KEBpAp1>(rbOE5+0(>U`UNTTqaK>UeNVj,:KN.b?_O %>U`UNBZVg!j@Yh4`Q[IPbObC%o0mFMQTSXD1gemj#pEBmOli]*Lr.9!16i2Q@6!?DHM>Q%]*_eaV9J61fsNs5I(_U0GTGh+kNe]$ %M`W.'npJ."I"BYi,L=t'bnlU(?NM@L6Nm#%HjP>!%[#lpABsf>k+'9q_j:?ol4Ce]Z_&:9iaA_jaR[MFWhtTVEW>(A!]19UkU(u% %!]4g"5n&eXB_I=FIL1o9GkNe'Vu'p(RNt.`$l00XY[EUooj,']=FfPQiKQ$=As5h*$d^."U3C0FFdGS7TShIFSBP-`_pk9MWT\fUsr"T1K!#Dq;]YiVc*ZZ$h8eWpp+g< %fqad/n#(Y"/sS3p.C"`+&lM;Z`L!bQP2PX1f:'(,>K,201cl%8ac2?0`0Wi;RJpa"il`LYJCPNhpi8nYZmNCiF!gG=OC";ma^9EU %U_e2rdi7o\g@H;u4r29%@F#U38hO2]V0_'fnEUe^4J_cI8M4)\"aWC0J?LVQ*a1,t"o.r#k@((p]g4mU->kqdu2qO-]#u@08b'Z?uL?gf^iKpoQYPtde'94jm[$,f(>\MH2Rj@@W^-[LPRQupFSM=4XM2S28(DA %?Kd@D1$AeJk@$t=]g4$F9W\9#>8_f3E`p,'1ae%XXp %B!jMeZ\BO=c,pBVMS44^eQ$6InWc;F9<'%HAAuC]KBn];J'YtTd6q"!q7bIl:K;aB.U_C[#:@sNrs".kCqKM3/=SN#[kU_.Q*/]R %3Lo`S23>Zlkf$DpZj']nJXpcnrc6\CrWDU;2u'!qq@C9Ygu3b2cU3:*rmuYO[+]ci4u?eFF/?[iEOei5GReGZ+RK %CdD\$T2,=uTsRJ#+?4W'VSu6sT-8qKE4aBC8)#&le`_S5UV3UU(1(>JniA@HI0$A^p-j]IJL%A(lnA-+rX'Vrm$RDJ90'BY %T];tLql=om)fkoE$7?.4bh?)I-])C>EZKRp@*j$LjEe(f<(j3jpPMEdZs&nX#MTHJ*Tf$\?$AFUl$2J]WoJnGk^("-aCb]mf.@'9 %@P@]W0i?>hM09fWleWRaPCl0QI<#3:1[k=9lb9lX86H(JY1"QG[:KeQIJ^lN?In84lb8JHOHCFe]']s:m`Q&NKs(;>Y2cE8#^"l= %EnsF4nd/UrKj<5cT`1YN^+b%O%W;@2\hE,*hATB3/]GFo^^?^Y2W*7>okU0?Ol=SY"KVkbONu^q-k>_Q_R5u-;8Cl?Ol=Sn)TRBdB"(!.,rDn^%Ad9@.?[>>_db,5gXX\ %aE>1'a]X!OUmFPbp((I'ALgaEV?*@U^.=SoDM!B%\uuPkCF5B$kdiG.3o1rgCO]2(f7=MG#eKF3\W39(@*j%'aE>*.13ak+[kn2j %230jNDeXr-b@#Tt5*5)$os!)0Se5r/cq&m0_3q0lgK1t&$odWisZ4Y7MpFbP[=WW<))6>'fHIMM+?aPdJ&7Y="m.Ed!J!9TdiRWMp>EA6WK//.Y0[tS2;@b %mOA>dQrA>'@.KG86LiVSp`AIg:qZH-eg)"7#.,OegoC_p"l1t);d82Zj/j94U4h'K*^C%qaT-.F]7A3iVam]EJp?AK':AJ?UfG/feM2O]g %]70Y@dRCpbNmUM^!btB67%#^>&XhHG6sV %:an+#+=QfKJ2Zj"JDcX;,Z)Pd[X=sjjVk.,!PC@%!C0K>+4P2F@K6Oi-O2$e3VtJgj>.)dDll?(.Q04"X&a3dmK'/PNk*1sgd@?i %(NZcr1A=n,H\/bp\S&Z:62Y^seuE*=]O&?uM*eAlUO#SB"QB]7N-1l/*R\;+bHW1N(dR*p1MB?FZ:`h6o$^L8di[X>`!^2,7[Kn\1deWVqsd(MiT=L_f;J7t1rf %RGYGgDaojIdV:_>pc05"PhOa*T$ufgG!sdK^cUh%7'sg9N?D\UWjXca7)`]5 %N'pUEXoTjBV#n#1p>K*7PZk`0M\c!O1]SiK6@]$GP8Q3_="<;_=j_#Bd7qQ:[c8DpFW5J)JEFK4dnC&JUHCVIjjBW94"g %$@=F_#n6eTkp9qdrPD@-b_q_B*Nn;IFU;o:a1Qg';3r`tgIS28Tq-KDk;0r\Y[bX`K#d^eg1ADB %aHSa^64XqMle)$0;E;k^%:5U$Ld+&U64kRn($I!kBU*;`;la`MhJjJ`K"*qH/@o]"/E0t2C*mgsC6\rm,TTZRPU:12;5PMW%Z(rbOi#^pZ21=J#e@Fk'b-a^CZaJGdI1OF^A`A6 %P&bL2GF;7@`KiHuesXXhg1U?;*7e&B66<5!Q_rha1LBI"F)>AXQXcG^=b'1J5gT/.fV+d#DGB[lhr`1f[60sa!1^?OY'L"-UVtbn %@(bc=DHjIbFEYHYpOf.]m7?fPD)j!5m]%:WA1qp9&`]oD..5sda(,!i#i2t^=Os!I2%7bt@,:%-rF2YH/sMGbc(EF@6p8@2Wah+6,bq\1pf+;lF[9$g,gg3.l)3Wd=,@\^2ua"Rc%E<] %^'c6"Rml*.h&?kO&&XgrE`rpoY"m1R0i,#VpZO9-ee5!met.s[Hi8ZS&%UTP:Do)#P-ul`P7t+aI:e\cJ(8n_VrU#@VoHd%--OGAEJqb=J_E1Q!H@2bT:@8c!WVp@T/] %`,6[:Oa(JT$@hmSJ+#2!f)<0Ys2XEfnU>"c'`3p/SmHg7V1Aj%O=Su[,IlK$UY?k1d'#V5=(0BJjq %ZXLgYU#HhSHT4P"$rdd+%S-b-&'S]k*B<;)W\+[Xb+R&$H,hei5;0/]P[ZrcXo+\,$Kd!S9Z8ot6j)9S"k$QO?V/=U.;-UgNNhCB %Vh3E,B,QQ5q^T,<-QP<^q_o\mDaLV1KNqG*8`W@.0h'#,+kN6?H@V@+B&#H$ndd&-<^0.'9Fr6(N3>&g`aLs*#[H]P!21 %rCX9C-9dhl=BV.Z$rsK^#F/Q6PjZm5\pp=Qmk"nS,aTp?Q^=LfWjDdk[[AQD,aXY)X2Z]*dd%,DD;Bi;]_F %s+b\@79R`j>M;ksgBp"8Dd!%R^/^io+L5^5(B,r_HZ;4el;foqUqH4MkYDB\Bt#bQmdBc^Q*m4n.IiS'b0?LZk_od4(eQ)R_pk.< %f/DfJ2&j^<&bY0ePG)reKpiI9;oD7>7uh.^'L2igU7XI4AKFqQa@L)ACZo)0JLRS[1mG(!WE[V`d&K?Y`km\m`@=[i4+\8UED15< %]B3]`'VAnaG[A%gU%fm#WOp_6fhdsO9Jnu6&$+s@gG-eb8F$Qb2cO`tTZn/6OUMEm0s>CA506VdeaU_9ifad^R7Hruid=[lKmoYX?:YDNdZZ2Fk*u41R=i]?P>jiV*`[ %G$D22Q/?bS^"F_ccER`+DW=:6V@U('MD)>n2]n8r/oF?+S9>j>4ik7kk1GrRN$3UV>/'5i#"n9+2s[b&h>738g)bbn%XbZ\dCXG5 %h.CtmE(X$F2S9\+IAgasF)SNJ'V0B0/!-X/T[NORUBCkiR-QM;?XX]S:^;r7@X'B)f+2ndfCDfpJ!`(g@V3YTURD9[HP<(5A^$e) %drR<,DD:fWkdbtikC=]&/'H3-hY%q6cIR%mO,'l2^a#"hDIh%a7Q!\cc4+2bDpOXE!r(JDXejU7iUko!XnD/@>u7\@&/jsmprg:R %1sB@X%2?lo9VscSkY\1+&@n1Vo$k(>Li4BHQnu"Me3:[gbFErZEKJgmM#LA#I:#>8jmBI*D?TB0c&j6lgkaD8H6i@cSb'aY87B%1 %dt72P#i=>Bgja<^)0+Y*i*D$sEWg;uK^OVh*6HV6ZJr0nJLk;7ODZ"ANO;4,,4qp,E5";gZ%V/]_GQ'[$ %s&mC5ZO]KJh!sMri&`r<-]5>CL#9t&4&N?e=g6ZPZ-e(059R9&DS"^7V04oi-9*UhrD8L2I#7&pdlM%*8FSQ8rEF0HZndpP1'7;* %$^sm3O:a1e7lQF(V^Y3jben8#jD,OSCPC`&N.@ASa#%)a1&oomDjAAQre5eoE\*^E>@srjc)q[`RK4h2,[\f^0L>FWeOd!"-HWqHLn[\Q#!3s>\tTLrJW,.)DHZ,8&(mGg"UNI9;U_B>t[fhM6u%cYe30T55K5R %STZma7Gpi7&Lh(O[UuUdL4d(Sq4Rp6AN1Yp*$-]uC9G#o)$`BV4*&:'K% %8>V+bng;VDb*+i36RW3FZs%Jsc&qW"e73ktF!SFAY`\&ro`D`$XJR?P^$soMDqJ>Jje],ieX,]iqQ^(PoEJ#E]R6RJ08(AdP%"DQ %RK&s)E2kI(EL>S`dSS?!I(S-JU2%:+CiX %VIQ<4#9D_Nj$C!(23NM_\sP#2SG4t]rWi<3IH %[<.!+m9dE:jZ#3IqIT&)ATER+^>fU]Sa1RA&!)rY4L^5`kI4/Lh)C4)/T#UMR!dsL]OTeO8q$SO=)R^UD%$Ju'P9MPeg?,^oJ;ia %9lu98&e[Rn<@&RU#8g2lENY?n;dAif$k^aLmKMj?#$><(cbYYr&S<12gYo1#$cA\,!SZ?+"`(_u&TH1qN#] %Dhf8TrgOQTIo`1b%u/W/ZJS0%jYg2p]=o3I'[9sfZA2e&.aemAA;V46BeTrKd@)qS[4;\XSs\`7IBHb\q=khkd)tkS@,-JP %E2fGF:$G0dKpl=9jF;H);nO'KmIM!+(g(B+=6ag+4fLWQdA)2&CqjlbhkUK,@"?)q(3VO2<`e4FgNJCDP:@`;-W;>>K&\YA4lF>N(hcX %3rWLJk)3J::.ogN1>)@/DWg1;dk*;NT\pfP29&L"kr58@7h5W,`27_E=9`LIC(MUPTejafXFi@:o %F<7o2=HHE2*,_O`^EB;8[Jgal-l%r*f;$WWJkJoiLk/u?lsthc-0\sN\LJ7 %9'5-;"dkq1S=9"W!u")I#c;ofo"WOI=+:.sDVL:Fd2ED)*"TPkOc2fNqc6f7B+<'3?^9W-b[47CCR9jbVUp!HV_9R1djBm9[H:<4HZ%n\LmoFq:C12Mi>b57J\5JkuAAs6Zp %]iXD!(nX8/*MlkeqVJp84d@Nen82ZO`f,!tajE2h%$'l7BCs^<1H<(*&q)fqn`9G/-W_IQVp=$o#BP8T4E\+0j]<%n %P#2=OA=H]&@qFU-DXAo(q=UjXASq,M50=l'"&rt]h\IP-oJN(pYMgJg\rapQ^h@`Q+jI[s2"?i#k$^/!@3HqQ%WOt(Aj25GP%Lr8 %=N-\PA*O3qWk1/S(q+f`1K9DIB6kCR*rDETWIJABkAc@X'=nAk%qUFTPU&%0adbi`T9AhJMu>05R/Q#0&%_@QnnBPG.`h6^(p_4$?O\L=HJV %Mh!SLAc#E4N`E62l/8t)%sXdQe2$.bS)L_?.S6a&WgT=s]rP0S6"tSpm*$*/g+Qa]s/jAIe9+]-^?)qrG'j-U-0`$)lqp@:om:sY %+G"LD$e%*$Ah5P#.9TO'2i7*@F9upT>Op>=HR)uDbZ]5*jEeC,-EF8b&ZW-43gp!CIE%t?Ya#4QS8">>#]jZ2SN[kfLnmMm[=!cO]h["::/O9fA&VdL"f`jgq-&b<\UCF*G]Q8"E3SIkm#`Z&T,aD]lNMMTWHN?38 %hL.&b\tJJ=_=]=@3a^`l0.l@X\b"q=pC]loc5.]d%_E"6;%WP12K[a)(n[,]mAJd0DL(fR!M80IbO+#i?o%8IN>-et60cq%OTo"`L1-Dq!/C3Jl:@=h!W/]JkkkC?'Qh@BWGk;CH#KUY=VFjW$, %Dqpl#(&.`c35)!Ae961`j5q==W70;=#rh$t8&411J)$PMp;kTiFMUHJ@uo!KdSK@05_=[C8IUA7B6Lmdcdfm]f4/7t8%8cY?\#5/ %5dj$eVF,nqo*FDG?:pe[MChcZdcftkqXsuU*AR(SM13DOVBli1ae$sY?F*LmNdgE9W&g/,;V%]4-Oj)57UBtmPYH7\Tj%uDW4S.S %1f&oHSlCs.D:`KnG'2X;?jaX+BB)pD`.0jQR-`i"c(j?1QTu4L"bK[jp!C+=7C1=dhTpd!_@j,)iJIaKldZH.f&dA8>B)6R1YU2&-g"%a8^'3/;q%fU/+&L1`)UX3cLn/"'k&[+[:bB\E5#Au@"K+`Ar7qtlCc(5GqVStUuYh7#*i)WeBk8Q1XL^,'An$@a6! %J3KF7=%``00nH:\8`YGpV`'FZLV%=Nd:.q$`<%kfJ1t=JQj%/AE*R:5BCh@\N/DOGn@p> %e`HaNrH3I4)u$d]S%gR_S"85$'^8%8U#'XeT-mJQ*^#Ia1p^Q)6-i#pYN6pLR6M)dGA=L\GH-AUl:c88mfTU(>$.i*cr-J<3cgNm*jntu&6%d,%J7kK-6%cPb/1g3gp`sP* %q&,7'QGr+@>R;<2);Y9#Gj(.2R@lk2EWC`J00t49*sD!7%?`,mI7q9W%2(lmj]kZERS7*mn]?T1iDP0ubg?=mkR2f,Ut?r*VoQ.9R2V>JS1a3k[+o.rXg"68k4FdPN(>:1@^HkLVY=9FfKS'175&hN]!OtM6i %Nc'trK?Dn"Z5GE\*QR]3((50$i`\iW<`Wtgg``\+;SPW-3VK\LXXUYY/*gl/iU0pNK21p7#8;#9B=mQipir\s9r:jc1c$d72^$XhEBbis1^Y;7pg0- %q:pP7 %EV7(tB/&(X^*_$87>r[KJnT01I8L8+O2HqiXeX60!p:OUAT\^H4*f+MaP0Q?LqWqiN&[i=+%P9>lmg3_;B6>=lh1_FWk0ZXANLDY %s0Gnc>r0.J6b$Y$=pWNE9T%;Mn[qM8ADCgf."Xg+>W!/D=+H-J[AEp-\;;6!r5QjB*Qdi7_Y9YC?_Xl<0^rX %PC"&k"4%?"I[rgI^n)1R]J$j!T!0EF!_h8MBQ%%Od0&C[.JA;rd8trN@!g)Vm@e65"`/*c^SM0a*Dl<$s5M3F]kiREU%gZ;Vn-&. %C;n>]0-;@o)s8lgK$>Rp`Ufi]WM2iF]-F_4mAI$t;!YXB)0uh,c]GlDDEojhl!b;TYiIb>e*2%Mr43l1m]Y%:gA9?$e:/L:8oQuU %NIXV1W3^Z5#'t(ansJiC#(&lo[F%SA)k\C,rtm\uF#1**\Kr %&s]ks/Oc2FAm8M;jAtgE,lMibg^![H#$m4P>,He!h=RPnXOLC9"9(OZ-fd9:<;iR12-+"FTj"RrT??=a\_/QOaL=bLrK#f9+*WO: %jN4?se@lFd85iF5X_'[>GtMhI2!(2u#"7E!AuY/j"TVhl<'LPeY\X5SccnRA2f&Rr`;faX0 %=%f/Y29sn'LCJZ`-mdJ;-($M`rJPtn)P*VHhFjkIdO?16Dth@&.UJ_lJsWC=D[o_f9SQsf"uD)E1@2G'WI)fBr7/T&(J';*"W;Y1 %.U]a+"]E/K;'AbY4BN.0XnZd_&[RB+U&s.\_2N$@RPccR'\5+(=cHmO+p[5N`#IlmW'K7Z%8t"S;1Y,b^8dEuIK*LhE:r%LhR,65 %W,*i_'mq,lKpGt;JlK6&.e7KaqZ%AMp_::lC]dWg.K+?CD94AT]'66Xm2=]$Y#_`$Ykf[G(f+ldYCWWM$Jlp_n!C+RMf0&(9:INn %lrhNmdX!M9["o2r=AMoWA428nD#:'Q7S\lV?+rHai9j4g>,21.J6qu5)nn?;M++aYR#VEOu*h? %\YZ[%8CQZ]8A/X,G%k!1o=Z@pVk4T[1dbn,(rF.V1kU-+&Al;N1rJ-.9;FB:GSOee3@$#cJ>Y?]nYu^#=(2%_5@0U'^D%eGWu"A# %F-k6RJi\04%+nQ8k$BW(aP'X_T=-L),ucpY2f3+OIETM\_mIsAqN!4E=A8hcjoDW@%Ds')M&Z/L[;^h'Qohut=:6*FljC.Nh!0Ro %`O&_TLCQ#?IhoeqO3h?_383@%),/`1+Z&6`M\#+q<3UKB5T8rq.ph*W=oU&;fSb0nhUXo(`14gC8'2ZX@p:LU)<&E?+Be`KgX\4] %V7.5*Gmi:@U]ujpSS^Zurk\Jc0ABqZXcX"G@^4gRQ^W#>+iuaW/8P]WohTNcs%ufGHf0Z>n@kcOkbkdpLSl_TK9l.s,q=Zh0t#dQ %gYr?RRdr\5>^V2SleHAiYkGO$?]nZQ7)RQXh!@J`T#nr91A[E^l6\P\AI7V-ngXpND>@on(=]=bgXuQ?g\s1'/LPq,>a]XKQ60WT\_9gj7]n;Qe`tL]-mMgI]@%\1$93&`(BO0scsiP#!-OXOs0f9c %l/s5K-S7t;\?BAYcel+2E7;+1cQ]L+Bj'6?ZI!=AqOAbaYQkNt/^W %e:s2TlOQ%6II>8M.)&t1NO?:ujGRlOEfsPe'9m''$55n.4RmhX@ZVVf7inIXN`G!^P(KuqZpLQpF^F$5qY+J$_Q?n^:0o)2:_o)5 %Jk=otKh^FcU+;LG;OWc+\%oN]X1qeq![&h2Vqji#(MU_A57,IN7$,SNaR`hJnU0"-VMKteN1ejgX3dK"L %Of#)\OnUsQBpqYhd.j!+g-5,"V]q[2D'*@rVUuBu$AoB_ZZoPPnr3Yl,G.?!BPCWAo2M'i151k:_kZEI;k2apD4ZV1;SYT:GFj[; %;RBCMNq64h;U^YX#=&)jkGd)Nh(5]gN<[UHSr+dke@fjno2PWKM)Qhqc[Ue-Qdud;_^G#[X"n+7maqLGC/o2Ce8fo;pA$8`R;q+NUKOKk[hDZWnu$"L(CHus3cV6^>s!=#M\M* %Vj=VkBmePbbZj,?H$qu=kfW5G."U\;lYln,YHQJk8BKbi?0plu%Y"A[o(pRGmYBEWeK4;3*"&+c2u+j;PJ>rW1"Y.7g%F5Do$n_3 %I@*:e+^`J;llt@QjR[7!@8Cg'p5lK?&FPG[Bb1"plG7g3OB'Vn;,<\Ao5E1NA^l@c">?esTDU-tV!"13`@$/XP0-0dT]2/"Km+5: %'<'snTDU-\cGD_qMGO59+GKs],;APQ!.?U7d-'o^iHM+oQ_&\0?qCA)#;qN+Lo0ol"8WuY4Z1-;4.sns0ae"eHN$'R!`)(RX%*\* %C49H7r]PSClgsGjoC()UWTJ()<.+87T]UG?T^'No%6j/NSa5q_b;'1OKlMX#iMj1j5m8i,4Up^B(neal#+3YUErGq1G+q**??1]q %#pMeH'u?3t*C=m#hjt8]E\"Gl2IZ)iBj0]ho]]dal;eDdZrT<0&P:"FFunT9M'f1Rr1uY4=,-\WV]lV#[H$o-s:2 %htV"`V5#QPKCn_i<.ogpN(l';M:X2n[/u)3D(AJG$W4]?D#;'Q$?#@C8]MJ\#Yr36/^s/F;Y+kB@NCUd&\KN %qjiAVFNhT,`*>;##FY@;E;eSeJ:`Id(`jb1lPGNl(l/^dgo2qbIW#Z;*9Fg\925AQ]aHdD=ttLiH;3a2[9G_jg\RM(q:$ijR'>m@ %^3!#_PXE!L)C7B6-d8HR+L:JajQhkn-q.'-XY,piZsT2Lo$$aq*A*"_qnqdaZ]W7LU!Z,u@!%;8`E=Rp,+L;c)0i %D,X(=l"6Mpeb)#qAF>Vu]@,(=i&:1;:-?@adXml7/:hUn:O[iV\2f5uKDr`-F+/Z%.GPmEG=S>"OK[f.:2fXX*qIi$,387A[>0,e %LVPq:^HE:a;LC?W8:5ldp5lK?&C;B5@[YuLk2EPgd7H2SRc14SMe,Y\cgbV8LJ=C^2M]BG3Bf!85*Rl"k)e8Ej3KJ>2c*qlk@:7f %(OeUhJ\()p2jE%\6tR&0:lSu9>'F/*A0G3e-dtlQ7S>7AK@]/8^(>PJr-!hmpOratB4pEqb%;],HR3sFF;3oC_GJl\.JlG.oD@_[ %AKLH8*Vt=,ANRTGpj^!@bYl_dhIn?EIaak.$UbfEo%pk[c-^`(1+`$RtV/0*2n41Tr@$X%H@Up=5YYQ%`9i %Xu8%fr%h*0C-XF'&#k&F]e.8EWg(01CIuW4Od:?KPh1]Fa)4']dI:CpGqnpNq1gfRklj?]dfu^5l5?*?4l;^-XF3Y'[?]J,P;t.L %5u7mYC`R-S7o4J;6rp./1_SWV][uoW-biO'n@@nHV06PJ6!'`5>W8@>Bua`*FdS\F=38I>L-kd&bMt`:a-7/crAml"?Hd6+!6ep? %n)5.Zgiiobqb>%GgVA0NqGi3&D-Qn@5LnXf;1>Pf8mMUQ9:&$mJ$.GUVrj,LQ&T!:M9g69Ma[*je^fG_Sh_lPT&]C99:iY(XtcJqO@_Xk=4rVDk2`S2.k$9h:g81;K?>-V;_FNm)nFBBXW/Fq9>X %U9`ZHJ*AjmgUk0eOWBR_.F&uF4WNtnsPh9VlVP@rB2bV]&=2>X-!UpQB.;)`nX'#63Nb;>#fp-;+XAfTidC!`f@%dhQA(XQahad^8#R-D/U0XE)4JIbt&o0.1eY.8SBP5/QlI,K#gWP %`m:*%A;/5NTe\a!TPd^lIC'XE8lU0!AXZ[]Y$q8C9,sdK4DUF.E0Y;+jFd'#K6).h;Ip2jAqSS'?D5Ed!Yq5H\%t(Ei861J,^Y]( %clm^B'U1Y"o$N.iLL.8JqApZ6;J2=Uf(ko>9RkV\lL!XMBA#6lI)qg=g*75jpBlA:GtsoY*OcJ7.BQqQBt;WRA)m1V!@\fc"I0T? %ViHI/V`RioF6ZjUFdh02^ZG`uDBYk%,:-Ti"IR@D+7\HS?LZgL&mo?DC)Wgr4QfurQYRaZ8S2Ct>fNhElk!DO4.VSrEYVj+iT28o %4F9LR`+`u.jXRe0qh:BtEYViFg6,0NGr#'^S]j`I3A(eW.[07-'S3e9:.VSF'j5Rf$8*HRnWI-Q(4N/eE#JQNCm*!;9c\i/a\lW3 %>cr\%ab",f>crYdpA-VfosCrN>9paa"dd#'Ek)N0D7:m'["bcPpV:kXUlm\Vq+-*1btI%A\Qf:S<#==8Qg6LDGY0Si_52J9K1[bA %[Bs<8%V3G.$[,$c"Yq+6f.CSU?5dh(15##UE!)NtD(g^X".>t^lb0rQs#I3MYXGTgG3q0Wkqi^@GH],8^'EY792b?W>O_p`=fr.M %&W'mYb;^/soUH"Xa*i%bD[3(hVLW&;9dQ3@]hlLji.8A2of.QrbU\_1Q!A?r]YSoGkcV#^Jb%VWOJ03*E_M3OHqmIsJaP.89* %hsN,cemhL`VZ\M_&*d]6(oDr(@a6$:hF!*-EcCa!)%.4t1`'chea9Zlr&hrb6[E/f,_,@GOC!MUMYM3_0@eYj>^SR&='Zs3kdsY7 %nWrWG*.G-_;o\5(-g-ZR>f^tXNjIrsnks*6_GO^dg+jWOB':mIN<>]"2\ZF-IWSidLSV^Zr<4Z"<4F)(.g.Rh"ie;iiSF(QHPU$< %0XF57B.PkCAmSE[lj?=8btW6S;IJuL?LpTH7s?_0+ObS"kpt0&edeV5\"KOo,B4b@]#tm<>I'`uK5autS7jUd6QI9LlM3I75Cq*bA'gWTMV.BQZkn$am4.T&.%sC@(1kX]VP:V6SK414j %`gem?IG@-g37u,nomkI!V_`QochU*f4=f\_4m+'7[+RB_S52.'_AmDHf^0!=&a!bZ$)1WK//q1'mA!4P-L^_JKK7aoR%MUR#_OX5 %nAaCc,`2aJ4D#"n+B!aZ&sO6Gb[]\G8CB>TI=>3-heRL.dPP]rft<(N8':sL@8TRZ8!^6+r=UAKf">&!KFBA(edQ6oU(0PVCeL?X %-pj@b#pG71ZK>@05;+0kanfL5Z\:60PIe#LCi[B@X%* %7K9kpQ^^474EI/H4rui`6&nJGP^Sp![up#=fQSGVE-(rtdj&"_Y9dg=B\%\P:2kD$/>M?9M@?0"n-\rIk3G,mnmS`X5bV@l6E8IX-Qnouo %pB`.m@LEWdb]Z!kmrP\KkF+8Sn!1%]o)rZs4o`bFR,R_cXpNa^;>Xh]UqDFPdip_d+9`laS'2X;?j`Cpa10`.@p+[k$^@C-nS`7[pphI3.JU#RNN51B`"8q52W7WDdnf)=Y1-aV %_O57`d'GIl.4b5eS$@5\"/ %48*TP'1?1NZiR:Kl4bUg#]2hBS6!JSLs=@-['7aPl[Ag7 %kk$%*T!#T)X"03RP)G=N%:h.7+g_8C7(bVHVfNE*eubeIWi%^2>5)L/!Y8K/5K[!!%A=5%l_Z%^Z-^)FVJJSmF[PoJ7gNtI#[5&O %#]7?_>3ARg34*R_F@7'7lUC-B7%l>4!Wu6BZ-6UJ;@kpg03U.7m'L85C7 %S'8cC^*kojds8esI*bYRmJ"bDF1f!L*C4IIQf(@Ze%.&3>ZES42/ttp*?hfR:UqW"lYTN*D*V:6Wfj;JBEQ\od2DNh66!/$V-Xu' %&DDXHZoWbq15%Pn57?;hC.IT%dZ:1F#3/Nnh1Fi@KJm4&$a,DK&DD[5/4&nC66!/$V+h['NKA&W6]kfL6*2>>*NN$#V(Z])Pm:^qD&&d@UrO__XE %me1T:5BKWq6.+$,SDp%k"iN;g %!!G_h9+[Kl&/7hj[:A=%>OT>+-&BbF#ed51]Nr;.Q&jYR5PGa[;[ZjWIYeU7Rp%cng!\H'F,'0-PCR"-l`uPu:h4lKpm]YY'YiG.++JA/+j6j,2m]Y[=?gP;W7uqA].ugTp4NHDAr1jZD+,*%H@qE3&QE_l?Kb>o;b.!'r %&Pr`iJ3)=]@TFljo`#0E>MiGQT^Ul9Te&;Ml$0_L+=$0I`(RNi[j'WJZgCM7^UPeY_WA"-b8rTKldF,FW-3:;DkPDk?Z)b0MG`08 %W"rt\gKCkGfR/\q[ruE`*H7lT_!V[r%QFuuTMdU0`I`J(&duFL!pj.q&drSTiAs%mZ`gQQkoO-A,?0E#9eJ62B:nM\ccaob^=fX,K4=,SrIITH %Qn!M\.pUWqQ>F9MUp^&?gX=-0mkc&38#?>6JA/%m+,h8>B"HLIKZL6X@#dq"'6_sRe3K.qX_mOJ<6U'fI],@R;]XcF,r4!n;!F[Q %TgYd'mokJYR0jV,kd5ZF?C2s94jk0-7](c-OV%RZ0pc`tiHR'k6;Ep=&7fA[J/4Rl8n9F8I9UBb@0K8c?f`c=phG;@3QcM>e[LoY %'MWER4Y#1m.u#R!a3'j@\hH(NGNUJ8's1u!jA_b^WE8E?W8=%&>pj`Ap;I*qVQr@M[d1E/"W=%WDjK,QV,B=qkDdK9Ukh5ufcho# %WD'XHH[8OV`Qa65(pDh:e?+&I3piC#EoThT/q'OsbMH#5Vu=&$V&u&eRF,=45=Y1GHo2SHSR=3olO/`.oKMRQM$^1@UJ+%8*>X!* %.[-FAQ:IrkeI2Z'J\!V8 %9%DS03/DLFeil:KLFO_Vp/nHi(a#kh??9&E^ic@!.[1=rfcE_a5R#>4X,rR'[PqMeInpF%a-0Q-I9am$[Wp3jo)O/1 %#PB[R]gNc$E8?[7InUDNI<9Sj!b6C7T8)i7Q>5m_GIQ9HYoeBm!A1]Y@oD&g)=L[jK?tQ]V)>sh*j!UIL*Ym#p#XQo2fX#f:D$2R %e(BU2B%bnYT9GZAhl`^(j7V+n.htY3l#j5-SC!]EUs1ZMkk2BJW>n?A5XI^tR35,D[8I;_)H(f%>Ftb-TY'E!+$Z`>pX/Aj %6^M>*ChoWphZ&552#3-]HPlbB7&5@c"Up0L'NjLp\%(oY:o_K%NLGJkTAj.89CVnNi]CcPX,i&=O*mQ=,CbS<,\]Z%qk:! %jCqq)95]2tRY`B%/8dZL)7-6E_i@*$fL=8\.KKgm4-#5/:8E1Eml1U8r]<%7jQ!naF*u@7+;YMoVkl)XE:Y&oZ4&PA:nc%9GqBed %%$OmfI1s=fW%nd2FI`RURLI*q*n:+]atV:e';c2E1;!OJ^0$1H%+cnh=rs[P_q,U*I],$G,jG,f@JRA8jTJArR,7q!.anMr91hES %9O!$rh#,4hQ.?6_F++?o8j"GFZ:Z^_2,N$B2E86.^SceDYU:?l\n5)9B>5dCY`%o4CJ\ %U9g)1Y*#+!K'3bYbXWpM1Y@EQJn2dphNBjl,b7seY4_?[.pi+NYP0D)K[J>58P#G)u; %(N?_dcWJT4l2m">_#1nW=C&_iSps@jq1@-#*:8;LM&V?,FgMB$Zd?VT!ZL5;GH?%Jp/ougI'R$L`]9D[$'stYlTlHL*'#U/pLoVZ %?Pu>=O>A+=P[kpsWQB^8V8RM`a"`q!2-J#-khpS7UgtXT&63dr_atV!5D\Ug%OYE#1sVeq+'Pt3Bq3'N,'rPp.u/f'3Z$.&Vbc"8 %bB>0LkKrf5.,38oW_Nht&a%GrK'9ZU('IVbLq[8>!BkMhZd4/fUI*MI5)^"S>sMA[+Sp]?"e=jTGo)u[?!X@Scr8%>f%"oC#>_3" %Fp-8hooScORAP:Z:m"Wp+5@@\a-BC.]Ck[*OtFnC_Q=&,V;Qg9Kfu?Y;ema8TO3c2XU"I=_>S\eDEU9rna"T6p!i9DeZX2VmFUr" %#ri7Tf3=nr.Vl/^AbI^S?]Wd?#"3'E\p$&K]KRl63^l/?/)Qpeb31KcTNXT5YC^NB1bF'+aCs:SmOb[02:j'7^eu+HUj7mSTHbb$;ENMbkAApo*0G>*@!$`9dD`JZ %W[mc0f,\^EaDT\C+.a]?h^Kkq^(>Va=\X5WI3G`TB//dNoS(Z`'#_.i??<.:,!f`tmJ0=/$?"S8QG(:hKc7]Nbi)&$?QjaA2(Hs-"3G8E*mBqFZ?E8Hc[#4F&a.ZL&Y6I:0AT^79.b%Fp^fk=K:s5KH+VCGKgjL*%;UN*=,..bLWBe_3CR&m2N)h)N %'j+m,h_h31nXgL2V,^&Y`?6/+BpEZeTVYAG7;EX,HVgeEM*1BlC2&lBd98t8a!uV9%=OR.>(q5m3%8An`SQ]kK6Kb%h3jF?.M^Klm2/PQ7db[.q\^JTAF\9)Mbds#_N[Eq6T4bgP$9CNK@)X]:*ZrG])tA4f/=ig69+L7oe^1KgAIlsY.-6:nq9 %dA".Nc1`cJS7n]LTL%T)=jRo+_BY5(LK>=u636m:_/;2-MainCJ"#S.:TO(=)R;QCmh_uj#opnDl"ue/7DV8PF0q-%Jp9Dk%9R%p %bd-t@F0P=W5[p&L[l%R$%#6"Y9bN&&4>At<>>0,MO!fYe?2Z1'GSkg#!ePYZ8d1e&6`\_`;Rctep=&^.IJ*>PqtK5a7t6"l&fpr5 %QQtfq192A\K]F=)"Aq+^C[KM.fE<<=*4-e/5%F#C'gJ;Go(-Lls*XUem"Y';bK53V5%$).Ze)qi4Fm_54%Gp(*s?`kKp'5VqTT)Np+rQedF\;d7qN6n-X6.0Te.sV8Z;pN2R$0 %$g"1PXc<<^oheAS*c>LA\+-%%pgMm91U%l@Fo#Ie;ra2s\q0-AP4HJ$7M7!>NMV)Hl.*<2_`j?glZ[B`L?e[%#1>>cjqOt#B'Ck# %5A0Ju,iimGff:[:nLPGp>/rY(o3<9(gN.QX]o2L#So\3HQ"$"rjtS_5B(+In3V7%3WbUOp$Or3LP1tAb.6!I.SoXGlOEJUcNC_+- %:4']"^3%BXK1,$.3I\lTZ_$D;g/X#$rglo*V@S!iY.IlM1+9qUeeC0XpW5IT44TSpiGD;WS[F3^UdQi;UiO)7>f>Sk`DK<-m\Wf!Ek<-EC@(JWk`U-&8Fs7Y:D%K#mlqFAu;FKp\&a$G%SA69_)7`(IAWY^Cl=5IK:$J`buP5,Q? %k^*GZZ',FDp6P4^l\0aW2o4>)1-U6Vf(>tDlaao_C;.>5+fTg2Oa6:(>=mPMNpc9H*lR*,eWFD%[*EDq[)5)0K.V!QH:j[WEDNG; %$f^^KJEAm;O^P>OSqZAN*m^nt<#=V0SL7&=Ku[HYjC7XF4J#[r+/au]bV_bR%=MFC$*9q$#0\rJGDHdh@:428a'?M"M]dhr1TR:K %A-rk,iLI4cK=OHIV4\s&a[KEL(#F+*)o$]j`@5sj.B/);-8al=0rU%DF^WQ;1@0rsH]^TVSlm)8P/IUqG\2)s'6]QAoSOQ1eO3n9 %%DBtVE[3q5Mki>L-^H: %p9Tb&=)67*]O/q]Rp+b;M'.Vp1TTQWHD\0Z68u;[9jZK'$Jj4[4hV6W>+qEhpl2qbXd-!T*j)H5rUa]&\QG/%J#;C_?G$#]X[`uh %/L+Gr0Z42fEp*KHC4),ofNVRt"?^de0a%bjT`q2\G(>YdEV,B_[*n&V#rY+FD)\*Mi]+TGF@7,OT[)AWl*_\+[PCD:*.?lA&:,fd %0TSC,1K8@mh:pA=:O@J*CO'rI!mc2u3q)C2MlaA$Q@N.fLtJ2a3Jn\P)Dfdcf)\70+c2T:LDS*BR[.iSr*c#$ %ro-kYT@O/t3:AtIG+KLJ_dp6^QNn5=L4oOpZdsm7i$]eHF %[g.%rU#'gHY>CU`.4L2lT$"ibZOM01P-/L6Ep&T3LGrpUidMT65%807jeo;;[S",uhV;Vu:m/VkP@T/(>t?kZ4eDIt^KF"_jmM@c %nW0OFP3I'TfQ8V2^9*Zb<,"QcU=8?Qo&Zs>doK'J3m6E\mPQmM^8@[6<^!D?etBRkme!9BZdnhFgY_pSMI*Cq)t7/1emisYHF`@E %[r6KMQf_Fu\BNemQRYPJ4Q*=i"g+*@%MC;tGuU`%8"%ER@86.5V?NfGpeV4C1dtTLrpsOPiR#rc[%fo[VkTh$5kTWLC8MWY;.l;k'EXtWs %TQ>(T,"0f*8`1d)FQi"2Vmk@c3i2`>\]<(H6=etqr&*.kbQe;!9(%=+e+*C]p2qB %9&W;*(oPf,dp)X;>!WeRq3tQ*]cRu@%QfJ+dp)X;>#<-+VRJStFJE*HXJD(bc$u.D!dJARRp*Y"9%W`WH6OdX3cGTJ0hb"Vr>c&s %%X(B*l)gkU_.atI:+bJ1$a.$Z4qL[LoL %X)sD+-TdLHHi*WHm,-A$h:.Tu0sb'_9eG0/(OfE.^Stdb8&NVeq)>^ck=WOkQN*bH^@I&OebTf=-sVs>hRTGTZWd?f-WInhRFUls %Q'kq*Yd7O4P?N24Ji9Z05&7CJCACY?kuD*c=Y9YFXad-Z0kKWQprmK5j^hjP4K)q*fJ?M9hQ>=Y5,7.*2N" %O&T[=$(BE8T@(F?$Wd7g@p8;oWX_oYeV:p-0h87jC)MCmMg.Y!_l8Jcg[PL+kN0HiX(M(MM[U/kR;=H %ih)i3StO^m=%o\]caJ-3#NB]KN^McO9GmW\HS_$K4n+J$JH#9#o\d2,%\c3J4W1ks^3Q6`Xc4k\icC2a3b''Ft*?qe`YK(Of&*Y?qc'gKO43/NRAC`gm;E/M4+H.e*11W"Noj%9qCJ7+*#\rs))@ %43Q0;16At7s49hg8h#*oHA>PJ8)!l-keTjOZ_P'&Vsi+jm(S]l:F1dl966*/J-W[6A\fT.n-6T2]F4CIVq]VY>((o9JWbC5M8=&4o4Q=m$ekJO"cC>cQ^opr15FTO%"s;I%`7BsI)Ze[ %cWBU#Ni3l6aq\IqD@NO!YTF(M%!\g($uQO6!ki9h&RGN1]Af)1G.[^c)`:=^+)k_m]D+_@lT=i_A^N3O1o"WO64 %m+kC2JDR97II)OZHus)jF,*7!bY'+H7i'8`-V5KR7Ma2`-V5Jgnj`uk0r,AlP6J;38Q#hb0u7[GdPV3I-^H@0mtBb"7+M#W@3c-i %,f+V[AgF?"C\"ScaPQqj(F7t(8^`TOY"Mjs_uciA9"@406Ap'"gO=R@CNP8J?GD`Xkuf(]*lVZ,[_.9UjQI>$P/GF6\Tp^qE(=Hc %?bUdjf9iG;PiOFoIjJ5l%!iigl//N?s1(Xh#eI$GmiIT3G?R,;>(_"C5%luOMa-WgO>bfYMI>g5UG^ZPD'a=eha37j[&PHR*X;JM %Vs(-2K1#aun9m:7(:km/if)q.R.69Db*=Ga`QMi5ars5HFJp'L^)ns8MGH8#UA+:G6+spjJJkXp"lS?.;I"qhY579YPXK.46$4oS %U(f"Cl0O3ef]6U33(BAWmU#Ht;t&8HpZ&65^S92XMt!0qW9BDBCRWD+WuoOnnj8=LhFO@PeW1kM=!^*.85^DeleS`N?Cef1+"N*B`sk%jMf55\.PP/s/,DcN?D1J1F=W+a]/DZ@;tnWWdW7E&#"H.g':C< %+rW-m=Xd#ha@MU*W.%jV%ssieV@d@C4/+OciIVf-MabtrrO!10^^!n)XGn>oAnV@%/t4/Q<`&!L&G2)$L+7mp"@46d_H)a1WV!(K %ZZfbT#Y>!#/n0MH*<.M1Cr4`Ve%`G#2o!^XL"H[2-^MKrY51spcbGbqGW#iB`IptkbouQ&Wt&*l*:%\=CoBK>X]\eDB?-hr'bl!6 %4Xs&qm@4[Z=WVdYd`$?18c=Wkl$9K%nRs"^(O`glL1sgI5+Ib"(PFBcJO4=QbL'9u+;BFtW+YXl$;P#QmAe[fhA#V99'=,pa09Ol %Sk;cD=9_bscP,r3V\1N;S!a2m9_e>EHc%mL_h3g(:C^.pB'"A4Ta9PWHuJWmMaFXmjGN3/%n?>+73Rb+_!H_mRA&;4s?$=OIZDC'Z(gg2q>Mhi<7\@mNd(VpP% %qt_a#(K3RB4>^HRU_1-+dsg$/iQCG?.s-o@(+ef*!W&]`I3 %pRLZ*M_MRT]BAfHnH`W?0a^40,EAnF*sC-9dDjbsa2dQ;6l'!Bp6#1.$d%/?X6kDC);X9mE4-rEhNd[B %37r-aL-i]QaUpPkm"Q.O,j*2#_""Vl*a?u4g)T6Aa1j[8EOS83&&l? %]G>ROAKf\.ObNdV=.^k!i4kZ3aqGP)>oP31T@@p0D'qE7.m(MsHoSIn]hkO82 %RYkhL`&*P3_dsS=RN$/dV1O.h!3K^iiDZstA#(Y&^$P^_?PQ*/TKCg:q+9qnHJ-]t`F(mjLTXXi7jK)chI:Or,\n,3kYW#&>Q+@k %URgerj3?$irKUp=RqW!t"_hM`>(rbO@'X+?7u-fp5s5u[X/MYoZ1ZYD5I&.Q;tftBJY1g)!?fI1 %LYcL%SqB,`dKT6N!\p.V%S><*eF%qr%N]_'pnY)hN`ZQ'pn[?3QW#,pC>gr*)]"opC:6IKgA*M]Qa,(8uXs3.OG*; %U7G^+SlBrDU"K/[&]H>jS(ZG;8^IuSeuP^nHR7%q;toW2nFDPnHa%Dq$) %LJn[gIER%/o\OR0OlX3.)Fer.V+PFGej_-8?Y8H5GHntLCK@_]p&%H8n9aWrq3M7N7%q;<3^%gU&5d-0*SG?[g3X'+hfRaEkIo?J %$TX%,)q?F_g"t8TG>R`Uegjrd?NCU\GdV'S,?ep!KBbGhf)5.5nD.l/T,m54j5<1NJ],n"9`^R#"&raCJ)W>-^4h^Hkr_Bf?PQQ. %:[VQQh@dB>KNeb+?7%=4l9haVUC'AHF":8>XOQE+c3Pa[?^<-_PKXDbp4\CDKgI>u>XYN,#1[ZcmbOd^hE'H:pMSM7H.ccCR4Mp2_\g>IsR"!^8N$"=LS&oY#46fn2 %o+HimjbBrH)Lu5G9("6+::L4s.L\\fV`b$[HfkZNhc?^"/M)>AA#)Hp+`P!BYaH-iW/QOdY3HCoDh\;0ok](%Y5r^Cti# %X3K7clRPIEE,firi?F(;\.n\In=;*Y\Pu*t&CWAkutF"0H0C[paRbK2rrg8Y9+B&*o)EHP\8kX3g$#"0Zu2 %!"ASP*,]V6=P'!CK;$m9i704;nare;js*b=$Aa`L\qh@a48KlHeZLge_(?R"T)EBg>jEm;-(IcXbMFaB-i==j^UF5m(gaKJIr>EP %qi9VrEd-Q^\q/E7p,4H449o"sN[mqU0/Wu=*s]KrpJ$UremRQNKf&j*QiRbEAXRf_LO\CNQ;_Z[jbE5;\d/LG(?a+eAr,B@)qKFM8j+R#'N]5.N"N>);%6!EYQ$"cbL%Ymu,4t'5%u3 %j0CfM3sIoP1bRN=YbOG[_K"6M6"95@MoB7S#'LE0C?Ud#p&(jIU(6OWh)E0[CsTnWm7nITb>*d7::&ud4Tdc*rrl0`kKTS`>digj %9@;\'4Tdd/*3jV%_?En:"Lr9o.0i11"Lr9/EcAWOL#K=#"$:a^=$/+iF%rc\V-%!2cea@@>de9Q#8Ef7OWE`&NgD[W#aaorfEqFS %\um,t?q6@`NpKR]*6-L7R#rES^lEkL"HDbE#BlcX.r8aO3j=6OQmcq,Sq.n2)I0_KWf;(O?Se'nGCLM0rdma8&gfhZNuQ&B4aok/SWJGr45q\h5/Di?gja2<+Lep?`mN*SDS %I.G_"4\?_t@`Vj;,Y!L$@\M[pm^:C!])7(J=/e"P]IKaZ@S^ZH;6*e"gr(uCFQ+Y]#>?c.P]Uma!LO"XBjNi^8 %^!1N4Q?AT!K1>])@Je'lBDfhF>3U(<"$EMfs5F"<&^h/,A?D.SgW3Vq=a6Q?@1#g/O.0(&UH&%\)BdMNOK4?Z.+6KECR__!D^_Fr$d$Z!S.A`I5CeK]C0$"^9n]#>W6<%DmQb6/i?8ACQGEgIea01]3P8>Gg&4=HV1!g %EeuGQ:84S5giH&1ZMO&"#(rc\pAe2SfH[<^#Qf?IaljUB$N/:Mh9"LDHggf6'\X7;ag %1jH1_NX5`micqh7jEf#-,]Pob^XV\0q;+B[om#WnrFRp6pN2bsa"k2mR+XStV/q"d7,qHB8X9!JDTSuhXn38%En8EJ.jY@ij)7p. %'SSKOm\?;4g040BL77^q7eQ%sSc %96^P.X?3]QfEp3ONn<>d0A15+X+^%ZGX0GWuYnp'Y2O_`[WV:5<[r;eohV\anhST7H@NK?^q'4F7D*L3*h)#W8$[>G3jrTD118hm.P6 %2Y"31fC\(*o8j1N+P("Ul1Acn]ufSBlLOWKrF:!Xi9ZG*r:@6%QVhn8rj:_"a);2V#h_5!*TPse-/j59<%-SjW_)>__eq)X[9%E %U7)a>.i#]]-<.&8ANp@K.O:jB47>MD$L)C;opAj`6;f9kYt^H`+Xn.3=o8o28:O,.N!-LkDH>;g*DE*s1(>_h%M/p"k`*8Q,Z,1F1J%3O8]QIs$d'(' %1J"F9W,VSNgGWZ*S3P*>Qjm<`*VM:\p`>g?(#Ok]Q`Sq[F1UO^H`l"+CeVC`JLeouRjuJ$Pg_ebXAl`YZu2H]m2cjTLI_d&,@]jJW>BL!kc&+\&R@&4dWbo;mLc^ILqHZ#Tl_*Y6Y(KX %!p_J9%M?33`TjUOeb,USI5-;aMtB`Gm[God78dEo.2sGAMc:1[pWFc:otdQ<8?+3"`(raCkq"]S\gseKpOsQs8rKaNS2u#3o?Q$i@'-;LP1Nmf(aPM=c %B'eaoO5tlrW^\OS05eF%?Yl %*o^oE+XJ224iFb0l+&nsrq6n)EsQ+hEdK4#X?Dn[ah=NZ/3PJS`mRQjg'kG(4(4C3?PQRh+VIh(nl7F6AhEP//pmI$&u?W>lEl)k %o&/RnjkE-U(Aul4OOVn@o8&c`B=T+=;$D]!]j-\il`R[/>c&/VADVCMfE(IYNa$QnhM]IYi=s[DOMJd %(^ch=#kEn&B[-50%P$K2pK3GH3Zbq@8C"p$c6W"kHe_S4Ve9S%F&.^D*,KD1XZN%KUa8Yih#ebU\`YWj %lu[u$c96YkB(degI1(:l-Xi."_uhq[j&)#,1q8d`.J_Vfpn.B3?K((19FUS@dY]5Z/kbp?L8 %r/Za7F"nlU_Z-Ru5>Xqgi."_u+0:dFi.#M)jfh$;s1uWjV>ZN@gqeT+p..c497gdqlE$H*tu-T;N? %,!ULOR=CE7IANLJqjLJI9dY:rUi=uh*K_VlE$'?k=7$RtWp:^f5IT^cFDTA68:"-Qg$Lg4G'ftCZJ3f$OpuDc*p;amEq)1+GRf[T %$4QWl.W[N@l^tFQFLA,,Z]Yo/4=E(PQD] %js2tF&]pQ#gXUUnXS`s8XlI0A4"D,M^6t9+>un+"U(DnkVqU7Zqo*!2M^g6$Y0.J6.sI@ug`OP9S^ZH])6,f;:0L^\bNQOE&s(:- %0)lp+HVTa!UQ!rW:X=BIL,*YYkNqQh3U&:XKef:b`1#lmrQ=&d:99:IQua!%dtos0#sFOs17_M\Sa\hXDl/_raVH9h(LMSgYD#m[ %q+jS-3@)I=its#7H[GZV&mAt-"B;UIOMkDEMA5Eq&F0J[r/e`i>gBLf_+lu@$+.dlIqBs2YS0Bl%V4TjRj,"gWN[?uL,q==ia@iT %Q:Yji@\*"W*%om#_:5Z$f7jWU@[Mg'FCghI-\b_N]uT:FG(Q(N)M=66eORZC_Mkka=a$U[@p@[gpAcI!N0B:P8%7+WC#(N:E^-a6 %/seoatVa! %&F1MqU"*%s&'_l"J>Y@1ps@rpdd':W-S_\5c/46KJ#P60BF[T%N!PSOeDa^imt0mm %P6C^.r*SMsG&:>'RXb!G.DCm-1k-=15rG;+TmbJjror@OLs\/i4<,a7X8/ %YT99iJNnE"W?h9tXeu3GOi"LYqB*U,]pll2*[_s=SAP_q8FG]3BcZm;2VU_4hp5$+p*hH4k@k%?Pq1Y9)#uhSTme10O6\mshhL)< %.e5QJ.Ll)206u?ek)13lNc$_\kD\;t^2PVLXgYDuc3a*eS>ZZ<#o0<06 %EL>`"O\Y4<^dBTn@ZO#L*g^Cll*UHNECgq3puFd`2q&V=8:7]^7ds@ql*O')jDeW=YAj&W'U/4]n2o'/4[#?:=elHTn2o9TN@OJ_ %hqNVe"2@3!ARpWnoK"uNo!fqM9RPhDO5h,7:l.t!jDjfr,"m=4Wj*1d($?ckh<5Ib8aG$Z&(^KqmpbKF=^<`toeZF?CK%cBmS,N?A3#K5i7O5E>0:q:/2!Ib[<o&=$YkW3Nehc0kM$-&G^\9TX@qd9'Gs0A6uA3U79NsEpYikpgIPPsR]O./.d(4\L[r4"#!!9B:7HM+2a!?dF+57ZSi"X&j/5E9ri\U%XL %nDj"D(?31uj2XIU\W7R2IU&'7Z_><.1Uo&dfhc.RR6bPaAj_EkO%Z(0dHaaIK-,l>hOsI>m.bT#3H7pkECio[*M?jYT)o6pa8map %o#&47MhT*16iMuc"&B=W_W^Pe)0fW[j&XDHBQf7J57Y@P!WBD0VF/E?$tMG10caSLn(7)]K/:#ifFGI]j(;U1\*]:#F=;iT)R,S= %iVc*L*MV"4#_!S?SK7c[kNn+HfabP";8YU6-jb[bF9oLR!R"COQ#!Ze\8@"+VF*peZQ4e:jH8B@FWN(G7P,09m`W*RL*&A:?@BG#iUPt.Q&IfjRR_oNLDn0N3_IV4PU)HjUXZIU1r:U' %+&Aa5n]&Q;`kD:)T@#2[p(Q>&(>!48SpL)R@%e`LL8NRFg/"0dd`Cd/6,8#V[n+jS@R1! %(r3qcEGUojf %;im%N%;N?[-Q+LaWEo1jWh+\l<</h%7=/mm";l^M2FH9TQ4%R-!rVTjmDeo:r<'YB%mf,R&TGX=^ROT$K-hDCIj,Y,o'YXP6"+\T^jC.Y]bQA3`*YONCg9%E$AC4W^L2cZ3ZWML7oq,2A2Rp,He.-ujc8uQQ,2F?jc(^V;mn"OcR %?'=P9RKm:f.AHJ?*J`(h3`">WgkpFR1+?o0_rNSPT*6`08"f;0IT?]QQ>4;SZnf6h5bR*Be7CT`l$/B8'WBb^QEoPYMf-=Z(=Y#X %J[tmZ=ZWII3D_YB57=VX8"ab8IMT"p*.b[%qcPUa_b^/.^XchLCD9G!NG&9S8M3.R0f\Q]Q1a=H"#$CBKZOuh;;.oG@7Bs4n*IhY %Mf<<#A3+HA1VUCk=:qk;?L*(rDc58htLC2Ic4&cQ&HdeY.f+fOdu>eS=C1X*:!.=Y`6#QeuL- %N7K_FL-K,GkKB[i)>l40hQ:,&!CN"`@ucc5:q.P[7kj\m%-B7.K5&Z%jMX7kKc,*s3)oor[LgP7'O&Pu2ni(N'7Z#Um(`iEcf*#d %!oF/WOqX?brZ!uibr((M4YbZ:Aj[%0'tTV*Jpf#ctXH#EA1AdNA&=D$BX?0+CkA!gMFc]*u!PtQ\3Vmf)0fOcBs,BR__?! %(iU>4O@#4?]5-mBbdnc6h&LD1,\MeZn/<+nP0=[#'JRBqdO/9T43OIpP+);_qhI-7"L-6R(eTT_i!aKsMTjqDhYX7)HqTl7.%aEO %qhsY_]k+&WE2UMIWk@+0u/Z38NrIj+:th(&d9cWj4[n:Iko`f'>kDRa.nbF@cJPua5pi#:!AW[k%X:ZPH*uYPjY^s %H"G?)mAgOR2UTR93pBEcB@\pl.#FZLfF.FR+7X(Nl_YhLB?lH9i)d#c4,RKm&0r.sWaU]G#U]sG#'\L>(g+;1`%")=JCfGUJriBp %+K-CgI;_4V$KB.enpsQT,M+3-r\I@"I[B*HcZ9O#f$Ib=k)lttIp7E"[@EC`X&`XB.:">amT^6:\%gXVo&t?8dkUO`.1L=^072X1 %%jZOQDk;ffY-!p+A.SD+lG@2!9DJ9fS2o8T1[CH_O8E>OZ:A9BI"Y;/['pW.^_Yf(@4;cd^T0AEfn4?jK2Wo*hio=3XD0lG!*]pc %>_iAaGU'!4)KC;0'J`XD:%nK0IBd(T^0'UMOsC8H5$YAuc<)4J_^0Y;jUVniJ%j*+46u?-63+#[=`:I:8#;;hij*i^\SS,MQhoCM %jU/5GN7?eNLK-;5TCKdt=0Yc$??b=fnF=AtI=6^c/SZf7d*m\EH=`I:eoi_H$41Db4(^p<0Ks\*`PlK:>,0=1qk[J>X<_ld]Ed3A %)>o;$'VBF]LR$agI+X%JAm($Vc@/TH&,a'F[#TionM0MScl!3!j.fq%)o\^^(D[i0,N]1^6H/,m7sZa\AI9cu4OVDH02;Cn5D^\! %)uGcY1J'?Oc\A(*#M2D3jIuu68S42lhSBP^jJ#\RL9;48\ST*I]l+uoP1BaKmT'^d5pB#GU#3^@K+rg7:"U\eYU^4!kLKd!A:6pE %1J"o1=580fp_kDG.e6&LtI %aB"9jM.rS`i_dYTR[bne0tF_m%94polC?T85-`2il_-C7QpV;I'hH8f#0DSB()`^JO1G3qp0Ll_8^bY? %bTi:2LM(n27jO*:_/0$]8aW$^3B3;;b[YKN:^/EZ34%F)H89ueBC`9e<5N$Vm#Qu@5GAW0ksS?6j%%VX,J:mL)F'r++//#[ %?J,1B[=Cq6M[UA5r2@?%D.L@aP=F^5C6g+R+5&aF!lg;"_agY'1<5IJWVoATH9_TJ2L\%75([ESf_?&$prK`2Z]-%1igX-Th5J2e %0]-,uD8LR?Hui9'7N3t6USU6E7iF!kls3"!/qp'si/N-TOc(hs$@c!\A7K(bUM,/,7+e_PPUN%=pDr=8lm\k(X[)@^N\a %e3j_'2FjfZ[,Fp>XQKl:k%Gdq%[Z0FS"oEb4C!a]D2t3SBZ$ZcZkV#UObQNfgBXW3e`3(TpR>/RVas4]^HfrG',iKWY937uN%50# %H**m<9)C%rZ,7/+V-_Gn3Tt;00]\b3T4M]sT]&dmc_ZNQWB\UNT@V&XbiA,qVKQS#_E;b,)D9!R6rH5W]%,YtQSS5lODlZK[11INqfK3`oWqpPEH/MM!BQFOO')bYSVD8b"C1GegT*W3B>psW_(dJ`T+m<4n1 %/6KZF[G-CL>"74FFBMQ#\I.3^@a1?.>3u0f2#=[qYs<\XSZ3h="lTJJ+;ksL:qrX+Y)Ed,2ACi4/X2Onel0oBe08-'pLT^YV%d0Y %Aa_"9nE`XG1f'o+b;T.sqic^8bro\O(S['DE0Q5`Fr1m9@Rd>qN^BCRO@H5+s"'PB8+2c7M2\#E% %Dr:9Yg\r;Y^W\2GoNfCp;Gi^<_6k%78k!k:!i&t9#F+9tKUlFXUJt2_ThC;@7]G`oIYI,:Zs":SZYL@`]]64CfE:IMs0:FYsJ(B/Y\$Ilb\%6<5GCPl\]"4k_J*h!mg<4LFrFoJ1en0aR26f)k %^o:Qc=Z^p-`rCp&>:3SOIr2$:BA\;e&)6CFGABn>MeR1^lVIeBn=[5&iYkYV"E0-li>:jFsa5pO!u$13;WLTF*B$KXE]V_lr\I.%1Z?:K3)sun2<7><)W1WfMA^W]_:nrC&d%Yh!sT#rF_uT1eCiZJ,MLY*?5[R3j-F`j3dhsT__=Y+hGFA %C.i2pC#_#(XfcPRn!5lH=o1kG9(@,F^V;&9e-''.r?ZA0;=?2qmOuCMid?MQFFVD's7(2uco^JU/[2tmGOg-:8T]IH+3IoI5,Z.g#b2d#L/a71.7rp,BernufG3PK6!\A9Om-+$k,t?]EX=s_*%HpE.F3m11F>g3RUcG+j%_UWH.;gPJn]T79[Sg:4U;f&. %B1r<^0"*\>]`@8MT:=N]8\UkQ>Wd+aNk8`^n`6nb3oQIoiTjMK*M>@`=[T^(lYc<-oCc\.tPMWOoptP^d %28\)+-Z$0AE7roeZ`LRld0(kXt3L[cH9X:Q8Dm56a:tpq`NrO$a8Abr\r^JWT)1oC_8Bb2esMajmB4Xu&'j:+*3ZM6i>Y/+CK\\2ubIk1ee2K_aNNj,J\Nk$9nd94+1;.&f/tlpi4$4EACbk_^*+qPLeL=!ZH5/GUbt %\D%&5C&NB;i)C#M:92AV=F3!r]TB]`]]lg&(iMH^O>!0U?TnLI6:T7T"CPlAR4K`U6$9:k38VtJ)T95p?Y@K71J %Usi3rhJcBA$i"5Ul*LIP,6?5,s.c+sUCLVW)$rN6jd=p9T2*S6""tdfefWpho_2Y$L>%=%`R>i*Ik#_mSHF8,3Mg4tR,CK[Kbk#n %A+=GtJ94tEN&OKd$_C+_>-$d/H)J3/4spmH8^4+AqGb&/hp!^7]iU45@/`bY)'>a._:0fT\J%g+TR1L8k3_>09;F4E87P?Jo.DmM %bIcU5pL'(-P$-Wu;k>7e/T3lFGk3bBR3ujsk/Wc_ld,.A4,O*fC&M2ki)L=SjR[#09+-Q'9P`CN[cPj+?H@q19W+_l]Z[R%Ap$V, %A*G)CC$9YBs(kl+7p_QXMfAt#l*UHCZpsmfk]C!XPW5aS,1:3(;;r)FFJs:bBNi^NBd$@KbS7Bk*'RC1+64`13IDP_r-6'c:&7GU %n=^T:O2L/#&-U"6PNWJ8nDiZu@lV(%Eqi`cI,ME0Eqh7g[`%+ETcPFtpuWW_E;4GQ]N7u*ESW\pPf&8P.KbA8:CRHhn?I<%-tHi( %pi/'o9f.;=\CSM@SuBen+h:\TIU!6!iFDQ)TkC"F2&F7g#@11bf3B0=*;V9_f3Id%Mo3S-iId.*jT`kDh^>n=G@-,nd/+36*#ci; %cqfFCN.U`<:_,&V9!`>%a(?-g?\'G^:jm\Bb)V/QXi3NUb76>a,b=><7X>a6rBlhm(:MIN]YB?oJkfTPcj.,KS*+[DW^Gl"m9Jp) %e-/E%\I6[l.\"'.72mgB,3a@9\%%KT(74VKkYaV.11`1P6Bc&3Rcn*SX7MDZUT4N]ok%QF@9:S-=[-32eXTJc>p\M,?4aaMZ/RKk %'_In\87CuNm!J'arG58:&bK:f;?UH`QG!Hn0:u!cc29m)V58RSS3[shNVCUXRHmHbmnGVgl(^nB"oVisFrC.rn![ljRRO'![WRgt %`u&I.YcQg=C4A%DJ:89Z8+u1\dJ@"\'AoF3N]QiDmV0A?[IZh-^p,Z+_`?Xk/d1%s$fcb9%iH9X^,ti$)G2uQbBC\c%Afrcd2qpa %N:tU[%/5/)ZaPX67XGVMq8hOsP!&RD4o8(Z,^K"g?=CbW,WYP>i?-;i*XE6HnpFA/Mhqm6o&pa"(2%_f4XS^LY#*JZ%F#1illY8V %lM4NV`ro-05g:Acf?dH#M@W8KkS#b)Rl)<;(akj3ls`g?S=FQLo[4j28[^h1G86iD8M]q[q*kD`QEg#-$-98Zm?#0PBN-EPp@SN# %f<=Qn,YjR>qEfC/;C`$qiDZk-==PW_.]RJ@?RCXWIh,PBq_JQ%sq*cPFVU8aLl^fM(d@.K2VWTn5eo*_f]Fs2:1S4QH\\c<rOYS %YIf_ReR;`$UjI/R]F`p]lqfRpGL:^)0F-HRhaQ_A6e@#H%6'7?c:QBBc?fe6W6N8a=Rp$E!g0u/a\&Q,/D>W0lS02aD6X*P[U1Oi %QoJSoh!-s@L5A@)I_m%]"R7jh/YdHbV!c$3@LN#AcJ0+_mkRYedd$:^H9\0&2$PK5CjpU4Eom!S\*?6EjCV6obEBAZV$k(7j+g(RR7[RGVi$LI)!X+U;gF+DP,D %\R=/8;OBIPgAuR*P.VX?I?k;b6]bhbhHPCK]"'sMQ$lqN?"Tm/]XK.2%tWoCFC%2%Ut/U/\(W/D[@P"g?8&7Dhtoi6L1m>kZEE=j %ZM0,M=WoN*6P"8X4YIlCp3:G3,f!8m7"AfDdCNKJWJPq2M]')8a+NQ/qhX;MfuaSh5,7ImHR%\c5a%)Om7KmZ\N$YuN03e+h"3e9 %n/,:=apiM.7E*@%fA$biQ9n(KYX#Z6ka.qsZ:9Z:p2MIG/u2@8*(c*j#HNi.H5FWC/tCM_T@K'71"/2_ZT<'uH)Gf[-Z@A^B@A?( %-?"ik(qN`[Jo)`E$jjt_=bO[`Z#+_@Ks"DY`<'2q*0F^b(/P&8D42Ei9*hZ:&e!c/&4M7he%5o1[7UQIE(4Z5,`C5'6$X:*Z#,Xp %X^Vf9Gi%DP?M2(_HSm-Yii01BZEXb_g,`2*N[]sDfPT!mVZ[).A@I-=hI!=R4RE-F3>6"mZ$$k8Bbd5;dWl!TQ(,ng8;hZsH$>(I %1D]3>-ru%(TILR'jg[gQ+Cu-UTe)')6@,A[Ur$cjkZOR>GMUg/PsJh"\9;(TAnS6>EkR(iAj;"/3$RU35b'/@OfhN(pRAsnL0T;9 %WgYp5DQBo"f9.o1`u<+%;;&k`"J+SjSoXGlON%&!<>W:TV9IiO^ogF-Z@H;#_]GtmfsQ/GBMGqI)qGJZ:DVmWD.$Nl1Kg@f9?oF* %@d0c$c.1D7m_Q2j"o,V0P0?];i9(H_,Sr+:J=e@M,.7g*.O:jBkma.n!Ih2%gGp7`'=0s[T^T`l(?"?_fM"iM\K*l:!3c]RaTDBF %!D(HH34JMK@)%gD;`hR3=N'!T+'3us""u3bLIQ"nS&Sr6mHC]JF)D5Rf$JJ"JTF6^VXaQhF%(e\n^s`Zf!21%GjP:_ke9KK`a]B! %.Ddn_qjL+bY%j=\*e/>ofA$iL=2;rm(,NF@^QqerPO!s(5?uq;LC!:ue.03V`Q[`%fC)_]4>,ftg&$]I(7)(!o?ZG#cj/qdaa,r\ %",^I`-i:)ft %i3GKJ4$)%sd)Z]>?q4QU"c_kF#Bn>W+rH[6);%4iC_XBq:HSp'g:1N>r*SgG?(/5;0lnfq/)raEeV]bP&de9Qa4O7"`b!IkcWUaeCsVJWHV+n.Z98:OE$n/+b@VnmLVm\uPH&o^@!E\*O3@6EF?!bBi3GM2V^+cabP&:a0^2+j0&+hh %5i3jp>^"OYYiF#S(P^-,R+h)S]6IShBA`lJD%Y^34Tdc:=[[hap'g;\X"S@$L\df=dGV<_5*[ZD44Jg%aE\R[Z9oYb!TLJjOWE`& %%f.d:7Wt^44.on)^h%isFsK'\>dgQ0--;;-Z9:o64S(0HQbC`R(D<(*5mu67"T@A[A2gp#[mrP5gER*qqh7#3;[\6$p,'1]Z4N)? %p,'/chh>`K[\p)Nah_uM$p]qcJEIDRFl$]!VndUbhnqK?d#:r!TY)CDMCdrGMZ7*Zj!DaA)&Lc[G2`h"AuhDk:,c %L#iARF;8l3:1)AKl6MC3UQX.*QE0J0nQ>)Ndt&db<]^&;=M-]>a&WkK*I'd*XFSopf&OE&mc;nOrB1>?2a_79eV*HpkWMB4$29M- %gZKc3[m@7BOr![0nLfeLY4^@dl1dbmQE$aMdtbUE/d&([_sFbW\N`d0d,2;:aKhG5YL^U!DpkRt]-Hs7Y):Kg`VEW>Z\HBo'YijR %Z3ORR.eYmM]b/TPZ&6<&Xp?S$K,G9G3"dqP"l1$%)f;G$*d\2W%O&7LG/hk5Q2U^*f]f5]='U)5Ck]$<)N<+tF+$>k*&\jb=2jcP %X3)o:l3r*M-]5,Jn7eBB^JVl[*fEh\gp>7/qPi%AC@QT,Y6FZ>M-o]7+(mRd63RntqW^n85G"30G?sQr%R-^[V$e%kGh8B?NKSc` %$>HcLOg,>^#W!b_5jJui+<4#/g.ED.SY!]2D4u8:Gm1mN^-SC7(UbgF0'?PUh^uQs[%'OjFscCPTAm*u@!4\41Z?Q^QQNNNr/X3I %?.1:a]aL^_j^%E77"=[#Rd$rDr7'`G.kfX;2c\;G:P1h9)iH;]gc$"@r)m&NbIcDJjdHa2NB1$Y3*PC0b/S/eE96fInOj1t&$2(W %)ecM^?au94HZ$%eA!pT\R+[.jdWG_YRu:uP\Tr[Ak2fC %HCeqs0LD].C91Yn?08eq]XrfKmES'K/J".+i]1,]bQ>a0;G1MH--!8RGbHrd\eB3X2_2^/i:MJkfALtff5;>Tc-8S%SnN0aqin8N %SWBKk_q^M"[K8V6h;i)K.UgU2=ORkepmUeb^j=Tjh:psqh-fGdU\OKUH@P8HrUefAI"&1KfDe*sqJHM%aut\[N$,b+l8.:toT_:L %gBKUCVOb?lmU'H1qqb)CV.WBupdVY`YION'UO1KOfkHIrI_RYF\*,9/_MEm@<5E %V,cG]p7XT@"[2b![E;:.(rbO]`$"B>(rbOn8Ao=pRIW;67Fr+Dlmdh>.\uA8oDA4HQ80D^&*[8o %f"WlrGpDuS]dQ5e4,;jF=;_E?(,Tk4aT`?>B984\.&`!WnRT??ZNL330;Mt%o!qY.VBd]V,3a>+!C<;Cl=M*(95Q8PR-)'oXd>q] %25FS_;cZB)]]*-h8`45,kUlp#8ch4%_3)u.^#iWn6B[h#@*_o[;\JjC$"t>hVBl(f5Cr'sI==Y;gNCD'8RQ!Q?mkMKiXoJZp(>`< %:0dL,Ti"AlcI%?EHs!SAEb@A4rcJ0'm(Fo+J#&Z;XB4)ZRp=j^hc`(og]mf="("W_.*=gm^=Y*V1`L)pqBLWGu[#hC50m1B(=9JQ0q=?Aq/+;1N_AkMgLF-!-. %f]W$WFk;3TOk4Xh??_OS+YQ&?]^?uC/kNKn(S'(1G%f\H@H-I%%["T>L`!812=pf#,3b4h(L`=WV!]G+0$(4Al)qF#"4__.,B$TWt\-F7=jSOGm9mW=/X-U-PbGQaf8is7.6!ogI#^f8W.LOP^uA,no#%Y %22?#*32&LrQW`T?jEQE:k*e[6arfW!`9*.?U(u+]*E,qn5'f-4L>#76UZe8lEjph6RR=;<*iM6?eJsa([YMA]6U3bABFf)6CS^*S %`/L,R["l/[6U8u#&(?O8_cX?&K+!tiLDhW9*TQW254IdJa&E-lj,<8"m]]0)E9:[bt(!_uR_H1:1,H1Sm4o:RVVXh2*6GnRGBDbbNLJ%W)45rl:h %NJ=oibse0G.6pk`#$1;#pR*"l%SMMrr&2!ilgr@iMhc$I!MM(>*C2k %)VWUI.bG$FQUc?nd>0GOfaQ"I!qGBO;=o'DW2:BK20I6'"_r?<[(L?i4hLK@Qgl!o0GJsc"6UILZa9!hMoW97r?]`oJ1d"`W-[`2!\o4Nd@N:qc`qP?ZQ&1.aYf-.&kXD %MWEO0GOiCf0CTQFdO\DLh1MpnEP"6ogtTBs7fV,1!m3n'GOG9"1R"FNf"'rsbq.:?8EZSZ1kRUXFSCt8rl7#F"Z'2ri.'6*.6K71 %$Ni./!FbI^C5jg%K`<>=kWa/e(KF'.iI=gXJCLVZp`C7LVb]G`K)\[U;$XR#&4(qJSDlV5r"tk-r-GrV[oGr^TEWl.*9dp`K0#Q%\nI"?_tKn38E!&"ZC%n38E!cfud5JH&KoJ!)>or^TEW!EDK(r/Za7 %1EG:+T17($LV$Io)7m5i[eX!s-g(VoB5M %FF+`#J:R6N@jV@klS"n67&@]c_?d7t65A.b[YP&=>(L\>-&#$]olAtZ.PP(ViRGVu'Nc3-._>bgobV^p,>qome7fiqOpG'F51O_g %/&K3$Pb>J7\"B.*kYWcSSaDW&$I%(.0IKUs@&6(Z+bqh&oG*-/mH0>=9+X\Of>AW5^Rh*CNNgnXhlW[lTJ4C!fKs+]H#;'j> %lY7oHcWJ`F>HFGmee@>+543O+[/VS*'\NHUC@@7G\Ep3#?^#1/SYbsWPLsCi82EgIF$u`Z,P9L4)7-nhE5&fHeAJmRhc1%3c(O?[ %MT]m11H8m]\a7?ASgcAW=9YZS!Q6X&m\Vr^C7Q&E?ah],akr$ba3,=V966&D64+AF7:9d@cSe"fMD-29*6Bi;gS %Ep*'f,[%[FSF7c`$dZtL>TOXkhgHhFtr(JVDOKZ@T%08R(SJs(q3Y1N<"3PqJ"kV/o"16`"mJ %TZe>IP&FB=%?,UE4"D,S='o#<*T^k4%V:=?s/GWRfOPFoYPP*n/F+Fc8'kQ0DcUe^H`be?[<9&$u.*S)SXGK]Vf,$QuM)EZeHPHTp %3jC"m8TL1l-e:[5guBV:fbU">HnBH3:.lBdPsTR(W>B5X,g=P)A>jL,Ohc66-:m-Bl)Pm4^5p^IiX'd;LinTpg#\39,!3DaJt:?? %%:@@LN-0`c^6$0+$tVInECSXr_4">d3LV-CFY[t3$7W^1LkEDV/8qakEcJ1E'L(0++k?tVPp(dN(h0&u];")s:5`SPd&Yg%`e-88 %=FG;:hJ6a#D-5ELNsDmDr0eD2#6;Lb\#4O0bAe\`U-=2dT(Q#A2"i6Z;]"?9D5@jW0o %/VM%i[2[kgTFZG*"=8MCh@3$RU3d'<.%+u/ToIKI4F';BY]6foW,-AlK,+VAYT:RDi$%8aj,7]);W[c %52"?m'&!$nT?Q.4eRI]U?;$l%AD454I5GNCfQmIO,R^m0rD%`iXo@VK^3A2[.pG)B8N0fS35'n$&mT)VW5lPi#p3+#6;*eo8>c-X<3<>T1[o=goI5C_ID'/jG=`usYLb2YaWLcKG1aWW!^k2q3.l:KDD&G0=]:BIfH!Pr]Z-\2c"<3Afcq+$<) %#A!KX4l;OVLZ\%lo;%e16CiC,B]/=:ntDb@l\N>\/B!>+mm?n1G".jnF9mIkOp+H1iOfQ%&'a!c-407:q7G"lYgi%)Qg@$H %fX$t:U%u7GL=cG3rGoW\"d:26[*E7BrtYBA>K].#*4M/3p,,Ll05YCbeCF/oA01Wpr5mta#@d/c$l3r,`hg":p:bY)p4rb)Ii30; %*c&YG\>f)DjDilc8]T_qoAtg4?E&C50Li&s2.)""*Lp,r/V]c\CjF^Rni9F*liV"1^9O*o!fs'8Z25'r39?, %+k(0(alBU/MGJW2nW:fM*YY";6mRi2)`aq:-S^hXm-m*-SaK4M'hob4lG!IVhu1Ul0+j;dXg_C8Enj^&IW_qUpmn1p:J#pH5p#bq %5=Ip\L]5#D`$^'*\0m\5@,b+jXJD(be#"5cMUN"WGN$TiCZb2!;Ud(B6K#nD>r\^'>!K6B5CT-> %\-m[P14C3!m\jY%;>B\]0#h1YFBW#K392BB8>l.$O'D&h/"JR*r4"ce'!+UAMBCGMOomrj$%C[nN.d&0A\aA%Wukg-.*4Gc"FGPL %!-ojbEBRA[SG69H+#g3>)aGGNIb\Jh"ZFpdFh=T2DP?iF9\!6%]YoUJhk5u^0me46iQ(t&Z_&"6F8sF4qHrr[_!EGRq!gf+:L`hR %iNf(Xn`.W9hZf04Jfb46ZrlGr#sW=(@uE-K'(FqEliE25"HZ-**s\Z8ct4$) %l-N16B'QQ'`/d8`?6J!rdrbBSWVN"nnS/r[G0#@Z\%H[m[R72MLW&Tc$3@o*A:.SVD22An6Q^K_5klA`rSRl;ej:):QQW_(0%6L> %#IGLlWE_NmSC;Z&ANGL55:E7mh6a'N@"%Rq!q>76]*,AZEoP-UFVDi>aFt_.?X]\EO,&'3=n1P)WT"&B7tMh\1@BhTa!Eai&R"Ya %QoFF9O@OmEs$+`;S&:;^3n\^<8dp1(lrGcQM1rm/,:/pJomX*SI/-"`\1$4DQTl79;ZX%j5f6_r*_ln8/\\"f0q8U,Db2Fa'8S2Y`Kgo$4F@_*N6j9/P-:96cG"XAt0b:5pLo<"lp`-*h\a[ld %[nH+3Z#k6V&F,BZ05jp\!LFZq()XM"oVlpu7W)fE,QWoE0TqYE`U0C4j679"#?:tr91tZ7B/h%:'?)P2*0EXo?H5sBJ\K

#oB]Jh(`tE0Uqpc[i?Yg@mAS)grZfWj),`:iRp+GQL3X0pCoSZ-l(e(kLmD.>UJI_Ca]dPO'%6phrV^+,h%:;?dZIoYOkFXn![m0(ddBQ8d1-FQr.=Pjp")8eq@WL]oe7lGVP@TB.E-XDU25nhFP);q>25oSbkBJ@U_[i$%AU>@8M*AjOjb)6e3YYo %>I5@dWa##Yg??RW%q9krW,Ot^'tS((>+d"$jUuXs:"\hFRlWj(5o"!J %a?s]NA._:HEKaQA@hg_g.4V=Ya888.Mjr3O22WQa(,r5S\=Y1V(5:6VO"1VB6&NbY\%qJlS#q\ks(:CQT_/O1-%O<&L#8U@k4J83 %EQP0JVe:F:Q5Dg/oY!<`;[7=Z)O'Z'1B/&BcSCOd)T@M&%,eJgkt6DQiN,]3ZZ(4KL!^ONBAl%gLb>IdHkrr)Z81S_50M]t/2hRp %ZdUETF"RRN5c_[SS1#lJ*?QR_H>bU%r[Be%7*pK[8SU?j^._Q4KY2O89Q)@0'>`6!obK>)_G4e\*tRlLIGNm4m/"+El@O.P/FF^U %/qdS6E0m0/O!#c+]7EpuZ1ZVa\B7e+1#f@hbErH!`/M;[dgdY+SJ=pmU^npt5L8;ubVR8[EkPhlZ>eU'hfF+>ZC/Z(om>'MW?A48s_#Z>Z>eU'lXpCHCk,c&/I?A""G`&-/e(]X?YtmR;8&s&YL,)!dpFBk %.t@G-WOM&Wf^PVCZfWNa/d\&4B'VNC+\U.+pj^/_,$`Ugt^A?e1/)>O+,Vj:HuV^X\9HK`J8&M[c@gH %@";iK#G*RKJdfoN_sG<+JErUP!.qHqm9hG=Ljrf*!iH5f0Z61(.LptoK5k>Lhl5I>7h:,XLjoD"4DFkL\KfYK[VqVhF4V?`gk@)/ %\aK.PbEJik'jmskWtLrp4U2CL %d4G;-/EViT_a/^d,YF']_a/]q;@8?Ie'HmCPKZmPQSY0`VSUKS@+&V=5N?Bbgr`Zu'j"-N[/qdT!Ks"L(UX=$dk<$m\IVR>_CL`5 %$U6YCj?AcQO&:HBW;t&s[>nFA'T(c;2G6N<5k5^6iKG0@.7L@(M?FJ)9HnK;#K>:4`]]%`Y4 %.qstYV4KkWW$S`D@n`n9A^=97WFuIeJ?,I\49p-*Bd*/*Y&sQV"0.@n'$h%_]s>LiB6_,dg\^_!Uae6OAY/'iWO%ljETUq["+]c% %*Z,f\D@W@relCOtH3aHT\t@??[Hd..=p5p7[T%S.4fQm+4(/)E9bN=4e/@eqb;5%67%TV]-mg_]-g4H+"/kk*@q>k='h5EGLQiZ9ST*de%88jOJT+Ls %Ad/)J."Tc]C&\epuC0erjYGG1leuCG"I-<_QH?o'KD7'#EtiD.'Y;=ER\N2D;mdAlZ@H:Q[OF_X&c%6Yj5C`- %PT!)4M&FRWg*U"ScZ7Je0lgm!l/E+D%f=c@Qob4iru%UKig!sn7@G\06S'#ZtY8!?oR*fkZm %ia2MYV>\&s!1D,GDI[2lWXXOs4/,Q[:S+<#F2@qESX9*+69pqji1dh#i[+I)+&W+jcYrN#$8t\iD %F)Sre)VsAZ9.V8D1\\qW`J-+@fgMmV-oR"hc._Bj5bXKmh&%5"]iP[$R'eI^;B=h0:e %-l2,UB?[8O:9L:SY@4:/bK2V`;@Po\+=l'j@Asr@?EPHX?VF:!Qh=RWj;KrJUTa,YUp;VS;Nm>\kX93ZVc$^$Tf_407]t]2SCDZ% %Ua/'+_q"H20j6q:g[EW78o4A>*j#Ig'Nqu$BffM9BpFr"XeDmGWk;S(kF.j\6;F\W'bSQ%tD`hV]87P3q(KQCQ!:M&=e %/nec'W9Y'uen+#MYa'"C/F.n@6gep2d'>9CV+D+TS0T)s%6)4OB^FlC)/a-&pSET`qOLjm_[ZQU?(`5QRq>4615+gZCmlLrb7LeA %K$t-"=b]Of?'i@4/mf*F]<4e7=dQ0DL\LdY"N/*(H>4t!S9$bC-UlFPF'b.:sc5+o':LFr%]FTq5> %0H'U%bIV*=18(dC?s+;&iO.s^"I=02hN-!,`Hs't=&<:-([/j`j;#Zclb`!-]j+2q=Vj1R!HhZLbIWqr\h8PF>tT'AQb]mZFS1:O %\ce=A\[9r(ZkbU"V5Og0(3`n_TRt6ZCN5PAi("9R[CAd[Eu-H^f&A$a@"eo`[CAd[XL\_5[CAd[qu+AI)]t9n;H*j(Mjr3oCM`-<>$$_=PA>)Sm"@Vu5),.4B';.4$AkdlGr>23[p'O#*S%PWZ&=nt,73TEqT4P@d:=Bg`^3lj6m&V!5^3jFs0-j?"VCg=*u/Y=dRb;-DD`9 %'OGHJI9a?uL9`H0>KCqm!mA/Klr3\XE:+SQP`e,QSi'QM@F&^1TSiR"=h09lr*gXW?-pm4QYT]6.-grC>#qf"F/.]l %;GsZk2mH(XY+Zl<;%0(]6pthC3[LcQ)UL;a/(`,c7'5<\ajD#a`*>Y7japE5M>XJa,UT6%"f._'>)M/p! %0@u;^XNS5mLu?'>$lI#`)54.TnlV%>\ce=A!Ib?RlOm=N"ZofUNYnUo$R%^EiJ)TM1\[+ZL)].M%!]NX%6)5QL9P_F2;F;Uj:W8H %Ls*@D26a5V?s/hjMG>rQAJn8"Q/^4#8Qge>[]J^M6U>9hPT1r&+?tYcQ%8(ZPu\ %%#cpZ1I!b^p5RO9(LMT#qYBL@sGtWFlA@SfR0$9Vc$o*(V25]o*V7ZFd`%ZbiN"_bIZ&=#s+frZ7`KTO]^5# %(0B(@'mJ`M/qIS>T^E)alOm=NANE`,WsJMl/^p1#6>LS-FYP>$\4J8C":_38\4J:);%0;/\4J8.,p7lli[2(WjSTQmMjr3oU;b-m %,de>O3B!I]e3^3I33C.oC*CM3:2=j5>,I36K\#--[8O>V95@8"[CAd[40:4o0qO0M;H-NA0cI%QFP$cE>3N>6P?O-5o^#=]f#2eS %=KA[Q>25p>!6l5\15)_J2Xr+)WAVM$iJI(eUfP,DJ>f7ZZZ_Rke?W[Z3j$A,ecdQt5[B_lr<9[]RN\[bAl'Y@Z%0DP, %AR3N^Z>7p3i2V/6F9ogb5udY(V7XtJ1oe/\(5*;i6)A=^mcGII/0G%9AMn(;T+fBH2GN/i/=Y;bF2ga_,j01(HQ'=nV%B_ %?,>AVO_%gaLR0C&OJ/aKnb_o_nV,uF\tHenK`2T\eqL>1:gKF'Z7^C:"OqQ#/F,&I]9pQl0qk#GVo1,EN![`US->Uh941m=mS&b- %CZqQ4!].]^CUeQZ?E7Z:]U$0`NQlR0Z7aKRaN?A^;@RWWWMEcd-e/d\2d*\Gs'`0^',DfI@"=EYEaU-s$lCM"*#OM5ZZp##*10K1 %^qc-^Q3/?d@-7>T+q3L&232M=67]eUL?YF@=;4gTVm4E]16Mp\@VN")W?W-X1(;&CN1:,'g=W7CL1+E$0+3L<2mN`KG/7*+OolXS %jrU_oLKa^o.4\r<-\AVHg$R`/2fu3pJJOq&3c8G&`rR_nEG)BJLbQUXA\E6]:eIoscd$JK]?FP?3Y?P4?Q?/N,>>GlS]4-d[b>S3 %KDKI3&8Ru?mmUH#O%@8olbCeBm.Z(55.o&8d$?S'b`D=im7*#G)As':Jh6/^#Z\jM,'g)dLeR#_GM %<#6.4WboBr;N&d=dDi?2NabE=$Wc'h`\'()P+VQEo3O,eZ85j-NErdCj0_GGI2FHu(#RXIfc;,LQPK;9?r/6<`gRoFcF(]5&Bd"Nm\1@pb*gRRM; %/D,^i`-,nMjhNa4T$o_gW,rD-!Cg(29]D#$mZ&AR[oN]/u]F>sB+CeI`MNb(X %B#-VgfOEgJG`5q&H8-YHb,6`iadiDW+L6Xu'LZR!<*W %XHjoCQP%Q,m&L'?ocHeYlG1QP4]Yb0R7Ei*6^$i[S1^P5)/^g/ %,MBdFiG"$\K'`rJA*h4=g&$7B(oCV? %0;N4$hqJIKnPeLO1ZX*%V522ifMinn;_n.C!`J*mB9AQ*c^H$W:O75Enop@Q$p?sa;2loKc"koY/*l]mf(,T2@Kk">*uk6= %(/?!8q'S"#:Q+GJa=)7ua!=P&$j%YZNrVji92)Yj&Y/-[*Hr9ARaqHn<'!rV@>qU^M;n:-AO8.Flm&!*^&fS.oV\EQ:A`\LA5Rg<*_%eFo9J'hMm %HWc+TN'c,$!";]@Rab<_t3Xq,/#M4TcpTA@quMhsWn %EtnNocRr7Y<3$F'AZTA&8@?UE3uY/%RA!YAIlC^5A+Rc>9>MUb,C-Of %mATNY5p$HNqj%h5cpWHNE)K+/9ESPJ1ob!)1roHK!Rm]'fgI]Qhe<>G9XJO/1[ZFGLU);5>">q7eA-9=n_g^6E4@,32PEV5^`W5S$E]o[FpT9)i!G*9\N^N"02s %\*$;ibS(F5($G31D:==Z'FAb_1(C9ka$@n#!jYUc&27 %4/\9OiMGEKaZq(]/'pm'BV^6MX8#^Fguf']"Z\:f%$Qr+cq"nTK,\$o#59^J\gf[H#\KI4dJSE6iFS:uPQ5`3TKlQ"LFb2Xe9B[^j._P$0F9ruS_o*287?Z#kX"P_=SM$W- %Y]&M$M[usU_j#t!FLm.Ng/6p+8#K#DbiF0NFEG*IcK&@-e'[Cm3d`:_84TRNkht`a84TRNk^_PT\>XDFUXLN2hAl=cl0*3q*M_eg %Yo>,_6K`&9%2@4+8YlME\qJ@4q5)TUKFU*1"JhgA-$7^506]H< %I;SSOSOfgZSN%^*,.`QZce%SskIC80dQP<^-DN*Qgcf^T]tY[Mn>8!,CO).l#/:d`P0ZB8I*Fa@5G*Luc6+o]4F_@<0Arpc#^PH` %X9Bdg;d\a#KOrqa%npZ^@j\[YQ[+Xn3=DQkr86"t@u/uViH.ae2b-7s#//!gKM8=s4UrJWZ=>;MNkn:$ %U'+_PF:9GZ7Iu,LTjoV_]]bA_*u"j:9EKiUknqnD3fK/g]@L]0=>\oS_H"3Ze#0PoO_o^FR,EPlMl'Cs5nd)Z"B5q=NB<[QhSb^%5iMV7>%@*:7<`h9sTNT51[- %75th//M>IIIp215JZN,ts8GKO@VOX^T*'1JAR"BdIb>k:-)$gsZ41ip&udP+fmCp7\W9:UBWs-=\#ae>&fYL=^X8o$:i3nDVhU$4 %Z#GRt:?GlHS]OU5S.)lm]*2bDjCD:!ZZFC%oB]"^G)@b1c]46%#B)=`T%spG>'f;`mpFn'f$S)NrV+VWO2&_OQ'Hu**6_md^X,db %HM6+Zd8>gS=WeeU(2@hC$gbaP67i[Z0c^fL:lDcR%2=qmpa#uVnJmKf6tX2r.B)>e[tr7#C?7o:p2*>7OYM!T;,N8OS!$0Mi(')e %>+B$<5P*&1O^V6;SC[9&Xum;a+q_4Bmmfg3LKY\A@O\l7Mo^RWDh/%WLOG@5,-s$JV4\Tb7St(=+h.J>67q\[F]ju?i85?$>'Ascm(hh4:!B$?Jq3N0p-mU?E-QLF^R,dPk#.,XmCF*drR>u=B"D6T( %N#'aM2,ZCRmXHCe,fMhh0cY)9#2Zi0fh*43b)r>$Ke@E9?#2S>A$=j/]SOfj,qRQDc&qCU]?Q9^UEdUXVVAdK_cd**"^o\9i_SR55n %0anG\?bs>]r^f'R_a(p=o5A"kr/LUPDYRr]KR"T_'7S)6W25-86'aE)7ml@(m\BmXY4]-RC0(\ %AQ\lf1si*AaKN*/M"ki`JK(5ChB9tSh!XfW_&TI=18+QPnH?($jBdT^1(0G8FKIO*W5dX&qn]h_1c#[UUKrG[ALZrLl]791hP8ekUe5pVd!kRfkJ[1dn*.3A(bS?W`-Rb1G)8#muPKj6.9pb)]*/pW&ho4KtZh0 %VN;61EC/?XhVPm(ZJYGW:),Xjm*pB%Jr(ZURL$%;SqDlXJZ^%TO1O"#_F5.ncpX00G+'gOC90f8"&/pmR%GdIIociKLk-oL#;Woq %Z7A+9PgmRYS0p-*m(m]T71;!bWDut]P49k>EE]:CBd-XAUR\OjGN&W6;8b^56"Uo\;8b^5@4mCt-t8j+cl(jiMAU"No\Q2O7Ahks %+pOJaG-40-_C:G_BGpF:-*oTro4Dj"`7fBT.ILeQ'5Tgsb%ZLfau6&B/\/20YY+;^>!b0cdo!]ZB+gm-WhY?V?UTgqk7%3DIa/23 %&:0<@^9CurfSsBeqG65s(%5Q7Sk9godL-=1m8f3WU:e>O^:Zr]*=ojXa[[V.0/)/M#%%q%f$lI)d2Rs.'4IGpGjsgI?G!tGC@/+qRK3$!\Wh3'*YoJ!LMJP!G?5KjsEF:NPDX1ep^^=hm0lA-U4q['U1UZGCKLt %7aF]O^iqR3oB>UfYklDmeN;HJ[-6QNMrSkEQa?GL,VsPQSEZ]-S/K#f)'[k*&/OBO*TW11A.FWU296ZK`ItVKcl"%O^0PllgM5q< %cL,#1kSt0b6f^tjihBR(%$BQeU2WN9+cL\/3';Y#Fq9V-9!3VO<"FlUi0`g%\/^Wi-J%r5*1O3BjbTH#)"Kcd./35fkb,P)Al1f3 %Yh%G">PZ\?fdBmK2YQGk97ol %EFri2c.[[F&L\/4ZJ-od/VU1=r4fmsT@ssOP^t]1p94>;r^XHeTB_2l5&O"1@n-O>b]_##JqpEs"lF[-'V2#W)ec<:- %!9/+tkk(GTNOd20):!6XBO2+%%-3LC2ss-`**HdIUbV%lba^Q!JF8QU3b7#[j;^Vcp9Bh$'NK8+(b'1CgkBeaG.(1:\T.B8XE#Xa %:55p#>f/bl1\`VuASlA+j\2oqFkDC8b;oWU2I)c]7Q(3mcGU4I[El70o;k+\VOWR0f>[K:cd0#LX%khV$Vd9% %2ok`PK)->=;GqQAelm+3I2Gr6)>?cL)`>ag!8oAOG9j/^ZLMH %=ibc0HA"-9kZQ!biJj:\*.8Hq215_++gY]&_b"u)%Ij6lduaBonlXA&U\dRrkY_GdG#<:IYeV,Y3S4]XeXJsLjkJTbO_S1od.j#&10'!bUFN\@0AT\4@MjfMrK`iZ]N\F=.I9.O:hL %de$#G.Vi]HgjoH`j2L`JlGIfB@JRQG^-?HL!W(%o#Hk/R@!j1'h;IOLJoANQ%Gol8pKn4_^qrO$9^!flSKaRH?_dY6s1sMH %2hJT@r)`%p"CYZ!COPes"T(M-0u[T#gSaY;pH1CP/0n#7QKJ`]:G;u"XX1'dq5D?oq4[]%`N5b7HhN%(E`-Y6eZRPKR4b7i1 %hn?I*V[!UCe;iC%r2jAj/B:S%?8_#NksI@VS"a>35a#E,:MMhohpg]8r@!B@`bP %CPjTZ#2]dCa`ZbqR8euXpD]aiXbV$YW>Xt2k*2+gmd-oeZuSCGCe_*4,fZ#ru94@*1"u8p6KY+2CgSso:=`IWhc>NqesY*6(705d7Y8brH>/aG+.-)QW#Nf]",l*E1"CU0,:.pT&S6S%6\3f>pEJkP[HFc/,+"LY"o,EDUu2\PL^;+2!F4B %]f&O8a%ppclm7G?*sX3g3I(Z@f3Bi2[f62aPm?NN)\4XN]ijA.quN]3?A*e.p>kQl]99kHZI*tY\c-Pkl4oR@$c:4H@E,ja4322g %7@O]CRq<]m=4&A4g8:h:eZJ?=d-3F\@ttq2->(WBSk$gR]X;Z=03bQqDtGeg+3kSieqo+"9JOU]DeBlWM+9[j/G;l#P.s4Gp$Wl( %Wh.8pO/GUo3&2/*\H9ltj2fe*-]HS+%]$Bk+00T=rHf2!A"[8EK[=l3JM.C/Q+uTtm-5FO]smm2`o"dKc.&h^s6Z`S!5%u4p`nJf %QK9H^*XD'YJ72IE3Ijg)h&M#$Y.Vni2=#kA3pY$2Jt9j-4aR:CoeVN&h#M'1q=X4&;s8ApeDZ]2oZtdK[i#2&=dSc@><-8H*-H\o:.nM?;4 %h'sc6;km'352U3KgMcsthEZ;Ur3teM^oC09:U?c%bf@R_rV/2:*h^!g=j!kWU0Sba/Ee2s)LiMZM[o+rab%77@@s>HB`C$is!%pJ %(0!%ns(+LrQNd=p(:9kgBV,e%+3B,kJZi;$h`eLcs,U\VCKG.Q!$:SJZn1EeC?F:#Tq-YY7+7jW#nF"7R&iZeR9N$d.,,rRbb.P$ %]rGYh^'k4oGMgKR&9aXG#QCIk7eU5JB@+d#r,=ThV(eJ.]JZ]V3F %b*q2an*aBlXi4"LiTYs9.DnMf@HK_3f&A$aQl:%U8M(g>3Rac>kkRS[/T+HZ;7T,B%&=Y^EJDkEgn^7X-A9`Lgn`LX.nZJB\4J86 %:PhPVTiXm,Q&!ij//CinEKaR,l7@u%M.*k2[%j>%()*ZiLS)=q`GVV7!g)/Xo8-d9>>$(03hVd9>>$((2W"q]]N`][rHYmOptHaJHgV#O7ZkHEMq]g]4ROQ-oG\NYB3@SYk_!@89%:)4--Z`n6)XFP)ZT) %cY)2OL;IVXo3%JLH=ph)(kr];CH5!to\O1(rDRSnoG0cs*.9oMoG7EYli^B`H4)+0YS17rkq,>HdiSHpDtJR5R.1IG[mUNn8:0>. %I\ErL>_QIu2I/u^C0RsQMhJ[gF`H@m4aA+MGF8V#Wj^Q+lI!S(k5L_aGKjG`1/LhnW%DfiEbXLN7Deja-L?_McJp6k>RpYn@C].J %.jKUJ$eE%gmlZJ.'Zs0fg1%oP'^ujW-Ff]b+E7_G.nlidg6.-0FND%U;ciFB?D-\J)@teu?q#]$+7t/3N$!F]'tmh`rhXc;XGm<] %2^T42=t9p[?d?AAIc)RF#gJP]:/M;C^=cHYl]&qR7JBW@op3.JpE>LGHdJ_dQK=u:d6/hp77CPcbqnL);)rjET,PRU-Z-XF"]#Mj %b=+:=d"%C'IGt&2-Zc&4eKu<8eXIJQ(Drl%\tPSWG9A^E?W(?SN'?f@;nG4WWVXb+NTB)(4+I,j?C`\b%>&3@a$[Uqm>*$$Fp:0^ %??:0`_s&f(]m]OR/pmHjFV!M)?U(RoBP'`R?'$!CbUOq$Gb3!cMq>PS& %2>M0gai<18ohE=tDakTWD2u5/dipD-8geJ3abu^&7(Tq:dk>:n3f!YAhMs"Ga?gUZ*0pt;!ubT2o[1#&-e%r$#@Is9Jj"L`kIH@o<0N;?M"3Nu@(?.C^aNT!Sa %FO_QQaja?g>AX9o0^ceT3tqD$2/4)2HYXH\4$2s"5R':tWRU/cs#roUf)$cgVLA=r4DqjfFr/mlS&t9D=U[#Z%:HSc6@aHl.9jo& %HlEX+"'GY,q %n7t4@lZ1G<'rtV]B0FDkL9]C\l3:n!e#;F'LTQo*$ljAmj^D4hD#aJ.F)f4;.$l2BnFl*#@B%B*Y>@=^e]o]O(R(rHfAZ %Q(#HCcZ?NghNAu+*%c(/XM)[7!bC)/EsP4AY3P`14$Z$_G\]N-*aCSrG"ZFI-?P*4iWR&^qr[_o(/&jV!n-8Zot5tD2U.k>$HsZ5 %rH]*&*SA]o.f@b&KWN`3>%V2c'm(#?;X&2mI'@ecVi=1:B2H.BJ"$LIkMb/u/H'J#^FtR@/a)SnPAj-Bhc/g'c0n#s %dmE#?lg2'$T3_63HS_M#Xcr;UQS101?Ja4\h[hnAX*mg<5/%sRSsEs)Ljba7Yfj3Lj* %rA*eF.c-?HeggI"!g$bWsBQ;c3^-AHoTc^Tr^qC++2,HtY+F$?8 %o3Gn8lZ?`!^TO+bcmkATiap-hpEeC?_3Y:k9mj[5G5X=b&5^qm=sj98a7tA0GJP-N>VQPfY'sa;aUA:m/1ia+anYJ\VEC`T>"_(E %8b@h9.1gBIDL=K&0]irL1'?^dHU#k'Ai(<>RqPqhb>#Ue,%_&5r@d=,qXHZhl)\mh,%]VepdL!1-B$9%m6Z/HBBB$NAB.phb^GQ: %8^PU[^eT,EPOpM!231%`nGCD1%NgbTcQed-cW];T/jn)\PBJ"+"92S,:0TjA#2"_/m?m:_:OK&mbCN5PAkduMs>25q)jJes' %>25nhZt1t'$?D84+fqW8\lhI5TX?nX<[pSp/FH+ZadTYG%(-F7DZrU.(/*3t(7FriUf&A$a+slKm-FFOf?nG:7]K*[[ %'/*-FU?5'U*2Gr:+nQ[JCN5PA<\FuSf&A$a'Gal1S((>8#$QqSe5B6M>0BQR/YI$N?B)>,TL=\fN#>T.iVeR0P=HFgr9a6-Nl#F/ %:F`#b/g-P37#6oLBSk]Si(g0%VMP.K(nW[64D9uh5@OVb7<+00q(,m5iY8.6L_aJZI4pGU,\:trU?6^%e1$L9[6,ZN;`MBu-BEVC1H>A[)43aHmHW8u0`8`[^+^#`<#P37S2nMaM?#[g%i[tl/;Udte %AMeQG(79(XN[t9XUK'A2e2tQ9cPKsP$85Z]dEt`02[\aOX_A&qXj)L@Yb\5ol*jhbs'akV %^IT@\6r[b=meNNDU3aWnh);Zl?r:DKBKL(R1e!.2k4*u,ML7f91o%V,!:bL*D&>j>4.LJNM1T@%eRoX:`e7qXo1'?2;P@54Vn%o3 %]!*)F;Q_1naX&Licme9Idm[)=Qb]mZ7?s3TkkmSb[?QkjkbK+XD-8WPKuIIT>$732,>6-9FRh:378m6iTp)[2)a>Y1)Ub(h`5+.B %?VF4tTp'5IouR6FLAh()MO:\%F72FjY+ZN2!=C#R\VpDfW>`'_%@q/A7?s3T %kX92gD_W]OL/+`lROtAt)Q)n8%HpBJQ##U=5-PP2Qtn+OX:$_f=:U;cWUt4=!m8+$)3YVLkVl4E>p!.X+\PrSXHosHL@NHucr2AP %g^rX]TQd6fE'l0n<)guuL3RP;]Iu.t&0CL,c@_)qDTH)6"oBu_dgX]Y/42i@SRtF81,RTnO_KPaJl0KbFHc"$"I=0Bd&[-#M(@nD %KYr>O/qIS>n9t\BlOm=NjlV_8P$SQ.?!(ge:)q;*l[mYb=HF[L`pcahrd!p7q.!lc$j48DXWO%8lOm=N,pq/)XK9V3YTq_A9ht$. %#'X3ObZ)B6AR5=f<'Xl'?.eto60>DKcS7HC36Smti4:OlAR1EsBO[6L1$r7cQZ]!KN.^S./aGa<-)dt>i$O**?l4[f@_I5`KaXjF %&m3^rl7IXhS&CP6U$E=jf-RZ&$Y*^f?'i@40%2OCXQpL$eqGnZa`UkjbIT5.&ZMp+?s+:NrD6[US('3s9)u(?XK2fE`PQ:?DGgj= %;CJZd9ko7".[8ND-FI)RiF#iIS(*%e]MMdiS((?c8?q\>8M,03LXKA]Um@apa:sS,C,,V)\4A3pO%cIZ.&>GmEfGY"!lPmICN5PA %MTVA)cU2Fr/@607WHGtG%;@I1<7VdG8M:^U78D/E(.VfXS$:Yb=ldf-\IqroAbM(e,f]G;=r(U:VmX$+/O/)>dTYG%(2bs:8rVpV %[B'c\3j$A,etoV,7@[pp2Hq1`C6GEp$[t`6?'i@40"8TYTj0*[=Vi?j7m(7>Z7]6fBT/5o5&9-q$"C9[n6*Q@d24GiHkoD[;;(g0 %I$W[3j_(s=P]\Ei?sT,7Z7aKQ73K*LdTb(&*J*.+8T.>7CI8@[cE](/0h6>OL;0etehOG>MhJYQIUU&uS7Q!'if4Up`@gJ^hI9Fl %++HnqPFXm;f-RZ&b<0:Y/=2?UU2aFg`L'a[Y-K[iP9k`4(Au#U^-4%GVIVo\+K$[Ae0t\/?ZH&A>at]UN@Y0Zq8R%9,YA&D53R^( %^3K///*hf*K7LNcJRr-N/J_=;,u@Hp:f7So&lI3`dm^)-_H:ATS1S?3AR3)S`/$(*=OmYiUk$$/JRr,NrYM<]:fpkeU@K@fV5t&, %d=Ae\JRr,3[U^0n`e7r])G+`^Z`FQ4aKfgqSQ*K\-^U4+/h?IB<7`G#X:%"-=h08^WZer+dW,ef<("`'Q'H,5)iOO8\q!A:Q##UE %CZ%cU;Qc^WYG%ocEXa%T.\ul5:g)DW?VF_-Tp'3s8JFk/L..]>/sCRIPABAMCY68M;PQ+r1bL?2YS]PQ8WD;O/-8tbL!l0KjVk_"=QSW_3mejHB>'O76RVlVmcBRmCZmH##k:L020>QMX@,l6\Vb.9jg.5fllk@_TuW75cRS=]h/I8[rlnZmi^%qLD6g461'H3ZfJLK&+j85rWZ`Y4OHa;^ %b-$9+/qIS>=E?p6lOm=N"c^q2F^7p-DXko]'K*+t941m=\BtED\ce=A@CIAiY"N/*Q\f&P"W=1i@LN:PQpHJ/&pKFG@#Q8qo*01uK0.dOAS&^`s1+q\q2oJm]M>`>s@oNd(6\ce=AnYOU:Q?@KI/m(A-S?abd %f>d!c=P5fp`;t*e!mA1E$:Cu^&m3^BeL9h7Ff!'BFhsUg:tI"tX@il&lOm=N %L$l3b>)Sm"6?@0,Xi4Ssj]2ordTYG%eg(ul8o&F1>%gV?VmX$+/c<87"'85qCQ]&qV7!g)/bE8A`5]hC[1nmWf&A$a9`,M^;im9o %MWGY49PVD>'M<-qP$6s4;Tmci%Mp4.O]mi/ad*di6YaFG'8[Ta7;?9)c(qbi@09AS;G0]H?5TZ\OIe$(ecNn4.QiWM%,!L>4J\:B %)U"ob>P<.\Vjo"'uE*\0PWA9X:*io6$6H7bIT#=GTrn/XK2f5r:,ih=OuTU %;'[i!@e_MHhPW,4@e_LEcq\#V`:-pfH)EB#@e_LCP=o.`Q_F]8FU9Vb!gFCMi/1*E@4%,-i/1*ETfY7A_%j;XbMOd"1/#M6l[m(> %J@[@a@R:au7DiEYbIVYm#.^m0?s/hK`IaI*&S57Pf,%98-*XHYS[$6ef7`0&<*2.5B+L0O:o8YIJ.Lkc'L_?cZL'V24G.TS+,U2_o'!.*MGMjda0FYflQ:E,-_]VWM-,VEa:$o)r=YS(]YnG00OVkJ:ff>YWai/]s1>5q3 %KmmLGT-#([jaC6()`6\IJ7#`(/U>mf(i(S#'I(bV[3,]\!YORi_8uOqh=ZP$SQ]Qb1Y\9mSCo %(]o\&Y]JnN]d+H,^lp1SONDMMLF%l_)S=?fAMnYaai5!0QPM`)J^G-rd'1Pd/D(Bm-R`;N+n= %lEbY*0m5"Gce9\afVPN1CR5`F(V)IJ[lIYDU#GoYe,&@b]l*t)%,%7FcP>6\g[NSr13W>`34We@/-t)T0jE9d_Sg;r)7qX=UUb&s %oM5?BkLd"H58bEFE!krI^5G0XZ,1,>+s2qh4L?G^O%;*NFVbPg\daC-_;-fX`i^L&]DD?8KhFSUfJUbmZ`RMI)9+9Z\&Yas8MPDI %oPD"E98^!tRl8TY#?I(+CfAj2ZH25'K8\PqrMYT9m]'sb9FBKM]2fC1fkB!uG:]U)UkIlE-TeKh8 %XNVKOpB#Q@#j.&jHf:Nr.HW.1[pN;0%%)G0aX3Jggn2gASpYjD^[AiDMlgkK-'DVB7:%ORj5[YrS4pF(Hqh`]LEE/F&5iP(.Lq;] %6i[,U5FJOV=C.;_Wo6+%nM1O;6l4qXLr_9G'4'aC@AUQ$_hOtZ!]8/:Xo,bRRFfc''$]3A7VdNii907fT4jT)OC:\8\k65-.h^6` %V@.B0+G"3';8m&_dYTSF'pE&s2gb'Q9!ar!HoWIW1COBYL9Rr=[dX%_V)phJ]To"P=*fLn,KFo %P-&,W<2D(hRId!F1XF9e,A`(^?FBKU(ONojamBrd.sIc%.XGiZntHd3%!DkSa!&(N%lMT([qrTb*]oJoOsI5J[<;&+-%pQ'cd@+' %mRnGY7g4"+<4'H3/M7*j"',3lnKg',4+_@g>UI")qDj+L%/g^uG2Y99s'1@?f#I:;$s:MlZ8H)oMe]A3p@0QC#C$YWMnX#0X#F6e %l`fhKu'FnM$LX#2^h,T4Yf=XY"j9Hr@$bZUe]CGC+NUsSF.tZAM-1@;W/$NUhNXC!4[aFu\?R`^3i'_\>HsD1G,HVCb#Q5SAEWb%Y779J#4)-17r%,6RapMCG,+sBIS[NaYf*j$ %3?.,.Dm;eJJu\&bWP=RuLUDe!*pLT0i1@_u7^;LB$m'5H-nL,#,qD>_$n'kEVDB:d/@KbaY&kLCp"1>i]sc?LMQC4>UgSEsfs63Z %4sPpGKb%jpPA-eC?"XhliP8.7^pjITDlaf)[C"o.!Mb2l[W#VX_;^P,kUdR)?ua8Qku=+`H\2IE97PS\5@'/?7Id2]0lY=$LZSFD %k_XA-(>K's?XpFf7!6q,Sd^["Epo7FB%p)Wb5L`Z4nLDRmTs,d`Pj#:5,I&RfmBXsHQ$ar'dBXCe)ddN-mV_57$]lfDpULuaDuZV %$f^1Fbf6B;/Eq2EkY>I`2$*f&]_$)6Q^>#[`J6SD-tDdi$+S.c:#CCuh*9Q(Yth1[VqO,4 %r@KZgp2l:I%D8l7kA>HPWj%gK6uU/iZJ,SgEuLU]#'Z'ZKg$g.OPTDHH2^7F$WBN@nh/@q?Ya9GCccamq;"@M/pRQ\HsbcI.d!e@ %2X`!#LI6YF4Ja4I*4:rUWb%"<<:@8,K+HnV'2#R_SNQgV5:Po*#rdU,@Z7>Q0/&5 %c)>h_n&H*lr73NF],^U2^(#.tm;dZCEZh`Q605X%T(H;%;bgp8ZD[0ZU\2(r)`0WN[&P26RL[KqmO/V^gqPGNWB2]TZ4=;*E19_fJ1aP&ub>:m[JOU0mG$"8=U>l+mRjlUlKM*Y[csD58paC42u]H=0ru8@RQ$[A&.14 %'^*DFa%/MVS=$)pqC]VDS=&Z1=dfY4S+U5NUGF^)>lr6''D(\F':#mSb)-XGF4THIS5hO'DSQ6LH-))08kf" %gc;EQ1I&HsD6#V9OYud_:KJ"Fh<%X2P:&__LMSnd/UAG+MU+04BiXQ%6oNF23EG9PQo=e5l8lV852=Pcp[ldjeen=@m]fOMknYbF %h`#PV'BUcH,Z%XS)kF@Alht"M2V\:U8"g;tV.44oC7c->Jp\1X;f:))/AA?GuVYS5"JO!KA4n/S(u/mkus>'.56aHpe` %W"r=)pNXO^Z#QY$.'L[-/hl/%pL"[Bp979k1D;R_qrRXb,H[Zfi_k>eu/j>0Q7;XY?HJ(/qQ`f&TYsaEZK!qBdsgrX)<+Qu@&=!JdLTb\LrA^/.deWEHHl %7%memms-t9oGr0WeaaR#.>*o(:q9k6O&ISc;M_>!n5F&5If%gBbKaN\]:gKU;_WChdVWUR#28]A8iEYZYA3lde.cj,!/p %NQXW#oqn8W_&(LT?J886C4$Fs@nN6ns$^SGm/lmcd<;G?Z$2PZqJ4UT`\Y-TX4Nt5V$-gK'+B*'"aD,Wg&'!0Y1[X)TAP-d8Yr;] %WB;05+4%UT-;4Y/i^OcUW_r/b'UBj1RY?WpenP$DXg8P/1LJs;.A9D2m^Se`5S`D=EU%l9/dM3@j8Q$L49@u?V0*WmJD1P!3Yl#U %_m7+%l`Q4PqdjDH0FCgDKhA1.8Escl(u?MHqCZRb8V%f'$s+.V7dA+b-=NeD#"C.ofiVj''-fDl8TKnNZ.3:. %X\Fc,,R/0tQSpSA\A(H>WeXV(#\:sSgYisf8Tc7QgC=uM<6-fRDm0Mseu:F3i6XRSC^&-J5nMo*Xn#FXPhthb"\ZZP0e(p+"kO<6[FaY`14V^GN06/ELfBVPcBLJuWh(6f[iX=5V9XO\a\UN8<]GDB:'C&(msu-p'g*`JY_+GN,\$UKS4j#M7'jD1d8)0kcR%M6?bPjasnbk3dRbMcQlAW7=gIl"QRR5<73XLZNif?:dn"$j&RF_JGO9!RYGo8Of+J9cg2A %f_1gadRAX>bcbN7K+>1FGrP:4Xe@GtAp %[oj-'jlb[6;buO^9n*=&\+<>49#]G?DNV("hgciNRS(.nID\EEKmP'hK`4/-k0:cj*HN/81MJr?#W;%nbfdTUhPL %rr`^U;#64Vr>uFD58J@./El'[5L+k8^9HsYo$h*?ec3+aTJuHr\)'GYkTT8k[fm8T.g9]'2l2+trSUjjd!.\> %%XSHRnl`0':m[BBe^]Mh]%,JfI$`Yi?LBE'^rG&&YHKHbq8'2srZP_4h3f*9K#\I;jQ>X]m>ZBQkhA#?FF2fu=h=>Z^tCiE32&`&c8&5C_Y*p0o<2Hl;g+X?;( %d=//[mst)ad9ksX&(<:r=q)meHtCl)#/-/"b4h8nBGn^[o"dWhl00R)2b!@sK2VcSVR9bN#,>kg-F+Xa,RYO(b!mVM9n_tG5,3qN %-A$+`C_Z7X2?Ojd'K-Q7qMt$eC_Tb!7)G?tXu=\_<18S>[!V#]U*A>[').0ZTbJ`b*sQ].Tk'\3"-*t.&"CZ(;[O%Y&27+-c7#Ek %M-q@a1l<\t,01M\1l<\t,&=r)5bj-O'@k8f^N^2UcT\O06t$a+EYW897Y28,h,/p2dst;nH3Kd*_I2"s'9PSC(j;ocT/H13U:F4> %\k@rfrtNk,Sm55mD)pWn'1(%LNVNA(n.]7'?tcT?d\7>UL$)gO)_C!lkD4#r1V05b`Kt'T[u)grO3VaKV+%kR.hjlROMJb+j"[C^ %P]@O/)NQ>\0_'ZA^?/,_tQq#ql5&*-Fnqd.(k[r8M7(%K!f3VF9?jH/*k2,ksk,gZW(mn0Chfc %kjVo3T-5uQXM94hlKHVOW>YKg.M#TBcU]P@V_HX`9^..^bN&\*j0[6GrA4&NHEjR,/hISrB5j@`B:o81cO6RlM"H$F-p3L?+i:C\ %W5tF,6aTj53(,J#+tU$S#]bY0U>R()mAjERGs!9SLWK*=9TNkf,+9K:5EF#EKC_WUJKJG[\>2k,08dPmLa_M^UMb; %bN\>YEhBM:_QJJ:H,qap1IU55'kp%C."bPLnMIPF)MT^p'W1cV?X:#e/d$5I%1+ZA"(e^daNjmS7u)5hGr$;_ZTdtCaG)2kTr]t-dMVg45-2"kYG(UC-f$&!20M$mI1ho)k!g9\aaXW4)KV(] %^?_sk8T*@#WVaBgj=ZT(/X97t.0oQj\=Jc+_8";6fgAQaGnQFop\+AAFZc-eYqPB5(@7?ErEaQSI1H-a_oP#TLN7&+kGG=F!]u=: %<@mZ\ms!tm3pW=X,YP2[D^G6Y/Z;a#hP.HCREMueJF=Q8&O08!%gp/]EtL"JSMWG^829>;QQtRS<11%uO?Jb0LbrXc"le`DUS8p< %Z]GX![3lFZfeQ97mJsMrO:A3M'+LA#KoFkAbVWl(8eCq:Af@r_$i/JFX,?'k(hq(XALpMp"u6IOliAQRrS;sA(+5@_,I!8LrX0q[ %foLhLrsmZ0IpCmjgal_e36ol(C@(2hUW2Ua=fup6&doTN``[#slmu[qJ'=C:]Rq9Rlp/+"eB7lZ)>;"p+MjA8:Sf;go'-rq\tQQL %;3Q(K09p,AVD>`[:)D^Z^nW#CF?'LsHclE %ccXV5Fdep)VJ6PiV1:E_CchI#kieVe^4eiF(S>I@[/0,s3a^TD+P?;j>-r=!:!2B03Jd)U+.uD$R"-=%#P:t"Qiq%BpG(N6@0"h/ %9l_:h-?pcN4MbV[`Um`l?"fHu@P=[[ID:<=>q%oQ?a>u+)5UGR@0'o91[p0$Dg3dPRT:Q;peg!a9A$]&")$3"-CanCf/NVV.D:1# %c>e3#^)i_Hj_F\\&PKW:O4159oUoj*(>XkE@1t_[Y)?F)!P,(SIo^nN*>[I-4,o<1B>=)Sn!RHt/Ye*.:dZ_+JHJ+1VO>;p8UZN& %&D5-:?G@Jkd?54jV2Wf:Bc!q<<\>EOQ"]T$agtZ4)Mt?&0t"^OenPG*\EKNM-e9ku8)tk+h)IbUk+bMFVb/* %Pe5=O:UtguJi!986+::kV8)_EQpD8Sg&8!7YmNp]=a1rF3`SGgXMOM?Y*X7ZE[a&7eF4Z`.'Y4Z$F];5%9hM]r3!:Qkdq@HQ/Kl5 %Kr4T1luQ%M+D2#7Ukm^2oI!QBD6g6[SOOoP3/$+Ze(Q.^`gZ=0Qa`4)$_6'2["`BMkcLE,XcoAOoJ$SbFE?h$)"/92riS&ZP%V$L %0ZcccEFe.S'KR3Op4QrG(NcM.a#6M3<^[jOE/?27p"M7H;<\MXCIe*5M+(FL\Y"1PRdJZ8]?*J?0u%\=\d>\9$'u$ZE]8VM7-h!> %X*Fs6`u:T;Q^;4GkrmZLlBCHd`2:#qK!%5cf3c9nVm@T>>ePBKo8WrsrF]GnW!(;IT3&4Kfi(t)J,>.GeQP^>`G.8%<`4]F\la@5 %\fRr40A(pZ6^RDg7q9;0\>I&OA4A%CLaX,"u!3qeJYiJQCEk9J&k]oAhj`s:fMpLc`fb=%Y+95AKb %W0W`-/[AR.+(e4frV!Bm7qJIco,:1#R$c9(C6m>05@`[9IFNK5>^?(;ENu19qp8GJd)#S*_I,ZFoj"FHBMor+s48f8FAi-K63"uW %rf74'-4AP2%kS2*o]3Mr]S[G2C9`&HWE-g&dC=u1o5Q`\5DC8&*RDpob]WFb2.&T'+;;p2HW6ajD49eB>(qqG<0 %VUj8![b4i0LTSO4C;G&_[C*M=/Td$[Sih3Q[G\aeCMUJJ>'VGn$buH7Cb9O'b;&Z0;HMYT;A)+d?rr)m(JXtLcjM]!;[_cG %qUo'-VA?2Pr,"$';p/^L#=)']Rp(-q\C %T7sJ_LSI<,BD%JMlpg?AlfLCi>m1a/bMCM83hkC!O@o(aZoUaReJcHR"S]61K%nJr''!WLoF&L_''!UrZF?ST`m;M,CC`p.N1Vt= %g63MY3BqMqAtII&QT?\7J.d+V\:S&#idhNDCrK8\F>g;[@lQ>2ooO:Vta@/.fBJ:sKRA[Sk2?=e%%P_A?T %L[*;+]b+6/odnt)OA/-"srd9=N4/[[BnoGi*?b7rL\7$W<7QU@Za9gLON %D&KnnMZ?PRkb.@5pdn3hU\j,f;jq!+dDQZ$".!8K=@hE8Vcm^O/paaYA5T*+[[f/i0'Y(6S4@Z_*cqt(*77cT7CG[RQ^s>;Edr7= %EFc%`dI2]^/ZNrKo3&((&Y,(UheX-+Rc."gqI[WqdL7TOqI[W'7^Y2U&:XBZCPnNA!9.h'1p%;i&/6?q30f=*!:a',%eAK^hY7?" %;A5KHjG&-aor;A5I7FY=?0p6ef+9R*L9DL26[CC*\h7^;hp^c"na`@(CQ#B %D:[@&R-$?"!*A)_HBGbs[(8`:1'P/lbo!/e#lh&d+[.Zj3USK@iK:ZFPmd=g=Cc:_>G87uP[nYF@nN0lM+ %I\Cu!gIoJC8nVYoDegE7n2061_jbgBJ$nRYm]A=9mMS3ioWBh,]B387@oMH^.2r=Z2jrU8kVeX$P@L0HLpQ-TG;_&Yn^a1Mnjhl\ %B`:q>gR76FA6k,-/?R1-FRRs+c/S]T.kUmMd:%@\OJmmH\#dNj`nN/D7%p5j4@;^7Bp;9[%lh8l,.mpD?"VYtXS!h*#j,?>r>rk[0oNO1rBZh[C?1,P7&Ko!F0h %r/;D]Y=04DY_VIadiTi-KXn7qH58YuW>,u%T4APT6*8kfiSO3`UPmlW+p4:Id3lul=`)U`ckGGMs:7[dWbsh %iCEo=e&hGa'31*Gp'SmF$LZPu4_RhK%C*(KbGH$7JpCehFOOk]Er+iFk9ZPK[qYb6U:<^,fee1A6q02dlg1U'Ifg2&qr\"n]/Ne^ %gCINPVb8bOoY+;`\Qc4!/E_4bMrNOkn6M]P5;k;0eOfX`1-@IkOF=n2$gF#8SY_,@jk8I*lb0f1`04N(gr7r.H"^YEF43AU#X\fA@@Q6tZ_X;KMso"-'u%+uN1*1D&uZi-lKP?+]TKX4`9;G(R6J3*-sR9a5gNMrUeD>sIH= %C:fGCj&)*9Wn %[^hD+3pY:1IJ=&;i,A639LO6p<[fcZ/i:8BeP3D-h4!^7,sio6kMT]i]\1&RC/27HH(/";!7e^oWM8,;\95C5qfDDA8@5f( %=fQaT;p.MX+PU)TVA@\'@M>-a9J*%j"Xc"7R9Hh=iG34KRp,#-k&5$TRp,$fptK!-VO!WUlX=RKRp%^OP[nQLRp*=GeC3![5N.Zm %"WuFLf&ATqFREguX^ejpe=Ce*>Kb@B\j,_AS(/msHu,o=8U:GX'U%tb.Q:ppY)9eD4A %f&ATqoUT;1>Dq7cno7*,?Y!+?8C\'nrW9#D##o"r:a%8rb)Rs!fMP7SrB\IIpfWs*\sci$YMVird]C@46Joc2d0f#K3JXKIZ_6l] %LjkZ1(tS%ud*_7BBNb9bO!ue*57=U8SrT*R57=&!01SZoT7s2j4WH%.IMTNk1i>IST*>%"?B1>LT9Y"rXr98.k:k2()G-pAX[mJ1 %C,kQ34n4`ii!O.9iMVjqi!O.9RG!0k#$4':$bc;jApjf;=\3WfQGu,b\qM'hqR%c@$*iJ'Wk7%c(V261mS]fU%(`M2DKoEgf,d@: %TnD4+GfrK-o^njL&O&i@S2d0rj'ruKQR"[2bK](am[Mbgd[&&C%A%)]2ie?pZKBK.k`3Lk8`8?&qSbgL]jGJI*JHa@#XNi`oI5W/ %!@HXbpI0rmL\/H-Z?Yp$.%Bm/-K3t-+haakZ,#ABK[Ho]>\b&CTjXMmUKS3O^1?QCh;SW\'qCOLm %Itgd#+)G[bV9_!-?&DDc>5ChiHJ7j+.FHG1VstEmXt0mU74"2Se=+Q^Zr8*?JkMJGX`+f--bStI%(QI8i&RW:>]k):n$@nP.oVr.a?>X9H2Q: %3P?SU%BYh!,.WH(YV,S7LW22.WJ:7sAN3p^PA4c&1D.ni1eea;1\*3H@VfIYOS]e/f?iSo89/r[6^+\sal.4K9r]@1V1llG1oZ4a %Z3Z/"BMo;uWAM,>(_YHIXKgS:m)Wk"WaDSj5\m#OEbJ^qIrF$o%pB&uQ(`1,9pI6NiGf<$["]i]a#,]QL64 %"GV%"75Kba`>7#>G[?=XX@o2E'a-9kDpW"YL,%38Pp/JJ?=@-&4BGBUj15AJFTnM.1P^,3mkTge6DrAg@>nT0#941kg+,*0X=I7e!Kb;o_0W]%Z":aF9d=ue;8r:ISU34(Aed^M8koJ?/mP.UEQb]gXb_1)! %lOk&cA\Tk6O6@V8KkGYdj15AJFm6FCY&R_K_n%+](tU&fX@n^*Cb9O'Me\E5gXLh!,pBEa?s&c0>5HlTgnpB*@r$(R>'L;/cdq)6 %[4I0,A6XuHe<8IgnGu?9kdRA*`q,R$Q?OVa2Eme5--6k0(:U83G"#D^@9rYRn[#X#VO!YYBPL\W(tmL"2RQA(5tR$u0stE[OcC8S %B54-(lC2,F7?%6o8:#Z\(9Wl=;lJC8:"sP]YTRSuSh#@O8;F0uW]j$a4HHK'cslFO(:U8s41kE,/T+Jpp69rA/T+Jpemr,lM`\#` %kT49/MQh^?-/!c$JNp4D>TPOg92&G(-pEB)Xajhc80rO';+OfUa\d/([)D`B0ZiG9CZ,P%8K$92&HS %_2+aA\,tAgn?-:U\,tAg5WW@.\,tAg7a4`!oaq:^a)s-j9>`]i$i_!9]$!fj8MW$'941kg,SP?D\Jq*X-[RT)YQa26gSRXYjMQD&:-*GJY"E=E(e1#K2flQ0keHk#^IL;l)-q&1$./=^KH8H'7G2)K4n %+R4X!2)M:ei*!R/%6J4?21]1Ae+\;.>XPj;L0_6")$6iiYnPTl4*$eTJ[uT4KbCRdBPJ?'%bJ]6t,0fMed"#2.2Ft/?Y]B %%k0oLTo%>S>b4d%L*g(+h.*-u%8Ejr`$r%Wcl.4b>rZ(VoCbJbKbW,b0W`IAJ.Ugnd6*\;%nor)(T'-IKH%K4:#Wh#TQ!9`YV'mr %.,]iM@9r*.KF9`W^!1eU#nq34q&+/E6\QK=[EYSf_LNS7[%S`MK,_+MF]ilX"jmb7=GCef`R51N=GAWKTeMq/gRno7M\4s["GV'P %eZ1:)941kg27_?Of-N,P9CG]"NU%2oen+3`o9`hu@9m@)`VdTan/GLEaO#r%HpKg][r:cV"G.&=hpe#fE/X#p(tQZ#25^fI_L(=G %EF!NeqcdOH]%F!46,L54B;pD<0Pu,g%_\!WRQ1db?,#qk+^nYQ>nH#,"GV'(:hYH9FntE1L^EAKIm:I#72sf(#oO9GgLS)+L4T:U %g9<3"p$"\FVu4UDK/q`_n%+]_Ud^)[Es%>`H;Iql[j9' %f@Jq>[3V0Wf&ATqTM*P]f&ATq9WEi&Xi5-liEeK.>Dq7cJud4JN=T];6)TUDXi5-l9kWrie$-+7lnJgeFpF_Zm6B %24I20ZF.2:/P%^k,KB>B=qZgs("h#^5?*$Y9:a"G*`FQp8WV]WR\OL'_bjP%9hFIWEouSr&r)%WVNrLV''"72/P2hD[CAp_Mr#i9 %>25tj3b+DmGTKcka=Y-7(3`lI`.f`M#V(KJP/+"flEDn^)Bct@#n6-gL2_M8a_'bF0rl=F\+>CY"N/)QR"@)>QO4DS_QPKE!5#RN"1)3f@Oil_qb7Hh>1SL@oT>rZ?84g%Fc7j5B)7.DQSX:+tBC4'IZYccn5Ah7@r::dDh^+`)[(V9I=\1Vt%M\t$! %ailqpTJ>s4VLt#j=k_tY`\cdb16#F`jC`$!;i=n*EB#B.-?0HP?NGD'BaX&XB$WS"jcf1Qp[r=,=br%>IjS`oT,%fAMt%7"3Du4JG[PD!(sMQ,ot]?&Yc2-om=BE?[k42f0%bdkl[cT,@!I/P9GuugRe+WTFAg5Kah!rQU(!g_ %lk2)+oagb$KdjpD#a=>2AJc1k;V3`5M_LM5%98-k&N6]c_ieG1KGhB/!^/4r#L"=UG^Eh54FPaW4!1;MT\U[JE'p(ld[#4Xp7=YR %iFWJR48UPZ-if/;G'fcbH]Ke0CR-ma]23V^L(Q>o=r[@;`]aNciqgc&etJ)-D2"5"dsrS[ff5_\n\>t4323J-;K%RScr(t-GNXf& %h4;d5h-jS,UjGO/CEY8FDDX-">'e=bLsa:GCIrOp7[T[[:R)3HS"0WkG+#ZC4@U06/eZ>8+-CfB.D,C^QC]TZkKDWSJt:bto7^\O %65f-Q"?BiG^)*lmc3toeK3aiNBcZRJA['?OPVu"C65f-QAB/@b."beje7d%/BrH;RdN86LK-V(Ite)Z`Yd %MSUp?Zci9LTaZ)^?#%5M)#(j!4N2"Tm33$`BhP;3]mt`@gf%odK3d]"Ke$Hq4]hQ@=!!!"OSL:Kc.RHJ$gE)J8@1X7?.]n"Ncp+3 %fL>4\'fjpcR`H7\YRC5l_E`k4\I##5oSOQ1eTbRq%:ta>/b`!;@$bE7Jl_\<"<$(:Qdkf`*XJm_-!Fqs8o5bt><[[Fh8D#rRDBFt %CR^c@$k!;Z1pcLl=/\lc+2f?3G#9=.D6QZr*MZp(B2Wg.&qk^2.\rD-3\(Gfl9/!?V %BngM8?Vi2.V&?k(IA&auEO8pHf4hM5Hi/#SJs1?FW,$L\JDfMBp.?V,o7OCe0fk^X3-j,@+`G+(7d=>gh:7#MV=;"YSeo]`9#6UU %A0-W@(IS2'AhrH?);_##Glg@iFr$e$_XtCS'`!5nQA:JDYOhSG..T5[7rFKB\lEHU2jE'uH9I9F1G:2RTuJJ?]76OkDGJPUh%P.[$Y3R=24ehkdV!U/Ar=^"l138.Imt'4Nr:sraDhH&N\=!$7`(Aq>\uE%En_@W/M[WQDONOQ0uUd %RP=>UH]6fLT>,-RhH3cq(J]$BJYdhB^E"&QC[[/njmEK3YMG+Z:&iQ:F:HNn\nW]Pk_J-\6:>b:$P-TEJJc6:,8QLW2-PB.^=!Q*KFe.Ar3r)Krqb,l)R;DS#?]#Vj`mH(Im,Zfam[(h9c8q1q*V8'C7`]ra62i30Zb0cOo8#i#i %)&B^4A09!%#,]$SqkKfV0:em9ObE:3MLRZK&JihX="foL'[=m^MGS',GLY^dq5"B7oh*oqlHa2.3NsTD*$-&6.OI0FQ %OPm+Y`uGc:'G:fp&V4DCR6lM!jpr.>bS1[`Xi7deIZb[)-90*[&e&$T5V^)K+i3qK%MBH!'G:hdej0`dqN,+/K+/G,bS1\K);TlR %T&[/_,:",k0p)[$HUohF]2k04_cr*VKEPeFU;PogP^Nu^a,AP&,Zs]'NI.]En6eU@Gjsl_pK4p0%mK*pRN.p8K?JP=/j_F?YS8k) %TG_6kR6lMm:*N&!0N1LrRF]Gkn9B]kUGE[;_;bq1k3dku$4/U;L-i_RRj#V2F!-H#-C?5-(tc9J@Y1"7Jl+BH/1-`5,T,AkJRX5! %6A"mDnGk;[e,,.T,Zo89!lP3tK`k0b5FH#5RG.(J:N)>^@&C@ofMeN'$(fq:/t;UI2l#4q]cU$Lo38tIh0!W.QC\.#ZFeE5>A"Kf %d!'J<3qs=.E^rek#Fs!na)hkeFMQ26c?*_,%,SD>)89,s=e33R5:3r9$r[aJQ^NU=B7uD*7m%XbfgV]D*]Fe?'J+1emh?Q1C(j/2 %=?#pAkYg^VntC6+3PR"h$_oZOkjNE?]hmOE7p9-Eoi"soGImPE\@$]E)_Vt?Me[l`(bjYK0?8O;Wf>n;i$[ub4AP),nYtB9i7$sS %1C`re"15eZDBri^N]pW=>-@9Bh92G)j.f7gT:=_CQraF>M'8$/&>KMi]VGO3r%.=CkiiQ(hD6-,T:W)0gs[tk\0&%@O18%%V#K62 %c.T'[adb?;$i.R)O(EFQ9NB!NL:Z.`?;p'tA$BpLe'ZDWH;obnlO^gt6&2HJ%paT!T"m1MYb:/ZbNmNudE/Ji %SX%8C=sM)1I)=<$?V+P$2mGGs#B;GGDE(";W@/s0%Cj_f1gb-(JSana&RZW*]I;H_L. %K+CG\1NO`4"u"p'R4n7Z^JEHlZZ8-3`\Rih5Q=G?Wpa`>.hR+i#'p=Dj(A09W/*[qeX$MH5pJAlq_5He"e?>0S%rW59cm_pUjAKLIHU/3G=Aq=8J>1K?`UtMjd,6:36C=t!pX;@s@d$cLV[5blL %hE.6B(8KnB'\-Y.'2U-3V-6R;K"m5C=uLb!>th80^)JO1eRE8/FN-XG/\u)VK-B]&5&s2o`M]n8OD6L-M\Mn#0s@PjU1uD?MnYh- %Tj"nn.59Vb#s0lAjY<'""tPP(EkAOs2jYCR%SsL"R`.ho(9:X4Z^I/N_gZbr8a;`JVJP$f9-%i71(I<98>QAkAh#8kkpq89F-ZBX %#V0-g]dQ>kK/8@!(Wi^u)uQ:Z_otq=]-"HIqV1Cl_ose]lUf2j!KQA%2M:s#864GAMKni,hS%SG>J8Eb#5,ZM5^9c#/'8?dA&?>R %Jmfdp*"u'WeM*#!cI)neMj&eD1=4qfe(>)W@]k>>X76R2I_1N6?7(Tsc#8Wn2l'd`28AZ-)?&-Mg^F5UhY3fO"R!V[oHM2IM;m4!:u??6b_G^]7-T[/+4ASuc"V':?(&fkhLVamq8B47:m@(/5jJFnje* %.FLY70[-_1K>YemZ^WMPSZC[=1i4"taeEq-lZ'@oN>]8&G+0fR[bXbu[VfjH2@IoCdJ*J?fdoOT"[/.1C_k&K2bb't0#DE?U<-m) %_1i^^Uo45Ta!X(na.7N3pDVCenb-$LMhuCT]_rR8renIk%[?VGk-(HD,/dp[p/b)80>q;hp/g1OA9:o`f[Ea#P?_E!o5e$Hr=qot %:oXp6MmpGVh,0tl=E[>T%Z@g2!gODcE/RYY>9+JtIg$fB&IqGVRMN6I@e3ZE99,H;hbWBY=M/ipNH>ABLW/"TU$j,`.G:qp+?icG %;9$FO>"E1AMnaiMm/e7Cmh`OkgV`Kaq!!2]%Z@g2!rObpLLk_R*L$oCeuX:.fa[$Lp)!E9[*+CRaC4W4!lg7I8.HnMPf3Y$_0KMJb%;tYK[#O4M:;)e,\WHZ>E/)OLB]TNY#P8?q#FN3NTF/k>/a48(d3`X %[>LGO62-aSXl?3W@(J7L:fN3JR82E@%Rk4s*d3=PK6m?p='DQ?ZX6mASV.f?MN%pI>PcC8@a?5p4K?5O$TT7CM^Gh%HaKVL:;hr8 %k_'@%*YjI*lH.!g`hR"2Kdp2F4K@s8V@ZqfnYeDe'n$n5GZ=RZ@?!drLRN6S*![,nO,@7TUQHgC)atH!&a[;[)FZUMu%R._^Q_8/MciC*GD]g*;sV/iClo_PJAf(7ssP%r/X %A*8_JI!ojVg-duK"Xn"EIDm\$ZtMjC+h=r8?kHahRZ$i`^k28@U9"'0XQ!:NV<6/cm^9FceoAZn?I1hPK(s@WYN`ue@.E???>*%C %,/29::,S"Uae=MD`ueFK0eW"H^)Xk2]&-TN.lY:%RnOD;\VPhF^%X+A$e?5V@%=cXqgSiDXacrU,@.NmO^s&cR63/oQhA\KbNd'P %EkA\@E-$hI;e]"T0Gc`Whr,-_A4gg%-qV9S3ufI#9aL"rd5j\2;U[e'isNCg7-bDpjm^]F7'mF99/]<0)4^MZ+V0Xt\.W`b#:Q%W %4X+'b#]iN1\i7i#/jn*['kL%pkMQ?qo,YhC&1/s/eBU+_tb*b0h)Q*D\?P"?d$t5dm %*mt_V"(e^daICmKP-I&E;PV.@f";k/rHJ@W7s$g6?=DXUTl^\'`s>"GeEm&#YR['\>?D;Jo)2&lrT>&9AF!l7EdPLdUU"i2e0k%i %6<#@a,Cq0&Hq`eqUn-hBaE=?+"D"[.3#%(T$U)4\PW&Ym[dq1QZt,@]0Ghsrfs7#WBiKZ%h"`5)!()\U%o#tk2Dli<4X*YF$E %[$YXr(D=V+&VI&$!Eu&Hk"*jf*8:BE/V2'8m**at(;P[!e7--81#*?qH3Q=_>?jG=La>P'Si/B,N^jGnUbH(P$r9V,9\9Ng,k%C] %1cnP%)tgN21*_X^niUr%Jj#BZ*6bHbFQnP6[REpE+j$qn)m:fn2jJA_D4UT*c"KbA?q[h,XkoTh_)uaL]sodYO/NU3UVF(-I&n:F %/mBK:%sP8pioYtsWp_ng:AeWeU0C_n-Dr-H$>XB81+5/)#Bm/[I<:(eLY>XOV;tT2m(nu?Q3+4R!qp]',0eG35h@='Fp+S:0_NA< %=:-a(ZJOK@4P`(M"n\r3gr8Ae.6rBgUPfNRi]4T[gj6I]jEs7!>]*0Qm-PC]eW"c6N$OSq %VetY.)@,W9Z6-(S/@F)W#3h--M>f\HG^MD4V68MmQhQ"!c!^)-N%6^')9SZ'Gdn\r`mFa-U+Po;gacscq13uV%25Cm(MEn/%T2]9'(1/SYb>W,g %Jrjr8X=,N/XP&<.V3O\DGU8gU)@jj,k3[84Bm[OqeIL/LaZV4O;K"VRnp@gskEZ;"pWS-']W[J6rP%(,]J&p9DS')Z3[gH*18JGi %A,1)VVVIfQL:DGZPlF'k7(;3=nm=*//2\DZ+58;+#T'VBnaeA`Ps2'mCDUl33Y %Xm;Wt1fj@Rf,cRf(RRgOSLj[85FLuj)pY9#`#l.@ZWKe%%ZT9$_$eXp&:IYIRKq_K@nAKo=& %V)>bA<(flR(0N6JLDd4(RQC<4?)N_*7dK4pOoWt!)9_9bTuFD58J?c/81dhm2on*?S8El2jC?I:9aQoJd&iu!i1DtA5$UW/8-GARs?Qle?8XIjG"@VI^2`k=q5Moc0TbkSXr=Y<*SY\H).@n %/mRRqF#*IT')[RR?"i8p2'f?Qkj#e@es*ORU:Q&EorF#g8:g1RMp/;CWrs_OFDd)-W?oY#[MCftJA`WC$WMb&jil;EgjYhQ#Pn*W %d:`T0[A94TiA%_c)I&-Se7)%o$#F@1R$_A<[3QYpMqc`JcTZ9r*egS)Gup/G/T+L&R`a]*CN5hIA678iCN5hIH7,MLXYhuDMYVe" %Q:6^oD(TX($WS#B[MH?O"mc_+>Dp>I67:<[*0Oh>>Dq7cJu_['2U?#NiCZ\oGSR47[-dR?2PF[R^^"C7d$e.:lLVKm\4nQ1(3?sm %\4nPHVQdJ<9eG!ro!Pm89eBJ2I;Q*SW>.eX1g+>G?O30`l\;Si8jQ&Bhb.(Up3`Ig`3TuhLD^UeX)_O$+da74=j7f?#+DBT&f`J( %ITA[9#/qCjl8&02*e"kcU>,4"9(G.i_9_BhO]H675N1p@8[>h#--"9J4n'MQQ5DgopA)BA/MV\i>*E+Fq>bu1,^VUVoR>BF>:#Hf %>o6&Zl_QCV[_QYqlh2*qahdRlB^IBr=#(Ut!UVK&Jn?^H!npjJc#:'S[e3@B(I1;P49D[LklD+YG_DXJA[Sk2?6qKCinkqZGIa\* %8TrQg>%9K,UXi^1+:((^@Pa]''6RCMiUrm00gJ1d6X^W&rb!WM3:gYFq_04>ghn/LFJfdXY,s;-`)Ci?$[NNC>V>nVjR"AnkGV+& %ii>>l;2Efa0Z9;FH4g%=KQ\%JGB/M/r?/e8IL-f$0uo(].)$\L9+i\feE^OR6YkOp'o6-S_a!'ID<'kE?L_Up40QH+Q38ej^Y5(/ %,GN,C6[DJ)T;LW6&8mspp*hK[)(P*(bL+&T9U)t^)?5iZYtNJe&Mcf:]`udU/a'%1bWA:0'ed&Gc7m[f_#;J+.KH!\5`!UW;m`DE %)7Hs^?%td5VcDZaW3M2*'0jTq@!&"\\4JJtNpl4)M^Fb:)R/ipS.?E!fL3$D;$5QJR0sgRQY)QDiH[/4,J$LRaOVd2Z?+Gnma'0/ %N\"0^qL,RSIH+LT31m&t<16B6;mTmtBa-Zg%*aMPC"C;&(*`_YG"CBg&14!sI<>*t[P4g[i#h_)kd"T6/=\N.`\+(5#a1fmX] %Sraoj!U;B]!//'2L&3Lrm(-suCC(Cj`;[,^TUlNVH4mIbAL]h:;=3kFs'O?$ulB>6?uB[cu',chc-SbLX&fhP"pWl(W5 %Hns5![L(Mp-$Y\P8ZYQ-9\_Hp/.F9EDPH:_h:K.i-4LBupP!p$1f't("1sL@WR5QMWuig[Q!A!Z7J\u6H9n-9c-Aleh.*&hdjE6k %oWECbM0MmK?FZ!0Xa)&,PL0DehR$M`X&TsZDl)E7cgYA>GBFe\2:!IdBF=M,I?s73+T'fUV3>D[ieVKm"38Q1`:qQsjWNE+;bm>M %gY%'KCch7dR&k)NQ_h)MQgT;!UKP5oHNc/A.Kb%F@=$oW;V*HMZ*NonM^_NeV]3rYdX<%q')Vi,0>%KBJ:!WNou\(jD_k^.2E"e. %kP&=!<&:3\CdNjILl.[*"eOC^B;Mj1JGZ%&:i;i4Dr*PPBLt>blD@/[]sY+,/uLnklE:^>VqOr`3?HdWC#(rHjADUUBcY4_^A8&Q %g1JfCB'OnXD9KUUGC!!Vb\VO"mPdOpH57M]pF45OET_b^Prh=9UQ+5!c=CSQi3)h2mN+D&0=W2toIj"88)N4hD[)0)&c0O`H.p.o %IRX^jf-1l$Xh8aN"9LF#sbViHY;Nb3&kr2sMCfIS[idWbsh %iCEoEqNWZj;=un^YCI%^i/TDAK3%Z^&F7KNCg&PGQku&`P',Ml2fea_gUCnp7&%1]i/j>@*[7BAeEcJ3_uJ;8s'.fupZ;fsqdBm2 %F=Ds1hNo]SGKZ8,jnoU);4O*d+!*=*.t;AI,-$k#o43(SN/4GMZL>;OjaME>*r;49GH\.CiaNMGH'NCdBCG%qFW,*]kEVi\].SRR %7O+nqf7V.BVsk^`f!YsKjnSZf4J.,-Vl"[:*mGbh9lqa9s6B&%(d9`"OML\?*t/&>j3P5ZN8?a"E@W,lE,ggWGTP=lJf,tK?HeHJ %Lu68pe3FLUi1&0.Gj?4U^`Z-@\hF44flp'T?lbf\Rgmu[1J27%p@tN7^tJFm %;:;#8$i6qgqu]^`2gQ&_U:k`NPaH>)RblT[-,\#Eq1bG&GQ"uEZ#k/I,UAmp25f@Ft$[5teHEO3*T %1m4u[D/*KOZ_+A=D/)X![T6d7X)k>^bsH'0YH>c\C'>dFZ("qn3[Q6jM-+[7M)j?Rq-Z?e_JkUhe<4>L>Dq7cEocf$gKNC0Q::8+ %D(TX($_9#%>Dq7c!cj4&XlXG8NCIK0<39!`01]oX_LS:GfHCQ[RKTU_PgK8ZQ3W#6Fd]>33E5[NfC'qICY$bX''!V!X)[U5WBbou %j`j$MUd$'>cQZ&>R=5on%sg6>@f.dp7j^9#@f.dIP3Lq=M=IoKV8V`OZhmmgq]F'&X^HTY$>-kai%U\=37k,T7oF)?/!?Ee)AEBW %5^Nko;AfnGJG,:(DP8tu!npl-IS6u_2)h9C!"]\4qa+F(qrm>]C9[$U2H:Ri/V8,3S*C&MYIEptUJD<091Kc?8tu"41K>7J*Mq+g %MmkhE\Pljo0Z(j@e1fS?NXs:!N902A_6,Ydb;Ia<506oE?d2ENShAXm+=(_m+o3g"LbBkK_C<2WT/7WK6)=9r82$u,-16d[Re_C2 %c$n=4#sir!b%<^Y7%!ai82!g!+c%cjN,EK#kdo04W/k[Z5Y'esWf:adIHMJ4E]/84?q2BM4@J^n?H*]S64.r\A8p#W$i^X/:$c7d %>:P&uRI!gCk/J38^^H]T;h'2R729OAo/>fqS8C=5!\YNY^f*F"O8]&C[r_p^r?YFOkVPY_b^p[79h](59KaIlo3Yal%DBfZ&khWY %_saN^5;_ISc%)f+pkWh9b]W1ZS[%FDfHL)k[lsE\^6bI]46)Q;:g5\3)[;O=kdmuT)cB6`oIrAD]$U$])V:'cP"T1b(S7pPO6[Dq %eg8GsE=J*fWZgNAKu>i*WJ7(._r;ShW5W#Z\kihL)VX](>$p/ %)WJF<+0Hc:=;UTYM=nZOT1WO#>qfD'*o(]q1hH//"MbJ[_R_ECL(/#;+KPrcr_VR.p_-8._[S=b"01lfiJ)SoPN7haL=XH\5.I;) %=I7kL/!=N.`\KCHQD/&IDCi[SlqpT %n3"!)O0/%l`t0Ug#BT+QEVu`;L--jpo&_M@9rmS.Nj4CQQufhIKZImd7hgh%I90f %@U,88YcbbU)Q'aAg"lmlW!FBo2.`]jo=J\l0'MRG`,uCAA=-.HAF[9FY918:KX`Xc@9n1L"Gp2..]a"Xj.s1;JRMig2bo1p&fB22 %9pBh>FU8KBK'?H*>aN710"aD<]]Ps*\g3]\f&ATqOKS5b[CF,cN".%M>Dq7cRdi#CCb9O'$h*]afim1.(4(o7gKNC0QCc%[@r$(R %>'ceR2)[XkWMNB"pt/d*VA>c^%E]B\2RQZM`IaL]d+.ArC\aH'CYkqS,ZE?!gnkj5?7:[#4JnDidlTq59eF!_Mb^<;0qQG8i[3ne %R9JJ>Cf.K=mo5u(`q(TGWh(_Y;[^:$.>dRWVO!g5mUL$PRp%)NDmQj]9eB$,W"1VSa4,^bH='n"hph3'l^Dl`\b?oq5_ZEM-O)Hm %("Qs?=LlCn#n6-O4.-Z3,quD.Y"PuDZ@m?p3Jo(P98oKSWK^X./MV\iBJD/198oK#SOR73le24f_BbIBGO^H28MW$'941lRQO4D>Ue&>>QO4Dh&2nD\:THX=]/gbZS]n1/pL^@l7P$G--8il.puK2[+gm8GHlpG@4arhU4e5Cc*>_<+&kp9f5)O`_<"R5[N=a. %*nSULVffNOKlt4l@L1tO7DJ>7'\<6="L/u$p-,=WP*26rpB,:+Ru%>9`Krr!lMVA %mLBTo`>-sXZreGu+^8'8,U=VN%pk(DjM:OWg9<2d*7lJjX:+bP\Ar^u%-p7K8lAo\^p#F_-H:07%-rN>$U_7/5\VRM2&c`.lS&6eg`)U/8>XO^Y+j&\_%8Ejrr`"Wi2)JSgkT1.j %CIg67`m6M!c\Sid;0*29Q+]'KYV)`i6fT)RBFVJ8_r;T'27>dP(Q$^.-e/OgG#h5oTJbYdKuGo+pY$)M@*!!j?,)'12)L4i1Pmt_ %["^`M?8u-+^ji%=3Adn4l(F\l/2XN'M:OpA.5\3$8Mrn;T8dV'.'-&SmX]@@Q!@a'p`=L;lOk&c"eC_`iE?9"]$PBSJfE-lFhq<\ %W,P+Vg_)Bt&G%\'3FoWC?JBH!=I=%pb9WE>\=m\?([`FY8i(R!)<1CK:n"'sb7H03TesZ_$d2A0PN8DW@:g/$o)nUrOWCFlO&\fD@PnU;U&Qt87>fm^.hmS@9p[Z %,/eU1%.!bV;?6lRF[7*c+R"R\qAe&H*(*i[F@X_)Y"N/)(X0W*ijo8IFh-pG:^uitKQZ69EVHsqJRMgoLY!Hr-#f%Kr;GQ&(\:Qc %+4hemX@loaBm>=o@9r*.G_Bjh$L:$nKbW,b0W[q9kBDpO&fB2RkE4T\\cdb18MW$'941kghJ;LgCN5hIke6G'CN5,P\TJJ.fim1. %Q26!@om-'DY!Gc6UT;kuf&ATq,aerX+4/MhHd(*mi\n2PhpU--i\n3Sk/F8n/Q=+pgKKQ5f&fuM@;;LddbiX8 %2RR.g\1]S.a4,]hQlrM@Co.tei#T8Wk*=q/&-XbqKTbt`VO!@.(c%*QVJI(gcN5L^k+8V=VNsDY5spUo0sqEAk&"mRRp%Wt!;p82 %Uu'LE@Q]^NL%L;moe`m6tQhp]scj(AB%fZVYT %j(Crh\"b7hc_?igiqKc)H0/e:_-T)%?=>(Ac:"jD`2eoN]->AoPqATl/uZcMnV%\+>nTB9OCGdon)rlM(N-!gpp]_J;$b]@#ia#N %]d,TPn`;1KoLZ1ci_,.-jE#'!GAops;2DQM\]*1[fGe/\7m$7RdNYY/NXm$RYmXPJ_5o8YdIfY'>GoW*BQP+#,'L$1j*@&2/$uSf %6n>L71[dWa$6ek\qg!kOc>lOa!i+%e(=ZB@]@4Y#!b2+^ai5JQ0_:N5dXHm#0XGqW3]S_pB'M&+>Z&(J.YXh:#XhKI"kLH`9:OQ[ %a^Q*ARE[s5<4[S/HNq.1VK6-'+bZKk#JncZBhuW#SD>j5a_Ku6:S@e>Q>5tfn8GRCG1@,HAODAAel8BSP6]PeJkgVuN%E9^d:,(/@#W>%A#!SJKX61!QDme=5KXTe]`,ZuhR$f6^&46oUqH1Pp#6?/9lA.BrYf?E"t36?cbS2-hNiW76S3:!cU,0e**_)t2dFAc&p!KHgBG>$/\;g$T,#@1=JBWd1H@2/^3geXe[>>XQ^J=5:Es:Oot';WI4I %R\RXF]sic?3YPk!r'VCJKD0i#D8En6T_mZ[VoC+E@cleEFemg]*o>On;V%b-d\7.Yk;B)_EMVQ2@^i6Ap6-AnVJ*o`<:OdQa\Ol1uRJOMMDKW99#EHKc`oCL9e]@Z#H`d)?7_APGg&H],FGD6hLIrjrktmA'c#gH-=XQ+k %Q8u\.k9%@#TN?R>PH@EC\Q2tC@^dAhTn<(,4%c5mf;0eg\:,7Q"ntVfDg]6je<]XOG8Yrnd2CkDAkJQ(sF70#!F7I4Ek;Cr*kUdPgS_)Y_JS@E$FC$i)\a;!6ljgpG %X]O#0E]6&JW].tZCK`QXk_n[VQql6?#4jl:FX>4$&Y6dOmcNHl-h1SNY21470WtT%M_j_h %Hs24C2Ehf&[iAVXY*g\-0:WE;pD?r[VO0Y\cseh>?9T&\p5oH$D:%.qP#p7iAZ+LnS9[^!>2UoALcZ%W/t.E8C-h)jm$BCF$N8^n %!I$rQ'*'TF@IA=SdsKJ'L;\5/\Z*sLDg6JE!.SglH9poTnD6.RRaku4e0fCmEu`T(e)%Z3#\VAl[rFpenLCrS\KoFeuD$LNrAqW-(kU7jph5>&gpeYX!J4=%7q1Q %r+j!/X27pgTl8:KTZUfU$bL@nfuJ+a&&d`):Hc=`r:FDP:gs7(B(#H+`kQg@dHu2Rff+qI"(:NdY8bWWO`"d_haUUZ(fSe$p<[8l %g8LcR<@i`*6kr]ge'P;8$j#r'AW;1n44tALlOs6/"$Mc`SkX:u>Jf4Y_qNEtq+)i?ce_q.bs-=C/bYe=_PX@9Nji-j;Tl`6b%8*Z %m?JCnrs>k19'Y`;M_93r*PH]Xd45-D\Mo;1mpCR^mBp\ZjGtMp$&D]C^\ic&HE=a;5r_8*_!X6el;p(#a5t()rN/sqYKpP0C*I]& %n,8i`^89tQ#NU94,J(RdY*HW&F7`PB[asWu;E&78crb1c2sOCSIKuJ74a"6$oFFkYpb6f0atOJC-qkMY5))&Yq(Up^+[q_@<#=+L %6bRf#"^Z82MP%GWhHbkZaT7UuhEd,!9>(;O1[.HsCa>f,)>po&=]qa#/+tAJ_kt]Q^42c*m5a@VPtZT-3u;82/`X?6!7bRGq?4IC %"=-9]!oB1R\s#/N"S?HriU$c]k[TB"n2f$%o_X'_;$9V"3U2mj"RJi20`)#Q'kJ.hp"#)ukW;YNGE?TBJO!I2!U)eLfH8@%r4Jl^ %i^0m/UCRc!+6i]ZV8iSe>[/_S@XBWhNs:#3m;2OHGeT\<7E]*K]k$^RNkc4P*Wu@sDT@AefmZ=j=4AC0cmfO%=;ek-d*)-YMWf)Hfb*%7bZq[g@':3oQLW$X:_d+3pJL<)=HCB]j!cPX3,$e'Q2X*1"s/[^h)e\R_b?kJZO]_QfM8Y_*/gKnU %LHG:WqagYH/bL4?i,K8YC:q?1d4A$fODD<5o7(ZQ.6MP34'2,nWMV)XS4Y^mqm[FeQsN/f<]!kK'7+or$e/p5mQaZ %=Q$I%T0JCMS'baa]m/Pi=V&/FNJoFHA`'=l$[.k+doOX_eEnfUdt0np[K6.W!FW?(*\7n8qu,Hbg\c.$2/cW5sK,HZNY_%G;J1.O<7C/1U:A3ldj^17"P=`ekh<'XdObSad">LZ$Ol_o=:g#kc6qbe,M0WZ.p<:6ncn^+u%d7f,Y9dUAJs>fM&Zh6;L`_))SY"*YZ9:,J"m+?%&n$]$Zm_ %@.14mUdjBFZ6#Lr20fVGnqh$?SN5.(@Tdr`g:kc %[sMB;r_Ue>Z;DpL4#m[+V,fkF+KQ+N;QJgu: %JLESWcuiblE+J;(gLqDS,agg3Oh/GKp.]\P=bq^<1LaReK=+`mKKN@p:9/S^!tAr.^ZjJPVJFit*8*VNJYm4N5tbW[f:jeR5i(G5 %M_J_0P'e4WTi^4<8I9[\f!=$TI)OU#d4h'ZFC*RQJPAl)XUBGb5]lUsi9#72\m;8CS9c7tEdQ0e,Qfej)l_F2XV0F74X'mbdp_^5sAQ+gF*6rgEM\Vh"f"dE!_FU;R?aXX9o %_^c(&99`D=/.c5_PZ2rd:+`II8h.MuPZh#iPZ2mVT3bJ#PZ4TiU_ZsAV%um*bpWU7U+2h3K)A4QoNH05,0=(J,.k>M6&*/\* %T\"K_.f;aO5d1.,S4'C2nm@Y5)+[ZAjJ*!,Xgb*Xc7T_$>"WF\P@!Q,WF.W85u\#PQOjO&d@EhiFIh!%OX?E72^?$@3D#oG%+/TVdl0GQ:u4 %h#HL(_%)Np6>%hXMoq`ji;F;0U?X:i-f+e!rqAciU\(mY/EOKFc,"/jWr%3iZ.[4r-9BC;52SVTYRIVYZeiSklXm2IL0M?;V8_at %qf9B[h1%Y&r^D=9HB-/1oj)[Xdb`^:_>ZSo=LsXUUtgm(S*7RY?'!S^l2CJ8/=rX@jH^kbPr=.td.=Q+?%,J)Q?WmjLU;?3l:<_;>3hQm0Hao>4_@Rp;VJn,alhZ9=FW^0fp\_hX6>2uaat3PMAls.=QOhJ`Ej=Egp=2On$'k*aSJJ]DcUZmMlH_';HjAjWpZPm#M:T+VOm)12!LbW@ %MeLTaX!N1/92e?q^$F0FfiYbe-h3V/4*%bWg.s1,][in3.$]%KYt6a;jR@E6-I!CQ=BI[qkT7Am\d(U:^$s:#CU[15gCM]S6T=g=I6c!0 %-trf.j#7it_5 %_%Nq&"$3uC?64eRSq2#`p";&=Y1jP0BIXt(_2_i@_`u@,]GsF``BO@h*ZV40mbS.uE3LZO!"f1.*8Zl8CF>okC,-s[J>Fu+CVFn; %Gk9*3Iqo!:WqkU#fLC)/H9Uq`.Q=`sokVruV(LNf6hFWsjn8O#K:6VL+CKu.MOqeP3e#9qqttcK7U2_W'!O+hiTKU\"'oH4s1lcq %LI/r"l&L'g4kl`e69'3Vo>cLOFS@#k5pg5FCT"=g/@/k:&.\>m[V3"qUnr8pela@*)?sBWA=pGH[ekOFs4b!Pgo$87o/MQO"2hFV7hk2oFBC%d5%L3S1iBIK7hFo;^s@0(0@5r %R8Vdt^:[n0RQKC7DIX`oKNr[7(q>!Y@ik-PLdQ`]=<2bL[cA17bnOOEi"t)?bGT\Z2KcJ3BBN`YqtuhPZ$>t>)6G3QWK'**1CHah %L['[GfQbQo+nFT6@.@ZPc=t4PHYro6bT:RM-b[J(bU*U4(3L?60_6njE"g1qhGNp/+"ZCrVkhJQL3!#Gm[K"P,:CkC_qP+nTMl_A %NMn=aV\UuD8\P&teCSRd`60qR>s[Z#TtaKW-*!pD"D#'AXcr'%?K9;KcbQSD>^c/s+(gmj.nZV)N38W55APDchaPleG":qif1R/B %'7l#B.;"$!oDq/$6X)HpB[K&_A#ZLGfn(a,)$VFh@6U'*jTIbF%.h;!9L.Orc8G8Kh^j\L!i.[U6npd"dlpkW_gG)Kp\J'"hD$1kt(YoC**Se7WElgI*^O*.#as2E`CCK()fc`jJYcLa8Yag#0&%gcAc#l8u6?TLs1!aFt_]u-FKJ$fl'*>*gI%MjPfW^ %1Fgk!q`)DA^f222:I>>e@$MF5%2GrWhm:X1Z?#\RWV_91$NbJ.iE6`&qrjjPFNI95L$Z]PURlmm+^K@,a_nn`A=u@AkLW2\"V6!Q %Jl3f7TboBl]>^1E)S@lR$b_VX0>-e&MXFg':Zd?!'@?W+Shi#-4&P>UiVmB7A]?9Pfm^Mlm[,c@\N[#RmR\8nY2hZI[[u(UpoM"o %p@10ue@?,1cH'.9b,*=UV=$uZ!##gF2-mO!I1"bJ>X?o\JAVd$_o-W"`YNQ+CTZ"4>3KLTVQ2uF0WET.**l"jkI1n4p)hcKc11`U %;H>O&H5S;BnFK#k\"q9l1hoYr#25SZD9^Zo6Wir[`>_bR&c:q0r+l(Q\Q=JA5AG;U&uP %c*F]AS6RtFE7R;Ce$rh]W=Cl1dZ%cD;Zm"MbB.?A$^s?T,:a/BB@'I4MT?TjO%B,AHOO&+q[hVn"`7s$OlTZH!C(Q)s6gjE9m7j# %rd>G#,)-$:qs$^JrBl)5')pe0,[p7_0VPC'GSV>P#BQ>Gi_RGPiF$,D14*WkA:[=cKp+.P<,Y;R1$^cAoqq?$f^p,pH@ok&,jd2<>G)OSmYfdkXO0b@ru!ji.mT,/RU#P7hD7%@Xg,?Jtj>`VX4pO44sa4imJ %-fUL=S6M&K!7[f3_Vr/Z+qq<[$Q9jO1l %([07\Mi_TPh+lAedmJ@Cj(\^45j(?WSq@jUWWtT#EcZNaFnsV-R6tF8V`7XY"kIb^`>XO?\Z6E %A"[u`OTmX5FMMP=Cib5D=hPl(FWk.iig:[,FP>Kh)M9'XXXaL&b9R6FS_"Y*SQ@56N.oOHDLGG@!fef3U*SdG!0rIu7$\ik*\!'Jk?M"M8nO4BK>]2_!WPfH` %`9opgYqNaW69k5[E9mrn,-6E(/c6Io8+34e6eL&/X7pG:6`ioR5'd0$YJe*aArT,b$:;P>dOldc2\;n>_e0+`D?>X-X@b#:E!8GK %';lRlc:8&RG(LR2c4.$/JT-%5C=?`Y8l]PngFKb8LVK\fZ7%^/N0V>aprrOp5\7nD:GBAff?/8^Z6?BqnCFHo'e[FT+\ %;4V]KM&PhT*Y9]QhZHfIS01Q6B3%fq@K:DBjcOtq$YM[-#'"5shTA85V$u,8&&;EO43thadB@Uu@2M;14-sq527dXKC'iQfQihcp*KlNTnP$3Jk:B"E3Jg!rj6EDSPW:H=1o!^\S6tS(/1^IKoHnI9@ZR)/4!Ip^k6/fM8MW#F %:13E.FK!K>fT8;!l[/oSA1O0_[>MVL)qf&>dI8'b.$ZAG2qQ3p=n?THHu&PS1G]pBq-E`97f0,nDYKApkr1%:2'W6_L1A9GY$[,Z %2R@W[6[\eI,bM3%''BJQ;L)]eRt^s&4"hYpF9ZHik7Jo)BPjKi:hsS`QiF)2IRE`?6bc'J7^S0NN^H^#SF7'GN[MrE&@lR&p%258 %U70YUBs:hI2)To[S&/FJk5<`^XA0NC,"J.aK2*04l!jA>@]]?\F(`s;DP&QTQn9ZO)8SJu[VOq]?0l'9Tp79hNh-&`O#ugbXk_=l %04$4HEb7s%^+Q8VhX2FG'/-j48b=Z3UIX5!l>J-b?)XSE$gm'X0&7K.T>Ti0ng48&4Xr=;?M+8+q8)D,WT,Vo&-KnTPkrjTlRY7r %4(:KAj7_qDqusccg;hio1M=qWd+sg*>h\jMV),cf*SLH6ShMZQpJZ!'1Y@m'KWoF,\d:Fk$*TXc6Y1d6o[paUcg']pqSC0aqrQr7 %Y&U[I`5]as,W+dj?5@j]T3J%B(gh6iD>(hlb>g`NUJ@B!D9+SnDq*a*`n"cOL0j-u\jf,QlKAG-LmRq..6eT;ncXgJ>F_DN>>#N>$u$pC5Vt4A/I;jErrKADj:d^OQ2u9/=P_8)+Dt"Y2JATh7%NCrRhemHm_gs+$D2naqrple,^l6/8.n3 %h?%Kl+AbBr2?UVn33higk^AG*(iZ`LkA>H:X'.:[;6MX>AT'>t,fXHd+VPb^SWI@7TV#RnTJpje:6J%i=h6VIqUBT%5jn_YrN%UC %T_tq\MZ%CA/F1U4_csYQqIQkE/u6$iK6Vn"1E\e^'4us$_P^,\MK;!6D(pcNDU.=EHZ6alqAhT:1/u'UmK#W$]7%gmUlHBkDW %-/$8Wd;nRT*lI%#_=Pd3mZ="$T.\J72#)Z#1Yr(j?bPA51u3C$Ea@U\)oQH0:6(5;9-9cqGLH"QS:0_EZ#O;`dO^9:U0V`L%mJXf %5hk*>N;]r(eo-#3]kUo2c0TE9?#=d,'&C=/DQ(Zh)D/*"lM#L4H*'*Jhf%P*"8%YnX]GB"Z1k)1WG>/6:V]%3PeN8:9&Be=h]iDM %LpWnTW:560f7!?s2%p6i^]]gCp-*^!g#$*c8][F.W^bO;;6RMXB>>Irj6r0"p[LR(S5$C(2^S72DE7B<++?h15P?R^LXQ-loW;jJ %6'De^eLQoH%?I;'MNO'"ZJgpF6_$!,Qc?[+22'LE?=R:jeZapW8g/%=Q<)qZ5l>5,EIS?ST[%\IV=5)`LRf!T+K9`mI\#=u'\=+rE/"?&C/u(]eRo)>8&NNSf;[dG5He=9. %QXXG9-?opN-VdV9>@3IA"D=R[B;6tSY>EPV'NbKA+sM1&(G3[crs9E7XR[cN1S2Hp"=/G$J>0'(8u@t)@PaUmAMfe)$h@dVj;1,] %XemhC/U3^,IggD4=G3Y$IR?[f2iT!D8fJ>5\at%m\'5PXYe&Eu*^1f::.+l981$nXui$&,[LOn#eVIU3dpP"c>_Q %<'`>1<6EK9,5&,;d#9R:A>.0L__:GoN.t$aB*O&6SU.dU0\o^0Lmo+3MW`plO\j$Eff4,"JH)S-MOW32n/3^`Xs:;+h)@KPR;TN8 %FiJ5*S5t9d$4"a0WGo?7RCIW1I,>>ilr=&!RDrC'BCDMY53e3n`IF*rFR0jmMuP31*sGr(%K9l"6*]jldcN<;=mHCUEm80rrr%H_ %b(Yu*D5J6A!4RX*S#V@2>]h$]VX>CPKapR2>bKhY3h@sgZM#i8E[\A %acg0N`SAR8?d^YRSO\IGBbGV&'rTTf-e38cALDtA$'=l"r*!"=7)17UD06gSYVBoY]=H4-ge#pGW00K3!*[_8eTfBV)`[a^+pDgUeuCC'f<'A7J]I2e,_KrQ?^2+7c]2.OFkV;ok112+>Fl %]IHnnolW75>&#G8iK0a:]Y%(;.\^6J`,Lls][AjrT>8OW2[V7E"u(+n>>VdiS>8'H>ZF1?*=fJp:*^0\)tT[uLD)FE7h %1dt59"RVQ`6'3DR6jVCJ\Y.$+EZu?]W=Tb(;GKW]N,5m?rN2"VA*[T)X3s:I^XfQhf(C(7"bIpj44UdJ%q_q>UcBnI3D'W%lSQX> %Hh]\I;$"d9b['T6Xs]RS:==_p-RXN2VT4t?ILFKQj[=bAXH"S]=lgFD94Bs&QKrQ8YV,d<`."2FTM8":'Z@6!7bT/%X)l1&,X.\4f(`p?rl'rG=%MImka=m[S,3BrS7IoH[E#q)MY!]LMBll$i1YW&YXC0 %8A(f1M26g`e>PB#@f>Y6;t@gRb^3($:C$5m)3J2:OTS[L],p+T%`sMlUc;,s0"UJ:'A!IGQ-HY?VD!0r6q#u+r?8mq[AE9:9a*IVC8n\YT^Onukc!lRc\QS6LEjQoMKYkGGMDq-pomNPQYtNct2%H":F-oVuMC(oa)dAQhnghOZO*oos/> %#J304>3dWd&1P`FR6Gf:oL>Nb9a4"RMWUUj.Hr!3R#`YPWTG.ohcIu\gqu(XqtKXjQ0MSV1Ce!kL0NPWHb_I5A_ItUXil7Z9na,^ %iVl[VVTG>?@DoPQ\)?HE!RneZa4=_8Zi\O<#)Xo\@`oDh9]KD8SX(C&)Vh=,kV?NaeJ^A99^=HAg0dtNZ;)Gp/SM**Cedt4VB_.W %'gRQnYQc!gCC22\:KnA3k]$5Sr1\?2(ig@7ViI>)4r0n0=)7s3%bVsa/Scfs,.K\-pon.dSa3qbhQZ^nmLmuWb)m[./Pdm2NIu!; %WKQFUjGP_cIQJr*f!-OO+jWi2Q0K72s2U8Zr5>Z>PO?P$SBmMJB?IYr1&Lq(UOJFdAN^ %CbRBX=Gl9&b>!+;Qr3MD8\GtTWnN`SI&%UnWnQ"GnuEMC=&ljFHJeFRiRbH9>oCkaBQ>N'>m]]U=A9:%[4>@Gj2CFeeZK1-m%>3p %XkS#>m7L>pg:EYp[B&"N[9=6#NkMj$V*b&C0mmC:o;T,JeE`mYf"ho5)#Nb,3Q(kKZ$PUBJ_Xpf('nV\47E_lc5 %@g_ZD2o`aFEo*o"(46qK3qu#r@l:rK:BAWZa')@QDTXcVkh].<7h,;KS$7:\<>;[gY:+TX^m4IlPV6Fdkm3 %C9)kRk)-1g_,k!Z,'eX&3r%tJ=En0%khrYq>ZCe4IAL+I7.g^7N%WV[,&X@;]Aj5*=SjoD=r+>uG.Imh)2AT%&f*Q'2reiX9?:>? %Q*>?Z?t#XVUP,I:!=N%F)^R%@$bFg2'd>*dj-^`'X1CQC86HY9*+A.QsWts %$Zk>I-*1YY$XTlW"YA3S\"a:4aAgQPCaV[gLGc`P.:Ahi4&I2#5lhAZ@Y[Pcg(^b"k,f8^/d8=dAtuC[?n%XOHs-PD5d-W7fWQ*q %*ko8uoso\#),9hRrW:[I"Eld/6u<95\1YHb2r442q5md&CB^dV'=+-+^k20`>L&<`@(Au3k6f%tZ:qeXn!VsSdX1ko#T%Bjo*VlP %I%7-3^Y*grl*QY54e(MG)"kPF/+Td?Q5R7 %Mh9?!e&`K`*;aDkIoM1mkOc&nFF,Q,gb=LnT5KX-i]-kN4T*(m?p*I]"oN0?]552n7<2P+Mb07pc:-Y0J!MrQmqf9%T@r7-iF6]> %X1/9DK,8LaZh)'L#,9JY(jD"7WR3^P*``pep! %AkfD)MMW@%&7-="lP5uUn7ODDnJ!B")#RRnS>bc6f\V0_CDmB_9Rak;GI$`Y*[r13(m8p'RQX)D[s;Nk,>U"VrfP`)"k0`A<*fK+e$500i%#W#TSmdIQGOTFP7d/<-@@,Q&Yg-NbG>Q2]eL2%L,7+sbBKXC0ba=nbP/BhRK@DM %_R;V,^1PBD70Wqc0(B>&:q`PnpM8$Vo)r&YFebg<&0s[(#.'&)M19JZ\Qn!$GA=[3ZcbbhIf74eH?G\Z29$QF@9Lkf-j'75>scoo %c8#5>&_NLW`\`+rmM$sgaI&m;\/3>/5%1$co[[jnU^t9P)-QPTk9[IV0H+T,9Is91>Tk:H0'AYYccIL&Nu3I!M0e0%)VY%\1Bg)e %&eB/XeAprqV5`(%5aD=jY:Wj-`.S,ih;^2p&P@"E;k?Q<(WD5I?Fh5VP,Rc05VEmu]0p>$A\%9MqDKimobHSk#Otp6np$4liNZ34 %O`;(SSN:/RgNX-EjU]6)3E!6M`U/:^3V"-0nBMaZ[R94E/Cu:6:Sf\5FefLTf0!=cdA2Thc:S<"MF2!fG)K`BnLtO5%C)X[ajO10 %b<)?Pf1=W;Yb]b8R@m4::Qc!Q06C8hF1t+aR\1JGHW1ML3`3/ApH43_"I6sDma`%J3&?Kkq]mX*@h.*h(`p6:hVq3Y5b36R %W75+bAjZrHSB9ke$#!:1\TiKk@Mu8j?DjHi9A!.h?$?Xj\cfW<)DNe@`?a88<&r\i.7]FQh5A4;BQidA0tEa[>Lc];__Y0Z]RUIe %@l%#*'$i^C);/+SC1Jh!W'\R/"g`[F&iW@[:tuc2I1hP4c$KTJDHUVr2M[QCqE[UFC:#;blLp+^hjLBkg5DbZ.jD=CFR%km"F8aA3']k2%i?Yl3.:H!=MKN;YqEL)'!YFPf5Nf)/fZXp\A6\-B9g?-!Y4_dM'!$X'3C#hjpCWl_;%VOJc*#:,l`+BjLeeaf$EPLs.kfs/F=:Ie#>X`rG< %'R=_k6BgSt6[\B_"f>`sIaS$o`P;fERGrh*8^TB_t.ZpW2ilPS/5a5>>P554Fmfa@Q*[VM'p6_lQT-NWod2/ %Q$=LQ)TkL?Ng+cTeYXRoW)DU]/AE*cV^!)M@\fe@?E"!-YV*u4.od3XJek_&Of'EAo"VFk:1VFMUOOXaC,]:9^W=ld["rRB`t>Za %"Uo[8PZ3H$*QaBJ`2?)ckt$R,P!u$?jQT3i]YSu_,HhPD*Y=sX6R>1n.`8@?0Cj316XIi>-l.(hOs(?_9ZM+%acOP68VP77MBT/u %iX%cR$B_52)=h!H=rLc`3M`BNCq7ZL(Hf!4Of'GG1T/KI;9FtJ=U!n2:Id2$j^t?'(S!,rnef3C&:$="+V3I!NQBS2%/C!HH&s6m %AGC`9FG;ni7ob@-*QaBj=R;-j'5S%8mJ8T8%Pd%J9S[Cb4-fQt"b65:4O)`hKT7\&O=qHpJ7[_&Q%/a?'Snk#\>%dO%-E11q6FY] %)]*1s.2S)>aiCAhYF/9RP=LY-$B_52C%VMnk& %$#F#BPr8TU.'4H1/!?m.'X8PGYUXRpG#@!F*JQ.3-_Jmee8)0QRY*m.*r %+k]dL_ViJJ=Yfj+.N,MRJ[Ib&DQM]CQptIm,>Y9qB'&o=Dd/IA1-L&3kltMWg&YR%@pR%USE-. %^quV7=fW7^(sK`6^bZ8-0E#_(nd421F*EJ3ZoP]VUT"^Nn=$9g(<>up#h-!$bgWr_,IQ,OS>sed&ZL'e2[lA\P+%>#o-"R'[Wb0sM"2c"f)o(=M+9!*o9?md$DMQ7(;/a\p?;-[+G8Xq02TWsl0>U0[A"IiEs5[^S5Q(qN`_n_d) %E2K/&HhEko4=0Bp;f]8pLrV?T:?4j-]_k/WpBahehAD^rT2AR4Z4=cQ,5 %)BuoUB/qGqCZ9.r$*aB^qD*Lh^Cb"eE$>OlcFJ^R^;Y`+V>M/jRA5!Fc&YP.4F3>;_gh0hjL %M=rX]N8C+tdsZFnARiuCD2m>gr4a!0C6oB!i65Me>h7?:b;/uYRfO)l_QoJ!3KMulE#ocr6&9Xf$&6d253<1F3iQ4M+tUdD4*qiq %WiijO4d#aLpgousaFph3.`'bc-5OrD>DCJRF#]Hg0\3%c@_1Md&^3b%V@%F/U[l).YCQY^2O?q+p+!rZgH4Y(X7e#?'6-2MMqc*ApH4[]T`.(=Ql>qF+ %lk:MlPdnX[R'7L'o/fH_'R?Z)?S7sqi`a2^Ds2h$[I'q2kXMm#6I5.PmNDDY.PcA48#$bEn4H4c7f@E\&3ATi7&++6S#>:G*qT;! %a2OVE""W84\\t631G89Bac@KI^6RhZ:)%o_Bfa)G5<=F\,l](]M2*n9k\[?oR<V?s\XZcRX0<#dD0 %La@%dojK4Z\Re(Voolff]E0G!`pdErXn_a`mZoE<,[W=$EM.#SY(/(R>*k]qIUiK/_kd"?FeH^G= %`+jlWp9jnKGFLI,lT\V[*"-^d?u)feSqK0bS;H!T])CW0mu]DRMmono*WsimaOX$YLC$$@?CB?*XbXDA3@Y2ugT,0\Ugk!WB$rKl %e;A)s)Uo]aWVLLQdbrtHrM_tsGsirQ=Jd0Ar-Ql$0-?5Ok&]e!1\+?$`PNFYWZ&!hU&Gjc7!IGG_op6J@=Ak4m*kkuapX"J4)M7S %QCX(+_,p1l?st&?U3:I&JrN1M786<0R[&k>7C"A+ %qkZ`dTkd;1HrmodN>>N1^+\Pm:V5an.\D].^XV/EduS<[.PR1,G.`RN6;][g!S %jt6S'H(XYQH`+kjeGG3o>NYit#-2>%M[gt.RZXcX%r_7V,*)IMQqqePkP+(&D5a5^20PGX:s:<_6%gaiiXkZk![?qk:jS#Fm#C5K %1R>^^"WLetHh6E3_mF<^&2je7))607[9,@r\A!rl'R8[LHZEh/D!%i'_l38TIPY`9V+$]9GjDi[*Q?ooEJP1[:Qr]T`s[B:iGD/l %MS:&(=\3Qf6@iXd?#6,2apS"W7p_OnW!.%m*9P@G!eps`+t"8g1&#:p[FdtiH0s^Lh'@Id)J)&@Y!UB*\ti6sLAY3.SH%IWS3ZFe_;/DMeOmJ#-d@S%%qrUW=4P3ZImo:(aJ@A5/h7@om,b[!tQZ:!V+7RPd48g8mka10C9,>SPUaQkNnY`D/gNkCE %8YjZikiOR=Gt0Go/O(9!F'uDl_*+DXX>?G>CDFAM"FC"82?*l]nSI([=dZec'k2Db)AR?5TfIeh'k:X?mQZAZ:&?3`s#U#mO,oVh %9>$Lmqh[nY<5KJ0_<8_.'LaCo?`?=FqG&"`R-9cQj13b4pgg,khFtZ^7G*su_E=!1RU.Ou!,Rpj>q9M$ZaIe&m&4`'!F\<4(ZS@3 %7tk^^gf^tJX"j1@3mV`RGeEAEd"oC5r84HhHc=G5$.&_AIm!DCFSK/;Sr>$=s)AoC"qR&ql/p%E1]9HV2MV6Ec@>O(n&(4^ItI^j %E7`3:c4=O!s#Cqq8!n;S2T:14m5%!;rDD9TA%;;8U14l.]RU2R_k?g8Mj>S`eWFiDGM`'UYb/G:,.-usIP:o3_+#>]b7T,O7jG]H %.l"-G4`^ksa`B]O_%n_muMMMK*8d;DN9qp$mK.dWtktg_NmoDGHlUC2\L)"o>C%8,3:?j>9jI8 %Y:l%b@SY=`2)d$j=n&$=7OB %C[B0m$jC2M[-Q*s?&RZ(No#tF:HuIphNBP;]CVk)?iW(%:CCe+E+sq)oIiWZ1I>@?=R3_9._bLC<[jpgNF\2@Jq6R^0(+p@9j^1_\Wpd?& %,td!_0`f>,d('%=[XE=5JJF7>Y'Z$'KK5L,2YW>VI'"GRZ%co1*)5`T0c^\h?kD(9#`IsV7$I&OR.XPb8AtHR7un6aQd2B)?5?^; %-+7Q)<*jHnKlaf)AJ]PJ\Gh(]hDHm7`nE-h$pbAG'9V3'H5t*iOhbt?IVR3IUG\rk^TbnGH/3RuGb(p1j>pRJHTYkc@@+GIi[db' %=22C$%a!a,_e??Z1]_=>dn8.cLG2[#6:omV? %,Y0`^\FhB0QRPCqXL(C(hXC5^Z;B^61fY^/QhZOd2K-UaSY>9`X4B5jBWd6bpZ)CSGC#m+jo#(hp(DVRh_\G1ntUHnJ]irt"8LlV %C\tPMVjNJD%U4F;j-8rtB$@0tUV+Mo'%K.YX`sXipGn`9YZOh.97RDcg@b+?E;JMtZgR#OM(E@#nt+<0b>Z!$@kl,VTXjL#-SI?u %FE:;uLp8%SPk2eE8u&g!9Xc>83qa.:7(ORWnL,>A],kgl!CKIiGk^]d[gC&,=rO>BN0r+Dr2X83UC`;:QcrF+F?s %,`A;d$9mZI3fBpQe3GFH?CHB7ZhIOW`LA+C2'eA/,S$jKq1mJKD"(&m[A7%C_6u0RA:7"bYNh];":Ha0s2rqP=9l#8qNPp98%;&U97pa7KGf:YIeB+_>b\ %>&C%JHtU>TPWUk%<,lS=f''E[)FjU7)E#)jC(EY78jIYqq\LML9@!OXLFJ%AK\\eTpA@884AK-I-Z6IjY0f!b;I/am+9*7=5@f!eFfDUWShA(u/9htoDo;S\ %7Db(cK:[7JlBqmjXn`f-U4(5*6][ce(5-MIj+@s*Rk#.dNKS:W:QA?HcLVmI[Dl#-DE,,,ZEi&D3?Gn\SY-49>ce_GpXbH98! %`e:enT/E6V!_R*!)0h5rpGd"/q)eMY]BCPUk*]^(a,%5ii6BpOf]%S+mP^])SpdD_iKj3e1Okif0L&bTO>K.h(f;mE0;6eclUN@s %$2.].>O(qR6HE`?L4hDGUe\2[`G%j\1J(MI4?6U`1JcpPc+=lpWO0d.*XagWguk\'N4_(M'P8,q;D/!q"W6[]7*[3^QQMW))\^!h %JOCacgI5Hu$f#I^eT^")'QsjrAs0On1#DQh$@Fli\Ap44k5sQ`)pF3>I/2Q#M>FWG#sr9Y*/Op%rd%Va].j&0YkkQ\mcVN8Y\+dH %[)BZ1!r2kF.t2dM;[71kmC`WE[6r(*VEb!/6C+t<5!AWY8h2]T(p_K]Q/RYF4*]_nB/^RaXJlKHKCO0Lf4'EI:hf1"+!-' %V(6fP1%S4kl/9)+OF?`\%Wtb#gRCc'3B$4Q2dNt].`)_8'.JP(B+a1G(:LoiW,FjHIdUJn+a\EQI %@'8289qt+TWP0J#kLWm[l-;BSnt+:q+J%NZ5%uXU:uck),sq0<"5&:_?0D_oqP-A3h@!0qA;a3s%1Cm5ljL]Ke(L\sRosoa?^o-d %Lr5[P.!5NPE!CeR$[Uc-h@j:>_K@p4E:&kd)"u`*rnqgmp_le0XAED9M1EtMkekt2"bE.Jbr-K>?DA='X'_'2'#QDNFrXpBX]?$t %'b1Ej>7ue72>)D!cATE^GcB]1DPS!6IeAI#cAUH_20R?$%3sEh]AT6uUNE@hn=]DH'IRt_EN5m$VW5_Ba%p^YQ3Y3FSt,^8[a0jk %O^Q;?!gHZXh:WNSVFtsrV!(K?*K]GV50->(Z"boF7_.Bs>HY@`8(@?CgVJ[SJ+^E\rLnf6ZD3L3aIukBV4a,:LA!5E;@o'BJ`3W] %15ucj[@No+ImQ9KpCT^3>`t((4taW^^dIchZad.B,9BHOg98@oXV/rWQ;R7qsF8hUlO4D6#La]qE#bXV5=*FBF@$A\ct43\83` %kN,74NU1Ggp5-'+_eF)rOe>tQ(KpYrADtCsQS=]N'XQFZjhs'P#gP==WH['8.^_>RHOg:'.;F#Wp3mFrMe:"=n"DH%[niB0"h,M" %hTeKfcU+,^/CSf5B)N3fX=$IRlLRgZ %Z;B&,DMIA(cB6#W#P]+tWBZ:p%V,B/bF3$WccbN-K#4Q0C(u'71e9F?E_imbP)1A'A>^:o"X],jS?"JElM!J38k8ak`MmnE[oI.<+=qlUah5GU %L42>Hlu^hFk36\E:_Z@jV+F[1k";+^htMZu:P9Z&YCWhc+*@bCl(Mf,;g^gV&N(VT+bkUV^7)63DE %_0i'%:usCHNZE-X?LSP:L`1)>el0/OLR>"+/4jKg.).6eJ^nLP;7E(5&@-7YU2IN&On5:rlBZK.leG@RA\e7"kTdC3Q>ckB]>g&9 %i$gZP_2E#a]&cU"6*H`ODRkgjFjUnGbF'cqL@VkETqYqo*-kgfj[*U;4r#>+Ej1<_Ah`OP6)%XlDQp=pk9LDQ9k9r!"\F$p %YV*LeOJG5eFJc!$(7W#^7FSqZ4\8-"s$[_'7:_OoJ67!1K=RG('j)jM:!fqm,ZuKsIGHAD.aQ;[:)g+0m'BK*1CF_943fWfHeUo# %`]kHQM0TL'7Fb-$'AoC@/EK?`=u_>.o4W;KlIof"i/-Ze=>dO-&f]b(iUe,HT_Lg %?o@CBg@c(]7^-O02]?t]rZ8tMg>cf3mS8H"[dJ`s=Z:hrFT[@IN@,ndVu%g5F%KUp&>rA-+ZlQ'P8Ho(dFeo6\XCkr9Z@8fjN*5`)sB$N:@J'OOKs..@seSb8H3$-?8aWRMAQm.-A5^_;m7&8"_ZHOII3RU@`+0TXTp %Kq6)#^j1PWP(8$DKhq"K4qClVSN+N'_D7*g0kUIJ`rBjm*.2rbN=o&uZHdp=lmVred8<$N81?5il>d]]#..jr;@c\*)*%"eNlp6[ %1@SQ^m;"'Z4j=sYbl4A>2mOl8bk7rce46BH2.kZ,IG5Vk9W0a %!;:/9:H@-#d&pb4aX$9Uq7j##5KULAgC[a;R'%[";:$+nd'7Lno%]DBV4R0c+,`BgGTl^n.Il5IIE'pa`WFQ_@-jb6&fcWn8O30> %c`\diJ($TH5')8G>\X0jZM;>Y+r9`S_OHV)RAWLPK'BRLE"jt,Oq*hnS\c<94Jq:C_F.%9'J8A,hLsh/rgKd!l7"s)K>mI-O)I^t %equS-LFX_#5r]3/+WX*_90MBlLqgrWZEEac^NBs!QmH+gJj'KV1Jdbb.$]9tPEp')hZJ([c88l32h@1MothB*F]ttOBT4Ab1BVtt %2`r6d-h(RmfI+d%*H#^+=TgdLa,rZ`CUrGXo:hNs.jD^&lr2P+'l4Tpetmk;fP);K]#`+`kZVbH/G:+l's(/9FfkNV+$>2):Q:6u %Xs5`R6C3[ljU..W2!A5J:f7rk]j*iYJHiGS0$qGeZSUr"102nKCWd_*SBIZXW$$is(#+aM?WR"X_Rhd2I9EPQ=A:VS0L:qf8;P<< %*qSmI$\7+4p?@MHY[cB-MnOm4gK`WEo2sROerKp0?*6t+/;r1&Xo!a'j"sZ]ij/W78S$e#!/`0=)#J`UUnBqS>)"WZ=e2?F8Y0:era=:>jhsVZEaJGmKUq(;ml]uPcAG5@.cd%&4iK*5P\^L9"+p`5o([USY=e/HKp5Ijn!!i5_Ul1>+U3>Ip"^[ %OEDdu$3DZlMZKaV>a]R9C"J8?bPko6:uLX)eK:kiLRmE-Ph>Z1C+#$4e79"J\H^=YOG=6o"pC>I7I#Wu!2:%r-X=^ADL %XIDGn](&Vm?6g#`H:k2^/@^^^'NSli4'C`"lUF+i%D;=.*Zh;P-5%h:4Gu1XX^,=4U%_nV2gAk]RtQX](=X7FC_BcMj#\]_74`V\ %8Jn&>c!^u^)G0lc!.3QJr%hPY3\iu^07&XP+=:jRQ_^\?bs?NaAqDt)f$0YGU2\OXMAcY2)6md^V"fF(V>-lk7(YT=. %,7Xg;\@sO1/6?^gLuiPefn@<_6W/:7^-BYGZY^K@/N0+R`^5k$g#UJErir%.VEEs61P)j"3GOekJD5PiG_R;bo<9kD;T?[>ENSER %*h)f'h4.ZZbq@S0'u>XrYaL:]?sc1M)=?1`?:W'"^,Pl_Dt(gq(IZfuZe1QYdafYt9qFGo*K^%Rq8T@krscPY)MBpdIuLG3K;k2;d#Bf.SZNn- %dM9E8!@?tQ4gnc?Yk"s!#+V1b*6BVo0U;fW9`cBXa'lCo^Is%T*!`iN:Zru65g2I4agqf^OOo5493h]&QMI*$>gU[\ECLK%1p,OF*Jl-M-7@*l%)(u1&/oI5HekI?88O\`_`Gg%lW]P13D)OoYA"1#+0;<:d,a/!(PO`J/P>:C#?mTYeIYc8h`pk]'0'99ZtimUnJgXi^=bL/W6m' %9hFL34]#N!m>ibt$aI)JY`n`#_+U'pXJHsGZ1Th>(-4"behS(#9[ep!%#=:,Llp+3m0`!mke"BTJSrfjQs\$'Jf\1_oC)on)rlS? %YGf3^+(J48?0&24qOc;5V_cSEe6bqJOCmk`=%268b`f$=[J/:[TJ]f)Ok)kSA%JVUBJF9f%>P#:7GW'k.DACrS4Z;gce*q1aa?ttsfPBV3PA!#eGgXPS#9F:b\X`\$E38fs[lNMV[,YMs1l!C9@JdSO@aoabcGo-?#B4<`Dk,BnoB3!= %kW0o--TA1U:Pn=j>6(:ZPm!:apT@V>J!SHYkNNNHPdL2+^D\H4GY2*\Q,8]+QHkrY=Q:@Rd`CBGsXo.9/@RD'l(]1P* %j]V[+gdKW_\,,f2X)HLdq1F`m:/UiM([GKEaa[h(X+NpnY&.EL":MEJ3K"!4Se[[6T+?\E'lsC2N9kHcqhHEK;/q[a22+$FaqR,< %PSHYhr];<+m8\$7+[/%6fP"m6_Ds$!+^?eN[-Phr![H5eS\clm.O1Ai.;U:k$t`Lmeg'509ciZ)K[q@]*LO6`qDQg9:*ftRA!Vk) %E`#ee\!Egu=!qXNX5E)L^&r65u>m63I`3NAa)f$M!-.K`J`!abnQ<#Se\F01EnnW1>].OoK:#TeBQ5dCP*/Kf$b9TZ_%:XeB %1.gdP6i(AW8?iUFWQ8LsN#=G$kfLn#p:;KHTca7qM,dF7`s&NkN5@#O;91c@&.UF8Y/X5UFFYTA!]cO7ZKgOj!8L"QI3Kl-,-)BVF=lBk\!=2>P0)Ea5]R+`)9W^'S_ %%ROPc82C)ci:WK=S]cD)$S#@>Vf1QrQ8Ks#9ecNeb0Zp$#H=#iEK(VOdZj=@J3knorRKRFD,0\o^:+9CoDE;L`CKDf0B(#<,N0Gl.t,23@-S:^V$VXgNhohkW>3^C?QcHE3[;)g6+ %+eCXs1eE[Y2?tQqU9HuU.(7Ip<5l0CV)_Sf`3T9&\i["2h@ %[2?$1VgMgmHR@9JS/PM%;h(juJ$)slVs)@7".S74OMZ-;lRi,5F0'K1**2DV1nS9cIOIet>7f2:(NAL),dW!?*31;a!jlQGC,*aY %oB"%;`$87).ji5i_0'!bf2RX:F0PLOa[I8Pn6JKGpbY`1bobbU/fT;ulD'^-.?T'6I=;E"cuPqANb^S$kJ.tuC\V4`he[J!.,KB\ %QSHDR%m4WY-B($%3Vf+oF4"HrJMVW#/HX$7n`.O?9C[/&eUqXU]KpMAdpsf,Aq\dUI9Aa)YmGHYd %Q*6gVmC1V+=%TuuE#*M-\:;'XDs#)h_%m,PEq8Mgn@;e>Z#dZNf.7ddl&EItgNY+,CV3')aFM1s](_[L[_OJqm$kQi[dAY7C:)bN %Gt$W_o!Z.(RpnUfn6Po,\aM$>9sa51Q-2E$g:g>T?"(4dS%XRRNP[30M)loW`hPCOMIoQ((N8E$]0?77ilU/u?^t+NOH5cXkX'qgq.k<%5_;'p`KWkNG3RmeGc#e>SUW<(5oP2f?gsi2I%)4+Q6"WRpjPA$-iQ&C0[r)$pPFP#R:AC]h%_UiW!2&D2Ce_MnG!B:#]<0V+6+rVW+$Jl>18%q`4)Zfq.q]G2M7.`U)F39q>^)>[*cUE]j!h";("ArQ/.deNB?oGccsR %03rh)Z8XXrNLqsZQ'Zis,R^M\V'#EDeBdHo09poLnksHSfC!F.Rmn7bU#tSE54@_8D#F"D]m?LET'`rb8:ZiAL\bm.GUWRSHLFHZ %ho";@U'2Q+jU\bHUd\54,:tL+_M:2;OWL,)TD]d_FJLopGP5N[J$\G7^;2?@3H?8:h=OQ(O>TPl+`YK5Dq5[J1i8Q?%Oe']'7=!I4I:)H]R#uosHc,X%h.%g/;rQ=TaGb[CYA_n(gsE.I^A!etC#e %Ng\Dq[-jgl+C8V9[aTb5O$!JJ:V1aPi`2e4DFGANGD@g:4ZCpKR?$'6&&27LQX?BYq;gQc0I#'X/F>@WkWNh:HVSIipUF,SdVW@: %$=LP&nR^U)=jmTpWp[W2gE;IAEtK0KG8G/eoZa6HXZ1J\_FSlllU %?0r&0n>7WUqL!4Z]9_qB!V#?V[Eq]45@:NZdZtuLnT=]8Z-9MVIIK-lR6U_-[u,XJ$PAKjdE;?(gh3I*[q,#cJ9/_95hI&4`FhEG %&&d("K]A][qr`3djqd].K/mCF0Z-;e_+["U8C*>fTE.kup&j3fGJD?p(TW(A0.cU:Sqc`lK\%rLLZ'6iLO>h,Z'"53e!oJelQgGR0(XqmFBJ]iW11,k%,hL;MB6%$1':.bF7Ha1I)e+4[SRP4jN<6r1KfFSZiA5DsRInq@k?l6pbfgdp$7WU(h-52j.P?iV&WYl= %`Ra#/=NYk8UdWB$O4uM[ %H4"T)O[Q^'kB`8&fO:JIhIfkb-5BFqjACTk;!t6."5bd*^:l+IHXfp94+u/!o/V-dnA,A#!.h/hELl7ZKBop%:t0jT#N-La-YYNu %@\\/=>7EC0_f+QKkN`s<0S,@An+Z,, %55C5[l!UeUQGf'ElWeobG`ZL.5Per=joV-`q0IpCocMt!_NS9e6G<.qilNAiRKjU00N$p6+/p=C>&@0m.\=9@Y`n'.,1da6.8d14 %1%:L`2Lb"o%?j//WPLI<,F..mqYGi+;jR^'s*[3,U9o!mH$u'k*g%fX:-/2`Y#1Xucs,"cgBQ-#h`!>OP=^dgoQmA1V_j#fFVYLr %D%kPohZG&!mIu@-'5o0E=P.B3MJEdqqta^tC=RQ_mM5%"2IW"Ai)](Gpt>0r5Iu+,^oOQ.@1C0:H25*H@VAgcB1U5qH0<.gOlUAI %VsI3Bj_b8rfX9XaBj2h%n5fD?MP2[*GBV:kO%N],00XfRiDS\=CLN[=OF_V$-IJXA5:a?!_:2-TEmLo$ZR;nJll=6j'sl'5Op$%; %0_-]I\?n-X/k%]G[ZpB[fh-JU5p"oc.?og!-5(6gkTV&t)Sa70+Jc@@:Fg5O$stDlof(+*nFEHjqqir`Vtig@1Dg(XAmLV_5+TGk\M%.b9! %l]C_MAtS#+'=Z*O)ir[DgKDZ6E*,ZeemM5^K!'1;;3=brio/rI@HEoL4qoNou.U+[?U1i;CIPPr3,)@$$sE444r %Lm+TV@]ZA"9!%-F4o+)Y/FXUe^_4]E1#T_]Xj09j%?Y?\Q^HW!8o##oDu_LrFX`95q*cK0VYLP2Z.TX.>pD,q0(U9(bN@MOpm?3A %cDmKC&Zi;VqA+r+Y#:`J])D&WnLVeQ;,#4m?e,>7dk(iUl`pNmeq:*4%uQ&D)'"0%k.qDU,30EGb07j&,i3e3bE?+NHUHqSE.BmQ %aU>a>!o`\$`pH"JG4:p( %j+@m'rt&7,5L)fWAkB"II0MM@Ne5ZgW?a+"54%?Q#XL/m/!;QD>Y@C&RrR3LC0ib,1QQanf>Q0gm\aaEq2`?3\9bZSnsT`;@9.QIkk]dB_\'K^Zj?C-PL0r*23<-1EqG\R9+Xj`Y\?@"nBHGEXVfXTYdeF]#=a_)lTaLlRKP<(I %?'90oH0/Z$6@oNrA,8M.&lrC)ZEDPc`O@rF\h#08TF1cQ7-.* %23rCKP3KTeTF:+R@#VA*LTgD;(Ro&8XiKXS[R*Wl!9X,;92#2X\%\'f-B6g&0+.gh1Icf\'_D)UF:m*KQ%Ku<3H>1`msc4i4C7f& %+B8N&BAWV@`\5aI^0Q%3\$'ASmuCX><$1;f9_#3t6n"HWY#PrL=]&gjnXE\)dn`5\33Y#(2oV],2n'bdcR'kMNL*0e6l_*J*5HEB %+W4gV`k"sB*V?7Vr@KWaQON>SV2-lVd=lY>=!Ed`/X\TPms,CI`'1n[f\Lk*f]73L%[@kEs0CdOM$q[mHZ.)=/hFOi %o!T#'r4CNsO)<(a'2rhFL@i.5K;`AY(IC6-ST;>32@,8F1(mrTHiGYrE.p2m0%tYjr!VBb.2:TG@R!K+;4J"\V0(YnWG'!soh*Yc0;Q&l$NE@bUpX\[m(CA5r1i!'Ucl"s$\D=[:LZTYSn9hE16]rdYqF> %L?c5'QcraCr1Kc<_bY8"Dj=qciQT$g3FPVSSc/BCC=rC<$j'[E'oiM:$(U-M^!eqA/E.K'+3H %M+kK?TaRUdRjWuWck&8<_Oukdhc$0`(t5!ni\SGQ7hfZ-JuaA;de\e+^Og7r5$6!eYM6!ij5E!WL,&.g9.n8K@*^bgEEU'l\=i"U!8 %:lGko@Y/1D@\:jBWV0;`"M&l %3gafp;.:1*gPQ"-8YsC:WoPkXWDTF"-]&iTrm0lDjQ.EK]2!p#N?b#nat]WJ-M*HX(*MNcqoH6u8F\hR&K^7$Ek-nC*X3Ol`4_l% %^O#cN3Ib.h(u/!dUWAs#?JH*mK1qg=Z,oXpj1D5AO;[tFTfq8RVd_q6qZ8)7p_/'qB/"C$e)4B?mB9p3=Mq<]VM9"\LXQ*WiS^TE %^%jg@1)CqV$7!`r+.:-IVP(A&5L`%0d_4N&-.reN6j2g %m6S[P`@5CFWfZj9DE'LTB!'4^Gs0AW.)'0CQ8,#<-I*F+J&6AX+B/!<-RQ]-q+T4r!%EKZ6Ac2DNEe5E[ZQ>Hq,i2,L,Yl5c2/3u %IFj-r$P?^?`/e2A1W2tQ[?s8d99r>bYQP6aWCH_Y+ArOUXkkO/\7Nt(5p\o@#%-loDB"XJZL"O#/:f$jQFoY*kEkOBLlm/d3hL@`A&05ZmQQ0u9^a(Hn?ZuhW$?4a2[-XL.Ko!o_!BTn %*RNQso;Xbq$Y!.]J)aULfW1U^S#nkXD]I'L[cHN&6a,-[MKreG?8YrZ_ms:D"PQD;C2:Us?N2QPFj5Bfig*OAug4PPAYoOF<1fV7O"1W#rcN/2AVBKuRWFt7TKnKo+nfXdpdR(@`dXZlOW)[htZ %'G`EhNC(QpZlJ.2?7"IBJu1\Vg"KStG;c$i9a`M;ms@r]9j'\I\Q.Zkp,"tW7Y/HrW5O71qR8#]!#2V<+mTpnei705W'uTF;/pn@ %[alABXCEsdBQSe]#4mtr%TRI[Bp6"M>`I\N6/kDcmZbU,WKne2)I;9[_5uMTX+rK!;rp8(X::\&U/qY(kQ,>SNGS_8?/UYkN-mIP %_;;Y"pjpTG%%sER8S0?f)1u(XA>V)O+UWup?;W_Q_(*b8T[XP$OP1W[0fo[:.H %cDX-&7oj9,)uWT]7T"4rYTeFmTbRp9RuPZQ:!Ws63g)s1Y/dgqi=:O#A2RCEZ$S3To&cR$.S?tdLLm[Qn.VA6/Or8$mj%lF/+92@(\La2 %,,4iqE[t@AB(!;FD[J5Q6(A`Y$5/"lSk4(j!2-'H%L#IF!(:k4p$;eH04+b'W@``AlN_rdae$,X+H/UV@R`>0K]DbEnq2WbM9H-5 %Ah>t1&KJ>q`%Ua4!6MS>;_@C@qe77t[i:Kk.rsGZ!`pPSFBcWjN(@^3>6I;27Oc28a)ZPH7EFmA!(0Y?kWaZg__-dJ>8h/R:n-^[ %r;+!pE5a85Gg+kTDfkl?ChIS!H(kYS8qP>FJ'p`3cq_IrHVUi3E7U(N^>aDU3Fg7(R6d)*h^,"+Jhi_) %Sf.2A1RK=_gbY_F[U$S[n7don,D8".q=dXPfg`&EVVp00+3=OJXXmKKcE8GDW^*k^VJC=!%hf?I8r(6QH+^Q?T[;9:kX\qgNHR39 %1"mZ',IU^%)(h,cL!`#Y54E427f296#CbVRi.%ngp2F_VZjf,N7f2qHHWdKg]RZQASZ?7De^m!pQeo-&(Le)K?Io?I34(B_80U[S %5D2$k2BoE1KT?CYCM#*t=-OWeOrQ %F*$?So&rjs\]$?_C%]E^]U!tj#(4F'WW0Qh!S)$k)>^U8GZI87gInU%k/(,da*BARntd).5D(2-Gq`;=?-?Ln>D\LDKj0TeF9uA< %VH9COe0VIbkrV;pJ*+QnSTia,H:bg4QdG*nh2PmOQ"8lTfVH^ElgB*^Kj?']hH!b_c.I/ZkRD5Y6=]a5>]QM:no[+n6L;lWXR\"&aPGT`'ik+N[6D$*sq,\k./?#\^6,V@/'?*n< %(S\qrrPu3;?X_YtCHBA5]r4j$f#4^4pO/$'9DPejB\C\b50gE7]`^Y#du^V[7f%MhhS.:&1\j[0DgMVcQFi_,^XL:-lR.BFah3fk %>d4-T5')!j#9h+^![!gX6^eK`ol_fhP4dP2C^K]qDc]YS%]*,fUcXhrIj0aTKC8,]kgAjGtT5b\;KlW?+?r)It00,2QidF %Da*K:)'p.Lk-!Eu_Rh?,>hB\4CCQ@24@3UhCr>!/K>b+"&I16Q5aCY(dEnsi`8NBr`B8j+B,hlbSZ0JWPg)XQQ#n@kBe)+W#>_G_9 %&gQIJ:8C1Dm":Ign:9^)m,[2;+7s,2ie^dl(9;DKd(6h6@m4923P-[NON$k&S"dHJ'Ch!:K0BF?S$1nbPs?XSNsaD#`p2C3B5C$X %NXT\PNEQ'0j4b?gEo2oZi]C.-iVJJ/h<$ss'LM,3Col`F>%^R'6BS?*Z>I#":tScE./)#Gkl?XM5S7TC1m_t1@HNDfH.9;AWFG"P %HDNFCFN\kO3n(/8+U2k^V;8E*C;dW@9Ib^lXLT2m-/8?191)!?6%LF\.F:n9c0a+ZLkV3-S;mC[dqt)=3*n"ej0k[APYTSR1RJ30 %4P!pO^0T0)'@)#1IKN^^L#9'^GL9ZgJIL::[a_KG,M.XrCu_6'lQ8DaeP"lA3n><28Q;c0@f[:\#>US*,XWS2)8 %a=/Nf*Re+X5u'^sW&O(n:ls75Z%dk3D;3Qq=mb)[1_f!b'Z?N)L)LD>$49,=8kTTs3<]Rs6#3Np+;aV^2O('W$??I\aFi#D6U;4# %(sH0!.*.["%+9)ZNAM@1/g\K&RXl:nNh4(g[>'8QL_8VcQ4pKn!Bn-g=ULdDK)hg1i&6Xn)D%W]]!M.*0g, %8a\oD%0a;.,D5+s$?@^gU`W`<%0a;.,B=Sp2&,,%%8JM,<^T/jrBt"lTn^FVe?qJ+nN`4kK&$%7->T]V+P1X%fH$Dq.*/e9D:MuM %cqog>3Prpp[MfKClbf[L:ltPX10%(a3i[EqO$1<9M/N.%b[nKDneSekQk/3rD9r_9M_0=/lZRkH*&W+mnnr/I_qCAR]@L0O>+5)s %Y'.M,\pi'sle5a4;nH)+Fe*Dra[B;9>1WtbSD*WZXm>S]H??K"(YckeQ1\Y''Nf<;<&b %P#RN3iWgbEG.sqR_/$R(50<+T&](%oWs;tr-8lEVY\WH1-YMYaS3hoQWGiItn#0N-X`]UC'((515#Tio(5j3,FU]*U7dYMuFkoOi %BA:eEDV6qUY&?"!ij&1:;P(UGr<46f=ZNIIjXBtIL2Q/kIZOi*Y,$8rA*Ek&[!ajN0=6l)5FK5T:?Cs38"&Z>.*7b6V+Pu:.#@E9JZ\7QbhkeH]XV4BFmXYBA+55Y"[i&-=J&Iq'6nn7*.2:q',.$LK-*HMhdO%=3d-53JWM: %!6pCd&7Ea0[9F?-KfB6V?B2\X0#ZFE"2]m!U^Ha'L%CeVQKco:/[J__qYsPs!TW8'f)-RSI(sbJXVH\B2g$(q8.p^jn\-X38BY>8 %3Lgni>]0e@Rq#';gPSaD.O&rjIqpQ<);u-Nm>?B=-^.RahPg8FXRS%gn2=FH3);cLDLu>?ok@iAZ-R:b%B#u7L2]YFYF+[$n %K%E4"_9dO8*8G#+J;=(@lqje$B#f]f7nt^>qb.=^@eKAF1n(Ptm;CT[eu-$tVsfZ4!tom_TnqLMk:#.<0#0S]C9GIA7S+]Zkq[7A %p7NfJVi+7(-6)5(-0f`C37;G:F8Zkc0?=*!pEiB'ktBqgf2E(M^tb*'(rmk`.,7j)a8mTANVm %\&S1_3Q+F*_NZMWR\CrhX.%#t'Jot\Hutoh[2S$l\8]U2p`)<4LX_HOO7>5NL_%Uh-m.Jjj:Is.FZKGYLPPX94/RCaNuS9N$C4aY@Dmu&YbRU!f9q>=DMdKG+=cCGqo %VMkL]b_2G&cdPt@pNX;:\$/PmS\*n$?]GrmYP9<#nUYEMGB]DD@/8'fI=='@bF^q$if+=`QuX/%cV">'lP&.-d43r7cUu%( %ZB%d=]M\p9%-A"D'sN7GSqI^6>K+Holg]F&j('rkTEpVc'A2dG!+^NbO=fd-LB*`b`M@8h#%Z6QFm,%F&;bU9k%aa_bK*hA88Pn%PQE;!(8dOF;*OmaJLl0u)e*/'AUQ:nL@?gbT2g;0%f.Y$al;MF&1 %F;QYJ1b+2!QB!bgFePY&_B=/I*8/9+Aho:QZYKl`oQe)s_5ejMlW6\$hH.th,UR>ue>Vu]_4Pu+&cra.E7QFZ%4fB=I@n,>R[_iO %!,qQ1C/D701NYE=jki+XT\I0-A,cpj%[m#\Om'5%FD,*!He%QB/h=Us/_0:c3E(ZU4W3k+9eY%Y8np%QH?YgYh8M]((,ct@HKipH %e\)Hqf@94LpWdI0DIWC.O+JMLm@1AM/h#4B!!@V\3"pc24&SHGnk6;c]9eT96]qF*cIh_1WP6!h+]_4eo]X!3<[Nk-T%C=oRTi%9tq_VA%:E'I"Z,^TL!tQS.o`J:i+uRffWR\f7]h",*$Ur<,aiE2$:ORG=*VIcQe@X)7=U=V/Rq+R=P]UaX,1/;`h<rKL^fO-b7Vm#@O1`B*PO1lsa/$V>)L/;)_IDQ':#/p+jW)jA_9?(0O$T=J%j:"!!AWe8j#^T@!-YY7#2gqA19g[H.&O&, %4i#T>eRi`Y7c*Y %2Vo)]-rf6'Ce(DO)i:RhX&bKuZ1JK02e"5jgfP]'X9B`f&Pr)g+qpr!-,bYLp-E84e&JRRf][V)Yq"1H1k=HVZ99.A %E-/;YS4C#SDm('!dqosIi%XAN1WG)!HRX'X:fU8bb8`o*CNA*4@bI])YVd,'9.kRVZt&989>MA)Y(p/6eJ7>R`D2lJ7!UV_l19ut %Gh-Mde,=O$[]9nP0&T4]nZ>Hokp#$iX1p+Bk0uc6c!]CkE'(Sl3F%nt54&`SQAllAC`Ct"GHKWB[dil!e]]>:[ulho&@7>gJn:CC %i9QB^]%gB4KZqJ__r4At*]32;m8Xs399SgPG)nIt;47:^27ggt>AX.h)VoD.mG@hu5Pm\tDjSDE,O>n7fl_>j3b":sfQC@jG%5@! %+kj&VAG9][TBZ=<,2!EL3C-hDWFWJHkO@`0irGuTag@lX-+d6l4S$se.SSifcCHN>/S_7^,M4[t&!*"ATd#Q.QF@Pr]608&`i*fC %[+i,7fpu@eMJrV\_g:Ds6BbQ8P8*7<:t&=(&Om/7X%B3YOfn=,<#@h5NUFt4bCpU]paYZYM[*BXq(\Te4u8S6Y3;hK'A""l)9f"# %BIUo5g[)c:-X%P-B*>p9+>g4jfe5(=7edB:fNj0-2*M[NdM>.oIM$-CP1o+ZL^I+r&!+E?E^fOi>@T@Z12TTsoh!E8XNVoKF<&WH %qQ8-G;t,fS+Em1$bj!uCVV,&b@]=%E2oF1\]+6UHaShXsRs^/C`B?@C1A5OQ4de9c`MhNK?R]3>U9j8j)Z97fZ!6\]ei].;?\hBF %fW"U]5WI3hG2a6J+WO^b^elO-n]cY+gQ;'A%^;8f7M.X`]&Z@u-&<_S9 %h?A8\lF(0>[OlIun#T(k8XRUn:3h?PTC^I:2$->rl^@FImisd;$X;?A3$/L:5D._#`Y^/[rhp'lb6+u(lJSpF=?CdVg`4NbKhcN1 %))#OO^8,@iB:A,;hEM?+LSaIn:1YkTRQWi^Qck6*I;*k3=/RGDC#,@e3)6jKID"/8m_SK%mU@614/`!nZml<"VA4lBK9M[Er*1V` %^A59AH+=l9mZR6oKp68-7;MolK1glTUO]m#o4)p`;2k&"c0$H9fDY"5moI-/ot#nf_!3>C %Q]p#(=?u"Y+G9n5^d8U7#`E'!fgp59hBkKiBE/FAko+Td+(0Y`Mkg%E!.B3-c$et?L:q!V%tq0kGuYklP^"N/\S4:a"4&WOa[Q)8+085E%8Zj%jc"*ZPFM8%R):97%r&e+^GHpChsND[n5jjTXE6Y= %qhZ,p)oZ8b).2RT90ESWQu,TI=4?qO9==E\T?WqXl58d%O.TZ<1@ASEJU;c4q+WDdclhRu-pg+D&D0g.MNEl?e9A#h7>NRTJceij %X9V%L/HcbClTs14oM^EjoHnGPE4."f$^$@cWY]KKId=B=ofqHC3 %bBrJGM:$a84K92dufXT,0.N?O$]c_12S`&?/ib!;R?T,HDWiZ!&U):A1^*?_?=NXqCq<5gSJVFNrX8Wm2*,4s"^JMlnN=R^%7fo%l!CuLUqGj-NjI+4u(@\7lLI)oKM_s %1`$2V6D4]O!.q+-XH'>1!!SKDs3XO@$6jEf,?6CRWrRfgN0sWIr!XtRE=seL/De#>ge":gfm4*FfBck1_i"Agqu!mGPK+VI_"P=TN'E=!r^=!ZK_RRY5NoLC2#rOio% %FUh%uei/=*\V1X0TE"'K\BaX34o@7ZpTKtEg[h??;pOoa=!Nqi54rLd,Nebn&2[O4K1St7,[l;Z""*:-'NmbjERI5dQm@sX:g'=i %@$5MF..a_)Y=*pS:`a*"F&O.dWPb,&I8?i5*,Y9RAbJc]k,4RF.[&XQae?imb&"S]oN5_4fY+->]N#[e %h%h-s;?XrJFK@UI)m-X/JKb6c-oOl[bJ>M6R'Xuq7WKBnJNU9^ci]^_]?CEUS%GdQ18YBQB*eR=dlU93 %DF,j]<1>$$8JCU>&l9sdf[C!$ZNLDn:RZf`Q2p93;PXUYVDCe0RjQt@NnW:#rh>PRSPf_YQk\\F-K))$FN,>:RXcgeiBtjAQl$1!-9snk@8@R+=&U"ZL)\dph;!`tX$^@BR'jLsDdZ3On=THmB:hP[JH*8(<3SL5 %"T7),L9b2\'C_Xge!V\D-iR61rQnmXQ6njSmmfbNU<7_%S+guD&Q!)POj*\GrN^D%:VgDCbkpA*:ITU:1@GHYA$UqUQ?b^=llqnn %A"!')7!dPprOead0bc7E;\2MJr`J=]<"B9Um=g#G%hp*;m7!N=X1dT[WG-5%c-Pf%ra&=6*%Pq%Q9G/&/Ws"\6HY_ile4o4/OnJf %U[P"05M=FWqtp5!V`uW,/Bo4aqI43pod[C5/Ei#F@J>=--uS,DAL*!OLD!c:0=S%rB;^cm7HBM0o.<0\.AgdAlL%M`i;_3Sg` %0grCFVNG02QJA5?()(e86k@q,3dePJKG1??U'FLX7d+H+WG79b#@O`R@8m5JoDii$]T1&dH2sh7Jo`G6Q&NMsXX$n%TTU_V,ls_F %"Hag/KfOHEX2iHRJH4("CULVXj:@bN@QS5t>:BXP75-QIT`='\Jf%W4Q;X0"n`JdXZBi-@8![><,s6QT0E)qU;gGN^^QuUMH9pF3 %YpkF/,GHahR?2pFM-k\^[4g#?fJ]rLS"Rs!F_Y\mS`f>#AH1't>Z6J?V=n;%3O/T0DH>j.KHJq@@OH

64$7QDK5p@Z?kpmeqcYhl>>Z\IWoTq0MA3o"540kdL>ppZO"Ak`b#QH_J`Bo1k/VZdVp` %UcA:RSBm)1o4cRjEm'@3mQ'6+VtYN8l0-k/@N`*)V-J(8EqqT5O:I@6pVk#l;j_JUO7(>%hkQ/PI`8@pK'j]l#Qq^a;_N"\[c-a> %K,kT8&i$tYkPAgH:,e44jN_`M'TZ-p`khpEIic3\UY0Cp=b9c2c-.sHXHhGgp,b,_QC]0t?8o5"Y)D8ENr'B?R(&F2E*[j2^7ecHk7YX_,IGPotWth@@P6laA,4lcF^'-FMoD:Cj4i %K2MLQ3uF[3eZS!JoY[l%DF>*gqr#+`%'fUe1YbLQ+pt,U?b`d'Q.g41B,N_1Xj'c-[ePQp^tEC2IcS^gKFJsLmeFH'=O0HG]7PVgsE.eZM=Ge91J0SllA4//jAi6Zu7,ee:XX?lS7ad=$3TtOBL=lDnfVW="W4i`d %abIHF%]&'o1@Xmj3fk,4EAVe2m/q(,HC#ULMFL,sK7gEB&F*e00-IqA:j#)$H3+%`?XJB0f,$7>===*^^4:iAW4K3oG.ATOS_Jth %9%WcK:dsHBLK%PNUkl%arDZ%"UIFYK@QU+Ke6ndP;pn("),4?AX,\+%`q7>;6Un;.`In %b6gUNl,so\\VsT^gAk7RR4;0aEaD_>f09E[l"g#V]gs'>]Bdn;UcmshQHI;9jC^tTMQ7)s>*'Q4I5#$DMbhsdp;LcN?EH>.8r:r8 %9kiDT#L6QmbB^?5:Z[TL+#/6Z]tAmHk`\'5!nmpqM,!VXap=QV[L?KW)C2WUi&+gQa6sJ)iDn/Rn3_F>XK1>/d.pD/"e`6(mNNa4 %DN16A<<]7r-h0oU*fSOeC>_s$/3TKOc\m3o;,DI[4NMDb+Mr48j\"^2DBjATH5"5o1jcibnY;CR %8#C1I;(Q/AjlGY`PaYCZpsN,ph`5m&__RE%I0QsDa0='ReUg(C]U]t5=47YK+-j,;D"E9cP1Abd1,7m'o1M'BhZ".P %oJ!E1s'CtTM*u9SMBSrE0P2-r9g@IiI>0WXA:L;&j7H:1jLu5koTSm;r\$r0Tat.00`.[c:]3Z(j&VF^Y]NcQ,;hfb<;YA %'Le,V4XI]Go7[).u6NTr5C_jW-mRc=am72soY1C1A8iKo.^T#*\>!@M%G])UGQ=5\'rl:J_p %Er3RRE&db\%okkO?pmEdGM]A5P"KLGr(kae@o(\"J%s;b?ttV8muH[ %A*7Ma2)m0S2f*6 %7U*ZJ8*2U`6.)3N7,`FUHRUcq-]QQ`pj$%7OZ/jnDgYZ!,:I"m;,_ag3Qf3F%aa2^:X2@&,]p=)o]_9c1,mA[q8?]p`]I"oIC %L(?N"SLaQ>)JN!,0`?c+&UE7Uu]h-dA8H8;,20!+paSN=hRE!6fs.L(Th>!6d](0ihfh!AME])@2;G+96"Mq-`$@)$EYjSBSj)bjYXF,eGq9o?N<=+96#( %Z=$(4r$>>6?%Q6#84R"-$riY_'-K(:J/M,$a+nU$CeIo/R+WEWU!U-fh2uBY$nYo'Pb.*Lc\fph!+mAHb)4Cc!+rG_9Z[FQ$p;;N %L^suR.[H(*II?UEWo]-&Wc+:CqM8)"7Y)d^WU6qB@_qC;7rPbTN:CdeCfGOW!*TO`/D>HN_+mGV=u; %))Oj*"(pKI;%o?pl_U0p1JJ-F/!;)4#a>a>hmgN&4I(lQhrb%?o2IL/hIf8h&?K`a:h<%,&G3;Jmr\Xdis?W+2pf0_""qS8pjYf\ %[TWnq``49bhYmLU`d8u>hHYr>?,XbPm8IQoW'8-!.Yr&"1YrrXLP?AY:bWfJp6Mro_\]*,BQ"3ODhDh4h6j0#BK4^MW9+TmUZ#m) %_>Hq3(_&u^9+XJ,BK4^M.SYg&UN(JU8`/BV2;,CR'c[%.3%>5I:R?.8:i8X1Jk1aGO;i!-m4E8hO>aW2hC3Gk$`TpU0H,VeJd%p# %5#fQ,\`uuQNmVfA1#n8@E7D2_=$j]93$bgQL4[flFDP@J.Kk]bUV2A<#Q-:pNqSb]L4[hBhGrKjd;ZJ%cjE.qi'Jqf_"JOghudFF %:n<]:S37>?mS3`]aEl.K2F/'`5)$hIXCjOOrjA`5W,MiSV4NriQd-j4$!LZ;!%7s0hH)Uc*%r&S@DA]7>PW48iIUKWt..2U[5[RS),7-[I)J;No%t"USlh,"fLsYk^Y_ %d6hI5^5"nWAotHG*tQ@2%]1s\r8YV\_ncJ<+r3#Gg5rgQOWD^t.hWO0Esh=9B%)XUKB>.Z:184*S5B)`SF-a[!`[i^M]9$F9" %jH=UD\j1&ml!kIj#C=TuoDc'Wrfui10s#5-2Km.*R[r8SP+#@"[?]stHcFlQGkctn(k(7SDoYS,R?L,l/jjc2C^I3`R67MLrZ#Wj %kj1..1qkURpuF0iSZB^b$nX)]27nLtY\MI@dSK.&VWt=VE@J/=XfoK.bG`\Gaa-Gq-U2%mcH!$(;#!D+.HSs\^#,h'Ak7%o=BS=I %Pc/t75ekc878usN_=g,8ao@D-r'MOiQbg-cc;q`f&"$>>U9>1A4K2rkhQ1tE&H`^HFtRV=8\_\$1kS*-[("OTErG*&0J?.@7,=NjF['o7CiDbV#H+`nCq#`*m'LVa)o %@Sm%IS9'mDLsCo3!RY.Ra]I#H:Lprs<0Nc2:DG%(f>JdEGW3jB%'nMe9E_coMrr//kOJ:Hkl8;:\mWgX,kaq?nT_e\Ui'XB@A*;G*\_ %M1mdEAppR\s!R#pkZO2 %IQ*0Wm>IrhfZg8\omV*JQBtFYs4*Xk.d5:Eg5\HHh>r@!'s&/2.-H]=g?cu6n'-HT+tkCir*s)+>lD%W$iS4WMS+Wdmgb*%NebaP %PXfft6R#Aem*"#TRscZ;^H0Qhi3*P5"!m6iC@ff"?=6=Z7h1A>@^8Lsk3#,S\N'0PC-#:\"$4gGGVp9c5.5^B`:gBX,ahG7$"CtV %9$Be?46A7jElRQQqUZhiVS`2]%=boPn3_SjCu=tLpkWdA5glf/C7]P)jmc^Q*:bBN-+BDjlA@Ang`;/r,/F^t;hU]+74QQVlr9E9#' %bnI"B47f(*_p2[#F(aiu#a2_SYGni-Y9c@4PDE7F$&%>&)tGI/iZF3/8]FFkeKG'=(\1+2HJl[)5V%2VZ[!S;n9G,Ea#pkc(ZS0gp,cG';B`.+#M[[OJ %*n\5FOqJa#Mp4$tBaKfpI5BK"JZFtT@d;W#>Hku+1sF28#<;Gn>(7lG%P\>t"Tuer4'!BtW<0tMANh+bbYle)6uJDurY0W^;M]rK %5KD)HcO7W&h%I?^+T-I2d=gY+HKYIF(dM\7_27.N?gUrUp_e\)S"S`[cO`X!];PuRDYsq,=OiW.Ak,%"`s^Sp?/,Ls-:)GuN#+Cq %(QIt1f)`<#lCPiGDtJ*T]=RV'AdA2=Z.2Zn)?)Yng1ai1V+-H_7g>q<0sf?cL[NE9F&VEXd6oTe/\e_-4ZrG"(\/B6YLM?OnF%U+ %$j/)BO#<2o1Ah^1NC)nhTl&)'AA_cK*5*PU#CM>24PCZQW>K"Xn&Od$P-G^F:.6#SK %\b$So$<$cB^=Ohm:[(kOn[ItbkUi(HH/XPBn5L>.:IKu9<'l(G\0`PM$Q4-5rI6<]s+s>T`48tH0*-pR`120-MC)]U]d;'VMU"N. %\`]`N85]F)XgA3OU;3bi<1JAd"l[V7(W8c96lqkFaFIA06H7ep!hRiW&2NBC'DB5f %Om[L9mU7+DM[O!;R]thtV:YA;dZ5YG,BV,s0C:I&S"Lg4[gN6Z`in3OT9Xj7VqP<%_(;D/-am,L0afF<%PO&EbX+o52(@'=hMakC %q4X:B@MD_n'0C-&a`a"6nSC,j,5kc4V$V3'/T)0-S'ZF`gi-_92`7j3:7HV'<)F&BlI_DkTiMGt)R)1$D8e9GRF7GeAlJZ<53^o< %/h[Z\9V,Ws6Jtbq_nGNJqhr`-\cmPe`Qm9=Z5/g(D?_3TP1QW?][\Oh_Jngfb,V.e5MMSV/)F4Z!e]W0FrY`OaGYM=1@%Gh;Mu6AH2V:>>JUElclI+"^LDlk[>2jfDau@W5KM#0^sGJc8@GD %D[pl8!P!*s9?&>-9KpaQLoKA7.f&qR^57WKW'#.to>T[W6hSh\fN;)oG+;a7G^\@+LR84lF"f*%&`(I$2"0WP=`iBdJP!#C1fMNm %>bK_9CkXdl5mjb#Lol2u.gg5a5\pTX\m4VMpfnbgL(`9Ypf"P\.(oUJ'1c4.p$)5O^pi9ef!QCcfgu!>c,@%*FO'%remA# %3ce9l=rQ4OM%+-^I2Gc3P3937[Qin9Dfk3qm)O&O.^T?.aar@_hIm4T*+_Q3^^`pY\-*OM!pLLA/s2$mY-!p[i=]+'$$7KJ/6]Z) %6f&%_)R`"9)F:rmJ>,^$A&\$X)hS&^W"E(oZ'8@r&9L8V)q'<0gAO@'G"eNN/;Wr+21=%10NJ&!Nocb_08\@7#M"(g.\!dWKQDE` %!V8G(U;6%0,&.7c3f*R:44rn?n3gSrQt*SJ!Mu3>h9+V-#8='n"(K+5Efe?X..Wb*&VP?C()c8%m;i%cE\P?5l1ku`%!0X93Lr+C %fK@,^Qc%9JM[X[NFu_i60[)9+jn/@s?c*ki>n3G(`J-Bb]::o4]"g#?CmTcWd=m<8B"K$\I#AGThqti6;LMY@[Mo*=V+.(G:J%4/!?4EpMTEY>Z.K,3n^V=i9>&&oX-]k$#I\'T2qKmab/b? %,:8HOP)$(G%?i0sCk&l"k'uTmIg"0,ou&k58eAnmGB[6E$lUg^WGT/l2rrc;PAob9YRfn1a9&_PEcHp6AX$dKUn8r9P'[GU<4RTO %8XQ.VS:VlP,S$>rI7k#mn=fR"NPHu.'G&ZR-``^pB8)&HCMpL0m\F.%AV/Mgf%G>l(?sd=H:+YhWsM;f-jDZ[k:muEOHo..:MC,! %,.si%0inB]Z]+>OqA`hu?I$;l^R->gWHW_dPS2Daf?mF$l5,!)F\;*;[#0c%NK8;^;t)`3_0I1iLqa?<&-L*]3S1QCm3&5_W2:Yp %CQJeo;MXUBjmiCWK!s8;-t-fg)I;T*Q.M4>esgSt+XObifsU(T11JVk-1gG:ll&-DsJj^TbPK3b&9iOK@@k/]/a%e\M.E(,`>96(KfQ(gL* %%=.YnIRPDh:;0YjV*.[ZDn^=Q%iTes`M93Ze'h+2m],h>&[X_XS<`5V0NS1^Xd>goafpC,4FLgf2=BWaCCj2*q"r9SO3cQpG3!=: %#5"=_R40CV1R>mli_bYPATj!#I7=rjQ1JKZ3sLV1L#\QTP4/^a)t]rjQ$>R+[(ghH;ApqW138;2%e\!ur %JcqsAjWa'"^UKH]n^7X?[?&T@^QBP_lWdO?9ol(o.`=Pun`oG4K`6^H=ZMd@D`Q>WA1[gZ0Scg46cDaI20J#T/7#G)?./l6QDAk] %'Z^jbb1?3bO-=LYphR.)*j/eFkEBhHNf#=b/bKJC8CCM!k]T'b8\R]:%7igS"teU"1'CNAP3rAI:o/fAeG4N[PPXt&SfACg,FkP[ %\!'#s\6mf%Kcj%?4%U6]`r8Q@7b[=J/7"Pe?#UC;Aa+N3F-;@tHrk2Zn7i&@:"jaEVRH1g68C?b%HoT(G8(,]\5f/(6LGn@qTOau %cj)*c1K5_83mCcSB'Pg)@YbWi(VqsujtpTXT,F`PA54orT:*O'?Ka4UnX6(dN6l:Yi\Q5d$]3=`bN(H8B<)h/buf@* %0`+?%1uktGn*`);j>1SdA/=6bE!!?LT'"rEbfXQNBp$^McR&*J%X?Rdp0JC/8@u %T,DUNaMD\>8n1$?QcA]%nR%htA3#/'$:Le0T^4<#R;)GHBj%88E!!@kqTOKo>eaSStKK"/=9_C8C$i8 %r]W,[^[M?3H2>a(-]o44c-p=&EN](effX[pK#ePJjsas*Li"\N[dW\=6+WYV2FmGikKVXqZ2fejTui8(3s3)%If5["h&0k->)(?" %6B`:.G6TG$q"/4oFD&rX[b,-1gms#n`NMKnet#rsSR+Pcj+Ntpmj*X=SOQU$,6slM]TA4WC/0?Kfpttj=EY1)J$C/9iW/asB:]od %H['XF]M`>:VR$?i-3PLVfUpa)E-u$nJTn6lFD!E[+9`/r89`'2kM=RYiR=@f+\itsu %BTB_#CO_qP('[SE.OCt=*MY];pUIB@TkDKpSO%IrVJ;EolL`<^FGVA])Llp^kW1lU.JMTDh<=BCbQ*-o]\5sgM_?i!O;>E-UnZX. %+)F"3R=GRiOV2#`Nb<0gkDN9N4F?;R*M=3+=fK][]S-Uk%fcT7RQ:GaW0DlY!!iQ)kcSGb!*H"Z?4-io!.a!_!&-')G<'`XruOU2n3-fJ\]^8A/+_,%\kj'1sYSUE&CnXboDLAmqDbm_9=8fb4(5D,SS(4-> %L>tdP8a=i,BOH:0_!I`'`!WL2cBq>aDnE@"%LF>N*n%J\YEm/iqsJ%0gM4rMeY]I[13iIu$)JcUpDN+Q4Jn*=Aa/c!G\]o;X^C=* %eSDqE8O4j/c6>*0Q""Omf$ko0,WbR#m-Ufe/e=Gp`F"CkEMAt>losfD\WI2T);U;h8uMW,^QKB8%]u5(>rV.`]94&=TC\W-7ujr% %;R,_5]=*g9+nAjTJ5EgEbD %F%>gNR5C*t8n39,N@0dG\YF)`gemq,[9,c'AaH(uj^qtq%N$2^;Z]LO@V_sbhEajSpNL1n[HkiXnh5S!NZ`XRS5_301DoWIG]pOB %H/ZtD^]Xfeg=bhl,D4^Q!oo":8]somp?\k5I;!gVgKp7!3qk408kfr;3iJk?Q\+U0@\)+$__62\Vit,B!;r3MN9[:qr:PS(Ph5.. %LTnVu)U]I@b7V9J]@]Nps&paU*QM4Af`#OtXc%NTo^22^&40tF^mC7jptm6CA-6r8&uKG3HL!MQVK\ZjH\9*(\qs.5cn`b<8)fqi %rtX283Mb=Lo&r#E96+i["*.hH,'lgf;n-2]rrC;I2#^)SIN/75]@S,E,E#mXi0u"udf:H=&;W;sZCQE=tiN@!L %c5D4&1@Gt]$VhFL'Pu\P\glG-5n^eHQ-CmW_29NG[MFc&NjmH$mQR7@bX&IJC3bV[DEL:_4tB"=F/'P!Ir2ajM=KBn6*T9H#o1dG %AZ]9uS&.(t^GGppg)8i9)Xu9X,ajN"rt12OfH"O4h!ND+]R9\7Uj4W6W.r.'j7tU7O\f$U%% %1H/W@oj7B;XYoo'985`W=_2]-rD:09*VMif:ue+I]m"@emc>BlInAZe@"0pV)8c2)kO"&O(Lo9E'%d^\MogfHR%QP5:@7Ci<-Y&K %UU];\NUJNCg[V%C]XHq9-T`uPeW8-Do,KVOqQ-h=;MuDT&mUY'gm+1,X&:kdotJi<(]LB'L[&55c#I7>Ft7/nCsRB>'G-kl/pK$X %9d@pEn1m#P(7QU9mtWr/LP5p\$R-=uJfR"oAas[)QcHJX`5L7EmsUrMj:^q!e-aOt8K%sloNiT9Fa1nR%Wp70q^&F9RcmZLFggW$ %4g`SBh7'^dNT"uI"67Z>!s3D^c?fJJ(jG5"gZqkQQXoTsj.Xl33Nk+XHP;DS-6ubR<9)_/H)7d[hNMH=5E[Cr)rnKR9I$&mU]hCM %`#5G$H\*H#).!qP`%TSc9p\*J](0qK-AQge&s73UBPdMJUA!]mnjk(^:2@p*A+.8r<,)/bRGhdh %fHJ(J8'l5o'uM\']>g5eC&PAP[2fn;FP:Nj9npTuf]<5+_[I_!l*UFogm6ZW.@jL34B5:;k/EQS8#])?Mp3D52G0nna;*1Aiog#b %o4%aEMu>Rf7QrI0&*OHm`Y,ss6g'.IA#Ug46rn)$^Q-HTRKZ2hg9r-kWG2<'b-"q:;GKA>B%kUq8UL3]m\?VcdBVt\ZUg'\9Vla7 %U1he&g^'t2AS?bYd'k)q^"!j)VXIfi3U\kE?LM=ff=R4;OLa+;5INa3p.ggI1fKG;Y`8'13_f5!JuhIalWra*J$_?)TfY9_K7UFh %V0>q1AZJADQ&#,U$J;tBHAjKXd&hMg-@YM2!4qj+"ORePkMc*:eD.NVaO.;<:%g8Po'9Q^)2neZ_nUC!kCoFq&[ZanGq[4sorbMl %:$Z,>f=MY`Z[3Enmn0E8GVk,aore'fc+SF)TO,1F1H^"ckkS\AB9ZFal!9uubi?D-ls8TA_EWjsdCW;K@P4k8X*97]<;PGd#Eg,o %n*1uadUVQJ=a*BRlWp3!SCYLoTQ_]*#!6s@8<3YF7^nA@k5pU>+Q6=\,PignSpSpb6PPF9pbIWukYQo,?> %>)*Ff`"NWZ[L(sn0K\D!tHO6/\&#TKE>O>V9a %3N]Y/jhQb7C1p3N.2tBrkgW&9^Q2d$BL<`m=M=*8`/^0^*eJS'T\gnBd1]&hqY>rG*NPk)7S]D(,!Tm/4gK!TMJ/D/DkXd`Z?OZG %5"?[-g5Ch.]BF&UAbAnglR&^+UPfllLI:W8=1Wa)_C`bFqC='0FCgH@*(P*4*or823oX@jGhJ-8?_q+ZnDt&lYh/-ug29jS*WL49 %5m,qO[iHbumcS#SSJqb4/6V[L>8^MG:B4uQ^Nn&!og.$uYGIVNW6CY%S8ih8% %I>\?XMcf[J>uEF@ArB3k1\a=CR#i7f4qjH7^'$\*8cU(<%CB4Cies?=&g3eQ][kpB^d$0'bDf[3JA#s>5la=) %9ra<>Q28C:!6W,+(*\#q*(K`rJ.CJ?TPONr_AcQ0$YL1*d_ba,oCC'/EcYZQ9YA(RcS[OqW6%l\[ZNDd[bbH"A%_:.\4MpRZ*tI:dMO %^\8-cE?=0Dj.*`ZcaqP!f-o3.U@_SA.c>^R/62O_C%g2+`^<1aPM]BI>,&3UA+Y8O&#EHEG)a5iRM;6Z`'hi9[.g8Qhf!Cih'JMI %Z>03CS`o#e3:6BA(u$.U$tUVibfO2tg:lgD1hPHDmrf`j]k>NSNXKZC*;#c.>J(XJ%Lu;MP.(<@sKoo^]l5a^>VqT[[WG"=bXD %MGg'HFuLVmT:_XC5"!qh8,1T6Ja,>ff4U,s0>,Lgj?<9HLlH9_duXk&F$j\ng.gM4?eB=$cu+/7Hcl,mRg;'frW!5YVs#GT9M0A6 %!!MJQOl.DmF%FS4Mi-Fq(-U!M;A24MDm=T#Od[Pk\f@3qh[tZ$JT]n)8>P4$e1fX(\3a19h$_sKN$:t-$0kQ'OTs@T_AHQjObW[t %mP9cs80^Z7jWN"$*CZ,B>n<&ur%ZE-\(XRh\pGsTS[B`mdns@S_=Ihr7t&7"@NJ%qc9I6Cmi$ShUICg#nkKN,p@UI3^=24rK7-?s %Gn=kR3X`KPR0R/,08_U#82lYfqpiVd$#gVa@]0:C-]M2J1,PkmGkHH0=mGqAQ44[<(9W:S#4b.=_U#&Y8=k_.\&IcM4[,=mh3NFK %CCWK`X-@;.dnuR]a6e+gD76F"pT"BJ]2n?aD[t1JR[.oV5Q,Q1>ENDG:OVnfp#*I>THCo:au;rGAY/+&R,7,9lCd>rkj0t"iOQWa %rPacjOG'[!EHc0c`Tb&bN=%_!oF1=mZ^po$Mn37h'pMURCf?f?O1Y_*!]4$YNUKL&4k9X0"4`RcM(?/MEnKS,,o;bXP(rm %,`#D:L'7lO?3+UcqT_TaVLKb_QN'c8%X!r@-pjX$UkEd/>Z+*L %"d>b_HP`hAKumW9mZ^po$J52\]2NUQLOn,I+a_SL+1+-&qYKTo]5>.G^o%m4cd%lK*C?e3r5iCClqE`d:6l=1BBS?kLZ>]s?$>G7 %%*`EtbHD?!B4ngBKFiQTVTV_GgP4ap1L50UkjPjak1"Dp[rD)pg$&qk+GI:hhJSMkDkC;e-Eie#44@brY-F(9G-r@k*h%U804J!1 %Zd6pC7(;3m?_R#C_5NuR;r6CVnCa3^41obLP0_EQ13fuU,bLX,A5k3e3'KEFD,WNQiV;aZobaIM%_]]PS'TA26rh953'KFQAZ&<5 %K]084RXX8Cq,)?+_suEJ>o_B,&WY2_FP25#,V5RYfkD&:n9fCkFmnBpoCU_(/j%^0%=)3"1Jh'0nlO_Sn[k[QK[k(qBd0]24W/(kl?oBBN\/kk<\FH3Pru`@P`0#mZ43s79krAFhs:q#"8bTPSYud^oOiM]0%Yr&%KlG&c'Q.rNrrD"mc-dXT'*2F84/>B[O/CeePs %LWt4<-$kRr\fD=-9(K''m:+t3pp75![X%Tc"=1p_p`A=)Z#idP"i$h6cqj;mS3&>KntsC0T&NUkN#_edYho/:eWL7-;Qm")^8P4emH* %o[9XQqduQ2TqMQ73k6dsb(ANKGTrD)16t0@/?Y4^QuG`[,27L/^WI;R,VFH'dsPQ)Si+:p)+tMXX"+R4aB2n,(fOrr6"$c:&k'_P %psAqEBS&e@6S!'lZSe5J2h8)UPer4JpZJ3W9!/_.1_4i^7]AfRk4_7!pD#k^N'H+BhHY1XETjW*8"SA;XM9!*/?sE""J%F.hgi[;mPG:e$SD %B"lU9'm!Cd:#AKp$..P7hYrSDA#TR@5Bt$$B1X=7!Y@ %M^:_?VB:_g4g/_H$WN:u3`>-bFdkYKpp/A8b6atT1+dUUj]BijQP'j:ZGjtun8k&'pril'3G):Q\_TChQ_[%8\A=$%&\r&!Sgh=: %IN2Wnjk+ose+/6.CO[V:#UQfZdqI&DNE8:2AsJXU<5hruNg^19VQOb#V^nT@?>ZNo`>9D<+/jek,8FXeBc^>pFk`#k?]g?r!!2h$ %&nU^'A;UAV.3K(?J8Q+dTS[Q@_jnWO-F]1'*Ba2XAMJ7SEC_Bi0;I6<1[)%; %A#YI2e3hN?51NZRG>?09N\6id#rj;r)qL6X5qJ?9+$Z-F5S0n50Mp;_`#9=n9b=8'o#?M2<.\KlLCjVb"S %4u&KseUW4Ni4GY<<"0\C$<%$@OfFq+I/5e?5cRJ'g$=1tL&=nr`]r+QPh`jUQW(NT'6UFWHBBA[qq<-trA>/,"f\CP>q(Fr23I:E>f)(^23I:E>>fjAP3I:GT_R*[= %-m/Z6TUX*?"3qss3fc8?u"7C8jl&bRr<37A7obLhbgscb\7b:8FHC"=lc]XL)MFY1g'%9DA %Cag8S+^'BM9$ZpHgqc"coU-^tqE+1QQ8<*re4pNI.ij#G5_^#<`bD,"N=TbK,f>pH0FQ9iqXnsMB6FP$dHu11\G1kt_X9lc4?_4P %7^nq?E..^g73?u]SfY%k),*>Hm+Q^p_Z(UN]D"E4V')H.,rDou=3$1qh0Dm0ct^\M46`Y[W.0tOh`^/NW6-sq*"OmJg$3D5L+XdKp5-]AC!cKB[ %GniGuDL@ZWY$l^6DL7>DrA)\bi(ZMaGY/)AC_d?ZHt$Uhlo5(N!A]C3B\$]."E[sT3!d/G %#`FMfHmf9#Y&n[qGZ,.Vd>`d_Lk>-)*20)Lb^X(05h:K7#\qq@PCpZ?K&GZeA"b"F]esY-6A"FPa5K`YYcsggqDeJ[J?DcW8jUht %@_C&pXq6,4JZ3=Z*R"[S%F6oO,ZlhOQ9Kn9;IniR-XM3sKFc(!:3ko(Z:(;.Y^f$i)D7((LS>Li)7 %@JLXd@dW%FC[tt[+kF:_s(_*cNG:'M.bZ,#W;Cn %fVm.mf=J58\P`C,NGDGTpM2]UQ^Y5uKe#;\jZi/iV9tf^O!' %^W9.d-q9IHJ'8-RT^Gu>JHcCk9%ZQtZZR@gX$i@,):/NMm^Ju_kkVqoh:\*IT"WTQ7m`7ZU5Jf?U,8X/MH;Kc1!l+)\o)"apO?@= %j5aP?'K46sQ$6Yq%eeCOU@PPl5F9aZP42Sq_V'E7?QW9-c_:PBW0@08<.cHprfPQe45I"]8ThP'YC6)ScTO\KOe@RFfmGPSBbOI* %0seL4Fo;b4"!t`"!OK&eQDU[Z\XY:WCDsndim2f6Pl"!"Mif(KI7Wn[@Q?SV]1UDu$XW*j<9\>#(SAN25jOesL_+YHaYc32G]>5' %_"%!hd*"MLl\ueZb6ugedAoIrW#_nX%.'#YMV=b=beTe_0qat[)RAZo+h/-q4?[=C;$cCPj'dnbp9.==R87.W0EdCa"S;_l:TDrEhBHOTJrCA`+sC"<2.u/"cL;:-.?]bkVpk`o2p18`j^)2ka-rE%RAB0O"I`#h"UI&HCXE+97N,U:N;]C,$C#.b+2)< %0FrZA9+He,\[eOKZld9'@]=p:?B`mV1RrOgca(Br>84$SA"POlVXDdmm2V=RQnOZR2q@:'NrW"6YB$cH4up3H/:Ql'r1+n-72H-(U5c:Lo3m:sq?A6"J(F-(U5S %4BI+)6:p?Nd$;h:([?\]\5EcEF";aM9c.^`0'">f4tcq2:ZP,;eRF#E9c3f5qW!&Sn^L=3$M,BqX'Z7t-?.53+e21LU%;1AW=:0! %=+!"NH/Kd>!)s3A;^3k`"/l]cVZn_BojJ$@;j4H7/V*,:G\TO?!`TEC;kp6-%A9/XcqX_B%Z%$;r"f]*F[/'sri@@Jhdb=8Rar-^n(ru0-5Z/[Jonh,^/eK'o@?geK\l(WA/en!<;L+^7%H!S\kb" %`s--F\DaJO3]:`E"lA9BMbVQ@coOValHCq$T')5,m9eT#D5Hr6>WK(h>c(i_H-J8X'<`q+1JVGm/Y-I],V3%urhURSY %6(_SOB@kdtf9hZdCGs2[8fYVOaX`ZcduB^Q01SO7_(Op#TtSq=tdbJlcs&f4:JSgcK@Dm_a$'i0%/+[cQu$$?_jAQR7iF!^IWui-'&``s$?qg'eUq%rZ]TtVmE3*q27(PqWShD %SD/G^:u18ah":U0"F\em'"WR.Rs[]a#h1A9*\-P&f;!Fp:Cj:oT%*SLQh4Z(gn)NdG99bBEg(C-cE_=92bZ5QLUf.#%Ab.:RGVUS %Sf>mj\-qAY)AZ%BPZtMbL68%D!@c/#P^)+2\te'Waj67mgP?83PT-_%!-@IjDba5p]A"C^75BV.EC@@Rr`E8d44@c=W[,;B4&e!r %)H;;*8rLj>TH\L50r!G+&Ylp)#'Jr`3H2hb.B$HnWXM2uFmK#)E'`:f.*\8Ih,koJ)$5)9](+JJa]%1$l;hVYhK__@5i'dY,YNl' %!Hl;_25Osp!9t&jq_fKWA0"E$i?djGhWb&.pME$!kTe"S %;f:KrpTRI.7%70:+"/)[q>?ojb2Rl@>4Vt-P\hj"V;]K)$K46:TG8d^.)[=L*?u8m'lVE95L(2Gc*mf(IL,mE7KXicrD7W'1)UX/ %m>&qBBjfX*;:QJ#9+3btYTLmA'%=B>>"_PY/nP0-X8A4!%#A)693s-=Xn]B7<2[F`i)3S_cRDA:97)ZUfhjP..MXPK*PW9H7,H>> %)f,a(7c*C#&Kb.$+#>/1"HfP%hB1ZqC]Y'6X]ARPrKeUpC=>'LAS,q50Vl%mPNh)MUD1i.urIJFS;]EhXoYdm-1p(l9b$t!?XdThhC7,,H%':GjfapSX8'i %j1Wo&jPlih4.(Dkc%r2>?eh;Mp9(/N,2?]IX%9REMT/=6<8!Sh@r$T/T0E,7g*/Z(>bW%G %FDk2l*,8-`6@@D"=efW\j3Q:33.pnnmW1n`*O!H\4&&>BUS)8F`T@`&K5E'NFd=PTLW.SVo;)PkOfsX]lSP#0+0X0o\%Qs9Fgmp? %e&8g":Y'63CQ'HD.:BZK+B$0/"UnI!cUrq8"_kK0-2EHE?AY]<":s^\^*X'mMPZ2e! %"N?B[;j1Og/B?$HEaBm'*XklAimkBg'"IGZcuU\K9id[',H5=>2)5Q+N %YKf4:n"%d`'q=s#3d='0D29Imh<#[)aIV,N/JTc;V8&3ct)[1gP+'7,L4] %C7O`TQ(+K]7,IN7DMl_*cXuOSXi@emg_?:WuV`4cjD>Imk`@N102)fmIO\@PV=@/atlfo::2: %1/rQeLlF?nr5ug72uKB/*C[.&<,QHgE86/tGf+AWZs&4=Gf*elFSNSppRsrfJWU;r9T.-Go$>:GQ/AlCE!\u!Qoc(+\Ep0*t %VUZbXl>FMS5mQ]md1k+as!]Gi\t3(toQtaD5=9R=LfXMsEjl&Y[1$5]NuR>c];rA]0@SXJP7'p\?1a@nr_Gts^/0!7p,bOVD=pPR %>dkkumeRFDV)l3DnJFGCmq**$Ld!dD[p>^uA([mS2n!fmqt5mOua!fta?*5&]Dq"^,`Ma$?W;5h*150RqML[*gbjbiYTHY5F6>,2Bi6I,8/r9K0GJ/XRqk!/eFB1Uu")YNXn^2RI/E7Y'J!34lB.Qg%_:)6dLO'DYqLp4,HL<.]r2&'d-@#1>'L_Qr/K\@R %4Wh,BRsZoedWc$':\c+m[0+tY4m@'T+GSKh1Y"0Qf`V?:YJ>#FgUK/uNH-5?mJ/*C`jdij2pE;Q/)e-@$IAN>>/^J*[XOLXF`_#Q %!oJQ(ecKGLb%%.W%S!O10*7_ul*j4cl0=>-CJdSr;=UQPq*F6dSNc(J- %ZI.(U6%>IrF?:PhXgT4s:!$YWf!ar2 %1Qj`g\S6:6Q8@`*:ST.I56S66hgX'c%]HL#uVJPn^H1A7/>5nH42!Z)dfF!!0:ZV9+C0#gNY+o!9 %f[$6%@as4q8#D0LUiu`Ki-Wss,>9$TfYe6V_bVkZ^,74".B&5273518f85]cjp/Vl`NY/Laf,rU.r)njqoM>Up43SIJ6#c1!;f"bIB_,^/D,`iYF.WKJI;7( %]5MlZK6(qW*W&)*I0dTW!()0D2o,n!+H8[r>h%r?NpUt>pL8r;H`]@DcDe>Bh(*)_:qY#)*M0A_U(@DL??PqE+V!$'k(\9_@#G%jc8VAEULg>&M:HB%fpg!a-JeMsrO9?S[eQBi6gYk/)pIi+!4A;;gbD._%at%"ZoP.a5&\H4mPt?;(5I_pf^2O; %h8Gr*qk'ch[kYMiV=&g,O6!e"UiMfWQ15-:VU$?sGV6iE]M6SOkKVD,\V1QB0n54;qE)<%?>3P"o?Y`U1GqVta@MQPH@5*]IOg0l %(^Wd'DX6hu!dc%+c.C@d\,()Xf@)0"\4?E3Tj`H+5l[YamBhq#.=JLr1[atZhpl&nWjVs9lt5j;rQja&GI;JCY/Lp4g9n?cF"-r! %foTjMk>tb[R79,VdL\=c*n26_]%rH-q8QGlfXG\2FH)?-$XVjjlfmX]@V6boo-!8q@mP>N*oq^o4:!kaK_AJ\GRu_7g.+8=1tNIR %k!?N)+OIeDL+UYICj;i$Yh7AN:[s.WBgs.s>MT`E,9b^f*;(>P`l#$W3Fnp.L13esCoN1Ma^pph"EC+emJC4t@pEi7\_6E::]iMR*QHg0&F`T^F>,;-n+9LW(&I'M&W0 %aa^+\gcch(;]r5\4&Y&gdda2"pq8Wpa:>4iDC@Tm`f,6;GpY5U2.k2r`e:WBCWt]tR2=#k;q!]DG>'DHcV.V1UefO;#Ml)[:S"LY %T;`4!-#KY7IAX0i[&6RIV9dXK(doN,i64l#W%Ma^Fm2&1-:*t-3prW>$WKCF<*f>o>lkZ6>cKE)VCps!d\cqD?.cW^:"?)de:k5)S#T,R %WN/+9Bi9*<]8IG*-ZQ.=IASVEhY;[rh1#lPS01`HApJ&gFm1])eOkZNboWn@k4 %3jeHVVs;]k%A=Mk3`VMqC^;!m[&LVr8N5N[SN^mcITOu8"bHY[oq>>Xc*#Gq>E`MPPF28H;OPmST\>JHajtlMDe6S`Y+)F?r,'$n %);i0AfH_FtCRM6pOmV>'B(`A(XK4I=b1+lO87`%E;k-,^JMoSt@1?5EP;:pY %X'0H;o^]l`K=*Xpq-+-PF!")/M_'OHh2Ottk9ic0+^E!D%_?RKQ#U;.3q582"?BG_a?gIr=C6r`VSnaHCkH/V&?n@,t,CK(p4_ZA*RKfR)JH/V)([lKmo"p^`^!o[M-J5;","i?l4+c(Lo&H3(D %=He.]&3k/$$:N[9!7Q`9:>DPDsBAX2DP:pRnTr7Vr$*?rmBgs2R>t!-b3`jcCma=*`P<(/Z*iRij]^O!% %8i\\_Jk3Qadp'Ldh$kspetp9qdduR[pQ0d(P]<=U!!V>\kQI"m$Go`hiLW"^'SNBYK56F$VXml2:a^`VDU4Wf=LSjZEFFqSR/Bh&?5unm7:$8_D^sUCoe+kLTke?T6FT..-H`];A3e'R'4,TN&\kZ,N %T4aSabEdVA0(/!l4(>\L4B#`R(91FWZXF8"$tCD6:sBg&L7o,X@_oFPHV36NkKM%%FH(:3%1Cf'ja_'#Q(RM](pcRe0W#jj(S#-U %gnlIoG'U_Sm=NE+2J`lP50@^*fn/0lg@5Zc7_+V!eruZsA+>77VB)\NYUC=5CdB$%U3E#"4[6(aUr9O6G[fBhFLbG2f4tla9)Okkd%*[_Ybeq_d^L31=`PQhM!nPg/=FW(Fk(ZX9s?X$BY&QC=,)Z4krmkYE35jn=CkSS,[K%?gP# %\4-^.SPhech>32ZmOI/pk6UHGalVE$l/grXc(4"#e(RQ..@,CoXWOiFg[uQC0Trq>e"o[b$R^eSUpfS1&r%Ya.FAcdrmZ+u_M"5n %AT#-DR9X/GELG="NGTV(&sn=+NqY,N-ZMTD*Ro8jN<`5RX"sMBjfH?6>HNK*QMR+n4u.#q:]=$bZ,L %h*G$PQ,ZREW2p[sP2Z)9m<_G58*'ea-H#3)c`85jZ=1 %=XoE;]-*;Q-'nZ*[u#T=\pK=4dD'VtiLp/CY.r1#?FT943K%X08cspWES92s6e>Npq- %Y;DsHF+&&4CQ2]Xfr2!3g&4*sS_SKkL^WQ6c^/rn5pHnVg?frs(deRY;f9eXF)tb1F+&?^,@,.VFV3:eI]$IH\ %qT&[cntai+5n'S%-B2enRb7lIh`0L_fNd:Ls+3l.UGCbDcZ`X]g.iBK@:3f"Srf:-mp0_Gd?hZ/C4[9DER9piJf)SY7;9[sdMP=O %BU[sr39T**=\_/`2N[>rK:$L\Xn$@iX!*b(dbglu-2i(ZhQ]]rbIF!,p.2faH"q,E,Uk/hZYo=Mk>p&nhFCXI3VKTbC`.bd)uj4l %S:.$qP%mn^bgXoEItbbf87?2u`/r3%QdT)&dtGMX=OZlqa%nF19-^.(dGW9V2t.c4TU3= %nfHI+J[/s@/BGUR;BG)/VmZsMEKHWZ*VVfn5h#.C:$'::Tb.B98R)pad>NXa/>nNOH`.G_q:lBMNc+56rVpDN0)_hGT\rOgcaQNHj=0Y`%=V939)O9p0TQ-MnU7dd5Jes'cb(LYC$WPrE5[N*7* %$MAH1oG[#>-iL$<8W!7ZZMU49;VMkAYt/IWbEA/[9LYaqA\m65Ko5YgDr0j%LY_mp/eYBMjjon.ROLqN6o9/K'N@JH-DH]I69mt% %Nn]qW#MR1k*to74Mc!@aj+L+EoZcVr8h!E>#=5a2P#2fk[/2<_G]7p&r6tp\Q\Ru?=K$`n8f'$`1pSi+kp!TP\WXkHLX(@YdKQ7F %j/re`\hGl,LntJ3:3GF'/mYn$%Q%$T(TL/;2U[?"KaZQF#O]E)V2Okk$!"QEiF6D?"I1SbU^cs&>Z_rX8K0L6bM]1UJ%L.YDkO+Q %e<2nipW\2oI^';lTdqhQL]0r[^#Z.\PTjnX<^?Egj8uq8Vf.V]Vf/]R3Z7hfDA?Z:b[C$C(:DIIXOhctkJp70 %P;o);=8cC"N]tt`rd9Y?\LGiM;>Af7Qq_kq'O,7o@lEGJ'H6S5&)b**[(EkH8**qG=PMQFm@aM(#/h\ES_eW7@Q\YdNl8sW8#/^V %rf%e#ol3O&no)b)3[=6-ob!h9N%KmO5,jFD0a"t)ToLDW`f)$d[UqKWAi,RCa,+2=bT&XS4@*qr-kZRDO::R8BS7SJ] %S*RO\23\Cn@,6@Id/if5ID\S2:m-e?WZ-.6B'L>I\cG<)G!rNO?lmushsaK%ke'a(_d&S+-^JL*sko2G: %l1J`7E,6f;E)gQLFGO\!K9gmF(%[IZ#O$TNreu2J`p\_$a&DqH^H=VkM'=M+FZFVAc=:\'%3"-mbO,&rQ53_:K>otmBBnn5RHG!, %72fFmE1C>a,lcdPLZ8eKao9+V`]5CWXtnQH6eK2gV+'*s51ODf=":Z>q^/,4T"WT1ICQ)`<.,]?4+BjQYO,I$#E7ZY`est^C;;7UGS.HZ %]EaC]TD;#6eHrdEf%&>*KOA6UAX\$XU&h$>j$eR`2dl89-7-A&F5GG"NuR?^fs,B[R_Rt(H,n`UrW=g6;Gn&D8agTX7Jk]CC^s5L %Ka@n#jdq1P*tAk/QNYSC#\`c$Ka7gOUB6/O">i\?@0-H9aMqI4;o/Y=@N;%Eo=G#(V]8,DE-k.P:\uSN1*updGt0;PRNPN$T:dm %O]):C]]s7L64PJQrm*8]>^PA*T`TPR]^,18C2/pfm/Vd;n/iCl63Vb.rBI.\[P#$eUX&U6nVWS.k>2%DmtHVq#KtM(dA3aC2_)_8 %l\H`+b7TbgY;)X==KYM&Ga`,>fG.oGH&qXN#uj',IZi%$glqXMor:@i08]@;Gjd&CF:HId.6!C6oWLHQqB*;\@EQbQ(\ZZqGcRo3-8+5kS_CHn4k!g=R+ %**pZp8-t'55\Ju@*(GX6n,u%mr`E:FfPLO=n;j^04^[7'GW3d%R-&6WI#W,[J8Ugb'V)R'iAj+oCOIUrN!em<@E*YLW#\jE`HG0" %Aqk0SVlD:]]2L&s!FH8DMV7CF`;HmZ3qocRW?DaJ7FFb4m\H;n690YDL9V>2Te/7-q9QgGX71B,K(Qbs)^r>2dV+1c&7u"O=jP*+Q.UL#? %F/P.=Z'*MsOZ@#S\LAE_;!"-KjecQNk/D^hM!B=dI%#s1r/eS6[! %nFkO@hkPZC9(-!JO+-3=>LPkIaP8ietmdaFPmc]7LNo>cJdSp?r6.P&JFF&faakng#BAG;R6H+Zq4W'6]c'G(.gI0@%Yr$dO+fVGA5(Pf%1Dio %g0hI]'g^T4.mfep/#F!idji %&rK4W#ghT>Skqh46I@UFZ5ek`k[O1iO*Ke\!?kEM/14+,h %@ZhefOM09+:R8_OmSbm8=danFS^i/c:%"a^Ds\W!carMfb%^J/D06l4p"jS1D=DWR:N7Yddubs$BX%/LL4PEN=Yk_:q-VH4)rE:=m(^ICW5TWf7reXH&b(_^Dk4;cg8aeZepZ#fV=:W(%>4a(kT90!]%K\,OfCGTnebqb"5;EQrL)`_dDCpCbJJ%@\/o %FKFVsj+UtbX,5SdC>eH60NR5coL@TI>347<%W %a:hW:*nJ'6Zf>IXcP@VMmOWPl>#.pY&UQ+uG9Y,X%@e59I:G>UX1GR!.%I4lco6@%NTTTue2MPn;b+m"p?:%djV.5]-$?L'WRMCD>l!WR %n5;$0TE24\`kKn`YAa37)cAU/S%?G=)dWY\Z8>#eID\S2TPH(e9:nT-TPE7PhgF=^\/^F %H%"<%U-Xm)i$T1=*Z,Dr"4`*\[*dKo_(E!t5u03gC#^[ZG*\'E)gZF"#oeFigCjo5nnp;t2Gu:.=T%NZRda*>Im^cJ9#bnG!bR:# %(tZp(lfq;t]tWF;CAW1&hm5b(=.#m9q;ueO6]0j&:D]/Rd@tV%&*Xn=d%0,=>.3H^lAgA1%*enM:o+7bi&T"QrVC7>dX=USM8`q] %geRij0H5P"=7'hO!(4r37:Tj8#NAaI[V3Hr(S"QD5NglT)KdY]:lH71`/O,kkE[9[K*9Sq@q%nT:@lX?Fdnc7B:isoW8#n13rd&Q %6e#s^7SRBgS!ftBQiY34^^O(tM&Esd;9mD4:Wss#7m/Xq5;Aqq=45@;cqhjk,3@%mg%?`k`/O's,Fk0qT9t2B,heY(qP"nYQII]H %rY%(5RIqg]1\<"SfH6lZRA$7?d5k=`\mb$p,J7qd3AX$0QfF#JY!"JJM&C^7.;*8V-Y@n%904ps04G@_8hi+h5;AoHF_GB!kU0uh %$:?s4!u!KfVCd_a"qZCC!`Tghc4u(Ojp='\/[YLNpA?:M+D"#kW_gsacqhm$cBUEKEfk0)G@Q:Yr3f9RiSl^LUE:$@`Meg\7]&pl %d%1$d5m?n\i\iLn*(ASL)>]1-bikpoRA$7?!G+PY1IFA]"8>">4[aO).&V1ol,VB4Y1(=7i+Hcd[k7YIVZFYN)#L %s":)>UQ*8\-Q,M4l;JO'rs7HX5rqPXHsM6(V>?G/eX!u$Jg[k([L-g6Y+1a8/m6_Bh:'OT4.*p7#EnC/oG$=%-"I,bjW++*]b`o1 %_5^.mOK1Qd:rFAj2X9q_hXc]?a^jNZqO$L/E9CcRW9,dq+S&)n74[8\j=/MVQPq+$_#>cL4luaO6&nqNLc2HjOtWQS!GKAt8q:U@ %SP'?]FP0na4LMsn74d^\iP-#fJ.7g_)X/ZCPE*$!`-kt9<=$pqMbuM!8:>Tq+:@P4,PBFj,$DOph+:-%U[r#o'05;Jn^OMKi#e#k %T8))X0AgSqDK9/PP2WBKV`1]%<2Q%o0repI/W_KUkC_ka>*oQt`ikJ[U$4k[I9]&BGJ]Q\B+BsF]sTVsAYG\Z.dS/uMl-+f\!:&KaqYGX/dXIB65Zb/C:4EV*Z %=4QromBbk?c_^\A#DB[f.mGb]3ZupHh1m-X6"0)HLmmub!2Xd1Zq@aJ9Gjc'+j?ID)ke/dY"tW.FmbU$q %_s9ZXi8_LLSbB)\/j/Tn:=Sg%/`P^%e(Gb%Q5F9'*@M<$fcl4Gc:B6*n_Ug*@beY@qTdXNfqS!2@nbak(UKif?4tq-&W?AnE^fdR %+u_Xf:Lq1saA!25]*c1bOddCiT40ntOddCi]5NTB&Y&M)di1..fPAN8O.D,$lJ$`!@N %6->/S^'i86-\uq['9;esH:cUVV"WZ]oTS^W$dX0t5/iR\F-TUe][*c+BEAD>1:s&4h+5r.0l5bluccVQP#:#NCpVKMqm#/^5bKV"`j!4^W+jkOZm\c$koZ[15EP.d %ot1E=5EP.d4hDImeo$_;_Wub+`U5Y_E0i"'NH0)jGiTOYrn@cu(A,Fj0d8?qcqd!7BHkU:VpE3FCH]nP[_E9;.m\*t)[d+t.G"VMQA!1P,V\qT %*m$aXVmuaPa3G39n8fI!./!>CN#Pl>Ck%\'p15^[4o:W*D]s!UXgY\I=U2?G?t$N(:pnc;'!7(`l5iVJdE0ZLS?4@s$e4*?\'S-XWJ.V5*o5O %7"RstZkb'JaLq9C:KEm)k_NW0j/)1!mH3+BsPkq %5VQV:+G!i`ITWn3E7GcQA5\?+iMJP %HV.mPP>rZ,2Ol.qbdf4%PJ`ij1:7XiBn\BHA]oB0D6h2H1Uqno3e2_P)HfQq3^\tE*s_VojIJAj&H*q)YhF.4psDhEQ_--j/CDl %\CVY>X$-BEKu\)jW4"4(D+!;Lq)tC,BA1W)=BViP8P]T?;Z$/N&ZXttKtSC.TZ#fhge;qA6XlDpT`]$=_$lMR.a#9837iN7fMff[ %a3A4'G&B=S>J@jeTY&t5*_'0[=03-]dNb(u-6m&3E[NL8D^ZTB,X^O.\Eh3^LO[90-HB^bQrBEpj>I%K-dm_qXiJS\@qf#UT'#p! %oU-p=d.0XZZH^GM(iN71_Jap-J*QG4X$q:E2P`jRg@!5Y5hUbRod[TKGs-*F6;PrPShFj9a[Q010Tad%-d59n`C?%p\G>n7&b.D@ %';8&MKH*dA-[5D&QddQp^$he2M(1F$GqE2DXBB:h$"[mDHYHQa[H*3)\P*O\ftAsErUW]h)!&H?ru-2APt86Z1pb2/^qQYkb#e`$ %_>0P"ObtuDn%s-W/:g@PGi+dk"0uOiW!Bqf*Q*Kh/hGPNMQ0YLHQK?"+E2T>[KQ@)[>?fY*l2o#=X2=8tr,o$+0]P8ac`ZJc %d\sJD<2rKac$2m+beLS(0d0-WIhI6K+/fIO4.( %+,mu(+!;m(Q;N-LD+hZ/V\_:g=5(.\mEJ1&7'$4R]"1cpM3FiCLOdXee.$(DA^P5ed?c'IA5X6Yf$G)nIP:n3?OiTf42j7*#$Wtt %.,CcJf5J?qhR4(Nj4D#iFK1*4CD4ZVn^T@9"FrL`Cka0h4Y=&RXO8ZBJg8@5/GQ^X;;c+Pa!BhDsf);m$6@3,= %ZPIJSCqGZN*/AqTE9eb:\J*;*.74$5OpJ.KQ!8;`Q:agth[3Vk#X4?q+RoFrPBk4s#Z_8M5TS*.h[LQo="0H1J& %?e-\%\6@\98rV34AMgJsaCl38=;'gkG,7d'1Jm:mPA2E4g+QZb_,S6*5,EFBdeN0poufNmX''.9gu$T8?pVQ;ot`9FQaM*-]@VZk %g&-a$rN_[udYl5Ye=9h,l2,&>F.YW]7BL+Y.E2d&m\j[3SPBllo$oCOW>\EWa8YsI0ipYXR&0,8h<=iC6<*4hU/G"cp_8)kT)gEn %p_<(!q@$14`2CC:j>0%i?im]@o.P!b]*5,=i_rr\q?p+3`2AQ2-6<7g"S!ppWo5Hn'jVlQ_X9^A!7f!::M[+eSSjia)ccg5bp\aK$OE3JOhRC\H:f^r@QcQ4c6WB9$'SRMEmtG %(::gV'nJp9r!0/+6lO)Z"K:6nC\k:IU>nQZTK5AGFgZb&hFa4G;2:Ej&/#Nq"'"9.<>^P,SRq>jn`LU,I$JFZJl/L\q)nA/IW^5X %f^Gja!!3Mk-2Oq<^QWmK^/$1Lml0tb.EA&)AfD]m8J*H11LmRI!fL/CcrLN)mPs(4kWWETc[hj)2AJI5S_=4BHOce*5@fUb1r7%R97B %q,ohqHbN8PaUHe_F&F&k68Ir-[@7>?r]NgU5!o95,nb4>nUu"E24R4acA`?O3>#,tJ7IIM]JMkic$KMP=t039I1`^/dJGJ(#FZM+ %J-B$W+DV:qUblXX)LYViF2c/KKhhnOkf+d08-65LDh"bc34'`@`NFCtom!VV_FHuJ#.[]O3,dJ'NLmi5QKR"eVrX!j`i'K%EObZC %crNbV[QNHE4EHG6*]eQ)T:[?i1Kt@+kB.3Q10tH_I$Dua3HEYn&A;)L1)Df("eZjB&s/9`lLc,t%B` %2Quibf?46.r)OYNm+0/$nSd/ohR/htIZ.=gnB5!\@=I@3A74SX)8+a%aik^VRD?udQ->bBiHWQQ.1kqA2RUHJ2[.'h!J*$O,SZ%; %:`tMV5Hf>o$AA;^$Fli^-kPeT#]OmlTKnTYXk>Npc,[-t"%%r`PVUnM#$3)Y$A:JCK&`EuRo2'WLq$0+;]WWjbfT_nmZqI_=WlQ_ %jldcj1>C2FPL<\&U!AM;HO!WK6_+m4#;t.Yn!"^InM5[adsD=lKuJAmh0Z%I\35M*HDKCZlr-gU04R=p[b[q/(E;,"L:D/>Bcfl(_WQoIk!ITT\%b@W/\eT#d5:'nfVf^R+@&C`7JZh&0#Y'r+$cd_B!e@CRE1Q6h^>(-F"^]#nt>a;T!%%%<6b<2,';K-H/2==MnZ5&/8/& %A_"9Wr*nMtQn0OW*,iI1pKPOG.:M4\_A]:,\fJPn8Sa^[#pHG["fofG(V%s9-]V+8XWs*J%?i*o5L7(I_9CK^9ZDflL,DX?D1Kpm %+DR8p;O=`T>W+H5Q4bNeFhtYDan"rapcrS]()V7He1b#tQlqIV>f5&4H)tG[PVD@X:J5Jj[f;0I_O^+\V"N0p-A,9dmi!O6S\eP> %e+dp(rdgY0gDZq]A7_e!mB3?;7;Om2\I&ArmBH?c0AKJ$6/'+"f8Al'@?>u(@)p$5/ep)o2(s8iBU(Fu8"hlM--!Yd/c8[4Ii:9;aT;VXIonA^RiIctVWT3l@@\;gTY2V0^b(.^qQQLK(sJdmIHJ6daP'3ttJlmtB\U %jk]qG7^ochoDa`rm51I2Iq!N#e!V3+F@K!X36l/AV_^i=dhrcNgl_'iN'9ficY',?W.g5hB0*@QZ#XA"=Jdl`/2th9:1p)]p`^Zn %\Nb<6F9WD#K1*S=\=rgCiS(N-*+CY.7(=G#0>4+CZ_$?q-nL$2q`s[U6+ZmHOMo`\e,bCm[G7h[(P.9f-Eu0t][UiIZ3Z`e(FV,KrS]g-)k:RsJ %r^qr(,!T@$k\`sV3M>da_Oj86,D%nW4%@k<(D-tKgHXh(jc0Nb:I4.\`Ic^B8WG-%m2^8Mls,[[&_UTq+eDPeRPN,#&McCHt\Fd[9S0 %j-m&XN\cV%9it*>ckgpXfaJk/m4:eq$)sDUm!.'c,5QnTH'hgRgH.Z5Rs4oSYJZ;Focc9R^Fbtp\"m\FVq924k!RE2hAfdck-rsE %Y'49,1L,i$eG\ck).L38Sk4L1!Een\c"X %+#U'32=!R%ZFi`YacJgDd'K7B_4mXd+0&[aCK1=bqSf^/Fj>_^/Q27)P>Rg.Q8m.eeu1nbD/#-4mi#3%?^;M- %qQ<[q=jZS*WkN+$*(c9mmi#2K-LRdRLS/Ym.mAHZ3s=4Sr2eDr1ZdM.7Td>db1Di^Qh8I$=ibaoK1TMF=FMYt'!kg7X8WM+;l[)3 %ZnlqFgajE!T]_^E8ZBZJpZQqV>FTFZ[mEO4^/*?aPIpQj':W0-X!M[:L8LSiRT7,'ZQe0`f5ua)&?I[q5MsMDqs9R&\FQOQkj %T+j+k:"drLpZueq!TE8FY9E3r&:qrXRO0>0G*[UB]6!8SbQ %`DT"4-SmCjEm!pSmL+!MAu3oKQiBr,;X^R!;P>DLE>`JU@Sc4V[2TnXSjB?@hkkXK^4g[L7P\/=7+T:ojWKO#f&GcM1'^OS!rBIr %.4>q,/)`G6:VJuA_k1Rh:T%T7E+u9p6I/8&&^^khC1TF'1HSnG6;J*=B>/<%r`BfhIueA3Isf_PAmnF$X;RhQDOO,0f!Biu8E\)V %8;eM\?jJ'qmgZ)?l-Zq$YM)7BG'nA?(LIpL'RN,Q[*ZR7(?p+pUl76[L[iTh-;>)G289Z.[>@r_4EH0"=?;1!h@KWN*HsQHqEN"@ %;od]l?M.[k\6DG'[WgMhnu>8qeV<7F#@98:Xd\;Kn>]&oe`_kVR90?"6;";%r5OP;eYLn(gk4J6&#o9]I&W_ag8D52rEVkp-K%mf %#$TCF`X%$::#HsS\b'(l;j;[6h"=irDVOl(:qVb$eX,8,?@D+@:>\]=GVn#2`>#B",4`Ij::MQrQt?RW@CjH`b+q[:6=GtMuEq[]IdOW %1_9rlq[+Lbrl%+8ko'2*]hmhj4F-SFu>0_4Lrtl`B/AuS;/'0 %BecXW0%Rdt_kG`SlVV>tRJ@;c9.h(h?V#UT'`ML>UeIjbZsA3!FPRZ_S^U41`"#8DoE4Sb&mH^>!maD96$^2s#Q%Q+n.*nQhDI@V'VMth_/TD$)Y&&6V%):Cg?"o8f?S7C+nbu<4O5idkD %E5]',qd8]F1gXM9%eQXbodsT1&l)5$NkFW41?.%/Zm(K$b=t3>m\cp/BHB0hE.**gQAP[]glnI9>-D8n$uK] %oWE-f)#mW[MURQDYZ?$9s,e\mpJUbLpNF=Cojmb@,HMq.Uj)*:Vj3h$8gO(Y=$=b5Th/n2k')MdqaOqF9?dWh]s!F5n[%N]*T,k; %VLj.++-Z4>(n[6(WO+?>Md(W?G"=O?O6P*Y\CVY>X$-BEKu\)jW4"4(D8Y@.q)o9rR@Wd_&kV*IG)0uQLD!q8=I6ZiQE.?+RJL#-d.^r3rLc"I/X"S!r5N@he?J(#i.o`cn&8AC/_FK$a&ZE&FYpn[ok7Q:0AQSZ4>H1V#FFT779h$`(%5L)B5[j:V.q,-;pYrC!i1CnY" %Q?`#$J"hC=LH(lkCffDFW(g-Ho[4W*)\0n:7HL,7U7n-F;cK=-EC#P?]nTablJ2biiP@NtELDB7:+f_AXKIACGUWrK0nj,J8/>67 %16ReT?jQ`Jrq%Ies&9t&77I"#"TD?hnB(6)SklD:\(d4r.mN(6:\\u5AFFfQhiLK$ALne_l$&obEIn_.n7T"!C2j@j.dbdi_M/=;VDngN^L#J4GT^J %`s9Z2e!!s+=8L0V_:&;+*=Ru(QL"ibAA17"K=l'l@dt;SmtNd:iUbVdAXdJiHWr'$+o:]4C?`=-g]>3b`\>h %O;8UiJ,<8LP.[1)SA=#!;sK#VF$f+]AkAPt>AYm\/!eZk]2KBP!&16EfJ+c9IBT6@'74b:;s9+&C*i=t!H?8^'6\]Dp'sHfQf&9? %LTW#n3[U9170(ho;;o71L,rb`S6.%fhqk-#(l08^oT+H6kc#4'bR*of5Q^]LMRH,("kok*[6i]>KfO]Ui(U*`G"Unh8-7D'3=Q;M %'6V00m^:9j7o,\[CMZGs(h%'XT:RA@0SYd(U3]b,kt_O.SPR!*dlCpdQbgZ>Q(s@OZ'Y"+,6l'ePB[*FJP(B[eeB.A0a=I;H/h! %urT7djDO-+RnqFN*OSe>1=X.RD_Gp8Ntc0)L> %=bW&!hR8"T!gG<^E=/LB7Cla]"X74X)%f'/$[r4-jH]eB$XUKj]?p_E/nXic:t!=3\&T"icI'];CJ/9$3T!P#ret[n>lA]VQ(:h[ %qN693IaO56>;G_hrjma\BJ<(WpUAJCjuO`tEh"[N.oM\"_mdB@5JT6ARGqOcUr'P\:toU(@30a1o*hhB/SQKVY@oFqJ1Q`D0D94% %#X6ecs'Cp*V`[@],X%']2!'FV$?X:%,X(Id9G2tL,O%^'BAF,sOZWX(d.QCON+3-P;j6lt-*7T,EH!7OA:7AVj6X*7f%$d-?lV@o %m?)As.p=*ci.-br=O@IS;2:=c.(b@;["b:JSC'FD^j"`nW'fK&K>(DjcPaFV%*l,eB0+?V^#R=-2(/'ed6#WmlQ:cP[_(SDeB6k5 %3KkY&>>[UJ8+;MC?$Y0bc6+X[K$!0C39-ACDO*<.i(U$@SC'FDTJ;5QF%0Na$;=!GP#d;PXhO&Q6kug.-R99s_jf\ib-7TTr%JU,XUH^`EPn#h8Lq]9 %fL8U#.b!?PqH1KE.#IL"Uc-n07c_32(KTLF><@_ %Js.g'1[hJT)(dN('UP6+93]+\>)hA%JOgS.>kBjC5gk?\[[JTqK8rU/dKL!p:e>K"Md9EhYK+`E1*4=gY_HR`n`_*\q;9XS`,V3[ %\UL60bBOH=bZEhXE>agG).bQi*1-14QJm(g\;\J4bhUT?*W2fBb?u*:Qf().=@Q^2&BA?EL1QUV+E:Z+@ors1aWtkof5,lB,9=5! %ZZ.Bc*L9"fKpqR%+-sa5/+U3/a0:N=CJ>G.E=L)27nmE["82JGKFN6bdDTTYL1N@$&sj2"VnWPK.*`m.2K9UiY`'c8ehI0^,%C'7 %!*[TI5#ThWgm%$f0E/rq,1;D843CL@.mi"M4>c_u.e?9/aY^LK;t.XiPNg!R>B[_PVOEBX8`@'A^RCH-3g"B`m5F7mb1Yp[.o-n, %O9+*J3iS2hmTujH/^rd'oC6VX?FQ0sFUk-O+pX6>-emOkH;iDGMQkc^DSZuqkU*j3DU&'7&m?,QcHQ2>E/`,=AgM'iS14F7!k[,K,as_7e %kf$"G'X,VGWgo$jJL@SinX,NVHa)Qg4s"c#*)BSp'D5DcUH0P9EhD`>16Af8W:BC[ie+R"bA2LH8kL*=LeIT$^807U1mt9\6"$?? %"BsXIF2L7M?i.Z)@gKHi`lP*Se?QpsG']RAPV..kq'[[DGP45U#9:6&O&\cN@u1`??NQ%X=C`ZnFHO\8F2b;Xe2Mr9W2.qJ`+Mi8 %-EQb-=Q0F,98XW0O!Qu7VjG'9a('r:^*b`#-Zq*4+n6s]d)m&)ac5>La%[8DP*km*\tA.*EK-%<"$)\BgeQQPGqC\8ECHk0BctUZ %)9_BLBac/54F\N8kr\S4/FfdW`+n^B1],_hW_$J6!o:$/r"/_i@)hj$JCitH@toG$3gdb8$WA7Uh-^F6,:kfd/qY$`P2`hkJR_`? %bBOH=TJMu_0&nZ;"0NT#\;\J4N(VPCNQZPTb*LT!R+mN8APdqSn*e1h4QD>VCX0RapR/CHs[Z,M9O6'[Vfj9H5-.T\5VC_&Ug<_]0-dd#>_GoBKe!>fL8U %#-D9Ii\LMeIn8TT*mJ<$D]'7Y=Z;gi4>iV]6WiJhfk'1u/-Gc''QG"O@2Wrc*lT+cnJIPm.Nh/b`a`,jP3#g^QgkoY_&[^[E>ahd %)2/Sg*1-1TSUheMMR\VcY`*-XfiPXV/ejjm*Pd/J6>Oj4%K'rW!]9*N"2CuC_D]jj2B5LNZ[pSWQ>NM&jl!0*>^Zj9C;u+(-13Ps %WqcWWTBfITAp`sEG>rWE,umi5,E);Tj8HL6[+WK^IKnM#^m%T&+#>T$/+1u+!f$+sN+ZOA'/4OA-o8*ZNu[6iN0k?H4Z2iNkHm3E %fqHrCMjmN:no;<,2rDK[pA^CNg07qIpu'qTi98Jdqf59OgjEJ\Ec"d,g@J6b"-CADp=T4Rg^tG"/6WFn#hU*l/6WGFV?%P0/2f\6 %[g\43ViMM=h3+=k%h(XACuj%l>G([+NNR]Sa=$TRlN?,9A3K=5;W7^8fTF)+:U3,UBmdUJ']e`0+qN4l3$h;Xn68@4ZeW8eHQG`j %.C-A4PLg.oTi7,4[deGg-8,=0Z14e,/(R0RbBLiUq0(DLH(iX$e#7'(T^-$VbbA=f#X+-lhr?EPq-NAZf>$3pnH^%Z:-U@ndc"hZ %ph-pbcMkL64m(HAR8Uf@opsN%"*Ahq9dK'0LXPj;,:u%?&*c^<<@cHh+dIcmM1jm;QR%>RnN,*I3C&'kaGM#.X=#molT*/4(k/UfQOd8i8#/#pLWSS.>.^gA3/Y(C %=STaU^7*7n,X1s2Y>7=YThm])P\r/+`5T(?iG,ZD7D%0([U6N0BmqpBY!CIdeD8hHIs5\AO%tVBUtsQ(f`]_8o!J>^1#&UI8-0\Q %j/\$s8Opku0de"cj4f&H%,&+g6ZVur4'&ZUC`i"KH*"k4&"iFcAF6Eo&^Gm3Z![.C]7n(s0RG?8'Insm/c&KI"oUt#*>aH,7`Qsa %[39`+b.&8e:jb..GiQNH[l2o?p77HX\G,5kCNB1KMA4XPG(L!8[H,TO;#`PG(j_WN^T4[bXC^#G5C&Bmk',Z;[6NQhOnnHOLT.dF'Yg+f9VSgF[5VMk5-I0I-E62K'l>%I&P4:XJZd.^,$ZG[l@jS2IAuR;Af\$>cW.q"p'Si=!MT7H7%nguG3e.Q$Y*Etp%IsH!1N@dm9[QFUnoVA_W38FE`;S.99?MF0ukO&L$Ud]t6Eqc/C %fe'8Kl).Z6KC3Vd>o8BAJol>]W[1t\@TA<0m`0e\+bY4J+a@%cPO[,?l==Nu[cg\u@u*#)`^7].GW'AcG;;?-\QH*+8S@&^f_Fl= %*r(RcZKX*'qT(:0]U)?ReboU`48FUNNpI)U2k8uX(*m82ZKrd:PWYj>AZ6CWg.5P_[[eiu:iHrW$>Wk?<'P_&7Eb/#+`XfR&M_R( %S6T=]OTPs%Qrp1&Pa?%=.O2da]:!&n=^5Q18s+!Q"'k0^D@(`aVlk'k3oh<< %?d\^rOELb)X!R3_GB_C?PUstbk#k_%'\:Vc]cRYk=t^6]:,IqUo-X*tX^[bd:$bo7V#*7pBPauKMXV`ZJXaZ4sl,3N=Y&VrI>XRn%+4='8Ua>j;Va76n**.aL;Gi*P%5g9&o.ZdH1Z/SuT@C)P5gW]Cn#9n[3JLV:lYsHd] %Eu)TdBRk6c+Qp\gf0+3_J$n(m*,)eZj"qBicSG@SnJ?M#oG+n`74M;/XrM@+EQcT#'_IC/_?t^7C8]q\C][L=j0-Y'(`V>`(Y.+0 %ET6e6Ws3`YM-.H*Y6T9#RTHkme]9h)`60"2@cqu'2Q=1'S/cFC>L:[bOW.3_2gY.o47+K_"/s]g9WL>,#?]KFB)K#9Dnt`18JNRK %D_>>ANr"`/]cFb]hX@%*GV$o*L"W5CQ^65V0/>k-dYUkS3!h:/kSp8sEUIUd9.V1qd'ZaKd0dR6E$T"B&Fh=cgTBBf`UQrBr5hu] %1]<[n]oIHAEP1#C5?W6t-B;iQ_Ug\^dOW';L?hOFq&V'PGSA-9WTm6&c^Y=QY7DL8V?bb'"C\:B0Z\`\s#%rN5+AQsiOnk-OJ_X!goJIZ"O]U'r6?CO4N8%L %Nq_"X5h^sCf).`.&4i_QTZ+S<+],aeWVR1a!PLet[kkQ/l=tTpqn/(8D9C.W%"#3BCrlJK;COHO8;8*CjgG#@A=TTu %6lj7$I!6V`T7>-OPpMR`kl"&7rF$s"c %nZC,Fbo]2JJn:llb_e/,9!C]`6&Bq@9!C]`%oo^K@T4(%]`Afn=JDf808=sD>LMm*i[.9(P]62gMOjTZ>Pk/ln.(Kt:J\_K7A";J %a-Cf-.rK'K.Adb//&/(Z0"!El$1G]>)UmuQh+XuBemI=d2oWCoc>J!(pN-kD6Zg0PTb[5b+pLm:\4Mb-W\eF7(`d^,X5!r>IZ$gf?1e/H@$e^3Mjm@O2X+/a>lK;Ku"h6V+.k"q#^p4;Kl/c)Ugg&\dt&FQF8KZiY"rrC]?)'obLn,S=.K;ckeXjk%[5QE,GIhTMH7D_dZg0qer9l-(E0(0.?,E.k9&nj %e/>Ngo!al5J9X]M=g::krat`'%?K %C;Y`D/8cN:4m6?r/$o5*$-;=U?9`@ehO95(R/C^i(dNdJ^T`D6C)?L*Ak>cN*&uKd+M'cd5/CI1f``3k>]9gaDOKpX\a.XUY0L9,au3oNNj![neS# %=N6FXr1('OSdLPISL5`PVgAX,W%Ioe*^&P5/*KaXPV%0cT;&W);q1B>q@(BF?fb!2kCHDiO>Yhas$?s2kbbspjm+##f@b>B2S2o] %+d?bcEW/&W+/9tdd>KiX:Y^dTKLOV98ec:ZBo7Vk,gt$O;YQA,ZO_=5h\`T^ji6O:NXqlV_=BK[6,1Wd=`CBWhN8/V9N,L+1%s.r %0SJ@t'4-I(*ZGA[i3X01UUHD1iWR(`b8b3PE?eMWkP>0;^B2+-p3d3tJne?Q2"!GGjlC*E:%O#:es4a+0[1.-qo"=>RX_A%EIZ4D %HLCqsPEk9cc?fVQ>=ia^QlF!Rbmto[N+q)>#2;HnjLMR7f>ol&9m_Tf'f)9o<2Q;i\P70THa]2Cb\<_>RdLO/7q1R`%k)>WESkfOBYrKb,?L?iqUKaTV76d8g,[ %djsh?IC*V1MF^]of,**T:V2o=5.W*lMgTWj*C6aQ:6CZV]<=(HcEGF>mA7IJf'`i,Yl9K"4o=*&7[jML\DPHG5Wl1UrUET\hjahI %]sTf9o./P:3i(8/k\_ih)ODIdi0t#uic`[Am-O@Q&@R9&c:/C*Xs2NBU$fNlJd`O`DI:>^q6Rr,GS@\J=MM7?gFF[c+VV]bMYKM@U?DHBOSVm8P\"]*lrUX6Mh/U$KR:=&,,I`h3^c]a7L)_t`];F#W3SeTbIA:q[0rj$VeTT=42@4SL0b %PsFHC$d\@1@Sm873#5eEmN+MR(LtgGkO-a8DVLM+O0f>Dl3O/f$k9p6JY-C;Q@.#V4Md>21Sb.) %)ltK1TE%X!n[S\H9(jRg4`NUN7/I;=4.AK_)jkNq/qn_oOlSXF$JlRPobq8;bai8=qJIVI%JK++>nEk-k?H]OROD:4EJ]`C[+\N>MYW9>a?M35YoDj7U6e-f@ %aH0s'ANTY7]Q]_NVhLu&hB'7rb<>@TAJTV@QH>P?L0#$F-5."B3FU2msA?]6Om4^;*-,(nLXQjJ"V\TU=pS2agd&Z'PWQ.-(QT %7K\RkFhmpkd163aTd(_VqRP7Jcbp]*lmuM:2GIRpZ(pWfokLb<:"VI0ljf?+EQJ!gbmA:VEuap'%T]d7J9d/R*0/Dda*ij*CGekg %$oR$qcT.$_'F.tu%-BP;;]JWn/ESq[;]Jg-q4?WVQZt$`)dbJZ"JI%'(;+p0]#T\U%l1Cg`F"T`_=7Vo)Erc:*0_WPnc1!kZ6`PI %l'JYA@h52ZPgDGa)>Xa5b@[T7G^`?;V<7,"&']JJ.<=+qQKi+TGt[fNFP%%`J^a-7\5pPU:*AT;`nn)6-_UY-,]m=:kqCpqMoq)6u9X.>A7)Mm'ahHJ4?Cq&cf`pq'\)f5ZuC&aa8[WH<#q]1G9 %Xi$4H7f)X7'H'&u_.Rs!/j/cuph2uJVZDeD]`F11:89qjn6C;bo$Zm<2bm(L^'f&:`4OW5^dFgKS!6[l5DQLkg"Km$D,&cL;aCsF %kK.T5I(?cMTCB9u2;_#r2BV8FMO%l=U;'h/CqRENNiPYT=f(-f"K?F^2UKceS6J$l9[R=Xcpe42q$Zb;l[r"SmaXi@l69e>KY'aMnMt_CnGiN8B],?d1Vi6oP/EE=d#VsNGZu]a6U;f\=P^'p?JoBS?uo=Z>[6e %Y&h1R]@4/Xg!DG:>^CS^^eK;CD6KV8rFLo$NVp`K%ch>k?E;mbUR= %Yr[lXjMts4n5[@q-oTio!khCZ9C@7WlAW>DCrbSU=\50]>j]KNo\%KSL!?NGelu51>8YWq/j'/Aq[#iFZPuA5cb'.1>WO?E'g1A= %2O_MhfPPq6$D(_uOc^W$[@4rtr9,Abopmq,f#k&b#bt90:-_CMlp*V!SSOhG$MoV1h"t4Eo9=nMl%;T0#Y)N=Fu^K5.B=dsQSN,&XrEH[nKuc:5c54qu\Oh1[%+Dnj+gQ_Vkn,MbHh %2rKco82lUH9l2M+QYsh-U*nn(N]RU4k#&X>[td;]Gnb/=':Dt6R=nf:7h#D51NIVfA&DT^WT4gmkr)U2HQQ5(:"eoRP\q_dJJsem %Zg6[-^JTcDE%9hdnQm]^4%E-tiMOi;M5Atd[n%e"jpY7.;`-K/QXs)Q=5e=t[tHgi\a6/^8)XX^aJ8#)eY#Lu9[4fMH:LT9V%,]W[[Lq\^h>oFIG %$PorfdV!?4\TW;1[g:P`-Z/!+S+>]L(XDI9]ps9.<5bntDir'0*\3;N6lHk8J[e"A4l"k.fkP\o2ER%uAU0Y;g?_3Grl0&J2U-na %;Yr-^Y=[Jli!POt$Cu3,"Kp+V'la%'ONt1K=Tm;4Msop[E"Oe('6^>ZBOMPM#&UlrDZBROBmaRM)U;A%/0GiE$=Co6%Uiqo*U %!/10eS8%&*Wjt(B+/ui&q\ZZUPcAWpre)g_-^]ds9fgthS9,AIX/$EfHH^$MaY)bPZO#'V'*'lmf,`nSK`d$+e8d],4*5Qd/Wbtj %1tF]+nE(ajN'Rg=>)ZuinTWDj-L.;"(;lIB.hF^Q&DAl0K["."k(?eL%@ch[*rYn^glrEIdp>IXab(V'bS,`q[.,h;iJuW)T"Mb2h7*dj %Q!#:W7c,t4A`/6-g+]8Tm6VsOXLqaXoEAUq5fr**f^QD&`)jEd,:+RZ3`A_KL[jY?YMHpq)MmtI)>_qOjVE5pk3-Qkaic1 %n-Lab<@VBq_'`Sm*]im:A.etR5/G_2!:Kc9#+rQ:A^L[Rn>V94r4rT0oJZLfK28]iKq*BNnZis9n-NG%fP)FWQ4g+_K29HMMud_P>g!buPT]q3,kse'MO*06*lk3>4sft\f\!CUi.=bW`IkMI5mEtN %&Vp6cTYW"'DZ_:,B^eT!>IqB-=H-f)eq7WTmnTNak%4 %\=AX9NiD+6[lBs&MVIY/e.QptRpl9f_K$^Kf(?Y[C4E'Y1[Oh@2sO5$A>r'SqtXBVH=Q(=`RM/<3eJApiIYf9dKK[W %+$EPm_[]_U(q(^#On786,jE>[4Y,\0mVLmZ4D[Qj_FMFQ(W(dXK5oos1HkdGkM*Cj^3e92pV(^Jd1[5JOW %oM%>aY@r2E9[q'tIT'70lYK)R-Qb5<^DE`cfo?Gl%e@]!9^O6]iqQmLa0U*m\gL`6g+`R@.RjU %dU8h_IY\r?k\pusb`C0%aUm'3ao$[=/-&q-"kJ4lr'B6ZPS$VY*5pBCh`psAHSNQ),]kA[)H!'8UVAD=Du<"8O8d-i!O6e?edcYb %AGr>(MHLSk>0G[mU^"H@O5d\WLB"A[bj_qo+TAi)AJ6'`>M"jc[q4NDh9r__C/T[igkXomP8`fI5'AIYJ#!:\;j66oJ:M!@[]DPQ %?c%9k+9?bA\TONMY/.(I;FfE8Y8#NM&OH#jc;2S)UJL&W;LWRg">\Z %qtA(H$?jf?a4_U?.@Wb]S:a&o5c?$,ojK`J24FFP[$]Aca74<_3S+0hki8G:LL'>/4#6]n%d0gB@&mV=57W)WQ`AYq)[_)Maj3<( %/%0h0Q+aLTOe5'i0#O=,>%t#\-^G8[QV$Aj!Kd`]ZPZX`0gj*5PN=_SmgQaGIhZ02k_PI5tS57?V7,r+L'J,fF*:86$ro- %Zq;WAam[9/'ffU>XNRCGXiF[Z9n-$tlh2DT,?4SK-*"i39=POccmu\`[Q[kI4ej:s"41i]p5.dA,;=; %Y^Xu\i*.u,ErNWP;jX;L;_D4]F3:3:6Hrj^FNPo+B)J\U`qaa[nb!JUgROdSL0(a/4dbfMH0#g3EgQ;Wf\hKL_Nm``Elr-E8R8B8 %VjofOFK]KQm?GMhMe.%5^7B9u'd`PSHZmO\lS3%U*._%kESYt[[XN,b2gfYD\IVi/rHaoNYL%9lb(d[@'0\O%O9!jRbRcDD;XJOQ %2c=k&Pe4(/K:4eQ@YI]1RJ-[jC3UF!B6k"I/=T5p/GE69$[aL0>HC\s;o2?@^qb>qjT&)pCnVgi2bK>)rT %cXj'V.Wg53Duob1Hq%fIXd"4r[WP^QG=r9bJObu@V#gI5o/VF2k#3Xd4JL!qs/jO1h+!bPuDuo#M]p#6`_$.t&XGSV1Oe\ZZ`7RO.'6PTmPCa0%h?uod[(@%[s8M.O_$.'pG<:`C %bREiB)STta*]#24_iBF8k&qm6M/4e#4t7nKqjEJ<>It$-p=$B$cho8(0hq %Z>n1;gmT=Z&gSoPkS\W9Vj]8I:+q5>NI-Ne4Y)-rP*V)S30RM+B\]LX*2=L5q[+?eiQ-'s4g]n-78,_1dYG4gk><4bd%XIkdCg'c,+^M;jJULQ*^UYSibOn%XKgZ`gh*CKSCU7A"<+7MU8^SM<@+NK$aOg`r<9P?i'h_O1^jr %MV-_45*0Tf#gP::ZiG2S02tqmqcf<:ngc5l2%=k4>#e:1IgF/]]%FST8IGFf9G[J9Rl1E5?K1)E\-$H11WREB2M;+;bMEloi`?ec %_@__U=5>qTWp06>3$-o"jW;q?A/='of>5[nAMAb_0eX(?Wkf,9=*fH8:^q$pDFruXFnEiiKOs<1=s#_Pc6/'80rZr+$m/ %BnES5]ZJ5":7<:VK+egWE>agG)'e%e,>NP+Q?aH3L1QH=U5@'<%*N=p=!%RQjc2-!_0U[Hd5fL&VaTi2F)mccF=_s]ECTkcd35A= %N\c\+":O-L=mmXfUGNis/AR(kF%5UXj#hS3kd>t.#%L5;ZdT+n,*a=Bc0d*;It]JFbtdQ`-aH6')gPNiaMnp6)382DNaJY_9lV&3 %@2V-SUh;BNUY/?,(1[GXEt$4plF59eApPhkDnDZ8=@VC#P/_&qL1MKq64oRS(m`SFQ:,^1O'roAQ=ico`a`*ThdKWfL8U7WT0'`FV/dAUldgEmkB75PH3cdEZqr[+n<3LQZq,r^Qj7TC_XfNf3WfPk=i@c[?mJ.-^J?kXStW7e_@4=D$Gsr>l&5, %'^i+uNXrY`([i'3D_0P8h^E>c/_`rC:!p.(/4[rR^VITjf8G*Q'lbS:Pc$CkNB/3ldF!bNV:!RW_#\9&plH\(CHZqppNGK)1PM`F %,kF,>G2,-!Gl&or+"2`:7("X9hJ_ffk-5oP"DN)f>Iuc)U0g#I6['C@7DF=h<]#??Mo0HNh0O,=8?@=''/-V6*Cd:?Ls-=E$+YOJ %MOL8[IIr)sWG&+NXWXTfQp[=5T:oV_BCN*Xa2V-uaQc>ZZB[nWTe[th3GrrSh3)6J6[0RtY8lAsEc'uQ2t>*Y.%-1ti?3BS"'-3@q]/5$BO_P`pH+o&2r*p-Q44=nJHSukJ/9,s&_1;CF&!1VC\Kl.UG%sU?HD*HXLf1BTC[clue;Q %'eGY/iV=As:6C.<@GJiLg^h$7oY,X?.LS,)0m\%HIqs5X[2p)Fh2T`\CflB+D#O($G4;CdC%`caLE4+X:TE,e]dqSBha9WT%$8F0 %;83hoMf-1.mj([]cm&I'$bp-Kfk!q0lPkV6B>iYeh'bZ2&'la#VRKt!2=NKcJlJs2WnQ'S=dGn!\ %X"S,8#?m]6J8a:2c^2\XZM&PB_e28KV3#l1.n[8mQ#40I6*$TT$MrZs#F:(-8QYb57GEN[[eGGS'&J%'Mldt&3gIjlE([t=VBtjr %V'u2FQd']Nd$d>a4Dr?8a)Cb9rP0UT9\HnjVQagT8qRlh8YLi;a?l/: %5S#HB65FTJTnQIe6KkWF">-E9(?26Z(MFs,Z;AZ#H@Qc/+Uc]*mqm#2AK\tF2m9@"`!0,4S9]]%3Z:Ps2e'Mm1[C7JuJFO-lI-?"B"W';)46:%!9r*+*"sFa1gE^Jh2TP=9/$.(1\T` %qA,cY).E3u+s6g:^T?c9a",h\iSqC%Hcg4A.RIrL4RMJuTjO@`F(Oau.l4-FGPD\Hmrt25D!X+/O.$/n<)a=QrDT)&kgB[ZV@-MJ %-9/I8ZfqN\7itri@Q0\fCB^U$YBf]dRf^cF?Zp>!jnl(_3mlgXnAVK9_DttgJUlmfAcn=*>d^\(qE*c,%;,[7&6RCtB#gH.BSE&a %-mjTUPN9/',klBZRqqlig\>o',oi9=;d*a6h7FRc!O84$F^^q_P]f/[R?2S %3s#1)CPeCF=Ht):qsf0Cq>Y."s3]t#C%J1Y-oK>hSS!KBamM9Tik!Wuh_g)-iN)24L;WPgPC'#"jnU=CO(A#Z*86j,;IrhP0MZr %LR*BZH\n(hYo^#`bgJ0^mU:U)FF1RL_+_qV#(3)Nn1`]N8WgEYY4>:HP]5I$iE!MjVLffG9@+.5IPA\r4S7$-dJmfFD-ZrJ'<.GQ %XU7Y=&Re=\FFLL:g0I9-i0dm[^!oCTS^Ztm:AO!2d@jc.G-QrjWSV*cpf@Da %MXT,6=N@^SCtJS:/qI(:TIXGSc!j]ANipkp=!$:b/[Tg:j0%^QY$>ba'hi=:%relU!,-XdOT4&6CM$/>3VTt86UHK$SsSG]qSX)] %c\r<1B3AOJAeo]%lK5Kd8PC:)E>^VZVTPI)F`ES$DrW\nks@i_lC?Q[A:4+rlZtkIa>t6o:C2Xs\g4-/rj8E7E`hXQ(RirsW;bA) %17^cCkUe]+IQVaL>FF9or6f77h@^n$YAK=Z*0(OHc#;IN+@,OBY#C2?a,M(o]k"$d>t8'Oh9&jnJW>rTb&MN';1(.q[@#PkSqIg: %>=SS5[4MFZU`Z?U3g1A#1j7nB.>ps=O1lL-)3s=acqk56%(s?.%Um56FXC %Y39hWTs!WdZdm"$12(<5j%ts\pelJ,03)k<^mE2`EAPhD!+2J4V%`^R$%."<21[CkeAnO-p_']mS^<_;_3`%&oJ[p0`Rt?".G:IL %(VuI::XuDB7L/Y37R^s%5O9eE<^4OHIY)`'#0_P?Lfg>DqdK3aU0c`s6V$#Q>_7jdDnd3'c0U3I^F.u--%!E:AJ.0<.GSR\lt>"; %j\/sq>WAT1_G3IkIt_nCiak"QcPO#p:-3&P\8LZ1F6(RE/f];USCID?,dkF_pm*R(Ob69`0p/+:&Vib@qbnMDKOY+ro+R\:']=1` %ZmNW$h)$^L>m)cXY=u6*mbiQh=$2JRQ4CJURp$2>_KD0_%,?o9Q)k$k2TH>+^NX?K/r*ZeN*3hD1.@<*UXN%2?H\6QSCKCCrL\<2 %%CpR[`l`;8!&9r0oMmL0NZ-NW*US#u;1F(/D)Ug+_RK@YagLT\N4Z_UlYU"=]@MEbjma)Qkl&"od_=X5WAj-T6XYO5SHRW!m!o7RLmQa'^3;I5dX:2\hFa@OPp#FkT\Xo0/g?eu` %g40[hP$LV6QrS"\T/hcYhMO6Su/3\(M5Qom*.cONqb53na,sL3.T+1_k/'hUp(jJAtNsi$QhDiWD0Fe>kXc2m2sZ(kc0I %!4]pkpZmr;hi(:WVKQbhZbN`I0`10K;\.*$Q.oegf.CG)hd4=g&5sLan3jQ-REQCV8s0K$I5T4/:dRYMMY#FUNao:d%1ct^8T_(` %[DY&>/h]]'=rm5=?hTTTgWEZn>NfdN[,$+e`VJreER$mSW3gRR`QkuoCD %N?7M3qIWFX^pq!C([T0,geWmB0?J#!XD_@[m0_ZDT$PuP-fd_mkmH6Y\mL!5Mg)%\S!Spqga%NYG_3i$B=;JN13r4IrQi`GjHORN'5,KVaC_QQ>3&P]9+#AK5D5K&"C"&G&X]8X&W)C %`<23.V):"3W2kV1#2D/X1B`.gikEg.X9$(i&9oXa&&=hb %*Lk[YkkPi2s')CNcfkm.rqCb1gIoqc##[`K0:,I'(GO\cD\Vuq9%5-UiS".B0A(2Zmmf_.3prWX(Jfu9\*s6Oa>K#Q3Cr>Ae@fluLU:#a!8]PF,oF[03al6fYF'k8/q1q1`2DJ/AfEp%Pp46R\3`GCTU3dNNaQt55H'RH7,&e %8M7,p+B(A1_3*:P3KqF`]K&%!hId$q;(@n$[*j/T%>=ukMdo4.C?HF5c:,s:rg5__i/lb/L-8FgVU3>8+rqB/)%ZXa.$G` %/j"/"NHSK"3@n7C2MGijNF_[?D?-7*UD_nA0o&LZqF36-^!_(ed8+EEKU9!.N1P`9l?dZMiVAne5[P-A%F<@BB"k^L8`nAqB"[!11pTYj'$EA#,@&*i..\P<\YXep+<5@k:+H[!JVuTFP:o"0dLS<$\h5O)o_K-m0=D2r/;4k?/ %(7rB=-DBDo@Gud?,bs>o@Gq7WJ;ddsLP:MQN/2.lITUi^WC"`"VJ"k-4?_;cSqRF8A7D^NB,2O6\]AH/ITUi.F[8R9ZX_r//dA

t.e6 %G8ks^;FdnG^(qJd"/AI!h0nU'bT"$a$gbQNE`fKRKZ=bb!.Dpmac&QbLu[Gg%r*b]<`0tALqj=2M@d>3]bC#\fFtS^p0H7J:^H>" %3B4YlI^#4.@fbNTjp;;4(]pifAE^^*HE71dgL9Oka-5KL%YSS+=s$cY?_[q@E'm.Q0>NSJKn*2r:+ug*-j2n4g^6EA7Nia?9dkZ^ %e\*,rIri7I%"TQ/J`A=9">Tfng6-&dO5hWK$K:&9issSt:BuQj.@DdKDA7_FL62`6%&l9$o<1,u,N%ups6XZ(MFXiWMXCIfEs4B%SCb)r).Rhg5Ve]Ha3['JUtO!J4?tmosJD6P'i$_2!:/1 %58V5d"Rs.``;KZ)`9ND>0&7s[oraVk2ug]-/'Z9pIb^HCTP%-lAM3&#&h5!%.^S7%',I6p`nptk!dTWquRu,c!;"O_^_.bpRgKkh/W1Tlhul*m\1L:`DF2o&-$_+Z#nc0SRZcsNGe_: %>jDcs:[Y_SRmn4)f'7TE3(7V:Rtq[AlujN@0UXcCKi`[T9K"0OcOO0C=>=.:IG2H0@X%$/I(8c$0(N.TXs%"D1>qtLkU/fp,_iB\ %,.Gb498Z:)iO.g(!prP/E^]OK,'VBQhAc3@HD:PT/YQl5)O1/RS?%0&KDN-pGt#DDJ_olZfnt+A+dpc:Qr%^t%h%YsGSGoZiUKt$ %M)rJ71jL6`]WFaobPM"Q?``2$&o`.?Z@p7Z`W1nJW0f0s9mp&?;;ULSDotiDElqT:Jel2MK$aOg`ot`s\10X44A*V_OjNMaH.-;B %F%cBqZ;HW#RZ(Q+JBa$iG=?d/^TrFn7-Lt%6WI?W[e9`rr?9BiPf1p?&k:b]EI@B-Zlp=Z&hiFg*T;#:qoj%@j!m7(TZ!D.OU^5C %IsZ?W%c,:h*_^B*Q8b`6=V-qHRVd7=Up`@MclTFY%e#F@QdC&bh8'SXc0gPHhMe)C$mpR(;QAt!e_j75W`_k7bUDlh3_D:.?j<(j %BIVL(N,!aR:f==X#;Z^rLQ58,0pkfUeM%Z7V,Yo"WjS^B$;*0=URL6-.Fn'LC?=Y@;l[f=K?maMeb"f8ZlZ!><7?ge?]:67J$OO.;QAt! %eM+,&V,Yo"Wo7hec'5);<+FoE-)I'%;2maI25Qbu@Knp`hYVIe/S=LRo[:39a/I#G%SB>NrCk5@*[@L\do-h9M+gRAVOtt7B*/nPAr].V7MIhHeS"'-W=(_XoTLAFu$QT06.V+gW;!0 %mj\RYS"4B^\.XDhrZVSu[@N9:""CFI?7E.`PG'ecL4d:q:<&k.DJ(?7?A/Om!c&,EBi/EBC+73H4[>?k;K;tdM<@_qW%]F,%&!hhPS3b\/>PpSa6&hnA!``aqX:;0Jc:.o9\oYGk5ugj7WmNih%95OrmMg4#h+=/>8p:OjG>oZc %T@+_]7DS^Ph6F*;WCYJ&1A[MGgH!t^]QB1GE]oAQLAg`"&d,$pdCd9,/0J:K&]t10Lbq5VR=PeelYaU$Ob2bL&`JD.@e,X\ME?5th^+j&i@89EgS>"1>Lc4r(63oKuR0-_BqT+>Y_fBU'R^@4\KlnHgr,\Sg)kmUbg %"dVX+QZhT!:fFCYV__BR=R]$SUm,V]c:m.#[pb`N.,.MnFQOk=;Eem=iKK=u3WGh/@h#Kh]cB1%\ZS""Xs%[c8B.mZ^`Ve<<7$tJ %Ul0ID2./Jnn*MbC6C.%5>I!Lb6p7+lL@CP4h$#FopR8c+K'A6VKVZ]es%OE/(-6UuhD_E"Q_WR$;J8YH&%&,e+$Xih1W95NVSA5* %b+U'4al'[f1b.8_.AeQRqAj(IL;Ip7kunb[9#$kJ+9:1C:'TNIG72:*gTb,u,g(1XM9)B:76?@D/JU:llV0)(m>.mFF312q_6h3) %.n-_]_*lWm.n-_]60_HQiSE<2;fVjdDKW0JQ?mmq[VO_=)ffYPs25/gI'8R,n5a4c3Z27PbQ8d/Tj3:h1`@ %;A%8qfo3kX5hLL"B1EhX$/pZ.Ki_Q)I.'0H7iI:/KeS7AjMK5O>'98BJf`95H1$KMhOeE1n*3\G=kkI@2lf,0p>T/!;p)Z0aXO-2 %f:l9m_llQM)aWTkkt8hB:Xh;oF0j$@5Ba6:m7(r9V\hsiJ;qYUMVWo+-Re#F:fL'o+oS\l-ZldLM:Y7M]-qr"W;1<3\/@A+c&ukg %ls0-^PR?K;A$O)nEF=']s51c'\jqK40sPSV@9*ghS\d]\(a&+TL5#&'$(U1'\Q5g+0WS03^/acFGiuZV0J%kn %L3"X^/.`^^]n(olYj,3[IXkiM;dq/ZYRlg%@Ds$n=@dY9";qul;'CX;&R\^3>q+H[Khc#!=(bX'W[,,[:Sm$A(jgS/6gCH/nV4sO %X;TT\Pdl;8]D!]sRI\ji_i`c>PL$B@<_=5Y^<`2]l*f()SA-0_&Oudf;"OA0k,8`K/e]dI-[8kA&;P?AosHm3\DH %UC_+mO=c-$E>!afs&?236U8/9)'?3[O^n/Wb9XBL+$#(:d+Zo"IaljRJ:7dUMS$clps5%@%Ea8$j)/u4+9d\!_YqRB5mgIF7Y0S%!@_,)$AKm.Q66@S96#>%+9`-B!F>RgJ/"_iN.U?)dm4=cqp#]S/o!b(;n-ct)/sa% %34kc+<`9g*!!eNG=p>uG;VbD,QH1]@.X]ab3+"e`S&Kj5]]7E\4q"]ZOeWP[mp#X2m^`5gN*J>,c96CMWG?$oc96C/*rIOZpB2JF %P/4^'fJkCMS9t'm`(R,dJAl<@!`Ym7`2Cfdn'p<]9;gD%d!&'k^.PUC+'NW&?<+%Cr %o\Em%me,N6ZLEb?c,"N];L]A+rnu7.5r4&3s1-cABUr2cS*K%=:p24C66#mE!1h66TBjcE;V8EJXFi:i=Us0jEU=e4 %!;Ebic^CXW)%H6i,<]Uf/71Jt^qZ$#`j2@]m+j'%PM@2@L9N,+"-MHO?10s8LcA:^kb %?g2$`1TH[`Y.rWRJCDr-^%bhr,NF3t$FcT?q90p5QBR54N^OjVqM%I@g?[pce4Qbju]EqL.@NV<9Y!o_V&& %(E[;RZL@D_lAm[olDJS/[[9868WQi2#kJhNH\+1p?V0J?Ie]u$q9uC^qfCEUCP(R#bhi]sk!fIXL->H:Xqpl)D2<;Xn.!)PMB0(_ %nU<4m:*r&6sd"]\`b#9fb&*D;=0+]@L#dUHTKX;aci/)j6cCTYFUj1lJC0nJ0]nN_GQ>2qu-Cp!Bk %[G9Mfh\Lam+qGrlNZ?o)9#:gj,[SXD\eKG)\RRGbj`ntif4Nrf$MK@3T7JYA>\.pQFBOW)UbL;6-O\?nhCmf: %$LdX>m!SSQ7@S]9BU"7SjK@"d4?\;2,9Zs`<"id$=[K9^?4:9*,;8]8`hLg%2mV^;=r7\@=tbJU%s9AeET_srhZL&irRH3+m!IZ] %hM8(rol7_+&`2s\(1O(F@VES&n+o9eTS%LBKO(j9qsNo8-XIaOG-Q?04#\5`./AlBNjNNpn-5F0Yn5\o$W?qN-)^`\A2gPGj]*LY %Fh#YqfEmE70%.ht+fu3u;/'s9moJI+U&R#%E]gq;pI(4]4e"f:s._0RMPgV<*/`?B%g!!R]_75+Y6V%>k?##`"fI5s%!(QiY&7DP %o95-g'"_B=*kH[TP3@G(9B_-$4&g:\Pc8&4<`0[qc.a(LXtfc'$lsc]CCFuZW[l;R35+YsUVF[]T<)@/%B6ohLSd)WpUT[nSkP+\-2P)/7 %ipX^`TI&3]^In@?%tA)]3I(J0V;$pcg>_.R&pZ%Jf6X/;IKJjGAcWUdp^'tmX9'f1)12"Z\@[ceB'djN4.km'3T>:#j(X>Sd1f+j %L,Es#+:+A4G\&MrW]FCZ0L35[p=4iXY)^P#$7^uV?/@e*0=aL@%QEM2H*n)kW5UroXmAj6YlKlebPdG %pZWrh*0;*jTG.#WUU'0gc=QnYEqj:R!c&.%9*q9o;39=;Y/kJbr^IOmMj-YgZJW,N$S^Z'WL_'D-g[)po6bmFaJO!bC=F %nWM&XZ%bRQU>ll4MPUPujlC+0l$dPq4oAG2?IAIqD\5(p#m'@j4MKR.Z$`_Tq%rS,$i^p"H$@Z2os0`jNO\.r;O=@)O"'9b17+uP %a&I7)r=:Y`b.Yi3[kO2FhFFVdNmG*gVg!iQ_>*cn_,N]NB#UB?M`:'>HY\g^6Y$ba\COiI]D#BKjd^)sIpoIF]XaDVHVBR<=V3Q< %f&f2BOf[\hhD2K'hoClTmp1^L7pEBV<]h)2Rh#L(Wl(&HQ`K:l!G2?rckk\hRc74t^[p`(h)1-s(VeJ&Fr?V(=5W\3h/[8uUrmPI %>PUo(ej&Ic$,EOue*BZ5LbZ*92UTu]d*8q%gT+Ph]mdVt%Z](J`W.$`b9PK'aS<]-*VdS<0[=7@fbSKh!='7q%GDH/YhA^J+bX:#.#:69A^6T(\#`%#H80g2Z]r@:/6@4[o6.LV]U %2;,XQ%bH.05T%\!]5m(I%YV+F@#W2t=!3GT>X*-&VFOfg>+snKG/h5%_Y#F,(^%!l.BYo8*i1J16b:^FHAnqMXM0sE=cMPe+;T+4 %iG^pTW7$%_(qT=F8;$%i^mCkZ5s/j_4JmG_`UOD0J0"/22Q\,_\",jHW6ZpR$<)2Ec=3HCZHo9*U2G5DI5jRk5p[;cNnCLEEG>qd7Cb._X6#O\/E`&,gsr4E)TYK`6uo*E!*j$Kllo7gc-AOe[@g'hqninFRpX1*foo(A*Y4fFE8+5cSJ)M %#"mZLadW2u$%s78AR_*KZjO94nK>jAXAb.&hkHuS.D13'_N!U?]n#al:%.4`P]#*XAP9e7_T`;%iMO!_XR6I8_.KOkp/d^!%EJ+K-q$o3S^A^c:Ap-6Oa\bQ@/f%;S1"0K9[0J0 %B;"+iFL[7]XW4.AH4qYBQT:kuD?]ZRhc"KUVm)*;(B*=Ko/HSmL;aGdm*[Y@6dJ@;9t,!u.3g_12b7)mp$A<6FF,J*+T6K1"5tlLmgZ)?l-Zr!<4'h;]"GT.Mm!IaB[@PIo^ABj"UY]m5LA4,M!m#+r.4:m,tN$] %n-@s!?ll9RW3r82rSYN:X8>017U700Vbq(sb4%EEYNX076 %c;E/44@ %Ddhh=7-%GW4%EFD5WE:.OditUK<8fphNVY'lP>r[r!5AS=U1O)B#;i3@`[_#c;D@'$+jR=M&]])YS22$=gt`&G^eGH$%i[N4sqAU %'6]DA:/S3RKUkQ_M3H)#"j`l%hF6(V+-8[EQ]cm`<4SO$X)1GgGGa:\8>u/VoY9DAb.4/N5dQ:g4iP'f;XCFK1`'k-%Mo?jEKUWN %n8o,.^5_`lZIfb5.rmfN;dGosfnND+YA!ZVT_N>1d<8uc7G@42KiW/"aT[YPXR:\hIL)NG_4j!,F2b5\cI#%@=0Sd+l5WOj*)C.@ %2amUXJ2b!Gg`GXt&9srq\4LudS:EQo:pfiM#Xp+FPu,,"?44`YZ.i)sQ>Zc9jq.Ll=?#cgqA?.j#Oo?fguDA04q_ba$A""n5% %#QFEn@HPM7nI,#$CGIHZmt^DaXoOS_$q2g-RbI3Ni>7#oV'b*tn$$[NIfB>JRfrfkJ#jTcS6WYX]?Z:X^O*"IY\r<-CIW='M'R\D %_[9&th45kOSKnhPj+ph^IRk[J*8-#ldQ*:b23cj%12#N4A&58T>rE %oe$&!-/.)MSQ2`a-QY3t)Qp`$8"[-g\p*,&ZpsoLo\n]H>eb7&W8^$TO7X;[U_i-_bU-4>f[^iC&dG %.9A)\&_OSbhB5+q]>?:H4PT8+^c+^`'VWL&SB,_f1H,G/oC5o1geY,@2\j%r=?=aKQ/bP@$1ltZ<2'RhXdJ6_O4MiuE5trZ?E(\h6L4X:&Bdn%l]j##+&&2+pX1!AbM<1mH$+\D,'j\>R"X.[E0C"&impZ^;u+#!@4NV;Gul3Tl'-[Ut>4aGqUX5aXg6a"I3"?Cbb'T8W,h70UVC(I93f3b4k %jt#m&*MN-<"1VYQ*^*E/*6H1KjXj\bp7hMKg!%nrIA+c6bCF %kAO^U'K*TA9R?7a"`!k\$i[JJ%j):N8-&0$TZ"ioYC*m+o:#R;`kC]tn\)-qP3k`O'RArt=.^dK`77qmI"!%'>(2orIaSJE"Z&V, %NE=@(\Wr5k4%SJJHK.`ob0;B[omRShG&egT6?Shi;:j*^<9WXd.1tp*-'7iS+i`$\56t'H':?Wpft7/+%eR(`A/HUr_m;)c'dC=f %B5)gCGk:Bbe?eDnI!ju?.H'mg)1$F3IeaFHrcY,Ri,#&/73"Y/nSSEU'?)-e*aFdJG2N1`HLZH3IM4,e#E\V>?VDDL*qe[pm6n$? %]Dif3[o"S_m-R_C[u`DYoZWP"p+8cf]fTejASG`$OB!(VbQOT=YJ#rqeH,dOcV65C %,#oZ@6Werq`h% %TUkRFr0>Kin,;Xmci3MG@UK0&b(G3CX/)&X>LD?"3H/_93\O^G\c"+$?iTrm]^r-F6EEV7e]GMiMbC-F8!obK"lN(I8qU36*V\4c0>X8u1V.P)GFk^u2MEs\ %KI!ZG7;E=(rXHA>4'85^`2LS %rh6XC&1@q^rn:1O?Xe8]s1BSjqb<#FN7\M"r`r<>H4=OZpGNMIqfOkuDr$[M,Pq.IEf/lR=UNn&X`/bRn'>HnbMFGIqWfA=c/&*Z %3/LjZY3NNO+2%?rh:HRM6_3BT:lB3sA_VKSjK)C/k\:'m(=*URMh_TKipEem]cl7HAD\\>JVMP_Ms[6SjK-prljMVoB=4=A,MuiH %3NElDn``iTV[0m4,%n=UWr+3K>NDkdgakE$h%[VFo1U=Y2:TN-*Q.E`U@V5Mh7kN1AGhd_Bb# %GN>ikQTiSBgF7/Db;UWaJaXF9X#3TM::sB`XHo2:C#Vq_e%[d,rVRS9E.&sD[Cl,da3XibZ-3>JbaPedjK,P?h-SHV,A/UChs[Bp %S_H%Xh(I-PYOgA4tqFHhI7a>aol(`(J2fdK4ge[5\B=6#tr@Y'>jK)D;X:(A@ %8'Ykgc,/8DI3WC4ib$T=kH9rR>(a^o2LQf_[?S%3\*OtmX/2V#G)!_nZW]s>aiRg5B=3u2,[9[K3U=-uMHkSkh1'p'o?K/c^Z/>7 %L]=W_PDi63puhoA3iRLmIX:b/?f->"hs+Rj6/oRnpYWRTO4V)r2uO?cie>/'!K)&KH?]#WkP*j2k4XSF:NjUu2SV^7JbK+hO7p]] %5fZ(*c19s(2h$/AkC;JYr&;]Mq!*(sPm?qq[/tp's6U'=SYP`?[r=&;U&LB;If/`u(n!F%S+4lbc[rh'`IF%\!!WP83kkJ?berp] %qXqBX50nu09uO3JorEQ%a0.^O/=XaCam\r0:]CnppZoT/I.tW"58P--=5UU`qA2**Hhd<"C]F>3Q1(p6HgogU\CoDDfX7?an`bP@ %T)SB2CCbpon:f):T=qDPK?NLcCiZ\(n^3iP#C@n+UqD$8o,k.8](tHK2nsY<=dT*Wh>pL7QZ''UqWt8d_fC8#+gj\>Pf:1QpD<_T %)t1H2q;YVJX66+5X"*#@nQXcmmsX`rK5%1^r$=,cp\s]pNYeb+ZZ%qnhRNHTgN(0FHj,hsL!*DE[pFT'*a^$rH2798&1Dnorpn;% %oIY"t?i?:7J+(]b@6Zp'f7/5:XZ*/iX62.$Ns(dCqU`i3+]f?GIIRtsWk/H^@LdEI39%Z %h^aV+iKF*)b(%*c*u(s+.tIWdQYR[knB/MLs7GDCT9\YcmJ/7cIKNjOe%kFY5i/[DnB\/=gj^?8^OChVnZVg3^\P:KH1/VHk[sh< %N=Tsfg&D8uqA6BLT%dNMkUZPNeW4X]pTJ?S]lWRa+s8Ml&It)Ft[5Y;Fqdeb-dWc7K7`+t0iDS6#'K,`5,69P2ED:fI# %6t>^BDnPW-]C12pop("hrc;7Mq=qtUO5Kd2`nf6QJ%=Z3Me@P7l%NpQ]^t/1?6Ps.WQ*LX=MB7)%NaN[4T+lidci;1f.VXBh5Pi$ %;uH`9Z16AbO.L#XTgEEXIXZ>&qW\agftGX7`D?ljknO`AjLq&7YIseNDtts@]CGhA07N`Z$dX:s2SS:pfCM3he9>ferpBSiR"klg %J&f>?q;A/Pm_YCb58Gl;d]m,ns!B\P %4Idbkg\Yp%o@55',J3c'lkT&>+9-fWO#N^2d6GAAWqtnJ7%J8Qrooc]d)TZG7tThL"RdkbhD(YNUa@b!jtr9"t8P-eCNjO8]/Mr!cXDCB&N9?GsnHA6)Y$42c@ %Gkf^JW2ICqXIn+Jrs]+/f<<'VJ,&p&44)XOcdF.irRm6=^'gsc_^I>""kQ!iBQ&=rqn'eOhL=iVT8f&1&0uB5-0r%S\GG$h#QOSR %6eKNS))O!RIdQ^hJ%pmU"t#6R.F?4$]TmQI?&kM.o#3imL,8Phc+h#$ImI*/O-]#U?1^;WlPEWPs7)ulolU\dB(G&K2r8uAc6MV$ %qrQkaE'V-ds(Bgos'X:!J%P41X3Ws*6,l_n+$]AG=)\"Uo@@t:2hd$:INSC/k+Mj2qHlHo^\cm<8+?`)s8K2lDdNG+h3VLJi;2K[ %.=tF5rr0M+m-PbLr-J6>rRs1Q_[MSJh7EI9O.SNUc$/XT"0Vl7]_9IlBC@1e %qqTp57"]9X#X;Bt^A64?Du=kY]74?US[TOJ=s&k;"[2jtE/C09-3 %SDN/Ge'\3aoa@t=Ap[%(gG^4%s2bfOkKc(.hKaMKLBi<8\9&%=O+6rrnS_OFgqNd*:Nmms^AXZGrjX('`rD%f5Q%\m(PVJtV(qIt %6$2_SL$,H%7 %LlJ)HZ;iJ1b?qVN+^`V2$7p%)sYgiX^B&P%@3a=S1:iZ$%2ui[3LJK">rt)&E`8A;Bs2-o/^Am0l_!b`3(LR%6c\I#J %c\/rOiBk'Lr8ijG5/6UO"o>7f0A$EcHBjdLh&`W*e*jC29=O;iosAN:f(6_q#I$FE:L-\cnfGfKNnnN4HoBif\"u0peX4b7D97fT %M2lG4455(/cGraB.u)uQ\gY5\K+V#@q6JQ[;B*I!9nd=@=Q:Bo]S/7I>$-$l@,-N"ASur2Fs"'2$PqJS7_equbt16;l^YXKgQN!> %h8_,8:1m%Q44(QH]qQT<#od@o5i/hniWm7=#&,[kG7%(U<]GA%=JLCGCYG:b_R?lr0Qb30VrXMjLmAh1-u7ehU)ET_)$KXjs)>\p %`lM^-c3-jpQQFF1SgNb3'UBXb_V$Uk'g+kP?21o]+$;1\j$r8#1626m]+9A%q#'gNfC"0>numguIZ$WJo-9>#Jhmo0>P`XaP.*9S %%Z\6m+q@Q]^ba4l:p"[OGZd&:+Ntg"/Sm';pk4][,rJ^+IAW'/`@Z:ts1K1+!(f$\(Y4T8[CE;YPV?=iAa%3N$KD.A.=dd2S.L== %`lCrnk-HOu*01Xa3l44Q0Lr#F\hELI!5H&T]<"dB'(BVZ*Wpk0V%MBen!W'!Eb7pmpUdFEW]2&Q)(p]RNU87"UQW;&dMFo_67:5D\rBK.C\#?pmjnF.H) %f5-$T/Sq0/^_,6f3%UP\5Sub:7o!FDK[`h8FS]PC":f,;UT"!Ae?JbUneId)72__21iQ'7642A118p()aO03;)cV\)^a<1LN:?F& %3T3a9e=eL#d(X<_1t:4WfS%nZ8aO>AoG@e&R@6i@QqSWZ23DN"B*b>f2S*4cBFp9CYmG,qO;\i`2BdW=$m#Q"dpWnD,hV=DB""oM %@*?@&m3jJK;3fCRU=I*mq1Lu%"_dSGl4GJDk%mA:O9g!rafl'kO>'_cC]^`E6'1qLfE<_IfL2KcP@>14pjfY9e9jSDQsM)g@JE6) %SPt!gB>l7@#^L,Bm[egCT1oAn+DgF/7/Lp0.mYJjX%i=9k`lj)ld5',FP8-%r8m"=qXi7&,?H+@9?2$0LlD;T,SQg*=3kpm3^@K\;/hHRA7C6DM5_PoEl2jQhEDUG_=5@;ldA_[lV[tG?+>k[V1n3Dh %>oCa@PX-g!"NfN1g8m*ik,'((+U>'5.%MK#'k,IaF`^t(5VN^HZD*h#"&D+e0KK_JN*ggApUc9M-4K[kp+/8b]?[-W!sb44-&5\Gp+"\?)_uge;5N;(]KA[qdc<'^?1F(XR)h7^e#Oi %Bom*QD1cbX_A]C!"-!CpK\QAFHjUcA!\bIOmP21?#Jda)>mh6IDX9FrJ[0q&OsEJkocTKAXR)h;_J.7IBH';]g!0_bnoV7?/!,I\ %dLW8VQ$]kiqFKSB"0Hq-FZ+_So/I^/oR4Z<%qro\V/,'`?c.F_gFu/;RW$`'=#gC1H9m!il#DS7Zl\;&&]* %*!n2KZr,DkUNebo0PG)W.*ocu5rT?YT8X[2ml$,E-V_0$1+bAP8r2VCOdDn6?]h:q\'`K!oL_WXZX'K\Zt5eU12UVMS8tulF:.F2 %-seUd1j24V$'S*bPt=/JEbM5!")uTjB5Y2N?73$#8NCZ^^-2tmZ9Cm3^.Hq@I">`[[T4KGP,QMR="dCFL#]=4irC*3KoAJWLRanX %L3?]CTMmOYBL:f2'RN-fP-9tpG(@"q]g@\oNk.Pp[sq3.4EU#Jc>lbF$)7pQRhN`%aKO8V0,V:";"UBb6:JZOgd2r3/M-L:[LLgF %;+"AmhYpDkk8i,8h71)c3.=\ScT(o84q'RpTnV^rV%&<0f?rt4U[*S+7GONj;2g7)8)u4'0rP]?==8(*6+e)Q.N;F#KpBg(Y0)DW %f=S=RY1OuTMV/"kO)lF5cp)1R-M5s".RDDu"&,^AD$a;S8Cgh<0nOL:$PeRKplebf8G/!g3@5:&6_VG3#A]$L2b_%l]Q[7MEfbHd %$pF/Z_N<."Lt3NXhssNG)Q89O(L/#qpN3!!=nk*F\m)4d;n=)M@t5*:Zo(-\=.h@tL'@6VOPaP;4'n#6et#-[J/#=R[2VZV^cpEW %=_U';?@$OF4*`_3Ylu^#e1Fn@5D,d18%0,2HSeKpk^a]^g9le80`%/Sq0/^e(d;L#+B/qMIuq&O:d94rf5MYgthnB73fs %,*($^\o^6MZAHq))YSQlZhnm_5&A*'&X3@.%kMN`_,U9p2Gr*p!?"BUeXPK#2BgD39ka14p867C/cS!-?)Mqd)7[t!An8) %+Zbi(2SmQP2UQ3sQu$6@#di4#!g=]O0i6.BciqIJl0ZbfYR);4S1t=3_Yu@6eP%0R/1b82njtPAK@enR$oN[ak[6f^*=fk,EoW\J %QQ@[F:km!uZU+?H%_B7^1%)c^gkRsNCBleYZJlAX*%#Im:r*tf.$^:[>2F5$XMLXK[I^D1%<.%eGSn=)Ym)1GcsG;)_&+s6:X?'Y %CZ&b3CM:(obX\4:Z0(JZY]P"47U<>)0?c]IH8:uk<4]nl@;F`X5r7$EW1#ZLZ@t@s)E92Fi,feu`f@(oK9`YE5u9QMK.*jCU1aSt:/6j8:P)&FS1CJn+o+KKKlU %Ig1hV]Gs?J*PQpWC\]9XR56`u%>S8Z\JH:BYljj;D%Mq!#\a.Z75rHq:?i[1kO>%)+d*sU*[P]CL)T6+jX=Yh$?l1U'OHDHFT(Pm %04kQ",@EKshP-j\aVk60X(4J`&^YM728q;;b&3Y"SCI0\&:Qo/+-Z#5ODtA^(kTskaj>ASc!1%s:::L>O-n$VerM`G159dF)P,pK %n0Mpo!'jS^k\&grhI9+@gi`/$=c?h^`?\iUS.S+dHD1![3":7O1lZ*5u39!iDGZ1!@MFc+'l1Y(J,Jt441?'rF8#,:ksq? %W>'ANO"N-Me8GH&r.fR7QiHj30V]SIg(BQNlf(n*(>:0P+[$S@/rs'V'PpJ\EY-"36%^m;Q#l;oJG'25:3fq*GoSCSS[JR+5:N4` %G1Q99R:fO;R!ORt![*b'H^X1p%.0cN8J@9RbB9`8Mlp&-BiG_:\aIs\i2D[]B8BC7lUDH';n2'Ha0\)?mBStq6Xs4El33ngr2Alq %U3AK2RMS47309Gje4Q,N/C:%s0"]ENMF"E-t]A)@Y_=dhGj8Va6)E^0/X1dLH %^pDOrp51@C]=f]ES)A%b\FXg/\_*:Ye\KA6"=kAX_dA>a33UNOFfC(W`P&IXYE7&&8!14bnqns"o4oi,B6C1R7`\6/EVK*PY\0_L9Dfh@)MV"^?6s97 %'fMa?^9a$'Ebf/mi-GRK`[:<`3^J,s`4/28IGDkYWDhag!OTqi)5D-W+YB>OV"$oo: %9LQT[+-#.[p942Gk&QZd_fn>#ABLdIf#AVgN-iC'lMG98qtbSt %[U,g2AgbJAX;?MS6I\[1r@O8c^1J"ZCgds9##:%I;!:Sal:3a9K3eqsXZ-`Q.'6Q]^[tY`M)%D(RZ2YQPF/GAkaiEZrNiOHL3C-( %$*Y_?ijUqY'//[@T.nFOqGuGMCc?=gMkAg+Khg-(8tl %QPEC8WH8i^lZVOsF[Nl08g,4ZoegHaL#\buh:Ig\@PQDQ(H"c2j1s %$tGO.R(D8H'pmH5@b@q%(5ETVf5l':A%dT$]Jto9"tNp-NCF!tV/CM]l@c#tb1$kJ5RnRi@GYh+f!tjuqQ/2+1.#<9NVfgBL3@Om %FEELQXI,\e=L!LbNrHF$-]Xar>2>j<39fN[j2B[]*&f53&m*?<`MB?NQ,G/bn?A$#/hS%rkV5BC2@S'%_:hccQVt@#QJ0N6d5DY] %GC1QIkB@/(K@0++p=QLf/9!,p]oNphg?icq_:T7ZV&2=@iD:d(!t=%M@,R:e1^3]CYYDs(_Dn9CQ-)g_eUEb90i9tg=BJ5Q@j"fC %bV=:5K6E435'/CW4#<=g1SSfuU,N1Z%ska$/J(#i?"dql/gaFf"ZNR;7jW3L:s)6X*;)U.AIm!^gLuu[&iSaU&*KW%W-SV/Z976] %QuW5Dcnl))0M86AmPGh-E^j*T@K'pa]oC0)'TpZ.bGK]R1Op#:LB^N`"[='u#`B;YJ;R,--M5A0$:@]6f#D7l$7DB"\W%N-.@#ZA %M4q5\,7&-`ZtZpe8g6$FU`Q9I%n^^?^X$]f.&XSM'A-)E/re??5I@Ck4mES7Hsr(ME2G*h^oHbX!>0[jon;.UlojcP"m05p2VtQJ %h?uEoj"h0NnP=lp\K4Q22$MKL1kKfS(QP_g!Q$?O!R*^W\\AB#Tk=iMF"/Y!Gp&/^`P#%]:X+@c"+P/\Pr5Hr]VdH>puW]uIse>3QL"Xnp(;dgk\'-+$Z$BKBeF7`&t5]&,I^=g*HcjUL%Bm%`Esn+Nc[aFGl28Y9(gYFMdGkn_R3aCfXFD1@?4; %hf9+"^8Z9A'uj\i(TS>9%a7@8\Y'g`-]U:pDsEMICJ'LhhgOZ:X$>#sB3P6M54-e@j/@Ac9-FA:[Gg>V2IR0WCr-8cM0N=KQ3NB+ %BM?*qJ17*,4"a6]jeZC!Sk.FAR;hBE#W5s-2"jlV"5U#R3U9B-6pj,(%(5#5]l)NL)Z %nSH@GV(""Y$-0cVOL(e"5oO+&0D7,s`N@HMWMS:ZW*F?HC)T#]4`&Zf%6*?U6"E=$&SrFhss,bl!i8@e]9 %aU1X+An(7:4+JUF9.pu&;?YY*6:T.V*3?(%ku680Z\=SM-OYO+c!eI8CepP=km7MG+*l*obTElqlogBs-"McN&R5g@%]].A6],AW %)\qIK2+83T,ra*FV_u#[d=]pt0Y8B?qZPQT0&Wj2#4F9#Ds(Vc[hKN.6]r\J-p[/;9f0&J0gk8@pbpuBk->24Q:Vg+1q.F-d<^Ls %]`nm:=">P\`<\9@Z.K[DoQ8YT":#PJRNqSG@5MPpXf0jMPiZ]1B]5=E8Bl%5gXS4s:e=J7@LBRZF1%'rhGsd(cj`Jo#e5^JW3jo@ %=UQYaWIU*>UU2JS3uji:l&\aE5CifC=VObbZ(%Y-'3WuIBT]BL!X8d2Z[hC,rBekR*!T/Ccs8,X](Fu%7N?<-:N;+;XT[4h/D,!(^Zj.m$)Q5$& %_a2pFBVE8'@.i8fC#I$#nLJg1"tg3$\GOQhiMJ:G>?qkmdD3hR`Sn`Qb)B$^J7t&KQAj#5b#/SnGa)A`FP7Fi(K/7Q*"M%PFF?R3 %^I!:,'II]<&6f8eV&A*.<0(qd_8]cD>A0e5L$pYl?CYlY]Lj\f^()9\8WR:pZl\8#nZrqn#)WmE^/Z4Oe%>T)Z"9'a&*"9o,Qbgo %D\]KDXam?pMhK$Bne6?CB]:$5oJf;LQ?r2M4'LGSS6dA'lI[?@I#O'2^mn,m,S[8`Y3VTU-=HJ!:nXa(gmm"A0Q!Y#;NW5lZ0+(*3>WMq$#fO-,GPD6B[J%,kmbuB"imoQO$sg.3LXL6&^s"U %GV0g^Vcu[@lRGf(d>DW#(>:0PiTCT@?[-PKUFu$!)M;`7*#4Xf+R_5oM5?Pp(X$1KY1-nRk1"&Z*1`[@l3Z:rr7aVL`Jc0'dF,ld %3&M^WppK86E)m.rbR_LgnZ7%LArKo]R-2c,sua/i7'1<">BG, %;Zm%X1A$f[-;G!W)LP5GF)$)s4Ed:Fbc)?@mREU)VZu^I3J.gWW>,WE^k?kgV]J]d$&@Kh`oIB>Ki>n?*NZP0`Lk#Hbr>\DPVoA) %R&L.?Z1Hu)SBpPTmA %b0dk5O4e$HQ+7bIq>s&FY>!5peinR4?9s+@,:P;ap;RpqK<2QW&hKfKN8-*@4i!H%A2L%!FCZG5C,?>^5]3dunUO+=k7UM2gaJ'3 %4#%lr2i=oHbUD1YiC&X!>3"Eq$$sfD8mZZF1KQ?,BE=OsPLXTHl\qP^FA3?hL5-11/`k\5De3Mo"`X$UAiA%7PaOoYp&@W";2Y29 %N1!g:1#Tba8O6a!F?u>3bZ\\TPspp.UfOE=KUE%7_+LPX1PYmUW#Sfk1V-TfDT-`[+h#N@O@`/_@@5Q_QRg6LeIj^d@jo-kE#Ng% %kPD@b_@$Jn*'aPUfV0:lWt\t+AIP]i?NGlkJWli]<[khWoV:`64FdL7d>3W7;PaAgBJ1ec5^*B6URbFID/0:leJHS0o`5b7N@Gi# %lBq\^,^=:h`R.rlenAn2;M83U<[.nMefR3\ek!oW;^U+HZ(H+KgK=X030c4t#M4J@8>6-Wd<8TA2=?bb#[]*tQk%bHp=Sd?Yf<^s %0D%p=`Y5$s>,0A1!TqU`On-BX(aWfgY`N\Hm$d.%e_`^EQ\e-]6YfE?$W_! %9L0jH,P)c:G"e4PhIIZ29URH4L!D1X$?EMTG,OpMG%33^4/^LLE/d_FkY:3ITY9T%ADX7N7a#Oj19\g5#[]JiA00#s8=%f_A6rd> %o4V9<<8PcB+53@0CT.O\%BH#AK8'J&kX1GWfUlmG-`V8ikh[(3\/ %O&=JN]O1,%kTs&00?J%VjEZGt&]neFS^7JL_#SRc-I42iU/)$&4.una4ltt2"F>G'/EhPr^H`;d!'W]o"FAF*%%.Y'bO\!\*')bn %6B@E]8[!aV+O=OI0?OXG#sDi8N!?upniZb)>:F;ZO0:6C[-73!k9W:>oeiG0co6^55DVF_kFA7NE^C:@(QO>P#Ee3>TIX0oGp&n3 %SC..go36hD6GlK$aD\!Z4YO.M4)O7*1RhTKGajmK[(3:EAp,Gh)nX6BCWNZapi90>WndCs$c[lOen"O<0rFuV;co?,]#i[pp*Z^Q:_K"1=9F!SU`DYq72!j_J-sBdH:n,ob&;gUkAnFK[^_d)dO,(+ %[o)0;Um@^5Wj3Do.(=cJb6`g@U$+MYL`\u7;JAtJOCZu)V$jkt<3!99:Tkl9Xa&`9@,%M>>7#&69VNV".l"t9618em@AXTto8aon %Lk[!Y,bWSZKIjUoUJnUi,Il@n_K^Bf9r0e#^,UZT>lYqrC[^h3qPd-Y#6M2(rP:[<\O$^XTqWB.W0$S26jZDdH7h6XEr0UITT$A3c1h %MOqhmQUDbb\9KEJ5:)3?`/N1<;^2"Vo]id[;^.2SMWkJ:^EbS=#3cK+pIc^o0Vg44rfkKs_1CUrG(3*encq@N`p6P%PfTLp-/Lq3 %IS'_`U3'a,,f7o_km"`n6R$Bo0Le"Jr$@KA\=(_RY4kR5kg?:IB`=19+R>\.lb-X%jZ9H:cU'9RG\R9r0>Q4ijIgb%^`#1QKV:3e\k9UCL?VZi,XEM@FO$ %;5]\IGR;jd3RU2H@#S3$m=#Alki.`K_\\,oG]N;1GR(8u3rB.;d[$Q.HH$T`-n8b*Hn^3.Q7R.U.&s\^e:@DkegM]]br$%ae:b[p]K%](4G&L7*S7 %XVp_I7Pr>RZJ7._B]1UUR)/DrM.e\Z*lI(HFOI+`q1`b7ia$d+<"K]M.MXW]1ZsPeD):71$\0J %Z%Z%rO''E#]6hI37a4)*)5HWf&mI=QGDTn$]":UOiRHX/Q>u3X0!U+/F-kOrWI)7q(/E+[@Mu*3mLm]&204U+S@ZI./E>7(-T6&2 %F)d%Jb_hO'`pafokA7@6D9hR?b06e)"gm"q5'W;#ODK_!P4UMmY^p6$/gq2pk2Ds@4S0AV#J=?*[kDY]SDU3Q&=`(MU5R( %A4!q&l7^L7kf8^iQkajaKGdSs+jXqk8\Fl!#efmXG('^B?;p]);\OJiXq6?E)g<\%cH'[`W@0o@Xs4G.S^9G#K\Xf/1;ckDa.tqn %G?,,)3_XU?IKWq.4pgUOkbg87[5^C&W^]cNqpThGk<+JDj5R^JkmI04jSu8_O=B;NNVnn:qL(i/no0H;OjRtCs%A^T#RWiq;Q+)8m.b*VU<7faiD4ghah5Z];1S/ %L7p`Q6#!$P*lH#!qJ2n30u=n]NK'0^1c@hU_kjW#ZB<-2H9>FN)l^9pfGNQWQc;Lp7N*60nR-'IUhZ^10u>"bNK)HBBl'H[_kjW# %\rk"P^sjDTN=EV\hb%Bg0GirHdb%CIq0?:@@;&*:<@a&'UYW)A-igRWIbg#$:`7A3&R1\VVBDa+85FAeSaG\pG?b_PrGbPV_UmBl"-OAgUC#W4St4ac)Zk6oh%1T#RW]C1\+?N4O?SS&2.m %8X+;]mV-JmVe-]AcDeFRYpl33R7''5m[_@pE,&ttjd`o/)B6\qMbTFUlMbL6(oJuE;9#T]-&i@D%qdkm@MJV %(JMK2?4J\N0*Nmn%+3RscoW?S0bRn9UQ'2](nmkK3+>!<*+,At %5RdQA]HbWPr#A'9p*]LKVN=iKd_f*'X>rgr8#&O5/?3l)"7iW"7A1"!'7,VfB+0'f0g[P$O/BYo&:+NC>WVEqiIp(/oO>HtTuYgW %j!\P^h>lffrg^k#5!`^t;X#Q+oWsJB-UR!iXiVfNbO_rlbFUeR?Stl2k_&O-l8(X0R4_qB4?[[mW;d.T3P'Q %_$,.X[4,$UG<.D(;(a0:?iiLX2Aq]hFJn^3k#,-:P"MC&\I9oY7W1=@cquDAa^>ap_WUOM&3e8Ao7QiUUP);4)FKCE9[[4@7n5Q] %C8YY,&0j",6T?YbO)DOeA;"9>.[+=PoU"e3Udt/.7d5WCa@tbCco4AeKsmDXR,:jL%V'hFR3im/c:i/hFG$2;28(m(6D(.>XZ/>F %FY$i+eWT)0Pal#<^m.Y)[XVW+K>r>uF2RQHZH7BiK/)5eb)'*CVoY;.L2N?Q#`!O]aqLd5&L %AiO4CTJetsL`WOl,[a1k%qtNqTuLQnWH&%(#.J?o`LMLaCHYs'&r*f6OPYZ%,lba2imq2gGtO0tOo@AiZFo[@QW>0f7+`YN[qN3( %%*T*3Gu>[M4>u"\V6ur!Mk@Xc=[A\PHG2!8A*_"JBjF>`H+'tj&^.G%_(iqgJ?1$r^o>*Zun[(V_P@__ofPi@%'O8@%M6!fmE1"l[iV?JbOH3nps_to8c)7Fnp.)fN6Ni:)TG#`).25-;G+Hb$W-pie5hbZ'6e] %%U2?H:gp?lRNg`K'Ag,t/ZPalF,Dqc2+;%%q)>/d\%hg9Q?Yk3q:[MZY>(^ICrRik==m5o@B(KnjRmANG^[lM@1l\[6.V4pn"eKDl/[[*,rN)aDNQRj5B>MT)?P?Qk4.e8:m^pGe`..ZUt7'U'bM1kDN'<1$X %_Qga+"YAt;)U,OYBk"J&R3qKfj]b?8o8c)KFih"AY=f%rFib>[:%q$fX*)PVM\iaG)Y:O>fX*7>bd5A/bd3iH@^RhV+P%j:D^d9` %5Ph2,V*PX&>FKj7C!bl!o@G$GHuMq"m5h']MMi-(b$d[G)aXSo%+E!MT&2F0s3$2%++Sh^j5)o %2IdJ[jX'^]VA?YUqkRmpc"!f^@;&u:b[gO.-RN%Nc,:9@_23C,V(!6g)NIQc;d.BYT"/[F1muPXP5Guk(:QL)oTghFS8)aTR[5Am %=Z5:RT<4D+ZUJ3Ik)%;T__AMU'q-J4[?r=(1YQSX18CsEQ;=#Sh"pB$>+3,aX_ce>p#NK#IVnp,::heG6R,al*]Jt9g_J6;>SA1&Ek?CB>X\Fs73GpokX"KQ[dA,+oT>*e*=_L`%mUG<,osOQZZmHA8m?.`AA9JWBi/i:^WenJ.c0_%38UZjEGf+C]@" %36HIf7NI6ED@QW&,#$#eFaSoon:_$7(W.;J"Rubi!!mn.-$h0gLhSSZKZ$E,kj(l)lBEi(KJCJPm+8##ic.QsD5XTd0SK5Z;rINT %8oE4b7i>gL8,MjA8kah43l[3J3uX_,8W%+0KnpP[e=fI5%YP4\"2>*Q2?P7oOCLo?7QnUJ %aIPTs>IDcKo2'8B@1h3?s#N9!j=cpE;Tr"+d1&Tc'6noR]AY?K;:`UmMpeW0)!E]K.%q^q8,1e&5r:HVH*S[;^rKlOP3P!Y^0609BF2@!KHfd?-Vf)ib!O!Y&8)Y01!^UTB153!_Y%e5<*Q:OAF(Z1/q;tg2W(G509inX=VL;.=/1p!coMJm`;Qk)gWj8Rra1]l6 %iC!aN8?^(T/Hl@Q6KoB&%GeG^kCRS2.ZM^M4u^gk=oBXt=+ol(#h)>=Y;XdT'IM*-#D'G).73L8TH28].gsiF %prj^P/c:k8YCJ6d=^lCG!o:n]U7DD'%S6^*h,Gd.B+bmbRXj0Y'.ifT2L=<*W,A9#>-;k[6Dl;H,DAA">(C9H.pYtXqWs]NQ&kcp %>^acu$9&G[!(4FN)6K5/`4D%jH!,\6aQbEup(b>;q[!f85$"V0ICA<%4ANH2.'fT %Ce+$\M!e(L4eOJOX@K>FKUu"*1Pm!je.uE1.+DjeYO\uQY;TQD&\b87ZJ!S!.V>a2>C;A %o2Q?k%6ckPq.`nfo@6kLIjMh/7UqY>2WLiHP_7WJWsgR2PVpej\+sc(hjQ.2b#$A4'rWF2R.F=,*I%k:bej+=dl=h+a5Z&YVBRg3@dGtZu@XoYk<%S=Ce"fll,.t6IUT]^;gHq54#eRFSFti9bBn,dH"8)brWF/=F7\>:E!$pM1t,B:*=Omo;dlUVFIIiV+S/?:3?)q0p'd_uc\`mS![;CJ`, %Up4GN8YJY)M],6,*D,5&qP:B,*D,3!^"0RFHg=30>I9Q@3/W`lnA8Flb0jQa_F[[0HEJG@MHQ0#QJOY8qS/"e@jsI%_O*bm7+\'f %3g)m@B$seeNhe@BO]"(W6:X?a.O3#G1[@R=L%mB;/DYFoe5Ko+=L*s_0PHSA)G=uhM$Q7Y/4E!*(ph;BefR4IOp:#0o!L#0P/=1$ %Snu\@7u@FNfGU;(U)iIP(pk. %>+/Ef,AB+G5`Fg8kX^ii\sY-%;J[@cCndSm+dW/4\5nV,a[W6W$iPNi<[f=5G4aX8#/G4;l9c6&g+ai$9p438`9d\VOlYYdC16n-B)t1BB[VE!b6In %?I48#1&BC-J76_WlC)H(<5_Vh+,dm9B1-l4.gMZStFPKK+F1q82r8: %VIuW7D(7*?%7B_\Z53%jA)HfkKA/Zpgfn7[PekhecmfC@tg6epG0EdXk(KfH&m5BQ"MkU9nh]:@;)6( %emb4jll5!"en]o5eBZ<3:1$q'h"pH&>+9u7[5a#YA>d;i.AOd^s0ee`J[#+jtA %EPcJ5a@c#!S6F_Em#tW3).hl%_pH%QKeer309hU&9qc'uA>XQ^D&C:DVF&a*Z53%j(WshNVGK`_P(2NAimr=GhV&YN_:OF8H#3n" %/2LT\,@?p,a&pGWn&j?hgJC %CdHQl72V<1co<4SX;\H#3trou)64#f03Q#c[(,eZ-ag`I@B+/,$fn="L==m7E@_AMZ1H@$]"m)RhBV%cG@%Qj](9=:RA?daII8"?pla'B%C%dF?e?FIFIF16fflR]e %8EL3cUm61*oZ_Rs9TCk>Ab9;_CV`3Fq*ddSsrPX$TlL\A?%TpGh*iTTC%ioSuq'X'JMIb1Gs^O,%X,o4)J-I(Z"$G=2F#aFR_ %*!A=>d\BDr84D4Y.--nU%hE_YN(r7Z2FXD?WSE,98sE1N)JT:/Je;tc9k>/2=A"<\P\ZEiQCdQCnWJ/+:rUkt\GoUfIr!BR7dOPb[.FmX8DCRICD[NjeGmeJrZr!>\_FYRnoCu;HIYCNsnl&*B %]r4PEPa>\f@\CPK:+4$\T0\DULA:i8Q'p!FARH-^4C$DT1ssagZA::GfDX!'N.g('*n].">G(S6TO\TXL(-b>446596,oe__$TK( %7V596N!(J680TMQ.X6]>P4r%'ikfp]HR-LR*\U`b?E8cYiHiI9MfCoBkJ_Z]6TKWH/[Wp5>gMhuNOdVIMt=U@YJkcn0$-*0UToEs[46DsM3>b+6ITJYjX8G?-5?H;C5BKsX0>N/K%BJ[>HB&4t@U %VFH9Bc;QL\3J"jcVG)d+Y%>^@9S!30;2=Vm,DLP6#;J2VK@)_RmTOk1*Z'.@GJ[YA[EPQudX?pD>k6L8nggDjV!G+V:*bs.BFrh9 %C$U,u7-#MG+mlBi?!XC:a-28q&n9tHFOi9Oi%PN`>#;fACtY&%%Xp0":Hhu\iq%QmfU*ncX3[(='+GF,&I=I!"*o_P8m5YLH;NQd %O4dGpXCocK9g2dI]Yr0:h3kF<#htQ5`0;'jp2O!XALiL=;A-EScSXNTEnXEdE\h$Qg#FBH&NR$C.-Cr6Kf3+mY_fM_3>ug+\uQhB4q=Q40Me^CEj,cr]iC*P8&\Jgi^\,NQ",Z)Vt!*SZ*m/Z"YYi=Fc_ci#`Cg'6=.PBKdft^jfOgh %@hI\ER*YloGCpZbcO-pE&6"NUoj(su47jfefHG"&kRhTAo\cSV%8_FH@<;U!GK94Ed\,3g^tV8.=]L'2TmoqU6GHpl&[-q357'm? %Q'M[i9ue:a7VTg^Jg=45(oA,p(ipfcLB7V&Yog'0S,T7X=2H&)b73^m8L %%fPHqNNnUF7iuc.pM#3LL1"8+MF!7c;Wn^]BqaOMLQ4MEms%./Y@Dc1#YugF?m&e'o-AWU]0\;7:u1+_Y\d[F$okf %GY@D9V*,0C#V'%m+-E=?5rTOY_Z6DZKg]B%[*d;gT2>#B_=2:Gg?\r*Dq?^;2t1!h7ZM@9'P!c'BM)hf[*d==?D6;L)R[2@5VmmL %\2tE&!bSQ]#&lT?]7]43FMXHg2%P>(7AC$Z1.C'-,)5AJ"$.jd;H)5.WT^54^lsa`MpC'@[V?^Fb2&G%"4,AC#"k+S]JWKIj/srG %aRMMmboH-:=99!*\H-.1S-chPTA&U''i152aPk_>k"d/lDan-5=(X1pF57;?X2UESsn9jg,sO:n@,=R?li.kfBK7>!>e %oE@!3H"8/3`R5,1lTbG.W&iqod240M=^0B_B77F7Bs_h/=(e+2qpLZ^KlVWiOm?P<_EOY4NhZL/J\$AFBq^Nl %()C2H[;Pck^WSFF"",XFjgR;gbn=0\^M?LCM&rEX,pVMB[a+s:Sm9dd]Vd$3_,X@jj'(Y,)B7nK@h3JaomWEKgE`:`'qZL-bXUXV %C1]dk'oLC_;-r$W/[WpR_K8N9S=<3P;jI4p3`Vkh68-5uIE5#:Pa>]sC)Wu#L9PX"^+a-PJ0;jZUXaBqZsF4NOc22pfu1?rej/b(Y'1eTIm[>mA'8jCKBcTB.crEf7 %2o6NFiPbX0IWUmLpGbeBcdUDsCOr0T'"K_=*pc49[X/5&'4a5F%u`hL]P"Io%$'>pA[KoL_]DE!bY+HRr4^"ejK=$mjW+*dTWj"k %.<&p/b#_2BR*0B9/KA+HN?9iLSg_F\cU(S=4%8f*Xct=(7*9'PjTA)-!@<;=R6.+uDjcW_eqoMEermR17:37q(GMsg1_"):_a'Na %YZ,OmXSPP[0"#9/P[T[AmeKrt=:MKF.-1'UBPCkJC3STK*ogMD5(ID27N5i/$)Ia&j:i-BL&g0@#I8sPK':9e %jU=hjs%7a/R'n-1,"_3$es$!'1\eg%mhmpki?1[Se(9rO9s@Sm_EN#2J0qS"@3!%E>`a>-F7bg!g:T]hRWh2Dl.M,^kHVdkS0@'',-cUdr-4G]ZLqdl!9r"$$TZ9d5Z( %6/Q)b@A't%)&@?T9VCUE;f=.qC"5DY&02!oI&*?"&6ge1q*71;RUW)n%>,P2L__*Yml6G\9Y\C[m/J-c=e],(MI0G\B/q/EeJ)_o %aM/-pU,$MXNUAGcVoFt(,j8u&=T[`!Od:8#D03/orR@`Iqod@_*+W_3@+RI\$!e=@jV[X.I>\eFQ(>kWo?f*e`+_KaR]?maVlQOpTPcXV=-BLja.O)(nW>"n96(WOjA&U+@ZD6"RCCO4 %\&<$<0mR7[;^O&:P`*^_ROO\>R&4\Y1Wq5l'a1)PE2d+b+a!c">+_lKT3,pSOI@;:_B0m:Q_pXoP=og'!hk?ciuq_ %-C,i1(@):Kfhs;f*o&G8)iBF3:WXl!8J0H,*\\D2>:gh#fM3N]AL21LoO-[e`.LAG[$eQYnLZ!)*rE]Ki!,c0.$;L.GWmfEYL8/V %)[8(&3nJ7XXR\tLS!k7JR*"#m+AC#)@$.?iod71P`bskpkU9qZq9^6M`0La4.+tNF.mHVX5R]r3,cTI-!Lo@=PC1&LqaAA(8W#.NRincGm)a]X=]ff@P\Ib-J'frC`^`N857,mXpHY,`ouJDhRMSqept2PD=-BTRQ+@>m8&)].W-2p+ %P9LjRi?7>(e(9rO9s@ThS5LVD&$`4QI1B!eaI,[D`l#*T5T4RX/h('BPBnVm'bDh+qc1B-fC&(Wot4m]hB %Xf&3pll./SN=X$(bT][$)!sP4_n`#Talm3,N@&_PRq-(%9/KD*0j7?s1,6*`$G/kDDU^k]Hq]1%d/`M\n[O+V6Ot=\7ji^p-5u<. %Y(L6ggp1;m#Z7rsZTjqsf;a*T&ei[&'Wu,V%NjXI-.q\\ddINXN0LH%<@VAmf;]M2*on`r>S_'q]g01UKimHVG(t%,GA3b1FthOg %`_8:kCJbTtUH8ZoSrAsN(.L#lfJS#ElfHpKFV\7lYr4mn$`kR&i8e9W5\>P04A_q1WUW_fRUK54ZtUV13a42+Le8gI?6KG,2[VE- %>FIb$"-qCkmTr4=*2STs,(n(?lQ>eV]Znm!afl*#=bf.5j.Vob:I9%P?$p9tjFF]qT>5Mc(1"OQ%*q)YO,&RK-[:%ma,^ %AeX/S(>Li79Fa,t\uAL7To/C32H:-%['YqEJJc\ROT[RB\R2%/'kBX-"r7;JLt/=0b"FBb;&^:6'+1SXV\!N$I&3Ddc%OY@A*i.% %60F0Q6q[oG/F97GL#!g"@@^1iH-4,S@R=;`_h8qJ:#h]XA.aq],;T=kC)GYT"LclkMH^n=%u$k\6K;"YZAbAOUeR3`9KP7IY8UE) %/b[?01A9F8iDeG[^3UJtm+%&nD9^aL5rg/A/[Wp5m+(b##K8rZ^%n]BptVP)Y7@LF&p+%ed"-(m^G;$n %;V"/Rh<(mToP'5u1:6&Enl\Jh59Q/Ot[q!./"lE(`G=5iKSa]tHbS5`^/n&BN&@%bdt._XU&rHk$K2F[RHb %[iR-8cCpTS=pk%nZq=L4'Xrs/&7]INNZD;2+I6?_\#j6Y"b&L5lp'X5jVW`YSeq-fAn48+e48*=lp_Y1\*^gQN@um:;hubFl&T]pgT'Jr+i[BDmM@[k66]?pDDkRoe;:bDu %bp=n^F@/@e]oW";oa%'qUe'8j`U<$DA!gToA!AU4-Iq;#L-QH3'F0V'75U?;Q.F.\_qGtAB$@!BS1Ts@g1Y2/O*o,s[n_F+5bOVp %151R)PQ^hfi9+5CENj[5'\()ef>Nuhg.s8t7QFb#],H+7A %aHR^#X%NrAl_qI<=-pS(0_nRk.I*'`%3d8T]sT/I3`8p`R'u'@8WoB_HZsVSj+h?[ARk"g_qXOR]l[;An=>u?8?#j"Ek$9aH0MF` %H'$g0;I56ljI@=MXOon=9-0?3;I6lEj?VisL#N[/P/iAR9%DXY",`LOBY/%Q*b2!9jb9[,%]HX,b"HYqahu,;8U2cMOpdY:fSMto %9DENE#[41W,sS-SL3u216X>R+=+hHt+M&T;N*-jZZ\?go)ss@PWSR#pNhJ'[T#fD-``8G<`&Vd6N&XmUU+>]!eCe0B/'e#*>3`l"L!RC)D&*A(%TA*Vs3_ %kh,MoP2c@;O"cN[ko-2o#2N-i(W_L9D30:W;mAP(KbIBQqNur6>CR!o7F2uM!>:'H4W6F2.!&#@@pm$24ka>?(Y'-EBP2_Z&`e.) %iS-Z4))5&X`u]Xcmm3!]Wm]Cl"kH@'%=Kb-4">RYSR<`1&=d)9fKh[soKZZur)upCHhOBCb\@c3W`tmO,467((^SeL7nu]C!#6oY %6,Z\m=YnJi;O6Hi68oX:=\N;'IbmC1/M6V:"Tl$j#8:UN3e<@,U9cVOlPhjqWDJZ4E:ap+\'RT;$[^t:38%KQL>.DN_0;H($[>bqbHMCY7?@k2f3O%j,!BKi9pnrZLORT]o^#D(Ep+KN6'TDY[&nb1fsBQdM<:VPlr %LMVCVqCmNSi*s4%(BiRCo/#P@Qi@]_r9^0[e(Pmf; %/H1m>g1ZGiC_[B27D=9O!p3&X^-@#KA\cB`5_P.80X`J)\ngXiq.)G3P`]l`"m^'EaO=.4/DJ1Lh_;P4/0Z^K2\Z)a$\X6@o!eg7 %/'`!i^oZ5MR7qktHI3IenIdW:$HG`^<,AmHo5r'3*C1@dACo.p(RSsU4RK-)n]2+7)H*#"7UG(E(r_;f*QK#nB!Ye7FQc@;3*gN9 %qNA,$d?hLMTj(3uNk)0"[m=?EHTEDO;\>O'[W0<\4=MVG,u>8]TEr&XpVWZK%q:3a/@90UWVqW9?Mn.Hd+_B#,;*FJA?oU;:TQ@V %mh3qSeFO=Df%[hj_Wf0<]-Ai04(LfR+As&OJdG:o8aoWH#uO0c+]d4c;PX*9WSDkgjU\*`@](VB3P+4XQ:k'l.2Pa\@T!mjQGofi %W^it.ZhYt/$AXI]\&4&"Hl_2PX=D-s[QkBYNFaGh1rGsh(M"]J)10P,ZLo:3aFn389A5tjVoVl+lnGt";k5+#D:L`hMSnMTN1HbL %Q,s4DX>7b'Je]f&-*-FEVaGKlBJkpB_b!mArTUtYZ%1]IN.tEn]2\6^nZVl9/VLZ4'AUcI(gEDr%;2G,L-LDJ)e!HR$*H0+DAi./ %)\2g!It/#`6e=--UN?rBqRHIDSV@(p,_/sHGlV,J[H.rr+OnQb;XY@mAAl*_9#>GQE-*^s5/8Zqp_N3Q-/U5;YF"T\=n96M]YfL1 %>kDUhZKSo+pZR!<^'#_YdQ$n:g]=8/12#C"=LN;^1SQs8!pq9cSt*=VG!CX`\(M/...V7Y*[^@lJlBVBmE-eECm`FN^loIY1VmHc %D`KdNl=C.*e@T#^KW#=nHOI5ASD[TuNS,#L^dp^MK?]glm]s[TA5s?6QFaLS$9pI!?6Ls)oE(PAMH;M.T@0DM's@mjc_\$TD,k[j %b=/h7`PrqeOf@/S5N\6\:5BKf[6lNS`C5p^jXd'J&CT(6<3(`5'>=4E.NaAj>>A)5$?"%o.,Zf)9T,`H(9b.r*hV<6VOsZbi6K`S %Qq"lp8RMd*fZO;MSV\Lan33.,f5R)/O8.@^Sp4N"@iN!kBB$fsX\=&NW0JeB'=G7uT+KQ3U/hIo;Uh.k#EuMMeR=&1.@0(sXdUV* %G*nY^aNjg4`^O\1TRl][L\YJ"@D*8W!I]MW"feY\;q33s.^(]c`g/;\&$n(3O^R5tAgT&O2^k!gD03I^n\>Wlj77`0CC\5#YMebR %r-H$N4_DE_rNG_[0K0J)SO2/&L.[9KHhH`1X>3=TtuH!HUiE@2p_\QrC7SK@Gbo:D#4g:^$tLAQq0]#HH$<75;>+D %"In:c]Ys!lE`s_\U*2?+$]IN9_+arUj10ILjOO'-0=gQ=*N)lZh<(R\DC`?f!fl6XY0^C/*_TY:V[)R]kKB6s.t\cF_J2AR6P;\a %haU`N.p9oo#D94RVBH.uD&?k=a!S&F?Fu2_q?oI@&"@Z4MHq)USeNW%0BSrJ-:#R%GQF[4=<_Z+abBKu/V=uH3Xq!,R^hicod7b[ %:P;0U#LssF"5sX_A1@370mct+2]Nh9TKq"e9rH\sXAn=M7:C.@+36o/6Be1A54RSi4Z"\QL8!21l$Z9?TF(2cNu!k6Zam1(]>Bs2 %L`V$N%$bLJLgLZd:RH`N$Ka&=0o!s*Yf]\%eR%t2m@\/0itg=cnb=Z,H2Gl7^58X%P6(9QMb'CH1I+*oYmnT)#_5O#108@FV05$T %dK3_Hao`jl5lj?2:j4'0rm'GVJIZ#g#E!_&W]*4ErQu8mR]kd@SN_G>TMm>U9U+.E5_EM:>:U)kiF$r-`i:u6;Z4ue]%jMp<);&u %Rqfop28AInRW9_Z#/i;*gRD^G,((lD4cplUo:?F6lK"kG^'l(:\">-)[aX"ckk0I//e8_Z8WKWn';Uu4;gKk3nutMipS\\$':D#tHfTuKbKsUT8M(+Ilp=YD-J6.8 %<4/?oSi@El^m3-\;.^Xp%5bo/164K#2tOQ7=L@LaU_.;%n2a`5TJB9H1?d^RRK@@DLdmOakIGaDA!J,j(*c!3-D=_P*X*c;kIO$) %,Rh\U_$pKDT^n[bR8U^)ZKbT3L923NQQa6m[1t_Z%QCID"l(dCfb[)sgp$'&M^MGlfo56s5KnTl+!*-HN2_Rn[@22Y:Mc-HTmkY_&D==opVk,],id=6rlQ(<.gW %S+!\?nS:ST/5F=7",Z]G,M)3t,1`EJG^S)*_$pX#ZeHq`Bs-:q9D)l_^(nKW0[eHO<2HbGPf.Ng#*gr-]bkk8)PsIu/KgP);S %SR0u'a`]TemCI@'%:KUR[Z%J[R5BUH'"B2T^N4Coe7tcU92VZ?.4[-1E]5*Uj&-EjMnI!o\'`a'UPA)?f/pHI;L%NQD-qLH?j4pA %d;TjD*%$3SE0#s8(XOU=V)AOVbLN(i`<iOk0e,rYQ`(^8U5.&E<*OEN(-7[=nU++AA76R\hEoq/+]A$!8Le!b+sgh?*'m120&1/IHYgP`TLV_M2h %BK5\*4!VdOmlU8QY*:V,a`Pcb9eUgh;P7;Z]`hq&=fOEse^Jm?3/qsKMhfKCl[hCiB5j8A&GgZF %7;c7XQaG@#]9&>jA+6T/1)aOVOkuaq5bhj`@3aQX(>/b,.PM^lZ]VJYl:is6TC:98++,tZLRQVnob*"SAR]agV1;B@`$NRp@L(qD %]bU1l&_GDA:KKhSBhX+',BF(WWmD>:%Fdmg>fpNEOgI$+(-6_TYDTjHHH6%BT"];XK9\\PNJ5]$kV]'/#*#$3XcX#To#aQ],'r>P %%S;:L5jm;Z:f+iuoJBA`Fo>4hqWKuJBsuB:AbScU6*d@*EL1,?D6IESXE;dR_5BDL=L8^%H/k9##a>c[lVbON["sPQf_B]*2JQQE %?gac&#BnU0#c"n)FHk0Zi6bJj[T@&T&fl&8P/et6#;]06eXPK#7^8eR*Kj9MF:Q^YU]bA='q:;P.GW+89l+-i[bV(pK1QeM%kf!1-VCk*Wj?,4WQ_;6W1-Z24r52[\0$E$bI2I['1;8A!N'bEeWgVh%K7t\Wl:l4DUJS)VpkN>njBW,r[Up5@A(X>I:P_k]iF**e=#11[@L).MW#5ah %b8<[CKqm@mc=64t@q@5]TFc0u!\O.=7%/EGMuru<36VJ,0a\;WU5;n]`[Fql`[D`WS.qa&UTJcop1=kZPR$.ZV/]9'=dKkaTV:n- %ENI>C_i?gN?/E?nhtcK&P>hK8A,;tOY@/)p'RW4?kk^-XaW+k/ne%/PK&u.o) %q(H1)Xpn2(fN3Ns<2f4deN*ocAoc`aLq6dGCm)tN25/7 %*srZY_%/e(4?o=F1kI'E@5^=8\C3RZ88)?)Zsp=Fm-lb-qnck&Hlq?t(R#AW%,<$LM!m\tW;_)e6IiQe8.@4!,cUWT;Ng=K-72]A %%s!iuY9bSrI6C.neQ3ELWW$),Z;lAt@7g,nP*Rs!CPb\F&$*fF3iB"b9`(@?M*bn\aNUL8T4XKnJiHql-6KCP9P/0tn%oUM>XUe: %II[:&.sL;dgl[+!+@'5F2p.A:T^i7S;#g^S?.)"le;$lfXIY[dH7Cq_LemBa3m*6h7gn^`cpW1(L+ro@l%p6[fGWos1eHL:i?9bo %TbHB.N8C(D_F(8_P5%Fg#YX&2OWB;HaWaJk3Oj`7bRdj3%Un'drQqeqbb8)q-TZp,U^FGk!OaMR3Ilrs7:A$.:]Z/(UH!q+E@ONo %LTkK9q8bk(Yjlf^JjUBg7k+Y>_D8rqTgWd1(m1:*QH7;Z-"7NBCo7i6Lo!,X`$TpX3>uF+'B]FFHS_d\P<1!H"NDCm9PEE(ijT]g %6.e.h#,SFDimoad!>C4[d>?)c_ka04':GQ#)!F.6',c6_-R)JtRE2a1ni98rD'D=AH87h;pE1_\^HkJ(pgR]qlE;N^WW$Xa6E`P/dFQW/G\GtG?WQGB:`Z'rV,ZauUH[*SSd8S4rMY9gm#V[>6U-0bVr'Hh;8.VKns(7sDo).TNp %l@kOURBfXee>fr\[2M#T/Sfq1pTWUloiD(CRH:p3)sb3*XMj`OVHSA-p/l]U&!QBq=Y5*f,oFAk!2_T!I$n1J*-^o`)bco1Mi[3gVeXUO^KJ$RW*9T:%b-kH`jI,55VEL^,J<'0V0ANsK6m+E'\(^lZd0HgsX['eI+UNWrr$ %_h\@e.D'<&E.IW=@j9/Cp]?p]R%B"LV$ec)#<@a55,>EYNl_Xa@sUEc)akBs0d=>qVY!RuB93"fa=BN#'73GB2pDP%CN`32:<$Xl %6"G(b[YlV5<2Cr6*_5gfIL7#sPZq_4'V[9J"\h(?08^?n;@"bQ7`]b0dn.\%fS4;3D`-Ettn1s.`iCbG)mg\.. %HANKmI>OWaOSl3T3/gZg^0NUVJtC7g_0J_]QYdJrCjOsV[L+P-[S!L,PH'BVVY_8+COhasdqdc:OED.B9&66UF:QjHu.g(s#NaQ)`V2(s4s2ZuqSgVN#bB-s?FB]A\see"q)UKJICW-D,=cLO:R+ %;d>P?R"1WOnYQpq,poFF&djgk>:ggs:Y^*\G!E.p7/A,gQbHcML3?]DV(b/dZh4sM?F6o&84acFDg[6W%30SG`net:]1Jn9"MA_t %L`"iWKg8EN7Uj&YKjl^`egk:Pei?[m=tL_>M0=Yff[lHgW2E,*g0^&.F$d*JcI9sL7Wo5pd0a?gjgi(#^"l1o6#1f@"/L>IFiXPf %`>C,+80%li<%,Jb*[Ag2BVVDXL!T)Wfj:(aaP?"uM1sfB1%Z-fjdD^UaCuLUb9pE.(18)LY7Tm^U.-Mi6FiY+f9ZL6/3MII\f<]]Br5_E-G*qsI.Ves2[/TI %\4$n]EB;l!a5!W'`>#\S@MZUi@2=h,:5N,^gHAR7QU&0;S$a<(s88 %`EC,,8Le$s=<2f?$+5#_8=1:Z>7gB>7Lg[I]+^b6[1'2jBgDL"VJ[","6We<<-\PQ(e1"_#mpt(V*de=8Xi'u4kKdo?Eb#"Z52[6 %S"tfgR'Du3phCg(.o8c&bgNs#UttYp2I3p;MIF,+_=T=08O\]laL,]]/b2TnUH@cT.dW/&L6#,*;es,Bb_sl %K!D2qnab$/eY2.ZEI*$1BNR)5fA>I`P6nSD:\1]:>Qd)-DP!_^G:/bhm+Ui,a8:g7fU@mm0+8rd+E,e[Htu%54S%WVTdJP,b^_,?0.E,tXBRdLrRoSslJ?C[&r?I4[n@WkXLiV!>"[ %8t,XBFuq'a!tP4,^'QTFZ6')LVcdZ%EBn/Cu397?\>AOZo(GBB*@cbUg=99WHW$#!tF %IZJG$dI<4kL3..KV--3G:_Q&:hLSdb#:B$Z$:TK-F"1mi!ZXViMNtR@rhjKBcDOO:Q=_#W`*&*q]SNeK4[iD):lriOi[gdCWA5^8 %i!q!CRP@8WkrFnb[6.)j+OEp@`-2Kn@j^%%Mo2o7R4q9@K#u+PgHgc"Ke^#'dq[FO+HeF:M\<,bSE\D[ %GrO9>diQn/fijoBn/lYjZ]\pn-kV0rck/m@'PWk".VRPCRH(M]R5kbpQo*PW^um#g2JG[u=&TX0^RfmNo`bSfiCdlUWkOpZ;#U'/ %,ZS2C8Z;?/>*>nhVC#8l'g7C2f2Ip9q?q"0qXW09,q[kd\rq6m>0<"gibI2q52s2Nfs@0BD<%XZ'ibd]%oVktH=ZO;\W.T@H6d#Z7.ip^8pb#aF7o&MjLeNS0P2PTJ>$/+m4ZSrs\*LUeac3d8PcZ %]T!t[=WDIB[.Z_[(P,-bY$4SE5dqZ7RWLslOe`f@IAG9@I3_BSL3E4],""F+HC;%dF+t*5V'd9$`el7H`lb*3;mVL;fCIuuZ];P# %0\s:_6e2i8Fk..+*$uij8Xn3`7o^!o=\$71o@!IhA0$5$">$QYR3is%]B'rqIIWn7j@aUZDY_S&>.3pB.Ak?)Wn!Jn>=>QInqi+4QT*: %k=sS"$n4\-HFAQ5&r&feeY"3WOH_!F;"p&V,f8UtH.$cXC,f/ROcNLfW0AM][.ir'Ul %]t_]@U'h@?PUc671Z^EmLp'l.CXS2UWfY.CROT#O83tc[7s@m#qVKD#So-r9Kh=:E's:BT653M"FH"ib/LE>[MCg)jLLpocrG_sEW7hse#Wf2DC7m%-kh:a0A8gfj[`HLpKd6iLCa!L]1g;A-nUdcLNp^M; %pnJ3)8N*O=QJrtE7[RNc.fP^1U`ti$T>7F*`oYBemN)^\L&W";Eqq3iAP*.%8%tAO`R\]S+'dEq^ %Ke]Do070mNT^(lKHK'OiNL\trmbbUSW+@NJ-&^;P8p&[22Qd$Xgrhg]@i_^+-Je?&fk %.`OU`Q;O?-=Hdga`5H7-Eo+-FX-9]Z+uI9gSdog/cPW`b"(Su6MATY8[oiqCVaT#MF=2mPhrF6)A(!2B'G8)P`;86XD3$T"N&3h] %m;N`Fn8eSfr&.sVmtt*^=bil7)+u_X0U>n%^`NG'`bj9h2']L'asF+KP+M>1f`1p;lB]I+2i#tX=lXYVRG).tHScN9p2#_7kM9W> %kP/=rbi6:sakF[N*Bh(ndslSsL+hC**Q6Zn%M-rlfK-h"T1d(L.ZDc@,=0n6mA9?9%8lU-D-.Oc@u@P(%2QZP]45^Io1>)tBp%l^ %eo7e>p8?PICp+82-07#f9HehJI%T%K//_Ag\2>l"o6:+BC<2eNC%u!^6KTB"&[J#gOsg0%=46GZ4-O9kgRU1uh%#/*5B&'rI^`6! %q[_ISZet.PT'Y?V/^8aJF(qgr[sMh]`D-Ze^<)ouB)\X!RGrk5Yfbg1Rf[>D_%[H\9dE!elNVRLZ(3/PM+7KTU>3EW!(9d%.?5XE04H;g9uP%FM?kiShG.?I_fn0SZN%_"OT!+[4Q14i %P%MJ`R5Ffsm\JP)Fsq&(JP0_>]:B;^J)F@rrGK[HAH/NBC%cnE97)*!h+RVpFul#a:%!*Xo.PN'cAu+]q&)1Wo&Gl2lC8ps=6ZOK %8Y*bR9c9>3!dsRRMo0[13WoiCdf6/X>kN.mGc;".D%Slj4+(N(s8c%E(`Ui&'ns!gNUBKLd5G4pPrLf,Y3oj'"67Q@(i2XI: %Mp@>e)VWV7b%@<;llOPT_c7A"J6r]1V^0C6Kr63jnWd`^K['qCigj$e-gO2&WRq@??u&ZV`F4CnD`Bh)iLi(Q7uqL %kie-$@iNgn-ZY<5*Oo[H!tPl5qE`@2^G_t`#_p'S8$H!4fpj.aLK&F-eO(6\gdUJYL?]JMO4_ %e:\q>[5dsAKHEBj=:L]Q-N*)kORNA4pPe&K^XOr-<=R7\5D$ej3'6:"n/7P23P'LQ&&!+g:pikI\NRYl(N5l5N,"?!DLMC1jbK:l %.WEAF<75pQRAhJ0cneTlpn9(/ZPq-6gbi"-]p>u-!9=&?VYS"e.OrnalFS'BHKk0>M&atm)G0K?i %%=QI[@IY)A=s@' %JDKS]UB9hSb(DU\P<,a-u:q8]A)H9n"p!fWb %(MBqu_:blb*P/VNMlC-j:\#A\Ph.FI27Yi&)C/sN:kN/8$,l<>fLZMhZ[YU8%`Jl,GK3^n6"SnLgn8\3-uRCCKc=V]S@WZaS]P\F %mLDr$P.Ta0j<0jL1c\+p%a>KpXK]U`q]9H0E@,Zfb5#@1B_@8b">fR_IX-t8:F)$^_*Wa*)\ %5t>DBVQ#.M]L`>]ij+%V=%@ZNF1j,+LWL6K=3"PdGRJqW2N1d!^-K.GNl]b%q`q!S&lE>dN38")`Tk+>lAdspq;-H,rZB!RHdV`7 %rbBP90USj,(#lX3YpItPT?*@5)SbYH,$*neKBS$j*j(e$)jX>&diV<()s@V:T^NDa&&C,5O0SD7)+t#J %`%p2mC0YB269U0q!/m\?N1?H;Ci<<4]537UJGO.g*P\2ERNn3CgUl%8V:nFu0+c\O?=s.P*O(#OCRZ0( %?er^Q@&]#YXbbPW#<1Hbtk8T`_"Re:B:`N0U8X5F2g+/XJR.5'n"+2?],UJ#3DZO3inmut.+o\7VjcW:Kdn.gtR+.s[aaUj=6 %--$8pdbH%dWB<68)ia/8^oDN.=`:.bqPmWLmniIK7Un_mM3/C`5GGlZc+[Yg+C_E&7]_"N\1Ug)L6=ZoZ.VSf.B"]6)fuBrfe?kh %cI6CK;K>/7hVV(1q_>(Un-(MX"X9`h8LA5"F//q/Zm9Ou700W.Qu>eF^&/'lgIs)iTj4;MKLio)4I*%CfW_8D/52*s[;Ts>P[e=$5:cs$$OCu!T-JmtIubr?B]VC]K))loc/&nCD+4_=^^TAc?Bsbu6>W*BPE? %"j@#Yc;Tkqip;iMa2*/8A],D7)T1c/'@^ibm>4@+5%G+VfSfdmlHjN72tXE.I7%q'P+k6'#ZkOX72oKKTG4&*[>IV7bd %='Y;kUBTH0nu51Y='=XL@:g6N]K<++cOD+b:_.XKeF["`@-;NQhO-:W6Bc4>1MCb4YO?/l(F?-/4XB6[*g1=Q\q_P:L$GA' %X[76Y`;\O%.^,,TbHk44%MEkX#>)?1h*I4-6?SBcX3a!dWSlhYHC_%nj7(*!P9",B_0=@.ZparEj)2KFm*l60*<$P`a$1"1a4kdk %_>cdXo8n@Klp(NU$%4>NR#`u>`/4VXUP6Mc@nhMu%@4prp9)ZcFXo=]apfZ5kko6=pjTBKkat$D5Ufh[);\]'IomOa>]i3\O %FA2QYQGp[<-Gs@(3$Zg]qqllL3^QDHdT2@J#. %aqc)-B%!i;.d>uqEj&0\:K2_;D^Ff(hkpXD]"S:X^G_iV32"#YSiCF8k"<>*VNXcF^:R9rPO %;,"VKj8^$O$#a:g!K1Zn]o@WGPC#jV!G5:X;Nbni5`=k//8oi*gJh>+?sWJ)%:GVN7efLVR%Cb0QYHLPm_;aC=Ig'sM770(f5=l& %h>M-L.Cbi]Ie)Ld;Z/3DO9\\!<&?%:G9'R0i8ATbFW^j\JQiDW%]#ai$7SZm:F1_H/!,h;rX@XIJh'(1$J#oM@h.HYZs[m'(*cg9 %/QbpRHoNG`]V(,h021`9`!b-U&$+bp2)/'8"C$'Q0D)90X-^k@:X:VN[LQj`\sO:7CW"V;T5l).3*9kBog=TQ/A*#@@s2hY)AEf\ %k#64X1JF*ca(6@2*Dr2JQ[p&+k+]u5(t[^NBTg!<64FZMYQf"GZe5iTTZ[[*b\B,&+'pVp5O)Af^hkiH.Xpk@.u_<_$h4.&Z.;1(#-`]JNQYP4nX+c;@EL2Qm>.(mM!e8\thK>Ir; %Hj]9gMP&*?!acc##='9-L]Z&RfPi..^_Wb__oNKFN1k@=,>Y8DMC0`.SB2F?=fWA1"PtV`^OP=$khq02fXqbk@$?,Ob/b5.Q$g6h %Tm/nhu,Tb1%7BLtk@)3och,P,m %+$mkML+&fW6I:RWU#][!VS:Co_Ju_H)!e9;E*m00Dc"&61g>N!L %;!t1uZXL>@6AHdbnl?6$nqj%,?)e*!N52*1!gTu=7X)DY:htkPrg%tZ_\u5bWpV=d1*<[>MF:f5"Z.DROnP2#o`k*5p)t.k`O2c)u$i\EJg]cI#Eu7"t %pUL_3cuqI0l,S-[%M8J7JfeW=$=#;U99a7+R%a$`U=1nTHE2mWO\EcdCerS]cAirH7XdKhQ5u["`%_]B&Pm0DAh_*SoPDqXG.+C` %>N@dq!C"23,-Fd?PA;WX)f?utiDmDq27c;^).-$5\ZLE:(&YtT-oehZ=VRCbPYc[/'JS]NZ>it_oof';q8l7OG]:mg;iL)U8kQao %.FR_)K*9>]okt!H,KK;ANj:"%n2//*\]a[L%)BY/18:U.8XRb2Eo3N^hOfc\V=:g_-:7gs$JAph0&F)&W5Ul6Q1fqaC3_kg[X6+K/)HSLI8"l/gqV'UI#n/hi-EI>2?%NFk^'`fB!TF1VSIhg*\9:e_7u8iJ_dlfaRBfC`.NNV* %-L)@0G+-I0bc7S2.+P]*\co_sd(.:*8FP8]NiEGTB[RfO&L%_"GJLID*:"OO5%B6(N4ck %IZ4pm!Fa4$p7@+62MXXqTFgUE(=u.VG7[8XpA?HVT1GM*M %F=M]/"1pgbkAZ&#"rjs&:Va;J24Lf[>#]CT:/:-G=u/YTT#87@Pj$PtM>Bnd1a %hIS*%1j5<47&?eQ6C/FQR+6.*9cU7omOGo$-Fuh<3],5AFotN^Q/9:i\uZI^UkVMs7G#.cV@_#-&R;#F?\.i4jg"Sb.>rm08?)ZHl!@W&_$e7RD>+tE4`LdZcAk+/Jja,n)`AWY8HEIs@`uENSJDlb_P^?Yq.D>f8HIXBVJq`k?\jL2` %!;8=8P&B4/^BU#_XK)V4M5VS:U@A=6)hsZ3bIWl+`&-am=a3?O*8XggbP$P^M=JPAK[o(aRZZGK]_LP:Q3T[4O!HC_E9bujgNE"R %1/o/[nK7o3#1J5ag\@IIJf]trW%HgTb$O/.Ct_,k=!j&:efaSum\*Sfo*S[B+[g>XJl6!pCt3+0`sdHNYI@tkPR/hh'"e\T,DQg3 %X3;,KZ>;>Y1R19c+@CP_[3't/Z_B@T;KP`OV/5Cn`FBBe!l5[<3VY$$p'=WV+Q@F?JtQOd2s9F'TjklQ7d-bf7)RseG?fLlTm6=; %h*;K,6\HlSQ(^aN/_c35Xf[sqR=5n#bbc+nap8Dq3s:,$:te8o(f2D469`jof+?5fSkSZp&M?R8I0d6Q>.9(IE?7^GmEptcr0$P! %k8``1A_PO#Lb@e`(M@FV,*Z>HVK;hs@6Ok[^Z+frl.Tg,3G&Hb\;WPGV-Ih,N8.a>/T15oQ5][umjQO;*55)//&'7,]jWk8/(Y>k %h@Nq*V@VSG%g`N>*eE:@4opXeHNc0@ %'lW%%bE3%-2k9i=Rn7CD<=kG@&("p89`ZDla,__pDer[g,(f(]IQ56.a;`hh)4*`hnieio=[3f6((eL+:]!rhTdpu5b=cp\,0bYo %$3;<6^7u'>\pt>WHh3(YO\J(h-1B1"QVt>M<"S6n?<,W%W])b9gkG90&.iSuKn,8VD)%Jc$OD=*n@ml>#6CN_]h`FReEcK'6k/GKCK.X7*fJdJ`H%tfP^AI:mZ;[&lOo[[F-h\N3LQfuk7n"$B@Z\cu4qEZtD %CV;4%=I*YSFEmNKsg %l5k8Si8bAo*=)H2AW)aB/D[%GYtj)P+1/5Bb<*,FrXRe"SU]I4n'q%l;Y!cb?o46hc4,!o$)mNLZ/F-M%6+'1!K-]B+^P(oEgtVU %_$IC$kU>pjoRe0sN.*It9J85><7_Y$1YjGoN%g6EQ^Jo1Aq">KQiE(RGD1K"7L]'nDU8o;n8-oV(BDJ9n8KoeqE\k.[<@W=`X!TE %\]X@so..e"M&6bA2MRJf):X$S4@27L9?#+a@EhsgVe=b&iMY?q1kM/J'WQCDeM'MfZc,_;WD^l)bnaSFGT!duh4H#% %;%@?Hct.n^-8h;c('b5l76.]^%7:0`!ACO[*#rWH %g(J<[@MB+2Do1`#"2Z7b&-2n%PAod7Z/:$CRVCqiQc(D]*\%;m_Q;5WBJT"S&%?:6!c^Uq9rZg4aq.,\#bnAr!:t$^Whak[6;pSF %i?cp>KYIS[h%7RFUPRn%%;ZL6#W!Y9C('ql_YD_jC`CMo#\%?F@Js2Z[P&R^?M4N*MQgpl0n;]A([tWr.LID9=;(\TO!S;2$-&-> %bgj(/0VC@?Ssg7K-SC)"j\sr,N0bZ'HagTJO^m=r3-=1Ype=l@*5R5n7gnUQGE4&@bOuOc#_?W('>$,.7g>>X5J)n\)T?0V4F$pf %hpc9*1V[tGHn('m'%da"bODXOGfb[gG_j;/'5DC8i%G.AnGO_g[?8IA7_0jiL>!Tl(#&WuH].9V=k60l$TBAoC&^/tB2Aml@*jSL %[SJ"8&*`oPre'\N4:'X/pE='2nKLd(H[_cYn+J#;^YbA7oA/8Vlp'tec$m,lC%cn%b%AB>X$#(MkuX>PDU6bBDmsY!UMlcKBclD2 %s"aVu:K7AaG@]BBD"Bh"/suK$FU<#O@Ap_DHcS2@j*0g'@*(NL8MdP2sr`DJ-A)S8gSQb-1UCQN1^FJCi(D$4u,3"HDnf$_pZ$RqQRJ7SD1[MgbIEHJI?LG`WuFlAcERI\"fKVeV< %R^/9mccf0#39GhsNp\Vkm9"pLW9C>+TPpWO88)4_TB[A0U4[MGX`"UXY;5f[co:Z]pLiMZ$1O1B0dM!D0_l^]NP6[*9@0iQdPiXt %M7sQKhm]',GDa*h,l%,jL/Hj\bMK-S>jD!>^+fWL(;/g6lPhpaoo7][5$PQEqSZe"/I*13,&a9cK-qV&N5=EpJ&IfKA^ud?Dj68Z %FcJpmpJ)M`l;i!IUMba8(E"AgRAbjrdPe*[16gT!afL(mV2anc(>+\ENBUuWN1)Fk)`t!pNPW'<"qfl8<>@Vh)e%u,2l7,.7\;7b %G26EWW0\8,"\>!J$QDj[MKT3Qa7+eHM %@TLCW*FrN8]N5I[FU&5_Uk:R*im9nqei<:tQSf9Oo3B,Rh=EZqoj_.b+1GkuCsBUp*U](J`qnDo]MVmYr=uuqD<>uM]i3\O+O3bo %NM`!\h-2P+!"IA>7[rul>^ZJ,h;liU1Aa5jcY=>mFg-$\,nDcN%UMWE#SVT1X";Z`1.H"j2PX^n8-d5.VVDjV1IK@0GBC_QA;iF` %YD!_@+Cjcrf`ItP6aST(XE/QH0lf&l'T4k98&lGg^h/%lTJ@)_>0JnEm\FV*2s^e^,MrGqg!0-k9so?O33!fq=TO;`+3,Fln(ldn %:5uG%1Y9\b3tI-RYrd)Zf^C>s-X\kHlrh;U/mD:K+L8te0S/Et'bcC>;)*VO.82EM5EuP8'soLEU7q]8>J(:ZM!RrXJW_T71=/HO %),0D#6j?8l-u@71K^6`FWYYWkZ,++(IA/3ld)BP">gmSNe[17IY`jX$-[*P5Yibo'n-R`A#Er0E:WO4b+"3Q:<uipn`'=cmjGc@'SG_>6!(5e]q?T3W:m4=JhCVi=BCF7@m*lB/oj9e#E^5< %3saEY5Ra98^$K-U1Ad?"-#.VeZGaqJK89jl3J]4`PCk?caC.uaM<#66_&@KZ-#.H3=lO#65t$Eq*(6*ka[)7.EgY?q.<5uJT-=M; %#Tc5@WcI4h"Wb]N[83&'oM'@N&N;dS3@p2[NTH9S%[&-,9[RqAI>.t)9XJ5)+O7gJI(:fU"NT7#&jpDAfi#8/L>?pFmid/Xmo`Z#'kUN3#BJsloEbbDD?)8jYiN5@f59=CJQn6RSn1c0ek-&,ClQVk7>7NFG#n0EXj %>kqsH#@gA+=L7/JOKi?N)oilAWqD?kcDqJOR0@Mou/HSjmUp<#7-Z["$71:LMm2Wu3` %!B&]%p3@8)IWsV&04:c:20cd\:qp-P?P6kRKZJ'`;`$XG0rOE0#@AG6XoH"UU>:dq2HY2Rf!..,$]f^9&s"N#h&:0'qjR:'&L7!* %)[Gdm6E:Xh`qp!5rP`\[0YDWqX<0XfT2I%3]h$%bq[p.6^lslY`0WUFDgIUZ^Xo)7oA(IAlp'tgc$m-'+o;fJ9!dFB=do;,hst1T %[WcHZ]DYBLs*Hn&q^V=9R.aDFp+l6#rCi1pI:SanLJ.b,\mc^o4Y4?WMKP9lnl#md:%Xhr]cV3WI[KfQ.QI*u_Kp#:r)b#,qa]F@ %#k&[cbLch**B@I3"7+bJn8pN0XPB:7e\O0\6KXj)jI1Oe)p5FD;A>DI2O"GgX5KFU5+oO.Po0:WPq+SjmV*sOC\FZk=>+ok=eDhY %RiMI1r;PtkW7J4g5!6gh%W[2lO''#k:ZLYAOb]4L<(G.-N!7eO80';FlQu#G`g>,C.H-kLn(S*1#;N. %&4\aQ8a%'c)Wc@[m!W'TV-\),o@[=;c=iBjFQK*E>0ba?n_%Y/;9b4T!(##OR<.(K05/q(j>5GlM5PbLiQ;cNmdO$n"*8# %2`,$nmL?;^K"fEe&LGLsK1$E%C6V7d4\TH&S>k_1ZWZO%7A$\"k);;jXlpEp/,IWSQItarGO=6$eJ11sqQO(P`R#alZPD%"e[[`- %oVoNINQSuH'(:7"0&CL'HT43GH9GmHi*u%c$7u<#P]D)Goi&c %Rf+W3E5u,,I>k[=:=1&r0^00l]V,!"/MQc^WT%2b0EoGp?Z5U.r*u&Oc[4_ECAke_0;!otL"CtNNS;g),!On_D\af"60hkWepXmH %?QP8a0H7Cn2UN3X7V;]&M5CsfmfNjemLT\(k#8LR^DBKYIoLX`$PQ)7>S28M$S3`_21A!<`!Iq9Kq99("\f'pZLha]`J%IQL;MF? %1MX:OdT2,Ulf5+U^7!JiAh74O2UM::G\0oP@*c]q-IkBZV?p6>Uc!, %(S0,']L*X!2=OoRoJA"KK*YMnFg6%gEhLREM3N9^58)P^/m.!0;!l`.D(jNnZ(tUY+OXF+2`=nFRcK'h&lr>aS:jnH=EP:?)'XN*C\Z1clVN>?-J_"J,=,_q:CMl.='0):ANRg'P!f/h %98A"*Z2ke',<=\m7<.`^gd'kr:e,9)Us^L>TVt/6.VXRCc!`rAD%o9?;Mr%(FJ9G %ie7H`>YQ&;!V>IZC@QUJk]IF%JGqh$jEo?T;/,H%3`rQ/SE7Ro7gD$,/1"q'#<$##BGi^_'\6R)ZCPF9l/3pJQ1/GkQC9$=TW0`7 %.kML;`J@WbEsWjhCMuBu40X8c.;U[m5EcPjOlu.r55!KJ5e!Tmr6s7;YBr\*gpH:Q^EHj9B*3@_#4rk1deRJ(u!UW@dl7pY\nfC4i9>4j6+a@AZm,8=oX'qD;o+t*tDB;UK4A+/;$T+DU %./8!Q5<2=7K``W'gim_*`$.L=ioqaKb+Oa;-3LEZUo91-V\P^?NLp]@`fI=lp@p`grtgb9'M5g_&#_"!e18@"J7hC46^%T6;SsMm %BO&NA$9$D/W/IOLe5.&2W[(87Z[5$.rO%7IeHZmaRXBk+fqkIuYAY!O4>-XML@J4] %bEthVe8509W5FOeE@LKVs!+/*88]H_#i)Z;SjH'`k>;l6Rj&W#YoW6>pTjO-%@7DFa&__=2P)AGV4.EbTWR;[o+h1^IT^#dV1khB %$Jk`&1"V\31%CH5VBd)PAGD=LiD>Q(nC9SL5iIU"(VJ(q0D/Y$3E0deM0G>n3.Q*9?%f$t!NK %^WO%9/%7b5_-Sd0EK$+*CKA9Z,4p@^/tnNQcp]Y7XJt?UK0$HRHX(FRIbb'`"1jG$7)8*s&SokXD:K36>YKO*Y(h`^WeSTjJl@TmKrGN*:TX:f^^WjgN&_ %#8aSVG4(C9Xs>tN1`psk)p3IjWmE'`;-QAV:$DC$4b`#CH9R2gK'+A)5!#\%g_f'Sp8C>:?HJ&E13AUc/%Pt(--*A(\o['A\I;d( %E9Ck=-TmligFMNdZkEpMU>&8OFGkZ"qS`Vs].[UZ(j\YFA']\kL&YG5I[HLpgc=iYKsYp5k$[`Q;bG7[QgLU#[s,Iu(@dq_K/`)m %`asVfps%D&Z9.5!%WCOJkW;j#%PRC[_<8\_H\1)Z'^18S\bDeP3@Zo!)qMKRchBqIA4'dR0UZoWQ@lrf4`FMqTP'$t"A5h*WM'p\ %C^Xp1^M1m(23\3Y<*>SYk/n9DP8__/Y=lp-fDTab685Le@K(os/5=0%NZ?Xukh/+W9qousBMuAA;t1PC&*5JW/@UhT:`%)XB@8$Y %._*p#h(MH(9sK,Lik!&IFuC24JeJ,M_B)2^2EHlh)n34Cj%-r.&4L9C))P&q %ZnfW9BU2KV3_)':D8=QJOBAm,Nt;]&glaBiWNIK`Qi0i %aGqM6NZ\J(>Y'6/SiO+A/!/$-7JV5$DO.G-.hNFK2kd%? %feE9MEK8)g41b@",g?0!qa2d0Fhpmo;_i3sq/WOdAgr%ufq02C2\T](gbd;@''&/Ma/"TBHNQq=j>k5@inXk/oGBfRal+u!4GKS] %m5@?QLZYt0B&9DMZ?WnWLi)iU`;%$2$tqE.>rdGPlcA/kTkW@#54it$o/S\CVGOoG#d<=baEPFiQk+52^2h,bhk*7,ki+19DsM/u %q']@fhPW59.YPt(0C\$.'>1S8a*%N9kJ%1&1E[@@kVtCnURrh&$@Fa&:UZW]XZ\\Ko7tqS\%(H=A;*A!Uu6Z5IAurJCK&,j:TdfH %1Y._I_nZ823YCj'%;nOYht57?QUhKg=L.L0\">:4?dcK;epgiKTi\Y+q-+!!SqKM2>/K4^:eFY %(4Y<\-1"%T%d!*OQoN5[d(;aTh/gg4,rNnDSCD@S@t!2O"33BLJM!FMl7X1uFrN1X %;ljl#;MEi7?rH8D"Z&RQ)&mNm)>d>\`lQN_Hu2oABbMr8W0b1nCH+7\,5tQ#&c9c0`Z>b38I#up*7ln<%m:$d$0^fn\1gV@V*!kn %qV8fiYE+!29db;r.T1\i^_M9-H0mN`%6jq>NE"d8%CAYNeIN>bP<7t&8>CEK!`8dm"JCg6Pui>&Y=J"B[=.63fQXppos*s)[J@^P %#9IL#V;cn3d0.a#8sq#7E>jp84*i!qK(At3<=O"KC3]??@!77GJ_;C?NX#CtYaU,GOQ3!u(slFEVJSiL5!m9%Ot"bYKt12s-XIC^ %A&0(m23\e86WoI3-g;4[24Sr(i/^#WpuP@@=VAqnA&R-WGu"a4LR=)`/+i2"FYmUD"\aT;ZHIf3R"`s,LXsge8U%8YihRT=\F7lb %Y&n[a$OdD91cuM6W"@1`V5&(8m(gudNipSb.CFd1bC%dL6:41)@;>$RV1GYNTXsX5a2rdU[#mTF3;FBQ'o<-ur6oK@i)S?aGG&`[ %:oN@W/oa$g"?a3%OoljtcHP*R)L'QAH %(!6&!Z3+)t8];Cik*I8!lVZ`(&TO6fTWt_K`mB\iLdKXpI(uGt2r.eB+qfTl\2V^s.>]WVmb`eNXU- %iEk]`pi&@5=Q11uh@C5kii+KcUH5-I+&rQYYEid0al=[`9qR"DB*qB7\>>mI'iHsMV9\K@D)Ii3=?VSC?b(1<++aa2N*T8lC;^3*qrbcRQHUbJbHaD*5]#N5ToS.>CnFH`teG#.+j'dgq@Zo:[[$BK&Ii&fk0UA+L?]_:E1;TKe"0 %JlC!QrGgF!7>sXNNBti_Bm?\3Jl&4DkZst"[L4\U\qW5FC=pgh0qDm\1j_NFC>qoM*Q5UX#,a"m<_W5h'_i$TBok[3N!IolD>F#3 %\p,DUS/J)c%D5D36_F!o0U]L[dL2>%X:*%Pb^&Fj\;F#=dJKFMYE(C$C3nS1XFbMS^&2Y_oeP6Wi-EB"l.D0EZ.3j.SY:9&)/8FW %9^BZt45Do\$I8#ZpB0Xj%LtmKO1V2p*D1cD3IMXfo6MMPSV+08ACH$@X)r'ML@TXXDJ)RMnE2Laben>)`S"J7><:;8Yl\K<=d`(% %h)ilf1\1\^Q=Gja2-;c*@>9IL7=UkVAo$@Bso-bqF0pi#T2M3&`C[ %'e$+n=J>d1PqTreNtCRe\?>D4%UJG40EJ,Y3,;MA#e14h!7*ho^qIrkno0!7E:use_WpbY($oQ`K0GE2TF'5,U?#S-tEo650>'\/&LAJiQRn*pnjs7&'69)f,#"+O$` %Rf2DVYWNd//?ZF=YJ],#6ZB8#:ri]uT$NAiTJ@=E]o>69"io2LY<8)@C4\DXdI?lsRJ'gFW89d0:]4 %9B&J'%,G9J_m?5oBX(uiNS0h9(U"cA!T!%S>s83EgH0FWcN/m[4DsmqR!cVA"L/asTGk#r)oV9K921&VH6D,EYV %B<>$Bd?t\04e:,BioV;`>RoWG6g5Fo)W>MNb5o]IHJHKY=g:<>hVPRm]uenkmq]Y6?j7Lm`3=gY2Y_CUYcsl:'>l%h[2^/]H[MiA;Hfb]ktdQKI[1r8,Gftk7MbVlY,TC-$i3PM)*D64O:*bGpiqKM+qVX> %?nX=[/ndJ.)*C@j'cZ-t%3>V0.n]95_@.L9ZF'&ObQ'b1DqUO@0S:u.bV6*V<+^AI3$0fP1?eX^:VO*ge5i/=pg(7XA5"@=mH %hYCE7Gp!>t2\Pm4Um;&Z1K6?soq-#/#40V.5lYl;k(%K-N%J`i6h,0'7l0;Y`+TGe0Dg/MH0)DAbB"'e^hfs*!$3;HT[p0mj%G %0,f9p8.9qZ['C7l.:.h0[_noan,bMI7dENMLrnOja`6AF4.8??ptNLe86BZILk?@TXbLDl0\up@VSph*'-,jN90QXTfWj\YCVZW-N8qi^$*4Y'^M6Ads0rR(O8lVQ-BbBa"_]1]Q'6s09,^Rt^)RrkKFW %[WL5+4O2:C`q#M_Fp@6q+8DD0h;R@gFQ']seMja4d(%^#qg+5WCDck+"qMiMok$<";6%>XK)g$Mejt`P"oI#iB7tJ,u %@Di$Uoc^hW?h(-8`/MZDM&7cHEMs.#DZO'13=f:=3U[V(RWH%_@CHqKO+G%F%[$S#C^=L1bI-ceZsS7?4iRa@8u]Bq%jZVJm&Xd+V/ci_M3?4no7-#@q=]&f;9X&_]<[g'^Dp;Gf/NOc^8EfJdh %Sk>Hq/JeiP?[9'ae9("],%KBrhR(mjV(1'7VMoiMhHGWbcWD`lh4Tr=%,+8H?s8-XLo&'Gegkdk8Y8\YVrJlQT %-a)M:J('fBqq^\9g$a&3AH%-QC%f00$JBpe%@3s3(?=rrE%Jr9oW9C#I*$:k:.ZJP]WQo?&s%C_)AK)TXQjd+FKfhou't=U`fufp4ag %:-7L%:8bA2kNOh[TCt+4mR?Tn$4`J!It+:R]:s1SW*]:VCI*J[_5#ouPC_TbJSr>'+F7BWR/!WO>lq0c[CIMkXo8n(72Q>b-Q713 %9hQndMr(?H>jEV,`.:dq/@XmCI:_6mT%9)WJP!ttp, %b8H1-pHUEW0:Yu)573\GI!25!BKu,STlUKLq-4m5;_$'WCYIM"<7n=O`E>KHFA^>bK(Xt$5)eI9kq[Y16PkGC_r[SM3kE%`4A)ej %B7FSb8pKIqJGu=j$OmhC%o/-dN>,1!K<-.ab#WO".*q$g-KO^SaNq(L:^%NmQ2nZ`[qgREC'5&oBXhpC?(o%i-pQdfY-!:)W9p'" %`d<=M"qG;T583p84(sq2oa`)8?fMG$X4Z8lKu&Z`3U"oLm"IEk^hRPX%RK_AGTC8Je,^t,>V9Fg-]s#Z7UnQ0F*T<>D`Q@H %.h"hDrNU%H6(#TUV@NdIqjiCNgG%K;6O`/l#o2J3Uc,gNOhd2Jie#!F4"q"on,!3Gmi4U:45N^cFAjT)[/u5k3eH(H!6A-gYfa-[ %Z0`8/g[YjtS^t[F[P/BQ`uqK"L*H)!2Q5:U+3Hs]*#gm?e[O7)VGf^tE\hhdYh_RoQ4dg*GRtfbgWPD`pt0,d*>kZN9-l-b6;>R+ %;`'/O8iBlSH!b^4SEE@WbQ^9!),ZnF1DD(IX42X(gBMD-4,(r3=ajSbV2XF9hbE4AO>ns?^Js'87a1#oWdUt"d8Xt0Z">MREmEI\ %`>bk^2TuO>F"-@Q0B1Q#)OpN\["i2Ume1>,?C&'@iH:WIgV2rOUor\fVdl+NU7KRmJ$_F_hD0-g%GpD)aF'o/5hdZanGp;d2Oa/R %a3j8J\dgLQm6$j155.@_],aGKhW[@qokl/JAH/5?C$'a_8UKiO>tOnnFuto]rU"bUe'ImVPEkW\<73<9?i-hEOc+WOE;=lWq^F\Q %f@SmH9n;<`1QUVSim"u43CD2KiiTnIIWQu;1(4aYnuUc-C5qeK9M\5.CSbh\-)4P>@D.r>:MX&roA+btJHmrcSnpN[SG[(8I#q)W %JB(+c,UVFBSkkkQJMhsjB+^jbZ*;WdGRK'(-iiol;*$Y#p@hN`DqS:MV\Q;Z-1pB8hTA:Xa'2b3+'n-M%2WA2cke4MV[OppV2e+( %;9caN?W_UMiJ:h/N?P.pL?OJ02SY,9k?Zha_Na[d=k2"WtJ]C-%E$h;o(J-ZPsQ`E'lWUQS.TB.6OKB %kV\kZ9F.i.[Ob$m_&7$X:;&$dkig^:"NaW:'A9f^(S&LRWRRaejfrYPok3khW=gIf7*Ad"a0ZL#4XAP]Vl6Eo+,+`ug)(o1?)Z0Y %*D1ga>5Om6pRN40In=ER>pujPM(Osif;N-^?LTlbSF$UkhoqViu0Tb:ETY#))N'NY]S4'0X@30c"S]n'=_^!r8VV4&^5u;0RP,p(L?8kLco:d[e`l'8c_B$%a=+61WEtc3UYYV&`XE`4/WA"c/rVI1XbK8O %,0Z\L8hBUl\oA(BAp@P&c(Ntl$=2Gs+alkmQn",B_fei'B9uCE\KG6:jP6[mCf_A%;/k12hPW59/:WE[Ao?!R+i%I9Ycc9km4rNH %/"hD=egq@J4Y.?S,P(3JD`#`umtr+nB"UR#oeOVFeQ(X5.;J7 %i):n[-&0o?""[4"p1@=B!=b(W>6F3_S]]FbjF2KS'=;Woqu3eT8@A)Dj_+0n:d?paLZkjfJStMSm[q+@^CLX %L4:V7FRD=2^=Rptq$/O*lmGQh$%LE`2#Ei(Ufm//-"R"+1MQQ0h$KO"i_Z*BDO7Z^mr^*Up@#PWB"la![!0:>[BpHR[rZ9@j%f>( %s2n-]ftlR.MrX/"^a51/kNk+O;j0FpaMZeohCY;+l+,]IJnms;A\-YL=aQN([qjQ\9qqH\[)Ya[]4pY@'&CafV_t!7[0)rg_)H2D %^)_9+g((idYmsnuQJB``P&BdVMCB!;48$=';GZ?A37n.`_L8NRWr,%jE]2jZMb=)rHe'GeU9@*IjKr6S/jl,R*)F^+_QS'6dC^/0V=ql5r*<\PF3P8apr<<11ADP&IdJ^)B[@-_c:c$$sb.33HQ&dFE&*gb)W/5P+4lu6_RR! %.6ZdI*[j0]a"U=h;&Lb-p8=eS#`#>Ei;7+lUTC&WUSC3!%_f/*e0/DD'NFeP.6I;C>8)dV*TKSs:FSBtk,C\t2Q7tbp]=a6H+N`t %G0`$O+/S>NF4(Q$R?C1b%6Z$).6I0\<-!0G)<^43BMU+>8Ls+b1]]+DS+tHPLLMbeWR?Kd^Ih,.@2\qZkKq9LLPkd'XlK#%DsaBkf.k&;O*2"BL*JNN42.< %O8H9*\tcoVb3GGsV-R$>8Aj5+9bV$%;DYdfdp=Eb+ms]SJ7/rGm'f,Vr-f6a['q6KV?G>USnsf-ep\*IR7>1UQ#58t/=SN?Y^%a_ %)kPdCP;be,_@0AFlkDq/)'81:8j]-cfe+R!Duc/>QP(3^QH>VmPtP_Yb-kI<"(U)dea:Y1?]hchah"k#\$f;*+0i7SqLI!`klV.) %b!'9OU\"S`D,SAuQe-&g\nj`8G"MM](k-%5O-JNi86,&>nuE5ADL82+rN3PDaBn7rEY%/I-Y%E@.$RcE6Z&')47c>]'54;j2b6mE %P1i;""t?79.D0S[lE>9`*Z_Jn4Z`ItIk5O7b^hTu[gOAV&"EpY:Ya#)rh^oSp3U'OR=F-gRf-Q:6K\.c8i,Al;O[Q%VaC)!\Z^Q8*qaIZ6s9TmG\+)SeB:_\4gLq %(Kk-0*WqID\O5q6d$@JH?.afu<&gJtPA4ht:XACd9jfGDi(oLjI"5+G2%o>9F$h2@%8'Lqf>Tn'c2Pk24j%:M[W6KcmsCE\erFW^ %?4ZcN_<E0dGfi/2p#tV$f:s,ZMbm]s*0hH!PZ5.!6iK>WNs]r^P^OG@H?Ad?Gs/1J]7Oc9o6P@C@i7(I %<7Gqirr?pOS11D(7?t%j<(L1'S5)Pf_EtPSCuEue$H^GAPAs]aAsLku)sQ[U^8!#;I^Sk]D<@25;Fkg:pi!ksCIk\Wd6j(Cn?#eE %"-0%id\`9*R++Kgeu15"Z1cIlmqh/-Du!='4VUbloGu*!CK+/_WaUqU-49XF.W%cBTpS00HrM>lJ11P!pkfG]B+:>)Q %H%#c!RS_7-Kb_1`-J\/SJbF52`gUujRO0;"LSbB3.RHrhbgHAGn\*^+bL:`MRZMV4Q_=^W`h@*5dWoMp:h>>--5E&^q=J1M4;:L\ %168K_KOj)h4<_6t1f*>@655V%0#\Nf'14R0jOH5A.TGfXr@;t4$e7RD>+tDI`="ENm!N8b/rqBrekrt?9$+QpJhAq'd1&IkN\A1[ %^HRj:DOO&('7tYpJK*8HG]h`FR=rn1_/"q%@&tp,)kI>?h5_H3N %d1fE"b[F7kGn"1n_`3aTA&$DPN.jTV9@B)Z(@KTmbD$snQffK;+&V7,:d_QbgYGICq[TiT1H)]-RS9mu:t#+//NYh08U++#0d8Qn %GS:lJ$E\!m*lI(7P,bWlq`+Y=$"5+J7EG2S&DIsUTr8JFXHr6&(A\0=/\8#nA=_rHNJE*ZArQ8[Q?FA'Ab[4RWZ>IDIVk4kn&7"`G_UoUI3'6nsNj:JoGGtBSlJ<[pjGR%:\)s5.,:N38J)';?e6Z?.N*sZ>hGXH2?/sbp1^37qDD(>I2_DEcYXVN;"!bY7WjL;G%4JQ]U18om?D_r`%m;RD3G) %DN@*Wqg8U;5'r7or,'27p)eO>B"uf=2!`uSKC!gZO(Q)[K96%<+4?*lH'(VOp\[SZft0C=Zet.Cg5t.R:"gu)e"9=KlSC>>co4tX %9umH5Th?_W!='f;o]c`(5D=K/Be*h'Y:s&c>Zrop22eCU?mhK@r#fHiY9IL\JfUk;g0[Qb7>K&+tY>3P:-YT',T@ %p-,V;lnfpci)j1WHI]V_NC^&Ji=Hc*:o!I$@WB)BgbD_^X$q(U@8LC0eMA0&8jk9X_A0V$GZ,iib6uqgf=C=ZHda95+#Tf@pRU,(cR=`T\3LL/EB4Tb7hs"h" %-kIqLSkMPurA<6+H'1&G$ZPLgDsuBK,^/V&<$K5m<59g/d[gbUR$MWh7#"iY:F.d?8gb@DRg6dD%W,IA8n@-.KeDV`/JH4P5s:LS %cpKs]aO!<#'qCemicTF@eYtrk%T;MR%dKHIL*#&HM$tES;i(o'1o]Eo*dTC_=e/1'_b/ifF%F2t0!IP%ZLutt/T&6HadR_tah;,s7K8/`3e8dBs\.q@H2kl4?L][$b.O^>Qe'S%437_GMBV+\KkDeQ+;2'H/T.\IL8V04EVWopjhWYM%l/*o=qs>d40s %^6+=Ui)cmQ;\2ZJ8%.-l7BH9WpL^,02j8mNY9i3/?V8S(-/0a`n)@Bfg>%m9EP$@hCYWJ7(GQ97;4G(O[@>0lU./T'/-p+G`Rh!JJ2TD?Vt,3;7"m%6lq@c'a$YqLSpC@Vm!f5c8*Z(Q3AjhbY/@uhE/ %<'"?]A#UjeU#TrQf&EeOl^L^b.sdi@?RC\eSOGE>4SuAOjHB=(HVn[nN^OZR/I'o*#Oq@:+qZb81!,_?*]G'$NS!AJUD.$\_(FbK %Q7<0@?UX"'P+q[KT^FiNAX04Aon$R%ERM5@!>Iki#Ur=:QXF!J^U.afQldDCTrnK&Ef4Tt*F0+B)-i6^c+k]2HQe.o"JMNjL]1HI- %UA`F0LM3";q*Qc%&sE5]PD&!-d3PF/$;&HV30ba!(Amb-+p1F/$mO:HM4O]X+Gl[VADdboo+[m,?4PO5#-$gmJbn=55O!@2if<)a#4E-r!Bq-fWR_4q1^?=5,q1t'-Lnc8a/35i_i":B4+V*[gR]':Oa?_L[57qhcRH5Y:eH.;PuS/>P-m;k;)6p6<&gP8'.n>2,m %^0^FqXl*sY3DsNGE:4uWfb8Xo!5B+*0f?>tA.#S87j!O%cPT-^$Jg>,!Df@56ilL?m8+.j#7jE0V=d+cOefJra %N7"4N@e..ckRAq_&aP8#BnVpQS$fa'c2e!Be*\4WmbW==pMWM+H9&b\?Y-$ZFa(ag7naKJP %@r(#Eb+gnGkHJLQ5>^\dbC`6f`/t\IVkf^r?m&jg$eVcc$m-? %H*VqK]/9Durh[=-h&`GQT%uT-I?_@Wbkts81R/2n9\pDE`m%"4c>l90XHHU`Jlk\mBZ^Y3@ca&`0LZbMc/T6Z/&)6f@nW:I9QLrKVR[W$Ll&@'2(p+@ET+edQV\*^=0.&l %VO18WKTM;I2T\Cp\DT1k+kD*:kG/*kC[L9]I=E'#I3ELp6]?[88IQCjWY&jg^rB1_h0u0Xlb1,)s\iG=7jT7Z<1;`3r8*Lb]DOL,Y;G)Bu8rEgc":cQQ/aO:]*_Y`Tcb&A?iVb;dU41knga"]6B4 %>clH^@Uq8gEbUasY*Y:e81@Y85kHY9VoU,"^I=GW$N6plZdXuTA@t*s41Q'ESoFn^5*oR]ZA%a_$n'&/7!();L3YlcmA;TkR(ZK %50V@K.GbR+oB9T#Ab$4DIQjah16SI&@]Xr>"s-,n^H,!^m'JA\c<]];7D3[*G4\o>Ge,(J@k;3t.&MrFN0R8^adH,-NH>NQKdnSq %muLL>$BRI:"?@V+)OR%a"D='mRpb"UHq\ZF2[Lo$8iD\7-b\kp>/T#R&SL?Z(4Lt?^A\HUk!\k"q-cn:QYgi+VB@U@S9q321ur@G %EU"],o0gR*jZ&!d'2aYDV\NGeD-tV<#]'OVar!A(7&0s1Yu48Pj@%M]Jt.YhBU>8^a2lDJ>f!3mj@#6pV_*K?F0B,9kJLN##+GX"trO#qW*7WRHf^_^;r]eTQ5aIeXYhGS>LDaQjm]n4,JN %ot48>-.>a`BrIr+4XZtqPtFe>4Y*(&E,J!$o3Obm,rlQ[#:Xad&+u0A\q;7UU@'2HM5Ydb\UmaAaOSmDX=hhUW&mPD90,UA)X8C/ %3>$B=8PV\06'DZ$m@j)SnG$uckgLm5ih^.1e?44bo)g'+s0dA8n/kHH*FJc]rs(^5"4C52$4Q\S)SAHPs+oNED-?^"0JK9<#Z+WO %^jJ&WF=PZ^WFcC2$U.P:]0])@Ag5K^o*rL9$jO1-'e2F2]*k4aeuU['%V`5te)gi(ZkV8B$+7V3QM6UtUNZiJ-/GB'E&fAbZCMX7o"Dj_9qR8C:2:GSq"I,\8"9RMBA>?uf0Q %$[T+c".Bp3YsrXMFXJmHC+)aiq>)FQBK!ATdq)rr(J6:jkZ5TXU7F'g5q`r>"B^;bgT#)^]WVeubWF%MLppT3o^&0'g&A*A]TC7T %FL07qC+.r*L$+&iT`q"a:tBU3hkr>:8[JS*iV;Kg=j6![r!TA/U$LPnE1LZ4=,mr:B\)rL;_:f>9FXO[h]Hb]Kbmp]LWs5c%'6XqgOb"?5!B\sXcSE'P`ss0NQRSi.Ad=+M248pVA'J!LCUY,Z(\5JR;^^dBG@Y[Ma-aH,= %7W,l"H5:u'bpC%"=L/,-C2ft+>_jE)8Taj+-ANFH"C_YY5RsfmE5T$\V5PQub$d/r)IS\KbBRgt!R)[/.p(WEOVbNIQr$s&(3CuY %jOk`'FRe0)S0*2k#iclAm35Ca\PjiZHg3jOBQT.2GV@WqP'[`CNf %^0Z>>_@A8<^(o.s.<`f%.fHk=Up*;m@e^)mAr#h,\JDFPhKqaIAHP#)(N.W%HQdRR%e#*I@:Y.0bKUum7s7^?'g#*(30P?mc4pO. %&T$["%F#A?_[FAgOmB4Rk.WGPY;akq;"9h^hWI`%TZ[[(9PV'O4&en$7Mh^GG/2:O/`#?*!'@.%Q+n,WA-^XKt!8X)"df"dEo^f1Y/;1puF32TAgr1(^1&;9!c %[Qr(se(s.r6-=St'cO7%El%jslt1*;[Df)"O[0gUYo&BG0t+c"h/N-7;7&lmn(*`T!O152UG;ODA[<0%B(JubD@mhl!+Y9H3af7tm@@`T-%gI>D!OHp);B#0<0U5eeqQ@q6`*Lc=D)e]_bK)#V`b/qgGuSp %]mU*c&,=$'o;(g6cUKV$,[63L53*fKa3K)=i?*:VZN%_$OT!+]4Q5c)P%MG_Rl(#urWMUQn0lP/[ne1E&%kN@hsFL6rGKsP@/mZR %C%f0P97-\crCd#9p3N,"XmYj:o2#>'$o%T.H1Dqi(9#S+dm+kCbUU))+?_!3_begt5VFgMe%fVn9Bg>)ene!.Sk?m+=?;_eqOXS4 %Yl&g=9)"MCWVsrM^tB%7b"04D'[]Fl!oZ:P68BJ!d.okegd._!HdRb"eGC)8N:HgF*ALTELr5#+I9DE6)1X&777c,/XFb596A5]L %dPh[(2E9EHl6qU*S6=5T@gI<]'hT@j%pj.1JL,j9lum["p?YHdXb:J*P$NeD9[QCV.smo>E37aX0tdlgH#,qL48lsWq$nb6[C_db4nVNU-/21j["$<.*XS]E0a]nSPICM;uu=S?-q6,mUrT"Y4rR`T8_Nb9/SDTWK0DO?pugGGD;jRh.)<,#9[ %9A9$#f1/VCph3\#O.^:b-i(Vo_kD_X.4#BCP^H+S20@3@Js1QFFkFpDRAoB)'LNB;\u(5ihXa!fl+2ZF.EN)`<,f0rp7HF;9e&-5 %LF2O3J*6Lpg.OKe=m'0ra,* %^.8K!$&c5go7^ic0>eT3)lW!f["Xr$Uo7a\BDY>aKkLiO=`ge'&R6KE/*Gg+OXW[gW!a!EQ7:8VK[]D>Gj(^88e\.k6F;E7.28dA %6.IYZG;D\APHA_Rg/'SZW!tDt'VZ>l9He.4"EdBMRmd7@#,CRQ>IuVJb)-J)8 %)[P,;">?MeM*r2#,@SuP%:L6Se?RnEN<`CC,os)/[ZXjSSpdn,S#e^:"5DTQ;&G%Rm/sK^&@9Js(k"O'ZZ3$$RLMtG[tdJt#t\5i %N$QUL7Yl9CO7DTg##ST$\:du]0c5mKkk>7pH]+Ts-Gn$d9k8c8hCp''3.;:m)9?_?get.P@Ek5CIE.M8VnZZiR`L,p4iCkhNj)\_ %)d8mr#id%FC8>j7Z0fNqL1A88bLW@k-OL:jhY-)F/9lHKT\fLBP&ufUJ6ACO4]r_;#+),9li8j4ZeNRoL*^!IQqnG/bpB_e)qk`J %%!mul,Md(ZR,-VC1Bd0n\dI4[HRa.LpH>9`%m_iEeY1"G:=:c1^,^r@(J% %e8Z'!Ja4HU&"EmX:Y`u(rgj4+juZj>Zek"9aSZ-!dd6]h&i0L&Pr/BocD9.^Fsg)Zml?VE^=/pcGJDJ'[#\Xf>A7I.:<,-i^<[K[ %dMEVM"iu?mThB!F5,U"H5B]%0^c8R=?_Rn>o36BYhKXr=*t!VMbEXqk#8aBnR(X5I1=O@UMs*\l/X#:ZJ?-%Ql?K+_(598&B-DjO-;jsrbhHsHA'N'bTl %p-,V;=td>m+^Hc=^/2ZhKG8M>6>j^:FEs@s(k]rsg9_?QS"E@k-'&';/2nm,Et)1c64R9HP"4=s$=2FUU4XGSd3Xjb'`q]QS;<&" %O-;2K*6*gf/)t/<_l5]=@kmej2?#k2tmi3_6qqW_g)`.Z28"d)B4d %3tGo_A=*7&*Mf9p$G'hag3&@#Ah#i44Z*rtUn4#==)be3,'L8DQXs)G]^pf-*<#Q&rS8"C9JF %,%T2/,YCV`73[H8>r8P>j=YaS:Ae]BSV*2hnM/PR&1&TbAOa)#9=TCRq"-RST]q9(Y([:hhAgCa,`df/$njl@]*4Gl\!BLT>,eeF %;e3L1[+0,,25G@"b9>ni0B%?,r376I>52',bbH/`UOsPl_W&D$pi(fD(T>jQAe8/@d@b'56WWt4 %@=63?L[=6XTh6M@X>$gYVG*a)OrG;]Y#*'85Wh?D:FeC\"t^f7ZRfi^QtY>#k>i6Nj9D43XeK?Zd[[@[cpDb7I2u=K2*km8iTknq %_keR(6rR2b8quMMK.aF(LM.hc#ukaRRgM#,dk.C[C*@_6L$I).7kBGW&^0.cLh4sbC9eE$UF$A&.U#Y+bgHB"nY6]>U4q*-+^2t1 %OG,)#2-G_N;Nlea.qCB6i)I!A3+,mbOGYSW$$d8kkX%b`'dA=\>bR#^Ugdh\Eu%V?rAIC77tt+p:o`*8O=&r^X0P'd9BM#n]L1L*f=.W+eSOOI@Lq=eU[D"_Z9%/Aopk3_2[Q,(mN89o+O$o7X%b2,EGA %655V%0#\O!-Ib^4MSpa<6Ii6o^Hr12:b>YC'tTV\r:2pprNUS;MHWl@L$0O7=X[7sJuW7>mO*o7c,V+[850koK"MLpLk\cjKr?+O %=fAVm(6])#-&[E)EJXs!ObIHkY82c&[nbd6[QL731dgE6)15r^l6O0WFm[Wj<:Bo0>QU2ja!fA43 %JZ3LG^0tTj;SlF-a*se+]ij&kf-Oi/?eeId`B2)L&)3l,=O:I702HLaUX3eML1ZLQ&;3/h+$gZ\`?NO).P4q\<]nT29Pk;ae3nhM %"eHoo[n757-I&$"LpiT@>=&6?GRkNqnOjE$&J2;'MlY9c:QnaLpcS%\p""(#Tr%C:A8jc8iTMDZ.K"4WYLkZ%AR`uI!`!/X %^.F7WHhn3OPgj[;4rV/iJWThZ(P:d*-h;f&lUI?=?:WGfGIirL^"\s:rI/t=b]c,_ZJY%I2X?o/jiREp\'jVe4-oU2G.X(63UCl@ %m;(ME?KPVjR=[g&N\!7$RJ\LUam:Z]%g*(@6@/@G:SEW:Rf:\Bp,'M5oP[XFo',$ZRj&WO-4OCRheTSpj^[!YVdFt0c0r>#k%T;5 %NK#IOpJ>4ARbrIjl?Rh37IS\4:00eX%WPPS*;UHPLTAseV,k#ZDt8MmQ^T\g!62>=8.i?7-\r;oqQDZJ4V(LU_i8M8W=?3jp"bOW>H!OYE[pH/ciMcP"$;ba'Zs(Si9ogJ`Q"h8aT\+>.$9k&%$';hZilSo0/"@Oi-gu.jBc5l#R$kC:W,8iPoV$jNp1" %?.)#EcT(Pn=%!N]e.n*5%o$du\Vjc!pT.C`%UGmW-!f$nN'eD(7HDfa>nK)=dA2M\]BDC`nXJjbR1ET6IWUWj+,:>8$bPPOSf$lnRR3M'R,mlMZ9@mQ7-9n'ngGY\@Ib0RkR/ %o\Lq+9O94n4*Vj_)K2=K.)^K?G4RYFd:P>srdYp8H_CDupf?IYL(s:HW22+YoVaa$F_2K?OKG3f]ET!F=@IuMNMP'CAi,r>3-;^S %+[+t\8N$9/%k6_q4ko(WSoS3ShONn`aO\`!#O/#X$2WCs5fTUS9?!ZK@3H'"6n)BK2R.m)a<>scnE^q%W?,cID;a"ejH)`CeS8Cd %j3ZmjNl971QgM&Ob?_QTM5';W2,Pbu3'is._;.NLUJ]3?#rrPc=$g5K.(YL[+H!=T*/HqH0-"@`?o1: %GbU*>#G.$OMC+q^0?"Q0%&mB=;^NPO'"r2Mp#U`,724gt4+;m$2&m/Qm1Na>'_2e\ %m;cZT;380&kss!,#a0AM_<5US)!PAt5./.o"qk05gHp!:"(=U3]*!MV#Gu3KL&NF#d+JY51^3r$pmRbjIfDhb?26OGo^I.R$W8j. %nDne0KD %1XfWn4hWU+_bk&8hBOd2:*^s_5+/?bJWd0pU_OcjL+>[E)FFYibAI<=-;orR\B&Yb:nL(;?^Bgc`pp["H0Iq/XY[3%o:.(jVMpdI %Y-H..XOMock$D:n(mb^Y\7th5EN:l2jbn?lbZ-*-09-"4Z=tL:(74kj\"kESm9Erg:bEQ`V)12JBn#l9Z!O&[;0`HrHKZh,>,N83GXlKc&F>GAbGAej6rY6AE.DL4&iUX2) %<(cuBgI`p0HXeMdGAf&\jY,Co9)60T9,YIW)bcZJHafBJ-?jA`j0a>/4s[>:Q+%67#:ahQ+deQdlPqWng(4rId;CL$oWQBln&c7_ %I,NRl\WID7Ah;YVDMFJ/GlS6o]3TDR"?oSH=$ObEhh!eJFTe=j8c;U7dM,>n;GgZ$je\\6tb&&Sq5H:=FD#L?_=Dp)L1%XNToG/IZ%>orpE#pM]#'ltO$,m4>_:_&*i:MJjmp>6o\+8EDQQAqk9 %)T0D_k;N6qD\'`=HsPR_poD\l58<4U_o>[CW91;W)1?R,@Ul$nV+ZI"F5$+b %9E!n*W(J20HD05eIc,"U40*hb2<@\AZm`ss6f^Mk45h-ZGfW1gSE%I=,3BLtpH'ss\A?TlUo*SJmpr69]$D$OPhflD%h=Ke,5<'GpXSP)'"bM[mR(pr-4mkVKAlu?Y)kg"#:7rfb57hg8G.Hc3WsX;b&q(+9dabhWt3?aHhdOMmQTL6+5Ig,+3]TM-`";sD"Ti!K2==E^*N8X:+Yj-bG=)`it]*B\#^;;9mk(i70H?n\ZOTa&Kng:u?,/W(JicT_*_6VnNt;)MC`WqDWp<BRZ[8Pb#>[`al*!NYIdf^BT;_D=76eWNWqJ'`I"?qQ/b"j[I0A\K\tCjJDl)(oO/3(ti:$jR[*hZ;D/o %Map&Q?Wo0T]"O=r-9-`8R1>/Ygh%EL4U#,h6!U^;rq:Oo/T10botak)NeG81a\LH)IA#'T[K5[rm1m>o[$29O=dk]t?b6L#=:iDL %k64@KCl(R^Vj@I\/!:"Q''LQ2"GTTOg)T0tc36KBo%aB+HY>%"BRo;bJ0m6'^N7Kp$](7U$3Wu&5V`(FBlg;[21Mfjg&F;AI*@;+nh$i'5X[;fp3%KK8*[2aD$UoaFKeC?E+Q'T\!:=P#>`l\S4\g %W8<'UKJ6AC5R^P.Kep(mPZbp5L02GA_LcA*e1C#m]Y7=,;NPtNWaDl5*K_1u+MFXlnT?08cEa=';?N`p,CG*emf)\1j['`D.R*6&39RUnB,CR9lEiS`hBFALi/Gk(e-RO^A-de9e!r%b_o;Tn/GbeZH*ZOC,YoXpa_(R&p %iW.bU`'=QV4LP9J@N6l0O^]BseLu-]hJEtHg#p9o[V0[S3P0T_#UKWN@,]OF=/`%m7c!('%P+,=qJOFj.nQM,"%cC)=!Al'j\_g# %8P4,t3Om4,PaB%9ma)<+\0.)mQ#.)7'#Zdj;',+D.l8t[MjNjb&sClq\W*4//L)kuA#"%,[[tIc:?0`k/,Z>EHPQgP95g:SQ=43c3= %dt(8X7r&TlG0+dd`SsDl7eA$n^Rs2K=OkKr76;PJV"A9k@f:OTs1nn(9qFO63g7X@%CFj*ND6RGjC#>GfPq^a`gkUZ_p8>0ndEj% %q8d`jQXJ*h0KD2%c]gpHa#tiqI,k-%XKTUlh@^BcL7=HRM]RFi(7H^4C.AuO9,eCD9us6K;03Jj+Xf))]TD2_$'n*D?Y59c[X4V! %Q^24cBhi=e:JFEn#g&m>^K3f6P.cW?:R"@1-hB'D$t_KK=dGMF_$M'qJ]UA5sE+IP+k>SuEO9U`)\+snL#6p9RCR!tiT]V,O3o=f5i12f9P;]n(9h(*1q0i^,,:CbPg2@#S&"bH9q^ieJe?SXYoip&` %I`+4pP>M/me;&'$e:%d`*?_tN-c5#UJ!,pUZ@mQb]P(bf4]iXd1Jlq47tL>TmPK)p\[KJCVkSc\4_/W"XY^o3=Q$ %S$^DpeZ.d6q*VG"pL/,K3+Fq3c[=&mUUahf=1%/-/J6LWRG1p<>e#I0GqQ$1&$$NH@ImaVN;MNiEEd4]$V+D= %)q3M`@5Fj:;up*lA9m&BRf*)Y2!NJ]&/o6+i1!T?4ZT8S]Q?Xge^q]U@2W@6V$)=JQ]$)Qg=le8$;4J6.hf9dupCmEH!D]]E;`H`8tMjTtBI>QM%U4Bp6^ %lgCk4($'q3;4ZjOI20DL][322>oYPJ'ksO,c!,*en-\a%.:\-sDB=Gp$B&h54>l41"VbrQdMe`8X(S1$;:+hffSUb?hn4u=n@,le %lD?;8EFUL3g)'rPPfu1?$lqOig0l+&(mA@`/*FRjZU84QZt"?&H#\EDV]qh`GBE4>es.<]Ai;:FRTk. %`K0WX^@X2WZS1'-mIatDdlG*j;-Vguo@B_$,k`n#i7D2h#9Xat6r]:7*j7HC'rj]C##Z&T8oh"Y*^YNSE/:'iZlsI%&&'3QM!6cA %&+Rk/1!VS[OO^b#`EjOs\,_ksBR&,Fk5.PlG^@`b8u#;s@aH8.:)GZOCY%r'p]*^'*VNc %e;7Yi"E=D$`3k@lifT`@e&KjN;WQfM6*Ma=kI6hfp4dIk6tc)OAaM3*Jg\oKnhaD:TYXmm%h?2G&F@A3h.Dk0!:5N3,XNFN%Fdjt %b?"D]>2PCW?Mo`0gi"P3k4)rT=3[VjBr]U]gJ7'hMMfZ^&7-B,B5N!E-of84m*Z%!IO-kLVtkAg,Vsk]oj%E&bbW#A[QJd)<4u2NDdn1 %?PHPt.3jZuGb(GK?maQt`ep:u[(.+(afZ$iA1gcU=9b18Zi-G]i-"uU\Wb];c#O]'.[MIGO_t2j,B*g\8?iNgUt@7)s0iGWOgq)S %MA6E02FWL7Y_7cJ;QN-&\Q2TZ,JrO.Uf[gA;COM%/41J(GT/)t+YnI)Uf[h&CH,) %'If>6%m!!$`A/-T:o%3JU8tA"+iQ4Hg/X8E"^8S``@@gK@c_Z3Z!p?`]OJi8A=_DX@\oo51MDsfh(WO6d3Q>A2h!\2Lr]*i)=cFhEc9]hMY1E4n#"D\*(F;lLnJ6rM!O3T7;3Js7*tm7o.iXk]?g-X`n:`7_Z&L'c%jlnYq-G %%Jg^qF3qm]?nZu&s4KW+PA6upg$VGEF'2_=]tp)_Jet#$)Z$(5l*BM_%&Y,\K:qC%"#ofUY@-::K$=uIJZ?5'=hL0LHJ!T?@(2mU %]97N9V2*WLH+#TJ]U:E3Ib&Ei0KmY'=X>^UA7!OiHdO!Vo]#g@VV0c;G,o]G/;1AZ?FU^W,^XUk/EneI7V>HX.BjMYV2b4[j\9p& %_[kngAc;XLWi;O"'El5G*:DpE]%oo^u"o4[;5hg>/NoR4Wei:W\OOqr+0H]Cs&:m;YqHGlBT %\aXG@n[o+j0C/=uSPhO./rPBlcJ3&1<'c\Ni8%Pa\?THa'P7r?D_"os.r^M7]PlOcYN$/Nh7`^ZO5V28X5JR6MLW@_b5C[tYhoGWgT0ArTO8kpRErYaoa"R)Ha87O)r;1[\<2BNkh7N.UoS:'Y!u%1oJ,~> %AI9_PrivateDataEnd eina-1.7.10/doc/img/eina_inlist-node.png0000664000175000017500000002127712175475327014735 00000000000000PNG  IHDRUtEXtSoftwareAdobe ImageReadyqe<"aIDATxO,TIڴfX.^JMBtn4 Wm4(IVb6Ep]dcv|A? MB4 <83w3\Ν9sΙ3{}:oL\}Sulq'O9rBoϞ=\͛7g۶mk|l}oΝlvQM9qD69&)K.V䯪s%] mSMwmq_FׯotΨ7K3UilCs!"mz%z) SqqGjlr]51LA:0AtXjTq:')>aQ#* 8tq]YX D?,.;$jX1 !#FajS8-m(ڵe`:K2bqVͯO m׏1R*7: ASpm#qWt:­61Ě7oN5u q<541 <6-4cQQ:"~i4aܹvAX"ȁ'Dbhc˨w˰YmYzPF:,b9N72!PփXtem.IgƩw7싵Z64H !ek9*0J􋄬v|x2#FaUq1ӛ>:ƺ6ZdȨ?y^Έ|5:qwX6iwXl:~0/"h7m%Lkz^)g)+j|XA/\VƧbK8`#mY|wk-LGb4|@GXEp7V&GK'0jDۣe~jF;rubjC?Wgk{o+eR? z*0LI]^9Ϥhz2y.(7R6: TʟFhUk~[eycH#Q44t@t㹾i}=M"u<Wפ#Ѳ+|JB۶鄺2qp1OfLΪ#\Q|:0fB:g[DG^y߻woA~cj2E4aYhCEwiM ܿ^UJK ,^6SgVEvj]6j*Ft k1B hg8 8ⱆ*wH佮~aHK"$0j14Ja MS K-8w#][ϸ H<0UYU}Zu5 SF]IXRUShqtOcddYv]7"ׯ޸ɢh.$ٳrΝ<|w1bm۶lϞ=٪UZ< AY^iͯq)7n?Ncn޼9^n aQdj̓[q2z^re?iFX l߁c_hwiӦ&ǧnٲwp7]6;sL>o]]U<'0rSݰa=`%Rs:ڿyfcǎFS>Ο?K3g;GςIӈ4) y(n86UX{%u_; km?4{\đt*W{҉6G:nlc/ǒ.8~ w);c1Pwm͚5|nⒹ$Fw\s3rc;-NPbH~*4v^t"tEx<"v)I1 k r5:Dhx/|H'Mj^)#qѮb[1~^;X}vZa䅺͑_Fw%SCsB7##E~J;a2e="Ο mq<y<+ubB꧟U+*WEk(vXi~)Wba52pEߩu46/=6:-CZKNi;a%< W 7Vڙqs޽7zqhk8=ao+ Hځ:"hXǏʈ8cQ]ÈmX/Mꬶ-uU>%?Uy. Zq 75 ^92/8oR52!Dfwat!tM맊rf-Rǃ%ȓ*_3gTрtSѩҍU" Ȑn/|U"čNǽ۽%_aOq=ǑNzy^هrI"\pȌQT3AkFq;"`pt#<Dsyo! Lp! "\կҧ~j%"!`o~j9.taV.;~Ν5aZWo׿5{{w\ִ VB d%#GeKKKWq<믿X_xqI˒OO>dT{9x #/>RjM] o[@TqK\ vDcVDІȸA\uVK*B!X-! Νy ~箃X+SSd`~ zrqƈ#VPd 2,,TbiVr;w?b}=k@ᒙbTa">/ؤ]"sSmF,-_|\ͦp 3ճ>=S61B$^d8vX.X?`!IoFT¥ qKX Z\r;+\2`]񉠇8rEg#bd pI+R\d_D[&\1*.BYDbүMX8kKᒙ#]D Vqb:Kb铂\9.Ċ\W*`Xa;sR8͜ US۰Lbin D0b\ \XbM# cN* +{dO#CZ=3z7W^y%wQ&].6;#ExGq},Zob<<ȹ}aXvE('Um?esJ&Dfb!~^y5z嗳UԩS?Ov´XA d[k 7agC_Z("2 {PF!Nr>ȅGu W@ K/}'G3DD5:oDDD.KDDfU\,[,/˗Px 2K:zӦM<͒#<u֑&ssy@/,SmMDHB|x5#&f^ l46Çs#8.kl O<1W'?e)G\a!N !J#t}Dl޽RXdV`˅ՆeED⌱1+ VVV /TCbux@1܄’O]t, ?!2MU|{gk+ r}7y]ߩ0M|qk)\gqmUcﮉ7|{ucԑ uȠteO7 ^/#K_DV&ZXPk/*Μ9.MQa!!0Ί 2Ed!4R*uBnB&*$qAx eod۾} meg~ EDV`jj;BWvh.$"" HWU:hq%""pLٍ7FJ?2ED G}4tzvA+SD. =%" ?˭ l\zusU˜X{rˑwH`"p'1)D&Y|ցrA"1$MlΝ͝b0"8 BTN8]x1{,"ڏhロww\7KR3Uk|N@WfF;R-aԾZL$s[seRQpm[껥]\[?nԾZhd87.Q^+yb?5N9r֑a<҂&X Ii#Z?*Sd˴zh-@ D'!0/5UHɦfH42LT%l$o[GNzzCfvxd"/xd6Fx-kYSMBp@Q0y8Q='ٿe s Z#Ba+j^#wE߬A_R\ۦ(O=T C8.|̣{T3iZ-ru5O#ya< y<R'`-B4 8YD^|8؈8ʉ y'[W&2d:V$ꊨ['{qhDЫfp8 q@$#؂:x;bUNε+I8iR{-I:-h&%:pQ'!d]Guh;ٗ~U!LBem,:E^V-s ]=y[0@m;Ҍ'%Ҷk}H-; [0*00M+y-?7:fN_>b73/)턚 -ۜB47]9`[ގyhzr[љ,mΝWmz N--뀞|iFזD2HC/'$=7HF pIENDB`eina-1.7.10/doc/img/edoxy.css0000664000175000017500000002204512175475327012642 00000000000000/* * This file contain a custom doxygen style to match e.org graphics */ /* BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { font-family: Geneva, Arial, Helvetica, sans-serif; }*/ BODY, TD { font-size: 12px; } H1 { text-align: center; font-size: 160%; } H2 { font-size: 120%; } H3 { font-size: 100%; } CAPTION { font-weight: bold } DIV.qindex { width: 100%; background-color: #e8eef2; border: 1px solid #84b0c7; text-align: center; margin: 2px; padding: 2px; line-height: 140%; } DIV.navpath { width: 100%; background-color: #e8eef2; border: 1px solid #84b0c7; text-align: center; margin: 2px; padding: 2px; line-height: 140%; } DIV.navtab { background-color: #e8eef2; border: 1px solid #84b0c7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } TD.navtab { font-size: 70%; } A.qindex { text-decoration: none; font-weight: bold; color: #1A419D; } A.qindex:visited { text-decoration: none; font-weight: bold; color: #1A419D } A.qindex:hover { text-decoration: none; background-color: #ddddff; } A.qindexHL { text-decoration: none; font-weight: bold; background-color: #6666cc; color: #ffffff; border: 1px double #9295C2; } A.qindexHL:hover { text-decoration: none; background-color: #6666cc; color: #ffffff; } A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } A.el { text-decoration: none; font-weight: bold } A.elRef { font-weight: bold } A.code:link { text-decoration: none; font-weight: normal; color: #0000FF } A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF } A.codeRef:link { font-weight: normal; color: #0000FF } A.codeRef:visited { font-weight: normal; color: #0000FF } A:hover, A:visited:hover { text-decoration: none; /* background-color: #f2f2ff; */ color: #000055; } A.anchor { color: #000; } DL.el { margin-left: -1cm } .fragment { font-family: monospace, fixed; font-size: 95%; } PRE.fragment { border: 1px solid #CCCCCC; background-color: #f5f5f5; margin-top: 4px; margin-bottom: 4px; margin-left: 2px; margin-right: 8px; padding-left: 6px; padding-right: 6px; padding-top: 4px; padding-bottom: 4px; } DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold; } DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } /*BODY { background: white; color: black; margin-right: 20px; margin-left: 20px; }*/ TD.indexkey { background-color: #e8eef2; font-weight: bold; padding-right : 10px; padding-top : 2px; padding-left : 10px; padding-bottom : 2px; margin-left : 0px; margin-right : 0px; margin-top : 2px; margin-bottom : 2px; border: 1px solid #CCCCCC; } TD.indexvalue { background-color: #e8eef2; font-style: italic; padding-right : 10px; padding-top : 2px; padding-left : 10px; padding-bottom : 2px; margin-left : 0px; margin-right : 0px; margin-top : 2px; margin-bottom : 2px; border: 1px solid #CCCCCC; } TR.memlist { background-color: #f0f0f0; } P.formulaDsp { text-align: center; } IMG.formulaDsp { } IMG.formulaInl { vertical-align: middle; } SPAN.keyword { color: #008000 } SPAN.keywordtype { color: #604020 } SPAN.keywordflow { color: #e08000 } SPAN.comment { color: #800000 } SPAN.preprocessor { color: #806020 } SPAN.stringliteral { color: #002080 } SPAN.charliteral { color: #008080 } SPAN.vhdldigit { color: #ff00ff } SPAN.vhdlchar { color: #000000 } SPAN.vhdlkeyword { color: #700070 } SPAN.vhdllogic { color: #ff0000 } .mdescLeft { padding: 0px 8px 4px 8px; font-size: 80%; font-style: italic; background-color: #FAFAFA; border-top: 1px none #E0E0E0; border-right: 1px none #E0E0E0; border-bottom: 1px none #E0E0E0; border-left: 1px none #E0E0E0; margin: 0px; } .mdescRight { padding: 0px 8px 4px 8px; font-size: 80%; font-style: italic; background-color: #FAFAFA; border-top: 1px none #E0E0E0; border-right: 1px none #E0E0E0; border-bottom: 1px none #E0E0E0; border-left: 1px none #E0E0E0; margin: 0px; } .memItemLeft { padding: 1px 0px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: solid; border-right-style: none; border-bottom-style: none; border-left-style: none; background-color: #FAFAFA; font-size: 80%; } .memItemRight { padding: 1px 8px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: solid; border-right-style: none; border-bottom-style: none; border-left-style: none; background-color: #FAFAFA; font-size: 80%; } .memTemplItemLeft { padding: 1px 0px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; background-color: #FAFAFA; font-size: 80%; } .memTemplItemRight { padding: 1px 8px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; background-color: #FAFAFA; font-size: 80%; } .memTemplParams { padding: 1px 0px 0px 8px; margin: 4px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #E0E0E0; border-right-color: #E0E0E0; border-bottom-color: #E0E0E0; border-left-color: #E0E0E0; border-top-style: solid; border-right-style: none; border-bottom-style: none; border-left-style: none; color: #606060; background-color: #FAFAFA; font-size: 80%; } .search { color: #003399; font-weight: bold; } FORM.search { margin-bottom: 0px; margin-top: 0px; } INPUT.search { font-size: 75%; color: #000080; font-weight: normal; background-color: #e8eef2; } TD.tiny { font-size: 75%; } a { color: #1A41A8; } a:visited { color: #2A3798; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #84b0c7; } TH.dirtab { background: #e8eef2; font-weight: bold; } HR { height: 1px; border: none; border-top: 1px solid black; } /* Style for detailed member documentation */ .memtemplate { font-size: 80%; color: #606060; font-weight: normal; margin-left: 3px; } .memnav { background-color: #e8eef2; border: 1px solid #84b0c7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } .memitem { padding: 4px; background-color: #eef3f5; border-width: 1px; border-style: solid; border-color: #dedeee; -moz-border-radius: 8px 8px 8px 8px; } .memname { white-space: nowrap; font-weight: bold; } .memdoc{ padding-left: 10px; } .memproto { background-color: #d5e1e8; width: 100%; border-width: 1px; border-style: solid; border-color: #84b0c7; font-weight: bold; -moz-border-radius: 8px 8px 8px 8px; } .paramkey { text-align: right; } .paramtype { white-space: nowrap; } .paramname { color: #602020; font-style: italic; white-space: nowrap; } /* End Styling for detailed member documentation */ /* for the tree view */ .ftvtree { font-family: sans-serif; margin:0.5em; } /* these are for tree view when used as main index */ .directory { font-size: 9pt; font-weight: bold; } .directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } /* The following two styles can be used to replace the root node title */ /* with an image of your choice. Simply uncomment the next two styles, */ /* specify the name of your image and be sure to set 'height' to the */ /* proper pixel height of your image. */ /* .directory h3.swap { */ /* height: 61px; */ /* background-repeat: no-repeat; */ /* background-image: url("yourimage.gif"); */ /* } */ /* .directory h3.swap span { */ /* display: none; */ /* } */ .directory > h3 { margin-top: 0; } .directory p { margin: 0px; white-space: nowrap; } .directory div { display: none; margin: 0px; } .directory img { vertical-align: -30%; } /* these are for tree view when not used as main index */ .directory-alt { font-size: 100%; font-weight: bold; } .directory-alt h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } .directory-alt > h3 { margin-top: 0; } .directory-alt p { margin: 0px; white-space: nowrap; } .directory-alt div { display: none; margin: 0px; } .directory-alt img { vertical-align: -30%; } eina-1.7.10/doc/img/eina_list.eps0000664000175000017500000153460112175475327013467 00000000000000%!PS-Adobe-3.1 EPSF-3.0 %ADO_DSC_Encoding: MacOS Roman %%Title: 02_eina-list_a-02.eps %%Creator: Adobe Illustrator(R) 14.0 %%For: Marina Proni %%CreationDate: 6/9/11 %%BoundingBox: 0 0 956 326 %%HiResBoundingBox: 0 0 955.0234 326 %%CropBox: 0 0 955.0234 326 %%LanguageLevel: 2 %%DocumentData: Clean7Bit %ADOBeginClientInjection: DocumentHeader "AI11EPS" %%AI8_CreatorVersion: 14.0.0 %AI9_PrintingDataBegin %ADO_BuildNumber: Adobe Illustrator(R) 14.0.0 x367 R agm 4.4890 ct 5.1541 %ADO_ContainsXMP: MainFirst %ADOEndClientInjection: DocumentHeader "AI11EPS" %%Pages: 1 %%DocumentNeededResources: %%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0 %%+ procset Adobe_CoolType_Utility_T42 1.0 0 %%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%+ procset Adobe_CoolType_Core 2.31 0 %%+ procset Adobe_AGM_Core 2.0 0 %%+ procset Adobe_AGM_Utils 1.0 0 %%DocumentFonts: %%DocumentNeededFonts: %%DocumentNeededFeatures: %%DocumentSuppliedFeatures: %%DocumentProcessColors: Cyan Magenta Yellow Black %%DocumentCustomColors: %%CMYKCustomColor: %%RGBCustomColor: %%EndComments %%BeginDefaults %%ViewingOrientation: 1 0 0 1 %%EndDefaults %%BeginProlog %%BeginResource: procset Adobe_AGM_Utils 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known {currentpacking true setpacking}if userdict/Adobe_AGM_Utils 75 dict dup begin put /bdf {bind def}bind def /nd{null def}bdf /xdf {exch def}bdf /ldf {load def}bdf /ddf {put}bdf /xddf {3 -1 roll put}bdf /xpt {exch put}bdf /ndf { exch dup where{ pop pop pop }{ xdf }ifelse }def /cdndf { exch dup currentdict exch known{ pop pop }{ exch def }ifelse }def /gx {get exec}bdf /ps_level /languagelevel where{ pop systemdict/languagelevel gx }{ 1 }ifelse def /level2 ps_level 2 ge def /level3 ps_level 3 ge def /ps_version {version cvr}stopped{-1}if def /set_gvm {currentglobal exch setglobal}bdf /reset_gvm {setglobal}bdf /makereadonlyarray { /packedarray where{pop packedarray }{ array astore readonly}ifelse }bdf /map_reserved_ink_name { dup type/stringtype eq{ dup/Red eq{ pop(_Red_) }{ dup/Green eq{ pop(_Green_) }{ dup/Blue eq{ pop(_Blue_) }{ dup()cvn eq{ pop(Process) }if }ifelse }ifelse }ifelse }if }bdf /AGMUTIL_GSTATE 22 dict def /get_gstate { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_clr_spc currentcolorspace def /AGMUTIL_GSTATE_clr_indx 0 def /AGMUTIL_GSTATE_clr_comps 12 array def mark currentcolor counttomark {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop /AGMUTIL_GSTATE_fnt rootfont def /AGMUTIL_GSTATE_lw currentlinewidth def /AGMUTIL_GSTATE_lc currentlinecap def /AGMUTIL_GSTATE_lj currentlinejoin def /AGMUTIL_GSTATE_ml currentmiterlimit def currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf /AGMUTIL_GSTATE_sa currentstrokeadjust def /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def /AGMUTIL_GSTATE_op currentoverprint def /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf /AGMUTIL_GSTATE_ht currenthalftone def /AGMUTIL_GSTATE_flt currentflat def end }def /set_gstate { AGMUTIL_GSTATE begin AGMUTIL_GSTATE_clr_spc setcolorspace AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor AGMUTIL_GSTATE_fnt setfont AGMUTIL_GSTATE_lw setlinewidth AGMUTIL_GSTATE_lc setlinecap AGMUTIL_GSTATE_lj setlinejoin AGMUTIL_GSTATE_ml setmiterlimit AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash AGMUTIL_GSTATE_sa setstrokeadjust AGMUTIL_GSTATE_clr_rnd setcolorrendering AGMUTIL_GSTATE_op setoverprint AGMUTIL_GSTATE_bg cvx setblackgeneration AGMUTIL_GSTATE_ucr cvx setundercolorremoval AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or { currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne { mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark }if }{ AGMUTIL_GSTATE_ht sethalftone }ifelse AGMUTIL_GSTATE_flt setflat end }def /get_gstate_and_matrix { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_ctm matrix currentmatrix def end get_gstate }def /set_gstate_and_matrix { set_gstate AGMUTIL_GSTATE begin AGMUTIL_GSTATE_ctm setmatrix end }def /AGMUTIL_str256 256 string def /AGMUTIL_src256 256 string def /AGMUTIL_dst64 64 string def /AGMUTIL_srcLen nd /AGMUTIL_ndx nd /AGMUTIL_cpd nd /capture_cpd{ //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf }def /thold_halftone { level3 {sethalftone currenthalftone} { dup/HalftoneType get 3 eq { sethalftone currenthalftone }{ begin Width Height mul{ Thresholds read{pop}if }repeat end currenthalftone }ifelse }ifelse }def /rdcmntline { currentfile AGMUTIL_str256 readline pop (%)anchorsearch{pop}if }bdf /filter_cmyk { dup type/filetype ne{ exch()/SubFileDecode filter }{ exch pop } ifelse [ exch { AGMUTIL_src256 readstring pop dup length/AGMUTIL_srcLen exch def /AGMUTIL_ndx 0 def AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{ 1 index exch get AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put /AGMUTIL_ndx AGMUTIL_ndx 1 add def }for pop AGMUTIL_dst64 0 AGMUTIL_ndx getinterval } bind /exec cvx ]cvx }bdf /filter_indexed_devn { cvi Names length mul names_index add Lookup exch get }bdf /filter_devn { 4 dict begin /srcStr xdf /dstStr xdf dup type/filetype ne{ 0()/SubFileDecode filter }if [ exch [ /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx currentdict/srcStr get/readstring cvx/pop cvx /dup cvx/length cvx 0/gt cvx[ Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx names_index Names length currentdict/srcStr get length 1 sub{ 1/index cvx/exch cvx/get cvx currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx }for currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx ]cvx/if cvx /end cvx ]cvx bind /exec cvx ]cvx end }bdf /AGMUTIL_imagefile nd /read_image_file { AGMUTIL_imagefile 0 setfileposition 10 dict begin /imageDict xdf /imbufLen Width BitsPerComponent mul 7 add 8 idiv def /imbufIdx 0 def /origDataSource imageDict/DataSource get def /origMultipleDataSources imageDict/MultipleDataSources get def /origDecode imageDict/Decode get def /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse { /imbufCnt imageDict/DataSource get length def /imbufs imbufCnt array def 0 1 imbufCnt 1 sub{ /imbufIdx xdf imbufs imbufIdx imbufLen string put imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put }for DeviceN_PS2{ imageDict begin /DataSource[DataSource/devn_sep_datasource cvx]cvx def /MultipleDataSources false def /Decode[0 1]def end }if }{ /imbuf imbufLen string def Indexed_DeviceN level3 not and DeviceN_NoneName or{ /srcDataStrs[imageDict begin currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi string }repeat end]def imageDict begin /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def /Decode[0 1]def end }{ imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put imageDict/Decode[0 1]put }ifelse }ifelse imageDict exch load exec imageDict/DataSource origDataSource put imageDict/MultipleDataSources origMultipleDataSources put imageDict/Decode origDecode put end }bdf /write_image_file { begin {(AGMUTIL_imagefile)(w+)file}stopped{ false }{ Adobe_AGM_Utils/AGMUTIL_imagefile xddf 2 dict begin /imbufLen Width BitsPerComponent mul 7 add 8 idiv def MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{ /imbuf imbufLen string def }if 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{ pop MultipleDataSources{ 0 1 DataSource length 1 sub{ DataSource type dup /arraytype eq{ pop DataSource exch gx }{ /filetype eq{ DataSource exch get imbuf readstring pop }{ DataSource exch get }ifelse }ifelse AGMUTIL_imagefile exch writestring }for }{ DataSource type dup /arraytype eq{ pop DataSource exec }{ /filetype eq{ DataSource imbuf readstring pop }{ DataSource }ifelse }ifelse AGMUTIL_imagefile exch writestring }ifelse }for end true }ifelse end }bdf /close_image_file { AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile }def statusdict/product known userdict/AGMP_current_show known not and{ /pstr statusdict/product get def pstr(HP LaserJet 2200)eq pstr(HP LaserJet 4000 Series)eq or pstr(HP LaserJet 4050 Series )eq or pstr(HP LaserJet 8000 Series)eq or pstr(HP LaserJet 8100 Series)eq or pstr(HP LaserJet 8150 Series)eq or pstr(HP LaserJet 5000 Series)eq or pstr(HP LaserJet 5100 Series)eq or pstr(HP Color LaserJet 4500)eq or pstr(HP Color LaserJet 4600)eq or pstr(HP LaserJet 5Si)eq or pstr(HP LaserJet 1200 Series)eq or pstr(HP LaserJet 1300 Series)eq or pstr(HP LaserJet 4100 Series)eq or { userdict/AGMP_current_show/show load put userdict/show{ currentcolorspace 0 get /Pattern eq {false charpath f} {AGMP_current_show}ifelse }put }if currentdict/pstr undef }if /consumeimagedata { begin AGMIMG_init_common currentdict/MultipleDataSources known not {/MultipleDataSources false def}if MultipleDataSources { DataSource 0 get type dup/filetype eq { 1 dict begin /flushbuffer Width cvi string def 1 1 Height cvi { pop 0 1 DataSource length 1 sub { DataSource exch get flushbuffer readstring pop pop }for }for end }if dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and { Width Height mul cvi { 0 1 DataSource length 1 sub {dup DataSource exch gx length exch 0 ne{pop}if}for dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if } { /DataSource load type dup/filetype eq { 1 dict begin /flushbuffer Width Decode length 2 idiv mul cvi string def 1 1 Height{pop DataSource flushbuffer readstring pop pop}for end }if dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and { Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul { DataSource length dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if }ifelse end }bdf /addprocs { 2{/exec load}repeat 3 1 roll [5 1 roll]bind cvx }def /modify_halftone_xfer { currenthalftone dup length dict copy begin currentdict 2 index known{ 1 index load dup length dict copy begin currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end def currentdict end sethalftone }{ currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end sethalftone pop }ifelse }def /clonearray { dup xcheck exch dup length array exch Adobe_AGM_Core/AGMCORE_tmp -1 ddf { Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf dup type/dicttype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonedict Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if dup type/arraytype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonearray Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if exch dup Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put }forall exch{cvx}if }bdf /clonedict { dup length dict begin { dup type/dicttype eq {clonedict}if dup type/arraytype eq {clonearray}if def }forall currentdict end }bdf /DeviceN_PS2 { /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and }bdf /Indexed_DeviceN { /indexed_colorspace_dict AGMCORE_gget dup null ne{ dup/CSDBase known{ /CSDBase get/CSD get_res/Names known }{ pop false }ifelse }{ pop false }ifelse }bdf /DeviceN_NoneName { /Names where{ pop false Names { (None)eq or }forall }{ false }ifelse }bdf /DeviceN_PS2_inRip_seps { /AGMCORE_in_rip_sep where { pop dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and { /currentcolorspace exch AGMCORE_gput false }{ true }ifelse }{ true }ifelse }{ true }ifelse }bdf /base_colorspace_type { dup type/arraytype eq{0 get}if }bdf /currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse { /pdfmark_5{cleartomark}bind def }{ /pdfmark_5{pdfmark}bind def }ifelse /ReadBypdfmark_5 { currentfile exch 0 exch/SubFileDecode filter /currentdistillerparams where {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse {flushfile cleartomark} {/PUT pdfmark}ifelse }bdf /ReadBypdfmark_5_string { 2 dict begin /makerString exch def string/tmpString exch def { currentfile tmpString readline not{pop exit}if makerString anchorsearch { pop pop cleartomark exit }{ 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5 }ifelse }loop end }bdf /xpdfm { { dup 0 get/Label eq { aload length[exch 1 add 1 roll/PAGELABEL }{ aload pop [{ThisPage}<<5 -2 roll>>/PUT }ifelse pdfmark_5 }forall }bdf /lmt{ dup 2 index le{exch}if pop dup 2 index ge{exch}if pop }bdf /int{ dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop }bdf /ds{ Adobe_AGM_Utils begin }bdf /dt{ currentdict Adobe_AGM_Utils eq{ end }if }bdf systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_AGM_Core 2.0 0 %%Version: 2.0 0 %%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Core 209 dict dup begin put /Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def /AGMCORE_str256 256 string def /AGMCORE_save nd /AGMCORE_graphicsave nd /AGMCORE_c 0 def /AGMCORE_m 0 def /AGMCORE_y 0 def /AGMCORE_k 0 def /AGMCORE_cmykbuf 4 array def /AGMCORE_screen[currentscreen]cvx def /AGMCORE_tmp 0 def /AGMCORE_&setgray nd /AGMCORE_&setcolor nd /AGMCORE_&setcolorspace nd /AGMCORE_&setcmykcolor nd /AGMCORE_cyan_plate nd /AGMCORE_magenta_plate nd /AGMCORE_yellow_plate nd /AGMCORE_black_plate nd /AGMCORE_plate_ndx nd /AGMCORE_get_ink_data nd /AGMCORE_is_cmyk_sep nd /AGMCORE_host_sep nd /AGMCORE_avoid_L2_sep_space nd /AGMCORE_distilling nd /AGMCORE_composite_job nd /AGMCORE_producing_seps nd /AGMCORE_ps_level -1 def /AGMCORE_ps_version -1 def /AGMCORE_environ_ok nd /AGMCORE_CSD_cache 0 dict def /AGMCORE_currentoverprint false def /AGMCORE_deltaX nd /AGMCORE_deltaY nd /AGMCORE_name nd /AGMCORE_sep_special nd /AGMCORE_err_strings 4 dict def /AGMCORE_cur_err nd /AGMCORE_current_spot_alias false def /AGMCORE_inverting false def /AGMCORE_feature_dictCount nd /AGMCORE_feature_opCount nd /AGMCORE_feature_ctm nd /AGMCORE_ConvertToProcess false def /AGMCORE_Default_CTM matrix def /AGMCORE_Default_PageSize nd /AGMCORE_Default_flatness nd /AGMCORE_currentbg nd /AGMCORE_currentucr nd /AGMCORE_pattern_paint_type 0 def /knockout_unitsq nd currentglobal true setglobal [/CSA/Gradient/Procedure] { /Generic/Category findresource dup length dict copy/Category defineresource pop }forall setglobal /AGMCORE_key_known { where{ /Adobe_AGM_Core_Id known }{ false }ifelse }ndf /flushinput { save 2 dict begin /CompareBuffer 3 -1 roll def /readbuffer 256 string def mark { currentfile readbuffer{readline}stopped {cleartomark mark} { not {pop exit} if CompareBuffer eq {exit} if }ifelse }loop cleartomark end restore }bdf /getspotfunction { AGMCORE_screen exch pop exch pop dup type/dicttype eq{ dup/HalftoneType get 1 eq{ /SpotFunction get }{ dup/HalftoneType get 2 eq{ /GraySpotFunction get }{ pop { abs exch abs 2 copy add 1 gt{ 1 sub dup mul exch 1 sub dup mul add 1 sub }{ dup mul exch dup mul add 1 exch sub }ifelse }bind }ifelse }ifelse }if }def /np {newpath}bdf /clp_npth {clip np}def /eoclp_npth {eoclip np}def /npth_clp {np clip}def /graphic_setup { /AGMCORE_graphicsave save store concat 0 setgray 0 setlinecap 0 setlinejoin 1 setlinewidth []0 setdash 10 setmiterlimit np false setoverprint false setstrokeadjust //Adobe_AGM_Core/spot_alias gx /Adobe_AGM_Image where{ pop Adobe_AGM_Image/spot_alias 2 copy known{ gx }{ pop pop }ifelse }if /sep_colorspace_dict null AGMCORE_gput 100 dict begin /dictstackcount countdictstack def /showpage{}def mark }def /graphic_cleanup { cleartomark dictstackcount 1 countdictstack 1 sub{end}for end AGMCORE_graphicsave restore }def /compose_error_msg { grestoreall initgraphics /Helvetica findfont 10 scalefont setfont /AGMCORE_deltaY 100 def /AGMCORE_deltaX 310 def clippath pathbbox np pop pop 36 add exch 36 add exch moveto 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath 0 AGMCORE_&setgray gsave 1 AGMCORE_&setgray fill grestore 1 setlinewidth gsave stroke grestore currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto /AGMCORE_deltaY 12 def /AGMCORE_tmp 0 def AGMCORE_err_strings exch get { dup 32 eq { pop AGMCORE_str256 0 AGMCORE_tmp getinterval stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt { currentpoint AGMCORE_deltaY sub exch pop clippath pathbbox pop pop pop 44 add exch moveto }if AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show 0 1 AGMCORE_str256 length 1 sub { AGMCORE_str256 exch 0 put }for /AGMCORE_tmp 0 def }{ AGMCORE_str256 exch AGMCORE_tmp xpt /AGMCORE_tmp AGMCORE_tmp 1 add def }ifelse }forall }bdf /AGMCORE_CMYKDeviceNColorspaces[ [/Separation/None/DeviceCMYK{0 0 0}] [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind] [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind] [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind] [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind] [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind] [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind] [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind] [/Separation(Cyan)/DeviceCMYK{0 0 0}] [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind] [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind] [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind] [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}] [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind] [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}] [/DeviceCMYK] ]def /ds{ Adobe_AGM_Core begin /currentdistillerparams where { pop currentdistillerparams/CoreDistVersion get 5000 lt {<>setdistillerparams}if }if /AGMCORE_ps_version xdf /AGMCORE_ps_level xdf errordict/AGM_handleerror known not{ errordict/AGM_handleerror errordict/handleerror get put errordict/handleerror{ Adobe_AGM_Core begin $error/newerror get AGMCORE_cur_err null ne and{ $error/newerror false put AGMCORE_cur_err compose_error_msg }if $error/newerror true put end errordict/AGM_handleerror get exec }bind put }if /AGMCORE_environ_ok ps_level AGMCORE_ps_level ge ps_version AGMCORE_ps_version ge and AGMCORE_ps_level -1 eq or def AGMCORE_environ_ok not {/AGMCORE_cur_err/AGMCORE_bad_environ def}if /AGMCORE_&setgray systemdict/setgray get def level2{ /AGMCORE_&setcolor systemdict/setcolor get def /AGMCORE_&setcolorspace systemdict/setcolorspace get def }if /AGMCORE_currentbg currentblackgeneration def /AGMCORE_currentucr currentundercolorremoval def /AGMCORE_Default_flatness currentflat def /AGMCORE_distilling /product where{ pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and }{ false }ifelse def /AGMCORE_GSTATE AGMCORE_key_known not{ /AGMCORE_GSTATE 21 dict def /AGMCORE_tmpmatrix matrix def /AGMCORE_gstack 32 array def /AGMCORE_gstackptr 0 def /AGMCORE_gstacksaveptr 0 def /AGMCORE_gstackframekeys 14 def /AGMCORE_&gsave/gsave ldf /AGMCORE_&grestore/grestore ldf /AGMCORE_&grestoreall/grestoreall ldf /AGMCORE_&save/save ldf /AGMCORE_&setoverprint/setoverprint ldf /AGMCORE_gdictcopy{ begin {def}forall end }def /AGMCORE_gput{ AGMCORE_gstack AGMCORE_gstackptr get 3 1 roll put }def /AGMCORE_gget{ AGMCORE_gstack AGMCORE_gstackptr get exch get }def /gsave{ AGMCORE_&gsave AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /grestore{ AGMCORE_&grestore AGMCORE_gstackptr 1 sub dup AGMCORE_gstacksaveptr lt{1 add}if dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse /AGMCORE_gstackptr exch store }def /grestoreall{ AGMCORE_&grestoreall /AGMCORE_gstackptr AGMCORE_gstacksaveptr store }def /save{ AGMCORE_&save AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store /AGMCORE_gstacksaveptr AGMCORE_gstackptr store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /setoverprint{ dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint }def 0 1 AGMCORE_gstack length 1 sub{ AGMCORE_gstack exch AGMCORE_gstackframekeys dict put }for }if level3/AGMCORE_&sysshfill AGMCORE_key_known not and { /AGMCORE_&sysshfill systemdict/shfill get def /AGMCORE_&sysmakepattern systemdict/makepattern get def /AGMCORE_&usrmakepattern/makepattern load def }if /currentcmykcolor[0 0 0 0]AGMCORE_gput /currentstrokeadjust false AGMCORE_gput /currentcolorspace[/DeviceGray]AGMCORE_gput /sep_tint 0 AGMCORE_gput /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput /sep_colorspace_dict null AGMCORE_gput /devicen_colorspace_dict null AGMCORE_gput /indexed_colorspace_dict null AGMCORE_gput /currentcolor_intent()AGMCORE_gput /customcolor_tint 1 AGMCORE_gput /absolute_colorimetric_crd null AGMCORE_gput /relative_colorimetric_crd null AGMCORE_gput /saturation_crd null AGMCORE_gput /perceptual_crd null AGMCORE_gput currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf << /MaxPatternItem currentsystemparams/MaxPatternCache get >> setuserparams end }def /ps { /setcmykcolor where{ pop Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put }if Adobe_AGM_Core begin /setcmykcolor { 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput 1 sub 4 1 roll 3{ 3 index add neg dup 0 lt{ pop 0 }if 3 1 roll }repeat setrgbcolor pop }ndf /currentcmykcolor { /currentcmykcolor AGMCORE_gget aload pop }ndf /setoverprint {pop}ndf /currentoverprint {false}ndf /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def /AGMCORE_plate_ndx AGMCORE_cyan_plate{ 0 }{ AGMCORE_magenta_plate{ 1 }{ AGMCORE_yellow_plate{ 2 }{ AGMCORE_black_plate{ 3 }{ 4 }ifelse }ifelse }ifelse }ifelse def /AGMCORE_have_reported_unsupported_color_space false def /AGMCORE_report_unsupported_color_space { AGMCORE_have_reported_unsupported_color_space false eq { (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)== Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf }if }def /AGMCORE_composite_job AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def /AGMCORE_in_rip_sep /AGMCORE_in_rip_sep where{ pop AGMCORE_in_rip_sep }{ AGMCORE_distilling { false }{ userdict/Adobe_AGM_OnHost_Seps known{ false }{ level2{ currentpagedevice/Separations 2 copy known{ get }{ pop pop false }ifelse }{ false }ifelse }ifelse }ifelse }ifelse def /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def /AGM_preserve_spots /AGM_preserve_spots where{ pop AGM_preserve_spots }{ AGMCORE_distilling AGMCORE_producing_seps or }ifelse def /AGM_is_distiller_preserving_spotimages { currentdistillerparams/PreserveOverprintSettings known { currentdistillerparams/PreserveOverprintSettings get { currentdistillerparams/ColorConversionStrategy known { currentdistillerparams/ColorConversionStrategy get /sRGB ne }{ true }ifelse }{ false }ifelse }{ false }ifelse }def /convert_spot_to_process where{pop}{ /convert_spot_to_process { //Adobe_AGM_Core begin dup map_alias{ /Name get exch pop }if dup dup(None)eq exch(All)eq or { pop false }{ AGMCORE_host_sep { gsave 1 0 0 0 setcmykcolor currentgray 1 exch sub 0 1 0 0 setcmykcolor currentgray 1 exch sub 0 0 1 0 setcmykcolor currentgray 1 exch sub 0 0 0 1 setcmykcolor currentgray 1 exch sub add add add 0 eq { pop false }{ false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne }ifelse grestore }{ AGMCORE_distilling { pop AGM_is_distiller_preserving_spotimages not }{ //Adobe_AGM_Core/AGMCORE_name xddf false //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq AGMUTIL_cpd/OverrideSeparations known and { AGMUTIL_cpd/OverrideSeparations get { /HqnSpots/ProcSet resourcestatus { pop pop pop true }if }if }if { AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not }{ gsave [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace false AGMUTIL_cpd/SeparationColorNames 2 copy known { get {AGMCORE_name eq or}forall not }{ pop pop pop true }ifelse grestore }ifelse }ifelse }ifelse }ifelse end }def }ifelse /convert_to_process where{pop}{ /convert_to_process { dup length 0 eq { pop false }{ AGMCORE_host_sep { dup true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process and}ifelse } forall { true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch (Black)eq or and }forall not }{pop false}ifelse }{ false exch { /PhotoshopDuotoneList where{pop false}{true}ifelse { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process or}ifelse } { convert_spot_to_process or } ifelse } forall }ifelse }ifelse }def }ifelse /AGMCORE_avoid_L2_sep_space version cvr 2012 lt level2 and AGMCORE_producing_seps not and def /AGMCORE_is_cmyk_sep AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or def /AGM_avoid_0_cmyk where{ pop AGM_avoid_0_cmyk }{ AGM_preserve_spots userdict/Adobe_AGM_OnHost_Seps known userdict/Adobe_AGM_InRip_Seps known or not and }ifelse { /setcmykcolor[ { 4 copy add add add 0 eq currentoverprint and{ pop 0.0005 }if }/exec cvx /AGMCORE_&setcmykcolor load dup type/operatortype ne{ /exec cvx }if ]cvx def }if /AGMCORE_IsSeparationAProcessColor { dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or }def AGMCORE_host_sep{ /setcolortransfer { AGMCORE_cyan_plate{ pop pop pop }{ AGMCORE_magenta_plate{ 4 3 roll pop pop pop }{ AGMCORE_yellow_plate{ 4 2 roll pop pop pop }{ 4 1 roll pop pop pop }ifelse }ifelse }ifelse settransfer } def /AGMCORE_get_ink_data AGMCORE_cyan_plate{ {pop pop pop} }{ AGMCORE_magenta_plate{ {4 3 roll pop pop pop} }{ AGMCORE_yellow_plate{ {4 2 roll pop pop pop} }{ {4 1 roll pop pop pop} }ifelse }ifelse }ifelse def /AGMCORE_RemoveProcessColorNames { 1 dict begin /filtername { dup/Cyan eq 1 index(Cyan)eq or {pop(_cyan_)}if dup/Magenta eq 1 index(Magenta)eq or {pop(_magenta_)}if dup/Yellow eq 1 index(Yellow)eq or {pop(_yellow_)}if dup/Black eq 1 index(Black)eq or {pop(_black_)}if }def dup type/arraytype eq {[exch{filtername}forall]} {filtername}ifelse end }def level3{ /AGMCORE_IsCurrentColor { dup AGMCORE_IsSeparationAProcessColor { AGMCORE_plate_ndx 0 eq {dup(Cyan)eq exch/Cyan eq or}if AGMCORE_plate_ndx 1 eq {dup(Magenta)eq exch/Magenta eq or}if AGMCORE_plate_ndx 2 eq {dup(Yellow)eq exch/Yellow eq or}if AGMCORE_plate_ndx 3 eq {dup(Black)eq exch/Black eq or}if AGMCORE_plate_ndx 4 eq {pop false}if }{ gsave false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne grestore }ifelse }def /AGMCORE_filter_functiondatasource { 5 dict begin /data_in xdf data_in type/stringtype eq { /ncomp xdf /comp xdf /string_out data_in length ncomp idiv string def 0 ncomp data_in length 1 sub { string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put }for string_out }{ string/string_in xdf /string_out 1 string def /component xdf [ data_in string_in/readstring cvx [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx [/pop cvx()]cvx/ifelse cvx ]cvx/ReusableStreamDecode filter }ifelse end }def /AGMCORE_separateShadingFunction { 2 dict begin /paint? xdf /channel xdf dup type/dicttype eq { begin FunctionType 0 eq { /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def currentdict/Decode known {/Decode Decode channel 2 mul 2 getinterval def}if paint? not {/Decode[1 1]def}if }if FunctionType 2 eq { paint? { /C0[C0 channel get 1 exch sub]def /C1[C1 channel get 1 exch sub]def }{ /C0[1]def /C1[1]def }ifelse }if FunctionType 3 eq { /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def }if currentdict/Range known {/Range[0 1]def}if currentdict end}{ channel get 0 paint? AGMCORE_separateShadingFunction }ifelse end }def /AGMCORE_separateShading { 3 -1 roll begin currentdict/Function known { currentdict/Background known {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf /ColorSpace[/DeviceGray]def }{ ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }{ ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put }ifelse ColorSpace 0 get/Separation eq { { [1/exch cvx/sub cvx]cvx }{ [/pop cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll put pop }{ { [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx }{ pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll bind put }ifelse ColorSpace 2/DeviceGray put }ifelse end }def /AGMCORE_separateShadingDict { dup/ColorSpace get dup type/arraytype ne {[exch]}if dup 0 get/DeviceCMYK eq { exch begin currentdict AGMCORE_cyan_plate {0 true}if AGMCORE_magenta_plate {1 true}if AGMCORE_yellow_plate {2 true}if AGMCORE_black_plate {3 true}if AGMCORE_plate_ndx 4 eq {0 false}if dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading currentdict end exch }if dup 0 get/Separation eq { exch begin ColorSpace 1 get dup/None ne exch/All ne and { ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /Separation ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading }if }ifelse }{ currentdict ColorSpace 1 get AGMCORE_IsCurrentColor 0 exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse }if currentdict end exch }if dup 0 get/DeviceN eq { exch begin ColorSpace 1 get convert_to_process { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /DeviceN ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading /ColorSpace[/DeviceGray]def }if }ifelse }{ currentdict false -1 ColorSpace 1 get { AGMCORE_IsCurrentColor { 1 add exch pop true exch exit }if 1 add }forall exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse currentdict end exch }if dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not { exch begin ColorSpace dup type/arraytype eq {0 get}if /DeviceGray ne { AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { ColorSpace 0 get/CIEBasedA eq { /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def }if ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or { /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def }if ColorSpace 0 get/CIEBasedDEFG eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }if currentdict 0 false AGMCORE_separateShading }if }if currentdict end exch }if pop dup/AGMCORE_ignoreshade known { begin /ColorSpace[/Separation(None)/DeviceGray{}]def currentdict end }if }def /shfill { AGMCORE_separateShadingDict dup/AGMCORE_ignoreshade known {pop} {AGMCORE_&sysshfill}ifelse }def /makepattern { exch dup/PatternType get 2 eq { clonedict begin /Shading Shading AGMCORE_separateShadingDict def Shading/AGMCORE_ignoreshade known currentdict end exch {pop<>}if exch AGMCORE_&sysmakepattern }{ exch AGMCORE_&usrmakepattern }ifelse }def }if }if AGMCORE_in_rip_sep{ /setcustomcolor { exch aload pop dup 7 1 roll inRip_spot_has_ink not { 4{4 index mul 4 1 roll} repeat /DeviceCMYK setcolorspace 6 -2 roll pop pop }{ //Adobe_AGM_Core begin /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf end [/Separation 4 -1 roll/DeviceCMYK {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul} ] setcolorspace }ifelse setcolor }ndf /setseparationgray { [/Separation(All)/DeviceGray{}]setcolorspace_opt 1 exch sub setcolor }ndf }{ /setseparationgray { AGMCORE_&setgray }ndf }ifelse /findcmykcustomcolor { 5 makereadonlyarray }ndf /setcustomcolor { exch aload pop pop 4{4 index mul 4 1 roll}repeat setcmykcolor pop }ndf /has_color /colorimage where{ AGMCORE_producing_seps{ pop true }{ systemdict eq }ifelse }{ false }ifelse def /map_index { 1 index mul exch getinterval{255 div}forall }bdf /map_indexed_devn { Lookup Names length 3 -1 roll cvi map_index }bdf /n_color_components { base_colorspace_type dup/DeviceGray eq{ pop 1 }{ /DeviceCMYK eq{ 4 }{ 3 }ifelse }ifelse }bdf level2{ /mo/moveto ldf /li/lineto ldf /cv/curveto ldf /knockout_unitsq { 1 setgray 0 0 1 1 rectfill }def level2/setcolorspace AGMCORE_key_known not and{ /AGMCORE_&&&setcolorspace/setcolorspace ldf /AGMCORE_ReplaceMappedColor { dup type dup/arraytype eq exch/packedarraytype eq or { /AGMCORE_SpotAliasAry2 where{ begin dup 0 get dup/Separation eq { pop dup length array copy dup dup 1 get current_spot_alias { dup map_alias { false set_spot_alias dup 1 exch setsepcolorspace true set_spot_alias begin /sep_colorspace_dict currentdict AGMCORE_gput pop pop pop [ /Separation Name CSA map_csa MappedCSA /sep_colorspace_proc load ] dup Name end }if }if map_reserved_ink_name 1 xpt }{ /DeviceN eq { dup length array copy dup dup 1 get[ exch{ current_spot_alias{ dup map_alias{ /Name get exch pop }if }if map_reserved_ink_name }forall ]1 xpt }if }ifelse end }if }if }def /setcolorspace { dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/Indexed eq { AGMCORE_distilling { /PhotoshopDuotoneList where { pop false }{ true }ifelse }{ true }ifelse { aload pop 3 -1 roll AGMCORE_ReplaceMappedColor 3 1 roll 4 array astore }if }{ AGMCORE_ReplaceMappedColor }ifelse }if DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if }def }if }{ /adj { currentstrokeadjust{ transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform }if }def /mo{ adj moveto }def /li{ adj lineto }def /cv{ 6 2 roll adj 6 2 roll adj 6 2 roll adj curveto }def /knockout_unitsq { 1 setgray 8 8 1[8 0 0 8 0 0]{}image }def /currentstrokeadjust{ /currentstrokeadjust AGMCORE_gget }def /setstrokeadjust{ /currentstrokeadjust exch AGMCORE_gput }def /setcolorspace { /currentcolorspace exch AGMCORE_gput }def /currentcolorspace { /currentcolorspace AGMCORE_gget }def /setcolor_devicecolor { base_colorspace_type dup/DeviceGray eq{ pop setgray }{ /DeviceCMYK eq{ setcmykcolor }{ setrgbcolor }ifelse }ifelse }def /setcolor { currentcolorspace 0 get dup/DeviceGray ne{ dup/DeviceCMYK ne{ dup/DeviceRGB ne{ dup/Separation eq{ pop currentcolorspace 3 gx currentcolorspace 2 get }{ dup/Indexed eq{ pop currentcolorspace 3 get dup type/stringtype eq{ currentcolorspace 1 get n_color_components 3 -1 roll map_index }{ exec }ifelse currentcolorspace 1 get }{ /AGMCORE_cur_err/AGMCORE_invalid_color_space def AGMCORE_invalid_color_space }ifelse }ifelse }if }if }if setcolor_devicecolor }def }ifelse /sop/setoverprint ldf /lw/setlinewidth ldf /lc/setlinecap ldf /lj/setlinejoin ldf /ml/setmiterlimit ldf /dsh/setdash ldf /sadj/setstrokeadjust ldf /gry/setgray ldf /rgb/setrgbcolor ldf /cmyk[ /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx /setcmykcolor load dup type/operatortype ne{/exec cvx}if ]cvx bdf level3 AGMCORE_host_sep not and{ /nzopmsc{ 6 dict begin /kk exch def /yy exch def /mm exch def /cc exch def /sum 0 def cc 0 ne{/sum sum 2#1000 or def cc}if mm 0 ne{/sum sum 2#0100 or def mm}if yy 0 ne{/sum sum 2#0010 or def yy}if kk 0 ne{/sum sum 2#0001 or def kk}if AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace sum 0 eq{0}if end setcolor }bdf }{ /nzopmsc/cmyk ldf }ifelse /sep/setsepcolor ldf /devn/setdevicencolor ldf /idx/setindexedcolor ldf /colr/setcolor ldf /csacrd/set_csa_crd ldf /sepcs/setsepcolorspace ldf /devncs/setdevicencolorspace ldf /idxcs/setindexedcolorspace ldf /cp/closepath ldf /clp/clp_npth ldf /eclp/eoclp_npth ldf /f/fill ldf /ef/eofill ldf /@/stroke ldf /nclp/npth_clp ldf /gset/graphic_setup ldf /gcln/graphic_cleanup ldf /ct/concat ldf /cf/currentfile ldf /fl/filter ldf /rs/readstring ldf /AGMCORE_def_ht currenthalftone def /clonedict Adobe_AGM_Utils begin/clonedict load end def /clonearray Adobe_AGM_Utils begin/clonearray load end def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall /getrampcolor { /indx exch def 0 1 NumComp 1 sub { dup Samples exch get dup type/stringtype eq{indx get}if exch Scaling exch get aload pop 3 1 roll mul add }for ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /sssetbackground{ aload pop ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /RadialShade { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /r2 xdf /c2y xdf /c2x xdf /r1 xdf /c1y xdf /c1x xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if c1x c2x eq { c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope c2y c1y sub c2x c1x sub div def /theta slope 1 atan def c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if }ifelse gsave clippath c1x c1y translate theta rotate -90 rotate {pathbbox}stopped {0 0 0 0}if /yMax xdf /xMax xdf /yMin xdf /xMin xdf grestore xMax xMin eq yMax yMin eq or { grestore end }{ /max{2 copy gt{pop}{exch pop}ifelse}bdf /min{2 copy lt{pop}{exch pop}ifelse}bdf rampdict begin 40 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave c1x c1y translate theta rotate -90 rotate /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def /c1y 0 def /c1x 0 def /c2x 0 def ext0 { 0 getrampcolor c2y r2 add r1 sub 0.0001 lt { c1x c1y r1 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2y r1 add r2 le { c1x c1y r1 0 360 arc fill } { c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r1 neg def /p1y c1y def /p2x r1 def /p2y c1y def p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y p1x SS1 div neg def /SS2 90 theta sub dup sin exch cos div def /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y p2x SS2 div neg def r1 r2 gt { /L1maxX p1x yMin p1y sub SS1 div add def /L2maxX p2x yMin p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if c1x c2x sub dup mul c1y c2y sub dup mul add 0.5 exp 0 dtransform dup mul exch dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop /hires xdf hires mul /numpix xdf /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if /xInc c2x c1x sub numsteps div def /yInc c2y c1y sub numsteps div def /rInc r2 r1 sub numsteps div def /cx c1x def /cy c1y def /radius r1 def np xInc 0 eq yInc 0 eq rInc 0 eq and and { 0 getrampcolor cx cy radius 0 360 arc stroke NumSamples 1 sub getrampcolor cx cy radius 72 hires div add 0 360 arc 0 setlinewidth stroke }{ 0 numsteps { dup subsampling{round cvi}if getrampcolor cx cy radius 0 360 arc /cx cx xInc add def /cy cy yInc add def /radius radius rInc add def cx cy radius 360 0 arcn eofill rampIndxInc add }repeat pop }ifelse ext1 { c2y r2 add r1 lt { c2x c2y r2 0 360 arc fill }{ c2y r1 add r2 sub 0.0001 le { c2x c2y r2 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r2 neg def /p1y c2y def /p2x r2 def /p2y c2y def p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y c2y p1x SS1 div sub def /SS2 90 theta sub dup sin exch cos div def /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y c2y p2x SS2 div sub def r1 r2 lt { /L1maxX p1x yMax p1y sub SS1 div add def /L2maxX p2x yMax p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if grestore grestore end end end }ifelse }bdf /GenStrips { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /y2 xdf /x2 xdf /y1 xdf /x1 xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if x1 x2 eq { y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope y2 y1 sub x2 x1 sub div def /theta slope 1 atan def x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if } ifelse gsave clippath x1 y1 translate theta rotate {pathbbox}stopped {0 0 0 0}if /yMax exch def /xMax exch def /yMin exch def /xMin exch def grestore xMax xMin eq yMax yMin eq or { grestore end }{ rampdict begin 20 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave x1 y1 translate theta rotate /xStart 0 def /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def /ySpan yMax yMin sub def /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def xStart 0 transform xEnd 0 transform 3 -1 roll sub dup mul 3 1 roll sub dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop mul /numpix xdf numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if ext0 { 0 getrampcolor xMin xStart lt { xMin yMin xMin neg ySpan rectfill }if }if /xInc xEnd xStart sub numsteps div def /x xStart def 0 numsteps { dup subsampling{round cvi}if getrampcolor x yMin xInc ySpan rectfill /x x xInc add def rampIndxInc add }repeat pop ext1{ xMax xEnd gt { xEnd yMin xMax xEnd sub ySpan rectfill }if }if grestore grestore end end end }ifelse }bdf }def /pt { end }def /dt{ }def /pgsv{ //Adobe_AGM_Core/AGMCORE_save save put }def /pgrs{ //Adobe_AGM_Core/AGMCORE_save get restore }def systemdict/findcolorrendering known{ /findcolorrendering systemdict/findcolorrendering get def }if systemdict/setcolorrendering known{ /setcolorrendering systemdict/setcolorrendering get def }if /test_cmyk_color_plate { gsave setcmykcolor currentgray 1 ne grestore }def /inRip_spot_has_ink { dup//Adobe_AGM_Core/AGMCORE_name xddf convert_spot_to_process not }def /map255_to_range { 1 index sub 3 -1 roll 255 div mul add }def /set_csa_crd { /sep_colorspace_dict null AGMCORE_gput begin CSA get_csa_by_name setcolorspace_opt set_crd end } def /map_csa { currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse {pop}{get_csa_by_name/MappedCSA xdf}ifelse }def /setsepcolor { /sep_colorspace_dict AGMCORE_gget begin dup/sep_tint exch AGMCORE_gput TintProc end }def /setdevicencolor { /devicen_colorspace_dict AGMCORE_gget begin Names length copy Names length 1 sub -1 0 { /devicen_tints AGMCORE_gget 3 1 roll xpt }for TintProc end }def /sep_colorspace_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin currentdict/Components known{ Components aload pop TintMethod/Lab eq{ 2{AGMCORE_tmp mul NComponents 1 roll}repeat LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll }{ TintMethod/Subtractive eq{ NComponents{ AGMCORE_tmp mul NComponents 1 roll }repeat }{ NComponents{ 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll }repeat }ifelse }ifelse }{ ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get aload pop }ifelse end }def /sep_colorspace_gray_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get end }def /sep_proc_name { dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{ pop[/DeviceGray] /sep_colorspace_gray_proc }{ /sep_colorspace_proc }ifelse }def /setsepcolorspace { current_spot_alias{ dup begin Name map_alias{ exch pop }if end }if dup/sep_colorspace_dict exch AGMCORE_gput begin CSA map_csa /AGMCORE_sep_special Name dup()eq exch(All)eq or store AGMCORE_avoid_L2_sep_space{ [/Indexed MappedCSA sep_proc_name 255 exch {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx ]setcolorspace_opt /TintProc{ 255 mul round cvi setcolor }bdf }{ MappedCSA 0 get/DeviceCMYK eq currentdict/Components known and AGMCORE_sep_special not and{ /TintProc[ Components aload pop Name findcmykcustomcolor /exch cvx/setcustomcolor cvx ]cvx bdf }{ AGMCORE_host_sep Name(All)eq and{ /TintProc{ 1 exch sub setseparationgray }bdf }{ AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and AGMCORE_host_sep or Name()eq and{ /TintProc[ MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{ cvx/setcmykcolor cvx }{ cvx/setgray cvx }ifelse ]cvx bdf }{ AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{ /TintProc[ /dup cvx MappedCSA sep_proc_name cvx exch 0 get/DeviceGray eq{ 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx }if /Name cvx/findcmykcustomcolor cvx/exch cvx AGMCORE_host_sep{ AGMCORE_is_cmyk_sep /Name cvx /AGMCORE_IsSeparationAProcessColor load/exec cvx /not cvx/and cvx }{ Name inRip_spot_has_ink not }ifelse [ /pop cvx 1 ]cvx/if cvx /setcustomcolor cvx ]cvx bdf }{ /TintProc{setcolor}bdf [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt }ifelse }ifelse }ifelse }ifelse }ifelse set_crd setsepcolor end }def /additive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 0 1 numarrays 1 sub { 1 exch add/index cvx c1/get cvx/mul cvx }for numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /subtractive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 1 0 1 numarrays 1 sub { 1 3 3 -1 roll add/index cvx c1/get cvx/sub cvx/mul cvx }for /sub cvx numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /exec_tint_transform { /TintProc[ /TintTransform cvx/setcolor cvx ]cvx bdf MappedCSA setcolorspace_opt }bdf /devn_makecustomcolor { 2 dict begin /names_index xdf /Names xdf 1 1 1 1 Names names_index get findcmykcustomcolor /devicen_tints AGMCORE_gget names_index get setcustomcolor Names length{pop}repeat end }bdf /setdevicencolorspace { dup/AliasedColorants known{false}{true}ifelse current_spot_alias and{ 7 dict begin /names_index 0 def dup/names_len exch/Names get length def /new_names names_len array def /new_LookupTables names_len array def /alias_cnt 0 def dup/Names get { dup map_alias{ exch pop dup/ColorLookup known{ dup begin new_LookupTables names_index ColorLookup put end }{ dup/Components known{ dup begin new_LookupTables names_index Components put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse new_names names_index 3 -1 roll/Name get put /alias_cnt alias_cnt 1 add def }{ /name xdf new_names names_index name put dup/LookupTables known{ dup begin new_LookupTables names_index LookupTables names_index get put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse /names_index names_index 1 add def }forall alias_cnt 0 gt{ /AliasedColorants true def /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def 0 1 names_len 1 sub{ /names_index xdf new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{ /AliasedColorants false def exit }{ new_LookupTables names_index get 0 get null eq{ dup/Names get names_index get/name xdf name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq or or or not{ /AliasedColorants false def exit }if }if }ifelse }for lut_entry_len 1 eq{ /AliasedColorants false def }if AliasedColorants{ dup begin /Names new_names def /LookupTables new_LookupTables def /AliasedColorants true def /NComponents lut_entry_len def /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def currentdict/TTTablesIdx known not{ /TTTablesIdx -1 def }if end }if }if end }if dup/devicen_colorspace_dict exch AGMCORE_gput begin currentdict/AliasedColorants known{ AliasedColorants }{ false }ifelse dup not{ CSA map_csa }if /TintTransform load type/nulltype eq or{ /TintTransform[ 0 1 Names length 1 sub { /TTTablesIdx TTTablesIdx 1 add def dup LookupTables exch get dup 0 get null eq { 1 index Names exch get dup(Cyan)eq { pop exch LookupTables length exch sub /index cvx 0 0 0 } { dup(Magenta)eq { pop exch LookupTables length exch sub /index cvx 0/exch cvx 0 0 }{ (Yellow)eq { exch LookupTables length exch sub /index cvx 0 0 3 -1/roll cvx 0 }{ exch LookupTables length exch sub /index cvx 0 0 0 4 -1/roll cvx }ifelse }ifelse }ifelse 5 -1/roll cvx/astore cvx }{ dup length 1 sub LookupTables length 4 -1 roll sub 1 add /index cvx/mul cvx/round cvx/cvi cvx/get cvx }ifelse Names length TTTablesIdx add 1 add 1/roll cvx }for Names length[/pop cvx]cvx/repeat cvx NComponents Names length TintMethod/Subtractive eq { subtractive_blend }{ additive_blend }ifelse ]cvx bdf }if AGMCORE_host_sep{ Names convert_to_process{ exec_tint_transform } { currentdict/AliasedColorants known{ AliasedColorants not }{ false }ifelse 5 dict begin /AvoidAliasedColorants xdf /painted? false def /names_index 0 def /names_len Names length def AvoidAliasedColorants{ /currentspotalias current_spot_alias def false set_spot_alias }if Names{ AGMCORE_is_cmyk_sep{ dup(Cyan)eq AGMCORE_cyan_plate and exch dup(Magenta)eq AGMCORE_magenta_plate and exch dup(Yellow)eq AGMCORE_yellow_plate and exch (Black)eq AGMCORE_black_plate and or or or{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def }if painted?{exit}if }{ 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def exit }if }ifelse /names_index names_index 1 add def }forall AvoidAliasedColorants{ currentspotalias set_spot_alias }if painted?{ /devicen_colorspace_dict AGMCORE_gget/names_index names_index put }{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx 0 0 0 0/setcmykcolor cvx ]cvx ddf }ifelse end }ifelse } { AGMCORE_in_rip_sep{ Names convert_to_process not }{ level3 }ifelse { [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt /TintProc level3 not AGMCORE_in_rip_sep and{ [ Names/length cvx[/pop cvx]cvx/repeat cvx ]cvx bdf }{ {setcolor}bdf }ifelse }{ exec_tint_transform }ifelse }ifelse set_crd /AliasedColorants false def end }def /setindexedcolorspace { dup/indexed_colorspace_dict exch AGMCORE_gput begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ currentdict devncs }{ 1 currentdict sepcs }ifelse AGMCORE_host_sep{ 4 dict begin /compCnt/Names where{pop Names length}{1}ifelse def /NewLookup HiVal 1 add string def 0 1 HiVal{ /tableIndex xdf Lookup dup type/stringtype eq{ compCnt tableIndex map_index }{ exec }ifelse /Names where{ pop setdevicencolor }{ setsepcolor }ifelse currentgray tableIndex exch 255 mul cvi NewLookup 3 1 roll put }for [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt end }{ level3 { currentdict/Names known{ [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt }{ [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt }ifelse }{ [/Indexed MappedCSA HiVal [ currentdict/Names known{ Lookup dup type/stringtype eq {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx} {/exec cvx}ifelse /TintTransform load/exec cvx }{ Lookup dup type/stringtype eq {/exch cvx/get cvx 255/div cvx} {/exec cvx}ifelse CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx }ifelse ]cvx ]setcolorspace_opt }ifelse }ifelse end set_crd } { CSA map_csa AGMCORE_host_sep level2 not and{ 0 0 0 0 setcmykcolor }{ [/Indexed MappedCSA level2 not has_color not and{ dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{ pop[/DeviceGray] }if HiVal GrayLookup }{ HiVal currentdict/RangeArray known{ { /indexed_colorspace_dict AGMCORE_gget begin Lookup exch dup HiVal gt{ pop HiVal }if NComponents mul NComponents getinterval{}forall NComponents 1 sub -1 0{ RangeArray exch 2 mul 2 getinterval aload pop map255_to_range NComponents 1 roll }for end }bind }{ Lookup }ifelse }ifelse ]setcolorspace_opt set_crd }ifelse }ifelse end }def /setindexedcolor { AGMCORE_host_sep{ /indexed_colorspace_dict AGMCORE_gget begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ map_indexed_devn devn } { Lookup 1 3 -1 roll map_index sep }ifelse end }{ Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll map_index MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse }ifelse end }{ level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{ /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin map_indexed_devn devn end } { setcolor }ifelse }ifelse }def /ignoreimagedata { currentoverprint not{ gsave dup clonedict begin 1 setgray /Decode[0 1]def /DataSourcedef /MultipleDataSources false def /BitsPerComponent 8 def currentdict end systemdict/image gx grestore }if consumeimagedata }def /add_res { dup/CSD eq{ pop //Adobe_AGM_Core begin /AGMCORE_CSD_cache load 3 1 roll put end }{ defineresource pop }ifelse }def /del_res { { aload pop exch dup/CSD eq{ pop {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall }{ exch {1 index undefineresource}forall pop }ifelse }forall }def /get_res { dup/CSD eq{ pop dup type dup/nametype eq exch/stringtype eq or{ AGMCORE_CSD_cache exch get }if }{ findresource }ifelse }def /get_csa_by_name { dup type dup/nametype eq exch/stringtype eq or{ /CSA get_res }if }def /paintproc_buf_init { /count get 0 0 put }def /paintproc_buf_next { dup/count get dup 0 get dup 3 1 roll 1 add 0 xpt get }def /cachepaintproc_compress { 5 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def /string_size 16000 def /readbuffer string_size string def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal /LZWFilter { exch dup length 0 eq{ pop }{ ppdict dup length 1 sub 3 -1 roll put }ifelse {string_size}{0}ifelse string }/LZWEncode filter def { ReadFilter readbuffer readstring exch LZWFilter exch writestring not{exit}if }loop LZWFilter closefile ppdict end }def /cachepaintproc { 2 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal { ReadFilter 16000 string readstring exch ppdict dup length 1 sub 3 -1 roll put not{exit}if }loop ppdict dup dup length 1 sub()put end }def /make_pattern { exch clonedict exch dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub matrix translate exch matrix concatmatrix 1 index begin BBox 0 get XStep div cvi XStep mul/xshift exch neg def BBox 1 get YStep div cvi YStep mul/yshift exch neg def BBox 0 get xshift add BBox 1 get yshift add BBox 2 get xshift add BBox 3 get yshift add 4 array astore /BBox exch def [xshift yshift/translate load null/exec load]dup 3/PaintProc load put cvx/PaintProc exch def end gsave 0 setgray makepattern grestore }def /set_pattern { dup/PatternType get 1 eq{ dup/PaintType get 1 eq{ currentoverprint sop[/DeviceGray]setcolorspace 0 setgray }if }if setpattern }def /setcolorspace_opt { dup currentcolorspace eq{pop}{setcolorspace}ifelse }def /updatecolorrendering { currentcolorrendering/RenderingIntent known{ currentcolorrendering/RenderingIntent get } { Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd AGMCORE_gget dup null eq } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd AGMCORE_gget dup null eq } { Intent/Saturation eq { /saturation_crd AGMCORE_gget dup null eq } { /perceptual_crd AGMCORE_gget dup null eq }ifelse }ifelse }ifelse { pop null } { /RenderingIntent known{null}{Intent}ifelse }ifelse }ifelse Intent ne{ Intent/ColorRendering{findresource}stopped { pop pop systemdict/findcolorrendering known { Intent findcolorrendering { /ColorRendering findresource true exch } { /ColorRendering findresource product(Xerox Phaser 5400)ne exch }ifelse dup Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd exch AGMCORE_gput } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd exch AGMCORE_gput } { Intent/Saturation eq { /saturation_crd exch AGMCORE_gput } { Intent/Perceptual eq { /perceptual_crd exch AGMCORE_gput } { pop }ifelse }ifelse }ifelse }ifelse 1 index{exch}{pop}ifelse } {false}ifelse } {true}ifelse { dup begin currentdict/TransformPQR known{ currentdict/TransformPQR get aload pop 3{{}eq 3 1 roll}repeat or or } {true}ifelse currentdict/MatrixPQR known{ currentdict/MatrixPQR get aload pop 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq and and and and and and and and } {true}ifelse end or { clonedict begin /TransformPQR[ {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind ]def /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def currentdict end }if setcolorrendering_opt }if }if }def /set_crd { AGMCORE_host_sep not level2 and{ currentdict/ColorRendering known{ ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if }{ currentdict/Intent known{ updatecolorrendering }if }ifelse currentcolorspace dup type/arraytype eq {0 get}if /DeviceRGB eq { currentdict/UCR known {/UCR}{/AGMCORE_currentucr}ifelse load setundercolorremoval currentdict/BG known {/BG}{/AGMCORE_currentbg}ifelse load setblackgeneration }if }if }def /set_ucrbg { dup null eq{pop/AGMCORE_currentbg load}{/Procedure get_res}ifelse setblackgeneration dup null eq{pop/AGMCORE_currentucr load}{/Procedure get_res}ifelse setundercolorremoval }def /setcolorrendering_opt { dup currentcolorrendering eq{ pop }{ product(HP Color LaserJet 2605)anchorsearch{ pop pop pop }{ pop clonedict begin /Intent Intent def currentdict end setcolorrendering }ifelse }ifelse }def /cpaint_gcomp { convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not { (%end_cpaint_gcomp)flushinput }if }def /cpaint_gsep { //Adobe_AGM_Core/AGMCORE_ConvertToProcess get { (%end_cpaint_gsep)flushinput }if }def /cpaint_gend {np}def /T1_path { currentfile token pop currentfile token pop mo { currentfile token pop dup type/stringtype eq {pop exit}if 0 exch rlineto currentfile token pop dup type/stringtype eq {pop exit}if 0 rlineto }loop }def /T1_gsave level3 {/clipsave} {/gsave}ifelse load def /T1_grestore level3 {/cliprestore} {/grestore}ifelse load def /set_spot_alias_ary { dup inherit_aliases //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf }def /set_spot_normalization_ary { dup inherit_aliases dup length /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if array //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf /AGMCORE_SpotAliasAry where{ pop AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval AGMCORE_SpotAliasAry length }{0}ifelse AGMCORE_SpotAliasAry2 3 1 roll exch putinterval true set_spot_alias }def /inherit_aliases { {dup/Name get map_alias{/CSD put}{pop}ifelse}forall }def /set_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias 3 -1 roll put }{ pop }ifelse }def /current_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias get }{ false }ifelse }def /map_alias { /AGMCORE_SpotAliasAry2 where{ begin /AGMCORE_name xdf false AGMCORE_SpotAliasAry2{ dup/Name get AGMCORE_name eq{ /CSD get/CSD get_res exch pop true exit }{ pop }ifelse }forall end }{ pop false }ifelse }bdf /spot_alias { true set_spot_alias /AGMCORE_&setcustomcolor AGMCORE_key_known not{ //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put }if /customcolor_tint 1 AGMCORE_gput //Adobe_AGM_Core begin /setcustomcolor { //Adobe_AGM_Core begin dup/customcolor_tint exch AGMCORE_gput 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not current_spot_alias and{1 index 4 get map_alias}{false}ifelse { false set_spot_alias /sep_colorspace_dict AGMCORE_gget null ne {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse 3 1 roll 2 index{ exch pop/sep_tint AGMCORE_gget exch }if mark 3 1 roll setsepcolorspace counttomark 0 ne{ setsepcolor }if pop not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if pop true set_spot_alias }{ AGMCORE_&setcustomcolor }ifelse end }bdf end }def /begin_feature { Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if }def /end_feature { 2 dict begin /spd/setpagedevice load def /setpagedevice{get_gstate spd set_gstate}def stopped{$error/newerror false put}if end count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if }def /set_negative { //Adobe_AGM_Core begin /AGMCORE_inverting exch def level2{ currentpagedevice/NegativePrint known AGMCORE_distilling not and{ currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{ true begin_feature true{ <>setpagedevice }end_feature }if /AGMCORE_inverting false def }if }if AGMCORE_inverting{ [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer AGMCORE_distilling{ erasepage }{ gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore }ifelse }if end }def /lw_save_restore_override{ /md where{ pop md begin initializepage /initializepage{}def /pmSVsetup{}def /endp{}def /pse{}def /psb{}def /orig_showpage where {pop} {/orig_showpage/showpage load def} ifelse /showpage{orig_showpage gR}def end }if }def /pscript_showpage_override{ /NTPSOct95 where { begin showpage save /showpage/restore load def /restore{exch pop}def end }if }def /driver_media_override { /md where{ pop md/initializepage known{ md/initializepage{}put }if md/rC known{ md/rC{4{pop}repeat}put }if }if /mysetup where{ /mysetup[1 0 0 1 0 0]put }if Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put level2 {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if }def /capture_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put }if }if }def /restore_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup known{ Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put Adobe_AGM_Core/save_mysetup undef }if }if }if }def /driver_check_media_override { /PrepsDict where {pop} { Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq { Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and }if { Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix }if }ifelse }def AGMCORE_err_strings begin /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def /AGMCORE_invalid_color_space(This job contains an invalid color space. )def end /set_def_ht {AGMCORE_def_ht sethalftone}def /set_def_flat {AGMCORE_Default_flatness setflat}def end systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_CoolType_Core 2.31 0 %%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved. %%Version: 2.31 0 10 dict begin /Adobe_CoolType_Passthru currentdict def /Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def Adobe_CoolType_Core_Defined {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def} if userdict/Adobe_CoolType_Core 70 dict dup begin put /Adobe_CoolType_Version 2.31 def /Level2? systemdict/languagelevel known dup {pop systemdict/languagelevel get 2 ge} if def Level2? not { /currentglobal false def /setglobal/pop load def /gcheck{pop false}bind def /currentpacking false def /setpacking/pop load def /SharedFontDirectory 0 dict def } if currentpacking true setpacking currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def end setglobal currentglobal true setglobal userdict/Adobe_CoolType_GVMFonts known not {userdict/Adobe_CoolType_GVMFonts 10 dict put} if setglobal currentglobal false setglobal userdict/Adobe_CoolType_LVMFonts known not {userdict/Adobe_CoolType_LVMFonts 10 dict put} if setglobal /ct_VMDictPut { dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse 3 1 roll put }bind def /ct_VMDictUndef { dup Adobe_CoolType_GVMFonts exch known {Adobe_CoolType_GVMFonts exch undef} { dup Adobe_CoolType_LVMFonts exch known {Adobe_CoolType_LVMFonts exch undef} {pop} ifelse }ifelse }bind def /ct_str1 1 string def /ct_xshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_yshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 exch rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_xyshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { {_ct_na _ct_i 1 add get}stopped {pop pop pop} { _ct_x _ct_y moveto rmoveto } ifelse } ifelse /_ct_i _ct_i 2 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def /ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def /xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def currentglobal true setglobal /ct_T3Defs { /BuildChar { 1 index/Encoding get exch get 1 index/BuildGlyph get exec }bind def /BuildGlyph { exch begin GlyphProcs exch get exec end }bind def }bind def setglobal /@_SaveStackLevels { Adobe_CoolType_Data begin /@vmState currentglobal def false setglobal @opStackCountByLevel @opStackLevel 2 copy known not { 2 copy 3 dict dup/args 7 index 5 add array put put get } { get dup/args get dup length 3 index lt { dup length 5 add array exch 1 index exch 0 exch putinterval 1 index exch/args exch put } {pop} ifelse } ifelse begin count 1 sub 1 index lt {pop count} if dup/argCount exch def dup 0 gt { args exch 0 exch getinterval astore pop } {pop} ifelse count /restCount exch def end /@opStackLevel @opStackLevel 1 add def countdictstack 1 sub @dictStackCountByLevel exch @dictStackLevel exch put /@dictStackLevel @dictStackLevel 1 add def @vmState setglobal end }bind def /@_RestoreStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def @opStackCountByLevel @opStackLevel get begin count restCount sub dup 0 gt {{pop}repeat} {pop} ifelse args 0 argCount getinterval{}forall end /@dictStackLevel @dictStackLevel 1 sub def @dictStackCountByLevel @dictStackLevel get end countdictstack exch sub dup 0 gt {{end}repeat} {pop} ifelse }bind def /@_PopStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def /@dictStackLevel @dictStackLevel 1 sub def end }bind def /@Raise { exch cvx exch errordict exch get exec stop }bind def /@ReRaise { cvx $error/errorname get errordict exch get exec stop }bind def /@Stopped { 0 @#Stopped }bind def /@#Stopped { @_SaveStackLevels stopped {@_RestoreStackLevels true} {@_PopStackLevels false} ifelse }bind def /@Arg { Adobe_CoolType_Data begin @opStackCountByLevel @opStackLevel 1 sub get begin args exch argCount 1 sub exch sub get end end }bind def currentglobal true setglobal /CTHasResourceForAllBug Level2? { 1 dict dup /@shouldNotDisappearDictValue true def Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put begin count @_SaveStackLevels {(*){pop stop}128 string/Category resourceforall} stopped pop @_RestoreStackLevels currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll { /@shouldNotDisappearDictValue known { { end currentdict 1 index eq {pop exit} if } loop } if } { pop end } ifelse } {false} ifelse def true setglobal /CTHasResourceStatusBug Level2? { mark {/steveamerige/Category resourcestatus} stopped {cleartomark true} {cleartomark currentglobal not} ifelse } {false} ifelse def setglobal /CTResourceStatus { mark 3 1 roll /Category findresource begin ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse end }bind def /CTWorkAroundBugs { Level2? { /cid_PreLoad/ProcSet resourcestatus { pop pop currentglobal mark { (*) { dup/CMap CTHasResourceStatusBug {CTResourceStatus} {resourcestatus} ifelse { pop dup 0 eq exch 1 eq or { dup/CMap findresource gcheck setglobal /CMap undefineresource } { pop CTHasResourceForAllBug {exit} {stop} ifelse } ifelse } {pop} ifelse } 128 string/CMap resourceforall } stopped {cleartomark} stopped pop setglobal } if } if }bind def /ds { Adobe_CoolType_Core begin CTWorkAroundBugs /mo/moveto load def /nf/newencodedfont load def /msf{makefont setfont}bind def /uf{dup undefinefont ct_VMDictUndef}bind def /ur/undefineresource load def /chp/charpath load def /awsh/awidthshow load def /wsh/widthshow load def /ash/ashow load def /@xshow/xshow load def /@yshow/yshow load def /@xyshow/xyshow load def /@cshow/cshow load def /sh/show load def /rp/repeat load def /.n/.notdef def end currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /AddWidths? false def /CC 0 def /charcode 2 string def /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def /InVMFontsByCMap 10 dict def /InVMDeepCopiedFonts 10 dict def end setglobal }bind def /dt { currentdict Adobe_CoolType_Core eq {end} if }bind def /ps { Adobe_CoolType_Core begin Adobe_CoolType_GVMFonts begin Adobe_CoolType_LVMFonts begin SharedFontDirectory begin }bind def /pt { end end end end }bind def /unload { systemdict/languagelevel known { systemdict/languagelevel get 2 ge { userdict/Adobe_CoolType_Core 2 copy known {undef} {pop pop} ifelse } if } if }bind def /ndf { 1 index where {pop pop pop} {dup xcheck{bind}if def} ifelse }def /findfont systemdict begin userdict begin /globaldict where{/globaldict get begin}if dup where pop exch get /globaldict where{pop end}if end end Adobe_CoolType_Core_Defined {/systemfindfont exch def} { /findfont 1 index def /systemfindfont exch def } ifelse /undefinefont {pop}ndf /copyfont { currentglobal 3 1 roll 1 index gcheck setglobal dup null eq{0}{dup length}ifelse 2 index length add 1 add dict begin exch { 1 index/FID eq {pop pop} {def} ifelse } forall dup null eq {pop} {{def}forall} ifelse currentdict end exch setglobal }bind def /copyarray { currentglobal exch dup gcheck setglobal dup length array copy exch setglobal }bind def /newencodedfont { currentglobal { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } { FontDirectory 3 index known {FontDirectory 3 index get/FontReferenced known} { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } ifelse } ifelse dup { 3 index findfont/FontReferenced get 2 index dup type/nametype eq {findfont} if ne {pop false} if } if dup { 1 index dup type/nametype eq {findfont} if dup/CharStrings known { /CharStrings get length 4 index findfont/CharStrings get length ne { pop false } if } {pop} ifelse } if { pop 1 index findfont /Encoding get exch 0 1 255 {2 copy get 3 index 3 1 roll put} for pop pop pop } { currentglobal 4 1 roll dup type/nametype eq {findfont} if dup gcheck setglobal dup dup maxlength 2 add dict begin exch { 1 index/FID ne 2 index/Encoding ne and {def} {pop pop} ifelse } forall /FontReferenced exch def /Encoding exch dup length array copy def /FontName 1 index dup type/stringtype eq{cvn}if def dup currentdict end definefont ct_VMDictPut setglobal } ifelse }bind def /SetSubstituteStrategy { $SubstituteFont begin dup type/dicttype ne {0 dict} if currentdict/$Strategies known { exch $Strategies exch 2 copy known { get 2 copy maxlength exch maxlength add dict begin {def}forall {def}forall currentdict dup/$Init known {dup/$Init get exec} if end /$Strategy exch def } {pop pop pop} ifelse } {pop pop} ifelse end }bind def /scff { $SubstituteFont begin dup type/stringtype eq {dup length exch} {null} ifelse /$sname exch def /$slen exch def /$inVMIndex $sname null eq { 1 index $str cvs dup length $slen sub $slen getinterval cvn } {$sname} ifelse def end {findfont} @Stopped { dup length 8 add string exch 1 index 0(BadFont:)putinterval 1 index exch 8 exch dup length string cvs putinterval cvn {findfont} @Stopped {pop/Courier findfont} if } if $SubstituteFont begin /$sname null def /$slen 0 def /$inVMIndex null def end }bind def /isWidthsOnlyFont { dup/WidthsOnly known {pop pop true} { dup/FDepVector known {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall} { dup/FDArray known {/FDArray get{isWidthsOnlyFont dup{exit}if}forall} {pop} ifelse } ifelse } ifelse }bind def /ct_StyleDicts 4 dict dup begin /Adobe-Japan1 4 dict dup begin Level2? { /Serif /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMin-W3} { /CIDFont/Category resourcestatus { pop pop /HeiseiMin-W3/CIDFont resourcestatus {pop pop/HeiseiMin-W3} {/Ryumin-Light} ifelse } {/Ryumin-Light} ifelse } ifelse def /SansSerif /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiKakuGo-W5} { /CIDFont/Category resourcestatus { pop pop /HeiseiKakuGo-W5/CIDFont resourcestatus {pop pop/HeiseiKakuGo-W5} {/GothicBBB-Medium} ifelse } {/GothicBBB-Medium} ifelse } ifelse def /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMaruGo-W4} { /CIDFont/Category resourcestatus { pop pop /HeiseiMaruGo-W4/CIDFont resourcestatus {pop pop/HeiseiMaruGo-W4} { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } ifelse /RoundSansSerif exch def /Default Serif def } { /Serif/Ryumin-Light def /SansSerif/GothicBBB-Medium def { (fonts/Jun101-Light-83pv-RKSJ-H)status }stopped {pop}{ {pop pop pop pop/Jun101-Light} {SansSerif} ifelse /RoundSansSerif exch def }ifelse /Default Serif def } ifelse end def /Adobe-Korea1 4 dict dup begin /Serif/HYSMyeongJo-Medium def /SansSerif/HYGoThic-Medium def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-GB1 4 dict dup begin /Serif/STSong-Light def /SansSerif/STHeiti-Regular def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-CNS1 4 dict dup begin /Serif/MKai-Medium def /SansSerif/MHei-Medium def /RoundSansSerif SansSerif def /Default Serif def end def end def Level2?{currentglobal true setglobal}if /ct_BoldRomanWidthProc { stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth 0 0 }bind def /ct_Type0WidthProc { dup stringwidth 0 0 moveto 2 index true charpath pathbbox 0 -1 7 index 2 div .88 setcachedevice2 pop 0 0 }bind def /ct_Type0WMode1WidthProc { dup stringwidth pop 2 div neg -0.88 2 copy moveto 0 -1 5 -1 roll true charpath pathbbox setcachedevice }bind def /cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_BoldBaseFont 11 dict begin /FontType 3 def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /Encoding cHexEncoding def /_setwidthProc/ct_BoldRomanWidthProc load def /_bcstr1 1 string def /BuildChar { exch begin _basefont setfont _bcstr1 dup 0 4 -1 roll put dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def systemdict/composefont known { /ct_DefineIdentity-H { /Identity-H/CMap resourcestatus { pop pop } { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse } def /ct_BoldBaseCIDFont 11 dict begin /CIDFontType 1 def /CIDFontName/ct_BoldBaseCIDFont def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /_setwidthProc/ct_Type0WidthProc load def /_bcstr2 2 string def /BuildGlyph { exch begin _basefont setfont _bcstr2 1 2 index 256 mod put _bcstr2 0 3 -1 roll 256 idiv put _bcstr2 dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def }if Level2?{setglobal}if /ct_CopyFont{ { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall }bind def /ct_Type0CopyFont { exch dup length dict begin ct_CopyFont [ exch FDepVector { dup/FontType get 0 eq { 1 index ct_Type0CopyFont /_ctType0 exch definefont } { /_ctBaseFont exch 2 index exec } ifelse exch } forall pop ] /FDepVector exch def currentdict end }bind def /ct_MakeBoldFont { dup/ct_SyntheticBold known { dup length 3 add dict begin ct_CopyFont /ct_StrokeWidth .03 0 FontMatrix idtransform pop def /ct_SyntheticBold true def currentdict end definefont } { dup dup length 3 add dict begin ct_CopyFont /PaintType 2 def /StrokeWidth .03 0 FontMatrix idtransform pop def /dummybold currentdict end definefont dup/FontType get dup 9 ge exch 11 le and { ct_BoldBaseCIDFont dup length 3 add dict copy begin dup/CIDSystemInfo get/CIDSystemInfo exch def ct_DefineIdentity-H /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefont exch def /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefonto exch def currentdict end /CIDFont defineresource } { ct_BoldBaseFont dup length 3 add dict copy begin /_basefont exch def /_basefonto exch def currentdict end definefont } ifelse } ifelse }bind def /ct_MakeBold{ 1 index 1 index findfont currentglobal 5 1 roll dup gcheck setglobal dup /FontType get 0 eq { dup/WMode known{dup/WMode get 1 eq}{false}ifelse version length 4 ge and {version 0 4 getinterval cvi 2015 ge} {true} ifelse {/ct_Type0WidthProc} {/ct_Type0WMode1WidthProc} ifelse ct_BoldBaseFont/_setwidthProc 3 -1 roll load put {ct_MakeBoldFont}ct_Type0CopyFont definefont } { dup/_fauxfont known not 1 index/SubstMaster known not and { ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put ct_MakeBoldFont } { 2 index 2 index eq {exch pop } { dup length dict begin ct_CopyFont currentdict end definefont } ifelse } ifelse } ifelse pop pop pop setglobal }bind def /?str1 256 string def /?set { $SubstituteFont begin /$substituteFound false def /$fontname 1 index def /$doSmartSub false def end dup findfont $SubstituteFont begin $substituteFound {false} { dup/FontName known { dup/FontName get $fontname eq 1 index/DistillerFauxFont known not and /currentdistillerparams where {pop false 2 index isWidthsOnlyFont not and} if } {false} ifelse } ifelse exch pop /$doSmartSub true def end { 5 1 roll pop pop pop pop findfont } { 1 index findfont dup/FontType get 3 eq { 6 1 roll pop pop pop pop pop false } {pop true} ifelse { $SubstituteFont begin pop pop /$styleArray 1 index def /$regOrdering 2 index def pop pop 0 1 $styleArray length 1 sub { $styleArray exch get ct_StyleDicts $regOrdering 2 copy known { get exch 2 copy known not {pop/Default} if get dup type/nametype eq { ?str1 cvs length dup 1 add exch ?str1 exch(-)putinterval exch dup length exch ?str1 exch 3 index exch putinterval add ?str1 exch 0 exch getinterval cvn } { pop pop/Unknown } ifelse } { pop pop pop pop/Unknown } ifelse } for end findfont }if } ifelse currentglobal false setglobal 3 1 roll null copyfont definefont pop setglobal }bind def setpacking userdict/$SubstituteFont 25 dict put 1 dict begin /SubstituteFont dup $error exch 2 copy known {get} {pop pop{pop/Courier}bind} ifelse def /currentdistillerparams where dup { pop pop currentdistillerparams/CannotEmbedFontPolicy 2 copy known {get/Error eq} {pop pop false} ifelse } if not { countdictstack array dictstack 0 get begin userdict begin $SubstituteFont begin /$str 128 string def /$fontpat 128 string def /$slen 0 def /$sname null def /$match false def /$fontname null def /$substituteFound false def /$inVMIndex null def /$doSmartSub true def /$depth 0 def /$fontname null def /$italicangle 26.5 def /$dstack null def /$Strategies 10 dict dup begin /$Type3Underprint { currentglobal exch false setglobal 11 dict begin /UseFont exch $WMode 0 ne { dup length dict copy dup/WMode $WMode put /UseFont exch definefont } if def /FontName $fontname dup type/stringtype eq{cvn}if def /FontType 3 def /FontMatrix[.001 0 0 .001 0 0]def /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def /FontBBox[0 0 0 0]def /CCInfo 7 dict dup begin /cc null def /x 0 def /y 0 def end def /BuildChar { exch begin CCInfo begin 1 string dup 0 3 index put exch pop /cc exch def UseFont 1000 scalefont setfont cc stringwidth/y exch def/x exch def x y setcharwidth $SubstituteFont/$Strategy get/$Underprint get exec 0 0 moveto cc show x y moveto end end }bind def currentdict end exch setglobal }bind def /$GetaTint 2 dict dup begin /$BuildFont { dup/WMode known {dup/WMode get} {0} ifelse /$WMode exch def $fontname exch dup/FontName known { dup/FontName get dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse exch Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index/FontName get known { pop Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index get null copyfont } {$deepcopyfont} ifelse exch 1 index exch/FontBasedOn exch put dup/FontName $fontname dup type/stringtype eq{cvn}if put definefont Adobe_CoolType_Data/InVMDeepCopiedFonts get begin dup/FontBasedOn get 1 index def end }bind def /$Underprint { gsave x abs y abs gt {/y 1000 def} {/x -1000 def 500 120 translate} ifelse Level2? { [/Separation(All)/DeviceCMYK{0 0 0 1 pop}] setcolorspace } {0 setgray} ifelse 10 setlinewidth x .8 mul [7 3] { y mul 8 div 120 sub x 10 div exch moveto 0 y 4 div neg rlineto dup 0 rlineto 0 y 4 div rlineto closepath gsave Level2? {.2 setcolor} {.8 setgray} ifelse fill grestore stroke } forall pop grestore }bind def end def /$Oblique 1 dict dup begin /$BuildFont { currentglobal exch dup gcheck setglobal null copyfont begin /FontBasedOn currentdict/FontName known { FontName dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse def /FontName $fontname dup type/stringtype eq{cvn}if def /currentdistillerparams where {pop} { /FontInfo currentdict/FontInfo known {FontInfo null copyfont} {2 dict} ifelse dup begin /ItalicAngle $italicangle def /FontMatrix FontMatrix [1 0 ItalicAngle dup sin exch cos div 1 0 0] matrix concatmatrix readonly end 4 2 roll def def } ifelse FontName currentdict end definefont exch setglobal }bind def end def /$None 1 dict dup begin /$BuildFont{}bind def end def end def /$Oblique SetSubstituteStrategy /$findfontByEnum { dup type/stringtype eq{cvn}if dup/$fontname exch def $sname null eq {$str cvs dup length $slen sub $slen getinterval} {pop $sname} ifelse $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval /$match false def $SubstituteFont/$dstack countdictstack array dictstack put mark { $fontpat 0 $slen 7 add getinterval {/$match exch def exit} $str filenameforall } stopped { cleardictstack currentdict true $SubstituteFont/$dstack get { exch { 1 index eq {pop false} {true} ifelse } {begin false} ifelse } forall pop } if cleartomark /$slen 0 def $match false ne {$match(fonts/)anchorsearch pop pop cvn} {/Courier} ifelse }bind def /$ROS 1 dict dup begin /Adobe 4 dict dup begin /Japan1 [/Ryumin-Light/HeiseiMin-W3 /GothicBBB-Medium/HeiseiKakuGo-W5 /HeiseiMaruGo-W4/Jun101-Light]def /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def /GB1 [/STSong-Light/STHeiti-Regular]def /CNS1 [/MKai-Medium/MHei-Medium]def end def end def /$cmapname null def /$deepcopyfont { dup/FontType get 0 eq { 1 dict dup/FontName/copied put copyfont begin /FDepVector FDepVector copyarray 0 1 2 index length 1 sub { 2 copy get $deepcopyfont dup/FontName/copied put /copied exch definefont 3 copy put pop pop } for def currentdict end } {$Strategies/$Type3Underprint get exec} ifelse }bind def /$buildfontname { dup/CIDFont findresource/CIDSystemInfo get begin Registry length Ordering length Supplement 8 string cvs 3 copy length 2 add add add string dup 5 1 roll dup 0 Registry putinterval dup 4 index(-)putinterval dup 4 index 1 add Ordering putinterval 4 2 roll add 1 add 2 copy(-)putinterval end 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch anchorsearch {pop pop 3 2 roll putinterval cvn/$cmapname exch def} {pop pop pop pop pop} ifelse length $str 1 index(-)putinterval 1 add $str 1 index $cmapname $fontpat cvs putinterval $cmapname length add $str exch 0 exch getinterval cvn }bind def /$findfontByROS { /$fontname exch def $ROS Registry 2 copy known { get Ordering 2 copy known {get} {pop pop[]} ifelse } {pop pop[]} ifelse false exch { dup/CIDFont resourcestatus { pop pop save 1 index/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get} {false} ifelse exch pop exch restore {pop} {exch pop true exit} ifelse } {pop} ifelse } forall {$str cvs $buildfontname} { false(*) { save exch dup/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get not} {true} ifelse exch/CIDSystemInfo get dup/Registry get Registry eq exch/Ordering get Ordering eq and and {exch restore exch pop true exit} {pop restore} ifelse } $str/CIDFont resourceforall {$buildfontname} {$fontname $findfontByEnum} ifelse } ifelse }bind def end end currentdict/$error known currentdict/languagelevel known and dup {pop $error/SubstituteFont known} if dup {$error} {Adobe_CoolType_Core} ifelse begin { /SubstituteFont /CMap/Category resourcestatus { pop pop { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and { $sname null eq {dup $str cvs dup length $slen sub $slen getinterval cvn} {$sname} ifelse Adobe_CoolType_Data/InVMFontsByCMap get 1 index 2 copy known { get false exch { pop currentglobal { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } { FontDirectory 1 index known {exch pop true exit} { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } ifelse } ifelse } forall } {pop pop false} ifelse { exch pop exch pop } { dup/CMap resourcestatus { pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS } { 128 string cvs dup(-)search { 3 1 roll search { 3 1 roll pop {dup cvi} stopped {pop pop pop pop pop $findfontByEnum} { 4 2 roll pop pop exch length exch 2 index length 2 index sub exch 1 sub -1 0 { $str cvs dup length 4 index 0 4 index 4 3 roll add getinterval exch 1 index exch 3 index exch putinterval dup/CMap resourcestatus { pop pop 4 1 roll pop pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS true exit } {pop} ifelse } for dup type/booleantype eq {pop} {pop pop pop $findfontByEnum} ifelse } ifelse } {pop pop pop $findfontByEnum} ifelse } {pop pop $findfontByEnum} ifelse } ifelse } ifelse } {//SubstituteFont exec} ifelse /$slen 0 def end } } { { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and {$findfontByEnum} {//SubstituteFont exec} ifelse end } } ifelse bind readonly def Adobe_CoolType_Core/scfindfont/systemfindfont load put } { /scfindfont { $SubstituteFont begin dup systemfindfont dup/FontName known {dup/FontName get dup 3 index ne} {/noname true} ifelse dup { /$origfontnamefound 2 index def /$origfontname 4 index def/$substituteFound true def } if exch pop { $slen 0 gt $sname null ne 3 index length $slen gt or and { pop dup $findfontByEnum findfont dup maxlength 1 add dict begin {1 index/FID eq{pop pop}{def}ifelse} forall currentdict end definefont dup/FontName known{dup/FontName get}{null}ifelse $origfontnamefound ne { $origfontname $str cvs print ( substitution revised, using )print dup/FontName known {dup/FontName get}{(unspecified font)} ifelse $str cvs print(.\n)print } if } {exch pop} ifelse } {exch pop} ifelse end }bind def } ifelse end end Adobe_CoolType_Core_Defined not { Adobe_CoolType_Core/findfont { $SubstituteFont begin $depth 0 eq { /$fontname 1 index dup type/stringtype ne{$str cvs}if def /$substituteFound false def } if /$depth $depth 1 add def end scfindfont $SubstituteFont begin /$depth $depth 1 sub def $substituteFound $depth 0 eq and { $inVMIndex null ne {dup $inVMIndex $AddInVMFont} if $doSmartSub { currentdict/$Strategy known {$Strategy/$BuildFont get exec} if } if } if end }bind put } if } if end /$AddInVMFont { exch/FontName 2 copy known { get 1 dict dup begin exch 1 index gcheck def end exch Adobe_CoolType_Data/InVMFontsByCMap get exch $DictAdd } {pop pop pop} ifelse }bind def /$DictAdd { 2 copy known not {2 copy 4 index length dict put} if Level2? not { 2 copy get dup maxlength exch length 4 index length add lt 2 copy get dup length 4 index length add exch maxlength 1 index lt { 2 mul dict begin 2 copy get{forall}def 2 copy currentdict put end } {pop} ifelse } if get begin {def} forall end }bind def end end %%EndResource currentglobal true setglobal %%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%Copyright: Copyright 1987-2006 Adobe Systems Incorporated. %%Version: 1.23 0 systemdict/languagelevel known dup {currentglobal false setglobal} {false} ifelse exch userdict/Adobe_CoolType_Utility 2 copy known {2 copy get dup maxlength 27 add dict copy} {27 dict} ifelse put Adobe_CoolType_Utility begin /@eexecStartData def /@recognizeCIDFont null def /ct_Level2? exch def /ct_Clone? 1183615869 internaldict dup /CCRun known not exch/eCCRun known not ct_Level2? and or def ct_Level2? {globaldict begin currentglobal true setglobal} if /ct_AddStdCIDMap ct_Level2? {{ mark Adobe_CoolType_Utility/@recognizeCIDFont currentdict put { ((Hex)57 StartData 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8 cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec } stopped { cleartomark Adobe_CoolType_Utility/@recognizeCIDFont get countdictstack dup array dictstack exch 1 sub -1 0 { 2 copy get 3 index eq {1 index length exch sub 1 sub{end}repeat exit} {pop} ifelse } for pop pop Adobe_CoolType_Utility/@eexecStartData get eexec } {cleartomark} ifelse }} {{ Adobe_CoolType_Utility/@eexecStartData get eexec }} ifelse bind def userdict/cid_extensions known dup{cid_extensions/cid_UpdateDB known and}if { cid_extensions begin /cid_GetCIDSystemInfo { 1 index type/stringtype eq {exch cvn exch} if cid_extensions begin dup load 2 index known { 2 copy cid_GetStatusInfo dup null ne { 1 index load 3 index get dup null eq {pop pop cid_UpdateDB} { exch 1 index/Created get eq {exch pop exch pop} {pop cid_UpdateDB} ifelse } ifelse } {pop cid_UpdateDB} ifelse } {cid_UpdateDB} ifelse end }bind def end } if ct_Level2? {end setglobal} if /ct_UseNativeCapability? systemdict/composefont known def /ct_MakeOCF 35 dict def /ct_Vars 25 dict def /ct_GlyphDirProcs 6 dict def /ct_BuildCharDict 15 dict dup begin /charcode 2 string def /dst_string 1500 string def /nullstring()def /usewidths? true def end def ct_Level2?{setglobal}{pop}ifelse ct_GlyphDirProcs begin /GetGlyphDirectory { systemdict/languagelevel known {pop/CIDFont findresource/GlyphDirectory get} { 1 index/CIDFont findresource/GlyphDirectory get dup type/dicttype eq { dup dup maxlength exch length sub 2 index lt { dup length 2 index add dict copy 2 index /CIDFont findresource/GlyphDirectory 2 index put } if } if exch pop exch pop } ifelse + }def /+ { systemdict/languagelevel known { currentglobal false setglobal 3 dict begin /vm exch def } {1 dict begin} ifelse /$ exch def systemdict/languagelevel known { vm setglobal /gvm currentglobal def $ gcheck setglobal } if ?{$ begin}if }def /?{$ type/dicttype eq}def /|{ userdict/Adobe_CoolType_Data known { Adobe_CoolType_Data/AddWidths? known { currentdict Adobe_CoolType_Data begin begin AddWidths? { Adobe_CoolType_Data/CC 3 index put ?{def}{$ 3 1 roll put}ifelse CC charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore currentfont/Widths get exch CC exch put } {?{def}{$ 3 1 roll put}ifelse} ifelse end end } {?{def}{$ 3 1 roll put}ifelse} ifelse } {?{def}{$ 3 1 roll put}ifelse} ifelse }def /! { ?{end}if systemdict/languagelevel known {gvm setglobal} if end }def /:{string currentfile exch readstring pop}executeonly def end ct_MakeOCF begin /ct_cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_CID_STR_SIZE 8000 def /ct_mkocfStr100 100 string def /ct_defaultFontMtx[.001 0 0 .001 0 0]def /ct_1000Mtx[1000 0 0 1000 0 0]def /ct_raise{exch cvx exch errordict exch get exec stop}bind def /ct_reraise {cvx $error/errorname get(Error: )print dup( )cvs print errordict exch get exec stop }bind def /ct_cvnsi { 1 index add 1 sub 1 exch 0 4 1 roll { 2 index exch get exch 8 bitshift add } for exch pop }bind def /ct_GetInterval { Adobe_CoolType_Utility/ct_BuildCharDict get begin /dst_index 0 def dup dst_string length gt {dup string/dst_string exch def} if 1 index ct_CID_STR_SIZE idiv /arrayIndex exch def 2 index arrayIndex get 2 index arrayIndex ct_CID_STR_SIZE mul sub { dup 3 index add 2 index length le { 2 index getinterval dst_string dst_index 2 index putinterval length dst_index add/dst_index exch def exit } { 1 index length 1 index sub dup 4 1 roll getinterval dst_string dst_index 2 index putinterval pop dup dst_index add/dst_index exch def sub /arrayIndex arrayIndex 1 add def 2 index dup length arrayIndex gt {arrayIndex get} { pop exit } ifelse 0 } ifelse } loop pop pop pop dst_string 0 dst_index getinterval end }bind def ct_Level2? { /ct_resourcestatus currentglobal mark true setglobal {/unknowninstancename/Category resourcestatus} stopped {cleartomark setglobal true} {cleartomark currentglobal not exch setglobal} ifelse { { mark 3 1 roll/Category findresource begin ct_Vars/vm currentglobal put ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse ct_Vars/vm get setglobal end } } {{resourcestatus}} ifelse bind def /CIDFont/Category ct_resourcestatus {pop pop} { currentglobal true setglobal /Generic/Category findresource dup length dict copy dup/InstanceType/dicttype put /CIDFont exch/Category defineresource pop setglobal } ifelse ct_UseNativeCapability? { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } if } { /ct_Category 2 dict begin /CIDFont 10 dict def /ProcSet 2 dict def currentdict end def /defineresource { ct_Category 1 index 2 copy known { get dup dup maxlength exch length eq { dup length 10 add dict copy ct_Category 2 index 2 index put } if 3 index 3 index put pop exch pop } {pop pop/defineresource/undefined ct_raise} ifelse }bind def /findresource { ct_Category 1 index 2 copy known { get 2 index 2 copy known {get 3 1 roll pop pop} {pop pop/findresource/undefinedresource ct_raise} ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /resourcestatus { ct_Category 1 index 2 copy known { get 2 index known exch pop exch pop { 0 -1 true } { false } ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /ct_resourcestatus/resourcestatus load def } ifelse /ct_CIDInit 2 dict begin /ct_cidfont_stream_init { { dup(Binary)eq { pop null currentfile ct_Level2? { {cid_BYTE_COUNT()/SubFileDecode filter} stopped {pop pop pop} if } if /readstring load exit } if dup(Hex)eq { pop currentfile ct_Level2? { {null exch/ASCIIHexDecode filter/readstring} stopped {pop exch pop(>)exch/readhexstring} if } {(>)exch/readhexstring} ifelse load exit } if /StartData/typecheck ct_raise } loop cid_BYTE_COUNT ct_CID_STR_SIZE le { 2 copy cid_BYTE_COUNT string exch exec pop 1 array dup 3 -1 roll 0 exch put } { cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi dup array exch 2 sub 0 exch 1 exch { 2 copy 5 index ct_CID_STR_SIZE string 6 index exec pop put pop } for 2 index cid_BYTE_COUNT ct_CID_STR_SIZE mod string 3 index exec pop 1 index exch 1 index length 1 sub exch put } ifelse cid_CIDFONT exch/GlyphData exch put 2 index null eq { pop pop pop } { pop/readstring load 1 string exch { 3 copy exec pop dup length 0 eq { pop pop pop pop pop true exit } if 4 index eq { pop pop pop pop false exit } if } loop pop } ifelse }bind def /StartData { mark { currentdict dup/FDArray get 0 get/FontMatrix get 0 get 0.001 eq { dup/CDevProc known not { /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known {get} { pop pop {pop pop pop pop pop 0 -1000 7 index 2 div 880} } ifelse def } if } { /CDevProc { pop pop pop pop pop 0 1 cid_temp/cid_CIDFONT get /FDArray get 0 get /FontMatrix get 0 get div 7 index 2 div 1 index 0.88 mul }def } ifelse /cid_temp 15 dict def cid_temp begin /cid_CIDFONT exch def 3 copy pop dup/cid_BYTE_COUNT exch def 0 gt { ct_cidfont_stream_init FDArray { /Private get dup/SubrMapOffset known { begin /Subrs SubrCount array def Subrs SubrMapOffset SubrCount SDBytes ct_Level2? { currentdict dup/SubrMapOffset undef dup/SubrCount undef /SDBytes undef } if end /cid_SD_BYTES exch def /cid_SUBR_COUNT exch def /cid_SUBR_MAP_OFFSET exch def /cid_SUBRS exch def cid_SUBR_COUNT 0 gt { GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi 0 1 cid_SUBR_COUNT 1 sub { exch 1 index 1 add cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add GlyphData exch cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi cid_SUBRS 4 2 roll GlyphData exch 4 index 1 index sub ct_GetInterval dup length string copy put } for pop } if } {pop} ifelse } forall } if cleartomark pop pop end CIDFontName currentdict/CIDFont defineresource pop end end } stopped {cleartomark/StartData ct_reraise} if }bind def currentdict end def /ct_saveCIDInit { /CIDInit/ProcSet ct_resourcestatus {true} {/CIDInitC/ProcSet ct_resourcestatus} ifelse { pop pop /CIDInit/ProcSet findresource ct_UseNativeCapability? {pop null} {/CIDInit ct_CIDInit/ProcSet defineresource pop} ifelse } {/CIDInit ct_CIDInit/ProcSet defineresource pop null} ifelse ct_Vars exch/ct_oldCIDInit exch put }bind def /ct_restoreCIDInit { ct_Vars/ct_oldCIDInit get dup null ne {/CIDInit exch/ProcSet defineresource pop} {pop} ifelse }bind def /ct_BuildCharSetUp { 1 index begin CIDFont begin Adobe_CoolType_Utility/ct_BuildCharDict get begin /ct_dfCharCode exch def /ct_dfDict exch def CIDFirstByte ct_dfCharCode add dup CIDCount ge {pop 0} if /cid exch def { GlyphDirectory cid 2 copy known {get} {pop pop nullstring} ifelse dup length FDBytes sub 0 gt { dup FDBytes 0 ne {0 FDBytes ct_cvnsi} {pop 0} ifelse /fdIndex exch def dup length FDBytes sub FDBytes exch getinterval /charstring exch def exit } { pop cid 0 eq {/charstring nullstring def exit} if /cid 0 def } ifelse } loop }def /ct_SetCacheDevice { 0 0 moveto dup stringwidth 3 -1 roll true charpath pathbbox 0 -1000 7 index 2 div 880 setcachedevice2 0 0 moveto }def /ct_CloneSetCacheProc { 1 eq { stringwidth pop -2 div -880 0 -1000 setcharwidth moveto } { usewidths? { currentfont/Widths get cid 2 copy known {get exch pop aload pop} {pop pop stringwidth} ifelse } {stringwidth} ifelse setcharwidth 0 0 moveto } ifelse }def /ct_Type3ShowCharString { ct_FDDict fdIndex 2 copy known {get} { currentglobal 3 1 roll 1 index gcheck setglobal ct_Type1FontTemplate dup maxlength dict copy begin FDArray fdIndex get dup/FontMatrix 2 copy known {get} {pop pop ct_defaultFontMtx} ifelse /FontMatrix exch dup length array copy def /Private get /Private exch def /Widths rootfont/Widths get def /CharStrings 1 dict dup/.notdef dup length string copy put def currentdict end /ct_Type1Font exch definefont dup 5 1 roll put setglobal } ifelse dup/CharStrings get 1 index/Encoding get ct_dfCharCode get charstring put rootfont/WMode 2 copy known {get} {pop pop 0} ifelse exch 1000 scalefont setfont ct_str1 0 ct_dfCharCode put ct_str1 exch ct_dfSetCacheProc ct_SyntheticBold { currentpoint ct_str1 show newpath moveto ct_str1 true charpath ct_StrokeWidth setlinewidth stroke } {ct_str1 show} ifelse }def /ct_Type4ShowCharString { ct_dfDict ct_dfCharCode charstring FDArray fdIndex get dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not {ct_1000Mtx matrix concatmatrix concat} {pop} ifelse /Private get Adobe_CoolType_Utility/ct_Level2? get not { ct_dfDict/Private 3 -1 roll {put} 1183615869 internaldict/superexec get exec } if 1183615869 internaldict Adobe_CoolType_Utility/ct_Level2? get {1 index} {3 index/Private get mark 6 1 roll} ifelse dup/RunInt known {/RunInt get} {pop/CCRun} ifelse get exec Adobe_CoolType_Utility/ct_Level2? get not {cleartomark} if }bind def /ct_BuildCharIncremental { { Adobe_CoolType_Utility/ct_MakeOCF get begin ct_BuildCharSetUp ct_ShowCharString } stopped {stop} if end end end end }bind def /BaseFontNameStr(BF00)def /ct_Type1FontTemplate 14 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /PaintType 0 def currentdict end def /BaseFontTemplate 11 dict begin /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /BuildChar/ct_BuildCharIncremental load def ct_Clone? { /FontType 3 def /ct_ShowCharString/ct_Type3ShowCharString load def /ct_dfSetCacheProc/ct_CloneSetCacheProc load def /ct_SyntheticBold false def /ct_StrokeWidth 1 def } { /FontType 4 def /Private 1 dict dup/lenIV 4 put def /CharStrings 1 dict dup/.notdefput def /PaintType 0 def /ct_ShowCharString/ct_Type4ShowCharString load def } ifelse /ct_str1 1 string def currentdict end def /BaseFontDictSize BaseFontTemplate length 5 add def /ct_matrixeq { true 0 1 5 { dup 4 index exch get exch 3 index exch get eq and dup not {exit} if } for exch pop exch pop }bind def /ct_makeocf { 15 dict begin exch/WMode exch def exch/FontName exch def /FontType 0 def /FMapType 2 def dup/FontMatrix known {dup/FontMatrix get/FontMatrix exch def} {/FontMatrix matrix def} ifelse /bfCount 1 index/CIDCount get 256 idiv 1 add dup 256 gt{pop 256}if def /Encoding 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for bfCount 1 255{2 copy bfCount put pop}for def /FDepVector bfCount dup 256 lt{1 add}if array def BaseFontTemplate BaseFontDictSize dict copy begin /CIDFont exch def CIDFont/FontBBox known {CIDFont/FontBBox get/FontBBox exch def} if CIDFont/CDevProc known {CIDFont/CDevProc get/CDevProc exch def} if currentdict end BaseFontNameStr 3(0)putinterval 0 1 bfCount dup 256 eq{1 sub}if { FDepVector exch 2 index BaseFontDictSize dict copy begin dup/CIDFirstByte exch 256 mul def FontType 3 eq {/ct_FDDict 2 dict def} if currentdict end 1 index 16 BaseFontNameStr 2 2 getinterval cvrs pop BaseFontNameStr exch definefont put } for ct_Clone? {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def} if FontName currentdict end definefont ct_Clone? { gsave dup 1000 scalefont setfont ct_BuildCharDict begin /usewidths? false def currentfont/Widths get begin exch/CIDFont get/GlyphDirectory get { pop dup charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore def } forall end /usewidths? true def end grestore } {exch pop} ifelse }bind def currentglobal true setglobal /ct_ComposeFont { ct_UseNativeCapability? { 2 index/CMap ct_resourcestatus {pop pop exch pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 3 index def /CMapVersion 1.000 def /CMapType 1 def exch/WMode exch def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search { dup length string copy exch pop exch pop } {pop(Identity)} ifelse } {pop (Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { 3 2 roll pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def setglobal /ct_MakeIdentity { ct_UseNativeCapability? { 1 index/CMap ct_resourcestatus {pop pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 2 index def /CMapVersion 1.000 def /CMapType 1 def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search {dup length string copy exch pop exch pop} {pop(Identity)} ifelse } {pop(Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { exch pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def currentdict readonly pop end end %%EndResource setglobal %%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0 %%Copyright: Copyright 1987-2004 Adobe Systems Incorporated. %%Version: 1.0 0 userdict/ct_T42Dict 15 dict put ct_T42Dict begin /Is2015? { version cvi 2015 ge }bind def /AllocGlyphStorage { Is2015? { pop } { {string}forall }ifelse }bind def /Type42DictBegin { 25 dict begin /FontName exch def /CharStrings 256 dict begin /.notdef 0 def currentdict end def /Encoding exch def /PaintType 0 def /FontType 42 def /FontMatrix[1 0 0 1 0 0]def 4 array astore cvx/FontBBox exch def /sfnts }bind def /Type42DictEnd { currentdict dup/FontName get exch definefont end ct_T42Dict exch dup/FontName get exch put }bind def /RD{string currentfile exch readstring pop}executeonly def /PrepFor2015 { Is2015? { /GlyphDirectory 16 dict def sfnts 0 get dup 2 index (glyx) putinterval 2 index (locx) putinterval pop pop } { pop pop }ifelse }bind def /AddT42Char { Is2015? { /GlyphDirectory get begin def end pop pop } { /sfnts get 4 index get 3 index 2 index putinterval pop pop pop pop }ifelse }bind def /T0AddT42Mtx2 { /CIDFont findresource/Metrics2 get begin def end }bind def end %%EndResource currentglobal true setglobal %%BeginFile: MMFauxFont.prc %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. %%All Rights Reserved. userdict /ct_EuroDict 10 dict put ct_EuroDict begin /ct_CopyFont { { 1 index /FID ne {def} {pop pop} ifelse} forall } def /ct_GetGlyphOutline { gsave initmatrix newpath exch findfont dup length 1 add dict begin ct_CopyFont /Encoding Encoding dup length array copy dup 4 -1 roll 0 exch put def currentdict end /ct_EuroFont exch definefont 1000 scalefont setfont 0 0 moveto [ <00> stringwidth <00> false charpath pathbbox [ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall grestore counttomark 8 add } def /ct_MakeGlyphProc { ] cvx /ct_PSBuildGlyph cvx ] cvx } def /ct_PSBuildGlyph { gsave 8 -1 roll pop 7 1 roll 6 -2 roll ct_FontMatrix transform 6 2 roll 4 -2 roll ct_FontMatrix transform 4 2 roll ct_FontMatrix transform currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse dup 9 1 roll { currentdict /StrokeWidth 2 copy known { get 2 div 0 ct_FontMatrix dtransform pop 5 1 roll 4 -1 roll 4 index sub 4 1 roll 3 -1 roll 4 index sub 3 1 roll exch 4 index add exch 4 index add 5 -1 roll pop } { pop pop } ifelse } if setcachedevice ct_FontMatrix concat ct_PSPathOps begin exec end { currentdict /StrokeWidth 2 copy known { get } { pop pop 0 } ifelse setlinewidth stroke } { fill } ifelse grestore } def /ct_PSPathOps 4 dict dup begin /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def end def /ct_matrix1000 [1000 0 0 1000 0 0] def /ct_AddGlyphProc { 2 index findfont dup length 4 add dict begin ct_CopyFont /CharStrings CharStrings dup length 1 add dict copy begin 3 1 roll def currentdict end def /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def /ct_PSBuildGlyph /ct_PSBuildGlyph load def /ct_PSPathOps /ct_PSPathOps load def currentdict end definefont pop } def systemdict /languagelevel known { /ct_AddGlyphToPrinterFont { 2 copy ct_GetGlyphOutline 3 add -1 roll restore ct_MakeGlyphProc ct_AddGlyphProc } def } { /ct_AddGlyphToPrinterFont { pop pop restore Adobe_CTFauxDict /$$$FONTNAME get /Euro Adobe_CTFauxDict /$$$SUBSTITUTEBASE get ct_EuroDict exch get ct_AddGlyphProc } def } ifelse /AdobeSansMM { 556 0 24 -19 541 703 { 541 628 m 510 669 442 703 354 703 c 201 703 117 607 101 444 c 50 444 l 25 372 l 97 372 l 97 301 l 49 301 l 24 229 l 103 229 l 124 67 209 -19 350 -19 c 435 -19 501 25 509 32 c 509 131 l 492 105 417 60 343 60 c 267 60 204 127 197 229 c 406 229 l 430 301 l 191 301 l 191 372 l 455 372 l 479 444 l 194 444 l 201 531 245 624 348 624 c 433 624 484 583 509 534 c cp 556 0 m } ct_PSBuildGlyph } def /AdobeSerifMM { 500 0 10 -12 484 692 { 347 298 m 171 298 l 170 310 170 322 170 335 c 170 362 l 362 362 l 374 403 l 172 403 l 184 580 244 642 308 642 c 380 642 434 574 457 457 c 481 462 l 474 691 l 449 691 l 433 670 429 657 410 657 c 394 657 360 692 299 692 c 204 692 94 604 73 403 c 22 403 l 10 362 l 70 362 l 69 352 69 341 69 330 c 69 319 69 308 70 298 c 22 298 l 10 257 l 73 257 l 97 57 216 -12 295 -12 c 364 -12 427 25 484 123 c 458 142 l 425 101 384 37 316 37 c 256 37 189 84 173 257 c 335 257 l cp 500 0 m } ct_PSBuildGlyph } def end %%EndFile setglobal Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end %%BeginResource: procset Adobe_AGM_Image 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Image 71 dict dup begin put /Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def /nd{ null def }bind def /AGMIMG_&image nd /AGMIMG_&colorimage nd /AGMIMG_&imagemask nd /AGMIMG_mbuf()def /AGMIMG_ybuf()def /AGMIMG_kbuf()def /AGMIMG_c 0 def /AGMIMG_m 0 def /AGMIMG_y 0 def /AGMIMG_k 0 def /AGMIMG_tmp nd /AGMIMG_imagestring0 nd /AGMIMG_imagestring1 nd /AGMIMG_imagestring2 nd /AGMIMG_imagestring3 nd /AGMIMG_imagestring4 nd /AGMIMG_imagestring5 nd /AGMIMG_cnt nd /AGMIMG_fsave nd /AGMIMG_colorAry nd /AGMIMG_override nd /AGMIMG_name nd /AGMIMG_maskSource nd /AGMIMG_flushfilters nd /invert_image_samples nd /knockout_image_samples nd /img nd /sepimg nd /devnimg nd /idximg nd /ds { Adobe_AGM_Core begin Adobe_AGM_Image begin /AGMIMG_&image systemdict/image get def /AGMIMG_&imagemask systemdict/imagemask get def /colorimage where{ pop /AGMIMG_&colorimage/colorimage ldf }if end end }def /ps { Adobe_AGM_Image begin /AGMIMG_ccimage_exists{/customcolorimage where { pop /Adobe_AGM_OnHost_Seps where { pop false }{ /Adobe_AGM_InRip_Seps where { pop false }{ true }ifelse }ifelse }{ false }ifelse }bdf level2{ /invert_image_samples { Adobe_AGM_Image/AGMIMG_tmp Decode length ddf /Decode[Decode 1 get Decode 0 get]def }def /knockout_image_samples { Operator/imagemask ne{ /Decode[1 1]def }if }def }{ /invert_image_samples { {1 exch sub}currenttransfer addprocs settransfer }def /knockout_image_samples { {pop 1}currenttransfer addprocs settransfer }def }ifelse /img/imageormask ldf /sepimg/sep_imageormask ldf /devnimg/devn_imageormask ldf /idximg/indexed_imageormask ldf /_ctype 7 def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall }def /pt { end }def /dt { }def /AGMIMG_flushfilters { dup type/arraytype ne {1 array astore}if dup 0 get currentfile ne {dup 0 get flushfile}if { dup type/filetype eq { dup status 1 index currentfile ne and {closefile} {pop} ifelse }{pop}ifelse }forall }def /AGMIMG_init_common { currentdict/T known{/ImageType/T ldf currentdict/T undef}if currentdict/W known{/Width/W ldf currentdict/W undef}if currentdict/H known{/Height/H ldf currentdict/H undef}if currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if currentdict/D known{/Decode/D ldf currentdict/D undef}if currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if currentdict/O known{ /Operator/O load 1 eq{ /imagemask }{ /O load 2 eq{ /image }{ /colorimage }ifelse }ifelse def currentdict/O undef }if currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if currentdict/I known{/Interpolate/I ldf currentdict/I undef}if currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if /DataSource load xcheck not{ DataSource type/arraytype eq{ DataSource 0 get type/filetype eq{ /_Filters DataSource def currentdict/MultipleDataSources known not{ /DataSource DataSource dup length 1 sub get def }if }if }if currentdict/MultipleDataSources known not{ /MultipleDataSources DataSource type/arraytype eq{ DataSource length 1 gt } {false}ifelse def }if }if /NComponents Decode length 2 div def currentdict/SkipImageProc known not{/SkipImageProc{false}def}if }bdf /imageormask_sys { begin AGMIMG_init_common save mark level2{ currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load AGMIMG_&imagemask }{ BitsPerComponent ImageMatrix/DataSource load AGMIMG_&image }ifelse }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if cleartomark restore end }def /overprint_plate { currentoverprint{ 0 get dup type/nametype eq{ dup/DeviceGray eq{ pop AGMCORE_black_plate not }{ /DeviceCMYK eq{ AGMCORE_is_cmyk_sep not }if }ifelse }{ false exch { AGMOHS_sepink eq or }forall not }ifelse }{ pop false }ifelse }def /process_mask { level3{ dup begin /ImageType 1 def end 4 dict begin /DataDict exch def /ImageType 3 def /InterleaveType 3 def /MaskDict 9 dict begin /ImageType 1 def /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def /ImageMatrix[Width 0 0 Height neg 0 Height]def /NComponents 1 def /BitsPerComponent 1 def /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def currentdict end def currentdict end }if }def /use_mask { dup/Mask known {dup/Mask get}{false}ifelse }def /imageormask { begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata } { save mark level2 AGMCORE_host_sep not and{ currentdict Operator/imagemask eq DeviceN_PS2 not and{ imagemask }{ AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{ [/Separation/Black/DeviceGray{}]setcolorspace /Decode[Decode 1 get Decode 0 get]def }if use_mask{ process_mask image }{ DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and { Names convert_to_process not{ 2 dict begin /imageDict xdf /names_index 0 def gsave imageDict write_image_file{ Names{ dup(None)ne{ [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace Operator imageDict read_image_file names_index 0 eq{true setoverprint}if /names_index names_index 1 add def }{ pop }ifelse }forall close_image_file }if grestore end }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load /Adobe_AGM_OnHost_Seps where{ pop imagemask }{ currentgray 1 ne{ currentdict imageormask_sys }{ currentoverprint not{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }ifelse }{ BitsPerComponent ImageMatrix MultipleDataSources{ 0 1 NComponents 1 sub{ DataSource exch get }for }{ /DataSource load }ifelse Operator/colorimage eq{ AGMCORE_host_sep{ MultipleDataSources level2 or NComponents 4 eq and{ AGMCORE_is_cmyk_sep{ MultipleDataSources{ /DataSource DataSource 0 get xcheck { [ DataSource 0 get/exec cvx DataSource 1 get/exec cvx DataSource 2 get/exec cvx DataSource 3 get/exec cvx /AGMCORE_get_ink_data cvx ]cvx }{ DataSource aload pop AGMCORE_get_ink_data }ifelse def }{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul /DataSource load filter_cmyk 0()/SubFileDecode filter def }ifelse /Decode[Decode 0 get Decode 1 get]def /MultipleDataSources false def /NComponents 1 def /Operator/image def invert_image_samples 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }{ MultipleDataSources NComponents AGMIMG_&colorimage }ifelse }{ true NComponents colorimage }ifelse }{ Operator/image eq{ AGMCORE_host_sep{ /DoImage true def currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse { AGMCORE_black_plate not Operator/imagemask ne and{ /DoImage false def currentdict ignoreimagedata }if }if 1 AGMCORE_&setgray DoImage {currentdict imageormask_sys}if }{ use_mask{ process_mask image }{ image }ifelse }ifelse }{ Operator/knockout eq{ pop pop pop pop pop currentcolorspace overprint_plate not{ knockout_unitsq }if }if }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /sep_imageormask { /sep_colorspace_dict AGMCORE_gget begin CSA map_csa begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_avoid_L2_sep_space{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def }if AGMIMG_ccimage_exists MappedCSA 0 get/DeviceCMYK eq and currentdict/Components known and Name()ne and Name(All)ne and Operator/image eq and AGMCORE_producing_seps not and level2 not and { Width Height BitsPerComponent ImageMatrix [ /DataSource load/exec cvx { 0 1 2 index length 1 sub{ 1 index exch 2 copy get 255 xor put }for }/exec cvx ]cvx bind MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Name findcmykcustomcolor customcolorimage }{ AGMCORE_producing_seps not{ level2{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{ [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if currentdict imageormask }{ currentdict Operator/imagemask eq{ imageormask }{ sep_imageormask_lev1 }ifelse }ifelse }{ AGMCORE_host_sep{ Operator/knockout eq{ currentdict/ImageMatrix get concat knockout_unitsq }{ currentgray 1 ne{ AGMCORE_is_cmyk_sep Name(All)ne and{ level2{ Name AGMCORE_IsSeparationAProcessColor { Operator/imagemask eq{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor }if }{ invert_image_samples }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ [/Separation Name[/DeviceGray] { sep_colorspace_proc AGMCORE_get_ink_data 1 exch sub }bind ]AGMCORE_&setcolorspace /sep_tint AGMCORE_gget AGMCORE_&setcolor }if }ifelse currentdict imageormask_sys }{ currentdict Operator/imagemask eq{ imageormask_sys }{ sep_image_lev1_sep }ifelse }ifelse }{ Operator/imagemask ne{ invert_image_samples }if currentdict imageormask_sys }ifelse }{ currentoverprint not Name(All)eq or Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ currentcolorspace 0 get/Separation ne{ [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if }if currentoverprint MappedCSA 0 get/DeviceCMYK eq and Name AGMCORE_IsSeparationAProcessColor not and //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse Name(All)ne and{ imageormask_l2_overprint }{ currentdict imageormask }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end }def /colorSpaceElemCnt { mark currentcolor counttomark dup 2 add 1 roll cleartomark }bdf /devn_sep_datasource { 1 dict begin /dataSource xdf [ 0 1 dataSource length 1 sub{ dup currentdict/dataSource get/exch cvx/get cvx/exec cvx /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx }for ]cvx bind end }bdf /devn_alt_datasource { 11 dict begin /convProc xdf /origcolorSpaceElemCnt xdf /origMultipleDataSources xdf /origBitsPerComponent xdf /origDecode xdf /origDataSource xdf /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def /DataSource origMultipleDataSources { [ BitsPerComponent 8 idiv origDecode length 2 idiv mul string 0 1 origDecode length 2 idiv 1 sub { dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch origDataSource exch get 0()/SubFileDecode filter BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx }for ]bind cvx }{origDataSource}ifelse 0()/SubFileDecode filter def [ origcolorSpaceElemCnt string 0 2 origDecode length 2 sub { dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx }for /convProc load/exec cvx origcolorSpaceElemCnt 1 sub -1 0 { /dup cvx 2/add cvx/index cvx 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx }for ]bind cvx 0()/SubFileDecode filter end }bdf /devn_imageormask { /devicen_colorspace_dict AGMCORE_gget begin CSA map_csa 2 dict begin dup /srcDataStrs[3 -1 roll begin AGMIMG_init_common currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi { dup 65535 gt{1 add 2 div cvi}{exit}ifelse }loop string }repeat end]def /dstDataStr srcDataStrs 0 get length string def begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_producing_seps not{ level3 not{ Operator/imagemask ne{ /DataSource[[ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def /MultipleDataSources true def /Decode colorSpaceElemCnt[exch{0 1}repeat]def }if }if currentdict imageormask }{ AGMCORE_host_sep{ Names convert_to_process{ CSA get_csa_by_name 0 get/DeviceCMYK eq{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource filter_cmyk 0()/SubFileDecode filter def /MultipleDataSources false def /Decode[1 0]def /DeviceGray setcolorspace currentdict imageormask_sys }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate{ /DataSource DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource /MultipleDataSources false def /Decode colorSpaceElemCnt[exch{0 1}repeat]def currentdict imageormask_sys }{ gsave knockout_unitsq grestore currentdict consumeimagedata }ifelse }ifelse } { /devicen_colorspace_dict AGMCORE_gget/names_index known{ Operator/imagemask ne{ MultipleDataSources{ /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def /MultipleDataSources false def }{ /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def }ifelse invert_image_samples }if currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ currentdict imageormask }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end end }def /imageormask_l2_overprint { currentdict currentcmykcolor add add add 0 eq{ currentdict consumeimagedata }{ level3{ currentcmykcolor /AGMIMG_k xdf /AGMIMG_y xdf /AGMIMG_m xdf /AGMIMG_c xdf Operator/imagemask eq{ [/DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ]/DeviceCMYK{}]setcolorspace AGMIMG_c 0 ne{AGMIMG_c}if AGMIMG_m 0 ne{AGMIMG_m}if AGMIMG_y 0 ne{AGMIMG_y}if AGMIMG_k 0 ne{AGMIMG_k}if setcolor }{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def [/Indexed [ /DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ] /DeviceCMYK{ AGMIMG_k 0 eq{0}if AGMIMG_y 0 eq{0 exch}if AGMIMG_m 0 eq{0 3 1 roll}if AGMIMG_c 0 eq{0 4 1 roll}if } ] 255 { 255 div mark exch dup dup dup AGMIMG_k 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_y 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_m 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_c 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop counttomark 1 roll }{ pop }ifelse counttomark 1 add -1 roll pop } ]setcolorspace }ifelse imageormask_sys }{ write_image_file{ currentcmykcolor 0 ne{ [/Separation/Black/DeviceGray{}]setcolorspace gsave /Black [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Yellow/DeviceGray{}]setcolorspace gsave /Yellow [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Magenta/DeviceGray{}]setcolorspace gsave /Magenta [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Cyan/DeviceGray{}]setcolorspace gsave /Cyan [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if close_image_file }{ imageormask }ifelse }ifelse }ifelse }def /indexed_imageormask { begin AGMIMG_init_common save mark currentdict AGMCORE_host_sep{ Operator/knockout eq{ /indexed_colorspace_dict AGMCORE_gget dup/CSA known{ /CSA get get_csa_by_name }{ /Names get }ifelse overprint_plate not{ knockout_unitsq }if }{ Indexed_DeviceN{ /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{ indexed_image_lev2_sep }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }{ AGMCORE_is_cmyk_sep{ Operator/imagemask eq{ imageormask_sys }{ level2{ indexed_image_lev2_sep }{ indexed_image_lev1_sep }ifelse }ifelse }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ level2{ Indexed_DeviceN{ /indexed_colorspace_dict AGMCORE_gget begin }{ /indexed_colorspace_dict AGMCORE_gget dup null ne { begin currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and AGMCORE_in_rip_sep and{ [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup] setcolorspace }if end } {pop}ifelse }ifelse imageormask Indexed_DeviceN{ end }if }{ Operator/imagemask eq{ imageormask }{ indexed_imageormask_lev1 }ifelse }ifelse }ifelse cleartomark restore currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /indexed_image_lev2_sep { /indexed_colorspace_dict AGMCORE_gget begin begin Indexed_DeviceN not{ currentcolorspace dup 1/DeviceGray put dup 3 currentcolorspace 2 get 1 add string 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub { dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put }for put setcolorspace }if currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse end end }def /OPIimage { dup type/dicttype ne{ 10 dict begin /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /ImageType 1 def /Decode[0 1 def] currentdict end }if dup begin /NComponents 1 cdndf /MultipleDataSources false cdndf /SkipImageProc{false}cdndf /Decode[ 0 currentcolorspace 0 get/Indexed eq{ 2 BitsPerComponent exp 1 sub }{ 1 }ifelse ]cdndf /Operator/image cdndf end /sep_colorspace_dict AGMCORE_gget null eq{ imageormask }{ gsave dup begin invert_image_samples end sep_imageormask grestore }ifelse }def /cachemask_level2 { 3 dict begin /LZWEncode filter/WriteFilter xdf /readBuffer 256 string def /ReadFilter currentfile 0(%EndMask)/SubFileDecode filter /ASCII85Decode filter /RunLengthDecode filter def { ReadFilter readBuffer readstring exch WriteFilter exch writestring not{exit}if }loop WriteFilter closefile end }def /spot_alias { /mapto_sep_imageormask { dup type/dicttype ne{ 12 dict begin /ImageType 1 def /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /MultipleDataSources false def }{ begin }ifelse /Decode[/customcolor_tint AGMCORE_gget 0]def /Operator/image def /SkipImageProc{false}def currentdict end sep_imageormask }bdf /customcolorimage { Adobe_AGM_Image/AGMIMG_colorAry xddf /customcolor_tint AGMCORE_gget << /Name AGMIMG_colorAry 4 get /CSA[/DeviceCMYK] /TintMethod/Subtractive /TintProc null /MappedCSA null /NComponents 4 /Components[AGMIMG_colorAry aload pop pop] >> setsepcolorspace mapto_sep_imageormask }ndf Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put /customcolorimage { Adobe_AGM_Image/AGMIMG_override false put current_spot_alias{dup 4 get map_alias}{false}ifelse { false set_spot_alias /customcolor_tint AGMCORE_gget exch setsepcolorspace pop mapto_sep_imageormask true set_spot_alias }{ //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec }ifelse }bdf }def /snap_to_device { 6 dict begin matrix currentmatrix dup 0 get 0 eq 1 index 3 get 0 eq and 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop { 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def 0 0 transform AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch itransform/AGMIMG_llY exch def/AGMIMG_llX exch def 1 1 transform AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch itransform/AGMIMG_urY exch def/AGMIMG_urX exch def [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat }{ }ifelse end }def level2 not{ /colorbuf { 0 1 2 index length 1 sub{ dup 2 index exch get 255 exch sub 2 index 3 1 roll put }for }def /tint_image_to_color { begin Width Height BitsPerComponent ImageMatrix /DataSource load end Adobe_AGM_Image begin /AGMIMG_mbuf 0 string def /AGMIMG_ybuf 0 string def /AGMIMG_kbuf 0 string def { colorbuf dup length AGMIMG_mbuf length ne { dup length dup dup /AGMIMG_mbuf exch string def /AGMIMG_ybuf exch string def /AGMIMG_kbuf exch string def }if dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop } addprocs {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage end }def /sep_imageormask_lev1 { begin MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ { 255 mul round cvi GrayLookup exch get }currenttransfer addprocs settransfer currentdict imageormask }{ /sep_colorspace_dict AGMCORE_gget/Components known{ MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{ {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer currentdict imageormask }{ currentcolortransfer {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }{ MappedCSA 0 get/DeviceGray eq{ {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer currentdict imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }ifelse }ifelse }ifelse end }def /sep_image_lev1_sep { begin /sep_colorspace_dict AGMCORE_gget/Components known{ Components aload pop Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf {AGMIMG_c mul 1 exch sub} {AGMIMG_m mul 1 exch sub} {AGMIMG_y mul 1 exch sub} {AGMIMG_k mul 1 exch sub} }{ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub} {255 mul round cvi ColorLookup exch get 1 get 1 exch sub} {255 mul round cvi ColorLookup exch get 2 get 1 exch sub} {255 mul round cvi ColorLookup exch get 3 get 1 exch sub} }ifelse AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end }def /indexed_imageormask_lev1 { /indexed_colorspace_dict AGMCORE_gget begin begin currentdict MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceGray eq{ {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }ifelse }ifelse }ifelse end end }def /indexed_image_lev1_sep { /indexed_colorspace_dict AGMCORE_gget begin begin {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end end }def }if end systemdict/setpacking known {setpacking}if %%EndResource currentdict Adobe_AGM_Utils eq {end} if %%EndProlog %%BeginSetup Adobe_AGM_Utils begin 2 2010 Adobe_AGM_Core/ds gx Adobe_CoolType_Core/ds get exec Adobe_AGM_Image/ds gx currentdict Adobe_AGM_Utils eq {end} if %%EndSetup %%Page: 2 1 %%EndPageComments %%BeginPageSetup %ADOBeginClientInjection: PageSetup Start "AI11EPS" %AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0 %ADOEndClientInjection: PageSetup Start "AI11EPS" Adobe_AGM_Utils begin Adobe_AGM_Core/ps gx Adobe_AGM_Utils/capture_cpd gx Adobe_CoolType_Core/ps get exec Adobe_AGM_Image/ps gx %ADOBeginClientInjection: PageSetup End "AI11EPS" /currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse { userdict /AI11_PDFMark5 /cleartomark load put userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put} { userdict /AI11_PDFMark5 /pdfmark load put userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse [/NamespacePush AI11_PDFMark5 [/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5 [{ai_metadata_stream_123} currentfile 0 (% &&end XMP packet marker&&) /SubFileDecode filter AI11_ReadMetadata_PDFMark5 application/postscript Web Adobe Illustrator CS4 2011-06-09T17:17:04-03:00 2011-06-09T17:17:04-03:00 2011-06-09T17:17:04-03:00 256 28 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAHAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9KPpGjRQpJJb15FE2Zus jBB38WxVjWm+Vfynnkku7XRrRJbW6AWRoGjk+smOOcGNWActxkUig+WKqsix3F7benai0sHeUJMD 63riOZY16svp8hU9zvXopxVmuKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KsdmvPMrXSwXGmW0ekiaD076O8aSY0nThytzAgWvf94ae+KojQNCj09dU gcrPFdXYmCmONBx+rwx8SqKq/wC6/DFULPoF5HfwS8/rdlE8skcJpF6BklWTbgUDhRWlQelKfETi qczwX8krGC7EKCg4emr70rWpIxVLNYutX0y1a5Ms12ihiy28EJI4iu/qSRjf5/PFUTaRa1PbRzSX L2rutWt5oYjIh/lb03kSv+qxxVj+l3fny88wzWss4g0uEM7SyWMQO4XhAZFvZD6tHDk+jxK+BxVk F1FrEFu8q3b3BWlIooIy5qabcnUbdeuKofSbjV9SgecTS20QYLE08MH71Sob1I/Tlk+H4qb03HhQ lVMEi1CMSCW7EpaNvTPpqvFh0Ox3xVb9T1b/AKuA/wCRC/1xVBwy6vJqtzp/ryp9Xiim+tNDD6Ti UuAqUkMlR6ZrVAMVa1mfWNM06a+Est6IByaC2hgEhXuR60sKUA3NWxVTisfOrXXqPq1qtkzKywGy InVKGqM4nZC1abhaexxV2n3mt3l9d2p+sWy2jFGuZobb03bkaBPTmkf4k4yDko+FhWjVAVdrN3re mrbupuL5Z5khY20NsPSMhCq0nrTQ/DU0+Gp9sVTH6nq3/VwH/Ihf64quaLUGijjS7CSjl6kvpqeV DQfDXbFULfrrVrZy3Ec8l48a8ltbeCL1XP8AKnqSRpX5sMVWaXJq9/ZJdi5ktklqY0mhh5FK/C/7 uSRaMNxvWnUDFVNLnWX1qXS/UmVYoFnN8Yrf0DzYqEAExm5fCesdNuuKqupyarYWj3TXTzxx1Mgi hiqqgElzzkQUFPHFV9lHrVzaQ3Elw9o8qhmtp4YvUjJ/Zf05JEqPZjiqnbS6tPeXFsLiRPqx4vM8 MPAkgEBeMjNuDXdcVS7zJL5w0/6tLY3qSwSuIJE+pLKyu9SjFjcQBVJAToTyYYqnMFrrbQxmW/Cy FQXX0EFGpuKB3H/DH54qhdNm1m+NzWaW2W3meBXmhtyJfTJUvH6Ush41H7fE+2Kt6hNq1m9un1iW 4Nw5jT0YIdmA5b85E/ZBO3hiqKlttYSN3W+MhVSRGsKcmIFaDkwFT7nFUFolzrOqWC3bPNYFmZPq 91DbmQcG4kn0JZk6j+bFV08+sRanb2AmlkM6s5uFhg9JFQGpblKr/a4r8Kndh2qQqjGtdWVS36QG wr/cr/XFWMa15qadLrS20x3hR40NwtxaKG4zcSeE5Oy8OThl+z0qcVS/RvOT6Ys8ceiS+pdXSGZR eWAiU+jHCZYuLqohPpcqfbqSeO+KppZ/mFLeXUVs2kSQJPK0Prtc2zBfj4BuCO0hDdV+Hp4YqyO8 0++uL63nt9Tns4bdyZ7SJLdo7gELRZDLHJIoFP8AdbLirCPOOi6+8d9Nc31pbrPHCJ71La7HBV+F gjQl3TqaESjc1p4qoK20aa7sJ7m81DTIrqVYg3qCW2XmAFP7tmVU5AgEFJN+57KobRreK+1ZvX8w 6Le2aXaSTx283FuNDIohcFqBkuEWi8akHtQBVP8AzNBKsEf1PUrKS1tWla2hZZJ5VSRfiWoaYs32 lQ0XjtvtQqqHlHynetdJ+lZo72wEVwbWSKO8t5QLiaOUCSSUBpOPA8TzFNgqADFWbWVnd2sLpc30 uoOfUYSzrCjBSahQIUiWijbpXFUDeaXr8djeJFqv1v11eq3cCNwUpQJF9WEB+fIOa9PDFXnU+i6t bagyXF9aqJo4ImszDdx8IkoyspMfpo/7mSrogZqruKVKqY+YdB1Sf1Vttd09hLBELpmkuHuWSJ5S 627GeWaIkSKAyyUr+z3xVfbaFqc9neC41vSmunPpyLaySxQO0fw/HCsgjU8KAh0k33xVD23lvVm1 OWZtY0wqbn1LoCWUcGWMGE29GX0wqv8AGsfDmd6riqjrGjarNqhtrbVrUwm4W5Mvp300ryCGKGMN NG8jlPVb+7eR1bp8OKsu8v8AlrU10t2l1CbT9TlkcyTWfIQjnTkY7W6RoVq24rFUeJ3qqnV/p1/d 2kNvbarcafOjEveQJbPK4U0IKzxTRDkdzRPlirHvO+ka/erDxubVYka4rL9XuAY4HUKf3kZlKycD tIOFDuOlMVY5oukXE3qpPqViqQwhbaeRbuJjEyLLEzNI8Ls6+p/eMWqP2RiqGuPLmqmZphrWkIk1 m1o0RkkFu8Uob0/SofRSZFT4pRGWP+TXFU017y3LKkzRapYCB4H+sPHNNFLy5K/7pjLPIhPAfYcV 323xVdD5av2tbhbvVNKa4kVBWJ5EV2RVWoAdVTmoIbksle5OKoWLy7rMmpTSPrOlNA8tsLqKrji8 Eiz+pBRwEWj0KIFLdC+wxVdrnlm/kDLaatpsETvDR1klDBgSEG0hl4CRwWUy8WXag7Kom38u6iLJ GuNU0lr4XHryBC6wseROyl2jVK/Fw9I7/tV3xVA6T5Z1v1Od3rOkzRSXEk1wQ06kSrIyn0lMpKQs lU9NGUd+nw4q3qPlfVWu4Vg1jS4YUnMtpxeUEzohKGfjJWSHjGFaKRmr/NviqNg8tXUMFm66hpP1 qEOrgu7KA69fjZ0am4XjGtAdsVUNH8tXbLbm71XTJbOsk0bF5jMEuPiMUh9WN3oxqp5gLSgTbFUL FpOr3UgS1urV2jEySQi3uWSRCKv9mEpyBuFPJgx7f5QVZ5Y+XntoLWa1vbi0VYV+uWq8ZI53AU1f 6wjyKdivwFTQ77gUVQp/wT9an5el9Z9Q+vWlfU+Kta/tfaxVLtc/5VT6B/Tf1D0OA5fWfS48OSUr y7cuH00xVW0n/lW/1ofo36v9b5pXhT1fV4rx51+L1OPH7W9KdsVZga8m48uu9ONK098VablT4uVP fhiqy44fV5fX5ehwb1a8KcKfFX6MVSJf8Kevb+ry5fH9W+tc/TrT4+Hr/Byp9OKq0f8Ag/15vT+o +v8AD69Pq3Lp8PL6OmKpvb+n9Xi+rf7z8F9H0/T4cKfDx47cadKYqvP7XPl9k9ePTv0xVv8Aef5f /CYq18XL9rlT/IrTFWP+bP8ACHq6f/iPj6vKT9H+p15cP3nDh349cVW6P/gj6kP0f9V+r8jTn6XK vv6vx9Ole1KbYqrS/wCFPrcHL0fUo3Dj6Xp9N+fH4Ply+jFUXB/h/wBZPQ+retUenw+r8uXalN64 qmX7z/L/AOExVodFpy5fF/LXrv1264q2edN+dO/2MVcOdNudO32MVYOv/KrP04Keh+lfUWvKteVZ OHKvw8K+pxr8PWmKsj/51n/l0/6dsVd/zrP/AC6f9O2Ku/51n/l0/wCnbFXf86z/AMun/TtiqHP+ FPrw/ufV9Pb+69Klf+RfL8cVRH/Os/8ALp/07Yq7/nWf+XT/AKdsVd/zrP8Ay6f9O2Ku/wCdZ/5d P+nbFURZfoj1T9R9H1ePxeh6PLjUdeO9K0xVGPy4nlzpQ1+x0xV//9k= proof:pdf uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:FF7F1174072068118DBB9A084B3843B2 xmp.iid:FF7F1174072068118DBB9A084B3843B2 converted from application/pdf to <unknown> saved xmp.iid:D47F11740720681191099C3B601C4548 2008-04-17T14:19:21+05:30 Adobe Illustrator CS4 / converted from application/pdf to <unknown> converted from application/pdf to <unknown> saved xmp.iid:FD7F11740720681197C1BF14D1759E83 2008-05-16T17:01:20-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F117407206811BC18AC99CBA78E83 2008-05-19T18:10:15-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:FB7F117407206811B628E3BF27C8C41B 2008-05-22T14:26:44-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:08C3BD25102DDD1181B594070CEB88D9 2008-05-28T16:51:46-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F77F11740720681192B0DFFC927805D7 2008-05-30T21:26:38-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F87F11740720681192B0DFFC927805D7 2008-05-30T21:27-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F97F1174072068119098B097FDA39BEF 2008-06-02T13:26:10-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F1174072068118DBB9A084B3843B2 2011-06-09T11:06:05-03:00 Adobe Illustrator CS4 / saved xmp.iid:F87F1174072068118DBB9A084B3843B2 2011-06-09T15:15:58-03:00 Adobe Illustrator CS4 / saved xmp.iid:FF7F1174072068118DBB9A084B3843B2 2011-06-09T17:17:04-03:00 Adobe Illustrator CS4 / xmp.iid:F87F1174072068118DBB9A084B3843B2 xmp.did:F87F1174072068118DBB9A084B3843B2 uuid:65E6390686CF11DBA6E2D887CEACB407 proof:pdf Web 1 False False 955.023438 326.000000 Pixels ArialMT Arial Regular Open Type Version 5.01.2x False Arial.ttf Cyan Magenta Yellow Black Default Swatch Group 0 White RGB PROCESS 255 255 255 Black RGB PROCESS 0 0 0 RGB Red RGB PROCESS 255 0 0 RGB Yellow RGB PROCESS 255 255 0 RGB Green RGB PROCESS 0 255 0 RGB Cyan RGB PROCESS 0 255 255 RGB Blue RGB PROCESS 0 0 255 RGB Magenta RGB PROCESS 255 0 255 R=193 G=39 B=45 RGB PROCESS 193 39 45 R=237 G=28 B=36 RGB PROCESS 237 28 36 R=241 G=90 B=36 RGB PROCESS 241 90 36 R=247 G=147 B=30 RGB PROCESS 247 147 30 R=251 G=176 B=59 RGB PROCESS 251 176 59 R=252 G=238 B=33 RGB PROCESS 252 238 33 R=217 G=224 B=33 RGB PROCESS 217 224 33 R=140 G=198 B=63 RGB PROCESS 140 198 63 R=57 G=181 B=74 RGB PROCESS 57 181 74 R=0 G=146 B=69 RGB PROCESS 0 146 69 R=0 G=104 B=55 RGB PROCESS 0 104 55 R=34 G=181 B=115 RGB PROCESS 34 181 115 R=0 G=169 B=157 RGB PROCESS 0 169 157 R=41 G=171 B=226 RGB PROCESS 41 171 226 R=0 G=113 B=188 RGB PROCESS 0 113 188 R=46 G=49 B=146 RGB PROCESS 46 49 146 R=27 G=20 B=100 RGB PROCESS 27 20 100 R=102 G=45 B=145 RGB PROCESS 102 45 145 R=147 G=39 B=143 RGB PROCESS 147 39 143 R=158 G=0 B=93 RGB PROCESS 158 0 93 R=212 G=20 B=90 RGB PROCESS 212 20 90 R=237 G=30 B=121 RGB PROCESS 237 30 121 R=199 G=178 B=153 RGB PROCESS 199 178 153 R=153 G=134 B=117 RGB PROCESS 153 134 117 R=115 G=99 B=87 RGB PROCESS 115 99 87 R=83 G=71 B=65 RGB PROCESS 83 71 65 R=198 G=156 B=109 RGB PROCESS 198 156 109 R=166 G=124 B=82 RGB PROCESS 166 124 82 R=140 G=98 B=57 RGB PROCESS 140 98 57 R=117 G=76 B=36 RGB PROCESS 117 76 36 R=96 G=56 B=19 RGB PROCESS 96 56 19 R=66 G=33 B=11 RGB PROCESS 66 33 11 Grays 1 R=0 G=0 B=0 RGB PROCESS 0 0 0 R=26 G=26 B=26 RGB PROCESS 26 26 26 R=51 G=51 B=51 RGB PROCESS 51 51 51 R=77 G=77 B=77 RGB PROCESS 77 77 77 R=102 G=102 B=102 RGB PROCESS 102 102 102 R=128 G=128 B=128 RGB PROCESS 128 128 128 R=153 G=153 B=153 RGB PROCESS 153 153 153 R=179 G=179 B=179 RGB PROCESS 179 179 179 R=204 G=204 B=204 RGB PROCESS 204 204 204 R=230 G=230 B=230 RGB PROCESS 230 230 230 R=242 G=242 B=242 RGB PROCESS 242 242 242 Web Color Group 1 R=63 G=169 B=245 RGB PROCESS 63 169 245 R=122 G=201 B=67 RGB PROCESS 122 201 67 R=255 G=147 B=30 RGB PROCESS 255 147 30 R=255 G=29 B=37 RGB PROCESS 255 29 37 R=255 G=123 B=172 RGB PROCESS 255 123 172 R=189 G=204 B=212 RGB PROCESS 189 204 212 Adobe PDF library 9.00 % &&end XMP packet marker&& [{ai_metadata_stream_123} <> /PUT AI11_PDFMark5 [/Document 1 dict begin /Metadata {ai_metadata_stream_123} def currentdict end /BDC AI11_PDFMark5 %ADOEndClientInjection: PageSetup End "AI11EPS" %%EndPageSetup 1 -1 scale 0 -326 translate pgsv [1 0 0 1 0 0 ]ct gsave np gsave 0 0 mo 0 326 li 955.023 326 li 955.023 0 li cp clp [1 0 0 1 0 0 ]ct 1 lw 0 lc 0 lj 4 ml [] 0 dsh true sadj 943.336 313.211 mo 12.251 313.211 li 12.251 42.5024 li 943.336 42.5024 li 943.336 313.211 li cp false sop /0 [/DeviceCMYK] /CSA add_res .193668 .150057 .155337 3.0518e-05 cmyk @ 943.334 42.8394 mo 12.251 42.8394 li 12.251 13.6938 li 943.334 13.6938 li 943.334 42.8394 li cp f 943.334 42.8394 mo 12.251 42.8394 li 12.251 13.6938 li 943.334 13.6938 li 943.334 42.8394 li cp @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT Initial %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. 12 dict dup begin /FontType 1 def /FontName /ArialMT def /FontInfo 5 dict dup begin /ItalicAngle 0 def /FSType 8 def end def /PaintType 0 def /FontMatrix [0.001 0 0 0.001 0 0] def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 32 /space put dup 65 /A put dup 69 /E put dup 73 /I put dup 76 /L put dup 78 /N put dup 83 /S put dup 84 /T put def /FontBBox {-665 -325 2000 1006} def end systemdict begin dup /Private 7 dict dup begin /|- {def} def /| {put} def /BlueValues [0 0] def /password 5839 def /MinFeature {16 16} def /OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup /strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def /Subrs 5 array dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> | dup 1 <1C60D8A8C9C3D06D9E> | dup 2 <1C60D8A8C9C202D79A> | dup 3 <1C60D8A849> | dup 4 <1C60D8A8CC3674F41144B13B77> | def put dup /CharStrings 9 dict dup begin /.notdef <1C60D8A8C9B6E3FA5101D97F0BCF44F7161DEB1E2A84766DD477E7 C8A936AA182F5809A9> |- /space <1C60D8A8C9B854D00D> |- /A <1C60D8A8C9B64EDFED26B9E21A4F64848088903AC9891CF791BDBC4AB29A CC8B3E8D13924A7DDE35F09AC5F4A8229C87124C732743268600EF8D4582208B D16D82> |- /E <1C60D8A8C9B64EDFFB83C6241DB110BEE5AB2FAD9D94B39ED5E81E7411B6 6E9361DDE78FC667AB91EF9824> |- /I <1C60D8A8C9B854D0F463D3892D665712D6B7D6A81E> |- /L <1C60D8A8C9B7EF3224EC6E192BD0FEC2445DA87B99CF0E03A72A> |- /N <1C60D8A8C9B6079F629170873C67115641D0B6890161EC48F71E8D2106F3 AC927984C1E464F121F968> |- /S <1C60D8A8C9B64EDFE3D078722A65C31955939D63AA5C8A4945719B5E558E 3B73A676CC12D1E18D93A8DC67C074D6E352D426981DE76F8EC4CFE5DAE051BE 47753A7C234C4B8D7D9F50292A61882B5500CC701F878FE626CDC6D4C322BB39 1537921D673F5AEE3EC19E36E7EFEC0F06A0EA4EAAB6BBA94DDCD11A6A564B13 B510F8C915848233B82F046D854DCD4F1639F149305DC73D3C68DF8AEB47A96A 30E55CF8BAD07FA2825BCE0D675F1CC2EBE61B07B772130E23119250F1EBF8FE 12A2098D9F09F3F21BDC41666CA4A0BB70D5F0A750B44BB93A5FBFDD2BF8DE45 0B277265536F77D5BD6F44FB72FF2E708C60107653AE44BFFB26AFF8> |- /T <1C60D8A8C9B7D8BE16D2C1CA7ED2E06F707C0E9530AE37D06FF7501A595D 3927> |- end put end dup /FontName get exch definefont pop end %ADOEndSubsetFont /AMYWHW+ArialMT /ArialMT findfont ct_VMDictPut /AMYWHW+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T 171{/.notdef}rp] AMYWHW+ArialMT nf AMYWHW+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 429.835 35.8042 mo (EINA LIST) [13.7568 5.72998 14.895 12.6187 5.72998 11.4707 5.73047 13.7568 0 ]xsh %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHW+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /U <1C60D8A8C9B6079F6D3F1E4545C3E1CC9D8EF54571065F01BE5A50957BD2 D8AD04D30C23B37CA98B969ECB5CA0D9A7C563636CB33377BB3DEB53D45DD0F3 E333CD69EA3B53D63C91B303CFDF29F59C20776D4DC576C9C080B76AB60A2167 3EFC1F645BF33D33929C60> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHW+ArialMT /Encoding get dup 85 /U put pop %ADOEndSubsetFont /AMYWHW+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 170{/.notdef}rp] AMYWHW+ArialMT nf AMYWHW+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 33.6514 172.396 mo (NULL) [14.8945 14.895 11.4707 0 ]xsh AMYWHW+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 867.681 172.396 mo (NULL) [14.8945 14.895 11.4707 0 ]xsh %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHW+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /a <1C60D8A8C9B7EF32244AC11AA6BAAA29EE8C78E0E7206F4A2776A2D1EA7D C8D9A28C62ADE3B609CF5E2EE23C64D0B75055BD249ADFEC7B4224D040D883CA 6747571955349CF8AD17E94E6FE5D0259F4D55623D4DC5C3CB4AC64A7A87DBBA 48B7420D7990F3C261DB9838C5B90BF72B82C8238A1A58FE8E6137AAFE2405FD 710F7ADB95B4F576668A6DB104942C88ED8D01E4E58188F5E32A24B5B964D5CE C10C08F76C0F472E84A0FB6EB5E37AAEE233DE54C212B0A012D3E20F864B2D53 463E221F81B784B6F7BE81FBFCAE6785C2430454DD81C436E0A516BF8C8307B2 879FF86378629C5EA7E586D83C83550D2E732930F7FE3BAD07B86C81E024D177 B5D88A> |- /c <1C60D8A8C9B7A73DB9D8FD6AA4FBAF8D65C36EA1D4AADBD389F972C0EDCE 9E7F36285FA93A80D3647871D2CE5AAAA6A6A370DC54E1595FB6AAB3E389C9F7 BBBB85F787D6C418B35B940450E5E243895ECFD2205F51B2D154CFFECF34148C 344C1EF806F9AAF539FB961E3EFAF6353381E833DF7C0542FFF27122A28D3654 8FE63FC8465B1B685766E782F0> |- /g <1C60D8A8C9B7EF322851D9960AE993FFFAEAEBBA8EF734FCE7E65DE817A0 65D42CB79E2F25620DE08D5E215259551032CAAB8B674940F5B4BAAF40766D55 9B26E9A0C2464D0F504C4718579670D62707FEBC08A2CD71BF2528BA3A24A0C2 47BA70F9E817A1709BB6F7008D6C121249525DEE3A93F6DA16170F68BD3667DC 9FF533284D078DAE144C0DB42F376056761CFA5A80B4ED7D37E57EA658F3FBD8 8F779C828BF992A89F02F1397EF90BADA44FB7F676FF0295FF6F9748D66EBF57 5C72F67F4BEBB98F8AFA57505EC9> |- /i <1C60D8A8C9B88C087228DFC7C7ABCC71B868F57EDB285655227000619B17 1C8A80AB> |- /n <1C60D8A8C9B7EF322B3BE19FB964E04D2DB06D4930CA5D8F41D2EF3A285C 0BD536CD2C57668EB9E30311BF9A2872DFB44F2BF2A4683B5D66FA01BB1CCDAD E9C8A9EE2CB010715D3D6DFF0E843CF77C87A07D1DBD0482675E3CA1DAA2A520 3A8015DD09B7CE> |- /o <1C60D8A8C9B7EF32334FFE7884F6C3B903D000D9FD76C2EAE8EDCCA90A98 7875625CA0393015EF6761BE1C3B6D9E9DA4BABE1DD313B783BCBF8F620C846C 7F6361946173FB7A4A6BF94EAA0CB4947DD1974AF371F3C211E584576DE9AD79 F9DA988E9E531810E3876F3029BB1D2ED366525F30E48DD7CE3C9B66C5CC099F 518C54BB58C51D6FB6D0C8> |- /t <1C60D8A8C9B854D0F45CF665C7276F8075B54A4ECD6470F395A458CA2D06 5152075036EEECA213894C1EA0DACFBD370590F4B831924E5BDA5281442349CF AD2545E0750C3004A129C25B1EAA8DEF5DA8BF1998E80AE266F591E64CB5127F 5C42C88FB43C> |- /u <1C60D8A8C9B7EF32240889FE90FF09F794E92023A18223CCBE3629AB7F51 7D090BF7D55C0A5A8EADD9BE381137FE8504E8B2DB3D16839889E327241ACA8F 992A2BB9AD2BCE57ADB306CE2789439E67A64C32BE8669C197F5851EE3879399 0906DA8D7F8ACFF6D70790F06B02> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHW+ArialMT /Encoding get dup 97 /a put dup 99 /c put dup 103 /g put dup 105 /i put dup 110 /n put dup 111 /o put dup 116 /t put dup 117 /u put pop %ADOEndSubsetFont /AMYWHW+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 11{/.notdef}rp /a /.notdef /c 3{/.notdef}rp /g /.notdef /i 4{/.notdef}rp /n /o 4{/.notdef}rp /t /u 138{/.notdef}rp] AMYWHW+ArialMT nf AMYWHW+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 190.001 193.408 mo (accoun)sh 256.509 193.408 mo (ting)sh .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHW+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /e <1C60D8A8C9B7EF322472FA01213C7AD90A23B536C2309DD40D370E2449B0 D0FEF85A6BE8067F30686F143E75903EB6FA56935472EF47CE3F33433C2F0C8B 6FA51573AE54B2C516F6F024F8775AD6639544E339FC2A328548BCBFD58B0EEA 03B7DC3AB069F44477958BFBFAAC7196D411DF9BE0B78A86C4BC33EC5D7C3729 5284C077711C162623860AACA404F650F8D516970257> |- /p <1C60D8A8C9B7EF322B3B0CFC8FED720BC90E20B208D27DC4B8F11F10B964 70F8B4F5FABEC7F7010781F5077B417FE44279776F2304ACD6E0EA12F436330D C4B79C907B9D28468D10FF9256A7D2CA504E4498D719ACD86FCA89B33C61F556 CF1168C3F262A781155D5EBF0C47D71C584AB93037B47B18D39FE408A49672C1 E63F9E8368D19E113FC95C59A9FA4650E46F6399F2FF256844E27568BA34B9> |- /r <1C60D8A8C9B81F2C3A9694980E415F1DEF5C498473095A24D1BE11285789 4FEA85DB28AD762FB8D2F4CAC5BF8B9C18D8A2DFCF155E0751AF58898A6619AD D420F549AB7C795751D32E8EE6> |- /v <1C60D8A8C9B7A73DB99D94C9412F55B03E92C174A4755E69F97C27D9162B 37724F74F272B140D258652D102C2EAC46833C73F9> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHW+ArialMT /Encoding get dup 101 /e put dup 112 /p put dup 114 /r put dup 118 /v put pop %ADOEndSubsetFont /AMYWHW+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 11{/.notdef}rp /a /.notdef /c /.notdef /e /.notdef /g /.notdef /i 4{/.notdef}rp /n /o /p /.notdef /r /.notdef /t /u /v 137{/.notdef}rp] AMYWHW+ArialMT nf AMYWHW+ArialMT*1 [16 0 0 -16 0 0 ]msf 113.306 200 mo (prev)sh .25 lw 315.888 205.867 mo 161.439 205.867 li 161.439 127.117 li 315.888 127.117 li 315.888 205.867 li cp .75021 .679683 .670222 .90164 cmyk @ .5 lw 238.661 116.09 mo 238.661 101.09 li @ 241.546 101.617 mo 238.663 94.8535 li 235.78 101.617 li 241.546 101.617 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHW+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /d <1C60D8A8C9B7EF322407C6655A1B3652DB8522EB511BE6B0855A72D96214 58876CAD1FA22A00635F436A34E23EAFC09C394044ECC1389CD99E4AF1C1F6DD 52305C78619784840FC37A805B0805EF290BC9E049CF068290816CB7E74DB612 941355BCE71CBDD11DD0F9CA29531036ED13EFB9CAB613E9F630FBBC9408EF13 CE4683D92968530F64760C3DF85C7C7EA06EBA8BF859> |- /s <1C60D8A8C9B7A73DA057E90C9BFBE0FE301E99CB771FA2F05368A6342B5F 80456D91458EA2F3CAD55CDF89BFF34EEB39D7DD325B057E2BF0E9B878C214E2 BD1BD70DCABE10E0DC8EBCF7B100B55EBE94FB0F17084E21EBD279B324AEABD9 6538911D053BE9D7ECBF43F934B1033C9E405BBE31E7EDB643609C8D779046E1 B250C3CF05E6FA4787649137D90F47F85972A6603BA900DD7CB710E02662DB32 87CB26D7B7AE794611498865FC85A28083D2F6C2DEC302D47619A4A577C5B843 5558FCFE71A1BB6783AFD5F58B6D2C03593B3F2297A66A7E6D13C1E321C57F41 72D53C8FCAF4D28F2B78D3A4BF03> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHW+ArialMT /Encoding get dup 100 /d put dup 115 /s put pop %ADOEndSubsetFont /AMYWHW+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 11{/.notdef}rp /a /.notdef /c /d /e /.notdef /g /.notdef /i 4{/.notdef}rp /n /o /p /.notdef /r /s /t /u /v 137{/.notdef}rp] AMYWHW+ArialMT nf AMYWHW+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 195.666 81.1265 mo (user d)sh 252.989 81.1265 mo (ata)sh AMYWHW+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 218.593 152.305 mo (dat)sh 247.264 152.305 mo (a)sh 169.467 183.749 mo 110.609 183.749 li .75021 .679683 .670222 .90164 cmyk @ 111.137 180.863 mo 104.373 183.747 li 111.137 186.629 li 111.137 180.863 li cp f .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHW+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /x <1C60D8A8C9B7A73DB920A1A3B81DE7234ACAA5546B4C65820CF3C50E1629 C5A6423BAA34A2ECA8C7FE4B71726AC6704CC23AF1725AFB30D2892FC1BDDAFE AD7BE7BD65F1051699CCF4B0> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHW+ArialMT /Encoding get dup 120 /x put pop %ADOEndSubsetFont /AMYWHW+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 11{/.notdef}rp /a /.notdef /c /d /e /.notdef /g /.notdef /i 4{/.notdef}rp /n /o /p /.notdef /r /s /t /u /v /.notdef /x 135{/.notdef}rp] AMYWHW+ArialMT nf AMYWHW+ArialMT*1 [16 0 0 -16 0 0 ]msf 330.021 145.684 mo (next)sh 306.799 150.881 mo 364.397 150.881 li .75021 .679683 .670222 .90164 cmyk @ 363.87 147.995 mo 370.634 150.879 li 363.87 153.762 li 363.87 147.995 li cp f .25 lw 299.083 166.492 mo 178.244 166.492 li @ 178.244 120.516 mo 178.244 212.334 li @ 299.083 120.516 mo 299.083 212.334 li @ .69482 .6318 .621515 .583612 cmyk AMYWHW+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 407.483 193.408 mo (accoun)sh 473.99 193.408 mo (ting)sh .597284 .512352 .507713 .201328 cmyk AMYWHW+ArialMT*1 [16 0 0 -16 0 0 ]msf 330.787 200 mo (prev)sh 533.37 205.867 mo 378.92 205.867 li 378.92 127.117 li 533.37 127.117 li 533.37 205.867 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk AMYWHW+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 436.074 152.305 mo (dat)sh 464.746 152.305 mo (a)sh .5 lw 386.948 183.749 mo 328.091 183.749 li .75021 .679683 .670222 .90164 cmyk @ 328.618 180.863 mo 321.854 183.747 li 328.618 186.629 li 328.618 180.863 li cp f .597284 .512352 .507713 .201328 cmyk AMYWHW+ArialMT*1 [16 0 0 -16 0 0 ]msf 547.503 145.684 mo (next)sh 524.28 150.881 mo 581.879 150.881 li .75021 .679683 .670222 .90164 cmyk @ 581.352 147.995 mo 588.115 150.879 li 581.352 153.762 li 581.352 147.995 li cp f .25 lw 516.564 166.492 mo 395.726 166.492 li @ 395.726 120.516 mo 395.726 212.334 li @ 516.565 120.516 mo 516.565 212.334 li @ .5 lw 456.142 116.09 mo 456.142 101.09 li @ 459.028 101.617 mo 456.144 94.8535 li 453.261 101.617 li 459.028 101.617 li cp f .69482 .6318 .621515 .583612 cmyk AMYWHW+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 413.147 81.1265 mo (user d)sh 470.47 81.1265 mo (ata)sh AMYWHW+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 676.629 193.408 mo (accoun)sh 743.137 193.408 mo (ting)sh .597284 .512352 .507713 .201328 cmyk AMYWHW+ArialMT*1 [16 0 0 -16 0 0 ]msf 599.934 200 mo (prev)sh .25 lw 802.516 205.867 mo 648.067 205.867 li 648.067 127.117 li 802.516 127.117 li 802.516 205.867 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk AMYWHW+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 705.221 152.305 mo (dat)sh 733.892 152.305 mo (a)sh .5 lw 656.095 183.749 mo 597.237 183.749 li .75021 .679683 .670222 .90164 cmyk @ 597.765 180.863 mo 591.001 183.747 li 597.765 186.629 li 597.765 180.863 li cp f .597284 .512352 .507713 .201328 cmyk AMYWHW+ArialMT*1 [16 0 0 -16 0 0 ]msf 816.649 145.684 mo (next)sh 793.427 150.881 mo 851.025 150.881 li .75021 .679683 .670222 .90164 cmyk @ 850.498 147.995 mo 857.262 150.879 li 850.498 153.762 li 850.498 147.995 li cp f .25 lw 785.711 166.492 mo 664.872 166.492 li @ 664.872 120.516 mo 664.872 212.334 li @ 785.711 120.516 mo 785.711 212.334 li @ .5 lw 725.289 116.09 mo 725.289 101.09 li @ 728.175 101.617 mo 725.291 94.8535 li 722.408 101.617 li 728.175 101.617 li cp f .69482 .6318 .621515 .583612 cmyk AMYWHW+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 682.294 81.1265 mo (user d)sh 739.617 81.1265 mo (ata)sh 580.591 167.003 mo 580.591 166.514 580.93 166.145 581.408 166.145 cv 581.884 166.145 582.211 166.5 582.211 167.003 cv 582.211 167.493 581.884 167.86 581.379 167.86 cv 580.918 167.86 580.591 167.493 580.591 167.003 cv cp f 588.762 167.003 mo 588.762 166.514 589.103 166.145 589.58 166.145 cv 590.055 166.145 590.381 166.5 590.381 167.003 cv 590.381 167.493 590.055 167.86 589.551 167.86 cv 589.089 167.86 588.762 167.493 588.762 167.003 cv cp f 596.933 167.003 mo 596.933 166.514 597.272 166.145 597.749 166.145 cv 598.225 166.145 598.551 166.5 598.551 167.003 cv 598.551 167.493 598.225 167.86 597.721 167.86 cv 597.258 167.86 596.933 167.493 596.933 167.003 cv cp f .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHW+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /l <1C60D8A8C9B88C08722AD20D19A90F9064193C8D82> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHW+ArialMT /Encoding get dup 108 /l put pop %ADOEndSubsetFont /AMYWHW+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 11{/.notdef}rp /a /.notdef /c /d /e /.notdef /g /.notdef /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /.notdef /x 135{/.notdef}rp] AMYWHW+ArialMT nf AMYWHW+ArialMT*1 [16 0 0 -16 0 0 ]msf 228.998 276.479 mo (list)sh 315.854 228.903 mo 315.854 235.466 li 161.439 235.466 li 161.439 228.903 li .75021 .679683 .670222 .90164 cmyk @ 238.645 261.25 mo 238.645 246.25 li @ 241.53 246.778 mo 238.646 240.014 li 235.764 246.778 li 241.53 246.778 li cp f .597284 .512352 .507713 .201328 cmyk AMYWHW+ArialMT*1 [16 0 0 -16 0 0 ]msf 604.326 296.729 mo (last)sh 455.566 216.771 mo 455.566 235.684 li .75021 .679683 .670222 .90164 cmyk @ 458.452 235.157 mo 455.568 241.92 li 452.686 235.157 li 458.452 235.157 li cp f 726.507 248.775 mo 726.507 281.514 li 504.067 281.514 li @ 729.394 249.302 mo 726.509 242.539 li 723.626 249.302 li 729.394 249.302 li cp f 384.248 262.947 mo 274.793 262.947 li 274.793 216.771 li @ 383.721 260.061 mo 390.484 262.945 li 383.721 265.828 li 383.721 260.061 li cp f 526.482 262.947 mo 695.044 262.947 li 695.044 216.771 li @ 527.01 260.061 mo 520.246 262.945 li 527.01 265.828 li 527.01 260.061 li cp f .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin AMYWHW+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /colon <1C60D8A8C9B854D0F461D1A979903F917C33CF6EDB0A437B4DDC7150 150B60E1> |- systemdict /gcheck known {setglobal} if end {end} if end AMYWHW+ArialMT /Encoding get dup 58 /colon put pop %ADOEndSubsetFont /AMYWHW+ArialMT*1 [32{/.notdef}rp /space 25{/.notdef}rp /colon 6{/.notdef}rp /A 3{/.notdef}rp /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N 4{/.notdef}rp /S /T /U 11{/.notdef}rp /a /.notdef /c /d /e /.notdef /g /.notdef /i 2{/.notdef}rp /l /.notdef /n /o /p /.notdef /r /s /t /u /v /.notdef /x 135{/.notdef}rp] AMYWHW+ArialMT nf AMYWHW+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 410.222 277.76 mo (count)sh 460.677 277.76 mo (: n)sh .25 lw 510.719 290.175 mo 400.419 290.175 li 400.419 250.8 li 510.719 250.8 li 510.719 290.175 li cp .75021 .679683 .670222 .90164 cmyk @ 494.026 244.245 mo 494.026 296.73 li @ .5 lw 803.718 228.903 mo 803.718 235.466 li 649.302 235.466 li 649.302 228.903 li @ %ADOBeginClientInjection: EndPageContent "AI11EPS" userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse %ADOEndClientInjection: EndPageContent "AI11EPS" grestore grestore pgrs %%PageTrailer %ADOBeginClientInjection: PageTrailer Start "AI11EPS" [/EMC AI11_PDFMark5 [/NamespacePop AI11_PDFMark5 %ADOEndClientInjection: PageTrailer Start "AI11EPS" [ [/CSA [/0 ]] ] del_res /AMYWHW+ArialMT*1 uf /AMYWHW+ArialMT uf /ArialMT uf Adobe_AGM_Image/pt gx Adobe_CoolType_Core/pt get exec Adobe_AGM_Core/pt gx currentdict Adobe_AGM_Utils eq {end} if %%Trailer Adobe_AGM_Image/dt get exec Adobe_CoolType_Core/dt get exec Adobe_AGM_Core/dt get exec %%EOF %AI9_PrintingDataEnd userdict /AI9_read_buffer 256 string put userdict begin /ai9_skip_data { mark { currentfile AI9_read_buffer { readline } stopped { } { not { exit } if (%AI9_PrivateDataEnd) eq { exit } if } ifelse } loop cleartomark } def end userdict /ai9_skip_data get exec %AI9_PrivateDataBegin %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 11.0 %%AI8_CreatorVersion: 14.0.0 %%For: (Marina Proni) () %%Title: (02_eina-list_a-02.eps) %%CreationDate: 6/9/11 5:17 PM %%Canvassize: 16383 %AI9_DataStream %Gb"-6CNCfDD(,/el9Fcr,,C#8ZLV.`>/s+&6QUPrDp)$l,[4TqNEq48S._ %hSRn&_tZ$?Is(eheb^/l^P1"j^A-5!r;&#E@eu+6rq?'A3uBC(a2)-^qB,a8+2T\W`q-0g0u2[hC3<;D_\cm:+5.QH55Y.?rU0B7 %QZ(cp\U!r?iVn?*69=`#iUu$ORt#na8bBnZIXc_=qUNj&>G?BKGs3n.\CL2=?<[Hk*?YHlT1V'r+\ZMl[3-P@3AE(F@r`[VF*7BC %Qad"k9:2C80CRd]]`!saptM.]RE3!!n%O5GIt3ui8=*8Vr2\_gIs(YN&,._s@L1KYh-WCZ\:$fQ'Em$kDNM@Q4e_nt%=Wfuk(h]8 %^i0gfhBV]BGrC`SX1s"2p[%%?gGa$S>PmhIYA`lZs7#d4j]^,9BW[hZo6CO4k(".t5A!6SO:n\UIg_l3gqU@H\AP9GNr7QO\EG!$n(#;dr&aeD %IKQdgIm*_YOP7[g]RP0Mq\F.a\ijj%ieKHOJ%e&REPC)=G^9/jIe377(JYsS!V^gT$Rua&)?l0gHN-U&(^H*]CMP_^?;B^Hdgs5 %]sW9.o>;*JD_>?]#B+N6SccYZhS-UMo*S"Xp@^L%hSl,D^Nt&"mc*oa)l1:8+"uQ3]:8[6IsM8tH:&&[Ye@Pkrp]b3i05>@?,2&A %EJmKfK)8rJ4268ipYtoDMr!@O2fE'Z]_uh(d-Fd%hql&ZJ);40h`orR?ei>%K83/_rVPQuMskQbe][hor;#dCmIU(Un/pBB#2o(F %IsHP@('jZpiEu%,DZB,"X.)3I&\./go:&hNK"^h?XPoN?gMZrY*iAf-mc!!&g[F%mIk`67Y.o@D,CfS/AF.9q-Y"OJ-@[$g*frn[ %?U0r1DXZdB@UpT9+k;&r:AS%I1[rB,5JKSj0qoQ1s3Z;lrlknuki)K0#O3b?'^I^VMpMnLhnOgF$[][U04)P?*aTtAcs6>R9U]aNIKpWl*u5\/cNO;rnu3%JUd=oBBnm=QP](,Sqt"JkAQI> %624BbS*..$GY.La*\MnhJ,dF2S+h-1DVi-\Fnfp*qp-))DrA=fpBM>+jaV[PqmWefr:94Ci0V*[OI/)a5CYrCiKn37abFXOpHMq3 %kX'd$K%kd#J+F$H;(l84Ih,31h+qosiNT9^aMlmQS4NRu&E\N/$eG&6q"0K2 %hg^+VrP,*jqr7:*LJ,ABerTdhHJ,_5#I.uXZ:U`S1gp;Jiqotc42[HWpSGc[mrMOSk %^O16PIe3.'00Y0t2QA^FBDbDIRJs18J,J]7g[@E7l`W,:E<#+U(aV23W"T$2m5H+)YCH7Rl=s_2pBTS_G9j[)k^'Kh-lq+ %o]FtjTR_V.H>>M9T1aP?q`)<.TAqj0k%t([rS&F?IfJp,b0VbjA_7/[:i-0(iu>b0([ccocNMsN8K+\F":F"8]!"Bba1hVhr6L?# %nclO#dQ_&%5PBXQ^UGldmllN38.rU`He8)86%4`To(f?@Dgqi5kO(^iO;]6r?N;=6d-85l\9j3ijOq",hRpQKSF:p>VO$*X_Lc7S %MnX,Dq1).tl"kk_PPTNoLZQR"m-Q=CR7gS7@Jh\t6U*nt3TZdSO=NFl %So`)e][)r?.Ne5(^4qZ&&ka^bPZ!;:7gHC!0._PZp*UATs5a3B%/_J8"4;ed_LF=poZn^W[6H1hXoe8CqIu[rAtgXM3RD,,=Ss8_ %X+0Qr\H64^`[_nMG`M_sU&XU@_tE]qiVMj9np5f!]5I,^f@+lU/jPA;*O!BRGdopW%TeG/_u?l%[)79Y%eWX.q2c*V&-+N!IW`03 %]"5Q.?gWTKFu@8j6h5; %fNmksGPg36f66b'g=9K^j^$TZ?%?p%dp-0cdr97k=#;ZYB1dicj+)F%+"C!_YG8-u'q %;POdlO=!L5U^KA];$Z=frs_4=,SL^rSjp)UM-`_-U`!&^pVC\G4+-%/[=3i^88.WEc[Pa"7tA5=","^.5Po?u#0'Ul4;0k64:N@! %`j2KI3!.,2UkF#m`:arEBX&n11;&SG9m*UuT&!4o;(=75&FY-J$EGDu';m\'$E%gmBprXY)EbWG56:W^_1;o3%F&;cJMO,`@ugih %ULMu'T%a[42Xfg%Qm&!flUIqVKbdm-+?H1mfF;NH>2-H5"5_$X,mLo72$eemA]U-!^f^.]RpCrni;Z:B'>tpi'^5YG#(L7]44@+4 %OHh4G.nRqkrg_qCkSX62UVHQmpSCF.99Q)PiLg_(,*8iKU=Tjh&I8(3KHl<"68B=Qli_g`,\n@@>ElXEP.2o]%j9<'YtH3\=n3o$ %]EKR!"kbt%,&M9.o(!qb+h_9s"7:7s6)5aN;+7nnl@K.o0B7"@>dlBh="kGW0I&Yq$8XLJ0Nf-f/Aij?ZN2?326KQ=hb0>NO;!.a %LAA$g#KRD^"r9Ia?K8U#Y.4]7ftf5b^fIk/!I--tY=0T$#^gjsI_5g?gd.9=inFf%6\^^mR">o\`rXcW-0ud:@#,]7:ih1>-35t+ %#^DY.\>JL^p';hFBP*JlA?h!(\KkU'aoCbmg!S7Q,hs[Xj-$ni=26+6+:tQ@"=oA\8E(AVObE'Y$!J%N=!VZ\i8T6uJ`L\nfo+8p %j_lF_N)DX!,Yg>tHf?L0iY_oA@gROMXgms[R3&=_UVa)=t+6_#Lc3Gl(b>8?pH %#+jNLIpE,b?,L7oJ-Qa,A:Y4aY^nagchFZW?bp?(%@_hI73I.b:nW"G-k3gRP-D??A]a*pMbs)R1On(373d!7)HZSS)=W3A?RHW$Dn2bT$S;ZcP!2A+O5<3Djrh/Z)Tn %U+":!,NWl:q0 %HrkUT\a"ZF=]SNJpalEF`r<"cX,[-i^D3oa9DeTa9Vd;W#n&gult3Mm#P\NCc"]/;iCq7t4k6.G4gR9K0=%P^#4WUBr[0WKYWfD, %p^bVn=G>/UWr[#h%*j3SE]%emljpn[aNg4+(g2(o[OYIa`3kH3Q+;!4gj)Uu"\OJ8Xp8K(Aj+utdK$r"qZMi-]o#a],R`#$]*)s` %=0bC#g*AH,OM"0/+GjM;)8Q):C\/OdNYZCS9=C#0C*qtZ%qb+WeH+Jt1as$t6me8Q7(,:,)\Bf71g+h.NoY;_A=0'T8#mH`r]5Je %5A^;r[mq9!r5a?1Y)p=W51Sb_`>oT0!HJaL#rhY:H'NfFG2e'3A+V4.DLQ`H %93#&"Whl?Q5[2>VD(E67gf6/s3UEq9O&[NdMS3$kV'1++fQVI,)q\IZ=?FqFBC]P,;]SD_/EY;OjOB(JfEr:M=a!X^`6!-jN\5e! %ZVu)A["7&4XQuAIg\JSX$fAF>^:Wi<4l>)i4f[st+Qk\q^X`)7^#.)Ihqe<U2^+_0uni1+:I>[p;%@U%12_DaCBp>Xk;hEg:o %AFq_A-W=B?HHV]Ab$[t#[1Sf9UN<)b'9/W<47'1rLf/m'L%Fo(LF@>)o%5D6YWbSi/Te+M0(%&=3+LVVX.2n5fR]DN(cu(B,<'1A %inU?4=E2>eR57n"YnQHTK2]"`lLdnWZST.(.qtI9SkZ#+#-nlF`D(\J*3^O+>Kd$"R?Z;q?H$+ %GH@/b%Q_&$C8"J/FjF6GpK$a"V)+N#Ohr5VH:t/RM.@f0&C7cY>q:aOGm:!`"eV:[2mD?c>]o%$`pjfcM)^*('[?\dg!B:]`M;36QA5'J$hgbdN`!E?hY#>pX4C77,0c(Q"_>ddiL=_+On)KV_t/Wr^fRXohi2 %K1L9Z@\-hno@*<:0O\>m0.d0I>U7U#Pk6G=2-o?dI/V*+noFn)s$uj^;f?UZABWI7o_\k+$7r8LZML$VoU*OJ8EsRD;k9: %lj]\bo-6>iNq-SM54nmAOI8m!M/Hobb<2)^NJSOQ,]CA2(nc(Dq*2MnQ>m!W`PSVabTZ*g1[!^j;Xm4gQS %0h:!HeL!I/F18!^H/-o<\hnbK'T4H'f$RX.).QtK%7?/-K,jYuYu'*Xh9fphTAX%>cO'b`f^%Yt3DBut0B:Tu/hf;\NT/Sh[n_/6 %m)4TJ;)7:?,B"Sorh?)AK/n1HMaq5geBsInP1ABp52flE;?uafYUe6c;eL0MHC(XQWeqIg]7J&43f%QoEphKG&^k1h.pW8<*=D4k %+rlg9;'&8#WlKplV>?2$GLT$,mR2fpF1HO+V%<4=6;6^hb+/$=Z>Yd$EmBGsPI;-slP94=31PhlS1M1d_O,S]l"[hPX"B22)sM4B %#]rNq:PAQg/dL&nFR.l8V-=.@(U@&FPADG3i3K)j_(@*=:kNQh\eP?R:UUN#`Pfr6.JoHPItnL@(=<@#a=)kt9qbI/-0\.$W[LjZ %9#>X'a_ACsIZ1ss74/?iDCAa;HhrjYBl*tNZ']aAY10VC-*jP>4XHDY`E->Jk`FNEPD'FA6"6tG;E?AQk\`pe@Lf@dh2Q+X%1nG1 %0S=[c;JR\r2@Nt.!oQhekhKtC#@@iPqfk)V%g_F^Fr$,iXH8!MDK6r$h6!";V-;dK1hV>7@Y@fcg=]/>0jW9Q&$pL0/M]SZiQ@`b %HhNAQXnLR9Iumh#@h=sb"$H][UX1h19k)Mg+BP>.(h[f-BpZ8@lQ4nfN*<^A-W:,)Mc^YII5(7U\cB13HA2eF4#i/tb3\tBgP^JE %Ld';SRI05QXS*A&js+o+ZZj9J$t#I.MtDW%]mr8fAkg%^3q[79QL7%`MlkgK=hIHK!pgOr[fG0u %`@U!'SHQk$8.u(]i7$_n#Z#s\Kgd7ZT&r^2J0#:ON[Acl8j&%%*;,_2E5q-=;LlbD!f\lh#F(4I:`efq#V%!ohkjYuL&j+7js&ed %"(S,LO-\'9b^8g4$#jl(&2;.\GXe(CH"K0KRL4dsj:J1l-qRN1)0'I4piKQsGle1h&O9]aMu#i>f(1Y;#e4h.'>Sd47(eKj;r27O %9C3]XW3_^C%*E_[F==,D?cO"o@O?."`W0K/GUe/HUZJ-k=T3Go+cNBo$W8ge;"05hQ:uS=,LQW`5FhmkN8+cb"UCS0l/r0U4aVI( %93G40-+&F!LbCiMdSu%_M%G^q6!X+/#VZe)g`%fe@J?HT#%mcoLe5.F!c;+40@.f.pO(;;soHhONjX1"Z.OD8;='u)l!%#^blc0mV1E8h^E %P92S?hAAJ=+k-$mQ@U&?XFo/9d.E^#S.`cO?b13B:7RRgB.t9R*MMqIB6&PBhHLj5hFb)gLSFkhf?R[4jJ9o-WQ/a)@e9ocWSmPD %K/8b$Wi5O\MSjUtcf>s%MW31Wq/fZipG==-""tf511G2h_D=OQ#p!N/A+;^F-8ccOKXE1GlcWLZo99hN_@"]MGcH\^l-AV\"Zp6h %eF51TSKZSS43A8Z7IYO\[PGhP?sI\R7I\6jN):RAF;AkT1,s/SEfBM3?[KG;5NDL3FD6m1[gArONX3,eY.&M/Tfcg35*.ub;Q`TV %N=Ni9AXDG5*0/(M()L)L8/u0dCLG@S)d4JQ(C&_AEcs=!('>UFn('>)!B:CV>)D$;%CcMr=HQijNBC;+[6fAn"O)KA1^C820R*g# %;N9JDGZo&/=&d$mJ3s87k(@5MTM3li>G$fI-&HjS,BGhU)BP?6_oL6q4qtnJ#,Rk0&,k/5-1>O4N_eI#Bfhf[SY!)B*(eiZb_-us %h;$K$jug.elhF#`FmTdmQraHSpe%9`)o[q>?uM(=%KVk/#;pQnF-EEFd\F%==Q,)OSljs.'fN/Oge8e?TZ3g)[Y[2?q4;-hI!Qjf %QfbK"AtI;W&)Y.^U3C7"s71sBgNSm*FU[!)'$/u9*W2R_+(XlY8<6UC1Rim>Ut#2[PgOk:V/t"*j6+b6)?Ka.54R_KcK@6cZ["a, %;J`!*oeh?IqYJf"j6-f8=mMUjC&^VCL?]BK"*K?f)PWA(W@-"cnp;7\2kF2j.[?ufXle:ooiWP,/D#-l8a]-:$+E+84=_bX.fQW %g!R,PcL7k,85GYg2@g0#?%>`n-r$9HjM;`UAs9i:RWWH7/:XY\:]J3SCX&q0TdI\T@@@BImIu),?m1G_K]gKuW*eQJp"E(-[ZK;;CISmWAZAMr.i?/obGqL.0n+ %X'2fbfH0EVZ\N;a(U45aNDKirOPiG<(-r8?>/>(iQ`uKDTTV%a)?h2h:Z2"tWg=DAn]Z-6>mIb^oPW'NA$#oG)iXDQRao[O( %V;l:N&QX(jj0ksPa@Y/fB/pF4Y>]#lHrQ@3YZGBqH:@D$eJ%-GXa/DZ;m0h6kEUEQ+hi-m/U*$3[\C:a\"_%IE]ulS(rP4pOk>4_ %qBBe-lkZC%hj$irA)t]W37.A&,t)Vi*bS&jU54(PbS'P-r"h`Cd!9hPOi,@5Z5ts;ZUin&p#qN>:P3X9Lhr`_>E6,Apb@^J_jI^M %WR;D*2PJ`**Yq#0(3`l7`c#q]5GJY:[eeJB3CTP]X7X>^o*]sZ7pH\6]anJb^Ip!ofeIWqgq31hc#U$.#>+[R3=aVTFHX=@EW+MEZ1IK;4/\p#ZPJ^"Z#rjI %F\f8b:U,$aB8*89\u42lciOa3enHq4M-<=4I\fH;8:i,.RBF3]rUE4XJ_BhR-dV4B-\Yq-I?9g)jK@lLKhK-mQ-b*otD]h)6CP`<3@!Q_DZ %#H?m=EC0di$O9fCKVV0 %4h,0+$<ZBQ:hi')7K)o#`(+'BUkk6B4!_M3VHV[TOli0H8r>S%mP,gR$*\j6 %-<-$&L]NIDR_'`9.@YH11pc9Meh[JXO;Cb,:NaqfPpcB_med-b<`8\K:IojSJ %Q3_[jKMQ1Ea\7V7VP30/or=(Ug8_?`g+P;IG[N?a"dQq?F,R&_49K[@`]@V-^G_q[gtTM-Xu6BcO#['!oK%u %#Ua_#E83^)R9\p`I+Hlh_DlNBBV2V6FOn$n\L\)k9^0Pi2e[$q#FTriQFnZ5I'mA_/XF&_R0YII=BnYO %R6\q>qg4/\)f2]sd03h\?e"aGdg[N(h$&GL%Wnts-'9(%beb+:bCUJN %8jjtgZ:*5)ApJ#8.LqLGdfg%"]>A]])mMBhqhprkIjp'LLs7;ebg,[)pn6f\]9JguEVQ2BnI`h$b-/=bS7D?"gGp&+k_26@pqY]* %O5.tLiS/:+%pXUr]TL*;JGZ&;D[3h,6_":Bb7`o[R!R7\&A#&q&m"X&6V:Cq9@Gk-KsOc+FF[5[$>-4VqTX[hXRO.8:TX'($H\7&O>pTkL]F-j*=D%IUTIE^AYUi:1%$Ql>$oslgafYFoIn/;3.774M's`L=I0&?[I+9dr3Dn[e;?@P3ejnVdbtJ@%41(!4 %>n;kJ_'2=Rn`_k9m:/Sb[c^A#nh3X8/^$C*/lL6-I,?'Y)=iubZ!_;qp`+^>%auNci`B^A4PSaSa34P_-`MFR^Rs:Sq8`f`lM&"r %n4PGQGoo,Y;kBFE'/"FAm*6W@*[B:(=1\DS,-:2 %$?hlYQYM$qH1mop`@LfA5_W[uStp)A_GDHi^B[pMIGZ %>Xr_gJnI&@MT]A@-+ruE^G+9(6D3X_@`Ti8f-CHR14leJ-&cdq\W-,]1!u2Xq`;]9Y"'3s!.X.50Sb_BJ<'pj.CpQJ]o?e84g+0, %6p?FfLkWE,"!W(jLZ;n-VB7rYrR:r%Nul,$L?N,[\JnMK7>6IUn^fn#R8sH,OEFE.@]"KH.6:NINc._Io']/SrF`7c]NGpWrd2\I$n/N^[&*AU&QM1t8fN %%CL#)Mjs$fR)eY_>_cF=`OUpQoRWjZ0-]l9Vad#qcj,CT>`PDDU05!H+1qt-g^K\W5:ducO2VecU'W^PPV[kSF@gDG)G=c3UTq!; %QM+3`.8i^l6l%q@`'q?)ORmoRkn7=8Jp3s4GHZg+)<`loa0-o)-W?!Y9^KEC^'Cs#%GJccit//\%HJa*F%m] %g,QKbjuuF^s1%>XHr,$*O.Y8lVRR-YMrlu?bX$kCmEk?'m)Om)`%_#^n:lu/WuN'"ceN0e>ot$Dn@<_oa+cO#8hA82GT0.e)VGW\ %@gODS/A]J"Zl-_9`0?H_ePFOb9;Jp/GL>H^"T8YRnVrJB1eG8kZGf0'OYV7GY^OS1B'5,CTNi$d,:7/qZ*;\h00TQFYM5_2qEWXY %B%S`FU,m]j15OIjABaDXQAY9C=CeA2^o\V+Rn.M!obH?@PBrr)_P`j*;Poj7$"q9H\+Bbgk?\oe0Cj.7?0YOj/pZnu*,U5A]@>=+#=@!?4!cDQ)O53:PR%E'?GY?`>6Q]&>qa"(J\`Vg*s %foa(Q:D@F@O\t54o'Od&qJ]+VDSNq#/MYOLiWWLhU?fX(4cYF(3pFoJP@!/Ek^#H&\h?#W`uDQ^r6drPH2Hn1bu$u'>1UjoPgF%Q %I/]qOk>)GWh)Xfe_Z>sn(kVQtkkn<3VhAi)^#;`ng\K0Sc?gj77+.A[Ncj>'$C_U_O'#r=>Q;K),3O"Ij3Y=`:PSH3Qe8>-^h:CW %D#pJ25Ti6/?^ZXtPj(1smeoKk+B'^KM< %_l@La*K-2E@"7ct&m?EST!LPubRFKW%fD[G8Gm+MB)?q`BSNs?G)KuDIrOF27`2,RtmQ'oQ#^mt-Jc>B>b%!_a#H+>>rN(e? %X`M@'_kN$Mf?[VR*[.D_L'ff]"6W9CdFAkEK9g8=co_^Him=>=q%^(]hj["(1`f3Q$'C9'\QV=HXX,g,C'j:h8ck$bj/>&"mEp_O %+)g>:m4d+/OC1.Dd8bDOVo77O.NA[p/KX"`Eq3'RjA%2D?a6,Km(]Y?If'aN2.M-5k4R1lR=N-AR8XpjK)G6C#kRELqbtYg[*0th,Ck.G\I>XEhhA-YGn2\"uMC1 %PIU?@jd^TD[X7\\X)D)0,MNs:/TJV+H.+Ep %E#1O9.Y95s:6q"h5/JQSMqF1]7*-pA`8B7V$liCQN!tV8OlcOXbJ93.5fb,\A.ehr/-A-3pksMabKqIld51hp6]dIIKV8Vp%2+S@ %/YOk"/gBQ.%Q\r=&j)/?_+>W<,U#dt,"bEOQ%F%n,+j%H9tSWG"\J9LPl4rR.JmXq+331Ob?=i(Gog4djk%g8bk:I>p%(@$f;mRG %^?FA@"7n['o#]cZB7+9sc?!F;%8G#*(@oM'Rq@meQ[n7<7jDZ\jR'^N8=AN"GKr?t'A`/?lfa@8:\UPqHZe/"Y,qMRMsQ0CeW`:p^@J&Fn7VjbO$1t^B6`bZNtcQ1B5'7RBm'(%5=M9CU"Y19Np>.1 %Zoird]Q*o?44hlQ)aFrNZi%DI#KC^$B$MoD6&R$'K`3BX+%5mDS:\4;itTPmkTR5YA$kQ$_/k&tSau@H+pj4_ZcLFRWMa %!l-kHGrgE)i.:Es6JCbM(6)a^8^^kY.`?^2(&?,d\7,'>rP?/f$f_Gp**'5rd&2)?)[Tbnp1ZcLMTTo %9[!$hO&[2;2MWH'*7D523YAVQA(>)](0s*AEG$Ku+-5o>b`RQK-8EC6>7\p?OSim6mZ3:E%&V08FCBAXSJ;S^`lRJl`EP?'I4"DI %'C+;B!H>op`"D@Ck>;-\;2YP0o0C5\Ep[RZ]:qrK8(n">&n8S(GUM)Q?dmSp8?u=NJp6;'4NMeFiJS`=s5&M5]OQEWAr@2W"hq\. %qaa?ALMsgbP-4&AiDJ_4Z2^sJH,Qa8R@Z83ccL\9Pg/mm&e.$5CE6.dKeLQo;Rq^]SeUoDX4A#.'.)W-Z>McI?g!K)23>5Z-bI!Q %'oq>7&aC3YPW[6$f1tpVjl5M*a)%OEknQ>SAN<#*q(u#YF8baH2%gr:GKgSq`Hjgcb=p?e%cAWP'SOfADEPM8Ig%UT/EW?5BNn.T %l5slc,:=Xn+j^`o2&!WWR;NDk]/Paa4C=09X)sHfQjPTsISfC[SK1LMG!+U6nT8Eae"%LTGBTKI%K?)eGjNrDl->lCK'q].Su.f.f,",*9hEl<#'O%Ad22eniT^Ss.PX19O2Gi])g` %U*qWQ$5+.o+U)R&"^`K%oH*1%=MP"&7A&Ij9:ubj4TfE&ZU-1Y]_UocY2n&E-T,ZtHdQ_!^ThS[Hns<7>=L%5X9[#Wdl<%RnaCc0 %^R*.LaaNqTjMFD2'0[1bYRNGaP^nBdg]1"809jgR">ktuiTofB9$JH?Gj?JDQ$Y"V<;*<`]3P+[X,4VK/DQIkS%qU\L?goO(0?l> %:.HOSm*\"^8m]62`NntmElP.c`XBO*d.,$$YK+ZB0ZDBS<2nS>@VSZ"YS$)K4(Th(glg0l)IIi"Hg %UW(nDM.\g-g2RX!G6mL@hL.D<&q'l$."H" %I/''s\kdJL\X.!9"%DndMY5(*rPP?LnDaQ!5u)4kXB+rE/A$*T\%bNV*\.J76m@)34FCC>*BpX0lL"';^gIDKh7%kY[e=&@)Z"0@"#qI!qH,lo^7BF/e+U;qu$CVcZHU %1UYa[dTQs8MqgT&V7*^AXDm2fETkT'brqG]ilbG+TN-/;3VbVcj!oB=4dKeTDo"B %r8.MPf<]kula)*;?fTfIK)b@bnCJTASV%7*ZY'8BI;8l4GFonlLTl.%gi$jE=ojqcH5rp/M5uu.8B#m?j[`A'Ch..nR_D[O/TLF5 %+)gWVnC9F`ZZ6O6E97WjdVmkPLqNFtM[;],_uF_rM?gB/cbR`Q6sibmC?M;8EUil[R(iIa#X81s]a(>_0Mi=NoGrY9E1Yc_ %(@N>tl+>9%i7%..TCdP-Ypl:-2?b7#)om+1jM/@IVI-%KCA$&M+?'W)ee*_-K,#a3!"E_dqX0mVH-.TONkmh:/@"G0W&ML<3i@03 %`ilbglc3D)+4g3&e6:+R_YaQ#qo<)n#1iSA4'7Og,[,.0Pg`#\;-Nl/VD_1S2Fg(HUlljXD#/\ugj&NS::Qb.XS[>g6o2gp(ANlsDoRG$[0eD9!F@OYsbfL7gc9a=hgDfFAAacXk-Q=&MMoK";7eaArb0I*H#BO3IN226L?$o>gWk]35m8 %6m1u>4AK&4M4E6&Z4VE/4^IQUaHC&GUU3&do5\?#YP/atR[NG;`i5b73;kH2+-G*Pi?O$c0k;3V8JdQEXl*\E'[W)0W"kCuX@G\X %T2*>nCDlKlF+Th'64]9R7ppcd*g>h9S9=1I!eK%fHm)jXa?BdLHd=U;:,:QSl0gP65IJP-jq6R"A1um_JhgQZU*``k$(0-BU(ppG %-)ZE$ECY$J>S$6BN7UAPb2!fVpO8)tqmt?%]O'Q:MP>+oj=q_)8FS-Z(_3WQJiYBmjVOno1]M(ek5F$V'p&/XiqSF?4PR^PJ,IpW %4Zj+Ko=2q7$Kj@QQMDN=GDZ\7fES"c2jjAaNc>75r+lZL"Vsa+"BGrO@/]cq!EDnUL5?;RJWU`DLP4e(X.Y0VJbH*ak&-%^b/`pk %m2YLGl>Y!(Qn5)n(ZY<.i>i&UF"m"pG9]h4&V.-W:Es[C]l24/!V#UnB'D'/KUiGGg3gf1O9Tb0UnRL:TN/07rYZXV^J#g5`RhrS %_4>i(:JY"/e)dfI)^aM$6jPhS,WD*Ub9#je4C<7H^no?JE`h&hVrd]#>=U2\qr_BRfA6`k"2220WOa(`+9!t$Z_.9Wm#V/H57q,; %3`n*/a*=/JB)k,R$`P8J/cLZ^*`o+eQ6^2)C[V0_<0H_#LrA[P#:ak?>5"Y(1"8<.O3(NEtK(F7-F#ZNpA>\Fr=P=^Fl$T'l_$kfMl5D:6&KLi[/hq%o %PiZCdN+^p"jB9K,8*DqI?XQYLBC5cD8#!H@GmH9JgR/A6JU9[I.7tOeBgr(rS[*>qelnId!"?Q3(=^GDfHea/hD0d1^_DBD(*e&A %07oB#$o`22`]+=V4B=l^kGg@/A_%EWaX4McBfe3>5mFAqJ.3;Q\"#7h?dP'&C/Zr$"PAQ]D?0rnHDV]"a(P`V<%S2SE:q".P>s30[1:$490H_RE;\Sdk&9pf1BX=a(bm1,BX>Y36BBp<1]8#/k82^ %U#qbbZpO-dR&.4JJa%e"KrI@5sm+f&V),@]JJ-eQa$]r]Rk?^JS+.b/8Z.:)F9=@5F#5Na]*=Kf83!LE]t*RUGP>R:X#GZP[g/5W2Hn$>^5+-o:F-/$'NYaiS4s9LQiW %:mK#HJn!Y;7\r'OG6-!QY-I7'[%r:c:>>l;l8VGc)-8]u@;,M6VJ@9i@?e/q?:+nuiR.o2g.;>S@ke,97:Mn_mL:/F,^@:'Dc %S5*oj:iI1m_IO(SJ2Ks%C1BAb*R43c%C %M%Rtq=k:P0GRHrJeFeD`12$V8D("!-Ff,haYiK7OL7JJP!a4+o8fI[ECmH1a's5/VO;No3VtqEUWaRXcD+qP'@I[a[$'!\QM@?OJ %!)1ieT1V[W@%tj8R`ZHGec[I$M^oDAY_Zm7U6#t;6!Ba1(_lTN,aFpuCTLNdH!K]CMP.sl7U'nC%@030MP))U=$D?sMJ-,.n4ojc %"C3"'2^ll7IQp9MU:Y^S^]=;-lB.5FSI;=D@Q@J'4,qqSK9-l@YH08kD0\M'Q=a^>>-kR>1SlR8=Re`];)L(e!Y>M(O)2F3Sn7Y` %:ps++Y!l3dY)L5iosP/QU[BoM]cE!>9j&6A.O1,hql">'"&$?7k??mTNP/*Fn#lPr(oV$tS]alh2'jg"qKQXH]-Q^>HEn %OJDMa9"'4R7uVZtjMWZ&Z0B)uVsIT2^BZQZ85 %j[9^:!e;j+!ENqXaWZ7FS&_#)a[rVAuZGnCX>XM*X#k#.)=S'":,ZiHJ1`D)PrBQJ/OA.s_*!:dd)rRf$kYACLd)9E.6h9dA'fHt;oRQ@?^ %%U_R_EK4ePiqlHZP_uc$J^G7i4:9hE50T0]:k=YbW_SR7a;P/=THl2&)+Yf,fr/`GTnf<*Y)#_TJ0F50-8ng7R'\/A/D1T1C>16, %lMskM,KrV/4G"Gp9&7s8Qf.UN&3Ka&.^X_6._;D%'JZiN^+Wh#p-'g%MA@CZ!W[:@T^aAq1?*%9V!8Nn0SYEE.J$6K@"IV2_-?:8 %4%`,fZ"Y`j%-IJ]$QT5\Q4Yr)\XMiY!tE1eNl'RK*)uu+*MS5e5S,928#qhg67L0tpbB@Z5I5eO4A3Oe(D=08l0e[QN6!4+.V.8+S(TB*9H %S3dm^H85i-:=0X&1"ii_MP0+-4V1*d!6J+S2FpFB&Dp3*=LbU-tq?ahQD.h`diK9C/dmdl>#!4*,/&H">M?F %)JVmm"5C#JQtFhM>EHD1O'0+gc';h*lIi36+tD>eB/;edX&b"m1sc(OeFp1bD)18SSB+?8'60/Xc+4Wi=EhM"J4ih5[a%r/KcDhPUBH%97aq=_WmURAD'Ehc[0+s&@G2[^91]k=;nZCZ %fB%'8mm3nOGpI#2h"P(>lth!^,@Pd8&0'oTW/F:L$9P]`_dqIU:d'Gb>s4.>_@"F0-.Hf;@!;f3j@BL#D61n8WfnX:G4ofJ#1ia/ %NYB7=6oo>.A9gkqY9nSX(tGlZ@,5.GAJD6fZ2p?#L,O;t:$a&(WfmMO)XT(*#bql'6nRd$75kD`Nnc6O4?(n(f+;'T1e %+Rr0(bGrjLM$Z_gah.^hmIKSI0rE@,0[b=T=Oi/NI,K^o(t=bCMi47j_3;G'9lX!WIQaF-C%f^qas_j_S;#jOfK@_qlLY/1c"5@l %&59O=&@N?k)l!CCScqS2?TbN<#"D=(YAA#/,*;T!Y:TrRc!2tQU(L)Q]m]475TOKVll(KGe>MU:NTlEf[@/nR!eeO,;QNl!2h>UY %.Y8=bBf'NBC/eRNI[*@'OIN@kl*H)Z&00`n8UjD4AY'1edID_^kj-mQUhX#ofGeQbRW4gDYNS*(7mPc4 %&(T_Y)j(E%5Ze3p)ca+*[>kS!=S;L<+"-Ma6+j!0'.;;Rp;reE^B&']ea0oL+e\tQ(!kU#)Wkomge]nM:1-AlKp*8iQ*gY^ap6op((rGQO&oPS$;FoIP<-6!.b5,j`;k"HJ//,7%5s>qsId %MHD+>"Gsi'b)1A8o0>,Y#\5V2h@QopDRP92=HY/idIq\_:Zh?Vlq`5@Ak,2L>[C2G2prS-?RKKa8dpRV5cFBJQN14#]$\^S)$6"C %&iN+V0c!2&cOe`^Ws^!U&h'eg#uu8fTqd++CTXhYT7J^I2peYjLKd]jU[n5_s0+Jp&CgB'g4blC4XL%>#Xk'enYf9VU2okTB*.gI %Q1QI7SdDc>l#QWO^a_hu71FMDg:-EFL;6)b)CP5o&MP_<<:j]_PXh-*21'foeP;NL[gZrWkhN.2%^JmRb`BuYW."jQUHPIi %1tA'^iBRL=U21X"!t?#l&)t"Q0$GY@$4:!CP%.,4(A:ZIDmbU&Gbp?m'bgXD'$=;.Y$tcJID[Q:;u],IV\Om9%"OMs^q+)$5'd-. %>%r6_:!7:eVZ!Mi9p:qH"K#SFa1&X\c"/Rhip;KMA?[9s!gR8+7T#\d3`O\SXg=A1,&"pY:N1?+oo?rrsH %UpPf3cf05KZ1]4uS%[)sD8>/5B&'+Fj-d?a&3EnJ&2ONNnXcZWSN&s:Yp[r-(MGn0V`_7`#_C)AoFcp(+ttC&39VnWTncNWIZ93b %063B3fpmR\*&X]@4AMX>Z %GLG``2*UU<5r6DF&^2]f^(Y=m[HDs"!:X[U>7+!k %QE%Jof^d$8't'Q/"R5eDf_[6ZC"adLRn?l6l:l3Ddg?4npeTktAH?E!`&R+:@4GmV/@g$HbFTYLQ$8FHH6UaF0X%5+_W%je:]$`ujE;Y*":2>u1cas(;cdKB=\n:k.-O% %RPR7K2LTBs-OlW],ERp=Gm.lo3J,eT;`$ZQJTK?>865cmD66oR$LBf9nAVOMK=U/V[qB*>Pc.TqB*8]mk:&LroGneYB14j_S\JiA %ElC8q81 %GA50gck33#BVAddTSG4Wq[\6\6Q!BKMLd4si&'_Hof+[_<[j9'V!F1q&f:Yn=0^6OR7.kmK3Hi@5")cNbV%BV.;YJ@duJG+0*7W6 %%N6RE?=/r$[[R<)Dpr4t1!oa_-f.L*Ek>*@J7=76Yg\]Rb&g$M_m['8."^k"/*7I3"LIZm*(a"3M:(V^C6[XJ#,4Xd"T:0dE6nsb %G&Ag-*g?2IPL-`Z'_PacWpd!td6[m?)"a2fNdCML$)DIqkn0,5NTMj%.,[*ITHX@L_"a!M^=Y"B%7)PM=F?.!(%V64'!(lH-QFF5 %?E4I1$@o[%UdXrE"1XsnCI?=EP@`8$T!HAJN4P9DFT#?)Z8`inrMn%;D/a<*b9`Qo*k_bL!fD2halubRLk(tVG:ak=QM1Mtda"T; %F,*Jf8].nmD1`a2,g\M$efMCBF9X,I\[$;G+P6an7[;@7+8Tud6m]a:=eiapVRfRAphc#\X`?Z=nUs>PD^[$)JU6B.iT#l)[Tk3E %m5"e;a>:tZ7UY8\7;g:,-,=OZ'tR&UL*u'Y2=r7Z'6*,%Eh"!!6BWVs#_@'*(j_3S66OLT%P8XK@K<'a/87p$Jj[r0U`uC)!#E`\ %;i-AMQmQ[oRUATu/Tsb'EKN*6W?rds#b39e-DBX77A,e^_iUe',,=7/:feqm+`XrJ,1-*%(kG;tfhR5T$r"`r&MKS`7oln?Y6J5Y %Fk'k)A-5Hj>S^]Vf!)R]^1EMTiIu5@RA9qPodW3iG>HM6"Q2=TF??J'_MgcJa>6=m0o'M8@d2UoN!CeCo[oe:Nd/%D@eh/JUrZ4Kdl2ZF%"U6bf(fh5S54mS%2uV3LRZ&6pe&[M$651!"_jRO%h:[G6bA9hi#k'g3X0u[#r<^!h.1BC?8,28Lk"G8@oW^LZHi$[s]aFUI:3%2@R %A5/U*/SBu$OTYT$pk2V`L*AGC2g"KAj8^?d[A/MVUM)9BSJumtX/9R[3'955So[dR6q%JM=4*K*%*t/rdZKPr^S0->c8;QciApS0 %9-i9.aI"Q"$(!/\`+-5TJ>bu#GUd($d&W)t;3j-7X0I57iVI%:-t(BD;b&"g?V`Lpq(/qO&#: %9ScR_D0$YK>;oOm`IfJ9`I>T'co(0LY_*pH<>$=gVOYY:#fI1;4]`qL\c\-H9*S;`]s8d:H$%4n>?[+8,0-:u0\Qh[PhB&Y#M*SW %WEG@HG]#P8#aLSV;&;48YoalP5'?aWZL63DMQ5te:]ot3M)`bf>&]E'bS.t1#Q?*cmOHg_bQ-cNk'3]Ao#E;*i@Ll1991/Cb-kU%,-!jt"MhsCi %TP(T51de$*Jq`QX@Tc[H"cAXU)K)b^!sFM1f9@[M0Ujc(]aJV/LaaFu)=^D:R170Ok8t%kUX"MBkeNiXmI.tZNsO7aK?t?J/;Z\: %D?L_4#0Xm-1$cP)6.o?Y7q/rZ9=)^i:;nEHWo$Wi*Hb$ZFi@f1*]g&1g?PPuUU^Z)ANf4,b-qppP3P<8ern)[6BIY,R$r_XV!?=a %;`Q&';\Yeo+@[fC1pX-umDl5%M3^"$S`Gj=9Nh^r#Ke1!"uZ"QIDOc'V]dY/s\4IO6Vp/%0aX\`IWQe %@i?1?g*%sjk^hCOQL=b,*ls&NWkj@`KkSDrY?ndbMS`4IC:pO2]Gc>2/XdQ.4ep`M!hT$D`]=];Hpm#qF#jP^)KV!04gEo(I3p$U %*@]&cGphOl_Ki&R7l"#jclpP>@UMj6.^5kLD`#/1BFYfMl0.Z&`joqJE+qI6UTA/-:Bmj8@o8?O#I&1(1l6R%jQa"0K8[s?9*\CA %bTM\.poR[dL5I"&XhHG/_]XS7"+"YcmM$YJA(.A2"u5G#W?1K$*A:9KFCM6cIm;%3_fk$=O2eFf=[Nm(T@\PfE0VW<6C6&pLVTZf %r,"9`37T^=VY#[T4m50"J-DtfNDRL#(/1AJJ'[]+!%C#'?hTB1NcPHU_b;iR:;E]/.Kq:ARO6Z[/!,PEfl89hIB$?#/$f_.-X[\V %4c^9B&6K@0Q;"7>[e-Q'LplTbngH!LjHEX+3:BBCUrZbW0!C9Lo/d+7WuZc%$I9DKX65LlH?L:M1TCcVFd2q=Hre"p)PBWN4@Ht> %JMr<@WXerC$(aV0X$!`_[ugUS4nT$f!9.Q=I,f9CF\Gcl2+9!CMmjBG.^Io#N,ZRoB<&7nMC`&2659JtYH*3gNCi-1mmO?pJV4o+ %4!b%_CQd9hCsK;C.9Fib1Y^s97ELoQfr]>E[=UF@['Ht];,dZ]Hc*0l&=Dce7J:hBcWKP:#q0/eUEK& %aVN+&Q'+ZA5=W3lRBB%Xa\=SqA7aEh9L_9aeX,:Ps!PkGWDoWBC)MP.2kh?p$5OWciN, %^7NM?a.tCmP*gf]d2@-0:,A5Q&Jo1VIGEP'm3c>:102:R@S)OFgTe2Mf8;:lJqP9r"Sk;5),lbPG'fIlh5O-Jf9lD"h,qDG675+IRk+.knu`Eci9MUI^qAcV^mdQap(M!dRC./^WY6 %<_U^alc*@U5j8:okhqSoSI;Mu]I'h.TKncTdTbV;O/ldHdK""RZgTMiDr+d5I/`Qq_u7iLT?_llTV(\&EH^m>]/MD3IlR?$[m/`^ %^>6Q8V/"IDrp&bbBE&c+q4E^+q>F*mDn49q%KGH0qAOQ-@)n3PalcPPeIi*e)(eSlUnaF#XP.pKC>N+%W.Gs!3@mIrO+5,W]?>pG-S&p-_SbV`/V:8Q!=E6J^hNsq`9!0*a.B-+J"t)-n-05+A\SOf!k%Al<(M0^r\sG*+PT!mlHO%6NRieKn(lhT$$+A %h!=K3Y\GAI#0pI!h.S8dcidtfl]Z+P*pFA4/)Mt<2ITGrhp:LC7=8hq-L0?Z0:K$#U28I;n2J^Lf=/gI>0Mlp?/U_P@FOuhs?GcWTj@*oV.-#jk6 %V$"m'Q*^l.>^UC>FDC/1?@6+28m:JZDqbNYY\j^hU]j,9W`"JO)X2!$<5rO],bZKtOYGH?%X93"P.u7\Q+U%Zn4ccda[$T0:#'*[ %DKSfl3E6K6cclKU\?V'.fp5Yr=Z-bj"*+XX<+2`TY$)s=,X6Y'!pCoQW.Hj8FPP[Z/2a]CX&CuO0o(d#KHE<%d\[M %@RX(TM'VJ>!0seB>M$nfHoGo$908QEET`MM'2+eY!" %%!CGC,@f6S0ruEe4\u7g`Y*X@[Yf16P7uOK!@i6"Z`\-e<_'`pJ.NOkI(J):fUj,e,A_X>8_b`"?p]VLh=bBgk(m7lqRL3,q&MG0 %bWGqSG4s2.C=f,L&U<[L:sG'D)+D7kT(%d3$>Tl=%r?Ct/9)[OCX=;0`5MO&%p^NeV:._!LA2rGJ^r6e$WQli+h35jm\q5kJ,^T4VJ)>Ft&.FW-"-^')*B8#rjT6rUOFt\\%i!(j %XLG@7)ct(kV#cFQY;[9&*+bRmAScH.H+*h[oNQ$49u%qL=H$;51JXo0TTZb/-*5g\RO%@,G+eImWN4r`C!C(gRORQL+@&ECHgBDZEB1*>)P"rL %,\N88BCtiDK<_^M<9e(UJ"dL?Umr*=nj'$(nB8BpqLr*U@I6>EJPoRcY$u%a>-uM;mstJ(]%UB?[ZAU?h9b(jf&A5<[MjKhP]o2g %$5YM&4.E-MPe'ah%[8"_@24`T;+<-9X]VpKe@6P*:^O29F`%#c*7bQ.:1c)PN8`,@oM&cLrnRo$3/3.-d?:e@QKTTA/LlMh:s#3D\8=1p9C_gr\4AI>8\$&u%)-DsT90`5YpM"l-i(3WhTk,cG+c;b*B<[ph];#r %="q0+#`oYjhR^.D>esJQ?dV+Q`NLs7)dPY'JJ,K'go\AZiEru:[j45_eQ8+*"O,ED<=21j[M'bL0,Hp+eV_TZE.rZi=&,3MPI3;41OG"-:m%6G&7olk(A6u[G)Dg`AG*mYaVaeKclId=$/Tf*W5_)I1mAt*X %8*-sm-u^ZROlEL/GY-Z:(=gQNjW3hi%qKuM[;+PD:=?A505TC#OktE,^fF(">%LA..oZk%VI97!FRK=kC %)DPoqUJ9rUPgG8fi+tDBR\%YpH8abTG+\o%\<7$^gD8%HnQ7kLHCtNX*.2ID`>\(m/_:(*.Wr/.Y&,8I_n)PXW=2;>:<=F)J2+`] %.kjGoZg3D,McpI?N)C\fVO)Yhs"fn&'Vdp-NkgHM^!F@1TmR#NMY\6Se[WBteZE:PqI %aK;D^F-9YEof@[,.Tn&4d'ptb?R;a]m6Koe,3WDb=Pg=B;%#n\\K2#Ql)MF>D>eD_l\5Tk1E1>qo^f([cYsmag&84@8CE0VkuNCS %,Z.Kg_us')a>G-T/aPQ!a_P!?:jSc?3`q"f*EES9NHs%V!@iB&[u7\C\;#,nK9M^_9qjAqcnOVT:s6dO)Noq_91?h(>e6q#*SViJ %*K.@(l"Q!^"3]J6e"M(H6cY#u3=MkD(SJLGI9j5IURI7ZMD=N*N(*)NBkiT-dhFo(l9:,[AjY.oHHDpp"_4#]k"T'j1iA/X"..3b %^f%4IM03QQdfG-dlb0L8AKR.(\KV"mM]Xb:rW6+?VroQpQkef#Y2FZT8oJdY)IXjjfkh5oS.K'[d&F/$@ebN>EitA6!hC(h_5:Xd %XTle#F)4q%<=t.a(_6krqccX %pNp7QgHMWtF?TU:R;d8u7F9.K=A.st"h$K^W?t)K_So\/Li-qJZNKd>Wa8orgJ51C3NSG!2lR$C2179U_Hfg9UO'7p%g8i_Ib,S!'A_ao./X2Cd\6JP+\4PoMh5ps4`DC9j8,jgb@IH('PHnsR!q6o*N]"b[I%IE=P(IjHLm+b^!7as6Jei[ %4^"9^'l!0>KE^D75TcL9:oR(?.-n=$F87uM%[8"_Je$@Y5TJ?_otXiD"K6FmhR^.E\;#,nK2\1VZtb3U8V%8LKK;(&kS%4^3dG4'M2ERLn_UsLmD+p %,sjj;>atAAhqHLa>\Sn7!EA*&$.ctZ$`nEarMoU"cF/1LDdD*]/r+Rg4A+4 %F'pGZ[_t4IftV)/"NUjpDdD*]/r+R:K;MV0m2j&l%`[PGi"8-$f9VV,AaM0tQkPW'*3G13_\r68alV[hBQS)KY1aX-BP1F+_`r_F7cf4Rb]b+TnY)P4=6-Xs %]YKH/\g;M=Q)\7"f`@A>Q&FPq[M.4!8Lpk_-p:DDG-G!tF'(fE0s10moI:Bc\#uhTY$p/5i+1DCkUsNh(TH8n_!%/$g'tH+X'P'L %c67:sOu?OOA8aJ^BoT>!jl?2d#LdOh9;GU[dsk_T8m+$PXed,;iS4k@A7ccU/f1WXeDiM->oe0ql;j.Ha4$N1>nGUeYIE:Li['L9 %[C2@$1,#mbJE&U.Je"Y=Chp,[[(,?$!KFV?>M$b2lQ4l\! %hfg$DoqubHmbn]\DX:FGMlQ!Fd:[(te %V3Tni79,Z1>MllMb@05Ri'^RJ''5^aAoC[P**>h3,ePfUXK&SA\E*.-;3`H$'7JDOd`TslYX+-XUQ)?7hLl4SES2+#<_YrHF# %S!$U3RPjY=.]ao.FJLf"<6AtJUha2B[(=<3JZ]oLKD)l*%V`,Ni]?"uZ+/)j[XD6fl^@mQ8ubOKZEIGb\kM<\961Z"H&0a/mm%8`"*W6S.Zkg>)a@DVKQFh:speKO:p?@ueienQXgEj;/,gV*`IlfN5Ubl)^G=uO1r*YhfH %OM]Rf[hBdlf1LnQ8rr_H.PVi/q?ecuT@]IRZ>F9$)m[BHJDO%Ci*IqQ@I7&p>Ru2c(=udB[Q$!X=>r)3q?ecuY/V9,be=.:"8>tJ %GS.RDl(D$V@WVb>'j0Z(2Q`sXD1P`\["]l-#P8a5*8$.F32F6fMX,er^u@E@g@ertU`0Z2b#F<:I&`cl?@g(HX]S36;l`IkOL;(q %h67]i"7jO3Y4oLZo$4U/g0q\sMZ`]W.1U'qWo?(t/$QP/]!d#d%dSiNV_SrrnQ2c)?F>FZ=t+]#@S+;d$4fi`KO.Vc!A\>.2qJiA %RIinfY]c\?^uD$#p^/RTZ`\-eQG^;2^r\.HM!D\q](?=\%btiri)PrNXt$[6/W`Em-$of]Lt=54]P8DXL3Sce"+:=g %#O\ut*7eFr`V%#J?u`l&D>Ug_edW'`ALmoF/GG(t$7l\BCSfr`Tp"HhX/\RHS.(ko/2d5EC>6*7."Z+e6E9eD_ %l\5Tk1Db%OXk[]q^uE0.E^0U+s-`K/\2K=m[76T*f/>($n(QdsLrPPqedh\#%Pq!VB\`":W[t,R$8O1aptfL.gp#!7At'gF])T`!Bj72%B69-iY(_7 %ofs_@fIW)g[iP#(51S[-WrmYUc@NTNjfhoW(#K*pIDts3[I*#>=LU-^H4(3=fAoQ:?@Bd[X\K4GFOUsF^"j8)fd_,_r&A$q1D^'Ch; %MXRZ_gW/E[DJ3u=o*mBhI@X\mAI4W".G.phk,m67_3).,VMA2Z5q&9s/6\&LmG^rgT]s6%C3j^5Z`AF$'qr&O4>_[p`?s1/&&KqXWO]Sh9b(jVAl\,WmQE! %I:W_>;9gqW?@?2?Kb5/tkZmDX`O&0gSqC5$i"T50)AZLmBmkF=/9\-_)U5bT3Y7i(dWK`\[LZ#nDCBHZ_[U6MPStPZY26TW>c3"B/@A&o6jg;t!"WDIqPV7GC"2LNQ%ePl!$E4&bpDdD*]0#N!g#%);`NR;Lu]@nbVCfOB;Vc+HbOGnSr0WJBH#;TF#hPIr&Me!,[$^(fs%s53\ %4BTe&Gbh$3V0B`*?LaQqSq9!S7='UgV_[5NIQ$D)YB[:;8\s97I[:;k;o+T]gl_ahBjno^Mmc//BKCF7*p.4@Gd(1>nOTdRMXQ(r %^#D->g@eA]eftkgPlWi'-*_b^Y8YFkBSB?_[rUE*'if3\0]`$/ZhL?AOX7tukV&n7TJ)Z52A38Je"9fY@$i;WUL=A5B@#;].TNq^ %/N#!md.c/,n1Bri.HQ[a9;_PjN(]ut:95MN]17Lq`ladadLnGg"n?DLQT_S(?Km#@Yj/j%oi1e8]@ne67(]mE8PNHZ0)itW2[+A% %H*a6r?Ko;68d\8DHh$lM4V_(&HTJC^?@csT8)\5f!#hcpcta0YC9R8;.?i2(>3i0['Bj27oTS[r[Ui%.CNeX8<&]O)I1aVtp#Z>;&c8G*"kqV84Tk%RcO&oip69r5lBtY#SBr5&38jCe-D-KoilcSdj5^*=eaY-Y9[9%ZnXce97ePZu_hEY+L %JP(?Q("q0(ji_KQhbnm)NdC)D?1!mhbZ.R;?>D]hIKj*FQ%$/IgO?]@f9JLD1>PY^"(#&UAHYM`GqMAJjU&1W.>bRE/?XRIl&/(4 %?1]XaD:!"FCCdKM=F)Y>C8HPZUG#&Ik[n3aoqIpmf=%f^lZHbLSkOK`1NoKpee0Ms\4e+RYn^+U/>6,,gM67%:c9]_b&jI30\rbA %EMj8s'jqoq?AEk,F+%gd76R%="(cPChU&ZIMlj[qm(ehLDD2AEV6"G5Q4_>4Z3\t):I]6[!c7;k>(?dm:3,e![RtYFY1EkoYC6mf %XroFlR`!;C\^B.ie(Ut,W9\B-qU[=7@WSlaFS]2PQI73?_rVeoX4WYP)K[RJ@T+b(A16#<;ll[l[CZq"lYRZP3_]E'V:%t#G,ra5 %:U7FQ]gYN(>[@-RUt7oQQ=%l#lE^'?>!W=(>BCWX)5u*n/rZ"f]=KPt#Eju%[=na5&b`$P%bT_/46-lNB8_)NG,Il$m3Rg(2$K&_,[H"H``Q7qAFBT>5Hp\[b\MuYH*$><&u!+.S>X>[7X(&Y4Yb5_HK8R3=H$+Q^g0*;6.&HH`<^&?!DRd^@g1\].,BW %R*-ZF^"1=Vr=$7e/cBKigL7Y@lfoNRPn$;pW4anu,O>eg2ame-d0dM@%gXM%NDb4-KT#G*d(DEMO1dP=/"SdNcR=h1L%$EgR9!,@c77&h`LG&<045Lt9$J`7joTj1BimrZA0c3U.+%AMs:GF7*M %-,$JJ^fFKMl-f%7o[Kea56pWuM$f$JGW>ddZ5s^QLRT3Yjof;uq-:f<)2R!g-sTY#41:+i8p6T,f+,kX3-n*Q`]4TX49;o`0;/[> %-F'J2*tB/9L-V8r08qm6`2'NQ@_ldF[0-+9>MZREJho)aZOn5[/JK$<&s=MO'X0IUnLHjlEDWKi_NtPlThHI" %MuIs]!smhj6nKTDP/V+^*$682F_#ak:n5LDBbsU'Bd4VQbutL3!\-=F=rnuCd?:?Q_0tsci\E_K$/r$Xo`eIt@Ngh^!X=\hP2N;B7+UeN;b#pe_*;T"9;=46++\N!BRp5"F.gM`i9#f[7PT2FB/f'CH1#d9!fEo[s?oHs-#(08]D?P`*ok!O2$9e,A.!nJSAH[7])+u(C\)6j6i&$a)2M_DFfR>mEIZC/i^pfcmZ/64p5Fc*RIsC^cO73sfkYL+8YM]BJr1\<)mPjg2L!0DV++HEPe+NSopufGAmejt(Hb]L)ji(6qdsd_9c2%++DpLTJUF@2Lk%)p" %oZ-Q]pGZ_dn9;55Rm106[_KZY]4E>^9D+4'OnC=*F`R#?Rf)?/(0;lMfDpZFH#2<\J(d$VT3bsg>0WH3^X(fprj[7Qgh]((nDi3t %%mSog?A,\4nPsu8L[Vskq"WmkGC&:QcJNPH#IJdH2-bY2J'Lf-&$J3)]e=Fg]Y<^C[\\@:,4tW1o@m'1f/,>`D_otK/X5Yro?I$% %MbnkK[W+[uRnYsf4hnip2Ql!#m*k-U))k:D^%a([Y.qY5^HK8gU:$86_Ie9Z^Gq^6S3uV=P8eiIM/LN_H-Fa_Tc2\Na/^MP.tD9hnBq[4Le\(@6j:="B=F7SkAo@(t.l"UED]%U3EFaeJb9cBmI?=EhW %DJYg@ouFD.PM>DmbtD_%?gTHc?!i&nrcETNk:/U7"AkK<3;.:)3W$&TeY4`L$Ib_'D5kD5(5;"T.81h$:5\spnYb^E:Q*B&W(bOC %VTiX]LK(.q7\`C^HF`WL1o?Q&0,i<60tmS*gc)jG1X2Bc[VAP)%;8IWf!#Nce)Aupc7Zj0n`9ZA^Rs$/ZodOVnRp>mGF(C@J+<=e %@_>'s`F^Rse*[$NcMhs8!]-7>;tR2!NE-#XjR]9Fk9j>dG9>6k$Efjoj8BAroDUULb`&OI@-m>hK0O.!]MO@1jjs(s=iJ!c@+CQ77j7Lo5S>P#>c;K!oHs1Cu7kr'X;]Y';Io@34a+nS]W>:J;)e'=>lh9N"GTUc%0%Dqp1S@J1d %nCFnLMt>]FFipcWWk/>];PP=74B5E1,gN#[k1?IW7-\TtXGdgE3V;55oeTEW*de %-GM^,s-k-%4%tB@j9'3K)0uC!=:6##&i-i/_h!tl;L5d:qWr0P,l"M5MX?C*pjP$eCbM^@4SPu@FFW-5Prnj4jQc$sinLetZdW'go'.#EmqpbEY^>lFb$E*.W@aLYV@n,tqC@q'\e;JgKr3U_Qjf[C1gs!B0e8PdI=LZmP01ElK-><\HZ8Rkn$22D4"MrVQ3@o7,"]5$H-20Mc'#=NTglkKD3G\AA'MFDYA.C$"XHA9348l,gp/+0T=q %Is3JO5)3f->OPI(1#?@V %`/GmG3tqq)492fiCh'f9\)i/PDk1*KD]m!_%L5>ER/>J+\g7ns$&!QFK6`Z3&Gkbu6Hl.L>K[n.3"TQ=gipaHZC?CVF0K:m0n4r\ %+_JrHl_UW5%trSM0?!:sEQksaZ\cIJS_>\3nn,$$a*nZ$\J%c6%dbq`E1%"9kI.n(N1&1/c/OR.fEG!jf[_7(1)_$aC %ZS/2\&?,I4<;9T/W6MAL#h226('=/t"R$qK)pD\<*VB4KTu,MtjZ@VhI5bjD!r$;t&lDmOR8?dA[mG4CoWPFoSDiEWINIJ)Tre*>JTh]/:ZF8Y?o(qm*:/ePCYZchYr'>JaeYnVSQK1^Le/#2gF %0E5DHQ2c;5ra#NtX7D%Zh2g_^^NtD'iV`!/QPb'kqfm:)qotXHdkuRD'eL^amTn"OQFQ_^&W0h0>gH00\C`&4r+tY&Cl@*>-=6*9 %Ib#1;gSu@>Rf1eBCG2.S2I5Wo2e$"[o0Ze.gRFN[%sH9E)Lh"Upmq2cUOJd^Gu"=7` %k,I5Q0[ihRDWfM^OO&Do4n[TNAi<`-h?d6V*6#m'g/rT@If&0eg$K4DioeA2G/rtK0W\NbY%CC9nQ7u/a)ZsYcRg3]`FHH'//OB/ %ccK[RA-%(D7X[.T6nDZe`Cmad.GnSXrl%O@8OM9J)p4HbJeg$$l^N;<0BG)tleV84^-DYeiU`!8s''iHk:U0.DtW6J=._\6HmjU, %[keD*&$<=fAOAOBF#?>F(LPB^B,;B9s5(8[Mt8$>]IeWj5D:kZRhmr!^P.H]fB_YsWbCKq1[`T3#E(V,L!OjdXDosB4XJeYlA(k8 %Z`C9eS9+DSq:5B6+0NBTfD5*Yg$Mj"BCEUH^,`a8e(_1\R2.m5@V8kMc!.J0bn>=4a#E00(E^PsH*%('Db*>^k*rtMBYE0?Q;8UK:(,7UGnYbYHA97ffDF>&Hn=W2NqU!Z`E'-WQOGT;8:Q8HMp6W8 %:hdZ.@eGYuG-T[P(>Hf'g+M#U6+..ZA=s6=Z!AohMoBkEfIdro`Al]@;=`S"mGd+H'n6H.l\k#h3Tff_lPM]sH[1G?@V\[lD^:J8 %9j*XFPl0.JgbU^eQ^%F"R/47gjNj4i[\i-#OeVNT6T;K@NEr(3roN5=:>>+FnZX;SIsZFn;I3ra0D![lhc=&ARt>N0)gdrU\b3%? %.4b"uH.hUFK]ck+;Gq,X"C>g32c3K8gE05J?iPIu!TVH_:$Tje%[m.gUc!'Rj5+%CBh8_^\^T4/E8(36Dt@D,(It8=;nn7goi(n: %[bg)IV*iiV5(#E'"[p*cHU!Rg5+F+9dP_"[Y3kBqHU$L0hin\d/a)V.VZ%SqJjg4(3^%.`qd4/-_AS=*2>HI<\^-@M?:171:2QU" %^X(f`M'q=q0>@]Q@gtYoc&-Al&3a?:`s,]TUaAN#[--\aQbN@E.*3?3.aNrq?'`p@Kti>-E]JZbN&@WK=)i,Z+Z\DbA+_n+N]=W*@ %GJMM5=O>[gbO$WBBh.OQY`?\c]7)cDCWYBPeZqPs>dY$,gdP_!d&gYsVF>-$FJ^Y=4;OLPM.aQd9Tqn]M9`J2?s%NJ*RgG5:=R[c %2/TDF[(.[%%V\Y,(UGMa>B]6IV.ieq(8^7A0k+MYY1b^Jmb=a$q)=s+buqq:-r0g>qYL.$2^^D[j.\EuR+Cn!.`'HSFPU!YHlEst %S+VUaj*mIm@r!mgQeHeiRW6*SFEFK!YXJ]Y_aT\+kul..rr'gXks)r:,LH,(PLK-XTDn^-$e2*/T4U5?:< %Y/p&3]lrUobf$+?jq\K/l`mjp^J@srm:`s^oSYE=`?tIk2VDr@<4aa5c@.*X>Hd_T"`4-ChAg_/l1*_lc`ero5M.97YI9oRiN>9p^V^e(_Xb/5ZciGgjpjR,^Y9CPRsL$A7Zeoumr/6t %nbVNe%aS8U@M-MaofW2tq._*-R\CEMaIk:l^f>$)shLiSD8[nNBk2d6q2Ga9( %^N2V^\"-I4X4Tp,Fh=2CT0YX?q&73CNJ'RBp2Xt&)jC$MGFsY]gmm:$G^23F]`#^j?Cs&+]^.L$Li)6b1T%mg]PKJ0h-)`10XYq0 %AIC#89ie\a1k*./4.i]O %s11Qsi=02C6/5CcD\\Uf^YmOuif\c&AEiTk6537mJ:-7hh4._uqCnZ]qY&k>K1(a%'q?<`h7qLK"'Wo)aafD<,m301&-B-*;RS*J'dJmhd4""096+S"6@'Y?!mQ,FFghBp'H+kp;?]+s+bfJqT+*CT>(9go)%a2GJ?7&H2ke8T&/5Z %qoefc5C`?$mqi?6Aqcs,qpAXum`G,81Vt/ktQ@Jh)!rDY_g\^$fs82hq^%]nQYOD1;\*>+!]U*b?#KH4<,0V#TVgS^Ma;ubk %*J!d5F29UcgB]KS&U>aWt]g&!Td,gVtup)SZ9)G76;_j:4^$U]Xo; %Q_sSo\E%A*i+`1nX=j?C5SM;An9_'K>C2H0`5t&=G/EdT]Y[7NZ7.E(#,BN3JW2*S>6^GUlejl-9BUGqU?1je%XH#l29J`#YX=_C %)KI_AoEXK]"V_KS$bZEAkVNa@%U;Vl>6aE`W,`b4+=tSrP<&uH:;:m_/.A0CJIS2?8dA[l83idQ/3f5uqQfdBjB-p7'6' %HusM>&_$p*#g:4-;58WV9aW/L?B^>EheJP.H#50Q#B3rs% %Uj@-i9*OJg6<&66hbU#Ye]?Sdje70.B0bWj<4U[/jh:X]N@IRTd13&b^][1VHV\lq<%`B&YK&!jQ+sjNo8G:<=RjEH70-S0^g<)F %!"7AS!UgEIQ%.n#mnIKsKBmQtKV`p[,(+;+]_B>'B4R;2ic4A[&L %dH2=%)FSk_(o^'[[?2]^I;fqLAl;_Z!ce$]rhBNGIO]'KLL+hM`P$r@8*a3?HV3E;Se %]IE'?[@af`6qdBoK[grWV?^I/(fufp/292s9GO&>^Trc@Jp6>66)U!6jfW;`AXX8(%SUJdp96n::Tauk:se66.fYH1Y+=a^.mT_+ %O;hA-g0g+LAY^3TTN<<$dp!?R7:.KsVseJ2S?u0_bS5T(/*A9J#hkid(1 %UG5E6!=o]4Y#$.7PL^%cp.1c`Jq7TI,NLgK7#?KY6O0I@a<5H-.)L,.7)^A1koae4%\V%n3TR:_Mh3r5'5jnQJJ`;ETX$uP/(fu, %ijbkk=m,,%Tl<#rA6b*P,P/p?LGWT7\4apC4.uZK';[f*+'dQIP#XcsOGenW6spR!85?358cjq\_r6Zn:;rDD(*Pk14,QgiH#=g> %pg6DA\t=8kfD@n'JetXmD[J!Q$^=^Y<>IV]oWUY^oK-r`'?t/W_ILi_mntW8pnnd47W%95(B5la[Mi=B^Np0ITi>4=u*Z=JrQdb2(G`L%"fm %iV2ddQN-HpU)a4(moQ1'^>JhHk2cL:=j`JAbJ2auW`Rhrq;:PG[AA.7_._"EkUnaNn:u2t[j9qYIJH/6<9/-sR$c%AllBEHqbRJ] %4=kgEYD_[lTMi>oZ&A^M[:$a!3#@M4=oP,;s4K.sq(_uE/Y-St'!q\]XA%Xr-iNmlRu9I7^5a.nBn"sSq43s*Zo"XOs=RFL5O4"Ja*:q %5Ci&TJao'A:hW*>E_*mK-EN-P?:W;bp[JU5c6Z,RhnTs@(15-Y-5J6s!`mST^>-S%2m1rNbR@ekNQ0dBSfJ3DZu+jFOqC5XPi9e/ %"m583aNiaY,(!sJX.DBQMg1o\`Y4@40/&YW(jsP@a$H9LZ!pALMX\\fCejc9a-Om=\=l.%@deB.(;DrlcQeF5+iTU=L'.L)+f\cUL3-Rp$*Zfb%>;noW6t'%BnI+J@*YmS6VBKO\SO' %P\I-g;'UuOcdVIQ:4E9+L6Va)`L33k6g$"j8D51ON>UcOhbKAN6'TCdM7V<>YR"\:p<>:Q,frl!f>ToC[WH$75pA8 %a-ucg9YcaeURMl;YDFhA7*6IWch-;BQQ8af@tF8@kl>hq4Ana(p),'P?97aAQO:Z.+H,1*#U=1Z;5(F=cY6S\H*1*37o0s!tIp]L2Q(DgNKn+cKrK,9?ZR%\1E#*c+",T:PhZB %MO\om76DCV'JK,-`n'H?9"^EgOEA^<-D;lZ(d6MkX2&$*<8S;o>'(t+P67Tn^JWjkKX02=.S9$8Lr#2-1lb2.LUKP!HT_QN5]fqq %#FU:5G?I'qShfS-^jU%-;f)n&'lJ/lR3=p26gfgP(WQDZ;-^jReN^soT*67`'834q[2&SJn>EQk3%D5dHCl]@9/2>J=%-P/d5!?< %e\,LdYVK'>>$Es\0+)8qK+$'a<'k,fZm83H?m.6S3k;X:]HFb)P%8+'0!P3TW#$mdAPgSL]lK@/OK%SZ@64':.dIN!3t^Gp'mG4n %a.eM3B.Aa/I.,Gk8E?FK)c*7W*XFbWP`)LA#U#!$6p#c;2W %Ulee&87uPt#StG`Qh#sBa9m,WMLV#nLlHpc95p7A[UJ!9W'J6s;SX_i6+YG3NECV9X9@T_,-if\n %6BLGC.%ePG[MbWd?EOQR%'3DRg,Ndsf*RFCfa]qO@6f$*#`[QE6uRb:^f@9#eO9%@Oh#.aCfOFcC`>G*Xr"=`.1&(L,D,Ru*?!\o %5lN^:=3)jPP@2.7@n#ZL0^BH]<#8usXO21UL;Ut6;/OaEIF3:o8Q<+7c1U_A$OPB]VCK*L=U5nLW$mSL3BP3i64Is(frEL;-=0PM %nb/s7-*"C\^=jZKGtHYlR@rd,k6.j#`)1u%\.%uho4G9B]I_X;;&IAD06'*T#K(lZ'2V:QTDi`YMI9/lP8g?EP9E0 %ZTG$J(pO*\r9hJ7?iU)\hpI>[O8&+[hCjAdpQ,?f$D?U]D_OM88@Q]3pkk1%M?ZiHJnId`Oj7Z0UgHE("FHVSd$B768-DN4iXlC2 %2C"J:H4#O8e3r@9*C/b5:M3;pC'H!QV6cI-`)#+7?)9^"IL^iI'M)PurSo0Q8V1F2Nief/m%<'Cdi5lc=-3bR%XUCqTP`rCRbag1e2OA%;D"G`"=V2Ac %DhsFKY:m-t;Mh/0?lNjk=Q&O,Wo%TP=".Fu>,0OdY@8r8V9IG'bD'r!pV*)u$:Sqp1([/# %6;bg8^q^j#_1p%Jbrs[>g^B_Ar>A1,)VcJ,nc!HkFb%BP0_mGMWdH?j)OmfQ5Sl*XTHn.kL;C)AN/eL#@N+rW&SL\=mEh5oei%k80+@R %Xq@=%P:_R,2c>_;9'7'-'j9B6a:D=5bmAMG+t6#aQ-Y:3@N^o:a]hVr>`:0l!$kp00bJY7JcoB$8EF1*l%;i`,EC[h8n7tT'iM'` %Pn(Su@Hi$=S]%3V#tuV$&HT*+7&n07kBf*E3KV;pHWaUt&7*,:YC&Z?=L%u3hE\Yd5tG3Zi+"[UBF<^dSe'*`K8Ci*Dt-nt/DnZW`F6"pa[lb9'0'g*ZC`_ajq%D`9pb`4Jac_P"6$s1d2 %.dg?4()CHkQP+,],MXi_ %ZL4t-Kd;2ll$+cmc\_l]$"AHbFt"76_MJjM>.&!nlP1"C6;Bga!"TJB"3D(:h(i8nU^u%1!bn^N2GoJpkb@r@NsD[uPn%;S>Qi6! %q4iOT+Il70Fb=1S(n]/OHRU]nMi'b@Q/E>!Jga]nJ0\>9[,KTWXpJ@O4cLk!@).)SKt/+Zliei7i?Y[*&49?XLFUr\-uI&9/-dh7 %"%PQHA'lW^AOAj:E^p:K9?Io%ZeC6fZG0g*#8gc9_5n9iNoj:o%4J>NZoX#04(]51#_-YO62ubJ%M[\&;?90-aZ[_"Jh+`26UQ2a %mFKXUO->)uK6odW)>.8e#Cm2(9HA-!gNJZ*ltFl&k'8jUQ$qo+g4==4HKW,el#s1.P?ek$Y2N^lO(c?,+Eb\IT^(F[6@[[D;W=t\#KFg9+aoDjDcaZ).0d,FkfS]fkdH'Q;'m:b*+-CN3^l^IM %ae9Df$@_(B*N7`?9b4o+/X@K-=,k[p"fS#a:mP3Dm%@5nG5c1;A]A,Cr8Ddr%cQ/#J?FGG*C)SI5teQJHbV]U8IG>0'.H^_d-C="\^./qONYQL(Jh;S;bX %GB=d/bsA:AOR4J%Po]+-J];F0+I1ZUf5.BQTDCN0i3noWXE0*m45LY#_.1sT+b*Q5'W0Nl.E'ki>c>nDejAC&anZsl8`YkPQGnYC,K\NBIdlWcq"OG+:`Lh'J/ %!O3$:@GJ1$(Bn.n5A",rH^f,NM%g45fG^k?M?9p-]mq.kk#`BH$[5`EIo`,u#E^(GPu8cB.H]?>ej;aOp`q*hZRHLA,Z%.R@*6\i %*&&H_k_R)R32iS0kWJ4DWO@"Pt20%0/_p)+k..OR4kgVA]/UH_,a>&U8c??)M),>9]m(q>Mt/!m.V[@gEA %dF(b2J.4o#9Jut&*%'\`!9A(*ju5m+9=.pEVZd8h.[VnMhj:DFe=8M?u[u[ %5j!,rdtai^*qaL?W+Cn7d7RHN6@f@\dj&ZsO0e>?g$Sb;k3VI"l,k46XtG=q<@%bUdS:J-74?Y@ZF-8+4ea*(r$buA@C_]LKm7ai %&iL<.Y!EXcZBen!f:TelM/`F.=QQ6@[:bm3gH+jJ*]NNcG#JH:n'_ddG:-a9]DjZ[0'lP5ajZ\-S3,*2F$)>A1!gakEM6H %$"@2dE"uo2?r:`tQXj/GN'QYZ#R7?;&Q2[MU"l%u1kb3oPVfu^9dF*3A8FeNjWNqK:D5.nCKM.d#?`uk3s5X^kXjMUj$ZE$p2^L8 %C3sm;f&&E?37&EVCF+Z_L7kH"%nX`3$6]\LTNbcD*>tW,kc0Me'Sg7s/ZnSU6t_>QTKq02ol2Xt*Gu0ON_%e,;?2;G:).'IRl`[+cLQ>lsKqils*JaA77!+cR)*98Z>5Vg#r;BA+S %M>'@lKdj3CjUmAFT7olb;*-YkP)c-_AC?/'_tPYDO\7)_e"31^X594+jZR"=E%VW:Wm";7&D"+m#&Da$(sp^%YVU2%#)_G%-bNKu %%@gob,@?2UB_;%@*#ocTn]*f!a#ub\M/knD@*i;H'M#CGa)L3iPr?4K$ee6nKTr;CJdT>R1/'k.;;S9sd`Y+5;3DO5>L2DW7X;&/ %BePkt6Bfm#MK"CK-Ao/X#D`%Ag]8T:idF^BPTfAC)oPI]UqL/>068MVik:\_h^7Y5NKAN[Oc,?h8::IRTSHq7.V^2Zb!SNAA5Y-J %A9T;FOsjDNI&)feN#D^0;CP]j]#,'dh=M+"d!=%T.CfGd"E:VKYuburHg"J(b",'K$;rR/QjtQKg6THN9P>;S_M6(^uc5o%q>gnMnU*12>a#,HsA78Tc\asViFV-m=s %,=L*s+'\Y6Jp/;@r2@Wj5IU?L"Pl;NplRs/F.Dp1p(?oZ^@m['7f\p0?9b7Z;;EXWH%15/,7,B?D!duBiU;i.I8hG&+'8@'LcNDK %CEJC-psHL1C'X'?+":g_GLo#>@da6Rg..=3nAsM0/Bmk8Y#8M0("Js04GD*aA.-8F3pK/9lLeB&1KC]KHn>mNW+r %*f41sEl,ZJDtETb4MKaUA@t%5i9cXDFrs`Rk%INh#M\5_->U( %7i/h?JbBeOp[EdD14r(5]Tp0[<5I=aG($#WCrMM8D;-2bGW+,!%' %WaLq)M'kS\M53#=)hB=)!%pbG7]m:/lq@R`!4kj::BCY*p,lCf_4u[iesId3Tsg%5"5gpD)dguW&jq9SqojfoP`:>S,V$H_@)k1h_GQM^\cds-aA?@O4(YCVgb!#/ge%W? %PTGo(`B!u7"?^6-SuYl,n5:(O*Rrj4+[2IlEM7e<1.;iS:%b>MRM";A[&!.XIU?Q5Y1O:jJZ%kI5rpp22,K?pr#`%B!sp9bL*tX= %C!0bIU!;-/[I+iBI$JXI%5`Dj'gC!%39[_B'0UBr'@p?iuVE7bP\QT6.J(jtRd6o7Fq\7N*Z.OS,8n^7g(+N-#XX7Sn %dT/**Hf7Om\M8m("TV.gmKNZ,iBAE1;(R-tGtl"s;YDS1ND'CfGe1`,^7s_on1*oq3FFpW`2QF;14P$VgmeM2Wg?p8.=m>F=MhXb %9<>1dmTiB>\+V-l\bZ\34oCiU$I9[92*H$I9TLqB;S"J'Q[01lVaEBm47mNGR4UW&Y@`.oua+7HP/+Dj!j%)X$Ub1J$K120&(8EhK(1G`_EJ2JHU;gWtFQ9&5Urh)oE+oHk %jZ"9lPkirT87/;RH]YtX)XZ4\N2VAr8P&s.&@C[Io8qn*MpUP&Vg%?)@_Ym@7jgZ"H2oIR%P\P?M6a'EE*qFHetd6(>F:b.Ze %@QWc\L'B+VRVQoj;mmENM`_[tD3qIW=dk%"@X1ls:L%V&,PsuH0I]!iL8(YL@$P719]e?HPG;4j3WnX#U900MJn?M%>2M9f[Ih+I %64]BAjf1t*&QiHW;$oq>7O?SR$q9DWek[k#U''#+W`;,#h6g;Ap6;\um/6.,iV$8mFj;5UA&?UW]*U0i-l*7%(P1jPI%_\GNbU(3 %!0sOKNBtq_gk!m2#e>f$Jq9sXmsP@/'ZYDkPM[%a;^hG^JiE>+2?WajOOt-he]F49%,dFEBPkVPLSlr?4M8#DNY>!N2+_:PB%ik[ %FUMFfMiR_@lCh*)N29Tp!CqE&TLSZE.[`1es!gR6=cOcu&s10fq?0nf"ZpkhdP5Fu'P00m`SZR]3tTRZpOU6s_!;%V9b@uE<,u&P %Q5=4/g1Q90M\=u,Y5[YDLu>LZ!M)[2u[d/)]/niNYD5mjc"!l9*d<\2td7b=%r<>ln %EHS*a'*Od %WltS.f`J!,A;>gUqu[mP&YRce5?':''5l4-$Wh]:CsQ7lfbB^p^#Rh.4Q!n.NEDqWbuR;V?V1*3:(^&.Ts75 %WaO]-rXSD^YMhq%ksfctQ3"!2i$Id!Aoag%nm]Po!&clX8W.9a4KV?)5__mbGmZHKfE.EuP%LAj=WCse_A\S/I!]1@%M<7BEj[WP %;4q^e;sTin/V)`ua3%Rf/&)ji,h>akosIop8PGcar2RjVCT@%d'7T*`AN?SNIT!r4+c*a7X=0=d%Y;>fS0>:/H$5fmPFGXC%HsX* %<:W'$Y_$$i1"DMZnbaGZar4O771qq?JjaV3)_8+\A4)+SoGJB,]@%O*$:#q!d^36"EY\O$.DLCp`t6OA);P!\PeM,#G@3 %X:-"Q\OMIH0Xa"l.Y>*I"eK,l[M[5ZJ>S(%Mh+u),th`_hiFsFM"6*1a;ek=9>nqaG&;n3?,8NOG"Lm9D,]/WUr3`%8H/nloZsku+n,-VT@)DPagViB"#8-k*a&J* %LR8H'9,@b9Br:BrXSVsC&S*QjZk;;';h#4%'^?++,6XQTd6i2mBIZIkRATor]4,#/^0WF./86+&$9/ei(<_dHkcVO+/j@ao>T %9u_/a%QYZ@N(DV1T2r`XX#nO!rB?6?*@ZtK;5iD"WP!JiIrQHpRBf$gPWi&Pbah6KNLQa7lHQ*"KSKo@md`.7lM;jr'Ur6p99+[e^fkoD/"&0 %[]iK@D]@;N)Q+6.>.[eIKj\eB.S[@UK=1s;"EZEmYUM^d'`!PPeUfLU&[LJDcIc<0IR6tN@_c;!KE<>E!E+dK)869pMH(0%->R*N"ZT"&?LTBKD.*^Qi-;W %RQF%aUQs<',Q^IN-B9%`MRBV\$Nd0STa:U8\O>KaX5J;\kZPf>W;[Nj+=-LuCn%.pm%qd9ZUJ0l?9m;Mgt\,siL0OdlJNJ4ibe,7*1&>)Xo]TjP55>0;8q %h]E<>"8=G&,__1t/a]_LEMad,OFd`t@t&!9O.%b&Fq]d>iK:P[#7.6G]"8\Nqak+@>p#<5TVChOeD*Gk`iR7E0oDTZq?*H;3D4M] %$5>^eA-@$l4]e^,H55@Kr!)S$._Q$:g'KSlk]%!4#WD#\NrH[BpWp",oEI(I!OJS'E/kp'8KemZn$4Ws]b?OkX,B?:_\S%kPc %>l=-Qp?)9;V;9Kurq>@Lo^(>]PDf%5++A]\rr2pXqh_m?X5j3Q59I(IDVKuDkJQWOMm:OWanHTa^]/]\rp3Qb=o';Ac0("CZeN1l %]u-&_J,]?+k5D*ed"CWl@=8n^>-2AmN((?=_Y,F3Ou1c-FR1,jIHdZWW`H.:T:S+/qZQX<7sE,eG!=)F\Y(o]CCePKA"Ng"23;e5/>KF4EnMT1; %-dAiT7/CQ*Gp:n62;6THhMj[\k#.=S5b2n<[3l9n-+"POVQ\UNM2/=b8jOr/W#GVf+,ik,rD8YCdd;Qt'_6UYK7Y4m%9M7Gi.mtC %CITUiK:m1mC'l+\JumdMVurWiXQQNhgk0)!IP(3M#O6otS;(+3H&il:(3%f/,t0A]R;p72lHa%/ll#u[c3XIXmRf1"oF0;+lee2[?tEm;5KF2%B@i94(=c3$DJ[i*'?=i\Z42RX[iR'$ %hA$7%qbdI'535[hk#=P_g?@2HRoY*3B$IGd;/mq);er:/FnhL(<[5#KbV`uWJLpag]r[>_8N!e?\5aop7YYtL>i7/(VW1_ %&;hL2s1#/&Q3O!:_o&DHIL>1i_-hD1qWLce+$;$=!/\6FL9A:tpQZs;7qWfZm!Z@n$=<Ql'Y=I%eIL%.?/ViP %\GcjA.>?J>*J2NUj)FE'Qr!#Qg\R8OAs.odlOFBu0oAS0fobhFQErXqMT85d?!b?ThEg8kGiefal%QBeFqEf6/&EZ %4`"*F!&=DPrJ=FsH('`pUaHBRRPS@;r>uu->A5?$%ikE7&L6M.^i*Jf(DAqMTdQ`]n">_u#/jf3Kh,5amecTfn'e/*M@,*#52Z;B%f'SnVmJF=2.nR[f63L#gi %b*C8od."J5ne6![>ku/fmf,+Ol'OaNIb:$C%iuC**mO;4_%G.b.8Moq7=BaH"/7-L-a5("2/&XQ1I`e*]M"+E"1UjX>i0Z)r?uEm %db&VYeH?;K,oaXK'jOgb]QW,EoZes2;5(]Zi+l@BK3'GRL;gWBo?(UTjVOa`hS:T*XG?Xo>Mr/7=43d=X5t(c'UENs@9@9kncCGoJ2B;ZjX5C[fo*MF-"=gR\hY@:@PhG[\ %PbWaI@1VijXU]aRn:@4Zojhi8_U8$UjOf`-Q$Rej1MZU[rfu=cot1L\;[&5B-?p5YkX^I0VY(GQ:+b#Pt'Q70nbog]KIZ*msYc((0Nc6fn7+Q'je;b=P')b8sXM""2@O_XTBp$<2IboJkg% %_hLs>,+JSqF*bp#LCYHU?j55(kFY'<1lK.BFR)9+O4M8QXR60d"RD=1p\KE!0^8`\\F7QXgVmiN?W?r7+DARJ@>(1glN#'N6LE%U]&CEQsocj\7^j]H)\5_YPN.+E*sKG4XpgdF]jS4%D6O5/3H^EAp"!Q\ %a>S8H*j+=t45!)s[3SS!fdTmO6@"%khq3^.j?Q]"a7AKa1+qgH1rAgW@immHCj_JTb[ARb %N,]W-f:f:L`<]0YX@a\L=Pt,`=<+Q0#We$_IfOO5:=:9o52O4(@<"sA'./Bi0[?Qs-I9&BOFf,,+%gD+62b#sMCo=-U5N`k %#M]B.+g:>9mYe4!MT4ph4JN*po5_";.D]JNN4!XhTqXV)"@&tANMRGA"B5BW:*2`>=O=^!uMUlH"e9#Nl\X;2m2T8 %GX(N>_Vs^Gj3WJ^)2:ql%b:[H@CqC0Fm?*HDNS`.BpE)r5!:$"W.4$]"a=?+>PNejSl%Mh$eK3dX6m^4B=%=W[!mENQ-+ihSn,0C %;;e8U[?83B'G46ShND]dhl7TJmUDrK5^GU0<9LBe?7pkSsu!"?1!KHP\o*QA7eBVCfU_1Y7T(KXA8 %[OZD)*-f0nFa$9,UVC4\=a5tgZA7G/"^mXmbM^u[bP:a9d-ZncT%E?SKe)c%_H#P3QJNZa9s4'*6PL2)BbBIKWX`-".Y/Fakebuc %^+Y*l\?sZA2q"OqUbK,59noCj_tX\&4t5;m4)Vh\5#k.CB'YB+dRJlH7k9mc`:ps].f9u>fFgDV#J1+8 %U7oU8q+Eu$;f;pPciH5=_UKOAdque?WqnfOGokH5k\4pYIs@lG>Lq&fhGu!@5Z4-_]Ir[>!,T!EO;+K]HKu$sG8b*gOE&hSX$RB2 %1r*IMoI\*^#O$^2'^M7)D7Zi.=k.UYAGQfcOVL!YJTP9eJmOh]aBKIQG[?8];[UQkhQq1!BOPCpAG]W?!b&SVsd)GSMgO@I'2c;Qqf,k3ro[YJ6MsNV?M3_ %d4%"jn!XoA'^diKHH^jaEOR'Y+qKVa?$hm)6KEG@!\LW#e]Hi1?jB/V5mNWaW"==o_F;>s-oFq$;8i"@O>_1aiqGl*/F&KBgOf<_ %r+964("c?U6FnVs%f=5HY5;o2G0I.L!?R1.a.siG&ZjJqG"C;fYYe=uFsdgLaq)?_dFlIEC4aXVdLTgMUB- %gX6Jn%G8a&Kd:pB2W_Wd6T";9DDqZY(sQ<]k87FX_Xg.61[2:JAag&kk?'h4=0oL/UQ3Ce=P1&.5i*m%:m5Wa"h!*HR@]LW^c""' %/HDF-loP?o>-ffhgQo.!3hk6.CC@?GeBO:c)mGo*lAeX%=?GkNZb#_&oc%p1:RPtCb0d8sKoZ>q$%`mkm35b<6[Z,EZB!K(T-An+ %*g23.BH=%Hp:sno7Wm5MoK\\$+Lb(0B4%H&GUVkVO(0T4ToQ3:5B+QY7uTtlTW2YGR0GNNSepNjF>$dt_FJXR(M9;rZ\ao]ii9f-mo@#2:^H;8Cp!*="<-S=a0DmuR$^>$<<"hHQ=HG&;Gh*j^>@O]W%5_04;U(q4W)^*Z7c5f#Oj.+`tu>![c"!C-mK[[\?4KrLjTL$ %SPU!]JZ,_cq.H+7R[j<`SfDlm7.lU;.%qgs==XjB=]:fhIS89=(*\fc %*4g!]!9k2ji$:b.FDW6l$P3_?2$D*kQX`DFVu8`&Fu2_T.='PaMPX1O:cQ7'huLjE[c90toI]BgTaRSUd#Qt\/,Ll;>i?edH;>HN %=\g8s_u%=/Qoa5b.rGu5Rcu!k5\2[[;k"V+Dcg\8=SEDUo6VLZ(?=F^`YfEdGO+e&s)E5PEVc^*oCA,t3]>+q%n<-^"HslV`E:F.1GM.u.(l+T-W_AHDkh)RjQ6*UEZu8Dj15`5 %K`Q35$GR"C>[GpmGLJqOq0fF=k'q`#`*MXM>RVTELFt!]NCd+"rl,N'2D^96KMhUYSuK+t/lt/NnSiJS8^'cIWO7;G^.pd>#hP %nY+>N6g)'J09h0"CADDU(4F&Mfd0G;H;8ILW?iHWm%YKsruBHP"=)&u^T3?'+BYr6&i#HC9Zg!o"'f4saH7J92?V %r\KW#g&`k'_KQ/n'gFA_=4E+Q$XR/;c*TnSZg>SQ0PT6LnM#atJbc5hS+`p`o#`V)A&ZcH)V%0L:f/T1Dl3##I$$BViZSq%>(EW= %5f/::BjkCRnsmjr2-iJgn)1Vd`,Bo226sibJTU$NK?<2ZXXSje8t:]uc_H\'PBa7hTPb0+Y^n&cV4#-G8Ontbn?`6*'H;VmC:04? %hS<]`I?:_\c9]U2iTIMQ#f!#ZJlS,F!8_Jl-T^#+/P,K^RXg?JbeFqk-\S17\Ni$.\^WdGtV_:Wm<*SA,A%3JZQ0,88cK5"]_3E_jf;EWWMIUF1&at7h)77H;Xa4F`S8@io_ %ZX">"oI3G*WRg%J4T'WMePVcB;-!O=E1s6@j!N`pCehY#KrBZdq.MM*JUf(MN[7QVLC)>TGtJ;CN\/Eu'j6RW6>S!2J!HBTI>>:M %'DVqB=0OF2E+#5gn%^Io'/-U)8i4=+4s?DQ#Fq3D0]$g50`mM;$'Rjq+Di[ZiC;!tf=%38cQNdh2V9^2#Au>7Sb>][=oKjRa.MEm %f-8]2i`iScj8/=_.aI;A'^$GI+a+Ze9+-3@9:#-H#ZRoAEco%U_$CnAV3C'Nb$DM!%0(oLYZkWhabB8Xl.[8L,s2^5=Si2e&CWiq %htr"7-IoEug/#PYCCIj+,$eC`*P+Lk%Ea"QG\abO\?EhTqp5&Z,mt8Q^[M\Y4@2t]:j@lr5%ri+f6*)=TU>\V]#Vmk$P8FuAC"DJ %n^r/!+nsaUk$L[;+@W+/#:/@_6U"";3UspsO@ON`P5b:>H['E'iq%Cpp"n:BnY5:RgcdDQ=B6bBNJm);QItalVXG3_LDZ_RLp'o7 %bk-L>r%X#)hY5@tGr-0(/%DM[7>N./8F8)t3_4"b9(JI]@%C84ekNo%\7V_<1H]p5re_Y.a=MEE('=MeHp]<5M@R1%E50J.KpXj@ %qYB)U&\Jg6eEFo1Y^UmJ^>9-a6b1=`O1,nJJ(+GSqotb9DuY-,H@>D!9G)8kc&B#`J:\sQ(L\kW96?'J7pl;TpUn;VICR#%Ud$Rh %(1_iCrVbDn?iM:!=!mS,m8"O2hmI/,[VlV`O`;&ZVG3S,@ER"g^CarF,]=!MXiLT!8-+>OV5ua,i/sl,b:!rF\K?@k-p2/TKQ@2! %et=jV):GJb=h5dsrt9EHg%J-F#,5i)cr1#VUNYR5L:,?V/]3I,#nq6aLG$KeD %"oac$g#NM/KNKVKdpf->/22O[&/+V"CS8I>#HZ"T\Y^=nG&g?;L:UY-nROZ>WU-)&[)7FJBXDHg]#.&,"u&Z'cL1@2_Z![omP+Ve %;_9?[V6O/h'V>N-Ur*E'#B/O&hn'm8VnnH+2M+o63DQ<#bCfs6d'"IAa!(sS^qYp[20E>@ee-3Y@0[d] %?blV.CTkAh=mAl!mb*0EbiU1?[S1C%.Z,E&Q/g4uI5ulmqZBAhEIh#nR_%S445PM)i!L3C@pAE#nB'$m"3M$Ihi6QgTgpK`kL;"1 %I#0G&FTrR/MA=CEDqckQot%^>F'+uVGEZa#`W[UroM:le>A*.ADh2t$_mu#_$)0sf$an-bf2r3X0G8%@9h/A+b=3h_heSCan"1i6&1N;:nT;`IhA>#IX"r'^B0QCo4#XV;?NLb5X)ICXD%#$0r/<&1ENM/iFLZ&Cb`cI_dhcA=XpGlCSQQC^5Hk"-B %9?@^9Vbs<#e5N>DbV\h/Rq(%[`7nQmTUrGRaJ,J0i0U>N^LU>p!DTU0-mqnNb"gZ&H51#X[/jtCogC=;[fUWKZ%tN<@!*,jT\.b) %Z?ZK&oSl3bh"`NogiC_LP[9.=9GJY$9m:JbIdM#nl;VGttJ,Q\!4AT#rIJJBk5HL65F!U?>/ %J_dZmYk8n[.^>TH"2tj!ZgHJtA[P972W2cHKu#NBbUhtu3)La]*[V@/1.6E(&uCLa^ug5R$*p7$P^W2h@mpTbNNsp'*1kN]^&n_i %5]?YKf%*+_Y1F#^1H9eAJq6nS]tRF,`j(%t5Cj/(IFh9'CYQ$n3aK&o?[P5V\]%gDs#nR>`dr@,g:!t;i/48 %k5b`M6VN[u9(Hm8#:(&,s"hSeAJJL"&/M5QBpb&H=- %jJuY3!J;b,YrrA]7(e,o'^,W'`99TWZlg3k`DX@<"_Q/i#XF`8A"ZSZ/Y4jk7A1nVfM!&-E0$/=B-ZO"TsTFtGO6!4hO.R/.8X%+ %W$@m]3>jMDB8?U<$DY"n"<-?N!*FnDa9`.6B7T2#8:$$G.kF.'\1.q7"G$@sPoW+K&AJIJ%leml;-k`*ZT=^L29(-"#l(\$Xb-M+ %:sg8?MQ9(@ZA7pk%pIc25Fd<>LcN@>9IncfPG^N>"Wk!m?_Y"KF!r3<57qUu3F`IrEu8X4@4\mmZH`YIgO3_o$Y$nOg4PbU#7(+t %"ugeY29'Y@DJ!"NR-)uQj6jn#q[@S^&_op#+.kTRrXI`lm0>hmnI1GtT]R]Rr,4P<>T#h><9:RkQiEC5G2SaE)n!"c^`:_d[lA %MU/H`YsJ4"MD>5OFFn=q'Hu*`\M`8[n;QJmp2&]"AY,Pd!so#4+6$Q!bL(Qj+e1JJ&/#NBSd1oSptAhPqe8%nal+parB#DBXP$&U %aE!`5q,/]Ll%mJN.M;klX&]BOi*b$?&0m/fJOK+``$gYS5Ib#s8uT=)m'p_Z0lX!>L0B5?+VFi$Z^/5iK1$+t7EPT8dM?;d3AH/e %[M9Vp7`8Di`"=C=kaLT<0q-b`;gfSdZ4SA;(F,d(1a54aAHB'%+UM?,)X5($\GtSOG\pX.+68"TNN\*7b^=nSP#(i?Gc;]H-Os\(JH#&Y?c[G,mY29QPrWE_Mud4iIg6AcG5.$5fb`lf^(uF-ub$nmgP:! %,l/(QjH+c6S1dFH;,l/2,Rr1YX?i[T#?"Rs %N^_*b.*F-ZTj>?"$C%]UM&6gr7P-#.R4FBi2'B=aM0lpD5fBTXN.TFk&HtJn/9WJBp:67SJdQ"cd!J]$jW'%T;IY<(3MKX$_0eZ; %+,D,\A\>46m)Y76PuTY#IP`;94AjF>(@/l;R\@FP:^HC9(/E4V^VU`jU`K6JgH %6ag84KF55ffFAW/HiS=3$K/mR!WHDH0X-nM=,AE+Jfn%V86NNT\5?T=V[)P6lIRqEOGhd?0cN_g!&4aAZpb][h*\K;?ME]qJPd/7 %P0T/"$tlaE4kG'rlW+hEjV8(uo;54/6.n%mFPp*s;H<(TZRH"_.P2B,Z#!$mKQk`e!SIJ8LtAFf`.J/ga["C#L_>p@3A7+$&p'RD %OVJdIUSQN#`PKFGW1-dGYRYJUd6:.sO/)Q:OCR4V`%GG@&-?'XClqHeBa9_ofP%#]LKIL.""-nC8e(bnQ66L30)11dT<3%\_t+RU %TJF&AWU5r^6?#%8M'=P0Ot)W %*j(ec.M<[+!\XZVLe^7KFWZ2M:D9#AA[aHq`gntmnf\3X`tl>1.Xek7F6AsY!4"F(IlR\R2RDgsFKKTPZAS?UAK>6h;N)l1Tk;]S %!iEG98d\*2qrfD!Sha(dM#mKQrY@/uJSS_)bm3bS$\/5Eo/8]H80Sn^b)$:1Bi/ark$_)jag5*PC#TKA&7oET?:!HWlW\V-EVa"I %-86)h8MNSUNB*r_5ri,*MI_l=O_a_+TZnt9bS)`a!#T3+#T/YP"qLV[)!(c@&>Y^=G"O2"-o\/"4*,-76G=iP`LnGhh>TWBZ;Fql %r,+['9dhf""9MC"b:4\-WSG)%2aJtup&\b?A7-%H21o+6)`!5LL[Pj6`\b>?F/jTce9or,*kn?lM %!G_@B&21lm;@O %LkBn"H3tq-A0QUV)OV$u;(EG(6UYEE?WI\&/tels87i3#ZM"loN$?eOB,G8A#'r1lV%#dMQQX9W+ugQ<;T:@X7rkLe+0+,jChb)G %V0J:3Tg9;1L(@s3:7@$0WL:7;!\!K,Ba:))P/?=SH9[[hr([n"/3hD[bSc76p8!K4UGkZ]aOs68U.IKN%+W.u&lW%(ae3GNB=Ii^ %!BaQJ/,?PH%=ZaqhTaH?10h,0jD'ZD"@c4r)K?t1>'"%#)JqB6,djTIRBd6d[7:n`uEpddE56IESJ %>_J0gO,ZTC/#\G]#$T_r0^caK2#JSC+3-Vs4dRhCbTU7?\\\*"PZ'YM[>%'gi'?FP= %`-E-i%ce)_\[CXnL&0;PMTL2sRNfa2Vb#ea40[[37t^JV.-Llm,2;Rd:;Ce).EN4-,HX'^4W!t?3Y2fPH4GS4`!1u88sbXrKO.;C %E9?&@_+<&@>.%@Ph6!jTc9!*sb(8l3)TiYEZuF/aYi)uBEcZon&*6je#SJuH,_lGq(pO6Q&E#pn1lC_sMkVOFT3O>D>*_aT,M?1t %dHg5r3p(IHTd#k:)<:6s+$Of5,fVQ/*\>%,IikeL.l#CH>RuWGLt:))06q!(Qmmn'']k6d=PDE20SO?H+qIUub7D\d;8OQh8Ce,aBl]R)!/aTB1,%;qeP9plq`%SuFD%]^A %Zl4gP\M&f\f9@8]mTWF1MYAJ1V0Tu8QUEZXH#F>CL)DX96sGa@,cU-K.u?fFBbD$C-o7'Cglb(4,S;V"7!B9=q+3sWSg4nn:@.5/ %LfEMQTh,lZqSFL%7"\&DOoEcS,.0%[8?GZ3U'eSTP)/]*,U+ZS]Ce``YpL&/cE"cODp+dJ>%0Nggmaj(1jgp46tpK^&VqNr8-CJR %f%?-WUa;3QK_8\]1/XL49JlPbdu!'*B+mEoI-m(kFAFfWe4tGOCa(P$M>#UjRbJ>*7,^eFM;m6*,,<_#'?,+I7.LcW,b$3cb9fgl %aWkFkK0#I5Xr-QVD!4OA4eC/=VG#RZgEU[P!t=;_F2r>U$Y?eO/lQOO^,tO@rPoF&kNe9VQRcS4UZ+"uD+Y %JPdcARLe#0feSC8B+hat+(?Q/4a7:$6no1>7/'AuRR[KM`[-]0.J&A:qX>\S7!`,[;3^N.k7Qs$GsqW4Gsn(lJ@6nfB\<@:cQgjq %UW1Ho4e)&!i&K>:rP1OiNFUk:8$qjOX?<5hk.Tgf]l5#i=J&(tf&[M.q0>AC9cfG[PbCV1&VX<3,P#317hilIhW5=Y#Op/e6m`]g %89mUnd,QF]-F"h?G8a=]"=N=[^&#"0&X>e+)H"j=NC[VU,BEBFX]\&\Z\[1\L,hYH6n9]SpJ4deLuR9S6F)Xe$_j %Lmd1U'I#WI>#L0**[sL,rV#"=R7#,SD_!(Xeq7/u;.a++-,2haBoo(;kB[#dfLh66Od_Ioe]d*2($Nr"l>J=\m%R`6WmTbZ/CXl*[n)dT?Sl4:>h(%L7985fK2>Du=GmoGs'o35[Q3^/)Qr;u)W\cSs-oa6;"I%C3*j&ehnPd)F %#]mA"^bS19K`?`3-j4l(rS+IKe\41.\N0V.TPgA^YO&g@>C_Wd"WG3P()%opJ=-8Q<`61f"OO'G3YNW#kGa_PG>rM$PJTU%X^"Ik %2bh\(L_kI=$DL0]]4uU9:4V2`,n.9pq1;%_Q=LV&`@$j"Qb>*F$W`pjFo4o]jsDi;e)QpdE9i!O9*46"n5jK2oj#[a@)Lo'-=%CEal5=\hU>6n+IKTpL9@6\k[,oDCILb-90n)J8*>LM,#qb:]A1d*NlQ1Pe3eh6':%+LPQq-8:Yr9loAA[/"I`dK+]Ik9`MnM\U?<9 %BLfX;,V/dV)X'-l*l9Qs7F/me4!8_(#"a0l)5":fM+l?>B/i>R>Ue_G["A-@Y^kj6j-GF24lu6,MrCa=dGeh&[bUm20*E-HU8",> %e*JjK^L&CFHE_6*Gi@8++fd<:%(Vi=`:<`r/0f_B#>C5\\lbqPe$i7bn*[g;m(&_s%k7&"9]nI`e3;#Gla79AucX(q]l7,X3;jDah@/T7?o]O(h7n*:Z/R37r%2EVn/ %68U0/G\6P&0V"6:/Ir_kV9!>Q'n'$2]N9&)lIqWm&1NO96F;JY^Z[Dbmp@lUsX8VIAi-nnPP_ueEL97\6c1bj:>*C=UV"jHEh1?=fU/mefR %2mfRAT8+\\d*"fd#0DR^F(k?V3(aCZiooOPRg.)%0sU:C5abBFdcL3:Bi %3/,6G:LUT/Wd@VBd#iHqqWLcekDfn@Yp`CVA-fm;NU:LM("EEj[u'Q[DG\gCSdR/rZZ>0 %MYODYg@-+,#eUD:U0)7NjU[% %)sO@qnkVmJ[$3N$21goPD8sjN9Le@KQED1CCo"]S:&cC[,qT,A;G\Hnm"Fj14l3DB-rG96@'&Z[@#A5Io1'BiQ6%QQQ*,;D/5t1goj<("5o\*Z/ZbY:1cT$d1SNS.=5"N:m:JSH-M:jqFG&VjDQL]""$,FP3)i %Uj]D$VU1nd+O,8iITrfLKQUi[g`/'g]Tm!N.I`03Q0Np/l8`a&OYV>J0]KDBM?[WQ0D>#=E&]I1/O3&G;VqU_R#L3rX&(QBOG87/ %CMY$AS`i"J>40h7HI2dJH\C_jHC,T`l(bAqgSgEMAPJ=1J,6ZU7&5;RYs;qR`P7Mn%hMq7Q,[bY7Xj@W!"AEMJrT67%+I!;0K#M[ %*Dd4_SP""U+u;5AGHPVT-*)UgZc\F[pQC#-9H!T"r6ph9b]TZTT1Ak*5/$!'8T<>/P\3;<9[WfE<9UmS^m3?%JFr>;cu&t2D"K=Tmq!Lr^#V%j0T'tL:cf'0F)umC*2J"1Srln %Z^#nq,oNZb3b=S7bWoH$aSqk)6kK0"c$dS#`WCh!7n-*bC+2pdi=FTn"^OpVNT3B5BX3%E"a@Fjbn<; %K1`/k@:A't-/&DK`'fH$I@Wq8KlMZrG;.=AhcK$KZ&rIumgCQL@TY)k60/o]C:<9RTI:7+>>/V((M4^Kk2FN=4VmHY>X:"RKfe]5*+,HGN>1lF/Q\b62[\aNP^1PrNYo@>O$RS% %R8m3]/2K^_$&!DZD+e-h!Qf<]^?+>glnnsi+P:X90#rYn\4Wp'oI=g**\9I'.e^WE\A1l!RPdo0/gd`+Lm)6$M+/uX %jt).u[;;'U@)W.&d+Yee7R=&[OYEUKKpdeHee;o%Y[/G,&eu'Y'R#4;@g_+g1-iq@6C)B-=]bHf3V#1?2B'gEMQ1CQLDjuG_YFo9 %:1/mOg-d_c9/3%qNDEI.=9M"(Q@NK-+LXUEKs4t(^3eLFp\R^4N=4sZ:C;7M1q$@qJ5L)n2cd)c/cn_^[qrmaO,ObT&E&Nq&%R^# %\-n_jI:?nW8FaR;5d9=e6.4[u>4X0GkGX=C:Rib0=ROXJ7m3A&WWRmH$Cl9qognp`XN*r6F7/Q:*\4X#3<0f0'Wjhia0nrA75,%h %[Vf=a['(dq_E %&Ql4+8_*'<&H(WE-e3p'"EdWcgZT6E*R5PI6I;MjUZ644.t@YV*82uEULURCCikGJ\!P.5m=8U$:Qif %e1b&Tn/_W8-UJNO!FmZOHl?l=e>Hi*6THc&7-=B`,)IcaBc@[DTpQ1_=0DE7`%jdL753p02!@9JH4>"gb!.bW-`\>#Q"H!%(HeL?M>]m,pXpiJ%J&j91E><3Et, %n!+@&g8*R!50)B_%b(Mj;V5apipYh@*3WZ"SS4N"NAZA9Q]9-q0$"V\Ybjgk-92i&JY$t.-joQlq(F-gAQ^@aWA8\Tngi['n7DZA %f^LJW/hPf#QsBI&E=X-TY)sMC)\RY??2!?.)Xmn'^(nW-lA3J*=LV@]ZCrfS*!1uHL_:+a.b*DfKBZ2?PI27Yf=HKrQF:q?%O`". %IREo1fmD$KeT%F&o\9H@5gIIU9[5XUR82,9aY^7/C\Gu5n(NgJ7uV9nc$F#Xfs@R]YUl'>8eiU7dY1_XlcO^p(q>fu['L9@Y[`>I %FsHX9[-iRne)S-AJlIZkRLe_uqPK#`h7;P&dV.q.7a^$JE*YiA];P'm3d:9#I?P5bGLj.IU( %nugS7SQX4dUH;XSh;0o?\9Q=q90X42Nl87>(cn1b+$o&)2>UB"%.jk&9chN>;J)MD61+@YXHi\/;*+D`JjT30eU!e96k@mPW[[Z[ %;_FK,I\`:(e&VSl<r+>k-#h,=Lhijp$=,I( %/'5>65H__>bu@8cCF0*t1"VA@L8P'KiMco3[g+Uo/Wi(3"G<'JBcla3_O3J-10&9uH&-MV@/CK'QX\7&kIhmd)u9!(DhB=g9d`%f %BKL?4gG$W97kb8/<1XZs-5PDhKQ6,ho=Cp=@FY4R&C+)rbT7E`qIiPEk,6N:&-S:_5L.E8(PI)g6@BHKnl-.?\_i(?k<1W(BKn': %I4DU9N%<]qmmi*\7eMk>jgr6]L"'[,Cj/`\']K/R/1\WY.omCPAW6,`]'8aYZ_aJB.Q#[nADFgAk/kLsDLRDC(>)V?ggTNZqDLH2 %Nh5J76//BNg4lMG^bsf;/M\G/@A52P5Wn-8Lo">WZ':1)-W+-kjl)Qf;D+#4b!hR1Ug0uu5#8]jU++^UYQ*j1rDI6g:V"b&,*g%W %!@91]jI=b"Y%s"hVd*,5pZ;r95da2MZQE)8coR"bQ*osB?I!n@21;BVK)AATgm'g;pAddV-/kPb9$-`dp_)t%r[eD2&m((=eFEg(uaEADNs6;C_T5G!dgm>:e\lX6b@dJPPo7rX\=3)#S7r= %J1bH0,8+9s`_fWF5]J[L;D\><::\l1>p-diS`RPdPG"k&Ag%;!iGNXUIN("(lR'RpLcn]N**r'@A)Nau;ToUEWBjLs)^<=arI^L> %U=u`6lC51(83LCA-U"D5jj!L[%Jg-R2K^DYL(OHEg@YUFU:.+-Xi5UqRP71/1O=kM(STsS4m)qR)PBrZ==%_.-26j;#PHHaS\")3 %+BfddWEkq6'`;$s83H+t&X`caa"N`L=.0>-j;'6g"8EMUk/Bea'qg#P_E8W?`%La]lU[&%\%\Z2V%e2WN;1X_I?o9b8"Wkj4^Ah& %,'VnGM^h3f6`jSn.'B>tY#_OH]P8S1-*0S<,14o^rDB@DWRYN8QLDLr5/f7/KFGi]nH2Yf$H?8@2b %;;pc1DKtsk>i@q,>14b0fNBm08)*]r6X%mU-S&tY;5onoj0r(XAEj5_B %:_Rm-fn:]p/9ods?6!$J]`_*$s/Iup7EEqDC:)m[(]TD!S8pjahdc6W8*m+>q"H_:?N7dRe_KW85LkJTIdu$5Es)]EBD05s`Lc2K %+_(Jl1B"CY-H`I!pZ1H:YKa[uWU(9i\&s&!R7h*oEFdq%fAhs:AY8B`k&uYWICilK %FiM%[^FqVC45rH?e]PN2$P %P!4Er[R)>AO!g[hg3,uH+PlAp_po(H>NSWDiG'UW.i?=C?'=CS4in5a5BfM7/9>I!eXgpmLn*/gce\VeAZ[UD96G"?CU3f?9_*VH %1!+nb>ADXO@<.$jQf])XTq9(jP+4OZ>o@"^Cuhj)XARci%b^+*a<.*_S"nCTnUFt9cR]/aTS&fo^%/\j:[fq<4R`iVJ(.J1oL16R %Ru+n&8f7RK[R$)Ks35N@5@mDRGt`R.M`K!Va?;brL$07rFqTOIl@m#LGh.fJ%HdDG"3S4::4N68Vn,JAQ5@OM4j$Nt+JY(+DRg(X %CQP%.//uSUO^$ZWr;T:Q[\?T`b#J@3U&XYNpIC1W0pfQ!3PlJ8c"Qhq7kRVqm,45!DtebOoB+G/5E]D;%Z^pLG?,7rFS%E/FSK]u5HbT>hC^_<5_-p_38K)kVAoNd:$Fb7Pru1/ %r@;Yt2iX<(np@0rMFERtbd/Ku9m/>T:c2=J3H]@"3?BQh9%JcTM)E'>Y=7b]OP!n=;@.hSeOR)gbksS1*%1B*MD*ll3WT)AYdIlc %"7PhACPI,.R86[=RS^1!=HL+9MgZCJ',3DROF-SAZ@\9ieB8!_-bR:e4I`>5ln(&^:;6oB$&&&QE\1bi5ht;n],:E_qG39"2%]6g %n1Y#j%0o@YZBZ%-rG$(i@Mjt960^qi!+;GR,:WuuX&X0Ei\QaH)^Brb:Xn?In8MV$!VbV\8;`o+HdN(C.Om2goRZ]ebR@Jh`I].R %53`HS;c0`ZPo"\15k;e)kV<]G3R4;7K3n2+4XV=XMhY!PpL"/&g.+]JP.]LWJ\%2&(cK#/ono(kV"C3]J/6g\$a %i2:rZkS@,*fT-fpdE*a)G^ggo,LgAK"0XM3AJg4DL:G$"$`V+\?VmqqWu"9-!dM?YDZEfSn7*NKn#TjXg&N5;dd@!E1W]\a)QJoe=N"#_6ej[kA!![32H^TFUGQR*S50WJJ %pH"rO4Fdh/!%B=D`m+D>SUPZLLcR1'&]'8/F9`7*O2pQVHS^6S5LM*QE"bEg5DCO_!%,S?0K?rEQ,+,PUHW9Hq8!X8n]_@'4;b87 %K#&9YZ[J[i!EH,>bB=WLX/VQ(lpW>V-"%Y56B6L9,^Z/i-?&d:@'g."K9q1 %qX13$V#1R#.'#`H'/po[5Zj+'7`aGZc\H0> %_P:jC567fu561t#nB@[_-IYJAMA^kl`kZ(jB(uCj#-1+^o&FV`,+';iisg,W8>'`'^dCr+Ro(-K(B?>/*X>i;K*C1=%VR%JLf:0* %i('9'!Zp'%E9q(Q<'eM.BD<9b?c38"FEe>O$KW"]*R=+M"roJD9UrG,a+L1>@uQJfiGj/,-rh6I$@"u/=`!&0FG?Hkp]M[@pD?;E %*C,72AKS/R?8P8?e^P&&nA%Il-\7<@LGb`3OhL9_QYJ6kKH:r$dfP<2T=)")XPj7t6a6b*!Au-R)%7]r^q*"T3I(>%&`*cq>U,JS %J?@>iUS90Rm6s+p#U#91WXJTM'MWjTP=S=QVlVmYB`Om5pOA?!sGD122CdV"C2%9!'IJ'BK]jH %4d[mY(.,\'k##[`4hrcrSI,RQDX)6tM?@2-o!$`3dIe,kCh(P9"`U>B!r#ND_XDWBC'.d$]Y5*Q"@L%_/HosNf.;"P4.C/A8t*)G))Xd[BqjD-e0bLIas %V^Yc,YV]FBfT$omC'95ZR0CKX2;1@);Hg3d/$O&8lha*<-O4d71L#Fsl)YN_T6FV$IJ*$fQ!6%+au)O"bITjl7h'M@h@tU^.I^B& %@DrM2Ei)*-0p*!Rh1ci&6bR&@LYF`W_LN1e+?jJ>I#R0B[f[`pjF\90"t>o)7qN9nM?rf-oE[ZXQ28lVKmA6A26+.Rgh!$SDObgi`c&Y'`4Qd#qJGkhc'"8[r%+)eB^J*,gnG5uHjTZ>d=pJMY5B39'0pDu/0O]SQj\o!TE@q7p %OVX4Qi]bM_F!'%lC"IA(?RDgA+c[?G*W0JjP1!uN^:j;E0$/RXR@D7MkWQutkQh\<^>j%&#b6PEN-@R4l-NT3?H0n[RJ6eqYP:MS %6j7,Bg&$I8)o3["tkfM)o?*A\'%"$4qtY9j'oH5J])E%r7,4>=^(P%g$,?"L[7d4@Xa1nlqkkhdE^!'g.#PH^VuaY='WIS*-"LNMb"oF-BcmG\k8^CWT$a%*V2/-aYcr]&\rqltIS?#B=N %9Kcq@@5m?rM\r='W_kE.+KO:hNp>;HHeQRW>o^:'ni-Ym:/D/9QuI6K.\r^u3R$#Jno1,c(Or-LGj=Do]SJI2;K)>LG`/dOdC=LW %Aq-&1h(oqRa*gEIm<%-7?HH,to4g`b,j\&Ef$U+?K#Li?TMG_f5R#3jWtOB6mV5n5F4cmKlMJ\3ZMueU/sjY>(IrMU==oP_ZJqX[ %"D-9N/J-j3G3TFFR@VFP6s\^<(i]q#Y(th6]HbI,JP*!UD!:5`_esf8r'[\'Zutsr426mS!:D3VI?:QaeChA3c8)O?#"4Q %]n8i4"0nq'/!:Pi/,%J-1)WHsgZ:m@-HTTj3`OjIsOj@=GCT`f&<7Va,[eBGG#6]Z&hhJWnJP>":G/YAmgR[C]1el2@C502?3Scg?QHq-u3jCksR!IhoHnm=XfB:sE;n=4*_]s1'/ %G5RfEUH[0pE^ak8PB4]n_P6i2HdOg8:q>*k$5G-_cAib[gL$0C%Sm$FjBl;@H9f9)KD9sVpX$%aW^%U+9.Sa/\Un9RT]]e@S1P-F %2;&d%r0$uuD4#pl+$/C7&2HjX4Y1=if)Q;Sc#Kr(2V=ggf#A;dXSHsT[h'JkXsIOhn+\$!(' %MXiL9aMgT]Y-76>M%l%6$l?rA8\6/$033>)+$6rY8GTg<(G.TMChB=oBG?;h64/5,4t^"Bj((UHS9'DGIS&"sS#r#P&BG;^N'lbB %lCo7U'00@"/gAApU4AFt#Vi&XG2b\?,#QbXA.#`%QVU3d\c_K=@PchH.CSE5/ZodV%X1J3%l14S"c(I,D5U=q$8-9I/UZ@A'URWs %M5PsR<&-s6CQcZgjF2A6VclApQ>-S7GuQ:Bc)2JDOpTm`dpW;?&.0fqdW1jqNm@00\"@P@T.2>YK+kg1?kEq?C2n1oRgK&_"r-/: %TSo!5g,\nSJ^Haf:971+[fKaPA?e-eG9;,Db(V7+qe3BM"U\-C)(gRhfe@,rn6L-P %5]9DKh0!iVj2okPh1FEtd[07`Fp3q^"*C)f#8\s5N[ne;@GRkZGu;H,F>7ZV5c3a_%)oX.-mi@Ml_\&]8k%BaijNsp@^peWSk8PZYE\,f6ubF$bPnb8a!Y+B2A[&@e]RFCYaB:KbGb]n5\N^7a[q>D/]\keU/i"jGAZ]`1:3FPEgddraRGQ]R;3!/ %"G@Y&p$bb"B#"+pc3Y)B?bhShbEVd"-t`R=PXm-6?N"n,_a8$g7o$00Qd828[0rM`PE#qCZg1I5-ppL`]X'5EV9iA29O1`Ca[De$ %U"sJUVi4VGAO`/A*%+%?j'p!Qr^hil#6kko;[.puf0[M@@hHXMVP950Obf;`S;'_@4Q=c0MORk4Lf]<=R,l=(fh?!'49FP8Hj%IZ %7_[(RK2E?)O=W#/(dlQinROlC9S[;\o.\?@Q5>*SkA2V;.NVbFG1)%r!o)O%->u-Q%Ph<["i_oYRCM07J&=@Zr]sZ;ijMN %'GW;/,FLQpF4lng_]m0EH'7>^P*1>\OD`/X)brl81+i(KU^EXZ@^hdOchlis/Joo`>NoTOi6)*lNoB45#&h.dI()P9US]a@@P<"c %2+K.$c`cN*fg\o_C$]G1H9jS&HD4?Z'"Uo6PE/_WnPH&pW[@G;O[#2OWrW=bp$1?#6fomTZb,men;#J]LtHp,`1`.%V %9#oG_d&836hFT62LrMn%VpdK7BWU9%7Merqh%gs\+/1[&K6^:JTJC\"oLK7jE$\5:p^)Bk:&IN4E5iJ%s?[L)(l- %EGB'@RiHcZn!'o\N8K_G9-RW0HW11nh!HJPRuqE%McR_Js10"Pq#.A5eo[t#'7HdO0kA6P9T!i8rWQO^3]EhL2`GLOPZ?A>DT1/!jSthG;q!7/H8WkA:e5o<=kZ0sBH-pm8Yurmh9sm+]'A$MedY"t)F;EG%khM<8#ck`/b$PPsA+T%'NDQ4Soo %/2JdOjIh/LD2UA;F)[q@SXJK(T;9Ij-."pCHX0Ct5#Tp9H"$UqWe.4L5U>+7m4?Y%(Wfo?d!/D*+uXYRa0K3A[;V],S<4)j!1BI2g!TBFa>ADOaGQc%ZgljN!Tl+O8iBa4/&,>A %/-,9So(nhsX#!n-D/E5VSdB&$%h``oZ'MP?\$7`U@5VYo8^k_J%qt*G",gcO\cHX8Acd^OD^]j&9-6?)Sp;72gK*6#o@p@[4c0:n %2P.b#IaQnZ;8RsW-nTVS;sqj`DhT`GGp\g2u#66NFEg>LqXM($Jp;/UZcR'JMd9V79,V33-'J?,LaR9Dn@PO&cjm.(5G+b %fVVQNckBIkeI$-]]SZhbI#NIuN/Bl8lA-]R"6^,k-V9F%]1I,^&d>hpL;/F>AR$aa$6bth@%-OpTM5d#H819YK-am)UUYJpCa$^Y0 %JQfk+'t.26WX*a5lAHpoU/Xq9aC3^5jn]Anf>O%+(o\tebJL3NRk.?%k>fIHWC_1"U8NT4Bt83CNi+UE;N5["M[DgH,XmG[R&.%4 %)@oG3WP7F)+&TF<=j<^-_CUON%VRUk%&iY!\6p7/28b"g@4A)['+"Ofmul@g %5Q"R(,s=nL$0;3N*O;@A6"L=<95]71@@qj%jnQ.EXOC7t@Yr_D%mWB,uHkicc0 %`Yaeg_C4c`Vn?ET+!,Qn8Umqnb`qhP:U(7i^-]T%/3c'YS4ll40eDpOg14!7IMF%1gih#cjpk/^gd+,FJC+Oa42B#:r_@r@c:f14 %Q>9?I#@V]I4&*]K*aJRpT+";g67N(%)<*IeG)aYK?]qg%k3I;S?@3?fn8rN7Jb[fR!M74nrVkr($]/qDnIZe][T7gZ.\On*AcGJm %"^u!*"(I[d_\/jcBR"!Y+Af,,dW=/Yg9l`*6aWr?q/hp\/:lM:F'Kmtlkj(6o`ASeB[if0P6Vgpk@s&=&L*K>(h8f%Es&(A=Fn\J %MuV+uIib<"jeSCN*?*[QT7^6"PCN7$5rtUVh0@d\'is)9=F,QEL!m4We*L]l1[Wic^eX&J\7M2,7NfiQTaqE,L?g'n>Y9u+J*s(M %e`F*+djK#=Xol'',Bgcd4l@D^8uY9C!W)AuI\IMRe#OYFG\VAB)9\Cm^a]03kk6Z*_n*HX*q$NX=ZGSp^Fb"Adds%WA;fOS"%KWn %:*;i83OPsB5\OMsEaq!1B3IJs90B65*j?:Yma-3lE^M5F"M+KNc$"Vr:SdAJ[nK4_:]-ouF#Ik)0)XPjSP!T)`g1EsUR,>U_U7].cR?qs?T1_*NL?Jad^hJcH%`u\3s1qAZd`(8>fQMmgL@@7lXc%_Z@#ud(#J.K<(.mAcIfhVVU= %g;)+Tp"=nCe'C_BRAn>j[;W+DUb@jXc]79@M]c9!B-q8G,qu8`XoI=*l6b8N"<<.^a!L6fF(4SDSs&cDWukMm"K"HDcW2/)??eiJ %USnQ69Z7>?P[5^r#gZen7e,.*)@1Vc8USQK'CGmceL;@QmUf4qd'_?;!>0s/XKDMGjNQAO7IUR%B8WHr4lq+3Nu*EJctS%%E&Vh";S3VnoQ!G_#c<=>"H$5,_I\.9R[NF:?@QYO %9S7:t@HFLU;'2lU3nZirH]M;$L&ofl89X3CgRUjk'P2j(;;]M*FN,*[T<4IYpc=G^*98D1o>g2OAMpLsTrQB/SntlqRPSN3(YNOR %oIL`Z()=st1LGJA$<#74d`FZY&JN,"@)k%r[Z?t8Uo4_TPM(--+)K5ShTs[iF>DsD/-6gm#u`..@q0G`i>K_Rg>2NZ&W,nHJZiQ2,W&mOQ/95q$IFP#^'JJ@&paAihh!h-$WjgBP2Q=$mOYL.%ZBq-'E %K6I6_"ea'JXF+kFj6SF1KX[Rp+)ds\Wu%#:[68BA1=KWFPo3aAL1'+a+3>g1)_IKg($H$e5$Z5<4f)Gt9Xu-_;5"obBK:*9Chh7L %P"dMQct>/=r,!5^bp?jK_Q`WCMWDp!@=M=#$fFao$#QXt;_Dh6^fm^Qhocu0 %r;b32jb[(6=NU5eoFlNbMP)h!(afuRC;sDG7sJ2V,OF0TeRBmk)!!Q)<$JS6MiH[eE7C_Ni.t9dhc'Lg6laO,m92,n^X+^LgYRpf %3HI2&j9ljiC87\Z%p$g'E&XW!7@_`M;JU.-M\dfg$G14g<-%sA[IW[@OT'3o<_p/!*W4?Zq"C-8H>rq&/%#QqY)(kGeI[t*!,A2u %'6($6Y3QucXlUJu2\ON8ip1Q!lR$LAm&<1$$Y8+;JQ4@F!\hV\rHa7'#!"V(n %@si?&3Z[%qpO#@_*pC=g!+jXi4ad`7\^(e6%<]n4/uHDR<@Kt#n]X3;k7f!Hmc?NL%PQtge@a7:sR)m#R4ZW7h`p)/t3_L5W<>XI#gN'J5J!P(h&/Q6=ZJpW.P2=\nBNe\c*J4uGkB %hcR+N)5YGd`k$,Kr"2_JP'rf8Zg@<0.aeAC^6O>bM+e*n:+_tDaWn-G3*(P#[m(8'>iq8=bE<;GEL7`6ga6/-rj-H5/]//**M<[Q %S,i`D3jm#``XU'/dZl_t.A%pL!d8B"b05+]P()9=d9NPof1@m0PtrUtD-?F.B#s"s.8n:Aq^IWq'DS#cS41X'^:1QO*/f5L9:=b^ %U^9LpXH7oPlopPkA;?3Kk?6cjo7TtK^`>EUZ#:?9+S:Km'4(T4+d/5G;7p=$6@F_&SbgtB7V]u81LOgV2`I3!9M%$_o6W_;hI/hH %H^[>T+_RbK6\;o&_Ec.^`jaVJ1YqbAB^/-1rgGbV9s3K-W#)Ic03E+dr/$.F2#UDseH=s*ce+rbjYE&JGBP8L*>m/Ju %SGmZ52+#+i@([78S*BA<'B'JB.G7Jn#9`=PK+-Mr+HtR@,f^Kee`&;2_hi?IPO`XLD(O/.ol6)^[oNeO;]2eUoe@;5M[8P9=X]`` %)=s+6[iNSi0a>5m;-M2"[c@#icY=FKf6fA$otf>Q*me)@d,Ph+?>/1i@(b-nU[O.Gn(8cWmaIu6(s!$7=qL+GL3Yb"C;;t30?.nA %_r6>3F_q@B0HS^]FSl3oPj/djq>9UTV0Ft9lAi#n-:`\@+TcOS'beG`q)*-DM^t8Ec0rX%l@_uNgV'&".?e4WLF=namM#dl&(2!o %#LDt:NoLa].E/_b19X`fS*an'hl\?^qrPfZo'h;'QPCQp+P/A2Cbs=E\nEq/$lFtLOh-N-#A?m#O+2!?bL@83RM'GF`-XI[YYJVa %MOP3>+X"2,>qJNi;;,V?SU2*.KZ>-/-K7Y8cq9,u_SS6%RVmD(&CW+Mpd9)/h[[bk9:0sT0lrCI3H$tJ33oSHG %_9mtV8\o*q\#DoP"e*OF.l$ho7#RcbPTOH[Nb+J3k-p^g`Wkq&'g)X(Lb)9gW3]kI',c0B_h[rWh!J4bW[u8odh$PG]/_dCS7Ku@ %bT#ng/@:u;aUK7M@bX-V/cNjFncLJ_a-0.3V7!kY45K'\J(ZFRf3-`d9G!;Ybl^D&gN+JZ2/#^4S57Wkg.i+P#=W`2s"U-^e-GO\ %*.m6@%Ad`hY;(#%e42BAJBt`ULH1+2WMNa#k`Mp(C6rZEBZUQW]Ua)m/.UsoAdRqBF@r#J`+2^7BYW1KN*"ri,`e/_r3RM_aMgd> %e:BDeD9G5iGdIIJU9=+TKrbac47PENFr-?,P`in-FYYgQ@r/uSE3>0S;;WWhH#kaA_G^UP`X$%IWRRm]b_tle@L_(:^4PMc";E^Z:],VJ5Np>*1amN:&!PnrM5@2[O9'80`\ZAAuUNO*q6CLEelK17[#t=l_W)ro,2<>-tj7$iD.boIlL#CPpqO.gL4?N&KXG(deP(EJ]'R[2S %iRbN\O>f1`G4=/l$Yc)U_t(nO51uRdgY)5Yd!!7/LeqHuflS4L#7$!Tk0fIl2uMB\?QIhGfXD`I+Mj\C087`-Hh8'G,mYnDHu&.q %/j8Sls!$5bjeBS;oLQhpQ59YM`(P2 %bIH$i',U6tl^3ZoLWTVs+q[3$Ff)P8XNNQf8)@2C*jA,3Km^<%u"21kdI+Hj]C7P8FjriEWd?M %&3"9SCXe3+-aiL_L1cme?lojhD5.5;Y&'<(P@e]*AasIuMEW`kAg77t\m0;QL8Blk-7U!^D?CQ3LBpsNh2cX*9N %qm8g+0-)4,>$=rBCL=-I4M?,XXJ):%kr=hV-p`nrF!#k[jilJ0q_-s^Z*GYcQ<=2OE^8I3(c>K,5GZ][1J\oPDB!=!IP>l'd@(U0 %^+&-gCWu>!]>g"ND)KmbfVu,5Zmh!JqpEqRHJ's2F6KiA>dHjuj'L=V)XQCSBKWl$?K4%g#`[.I.;9("mR-$T#('&e;>"US3H%1s %l=`@We)^Zu)mXDtGqjQbV/9u4("Bo9+P*u_l(hfN#2N+GM,`8&10Y,Q;MH-jW %j*p6+\u.3`k%/>SC>K0B3G>8`dd_*:)QTIlZgG)7L>?H71Oe$A2:HQHU7#rAULn4^(GtI)laLJ1F65@;UZZR?d>f$MRNd%*l?9/, %esOl'[H@9X7r(cUP3afs?K8pYWg?,E?d<:Q+ %[eA5\lKKTr>4%uZ)/+e@d.0"u`3kL5W*la^osMDXTEn^]RQ?*sgY1t97W3[WZRgjW3_,)VkV1=u5j'qLCq@EN4Qmu]iMeHWr-Hh' %Sk:kGU#jSa.aQ;:Y23r=FmZB26hdUeQur;b:9,W*jBad5[FVoB]_nT]kVg]X>^%kKB6nDH51Q.hl'^E%Oe:sqiUW>lVs1;U_;=*S %+"Qe:qK)otkmO)Y6XR5aqt*V[+f^$8L@Y24X'=2>+l0bZ=tS(nbKn't^H:SK##4k,<>c4bQ`#_WFu&_!fFteM&BCTk&:$%N$n:qX %A]W1:F$m>T[2<(rB>X/<4h_as,:/eY7m[6u7Xk-OR[Do(i0,?K00?cN,a(\j;9o2r@BjE.t9ZL]g%d]f:(=eeC %e)6.P#SJ;%oIFl;B63#JEtqeGF*l@kRX72I^=Hg+o;gWU7g!=kTCI07+Y; %4W&!BeUZ+le2I7TKAAZ:VfLotFQ$8+5M=J++LAqLd,&ZlXY3B><#a:T"Z9 %NiQd^N>sa`n(VaQ'38lu:'@fI!g--d>"$!U)A'fOGt!)c?]BMMcV+%cQ8(dPjZgm@rb`-OqT&K8eUJE'hbpR>#9nl=/l5<@]RdOo %paNEq-bb2D=oo5oPB&gR13RlX7WogZISTNC]E]YSOEL*I#_d;&%Bs"*I->].hh;j5BLZP=lcZ>GfUL1L_O6AI&8l.WQ14RZA-sDM %pN+8if(gMHo[b9bT9"jA1=3?q^8GnA;+LOA*K=4BQKSuB+%6E?I6"khq)gBY^:]Lq1W+\.WGF0+#&dKarRc"m1WCGqoJ.J7g@sX8 %?)8SiF7r:T^E\@;="Wl5,lJc_U1H5r''&Y*QdgETQUq_`^.;kVYI!<]m!5&t16M0m.C/kD"WO@^WkDB4e7oQ6JhB(RaSEQ2@43b1i?V_ceOSgQ>+cY=ur1<(*_<5<7jG']TfG%"[kk"O*.LKrIh&*BH1b>)qW4!*s]OZeblo$Z7i_?j`DYEh_,?jo5(M4[]X42Hb17J-7tOe@cr0(/q*uqqi^&o5F#[kSZUCVchjPaG7lEqC[[%!o^/DX#!#s# %fZV7=@Lha3/("Bh;Agr9;pnj;GMg08(/32Z`YPOq[G>!DeZVqSo47I=k"ePmqu66Sdlfjr,J?dq=j;Y9R1D5_He4kU[Ik-tQWDdQB-H8e2mqN>:+#V6EXjQiYm6E`SC"G`7>'kF_%Qi6= %=4^$WQU@=Q22q[]mj8Cq]ou1@#N$l3_jBJA8,#?1(@i0+7lbi/#>9E:8_r`B:FR6"9UXfHm+)T1iE_P+u?fT/I]cXGin!8g> %jRu=5dC7V9Pn#aNT#158>'k]Y9pa=^BBI#n`EBH>L3Ig)m(k3oeZ(KX\\%@hWFSkcH)Yk2iK5b5 %/UL_^4f=41/MN)`hW.G+$"(sZK\>Zk/:[)UHj,<5emGt,Hhl%p>mDd943qs&ucZVKE %2h.2`6N)3fR!HlnkM\B9E2G1%@ga-"&6NSNn"2M$5"-[,1I0jP5iaBUM*+:-"p%M_p>&Xr;%=XVJO8GNRG5H$]@hW$c(0.']s`"0 %A99(d9l+I!lk"suNU*@3) %mm"?\KH8[MIJMYFpA=?Q%4JY$h3d4Q`+)iJR@YB"\RQHUfIi.O@q)i3+kNB+g9t[YR.'q?6cA5g"E@WsY;%f\mfnJ1RjAj3]L8M,NHp#h%"%M6lWDK6`C!\27LphmeH#_Pn\4k^B%$=?'lVT; %l.I9U9Y@8G-hQ[b]2aQ#PSu2SZgM(uS<.EKd-3K992qY5f+3(CqU?-r1p;adU^/I[g1#JQk6lN=;QBLrXSmto`N70ip0=K@qq`c& %JW5C]UZf3<:9*GXche'UJ4:RQ$WX4:;fndWP=a-"caOt^U`(8P%/^$Oe)m)^CG\hH013X#h,>5D_:uc-?1_jr1F[2)Kf?3t0.FBQ;o.S.p&#i#Sm]*Z:'PgZZ3,"6- %Tu>R^WJR&Y2VJM-4Hb\i-S:B`U="1?]/?g+;57eTr-;YmKuqg@S&Hr4B\0VZ8N,:k2a3"+N<6Y@B(PG.Go%'*E5c>Nj:[TRGb_m6 %#L7=tnkHD0/TrCf$nR^KgJTDeRf\ %&rjVKgtBZX,hcqiae@61qMm+?eDoU."g&oJF;joZFC0eEMdXn6hC><922[l4k/)C>/+-2K-j^iP#oWu4IXNH)Y;1W?$('!Q*k'': %h<6S2'D,8Q,Mt(PUT%=rG]!fSqa2a.JW2"d7TBZ4.MWst?R+3W.4f-=WmNe,FpLd8IHQ$Q4H2iQ8sdjCeaN7nE!'PHNj"\OYP[Bk %bNNle,BW%]Y7U)8ih;**^g?DOo%Bmfl@^,gK':'QkSQOm+i/6fl"^B*GGUnVh1\YB8b+;I0@j[R..J:u^h?BiER!Q[iYO^'!n`$s %qlgJ7T5NfF(OB&<4nmQdTq:?"!SlE,P^YY@5>6[,*6/=j&i[Oa,i>cW2KnC>.(>+RqQj0GYk'"8-bNq@3khmar<6 %0D[,p%1/X:9?i$k:.T8!lk?LmKe@sqF?I(J\(WJ9J4Q!qAM`BL)h!u`(dTB+H6mZ"nN4rnKp %XbnsUN#H32B9detQq^V:'?R-u4KcZ!3L81QH:pfgD-t,MNEV`6LWj2C;d6kRLso/KcA:DXb0^.3>Ef!J?@.l2G%!FuG$*5_aG#(h %2K-JB(Wg>A=O;PgB>GaJ[.!LIkY=2^HVLs'L1b%m+@OME-26j4>AAM03rA51-O2E\)ATK?umq<<'ZNk(*.XLO#,/,OnQi7K7fi>ndaa9SSX`cZ5;E+;:pmke'R'h6@/HPAJp=H?`!-Zc[ffU@hW#@a,gi$uDk\/fEV>OU#n]-,bA9 %be_V4,fp/a),V%lmu05nWHl>_8`J[uUD/!W+,\._CO?J6kK`8bY:O[-d)u'o@hB<@L"E:#J?RlFb_70IZGTZh;3gi[qGNT0'WCVF %XYR)V03K"kVm.uW):@!W?JcLE"gXpjo/aq)Y6-)9_5-n]XHgE1#Rh=\pZME$@M[Hj)8,]n#="Qa`@F9D[:Q$s0S((j:)p(u\' %@AU.NbKgdSX5)0qf2AMQ!sZCEL1]NNSPMQ''(gSQCIr>cX[H]>HpKQU=dsR#9\-HC1\g@5V+])BX(4^:Xb44@g14uqg#oYlVMgI8 %T17_H=RNPoh1QZhe&'ddUm[Sl=SW)3mpL>4cTA),:=,1co\A_l)tAKfd8\B"HR.jq;S@"0l7J;[;ikdGQVc:0'bhkjuD-id!Fg&*h0*YQpPES=tOL5_$p6T4A?["8WQ+dmQ?ldiu@.8DBT;GQqbYGu2Gnbba?n(,DIt %I"-[e6lY>Sp+#@IJ^2"1?2P\1l"bUkp%>4G4eO!,]ZBbG-S$]r:ZLSR=gFqT"2D&/%o$@f-paFrUHf@l0sI(U(jVfEohIdY`.7EF %YZ2il3ntEn(LaM)QcfVV!_D]A"7r%cJ2lC:gd-O9d\>Q,f$mb2NUDHInHM?8URBCHg[;>Yj>.Y"+/$`kBKfd%ir&-1-[Ni,KdDf0 %RgKMD;b#Pm)AKuI4^qN0n^LdI,Y=NKE1K*''/gn(S$6]^/S)'-i7keoom;#SC6piqkGi5qd:5[O00cb,lLHs/1C;"\>3J:roS4JE %BHmCkd&7@H2nKto2oRk8rfAcNfHHA72ju^e5$Y70`$&K55p#]3;Kj%YPiP_nZ6GSX/O>A\^%SNF&%Wd(bN6.Hfgg:bh\lj+iDa1SAK@ens`DR,DUXBL5a4'6Q/iqJ[4F]#PXF?7&d2T3);ZWU[n9!)3hAoget %Z\mCTeY.Mr]pp]aR#A4(313%?,2`VYDObF(hX21*fEY#1Zf!M %!Zp4p$W;OSLcZMmb?lMUq5Q;%@(GP`ZN^d' %!ACns)eO'%*+K6JfL0n&1G7gbTT2:LrJ>BD5[:8.D^3k<4A8S@)jVRPu_ga[As.ZU^Z?h[p_N!!kC5V)7F*AK %U-+L(E<@JC9Q!GH^gH,c:E`;o*N&a-8VXOXoDQ[SVTWZdVD$.Mac#dJ$.,&t<+!'=gtILM-L])Z[XZBu<0PKZ0eZkbA;+//kbLea %PIrb:r^*61SM!:Y<-c:GW$gGY>*Km;M\-g>WW$VAB`]oq]T;YX7P@Q#8dS?Z;Q&*9"@PPBg\)V(IY/T=< %T;5%4)pL:0"uVj'!>a:cA.0]jJcqgUgVlQrni8cSA_sIs;EPcfdLr,:P8Is?JeEeS+$AuIej5h@b %$f%;%Ynh_B'nH7h82"o;[$L@4\o[MLWsRt5RYK%)5OjgO*4lWA`Ao8V%n&bFO)KTi4^SlK[l0:MCo+c62/t.,P81U:1rs0HjXZ2c %)C5eWQSN-A>!&#?\ %Qi&nMo)=KI=n$7Uq/.U+'7O';/gh>I)0"Os$t@f,O?6fo]4L(Ee`XZrZ!1uX)o;i*C\bQ*+2kVtiG>]B\V')u_8#CZ3i`7g8:I+7 %H3d0&QYc+j3%'#b:XK^hbei0L==Df\_op$[#B+U\jqeTLXtM\*//^-J9IsV?@To73 %_?(-27@DaibE=+aQJV@go#e=I0@!?,Q=nTjrZX27d5a>*_fXiII?7!GRP+3m5=@3Q+q$1EqhH#?MXFHPNZ!N@UsOY]P#CfBCBC#mD:N-?N_jc`aVRWUZ^5A+87i*RVE$=h1S`/pIXqS'sf^ %XerL'%nfAo'XD&6XZ,#F]]'k^H9C8V.<0V^Fdre.H*og5UR\minq)=# %Fq6@udF`,n#kf%^oDC<29$>6^>c94l.<$CAG4.d#bq5Xt-:J[UlGi4n5R//\nWhd)n^uo70_+s&=F51k#WF2f%hYj7%UI7qc;9%2 %OPcK-V-c0QmU2MP>*KWPRN[EgPQp?I[?HdK[70:2HB[S^W"iN!0Nq;gL4p?Nt %,>MbRr[3;Z"QJo`i,9b,EX#hc`'d,"EbO@]k/Z<>1;7a7''sh'0nWS8G!>gYRbYS9$K7M+oZI%?E9Z]`SkB:Ym+r?i,6QVA %$mZVn"djU]9hM&YB*AH(:SlJ6XDk_'+]Ff=i/_k$L&oS[b2i(W!=g>YKCR;.;T&<-^gT:a'3hGt8Mm5>Yu2IA`2nPif0m%IaQ-1G %dMFtR90k`3QshFkjn3q1%j/=*pSI2dLk"lf#3;as<8N_9h?Oj/;$-m//9(e#S#LQW1KB)l]PUWj6XCM"8>9"4T9VX'6j[0!77^kG %4H+An(FZ:ffQO^`%VgcnP>1gi6lNnc)#t^am+P:H%jW\@_+Nb9k81?kKl"BV2i]#o(GdZ;ZOKA7[p#/'nA/@9`M#8pj+EWA14&R9 %XjCEJSYRVD$cC+'LB*1TW%!aj992@jYndNo?U6=p`P%.Gn@8Z"<"b\B^'jlRa%E7b!1$5jbW]K#59`[B-Q+!^Eg8'Kfan>!D9jYX %1fd1ZaLD&8\`?/7-f-R_SVU:WAcXBfkoPH9'LfUgHY-@TVVuha\d11;59?sU*nuru#L8/!:MRDrMWI-chOB;$-oRbMk%*q6oV1=@ %F)40G_/R)6UFO6!YP1RN*-pHS6>=oo:%'c9m.9"ku>.N`cWa%IqjaWDbVgT.gY!H6(JrJb3V'jCA#0/6PldJ\r@uk91$`_$.h4EPfkGrVE?+-jF'WSu$nH>-X7MG]4:l6YE]gEke9Cik4#gSW"0b/ne8SNd=*3kSrL7I2"WhY0Aa)%Zf" %rgen0[.N(EPX"_(Hg=X*3_DS>G2FR\Mi9Z5g$#?.u=^]Jf6:c^.X(- %K_:2h+G)I71-Z`E6!pd%i1W+pRtf.]#Y@mSXPh0U(ZdUp\QLZ/)!9q[Q+4Pp;]s^KfY?(/dX?>_5cgd2$p2+% %2XOI_FFg_#qB)G`"h#-4[!6A$GHgLIlAiZEphq\W*j5!nhIs1"-!Z%>\:P\'mt`B %hC"HiU0UY7*fULB_ZU?bqgAGo=:>jjmC(p,;8H_[nS\5P&1Ucj'+Al.O$s51&Z7BH)AOf(eV3XFN!^?<"B4jC,>l9dBqbL=R7o&@uj"]Md_3;L.A"jfq9mE/JJ-j.Td$dpK1D!=B2*Cpqs6Oio\p*d: %W*lm%._?ku(0%M?XtOoR:YpYEb3,e5!W#HIu3beq-nk\ak<;,M0"^#r\V %L+U,gHg)ifq"AD>_(Elgd)EJ(M^?]$<`5]%Cb^S'\clAe41:M;Zg.jh<^kYMi=*@3FReaSbfe`XYG7"o`th=>h'%D'(@.q^hN*.! %\5IG=6aC8dj-=+qtCpE78FRebJTT&>/FKmY[;V9u5&_sjfJgJ2ZgiaR?4LY#Y(C*,M-g?Ht\XP:qoGsnq %`WF=nPV6uI$7i^tUPpsJl,k'#;5WLPKICE"]jc1oP^e?"=,^!WJ.mD47[ZVbn57>h`[E?"YO@5`AYhBVT4*rfq*'d9IMgfda'6jT %j#]<@=D&-.I!lgIrE*^34!,Q&FllAKW9&L?esSld5A'%M*:(hp`I8o[RHrT&M$K*\3\/1`r=&"n(s2FqXKrc+rUF!&%dC&Mr'%2< %LNItN)I3F1/DN8`Ha(fNE0\.`YHpA"2SL(#E#@j=8qTrrl^Bs5M0q-qS %nJe^Xg`iHQ4hM<@3cdjTCOZ:2=D)4>Rc/k-%hc5-2*S]%Fp*cQ3cdi)q0`3T=D+m!V8m):3Mc831Eq:$F["Q"pY2pt>^^;IrAS/U3L+(!;>_G:B8(+m5K#VSpK[Y\XKuHe %pJ@qILNJj,/:NCtVNK/5(.JMo*6/JN\7U"c1W8cH!nSuaC?F?7qBK6$Pm9h\LOi\OJnpZB2$46X&6uP(W`eu.f/mrrnu-0gL>8E[ %RcRDkicbaeNbarX$_j()h'oE*f.;ttk2.Wc'3qk+W`ed.BApI?3Df5JC\7YOb7.sC7)fX&bP9["UCAm8W\7U"co*p')ce*Eq?,mA*qkpr9AI.^rigT[Z]:@am7<@78CR/V&l9VplH/eV^ %_YjVh/<=QF0`j\h?,rsLUjDVbDh`*FX$#!RbmB8;MDeq(LGCs'5_mchpYRCK`GD`VFQHeWk4R8RZ17`>41heZh:Vu.Y8"To"[`-[ %SR'p(mHfEIpBU*Pb!'KO(F&)u41hdWJRj%M5Y0-76+jVDh@QMd0"Zc"$jS,g>!h?m\?h+;4n/4H[)t1dhMZgJ![['pV25s1\FJXmJd4YO+Roohp\)*#]!#6?ISqVAPO!mGGuZ"lqSJ:^&S#41JTP^2s$at&_tj!C+bo'lO6";-m=%LE;YAUQeH %/7_b\,sfG6h&SG,BOss!iLSbE!t&2Q"fE1.a`8e?frN&0S54kfAEiJ4G;2qT%+UuDOHi8=atJUcgjl;YJ`<^mOF\5&6KAB-XHA3b %3QAe0b\TSnbheKP'lM4+`?d>k8077C^+(TbQXa84hXM9Z^u1h\:(8K\W=OY1!oaWT47;OH@/s&'D4ft=@er$Y_l^/>0`/8lb$nWd!F:WM*RrhL-PX@]([Kfb'.]>OFlGLn=Z_c\ELqO6;C=P4F2oPL#k %^$',YN0U\1S<]hDDmNsJU8+RZ_^N(5=fH%$2]:G"LU0m#1d%E1r]?X8U8(/#gtcq)ZVn5;R8;u(USU^RlA,ZJB7Z#a5imoDXE9O2 %A4f)C%`t2q.6RmHjjAk-_BYC8DZ3NR]WOn"Dg"r+g$]'b_b?-D#miAkLVPh"-$3+Em+d:mc3M*;[e.\),WXT]LjI,h84\p<;.t'V %3?F3Vo5bVLL(fY(ihfF)BQE:+@j9A`nPK042-eNRtF]p>iVB:q%fAL=8^E3=YblRpXM+ngd2+8Sh^7&31YF"3)Sg`XrmX %s6XP-"L<[a8EY'Mh`$&IQl-hdWOo3Gf(6Sf@KfPr %g?:?3$n0B`+5DJtAsh#JLCOV;1b7dLT1s$#DFctA=pf*.A+!C8l2C:poG8`tHH*8qeEI0]?i"pU:YmE:R!P2_LCsH\DD\QrrYQcEG)rO8@SlrmSF)q1G="06VtF2lopJmXfR0)4@NUXa?)pbQ2pIjoHSLXWLQ %%LqPtA%JAKr(Dn+<+[Mhi_a=Nl!2X8noT86/\d`p6H&DL^5,g;-@04!#nlDW48VYgZh$]jX+f6+1d=;ak*L-NATr;PZW"jY79@uQ %MX<^MX"`kmX-R6#[d3OWU)ngXWUDQqO8H'^eHICSTGe`EDl>niromM^"889dH&!42UM\$nGZT#^aL68g`'7`^@J//,_4'r1LGu-P %Z8m6L?Z>`Ds4&g,U@b#^GS\OGh@RYRG'l@/L:cP\tZk`,1*`oH4IC.J;F\mA`m9c^RJrS!H4cdgX %kOG$UI#X#b2mfY,=qe8W(=0\dm'YMZ5:0'OqqqtphH?bDe5(*)foKP8.,oj)&KYfXf42t\CC1%&`7-gZj^ %)f9e?rr,W&12f?#oB)#DI'Ls/r:dilAF!YW;9Du:7-SbR,H;iL=5pAVLP]VlIS[=OY>aGP=FUnVcg_J7i4X=G*=pBQ-$l>e.e3H7 %3$nD1H;+h37lrFR46k#N1?2TAT"^uC%Jb.]h"3soPs&eb&lb%/j7:+^fQ'QcmG@Y3Y*uDEVlBQ"B4c>?XH,53./Lb`CNnH`mIf:m %@fEF4YN!(k(gHU@@9[mHp;k3XiS/gj+jT"@r++UQ:o-gH^%*]>G6X?7:E5r?hZLO'j=bA#K4&0C6ZQ]IqJ+8tGc&F"RJ;$Q#b_JA %nnFDe`Okr%YU]*$Ef8f,4gFf+#-hh(E`qqDs*@,Cc:<);[\jD&/[>LD*>aNJ[IUl>IL_=pW?TRBourF&\G"_=.H:l'CaeQV"dA0p %q[opA"n"+_UCBar-80$Gf4h,PSJn5p(-c;HJpTZiK>?&_9WV?cZUO4MJ$ldJ2S'Le>@$kQdYTmeXs"``C^/G4hG@AZTb8Vb9oHZ %=T\P.fT@%/k:r/8=l#H.3jAcEqOuM0roL`01q?CXC9\sunAe)8@Ym?'R#4i`'<^84!$&JmGt4"$Eqtc)Q[S%;KFfl$"P:g*#PfmI %RI3hs2@R4E[nOKk.Xm\6,oE5.D[5-j42Gi!Je'^.&pPDq1slYZ^C1(#o09eXCNmFRr\%.pI6QNX4Ws9kn4KE&LgBVBVs!7?$"aJ# %dX)8*+/obh*WmW-1VQUpT&s@)cJP>b'k>pX6p!4$c?Yg]kIZZo,9%D9T(4p+;mGED/^l7e_O9rk:DgXTnkX!\^9PM>f-Y:q-'J%6 %DuF%gb_V&ZREt?M$GF',05aC(DR-r'7jL7.X0q$?+]dA2^"L\g:J\XZh\UOEVI.%4(YG?G[//P#rns-"^AF+Y<^0Jj2dJ&.:YDQD %MpA9p4.C#6rM8UD+%]:u[MM+*bE_]MJPP.*b;?*&,rbL"qWM)%fC-i;%641-cVoL@3BcfGFl`'F1\Sc"n-&1Hp8UsQ9A(ubWhhdf %hocHN;g1AVe$$7Z1d9=BP^Nhr=,mi![*UGq)9V4'boVXG]Y3Y1H\uE`Do+`\=n!BdD>JSIJVp#bpYO0`[KU]Bh0NhHiU%UhC>T]3 %q'lMPdHW6;pK2P6)7;/@F*iW_,?Wk2K9ZldYBZ,$4Hg:6OF$[fpY@81jELJG(%"/eR4@I7',ThC;&>Nnp_@s/8_m0H&'2*19-u/n %DeFpol^4C]Cjb+0:V"o,WM\?,=3R0&J,NbE'_&hp41q.NTNuMG_G.e3$,Htqd5r:/ldYAhMdTJ9"'^-c:EU!,YQNcg %Jn*];)mi<'CB)nP^0"EP[J#dBI#mrnnDLooLDCqGKoW54'kXq.l^DBoZ=\HScjYA;Nc(jdT[-H(o]rCEOGYT\SUr_m51Y1#1B26fB=!kKmjroiRn`V:.3*>?mN6M^s6F6ufr$c>1,FCWb"Ypq %N1h3CUe?We#at#0Pl1knLN`CL$?ff+(&^hAREjI3L?71VLYnQXrpt3HKVLsh:9Y=0^h6#9agX:fPqtsk8pQ65O@_m]X10X`jTg;& %d+4(=.![nF<,B8\]"mi/-!me,F)KuP>d5"9;%qe;r%rd?rG8e.jPq'5RU?Jsk`)9[(.A0a?Gf6jTP]!b`U7%,kM(?_L3u74%4p$4 %r3Hta]BLpN_*u0lXV[!cr+Z/Om,)5hA4(6dY[c.>cG!goaTZa.H"roLB.Xs,B8G]mhe'mj*!G_ZQkptgu>*`.[qm1]B5boA0q/9,PJc6]@UjT43&k>CGAlu*K$A`5r=)dub-8Y).Q`qtZ %aLT?WaL298\;0-+Nrr]nT>4K!#b7XL8$DQSq"HO]=(&Uil4VAtQFMLUO+`c7);J=D63fl`)))EG^ %i`e5CYU/9&6K)k?Pdt!O2GCC9%,iUNn,F;5mn]@6c.1.ZTBHM'"Kq_`a(UN62g,G)^ZW,ko@83U\rjZl-Mls-'RkLU8)_^D?Hb>O %?>NQ\YtbbI*ZcD[Q5g-R<5q(n?),)H0;-koZ)+26[Y&:A/6mG_5je64n\SAPZ&8grg-M2aFTqXf"?JRQDVAVJn?Umni'ZAHF2&F7 %q4ndb$"pMTMbVTUJ"E@LnEQ;37Q?<8(\Cr.NSXC">K6+AY^KfY(Mo!6?u'V\TCY7_2a?hbqf\M*)@Zp\gpTuU8/Pf[I*fIoK7;&X %G^-ENdA+$[VFe3CltqO1TXF]@D-aR*OVnY4f-p!S/Yof.iSf!f)FNiLs2>9DW0i6rOsj3H25=piMQ>n/#=!Zp:0Pq'48ucoMU>+J %\RJnrG@Pf&.$l(c@_"hlRioeZo`n!GaBF`9c8WrM&+6K29/UY7MtWUQ6epKPK:VH+7Sc"unB@d,(jBep$(G]k?U[Uf>fZ[>a3=g_ %[/`BD6I'$5`R`^mQ+pd$\U%0_o7W?;@j[[Ii\h9Zf17O6gaQQbeIJ %iXUZs^1Yi,N#rYElU[^q@aUsh]k4m#Mdbl(2%)E`t:1c)(0dJeP'&sL^[#lS*X %6=jC4GJ9G<;J5)4O.c93k*A,?I^f,X+kYHPe5%3U(__bgGJWou(c.So[>ipZ[Jpo5*)NH(.P(PR8;PqcqB^3TFW87eNfEQX[sdPMW41WZIX"Y$ADR=Q*_8*f/%pkm*sqRYh9m %fGt\^/ga^LG+qud@Go21rr`R&%,`.I1nkKkeVX\%7/X9Qdd[uQKcZI]ZE %na9nkqH?*sZ0.o-E7+bPc_Bq85`j&Z8)U0FJ1U_G8)U0F!31Rt&TBUi+h:A>:mqZRA+,@HHhB0&L*T7]F)O/uLqZ:)(AG*k;dmj[ %k34KhgBKYZr@s+*"$0@KQDg:MD:'uA:6e*WXUAFNlf*Paq1V2EM"#34rMT+4di#dtoXtd_`MpKL<6K2)7E\I9b[J9A^jF.M#T7l* %!Hrr`p-DCpg[>"B7]KnZ?`:`0[eikXqtiL6F3MBLP=&B`PU*Sn8:\pM5$?EC>rUpBS5R'.7WiHn,nS.S,QZre;SZ^()>iHog9igp!M/:Xth?b'rqO[dQ_Md4Qg*L[:dp4h7(F'\^[L=L`+U]Ij %)"RPn/;.gW9X9AF.*(Z`*PQ)<9R7]).;D+L)?Tt-)6RkHQO0%t.oI[ob%s$A"VD8tqB6o=^oSmcGc._H."Qtq:*J7F5 %-Q=&9,Bq'$mr"b-mD7e&X\2T9&KE.>W&ZclG!n9 %APhV2^2tN/mh8-o7P'4/)2''M;\t&Vd?(>'6:)`AC&0PU3A!V%.[WShhq6j%LTW$D2`>p"*s;OPB^gmH=6SuI44VJQMEKSoF;FF@ %DY0cV!]?oUJm)$Z^_tOJ+_8araMNI]OF7O5bgCn`ABQ)rH%%(;k[G#B6WXK<4=AtR_$HHG3Ihn<5\9!KQhA)k+kkh$Irk:'BWP[Q %Ym`R#i^ddr3G>XE\q0ah:.5r3./I-Xg,&32Hl;ccPF,3f8FR;C)a$MCdR?F4oa(_&`WQ4kP(oW*[GZ<'cWQdLKM0)r1b*C._Bjm0c])-LRilZ4A*Bu+ %&YbX6U;QS#/1JC?U#4:c\94GkZ""7j>]T'0>7+SkfLf02.SV,jYsV:#ob42k2Y^'ab\aIKp`C? %)cnmkIM1@S$C!@.\ijaNABOs()ZpjB[LD)$FDDXgr>9'9FDDXgoaiHQZN*:2kfc<63_=Yo?CmOIcRFF+r%H[rTB5o3*qV&EL+?&[ %XnDgRRBf-$fk!g.jOF3Ws-Wf92[tM`OT$tqMp0J<)*!n(]F64R1L_MVe(,^3Nb41^eQ[Gf\[6qI]#t&@:4%USr05NchAq'BK1;?@k\NZHkXu/R%%bgd?M(='Rss=Q_WW^G'I/Mk3P;BJa;i/``mB4T(a;+R,Dj\HcVa&hLk*acdC)_)WZtA0 %i4eHi&@2%eZ'bLu+^5/]hRH;g!BCY02fEn#+E#":j#X4l3jl5mED;cHX)Zt!P5Q!h@>sH"h:K*cXo%dD,"JJEP0@'7IXp0mb5%GU %@o6@,M]%clQi+8.ZsNnJZ+?Hl5Q*I<2k6EN-d],Sj3hnF&+hggSbm1VOK7WaPW09`-)?B=.Z+X;[Q-/oLVT %2YglG6/-&h$Cij^%HJku+lDTER32iT?]V4)!e#u8GX?Ea.-`Ss:RlcR+_FZap@L,b35'bSqgdPZ098MSJnZGoB/S.\K@nW!`X]Wio(gAd6=aQu/8\U/?olT#"M-$T'[sm>$`F#l>j!iPi'`7Ia9n5BaEUnII654e9?!".$-p8Y1'Djr_Qt(/6\#7d&b#%NL`J(p(*KXa'Jn7VUk^Lp5L$q200TAja6Ol#F)k68a,gQ3Oc1W6DNp\Wu(`O/u81JY8Q_b!Jc.Wh24_BdQaeX"K'A)3Er=XJ\EhL+T\b@F$@.)1\rq3_mPkMVMmGB#0>qP/K!+/<$Cm\d\9OR!_J/FF"T)OrYR!j_UJ`=( %HLeEP8pQ@at]OEY#.p;Gp]:+ES?-+#2Mf-LL8W.!&A%O1fjY9BB9b2cn>p:nkg&lWh_IeCbA9>I';",$LNh]:P'5Z,1uoTK$C.U1=.=Ld,ZKP %Tu=]0=G-KYiC*1L\Ne%E7>LP*/!TgqK/G+`)[:.o_LEnspt#bO7j"gn^_/t%TcHqm""!q8Y\+,7<<'q#+:@F)*d=Pl_M#'gia2hh %D'?u?UKF0lgW(=$FHa5aB-qSCN)>=kQGI)hA0Ho"Q1bHi`c\QX(W,cY:SVD3X!6U"'N8lDqo@bQQHA5R"J:6FG=h(F4EoS>lXG(c_t(F.!V%7+/^l9Z%>6[!7X$/m)9A& %:JL.C2(]HAC#K6t&7#^[WV"t8Bf8@TNJj5(WG*fS#VPih,KDa/U+g-^RUN1E2\>nbVY)%3Bk:Z='i=)O8It@QVYZjm3-*nb7FLin %2(^''[+`t/3@]/M+@o+e*qD<_gLA9^#.<`G&Zi\YXR??qV$XL4L_:u&gh:U/A#Eu`,6`@iG]X^G\=t %kkH](@i>WW^BQQtfd]FNK6@`A(66h4`:Zo#9<5f[bmJ.'D]#LhBn1[fQGiGl9hX;LO(f<;2DXK^B"&D0lebC=s*,k,!n7pG\;CPW %\EMr^qVm`5K?"m]F;o]r`YicX"i/`Jeid#)J&-pP8a)Tdsd9b^C1%[5T,1&cHAZU)Ii\UHIXjYChCTd:fk%De\7L4 %rYjpU)`ge2qeKVG$lg\mf6Pc+FM4gIm!7r>2hU,@a4s]R8;D6M^BjO4rH>uAo4a%$G;E7+="0amkO^EZrQk+DJ*^jL[,4L1M$Ct_ %\GkStT*&:fmnj*KH46(hoXgom?@)lj*lFEljdPe4b!k7\:"9a'3rtr3Etcr59d]Wmh'[6eUf\ZjYdjQ]SG0T %D)"g<2\@!TGNLN(QF\$HD0)"%o\EGV)*\qoN8#)7#27&"@Ob8M^L]Id$*daTIIJc=.s/$?M2m,"+C323DZjCk2ZG_N48Wm'`\joD %B=kTaWbF-]rS\lK"g=@t/ub-1L+\/dl+VXshpO+Dhmh\k3_.b3Akr:Yf;V`noC@Kob)L?$cX$PR2J(r'*q,b6iJDjM2]dET%=R+j %-Dh2Nh?eW>GM85(*.LkMeSOPJ"k@6Kr9!<0TCgm7oVA-C."Bg`[Fr]+3;fjm:KlBHUh2[FrC$X==E.!2a`Yr4^WbuKG>%Lf=n6`Y %lY5:q98"5Zk,E%QI@.X\Z+dKnol,U\lLkIX,.a80,o-CXCeHuM=eddZodqt;%k..Hi;7%LWsM"LH%B&Q$"r$n4-a!0,;u-mJ$.Fb %0=r%2^Y4pr52UUZdnT4(r9;8R'iTKnp;*;_q`d=fKC3j7#)<384ckE?u@eohb^pnpUsHd7hPcq/16%mu!%&IGW6DoXL#i/oR:VYhW3(*bX;[9nRmc^BX6^giQ`k_u"h(V&imZ8;6j& %UKd:ObC8^n=W1(ep7hGC4EB6mI:E/FpE&4QYW8I#XibP=mG/I9@p\PgHE+GbZ>-luV^'m^iL;mmQB7g7BCRPSQUc3teAcn.4lpuK %=)TZ"mn():aMRn(;jjOO:AI%e]-YPjSo@V3DJ=?\c-'u24j/$=T)[G=esL`U^3&VbbHpIc+^Z*-=3F2pKqd:)6#AiWG"^aD:UhkH %>@J]/7Fe5%48FL,7&T;[L\`SKdm)`:%(lJ-lE*N%]hO'&.aQmGZmGWVf!*+j1p5$44+9iDMrC-t2V43ecJA"p6I0]CHQjf;G:1,+ %l6[9!=tShsWV^D1IUHSndE`"_jf07P]+.T#2DKfp[;Xo!#S4ItCV5N;af-0RY0?QZ1E^T]QQNBec`6p7dl3/0Zg@qG?f84P_i=3< %b.gocCju0#5>Q]sK?M7`jM`SOF1:;('YcI:E,N1"Y;!jfY/]#NL2HC5%[:Vs_$3dJ5NpS0Tm58@fA5mKNKCcq50?pXADR'R"K_T) %iCb8heQ;?++'WR-Xgiu;Fj8c,:eAbs.JO_8r:#RB"k]_Zoh>Ts.bdq.e_RCBihf%LHIes>h8m%Srj/!V@.dfR;_?[GpXl@SnOf9C %[^s?@X)4lQi7Oo!dAi[N\%9GB;V]Bbj-pD,pK_3+V,ZIWiE?0NHm`h^g$/n^`Es4/Va[V'WnaBFgQtdn<9Dq8f-]6M#oTnI$Y %MOm8O&/k&\2bF<_MdI0g[>qCnm'Zh0=$P2q_!+m"[e`M\l;=VYI,(a]SZKr9?=Hq)\*Vl"URUORLpPpZkMZ`q;f[67?$1?_O1%UW %N(p_E<_mbdagF]fc?bdJMZP<];c-s@Dh5t-.+`"rTj4r%^YCfB[W[6s^*jJYnL(s-km[Hh7pQ.Utm\&QIoi3qNcB@a4YZ/bg$;?2aqWCs1jG/sYePafjM9fWNW5*Q`YJ0"n %;NLiQ!YpSSq+OW$*)D#gPe"rm`li)*Wq/%$mpGOJ1KWZ$g$6.n;ouJtDC;'eWCE'n%1s?GQ)AQ#A\pqYfi6Jd=gk.j3ZG=@(@oS4pE9)+drK@+[qA>kDjX,9C\A7c:!K>4_t2-#Ia9o7ZfsZn*?/b1k*jeT %D]U!Si0?6"1!a=Ja"kL![X"fN6XP=Q6bdh.'G9629;E5QC?M*/fO@5'fYS0c`GoKLoS9o`o7mmtVnSYT[N=B@@XV3XcG\&,O>&B_ %ll<\*Q8&38WUO)4gluJ"E2Ng9m0AtN@H_kSkCQ$oH)7-+]KE$a'T6"j=Bl6).&>ZZ'A@WpY0]?'rI%TW=T`>/\kVC,k\M333had= %f3-,K"SYTO^?\eCh23i4S_762`V:JQFnL$sc+K&oTDKW2CJo)(&k5]B=,PIF+[.R0E(iS/pm#@$q;[u&S%ENL,2Q"j`IR]UF2&)I__.qCU+cm<`,"kQl_hm-Va %?F=k+%=Wkp=O^4GA!)i/BQX+@ZcR(llu[H5dTj&%f1s)(j(;hc-tLA-3Nf!k`Hu97=f3XUkTo2[a!OJ>>&q52pQ%>3pdeWt?U[mH %Rr"J*,'TSK/*WIu:+M3=PBikN.)-\U6Y@4%r7iMjr+ud[f1hnOFH+X2LcjW$$J0*s4.^N-5lYhngU6E25Z8R)hbmQp`%UmfqjBp; %DaM3F)""5+-TVQpmo.F&D3(/=Y$Uf?&^]bOVP;CCA3l\\;8ElFd_9@-/6hS*A`3FgCWRfN\%KO_@sa2:]0DtCD9CG>n5j0">Ss1O %Zg_cM\=>eMLDBZ`QM1c`Hc8)ZN;0"$g%V,C:$fQo^)$^Zd3J$S,I-R\hRqk=02i4KJlYUC3":?G+$&D=\4QPIS*G&.F6\X,I+Qbd %f5.(1G)7b+@;!s">OrW&+dWti1]4d">:mON;0;YKrD&]nmMY4Eb976L=do4]nC`0ketdh>gRAFAWn=aJjmHueh\gCnS!%YW@+cfS %bX3`DHf&1dK-a+Lqa,5FT9#"15A]4(ZtLUj*l2WR)%dp)H[H;3%Wl'/3D/3=KFGhpK:BF;POp,"DDJ?[GZFI[[q^n;]AnLV;4$t\ %H5!tje'6ZZ?f%FnldIf=jrjioBu%1`ru5+6hsBJscZASF4=(s'cLJ>2"+*CB\Of7u %^t0S0I)n[8(/sR4"7$RQ3)#5$IMSm]B.QSMS+SX?A2?04d:Uc>lrZD,C(f,<>IebB^Bq`_frt1%@mIl-@_kcD!@'BpZ_?iVpf-Q> %8[Gj\WjLQe`>8"uIkLI#^C],\&qTC1j69QkX>_+Tj#=a=3U4KX-*WpeaQD9?EPJq'pjk6<$!fLOBJ+GNZL>NG-5A,#Qf?+"8;Q=* %mQ*^Wd,Oaqe!c?&r\D1,NaDF&AFB`9kc6]8>5RnO-k3fHFYo>CY4dL++sEe8$[mGM7lOfVfCQ=1#Hl5[l#k4&2VN3iU2`iQLN_71 %J]YWOfie`RK(Wpo7:Dtc'dO[pjRDFU7I[;[[B1\lK-Zai:8D\f!9FjG6EE82!S`&o7^7s'KclP9]@]4#,FjUfIb_4>DBGn!9 %jG6,aQ(T^kRfI,*L.n5t@+N,>dB*d'Ke5GN.)gs$3lGHlfQR_nHaH`2R:%iL_31:K0#3Q*DAhVb_jCn*j&F8"d"fb*d@T=GL;&"C`=WXk %0uSUYduV&`U#Vu:MA!$RqpCFj %pHj)_9?!Q?U%SRH;B`S265GIoRFlK9PGjZ)'`#2@tqf&@gf`aRYUCI&;95g9qM>d?/HqDLg!jBRK3;E?);8YQI7>g0Vdg$84LK<3nAE2+p+"JM30,^&IlA %S?L%6_lG&'`Z2['F,2Me);Aq3V`(MULk!C8As)Z"$rX?8q?D4t5a6\p+:-j!.*A-#jFEJ7Kj9D"'_d^9,:uCPGh,.IF"_E$DE4#3 %%?r3oira;3/W.8M^:Dr*Eqa$Li=ja"F*G<<$ZQ:e10QWf*(bQ+,m,?b-f_98&/j9,?/r2UZ*a0uJkjC?il6km&+B7B'dj3 %H0<0_5d %H6GGJ((7Q4A[7%t6Z[jmh6;Qs@LN+05OJ7G:uGGB!ORb:Ba@^iZ+QeQCl_L:Va@AG>%\b??,s^p`Y1"b:3_[`f1.7eEfbS%X_Z[qr^=_;s.6Z&/nI!7iNZi]G*,%J= %\4c5aMj^d=6V>H"oGs"=bAPZ#QW@h@d'e3G9A@[A,PWf]3B"Zc%&:Q`lr:``ncSYP*gqo>!+(=Hh&_^WjWun-b;8@i[RALYJTJtm %0]U7@Oq!Y?hI%jK;M=@_is'=0QKOlW"s=+e)64r<^sJNfU`&oC4GKbnffj#t&fCcOnCW %LO%">=ZR7E5dA)b>':KJLs+Z3GM#0"G(X^9Z8KJ^q!fNW[![=ZaleFLk?c0M@]ALDZX;Tc'C?aX#NQM]TC=A%SQ36-^\nQ[#`3_Z %qn_)C<$q7RDSqfGbm/3"]$C]/P)f0^kTb:oa=9,gAU[%2Ypk$^3P(rNbBUd>-%)jZqSPB[Ih4uH9El6gK0ktLAMPE`fdi:);C4cY %pgKl?O><5cJ_roG[^sEMreFf[d;.!Ehh`!dL@OJ[1:EuFXY>"g]diW+Z7RJnnca)ep/'1hXA8a&N(7`'i[6'$2ir`Q/U(;Q&,(O> %]b-AhFA[X_S6a#0^)2"^D*>FANl98i(#a",U>9/&JnU24@F8h4j* %=(lU/"0UR$jH8Ki-K8KWYW5YifpA#0=aZ!,QiWc#_]%t%>2JS/21`ILq8N'KlP1Rf4gSUh,`CMBO0#1\I7[EXSJS]F %2EAERBB=F0sNiS?Yo+FJ'mHoRn&6eOn*^6+GO1./mE!%AldL('M@$_5nC&LmTe@ %THtl2M@\1inJanlk2FTE*t:$5XZVN)*\nf]4g3]D(Aa-/B[a.Op0fg_!/4nI+g\"8.(/pn6c!cA^t*;#)G\oE)0WFKmXM:uW:\;4rQfH@+F!GNN4)"= %l7h&Rh650][Kl>("PDS38P9Iom&WW>./,M-jC^htZ,Qr6qM/c`k_)'!B0JkGFe%2Y\=ZA^(ZZ;j@iVO^Uir91eVX$rniK5UOC^>Y %r,+i^I^d$;a*C_rRJMO,oJRBm9dh@SYCHXV'p4d%8'd7D9Y9a_t]]r[bTJ,[IrRFFiYrRC?m`= %^\+Uj)udD2X@p$XCh0j^GEXANj:tB_qdtS'^(a4B.#V]'7C:%9Y+e#B[#nIQQlN$jPW2MYI>_Zs?JDu/nJ1#/+'c(;F0b8qj1!Z. %K!g8G>:%9VRN=VHo/]:Nht]*GF3uh0Tiiod*i3`P'ach?D?:ihEEsR.ohkZu6K??1Npq9thRcY+H6J?^BALYgqfZ=qUgBa(pE`kX %i"((K$G'00S^f0q+5QHRK^t4nhGZAPV7mt#@%bJX.Ys"V/K*SdK(]MZ<62&FmI]>-"8Y`=On"*167kFn'(L?i`BnIR9f<;\PJ(i@ %AGKeP%^;;/Q@b5IgN$El^9_%VXJ)RcK,QH*It'o,Np91.I47*rP+>&sIlBqmeh*N<=CXcrATOuKYm*?;'m"faYjZsr7Z39'P`FC4 %I4R9[rM)8T%uVIs_Zmqi0M`)Z)&s#>n;A,_%l&iqmXO6 %oKG%Id"Gg@RDg(0q5;+`>7T:X4qH=/2jU/0q5;+`J2*b@l@O5M_2Rr-fq]tVJrhQ^N@&nj(eOp>.\!5ek>jD %PlSqoL:`nSDo-.1mnU"!Y6@gThqs\Sd2ICFgah)*mV.:=M>\.QRsStB!EUUDYF\'M;5J^K6=Q3i[H1;GR+*==L?bau>m*ZtVeBA] %kSQ9a^WCgJMO)PW;luYN%".pk&!,@haD)kma.!Cjk-lp+m.Xnfe]Kl%qP[9pMemF"j,NE9)\ %O35[rkp8WA*2PW^rt&%0k@;H[nPXn[]@.OGP]QpB@h#Du$CWHo0A1&fl_>f-<$=E.50@SQ>m5"hC.F)WelADY,fW%qX-ddV5pq"! %Q/*B05((,>*V#YPYW8bKEY!m+You/DD@8K>%sEhGG]*mDP[qc5bP#0p2^-a'KA9d5+[oLjLBEM%!H"Btck@J<#9*c5r_H(a9; %T45'6?&keuFKsJ[[6CYO"l=5nX2R!]P&1$=@\YlZ9?54qMiIG_;4EP'kL8F"M_49MFdoL@@0p_TpM01$cCAU3U`h]dP:L8P$mE?Yt3lIm3D8*50`)T)52UK+=mH%FeGBpR/#rQ^B4)ZoD:uh/,92ZN$Dh_-n1'FF*@hUHkdIVsrFm)te/Q>BLT8Y=# %j"`LSn];-gj6E7jl6_AgY1#K?rI2WEfK8+b:\llJR[c5!8O61TqArU*/u9\h^1`nZTGn&#Q%6*VQ$UnX%L<>,CoJ'O6'ZtNU2g,[ %#c\"1X?!?u"lYV>HgMLMpm$2N(/>(Td'r4/5u=CjR*JN"3*da0hO"?*l#!jd99LO,"&2hM[N%[F+gk/!^`T@hc783VZq!@M))&53 %2e^fdf2O*n.?L27p^#QOr^SDjgm]PN:2E&E0VBYB+S-V-IVR]S\!1M;AG4SOoH0ZQ#';I.C%9,bm!Hs=[9h;t-5^WJ %,I@>Z]3,G*S52GcIkE&5S&@9_+@(4qMWCi40Ni"d9Zt>J]\)W_L\Y %MFZm5j%,TOPJW6.rB/A)$8>c'lpgH^ln*lP!!"P=b>jA<)=Mrnh.LbZ9e4WV4oUhNf'^cK\UVo?a'';`K'!#l"8,-7&6o.RJc?OO %_*$b-b$b7_17/gk.!.a6%b]mmMbr?qfc$0M^tjCC!uuP@$C'AD*!Ke)p'V,jN<5gB+ut\*E1jon:uT&(d]RDllJ%K%Muj1$-c^eQ %;;e,<(CDuD8,bQW-6]f)P2gF#\YWl@J_QI/:AZib9!.L'-L47_>A(ApRkt,sbM/:j(8mkA(%2U!.XTOHXBW=-fF>eQ$J4FEY/6=d %S3F>@PP'0CmYnH36-\5@3*j[WTPr:Lh%KeeMY<_&0f=\[3O[D3iN+rMcPK9.?>?? %+UNrPM")\6Pb2Z;*S_]1>;pj-p/3''<#UF8ib,`AnBrgR%eG./@\utAB,#C-:'VW1cu.qK/4S)Hg',9P/HX3"ptSCOKb9Bk0-(71 %ek1Q).+Vn`l+2,F8lo!'*pdG1.k2]4:Dh@tBF$_Rcls5u#a<82(d!ZdjEiaV\]i/NBUegSU8*U[WaTLm:<57!2k";qk4)VP4DNUq %L`HK`85[O9iT_B]>BFG-oT9AKkO_o8uB'E)'JH4?FN5EA;J:7ggoH4a\[8ls+L-SI3IEE2n*F'WJBI\>bQn0 %?9nGr@q;bcK(Ouj]k`#7IhQJQ%\C0.Q=1"ZGOlZA!kW\6+*ua1^4L=@G2,$`,jEoTr]u\P3t,sBrcQI@an@cj2teJ<*Ps3Ym!n;J %+?.u^V-a>#>F[COB\CV$f=.X1_?H9<>J(k2=j;,&!CkVIOeo(]qKq8Q?Yl;hg<'&r&1N4m&>dDab'>Zb)rG)a![a[OI*KP<[EE<_]o;X959W]Dt4nW>!EfV!^(G'jI@@q7'U?*,t,E1IDTm`qL#S"ek669mY5TiaR)5(-pm51/^oIV4A\!RP%LXeKARc %"g(L"K-dXL0iKpfCA#;75pLuH=u(ZNPei;+PLVY6*]#g8l%^LE#X>O %V<\EKm^D_`\uReKh>`o"p`9W'U,O]:q!;'hic.+G]cgp4&&c/f9s=#.$M5=4prMf='gQhA\^4DGmfLXI+aT&ql<47 %rNZ7[qIA00!j35SW#sOIP1smL9%>l(2,`KpO:G16L6q_J^KtN9pTB9eI)iCgX?W!Obk>.ldV,.k#//fp^HMoG4%0iu%3F+=J_Z\[ %Vp_gKHM@FSr@n`Cs*n$u/@gSH_tFb10NNK-DejZecTb"mBH=1ctfqY$%#GL]eF0[/D.R'PPJAf3)<_.2d[SG%[Tq:6Tbq?WIFm'eKeci!,'k@!dEqAR?E&5L`aS7$MbEBO"OWjI6R@ %T%PK4Z(.#nXu0#qjN)GRK,#s7^^)6:M+=O4jqh6@5to`dU_<.OA3I+qR6/]'7-N-jTa'XQ$,iqj=M'4KLdF#gPHt`hZd0?>h=Cii %G/=D_k.0i99%O`&H@K3tRE&F2!&Dhb>B#tRVp/$Sds!)BXVLaKW;7MMaGj %#N!6`"+NOR09_uS944[i'S@!L6#uZ07gJ61G*9MLfPS69c#+EIhChWf5>Lh$d,'8b4MT`uPJ+WB5:PcV.>paY[?:<,j %OMfJ8!MLL8aVYTPd'GStE//afH;7&h-YMJi^PnbdJXh]ML7#O"d%Tt[T6$Pk:Ke\Q8?X=8 %rF^ON7saclB%WYDYGYeS)N+Z6ZX8uk%39Y(`3- %mM2".:U.QNhX9s1L\N(`<&fP<&e<\ZnWJ&;XS8"W2$PNCSZ_OVLOV#8\Ucg_.ELMGM!g %g>GF9-aApIlGt>'95.rOM\oTlZ4ng^NKY_ImCfdb,EUstr?OieoI?B7/9ONa<4fHcDas8;U(mGH$Zf-#%t\srP*e;A",;e2S/n$OUed+[be`R-5TCl'rS4oIfA&8DAZiu6WR12>7Db,Hs.D^U+4Z$s->!*S#J'[e %V3E)D62j^F4`SMi@`$Q6ZBP8-'k-1o5^`&KY.Y4?8/\g5SfN#%\=<2VS= %di"-BdZH!'k]MVc(F(;XgNX-Z^=\lM)21'f\dk?_#i7/;59MB/6QIR&'-[f8f>oCa4W;IWG*!"AS4KZB%2RkC3Vg(p0]M`%&Yks&p_:;5k!REU^YLPSA& %(=]O4cJ9K"FA[!;YInH5?d\d(;I[@\(NW?4K:(JZ9G!3Y$cLt<;<)QGQhl=8R6);23rbXUM4AQ4LCS,L8S/d$!1>EeZD?(jCZsEW %N)]qd&"u-"c5`7;VIRq-bca.DhPCsXCRo!X=jQXs)HTj[dRVbX@&%)ap\%+pPf]<_=L*Z?d-WjInn*s7f[IlNaVs"GAodi=(,+4s %EFZrJ4mb9Zjb)/Rs7'4V'6?o^H$c\`aO+I_;AXLK3j7+6L76)\hYJ]+cdMN!G@dm?'++k\Gcolpn)#B.-SO4f1-o?0[n+CNY^`YkcK`JP/?mBo<.24MOM2,!*Te.aJQZ7'406K:HXr9MZ@jDRg%^T<:O%@ %QY6%H%C2,79\cZp>7Q&JXBK%8an/"NiE,d$l^,4@NT]r)NhJ*HT38E=V!.GpRGV0n3;=:")FK9c[Q5CJ#FT$SW-ILn]o<`O^9 %!el^3&Jc0jBG^I9Nr[F]g[rHrHn5HDI/T4TuK %Tp@4i6FKD1oW'N9(>BqqQNtjS%Mg&hR*J$s*Y)b,VOm587Z'G]*f4iieK?'/cJ!F9(*I,4s"Si)E?2dL7&L[]ihUE+$du#c_f=$( %fLp%Ao,-lUB[Qdo+EA#\fPqFA)&Rt@\:OM!]hBhq+> %hG36+StaS3<9`H]&8-hL6'^VtVS,:fKg$F%.^n\phnQC0:I@h\oYrP#g=*.YU*%?@\ReQ5"4gBU8dU\K[cbN)4Uiui.(6dqBhq)P %$h!>mXD(Htb8r^0QT"5FB\>b%J(q?^5-ns!6d$P%]23=tZh[q*[rKbTF^?Vt$PD`Z9m[f0&"T%s.nHAom"gap8Ah4VZj2c)=OB$X %V0/%Aou)1<.BRpE+=ZDA]ubUH7WHOQ>,dfe/GSA8I"I_T*4Hhioi/,nF?O#NCMDiou3W8/cM7Qlsc@%&K] %e:Zu%:mreMe2(5b[d%F8Xa2?Pl=#_'"Z0(nNI!o=jI*>NU-LQX$PQ:J$k8GdQ]b7i*q[5e0YTs+Z3NE9ZDKe/R!1OQB]7DN#3?;gdV07IL$^@i;>05a$S]hKp$DR,`54,#/F=:e2J`St/B=TPJGNi;DKNpET^iYUt13^'`:-g3h8-;6C&Em&(. %&2a'cabJJ!E`]/Am;!9,\GbMI1L,+icj1^L7,SjJ0u[f(rs(*0?E0M\oacuZ_d`YMQr-te"g&JqMec]m'ej/MeRTb8`YGYLnGC[a %0oZb(0n!hF8in*[O;t6N+ir'3:gDl$+!5A%"qI(3';R]]-1!=H,d\Rfin/eHXRjiSpVHH$DO[XK9jg1Kdl*Nr!E70Gr\pcjQ4ZAS %`F.D3:a8Mp?Onq8Zs?O3jgJ'=k$j&bGIgWh8>C%FAsp*T!?UgRqXUVM5h_79WuI['$)A_LGp/e0NE(Ul(WRX:5AQe<8]?Akd3Pk4CUj$m#V"$:8eSA8io=u1Jh4tm"&M=E78D>Nb6=sT#P,Qcm[,spOG>S %+hII!o,C'bTip7dQT/dm!.3Wr.SAK#"HZZB/JD:L3GALoNBuLOp&2+"-K67&l+TM^+.%)^FGRcNb"'Ln%?P+*f2BM]1k-:p %p*W2=S:DSBKeM?]p;r=Bmd43E$?1dFoPCrkbLo\a,?:Y"-BFiNq:)k:#9B5V0++$WV=iN %)3\\e+O6?/.B5=s^^/]-s4,BgRh(62<-;T%*JY!c=`e)**KS`F^L6N,e(0d&.(;!2F<6>h_n1eI'$js=*TMd#^C#kI[f(YCd?mEL %q,F_2,"]rQ)=soNV`J326BW>OWhe(I&QkCoZ(#@fc2>O6b?&Rb"42I]6*P5.pZcr7e%Q49j245$$lq5-86di/r4im><,?0>lUFH0 %Fm9GJPBG'HO.+7015f!`9L62m_([W;[TK9nr_/I-;CM[gTD#sIV`==pX%2oXE[hJ5&Z7kIQEI/9f%NQ@>0thnG5L^I"RdPL^&*&( %ir_KfD1po[Zl_1EY!1r4a=[IKmi\5+)3#nnPdt/(9]HkQY(sDG`@I[-[+C!mlV&Et$%7f(71;Jk77P@t("W1+Q(a*NCuB$nple#D %m)5Tu1$b>+)a((J65d8m6"`E.]k+&t9>_dV@D@t]+J/79CYNOW[V4F#j4WCceCVKM'>+?JB?\=-.:1@P\?e6[]W;q*\mQ,'b/j%F %j$K1?P1WZW(6!E/4;2P.5?Mstd:M_MKf"hO38ZE%_Zcf7bko`l-of+k/:K#2Y.EbKKaEt5DW&?@/Rgbp.M8(f/%QFU'6#^:\t:tO(.Ulg:C\W"0!Ae',YrL6XZF7K#F^2ZSm$;%fb6XpBnVI`tk"Ca6/8OFjXc`aRM87>FtTn %UDE*)X&M-?GX-cFr(<2S`$IoW68XX^$8]W3OpK1?_P>Q&@7,ul6;q@m&T8Gu#U$I[n0,l/4\0GbA#*]26Ad!<0d5kQLQC-L<* %\]uR!*MZD!*tJq?"U$:aoI6!sbQ>VaYj*'R8rEFE#ZQZTp#^M`70@s1U$G1/Tb"Hm+(j+C0_@XHpm[3[qB2h^5panYGn[#:^YV=" %IaP'tJ%:M'FZbS>ku5/C:92g@9\,+.<6+6%FL&I>9iaW=8#hbT9+@gM`/&-gL"'=Z;E[Bf3GO]-&%ZWgs %1uqD0ILD*4$j.k*Nk<-t7!fbU:W\\,BFp_32d-pq6o'cFbq(qb9NVA/02\$E\I8NDO(lrG%*JrM8!(so'pYqWn;G-uR6Qgm[-!g>N)7/F=c^m]'mB/E8-VNC4"PG.P0#F"KLkn-FhdQ5KO6@' %KQqkS,#mFlR"VCn#>nMr5dq_+^BR:Dm>[7F-`V$kT#d`"ooN+8Mh=R`%fTLr^?=KOo\FC_;u1ap8?$?W[FB<#)sp^d.,,0&:ZO#` %eVs^BF"?KahtZ5S,Gi@>S1CU0h+4M[KI7]%=uT?Z)PM<$\ScLk2+jPmYHpR'>0jdB;UoG>k?YR.O]%ihd_0Oo'GI0_3Dqg4R%@VC %;Q:WQVpW1b2+"3=kIQcgDD^Ta2c@MP^_GA/DPU5hP-bMeW>d;P#XW?QWfl<)3eBl!bFPS!G>(L<:]3@P8PlaR@,a>V^t''fb*/(n %:Y-0m1a8+0AJkV>"@hj"ols-s<6^C@=-(rD<6b0%"NO9Q)_#GUo;F&D^3+B>+)U>I@L/6(?"m+G'].KId7s)gr3=(4`s>=5mk[TN %g8UlG0:]=sT[kVCW<^:c;:#h9`mAHCT_4VI\4noVJm0Kaij\m+3"og;`p;^\V]<=]5'hX`+q]/?Sn64W^:j`R]jJ[bqkVB=G0iti@9bq&`tioMVKE;FnjB0ufE)7?8p %lBnR9_lnULF%+kbS5@=(c8W>1ZdEbleP2^!oIMWrhG^CnUskoI(-&(1L=QJ/9Ik^VX\m,P]Y$^*9CbR2UIaOV3O&pioCKW %;\F//B$/FK%uX"cu!!AqGZVq@%$\]4XQ$bk[H2>d>Z8?Veu$36j$UL?*%k?AWG69 %PnAH?qu9#uo;^?[6ac`BiOK2gF#tDP>BVq_2[?BZ*'g[J;FlsBUa[#.74DjOcP9HT9hF/B.O8s3$b+T9$SEJ*e0aKg05J=X"qP'] %*Ai(V,#*pZVPhn?:(jd]M)f3?=JuL-YR^<$m^UKlJDPuWg6iT)Jdrtfck\?Yn0s#K*]*4PHf2i5LBq4n36IXo+_rN*YCLFc"?P!/ %mNfb2F;Zm"h:!BE))IP#7h@4t(6m1nmD2Kf=>'6HGG+Vl+NIbGO5'PCZm[AEFoE+U`_:@X\A_DA';0Q3m`$\g2Zo?0Y6^O(RT&9, %'rtj.7ZL(mSfH!e`$Mc=;'j$90iR:qSZH.;\ore3/m?aT:,-OS9Y8/P4^Gb\FR9FBPHfFfVu0XPHUHZQs,dUd?uRcf0Vs\&]&"*t %7%A=G3%i3%J7"7%/J;[3>m-%`7URl./Zb.ZlXbX=TuKL*VM%CQJTctog:eP/R=sNmP-MH8Xi6; %THP40=]#UANYsBb0')joMB)RaOo-bd;WJ(ISV,Y-N3]3.D8(K_Y[a-*W%;d\]&/,H.V$bXIl!)-Ahb\%YIJ/kERX-<]NfZmKE:%5>%$WY?Vc#b#V$a`@3S6L9[@s[J %9:I$L.d/1V\*I!J<)2o7<$kU*]aQd14\8BZqI+Ju>cLZgIeCrF3Bd0h)e7t$E91@YaJB6RG0G8"jn)s'9W>uL/>i`=Ip`3,(cab7 %4Xd70)(;BfS<6`#6`8OiNcoR1->gJd@:uOG\N&d.?tj\Gp!!!R8^c`VNB;cgc+t_W>Z#-JF+fZuugK\MF5`TG#inP %,\_>$WhCsZWhZr3aa.QE81Y8L/D=_1pni&D3/$:%_mIXaim:H$df:uk""\&OQFYM2P%YnDLpRXU4+&#]2;S`,JSjISNRpQ$3+[Z_5$55&"LtZba*VW` %q"3g?qtW(qrI$0V!(k.I<)Y&+mHRMtl,'"Db(Vdl6$Yl,21]%K..IVmT#?),[pd3&9RD@`U*qd@UP#[G_-3KBUY?n?eLjJPn)p]) %KU*#kd#Y=SF>RFV_`c;oB+IX2J9Z9o::As0)E:M*j69A=M_aI0^X5d4k'#+l/@;s]B+Z*=<&m`%??(2&%uKg%mc;.[qPjgb]9BU= %DFsck'NF$R8W5#O4),&a8Rae2l6ko9H'23UgY6d-k=Lk?1Kd/aAcV!c@Q]M5@L2-g@QZs+B,'N#.V5$L`c7Rq`Y7M))8pf`8f]7Z %EL\DU'+ii-_`1Hl45GOUF.OX>"?Y9bcI;bl-K@']'&s:mnaeb:<$qI`Bp]ZYjGdHhH'70$PLVY;@);H'1iJA/1'_4A"45+mLkr]/k0iP,iFFS/Ig]%8OY5)Mng1TP>p%`38#_*P>p&KWj;nLSg88ddX\sTjZEi\#%t#rOLX!.@U9K% %4@qsnP>s^-l27:,DU->.ZIZu`/KFH^K=#"IeE(@Zum@(mF>PXd2"GSV;2qH'*;7b./qf6/5F+X>JDu`(\"p'9DseIUp[XR#oGYQ$)pcK:BS$_l)n]sN5Q/H-bNLqePb/5 %Up@Cf`fCJ.?S&B5=/&M*=MIsEh5!JIrF1%pkTV^F`.]XF0TT!kM5uJ\C*'Kpb!MXu/sZ3s#*HFhZj0A?a9OjiNoE7?\Kg\1A#G$$ %FrCC]\,$EKZPZ!P %`.]XF@/16XEFB1jXM1AR/l?uBi"[1t/bb0u]qKr\Lp7Q6RMKdg*=jY<"< %Ks(`pUP=rAE4*l"242=9'CHE;(eWf)eLki2Wc9::CtgX&_+51TY'(sqBe5,,mg^O)86ibuhhI<(E4$):`f26`mEalKNl6XP?*Gr9 %P.33"COa3c+XA\!kR`1tQGeJQNn=kP*/P%F+5eC_9&d]%0"f45+`VqSUf8&r[5O2d-)rm@9]FdgPDpl.@>"fP/#>hS)s#%$IQ2M9B't%=UcXZ,B$7G&f7Ea %iSGV#8R.$,Kaf/E8Tb-&>&GaF$f_4pVAMqb_XSt5@#ZFOiD=T6m[GpVY+rWT*Pj9f'PR0!-#qo1YG=73jLtDgi^c'@Z+YGuQe2&%$I!CT1L)'@@T$L@-JS+^aH.9J0s8Lj&e=NGqtKp0TPb&.54Mb?e15-J*NE<+0fYHui(I:JB4r %rdRVEInVI/gI4h;Zb([O2gYqk%`2L.KYoGh]np#=Z8f8A"nBD8Ke?e7g)6`iP6tSL"[IF6X"(JRS_RV_2hbDJ`UMjk6T?`K[MW?+ %@#-r9h^sR!2]-Ei+cj&Kb$oh`p^!H:=a3p7,(''l=0<]Ig_+Wn#`HBtg>ES[=t?,X3[&&nWXl^W4!jJD)!:a@edTG+VIOCp@DAC5 %>F-M3RVV4F]VN`tUq+h@1oY`l;X$E1.!2*,"Z')aobh)aAVaIkH<6389pO7W3Z$@C4qBZFct/$jR&3'b9=bQ+Z.SS1_b7QLs6*A8 %lSH2LbO>okeq2O)E>#nL@-ZX0hfT:8Qp!m^Uf=ILJ!Yof)RB:-2BZ`7C!`i"@0<5.O=&sZ>]J:Zr&U&8L%a.J`31t2?c_[d&\g5VE0#-j,a1nS %0Wh28AGsc!>N+jt46gXtb$U]+?:bDp']K?J[_%ht=\#V,;1\lfB>-jQ_-S!YNI8-l@"6Y/Uf`\d7+0%IaB*o1NP\-tcIpZA^RRoM %E=O^JFO@JG^U?cp#A:/7Uf&Z8n0Q2Nm/l.q#3MOc?la7?$lHMi/7m!5Y+4NLHm?RSN_.M?:&>C;""A6Or_$Q[U_u,GKtL. %5P*Q>0St_#*^+:e+86bKB;"At`Ds.`R=-[_12(HIK65DQ %V=:$,5'5O(B7QToMQ;O5X(]7"\%kHN@6"EgS0V?.n$.Dcn'i=&r)M*IZWk3X-i8/`S7Qo5n/:io%`8hie'&g#k_\oRBNB.iDeCCG %br\:H^.Zfe:dN[=Laf?3V[6^s %!3\tQe"ioTL8njU-IBgHL8m@2'.=5c6WO+\PG><7.a3K29psI^4>7-MVob.I&QsYg4&,KFk(?f53),.5Lbr8Ri&"l_MB7uod:pJR %[YuKJ&?"bREDlNj:$APboU<]X9g4LAAtfJ#hKU$(Y+VSS/W%1sN7t,8)S[FcNMpT,5[@gS5URB^pT%UZc`eI!ZPF %M&*p&'<5Jo&1rL)->#G8,c?JG?]@R%tPV22Q=AVFoXiCD,Ya@J4)j1F0nQ1>%4FW!a24 %'23C<79s;`L>MfJ;&?`MFhV5\)?T`*-@Eg$+U3@c-<+8=5n&4,)Z@(iK5TZ22O8HI!f;Fn]2B8l(aK(cGE[3AKcn=,04+>o;jmeoY23Fkrq]+]nR)kKc*QN_A+aOPjs&PL5JK)6kT4ZDTU3R4*ZgCemotAFCGcU^jnF']HaI1:[,&mf7^$f7 %>6&K[p"J0kTB"8DNTtAmQMbmPXtAJ%AZq001:`;9o72:!H/9l^-u(&Vh>Mt1cXA6t_=2FQj_,-2/`O3ObP<$mB09jea'UQ2s2Tn%*Ckq4DPOFlBk+r49D>h9>P8@&J3&^4?%\4[n&VS/JC`Hp>U=0)%@,4DsFu3j&^n %@K4Uc'uru'`1Ghas/k*7p#`5c%&]Es?e7fp5M!!N3Rq0/pPd-@Ve&]hG;.MK(T1k05G8F:(Ie&7=E*S]oh"nhG]@0:[hkD7!me#, %]ViViXhRP:bV"k`7ri_Lq&D<1@A8BifuKr\/4d*EAhr926WVGHYK'/^Q:;p.JmO.%"&2JL9^!PhBO;YX!\9"Sg79k4flQ@_+Aqn^ %?MmpX-eMaOVq[*"\U*LNBnC6!5>RAM&U2r>k#,M8XP[k)U$$1"^4Yj@;GBs"#'q %jJA6.)p^Y[$h3ZVV0V_Q8rYOr^sCS!+0f[QiC?.g;no9&!kB"ZH7O,/jP9%&W=)!`-1]Q%Fk %mHX&=WqFu5S!_s%*I\N6H7(Z*`iFJ^]mFOfIm'h6+MO21jS-:>7r8au#1$1\!@Z85HeJ^o2jQtnZkHm:@][:=Qag:J3[8mXLaVN5 %\b58Vgit-\&rl]#Aj7)RHrs#P;BY.L`hHkn,7Z+EIot9h\HJ$(\>s!++M.>GA?:c5GJK>e,pW#tU %KRLgJb/SeQZO;be<]seO:8oJnlGLclQV_O84!lNjNN%I?]o %/r#e=cKAd'P,G,ertm_Pgb!q.hAI_bi4C\aSVU_[1KDB$oU0VgLNKf(McAqm*t"2:9-ml@^^U<\1SOGZg+PT;@M90# %SU]+;s%WCh2sp?h1[VZWJkFeB(.>"&OWFKrC_MNao*%PcY:sdcL`Eu.Z[M5D?7U:d&SBq1!O]O'NbtG(r4=Ku'Og']pd!3@lNR6u %ZFA!dMO9S!+s,,:J_gJMIT(1bSl4O1Ircf"F@h9\*n8maSfpoc]C`^8oOV@[)8*NDC1isYle(W]Wm\Ou6=*Zh!a1%L]-*g!qK!5$=+6qqf+6$@hS'5Xj@;#9>"0Jk[DmKQb`` %\m>O\?aKad%fF!m"PTr>[Sdi9'4%'>R;+Qg?0k%.RS8K\C,BTM]i2K=L$ncV')GX_U_s54*c4@_)UNWE?ki"cPDg[mRg>reOc1K] %L/gYP'Z0HT_Yeki.B;^d@P\hXL-*8U;6RG#rKW<,LIIS(5p`-H^=!CAHu``k:J?QQZRjBpK"W@5>>i"#7O1AHh7@Ok0&1;(39['I,RLR\-EF+Ei&H9[eW1l@u[,53HaJt\g;1;rq3V=H2G.)Ii:MboW,`Jqg(>PSg;QR %_0$@5js/,D.B;jTP^`Gk,u2_I_]_ueFHP^^JD(\o0dS1E(XH0/%jjF:f:ng0j+!nYs5Mj3BDeqXr-.16mRKtG06hlIpg5K/^UuYA %FHs8=gCkIJf01,V!s4EY.7Fu-jmsLXnt?0l%f_eV^MaHJ72:X?o+d.?OT*;);(:Fa9o#S7eT^>^*HNrZ+=n!<[Cc,((@:;raTDWg %16gN0ZNg\0/RrO`Hcj@bL,Rr1DSLi/@DN)N0P7E!#Rc`k9dV&kn% %Z\\%bhKj5&1u6&]S>*likc.K^>@6X':Cg@Z:1O?D[NDAD(gp)k)b4-s@lik]&;_f"U:\?_X9-+"^e,+t; %SE5")eLW>j^88)gBNKV_>Nc66A+(M)I%j4&L@ql6XjOHGoqTL&hlp4V[H-R__9d17CZF;s/uejO!EeUCGN*XP"<1d#(k0_DLS<(; %+foRqCKn_c.'"Da"7JYuL8(1"i#RQhY,HC]9$/h%bU0j>Tqi)aTk@_'Ipd5>+AQC*cl^=e$t[(Y]KLtC3sosj2UbSQH5Huh(LAOA %@2K>p7p/FIm))ZX]t24WA.1iU*-\]pH!KhmPbNKDTqi)a$08r,$q!&;`/Sc8fjUi$A!i#_3Xd=&d;>!o7/KG!D6&>g>;=#l#'X%V %%I+N77L__;s54cL_Y[igE@<9R:jbr-g0lCsY[_gdfS?/^IURE1fKCjN$YPMf8K!9RiV!NuL/P\E:f<%ATXQ;%59XDO$Jo6u_b6_Z %TeKQa3=[?H(^dHVoEJAbHct]1TJO)%g09H,_'O1?$Jf2JX./lm-rc1))I/79.[@Taq5[55HOF("#(qiVhEhBsa5377$VH%%U:l93 %A/9eJU:iGGN`$d#&a_1B]Z_:!^T:b+((Yo3Xr\_a7uZNWj'uH4V5U_`b@iG+[H6OlQ\Re6$SE5W>qgcF(0oe4aPp"JJd\SB@?SgO %TbCb@%+AI6?.HF. %Uc2u(X(pN1pA+b]_!_"`93n^(3"(fB`]ei3\pF<52BA:+hj[p3rFr"Uh^[r#as)38A'Tqi_V`MdRhdP.0MfgZEkcc^N,]3'SiWj/ %m7]jcn6m+3[>Wqk=6%1?Gd0LE8TnV=Ao1:%NU!:1^"Sp$AbC,SkE"B2n)To49>g,E)RT(=lWB8\/RHdCdTHL.9M0G"d@=!b=PR[^WnK%K.r=*rcb6pYUL7Xpo6B$JuLH[1b+Zd0i>:17:)c]4=@SK;'9T#MSBQ\hihZItH\Jh(5)S%lhD0m/7.7.:]W"$^R'ceU0Npqf&>?\SFN# %[Aq(J<'-/>d&E>iWNEO/ee]EIZik]g2c!Z00C<-1'm0<"8JRR$S_(D*V;>$?g4,X\gDU!RER!l$%X#("c*c^$;chd[09r#^9.G&K %N;1u4o@t7oj%h?^f$Mb0k!j+UKc]q=3d1M9Fl.Z(C$(IQ)))uQjmDFSU\&j!md2MS3YN/hpTWGb3/o#.I]b#Ha3pBpP?>DX5)Q3/ %mWPm6lFoqbqthbJoR+lh=>]obj)4^G^.uq3=K#fY".<2*XN;r=8d`7=.-IBSVkd@&nXFO?1F34S %=h6UBDn&cn%$%eQO-)Bh4rAETSqCbGVhiJCDXAC:1XG9@T]s]/kfhf['+=6P$U&!#D]Z/>cTD$ce!W.+6OCc"HV/"+Ie/l#1J^lU %e42#>)Ir426]m!UpN5Q6%Z(=IGm(9-Ipd/=?BPRMcH]#qMD=ijbjk\"G`92rBl[s!JJ`HsHt4QN`C2PP8MSI'T/N\<1+AYb#1>Q[ %mq.9L0JbC3?s7MAV;Po_f[gYamog`n$9&m+rtNuj$@B4L'\UO/jT8hKE4FCY.auS!qK;VJJl[>+6bdR$&!N0EG,`%<>'Ot%"Y#j3 %47i)WW=E4\1D*CL1ScO>5=0bK*U;k&nLDAk'o+h^RJ_<+Do*kAr&,:U-FH-%Cep-9:+[S<`feadEUn\;^1:9\R/8W`OXsm>[+&9A;R\b;AhbE2-b0 %X+o3MG0XYSI9)mV#a!mZ;!._(H_n`"]hWK\skhM(+RA %P$fc4O.kW-"lqD&k&3Ad$Kt4q`Du]L.Qi8krmK"9[5++LSe"F.rX0STY4u?9iP-0FesDUh24ok>6Y-H!(-6%2&$`to:ds1#V']5N %*it]2dE)lBIP2&XB/9im;IZL;Q"P8t3IBk3#ln0lblB=#,A^=B8Nk=f&.aINj7HK8,:k\l&mTU7HJg:10?Q;Sn79#WX"j-m0Q+SdY %$H!:>?('$64#D057E>4LkM]=COO]Z0,Bb[h6\Z=4LXR@TB*m.R4Coo"fYTh"(G %QQ;[QAj+!8P5t9/)?V(Ld-X>HaQSXTEld0aRHaFWe?=p',BVSGcE*2plt.TRLUCCbkcI2;OFd-eg[-BB+bOoR[bFTb6g!Ed$L[RC %-\ab>I\Ii8J4q])V'XtQ\kl/E=ZH7'GPmM8OLbjiZ_qr)TPA+ZDEe'Ht)G-&@Jq]GY&h1^X@`S'X"oLH*Bk)*n<]+`oqO]8Tf:qh#_\bO=Zkth*k4I-ERlnGh&GEJnPA]]D:%-dV<>8A!$L' %&QET:s!U>>'j?WMH:U1R7-Rj9nbCsT_$.Kq>'J#V[Ibfi(K9Vf*NigIl#W3@YOtQERIP(]UH(;c(X%]9?WR^[QfiHn(];Pp'[$N)$,]CC,YWH\Ca&l/Tas%B@3VorY[KKbOa!t&2tqa%kdC?-SYs"o;1ejsK]YI=jDRTS'MJn_2tBC3S[/'W %5)Mm%l4af.Aojl;;Q'0*c[@<'FXla:M+O7)MGJ1%+.5A?\qc?n_)G3?>j^JHQfQ4pgTutZq29>@02.mF[KO9NG[V@%p/^t,OGMC8 %CKcf`ni&o#'_YjY6I&GQh]/&a!4mO#?1D?Vo"ZF.F[Q+!t1e*%JM,$]3a"%R\M4P55Ah$ORl9*WO$0H,8L*3u?Q03s6,5SAOV5Ug9L">t?[[+L.aGZ)V %KrZ;dM,$]32eV!d7fL[Ed1nO/M9[4=4*>f07fK.JP52[Bf,kMbKC2%-FOi#rbb`pd/\h>2^FqOs$dX;/\MTUfI %T4&=.5Q\brO=J/P#QlY*3qm/@\pPE3-!=-%Dq_R:E8_7RE=^'"+hdOUiVoS3,%mfH*bnhpWGU$K[rW44K#5!o@`IO1ae@VEYF8g^p[?8DlimjG(;VWq7Qkg]jL4o_,[HiFPK0Nnbqa3UtXZpB.6"3TZ;1*8*u4'3$Lqi)=(C3n)QNHV!a+' %m*jqBs`3;cKjAZB),O8lFG@Q"Qmb;54V$`EtP^I>=gb,?:DUE(ob+4"YEMb%"g>W]lP4<;#99<(2/RpkGe2,?:rp9,O[:#g+S8NhIrK8/:ms$]X"K!0/8j:fZsA %"';U>dflXB\V"A]QC6gG/LYg![`lUZ_tL1@Sc!fG9B92+N=XciU@sj`U*/CZK#"WnlIN@Ll_J%I$s$8=2#G>Yl4fOe7A-Bt'Re?0uetcMCEi'U@^7`69]-=N+PCo3qt!8YRU!VLrX_Gbnbt[r:b:04'fZu(=Lt2EnK_*<;_/WJQ=BsIY8gF+5X!-@$cjrDE5ruo#rR,u;FqZU>i:Sm %0K#oPm5QaRGo^P*n>GFG]3q%UL'D"NfW %c.<]JkS@aH./Y;]'YR/,W"V0u=87Fh%;=Ub\7^"RfZ_#n:Z.GWSa;-g>md`#agR/TrDKZ[M76+6YJFd!1YLTf!=_c0]N:/*A4[(. %j#?6AO=6(9i;l,ZIb@l_7Wh14$mVDJ#]&>hD;IWu1&CUWPldsZ57]jY<"okYFBVL3qd/1f6[&^3fC*9.1HBm?f'^u:e]cL7H5kE" %F!jQ2psd*LSC.d)?+4MD04NZ0r0m@\+^ll!dF$D-@LbRRcGf0drIt*:-VFNh"DYKeFap8!_L4i#nPF??IRJ5R*d$gUa)[[5,.@12 %n9\!\41W`s?K6+lh-1![lWFu%8e:W'oD@A1UGd>=h7i(<$Q8Rs61'$5^(B/5&CnMXgUr;ESMRdi,A9%!`^r5F&LG1>uV8Qms %C8Q7e4E7WB$W?SfEGdg2nfsBcf4)MDh$JjB]"Q;gEJMDbD/m(!mU,*R-*%pK74gf)Ho^,6#..Q-$Y*q51[Ark"LCQaV5Io\OM(a+pRsbjKZBee68m %d'NWFFYTR]@D$Rg:^Ysl`iFN%f(V8Hc-u&\BBSJ?U5:eq[&::Y-qlHqE\Hj5V985N/X0E`->d90h\L?8 %Ji5BLOh;[jm.JJ@/uRjH(\r)rM.9.8D3Pg%rT$/0aR#h"s,cTFf3?AM:PIj/s0A7T^>D0Tc$oLJqs!#)Vgg&j$+?!Ys)@\\^6X.L %YN^oB9&Y7Fq[$ZhFb%lIKJH(afGVo'e6?SZ@hYJV'j?ZO68=Ueq=BS).DILYC4A=HFn %_Yb^LV\E9X;>lFN)+/H=?c21GlXD"B\@Ij2Y^u6di]GBKE^:Lh)2U1VsRb%6\qf'/Nau(YCfXIBs %TPCW9b/LhCW_?tDm#=YtYem4WHM6Gi=T*HgMbsabGje:bYej]Y3b*1TXJU;NDM/a=+,16YpIa35Vl7F[IgfV4#C:!&Hd[L#V539' %_"fW]\mM"6J*?/&pAM7?rIJ?jUORU83%J*,hk,(=WFjKiG>q+NSA,"'Gs.eT\:+D.'E)eih6?)"@X*=5DaAGIqAOYs:-*]JONt`K %*MTabC24te@O>S%_p'%?s[3),6mZ6Eq/8!VOkQ\r/toJEmid_[mJn7E=`SV-tc%[NXA4A:E1c/!'.pi%L`2R]1?=XrfJ!!aQUVkuBY@!r+H+kuD'b %F/AQ:[eW0=@55@rs3/cfT6dWm^ODK%B^^,[57J]AqUOK6ID)18:YM*Npb*87W]ZR`m^`]\^%BK406-9N.SL`88.FHnb=b]HLT9,u %4ra<,3bRDmYYK!)]U!7B#0/sJ98;EqEO]e_:7f.M\3)I.!s\"1i>u+'>Ze5A5aGfON&C=dos/.IKqC(:*C9F`[Vo,,Gi6qU>_^O& %Of#*c[n#dI'rh2KUa$KCY&LoaE]8`1_nSNP.LI*ZV_;u:IW]fkdq+lV]ohC7AX(BFRrJ-Be"fr:PH!d>B9+uMn,VWn6f,* %>>O:(l63_0E([f%l7l3*iMhNs>NY?Y"*0E)5X?0Y2m_%mcI=Bh,.M3tF%hKYI0lIGJF:954,\V?[*.(K$r, %!d[B(lfSDc]3tAnc9j]DFnN=K`/G*!/uRs*jiLdc$>\rXh=g)!WnSuh4a9GGlp_BT6@$8\0*e9PDm>TK9Nb([hrr];q)I?s0O7jK)cAk$Ho=BXpgo=9RpH?&rq\t+=\N9i%jM=j?@dHRaYdLeQ(FF)7<=M7#'W1/kCE,`&3 %*iIG$Isr^3fYM\jKVagE^tCLgB)9cO5%j5Z_]NiD5LK(CHa"LY[[P1sl0b6NorW,*(YF_\F]@pgc,"bWcg%l,bKe_#(70Kf@YNBr %Viq:jk6e?+j54O'7=Fg&:6l]s'td6Nb$^:&P!s2"T>,VV?1I&6SnIb"LRh/`;(O%"b2_P$4XpA@(kc`01d%cAC$f*D(hQ66!l %K>p[[@ghEdN;nXtUUBc4q_bciq\Z,3Xl)c&71In\B:.3VmP:<\k.,*36G!Y=B+d3MQ`o=6:F-7dJsKjXU6;7f#!I_s3:MMFQ`o=f %nmT$SQ`o=6eV-A2l/amcjRO$j5R%lK\U4Ps4I*c/Q`o>Qh.fQ8`RS$RYb39L/g*ssP?bh%/Z;aU3DZGs;c*]j/mlEuHqRn2b?&XK %reiJPjU8;C%#@F[$`$hW;J+tQK'3tBs@%:LTGfPt#OB:^/GX2*pjE-o8FYtZ?ROECHJo+H-K5rUH^ %ZrCa(jj+gW]'JL@JC$2.b(;J0L!H(COI+j\="eO2lRMf$;QAsJg:1]m-.$C@E[=2mb[bq%OaSc4Xj2l'OZ=/p,Ee&l]*^if?ISH# %)AZNLltAsrol)D-58?,nRGRSt<%)K8W?NdE;ZYE;&?.u)Va=758JQno*hg%SHPTItJkWk3kZo&8-^^uKNCb[H[T&*[N\3E88u_^I %)c9$[QP:'171iC.OH-QhY&JLXGtA12%R8b%`>;E@dG\_WHASSC1"^U'Xf&,cI_D"Kr+93n`MW*LCa,'Xm`'`qW>>6%%*aAA&_sD* %95j=R7-ORn9srWB"VdT#MFgYs2X&&`%jP>e0[kOsW>>B;_@?m+C=*Qum&J%U/;?W[UKVKYK'm/`WeG.:/[B,r22f"`.7LYs"X\1& %AZ6GLZ_2G7RVK)b$W9REhIa\R&kcY_.eWP@9=tUYJ %FB"F,U%a?=%KF#*;h#"_Vbmt>QjBg?Do9@[]o(Ci\lJANgh=4"%XNKg`k"pCPo\_)X(KRT-ki.n7+1VpY/8BpafTlS]q1O)SMZ;5 %h$pF+WVb1!;EVeg$Np$?H8(0os8e3gf&>,r]CUE4aMEs,Rl2X3TY-R,N>\5@1e[-(/`$?"?\ %l^3d0Wo-?0bHkSneRN@D_d."S>4n7$od!B84cOc0<'WdN*`Ji*URtnTDa\W*:j!r62^5e%5ba@:^ll)nAq#%R92T)7f>q@!a\cGT %ZYRGtorR5X=TsPRD`eBNemEChALT<;Ii2.Q`2U7$Kf/2qrL][0be:W*!;QCj;UL(=\2claj7ACn+'9WM3k\8O& %P9nmdop?ZjE//1m<^!;b^dF]hDq/@/IdgVe[H]J(l<0<"XK?eBNI%09?M[\cVFE^J>=NDY@qsM7YbB]Qop?Zj5UAj6eRN@D_eqf* %<^!=f%JKWB[H]J(l5=um^fJ/36M#M-s4&_!grA+iGLVUupg"c6GCRnQ"`-DRh#Mr*E%)qMqZrZm>B:F(VH.^Yba5\^f!Y_Q:c04O, %RD;5UCI;`.Dup]PYKaR01nAJ7CKoQBf/=q.aGn;1G;?&X\Irr5fKsr`ke.>(3&KX$R0"/:O2H>6iW/ZM8]g59@Nk %D#Cq$HTrRMf-pPZpVeq,g'^(s/@:Ug,$2cot^-tho1k)#J]bFHf5L6JpXe\&cr4Kg*$Xrrq>C++'PJtkS)cn_K6kV`1I[XX\:)6(?^=XchJq9Q'Io"86 %Zfub>2]eN^pWn#]L7(F(N()'S\rJ@#+\#nl5=)j %-&`Z!Npc+$,g.mNE,4hT("F3V=p'\XS;U`]_jGZ(5i[M_hNf-+c$A@^]S17LER`*g+rPEF1(/afLM"K?L2bRgp@58^QmA[r601ihl#EFSaY%m^,D`o>O>p"3__\.,ueIk3\Ka9mdY6EeMMDr]phC(^*)MCB(ern+S&Dq7>KU_\[K/s>Kt<54AG %EC>TXCDTDqRd!7LH'rAL6)N8pSi0-^2b"-$+G9niq8Pr+'2hqo'SV"p$'IV&26a*7Vt)2GZ):b]448#PO;*I:fd3U:Hetl5O'HT`EiVgoq=]pWa"Il>h;!39!h5_a6!5.dO`C %di:DYNmqJ7X^&hl<(8er\iu)/AuM:8[?J2Sc8="h8dq>;9/N28=.S/+G4F[V?BC;l">B57f5lpHXcL1m-;OFP-mIX3^3;]@aV!Im %^C+'tQKFWWF/$k*RFO+8NP!+1]#XXTopgjn:KLW*S%7"\(qLcQbe4)fhG_bCCDogLN5DGCA429H&j:MF!QJ`aHh1+>%B%>``ofss>oI*1]=$T,mR!EMjm5]b+? %PR97fVB*7gj9!RX>q$M%Ni/\s*CY6=F)R,6*2'i`b!mH!*)B.#GC$(dc1*HX')Sbgp,n\,oT;N$mH/ %0>?:cFB^#k5m(#Q\QjMt>h52[]-UZs.B5Lr\UJ\p;:-$b+!$OW+bF9C*g(P,F=4E$b_Q#E&mE7qH.i:uBr8*CQFT.$A]uFB@@>jP %;L!nX`%nfg2;%;Y`A4q&LIF>`@[V_1ONdP`n/[TGl7k:MF5,oq21H=@Mok17^2[:,F1VL/B3uFtga8FNN1^(BsJ"WlHT\eSljm:BH+hi+MT,YJ`AShHo-a2.YQN%qSIVr,'gU6+GK6D+rr[`DEr0>B( %[%@Ti^+I[c2O[@,WSBU"4rBlMTa-_"b"Pic0B*IW9B?ZB'-=O#j0+it'MS#0#cUK_j6XH!IRI.'N^IBmg7KMC^;,6/s#Pk#b_HbZ %`A+q]ordUmR"m-9p?KM7oD*NK)2Z\r:3UD+^46Ok4[[oTSFIfY*kn7UoA4mji8'ZER_#5d#km_gGPL]+2mK8>l@3Sn)gHS6HTmqYK;#Yc=fZLY&Z:1pd=d=-;^MYIS9=*.HKNIF,EgXHbRr#\thd7.m:$/3L!m %L]A:9HSBZE/7+s%D#gZ%tA:]_b0H7>bd\P,QO"o/aOei,lj+p/c;cI2n8jXjC4\@MJ-pZ1W!O=7C9OC[NN9"("(l9<$m5JU:k,#Q.-">7!m+^X$C067C9OUZCV@, %=%%DY>fS6%Y,]IQ@'d>4q_/]g=%%BC3/S+K=%!?[b2qTMl+23cD*GQFF$^I\gsJiG`/++&Sen.\\0BX2 %k&d_=N/#C06LRMI(l^4r$T'W*Gu&!i3N"k?Nc$^PW)W$tkH?eK]nN%M)5CCWHOHB!ItJ+D"C_G8^e'bE]&g3+*&YLPd4LEmKrtgH %kghDFGh)@">gE(-\)d)p>j*d%Q!AW_bTOHT3+5fkDE`8m"ddnZ.n4R,bujL./mlEuh1NQiQ`o>Q4&qf695gD:1Tr3eN^?\7M32&W %Jd\Su=g!Z7\=boHMWB(kl6nJ9\HGJV>5q#R&C=]3M8a.Q"IDF#(66e8k$*`0-q#qO%#foGU4H?o)&Nen6pm)hdI9CX*:1Kj7cU?7 %@2AjMMr3!Mj22s`[@B.\)oFUMF1Q)8*qemMf$l4NT>M\!h!TShQ7d9dLCV?>0c"iT`sUhSghd[[.!cU?[$*O+Om^\+\]"g9D:W@7RpOaMZ%u$@e'qDPoj@[A&FeC2&9G` %RD4OUXQ!:j]jf_VNu%Vo(fd$p?[q?:5j&&$5*U&`M[^qiqQ1M%^rj/G$Ygj@.#4A'5e(4.ThpWhc7)KV%c>J_0o927;A,,e'U%*['1$=N8>@MT %),,DWbc[b'`%G/#k*q9p.AZoP\I$R*/hr2g%TbK*G=oHY6QM"h\ThRr*SpV-E_M02[olnWoYHo&CQ,^*U-&WkZl-F%>IA`K-1,pol)Hf>'o?"+GYm/CO9Af%mLOqk)RM'^K6.^=(rO0aUa %_>]ft>Z^R%/uT+^M?i#8/=NKFe4KU/'A==Llh%RWeNkf's(T@\#r?K_Pd[/Jni0&$/Jd"aEZH^X+UZKQop"t_hk_KC;]aH16E(Vu %`u^9&&@nDL53g([Ysbq[uoFFYs7oC7W3c>p>1=@OadTJRp-Tn'cG:&q3nY"7DZ#E])"bKU0t1Gg`$cGMor;HAoTnurjB#klP6J9[P"?l711:um1QS.=1Zt:m5J9g&+2/7A*h17;LbOg_np(Q(K_!6RhH1DR.GPAR0jq6QBUf)G>!N %6%;pcEM*U?aoc7ViFea11%gQ65DrA)>L+==!rk19FuJp*o[F5]$[?/XWjM;d11TC<*:=rOqd#?5->lf9gY"e*!')GX_UsgRIKMZ%Z"h_gM67=$h$?'4oX_()W %Ac7*+;g<']Bh5A#V6]Pm^J&&aBH(`s1Ckg2oPm/Y0th'c=7:s)0'oXaYc9VFoig$ %hW$n_,2EjQ&;p@=%4&:.9bTjuX-LN?g4`m66n>&6RjRM#@%V`N/O0.cI[=45P%&(JG+hWr667=O>!iDTc67D?W#2Q^so7I-c %XQ2Yq0M;I1Q#\#^=!_=#'+VYF+SO&Ttosp&9Oa8-pen[5nFAn`*,^RE;G90._YXae\dZu$Bs``i %I_AC:@A[B\=bbl?%bLV6AJc1kkdnj#@3ggpIj5FsZ"'Rgfc:Y]M-"d3cgrm;$LPmOP_uJ)gCVVY%DSCmrn_8#P1t[#U[)B!kON(m %XA=I7D$RiTN,8^)[T2hJO`e[hRP3cbDW:LY+BY3Km#Ts[ipFdIKEcKh@lp'pH>RL[g1!F9LM^/M2pIei(Q7F+*n]:eE/B.??:D9d]fd4]A,Mhn0>:e,'qd"d-Ws/HCGs;h@&*Zf(akG2;="^Wt(=Bm3 %"`0%[fB)l::1S/'\FZrK8akht,EbTeVIamZgRI]n1pjm$oS+IoLFhAUc@,MVg,4-"l!j,Q4c\#A_G&W7deP-kY %Q;gN%0hm/&M_rn0AX`U-(MS+)Q>ub:7\l`53j'O!'H"5Wn.63$O0&YQ"Af&4[-OP+@^;$,Z=[tWaT!RLa0ns %_-;jAJiI5AmS3QnP.s',5`'\"AASeR]fhMJ-M.>Wk1*7*7M&&u+>u"@W?[3D"q\]M$UY&:_uO8F/f5dg,6e_VEYLJ,;-C"9d;T#l %/:]i3=bbnC`8E'?k$dN:31CX41m:(mRENRY`as"tZ!6eL=tlG]TXI1nLHd7ZaaA2hOEN-ib32]u8KXPK*[VtkF?J2!#u;Wak#Y2h %*REglAe-EAl,,X:_[:P_E0;Gm(gVR4oO4?X@E7/=8GY#9p+Xi4kgG5lfu&GarUDRB7Fgl(H+TBT4`+MDcYk`UPK"k>La'8V!K:I* %9Mr`Q>0mO"L>m_IN0l&O(hS";Kb6+0&YmnIiV?nf18Z'nI8QYkkbj>3kV8T,i3?B@T@DnZF8*D(n\A;>f((MMeX^hON@cK3gK^+5 %o+UO6UDNQ6_WguOq3>3UM&n0[rX822$CD)DfW)Nb^J'n<7=j.g$`JSXJ_g=D6n>L;C\DW-]B2rs?!?`s>PI9kmGu(m?=_YP-elt< %`V8r=Ca3]-pISp@&?%ua+lFX[c;-?1m=%c(RcD0X<9'/\XC#SZ]f4i;>$A&p6f5l%=&0kY@S5.4QLPoFG!]2qqaj8Ejl$o5'Ts'1 %afLGb"h`DipVr]1r[,i@`73[+]Sh^_h-Epneh>FAm#37I4^QXmqrq+I%(fWmY:Bi3id\O,Y#fFtC0$)*?TEbmZ?J=W;WDMH>DDBD %K@gI[QJ:_[%'uCTr:@l1aY59_?lalB#JHFiUpMN/F+`=&V"Va=oB\.IO0*8Ui?-cA*D,XT8J2QbBkl5A]leFD2>]q<4Cilo'?A_W %%7>05^'91jM"KBK%s0=&d9ZR]QE2B1F65O'Ms+j5Hu!)OL=:T5D>cLsm,_u;lQu9^$ChR[GluP%bUSc!c5/p+9`/(c1lN[;U'9(ZPqMb/BG^0:V0dkE=Z"LiZ&L %JVXmW(%DVe"%3jZW!L!u$p_aeNJbRLr1[/YU2m$i.9%1,7!P=YnZ!"30h[kT;e8Q,XV+EuEi301ljb;&:4@?R;O)?6B=rH1KXhE/ %]_p[[-sg.MmSWW1Ij,&aOY%u4dcV6RL"e">- %SOjT-kds+9o0;Z$mD0T.(&CR=RCamd\tEc=iQ8R6'508;10m+`G_\JoG?D+'p:Q];`:_ZLgfGu/-Ee` %P)>oXW`i"Va\_<+5cTQe4;(YHBT<6_6k4se`7_uAMPRhVf359D,,m3,)bQtfL=Tm-h%dmKS$$W']hdL&Z8uc&\BQb\l!<"mN*q\E %>Sf')`J(jTB&`LAEOiB`rCsT9k`UmL/MV't)&&ur9YGsb@8F5#JDp.eTF!4(:-a4"M%a&%J^[Z8]9plJAZq.Z1D<6`( %1;j0oQJU+.[?8,tBsUo-W%L'GJeVQ^s6B6 %DSDNE"ZKP&'oMT(mR-RbWbUeMa0?Odf$uO!Ma2![k1$#S:'(j`SLZ&*i:F`#0o-e3EpDIN"%i;Wh:;dlQXm%IIQ./nIF9IB"!>H( %nVF"$c+#lH`8GpDSUFbSCggtt/VZl$:E-\"!NGns#'$Ag.)_c3@*k^>M*VRH!X>>nVEkXEf/s$fke"t<,sW;Vd!(3O1V*``;$G9B %+iPf=1$C\dKc/^@&;.\Q<-FUs!5tQ!&<*?@Am:@]'D*Z1R%aqZTn;Gr`"Z5@%$gA>kF\IUStRoOGkn89JnM$`=WYj;Wo+aEFH6ar %iA3RjH@&7)m?(c%%)#@8+q_H5"_kt!?QSQ'l0e$=X7/UT]6gdN>,qsTqP %_d8KCXMpeZfNj@r%AVcc$EcWc;/PiWm[-mH:V9]uIV"?VCSd/O&o17^I=I]V_lVk@*lN>S:Rb]LZYUCq3i#snRI[]F22OJlJ,-.gXCn]:dX>F<*q*od:RU>V3NXQ6u<*C/_D"T!4k[*eo5IT5]$[?/\%!5W3'I02h->lT?>_gMCM)4"`#^^]EhA=_-.5Kr'Jn6Yh"C5%SK7WbQGOSf:0fJ %XIr@"iuqGkhGmr-r+ %pO=ZXeF,=b/U$\hgV+\R@f#W1YmTd;RkD3uL^IYTM?p0mLo<#\[NnD_9F0tAheOcaAV\9$^do?Ca%/R/:.E6N`=i;i5Blmpaq'iN %:X7Pe=fmB,!TVjO_#KWo8.g57+<+,,(6i9&O:CmB;dki+Y5U8aFoqWrhq$O+rbnb-gMEPW<--Mo %FrYUj$MQ:I-X_/Ge%o4RFFj-\o3qr5cLcL63A\2d&%(3T8t(2)11J"pnKn3=k3d9ZolK!3_,h2N?Og*'"*EW#Jo4BT %gWO0L2cgb!!IQ\L>/8WNac`LOLgir2=F%"IH %i3rh1;&dOh=NB#D[8kbIClOF'Tq=;4ip,S_lTr1!rVGM-45AZVg5'rTq$kFB6O_e,h+;NpEgT.Ro@][7W]9)iLcqfn!7H*e2fK(> %Cnsi7Vtb@rKgi2H/`@!Apl%1\`9J5qfj*8f(Bri9iDUD![T@tCI3'`4d2-_-4Z)m4<:APY`6#3Sg)K&2Zj:u-Z(Gn2HB!>>nQs"" %WVm_A^ZGX.0'DWiHF[O]nIX80>URk!DLQ@?,UgS52IWEO$1>;T8S;$0g;%2H8IFhN31)=]P/!f;M[D%Vo0VpJ_cT*-XT&&3G$Ki0\h_pgb.6SFDK)UA;Pc:6&YOu5D; %!.=d`kH#5bhT/d?i;Vg-AZhF]hLSe-o#qqLA^o8YC2T@]>\`^-7-G3Z3F50C8\KH4=]E6NmSdJ<[q. %Zq&NLLXdoSBl>?B'S$T*#$]CJM.c1r=Za;L:Cb\EiUgjUG!bo)]`c!Kn@/5%Z]V_@*Xd\Dp/QV&rc\b+6SH(H8Y%oTIZGJ[,j,Cb %X2hnfNmng[b33mu*^]>l;Z;%+ntA3A07@>;XK]$PNpa0u:]9S`@]'a`+*V??^+ut4V1fB*\[mE;Oc-=WN@g$X^A6Tu8fa2@e`7&G %%[0J(?u$2K$.k5E2gabI\Ub1'M7iu',S/O6**@,lR`]/&P1!;Im.F(q)*sP<*%?7TWXMmUQ7`QX,[?iH!L*0jSr>t/nL%=iF".Bf %RV$qYbU3+K.\]R.-`>t=UDJrN;dkj]UuW9:G'3BHjF]H-L0s1@WY!(I#bKtgf]@RNYR6%(p`NIg(et7q=niM#Q/9Fr8l3?m5$#1e %eBp%8dr>U`F*SoXAmu2qpO"9PTsTgqTs^$1^?0&V_:Pf^K9fT#(/)W.IYgi9C1rn$_%`0KOGbK0f$PFPs3(DX[CP_U??\D,d+Y8B %hr\aAg3=u)#SsWAUf"."R.rR#9BgF$4g&!L$>bD/N[G>s+q\#k_G5mX]qqPt-S)phMMNGc3['3:;Yc2,F7N2P.+M:mSK)mE-6T`# %Gthb<-EA0qU[N1_9o9i^<4;eE'$H8]gL1`^0;7i$E0u%N-1L[!r9.$fdN6'0Na3"YXFMp/s2*Ub=)JQ:W^ga1FT"q8^^?'.WL!dH %`aj8kc(2"TJLDT"[rf=5aW.c3S$t8u$L+<-X1u+jPN1Eo_0uF:NX,D\s%>0Bq&QbS[da$cWnCAic@%KkR64K(qia`[-;ToC%fB:m %a\ucj.^rOA?)=r)1.i4psC(0VS7pVB#DhoW2L/=6DQL.WqhjY8^DOabHsW$FKkqN`.j;bJsW^mX56@mtT0ZL1m[L3CE4!%Tq9 %3pRr(HP]quM[Ehm];#tBW/TjU@E+2R*,F/hq-e3F4MJ/8YUPDqL)X_4"Cp^W!lBNq?t!S2aDo+6 %0?g*876js/!A#5UPmq0<"L(_`$rqRBWmGsHL9P%e=BKW9@Y^t>lp9StuFUPn,0+n5,B?,:Y0q8u*Q/nn:G\?6p"[L!RMi(om-,/?l:9K!8XOoS2ZE$":XQYkU`;IcZ8V %iFU$o<,j-6LA>@_954,\0anlA(R#RdKs)T2pO01e\o#"i/p6(Cj]LGO?iB84ZY3HIIM<1BK,#4UFnShcqWlC#1C@m>SA8;Z,0,:_ %7+1TjMhQ4'*d6-S\ONL'4prL/U0&hL_kl_":M.*NVHBLl0.1#I[C3o?*1^S*9VGMSkQN]2mdG&8\m!E8n< %,u!\OH&3-)$6`UJngs8YNB@(d3mf.=B45n^n.RC*Gnu8Wn`>j=Xb0j.W0I(6(;W*@<5H/#Y.2E:qbRdeV5TpDb<=9'W.f1a234XNPXfoQ6Pa,rctA#)*&IK*0NGF2mr;>=MNeOG'J.1?NY7T&M((jr9C>5f(S/eoGcqE/MF%T %BM:(+3f$=DG;#@Zb:=BijdM;/[C]SZNII*0=Wp9\*RA!2Lo-MO43_Jcl"fK&GFSGOq7\u/gj%Y#CD?3^SoIKWN=UOG8am'G*4o\R %9Y^R1Iqh-K?G2gC*rH&2&6?O&TSPASAn&T>=^0/&o=GO#7\:.pg$9;$8mdX]._>`3e"\e)?YQ^F00\;bEcgQ7Vlf9Op+Mg$s6-89 %bD*uj$CMTk6GretSR=FJEUYfPek19nk2Xq'IHmi%l_SXnE(PaMB#He*MJcnU]6S.8)u>t>]MYHYd1`-@a3MH/mb=p,c281Ak8t/q %o!Wm_N*s;Ap\*"&R,A$W\T`$35D$VQpXo&rg`*U=W`(S4rWt`t+7m*?,e@)90V@>WFK]rLJ?_j'H=ccCPE %^RO9_hIaHagE!$'Ea[EA.`uS?A#(tV>IP2Ug/R$1Ec>s&>bV/(?DX)t1-NOG3SPXGj7:Vse$:BSrjBs1hl;OHMoe70_\%O$sW-V/rNV$KJPG5N*hi-Y_*?K`FDid:q,?B?oUdJ9M@gRphJ.6]K3=0V.IXp`YQWb39Ac\pPKc>c!kfgm80cn3OM %D+6p49G7g#+)JkRja8#@sZ:='4m3.FYkP(NN.BS6]4D'.K;#;-OpDrg_es+gI4 %>-`UFq5-&IOBD0Q1BhJO]A[$5SLI*&'K#b)M^`m&`]Wf_01CnHjKX_Q,#q[`08H%4OR[+YE^c7[nJarek;JA`ee.$nM)UL*'Ha`. %jLNpQ;A*R_D=i#/8>B(?.Pp;_cY=WT/C*]7C2Ta?T&sr+%X\TtQ"a>Md\t[[]"tlql&!$9U>N0h$kR,Q1[TC%%)e%6D]i4_%D#rW %VD6s]_;0K8,TTYCINMV%QPYKA(C"gtnDg!4/bRL@Gjsbiol:uL(+o3g3+;jqL)lCu4JP::[6;+b-^l^BaWGm^%I.ALZ9?W^j6-Cm %^\qP%1HBm?d;I"HgqR0Y"'2`)`gd$&*1qi]A.`q"i:/6P08Xk&Wd@P]>W)@nfA"DVraWF/q/1*$1EY4m^+FcCd0]ANUpfpK*>+7: %9Yn+XM'*E.?(>Fi*eFMCMckdf(eUDpK2>O*#I+o"hi(4@4GZ.@0:YNc@TOn^-\J!E&g\P]qn/Hk)-K%ZIfSr&'*(=LIrLu6.1L:l %nBTeldF1Y1"KG#A8G6\MW\8H4$,6'Vq_XI!Me$o?b*b`)>n5LcOu850Map4q1m1"["DbkbPhJJ`*,I"0b]_q+NTqT<_Jc:PDa?\i1CL&rJd56^9O&`+2([I5Agou9FM:.2=s,U %EDSRtq^8%,0e*ms`#d)I`]i(M!G[(eCtRKn9n?'Bd69#+`]aRJ&Eni>59cM_*h\[:n_A-qFp#0E.S47='E3ZBm+<[*q?/Z?A*d.; %?>F6!)W:3CfJO8c)JeK+-Z6Ee;*p`6o:T=_\W)`9N7"UK-uRX?S#\@>i%i?UMPQZ>'bGF*or][;0j %fRl]cCq94@IG0DBL,M4+Ug4(Dq?ahQ%e^mraBc?m+ArT#npA'?4^'OOQ$+[M)nj7&D#m&`p"J0kTB"8DNTtAmQMbmPXtAJ%AZq00 %1:`;9o3`m`fT)6AG_$@q#K$Nr[R=$2pWR1@pS)i;Yh6F,ljuA>6#/U^MRc=:%[DrQIW&!t=([``:a3<7p\#c7d:'LSCh=E5NGeA: %)Xqc5R8p%X5W^bj<+Zk:)^q_j*iK'g$+b"@193#[\c!iQI#kRCWTa?'8,8>+pEZ2h.%EE^/4*H\XNcq=S6CQb?aTT8YS3hl$.HA %@s0+H&2TGIn(nuH?dGaYfEsBfce.FD$E9bmn0oi286%F8_P_?mph88;/'#f;\d>d,9M,;eNRYNV]XBnoQ_d@KL,`gaO/Rdm=EE;- %#EgANjA&+J"*H@LMh,$t<:F4d9^./tF%)'>?(;@D+iNlK]l7f+E:g;l2Bp(-%#=-mbVI2YJUQ?q=,/l>k-GBp!M\PX0 %Zg]k4>_jlp<2P$a8/^H]Wqj3GGlI6%?fDo`ZaQ)W`^@D&)9-oIY8Oib\%BQg3/]H1 %YP74M4=PY6\=dK^X)YQX\>!11SrSZ.NJIcaU8Wp@-P/m\DHo0BpU4,#jELY?jGl9=+b5[A>e %WZZ+e4<[G_],7)70?$4B\(bq7#j#di%>'3jFgoYK(6"Na9gb' %=E8>_$H!tKcn0AY9Bk:"=Rr@lB*'N,0FC:@3'Tq7hD?008AX2HUZ:A/8H0G0$Xp'MO\B+qilG!'QPnpkitg17^?Zh@*V*i1_R,1M_pD==Grm)Ec>t2 %X>%MhOTnWg+)KW:87q.ZP\DDt0EPTTc8fG_om/iDWF;BLGACWY;YpK&uM*u89EWF.RM?'k"1?mt,M0alI2mm!!-r,'i=ZrP0&EA4Hb@dRRm\TbtmIC %8TK/LZ:9uo]qfu:lb6VR4R"WJmF*uI:O*K\j\7"&W&r.rB2^7^BD!(N< %.KSW^HG2$!XAY^oUhTJtO4':Uq73"D`,8BP_KsT\>+_GNY>+Qiu"'L.9`mU %RB?YL[Dp@lSaU6[am$;;'1I2ojDi)p-_)$IjDi-p+9tcJCEm?TaHo#L^2=)p[_.3f=XjVF:sI(1W[79@n8d..o!eX1rtqagR(]l[ %Jt:E\QR\ciV?LC.pT$9cer?0RhF;-,4ml^`*G+`Cj+sMkU#4jR6uqd7Y1(t*F2]3_QFlC-'farP>,l\M6K7Zp&)Qt9r0\4tU4[YQ %%=dTpB+3W[3Ns9h!B`p9mI#;2@oPF:1Sot$3E6Eu.PIQC3I<`!^7JB7kk,hi+6Ga\Bj5@K@#/Y%S[P(L@lqdm_"kBl5%m0?Pg$l# %L>`3f^o/R*Q7B.],I\P[CGk6n2d1Y"=$EoH %"BBLG-uFPTL+%Uq_9F:Qd-Ldi1kd+O*uR:JT1TL4u2O:dY6,n*t.Rh4YMM/ge1KYu$b`S>3OUg;Q6)Tfo$ %%U-\e$1c?Z\7VTglFMRO/"*;">")(qhm7d7ft`qk_3=g312)pX];^o5p0-\uQ'A=+Tc-.V29`lbWpHXF,Ee''Pl5]H^TaCZcI5L/ %d)r?"MJ-k1Chp#NL&;VW-eU;"8Vt'Ne3D7&h9/#9EDkdKr[tOF]/Ofu1nG=iceNXRi>FNj\-W63'-c,ohA_9<\P#QM2 %A)\&P^)E+[aXB22KToq8Nu5f:hsH!^QqR63p'Em]#E+\+\t7c1npEug7^7`!aK2LBMcm:.RjrdXWG4T`&H%,Qh2$KbL,LGlUS*@( %)Z,2MDs4f(LjduI?T2-=;VHQEHn$G_5%1mmfps`Lp;t$tkbdU1[+gXgk_O3(rjh6EW(adKh(0JA=1$U-gl7+>-/."L5]27UhqQ&. %3*nB2P%J0q+s1eOp'G4aJCEfpb38KE#sKFrIqR.:hOogUE\^VU`BN8--bFk%;XBUHpS5Yj0s#5Z,7$['\6EA53g:j'TJ&nL/2H?U*;8:p1J6&Q#k %5S@Vj#b&M^M'V;Ckb-ggiB_S\!]n^",'Z#)<gZQ+0'CsHk+_VnBkY\->U(9T[US9+O5!$]T)$(ldl(ne"_2-Cf[%j*'+rJ_\6;Jm86nk@A"[+,9J5e"2bNL"C %*rMaT[aqeVDeGpAgYR4]QsW2Q=J9(cHRf'Nf8ml6/s>Kt<7/:8Uq1M?U/9Z7;I,BQ+Y2U):A@9PR&#\uiY$Q39Id:DJC\7P9B>m- %gc^>dgD+D(s6ufc6P##l/oYrG4gp^pDW=u0SlB+XH(i=`k",`"oYOIh37q/\U$?,6ENjLDCr2kj(\f/@`50aX0IF>DEe/M7mEfu# %_/SpXXcP(Q5IGY$,[0a-?6823+/YN %Q,LMaiD:_[37p52"rW@H(RV+q&Dm;8P&%[RNoWU+f&u9GA51+)ekrBmOuNf:amDY-e<]7K;:n2n/\#CU@f'E`0Ij@8k%G.!QM<,s!)&*GaZ`c>l_:V;ZZ!=01en^,g!3$O3DGR[f"2>t,7ge?:b %Ib(m\c#]];NfVBICl`bt3JL;Mlbl@,*W*(,*VSc8]m3WuZBGoR&KGC1,W@/,(r;oE!_A0AWPCnR7bL.'hdn3-Mg83OdBcW:$iH'! %Ys"\55Fe'.PmbelBVhZ7\\L>,_"bCCND2i4"bq4I>qRg,.PU;%TumQ$8YSOQT/%4MB1`N5acpjEfuMN=3T?9fV34/dJU(.E;*DqR %Zq!u&T[f47C!YJ<='A4MoT)FXg7p>]CgTjK2I1Fq=25lgK01$ZBoaPb;Ln %"I`#Al>&0^1mrkT9es^:*pr,"&tg;Gnr-O6c-J7Hp%pCVW6-no"iRj*6WGr"1lofF %dK6DJ`RVra>dp7d\A?ATqWDDd\[2';*gi-*NV>Uq>X>'a_4a.=X9LVJmk62,kq>6JpnWZ3>4X"Zg#ohUHU#4/R]O)&eupS/&/oZ%"*7&]lP2!/Y%B)R-AB%F2^YS16osV_.7N?dXFf'p %;K*Tl/tkroR%QFA]CYAC(QY\8$0iP-NoRub>S[oNS97papX[//l0F8XLFad8+>%1Z8K;_Tj(h>:5$:YaoDP9;gTS;rM %eVi>k*4^*O-V*k7Q0=>\E-R3sUX5,R>UfJVs64U9_K%:Da3nKGFc"E.1?U2N8R4nh:00HAc7EkRd_@\`+pN*+1VEToK"7NcYEFLJ %9ZEXa?nNslN@1+:41[YOb!LmhJlLD[.F2i0]=>a+-6hm6f-,e(_?UjX:cN!1f@o`8'%Z-o&Mri<"=qQZai0R'Cd1,'o-,Osff%&. %D4V7hR!i6;>7TOKQpL()\<*.50'!psI-fL/"8h=*5.Om5V %YRaf"lY6JPI2YJY[TE1l;C_!hrRrr>bU&D,1'_rRm$2_Nc*=3lC..$G.7#?)3=DOuVd4J*m*Js'hF-V(`ET80b"f(!ZOk'eU*b./ %mo./OEs[9DA2S0Q9o9@sG>m.3%q@*[l#d'ROLZedcR)WoIj(0`/V1=%8)gSS`2'j>ZrYM8!(+!0Y-PrOZBQ@]?$6L1_lhfH:ZAV% %'!jakkXQn%@`t#p&m*Vpq%Kn%.WF=JLunV^XKLC0.snT7bE4A2PFaAZ'#THkOXqs8''jfcmSI2B@bb+P[5J?N:@3sZ6/33?!ok?W %KL>i\8)GU4j3A*RLL#U1N&ru:I7hcq`40m_(.&'.6b$/bLcbBs,1KYteq.TGL2a8N&9jYc-9uDOhrj.Pk>kg'=pn8u"K8G1Xehs1 %C(#j2"WiI]]_=jnX^J8bWNuZU=DQk6L+68_#N?6[6+U;Q %^:ap.>V."Q41rOC;(h3t/*OQQU0L*<\1@L9`tTb"tp\-*Jnc`Hp[lJF!\5Fc?u#5)I2oHi=<5!t57#P:%H %I(=qo-[eaKUK"tAOJ7W`.O:iW@,+Jh+lhjo3CE-PW48Ild2?EfKj\MGeJVijL!X%_fbn8nL&K>e)8E-@3K5?R[g=V;I;@`#[V81qC %PC0j)M^N['5/RCZNVmsd1`Tnid[p?b=HfMhEoEM('iIH22:6cC(WJCdid3,%GUB0SC,n'`-#t1:@,\%&:E=1#P-%URVbcSp4.4^R:u.>,>O`d3$]2Lbhj#`"Ph> %F3Zna>@iFDo41WZ6->.fR4!@@$1s.WRAYO+'`WA&$J38eeQRt^:+iphXL3R=/4+1WCFs$:Ml=(eD7(+[[=$:;UY6(+>*)u?'ggk+ %;+Q77gtmM<=r&N!;BZ`b_P(WKKkr-!1@J3KKL/?F/'V>P!d$e$KhtGVg#PIJ!r"=#5q's*(b,!h*_7DY(BO'?Hgl/.fnYpF1.d[U %o9&-"!Ypt^hUfJjg?mu3`;>S\*_;ru3\c2B\Sl/sX6LMYEtpF*EuagemZ*IjI=iHoJFZOe;VF]S[`rZD1gsW*N[#1sI7*l-%Yi@* %\q>JI'5JeZ1gstKLlM0%OHm3hu9s3m&Xq>gY\gbt*i)CZf%SXD6:5X8dV@>1\C!WiuZ %%3nhB$4+^a%?(i0ODlb/O,XV\O;M[cA"s21,`E&q=c=%+d)r]Y!ski9:6XB(_eLs=J%hDr7`.+n4*gc%cjW0Ll%')TQ^KDI%JZ<)Re6?6_<6na$Ns/7NU=]uanWY-\Sk;t2 %F`AEFK4r'4e`3.g7AKbf.J7d%?-d=YV;hA]X3A-30f>9@f]"^%d0A_Y&pLU/^H6d'i(L0jWNfu2p"-W$C=DZT<;gm:89J`e(0+l&20DI&LI.U(Yn2QNZEIc+--tbV-pK!?rA?U[unh0;@/oe.Ds9*d_W/Uq(#aR^KH<9_U?-Ee,+gU&kAd(.n22&Yrd"k-C0>8X#lHo %HQo_i,uqOHaq_mlgY8Rn'q]e@rUjjOYV5ePg-(cM5'E8]d);sA$XE(:?sWFcWE+88s&LnuNr$(;l\DXMgHXtag+U?Fg?g!T %LNe/d<8-`co[*IN)\b\9+:*Rq('+d%0%9d#XH^#`:">8.V$Vk]iJ.Ul#bsID*eYUR"EI.?mU>T-cG!mlGr>%P)?e.(R.2FG>rS#58BYPYbBbo@+3/Vb%;H6QNs<1]4@t&8O"_$L4T.`_St_9-@$T0RfHmA$1.SBbIBNb8i'Emd0PV %C>i?O03f*Y-Y7/P,<>;(0F)!l^.c_-"2u"Gi]9hkFJ)T%ZuSnT+ukmNn6n3T^>kmMC %bP)o)IP-$?*6,k7K@8@)HHs+d%2D)D5'd]SfO=^5@`Fc@)F#$%H4K[Of_E#HP^IOo=5>^3;#OU<0p(Z$VdZ.:)YkJCG7M;aa^TN-_o/8Y5hpuj`"0;7Fh_FMqWMJU,hkJH\4S?]P.;8>nW@SoBIP-$?S6bG@1q5rPEk4.u6tgOr:s]i. %_ZVWk)mPnc5rXc)/eJFoJp^3*E/@Cl=X"SDX!r9R>nX%L=,EiH"eNLF$WBk\@QE9DhT]m:$2cA:M1+lJHaF[-Q %/uoMJ\7*k."U8!a(b':4Pq=t)fQ30kY$mYiu9m %(j[&OCcVSkmoes:0%b7IRSL2\7gPU@.h]-p6/@>g9Ghh.;DZOTG7gXDDT$S,AG+tJ9^c3`QJ7niYXb8Lh! %3cfaqWl`;=R*M4/'L?q"M!6H/O^`Nn"u2Yh+*%lJ,/eR=NC^(l`YachIJ/Rg7"!0T+f7'1Q_,o[0#Vk/r?I(8'k05qHP$rda7E<0 %VIN"fGLb[m).GYuHbm1M$o-SIEcLH%l"nMa:%*lLe![mWUX4r$0qI:"P?a[k+f;UEBuRrK">QJ+V>&5,)\Olr\\)=2N.(MrpSQjp#Iem^CCO1cgV_krVs)H*%L0Pl&Pk!$D_![f1qL&jIdtq]fOUCC.)TK*P0^U+&V?cd1On1>#fQ?-+8u+obS,SK- %ocZdm:uBhXSh4t4"8TB[nSFnB&^7^AN+_J2X[9eB,($bSAJ*"m22l/UFoGd_/^C\fBcWL+H+&+g@=%^WL@K)R>ra0t70*:aG;N9, %0FJuKer%MSjbKlJ'$MPM0`\+l=>5X5SukjXFaj($q,u]#_(;>28<#@AcLu(:MJRik>Jk]o#YtrkgD\)<"WSk^Deg39(NFor,*#*2cW25:CTG4P2/I]G@%Js%Etud*22l1+h2b"p6j<7"+\rTs@PlCH,(p*jD%5OY8u.(8[YFs\D04c,g7W\=;Gda]#b5f8Y@6@bN<)DK'0V0kZ>oUko22l/UO]qW^"-08pE)7OniSXccDA?F,JE*U4N)?,Jh-*1t!X=R$ %YZko,>/7q;#J7BuXp+b'+Y)E3:+bO:"5R-J412l`Mj1H29hoX*SO`)A"<@tBafJJ!85=BRU7[L)X320'rYG*FiE]fHikQ.!""-R* %^GXgh,p3KWH76jW[#uVaXs;)-"m0>'Xg6ud8n\-@'2NA.?CUZ\,L;>VVYq1p8pO1#\=FZJVOcXDV07&5\$qu$2aTP#Fjl@Np]cF, %<"`8r@RSiUAdqMsrI[!1f$?XKML7A*Aots$5.8hHP"&l21&D>14tF56DKK!9E;"^oQ)N%Lb(iW.`JZe9N&')G?LbaYBqCkU!Cb!m %(-dQJKEL8TmQZQM`V_B2Wl_%HY[=st3bU[q78RJ[Ug>C%[@-osqD)Z''i$B91ETK*p/U=$q^"_pO[mMd"?%/#l/b'%7Q?[.J7nMA %N*a02XT1g8O`>2`)?7*_]kW%TZ\RdlfLR)CTF;p"SkQ<_B,`CY1W/)-acdGoH`lNVQ=ieAfGDkTHCQjPkZ?F[H&3]24'7"VnhJ:2 %G$]":bME7gg49.6?IYEY!"_b@D:(5bkgW4.bMB!o!nLY)nI'jNO0ca1%Z^ZKdSt% %2WTmr1Y)q]s)\a[eO3crG!j*VA8:)Zb*eHeG$5:j!iFWQ`U+53VO/$eNLTo]HU`la-Ehe1uV^/^2:C8/A %Fa7G2]HX^)pW?p;gV)u?0>UiY!Sops%NK9^@DrJ_I1Np#Wf,P&$8&tui9`6;Bf,-9C@#A*,E5+H7?0MVLH,?V43?Oj?a1e#FM!T@ %bQ`!H#2R!%.^HXsZrOVQ1":BjH2ioZ*]Igqone$8gPI+Ln"r^fb"ZSk]X?$f?m*t=CTXY8#FG;qejVS`DRc8_p/cGJZuJnZ`n`(O %HKk*N04WJV-AoG2;S/5fk,rO08+mZEn?uOSF\`LHD>7bISSG8W'V=WACV8\mtX'^e0+S0Im$?M#HAY_)t %TjS?D.BZA6@cm.2872oJj@O9W/uki<>CsU*[ZsDcF'1XmL:^T(Bc0+ikkJa`pD=0\%l8f88L1ft.7UC&Z&19Qt.%`/t(t!_*d?>B>#Pb$RFYdXG9ZYCRImI4VO=mHJa[I3.6\jF5>.9H@/)=Ilkre#l#@ %9oGE\#`$$U@S>%LUB\*jO)W0F<;m/Y8%:0PI,NN$#_uYU&4&9tDPdA1KLnF@%N>rJs4Bg_HN^+#_oBs7m %f*_*ECTa0j%X/uA%+-A5_@Bi!@mc`X>SL68TZnR.cATkl\Np5ML"3Al7B%W;D,@TbpSF1g1ioj=.rRrLlQ)mE( %[!?md0?L%o9h35uIHH!P\L]@o(X\:B>Cu*&=[<_P'XNe47CdNN]^l(cg:XcS_9qCN]Zh70reU*Q;5;CNZ-rmrp@P$/)Ul^*-JU`8 %(4:5s4cc`u:-\$-TL+m7'<.hG`VF<3]I24*UT%c39]:$7ZL\P9T'DXYc$)6Y4el0R.>O5d6uGj3U"\b\"KF'd>sS1t`-_LLqU)hop%\;^0++b,0GF7lld*]AIg&"D7c8$G4 %[B-p8VhLo"p$6Y$[!>T[.6kL>k3+D.S9YtSSUYPt2Z)?;l1M2>jkP>\PSNj;6Xhq?E7aGh4`,dF99e_Pgd/RMfQd06H!\9pCuMW# %48n+F9^9.l=RQ.MpNF'ZU`J"hCLD>aC28r:X=tPik7b4@d,3eAr&B!SQFG"5uRr7!?W`TQC<(7IZOjE8r.?ABtgou!ho4c(-Pu!LA[&`c %*FA!*\l(clC]?D]7q(335H+7H!`S>GB+<]^7[b%g2!PlaVsJG3%aR>mg@^f.61Y0,5sNUfQN^]X?;F/%8irk;:r`jn;Zn>O/CY%*`,%CQ$p*;Pgh(I+]LAs8BfSXu^V]2o/

4Q;r\MUVilAl+YlcIm!i.P$0np!55&&ZGpSVlbfd4IBpr(@<\a=_i3s[H"k5Id&Wr'8S%\5C%L*.dgOc?);E),C@u[qnI0?p>eJYa %l/psC\ia)W?Kn8g0CM+@5F.n5WiMQZ/ZZrOr[Nn5]YS>/>F*&YfAFZI_9aRd/^=knI5)16L/%?T9>g\IFgK!=\a<*;c1D`$.K^J!T/4^CR8.JZlO?gGj,?9I2b2VO %Gs"M*1GO$'qU5I7cH)jEH_se\Fskb[,F>I%o=p@M2p0lPX%0u)=!,jE0s?2Z=Ef[>EF9,?Fp?Ig#F#t#"C1VC$mc$#K,%_M-U;,] %V+]Q=Dc9W]'$j32m-:1`CH-1aA(X&c^K?TS5U1@iA8\B+PP'G4Ks6iJq]E7eY0R]NhqX`hl[\YSIZ*qSc+eHF^oQKZ2`hP9Ym7U/ %k0@R%R0i2/n9.-E!eI%GF/R[^l*kI%YD%2%_7`rR,>G]?aN\_li,PM\2#Yk*\CW>`a$LTnno`)=#Erj]\78m=leK4Z[5-8Mo=EY) %=FGk1\4To%d\4qmlLijT2ClYD/UW+ihFsA6p"!iN]pH8_\)..6=NLrMGZAW]1VG9NZZZM;HS:$p9NG5&!7dJUMh %]mojA9b\3rV%lk_Hb"F(J$dtBmJm!^^:(W!m?b"@Z[ZRZ4-c'G"5%e_oqq[89C@IRj2K?giErf/>+KtO9.C\6bNES?5ISq19tde- %2<7rm;q&atlLb`]a4g,>B[aK&Q>*<55#DJW_a_61U6r[;u+e*Dtq %i`.\@]9RNU`K7.e\\1YZk2l$Z][cuDmG,p+l$0=V>i4Fid0Qpd+:2M^0(g=/ciZk8e>MWd47oX-Q^61T<-<1!/@EY1Bh)M\/nX(g %emVtN@[f_^IAEbL06!)j(Km<-1:g#HC,cUETSAk[F %Kl\3&%(;h52La/]p`c"'j-00$6g(c+RS*##[^ii!4N0&*j_]0RCX\&orH]pH/ETjH'\P/# %+,?\Zjf*H:k[f]_Fj*DBC?4<\r,d"D!BtUm!Gu@O![TJ.C0`_WH3o^[Q-S&F7PC;,)5F>ab+"<[%=8J)VsRL?aHk>FSTgInbAj!u %BCO=`F:2N,T!K?=-_:WWc8i8U;K6,\R^YKDZK"RgDCL8+/>k(tq9J,F<>`K7mB0!sTOd'IDtkhibPTbUNq?5Q);DLY[04b@.r-GJ %RN=,&`?9#gk($I@jt4r?e("hf9]I!c'ik\)bNr#7pU#/h?c/bi\nAZ[RB" %9#[h#gc\d@oDNrn/5@C#-/R=A8bD_[ctYm/g;uOdpC=?=1NYYtdug['ej]B3RHFhRI=.09CRpiVYfF1I[#a3AASo'/'SRkg2i6=o %:#`iqrOb:BKW^8^E\ndAq2&sNQ6.eqjNt>Yq+bQ].b,$OmF0L`'fZAhm^0*C[kYIo*B[t@9KnGfdSOXPd4(tYK;^Z*RB;Ne:"V?NKT?c#8mhqd7HdCF/R1:c9]kQS`#0Z];VWTtr %D;/0.P"tsQr8[2ZI1DIA2q=1oa3EH^s5IR9QX$<[El5((qs.9$Y?t!Dk*mS38-\B4[6Nq7q^9nV#>g!G3oi(6e"HF2k/ln&mGdNq %JP/D8IEY];eO"4<2KM[+PeZ4M==7WhB:jiS;t&FMq[D1mLf`]9a-@[gj+_4,/"L%>?([EY0S!`Zo)j'm,=91QSC@b5]"Mr2GDu`> %OL[e+r<9^He43(hRs5`'2@HT/q$aA(G,h>[58D94+rG:B2l%tpB5r*)6*GH,`XhH$X+m,8cbcZ/G\l_k`^gNsb3baFk$bFLK_,%. %k1&R;08$=+(Z3R(="Y!#1OWAqqdf+!7+B^n?p/;5Di=PE4SAO#ME7t[qa("b25*#(fK;SqHD3Fk4V@Fu_-a^%bI'QYU5L"aUm%#b %G`l?:_b"Q5:7]qIR$)KWbjM+TP1fM\_dmB>3/moSX3'VolmAY?O3>X]AoTbt\URdRk$GJk&Mh/gO&\n2,mVpCNf8G%I"'RQ^Ld&` %elq@^/if3)(>QAP>S3K.H*=)MnWCX\o`M9=X'LfRrXX*\Z1'[Wu9p!!@b7U:-#c00c1dF%7J0QVO%rpVF6!TidV %Zd[FYr*%f;(n[g6C2^66Hft+A`s96DGUqZs/):M6FJ9P%dq6p'cJI'R;`E=cnqsZk@'s)r4+BR]9\MZoW)5`jQf\f>Pp0[^FD@68 %X'1qQ?g7lTl1qj).l$Mj,T'dHYeb3SK]"F;SS)Udm1q$+q.FZ.e %,P:IFj+2P9J"n%G#E54cRu\*apDCk;?W8W?*MGJ0]\';;L=EDl``58I'kVD3DkQ&-8kS28V%>nm`/MIg3j]Fq#uRq)hKUKEa9h4'"$ %Wl\?H;-O^39'`4UHDJjoCU7sFrEmHiia+:lhm1H-1:^$q'OX+e[WCN!c%hA8)!+3:(Fh#m?NN-sA0]Fq.pb1VbV1u*7L<;f5>U8>nBX'&8II6ZAC!W/?fg16p!h>$cNJ12;DLjhYp^,Sh3XM1[Z(3aTLj5'sE`WYsV.*gkgX %\Z=qd1U$8KXLFJbmJ'eQ@W'k=O^/Uk*]OR71D?,s%,*'^b"R=I[FDlVn/8?=6S@m]Q,&o.inQnV/[&o.inR.,i@+DVTNNLLgpC:f9E$`71?>[.;\Z+FN-[#A?Ngj@q[[Qh7NCAmemOW5&S#LQ.6]0*=& %kGHj6;@3"H&AL$XAq:i5g**Y>kYhsDJ=jE+H86mB,?C-r)6Zb#ddgE_-RU(YC3WG<_orq:r&l\dj?=h.bALtJ67_;]HTR,ViW)*Glk_1Z!\\3.52&!GJiK;_K#/hakh\_fXf%o%D,Y)UXEB:X: %r91TQ'c[#NXRh9]3.]g%ldVK54!jjlE/d7Q&.^Y9X/LJLf:4dlGQh*^+eD=>/6C]0DZ?hON]%I`4h"h^$oGDp`9u=D\E2gs.boY; %ELSMnQc=mkpOQAS?CmbGWSR&'Lodl09*paS\+4R71M<8U_VI2a]g;)Z38YsoQR%:Ypefpd&`a\-8(+#/ftCGQrS)lDqYZYSf7@0B %<3%TuI*=21\>)f#^&:Z9mqY=(U7V*(s#D6pThI'"Q0$G8h_3gOs.pKs1[R7aJ+W+'0I^E]7m.q:*(T=QrL"g/'!H6nW/uA-flHB>7W1YDL68g=8g#n*q1k$:0=)V7dtQB/Q4GHhg'Y'qcDCpR8K/TR %B"=TU]q([[RZ6E=:T#mVosM>)kA4rK$YL8`nUBV,`N-aH/%+W$fA13)F^rSmIHRD.8EG<74T2rlokl6:Q[H2:DtT=THIBUpMD_N. %00;LtPXt["kn^!ph3k;`9;Q7gc281`O0%;;TGaW/4D%UJI%V.'>,R`lY[o)SI(;(&E2=0i]aDG3sPS'TsEqr$dkgfq34TA]6n(nin1h0AG+h@YYfoL:-fZhORd0HgdMF2\Y\=hoPY0=5m9 %n'i9[dL/>fNhK'gJ#!n1a!(OiKL1!ila?sJN#-JP,_j/oSIUJJ6F8oalXbBQ82$cjqDU6a\<1)1.VB'NJ5r-"VHHa!rV51ZObJWVD'ILUt^0oI/#S^6$e)F((FMi&CS`nY)K#(%7KiQcs,<:R3`Em %MlT:]p7N6%(B'A%i2"*;`*@%T%YaOAnrbQ*QdHti&=oFnPT(4_$h5HG=>-F:H9n`J59-_KOC!aVDdg?O6@'f!(X6]AWqL>8L[KHu %=O1@=j(%Vq.*d2lY18O"FcpM'=-n9o`PUs4+]B.R=,e%lD"XM,6=#'MbVKm:IIL8gO,=%!%)Z'aig&#p*U:VCSZC>!_%He6Gaas9pn/"`1*@&,A7[g[Qn,[D90As)'tAi7XNSZr2VGN0%(:gnib.*4^s6QR#t>R?t$Qi6SbYK!N\Hbf_Z71"GAAeQ:U\P:DlqG %[m\A;a=U:-\'K4QI5B>E:;6,XP*r;t%f#:kHbE\*4i.+,s<5e=@&`7OD_o$hM %V]6c'[r\N+kOEc$]*&Krk^;t3:=I%T<8GhKr1X(4`T %dbnVbY>T@RY7dtil!)RF$bBW`A!#C>@\Yg%fM1fg"rW0.oc#5Y,+;^\=-dENjOT%YFV0mkRjCtV-Q[mKnb0iN7gj6s,pMQJiO.'$ %C;_D/]XHGu%5L#/Mhcb!9hUi$\YL1ugm-tj@LSiL/Y,U-QZKd;4WZKZY@$YuCP4)4?G@PF;I*c*G(+%:f+RH2Mj<@l>e8^`*YteY %gki,OkZU;PN?2X6B\acKA.A+?iUYc+mNH+^B4E*6aRqpPr) %04.iN9IJAmDn9&9>=2%YR9k+V99M@_]=_Hk[3Erc/s&Z4mtkb-jbG&shl-HX;YH/;m,$krFpq^ggs=q):J>J6.@Z6Y_TYs,C$. %PD`Z0[&;HDU2glTVOgGXSmN77o %XEU9<`*:5X/Nf0\^H3W#.!t>l4;M."ViPqO=[<_uWj1pKorWaNG@#=q!H&MSO6h:W"U*8&]MgD];3-Cc)pF.FY12>%<'$ %lgn)I$R'?IKW5L9]-hkd7.d(#h%i?GU33<#]pM0+M-Xcc*LEDP[Ah<'. %T@Ooi*F;WpU`G.n-#/.FR2&O8&%XCjM.3l_IMnoS,%CAB?.sauDcKjpLHA/.V,bL_ %1+/EBd`te^""T9H`2$pfCUTMhB;qZh2IqoBF6DJ&7ti[Tp+7!pPg@BK%aG_3LcAH:Jcllj3lZ2KXee3eNoeKRIW/:H?G$2I[CH*8 %ijSbo6eC>c?\o^XL>o/Nh7jSH,,SQ!rS7RORUYPGYg:N4e6,Hd8ErUqOBNJpebUaTO>fSt?h*HXa.%JHL'2\#,,_dd(\_ %iCVWf%MN'`E.X4]X\@[ %?(.VPq:QZd^fFJORm_GKmC]i+Qm9&J1FL5YR+EV,4c<&WiidH68[)$uD4Fd.== %T=*2k=Dk)$_#a5>IpqtWjSIZU_@.'R2Z2DslZE@'\M8E5N2Ba?KKCB\6FSL"#-Y^ASgUW_8?l"n-*Z0DX!PCNZuM94!LCL`e8O3< %qqSFu=a.oP$fC3[K]DT(aYV4mc?H46FFNnq>4#]uX[72s8HO%_3jZ2^J!i/(3fq54Y[WLJn!B\I+u.0G@6E %DPnEN8;hSR*KO(Eh[ML#@7\Z>K;LSMCZ5-d9l/qRAU/96g-f!9#oi+LVW@9J9+3cQ#-<8\>HP**[aWi+]>UJK-sb,`)sA1(@9JH? %8kKS,WGsNd[7;`iqmVBig,DZ!Y-$")05N:m.A:E@/N)O7m:339A#UaYfP9qYC)@?1cW9B#;[mK@@>8&P>:gmhc-C\V2P#cUE9iq; %`Ug]kiV/uS_71\6n%?;LrM(]iQ3nJkV#QJ;.#=jm$L"\uqP_V6H\XYePOf!2NSr#7_r6#gD:cg^Kh#"lD)h^d3mr %KM'<14&F(9bA1LnLiVs+Y/Q>VcI069>cI'eV/n5_AT?=!b#fEn2NDm^`?i:m80m8H(B)^mYVn/%79c5^d^e;K?p`J$e%$kr`6=%d %\Hq=OQJim!3Z%@l*m(E:VK7"oVhYQkr6gd3WP4S?Q)&Ou9HZs4kYZms@fiptj0tu&6Dt$erYcbrmi\XM80'h2]gFA8?O)WD+fBhu %XtArn$"J6^4_>(0)jpWHXt0:l*E>LhoI,%FmE=Q3L-VQbYNC,BHCIQWOeZVIRjSZ(s1Cs905bslIp0n7$"[Zp3LLq\,N+QOQ"1VP %!:sQ`)IN/qm/AObgOQbP(Yt#P9sO`#J41"$\kmZKG"%%4NR\mDH:0t,3L.<*DM5g:Smcc[7Lg8;[lHJ%5Hq;gg#l?3m2&mfT"kH. %f5WDfQ`,Xu[!Z][YqP4?g3NQ'p'V+o*sO3'W''T^&B06'/R7KRM6h!SeU%c>Dlq,H!u/_3k[+DEoUckpemGh-U=A1VdI?L^KQgo7 %m0Fr&4e#cP0&R1$-k(9`61&T1p+UoU`HglB+^@27C8mIEPtG1Q*UK-G74IgjVtQ"H94PCnf&^Tt2b!b63lfSap)nYO`7m7TFc+e# %K>l@5O/TtnYlQS%oh.C(B((7rMQod$@C`>$bE"Fe?)Du$otsrLN[]']q=op)eB4<;/LlVU9Eb-0IEpF>s5nqTJ4.m3@#8+YOnZ_V %D8d%D0EYD'[=3>>bl'l',1R%H"UCdgd#M.3R_uO:J^;m0V\^X(Kc*5oT4ZHs\UNt6RjD9'C'jP^nMS@!0gW&0<3031+OuXuk'-/Q %^?D3p]8jLfj4<==H[%UjX@9?@c;$&io9S)2'WUV6E`#pPT<\=Y]C(78P>eUH')[$6)%b\uqMqnt!"*3m%q2qej^_?^=^lu-RsM@X %*)!OrSg<8SG$-=HAd-r9ng&NR@<#;Hpl`XA):Kgja&F[4BC&N!0,uq9-%38n<#3)A-`FpfY#_J.3HI&:6-TAg>jgMO[EMi:1n-r# %pKVcJ]OZok-e^jE[74(U*8ZF[E8S310]'81H?)eTpq9^Ua*AefR=2`n?QaV>Q*ZaR %C@1&/p7+Ro_5Zc?.i2!W*7ak5A*()$[BKE&`R@Md3*RnLQH[3L%a8a+M:Jl?h:#CnZCVsS7]OCX!mr(lK&"397=hZgA@N%1?cfB'mXl %!pIpfX$,Le&j0j:J#$6G`A07sZ>1$_P*9=p.i&bXG06Z]7L^lDEFq%b+@)aUdIcA8TUoj`BYQr+$sK0i\NbDm^mM0j!!aVYoa&&; %!<'u_a,6MScXDDn$F9>')!8@JkFHp&W#t'j+:6c34?b9i/Q8$m"g_XZ0;].&]'X=)^=[Q\LUN1JB,>.Qci.A?T`uI57GjK&lTr:DcWc*)o-?Yh<*G!i@firh#S`OYep %jQ&ak'F+j9tOV2:neN(KQqGfS6Vp:EC^=[c#`hM!D$KC.b*g$r? %^4)?-H6L_%6QsnRTf;J+NoI$ZAFZp$3AWDAZK[K-'-q&l$^7l)!pB#VkpW,a8#2GFaIJ[f!F!Prj$dJP;f1o#)5#aH[l9+S&_Z%V %1h29afV"b&U$E[qS\KBFUNl&D1#:9mdSW,LNj/LU^Ih#de2]jch@Sp,mUV_[YW@JL"9Y$N-Ur*c3_-n(-=ir&/kE-8SKjm#(FH!% %_TeTXV5&;#*0D4IGGV'`cAj;qNhANpqb^PhX`N"H=%)s>I4?8V;s+G6)b(/sLFs6Br>:+KHIb)#3P9bi*Q:t?BFt$qE/?;-KE:<7 %d6J+,3G.cn6io(K"^qDs&e2ce3XgZBH:9'0(kdJpTLc1^A))Z&(aMuk5n&4^(@)?:i+%ZK"#1&b@GjOsK`s1:'cL`D_h87L#j#&Y %U`tC-^^f`!"na@Ml9?FX$pkhB=CiflLd6c:ef*#WWF)KIXtBFa8afBc1[rf-T+o5OddtoGiqt[W %;l$dqWFW&MG>\Vc`q#N>*'Db)0:M?QQpO9KiXE@1'Mi8+/G+UnT"EP\0BCS5;ubeBK[o!eI\@R5Y'_t5$.!0i5#aV7RR!WhaJKP5 %0.29A*M(q2UE7287:Cs<*+h+=Efe_5FB,1!arB.ZCI^H>p.Bft:ecFV %nQhghhRKn23U\Kmk8,C]S5PCUYU!-b]>)64phF4EpHdM^A883WqCqV<^'2gAg_J^0JWVqf<6C8c96D2j+Is\uM&Ipmk3PQKiQR/r %E*a71Nc&8d;GSS1O\@thU+`ak4uD7S1*9.HR'qsDFU"0`(=(JpS@SFsp5fEJ^\Dg+b1NIP0T(WP-?&qKJ"8tOA*R"@K#Gfk=bcb5 %g)5f_`G;A$FF#Z2C8L#uE>K@JL"F4T?kB_'cDIq\R46Ub;mqj:-uEf8:Pi6]kL7!.-0Ti*-LZ]kSWNb7U=AC&TRApU?jq#[ %G1QBY:Amkh4]+=pYtFThci,5rocr*qPE#.aM=sg%WN9rhZ(>+7UKOn9^.nb8Ad@td[4@1UG'/_6JcWB#2?kLGp5mp9putMRmGk[& %:Z`bHs0RFA>$gN4Rr(>ZQek*"K$HT1\l"m!QWgl#o%$i_K11f^jTZ1fp.u\AKnGfdSOXQa/rPVPA:`62WO5tq[L3eWOB%/Cm9U`mcV(K`0ml+&skj*!R2m, %VkfsOlMFA:,piYD3u+tt?LrQHIF-nDnd@Qh)J@(R>Sgdff"l"8crgZTZ5X!('mNC],Jc[[6R.O5$=A&RFm*7M'nTUd(J"]SSY!)XJMgt %^6nPSJ#B>>T?QGibK]J9ID+(_RC.54Gq!CRg>+:C^=4JGUKBXZ;7k-2+TBXQR$B7ZC;QlW^keP9(;7Kis#)9]?BlrnpTcpZ?Ep(jG<`q>X]R'^T?S0T81Da %c>H][YLaQ;2ioWYegBf:_)o1YK5+62RHig6*gG.hp#``%=Uo@3gr`O1%PqHC?,R*8\i\^0e.0tL4Bqm:S.e9nSc#K^>8]dc]sM!@ %%WI$W=KpBV/gLcXS/"o6W4h!Q[f>NkqV(3u[pMB$:'"q(rRH>6#LnZPqtC#cEV8eo7md,@s%e1F_uJ935GD]dO]3(p:m'JA:8H"< %J&KPQSC`[ed`5G^^@cXKqJu9!mm"-L3a?UiX]5>Erh7YE^pA_ZBc)hK!DgU/R6Oi!%Rt]*&H7pP^PDi@c:`*FYO.")(JS&]N'HeB %<=i-#r'Q`\r.b:PO^W'O_tiaE2F%KV%K.7F=G;5e!9mj?PX"J`:nRGP*]VasT)i`:(aPOXc&^K;E_;,.X-N9F4J$dsW0/p)=3Wf;'p"Wl!\S;'Sr2omb %g%fsmpp^3G+d"JYUbdK1%ha3q1@[:0bp))C@-sgD"BWdthd"p8$UaYFDf#srG0S4r$g^4/YkkYP'lhQAUM^oC;Y#Ph)g'>(NU-aE %=7_Z[,liV(M<#!%[3_!+*h*#gI7Ek(LC(J@2h3Z2h&%<55OmW>qoL@bc&GhDlr'#/IG_Zjc[2+&_j&0s5b667rk9sM5EYcte:k?eNq2Y4LgBRb!1jE4`e@*M\Kb\NZk',s&2K/FAh6=d:s'%uTC$.W#GROlSUXI7[. %JTR`&Gu`4:@Y6%sHC%l:;t\oNUS=,%m]-%d0@mWDk\H_'Ut2[*Tm %]&N"t+hG5tNP#=Jd+t]DOaI$_Tbr#Veb%S1gD';nAT-=ijVU)U\$s%m8=<>aZ#VEm2Fk5`OosF*'(qA8(7[`hBVB0?R#5jR.'a2 %\imei"K.C;+05cLB!_k7"Bnj\@)a$tPnrff,mLT";ZId!AYWDW7Q6eCACQdX[BG#KVB$,jDV&5>!;tddUdC%=&;/(ZdN+AC. %l.6=g0C'el9ethCJARihT/`PoX2*3C6pG[pF2XW&.QE@kpqIsrRo2qtHJbS_EAS>iXs1qPA1r!lBN'VY(k`=Ab>;0f;,pVLVFUeI %nVJUp__FDR-:I$>7bj[aJ8DGjJ-Ft7^d6J?n$Ru]SgZ[:NI0KJaBno-a9G>?$GX-_Eepm$"Q %5_GC4:TJq4NT8q:)>L?[C7_W7M6=!\4`>)(k6$*glugt=E'?OIi0KZt4GoRQ,'Sg+#5_$2+4u'OK8X-+M-ucDBU4MEs+kC/2%H[^ %R'Q-$YYB3K(`$1N.$5I<+-F89)22k1Q=/J.J[n@Td5aVHk[6WR.ODBOp^t'g5GK&N>YCa[M5&t#4,;I-%2mH]B'>h;p^u3Fr4^Tf %%k+aIR0];Gl3\"^XFTK'I>R=`cVW'6ZM']_caATfNi[$aESqSqtCXnKe]l(q) %`]"@bbHbiN0"1'WH+"*=$Ld2AMsYQ'*O,NR#ps$2:r;Nf?8GRO*K18V-U`_];j0,t,$bcu0#QWNSq,]%]1N\^`T[J=^h^_<-/25D %D#MM*Yi5>",LQ%rInIW"%+%#N;?Ujrj8S06:V'd`[9DDLmFSNlI$D6n@[:QV'%g%i2arE"YJWX@%26:L6DQ02"Wel5T`:ZNWRM+8 %/C:&b/cq&(:k/ls9<^?+*';e'JnP[Y0R*5d@D]bf=`k=If6a\&/=hmqhZ%eQf&$ %3jfc"1YqP`gU2JC0JHe!h!8Sd\TO&(SeUlW:BJ)*66iZ+"/9T[1;A9'&l_6ZB@A3<oLdFC)p]U]3O%^_SX3Ani221BWB;/OE4@t>"iEd'8*@`glCX+kdqpo,_+FDnW/JE]Q %\7$Z0(@n='r/Z'*JAd0K;`kO*Nlj@\\/,"An[M[`h,liVCIl%kbJI2G98.<#T,Q8/icDFGj8HRS]h05k_;5VEP4^g'fQEhPYAXJ+ %6utQ$Llo`T%N\i]CH9elJ\R%&WkU%?cmiRA)A6k$%G?S*D=CN3V)"K)nYD'1=Z3 %O)4(lldTH9L.5cU7hadQc9s@T6ik70*N1.q:EB22R+G&Q(%0\j&*h]F);s9ZZ*5Q/<)k,+'"ejnAX*DF>!tr+83aba0HN1uVQ$9* %O/f*mcr%[Bdq!+PG_Gi^nZl+O]i;UpfU"GK)H^e[$uSmIE-n#rZQsR26uIX.;.prWpI^*;2nFD&?kgMo<8#_J85d:N9R>%#7`[g= %NLPFO?^V5:g3eiN+4_2og3>d6h[bhdIJG/9">bXG02>,1!_eiU$Asb^F&YmUE%Ui`UItn8%;'-K65!,fej91R8I3FO%h^?bDXT9oKqe8NZbeq(1DBU1>';`$?TR%DtqO %dj67bO:QU=PgSA5,[a0Ibp>-O9Lq]"&4$sTQ]uGPlUV>s(4K.RGQU$;Q4f(*r);R.KE;K)]W:uL+b9_.DNIg?`FP[,rG6lC7=.J&dh=/ke/V.W4Y6#/bi6h9*s88 %s.GTQF:`5FU:R1S+pf(i+T#L+SKMRaY^Sk_$!;og>.H(RgnP>9 %#(BQK':U[]OhT/9Y3N:;U987gB+`rJhe1>^[,KcT#\Gg8dIt-INR0Z79QmI=s; %#)7UC?&Q#TV-5JC?DCF!Q'^K3a(I3Zh,[Cd9D$&=+GJ!tpSAf>e8TQuU0WC(Ol<)#VT+qQ5>_4SlX@"m`9U5F0=#Qp`Nr'J)NXH,`&m6otME@9Fo %WMJT$=\rBb[#=4JbE@H3,1L/l6&es&Nd1@7ji/X9IU[5-:,h:6E@@a3SjCm7:,f#?&H.8\:4Xltq?a'SqD9l-#o[8u#"KuX`:bW1 %a,S3E%nDUjI:O5>:#_i,(PqdZ\ZH*.QI(Z4C^bcDHs6.`Rn-g"!I_.-]"P;Z9jq7Um(+CIYDGgW*/[AUuM?16nZ*](%Q(t %7or5&m'QGt)u@kN6H<.X->!X#L?+5qQ4+?nR"-"?>]_emjW^\7(At0%`)h;sZ/Vgd+dm3f)P5(qWVI>-WDV]VI=`DJ1sQj)[9gN9 %e^@k)*F^5u$/l3@RflMC]Eh%#d9tq\n>cIaG2C$A2.?0M1Rn5@,bA5LJ>mKHlp %L+\UQC`$Mc0m..('WQ_2<_uYFH&-VG^WEr2$Xcf#$JCjb;ud[Ufs%[e71uff:h0-7Z.?bNJPVS":S/agM3Q"D\IijXoAeu**]=-f %#o3R^i[>8eMMDIgOPrELM/4gl'P+j[d1&P(q)V%,"9&i_..PYJWOOO747l`+/]E6g9giR>TGOqKOiTh#GCa[leA1tB6R)!4Ab %"P5]\pUNIn;M'qUd+qJRC91<"'S>E[L1kS275Kmi:fRNI!ohF6@R>gK1har4',->G8Heau0/9JoOT3EF3Ea1kBg^M.@KI5$"^-q: %OdNp-W@F<<:.tYKaQk14"D;1qJ!PotT,)lR9T7Vk!$Ru$L]HPU"F>q6d8%7J'k.6",^G&r#!tROA_ep`S0s_\q"F9^&eHPhW!1:b %$ODjB@-4G`OUk4I4Mtep\tfEI*rdoQkZD\XfS+qgT8ZW,kaIgh"[R/8#7NGQgfHk%`^p4)Z7dr4BMe\*d@apDZu3s&d=?[A72!gO %,T:Vm":<3s)H6k62+V$f-Q;bmR:u)(ia\RgBoQD(%OZYaV/U=sa22%EE%d9_mbbp.5kb=em<&=ok0Cr'5TUN,P%)UF#Y_9#A$6ij^ %U.>=7(_n>7TalbaM<,%S'CR:bj([&Ku!?'&ria7FVpZ9YQsN-)nmp%Wp,d7o*+5\Y_&`HM/FF:1C7&e %ii#X8e_/A8*?H^U?AN@:[Mj`e4cEK26c$!M3dcd#Fm`*\WtZ)dHM_nT;9K6&/1ZVG?62)R2#WtP*JYL/iqW/$WhqdVak:K$5dl: %BXl+!W5"+OiDHMQ!RJo!ba.>8*bAp\ZSjK.H2f80r2#NEElj-JDIE5IL?!pR9+g8?*RKlnNnWEjR*I3q3h7au"b/#RJedE$A*"HC %+96,#=Wkg#`SMqNr>/>^FY:gD_+I7mD!3K%cUE!C3CSS>eKq1*2-qddin\F8Lp^p=Zb;]NbDE"6@Q@#[C$E@Ej[=GmgkM#gb*MVB %>>@?kr+LoWi1'/E]Rc^WlaiX@@BU23NFdMP*T=D;dCh`>(IO;?$UbV:9O2coOA?6K\j5Cc`/D,XjZs%cABf1I3,0upKGT[r]aX%( %M"ZFS_tXt`Z6gDQmTq'/(4LF\#2cCMCj>I.%+3_KKI[i#K(X2?`$$D4Ue'p83(DtV=6t':@T8,Kki2dfSO3dIBgFcMKZ*,dSk#(C %(HJjA8>]&carFSGJi2em-R=_%Q8u=">51ZSTFo4*QsdsLK&@,q;Zs2r7%LQs`1mK'_?W3N%LN:6.^J1HM;t4N4Bd1Cr$maC@Y#JQ %bBJYf7Nlo/7MHKU>3C<5>b$+3YhPj.c+e`SLI3JAiKEMcVP0h)+K`hJRR\hXH %V$-NDP7g%gr$j.H=PsP-1:NL0F;%>2AMhf`>jFN0kPB9l#rY-LBl;^G8dRN1*IWa-1g3O=P@^ftkt8*U#UHb>`eYj[!eJ&Q98kDJ %rlI2)=9.$s_;M/C,/Im="Q^Fk#oo,!"iR3i,"[&Wnd#R$;'mQ9)YcTA+cl?28O5`t]-2&%K*0V7iIm_)HXUs8[d(7\b4p\ENB\XVr]d7F"`X*MlaK*#cN=i1s)kR?OK)VO7l@$O=Zl%'L'8s*&X#cP-Jji;V_^KHU59* %?Q`K@/tfa\UjaonkQ32c0BHYH+]ZLuOfIPM+c[Ja$E5N+Aec$S$IN1%cOn%@1Vm$Q8'%T^T*;G\p5>FV0Hs=?"BfnP)B("oQ=7h%)Z6qceF722-V]T:]6^Du2&%bu:c4.e %21XlN2,3%l_L?f>EC^daSi8MTG1,TJCL/%osD/8>ZW552^RUf-qFl%N(qK1C/CkV`8gphu?)iCfAH%guA %Eh\qr`Zg:_?%X#9-b*bFBjWhS>0Z@W>Kq=a9RGiO%daU-F=.(SkkKLnN;7ZOm7'FKco)m9#h^#(@,U*gWTZLcdFX %%o;ISbRaeXTQ)3T0UVW`L4V_8"R"2[`i#-- %`cX8iL9-j3*oUIX?+IikSEbEd&RE]mlQS1FL1rLLCBR#7#Xp;s/Sik,kK$u^R0I75-nb>;;)qLs[GXjR8Dk%dr_N@s70.>!/GLAm %1mhY\$)V,.)UX';dR6,e7l6S[VQ/(]ZaO].+*;%GceCZ4)iW1e"qekHQY7ub-QFBH-;,`=S\ITQi/hK7+s\o%JD_$68;l^fiP7V" %#m[(U`1q-_WjSKbm@5mV&SYV %JR^b9^&PE!Q!k)YLg:FL_[KtO%$#%XGX=+S&e;/0(;mG6):Y,0#j/(u^h#+m;^73/m@OgP'J\(.\pKe]L(1<'(GY7=a5numOfhPh %6Uq[ir&:]30=34l><@J?A9+GIB2@DHZ %"EKm;c:_3@:R<&u,8:medu6=Y%O4NSA=+DubY_l4__SepFN#J[8M?kQ-AQ/2at&)&Oi'BOs6R_]?m4bfLSl-#J %8YR]7Ih;AW!IE]Hm(YNDOpXFAU31/m.u$Uf?CkoQL_bOu;^SHVW723BVMR@;,*6J.S(=mpH\7Pak+7h.'&>]]J)d\Qdn&BWD+;Le %P@u<4/Rf8Tnc>J'l__PH>'/i&BW1>Hg"3GD^O:=,cfto!5CljbC+klR]%$T'23O6m=rX&JY76edo1ZY#9S1prr6f6[_OJ+Q&SSK/ %/2gcP(X6)$Np9:`f-6]'kZ\d5n'^-*O))R:+2aE,gLpQ#V9q+Z%'o)")Agq-)H<2Jc\-r-U!PsF09)*\."i?0Uu=um>8j*QQH%j[ %gg1oMU,1c\[j4S;V85HtLAQ@<+2_:[p=[2qBtf.2L&pE.\`8S[PZ&S2auKUa0(H?slR-f#Ta5o*M3:33\t:sKSfc4+3B!sEib'Ki %EE*ZtPUP822aSc9V3*aEK9$f4&7l]Mlo5SKX^$NtQXp5L76Gsn<3Gh'_sd7?L55Hl`5T5"NIM!N">a>G7>Y?`89rH&@,:O_%GqqM'n@asWLpqHd?-j\WcPhWo5!d!=#_%aE^K4;idCi$9=al?X>51\A97=#p1pV`8?4mS@Xc>Xq)IYN*(/krB %KqgPN.Y4-k.1]l>pf"^=/D*T-7ZnQ5c%6R`_aAh^%TV&@XbdsOHRU.BYZ8_o.9ep"Bi^rZRTRTql:Ht %AI9_PrivateDataEnd eina-1.7.10/doc/img/header_menu_background_last.png0000664000175000017500000000117512175475327017205 00000000000000PNG  IHDR?#sRGBbKGD pHYs  tIME - 9IDATXWю K*|{P;q0ifyRZ9~56 Wx gBaW@2*D y; JfYΊ.LAV̌.ogjt ̒kMӄ LPy3>0OVmM@+'?k#*Lt!L6:1&s]~/@MO_Q453/>pIENDB`eina-1.7.10/doc/img/eina_inlist-node.eps0000664000175000017500000213712312175475327014740 00000000000000%!PS-Adobe-3.1 EPSF-3.0 %ADO_DSC_Encoding: MacOS Roman %%Title: diagramas_01-05.eps %%Creator: Adobe Illustrator(R) 14.0 %%For: Marina Proni %%CreationDate: 6/17/11 %%BoundingBox: 0 0 444 260 %%HiResBoundingBox: 0 0 443.7319 260 %%CropBox: 0 0 443.7319 260 %%LanguageLevel: 2 %%DocumentData: Clean7Bit %ADOBeginClientInjection: DocumentHeader "AI11EPS" %%AI8_CreatorVersion: 14.0.0 %AI9_PrintingDataBegin %ADO_BuildNumber: Adobe Illustrator(R) 14.0.0 x367 R agm 4.4890 ct 5.1541 %ADO_ContainsXMP: MainFirst %ADOEndClientInjection: DocumentHeader "AI11EPS" %%Pages: 1 %%DocumentNeededResources: %%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0 %%+ procset Adobe_CoolType_Utility_T42 1.0 0 %%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%+ procset Adobe_CoolType_Core 2.31 0 %%+ procset Adobe_AGM_Core 2.0 0 %%+ procset Adobe_AGM_Utils 1.0 0 %%DocumentFonts: %%DocumentNeededFonts: %%DocumentNeededFeatures: %%DocumentSuppliedFeatures: %%DocumentProcessColors: Cyan Magenta Yellow Black %%DocumentCustomColors: %%CMYKCustomColor: %%RGBCustomColor: %%EndComments %%BeginDefaults %%ViewingOrientation: 1 0 0 1 %%EndDefaults %%BeginProlog %%BeginResource: procset Adobe_AGM_Utils 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known {currentpacking true setpacking}if userdict/Adobe_AGM_Utils 75 dict dup begin put /bdf {bind def}bind def /nd{null def}bdf /xdf {exch def}bdf /ldf {load def}bdf /ddf {put}bdf /xddf {3 -1 roll put}bdf /xpt {exch put}bdf /ndf { exch dup where{ pop pop pop }{ xdf }ifelse }def /cdndf { exch dup currentdict exch known{ pop pop }{ exch def }ifelse }def /gx {get exec}bdf /ps_level /languagelevel where{ pop systemdict/languagelevel gx }{ 1 }ifelse def /level2 ps_level 2 ge def /level3 ps_level 3 ge def /ps_version {version cvr}stopped{-1}if def /set_gvm {currentglobal exch setglobal}bdf /reset_gvm {setglobal}bdf /makereadonlyarray { /packedarray where{pop packedarray }{ array astore readonly}ifelse }bdf /map_reserved_ink_name { dup type/stringtype eq{ dup/Red eq{ pop(_Red_) }{ dup/Green eq{ pop(_Green_) }{ dup/Blue eq{ pop(_Blue_) }{ dup()cvn eq{ pop(Process) }if }ifelse }ifelse }ifelse }if }bdf /AGMUTIL_GSTATE 22 dict def /get_gstate { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_clr_spc currentcolorspace def /AGMUTIL_GSTATE_clr_indx 0 def /AGMUTIL_GSTATE_clr_comps 12 array def mark currentcolor counttomark {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop /AGMUTIL_GSTATE_fnt rootfont def /AGMUTIL_GSTATE_lw currentlinewidth def /AGMUTIL_GSTATE_lc currentlinecap def /AGMUTIL_GSTATE_lj currentlinejoin def /AGMUTIL_GSTATE_ml currentmiterlimit def currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf /AGMUTIL_GSTATE_sa currentstrokeadjust def /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def /AGMUTIL_GSTATE_op currentoverprint def /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf /AGMUTIL_GSTATE_ht currenthalftone def /AGMUTIL_GSTATE_flt currentflat def end }def /set_gstate { AGMUTIL_GSTATE begin AGMUTIL_GSTATE_clr_spc setcolorspace AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor AGMUTIL_GSTATE_fnt setfont AGMUTIL_GSTATE_lw setlinewidth AGMUTIL_GSTATE_lc setlinecap AGMUTIL_GSTATE_lj setlinejoin AGMUTIL_GSTATE_ml setmiterlimit AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash AGMUTIL_GSTATE_sa setstrokeadjust AGMUTIL_GSTATE_clr_rnd setcolorrendering AGMUTIL_GSTATE_op setoverprint AGMUTIL_GSTATE_bg cvx setblackgeneration AGMUTIL_GSTATE_ucr cvx setundercolorremoval AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or { currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne { mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark }if }{ AGMUTIL_GSTATE_ht sethalftone }ifelse AGMUTIL_GSTATE_flt setflat end }def /get_gstate_and_matrix { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_ctm matrix currentmatrix def end get_gstate }def /set_gstate_and_matrix { set_gstate AGMUTIL_GSTATE begin AGMUTIL_GSTATE_ctm setmatrix end }def /AGMUTIL_str256 256 string def /AGMUTIL_src256 256 string def /AGMUTIL_dst64 64 string def /AGMUTIL_srcLen nd /AGMUTIL_ndx nd /AGMUTIL_cpd nd /capture_cpd{ //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf }def /thold_halftone { level3 {sethalftone currenthalftone} { dup/HalftoneType get 3 eq { sethalftone currenthalftone }{ begin Width Height mul{ Thresholds read{pop}if }repeat end currenthalftone }ifelse }ifelse }def /rdcmntline { currentfile AGMUTIL_str256 readline pop (%)anchorsearch{pop}if }bdf /filter_cmyk { dup type/filetype ne{ exch()/SubFileDecode filter }{ exch pop } ifelse [ exch { AGMUTIL_src256 readstring pop dup length/AGMUTIL_srcLen exch def /AGMUTIL_ndx 0 def AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{ 1 index exch get AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put /AGMUTIL_ndx AGMUTIL_ndx 1 add def }for pop AGMUTIL_dst64 0 AGMUTIL_ndx getinterval } bind /exec cvx ]cvx }bdf /filter_indexed_devn { cvi Names length mul names_index add Lookup exch get }bdf /filter_devn { 4 dict begin /srcStr xdf /dstStr xdf dup type/filetype ne{ 0()/SubFileDecode filter }if [ exch [ /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx currentdict/srcStr get/readstring cvx/pop cvx /dup cvx/length cvx 0/gt cvx[ Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx names_index Names length currentdict/srcStr get length 1 sub{ 1/index cvx/exch cvx/get cvx currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx }for currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx ]cvx/if cvx /end cvx ]cvx bind /exec cvx ]cvx end }bdf /AGMUTIL_imagefile nd /read_image_file { AGMUTIL_imagefile 0 setfileposition 10 dict begin /imageDict xdf /imbufLen Width BitsPerComponent mul 7 add 8 idiv def /imbufIdx 0 def /origDataSource imageDict/DataSource get def /origMultipleDataSources imageDict/MultipleDataSources get def /origDecode imageDict/Decode get def /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse { /imbufCnt imageDict/DataSource get length def /imbufs imbufCnt array def 0 1 imbufCnt 1 sub{ /imbufIdx xdf imbufs imbufIdx imbufLen string put imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put }for DeviceN_PS2{ imageDict begin /DataSource[DataSource/devn_sep_datasource cvx]cvx def /MultipleDataSources false def /Decode[0 1]def end }if }{ /imbuf imbufLen string def Indexed_DeviceN level3 not and DeviceN_NoneName or{ /srcDataStrs[imageDict begin currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi string }repeat end]def imageDict begin /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def /Decode[0 1]def end }{ imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put imageDict/Decode[0 1]put }ifelse }ifelse imageDict exch load exec imageDict/DataSource origDataSource put imageDict/MultipleDataSources origMultipleDataSources put imageDict/Decode origDecode put end }bdf /write_image_file { begin {(AGMUTIL_imagefile)(w+)file}stopped{ false }{ Adobe_AGM_Utils/AGMUTIL_imagefile xddf 2 dict begin /imbufLen Width BitsPerComponent mul 7 add 8 idiv def MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{ /imbuf imbufLen string def }if 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{ pop MultipleDataSources{ 0 1 DataSource length 1 sub{ DataSource type dup /arraytype eq{ pop DataSource exch gx }{ /filetype eq{ DataSource exch get imbuf readstring pop }{ DataSource exch get }ifelse }ifelse AGMUTIL_imagefile exch writestring }for }{ DataSource type dup /arraytype eq{ pop DataSource exec }{ /filetype eq{ DataSource imbuf readstring pop }{ DataSource }ifelse }ifelse AGMUTIL_imagefile exch writestring }ifelse }for end true }ifelse end }bdf /close_image_file { AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile }def statusdict/product known userdict/AGMP_current_show known not and{ /pstr statusdict/product get def pstr(HP LaserJet 2200)eq pstr(HP LaserJet 4000 Series)eq or pstr(HP LaserJet 4050 Series )eq or pstr(HP LaserJet 8000 Series)eq or pstr(HP LaserJet 8100 Series)eq or pstr(HP LaserJet 8150 Series)eq or pstr(HP LaserJet 5000 Series)eq or pstr(HP LaserJet 5100 Series)eq or pstr(HP Color LaserJet 4500)eq or pstr(HP Color LaserJet 4600)eq or pstr(HP LaserJet 5Si)eq or pstr(HP LaserJet 1200 Series)eq or pstr(HP LaserJet 1300 Series)eq or pstr(HP LaserJet 4100 Series)eq or { userdict/AGMP_current_show/show load put userdict/show{ currentcolorspace 0 get /Pattern eq {false charpath f} {AGMP_current_show}ifelse }put }if currentdict/pstr undef }if /consumeimagedata { begin AGMIMG_init_common currentdict/MultipleDataSources known not {/MultipleDataSources false def}if MultipleDataSources { DataSource 0 get type dup/filetype eq { 1 dict begin /flushbuffer Width cvi string def 1 1 Height cvi { pop 0 1 DataSource length 1 sub { DataSource exch get flushbuffer readstring pop pop }for }for end }if dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and { Width Height mul cvi { 0 1 DataSource length 1 sub {dup DataSource exch gx length exch 0 ne{pop}if}for dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if } { /DataSource load type dup/filetype eq { 1 dict begin /flushbuffer Width Decode length 2 idiv mul cvi string def 1 1 Height{pop DataSource flushbuffer readstring pop pop}for end }if dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and { Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul { DataSource length dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if }ifelse end }bdf /addprocs { 2{/exec load}repeat 3 1 roll [5 1 roll]bind cvx }def /modify_halftone_xfer { currenthalftone dup length dict copy begin currentdict 2 index known{ 1 index load dup length dict copy begin currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end def currentdict end sethalftone }{ currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end sethalftone pop }ifelse }def /clonearray { dup xcheck exch dup length array exch Adobe_AGM_Core/AGMCORE_tmp -1 ddf { Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf dup type/dicttype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonedict Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if dup type/arraytype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonearray Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if exch dup Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put }forall exch{cvx}if }bdf /clonedict { dup length dict begin { dup type/dicttype eq {clonedict}if dup type/arraytype eq {clonearray}if def }forall currentdict end }bdf /DeviceN_PS2 { /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and }bdf /Indexed_DeviceN { /indexed_colorspace_dict AGMCORE_gget dup null ne{ dup/CSDBase known{ /CSDBase get/CSD get_res/Names known }{ pop false }ifelse }{ pop false }ifelse }bdf /DeviceN_NoneName { /Names where{ pop false Names { (None)eq or }forall }{ false }ifelse }bdf /DeviceN_PS2_inRip_seps { /AGMCORE_in_rip_sep where { pop dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and { /currentcolorspace exch AGMCORE_gput false }{ true }ifelse }{ true }ifelse }{ true }ifelse }bdf /base_colorspace_type { dup type/arraytype eq{0 get}if }bdf /currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse { /pdfmark_5{cleartomark}bind def }{ /pdfmark_5{pdfmark}bind def }ifelse /ReadBypdfmark_5 { currentfile exch 0 exch/SubFileDecode filter /currentdistillerparams where {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse {flushfile cleartomark} {/PUT pdfmark}ifelse }bdf /ReadBypdfmark_5_string { 2 dict begin /makerString exch def string/tmpString exch def { currentfile tmpString readline not{pop exit}if makerString anchorsearch { pop pop cleartomark exit }{ 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5 }ifelse }loop end }bdf /xpdfm { { dup 0 get/Label eq { aload length[exch 1 add 1 roll/PAGELABEL }{ aload pop [{ThisPage}<<5 -2 roll>>/PUT }ifelse pdfmark_5 }forall }bdf /lmt{ dup 2 index le{exch}if pop dup 2 index ge{exch}if pop }bdf /int{ dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop }bdf /ds{ Adobe_AGM_Utils begin }bdf /dt{ currentdict Adobe_AGM_Utils eq{ end }if }bdf systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_AGM_Core 2.0 0 %%Version: 2.0 0 %%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Core 209 dict dup begin put /Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def /AGMCORE_str256 256 string def /AGMCORE_save nd /AGMCORE_graphicsave nd /AGMCORE_c 0 def /AGMCORE_m 0 def /AGMCORE_y 0 def /AGMCORE_k 0 def /AGMCORE_cmykbuf 4 array def /AGMCORE_screen[currentscreen]cvx def /AGMCORE_tmp 0 def /AGMCORE_&setgray nd /AGMCORE_&setcolor nd /AGMCORE_&setcolorspace nd /AGMCORE_&setcmykcolor nd /AGMCORE_cyan_plate nd /AGMCORE_magenta_plate nd /AGMCORE_yellow_plate nd /AGMCORE_black_plate nd /AGMCORE_plate_ndx nd /AGMCORE_get_ink_data nd /AGMCORE_is_cmyk_sep nd /AGMCORE_host_sep nd /AGMCORE_avoid_L2_sep_space nd /AGMCORE_distilling nd /AGMCORE_composite_job nd /AGMCORE_producing_seps nd /AGMCORE_ps_level -1 def /AGMCORE_ps_version -1 def /AGMCORE_environ_ok nd /AGMCORE_CSD_cache 0 dict def /AGMCORE_currentoverprint false def /AGMCORE_deltaX nd /AGMCORE_deltaY nd /AGMCORE_name nd /AGMCORE_sep_special nd /AGMCORE_err_strings 4 dict def /AGMCORE_cur_err nd /AGMCORE_current_spot_alias false def /AGMCORE_inverting false def /AGMCORE_feature_dictCount nd /AGMCORE_feature_opCount nd /AGMCORE_feature_ctm nd /AGMCORE_ConvertToProcess false def /AGMCORE_Default_CTM matrix def /AGMCORE_Default_PageSize nd /AGMCORE_Default_flatness nd /AGMCORE_currentbg nd /AGMCORE_currentucr nd /AGMCORE_pattern_paint_type 0 def /knockout_unitsq nd currentglobal true setglobal [/CSA/Gradient/Procedure] { /Generic/Category findresource dup length dict copy/Category defineresource pop }forall setglobal /AGMCORE_key_known { where{ /Adobe_AGM_Core_Id known }{ false }ifelse }ndf /flushinput { save 2 dict begin /CompareBuffer 3 -1 roll def /readbuffer 256 string def mark { currentfile readbuffer{readline}stopped {cleartomark mark} { not {pop exit} if CompareBuffer eq {exit} if }ifelse }loop cleartomark end restore }bdf /getspotfunction { AGMCORE_screen exch pop exch pop dup type/dicttype eq{ dup/HalftoneType get 1 eq{ /SpotFunction get }{ dup/HalftoneType get 2 eq{ /GraySpotFunction get }{ pop { abs exch abs 2 copy add 1 gt{ 1 sub dup mul exch 1 sub dup mul add 1 sub }{ dup mul exch dup mul add 1 exch sub }ifelse }bind }ifelse }ifelse }if }def /np {newpath}bdf /clp_npth {clip np}def /eoclp_npth {eoclip np}def /npth_clp {np clip}def /graphic_setup { /AGMCORE_graphicsave save store concat 0 setgray 0 setlinecap 0 setlinejoin 1 setlinewidth []0 setdash 10 setmiterlimit np false setoverprint false setstrokeadjust //Adobe_AGM_Core/spot_alias gx /Adobe_AGM_Image where{ pop Adobe_AGM_Image/spot_alias 2 copy known{ gx }{ pop pop }ifelse }if /sep_colorspace_dict null AGMCORE_gput 100 dict begin /dictstackcount countdictstack def /showpage{}def mark }def /graphic_cleanup { cleartomark dictstackcount 1 countdictstack 1 sub{end}for end AGMCORE_graphicsave restore }def /compose_error_msg { grestoreall initgraphics /Helvetica findfont 10 scalefont setfont /AGMCORE_deltaY 100 def /AGMCORE_deltaX 310 def clippath pathbbox np pop pop 36 add exch 36 add exch moveto 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath 0 AGMCORE_&setgray gsave 1 AGMCORE_&setgray fill grestore 1 setlinewidth gsave stroke grestore currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto /AGMCORE_deltaY 12 def /AGMCORE_tmp 0 def AGMCORE_err_strings exch get { dup 32 eq { pop AGMCORE_str256 0 AGMCORE_tmp getinterval stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt { currentpoint AGMCORE_deltaY sub exch pop clippath pathbbox pop pop pop 44 add exch moveto }if AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show 0 1 AGMCORE_str256 length 1 sub { AGMCORE_str256 exch 0 put }for /AGMCORE_tmp 0 def }{ AGMCORE_str256 exch AGMCORE_tmp xpt /AGMCORE_tmp AGMCORE_tmp 1 add def }ifelse }forall }bdf /AGMCORE_CMYKDeviceNColorspaces[ [/Separation/None/DeviceCMYK{0 0 0}] [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind] [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind] [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind] [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind] [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind] [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind] [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind] [/Separation(Cyan)/DeviceCMYK{0 0 0}] [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind] [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind] [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind] [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}] [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind] [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}] [/DeviceCMYK] ]def /ds{ Adobe_AGM_Core begin /currentdistillerparams where { pop currentdistillerparams/CoreDistVersion get 5000 lt {<>setdistillerparams}if }if /AGMCORE_ps_version xdf /AGMCORE_ps_level xdf errordict/AGM_handleerror known not{ errordict/AGM_handleerror errordict/handleerror get put errordict/handleerror{ Adobe_AGM_Core begin $error/newerror get AGMCORE_cur_err null ne and{ $error/newerror false put AGMCORE_cur_err compose_error_msg }if $error/newerror true put end errordict/AGM_handleerror get exec }bind put }if /AGMCORE_environ_ok ps_level AGMCORE_ps_level ge ps_version AGMCORE_ps_version ge and AGMCORE_ps_level -1 eq or def AGMCORE_environ_ok not {/AGMCORE_cur_err/AGMCORE_bad_environ def}if /AGMCORE_&setgray systemdict/setgray get def level2{ /AGMCORE_&setcolor systemdict/setcolor get def /AGMCORE_&setcolorspace systemdict/setcolorspace get def }if /AGMCORE_currentbg currentblackgeneration def /AGMCORE_currentucr currentundercolorremoval def /AGMCORE_Default_flatness currentflat def /AGMCORE_distilling /product where{ pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and }{ false }ifelse def /AGMCORE_GSTATE AGMCORE_key_known not{ /AGMCORE_GSTATE 21 dict def /AGMCORE_tmpmatrix matrix def /AGMCORE_gstack 32 array def /AGMCORE_gstackptr 0 def /AGMCORE_gstacksaveptr 0 def /AGMCORE_gstackframekeys 14 def /AGMCORE_&gsave/gsave ldf /AGMCORE_&grestore/grestore ldf /AGMCORE_&grestoreall/grestoreall ldf /AGMCORE_&save/save ldf /AGMCORE_&setoverprint/setoverprint ldf /AGMCORE_gdictcopy{ begin {def}forall end }def /AGMCORE_gput{ AGMCORE_gstack AGMCORE_gstackptr get 3 1 roll put }def /AGMCORE_gget{ AGMCORE_gstack AGMCORE_gstackptr get exch get }def /gsave{ AGMCORE_&gsave AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /grestore{ AGMCORE_&grestore AGMCORE_gstackptr 1 sub dup AGMCORE_gstacksaveptr lt{1 add}if dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse /AGMCORE_gstackptr exch store }def /grestoreall{ AGMCORE_&grestoreall /AGMCORE_gstackptr AGMCORE_gstacksaveptr store }def /save{ AGMCORE_&save AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store /AGMCORE_gstacksaveptr AGMCORE_gstackptr store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /setoverprint{ dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint }def 0 1 AGMCORE_gstack length 1 sub{ AGMCORE_gstack exch AGMCORE_gstackframekeys dict put }for }if level3/AGMCORE_&sysshfill AGMCORE_key_known not and { /AGMCORE_&sysshfill systemdict/shfill get def /AGMCORE_&sysmakepattern systemdict/makepattern get def /AGMCORE_&usrmakepattern/makepattern load def }if /currentcmykcolor[0 0 0 0]AGMCORE_gput /currentstrokeadjust false AGMCORE_gput /currentcolorspace[/DeviceGray]AGMCORE_gput /sep_tint 0 AGMCORE_gput /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput /sep_colorspace_dict null AGMCORE_gput /devicen_colorspace_dict null AGMCORE_gput /indexed_colorspace_dict null AGMCORE_gput /currentcolor_intent()AGMCORE_gput /customcolor_tint 1 AGMCORE_gput /absolute_colorimetric_crd null AGMCORE_gput /relative_colorimetric_crd null AGMCORE_gput /saturation_crd null AGMCORE_gput /perceptual_crd null AGMCORE_gput currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf << /MaxPatternItem currentsystemparams/MaxPatternCache get >> setuserparams end }def /ps { /setcmykcolor where{ pop Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put }if Adobe_AGM_Core begin /setcmykcolor { 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput 1 sub 4 1 roll 3{ 3 index add neg dup 0 lt{ pop 0 }if 3 1 roll }repeat setrgbcolor pop }ndf /currentcmykcolor { /currentcmykcolor AGMCORE_gget aload pop }ndf /setoverprint {pop}ndf /currentoverprint {false}ndf /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def /AGMCORE_plate_ndx AGMCORE_cyan_plate{ 0 }{ AGMCORE_magenta_plate{ 1 }{ AGMCORE_yellow_plate{ 2 }{ AGMCORE_black_plate{ 3 }{ 4 }ifelse }ifelse }ifelse }ifelse def /AGMCORE_have_reported_unsupported_color_space false def /AGMCORE_report_unsupported_color_space { AGMCORE_have_reported_unsupported_color_space false eq { (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)== Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf }if }def /AGMCORE_composite_job AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def /AGMCORE_in_rip_sep /AGMCORE_in_rip_sep where{ pop AGMCORE_in_rip_sep }{ AGMCORE_distilling { false }{ userdict/Adobe_AGM_OnHost_Seps known{ false }{ level2{ currentpagedevice/Separations 2 copy known{ get }{ pop pop false }ifelse }{ false }ifelse }ifelse }ifelse }ifelse def /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def /AGM_preserve_spots /AGM_preserve_spots where{ pop AGM_preserve_spots }{ AGMCORE_distilling AGMCORE_producing_seps or }ifelse def /AGM_is_distiller_preserving_spotimages { currentdistillerparams/PreserveOverprintSettings known { currentdistillerparams/PreserveOverprintSettings get { currentdistillerparams/ColorConversionStrategy known { currentdistillerparams/ColorConversionStrategy get /sRGB ne }{ true }ifelse }{ false }ifelse }{ false }ifelse }def /convert_spot_to_process where{pop}{ /convert_spot_to_process { //Adobe_AGM_Core begin dup map_alias{ /Name get exch pop }if dup dup(None)eq exch(All)eq or { pop false }{ AGMCORE_host_sep { gsave 1 0 0 0 setcmykcolor currentgray 1 exch sub 0 1 0 0 setcmykcolor currentgray 1 exch sub 0 0 1 0 setcmykcolor currentgray 1 exch sub 0 0 0 1 setcmykcolor currentgray 1 exch sub add add add 0 eq { pop false }{ false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne }ifelse grestore }{ AGMCORE_distilling { pop AGM_is_distiller_preserving_spotimages not }{ //Adobe_AGM_Core/AGMCORE_name xddf false //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq AGMUTIL_cpd/OverrideSeparations known and { AGMUTIL_cpd/OverrideSeparations get { /HqnSpots/ProcSet resourcestatus { pop pop pop true }if }if }if { AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not }{ gsave [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace false AGMUTIL_cpd/SeparationColorNames 2 copy known { get {AGMCORE_name eq or}forall not }{ pop pop pop true }ifelse grestore }ifelse }ifelse }ifelse }ifelse end }def }ifelse /convert_to_process where{pop}{ /convert_to_process { dup length 0 eq { pop false }{ AGMCORE_host_sep { dup true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process and}ifelse } forall { true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch (Black)eq or and }forall not }{pop false}ifelse }{ false exch { /PhotoshopDuotoneList where{pop false}{true}ifelse { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process or}ifelse } { convert_spot_to_process or } ifelse } forall }ifelse }ifelse }def }ifelse /AGMCORE_avoid_L2_sep_space version cvr 2012 lt level2 and AGMCORE_producing_seps not and def /AGMCORE_is_cmyk_sep AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or def /AGM_avoid_0_cmyk where{ pop AGM_avoid_0_cmyk }{ AGM_preserve_spots userdict/Adobe_AGM_OnHost_Seps known userdict/Adobe_AGM_InRip_Seps known or not and }ifelse { /setcmykcolor[ { 4 copy add add add 0 eq currentoverprint and{ pop 0.0005 }if }/exec cvx /AGMCORE_&setcmykcolor load dup type/operatortype ne{ /exec cvx }if ]cvx def }if /AGMCORE_IsSeparationAProcessColor { dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or }def AGMCORE_host_sep{ /setcolortransfer { AGMCORE_cyan_plate{ pop pop pop }{ AGMCORE_magenta_plate{ 4 3 roll pop pop pop }{ AGMCORE_yellow_plate{ 4 2 roll pop pop pop }{ 4 1 roll pop pop pop }ifelse }ifelse }ifelse settransfer } def /AGMCORE_get_ink_data AGMCORE_cyan_plate{ {pop pop pop} }{ AGMCORE_magenta_plate{ {4 3 roll pop pop pop} }{ AGMCORE_yellow_plate{ {4 2 roll pop pop pop} }{ {4 1 roll pop pop pop} }ifelse }ifelse }ifelse def /AGMCORE_RemoveProcessColorNames { 1 dict begin /filtername { dup/Cyan eq 1 index(Cyan)eq or {pop(_cyan_)}if dup/Magenta eq 1 index(Magenta)eq or {pop(_magenta_)}if dup/Yellow eq 1 index(Yellow)eq or {pop(_yellow_)}if dup/Black eq 1 index(Black)eq or {pop(_black_)}if }def dup type/arraytype eq {[exch{filtername}forall]} {filtername}ifelse end }def level3{ /AGMCORE_IsCurrentColor { dup AGMCORE_IsSeparationAProcessColor { AGMCORE_plate_ndx 0 eq {dup(Cyan)eq exch/Cyan eq or}if AGMCORE_plate_ndx 1 eq {dup(Magenta)eq exch/Magenta eq or}if AGMCORE_plate_ndx 2 eq {dup(Yellow)eq exch/Yellow eq or}if AGMCORE_plate_ndx 3 eq {dup(Black)eq exch/Black eq or}if AGMCORE_plate_ndx 4 eq {pop false}if }{ gsave false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne grestore }ifelse }def /AGMCORE_filter_functiondatasource { 5 dict begin /data_in xdf data_in type/stringtype eq { /ncomp xdf /comp xdf /string_out data_in length ncomp idiv string def 0 ncomp data_in length 1 sub { string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put }for string_out }{ string/string_in xdf /string_out 1 string def /component xdf [ data_in string_in/readstring cvx [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx [/pop cvx()]cvx/ifelse cvx ]cvx/ReusableStreamDecode filter }ifelse end }def /AGMCORE_separateShadingFunction { 2 dict begin /paint? xdf /channel xdf dup type/dicttype eq { begin FunctionType 0 eq { /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def currentdict/Decode known {/Decode Decode channel 2 mul 2 getinterval def}if paint? not {/Decode[1 1]def}if }if FunctionType 2 eq { paint? { /C0[C0 channel get 1 exch sub]def /C1[C1 channel get 1 exch sub]def }{ /C0[1]def /C1[1]def }ifelse }if FunctionType 3 eq { /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def }if currentdict/Range known {/Range[0 1]def}if currentdict end}{ channel get 0 paint? AGMCORE_separateShadingFunction }ifelse end }def /AGMCORE_separateShading { 3 -1 roll begin currentdict/Function known { currentdict/Background known {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf /ColorSpace[/DeviceGray]def }{ ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }{ ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put }ifelse ColorSpace 0 get/Separation eq { { [1/exch cvx/sub cvx]cvx }{ [/pop cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll put pop }{ { [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx }{ pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll bind put }ifelse ColorSpace 2/DeviceGray put }ifelse end }def /AGMCORE_separateShadingDict { dup/ColorSpace get dup type/arraytype ne {[exch]}if dup 0 get/DeviceCMYK eq { exch begin currentdict AGMCORE_cyan_plate {0 true}if AGMCORE_magenta_plate {1 true}if AGMCORE_yellow_plate {2 true}if AGMCORE_black_plate {3 true}if AGMCORE_plate_ndx 4 eq {0 false}if dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading currentdict end exch }if dup 0 get/Separation eq { exch begin ColorSpace 1 get dup/None ne exch/All ne and { ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /Separation ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading }if }ifelse }{ currentdict ColorSpace 1 get AGMCORE_IsCurrentColor 0 exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse }if currentdict end exch }if dup 0 get/DeviceN eq { exch begin ColorSpace 1 get convert_to_process { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /DeviceN ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading /ColorSpace[/DeviceGray]def }if }ifelse }{ currentdict false -1 ColorSpace 1 get { AGMCORE_IsCurrentColor { 1 add exch pop true exch exit }if 1 add }forall exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse currentdict end exch }if dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not { exch begin ColorSpace dup type/arraytype eq {0 get}if /DeviceGray ne { AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { ColorSpace 0 get/CIEBasedA eq { /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def }if ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or { /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def }if ColorSpace 0 get/CIEBasedDEFG eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }if currentdict 0 false AGMCORE_separateShading }if }if currentdict end exch }if pop dup/AGMCORE_ignoreshade known { begin /ColorSpace[/Separation(None)/DeviceGray{}]def currentdict end }if }def /shfill { AGMCORE_separateShadingDict dup/AGMCORE_ignoreshade known {pop} {AGMCORE_&sysshfill}ifelse }def /makepattern { exch dup/PatternType get 2 eq { clonedict begin /Shading Shading AGMCORE_separateShadingDict def Shading/AGMCORE_ignoreshade known currentdict end exch {pop<>}if exch AGMCORE_&sysmakepattern }{ exch AGMCORE_&usrmakepattern }ifelse }def }if }if AGMCORE_in_rip_sep{ /setcustomcolor { exch aload pop dup 7 1 roll inRip_spot_has_ink not { 4{4 index mul 4 1 roll} repeat /DeviceCMYK setcolorspace 6 -2 roll pop pop }{ //Adobe_AGM_Core begin /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf end [/Separation 4 -1 roll/DeviceCMYK {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul} ] setcolorspace }ifelse setcolor }ndf /setseparationgray { [/Separation(All)/DeviceGray{}]setcolorspace_opt 1 exch sub setcolor }ndf }{ /setseparationgray { AGMCORE_&setgray }ndf }ifelse /findcmykcustomcolor { 5 makereadonlyarray }ndf /setcustomcolor { exch aload pop pop 4{4 index mul 4 1 roll}repeat setcmykcolor pop }ndf /has_color /colorimage where{ AGMCORE_producing_seps{ pop true }{ systemdict eq }ifelse }{ false }ifelse def /map_index { 1 index mul exch getinterval{255 div}forall }bdf /map_indexed_devn { Lookup Names length 3 -1 roll cvi map_index }bdf /n_color_components { base_colorspace_type dup/DeviceGray eq{ pop 1 }{ /DeviceCMYK eq{ 4 }{ 3 }ifelse }ifelse }bdf level2{ /mo/moveto ldf /li/lineto ldf /cv/curveto ldf /knockout_unitsq { 1 setgray 0 0 1 1 rectfill }def level2/setcolorspace AGMCORE_key_known not and{ /AGMCORE_&&&setcolorspace/setcolorspace ldf /AGMCORE_ReplaceMappedColor { dup type dup/arraytype eq exch/packedarraytype eq or { /AGMCORE_SpotAliasAry2 where{ begin dup 0 get dup/Separation eq { pop dup length array copy dup dup 1 get current_spot_alias { dup map_alias { false set_spot_alias dup 1 exch setsepcolorspace true set_spot_alias begin /sep_colorspace_dict currentdict AGMCORE_gput pop pop pop [ /Separation Name CSA map_csa MappedCSA /sep_colorspace_proc load ] dup Name end }if }if map_reserved_ink_name 1 xpt }{ /DeviceN eq { dup length array copy dup dup 1 get[ exch{ current_spot_alias{ dup map_alias{ /Name get exch pop }if }if map_reserved_ink_name }forall ]1 xpt }if }ifelse end }if }if }def /setcolorspace { dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/Indexed eq { AGMCORE_distilling { /PhotoshopDuotoneList where { pop false }{ true }ifelse }{ true }ifelse { aload pop 3 -1 roll AGMCORE_ReplaceMappedColor 3 1 roll 4 array astore }if }{ AGMCORE_ReplaceMappedColor }ifelse }if DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if }def }if }{ /adj { currentstrokeadjust{ transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform }if }def /mo{ adj moveto }def /li{ adj lineto }def /cv{ 6 2 roll adj 6 2 roll adj 6 2 roll adj curveto }def /knockout_unitsq { 1 setgray 8 8 1[8 0 0 8 0 0]{}image }def /currentstrokeadjust{ /currentstrokeadjust AGMCORE_gget }def /setstrokeadjust{ /currentstrokeadjust exch AGMCORE_gput }def /setcolorspace { /currentcolorspace exch AGMCORE_gput }def /currentcolorspace { /currentcolorspace AGMCORE_gget }def /setcolor_devicecolor { base_colorspace_type dup/DeviceGray eq{ pop setgray }{ /DeviceCMYK eq{ setcmykcolor }{ setrgbcolor }ifelse }ifelse }def /setcolor { currentcolorspace 0 get dup/DeviceGray ne{ dup/DeviceCMYK ne{ dup/DeviceRGB ne{ dup/Separation eq{ pop currentcolorspace 3 gx currentcolorspace 2 get }{ dup/Indexed eq{ pop currentcolorspace 3 get dup type/stringtype eq{ currentcolorspace 1 get n_color_components 3 -1 roll map_index }{ exec }ifelse currentcolorspace 1 get }{ /AGMCORE_cur_err/AGMCORE_invalid_color_space def AGMCORE_invalid_color_space }ifelse }ifelse }if }if }if setcolor_devicecolor }def }ifelse /sop/setoverprint ldf /lw/setlinewidth ldf /lc/setlinecap ldf /lj/setlinejoin ldf /ml/setmiterlimit ldf /dsh/setdash ldf /sadj/setstrokeadjust ldf /gry/setgray ldf /rgb/setrgbcolor ldf /cmyk[ /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx /setcmykcolor load dup type/operatortype ne{/exec cvx}if ]cvx bdf level3 AGMCORE_host_sep not and{ /nzopmsc{ 6 dict begin /kk exch def /yy exch def /mm exch def /cc exch def /sum 0 def cc 0 ne{/sum sum 2#1000 or def cc}if mm 0 ne{/sum sum 2#0100 or def mm}if yy 0 ne{/sum sum 2#0010 or def yy}if kk 0 ne{/sum sum 2#0001 or def kk}if AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace sum 0 eq{0}if end setcolor }bdf }{ /nzopmsc/cmyk ldf }ifelse /sep/setsepcolor ldf /devn/setdevicencolor ldf /idx/setindexedcolor ldf /colr/setcolor ldf /csacrd/set_csa_crd ldf /sepcs/setsepcolorspace ldf /devncs/setdevicencolorspace ldf /idxcs/setindexedcolorspace ldf /cp/closepath ldf /clp/clp_npth ldf /eclp/eoclp_npth ldf /f/fill ldf /ef/eofill ldf /@/stroke ldf /nclp/npth_clp ldf /gset/graphic_setup ldf /gcln/graphic_cleanup ldf /ct/concat ldf /cf/currentfile ldf /fl/filter ldf /rs/readstring ldf /AGMCORE_def_ht currenthalftone def /clonedict Adobe_AGM_Utils begin/clonedict load end def /clonearray Adobe_AGM_Utils begin/clonearray load end def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall /getrampcolor { /indx exch def 0 1 NumComp 1 sub { dup Samples exch get dup type/stringtype eq{indx get}if exch Scaling exch get aload pop 3 1 roll mul add }for ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /sssetbackground{ aload pop ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /RadialShade { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /r2 xdf /c2y xdf /c2x xdf /r1 xdf /c1y xdf /c1x xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if c1x c2x eq { c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope c2y c1y sub c2x c1x sub div def /theta slope 1 atan def c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if }ifelse gsave clippath c1x c1y translate theta rotate -90 rotate {pathbbox}stopped {0 0 0 0}if /yMax xdf /xMax xdf /yMin xdf /xMin xdf grestore xMax xMin eq yMax yMin eq or { grestore end }{ /max{2 copy gt{pop}{exch pop}ifelse}bdf /min{2 copy lt{pop}{exch pop}ifelse}bdf rampdict begin 40 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave c1x c1y translate theta rotate -90 rotate /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def /c1y 0 def /c1x 0 def /c2x 0 def ext0 { 0 getrampcolor c2y r2 add r1 sub 0.0001 lt { c1x c1y r1 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2y r1 add r2 le { c1x c1y r1 0 360 arc fill } { c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r1 neg def /p1y c1y def /p2x r1 def /p2y c1y def p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y p1x SS1 div neg def /SS2 90 theta sub dup sin exch cos div def /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y p2x SS2 div neg def r1 r2 gt { /L1maxX p1x yMin p1y sub SS1 div add def /L2maxX p2x yMin p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if c1x c2x sub dup mul c1y c2y sub dup mul add 0.5 exp 0 dtransform dup mul exch dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop /hires xdf hires mul /numpix xdf /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if /xInc c2x c1x sub numsteps div def /yInc c2y c1y sub numsteps div def /rInc r2 r1 sub numsteps div def /cx c1x def /cy c1y def /radius r1 def np xInc 0 eq yInc 0 eq rInc 0 eq and and { 0 getrampcolor cx cy radius 0 360 arc stroke NumSamples 1 sub getrampcolor cx cy radius 72 hires div add 0 360 arc 0 setlinewidth stroke }{ 0 numsteps { dup subsampling{round cvi}if getrampcolor cx cy radius 0 360 arc /cx cx xInc add def /cy cy yInc add def /radius radius rInc add def cx cy radius 360 0 arcn eofill rampIndxInc add }repeat pop }ifelse ext1 { c2y r2 add r1 lt { c2x c2y r2 0 360 arc fill }{ c2y r1 add r2 sub 0.0001 le { c2x c2y r2 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r2 neg def /p1y c2y def /p2x r2 def /p2y c2y def p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y c2y p1x SS1 div sub def /SS2 90 theta sub dup sin exch cos div def /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y c2y p2x SS2 div sub def r1 r2 lt { /L1maxX p1x yMax p1y sub SS1 div add def /L2maxX p2x yMax p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if grestore grestore end end end }ifelse }bdf /GenStrips { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /y2 xdf /x2 xdf /y1 xdf /x1 xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if x1 x2 eq { y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope y2 y1 sub x2 x1 sub div def /theta slope 1 atan def x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if } ifelse gsave clippath x1 y1 translate theta rotate {pathbbox}stopped {0 0 0 0}if /yMax exch def /xMax exch def /yMin exch def /xMin exch def grestore xMax xMin eq yMax yMin eq or { grestore end }{ rampdict begin 20 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave x1 y1 translate theta rotate /xStart 0 def /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def /ySpan yMax yMin sub def /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def xStart 0 transform xEnd 0 transform 3 -1 roll sub dup mul 3 1 roll sub dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop mul /numpix xdf numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if ext0 { 0 getrampcolor xMin xStart lt { xMin yMin xMin neg ySpan rectfill }if }if /xInc xEnd xStart sub numsteps div def /x xStart def 0 numsteps { dup subsampling{round cvi}if getrampcolor x yMin xInc ySpan rectfill /x x xInc add def rampIndxInc add }repeat pop ext1{ xMax xEnd gt { xEnd yMin xMax xEnd sub ySpan rectfill }if }if grestore grestore end end end }ifelse }bdf }def /pt { end }def /dt{ }def /pgsv{ //Adobe_AGM_Core/AGMCORE_save save put }def /pgrs{ //Adobe_AGM_Core/AGMCORE_save get restore }def systemdict/findcolorrendering known{ /findcolorrendering systemdict/findcolorrendering get def }if systemdict/setcolorrendering known{ /setcolorrendering systemdict/setcolorrendering get def }if /test_cmyk_color_plate { gsave setcmykcolor currentgray 1 ne grestore }def /inRip_spot_has_ink { dup//Adobe_AGM_Core/AGMCORE_name xddf convert_spot_to_process not }def /map255_to_range { 1 index sub 3 -1 roll 255 div mul add }def /set_csa_crd { /sep_colorspace_dict null AGMCORE_gput begin CSA get_csa_by_name setcolorspace_opt set_crd end } def /map_csa { currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse {pop}{get_csa_by_name/MappedCSA xdf}ifelse }def /setsepcolor { /sep_colorspace_dict AGMCORE_gget begin dup/sep_tint exch AGMCORE_gput TintProc end }def /setdevicencolor { /devicen_colorspace_dict AGMCORE_gget begin Names length copy Names length 1 sub -1 0 { /devicen_tints AGMCORE_gget 3 1 roll xpt }for TintProc end }def /sep_colorspace_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin currentdict/Components known{ Components aload pop TintMethod/Lab eq{ 2{AGMCORE_tmp mul NComponents 1 roll}repeat LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll }{ TintMethod/Subtractive eq{ NComponents{ AGMCORE_tmp mul NComponents 1 roll }repeat }{ NComponents{ 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll }repeat }ifelse }ifelse }{ ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get aload pop }ifelse end }def /sep_colorspace_gray_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get end }def /sep_proc_name { dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{ pop[/DeviceGray] /sep_colorspace_gray_proc }{ /sep_colorspace_proc }ifelse }def /setsepcolorspace { current_spot_alias{ dup begin Name map_alias{ exch pop }if end }if dup/sep_colorspace_dict exch AGMCORE_gput begin CSA map_csa /AGMCORE_sep_special Name dup()eq exch(All)eq or store AGMCORE_avoid_L2_sep_space{ [/Indexed MappedCSA sep_proc_name 255 exch {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx ]setcolorspace_opt /TintProc{ 255 mul round cvi setcolor }bdf }{ MappedCSA 0 get/DeviceCMYK eq currentdict/Components known and AGMCORE_sep_special not and{ /TintProc[ Components aload pop Name findcmykcustomcolor /exch cvx/setcustomcolor cvx ]cvx bdf }{ AGMCORE_host_sep Name(All)eq and{ /TintProc{ 1 exch sub setseparationgray }bdf }{ AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and AGMCORE_host_sep or Name()eq and{ /TintProc[ MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{ cvx/setcmykcolor cvx }{ cvx/setgray cvx }ifelse ]cvx bdf }{ AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{ /TintProc[ /dup cvx MappedCSA sep_proc_name cvx exch 0 get/DeviceGray eq{ 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx }if /Name cvx/findcmykcustomcolor cvx/exch cvx AGMCORE_host_sep{ AGMCORE_is_cmyk_sep /Name cvx /AGMCORE_IsSeparationAProcessColor load/exec cvx /not cvx/and cvx }{ Name inRip_spot_has_ink not }ifelse [ /pop cvx 1 ]cvx/if cvx /setcustomcolor cvx ]cvx bdf }{ /TintProc{setcolor}bdf [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt }ifelse }ifelse }ifelse }ifelse }ifelse set_crd setsepcolor end }def /additive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 0 1 numarrays 1 sub { 1 exch add/index cvx c1/get cvx/mul cvx }for numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /subtractive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 1 0 1 numarrays 1 sub { 1 3 3 -1 roll add/index cvx c1/get cvx/sub cvx/mul cvx }for /sub cvx numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /exec_tint_transform { /TintProc[ /TintTransform cvx/setcolor cvx ]cvx bdf MappedCSA setcolorspace_opt }bdf /devn_makecustomcolor { 2 dict begin /names_index xdf /Names xdf 1 1 1 1 Names names_index get findcmykcustomcolor /devicen_tints AGMCORE_gget names_index get setcustomcolor Names length{pop}repeat end }bdf /setdevicencolorspace { dup/AliasedColorants known{false}{true}ifelse current_spot_alias and{ 7 dict begin /names_index 0 def dup/names_len exch/Names get length def /new_names names_len array def /new_LookupTables names_len array def /alias_cnt 0 def dup/Names get { dup map_alias{ exch pop dup/ColorLookup known{ dup begin new_LookupTables names_index ColorLookup put end }{ dup/Components known{ dup begin new_LookupTables names_index Components put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse new_names names_index 3 -1 roll/Name get put /alias_cnt alias_cnt 1 add def }{ /name xdf new_names names_index name put dup/LookupTables known{ dup begin new_LookupTables names_index LookupTables names_index get put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse /names_index names_index 1 add def }forall alias_cnt 0 gt{ /AliasedColorants true def /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def 0 1 names_len 1 sub{ /names_index xdf new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{ /AliasedColorants false def exit }{ new_LookupTables names_index get 0 get null eq{ dup/Names get names_index get/name xdf name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq or or or not{ /AliasedColorants false def exit }if }if }ifelse }for lut_entry_len 1 eq{ /AliasedColorants false def }if AliasedColorants{ dup begin /Names new_names def /LookupTables new_LookupTables def /AliasedColorants true def /NComponents lut_entry_len def /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def currentdict/TTTablesIdx known not{ /TTTablesIdx -1 def }if end }if }if end }if dup/devicen_colorspace_dict exch AGMCORE_gput begin currentdict/AliasedColorants known{ AliasedColorants }{ false }ifelse dup not{ CSA map_csa }if /TintTransform load type/nulltype eq or{ /TintTransform[ 0 1 Names length 1 sub { /TTTablesIdx TTTablesIdx 1 add def dup LookupTables exch get dup 0 get null eq { 1 index Names exch get dup(Cyan)eq { pop exch LookupTables length exch sub /index cvx 0 0 0 } { dup(Magenta)eq { pop exch LookupTables length exch sub /index cvx 0/exch cvx 0 0 }{ (Yellow)eq { exch LookupTables length exch sub /index cvx 0 0 3 -1/roll cvx 0 }{ exch LookupTables length exch sub /index cvx 0 0 0 4 -1/roll cvx }ifelse }ifelse }ifelse 5 -1/roll cvx/astore cvx }{ dup length 1 sub LookupTables length 4 -1 roll sub 1 add /index cvx/mul cvx/round cvx/cvi cvx/get cvx }ifelse Names length TTTablesIdx add 1 add 1/roll cvx }for Names length[/pop cvx]cvx/repeat cvx NComponents Names length TintMethod/Subtractive eq { subtractive_blend }{ additive_blend }ifelse ]cvx bdf }if AGMCORE_host_sep{ Names convert_to_process{ exec_tint_transform } { currentdict/AliasedColorants known{ AliasedColorants not }{ false }ifelse 5 dict begin /AvoidAliasedColorants xdf /painted? false def /names_index 0 def /names_len Names length def AvoidAliasedColorants{ /currentspotalias current_spot_alias def false set_spot_alias }if Names{ AGMCORE_is_cmyk_sep{ dup(Cyan)eq AGMCORE_cyan_plate and exch dup(Magenta)eq AGMCORE_magenta_plate and exch dup(Yellow)eq AGMCORE_yellow_plate and exch (Black)eq AGMCORE_black_plate and or or or{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def }if painted?{exit}if }{ 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def exit }if }ifelse /names_index names_index 1 add def }forall AvoidAliasedColorants{ currentspotalias set_spot_alias }if painted?{ /devicen_colorspace_dict AGMCORE_gget/names_index names_index put }{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx 0 0 0 0/setcmykcolor cvx ]cvx ddf }ifelse end }ifelse } { AGMCORE_in_rip_sep{ Names convert_to_process not }{ level3 }ifelse { [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt /TintProc level3 not AGMCORE_in_rip_sep and{ [ Names/length cvx[/pop cvx]cvx/repeat cvx ]cvx bdf }{ {setcolor}bdf }ifelse }{ exec_tint_transform }ifelse }ifelse set_crd /AliasedColorants false def end }def /setindexedcolorspace { dup/indexed_colorspace_dict exch AGMCORE_gput begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ currentdict devncs }{ 1 currentdict sepcs }ifelse AGMCORE_host_sep{ 4 dict begin /compCnt/Names where{pop Names length}{1}ifelse def /NewLookup HiVal 1 add string def 0 1 HiVal{ /tableIndex xdf Lookup dup type/stringtype eq{ compCnt tableIndex map_index }{ exec }ifelse /Names where{ pop setdevicencolor }{ setsepcolor }ifelse currentgray tableIndex exch 255 mul cvi NewLookup 3 1 roll put }for [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt end }{ level3 { currentdict/Names known{ [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt }{ [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt }ifelse }{ [/Indexed MappedCSA HiVal [ currentdict/Names known{ Lookup dup type/stringtype eq {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx} {/exec cvx}ifelse /TintTransform load/exec cvx }{ Lookup dup type/stringtype eq {/exch cvx/get cvx 255/div cvx} {/exec cvx}ifelse CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx }ifelse ]cvx ]setcolorspace_opt }ifelse }ifelse end set_crd } { CSA map_csa AGMCORE_host_sep level2 not and{ 0 0 0 0 setcmykcolor }{ [/Indexed MappedCSA level2 not has_color not and{ dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{ pop[/DeviceGray] }if HiVal GrayLookup }{ HiVal currentdict/RangeArray known{ { /indexed_colorspace_dict AGMCORE_gget begin Lookup exch dup HiVal gt{ pop HiVal }if NComponents mul NComponents getinterval{}forall NComponents 1 sub -1 0{ RangeArray exch 2 mul 2 getinterval aload pop map255_to_range NComponents 1 roll }for end }bind }{ Lookup }ifelse }ifelse ]setcolorspace_opt set_crd }ifelse }ifelse end }def /setindexedcolor { AGMCORE_host_sep{ /indexed_colorspace_dict AGMCORE_gget begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ map_indexed_devn devn } { Lookup 1 3 -1 roll map_index sep }ifelse end }{ Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll map_index MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse }ifelse end }{ level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{ /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin map_indexed_devn devn end } { setcolor }ifelse }ifelse }def /ignoreimagedata { currentoverprint not{ gsave dup clonedict begin 1 setgray /Decode[0 1]def /DataSourcedef /MultipleDataSources false def /BitsPerComponent 8 def currentdict end systemdict/image gx grestore }if consumeimagedata }def /add_res { dup/CSD eq{ pop //Adobe_AGM_Core begin /AGMCORE_CSD_cache load 3 1 roll put end }{ defineresource pop }ifelse }def /del_res { { aload pop exch dup/CSD eq{ pop {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall }{ exch {1 index undefineresource}forall pop }ifelse }forall }def /get_res { dup/CSD eq{ pop dup type dup/nametype eq exch/stringtype eq or{ AGMCORE_CSD_cache exch get }if }{ findresource }ifelse }def /get_csa_by_name { dup type dup/nametype eq exch/stringtype eq or{ /CSA get_res }if }def /paintproc_buf_init { /count get 0 0 put }def /paintproc_buf_next { dup/count get dup 0 get dup 3 1 roll 1 add 0 xpt get }def /cachepaintproc_compress { 5 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def /string_size 16000 def /readbuffer string_size string def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal /LZWFilter { exch dup length 0 eq{ pop }{ ppdict dup length 1 sub 3 -1 roll put }ifelse {string_size}{0}ifelse string }/LZWEncode filter def { ReadFilter readbuffer readstring exch LZWFilter exch writestring not{exit}if }loop LZWFilter closefile ppdict end }def /cachepaintproc { 2 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal { ReadFilter 16000 string readstring exch ppdict dup length 1 sub 3 -1 roll put not{exit}if }loop ppdict dup dup length 1 sub()put end }def /make_pattern { exch clonedict exch dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub matrix translate exch matrix concatmatrix 1 index begin BBox 0 get XStep div cvi XStep mul/xshift exch neg def BBox 1 get YStep div cvi YStep mul/yshift exch neg def BBox 0 get xshift add BBox 1 get yshift add BBox 2 get xshift add BBox 3 get yshift add 4 array astore /BBox exch def [xshift yshift/translate load null/exec load]dup 3/PaintProc load put cvx/PaintProc exch def end gsave 0 setgray makepattern grestore }def /set_pattern { dup/PatternType get 1 eq{ dup/PaintType get 1 eq{ currentoverprint sop[/DeviceGray]setcolorspace 0 setgray }if }if setpattern }def /setcolorspace_opt { dup currentcolorspace eq{pop}{setcolorspace}ifelse }def /updatecolorrendering { currentcolorrendering/RenderingIntent known{ currentcolorrendering/RenderingIntent get } { Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd AGMCORE_gget dup null eq } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd AGMCORE_gget dup null eq } { Intent/Saturation eq { /saturation_crd AGMCORE_gget dup null eq } { /perceptual_crd AGMCORE_gget dup null eq }ifelse }ifelse }ifelse { pop null } { /RenderingIntent known{null}{Intent}ifelse }ifelse }ifelse Intent ne{ Intent/ColorRendering{findresource}stopped { pop pop systemdict/findcolorrendering known { Intent findcolorrendering { /ColorRendering findresource true exch } { /ColorRendering findresource product(Xerox Phaser 5400)ne exch }ifelse dup Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd exch AGMCORE_gput } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd exch AGMCORE_gput } { Intent/Saturation eq { /saturation_crd exch AGMCORE_gput } { Intent/Perceptual eq { /perceptual_crd exch AGMCORE_gput } { pop }ifelse }ifelse }ifelse }ifelse 1 index{exch}{pop}ifelse } {false}ifelse } {true}ifelse { dup begin currentdict/TransformPQR known{ currentdict/TransformPQR get aload pop 3{{}eq 3 1 roll}repeat or or } {true}ifelse currentdict/MatrixPQR known{ currentdict/MatrixPQR get aload pop 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq and and and and and and and and } {true}ifelse end or { clonedict begin /TransformPQR[ {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind ]def /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def currentdict end }if setcolorrendering_opt }if }if }def /set_crd { AGMCORE_host_sep not level2 and{ currentdict/ColorRendering known{ ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if }{ currentdict/Intent known{ updatecolorrendering }if }ifelse currentcolorspace dup type/arraytype eq {0 get}if /DeviceRGB eq { currentdict/UCR known {/UCR}{/AGMCORE_currentucr}ifelse load setundercolorremoval currentdict/BG known {/BG}{/AGMCORE_currentbg}ifelse load setblackgeneration }if }if }def /set_ucrbg { dup null eq{pop/AGMCORE_currentbg load}{/Procedure get_res}ifelse setblackgeneration dup null eq{pop/AGMCORE_currentucr load}{/Procedure get_res}ifelse setundercolorremoval }def /setcolorrendering_opt { dup currentcolorrendering eq{ pop }{ product(HP Color LaserJet 2605)anchorsearch{ pop pop pop }{ pop clonedict begin /Intent Intent def currentdict end setcolorrendering }ifelse }ifelse }def /cpaint_gcomp { convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not { (%end_cpaint_gcomp)flushinput }if }def /cpaint_gsep { //Adobe_AGM_Core/AGMCORE_ConvertToProcess get { (%end_cpaint_gsep)flushinput }if }def /cpaint_gend {np}def /T1_path { currentfile token pop currentfile token pop mo { currentfile token pop dup type/stringtype eq {pop exit}if 0 exch rlineto currentfile token pop dup type/stringtype eq {pop exit}if 0 rlineto }loop }def /T1_gsave level3 {/clipsave} {/gsave}ifelse load def /T1_grestore level3 {/cliprestore} {/grestore}ifelse load def /set_spot_alias_ary { dup inherit_aliases //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf }def /set_spot_normalization_ary { dup inherit_aliases dup length /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if array //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf /AGMCORE_SpotAliasAry where{ pop AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval AGMCORE_SpotAliasAry length }{0}ifelse AGMCORE_SpotAliasAry2 3 1 roll exch putinterval true set_spot_alias }def /inherit_aliases { {dup/Name get map_alias{/CSD put}{pop}ifelse}forall }def /set_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias 3 -1 roll put }{ pop }ifelse }def /current_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias get }{ false }ifelse }def /map_alias { /AGMCORE_SpotAliasAry2 where{ begin /AGMCORE_name xdf false AGMCORE_SpotAliasAry2{ dup/Name get AGMCORE_name eq{ /CSD get/CSD get_res exch pop true exit }{ pop }ifelse }forall end }{ pop false }ifelse }bdf /spot_alias { true set_spot_alias /AGMCORE_&setcustomcolor AGMCORE_key_known not{ //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put }if /customcolor_tint 1 AGMCORE_gput //Adobe_AGM_Core begin /setcustomcolor { //Adobe_AGM_Core begin dup/customcolor_tint exch AGMCORE_gput 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not current_spot_alias and{1 index 4 get map_alias}{false}ifelse { false set_spot_alias /sep_colorspace_dict AGMCORE_gget null ne {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse 3 1 roll 2 index{ exch pop/sep_tint AGMCORE_gget exch }if mark 3 1 roll setsepcolorspace counttomark 0 ne{ setsepcolor }if pop not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if pop true set_spot_alias }{ AGMCORE_&setcustomcolor }ifelse end }bdf end }def /begin_feature { Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if }def /end_feature { 2 dict begin /spd/setpagedevice load def /setpagedevice{get_gstate spd set_gstate}def stopped{$error/newerror false put}if end count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if }def /set_negative { //Adobe_AGM_Core begin /AGMCORE_inverting exch def level2{ currentpagedevice/NegativePrint known AGMCORE_distilling not and{ currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{ true begin_feature true{ <>setpagedevice }end_feature }if /AGMCORE_inverting false def }if }if AGMCORE_inverting{ [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer AGMCORE_distilling{ erasepage }{ gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore }ifelse }if end }def /lw_save_restore_override{ /md where{ pop md begin initializepage /initializepage{}def /pmSVsetup{}def /endp{}def /pse{}def /psb{}def /orig_showpage where {pop} {/orig_showpage/showpage load def} ifelse /showpage{orig_showpage gR}def end }if }def /pscript_showpage_override{ /NTPSOct95 where { begin showpage save /showpage/restore load def /restore{exch pop}def end }if }def /driver_media_override { /md where{ pop md/initializepage known{ md/initializepage{}put }if md/rC known{ md/rC{4{pop}repeat}put }if }if /mysetup where{ /mysetup[1 0 0 1 0 0]put }if Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put level2 {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if }def /capture_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put }if }if }def /restore_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup known{ Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put Adobe_AGM_Core/save_mysetup undef }if }if }if }def /driver_check_media_override { /PrepsDict where {pop} { Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq { Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and }if { Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix }if }ifelse }def AGMCORE_err_strings begin /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def /AGMCORE_invalid_color_space(This job contains an invalid color space. )def end /set_def_ht {AGMCORE_def_ht sethalftone}def /set_def_flat {AGMCORE_Default_flatness setflat}def end systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_CoolType_Core 2.31 0 %%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved. %%Version: 2.31 0 10 dict begin /Adobe_CoolType_Passthru currentdict def /Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def Adobe_CoolType_Core_Defined {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def} if userdict/Adobe_CoolType_Core 70 dict dup begin put /Adobe_CoolType_Version 2.31 def /Level2? systemdict/languagelevel known dup {pop systemdict/languagelevel get 2 ge} if def Level2? not { /currentglobal false def /setglobal/pop load def /gcheck{pop false}bind def /currentpacking false def /setpacking/pop load def /SharedFontDirectory 0 dict def } if currentpacking true setpacking currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def end setglobal currentglobal true setglobal userdict/Adobe_CoolType_GVMFonts known not {userdict/Adobe_CoolType_GVMFonts 10 dict put} if setglobal currentglobal false setglobal userdict/Adobe_CoolType_LVMFonts known not {userdict/Adobe_CoolType_LVMFonts 10 dict put} if setglobal /ct_VMDictPut { dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse 3 1 roll put }bind def /ct_VMDictUndef { dup Adobe_CoolType_GVMFonts exch known {Adobe_CoolType_GVMFonts exch undef} { dup Adobe_CoolType_LVMFonts exch known {Adobe_CoolType_LVMFonts exch undef} {pop} ifelse }ifelse }bind def /ct_str1 1 string def /ct_xshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_yshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 exch rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_xyshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { {_ct_na _ct_i 1 add get}stopped {pop pop pop} { _ct_x _ct_y moveto rmoveto } ifelse } ifelse /_ct_i _ct_i 2 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def /ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def /xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def currentglobal true setglobal /ct_T3Defs { /BuildChar { 1 index/Encoding get exch get 1 index/BuildGlyph get exec }bind def /BuildGlyph { exch begin GlyphProcs exch get exec end }bind def }bind def setglobal /@_SaveStackLevels { Adobe_CoolType_Data begin /@vmState currentglobal def false setglobal @opStackCountByLevel @opStackLevel 2 copy known not { 2 copy 3 dict dup/args 7 index 5 add array put put get } { get dup/args get dup length 3 index lt { dup length 5 add array exch 1 index exch 0 exch putinterval 1 index exch/args exch put } {pop} ifelse } ifelse begin count 1 sub 1 index lt {pop count} if dup/argCount exch def dup 0 gt { args exch 0 exch getinterval astore pop } {pop} ifelse count /restCount exch def end /@opStackLevel @opStackLevel 1 add def countdictstack 1 sub @dictStackCountByLevel exch @dictStackLevel exch put /@dictStackLevel @dictStackLevel 1 add def @vmState setglobal end }bind def /@_RestoreStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def @opStackCountByLevel @opStackLevel get begin count restCount sub dup 0 gt {{pop}repeat} {pop} ifelse args 0 argCount getinterval{}forall end /@dictStackLevel @dictStackLevel 1 sub def @dictStackCountByLevel @dictStackLevel get end countdictstack exch sub dup 0 gt {{end}repeat} {pop} ifelse }bind def /@_PopStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def /@dictStackLevel @dictStackLevel 1 sub def end }bind def /@Raise { exch cvx exch errordict exch get exec stop }bind def /@ReRaise { cvx $error/errorname get errordict exch get exec stop }bind def /@Stopped { 0 @#Stopped }bind def /@#Stopped { @_SaveStackLevels stopped {@_RestoreStackLevels true} {@_PopStackLevels false} ifelse }bind def /@Arg { Adobe_CoolType_Data begin @opStackCountByLevel @opStackLevel 1 sub get begin args exch argCount 1 sub exch sub get end end }bind def currentglobal true setglobal /CTHasResourceForAllBug Level2? { 1 dict dup /@shouldNotDisappearDictValue true def Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put begin count @_SaveStackLevels {(*){pop stop}128 string/Category resourceforall} stopped pop @_RestoreStackLevels currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll { /@shouldNotDisappearDictValue known { { end currentdict 1 index eq {pop exit} if } loop } if } { pop end } ifelse } {false} ifelse def true setglobal /CTHasResourceStatusBug Level2? { mark {/steveamerige/Category resourcestatus} stopped {cleartomark true} {cleartomark currentglobal not} ifelse } {false} ifelse def setglobal /CTResourceStatus { mark 3 1 roll /Category findresource begin ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse end }bind def /CTWorkAroundBugs { Level2? { /cid_PreLoad/ProcSet resourcestatus { pop pop currentglobal mark { (*) { dup/CMap CTHasResourceStatusBug {CTResourceStatus} {resourcestatus} ifelse { pop dup 0 eq exch 1 eq or { dup/CMap findresource gcheck setglobal /CMap undefineresource } { pop CTHasResourceForAllBug {exit} {stop} ifelse } ifelse } {pop} ifelse } 128 string/CMap resourceforall } stopped {cleartomark} stopped pop setglobal } if } if }bind def /ds { Adobe_CoolType_Core begin CTWorkAroundBugs /mo/moveto load def /nf/newencodedfont load def /msf{makefont setfont}bind def /uf{dup undefinefont ct_VMDictUndef}bind def /ur/undefineresource load def /chp/charpath load def /awsh/awidthshow load def /wsh/widthshow load def /ash/ashow load def /@xshow/xshow load def /@yshow/yshow load def /@xyshow/xyshow load def /@cshow/cshow load def /sh/show load def /rp/repeat load def /.n/.notdef def end currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /AddWidths? false def /CC 0 def /charcode 2 string def /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def /InVMFontsByCMap 10 dict def /InVMDeepCopiedFonts 10 dict def end setglobal }bind def /dt { currentdict Adobe_CoolType_Core eq {end} if }bind def /ps { Adobe_CoolType_Core begin Adobe_CoolType_GVMFonts begin Adobe_CoolType_LVMFonts begin SharedFontDirectory begin }bind def /pt { end end end end }bind def /unload { systemdict/languagelevel known { systemdict/languagelevel get 2 ge { userdict/Adobe_CoolType_Core 2 copy known {undef} {pop pop} ifelse } if } if }bind def /ndf { 1 index where {pop pop pop} {dup xcheck{bind}if def} ifelse }def /findfont systemdict begin userdict begin /globaldict where{/globaldict get begin}if dup where pop exch get /globaldict where{pop end}if end end Adobe_CoolType_Core_Defined {/systemfindfont exch def} { /findfont 1 index def /systemfindfont exch def } ifelse /undefinefont {pop}ndf /copyfont { currentglobal 3 1 roll 1 index gcheck setglobal dup null eq{0}{dup length}ifelse 2 index length add 1 add dict begin exch { 1 index/FID eq {pop pop} {def} ifelse } forall dup null eq {pop} {{def}forall} ifelse currentdict end exch setglobal }bind def /copyarray { currentglobal exch dup gcheck setglobal dup length array copy exch setglobal }bind def /newencodedfont { currentglobal { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } { FontDirectory 3 index known {FontDirectory 3 index get/FontReferenced known} { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } ifelse } ifelse dup { 3 index findfont/FontReferenced get 2 index dup type/nametype eq {findfont} if ne {pop false} if } if dup { 1 index dup type/nametype eq {findfont} if dup/CharStrings known { /CharStrings get length 4 index findfont/CharStrings get length ne { pop false } if } {pop} ifelse } if { pop 1 index findfont /Encoding get exch 0 1 255 {2 copy get 3 index 3 1 roll put} for pop pop pop } { currentglobal 4 1 roll dup type/nametype eq {findfont} if dup gcheck setglobal dup dup maxlength 2 add dict begin exch { 1 index/FID ne 2 index/Encoding ne and {def} {pop pop} ifelse } forall /FontReferenced exch def /Encoding exch dup length array copy def /FontName 1 index dup type/stringtype eq{cvn}if def dup currentdict end definefont ct_VMDictPut setglobal } ifelse }bind def /SetSubstituteStrategy { $SubstituteFont begin dup type/dicttype ne {0 dict} if currentdict/$Strategies known { exch $Strategies exch 2 copy known { get 2 copy maxlength exch maxlength add dict begin {def}forall {def}forall currentdict dup/$Init known {dup/$Init get exec} if end /$Strategy exch def } {pop pop pop} ifelse } {pop pop} ifelse end }bind def /scff { $SubstituteFont begin dup type/stringtype eq {dup length exch} {null} ifelse /$sname exch def /$slen exch def /$inVMIndex $sname null eq { 1 index $str cvs dup length $slen sub $slen getinterval cvn } {$sname} ifelse def end {findfont} @Stopped { dup length 8 add string exch 1 index 0(BadFont:)putinterval 1 index exch 8 exch dup length string cvs putinterval cvn {findfont} @Stopped {pop/Courier findfont} if } if $SubstituteFont begin /$sname null def /$slen 0 def /$inVMIndex null def end }bind def /isWidthsOnlyFont { dup/WidthsOnly known {pop pop true} { dup/FDepVector known {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall} { dup/FDArray known {/FDArray get{isWidthsOnlyFont dup{exit}if}forall} {pop} ifelse } ifelse } ifelse }bind def /ct_StyleDicts 4 dict dup begin /Adobe-Japan1 4 dict dup begin Level2? { /Serif /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMin-W3} { /CIDFont/Category resourcestatus { pop pop /HeiseiMin-W3/CIDFont resourcestatus {pop pop/HeiseiMin-W3} {/Ryumin-Light} ifelse } {/Ryumin-Light} ifelse } ifelse def /SansSerif /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiKakuGo-W5} { /CIDFont/Category resourcestatus { pop pop /HeiseiKakuGo-W5/CIDFont resourcestatus {pop pop/HeiseiKakuGo-W5} {/GothicBBB-Medium} ifelse } {/GothicBBB-Medium} ifelse } ifelse def /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMaruGo-W4} { /CIDFont/Category resourcestatus { pop pop /HeiseiMaruGo-W4/CIDFont resourcestatus {pop pop/HeiseiMaruGo-W4} { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } ifelse /RoundSansSerif exch def /Default Serif def } { /Serif/Ryumin-Light def /SansSerif/GothicBBB-Medium def { (fonts/Jun101-Light-83pv-RKSJ-H)status }stopped {pop}{ {pop pop pop pop/Jun101-Light} {SansSerif} ifelse /RoundSansSerif exch def }ifelse /Default Serif def } ifelse end def /Adobe-Korea1 4 dict dup begin /Serif/HYSMyeongJo-Medium def /SansSerif/HYGoThic-Medium def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-GB1 4 dict dup begin /Serif/STSong-Light def /SansSerif/STHeiti-Regular def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-CNS1 4 dict dup begin /Serif/MKai-Medium def /SansSerif/MHei-Medium def /RoundSansSerif SansSerif def /Default Serif def end def end def Level2?{currentglobal true setglobal}if /ct_BoldRomanWidthProc { stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth 0 0 }bind def /ct_Type0WidthProc { dup stringwidth 0 0 moveto 2 index true charpath pathbbox 0 -1 7 index 2 div .88 setcachedevice2 pop 0 0 }bind def /ct_Type0WMode1WidthProc { dup stringwidth pop 2 div neg -0.88 2 copy moveto 0 -1 5 -1 roll true charpath pathbbox setcachedevice }bind def /cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_BoldBaseFont 11 dict begin /FontType 3 def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /Encoding cHexEncoding def /_setwidthProc/ct_BoldRomanWidthProc load def /_bcstr1 1 string def /BuildChar { exch begin _basefont setfont _bcstr1 dup 0 4 -1 roll put dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def systemdict/composefont known { /ct_DefineIdentity-H { /Identity-H/CMap resourcestatus { pop pop } { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse } def /ct_BoldBaseCIDFont 11 dict begin /CIDFontType 1 def /CIDFontName/ct_BoldBaseCIDFont def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /_setwidthProc/ct_Type0WidthProc load def /_bcstr2 2 string def /BuildGlyph { exch begin _basefont setfont _bcstr2 1 2 index 256 mod put _bcstr2 0 3 -1 roll 256 idiv put _bcstr2 dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def }if Level2?{setglobal}if /ct_CopyFont{ { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall }bind def /ct_Type0CopyFont { exch dup length dict begin ct_CopyFont [ exch FDepVector { dup/FontType get 0 eq { 1 index ct_Type0CopyFont /_ctType0 exch definefont } { /_ctBaseFont exch 2 index exec } ifelse exch } forall pop ] /FDepVector exch def currentdict end }bind def /ct_MakeBoldFont { dup/ct_SyntheticBold known { dup length 3 add dict begin ct_CopyFont /ct_StrokeWidth .03 0 FontMatrix idtransform pop def /ct_SyntheticBold true def currentdict end definefont } { dup dup length 3 add dict begin ct_CopyFont /PaintType 2 def /StrokeWidth .03 0 FontMatrix idtransform pop def /dummybold currentdict end definefont dup/FontType get dup 9 ge exch 11 le and { ct_BoldBaseCIDFont dup length 3 add dict copy begin dup/CIDSystemInfo get/CIDSystemInfo exch def ct_DefineIdentity-H /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefont exch def /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefonto exch def currentdict end /CIDFont defineresource } { ct_BoldBaseFont dup length 3 add dict copy begin /_basefont exch def /_basefonto exch def currentdict end definefont } ifelse } ifelse }bind def /ct_MakeBold{ 1 index 1 index findfont currentglobal 5 1 roll dup gcheck setglobal dup /FontType get 0 eq { dup/WMode known{dup/WMode get 1 eq}{false}ifelse version length 4 ge and {version 0 4 getinterval cvi 2015 ge} {true} ifelse {/ct_Type0WidthProc} {/ct_Type0WMode1WidthProc} ifelse ct_BoldBaseFont/_setwidthProc 3 -1 roll load put {ct_MakeBoldFont}ct_Type0CopyFont definefont } { dup/_fauxfont known not 1 index/SubstMaster known not and { ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put ct_MakeBoldFont } { 2 index 2 index eq {exch pop } { dup length dict begin ct_CopyFont currentdict end definefont } ifelse } ifelse } ifelse pop pop pop setglobal }bind def /?str1 256 string def /?set { $SubstituteFont begin /$substituteFound false def /$fontname 1 index def /$doSmartSub false def end dup findfont $SubstituteFont begin $substituteFound {false} { dup/FontName known { dup/FontName get $fontname eq 1 index/DistillerFauxFont known not and /currentdistillerparams where {pop false 2 index isWidthsOnlyFont not and} if } {false} ifelse } ifelse exch pop /$doSmartSub true def end { 5 1 roll pop pop pop pop findfont } { 1 index findfont dup/FontType get 3 eq { 6 1 roll pop pop pop pop pop false } {pop true} ifelse { $SubstituteFont begin pop pop /$styleArray 1 index def /$regOrdering 2 index def pop pop 0 1 $styleArray length 1 sub { $styleArray exch get ct_StyleDicts $regOrdering 2 copy known { get exch 2 copy known not {pop/Default} if get dup type/nametype eq { ?str1 cvs length dup 1 add exch ?str1 exch(-)putinterval exch dup length exch ?str1 exch 3 index exch putinterval add ?str1 exch 0 exch getinterval cvn } { pop pop/Unknown } ifelse } { pop pop pop pop/Unknown } ifelse } for end findfont }if } ifelse currentglobal false setglobal 3 1 roll null copyfont definefont pop setglobal }bind def setpacking userdict/$SubstituteFont 25 dict put 1 dict begin /SubstituteFont dup $error exch 2 copy known {get} {pop pop{pop/Courier}bind} ifelse def /currentdistillerparams where dup { pop pop currentdistillerparams/CannotEmbedFontPolicy 2 copy known {get/Error eq} {pop pop false} ifelse } if not { countdictstack array dictstack 0 get begin userdict begin $SubstituteFont begin /$str 128 string def /$fontpat 128 string def /$slen 0 def /$sname null def /$match false def /$fontname null def /$substituteFound false def /$inVMIndex null def /$doSmartSub true def /$depth 0 def /$fontname null def /$italicangle 26.5 def /$dstack null def /$Strategies 10 dict dup begin /$Type3Underprint { currentglobal exch false setglobal 11 dict begin /UseFont exch $WMode 0 ne { dup length dict copy dup/WMode $WMode put /UseFont exch definefont } if def /FontName $fontname dup type/stringtype eq{cvn}if def /FontType 3 def /FontMatrix[.001 0 0 .001 0 0]def /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def /FontBBox[0 0 0 0]def /CCInfo 7 dict dup begin /cc null def /x 0 def /y 0 def end def /BuildChar { exch begin CCInfo begin 1 string dup 0 3 index put exch pop /cc exch def UseFont 1000 scalefont setfont cc stringwidth/y exch def/x exch def x y setcharwidth $SubstituteFont/$Strategy get/$Underprint get exec 0 0 moveto cc show x y moveto end end }bind def currentdict end exch setglobal }bind def /$GetaTint 2 dict dup begin /$BuildFont { dup/WMode known {dup/WMode get} {0} ifelse /$WMode exch def $fontname exch dup/FontName known { dup/FontName get dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse exch Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index/FontName get known { pop Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index get null copyfont } {$deepcopyfont} ifelse exch 1 index exch/FontBasedOn exch put dup/FontName $fontname dup type/stringtype eq{cvn}if put definefont Adobe_CoolType_Data/InVMDeepCopiedFonts get begin dup/FontBasedOn get 1 index def end }bind def /$Underprint { gsave x abs y abs gt {/y 1000 def} {/x -1000 def 500 120 translate} ifelse Level2? { [/Separation(All)/DeviceCMYK{0 0 0 1 pop}] setcolorspace } {0 setgray} ifelse 10 setlinewidth x .8 mul [7 3] { y mul 8 div 120 sub x 10 div exch moveto 0 y 4 div neg rlineto dup 0 rlineto 0 y 4 div rlineto closepath gsave Level2? {.2 setcolor} {.8 setgray} ifelse fill grestore stroke } forall pop grestore }bind def end def /$Oblique 1 dict dup begin /$BuildFont { currentglobal exch dup gcheck setglobal null copyfont begin /FontBasedOn currentdict/FontName known { FontName dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse def /FontName $fontname dup type/stringtype eq{cvn}if def /currentdistillerparams where {pop} { /FontInfo currentdict/FontInfo known {FontInfo null copyfont} {2 dict} ifelse dup begin /ItalicAngle $italicangle def /FontMatrix FontMatrix [1 0 ItalicAngle dup sin exch cos div 1 0 0] matrix concatmatrix readonly end 4 2 roll def def } ifelse FontName currentdict end definefont exch setglobal }bind def end def /$None 1 dict dup begin /$BuildFont{}bind def end def end def /$Oblique SetSubstituteStrategy /$findfontByEnum { dup type/stringtype eq{cvn}if dup/$fontname exch def $sname null eq {$str cvs dup length $slen sub $slen getinterval} {pop $sname} ifelse $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval /$match false def $SubstituteFont/$dstack countdictstack array dictstack put mark { $fontpat 0 $slen 7 add getinterval {/$match exch def exit} $str filenameforall } stopped { cleardictstack currentdict true $SubstituteFont/$dstack get { exch { 1 index eq {pop false} {true} ifelse } {begin false} ifelse } forall pop } if cleartomark /$slen 0 def $match false ne {$match(fonts/)anchorsearch pop pop cvn} {/Courier} ifelse }bind def /$ROS 1 dict dup begin /Adobe 4 dict dup begin /Japan1 [/Ryumin-Light/HeiseiMin-W3 /GothicBBB-Medium/HeiseiKakuGo-W5 /HeiseiMaruGo-W4/Jun101-Light]def /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def /GB1 [/STSong-Light/STHeiti-Regular]def /CNS1 [/MKai-Medium/MHei-Medium]def end def end def /$cmapname null def /$deepcopyfont { dup/FontType get 0 eq { 1 dict dup/FontName/copied put copyfont begin /FDepVector FDepVector copyarray 0 1 2 index length 1 sub { 2 copy get $deepcopyfont dup/FontName/copied put /copied exch definefont 3 copy put pop pop } for def currentdict end } {$Strategies/$Type3Underprint get exec} ifelse }bind def /$buildfontname { dup/CIDFont findresource/CIDSystemInfo get begin Registry length Ordering length Supplement 8 string cvs 3 copy length 2 add add add string dup 5 1 roll dup 0 Registry putinterval dup 4 index(-)putinterval dup 4 index 1 add Ordering putinterval 4 2 roll add 1 add 2 copy(-)putinterval end 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch anchorsearch {pop pop 3 2 roll putinterval cvn/$cmapname exch def} {pop pop pop pop pop} ifelse length $str 1 index(-)putinterval 1 add $str 1 index $cmapname $fontpat cvs putinterval $cmapname length add $str exch 0 exch getinterval cvn }bind def /$findfontByROS { /$fontname exch def $ROS Registry 2 copy known { get Ordering 2 copy known {get} {pop pop[]} ifelse } {pop pop[]} ifelse false exch { dup/CIDFont resourcestatus { pop pop save 1 index/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get} {false} ifelse exch pop exch restore {pop} {exch pop true exit} ifelse } {pop} ifelse } forall {$str cvs $buildfontname} { false(*) { save exch dup/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get not} {true} ifelse exch/CIDSystemInfo get dup/Registry get Registry eq exch/Ordering get Ordering eq and and {exch restore exch pop true exit} {pop restore} ifelse } $str/CIDFont resourceforall {$buildfontname} {$fontname $findfontByEnum} ifelse } ifelse }bind def end end currentdict/$error known currentdict/languagelevel known and dup {pop $error/SubstituteFont known} if dup {$error} {Adobe_CoolType_Core} ifelse begin { /SubstituteFont /CMap/Category resourcestatus { pop pop { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and { $sname null eq {dup $str cvs dup length $slen sub $slen getinterval cvn} {$sname} ifelse Adobe_CoolType_Data/InVMFontsByCMap get 1 index 2 copy known { get false exch { pop currentglobal { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } { FontDirectory 1 index known {exch pop true exit} { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } ifelse } ifelse } forall } {pop pop false} ifelse { exch pop exch pop } { dup/CMap resourcestatus { pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS } { 128 string cvs dup(-)search { 3 1 roll search { 3 1 roll pop {dup cvi} stopped {pop pop pop pop pop $findfontByEnum} { 4 2 roll pop pop exch length exch 2 index length 2 index sub exch 1 sub -1 0 { $str cvs dup length 4 index 0 4 index 4 3 roll add getinterval exch 1 index exch 3 index exch putinterval dup/CMap resourcestatus { pop pop 4 1 roll pop pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS true exit } {pop} ifelse } for dup type/booleantype eq {pop} {pop pop pop $findfontByEnum} ifelse } ifelse } {pop pop pop $findfontByEnum} ifelse } {pop pop $findfontByEnum} ifelse } ifelse } ifelse } {//SubstituteFont exec} ifelse /$slen 0 def end } } { { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and {$findfontByEnum} {//SubstituteFont exec} ifelse end } } ifelse bind readonly def Adobe_CoolType_Core/scfindfont/systemfindfont load put } { /scfindfont { $SubstituteFont begin dup systemfindfont dup/FontName known {dup/FontName get dup 3 index ne} {/noname true} ifelse dup { /$origfontnamefound 2 index def /$origfontname 4 index def/$substituteFound true def } if exch pop { $slen 0 gt $sname null ne 3 index length $slen gt or and { pop dup $findfontByEnum findfont dup maxlength 1 add dict begin {1 index/FID eq{pop pop}{def}ifelse} forall currentdict end definefont dup/FontName known{dup/FontName get}{null}ifelse $origfontnamefound ne { $origfontname $str cvs print ( substitution revised, using )print dup/FontName known {dup/FontName get}{(unspecified font)} ifelse $str cvs print(.\n)print } if } {exch pop} ifelse } {exch pop} ifelse end }bind def } ifelse end end Adobe_CoolType_Core_Defined not { Adobe_CoolType_Core/findfont { $SubstituteFont begin $depth 0 eq { /$fontname 1 index dup type/stringtype ne{$str cvs}if def /$substituteFound false def } if /$depth $depth 1 add def end scfindfont $SubstituteFont begin /$depth $depth 1 sub def $substituteFound $depth 0 eq and { $inVMIndex null ne {dup $inVMIndex $AddInVMFont} if $doSmartSub { currentdict/$Strategy known {$Strategy/$BuildFont get exec} if } if } if end }bind put } if } if end /$AddInVMFont { exch/FontName 2 copy known { get 1 dict dup begin exch 1 index gcheck def end exch Adobe_CoolType_Data/InVMFontsByCMap get exch $DictAdd } {pop pop pop} ifelse }bind def /$DictAdd { 2 copy known not {2 copy 4 index length dict put} if Level2? not { 2 copy get dup maxlength exch length 4 index length add lt 2 copy get dup length 4 index length add exch maxlength 1 index lt { 2 mul dict begin 2 copy get{forall}def 2 copy currentdict put end } {pop} ifelse } if get begin {def} forall end }bind def end end %%EndResource currentglobal true setglobal %%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%Copyright: Copyright 1987-2006 Adobe Systems Incorporated. %%Version: 1.23 0 systemdict/languagelevel known dup {currentglobal false setglobal} {false} ifelse exch userdict/Adobe_CoolType_Utility 2 copy known {2 copy get dup maxlength 27 add dict copy} {27 dict} ifelse put Adobe_CoolType_Utility begin /@eexecStartData def /@recognizeCIDFont null def /ct_Level2? exch def /ct_Clone? 1183615869 internaldict dup /CCRun known not exch/eCCRun known not ct_Level2? and or def ct_Level2? {globaldict begin currentglobal true setglobal} if /ct_AddStdCIDMap ct_Level2? {{ mark Adobe_CoolType_Utility/@recognizeCIDFont currentdict put { ((Hex)57 StartData 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8 cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec } stopped { cleartomark Adobe_CoolType_Utility/@recognizeCIDFont get countdictstack dup array dictstack exch 1 sub -1 0 { 2 copy get 3 index eq {1 index length exch sub 1 sub{end}repeat exit} {pop} ifelse } for pop pop Adobe_CoolType_Utility/@eexecStartData get eexec } {cleartomark} ifelse }} {{ Adobe_CoolType_Utility/@eexecStartData get eexec }} ifelse bind def userdict/cid_extensions known dup{cid_extensions/cid_UpdateDB known and}if { cid_extensions begin /cid_GetCIDSystemInfo { 1 index type/stringtype eq {exch cvn exch} if cid_extensions begin dup load 2 index known { 2 copy cid_GetStatusInfo dup null ne { 1 index load 3 index get dup null eq {pop pop cid_UpdateDB} { exch 1 index/Created get eq {exch pop exch pop} {pop cid_UpdateDB} ifelse } ifelse } {pop cid_UpdateDB} ifelse } {cid_UpdateDB} ifelse end }bind def end } if ct_Level2? {end setglobal} if /ct_UseNativeCapability? systemdict/composefont known def /ct_MakeOCF 35 dict def /ct_Vars 25 dict def /ct_GlyphDirProcs 6 dict def /ct_BuildCharDict 15 dict dup begin /charcode 2 string def /dst_string 1500 string def /nullstring()def /usewidths? true def end def ct_Level2?{setglobal}{pop}ifelse ct_GlyphDirProcs begin /GetGlyphDirectory { systemdict/languagelevel known {pop/CIDFont findresource/GlyphDirectory get} { 1 index/CIDFont findresource/GlyphDirectory get dup type/dicttype eq { dup dup maxlength exch length sub 2 index lt { dup length 2 index add dict copy 2 index /CIDFont findresource/GlyphDirectory 2 index put } if } if exch pop exch pop } ifelse + }def /+ { systemdict/languagelevel known { currentglobal false setglobal 3 dict begin /vm exch def } {1 dict begin} ifelse /$ exch def systemdict/languagelevel known { vm setglobal /gvm currentglobal def $ gcheck setglobal } if ?{$ begin}if }def /?{$ type/dicttype eq}def /|{ userdict/Adobe_CoolType_Data known { Adobe_CoolType_Data/AddWidths? known { currentdict Adobe_CoolType_Data begin begin AddWidths? { Adobe_CoolType_Data/CC 3 index put ?{def}{$ 3 1 roll put}ifelse CC charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore currentfont/Widths get exch CC exch put } {?{def}{$ 3 1 roll put}ifelse} ifelse end end } {?{def}{$ 3 1 roll put}ifelse} ifelse } {?{def}{$ 3 1 roll put}ifelse} ifelse }def /! { ?{end}if systemdict/languagelevel known {gvm setglobal} if end }def /:{string currentfile exch readstring pop}executeonly def end ct_MakeOCF begin /ct_cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_CID_STR_SIZE 8000 def /ct_mkocfStr100 100 string def /ct_defaultFontMtx[.001 0 0 .001 0 0]def /ct_1000Mtx[1000 0 0 1000 0 0]def /ct_raise{exch cvx exch errordict exch get exec stop}bind def /ct_reraise {cvx $error/errorname get(Error: )print dup( )cvs print errordict exch get exec stop }bind def /ct_cvnsi { 1 index add 1 sub 1 exch 0 4 1 roll { 2 index exch get exch 8 bitshift add } for exch pop }bind def /ct_GetInterval { Adobe_CoolType_Utility/ct_BuildCharDict get begin /dst_index 0 def dup dst_string length gt {dup string/dst_string exch def} if 1 index ct_CID_STR_SIZE idiv /arrayIndex exch def 2 index arrayIndex get 2 index arrayIndex ct_CID_STR_SIZE mul sub { dup 3 index add 2 index length le { 2 index getinterval dst_string dst_index 2 index putinterval length dst_index add/dst_index exch def exit } { 1 index length 1 index sub dup 4 1 roll getinterval dst_string dst_index 2 index putinterval pop dup dst_index add/dst_index exch def sub /arrayIndex arrayIndex 1 add def 2 index dup length arrayIndex gt {arrayIndex get} { pop exit } ifelse 0 } ifelse } loop pop pop pop dst_string 0 dst_index getinterval end }bind def ct_Level2? { /ct_resourcestatus currentglobal mark true setglobal {/unknowninstancename/Category resourcestatus} stopped {cleartomark setglobal true} {cleartomark currentglobal not exch setglobal} ifelse { { mark 3 1 roll/Category findresource begin ct_Vars/vm currentglobal put ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse ct_Vars/vm get setglobal end } } {{resourcestatus}} ifelse bind def /CIDFont/Category ct_resourcestatus {pop pop} { currentglobal true setglobal /Generic/Category findresource dup length dict copy dup/InstanceType/dicttype put /CIDFont exch/Category defineresource pop setglobal } ifelse ct_UseNativeCapability? { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } if } { /ct_Category 2 dict begin /CIDFont 10 dict def /ProcSet 2 dict def currentdict end def /defineresource { ct_Category 1 index 2 copy known { get dup dup maxlength exch length eq { dup length 10 add dict copy ct_Category 2 index 2 index put } if 3 index 3 index put pop exch pop } {pop pop/defineresource/undefined ct_raise} ifelse }bind def /findresource { ct_Category 1 index 2 copy known { get 2 index 2 copy known {get 3 1 roll pop pop} {pop pop/findresource/undefinedresource ct_raise} ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /resourcestatus { ct_Category 1 index 2 copy known { get 2 index known exch pop exch pop { 0 -1 true } { false } ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /ct_resourcestatus/resourcestatus load def } ifelse /ct_CIDInit 2 dict begin /ct_cidfont_stream_init { { dup(Binary)eq { pop null currentfile ct_Level2? { {cid_BYTE_COUNT()/SubFileDecode filter} stopped {pop pop pop} if } if /readstring load exit } if dup(Hex)eq { pop currentfile ct_Level2? { {null exch/ASCIIHexDecode filter/readstring} stopped {pop exch pop(>)exch/readhexstring} if } {(>)exch/readhexstring} ifelse load exit } if /StartData/typecheck ct_raise } loop cid_BYTE_COUNT ct_CID_STR_SIZE le { 2 copy cid_BYTE_COUNT string exch exec pop 1 array dup 3 -1 roll 0 exch put } { cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi dup array exch 2 sub 0 exch 1 exch { 2 copy 5 index ct_CID_STR_SIZE string 6 index exec pop put pop } for 2 index cid_BYTE_COUNT ct_CID_STR_SIZE mod string 3 index exec pop 1 index exch 1 index length 1 sub exch put } ifelse cid_CIDFONT exch/GlyphData exch put 2 index null eq { pop pop pop } { pop/readstring load 1 string exch { 3 copy exec pop dup length 0 eq { pop pop pop pop pop true exit } if 4 index eq { pop pop pop pop false exit } if } loop pop } ifelse }bind def /StartData { mark { currentdict dup/FDArray get 0 get/FontMatrix get 0 get 0.001 eq { dup/CDevProc known not { /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known {get} { pop pop {pop pop pop pop pop 0 -1000 7 index 2 div 880} } ifelse def } if } { /CDevProc { pop pop pop pop pop 0 1 cid_temp/cid_CIDFONT get /FDArray get 0 get /FontMatrix get 0 get div 7 index 2 div 1 index 0.88 mul }def } ifelse /cid_temp 15 dict def cid_temp begin /cid_CIDFONT exch def 3 copy pop dup/cid_BYTE_COUNT exch def 0 gt { ct_cidfont_stream_init FDArray { /Private get dup/SubrMapOffset known { begin /Subrs SubrCount array def Subrs SubrMapOffset SubrCount SDBytes ct_Level2? { currentdict dup/SubrMapOffset undef dup/SubrCount undef /SDBytes undef } if end /cid_SD_BYTES exch def /cid_SUBR_COUNT exch def /cid_SUBR_MAP_OFFSET exch def /cid_SUBRS exch def cid_SUBR_COUNT 0 gt { GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi 0 1 cid_SUBR_COUNT 1 sub { exch 1 index 1 add cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add GlyphData exch cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi cid_SUBRS 4 2 roll GlyphData exch 4 index 1 index sub ct_GetInterval dup length string copy put } for pop } if } {pop} ifelse } forall } if cleartomark pop pop end CIDFontName currentdict/CIDFont defineresource pop end end } stopped {cleartomark/StartData ct_reraise} if }bind def currentdict end def /ct_saveCIDInit { /CIDInit/ProcSet ct_resourcestatus {true} {/CIDInitC/ProcSet ct_resourcestatus} ifelse { pop pop /CIDInit/ProcSet findresource ct_UseNativeCapability? {pop null} {/CIDInit ct_CIDInit/ProcSet defineresource pop} ifelse } {/CIDInit ct_CIDInit/ProcSet defineresource pop null} ifelse ct_Vars exch/ct_oldCIDInit exch put }bind def /ct_restoreCIDInit { ct_Vars/ct_oldCIDInit get dup null ne {/CIDInit exch/ProcSet defineresource pop} {pop} ifelse }bind def /ct_BuildCharSetUp { 1 index begin CIDFont begin Adobe_CoolType_Utility/ct_BuildCharDict get begin /ct_dfCharCode exch def /ct_dfDict exch def CIDFirstByte ct_dfCharCode add dup CIDCount ge {pop 0} if /cid exch def { GlyphDirectory cid 2 copy known {get} {pop pop nullstring} ifelse dup length FDBytes sub 0 gt { dup FDBytes 0 ne {0 FDBytes ct_cvnsi} {pop 0} ifelse /fdIndex exch def dup length FDBytes sub FDBytes exch getinterval /charstring exch def exit } { pop cid 0 eq {/charstring nullstring def exit} if /cid 0 def } ifelse } loop }def /ct_SetCacheDevice { 0 0 moveto dup stringwidth 3 -1 roll true charpath pathbbox 0 -1000 7 index 2 div 880 setcachedevice2 0 0 moveto }def /ct_CloneSetCacheProc { 1 eq { stringwidth pop -2 div -880 0 -1000 setcharwidth moveto } { usewidths? { currentfont/Widths get cid 2 copy known {get exch pop aload pop} {pop pop stringwidth} ifelse } {stringwidth} ifelse setcharwidth 0 0 moveto } ifelse }def /ct_Type3ShowCharString { ct_FDDict fdIndex 2 copy known {get} { currentglobal 3 1 roll 1 index gcheck setglobal ct_Type1FontTemplate dup maxlength dict copy begin FDArray fdIndex get dup/FontMatrix 2 copy known {get} {pop pop ct_defaultFontMtx} ifelse /FontMatrix exch dup length array copy def /Private get /Private exch def /Widths rootfont/Widths get def /CharStrings 1 dict dup/.notdef dup length string copy put def currentdict end /ct_Type1Font exch definefont dup 5 1 roll put setglobal } ifelse dup/CharStrings get 1 index/Encoding get ct_dfCharCode get charstring put rootfont/WMode 2 copy known {get} {pop pop 0} ifelse exch 1000 scalefont setfont ct_str1 0 ct_dfCharCode put ct_str1 exch ct_dfSetCacheProc ct_SyntheticBold { currentpoint ct_str1 show newpath moveto ct_str1 true charpath ct_StrokeWidth setlinewidth stroke } {ct_str1 show} ifelse }def /ct_Type4ShowCharString { ct_dfDict ct_dfCharCode charstring FDArray fdIndex get dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not {ct_1000Mtx matrix concatmatrix concat} {pop} ifelse /Private get Adobe_CoolType_Utility/ct_Level2? get not { ct_dfDict/Private 3 -1 roll {put} 1183615869 internaldict/superexec get exec } if 1183615869 internaldict Adobe_CoolType_Utility/ct_Level2? get {1 index} {3 index/Private get mark 6 1 roll} ifelse dup/RunInt known {/RunInt get} {pop/CCRun} ifelse get exec Adobe_CoolType_Utility/ct_Level2? get not {cleartomark} if }bind def /ct_BuildCharIncremental { { Adobe_CoolType_Utility/ct_MakeOCF get begin ct_BuildCharSetUp ct_ShowCharString } stopped {stop} if end end end end }bind def /BaseFontNameStr(BF00)def /ct_Type1FontTemplate 14 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /PaintType 0 def currentdict end def /BaseFontTemplate 11 dict begin /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /BuildChar/ct_BuildCharIncremental load def ct_Clone? { /FontType 3 def /ct_ShowCharString/ct_Type3ShowCharString load def /ct_dfSetCacheProc/ct_CloneSetCacheProc load def /ct_SyntheticBold false def /ct_StrokeWidth 1 def } { /FontType 4 def /Private 1 dict dup/lenIV 4 put def /CharStrings 1 dict dup/.notdefput def /PaintType 0 def /ct_ShowCharString/ct_Type4ShowCharString load def } ifelse /ct_str1 1 string def currentdict end def /BaseFontDictSize BaseFontTemplate length 5 add def /ct_matrixeq { true 0 1 5 { dup 4 index exch get exch 3 index exch get eq and dup not {exit} if } for exch pop exch pop }bind def /ct_makeocf { 15 dict begin exch/WMode exch def exch/FontName exch def /FontType 0 def /FMapType 2 def dup/FontMatrix known {dup/FontMatrix get/FontMatrix exch def} {/FontMatrix matrix def} ifelse /bfCount 1 index/CIDCount get 256 idiv 1 add dup 256 gt{pop 256}if def /Encoding 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for bfCount 1 255{2 copy bfCount put pop}for def /FDepVector bfCount dup 256 lt{1 add}if array def BaseFontTemplate BaseFontDictSize dict copy begin /CIDFont exch def CIDFont/FontBBox known {CIDFont/FontBBox get/FontBBox exch def} if CIDFont/CDevProc known {CIDFont/CDevProc get/CDevProc exch def} if currentdict end BaseFontNameStr 3(0)putinterval 0 1 bfCount dup 256 eq{1 sub}if { FDepVector exch 2 index BaseFontDictSize dict copy begin dup/CIDFirstByte exch 256 mul def FontType 3 eq {/ct_FDDict 2 dict def} if currentdict end 1 index 16 BaseFontNameStr 2 2 getinterval cvrs pop BaseFontNameStr exch definefont put } for ct_Clone? {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def} if FontName currentdict end definefont ct_Clone? { gsave dup 1000 scalefont setfont ct_BuildCharDict begin /usewidths? false def currentfont/Widths get begin exch/CIDFont get/GlyphDirectory get { pop dup charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore def } forall end /usewidths? true def end grestore } {exch pop} ifelse }bind def currentglobal true setglobal /ct_ComposeFont { ct_UseNativeCapability? { 2 index/CMap ct_resourcestatus {pop pop exch pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 3 index def /CMapVersion 1.000 def /CMapType 1 def exch/WMode exch def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search { dup length string copy exch pop exch pop } {pop(Identity)} ifelse } {pop (Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { 3 2 roll pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def setglobal /ct_MakeIdentity { ct_UseNativeCapability? { 1 index/CMap ct_resourcestatus {pop pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 2 index def /CMapVersion 1.000 def /CMapType 1 def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search {dup length string copy exch pop exch pop} {pop(Identity)} ifelse } {pop(Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { exch pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def currentdict readonly pop end end %%EndResource setglobal %%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0 %%Copyright: Copyright 1987-2004 Adobe Systems Incorporated. %%Version: 1.0 0 userdict/ct_T42Dict 15 dict put ct_T42Dict begin /Is2015? { version cvi 2015 ge }bind def /AllocGlyphStorage { Is2015? { pop } { {string}forall }ifelse }bind def /Type42DictBegin { 25 dict begin /FontName exch def /CharStrings 256 dict begin /.notdef 0 def currentdict end def /Encoding exch def /PaintType 0 def /FontType 42 def /FontMatrix[1 0 0 1 0 0]def 4 array astore cvx/FontBBox exch def /sfnts }bind def /Type42DictEnd { currentdict dup/FontName get exch definefont end ct_T42Dict exch dup/FontName get exch put }bind def /RD{string currentfile exch readstring pop}executeonly def /PrepFor2015 { Is2015? { /GlyphDirectory 16 dict def sfnts 0 get dup 2 index (glyx) putinterval 2 index (locx) putinterval pop pop } { pop pop }ifelse }bind def /AddT42Char { Is2015? { /GlyphDirectory get begin def end pop pop } { /sfnts get 4 index get 3 index 2 index putinterval pop pop pop pop }ifelse }bind def /T0AddT42Mtx2 { /CIDFont findresource/Metrics2 get begin def end }bind def end %%EndResource currentglobal true setglobal %%BeginFile: MMFauxFont.prc %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. %%All Rights Reserved. userdict /ct_EuroDict 10 dict put ct_EuroDict begin /ct_CopyFont { { 1 index /FID ne {def} {pop pop} ifelse} forall } def /ct_GetGlyphOutline { gsave initmatrix newpath exch findfont dup length 1 add dict begin ct_CopyFont /Encoding Encoding dup length array copy dup 4 -1 roll 0 exch put def currentdict end /ct_EuroFont exch definefont 1000 scalefont setfont 0 0 moveto [ <00> stringwidth <00> false charpath pathbbox [ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall grestore counttomark 8 add } def /ct_MakeGlyphProc { ] cvx /ct_PSBuildGlyph cvx ] cvx } def /ct_PSBuildGlyph { gsave 8 -1 roll pop 7 1 roll 6 -2 roll ct_FontMatrix transform 6 2 roll 4 -2 roll ct_FontMatrix transform 4 2 roll ct_FontMatrix transform currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse dup 9 1 roll { currentdict /StrokeWidth 2 copy known { get 2 div 0 ct_FontMatrix dtransform pop 5 1 roll 4 -1 roll 4 index sub 4 1 roll 3 -1 roll 4 index sub 3 1 roll exch 4 index add exch 4 index add 5 -1 roll pop } { pop pop } ifelse } if setcachedevice ct_FontMatrix concat ct_PSPathOps begin exec end { currentdict /StrokeWidth 2 copy known { get } { pop pop 0 } ifelse setlinewidth stroke } { fill } ifelse grestore } def /ct_PSPathOps 4 dict dup begin /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def end def /ct_matrix1000 [1000 0 0 1000 0 0] def /ct_AddGlyphProc { 2 index findfont dup length 4 add dict begin ct_CopyFont /CharStrings CharStrings dup length 1 add dict copy begin 3 1 roll def currentdict end def /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def /ct_PSBuildGlyph /ct_PSBuildGlyph load def /ct_PSPathOps /ct_PSPathOps load def currentdict end definefont pop } def systemdict /languagelevel known { /ct_AddGlyphToPrinterFont { 2 copy ct_GetGlyphOutline 3 add -1 roll restore ct_MakeGlyphProc ct_AddGlyphProc } def } { /ct_AddGlyphToPrinterFont { pop pop restore Adobe_CTFauxDict /$$$FONTNAME get /Euro Adobe_CTFauxDict /$$$SUBSTITUTEBASE get ct_EuroDict exch get ct_AddGlyphProc } def } ifelse /AdobeSansMM { 556 0 24 -19 541 703 { 541 628 m 510 669 442 703 354 703 c 201 703 117 607 101 444 c 50 444 l 25 372 l 97 372 l 97 301 l 49 301 l 24 229 l 103 229 l 124 67 209 -19 350 -19 c 435 -19 501 25 509 32 c 509 131 l 492 105 417 60 343 60 c 267 60 204 127 197 229 c 406 229 l 430 301 l 191 301 l 191 372 l 455 372 l 479 444 l 194 444 l 201 531 245 624 348 624 c 433 624 484 583 509 534 c cp 556 0 m } ct_PSBuildGlyph } def /AdobeSerifMM { 500 0 10 -12 484 692 { 347 298 m 171 298 l 170 310 170 322 170 335 c 170 362 l 362 362 l 374 403 l 172 403 l 184 580 244 642 308 642 c 380 642 434 574 457 457 c 481 462 l 474 691 l 449 691 l 433 670 429 657 410 657 c 394 657 360 692 299 692 c 204 692 94 604 73 403 c 22 403 l 10 362 l 70 362 l 69 352 69 341 69 330 c 69 319 69 308 70 298 c 22 298 l 10 257 l 73 257 l 97 57 216 -12 295 -12 c 364 -12 427 25 484 123 c 458 142 l 425 101 384 37 316 37 c 256 37 189 84 173 257 c 335 257 l cp 500 0 m } ct_PSBuildGlyph } def end %%EndFile setglobal Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end %%BeginResource: procset Adobe_AGM_Image 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Image 71 dict dup begin put /Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def /nd{ null def }bind def /AGMIMG_&image nd /AGMIMG_&colorimage nd /AGMIMG_&imagemask nd /AGMIMG_mbuf()def /AGMIMG_ybuf()def /AGMIMG_kbuf()def /AGMIMG_c 0 def /AGMIMG_m 0 def /AGMIMG_y 0 def /AGMIMG_k 0 def /AGMIMG_tmp nd /AGMIMG_imagestring0 nd /AGMIMG_imagestring1 nd /AGMIMG_imagestring2 nd /AGMIMG_imagestring3 nd /AGMIMG_imagestring4 nd /AGMIMG_imagestring5 nd /AGMIMG_cnt nd /AGMIMG_fsave nd /AGMIMG_colorAry nd /AGMIMG_override nd /AGMIMG_name nd /AGMIMG_maskSource nd /AGMIMG_flushfilters nd /invert_image_samples nd /knockout_image_samples nd /img nd /sepimg nd /devnimg nd /idximg nd /ds { Adobe_AGM_Core begin Adobe_AGM_Image begin /AGMIMG_&image systemdict/image get def /AGMIMG_&imagemask systemdict/imagemask get def /colorimage where{ pop /AGMIMG_&colorimage/colorimage ldf }if end end }def /ps { Adobe_AGM_Image begin /AGMIMG_ccimage_exists{/customcolorimage where { pop /Adobe_AGM_OnHost_Seps where { pop false }{ /Adobe_AGM_InRip_Seps where { pop false }{ true }ifelse }ifelse }{ false }ifelse }bdf level2{ /invert_image_samples { Adobe_AGM_Image/AGMIMG_tmp Decode length ddf /Decode[Decode 1 get Decode 0 get]def }def /knockout_image_samples { Operator/imagemask ne{ /Decode[1 1]def }if }def }{ /invert_image_samples { {1 exch sub}currenttransfer addprocs settransfer }def /knockout_image_samples { {pop 1}currenttransfer addprocs settransfer }def }ifelse /img/imageormask ldf /sepimg/sep_imageormask ldf /devnimg/devn_imageormask ldf /idximg/indexed_imageormask ldf /_ctype 7 def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall }def /pt { end }def /dt { }def /AGMIMG_flushfilters { dup type/arraytype ne {1 array astore}if dup 0 get currentfile ne {dup 0 get flushfile}if { dup type/filetype eq { dup status 1 index currentfile ne and {closefile} {pop} ifelse }{pop}ifelse }forall }def /AGMIMG_init_common { currentdict/T known{/ImageType/T ldf currentdict/T undef}if currentdict/W known{/Width/W ldf currentdict/W undef}if currentdict/H known{/Height/H ldf currentdict/H undef}if currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if currentdict/D known{/Decode/D ldf currentdict/D undef}if currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if currentdict/O known{ /Operator/O load 1 eq{ /imagemask }{ /O load 2 eq{ /image }{ /colorimage }ifelse }ifelse def currentdict/O undef }if currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if currentdict/I known{/Interpolate/I ldf currentdict/I undef}if currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if /DataSource load xcheck not{ DataSource type/arraytype eq{ DataSource 0 get type/filetype eq{ /_Filters DataSource def currentdict/MultipleDataSources known not{ /DataSource DataSource dup length 1 sub get def }if }if }if currentdict/MultipleDataSources known not{ /MultipleDataSources DataSource type/arraytype eq{ DataSource length 1 gt } {false}ifelse def }if }if /NComponents Decode length 2 div def currentdict/SkipImageProc known not{/SkipImageProc{false}def}if }bdf /imageormask_sys { begin AGMIMG_init_common save mark level2{ currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load AGMIMG_&imagemask }{ BitsPerComponent ImageMatrix/DataSource load AGMIMG_&image }ifelse }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if cleartomark restore end }def /overprint_plate { currentoverprint{ 0 get dup type/nametype eq{ dup/DeviceGray eq{ pop AGMCORE_black_plate not }{ /DeviceCMYK eq{ AGMCORE_is_cmyk_sep not }if }ifelse }{ false exch { AGMOHS_sepink eq or }forall not }ifelse }{ pop false }ifelse }def /process_mask { level3{ dup begin /ImageType 1 def end 4 dict begin /DataDict exch def /ImageType 3 def /InterleaveType 3 def /MaskDict 9 dict begin /ImageType 1 def /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def /ImageMatrix[Width 0 0 Height neg 0 Height]def /NComponents 1 def /BitsPerComponent 1 def /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def currentdict end def currentdict end }if }def /use_mask { dup/Mask known {dup/Mask get}{false}ifelse }def /imageormask { begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata } { save mark level2 AGMCORE_host_sep not and{ currentdict Operator/imagemask eq DeviceN_PS2 not and{ imagemask }{ AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{ [/Separation/Black/DeviceGray{}]setcolorspace /Decode[Decode 1 get Decode 0 get]def }if use_mask{ process_mask image }{ DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and { Names convert_to_process not{ 2 dict begin /imageDict xdf /names_index 0 def gsave imageDict write_image_file{ Names{ dup(None)ne{ [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace Operator imageDict read_image_file names_index 0 eq{true setoverprint}if /names_index names_index 1 add def }{ pop }ifelse }forall close_image_file }if grestore end }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load /Adobe_AGM_OnHost_Seps where{ pop imagemask }{ currentgray 1 ne{ currentdict imageormask_sys }{ currentoverprint not{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }ifelse }{ BitsPerComponent ImageMatrix MultipleDataSources{ 0 1 NComponents 1 sub{ DataSource exch get }for }{ /DataSource load }ifelse Operator/colorimage eq{ AGMCORE_host_sep{ MultipleDataSources level2 or NComponents 4 eq and{ AGMCORE_is_cmyk_sep{ MultipleDataSources{ /DataSource DataSource 0 get xcheck { [ DataSource 0 get/exec cvx DataSource 1 get/exec cvx DataSource 2 get/exec cvx DataSource 3 get/exec cvx /AGMCORE_get_ink_data cvx ]cvx }{ DataSource aload pop AGMCORE_get_ink_data }ifelse def }{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul /DataSource load filter_cmyk 0()/SubFileDecode filter def }ifelse /Decode[Decode 0 get Decode 1 get]def /MultipleDataSources false def /NComponents 1 def /Operator/image def invert_image_samples 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }{ MultipleDataSources NComponents AGMIMG_&colorimage }ifelse }{ true NComponents colorimage }ifelse }{ Operator/image eq{ AGMCORE_host_sep{ /DoImage true def currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse { AGMCORE_black_plate not Operator/imagemask ne and{ /DoImage false def currentdict ignoreimagedata }if }if 1 AGMCORE_&setgray DoImage {currentdict imageormask_sys}if }{ use_mask{ process_mask image }{ image }ifelse }ifelse }{ Operator/knockout eq{ pop pop pop pop pop currentcolorspace overprint_plate not{ knockout_unitsq }if }if }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /sep_imageormask { /sep_colorspace_dict AGMCORE_gget begin CSA map_csa begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_avoid_L2_sep_space{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def }if AGMIMG_ccimage_exists MappedCSA 0 get/DeviceCMYK eq and currentdict/Components known and Name()ne and Name(All)ne and Operator/image eq and AGMCORE_producing_seps not and level2 not and { Width Height BitsPerComponent ImageMatrix [ /DataSource load/exec cvx { 0 1 2 index length 1 sub{ 1 index exch 2 copy get 255 xor put }for }/exec cvx ]cvx bind MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Name findcmykcustomcolor customcolorimage }{ AGMCORE_producing_seps not{ level2{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{ [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if currentdict imageormask }{ currentdict Operator/imagemask eq{ imageormask }{ sep_imageormask_lev1 }ifelse }ifelse }{ AGMCORE_host_sep{ Operator/knockout eq{ currentdict/ImageMatrix get concat knockout_unitsq }{ currentgray 1 ne{ AGMCORE_is_cmyk_sep Name(All)ne and{ level2{ Name AGMCORE_IsSeparationAProcessColor { Operator/imagemask eq{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor }if }{ invert_image_samples }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ [/Separation Name[/DeviceGray] { sep_colorspace_proc AGMCORE_get_ink_data 1 exch sub }bind ]AGMCORE_&setcolorspace /sep_tint AGMCORE_gget AGMCORE_&setcolor }if }ifelse currentdict imageormask_sys }{ currentdict Operator/imagemask eq{ imageormask_sys }{ sep_image_lev1_sep }ifelse }ifelse }{ Operator/imagemask ne{ invert_image_samples }if currentdict imageormask_sys }ifelse }{ currentoverprint not Name(All)eq or Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ currentcolorspace 0 get/Separation ne{ [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if }if currentoverprint MappedCSA 0 get/DeviceCMYK eq and Name AGMCORE_IsSeparationAProcessColor not and //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse Name(All)ne and{ imageormask_l2_overprint }{ currentdict imageormask }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end }def /colorSpaceElemCnt { mark currentcolor counttomark dup 2 add 1 roll cleartomark }bdf /devn_sep_datasource { 1 dict begin /dataSource xdf [ 0 1 dataSource length 1 sub{ dup currentdict/dataSource get/exch cvx/get cvx/exec cvx /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx }for ]cvx bind end }bdf /devn_alt_datasource { 11 dict begin /convProc xdf /origcolorSpaceElemCnt xdf /origMultipleDataSources xdf /origBitsPerComponent xdf /origDecode xdf /origDataSource xdf /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def /DataSource origMultipleDataSources { [ BitsPerComponent 8 idiv origDecode length 2 idiv mul string 0 1 origDecode length 2 idiv 1 sub { dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch origDataSource exch get 0()/SubFileDecode filter BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx }for ]bind cvx }{origDataSource}ifelse 0()/SubFileDecode filter def [ origcolorSpaceElemCnt string 0 2 origDecode length 2 sub { dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx }for /convProc load/exec cvx origcolorSpaceElemCnt 1 sub -1 0 { /dup cvx 2/add cvx/index cvx 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx }for ]bind cvx 0()/SubFileDecode filter end }bdf /devn_imageormask { /devicen_colorspace_dict AGMCORE_gget begin CSA map_csa 2 dict begin dup /srcDataStrs[3 -1 roll begin AGMIMG_init_common currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi { dup 65535 gt{1 add 2 div cvi}{exit}ifelse }loop string }repeat end]def /dstDataStr srcDataStrs 0 get length string def begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_producing_seps not{ level3 not{ Operator/imagemask ne{ /DataSource[[ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def /MultipleDataSources true def /Decode colorSpaceElemCnt[exch{0 1}repeat]def }if }if currentdict imageormask }{ AGMCORE_host_sep{ Names convert_to_process{ CSA get_csa_by_name 0 get/DeviceCMYK eq{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource filter_cmyk 0()/SubFileDecode filter def /MultipleDataSources false def /Decode[1 0]def /DeviceGray setcolorspace currentdict imageormask_sys }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate{ /DataSource DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource /MultipleDataSources false def /Decode colorSpaceElemCnt[exch{0 1}repeat]def currentdict imageormask_sys }{ gsave knockout_unitsq grestore currentdict consumeimagedata }ifelse }ifelse } { /devicen_colorspace_dict AGMCORE_gget/names_index known{ Operator/imagemask ne{ MultipleDataSources{ /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def /MultipleDataSources false def }{ /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def }ifelse invert_image_samples }if currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ currentdict imageormask }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end end }def /imageormask_l2_overprint { currentdict currentcmykcolor add add add 0 eq{ currentdict consumeimagedata }{ level3{ currentcmykcolor /AGMIMG_k xdf /AGMIMG_y xdf /AGMIMG_m xdf /AGMIMG_c xdf Operator/imagemask eq{ [/DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ]/DeviceCMYK{}]setcolorspace AGMIMG_c 0 ne{AGMIMG_c}if AGMIMG_m 0 ne{AGMIMG_m}if AGMIMG_y 0 ne{AGMIMG_y}if AGMIMG_k 0 ne{AGMIMG_k}if setcolor }{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def [/Indexed [ /DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ] /DeviceCMYK{ AGMIMG_k 0 eq{0}if AGMIMG_y 0 eq{0 exch}if AGMIMG_m 0 eq{0 3 1 roll}if AGMIMG_c 0 eq{0 4 1 roll}if } ] 255 { 255 div mark exch dup dup dup AGMIMG_k 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_y 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_m 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_c 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop counttomark 1 roll }{ pop }ifelse counttomark 1 add -1 roll pop } ]setcolorspace }ifelse imageormask_sys }{ write_image_file{ currentcmykcolor 0 ne{ [/Separation/Black/DeviceGray{}]setcolorspace gsave /Black [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Yellow/DeviceGray{}]setcolorspace gsave /Yellow [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Magenta/DeviceGray{}]setcolorspace gsave /Magenta [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Cyan/DeviceGray{}]setcolorspace gsave /Cyan [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if close_image_file }{ imageormask }ifelse }ifelse }ifelse }def /indexed_imageormask { begin AGMIMG_init_common save mark currentdict AGMCORE_host_sep{ Operator/knockout eq{ /indexed_colorspace_dict AGMCORE_gget dup/CSA known{ /CSA get get_csa_by_name }{ /Names get }ifelse overprint_plate not{ knockout_unitsq }if }{ Indexed_DeviceN{ /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{ indexed_image_lev2_sep }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }{ AGMCORE_is_cmyk_sep{ Operator/imagemask eq{ imageormask_sys }{ level2{ indexed_image_lev2_sep }{ indexed_image_lev1_sep }ifelse }ifelse }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ level2{ Indexed_DeviceN{ /indexed_colorspace_dict AGMCORE_gget begin }{ /indexed_colorspace_dict AGMCORE_gget dup null ne { begin currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and AGMCORE_in_rip_sep and{ [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup] setcolorspace }if end } {pop}ifelse }ifelse imageormask Indexed_DeviceN{ end }if }{ Operator/imagemask eq{ imageormask }{ indexed_imageormask_lev1 }ifelse }ifelse }ifelse cleartomark restore currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /indexed_image_lev2_sep { /indexed_colorspace_dict AGMCORE_gget begin begin Indexed_DeviceN not{ currentcolorspace dup 1/DeviceGray put dup 3 currentcolorspace 2 get 1 add string 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub { dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put }for put setcolorspace }if currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse end end }def /OPIimage { dup type/dicttype ne{ 10 dict begin /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /ImageType 1 def /Decode[0 1 def] currentdict end }if dup begin /NComponents 1 cdndf /MultipleDataSources false cdndf /SkipImageProc{false}cdndf /Decode[ 0 currentcolorspace 0 get/Indexed eq{ 2 BitsPerComponent exp 1 sub }{ 1 }ifelse ]cdndf /Operator/image cdndf end /sep_colorspace_dict AGMCORE_gget null eq{ imageormask }{ gsave dup begin invert_image_samples end sep_imageormask grestore }ifelse }def /cachemask_level2 { 3 dict begin /LZWEncode filter/WriteFilter xdf /readBuffer 256 string def /ReadFilter currentfile 0(%EndMask)/SubFileDecode filter /ASCII85Decode filter /RunLengthDecode filter def { ReadFilter readBuffer readstring exch WriteFilter exch writestring not{exit}if }loop WriteFilter closefile end }def /spot_alias { /mapto_sep_imageormask { dup type/dicttype ne{ 12 dict begin /ImageType 1 def /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /MultipleDataSources false def }{ begin }ifelse /Decode[/customcolor_tint AGMCORE_gget 0]def /Operator/image def /SkipImageProc{false}def currentdict end sep_imageormask }bdf /customcolorimage { Adobe_AGM_Image/AGMIMG_colorAry xddf /customcolor_tint AGMCORE_gget << /Name AGMIMG_colorAry 4 get /CSA[/DeviceCMYK] /TintMethod/Subtractive /TintProc null /MappedCSA null /NComponents 4 /Components[AGMIMG_colorAry aload pop pop] >> setsepcolorspace mapto_sep_imageormask }ndf Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put /customcolorimage { Adobe_AGM_Image/AGMIMG_override false put current_spot_alias{dup 4 get map_alias}{false}ifelse { false set_spot_alias /customcolor_tint AGMCORE_gget exch setsepcolorspace pop mapto_sep_imageormask true set_spot_alias }{ //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec }ifelse }bdf }def /snap_to_device { 6 dict begin matrix currentmatrix dup 0 get 0 eq 1 index 3 get 0 eq and 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop { 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def 0 0 transform AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch itransform/AGMIMG_llY exch def/AGMIMG_llX exch def 1 1 transform AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch itransform/AGMIMG_urY exch def/AGMIMG_urX exch def [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat }{ }ifelse end }def level2 not{ /colorbuf { 0 1 2 index length 1 sub{ dup 2 index exch get 255 exch sub 2 index 3 1 roll put }for }def /tint_image_to_color { begin Width Height BitsPerComponent ImageMatrix /DataSource load end Adobe_AGM_Image begin /AGMIMG_mbuf 0 string def /AGMIMG_ybuf 0 string def /AGMIMG_kbuf 0 string def { colorbuf dup length AGMIMG_mbuf length ne { dup length dup dup /AGMIMG_mbuf exch string def /AGMIMG_ybuf exch string def /AGMIMG_kbuf exch string def }if dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop } addprocs {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage end }def /sep_imageormask_lev1 { begin MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ { 255 mul round cvi GrayLookup exch get }currenttransfer addprocs settransfer currentdict imageormask }{ /sep_colorspace_dict AGMCORE_gget/Components known{ MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{ {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer currentdict imageormask }{ currentcolortransfer {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }{ MappedCSA 0 get/DeviceGray eq{ {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer currentdict imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }ifelse }ifelse }ifelse end }def /sep_image_lev1_sep { begin /sep_colorspace_dict AGMCORE_gget/Components known{ Components aload pop Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf {AGMIMG_c mul 1 exch sub} {AGMIMG_m mul 1 exch sub} {AGMIMG_y mul 1 exch sub} {AGMIMG_k mul 1 exch sub} }{ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub} {255 mul round cvi ColorLookup exch get 1 get 1 exch sub} {255 mul round cvi ColorLookup exch get 2 get 1 exch sub} {255 mul round cvi ColorLookup exch get 3 get 1 exch sub} }ifelse AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end }def /indexed_imageormask_lev1 { /indexed_colorspace_dict AGMCORE_gget begin begin currentdict MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceGray eq{ {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }ifelse }ifelse }ifelse end end }def /indexed_image_lev1_sep { /indexed_colorspace_dict AGMCORE_gget begin begin {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end end }def }if end systemdict/setpacking known {setpacking}if %%EndResource currentdict Adobe_AGM_Utils eq {end} if %%EndProlog %%BeginSetup Adobe_AGM_Utils begin 2 2010 Adobe_AGM_Core/ds gx Adobe_CoolType_Core/ds get exec Adobe_AGM_Image/ds gx currentdict Adobe_AGM_Utils eq {end} if %%EndSetup %%Page: 5 1 %%EndPageComments %%BeginPageSetup %ADOBeginClientInjection: PageSetup Start "AI11EPS" %AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0 %ADOEndClientInjection: PageSetup Start "AI11EPS" Adobe_AGM_Utils begin Adobe_AGM_Core/ps gx Adobe_AGM_Utils/capture_cpd gx Adobe_CoolType_Core/ps get exec Adobe_AGM_Image/ps gx %ADOBeginClientInjection: PageSetup End "AI11EPS" /currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse { userdict /AI11_PDFMark5 /cleartomark load put userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put} { userdict /AI11_PDFMark5 /pdfmark load put userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse [/NamespacePush AI11_PDFMark5 [/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5 [{ai_metadata_stream_123} currentfile 0 (% &&end XMP packet marker&&) /SubFileDecode filter AI11_ReadMetadata_PDFMark5 application/postscript diagramas_01 Adobe Illustrator CS4 2011-06-17T09:35:05-03:00 2011-06-17T09:35:05-03:00 2011-06-17T09:35:05-03:00 256 72 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgASAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9KSaZpESQ8rXm0x4qFJr UIz92HZDirHLM+QIbGTVk04Wc0bTRmGVSswkiqJEIRpKbqRXpiqM0i3nXzFLHdRGB44hJFbogMIr IFDibkXZjuONKfqxVlmKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KsbuDrdvqVtPql/YDQubBIxBJDMhaBwvqTvO8ZHUbRr2xVW8q6Xo9voUljp8wud PaSZVdJTKOLn7PPk3Y+OKrtN0CfT9SluTctdQyoFEk7cp+RdTQkAAqANvuptXFUV+jbx/jGoSqG+ IKKUFd6Yqxn9POdUW2GrWv1GvKS8N/ECIviVWWPieR5qFI5ACta9iq35o1SaxsibHXYPXqi8p7yG 3CvIwWJaukwo5rvTbsDiqZ6JHcXVlAkmtia/EYN3HDLHMFkFBIoZRHVVY0B4D5Yql0evxtqf1U61 ai3KCVZxfRF2hbZXEVPFlB325DxxVkNvZzExzpqLzxBhsCCrUahFQcVXvp13JI7rfyorMxCClAKn YYqx6bXLaPW7ewGuW5tpreed7g3cayq0DqpVYaHkDyJ5ctqHbFXeYtah0rSri8g1y2mmgX1DDcXk dshTkFJ9SktDvt8O52xVXmKTxIU80rayIQk4ikglX1HVSFq4/wAoU2FQcVQflzXjqi3RutZs4DDc S28K21/HdFxAaM0nwQ+m3Q8d9jXFVaXW7VNXhsRrsBilhknMxuow4ELcXpFuTQkb18fDFU7tbZ5O E8OqNcxK614MrKdxUVUnFVaTT7qWR5FvpY1ZjRFpQUNMVY5NrcaarHZrrdq0MiPKJTexrII4iFkb 0uJJ4k9jT3GKr9f1iLTdMuLq31u3nuIE9QQT3cdshQMAxMtJONAf5d+mKowXNqYS36fi9VSqMonQ qJWUFU5dd+Q7dO2KpX5b12XU452vdWs7Zo5pIYktdQju+Xomj8jwh4Efy77YqiJdbs01eKxGvW5j eGSd5DdxCRViPFqQ9SOXetOvhuqp+ZNZTTtKnubXXIJJo1SomvIbZEEzGNJGlcSqq8/FfHrShVRW nyRJZxtdeZllkdghYyw0ElAGjUpwDUb2riqlo2rx34uPW1u2jeKZ4o0gu47glYwpLPtHwPxVC7/D xbvQKqV1rsUerWllDrdrJBOkks0z3saSJHDszJFxYyfFQdQOu+26rvMWtjTNOluLLWbW5uYjGXhu r6O0jCOxHNpeM3EDiT9nscVTGO5tTCrvr8avUI6rMjKJNgUDHiT8Rp0+jFUDomsxahDLJNrltFSa SKEQXkdwGWEhWZjSMKedfh32oepoFWTWdrPbyH1Ll7gMNg/ah/txVF4q7FXnOpeaddvL2fTP0TFP Z2lw0clyyShkpy9KSNZF9OUhVqTy4g/diqBi89eZdNZraw8txQQH1LiYv60Sc5aspSiyKeTghhUF etNxiqfeUvO+r65ffVbvT/qnpqGnJjmVQwYgoskgUMQwr03UhuhFVWQ/4c0ozSXlvCtnfXRRrq8t wI5peKhQsjqOTCij7sVYNceQNciuBHGtxcI1JHlGpXZgA9QuYhbyTLDQlVqPTpQ+NcVWeYdJ0vSp lEzanb/WDHVI5LhFk5MIpGP1C4SpRKEcl+HryG5CqaaL+j4NMjuRaao0rzNK16kLetIrkAq0ivI7 qaDfl74ql+n+S9Sv0WCUXNuLJYkQzXd+scsYAqjQmQwuKp9koQNqAYqzyLQNDtbz6/bafbw3pHpm 5jiRZOLMpYcgK0biK+NBiqyTQLB7qfUbZFs9WuAIpdThjj+sNGj1EZZ1eq7UoRirDb3yVrUTLHDJ PcSsp4lL27SNU9QBlMYeKDdJWJXiA1OleOKqGvaNZaalp9Ze+t2ERSCJGMMcjxlSFkewlgL9v7wG vXFWtJ0izu7Nb62bV3FxIk8UkkLSOOCCPeeSR7ongKchNX6RiqpDotu9+rzfpIXEYcm1ZZLkFC5A l9K7muY1LLsW4V3p2GKtWflTVr2tsRdWqx8jE8lzewoUBQ8WSN1hIcuwKceJAPwjbFWZWvlTy9aX FrfpptqmqW0SQR3qxJ6wToVEgVWoanFV7eXNM+uXOpWkSWOr3fFLjVII4vrDpGwojO6tyHFAu/8A DFWIX/kzWkWOCF5p5N3Vo7y7jXj6q8kdQ8UBBV2JTiFah2rTFUJr2k2GlfUUun1C3Z09K3SLlHFI 8YDATSadJByFFArKDXbvtiremaNZXtkLuA6u4mlWeKZ4jJJ8MYi2uXke7rwBUMJwR9GKomHy8GnW eaPVfheQ+lJHJdIeRC8gl5NdRryjXeidz3xVZL5cd/ThH6XEShz6i/WkFeYIRoo7lImRgW5Lw4nw xVq48sRAf6PHqwU/VkaOKN7SogYjk5s5bUS0R/8AdgavHFV0WhWEAjtfU1M3glNxH6kfOY1Lb+rJ I12SFJXkJq4q1D5Yia7+tTxaqWrIGhkSW7jIJ4BhHeTXUSlox8XFB79MVaby05dVrq5Xg45j60qA 12X0EuVhKsJG5DhxPh0oqvn8uRLHxgi1Uo0UNvJGsb2pKxuwLlrOW05MEk2LVbbY4qozeWpreyP1 KLUri8SQzRvPGwkLb9bpmluix2Wvre+Kpv5f8mutzDc3itNaJ6q/Vrye6uSTvGJOF2ZKc1UHtXqd 61VZPpOiaPo0As9JsoLC1JeQwW0axJzbjVuKgCppiqPxV2KpRqEfmNm/3GCwRAxH+kpKxIG37BXF UlTUvM8nFk1DQeD0IVlnD0K9CDKCDy8R7UxVNNCu9UlMcd9daZdT7mU2HNdgvUIzyEfF74qibyPX mST6kLJX5H0zOsjCganxBSu9PfFWPR6t5sntYmtrjTXlaNHaRtO1BVIbeoj58lDDoC334qn+nXlz POscyR04ksVgni3A7eqoH0VxVc36WSEzSGySNV5O7BwAAKkkk7Yqlj+ZbdJTF9d093U0IjWWQV22 qnIdxiqV33m+/tZ1T9IaUvqyBIEa3uA4qduXKRK02rxFfbFUwHmhI4BJdXlgrKvKWT0rhU6VLfEN hsepxVFWWtLfQQz2l9pc8U/H0WRieRf7IA5VqfDriqZhb/0CClubnnQUDBOPGvzriqU6lc+ZLW5V fU09IpATGv1a6ncBAORYxtSm/U0xVSs9T13mzXn1NoyPgMVper32JZgRSmKp0DeyW8LRJB6jhmk5 q6ildqAgMPeuKtenrA34Wlfk+KqdxJqkKepKtrQmnwrK7EnwCgk4qlBvfNRkkKvYcD/cp9Qviw3P 2m5b7U6LiqnB5mvYrh7W+aBrqtY4obDUFPEVFaFHr07bYqmZ1C9HWKIf9G91/wA0YqvhvbuWQRK1 oszfZikWWN2AFaqjhWI+QxVETrqr8jaLaqOI4+qrn4itd+JG1TiqRvqHmVHeJtQ0JZ4nCTRukylK gN0Mta8WBGKo+wvruRoUuLrS5p2YBxbFqkE/sKWY/ZxVHSDUgXZVtVhUtQvzBCgndu2KpTP5ntIJ TFJe6eXVQ7BPUcBTXclAwHTFVCTzppccayyX+npEx4q7CUKWFdgSvXY4qoXXm1zMUtdR0pAqFnjl huXeoPX4SlF+jFUNb+d5frSGTUtInsmL1mhinWlPsqSztv8AEOgP0YqmX+NdOST0/wBIWCy05cKT BuIFa041pTFW5PPFhGnqSalYogPEu3rAV8Kke2KqsHm2K4nWC3vLSWd6cY0Wck13H7Ow9zirfmTR 9WvEpaajeQK8jcorcRL6amJ0qjfumPxMG+KQ79sVSfyt5JubRfq+rT3l5bGOUMk8sxSpeP0gtbi4 f4UTuaBiSKVpirK7bS4YboTrLO8hd2o7yFAGLmnEnjQcqD5Yqk/mPy9q+oykwX7C3cTK1vJHEVj5 hQDGTC7V+FjyJqK7bYqlvlPyJcafbQW2pyGa2jtyjRJJKWEpZG/vAscjhKEKXYkYqzgsGZaA7Gpq COx8cVYi2h6dNYXRtdDvNHvNSEkl29v6UMjTyghnn+rzhZWrvux+eKpbYflbp31+51OSe4S4vnU3 okRvVkVWRmVpFlckN6a9WNCNqUxVfq35S6Pqc1o091M0NhO9xYwyCaRYi55ELyk8aGoANRiqLn/L iykt5IxfXCy3Szx6hKDP+/Sc1KsokG1K161rU4qu8ufltoej2KadMF1DTkge3W0uIS8dJCGkPFzI o5kbgAYqyGDSbSz01NP0pP0ZaxGkC2saKIxSp4IyMm5r+zirBtQ/LrXLvWrfUJL0uYJZnVg3pgq0 3qp6kccKpKTQBhICKbYqzfQtKi06zhD83vfQhiupS0rh2iSlRz9602xVME+0P9n12/aGKoDWvMeg 6PA76pfwWigKCJZUiP7w8EoXZKcjsDXFWIzHy5cQWsNndXd16RV0M2p+ujqUYj95JPOpYh+VSCae xriqQ+WB5XKNPLerqFvb3kpIW9tJmThG0KRKtuIG2ReVSSSPEb4qyee98hRXccLon1ySMvBafXYB JIvWqIbkcunXFWLecrLyZqOm3dyW+o23pxFma9toGEsXNwR6pnV+aNxBFR4VpirI/J/+FrSOK0hh iujOytazCS2ugqLbIF/fKR9pEqNuhxVPfMs+o2umPc284jt0aATIEZpTWWMHgyywUqGod/pxV5v5 am8z3+qyQyancrPdzwojB0lWFo4XFwBV6/ZVa8g9abFe6r1XS7DUrS3iivLpLv09vVMZEpq9RV+V Om32cVQmreUtHu7bUZobGFNTvFkLXKoqySShDGnqN+0Bts22KvLJvyl81w6pPrc+qXHrJbmNruWa IOIgtGjeUychEFXerU64qitS8nT+atFsjamzvtLu5457aW1kb0HcQ8JDxM7qZIuEgqR9oUPgFVbz H5a8wXKy2ri6trmWdm9e0guJpEtzarDxWdWkVlYsylSSduvHbFUl8o+UdR0H1bFxfM1+JPQtBayC JJ3lhHrcGRUP7qP42Zfntiqav+VnmVtdTXxFxv0szbqiyJ8J+rfVwqu0jSAUYn7dO1OO2Kpf5u8n 33mC0sI7ZNQSJLW0+vW5srgRy3aF/WeRGiCllWX4SFp2G2Ksw/LvS9V06CHSrmW9kt7dZ5Q91bug Kxx2sNunOWOihQJOKow+4Yqy54hdX97aQ3VzFdQxpLy5n0R6zSKlFBBNDEajb5+CqVweVb2RBFq+ s3s+oS8vUbTp7i0hEfRW9NppWQ08H3PTFVNPLV3cWLzaPrOoR3kUzwxvqE808Ja3mMcrNFFLETy4 NT4h8sVTnT7SUpC73VzMyemXnD8YJWqORRCzvwJ6Vrt3PXFUBeTaq0uqSWoZ4rCRlbneNESfSWYh VW3loAJAB8WKom5hu7RBJcTzhCH/ALu4LGqRtJShiX+Q98VSy7s9SinnD+YzbBKkxPdQgx1+IV5W 9QOJHXtviqYJb3qBIGuZ5LkTC3djcUBpD63Ooh6kdguKqlxZ6lBbyTtNIUiVnel01aKKmn7jFU5t 0KQqhZn41HNzVjQ03OKqmKuxV2KuxVJPMulJqbWVvcaNa6xZpI00gu3UCGRF/duiNHJyY1I7UxVJ NQ8m39zdB7KKLSYT6RK2zA8Xidz6qrwReVJCPl3xVHJ5KiWISesf0kkokh1DgvqIix+kIlPPkEA3 oG64qhtF/Lqw01Vt2YT6esz3JsfRjSJpGBCllDFTwBHHauwxVTT8uzHqNrqEd6y3FlAba2lMK+ok Z2ADiQMKLyG23xHxxVfqX5c6ZdQC3hCwQelFHJG0EUitJDz4TFSQpceodyDiqe+X9HbSLWS39Rp1 ZwybBFRFjWNUReTUUBNsVTJYgFFa1oK0JHQUxVsRIOlRXc7n+uKu9Nffbfqe304qgV0OzVpGWa7H qyPKw+t3JAZ2LHiDIeK1OyrsOgAGKomCyihDBXlcOan1JZJPu5MaYq6SxtJIhFJErxL0jbdRT2O2 KqX6F0j/AJY4f+AGKtfoTSP+WOH/AIBcVb/Qukf8scP/AAAxV36F0j/ljh/4AYq4aNpIZWFpEGU1 VggBBHcHscVQU2o21rq08TSxx3EsERT1GCgKJZviapGw8O+Kou2vdKSiJeQySyMOTeohZ3Ow6H6A BiqXjVNNFtcaeLuFLp57hJU9RQ0avO/Jm3+E8TVa9cVTSO+sJiIre4ikYUIjjdWIUMBWgPQVGKpc LbSmuNRW8l9IzzfGn1iSIOpiRK8VdRvxp0xVU1a6t7q3CWkqXEgEp4xsGP8AvPIP2a92A+nFVK7u UZb+GG4s2W85cWe44laxLGaqEboU8cVWaldIkFxcxSqqGeQxzBgByFkVHFtqnmKd98VUb7UtEaIR 2GpJcSSrKjxLdGeqmB6fAXk/b49v14qmmqCyS0lu7xWaG0jmmYIWB4p8TUoVqaDFUilsrKyM2oT6 VqgiiWSaUvdxtGqgMzH0xdHYDoKYqnGow6dY2bvJFI8CMjmNHYuWNVFCWHj44ql95Bbtay+to2oR RKvN5EuYUYBfiNGW6r2xVKx5W0+7vIkhudY4xWsFyBHelSxuPVUGXm9CQI+g+Gu/hiqpb+XdPiup bKZ9Vll4QtEJLxhKTJ61aGOVYqUgJ3/pirX+FdOtJRDFb65K8wLIp1JpOCRsK7zXXcyd6n6AKKpn Z2drFIbc6VqCtIGlUzXKSdOIIB+svT7Q2xVMrBbcLdrFDJAyUSRJG5GvDkCCHkHR/HFUuE+kM0gj 0+9lWOSSIuglZS0TsjUPPf4kxVLJ9B0y9vLc2k+qRrdJPI0MN0ytG1vKkbgiVyB8UhDD22pirdp5 SsYtUjspJ9W4zwTzgz3rGhjki+yY5K/7upQ7YqncNpZSQRyx6dclHUMoMq1oelazYqrXMthFo6zS K7WYowVS3MqSePcN37nFUAZ9IUxiTT72JZJI4g8gkVQ0rhFqS/TkwGKoG70DTEuHtIo9WunDAj0L 3jxEfCRlBkniND6gB5VO+22KonS9K0dIJL1Ev5atGgt57l5CPWEbLxHqlP2xuT44qmH1SyV0DWU8 LSEhHaSoDBWffjK3ZPDFU4xV2KuxV2KuxVCW91M2oXNq0XGKGOOWOWteRleVWFKbcfTH34qteJYf qYlJu7oSFIriUIrDkCzn4FUD4FPQb7fPFVFry4udPlbk1pcNPLBbmILI59GVkUgOOPxrHXfYA9dq 4qrW9vIsjzywxxySemHdTykfiQAXYKg6dgPpxVvUtH0vU7Y22oWyXVuWDmKUcl5DoaHFXaXo2l6V ZrZabbJZ2iFmSCEcEBclmIUbbk1OKoTUPKPlnUr5b+/02C5vURY1uZEDSBFJZVDHegLEjFU19NfE /wDBH+uKpTpHk/yxo83raVpsFjKIjAHgXgREX9QoOP7PM8qeO+KqnmQcdA1MD/liuf8Ak2fniq/z L/yjmq/8wdx/yabFVDzTU6TOB1rFTv8A7sxVH6mK6bditP3Mm46/YOKpZoJ/05h/2rNP/wCJXGKu l/5Swbf7qtd/9jfYqmch/wByduP+KZv+JxYq6T/jp2+3+6Zt/wDZxYqo23+9Op/8ZF/5MJiqF0W9 ihtJo5I5wwvL3pBMRQ3cpBBVKEEb4qhNG5HU7RmBUsursoZSrcWv4ivwtQjanbFUynp/iOx8fqd3 /wAnbbFUv0TS5E0awSTTbGSRbaEPIXqWYRirE+ieuKqdxFLH5HtoSGllSCBCEDOzMOI2FOTGvtXF UbrN7HNawxxJPzN5ZdYJgKC7iJJJSgFO+KqsFP07L8pa/wDAWuKpb6Lz6B6Uao7fWNOLJIeKMF+q swJAbqop0xVXudOdb7TZVsrW2EU8jPJCxLkG1mWlBEndh3xVP8VdirsVdirsVSifUobLUZjJFPIZ IoxGIYZJASsktQWVSin4h9ojFW4NVtGvImnEq3EwMcCCCfgi7FuUhQLVqAkmg2oOhJVUdOvIop7p rlJVZJpkgpDKw9NpDIWUqpHxFvwGKo6LVrK5na2i9USpxZucM0a0LClHdFUn2BxVHYq7FXYq7FXY qhL+zubloxHc+jCA6zx+mknqBgKAl6gDx23xVJbHyDoluUkmhjuLlXEjSemEUt4CNTTjXoDX5nFU 51GwlvIPSEyxqzL6lYlkDIK1Xi9V3r1IOKpXY+S9Jgnlmngtrln2RGtYkRFHSiKKcvFv1Yqi73y9 aXcvOQqF9NIhEIoWQLEWK0EiPT7Z6YqvtNCtLZZFokqSKiNG8UYSkZYr8KKg/bOKtzeX9HnXjNYW ki7ijQIevzxVqDy7otuKQafaRD/It0X9WKouGzhhR0iRIkf9mNAgr0rQYqlK+WZHntp7q6Sd4uTT gW8SLLI1KkgVHH7Wxqd/teKqNvtGgvBGHIRYlZFRY42Xi/Go4uHH7A6Yqp6foFtY3KzwFQyxvEqr FDGoV2Vj/dIh6oO+Kqx0XTDKJjZ2xlUUV/RWo74qq3dpLNa+jFKsTFgS5QOOPL4gFY03WoFengcV QVnoEdvdyXDOkoPH0ozDGoQqqjkCN+XJSfhoN+m1cVV9Q0LStSp+kLK2u6Go9eFZNwCP2q9jiqst hbLbm3WGFbc7mERgIaf5PTtiqnBo+n25LW9tBC5qeccSq1WFCajxxVG4q7FXYq7FXYq//9k= proof:pdf uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:F87F1174072068118DBB92CA1052A9F9 xmp.iid:F87F1174072068118DBB92CA1052A9F9 converted from application/pdf to <unknown> saved xmp.iid:D47F11740720681191099C3B601C4548 2008-04-17T14:19:21+05:30 Adobe Illustrator CS4 / converted from application/pdf to <unknown> converted from application/pdf to <unknown> saved xmp.iid:FD7F11740720681197C1BF14D1759E83 2008-05-16T17:01:20-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F117407206811BC18AC99CBA78E83 2008-05-19T18:10:15-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:FB7F117407206811B628E3BF27C8C41B 2008-05-22T14:26:44-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:08C3BD25102DDD1181B594070CEB88D9 2008-05-28T16:51:46-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F77F11740720681192B0DFFC927805D7 2008-05-30T21:26:38-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F87F11740720681192B0DFFC927805D7 2008-05-30T21:27-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F97F1174072068119098B097FDA39BEF 2008-06-02T13:26:10-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F1174072068118DBB9A084B3843B2 2011-06-09T11:06:05-03:00 Adobe Illustrator CS4 / saved xmp.iid:F87F1174072068118DBB9A084B3843B2 2011-06-09T15:15:58-03:00 Adobe Illustrator CS4 / saved xmp.iid:7FF2245A3B2068118DBB9A084B3843B2 2011-06-09T17:21:50-03:00 Adobe Illustrator CS4 / saved xmp.iid:F87F1174072068118DBB92CA1052A9F9 2011-06-17T09:35:05-03:00 Adobe Illustrator CS4 / uuid:5a29c771-4184-7441-8b83-5454d69a07e4 xmp.did:7FF2245A3B2068118DBB9A084B3843B2 uuid:65E6390686CF11DBA6E2D887CEACB407 proof:pdf Web 1 False False 731.130859 430.000000 Pixels ArialMT Arial Regular Open Type Version 5.01.2x False Arial.ttf Cyan Magenta Yellow Black Default Swatch Group 0 White RGB PROCESS 255 255 255 Black RGB PROCESS 0 0 0 RGB Red RGB PROCESS 255 0 0 RGB Yellow RGB PROCESS 255 255 0 RGB Green RGB PROCESS 0 255 0 RGB Cyan RGB PROCESS 0 255 255 RGB Blue RGB PROCESS 0 0 255 RGB Magenta RGB PROCESS 255 0 255 R=193 G=39 B=45 RGB PROCESS 193 39 45 R=237 G=28 B=36 RGB PROCESS 237 28 36 R=241 G=90 B=36 RGB PROCESS 241 90 36 R=247 G=147 B=30 RGB PROCESS 247 147 30 R=251 G=176 B=59 RGB PROCESS 251 176 59 R=252 G=238 B=33 RGB PROCESS 252 238 33 R=217 G=224 B=33 RGB PROCESS 217 224 33 R=140 G=198 B=63 RGB PROCESS 140 198 63 R=57 G=181 B=74 RGB PROCESS 57 181 74 R=0 G=146 B=69 RGB PROCESS 0 146 69 R=0 G=104 B=55 RGB PROCESS 0 104 55 R=34 G=181 B=115 RGB PROCESS 34 181 115 R=0 G=169 B=157 RGB PROCESS 0 169 157 R=41 G=171 B=226 RGB PROCESS 41 171 226 R=0 G=113 B=188 RGB PROCESS 0 113 188 R=46 G=49 B=146 RGB PROCESS 46 49 146 R=27 G=20 B=100 RGB PROCESS 27 20 100 R=102 G=45 B=145 RGB PROCESS 102 45 145 R=147 G=39 B=143 RGB PROCESS 147 39 143 R=158 G=0 B=93 RGB PROCESS 158 0 93 R=212 G=20 B=90 RGB PROCESS 212 20 90 R=237 G=30 B=121 RGB PROCESS 237 30 121 R=199 G=178 B=153 RGB PROCESS 199 178 153 R=153 G=134 B=117 RGB PROCESS 153 134 117 R=115 G=99 B=87 RGB PROCESS 115 99 87 R=83 G=71 B=65 RGB PROCESS 83 71 65 R=198 G=156 B=109 RGB PROCESS 198 156 109 R=166 G=124 B=82 RGB PROCESS 166 124 82 R=140 G=98 B=57 RGB PROCESS 140 98 57 R=117 G=76 B=36 RGB PROCESS 117 76 36 R=96 G=56 B=19 RGB PROCESS 96 56 19 R=66 G=33 B=11 RGB PROCESS 66 33 11 Grays 1 R=0 G=0 B=0 RGB PROCESS 0 0 0 R=26 G=26 B=26 RGB PROCESS 26 26 26 R=51 G=51 B=51 RGB PROCESS 51 51 51 R=77 G=77 B=77 RGB PROCESS 77 77 77 R=102 G=102 B=102 RGB PROCESS 102 102 102 R=128 G=128 B=128 RGB PROCESS 128 128 128 R=153 G=153 B=153 RGB PROCESS 153 153 153 R=179 G=179 B=179 RGB PROCESS 179 179 179 R=204 G=204 B=204 RGB PROCESS 204 204 204 R=230 G=230 B=230 RGB PROCESS 230 230 230 R=242 G=242 B=242 RGB PROCESS 242 242 242 Web Color Group 1 R=63 G=169 B=245 RGB PROCESS 63 169 245 R=122 G=201 B=67 RGB PROCESS 122 201 67 R=255 G=147 B=30 RGB PROCESS 255 147 30 R=255 G=29 B=37 RGB PROCESS 255 29 37 R=255 G=123 B=172 RGB PROCESS 255 123 172 R=189 G=204 B=212 RGB PROCESS 189 204 212 Adobe PDF library 9.00 % &&end XMP packet marker&& [{ai_metadata_stream_123} <> /PUT AI11_PDFMark5 [/Document 1 dict begin /Metadata {ai_metadata_stream_123} def currentdict end /BDC AI11_PDFMark5 %ADOEndClientInjection: PageSetup End "AI11EPS" %%EndPageSetup 1 -1 scale 0 -260 translate pgsv [1 0 0 1 0 0 ]ct gsave np gsave 0 0 mo 0 260 li 443.732 260 li 443.732 0 li cp clp [1 0 0 1 0 0 ]ct 427.045 245.991 mo 14.5664 245.991 li 14.5664 45.4233 li 427.045 45.4233 li 427.045 245.991 li cp false sop /0 [/DeviceCMYK] /CSA add_res 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 1 lw 0 lc 0 lj 4 ml [] 0 dsh true sadj 427.045 245.991 mo 14.5664 245.991 li 14.5664 45.4233 li 427.045 45.4233 li 427.045 245.991 li cp .193668 .150057 .155337 3.0518e-05 cmyk @ 427.041 45.7593 mo 14.5664 45.7593 li 14.5664 16.6147 li 427.041 16.6147 li 427.041 45.7593 li cp f 427.041 45.7593 mo 14.5664 45.7593 li 14.5664 16.6147 li 427.041 16.6147 li 427.041 45.7593 li cp @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT Initial %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. 12 dict dup begin /FontType 1 def /FontName /ArialMT def /FontInfo 5 dict dup begin /ItalicAngle 0 def /FSType 8 def end def /PaintType 0 def /FontMatrix [0.001 0 0 0.001 0 0] def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 32 /space put dup 65 /A put dup 67 /C put dup 68 /D put dup 69 /E put dup 73 /I put dup 76 /L put dup 78 /N put dup 79 /O put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 95 /underscore put def /FontBBox {-665 -325 2000 1006} def end systemdict begin dup /Private 7 dict dup begin /|- {def} def /| {put} def /BlueValues [0 0] def /password 5839 def /MinFeature {16 16} def /OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup /strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def /Subrs 5 array dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> | dup 1 <1C60D8A8C9C3D06D9E> | dup 2 <1C60D8A8C9C202D79A> | dup 3 <1C60D8A849> | dup 4 <1C60D8A8CC3674F41144B13B77> | def put dup /CharStrings 15 dict dup begin /.notdef <1C60D8A8C9B6E3FA5101D97F0BCF44F7161DEB1E2A84766DD477E7 C8A936AA182F5809A9> |- /space <1C60D8A8C9B854D00D> |- /A <1C60D8A8C9B64EDFED26B9E21A4F64848088903AC9891CF791BDBC4AB29A CC8B3E8D13924A7DDE35F09AC5F4A8229C87124C732743268600EF8D4582208B D16D82> |- /C <1C60D8A8C9B6079F6D1C46AC2732DFBDC9143C94793529C1940296210AAD 6EE09C39CFC4DAB7C5F3BA33C9E10838E0BC6FC9318A4E57F309EE20438B434C 69AE73A499211EBA75E22A57C1581D93869428818DC700A28C027571D7047CDF A8B017AACDE96DE4B2579EFD2C826A30F6EBDDC52701A22CDD669ADC60B66F32 261A1F55EDEF9802FD4511E0EF130772EDFD708A4113A1EDB1E717E0FA7D3148 51DE59> |- /D <1C60D8A8C9B6079F6249419CF69509002AC79A016C34D114AD8C7A9DD247 4EBE314027FB7E1F48C795DC0A22C11652551956D26D402DBF3954D5C55EEDC4 D2E02D32263ABBF714C52111C5848A3EB8C8B527B0FF3362F75E292ACAF79767 633E5CF98F1E087651E36E4721AF4CBDAC7E4D68359E9108BDBBEA294A048906 8CBF65F37E7CD4C7284AEAF641D010DF> |- /E <1C60D8A8C9B64EDFFB83C6241DB110BEE5AB2FAD9D94B39ED5E81E7411B6 6E9361DDE78FC667AB91EF9824> |- /I <1C60D8A8C9B854D0F463D3892D665712D6B7D6A81E> |- /L <1C60D8A8C9B7EF3224EC6E192BD0FEC2445DA87B99CF0E03A72A> |- /N <1C60D8A8C9B6079F629170873C67115641D0B6890161EC48F71E8D2106F3 AC927984C1E464F121F968> |- /O <1C60D8A8C9B6FF86E621E1FAD9CC02A23AF5AAF7451327A9277DAE8170AA C8E603A02E3EEFF561DDADE9FD6F6F16B77EE709DD797791A73F1C532C58482F 9C51E1EAE7EA6E4D820E6AA1026E7BE345B1C97C5D9EBBEF4840C4188F96B538 0E7625249BBAD172254404F6F1CB17CABA1F131B17AAAB56C5D3B94E3AC2C2E9 F0A0D079C435D0249DF6C47E18FCF00E7FFE3C519BB35DF797EF47286BDCA762 289BE1> |- /R <1C60D8A8C9B6079F62E89B521DCDBE3DC5497B8DD99916239C0DFA5ED4F6 32B33575F4260343AF5DB7D477D12055F49C5E99C0AC176EAD42723223937F2B A15ECAD7751CB6A136B700EE485E38E7CDB87D9465C90BB8E29B04FDDA42609F BC3833B9FB5105619F4CC434003085F449D9FD5022725306B331FB97B31D2952 57B180DE1FD5465D256CCA19301DA97326882845130A5257BF61307ABA64C3F0 B222> |- /S <1C60D8A8C9B64EDFE3D078722A65C31955939D63AA5C8A4945719B5E558E 3B73A676CC12D1E18D93A8DC67C074D6E352D426981DE76F8EC4CFE5DAE051BE 47753A7C234C4B8D7D9F50292A61882B5500CC701F878FE626CDC6D4C322BB39 1537921D673F5AEE3EC19E36E7EFEC0F06A0EA4EAAB6BBA94DDCD11A6A564B13 B510F8C915848233B82F046D854DCD4F1639F149305DC73D3C68DF8AEB47A96A 30E55CF8BAD07FA2825BCE0D675F1CC2EBE61B07B772130E23119250F1EBF8FE 12A2098D9F09F3F21BDC41666CA4A0BB70D5F0A750B44BB93A5FBFDD2BF8DE45 0B277265536F77D5BD6F44FB72FF2E708C60107653AE44BFFB26AFF8> |- /T <1C60D8A8C9B7D8BE16D2C1CA7ED2E06F707C0E9530AE37D06FF7501A595D 3927> |- /U <1C60D8A8C9B6079F6D3F1E4545C3E1CC9D8EF54571065F01BE5A50957BD2 D8AD04D30C23B37CA98B969ECB5CA0D9A7C563636CB33377BB3DEB53D45DD0F3 E333CD69EA3B53D63C91B303CFDF29F59C20776D4DC576C9C080B76AB60A2167 3EFC1F645BF33D33929C60> |- /underscore <1C60D8A8C9B7EF3224BB0E94C1F3EA8D5F87D58A9CCE> |- end put end dup /FontName get exch definefont pop end %ADOEndSubsetFont /HMQBUK+ArialMT /ArialMT findfont ct_VMDictPut /HMQBUK+ArialMT*1 [32{/.notdef}rp /space 32{/.notdef}rp /A /.notdef /C /D /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U 9{/.notdef}rp /underscore 160{/.notdef}rp] HMQBUK+ArialMT nf HMQBUK+ArialMT*1 [16 0 0 -16 0 0 ]msf 77.3701 38.7246 mo (EINA_INLIST)sh 173.112 38.7246 mo ( NODE )sh 227.347 38.7246 mo (AND STRUCTURE)sh 31.2578 161.092 mo 24.4941 163.976 li 31.2578 166.858 li 31.2578 161.092 li cp .75021 .679683 .670222 .90164 cmyk f 239.28 217.554 mo 77.3271 217.554 li 77.3271 128.858 li 239.28 128.858 li 239.28 217.554 li cp .123415 .0936904 .09897 3.0518e-05 cmyk f .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUK+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /colon <1C60D8A8C9B854D0F461D1A979903F917C33CF6EDB0A437B4DDC7150 150B60E1> |- /a <1C60D8A8C9B7EF32244AC11AA6BAAA29EE8C78E0E7206F4A2776A2D1EA7D C8D9A28C62ADE3B609CF5E2EE23C64D0B75055BD249ADFEC7B4224D040D883CA 6747571955349CF8AD17E94E6FE5D0259F4D55623D4DC5C3CB4AC64A7A87DBBA 48B7420D7990F3C261DB9838C5B90BF72B82C8238A1A58FE8E6137AAFE2405FD 710F7ADB95B4F576668A6DB104942C88ED8D01E4E58188F5E32A24B5B964D5CE C10C08F76C0F472E84A0FB6EB5E37AAEE233DE54C212B0A012D3E20F864B2D53 463E221F81B784B6F7BE81FBFCAE6785C2430454DD81C436E0A516BF8C8307B2 879FF86378629C5EA7E586D83C83550D2E732930F7FE3BAD07B86C81E024D177 B5D88A> |- /d <1C60D8A8C9B7EF322407C6655A1B3652DB8522EB511BE6B0855A72D96214 58876CAD1FA22A00635F436A34E23EAFC09C394044ECC1389CD99E4AF1C1F6DD 52305C78619784840FC37A805B0805EF290BC9E049CF068290816CB7E74DB612 941355BCE71CBDD11DD0F9CA29531036ED13EFB9CAB613E9F630FBBC9408EF13 CE4683D92968530F64760C3DF85C7C7EA06EBA8BF859> |- /e <1C60D8A8C9B7EF322472FA01213C7AD90A23B536C2309DD40D370E2449B0 D0FEF85A6BE8067F30686F143E75903EB6FA56935472EF47CE3F33433C2F0C8B 6FA51573AE54B2C516F6F024F8775AD6639544E339FC2A328548BCBFD58B0EEA 03B7DC3AB069F44477958BFBFAAC7196D411DF9BE0B78A86C4BC33EC5D7C3729 5284C077711C162623860AACA404F650F8D516970257> |- /f <1C60D8A8C9B854D0F47057B2F13303E258FCAEE9E8BBA6E28AE872907C56 63BFD2A0F535ED0EB011F2C2A875E053FAF73E8AA16B1F99510A6812F90D61CF 3F1DA5EF558899A9AE12AAF6AF4568E0F6003B0A2FF6F33293> |- /h <1C60D8A8C9B7EF322B3BE19FB964E037672C8A279BC86F7B9BF0C8203E13 1450D56E388301CEAE43162551FBE05CABF94DC3B5DDFBB4DA55D11470EBD41A C970CEE2D2EFA88D51157B4EF5536CB673423CDDB06FA774D27105AD2B1AC2DF A8> |- /i <1C60D8A8C9B88C087228DFC7C7ABCC71B868F57EDB285655227000619B17 1C8A80AB> |- /l <1C60D8A8C9B88C08722AD20D19A90F9064193C8D82> |- /m <1C60D8A8C9B6B41CBB5F87BE20C872DF59FABCB36542419CBFA3D5519AD5 BA8076F32ECFD724B055F72CAC37BC47239ACC8B0FB48B8ACFF099B97085BD99 C333951D0338D27FF6AB9B3F3C69320476BA0CD4F9573B79AD358A91B0176AFB 9AEF169308783E9C6287F18E6E658AF5AA6C9688B500806DA169A1B21069D55C 54A2FF607A6A38976171B08665C3ACCAA84DFB970D01180645CE5CBC48DFE37B> |- /n <1C60D8A8C9B7EF322B3BE19FB964E04D2DB06D4930CA5D8F41D2EF3A285C 0BD536CD2C57668EB9E30311BF9A2872DFB44F2BF2A4683B5D66FA01BB1CCDAD E9C8A9EE2CB010715D3D6DFF0E843CF77C87A07D1DBD0482675E3CA1DAA2A520 3A8015DD09B7CE> |- /o <1C60D8A8C9B7EF32334FFE7884F6C3B903D000D9FD76C2EAE8EDCCA90A98 7875625CA0393015EF6761BE1C3B6D9E9DA4BABE1DD313B783BCBF8F620C846C 7F6361946173FB7A4A6BF94EAA0CB4947DD1974AF371F3C211E584576DE9AD79 F9DA988E9E531810E3876F3029BB1D2ED366525F30E48DD7CE3C9B66C5CC099F 518C54BB58C51D6FB6D0C8> |- /p <1C60D8A8C9B7EF322B3B0CFC8FED720BC90E20B208D27DC4B8F11F10B964 70F8B4F5FABEC7F7010781F5077B417FE44279776F2304ACD6E0EA12F436330D C4B79C907B9D28468D10FF9256A7D2CA504E4498D719ACD86FCA89B33C61F556 CF1168C3F262A781155D5EBF0C47D71C584AB93037B47B18D39FE408A49672C1 E63F9E8368D19E113FC95C59A9FA4650E46F6399F2FF256844E27568BA34B9> |- /r <1C60D8A8C9B81F2C3A9694980E415F1DEF5C498473095A24D1BE11285789 4FEA85DB28AD762FB8D2F4CAC5BF8B9C18D8A2DFCF155E0751AF58898A6619AD D420F549AB7C795751D32E8EE6> |- /s <1C60D8A8C9B7A73DA057E90C9BFBE0FE301E99CB771FA2F05368A6342B5F 80456D91458EA2F3CAD55CDF89BFF34EEB39D7DD325B057E2BF0E9B878C214E2 BD1BD70DCABE10E0DC8EBCF7B100B55EBE94FB0F17084E21EBD279B324AEABD9 6538911D053BE9D7ECBF43F934B1033C9E405BBE31E7EDB643609C8D779046E1 B250C3CF05E6FA4787649137D90F47F85972A6603BA900DD7CB710E02662DB32 87CB26D7B7AE794611498865FC85A28083D2F6C2DEC302D47619A4A577C5B843 5558FCFE71A1BB6783AFD5F58B6D2C03593B3F2297A66A7E6D13C1E321C57F41 72D53C8FCAF4D28F2B78D3A4BF03> |- /t <1C60D8A8C9B854D0F45CF665C7276F8075B54A4ECD6470F395A458CA2D06 5152075036EEECA213894C1EA0DACFBD370590F4B831924E5BDA5281442349CF AD2545E0750C3004A129C25B1EAA8DEF5DA8BF1998E80AE266F591E64CB5127F 5C42C88FB43C> |- /v <1C60D8A8C9B7A73DB99D94C9412F55B03E92C174A4755E69F97C27D9162B 37724F74F272B140D258652D102C2EAC46833C73F9> |- /x <1C60D8A8C9B7A73DB920A1A3B81DE7234ACAA5546B4C65820CF3C50E1629 C5A6423BAA34A2ECA8C7FE4B71726AC6704CC23AF1725AFB30D2892FC1BDDAFE AD7BE7BD65F1051699CCF4B0> |- /y <1C60D8A8C9B7A73DB92EFAEC912AA9CB61EA2C87B96577B4D13A11140AAA 18C6E226D96ACA3DE3B427B0A298EF106E8BC0FCA1DC8D81AF2F08A42A0F5836 B6230FDF576E37CE129EFF9730F23EC10CF5ACA4D4CA70309E71B89A944CA734 8AEBF55FF5ADA9F61B4BA14C9A2301A8C53EBFBE665E1DC22E> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUK+ArialMT /Encoding get dup 58 /colon put dup 97 /a put dup 100 /d put dup 101 /e put dup 102 /f put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 118 /v put dup 120 /x put dup 121 /y put pop %ADOEndSubsetFont /HMQBUK+ArialMT*1 [32{/.notdef}rp /space 25{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /D /E 3{/.notdef}rp /I 2{/.notdef}rp /L /.notdef /N /O 2{/.notdef}rp /R /S /T /U 9{/.notdef}rp /underscore /.notdef /a 2{/.notdef}rp /d /e /f /.notdef /h /i 2{/.notdef}rp /l /m /n /o /p /.notdef /r /s /t /.notdef /v /.notdef /x /y 134{/.notdef}rp] HMQBUK+ArialMT nf HMQBUK+ArialMT*1 [16 0 0 -16 0 0 ]msf 33.4258 180.229 mo (prev)sh 164.813 100.896 mo (last: only valid in the first element)sh 266.47 138.62 mo (next)sh 300.318 140.932 mo 307.082 143.815 li 300.318 146.698 li 300.318 140.932 li cp .75021 .679683 .670222 .90164 cmyk f 235.527 172.073 mo 81.0801 172.073 li 81.0801 132.698 li 235.527 132.698 li 235.527 172.073 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f .25 lw 235.527 172.073 mo 81.0801 172.073 li 81.0801 132.698 li 235.527 132.698 li 235.527 172.073 li cp .75021 .679683 .670222 .90164 cmyk @ 132.563 132.698 mo 132.563 172.073 li @ 184.045 132.698 mo 184.045 172.073 li @ .69482 .6318 .621515 .583612 cmyk HMQBUK+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 127.203 158.424 mo (__inlist)sh 235.527 214.429 mo 81.0801 214.429 li 81.0801 175.054 li 235.527 175.054 li 235.527 214.429 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 235.527 214.429 mo 81.0801 214.429 li 81.0801 175.054 li 235.527 175.054 li 235.527 214.429 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk HMQBUK+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 139.455 201.762 mo (dat)sh 168.126 201.762 mo (a)sh .5 lw 89.5879 163.978 mo 30.7305 163.978 li .75021 .679683 .670222 .90164 cmyk @ 162.187 82.5117 mo 159.304 75.748 li 156.421 82.5117 li 162.187 82.5117 li cp f 159.302 140.842 mo 159.302 81.9844 li @ 226.397 143.817 mo 300.846 143.817 li @ .597284 .512352 .507713 .201328 cmyk HMQBUK+ArialMT*1 [16 0 0 -16 0 0 ]msf 342.469 160.658 mo (Eina_Inlist)sh 332.169 136.608 mo 338.732 136.608 li 338.732 176.173 li 332.169 176.173 li .75021 .679683 .670222 .90164 cmyk @ %ADOBeginClientInjection: EndPageContent "AI11EPS" userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse %ADOEndClientInjection: EndPageContent "AI11EPS" grestore grestore pgrs %%PageTrailer %ADOBeginClientInjection: PageTrailer Start "AI11EPS" [/EMC AI11_PDFMark5 [/NamespacePop AI11_PDFMark5 %ADOEndClientInjection: PageTrailer Start "AI11EPS" [ [/CSA [/0 ]] ] del_res /HMQBUK+ArialMT*1 uf /HMQBUK+ArialMT uf /ArialMT uf Adobe_AGM_Image/pt gx Adobe_CoolType_Core/pt get exec Adobe_AGM_Core/pt gx currentdict Adobe_AGM_Utils eq {end} if %%Trailer Adobe_AGM_Image/dt get exec Adobe_CoolType_Core/dt get exec Adobe_AGM_Core/dt get exec %%EOF %AI9_PrintingDataEnd userdict /AI9_read_buffer 256 string put userdict begin /ai9_skip_data { mark { currentfile AI9_read_buffer { readline } stopped { } { not { exit } if (%AI9_PrivateDataEnd) eq { exit } if } ifelse } loop cleartomark } def end userdict /ai9_skip_data get exec %AI9_PrivateDataBegin %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 11.0 %%AI8_CreatorVersion: 14.0.0 %%For: (Marina Proni) () %%Title: (diagramas_01-05.eps) %%CreationDate: 6/17/11 9:35 AM %%Canvassize: 16383 %AI9_DataStream %Gb"-6CNCfDD(,/el9Fcr,,C#8ZLV.`>/s+&6QUPrDp)$l,[4TqNg[i2,^PiqBkNg"R=X\q=A)`Eu;p\lc?j;h>:9_DuO_U&ne'cW:@L7IX#l0MMN\eY$^!-F[paEs-"E"roVH9 %\*nk+*aZNMo)8,q*p$IQp\sU6btkfeh?p^bh/?WWhZ*T6n#=J2kul#PQHjQ)!N(%k;?AO\Y6fXY"4sa(s,7_U+:?(N_6j4X(u[Dl %?N0Hbrg*XTGW(P8=laMY]R8*eA;Y"Us$7khTABNAs6$Q%W8G;#]pGmWptb&84!'d`?[iHU4l!f^I(7(^!07!1*k:DTR.&SC&,\Nd %R=57A^OJEEdu`;&^V#&@GP`.p]t-@Bp#:`c2h/OFk*drH04*MLJ`",RJAlR/_o3p@r6&0FDCuDXcelLL^%f3`042E&^%dRF)_V+t %Dqo;q)o?b!%.OOhjSN#fs)rD2g[P)!K`&A)^SNlEMd(Z'f"HBFYJ+Q>0=f>#fB/p;\L7$e`<3Sti3j0!m=Vfpi3'`UVXM([qqcG) %G].G+h#-ZZm@0"Md)"JkMs!@oMmr.mhn6g']Y/`RI!>+YpTIoZ^:SWB@i]O5Z+%nl]ZrO*Y0]SEK#]mG"ulLt+!rEi5)OR"Q,j2g,l"rVcmj2op[ZcQR0M[/=* %q\RVUMq^>iM\m=&9M"guN0F7ki=(,(o$8tO6&]JHo7+->^414A1O=h\uSc.g8 %mB(MmrW,aNrV5m]/[3<8Z#_IBE'NfY1Ci!H"-_kK%0)T*f3_[U?ZDjuE22;MHog]QE/Qr"Ma)GCJ)F\I^mTNGp>q!TRj[4`k4otW %GEDdQm,g;[#[YrlU5+XKhr"HQoB-#-X./kP?l_Gdhu<5do,Dpmq#,c^B_`b-rVeBb,/68;48:+?.jUu%pWjpXEVSYKGHtZ3`r/[L %$G+SknZMBYs,RbBbgY1iIfJR/mI,ONI67@*W'Qa;=d[V@OPoh>hVYttJ(0CCpYWk$Gk[D+=?(,3!-7W'"t(&`0u/6hlO2;<48AH+ %Qf!:B!WBd.4o=73RthgKT>TrD#oMQn*!>hS]D0Y,m12-g6YPQ_(-AZ6fZ^7OS(I/H^I^*4HuX<+$IkO^Z7m[XXT*?gs244Am.]0- %'sR%Khu7`lVh\@2?1?a0OV]A#G/qDdU25?iBA]L\J!%FoVEXnFPIoLHjSrH#Ut+iTrLQqVNF2IW>(&!VE"u %IK/lomJ5#Mf>%)',#F3cDr-ur*+!78Z^7nir:U?+ElP8rtqhLY"YPZ_-\n]tZ`-*W-SHZ@[Q\*!_)t%u=PB3rM"TM#RX'ig@^o:P#F(dl[(2=Q:+Yf]"OOj(5lTk7FiGQpQB/.A`P,WbG(HC2'%.kqZP\F%Fp0O-!jH3Ti0Y %$I=t"h"!)do4>YYLO>YrTqe="P"I@'eD^GT_/0,ZMk>V"ahu[oq0sXlrs@":1h!ubT1gF,ZcH)4cUtRF5eW#'RcpZ;W!Rq`oG8/V %s$uYFT6kgcJCoYI$3i;X@t.G@5Q&cFI=6OR^:M%khI#`S)a*`bFBu'X&0kK$lYo!.Xq-<*e`$)'5O8mI0H[/Z4d8;tUdI6I^^RDR %*NlQJ0!FtM]A]bqbu`@o]dd)$80>#:FQ!#dE-ZSOH+C]F?+.rPEk8?=jYC2?bBOmWa8P]1YeSn!me?V7^?t+^['0A4chk)1"0fYP %]A=QO=1cZ3I^e(>h7T5#F]Wa3QZd?b@,0?j=4c%\*$!-\Ntaht1nk(M %!bm58-q"ZC#uUrkK$S,[62JBH!tYd\"GDB)&ZoZ>(K(ZUL/c?E0\cU;TD2ZnT4&*?)L]c7h`epii,8G-@.N!s^>$DR0pN*l7*c9; %K*S9Ym-+P2_!qLU@9tFgI16olHqj6DGT$ONlsMg<_&f1:2,:p:>`)#1sPMHG]qPb!ql_J!u'T2R_oO8APRA#[i$$"hTqNB6TEoRNE00i/[j.oF?oT*)pkgs[VPaE]T$u)$uuem&-NloO=PU,Z/f=O],$OFs,HRsLcbG^dK?3Qrlk"Y %VPahF.oBJNP*cp\3Q%K91&-)cJ+)@b99Gs8,Y>2V5p)=[+BLouY8_p8%e'Q+7hDAJA1U@+$3$Gdei&]#-unu,EDbj>5bq[qQU']= %j@pbB$V9+]Z?Lacg>En1j[4,VHGOn4g?jEB84T2FMJN=C"UPZG`o2ldDIEaP?nO'?7X!DuAnW)jZ78ONL/28k"%^FI>a7"XQS?l2 %-NN08o3[%ZO<5)D/:\_R`cVYoEs_cNK3=^qX_KEin5om$Ma5u.q!\:]GR;$nK.bEe[hX(@$mU`c"XD*K"0C*IfL'ht&2S^-joSa\ %!bqoNn19oF:",5^*kKeIOA']*.>X.a-gS`6+IknGsqnNa?`3V4j:G#:K %^V\1O%R9jYb?j&?Ks)g7Hjq*o@f[`TNaeq!(`;#OY^e*C_7+]CeV;_Ro@-)f9BEgOdee)h[+*Qn!]kX;BV=$!72YVQ(.;7j,%YT> %5QdH2+q3WW`psuq?G2OM_[-4q?^W[O>4-Afq>06mmFf+,Z[_`^1.L&hGfjKOH[N!^XR+KFRXj#rZbXaC/]dD>$4u^lEMi9T$aoC'U11BIj.-#^7"pn#&.lYL %K:-:93uQNoBbUeW:c,[IMi>Ek[Lqc7W8!Jb@,W)=iYYM$^qqAt0;BG#G'Z!W4>.Zh %m&J^+X+HiVJN8CJ7913TRPU`mZGm`;0s?FDY)%GuU-!u#82#J>La>?kO96g5GeT:)49IC]JVdo'-$`2XtB7,gaVB1J\EB1%ioc@!]/a-g'8.(1/;uL%XS$Zi*ERh%B+KrC8@sdct+%fq'tG[ST0KDYiAm4p>AV5F7tB[I9")8K:.X %ih'fD]?2YMYdYX`3B-g>A6++rt2e=P2#12iHc[^d$Ib2,`:b!0"4WkCnlgZlq#2hAq-WmJ<.s_) %fBEtK@I**k4i6^I8+p/1L$[(SW@lLJmZ8P$OFoMUfNGX,r5YV)O5`Lob.1TtX6da2'+__nUJG$7 %o;a*BWk.b!/cAWRg.Eu3>M0JJY*reF@=K#4Khm'R0K%E\L_^8id<_"Qd(g6&6lP94S/l9Hh00o&dRVcG(`K0oL#'664NQ>oQSHDTVB`'F:@>DfhPT&U9S=e+i7'U6da%fKdog+IKTkcf5Boa=R)9]0bj_XM*%`Hl5f_NZ, %\L@Uok9b>jMDOtKS?_@>SQNWJS:\FSYBSupS]N`n8^g*%Ca.+[OHk&BDV?W#JGhai>5$RnUqBb!g7mI_ZP#t:$`XSN@%p61%*j7B %9VdlaA&Wh8d'7^n$\aJ?He'sb[sDsCS]TB<'F%^h><6n",SQl'GcnaK>"Rer1D"]GQ9%L(BgEF[#SZ5@,hSSP!li;([R`,'KIdZs %*#&GfJWFWa8/&u^r2=e7^L=Q03h[[fgI)gS"<.S0^q&m?Wn8G&F7QA7"$?5g=$/F>2t%Cd0m %*RH8Q7*>*8oAn?,b*:n=nl-gBMeo9dir]PKDj`>MY7o-bhXD8MCLFjH`gp_uGIh86k31+!D`H>$LQHga_G9h5_76P38#5^,!XhLs:ZDuV2G6@030_;e5W6.0Lp;)V:WiikJ<)[.: %g4WRbh6VXNEUDi?$UXj]aq,5,dTZ`e(qX$k7IV7=>\JI?\+SSt.2*Nsb:%Z4_Wp8:4fU8od9739hZAD<\h %$ce$7D\+4c+5$[;PR%*XU&Sb\b^>:>F>K+o'3;@HWZ]chM%AN:m!j2ZZ$F:U1cj>j]Dl&NrZhu\8SifdmqZG#9WVNZXnD<%(n."3 %O1Er(3SKe%2XsA,].FK;j/1DWV:eeB=B(-aNm=ZL)!fUg(ig<1jM3^4Kuu=;N_XZk"S\@4"1%7Iq\6!UISF0BbJO<4:+ko(]5 %:iK2EiL#:Znj$)N4[ptSeSh7tUF+E1-SeYnbJb\VI@re?@TmDFk*0MBI<4J9F$<9f[%6tsYK.6jiCpoFAAJ]j`l.1;=50QUD,D;* %88iQ6h>ah(iZUOKF,*A/!>nQPJlsDFqs%)ItqVXWZhRZ9=j6-=0G?ftWdK4*4<'Ld%1k7R>79$C/1Q8T-@a %7B)/@&tX_I:?*)\A*co@3^H;V6fC)ZduT/RCE)Ju`Oq[_V0:B?O]Bru.C#["^?Wj-LX^dE/7^.<&o4>0dU?QRG=-ZhF%B$iDG4hZ %J64pd):V!i>!@0!>>!-d]sk?`d*pfa';a2:2j5Y*iCZZp"hKa_d=P7pg\DRI,1ebZ/@3]0SrDk>c0:YS(/4483mM35.Na[ZCX58YS)Lun2I"+P1I02J"[`ZNF. %V+XODS+7cgWdD$p@d6`)Eg=n.KdAL%^lC!Un4.-\HW-4>U2KUe0fp@8=(@`NT<,#sUp4';iHc;j2us5gF:Z5mD!gZ8ibdZd@$cDT %"kX#3AdRYg,T)h;RM_CmT,sn!GQMt8/0[s^1hZXcoS?%X1m'"[,3GAh5-k[C3#tTud$R:q&Oto5Z8!(&+9Fs(&lSRCb%5B+5Z;&C %,(;C'7LJ^"krchqpTC%e(WQOWF,YofKW1JS`\XKk@)thJ@B,$EKOpA[a2W[+B/Q8.?iUuDo_#_m:NU>70-c7&$PtT"Cc=l&gB]Oq %Xi@]sc>eIt9,YX?>h;`+P'ZnGN03FO$)%E1!&8LV'u-luE_m;us15uW``/f=.2l>;pqme=VS(duBn<%Oc2fdlDM@5)K2.6pF+T(: %]tD+VoIc%7>!mVSQQ8S1.`CjFLrY]%/pe36Qj7$e%2S'0qbWf8S_#Mj/"N4RL3Xc/?-ZJr5H\OTHs.N-q]km2k4mm$nZ>6oYfY#3 %jGe1;bLJ9o+4HlXVNmWB*DL:JX0\dn_eHlA-95a-aZs0Votj3@>U$>L,,RmGI;Tf.?_>PJo2):#G?_0rG7F6nRG8q&O %EK%0ENu8pUN$$-&l1m'W^^_I;6#8;iHH]5]$"D^D>rYJ)cH;,&Qjpfjd.b1/\\J[CXUGSU-/%1nd=@3lkH8'1dU_._@l5#VqLe<; %E."Lu)9Q/`eG4C/@6;MBndHI+nS7lI3\0QDRZt%-QOjNB0fU?8)56q\N\SDUp`<"j)NHMgg69#=jfQ4Aap9(tKkPHge]%'#kOnM" %*O7#,p_]UJ&F9*3AW#OmGe=u"RGqs8XuNL,GiDT?.#pGOM`=0D*4IIZ7X4(!4^PssnbZ.o[)i*uK[UB#K\Lh)><9]!ShUm#aIa>! %f;-PYLLGtDbAfo[a5^E_$`m5O%^P7T0P7$gXc^d7")ef4],F.s!KWpuCRWuXS:jY>7..,\gjs@E81pu5Sh'G:Ttb=Dk.qUt"5%6' %4G/*^7daPE/NAhB.cD71+b,"5_(mW>VJ;L#:W<3o7(e593Lhi6&'`;Vj(W`[MIA>oda!i-IVeA6G;OH_-gpc:SP@O-ce'+qV!NJ@ %_N(.(mce8'*aH'pHmIR[p5!M.Wrbk?,uN9RilEUR2of6[!6^4ORQ71S8Q'3c;:n[GnAGZ0XRO.8)cgoqVN2Hgj&.;[7%_eQ:GR5[ %4V-pQo@H/^:ZpJfn)&-4],6(kbOi(O+'l8/R!a6Bjnace_1_YR/4T07!gg>SmV0s*`:QieguSRQqluSI;T?d0j1F>sa)<8Zj3X-I3"h'?U+ljW/&mr$C_7f>KkJ,ft+6:6/F@;Y?Uje5A-D?Z=`P2& %@G)^tGrX5CPLahV,]9ZhS-Ig$WA8HWWlb=oX"k[.,5K[PM=^bu4R/N;f<_LK8j8^U?b?0#4%+*n;-`Hld:E>=+/0g8@INhZ %lp*"JOZ$uu$W=.rasG+`Eo[iQBR?io,.A#BZQq\2`4R"#$$mTjM]lZq]XtVniFO9;NuQqYV!aLooZ4)2_711I2GhmTa4b;+(rhSE %bZNq*Bo*Ild-E4n$Qr0%401d/\%2+&;$Lc>rFu%sU/-hMH=F_dKg(>[q*_gGIb9=Iqp1I"3E"(7UX4D.1FtDVm6dpp %WB#H_ir#X5^.$!=e*d"<4$N%lIkA8WB_qJk(p)TuUARO:Nl2[W8'%B1Z8d?0TM=V/4l6c5#JD('s<)T!-;A)ckKTP>hcu9jXmW,V'>H7U5Zf %A64\AeFPu+K;(QT`r;!Z&\'SE.G%JF7eL8^+8mu8Km3[r5c&%R_0/M(gL'-sTo^dC/I7>*KT3 %[d^"4>VmsbWl5^$Y`.dl",R2XmPuil/Fb6#S!H(b*2PE^cP%WN;ZKH=[2k*urd&,7,H`b!6qW.RP28u5/T$&0F3ZQf`LD5KR#h"F %fY25:.`ZtU!/;Yp-QhlBO8-ger8])One"+^LnB(5:Hmbc+7YORkfGRS`!T;AnAGZ@k9Ktq_0emjAZ4.!m(NaTB8#+[iU;_-g_\r< %MHJXHiGOD>WD#ICBp$[toR*NBp!HcDop&STKdQbYLOSQ^n3t+/A6RK3r$:\i`ZNB>G*+_N1H]"q\\dsVOsB&]J]I4Im(D7:iDEq> %q[j(lK['sc)b;WGleIfPgA4ng-Va^0F#Js%>*h%37H)d3\a(,\]NX`4/dItA2k>+FNLNdNmB3&Dd7]_gnsSUVf;W%^h;O_#17`D0 %!=$0oi:ph)'`bQ=O%Or]\-Q1BJb@OIj<)!UEY'"bigNpB[@JaP4L47+*9(ui`KI]'c33X$t"0>a2/e/n0\\f %\=;N@RlNZ[qsEm(lYi+KEjuKr5BQqm+Lc-5WO*V."pD$NAMI($gaXVOL)X"/?[`X750Zm>1%$a2pRIH%JSljs.'qSOD %=Q.GN3]<-CT"C<]XV<<_-Y,XrqZr1?d9_(FUodn(]p2U\rhF^]ed#K:02NfsNjf,1>@O %[^!.(@<"A2Ue!C-SHbd9X@Un8]P1+>AVmEu)5tJBWk+Mb)e:lpIPN_q9J$F?UJK9GqIpPC"`#q*8*] %hH.nC9SUC6[#.AK+bNl(:DL%HegKg4!5k`1KTDJ?qLVA#?%&NlTi]CBGd[2Za4gu^a%aB$/"&8rXu>\a)uHpDMo&VtdTOcQ=hA*@ %5AOCf/"-E_g_A.>QI1j^>(`lO<>WC4`GJu&C287!^=HdO[Yc^pZ&#LZ:ouJ9UYOkO$WUAU<1^if"X %/Q[SjkcJ(Y$qEp0q9-7#p\sb#k*f0RFT"oB\V0"3ADg9R;"gW:&^D]30chhlH4k=,V`;upW8\*@cb("Tn1bmOnN\EifAi[9EG_Di %[698c#E^"2:fhQJ+CEagZ %hi2?T:s90+/TbfWs7Fk)KVn%jU[-!#[Re7[Tr:-leVBmI?7I\.m`IdJMAMaQ:J)aYFHMm:>TrA@l0aYV7tN9N!P?7S#YV$'Dm,4V %>*bqWQ>LS\F8Z[ApjIta&508fQ]ZqbYk7]ZjPB[^kY`;p+Rt-.d5+]X$WlbKGG0\ZJ^`P477?+>R)29KTa%-0-I@N#l"sC0$-dlT %p9hcc?Ks%0$Ak7nU?@WJLj'k[hTmKR_M_Lb:3?="'i?I`I:i9L'rCY8WY'uB4kGqJK./qm-K"m8=p1.n5ec&>Cj6EC?m>'*GAX$` %MqqPUV\[V6BBeh+=5AWBlL+'0e%$<-6F>dnF9nOA&I>pqb4Wf@fm]7fC&Lfn:j_q`Rt`>j![VH %qZ1=\JV8k+=;crR6Wf)1E\aZk$$p*%lqPoS<4JL$c6Mo7#`urhXHMW0[q?X+8J0o^(QH\[U[ %h6R_T.o?Lm)(_cTPO/2,SAj+MPa(4k2QC^4*Lgs#IoWdrRscb:I/])oQ"T[??HV9:oo_r)d!o13o]mW%.#j%3'?^O^T%LbKq;cA^$D[-uD?I!`JVpd=SZ94[4+nQ,I1`J_%3 %5G9bm'%ll6_X'KBWr,f0rRkO"NX<\lpQqU#`d(1h5YFal4ZKO`ENqbV]fCJgl^Ju%n#&JG"c))^,BnuOH71CaJ"<5ml:=Li>+(uq %qTON:T+q%t8`@!;B751f@.Fsu0L$#;5>(g;E"/s/r$c&9s-_8[Y9\urg@E7g:AdIf';G@9MsP`T+#lgPHk'O(3nNH7:k&BV>884S %bW!:OC#u,Hr-["^^Js0YV7kJ1]q.RfK(E/hIMruejI>E3?MF3G?ld1fIunHMoF`_3X>.9)"WHn0WIY8$)-1b.b[f;ACc78ZLo$GI %>n(sZF`"TtYn@]9DuNO!$`)9nQD^+<_11$ert69-s6S'JJ'SnTckarFna+),&JM30QfO:=Pip1PLE6nuO$kPGhd0Z8/84M1FL83C %ol.Te:AA^/<"\]t=mO$O`3e&kTk8T.>Y-?T>!d)Q;XG*cLVZ7r)RLa(iYCR%F%DnB"%bX!nhDIm95(N:KZ7"DTtO]&^i=QI'&5=[eMK456'P,E%)7@1aro]Us$Y(pXDQ=Tj=-i]i0/i!1?ROmcp#HGh/!"s@Uc;Nd"noK]3< %@Zdf>'^!P,,[K+iB+IXEkKu%EM8PN&6toak.;>SU:ek-Rdk7t@QasIG8Y2*Ns6D%DT.KEj\=6qfb?mBXK8[,7qO*)K*^6]Th?W1h %2;?"bSbmhC^5#KJq>9B7YADd8/o8(lBc4rXr`F0hN"YFhn/Uk0jNNt'rDsX]F1g9XQX%B*MA15Df7"PoGKP0ImqpY %?XLJ9#f7+cEpS(ILS*#m_humiMR=NV2QJKZ^_U))FfLA$KUnn[>^;$\eYrTAWFY1qX?Xs?VCq>MG5#9H@R2[UShIc('7;LG>Aq.i %;jtqmSlDBW?;"aYjMWk^^"JnBEeT\!P-%r^'Q#^SD5O[$`CC[09!f=DCK6615Klu?i8djkaQ'4ngSh`LbZ-$J;)EWpD3`:WOk75UrVTGdI %8G2!ePXd?SF%LhNAooT?:MUV&M=JIXXuN=F/OCs_Hu13=^Z9?\`?>Fi/[%)A*/caX'&S_N6r)\K7skZaZM1q+_47XFb+[aWpX#PZ %]rg+SE;>Wck!&1X\OUS4)a89_h9kQQ54iZpY5?S2Fe89A?,(/C"?2HWZ7@2=ZFWT#>Q[6EdjBkP`FJ5r)-E5@<)R@dt,jE*OcV1nXG+52>ohpis4GdSjHP=GR4q9P\=\UIkZ_'a'$_s*ob-2C[nGELC=idPFg\tX):,WoDaN+:WKpBI0$)TA@t]I/<3*B$Fp@g5Y;TQL02uk5')@#_elC^c>gAVbeiA %>n>ogP5-62%j-X5pder4a+=l2JHh_ZE3P3=@*/A$')IE7-Lj3GIJlj=q'-Mj*@.V):F2XU5*^S`$U82[&X\<,S+:;-32t>FI:pOY %$Bra!BI&XER`A=Jb;Zh2(*5ukGdY_>iE$.CIQ72sfN9,j(u!ulib?E'b_n>DL*]O_#HV;GlW,uo%@412Pt*?uZt1Nt$.M:'m">-& %i_k$.34gO-$qIs&f8gVWs*.+YM-l/RZGf#'-=L,%WVg,0Fks)58(f)f0)TPB9lr!./@(4?Qpm$K27SU'\K)s2/5U"RiZs7.VmS)7 %3AH@$+-T7iaUTHf&oDfbaIYZ%5+/-p=Hio:4FfK6Be>t-CAsZ5pFbS$=38?ijT(<3`(uJMO/o>!a7WHGrI)FQN*-qN?'j;/(*ds( %B>?&km`qlGQb8-@>";8g$L\HWa/*&_/\T=TB6l^A>FhIi:XN;#AqdjhUTrP?:=9>08s9oTpVm0\`28!OYqs=1o %lf`Ad[b=,Q.q*F[434)E(0)dULo>#FeN??`AQt;qoshN9el\fh=tk]8dU&0YY_^bZTu#l4k,LL24A7iFZ^hIkfDI:3IZN?YNE1ZYXbMVQcf(4Xrk._Q3!8:0Yr,0$t-,S/R\GCZQo5VG#+b-%8B2?^p6q#,IKOOos,40=:_>MM$f`3bR@V&=%]\C %NkYAM%=S>lg?*EVcG9_1ggL6Rht0Y>D*%f]f:Hh6+m=:J5L*C$!-\/UG^5bA$OTPo4L@+$?9\YCGFonlVr+3BJ5c[V$A+JUUTbZ^ %;k(qhrF7O0pXp.+qAnse^@*L/`Uhl^+9ZH>fT(O\Qe0m^/+d#IITdHH-@t&8!c`:c_PA9H@80n^]lP;l=f&tiR-02M2Z3pS#.R(a %oZk;JQ*tr9(sMTh)W--MX#X%ET)a<>(sL=A)P;H`lZ%SG$P%i1ROBOUM]]gc`ehn$84\>3&k%jV5L>!$c[Nn@-UCJ>OL]nBq4,2KNK0=QV0QUC\@5@H\bceoo1Aum4NnmJR0`.@njQdE2V]^9Rf`onsApYj&rJ'7.p6a>l,+O_\-/:jaAntT",cWO!;d)Gn %K'TN!P`RE`.*eIN_4?5K3lkO9]7Tk8YOQ=6f/eT:.m-R(;F9`a.SAU^8^V0XgReKPd[^m5Z?j5+]VB?,hW'1I5B;Dtk!o@'5#:eD:bDl?1!/@mf1@.E&mo %3`nGQ'/07IaXUf3*#5h@`sDnVA_b-MBq9>'?GR08kWMFT5*'1`B*aI?Ph[$IHQt58cdO;0iK$H6_hBh>"+\36 %#&Tj8I&r:sN#RL6bBW=Y*U!/)m"scH*J!rVe93k`Tgio]1Vkhc0BacPB`fp2#_8mQQHmKR.rtiDTsrL&3]R;3`*(/cVN:qJ6I="e %">Ae(E)M;H7aAdd8&:Y7WX.ThQ0,$h)M0`t"ICNRVkuVu@'pBHiPO`CF6<3)](/@.MC*oT3t]gk^d(`BZif>*%7,kD7F8IiVG':i %WD+d)[S/*dH&eY=(hcrlsk^*'J%SB$Z!cD1#`8kh&PK@#;0F^cJ,80oYcOG&40``i3o[K)4enBN`7/H(R)c%7/"S1oh`-3;\^ %FHsmWB^>5)N##IY>d>Rm"-\R,P1]nq;ihKnZste+#1D<^bZ27$7\/I6KPNgdb^ChEN4373UJ:s5#&7@nmGS4[7NQE#eUftF)/YXq %W43&3Z5?bA%%PJ='M%+7^j4?cl_Z`Kje>qHeJW.4/coFI %P9^bY=PKpq`m%$d'^1mlA`g.oH.d'K=\_7U0F"T)2-&cIg]XAZ5g13lZbSgKlZtoi_r$'j&u;:s[J(%AA$Po1^Oo9=9ST4"8_6'U*c*p3E>qW7 %@?h(JBq"*].1$AUFBMpKq82$X5\4\M77$tid4@["1'0.#CXWH>Jt@OhZL`0t[0eUKMu?9\e2YWb95^iIdcXdG'P-dWa3[9f%4`:P %aY]@KS2PF[2I3t\t6h.T6b@4.VA27U9Q0iX#aZ&2VLKXB%W3jNLCFZJs%%OVdVT=FAN#cQe^;;_]qlkmA1/l`t %qplg/e6Ykk2UFWH"f7lp)^,-J!+BeI"JZ%Y4;k@=6dSt@go_'_$[#,`A(VbgE^XGGNB6/=2etiT?L[(+5hek1".84%^^StY.T9b6 %"?!-J.&'oGYb`JX$4E#I'fIAoWA*0r&:dFb@o`^`dh*EaeSaoK!l/eVQ&#!V70)VaO?h?$!7"0d\OhQ1S]@i("u]E.!k9on?p^Th %)\CRp7=@`O-;]:arD^(F1SLla0F2>5_X-t'Rt:9uQ8,/!u?Y)k+?*b&ut6>BO)*5M'M+J?ONE#tRS-G+t_?0-VX6A,l$7Cg4a9(\\W %qORdbD+Fk);cI-=$6[hV9K@]5E)%lCBH(I>Pgp%R/.rOqomK*/BVUuS761sKQ:e9I`?)ZR2J&Q'e0P*M=d9!H"U::DV"\A1G"5ri %ANZC9`'0TJ[E_.#6<+/_M?>OJeYHh7@^YsW5S0mENsLW'5)XGK#`RG12$._+3[r4(!)04=#DdW?QF80'G,ko2Vuh62[JQAD'/'i[ %XF_7t[E2?uJYT<6dPXmTU9*VFLk,^\)IX&Z1$6De9T1g[?jO%e\CnN$ZY]4ASqN"8:[2s=P*=,j&2`2XEG5e7A=^]XL'e!G[KML7)hM%+ %>NL8R@-Vccfr0Tp0]Pp-HQ);br;I+68)IC%((a/.G8-Ji"ub92j\*GHa(.fi6GuV!@#bRNhLo0(>]#9r4[K.g0JOqdSd?5b:u+9Z %X.ulmO1g'.0+PIL9se^(,:!+"/+7$JqbRQF'Wm\Jb[JeQog2#$@lloqi)6)c%at"751,>;oMj,s)p9Q %)0D?_.&rL)$[nLr[Al("#Zp>ClDJ]"pFPt[(t5f9!jRcLC)^W8,;QR)M1!s>BWFIe=eR2dTeKm,YVk/F9:=IdnGdA8+75e4&C3=Ph@82cP %;e'i1`sC$F@/=u0j,Ha8Q1`;;Q">!ALf$GV\#MaED#A/)B*pP7-@[cQnQ81Zf:mN5W2Bt+D*,_k2,E$FYRa`nMFh&Y/N\_4D97YX %-7)DS9hBY=qc+1ACMtMg)/2P0?fe>?,#uANTj!16F1[X8dB^_HCI %@7HL$ZX9V^[Ac6tM'>4/)Z1d8"CZ*s%P<&P/onL*\"X5qm["#pC$O0uq'r8',:7Su^lQrX\fY*5qL5hHUeS1=T\;"lH_Ys;WBtL& %GO+\.HuA+1#W4K#jG\ZeSnjmf:!\#/ltuo76i@jEE@F.]a0pD`9KNHYB<\V@LCmKf6!:":g?en,c@CWhahYHH+rHY;-gm?QNsY[57*cjJ3gL&QgFKOfU=DUh!418'-Ej2$>m*E8;P7Lb-Sh=bX#ZZD<@QGlp,2+Kk[\H+U!^P!lWM.!&3^7%d8oLVNu3YS\FUh,+[3bGR?q-7aAh*#$0FaR+Z235Wo9<;aE6T %"R?OC^.E'BeJU+s!=:`RG6"aNIN:>d1ti^7RP+]Bg9?tU]FYp4H89S^&_&pf1=s5h%Z8T98$k.uI[NSA7<"9nn2h2Na-o\m?3%UJ %CcW5]a`\H:etR"k'O].k_!'j;k>fjDW2]0LN=A>[&jQ&s`PAI@.n2raJko>QE$?uq-;?je$I$?T15_aSVKdA^7A,O$U.<8.JfS:a@$hPa0oHpY3QS^`;>igH@#_b[@i"2Tk-J0`c2V<&H9A4.d(O6<8Xo70SEF.=BJJ23nI0>Eme^VGG3^FlpS\jM3"%fO,_':ioJOS&U<",Omf:hpt$*4Y&cgMH'%se(8<"(BZpqQn#t# %MP..Xg9@.T=H=ic,&M_O`c@(sIHkTEf=uV!l#TQ0@jS-W5$.,r:1Y?8/I@5/PNhb?B.Yo#r\#@A*W):)%Ef`<6OcOADKG7]S`fJJ %8DE'rRQP()&qL`&bJ7M\$FZiJn[`5ZC94E$L*);M>N1L?I_V:LYmP+ddbHu2\Hjl8mAXr[gk!S+>8I7kG"fKYfW%8GQN^Ml(^/Hj %qJ@,[J[1r='N)IRFD3)X&KZ9>Zb5?tI):n/4b"r1#/K#Q.\oMtL0YAaY;s,,16;c;5]WDNJnTq271V!VlYM0+*I*7QOYCk[@;Lo(<+%-GGH!qt0hedqmU;PcJ/^(0)Cg`D%F8[-e48>r'%l\XXk3b.aHjQoj&+n6W[eNW415YG0;H9"&S %?uf#ZAgfOVU1iU*!h4.Oi?LViAJHbi.Si$GoM9P1'mB@.0P9DNRPk%_CT;SX5/6b4(2"G8\fO\[nFEc\UgF1S-o3"f($\^sDP$\u %i'+<,*lYrOJT`VN:-T:lj[c2G+\tB#Q6"*Z3+u"G`-s9>AgN@mSns2Q.+>)+n'@c_.C8E-!K@kc4-doRp1]rjOZ=6.O.\bFR1sS? %F/MEc2=Uj#j?e),i&p&T=2!^t/d2"Z716L,%+01E;@[B1YF4.0Z/1X&%0&EZF$pZo'al+3_D5nl0aU&'-#mJB-JA>8Vr0%EQ %lEc/.Q8%i34:a=#h?.Dsf3+pZ=M31C>P)Pje(,:DVlC\F`kX=co1A'V,Sn;n %#,(rj3k_uAB0IJPAlpI53*ksuK,UJF4VGf%`$,Q:AqnSn %pG#*X-E,RoO%nc4U%uFK#,CoS>G'ZBZa?j92b?E/GL_c6.Kc2.hD0'CE0b4+M %@'eQbg6]?)U_`UNbE1[(,lIecs:,">[iLs<^)`m.;C@f>2+sfuD'd>7EaE\tg=CnN^8k*'IJ#L%8,r[C*qRiX0>B/keBL'<@^<5cga*@44D+mu"CM9J+7dDf]B,\/LaN"#014%qI5OOi9ACrYQo_7-?pPBa%XYIOi%O`NmY\DlK\=nLARemP!*#+-%B;d7.%6Q'`3Tcc %@[UUR;,IGEUlALjbQt>i:.[DtP,:=k,fCILo;(%b'YURR<)R3Cns!0cZs4%)W^J-Yc;mdF)BT&+:l.0dW=Xf8$+VbL7?d)Z.b=FG %JBOak)XMuj5`)&T!j'3V[as?FC_AeA&FLs1F9&XR"fUVPan^tt>UPMK-^@]!0k^is"MF+JimCg$j??+1Ne.7-YPeZbmL-IAf\FLlT"7bcPC!-/m? %7Ip_YH-AhYk3/]9R=M%8o;4,R4j^]CI&@D>3`E:X3-@fZ/N/(ZUb.a\?0/n^9:$ijgUUb6J^_ENoA=o,%ibe0[[*Yj]lnfaEj>dGU*nM@\dQk %lr5Mc-S91d?)(!]L0=JOYbm)7,c[4O[\;ur2"6?,^>egBh0"u6%kYZR:[0U1=:2mELR*03+Gr["3tm0QnE!Q5Ls6G-`;L]:Ygj3g %74\FSad\7Q!=k %V]Ku;A31VGZUHM*Eoi:*ba&SIodCGKj_GTWFg4-QdcQ!92NTZK+D;!X%t]=d1008ud!,`=X-'@QB*+s(bBW+W++^cV,fefQr&31#J&^4jVi:3/P](Nk2-%[ijGA2:_`>C&UdilN%=>sEtnfn`J@sE8YqXu+O7[-5pT)q_OANB]\Ps;BA8q$(N3\(8-fqWG_5Gp %KkgdS)@pP.(kS50NZ\A@!7\6eaLf%aVeORZCY:L,%R"iGe2J)tXrcBDRi$6#@1A>.;+=AJmc^+5P,VPCYUUL2SpXAooHH#*nt23HQ#pQ4=Tj\cnblF-u`q$)b&kW[(>`?ufi#5RP5,(8O$QDV8Yq$dqH(fQ.p"4+W<; %5bd^_5((<&#Yj'nW$@D:;O7G"]9<<4#&s##.JMF3nu41#GS5,@\to)D1M=p2h=66W(Zm-f'G`C)5>7j`ltE]8H$l %)XT[F.oI#+/]Sp+EfqR1!bXOe6\EIXDVn:ASQ\9UFaXC-+MD"PR&N+1lC]j'D`Ho]%`ST$Dr4B?[%77%Q\gEQkE6((D_Z$8T`Kun %$l0dbHRa*p,S*4<^cn'Q!7=[o&ND6LA'A+V6'HX?B36[931>Ye!ZfO+Y+c**;T#LI=uBqZ.o,,tEN!"+Tdabka?BYOU+Egm$`mhm %nR`m8C_hq@BQQeLOSr'.M^l5%nPW&u%@1CP5]QXh&k*(<';i3^@>tgQjT@RhSgcY*_&2tF6c!clH*A2-(f[I4SN,gFJU2VR\jDB& %;(0AB^nShV=dV3]h3TE9)b]3^lrJ(>(:i.u=CbA')lg$8NiA\S=KKD-B9Y_eh,JDO(I>F0k8[=o(?/"c*QZc7&fEt@;R7$8Zd=b4 %*Vt+47tc#BU2qBo-q0:g<`Q[.=OekJZ=]bnr/m::$UODM)$JQaAq%-[8TBc"+NfR*dK?Y:K]ZgG()`)uoM36A1.LD'IBolH@(<9t %&28E("(Oe^A46Va&6mu=h1+/]\I_k#QuKDDNS*jQ96Wd$3/U1b2mnfM,LE,Q1F',:<4c8JP9.bH-_cN[L`Betk5\@h%aq:'p052U %jFa3P"aMH`"?]gHmo8pMAh"][6lAZ,CaiBg(A72/C90Yp6L'pSD@:A2%da0?q;'JqJ5_)E#MWAj%m!_`bBe-&Rg[9\&.k-^eT!:7UUs34:2MLr/HKg+OPN;P[7T&t8G( %GVk>nNgT$.[gs4r"j\<]sP+7AZN%d]+;M*U/(gH)o3OeWFU7pQ@_Lnf%Yum%N+b1<>JGoV<_*Z![-cN23=Oe8UU3%k]JJ= %0V`ZdUqgP9nsY3U3E@lrl?RG_Hi1E&)07.:F`+ck:e-%:<`UK'MP+U#GS[@FG+S*"0qUchm.\n(R!/QA4cptNMJ/:[Ma]5Lnbtk#F$:.&dK?G]^D-h#;2C`ZRLGC %1W@%GqLpVo+4rUFU8=VY8%Bq4arqA"GTpOAinYN %I'8FqX@^*g;%)2Z9[Tf5Nbd#K/CGiN;_@GV3X-UsPr:OaGd9[ur\RbX9.Y'baP/ae4f612M%`CH;*h!),K!-=]Vod/I9e5S^8B<+ %m.7%0-tl-j^Y/cf&.@4sEVL0(OUSR1e5S=U<#K=O5Hf0"uc.k2lOPB0ZFi %a.(\iqcC7+D>M:[?2`dLs2$,_o?eo"s692.2u:;JJ)!Cuj%]dER'@q4>\^*=ih.cr`JK.fF;('B)in1I43JC>E8r*s,tJb+AFEQ, %%9u32>6RGQV\7?/[j[D'b3[Q4p1.'j(g1E.;I!`\J[Y8n`sp>(H[=\76j/kh9&Gg*:O"_s2d#"%LYRUD7"t=L!BScI9'($<6:_ %DggA(Y)[Wt"/0TNYspU:=3cf.$,pCo^2a9sK9>KabEYCcVBYVCGt)(9Gm,uQ!I$%JH"K98hhR^.D %>Rp(S#"%.)c?#^f.5Tk<0ibrJ,,)%LpFUU>=CnaQKEW;pO@G1h]3Bi_-8p'JlAQq58a-O\35ni/TFs.Y.BM5]Xkr6GG+eKC\6ct% %rJsUQkUA9LUcf9^&lsAFg@fMHX;`'3@6mg1fjKMj,8,W>R-)?kDOJ&bh=r_XFXaVit0A2*4Zk/"'UU5(qY@c&K2MH@$lPhIAc %<:Yp?mb;2]N7p=IeH;cUMEo![@SbZXOcFU*i]82IV65!m[I(ls82h4oio6P*Qb*7pPG;N=/MA]4)atN9kV/[aT'Y#JO\8,-f;pC8 %"%S?=8)V>2^,]Ba)RM:%Y<;odq,'/IaLB,%hJlk1m6Koec&R?$Y/=`YHGo/2^bDUep9hC%@l9Ji![)=^laODn[,4CE,XfB,-X^ct %:LLkqW8F>g/f>mQc&*V31;$gWdE3?7Ir]0&Y+\^<OM@s%GGlKYGat>pqUZU^[+0VO(@B!rPj>S=DOg&g %BUnudr-C[-HLTOETur'5mn`(Y>Bg[nU!qdGWH3n)a1E(rfYK/ifjq43db%W&OAUQsmsb9)gJ/Z=iN[Q6EYbbZ#7eCO@)WUr:mpX# %!Z?R^f!TY\l<(MP+Aqh)js$*9bY/r^7(c`T_g.AaJU1Cb'Z-#tF$`VCW72!"=gpi7:b+&t*@O'Il71Fdm-Ii4Q?i$a&>2p&HgBDZEB1*>)P##TS>F5+@h4If %DMLjC@Kq!go+[*\:HIAsonQ8Ha\O9/J7';c"S?Xn&^7?`u^@ %C_5"Xg'6WqYeo+FdK:esK!@#PW+DtDCUTTKf)l%'@CCcmsYjaVU;RXa]SV418j_t8NGuGQh %D9"Dc%9TISP-qZ\N4`d!s'kQmB(0Ya5sOCBQ,_R&UdPO>rYegjDG(NX#.nI26$,n#7!"uE^1XM:-(VBD*Q#14n@ef=$_jp^6"2)Mk-_'kUsNbD.oN!]QIX'c8b)X&e;I"GjVblI)5R\N7;oTd\fAie.1Ueddoc0S0cE&l%PONZ,Ll %4!6d7X*3(%mDJ3[2\\6:kt#gT]CBmHB'S1jg0?pY%K3b>8H6>JLY4gGSmGi4h2`*LZiCMWN=eclh %VY=s3`e\b\rG[4u=:?*XLZJra"d$cZ_$+m`[AEh;?=E4dl%/C(W5NCE^SOI'+'UX/#gn[M\80A2UG/-p:B0*Gbo&4'"IYiJ9YK!s'lW[C<<@+0K&.d,8GH,HdPc?8_!cXog&`?^;^J4^im-H*BIIA\Q?%;Q2@%hq;7C[e1(Fd8h_[/[9J,R6,7H<:=G_33aZ_!VQ(Z`]\mXLtsXWNR;L0Jd4g%B`C,ITJ:+^?EJ1uDbpU.KsK5rAA"CPa0A#A$g^l%1EI,tU>i]Pj.Hr!r1D6?naCnrPmblOFM!iuPd[8gE>5>YY2Q'#.@Zf4+" %1b=]1j?)^o4V/_\ke2+Uqm[Ws%1U&*MF3p*Uja;b*d"lC\uR;7@6m\;m&CInG3@q:9%G`Z[VC`^!CC%"m6L)i;H9DVmV)2O/X4q< %?\&''n#L6Y8(Ea)a+#9HNior!3`uc)C#,o,G/l#]`$e?i=DJ)f/IcuK5TX(YCQ!VqaYkQ&F`R@+og#FPDe;tYCPd15Dmo+c!0t"H %>M$Y]!`+gNJF]"/Q6[5f'__`mV*r]0=%'5_)I4mB(0Ya5sOCBQ,./ %N[ik\U?8H=_Fl;BJ*$+\TVqE[i0LNk.B140?q'Zp?-?t[0FjoaNam09T2g*'XON?k%"8H1cNh4;oq&b'I7t.:HMCic^9OWg)5L6Q %]+qh'Mc6;n%DJ+3?lTpFK9HBe<@Jkuh6q;U^W5&ZdK;qb_0QWJ_]#Tt\Ee\GQ*/hFf@CJaY\n,n.eAX#:!e0UnCFhU'f]>#q'^G^ %'2ZlqNgQ\-7gE#Y5c;K!D)$ap@4_j=[^84_#51\sYQh8VZg<5CNP*]o7GC"2_n)PXWQ[`Oj+7]ad/"H?GGd>!u;ED\Au6 %TVB"c#cNAkP906u>Io_CXfsF.C>:GX>1dkHFmc_GocD?1erT:%CYQnkYc_YY.N=DjPr5,C1=)M<4.+0X$F&7K>bCja'[aGG90b;g %[ZucKQWQ>2H=.!e/B-cg8EZsi^5jsr]6Df5ZnZ]^X5X*!=`=E-hp0nX06\pck44DeE4%qK?e'HZ<3OXYk:A!Bl6)BNXkG\"Ao1X3 %cs(H!/1&`1=@Y"@\*SYG)+!_nCYQnkY\n.DobJP(KJNjQTO]QeikS]XrTRdVfYc'J]g"p-@OR=.2/-VMh\HUKNd6>d"/Q5`0acJu %6QTt*<9YD/4X]*12L#SoYWC2A"\rXIKml@U3%OH8"jX7dAnk=^LTCYfj"]Y$*iM(lKsL9D[6DW+=G=]!d#X%dRm! %-SsW]?(W>k(_tc:>CeRH2s'I"]uR\@W.5ZhPn4p3.4_6oHsVEmh"i*C^Q\6F)6=Q#V"-"5blEr4E#hY-#]DgYr;%%-qO#-a;I+>d/qXc=8Lke8t/; %>h4HBGk"eC`,;>J2,#/TTTZ^'nN5WO_HJ*sKs_#Z#>3VYenSb+CZm^SocAcmjh^]B[IqEpX;`(Jb^'ZQKbsP/e[lP5*HOreTpBQ' %MnR+jKFUr/ArDuA/Z1;)&U'gp>i5!X\h/&]eB2k/mgDr@X(JcIo]%cuS&(`@Cr=BVU6UO\*+u%I"&DtRMUM-AH?6:uigT0*QCCCW %AFZMI[W5C1-.W6=*+qXc_,Q2,NO>&f2a&:V&_D?pg@fM(edW'`B!u-5Yb[-NFLHP*!S^=m`U*\DlMGib!Hi?5C&"HA>MHO$g4=G2 %]EIR!^'h"h/,T'F(U^rSeuk(TiEM<@;lmFs(CQqTCB2MsE&1n1.Y"C5cJiU%SZL_+_B>R?[+j67*EDIkR/!<187P3W`45I0WI8sr=(=?eEZLmV(?Rlk1uGFN=eis7Vd'<:c%=aC*f8&6*\3=BKid[+$&5j)>T7[>[0*613XH/%Z[@fkfWDK_#6H`n %8oJ"iif]K7l\5VAZHj_t'V2\.WAGZTEJSW_$5ReW>,WY"2'4\X9q8;f>J/Bp<0Ptg2SDr0A*lPGJPoRcZ!V4qYm.mle9-:M8mC[u %DqPBW:i6PX.e='e"L38j;6m5c'Mea"]hq2rXJp=\7+-OOP %*rX1h["sjcWe42kRY9:g9@j.VYko`NnlIS%6H%JQD'RK-OaPZc!c.@GK]A!@i6"\#sQiQc$D._5U*b]\LMI %U+#$uD?I=2oHSFhFD/O3("!&91ok4EQT=a&4GZ1;%,]R4;T(o1O?Td4gV54'USmb2[I#2Y#WJMBJRsS&^I>821KLp-(1=Uma`Z=D %>WjFO$>RI]8P.X4RiW2FgDMO+Xg*0pog!5ki3'7DXEJZHtDr%en__nM7)P##:,@RBs@L>'(>Cf`1fWh%-ACO2n4&jJ)"-kpOZ+!H^d^7/Y %;_8\#>o^ca/Cq-p)EF7+f`;+'Fg\QYXWOYhh,*%*\TH#/`aI$&%CG@GWRXnGnIgeV]1@,u&5_U)g,s6+p8TZueH>!al._n2$$V5J %_:.5P5X6QuH.3h3p0eii2$H1.96\N6/0?VMs7#JYPpHIck'<.nkJ4c[8h,#@fdj0MPkD,Tq5Ptpi(^e`W[tEciZ3p,!I\RN"8DX@ %*NQ6JdX/3sb0kY&g\,VIX;`(JW%(H7gb[LIXX]529*pl:(M8>#<>HF<*54)+Z6XOdY?F\)3SG$fLp+q[^qG&O,'6gcqPP,E=aE#T %gHHO2F#3AcV:?m)!ColC?BN3XHgR%3nZ$mA/Cc4#$*X?X66a)e9.G6"[r5LD;G*"X"+Ug_edW'` %Pun8I>b\'[=[a)2m^5t+`h-of?`gVsP2uOq`BgZD %9$117e5p-OGZi1hAT9U$%&`ieoi`ogqolE^MW*pP:?n__ua>S %9jHGiQcC\_G+c%WikW6>MSn/KX105G8h@-SY&,8I_n)PXa\qDC'Bgd3XFVOmk?Ep]POt^NieZu^=a+gqq3ltEX %`IWBT'Z8TSX15A1.P.a#Y&/3FX5Vims((A9fJbV;5NhsO@b#5I)N %!Xg&IfGa1$U'(-n.5>&knQo3A7UntrJHbN6)KT&i%8Cb.G$#d3gPHEqCSa"l]rHtUJZllKHL'9#-\`)rL'D!lJHaBMpqi*F=($%+ %?7Q14@^eE>[&Q`WNe"eE$f/Uq2)VcncjH#gYf,gW^&j2p>HnltZr^7I*UjeG>\@?s5-0cd6\/1(M@kJ:e[*UQYW/j%98Rn.2+[eR %<`Ph4p-Njd*ZR,W[(=u^@[ZAR>h,*$/L12_5C),!oG0jPG"`I$baVS1?Tui#8M[D"#"tf9* %g-S#fT'.$B%WiFf*44J*@)\^[j,TWc/j^fE#*+mi90 %>R,W[(=u^@[L]D`h,*#4jrt//aXR^&"Vq@2[8J4&#"9r=c#XI<4F1rREVGXPJ8@.@1-H5CY>HUZl77e,p6L,'%crQJs'`Hb)7+k!k#?F1c@N)m$LAt0#HFUD'idM( %idJE[8Al@7jY?J;,@93(HCSGe5]=J!E7_64`%(5YB["r8YM0)HGZGd42RYJ,`]M%.lj9: %W983T(.b:rIs.n'fW23#W%ELSZX5!B^@/)*pqF>JI8h6OHMjZrhZDYtSoebrl73olF]&2KBTAjd[Sfs+7oki0,\JKQ@@5&%4MJ*ii:?nNCjA=+"plgHI6FF[Ld[)/t+OMHWM:X06cH(.uF"C4*$]<5F\k8Pac9q?g+dor?jafeQ4lclD/[+<`-j1 %^f=b3]le2h\/a'/%8LKK!G8I;e#TZ'Ti*?D]1^SbopR?iZBj&5d-<+eV/qJ^bL*%i*(g_u*S"'1`"'9oipXZbF__nM7)P##n_c9Vm %>0s:Q/AX$_=iSjimn:;I!eV2X90K_N(2;-::hq#?_J32j6AmFtc]i=&5A5$!$LKCKG> %8VO;'1PO[^Y!!(VORUp(F_kKn!./R@)mb52/(P2P[9&Z%b3E)+!Y%Vc0$P*%lCNQc1?'$QV=Q:PYXoDX0?]s@!>DqW1\0s692+(r?J(c.pqceX%k@&oHR7pO#:&Q@tojDf:^E`RN5[FpdA %CRa#\,cGj:eH;B@k.t(E`FH<%._Z.jp58=@CYQm@=HChelg;/9>4$Z8db96.\d01Z&\oTPtU^6-;27ge-Ko&+gD33n]OE^1p&CtNmX(jW7:[ON^IWRXr; %*H8DfHtQa>4t=HrKEA&,i't@)<\NZ:j4FC7:^Zkr%NMmN$4[K!*'6h#X*=8P9-i(nojgutrr;>ufktBAYorlHoacF)?lpB:3=eVU %,%\CBQaR=GmM9b]+]'_U`"n,C(3Ha`_OUZD>r,47H4LRmR"d#\?n\ %AH]@*>j5!d[Zu38qLDatDH?l1[&Iu#36-TIdc1V67'['L.Ofe<[@TuTHrkZkT4uoc/ZJ&YAbf,p])hB]QR]T#.m:CC8\qB@WX^YIQ/arW[5m\ZERYH,>lJg8;u(SLHlKNOn36sNt4=$_r? %73mC9qN\KIkVVP3#M&r-4W"X9dQshZQ_H6W1U*ErdET+8gXapJ]!;Q:VS0e`4&IPE$'lW;VNHPaMC8t#:b2-S[J1:]S!.l(]$_@] %DH5Q'dg#+FY`)tn6bWN1^,;LVSkOZcZFN\Jkh+s,<'QB2Ks$%'Pjs&f$Mq#>mK]g[LQO_VL=e/Br)o` %eR[nl=^1%FU*O$I0)TG3l_%b20BRA!=aG%hTE;GO3fBpF<,2XR`_$&5>o)&p8]C/P6@urXHdZ[7m-:nKi*&FCn$U_Ml"AAnAa*j^ %g32ds]rpe>'BsD]F0d^T\h$"S<`$X.egN@MSqaY`+B<>p>o)(J,1QBZgK;B43A]p-"*SfiH>kI1de>6AY^s"L'l.*Cg+7#$7r:+N*;VQp)lcF's)94C:0BLfIF6"crrl7n$LYMkpOj.B'C\tg31YS]rp_;;^lZ>L[6;\][g[4 %_-BD4kM(m^P@G0T(2E,\d`C2K7K>j'HRlC;C= %/'EO'2'E@CNG6qO:`rhm\@PlR<"$)*i*&pQn$?&$l,W7m[.JEVD7_[5?<>bYkrKf+.KsCp.P2mTj($*,Yt>BT98]ThZ>tPf2jO([7UfN<>AiP[RL*9CVPfnEKQ8XY,B]l3oG*m"OWbEdIP+8 %9Pqt9?<;;X/$$%!l$&bGl;Ql6u=t!/ub*VgI;]"43Z>m#NQaB]ch@T*!ea"J6Sk: %:]u!+f[InPLPum6+AU,s7\"%!dahj3i&(/]!W._UmauNq)42=W54F?+.(ShFG(S5s#S2J%$B,?!8Wkh9fGa>U'qh6[W7",n9*Fl` %-4]oAIltaP"E7M<((hS/@^Kg/O,pM+1;%r^c=4;j$Rj!$&J"5@XbB.D'cp[5NtTL"Oo%[6_R*H;>^-ilG+>s>$SESrFgK*):LU[$"?FHAa;ZkWWr89@ekP+&b`/8lu'9b:NHJ-Z>\g4Md^W*sHN-1"+MAT!5N %53AfDQ*$Q$]9WM_rLs0r4nBmbL9`^)E_FoH?#n&&A&h1Eis!uZ-uChASrEHmY2`5XU^9J;)H,-eSM1Ws+`VV>T^(%b6pA^hdj/34 %Bjhr?k6(o4%]V&Fojhllf0]X#nd7!q'DWm]X(LuWMt]g7TfIoU'm*IWlOf:C]pqBNQkJA:=Fn/@f]&@=(YY.u`^sUl9P"lb/bDsW %8e2%**X.0g:%V_kYCi90\CB0R!#2(\EWD\p.:N+]gb2'IU\0CbN,0Va7P@QYG9GJ,f'4liSr1_SL+b %-7quB4MQ,fF*7_:2g`=>o@7^T)uSSF1TB8\q<.4\]QjJ:a`k=+BRS'RSQpQg1a=bHF][:]<4a/UcB? %B1*!IDd:Q]-QgY5G]WS.58J@2_3QFmkKo5NVQTBUqF4qq3j&8]5H%N %IIdg;^N3o>m'#<=h438,heZUcC\_^hiTU./rUks;gGr?o3@99n`5]'3s4,f7]e?g!@<.:C[$C:X\/2r6+Va;8qVqA6^OH1PDCqQ[XM8#aYW6^0j]Xc[p)i.`SUUP-/f`Rg%_Z":Ju*q/34V&\^A;eq %E]%>]X'`Mk"(Co7rp]CNf2lSq=]bL[`RhLXG2gE[Rs-6XBA]5Nbe!a?lWo\EMjdfJ[rFM/Hh/s%62) %hlb;/DNAG0_9ZV148XcsaYC-r*KitUo"V;AhO:;Di@3e@1^TCnCLSlYURd02?+= %e9=MtqoeZWq]E!pY(,*J*OeQ0s""H(%[3S(q#K/AL-C6CZ@r^(#oVISiBYLF.6ZEXI[ImJ+coleAI=d:Cr#E+f\)FD57]sb>i_q;VmACD`qC?4=OQQG-4#&Mg?[a %FTe+uJ%9J`gIS=+gjlN?]pk;#mCg3&kJ$VuG=EqC1Y6BoQ?GWd+.qnP1q8L=S#d9.f=Mr,Re_/(,+S=-HMpoFGcNl;o>/'c8DU))SgUNW7[r9T2 %ci5k40s0Q\BAIB9K\_MrgqVk(2_Jl^rX*OrWu7gWHM[1&j#u?.rIVVhY9_Dc>b,6IRHlXtiU:HjW;X)V6+k(a:Nnc,@`I2i0Sn=K %S?56V*=d^h1&%eOrg,)"YgjlN?]fR2>0k9WUIsYNe&7V]R&A&Ur1$9b*-3CAmC:dT`CJH/,ZL:T(mn[)3?jF.=q'PT'K7=XOe%W[K %#2_S?AS?9Ic4$2j[[/ZC9FBhZlAK@-"R:F;'n2DNC@eGA!jrTBd$7[H.k=M %e@R`THV-NtmSKnEeb/$Ybe51i=*[.kYBm`&^Z$4'\+>*A?2X*LjHo=Y3#Cml?bL^K.KO;1D[nOu3W=G%S71#kQO'"NOf?+7`?(>& %$*.idXbmF2:Ocg&T(_:GeR&(GMt1rbmhb'rHb1BGHZO@UI:l]6*@V86IeEF$h>,UW0/<0%k5EuTm8nA3Ib452=7kH7'Y2l+R\dsA %M^O0q@%Br=Mn5QeWc,-oEm&+cC=i3dSqu3'rF"4C[m!o@dH%e$>0jemgNoJ6l5J@4]Nf`dHd:+0>CXW\`0VM;o/t-9l)TC,lg5BXZ1;npN-dnef5L,EE2eF/:fl)/F.SU,061Rfn'mfY.fNoFM$D=G1u^]!]nlun,2na#4L]46#6(fi7l=0j6X %GV#K(A%BL2oG3MLij$E[MoTl.=O+TXi3P9*MgHf;]6Ku$%$h7+?*GIS9c/fU@^02i[Yr+JZ.LZEgVmX6Quc8Nf.,6"S8$,14E8iUa7>eoe6&ujR@"\ae+\8^80i)`mhIT-3#bM>!G)jF*lTm`VJoY:>k"#LR0USAJSVGe-NC_ %]PKJ0h-)`10XYre=kQ\Rk4@_H]AjHoO-*(,R9:2JV85BSOttqmGk1S)kN)l+44cgJ]_.51F1%kk1&0j*A+RTPD`>GU %LM^?;O_.;c0(RUirSQ@UPIHhf?,(a\iTqf_I@jB1>_#ekJ"iWW>Td7HF<.rc,o5;ai.VjcY(1=doW$i,(74N-LEb$kI7@5fqNdU'Uo!\ %r*iEdJ>)MV>H]r?\6aTrr48EV^ZI)EDu9+Q\d+]TVgO!biTuUaBE._dg"#Z%U(0)J[(j;G %60k[\@Ig$diL6SWb2$^9PX8MFThOj31YC_c$)K7fQR\[kMoFa!+)emnGYsQ6Qcs&_1r=+[Aj;J_&&78t#`J@p*CbGPkO0:d=gB$&jKeZqPs>dY$,gdP_!&G94KVF>-$FJd[=R5U8Q7;#eG %VF>-$FJ_K>HGNT4nLrXu2/TK'YX;UCk/AlDe!?-"7;5qiVF>3F@AW4`IKNa5jp=_hF*E8rn$l\-`91WYt(JQpEum%\%hjm*"18OgL"R+=\[.I %*9$$C!P5]5A`!''k)0'KcteDSa@tsRDJo![\fP'kqYPeS$'09,6GEd.>\p]!As;$d9"!D_mHeKF[e3hM?,5%Kjge.hI<0]i8*h05 %DrG1#glAP@nCcn@3pZEj(LP\<5L)h?^>QJip[8c(\oga%^\G)m8%X3EGk:@aoP>l:NNIEHi2c8-^"AUJj`e48:KZJ>J!N);rS55e %j`aqGqQ(`Js%HSRAoU77EPB)kqSarfp!-mq+9)6[4LK:jjOb76ojTFa14;]?#?`-n1\2?C'rJ0p!$k3>L5:br6I\8qn+\3QGN[WF@#UZ9.F.M3FI>l9*[SC %C$(+Nnb&&s^HGYD^>SWDiR8Qh"i07/C\c"`;6+jHe9_'DrZI0Rg0gIXgGnFa,55;o4o'O&qRm3M%4GOebGPmi;-f<60 %a/q8NS%[(4D-Z6'RV?%I)S]VSSW?jMJ);ELn/5W^6/5CcT.;PmBu-V^`?kKYP,6(J$;j'R!]!=HEH?0niSBH%khCa=%h^n2&!68ZH@>IqdKPs'fI-1Ifam7Ir?'no %of`&#J,8;obO;VfhYd*:jR!IjH[9U[mr.Aj5Q1#0gAA2RqsD^J5*g]JhUc[LXN@rdP[FE&q;M>fd*I&Vmk9%fn,KlEPH_/R %:c<$()p=IZquR;`1!mk#4!8[-%WqYURcX_4P,GR:Vtms1]'(pN9dm?bn"$Uum6O>V-gOIZ$-16[$7FrXVRW-7N'=]U2PrTR)-iK2 %KC]L&S_'EiQG5(7j:tJ@-po#j%U!+QaOq]_+-aMU:d!)WnFdZkdklG5E%+q-)6ClRb%8qMYTWO2l6)HTrR.+=0RV:R2L$,h*I)EF %!IZ.ol,a/3`QV]dnr9Au"c7?:Oh<+Pb!Ze3puF$61B=^l4>!2[dLqVOJ9*Q0gDV/BS!,L(elqpW":PI/%%gf+)s:X.;CWMfG)Ra_ %XiImG^mZep-uEAs=d=,!dlN<;D_=]QdFHo>=DKgF>I4NW?uq!\b-o2Omgi%f8Dp!?%9DWT@&n?/8"W:Ji"%=c:jSF"@QkXl&GGA!E],fWVrXGsMh%lI"!3'q@>k;<>K?5E4r/,C=?nL]2.]!M,EOj^t!Hp\GO\W[ttS4.JJ7'-O"84lM5p\_MbL %*hNF3roSON1V-h!`?/.q"_bFIHT`t`/6J5C]J!AgI`f4XS'h?BfB%qt9CXW'r4ZE?D55lI"fp,_VW$gBbt2EKJYpXm)(A.NGd+P3 %>^N4Z[1oo4,Qbd,H6EkUf)j0ATK3.Lc\4RU/VT8e9UD:eL`Xj`-9f(7+9>a@!N.E3'\7r)ee?jHV!j"&%rI#b,;A=DOF7s;l.Q0B %#TX1e,1/"',t>/PD(2@/ %Xq8g!f`eHEG2j>UTFs_TRq[CoW]8gZ;p\*O5A=nhQLoq=X#&I'&&,,!Xrp;=@WZ^[.Q3QaZAWmXGNJ"\dn7f(f8$p!htES4?OtmK31H\>!5^q %?u-YiIh[&USi!\XnL<0hHpZ%u'1&\YBIAoc15C_M#)EdW:;f9-,J`_.M%DbD+(Ki&rs %>!c/)Ou#oT%gY5;fLVW^(g6tao6MUh,LLRY.cLPYoQo!kOH?3pgZ]0%eWkuK5m2M.@h:(*FbCKr9(kb$Vm;+b+VJ*J>GYWOF\'R$ %6M,stOZMW=!R/SFX_h&*Nn,V+a);I&Ij=apLHcR9pp^:9!_)hMh@DOmDpQaeVQ=)&h&]J-_R@X;Zd[Kkjokp`/\@[foS17*hDj;R %KYQru06BHJ:A9EuWU.jciT6PQAamUTU::+l;-a]3.b?kM1#T>QlrOAR@So82&$#QRQ8-OK#mbD49`'pE%7k)B)W..YlN;#WqJ>sg %JnRh3g+$AdOVk__36k`F9&ISG$domGY];3oj>%_g1O/%aatq3oP+j8b>4,%Jbr25g)&AO4-34gB-T^C-+g'_k#WuSa?>fDBD*`kD %D%"?3Sir0XD$fEWF<*)_%l&.['_tYgJmY*<8E1V8%it"-fR'i2g=!5+*Rb=5GuG'6e&([6DTD[g %g^=$%,Y2+(D5'GOr_2m:WDpIU\X5tP.Uk'(aq6FS(?L(5/%S\&.g2#d$\h(o'gQ@E/ep>M87G*5-XoQ])S*Bp5#G9*#*qFG9]jNp %e\o^`]GrYq+B\tP4:%n@18B4!/3Xp8ZcN/t=?KK").0)iUg2lT,RkHT2oNp7`$HF08C7/^Y9kmLSp!qS`Qu"mJnftJZ]qf3!-b*>QS@'0r#`oH+p>RAO:89>TXg'd@6#ibkRB1aW0i= %bq?_(Yi7ha=J5\?q;@iT9g$-^LNoR,0mOjm)f?b'q''.sgIjI?3*KiA9s-HWQ-7d[K4HI$ %TdA'lK"EkPAg7E+50%_b=h[Be.;`"\W?Ocj/@nqX=G>6@AN9m>^,n`^6O+BqDV5_<&kQ4srtW]`aQ8H=<(;G?h_@?.DLsrZc+nOR %a2a):Pt(k9a",fK118ui4C2.&VG#T"1?Idj,CO.DMDP^F3,[kuMp<>21.u^TMf)iLa(-JbO"]^\Vb8Z#=N28g#HS"s&4nd#0]0<5 %[q.Y&EKdhMKgQoBdXaMVPY)$1%JJP6F^T9qek]Kc.<0s\%fU;"'^;/=FN9@7!t@O?0?ZccP>O"X>LuML,c5T> %c$2Oj&uAPKYHeN]Al#SCMng%_80T$hiWCn96^j$Q8pIuq[QG*MDqI8&P;?Qh0G09JdMJ_^d)GTI-,%rDLn&eUeFQXjo\*7lO>C?+ %P%ip:"^&];4jnC*>"1:orF"UVGfLbe.-'V).l[!-__k1XiB2,a]Eb-,$^YmEZjb#>R@RnP_IV^32uqoFDsRom.+oHKOaD!#bn<"B %'.Y[eVdn\kn<)DU4mE3'\spA=;0SV-NR5[X.iM#,:::XnP=-7SLQa)oa6'u)CrJcX8;e(Hn>R4t.di;Uf9RRe>!jbYQ$$@<`2630mf@BVK?;>@)oANGGS5d9-@oqM%!/iO@oF?H+t!7?8nf. %[FZT,6Z1@4.]FKC$;p9b(h/7pQ%a_rG#=3$nHfCF@]1=RS)(1m,,[P %b#72saC=I`Y.Q=)/;@CEKp>*M\=cptP(CKm7/:M5iAA4rP]7-b7+Y6AOaYZ@,Sbi``2Mn\enX]+jMjcSOf>q-mLPssUhH#Z/c5:b %;0kR+ZCcj8eB=el1N`(RKJ-E^"]?D"12`V],U2cl7l)9MK5tfkOe-e?jKMH5V?S/n,jl?A$s=so8gMo^TUd6@-tl[Q/."FmE,$/H %)Q_=p"r)O2=Od"UWao!t7dD1aRY?hmAq;(qRD"&(jWk@i!Q_j'/##cd';mtpDHh@7g?WqrJ>+pOSHg5($L+T]LHGcpJD?/;_-BgD %n8`Vkp)o(!UjU-%O_?=DNujtpB\!GTVO+!(*a@?1F96d!,/c4?;NYYQUodlL1jW^pgcU5jh%_(iC^`o[%m%B=DeiRtaFHZh&hhYS^X6<6/rJHRLW=-PD=+F.RKP@b^f;T]!(DfKI8PAbGiu'1@eI"7ee+51;=@\dZi.bhe %AAFq6/3;t\']TNXa;&9e:1'B579RH:dXg3gkK=9b+IEqOc\ %+sV0qaAH4MOf^UEROF]*e+T%n$8JVdfoo.cG2oGF[N6$C@k6_3LY3>Y4F"'-6lqK/kE-o12MF,0Nkp2]Hi'Iq@nT4$j$pK-)(9hI %7p!W(g<*^dph%3_,E&[*ZtIGP*Xg<^R/14/#/KbuGAmK@T5X^c>s*GJGd8=7ZKG9PdPEG>L+l="DSE'k"RLg[6 %du$]2K%LA&2VF`T"0I[kP,-&A%"`=c.TQ*T'YC:q=`RtOkmE?r+Q0$_UU$3l(&l]W*S0&tp!FSU@i]mDL^J$P5(ZMkq")aqYS.+94R\*)0$-!sup];\g;.PYJuX0+(A]5&a^B %8-(.eAZ_=];mpKpc-"`%OTi'8.PT]j*CjID@POYk7s2U*e8hh0fl^9/f,Utl\sB`nV`A)&;@H3dWRI.B];Q6u6^^@id#2^_5"BLY %Z]Qc03(-@F5R;p?RS(R5)4j]PnZ](E+)f4r%d'*+*@-RQ!_M2_j]CY3acs#Fi`43,F1TE3rCl[j;d:M9O!"nj+i`cAc$3U)2.TD(<\G %c:nhb!dddadPeG]K?*7m/.n"*5QP.85b06+%Y\hs+9@_P1Ft#]]K;2sX<[h+"$Xsm.hM>IVph%DUE$88M,2"(KN]85E20VBuN\=^j%BM]&6>R.?M<8./'kTYML;2_>;LM[FjU-5TB" %4H;7V@l?jo`p-.H9+]p*/;AHXK?6Pp$VA,Vj931u@mc@/E9=9,PT^B6_5Rrd!!7gcN,c^"DNV&\WriM05!'go![B+Q@;t$][&npM %KYSF>=h#XM+HP2qL?k6a/=kbb\Qd&/C=L+pbe\>c6N7K`1_2Cn(/JAE4:"-/H"AYE@7tUJ_p/:"%HmqZ/ZoQ'Z`)]?-\lb.ZcR13 %FiK(KV7U_q!s[<#+EWNjZ?:hiKichgetJ0.E&erB7H.IT5UJcJONK0Z"$nn$Jjc[5$uim(U.iWWa:7'Y_-eD]Kk.YdQQk[HFeM(S %.^2X3@h-*6^E\>POMq>b,chpnP$"MX"&W>FA_:k(C"O*rj@Z0Sk=Npl$=&CZP`3H'teOp!:WtMNEioQ2'Ke("^Rnh

dLA+mB`2i1AnB)t$S5*sg37mM@(QXsG!-.9lVA16WcaY_16g-^PM2:@Nm,&)p3\OL>jE %m6bZ_TkJfd&qel%#]:9R-"AW?Age.V%hs+R@4<0q;>*"ISrBt'SdnT9aP]bS!sm6^eC9>GJAOD$HI9A.&>Da,#QtWCOTtsddES@I %H#s>Y.7"+L6\R#ZGY2]nHOCZA78,s.1"&Ej"a;Y].Pbp/$rKb726nO'PGWF9@JphI@;0'TCa;UWJi(V-@5,gX8?Wuq.%K1?DJ(BP"M`hesD;ik0ZWOlj.TIJOLI6>7$^grT3OU)@h"W()4$LN)7s+s3Ui.cbZ(cE>>4IcKa8GU(]fK&Ks2Ir"PqTs&AG/t?pWL\ijoDL %>"5sOF.c#[A;`\6X!fONd^]pmN`s:(K%;e-,"U8tMJ-JP:D?Y:@CTKWprWiEXH8uV%E^r/)"r)+e$e0aQO/m",e2(J+RB'_Pf!qQL]pj"<#($#K!kPOLgh'JH)I'e=AQT<]:B42s#YA\@h(Si3A^3P,mS %$6q5IP&km7%"^/"ADEo8>1;7=1<80g4fnp!(Q8Uc(QJM?P3Z6E#\.Tq,Z](%jV`$4p,e=,]&jGEeKnoj9^2QJ.V'[&Q@O/Ug78X9BINhUPQ9r^?nS>8&'1g$nM6<+/p;&_RPZ!`]?B#"T+E\ePH>"h9*.^\O[&eF9 %/.G,`Vf.5W(s1q'>E6p\e*W[2;Ct29lPZjWN"7Is:%=D5$AB'_SHZi;[5LA:MBe?IPD=mSI>X2"f:e&^CRpCn.BOSch<&DQ7iCRnTNS++)V@X!d_IBXC&B,4Qo^F$'3(Y7r5nnG,9ncEKB+`bd=3HhMgY,E?>lC4.ne* %Kt"rOJ]JE0gHZ*20ZpAhMqj$dlMR\4YN+V.oYSrN#SrSH`_D2&"BD/i*a>6[G#SIOaXHMQKQM;gFg:k0$SqoHn,X]4?b)J/e]m>=@.@7CX9^?9X"B`>2')('j?)/'q:FU<= %&eh5T^]O->9O(#',Z&c"LkJGO-A_#K6r+HWWgJk>d>(RD5XHq($Uf1U6D9m?5m05Eg*.gZTU#R12CnK9:1XsL8lQZ7.8N5:-4nWL %7E`jKbb%ERj6AS?a*QQYU>ucWV#m1I'[;J.!7&Al.u4Oa+:A@EaooaHXcQq`":I:[jd1D@*AV;FLHR',\De85d6Q&+e8A)Ood7.] %1(X\fi2crnTk4lNBn5a\+[IQEe^=_cFkXkO5Eas\`tgn>1&$_\IO%5RO"Gf+dE`eF4fs.Nr40"Z,fL>q-DB$%WI7`)8n-X!?i*A\ %`ueO_kXbLGj(][d8D2&65!!-_n`\[s@M=34mA&COqV"Gs)>W*rO,fU>5IgELUb"X6p5s1IUMCt%P_[<15*?dG](SuqpNTC!,=tm\ %D!`IX301+g,e*J5[?#&gT:0`ikh8N>U&C),8'K#YpmNW+r*f4%oYm#',`30!YK""6Zf6po?>7&o18AX%C]ap/WGUjXbO"GU',_k,F'tffFm7.r)4_!1(UC5p"Z#0!5K"#Wnn#HV1 %CBonPG^IAPh$4b/4aJma*a8&6[dMNHDel"/7HcnIi2t5]d04H"miPR!p?553U(8o%/,/1g"`NMR5.][SOGuaG]KHn6mNW+r*f4%o %OTfZa`2`^eK""6gKLJ#+i9cYoFWXlXG,^_1<(^7B,qP;oQ:_H.DCh%cQ:_HVV1cH1,mp*-P+uJ0/O0VlYLNk$d@;['A8pO":f8KO%IQ\n#siN+o6a[rE_jNUpg:^]m*3X;q(B%4lRbu85F=ooWs89H$9o$#2]Od%F!@a93#ShfcY.[ir`ElQ+#oT-r;+Mg7JTg**5Tachc0-]&R%D$N. %A>LmZUBNF&fYLsL=bPsQ'em;M`H2@Xp3VTk-[o<6?]@aA7"8-`l&]Mq2C:$?qiK^%R%Gle"BXM1 %4)^4@%;cR(j!4Rold\6eM6>eD[X-X_QXsiO20,hr72]IogO96`UV\CrAf4YpQJ8i7\Ik%toE:+!oC:Ja0V@S>eS),:!U&>u5]nmq %8``.ToQ)QA@$M@n:6pS@'M#21frqb_N9aep&l`bm@lO*J\X[/nhlXWT39?]4)kQFs)`T"J'rrrrd6%8$D@.b.21/m)]POt9Bclg;teDe&=BMeS` %]c:@q!EOm:2G:`(WRdZZ9S8T7Q)U*?;l,hpdNFGkG?#QWH`KRJWK!Qc+U4e8I>nsO-+!Yf+k?^W6&G`RH4a^?PPU0BCokV>c+$2E %[8@p;ZC.Y2=?#&\W!6u,Zn5N$6#\hZLG!.%FpQM4Wf>Ou(e#thGcRpa8Vnl$'8Qc:*5brABuW>T7,]O;^g$u:a*'#NWT:KI,oSqi %W`ZFQ=6jj-g9Wukj@M2SkF7t`Rl@FKh0rElq3RUTo<+1eAr;)Rc_]jd2G\Nc@Va'.Mc,4f`I@_:>+\V %eq;75]!c:QTrOcR$G=sac#bO#n!_UUARi:9P$eDnQpm6k'!kG,FV-u<3gB;9$\@NW25=p:%S(`F't?DU-N\eSR#aLS)"aq-gLC1UldoK7>jF:CQSiiQVHWm#fsJJ#lk*Rj*D7.(a]IYZhj4flmn^',d*KLg6+-4L'ejUtad %YiXj.bUsFpm'>Y>dUc/$=Hf0H261VGCLY\R?WKcoC0.VjToBd\XH.<,MV8oOnBO.A+phFKD^mXmPm^Ib/I<29X-%/gKAF^Z;=oaDp.gEK't %,#X*s/lU:pc-k+7/eWqfN_Lhc(0_NtS(Z]X?2ZXnkW7OUcIF[8Pm"aqh:>9f'O+n&fGhUq-SB*f9n9.L#o^l]WA%,a"qFi;dmhao %oJMPZ9MJVV15TqqCX+)T9O=k["u$C+c$X7hPHG)Yg\=lR$Z"kUJs4.LWN*ZJX$2@H<.SC63Fbdkras%9I%r6jeAkAMpGrFsGDd2i %1>_NqMn2GGLes0]/ph*i`87n#knp8u+D/D_.p\J*?>E-3lHX/TWD9^V`IFUM&1DuuF0NF[l*g!$UYOK'fj %B>lJ0?))7/>Eb;]5s,IHNf1\MZj9;cX'>'Ag^)h?^dE\6BP#3.0sir+k)c4;1_$$[['kc-Z[+dIZe)WG?*AGq"f1#klLOiZ\0$/\ %],gH[s5P>MRka^SJp\^');ZSGJEIJb!G:Sj?n9Lo>X>=Z"7gOsPeTT=1*e=gHHBP8&YmPCbFTH>^]_;m_,1t0'.Qte.o=.j@QYAV %,q#Y"AD`)M%:^4`%*eFmPY@&4/\K1b%`1NP".'TKS)Mg'G\)$R3Y[t@d.dna/YFZm=Xi8PD_kcfaM %go\!oea6#!eZagOrdE8*Y1#A$^sUl!k^[[`eJq:LOL4GQor,keaHguG3`t^F?L:)\.tp5;'@uZb3WQbBr.=LkCdSmZkl%W@6O*fAJ[:K8=#?Ri;BO27ZqkY58bB_k %P)Z.TH'E;X@24C%d!P7G#4drWSP+#/8S#2KHB^hUW5?JmK35D0eUBfWPWBMPs'75h3Pm8U?6X^H0H7%l6YA[3$e^EjB(]8d#hatJ %?*Y9!lZ`s+#?s@E-QYhmP7_+iYf7c1_%i%W$"Iq3]ZFrb&Qn#_)`NJ]$>DNB7;e"S=$E!bIYJ%(Lb#V?d %p/>^D+t@)'AB>\-:IP-^;3IHG3d([aT1C_h]!e1\edoG$E&)kEG;GLjLD?qmr_u3QenPE#Q#F*\41W$f]=Icbd0)YghOHj;J,Jl/ %.lck!kL(E5I`O/ICQ>`3M#@5/cV?+lEcQMJrpS9QkUM('EIN6-c0q %.*3UrG/,m@q7YKJ6'/d7.r??sMkFs'7O<&,TQ%AT$6`5tXPIus".lHmkGVbCK4=$C6g2>se-3NG%BhDU*]627i2X=[MHEJ,j,DI; %T?AqA2$UFY'*&a%Q!c6/)6@DLR[KDmeS9?+9N$D]N5o1mTmb0?S\lijQBDS!nrNHn"p<7e8=GPF6N`f^9#)"Q'&c[+=hE& %>t84)<'SL8YuM<.*31[52B3LgHE=>sp`AI,Oa!%u=FMqSUgP699h`Xf %5"O01-3fb4'"n1K&(L_;'G&!on."B0;!`0"p9K-N)M#g9&"h_U.?kJMK@SrFUIRIpn>KFj,j*r#])L"3=,p)sST20EpYAk#Gg-a6 %g]!M5!9_J%.$ZBdc!1K*Z/aMX=r8.QD9&d>G6sVbPU5*B"!8V?bdJ!]m`+?M3S_Ypc?L/IH^=B:e_f]Y"tq4PrWesGbW9tiiXV2/ %pd0fAH3%#$LVqlAfGuZIG*iKt!cQ&roj9sT.Fe(U&8^JGLNCMOHs/beej'*jPdrZ9H4ZQ'[S,lj_s4Hhq8gD`.i5g\7(`?]>JDKSu#=sNilobjW5&gYe6.:EmF0sTab^1 %$)\3B@oC/m99N]f1D^s834=021D_q?l.&J$$t^\M]StJ]\V0u^Cn4,!l\3n)R8nQ[!L\'P+7Xs(:6A^cK]n9)V,iPV#M`W9;Sp>O %3_cFkLfV1S'6mmc!anL.Fk.srZU_hE,uC<6kp4kBjON1Q,l:#e^;*5I6Ou@%^kSk#G4-P&Eu/rb!hs+N=QrqE,m8lagYO6F9Q$%^ %*0W!cTr?]o&8Unj?ra.? %cp3Y(N)4bEQP.ULE/tXB^?Yjs;:KccZ00oB#oGEj2Lt`U\?>=GmCIZ/SQA4R6@EF\f;qjSY>2A4Mf7_>Q-"-k01q;U[+o#Yq*jEp%E]EeEZf,/%nO>Gn$pS$6C3^n0lZ+R$7"- %">?pUkLM>JcedJ1Y,B83ZtPndVRa4.(>%"F\=T?Y04i@Jbm(5YTFAR3%VkG%!/@ikoKO@S&/7LA#AfhlU?c;@']-BUb5'(.1OE;l %PD6H14fI'>:7B"Qj(6ROW;Oa#EPaqq%A*hn2Z;%doT2?L+$?L<$F8d=5D/a3kX>Xp"*=/g-X]@qQ/_n(KlDCC>6BTb=,`fu>-L<- %ca8`FRdYsiqr(I%pp8m@"P*!E6q4SlCH`dh^,u=(;:r6b?4Os*+u7KI(S3=Fhai$80=n\[p)'uY*HYkZh>5Bgbj8*o]un-3kQ8LS %D1?^OtD=aFHW=M8b]c:Y5#LLZAoX2El-uCp4+IY6&0?+*_X[(jiW[K:+%Q\8EXc!Kfh$9MWegkP(o`5q=e-A$Rhj$"!-JSWn %mYYA`3J'!5e\52)4o$pZ-"\M$8;'KW7rR(.1Q]pM3)2[ %<7,H?0i,dF".!X@YFXJ?V5/@BRcD5Y\HtI$a[euB^4a(;-JjrKZ>%D1KTlp5b$17ZTF5jSN,Qg<jO8p0&X %II==#E-lq[X/p)6P`iGi)'QV@g<3Gi:e8]JP;^`"#*Z!nHP[RN*&*TFbm4p)Q\\N#-U9Clf^,f6/TJu %#VJe2`&)Spg2fStYQg=PFc\NSemZ&/2L#BHXl$$G;#TrbH:#Yc>@8g:oMi#=p`*3bY53fh*!J@Q4=kn"%@DrMa=38`r(32V34'1,,)kL0Ep %B3IAf_&&.CV7,fbriKBn(C!X^`AH6MD?7J5f678i`R\fn@s'Js;1l6$\*gg2G*bgO8*foJZ(:F)eIj=3cHd6T %G9a=DUI*l>N/3P-Zjm+,A6Xd-=*Ji#T64f*E-0t'T2p"!Q\a>Nk%9!EQ4*fr/,5P45m40Y#&HpKd=W#XlP %CGsMhG$s+3g%u@b^V5n(A]%\IZIuW6nBuqmaW2g[9i.Z67!]Rm]%G2`c9$:s*Zp.XoH(WR%rXk2.X1p%nEMkn&ln/5K*OMd`.2M$ %#2+,cO?UJjj+8ki:s@!g_P5M;/#QJ'PrSsW]O(QJ];!-hhlr1n4NDKq6h/D&0[%mUn8#7>r;&&0p;_I)lh6IXQ$HQlWc/A>Di^qG %=*`dKM@$)cM"5(V#HT,75R]hu@I.=XQbaJCg1]t;d\WV40XEZ3L8*,6p^N#_?7L%&?L8GP %a[YC/I47UH1C'c6_9D+p8YapHA77pKKm1k_4>mu`d.rYC7tXUo:(iO-2Y,g:7YW:?`#eQhdSbi8qS5$eacLaBc`+MP8eGHcVai3U %YihR^@KmU(msB[epaL*b-%FpXg06]W&SQ[nq0h@La$"*S^=WAfL.gNo&`oligq4Jr#'e(jBjn4jG%XID)\X\LR#UcKN@?/F68 %fOeD4.7fTnef29j1sVO4j/`PfKck\UJA26O>E5TkciNG]ei/69FB`[hWp+u6d$OobVr6%Oc\ABBr]pK+\oo#&D\9ho]pEkHHpLiL %Ziu3,i&<>]o44U#fic^DdX\n#iW34qEc1ZB,9*/T2&!(S#8O+;iUkC[NH)L8"iD/"iNoQ?e/+n %)hB7ufC]/<-Pa[m!/2X_/cU:K!kc#+PT.&Tbm?ZCpDQdik!,$=>EDO@#KE(44\JHlE]k+f(0H^ajRF1n"/Ec,"3N>t#eg`+,%5AR %ROP3aiqQnP)nH+@q][*tou`>4_0nh&Z`_aaCa`+'h%XX[rF/gZIC+Gbk1@TQ%n;:`;NT*.!2&NB3sUpWb9D@"uTMS %(Zne@03P>UPCp6-=Y"g/oQ^?/UE4:;+#DP$0*a1QV1KG=b,pW5o)5-;mFS3+djiap4SdV%c2$a+GQ*Y0pj8#;.)@gAkS5@l@?4ZM %nA[4eM$+7&6Kg"a(BC2c)N1m\Kn0_1&cuf`8@/smLg7`e4G3P'U_LKI&$AO/T+I*V#tkCg;V%M4WXg(*[,=0\"_4E2VT!n:p<,d' %kk-^U7;N#.5IaPMY`)SGVVi;Oi\m&sl&?i-)nuijRj7dui'RcUl'DK>Uk$7hE.%X:a#MnNUln0WJbr?NS.U %i)(n`06DDT_+PkI7Q10`>IP[cq%2gQTdIna;-hZAA!q;)SG`ed*-H6hooDotTct(LC*;t8XrY=d>\rn`+@lXO9CDT''0N9$.MOI0 %M?l,TEZ$6,.h1TC;k'b89@kI*,*.$i\o"/AknKfK,XoRlD'MLX&.D5i"O!7#@mfCVrB,=J1e6j\H.X$mV,=orJ#BmQ%erq"U1qL;a)IHMm)YS6`e"^2!SY4Je^2NH3!jO_5mr01..S(\OL&H5@08L>ffG]^3Da7IIY4eu(]G*$'P8&G_R$n72)-OVddec+48]@pNg# %6/@`R.$m)&Mf)E-ek^a+7o/A(8oW2mM/X!C-LiJ;C'`]`msG6r8+Zj(h4TPU6S"?8\3^sq5gicm-HP6-Ki4AE#7kRK:>KTjgPT>@ %75L^8kKbXi%5#Elg4;NslDZ;fE#B(UEg-g]l\rojcDY/er$.JYjZh<"pH@$N)+Q2D-Bn=EAeit%@s\Lo;JfDcseJP="m\F"7pJ#XdHTUj`T9N>?!?#5&:IfVB$E_F6F^5O#jR\cWVWuquSfXr&goT %/MmeLF`R+d$4k)lM*iO0+u,ksW+lVaI$g*5#.>i(W>o*j"bcd`DAtn>QKM'h]A"2oB+?ed9HMrW,$:h_M>6j.3_;2ck8Fiq`]sYG %8.nmj#n3AH1arZ*/&4ET&I>R@/%OdO>kZeT)%5gOUq@On/j#!\$YgkfASDP1]bY"mA^Z.%RC.Wj:o$)S&`@aS^;R2EAP;mTOiWFR %7qXq)5rfbE=Eqe5?NTfam2>QC/E=X+VifI*]k9'o%,n.e5%%i$6"%[2U;[*b&s&j2(NLCP>mJr3rN"N=EQ.cPYpMJup(a3``G$L7 %PO7K;f&X:'94pBAAar*ZZLjQ"*H'*=hks^"V>1j+`K(6?Rd)SE&rt/t`;&`bA$bl %im;Cl%E!DJ2Ug5k^SI.VT;$K+8R?Nk1>ORsjn_3E0@-NTS:44Qc2eMdG>YoXi:jcm.5-B?eS67/a%IJ4J:V#fH-W)@L\Go4NS+1Qukrb;2b(DJ[)QIXT9$4^?Oi*?rZg3Vu0"ZgHrf'C=[ZUMo_-/R@*`_S3iJ118JDp[MVRSndT;sa6E %q]Lm0*1cJ"5tegh-=hbH-1637B@.NLJk+a4gp3Jtt9%k`Js\pKe9l^RA%[H3=-j&OWV?bXR=WZQ3W_!#0/ %R4pKNWWQI7bPR[@;tq>AKPD^F@_jbI$P)aJ+I[W66O2]"8Aq^iU(.k\MTd6O_[,KLWMM)dn&,CqUft*BqQ7Xm90Jj)_6`iZgd"5= %TnBQ\p]p@!T`hAIK!^)RR%TrMgKXm=64pjELt(Y.Mm.YV._aaFRR=X-c&]=LbCAFL^A%N>?Jkb\m.C/:D4)U-p6lk5$NUE"(,!I+ %,+%L-]oTo*o:L8Ys*/a9F%LjjA1YgupA4Zmn%S^@riSrYS(h:&cG")C(i8(JCa7seRSB82otlriO+&=li^qu>*a=a3@ZUWq)+n%U %:r";Kjd/gg5]T'hiDFjH+pd?7%'2a/&i6=^"1!#;3;uY!/S3ZqE>aS0eO*+A3/lRB],B0`qm?h_5$HWl=jH2l.$@PDkJ14'.[Hn9 %)I1ZX=+]9p9Ip,fXHd.[?Y7?$kY^8F8Wc`Mn4nd^!^/,)b0C(K7ggJ+s0Dn:%!B@CCn#4O&T&oYe7bf8Kb7+H,G*&\3DDRDW/X9) %#-9n6oO\)u<9W[Th^.W]2<,2,mprH;"MHWM.u<2K+I.'$JGnC8geG0K.dQ=7I+0M\!O-"AMOaegXgRZNE$LeHhhoN,C[i5GTp;H6tpPcU`73VJIlTJ3lB`SK1t %4">V5o\+gNK@;b(\7k*R8bP1;$4:-L$X]Gj"c?bXZgHLjbAFqqm_KlDVqp0>>,-'<#m:,Sdqn=YrSoJK/nm9]i/S@;MHZrYY._h) %@"j_.qe/%=g/p6gJaI?Igac>ZO'uKl2*/cLdmTA7ctA"$n>C1oE;+6uVLhhZ7:9d31?R"n.`)C$`50k0:8iK`ZY_s/m;N7^]]1eJ@\!pl;r)t5aUBMV9aa8.8\;7V%S4Kq)3LUhV36Q&g8?[tLu9u" %!6'3.;si>^Ref2qMuV9On;sj4pj"=aL$*07B`n$-C(rH5]^b.:[0,rBQP6Bu;T,'js;UC'Db:P`;u4[[CGj)1-3c %RQs$`$LOt2ghA;`%k1W:";iOF248:4[U3k7OP9iJ!$-;/Ha\r@R,&>B?B.9":hjH25m>cYl-i50T[Z\0VLl8&N3Q; %B`f!!J=nYVC$WPAQmTLi5b7sud(mHbfl>Yj%2+rYc[^T+#ab$9bjpC(` %]6`jL:dn\X]`-@aaKE2b06Hc2BK)LZA@e6 %b7u>&"9WT%E2Pr6.#c)C7ri1Nn4`E'0BRf$PHWU["AL(H6"LDq!-R&)T,JJ"Si*nfIiITs5/bK)k/&_-jdM_rN>L7ME9_%;#`ns!O'`5X,fE#cA1m %I,7_0.`AYST1Co\T0`Y`=oDC;L-r%U%RnE<+]I2aGe42TDWM,$+9uB$YRo:k7fDBs&QF>)Cu(HAm`$ME8F92@RqBq_j4#'g>"9FQ %D(Mfq_:3YcU%j3WE0p8@B[=MO5/"oE*d3OJS:R.IQR]GSFU#C'dI07,*O#Z*dN+-7,Y)MjAOiKdPh2FNL$@Uo<'l>H/TB6Tp8>eA %:ZT.0j=*7OIVls+4TI!u)4e]!'VLEe;jmc5153]<1>u_m3a>BH3_nS.'_JC#UP&["X$$k %"e.2-+,Yn?;b2"\m0/d!AA`G4er%eVi3>TE'8e[L.Wg8aQP:Us0tB1!CN,9pkk8h$B4[Yg$Qqa.iBs9]I[QX[+MrCk"!R4(n9G!P %K[5X3[@`aPO)^87B %j=3lEQ[OsW6)@*ki(2Qg9JgBoE7qZ$_odcPm#a71`<0DPr$"UoqgGK*6U3\a`;=#B1tkDEC8rg-eiG'BCKk:3'$DDf`<2(Ld:\\C %.^-S;MH!]Lf1T4L&_JdM&>U^+'bR.b?fGa*b@,Vq!WaI)&\'rZoZodQ1tYWiT(gD+ZdGD1;X7;i %"2Z(!&.K&D&k.L;8^\`Xa;WR.F51tVOV"P:UF.+<2 %R!C"hY[+_V]-h#53*2.T%Wp&;1B2.8)T239gn1oO.Z$rRqGeE\SR\ %Aj]]/+9mCT[]!Z3HcUBZlTST50WJSYdi#HMiTrFpkF,1`h;]HRAkhNTHO.!oQ`%\1\6Wf#VV2BEnWYXMG@S!##Th=F0&2LmsM %2(9+,i';QC;"bpH`$BfWMeJ)0daL$^_ug^_RtqA.sFH!FukPg8MeAel;CZ %a]lMXKKkYL8E-TV^7kC9lf7X,4p>,g9Wi;KHR4=V4:b'$8..C&8Q/"C,@L56gS0CWYd4lUMY8Ed7qNi.AFa4U819c`dZdS/2=UNr %'4]VS"+GK5[q5:EcIPAT40o^'o*aNjd_,/0DHaa\(B@;U@,Fd6W2M3s %+1m'6oVGCsoaB29(W>_D*j%R2B+"-A`LKefej'dk\c4p9$Jqo^&?L,FLm0N]SZ+C4XQblY0p"K*TN,%WdtO>SO2M/4V#g>6.6t>0 %FjHgtQ"u^d['(tE&@[p6,S:DAMeWt\]bOID5kru%5=tF1GoB6]fVe;LGg?iS&fYUMLppId"MgP:iNYW\_9c1W*!f2qE^MPlK76Od %`H"Tb=%J&o/&U?RqIWjc_Y];@pQ@CbR@$R')7"&%6$3[[d7R@`P73=R_l!KO4\JE/M*n3=`;%fh/'bT*ld9"@3t %;.\IL9C!DZ7561p*C9#bs3ZFXns[L@l]GsLRDC'XJGrX<ZNB+)*Rnn"a=8S2Wpl-pqo-'[07C8out] %:^R[^/,Hqi$7EUtmq8:S=L=r]G2$Tc_2:3sLSC\3JkIF7aJ"aLi"NM=iA!_WQLe\T!5npG.ZS&9O(^Oc1b-^-J;?Id4ed[2%`!\p9uC<]l5G(Y))&LrnqS@7 %Pp>2e8.5585__U[l6GD(I"H-tMY+1MZ*EM;"gu_rGj#2e)iQj45E5XgmtrAEDciYV@"^%t!EH:$_9dJir%:8]=[I;-Pm=JT6JkoN %iaG:%@5-9bi)iA2'(VO=CFL.Hr4AaYde(+OD&$?#X"1pUdROXci'O,lP/JIrS5L%PphbqR=(k)*^T$n)ebD]>;%2-03!f#I@3.l3 %r^BZtP>A?NGHK&ad?/5r'^9c7HsLEB<_sFQZ]O_PYn%p;FqWi&,7bPsepi_2`0DJ/-S>Zm.7@qYlDg1A,!nN2>tIHJn:/S+,4'8i %&lAp%ZR(HAViuq&r1WQQ8*1>MQcgKIPUH0jr1PEdk_\ndo_SJ/4Ze-a^O#m@IR*mo?C*l5m(nnH%k2sU;gsk.)D*2YaWWEf'$oYB %4Q[4>FZDk(K@Ls9)@cS.3CH?nOrSLuHj=FI7!`,KOdUC(ZMl5n+YnEtnk5P?ij:`]Q,as-ClZ\\Oj/>BXI=[[78(6L.kaQUoiX\.>o&Qb)JWKI7?k3a$i3:=)K[pd;e?Wh/&jZ677>I)I"kcl.aQBaWd0"KZA>75r/<0N/o3FV&Z'VQ7/Rnq %;eH]IQhF"WLdL)K@CJ1R-rO@\KtuK17HA5ZN`l*.B+`,[Z\[&B@IMA`)SWjCMeL"eQRnj_a4g&Lo4cZ\[D"7C6S; %/QkJc&u58*6j0)l&UD[gl*H1Fk&d:g(6SI3/0[K78J[Hfe1;fO/rN9&cQ])%]lUK8o(jm].2fbj=[]N,&LC2R_.R]0TD2T!5#9t' %SOYMa/t#+AD'fjN+.,V&/7[8`P"MMrPph=Y?XbojR\*;2q&K!_iZ>!24[FbgP"p*p3g!B;IH#>m0/&4VksUup%d?C?;q$T_g2nO6 %etj&!Fm2p<.1ml)U,l#hhN %rW.jDR1k.[.?S;rs4:$ldP[l@b0)r;'8bX,f7!V57&#ZNhjmmrqWT]Spu*5IWJ]6U\X>%HXG\uMMO7b;"MN(-Mm5]]6amEuoTJ1#=q*Z)=WW2=Hj'QRO!Op-#H$#G]IHXX %:dUE.;U$muSaXu&AK3qRRti[f]*BkhA5;nQKKp^5;s`CZ]s.4Tfu_M'NrsP%aGFKS7G\)N1p#%0L9d0`_#ac$-ao1q#pOnLQc_)b %noLO/fl]e"GcYmRH-)^od %A-!7bd1\OJo`i:6eWK%\jkX8DCF0L^SJMQ)oK"RKHjI`1ae,`nh$_0uH[+W4:VZ_n,QA-2!6XtN/1;_4qX]t:I)62"([KA6rpWLW %N*WMHBDTLnSMYMpm]>X`T5`M.lo+JEbjqBNJp=Z;q5tb+,7bM_E>ZA$*LR91:bgBq?=:X04m$#P]io.0OWH"F*S2V/X3/6nQ=7H( %@]r/io"km?)JB5P4b:7/n?b:s %BT9Yn%aK;8jluDb@'\hj(OVa$+%+U(;@hPa8'9EJ)0C_0h&dA[EQOr/,CNAd::k:jiM1b&DRDnIR>A$%g&g]T_s1j#mI5J$=8%MkL1]0F?kVs1r_Cn5Ecbq+k+F)cJaa;PU+19^WCsmE<3(KZI.HD)JK).s@JE6sqQA9$7-1a`e %iN-,.ib1K`h#AoY";omfU749oln[P7T.#MA0Q%hSj4Al+X"_O%adWj\"cp1^THni1EjN6ipSXLE?RFd2UbG#`2Hse;jgL'?>YnD< %%+Om/ht.$WmMO([a"3Zf/0J83jf6=s&gnf+Vis6J9pQhS6*fcbV9DZk:5Qg!mo$LTIPSP_TCl`t_j]_P21V\2L"7#oWM$+R+fV+G %JZUBr$td3#S-Ns07'(@"IjT1L@c6`D'o%rH/ns6A;#rNmXNIo$]40,A4c('cg3('OO;&-Weq;rmN%;JkVd3^5a1DS]46J`Du&1' %0I5:b_]lsD1+Mq06F=CkjP)Qrco`bSUn9=$hXJ^?rSfrRaJc"@!Lt^0l+Yi,=l>K,/l8bCoK7kL4._[MJ;aOS*"PSE'jQI\*'*#$:leH#n-MnU!*m&.jRX')R#F<@id#8rsK+JYH,>"TfgU:>X1BPg=?nJk2$21LUVKk]Y(1qtHHmkX#IF %9#J^S\$=\>.8h_1T*1PL'eQtgYlehR'-rKn#=0]WlSnY7*ZI3qEg%_3qmmjO"QVlH8lVH<:5EGsUejI:^&9^>8`4E(@%E%"SO1/f %-egLHnPuh.`Vj^.hdGpj((S[K'FO.jL!?L#mR?q=8(QY`UIRJ;4">KpU:c2B+nWK-[]^EG<"ftqhWa^pqs0;EDtcHnGk1iMn+->B %=XOC.DliughEP#)H>SLO9l71s:F5Jj:DS3Q9S$iQh1GkPXZotJdH%rnR"1!%82Tg:4-X_?0!(:W1AIN=e-+`;8Fq_K+u8Vbd)eCG %;oEB=eqr(`'m?Q4;9^//."g*$0MnQ*mPbt1DFdL/oI2OrcA>Wa5>5"5(U3U+B+O`kic" %Q2ke+O"K*p>Pc#pRVq7=+\-=\cmCgc[NOL7'd?4iNm<1NP8bO8`0`Y]0#-a_9t_Crd=BbG<_PSdH!m^&]r%#B/hH>,EB7Y%1"lko %Fohq2QqrC4SR1$$nD[KTdUd2DOS64+RR2A0J2H_?qqXm/-S-g$n`Gqei2mu/:4Z3bW)O99;pTHIMj3JlJJ"M+:c'TLH*O7XJAZBK %B`W7SOSU_\D-Ji*CP\&Qurh2-TeVY)Q9WYZ,.=:hb[k\4d&UlVt`hF=n0.r1;9q:!Bl,U323_ucL;'`ULS57j')[d5"*Z:rRWMMd1KIatdDKMrbLReds^AZc-0=H=H$!@iio8dpqLR`$P'H:q5Qb_!s:.cq"0j %flBNmI\VEW5b7(3kD5hDq\[8kO]b-7`%k7ZPX%d[fXA`;*KV6Gi*.g/_-U'E%"\qTj`4UNK$35D9!8;_kJ>m4Vdf[aM$rYqY#tiq %jC7,sKimSPT5.h2h,d]ZP\?k5DU(#i>K]Km!`g9p"0F.ZDA;.])[TH#;4*b2D*?:d$L7j.,>g0M7:Bim25]k+.Kb>d/n?DdS9:[# %R3S=[VPDOTTW";kI]1*6-CdjDmf\@^W_GQnA++Oca)Q!^-&7+ka+-G9M%D:Fo3G.:2cf#aTit8/hD!CHdI1*0meeM:4j"bC+^'W/!0!F^Pb[Jb'AV*_Cj>oiPsOc95LO %A#1"m#G;-cU=BP5fTrP:$75f,2N@H,8j9V40!&\719]iA"p)HNn?;u.(ZSIT!t^R%_$@1&"W(0,Zk\PS#6VIcQQ'[T6#B7&+o6Q$ %]d7S)@eJ)S+.tYaVV7FLKBN[p!mZImWj%,hZ#F&GheAk3+ %c5da2%:Y,P:_ss,Z1B^D+!;0'N9STb&s>.=Jj0Q#R9+8#$n01 %YG'6?q18*Tf8^2,IhYtua0O0L1IjlcQ>/fJCjD'to.7We[G1]@jSQ6dGJ%AW&@8LV!f-HF8$5A@+?;VIcEtO.SDt3_2,u@3@,e8# %Lu+rEIL\aeDFcHL:;A8Hp$+X=?J0;!:"k$aF0$tZ5TNZJKtZUkrZ5C^n_/-AM8kt1=@6bBfr,>AJfHKICJ*Z&P%11!kXgPrU+id; %s+6tEQ=U,e.Wb>9^Cn6aD[%nN%GsM:d\=F6ad!AVp[I/%)L2Ci+n8(XAP_`l!Dd+l>?-'PNd*[DpYLhM %j3%DkHNW%*]f4\RdmNR,!eaN>9IJ=dG0fRu^MAdPP!%,!H!U5a(^$Zk;g.kC#'Pr%a*r\*;:^.,H4ke8.`euAXSK*gZYpJXk`-DXP"*n:2i95[Ja46.h*#h1d]p,+frKd&^9_>b %:/E-0gnJ07C"p_8+Q[2^9$mrm-TXZ:l4>,e+e1R(=nFo-!3RU)OQ]2&;h.$-$XKdQ&RR]ccC(M>G[3#93!9<7EHjJdE2Esl"C3^W %&C/7&&7R.%MeIp?%6+JC<[/$L">ISRo55\lS67GlUFTMC?f!Pk\-.gf90X11Nl88g(ckot+(=TQ2>1)s%.jk&9a!qZPZaef:qHfT %Drpt>P`Gd3AC/"`[/hp:d3Eb!C!(qDPZ+GkDQ0Jr33pn6\Z:j2W8Vf;TlC(:A8\m8_\GjE(1F4?MR1/?A>Vd]GSqaV,V]NA'*l?:47-8"k$t:QJIC(@%BC:Am<5EQCON/id %pE*]q`LS5,H926go&46=#"c+m9mD-6G5@Z9@>p,i@$8I-+sDhUI"I;=\kN+-" %64&V#T7j6he\cCc2lZ'GNf5LB%kDsu$*?5Jau1OAOX#`^4_/8\/dPl/F5%>b?.9XBGeaI*b45"\<N5#(n2r^SUAkI8VlshST#q)cA:M&/JE2C*VHb;?PUe#GEeWRP/lJ3-#q6Z6/h<`&KNu[=Pa/%L]MUjf %\O*SNfBKL=l$!#)B"(RHN\)H=_iQ#n.@9%`k>SO)N@Li28oJ$uEa9QR"Q@thrHd#Hc;shqC?"b;5GOT7r'5J@JPSVVPK)S^rmpsR %UVU9W*4i"CD\'IZ^.,o=]C+!$^B'IVe)9V@):;NJ3`G$#/-WMok`S*Fa@D<1^TK]EjJtpYMqN`]@.T&:rf#JJ7q4ZCm!#4$>CtJ"FG#:+.j:^"<f+mLL %+[*/<%1feY!nlQLD]s3NcKk;EURWEMUYHrd2s0`a,H%/[EFM?PF7Y:dgiOj:ArjIj%XlF?cptIk/[Z3,o %Oo.u\E2bW]_COd\YUPCenlC1OF+J&#:r62f(E[%$RIjfUP==`2l1bQ$>f %s0hk*"dYdRc6XA.*q;HF`]AkRr<(h_i7pHB^IP^D%/PIcRbt:1 %\#]>lC4ikMVjD_$9O*@_$'J&22U`buOigP#SbiP/+^D\Fa5*V&%HFC)uj! %n"u1cMa>W4KX3kKhQB?&SHJOfGf>]7HKj)eOMV!%_6X_HP[3j_YgF`Aj %^:<%Fra)f%?rXen.X#4uBSl/h0GI_A0Gr-lbo %`b7FNXnE6EV;'CB0cKCcfH47WZej1.;(k#"Ce)\qe'^`\i0.h7$Ap#7Ul@LS*s:m.PFL7*Z(CL80NB[UIm?'hW+$)Ms'4W6QM.@- %gFr2t3a4?"LY5-uLLk)2RIP]7aeMqTolBd#58XP&'/m5uKY%lOe,ju5R/23(7XEO3@-#ruKSn`8kQ!i\j;]ps2ODED_pSn1;>S.= %r?jXSlF.#nm/d3i4b02W-S?OR?#NnFHFWrQd0GKbf&d*eSB:(M%ZG7YQdr@UXZ,mf_5J'RErEsLN`U2&+!-Q"Y"r'q_#/8m6pK#Q %a^DAb*pt]Dh\Ao.9":@@p2ogREu]r(\C`JgVT_DiPg*3W*;5li:2Bf %.V6.ep\JmF=L\4en%\nNfBD&g`42L2\a^MI>`.)a56?!;E`8H=_t]IsWG;#(j4sHI[Iq#hq58rg9Ig3YeDUbFj]0.sJ$a*/$<;fFmtfpAW"8$?]MOK?8=m'[!SpLUkETk>bk%e:Z_88m\47XHkQqsBHl(7A`pprDWFqmQXmEHju)peQ^! %Z$7\40HGV3?dJ$YS%"S(b1AE)J4ZUWrmsm/)u,[^/G@mUq^jH>2bh5:5E7KT.SPSaj9nAE34bFo,6M1p00,@fI\%8pWgm9&;uDd# %B?t.,d#6;#5=/DVdFV'nrN-C_hX.d/jD!4s`:j,<:AVT*0t<0Pp8@.k5@WO!a>b*<+Ri1Tf"ti>*"(qkRc.Rd(=N'ABZRkR@UZX! %@Y)l\J\mm0UBR1c@pUL%MF>?bP\5(1*5.%Qe(L)G%C$$^D@qN1Tne]d`V=X5J'm&PTb'N,Rrl:W)9,3M[PHiM?VN0`*(+]Y %h=V'=!:9:jZ@WY&>,*Gf5,6f?0es14UdmA9_OJfd#FrX5O;'oN"jdL!,rRMn=:g7sL%&`6UFP;+R*ZZ/6s-(A#D0V$^oJ`D(Dadg %W."g2Xoo%9cm)X1,TQE26[i,A$XiJ8@]!;][6"SENON)VnF]#Y;-!cS1s*XIJG\TpF] %YX;)QLq3R#&]ok8F9`7*Jd>0YKbY(p8@*9`:Bo5.'CZna^dRr:#"P&j1-ai-O;gn.(ns=$)$-95j7Pqs(aiq0YKSt6.O>.D=##Z; %2A?E>!u^ff&<25`"`N=2'UN9b,Y<6?!;pe&,eUcDNWglWAqh`kRXqU`a]9OHKH4Yu5%G]kHR-0L):]U41`b##j4qui;*b9R/VoUA %TRpVE"p/bf^s3TY5X@,e(]fI%KfHVr_#S!S7kh`;(a9M$0WYDp+5NRiC^\Z5$slt&$"@Q3,XK*EeFrr1-K?1e&e%etJ-/(WeVM%Z %+qA[hKj\Y+7gg4dck9c95HiU'*"`3&&B9aL0Vd,W%^3*)^ch[WLEL)lfOU\;T9#'&.SmV%:OKW3U.u"($d6_^^Msoh0PRaPe0tb!,8J&m+UhLJ&meLmmW7q#ktun)D6RCRe-(+^/gV*6o7:B:2jH#hXl@#p9:]8-1Ra7_XCsNLY&4`3'\S#3Zu!S3q\#<02s28:LU_O@ULW&?6-5I2#Bf %]LcY1KJV2LWAF`L7>%$;o%YK>`]/^/0G4?lgb30_0PI7MIXm+DU#p8EW@0O[,8hUK!kf!,AloEF!Y`i[VSLA8iGdn+/3?J?p_$[JL)aSq2Hdj!`k`FPT0/?dK<6'AQ`#T`rI1k]EY%i3NlqcPaNeKLefl[te0DH_7^3k'@9I3Yn6_7M %HS)U*/,K[Tgtqlkd+crCT3=r)+F?/LK_ae*<+B"E3I0`7b`6\fd)>Km%hCG5S0U[:[R$o/`YcUNOVm+PJ\#;G+'?,a2%57dbJt*Z %JLFql#U>ERZrKE;nrl@k69Ze';@_c;J]jmOf`S#o_?c/Ckm+(`$B7rN(JqbA]bI6f4*UH9RQSkRJJ]P\9KY-niLosuT*hkY!_8RK %"'[L?Cahu`^gD!'j1m":D?d$N@jln8#r;Jt`$Q2aT1H5bA)'tD3;.G:O$k<2#DjSF`(*)D8')+W;'u7W<_P5#'La,YB9n)J+VBPJ %N8#cQ+\3S#i$&),<_N>k'JhuV&,pTH6RWL6WL"\t'PSSDd4+WG_r<).Ic/'I5K]ms;WC(F#U1iI42li2:DZ4a'sk('pqL'7M*d^4 %'KZ$4kp3%M^jHCVUKiu^^h-B:kWLI,kX^:9hf1hV"O=i5`&eMR1ZO2h-,=eNMMiQqVLD:(R",T*HV,3=JUS8'l@'c&B+M]@La_[K:!!cfQ#o(^^E)(#k[(Hi@.Ma3%u49UmF%ER1+oq.IoH'A/mV1SDo2D$\\`n`L&\*Bn"KkS(kR9 %(:NLE[hhhoWbjQR=.bLr9V(V?<8IP'122Rn\E5ucisY!X2?0;o?%p@KZUnVK_VD+rkjb_:/MAq&b,:kfN5:[H[[1+o&rP$)SkX$4qI^O]HQl?BSr@=b;jq'$6Tl,@s0*TMSbFl!1@fok`=;)KPo<>/ %MrAitEgRL`pD!V[s0Z:'A%/Ua]g(`J0'^g$-"N[,a$p">`.$Ym**oW.d$4aVu\k[JfC:<^T,# %VP.on3Ei3V4mKu]reX;*8Gk^5"K'ZtPf) %0REPs2B'jN97:lg>;$KQ?9u;of8#?# %d2='ohN'pm,Eta)65B1p6OIS'h3=NE6?>>bShb3enGjV.-5tK3cnq6#ZX"](<)"48i$/L:bWjRGPl:* %=XjP4T9Y52F(`\eS\pI5K%+3*a%5)/rG/U_%;1%!5?lA*J+;N.X$"q/._V8jkfHBQ=Dp0=M_"Pfa1Sh]X]WeJ,Q/+G"*Ws`2]PQX %5=XB:SDiP+'87JK]s'qgnbb+nB5?`.oR^BYUfLgmb$ZsY!8bMEk[/j!'-P?OWQ*)'@1O3oN^#)Qom?Y3+ZE2^nqY29@oR*Jh1:I" %;s&da83lN4KWdNYBZP1AQ,,l#j^QIZ2piNqMY%ss;I'gs"WYB@oN]\N^)WSMs1l%=OFGGp\5"Zj?QNF3j:g7%+SfBumf\:UG-7-Wc)-DR!@QG"b,)+euC#brB^6GN+De'ut`s=rD#.19>>.MJ\j8J>/cs:\/]GbF(Q" %S76-TPigODp%3"?H=r'N4S##d95l\I5.+s.6=*.XP*S'310Pn5R)7!>3%ZXB(<*pqMJ6Z<;uBO20lNUqf,5eV5@D8\fm2i4C9;7" %:aoul<-b\XQJNpD9Ng%3H,Fs))a\o/E^?$C\/EJPUJ1G<0#?:6%1:P %6/VDJ+NV"X`Ii2!U8#QQ(lgo0S;/;^d#ZG%@6[\,/&FoL.>i`<5/#dOYS%];_l.-0*d\]BH\0hcqt3F"frZqeU7jD"hnZ)hMT(qS %G.p&8>!l_iC(4`C<,3m6VHV9^*;B!-)hIbu`JZ4`CqSJKLPsE#]O%Rs`XT.j^aXf-\5QIeSJQMf)#^X';3ACQ.J^0,G:O]ea;r?e %S4H:&P[dG2rZj%W0?9kgau(BTIPebn3@UY2>fO,).CY7030U-IQ@GleJ>.X2k"#s$iNkV=T]>NaB#E$M='LPIKf@b0o0bmW#ZP`V:@Rj:`_.omf8Pj"`>O[iP %MF#IH"6lkN5u.)X0XP,(PY#Kbm#ahLbNo^eY#g:hIpE?/>m_X_5D)OfC6@%[6Gk$Nc?O^jjB(VX()VuIt]9[d_LWqVj&o^Ti[;RbP1o.dh?HbB],9)G[j>5t4jT5=ZmJbH)G$a8t$di5!nXGtJ %ACQF\^bdQo6<4qOMi#,4o=-CY1[*&)OX>]MSmKWL=XLCH,?e86mcl*XEbf&3i;*6A^.SD_g8]lZB*KN[KURjTX?p/=QaW?pk"'(*/$0#k-;):L#*kN\ %^UoHKoU2L^/4Uuq:iOUH(MVFRPr%WU8CWE_7,oq7Q;]u0Z\#6^5j'opL09G*NDsp::eq)B_bH7ALKjnc0[?*./b@+"Df9:3)P">u %Y@Oau]c'3CNeXgVSn.KF]kS*uFq%J<*uNEpCQ,=u$(eQOD(nRc@K_RGjNu*Oj@rija+motZ_JP&/:Dsg6S'`I&5l_tGp%A?Gboo; %cu3;p9>^>%_PF>6I@`h5j&lm8f*aI!J22s\<)(@FlQR8*.PEO/U7#\so8LsPeWXK,JcWmVC"2Uq7Xq!O>U%u9)t3C:SF[7"?f:^R %pS7HSYjARWfn/=^]fcPm8Pa9@TUUu6lnjG!'F'Xe2%s+B4qI7eh:_/g0\g*'"uruDDM3#G8O!s[A?k=9fr`)1$p`u %!H&tZ`Tscoc"s:BXQK#f40N\Sb)(,BSSb_o#Cc2GK.\lJZ7XdVFT*RCf[B]/LUqba6V!>_7/[7O70^&G4EYX5=%-8JCA-1=oO2hB %o(j\tgj*o??T&kK4+^]Or5N7V)*[Y%'ja^8V>sl>=sJ=[V!IU5F^JKg*f8IBIH_W9PGVNO;CN=(K"Q12:HYuemcr@^=6qARMpfr> %11@;3d`H?73K6^5L2u//[bEPng:K/)O2W)QMBj8OM-Agi;LQ%)P2!m)b3/7taFXQs-GP%srQ7mjIWI:@iH6JWm`dApX5H14,oNg' %[ToNs5!:>Y<0OT&W0Ndi'8*Cqs7BC*I.7e;p0<+QR]E:;ceQ-*V.m6q'l9MYW_5%fs/@EFW)KYG[0QH-@ABR$D0#G!1=ATnT(KA_AF1C`uNZ'9sH]$g?@:KK;]Hd$+l#A9c02GKs!!Bl41B!0q!3b;L7r'$S'cHMoC %fgg=T?WOK,ajhiN:W10U7^3XZhmFH`]S^p\@(CJc1]I#lT%b-r<'WU6@3\`OK_YAoXUmlGu9P\ifO&cQ3LQLW?f^/ut) %pUE`X"k?^14a,?:dV4:WGpAs&LDAlK,!C.3*`b-[_l=gERVGtI*OFl; %Y1G7AKnKt#:bAW%cJn:39*+\S>'m'B %+*4-]d)*CHEWUSjB?..0&FgE5906Ab;tPp/&?K#Ian7>h-QRFakEFZfoJ$oV4l%7fKn?W_$&%J`]@-$7LQn(E*>e==I%/E %Fi=mbI!1(;rT.Dir$hDR9K`]f^J78QHXj']hB,Kq.?UE^n!r=.[g)V3)q_E6mjodHe"IX#jmCWY,;UX8YIVA3k0/jo>IT+3Ldu_W %(j>DmW"r:E15<.fk5!6=O]q9e94&CXN."0gU"8tDP,a#-C\c2a*:dU)r\0r^/mj_1P`\6T]cc?26J^_:)LkHtgSVK6#+Yoo0rejo %F3=hGoal`kL@C6K:[:qoV<%p>PC$Zh)#N9r.iPpaE$SW@XiHj_DFQs.l$7(&%TB>ToI;nZ=I3D@2]Y`.C9DgW[ELKhGmAMO!)G1H %B49[:/lSmuEn31-g[e)B@p>'h[;5)"ZI:GRq-<.B=_ET%r4.$C*LiRGI?3QnAE4WLr".-_k204B!Am%W1h2oTDmh,LO)\C(\_&m\ %jWr08?m;/Uso]0MmTE@?2I@3&r9_!9XBh9u#IP6r9RkR%*d+un`89XhnW_oiTZ2VdRMQe#C %3S\'BaC']q2$lJnJ;RiVs/7$M_qat0*WK>1B/tEr.>`M+?dm@MB$cJ"/(pr^&+F9Q^!/KtJ\S%LW_tQISdKeL9t^53ah]/U@$>#= %pd:?c.LcdA$hZ3U_"Neh8Fj\Hpc"qG#c+>K84#.`^4:N-$n8EM9SXcgO?7=S>81'a["><>Z3ZUEf-pL_I)Ed[28Y-3UG>KcqgA1.*A1 %;qU#f#G\(g?h0#6W*6=)(=AeT08S^TqN-bch$H(DLq:S:c-+TJ$&%8>N,J^DfH`hOUQ.Mmm,r^fOWEm-)"921om>ZI.b,M7.Nkgo %Ca9K8ea?C;q':^>Fd@WUciZB:g.>.XEd4h,o"BJ+R>gt]#$7u!>i].Xa".QF6rALl9+mQnRLBi3-@>hHfHj/7YV8UM.V[<869iM[ %@Q$YD?`Wu:0fPFr*cTmX(J56\QI*50VfEjQ30:8tI0[]mUjJk9F4GS1[J$G.c;jPjO.S&qafo?o,o'.0OF/blPht-OWHooIJ2%HO %>qM*S"#<[iKcTne'PpUn_.,8i]pG5Ao%*Uc=$\<.[^KYqq]HY%USh`5s9:>d05ju^re(jYresr %`t,eJDq9.8@<:iu_o1:4DL>AYL(mQ0SOK%W#oX/_`am`JWHpc*p!h1/^.;UQ]X1?tI-\]N:D096eJt_8E?68e@`-jLU+91H1mtK4 %^F?K3Sc!k#,!5!CAU4Dk]On.Pj%aDe]Z6RQmb\c"#%G(>NIVX7TsbX>(tih=!S5.L#AoJbAeRn?.#01M$e:(>6d %f2Jfgn-d;`^;Z:sL+nbkP!IfO^dh5_`omH-@s?DX!=:da!/rC@jb!b;[!0(;#4!Y3O#F1TOphjRN7%0hnWdiRdP%8EaMOR!:D/2H %U5-5'dKp>Q-+q=&a%@8&nKlrFkS70rEV'n')+F5glc7,32;8Y#>%^@/L_)Ol-U]sI[+?>#(c>j2W*h'f(U.YEr<;(I+-K`-fjHN-*E>hZPN0^*e\DP:G;#?i5L]XO8D2RINVqtX.-_k %b=R^_*_XjAW(Nl=oGpOnT"\jbENq`"7\952WYgZ=jR2!@c@S0%bl'jD;;EGRc'J"V6(Ye4!;X;tZ_L7.MS]\J<"55QDg8_=Xr2rU %WQq6l#*/,sSEouPh<_YB*U>7:pUYN="d>ppgn:ok8AZZrAo_@K"+qLM;ENca-e5@Hi@k[e:5P%bP?UiXOD6V#h8nq-1^4SBEWWe- %_AgK8`I1!]W_O+u]KbP*dA]pq.%^3?![1>JamZjX89b,GF\%5_Ru%q3G22G&5f=cdCR`(%H2BYhO?CDVeIjK6_>@;)o"?Ea=Sg'' %?fnP&,#Wn^7Q4cBZtjJ<-l5^C$9bJ]MM4lhaDff34tZ?janioY[X;[Tc;X*]NMRF7;ok$3^LtYZrF(6[-F,(kHSie-DQ0PIc" %<3r.n51L+k/i/F;G0*;36BcWSF!5Usl.kgV+j'Qs.Q/6YAP7Yf,9;$GpEtRm0H#E4n3?"$jh#9;pn$BL5qjfW02T"_)6K9)j6X_6 %%8`1H2ZppjR8^$k7=DDGnRrAsmOdQT>C',XA%B>BF`SOJ1R*UI6LM:>eK>H6Mf)NL'D %Y/FCGAS7uE[AYiMR/?`_THH[%5*P8`&2@=6#'MQ`D?ott6\a=a4I'][W,Qej%Xb.?TTa*)@M.f0BUC804=bWF&'mKVf'_>pDS`VF=bHP3`AcX[):,2nC!s9nAkVd5EajM6%0tfc[g?oN2d7^K1Vd08&"o'\:,Qq4_%51/X9UQUi\!W,"]FNUq?m0:d %:):Ts694%IN1&h-J3EjuZg[`rBLjg+ZhuoZ/!9lL\=OMUJXRIds %._HQKKl.1[bPWJ4]W^J05l+&.$:W;[-&e&0A1d,L:LbTN9p"dchW]!C+:JTZ5Uqn$TZ+q7-p6^t95nG;;;>+?'Z;#`O1L<;!e6qS %@^j#gNq;s:+Y4Badaa+s'7@#T[JH@IP:bdiEKXWH6XQQY.9YGRF/)Y&0;t-`,">MYLO(2q3]uE"%OJX0QBnitE*MQQTQ!3Z5AQRh %EWf4"`0u3d[:.T205`D>#_gmE6*@sTHHqaj>G&JeqQj^+03qV@KB@8L'Recm56FL'7-jQ0b!b:XUo2S5N-dgG7HZT8\P)[e7n2Y4 %CMS:B>7[3#3cIWB9F#+^U7<2<=kZ6YJpMKro[d.hR4Sjip=Zb-SqkL^-"bs][@ij71s53f,m2b>q#I/Ze)7V`(W!Ccm++"HHKS$d %3.&G.%[NL7*1%1_J*F'HPDfaT0-ELtZm5;erBpSU"(+A8,P]7M=0X6o7qn+]LZ=o`K>g')"4#lYSfM#o-?`em)(se %db$RZaG6f"f7R=+\Iac9!m0;mNWtT\lJ(NnD,ch %Y):2GDr:6KPI=?cGVP4H",4!6>[l%[XuYa7L-U+R6K'fOIa@]AWMf).BUq_r(N6fCS&K_g`_Nc_aWXgN/8,>F1OY10k>RB$-;rS= %f#L^A,l*FRS(U)^SnFTMhggRr\P_d;>fuTcPGh"[N;-EpqBe6jK`X$6(o@CWKQQ?q^eGGos8#_anqpZBjkK[Ya*$bIbeoF'\_i'Anh\3+[h,:>97.S@b6pq*'WgKumK9/Dtm4B7OKK %DeD)bIi^J`BM0$I0>5UXZB>(S;;aPi*-Ro-%LfipD^)Y$`B+Y-g]8'oq+`/t\CjaW_7k^$'I+\=6Q[/EO7'XaZ\,pdU$9jg%:d/_ %#>F(c7WuMd.HD-4Q7jO5<7+?c.+fs8d8'Xta-Rra4r %HO+g-4Q1MNY=kW*$GHc*[Fil#GF(ok5(l&nV6S7gn7Dd_`T8(eBDlGg$G#o(+lgL+:9ZR,EFE2p1BVi?aU/ %ZG(W>*6lruD*6Vmf1]0gH>bKRTDSn/T\'ChEcN7nj_O=7L[$OJ.:W;6J,a@>3'OYQK@=Eh)!kh/c4UIbF7m;%s++2ZG]N[X_S?EJ %(4HFT=a..O+"Rr\O"jU)-V">.O*(f%#Et_H[f_#^g!J@+kFbe/?_ch#RKu@Ni7C"g\G\IE^omk42&1E[2W05D#j[MI6B/0'puI7K %YJB9:Cu1BqI!3@n`[28h4TRaWn)<"]&?`Bgn1,\>#`OdV#ij$o*rrQ4#D(Pqj5SGd^#in>uF;irA@Qc+j:eDTpkr %aXC7<>b!ou(AJ]&(^f_ObR2ZVIq='C4Z.-YCJ74=B3,WB#i5bMQU*QIPn3BUI)_F/7\Fkg4n,8s'W@ji[\P!KG9PuEhMW,s0<`W" %F*M=lkBs-,UrVnoI"/Z3M0V3r>sCCYl$)\S4c^$-amYR!>,4bWX`^:LY[13$LXnJUrg=bsZ$`NGP*H('PZ`sTEj[A$-ab@(Y+!*Q %$1hTppYW]1\H;]aIS4[(U)[UNdS,CBSV:7]-bM-STn'JqVbr-2X,L#%7Y+l@PG@!pBEGAl5M8g(qS:C4U?/e(@`1Lp:J;5 %_3&N8%F.SqCN+hi`Sg03F:=c8gm>k3pG`SqaXh?!0,kE+Ce'HnKP>?_&;Nd(&@BI"#1@Ab0MkkiCBu5%KHZir'Fg0p_hTBr(]Xj[ %imoL"O@YW%L:^3.@S!XUQQ[AhAdt.e;pUQ3DU!o`j#^s'=uPi(;LN%1<.In&<,#"OE.@%k(`HG\A9d=9Aqj?c(,.lIT-"N5_jAd? %]QWHHYIup:FU[`bO-JV`@I\71C^8dNI](jS%%fIj_g%QI)Q%:rDjXc-7DgnOnnhL\]`l=Ji9B"#GN2,eTgTu]VG4X6[&-PuUOE": %BQRhRr'o#XnnIaJkbsWZC.k,:)#T8UNM1]gh&)-QhMhg\*A]%O0Ajdn[+R4s5:Q\DWEWOCX7+$=Ys,5mN6T>Zb4rL8[#H_f:sXK' %@5R[]L7YZb">,\0-/:J,";NI^S$$b[#_B)5\@4Va-=^h,2H^-+;j1_BIkl:QAC6&B0-O9@9"7Qg-+u+R5,2UdZMF0.b2/KNVII`@ %2cZL4EDtor+^f&7`BC(7PJ_"tL,VR8h4V6SdA40,IGpGES].sNAu;Gr2)R*-lZZjFc(18i>p"d"fcR>DR=g77V)eJ1q_ffO)hU/7 %`GFZ\On+lTY,@r'l/'D(:YnXYr9il-b]LeqAffPR;tKo#UsGNY_.tbn%ri.\=eG/`(>$A,_TdFRAKgdsQR-fn9j#jCEQ_7I5"mQ9 %9&*ih;;S,1`OLE+Hn=F;QJpGS[!_O1)j\`nYd>='FMMX\%j.lZlZ-JE:r]Fkd_O_@a]ZchZWITGVdcbkcWA]+eK)-54r!iog-5sI %-_oUhFd7CG=q;[pPKg[co%6&Lhm4o]l$@3oLZl?%?!.DKV0ZojCV2%_Celka`qFD>eneje`FW7S90M$YT"G1!c^'A+m+uaWfhR:D %Lct_Pg=p]Ekd.r,XJ3DAC0Brmn+=CZ/8qQ^7G:PkpZ[R_@7uXc%U[6+E)>)"_K#=To/[69fq"nsSIZaejiiqKF)@j8Ar/EZ`UUVI %"eCtG\'+$D^6tL%2uE!T.gG.],%2NQ+0983q6D&i3;X*[h)V*MhjjRdn'0s59Y)i=[-kK!7:Y5?rUc.Vp[7Cboi-:p\nL-Liqf[/ %]WSrQ8a.dDHd@q"j8%-:46B\\\T>C\bZu=W9^\6bK5_>bM4AqGT0IU[X7k?/Yp? %OO!aHqhE5MR:Mrfrn">hpoo"d0uZbl^P4nS.3.Y`R5ME&2EJA0H^;P=\BT^Tf!trjaaCbZcVABZ+-'M=r`qD7 %#Y2>2,05;pPK3kk+,L2e/ed'F3D"Tu-_Z(\WUAA@!ks*&'o9mYCS:Ub1'X>@k'^Y0@bq93KR"AUc(4`>pk^a1$^lr"punb?Jcj?; %+8g:D.FRHShiT)KZUj6-^)#C>[X)J6@:,,Ri>4$+Hk2<pI`P5niQmW(N;$/m*HBA2*[6`Zd/\"6>p8boRXus#*RF"%;0-#m@rua[i-8NQ#4o3m=1#hmA=8B %RJE;j)Ugu$7Yfh@Z1%5KBA@S&P)1QV6V%'GSdsbnNk#e[P_2B@?)VQQnSGt0\?@kbM;E"W83aAID6.q&:M,'B\DMJulC2PKNm>8C %GMM7RFZgo %cA_XS:=f>j(hTcDr@Vtl'K"Y'04XJ(]!mudf!?HI]`)M*\Ei%_\ZLEYBiCdKpO6fJ %p)j/:6[*p&#j'[XLO.Tjd9.O10%/.Sq\oIr*UuQU4!EKeF*[dfDYZcQa&^%.m'f1DN_S89I!;tcmCQK4&[BsBPPr#kkT"\Q52M#9rPZ;m4tsW^/@3t&p\lMe20?N4SY[:=O7^&F&$9Sjh-No"!Lbine.&VANu@&,m!0ZpF1m_WUO%RU %WU&"F-lkK-.r>4\n[9Odk#25M^.WX@kgs@?73>-]LOQV`B_4C(:8>RHp7$]]rP#&5$sGaZD6U1-kTT2^Hjq/%rp=[XH#noGAUe[K %LqffWMbLK<-Ap]5EW,.t0V4>h`.Yp_d\Pa*p*TCeg+Xfor4VhGN:PB%:maqAFiZ*:4jK+UpJ'[3Gh1H9A %a4s5l:GV%'kn&eLr/5A$Nj_i+o;.(ZhXQ,oP2GL7Hf2(+R6[5bUSEWVKta:`^)aQ&'i`/;pBL"SW%BrE$s0+ %!:E %[cXZ\rpCo!89V@7+*+MfodO)o)-W`r+]HQsK6QHW410BfD`!X)p;=`4gBEMocZUJW2SYa",2G^?S:/Z=9quo7aI@?(XY!qI5ocE> %]m[J*(.o7t=J2^B5icY@M)n.K((!c7m`g/?=UFO0TjmB1RpWo73k=YTX$?KMIqe*+WVA`=R`*2XgRt)o);H53b^'fA`t\4'HQc`S %=9I^U&'kWL`^.b9*H)o7g0Q3+Xn(i2Z^Ygse(Ag_aNi_$djEbQ[EMHs](hamD!tCBKIM,sUPfMMRXb %DIuAM:k%<<5Lsm+q(Qj#TTJJ93,Ma08PZa#s"^o\l'P %oYZ&`Pr+A%@@JQUQ%D>t0nXnd_^o$f7N:!,^kbLNEfKL'm[=C!Qh#P6:@5FU,q%S`_"$iMi=l$YJeThFHJC'O6DMbL@@HlPe!6^q %USQ#Eg,e4#NP9f8oAf_6I%pj4%-0*E\_!/5X1qKLgPSnJ?PDg&e0sHQolJ//IG2CW&lmRt'K(b%^OfGP0>uTHF+?_CmLrU#qU98U %%@^)?BJ?s_D3Pt+kq(TWFO_.q4_cfFP>pCtaYs!8pXrM\ZtLfQd\"Y[(kPum)V+hn>C(I47sfL.$2X/jM#,nIIYr9%)0=a`*!<-hWO^0 %7UK[).cnKSUTp"PMk`/_Ucg\Ne.5$F['/#h='D:pdR;?8q%';kZi6E")jY8=BA".qhi[!Op:cBPPr@?Rg'GYe/#*m==(q6Nj)=T1 %7arj?%rg=U8o\tQp?Jm*2VPF<-AmekV@T;I\OM-T5dLWDVm;0$1Up%Z*qRKU>e\T[fr3P:VcPS?;557054*.As)_>aau4c0f-mlFYh?4Hi%V@Mi:i>J]3BO@)nl:*/F27++kp\6jB80GTmo)ildjL))&+!;H1^93bHbrZTmMjJOR.:6TM`QV1^[DP %HscKL7M.*3WArM&O?M$%)3PVcEbp1Qm?L-7"S&9#&*&ak'Z\Z_UB3$?p9$S8E@tkE>Jen4p_YQq#OX=R"HL]!o;lKE4!" %'H.-85AQNV*j2\$m)0SRN?m!:*EM]$9VHeH\7[o5@?+kJa,QOs>IqS$=9d)Q>2%SFC:*-q2bchKH13?$HCDIeK3,orj*L@NApim" %mZE[r,$96"I]OcWkJG]7#Ai'jH91^85:m,ZVdR.s;d$0&bOGH/?ZSk$,g6T.GD_ %62Bbl2A2?='m&`jnj/ZYhu;=g2FYT_o+%@@:jf:L/EciILXL6/_a?8Zpp>tb'$lG2#HNg#p %Q87B17mu>'@*tU)41ROFlqtl'=8QEMa$.amA!3`N9Dc'R9SoAHgeB][L$;j^j30dD8N/Gn[c'51WH]Ul1k-NY_%DC.DtfdgN#t@Z %RVK;`:WQ)CI=d"i]m[5sdd,`fd;Q3HAED1`?Y%C=)B*4,B:D\9%BX2\pP*O;rQT>4T,Kruk8AoMdL2eF:hMd\$XY6[#GMq7FD"i$ %5@)U_=W]AZ'/slUAN,kBmGI/=FFtIYp(+jHFsYO7Wc)EQT#@qJLmeQ %4O::J92A2l0PNRDf16Rq[_#,aFM>&X-B=dEm)9lRO>gB$%B41UU`N8##,p9p9XPXjD*AbNqUfKSIdl_sj:>JG:"Z]P/"FjSL5YkYPttlW %8'K6XGlsR@;\na=F/H_CBQPVYj=:YXXEHL?D#9"eEmS8]It/jJU\T",M$ku+TBI*5JholdSUHe+<5niKQK19M4]%Jf/\gcN.oS7n@_@F\h %\Zs'bk%LS@&;PYp$$jae;8[0\;Nar^b/mb?N;V$Q;ujs@2gT3S5l\,BXdiJU4#;*NUm3?.P.YEiZ=]h=_YJ448Z,l'&ER!T;pmna %5PeL,i^Xi&g_XM_QRMKME)2FuB%7uVY_+mTAT:N!<#8P=5tC"H&q,-Z!iWpLQ!(@Yc/t^sk;9I(X@!"oHTmt<0ILA*GHcX7X![J3 %THGaGO*;-!MYb+'gG,!VZq)E7?4G@90YnIq$&;9e1K/\'7Si;eRC+_^/-:rV %:41!@oWHPDT9%#L)m`rRc=oN#:m47N%H44'h4AXf69StUA %E)s?PlVon+,Q6W@H)s=8$X'96`1LHM@ZZ[[!U4AoKbYfjU'A4Q*A>c9[\CgC4ACk70mefS0R3-UY+O!5WT",UBXsB?,b2'$S;@!s %:eElY[bdPHTQJS'RI8kOlL)C4%XTW\:?J=EN^7B1&ArTO2d);s/51/Zd+@m"_7P4a?(\C`@(^,]:?Nl-b%H]U*=lrMs#KLM*l9'G-=*CFe3e4P?YYU0Y+$d8>`j%F*McQ2",L7EpF49(f.K6CF32M %AIXi-3\AfbCaUH6WV=q(\]&2Q8*!7=\#u4U.LX?'ONS/HP(4+YeL,4P(?Q%gIlt9\c6u#RLg/*5!Kpt?\!1L_cg`H_OX.pV1]F5P %6*G2YR4kqi^u(N,]&=a?G=BZs&JYM'(eD*q'^2\dmqh%bC=aVC21Qd0BP`[h[Cd\bkmd2JX%ThiL"=.j9-hI(Mk\9j/rZl'L3 %'c@X\rY^B'![5"bNq6LFY>16U$W0,h"suip7(n*-L/2iMi+rOs&;+'F@W4bS-d;:SMo"@98Xj6KRVt"bC:$V9/>5q[(e/3C#t/Qq %Mi$!F@s1,[!b]KJGqS4<8-!;=a4]Y&C7>1.KXb0eD9 %-6+gW*3m9X`'^,8lnh+rkEqDqO9q%6^*OipGYPit>2G[kDN %j[jWers&kRqmV<:6(K?&U5^Dh:J:eu1'3W5`G-:9Q/5rU#B:TA^%Q-7X3'$M$FF$r8>$,n1?IgqqjRQ`# %ng!$e1ic1Fh?LVp^3rMbTL5fdYIU#:r9DU@db[8:PP/!]/pJBM]R=ph2`P"_(PAdKcE@;aH!gOLh5<+laG`g^BW;:'F!pFp'6s:f %CNr45Xm-%BZP%@<<.q.o]q*(6`XHdC^fdUG!po\*da.ubF[ZQ.)R!XC`!*&69?aUUd--@kj-OCqYiDEQSN-=r&:_EbIQ0tABsQ6$ %2>SjNqW1XB*5%2+(3]$NMo[]g"DYL!_=pbUY]'+%c8@)E0.#iN+>3BbMNu"VPhsn?gE&O5Y@:M)07pQo:X73&b)CUL\M=bi]=GjE %KWXN(g\ZaIH7p!N#C>]p_Td)WV4idR!LM%&9KBKt9aN(WPA3kUE1okTseF+ %+FllT]akWeD@t^1+gXG\Yc]V_3iIRccchEla!MUTM3%DI\nc(U\4JQ*Lg3qpkZWFVL'EThqUQ''rJ'ua"ksa>U9)Si$orF37^d"t %F0JYa.on.Peaj_)@?db&kFTRm3`FFiH.3pMgX0!#'!hKfGs$'o\Y%*U6F.#&7[=eq0pI5p%Xp"_ci9:o2^57rPm&4\hbIfXhm1[qCe-8pHU %6i4;m5OP\9nI5k`@)$K9)8uCBoAR1+jNbkE#fd?a=5GT\9:s9!S2*oOa%kUA-\-aU)9B!k+LuG>_"@4k8c])T.;Aj/C5p4\`R?+A %Q-/.k^V>tA(uXbZ8fn!Gi%VGoQjCs11n8If*+guj\WmMe6ph7qX-D!]bUP#`9kFc`8e.[KIC[8"1t8:\)-4UUT!(ZWn:B&9?b)bl %q"H7Q5biR;,5H;aoofb=8+5/c4-')5f-,*X>2DVH3.=#aL9QGis=([1=L8,gL0YmWJ.kc+"ZJQ!fHS35$6Pj,@QTLV>aZ_,X$9P(fiXW"A!,o9llh0^("h6 %[kLqG%!kc$mT".WcP>ZAZJ8.IBXF.Ma@&]+)ln.r&,Ec#MP)1no+]kFqT*1KdP0O2qqW,kYcQ,?UMhXY0O*--i`B.8/_1N)d,"ai %]Pse0JtILt1Zn>J"5;DW#-U't[bnj]:27K!"ckCuR?Qqh4+@\4["$%gMVL3;n)$'lA3^-"pMKVb+gj97m,p1pZa0K8Y[>'/L;>Ct %`!&dd=l<=MIc>t@/m1/W^b?S:`W[I6>]=U3EPV,NDN-:Dq:p&o#:X.`X;!SV8SUB@q5t!$PL_+jK*^%QbP\HN"arC\JVWCcC`K_' %+s^__ZA'SKT!dIC,@/k7g9%VlN"0n"]1[OU3fo0"Md086IF@-K*NKNo)W*m14Zm+hD %UOk?Il[O]tQIo*Be)lD+H576C1M"0K.ek2urRIiS`OUnrU4TpA.`MVW/1`:GFIDAc<:CJHGahAAa`^g"\MYj=%MLD(mIpg`?o^pM %\_DQd7g7'J-bA^>7]9]T9JFETh%g_V8"@kFCK.NC<@?5p0e-98'?nC)[mUDC<?%g2Nnj[M/;FO4j4JLQ?obGCCur+(@(Fl+ %Nnk<_/;FP_=`03+k(Bt`\P2oKW*gp)h/-$*E`L4Nj#=SZ=?@`";H0kU0'S\#?o^obm,$,3Tn;BPWpPPr92NHF[uN@UEbWun'fjY4N;mY!]`$GL&S[0k[6TMX^b%Eb`Gb37j.Z,L[+a"?^+"ajDZ,I]GlOn=0jk+&)bcW%<=uB`HV).UEd)D=r1/Dgu4HD,/**]LhG)$F9=K\ReGX(^ii*+OI2oUYh\E6R;ECfpBU5N:n@uGJq %+5J3D&R-fS[FU!`^5XJ36Pj*i/\WYP?#`Ab"=pJY?0o->>HE_?ee6MK_A;I?5Smdf/V^aY>`(/J**[g`Y0Ms0`QAdo1:m7$D".\> %QuY?&Z,O:)d)D>MK/1.KdDa8X-t/#e7;uU_$C1gaE7ng@lIb)@?0ha&S>7Moj=\:tZZi5E(^mF*;*MfBBrpYVN&&PoPq0HY7[]\1 %PG4:Ap53.0;>q/&>VeiP"&Aau(hE`m+\!p<)PaD(]Y5IsPdTMhItggdjSLK#q.=F^m4UK':[I:%A"3(]/>WB;'+]-Q_%Yl`:iup+reVAgGuhYg.9VpY02K"f/KMo'Utk/lRX0Lch[O3@%F^] %>Q%L%ZNa+_%C"+ZdePe(P!%=kWk@n3XRjP/Q")Q*#jX#aSW?T]5J78(ENXuBZ!W-+Qm_?=D%[!/6tu[ %-.Z4fMu=QqZbif\NNpcLk9o..lR\DOh6g?tXd9eRE9qaMB>FW7/AD\\/=h@l2-=LVo3lNmFVYt$mMB?':Zmsk"kHi"R4:GA3Xbo8 %=ahCB=hIr:l`e[?lXDfn3XbWF/sm`n'^P+K`UVb&lRZl(?o7]2@%HC[XDX)A(@nfnGPfktYXr\7Tk_ %ZhR;STAZ0g;9]HW0OKcSdHKGF>q&oWtQjE([`Z\Ap%)ENtDqlmQ/p),1VTqH#md` %=lhZ)CJHW)e$K^.fN6bZ"Zhl.]Dk?q0';"`>$'S2B3ns#-QCB]ZEl'*gRVWCs&u[sB->,Og=_b'g!22UEkg#IY2#"[Fs3#dZa20+ %&P,rE#DCN1&]@m(lj_@2jmkKhNc8B@X!MleL-*$2r!e\t5c["1jh9<5/l7.kSsj=!Jm7!BXggi;!`M6N;f6Vo*ni"Cd0h_Q>

KXEp0,L%ECtKrhqXjXLJWS>#d8'XG.QDW+U;)PY`0Di\sP*mmORb92H^>`^,\%IA@7E#?M %jB"e3jg)YMKQm@45;;lq;c#gb7-Y4)ML[\0l&NA+/sq)B=t_m19*o0Xfo]]8GGZ)9Na0*R7VS](qKR4qQ?pj4\ggd>e@u^Z<]7/H %PrOZPLp'd/1oo@:=a['odaLCb;a4uL*GZ#GB^*h$bO0?KakaAYmr6j8N]uY#s*sb!F$4NGB,f\/2M-Tg?0L+a2Dqj,84Z&XKN(:k %s%cgq%hM[0qg.+[5BG$Wi3Lk/;j,"UrR)^7=VT4_aNo#bN;6n)BWF[n`>MgDtl'7n08?j2EF;*q+,[dO2pU=7S'0o<`D?\q"L9jO0@=?](E+ca;-F%N6X<-[7c-GRbuE6ssYAg\aa/ %;([-9(J7K[s76bsDsnqSHT.QO5r?'2u9s&cgm4Lk:$>p:>h=]%KaV2jNdUYD+X1a",4iLEQomH=!\N%1[!IAb=4"hJdDel %`H@R$&D)=j=9[\&XTV>\fTR-]'[8#3iG>:]2M""X2PLrbgfj][fc,U4[g(lKmdX7'8,c%,ZbImA?>FN#' %Oq6*/E]tNM4P&A+Ya^ZT^rF3PZk@q%D%F+54o@Wn'Bg>]]8pu_Sg2gBn>:UGrQ)o'9 %i-Qi/]_2NR`:"UYo<3HpRmM&_XiHm6+^9Udbs4=t;]aI"XW8$aN>MK*8=8HZEGe7ln=P"n81rK02 %]`2/Qn/j;gGlH]&P@Q:$>jNil$*8HW.kTbdc&l@Mjm/W-?R@76h?3"d48j$TjXpGUQ-9$hXCf;6Dn7R+21!b*cD3T&^R@jW!:A7t %8?]ANoOsh2m7u]$K?a8Gj^A=[QE_87fon&T^.__RL"8eqJ$L!"7PJTr^"-:]^1n\I2pN>#r:mCf@-PL2*kZu$UA3lH`&E$nOtoIW %P.h0(.T,imWGF'9TX(3'5*c.mH)5Cs=?fe\%IU1;ppEWJ;3MOUXra04DWnD>%0D4,7b#A!0I?/--fEp)=mu:<<``*q;7\Xr\ %IejP7VY&KrB\MsD`^[.?6nqR'<_0XT6_b5L1"llgA3QFQpL8?m[D(4$d,,X]^>K7"0AIo&L=^W4q#"3BB?kVtdF"jsIRCjJFt\M" %ITPR71u#heq%9`;?ga&NT5S%]\(NR#qo&#!aYVl.7K8bbYi\X'0dM,>TT:He:#`HVQj\+=PRtK(98`UooKR^E*pT*Kpki/VQWQ9CT]SmR47mH=IaT,>?NU)-NU&,o;*3*0UE>Ji?=Ue?c+(\A %s)Sut:+V"ImqOq0O\*RNs)-8i?DX1PP+H:2l?A#YP$_;U`h1`3Uk(_q]sD)%8Bi*+GGYg*mh7,q#+jnjE?AQ'@rSd;"r\#C[o/Pr %T#gCUB,,7ZWFSVu;WRk*jX7db^DhQa=>6ep[(+C0$#bGs/9#MGnFg6D+>qB()1Or%+")h>g\UjSI*Z^DgZ:^lUBdn?1'V*EfG\%D %IK]OgS`S#2V_'eHdfoZE/]V<4ca,PGaI?Lh[)n![\7$MJ16c*9IC('kG9KQ"*[=AccXNrC]&Lm&`tr,N^BO&RZTmTo]6JF(J'[Ru %g7PJZC&6ejZ;fFshtec("i&sVItjelAGl,*1L9ue+@A5]P3KSMP=lK[_Ae02-,KUke2m)Vl,!KoD[bTPBZU3)g*,)]^eIc(V>7>-gu)*RDh'!oQ$S]feK"&oh4LG2+Q[% %aV9QGg_MB/f:g4$#YqfdQJsRka+#a]YE-HP;dJH[02R.IfcP7%E:6SK8c:o7T0;qI#)fmp7T\ %ii.4[*k>1P58&9;>m&r[F8[.c4FgQIJ"?_)`GDl,XonF-@`K7iiu;+`m$2)=VYh5be]T?$heu+^Y%W)!`Euo130@mJa&d]MaCbsc/B1.XaXHZ3LHCCD?MUg,2#f$:*Xh[*K0$06IH\RaGgf!j %3AuD4KqBg6p@?%H@auQFmTPpN^E5XK_<:\%Q`'5[1ZEM37@A8g=8;J^m&jEhJn6`M21!"3OJ(aVd/s`A5&[9qAG1`#a8#r`PLA=d %o0K!@'>=jDm'`eS+^9dpobZEd8<,PToY*g-=UVIM>6Ecd(%6)W_6e^oRsCGo+?1F\J1iMunF);i)\J9!0d!lNdH3C>@mTBTB>nj>nNf,IR/+iIHW0bf %.OEU0oj3/a-e"LCq?J`/F.:8\3prkJktOa.]R&>-DJGPhql/&d7],pZIuabO-O"H$#=J6]TR5)M'@/OC+29X_LFQ-i)eL"r(Y^I=P'se&$kn4/J]6uAJ@*a<9j.&1([bCV(8-G4ppl& %ihq6,n?^?Re+[4&2,P(kiPaZu]^W\,#r5Zaf[QTBk$@uLgO$@/2BY3"0%C7,ZP9pSZB+2PB4S>*)4Dc.VnkO*qLlu!!R([X,cVSi %J#Q];+m/jm(=dt`VEj`7hPsJdQ_?^@9_oJ=L@gbj\'lFZIFj`r)Q%`=?RJsBs6*3*nQ1dN!)iVGOk\(*Q_,!0L; %,cB/9?mM:S/l)pp\2*e)s.\_iV-"\+A:_gI/\%sO1UqkVd-*2p(8rojo7q[mn[EI?tgn( %:Ma$SJb)+g%e*SLC,FoApS?0:?bIhj9*kj%kbfn*q"^%Gkr07qbVqDkfX+1sSHAR-2CAqZ-dE_W=pP"Ai'h,oW;C(\"Z$Z9Y4OHU %&C/,GCRqflXTl^3A%5\Ek)[aXNF[_q;[_ %Wu'!<#,l;H]N_U)iLQU:k1rClqeEU/1V[c>q,t]K$h48/8BjUikGc2Y3q2FIQ7LFL(Z&/eVEi=CbM6&99k(/G4TW$m5?uWO&J)VY %2-TkLrsM]lFs`(_V86)FQ\,qWMXt$OLX^SV^/W;Y^@QD'RX$\1mYZM=h0/QZqW8"<+C7To^+"r"l[O`2#hkFo$-nk#?$i_e6`fX) %K=5R_/VJ1p2JnsSOc]gnS1C1[fR?f`,`rF;<1DrB?&c7BPI9O;6bu-ocIY6`O %R2``4[q)R;Z]-7nArX%M?.[CZX.9[B204'$hcDK(dWYHEs(VR(ZrCt7K6Bmu%6+5.hr>R#Xka6%be=9Aac,:la@L>ieRR\=0jAHXQid'l2g9;5hfc-n1S)PJ6).rB"M-R2hR[KEOY+sr/EG1kF-MEh,_%+ebd3,>h$'/53tIdr0pR6sOtg2W4m'D%*.nJED %4DB3<+NmnS+:P*.(X=uHO5/2S=bAa'V)s`,&;AMQ8Nu1Rc]IuqJ#G.MQQgC1!5Q2p'EN:gq5"?:,QOM5Nt[(s"9>>$/k*QR#"!e46;nKTF756FE+&$g_E'j;/QQmIlQn4 %No9oSGos_X6b34nc#97fR\+;/rU*A`Dkg5p;"408EkcPQLPgO=kP_fK<7TL5>^nbmq[_lgeNSn$eA"FGJel[%l,5:6TbH*TT!mrP %-,S[2:])@48<@+h1BSQ8QspMWkCCu&DZ"=c!2'jDPR+>tJ8&cQ0*"99j$_fJ!Pl@E+q\L^9+q&d!QcSYJ#Is>&/3F)MuoZBS;Ad49?PSj#!)`laYaE?R-g`QbuJ9A-WjZodZO=?VgbCNP?QtcPLjIeNC %@4^-r%0W15(D%bulrC.lO&SVg@d4kA63a[kC(TA`4f5)F#.^dbM]B84GG=M:W1HS4E$goEP;#(cdC$:ljYd0LXfLpNrVXOU\EF^( %Vq6,J"*djmaZPM-Mm6EU(M9a-r;02*-\6o;]#]_Smln#`P0rd6^SH5;LT=Tm9*nbPBL_`PIh.;#EijNs2frTg-b)@52[Zf<+sK]G %Q_p&M+6Qg"c?pT`'k;neUOZ40L[*FI30nb`DjN[Nk\&*'F4oW[p:M$c(Xd[WOGc2mYd3@q<.dMHX4\Hfha[;Tru#L>s%1]!5=%;U %copDS.[/8C)gjV'$/As"@V:gZrUTHIL,k %leEW#U?>g9N5]E'e(G&4ELn)^.YQFs_lP26\3r#;-dOIj)bND`C&(1PJNp"9+Z@CqT;QdC6>ZQ.oU$PMfH:9qMXDi[bRYb9Qq*"+ %5X4'pl-R?LWm?5N2ce8S_=M4tGAV1+(m3]oTX:[U]NF?:F),9\tdT[Bf, %L]]KX$&$qR_ZE2GEYK*r]F`mlKcZK&RQ9[R>G4\Ve_3T0r.+'`)<'SVIVn4hD0UT=J]uVd4(_H&d^3 %XWoLQ@h'LR:CAFu)`W_:%Rbt\uQY,+L\bt%#Lis78h&L/Ra"jZ,+!0rDM5`9b@faT]MoVrI3K+'iQT2$]N^XWHE#dHZ")0'jk,ZeJA4_d7m@P$=,c48\EkX`6qqnJ1j3^'fh88e?M$_[QujJENQ %P@i#nMb>KB2TVOgLCbD8=S07u%5G*SB:'W&04J=YWF!kI>VXe^f/]'fP3l+t&0#/q?60geEN\T]5o'OYj]mHmdo7tsiXj;$gE6TiQjSN!+N'L> %'B^LVdFG^)9Jp#7UC#mEUh:HJ[a6[bBnd^.);I`\Iss_#OFbd?r.N]FK1:=r+XkQ[9=2s.%9k'2OjEjWZNdB#IJ[o3Sr*+1r0(hU %GFiNWO)H8lFRD7)Aec$Yn>&/[SCj-$dj!+KUjA;7N,JBF=lt#-KiP]^JE74^Ob7$u)SO9i99OLic*gU_CAF@3S.X`Sch'5tQgKZt %k)7'XFFKNk7T577>J<6Ha.Z?82R!cs+!2^L/MF+Ir:!u!*=T)&4G5>MNU"L[;6V"IU:`);ikbVb#7H)N8sc2WhQnpl8[%'IUhgq^ELVI-aQ@Fh%`6QCK,*5aU/*R/h#__06btU!6ahb!K %K.T2qIC'+hp1P"k\R-Mb)6WC7_9-.doj;AQp`"Pd"Ti!P9:b484W`sE0k*X+$l1TOiaomGXFR,sb=;m&ia3`^e%+-uE %'EpLY"G1JWAe8's=?a09CP*$T(JY-#Cle[-0bjua:I\1r6HmMYb&YeD_kR5#@]Oi)7];:[+LRp@"\%pi."]AB6asDt.%Sjlg_apa %)=qJR0dL:KXh'?kNJ\Tn2<8>@]q3R:3^+-KJQRRsBeTmCbhWiK'=ptr %[W&]Ah"p$.13)ch!dhUYZVW@g$Tt:=Y_2k4fLe#P*J=j-c!OZ]+bkj\ehEQPMOY09mAK4'&en((]uVu%XS]Md\F'VB*gh2X^mR=^c3ei/E:)L[9HON2e"=uh$ %,N(?lrNqR0qCsq#D8d"MRQ0)BRSO2d2\CCKH.`d:PO1R^,A\2%@t$83W1KY4&4A)B1._Y9AGC(iY_OMc:6#%5,s%(Y?l9#gOr0+C %cYXoFIs^VI8K"FY4,&a<3%:C[l==V`n5Ef?%\*b$.j6glYafa2Ail>KY9'S$+,d3-VIN1%df$P<&2a*I-Kn4K^K!-sEj1%XK4UQH %;iF<[>k9m%LD#pnm*Rgq1S+f;e0S_F-o/cVZhkRjU?4 %QlH'KE!RsjVn%i?CQ2Z^juT5d#R4V[juQtT2>XW^FsbcOMT.q:]d46M"HLsKI2jVN]aurLI8PV.)e<'pLenfpH[n+0=MQ=?NNOQpbQQ&'.lS.Y'Z&I!"M"4RNhb?Mn47ciL7,R4@/i%g.l[bl8YSU:1S@([g1)`2`/hU%$8.'gO=m!q>H*6 %ia=u5[.QQlcVOuE:>%:InR,/3_;bL*1H1XqY!;@81>BVa2t\[@SV[#C`nX98abj#sCM\hD&,,HS=L0#,O@rRL %^#T0=0QPfSk?ucGKn#:=*patpYRHOYNNe.PdDqXA_^HaOrL'KE>\4TGd4>>=)t'RJ\5:`d^8sO$JR'e>dq?ODV5ic]i\Ma47+Lqq %DHu)PH\ZQ%K7`a]jP*<"mOVLVjQ"r%:D4k_9tO$h9`N;,>R.g;$Ck&#PABn'gFDXP1,4dL3(:Nf;g)]&.+>Q-_Vot0;CBR*$rn:C %7/5*LL/[+J`eC]A;Ph"dqYiD) %#JgJb@o=Pp7OsKASY5Eb[*<\g?)BOYmF3K&S?d*UU>?^6DfpVY>!q5cd9Cfdr7(X.PB/qZc6]d+%1dNM^T(FIYPV5%nUN/s^+Wt/3eOnE6qoB-g[4-@?b0NDl %W*4ej];S^;?'7Lnp8CjsFl6r1(bPh';8^$W(gQ/AVepGPl/(\`?^9h02;>-,[)e#1Qd4j3)W4Xf\4a/,Ug$oE??Di#7LW;U`)LWT %-=QO]:.`,WLi^\]r\.O,aiChiK1+4ac9^DD8\MdM3&%4dJsjtW(D$5c4kQ22jIe,%]r]DrQp4^c2g&^b*pfMGY_3R5!U^s#1ZfN) %6;Wf(*`RI4W4h2]OC9Ih.ZX\h=0jkns6*o)p_k:m;nj&W\W@mY68sjSC9f*;PO0NF&',J3_n`gC9A?sg^BXRmWp&936AKfcSX18H?l]Mf_c:iT#VKdX7'dL %Q4p%]M[0."*\7jh!"ZN-Tp*leO%t#/0fi2#3]G-ah"mp\BiO4LFZQN;k*4.lOi*#:#80@D^@n_(<;Q!?U,&TnKFpC2M2MW9pE$CN %cGY8VZD`QHPX6R;cK,mQPY,5%Y^`*o26d@D0#i]N^M&V>Iq,2+L&/ng448*m*=us$Weoa]:HDCY:ecC.Aot(VW$X^WXBJ?Qk`cU0 %laISLiX83k?$O+rfmb&iNO.,6?1EC+Wp"nW;/sRec'43L_&M#-@1TtP6\l@G?c9p9rC[Y:#n_=jg@[E8b+b1=99=RE(M(fH,UtIg %4E&0If3X(u4pbe'W7pG<*KSR6WX>m_5__]o)H!OjkM9Q?YU?hRXh]O1W@.MeS5F*d_3Hcp[>mKZkQolHEHL( %H]@u5WfFM5p)7IK[b.9I!g1qo@ccMJgG'e@Lj'MK[,Qt[5@";U$h5ZRqeIR&"pS0smQ%B@B1-',J#J7bUmW%blGF=53mn;./CpFa`Lg!\#"92Db/8m43WUrPA %%+OBh`LG7#E-J^+NA:^,&aYQZnn$7;U?Lp@QirCtIh:eU.=5P99rAWJoCrR$58D.Vmf"?c`sfV\:(lN6_II=A8\`KY4Qi(kc/tZY %GTIB-0cj8p/muOF1uSFOqsand8SWcE00FXcsLu*4nLGEpr7l$P\b@A.V!ctm%4;uWE-&rX`dl^>JJK_ksR"PX:g2!\-MsOlmglDEN*!2 %B9"1_^u]!M?`/G,6OJ(U0C9aEp"ufNX."kC7pa]H4c!D`Js7IZ,_?V]&$qD1V8k1Z]qjaKE.5mqXmBirtW7a))dAsp9;5(Xm,QC:)QJ;/)Ym/c'!=efT0T4VFBd]JaVN46C %Sc4)PV(09@h=>U[rI:8Y6c"]1bClNq^H@>9iGdH/l"re,@d4"VeC`$N?XD5u)erIdF7n8!$;s%`MIDr_1rV:=jl3h_pcrYrAMY8),Gn[5;/SW]g_EVs0$6K<+/"s3l$d5[kSXZ/?A4Xj1&\/iX&8?7+fJrdn]q4D2bT\]7[Qj%-b(bLNhi!(&*PH %=`,AAn8]$XMJL?pYdo!>d<@&-VV>]00)NQt/S!fnS!Z+R)FhCk-D'"3hPL8tFSR_P+WtA``q?;jL0tB17]l*&UA7fF-^)'7#a-#@ %RDuVpQ1r$=E<"KLQT\Vt$n8/OHrCSVIjX-:qDe8UR)\gYEDjeGSZM*3K67]*eWl)+OdBG(:0=V^\irEW2K;EcCWT['mo'@H,ML6Q %fJF6[]mB4edS.aGFEQT"e)f[F1SHhQ:dA:1$?Wo;(!(b_&32pqBY-HK5a;,"COBj8#tb<;k0.hOP>:IPQUbSsV$!rGW/of5rE1F/cj %fV(GNqG:RgCrXd,T-8dIWmR&_'[m8t6`#r'nR0n#_#DeeX^9,uOkX7OO`>i\c#I_6T^JSoVk%,=E<\r^CJW!bF %cpPds^!;`2ofEp:Q&*U7Jj5ep@%l!T.7>Psp+1*EE.QaPZ&q=cD*lH!\NY.WI7T/n)!aL$k5)`LWF&LX&G_LT4*Rig1$e*9fHoN3 %\s(?b0u/i(btp0>an>UTY4)=AU93l1$1q0;:NoD^:Slg,r'>+/0=efs-b(ojD?f@%,VTJo4jW\99o.QYBW<:XeTR1!rk^MXp0_KoXVnRb%;4Bsji>/s`U5*RS%+9BR)Sscb)!Mk(pZ1-mH5RArTK]1j0K$^]O4rSb.4=nAAji. %>*_d'1?-I"$=BEUdG_jh[ga"1Q3Wa,ohH6;0n6 %j[/rRem)QEfX#q/4U3rAI:.X$UQ_rrbA"!.0Z(HK/Y+VqEnc[Fm4e`VQC!#['-^FO_K7Iig/`.2_/HH,+FT>c2>-SG)(lus+*b"J %S1g5%dYU4omb`?hN^Z6HH$<>G/fq)D*\?t>Gso8PO0d4@mD]0c,!;W-EQ78&_4Ju*7Bh5+@%()4&:t6pKMHiQa(Ci,?<"ga/F>+e@'@QK?^M)1BE$PeK?Fc$)9N?b:q]7J*-j]%g@EOPJ0R[MIH*G,1Yl!mDLC("41^T'qL-lA'l'E<%m_X %`H@2Tn>N)PF?/iTe6S9HaMFmf-LHndpClB8ULutKk)q#[[tgS)TMUp/P[d+YhqhtK2/5)%&UOtmYASD%q&+A-WnL]Jlo"%4;A@c7 %s$.ka)b\(CrGgCrnK\u^PY,4D=LC9D8qBSm7S=Y]^Ko6q8saW[Af1N]_&snG]%uhqriaOuB/tAN8<^qHS?QV.Zk2=%&Sl&I,0it+67d"2MWk]*2#!s+`JK9CPkZ]+1TBo1` %VouMU't4(Dl6gN`7Q4Gr:0p!Jrk-.o9_N2?k[]Xs=JN]#!9[>iN4DtMG+7Wj_sY#E3u`-*%UR5n$KiSNAOaTmAS_I6Sod!DTI$p] %>?lPG.*6<'mrpubK1qAEB-0R>=m\XCLb/q/V#r7tKr]PU\'4H^j?]kiGlO,X,-QK%Clp-e5F1Oj64BC^L+'g_PO3JrNj)9Il]JjM`)pIYirjAB<<:B!#Pmk80*,AkWt5q:bHIK@n2 %Zn`gEb0]Mtm:G"n+8:X.HMC#3SkaV-+:(CBU;[A]-o+NUD(?ml^P0$Z((#9Qar2"Wp-u'Km76A.V2MiH#*`,)*2VE_^9A:Y`*03! %HY0rmoO+p`3(O/)=8I&>kJAOF2ECBF%@SH[XQtXU>J)I7Ku3bKZe!%WP;`P[Hl7>Lo(CSITN7hQfo4E&5"7iuL%97p4936-QMg!+ %>"?l"W+_.iojLg8[)*6.$B)3WB'qYgKHE@]3r]_&Xr=^W./\"eE7t!^\,0Ld*BU4XP):@dk5I,%pMVGCd^D5SSBAdj %'&C.1Z(m)C"Ck\nD?tqcYHfmSao9Bg,6b4\M>0h=(b%/cf`-!E)W[k&`$-.Ti;$\S(b%ulrHG+tr/ra3i;]HLSsV2mAm6&,.9R:* %il@3GUOh"[W!V]E@#,QMX):I](p[BLifou>Js<3U,&C7U\mM"LV;C\_m,:)A7<(;A!d4(-.#Pq.$6&m2k/'O!"eJkm`*q.b %D9EYCePlh>rgc-dBD33rS5jiT?#OfQJU"f6E9S)A[>Q9sKkkp9'@rs1g8EFl/\BDgm&^)O"L\!4)K-7jHVQiR^$U)"t`/%&lR"j8Qd. %,s]<(hhiFYaSsNaR.2c`Y8:BpY*.-^59&Xr84",Bp#I4)gZu*Z,tF>NE)h.?"icg/M"n%RWk%me,rGe^0$32KQpnXSqD0"<@e3]< %ohs#sPm`WK%=9BW?80aClRYtH93Q'".?]t]4]228peicX_?W)UHiWW@ph8Cm"c'uOp>!-+>l84uicYh&?e/%OB\^B..9hmkp9\'b %4nX`(pE)W=I+1YqVbQE/?E`k@Q1(ULLd.kc,G(&P(=H7,2=IP#&bp"!ibleD[r?]W<5),).UJ15blA3FR\rL@3INRQ^2k'mn9NcT %igisek\#?6qLPKbIj'GVO@p5<\C^UtWg5+[12=ThK %r++4BHmEqQHmn^YKD'/-..KF"JF"%6'0f&M*sjgK3TP)X,EXS%Rh(cD[jkKNjmaga[W(X;?FIL>Y3$YB1G,l^NQYL7L>^#:)jicema]e&6="1:W2AH'?;+r`0'bV2KbJm8mMW&Cq %lmmHVVR4)aUb//-)T1!`V3re!"kndtK9ssDG7G_X+OSTXTl/.skljN+QG?>r+5ie*"mH&up`2XY# %AZF'ntgNrf7#g#SP5l&N?8TkRE?H7jDU>8KkO\e9N?#g$< %qC,*LNn:l8rMFmP;X9cXXa;)#rBG^$gH8$-Y&j0=9_CU*YGXoKi=)/i^Rdc;=^e=*o/o]hc9)N5+K-D!e`^!C.L8]+oPA'<7,;;+ %buDHFC:$@?p!a[;m.N.Kd!%!=4hQf!16n0uk2/+"C*VSbGW^1HJLo=t\NVm'MAc't@]I+-`GRgrb?Y[UEO;SEQ*F=b-1-k3r3gY: %3J.Z*h)4Kdel31/h>X#Jj0t]\3J347X(n%QB)K#7:W_*^\gEG0BNs1&Zh!,79XV]74#m%,VJ>k-eno_Jp+E6sQ.@?G'mJuC;8g_^ %U'OefWr4t>KrHt4C4h_2A?&sK^RcX>I+Ci2S"A?8N:8oW.]&9m2E`qD_&aJnG!'cB!fosK5:09.k##RGs%R;kHP>DT(@.b9`UFC[ %$BYRZ`,i'N(8i[T@o@rG3UfBcQK$0`JRS8;#K%QS4E0kqgshc6bq?,Do[D6WFL@Rg'R_(`nOBe'pIZd>&$LVRgA@-DMLiO]`D3+# %ck\Wn$':UqEb/*i09I@!5C4h<9CpkXH7CoFY9@9]@6i5.RqG=*\atrH1nfA_Ot:47K7>hF^'JoL+CLm:0FbkT %8"qZUqCr&.GKgK]I/ET/mj4N90(0lP1#a\kXSbfTUHab:`($GcniS^f]u"?1`c@Vt/Z%IN%nd6,4sqg %Cf>Kgc1"Oo7hA*OiY?F<&J6q1?cYjGC-D/C#m&dk?NgAJ?p\7Z:QPuN\A;R!2/btZTiX8TB"s_`7qLTjmF-[5:Y98SW8SRgg&&:! %XGCdKOHZ(1/_tcoEbUC&+]*:Z=qBukm$$GaZkXO?l1PMfj=q(/SWBmCr`r&m$O"@;]N_dDKjJcS5]TpOOWN`i>O1G^'h-hXo_T76 %=,]B'SSpZVE$-:!a3?lRpDMJ#KknG]#c[]rh),HqklDuJX5@J/d=uY^.uS#ae#gm"4YiH1O1JhY&&oc=JX3hN#%?GKD8O=+&[;D& %==8_@--Za9rB:u0n!2kSTjRh5D\GKDaKsfGBnE8H`j^2#8u&@!0IA+ %MRAhqfERK_-0nYeS[_6tQ_Z(hSG0Skagn@ZoGlub46pA!8j:Nb %+$R#5%dDNE2?mU+Efm0a=:SkHgQN2H*_MJ6@IG`_^+[Z %]\DeXP#5hLWD/:'S&gZ!`VH(nP>qb@iX^_8GTO0_%HgIigT_j7@9DIOr-Ug"It?8,R#Pb/kiJ_5_7T,^@_3VkT#6ME;fob^q]<-% %qA%jt]Y[4pe7=Z5piY)R?:N.j)#j"HqTtecE@8/WH"ugSI.jNHp-j4_^H.5cJ^6>eI_p/UNs0GL"lAZoZNttpnKm%M80aXuqVsMr %Q7N_@Q]UKeNHV^@_JWo%0*\ %-RBQ\5,C`-\X7MjQ@&.*,G"-N\mXQbV'r#,I6F4F5W)K#c)(2 %9Md)lk&)N(,7XU]c90&O0mf?;IAW,HF*'0,iN/+W/Y=[eK1'6HE?a\f>O+gS6`>_2PoZ+"RL,At)DrAakfcI&\KH.add2r*Ts?9H][[odYEQ96tmfEE'QBb5Qgi=jb3?hk0Y$F%6`ndh,e9pBn&6*MV21H0ucVr:#9`:Klf31IQ[Uja*NlfdM+6lrQ,D %o>]^ZM8G?qJ/442^`-'tbuK>Mkr^.%?`!rG)B(1b^D,j6FsH/>#!;SQNUOu^ddUI&-+<3Ge7ref%<%P7ET4l\]TVbmMi`^_2'll^ %@B&eUeA_Q!Ye^'e)*9'H4GfJ5ah1F3 %!>>>#O0:8>HeSk;Rsd*/(P%_AIYTH4!cgI)KOd/_\C?5YmlPQa:JfYL?H.4pXX[o5;BE:MMS*:C=ZL#fk\LZqZ,+9@"=W)[a*;m_hp`qH[RD[Fb4h522(R-XjNZaOg^-9R!#=Sb@(%H_0-J"ArRJWWfX2=K<'T1%YeMNO?J$_N28#VMRo3H %lAjMqn@=c6XGiYb)`;iZ7a&kdIUWQ%7]R'21H&E+7Q:]ZQ.Y"1tppXP.\Q:JZVGG.?>[#Br_PEB%Rd5!I$Z_@*47bN*XjaH$??*R69N'f`qg\P@A:7B>sPEj'U %9I$CYYZs!IQ")&Trg@@:O/ti;#_7a!o>F,#L2eFr>"1u#(H#YHSB%/86,9IFoVu)2Zof+`rqs%KJmY6G`(f!@irkcdr8`NMi;&*Y %Kij7m4s(q+Z;'"c,nP\/@PVPa2o@>j6,8]9VrMU'*$L(u:Yj0ACnmCtb*J*UQA"S,#)8l@+IUTQBSP6K]*[+L?Y8it %8OhpL4Im>'$1K(o!0o1`6$SB'@C<*):?s)[,1r]4clV%?RCJT*qO:<`Bt;ZY/TLP#s1M_E47)UkXH)oK9AnLUT5Xd^c&3MS@oRdF %k(_dGH&/QiZOhMY':QDEq@4k1Let`V_gq6XD9dXDdr\lC,;Eh&/p_=Kql9o6RSbcN'i;rrf>L3CM3BSsYo2"1b.'\IRe8rYTAB"L%$a7GOQ(f@Oc] %]EYH^8G]DH&EG>g4aJoPeS*,;.1u72]ID;1i7-%(BkLUHM3G$*71B?+>&#A5-Edu]0st.m@qY;=jT@%]_R83,nZMADTD+a[\IkC( %eW*[&UH8f]"mm'!h7u7Dpd[u(($D_jN'TMA7-hYfZ*T$KG&s`H>:Vq.23KO!.>oqgWfJMPfVY=.I-M[)QneUn(glHs]+9+lp2Z@B %5Un#K._'p<$_#Zi=Kj0FfAj$,OQqMff"X`O,(87Km9R3*CpWp'l2c-GhF*f%e;`[n$9c*D?+AT[pgNM>4r@8RZ#[s1.gb?U),gaF %g(*bipkl0-kOfC8Q:WfT$S1'#$R^DcNT1P-]LOV\JMVRUfb%mP5B%V:0!:_9gu5/6biaYiYBHs,CRG:N6oH'U4l59-]$:anY5,.o %d*t+]e,";n3tk6,\a$Th8h"[ZTUU\_2pnb"SX96QWL2lKpM>YN*ScQdf@jH)o9"\8[VtU*]0DRjl/R3E1hBu93+5"@K5_daDmJJ9 %eSO)W^'nHZ`FZsY[c6G^.]T_c\ZNAuas4R6\-Y@C+m$rnMjr@]H9cas2'=CdNJe;F?]lK=ht$R7LP"U-D#;O-kmms>&($VtUd)ZU %\&F'Q;jG:n-]`lUi6$f0MYrs7gpVP+ld1A->FI\F[oqU(Tk\+kOr^B^)E/*l45\,AFJ2^=l)0[nR7d8_qYN6U/1VXq..o?p3#0r% %[oJA1IQ;JoG[&-hUHc%r4KE4Xgf`JT$jKa1!pc(]Fb+dL`IlEF?[$^,QB9k& %Guim(V1^DCe`(4WqtLZsiB]\4kcoa^F@?3aAd7YcFBdr1<]F5L/0+3=-E_!T2n\FYFSZ)`HXjn'I1#iM.4AEg>hiK&YoT&$8Gnf. %9=$k0at!b)jRJEa&N_Fhk?jFra!@UQ/IsmbL)Ih$:!uV:a3-;'/Y$m$*>@[*ht;4jEeL5Xi%?P%Ob2Q`grY\4DlH'D"FYj:13&&\ %CUYT[Aqg#9bWqT]]h-L?^%cKfEl;o&DijD@@tX9F!o>&K%<1mtJ"3qI`\2c %gKRFni\>_9[6.eRGZs^?1A/a9#)M\g!Ya:hkRahmVnN>*p %E`9[H]nd'r;K=Z@2/_9%58*qM\Djs_iEWm"Y6YR-r.qH(QNKa)j4AQHQQ&Md.kD[pn-3X8=U,dHb&9cP*fEV>Z^s %<"??=e8-8o_/%`#.q`(E&:Tr/R[mnps"RSe9CQE8(^jq2PPKH5*,:E`Kk-Nk(Fp_m,0tOd]06ZXLt_cBiS+hH5G<: %:?PU(j=^IWceDIlqnPO=2],tHjJ:$os#TUshG,uR(CRL<]KG.#rb5VPm$$>g\Y((b+NU_=1FaiPaUc-GX:qA)%r"#(9udSNK;g$SrCn@6[lR-XU'[`$K%*>*c('F9PlkIlo!s %/6>pIQ95lr4>EaU@`_P7_,GE$a`AiSAK_J*m].2*WEO?B7b#\OF>HXW:")Z=jZ0)nQ>>K2h`;lT<7.`+q2(!KSC3jhr]c5%T@8j; %aB_fo]2\FY.4Q6KG5Wqq$#WkLW+`:'X=7k[ckHaQ$;N.epK#>]-YUsqGn;!g(LAZPc_AQ<]s33e^1'R,kV-E;]*`0F__JUrh=WW&nWoB] %Ofs/&GC1b`^FiQJjruiXW(E1c0'R*4i1K]WhomB]>`s7'f*gUuiD=7QnCVo9ft;:j'5X&7:4#G[bOP %)i&d\L_G=HBbGnM"CFR_+SPlg"-4"jY^JFiIec$QOXfq=TknunT<,VS)TGqEl@kJ5R8o($S$ %q;bHFl'Pd'V.P^9=0XdUgOitVeO[E*9-3F()0SP$%.Lm_`ke8gT?7CEeEr9S;s)*R]e%aU,_-pr:lmp\lK@7[Q@DiHl(fCG]^q %il2r[@gp-Id"B<`60![Xo/lY>\MpagcZ>KPBMar9!VeBZ;uQ%\bFYnGu&5C:1IJ&f@mtH03T;>jg7q3'>>rSW3f=oQCpc=hJ@HHQ-'2`_n@-m0*7(?45#aJ:]IAdX<->D9N_I"PZK)s/>oEY*e?fE]b,I7eFHP7Z!T@T0Ffd5,J%br+SXi:\ %gKe3ATkPW9(W&B&*FB,daV2fIaOW_Kog#9/hd:XE-o?qjnLl27\OHoRl1Ku-KB-V(6.[3b.L@2U[$D02Sq7[j>e2Ebp0k>dfYP42 %9(eegamfOff3Z_mZK\OtU(iIP>FnEb?*h5idk)DuPWF^^?tGa=BJpNe=B/aLh#I`!6\dQ]F2/DRp0Zm73:ABElnshA %pCU%&3F!$t1Y$)Ts+<)$((C"S:EO-Wk.I&K4;PaaNLidb94pp2qQ6MSe;F4e %OnboSh3/E+B8ZX!7<"]>XFrMhHA-eC-cLP@NhHoP`49BmH&(3!<'D06)*^PP+=#rK=675_gIoF6a[*ksn"L`-sCd$UIT;:_QWqS %L(&'jLQAo`S\uO_1Puu/HO4i/#cC1/7otUA26CIN0DkN=oDJfp?'`#G'g_0ltl:R.=0s(X$3Cpa^j@p_E=.:]Vrm) %q%/4rO&>7!%oF3CT#9cPgP;TZF2`"J_em0[.rIf(M-:E[V&q094AV8#YSMJ<:Hh-t=k`^)M7=/>bF!Fi(jn=hbm'&Rj?GY3VtNSb %2UMAVP^U+HJ/DE\V_'810d![PpoCIc2(Ks1+8CM"V=XOMkN-ZW)pB`oG)"0UggqT7hTeW6;;gE[;^=EC>Gaf@k& %`5?P(4u1eBH%lXIqr]2fcH"`SP&K<5]jVmP'SeIn@K9N:`-^Ip!fEitq[>P3/-P+4>U2VfK)078(=r*:aAcNO+EaTG97DTA.$ENR %;'!ZX:!]a!]/gj!_JLH2]e,EKF]>\.G-W:2d'q/e^;H)KCu3,drI^c1(V/BIX,gD>[k,gg0KY9?==-,Ef>F$L+T/gWPTe9Q5gYo= %(Q7Akjfbdes2PBUa;\U=?9,O:dt.[haY:9l`%*=[%-U@Bb$>&7eG.NMSJMd?qZa]tr??u#9l^Q^Tc %`)eSI/q!I:')'G+^$e7N@$XrU&M;O;@c$@0k;*.)>Dd9=+>oYFj2nE`gO^c3IV6dhN'S-2rF:-_[gk4K3Q_aiq0^*(ro&i^\*j6Q %eS`$r.-JErLK]kF%o,f(W$S.:7Xn+9E$u9Hmjtl!:mRbUk-M!9@;D1#oC.PqYgd?d"H %j,$Mp15VfWis-6lhH0T::E.in51Ju]4WC3FPEH3fJ_L;GX*m3OnrE10&_Jl\j1=5$ %2u8=c9f@=(`1]!3:bI;D]FnbTq2LjuHb.u>&q*7QVWNs,FfPe@KMlaXr&;6+WU]q.[Itm`'QYH4>,6]j<)4:-Y`6<'e2m %UHcoPgU>[@J)ttMel]BiG*4TL^Pm=s3@_r25j-s- %Zg)*sU=SF,VTW61*J9pDX\7u4S`JJg.Y:UN._PYpWM^5L,$b;.YcO`F=_A],'OY'>6*^QQmDZA/0B796;FqmcA=[j.OPK,M/F/F` %;Y$2*I7_1]=\h>h'%u/pAR.k/Sq(@jq8qBrXQ=;o$@diHQ8]EW,[S9&Ns]IF1O?9Pb+K\BcrCU"?3[NCIk-/'$frA8>9[jml%A$G %Igj]4=#R[s^@G'YI.$Kk"NU*_1oc8MjIjogWu<$$[k['mnjWa9qO(e*p9knB[WIf?oS*/([3@N)Xor;RWSCqF>R %D>d7JJ"O553.&a9pY@98UV?)m%.ul%NuSr.PC"Z1q&*,GS"PsO$E$]JZOfi3GV%@Uk9DsD)/LnsbbcY>EquR%e*+9"of2Z&gP:*Z %8I82:,%;>dc:''5Ym.<_Yr[00'_4"RM^O4"QSJi)D&a$kQ0nR=6K+Jdn4^`i-PYDL#ksNU1t9pl8-Ph\13Z^FjJ>f;0!4dn.%H3> %ptR/`FXilnFNWC8,:rCOF-gVE>X::1*&AT'+O&!&S)[[/irmO2eYB!f-B!iCCBs,qR:^t37B=uQp9ke %70>R7l %oGac1X-nJ_kr87TcBj&+\]cXheWoP=4)M8aG,0"K^a2$"r-IEgB`9O<[EE9;DM'3KjA^%U;fL"]Y=0jG:.T %D;4cHk`3'/rLQ^#fn7GqBq#OCCC/TqV6?7_`+koZRjnB)oFVg_DV0YA%7?8lM:ZE %daV/L7X-`s3+*>-Z2,E[o$6LeId"%+mF2tM]GeK+WA3Ce"'sDNNKGG5GY9nm@mnA$r@_o_`b)WS*N:d,#?P#a(f(mTVT'B5YnbVb %o4r)P\_im4ggZhW_UR4YGO5^9Z$5)EIqjpe8$`LFB1e.0ZIo49iAif@M"i[%"^28M/DM\%@\C-C+5%*@3pd1N"'8VVg."66RMC18 %Rffn4RuLIMf*VL%^VN:orM_f[&%fCPmH"fac9W]a4>mUmJC,FUN;6>`@JK`'_"oZYQ>U=YS8%`pe9ZaOH<'R/E5`>2o:.Z/n+?Q; %iFK5)PY*=)!=6U.,6!0@1V9m0&PDmj,j0RB=`FJ9/j^p8h$Dh^jAX!dfmr9."OJO)ned2^5lgkKD81iloR?u,"3m0jj+&b>>jfS.*dY&^6+1]f/_r5<,iBki7ScfFQ9nj*.>M`-uZ3+7dMt')TLj %I@(h/SCkT"h+[oqI<(O6-aBl@'E+2$kY7I&XW/:KIBA0n4`uZeTAG4M#%A(atDbO7Y_,h%9+sRECJHYVA %JjtFj-%O-L[`-OeV#c`f)_`U!cr-.89AXjY(^cqqCr`DHF:0ULi[;1^B\U=o&Rbi>\ER4>`Q6OhL"V-hg-oh=$f:dQ0%U,/2J]l, %0[`e]KrJ)5D%&UK7;Cf[JX.>O-nt<&a15.b:R_U2gM9<;32,ugp$I_3[,s\h$SAqsQ\-A9P47g%.CgO;1<#O7f356<>A@f#V'sHk)[M"GB#5k8WFKb&KgeiI"+F2&!: %.j31tC64r^OR.7k6ca_X6a:$;&S?8rG>\7gNqeZ+`,$a.^u'Xs5&Mj6e$BD0H/k(!O>u&d(Mn.q97?5HC+69CJ!:/AoT@jAjM4m1 %9=2^n]uU-+j$=aBkGJu/CY)-*"31j8U35a;eH5CPFTSV3#u-i>*F'NuA_ntYL,YS:8JmLhG)W>QDMh,A?*36ufZ"uV^Wl%3*Mmn( %fA(eX9fhV)j1W1^?cTWOWH4+'AomDenHf]J.Wu#4+mIbA%_6R)qu8nC-T;8\TDQ=PT:5tIrT.gD8[:VYbLc[?qtLR&U@ibeclS#&?6P\6FL80@PFEe]#*F!UK-8!fAPEr(tfBV=S[=Xb@Y&rE*lcY]RP#ZBWgINH_%#Y+gdP0@aP/?^3 %F(B^3hUZH=CY1j.pPGI*B"pcYhcFFKQ:u7b[ZqIZ,0P-a'Z,=*%mZ@4eC91$905tB3aid+1&jniP*"8m'Y:H %`<;9cX#i?[b\a:5$7uUQA^.tX(KqM.$f*J+6H_RUrmT8@'%6Z!UO9LmBW%WMFLk#7n`bEYO_\^,Iu-1uqN4dmd(,\DD-d9/E5]*h %&KN^458Ma8,Gp+5CbtTc4c820itTlW]^kYG8=noq[E_"NO^Wh"#=W!c#[U81U;q1 %@rVqEB&"WCH5ap\ZjSZU%8tK5-Y4^JZoLLFP[P8\.XT;LmMEI)Tp7AQU=\eSG0kj7iR4966)tBq\M,tl;NL!P1&WLDXlWDIHPB]L %Z1NlK.7;JZFP;gH)+np[cnjGmNbcO9opDq_(:oS_=$YL,)maJ%eWoF-93GhMh6Fj@c^lesAj"T6+sBId2q0\i`6g;MHVWkso6WFf %V59-AU-e%u9F!0k@MT\^-dU>O>O5B,PL0Q[0rNR0"!>$V\9i*HL`i6-qD5Y'.)>,*G#u9#TQ5*./h8k&%h2mH$U(+o^*,F@;pW3k %Wkm_#qYPuD36!!W,`ZqOhBpj9FNLq`RAC0=WM6_m@#t_dQb2WC>4#RBB`O5].d?)*1ScuWn;*n#Tq>d6OZ:Vi)9l?kYhj<]+:Hf, %BN%RhQ+"Gf^<.rgc+=BXQ*/^9g_lGoJEgHKue")j#D/nftC0=j&iNefSs;)6ImVNR/+5jm]Z8@j`b %aroA&QhZ0`:t%jT%dF;Q"h[pN<_h9h %MZI\U!?2oY9OcC=`];@I?mA5Q7iU-AX$T8p=\g'QQ5--(("0G*hQhb$b4FRbVu(a:^*%QuLhTi9\YGrqPnDf+[H?5gop'#l0:KI< %n&f<@4XP:RX1h,%]mjGdM)BG]a^G^&_SihhFFJg)5#KT9h##RWO(d\]XXsk9O2q&^&&.?VO7NJ*=EMC_XX_0C:Q]c+XX_//TZF^_ %;C*P!P$>XIKTRGJGX%pnTA]ZY;9k4J@Z_btr91f`W2W%Jr0Y9W:ESa)qtj=K&"iH'Ws$2nd1\#7[ifWiCZlRY3\,6gW1WY`H@OZG %&afM[l1EmWV]Fl2FM1Gt-1N^FUGtJhGGXU6_Eto;[Eo9-,;*9I:M!:FITjeL%d-@F-k]C+!h:@:BOLLoHP;A2^Ul1t?SXaLW3"G.$R-[SN?_1NE2KW8k/l"p>5DM6/5?2qh-/Am;@e9QE6/$XCXdl:-qhr_2DD%'`2V4PRGOu&&r:HFB %B?,=fh-aT9,4;-KG=I^0-mc`,OjX!G$SN#..RN;e*5(&F.[il"1fO99hDAZaj--N#Y-l-(Tc4a@IFO%V>i-?O)_?EXJM4#_HhdV$J %7:PD9o\CSgM'=\G7$**1ROAe):Lki/a:h!Ok(t?DGbRaQ4HUlo:DAYR-ZVrjOX>t(\4XP9$(<7Tj!mW@-?,\MN2pL\@*''NhKbir %b&*'m2VRWs$%R5nc[r>U>m]UdjN9SL=!i_[(CM..9dRGp<#7T`nA']P!2oOe^W7\:b;iFhD!V7Sg;OtPN?`sk:IB765tT2+ol6;(U5 %Q`]!QTV'^24_@p9ZWE;H^aUjeIk;t7+1TNftSium^ZS&48"C&1tm=e(TPmgOT3e,@-Q,\;F=g?P*DtH,Tk]FYl\H`LgYa"A4Pe;i'iI[=:Ic+2FAoS85t=ld8tkqk\Ycs[]W[u^&s&(6R,h`o"'HiD(!61qM\]q)h%T:at&[9cmH=0Yt/>5i[@Jfab9WV5cq-)4\,EutW9B_L.U,Wiuk7&i-t-;lL4 %,Ff];H++L8TljRUU+9^@>CYMImAR.1/$CHi1;+)!D`cDuZG9MiRL=h#1257]!Jro2l6rnAZUGT`"E1lih;*9b

E0UT6[M@\YJ$oR.g %E/G1R@]aJjL.lOMEf'27k*I*0WEC.ae\8V@j)X&/$B!E6E8AtJITD&)(&fttB/Q2gq$gACJL/N@.K`dBk2GkY8JB=#&OX[P)hn3Y %8;q!kmClF8!\E6c=09-0oZRJ3)r'57c\P0MNumg!Fc=B>ojo+@,mq^O.g^D:Eofg]Y_g-i`*gr;k)iG.PB::hPb$9Zrh<bb[bR/-@:@7_Ya"sqh$>W*'9>O:6t>0mMj$eq9E(0lp3uA`"%'-*J/W]BP=@kXHW(LP+G9N-f#7*V)!d#qH"9;]Vdsk %o2nUgjIG]m&Wg7o^7DI@/j2>`?e'>.']R=(TGjSK+GP_Y],FS@<15s+C(MaTKFm_'54Rj`n09KFY2Vr7^i9-Pf@3D9@Ckn-RMJ=S %HWsnL]BoGkeujFK.A`s6&$7OnCC)2bF1M>%Y"]TB/\0g`=p[=UMGI9d-T@t92rGS6'[ %^/=gbNmGEC@9EHd"mjA)!_QsR(RAB7&5fglUt7P!'"Y2UP(\(*B+2$/:-?8"["t'.beXo`-,Sa8#&5L9/4;nndq6`;U*R0S#M5p% %pP`7kn=Lb/^K?[_@TJfp,!W@#->--PBc+)d.6I@b6g&9N*DFQYr)Rn6CQI_FfFs=0#(0sR%)-c %>\]4Dq::]Q(-,5[A=l*U]>Z*!PM=/Z_i %98UojeNP*'[6I?A"])\'lA:Quo:Cl&EeV,:0K&;Y.9@GEpX[-<]=4p5;sI9lcRo)>nrejM_g1e$^e6!qO5u8p7-#YhJEL,iadG%/ %3?A]RXo0I7P#9">ho/(f0,Z%!b4oc1-)6!'nG?N1Gf_'G`%R6tUJOJcm)uoKS[)8haB#]rFQ'!N$@')#`gW&I,(_5:PU+-4OBMa( %gs50W-snAj4E&IG8lip?oNoCCH_h.HAPqTiP?DP3[VTGB67.l#^d?:qp_h %Vro]B!On/EPVf4;/$A+0(NN):b_DR??2UCJD!$[OYjS,)>EQ8U>r]CCO9nl](Wn%P.[>j]5SYDi9#kD4#ul.[>Ob\i$``k)?Cr9r %H1MnD\(i@^%j'2k@@'@c-F`hERLY0u"X\$'JlZ9"bFuci7?8uLa-:g@rWNl2"!8kmjBhmOb/ejh+o+Wq"+LXbm7W?B,BPL0f\-*N %bH)]+-)Oai>>6fn#;'siBnh+gOTSHWn5dQ-Y8`^X$#f&mn`at-mZX8$4]nS,C1KODp'=>:Dd1R>.fUJ<=CVB!9:qeA\:;*:QUW$FTa227uC!pW3&,QnX-7C@q%Q5$#M/(U#n?ZUi%)."qLf?;odp@24E,I)]hI$U%e&1Bf) %S#J0dT&FtM`S0P`ZdN!V+Z/5]?ohP&fl*1il7YVJ]0J,N&hcO?6fsB7KU"cO^k"r0&U16_J*PO1U$59"lLOF6fc%b#h>;?-R %&pV\D?""p*$A=Za6X_/e$7%>O,8;I7_t."@I0nD'LorEDPg:PDG_DM\rD7m-]Adp/Ko)IM(<.dl=-s99BB^e$&JZXEnl_E-6e%Q" %62<'BhP8\E$Hd#7;,Z&8:-n\,3[ZXJCujN\n9cd59rFY3(,@*e24]]5W=_"YK(<'>,#jcbZ_Aq%L#]N;,D`uYp+A`&=[_F&ZGK"+ %Y9!4t``hXbZ797,53o+H!JA%?W^:-m3R8]FTfRSH0E/;tX/?IL>OT;>VSNEFXY.%fUbaTZ$WY&Lp'^'BI%U6*;R9Z""^ %Hqgbj"ha4$'%\VJPl:A.H,5]j_W[$D24_DT/',ff5qABB)rX+;:?sBT*=(?N1*Ks1KD+%T.fXcWb[mRF8;cDpK(rRO*Ab(GKR"oep'2*9tuRhWD'kFXLtJ`V)88_dgr;> %QdbOdQ!_4@*jonraA5)`UUu+aP]$[Hble]NAK%RSN'eAi%>glBA?TPfemI_=2=YQh.,J-_KK%BHHs7[(d! %/Qa'%$uXgISB[G8?^Y:\44(!NLtQ>.XRh@9?9j%phr$DgN1\RNSbYLW$i0l %kM=,CP9j>@:E*hk+Bg^XC!ZN9)&.lEG2Y6a%PG`moQP@6-jmn`5Bqq6ZOM+8d]L@@i%%&pXF@2-!&=CNBrMnGB@%)rOu;CqTM^SU %H'ZCsm!caE=G)NfZ5$dAK;E9B^M,)ELu-)fb545m+GiuhYe9G__TbqNASbaN"Kt+%)rO+hOos$VnKH600IQcJ%MZjfnM,h/3hW-/ %hX[:,FsSLo(ge(3!YhI/Ylr8I3nu%:/]U]Ef)[/hCr)pjq`:AmbY+Ve`m3XM^rfc#/kK5mrKklF=p=W"J)'$9p2:b2W@&a;.=V%9 %S%c;/*(1j)LknB>&upK**I!k'cIiTl8/$a^H6t)?_+TqEp70Ua0Y$[ASm+=)r?bG-n0XLnnE]fOTtb\lMPp>qG&VQ),'>6r^NS4c %njU[uX$W%(f[e03rL#]?)fDZ.Cq$.5N; %B&X\th`Yk_q9jCuM!]PWWM>VG$hO/C05cS1N38T4VO4=H_'Z.Lkba_tLh25[`\3c87uA',D7A[M %bK/IDSkI1*0(*PgK]hYL?HenDF$+.2=N4;eBJebJ=N7t,7F,(*@eTsn1O@%r%Xlgb=@Tn]5-FIq_j-/#;8*lgGY'aPh*TLJ)QLj' %B:(#Jg>4`3qN[>ur7U2K^Yt?);h_3g]c\&eU2"CE%]diM*X.o&kN$9"*"1'^`j"AoC %ar[PEYc+HaT!pE(Hn0[-iX?ID*I`>-:;ANI`VcPr44r?%#R*S)1NmaUnU %'g3EZnM9G@'9/j[XY^W?BAJ%"@I$cL!Ap@J`J=B>''ch=D=],L&LDCeVh6Y8a9$P-IN(?;KaRVj[8E2Kq\\Zg0ULTo41/+,/e8`k %Crp%m(semTL\CsjVb!.9Ijq9aBGB08'DEO8I#:iQmnXjp!l %0&N19gmb4CMm,uq+p'ip?+O=Ohn\9.VT+mHS1:I^EM7H"OtA9ACiAYYYjP^aX\Qh60P/R'fDGAlPNB(lF66Mf9i^Gbl^LPf`0-i3 %I&X[IGu<"5R#O[;+dWK:Den'iPu6,C[ni1>,D=%=uklG3Rtl_O:fqP8\q*fk/t(j1o:aRbFWR9;aO"K./0$ %D>8Di:t]]HKu'3\e'9^g#uGWG@:8!$UBpRL@U4dr4j%od/(V,u2f6S#B=3P5e@F\`k0b8uN'J@[G"W3S,-Qm]2\f1ca\Y&=T@T^0 %%hmIu&#OJ?YaDS:880+(YU3;U3/Z<(^1]60Ul8!MZ%XP<5RFb]hP/!h,2-)LINP98(VaW<\n;k(1#AYDA>ljtnM(e2-;,$GZ,G2M %@>F[Q$6anc(.dgr[Dt-7:?MO_:^HlcX5NQKUY[uj'iEZ4RBNgG&%6Vd_3gIS`*Q2T9DT_CaVS/*m#7!qqu.MlWcWH+3+$J6N&-!X %oJ11.MZNFg0"C'+99\bo)XC-&WE%X/"ruB9=S7J?jbnCJ*^3g46",Dj^SeXBk)3)6Q3Z7]M*7!TIo*l3rF7dW0DFE/gmhISJBrUY %UaCc@p3,tJ1e)&XC:9B<&7CmJ`%F\&+M\P3(aHugI!eLqWD&t(_=k$rSfT;nLe2*UN*j)f\$kF])On^/T]bnp9%q-jH]h6OI3_>UGu88o*pTS"RU^%W_\ %UDo(lfN<3f)a+BH]Rb]HY'Ji"j-R'b\IoUj1&Z;ds$DM<%-k_I-hNO6H6g)[(?e7D8X>K6e.tVqNb!9&S"P8K').>fD0kVcaDBQF+]&pSA@gC@9).$_\o2p:BR&1 %KmrD$=aJKPr_8dK&uj523?$:eiEQchl2_j4ZFpj.p*.BnU27#1Zo?6K7iN7GErh3micid[l2]@.c#eBWp9'm';n/R8nEu>II^@2j %7P*8/WgaJ]BTe`P=/#sKmCkjQ5@H5T?,t)hg3r1S&d(ki@bFd_l0bs+V!i/-_C95A^J.s;aU8'.9iqqa]P8R$F8"ZdMtYR'HMtS< %"q-MaUg+J/8S!Z'>\m$k5:oLP0-/&i;B$8X)]LGbJYpr&T_+G-TS!HMU:CZUlKJA]h4832qTbU&dCa57:1eo(4@SZm[sKoo=5oG+ %X.nJGl5f=7:_1W7_]\Ab"gDlIUs-T8oZ %I;C1MM%+IoFEAeL$(a4HKi6@06Uh3@mq*APX7OFR8nCJ32DK9.Ll)B2@psI1,_"nP[/>@,\[Ou`"%^(?nRJglh?-<]K,':pnfC'U %*HqFl,4>OXhEt7R)P,sMRGt#27)T^`%j:D&Vq*Rkh?0QB@83nl,4>OXhJ)BLLa)9g,i2,JGW_,_!,5;`iJf5U53JORe[Z>COXhK<'@8)ufu>#[!3l)5ts(7!%$&:'%>*?jtp5iNg3CJ9lb!.es4XYg&S[b)!r.W4O#+Og_h&m+-W6%tCS\P^6Wn#8usOnShg %mkOSRS+_EJ`&gF"`>!S.+Ropi.:IDBD/?QtW@7=d%.EZ_)b(b_Vj!.SZa+A1;D[r3ij?e=aBnNmQaMo/5EY\ZJeDTip5kO&cF5*! %O8q@bp%0-,BJBhH_b*CL7G`5LY\L@'\FhV#'m5g(?_6Wdmb4*ONf'U,e+9+UHE:X=R7Vk-/ur3+iUo1HYe_McA9bFq'nC]a&SjP5 %TlS(,`^I\%p9_HIG4)8S.'3@>s[-r_H/';r9dt):^aiq=@cWj %h=43rXc1JJ"_G;BY:n:4[B=>4p/VCV]3nGO=8dZ?&)0Nb5@+[k!8IU%np$'cfdf`bik'fJ?!:i4ianJ427b%'>s[-r/IjZgh\DCC %8l1G]L[B\a5@Mf\2mu@@\VeOR"_G:YhdKc0j7!NlL@5JlG,6s6po^9+(S8H4kIZ>O>pQ^+1>`h2m6\fB<_-R?[L5TAX,OM8t>s[/H<$i+4'pS+&h(fW#eN@T)h50B5gNMt-GA#0m^e/1$Y#=UU@-JLgJH!*gqRN#Ei[3GG3!o5@a"#l;T8qWY)mm\1 %D]+:c+q-.Y!G*,#L0BkPV4FY\?kEU+Q\5pjW%7-^_dLdrMcoH!hHB215"EJM@?,SS7A]48D^N6aG %"t]D!_f]&WLPj?^d6E;6d0QCn;iloq?/q:"Vpa3#HZDcB21@.R#A2jg!9)mR1OqGk-tteaQZ9n&&5!XV8Y;]cdKW64!D;^W_fBhq=VnB`fqVc$LgOD6*2[L@W9^![,*?Pp@$,$@9Vrnqlm7'[$e9*i,KRWGQ1['/gi]t>8]km'5p^!/t)mc6:6\#GGWQWqnigX.K_\`q,7bUm.XI'O'QP %Pa$2RW`4^b)]iqYA4fHSOC9UpQBG.+Jl8gWNh`CL1lVbl/3K,#=UVAE@4NbfY7]_)YR=c8b(5lf`l]W\(r)l2j"Z#c(;%'p1DY%* %8N`[PHn366;Tds=V_Tu"8eDE\^UgWtP739.91h4]`O#oF`(N]_r),]712/0k#D,W\`_o^WJKRkt76ULJ7ARq%;T_k8K[esT^8.!O %QJ*0J8i`7c/NV^ICO2D,Ros;W:$>dc.4Ne6,Z@g`@_>V6_]OiFN\E.1FX'Ar-dsTCb\%,uMgTr&^[)u%2jfb24TLOrd%+tY\<7A0 %^G3;pKQZe0-'`!5GdHRsA&YkNSUU)pX9"o=I-#1pPdXS02Q_/UJNVZo?CqQ#_t1,]4hB0V]&9%5],KFpH>>Rkp#(74suf_n(:;]O(3CfR?G %ShR@TE+O8),#tR\]gWf+VAV,PgkaW`i?GLbLYloAK-A#2L:.k$1 %'E4kl'`@ZX^I7*7Pi-a"cAAJX"_+%^E)'`^q89:4*6nk5H6X^VL#SVANK(=gPDNVd>*(2i>8`<>dS<>bYYK0t-VN];'^HHgF4.cq %N#i(@:8DcM+P%tOkCefE(fH#,S5X/b.7+Ni$0tUsA"DUu:8u$S6?+u_<9E59\m?Y"DHiYoml)lM-J.Ngkor\YK2Da`Z)W^opJ6 %4tBA3"T`,lJuF-JhP@L0`;u9oS_&bCjrU*XK;p'(T8b4(A/=k6D.R>";IihSiO-hP-<+O,Sp[\RfHnTX\ZnV;.nB(u#o&e] %SNi87-@_m!]KV6hRf9D0Hu1[/9tJCsiKBO&-9`A2Y>=%u\afSpqTN-&p5a %oNGM5?)Y"'C`fKllIc;omYK[@;pLU"Id1ht]je]2.P*6`MNVD\=-;/oWmhb\oO3XE:=XUaBl\eGbV'7gji!j[<;)NjNW[nmpXb<6 %P=oalHP6sKd3W$jh"c!%a*)#cFq^otPH*Z@0D7JDrgdC8XtRDn=a]G'ku@_<,2h+cko?BUFbc=MmC('A59-E,IRsoRFK$o$hM#*@ %G'rso@HTRT_su9D78M%(0KZk[lup>DZFH'W$FAcn0:U*d'kZ:fbE?e?+'q,ah;#["2[]fRLcGAT]LhA+_4,,k[8ZYa=o2*#HokXj %Dm2phPb"#XIcG-Gq9jGn7;6M6h0aU[e;sFJjUskdQA-lY^Uo+]dO'`dns-d/G/(c?I*(DMgVAY=>8)iSM!fO4[>0gNCS %DWBt@JE%S0_bS)l;mL^BerI1T&ALa@Qg[!OS>"7\NOD`G/Jc/;]3pUs"X>+aR6MG@kDT#Vk3_EIXQq=of-&*LC!ofA@B"Nj/b_m# %H1A+]os["ih`1JE$=BR'l6^a>q_EhQeCFG(_A?:;u1b$S^(/`L/WT %I.6F-1PFu1Q'I(1XhN8$0A2b:G&U>5mWT""mD]ajb0nP(FpY2@24%YcLcY5QR#+`Vr+,C"a>VLl^1jgZQh@g^?-)ndP\^:hQ[dbft@=Rk"`;?QT"M\>B:QU %Q1k%*M.$+EQ8E&t3k&gnTVTt&Dgm:mJ3a3V:C:O-1*[R)tZ?6 %S"&`UNPXrTRJuV)YBM@AlY?"k.rY.h;H5dA/@Dp>07A:>*&8MY'3eqFkrY."8L7CRD>[guBC_<9**?6)b>j7B+G:B63kM`hL*Y5K"c2kq*>,GA",P%M!)gak1%-)97CRol+9m]A7=f.CLEEoLX6(h9tD,EA@/!akVLTI[_>J1MfY. %g:P*`QZ/D",KUh[8pd#5o_lX6kp@KnLPS<*M7h_^#[%NBlOG7:,$q1GIuCf/mB="fHLE8[OO[(Zn,se:[pG\%>$'1Zk9s':O69#\ %IJl;fBWQ^0A9![s2K-ngSe/XN%+p"7g],E+('`nSUYk!VP:U_+'UX7[JB]>/R5g/9HFTG4)mN9ks*^LDMfkDhD`tk[lFt," %5jUA@D>>DY5d^n479,F0fE.OH^VRa46pD"o;L\)P?r5pA*]XY#E9.l5VmAJS\0gX[J2aB2R,UW,V1VVl@n1nBQFm/*#"*4PTAZ89 %XI(4q6?R29C[k\mX%PV(L$?iE[kH#cVPO0g[/lt2l9"A#9g^mL^0rAgc5LW;9GUsiaY.UgmbY%U;T5AVe\$04H,@%2qD)Q!XYAa7 %YDV/AnBR?7l8u'4C%]#"3%)>Gla/$"/%:AMea,5`WoC]>lL-.i-)F+=&UMOt^N+(*9J_:QT^f?96Tq,>/-K@TthEq<)kO*9nN %>[.2kKr8A)iG/-dmLPtuF*PRn'_A44s#^!?E-(g;)ud&?"qBlIVSK4E,Un6$#E`F_RJ\2u4T<.3Is?4VJn"`Ji"A5^(&h]fHgN?$ %A,Hl8Z3!6Q6IYu1,Q(^CF*u..\]-#P8h#]u!"V[#_m2%)i"V=No9/)M[D7SL:GqjF7KA;LJQ$,nZp*p38:CCC`hA3PLD'n[b5Niu %5Ak@^?a'LH^bPW=jibp>lh/O&L#4od:N?9tn&PGF%HUP]rKGM)3S7-pVT@B#:.]a6:70ROk+&]!XoD.=SiPs:f$V5rF"C#Lleg;Y %X=20dc&CD+s5Ou-,tTQl/-h*""kSp$Glad3&R"m+;Q7Z"h5K=G'PO7+mb2?&4P\GjcCmmUC*_uls1YJkTWQ!9*;9]H>J;5sYenno %1+0mCkf,gB-uoJ_K$io=54@?CFV&G2pb>R)+T;/Y!WPnGLqI5<3(AXJ:hA<<\9+c/&TeQOX\l!O;oeh(E5-mKAn_9s3ie2n-_*DrJb8!EBeTNjU+=IlYfV]Yl[NI@M2GtW@D6uJJEaKch5;6hY3)stB$[i9" %Io-Y>\`7sfpZ6e9j7L;eLi&7'!mdnSebYfiG"9q_[NN^$gb+B.rUKB'pF"^/e-?!6\,Lh^ih\Y]iL@&3i1jVADbhEGOiYVd15r&RF23U%^1Z`2XGp[N&$n9MRkfLqa?n'FQVMB_p[JL$+#26j;1nQ!'t,E2''i %,qM6:2kO>:W3@mc@%p*?fkPVjpln7;"+?XNjat?i\3*d"TQ5o`[M`C$^d]JEXkkig+)3:>l/#tm4Db9rOStaP^`u9GaZZUNUp$Ye %S%a3816$#OiuknbDO7IWKXGg)hN#n6kgRSW!'_=+]I592OC!YFa9]4;Snb+g!S)gLCNM)ci\lhA8q>qT_BfJeBe,l,;?;_$s,3t3 %WlP?MclU]B&ul#j6P8ZSK"f_i&hY4&UlcM]36.IhfG4HCU7JcP"=M"*(g6Vk%;&le>L[SPeEhY-UI'NFt[s)Nr#n&d"gD?sFDXOl0UqAPTIJnPh#U%]g`,>9b'neHJ0scU`!f %#G9sTRuuXE4qn]M7XpJ]J4G3&cB46sN!'u/0]3S]frTko>16*Rp$e/G_W;ml8Lkr<\:4jmOV#;oK[39*`^o"iZ(f1kNJ%<$:h9rT %[u:H4.:jc03qu]EJd7p1#?,$>&f`GpO_=L[=:)$PHJbXgBsSH''@Kr\c^cJK#e%-pk]$0f=r]%9+jhQ,K&'$)0U/[1\;4mrm=Ef? %HY[.B+hB?Qj0KAM$t`3F7(\]q3#F&4Aq,r.^dh:)m6Na-?+n\=lb$kR?1r# %*WtGVBJUe453,jI[$_6c;T_\CFRZ?TKZ#8B=^ksSR1KAKWo2ipa%TUKdi1Mo:RdcVSrg[THL>`a@K\^[bPo*>EoAGgG#\5>LC543 %:)Sp(KnVgV(+7ME:7u^!5`,]$+3GFG"Ur2-E-Y %W8NuB(sQJqg3;r"qiul5;ZO]`+^`oI*/lU[ZG6p1U+FHDNhS's_kW#Mb4$gJQhF]H(rIbVHFLpfh5[70DE(WihujPf#lse>RE!2P %0C"It'jbI>Q]tUY&,cN6j%+BAJWhqRPMAPKJ/:m<`fcFiBm<,^;&6*GqedGPW`OuYP?_L7Ddt(_Kjc7c@90-O9CP4RXWGOB0nkL9 %PuMOXYn[EWg'(fp29T_M=1bq62CPi'-lhaj76r?+]HgG-p0E%??)%d0US&7O:/jZ$nc\>ZSHi5PiruIUR;Oku[#_6g/!/k;73+21 %#gY0>QA/28J5<&UA./l.#B-m;r/qi"8R788,0r>TocCcDBV#IL#>?cI0B\-k7//[!C7?H.kA^uNLSs9jC/')9TPk=%*/p`]3CJ)u %<70:n9Xk"m[=[G;D8#RF@:_m*:[,8R?YcbYQQD;s.j8lhkQ%rf]S3/u90q>t8L\V1W!2:?#k65%2-]s"X2LY[@7[HLK6o-!_l*3K %E3+knbTcni@)('.+nK3P_K%+s.\j*k".F6sJ`@Wqk![s-9n/QE0M4_8m2iCOHI3=c^S77O7.X35`Cr:iFDDNG.J0NOmKM^BC,[=8 %$0@^E/#W7lPTT2=_&+_:M!5ctQ]TS&YANC20^8D,=qd;GSd2o"-q\f;[(AkPpqZD>,'hBHU*n$YLEE'1H1\8,Qtm&+KAdeg&Cm5j %%)G+2K8'W0oF,GX6-k^c+V@LP3-*eCc&bR/5<;10B\GB4l&Z;%S03>mLU*qC#l\DgdU %!CL0/%>QdDn2OpGEL&2#/7:/r574O]V<&/_N6I:BCcj;A[L;h;I&'DAR('c8TT %jaN>[^dmBd?F?7/*nb(,(@>^c]%/VM/fjj>1VmRo"=GWV1VpDt=:c39*K->YHD`]NlCKmiTfo(ngTS%h'/^G.dZIf"kVjrNPn6@g %&-8Jn/1\QS81GN&DcmCIOYR3na'BW/UPE5Sdg9.`!J>\5=ghN@?4[JQcg\]j9&LqN+rOM*9#)3>OB!l1fs27_[?d(sl/;lL"?50[ %/fnhVJKslP[M$Yk.'/ODnggdE4qd%_&JE^r7c\-mNA.QC/B#njJ!GEnO[3PsZ9KdK\`aMDD %,Hc%E?+fD)NIrcR"dqm`;8rXsTK)hrOOZg'!UIY+NDWE&n4s(p#eW5$D1i$54Q_V%Y9.)P!n,]AGn%J7&oBlN=q %#>N+'nH72R'$CQ(bFl(KJP>C50an'G$Bi7uG13)a/eeGN\!mTe>0An8FRZ?TK.Nr)7288'GsGQ%!C(-Xp;-$bhXd^ng+7pMK_3gE %F,.(5,P7O34JJVrHl;)WRV7M\7NH/t(,2J_,R=OC;6@pqYo(nSP8#(?H4Pi9q1:u;J8%NdMG_)Uh;j9-78lZZit.S?C.n(HSkiaD %N1qfQ>nf_co2S1b,cY^o=HGN=d_9K%^FG,$)DNLhLW<9H@?VX#lu.+gOU*!H8+Y0CCBm'Dkj*7SO"Cp0BcTcDu->+JU]KE*d`sAg:F95$o2m2P[p@,,;QNu+Y]Q6Q'kuB`\!ATu,-H[=YqFnAe9DYQ]2gH+E&<5%0L!b#k %(j2rD5"Co"FXc5u_9o'.qKE,=niR.-9Ftb3oY;EJj_*&K@l>Yt3A1%nB2DIuoKW1$XOcGS6W.m,;AB"LW9D?]XCF)gf&WG* %q\CI)rZ!?-X<7F>cU"rcrZ#g"K]g.W:3+]H5DIjYr)7"TRPY*E'V["k`[`,gM5P:L^E:M[6a04KTH'Fh?]cEjdAC#h[i-A%aI;:U)%)EDMU&a[;i'7&DZVNI'8#6#UsA)<$"eG(nIAEuM9HMP5-!=f0Ju5O>nkjR6]rW,j`:5, %\b,Bd1Sg%C>bcF(RYV=BVN9!7WX=OW<;)tE<"7EY>#:HLeO\(hf#M&8,6u3d94]n#`DaT9EWjA'ZE2Y`q)+ZX5*F'(%r-)f1?o1f %U*D(H^=M;N>^H1ef]gfoTPB$+Ge%A$ZdL"&Gn-!)Z3P<<[>/H0H+_ %#o,8KoiMXG8AOY%SE<^=K"fek&hZ?FTTNWMnQH5"-4LqlhJOSu!QIe.9aN`=O][b/m7%.7B3!M('LuMFfa*qjs!A[.i:/o_8Y"$p %#`Q\:6r)^]@O%i.WEl.1-b\j3:T,^$>$"q1M:r4mf^9Nlk_qC47M&\4JD-;I)aQlEpCbJ7hCPMsL?A@ms8 %@'_G`P5:*b0&_pP4Y;^M'!UPWH3PF%,]))$7`)9_T8\dLmJk+n=Fn<%;s*F96BFUq7.@Z&$%+"Y6\%ZG$'^r[#rM:K:df0DUY,OR6]"G;,HWT21hWC\iA9E0b]_e(*noOm:HDe/pKf]lt1j\ %ehRmk*W.BCJ\bLs0A/:Heq3leSaZQ-/]h,=tT[jEgqd%=:!<67nA++ %;oJ:;'1d;De?+KJStaW_BbHjY;8aB.U1Bl?W\onf&k+>rap@\iddA;@hBE@p@oU;7(:j),_c&BENgk/Q?&=S(gfWH%=Df]!Mo6f9 %TS(0e0p:pCM/&jUL%TH;`lMdkrtKRr$r7u5kb(9U"Rt8s&UsgW">0kqo6/>$JWHTo4:62Wf34ibV2(ZG*SV@a+4`-k0H:%IClFDP!%RHEVJtU(R %;V%4M9uIsnZ;eV)>FR@uDSk-o#>*%b1RKV$4P[a`gYsnAS+`Bp7upYq$/T4"4:EIWIl%hWisuRrLW>NWbl>L-C+D=*a6G*S@UVj$ %Yu"O?8/AX-f]_X#/NXN4-F"$HD': %4U*HJWt<<:!Ja>k;EmWTheJ@33Zi(B54$uoIJVF"`akj^;[Z/@0k:?#DR,Y_8Mu++:E&80F".R0^-HH5@=fh%EX/suORufbr#)e] %iGjc,CK5]Q$i=h6r`SXUE1f>sanN!5W>,EoJu"s`_Zn+gqM2/fVZ?'dD*RA^aU2etRuuZLd;OW7PQe`[(O8P.N:_6T-CAb47fC4h %kT\41e^.<)/E!?Ja4coaaP\Sm1->u1Q9eocrcEF4^b"EoC6d#bTT`8^$s%3-H1UPd@SWn<)=Z<9cc3)BhrGrU/2a3Ant>$?iqH@S %N%6:8UIJa6m]k:""R>\194&;.B%Z-5-[Bah%VHXUJ8R*6`+lmL=UR9HTqpK!%Q%e7gD %AZc$Vi'F"g$>#S/'jrJc1U,Y"mP\;i`/;$5hS1'B95#ApkRm)6rHIk*I:pjYI[2g5/hFZNXPFfgJFq@?TdK\=g_7__3)4(851'W[-#9*2GR:04U %141;SrVX/G-;Pm[RbX]QLnU([HkBqGD-*0lf^88pBo9qM4iIb1`/9`u3)/IAZoF'%pa)e>j;>1Tg+9MMakGTgZc(FkPT_+Ir3*ED %JgbBf?oC**-/N_uZSC*@X*<:';YRQO@I4A(_1&fB3m%r-F??D!%Qd@l-=VaUUoS%B@>Ds1aA"3Ibc=u7?keA:G5;'^*peReR%eLR %CMjM>L_@O"Gc&;$h]Qp?aGPIDNZNj$CnPN %aSP%Rg;ptLVla"$_Pm= %@nWf#OVh&g[8/!RnVT?[g=4d/bc.:>c%2[:Zj%N%A[n>p,7Cp!Q`T\C_R"s!ON6!L,Ve0kJq %dhSX\<6Tp#VM8upVFI86gmB"\7ruK9hAj^!V?S,?<:'&iojt3GLVEJcR[PCo16`W]MZ]7f""K<`BGj/BR?2:>q%N=?BEMT)7S_;c %m@Ph&c`PIeE+00qKP2U\F@?p'.@)jD2pt7^:h+!OL/4k@_Xd2@]ZD@\!kYD2cgsPlN)4nt^92`mhsKGg/DBDjW?b%jIe6NsYM.1: %7U?WP9qW&o5oE6U-o"q7rCN.l:KNi.KucYV"^!=+/$E'!+]=F&e-2H*[%eG?+=T]Ih70o^g;C,BPm'r`1=a83m?;XAg1V4475HjJ %(bdLS,(+KJ/2(3bKu!d=$7]uM>>l<(0`YO$W-La4>edT5qYB#+\;U^5so3)-\"d.hFH`Pi;mum'L=]fHIOTaDIZ+P`V1MF(m.AC!qcQ'4ZHjkYj&bI':X>2.oXF6,1C[!j"l/=#?8EJ60 %BOlu%5/\(2@N"9C,dQ)W=QGcJ"fet+[h:Q;;;6`)*o'u!*cs8;(7q>;E0@Bn%PNm_3gd%DK\ICq;0&H`ME'q`,qNtmDRE_"Q=j2K %0>VqB-L>c`*thDn2ggj"KEt'b,n\I4=97Hl"Ao6aVb+V//=m_e)O/q/\$^h:b/*R4/)>i)X49SI?q6QF]EJ0`ge[kh/5_LaVW^,. %p*(mt$WD[J,s3_AfMY[C'iudh6rT_EYqi&J,ue!u!n\/GOa"/N4X>,O$;6'4"`j7RW0h7Ps0&Bp,pRE8+M.IN?Og<[[D9%\R/oJf %G_O3A$S#YV".QE@\lE-[XP0S!E,VS!\.'_kOJr#O)C2%5e@H2o'R%;9-9`;#'$MXG*N>434!'?A+H^aUqH?;lP=](-[iQ/c(O/Pg %/ca3>[/ZR,emU.eL_R0^W='"((`(Mkg"NpCK!Y=RGP>[NQ7UXU^S(Qn]j,4Zg;H*9g>I^?9tM?JoRehaOtUiCeTG(4 %g$%>fqGp!RXN6@#F)mnoF*=rVE:-d^m#5@IZ%h1Z4XP$!3SI!uj/7Cq?ELEfV$Es!bLtZE68e8ULWHMPtZcD!b5n17mAC+]lHGH@r1Y9'9t)a:W2KqL'bqq %1on*'iJa(?BuH`t6KV5`PupXMgjfB7Dc0b!,8PLqW\u;0"'*Iu%GtR8LUqBcMR,HHu"a=dsL/WFn*trjgg16Fb>Ip]&;nI!AcC9qp)j#_h %h'WM[3Xk)iCQr(;+\.l#]mA6E"T#)VOdbV4f@_MB0Yr,V^*#3=EEHEtQP8HeMA$0Ha:Du_4nk43AN0M?0NX@S@(h&FgBH0HMqj#1Kf-Dq/B/IYu!P8REgF+iQ<A4i@?*t'-rW]MTe#2p-JUndg,_md[>Ct2ai5?L9G,j^+I"6_YAsYtoH^k185B?*4Jq4P,g$)H%6W.%l+#e`D[m_i'c%3fT$$ %eU]>"b-ip(KPN9WfZRp,ZR4!hBD^iF$`frkUuBZ3mKt`0CA`'kEnXel46&mm-$u')RneItOPh %OP$1Yd$k/:"Wo??cblrX6S6k&HL,/tCqZ2+4HXh,q42poTuUm?>f1TDkH0<;-=&q$E?e,5gd.T'MK0`m'ndW--YHq4!kgt(4+2rJ %O8R)cFZ7D5%^gl@9Y=]'tO3jA0PlT"-.#MIkeAE+m^46_,JX*40+2E1H-eMg>hBupg&O&lFeStQZYC$AbYcF6dpbHD6,GXE)' %^1dI:9.n/,T*rVCnW:p-aSJDTRSgSLZP,\h#s?&mg# %X*^0a62^=IKRuK>XqL?nBr>^)"93b@49l;f[]%g=3%A`&_X^)\XGe[Q**9d>dk;ihl5R9,[E)]j.pens,:r\ZB3o^^jtJ`/H,tn2 %Po-&KT2iq7[S_@QoY))5`oc73?(4"V1NV\_C@Hl^j*2tO8d"cI"X/jA^opVDlNup?dBYq2&(1M19C":F4IikDCm9M2Gd83U"W8C_$N#s4r<6X#>D0C=?IeG&DTV@L[h`?s_ %K+-hCmMWQ(/;XXbA!Zh4n\jf=\^^pi&c`Y7(Q %<>,R2B<@O>8Ok'baBodGDmqjbDs/!o)M^H*(:;elA8@L/3@[Ni3C'P;"1mbb;N"cHQ;jf.4smu"P02/_,fNf\^9Y(5'W=2g=7D+N %%;58eN$?ktH)@(+@Y!AU95WVY"?6MsQY]7bdOe,.OtN5EpkVLu1\/KifEPbT_(:`3f6Z$O1Og7kgBVJ'WS[-#G65/Urf`9?HBq^C7d!$;HOjt59#Tf@B*c3a]``q@&L$NS4 %OmYokb)\G!PVKV\G`Jl6d3Jl7!lmY6)bkFY+dacR1eGMW'%:NgM,5*_jN2EU9gWrA;EGOdoU%#\.nhc+(L;;LRV6BlBQiuB(7LWL %;<@F@b"4VIbgM*-$WI[S0u=pD`^2KW1%QL4(7N@+r&Xe=-S71O\HBu#7hr6*JgZIXIY!CNHniJXrJ69=cDcMUXPhUO?"?$pQ7fIp %;_N?WD4FdUa9k\UgdAMkC?Zll3;%;&g!6UoLTFn6b?\X?X-PBDJlOIJOmT5R]#Y4Z^"PnUE,+>UgGnkP(KnSRKo9d1eE^CN"fE+g %ZCOptGEEW1>56/s:AldtZ@Z3c;D&fX+QWY>6sGU(8"VCJ+q^*`hN',":j1!V8CDf>T88G](jD+eOf4HumYV]c/m2-?,m0\c$$]&V;/tL?"?HbO^H=;rj(f %#HlInM.bD_o-W@VEa^6c6utqaiO>WU!kkEL):U9o"eL]MK(KCqhBkADVif>i*!-dR]L8?8(A2>=8EfSMTfpFnC!HQ>[Q0Ejj3+d`E^Ck)B#N[g/`h7H\f/VFXs`k(ZN0DK=HL%@;]I!mT$Bj]o9,e@MXr=L(YnbIkDtf'8^kmBV#6WM %E096VKOmiSh-8`HlQ\JQCO(8Ihl+hj8Eh'>2naQ(8VTAq+&1jq-ViuGo8V2M`k@3t'>@=Q+heoi7b$s?L$O-VT"l"UFbF#e %4V@IC7(Ua(DC:>_CK6\T?`/+Ac4fVN3E$+8'cLrE/=Mn8\ZZfePKLJ4l3=kojH? %b`-9db1oZ[plTqEBTjfTDS3EA1,fg\<=m(SF7]Q^*PBe?1,keXk)7C;d!V$42`0K9AT!HpPe$<43d4Sl)e4n>DJ6o1b1mgq.o;L_8e5#P^=c:>Kc^JlAj2N=&E49V[bL0/%Cq3OLQ#8l!(4 %bY@-I_D3T$p$sjsSQ-'HW+=H%bM72?/PMq&Kc^JlAj+F!EYe[uC_i %r@VZ!"LF8e4AEuR85p4=4"GA.)>@:j^q9ts$R"_VSsGu_Z#C/G%n$dtJjMce%I0g,!Q'cZ4HV_#_s#R(.P(/Ib_k$$q&"&'m]o$& %jK5CM8(J?"3fTg93=/#jN2J=1=60+P)2T3+?.qf;O]IiJ'OF&gM;XX==-CuN98CSqOnOna,hcm$QSt:nDFqrH\=CnjLS+>-B.aJ' %ECAZKoiD]N9,HDPp)js#hB;ZZ6cdjmHK:l'b3\?)[g4%(Vt@^\&DC\Z(mcB:JdLEB5B %T!=a2CH0NQ^Kr)0_i:N=/Qkj32>lQNnI-Sf_[KV0Q7Ss*)@gg7Bo*Pfl,uaLT!=g2CYCmPP*SXiShuj?MeB,go,8*[-#&4#kUkfX %o``(Q*gOW@/Y4+2HA`2A:1$YFl,A]U:jONfcqd((PI?miQp4RW/i(+s %8sGNRpSKmsHG\"R-A%XJYWo&M9fP4jN>/N&_l!/8Q',Y'd"e/4?>$W-PEt6,B*Yt\U2Hf0M!l^CnI"\gc!k'p14I>@VA>&&kSK)5 %r"^?1(huCr.4RhQV3I]+G&W:>_jN**>rpS-Hm@_<22YcdPK!=r^#f)-?b5LZNBb(*D^-f/JbjU0(d9R[UaZWS(fcV)ges=NkSK*8 %@//[7_$K1-T^6T6U0j&,J?C>nMOGF'nu4ePmV4*k\u(YmZ*Zi!'o8,6rU9_hcS9G,KWP\a6d5o/He;'4-PG)$&,lM[V_8I9`Pn73 %UqFU+BSL?knTq8l49&i>Zc(&pq06)6gP,*UO6f8*gVDWV+iFD%1r)#n.M"gW,*^ %&"ifJ>8'RQ:aOh#Cs@L]X[-W@0feqBO1"oCYVknfb9i/Wc*i^^CBgkW9h5(Ip(@1Re'ohC\D%r"aHE$BBN[PhN-P-aVqRTsm[=!j %`).-Q+ZGBobTrrT_W]uRq`GM2%3#VKB\CHIoKTR9*QE/]KFuo]C#$UV,S3!L5pTakY`UPqQMk=IJ;:=WWX[gI7Cb2V>'Hj-`P12g %/BWt:6qfFR`3+%&J@1@KkdHL\^p`$h.a!b8<)L$hhpM]kI.[#I9W&A@@g9;X9IG^G]c0h5)q.BGB\5j]hj=F[)^E^H*Q0GIk^0k+AV7MU]\BiIs0C,hbRCSu39b1T;X<*pdkDoCK][O>B:)e@n1F)e$8tY-M7)$%82m_E5_`AOg&7+%^%m^h\K]]WMTJ %gTZ7\b*EtOjUo0^,?EtKGV)`,eA,jZ`quYOG\t>&?7T7&DqmfEI.pQ:NKMg&HR$nG2iZFH(#O9'YVhCrb(^i?'jDn:Yr)Ve(UB+S %(VK:l@;?dbPqD)FDBg2dqt[[t0qD`g"PU;]nQN3W)m:9jVK#)YE9!U#CBPumAjGZKp(@1R2dSR^:#iWkbPm@QLkj<*Wi^OcYFUpA %>0(Ik#kg;cHfbe&j]qasSpOfs;YJ^d_a+kUC"I]j@WCQURf:,-Hs2@=:8J;>FCaZ].IM?4ITbSS>%lGQJbQ@\Jg$*Qu>L4=d.r&774,=8QY4s1]2q]gt]bg`>\_J*0:7EEK7p!ku'*<_QbCIXLsE9 %WYs**$6Q//\/_HBjfR&E1ml_>`%[Xuc-1;YkZenSa"u04?k3JO&,&oOk.3Z,Ub>]^42-Nm`9e\4@[7J:9,)"]\A2Jk?j_ej8&qH] %nn#Uj`,ag$:e,**PF-+C6Ts[Q4)D9R%n*nr8qA*Da)/)^W5Oc/fYBUHaWVJ3A>f`G.pmbh;<]CcS$APZSm?YPiVMa^+A`C %nL1[-i*"saqgcOD#gn1s@>$Yp8,2,D]pe^n/JQ@ohS/P4R7qMDC$EY@MisIo_,'6#,>NmB2jb$.#>Aj,Ud,Spc>'P(YBbm6K0u)Y\W&lg%rp$HLBkmI0GJO&/3W'gm30gJN>@I1e)1#;=9[E(W#/nL*Z8`?nNIp0X$@u3ZjKBpp5E"GZLoHn`q([AaU,-/JSY:?>I7YVemq.7,hcuX1ML:;-^3M(kt4]G %K.scT_6(D]baH_`]D8Zb2\F:?L;[U(R:nU['ht(R'4:,saej4C2qh.uPa7MB+K9P*APo"l&*HC#l-g#-q.N6)PO0;2Dom"9-^kW# %bP[4l6$AglN@)k,ffil4FZ]D,0f[?1:%P.R\f(kO?OV%!&1.e\Bq0g's9P];k&1+6s@ceJ]JM.-n'[Spq/;c0[e@.V:XoE"eo`7C%c>g!Z6j=.d#er]P[1". %dI2,"2PlGPdUIN+*Qb<@d?-s/R-7(.gSQ4?7X,[hM9,9S8$[@X3p9*9Q0M0b?j])r,JAJ9:0bS9jD$lZ+X,IX;+![;jAA:-D7bNZ %)<$A!OA%cO89@0F)NmJlQg4`I_1RJQ+[R/*,`*!LOtea%8YGOU+^'9_jT9*^6aCrbc;e4SXUF:H?,O6hQM?D&HE&AssU %YA$NC<5:LXm)q73pe_44/eMAVZ9"XP7D(rQJiem5-4L:p9o/.ij^bLEO:7Y'MS@Lr,RXo;ki,4@>!mlQ+03-(1aJMEQ7'`]1aF=M %6Os,^6aDe[<7P&NCIk*+VQ)1A6aE)W\1K;`OKah7op)[&=jjWJG7!L@"USffUuDm;1aJMEPhFqa6Ri4?LE3!pU7KPh:NTRAKKd6m %?(rU@QQItH6:kqi:aeneT*clWi4WD<&e&ma5--$s*AQHS,Yc-4egX12ab5i,fAV'KP1=`M,[$@6\O]:9iV]W"EGG72o>;n>:iE`R$0\O'$ME`e3#@C_if %khqrK0"G7^Z6WdYn*]:PP&mX,`hf,7_>$W)fQ'-3'Y^"\?g:4]0ZD9,!^4XKlP\m,Q[4eu-XEo"3U]M7i+N4d,2o+^%d$ru,!"Wp %.u-&S:F%2mTI78Y1)QK#=VN1N %2,2!/r^''<%B97r://.U0'F9V9)grHrhaXS$)=?[=>F:N#f7Dp?#J#]4u$11BT%V8a\^NRb*`jA1SaPl.`<\F"5<=Xb06B]\m]_r %V.(?IatMO>4FHg#KtbuqdRo0snqWbJB\ODfeO[&ij+;46(P]&KW@$Yk/Q3+k'O0$0\MY#%$Rl9r$]_40_hQs8(i/Xcfi!:Y2WE]% %T5SKXQJT4/ed/X"%:Q]@jR*DIHjp/u[O-]sdTa-gD'cZn&WkY6!Nc_Y#&F[-WO;:Y\E%I.gKUc+9uVP!BREdXa4. %ma0mW)ouL1e`_D_rQ@?QUNb;8JX7$,`AC.q\CpGiN&ScK6Lj'm`^44S`sZ^/9iCtEbd]N'.k02 %lWYU-^,6Ae$eYdO$f9""gmUtR7EbBZ@`6/s5Mt%6qB37Z5jR!CZIfu+P=<#>SVi8iNS:eB)5+Dq*UO6f#ODiTaeIRZ:)8VNojbpr %LX1FLXgs*9U*rY[5)sF#4.6heknaP4-[DO4p*4D`> %I;9a,PUkUrFih=2A5'GeaIV+UL(/JSdCPKh`4k5j0FiHY#bu2b^Mt4_nD2F"2iU-4HdgBV2iTMK'lSbFfUG@NABTthM7r/@gm\>H %/(mGZ/)D]7YW%OsN\1,eDBg4:ql0;O9c8[<:?E@!RpbHrA:A?a#bKr6R;LK)fO/KcT8%e4:`F>ueB/pVR*:V@^,@MYcu3tKDm+FD %+Vt*(cHdl,idE%kK"jnWjdH%lR-.e)m6%#>+mpI.PD[GaD.hO/Q>&_6*aD4G'V!3iR,,Hl/aeA<2.[ %;c-\Kh?Pm,>7URJEeHI,7l^/ISmG@JkH':haZ+ZInO+-t2(I'DXJPZY[W3fIfbSriqAm'Tn3alp/$:bU9SfaePfNh-)^N<)4ZE!s %TIJ^&j$P=eR%o(_*X!?PZK1T5>F2Mq\oh^QO>/%E[$IY,IHI*\F_-Cn._C4965<.9g2UmdFPIcN8AjB/2/L,Dm3A.E25;NP*fC[6 %l1e.cTG[6;K,u\PA?pA;CUsE[PAVI8KT%95Ru?oVkfO1!Xn$HaKtG&7Eft66!duEaY9)UGfU`A2&St7Om+2"mOgR.s^XROdA1N`K3b&!lqbA"CT4D,hb$Rf4[1p6.3K9Pcg2>bNJ_e5*$CfKd/Y%sk)7t[?fnQo8lE+VlY+c@q'/0%0 %nd:C'NlViKERe9/.pM(jS3;DRNL9f<=/!LrAE.lMCD]W-&+>b0F %*Q`8e3c*2Y10LU`c$;WOZiVjhW:$&FdP]!,0D.nH._3g)cW4Ei0ajFHjJ-9M>GcWYC,flR_f_@"B<1)rZ60Koh'[ZpAW)q!gp)_F %@@I^_P#ZU'15.p/*:4u`-*1YjW:>=*t)4LOJs"97c"MWCa8oMH(;9LPo2)N9$BB#mRR7_!"9%7Z#S/D":@>F*cH\m*a.)U')H %q/sDs+-Nb^pjc'#*#@bS"?kL*]PXXl9n`;Sc4SXc[8"8l%)HasiEXJ]UF3kj('14K%ahEmWXN2G9:Vi&-%M=06mcu>iC1&'SBX*_ %MC(_9a8QO>a`L"H?O^/9>QgK-REXW2N"k=!rt\ANM9Ks+5S[eNLl-St`a__#aZj[:]O6ne73;cZV.?7Ws3O&C2iF@9^S/TGAjl_[Bc4arX+JmnLKRSB$:a>1J/tKema\XK9 %V\c5+2l*A-=KaugA+_"]E?uJ4g`Am'M"k5DXkhq&3?kK$>XTuZodG++lb&qc!Mr-p?/QDi@Y?bq7p(tYSZ!m04^\HsIH8m"]Pqs- %]TVK,5k0`)b)bij9YoTc:"e5J.3_j:1hk93?V]4%7ZO%,jPQ%1k2hhqk9'[YM=I(M+/6kd8SFB::#q5&)qc"%4R)CUE?:4Dl$YV. %\'8Q`Y1m1)hu*?pHtu*^.d-e.^ALerqT="-\_ip!%Tm+t7[^cN]cVF7EhPM>3o^JR5o*YJ4B: %Fg#Eg*_1mTZ)LU2c"&(bOu>k4L18!!+A6e56FR!0ZW[lS+l>8tkA*qb=!5$@$(bFe6cB=uKe8c@!c%[R$CQY*#8FmD!N`PMT0U*Y %3N[U:L03]Lj'Q=\P9L]R?Ub*%X?;_&R-dQV9+KA)8E#7Dbt;+FlkaLJ=&"Q6F;s1AhRF2Rj`9^RaZ#"7Jb3s0Zt/D?HC$$R#B]jq %\#59@8&Yb3hRF%!7c))[rE;KrC%_`)ZE`iaREZ"37Ku]C'LZ.Q-3fl2I'V!401Q:l^CP/n6u#k$SrKu@b[,4$9Z_0*A"%;5EMa`A %HrH0b;)\&1TZF^8ZRH-hNA*m"#htPL9PUn9DI'sdkgkH[oTD)d;kI_T:tb]h]m3ngLNiDrl-"eq2d*3;Fu4]Fbm*?0;H2bBA$ZFbg_U4%\NOjc*2r7_:Nh.q%]4ru[8rc?R3^j%n<3FZG/Z>--KJ&9CpiNc@V+'5!F\5#rUh$4iDH#S3!gHM_+XA;"g&!fdB'cF,H2?_f^VaX]@/cj/_EC %=P?I\q71NQCO2T_nF=(rq>D:B6X86>,eaVa;n3#5XOm,]U=3(6%M\0CQ@k#4RH;tA6a(VtHS9M5X,O,7\47sPQUAPlLU:2g)gI\l %r<6C]J[5:qm/rl#VYoj\jFV$c^%?W%eeI'KJ;??L2MQlW[Uhs?W?$$Q_T.:7a$`!.825s5"LlZPU+^)K&B4s_#(%E%eo6:(UZ:u6 %)gE0l`J\M>+3<;e$B"97<2HF*Zbsr.fZ7"'=LlOu7OH6eG`8pon*;>8TlE(lGMO_TMO$Gl,Q[XBpE.L]&Uqjg2563MP%0C5"9r2@3OA-Z@>Fmk1PN2FDYPe,/V>JE'PY7!G\JkttG/L+Bh1gWUJYN%@r'PY@ %(k$,35I!*lMIdJ\r[QN3"1o*b3LG&$,`\9#jLGoj>-SSS;Nmk#YOM/h%p>Zq;C+ua1c";.La8tD#*\/uLSEaUf)*>geFMYi-k>6. %ib<.7jAYlJbk0JEV]='XMfC$Z.0bI>t.8cM-Em!W%Xr?JI6s-N%daDPZ-1kWV5HE2&_VG,tbn.YKTiP!c=N!IRR/n)U9K/=G+P7`Nr<1YQi']ZEeWb=(`b*\.Dk/^mRKG($L?\/?KO> %lc]fahg3U&dJ8jIbt^po4I"!)W5[4l.GHJ(8-OcU %Qg!G7H`?3l_g:L0VVfL:eP_0jf-\(SMem7g/EA<)oB^dR@U16@WN#;G]>.ZDHB%e>2u&,YpLb7:Z%\[87a<=K'L,Oqut] %Jt[0tdmk[ %iV?=&7E@ng1?"O?ncJ`.#oP`.LtT,DEGEnm:^Nk.HRQu:VPHHHk#UR$Xl4]Zqnn+trpaDQWM\ZDgb?ceQ/D>-IS_eC`ZVs2oq"fF %DK%Vm&:Z"A$Oj[\395d"m[hLqZQ-mo"YiEH5Y[5:s8,IfDhFhpLB"l0lJN:n+A#X+F8-S6\:PYW^[&Hrb8):$2%CX$S=HRPpArMG %a/2tZqZq8MO)U93?7i5H8bm.4p!_?8WCs/A+GhYmMLE2E,pCeRdj(#5Z%Lr\Q6^Xsp79kB:Em.:,=gZG+'<&Ge>PiJ&rp[Di*Cqp %1j##*VtL%1Zk%,u&AHT1ifI-tbu-H*:fkPLD'Cu#YU>h3>2O/Wg`@mY)od;BCJ-hVqfIK58^aIV2Y;]mo63gg:1PQV-7"0!#8G:L %!hXor^_H/6X/sQk5I0:]8R%7Z"1iUUFk9/1;mW'OecM,=:\`h]c<9t<1*DGXjQq8;[jr152[)KsjbeuXT4"em\Pc5H/)jl=kt*K9 %8rXt6_cOAU)`TA?Ue0scA]r3PR4/h^%.^T2e,ip@YF#unZ+CuS*"K;%g>Y\_0gVI.PS-i7@\a)jFb-^XJY1)nSY&YHGSY`HOP+*h %:VB4d`#V)0T]DWVru?HGT7YHAZs0O&*&Sq5s1hJVP'\60WbgEMl=>PiMPDA%ddB,qf9,^c4\$6c@%Mds.__7R;$B""e6l6- %ZRoAh<477J%#^p\V.**H#YaC_%JTu;c$d^'*U*eOPMW>;*2MHF@\)*VOE\E6#\-g[>me+D(X<8/A?08b=uJ;^AH[E?-d![>Bp)Yd %\OHf5-(*;K-kn$5i#2LUQqdJ%Jc?*jN-)O;T18GW(GOumW,>B%ak,nU[r+B>DEaOh@blGopY_KfOr\?gHKCS>/4d*Q4m/Oteshs, %YGn:$Rc:np5WWjh*p,i_ib3SNkdKCq)nAko_WaD1j'.EXo7WMqS+C7@ccIK4^oA::P.ME1o^O%R7J+E#UZI8H+pb'%>0CNR>L#7Z %;88Ls?t_a8PVnu%a8tj6?C2(UWGTm$.@C=0,FsGD0o:o_IaCTPUO@eSA63k+#EsX&G"'4U]65HEC"J@jgMNC@@&4P'1%!&sc?K;I %^@`DtluD\hXGfu:qD*G"4n9rTgd+)DJTR8pe>!T5e@&;:+=N!-C`'SF,beD&0SUI7FF %0%rqLNZo&d=-]'$l;FQ03=3t[<,mQ%8EckUk@O0:02+!#Tb1!RmucN=ZSms<`Z7kM3O.@b)0/Z,1cm,qQX9g %8o2HdQ(s^4hdaAe3D)h'&NH2g:lf(/>BRd4l;?OTV6$a(on_i)bnjr&\U'KZan;SP+jC*EiEi2t-!YJ+_l+V&p?gugI1Q"L:g4TV %9EGo4/$i^u*L6PqO"a(jW(6,aT>ZdeO#f)`lB1#$>s4?e\#D]GPtnR(e0D@^f\mB&[oPR'$R<$R^'`cJNhW"W7j208*?bUB5s'[g %GeJ9B_MMft+g:Uk4(RJ9qWjQY<&`o2:b7??9ad\\b]#V#GRE$N^-H?>-0=b=<:Q:(\s`a4X/V14X+#e6,aF.Bhhe/SQ$d>@rLDE6 %1_$=TLB/1dp-"R0q%[$lc@f01-BI^u5N2ME]WHtkaZHYEIldA-4EeVR%'M!,eVa)Ua+[t`klC>bCl_VCF%`DK?)bc[jm-&0>rX'< %,7leaasVb`rG_3)bc-BA-EaG>&?2^-,Dg"@`=7W9bdUs^-R#q-Q)YT+,t6%Pq$0*Alb$5T2+0;n7P=;[Y=K3]%F#l4bSO#f8hDM%pZd:/+.+e0cNp','a8*+?Fbt3id'I,:t._2'C/MV8 %.V;jVT@np)D.su(7TrI..9/nTULUr5]/+Qj'snsuFlBiN,#+Fqr8n\I6j7U9GSOk[!U1u-C2q@7(eRH4;a*jq/hbTKJ0Kre<,e'H %bgAVkRMlN$_GEi>nt8:Z:_YD=Kem9P4*i!qUi4Ou/>*tkNqO(A;FP$bfX"[H4*VBf90f!0)ZT+P(O#D-f;fR[c-eFuj-Xm26(@Eq %,8_L$75"mnT9!\3dMNs1)sR?`FHK1X&lgL-V.``co*5>\P00N\IFeA7"$Of1fCXcTE8]Tqg_@9`rRc,?HdSk4B7UZ0dV!,Q[TkV*bLKCi36#OdS9Oi,.H3,+na\#jL7)V+pg=0pZ@2&D6f,le<6CXF@b[D`ki<:r %P9aaUG!G\J*qBB!104m]%806s*W6^]A8`hK6(tfmdZV8-O760]PCVXpJ`C;P4eIMDPTS3>7ZG,=loP!k:+K&>;3?n"n1ni=TA,cO %aPR2R1WhW'UNB/a8cpD8B,)U_q*_B^kAFJN?brL>)8_@J62pJ*I"GQ@l)a_;;@0X[)m5CPe%)MA0D!D#Y5[aMl^o&7@S?N)o(K@$ %q6YVNN&l.\E&tI4J!Ql!1D)$_SJW[IU&9LM %4#*KTODUu\f#Su;0FV"l3D4TtHd\N\Z/Mt/jp_+4qGUEE`L#K;QabF6O6_PiX!@mZtkiTZ1%:G*$JL& %,j.51lMH(%\7B%@RkmWMN4OjjY""8+Re[OjA2bd9lel'!#h[;9(-fa>q\0b#J,T#O3h_>D %)T`(!%lL2>+cT2*D%bc4JC2rt^3@tQ$B"8dT!AR7/m%gTjc/dj)ER7.S>6R'XZZ_NZ2-r+qhG)hmJg;cca6-5%>Od"rFR!e0k06@ %#%SE]L`O*7qLa_trr"jc`Q1YaA'Yb7;R5BqI[C`gW+BVG6@:8ADd+)Uo^b9Ho8S)btljlDg[=6NVc40)q3iXUF[$_7q@PtQ8b/"2QZ>$M080UVr5INqq^hXCS"93eV_)KX:&9.:V.l47,:=& %Caf'\C=$sG5Z.Y[R(@im!GZ3(>?20UXoB@U"8q\OXB]<^e0F,G]aeKGJK5b\+`c7eA_r1Sk%Gjq>^EN?)00/3/bA8]d;PoXUu(7' %2GT-$%c3?!0FM`<:'ZJ@e9]HFM3-e+`iuE++G;!Y3L9/Q+ls!6b#'!9NQ- %!PFKq)C?;MmlUc7;?3&'kC=^)"i,r;)QK#')CQGOmlgoi+U&GGn"4B@=Se^XLihu*Birf%EaT-+^t?7p_*O$]?Yk=,6ajXI)Bh:4 %2!'GGY\=![`4uInI:q2OhnC8tTPA7fn.M6N+d*nE7C(n_$F\^$:Vhg3nTTm`/erJ7nn*3;TTe@#AQ0_:2oF1h`B5\i#N\RdmSiW6 %jddf0b=.tgr:l>Ic7& %J*C<(s7n<4s%9Wqr;"rorO;e06=%%^5Q158s7BY_rBGi@ZKh~> %AI9_PrivateDataEnd eina-1.7.10/doc/img/header_menu_background.png0000664000175000017500000000030012175475327016147 00000000000000PNG  IHDR?!eTsRGBbKGDC pHYs  tIME #@IDATӕ1 @yK5MR$GTS$[~ZI読pv_H%b|&,&IENDB`eina-1.7.10/doc/img/eina_inlist-node_eg3-my-struct.eps0000664000175000017500000215523512175475327017447 00000000000000%!PS-Adobe-3.1 EPSF-3.0 %ADO_DSC_Encoding: MacOS Roman %%Title: diagramas_01-10.eps %%Creator: Adobe Illustrator(R) 14.0 %%For: Marina Proni %%CreationDate: 6/17/11 %%BoundingBox: 0 0 439 320 %%HiResBoundingBox: 0 0 438.0273 320 %%CropBox: 0 0 438.0273 320 %%LanguageLevel: 2 %%DocumentData: Clean7Bit %ADOBeginClientInjection: DocumentHeader "AI11EPS" %%AI8_CreatorVersion: 14.0.0 %AI9_PrintingDataBegin %ADO_BuildNumber: Adobe Illustrator(R) 14.0.0 x367 R agm 4.4890 ct 5.1541 %ADO_ContainsXMP: MainFirst %ADOEndClientInjection: DocumentHeader "AI11EPS" %%Pages: 1 %%DocumentNeededResources: %%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0 %%+ procset Adobe_CoolType_Utility_T42 1.0 0 %%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%+ procset Adobe_CoolType_Core 2.31 0 %%+ procset Adobe_AGM_Core 2.0 0 %%+ procset Adobe_AGM_Utils 1.0 0 %%DocumentFonts: %%DocumentNeededFonts: %%DocumentNeededFeatures: %%DocumentSuppliedFeatures: %%DocumentProcessColors: Cyan Magenta Yellow Black %%DocumentCustomColors: %%CMYKCustomColor: %%RGBCustomColor: %%EndComments %%BeginDefaults %%ViewingOrientation: 1 0 0 1 %%EndDefaults %%BeginProlog %%BeginResource: procset Adobe_AGM_Utils 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known {currentpacking true setpacking}if userdict/Adobe_AGM_Utils 75 dict dup begin put /bdf {bind def}bind def /nd{null def}bdf /xdf {exch def}bdf /ldf {load def}bdf /ddf {put}bdf /xddf {3 -1 roll put}bdf /xpt {exch put}bdf /ndf { exch dup where{ pop pop pop }{ xdf }ifelse }def /cdndf { exch dup currentdict exch known{ pop pop }{ exch def }ifelse }def /gx {get exec}bdf /ps_level /languagelevel where{ pop systemdict/languagelevel gx }{ 1 }ifelse def /level2 ps_level 2 ge def /level3 ps_level 3 ge def /ps_version {version cvr}stopped{-1}if def /set_gvm {currentglobal exch setglobal}bdf /reset_gvm {setglobal}bdf /makereadonlyarray { /packedarray where{pop packedarray }{ array astore readonly}ifelse }bdf /map_reserved_ink_name { dup type/stringtype eq{ dup/Red eq{ pop(_Red_) }{ dup/Green eq{ pop(_Green_) }{ dup/Blue eq{ pop(_Blue_) }{ dup()cvn eq{ pop(Process) }if }ifelse }ifelse }ifelse }if }bdf /AGMUTIL_GSTATE 22 dict def /get_gstate { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_clr_spc currentcolorspace def /AGMUTIL_GSTATE_clr_indx 0 def /AGMUTIL_GSTATE_clr_comps 12 array def mark currentcolor counttomark {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop /AGMUTIL_GSTATE_fnt rootfont def /AGMUTIL_GSTATE_lw currentlinewidth def /AGMUTIL_GSTATE_lc currentlinecap def /AGMUTIL_GSTATE_lj currentlinejoin def /AGMUTIL_GSTATE_ml currentmiterlimit def currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf /AGMUTIL_GSTATE_sa currentstrokeadjust def /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def /AGMUTIL_GSTATE_op currentoverprint def /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf /AGMUTIL_GSTATE_ht currenthalftone def /AGMUTIL_GSTATE_flt currentflat def end }def /set_gstate { AGMUTIL_GSTATE begin AGMUTIL_GSTATE_clr_spc setcolorspace AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor AGMUTIL_GSTATE_fnt setfont AGMUTIL_GSTATE_lw setlinewidth AGMUTIL_GSTATE_lc setlinecap AGMUTIL_GSTATE_lj setlinejoin AGMUTIL_GSTATE_ml setmiterlimit AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash AGMUTIL_GSTATE_sa setstrokeadjust AGMUTIL_GSTATE_clr_rnd setcolorrendering AGMUTIL_GSTATE_op setoverprint AGMUTIL_GSTATE_bg cvx setblackgeneration AGMUTIL_GSTATE_ucr cvx setundercolorremoval AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or { currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne { mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark }if }{ AGMUTIL_GSTATE_ht sethalftone }ifelse AGMUTIL_GSTATE_flt setflat end }def /get_gstate_and_matrix { AGMUTIL_GSTATE begin /AGMUTIL_GSTATE_ctm matrix currentmatrix def end get_gstate }def /set_gstate_and_matrix { set_gstate AGMUTIL_GSTATE begin AGMUTIL_GSTATE_ctm setmatrix end }def /AGMUTIL_str256 256 string def /AGMUTIL_src256 256 string def /AGMUTIL_dst64 64 string def /AGMUTIL_srcLen nd /AGMUTIL_ndx nd /AGMUTIL_cpd nd /capture_cpd{ //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf }def /thold_halftone { level3 {sethalftone currenthalftone} { dup/HalftoneType get 3 eq { sethalftone currenthalftone }{ begin Width Height mul{ Thresholds read{pop}if }repeat end currenthalftone }ifelse }ifelse }def /rdcmntline { currentfile AGMUTIL_str256 readline pop (%)anchorsearch{pop}if }bdf /filter_cmyk { dup type/filetype ne{ exch()/SubFileDecode filter }{ exch pop } ifelse [ exch { AGMUTIL_src256 readstring pop dup length/AGMUTIL_srcLen exch def /AGMUTIL_ndx 0 def AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{ 1 index exch get AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put /AGMUTIL_ndx AGMUTIL_ndx 1 add def }for pop AGMUTIL_dst64 0 AGMUTIL_ndx getinterval } bind /exec cvx ]cvx }bdf /filter_indexed_devn { cvi Names length mul names_index add Lookup exch get }bdf /filter_devn { 4 dict begin /srcStr xdf /dstStr xdf dup type/filetype ne{ 0()/SubFileDecode filter }if [ exch [ /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx currentdict/srcStr get/readstring cvx/pop cvx /dup cvx/length cvx 0/gt cvx[ Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx names_index Names length currentdict/srcStr get length 1 sub{ 1/index cvx/exch cvx/get cvx currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx }for currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx ]cvx/if cvx /end cvx ]cvx bind /exec cvx ]cvx end }bdf /AGMUTIL_imagefile nd /read_image_file { AGMUTIL_imagefile 0 setfileposition 10 dict begin /imageDict xdf /imbufLen Width BitsPerComponent mul 7 add 8 idiv def /imbufIdx 0 def /origDataSource imageDict/DataSource get def /origMultipleDataSources imageDict/MultipleDataSources get def /origDecode imageDict/Decode get def /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse { /imbufCnt imageDict/DataSource get length def /imbufs imbufCnt array def 0 1 imbufCnt 1 sub{ /imbufIdx xdf imbufs imbufIdx imbufLen string put imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put }for DeviceN_PS2{ imageDict begin /DataSource[DataSource/devn_sep_datasource cvx]cvx def /MultipleDataSources false def /Decode[0 1]def end }if }{ /imbuf imbufLen string def Indexed_DeviceN level3 not and DeviceN_NoneName or{ /srcDataStrs[imageDict begin currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi string }repeat end]def imageDict begin /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def /Decode[0 1]def end }{ imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put imageDict/Decode[0 1]put }ifelse }ifelse imageDict exch load exec imageDict/DataSource origDataSource put imageDict/MultipleDataSources origMultipleDataSources put imageDict/Decode origDecode put end }bdf /write_image_file { begin {(AGMUTIL_imagefile)(w+)file}stopped{ false }{ Adobe_AGM_Utils/AGMUTIL_imagefile xddf 2 dict begin /imbufLen Width BitsPerComponent mul 7 add 8 idiv def MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{ /imbuf imbufLen string def }if 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{ pop MultipleDataSources{ 0 1 DataSource length 1 sub{ DataSource type dup /arraytype eq{ pop DataSource exch gx }{ /filetype eq{ DataSource exch get imbuf readstring pop }{ DataSource exch get }ifelse }ifelse AGMUTIL_imagefile exch writestring }for }{ DataSource type dup /arraytype eq{ pop DataSource exec }{ /filetype eq{ DataSource imbuf readstring pop }{ DataSource }ifelse }ifelse AGMUTIL_imagefile exch writestring }ifelse }for end true }ifelse end }bdf /close_image_file { AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile }def statusdict/product known userdict/AGMP_current_show known not and{ /pstr statusdict/product get def pstr(HP LaserJet 2200)eq pstr(HP LaserJet 4000 Series)eq or pstr(HP LaserJet 4050 Series )eq or pstr(HP LaserJet 8000 Series)eq or pstr(HP LaserJet 8100 Series)eq or pstr(HP LaserJet 8150 Series)eq or pstr(HP LaserJet 5000 Series)eq or pstr(HP LaserJet 5100 Series)eq or pstr(HP Color LaserJet 4500)eq or pstr(HP Color LaserJet 4600)eq or pstr(HP LaserJet 5Si)eq or pstr(HP LaserJet 1200 Series)eq or pstr(HP LaserJet 1300 Series)eq or pstr(HP LaserJet 4100 Series)eq or { userdict/AGMP_current_show/show load put userdict/show{ currentcolorspace 0 get /Pattern eq {false charpath f} {AGMP_current_show}ifelse }put }if currentdict/pstr undef }if /consumeimagedata { begin AGMIMG_init_common currentdict/MultipleDataSources known not {/MultipleDataSources false def}if MultipleDataSources { DataSource 0 get type dup/filetype eq { 1 dict begin /flushbuffer Width cvi string def 1 1 Height cvi { pop 0 1 DataSource length 1 sub { DataSource exch get flushbuffer readstring pop pop }for }for end }if dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and { Width Height mul cvi { 0 1 DataSource length 1 sub {dup DataSource exch gx length exch 0 ne{pop}if}for dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if } { /DataSource load type dup/filetype eq { 1 dict begin /flushbuffer Width Decode length 2 idiv mul cvi string def 1 1 Height{pop DataSource flushbuffer readstring pop pop}for end }if dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and { Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul { DataSource length dup 0 eq {pop exit}if sub dup 0 le {exit}if }loop pop }if }ifelse end }bdf /addprocs { 2{/exec load}repeat 3 1 roll [5 1 roll]bind cvx }def /modify_halftone_xfer { currenthalftone dup length dict copy begin currentdict 2 index known{ 1 index load dup length dict copy begin currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end def currentdict end sethalftone }{ currentdict/TransferFunction known{ /TransferFunction load }{ currenttransfer }ifelse addprocs/TransferFunction xdf currentdict end sethalftone pop }ifelse }def /clonearray { dup xcheck exch dup length array exch Adobe_AGM_Core/AGMCORE_tmp -1 ddf { Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf dup type/dicttype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonedict Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if dup type/arraytype eq { Adobe_AGM_Core/AGMCORE_tmp get exch clonearray Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf }if exch dup Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put }forall exch{cvx}if }bdf /clonedict { dup length dict begin { dup type/dicttype eq {clonedict}if dup type/arraytype eq {clonearray}if def }forall currentdict end }bdf /DeviceN_PS2 { /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and }bdf /Indexed_DeviceN { /indexed_colorspace_dict AGMCORE_gget dup null ne{ dup/CSDBase known{ /CSDBase get/CSD get_res/Names known }{ pop false }ifelse }{ pop false }ifelse }bdf /DeviceN_NoneName { /Names where{ pop false Names { (None)eq or }forall }{ false }ifelse }bdf /DeviceN_PS2_inRip_seps { /AGMCORE_in_rip_sep where { pop dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and { /currentcolorspace exch AGMCORE_gput false }{ true }ifelse }{ true }ifelse }{ true }ifelse }bdf /base_colorspace_type { dup type/arraytype eq{0 get}if }bdf /currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse { /pdfmark_5{cleartomark}bind def }{ /pdfmark_5{pdfmark}bind def }ifelse /ReadBypdfmark_5 { currentfile exch 0 exch/SubFileDecode filter /currentdistillerparams where {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse {flushfile cleartomark} {/PUT pdfmark}ifelse }bdf /ReadBypdfmark_5_string { 2 dict begin /makerString exch def string/tmpString exch def { currentfile tmpString readline not{pop exit}if makerString anchorsearch { pop pop cleartomark exit }{ 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5 }ifelse }loop end }bdf /xpdfm { { dup 0 get/Label eq { aload length[exch 1 add 1 roll/PAGELABEL }{ aload pop [{ThisPage}<<5 -2 roll>>/PUT }ifelse pdfmark_5 }forall }bdf /lmt{ dup 2 index le{exch}if pop dup 2 index ge{exch}if pop }bdf /int{ dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop }bdf /ds{ Adobe_AGM_Utils begin }bdf /dt{ currentdict Adobe_AGM_Utils eq{ end }if }bdf systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_AGM_Core 2.0 0 %%Version: 2.0 0 %%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Core 209 dict dup begin put /Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def /AGMCORE_str256 256 string def /AGMCORE_save nd /AGMCORE_graphicsave nd /AGMCORE_c 0 def /AGMCORE_m 0 def /AGMCORE_y 0 def /AGMCORE_k 0 def /AGMCORE_cmykbuf 4 array def /AGMCORE_screen[currentscreen]cvx def /AGMCORE_tmp 0 def /AGMCORE_&setgray nd /AGMCORE_&setcolor nd /AGMCORE_&setcolorspace nd /AGMCORE_&setcmykcolor nd /AGMCORE_cyan_plate nd /AGMCORE_magenta_plate nd /AGMCORE_yellow_plate nd /AGMCORE_black_plate nd /AGMCORE_plate_ndx nd /AGMCORE_get_ink_data nd /AGMCORE_is_cmyk_sep nd /AGMCORE_host_sep nd /AGMCORE_avoid_L2_sep_space nd /AGMCORE_distilling nd /AGMCORE_composite_job nd /AGMCORE_producing_seps nd /AGMCORE_ps_level -1 def /AGMCORE_ps_version -1 def /AGMCORE_environ_ok nd /AGMCORE_CSD_cache 0 dict def /AGMCORE_currentoverprint false def /AGMCORE_deltaX nd /AGMCORE_deltaY nd /AGMCORE_name nd /AGMCORE_sep_special nd /AGMCORE_err_strings 4 dict def /AGMCORE_cur_err nd /AGMCORE_current_spot_alias false def /AGMCORE_inverting false def /AGMCORE_feature_dictCount nd /AGMCORE_feature_opCount nd /AGMCORE_feature_ctm nd /AGMCORE_ConvertToProcess false def /AGMCORE_Default_CTM matrix def /AGMCORE_Default_PageSize nd /AGMCORE_Default_flatness nd /AGMCORE_currentbg nd /AGMCORE_currentucr nd /AGMCORE_pattern_paint_type 0 def /knockout_unitsq nd currentglobal true setglobal [/CSA/Gradient/Procedure] { /Generic/Category findresource dup length dict copy/Category defineresource pop }forall setglobal /AGMCORE_key_known { where{ /Adobe_AGM_Core_Id known }{ false }ifelse }ndf /flushinput { save 2 dict begin /CompareBuffer 3 -1 roll def /readbuffer 256 string def mark { currentfile readbuffer{readline}stopped {cleartomark mark} { not {pop exit} if CompareBuffer eq {exit} if }ifelse }loop cleartomark end restore }bdf /getspotfunction { AGMCORE_screen exch pop exch pop dup type/dicttype eq{ dup/HalftoneType get 1 eq{ /SpotFunction get }{ dup/HalftoneType get 2 eq{ /GraySpotFunction get }{ pop { abs exch abs 2 copy add 1 gt{ 1 sub dup mul exch 1 sub dup mul add 1 sub }{ dup mul exch dup mul add 1 exch sub }ifelse }bind }ifelse }ifelse }if }def /np {newpath}bdf /clp_npth {clip np}def /eoclp_npth {eoclip np}def /npth_clp {np clip}def /graphic_setup { /AGMCORE_graphicsave save store concat 0 setgray 0 setlinecap 0 setlinejoin 1 setlinewidth []0 setdash 10 setmiterlimit np false setoverprint false setstrokeadjust //Adobe_AGM_Core/spot_alias gx /Adobe_AGM_Image where{ pop Adobe_AGM_Image/spot_alias 2 copy known{ gx }{ pop pop }ifelse }if /sep_colorspace_dict null AGMCORE_gput 100 dict begin /dictstackcount countdictstack def /showpage{}def mark }def /graphic_cleanup { cleartomark dictstackcount 1 countdictstack 1 sub{end}for end AGMCORE_graphicsave restore }def /compose_error_msg { grestoreall initgraphics /Helvetica findfont 10 scalefont setfont /AGMCORE_deltaY 100 def /AGMCORE_deltaX 310 def clippath pathbbox np pop pop 36 add exch 36 add exch moveto 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath 0 AGMCORE_&setgray gsave 1 AGMCORE_&setgray fill grestore 1 setlinewidth gsave stroke grestore currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto /AGMCORE_deltaY 12 def /AGMCORE_tmp 0 def AGMCORE_err_strings exch get { dup 32 eq { pop AGMCORE_str256 0 AGMCORE_tmp getinterval stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt { currentpoint AGMCORE_deltaY sub exch pop clippath pathbbox pop pop pop 44 add exch moveto }if AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show 0 1 AGMCORE_str256 length 1 sub { AGMCORE_str256 exch 0 put }for /AGMCORE_tmp 0 def }{ AGMCORE_str256 exch AGMCORE_tmp xpt /AGMCORE_tmp AGMCORE_tmp 1 add def }ifelse }forall }bdf /AGMCORE_CMYKDeviceNColorspaces[ [/Separation/None/DeviceCMYK{0 0 0}] [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind] [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind] [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind] [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind] [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind] [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind] [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind] [/Separation(Cyan)/DeviceCMYK{0 0 0}] [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind] [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind] [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind] [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}] [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind] [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}] [/DeviceCMYK] ]def /ds{ Adobe_AGM_Core begin /currentdistillerparams where { pop currentdistillerparams/CoreDistVersion get 5000 lt {<>setdistillerparams}if }if /AGMCORE_ps_version xdf /AGMCORE_ps_level xdf errordict/AGM_handleerror known not{ errordict/AGM_handleerror errordict/handleerror get put errordict/handleerror{ Adobe_AGM_Core begin $error/newerror get AGMCORE_cur_err null ne and{ $error/newerror false put AGMCORE_cur_err compose_error_msg }if $error/newerror true put end errordict/AGM_handleerror get exec }bind put }if /AGMCORE_environ_ok ps_level AGMCORE_ps_level ge ps_version AGMCORE_ps_version ge and AGMCORE_ps_level -1 eq or def AGMCORE_environ_ok not {/AGMCORE_cur_err/AGMCORE_bad_environ def}if /AGMCORE_&setgray systemdict/setgray get def level2{ /AGMCORE_&setcolor systemdict/setcolor get def /AGMCORE_&setcolorspace systemdict/setcolorspace get def }if /AGMCORE_currentbg currentblackgeneration def /AGMCORE_currentucr currentundercolorremoval def /AGMCORE_Default_flatness currentflat def /AGMCORE_distilling /product where{ pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and }{ false }ifelse def /AGMCORE_GSTATE AGMCORE_key_known not{ /AGMCORE_GSTATE 21 dict def /AGMCORE_tmpmatrix matrix def /AGMCORE_gstack 32 array def /AGMCORE_gstackptr 0 def /AGMCORE_gstacksaveptr 0 def /AGMCORE_gstackframekeys 14 def /AGMCORE_&gsave/gsave ldf /AGMCORE_&grestore/grestore ldf /AGMCORE_&grestoreall/grestoreall ldf /AGMCORE_&save/save ldf /AGMCORE_&setoverprint/setoverprint ldf /AGMCORE_gdictcopy{ begin {def}forall end }def /AGMCORE_gput{ AGMCORE_gstack AGMCORE_gstackptr get 3 1 roll put }def /AGMCORE_gget{ AGMCORE_gstack AGMCORE_gstackptr get exch get }def /gsave{ AGMCORE_&gsave AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /grestore{ AGMCORE_&grestore AGMCORE_gstackptr 1 sub dup AGMCORE_gstacksaveptr lt{1 add}if dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse /AGMCORE_gstackptr exch store }def /grestoreall{ AGMCORE_&grestoreall /AGMCORE_gstackptr AGMCORE_gstacksaveptr store }def /save{ AGMCORE_&save AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gstackptr 1 add dup 32 ge{limitcheck}if /AGMCORE_gstackptr exch store /AGMCORE_gstacksaveptr AGMCORE_gstackptr store AGMCORE_gstack AGMCORE_gstackptr get AGMCORE_gdictcopy }def /setoverprint{ dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint }def 0 1 AGMCORE_gstack length 1 sub{ AGMCORE_gstack exch AGMCORE_gstackframekeys dict put }for }if level3/AGMCORE_&sysshfill AGMCORE_key_known not and { /AGMCORE_&sysshfill systemdict/shfill get def /AGMCORE_&sysmakepattern systemdict/makepattern get def /AGMCORE_&usrmakepattern/makepattern load def }if /currentcmykcolor[0 0 0 0]AGMCORE_gput /currentstrokeadjust false AGMCORE_gput /currentcolorspace[/DeviceGray]AGMCORE_gput /sep_tint 0 AGMCORE_gput /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput /sep_colorspace_dict null AGMCORE_gput /devicen_colorspace_dict null AGMCORE_gput /indexed_colorspace_dict null AGMCORE_gput /currentcolor_intent()AGMCORE_gput /customcolor_tint 1 AGMCORE_gput /absolute_colorimetric_crd null AGMCORE_gput /relative_colorimetric_crd null AGMCORE_gput /saturation_crd null AGMCORE_gput /perceptual_crd null AGMCORE_gput currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf << /MaxPatternItem currentsystemparams/MaxPatternCache get >> setuserparams end }def /ps { /setcmykcolor where{ pop Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put }if Adobe_AGM_Core begin /setcmykcolor { 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput 1 sub 4 1 roll 3{ 3 index add neg dup 0 lt{ pop 0 }if 3 1 roll }repeat setrgbcolor pop }ndf /currentcmykcolor { /currentcmykcolor AGMCORE_gget aload pop }ndf /setoverprint {pop}ndf /currentoverprint {false}ndf /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def /AGMCORE_plate_ndx AGMCORE_cyan_plate{ 0 }{ AGMCORE_magenta_plate{ 1 }{ AGMCORE_yellow_plate{ 2 }{ AGMCORE_black_plate{ 3 }{ 4 }ifelse }ifelse }ifelse }ifelse def /AGMCORE_have_reported_unsupported_color_space false def /AGMCORE_report_unsupported_color_space { AGMCORE_have_reported_unsupported_color_space false eq { (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)== Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf }if }def /AGMCORE_composite_job AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def /AGMCORE_in_rip_sep /AGMCORE_in_rip_sep where{ pop AGMCORE_in_rip_sep }{ AGMCORE_distilling { false }{ userdict/Adobe_AGM_OnHost_Seps known{ false }{ level2{ currentpagedevice/Separations 2 copy known{ get }{ pop pop false }ifelse }{ false }ifelse }ifelse }ifelse }ifelse def /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def /AGM_preserve_spots /AGM_preserve_spots where{ pop AGM_preserve_spots }{ AGMCORE_distilling AGMCORE_producing_seps or }ifelse def /AGM_is_distiller_preserving_spotimages { currentdistillerparams/PreserveOverprintSettings known { currentdistillerparams/PreserveOverprintSettings get { currentdistillerparams/ColorConversionStrategy known { currentdistillerparams/ColorConversionStrategy get /sRGB ne }{ true }ifelse }{ false }ifelse }{ false }ifelse }def /convert_spot_to_process where{pop}{ /convert_spot_to_process { //Adobe_AGM_Core begin dup map_alias{ /Name get exch pop }if dup dup(None)eq exch(All)eq or { pop false }{ AGMCORE_host_sep { gsave 1 0 0 0 setcmykcolor currentgray 1 exch sub 0 1 0 0 setcmykcolor currentgray 1 exch sub 0 0 1 0 setcmykcolor currentgray 1 exch sub 0 0 0 1 setcmykcolor currentgray 1 exch sub add add add 0 eq { pop false }{ false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne }ifelse grestore }{ AGMCORE_distilling { pop AGM_is_distiller_preserving_spotimages not }{ //Adobe_AGM_Core/AGMCORE_name xddf false //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq AGMUTIL_cpd/OverrideSeparations known and { AGMUTIL_cpd/OverrideSeparations get { /HqnSpots/ProcSet resourcestatus { pop pop pop true }if }if }if { AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not }{ gsave [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace false AGMUTIL_cpd/SeparationColorNames 2 copy known { get {AGMCORE_name eq or}forall not }{ pop pop pop true }ifelse grestore }ifelse }ifelse }ifelse }ifelse end }def }ifelse /convert_to_process where{pop}{ /convert_to_process { dup length 0 eq { pop false }{ AGMCORE_host_sep { dup true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process and}ifelse } forall { true exch { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch (Black)eq or and }forall not }{pop false}ifelse }{ false exch { /PhotoshopDuotoneList where{pop false}{true}ifelse { dup(Cyan)eq exch dup(Magenta)eq 3 -1 roll or exch dup(Yellow)eq 3 -1 roll or exch dup(Black)eq 3 -1 roll or {pop} {convert_spot_to_process or}ifelse } { convert_spot_to_process or } ifelse } forall }ifelse }ifelse }def }ifelse /AGMCORE_avoid_L2_sep_space version cvr 2012 lt level2 and AGMCORE_producing_seps not and def /AGMCORE_is_cmyk_sep AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or def /AGM_avoid_0_cmyk where{ pop AGM_avoid_0_cmyk }{ AGM_preserve_spots userdict/Adobe_AGM_OnHost_Seps known userdict/Adobe_AGM_InRip_Seps known or not and }ifelse { /setcmykcolor[ { 4 copy add add add 0 eq currentoverprint and{ pop 0.0005 }if }/exec cvx /AGMCORE_&setcmykcolor load dup type/operatortype ne{ /exec cvx }if ]cvx def }if /AGMCORE_IsSeparationAProcessColor { dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or }def AGMCORE_host_sep{ /setcolortransfer { AGMCORE_cyan_plate{ pop pop pop }{ AGMCORE_magenta_plate{ 4 3 roll pop pop pop }{ AGMCORE_yellow_plate{ 4 2 roll pop pop pop }{ 4 1 roll pop pop pop }ifelse }ifelse }ifelse settransfer } def /AGMCORE_get_ink_data AGMCORE_cyan_plate{ {pop pop pop} }{ AGMCORE_magenta_plate{ {4 3 roll pop pop pop} }{ AGMCORE_yellow_plate{ {4 2 roll pop pop pop} }{ {4 1 roll pop pop pop} }ifelse }ifelse }ifelse def /AGMCORE_RemoveProcessColorNames { 1 dict begin /filtername { dup/Cyan eq 1 index(Cyan)eq or {pop(_cyan_)}if dup/Magenta eq 1 index(Magenta)eq or {pop(_magenta_)}if dup/Yellow eq 1 index(Yellow)eq or {pop(_yellow_)}if dup/Black eq 1 index(Black)eq or {pop(_black_)}if }def dup type/arraytype eq {[exch{filtername}forall]} {filtername}ifelse end }def level3{ /AGMCORE_IsCurrentColor { dup AGMCORE_IsSeparationAProcessColor { AGMCORE_plate_ndx 0 eq {dup(Cyan)eq exch/Cyan eq or}if AGMCORE_plate_ndx 1 eq {dup(Magenta)eq exch/Magenta eq or}if AGMCORE_plate_ndx 2 eq {dup(Yellow)eq exch/Yellow eq or}if AGMCORE_plate_ndx 3 eq {dup(Black)eq exch/Black eq or}if AGMCORE_plate_ndx 4 eq {pop false}if }{ gsave false setoverprint current_spot_alias false set_spot_alias 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor set_spot_alias currentgray 1 ne grestore }ifelse }def /AGMCORE_filter_functiondatasource { 5 dict begin /data_in xdf data_in type/stringtype eq { /ncomp xdf /comp xdf /string_out data_in length ncomp idiv string def 0 ncomp data_in length 1 sub { string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put }for string_out }{ string/string_in xdf /string_out 1 string def /component xdf [ data_in string_in/readstring cvx [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx [/pop cvx()]cvx/ifelse cvx ]cvx/ReusableStreamDecode filter }ifelse end }def /AGMCORE_separateShadingFunction { 2 dict begin /paint? xdf /channel xdf dup type/dicttype eq { begin FunctionType 0 eq { /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def currentdict/Decode known {/Decode Decode channel 2 mul 2 getinterval def}if paint? not {/Decode[1 1]def}if }if FunctionType 2 eq { paint? { /C0[C0 channel get 1 exch sub]def /C1[C1 channel get 1 exch sub]def }{ /C0[1]def /C1[1]def }ifelse }if FunctionType 3 eq { /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def }if currentdict/Range known {/Range[0 1]def}if currentdict end}{ channel get 0 paint? AGMCORE_separateShadingFunction }ifelse end }def /AGMCORE_separateShading { 3 -1 roll begin currentdict/Function known { currentdict/Background known {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf /ColorSpace[/DeviceGray]def }{ ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }{ ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put }ifelse ColorSpace 0 get/Separation eq { { [1/exch cvx/sub cvx]cvx }{ [/pop cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll put pop }{ { [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx }{ pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx }ifelse ColorSpace 3 3 -1 roll bind put }ifelse ColorSpace 2/DeviceGray put }ifelse end }def /AGMCORE_separateShadingDict { dup/ColorSpace get dup type/arraytype ne {[exch]}if dup 0 get/DeviceCMYK eq { exch begin currentdict AGMCORE_cyan_plate {0 true}if AGMCORE_magenta_plate {1 true}if AGMCORE_yellow_plate {2 true}if AGMCORE_black_plate {3 true}if AGMCORE_plate_ndx 4 eq {0 false}if dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading currentdict end exch }if dup 0 get/Separation eq { exch begin ColorSpace 1 get dup/None ne exch/All ne and { ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /Separation ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading }if }ifelse }{ currentdict ColorSpace 1 get AGMCORE_IsCurrentColor 0 exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse }if currentdict end exch }if dup 0 get/DeviceN eq { exch begin ColorSpace 1 get convert_to_process { ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq { /ColorSpace [ /DeviceN ColorSpace 1 get /DeviceGray [ ColorSpace 3 get/exec cvx 4 AGMCORE_plate_ndx sub -1/roll cvx 4 1/roll cvx 3[/pop cvx]cvx/repeat cvx 1/exch cvx/sub cvx ]cvx ]def }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { currentdict 0 false AGMCORE_separateShading /ColorSpace[/DeviceGray]def }if }ifelse }{ currentdict false -1 ColorSpace 1 get { AGMCORE_IsCurrentColor { 1 add exch pop true exch exit }if 1 add }forall exch dup not currentoverprint and {/AGMCORE_ignoreshade true def}if AGMCORE_separateShading }ifelse currentdict end exch }if dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not { exch begin ColorSpace dup type/arraytype eq {0 get}if /DeviceGray ne { AGMCORE_report_unsupported_color_space AGMCORE_black_plate not { ColorSpace 0 get/CIEBasedA eq { /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def }if ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or { /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def }if ColorSpace 0 get/CIEBasedDEFG eq { /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def }if currentdict 0 false AGMCORE_separateShading }if }if currentdict end exch }if pop dup/AGMCORE_ignoreshade known { begin /ColorSpace[/Separation(None)/DeviceGray{}]def currentdict end }if }def /shfill { AGMCORE_separateShadingDict dup/AGMCORE_ignoreshade known {pop} {AGMCORE_&sysshfill}ifelse }def /makepattern { exch dup/PatternType get 2 eq { clonedict begin /Shading Shading AGMCORE_separateShadingDict def Shading/AGMCORE_ignoreshade known currentdict end exch {pop<>}if exch AGMCORE_&sysmakepattern }{ exch AGMCORE_&usrmakepattern }ifelse }def }if }if AGMCORE_in_rip_sep{ /setcustomcolor { exch aload pop dup 7 1 roll inRip_spot_has_ink not { 4{4 index mul 4 1 roll} repeat /DeviceCMYK setcolorspace 6 -2 roll pop pop }{ //Adobe_AGM_Core begin /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf end [/Separation 4 -1 roll/DeviceCMYK {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul} ] setcolorspace }ifelse setcolor }ndf /setseparationgray { [/Separation(All)/DeviceGray{}]setcolorspace_opt 1 exch sub setcolor }ndf }{ /setseparationgray { AGMCORE_&setgray }ndf }ifelse /findcmykcustomcolor { 5 makereadonlyarray }ndf /setcustomcolor { exch aload pop pop 4{4 index mul 4 1 roll}repeat setcmykcolor pop }ndf /has_color /colorimage where{ AGMCORE_producing_seps{ pop true }{ systemdict eq }ifelse }{ false }ifelse def /map_index { 1 index mul exch getinterval{255 div}forall }bdf /map_indexed_devn { Lookup Names length 3 -1 roll cvi map_index }bdf /n_color_components { base_colorspace_type dup/DeviceGray eq{ pop 1 }{ /DeviceCMYK eq{ 4 }{ 3 }ifelse }ifelse }bdf level2{ /mo/moveto ldf /li/lineto ldf /cv/curveto ldf /knockout_unitsq { 1 setgray 0 0 1 1 rectfill }def level2/setcolorspace AGMCORE_key_known not and{ /AGMCORE_&&&setcolorspace/setcolorspace ldf /AGMCORE_ReplaceMappedColor { dup type dup/arraytype eq exch/packedarraytype eq or { /AGMCORE_SpotAliasAry2 where{ begin dup 0 get dup/Separation eq { pop dup length array copy dup dup 1 get current_spot_alias { dup map_alias { false set_spot_alias dup 1 exch setsepcolorspace true set_spot_alias begin /sep_colorspace_dict currentdict AGMCORE_gput pop pop pop [ /Separation Name CSA map_csa MappedCSA /sep_colorspace_proc load ] dup Name end }if }if map_reserved_ink_name 1 xpt }{ /DeviceN eq { dup length array copy dup dup 1 get[ exch{ current_spot_alias{ dup map_alias{ /Name get exch pop }if }if map_reserved_ink_name }forall ]1 xpt }if }ifelse end }if }if }def /setcolorspace { dup type dup/arraytype eq exch/packedarraytype eq or { dup 0 get/Indexed eq { AGMCORE_distilling { /PhotoshopDuotoneList where { pop false }{ true }ifelse }{ true }ifelse { aload pop 3 -1 roll AGMCORE_ReplaceMappedColor 3 1 roll 4 array astore }if }{ AGMCORE_ReplaceMappedColor }ifelse }if DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if }def }if }{ /adj { currentstrokeadjust{ transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform }if }def /mo{ adj moveto }def /li{ adj lineto }def /cv{ 6 2 roll adj 6 2 roll adj 6 2 roll adj curveto }def /knockout_unitsq { 1 setgray 8 8 1[8 0 0 8 0 0]{}image }def /currentstrokeadjust{ /currentstrokeadjust AGMCORE_gget }def /setstrokeadjust{ /currentstrokeadjust exch AGMCORE_gput }def /setcolorspace { /currentcolorspace exch AGMCORE_gput }def /currentcolorspace { /currentcolorspace AGMCORE_gget }def /setcolor_devicecolor { base_colorspace_type dup/DeviceGray eq{ pop setgray }{ /DeviceCMYK eq{ setcmykcolor }{ setrgbcolor }ifelse }ifelse }def /setcolor { currentcolorspace 0 get dup/DeviceGray ne{ dup/DeviceCMYK ne{ dup/DeviceRGB ne{ dup/Separation eq{ pop currentcolorspace 3 gx currentcolorspace 2 get }{ dup/Indexed eq{ pop currentcolorspace 3 get dup type/stringtype eq{ currentcolorspace 1 get n_color_components 3 -1 roll map_index }{ exec }ifelse currentcolorspace 1 get }{ /AGMCORE_cur_err/AGMCORE_invalid_color_space def AGMCORE_invalid_color_space }ifelse }ifelse }if }if }if setcolor_devicecolor }def }ifelse /sop/setoverprint ldf /lw/setlinewidth ldf /lc/setlinecap ldf /lj/setlinejoin ldf /ml/setmiterlimit ldf /dsh/setdash ldf /sadj/setstrokeadjust ldf /gry/setgray ldf /rgb/setrgbcolor ldf /cmyk[ /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx /setcmykcolor load dup type/operatortype ne{/exec cvx}if ]cvx bdf level3 AGMCORE_host_sep not and{ /nzopmsc{ 6 dict begin /kk exch def /yy exch def /mm exch def /cc exch def /sum 0 def cc 0 ne{/sum sum 2#1000 or def cc}if mm 0 ne{/sum sum 2#0100 or def mm}if yy 0 ne{/sum sum 2#0010 or def yy}if kk 0 ne{/sum sum 2#0001 or def kk}if AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace sum 0 eq{0}if end setcolor }bdf }{ /nzopmsc/cmyk ldf }ifelse /sep/setsepcolor ldf /devn/setdevicencolor ldf /idx/setindexedcolor ldf /colr/setcolor ldf /csacrd/set_csa_crd ldf /sepcs/setsepcolorspace ldf /devncs/setdevicencolorspace ldf /idxcs/setindexedcolorspace ldf /cp/closepath ldf /clp/clp_npth ldf /eclp/eoclp_npth ldf /f/fill ldf /ef/eofill ldf /@/stroke ldf /nclp/npth_clp ldf /gset/graphic_setup ldf /gcln/graphic_cleanup ldf /ct/concat ldf /cf/currentfile ldf /fl/filter ldf /rs/readstring ldf /AGMCORE_def_ht currenthalftone def /clonedict Adobe_AGM_Utils begin/clonedict load end def /clonearray Adobe_AGM_Utils begin/clonearray load end def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall /getrampcolor { /indx exch def 0 1 NumComp 1 sub { dup Samples exch get dup type/stringtype eq{indx get}if exch Scaling exch get aload pop 3 1 roll mul add }for ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /sssetbackground{ aload pop ColorSpaceFamily/Separation eq {sep} { ColorSpaceFamily/DeviceN eq {devn}{setcolor}ifelse }ifelse }bdf /RadialShade { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /r2 xdf /c2y xdf /c2x xdf /r1 xdf /c1y xdf /c1x xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if c1x c2x eq { c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope c2y c1y sub c2x c1x sub div def /theta slope 1 atan def c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if }ifelse gsave clippath c1x c1y translate theta rotate -90 rotate {pathbbox}stopped {0 0 0 0}if /yMax xdf /xMax xdf /yMin xdf /xMin xdf grestore xMax xMin eq yMax yMin eq or { grestore end }{ /max{2 copy gt{pop}{exch pop}ifelse}bdf /min{2 copy lt{pop}{exch pop}ifelse}bdf rampdict begin 40 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave c1x c1y translate theta rotate -90 rotate /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def /c1y 0 def /c1x 0 def /c2x 0 def ext0 { 0 getrampcolor c2y r2 add r1 sub 0.0001 lt { c1x c1y r1 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2y r1 add r2 le { c1x c1y r1 0 360 arc fill } { c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r1 neg def /p1y c1y def /p2x r1 def /p2y c1y def p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y p1x SS1 div neg def /SS2 90 theta sub dup sin exch cos div def /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y p2x SS2 div neg def r1 r2 gt { /L1maxX p1x yMin p1y sub SS1 div add def /L2maxX p2x yMin p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if c1x c2x sub dup mul c1y c2y sub dup mul add 0.5 exp 0 dtransform dup mul exch dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop /hires xdf hires mul /numpix xdf /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if /xInc c2x c1x sub numsteps div def /yInc c2y c1y sub numsteps div def /rInc r2 r1 sub numsteps div def /cx c1x def /cy c1y def /radius r1 def np xInc 0 eq yInc 0 eq rInc 0 eq and and { 0 getrampcolor cx cy radius 0 360 arc stroke NumSamples 1 sub getrampcolor cx cy radius 72 hires div add 0 360 arc 0 setlinewidth stroke }{ 0 numsteps { dup subsampling{round cvi}if getrampcolor cx cy radius 0 360 arc /cx cx xInc add def /cy cy yInc add def /radius radius rInc add def cx cy radius 360 0 arcn eofill rampIndxInc add }repeat pop }ifelse ext1 { c2y r2 add r1 lt { c2x c2y r2 0 360 arc fill }{ c2y r1 add r2 sub 0.0001 le { c2x c2y r2 360 0 arcn pathbbox /aymax exch def /axmax exch def /aymin exch def /axmin exch def /bxMin xMin axmin min def /byMin yMin aymin min def /bxMax xMax axmax max def /byMax yMax aymax max def bxMin byMin moveto bxMax byMin lineto bxMax byMax lineto bxMin byMax lineto bxMin byMin lineto eofill }{ c2x c2y r2 0 360 arc fill r1 r2 eq { /p1x r2 neg def /p1y c2y def /p2x r2 def /p2y c2y def p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto fill }{ /AA r2 r1 sub c2y div def AA -1 eq {/theta 89.99 def} {/theta AA 1 AA dup mul sub sqrt div 1 atan def} ifelse /SS1 90 theta add dup sin exch cos div def /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def /p1y c2y p1x SS1 div sub def /SS2 90 theta sub dup sin exch cos div def /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def /p2y c2y p2x SS2 div sub def r1 r2 lt { /L1maxX p1x yMax p1y sub SS1 div add def /L2maxX p2x yMax p2y sub SS2 div add def }{ /L1maxX 0 def /L2maxX 0 def }ifelse p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto L1maxX L1maxX p1x sub SS1 mul p1y add lineto fill }ifelse }ifelse }ifelse }if grestore grestore end end end }ifelse }bdf /GenStrips { 40 dict begin /ColorSpaceFamily xdf /background xdf /ext1 xdf /ext0 xdf /BBox xdf /y2 xdf /x2 xdf /y1 xdf /x1 xdf /rampdict xdf /setinkoverprint where{pop/setinkoverprint{pop}def}if gsave BBox length 0 gt { np BBox 0 get BBox 1 get moveto BBox 2 get BBox 0 get sub 0 rlineto 0 BBox 3 get BBox 1 get sub rlineto BBox 2 get BBox 0 get sub neg 0 rlineto closepath clip np }if x1 x2 eq { y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse }{ /slope y2 y1 sub x2 x1 sub div def /theta slope 1 atan def x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if } ifelse gsave clippath x1 y1 translate theta rotate {pathbbox}stopped {0 0 0 0}if /yMax exch def /xMax exch def /yMin exch def /xMin exch def grestore xMax xMin eq yMax yMin eq or { grestore end }{ rampdict begin 20 dict begin background length 0 gt{background sssetbackground gsave clippath fill grestore}if gsave x1 y1 translate theta rotate /xStart 0 def /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def /ySpan yMax yMin sub def /numsteps NumSamples def /rampIndxInc 1 def /subsampling false def xStart 0 transform xEnd 0 transform 3 -1 roll sub dup mul 3 1 roll sub dup mul add 0.5 exp 72 div 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt 1 index 1 index lt{exch}if pop mul /numpix xdf numpix 0 ne { NumSamples numpix div 0.5 gt { /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def /rampIndxInc NumSamples 1 sub numsteps div def /subsampling true def }if }if ext0 { 0 getrampcolor xMin xStart lt { xMin yMin xMin neg ySpan rectfill }if }if /xInc xEnd xStart sub numsteps div def /x xStart def 0 numsteps { dup subsampling{round cvi}if getrampcolor x yMin xInc ySpan rectfill /x x xInc add def rampIndxInc add }repeat pop ext1{ xMax xEnd gt { xEnd yMin xMax xEnd sub ySpan rectfill }if }if grestore grestore end end end }ifelse }bdf }def /pt { end }def /dt{ }def /pgsv{ //Adobe_AGM_Core/AGMCORE_save save put }def /pgrs{ //Adobe_AGM_Core/AGMCORE_save get restore }def systemdict/findcolorrendering known{ /findcolorrendering systemdict/findcolorrendering get def }if systemdict/setcolorrendering known{ /setcolorrendering systemdict/setcolorrendering get def }if /test_cmyk_color_plate { gsave setcmykcolor currentgray 1 ne grestore }def /inRip_spot_has_ink { dup//Adobe_AGM_Core/AGMCORE_name xddf convert_spot_to_process not }def /map255_to_range { 1 index sub 3 -1 roll 255 div mul add }def /set_csa_crd { /sep_colorspace_dict null AGMCORE_gput begin CSA get_csa_by_name setcolorspace_opt set_crd end } def /map_csa { currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse {pop}{get_csa_by_name/MappedCSA xdf}ifelse }def /setsepcolor { /sep_colorspace_dict AGMCORE_gget begin dup/sep_tint exch AGMCORE_gput TintProc end }def /setdevicencolor { /devicen_colorspace_dict AGMCORE_gget begin Names length copy Names length 1 sub -1 0 { /devicen_tints AGMCORE_gget 3 1 roll xpt }for TintProc end }def /sep_colorspace_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin currentdict/Components known{ Components aload pop TintMethod/Lab eq{ 2{AGMCORE_tmp mul NComponents 1 roll}repeat LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll }{ TintMethod/Subtractive eq{ NComponents{ AGMCORE_tmp mul NComponents 1 roll }repeat }{ NComponents{ 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll }repeat }ifelse }ifelse }{ ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get aload pop }ifelse end }def /sep_colorspace_gray_proc { /AGMCORE_tmp exch store /sep_colorspace_dict AGMCORE_gget begin GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get end }def /sep_proc_name { dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{ pop[/DeviceGray] /sep_colorspace_gray_proc }{ /sep_colorspace_proc }ifelse }def /setsepcolorspace { current_spot_alias{ dup begin Name map_alias{ exch pop }if end }if dup/sep_colorspace_dict exch AGMCORE_gput begin CSA map_csa /AGMCORE_sep_special Name dup()eq exch(All)eq or store AGMCORE_avoid_L2_sep_space{ [/Indexed MappedCSA sep_proc_name 255 exch {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx ]setcolorspace_opt /TintProc{ 255 mul round cvi setcolor }bdf }{ MappedCSA 0 get/DeviceCMYK eq currentdict/Components known and AGMCORE_sep_special not and{ /TintProc[ Components aload pop Name findcmykcustomcolor /exch cvx/setcustomcolor cvx ]cvx bdf }{ AGMCORE_host_sep Name(All)eq and{ /TintProc{ 1 exch sub setseparationgray }bdf }{ AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and AGMCORE_host_sep or Name()eq and{ /TintProc[ MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{ cvx/setcmykcolor cvx }{ cvx/setgray cvx }ifelse ]cvx bdf }{ AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{ /TintProc[ /dup cvx MappedCSA sep_proc_name cvx exch 0 get/DeviceGray eq{ 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx }if /Name cvx/findcmykcustomcolor cvx/exch cvx AGMCORE_host_sep{ AGMCORE_is_cmyk_sep /Name cvx /AGMCORE_IsSeparationAProcessColor load/exec cvx /not cvx/and cvx }{ Name inRip_spot_has_ink not }ifelse [ /pop cvx 1 ]cvx/if cvx /setcustomcolor cvx ]cvx bdf }{ /TintProc{setcolor}bdf [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt }ifelse }ifelse }ifelse }ifelse }ifelse set_crd setsepcolor end }def /additive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 0 1 numarrays 1 sub { 1 exch add/index cvx c1/get cvx/mul cvx }for numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /subtractive_blend { 3 dict begin /numarrays xdf /numcolors xdf 0 1 numcolors 1 sub { /c1 xdf 1 1 0 1 numarrays 1 sub { 1 3 3 -1 roll add/index cvx c1/get cvx/sub cvx/mul cvx }for /sub cvx numarrays 1 add 1/roll cvx }for numarrays[/pop cvx]cvx/repeat cvx end }def /exec_tint_transform { /TintProc[ /TintTransform cvx/setcolor cvx ]cvx bdf MappedCSA setcolorspace_opt }bdf /devn_makecustomcolor { 2 dict begin /names_index xdf /Names xdf 1 1 1 1 Names names_index get findcmykcustomcolor /devicen_tints AGMCORE_gget names_index get setcustomcolor Names length{pop}repeat end }bdf /setdevicencolorspace { dup/AliasedColorants known{false}{true}ifelse current_spot_alias and{ 7 dict begin /names_index 0 def dup/names_len exch/Names get length def /new_names names_len array def /new_LookupTables names_len array def /alias_cnt 0 def dup/Names get { dup map_alias{ exch pop dup/ColorLookup known{ dup begin new_LookupTables names_index ColorLookup put end }{ dup/Components known{ dup begin new_LookupTables names_index Components put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse new_names names_index 3 -1 roll/Name get put /alias_cnt alias_cnt 1 add def }{ /name xdf new_names names_index name put dup/LookupTables known{ dup begin new_LookupTables names_index LookupTables names_index get put end }{ dup begin new_LookupTables names_index[null null null null]put end }ifelse }ifelse /names_index names_index 1 add def }forall alias_cnt 0 gt{ /AliasedColorants true def /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def 0 1 names_len 1 sub{ /names_index xdf new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{ /AliasedColorants false def exit }{ new_LookupTables names_index get 0 get null eq{ dup/Names get names_index get/name xdf name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq or or or not{ /AliasedColorants false def exit }if }if }ifelse }for lut_entry_len 1 eq{ /AliasedColorants false def }if AliasedColorants{ dup begin /Names new_names def /LookupTables new_LookupTables def /AliasedColorants true def /NComponents lut_entry_len def /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def currentdict/TTTablesIdx known not{ /TTTablesIdx -1 def }if end }if }if end }if dup/devicen_colorspace_dict exch AGMCORE_gput begin currentdict/AliasedColorants known{ AliasedColorants }{ false }ifelse dup not{ CSA map_csa }if /TintTransform load type/nulltype eq or{ /TintTransform[ 0 1 Names length 1 sub { /TTTablesIdx TTTablesIdx 1 add def dup LookupTables exch get dup 0 get null eq { 1 index Names exch get dup(Cyan)eq { pop exch LookupTables length exch sub /index cvx 0 0 0 } { dup(Magenta)eq { pop exch LookupTables length exch sub /index cvx 0/exch cvx 0 0 }{ (Yellow)eq { exch LookupTables length exch sub /index cvx 0 0 3 -1/roll cvx 0 }{ exch LookupTables length exch sub /index cvx 0 0 0 4 -1/roll cvx }ifelse }ifelse }ifelse 5 -1/roll cvx/astore cvx }{ dup length 1 sub LookupTables length 4 -1 roll sub 1 add /index cvx/mul cvx/round cvx/cvi cvx/get cvx }ifelse Names length TTTablesIdx add 1 add 1/roll cvx }for Names length[/pop cvx]cvx/repeat cvx NComponents Names length TintMethod/Subtractive eq { subtractive_blend }{ additive_blend }ifelse ]cvx bdf }if AGMCORE_host_sep{ Names convert_to_process{ exec_tint_transform } { currentdict/AliasedColorants known{ AliasedColorants not }{ false }ifelse 5 dict begin /AvoidAliasedColorants xdf /painted? false def /names_index 0 def /names_len Names length def AvoidAliasedColorants{ /currentspotalias current_spot_alias def false set_spot_alias }if Names{ AGMCORE_is_cmyk_sep{ dup(Cyan)eq AGMCORE_cyan_plate and exch dup(Magenta)eq AGMCORE_magenta_plate and exch dup(Yellow)eq AGMCORE_yellow_plate and exch (Black)eq AGMCORE_black_plate and or or or{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def }if painted?{exit}if }{ 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ Names names_index/devn_makecustomcolor cvx ]cvx ddf /painted? true def exit }if }ifelse /names_index names_index 1 add def }forall AvoidAliasedColorants{ currentspotalias set_spot_alias }if painted?{ /devicen_colorspace_dict AGMCORE_gget/names_index names_index put }{ /devicen_colorspace_dict AGMCORE_gget/TintProc[ names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx 0 0 0 0/setcmykcolor cvx ]cvx ddf }ifelse end }ifelse } { AGMCORE_in_rip_sep{ Names convert_to_process not }{ level3 }ifelse { [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt /TintProc level3 not AGMCORE_in_rip_sep and{ [ Names/length cvx[/pop cvx]cvx/repeat cvx ]cvx bdf }{ {setcolor}bdf }ifelse }{ exec_tint_transform }ifelse }ifelse set_crd /AliasedColorants false def end }def /setindexedcolorspace { dup/indexed_colorspace_dict exch AGMCORE_gput begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ currentdict devncs }{ 1 currentdict sepcs }ifelse AGMCORE_host_sep{ 4 dict begin /compCnt/Names where{pop Names length}{1}ifelse def /NewLookup HiVal 1 add string def 0 1 HiVal{ /tableIndex xdf Lookup dup type/stringtype eq{ compCnt tableIndex map_index }{ exec }ifelse /Names where{ pop setdevicencolor }{ setsepcolor }ifelse currentgray tableIndex exch 255 mul cvi NewLookup 3 1 roll put }for [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt end }{ level3 { currentdict/Names known{ [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt }{ [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt }ifelse }{ [/Indexed MappedCSA HiVal [ currentdict/Names known{ Lookup dup type/stringtype eq {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx} {/exec cvx}ifelse /TintTransform load/exec cvx }{ Lookup dup type/stringtype eq {/exch cvx/get cvx 255/div cvx} {/exec cvx}ifelse CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx }ifelse ]cvx ]setcolorspace_opt }ifelse }ifelse end set_crd } { CSA map_csa AGMCORE_host_sep level2 not and{ 0 0 0 0 setcmykcolor }{ [/Indexed MappedCSA level2 not has_color not and{ dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{ pop[/DeviceGray] }if HiVal GrayLookup }{ HiVal currentdict/RangeArray known{ { /indexed_colorspace_dict AGMCORE_gget begin Lookup exch dup HiVal gt{ pop HiVal }if NComponents mul NComponents getinterval{}forall NComponents 1 sub -1 0{ RangeArray exch 2 mul 2 getinterval aload pop map255_to_range NComponents 1 roll }for end }bind }{ Lookup }ifelse }ifelse ]setcolorspace_opt set_crd }ifelse }ifelse end }def /setindexedcolor { AGMCORE_host_sep{ /indexed_colorspace_dict AGMCORE_gget begin currentdict/CSDBase known{ CSDBase/CSD get_res begin currentdict/Names known{ map_indexed_devn devn } { Lookup 1 3 -1 roll map_index sep }ifelse end }{ Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll map_index MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse }ifelse end }{ level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{ /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin map_indexed_devn devn end } { setcolor }ifelse }ifelse }def /ignoreimagedata { currentoverprint not{ gsave dup clonedict begin 1 setgray /Decode[0 1]def /DataSourcedef /MultipleDataSources false def /BitsPerComponent 8 def currentdict end systemdict/image gx grestore }if consumeimagedata }def /add_res { dup/CSD eq{ pop //Adobe_AGM_Core begin /AGMCORE_CSD_cache load 3 1 roll put end }{ defineresource pop }ifelse }def /del_res { { aload pop exch dup/CSD eq{ pop {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall }{ exch {1 index undefineresource}forall pop }ifelse }forall }def /get_res { dup/CSD eq{ pop dup type dup/nametype eq exch/stringtype eq or{ AGMCORE_CSD_cache exch get }if }{ findresource }ifelse }def /get_csa_by_name { dup type dup/nametype eq exch/stringtype eq or{ /CSA get_res }if }def /paintproc_buf_init { /count get 0 0 put }def /paintproc_buf_next { dup/count get dup 0 get dup 3 1 roll 1 add 0 xpt get }def /cachepaintproc_compress { 5 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def /string_size 16000 def /readbuffer string_size string def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal /LZWFilter { exch dup length 0 eq{ pop }{ ppdict dup length 1 sub 3 -1 roll put }ifelse {string_size}{0}ifelse string }/LZWEncode filter def { ReadFilter readbuffer readstring exch LZWFilter exch writestring not{exit}if }loop LZWFilter closefile ppdict end }def /cachepaintproc { 2 dict begin currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def /ppdict 20 dict def currentglobal true setglobal ppdict 1 array dup 0 1 put/count xpt setglobal { ReadFilter 16000 string readstring exch ppdict dup length 1 sub 3 -1 roll put not{exit}if }loop ppdict dup dup length 1 sub()put end }def /make_pattern { exch clonedict exch dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub matrix translate exch matrix concatmatrix 1 index begin BBox 0 get XStep div cvi XStep mul/xshift exch neg def BBox 1 get YStep div cvi YStep mul/yshift exch neg def BBox 0 get xshift add BBox 1 get yshift add BBox 2 get xshift add BBox 3 get yshift add 4 array astore /BBox exch def [xshift yshift/translate load null/exec load]dup 3/PaintProc load put cvx/PaintProc exch def end gsave 0 setgray makepattern grestore }def /set_pattern { dup/PatternType get 1 eq{ dup/PaintType get 1 eq{ currentoverprint sop[/DeviceGray]setcolorspace 0 setgray }if }if setpattern }def /setcolorspace_opt { dup currentcolorspace eq{pop}{setcolorspace}ifelse }def /updatecolorrendering { currentcolorrendering/RenderingIntent known{ currentcolorrendering/RenderingIntent get } { Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd AGMCORE_gget dup null eq } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd AGMCORE_gget dup null eq } { Intent/Saturation eq { /saturation_crd AGMCORE_gget dup null eq } { /perceptual_crd AGMCORE_gget dup null eq }ifelse }ifelse }ifelse { pop null } { /RenderingIntent known{null}{Intent}ifelse }ifelse }ifelse Intent ne{ Intent/ColorRendering{findresource}stopped { pop pop systemdict/findcolorrendering known { Intent findcolorrendering { /ColorRendering findresource true exch } { /ColorRendering findresource product(Xerox Phaser 5400)ne exch }ifelse dup Intent/AbsoluteColorimetric eq { /absolute_colorimetric_crd exch AGMCORE_gput } { Intent/RelativeColorimetric eq { /relative_colorimetric_crd exch AGMCORE_gput } { Intent/Saturation eq { /saturation_crd exch AGMCORE_gput } { Intent/Perceptual eq { /perceptual_crd exch AGMCORE_gput } { pop }ifelse }ifelse }ifelse }ifelse 1 index{exch}{pop}ifelse } {false}ifelse } {true}ifelse { dup begin currentdict/TransformPQR known{ currentdict/TransformPQR get aload pop 3{{}eq 3 1 roll}repeat or or } {true}ifelse currentdict/MatrixPQR known{ currentdict/MatrixPQR get aload pop 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq and and and and and and and and } {true}ifelse end or { clonedict begin /TransformPQR[ {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind ]def /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def currentdict end }if setcolorrendering_opt }if }if }def /set_crd { AGMCORE_host_sep not level2 and{ currentdict/ColorRendering known{ ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if }{ currentdict/Intent known{ updatecolorrendering }if }ifelse currentcolorspace dup type/arraytype eq {0 get}if /DeviceRGB eq { currentdict/UCR known {/UCR}{/AGMCORE_currentucr}ifelse load setundercolorremoval currentdict/BG known {/BG}{/AGMCORE_currentbg}ifelse load setblackgeneration }if }if }def /set_ucrbg { dup null eq{pop/AGMCORE_currentbg load}{/Procedure get_res}ifelse setblackgeneration dup null eq{pop/AGMCORE_currentucr load}{/Procedure get_res}ifelse setundercolorremoval }def /setcolorrendering_opt { dup currentcolorrendering eq{ pop }{ product(HP Color LaserJet 2605)anchorsearch{ pop pop pop }{ pop clonedict begin /Intent Intent def currentdict end setcolorrendering }ifelse }ifelse }def /cpaint_gcomp { convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not { (%end_cpaint_gcomp)flushinput }if }def /cpaint_gsep { //Adobe_AGM_Core/AGMCORE_ConvertToProcess get { (%end_cpaint_gsep)flushinput }if }def /cpaint_gend {np}def /T1_path { currentfile token pop currentfile token pop mo { currentfile token pop dup type/stringtype eq {pop exit}if 0 exch rlineto currentfile token pop dup type/stringtype eq {pop exit}if 0 rlineto }loop }def /T1_gsave level3 {/clipsave} {/gsave}ifelse load def /T1_grestore level3 {/cliprestore} {/grestore}ifelse load def /set_spot_alias_ary { dup inherit_aliases //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf }def /set_spot_normalization_ary { dup inherit_aliases dup length /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if array //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf /AGMCORE_SpotAliasAry where{ pop AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval AGMCORE_SpotAliasAry length }{0}ifelse AGMCORE_SpotAliasAry2 3 1 roll exch putinterval true set_spot_alias }def /inherit_aliases { {dup/Name get map_alias{/CSD put}{pop}ifelse}forall }def /set_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias 3 -1 roll put }{ pop }ifelse }def /current_spot_alias { /AGMCORE_SpotAliasAry2 where{ /AGMCORE_current_spot_alias get }{ false }ifelse }def /map_alias { /AGMCORE_SpotAliasAry2 where{ begin /AGMCORE_name xdf false AGMCORE_SpotAliasAry2{ dup/Name get AGMCORE_name eq{ /CSD get/CSD get_res exch pop true exit }{ pop }ifelse }forall end }{ pop false }ifelse }bdf /spot_alias { true set_spot_alias /AGMCORE_&setcustomcolor AGMCORE_key_known not{ //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put }if /customcolor_tint 1 AGMCORE_gput //Adobe_AGM_Core begin /setcustomcolor { //Adobe_AGM_Core begin dup/customcolor_tint exch AGMCORE_gput 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not current_spot_alias and{1 index 4 get map_alias}{false}ifelse { false set_spot_alias /sep_colorspace_dict AGMCORE_gget null ne {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse 3 1 roll 2 index{ exch pop/sep_tint AGMCORE_gget exch }if mark 3 1 roll setsepcolorspace counttomark 0 ne{ setsepcolor }if pop not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if pop true set_spot_alias }{ AGMCORE_&setcustomcolor }ifelse end }bdf end }def /begin_feature { Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if }def /end_feature { 2 dict begin /spd/setpagedevice load def /setpagedevice{get_gstate spd set_gstate}def stopped{$error/newerror false put}if end count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if }def /set_negative { //Adobe_AGM_Core begin /AGMCORE_inverting exch def level2{ currentpagedevice/NegativePrint known AGMCORE_distilling not and{ currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{ true begin_feature true{ <>setpagedevice }end_feature }if /AGMCORE_inverting false def }if }if AGMCORE_inverting{ [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer AGMCORE_distilling{ erasepage }{ gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore }ifelse }if end }def /lw_save_restore_override{ /md where{ pop md begin initializepage /initializepage{}def /pmSVsetup{}def /endp{}def /pse{}def /psb{}def /orig_showpage where {pop} {/orig_showpage/showpage load def} ifelse /showpage{orig_showpage gR}def end }if }def /pscript_showpage_override{ /NTPSOct95 where { begin showpage save /showpage/restore load def /restore{exch pop}def end }if }def /driver_media_override { /md where{ pop md/initializepage known{ md/initializepage{}put }if md/rC known{ md/rC{4{pop}repeat}put }if }if /mysetup where{ /mysetup[1 0 0 1 0 0]put }if Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put level2 {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if }def /capture_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put }if }if }def /restore_mysetup { /Pscript_Win_Data where{ pop Pscript_Win_Data/mysetup known{ Adobe_AGM_Core/save_mysetup known{ Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put Adobe_AGM_Core/save_mysetup undef }if }if }if }def /driver_check_media_override { /PrepsDict where {pop} { Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq { Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and }if { Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix }if }ifelse }def AGMCORE_err_strings begin /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def /AGMCORE_invalid_color_space(This job contains an invalid color space. )def end /set_def_ht {AGMCORE_def_ht sethalftone}def /set_def_flat {AGMCORE_Default_flatness setflat}def end systemdict/setpacking known {setpacking}if %%EndResource %%BeginResource: procset Adobe_CoolType_Core 2.31 0 %%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved. %%Version: 2.31 0 10 dict begin /Adobe_CoolType_Passthru currentdict def /Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def Adobe_CoolType_Core_Defined {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def} if userdict/Adobe_CoolType_Core 70 dict dup begin put /Adobe_CoolType_Version 2.31 def /Level2? systemdict/languagelevel known dup {pop systemdict/languagelevel get 2 ge} if def Level2? not { /currentglobal false def /setglobal/pop load def /gcheck{pop false}bind def /currentpacking false def /setpacking/pop load def /SharedFontDirectory 0 dict def } if currentpacking true setpacking currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def end setglobal currentglobal true setglobal userdict/Adobe_CoolType_GVMFonts known not {userdict/Adobe_CoolType_GVMFonts 10 dict put} if setglobal currentglobal false setglobal userdict/Adobe_CoolType_LVMFonts known not {userdict/Adobe_CoolType_LVMFonts 10 dict put} if setglobal /ct_VMDictPut { dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse 3 1 roll put }bind def /ct_VMDictUndef { dup Adobe_CoolType_GVMFonts exch known {Adobe_CoolType_GVMFonts exch undef} { dup Adobe_CoolType_LVMFonts exch known {Adobe_CoolType_LVMFonts exch undef} {pop} ifelse }ifelse }bind def /ct_str1 1 string def /ct_xshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_yshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { _ct_x _ct_y moveto 0 exch rmoveto } ifelse /_ct_i _ct_i 1 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /ct_xyshow { /_ct_na exch def /_ct_i 0 def currentpoint /_ct_y exch def /_ct_x exch def { pop pop ct_str1 exch 0 exch put ct_str1 show {_ct_na _ct_i get}stopped {pop pop} { {_ct_na _ct_i 1 add get}stopped {pop pop pop} { _ct_x _ct_y moveto rmoveto } ifelse } ifelse /_ct_i _ct_i 2 add def currentpoint /_ct_y exch def /_ct_x exch def } exch @cshow }bind def /xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def /ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def /xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def currentglobal true setglobal /ct_T3Defs { /BuildChar { 1 index/Encoding get exch get 1 index/BuildGlyph get exec }bind def /BuildGlyph { exch begin GlyphProcs exch get exec end }bind def }bind def setglobal /@_SaveStackLevels { Adobe_CoolType_Data begin /@vmState currentglobal def false setglobal @opStackCountByLevel @opStackLevel 2 copy known not { 2 copy 3 dict dup/args 7 index 5 add array put put get } { get dup/args get dup length 3 index lt { dup length 5 add array exch 1 index exch 0 exch putinterval 1 index exch/args exch put } {pop} ifelse } ifelse begin count 1 sub 1 index lt {pop count} if dup/argCount exch def dup 0 gt { args exch 0 exch getinterval astore pop } {pop} ifelse count /restCount exch def end /@opStackLevel @opStackLevel 1 add def countdictstack 1 sub @dictStackCountByLevel exch @dictStackLevel exch put /@dictStackLevel @dictStackLevel 1 add def @vmState setglobal end }bind def /@_RestoreStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def @opStackCountByLevel @opStackLevel get begin count restCount sub dup 0 gt {{pop}repeat} {pop} ifelse args 0 argCount getinterval{}forall end /@dictStackLevel @dictStackLevel 1 sub def @dictStackCountByLevel @dictStackLevel get end countdictstack exch sub dup 0 gt {{end}repeat} {pop} ifelse }bind def /@_PopStackLevels { Adobe_CoolType_Data begin /@opStackLevel @opStackLevel 1 sub def /@dictStackLevel @dictStackLevel 1 sub def end }bind def /@Raise { exch cvx exch errordict exch get exec stop }bind def /@ReRaise { cvx $error/errorname get errordict exch get exec stop }bind def /@Stopped { 0 @#Stopped }bind def /@#Stopped { @_SaveStackLevels stopped {@_RestoreStackLevels true} {@_PopStackLevels false} ifelse }bind def /@Arg { Adobe_CoolType_Data begin @opStackCountByLevel @opStackLevel 1 sub get begin args exch argCount 1 sub exch sub get end end }bind def currentglobal true setglobal /CTHasResourceForAllBug Level2? { 1 dict dup /@shouldNotDisappearDictValue true def Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put begin count @_SaveStackLevels {(*){pop stop}128 string/Category resourceforall} stopped pop @_RestoreStackLevels currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll { /@shouldNotDisappearDictValue known { { end currentdict 1 index eq {pop exit} if } loop } if } { pop end } ifelse } {false} ifelse def true setglobal /CTHasResourceStatusBug Level2? { mark {/steveamerige/Category resourcestatus} stopped {cleartomark true} {cleartomark currentglobal not} ifelse } {false} ifelse def setglobal /CTResourceStatus { mark 3 1 roll /Category findresource begin ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse end }bind def /CTWorkAroundBugs { Level2? { /cid_PreLoad/ProcSet resourcestatus { pop pop currentglobal mark { (*) { dup/CMap CTHasResourceStatusBug {CTResourceStatus} {resourcestatus} ifelse { pop dup 0 eq exch 1 eq or { dup/CMap findresource gcheck setglobal /CMap undefineresource } { pop CTHasResourceForAllBug {exit} {stop} ifelse } ifelse } {pop} ifelse } 128 string/CMap resourceforall } stopped {cleartomark} stopped pop setglobal } if } if }bind def /ds { Adobe_CoolType_Core begin CTWorkAroundBugs /mo/moveto load def /nf/newencodedfont load def /msf{makefont setfont}bind def /uf{dup undefinefont ct_VMDictUndef}bind def /ur/undefineresource load def /chp/charpath load def /awsh/awidthshow load def /wsh/widthshow load def /ash/ashow load def /@xshow/xshow load def /@yshow/yshow load def /@xyshow/xyshow load def /@cshow/cshow load def /sh/show load def /rp/repeat load def /.n/.notdef def end currentglobal false setglobal userdict/Adobe_CoolType_Data 2 copy known not {2 copy 10 dict put} if get begin /AddWidths? false def /CC 0 def /charcode 2 string def /@opStackCountByLevel 32 dict def /@opStackLevel 0 def /@dictStackCountByLevel 32 dict def /@dictStackLevel 0 def /InVMFontsByCMap 10 dict def /InVMDeepCopiedFonts 10 dict def end setglobal }bind def /dt { currentdict Adobe_CoolType_Core eq {end} if }bind def /ps { Adobe_CoolType_Core begin Adobe_CoolType_GVMFonts begin Adobe_CoolType_LVMFonts begin SharedFontDirectory begin }bind def /pt { end end end end }bind def /unload { systemdict/languagelevel known { systemdict/languagelevel get 2 ge { userdict/Adobe_CoolType_Core 2 copy known {undef} {pop pop} ifelse } if } if }bind def /ndf { 1 index where {pop pop pop} {dup xcheck{bind}if def} ifelse }def /findfont systemdict begin userdict begin /globaldict where{/globaldict get begin}if dup where pop exch get /globaldict where{pop end}if end end Adobe_CoolType_Core_Defined {/systemfindfont exch def} { /findfont 1 index def /systemfindfont exch def } ifelse /undefinefont {pop}ndf /copyfont { currentglobal 3 1 roll 1 index gcheck setglobal dup null eq{0}{dup length}ifelse 2 index length add 1 add dict begin exch { 1 index/FID eq {pop pop} {def} ifelse } forall dup null eq {pop} {{def}forall} ifelse currentdict end exch setglobal }bind def /copyarray { currentglobal exch dup gcheck setglobal dup length array copy exch setglobal }bind def /newencodedfont { currentglobal { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } { FontDirectory 3 index known {FontDirectory 3 index get/FontReferenced known} { SharedFontDirectory 3 index known {SharedFontDirectory 3 index get/FontReferenced known} {false} ifelse } ifelse } ifelse dup { 3 index findfont/FontReferenced get 2 index dup type/nametype eq {findfont} if ne {pop false} if } if dup { 1 index dup type/nametype eq {findfont} if dup/CharStrings known { /CharStrings get length 4 index findfont/CharStrings get length ne { pop false } if } {pop} ifelse } if { pop 1 index findfont /Encoding get exch 0 1 255 {2 copy get 3 index 3 1 roll put} for pop pop pop } { currentglobal 4 1 roll dup type/nametype eq {findfont} if dup gcheck setglobal dup dup maxlength 2 add dict begin exch { 1 index/FID ne 2 index/Encoding ne and {def} {pop pop} ifelse } forall /FontReferenced exch def /Encoding exch dup length array copy def /FontName 1 index dup type/stringtype eq{cvn}if def dup currentdict end definefont ct_VMDictPut setglobal } ifelse }bind def /SetSubstituteStrategy { $SubstituteFont begin dup type/dicttype ne {0 dict} if currentdict/$Strategies known { exch $Strategies exch 2 copy known { get 2 copy maxlength exch maxlength add dict begin {def}forall {def}forall currentdict dup/$Init known {dup/$Init get exec} if end /$Strategy exch def } {pop pop pop} ifelse } {pop pop} ifelse end }bind def /scff { $SubstituteFont begin dup type/stringtype eq {dup length exch} {null} ifelse /$sname exch def /$slen exch def /$inVMIndex $sname null eq { 1 index $str cvs dup length $slen sub $slen getinterval cvn } {$sname} ifelse def end {findfont} @Stopped { dup length 8 add string exch 1 index 0(BadFont:)putinterval 1 index exch 8 exch dup length string cvs putinterval cvn {findfont} @Stopped {pop/Courier findfont} if } if $SubstituteFont begin /$sname null def /$slen 0 def /$inVMIndex null def end }bind def /isWidthsOnlyFont { dup/WidthsOnly known {pop pop true} { dup/FDepVector known {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall} { dup/FDArray known {/FDArray get{isWidthsOnlyFont dup{exit}if}forall} {pop} ifelse } ifelse } ifelse }bind def /ct_StyleDicts 4 dict dup begin /Adobe-Japan1 4 dict dup begin Level2? { /Serif /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMin-W3} { /CIDFont/Category resourcestatus { pop pop /HeiseiMin-W3/CIDFont resourcestatus {pop pop/HeiseiMin-W3} {/Ryumin-Light} ifelse } {/Ryumin-Light} ifelse } ifelse def /SansSerif /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiKakuGo-W5} { /CIDFont/Category resourcestatus { pop pop /HeiseiKakuGo-W5/CIDFont resourcestatus {pop pop/HeiseiKakuGo-W5} {/GothicBBB-Medium} ifelse } {/GothicBBB-Medium} ifelse } ifelse def /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus {pop pop/HeiseiMaruGo-W4} { /CIDFont/Category resourcestatus { pop pop /HeiseiMaruGo-W4/CIDFont resourcestatus {pop pop/HeiseiMaruGo-W4} { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } { /Jun101-Light-RKSJ-H/Font resourcestatus {pop pop/Jun101-Light} {SansSerif} ifelse } ifelse } ifelse /RoundSansSerif exch def /Default Serif def } { /Serif/Ryumin-Light def /SansSerif/GothicBBB-Medium def { (fonts/Jun101-Light-83pv-RKSJ-H)status }stopped {pop}{ {pop pop pop pop/Jun101-Light} {SansSerif} ifelse /RoundSansSerif exch def }ifelse /Default Serif def } ifelse end def /Adobe-Korea1 4 dict dup begin /Serif/HYSMyeongJo-Medium def /SansSerif/HYGoThic-Medium def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-GB1 4 dict dup begin /Serif/STSong-Light def /SansSerif/STHeiti-Regular def /RoundSansSerif SansSerif def /Default Serif def end def /Adobe-CNS1 4 dict dup begin /Serif/MKai-Medium def /SansSerif/MHei-Medium def /RoundSansSerif SansSerif def /Default Serif def end def end def Level2?{currentglobal true setglobal}if /ct_BoldRomanWidthProc { stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth 0 0 }bind def /ct_Type0WidthProc { dup stringwidth 0 0 moveto 2 index true charpath pathbbox 0 -1 7 index 2 div .88 setcachedevice2 pop 0 0 }bind def /ct_Type0WMode1WidthProc { dup stringwidth pop 2 div neg -0.88 2 copy moveto 0 -1 5 -1 roll true charpath pathbbox setcachedevice }bind def /cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_BoldBaseFont 11 dict begin /FontType 3 def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /Encoding cHexEncoding def /_setwidthProc/ct_BoldRomanWidthProc load def /_bcstr1 1 string def /BuildChar { exch begin _basefont setfont _bcstr1 dup 0 4 -1 roll put dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def systemdict/composefont known { /ct_DefineIdentity-H { /Identity-H/CMap resourcestatus { pop pop } { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse } def /ct_BoldBaseCIDFont 11 dict begin /CIDFontType 1 def /CIDFontName/ct_BoldBaseCIDFont def /FontMatrix[1 0 0 1 0 0]def /FontBBox[0 0 1 1]def /_setwidthProc/ct_Type0WidthProc load def /_bcstr2 2 string def /BuildGlyph { exch begin _basefont setfont _bcstr2 1 2 index 256 mod put _bcstr2 0 3 -1 roll 256 idiv put _bcstr2 dup _setwidthProc 3 copy moveto show _basefonto setfont moveto show end }bind def currentdict end def }if Level2?{setglobal}if /ct_CopyFont{ { 1 index/FID ne 2 index/UniqueID ne and {def}{pop pop}ifelse }forall }bind def /ct_Type0CopyFont { exch dup length dict begin ct_CopyFont [ exch FDepVector { dup/FontType get 0 eq { 1 index ct_Type0CopyFont /_ctType0 exch definefont } { /_ctBaseFont exch 2 index exec } ifelse exch } forall pop ] /FDepVector exch def currentdict end }bind def /ct_MakeBoldFont { dup/ct_SyntheticBold known { dup length 3 add dict begin ct_CopyFont /ct_StrokeWidth .03 0 FontMatrix idtransform pop def /ct_SyntheticBold true def currentdict end definefont } { dup dup length 3 add dict begin ct_CopyFont /PaintType 2 def /StrokeWidth .03 0 FontMatrix idtransform pop def /dummybold currentdict end definefont dup/FontType get dup 9 ge exch 11 le and { ct_BoldBaseCIDFont dup length 3 add dict copy begin dup/CIDSystemInfo get/CIDSystemInfo exch def ct_DefineIdentity-H /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefont exch def /_Type0Identity/Identity-H 3 -1 roll[exch]composefont /_basefonto exch def currentdict end /CIDFont defineresource } { ct_BoldBaseFont dup length 3 add dict copy begin /_basefont exch def /_basefonto exch def currentdict end definefont } ifelse } ifelse }bind def /ct_MakeBold{ 1 index 1 index findfont currentglobal 5 1 roll dup gcheck setglobal dup /FontType get 0 eq { dup/WMode known{dup/WMode get 1 eq}{false}ifelse version length 4 ge and {version 0 4 getinterval cvi 2015 ge} {true} ifelse {/ct_Type0WidthProc} {/ct_Type0WMode1WidthProc} ifelse ct_BoldBaseFont/_setwidthProc 3 -1 roll load put {ct_MakeBoldFont}ct_Type0CopyFont definefont } { dup/_fauxfont known not 1 index/SubstMaster known not and { ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put ct_MakeBoldFont } { 2 index 2 index eq {exch pop } { dup length dict begin ct_CopyFont currentdict end definefont } ifelse } ifelse } ifelse pop pop pop setglobal }bind def /?str1 256 string def /?set { $SubstituteFont begin /$substituteFound false def /$fontname 1 index def /$doSmartSub false def end dup findfont $SubstituteFont begin $substituteFound {false} { dup/FontName known { dup/FontName get $fontname eq 1 index/DistillerFauxFont known not and /currentdistillerparams where {pop false 2 index isWidthsOnlyFont not and} if } {false} ifelse } ifelse exch pop /$doSmartSub true def end { 5 1 roll pop pop pop pop findfont } { 1 index findfont dup/FontType get 3 eq { 6 1 roll pop pop pop pop pop false } {pop true} ifelse { $SubstituteFont begin pop pop /$styleArray 1 index def /$regOrdering 2 index def pop pop 0 1 $styleArray length 1 sub { $styleArray exch get ct_StyleDicts $regOrdering 2 copy known { get exch 2 copy known not {pop/Default} if get dup type/nametype eq { ?str1 cvs length dup 1 add exch ?str1 exch(-)putinterval exch dup length exch ?str1 exch 3 index exch putinterval add ?str1 exch 0 exch getinterval cvn } { pop pop/Unknown } ifelse } { pop pop pop pop/Unknown } ifelse } for end findfont }if } ifelse currentglobal false setglobal 3 1 roll null copyfont definefont pop setglobal }bind def setpacking userdict/$SubstituteFont 25 dict put 1 dict begin /SubstituteFont dup $error exch 2 copy known {get} {pop pop{pop/Courier}bind} ifelse def /currentdistillerparams where dup { pop pop currentdistillerparams/CannotEmbedFontPolicy 2 copy known {get/Error eq} {pop pop false} ifelse } if not { countdictstack array dictstack 0 get begin userdict begin $SubstituteFont begin /$str 128 string def /$fontpat 128 string def /$slen 0 def /$sname null def /$match false def /$fontname null def /$substituteFound false def /$inVMIndex null def /$doSmartSub true def /$depth 0 def /$fontname null def /$italicangle 26.5 def /$dstack null def /$Strategies 10 dict dup begin /$Type3Underprint { currentglobal exch false setglobal 11 dict begin /UseFont exch $WMode 0 ne { dup length dict copy dup/WMode $WMode put /UseFont exch definefont } if def /FontName $fontname dup type/stringtype eq{cvn}if def /FontType 3 def /FontMatrix[.001 0 0 .001 0 0]def /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def /FontBBox[0 0 0 0]def /CCInfo 7 dict dup begin /cc null def /x 0 def /y 0 def end def /BuildChar { exch begin CCInfo begin 1 string dup 0 3 index put exch pop /cc exch def UseFont 1000 scalefont setfont cc stringwidth/y exch def/x exch def x y setcharwidth $SubstituteFont/$Strategy get/$Underprint get exec 0 0 moveto cc show x y moveto end end }bind def currentdict end exch setglobal }bind def /$GetaTint 2 dict dup begin /$BuildFont { dup/WMode known {dup/WMode get} {0} ifelse /$WMode exch def $fontname exch dup/FontName known { dup/FontName get dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse exch Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index/FontName get known { pop Adobe_CoolType_Data/InVMDeepCopiedFonts get 1 index get null copyfont } {$deepcopyfont} ifelse exch 1 index exch/FontBasedOn exch put dup/FontName $fontname dup type/stringtype eq{cvn}if put definefont Adobe_CoolType_Data/InVMDeepCopiedFonts get begin dup/FontBasedOn get 1 index def end }bind def /$Underprint { gsave x abs y abs gt {/y 1000 def} {/x -1000 def 500 120 translate} ifelse Level2? { [/Separation(All)/DeviceCMYK{0 0 0 1 pop}] setcolorspace } {0 setgray} ifelse 10 setlinewidth x .8 mul [7 3] { y mul 8 div 120 sub x 10 div exch moveto 0 y 4 div neg rlineto dup 0 rlineto 0 y 4 div rlineto closepath gsave Level2? {.2 setcolor} {.8 setgray} ifelse fill grestore stroke } forall pop grestore }bind def end def /$Oblique 1 dict dup begin /$BuildFont { currentglobal exch dup gcheck setglobal null copyfont begin /FontBasedOn currentdict/FontName known { FontName dup type/stringtype eq{cvn}if } {/unnamedfont} ifelse def /FontName $fontname dup type/stringtype eq{cvn}if def /currentdistillerparams where {pop} { /FontInfo currentdict/FontInfo known {FontInfo null copyfont} {2 dict} ifelse dup begin /ItalicAngle $italicangle def /FontMatrix FontMatrix [1 0 ItalicAngle dup sin exch cos div 1 0 0] matrix concatmatrix readonly end 4 2 roll def def } ifelse FontName currentdict end definefont exch setglobal }bind def end def /$None 1 dict dup begin /$BuildFont{}bind def end def end def /$Oblique SetSubstituteStrategy /$findfontByEnum { dup type/stringtype eq{cvn}if dup/$fontname exch def $sname null eq {$str cvs dup length $slen sub $slen getinterval} {pop $sname} ifelse $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval /$match false def $SubstituteFont/$dstack countdictstack array dictstack put mark { $fontpat 0 $slen 7 add getinterval {/$match exch def exit} $str filenameforall } stopped { cleardictstack currentdict true $SubstituteFont/$dstack get { exch { 1 index eq {pop false} {true} ifelse } {begin false} ifelse } forall pop } if cleartomark /$slen 0 def $match false ne {$match(fonts/)anchorsearch pop pop cvn} {/Courier} ifelse }bind def /$ROS 1 dict dup begin /Adobe 4 dict dup begin /Japan1 [/Ryumin-Light/HeiseiMin-W3 /GothicBBB-Medium/HeiseiKakuGo-W5 /HeiseiMaruGo-W4/Jun101-Light]def /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def /GB1 [/STSong-Light/STHeiti-Regular]def /CNS1 [/MKai-Medium/MHei-Medium]def end def end def /$cmapname null def /$deepcopyfont { dup/FontType get 0 eq { 1 dict dup/FontName/copied put copyfont begin /FDepVector FDepVector copyarray 0 1 2 index length 1 sub { 2 copy get $deepcopyfont dup/FontName/copied put /copied exch definefont 3 copy put pop pop } for def currentdict end } {$Strategies/$Type3Underprint get exec} ifelse }bind def /$buildfontname { dup/CIDFont findresource/CIDSystemInfo get begin Registry length Ordering length Supplement 8 string cvs 3 copy length 2 add add add string dup 5 1 roll dup 0 Registry putinterval dup 4 index(-)putinterval dup 4 index 1 add Ordering putinterval 4 2 roll add 1 add 2 copy(-)putinterval end 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch anchorsearch {pop pop 3 2 roll putinterval cvn/$cmapname exch def} {pop pop pop pop pop} ifelse length $str 1 index(-)putinterval 1 add $str 1 index $cmapname $fontpat cvs putinterval $cmapname length add $str exch 0 exch getinterval cvn }bind def /$findfontByROS { /$fontname exch def $ROS Registry 2 copy known { get Ordering 2 copy known {get} {pop pop[]} ifelse } {pop pop[]} ifelse false exch { dup/CIDFont resourcestatus { pop pop save 1 index/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get} {false} ifelse exch pop exch restore {pop} {exch pop true exit} ifelse } {pop} ifelse } forall {$str cvs $buildfontname} { false(*) { save exch dup/CIDFont findresource dup/WidthsOnly known {dup/WidthsOnly get not} {true} ifelse exch/CIDSystemInfo get dup/Registry get Registry eq exch/Ordering get Ordering eq and and {exch restore exch pop true exit} {pop restore} ifelse } $str/CIDFont resourceforall {$buildfontname} {$fontname $findfontByEnum} ifelse } ifelse }bind def end end currentdict/$error known currentdict/languagelevel known and dup {pop $error/SubstituteFont known} if dup {$error} {Adobe_CoolType_Core} ifelse begin { /SubstituteFont /CMap/Category resourcestatus { pop pop { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and { $sname null eq {dup $str cvs dup length $slen sub $slen getinterval cvn} {$sname} ifelse Adobe_CoolType_Data/InVMFontsByCMap get 1 index 2 copy known { get false exch { pop currentglobal { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } { FontDirectory 1 index known {exch pop true exit} { GlobalFontDirectory 1 index known {exch pop true exit} {pop} ifelse } ifelse } ifelse } forall } {pop pop false} ifelse { exch pop exch pop } { dup/CMap resourcestatus { pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS } { 128 string cvs dup(-)search { 3 1 roll search { 3 1 roll pop {dup cvi} stopped {pop pop pop pop pop $findfontByEnum} { 4 2 roll pop pop exch length exch 2 index length 2 index sub exch 1 sub -1 0 { $str cvs dup length 4 index 0 4 index 4 3 roll add getinterval exch 1 index exch 3 index exch putinterval dup/CMap resourcestatus { pop pop 4 1 roll pop pop pop dup/$cmapname exch def /CMap findresource/CIDSystemInfo get{def}forall $findfontByROS true exit } {pop} ifelse } for dup type/booleantype eq {pop} {pop pop pop $findfontByEnum} ifelse } ifelse } {pop pop pop $findfontByEnum} ifelse } {pop pop $findfontByEnum} ifelse } ifelse } ifelse } {//SubstituteFont exec} ifelse /$slen 0 def end } } { { $SubstituteFont begin /$substituteFound true def dup length $slen gt $sname null ne or $slen 0 gt and {$findfontByEnum} {//SubstituteFont exec} ifelse end } } ifelse bind readonly def Adobe_CoolType_Core/scfindfont/systemfindfont load put } { /scfindfont { $SubstituteFont begin dup systemfindfont dup/FontName known {dup/FontName get dup 3 index ne} {/noname true} ifelse dup { /$origfontnamefound 2 index def /$origfontname 4 index def/$substituteFound true def } if exch pop { $slen 0 gt $sname null ne 3 index length $slen gt or and { pop dup $findfontByEnum findfont dup maxlength 1 add dict begin {1 index/FID eq{pop pop}{def}ifelse} forall currentdict end definefont dup/FontName known{dup/FontName get}{null}ifelse $origfontnamefound ne { $origfontname $str cvs print ( substitution revised, using )print dup/FontName known {dup/FontName get}{(unspecified font)} ifelse $str cvs print(.\n)print } if } {exch pop} ifelse } {exch pop} ifelse end }bind def } ifelse end end Adobe_CoolType_Core_Defined not { Adobe_CoolType_Core/findfont { $SubstituteFont begin $depth 0 eq { /$fontname 1 index dup type/stringtype ne{$str cvs}if def /$substituteFound false def } if /$depth $depth 1 add def end scfindfont $SubstituteFont begin /$depth $depth 1 sub def $substituteFound $depth 0 eq and { $inVMIndex null ne {dup $inVMIndex $AddInVMFont} if $doSmartSub { currentdict/$Strategy known {$Strategy/$BuildFont get exec} if } if } if end }bind put } if } if end /$AddInVMFont { exch/FontName 2 copy known { get 1 dict dup begin exch 1 index gcheck def end exch Adobe_CoolType_Data/InVMFontsByCMap get exch $DictAdd } {pop pop pop} ifelse }bind def /$DictAdd { 2 copy known not {2 copy 4 index length dict put} if Level2? not { 2 copy get dup maxlength exch length 4 index length add lt 2 copy get dup length 4 index length add exch maxlength 1 index lt { 2 mul dict begin 2 copy get{forall}def 2 copy currentdict put end } {pop} ifelse } if get begin {def} forall end }bind def end end %%EndResource currentglobal true setglobal %%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0 %%Copyright: Copyright 1987-2006 Adobe Systems Incorporated. %%Version: 1.23 0 systemdict/languagelevel known dup {currentglobal false setglobal} {false} ifelse exch userdict/Adobe_CoolType_Utility 2 copy known {2 copy get dup maxlength 27 add dict copy} {27 dict} ifelse put Adobe_CoolType_Utility begin /@eexecStartData def /@recognizeCIDFont null def /ct_Level2? exch def /ct_Clone? 1183615869 internaldict dup /CCRun known not exch/eCCRun known not ct_Level2? and or def ct_Level2? {globaldict begin currentglobal true setglobal} if /ct_AddStdCIDMap ct_Level2? {{ mark Adobe_CoolType_Utility/@recognizeCIDFont currentdict put { ((Hex)57 StartData 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60 d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8 cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec } stopped { cleartomark Adobe_CoolType_Utility/@recognizeCIDFont get countdictstack dup array dictstack exch 1 sub -1 0 { 2 copy get 3 index eq {1 index length exch sub 1 sub{end}repeat exit} {pop} ifelse } for pop pop Adobe_CoolType_Utility/@eexecStartData get eexec } {cleartomark} ifelse }} {{ Adobe_CoolType_Utility/@eexecStartData get eexec }} ifelse bind def userdict/cid_extensions known dup{cid_extensions/cid_UpdateDB known and}if { cid_extensions begin /cid_GetCIDSystemInfo { 1 index type/stringtype eq {exch cvn exch} if cid_extensions begin dup load 2 index known { 2 copy cid_GetStatusInfo dup null ne { 1 index load 3 index get dup null eq {pop pop cid_UpdateDB} { exch 1 index/Created get eq {exch pop exch pop} {pop cid_UpdateDB} ifelse } ifelse } {pop cid_UpdateDB} ifelse } {cid_UpdateDB} ifelse end }bind def end } if ct_Level2? {end setglobal} if /ct_UseNativeCapability? systemdict/composefont known def /ct_MakeOCF 35 dict def /ct_Vars 25 dict def /ct_GlyphDirProcs 6 dict def /ct_BuildCharDict 15 dict dup begin /charcode 2 string def /dst_string 1500 string def /nullstring()def /usewidths? true def end def ct_Level2?{setglobal}{pop}ifelse ct_GlyphDirProcs begin /GetGlyphDirectory { systemdict/languagelevel known {pop/CIDFont findresource/GlyphDirectory get} { 1 index/CIDFont findresource/GlyphDirectory get dup type/dicttype eq { dup dup maxlength exch length sub 2 index lt { dup length 2 index add dict copy 2 index /CIDFont findresource/GlyphDirectory 2 index put } if } if exch pop exch pop } ifelse + }def /+ { systemdict/languagelevel known { currentglobal false setglobal 3 dict begin /vm exch def } {1 dict begin} ifelse /$ exch def systemdict/languagelevel known { vm setglobal /gvm currentglobal def $ gcheck setglobal } if ?{$ begin}if }def /?{$ type/dicttype eq}def /|{ userdict/Adobe_CoolType_Data known { Adobe_CoolType_Data/AddWidths? known { currentdict Adobe_CoolType_Data begin begin AddWidths? { Adobe_CoolType_Data/CC 3 index put ?{def}{$ 3 1 roll put}ifelse CC charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore currentfont/Widths get exch CC exch put } {?{def}{$ 3 1 roll put}ifelse} ifelse end end } {?{def}{$ 3 1 roll put}ifelse} ifelse } {?{def}{$ 3 1 roll put}ifelse} ifelse }def /! { ?{end}if systemdict/languagelevel known {gvm setglobal} if end }def /:{string currentfile exch readstring pop}executeonly def end ct_MakeOCF begin /ct_cHexEncoding [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12 /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25 /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38 /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71 /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84 /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97 /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0 /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3 /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6 /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def /ct_CID_STR_SIZE 8000 def /ct_mkocfStr100 100 string def /ct_defaultFontMtx[.001 0 0 .001 0 0]def /ct_1000Mtx[1000 0 0 1000 0 0]def /ct_raise{exch cvx exch errordict exch get exec stop}bind def /ct_reraise {cvx $error/errorname get(Error: )print dup( )cvs print errordict exch get exec stop }bind def /ct_cvnsi { 1 index add 1 sub 1 exch 0 4 1 roll { 2 index exch get exch 8 bitshift add } for exch pop }bind def /ct_GetInterval { Adobe_CoolType_Utility/ct_BuildCharDict get begin /dst_index 0 def dup dst_string length gt {dup string/dst_string exch def} if 1 index ct_CID_STR_SIZE idiv /arrayIndex exch def 2 index arrayIndex get 2 index arrayIndex ct_CID_STR_SIZE mul sub { dup 3 index add 2 index length le { 2 index getinterval dst_string dst_index 2 index putinterval length dst_index add/dst_index exch def exit } { 1 index length 1 index sub dup 4 1 roll getinterval dst_string dst_index 2 index putinterval pop dup dst_index add/dst_index exch def sub /arrayIndex arrayIndex 1 add def 2 index dup length arrayIndex gt {arrayIndex get} { pop exit } ifelse 0 } ifelse } loop pop pop pop dst_string 0 dst_index getinterval end }bind def ct_Level2? { /ct_resourcestatus currentglobal mark true setglobal {/unknowninstancename/Category resourcestatus} stopped {cleartomark setglobal true} {cleartomark currentglobal not exch setglobal} ifelse { { mark 3 1 roll/Category findresource begin ct_Vars/vm currentglobal put ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec {cleartomark false} {{3 2 roll pop true}{cleartomark false}ifelse} ifelse ct_Vars/vm get setglobal end } } {{resourcestatus}} ifelse bind def /CIDFont/Category ct_resourcestatus {pop pop} { currentglobal true setglobal /Generic/Category findresource dup length dict copy dup/InstanceType/dicttype put /CIDFont exch/Category defineresource pop setglobal } ifelse ct_UseNativeCapability? { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering(Identity)def /Supplement 0 def end def /CMapName/Identity-H def /CMapVersion 1.000 def /CMapType 1 def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } if } { /ct_Category 2 dict begin /CIDFont 10 dict def /ProcSet 2 dict def currentdict end def /defineresource { ct_Category 1 index 2 copy known { get dup dup maxlength exch length eq { dup length 10 add dict copy ct_Category 2 index 2 index put } if 3 index 3 index put pop exch pop } {pop pop/defineresource/undefined ct_raise} ifelse }bind def /findresource { ct_Category 1 index 2 copy known { get 2 index 2 copy known {get 3 1 roll pop pop} {pop pop/findresource/undefinedresource ct_raise} ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /resourcestatus { ct_Category 1 index 2 copy known { get 2 index known exch pop exch pop { 0 -1 true } { false } ifelse } {pop pop/findresource/undefined ct_raise} ifelse }bind def /ct_resourcestatus/resourcestatus load def } ifelse /ct_CIDInit 2 dict begin /ct_cidfont_stream_init { { dup(Binary)eq { pop null currentfile ct_Level2? { {cid_BYTE_COUNT()/SubFileDecode filter} stopped {pop pop pop} if } if /readstring load exit } if dup(Hex)eq { pop currentfile ct_Level2? { {null exch/ASCIIHexDecode filter/readstring} stopped {pop exch pop(>)exch/readhexstring} if } {(>)exch/readhexstring} ifelse load exit } if /StartData/typecheck ct_raise } loop cid_BYTE_COUNT ct_CID_STR_SIZE le { 2 copy cid_BYTE_COUNT string exch exec pop 1 array dup 3 -1 roll 0 exch put } { cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi dup array exch 2 sub 0 exch 1 exch { 2 copy 5 index ct_CID_STR_SIZE string 6 index exec pop put pop } for 2 index cid_BYTE_COUNT ct_CID_STR_SIZE mod string 3 index exec pop 1 index exch 1 index length 1 sub exch put } ifelse cid_CIDFONT exch/GlyphData exch put 2 index null eq { pop pop pop } { pop/readstring load 1 string exch { 3 copy exec pop dup length 0 eq { pop pop pop pop pop true exit } if 4 index eq { pop pop pop pop false exit } if } loop pop } ifelse }bind def /StartData { mark { currentdict dup/FDArray get 0 get/FontMatrix get 0 get 0.001 eq { dup/CDevProc known not { /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known {get} { pop pop {pop pop pop pop pop 0 -1000 7 index 2 div 880} } ifelse def } if } { /CDevProc { pop pop pop pop pop 0 1 cid_temp/cid_CIDFONT get /FDArray get 0 get /FontMatrix get 0 get div 7 index 2 div 1 index 0.88 mul }def } ifelse /cid_temp 15 dict def cid_temp begin /cid_CIDFONT exch def 3 copy pop dup/cid_BYTE_COUNT exch def 0 gt { ct_cidfont_stream_init FDArray { /Private get dup/SubrMapOffset known { begin /Subrs SubrCount array def Subrs SubrMapOffset SubrCount SDBytes ct_Level2? { currentdict dup/SubrMapOffset undef dup/SubrCount undef /SDBytes undef } if end /cid_SD_BYTES exch def /cid_SUBR_COUNT exch def /cid_SUBR_MAP_OFFSET exch def /cid_SUBRS exch def cid_SUBR_COUNT 0 gt { GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi 0 1 cid_SUBR_COUNT 1 sub { exch 1 index 1 add cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add GlyphData exch cid_SD_BYTES ct_GetInterval 0 cid_SD_BYTES ct_cvnsi cid_SUBRS 4 2 roll GlyphData exch 4 index 1 index sub ct_GetInterval dup length string copy put } for pop } if } {pop} ifelse } forall } if cleartomark pop pop end CIDFontName currentdict/CIDFont defineresource pop end end } stopped {cleartomark/StartData ct_reraise} if }bind def currentdict end def /ct_saveCIDInit { /CIDInit/ProcSet ct_resourcestatus {true} {/CIDInitC/ProcSet ct_resourcestatus} ifelse { pop pop /CIDInit/ProcSet findresource ct_UseNativeCapability? {pop null} {/CIDInit ct_CIDInit/ProcSet defineresource pop} ifelse } {/CIDInit ct_CIDInit/ProcSet defineresource pop null} ifelse ct_Vars exch/ct_oldCIDInit exch put }bind def /ct_restoreCIDInit { ct_Vars/ct_oldCIDInit get dup null ne {/CIDInit exch/ProcSet defineresource pop} {pop} ifelse }bind def /ct_BuildCharSetUp { 1 index begin CIDFont begin Adobe_CoolType_Utility/ct_BuildCharDict get begin /ct_dfCharCode exch def /ct_dfDict exch def CIDFirstByte ct_dfCharCode add dup CIDCount ge {pop 0} if /cid exch def { GlyphDirectory cid 2 copy known {get} {pop pop nullstring} ifelse dup length FDBytes sub 0 gt { dup FDBytes 0 ne {0 FDBytes ct_cvnsi} {pop 0} ifelse /fdIndex exch def dup length FDBytes sub FDBytes exch getinterval /charstring exch def exit } { pop cid 0 eq {/charstring nullstring def exit} if /cid 0 def } ifelse } loop }def /ct_SetCacheDevice { 0 0 moveto dup stringwidth 3 -1 roll true charpath pathbbox 0 -1000 7 index 2 div 880 setcachedevice2 0 0 moveto }def /ct_CloneSetCacheProc { 1 eq { stringwidth pop -2 div -880 0 -1000 setcharwidth moveto } { usewidths? { currentfont/Widths get cid 2 copy known {get exch pop aload pop} {pop pop stringwidth} ifelse } {stringwidth} ifelse setcharwidth 0 0 moveto } ifelse }def /ct_Type3ShowCharString { ct_FDDict fdIndex 2 copy known {get} { currentglobal 3 1 roll 1 index gcheck setglobal ct_Type1FontTemplate dup maxlength dict copy begin FDArray fdIndex get dup/FontMatrix 2 copy known {get} {pop pop ct_defaultFontMtx} ifelse /FontMatrix exch dup length array copy def /Private get /Private exch def /Widths rootfont/Widths get def /CharStrings 1 dict dup/.notdef dup length string copy put def currentdict end /ct_Type1Font exch definefont dup 5 1 roll put setglobal } ifelse dup/CharStrings get 1 index/Encoding get ct_dfCharCode get charstring put rootfont/WMode 2 copy known {get} {pop pop 0} ifelse exch 1000 scalefont setfont ct_str1 0 ct_dfCharCode put ct_str1 exch ct_dfSetCacheProc ct_SyntheticBold { currentpoint ct_str1 show newpath moveto ct_str1 true charpath ct_StrokeWidth setlinewidth stroke } {ct_str1 show} ifelse }def /ct_Type4ShowCharString { ct_dfDict ct_dfCharCode charstring FDArray fdIndex get dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not {ct_1000Mtx matrix concatmatrix concat} {pop} ifelse /Private get Adobe_CoolType_Utility/ct_Level2? get not { ct_dfDict/Private 3 -1 roll {put} 1183615869 internaldict/superexec get exec } if 1183615869 internaldict Adobe_CoolType_Utility/ct_Level2? get {1 index} {3 index/Private get mark 6 1 roll} ifelse dup/RunInt known {/RunInt get} {pop/CCRun} ifelse get exec Adobe_CoolType_Utility/ct_Level2? get not {cleartomark} if }bind def /ct_BuildCharIncremental { { Adobe_CoolType_Utility/ct_MakeOCF get begin ct_BuildCharSetUp ct_ShowCharString } stopped {stop} if end end end end }bind def /BaseFontNameStr(BF00)def /ct_Type1FontTemplate 14 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /PaintType 0 def currentdict end def /BaseFontTemplate 11 dict begin /FontMatrix [0.001 0 0 0.001 0 0]def /FontBBox [-250 -250 1250 1250]def /Encoding ct_cHexEncoding def /BuildChar/ct_BuildCharIncremental load def ct_Clone? { /FontType 3 def /ct_ShowCharString/ct_Type3ShowCharString load def /ct_dfSetCacheProc/ct_CloneSetCacheProc load def /ct_SyntheticBold false def /ct_StrokeWidth 1 def } { /FontType 4 def /Private 1 dict dup/lenIV 4 put def /CharStrings 1 dict dup/.notdefput def /PaintType 0 def /ct_ShowCharString/ct_Type4ShowCharString load def } ifelse /ct_str1 1 string def currentdict end def /BaseFontDictSize BaseFontTemplate length 5 add def /ct_matrixeq { true 0 1 5 { dup 4 index exch get exch 3 index exch get eq and dup not {exit} if } for exch pop exch pop }bind def /ct_makeocf { 15 dict begin exch/WMode exch def exch/FontName exch def /FontType 0 def /FMapType 2 def dup/FontMatrix known {dup/FontMatrix get/FontMatrix exch def} {/FontMatrix matrix def} ifelse /bfCount 1 index/CIDCount get 256 idiv 1 add dup 256 gt{pop 256}if def /Encoding 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for bfCount 1 255{2 copy bfCount put pop}for def /FDepVector bfCount dup 256 lt{1 add}if array def BaseFontTemplate BaseFontDictSize dict copy begin /CIDFont exch def CIDFont/FontBBox known {CIDFont/FontBBox get/FontBBox exch def} if CIDFont/CDevProc known {CIDFont/CDevProc get/CDevProc exch def} if currentdict end BaseFontNameStr 3(0)putinterval 0 1 bfCount dup 256 eq{1 sub}if { FDepVector exch 2 index BaseFontDictSize dict copy begin dup/CIDFirstByte exch 256 mul def FontType 3 eq {/ct_FDDict 2 dict def} if currentdict end 1 index 16 BaseFontNameStr 2 2 getinterval cvrs pop BaseFontNameStr exch definefont put } for ct_Clone? {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def} if FontName currentdict end definefont ct_Clone? { gsave dup 1000 scalefont setfont ct_BuildCharDict begin /usewidths? false def currentfont/Widths get begin exch/CIDFont get/GlyphDirectory get { pop dup charcode exch 1 index 0 2 index 256 idiv put 1 index exch 1 exch 256 mod put stringwidth 2 array astore def } forall end /usewidths? true def end grestore } {exch pop} ifelse }bind def currentglobal true setglobal /ct_ComposeFont { ct_UseNativeCapability? { 2 index/CMap ct_resourcestatus {pop pop exch pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 3 index def /CMapVersion 1.000 def /CMapType 1 def exch/WMode exch def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search { dup length string copy exch pop exch pop } {pop(Identity)} ifelse } {pop (Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { 3 2 roll pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def setglobal /ct_MakeIdentity { ct_UseNativeCapability? { 1 index/CMap ct_resourcestatus {pop pop} { /CIDInit/ProcSet findresource begin 12 dict begin begincmap /CMapName 2 index def /CMapVersion 1.000 def /CMapType 1 def /CIDSystemInfo 3 dict dup begin /Registry(Adobe)def /Ordering CMapName ct_mkocfStr100 cvs (Adobe-)search { pop pop (-)search {dup length string copy exch pop exch pop} {pop(Identity)} ifelse } {pop(Identity)} ifelse def /Supplement 0 def end def 1 begincodespacerange <0000> endcodespacerange 1 begincidrange <0000>0 endcidrange endcmap CMapName currentdict/CMap defineresource pop end end } ifelse composefont } { exch pop 0 get/CIDFont findresource ct_makeocf } ifelse }bind def currentdict readonly pop end end %%EndResource setglobal %%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0 %%Copyright: Copyright 1987-2004 Adobe Systems Incorporated. %%Version: 1.0 0 userdict/ct_T42Dict 15 dict put ct_T42Dict begin /Is2015? { version cvi 2015 ge }bind def /AllocGlyphStorage { Is2015? { pop } { {string}forall }ifelse }bind def /Type42DictBegin { 25 dict begin /FontName exch def /CharStrings 256 dict begin /.notdef 0 def currentdict end def /Encoding exch def /PaintType 0 def /FontType 42 def /FontMatrix[1 0 0 1 0 0]def 4 array astore cvx/FontBBox exch def /sfnts }bind def /Type42DictEnd { currentdict dup/FontName get exch definefont end ct_T42Dict exch dup/FontName get exch put }bind def /RD{string currentfile exch readstring pop}executeonly def /PrepFor2015 { Is2015? { /GlyphDirectory 16 dict def sfnts 0 get dup 2 index (glyx) putinterval 2 index (locx) putinterval pop pop } { pop pop }ifelse }bind def /AddT42Char { Is2015? { /GlyphDirectory get begin def end pop pop } { /sfnts get 4 index get 3 index 2 index putinterval pop pop pop pop }ifelse }bind def /T0AddT42Mtx2 { /CIDFont findresource/Metrics2 get begin def end }bind def end %%EndResource currentglobal true setglobal %%BeginFile: MMFauxFont.prc %%Copyright: Copyright 1987-2001 Adobe Systems Incorporated. %%All Rights Reserved. userdict /ct_EuroDict 10 dict put ct_EuroDict begin /ct_CopyFont { { 1 index /FID ne {def} {pop pop} ifelse} forall } def /ct_GetGlyphOutline { gsave initmatrix newpath exch findfont dup length 1 add dict begin ct_CopyFont /Encoding Encoding dup length array copy dup 4 -1 roll 0 exch put def currentdict end /ct_EuroFont exch definefont 1000 scalefont setfont 0 0 moveto [ <00> stringwidth <00> false charpath pathbbox [ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall grestore counttomark 8 add } def /ct_MakeGlyphProc { ] cvx /ct_PSBuildGlyph cvx ] cvx } def /ct_PSBuildGlyph { gsave 8 -1 roll pop 7 1 roll 6 -2 roll ct_FontMatrix transform 6 2 roll 4 -2 roll ct_FontMatrix transform 4 2 roll ct_FontMatrix transform currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse dup 9 1 roll { currentdict /StrokeWidth 2 copy known { get 2 div 0 ct_FontMatrix dtransform pop 5 1 roll 4 -1 roll 4 index sub 4 1 roll 3 -1 roll 4 index sub 3 1 roll exch 4 index add exch 4 index add 5 -1 roll pop } { pop pop } ifelse } if setcachedevice ct_FontMatrix concat ct_PSPathOps begin exec end { currentdict /StrokeWidth 2 copy known { get } { pop pop 0 } ifelse setlinewidth stroke } { fill } ifelse grestore } def /ct_PSPathOps 4 dict dup begin /m {moveto} def /l {lineto} def /c {curveto} def /cp {closepath} def end def /ct_matrix1000 [1000 0 0 1000 0 0] def /ct_AddGlyphProc { 2 index findfont dup length 4 add dict begin ct_CopyFont /CharStrings CharStrings dup length 1 add dict copy begin 3 1 roll def currentdict end def /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def /ct_PSBuildGlyph /ct_PSBuildGlyph load def /ct_PSPathOps /ct_PSPathOps load def currentdict end definefont pop } def systemdict /languagelevel known { /ct_AddGlyphToPrinterFont { 2 copy ct_GetGlyphOutline 3 add -1 roll restore ct_MakeGlyphProc ct_AddGlyphProc } def } { /ct_AddGlyphToPrinterFont { pop pop restore Adobe_CTFauxDict /$$$FONTNAME get /Euro Adobe_CTFauxDict /$$$SUBSTITUTEBASE get ct_EuroDict exch get ct_AddGlyphProc } def } ifelse /AdobeSansMM { 556 0 24 -19 541 703 { 541 628 m 510 669 442 703 354 703 c 201 703 117 607 101 444 c 50 444 l 25 372 l 97 372 l 97 301 l 49 301 l 24 229 l 103 229 l 124 67 209 -19 350 -19 c 435 -19 501 25 509 32 c 509 131 l 492 105 417 60 343 60 c 267 60 204 127 197 229 c 406 229 l 430 301 l 191 301 l 191 372 l 455 372 l 479 444 l 194 444 l 201 531 245 624 348 624 c 433 624 484 583 509 534 c cp 556 0 m } ct_PSBuildGlyph } def /AdobeSerifMM { 500 0 10 -12 484 692 { 347 298 m 171 298 l 170 310 170 322 170 335 c 170 362 l 362 362 l 374 403 l 172 403 l 184 580 244 642 308 642 c 380 642 434 574 457 457 c 481 462 l 474 691 l 449 691 l 433 670 429 657 410 657 c 394 657 360 692 299 692 c 204 692 94 604 73 403 c 22 403 l 10 362 l 70 362 l 69 352 69 341 69 330 c 69 319 69 308 70 298 c 22 298 l 10 257 l 73 257 l 97 57 216 -12 295 -12 c 364 -12 427 25 484 123 c 458 142 l 425 101 384 37 316 37 c 256 37 189 84 173 257 c 335 257 l cp 500 0 m } ct_PSBuildGlyph } def end %%EndFile setglobal Adobe_CoolType_Core begin /$Oblique SetSubstituteStrategy end %%BeginResource: procset Adobe_AGM_Image 1.0 0 %%Version: 1.0 0 %%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved. systemdict/setpacking known { currentpacking true setpacking }if userdict/Adobe_AGM_Image 71 dict dup begin put /Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def /nd{ null def }bind def /AGMIMG_&image nd /AGMIMG_&colorimage nd /AGMIMG_&imagemask nd /AGMIMG_mbuf()def /AGMIMG_ybuf()def /AGMIMG_kbuf()def /AGMIMG_c 0 def /AGMIMG_m 0 def /AGMIMG_y 0 def /AGMIMG_k 0 def /AGMIMG_tmp nd /AGMIMG_imagestring0 nd /AGMIMG_imagestring1 nd /AGMIMG_imagestring2 nd /AGMIMG_imagestring3 nd /AGMIMG_imagestring4 nd /AGMIMG_imagestring5 nd /AGMIMG_cnt nd /AGMIMG_fsave nd /AGMIMG_colorAry nd /AGMIMG_override nd /AGMIMG_name nd /AGMIMG_maskSource nd /AGMIMG_flushfilters nd /invert_image_samples nd /knockout_image_samples nd /img nd /sepimg nd /devnimg nd /idximg nd /ds { Adobe_AGM_Core begin Adobe_AGM_Image begin /AGMIMG_&image systemdict/image get def /AGMIMG_&imagemask systemdict/imagemask get def /colorimage where{ pop /AGMIMG_&colorimage/colorimage ldf }if end end }def /ps { Adobe_AGM_Image begin /AGMIMG_ccimage_exists{/customcolorimage where { pop /Adobe_AGM_OnHost_Seps where { pop false }{ /Adobe_AGM_InRip_Seps where { pop false }{ true }ifelse }ifelse }{ false }ifelse }bdf level2{ /invert_image_samples { Adobe_AGM_Image/AGMIMG_tmp Decode length ddf /Decode[Decode 1 get Decode 0 get]def }def /knockout_image_samples { Operator/imagemask ne{ /Decode[1 1]def }if }def }{ /invert_image_samples { {1 exch sub}currenttransfer addprocs settransfer }def /knockout_image_samples { {pop 1}currenttransfer addprocs settransfer }def }ifelse /img/imageormask ldf /sepimg/sep_imageormask ldf /devnimg/devn_imageormask ldf /idximg/indexed_imageormask ldf /_ctype 7 def currentdict{ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{ bind }if def }forall }def /pt { end }def /dt { }def /AGMIMG_flushfilters { dup type/arraytype ne {1 array astore}if dup 0 get currentfile ne {dup 0 get flushfile}if { dup type/filetype eq { dup status 1 index currentfile ne and {closefile} {pop} ifelse }{pop}ifelse }forall }def /AGMIMG_init_common { currentdict/T known{/ImageType/T ldf currentdict/T undef}if currentdict/W known{/Width/W ldf currentdict/W undef}if currentdict/H known{/Height/H ldf currentdict/H undef}if currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if currentdict/D known{/Decode/D ldf currentdict/D undef}if currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if currentdict/O known{ /Operator/O load 1 eq{ /imagemask }{ /O load 2 eq{ /image }{ /colorimage }ifelse }ifelse def currentdict/O undef }if currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if currentdict/I known{/Interpolate/I ldf currentdict/I undef}if currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if /DataSource load xcheck not{ DataSource type/arraytype eq{ DataSource 0 get type/filetype eq{ /_Filters DataSource def currentdict/MultipleDataSources known not{ /DataSource DataSource dup length 1 sub get def }if }if }if currentdict/MultipleDataSources known not{ /MultipleDataSources DataSource type/arraytype eq{ DataSource length 1 gt } {false}ifelse def }if }if /NComponents Decode length 2 div def currentdict/SkipImageProc known not{/SkipImageProc{false}def}if }bdf /imageormask_sys { begin AGMIMG_init_common save mark level2{ currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load AGMIMG_&imagemask }{ BitsPerComponent ImageMatrix/DataSource load AGMIMG_&image }ifelse }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if cleartomark restore end }def /overprint_plate { currentoverprint{ 0 get dup type/nametype eq{ dup/DeviceGray eq{ pop AGMCORE_black_plate not }{ /DeviceCMYK eq{ AGMCORE_is_cmyk_sep not }if }ifelse }{ false exch { AGMOHS_sepink eq or }forall not }ifelse }{ pop false }ifelse }def /process_mask { level3{ dup begin /ImageType 1 def end 4 dict begin /DataDict exch def /ImageType 3 def /InterleaveType 3 def /MaskDict 9 dict begin /ImageType 1 def /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def /ImageMatrix[Width 0 0 Height neg 0 Height]def /NComponents 1 def /BitsPerComponent 1 def /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def currentdict end def currentdict end }if }def /use_mask { dup/Mask known {dup/Mask get}{false}ifelse }def /imageormask { begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata } { save mark level2 AGMCORE_host_sep not and{ currentdict Operator/imagemask eq DeviceN_PS2 not and{ imagemask }{ AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{ [/Separation/Black/DeviceGray{}]setcolorspace /Decode[Decode 1 get Decode 0 get]def }if use_mask{ process_mask image }{ DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and { Names convert_to_process not{ 2 dict begin /imageDict xdf /names_index 0 def gsave imageDict write_image_file{ Names{ dup(None)ne{ [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace Operator imageDict read_image_file names_index 0 eq{true setoverprint}if /names_index names_index 1 add def }{ pop }ifelse }forall close_image_file }if grestore end }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }{ Operator/imagemask eq{ imagemask }{ image }ifelse }ifelse }ifelse }ifelse }{ Width Height Operator/imagemask eq{ Decode 0 get 1 eq Decode 1 get 0 eq and ImageMatrix/DataSource load /Adobe_AGM_OnHost_Seps where{ pop imagemask }{ currentgray 1 ne{ currentdict imageormask_sys }{ currentoverprint not{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }ifelse }{ BitsPerComponent ImageMatrix MultipleDataSources{ 0 1 NComponents 1 sub{ DataSource exch get }for }{ /DataSource load }ifelse Operator/colorimage eq{ AGMCORE_host_sep{ MultipleDataSources level2 or NComponents 4 eq and{ AGMCORE_is_cmyk_sep{ MultipleDataSources{ /DataSource DataSource 0 get xcheck { [ DataSource 0 get/exec cvx DataSource 1 get/exec cvx DataSource 2 get/exec cvx DataSource 3 get/exec cvx /AGMCORE_get_ink_data cvx ]cvx }{ DataSource aload pop AGMCORE_get_ink_data }ifelse def }{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul /DataSource load filter_cmyk 0()/SubFileDecode filter def }ifelse /Decode[Decode 0 get Decode 1 get]def /MultipleDataSources false def /NComponents 1 def /Operator/image def invert_image_samples 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ 1 AGMCORE_&setgray currentdict imageormask_sys }{ currentdict ignoreimagedata }ifelse }ifelse }{ MultipleDataSources NComponents AGMIMG_&colorimage }ifelse }{ true NComponents colorimage }ifelse }{ Operator/image eq{ AGMCORE_host_sep{ /DoImage true def currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse { AGMCORE_black_plate not Operator/imagemask ne and{ /DoImage false def currentdict ignoreimagedata }if }if 1 AGMCORE_&setgray DoImage {currentdict imageormask_sys}if }{ use_mask{ process_mask image }{ image }ifelse }ifelse }{ Operator/knockout eq{ pop pop pop pop pop currentcolorspace overprint_plate not{ knockout_unitsq }if }if }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /sep_imageormask { /sep_colorspace_dict AGMCORE_gget begin CSA map_csa begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_avoid_L2_sep_space{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def }if AGMIMG_ccimage_exists MappedCSA 0 get/DeviceCMYK eq and currentdict/Components known and Name()ne and Name(All)ne and Operator/image eq and AGMCORE_producing_seps not and level2 not and { Width Height BitsPerComponent ImageMatrix [ /DataSource load/exec cvx { 0 1 2 index length 1 sub{ 1 index exch 2 copy get 255 xor put }for }/exec cvx ]cvx bind MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Name findcmykcustomcolor customcolorimage }{ AGMCORE_producing_seps not{ level2{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{ [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if currentdict imageormask }{ currentdict Operator/imagemask eq{ imageormask }{ sep_imageormask_lev1 }ifelse }ifelse }{ AGMCORE_host_sep{ Operator/knockout eq{ currentdict/ImageMatrix get concat knockout_unitsq }{ currentgray 1 ne{ AGMCORE_is_cmyk_sep Name(All)ne and{ level2{ Name AGMCORE_IsSeparationAProcessColor { Operator/imagemask eq{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor }if }{ invert_image_samples }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ [/Separation Name[/DeviceGray] { sep_colorspace_proc AGMCORE_get_ink_data 1 exch sub }bind ]AGMCORE_&setcolorspace /sep_tint AGMCORE_gget AGMCORE_&setcolor }if }ifelse currentdict imageormask_sys }{ currentdict Operator/imagemask eq{ imageormask_sys }{ sep_image_lev1_sep }ifelse }ifelse }{ Operator/imagemask ne{ invert_image_samples }if currentdict imageormask_sys }ifelse }{ currentoverprint not Name(All)eq or Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{ currentcolorspace 0 get/Separation ne{ [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt /sep_tint AGMCORE_gget setcolor }if }if currentoverprint MappedCSA 0 get/DeviceCMYK eq and Name AGMCORE_IsSeparationAProcessColor not and //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse Name(All)ne and{ imageormask_l2_overprint }{ currentdict imageormask }ifelse }ifelse }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end }def /colorSpaceElemCnt { mark currentcolor counttomark dup 2 add 1 roll cleartomark }bdf /devn_sep_datasource { 1 dict begin /dataSource xdf [ 0 1 dataSource length 1 sub{ dup currentdict/dataSource get/exch cvx/get cvx/exec cvx /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx }for ]cvx bind end }bdf /devn_alt_datasource { 11 dict begin /convProc xdf /origcolorSpaceElemCnt xdf /origMultipleDataSources xdf /origBitsPerComponent xdf /origDecode xdf /origDataSource xdf /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def /DataSource origMultipleDataSources { [ BitsPerComponent 8 idiv origDecode length 2 idiv mul string 0 1 origDecode length 2 idiv 1 sub { dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch origDataSource exch get 0()/SubFileDecode filter BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx }for ]bind cvx }{origDataSource}ifelse 0()/SubFileDecode filter def [ origcolorSpaceElemCnt string 0 2 origDecode length 2 sub { dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx }for /convProc load/exec cvx origcolorSpaceElemCnt 1 sub -1 0 { /dup cvx 2/add cvx/index cvx 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx }for ]bind cvx 0()/SubFileDecode filter end }bdf /devn_imageormask { /devicen_colorspace_dict AGMCORE_gget begin CSA map_csa 2 dict begin dup /srcDataStrs[3 -1 roll begin AGMIMG_init_common currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse { Width Decode length 2 div mul cvi { dup 65535 gt{1 add 2 div cvi}{exit}ifelse }loop string }repeat end]def /dstDataStr srcDataStrs 0 get length string def begin AGMIMG_init_common SkipImageProc{ currentdict consumeimagedata }{ save mark AGMCORE_producing_seps not{ level3 not{ Operator/imagemask ne{ /DataSource[[ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def /MultipleDataSources true def /Decode colorSpaceElemCnt[exch{0 1}repeat]def }if }if currentdict imageormask }{ AGMCORE_host_sep{ Names convert_to_process{ CSA get_csa_by_name 0 get/DeviceCMYK eq{ /DataSource Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource filter_cmyk 0()/SubFileDecode filter def /MultipleDataSources false def /Decode[1 0]def /DeviceGray setcolorspace currentdict imageormask_sys }{ AGMCORE_report_unsupported_color_space AGMCORE_black_plate{ /DataSource DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get devn_alt_datasource /MultipleDataSources false def /Decode colorSpaceElemCnt[exch{0 1}repeat]def currentdict imageormask_sys }{ gsave knockout_unitsq grestore currentdict consumeimagedata }ifelse }ifelse } { /devicen_colorspace_dict AGMCORE_gget/names_index known{ Operator/imagemask ne{ MultipleDataSources{ /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def /MultipleDataSources false def }{ /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def }ifelse invert_image_samples }if currentdict imageormask_sys }{ currentoverprint not Operator/imagemask eq and{ currentdict imageormask_sys }{ currentoverprint not { gsave knockout_unitsq grestore }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ currentdict imageormask }ifelse }ifelse cleartomark restore }ifelse currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end end end }def /imageormask_l2_overprint { currentdict currentcmykcolor add add add 0 eq{ currentdict consumeimagedata }{ level3{ currentcmykcolor /AGMIMG_k xdf /AGMIMG_y xdf /AGMIMG_m xdf /AGMIMG_c xdf Operator/imagemask eq{ [/DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ]/DeviceCMYK{}]setcolorspace AGMIMG_c 0 ne{AGMIMG_c}if AGMIMG_m 0 ne{AGMIMG_m}if AGMIMG_y 0 ne{AGMIMG_y}if AGMIMG_k 0 ne{AGMIMG_k}if setcolor }{ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def [/Indexed [ /DeviceN[ AGMIMG_c 0 ne{/Cyan}if AGMIMG_m 0 ne{/Magenta}if AGMIMG_y 0 ne{/Yellow}if AGMIMG_k 0 ne{/Black}if ] /DeviceCMYK{ AGMIMG_k 0 eq{0}if AGMIMG_y 0 eq{0 exch}if AGMIMG_m 0 eq{0 3 1 roll}if AGMIMG_c 0 eq{0 4 1 roll}if } ] 255 { 255 div mark exch dup dup dup AGMIMG_k 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_y 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_m 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop counttomark 1 roll }{ pop }ifelse AGMIMG_c 0 ne{ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop counttomark 1 roll }{ pop }ifelse counttomark 1 add -1 roll pop } ]setcolorspace }ifelse imageormask_sys }{ write_image_file{ currentcmykcolor 0 ne{ [/Separation/Black/DeviceGray{}]setcolorspace gsave /Black [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Yellow/DeviceGray{}]setcolorspace gsave /Yellow [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Magenta/DeviceGray{}]setcolorspace gsave /Magenta [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if 0 ne{ [/Separation/Cyan/DeviceGray{}]setcolorspace gsave /Cyan [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx] cvx modify_halftone_xfer Operator currentdict read_image_file grestore }if close_image_file }{ imageormask }ifelse }ifelse }ifelse }def /indexed_imageormask { begin AGMIMG_init_common save mark currentdict AGMCORE_host_sep{ Operator/knockout eq{ /indexed_colorspace_dict AGMCORE_gget dup/CSA known{ /CSA get get_csa_by_name }{ /Names get }ifelse overprint_plate not{ knockout_unitsq }if }{ Indexed_DeviceN{ /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{ indexed_image_lev2_sep }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }{ AGMCORE_is_cmyk_sep{ Operator/imagemask eq{ imageormask_sys }{ level2{ indexed_image_lev2_sep }{ indexed_image_lev1_sep }ifelse }ifelse }{ currentoverprint not{ knockout_unitsq }if currentdict consumeimagedata }ifelse }ifelse }ifelse }{ level2{ Indexed_DeviceN{ /indexed_colorspace_dict AGMCORE_gget begin }{ /indexed_colorspace_dict AGMCORE_gget dup null ne { begin currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and AGMCORE_in_rip_sep and{ [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup] setcolorspace }if end } {pop}ifelse }ifelse imageormask Indexed_DeviceN{ end }if }{ Operator/imagemask eq{ imageormask }{ indexed_imageormask_lev1 }ifelse }ifelse }ifelse cleartomark restore currentdict/_Filters known{_Filters AGMIMG_flushfilters}if end }def /indexed_image_lev2_sep { /indexed_colorspace_dict AGMCORE_gget begin begin Indexed_DeviceN not{ currentcolorspace dup 1/DeviceGray put dup 3 currentcolorspace 2 get 1 add string 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub { dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put }for put setcolorspace }if currentdict Operator/imagemask eq{ AGMIMG_&imagemask }{ use_mask{ process_mask AGMIMG_&image }{ AGMIMG_&image }ifelse }ifelse end end }def /OPIimage { dup type/dicttype ne{ 10 dict begin /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /ImageType 1 def /Decode[0 1 def] currentdict end }if dup begin /NComponents 1 cdndf /MultipleDataSources false cdndf /SkipImageProc{false}cdndf /Decode[ 0 currentcolorspace 0 get/Indexed eq{ 2 BitsPerComponent exp 1 sub }{ 1 }ifelse ]cdndf /Operator/image cdndf end /sep_colorspace_dict AGMCORE_gget null eq{ imageormask }{ gsave dup begin invert_image_samples end sep_imageormask grestore }ifelse }def /cachemask_level2 { 3 dict begin /LZWEncode filter/WriteFilter xdf /readBuffer 256 string def /ReadFilter currentfile 0(%EndMask)/SubFileDecode filter /ASCII85Decode filter /RunLengthDecode filter def { ReadFilter readBuffer readstring exch WriteFilter exch writestring not{exit}if }loop WriteFilter closefile end }def /spot_alias { /mapto_sep_imageormask { dup type/dicttype ne{ 12 dict begin /ImageType 1 def /DataSource xdf /ImageMatrix xdf /BitsPerComponent xdf /Height xdf /Width xdf /MultipleDataSources false def }{ begin }ifelse /Decode[/customcolor_tint AGMCORE_gget 0]def /Operator/image def /SkipImageProc{false}def currentdict end sep_imageormask }bdf /customcolorimage { Adobe_AGM_Image/AGMIMG_colorAry xddf /customcolor_tint AGMCORE_gget << /Name AGMIMG_colorAry 4 get /CSA[/DeviceCMYK] /TintMethod/Subtractive /TintProc null /MappedCSA null /NComponents 4 /Components[AGMIMG_colorAry aload pop pop] >> setsepcolorspace mapto_sep_imageormask }ndf Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put /customcolorimage { Adobe_AGM_Image/AGMIMG_override false put current_spot_alias{dup 4 get map_alias}{false}ifelse { false set_spot_alias /customcolor_tint AGMCORE_gget exch setsepcolorspace pop mapto_sep_imageormask true set_spot_alias }{ //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec }ifelse }bdf }def /snap_to_device { 6 dict begin matrix currentmatrix dup 0 get 0 eq 1 index 3 get 0 eq and 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop { 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def 0 0 transform AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch itransform/AGMIMG_llY exch def/AGMIMG_llX exch def 1 1 transform AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch itransform/AGMIMG_urY exch def/AGMIMG_urX exch def [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat }{ }ifelse end }def level2 not{ /colorbuf { 0 1 2 index length 1 sub{ dup 2 index exch get 255 exch sub 2 index 3 1 roll put }for }def /tint_image_to_color { begin Width Height BitsPerComponent ImageMatrix /DataSource load end Adobe_AGM_Image begin /AGMIMG_mbuf 0 string def /AGMIMG_ybuf 0 string def /AGMIMG_kbuf 0 string def { colorbuf dup length AGMIMG_mbuf length ne { dup length dup dup /AGMIMG_mbuf exch string def /AGMIMG_ybuf exch string def /AGMIMG_kbuf exch string def }if dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop } addprocs {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage end }def /sep_imageormask_lev1 { begin MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ { 255 mul round cvi GrayLookup exch get }currenttransfer addprocs settransfer currentdict imageormask }{ /sep_colorspace_dict AGMCORE_gget/Components known{ MappedCSA 0 get/DeviceCMYK eq{ Components aload pop }{ 0 0 0 Components aload pop 1 exch sub }ifelse Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{ {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer currentdict imageormask }{ currentcolortransfer {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }{ MappedCSA 0 get/DeviceGray eq{ {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer currentdict imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll setcolortransfer currentdict tint_image_to_color }ifelse }ifelse }ifelse }ifelse end }def /sep_image_lev1_sep { begin /sep_colorspace_dict AGMCORE_gget/Components known{ Components aload pop Adobe_AGM_Image/AGMIMG_k xddf Adobe_AGM_Image/AGMIMG_y xddf Adobe_AGM_Image/AGMIMG_m xddf Adobe_AGM_Image/AGMIMG_c xddf {AGMIMG_c mul 1 exch sub} {AGMIMG_m mul 1 exch sub} {AGMIMG_y mul 1 exch sub} {AGMIMG_k mul 1 exch sub} }{ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub} {255 mul round cvi ColorLookup exch get 1 get 1 exch sub} {255 mul round cvi ColorLookup exch get 2 get 1 exch sub} {255 mul round cvi ColorLookup exch get 3 get 1 exch sub} }ifelse AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end }def /indexed_imageormask_lev1 { /indexed_colorspace_dict AGMCORE_gget begin begin currentdict MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{ {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceGray eq{ {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer imageormask }{ MappedCSA 0 get/DeviceCMYK eq{ currentcolortransfer {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }{ currentcolortransfer {pop 1}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll setcolortransfer tint_image_to_color }ifelse }ifelse }ifelse end end }def /indexed_image_lev1_sep { /indexed_colorspace_dict AGMCORE_gget begin begin {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub} {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub} AGMCORE_get_ink_data currenttransfer addprocs settransfer currentdict imageormask_sys end end }def }if end systemdict/setpacking known {setpacking}if %%EndResource currentdict Adobe_AGM_Utils eq {end} if %%EndProlog %%BeginSetup Adobe_AGM_Utils begin 2 2010 Adobe_AGM_Core/ds gx Adobe_CoolType_Core/ds get exec Adobe_AGM_Image/ds gx currentdict Adobe_AGM_Utils eq {end} if %%EndSetup %%Page: 10 1 %%EndPageComments %%BeginPageSetup %ADOBeginClientInjection: PageSetup Start "AI11EPS" %AI12_RMC_Transparency: Balance=75 RasterRes=300 GradRes=150 Text=0 Stroke=1 Clip=1 OP=0 %ADOEndClientInjection: PageSetup Start "AI11EPS" Adobe_AGM_Utils begin Adobe_AGM_Core/ps gx Adobe_AGM_Utils/capture_cpd gx Adobe_CoolType_Core/ps get exec Adobe_AGM_Image/ps gx %ADOBeginClientInjection: PageSetup End "AI11EPS" /currentdistillerparams where {pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse { userdict /AI11_PDFMark5 /cleartomark load put userdict /AI11_ReadMetadata_PDFMark5 {flushfile cleartomark } bind put} { userdict /AI11_PDFMark5 /pdfmark load put userdict /AI11_ReadMetadata_PDFMark5 {/PUT pdfmark} bind put } ifelse [/NamespacePush AI11_PDFMark5 [/_objdef {ai_metadata_stream_123} /type /stream /OBJ AI11_PDFMark5 [{ai_metadata_stream_123} currentfile 0 (% &&end XMP packet marker&&) /SubFileDecode filter AI11_ReadMetadata_PDFMark5 application/postscript diagramas_01 Adobe Illustrator CS4 2011-06-17T09:35:05-03:00 2011-06-17T09:35:05-03:00 2011-06-17T09:35:05-03:00 256 72 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgASAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9KSaZpESQ8rXm0x4qFJr UIz92HZDirHLM+QIbGTVk04Wc0bTRmGVSswkiqJEIRpKbqRXpiqM0i3nXzFLHdRGB44hJFbogMIr IFDibkXZjuONKfqxVlmKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KsbuDrdvqVtPql/YDQubBIxBJDMhaBwvqTvO8ZHUbRr2xVW8q6Xo9voUljp8wud PaSZVdJTKOLn7PPk3Y+OKrtN0CfT9SluTctdQyoFEk7cp+RdTQkAAqANvuptXFUV+jbx/jGoSqG+ IKKUFd6Yqxn9POdUW2GrWv1GvKS8N/ECIviVWWPieR5qFI5ACta9iq35o1SaxsibHXYPXqi8p7yG 3CvIwWJaukwo5rvTbsDiqZ6JHcXVlAkmtia/EYN3HDLHMFkFBIoZRHVVY0B4D5Yql0evxtqf1U61 ai3KCVZxfRF2hbZXEVPFlB325DxxVkNvZzExzpqLzxBhsCCrUahFQcVXvp13JI7rfyorMxCClAKn YYqx6bXLaPW7ewGuW5tpreed7g3cayq0DqpVYaHkDyJ5ctqHbFXeYtah0rSri8g1y2mmgX1DDcXk dshTkFJ9SktDvt8O52xVXmKTxIU80rayIQk4ikglX1HVSFq4/wAoU2FQcVQflzXjqi3RutZs4DDc S28K21/HdFxAaM0nwQ+m3Q8d9jXFVaXW7VNXhsRrsBilhknMxuow4ELcXpFuTQkb18fDFU7tbZ5O E8OqNcxK614MrKdxUVUnFVaTT7qWR5FvpY1ZjRFpQUNMVY5NrcaarHZrrdq0MiPKJTexrII4iFkb 0uJJ4k9jT3GKr9f1iLTdMuLq31u3nuIE9QQT3cdshQMAxMtJONAf5d+mKowXNqYS36fi9VSqMonQ qJWUFU5dd+Q7dO2KpX5b12XU452vdWs7Zo5pIYktdQju+Xomj8jwh4Efy77YqiJdbs01eKxGvW5j eGSd5DdxCRViPFqQ9SOXetOvhuqp+ZNZTTtKnubXXIJJo1SomvIbZEEzGNJGlcSqq8/FfHrShVRW nyRJZxtdeZllkdghYyw0ElAGjUpwDUb2riqlo2rx34uPW1u2jeKZ4o0gu47glYwpLPtHwPxVC7/D xbvQKqV1rsUerWllDrdrJBOkks0z3saSJHDszJFxYyfFQdQOu+26rvMWtjTNOluLLWbW5uYjGXhu r6O0jCOxHNpeM3EDiT9nscVTGO5tTCrvr8avUI6rMjKJNgUDHiT8Rp0+jFUDomsxahDLJNrltFSa SKEQXkdwGWEhWZjSMKedfh32oepoFWTWdrPbyH1Ll7gMNg/ah/txVF4q7FXnOpeaddvL2fTP0TFP Z2lw0clyyShkpy9KSNZF9OUhVqTy4g/diqBi89eZdNZraw8txQQH1LiYv60Sc5aspSiyKeTghhUF etNxiqfeUvO+r65ffVbvT/qnpqGnJjmVQwYgoskgUMQwr03UhuhFVWQ/4c0ozSXlvCtnfXRRrq8t wI5peKhQsjqOTCij7sVYNceQNciuBHGtxcI1JHlGpXZgA9QuYhbyTLDQlVqPTpQ+NcVWeYdJ0vSp lEzanb/WDHVI5LhFk5MIpGP1C4SpRKEcl+HryG5CqaaL+j4NMjuRaao0rzNK16kLetIrkAq0ivI7 qaDfl74ql+n+S9Sv0WCUXNuLJYkQzXd+scsYAqjQmQwuKp9koQNqAYqzyLQNDtbz6/bafbw3pHpm 5jiRZOLMpYcgK0biK+NBiqyTQLB7qfUbZFs9WuAIpdThjj+sNGj1EZZ1eq7UoRirDb3yVrUTLHDJ PcSsp4lL27SNU9QBlMYeKDdJWJXiA1OleOKqGvaNZaalp9Ze+t2ERSCJGMMcjxlSFkewlgL9v7wG vXFWtJ0izu7Nb62bV3FxIk8UkkLSOOCCPeeSR7ongKchNX6RiqpDotu9+rzfpIXEYcm1ZZLkFC5A l9K7muY1LLsW4V3p2GKtWflTVr2tsRdWqx8jE8lzewoUBQ8WSN1hIcuwKceJAPwjbFWZWvlTy9aX FrfpptqmqW0SQR3qxJ6wToVEgVWoanFV7eXNM+uXOpWkSWOr3fFLjVII4vrDpGwojO6tyHFAu/8A DFWIX/kzWkWOCF5p5N3Vo7y7jXj6q8kdQ8UBBV2JTiFah2rTFUJr2k2GlfUUun1C3Z09K3SLlHFI 8YDATSadJByFFArKDXbvtiremaNZXtkLuA6u4mlWeKZ4jJJ8MYi2uXke7rwBUMJwR9GKomHy8GnW eaPVfheQ+lJHJdIeRC8gl5NdRryjXeidz3xVZL5cd/ThH6XEShz6i/WkFeYIRoo7lImRgW5Lw4nw xVq48sRAf6PHqwU/VkaOKN7SogYjk5s5bUS0R/8AdgavHFV0WhWEAjtfU1M3glNxH6kfOY1Lb+rJ I12SFJXkJq4q1D5Yia7+tTxaqWrIGhkSW7jIJ4BhHeTXUSlox8XFB79MVaby05dVrq5Xg45j60qA 12X0EuVhKsJG5DhxPh0oqvn8uRLHxgi1Uo0UNvJGsb2pKxuwLlrOW05MEk2LVbbY4qozeWpreyP1 KLUri8SQzRvPGwkLb9bpmluix2Wvre+Kpv5f8mutzDc3itNaJ6q/Vrye6uSTvGJOF2ZKc1UHtXqd 61VZPpOiaPo0As9JsoLC1JeQwW0axJzbjVuKgCppiqPxV2KpRqEfmNm/3GCwRAxH+kpKxIG37BXF UlTUvM8nFk1DQeD0IVlnD0K9CDKCDy8R7UxVNNCu9UlMcd9daZdT7mU2HNdgvUIzyEfF74qibyPX mST6kLJX5H0zOsjCganxBSu9PfFWPR6t5sntYmtrjTXlaNHaRtO1BVIbeoj58lDDoC334qn+nXlz POscyR04ksVgni3A7eqoH0VxVc36WSEzSGySNV5O7BwAAKkkk7Yqlj+ZbdJTF9d093U0IjWWQV22 qnIdxiqV33m+/tZ1T9IaUvqyBIEa3uA4qduXKRK02rxFfbFUwHmhI4BJdXlgrKvKWT0rhU6VLfEN hsepxVFWWtLfQQz2l9pc8U/H0WRieRf7IA5VqfDriqZhb/0CClubnnQUDBOPGvzriqU6lc+ZLW5V fU09IpATGv1a6ncBAORYxtSm/U0xVSs9T13mzXn1NoyPgMVper32JZgRSmKp0DeyW8LRJB6jhmk5 q6ildqAgMPeuKtenrA34Wlfk+KqdxJqkKepKtrQmnwrK7EnwCgk4qlBvfNRkkKvYcD/cp9Qviw3P 2m5b7U6LiqnB5mvYrh7W+aBrqtY4obDUFPEVFaFHr07bYqmZ1C9HWKIf9G91/wA0YqvhvbuWQRK1 oszfZikWWN2AFaqjhWI+QxVETrqr8jaLaqOI4+qrn4itd+JG1TiqRvqHmVHeJtQ0JZ4nCTRukylK gN0Mta8WBGKo+wvruRoUuLrS5p2YBxbFqkE/sKWY/ZxVHSDUgXZVtVhUtQvzBCgndu2KpTP5ntIJ TFJe6eXVQ7BPUcBTXclAwHTFVCTzppccayyX+npEx4q7CUKWFdgSvXY4qoXXm1zMUtdR0pAqFnjl huXeoPX4SlF+jFUNb+d5frSGTUtInsmL1mhinWlPsqSztv8AEOgP0YqmX+NdOST0/wBIWCy05cKT BuIFa041pTFW5PPFhGnqSalYogPEu3rAV8Kke2KqsHm2K4nWC3vLSWd6cY0Wck13H7Ow9zirfmTR 9WvEpaajeQK8jcorcRL6amJ0qjfumPxMG+KQ79sVSfyt5JubRfq+rT3l5bGOUMk8sxSpeP0gtbi4 f4UTuaBiSKVpirK7bS4YboTrLO8hd2o7yFAGLmnEnjQcqD5Yqk/mPy9q+oykwX7C3cTK1vJHEVj5 hQDGTC7V+FjyJqK7bYqlvlPyJcafbQW2pyGa2jtyjRJJKWEpZG/vAscjhKEKXYkYqzgsGZaA7Gpq COx8cVYi2h6dNYXRtdDvNHvNSEkl29v6UMjTyghnn+rzhZWrvux+eKpbYflbp31+51OSe4S4vnU3 okRvVkVWRmVpFlckN6a9WNCNqUxVfq35S6Pqc1o091M0NhO9xYwyCaRYi55ELyk8aGoANRiqLn/L iykt5IxfXCy3Szx6hKDP+/Sc1KsokG1K161rU4qu8ufltoej2KadMF1DTkge3W0uIS8dJCGkPFzI o5kbgAYqyGDSbSz01NP0pP0ZaxGkC2saKIxSp4IyMm5r+zirBtQ/LrXLvWrfUJL0uYJZnVg3pgq0 3qp6kccKpKTQBhICKbYqzfQtKi06zhD83vfQhiupS0rh2iSlRz9602xVME+0P9n12/aGKoDWvMeg 6PA76pfwWigKCJZUiP7w8EoXZKcjsDXFWIzHy5cQWsNndXd16RV0M2p+ujqUYj95JPOpYh+VSCae xriqQ+WB5XKNPLerqFvb3kpIW9tJmThG0KRKtuIG2ReVSSSPEb4qyee98hRXccLon1ySMvBafXYB JIvWqIbkcunXFWLecrLyZqOm3dyW+o23pxFma9toGEsXNwR6pnV+aNxBFR4VpirI/J/+FrSOK0hh iujOytazCS2ugqLbIF/fKR9pEqNuhxVPfMs+o2umPc284jt0aATIEZpTWWMHgyywUqGod/pxV5v5 am8z3+qyQyancrPdzwojB0lWFo4XFwBV6/ZVa8g9abFe6r1XS7DUrS3iivLpLv09vVMZEpq9RV+V Om32cVQmreUtHu7bUZobGFNTvFkLXKoqySShDGnqN+0Bts22KvLJvyl81w6pPrc+qXHrJbmNruWa IOIgtGjeUychEFXerU64qitS8nT+atFsjamzvtLu5457aW1kb0HcQ8JDxM7qZIuEgqR9oUPgFVbz H5a8wXKy2ri6trmWdm9e0guJpEtzarDxWdWkVlYsylSSduvHbFUl8o+UdR0H1bFxfM1+JPQtBayC JJ3lhHrcGRUP7qP42Zfntiqav+VnmVtdTXxFxv0szbqiyJ8J+rfVwqu0jSAUYn7dO1OO2Kpf5u8n 33mC0sI7ZNQSJLW0+vW5srgRy3aF/WeRGiCllWX4SFp2G2Ksw/LvS9V06CHSrmW9kt7dZ5Q91bug Kxx2sNunOWOihQJOKow+4Yqy54hdX97aQ3VzFdQxpLy5n0R6zSKlFBBNDEajb5+CqVweVb2RBFq+ s3s+oS8vUbTp7i0hEfRW9NppWQ08H3PTFVNPLV3cWLzaPrOoR3kUzwxvqE808Ja3mMcrNFFLETy4 NT4h8sVTnT7SUpC73VzMyemXnD8YJWqORRCzvwJ6Vrt3PXFUBeTaq0uqSWoZ4rCRlbneNESfSWYh VW3loAJAB8WKom5hu7RBJcTzhCH/ALu4LGqRtJShiX+Q98VSy7s9SinnD+YzbBKkxPdQgx1+IV5W 9QOJHXtviqYJb3qBIGuZ5LkTC3djcUBpD63Ooh6kdguKqlxZ6lBbyTtNIUiVnel01aKKmn7jFU5t 0KQqhZn41HNzVjQ03OKqmKuxV2KuxVJPMulJqbWVvcaNa6xZpI00gu3UCGRF/duiNHJyY1I7UxVJ NQ8m39zdB7KKLSYT6RK2zA8Xidz6qrwReVJCPl3xVHJ5KiWISesf0kkokh1DgvqIix+kIlPPkEA3 oG64qhtF/Lqw01Vt2YT6esz3JsfRjSJpGBCllDFTwBHHauwxVTT8uzHqNrqEd6y3FlAba2lMK+ok Z2ADiQMKLyG23xHxxVfqX5c6ZdQC3hCwQelFHJG0EUitJDz4TFSQpceodyDiqe+X9HbSLWS39Rp1 ZwybBFRFjWNUReTUUBNsVTJYgFFa1oK0JHQUxVsRIOlRXc7n+uKu9Nffbfqe304qgV0OzVpGWa7H qyPKw+t3JAZ2LHiDIeK1OyrsOgAGKomCyihDBXlcOan1JZJPu5MaYq6SxtJIhFJErxL0jbdRT2O2 KqX6F0j/AJY4f+AGKtfoTSP+WOH/AIBcVb/Qukf8scP/AAAxV36F0j/ljh/4AYq4aNpIZWFpEGU1 VggBBHcHscVQU2o21rq08TSxx3EsERT1GCgKJZviapGw8O+Kou2vdKSiJeQySyMOTeohZ3Ow6H6A BiqXjVNNFtcaeLuFLp57hJU9RQ0avO/Jm3+E8TVa9cVTSO+sJiIre4ikYUIjjdWIUMBWgPQVGKpc LbSmuNRW8l9IzzfGn1iSIOpiRK8VdRvxp0xVU1a6t7q3CWkqXEgEp4xsGP8AvPIP2a92A+nFVK7u UZb+GG4s2W85cWe44laxLGaqEboU8cVWaldIkFxcxSqqGeQxzBgByFkVHFtqnmKd98VUb7UtEaIR 2GpJcSSrKjxLdGeqmB6fAXk/b49v14qmmqCyS0lu7xWaG0jmmYIWB4p8TUoVqaDFUilsrKyM2oT6 VqgiiWSaUvdxtGqgMzH0xdHYDoKYqnGow6dY2bvJFI8CMjmNHYuWNVFCWHj44ql95Bbtay+to2oR RKvN5EuYUYBfiNGW6r2xVKx5W0+7vIkhudY4xWsFyBHelSxuPVUGXm9CQI+g+Gu/hiqpb+XdPiup bKZ9Vll4QtEJLxhKTJ61aGOVYqUgJ3/pirX+FdOtJRDFb65K8wLIp1JpOCRsK7zXXcyd6n6AKKpn Z2drFIbc6VqCtIGlUzXKSdOIIB+svT7Q2xVMrBbcLdrFDJAyUSRJG5GvDkCCHkHR/HFUuE+kM0gj 0+9lWOSSIuglZS0TsjUPPf4kxVLJ9B0y9vLc2k+qRrdJPI0MN0ytG1vKkbgiVyB8UhDD22pirdp5 SsYtUjspJ9W4zwTzgz3rGhjki+yY5K/7upQ7YqncNpZSQRyx6dclHUMoMq1oelazYqrXMthFo6zS K7WYowVS3MqSePcN37nFUAZ9IUxiTT72JZJI4g8gkVQ0rhFqS/TkwGKoG70DTEuHtIo9WunDAj0L 3jxEfCRlBkniND6gB5VO+22KonS9K0dIJL1Ev5atGgt57l5CPWEbLxHqlP2xuT44qmH1SyV0DWU8 LSEhHaSoDBWffjK3ZPDFU4xV2KuxV2KuxVCW91M2oXNq0XGKGOOWOWteRleVWFKbcfTH34qteJYf qYlJu7oSFIriUIrDkCzn4FUD4FPQb7fPFVFry4udPlbk1pcNPLBbmILI59GVkUgOOPxrHXfYA9dq 4qrW9vIsjzywxxySemHdTykfiQAXYKg6dgPpxVvUtH0vU7Y22oWyXVuWDmKUcl5DoaHFXaXo2l6V ZrZabbJZ2iFmSCEcEBclmIUbbk1OKoTUPKPlnUr5b+/02C5vURY1uZEDSBFJZVDHegLEjFU19NfE /wDBH+uKpTpHk/yxo83raVpsFjKIjAHgXgREX9QoOP7PM8qeO+KqnmQcdA1MD/liuf8Ak2fniq/z L/yjmq/8wdx/yabFVDzTU6TOB1rFTv8A7sxVH6mK6bditP3Mm46/YOKpZoJ/05h/2rNP/wCJXGKu l/5Swbf7qtd/9jfYqmch/wByduP+KZv+JxYq6T/jp2+3+6Zt/wDZxYqo23+9Op/8ZF/5MJiqF0W9 ihtJo5I5wwvL3pBMRQ3cpBBVKEEb4qhNG5HU7RmBUsursoZSrcWv4ivwtQjanbFUynp/iOx8fqd3 /wAnbbFUv0TS5E0awSTTbGSRbaEPIXqWYRirE+ieuKqdxFLH5HtoSGllSCBCEDOzMOI2FOTGvtXF UbrN7HNawxxJPzN5ZdYJgKC7iJJJSgFO+KqsFP07L8pa/wDAWuKpb6Lz6B6Uao7fWNOLJIeKMF+q swJAbqop0xVXudOdb7TZVsrW2EU8jPJCxLkG1mWlBEndh3xVP8VdirsVdirsVSifUobLUZjJFPIZ IoxGIYZJASsktQWVSin4h9ojFW4NVtGvImnEq3EwMcCCCfgi7FuUhQLVqAkmg2oOhJVUdOvIop7p rlJVZJpkgpDKw9NpDIWUqpHxFvwGKo6LVrK5na2i9USpxZucM0a0LClHdFUn2BxVHYq7FXYq7FXY qhL+zubloxHc+jCA6zx+mknqBgKAl6gDx23xVJbHyDoluUkmhjuLlXEjSemEUt4CNTTjXoDX5nFU 51GwlvIPSEyxqzL6lYlkDIK1Xi9V3r1IOKpXY+S9Jgnlmngtrln2RGtYkRFHSiKKcvFv1Yqi73y9 aXcvOQqF9NIhEIoWQLEWK0EiPT7Z6YqvtNCtLZZFokqSKiNG8UYSkZYr8KKg/bOKtzeX9HnXjNYW ki7ijQIevzxVqDy7otuKQafaRD/It0X9WKouGzhhR0iRIkf9mNAgr0rQYqlK+WZHntp7q6Sd4uTT gW8SLLI1KkgVHH7Wxqd/teKqNvtGgvBGHIRYlZFRY42Xi/Go4uHH7A6Yqp6foFtY3KzwFQyxvEqr FDGoV2Vj/dIh6oO+Kqx0XTDKJjZ2xlUUV/RWo74qq3dpLNa+jFKsTFgS5QOOPL4gFY03WoFengcV QVnoEdvdyXDOkoPH0ozDGoQqqjkCN+XJSfhoN+m1cVV9Q0LStSp+kLK2u6Go9eFZNwCP2q9jiqst hbLbm3WGFbc7mERgIaf5PTtiqnBo+n25LW9tBC5qeccSq1WFCajxxVG4q7FXYq7FXYq//9k= proof:pdf uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:F87F1174072068118DBB92CA1052A9F9 xmp.iid:F87F1174072068118DBB92CA1052A9F9 converted from application/pdf to <unknown> saved xmp.iid:D47F11740720681191099C3B601C4548 2008-04-17T14:19:21+05:30 Adobe Illustrator CS4 / converted from application/pdf to <unknown> converted from application/pdf to <unknown> saved xmp.iid:FD7F11740720681197C1BF14D1759E83 2008-05-16T17:01:20-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F117407206811BC18AC99CBA78E83 2008-05-19T18:10:15-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:FB7F117407206811B628E3BF27C8C41B 2008-05-22T14:26:44-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:08C3BD25102DDD1181B594070CEB88D9 2008-05-28T16:51:46-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F77F11740720681192B0DFFC927805D7 2008-05-30T21:26:38-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F87F11740720681192B0DFFC927805D7 2008-05-30T21:27-07:00 Adobe Illustrator CS4 / converted from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator saved xmp.iid:F97F1174072068119098B097FDA39BEF 2008-06-02T13:26:10-07:00 Adobe Illustrator CS4 / saved xmp.iid:F77F1174072068118DBB9A084B3843B2 2011-06-09T11:06:05-03:00 Adobe Illustrator CS4 / saved xmp.iid:F87F1174072068118DBB9A084B3843B2 2011-06-09T15:15:58-03:00 Adobe Illustrator CS4 / saved xmp.iid:7FF2245A3B2068118DBB9A084B3843B2 2011-06-09T17:21:50-03:00 Adobe Illustrator CS4 / saved xmp.iid:F87F1174072068118DBB92CA1052A9F9 2011-06-17T09:35:05-03:00 Adobe Illustrator CS4 / uuid:5a29c771-4184-7441-8b83-5454d69a07e4 xmp.did:7FF2245A3B2068118DBB9A084B3843B2 uuid:65E6390686CF11DBA6E2D887CEACB407 proof:pdf Web 1 False False 731.130859 430.000000 Pixels ArialMT Arial Regular Open Type Version 5.01.2x False Arial.ttf Cyan Magenta Yellow Black Default Swatch Group 0 White RGB PROCESS 255 255 255 Black RGB PROCESS 0 0 0 RGB Red RGB PROCESS 255 0 0 RGB Yellow RGB PROCESS 255 255 0 RGB Green RGB PROCESS 0 255 0 RGB Cyan RGB PROCESS 0 255 255 RGB Blue RGB PROCESS 0 0 255 RGB Magenta RGB PROCESS 255 0 255 R=193 G=39 B=45 RGB PROCESS 193 39 45 R=237 G=28 B=36 RGB PROCESS 237 28 36 R=241 G=90 B=36 RGB PROCESS 241 90 36 R=247 G=147 B=30 RGB PROCESS 247 147 30 R=251 G=176 B=59 RGB PROCESS 251 176 59 R=252 G=238 B=33 RGB PROCESS 252 238 33 R=217 G=224 B=33 RGB PROCESS 217 224 33 R=140 G=198 B=63 RGB PROCESS 140 198 63 R=57 G=181 B=74 RGB PROCESS 57 181 74 R=0 G=146 B=69 RGB PROCESS 0 146 69 R=0 G=104 B=55 RGB PROCESS 0 104 55 R=34 G=181 B=115 RGB PROCESS 34 181 115 R=0 G=169 B=157 RGB PROCESS 0 169 157 R=41 G=171 B=226 RGB PROCESS 41 171 226 R=0 G=113 B=188 RGB PROCESS 0 113 188 R=46 G=49 B=146 RGB PROCESS 46 49 146 R=27 G=20 B=100 RGB PROCESS 27 20 100 R=102 G=45 B=145 RGB PROCESS 102 45 145 R=147 G=39 B=143 RGB PROCESS 147 39 143 R=158 G=0 B=93 RGB PROCESS 158 0 93 R=212 G=20 B=90 RGB PROCESS 212 20 90 R=237 G=30 B=121 RGB PROCESS 237 30 121 R=199 G=178 B=153 RGB PROCESS 199 178 153 R=153 G=134 B=117 RGB PROCESS 153 134 117 R=115 G=99 B=87 RGB PROCESS 115 99 87 R=83 G=71 B=65 RGB PROCESS 83 71 65 R=198 G=156 B=109 RGB PROCESS 198 156 109 R=166 G=124 B=82 RGB PROCESS 166 124 82 R=140 G=98 B=57 RGB PROCESS 140 98 57 R=117 G=76 B=36 RGB PROCESS 117 76 36 R=96 G=56 B=19 RGB PROCESS 96 56 19 R=66 G=33 B=11 RGB PROCESS 66 33 11 Grays 1 R=0 G=0 B=0 RGB PROCESS 0 0 0 R=26 G=26 B=26 RGB PROCESS 26 26 26 R=51 G=51 B=51 RGB PROCESS 51 51 51 R=77 G=77 B=77 RGB PROCESS 77 77 77 R=102 G=102 B=102 RGB PROCESS 102 102 102 R=128 G=128 B=128 RGB PROCESS 128 128 128 R=153 G=153 B=153 RGB PROCESS 153 153 153 R=179 G=179 B=179 RGB PROCESS 179 179 179 R=204 G=204 B=204 RGB PROCESS 204 204 204 R=230 G=230 B=230 RGB PROCESS 230 230 230 R=242 G=242 B=242 RGB PROCESS 242 242 242 Web Color Group 1 R=63 G=169 B=245 RGB PROCESS 63 169 245 R=122 G=201 B=67 RGB PROCESS 122 201 67 R=255 G=147 B=30 RGB PROCESS 255 147 30 R=255 G=29 B=37 RGB PROCESS 255 29 37 R=255 G=123 B=172 RGB PROCESS 255 123 172 R=189 G=204 B=212 RGB PROCESS 189 204 212 Adobe PDF library 9.00 % &&end XMP packet marker&& [{ai_metadata_stream_123} <> /PUT AI11_PDFMark5 [/Document 1 dict begin /Metadata {ai_metadata_stream_123} def currentdict end /BDC AI11_PDFMark5 %ADOEndClientInjection: PageSetup End "AI11EPS" %%EndPageSetup 1 -1 scale 0 -320 translate pgsv [1 0 0 1 0 0 ]ct gsave np gsave 0 0 mo 0 320 li 438.027 320 li 438.027 0 li cp clp [1 0 0 1 0 0 ]ct 426.786 310.523 mo 14.3076 310.523 li 14.3076 39.8164 li 426.786 39.8164 li 426.786 310.523 li cp false sop /0 [/DeviceCMYK] /CSA add_res 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 1 lw 0 lc 0 lj 4 ml [] 0 dsh true sadj 426.786 310.523 mo 14.3076 310.523 li 14.3076 39.8164 li 426.786 39.8164 li 426.786 310.523 li cp .193668 .150057 .155337 3.0518e-05 cmyk @ 426.782 40.1523 mo 14.3076 40.1523 li 14.3076 11.0078 li 426.782 11.0078 li 426.782 40.1523 li cp f 426.782 40.1523 mo 14.3076 40.1523 li 14.3076 11.0078 li 426.782 11.0078 li 426.782 40.1523 li cp @ .69482 .6318 .621515 .583612 cmyk %ADOBeginSubsetFont: ArialMT Initial %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. 12 dict dup begin /FontType 1 def /FontName /ArialMT def /FontInfo 5 dict dup begin /ItalicAngle 0 def /FSType 8 def end def /PaintType 0 def /FontMatrix [0.001 0 0 0.001 0 0] def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 32 /space put dup 45 /hyphen put dup 48 /zero put dup 51 /three put dup 65 /A put dup 67 /C put dup 69 /E put dup 76 /L put dup 77 /M put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 88 /X put dup 89 /Y put dup 95 /underscore put def /FontBBox {-665 -325 2000 1006} def end systemdict begin dup /Private 7 dict dup begin /|- {def} def /| {put} def /BlueValues [0 0] def /password 5839 def /MinFeature {16 16} def /OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869 systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup /strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def /Subrs 5 array dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> | dup 1 <1C60D8A8C9C3D06D9E> | dup 2 <1C60D8A8C9C202D79A> | dup 3 <1C60D8A849> | dup 4 <1C60D8A8CC3674F41144B13B77> | def put dup /CharStrings 18 dict dup begin /.notdef <1C60D8A8C9B6E3FA5101D97F0BCF44F7161DEB1E2A84766DD477E7 C8A936AA182F5809A9> |- /space <1C60D8A8C9B854D00D> |- /hyphen <1C60D8A8C9B81F2C3A78A5675B101A923F2D2A8AB56C> |- /zero <1C60D8A8C9B7EF322B1082CBA0BF9C14E99A3DA73C31B9142A392BD3A BC1EA97FF39C814FAC04D646DD2C4A98FCAF9A9470BD1CDA748490BF1B6225A1 0425162B711F636C55967253E957B919DCC3F666292C622E3ED0D587E9E568E3 1D888BB4F8FA5748005C40596B5B6BF48502A62C5A69962DBA8DFCFAE3F282BC 60C6C207F4C9D9AD32681DD3B2E0F2C2045F707B1BB6597DD9D355BD3D00BE3A 5B546505C954A88> |- /three <1C60D8A8C9B7EF322B10FC2B166D2172609B896A28AF8161ACE0368A FE548E0A1C2891C9468F6CF8001203B3D0EAEFD5067EEA36A5DE0843B3FA3DD1 0C10DEDE7ECC4B1F205F8D09B2A1084955D8410715DAE41E60E9BEA3731CCA76 98FDFAB2F6C5BD853C3D3957C1C3A42CED93CA60AD0CBA44CB0A07053B47ECAA 14A0E56199A33A25603E5DB2CC6A470C6EFBC4EF226D2F67623C83F45C93E2C0 2C0A9A0974576F8175C7B2D4E9F1C9319763C8100AFBFF1D8FFF8EB10F2B0608 AF6A0E137303863C59034E23F8CA0DCA04C3BBA93B80F099> |- /A <1C60D8A8C9B64EDFED26B9E21A4F64848088903AC9891CF791BDBC4AB29A CC8B3E8D13924A7DDE35F09AC5F4A8229C87124C732743268600EF8D4582208B D16D82> |- /C <1C60D8A8C9B6079F6D1C46AC2732DFBDC9143C94793529C1940296210AAD 6EE09C39CFC4DAB7C5F3BA33C9E10838E0BC6FC9318A4E57F309EE20438B434C 69AE73A499211EBA75E22A57C1581D93869428818DC700A28C027571D7047CDF A8B017AACDE96DE4B2579EFD2C826A30F6EBDDC52701A22CDD669ADC60B66F32 261A1F55EDEF9802FD4511E0EF130772EDFD708A4113A1EDB1E717E0FA7D3148 51DE59> |- /E <1C60D8A8C9B64EDFFB83C6241DB110BEE5AB2FAD9D94B39ED5E81E7411B6 6E9361DDE78FC667AB91EF9824> |- /L <1C60D8A8C9B7EF3224EC6E192BD0FEC2445DA87B99CF0E03A72A> |- /M <1C60D8A8C9B6B41CBB4B6664BFFC865F56E6FEAFA79E7B90883C1C68AFB3 79AC174B0F8DCC9294E2C26BD06BBA9FD3867F8768651EF4BA798B4F538FCE8F 80AF5A83421F8F> |- /P <1C60D8A8C9B64EDFF4950CC53012D47AE97D5586315BA2F5162B63CEC117 C5379A1B3DB174CB2C739C68916A1E99A346AFF71DBF25658867D9AEF1BF3C47 CE1BA73978E8D0D40E52B85A56E08A1369D85E15B0A0C517291916FF6E61D0EF BF59B4862165C7DEA15B42BE3811C2CAA25C54> |- /R <1C60D8A8C9B6079F62E89B521DCDBE3DC5497B8DD99916239C0DFA5ED4F6 32B33575F4260343AF5DB7D477D12055F49C5E99C0AC176EAD42723223937F2B A15ECAD7751CB6A136B700EE485E38E7CDB87D9465C90BB8E29B04FDDA42609F BC3833B9FB5105619F4CC434003085F449D9FD5022725306B331FB97B31D2952 57B180DE1FD5465D256CCA19301DA97326882845130A5257BF61307ABA64C3F0 B222> |- /S <1C60D8A8C9B64EDFE3D078722A65C31955939D63AA5C8A4945719B5E558E 3B73A676CC12D1E18D93A8DC67C074D6E352D426981DE76F8EC4CFE5DAE051BE 47753A7C234C4B8D7D9F50292A61882B5500CC701F878FE626CDC6D4C322BB39 1537921D673F5AEE3EC19E36E7EFEC0F06A0EA4EAAB6BBA94DDCD11A6A564B13 B510F8C915848233B82F046D854DCD4F1639F149305DC73D3C68DF8AEB47A96A 30E55CF8BAD07FA2825BCE0D675F1CC2EBE61B07B772130E23119250F1EBF8FE 12A2098D9F09F3F21BDC41666CA4A0BB70D5F0A750B44BB93A5FBFDD2BF8DE45 0B277265536F77D5BD6F44FB72FF2E708C60107653AE44BFFB26AFF8> |- /T <1C60D8A8C9B7D8BE16D2C1CA7ED2E06F707C0E9530AE37D06FF7501A595D 3927> |- /U <1C60D8A8C9B6079F6D3F1E4545C3E1CC9D8EF54571065F01BE5A50957BD2 D8AD04D30C23B37CA98B969ECB5CA0D9A7C563636CB33377BB3DEB53D45DD0F3 E333CD69EA3B53D63C91B303CFDF29F59C20776D4DC576C9C080B76AB60A2167 3EFC1F645BF33D33929C60> |- /X <1C60D8A8C9B64EDFF4DFD017B43F7EAB96365BACFBED2D71ADAE4E00FD12 B461A7F13C64E3A175013F8F17B0F966419CDFD1925B86CBC99EE22C73270B3D B758F48A1908F21BEE4A7E0F431996B89DD71E609DF64575A71FFC> |- /Y <1C60D8A8C9B64EDFFB70684E072B8DF628E28D14904BBCFEE7A51F476B6F 96EC861657AB39D7A0FFD2C8F278DA1F84C35526773AA865D18FF930CB> |- /underscore <1C60D8A8C9B7EF3224BB0E94C1F3EA8D5F87D58A9CCE> |- end put end dup /FontName get exch definefont pop end %ADOEndSubsetFont /HMQBUP+ArialMT /ArialMT findfont ct_VMDictPut /HMQBUP+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero 2{/.notdef}rp /three 13{/.notdef}rp /A /.notdef /C /.notdef /E 6{/.notdef}rp /L /M 2{/.notdef}rp /P /.notdef /R /S /T /U 2{/.notdef}rp /X /Y 5{/.notdef}rp /underscore 160{/.notdef}rp] HMQBUP+ArialMT nf HMQBUP+ArialMT*1 [16 0 0 -16 0 0 ]msf 115.775 33.1172 mo (EXAMPLE 03 - MY_STRUCT)sh 37.999 167.438 mo 31.2354 170.32 li 37.999 173.203 li 37.999 167.438 li cp .75021 .679683 .670222 .90164 cmyk f 246.021 268.246 mo 84.0684 268.246 li 84.0684 137.77 li 246.021 137.77 li 246.021 268.246 li cp .123415 .0936904 .09897 3.0518e-05 cmyk f .597284 .512352 .507713 .201328 cmyk %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUP+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /e <1C60D8A8C9B7EF322472FA01213C7AD90A23B536C2309DD40D370E2449B0 D0FEF85A6BE8067F30686F143E75903EB6FA56935472EF47CE3F33433C2F0C8B 6FA51573AE54B2C516F6F024F8775AD6639544E339FC2A328548BCBFD58B0EEA 03B7DC3AB069F44477958BFBFAAC7196D411DF9BE0B78A86C4BC33EC5D7C3729 5284C077711C162623860AACA404F650F8D516970257> |- /p <1C60D8A8C9B7EF322B3B0CFC8FED720BC90E20B208D27DC4B8F11F10B964 70F8B4F5FABEC7F7010781F5077B417FE44279776F2304ACD6E0EA12F436330D C4B79C907B9D28468D10FF9256A7D2CA504E4498D719ACD86FCA89B33C61F556 CF1168C3F262A781155D5EBF0C47D71C584AB93037B47B18D39FE408A49672C1 E63F9E8368D19E113FC95C59A9FA4650E46F6399F2FF256844E27568BA34B9> |- /r <1C60D8A8C9B81F2C3A9694980E415F1DEF5C498473095A24D1BE11285789 4FEA85DB28AD762FB8D2F4CAC5BF8B9C18D8A2DFCF155E0751AF58898A6619AD D420F549AB7C795751D32E8EE6> |- /v <1C60D8A8C9B7A73DB99D94C9412F55B03E92C174A4755E69F97C27D9162B 37724F74F272B140D258652D102C2EAC46833C73F9> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUP+ArialMT /Encoding get dup 101 /e put dup 112 /p put dup 114 /r put dup 118 /v put pop %ADOEndSubsetFont /HMQBUP+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero 2{/.notdef}rp /three 13{/.notdef}rp /A /.notdef /C /.notdef /E 6{/.notdef}rp /L /M 2{/.notdef}rp /P /.notdef /R /S /T /U 2{/.notdef}rp /X /Y 5{/.notdef}rp /underscore 5{/.notdef}rp /e 10{/.notdef}rp /p /.notdef /r 3{/.notdef}rp /v 137{/.notdef}rp] HMQBUP+ArialMT nf HMQBUP+ArialMT*1 [16 0 0 -16 0 0 ]msf 40.167 186.574 mo (prev)sh %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUP+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /colon <1C60D8A8C9B854D0F461D1A979903F917C33CF6EDB0A437B4DDC7150 150B60E1> |- /a <1C60D8A8C9B7EF32244AC11AA6BAAA29EE8C78E0E7206F4A2776A2D1EA7D C8D9A28C62ADE3B609CF5E2EE23C64D0B75055BD249ADFEC7B4224D040D883CA 6747571955349CF8AD17E94E6FE5D0259F4D55623D4DC5C3CB4AC64A7A87DBBA 48B7420D7990F3C261DB9838C5B90BF72B82C8238A1A58FE8E6137AAFE2405FD 710F7ADB95B4F576668A6DB104942C88ED8D01E4E58188F5E32A24B5B964D5CE C10C08F76C0F472E84A0FB6EB5E37AAEE233DE54C212B0A012D3E20F864B2D53 463E221F81B784B6F7BE81FBFCAE6785C2430454DD81C436E0A516BF8C8307B2 879FF86378629C5EA7E586D83C83550D2E732930F7FE3BAD07B86C81E024D177 B5D88A> |- /d <1C60D8A8C9B7EF322407C6655A1B3652DB8522EB511BE6B0855A72D96214 58876CAD1FA22A00635F436A34E23EAFC09C394044ECC1389CD99E4AF1C1F6DD 52305C78619784840FC37A805B0805EF290BC9E049CF068290816CB7E74DB612 941355BCE71CBDD11DD0F9CA29531036ED13EFB9CAB613E9F630FBBC9408EF13 CE4683D92968530F64760C3DF85C7C7EA06EBA8BF859> |- /f <1C60D8A8C9B854D0F47057B2F13303E258FCAEE9E8BBA6E28AE872907C56 63BFD2A0F535ED0EB011F2C2A875E053FAF73E8AA16B1F99510A6812F90D61CF 3F1DA5EF558899A9AE12AAF6AF4568E0F6003B0A2FF6F33293> |- /h <1C60D8A8C9B7EF322B3BE19FB964E037672C8A279BC86F7B9BF0C8203E13 1450D56E388301CEAE43162551FBE05CABF94DC3B5DDFBB4DA55D11470EBD41A C970CEE2D2EFA88D51157B4EF5536CB673423CDDB06FA774D27105AD2B1AC2DF A8> |- /i <1C60D8A8C9B88C087228DFC7C7ABCC71B868F57EDB285655227000619B17 1C8A80AB> |- /l <1C60D8A8C9B88C08722AD20D19A90F9064193C8D82> |- /m <1C60D8A8C9B6B41CBB5F87BE20C872DF59FABCB36542419CBFA3D5519AD5 BA8076F32ECFD724B055F72CAC37BC47239ACC8B0FB48B8ACFF099B97085BD99 C333951D0338D27FF6AB9B3F3C69320476BA0CD4F9573B79AD358A91B0176AFB 9AEF169308783E9C6287F18E6E658AF5AA6C9688B500806DA169A1B21069D55C 54A2FF607A6A38976171B08665C3ACCAA84DFB970D01180645CE5CBC48DFE37B> |- /n <1C60D8A8C9B7EF322B3BE19FB964E04D2DB06D4930CA5D8F41D2EF3A285C 0BD536CD2C57668EB9E30311BF9A2872DFB44F2BF2A4683B5D66FA01BB1CCDAD E9C8A9EE2CB010715D3D6DFF0E843CF77C87A07D1DBD0482675E3CA1DAA2A520 3A8015DD09B7CE> |- /o <1C60D8A8C9B7EF32334FFE7884F6C3B903D000D9FD76C2EAE8EDCCA90A98 7875625CA0393015EF6761BE1C3B6D9E9DA4BABE1DD313B783BCBF8F620C846C 7F6361946173FB7A4A6BF94EAA0CB4947DD1974AF371F3C211E584576DE9AD79 F9DA988E9E531810E3876F3029BB1D2ED366525F30E48DD7CE3C9B66C5CC099F 518C54BB58C51D6FB6D0C8> |- /s <1C60D8A8C9B7A73DA057E90C9BFBE0FE301E99CB771FA2F05368A6342B5F 80456D91458EA2F3CAD55CDF89BFF34EEB39D7DD325B057E2BF0E9B878C214E2 BD1BD70DCABE10E0DC8EBCF7B100B55EBE94FB0F17084E21EBD279B324AEABD9 6538911D053BE9D7ECBF43F934B1033C9E405BBE31E7EDB643609C8D779046E1 B250C3CF05E6FA4787649137D90F47F85972A6603BA900DD7CB710E02662DB32 87CB26D7B7AE794611498865FC85A28083D2F6C2DEC302D47619A4A577C5B843 5558FCFE71A1BB6783AFD5F58B6D2C03593B3F2297A66A7E6D13C1E321C57F41 72D53C8FCAF4D28F2B78D3A4BF03> |- /t <1C60D8A8C9B854D0F45CF665C7276F8075B54A4ECD6470F395A458CA2D06 5152075036EEECA213894C1EA0DACFBD370590F4B831924E5BDA5281442349CF AD2545E0750C3004A129C25B1EAA8DEF5DA8BF1998E80AE266F591E64CB5127F 5C42C88FB43C> |- /y <1C60D8A8C9B7A73DB92EFAEC912AA9CB61EA2C87B96577B4D13A11140AAA 18C6E226D96ACA3DE3B427B0A298EF106E8BC0FCA1DC8D81AF2F08A42A0F5836 B6230FDF576E37CE129EFF9730F23EC10CF5ACA4D4CA70309E71B89A944CA734 8AEBF55FF5ADA9F61B4BA14C9A2301A8C53EBFBE665E1DC22E> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUP+ArialMT /Encoding get dup 58 /colon put dup 97 /a put dup 100 /d put dup 102 /f put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 115 /s put dup 116 /t put dup 121 /y put pop %ADOEndSubsetFont /HMQBUP+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero 2{/.notdef}rp /three 6{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E 6{/.notdef}rp /L /M 2{/.notdef}rp /P /.notdef /R /S /T /U 2{/.notdef}rp /X /Y 5{/.notdef}rp /underscore /.notdef /a 2{/.notdef}rp /d /e /f /.notdef /h /i 2{/.notdef}rp /l /m /n /o /p /.notdef /r /s /t /.notdef /v 2{/.notdef}rp /y 134{/.notdef}rp] HMQBUP+ArialMT nf HMQBUP+ArialMT*1 [16 0 0 -16 0 0 ]msf 171.555 107.242 mo (last: only valid in the first element)sh %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUP+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /x <1C60D8A8C9B7A73DB920A1A3B81DE7234ACAA5546B4C65820CF3C50E1629 C5A6423BAA34A2ECA8C7FE4B71726AC6704CC23AF1725AFB30D2892FC1BDDAFE AD7BE7BD65F1051699CCF4B0> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUP+ArialMT /Encoding get dup 120 /x put pop %ADOEndSubsetFont /HMQBUP+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero 2{/.notdef}rp /three 6{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E 6{/.notdef}rp /L /M 2{/.notdef}rp /P /.notdef /R /S /T /U 2{/.notdef}rp /X /Y 5{/.notdef}rp /underscore /.notdef /a 2{/.notdef}rp /d /e /f /.notdef /h /i 2{/.notdef}rp /l /m /n /o /p /.notdef /r /s /t /.notdef /v /.notdef /x /y 134{/.notdef}rp] HMQBUP+ArialMT nf HMQBUP+ArialMT*1 [16 0 0 -16 0 0 ]msf 273.211 144.965 mo (next)sh %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUP+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /b <1C60D8A8C9B7EF322B32790B4C40581173F160A628925C2B3464303D1D06 742E51EAF8B24CA2240525B9E37D08039C077561F794D203DE8C21652F0F5A81 A2CE84BC5F560E6CA22CB86602E80E4BBDAC611F34E85189D165B97A2D648CF6 26A92F4026AFF0CA38E8E165B7E956CB11B132485900857B09AC55401998CADA 1EAAF79B76AA2B52CCF0307B360E6D> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUP+ArialMT /Encoding get dup 98 /b put pop %ADOEndSubsetFont /HMQBUP+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero 2{/.notdef}rp /three 6{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E 6{/.notdef}rp /L /M 2{/.notdef}rp /P /.notdef /R /S /T /U 2{/.notdef}rp /X /Y 5{/.notdef}rp /underscore /.notdef /a /b /.notdef /d /e /f /.notdef /h /i 2{/.notdef}rp /l /m /n /o /p /.notdef /r /s /t /.notdef /v /.notdef /x /y 134{/.notdef}rp] HMQBUP+ArialMT nf HMQBUP+ArialMT*1 [16 0 0 -16 0 0 ]msf 267.787 177.281 mo (both are )sh %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUP+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /I <1C60D8A8C9B854D0F463D3892D665712D6B7D6A81E> |- /c <1C60D8A8C9B7A73DB9D8FD6AA4FBAF8D65C36EA1D4AADBD389F972C0EDCE 9E7F36285FA93A80D3647871D2CE5AAAA6A6A370DC54E1595FB6AAB3E389C9F7 BBBB85F787D6C418B35B940450E5E243895ECFD2205F51B2D154CFFECF34148C 344C1EF806F9AAF539FB961E3EFAF6353381E833DF7C0542FFF27122A28D3654 8FE63FC8465B1B685766E782F0> |- /u <1C60D8A8C9B7EF32240889FE90FF09F794E92023A18223CCBE3629AB7F51 7D090BF7D55C0A5A8EADD9BE381137FE8504E8B2DB3D16839889E327241ACA8F 992A2BB9AD2BCE57ADB306CE2789439E67A64C32BE8669C197F5851EE3879399 0906DA8D7F8ACFF6D70790F06B02> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUP+ArialMT /Encoding get dup 73 /I put dup 99 /c put dup 117 /u put pop %ADOEndSubsetFont /HMQBUP+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero 2{/.notdef}rp /three 6{/.notdef}rp /colon 6{/.notdef}rp /A /.notdef /C /.notdef /E 3{/.notdef}rp /I 2{/.notdef}rp /L /M 2{/.notdef}rp /P /.notdef /R /S /T /U 2{/.notdef}rp /X /Y 5{/.notdef}rp /underscore /.notdef /a /b /c /d /e /f /.notdef /h /i 2{/.notdef}rp /l /m /n /o /p /.notdef /r /s /t /u /v /.notdef /x /y 134{/.notdef}rp] HMQBUP+ArialMT nf HMQBUP+ArialMT*1 [16 0 0 -16 0 0 ]msf 267.787 196.481 mo (Eina_Inlist structs)sh 307.06 147.277 mo 313.823 150.16 li 307.06 153.043 li 307.06 147.277 li cp .75021 .679683 .670222 .90164 cmyk f 242.269 180.352 mo 87.8213 180.352 li 87.8213 140.977 li 242.269 140.977 li 242.269 180.352 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f .25 lw 242.269 180.352 mo 87.8213 180.352 li 87.8213 140.977 li 242.269 140.977 li 242.269 180.352 li cp .75021 .679683 .670222 .90164 cmyk @ 139.304 140.977 mo 139.304 180.352 li @ 190.786 140.977 mo 190.786 180.352 li @ .69482 .6318 .621515 .583612 cmyk HMQBUP+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 133.944 166.703 mo (__inlist)sh 242.269 222.766 mo 87.8213 222.766 li 87.8213 183.391 li 242.269 183.391 li 242.269 222.766 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 242.269 222.766 mo 87.8213 222.766 li 87.8213 183.391 li 242.269 183.391 li 242.269 222.766 li cp .75021 .679683 .670222 .90164 cmyk @ 139.304 183.391 mo 139.304 222.766 li @ 190.786 183.391 mo 190.786 222.766 li @ .69482 .6318 .621515 .583612 cmyk HMQBUP+ArialMT*1 [20.625 0 0 -20.625 0 0 ]msf 131.926 209.117 mo (even) [19.3081 18.1499 19.3086 0 ]xsh 242.269 265.121 mo 87.8213 265.121 li 87.8213 225.746 li 242.269 225.746 li 242.269 265.121 li cp 3.0518e-05 3.0518e-05 3.0518e-05 3.0518e-05 cmyk f 242.269 265.121 mo 87.8213 265.121 li 87.8213 225.746 li 242.269 225.746 li 242.269 265.121 li cp .75021 .679683 .670222 .90164 cmyk @ .69482 .6318 .621515 .583612 cmyk HMQBUP+ArialMT*1 [16 0 0 -16 0 0 ]msf 159.928 240.785 mo (A)sh %ADOBeginSubsetFont: ArialMT AddGlyphs %ADOt1write: (1.0.24) %%Copyright: Copyright 2011 Adobe System Incorporated. All rights reserved. systemdict begin HMQBUP+ArialMT dup /Private get dup rcheck {begin true}{pop false}ifelse exch /CharStrings get begin systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if /B <1C60D8A8C9B64EDFF43B9E1D43B76E7425A98F23F483468D5596DA760F15 54BAD296AA38A849FEE692D78BAC3B162E2013F61317550246D6F77AF27886D4 E04AB44C473130F6FA990DAC6640A48EC2A80691207E5DDBCA7196686E7CD5C9 80FB78081AA13952C8D8F3373FF54323A4853D0F014ED4C5A1024912E545AAB4 BA7F36D08386B7A08B38C3035C03383BB204897FB23E6B597B4E784900841F18 58E5E1740AFA815171FE44AAE751E7961222B185E93D26B02E1EB5C1FF9174E0 C619907BEEF9FED49CD2B96F29B7B01884> |- systemdict /gcheck known {setglobal} if end {end} if end HMQBUP+ArialMT /Encoding get dup 66 /B put pop %ADOEndSubsetFont /HMQBUP+ArialMT*1 [32{/.notdef}rp /space 12{/.notdef}rp /hyphen 2{/.notdef}rp /zero 2{/.notdef}rp /three 6{/.notdef}rp /colon 6{/.notdef}rp /A /B /C /.notdef /E 3{/.notdef}rp /I 2{/.notdef}rp /L /M 2{/.notdef}rp /P /.notdef /R /S /T /U 2{/.notdef}rp /X /Y 5{/.notdef}rp /underscore /.notdef /a /b /c /d /e /f /.notdef /h /i 2{/.notdef}rp /l /m /n /o /p /.notdef /r /s /t /u /v /.notdef /x /y 134{/.notdef}rp] HMQBUP+ArialMT nf HMQBUP+ArialMT*1 [16 0 0 -16 0 0 ]msf 159.932 261.121 mo (B)sh 87.8213 245.434 mo 242.269 245.434 li .75021 .679683 .670222 .90164 cmyk @ .5 lw 253.987 141.299 mo 260.55 141.299 li 260.55 222.695 li 253.987 222.695 li @ 96.3291 170.322 mo 37.4717 170.322 li @ 168.928 88.8555 mo 166.045 82.0918 li 163.162 88.8555 li 168.928 88.8555 li cp f 166.043 147.188 mo 166.043 88.3281 li @ 233.139 150.162 mo 307.587 150.162 li @ %ADOBeginClientInjection: EndPageContent "AI11EPS" userdict /annotatepage 2 copy known {get exec}{pop pop} ifelse %ADOEndClientInjection: EndPageContent "AI11EPS" grestore grestore pgrs %%PageTrailer %ADOBeginClientInjection: PageTrailer Start "AI11EPS" [/EMC AI11_PDFMark5 [/NamespacePop AI11_PDFMark5 %ADOEndClientInjection: PageTrailer Start "AI11EPS" [ [/CSA [/0 ]] ] del_res /HMQBUP+ArialMT*1 uf /HMQBUP+ArialMT uf /ArialMT uf Adobe_AGM_Image/pt gx Adobe_CoolType_Core/pt get exec Adobe_AGM_Core/pt gx currentdict Adobe_AGM_Utils eq {end} if %%Trailer Adobe_AGM_Image/dt get exec Adobe_CoolType_Core/dt get exec Adobe_AGM_Core/dt get exec %%EOF %AI9_PrintingDataEnd userdict /AI9_read_buffer 256 string put userdict begin /ai9_skip_data { mark { currentfile AI9_read_buffer { readline } stopped { } { not { exit } if (%AI9_PrivateDataEnd) eq { exit } if } ifelse } loop cleartomark } def end userdict /ai9_skip_data get exec %AI9_PrivateDataBegin %!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(R) 11.0 %%AI8_CreatorVersion: 14.0.0 %%For: (Marina Proni) () %%Title: (diagramas_01-10.eps) %%CreationDate: 6/17/11 9:35 AM %%Canvassize: 16383 %AI9_DataStream %Gb"-6CNCfDD(,/el9Fcr,,C#8ZLV.`>/s+&6QUPrDp)$l,[4TqN7eYqfff'oC2\OmG#g> %^UX4oI.m9QYO:?#Dt+XmGP(L9\*r1iDukH=:LF+t+9/5\_Cs6To;R['^u'9LF\_SH(h84@g)+Qg %qtWJTme2F&Dr87=H2$mgrdXl53qMLmp"dl^It%84<5eN[Is^qde]k^1VZ0okqtObqds8_fO20gN+:5fJCHdeX-tcs^6,"..'j/`& %IBQH%m@RbBrp)4G[[t7HJ+rI+8#GHf?Tr+[n(t_Sp>u;TdcNBYO)[d).?=>,hn=M^qrSF`06*:-Jf;E$l\?:cYDBE7i;1t5;L5,d %oKTn&mr.(\E;L,inDVoE,ip]*k#$U#GOP!lh>DBlk,i$,hu2^1mJZJqrgp]kaoq'9`cN!BJLi[dZ^0$BQjJ+6odlrm^./,Y>"!rj %'___]n69:Xhn471_oqpaL02L&Be7I\J,ABiMpUIg_l3gqU@H\AO^7mek`Z %39hP%n^YMfr&aeDIKQdgIm*_YOP7[g]RP0Mq\F.a\ijj%ieKHOJ%e&REPC)=G^9/jIe377(=)jh(RMr9042E(\N&A,J,es1ipYa; %I.cLmi]#S-\G1]iEPkLg#hoM:`#E*ImpFoMgVlm*_scIoo&ko.QJNT6DY_gepZeloqNB7@j>JYsS!V^gT$Rua&)?l0gHN-U&(^H* %]CMP_^?;B^Hdgs5]sW9.o>;*JD_>?]#B+N6SccYZhS-UMo*S"Xp@^N;h8Q#C^Nt&"mc*oa)l1:8+"uQ3]:8[6IsM8tH:*T2Ye@Pk %rp]b3i05>@?,5HLEJr$=K)8rJ4268ipYtoDMr!@O2fE'Z]_uh(d-Fd%hql&ZJ);40h`orR?ei>%K83/_rVPQuMskQbe][hor;#dC %mIU(Un/pBB#2o(FIsHP@('jZpiEu%,DZB,"X.)3I&\./go:&hNK"^h?/E)rigMZrY*iAf-mc!!&g[F%mIk`67`kQn\,CfS/jR'pH %-Y"OJ-@[$g*frn[?U0r1DXZdB@UpT9+k;&r:AS%I1[rB,5JKSj0qoQ1s3Z;lrlknuki)K0#O3b?'^I^VMpMnLhnOgF$[][U04)P? %*aTtAcs6>R9U]aNIKpWl*u5\/cNO;rnu3%JUd=oBBnm= %QP](,Sqt"JkAQI>62"6`S*..$GY.La*\MnhJ,dF2S+h-1DVi-\Fnfp*qp-))DrA=fpBM>+jaV[PqmWedr:94Ci0V*YOI/)a5CYq( %ig4<8al[H0pci%4kX'd<]>F%:5=PW.:L??`rL$K%kd#J+F$H;(l84Ih,31h+qosiNT9^aMlmQS4NRu %&E\N/$eG&6q"0K2hg^+VrP,-+qr7:*LJ,ABerTdhHJ,_5#I.uXZ:U`S1gp2Dhqotc4 %2[HWpSGc[mrMOSk^O16PIe3.'00Y0t<2BD\2eN8KQPoSb-#>!E]n*>VnS@W`%f866X5!)/:[@I)oPjingK+ohD`c_sY_pa*iTADN %O/%Ghoo6jSs4"eJ@C.u^IKX3rUsN?3(B8G9:kjB(s3L4phpMo,^U[tYD8.>*emALW %mQ]N/T_7>PJ7&:g`dW18>:JeY0:s?`^ldO/QhYcs_cS1@?G=,=r8]!877m=Qea9h1J`_%J+`'[Y&Ap/O&P;3YhEK`.7apqpgE1?? %h\+4Y5@.:3D[g,@Z0t-=2rB!J-H:/9^N[Hm>Em=8J,Ss)kPJ?LDpNk;rrf=&i*Qo5_4\RGU)0Its337WIfZ-#VD5tei2P`>f&0#L[KKPRfQ@K9=]752JcNDl?WMn?K[QgkES6bH0%Td=B6;Tbu7R\hp>Q?Hu70%1Ot %LNF"(#W_%3F"RRIFu<'@c7SMU5%!HQI)sq8)EJd//?.].8fdmQ*R+5lYkT["T0-rgPQ+-.n=T1Y6kcF*s2bu'5DqYSriAN"$IkR/ %VhokkM43qs5^tLsnUDgfrjdgI$Aa*IY@''E3VGCcrkmV%f@SW0l`9?pli$ME]"p10:Y59N!&;oE]FNQRiVILQ>TGF-qnqjK%eF*i %e3c7W6TW.Q!6js/e`#fYlLJ\>[2Z:&eU05[eZ3_UJb8I^5R4GF&!p@aQ^@Tmh.=3g0;m!>=YB;W\r'b#IFBtn;5KAqAH^aU!]c#qs?0Z!UdB,$mqVF %m(<38(fRF'9_?Qu1jECHbFTd5#TQ'j''?#'gXf81`RdLRL6qGFWQqp!ZPtAJ8d/f.iZ2u1@;!'TIm*Pf_<,=YBF.7a.k5BZ61PF5*h.W(]csfWW6jIfU])`@FCV.#n^tUiH`$![9#!n?U%(VN+(eYo^ZYL-jr8/oP %K".SJ,!@(&i6P)HB6q]#Z4a!F-&FXuT/6BO*J;+No_0F+^(`#B8Wr]q*:uO""EH@foYBEEiW)2nE!-bV8B.BgS`%h^A8NQ:M\:50 %&f5-I!CYX!FpV\39ATf7[t*PA+FE9AU^aIm?9Ub)U_g+VT\U)+LigQqWlPr@?'+"6AK9!OlP=*j$Kg=\An6Zk@>:W[-EG"JAb[No %2Lo>N``3?:HO2J;EWRr?0`Mm_!;ReS^]MU)CL"?a24)*C4.*u)fW*LX!0:^L[0WQKJI`:,O-dYO46Y*dHs:#la=u$J;_Wgi35BjR %KKWiN$o,X9C+ca0,bS`L!RGcmf/,Y4*[0SZc&Ar`/2iVLQR"+7q7f'U4*oV2KY&L=>S9!U$Fll8"@=u0?q&H]8\F%=P*!@(6&VK2 %MSq(R>l8M!OPF[uHVsX6r2h5s;$ps!`!N>k:HX?c$E`[tM<-6#bp])Z4JRFE/A[?;K-O1he7Vn]F8i7R3q`tP_=\J6Z@0PMq7_:R%R3Yi9YjX>j%JUt)N$k%;HGC5lM=D`k23_q?'ZW,4S.D7sD78#eG.A3FpL'F+& %;1pZ"@mPb_,Z;W?%5a_<,JnC0@P".&img,915sSprKSh\WoY:'PHSn2gn)3+3;\IQ;,n]=s+Y6EX;GG#@LA)T,NaAA6pc*$$tWWA %J3@-m(?.>Q4@]Y!Y:kAj4N&pHWgs>7:$G`RR`a=JqF/IhB-RBLc0ao3[rbXN49eY%7mpf&MI%EO@EA9pC94MCZIXnZ.ql)k+2Uc4 %co0Ni$`p]=B%d0.o=H3'$AO=--c%!Z9c,eK.hM?"5hKHTS6uH>N?!+bct3fa"mecMaJ;@cTQZu"JAqY0=!]XJ3dYK/hhO&9 %0E1DW6<%(?"9ANs?_s>8G[D/KVNKsrO_S":B$+Xb7c8./<*1084<0@JTk)KDY %g#SQTZ$EXYS1$Io(=T?GgX1u"(5diIrgg4-JM,H]haPO0e$D%#Gmm\VZ:mo'c% %q/bf2>5PIIS]!f>0)f!S^8np;>kL=^/?:65Hku`^A,fPme]**Eh[3HAV>Yfk-IP2gKS:EuG-b;r"8me2Ai6(.E$jVuSncU4Slm-6 %(YR:?K6Rh\s-"B6=J+8Qr.jDrXMX2feGqKD#3S-:\JdFGp'4u>AEQX&N%DUHgD)8Ain?fUb$;M*m_#F!!i84,f)mcOZQ=#uB`MK" %I=fH'?H"?iP(dT#?%Otk/(l0LD%`7Q8DYV(OMnAY$t+LX20o^B7uK6e-!SK(23[R>#;c&(5n*^3.c;V1@OKj"GE6b^5Y-B4# %Z)qYTi>W_\HZAI.miZ[H14#D\PGt`Z]k,E1AMC$Mg5*t-d5fRlM8mlY*HkOI7&`KO_YO#O6PMUOH0c5V=p(:r'aQhKW/S?_F< %j^nbSdJLfST:e_("#@om/!gfpQ*OPr)3WcR.(&"'LK4ihjC5%bM@Z(r,6HB5E;`1j5Y/Eu<-Zuq]Y@=@rL.WMFm#MQ?%\\A0>mHN\."N:.SE7:+MA=uDB%ooL\<5C"Y*(X2,,&SBMaYl/BmIeZ %i2)!O_U:'SeUVE9f)`"*6)6V=0i'DrX%Xs;-r2.0]?"TQ5q&3e\`*iK%Zq5JmQ1V0D %a?eGKW/I2Zm$9%%GpXlEI.Xd=calTNFP*nh`dM&.p':+jN.]gV=^2c.AEceYF[n4];UeY=@^$q!dd$.U.]]T:E]:5:$8[`iK;u!t %D',jhU?[UT9JuKcVG2l3fKBUE*7mrW]ccD9Xpd$.-`pC0p4>ES5/j/;K7$V4X5BN0k]`>POF+6r%GjQ+G2gB6-lMX0Ogg>rJ'h)\_&PS_`?R)nlKCeram/:sTCB%3WIstnfTk`mWO"Ta]h?m9jFL>DceJ?,TNV#,1"?Ict-UN4nQ\0)r\omN-dOg*[$e[#^8N%/TE*:TFi0KTYW'Rioh$Sb:-eeb"@cHLVPl47c^I&50Ms,d" %A/)uKVGO8(P4U)":0t5K;QuU(`1o2\`EY4oIp=['kPb=NnB[=)(g]&m85ZSe=]=iiB45F@bf^a[1a1+L+s^.3019 %F>p!C0o+8Cm`)Vg#)L5SQpJDBWAPAt)[;.pl)-F%5nOK25RN&.uRZqK/[FUrCC7]fn\PGnT%7BD@55+)-e>l\)* %4i;u4*LoQJATiL2mDZd]7%\2ebk?,c.W5U\1')*Y.>ur-`6lR+]m@@=BHcb#OL(e#(L_!^Gf`W+R2E\)7.5CF#CC?rQ1KH9,a:r(9Vi^L_F/-9D9RA %`RaJ6/D_]`!HndJ>C^SK@[;!$:4co"UksX?nEFprKI9$?_BKU=:NNBT5`^^87h[lq-(`)#Nr$sT39,*/.6qA]JOUKE"3SV_0RsE? %JP&J4\1*cL@/s#Q\VU%2^_eNAUS[PfoA7*&!aH]M"O&SESe7i?Sf,kAVLfs53J=@I8f3jk7N>"@i.%rMo7ss!0Pbpbe:PBF]U5DoYDj5MCN(m<70l@Z1.G>fs>,HO%R>@67@S#;57 %&QX]'a&?7`:Np,P0A%F`U5"`fkmXhWhbg7A/qV-UZ'?c@#31TY.Y9#hAW5X$UU,bdPeh@_P%0/Xrn?BIr#*6[V+Z`J^J-]DE(%4< %GJ0h?%-8?_nU^V+O`F0rCigM;.(^HhjD[6,[CF"%7H,G:?3=[ag<^bK]J/h%OgD)sZl&9LHFKc^%DYR!e4SfIC;:kR`erioC?2ol %Y8-o7-=@l'TfIXOL;>\0QYPU<`RBD@\Y9_.!>P,!2]jU2!bJBdg%n[\01j)d(n&8je*t_s*'TsKpRrEn1FVYGGj*2f/pTrcGC8D1 %:YXPJmIZ@.iCM,:B-uudl/nR42WqnF>K97nX_X!-`k3d_`)dRoh'e;b!df"TFU54A32i64R[YRFQ6(bY`!T;AnAGZ0XKZ+:k@XQm %0f:S;Z;'uebkEBXkL9%L^,1?,1\5_&IJEd^(Vi-0qj0P&hnGkmX(0L_Ps>O.@l*g)aAgq %ed0p3pPCQ$E'Dl.S^$d%P[aOfYHJOcf%7[.+[;Adrc!@:F*IN@lj!Q^_)_ZN3=7)k'T\5!79hub0HIQk`Ge!Zs"J9T8sl[@6Qm#I %fh:/c6FP>3_'"PA\a2Mka+Zgh"Endo%$-'-BHT]G7.T\m,S-@u>l17.&B'8gYlRgY(b`88HEIMPs7s`>U[:1J3fmk>bNY=K`OH2PcB5h'j6nh9FC) %#5_tR^J%,dDNcA*!?IKnOe7CRNATlE07K6=!O%""f/o,0LIL7jccLpLbhqH_c^gPt6=]NmbA[fJ`@ELW.5VgDYRFmAZ1(nlO5aKd %E3CLr?2XDjEeu;N1+_Fn?.G*,`:dl"RQXVs^PG>*BS8FVJ-6[OYR!kbeI$Jh\:f!8!gS_tegU;aGQPqcZc]t_ATFm5^p[9/=WQ`# %,Q0I#:A*GbroS$(_sX^g*q7>bs5;2tq^MR=SA1]g0@'E"XM2pQYWV;skP^0sSbFcp;qT(OM,.]5%p@SDBlPO'd^G08i&.q_BWoJ: %UqG(t:On@a(M='FR'71B0K4+a=o09kj%>P+%m*32Q:]\o+rq6elr^BP)7NaKN8V?$XdVj$JtMX/%> %Nh)5Lff:Y/S$e?*MQM5_Xa>r-H]"s&3%I,1eih"'IK"^lZ#rjIF\bjkJ)*sY:TX'($;[bm`!VRFf&?&oa`2(sD;k2B6#Z>bk6=bj %E^!qfgQr%?l+:;:T"!bBH!?a#4c\QbMTdT1k!B3SL %=L5lLnGgW;r1P'D[Ppj,oX]k;O_Z+(jfE!>p^t%@WdhnJYlG@gS,"e"n7QVp_]qA(0A^5oa5Wf$Rg_e5IAlR*Zj\%1:Cnb;pA/hj7tfG68A_KKMpQe.-e!+-9gE-,=SEX3Ulo[Whh9Y %C!M"$Uj-tL*qKu9!8H+B6KP_<(r.ido].6Gne"+^LnB(5:Hmbc+7YPUprQ&(jnN!!,2CES5*`)p1G.%CL7Z`@X$4+0X1m"s^X/e6n^)1p'Y`d4QqWFlO.X?2a7s.ibqAPkF,&k9-!,>_=E9)M %54J?E-ToNZHp?U5SBuPtEIElHP=mL+jZ7*@h/U'@1O&sM1biQX(l))qtV/\;kX52=t4F2i>>s>T" %pc>h+X#p7M?`#Vs,f!e(*#tU;UB3^3s%s(V*#AV`+g@PaS,?c_:(G,Bsmj778Ye@nB(O-gF;:e<@@<-RUptXHfG#3qDNps$l0L)ud$mG_6*BZ,?-3q1/:g'IG_Z&"e_'oB) %K":bA-%=al>sH5e5LP:lLP_ScC6Gg5*p?pn7X("`\rYpX27e\k_42QS0(AuU]RFCeMan[k3g*l-f9@e:Q]2]lBEUk%2iJ/e(CUp< %d)@2q6tR]"$WeT,$W\N'&X>o0&lnCfjdh[83'8N](F4Cp$J0E<`8\#i05a8ZV%E>F2P7oB42:CGK:_8o;KAAJiIe;P7i[F;^Z+6n %NoA0!k?)u((]MA3"*\fKE\kakDnd;VE;f1p7LjVCmYC5F*TRtGE=tep99e1>l;:>Cke7*j=OBbN.9Qg-:#gU9c;p@[!Ch>aR%\Qa %2\SB[_@nF^Z,./)(b9u:9s9;ZY1ja^!6MjF?e_WAk;fsHKu$O\p?+n,I9EhRYM$FKj5$4o&BTqT;t0nN'T4&F!"'>U/TTpQ %+6eVR5<$uSmTtgOfq2H58l&K2K9ut3;PK&N81d_^D77htq.kRE7.mRTArl1h7.jiMj]EfD:06%q,/hTCDCA=C6$hZ)`q-3V5pH(9b0\icogdn[L$8AL4[;e^_\<@Uib' %CJd',jSBt6KHZU9raqdQn,S\c6U\[edg.N^reQj'V7Iah#kt)3"O"Sj9RO^ds+l+/Zq+-V/ %-=D$W(1G=LiU-9V8`kGJUg.Qjj80Msd=nE[H(\+XqcMP/J96ft6hMElB]cq3&T[+#g^S:@l9Js[@Z0.R=H8)1n_#t`C=,Xl"(!*j' %L^gOR)bf>KnuaQdCp@2[j4*(Vq^gS%j/W"G6/B4;IX:aUi]_`@RcAWH#7^+.6c3-5+!92K_rTjq)a5=EEbot_F.[/jI;FGOkLs2` %)rC'5YrLLsD&fBdA3]"2-'0gc"=k_EAdHQk;bfe^5=$qSOj[._7??aIoHuoE2_nF\,jCoB((8Y_b35D6p*"(9SMP;g._3,6^@rLkr=um4?Y)`dk@k'Z_c**[JZL.P=(A;]^K`Lk %&EWCL2ETL5UI'',WI>Ir?R7m74=35mqUsKQj0&A'"YBWn[pEpYe7fp:d;4.;P7[8JG[m0cU__IjprVf^%`&LPL(MIN>Xp9aT3%c!1Uc4')H@>C[lhr[(^>Mg-Dr`P@9+T#' %mB70[7ia$m=Y')B6D$:-q30g05:Lu'kH(it#>BSU#j/%Yo1*Me'!B(DL-Hu#kpc;2?PP'f'Vhs::@)Q\S$oac'PQf9b %R[MB'R*DMU$aK>%XK0/IX01i5/65)hrQY@6BRuCocLMZ*1\f9Wn6]WLnXocJmI/`&);=*'/Y5+-/Ri2^kE7q?Qh"ClkKotIoT=q5 %qV1,kjpo.W.[6\BRC=1k8TD[sntj;H+Vk1JJ?sZGVZ5AVrVs_?\&H\E)jkGO_eLRjTi'"&2!3$u[N!i-2o7B'ma_'7 %^0S^=Cfe9X`!*($9u$>:?0&5i#e#[O=[nkT#a7(r@S7IK-*'QLIqRLkE+BP71+XVFN:chkL_Y@`.VU3"'[bkLVK-\!5/nWh?[c\3r01bI`ia<)pMRSdO"!hR:MNL]g-\,U1eAWE*]`G2H7=eT4"T1cs^V??HE %n*TM\O$:GcjKHZ$kj+-c*^TRp=,oG)o^GeJIooQ/>-[d2`Fee>&(i)l\k[C1Q*?J%K.F-%YrXam5*bL4Q1_&CbgbaFfC$@g9.U?\ %_=OMTA:b>(GO(7?@S2j;gli*;hJ5\6OIV\-Tf7>)?*7#0*)OS8R[;+\jnmO8B!BWfL@&A(CIW=m,fuGtdtWjOR1,TT %@6KrX,40p'SQ*d"F!oAD=J\u#Z^]S@5,G,_&,ciYZ@pR?W_tI/lfVPWEm9.l?QemiH]X8XZ*5j.9kbb6TQ62%g/H"H4'!6c>[sZD %84SP6mbAsGdPMh!(TDjgK_!3\D_B.mdu9;5ph=U)-8AgDh\G<2W'tC=M6G/Lm$A]0Y;jI.X6'#/JRe3S9B+]gQ,kD%iJ::g=S?(q %.@@Ga=?.(CnfIW@]!o(o&hZChe(gkW3VV`3FMgVOUHXsEaplmkl5Q01+b;('JFo;I;Y(,ETlg&R=8G;#;`GU"0' %FP[CYM=VqaUt%TT_/E0Y!:*JEl1e86-U@E-@n>+Ea&rC*Ei\3?9nZ=?YA6?MWp'$LVTr\_p/:A2R/C_kM_5]eh'<_=:IA1:M^0>< %l^:=gU$;a%lRdK(Z7S3n/^HdJ"+Ql1I06W`_ %HQNaeNqorL/O"Ouq"B=.,:T$&^@C2R\u't38!W8Xrk!L;&[/WRHID"A-ia!@2V68J2#)a+FZ7>$'3JP_@*# %]((;uSNe%D5h>Y#m-[>D30'%iW+4mcni2\943b[.Ml-e"Z]3\:=7Fk/jT,8@dnGJ?p!X#p89cE82)h0DlNOCB1J,2>J>Q\gV#oa3Y6Q5T9['@s-]eP\(Y4 %ZS_u6:.ERN\0aY$j!\MsU:Au,86ira'Vp9oI#XZCH^oFk!=P\>I=;h^JN>pd%&C_b$EXI&k-KEGP#%^@e?%?i7Cs01`j-WSa]q&J %)55E`*]PN@itNu^^[!'@?8[aou*KB-b9Cl78H24.DJn8WSnppe&<\%hB5 %M)!1_]BaLLa'thSlO9.lak_6-pQ??_;X9.<;%s^E+1-ef)`]=:<+[hmUOdQ5cqFV(&`6hY9]YQ8:=5.!*auS+iR6)rBrgUVn^MQI`o%LE%-3S`-s2Q!-*l'Bm"#!F`I6h;@SVK,D`TtQPqX1[7q"-Z? %*g!D;5XBA;G8+)qH"p8\]RL?emligb:VWZQde>oDVKe]e'SJ_g*8<30s7.(tIYD+/ePD*Tga)An7j)[Zio+SDH7C^XcH0*\c*Eu3-f'E__K)W\4^Z9BC4#GSSQQ=CW8K#b[l6]1J>;\8.21OFF %1@pFS\:XP%+6-GjC/)&KJ\]J!3+ZYKEb6-/7d*#0FMX^r99/P&dcq[nbDeBnhG^XoAu\39Vik6BoXbBV6rp(;NtaLjOD/AU>tAkB %Jre#M5Z:^X<^:Q-*YJ3t3YB-1A[#gn$"bdt4\USOJbaG59W"G$f!5)Y"D4:tKmZ$-q\1=E4kj@*a_\/V^Y]V#e/jgB7tgJr]nC_< %b%se1RR@l;?qLf_:eJp"/X;<&p'[-8#9'7U"jp&t2b# %Jem>Mg8iAa]."pP+1ok,F0rQX__obJZBU5RN9=](G7YV:_73.nNALZ*!601GNN`lb^-+sh^rKB@V9@L&FscEgo*p19)U&qXL>!Su %iQc#P7R"0f&+m<$jggF/8H_>HLI+_L"QTEI9@;4JgQK.FN*Nc^9T8*SUHQV#Oo\QaKl>lZK %pqtJ(If>835Q1c_6u3=u@):>7j)osF!Ve2uR/W:P^6SnbB27]mKiZP%,-H\QVkKbs%fC,H%`l%6JN]/d^kUoL]MI01lr&X&i?")[ %k=$OC_Zn-*nf0CeiOA&ffe[;%cP*T%K+eb+;3"*!U;[D)[N8S9[#YmuGgrL?Mj!\%$=;=,lX3quQ=[Q"4S)=pUmF8KJ)6@u^2I+niEmFT36!+&a:!l???mc#e"W.O1RSIImWkbJPlN<&Qi@*lu.In=+rB_5_!`@-3JN9G[ %#7)l+^AqnJkpqRu-r"4"://h)o"HdoFK3X[IO_0Bb6EC02LZ`3'k7h`6c(WuRY)`]\DRP,1f)']!6gF8-Gq$'ZN0/n-_^2QX!%J' %e0tCV,VoO#GtRY<*!O<7RV1'r$FM6hSg(jBj/dJQg_XKYO7V#oep3Kd:oR"j@M"t>]M8k<%B0J!!0U1Jc<*_H`YMtP$JlX)R\dd( %Zrp49S.e@hdNlVsP-4AC$uK:!NR>TmSP+,o@ph&(82=D"E=1+pQ?E[kbs8j%L:Knmg8GZ)MJs#Iq0MLe\DQ/X4I"ZT;h`i;DQOp[XhKO=U$7o4Y'gG.;:[pV%2fG)9,e"I-ODJc`=Pi^ %H0NO(r[Om/62?%bI4[!k3jfhk_-,7oP>)12=dSQ8-Dn28*_[]=$pdLoiD]e5Ya0!$_A\LUXPX:G/BAI[m %TNkGHZT;T5bXDNuEfrg7")FBkfXMeJJcbo![`mMA2)!^$,0MEK$-$?f\u*W?JX^%HiJ4>MQ\n$mQ$Ku0:l3=GPJOis[S7(DWE!6G %M+%gQ>@0$-q^O/b1cO#67PLTM=Vk`//JNb5f*`YASGf4iSRBdqSOW+cP)J!1Fqto#A6j+%C%to:=b:`p[.\r7@Ou\pl?CUSL<1"6 %1$P-^`Ii"T1iB';19C$H0MRaY.OAMSM(Zte.UVsT'<"SVY"/i6,+=4A6:LqZBl1Fh:s_"[<-Fk9YuUnfENt!BJf88>D97bp=Sc8Q %Jq?[&q&%g6U1"5C4.4)$FE&G[TId/@r=htamckAa"7VAO7nQs,/soClj]JAH1hMp^6<_aNZEd`BjUH'2R[*,Pc-dBOPcCNf`=EPK %e\j-K5S1^qZL)CPQJH%;ffCRl(.Fq.1(&N^gEr/D]$Ee:Fsu3*AQatkN(c_-UU#:X/GUW_s"NcQ)O7b@CJDcjN.Fo.dM/*'OKmiI %gK0bSHQO$.;J)s*Ic&jHNnUN_f`p0nVP"XQFT]QH'-QZ/MI9CkS0nEi@L,#QMqaN5FJ4_o@gni:8E,aU>hQ)JD43 %C&l_Q"di`q;.V6$L7ea9'1I!N!4ERE=CFK.Yem953u,b^#Qg+P@EaUZANBm&W7ii[;ZJf&Wq)5mY6[C!(D<[8$c"d%3]H:7VXp1? %hS<_q=o]A9!DH%KFT]LlWMhIA_ur^%W1Q\jDC1U5!X8\M6^Z\9Tdho"93.H]j/B9a$JM;F9po,c@p:\JZ>"ps%([)@Ji,n\M@'k1 %?/5QM)jml3NQemu6DYcBmj %6\t4tYUC)D*W5i6Y@W=?t"Bo37V632bnL+,VH%*hEj#AmrZS?a%VNC>&.WkK#-'l>dkYt4%ddo*/&Ze0nSa/08%RCWOZ0WPgO %]YM>2Re2'1bjGaq\r8##S(K*PZ.=3a;5f@;<,hoXU71_57]c;))@-DPq@Q$@d:Z%S##FblC>";J-G&Q3N<[Lml0'#.`rY67U(-/-u<8d0M<`Y"Zh793]Z=FCCDbGP.^-n+F2UMUU#T/*eL9$+td^5L9._K %fMFkAd[":GA4)HYD6(=Q"&*!\0H7Fh#\Mj@F\fn\K&<1dm-+>HciSfuk`.u.`5%-)^3hB^qj:&+>):f;!6e;k`ga3ULoUuIW^d?1 %(aeC@bVK9P"ff0>Dm_Cf-n-UcVQgC\R.H)>@C55"e/bC-4pAa)gQ4>9^`pcNF9(r:7aSC#C9EI)1_@D^$?J^W;uoh?Fh^ct\CkiU %U^/l<4m?)>-t&TP^TO]B6(3"88Fg %;)*p.X(CI5Ub,^]`2(=cW$t:KCqj^oRSaT360A/1B(7K2=-?^dB<1=rdt!4S-$YgWR%5ad`HP:9+('h/*E[fl"\S %&--dng6ReO&=?pu2U%!*GkUH&YVpV/2c0^6=bC'lL*2Fl`M%u]`'l:;lW-tnh>M?o/kpcJ3a]i?El>nV')6Gb:%q#U7c1DXM6q!J %%TM2:BlB4h,ur#\okrSkQd>'3#GJ$WOdn.FhfGp+Zg%:GK\^K1CoAGN/hR;Um+A`WPA/'&oaDUZoe:t).k$=?:qI`uh&4S$,8iJM %Ypsgq:5[u`ft0*Z=SF%$:'BSil,4U+jY9'9Rcp/L<6#W&FaGF#;7(Yj#%6"#g>mB5Z&8U\:("@D['Q\RN&iX)[BSg1h&&[BEl/a= %g+[ZRiF?_ilh!)LG0h8hTY`kY2. %!AcfS&ZDU8BI\g-NF:Rn`&C7>X#`Tp-6N=:o+%G$bHJh'Qq#iI8Fn-8t,Ejg(Z4/W.2?t+d0WJIc#cpnTI*BGI`I&FO[&SJj %GM/oC@l<[*lAnH.qKt^r@g!XVVWq14H(=71Y-9^NJSqj);A]Fb`N$b7`?Z[Dk\JWb@m:X8D'gLM2"SfXE%i]sW@EN$JuZh%@cnC+ %;ogGMVPq:lWbR?"[.h\a.&t6C8^gSC1,tmV+`KckX,fLXW1$oB5plrVX&IXjA0>T/,'_%<-Eq1;SVgj_o/cOC-@tgjkkRA.a]U4f %DYcE=nmVS)'N7Gf:D*5a9,lGGR7>fiZP)VGDULlM)bD)h=*eZFA"`9eaGG<.TYL:7%1`C,SpKYUcl+[OZP7bEQd>`gQ"j, %(L'lFm'7b7$A78?LR`?_K7@Z:L(,l0\Q/)#R""4<>UOMQpLD`n:$e$5?r";@Lh0"Gc,H1&JcTOt3]W]TUeR+B3]UVV %0qmMB*"Wt1Ljp%g?%&$#dLmljMs$eRg3_aop,]7]!K4FUEJsgTBA2'+lr8*pbSW=ZH_0qTiWu[+Sj_=>T^APHo#OQL"=B&R9,rtJ %^mlt8TX4EH*_M^n2(A[?aB<+V,rSlRU!.p'q>Juo6>jeTVrEfIQ%A4%>HgeFPo!Ig)-De(">gDfW/"g&Vm.(j5%Wf=P`HPbj\7Zs %N1s80CMjbS@$58hblH8N8Z11kprk)gbmXtK0W1T@:9`^.mcEOq5jDB.a+KuI;VRY,D?=PleB]]FF8D,Hoa/\FRWG?$\j\Oo*^-da %M6NXjZ.?Gc^nYU^.4Dl6Wod&bb8\2qe8e"jV!mJSn$h)JBoce@.VVb\2n_LQ.hJf@5D;n""djEGj002OWL1*"4@1!/UNPl1%#_-K %\tYNg_&=4rfY]!`j:%I=.ZS\\-@tm_V)VX\/m4Et&YO-n%7KS5`7WQL'bpnS,1ZUc`baZ#8e^$snaj"GX[Trelh3h49C#JTD,

F#C^Wnk76DbSEEDVlJ);n&Q)&SP %cH9(B]B%G0oqT#1G87K>M60G%9hH=sf2HQ'd %S]&VPm:&qUNPDg(]'D/VAcMQ"k:)4YV:4s!2.,3Pcm/)G!o:Q-(AbY>H*eQ=KS1gQl>q\qH?=VuQKrG[1U>:,AJ)"cNj"c_WLqH_ %^!=I$2fNC\SRZH?h'9;2\4A^9;M.^S7[_V0kBP"h"i#4&Ch:&&][r]bX1@Bf@HW4k7;==S4`>TkYX+T)*t(/f1_$bRkN_keH(CqL %aM+1(2,'\>nU=BirZYSD5c\^+rC%U=WFqh%,5>&aRQBi-OZ;;,qDUuBTOOrWPH-%2$QQr=1Vj[C?IM./?EbK!b-+a5M92P`!6=MJlrIpV0#_JXa4Xg %4K1;V>^0.dNh*3Om*KZ#g%'"ie(NNU\?[aemk9kte>YFnGj%b34,%hRDa@^ %SVkm?88'sn4K1;=M2--nGl0+`3).;9i(:m*`+^mfTjF^S9Z:EEOcbQ[0,986a`1E+SlD47QfPoip.NA=c/0VmWAr\W64_h2R#7B- %R`CSKMiTmb'T0,q+LZiX\a`U#.Sa?g:rB^dVW&lScGdbhMNc]8JKq&OoX8*i(DgF.%fI(CCg2!2cCRZ9j#lh,ik0JH4K1^WM13;_,%0%s9p98gcTMNd+7ITJFifpSgjlYm&of*PPc>D^R"WBmi&W-`g" %6?;Ruj>=Ou/2)k;oV/S&i+^m%Hh6b"7+:hu55u=(09E?GLH]U\"p;,Ig7BO2mft`k$0XB1qEh5HXfA6>1A(5.-p:(Fh\)uYfkYS5 %Z=@02=OIT5Q(l3`kLXhP?KP!9YO`LqHXX&YG.q:3HQ[Y:&UW`u-[\s3Z_K2oTl?@W(02bQefD.a?C:)J4\mGM[Ipu<*s#!8) %:[/JHQ%?J10r[B/AoElB:]3k*E:2%2p#j+FOAgYHG?A"/Yoa@5Cj`4e/F4p+.[+C_&al?O[F+oqf12]8fM&9Z"1W$qd+OJh:tFZ- %O7osC6>7sEo+dBN.&p+p8p._80-gtO\(&\Wd0k!/<:i+E)p@Fq>#R2!F_slHV8oY%q6pc(5kG]#8fo_@Igpg9OiriHpB0H+(KtPs %M4Oai-X_$l$(q/jUp1gq-!PUmVM(#L2fck<*Ch@q&)'_TN^sQ]-FQD>a6hoa1-%LuG]]OCqV9uX;He98RXU-Gi*uiX8Pp(I9E77Y %O"hjRg4e:llRl,b/@q!S,=C,`LGeZE!u\t!^iZ`%4Ce`P!CP!R2DTsQJ3g=k/i&*p1EsJn$3,6?,!n7,_S3q3rlR4A&@M[qesbN,"("t/*=X&Os)lMEIk$*QA_A/>rR\@jtVuAlnt^eg]Jc] %?j7Q"(,CQFE[<_015,%F3VLLHP9K:6$6=Z$O%Z\km]J3EK'/t<+"!F(jk.0NV+%&$V8\?( %9T*SpShSA%;rR=GhG7l]4Yt^;11A'Hmc=Q\2I(1D,1b.r\h(eUh!`H>oiTE0(e/DlU]m,.L*]mo0$OHXXY9kPd_4CR`VV<7i)+%a"Zs"c+3WHJ^.7Lns(IN)bCH[%Di<r_X!k_I;6VGD(_jA+lW4,hS#Eg9DaHS4g__ofh-/25mjad&.[O0]k5:3r&jUaTFN@)3Prb*VaQDK`&:L.j>EiGH=4&o3dp0;ojXVH-cUX`R!<3/rWrg+KJL#e.6#1KDJ+0G/+T2H:?#O %j4of$?Tt+7U<(D)"j*M32Zoe@S/VUR,0uV@&4L\iV-=]a2]$Lk#pTIB81Ib!FnR7-H<:m?%Qct^W)C.?B[fUj8p9f-GXOBe:!)uY %HE8*W$ms'>&_`W4CZbCq3V]otAe#k0%UQk_c)pq!>-/hSZrUqE%f;&>M?UU[ZXi5GdcjK`nRU,8Kcs^CP`,X'i@?.N,V3\%GS,!arbtHS!?5*f/Z@0%UT.u8iEtq:D`5bDpL\]9nk'.?V>6"B[6"lB'RJ4,:>tb[*1Vh'sOa# %hq\+(.64rGUX%E`(=6?MT1@)IQX+)M*PF&j1u2?le6p1?=`%,%PSqi+fM(_eq]b1j9,i:rTb'An>ttr!0Be:[]U-6tZ+[t_I';gUT_(4Ktk,-J[mNK$h=hl+@spl'3::!Lm)pgnLZ.KkIJ*esBP?a3ei=b1bRdrT7?>@V3p:@UZ5rT$3]MEsjQ,R5Nh#_CW&61(1hGYSjJj7dfKJKjH1X>tb@_Yt$'BN7nVFGtP@Z %[2$@F"D&/ql68]Yc`=H]+%Cq;,%rPI5crrkaft2%4/\\eL&$%CNV#OQ<,R%I=q9Af\9&]48+THq[f4WS"_#uDYftHN7c=7/rBJ!%P7BEm^ %!*'I+ibL?tR7t)9O!5Z%B&"daroA>nYD/0m-(+F26R3OJ$EK(O`W^5,mPF;,Bo(Vgs_=aRSJcb#OfHNef-^@Gdi+TIIACP#HSB$+bad&&SVSVVeX&+01C5n+cs>mK1Bj1?p,OcORjFnS[W7Ut2t4I;l*2R\aSJNmA$,deHkWUfXdGIPk^J+B&X"70NfER(>&!ncDZYtK*J2nIL*oD.q6/OFj8P]5m-WEJVnGuK#$lnMb",jmlCdl8\1TkF %'tH9@12!lSphO*5]`T@U@+5a]GGSG11kN?FepP*?^+ujImF83)_)HH&gZE["ZK].lTJp_n41TfcC)5,k/6X8Z9hQ;#,M/Q7pjo$! %`_R\q.S3CoY>m6&qO?YnSAF,A\[\c0jfU[Rg5Vq:i,44Zpi#Q*dZripXQ$>3c(cHPNgrghteIu8EIi,0o5h/Kea %6&`AZ:XC*4>pRt^lDter]1AqpkO[H>/"`2u:TgtdXuS#ukHG.RWlo2Y+bfr$S-Meq?fCG;Xsb3SmeJa5N$=b7`U7_S\!lN$[F)&J %\JGjDmYUr%3K*.kTBh^]EC^&%K0*-""\8UVBNdUI^J+u8Dc0"'O@kB4Q;5oP_[fE7/Fm7fbV\Ie*QL.;3IXqVC>pI,&R %=WZP+FAMN>dN('XdQPuB=C'S<^Se^>=J1'rQ0&n^S"(5E+Xsnr%m%?cd6IOK$Om&8qF1(Wg);(KEEDXdr]OLtlLWn?^l;G^fD]s8 %ZF=QcTT87Gfbs2f.1\VX`hkh@8-VW8F?AcQ@k>b(@<<7]CV8oIFNX("Zob!&5oEtF6D:#`#92jL8Xntib5EJ`1n&:;*+#_qW %ou2kaa6"2nQ(7OagrtPiP>#RX0uBG-_^(G,0?2UMol]Yi=p!P?_s/u9e<2)@kEbU$e9q*)Sc/8E95U6&+tYr;GEX1"S`-Afkl,X* %CTTMhZHl*EN>ldmK-;sjJhAMuJ048"\P_eWO#m$;S%:Jb59T%iK@>C7Coo+p74U&rIn;Ck^M_&+WXA0n_G^O@Ts^\]'o1'c;i^X.Rk5E%"8)g!U8R5lI>+'fGOl"tKOh;q];0D\CVp&7_J@=l0E*bPj/B6tZKKt0s=(IoXj!2S79')jH"K]$>An=f_*)M1buG^iK9!r+I_Tp*B^67)gW'7^ULD35BW %9E77I&4JqT0`h'B@4DnA02o&bIV?WP52Vac0HkbZ#bKb-i`Yc($+4AV2]o=a*eN=.S^G]RbgRp]"dL[GZ_3#P5a-%()e^;M'TsFJ %_8c]:POs*l)=G,i->r3S_M:?o3TCfnpjTL]4hN(?k+"CeJre%"_S0+tQpndG.k8HTof[L[NAkRVWnkO%-?0!+)_j7KWL%ge%(02sjQ6^f.X@0'H/gf`/lWXE"/5Y=Y$d8;*n/,8Hp0@n:B41,;mX;Qu %'oRX>B6kR6Q>'a?h[(j(_G>VnjV1!Y/u&S;3U*k4h3mMM1Af[J#JU!/\Fn@BH`IR7Xm>-(+@O!6e#\P*1qN!\?7]VAXj=oP=d(jq %YbK*pP2HMG4gP=V6*X?m,\r+L+lSsF,/lC0.j`TU!*^=M^G8PD]7\H_Eb^LhZXp4HGc/":!iR)QcW@DsjQG:aB6AN8b>.C\JZ#lD %_20s>AnPYY'/Ip?.$Ab2m\;[h-,QS?F-lmDs-He*_^V5#bG(6WL%7S*qkc0!Bd"%/`I@6`ri3Pl\OWLXkVnT;JN`X;JL]=m^ut"CG&SqcpRaUn&ksS %.;87H>96"%P%,Bco(Z@Tfd2)hbO]QARn0ru(52Hc0UiVfFK>"SrH?U/XM!mtpfWb2Al^G7c]VfnZWb1oQ8QM'3NEn]BB^EJ_WuV5 %I[3L;&cq=rIMU]l0iUbjr%+CZ(/QG+`6T&]BW(@+>^iNZ8h#gn"h]a1.]$N'c;>tn47Ft(8pU=co]2(.;Te$4),(dmPu8Yf$[1G7 %Pua2RnIMR8#a/3%M.05BV(-4*'MK%%j!kr4SPu8Yf$[lMnPu7\]/8A?5Q_+HX-&,#@O.V-O9.Y%*P9mI^`"f,2Sd#p+ %<(PB,_ZJYfPgK",VkJL^XE0=.<%hTJX'5HE1Ws9>_3I^C-<9FU#uk[W)c3V:(2j*BRTU5`k[S2s1GHqY0n2Ir+H?V/=ca[=gEo@p %ZLf/^O_muA/'GM2W8",B=BSB/I!bo\I0FDU=UU'[p9G0UJfUDVSnk?qgnkj)@-8c3;j^`Z=bPO5gnki4]0^?dU8_-GmjunU>37Y3 %TWQ1MC>l/!0O'Iie,m?1lWdI7p%2E_Up?%e>#Pf4b?=#6Hr#d+WTD4:#L$bi&&rL%8[=tjFlYWN`GTGTD_\]2/8Ha$b*%u4;cs.u %0S+XShG5%PPm)@XlWdIAXg1lH=Y*KS=+I4ij/8`(4tLmU&u?-)hpa=Aatm/7d.^rPY=9g(I9==+*-U:/oO.o!Aa-i8r][FAF,K^# %"S?,V[EC;LASLi9miM@*(,S^ic=L-W=h@;g\\*e8g98]9Nu9B5G*\[h)""JJSNjN'Rqrkk[i5cP'sfN)@Bkb?c.Q7-o5fXhmORL@ %P;>!XPR&%gq0#-C9[.;UaR]#umm+KA+e">s^Q1'd_CFfXAdY!5Q %"5Wk/H&sZQYjoE`=hjf*orI.Onr7>qne6SVU]:To$MbIhrE7l`fCZiD0[C7me %VoAo;@$b@Y7@4[AeV;6O_eul,,KsYMTkd>d&N9O@(RRM?r=k(3TE&Tf%PJVRK0l#XpWA?:!,5I@#%kYHnK\Tart`+Qm*]^Ps80i^ %F3QmuFo'Dh*t]MDc^>81`PZbU(<>D072_u7$m)Jm2f,UGY*),,c?l04FuUL'S@W'DI7>LH7Gqb\lSHR#R>[OHXO"]BF"4P4ZuS1[ %(9Pnr=+,Jm9Qrqckps48)=T9IobH6Xbas1rhcFX[1O[lDT:7!g2t"l6#hEY>1RY#Aq#6qV%j(7-GGSD7N'b48Fi/#K %%.D#iFMfq;kr,o52HY1.#i+DJpK1iUVIpE*WPRIEl)e/$70K4[.fLfoL9!Y7er'"$LTc:bMT9@\*QF[`WGYN5K*Y[\g=C0@p\de= %)!pfq<9+O!iXnc&KA:\_FbTY<`Q8Z*HMffaFP%H4!]T-/q`s6^^N@Pkim\CV$7a %Rije;gS(MYS/6E6NCPK\7KQE$Fa[^uG_n;FJ"+she4T&tY.=F9Rrm61a*W6F^Q,cc8tC>$XYfcY&t_]HC9'm`J\8?a5@8X]c8"X/ %0=?*^+,"sg53,T)d;SC:%=6l6op_Z3)Mr5'W-,DrHU%G"eNK>dX+OrXo)aA9i%o9HhsX(T>G(KcIf&*_/)eLF'*G&--Z4bsr\.d>X7HWm514)Q %?RP?[r.$Z>JG`m_802hCpe^OqFihcKf@0&K@0PsH9GUQnm.mH=[cKp!oC]fFU?&F.\?2.S,"VlTf_YD;E#V+hHEh)/iB!Nqm %I6_`Cr<(N#gSn83BgDbc77j@ADf>prfnc:uK8Q%h)i!5-%Ot(+2bKYcW$mM0Mg_cPI(or`)3TT/P)Q/n0aAGu((6dQL^>QjT0f>k %L^Yb"DS2Sj`uJ&H=tGcH+XX.D?(M&]L7"X.5$@>Mh%16!6n?o/=?Le(;3IiU)b]F&5i$r\eT3[3WW,)+f^\=hGjtH1g$rTnHk?)T %5@FU\K$$QCRs^o.1r],&gCZ`LX$e4.7sC5aL[ES'1NX_Gf]m;Th/\F7Nj,'qo_WFMr$0+'i(Ase %D83uqa@5k&oJ5$i,KF:_)&MW^M?qc$IAG5UT:YSODX$CAEJF.U^@\f<.PJe#p[C[(Y!VU2:bClO=%dDTk5[,rEX\D+4/25O[.ZS' %-%;#k*EtaM5O8H?D<:AMg!RC^r(O3i@pK1IOhu*>3mZ]hg<"bZBW]gOW]QoRb7J`MjF2/Y'lXmfP?oD^_nW?fo$:,YfgAHq&9tDW %fC^8>7CK5gQ!US3Y?WU,_7=HqY^Y'%),7q2!"8Od*;t[]J46rYdoWjBj!IfScp$ei$Kd=]j %A2ar`j,?W#6Audj_$%!hB<-_2ff]U*:_tKag.297( %mZ?el7YL0&cOu8m,K'6C1Fm3$pWusDB@bPJMHut-lo_Mc.!MNRr9\4ohtM0%Yb>Tnr*XkgR'J_EeBsHW)-"d/rms#U6>C.7\t&XCqZ@g2@X+7Q"i#iI,urVo*A^l)H(tC);U!hc9$JlU0hu'CDP6?o`\qbF&;[# %pHIHRY_&]ajcgUp68aY?-m$)gcuLckLoAi4]L:59^OYTr1>]L0:'>DKYVllZ04Q %ql>^JA'`nSImK\Go\1cB*q#Qc]+gD)7?F/?_Nu)8^#fgoH!-_GrZ5G%FWPSphcL;iNlPcW]c&qYH+T.:B6">K;*H]nT<,i9TfOB> %>%4J,hq"5WqX.X$&'Ms&a^b5HIs/`]tXY#*I %B4GH?"Prt58D^<6eNrB(J[GbGPJ5dqWQH6m(TVaNq2[<+)hE+Bq441^p%G:jC<\/m=ST1O1UR.p?0YaGT$Dmmd4i%RW"NuHhcOj; %D/,u"0&[#jkg;2(['DsVb..6ngd]ZI^1hN6>B:Q7OA&0No13W(E(*P6GQ>L)]9iW?"t]0"cG%[PL$<)_St-c&elp?[H?Fbae*Z=\6;gml<6QYM=_Xe@FXnPk7Wq_ffrZG4>Xn4 %0SNhcS&#P4SroR`8R4lWmUI%@>'%l@qh(gG['9(;R.<.0cl\C;G4SBU!E?abACu?.m:tH#XC5_qI5O/J7[ic'Tah]RN4%gJDSq]e %c<2'_lq;P>6qk3q&#$`I;h#a`r\dIKD4(0<2GF'GRpLR`VJ$pG.f%$?L8hos;h#a`r\dIKD4(1S0_Mn`l@5O:WgQ,UQ%_0Gt_UUSa9!4(GciGSKFUFMo&G7 %dU:SN>M+O`@4Va]%7I0\@N(.kB:md(MKPP`72`sh?\Ikc4;NWbo)[QAbZGR&'$5c'!lq#Xf,&#"L2AIK1S(?O@'BeW0RK.\ObAM%%cd'rqJb'5S\<4V&^[T;-i_i&DRH/d<]G-DD2Q*+e'58]Sc %\9fi0eP?'Og+lja=O03L&(f=VAA%1^N*Hc82^U3;&P8'HV"hM/ocDOrj$mHe?=%Y6ABX2/8gAS^pNXQ.8A4S'ngMA.n:]c=jACR: %p"9KFS.B*9'7rhs`f$7`qlpX[(>/t2o&?N1d[!sSIQoO4:soQRm%nL0LlD^X2j-(iA?H8NX-g#nVJQZ %PPct6>qiN1Nj";@M#]bUl.6nU(=JYC?66h/&p1#\@_X8RrNl>-RL"DfSBu(W2KR@(OZk5Vu#E#im$:bB\aY+'/mX%\\]e9FnmMd<+Vk1dNKWq6(MARL)pIhl6.C9"s %Dh2AI5mk/[`;!Jubj%aQkcm&]>o&is#BT)oQe0dc$m %pB?Zubq'Gg)/)=sjRciu+t6k13SoB7UWFdd1`!41P%5Vn7BUuo!hdK8MB:t;nH/GO#;p`-rD(9JPgaJ;]`dBWCIVZoi;'LSlfI$Q@ML"^Fd\=/'Yk,K-@Ls;]H\t's6LH@Msd-X %U:$7i5Cl>nG'C6TFtUa/DeG!E,RRrkE-Up2,nqUJIde3a#;;M,"hR[RY6@2D&/X3t_:5@9GKbYt5R![[K"^n>e5BB2 %'bU=,-\p83(>u$3A:$,cPsBL&8DFC12O;=B-]edO'9! %b:A8Uje)pofZci4BIo,4M"^B*TeOCG_8`"28ed_/HKB8LIqMnW4`7C&='JnpRJQhW6-26MH_?=a49qW8d<*@j[*aQ4e'H;Z*NAsO %.p-R)HfHg_#UMLFbb-PVbU6((R6b%6)1-f%@0a&NJh&jabb2XMQfRosK6C]8cbID_)71'0P"_,Y"9q?\ASoAM)71'0OrRh@ck`ta %/mLN,6!H\[\3'g1)#A<41,J^r*0Ge\Iq-=QG!P_-uS8l_"ga=]qr9d_Zl8^0L %i-1606;RS?_!`??j>SH(/W>D)-_5$I'Mnkm'3au4JDWdM0PoH*(&/g(5O?NAU;t5loI %T*lBD^65Cd.NEr3kOF(H5tp?"gW7'R4nN_I$D,]aV#Bm.^t\Y&jXti!dVV^Q?).N*,Qck\3&jE"n>IJ2abAJ.[gVfMt#DZV3Zq %R$Efp3a_9^Rm5N9bH1S(dq5jqXFLRF>%26RPgidBLn8)mn'TU:nPtDo*TVo5$Ke3mY?DbVb>X"GM %:u1j*dn1\TqM%L)qFcR:e1H3NJM%/7HX#A(Z7cFGi>paG5X;i3c?]5[TInBc5q3?64bOj[rCtq7rP=<6?6[#9F*oA)mV;1)(Jh:U %`s[Ae7W8(pIc%aUrP4Xl4e84Q9R\M>Y#[+L'HSOfVU5"3m-;cagXJg8,>faI(5p=F:q7GU_CV]0QcIFH;QnRX2/k-(n@[?\pD6V" %Xd/q>F6rS=do^D/'k#k9+BUa!9o3JOSpQ2#o3fZ_H@[k_OAqq9Mr<@LqSE)UX[hj/T<>o(fp7]R3#-'gJt)WT4FuU-1F[YrQOiZ> %[Z#+4M9'0W&/Ia`$U:\p`#6:O>dfCMD?=B8RgFN-IHZ$uY[$I*caWJI>cF1-(QG8NcA[aQkLC)QSR4V]ATss,]gKm"Ufgf(J$m9F %>5D^';7PC<#J1meON9KJoY32[`X`NjHuM][h((!7+1M4D[MEtR<]ld9qu#F!Jhr&Bo12hc2mbUY>#(cMea$.F("um3[iQ2O/"c_R[Po %49Nqn,0h4+C`%]j&TR6S;t<$5"JC+[B:C/.T5L>fpP:eQ_\W[`\n@^0Ws7_')&+$\,dM0'/!9WV2/)7B,YA&"hjp)$%f?1Oq*`f6T(uuY%;Sk$"4OT.6mpac?(T"@Fn7U^4]_`l/?Yk&s %:S[MIhP]bCWDEB*_&eOhYk=>Gpm4/=QT[l&Y]Tp^bo-nF!W4[`?7fb7`h(ad-uB\Wk$OH$+`j>c)\;/F#g!-MWd9Mpe: %'0QRQgRA`O;:48]D(L$K[NNXl62ugK6^Q %PK13H>GM,Vp2O$!S=W_C:dQGZp,BCDef@XR#p!R:(rs0076oIEbVRNjaakJQD(PO9OVsrM5u3c=^>%["'8/m)+tYR&!gj#63tjAZ %mIn4sc2N#@FdG%r1+r-O5;7^XdUP[W:]N<0)rj=u:]N9oDomj[TE&TfHCkS55r"X9UcQV==kcGfC1fK7`8lK3*&(9oBOhWI4l)]o %$c?>>DiXuIao3=uY1WkB`oM]5*&&N#M"SPS%[brC/'\5A3FJ"$g&j^/`DOX=1;kf+5T*$d)>_eEW4KEN(Ei5(O5@95RkfY?##EMU %^/f5/b\EE&f@:@(V0es/q0ZQ:r4>Ml77uf4>JgiON&Fap8$_8+(#l)5&rpf,ZW:V_YF64HL]Eic[ %+XK-,"MBI16:5kM7T,L^?N`LTM%WKqXm-R%d1Gelh2RUJ2"6G3p$-4#")43hm^+mh&aeD/18sY:G6T:oKc/]FC+JQ]a]`Ii%hrCN %TO1ec^+"ae %+8t"r[,1&FGhRm;]uEKj\!N_#4Vf"8h.FE3]cRpdh2_J+*Z6;frb`Z$;N16lS,Ei/E'a,?\AoL"l0l(.KkK;AXfeGsj2oac&0:=8 %QTYj&KYCuT=sMcH1)a?4-:dpnOWU/kad0ZI>5]R"MuO;ZVI`ei",;>e%gX#\#4TenJ_\[6?M+L(D_B%F8kq#+&d!W5!CPn'UuOa1 %1#Rk6`6]/O<3kU/]%[_/HIDo4_%m[Bf6t0R<'+In>rJAg6gfJuRHY0>(ifiid9RV21%[]nPQ=-CArKMU$5hKBR"1!$GegNdR#Lu3 %Y,Q<%&qu@cSD_(qY!aEY,0W_(SA?+mie^DE9#ODskX6T,`EWfTh8e2?S35..`>O/8@Bc'PmW=P$:: %(UL^L\90f6]D^8t<7[\NnU.0>a$:K*eE8BG`P\7QI@&4>VQ(e&KuH*9I<,WIbric=4heGl4J5+GITih5a(HW=[=)=JLijg^*dT?u'D*]+lgdMnY7-i;LpX5p:bV;*j\C`_q9/nkbL0$HHK*WKEo-/^[ZL$DU:^%9O-P!El<&4]spBZ %V.fFW8R+hRG4NPhQ+dVBO68DYQc(M[R)G9W=>@rK-?4a20[\qrPIRoTdu]5OR&[R`5(BH(AW(f$[S,ocmp#%>gO-"K`"p\EC!K84WcFH %C[B9k#6QdS-]IQ)TI2:HmsX_G6(55hrj\UK/?!2P39,VFG@/2%N6lJo*19(nbeTWQ5%Fl:;L5qOM&D^I!R-X9i-aX2O;S`N;;t)X %:]N::mu);t,BBp^N&O@ACXRud-I99tUE_QCJ/RQ2`f&&; %e%(Bsg3G7ZI!9WWmqp3QAj?E0E8?e^oCr07`7=&$(:nP[(6-O^)#%QGVO;SbJ%.oMk*Nd9"SpqFbG,`u5 %nmO3m`?Y7_P0@o6P+P0:*eO9$A.Q0@O#I;dAWZ5[:8Jggr@GXKLC9M9iFhD'HsF`$$=JT6LE\N&T5A5pMQ`X@a+.3.8ZM=Intg!A&L8u/U3b$t9"UalNf/MV^?0;73@[)D`BDI25-UF!q+_H1c. %UK+gr^JMG^KKs>6'Nu2+$bc:[Kbh@7_'?>VQQ!N0L%g%$oQT&-$#9GP=.U_W8:S,#Rl7l':7.b$co(GKca"l?@\CKJ[9-]+GFSPk %G=Q/;^YA+!FB?IOJ%+,"R&1TlJ"L(+6%1VJ&K`gmNQa5>W.2n/_M`]moA5b81\dj.+(pKh.)9$V7DP[*Z_M'rQ$bnk?%/&Tb6sl- %p^lq\@AJ)V#XH01=AX\UVTgn?huarS&cs+9A9t+37KbjQ%1Q3NHjFs*J4ED&GS0H?f`ln:X9a%U%@@M(hoqhfI]kST3?fX)WTX#d %&F^M:Dm]R]Vda+lK,i#`\XPmV_#l'HqqBE-)cBTa1sPI[K-5n__c`5!=aQ_S1uiNjdqG$m$aWt;7^HLk,%N\!o/UVQ'T0Z`@!=<_0D(cta@Rc- %H;b1B%u&ppn.UOP78PC"4UXd?)Y2f>XDSL]J.W1g,$NGS/,hku.67E5p^:SK.BoXn)LkU[JJ,_)WYOrnmaD-f9HsFS(=W)CA2o4' %s-t_mg%'%3(Or,b:3t)eZE1-9*[)3r_H\N%?jM>YMp&unF1J;ol4<8r=N/9@>'pk4eBVU+)b,p?%tb=s*Kc#i^f(=N!+V^_[9B?0 %0eY2**&@.^V%Gi@HgLM8R';JL2X%ta5bCIRYX&g!!o<`;k?K;3!qn3O!/t%L(KcSiobfj\(J+*sJ-/#0jOQu%M-Ns]_r5dWKZ#RP %=%/uSV(bJDu'71;IMFID[P%7`O#2,#W'E9ZSjcNkmDZ[WIo),3r7[GC@1:dYUhM+2'AQ##9 %NG_I=;R@@-jB,$a4DPH`3@q[nb@>Y1?6?/".t+K)9GFeoPbKK3,rq8(/hqdXN/>DbF%NG7(T86,P]1m\L$0H`/)_,&-o@lQN/9CB %6t)b_b*4;B:M4%0$g,AP=^>H*fD?,*Q1eX_pQh!GFT$o34MX-S,c`H:kd%CY?WEm`cItNFq'[o.KXAY^)Scd08u=fPrM?@?K+_k& %eP'8NUsuHfD&&!`NFJd.i$mn4dr2)k?5\M!n;LbpqEbgCQGVJPW(%^aUc9R_G^?*R(cDeUard8uFkm-g]0[)e1j;KD^b^A5L6aV> %!hS?i28oCiIUPTc4#;4kp,5amcel2Q9cP2kaT9;=3V4@p,QDmjC"sePLVSa*L0%O)`#>[&B"=Y@>%6+q6f2"9 %QC-&XjP8prjV>)M$LpkE'sCHUcIZfU^k<#m@?C*@"_t-tp`U3HW<.lsQ7qAs`Y:ZIXIF2nfqFqHWf]H=_F><8CFgC2csP`2MnYQZ %58]Aho>U>tqS,MM(hr[An%HJ8NPAGPIu(*Z>uX1kWDTr3[CcL>L1@D*;`.g7b!/;EJ>`#:^X/$(3@h1HWPlsAs64uCFM2'8$!f:Y %9#%<2PsIjj$G,r?9:3'eH,Q0*3rVU;/Y+3Yif00@"YlUue3q5lFL?!V^!]N$o]@WhTqf,lqdS$$QJKmH,^Z05r^(QGW6#o3MHQ0E8`^\(%c_(J=X5VJuiH4s1!62jP6D_rcROU'E-5e]GEXZ>-a]AO_3>cgUI^b %NVNT6"QD=U?Yg(Z+V;++ahGP"IlU82S8@OFTY$@s%ZGQ<%'/!YF'qFM9&?>1!XiF)#\lu_kP-MH(6s5+LTH*#]i9Xp$Q$1*gk0\C1$@NtKN2POig0E%>,lh=0"\@bL&.6MMd6_k7)8ie1@`^h0e/nh'qX)r&[9&-u;(/L]jnOCNhPh^?IH>+Ek]6o %HB*^C4;!AV8WHTS^eK^#`M#2U`,(HeLcNPo`1gH%o@JIX.S3A'C)^j.Y%Z)]3/;6o\jk!!t32som.^cP:a36 %F&quYf3MTE%R@W"/[irQ7$;>=RJ)^Qr,/S[`OE0:%:/F?3e*A#?"ZL,UO1nW)iL+e;UeA\Ub(bFVY""4r_-U:U(0=p=9Zk[Hd*7LHnbmBO)8Bg_:X_d-JJ`s(H1^HJhP./fs!Orn:V,@CqpeQn^L7+V^3Po4c8?6C1R&&4dH?oQ!_n>ftf[j^PJTUg#nm`cJ[QgQmdCV>0b9P#cIC_9.3=T_hF6"Ouim*1@R\N %k2WTt=.CO!mS[ELlNOq&+.Gipa^e2C3c([>`)9t"I%52k"Paq?no=.gNf+?SCFqY['1$IE8Ys.=X`[pZ]3-V!bpmg!UA+:r?HG;g %b$&QG]Z(8k+DWQ)Q]2!R3,)[$mop,;T_Hu?0`)V9lG>hI'3+8_X0p;5-EbkM:M[M0=i@Z_O]n[\pF\krj.MqD-fhE`kEp5P9MQ6U %4U?#mO(Mi!VRInlBsPER7N=IQdfeQqT@[%fS^\2V10O%nknS]h6L+d:'5YYYn"`:e$5YBjs0Rc!MMZTm7p=s'[6,A2aW5k5rB;*mSW:\X7q)< %4ducHK6"&Xgn??oI8H#ZRr3llh$7Mub'Fu"7/'!8qB]I$".jjNe3*)Ta4_IKLsAqJmQ?@sP(PTPc7#=&c861qO-&^c.qcmmDkPA. %f`DEl7,i92CRtPM8WEtFk5j``q(^:\4IRlAIWV.dSEH]oRHV<\a"UjO'V.bHkDoY7kOEFtN\<"J@B0]VNQ$Ioo6fX(lR!*em)UqK %mNMjWSd1cu:CQck?oEDY.8CH%T\"!,\dJ2YJdZH:(8Wi)&YdZu*cN/]0B1B)Xa0P11H#%Jd`KK`UA7LrGW\!uPH/fame\,f,qL>0 %N9XpY2%La!AWQo8RC_+BB;4ONOeE %,f^_c1FJ8Vo/N1P%r@AWZ %,SRbPR:hr?,A+/E`]D;-nXX2o]6XA_Ri.'d"U_s;BabQu(+>LP`&89(1lhH_BA6 %J^W@5]a$%$(+>tcW8W!K>G1t"\N[_C.)UBhm(Ko4TR_"ueCl1F"U[CE_iMmp!X6+uZNhrn>76ZjD#5sXH?$>X)(dYS#:dG'.,:(' %cuCG1"j/u<`Rt=CWFqOKq`C'uM$J<]ShP'G>qF&Yn<%#'48fQp7c$0!qNg,VJ\kJDEV1`c"\OsF*[m7Lh:qMWQZMV)ATi0B!krd^Sb)D@6!K^P %K3fJUHO)bAqO=^Kqh(B4H\q*,cgdRA];rLB?9H2q*3]>^f$X!Qr>tCL&PT-o4F_G(mJ<.9_HeUlDV(4@%P&i60Jd&?\_`N@;n!.W %Be^eeK"np`"rZsglE9597c1.jJPdDd^fQ^c %">qBQ0Du-H6>29,3%pj/Tb._bIFUFRq]3p-^-8TD^.A9B5E4P#!.^)/r(H9e]$s,/B[C(=0OY-g#iI7qSj %/G?%ooDQN]QhB5Y;+qelJjtc"XiodBSVcd]OU8b#VfBT7pU[rjXiW^!G-,bO0"s;)Q;e=]0oR?2!q-,7\?@q,nkbV5k@,As,W0ij]"+]W=nKe'faD(9.e2_(&=m1Gd\0P%60H?ml'skP?+\ZY[k/9:i.f %24_?E;Xn;QAfq'l7jK)cVU>O+80e0Nm[hU%[8VRB-3,Z7m,fC.Sd(k;1n4LM4c*VSJ0[A&BU9B'!$qAC8;j_d!1Ed:8JY##$q_'$ %&HK`H/0h&,Xq%u>/4c`D3Efni/1JNb''!VedSN\/98oKsGo$LAQ5Dj0+G@[;P?ZS$OL2[nW.($r@H[)mM=Io[c@V=jcL,=r_op2, %BD8a*o5QI%0_*`IrN-%,L>2f_*-V<>jSj#;rJ);3,PbK))fhAEXI'oH4ar]bmU5"UZhmm-^B?N"@eLU#XNi7b98oJHT-_S+''!V- %/:o!gKA4`C9L&=eiUZhJ5b&=)[)D`BN][`"&[&=0jd6eE0>dDTZX>[7aO(X\B0#4R@Q8uc5>1`W"#tot=/GLXrp-93aF@9`(9/lh %hs@5+9lCRG)[+\H2'@VIq85[tbR'Wt_h\CmNYJl#LfC_^WBKnG/_8i#d)>h'O_NoCjM$[Dp#l/B4p/]Y0JO94<_eJ,*KWYrYb@f4 %PQR(BnJ*Lh/^3W\W;19]*POE&Rot:Y;C!f6C0fs@s=),RGo_pB_KIA@s:20 %'IHb+^N/kND^:H#4o6!bljiUa5.+2g9;)D+V1k1$:#5\_1?JH"VF(s-dtp+pABGAnVOC\g\l/nYJ]AG91\gn'1;uG,C3hgi(?]Ob %OI;E+M\2Y$iqMnCYofcJ:3t)sjfMM0IsWa9"RppQ@P(p4Ip*clK&pgO;7QKEf6#bpI9W\$\ZuZBTnK#,ad1NU]W-Lp(uucW4uNcf %mG^-l/,J>eZs\`:6ui9'P*MNaW!X2:Gn;MY,Zp'sC1g@I;Qm+t6fmIhXG4-FP!(ejU1[Z070uGe=c/$H)9Vi970')]@+!C#_@&i2fW_cQ=X&LGVm5HLqb/E5Rh^n-U0jXIdJjs[6HWmPoF!$Z %ON)"pmf@QIChMk2r"Y9n9aD@i %oDl$O/Jt#[M_<*`_-coEcDN,rh2eT['Nj%>!HfsdCN@0(.=++%)$(gK(bU(Za,^/_iLu(IVp)HonllB(+Z\FIb_Zk$ebP]8),R;U(WC9@&!d?1e6lj(>;*EQ)3lOUTa6'"2+smQRT!ePLCIGPMi^Obiu$ERKS\:7?t@C[^,B@L2:H.['Ch'9AAtUSL&jT %r>7SE]e#!h7YJR;?e`_Tq3STPIVgTnHS,3\7,/.)4oUS:?LYU%"U'L>5"Ak>5m[g5$@0MB9M'Bc6f)_?h; %C6lf$E3MC6kifi6$%ce%M2iXiPX`u0+a!@Uh$4`h!e1uL-8F16:a=E9K/KAKaD2)o8P$-(3dU:A'4#*7kifk*&9`B=EX#*YU#,Fd %:Ibq-8[o_:JnPcZ/.!(-6$/CqiSKV`7h93'(qXbBFS&t,6r[6Pc-Ltl=\R4]&5,?QBk\2B/.$`"S;&B,_ieu1(QK_pYU"&XT5e0jnu'C,RT,>K(KR#na0M(;9pJCg*<_'BV$6?nDW--ahm$.6F.)md@eS>3D4DeZJAKbIjHL'V$TVn:rA %Z%NFSW>gWc6r)PHhdL@b%Y^NKSPr+O3ifU;/F4p+.[+C_&al?O[F+n&@[L!,pDn7jn1`f%>W-@k7Mk^do$)+?C!D@[(0\Jf0)IhE %]MBC'fQ=2,iTuK,.Zl8AhblPR7#tl#U%>!3SFPgoBk&$/7;GMmY--#`WUtF84o^fu3eZKBICpQ))V@Xnks_ktqgi1n$SAcJ7*gDE %dr8Lalu+)%eYjqM_OKPI4h/[i(cI>!6rMN2P1=GZCQs>(5&Mj6e$Fp%k@ppArCnl?FbeF,O$7:a]F0Iu@Do+PC`"mAW)GS- %\.UC-EA#<[a2O[T*AGQ?O?>5%j'9rs`TMg"N,o$K?E=B$Ekn>$8ZW.dP-t/SW(7GXjFG)3U-Hc>4O++CT3[2VNcP61BBe#Qbi;q< %^GV5FFQIJBZIZ>hjEnQ/s?nZml4BfpCiSh]=PGi!:7PAV8.>eCSQi0_&=XQ"_R'RBUFZMJ_Blmk:4DP %^l31=S_+^=!jhQd,dY]X6lkHr-L5.^kL(`f.23WN31$n]Lj>L`&nujkRU8;^N`b_n0[9k!a_Gl\k&E$//k6tt&ie/_aj`iA)!<)# %(Q0Bu_L$]n2&<=2P%5Vn76Aek-R$0EWhRPE9Qn"gENZ_4$CG2<6uK\[$A2VteH[._GJ6`BFI,bKpFEQ%-O3,Yo4t'ZZMPGL0+=]pnNp#E$?G+$ %5-4@7Gen,WLg2q48cKTQXO*;;ptK*!O8GDMZLjFr0J,ie`TSE7Z1)4/9"YY;l\bL<75F_@%4Yi?j^DV$gTTUl'l_#k1A1J30.j"APQ5$GWD.+RV-[/>X6=&8 %1bh_AnA7/l,DkWsGXI>(f$ZmjNR[$f7UL+gNX%YZ;3"0S-2K];i/92R+.s]uh#drDMO757-^':0i5LHa4cr/)*"s2^6oVIJ^aUOu %-)GdnEg2hJ+E`=.oe,(nFFe>%m2Gbh^nLYDiHE"YLfQo;h2d9\bu]q94BesH9tK`Wo.oMfsLn*$t-Q,]HY %hUOYF_@FD]=Mr>AB(cP!2B@'1 %Zr0G<-eC"I/q&K"bL4AoaQOF],n>F)YT?HKoi\QqroYD@rjVJu@t1b/f?GU^f-^#q$N0>.^-bN;+8kOIhOt.gHSUD]cS$@;m`cju %r?@V@82@q*=\K/W3.m#NMdVtsao$b^,*lgXgAN:MAk4\l/?1_`ri.*oHdcQ#)3W2sFS5me$q]Rt.)&eRP-?L!A5<$fr/r7Q#YJ>Q %c&a1^*1\O1BSIeGCJ0=]$?dL>0+YR?I58gMdW9JLM'>b_!jV1FGs;',:,-N;`g35lBIJ%o>#t#J+_hFPsdYWf`MVN %-5m)&T@?f)5Uq.&D&g:eA@ %@^V`0k^C0D4\)Y5?_$?qd,uA'k%jCG3W"3-0$khZfYYu.p@"X4Of^1iCUB/an*T1As8;NOWV*PX]8E#-V<)'^0:i+:8IEQn-"Aok %M7J\"'MRu_-^(%[-U7a"'6EF2/_F6O[k+OHCFheM^_$$J;p@3=jDW"*KRLFQ\S"m.E"T)8C==p"iqBRpQJgWkj1T$ %1]eJACC9VoG'J'Jg5X;/OgseL*;.[UO9MI%-0gC+>:0B'5M1hm!3on&pQgmn^'08C6O;%B%\ %8AX;J/'oUbK4+5j'n^TBIa6ULMruMopO3O&`?SI"(Lmd=AM7uR'=k`7#ua=>>koQ#?_3B%//V<*q$9G^gI["YVXYh %!ZC@@"Esa39Ot@Dmb>c^oZ'VrBGLAG"[@1U!-TEST=I[!2g9=8>^=qeeFI?H>h-j57-\?#6kWSb)C*BT4:sI"aZ8FInN6.[U".@U %g'M3WTL2s(3ZQJp)%le:oTe,#nQpF&Xlc)4LReh!m/n'I88.`+$^_!$a_ip=-^`oVOT_O8#eH7Gdm,U@f0Wb\4oZrYI9.4H1VHOq %ru++@Mk?&7:YiRjb0YZa2;\W)kpssuAR5`FAi<>jkaBIS]Fr(%&4_5S!mB(DX3"`OCFY9-H>P)k\[m^N0RW_NM@TWXdP"REmV$#q %[[E8VLjO2Hcm9ftpb?Q5_+1][UGm$@BsN48387n+K_*6U.,N+=p?S6N^Mj]:0r/9>.4O>>b4?mR2';RJ@Zk$f$4s,I8AEus'^kOD %0q0k@h;qKLVeI-7K6e'9;>F%#!)ATI0O7m4R6*LD.uIl/[/)5:.e%q!FXffY#\pSR!nB8a17 %rC(3"caLZCSNbllaQBTlp.do7[C_PU,el)3:MGoKKc]`mL\kPQ*Fnk3XJ:deK`gF^9\MbTRi1.X<(4L&L?8e1-"+[-`h %[LM'U-2J5$'B]3$<;_B?Csm=kVdD;m:i)hLV#b]<*nJlE[]tOqdkl@@g-kse=p(FE+*;f>+G&H_Sn8r'j3"I;?bSb9[MBHMFc*Ps %r*hjF[?T)5$@dC42sM5s2-9%,rY>UdN<=/iq?gP:efN/[pW(sIr_Ut.hj+=bfC25dXtetSVkr-B#nPt1q-s`hRHMPHi5H>E %P@RGl09uU0UG57a"qUi\]4r^;QGIW=&jLi9@L`_`f]hnklG`XAML#a>.kH3IR!0i0IU*L0JrKcOOR$DmY>`6gFf%;BIf8ET%gg!G %!FIe#0b4-XeEVO0"Nn^MMJWK2H8^=i"DXd(%j?ME3!*[c,KDeGj\Deo2$*qq-r0\$`<[/aong*eVad=%F2`uCpDJOfQd%JD-Fq)O %!bL>4/sIHQI!3O#7`!SX/Rh=jOW,jE6Zurq2RZR%&@qU_fIT$+*I`b-^L0Mp.i:=C%;mFZ>#]@+9Kjd(7/M>*#'Ie(Y`U %HujdH;Lbol'pSS'9)[.A=Z3lZ<)SfgAO1X(2^oS]AV&k40s_!d=YT[8@qH%SZI"k18Qk5]ZEXB"32*"Ho2o/@4XH/W-.'f_B6f/q %)#79:T&)E(RH:ZYet1d5GcWI1M'6%Qlb>51`,B5ce"'`PIEalT(3$C(bUh%blgsL;.!^uq$F(`Xc$=CUX_*O1%W4an50FVmb(:$. %-Y@tIb!N/CXkD^6f)3271-W9O[&$Ri(GfZTiqriI5X0nUL&BuU_bfT)/8BX$M&qg]8gUf%R@V1BN7Q/"f9Sf\/(D_aQF5k,[]Xf= %YPG/t?G&Go>3M^_si1h=?F$+8MJOXgP=l"e,%CMZB%+,0$;fd-r(X\;Dp'^WdfBRJ0EIa=N2bOe./:gifC\l.iAdPiM %N%CLF3N'nn:N[ %0jg!*Q07HE's;?DNkmdN#8W)b&j(!M5Q %CR+;5):>]N8[qeE.2DJE(9CM,8k"n3CDE"1dBa1s@3$Dc@SGFn*4rNp7&%&Gh^jgjX[5o8^@sgT#QWM8SS@tBJjB?e+be*uiTOZB7bpl3j`WuKXg %M6oSAC4l`.A:JnbBkn*r6leSrk4cch93%0o[?90C+0&8W8[lg=epP,;Rhcpmq7\tl-(Dm%mQ9Y2gb1\K@$e'R2I&.mL]pV"FWkkT %M)=B@$(l;`brJA$2mS+-X"2o'\XY2 %gP']@O_K@:Nf1'rR$?0%?E.dm>lGhKl7O/aH2qH"_]7X?T5d7]644ZMr49bX)-$ %Ac3d;`'O9q*KW$;\0KH$BEt?[>E"4.8*aeZ1(Wc5f$AC#IBL0;`r/2If\.ifVu4?`P2o`&Gb]i5A"A/,jo#Y[SYuArm>?dq0T/VZA"F*"]Mk6 %?Jb[if)2&n^L6?!K@MF;iUS)SZ!(3)b-8!#,R1:MFh=Q2'kO)L?-:[Iq&`F;3rDcHV8o#XR)2Nb;!G-DNBl=]G5n*M$1tSu-+$]] %I='aGcbJRA3\X"<&P:#acAN9WQfgBs"B26LkWA4?[+*Z(,oB;V9bUuY(J/bc`/n*W78dFDYmT&fp,S2(,:)V)`K2=_pHGA?@a>WI %k)s2h;4'@1Ur7tcX^J7W#uY!D3C7s8MbmWo=poag6I]&?eoG`f\^XZ!N_knXW3,!A,KZHjM^h5q^FL3!K:-e65gpA#*t2>RWjYY: %a2T7i7i'c"9["*cPq9@.R']u6pV,#R?rE"]:ID\iKL-Q&PB?Bh*oHu!_pj.G6uJ*3k,Oqpi;%T'&[U9(7lbhlIAE<`g7q"dt@1p2!c3U`U/M5V*W=c %$>4)*3C67K`5U0/F+hR1`PL!DXd:XRRE=Gh,2$,T#.2AUrQeE16sceQY/;MdFRm#f?&.'*eX'`R9VdD^/51d^2$VDpYlI6]$lD5? %";%GH@__tiQk[-7'S$3hlYjQ7RR:\^1qd:b]lL6aB9?6*hb_Ze@;ZH;cUfM.i?e]5/_n)hCGQ[KVJ4"P_h_2D[S0Td7i$da$U`PquO^%[ps %JE<,*eIp't;\rEV`tk?>PlEtFT2tH->+$)4@_hUL1`b*iIC=a.UNa4YA!Lo6;P/fP?a\' %O*>gEB_bQ[n;t[bidhUO0Z"DnL6;Jl+$^QYkPXZ_(DEdOY8YJZ %'m=o*@%ETc.d;7d;b,`YbNrZj0QJgT]kuCVqd'lp`O9&ZXp?<;\^o\J8U@OHo\UnXftU'o,X'I$rLY4s_5En%9@E]1dec\cMiX[C %rVA1/oTiOcDYd8PKNj8X\fnIo1] %$`RIE&JKTqHJjJ>I<\UXhU\\^P-d@U]0t7K"m]' %e]4f8_:n:[2U]=cgGk@rhj&Z4dU90\5:*VhasZ?6P?"]mK!cBNkL\6"=@VUpJ9X&\/NEYi((XbAI?2_\8m:3:`oPm7,U12D\Y>D4 %7WRS0WEXLZ`Ks)@iAWNqpbF;Y%e>]cHA-cW_;`Y-nAAJq%`j<9rWQS6K2^f]qn7+.\c8&-[5WQFQQ=TPAPAe)oU+CY_QRTX%-Ul2 %r4@l9$@9X-"KB=p96[MOW\kUTL?Qm1?D^^X=BS&R%T"YnaBQZ7dI:tJUSfCknrFunk@>+Cf.JVrL6R5C_Js^#O'\#9e3]L"jpI'1 %^A\[M?)_/BJ9fgR[h]q:lOK1qtXP#/KBh`me@&k)K"&4ED4TFg0`cTA@qc(Q+h:c.]bjAW;%E#Mpd6V)+Q&h5(n(l3SQ87<@L!I4h,.)TNKbag(>InJ;s4BF%]uH2A$X\H;_LP=aN@bIsN,plpRaa_=Rb0IUrkEbPZBD9L.TL2+G/+#h %Il"Fe!aDX!Sb#%cEg;`,1.pgAN[T24.M/";M[d29ls6,SD=t8b\8Zf^qOt5JT[=hW\;?B7e8C7qCr5W1bC%dkQbDTgkrF7WU?NB" %S+k[?CI$_t+I_Zg_j$:4q(aFma'(FB-+'U+94+c4qUYW_Ys'Y!SDX\_>NCGD2o,ef,eM@lJCt\2M!bbP8V7]p'VVH=oL-Q=] %p6,@;M*RcR+LAjT'GO^Z1(1j(`.Sp!SEEN)j.lOg_Wr0;.H\e7k]kdWU;B(J$;Z/SpX[+9:TrS'/_n7eTXN4l^68bhEY%E*6#1H4 %)=Ng%g6+V(L`N5Wf%isqO7dbmhFsV5c^b");11b]V-<_r3pbqBDdrVc&Z\9pW/MeF%`or)Fbm8g'L3"]$qsDk+"Y8\b'!*+s0$"V)R.01`Lp$G(orcX@9VW76IA!RG3-A+,II"eNWa3@d00"J5KMTOut]'5kGaQq]P,=0f%i@CS5nIBVTSKL+&)9\Kl2'8G*t9\9Z/'*`0FLl2oNBk!8R_i#04 %BnCgA?(C7r2l#\i&T@Da+ur5j/4@I6^g61>-YV2g1`GW!*KiCeUrdXkdI_r-a'X9+#[Lr7ie/jWc;G*J#pV^ll*.'2-r,.[,TRE* %E#dj?/X"uF>"W'WVQ"gjG%R\d%^6<28J@U9itWq((]sWei&N+ns$h^W_7la&r#7LlB!qXmj58:W[jWB8&3,bteg;?\K`bokZg<=q"?a>[KSV]$.LY\@-nLPZ\40sq@`a)$KgQ6'[%1-hAFeh&"#[Lql&nn;KR"-L` %MIlu6\:b)]:f:8^8`q`eP(G#75H/F5J8Wd@>;ZKTW0KqV#6h.NLIK"W %K:KRmGoQ>hkFT'A6RD,i;tN`nVh877_UtUQbd7aOEq*6gn8quW=E%%$T6qQIrS=,hZ8Oni+<;/#hi*RW5Ll'24mEjHhQ/e=#0d\" %PAnK?9AQ+eVY-a41nWR3fZ-YVoZTO0Bml=b+d*Du3BF6epo-WGT"HqNXqAig^l-V88eC)Q&'R>$4K6pQF#' %22XXC*0G>*bina@OX-$O-1lDM+>[rfVIkUlmPiPnlu$;b7LI82DbRs[@J+NRisY>4Y^/6cb3Iing4d()Ep0Zr&IXm:P/C7?E_L@o %81kcQm*8V(P3*1=a="6ghV!c4^'cf*Ar^Yq,BRN-I?nSh_$2>G-^'n(Go&88F!@#4FMCr,/GjA5)+oc)0qOjo@4*)ANIc*5]ZdOM %'aD\Rf]e]BVFK`8asZeY[%!+PlfhHbJ+RTl.le18RmFfdj\72Ph'nLGKh2u]>,7XD);S5`e^m#96B*cWMNW^.W73f,b;7[5CK'7[ %[*QV=!*fK)#W3*?(3s=FWm4J=7#pd3"p#SBCDbnT-iWeGeM+s,)ob=+1Nb!:s/ZJ`%Q>7[p!8Llj$:;4!O6]Ciss=el@s,5b4j`- %e'`)1m2P_`_H(9YoU;'8R'F@@T[$#7;:-dK*c[/raSD.YlGks"#rIu;"fql(AQeX?D.lJ*D(Gae3tF16P*rGa>!C6Skt='$#fat( %nWa:AjB>l7l4^%I2N\KLo9/\C3O==GnoW?!hkY"8 %Hhn%![*8Co5dU=^^Ob+]F]pH?%;2ZRr\aVRF=pqKZ!+D@m#<-XuN)Ki]s/tHoE8]8Dr?-^Yq\+e4>is72PN3_WW>mbQp4>hF!ta^GHhjc\B"bGZLt#(ka8q_1R(V %KCHHr?c!sPC.&V6j3g8Ge;,6YP3!Q(e;0dJ.*W;96na>'eWB9V!9k`&n>uf=mF8gSCAJ8o\'#&b;q>De]:icEom6WrKF,\nC+kmuh/=^bcDoTtgHgS\6f4&A0SCe#b%,2do1mk&lP&XSotk@.S4qEb@5bC] %9h\!q)]&WG+N5^`dW^bTIjujuko19?7C[Ded=EL=(_Mm\+s;$7rN!%ZN_ahm"%=W$;M`.,7!.lfVHOta13r=Y$]8>.rt,B&!3K*f %$8FMmM"`Jg%oZ,ljUh\c\F9C[5S;qgKsJ;"5S<.B5D7S+ATWdcQ#*+LM.78P.)I/J7LY0AOMIUp76jni22r=_-j"E]15L=o;+!bb %OY7Oc!Bf!W7nX=?6=Eo!,(>iPIXKXSjn;R3A?5>!a4G\_$;^ln)IS;VmtC>>n@iIaUF!t,R_3!@Ng:YL.uIB)mPkN&Gf,@Q_DDL9 %'.n^8&=W0ARqT4u4-!F:WN[/Gl\3?a@HT4`J%=""abaP"'KX_3 %\uGF*m"N`iJ6tlD'RE;rN(p\W4g_P"biTj;k`[>C,$#KAOKa@&6<[MaO;[;a>>MDf1O!2]Bs1A,PW>#SMVtsVOk-Ncq8Ttll@Ppe %QEc&81,J,@MOEGOKio7NR4?g*,@9g"Vn2@-D`>&n=eh&0$FJ$Ms+mK2!J?2I6t0bIV;+D#W`$2&7e<^U0;#X2Oa;@)+rqK#C#`BB %(].[qc02C,h)mf1E+0BU#,96K3f--rd>TJ0kTgAkNQb6db?mPn+)C@>p,pu@O0o`UTab-jX/K8L[/LEdV+^nM`AV %Rlb?/IK#hgRTgimc-cf4&0n<";hM6:gFeMN3(mIP8TK+3U_,#]Mc72pnbnNc#8INtROaVVA*0&l)J5:E&9#f^b(A!0b=_],n@kdF %.BG/s\r'J>WDBqpo?TMNd`\dqbFHQ;[Kt>g6>N`uMJ0*E$>VNt31hTcibn9^64W@S@D:1GRk(2pk`(Nh5Qsq%:kb3YF.oJ= %la\*N3ILDkXgNXrAeQ+BDdW?]YEMB^m-H5^6AWoNTf8=I2-2H+74f3Ls*!#nmB6EB?2M+Cp2>0BhsT45h6m8i]5*h>HsBsIZ6keU/&t9%b7a^%kDr.[1IN %Qo$?9(!s&'IIso"bZ6)O?Ekjms,rKWoi'-m,#tP(i"m6M[9e6lMAP$KZ=@gLNe?HiZJNn&/%%$I$n)k`$RM!YZ]bKc4F[b`@Ib %*Q^BEEYOn9^D+C:VN=/=mX?mF0rC%"9Z2:M97a>V0gTt^C;c,l_utBn>$VkcL^BdHVL([nckkM\(s>#WaSb?R%C %%=3qX9U`&DBomg?lC[9F0)h;E!l0`23Imsf7s(Vt8"LXWdsS9flCE:PCgdWqIpRL]1KEXnha:FAk9RbN%\,=sl\Qe3p.EP'aO.Dk,@n(-agji#q1P.B4@3?Z=L+qHl5)JO;m9X`T=POY?Jj[oQ,<7)%SY %UHSK$8E:.R*hm:&A+gJBn+'F%+4E.q9]QTDn_r_9#t2McoacA/8KmZ@2G&\8Q?Csc0d<7bPYHrVT5QYo;.o9obFRej(U[h.C]t"b %=U(!AGe4d),dq#e&W[',7bE$<79Y7Zer:f70A,![jU[$6m>tRgorh;Dp?d2q6+cl5[WX':qN=2bi4j1gb3J(6]mTVVDh$gncbp" %'iba+mshEIl7$(5IoV8pr:`o:nS`*.Jo>I?7#GJ>b$WG(dM\^91X\f9hQJZs`.Rgn10=pA8tmnFeq/A@q`2sG>.C/>V6DsJ@P'!C %Jqi:)dnufOUHF;uGNF5BGeZC:Q;dJDLYW=jJKHF^SJ9rAN>u(]/l(BA^8778)b3he4.5)u^`I_V2JQY71`=#k*"LA(W25.8n-Hq(Na,5QVc\5Nc>hKcXPeec)@o68gG'`b- %2/gDt4q>s*BWs%Wi(07P1CY.7@o8-X$pLl2[*Fsq:0#k-:mqq\n>Vn-q %gI(#0AkIUZ>PY\pkA`RKB^da/+'&O`W:gIW=(8g^[LWHVe&r %:L[J^DOBSEeHu0/DFKg-H)%ABGf!"0]MVZ14>!BuhPbualRaG2njX)$5qe;+a;a"^=4kS52=LhEMmUPE2=Lf_?WuNM)L-nqYdDIj %2=NNG>tBgbc")#hM7c[fDnpo7'7&?:-`^@Zh8F4_CugQoG_=gLBp#ld*CD%+mX*R,&T.M90"7=b,;kFh!@gZEjGfWA+BP2'I/XD0 %Idp.+W"L=ne7=B08rUF-G-#4BhPbuaEt;;LjGb(&RqQ=]OZ2P_Ur\M-;$1`]MGmR:N>d%o>rZP\2eq7[cWA8H]ZD:I$ZN_[L0Qa$ %2eq9qB&1Oa]MScLMCL@O7Ld"u'17p,DcAS_bef'n]MScL0Uj1:njX)$=mIe&OZ.%5%G#%;,&buHS!COI'7$>WhV8Q=_N?cli,+Xh %O:li6#2U%o@cWLeGdD'2E[#F$kJs8!8;OoU")mB`-84pZ%D5hih\CFK\PNYW,B))IS"`N6]MScLee9Bf_%Bc,%IP%XaBNRpG\/Gp %#)NV"OZ2QW(3W6E7Gb!:*B/g!?9gEC1X)_V7an(IiH(pg/$8e%qCmUC$4lbForSi>iR0]D:d)J)pB#hT,YCp1n="Y'YVDo@/$,cf_PK.qF.$^9kIY-h6?& %FY.#orPeNK3)CV+@LK`P-8aq_qr;*Y,V4qWug4/^+HD>4M13p)97f)I@Bnf/#qGK[MqX>Q3(dFFr3=4lgUQ"h> %jnb]e:9pfms&a>^7$0YQk^tc,c:FQ0\kA/1IHJ]KHtTn^b"'UW0;0=6%n0mhS&Rd/3:bm"kSoF.dT:g=4>)hu+Poj4I)X"PEk\ZP %+&@$7*5I($K1\!23=j.)ZIplMh2;b&)R%m@r=7jM^Fg.&].'Nh&eWTINX=,(X?;bKZmLND^E%$RZX*0J@I=@s7agg?KG.&%Ptji?HL@I%da5^8cCh>=M,R*MoQ<0S*?nT7V2d1E+F'7Z %8IIBs#ZG:%Y4YIP#4Y+/UT*`Fr6KN;-H]Njd5&QoHCRTVYXs.]NA-t6L0(Uf&LKa\Y:d5H<%3Ku#%WQ6WY@cqQiJid9@tZXPdFTZ %BUTu:]h(X\G(8IHMeXDUgLW1HMh/ioN;=J^T:g^8+Ej^oGBB1BE&SB %;GBGI5:/237& %B,m%U]Kd,)9">2cbu/0Cq.9=?T@tg]S]onaV>?M]:-RigK#RJKK6ofa_;^Y/kbmp(p,8L8:t!jSV$;WPM!k@1luiT?%fMW*V$k!] %'^6K!;M#EnAB>]Q;JV>OD`M<&8n:Q:A4!TG8YNQDd3C=.4nbfgn6lH2R.&WPOm?Ci+G(`.0?0pJif181+CDAICA$`3DU%k:a$_;"BW\g)&M_h* %lYFb!0/Y'(RN)&R%ousi@n!Y7,T8HGF.u5/[V%Vh@O\^Q$Y\94@1g,F>BA'f0n4,Em+,FOP!^Fj3EgLKe.%nuk%i5tIree7@0IT! %*l=Y?V`0,"X%*$W@+4AbQ/.mEZ#-8R6f@864o)31k%?^Q\9$4(905d^c0ZAV`Dr_LQG,PB\:.P1'&>Y_A>Qeb?CX1[4kbq7d\-QK7K)^in2kLMi`X1u--Kb`(K %6;O!'@e-oa*;&YH6IJQZ"o="BKmH%cS?3kZeKN3I"WQZ_3n$D[g;]2<#5W;NTFFY`>B;1dcp%:WWT="UXYe+Bd0g+aXm!=\g?gV% %ZKnn_i2YbOh[dL1CuC"eX.%*>]"=eoZ+@Bog'*J@gK7N=F1CD^=]Rh?-tpr]obY*sqhGmc`BX,R!dmY;rcW@2L!R*UbEMh.qg.(t %Vjb*fSV?U2WtuSS'c,N`l^&u[mR$)JmG`6Kq/a%^pU^k"Ym%Td4Im&kE%T_n>m8PWZ4]uMm!:*@&X_kFO,[`d:P'e"_ %JRCWI)29GtU.-NJ*#'L+P/G-2=Ci=m+^H"3)kJ%Y@3$lE*0@o^(Tf=&2c//p-UO9Jan"D>jG;63i5mNDY2j9EHp5DUF:-7HA/(:1 %o.]U2$EUpgD29SoBAmCkPTit4NrCf[IP_DUOZiK;7&7UHfVi@62^]hQ[51nu*jrRdM,W_qc4]VHoU.cpGBDS>KKN8c&1]$Z0ZfejjCd3HA85KqJF_d`s$RE]u>Am4bh%L3AKStF?^Tt>7-@>Z8966216 %ZYZY]N`Ijn+6VA]WlB5Yf6m_=qSL5d<Tpn2tNh(T6hR6b!)qc=sAMic"AY"f#lb!p<3kKb&Rs;lhh(.=QPPC3"&,iOC9;NH6@]BmU*O9kZs$ZNfL&io.otd0`eNJ=`)t:Zj`#jqC%gF-1em"f7&:?n7hkok'8T/Y<_Q3 %M[TBD"$r,LAgO9&`4V$"1&bX6R2$pa$:SN;7P,:fXdVNNL#dFHe09"*^0>SYA\0n9C",t]:'qXI%PFqZ,6s'UD8_8iGlcdFFo@2N#FD%-:'c"s/JtLCB\Y%!nPr!@o_QXBg>)+K/Zbe22a&$I? %3\.;KhLQ2+?>&B&A!Ias]Zs-IYWM2=-grPD36B6CJ2\>/V"/2P`oQFtMc>rQsA_iiVS\a.U"&>$P[ %b$Be(6?r&^.sHE1UF:DDbFX0?FGL;dDA*(O3:],r@h#^NiQ:Degi`7B@3+?"?JZ0$WOq+KG\W-NDF=7ho$iuu\Fn'^TdPf[W@cQB %(0k@TVRG^DFf380%!eD/]+1HER_56&D]Y5Yh!i&]NKE*qRK_Z"nX#4IQ&l#2`Q-'8nd=B.h!dOCOfur"$qj*'..ROC<3XN3Tu\%@ %IF0P%8WiK1>AB9RlSfSUji^K]lQbYJk5Iq!JQ'(._:1]^F*7M63Q32t5I%nAF>hu?fgGuFr>p%kJ4tklU81sHrrN%,!eJM_NqiiaGW8lJjqUa1'CR&gI2VcWKj($++KnT=P.Mps& %"7G?:2eNoa]J,=UnN>R'#-pA8Y1Y%&+U>:e'nU)5QG:0MIl=Gfa5'4'^[rmu/rP3/b>]7)F'7XSX-f77"2+R_]Hi8-&O`'AB+r,l %3G#@R1Khqj#UW95c9%RS6'Ng)Ag.=W!qZ4:1<"So#+7dm.K4e$6P5_Q'e(bBN)?I"gehVilSfS1;nT%t%QM"n8sCc(Ob1^NZ=Jh= %;Y6gS=cSc'9VF(eXSI9)153:ZJtF6pM2Nc['NLl$To'PoP3)CUO[KOO6-GE?,.#g;4F,":Y/5rA%gaV=SZ;lClDAk':@ %b'>2/NR-;\/tdk1FkD`GY4S7!br+EhGO\k-#*`fd=%BMF>-4_LbZ.3Zku[`#R\>3)FW#emWUH$$MWtj+B[-Q`8'@&aICb04f?)fr %*Oi7T@&&iga&>t:,E`5RRF01403pE^p\A=D9-Z+LG3jYcDNG3^7kTQdNdYI6K#K*=^eKn9=IaFr7?C>69,O$%&k^N\;g?-1Qb0Zt %kA@2AJ(X1apWGk1GhOStbb<36;&[QB/m,X!dumeDn,ju`g#kXnKEOn4*ejhIiTh!5/EjLO4X*?-6U@oM7PaDm)g6fq%+D_M:dM:] %?PphS9_KYp<5M,_iIU4+A-JgC$g^e"B6GXrn1pJgO-)bJ`T^"00eRF$9fO$3G %V&",R7>203.4Q-K4_.ES,2,o="Bn<>ALLMA?VqMN0oi94O@<$_?4p2A'15W]j!BCC,"#3AGY&lT;?'G*,^3*"jC,ohf3,ZMPADA!H25')n)8:BB@/X;.,F`Ra"_!%Z=5?*CUjk=0V.):H](H?bsICdp60=p+@M"U=9q.#?,8'WUHT8-gZrjXY3S=D*! %$/il%fn;^>csI_2d/6"K73rPrAb4FOL&*)P:Yfj0UU(9gaDp/3KW&hOjJaXtU:T\\.tt\P+L0<$]dlI37X01Ce`+jjjHHKulEY^# %Y]Jn;eIVCHR6e=8r\#Wr3+q_BT%9&t*EYAXA_bS-Ml6Pn!PZpnh-QAUN348+'bXgn]jLQ:Y%hs#1T8?/pFuP*Y8(K9.mMQoV5(M? %)`Fh0*'I>$7jK+9UW9Bs5OWAZD:G$BZ.e#%htpJM)lG08H`Td$S/neN4mE`(f#-q"=;SuXA+nh3^cDY&rjg?iDpe@%P*cqaO"f@S %;)JYAp6Ng!P2.Crj)ZR^Q-8(mBl=%0P/H2bBl?^J"H3Q:/:6^I[2=fL+58u+$be?q_1gDT9Qu1u;X>qe]).Z/8q]>4UY8p!8WVQ_ %,$dGBp(f^d49cUk]led\`8"GGfc>`]9Et6PqFRgBC,t(ai5Gma0+tdE_:1]]PKUrD_d@2'.jtnL8QM2G^\k_9$]>&&#qE=>@Y,KI %@."8A56\=BjcJ"uS\de'\fA#e3F+`uPS4E+JY?oOG>_d?93e`2&Mi?DRWZ@#3^*ZQb._\;eK" %j2oack^YO8_N8%Upo8+Z,btZh(-@^uN8.Rd5e?$#V3\Z!r1d'HoG4#VN-NP`&fRYFP0/*c#TSsPW@kU>"-Q8r__C>+MX'.*p'+o: %ocPlS$e\ZOP#ODV/[_pB,cP&70hIp9c8g(o'fn"240(o8C;M$Vf3(P*_S40(o3 %d\,@!KN$5hc+MoDkAMHl]PUrFlQQ/,T^_RgBJX! %?eEPQ6WO;Art6>SJoZ2@q9;Xhj"Vk^VjsHTC!mn(*NfCT:uZ;rtp99327mVr*tNo %6G&a1nrFq\BQZO.*$I^g0i@!R6\J95Kopin$Hkjs'oEQ#K7c-Ak]*\u#S,kH+F:o7JqNRBje;XXp-pdCTS^$?A@4[RA9@&P3=7'7T0T$&%##=q:Wtc'\3^MQ-SR7XXh+&ILINOt4+)l\oR:=Z]4d!*`(o,;iW1WI2hK9>G"CddM$B=6F+,Ha %8Na,dr6C?ID[S\Cq#LP^?qD*2H=^sDj`c/mZAZ%hQf%UicBOE'Q,ECu+.9TgH?%1rA2]@Wucu#69C#`C)-j+9MPqaTI %/jdc@"eS#uI0T-nT$YUF)qtDD]$$p=S?kQjnZO]`YqCE6TrN7;ec.5ts+f=oJ@,/slLM0b@'%pj4!LY+=&B:S\lgWTSD2EFZ!Mub %Xij_G4/"QpWcdF>*:T45B%2W0-,:H[e>NtG8cTrY=sk$EDu&:EG4+Wr%Tj6i(2f]$;[Elm7D;g"=T_,:a,A<.T4brq2PEK'_D,F4EkDZ_*f^7G9ASh%#7bn*_Lt::!Mb_s[k:rHUZGOPj-IpT,IQ.FknKRa+QY*,-1$W+`91OE]2"eC$57l80(aS>2eZ`C %c2S4HduW>&/j)ia^A/k`@AGP04S1VqM6,aRH/Uk0ELo_93Z8LU@Fs8_o0hsd=Mro6[Ws(OIut\!K.t_XCh7VS27C.qRk.H:,!'X^H*G8JcC6gs":V"1d!;rqC3%[H5246>.*>$Bq'M$DWAN%>d5cN+4a6h/JT-fA3()\t/b271n]Fd@Z3ZhZTa/u5 %-]@>GWL:(]KZPG5;E$KOr$C"[AXb7anWueYel&?&h('E&LkR,Yh32*[ZUH);P*A`#RJmh@f&P1eqMD2aeto]=ObOBI&?,_$+U %=47YCOMB:O3DDnWsMO,TY3QXLq%S02;=:aWc%?)Zq+o0@NkDo2r2/eB=6qoP`ji'Qro3 %^u(c-R-=O4*<`[6F=6pT3RRp-"(1L%H4@$q43^6'A[5GUItYL!]Y3pB[YZ&"f?VZ3J[,p,EL\D!dcm0fYPhR.q?\*-k\9VRGeo?h %SZY3T7$!bm40129MVA#4^3DKdm5V:.qjchAj5Zp4_8>N-Q&I^a?4MFmR4BSHH[]^RTWK!$r`nooJ%_I\gPV$m:-R>*L %7r,fnTJa7UN-EEMD9:YC_,f-1lY`Qta*KjqDl1mVB28L%f]_5UH_o[\qf4Qd.^X7ef;6sTc0)hf$Prh3c[Jqb$IQb#*M&PR_>KQ( %Z90k2kb+lkaDqKZK>SapV7T9u$ac;"mNVO2maIi]%ume2^22LC %B)00[,OE.d&+]Ni/L?i.TC6uX*%]XkH?u=sbN&?2;/[CRD1&cUK_N3H)4]cFk[!_ml20#5H";c]4Hc[TE_'`dm?#ngB%+4_C*#qa %$Dc029W^n$Qoo+)aja3f2JO;ZeFW;m"VM!*.H1I8nL`oqJ5K%Cfs>TZe@^e/c7f&2)HFp`EbSLhbV&,#&u:']]7#PT %En#nnd-++SJH(eW<mUj(_/MB4Z#O:t*^5Nf?KdO^4UB/,98\5k" %O>K$[.S]q`jLHN5[%pG<0hEJl!Ao):38Zh[^lJAm"3E/]J/s9uUo7hABl3ZY/>N)T'5Z?e %L&-smre5bl:3S;0".3o'&.jIZKY_CSrqT]:&-e?K3):3iD^L:[[5M?q6*3!-DSe4,)r$@C=E:SIGPp^D^`$kN#JY>Xpe51)_<$gO5C_R7Y"%oW5(@uZE6nN>23Bm`YH9-AgX`I %(g!A(^"J$Fn)83h!@79HWn9s[&jb>=uAs17in\NbJa@)U2UdqoVa7ce"[J#SX^ %PC#$#^M`VhPIU>H'YS3&D+.j5mGWd_+Cn?V^%8LWdo7Rm7M,bLBo\N4&o22m#4$YdpNBGW&tCq_l0I,N0l11^%"T[9(L& %oQQVJA,Wd,o@(?*a7&]Fh:HX9Uh!M'6WP=Ld0man$rqks5F;"+jIT"bRZ[cB[?%a0s67(i<]-![FE^@gj1fY,s2/nLHdJ%D3_O"j %Mg6&:W:PD7=oZ3jDW2UNi5^-=^KdBgSm+AD25(IT?CJ>naWoP:nSU`I&+[>dI(*&3D4[0+MgZFA.^fPR=%2_+Yqo`h_cL(9jlSJX %3piFW,RS=D%k[c`cKQ.[TApt!GJ5f:@`M-da3V$q&)JYglLVMm(=pUL_4,]l9K(hUn+`"c2,^8KdA8RLL1"8tMkhM4H8\39Gn7oh %]1BDlR8XG0GN.1Z,h8`i@V$Zlk1Yf&rQg/l[_^2WSChk%-U)Q\pdBh$`oOG2a %ceLH\Z[R5/LLDuka%\T9jHJ8X8E=bXcE:Qn5L-aCB(OBZgY:t"pPCBr`o<$e)\RGO,T=/b(5m&U#nJ:ic;g)R8^omL0ci9UVfYaglfW3Tco&g-`&@XaklkreeXA>YnXj]R66Gpq/"m %*F0M=8c\'M:XA!e(qS^NMR'O,ZTr`4mq$omiOs)G5S:5B^pPM@l"Ha%R7AMC&*nYl+As*nV/&N5F_50<6$Lma9_KTlD[ZqWSd5O_ %Hmq0n4XOqUM=Ocd4,QrR:Z4Sbh\[!M'Z2SF>jKG`s(M]f(YK+?tIp`c8F$m+FGXBZZ %9kf7S3k?iJeV2`SBE&G0].2t,97)%i_'a]X>9hlmf8a;7j;"2^Pjcqd26rLFRst5]HM."f3e2X7()JA,m+o3I.rfNf+1&M=a/u95i`iC#/\C:d^#3IsUCX^dGg'!u(10DYr0S*iB$KWF.<0IKjG`rXqTr1_2SI4mKXm;6m8V)"H_TS9@')pIXqh+:lBOI%aV2:dJ!bKN8FS;#[q>%Y"Mb4da$h[=u>ke5IBfRrglGJR":)4sK69kSs+7 %O][^p2VKb]as_?TITc:E-d(pqDedCLGE!LpS?ug!/kGO:$t7[&5s^Ye?jNesQ@bpm"8dYuLE#KZe]F*1-:ujb]+-kpq:ca4!3A@F %1_[k*AGk5Tr1X+.ld8[V*nErO_g^Y-UpA+6/Y)0e(Upd&US:(UC]f*&gN05>mbZgrgdJnj03->hn!RrXlr;nsEMBPbT43Y:k>j-6 %2b(&O7ZYUPRe8\B2JU4W_d5SOc,WHHq?Y(3(P^h(D2)sUH6^(cI4@MZd6^&!AZ6G0f %EOXNFb%<6@5!NcP84^jI%L)3KiTC?]a$GZ.m)+A\I(+im1GRUEO %n+4?(q6o=!;Mf8WMdTWgYJNGeY\@!"I\B_>l?_/cc,V&4oCF`8&Ue5l&CKf$uVAI/-C=3Xgc=)=sP<3 %o_/k@(,;K$X>:,2VmEC#hqBY[782imF!\$!9Aup7+>4C6O>mFW5s.BTnI%k,9kl&L=5.N9J_q&aU(PIEup"3 %0,>#Mc7tR1Q-;\*qaRWPT)PXrf03r>Cc0u%5J@s=V!+$86;T`cdLJ=K_YZ=Vk%bI_BqS&6X)BfOS4AlOnER&u"kl'kGhkA`e6@:! %26M3LenHB$=^^)7F*4"p)R\Ct-0BIt/6Do?.[gcnp"E1i>):q.rn\;)9T %O4\cpMfT)c*gcQ*4oPt2iDt""DsX56m.ogMo"UIukFB;8BZp8F]=7kj0ARj:?!On:IWZ@*_&puJ_3/*N04.1/A"iB>:DGEE\`0]! %BS&YlNWKC-+jpDi-GdnS63acNbooW#Z3loqq+)If$AE31dVJ08\&Kc&p'<(k5/BQK=M*0OEopkMqI"M%FA6s#],QfdC%Shq*S\2u %hM,9kh:\8gAK/P;2^cTml_F79E %(OMSHr_)S[;H%kRNcZ>_FEY\i`+G]\b5bO0Ra"/V=^Z),b@Z#(S#%0!?N$Ij3\8)t7[lChkcb3e/#M09F'+a^acJkRcD7\3_\2=> %7$\qdpab=p@q;$Np'8]H#t^Z\*,Kd[CJ`m97p%bN.LrBe9uC] %#ri]?=Ft+M,0=7"p/fIe1$Jcn^*T7!2_O0q"H+f*.8o?G:\Z6i%-3iYZ!9RHP9E'`Y*Il&`L+ISArJVGLDQ* %@U0rA*Yq=>"k0gai43es,f6T`b'fd$4R6\&ba[`"ca@(\3_'&4nX*[fpuI>.9U7;5Hu`fH.4eW+Gi_QTeMJFJYk[8d4S^35/3^UR %XiA&+jYmI2$I4?^0XDcT!j!uK@V.^?CenQdo^obFO$.#^O.o+ab]`=`MpWOO1Y]_Si+K><1YZDD&_V$fb//KZ5'EF[nC#7:gNO3; %\%usCaDf>Sf,)><9CV:P+>_b^;$F;\@+?&.1Rg>$,f4G7m5EAh,s#YHZ^rL=E(aiQ6&HdO]>@au_J21_B!u7ED5J`":WnQ]facgD %k?oNDAio0T;57W5HgcA8B!sVmjCbs\pV$V`qf&a9?`ir)_9,hfe\4B:[]jtPQ^POWdCR(nL1$US\o"_Z]+#E?0Jbdl6@W6A_-G(a %@_8/_kWWSq5Q_F^!Casl2PBTIHo3\EO68UYp"X-0n$(T+p<%]^^Gr"We9*&F*0Jlt=uOl7@u0bKg#=DTkJD,kgJH"U$dOI2VS]E+ %/eQG16RiMuj97gOoMh3+`YDK!(WMmNZW0nJci?E_%*r'ad(k"5hHU">kiBKs@Ym@U!'aNbSsGmWJXlp&=26pOHt38,XoP?D1F:JH %pf*JG)SIdqAg5LBUNOUKpqn&Qqh*][Fq[VPReN(S4+LFLR00H';IUM,q%%XS'$0t2LV-e(#jcJ#J,`V),AfMRR,[J`0<,DQriXgZ %=+26>Hu)c">1LRj6*%S=H^_K+qFhi>mJAL:dq4X'jG]tPC\#cp>aZ-oMrM1$nWI!Z@4)Y34R0aKoASXaju#SZ=QUTU3&A+rZ]-.5 %0o,MDVCs&5UPQ`56>M$>UBnPNT0"2$ENC1D5bi!WfI145M+mK9OAWrh"5s,%BGB,XdG8Wb,.pbuVi,V^;8ciU\K.a7ZTS@Z&Nf/J %@\G?p-F.6.7>rG=#-&'5"rjKfD;MmYg3L#raotE;ksQa&(suLGEt7rUD8;=9dWbb'#?aQ278^*6Fb%9 %^7Z]Km%FEPG:sc5C#`BBf>2C#qo&VUF4rudk)_AHc=mf/R7"3e$tBfj\]c4u?`'E4J^:b?J""VF!Pr=Xq95NL>2,Ud''%M*;NM>7 %L"V2&7"T6Z"7M,Q_,D/jH'ag=d@"knGoDK6odX6U%(SD0G,iGtqmnaC7J*N,:A_Stf.7;oH,#Z#,@jX\tT7hQrYX-Q..X?oBL#NSKpG]D31#)3N3)F7Up*@h$_tq-`N;7G%HPcR,aFr^>B9C9IADJ.7+!?PQZ: %CNRh)38J"c^IHiQ$G-XE\LO`W'mAO_h653`^FC]tMZK"Yo_IB-AeK`am4l4[UMG>?QqJ'*ILT$_b%cA?9b2Ef=U'Q`\h^q<@T?P* %Y*?_7#Zb&bON(a-=QiDsT-^5"-g+R?.01%)4?6H.!.TsFb-I1lOj#pJnj-]HKu-k+HLaQaoAj`^JpsD\=V@hf!hnG`plT)uTsN', %o+]'aJu$*,bS-2*jaG"eSU#7W/0QJcZ^#)ZZ'*<^M,kDeq\1hZU6Pnn1>EIeX=Qf:RTU9*/9=\T/dF;(Su[a*Gl5R4CfLg7'fPRc?XSQt!L\(`pG%Tm*KLDnIt)U6-GI:7l:\43eYTq-Tk.qAl9]IRW\>75Yj %ii_Gu_cbQ(,Bum8[rEAhj2)ql#XB$,5]/OSRmt,"\Z!(;U %_5LC881L;0!b/C>cnuS5bA2=7l9#OGAA.?>T`:3f_0q4U2(iIbcXp`3]h^Ah<[CpPGT'k:6'>$HJG0t5@.D@(ah4#%Jg?tR'fl`C %AS&[fHisUE4t@$/(Z)\RIObg)PYbBdT9V9dG/@g%3A-BMb/1K'dBpR+[IL7O5jsF)@NaW+`]2t2&0`2RDT=oTQI_#ia2\3a_-YHY %XL_?&',1Y^,0l3ZnLh26``"6M<5"UPRJXnrVUkbBA'HBP?uaX`s6\ACQ;ep^7Hbs/-.TSUfm@BWID(t&Go%N![8L[Oj0RSBj3W4K %lMiI)_E$X=]F2l:&VHnUbIdPm]D2EC]/X-H[I]$QS&A[j`P7OZ;:9@=[F-.,s./cL-f\FV@s`kEcdS+E8.X-.K,`/4GCIg[M)'nDQ->aaa6MW3bRfW(6CblrGNG?AnTo5i %KQP"P%4MA'TSTZ#1NO>4hE!9^C[H>qmMk[RV1!ZT5;Z<^/;[+f,?T_3pJ+p/2[p(<7hs-;AlM&Vq\:c>P@koX&IVGS[#D,Kk9Yf %:2Z?!$p&S*Xa/ZIfkt>MT\%Sq5F6MI3mG1[94rGZI1qZd4gNL!5DfF8ps?b_^q2R^V<[oSO+Zlg'P8Ybo5i:+qo)2pLGN&K^-1?8 %o80KqrCcn$PfJeo"m9I^cXBCFpoL2Y=3Ihiq51Xo;)V!Vk(!92rBc;$knF=@Si/.K5Jj"D9XMYU%i %,rb:J>-2%8gbPWD;HOiVBmt9@#E=(X0pkSGM&r)^-g4D5fB&"k]A.1-f'kEqm\-iH?+b:2:-=j2l@mY7iVQBsQ[8Pb/MuUs`+3]J %e+p](C]8Jdnh;/`MjaGa$X!\,HUsYg>fltL,lm-M''IQH"4+Kj9Ye1P)@\)[GPn:lKO1<1ZF;SJ''KMcO%"rkPL$Y6.RQX9eV4^Y %P7^)6ctDkuX%8m"TO-`i+@4?^oWI7KJqeh_5\mp.1,fj0KpB)@Dr*-Y-bq%W[8BM7-HfLf`Ju:]j@]'/]nJ)JGE(t>0,m>YQ %E[(,W;?T*R6-mB7Tbin.k('8#rrNN.]hhZG8\lW7(j]WY_[%LkrL];[]g2=MjJ8I41jXE1"l(d#[71P;:nfT=AXH/RV.e7hM72Ua %J*$YIX(\.B^eTrtkSN+oAjrOt.u+6qn#OEe9sH`KPnc.l^Y/?-`tG8XI+GFj5gk"\B%oU.5-iNm?_Q&6tR- %:LW5VMlEshlV,pl`!)\`,TISQcf0unVJ;bs7Nh&>YB5=io9%Luc(=Q?XJ$[?QOV[G4@`I`b9pK>cGoq4m#h %"asfFoX'Q$0'EZNU@TQ`/ngku?Wb\AXd1"E%!&H1`<@V&=>tS/=*^`p4?,VZ>m8]b]ZQ+==+PZ,KbNOq5+EbI";Z=PLVjF=l)KU"F"=cjj`9qT %CS@4"jCArRD?+?7]8+FE[J"mpA)ZTYcPr:pC,WudA#LO93g5YdibFH&Y$CCa:`i`B\FQct,I4G]Vee]QQMNH>$gH[rR_[`k-f:EH.Dqs\'*sh1XVMk7Y:\dPtXDc0/g6.6>dP+[KQNo0Jb7p5In^tYPTamnWje.?]Qr^Vh2BgJ %mkKIOPnC8Wh5kd@=(+Sgn8*C:S3I*=K_joR[07SMNRr`1H"O.iB<9<'o(_jYTJqm\jV&Tnq)LI:G1XGSWHe2)^H*8Colb/bNJF%N %03W'-ooFa\,ZhZ\dsBQXU=MJTW#CZnpU3rtENn\;[6*Otr"4dep=O=+rJe^4AoN-]_)$r&"aq\?H@R&KorQ`F/IjOgSQZ-AFQlF/ %Y9U_\9Z'9tMS'Uk4i@]J_4%5/EGD;VS!JI8WX$h`gbpV09$"(.U*>_nZS/j`C=_7OS2MgZ5#G;4D,MYV7o:Q:l_sLfbjW_lP9T6)d$8Y+Ue(=bT#o1`V2>u0 %ajZP6:0#_INu;-i>PL**J\0?Ii2p]PU[*ICDte:J2CXioE-2kq(^id7K"Ih[q+?K\;PYoooSjP*]0NFRI/3H=riQDSVP>o,_^ME!+*2-Qd8sZ/TJ>d52d;h`J1Nr[E"e[,aS#NR'<Yjhn\TU[*??8$uI;0?Q9Za;ZneF8) %eUt&ceb:Pui[Iu4N:sWsF"ra,dBD4ok`D#$R$m>hj&i_:$$BCqtbmf4#bCqg0Z6:N8o=gV12KS'RBH6DqUuR$_G9)f&Dj2fj,J9/LHTonE %-T'84)oj2:eZ5?1["n%mTUW!TpVLKB9-0\4NV^]`[P&Ps7+h:qGVVmENDE;+%\NFREa*B\'8,,\eX!okN%(AZo.D=7#P;hRqi2=hc4uL0:]>=+En6)5LsSlHuh9P-c)PdO1Tm1bV.iA!^QIIJP< %fhElto*=pSKcHIVgElGGjAFBD'+-0B#g*#oR[q&l8$NM"?mY/2"ZoU\>WA0"2%7dSTp>@t?V>./eo\cGCX[AoCI\9Cm>TO7lOc_/ %K@L,g27Ipg*oU97:kX+$Akp*gNGW21-iH(nAe%l%CoKFWbT'GmfMZc7R5m\F9[,T\]J#G9K4crDC/-$12eb+9SXM>DM<4(4C^]QrSs4IkPLj](^(/$qpNrj_O:qr]Zp+^a,&4tkPMMO#BS4$iH:oN$CEfMG+FV3.]igf3Z0E"Dod %g0=1=n`ZinYa)n'c*4PK_Z,4\` %k]-a$3AeBr/J`h^2+Uk7dsiOWb87GO![Gq^o`rCXWT\BX/gh$5:.:L*9Vo#3bGj]G4T?T5?>cL\n%Lh55'/eIPGQ+=WT\@0V`,U. %S@\&Pl;\nA %)VP?Jmm)Y-aW+%opU7C:n8^"i*0OSYnFC,;W37$?]iBJT:DlbA2?'%Y>HA"3T`d@cn6Z(_o$BlPU%ojs2G[Q@?WR_WNG>@Fs0Z5&)8C@\j5$h4ql%(%ZVu[fYNigoXWI>2h*/E5Hg:oh8322?h4^d+KSaOXlc`(tOPTHm %=D+:5K?Q-R[m$eu-Q(6V$-Y*GWLe^N(pADK=)Wsg/YA2.4f,*`p"QXS:i$V1X><;ASnX^'P`fEB:DiOR._Y$^fDJD;`e01ud?CgT %ZKTosm0P9=S\AIJoM<:e9ILJh3i0hBihlRM['TD+]Ht=Kj-"@;a^A!nU(hT/MF#+qfpC)\*%^%_25H&gP&PXu.?')ClCUE#=C;5r %*4@bsjp5XnP1)X,Y*929Xr^6WA,)I&YaGuiTE36(lK%7*oo^[?3du:U1nZ,$1W(M=Vc?OcOeu8KX!^'66M4;!rG,m!M!Kg"b_9i+ %[n]Me6XoNf8\AtISQKZWZ4Lo4RAi^K:NQC.QWh=]_&0)*r^gHNigUHR&i'YhW*jcUX5EkuoWL>;]Z"JdFGpE0)fIKnEg#Rf_Gp?B %)u5gPl^,;_Y.i[ud$PDshW)F9%.b'f>]t&H_Mo*p,3Go'?f&eKMJ=F`,N,jh3D#E%&e12`a[sAJ,0FIe$]rJ(1hBq:ITfX\e)cOh %.HLM%XBcYp\\6i>hX-FjZj?Bfd$fI,SV(#'`1<+Pc!cqd^n$\Lc+1E$G=_.l*,j-NaAdADlHNo.S&aa_a>TKA=+/Ab("$\59Vib: %B-SHlo?pBW()J9VVKi]+1Q%?KScA8#7ai\f/DAK.8.iKfCZZ>]Ut/38BH$6R:4HJ6XKJ5W98(/.e&#Y+!:#foB;,lN%-5Qn.O/@2Y%KbK;cY+5eJZ>I(VdRHBHP#0 %"8#`3HsdEr^J\en;Xo;u9'DnM2Znb>)sON[D^QpC51d@#mAql%271=E:Bc7fYRuEG\%^a@U[gK2D>jBUUTbS[+HDgJ^e^rM8P'qD\cITGj9l,->d5K/p2O7.A'f5i`[stgE93mt5aYgIP %H[kQb2]CrLIIS>&Q4^'WSl6p"Q&0`.?NPIBFG&6AF6E(jC*kSOAOjJo<[( %JeK%II-J<(-(D;?C+%?:dZ%5"*5e,&]rQ0c=^oaEBnl#TkV(QJR`M0qZU0.*&.c5)bk) %jW?h]+V_1SL#/*B+r%;U!XYU)iZL"0ikD=)+u4hG[2P)CTnn2"aRmdMWFf0;"X"NLYE&(o-kV?#H*M#pMN"*2JdB>F^6:'.KHbT= %*4DtsT1ZJCS'@l%dnZ_9<;L'8Vr>-bk%mA;#Xo.u7+^)IN`JD0H[k-!l:mAg+&'q>^4AA2W;)U^Mk4&$drQ'5/3t&UaP%p+^_4bk %ZMJ#fdgp+)5(,*Mb7!e+kn'L@JB."YnK*ggYjdooC+Om^Y8-`]R?=%T&rsB3kh\;b)[jX8!e1L&9\W%c,j^0abnP7V9u>0n\%(#' %F"X@^fQjQL(5o1afRY?;kCqJ4>T9_Z>HM15\*l6+e]o-FfknY&CZrEI`V0llF%Lg$0S8\O9)\/>qTA@Z@C$8Y,1TW:g\T44GgjX+ %7uuDYpA"LG$20Tg;C]"L?b89e0_"5DRFGs)oHe*N[i\g8S3>HEr&rriX$8IeZCYjSJW(Z+3?k*U#0@a3%*t %Sk96$8b`4@T@gK?OdE7,Or'lT*nlJHGIC:\,.6_6phB*0@hHUC%ITj8Q(J8,njD;Z6=PEu$&iOI5+2Ac,VUFD/jc6D]cP:Skq7Kf+BZ*hqIkXHS3\ARWBLMkJAH=#Ze6.Y,_'DfCOkq0B!@+2Ig4S@D/@Rj2Uf8HE-au=-[+'clQs?a[ %>%Q.'/TTUV+DEL<5F;RCFH\)ICZj^3kmcCmALfrg;Fc$pQh>fqNCJ$\E?POu'K'-Fn=nLIGTCPNF+`S(L^6%G>^9QR391ee=232J %a6mrrLd*MVkoi;;_IDq.@>5V,a:KI*6KZ[:lK06u&/qa`n;"G4D6)p]Tp='M,JLO>kIousZZc6cT.=tM/9u5pUse;N?oh?@6P&Zs %^L>'I\'8"uO=-UAYa=b/H@C8]beX\7XXrn3`&r6YQ@n^^h`c%o*!hKHEfS*s+qEi.q%katf;M'9]8qE!i%-:m3kUA[r,3F"V7^8l7_^[YUf_JDN!)4nMHQ/=sD>_NQ-Etj&ab)&OT"soH;L8JgmMM\B@*+hP!\Z!]?,8IN"VVI()(bEf %/dF"g6;1cAlPH6$XT+**@50i19OQhWASAQ:FTRKD,-Y[`j@ira/8307Q9u2?(_LtAbmLB#nr/P.QF-%L]C?TmEh8S'!P`Y1K9]i3 %^oA/o^4I`:coO1+"tRUpRiF)-tg=TikY)R*[mMV<[oScg'LF\mWN-Ph!`aF@#==Ph!`aFFi9ZAT_u1?&BQKlJaS1+:/q.lJaS1'K)]:`FX-W %Z7D0i`FX/-Pq9E+Mh-$qU#h2CFJ7lb:s7J8?A?;[!aeW=b88EQOk]Fqnr!?>7cH",;]T6/981\9\)iNYF=F6VQ7nEK78#tikUUhB %TIW[i3?RPM>Xsaq9BB.m<(a9gdnb %0LmCsHsN=mgH1js_ %amDu*fe$PV[gRB9-;1'g2;'UoK$;Xbi5Y)7F&K*$5Dk0\G'qe*%G.K#)L;MCOB6(sEap`2!O2ZXkUMEOoP^ZUH-m<7/1"_k[\5&OQm$QoYQJ3c!C-ODM`5&R*j-+-rA\imW1"h2!><&q9gmRaNm#KYr7h'n?Mi=)I4biR$HJDSr7*'\(t6lCY@V&>dhZ9:%. %$L">q]$?5L&W%cWQb-l'-HP6VOskt61Kbo7O@0rh01dd/O@0rh?VE(bO@0tVm9&n!#"b%F9K0q\_>\kZYk6tYE4,H==D6lPkD@(0 %dN:(?dJci6Wip>pX8UI:FfR:,>l)1Lq^@epp"RphD=%R\jlP28%r6JG=C,t?"\gWSbKJ&DMjRg=b:D7FMsg":f`Va^XO-8YarkAZ %@YO$Y81&"8X>'+$'r!X-&4'gRG.nIAc5$FLkWKMAcFZ*#aO<\-q1mkfU>.DQ^F4Sl&A=2pOVnog6bCpJ3C;;&Ktn\%pKJp4#gno2 %+;2iZ&`VRLc\tUI*[0Sr9d8Q,2Cl'*SOI=FXObH$[Hid#GoNf^+-Tl&?iIdQ&S7l`i">s`luXQj,Wt)hIYq)DPg)e<>84AgKGLVP %F^mBVO&--DX3u6GrdC/eNc-5#8R1<.Y>NiE]oeZ?# %J+UrmVh9*a`BtYt#&EEoHs"]'DD#*YGsjeg3ZcZ1B-*2"7l93[US2&/Xu)+&@4l32+1DINe^i:o;-j#n6cU'jg?k0sn:p-,X`:+6 %1$Yn$$TWK#;B!rY!m8_3P1#/2k:1!`na)(^3cf['^1S^`FllbQ@dRDn$RbD=M(_mg+Z.sc:OKtlAhrr]4,t8ciJ*OYJ$a/^S(P0U %\/67A&H@"=k(j^hM!lie]g`5c`6q=VH/OE&BuVpu"hDA/gDtQY6gp_MM(dX:-OMg)>s?_0%J*u&KH"Bs"r[4!:*Ma/+o\9p)DU"Y %YG8a6/-<=i@_+:L3qJ'><0<"jX,Shp\07/$MAe5)E/G2>$/?*,(DJ`93!e(UkQqnSg^qL:dCV/;\=pitTii%9>coL,`)l'URJ;A^ %b=LTH(5F0K28<>E\plI[M5-*;oY)R!,`4G*@T]LMGN7mi<8BsbC.WWA7Mfe!ib(fO$r9$u9bVlpJ7=_U(0]oNBFJ=d9_XrYH>>AB %\g+N^.p0p"@3hBA-=aYp6u=\JNC8.;Q#Q)qail-IAFVNgPMr(h=iF[` %2VDUj/M,&)bpJ(M/[;hO5c.8qmI>n9ahUDY9)sk%A7S#_Cn!!@BgL2pRl)cGa!QH9AS,qKYYE-$l3qTpJ]B^U\4bI$K=`n5/E08hRDQ.,.C:4_1[nR;d[6ZQEX45BTnR$(#FWP'0q5)bfTm& %-W_3<^7IjYJ"DPtN_V4Z<\;K9["9;2AgBq25q@#Ig`m83C!!2D"mR[;_R`*3C!'p;(4UWfjQMUQidj8c_pT8>X::[eRH]a9?,>!+ %Mt@%L.2_Kqn6Nl39u6%BEH_RnX`AOfZSht_(ol&WQ)-!u.Qs9T'n!DM;fYPh"e.*3@Cq+o,mRV5M[gct[*$NYSIm+P %qCGKG<5*K!hAm'](!J-fbTp`OY$h46*uc-kX0!@1EqFh`2LAY*iC1L3-7%ctan0*;@T+4!jAt5G9>J:P1W,s\e'VWu]7LnHLUk_Q %\gs/U.G3Cm4(!uFJ).;.13ZNJPo_D_qCAp;f/X`EF#,iZVTO.>cU%'5C,\%Ps8gZGq:g$Cr8JC-n7G_JtFNDcH@cA %"H7/D\.\^=#pf^UJtFN$p:QUMcF.<9K`@X6De[WW&B4D)HqSFn7.i]'hia8lEC+8Tdo$D*&8PKl?D<,mdb>XM_@86R&."%D\Dc"5 %JfS`BP2d?5ALP'sb<.Fa\Dd"<]J/'K]>h>T)7f9+<2O:*<,g]kd_=*qP>JSJ*!Up6ium$!r+mZ %qP6OlWBiqYO3d5sNib_OT4]A2$cD/T2\qh,F&X4W.Is3he0#s2#c'm$WBipM6`th3]HT.h83NlW>TPopH#n1/+Gs9K@1]<"N`6$n %b&G=(RB,O@`NTG&X3ZCH"8eZsc.j,-TIC`VAGc9*(!te2Fe,Jr8W91C?is&?lOWJ\^VCXYIY>Yd/#m4fk]fU&?Gb[K0"Ub[ %LR?0AbQ$Na=<`RX].<)>'HWh>orG3qrFs-B]C3p\qms]ZG-kW&BV8k]-]6P,RfYXrm/(hW^*["K./LZJoctk]7+Ctmk[JeRFE_&& %f.QqSoWUPLX'OlB8*msciLS[Hd?]/_KdklA*82#N\cW"!EF=9-pgLVF,m8*AOUndhTPT+jiC=80m5YM@6AEMqE19q6OhL`'@"DlN3fg&p$ %*T`7TeknXffP+C1BDZr4\cJ;h_n_-Ao6;t,bBlWd`Q3-M8HV-*GIM"9[KKBTD7!a$5@1AR:DR>(J'l`V%r5gOZ3oZT?L1f_=YYLu %H@_b>WFFrTJ3),ZaN8MJ)!Q0%)R/dOq.[A=RXN@.*q"O8^*T>*b9,0:G=X]<\GS0gdn/W\iUYH:d5C(LiBFpj@e&p<-C'A0:W'To %J%0a5r:tBC`cud=r%qYo:FY;*37thco5HAU`ecV(Je`/R%^3l4H+du;ZRb`(!\1B33INGXd_aRqtn];7C%2We7:*-R6h4>1[ %oYJ^:pr3FGDh^*]\Up(f:%<)-.PeF`B@:bh]98A5bHK79[hp1tQ_0#5W;Jb_IMsh$a*;m>r6]QW;n.+_r-,08o(-hr72k-fSB8\1 %Vr7\WK9qA::W#WQ(cMtlT8&9W[[]HbIMsi7e9H8Kr+!IF&&ZT.jWF(o<.5l@s-TusMm;bjq8[kW"q_pff,F7_536SEYNi>jR&d6D %_Ku$ZnOX;H2P%mtV>;;stMm_@`&eoLb=/>m$U^-h\ft!qq1k)dLTmPAnT5h;r;;JnH5Yl:tWm#ITk=8)7H:GPG&VrJ#[EQoRXl:r)mpe$i`IStgdd/G7Al;!=hie^W;;0V:c[J7jaU@-O(]D6p7U[I]n-EXrh0'[>#oCl-[)kWCB %XI$UE4mt!ec/B/Hb5n_Ktg=(oPp1F0QIBK:tO,o2tO`AOj2*N5KGi8)q*g&R, %h*?JMGGSojesg=9n"-pGOZImmF7Tg>ZB*gY-R#[lPDoFhf_+U)la"3NhhO)h%=E_$*,D-.QsdP"Ub1O@!.+k!?K#a^ep"5dKmB@P %38Wu-`cJ1>H)/7DGAl__hHZ+UNQ\s1hXAUs2-<'!n#G1E[]Bkp-D9h(^AeiC!#B>kH\Kb?GP4%0O];,4O0ZjF-L/ZD4oT^kM'^0B %H_ek13:CldO/0uE3/MZSO/1!p[A+S\'XGJ26Y>VGjI2c"N9&J5aYgD;&uDEG8XW(;Q(<4H\Rt%tQCN7HAKJZ(PFHkDAKK6a*5qo` %0Ct"o@*c%'6N!]4E<+\d8UZOZ$)tsp@V1:0R/(AaW2W;^;R<-[L7'66`g()%:"W;5;NE*@9Tbom,T12J!>-%K=?sQS1)7Ie/<2=:`R9NpA:)L%_:Z4RC*;BK]4-:eM,;WEf"<*E,V %EFuCG^/l55dJn3.>rj"_I$,,$bfMK2"=(L@>oCYQpo?'c-mujpRS"f:)!*"[dCZ].&AS4F`L%^Ts]1sULf %'`2SW\k:CDq'*,:67*kRY*\'t1]1D:M_D.Ecl8]>SE=*J'462hg16i5p%rtL@-BZ?SQ]7h?Yeig(S/0\p9[uS*f@2RZH]UU<)iJ$ %FY0i&e[>@VNO)T8d\UU+gI>0^TG'#Z.S/5!6b,`'e"6I2pXqBXNo)kE^Pe_V2nWcgNa=H5e#3F<.hh*e'S %-J-GE/8i_2J/UGMG_NM_0&3OP`X^\pY-P1)Mh5F0NC_XJ(QS>mFi^TEt&&6rq$'VDH:P:8,?Q_42XkD]8[ %HH5B/oJDSA7O*E?dukN>/XSWC13T&[O,*U>R#X`*0JS;Q&)OJ`r#I+'hq9Ju_Y]]-!iaJD3_UM&KmTkG3_U<=rSYX-ruZUN]q;a= %G2Xsu7:9=:$lC7@l)#79Ctrf2EJY@<\D7*Cmms+'Asgu)p-.Y$q.K_jlpS9ZRl+upcZ8o?3ZYMt]>a.JF6b4 %end?*qk;^e?22t4_s`'ILU!bd;s0!rG.EDm0dNqT$JebCqo3`J9nF;*3(>QmkLSI/nouX-gl$j\Amr/Nk]IiVX`M_:#Ma2']VNm> %P'N\g//GQ7WVa6hgUh.rXF#8D[!gq$?[V2&$oRdelj>%FXAAOc`j++DB18;9ies[qK&GSJIdpB*P#'#,qMS_NQl>cq:.UK!4#q/G %iL'W(TD_),-/.um5u(8bU^2@G^HA-_R$AuCKOg[UkFDPBb^LF&`SZ#A/*dDj0Xo_udASl\'".LD>"edrQ]1/%79-(IAU/YH"$Au` %38(Aa71HG)-4K#jc,qe_(OX\=r)OU,OuTASpoQ(n_"8GXQ%bi?Y3E-#923d2^\DHVOFEmO3]2$*JtB!4m:i+5NL0iMP_D4;9MJCX %P[&P"G6WnX9G]jKC2<`^$LS^':M$)CCA4rg0%bc,[.`*1n-IXm-ao5V'3ObY//Lr\+k$+FWS,1)YcSgI;B*'pLIjP_rILU2b*'1u_'[EQO"]oX+rQT@qI3CFt?ObUSBCL+\5[eK81!g6RnX^BCb)3TdK %7&nbR(JcodS\#.6CQ"mpkhc'Ogt62((a-_;Q7ALM_RjNSH"4*P0$uifgeHfj%"">9U3dILJAD_ %\3t,Uq'DBE/L4q$k+%T-@HF;`]\JHu359LNr]Vhk,B1VuU,%s<$JPtf_BH&BP.0E`IAlSQNC=,HQWsl!>_;u2\)^Gsif^3j?"P!) %fL-R)J)8]Pr%9:&`MLOQTpK#A<*["Zj)ZR\"sW&)n\>r_\D(%h?0jk*7RtFoU,%s<-:B@:OV6hm&m9%jXNV[)<1sruGSOQmg1;J" %?H7UmT-ihLGTTTt9nMgk/Z+I&*p)l]kah3@-%pGC54iLf]^I'JFt+-Y_."-J!hNT*PObT3p=4ck)BEdl'&Ff7^D]R[2 %@Gp61U,aQhP`'MAch.hW%>TnR!ON=t+27G^7W.'iM5Di8og-$=OEJ&bqZT@t'BSqiQMF:hR?kpI)C8g6,kS8D*KE" %mA9:*fAN^`]m/,Z+b:l %XLIq%=^b7PYIW:M!@X-2;cM3C6910%U3__WHCKc[Es2eDej?^>&gp`6ZT#u5N_sM*:+S)q_f*o$5),YIp)/^3%@_r90;gP %$.D7W*cF\iJ"INcG,R5d^dEhHMk;VM-o/$6`sm!<$IXTjd!Yg %DK)f'nJ2M;MV1FmR)OsORTsX;IcFLJ1ibcO^JWKbD[c9o`HCh4fnFeMCo-f$rJ=R'Xe4:I[Rh%%Xrl"lIQj?P^_QLQ4kOm"g"i\? %:hhS<\A"\AiFp=IF$#YJoj6[a[KO>%[A'h;XLoR'I&pCfgU5!!6+[oE43Lm$/F2$/_;HX@9anHJB@f%,nG_9$F%h:E1n-qOB`@9X %B"#q63;#\D";$D^%XfL1BZfK'.8I.;&%Ll#=h-[grg`T] %!1dP:lpu:?a1CeH]i"f.)j`AT^[C]W>li8j(jH+^C]DKjA/Oj77k?gl63YRsrF50rk2`..a,$J?\5>?;$n&2"/$NCB!r?Og7i6$8NR,oA&@O)aIgae1J(F+N(/-s/>h8a2 %^8/f9$/7eCr-Sji\>^0pp5CbLkKn(&uELGS[g=W3mV=KL&!Ekg>A]SQ%1QSYSGh=T$KeHVnZ %HR>Y0TD5UmQ5na=B4n+^M>^0",PiEV;5Zp3D@\Arn`FcWj:+>oEJaf[KI/__(^Zd2Z1CpVrKJk@NG/3dj;euaT1:Po_YEJa[C5Ek %2cANs@r^gpLSnr?f"p7ds&\n:\lZI]B'XPsJ[NGM+[k.kYhgo'aHLk+.RM>Jc73BhgE3*F5.dr/cVo&n]Q:Gidk<1I>BHtN4'+2e %Q:G^.;>m_2CFrrKb"u<,gW+..$l:ubD9W>$4,B)U\FX\E3sZpDL5m;H2I8RPrb<:po_1PGaXB:<@)>4(#Z&%imgBa?Tje8s7ulI' %iF3$>*acG05qK^r-T2JsW0NHj+7GsNh>5J7lXcM+09s27M4rm>b@h[JG-"p9lU`n$dGkg+m#JMu_1s'/?$I`+1=1:Q#0NTK1:5ou %AMs'u'\S^=2eCZQJ@SaiRBHVRY85`P,1%C)qe;n3RBeAtnmLYo>//AQ\/4K>(!sM8^N7a(95Rdb1n--u@f]UHZ+$gc?d5YU)[H#5jX<= %gitY-Pd4?M6M?c/9`(5bllC8fDj3PL@HOdFqo`c(D16r!m&-[2qhopH!`$/T+3/4D`:skT]r*o.Hf^1>dq5(#&m4Y40`S"H9Yi1t#SBl)&_&Va@TD>=^'()k6RjS+d/S:=ga5^kYC1Q%C@V@nj2SG2e %>;DrCd@.=>8sj:9ph_'+k#J5,$E=]OqCL&lKQ+]9@"\XsiQ:&K)J%GnXc(G41cKD%=18Ce9(j06l4NuT#B+-.S\tD.GLALoRJYm< %)YttlD7^"?aQA"QTJb8!VD-)NF&^-%n.4IoSP3?2n'Zd+1Pr/E4`EpkrAWJTMt*+h8/HbH-S6.Q/6]A83dd52]@LS %B[.r\NhIJhl"ie0^/A>IDV(7WUse@od+pLTC)i`=D#o#MKm)qK6JWaLg]hWi0c,uZ-4m\a#IQT2*2_T %@[VfE!CRsEMIh@A!KN%K"sj@ebDP6ZYiIqlCC.,T31Rh1j]`UMoVV86i=3V=9J;e1:\+$RE3;FI).0l@?/F_XF %eq;5-#!7)O7cOTarDT^N5V&20mcA]o1(2F@Hg8EK+4783%-KES>&]qWDur^Rt$LT=JA*0,"5rftE!\ %$cbF>o<9/ueIcn7#fCPO;)^"@m21">SAct?<5TPFS5b-oC,W5is.n@bbElSV(L1I!/RL-cT!3?LY/]XlB612]lc\p!DkfnR9D/]n %X9"`L8;+/ZZiShh3N$F"-]C.7'I)@.6U-Kn'I)B(_Mj:9VUlrfQ<>TL>[>YW.7AId&SBp2U_)c0dYah7U0e*:51JY`*aZPp,(2E+ %9:lT\6DS6*bpQ1%%MB_oiBO;KN.lc`N!MEm7!]%L1[ZNa&F&B-,jL2`&Et'#oSH.2+jr0&Y_!=M6;5D!H2[#GWPS(k;'\//FPeUa %?0OD"\)TGO4.k"',EX6_&C8Qq@BRX&dKn/&ABh)'Te7E/n>Hq5#kg+\Xro+]^Mq#T'L-IXS,?dW@ %lph]Ke8?Q%SF&dDl/a#Ncd4a70ja7bIl?4LS+(&p$oQ'8rYS;UEItgbfQ'HkMN.ei*)E/9N((eR29.=r_">U5MiIm_GJQ>.UZaZ[ %jq-rQNhYQah-G9oJuQGA+*.^WNcc`<6B!Ja2M-=0Pf)DA"ER8O;+jACs7u)2D`/]7k%tL>QM+,%A&R`l^=D*jrUs530*L36qJ+hV %bP.RG;rt_j/.WDc==&8Th0o$TblqqsC"rNlIqJq3UkRJ.k1.Z(H[gKA!hNWDp@-)*aT\Bq0?b/;!Ek28N00[A %X@%%FN`=s@LQK>5FO.UT`B(@EVF"u0p1CIZ0=BJH+0Z8#/au:NRBrk29GLk7=bd>kKic%k0=WM73u,sC?7^@p0%Su9/D3'*\3-S9 %6bpm#OADHt`PX&MQRqSX49iK<#ErE%Q]E&i_@'&0.[!S2e`7XGQ8YD[.iFaC#chN%>qDXUA_0XHlFM@E`a`BFWs\ikJn8'7X9(b= %4T[Hs4??5TabV"O<3_F93C49L/>E0hF#crI@"/HFgi"UJ+n:kO\4*hU7gf#REPD"tZhsVH`;MJG%.;qdi7'4,cT7ousqR %gqTLbim='Ne4L`".n*eQDoGKNqMmd1#cpcf6*nLUAoOgW"jI[$KSiAQBU2cH4Db+\/+G_'cg4Bq8A'BC_;sP]]$p3M&Hh#(S`pX; %`"(NVfWkGQ)(ecOY.)fD %ZbMC"%]%'Ugp3EM`;4Os!>`=`_N@$pmY8&4l^#(`)Md5$u%<[=@l=nFKK,_s+m^-\j*3^`_BMTk"Fgu@8)A\qgmD+mG(frkj_Fo_t5bOc8aT<-HUsZp'a!*m^72hINC@f8*FM@ %fN?5FbJVC+rd/6]l>q/n%t+p`GWi?ahN\nTdA)a5rMp3Yg&\7J`au(,V^8O?L(uf)JWN#)KssT%CP,N6G)]O'?@omj&"6U %3"@PX#C;ET`Gt+(kif\C_/XG13:(i8$]`-\$B1GZa'T65Vkq@G#@ek.,._kM`T_RIdC_;b-Ood5)83D4dS4Gs1$+@X`50dY:fM_[']U_TGE+FDi_EAb[NC8,p+:P]*;gcd[h`HuEU_^;\073&`50dY %J>X]]`6l8i1fYP;Ru\V4cYf$Fok^u142(W1YE,c^S)s1j<3G%bF^@%(2^$jbI9B[ldOq3bejD!d-&4F%UNX/Ob4V-iE(KaUA0*gl %l)o+E2/DHS`I&E#Y1?j4.(67('f]9a0MeJjC?9O?cW+,>"d-C4`n[etGeTA?=ZjNkD]"I/-U6@>m+eH.S"9,'^Ofo?LnDlSRNri:)tiKaq1JMV5UIH6j?SjrI+9`g?>_'ms.SY %oRu2>@g"Wr+PAX(ee0mK]Zjf)n/)1#/USkjZaGH\/[HsENiaUt>D2r06:%rrg`h%hq]lthk8'Tt;f3+7LjJ8KCXIJL[KKiQJ>6U,@\)Tr&2J,bFCl61IT3ZooMfC@)`f3t*b=bOgmac%,>L7Yf1 %fs,J;&":8UD"\L5*jtQB:m!e?s;0ZHL$@[&Jd\IOsP0B)L^#M/-c8S5#/P![D=d %O#?:oc1!/mdj\[VHiD)hZoVA*!E6c@G&E/BE.tU7;PG^ITks;>kEICD/!U(>#Gn[^I+X'8/.Hdr?n,dG1k%f#oL:ab=IA\f>`Hm, %T*;JuflI2%*tFL7j'p)WDLOGbqn#D^(d"5NY?Vk_UW\RH\VIMr;&eIQTV@l:"1u6e`VGq;C[61iTNa9nODJtL/]Nc`qr']@@IqsH %*=dk]rBJ=l^jK>G3aPb62%M6PrYqW[Y([Pgl\e,MYbK8+i_Yr"9H(E\?BAZ`@Nju%]r'T#6b<"55_U/Ek; %IJELS7\bB0n4K&%bL*ne;N#lA;d%]ATMM*LLqZgt/QpdmpY+S=G?1^9\&#>\^$3@mVR+QZnP<`4P@&3*cn?c&Xt`L>_4gO/-^TW#NC(U$.tKFYcgopaHqHQ-DnpUSKE? %*:=p)SXK.%JoUhSL6ANu`OUKj8L@-[,0_l+?T)&tJ+Q;ZF2C\Bqa[8hqF=Wj,:40,Oo#A*WkgC2jC6jNE<#-nK`?M,m(=89`$B=% %kX%m=j`(7`6;!A,".;*iKV"K-\:=-p\2>`%I#H269/:Fqhr=j@qBe1=&ag`hOpRRZAT7\5P>#L5?A%09$f.US42R$r=H1M^rWTe^ %?"\+hS1pZZ*s_!UF1P!-]D?Yc;?%tB$'.89T9p>\T1_sZ2Egm>4Y:M6iS)di<%'OmoK/WtM8Gn^2i*H^"GP:W9)j:[2Z5_HO?S4Q %^C9NPh1RLq'?%G2F;"lH(BPjeU'ZIt$S1s)g-&+71h!9Mb"teL7nP@$'?3]WD1ufC5_;Oq9Hf9-r'pCD.8ikW]JglYcl'B]=%pChqU^$WSj:Og!KrcUM[ec!Er_H8YQOA-Sd2&;Ja,;Z)c2IW]]Me0a> %^QP:X0^)-#&NTDV(iVrr*0JR#6!=\5R#k%0M>n3k#m7f7&oe?`'1S\T)J#6imYN+_-Ho(-Oh=#]$c&Y.LVdl3SJXe,AN%=SC-<[@ %h;Z;*_JHH5%l-Yjj$X]00@4tH@%<177-&rg:eS5D4=JMPIKh3]hPORhdTg+-Na#`\F*.,&a")Dp(Nr?*S9R0><4[ROmT.Wu4;XfD %873fg%CgMOqa0Io9b.%]_]_FGCdCo-Wll$/=:QANuoma!??*n@&lXfMKJ/ %=:q2RJ%/q!$+hG;Yam=k2?T6IG"=q/gL6@[^6*W1^bpV4GD=sLQNJi8=AAC&GBXDpdWpjR)m&Y.J1M9B*DYFplTA;L[CO.t=QMiO %0/>V"*TKiO]RQOiJW3L6C3p9Def<@UT#p*hEGOTZnZ&kgr)QNVjbB>j %C>=T3^=)4odbtgB:E.jWphI_I=jTi,Xe-$pG/'KrY:Ik`&cEOWoSYB1THt,p45df$m#L:K$*GN,a0X/+eio#rQT/?Pl1+UBa+?tN %BOsI%mD,&3["R[<__a"gNqdjZ`:fuI%.TP^,,s[^-uc:XBo+EKIKF`)4"AVJ<@dI>dKT'Oq%l%f6;3o@-ZT0/-h5e].2#?=FoEO3 %d=$$`p,DM?cX %>A>;6;m1O-rebHf2,,Ub41U.\J4Lu7X\F/T.e)1"C]B]-qj,4c28L7t8"YJ6O1so@c,*lb!:7VGHV7"tp8ZI?V0N" %Q.g3dmuUr8DR(YMLm;(<>r7icq;NH!d\MB?!Hr[d]\B9)m.9]LhCpb@K.CHq#)KjDe>nXh-^^k%% %>#%!TnZT#/hPn4sZDZYGn,\$3pYndZaeIe;Usd1^>M1V#S@Ys=bsfsqd*D;mZL]_l_D]RgerQ,,5JTWO&!rn99;Y6C>C6:!SiZgo %=ELEd?h);eEtOIu0<&q#VOf0u4C9/%*#B*N?=#5)o'o<,Z^o,/W65TAg1p00T:8!rkC5_.R2VV)\]r6`97J;udcCM6AXi)3ld'7R %daMZ(K*.;D8+$2=cCa@$ms?R=Sja%`a%'u";bqm#L\:<:p"3O"hcq6Ue]Vka-QKHiNdl5PW5S&]N)"V9T\D/%>=(B!j)lQUR37&] %f)SnH'g7QA#77cIE*V4#eE3f$GWf*,XF@Uar?EKFdPnmMcIngWM?(3?nLn9ktY_WWD>Psq.bb3;(qnk()uI>.hG$;,a;KF)(icEX$r4kN"W>?mq;9$j"Y/sJDuP?fm8:f-EacEehU4h[\OQguSTgp"=1^">o4 %pV+0rD]:EQWtZ2Vm`6k>$BA#nWTFsi4VX-l3A9NFWO&AL0,Cj]JTb0d:UtS3rg<4Rbl\Kl;,QUEmRl+,gKI>OI+'PFRE/(RH9W#p %Pkp-/6F"uXXsMX\qI:Z_PWDuP]%j8)Zp5cteSD!n,_/a+,)mT,qFUa>gLVE:)VK@rk`8WV>?]Y=kGb>>gP+LLqGmR/Kc]Q88UeEi %f'W$p$Kr-2-5Q78>%WCe.W@H;[TMIN$BqGGDQtlG(#DTCrn>CY\+"ebnONhN9*up[\>02_;f[\JS]$19MBDkFm_Q%8YhKSI-NiNX %jnX8c?s!$Qm7-7s;D3184)!S483nu=PtQ7SjNn4&NpEHQZL>Rm,jmWi %ST?Q4(?(?*V2)Fo(lCEkf3)=(9eAj&l'9`GX/Oak_=fHXhor)>ZT2bi+rccZA$t?-^/E+8%-2n=K-*E5I(I"1B?1h %l?TllLMc!?[QmW;a_V>7F''@8_J`@uVGil+[QkoaI5@DKd]3Y'o.7Okn12EA@L=Cj7<+U:4]n+g$U7]!I20k?$U:p#4NHNg/c<[* %'I=f^D;e!n_#5oafbT$I$Zti1Am>%95,S?X6U,_&UtrcBp&=tfbqEOi4tOr$YUs2,'=G@H%J*Idf)2/2Zk(E$up*tgFUqR!WT3q``V)d`@^s4GrA'Bc(XnW/*$rF4i/c5qu*j7\-;NIqWGqqtQ&BUnNB %O7[**nJ':!',r$>$ %9m3d0X8&H01ac.,1sWu\F,jU!N5c2$Pt]Rb.g>[uo3%gG/S<^SUo0+Ehj"PE,)3,(N)@$pCY&IVod5]1:pqV>4bDsS& %qS_2_6`JHm9V:o@k7XP0E;"q]?*%q1l&3seY3PC\VGl@!78e,MJiee=24KJu(gZ(4#I:qNN%W1"#-ti0rk6nYn[ltPF:l%j;K3C) %.3-Foi\J*l'.0*sV-P&LDHMlNGk1_8q;tjd'6bq?a'a"Okm^kXK5j96'pWHTGqU9@LcbCQJZLKQkdleHe/=2tGU<[$\n5gpRaIt1 %!Ndt,UIto.FYOh@kX3n_9F[)c0!=S_71EpQE>`&T/;!I^=BD)e`M=Y$4u/2L %Fdd^>LUcA%9G"64)dS2EQe=9kSUURQRWm`K;PFnB)m0+3N]\]:(0m5JFnCQ_:\CfJ8De"!%q#F>)_6NLL4nruTr$7M%%QN*kq_O> %rM;Qd`)ho/*m^U&!%J;:qDG&gq]"$UTAt0Rb&p,P8Dd(?%PhjVY3EBdg&0R&koF9<%:?-.[oXf&TZs5N%K96YrKQ(&Afe=5dm0$Z %$GaO\]m#>5:o-)nD %e]-qBc*^9M1nT#P<9p]lZS^NZ(g(GhYgaQJ4TBG!imE%n?ChU3J+)nHZ3p9n$>`#]p$nCsT5VC@3K-c5lloUt=Dci;;N]JR`401n %I'U6h+V-b>/-=58V`h_a3_s:nb=/i71:elU>E/(j'?XdQcLZ:/a3!A@lf?nu7VZ\I=QjlH]<-/0?4W4"eDC,9/t#LnS],%R?Z!@: %gH0NG\'MX`#DlnJnY%VMolETN2\q%Rcl'Cu2W=U[Ys-hf)95oVT+u2MN`e49YTQeVh?B,ha?U)d+\VYpPo.(DBudE`Lk8jiu;VL#B0Do %>Vgo4(Mgb5r6@2ah]BA\_s_0`jI3dF1eh?d*e+TujnnWNg=q`c" %qu7Aj%c1+T)0b4BgAZ1Tjq%Hibn"rW'`:_h1\X!()Hs1NAf"?LKCmW%[r4[Xk?"@Yrh9!<"@/U"+e#Qu3'8C^S=+0F$WAqFNI(sB %HRV9q:$hQ,+0WBCRCnhH$Y[3gHbr1Ak9%2UV>.CdP]7+)Bn]a>j`5?!f\$-[O<:eICoCqr+*h+HHYm=dV*?+]9!a1>OgrX6qMjAc %`Es^LF"BK!VkIrs?&ieEb\<*dWKD424abU^>E*O@;QqL.3n?fb%G`CYX2`pa3/ugTVI/s<0m>6aYo,nnCSE:57u3"p+a%':P4k/Bfb]3bpq:G?.mkgX3(DUCK&*]gO;*Lg>1O14%TXZ=coq %.D=smU%)\6ZQ@N_G`$5W;1"8AYt\s6m**#l8fNVoC>J_FmSI@W+/s&9H=_:YP^"99=((d%\,LK:7ecH+fJ1S0KOTIM2LPj4KFrQ0 %rF0)T:<9"p`1E\9+aXi[\Y*6RojA0(Qj`YG*[]Qu\Z4E9r&?idZ9CsPSsog((/>B\8l@EslT<;57%>;3InU]WBCRTZRDFe9ra6(e %VsUPaqV@2J>(ck3_4)LCR7u>H5Z7@S^nlI\FcE,!_m/IF:OFT7KtVj>K>XtLfBDe>rKrIj@3;X+)P%C'54m/?LoDGgs,>8JdHlT/ %M2ojhE8BagF3KGNMrlU-kX5,JY*):$CLcK6f)1hbjetSbhdcZLH._^R(u,/"*?pjp5d&F]0IAIW)[G5H!V(aj'\.i5#RmRIhUug4 %0:9UO%b#iC.[\)"X3?)Ch#+G5GU*tWKeg!_%g,K+M/J9L5T_M))'f9\Qq,\g"/`m.Mc?f&f#0$n=/Mp:m5Fu8VO8HITIE2.;[Dja %17_@d[%PSm]8+$eDT+Wn_Z?Y(kl%hI#FM63_$['Te6+/f+u#DD/QP1gmn/'N]-H7$(5'-6'+iSAUhe\.c>$=%GunmHhTk@)>uWON %WjYDqTspCn<,'Ipa-mSt$pP%$V7q4#@`Be%V7m((Ko`.1!KQ@sWLE$X]N+9cLZLb37oCK^G5H_p1Lkt,79)TEA\+W6gi>SM"]#sQ %giE-LpIZo(BWm4l;NVqL>2(c%fC?ZdQ;it5$)*$q,H3$d7htnSm<48TSACl3+L";**Hr4(@W/:^%?UFPG'%?11=hpJ`@ha %Y3jl)42[BU$jII'PPQXfPKQ0/Fc97KpAMm-En7\ZWiO(I)Ll- %HE!)lDEfsrCSnk-K3h^pMLQSN+N.I.[*1q/:]oB@\&0IN#G\`[gr]Y(O*` %FU.n[^5UWaBM!DG8c4?d5FpTj,0TN$D4^/CbS5^q+@"e9g+LV(rT$/0bjHkI"n_8+5G!Lma>+fp!<0JOt4Zh+L_m;&CMnfr'b+@$aoIobEUXA>enH]qA'^['H8>h5,i:@CfWO,k$NeR"f4aD8f0NfJafoq2(TnHA9Pi%K]]s=jX7&\)crBeJ,#kQdo&KqU!6%iF7e[R`C"VGJM %<'Y1_<@rCq-"CE^G.cGIJ@,sK\'l[Y\?QgfENWHE\H(34#dpnYP8(*P2VpT5M"'.bMp\aEEqo#mMoik?&@\!7<`B:S!^9S3%^A_@ %eq,jn1iI;;%_l;3M7"J/2t:dH/?B"p%B?A.g/*I[Y/nOb&>9jQ/LCX:5n'&RG=Q4P/Vm42b=Nrlgu\%[XnGXRecIa"8m:d^>F!V< %^p:^_b*bImX*KCB)6L+Qbs@2M<^b7UF;t@nr;t*Bg_.]0Jl+U'/D=$*MFrQ2Mk\rH1JQe0Z(om,k]Y+5'H@X]#lNZKroeOJ&/Q5? %Nl`mPn90ZPG&moF(Z$bVh/3jJI,XH*dHr99KT4Or*8QXI0`LQb2K\iZ5pVn4?IJ#>OF!0.&gTpL'ie^6O;JQd>Q5t&"D?MQdo=PR %lBDtq,XqnO^bqC@gk[Q@8H?+F#+i.I\gm.,^"UYQ2/g,nZ/%G>MK`l#rJNqa+rk>1i+RphM;U&d+"G4uAQt0qFuBcB$B1I#a!k?f>urJT*23UB=.qL1'VYb:='=fgQtX=#K,#_:cug*"`2!qrkdh,W0C2)bcYUDU/+h\b6FD^pono'%n;o))on/o6pZl&Mtr(UhOS5>*,mQ%X2&/T&.b:\i0bZUFLr %#G4q^Hk[2s=p]LYpU/;-7L\*&"`ub+0"-_8nmEl/L#Xqmp?qFe+(e!ZU0Pp(-du91X81!kk%;V<\QXB@BY7M#oeoEmoos+-U5EY@<6SOd%7[-$ARQM@#sCWYP12VVJQ[:/$9LP.iBH5dWA$d.\NU:4P3&!j%&bne2h(2G*tC@Om98KblELgW]>[>(\p`.H$kpUf_0$DsC?WlCBe)Re-9S-p:bLOO'Sb_95q!tju.4W$oC3HU)3TcZ-StAFQgVQUl\GrRuHqOgG64Tmpk@#d7ME.16s%t5k %LY@^&)CD[*g2hF[djhA"kRCbgZd/WK!5>9;9d'[6EJ'k=_kI%[J;GEcRR.]^iV=1K-i#LbM(/FL.=+084ijhhe>=F+ZN# %0gP"Oe(-UC_7kBg'jK.MQT%oaAKfP'r3%LVQN!TYUJb\.5(itnf;Oq/2h>OB.c@7iaWVf99C;a6d%s^s"]E7Hhb8UPdnVgnp0G!Q %_m?kfbneZ8j6aXngJ3ecBUsCQ-b/=%CB2)^IA_EeY_J:0k4AId]`#q1i$cqZem8:p&4Zb#NOjSPI9+WU*3Gl(<9bL4Y6o7oqXKN9 %QBn%`%SPV#$'\bL@4nk9;q0gl2e\t"]O,]gg?E,Bk=Y6DRI5""RmDD-!`0Y71dr`e0eTmsAI\>;e&N*VS8Ar.Ocjpi@J>0SP*8ru;331#@ %7/-5q8M+lp*4&i;(ImGrL;_]dnH&QWN#m=nChQE-,`VfD`GYN$f;\omUQF.k4fRI?CS"YnU_[K3r+<@4k5)[7Uch1GY^e/B%ig'Q %`Gtb=o[aZ#-t=rbU3b0#Tn"Shr36Qsio?fb9%:;MG;Z1"2KuE^kn_!O,@#i>,?Ji"\[Z$%a_jL7L$9lZ67O6).c@rN+;G<@MWmHM %%\eR-A-=Q!Bo!*miYYRuF1eT`pJP.?3H2cK@'h!8.0k#q"/"t>9::b]M(aTu?upIqW3%oK3-M%[jhQ>q_![EH>7D!B1)is)I5&BM %?us>FUq=bsSoWb>e\LZJjsUK.WaZ^1b!"Onl:C[4PPE3O*8m/69!07bTD2)'l&c,*:bVsAn/<:uTA,^!0pD+HUm?0n)`K %=7#%a51RI=oZoI=:%.;,3@V>!i1(.*]@)!(ZJ+\b<&PgbmF9<+;?Y".P=/i"*noN77=aTe9Jdk#*MMA>Q-jNn;;lCCF/:^dAcXQE %B&R2$abq=6:t!_.Ze@lprudBRD;/8+G=BC-kRMW[O#=.k7Rle/@*;:HU/0!u"UocHh]uT?pCKL'[1[S#?e/YuC/i\a,%h/El.3r? %="f\YUk:QD3"(PQj&H3%mO3,lORZ2WALnRG&*tS"9E.Pl&KD)$Z@b6+Ela^\tVe"Z-OR58op*H>%PZ=]f+UV[+U5HWiS3e?A %U2QdI"L/Upm#^Os#%ArhfPuM!"2o*9o_)@r[MpR[%Xr"6:\9]^o$KlJH.C;ROf4FUXD3'-!Gn_j]&Ip+fQ4p]QimUTNPPO"Ja')/ %pPqg?'k"9#8+\m73E[GW_7l>\QLsm]Oi%TN3e8tf&BS=ae&@TY;cn^hrp`j40/`TA*s[8g %(9CqT0\GX`(?WG*@'J,IX\%qIPeg,([kR,;!e[%]Do$`n#(rIA@)n7C&fBsl!rK9`hT-KG4&4R&@'J)d %m.`.ZJ\b)/YToD9%!MT\rMq6]@&F[jB5-tR)!pl_+fHY(%!Hrk&/0/R)!pacAuTQK14`^;gNp]n3d@i:OWj)!]!l$?+CmnQKt*U> %!e[&!SfO?;:6-.,F%cdjSPEQ/i[DA\F#3q[4CMbSf_o<6'*:8,pSBRr=`tNpc>KQl(bX:-;@$"6pA"gj`BJpP(GV]gDX'^Y:btWb %p2`"mfP$lkEJ2]I^PE_M451D_`84'M,r[_;&$=A%&]5*N(d!PEjbS@&G.:oW5jV$\)ps_)&Jp7o)"*$)(hk+9,)1No/LUe@:;jB+ %D_Xg+G2fjQjM4CiYpW'ZG%X",#%IU9!ObE1fG=@H<(#R&!XI_>>kpp6%lhq))N]qhpOE?S>#69']b]oZrP3ue<`s]=G)ql16(JI#]%ar>.IC7=[9gs9(H9XZ(d^if<-06s;jXkJ^2R@kfMdE-?Z9(`l80O04Z.>@$+O`OSsn?MHV:P$(7cU1FJT8Q>r>YYc'ipE %7fE&Te4c`&MlS1&DQJX=b8K@SE(<9tYiZ'r\q'U"Qo>r>-F %#^^l[rCNi.W_J*fi%PCT^RlD``cm,9Snd?b&N5sHcP;Dr0ON@FP?&mS<2%-m@!UT'7IC'D@/UH?Y$SPFQ4).Xi5N4Abo %b]C<75AkY==IR1.JU("PJ$m?[SgV2UY&UlZYI\h*F&q059J3I&X!`lRO!V;;"Cl %5hAi6U>9-ZU^a!Aca#H>P;]MN/.ZN+QF$[rOl3#E]PB[Jg6a%#R"7LQW/8J"=%lPd#;p_I.nZD#-@B9m6-V=&[e6kBeq^t$GLN$< %TXM70(Et/8VRET-5B#.Li8WEK$#G"#^r=om"?&GLi*uX/JW3GA\;H^t1\[\fN[\^^2Em&72&._<0/@R;o[Kb4>.Mmb0;V2rq:&j! %D(b1Rk/a'P,pB*CQ.c*@f?"V'R$0m?I"(&0-34?c.830.DNh4W0iQ':D-gRp3$iSZ-BY#ODb:n7=S-m_CY8k)IpeVL8p:1ka %Sp?ZagS?>nfH$6>gSD#anS2;qDNh4WD-'[f[i$H2-X1"_H'lCX9f@\3oXTgu$r::9k.l$e9Q\%BH`S`fgS?>n:Y'j%V^6eY$CO3H %,puPu_L=6ZYs^ug:@Cg,):[Db9+<.ol?*@!c3q_n:+h.B/A[;#g6<[WJ_sKjr"-4R&!l=qZY8DNVjiMK6li1+/"&]_LT@9_:-,QSn+R+TFjg:e-Nm*d\/>rI.Xk#^#j,JX?\]CN^:[B.Zp7$g5]s6j5W4H8_l1n(rp883m %mG_Mm_iaCEnbG_;21Kc5q+aj7m?0i);Y$BE@tbSfiT3/k1YKK16HXLU?-bLh$2Mk=k+NJ>bKb;].f!_BQg^Hgn-[YX1ZUW+YE-\^ %oZ;<#iBp=[jZE"V]9Vjo0AlStgAD[2hs"eTOD.N`jMS4b4"%C).QETWmpt,u#++MLP*\uhChl7__mpQQ_<8d^nt#7iRj:,6bBJ9C %UG]1JGZi9R*(;b3ju`)AYH5#bQFkRj#&A3acO@2$Y-ud29KB-b*;RlekD>YaL]KTCJBh^)SS7XucXaMBBYum,fmKb;kRA/ObA."+ %bSnSOl-3_*7!I%DS@SY\f4HndG#sa>Cl`07+f*=pA9T+9TO,V2S]?[FS]$P;*Btu.!_eCTX6N13\MZ!0T-DTb"/'nE5Bah %#U=I5_)5pYQQit2Ojg:%&sHSO_2*]$@j71[!Vq`)Gm"q0nqSqtB*k_L[VC)8To@KHISq:cKJ6dKL8*W3g$\&oe,BY'D-'02/+SANpL#e@WO5QI@0p=Ck7qjQA3)[dk"Q^Q$6g)6\E%,NM,B]mA\fDhMN5g#mX%76` %R4+Np"-tie`_c+ZgPT`648lg]4lZfMC<>S08\\^iY$*UI^7Da4EQL)b,onS:mA4E/+LOsV:qC@FdDk-Rc+sIL"uk=Ze)3ag%njW9 %3gkc@pD,SYr]&'3E@M,Dn[m>k&oSP7&k#Wcm#D(bA6b9i;$.StYt6G2N8l9MZ`%o/h9W47G=j>4LP2^qN(['BebE*Ce[DO7*%i+E %?#6BnSWCtBV4-4XmfIZO\%/AZ([+t@:R9*$BB\40Np[u%7_lYZ_]dfse]-qBc*_[K^uH"koGX^[?"7M]]]DZuU:%d7B70=K$YC%l %,Y3$3ZBo2kfAFN'_X@hB!c2[--:[,:Dgr8WPL%8M/[S %qod;\-eb%.n>jfhhu2gN@imr2o2Rn7(/S[!a=PC]nHl2#mcXNm,Il %5Ql;>#gS6e[jC$M=aT0[6E=/@q$Q>%_&dDHU")6[.q^beXU`6Y7Uc#!7%C@ZGGXX'I7Mai1=h/5_gR9tCcu*6Nad#@V[Ln_C_sTn %g:S)9ISbr+Bm7EhpICWF_"YRqHh:A,BYE@tO29>7F:A@;ij00:`(Tn2pW^PMhq^Vkr)[2DVlFMgblP2C1-3JZe$R%i-4D"1728:[ %&C7mMm"N^m'?W^ZfS`+T#n2/0.ZA^c,,tOp?6jeRmVu)t=@^$^Bc3FM_E-]<6Ta8"R';Tq9c/(rMM[g$_*?p:Bj_H@0ju*m1=N[B %MM]p10C-QI&+m.g5B+#t\UhT]`D9bFLS^W69"o<;lHK(5GNS/MR$=nXMHp/`$:K.S8bp+XkYQ.kf;\Ig9i"TU1-n)!eNo3lrr[*\'m %5=LW'\5mP@[n=D`]sJ"4rMGlY.sndHL^SN[es6>+P'B(/6;2M_QDBaEVo3!(5=06jZDME8-$h5n[8>Y)=XF*,9eMX;EL8r[Lp+3NXdfI!hlT9_??E5M9Vq9,\g&bgGnRJM-n&S0l]Xl_eH>6nL2*@')ePiBT*jWc/rU1D- %7/TU&+#@5DIUJ:1`UsJH.p_?,.%gM7OKE<-n!`5#]#-m?]aC:1%7N-WrKBE[K?"'u7k=PXHN%Sr"_m&?_mL)Y%(?,sJ0lb&:@^mk %g-C^sIW]:mc$$SF:[AD@\fZlBf;)Ql,351L>`o`o:/peYbSn64AdoS-J37b2$(CXOnS"+?GRCXR%Q8XMAL %=D6V5`@u)UnE"0RnV()/L;WPsKk%)R]=rIT;K:_TXS70g2/*o:!KCoheth8i26]+feYM.7eXua>CWfOid]b9ic6\0EPD6gu`VHWh %;3Qadjld!aDG;$UK./UnDcbZMY-brLBn*bCrgULI5'J7!7.W0A[a7\XLXV>sX/W'j$DAWfc5'1HquR=Al_g^!4^3a7IV91)Y"Z#T %?$J*D+&&Bt[!gJ3^\cEYQT'E_i5&'-k9F)h&AH:48Jkco&5Un]8O@tJi@[8`Ln9nPOE^H8fQ2`.rBfJkHS;$W3C60BPD"L.K\C^+ %Sg.d=Ro4<\hHRr`8#WA0OtaNgiN-Z(7ZJ#sh<8@FYD%XNKSlGS_NlF"pPXtJ3r2b'VJ8XB6h>]dmO=WTJBttE?B,S1^d7/.flMfn %)p0O`B!6RL@:([si`quYpFFSL*'(n4-!-*<4iaEk_Orp+mIbeSBVLQVGhFV(CHduN/pSAGpQ3h,O2m$q;CSJi'Ge>g9T=1Te8+M5 %Jfd^N%t1h<19(TF=J&@>H;5.W.6;(9PY<-lU:Q27='Do:J\Jh8cgIlVl(^c2HE2\4jiFNFR;NTT?cKA6G`_7O5,']pE2D6CH`[=# %Zf"\qkc9YXT7(RH?Z+2)[D6cJ:KYtK-VKL.HGY8!Cm,SM[*SQ&-S/pX]6rXj[c9u9$[,mZ$T=GiHfBVka%BfGcjC.uS[9W@640iY %6\u1s_LaQh4o`$bLqZ'!IlENJ:`hI.Pbt_F,L3;Y#<\!>"F(gg_ccf=8C'bn`]$_1qU\QAafZL_a[qL.P^/""Yf35c!Z#T\Y %^+D%uH5#P6]@-\VI5S/Z%e!0/lYWDPId&UtXMj,V2/M3A%jX,]>Mq\nj%HNo8a^_0s5\!:NK#`RK=CarNb%,Z]8$neZ>JXn %m@eki"9I/%cJ"lbFO+de\AmYLRG4sq)T#)QDp%e#.40]7d5r/X?V=%FrUScuDEDiWK:c*krdNX_i3%rL.?fhmpB6r77Lu+EB %1RLUHkF51,f+1pLl8D^KRlY?m`H+G^j+2[L3MO8TWGE1^MM@^1lhYa8GK3LO5^t)X %67MMq0R3GN^j2#S_E^2kT>`A5KY`L,k#1)W,aD]mNhlC#7pJdthLcQDo(@'5i0dfWSJWGp6O6EqE"rMVI#7GA[Sh*B!^^s;-N4BE %X2o9iJ8Is.2fdCWqH9cn7LmfHQsE#CG56q(0U]f1&1g(gJ7R7_dig]uiD0,g@VcY\6Ol".dD;9Uo.V1q4#)U2?k(EK`8I9,Aie`3 %Tf=c#F5k&3%$4Yh#md8QJF"]1fL[bEL6'_&e;9Tt3o*I7fhRLcbB/j5`$f]PWZ3D+FK<)K#MDM#C$rjWF9kW`8??Cj^CJ_aCC!s5 %+^iMW6UaOK8B.#a`iGm]%lM7*XS0SoM0%>!3^6C2(HfiFHa"InogU!n"TXg=d8q[R/a"uA*)A^]Tfb"DN,ugPJF$DZITK1#[.k1alCXGAUf`\]/8n=/W;-@+t&d"grNqo#%/Q!^e %7%RO&8kYDi.$:EaQ-p9k1.h[*][Ga"`).^IASm8:l%hYj$Y)hoa=*06QSbll8u*]Seb(I#0.2bm@3nZaM&Nbllb]Dbd#QB%&g];* %K\nFk0)+mFhs;!mJX:T>6VZ$"M%ir6]UWYXr0PdnQpuqZH'&=b-b9;89R&R;PfQI=bCQ"$n+6t=o"%;I']t]0O\m;-\ReN/PfP9# %*4OYL&g\aLd2F>gB#B![s(k?X]T/r7CPjO>VGn!?;&-Sc$9p,1>,"DGU7>HlH:sJn7hk;=Ki#GJO]6;gLJYYLO];#gkId+ZKKr$A %](^J<qPmj=lh,eJf.l]/X41O.!1H2C7uo=6D=!;WeCdZ$5MH>#ER),.!B5kU_Lu,)u$Ceg=+fUo0c'[>Z@1GUPhIJ %ebHj56`6eh+_=0O_bS`Q;45ilt;)3GZ %a-p@)&(WGI.6U!echine14"D]f(2dcr6&]9DTWo?j3?e]kEmKj#9W:0PTGA8rD*1E2;c<\385JCLAKH7RlMaOnSd*EoHF4X4)]%(Ru[Zr&MF4\aHZM%]n[]QD5ePL*5Mqp[0i5r7+XNAM.S\%pYDH.$6 %0rts8KiK2Wcn\lWU?<%J%KV$&Of7NT,s[G+N7q]Ld5JCoXpisd3u<@t7[g/Wa(]8CQc'<5,Jrmh8+\kaes6704+I$202]k#@[A)f %p`7ZP#4C)SL#8e#Cj<,8a>,[ %psU>S2b3";8rQi\iQhuYWC$._rX''Re[C&-0T7:&Q7lC_&,tsmXR(_Qj9L3b'H>Z."!;KRlLsr-c^j(k=b=7aIbkde0AoT>M;S,? %5HdY=dtFl7lo!=;@kg3Oak(7DPtRd+Co>Ci@;5;+:=ZBVqE$^7%mucA/#1a>%n"U3IBp6`Xabp&#TE^$WAs9n'*LQ3XG\u>(ldib+2'1c&('ScWaTDio3Ih88Tsd,=$sbB3J?mkBDjdVIL=GMaptI;Dr`U20[Hg< %3r@\Q9Df5l?4sbta3sp'[U:qeD[3($fOJ;)%(5WnU$d,"EDhL=Qj/G&lMC2I=W-+/>#.65d+`ch,+ZG+=,Hfr/.ihe[+e5r`D?1U %C+/:a`[mX=<\[hK^lDkHliTiLW*is+N9Jh;Y$:;2lFm;FjO<.JdJ16(S#oaA8+gZrZ@oCVqB,\$XM+m-\%;B"5R^A6QPRsJfJ;s" %+9;^Q\GD@#4aJQM^RRc/(aH%&(6I&@>-n5dP$I0WqK;V:K)WgH2uXO3Z&$t.\r'X1d"moRDjC2Q"tH3)_b6n&FR>.1a4VAE.5fT* %4-@?CqCuGpR>93s1UD@1Y9drF!a:le/eoM\GC3XRU61_cl()takA@IFdI2>T>rh4fe]N1U8[EI\krl,CJ$[or3d,!R*B(@'NV@0n %D7gd&J7l1[*9U%*.Q]_4d;]`cfhP(CUBA_B8b(D#uUH[*K-:J@6bj;DT$,/]KTQH %0=-YHZMSIs/N2?s/%a+C\CSBSS^]i-7J1H'Q/-)RW.'`7ZMSIS';'-K9h=]YFn!G=nIYVH[ZF9s+^0]pfqPhAdqHqWB7#=rkcZ$p %T.N,$,`%>r5$PPk"bd_EbYlB5(:DI(51JFI-6*Yb7^Dl,rE:t/W%GU3;Uk3GLA&b'k)j5R/V+peBmmE'mo<>(dC!#:c:?8%XD>76 %@\575PW7/n^cpKZYKu$&&X[ko1SRUlf?tA^/l=\(5XNCb19N`>E<@B==#sn5//RO#J7k]G*#R4CE3r6*IL@& %<7t.t(7cN7H?PV-L/MT@8ZhQ9I%D/s]O,1Pq<1heYSn#qaQF.:P8R]K6,&D@)L@*U=79nk>%2OhI:Cg_qS$==m9^Jp+;0B*3ueb1 %dmt07a3/dU09u2=9qh;SYd#W0.gotH87PS246'4Nj%&*efubKJ9gLkYgp&=&aU*JU=&dVajIsiA-gojVYgDOp>S;0ql67I32TO-S %U:4,dOb5QI`*K%@WF3qY&[XQGW7:U9?Y@'"[/#32IUQ?(3o%1UdH36E3ME+jVlOfOBQO,e,;MNb]'[/.Q-%n_h0@C1Q&?6m@s1:( %P%=EgGIaQ0Qh%3>hF.MF@#u7jZl]8sHONp?bI3ioWJ=^V;S::,D=jLoUDD\F9?9S#W1;r)XM-Weu'9eh^$`Ap)DIQLCd4V9sK@+7nNTWFjHldE7 %>Xk'`()-%DRPhZma%CdsPH>J!I2IF6Mp(>$N`?XkMp(=ijt$80/hWpB3L.TqF`A:)juPMQe\u*A.;D,KMp(<^k0WRR`&D_f:u$;]VG'[>NgNEoX7/X/Z3)IpU3J[/Sk3>_:tEr %=Ee35]Zug'bJW=VM)\_'*o?^WFV.^Z-uh/f\d2ddmM@e(qHR-VRm-#(fttm`bC=OQN"K)VaH"\%+Dt;8U9[\JWN_8cdJ3Oo,/Pi! %qh9m4:1gSSDj=I-"`D@mU9%!i>qd056"(L!MkQWM"!;nr`G+n.'iomWQ85>GC,V71n$;,KY7/9M(MtaJbN"B:-!30'8"Po(H,#`>JXtO+Y\UO"g8chf %2J=,e00Z=W%rT\sgGA,@4HIcRm4_mV"g':i^`sIWli(]d1TO@!gT-H#^]ui2[ %*a3n*%W^Ye9:[G!brsr(Ss:otl(@dq6;PdH.PL$SdJ/#^'Q`qnj^YsmOXOhVEi&!Ca$ZP-55SL^Ie`a7Qd@@AclRW)Zb/7ghu_A5 %&;TS6OqoQ"&?dI6dpTB1c-ID2Qp(1`LdZqW2?bE_rm==(g**t!2MR%1)q2slVY>Nib-[cgdd^i:tqj`e8j*nRg)<,)m+ %*nMCc4FN`8LQr`jl2C*^(gh_cL`)$*qoSS5L+^B&7`RbIRIdfe%%V1%c-q%h1FTqTYqcEHY[nYXYf"CUW%ndb&#N!f$>M;3m$:]u\I8l"hP`g"E6; %Z.n#W4oTj7pktb5oJ_8L^qX2C?Y]6C4q7\d2:/X=(&_+XM\/,OHs+DfN4ATX0g00S1\joAAJ_lfE`>TB:+SikNJ.25+D %fnVTXgtjB*moPuL(Q9IK1%<*R"hP<6gN>[=UKio*RX>#kfH'`Ljg&TlceL.[:1uAcY.;3qd)X9*tf)7L7qtF %7p5oBfS31A/TZD'W[b"i?[D(.KZ=',6(_K/KT.M>@(,<&+9bTg*[HIf1d")8DC/oa*Z5Qh5H@o0!$e/sbi@HS`bK=,[%qfl" %=;,j=pM^n7JV@#*6#)"^$nVEj(>/nXZg!s[-CDul;H,sK+Hq@fW`P=W//A-dp'ZjeR"1($tob[k0Vr(?CG?nUPO %P4Jc"bF+V/qH83Q'7?nR*#>/t`TOr=h'([k$CBSb2Z"go3%oAi6e,2'L<]b\CNGBAWHrJlrO6oRrW9 %=RGRHf@*3=m(#omn_(r^-M!=dDB:G"Z0E#L_^3,aVRN5.Hp3&%?#T7B4%ksQslN,]`T>l %q8/[E$]BB5]a9:E_$oB4[-A;V$r2o*(\W_(2s,o2"uFmMYg4t)(sG7Z0I^YQ_Vimr'_2DiPF2f2Rk\\dM758on5PjaO1)^jC@*Lt %[QG7h;]_Q;a#!HsLM?JkSHF0=O/!?S!9FhN]b.U)IRP\%4X0")DMphgL!UXd:I"M[Fqn(W\b`$kPRDO3PbQG`U+bV[>*%4[8*\g< %?J2a0YnV=YO!UE=OdImV0W-iTb(X\?!Dt3Mjha4E/3%i90uV[rhWDkh4$&'!.2Q'0Ruu5!@-iYiLRkKM-l4f%!o18h-l4f%_X'l& %LN6gYR\0g,/BW\6"etZlBTrldn7QgFjAR\t^n7?U8%GiA(SLQ?U0Q?0$h.K?U0Q=e"1jX_UKlII5Km*;G[L]d#K4/Kk?^NK>Qi]1 %([B99k$X%Z=UuA5*Y@Ke]Jn,hF%;j)\.uYTb#qi2$X4tjirZ43cmT^% %?%q5YeG,99UipC(;O2/3&*SXJ_Ch/63.pG#l'A^2pU_IUFb*jT=3neDZm^idkrq[+"\)dF]aM/e61W]G;Xk57>14gFSqPT7ss(-C29"T*=(%)p;N?jN^F#?PO`pHhK'?/9_[j92Xr6(5JO4?V*K< %5&P&IbLI<7?S&9E/%e(nhH+Nc56F'%2UITP9=di<2qQ.]>>#p-@@$f:6=PAU\0(t2hG[CRX`^UM*tJR%-aMGlb\Z^sRhF-9QCC.K[=h7+oSLi%[=h7+o=V<7'T8X=.;`3#dI$-i`^W>fjE`opUYYl: %2sL2`cP4cuj.H-\"%>)t_+_MDQKbQjPH1>h?`,u:lZdU[^OeR_Wr2AAHSh"mSIX/<[m0E?ZP'954]VE]U$#k=E9.?i.d$0.q.JUX %TBNM/50\#fHmfaLfC_bN[0d8BN0gNJlI#-r)F'FJUqFsJ1b3>+!JBhl0AG[/e/5f[dmmF@@+$a:]2I9+J3`HSO+`a!\.3t;9u;SI %=,lCp"h5YopgY`eT!kj!lZYQsBGper#?Kl;_3__(6&OacO*8h[>S>-&ND2'Ti_-9Cpptj/^2bilq\ibs[i\PR0<=oL0H-Jm5s0pF:GfZEhJOYjf-!Z5cU`rXOJgofVSDgE/C+4&[-4_a(T%HVP(-\GKZlTBN!f %B]p&:]PVO?#.;S"jl:H`iSse'I;_"cVADV#4W*OXUAGq5b?OqIdViLCZ-\#Jkc8hJ/`1ab:R1fHYrk^)4q[F\hL5-UblsUZZ]r8' %rLKXIia'!6o5V4/H+6K.VpE9F-D4\:hY-Q3fad)_2kIE?F/&RbHJ57P.^7e-Z^^Jl7IS5@c0a`W.6L(D3odWX@r6qlbLt]\rZ>>8 %_eWdhF"!Wqg-'_K%,KhPHM8A.W:R;X1J*kj92eK_Ps)d-O].fDSUZb;^f,mi$Y+B4,C`'kL.m_C(bXdLii2p+R;O+e-cmu(q.JJ2 %,i@K+!\/WXTi\>oBtZ&Z,T"f%!q7gi#8kC00WkG\q]oM@j]8J@%ZK!EQ4dj##ur1If?dmI8!7((_apeh %](F/Sg<3:9+:9PRBI=!=V\`Z:+_1doHV75Rb7)8F4*G?!0J\:SQT'-I=>GM4101LY4X]>'=q!.oZYd[7(.i+L,LKjO#*rE=`[E7B %k0'i9:J*3pd.3]@5FFBs7h-rSC8K`d#+:26I5.EaQW`OH)5S[dU&mZ>/@23$=Md<6"f=k=6bODO!Q*g.Et.L88NL6(p.d %ZhEfL1<\J9(D9pCACeY5*kH-*9C'SqnMTtMbp:H4a7>`bbdcERVOnV;"aCI;>`L(Qd!?E_EJL>X&IA_kab[r,GlU94'/dIr)UYV3 %+ruL@P?]Y2j`iY9esb)MAb#5b?cR$sIpiet,0:fX!^,<-Nd:`hW]gL[*0G`5%ck+r%pYkKHI*haa5a:W\":*Q.&.Tt9h?1%8^: %44PA#0[P:Z2ZFED,n\l0OVg3eDo%PQVJ"im`Rm[&9YLiop(e6%#SF/uelM_h/a#pEFlL,j&epSH'e=s54X2@B+BAdHQ%;1<>d;-P %gQieC_%eI'G'Y9-#(*Fjk;__m(?>O.E5`/3ZkI=R#$7m&*i#2?/%!d66r:n.0.;H'u"74FQrLS'm< %j"`G4,:[c'kuQP1nAA?BJMmW)cji:8G\F+DkWC?*gA %Ad8],YsOi8.Y,Meic-TR=MGtq.]doU;mhCmXGgVPf#IMXpk2"o#Y4q^T_WdaK7(2Us"p/mTfSi/nb.Xk9k %LCNXL+^2;BDJ&=OcF"NUf%KKVnX&X**=P?:$S*.Z$Y$"SD#8O?Gpkhanb;ENMscucF#CZCEd][nq_uoal\g>G2jrro2:FFqCnVO> %[UVN2c(p4[Z$Js=jm:P=!eW,M^fn7&^"a!J/+0gDQk&ag%\m.p&#(DK@5oD>@:?LO)]nK`>&(Udt2_FZ7G6U,U"!%pN/4#:uM>:O7f(?$B %@n01,HRTIP"5LAN+qh'ArCpWO4UI@h-)n\,%0Xi3P#UYX"9W5^cacPDR59[#5T*go$s+@)#F*%SWGnQ^A1i^oOhji7J0*RXQ!2%Y %>%eA_c,efjADl"W]Ljd767mRk3#NV3Kj%760X4MK\53QIZ2'Yg_M)1ErBd^;&h_[S[PJIF[=epqJ8[HW;G4MrbL)R;W78t+Nde(_ %Q!2%Y>#WJ!Se./%($<[c@>1P9.*W\QGO@ %E?b)59FmlZDJlei>CIRlB;>c/C8+=S9d1$MrFVOR&+"'_J`65`<`X$D.&/C,t,8n,S-= %P:/493.H&_Q>M>"iU!AuRQ+0[o^HZIGDfU+[Zu?g]564o@B%`h[]S[f50C+3r2AcK!JGDn8kfXFURO)I"h!=1#mt3h %3<4_mq+BVATRHf[2SC/)E6p7e]isr'?<_.1)i:"iNX>jod?Vr(X0n];NTeF%-t'(k3r@c?X^FXEZtaa3:W\S*nASS33JLilO]F'd %<@A;`M<\'L^T"&*j!<&?hdI\cL6Nb %q$S31dXlU0IA3YQK69S1@]m_g+V*6&`,lY9>U8S]WFi8J`9Ku)Vee-6-+u<=ke0g,'&Woi<-]6'I:hhNFVpf#-g,N),95tSi %&a;]3_K/d>cX.HiSSpEkWC?1PeZY#Y!sWCg4RZL_rMo.8MeN%(ne.Gl7cQp2\0CJ/0Y9dQPm+k-pFudA^:8Rg$Ucj %1YW^T2.l?AIli:CSU550[@]t6g_"jG$oSlA2CZZ4_0k\=m\*G9$"lV+H5EL,,IH>*.S!D$jm>TRIsj]fQErCcbs@XO!6ZCnnS1=" %3jNL6\Rtm<]Qll+(SM-'Io5;YONDklF./7$?F!-iG,3koHZ$P4\a: %o_pS.So6lI!E^D)Uut.31B>Tc+mF-QrrnQl@L]1p^Q7fmi!h'l@A)8C7QHEB\#A]J'V7mqO`G@@Np)gU1VG'4npR_*nYPu?)-:uW-lM=FV1F)BWVFOJ7<7OIXHaE2jb,NPTnKUk1-;LStP.WN6LjX/H@RWR+k.7o[a)F!aK?FfX]o'a9_!NWqid;&'X15#">hoiaaQM9p=&b.s2s %8u0[>i5li_6I.C70Tj:N,+.Mc1%=7SaRLXtai39^02bbu/fm4l:JnY,Muo"UH)]pmnNC?Wc((l%']1-ipRin]J&"UA#U5%>9Nlh) %(uBn0R^Di20taE_J`D+HTe_WE_&HN\I#fZ[r$JrUa7kBETtp(8f6G\mK_m)&6k4Ql1?*Y&&39U*818M8+EI+2O\k*O60(SMb)>^# %_g?fN1Cdig"#DY5@FIm-c?P*fJ0c42`h'!l2k?0N,$9A<3T#^&Hk?&#R4HIknCR>[[H(sX82KYN:Z[N_InM:a4qdH/h4I;+s+0/+G %GH7DO5l'f/82#LNTtA_W45B:<7J$^La)N@j*Am>R$`(4O9,$i\=L;)]g-YOK\%<8+BP=gPVs0+s8Wd3l?G"HiJ\((V!6poIMJ3iQ[:Lo@X` %`COINH4WY*oI](((0q]CpV-F((4B(rWfdKt[HNfXP@U$DX;64^CCX!sGufheWJ):3--U-&(Q^&4B=6re>!SgD0rma8e?U$j`+HF@ %P?Pcb(S'#B0@mNDI8UI9?mX$3d3l=Kdnc^E>4X--A^"o:-agap66E8tX;9VBU9L<$B!pi/&^62e>$HnDh9:7e3;H)A,?IhK=i_os %.?ds/P`==s(4B'gr"g6W>4clN&p;-*[HK6'h(:$5X$rZ16I.@mZWaW(Q5nc2OkNo>om=p,5%,_g5"W77?0CZVRfWWB4QBV&C(G+] %MH`a'b3=]o^%s;N%r;iu[7l1Ts1m4a:;1-n3h8CbGa2XEd-T^#H:7dLiRqjDlfXa)Ut#D)EOHG62e`@u`,$TeI;&df`,)./]uh5F %,*$H4FgAZ2/Rl.b;'c]g&[R1K>2-3'F3X%<`U26qApW,*\1CqV2so$lL?@2f]P3_(1/oMVmF"pf3'G??/2*Uu9GonD[R*^#oTULo %7"dS=Kq0eaAb3?.=oE/LqZhn_jXc*@*F><\0)*IrF1*'ImOe"G6qa3feTQ>eCO8%*4iCo['s8^_bl,ddJ5RffZt/g;]K[j+ZNXEN %W'afl#G?ENndlUbW8:E#PB7Mu&/Y>si=cTAL^UCP'fG%qY5`##4h$Vf\tn:0coDLm_Bp-GCpM/#$k?[\2?j9'3Q#%hYOC,YhQ8=S %U!UC6Ssecf[4Wg-C3B9RY1cmE8Z]k"\/]bI>@k7-MJhEJ>YLTgAf"M_buF.P*DLF0'9%?M'95GRi)E"*p#%:.IUQ\3hloU)'T/W/ %E*N/1q:]g:'H2Bm9jIA-AL?-2Q`Gdc7EnrPn4W_rhC&?U4.VX`o'tK0,#%4)#,T4I'Qg6c0lNrF;:&NCpZV?H$7Ant%K2n/gP)d8*1rcPl6m"'P9prP3Yfk^ %+b4bDEEiAE@'RMd)7oG*"IMd#[fha]I$\!E$g[V*o3Gt]0$oX4kI^B,>fh.dL3sfPf^2l-DI[Zr[VI6+F6H<=Z!A(2K^U\>G%(Bh %2W&)3m8BqhXn#b0fe2K7[a0/cA\14(AtSNIbB=3Vf_5(mZYUFH45mfqZ<_-tEPQddA\124CS1&NbBA_kICAo'ZYUHOkL];PA3*"3 %c@iukg#oukZ<_-E\s?\KeVTe(NEs7+hc(8*([V%mq(B!iQ^#ARVR;QYVZ_0;;Y]-p0sQe<$\XR!4;GF<$S %0Z.[qmkW(0iET77I$\!Eb]eh"C %$Vmhko3Gt]/rFhu91*1#:j(`cQ\Kc;*19o85iQ[,Bh03[_Cr';Bh2MmUALGg?5h88CS=g-?5h8&/*3LlL?,.]m[.cr)No$WQ7F(D %0+I/Dgb.`LQ\ORs!Sn`5H"ffE)AK<4_FbI5dZBtUoK)>0G\QA_8L1u+UgfJPk-,PRQ/#@bD$OM.1K^!V1piKQjLmBTeQcg]7J'_f %o?u:-MA#L.OIS-e]^LlIL?,.]C.m0k1aFFX5Se6_Bh1u;Gj`3)V4j7K9\)j(_PCkQFNmHG@og2!V'.j5i,NbY91*aJJ1'#%0+H#p %"-SSuo$WVi1sh9LR[8ciUnR?W,O2*K3GH:^Kj.k%P*6)=]B?#aF?+F%V3+u2A[A)BO&Yf5X;fYFNAo80@G=FBEmin<0^a1"86d!8 %a'A5aO@jOrcT?,"%I)ub*SHsL`qf+SX^$UAUWi[#?2EbZP-o=Mo>$&pF)8443jp!c9*N#5f+!#p[DT\/>-h0>Tr@0_eO30/t+p %!IQ>i(F,fEOTf+gB,;i0QO8$f3"'cb9,GA,K.k5*pejC2QX.j]kf)f_LkDnuXu&)QQO8&tl@M.nZEfaDJiBhC%Ro(jqdi@Q;WNMR?+4d %LbY'$B>\m3TriQ>V;W)VA1n"BV@WjQ,NTJ`g'@r7#PDbG1lnX^MbKmbcpGgX:tc+k]2FG2Xb&*Z(lm4g %3F)E$-(Rjbq#lEn2SolDaM5X2iTEBP9O^WCa5Z44l(ZVsO07bi]nPk0;O,cu,?ha+p\[@o %T#?>]Ud1#2*&P@_A);lY\ZO?oR4?fBiF$L)<@8R*VV^$\9Q\W4]oPt8b`c@b0IP[f.PGafF(baAm;YbZ8r2?R%NEY)5(W_q6Z9=D %7ZZ.I=70Qi(a`-Go%!;a+571L?FdS$bP4F#Dt%!@^4bCgOu9n9T(%N_R3$!^U4NQjmh#AO7e5J?GQ_F!`LQt%rrnC'H)U#h\k*[C %iPn9BX>6('iq-EjL2ebGZ?R+1o:j:bk!k*@p;RBWh^n">>V7-U'gW\21sb3NQfBV8kRS&njd2=m][4De@Y%^TSMpI,4ZF"$")e(n %-"OVZ6?gn:Wgj;OPWj'JroR2sZcZU'RnddUZOYKnkl3jQ=liDQX7@ZsIQ_gUSbHKsE85EJT7ICu[n:eHngK.HPb0nZU""Id$jf4B %o#^a`qcKKGb[4$3ao*KN*MuU"DVco:p"3>pN\`uhBfl)2pcP85f=o:08c3m^UPBN/J\T_=!UuG3j/than6$p`3EYm%YkX$/2_Egc %K_]o/@0c]O08HK\\bBT3RV*n*e=W*_=(,Jn0(r2#&aUB@<>V?F\Cc/>\2U!C><,a(%o?gp#g$$6U49:fl)AZR&5VZ*KmmU!.e`9X %D2qq@2Y0)E%8o#Qg0W8b=nt43^$@9!ApIbo4\2l-W^Y<:=ag/boN9?*A`o&91df:1Rc),(74BX7dW`^''FSJ_YYTYn-lRspfI3I- %mWbcd.%j.sRS6+\;">]LdXus_=*Dk2``5ncc/!'CWE?-?hD6X;Su,,p/2gN;*&M0>QV#nIX-D[5@7('.\lJ#;nE8uiZqOpr-chBK %3ju;-M*2P.ldoN+8h-frE-jLMO>[J$-tM@\s!R<.;5kL8,AV< %O1>p!p>kVA)Z5Nhp`nO,AKpbX*F3/D+j@/'f2'=<4c.p,/46&iRTQSNpr;7(<#V>_&[4utURU8Y]6o^RkcP/hF,<(u0Z/R2ASako %)*,T0m>*A"ZViN,kb4uPRJHT_Y-OZ64<_6f*#%QJ"eZ-`L7gUnhdpb8PJ`b/Rk'C=S[$#:r %546ee.8HjA)Ep_C+0%uc6Yj!p.qT=XoR>"g9Va:<%26J)2sSD"79QNZ]MSX %OO7^oAYYq=**WX;Oqpf40rHoJZ@(Sc]ldVsMNYb_+$eG$jH;H@2fXj18N!rL'@kPHp9B#)\#e[3I'Ai@&'DNd@f:"d866Ei#Ps7&O0pC*8>/*9JfSjDePns.dtY3;u[/G %SLcS&e8g^1)Q%/D@Kb#l,&B,uDm>N!*iieGnSs>g0O[#nL-@OsWG5*]o1gsZcDn2j@(&PcAc@)nD3kp"i;`%:/nrO(GB1g9ft*VYT[Z%pD]eP$f&+g:NTf-09(hPiQ!\Q[k%IJMP-g;%a[,d"PWT6.^Pu(Har0?ksXsf93XgR+9k_;7([A>gb"]G[u#]\0RG1 %3a.u?oN=l9eNWX4B<8TZ>:97g;.l=<3q*8chD8eRHnZac:XSKoh%9KCF-GETHM/i:M1\CS24(!OPX %0J4YkEGgL%qd'k6C6=j(1@YX]1DSFo:4\^fnUin]?he-FhqpWOAB%,#EEo\k>T?h1I6'emAL;/Ke<6l]eJ(O<-Ii`PXDLk9RVc"( %X)rSG@miT`(>DDr=h:=CWJ/>\:2>QhkZ4VQ#]^s([[fBoP?P7e@7S"7`hXBC,SIdo`hXA>(><89^/o(tW:VO3AX-/`l0-.`sA=iA$!Z:0@%t21"P?4i>hT,).P7.Q(!!*AW4#FRLIn*``a'N#&P5f/^`D(&_bs(HFuTQ[j1Y"/?+?dMs];0 %Z_SAR@a,^_-N4,tC/i<7.FI/Dt'umL=V\[i-QWlVE*&=5[6]E[WhP)L$"dtE6XnBJt_:+lcS-bjj_mpYtk_=ZV %QqmEr'u?HZ.6AJpE`Sol29k'a6bD/)C0>">J]^T;#.#mM+!W'!2#Q!Z)*FfqEYNt=_@3"t+`S3FCa/_CU)f"2Rts6Dn\1K)n9Kob %K\5"H-b'HFgbXQf-ZFk"a!T$g@>/\FGYnS3WYmp,0o+`. %-HtEpLBApnVB'$H=4HjFV2jXhV1O(V$b67Df]nU^4R%fefC&"s)KFn!QdV3=@ %XCe]fg0+3UlAAcs6a'r^r-3\j:rB"pZY&]s(P/@N@hTJAhB0aK#pEi"3=J,1@0R6iV8Me4',!W,FlOnJfS"p>;\AB!WLT)SBSG,6 %CH3`L^eJSlXlYr"6F0Rd!HUUpLc^?7d9;Q%/RG49Z@idm0P5[>Cm/%-DY:f4eoE;bUhIf^=sbMJOShPA=3Hu\!rh9TMMX2Ur/0mnLO:^tqYV&QSd:rt3 %6C0!O'MYH+bBWqmji8V0We=2fdW8JVLp<$@pHG4/0eTccklM7UEp^Z.WP34p^B-=a)/Yo,jG,r7iur?7aGGU&2A9BFQiP'jnK#1Bs]`^7G#*MmVEiW[kA>`maY%oCN5[BoW!2AmKGR[S?r4anaY2bZRR=Sr[Q^f?B+XL&"\u-dKBLte*91LrO+553V9)B"o%7qT!llIaMbu,)mhf6t( %;9sGk,fan&dm3*MpB>0f2_`of1."R%`]T %qNL2j^2#aC"%FX'q6$P.dn4(ljS=gRl=bRJ.Yht<,#Q[1Xf<-a)%lOhf7LD8#<,6#G7ti]/k%K^W[q`BEiHrl#M@UhDU %(/p!:181VpLbf6SqFa15/cn-$q6!8"Z7?\j3PIl$OHJ]fP[+GcT'ojCmuT#7hXc/OJ/3P_,#$IH^"AN^+)%'m=hl=d"BlDY2(gSV %T4gPUf9h=rM/W:oMK[RO"h^3'XsuqOpo"`>HBK:V/@,Tio.L@Z#`P<3 %N+EW1obALHQ8+\.KLO:!SJnjI(74`1$=iHI%1Ef6A++M<#jYjZSSk=Sr)^.AehNInKEZ_!Fc9lh*QV2?Xi5\<7Y6RBN!YM?4'0TC7[E.NaY].7\QV)tiV.\.^9a_ZbaW2WkY$53,/]d0\,6uM5HP?(aY?@C_`1]@*`N_P %q5[*<';G""fBWd9"a@SYX=&*FN(mPSl[")DKbS#cL@I\;>)A-A@V(d'4)HeeScZ5HA1tB^2RG9!3H^*>PK]!pA'#$^8)$EW_cT.4 %=rMJ2)9/rc8'02ZDH!c8fb/U/!CBZiBQfW;+%=b\Z84JpJkUC:YZ_N@)f(`&eCZeX-K>+uqX);fL5HI %!C#fkmXB24[Z%I,_CsuO;fo8[a!E`9>K0bQ1fksLQLU>?K[?%(^*Hc8N&c@E3SG*%N)OQSUQe_01VgZ8P:7m"=qj[8D5f=M3EnoQ %CN81<$FIcaHlT8"g$W.T;[[X&Kg]/D$tDHd$*tMhZ>jl'7GSA^"7H`j)92TC9ZHL+[o3[[PDRu+)rt$5[!UEle.VYs8_C`BG&$"( %>261OROl^pqqY^+*^6\9o=]:nT'(GsUJjge`uOef)0]icR?%J6hmGMQ5XRl4=3I[;NKiV<&.[=iUM %VnH7LH4h7jC)M51EVmKA?7k24/P0kp\l\2cX&mKS;[]L8&EqY"maOR=16GlpHeKOA]irQRXV4^d#ESU"pM(:^Dtk.-(TgFa%K&Q: %4n5.90p=Z+pc@)JYEnV@0,F1W1mqZ%j"[A9okG@gC/HgU?7k24/W.!lWtbd#^'oZUKZl&)'VShb@gSio=fLW864XuUat*nI'*AR" %d$%s4UNIQV5!Q`s7MuL%hQEE]^M@q+a_)plC:1jX]bF`]dKt'"Q@Bc)1%XjhRKZ,'Im#V@/Z4BaRE^$NGtLVsAnjlmI3MiI'g63R;\r*enL_ %Q57N;ksaMm\4QpD?$6P40d=YqP3goN_MFEcQHM>0L%e1`?!EUW]*NF&'$!GgelaWk*#G\dgR:IWMF-qb3\2(=73P*(B=Y*b>T0qH %a`7tj'N2<(VNA0ZOJ9uL!1bMFFYnu/'nnWp?qXEh>#D6^'brT[U_SU!->[H)8Lk,k2.Kih86SjrIS/@`6ILb.h`HAF^Em;?8BQ"SInRX^E,t&@s-@hgQ*^HA,=NbtE8*idVA4fX;08jgMh;0ENl>d)h!!Y,g;9,XoP[<' %MfQ(P97!dTY;A^QkeV-u0lrEBENq+WSaBND\``l@m']@XfonfDnPInL\Yr$j>lDb4%=^C&Zn/Ib,l,ilPe^Ek<9 %+dHbG;b1(h.+@c$n)';J&,X.\BaRE^$?_lS#qH@6YqgEN-_`$-h+q7D6IL`XXu"$;pNK2+#d,(`\\Cc^c?Ij?`gjE1&>*1%`-KM9d&(37hq(@hLW*eKNJKT%RkUkX+2aC2@Fa$6[c/f_l"d8&]2 %[[n;+k[VEL%`=?[4/.ebYK*r_=1dG3#1:K.>nm3EXXF[]lO=Tb:QA-@N:_j!S4=CRaFjjpcgB!b>PnR>Ze_S %jD&I;[G(RdPK@s]3/P;lT/u=t]hdo>+P4ur@G,%+iS.uqS(fo,)Ek"GhXn?j()I)Jnh#D(h=D.:kF\D#+-XOr]5J4dU4m*#o(U$g %K[i9PDq%P/i'"rrp@f+`U5rgbcsE(pG!!5T)ffZAQu?(V8)&gneR8Aq'9CO62usE*@dNa<>=H$Z[08Qr;7%Y\MUC#Q^7mZcUhF>0 %EY]'*1Ml/2Fok">/coRMc04HNLIH^KbJm/geQFTphiGQ5J!"FZU;sjV7Hr(5XAlsJK/2.%3^pJtdmV8shE,NRKb_Xa-kPSc.Mac#7 %c_V$c_rYJ"gq,P09\s4Jn5^>9n#m'"/*\]-hqrO#:Ip2]q^)\$Sl\L+-&Q%o"2F?=M6G8j.R$nNT(%A//;Lrs+(%g5>&eUFig>9d %T1-0akr]99YRbP:kkblDbc:0fXm"R7Fgh2fml[%?@rd(H)ai5`2E@.k?@LX'?cj%;s0YmGNRPMl--YSGPO^q[qfao\)+Nhe[*4Dm5;J`e5OjP[iVSc)GAX%C\iX7,X^d$r[^7_&k7BtcCJ1_^k)_REXt;467F@pC[^6BKMKma=(5AQJ.-g+9Ner.(>)NojQZA(4E/'rsr?']+ %"]Tf]8%8&::Pis+h"lPE0s:>GkSs*-,SCngDjD*7N9]KGh]oegPCPb3f.MJsj"Hsn`Sb.n">+cRbT?8&=58(A5RLg!(90SH])Ph^jLj$8EGL2^7?%UM'B:MW)S'K8rUpZ/=&FWSSL>n*ora9:TV/[ %+`'(d>(feTMMXYr@WDkTJ59Df]CTLp'(":p3-6s\ %'3lO=4lIT3VNnN"3epcmCFa'RBa^.T6Ilq/7N?+:#6.G"^rLR@)0E:`WA]QZI#DOi;>695q-i4r:>=%o<4hh4_7)!YTstg+4eT.u %(`t,QO4p8&o$5fc\SqA7>34Bu/A8b>"OKZBpM,K.V[4>BI\O+X3],"nLtk3r_>)R5cBd3 %@g7\%f=neeJm>t&Y(e:Z81C(OHLO9HJr3e#/0o^Iq;lDPr8^W:8']'q^TnBNe[QI@[6DN=g_+fX>)5r""SlB_(5f(7g8BN]r/9uj %I)tj!7S$85Oj0e%R3_!03!Q?L_bu)\;45q>DSLrle"D75["Eb5F^E7q %dp#T[4lW)*==D?IhsUnP!3D4^:R+2F-[l+k9*n6m<*kV1At\FQ;)@)CKO=9ZKLU]EpmW\3PFm_+L`&Wj`F/k3Mbhf`LK0/=`hNUH %pA8FFRq[)*nHmp3M'*LB6OAVsK2@Ns#t8((Pd%^,i=l93FgI-*N:@4(Sns3ZNk"pD>`mm@RfCa#h08K@YS+-%`m!J\g.Z`@%G^sg3l;FRnD'nMot^OKrUWkRff98E";6>%:d2(TJDHj4h5hkfQFpArI2Q^d\Qmd8f?hJ[#6m0/@XBl-Ec-MR)Q)mL5c"&c'qn %TZJaF_TcpOUn.9+F^'FVcE5#4adiIX@GFJ&P14:RM(A47Aa*>Th);WeW<6I#=R=gY)rag"48!F[ltplILu"DtdA)/q&YGTDqRPdq %nt^^pWhmAK2lJ&er6a'+#rTIr[@=GP%C0aQ,jRkcAup,Bo7`"Sbt.0/s1FUIlAC:JF?\iaK`gFO"Kt'-@K/&@,BuY<]DD,R(lbp& %X9HlN*cE*X:i-*J%51H1k. %1!qYhUKP]ThJ\8Oa*)I)RE=eE#Y8i%60qL(r(Z+["dp("h6\"5iH?1n!)j#;khp]JJ? %cXD(lm%1sPqCLc#.&\D-3UWlqIbjNQkEYaqHG(BObAK=A8kPA#o.e\(;S8SaLDK@e^i;<3*\4EhT?i';Y2G_E8,-]D-JH4r\Lo9h %;4u%R`IT]6M&u#!0?9lZB7G!qidKYkNX&)H/H-7V)ZK`u:?Rmin-Z:FLWc1NCimHJPCEB0:KIi59!]HpejiI>`c9\EUBAaD9!:)Y %Q1=IbE$4Lj,@Q.,o^VT/+npd8B5"Gs?Jt0:+nThEjsTQn][2_+q;'hl#g3(`*\53X<*5_WD>eMfeLkMgr16gHVK5.6nsisiMOG3%n7#?l6X@#DRtj+rhI+BA,BPfdO:FQ]o2reorGh3039 %Z>8h0?nX\O'AM&$`:G]JJ'&W)=n'Na_CcTAWPj5TTCU$R/6Bu),Ef&9#tEg+7O1tQ&utf`BLGb++T]L()gZr9SH_[M`^mq0X;N9` %NM'M36hod*OsSQP81[;(G7@Mt&Sr>+A.Tlq0>fNlOY/Hm5]Vfkeo;Z0f,AL6\M33gYR$l,#aGQh0GYmpk6i6K[B9cHj-T`_]_Md( %7&?[GN#1<9A\3Sfi`1m/J&J@l@^VX)V]7s#Vl/H3INR)*:l>('h(!`@)^$MTNZjeCD#kF9mFO@UBEbJkQ8#`1'a %F%a!4+XF4L_dZ6H/3,!9$mB7QgiJ43Hm*UaC;Q-&[#;KW$mGF5#hcW._B3V%jYdu-L+bte'aZm5#kd51aLrE0H;l_.t82.m3:(BVlim5RHe]?4E5^Fh^&FibLfHL#P(j-DKSKH%m/CDWKa,i$JO2S%iVU"$oijU;_8I3Gh9^.Z`_&g5(3 %T1dH@&g.:sBt'TU,X@+_/gP(chL_CVK]EMLOC8qcRiJ=lW`DRmG4Er$\W;HI1^@9RFr.&c"P5#`kLEuJ]O,/p(40n?B90bLbrC;h %18$+"o[X]5(qrHUFZj[I1q99'Z>XO7/43-I.<^lK$Bc]lg%+BrntFArcB_88W.sAB@^^Zq %VL8CgHE<@>I(H2&csKAgQ;?+s%mOR"D#&2'HI+67ba&d?p!?TdPZFdVd+g!]bGT-u-_?E]YiR+4+4IUYdl$5#;Ir:$5.I^\S$m^I %qcZY(2_EQ!_CpRbDd'/"1ge>Wo'&'Ki0p8lJ%1I>3=f-E[X9U&P>_h]HG&!oR(nku2D"Wa)S]3A>)QWPX3p&]2pMWm,9$p:@DRIs_-(.cKGS,b?`e@[AS)0(_B*1;,S=P9@S:'+CB[+TC.^*!. %:sPffoRa&;rosPIm'Y!@ds_f$OU1'3]ZE[?d_[AhS5)^<#./2c;/HE<6B>BaSD5m76X(Grk-/B8@<=pIAKJ:h!+,mmK8Y&RPDcm7 %SVD9>$^EK.e%u\R\@=4R[3f^/TiC/3AZ?]omO4uK>9!<+!V^?Y*CZhaMHAWT\t]c,mn_:S2=gr^)**8^N.nE#i]cnB4FT:u^PV/@c]qT/A/Bm!AET7pZ;Pu]gYi(CVIOuXl?*%.aaP_A].!,?,L]HMTXM5S:Sl$I^e(_dI]DX`l$b+a %DCT:E8Z&!pr`+58f(uBF%ChR#58E'MZ>"e"tJKG8FjA`J"S0dK=4NE`pfrs&>3,oFpgF^[K$KOVL!I+#'9+&5PZsn5<&@cO^Y?ZYDknk=b#JD&oG=2ZALiECPJs;U(oX2kr*i+Tso=l_=ea5 %Drpn?jDDC1,ZC-(^Y`['9j7$h[+_nZ0,@"2a>qs5&4Xm3c-Q@'^f[:A6!1XkhI;@&]oDG0FYd<_.tI1F',\I=:M9)<*R\hKuhtH7/o>_Ki9kR2kU]:OUhqeBF)9)#Y'jfU#cPt3>=G=Bo^6qXFrWoU"2'tT=2>uM#s/9\YE$/I>j %3kMNAYH.pO=uMPk^Xg!ge@=^mhD0926GG?M'mo\=2E,'6c$U$0b.6[FXTr">8Ko_cDj`N,K4gi[A3!DCU9Cm!p+p)[\%kO/=CEIN %,T6I3WPHK),-_=L:A6A]8pbc&V9ER9Os.'f9Z\\aMY2ac6]MI(igjj01r$j>\8kB/O"-5MO";\k>"EUF3#V;o_ %'GQi`"I;2HH`I8b0NP&?g(JroJ.:k0l`>[18'%imAa"2??n+pCdCjtC9;Q4OR5.8k`IW7/+EJ^]/MEr66:W_a5S<1oOLG6iAG&Vp %^qYQFAL:BR,Dm(t[5Knia3??T4F=Spq5/XEYl)](0*)q;d<0?Y`a4..^6is<49*Z/guU>.L7*7'X6aZ4b/Jb"K.Bk: %ds$A;RF#@o_l]eEmpAH)44A`g=W0YJ^SZ>n:c %J9%.;_5PO;B48e5St]L5GU@Zek:sf*koKD!puD@F7G'UkM\E2CoB&_"=aM,4Ffc^P=<29uI52aV_j>Fl9:?RPAQj?4G-`s2OEcP=c\i(f>N&tTQ\UBub& %*R=r#>on*`\tu`sn3!L%&MqY[SH.DI"2n=g1k&\9&g>.TLKp!6_`V5:4GkJ!R&=_da6f.F%.eT.o(^KE15:(cG'U`),8nB]?+W3R %Q&10&Suu??54'M)R&=_d#AgeN"IA"'V>G8gnBFdX\\_-mAe_@/&=B6$S]uN\pnp@mL/&K7HE>WBbPTV_^1ij5ZI(>#Fma"'Wju&( %0K3XZZAm#6J7/ed7I0N>0Ct".lKfaA<]`Tr7Dn\!DL5T*lD`2Q,@ZHn\T8-^a-OcrLYnR'-?T8+'p#Od%jEnVK!4!'!>[OIQX!sP %>J/lHU8h#L5*Eou\;#"Pcl?,LgtB1P6h?Z#SpDaj<$X2pBUa:'63p0qX)=:+lea8VmWn)kEH0UW>hNcKQD$=YB0pXDCPLsgTCM_d %mMVI'Hj6A7WhK7gie4;[hr$_k0U4e/VpIE0@Kp6rgoC`-jNEu"S/37s9=`hsdVG*+N&IPo6Ho1E"0K/FTT6;6!udkW^Y&L,QbX&' %XM7Uo6%>1,M;:rDSHM8?O%Jub4o[d!@1)r/Nqk=I]d3M4J\QkF5!`#Sq.hl1)#M57Ba2tVA*D@-7A%,P"a>h;G'Y+n7UC,%c04HN %LQ/b)UHJII"t`Y&\moSh:dj3SY8APgS%k]_H<;nX]?q?oIC!h+NeV(Ia6"L(m#$_4arbM'";NQtljV-nmI2ZZHshUY>gj*RMF%0! %\YL+-'SB6TW@?EQZ$"?XY;AA#,Sq&dI(]QV$`c6;)9W6=3MoTBa4%@=XTY(gW76pB(0/Y/-oqoV7R2:::E'4P%"u;(q2>SP%"tt %iS;ii3]L-DTGa!6fbDJ>;_ogN#4\b(U_tH%M=3iepp7K+)3bhfTGr)J1FO[V.G?r0TVV(0oH1P!K@9G"h&FFK"sq52=7s,!)3bhf %>kX@CRR+KYgHEfS-=]JL1MDiSOu.g37t7@MV"JJgK&ZWh>qp5Y;,G&0g*34A;,Fc\dgc\\90mD466dn3C.kI:Hm[bbcQbM+j"k,_ %a"+dC5V??X`TOn'Jm>g*R-s^l:JZH]-//-TGIf"%[^fE4D#MC9h77_j\uk6Q='/%5`uXCK(@CP/$8SBT[=9"r?ljc\)9H$cc>kebT[W_K@A56,rL[JQH#oY]RnACc[k0SBAB3dq`Z_O"tkQDaaZWt %T)e8W48ona$i&WhY]*-16t#tr$%PsAS^C:raJ_PV>D9eemc6^lQ7nj:DOB]p.fs-T57iQkN;aWrMa28c9Z@aEi#DDX[;,9l;2l`0 %l?&;5N1FcWD.2nE?5GB!A6U,"F;lgPI+dp*3+&IHR?qQeZ$$r9TG2_?mL.7Uq[o*fScFZdLHSeRU2[g4@@c89H&IO/jVPoiG;T6B %0fs4neDZ:!?tk0?l8=+#MmKa+$!uoV$>nnR',,CP/bY1:>Yl^^jJm4ZE^>smOB8H\`n[h(:pn)9Zn$/_(%gM*`GWDm=hP_BPNgUQ %maRs:okG@gC>g2d8["GZFBrj%,LNQ'go1G`lm-nbN'"FD4[u5KbICK/4&L+LX(f:\rUY*b;!%p^(,*.\9=9$El0iP)I+G")Nr!33K:_/018(an8BWhii!)GFZoV59\fFNk=;nnhh %iMZTn^oJ%(dM^VcR;WtP'*/',dnl]R-YPS=Y#221,8T-Q5iJbOf2l>A[SG5^rRUFh:7JF8g1"IZIQeHk?L;&=A-ccoOW#JOtSE+p*tt(W'Xa+Y]lD&^Q\H5[XZm9)Kh` %(@pXHAt,W5[Rt6ol"r:N_;:HpS3O12<3jBblFm28;3_d-"bS&u*k1SG_SXf0*j(QiR">V@c#V>QpUs;[)*A-&\@9BcGH-IVj[T%O %KSUMi)o+"5fn8'g"!>3Df)TGC!TU%,ndhdps7fleo"0^(I'4V@.t/:`;/^\2+^b-W'A)]D3gq]oZNk'P5>Y#qgJM#l8lAu3rsq7l %D$E:ZK.\PKY\C3_5!FANX(6b>MZ!^WDA39l$N#aZ#TiT0k!+ia]'X;Fb2?`;GnQ]#"^jRkP?]G1.\9(^(;&9g%4;.SPuD4^79:m;>NSo"Clsj*Rh,bLrB@Pk]JrmQs^=Vh_1i:!mVlg %IT8O<5mJE;31"9ud0$DCbIo+lpKZFJ:at,p']AZG#CE*@J]Z4-gS':""?A./UTFKjE=$p)7lnp3Elnbd(P>Yh3;&p^cO'be_S^-C %d$_*IX6"TUJ<8a>(@u\5.3jAM/6Qs>Chm;e@BlA)e930T1P6%`84:c\S-e^Y2.OAC6Q/QNH"CGk=Yl7Sp";aRR:UnK;8^Ijs0]^':$@:[]d_Mj!Skm2jX]rYuYle7GS_.`skp/A*&GX[]Db%Ebdfo`d4T)D0SC8:(8cJ\gB7[L:o]1.QsgN^$>^Wb+0f;@u?#89oq2l.2oS1#UIZZ+Q9&h>:>p[iGtXF %:BY5`WU)!DND22*8Vs>D40tOrQa<=FTCi.[p(OcbRb3M%&(J#D[5(\5L"Ib(&qf%"=(@llfc!0mm`%FN9/5(=D9'b^p8-^ %BI2XX:"*e5(SJrojSb-ATG*%OA#DjG/cGRYJd!k&\7&]UcDjDf:*B50`s%l2(l0:UP!>I,7!_l;+qA%!8aTrVF052g'C"0ul3uoh?_M'Qa[?FGG %0sYpo`=ekrX)U4cMBtRm1F%&k'h`<]5Piq['ha4;T]aq(<;mq%J`u(0j*u@KHOdde1QT:4Ide>3B+%KhFT:Uq=0Gpmrnj>Tptlb] %hUK_smkFdeJ/7Pg*5h6U^*L_<`R&aFi-Wf>^P+CA6@5QBL*fPiM6bm_A>u++<>Y?IRS:"Z=6`c<*WG4sm/&bZNu@t=-h_tuL2k0e %rIAH+rUrSim/+S8hMbr*(EZ(%J^S>YcnYJkRE3PP4A^4SK6[Ciqi]Y3V-W]3n;[EkqXsY;3dFg*qNQ2$P0iGB]1=oY94a,]"&IK& %?'M$__SeSM51e:425IFGpcI/_Ce(S`ro)SMi2fn@:#WA0$T %$F7#A.`ihr$>2qUO.ln.121jXT/C^!Tl70!ocEtL_XA4gIWUMPH3c0X4Id!FqXP0@87H%!'ti`THI92ZqD*HBTV"[bC3e_2J4F>o %D6/N5pnI7-(S*Na]fV:*5&_$]T&%6@QA>D1>n:S/nV?t$i@a.C;b/JL'9bBDdUqC,@*&?Xp?Kkc&;Hl[lIk!._Diq=N.9Z;HEYSB+nnhQ:G9LedV_.#g:=K[,Ool'JR^Hs#%E=1cMfl7:aC*PuD %Ts':O"iS;SIee!Z:n?oKui0m"aAh*oRH1XM,nQ,G!9 %_HT$$"I$?k2Daua6),;Rs(4TnPIT[rZ?o/Jo)),SS00,6K@Ltp-#lMcSF_>U-](LJe_EL#)7SABS-caV=YbWuEgr[B(1Yd/27pA- %Wcu"6AuSZ7J$dkm7lEX9MfnI2Yu:/YS=aif(FE2R%=A+#(5'm,TD*p:8uEiJTbR*q5/[DQIGgsbAXndnlka\-eU\tCI66.X1O#"* %[%?@lCR74#KYN:CY6'WE)@9Ck%'>XXHmlm-)rFAu;@):i]`d'O%U3Y;*j`1f+"aVJr]/9U@R>]OE+gp( %?M'1]$8#R]\t7t[aLff5o*_4r\'o6Kmu0X5Oa?KU-Xd<7N)JUn=Hd\G#MG@ob$4G_u?Slc]t %/"%d]>rXm/Wkt5-HihW<^!-Cm9*N?nCd;g;3i+cMJi/0Bk0UihJ2QXDUOq6W;u8mUekC?*s6k'^/Y]lB.!(5N=K+Uo5j5Z0+hUV'NErSYV48:# %-AaqUl?#P1QJZ`,T<%.!l6@)3:kCq %6B]`s5YSJ!+j!fa]^D;AXtLBI],ZtB:GVCN76DhuH="DUih]ialgpDLCWlC:orCjs_pAMX%#W3S2^Zc0ha:%"+bu/bGXAI5@+59D %=?RMC5bD8OS]*3:gCQnG_.WtNeCOdE7G/Eb1lT$X?[(.Y[cRkW_b6s?T;5kjG%_`7-l=D@L(RJGPYT5[D$;.&I7"GgDu02%2RKJl %Pb1VMY1,V(\rF\N-lC?BO'DpMrob]6j"u0elc=;6kdkcaZ7O[O_B+H[ojWo-Ab4>Q=r+E,T:h01f'n",gjuK %=J=,YP%^Ah[:pQ(-AfaUMR?,hlQdB;1>kfl7)Q[)Jjt+>>M!]rI-Hf-iq\s%)XW$F>9gH[T,q,ZdD1[U!f^fU7$I5-mTDHJ)(Tn^ %)tB,.0pBgBM<6(mg,t3=ls_;U1n,a/jB#NXd;4tZ%_Q[1OD%a?@@frp8YU(pgLNJ-'a %DA!C+Z.^A7/^q4A=r`j#i'"HOa)]0uPcD,=]id$&:69=)p>JO7nC94R_2)CI99 %A::-7DR7E[M9bq:"6%C0GN\dY$6=2f?Wl`BL+jZ/imoScQ' %T,tf'0+FqNCoI^Mjq/s8<_18Yh8q,1Agfr^9/q)t"``I\\`M6e5t8N(OH3](k4m_f>ulY3@uSXN0%[YJ?^X&'G?-;(l3 %Dm'K5mtJDk87'"=&PgZ%E,P8W0b?A'R!$7(c'?KIck`IMZOCFka6<8Hd/9:rs"]M%gE_@tFGr-t\`ePGaP.ft=G9O\JhbAnA((NJ %`LjE3RoE&?c[\Sd0PE1J[U!ODb?+l&b">(afTFpYjNqC?b=1106Zh(f6^pE9-;@sWprI!jm6oYgoSZo=$^r##M/fQ[pAQ.OQf %\d3P`"KW6NWeN[qJad7;;ED9$^3=XdIOS?i"m%Fe^3S=^JJS_$:.f0*l_i2.k0:2ZIs*E`r@sQ0?O;`$,i%&noJG0jn\,8PRl/WPIA8h!\PZN-sp`+Y^cs%tQ_)BHn*-,eT %YP?uAVKU/AC+!Zq"_jqi@'4o7Pk*=ih?BKpnbcTV=hG"KC:!f.^BTUQcJmmp@#N`G#5@K39QBh %*\XnBj[Gp1[;7a:$Fet';%lSeNqIpZ$B;3;bg!s:8"tp,%YD_u)l"?En %\bZ(fX'GZe!B7DaH"aSiKhQs%(0Ll4VZ[=GI4TP2QtEo2@?esuH[.JD]TlgT+"s(8Hr3%2DZ,fX"QN>cg;EB6e]!!m$^1OJ;Ojn`Wisp_\L8Ag]^gX_q\g>I %T5=MfPtAZ6WX#01$hT`%<9O5)I$Jtqg(bT/g4utKKmc,\_./?P=RJ+87j"Sak2<(:?FlViL6P`^^P(/\GRN:@GB]!bma*nOmjr,5#qa %?Mr#o^eVn8eM&:.HudeA@(`-%h;HRg,2 %/XAhTqp>-i4jVFA8h\/q=`o0J(:X32\BK7pB>>j1r^MV-mJ+@6O8m2,TS1"45Q>C-Q-"q!mmLHm5Eo>f166/G;g%B+GnR2)a1@+Wge]i)iHT/VchsKu %?uUocpQIYE(TXjA_p[RV+gMSW;R]]-*tn"ETFV"]FWi:a5>=B)EdCFYY2%O0YL'n+X4s8+CJB\VKTE[Y=.u1/gj5^R\G]L"Lh9VXp4V^L*&iMN,,Y%V=<(9FQST?,ilELU^@69rt?1,J&M- %_2K>,KG;VDG;'%?=Q:TM=r=^Zl/eJ5k9F6cG8NeIT7U1U$;]Qs]@3^HNCa@_+VpIF.I6@I\^DH6IJEP[4m&0HkB5'gE#a %p&`i[*:g!i=6K0IeGC5L8h1&8fG'9n=":S5JsNJ].(^WnK>Tlj6c-k/mJkY(T2X>g0JJtSbKgHl0Y=-1\V@C %b@LXU1fV?F_qP'Hs30\e.=C4k^.t=f%0p!reEeW-?']%Y585WIhXsgNG(98ZKqG("a6'g5BmtHrj2$<+*bQkUa)cKQ\`:HKU5,lb %^V/cKic(L_F13B[\aj2,WmFP5:/jGKr-7i.I@XfZLn6=-NV8`Q&*$6oDhrYE:qM5LNe'F/``!OCSKr$][fW'O]n2O#W"KtR,ZHFc %mZo@R37>Jj[PY4)6FF^??TBN.SuRQmf2%YM]kYBe'W%*3KOk$g`NSb!3C][\A3=j2X,Qp!d@;`Zo3BK=h-ED>cT_8$"1'Qdr0m@( %0H@Ua%Pua?1P`EWr1Eatrof6,Kn/I/HiFE^7'4LBbF?\3hbm^:IA?95Q,f5p*e$tk]ii=FOF9u"k-^M?k/5ra^&jsHnCYeEk^!]@ %D#n=RHgir.'o;mq%o;c@Bh__/nTR3(;;F'2iK#-6)B9_X^MVeD,?_0hZVpINT8+D.4V,=%\b-]O7'lHYHZb;o_OS:&m;[`\dpX:i %mr-H$?6KVr@srTDQ9G\rDP;clXnmUE*e4s[4h.I32!Y@4(r;l1+!_g#hSKTg-c!aZ@Ns@?4ksbY'R2gg;Z@FZ->qZr(jVk8Yd)," %,ll=tU9_B'NeB&98`e)*!l!9qcB[ZX@LumqH;716MlXGSYPJ*?I/EBt/1&'Eb\s6F1TlaL:-W9h-hrf]q5+(]0-0*oL7+X"Ti)ercabT"q/1JXkJW-ZjcDon:VF,EKTdF6Ep#%U,I^-@Los %L:7A3F8$gi.d%+f?JKgXMkcNA3rlFJ`8G+6174_deTr++$neO]2Ull%<^0%)Tnl\7UE=98GIW/e>``QWkS&q*SO\l\P3,i %=o:pp^G2@o5T&kL$b0(WdJHj%'ht>6,HsMB#D/Z.FN#2E)6JrZ0`2PU#<@q1=0Y!^#-,$)pHh9lV/7pjT*HMEhkGn$B]OtMg<`"L %ZchX(?I&)?$IiSFR;-FmL;W0NGK')6<0Vcm664J?Mls&ZmZ>l4mNg`9E[n_p/5 %h/[`/E)C=\^S2!If8iOB5N*tL-G-HDc8P:B"oTI'@9M %,Nq*jE_7BGBULk?q(99kTMFWopm8:)!>T6806d,G$.I9/>P5A,fZEtD%U"UcAq-5C\R-00G=*!WnOcsCCf\Gg1lFS*lLd+6;#3`/ %rVSH'*A-5'pTjm6UWl8D9S8?`EKDKH$e"j<0@o%_+"L.'a]GTJnL'!T$Mpn(qT"H-aO^s\iMPO@%sj.db)k)boU'Sbi(?-g%du>q %T,"G1'p(*,5E%#naa.,@HMmE;3>A1]A`[nG?j.'D\VE,T@knkh];l(1g7oa4DTgrDbJoEjK4`@%1.`FPIiJ?S+Pmj_$s0`D9/u&T %D):UMgB+C\o=`%fs#tV#0#d=H/*=,UH-%p:Z/XGb*!a09Z3Y7'[s9:3GMYVYpbXR?"=[:l?CXu0GL(3u@oofR@5\f:[,@@jN,^46 %phUi;#t:W;W3sKlW/??dSc\0`OP?9NcrHHr.$c9Ujd7L$rlm2#U:4kgcR`toD(bg`2,9sBmI^.@nK7&rRDu&\:TassMu"!qEa=!R/+WBj!Z\Unl(M?0,k@Det$rg0=GU4G]JE.5cBE'g#BMW %+?7K@QJg47^i"+]#8*$i589=MoEIW>%'Yb[*f()SQDQr.gA5$[n<=WSq>G0H`52X4FB_D%V1f5N=$''=V1f60Bl#@qQ51fH>8f%e %mnA[HL3[j8"3-70q*Cj$/09+Yb4#k6%QN&LV!``>1bcQZOtoWaW]jdGtO!2%91ZR%4>QqD6c2 %>Smb._K5nqCb/D?5/-[s_;'@#N')S1AK[dY_Q1a2Q>?:?'HM\RVOP8qEm?ZIm8P %>Q9g8M!-BrC[fibc>KcnD]Sq0S69TO=gI?;u_IJU'1q\6a@kr3SY2R8`D8q.$SHfk?I %W]MGak6$MQG0PgF<13IGkY5WXOJA5\9u!VVW.iI4BYK'U#1AN?1cHq/!,9KX@+Tcg1?`cQ1d5Y=#B11'%pi0_/e*n7/N"`%$CG_*FpJ]8.IDae^F.U4USNDE4qOg.0;pbq>mRU.J5`ajV`=7_p %p[j\Q'Z.nQZcQ&Wh=>Luf3nV=]D*c"/m*j2>R%4lj\':8D#?#p&"OoWn335>p1D^H`E$PbG&QNFE_TT3G5#U906[?Ag>5M+W`K(7 %AQc%.)3G!LN$Cl:IO_\1=>aO",uCtF6Z/At!m`21*-.7q&hr<$onQ;N"O)`A*-*hCq>edZo7n5G?.;VW9/pL\bCc+W/V.s4,ftl( %0j0_RRkNii+%>6?^JS7O8^]noW=N=o8FJGUD)6Za'o93'9gIHf>:3"j2??E@>9M5>2PJo5/:]]QgB9]=b!alr1JgS;a3ubh]`:IK %[n2`Hr0'ge85^Lki\jupB<,W?<]S&cnm#kbcXu-!UtAg^)9;7aV(/f23iN(>@,G5AOUY>J="DqnjojM&irY8/7$I*]@R4Kuh>kid %JPZdX7Ct;d7^e9:#!t0U'Q&1>cG*,IS%T8b;\C;m1`E-PepQCb98F+3C)G=]].jks@DM)lr'738J\,D=#6JDHEYa:#1^4K$BWL!h %Z]e+_D7il$dbY-G<4,_9A3ok#'`m"ZI#)kX`(/fIO7Vg=&@Jnf(*,m&7nK.^*nd>Q[qtAC"Jf&02f.3Mn%8,K$-^ %oW%_BF.;?p>)82:T=9D,Fd]6/7+&(EKF>&Jn)_^^5o^?GM^*g2F/Di]#pokjaZT\S/K4Dl<^PCD35m,AAoKc[@hC6#\72GnY %<9#4;cgL*[L2[#P:64O"4YpE]WSn(n/*diXZkq.`6,+7%3&`aZ@&]MC\ntV+D*@2M="c*K#"kI5J4oi7cUS%tEce!t@q&pGgRBud&`#CEW<6V]sqjc2]'*)pWr*tG%t^YN9J %+4W8!"!VIOUUq]>GK%bUo7:jA.f7Wj_ZsA*LB55f0st(VoFoQ`X8U;p8=5KCkp*hc)g9GNcb,puJ+=;&MYdRe@shV&@j1Hglu>c) %gtnQHp7`XNZ+5P3!/iYRn5f!RU=$`u0CKIXI(GE62mAuXoPs=F,0g'd'O3l?S0s#T8:@ghN;ifggI(*"DQ.!h[n*sHkBC/lY?^MG %r8[BkYu_Fu7(`KYBCY__rUY[A7T?[?g3UH])(cm+X6ti8@m&oYdm-q0UsP=8rE7gke2Sdk2o_IHI(&@)hQST7;UYTHr$OWKTC;]R %$_Qi7Q&S!%0h.r0@U8+nWd[,)mg?bb.P$YrQO:KJ5*@=ONI/2Xm%*$bduiFJ--4bBc-ft>[DPu!?O_ea59PZYa8/"mM(&8+GDpG4 %/&7a"6LKpNC'8O>@-rDCjaNYD]K^m85NoD_CI%kDXZrm,*QA&oPk,`]d7%AfT>>?=1-IuhBSJ:ir5o+"2CZp+P^U=HXY/a5De6=; %IkLGu2^uj?YOYb/"U"Xuiusm"K$AZ4lL4mK+(DJ!SerRAT]XNVs4_VU0H`]4QrcDu@/`DLpmS+F:ZG[I\`7Gfd,TI% %?5S:WlN1Le7Lq[UX]S^?Y#g76g5IVTi2IEmQ/Xr+f:7?@%\"!(m2(2.atg&02JR=,/)?3!:ZIqffMMEl'TG=ci:])fO,q%omu+kS %j$r^9_(>J*+jSrIjTAo$( %@I[&Tkr`9UDs=a7qj,V.P-+Xf)8.JH-hoX.rK`fq'5pJ'.qNX61GH=7[b_X?"Z67V[boMDC193OTDP&bP0N)Z2YZgIr\dG4rL2%r %9K5-X[9f)liFOClKY.S$mRejln?m'T1@KjueqB!bR(]0D4;TC#9Ub&S>G<%nbf;"gqXo!jEU-%0]eb-0>H%kP7o!RY_4bPk?S[g@ %GNs1CDsqZM<9; %\?c^=*S$R^2Q&&=p,3f=FHq=kr3EogEjTgE?>*ZR?Ma3XX9.SiIE"&*&07lsg"N6A.7@(Q"/rpS]iA88O*`9gLV,(pk"H!G7$Fl^ %jY9U1iTD-U(!IukZ+n&-E1p6BqitRSjJ.Lj0X:.g,p/Yb^\hYHUq^qHj.2rEcO[J#1eRcar=eJO/u'2EO@BZJVd4 %NISP$8Lr4Tqb-/Epms\;<\C0ZJC<->qUK-KAPVr3?/O0t1g$!dUjk?/h&iI:F@U2rMLF40mIb11qB#/@dacQe0pQI.fkMX9QOFl< %cW:$=$&i$%9C]qMMJE.d4e:!/]ET#%&$CTIfYB50_ %l,Rt/$4Bcrb![b'n`BXYII;Nb:N#<)bPpV"dUKC0JQ_DO6grD:m[-9mX6P]$,V,o]LbAAO&%j'6oWPYT4Z+iQ&/3JY %^G8FsHhW^^k;(\+k'Lc9L(b7@@0/1A=c(:)E:bm/G8rHqdH&[.GuK44ba!,#EOa$Og? %H$Bs>YaA/[qGZM#R"`le<9\VbPU8.X-5N.Ql/KA&@tJWUK.)r-QadIS4L8I+`G-@;PPJ<[d.J.1qbjFU)NA-USTSj+3iVP$pR(FD %r=Z-.9=*T_!\:8\#2RVRcok9fq9GRl0p*#m)8C?^`Pl4s4OREn$p#[XX/^Deo(n*i.8m@aSm-T#3#4b?4hU7.=7@^b33>9]CS5&> %O*8-;L5()0d?>bf^=*^@';XqfRA682^q4uU"h$IOhGn`p)TAR7#u---dTgVR&L"\-k3gj>ktjK\7=a.ka0j"FcKU-E)7o%XU*5J"'4>*J0lels7dTN]Q@S##'Du`e3h\9)TIPJnJ9rFhB/eLo!7SN$L<7HBFomCqB?S^7M59F %$&E]f4O]+1da?Wj<8cq>VVU2f,T^n_r[>e;Z(^2.7[YWr+$\%5bDKf6[q#p1[1#.1ob>e-IAUJf@B%.t%e!Oso-RF-O#$T; %D;"A?]F1Qu4NA5N./f1+EL^si7=oJ5H8c'g*^Lq$JQ@P[&giElP*_<:Ebf3AoG7%n;/(qhbMq.*;28?iO([DXhb[/(]I,HnSQ[bq %0>Ej@c22AJC=Xj>q,!fe%gsHdg$iqf#qf#j7_n2[i\?ch*:%$DA);lY\ZO?oRAs*Qb2T:8Y,Z>@a.e2ul$[r*-7eM+'3Gu6.&FOL %je_JFa5gdJ%f$`lJT(_>9G3O^/jgF&m;Z-L\/;jK";g#):[hhskm:(NA$C;uTc^Kp.).jBr(a!dq$RX-3#S02&6-46K\0HErq>+\ %Nqi&$b:EA$!CamP+FN=R!oL,)kg)4.aenX]pDUYM94>Oor'S]Dj,C!8g"7C&Fl]CccQ;ti9?DUb[Ab/=T!J^9='cG=3LfB\HV8/8 %@.hoVp;_kt!t$#ec`H3_U0H.Y`V:(PT4Ph:L%mClLB'7bnRKYFiI4hh[P%e(o@[03.&mdg3F6nE]fE)gmLI_-a/ef_Qs.B^59.T< %?="+/6P2CoLKYBFb-tX6j5;bbY-e1?Bl;Xsn#)1#VfqVp?huI6&#PA>^[1r$j!7[83'=!MP9H(c*%K-c>+ZF?/0gAOEPObkD--"@ %K5ZrufFU5`dE9mV6>uOW!Ia5N!Z&5U9OIa,IZQ'Kp,gGPBMBs]*b-a?kbi+0=A?F.,"Q!(!sef7[Z[h>6C0Q4JcrZCd:3,+EJ%g7 %(bo]mZfgW6D\Y)rF'f7!>_-KB[s@)!7222!Dd.QG\-6Q#1V)T)%,Y(lhe8^Q*P+pe0s%PSoEmcA]Zodkp]Oug'AiEGOMa8Cag8^g %,P,K>bp#sl9hJM#ZjJpa4=?+8V7V_P_kb[*<#5n#TlkDKlGZ?aiaX..>l"3>cd:!)aRYi(ciR:pVk0)*;934($6aD_bMlNMq21L< %h@E&]!Df[&JJgURA@pIJCVopp!J7$kHBc/?auX$gDKPj[IUsqYBWUVAib%;4!tN&?:Fo]-""?n?Q,]eSCn/=i:2cpSPf00+I8toL %0csaT7Oo.$'dt/0F*Z%%HTJs/l1rGl:d@3nAKOsR0n]ep=s#_d6\ksOrE+/f-=!Hf>>3h!L6_TrGU)<,s&1EV.R/-[0RV$#[).b' %:6;4`r2:rFJ.0?M'\N%>1?,;?"CF:eM*([YPY`91MP&aP;;gHn"@(/uU8EeX^@Y2'SiH_T5TKS+ %HW9/D^H"t?9/".(h>nL;DSEL1I1YHM%S[LHS=`u$jAD;$nEfb*q<)NoJL^nGXM6WCTWg;D(K9$c9'S-N]ND/$$O>BHu.="Pr\ %RQQiL^:q@CnWlQ+a#`2'GJa)6gg:4IV+tWcT;p*"emEZe:,9_4/MjNg_oD6kFISQJ_,d<5p-nA2Qup&+X0*DFk"WFl^-j]HSO-tF+SBL$1_7m32p$ui4OUf.,@b-'H?WA3*0=Lq>*aR4Ns!UiY %\45;6+sN+Q3l8CZR?-JG[dM/)l)`Rto'M$th7HN;[_;rBueD#*We'`>P@Vpb;e[tUB!5JkIbr.V@U#7"X#E[?7iXhk%i.^ %!H.%:eVYlsJkU3sq4(g!fU2`HS?ARN7a/.5]7n47BK>^L4G^Pp[+rI'9WXolCd0k`:/+&PH(IDFlsgX+]Rrl)NQUi?8Q8J]Xh\7m(`!]!i&SOc(nf:J+&fk=4eH$29#!b`8Op=G\B9;` %#U5Be'04-?e$ANPb\GF1-F1542^'lL$e&nEGo5r"ZsN%jJ=/6"OU%qR<(:pe%s-@g-BkqqC30H"ES7sjAUn$`jT$5p.PS'n]A\-O %#F4GGEaW,2-O10!+NPW.PQ89WST/J;mAkb@G1NWmiW,$areDAjhq&3c\9l#5:JW(Bg*E'a_I)I!XN%TKPN<>;G,YJj4d_aI#P/<) %HT?(:\A1[\g#Y//j&(?<$pD=REOfsk,e/tK&uCHYq.=t3Vm%GS<'*Sr;)e?W\QdZASW9;m1ioETj2TQW0cL4l4j3hqV`1Jk:'@Y@ %:kP%U+F618k1>J$Md+BKmE@Z4XDBFhfR^-,,3"kqGM]GX.p$@Xm8hE&(OPhGB(a-L8%8Iq):'@4nXU`]1;2.m0Tn"ISS#[lO^>Wo %$%V[ZCFe2Zg=j\S2>bVu\6Nqs[jjAK!h]L)B4nVtQ_2TG-O\DQJ[TFJ8j+[-_VuBB-mlTB8Cd_CBBLQe#k^ %aZLJ'JUK=i(A/uVfOMoD"dmEchG!VG\U"6_pBOVtPuBqZh)CM5?((//jj"q$[Cb.L[_\H9$Fh5)QfL]+Ce3c`TB](^EHU0ao]8u] %Z('!O24CM(E-cM^q"\Ih,'pJ(pU](OnD[Nah'X"I`P!UbX*ugKI!#tS.!K26L&k,D<@)^GJ\K+TV>#c. %&(A&gb]Z_lVtVl>kpARJ&8ooV^@RH3c.5\.da)/pSE&=UWMSB*RFcfH\W1p?"fk$k26dK`t&W%)We3N9'pFQ %Da(4RWHVeBEKDMP_BQk#[5,'IV(mfGQ&imZrN&&6`K)[JQeB.N+!6CK=3^$c2Jer;lQbQO@"r/eGC#Ts>(3[V1C98+mgHW3Gj9XN %Tbd$2jI=IV'Pon?*SI>ci'sTmn6FO!ea_@5pjoG>?H4-_pqP!Q/GN!g']*\u[H8OmT08M@M=0jC(3Mb'I_5F"[;@2ZjEJ3b9^Ob[ %T4\G5YhmYXhjn41dVJH?8P]oP$nHU?jn4_R/SG^P*0\Oq;?#E37_nriXb#_E;u,`jY&VN84)GtFE4(ttHceW\Cr7\PSW*?@`/1BG %WNiT[^CjRJl0bs+Ui5$q_C<:NM/+TK1bPDc$L6lZ#Oq@CfXEkfnt^sXC'2.uh]c^nLDt\4r'"j55p7ea07gX83,t+co1'1]%E4uJ %DSfM,X$*==-?/XUB2]Zg\=s*4[5uN!\_d>5&^^W0V)3CI&>tGtc4%VAGNK=:Yk4V0ftB&Pbij0.;lS"&[]1h\.Ua=`E"J2oeU%EB %[9n'P2P':?TV,3^,ZN>_SK'i\D"7LC%40FM%RP^en6g*k1K8&N*p*qi!eb`3k@6#6KQd&J:^"DPf@ML#a+f6:Q6@[K:^"?6aOXrM %?I=NODf*-cYmJo1Y-FOoK,/4'cPI\+?XM&-2bh"mG-&que\H@K$W\)\F[Y^I-a* %#KSSX7;sIq6NIQQV@cmQgO-qQ9j=^]nY'TsVH,M7!asJDKl7Zt2\B"\=T8Q?r%-08k=;03ie+bT`7LI`$LH(($`Lkj2c#f5f$;Cd2rHYqmA.Qs\BEfH(3ZR@5#\RgTM_jr:W\,Psmm^ld)5!I?'M!b`XDYh58JhQ#A"_WS3 %Rc9>b2B&k,Ju@V$.?(kEL8VmuUEL.+1,dkd/FjPLqo0'a=i^l:6jam8]]pAQ;_q]dCpY4?+WGu>m%*r?<;N4D&<1RS7-0Un9/E`s %n)'])Q,]rJSh;mI^$W_6qdTcu=57044fOQ/+FJONQ>WSC2ZV)P2g)O`T-L[s=p0'U9\r40]Dh5sN="0pqtmalbgM\ao/$-H@:Y=f %?XOpVN43NnLhZkGqGQ>b=50k[>R#mN%T!:DC`K\#nP)LID\L"B]I[ %YfHj&$kG7)=QBHNjP2M9=QBHNYeuD%(-+Vl7M,cY7>DJs1#-2F98Q&s.Vb6<-T%t/5\C!7BZ/\))JG8<@Zb(9HTFJ?9qq8uKP(grgClsm.EFYCr$!p.llOOS7kT4#lb\Uho %8$Pgn%li:`=Mq;Lau'Z895p6#S?B,L>%J@c`PX+m[P/Fgl%_2Y.M%-C\\$?#L,F(a&A_.)hXB4:MBVLR0bQMhL^n'!ZT %/6dNd9'7\)a/KKEN@DqNh5><9n+0,KMTlUl==)0i=Y,gZ75,LKb$q>XLC(grFZ*RCo2IXHjK\5S(/'AOA)lRJ'#nD9oN`jr(7;"' %[q?Genl-Bh2kltYGUhk[e_OrtpN#dU2pGcE@`]_dKgF,p^#6r5?Hi#!b` %ZsjFbfbU]GV,"96fQ#@l=qTo9N)qif%Hg]$U-?-:cZ^4jVlt"k\(MSWcqVS.BS=jN[O:$%kTT@<4]COA0.naJpct.K?Q:Y=Xife' %>=]j@ETg[:73#@4&5`OnlcM,3BNo$Qb>W7O52-o$LT[8=^!gl%n\cLH,s-bPE1$Obp37,F*SC13RfI43ZLdTQ`uAL5He=.lnF;74 %#SDiciXO;cg=9t[KSh_t+)a]7_*UU2L6"8=,A)in,]SJnD`dPi0]BrJI=`_;)%u.a4A)A:%,)MQG.J'e&08n0b$1J7">DNND]j4F %(J)MsD!h=)`6pibbX425'XJ!YQ20jI4jg@d>TPH_frlZt!0m>'rb9N^EI+),`$$ZgUMdq@Xjeig2fBX:`D%$KUr+Da@(W5#`ti;5pSul2Am^H;%b,a %/lTLjV+FZ %ephg5rqGW<4;W"g(+:2dgSKPF*3DS+HGOt`Z+\(OkLPOt3%Z3;1R3e0LIN&3c*d:A*[JnJ?AnEcrME5>8=cqbrcG9pQrbeP1)jhK %l*6Ag]('7V2S8k?-3Q5E[G7kj%HK$tMr0gJAX#t/S=BI^&r0QAaXgLa-CY50I,Ef?lKpolc"Hn]i5F6R^@@MGM+(n)J;7B?A?e[@ %]mOBj=Bol(Q,*`PhM/EYEJ.Ro$OH)oU%nU`dTFPcpWi)^,T#1Z_ju1eV/5!jClhN;`n+c\@R"`;Ga,jT4Zq?UpXb<6P=ocB-5!2@ %X2T"^`18QZHYccLA?Aa9)Z\='!]!qlEukZ3>sM?c*B*rCY;l[n>Etc(i^;mfLpiQ(_?!LKcl!DYrHK_2dOu3COl;)e&T?/M1*tg; %(@akgW8fKtOJ$in*d(s#!i7Sr@.?_do-b5?&=c4J8>>&La_2SEJ,e.qkKEf^MDq\lLM$7m,jL#%TG`olZ#ZqGfiC;LdY=oI'3##t %U&[AS3(uRr_d>8'r%V:/N:sDBWl>4mc0uObf4*Z4>U&UHJXf7BL[GN+9"LnVk94a%Dh2Cu*KbA#0b0(mZ>pRFP#.i#.#]7s8Z573 %A>tBa;M`;4f=Q#J1BIhoN5^Di'$P>mEH+.Yp[G3]DP"_)9:VQgJlF)]kdni;/;OT,n%rNGe1uEZ1'Y7tAVjFlM74aF)4D8B %V3\@kDU:Z_`TdSM?pgo^DlgJM)bU;G]o0B,2O*hNq*Kl6N$Ze?jr$W>_G#^c2UuX8,F.e`=A2P!n`Sn>IDPt/$7r&*M+&<*/?$cE %q^AtRhs9"jgocSCoJ#.4bVp,9"Ru>X[]X[M[P7V6Ir,S_O*[B?``M/*_/^\laRX`6D@S0';X.%.TmChH:Q$09iL5-OmJ"45KJ"Rb %;4OgM2=7s;op<6F3-ljjhX0Q=XD$NYd4J7/2jQDC4kK,l&GoH(Yl@^\MREB:)q0;D+T8mZ@_W1:#NZQKJl&&K0 %"aT6bSATkSD]CB84>jBeio+)lYKgn(WHDLh^GL9fh-4>Q80"_N#l)Vh@&D%UDo4Fj]Xu/1[W#`FLlPqbg(o)!,<_AXcXDXf7s]>j %igKuXVD;Wf(N]cf3\lGQ$5[ehLO$(5#T%R_/sAkKb$(=M`sEQ(":OL$?ddnbNaP.;h9d(uJrX5);Ons[=US#&$WH#'UoXaS3dGHF %%2X,Z.DnrYA1a*&V:aaYNaP-^^Gm8kI^l$QWMM?N_Zf?<`=8rNZk;;Pf<.:l!o*(`6j;\G0K1-h'=IeA(*>GpHSC\l&c#Y^ %5H-C"Dcsjbel]6#iFWO$uKX,:\A_hH_H/IAkI6-)>J6i<^]#GR0GT@smFd;j2jFrGXXZY*o)VEZj6? %1bFSu`AC4L$i>@U/&NK'('(>ZYNWlta*@:<^!5RX>6-C(;9@hY-fH-*).n%hQ8^=CXe4E+mmu"03Km=kf8ofbkV'1Lg^a6<3!+;L %R7g>Z+023W3X*(h[%M0UP<@IsC7j\`8ik.Crgbke70u]lJo[qaP?DjlgfCU[(K3D?b=#5T,Mf*>q/=_9C/V>JifUTmE3cbg#0Bei/8d$[XX-j-n"E9oSV/ %n?"g"XRhG2pNBediD$F^5'"k4[f@JUZbfZcM'GC0?6m*,9)7UGX91ql6tHXV(N7l;J'MB7=[2:/b;V(tG%TBX4MQc.BuRKGNN[;d %`E<\#&LDBdO)@Lc.);>K %emdeu1H`8&Ljmpe(q5;.7`@*bo(@q/Z@ugsp;\]/::;4&*uh7?4$bX$9[I=L!4%!DH^dt&,*jdPV^NXme^7t()Ad2E %[O',[.E^hO3#u1gcVp'(4&ngBQHta(_Gfd=AGJ@@+LGU7ams]a6)67Bb49h8nnAus$-Dati*R+[jms2Je$IGcOlc0Kj[8ad6^EeD %h(:45P3)9LjjQ>gKOjm@2'DD#N%X'jm9Q;ZhX0b+rSD %4CdeV4ZbB$5#2UnN>G5YQHrJ3_PZ0$=-h02PY]K\p9.V!!,o9[`3m`@;T*fBR$Vg>3`4GiH!#VkQQ=SU,u7Z-UZ1cEfceKCr`F3H %HqmO&XSL+H<&QUnmNc?=bT>U:_\ePUZ@(1tnbuR&E6[k3P!bP];j6#jnp0Y?WD%oLI%G:HpW$ab %o$+i7*2;Z7$#9(fTh=3&`nAnjg#Lj:[_6.(WFW&$\WJa_OiO?hc5>E;Jn/r=7Wk#qQ-n_ZnLH;l*I$# %ZD,HAPB):fpg$4boU4r-iCGgJUG:$1**dQ+fD+?2I8$.>!:) %,ir/u.U9-T9u*NFb2SP)d7a;/Ki*"#W;m?Bm-9RAYp=9W([X:F<_5kjFtb4`@''&94iAt!N@<7Vl2h"C\k/t-KVNFi(Qd'&@U<+8lW_Mh&r6-MljmtdU0krjW$%+r:J$)+#"_M*2c7?lsnF.>UTl5r(A:H(CJ#np19(r*2tG#l)4Sm'WeRL %FAr5q$IGYQl%E.E[l'_IF[cID1nknl@F&!GXV,DpfSBK,ELD?F7&!!KAP=:6([9R9<5,GZ`R6d[4J,PV"oUnRsP^F=M %AG@^[aF9*!VKi54R*.(nY2;"[548K%33i(8lgV7dQ2MI>YEiBoo'8pd,6u+6AdkKeP2r^dAIH>mTKK;G9l92ckV>@0"FP %qa)S.>bj&ijC`?ALPO>UOpP&F2=7u.,77ktL*#tXC#8:?1Xq?&I'.iSm^end>(tj!kO([=YFhBZ[%QC>jm"mHDDZN]ZW""?=fOi6b1/- %8oLcP6knWb3is>8.uG\la'PPEYdXJmN9gkSWtM %jsCZIMHEstlN^3]OF"n@X$!ldo_q9CToW="El)I9rbNZcZ!"%,i!UPl7lfPgflloEl51;jDO(f8:AEVH5Lf*QeTi=slQI'b88f:3b(2LDakf@0..bSfG-D=,W#M!2,_%N4GH4q*W;mTbXc$E,E>?BQ6+.!/3)l6qk4p:-O4DCKBW$ %%d-fjEa0]f]l-4&f/AJ)KXU.P>e..8/ua&kM`#1;h/.Q[=3fcfagLj"_tUR8e!4CWSpqL#1;[49'=3u_)cEOr@Ca!>NDs9/6[`oj %H@+72c-Md_e]/JRU&K@\H!r23TIUch^U^'tfLW[&>G1Et>Ek4_gptT@r\PC[afVXu&g[[mmj1V?_d`F0Z.P@JE^*,HQN&O=lsj\@ %=R>>^b?I]S"X4lQ2ThF %]D'l>kr+og\Jf[sG#Tf!)oc)Ckr/&*2.a-,!P/7mqNe1+!e-gof'_q3K?`51Ur+AKQsLT?m3$dR/C26eHs_KPD=R0e;jjn@ %0*h,Aq111kj_[crYPkR0.r]^h8"&lEErf39M5Y_=^AT6;=66aF3;`1mG.,-$ks:I[LB7\[V=>oJIO\*%Xf2ZZ34StMVp!+,4Ecn/ %Vp3O[Ug#G#deF,%WFmrJX9*UFm`Gpafu+\JgD@@FT\6.TRQ9XXq^N(^S?@E%SuEoS/.F$<\jA3d5D&[Ip?2S&Hj(9cS@!N/fE==!RrV47AM.;Y45HaPo1M6.9%ZQu&M.?>B,l2X!%R+U<4b;]L,)Tmo[0E?AXto97q8+NZ %/5BRI'LEcA:DH4;@uOE+gm#j8,*$Yg%X:4&4@V_Y%+faI+Ni`<0GHuD-*,8Rk#mY8Lj+n/6Hr@EYS?b$*_rNKNj][quFk"UgN1ZH$a/V>((p?uUD`*aALY0&\fmrbA9l@:\A]L;59,Hm%s@apcO2Bs?^]?d49'=b8affM!jnFm)G_LV]2*K\E(UXmn %\Vls'FE[Xm&/>#o.^:=-d7Q&MSB?)B)c!WiYdT^#b72K?2XFE'f(JmV,jn)L2GA/Kgrg-S=DSi@^/ql("H*`,>A9BBjsL+O76VrF %c.M(i'.>bt(>5D#+0-$@6_%DJ!PobVfKp]J,m0[)/X733UnImsiJ;n^kE6DYEK^DH)YoE"MkhU-*Bjh]Y8i1jT`_V5D;.pd%9$Ul %I"agTUmVhP1+=@X:B1Odrci-&4-u1b&;XtfRD/9RO00U@"8Vo6KKqZKbXeg%;F2LtBkE#g:.bf11X4-@2^+b(L^RJB"5CIjK9\P/ %8OH;@o_o&Rnkoqp_u7!=WuUo=eH)u#_GrFsAXdQ'F+?C,D+#G8?a4$:eDgfnG844PAR8"hCRm9ck[j2tIpu"E@4DBCD@SO6Ph.W4m8g,Q2.b^=Y//3;koHpmbK$gXHY5rPr+Cf2!tuIipmT]eBdu#f-YYO %!aJioe'lX$IA3@(5]'sPE_&9IM2[7,SbZ;5`gjuOg@=-U2mE-S'"*Rub/@o/R=46oUc,J^Pln)DQ)e4uK\FBD*WXJY'"*SplWo'+ %AueXR53`F/WD1V/0WM.2JMQEg,"g)b?;MNp^F1!M>)BC]AfS+E:6Nsd;2ebQp`@QQBi:VV8A/=^Y?tarG:/p(F+[7=cK^u(8Lsc3BE; %^-I'B5W4GXFt@51.tES:gTd+dGkVNR;qoN."*6O,`1YPj5IWGESPEM4fL"qr&q[(7(03NRc+j#!A0SN=A1gfb9W$93X.0;qaWYHo %Ni_%%$p#*M]*OnL'L%`&W59N3gaZDQPGXj7X=M[YH2%&eL9ug70+E(g;q\H+:qA'`,q*[j$k&#QTeNm$'2iTSUc._#U'Gi+Cddog %C[L!JQ$`&'$sU>&I-"[/kpTg(hXHeW_&Enj]6@69hC%F0Tdi?ObE0:JTi<=/=f54g0C1OHimi-n\HHUea8?N]"=A'`j'r<_+UU%K %-1L0(XM>>BGXV]'q!#JY"^#9elk`NB#mHNa.D[-9lchaRlc8qKXSnn';_XjeN7H6Tl]XUD& %@-+>])53^j>L.'Eq0;D+qmUh.Kb+L`Z(]gB3Zcu2RO?:DAjN$!+kmb,0TEuHMl5\q*^d]Mo'3<2S6FO@r(FB*d_.M5_R)FED8qEV %0g+VRC@8\#D0i%k"DdG:-]gbQHuHr+NBE^Gpg_NniG<[nbA@4R-jTWUI;AnaLd>;/?W_!7[m.t1KF<_6d6CHYE!GQJG8\-nXt`cK7e %1e(7i3lVMaYgBufMQro9-&`r;-u'_'0:mM/X_dAR#gT2eC^[pE@G*%Q,tj>@fEo3&PF%[ %)Y5FnS01d'Go&>u!L6h:,d;0s>%VWFF8 %KI;XeOIhiG$W#[j'3TWj(+%AZd(_4\U'V^DUp8Ya'.t(q@'BEn/,XLi.sn:p"+If5:LfYYG/7&*35Lct%OJe#KMn%t`n2B).YR6; %?$aAC5D-Rm'fA_ta_5KWimJJM,_On<(o/O2/*S?^dWhicHMQ*D-HSOL2+i0U_jbHPP$8,'Sm!M2KB.2$TOg86R=jS/1uZ%lS:fmgJV;`RZ#c"%$]5PY[Z^7D`=g?[Em$`=h-iY$K+^jkk2^ke %)-[T6YS]G,aXmUOGd+>28-7D5Iqu=\R2J1f`fOC/'&Fp\O)?sK8-q.-]r2I*f]5R-P#gs/aW)S8$m_AAEN(Bh)+Z_rM5r'6AK[g) %8`q5,AKV.UdL21ijHb?"(-1=n,e"2X<$piL,e"2X<$piL,`h0*KQE7116Bj`-C]Y+*Go&[%Wse;O!U6IjHb@mBlk_jK+qRm0hr4A %>6^7nV\D&pC"6Q#I&'5",')V?W=i-5/q@Rtls5Q;%U;B\^;o%9cnXU0M'jkkJ<#36+%P9>LMI8u/7I>q[PhfY]/[=DT8kX-Ecc$+ %!-F13&pViHbQoNaK]ng'4=+rb3p&Y!$%)jr1TU^C%Q\3t&pPUBN(jU@@ZR;K(nq.N95#4K*V7$E#s8\oB3j3gg&A`jPma< %8q[%or"g;rUNq8bfphakMFe.D?tN#)1,=AV"OZKS!JTPA7?I6i^GTVsLo@d5qq5(KE>)`%,qi]fO=jI!'X.SQd(-:QhLtq!:(tK&:M9LTL1_.\1\>rI3+fgM)dd8T_mXZt=F$eqGgl8RVdEp)%Pf;\SZpam\"FhXAPk3F,8eRVXos.?5qHbAtMEl?d` %CY/P=Wa3fEVq6ups44@O%CKs^kHb20LG0Jr;B;Q0\O3?T6YKmZ\O/ZgSn#knr&=!lFZ$uXX`R.71L6NRe"?^rNdg>s8M;`EJn07i!rNNYD8/kZdfkM/!r9Y-'st@,UJhE?')l_SZ9;=3.Su2 %'?p'4=hmRnfReD"r*9bPbUn0<_fDf']`;`Vf/NBBFht^8>qkaFZbfM'-70@U1Jd;ATl0-JQq(54Fk28kc(BQ:HW[W# %7ZX]%#`^[M7%^)$KY(63\9dM7Y!d!&[-gK$4AWLMP)Z&t@%O9$*f7@"8heRi/e@(jOC2D1^$V2RguS#qi0SD7H(K&%WJiHsf+;iJ %3PP*8P':jDYDR:/:b%TdZT!a[9BIh;UMBn2uL:4+N("pSp>@$"YrUJ<:Ft>O(g'Y+;LchYlc.KDRGdRec %!/12&0d0?n!0iB0XTkH#id7ndC(J=YXl-gY$KpHEX^Z9tJSD1327^TO

_es5RP?cM>2!c\jMNFZC.mlmgNhp/76aX]u`mV)\>3K86SZ9lje:PD:pnl-,VA>MB1iQA$ %3q#qN1n7k!bk?I*.sq#5R#,^1_;hqPr/,$h$_BsQg,5:_+:_;E#3qrZp&ou:jDQXLZ!QSXB1\#n)jGg&.(<>W4(h`WU&0N8$U^R> %cOibI/7\.cltF(6eATLV=5P8J"R63XB3DjACk9.uqcV:Pi!@gAf[#^kY!Cfnb8OW6N^2ENr@D`IMpg"Qmo2M5c,%uO6*Kd+'2/>f %-b4E"%4,uJ#,hF)QI[_K %!d"o3BSD#d:>R0B_B9b`9HjgqeM+. %P3YsE)/?q0q#ZoHL9kh[8+clqkl9lV'UN!A.PbO$\V=H6]$:nnnS'[7WpY@ %Ht8;`J?WRFomU<_544?H/:11s9+X;TK7si?[1fF[a3b(C)NJ\niA93s(gnl9Cr46i:&+j,,rqXf$-S#1'juqplGA4RVugeol3@qc %>d?k9?]6=Y>^`lu0^U3@-JAH(<*]V?5"r9&A26^DAr[Z64GERP^!O/CeB%o+I06(LU^NM@._lgAV2tI5pK'S\g'?2>o&[J8cSh2je3+%qcUI\r_D,CsY3KM>o$!CUo;48B;":0i5!05L)[EGM/l5iFl9NsB#C7j(%"1J8[OqN6f6#<"tthl/fq?^`p-O'jn=I-@t0W&Z^#7=slDF\"@$NVWURAjIuu6X2d`s %fl0P9Wo/K19\F% %)'mW5OsGsW5pB#Gl%F6C%+8rGD1n5pFj"ONeql#"]6^0M"kiVJ$=-5p@a] %@,6X05pB#GRI7o,1J"rSm:M]p%h)]`R'W`@Ad-C$fc4K!^q!k++ZbH"0tGr-/p%;SFSk"HdPZYf3ls:sTI)gm-M1:6p6rpAR]Lch %Vr9%Z$?`2$,@fD2plls3QV*"ooeD.niFjZ64:iA_27"il%e$k%Y)Fo:b".tW3*ZfWLp2n.)D6^_(R"+pQU7VCpgdG_g>&/O %'b/l%pVTB9/qrUcoNS%!Q\mQafe_VVaa+_]2E)76,"A'6aSCslc)l2$<8g_7=ph.!KSE.e_:Pf"n"/;"@P[;;_PQagFCs0ZSjBZc %T5o!-KlF#H#3L%nG-+@&E/%"3QG1kOqG:2<^Qp@CqcQB1Gu;*$m7IhETleJneiA$97::mPQ.3dN7dXj)SrtI+.d.J$r@F&/eL'XE %o\8UjK"6%Y6DsBhXB[Dak!JgK+>kClE%*kE4N_UlI)X@3!Tn@#5lE6hieo-gb'LhT*Ne&Y=$F6DG#2pjVB32fJ(:iY6$YRCJ)AlG %b4X!Q-2Q*S&cZ2jm%.P"15#<&@e\7@_?8X&LttE5/.ZuDiKVj_Dbkq@@t(-:M_sW6T2aXA(h(dp81jNQM^R8KZ1oG*#cYeaLcs(< %+HmmthS:CuVV4YA4V$[(oKFq_rc\dOq!ps/8Id8bY!'n@Ug2eGI"#GmjZ/7k*Z)C?gg)Q3*g[S6bJiB!P%5lhQBV;R0!3gW+K/mf %N:-+N"ml16oEKTuB'jS0Te(,`4YGCQMi+B>f:Z.t.Gtfo0hB/f0"u$h*e.G.IBp>XW/.TZb=3j0B:,34`A:>6"?k %5>F)nWU8^".sP'lRq4=Vh157(!@XL4J4#;I$5G>7&60)%Sh!*9aWW5mJhH'5NH %-u:.h(=0\er*si>_WLVDakpVa-;mEP-@nl%*N@\O<@lVX(F-_DIYh-R:Q8=%ng7H0.7hPKBm"]a;8N %P6k!!DA'1q,Xn(OA;^Y6`hLFnA#UT-)kcq>1-pA#<0Rd&3(:5$+%\._PKC^uQqPf&D8[>4#P-s*"I5VTlmO<9EMo$t:&Nl"s.4q> %+DG`g/W:+U&H*nS_[nk&K)82S*Q,TM0S971B&$h+#cbo)l=&!;68%haK5igQf_/@OY*S+pA1IKjN4W$m'Brn\'L(;9]%`JJ(+>*R %a**5+_e0e"bIXSHBU.6,">gB(ioao==p2R'F^BaI`u?j9qeAHX:$dpRI^m!lCV&8Im+39h1T9(nSQVe]UEbPp^<2nPR$IL7F:;bB %8`ko/2'-p]KBLI/NVogL)Wg>EYk<$7h<)gP197J(Nm`3+3WE:[pXsX[hsGAHa.M,M1CV^Vr;"'5b@0`m3b,\d9V/Ce@d0aJM(Q-) %96_)H;>NEQbuLOLIOohW:U3X!S'I>kbgmKb;sJ#]\[2,OPqSW4nI!9Hc*bJ7&rl9'=.eW^d&<`FkO.<)1:TDXeXu9EM*!QuUcb5M %XS7IcNEA6pg]jS3"(&YZV/GFoF5OR.>Pm[f/6G#T7?Sl-/4foH:P<+qpMN7!<5D4u`[l%"()TnAAU-Y>`'j4"nZ]Z-XlQ8[a'=e# %Lg'(lDR_dH7+>,r'3U4sN2WSY]Rcm!)H#8'a9H1#RoBh?&[bT(2bZIBMl3Z,kL2r*peO**g!QBho4q-J`G^GH,_t^C$3bcfo?tGGK=Tm\#jK:jmTp$<+ %`^dXh*%4#"71]O?QX#L/K;VV&nQhsm_Y=sEI-;W@s/p`'4pD]ChLQIs8)oZiZRD7n0YXU;U4S\_ie-(7O>&j&E.QlJ%L(m&OL=Zi %U/:*N'P3)l9#3M`/1e1/0Ko[TT-OYpn_k`5S:a1C..po+g&H;3N7h%$@!jk;5_Wifh%dJ1#ZKs"LP53nUA.KH2PW>JN/n"Y#?3r/ %7G_38h_ePrA:K.mai.':o-\kbKuS:!Sm3R\$C&RbBA;NU3@Y'D-AR7TF3TOjs#hC1[H^$e=5.=ui_KNYp@&E[roVO*oN$CmJ4WQRS2HV:hG^0hE8EeVlKst0\3%dX/f4)G1K00 %2.or^EH'gh[VN-hO3UDia%Pb$-uK3)ca3AW %9U_:)2'9\X3U?>.jfZn9$F[%p5-e[,lZbHo@es7$j>LLHFKP^:Y\GR,tU=Z@Wajqi8RU9#dP$R'W8jGcn8[^h!mQjL> %^hFOMP/Q`0$OI4@kP\nb;j(gIG-NJfMeYm>.7ps3O]ZS]TjcoC]NCl'6GpZs9GN[e8Q_V#;^jIOWK+@46WgCGTX&^bfjD[!Q!X.rc;PruZ.%X?7T+$O7=[0fL)+N8!EXb-d\"X[L(`%=f>Og9LL:.K)K*9<5S)"/T@4@K3n %G$IAVih6jQQmkL%A#07m(dY2*4bGc?o:Inbp#5K2Zd%Vm@_]/mPWlJ-J-g %)d`lOj2sj^FrelC8gB*\(6jeH8k(RZ'fb5eH/3;"bj&ia?6*[">%;JfNB^UtFEMo`6ZumC?gFRUUCbXP*r!MKM;(-@">g!(2"Zb. %K`J2L3qVh)JOJ;U7j4P+:OsZ/$:H%F^1A_Y#"p*hao'(o(CC1ccK=%1DY$rW"sY<)JsuX(XK:Rj2oq%Z8WMG>2t+7d,]<4K %&G.iJO1p`:lmVWk %]^8o&^&Uf*$j[2/D5F%-d!pDd@e)G.qr+hkear7\fS@+fQ>U,?gWMKh*XCMKf52W?(7;F=iJ=;i8b0_C'%u$/C1ed"NL'->APN5* %`]Z16N&Bt\,N-F-PpL4@gqX@6K_YSkFrqh.H/?"_ne# %m/t9/LK:r,C%:U60:L]dh,P$/DM+k8FTn&[j:KjkRE&SDA_`O[<*n+]JQg*$/D3:kR1\>P(k75@;IP1.dLNk9^4pd"#0.G %keOTTjtX@&bMFaB-iOIls+mK2)([YN6:nq9Q*e12GsZ3F<)3bA@&3mCjDH'1hQn@@O81mT\#W0"XOq4MV'0N`k %Oq6,)(.#I/mA0jV)AR>=lQ-a#[mR1Q-!Blq:6K""a.B@3a52*E23)KYp^2*T#%TErYpEi=LiYJZaYZ#5VJ3pGJ$hqTP,mXnWG52# %n'%DLAu6MU/!Tb-^%T&taTDC7d.[0PO9PEi!oQi:,n'3`"`U2XaLRl(,'lf3WnI:@](V0sg9%n+daV%%Vp^"lEp,tcQF2s#lVHP\ %hu^+nPLs&+.fY9T3Gq\`G,T?\[#XtP!o$o+Ljtq3n\G4hDuk&Cpb(>lUl=Y^1/Fmc+FE!LanairW.kV6(Z9lQR/(3C7Wt^445fH< %26oT)$O"[!nuQ[ahuYb8=@?E&DdZ(4V;SY-"$;lf.V`LL3j>C#_.EKJG0KBDE*RS740W4uQ==je^4@:uSeR7/p'p@:WYA^HDdWg@ %0c@K;?OqtB)%hDBp9h"R'"DU[[VoOYC4?$#c=omWd#D4>,C?q/CKl,Y8gM^4HJ! %$+Og/^^fcYM8s3)RKAAfOWE`&NZn^pmG%EDWO$&RftN"X9[=K8bOuD3==Qm!0&&=h'9Mq25I*Y);IP/]!\Tu,W=1em6QOf63PC#a %fi%u7Qpi-4A;<4MK=%#UOWE`&%O?Hq^h*BIFqdp`0&,"-K)K3d\8:'VL=E74>dgi8KrU%:\El]MIA,(@cfAD85@AchQ-T=u'.q:o2ZhIU-40Y3(%7 %h5.s*)2O;3FD56+(.`TCG)Y$-ml:De7-`0'Z*>M*]s1r*LJ-IANo$`7WSLO[G?5T+-Riu>+h3th*_rN\m+WBt93\O\Z$BF!^8^qb %5;[.OQa+nYUS27rIpt".?`Ri,qtIX*B/#dJc;8+PMN$*cs'?4-.%\R.GqM>&=d*ph^$GbH*9ZKoD8 %p4P][X>oLuMiEQ:Y^QpRK>Vm$.sYV&dTP/O)NH>'"N/uJ`]oj4-(:7h>X(2Xf/JQQ]ljNm99#0?11Q18>V;[^j7rfa#[K=I(S;FP %Ten^kFM@`od.4m-U@'k3M9V]43D0Por%1VJbeQRB8m&J=WL[poZVQ"t[[G##F?[OTu9`,EcL3M50j5,o:m[Zfp&P\(5En %FfUol5VJn[?nUVYg/ut'ptFQW7;(Td=!Yu&ZfChsa2_rS-Y1$lLnuncS$D$ki@SSebO3-L27T%%@#GKdX88q5[*n*[Q5^/h"a%(9 %_t-USfsG@^2W#dp2G/>ibKC9QS_3H76W*5E5et\s(Nq7MdJN>Bn%S"(VOU*$cZ"jC.jR9pY,;6]1kkElap;1,( %m,\#Rq-'.=i9!lkp[dG\/cWk2UrB^:fpc5ohiGfUO3`0XL%a4*oSR[o`Pc^/mWb8=D#+&?lj%&'h&VD\k/n55/5*PS-,I7A-Jl@K %X\q,(.2@mWP$P,5%d):k,c(Q*$T>,=f)+$S6*$*3$CihJ>,?gCN5Z8uWAoS)BNiCT9ta.f;+578;@*@F7Bp$MUf?idJuMb]E*Djq %[0io4;1r^"P#>.Vd97jeS9X6H.2gf7dn5>4JWH[.84pjjOX`\uOKPQ,>cWsNMNoP1kB%h_Gjg %=+R1kl6mCWPJq8OFQn6%oulIr5X5.7e$2eJe7l%*FCNbn9/T\3BBFcO?%uC9mSFOZgl)C"-$a*an1P6<5s"hCC8ljQUhT3u"B:pO>1D1Ce %T9@"98-#gpM3:\ro[j3@#\KRs1K8^WX#Yjh[_D,SSn3n`3M_c:BQe_NTK/ftV..Q;\LKEP:15(&=A`QW]t5.TIM_>J$*10'W\FIi %T!5edJN%fpf-d`DpTM78;^a^[4Le)9*j#6W@X1uOXJ#]sD0Yu)*u,I1AcBI5qBJ\%I$u/!]^XBu.]5pnG=[>^<9q4>Dlg_\W\Y03 %8]#uk<+d9K/V8*]8TfSWNQmq/`L1AM#AB(TFuMD(Uo_X!S6n`;:M^"kVUil`^_@(/XXq!s]p0J=b=I/0QS-ufRQbLc:d5>9"m(IQ@K;jsI=]bjpZ %^kAM@0D%"81COF44i[DoNSf@,.]W4cQgu`Q2%6=[o(%^/2:0[VT0:KnZ\#R:Ba]#SN]%UB13Lsc^opd-'b,gFWn-dZXHiHaAVp+Qdm488IBdBC.Hl5)D8 %4MPqj=IMNm.DiV3/BpktD04s4>FM7@ff(42SeoC,W@1\CP@PFPn3?3&'[eYoi.'6*.?eO!#l[>bP/;Z@;=Hg8Pa"2Q+UJ)AcY5*X %q@D+1io#;coH1Xsio#;coH2G2KYd\emQbhg>S-gog0!rAE^bZ];:0l*cQWr"G@n(rs/>-Gd)a)^IoQ%^lrjdLs&!QJW0=!os3O?. %=XaZ0s%rq$&DMlSs/>Dt73qel>);1>B;#G;;K8]jlWaXZ91Am6Fg;;J*u0h??8uB_5:ZNUS:)%Rs.c=g5edSWs&%0nGjds5r/^]M %JknsS%ugCbjG!V2d=7$'&H50gs$=+t)#TGPrq"Qh,/XAYkWc$AKu*efkW_K]r/Za7K5+X.r/\Ft.B5Z.hi(O3B^idtqF_\E@=q[. %=?M.[.DW7FNh'#rR&u[n!d%+VP6j>1YZ+"+TWPF*E:meI!$)^1N6[6P4Bq;\K_HP!o5'&hlh2C$=RkL:?Kf"G`E1+hggKQ]U6#7t8p7IDSI#9V,.,"fBVGjeah4`%/(M\Kk#Z %bc16])3^r5*;tTI[ZV=AZU6U5!d!uM-A)V$@'6_;6B-R'm=X:MfNG_QP)7] %S1AV>mLQ(t>hmP`Q@@r6A8o^#a.;QF#);.Vc,//2hB'VH!TCQG3r4\sH4HL?FUcHsogM\g"o[d\/Yi>N68a^NR5jcD!^i(OO7oO# %%!SboD'lm:[#oW;Y?/,2p._#k16JE$s*0p'b]ZCK1^i`NII(efEMGm3f)G"7uMC/cg4$bKbuVnd9.CZmc4egW:7 %Rj6E&(cD4C+%EabkIXG;kt %i,bcf>TUTeFDej>!jcqGH='EJ/o]bpJ/!B6\^9:EW%$q5\M3Q^adSK1^;\='>^9J_po0K7NT=b)4Bp(4[Wo-!d<-%q[XtoQ_G#oL %P*LsNR%9Nn0.RjM4Hm-WH!.[M1giIVc987 %XEq4YEc9?tO0i7]oLo4c3Q\_*c9#N:0'.nbj$>??F[T\>D@Y;7lMrapL)Gh0'09/+K:VubB@lKP-_&^X$?d?FC(.pR%'`Rao[6RP:(4C&n:$MR'X9\D %Ob92AL9CZ!H%ZLcT8*gim&XSBL0,flN?%<'&F6-jOb92A@\"@IU9fHB4L%YX?R-_aU.0.Nc1KD+[*7"h6O2a\oS8reG&bkM!4n@= %39_:WE,..=Z^`,*,/B^n4#QRm-QRTj$9E!K-!A\q0jl9Vcs*T\L/a>M@/B5mk&rtgO9qtrAAV$Mk$!Rt:M!MRZp;[fY51\7cqE*J %6t[tIgq[#U`l'8$&P:$\F%Lq>:I_7a?Q-m)k4O#IJ/(&u)d;Oc>pCXZ3I+CsouTgREdN,o,sF?;b[D#[';&OC4(aDAYB^S)I_WkI %CgP$CiQEXF`Qi,#_h<2.MdeF8X:&5L8\!@;12nE9N\DmfI/4?S!@+R %omXEK@Y#Lkle#)`$GN?i!&_5ME?k_t4e"Od$IkCA'm'Rg[.ef<'18'.>o$pP%41^E+@VA=)4Z4AO3)cI@06OU'+n.#cLLBaZA %d>&M(64;B_@6k(p4H:f"3'CpPN\f.`''M?&0/`V%O$1O)`pYmVE8c%( %BDgh11QTjmO38c/>M^FF*g]A<=&f1p+9(LH7Vd&M-H0"K5.EmCbj(?_-oQ8epni0NpO]t;mc`^5#GoXNl %Kr!0%_sa\>="/u%+XZM"_=-;[JXl_g\fHsn35X]$U*:OI2o627DfLZmiMhr/^:JA2aj*`l;ql*SPt %ni3ZG6mOs][-RJ@*d*m=>%%O\4ummaOe,1kofG?AdSf,+\l%56$m0p<\-a"%r%qPLW8C(>I8iW/fNV#lI[nEf$NqDfj2[k6(]&q% %r:i+h!I3WG!4`gApjXsWDAkaBW&)n:"lRF<]cSu"2AeZ]W'13l'`9q^iXFQd@`FI)ehJ+//d4HL1ggiE4=L@s%UIKOo1#hVEO@h^\O8GkI@N<`u] %M32C^B7uic,mHT:W8-uD+n4N:1.CCh'ks,ZHrmoAWMJIm_:9EDJ;OFnmZ:U>%o=QbO&%3>'_]H%U;]gs"$Di7$p66I4L6\1BAeW? %780:F)?WbDIN8'FR@7-=_^WgL?ej4Hf9C-)i`+'6sR[R72MLY[I=[2fI=%cO5/XHY!ga),u\YO.FpF9m^` %TkoKhKrC`#ZlO0YFTdt?cQ;+u3#-DPJk-Vc`jm5X3J^WX %L/VOJ=pJ=QcHKSBTq$Ouq9NsEI\`[mt*='OZ2$!*W;Zsjb_`&@htfK",nIe-o*er'/d)5?7S_m %;&GRqIW6:lC0,Hm3AqL=^_'/YRn9?a\6W3,ng`J&i.%=q0r)!Yfu,OqIn:@%+G'O"%I"\s<*fL#(3ne_;g$jP=)Z-=If=Kan"9_W %RTfa1<5>K1(/Dr9#rK[s/^.5Q9\&6CC6A'o3.mb=RTbTkT;p)le:Mfo!_\0NWAX2oL)_+AChgd+T4jP1nX8NTC72dDE@_Q>;p.$I %/=`OKQt@P$V;X8=S;\UmVNWp=+Q@6Q.4Y4M&)Ylg`(sMe%B&&N:Sfn67PrF+Io?_uY%4doS>MUI`Rn+3q3tQtS%tGlbMUgDHUkVK %)DdgckdlR_Bf)1'2bd>DHcYh/KY351#J4Auf/),,Cp<4\OhLYGces6fGi;16Xn$04][&S`Zl2T"qcW((5;Q-FQRl]<9BVk-r@E'` %r>i"Z8#5d`g.8#>l``U.ItfOO2e5,\3q"&>\fprR$=BHDaF9HN]J.h66M@b<-FolEZX>!-l"HnGg9K_`b$HXTco:rY8M2tMA_)SK %Z"LmHqdXIk_*,e4qjXs7SVGQ2?I)i:hh+:/@**\XT[bf'G^@\aD(j];c;(O7S$.PA!q$g=F$EH,gV'fN3"fS%d_'[[n,%)Aa4lM( %[+@KOnRQDm(=2sIJkPgHD=]in/[ZPjnp']JG!U&M`%t1Z?V*&6f"A!+)B=7Hh*\Q0T-rEH5JD-FY?I*Xj.rWD/KE*Q=EC"&]HhgT %aaZ,9%mqM"bamf_b]2qGI-FOaTie[(n1^+,S!%f^JCql2jM_)4<`G+L*%T-f5K=(SGk#KRhdB0!im2UBB$ds)YT;)Z/D0Vd;HQbT %o-QKfdg?tnEM;2I[Nm7"*%,26j1:iWLV#83Z#(S[jX)7+\lX&;tK4_`>.>7lu\7! %-UNL8SsFc'T;$e\'?$+8(]1oZ4 %r`Jc3,P60U'8_c]_[%MbKK^T"ge#7C*;-VTYOapn5j215.ZhN[F:K.Ic8LhN]CcJeiYh]ad3"fd0*I+uYSXGa`X?G:2HaMXfj4i\ %4:%*L0KiJ=Gn;JY&B(!SJ1!B(Vp'a+R50>^Ns<"K2FOU3Fl>%qWgj74WP1j3?K&$1t"ek[h5G&b"7 %m#62d>n2_NpWF9&clW&$s42FCRmV,BbB*P?9X %X22*^90;rUYHF)i>P),&pEoo,0AOAn %9[@fGmM+nl3".gNl0F6]K2b+AkG=PN5>M/C#8hhJ!XS&5O:hi4@Q+@5%o^b^2kM6(+gaeTlp(6C`.oeuKKoN_E3?_\j-tnbdn69>))+!_&`OF1^-=;!\Y=n`E\*bagl/(ZXD^r>(W-`q %J:&\B^#IS>)Hh)X"dbqjP[%bmhFhik;$BQEWo1aOO&^4kh;AsaT9ZIU;Bht($)@p"5Q]OHdgT-k#+luVBBB-^F@Co-+H\"4X=fRL %)'mW5&l)sN3eK7PJb3`#ZJ-UA#)VtHXZ8Se0tE/kW#uG+adl7s"(mXDX[\>m75^%^/dTR3k4nd``oPDf*"%SFKc3GI$kc.Z.]V\M %,glgYfs>(W6#s&A)L2P/k)p)q[Q,>e436*r/\?#UiB)m$0tC3r87l]fEX$5m!pMn:LP2Y1rJYF>V!f@F3q)-9;\ZY+fT#Bhs,"UKmMTG.b.GWr>JT5I4JH`3dqe&Lns")8b_W3jLq98 %(>_,"0,;U9)Nn0s:$d*_e=0eSoUdL2(dI:sSoVI!m(G:^?;C7i&U!jSG-6LX+&RfSO@g-EIRG2?Jt@5NnK[1-%BCaOj%%VX,Iipd %j%#(C.eUEmq296'VB/W,dDqTVcBS[#EX;B1(*G[;_Mo2'i+=lE9R5$(_* %iDN6"?=2?(.3'pNX^beWV=+(NlbVOXpi_DA5H3U>.gliHc/\'r6RWM9C4:3T=Vu %:*bQeiB:Oh5C$6ag)MN0^)7[mBQLi40/Hi?7n]O;3D-dqf\^,U^EG#C/o8$sUo2X^rN:&O8-0b3]:tF.L`Me7I4c>?&,,f%#magj %4Pu%$:n!je(bUO>=m-orl=e_P(oh4=9BrO<2m+OVk=@'DDm_S$=g]mC]nSNk3F(k;V,Yjs[0M1G$g1WOFu)qGc[CmV7V%*2WLma7 %EQSWT_Yl%,)NYjiL&5#qN/j3kIMS'A-dGE\q%[*p9q3YI/9,rZ*F!1nEj8#Dj"7]=HbG7f^@,@HQ>SLfnGa7K)[u6t(:rDBRPb7o %I,Xs.XPGM-/OT6DH?W_GUD=MrJtR]5+sSa3$>B/9`6C1'[tKStbd]#`A%Zc@1)42Rl)^\'R0*\RPaCc1)[f %9cF^;X.WG,G^^eGOY8ISQV;"pnQ+ae9/K'O?'=(-j1Ks@G?8CN0B@VL-rt7oF %\2&e,-lGYS"1iEf7]E>@0Vi(:1_Dm26L;/q2+faf.%H7f.m?(KkpaQL"M9Am*4\S6\@Nr_VpN>u(??kH3`+0c'bV(Y/,\DM-b[mu %_BZeebN3gnHXD*eE^<+W);L@mQZ!>?W#D0+Lu)8eo6A#L$uC%Yd#*!T+Jnf*Kc(JFh5K]gkI$e$eUU3K')JBhGPh\loB9`ps%PY] %Y`ctTO'elSSh"aMd+qc"?VE,'?5b!s[CVeIPnuK-ic[/5;5kaC<@c<#q-cGhP@G'(?dGmDf7fsLN6qjNV]eH?AW6E5k"rhJg`3%q %Q!6bnC=d3f?/3Fb,?Cj!CNc9PE'mEl2\m'e?>/qKUkK+":#b]MKn^!t(I$sGiQ@AP`*1>,k %q<$nFYda,fbqel1*[QE)6AC1*EYJFWmH21?:TeNIa8h*be8>0O$n.Nj.+F"=iT4^b>Noipp8Wc"?sDRU>42]T@X=Q3G(ihGpcgTRY'M$%t-<4nc[C+^*:LW_JI2jK6/_[SEGLp6Dm %E*fjk;3M]\2#E!qqHfbfh_U+aU^_Bo,\3U5`<]+sl9b,k%Z/-nk5d1O" %>pfY`]5i)iq3;Su_XPQ&i>%(efYeHTKKf>&eJ=>3m1oL+)5ol?Fg-92Pk_&X,d47*afQnB,'Lu!(n,]R.m#k".qmPt&+/U-dhlVe %Nq[nRqo(ci8[ejdeT5:bp[q:XO7]n"lT&>X)scE.gNg"57'bY@LI6CFrcgnBfbf6g=e#D89_LW1GqV6d5?M1e$'2qH9FF$*/XS2g %PPir$l6F2(G8$./VAc&XC4G_kdW0cjqMI(?s3aBh2GUdY_'hA %=4#J.+&'joTu6IT@8(cJ(-8hnLGR=t=m4**QOkK)/hJh]PIXD0>S]Bmh@F7nj0I%".5R!@Y+f9@]XJbPFBfSB71Et*j0I$'Ubo\7 %F9.VqDOTkAsR%Hu7'-3FlZ.$QWb@97TA(2N=j:9$pH@*tgn;V*H2O-94L)'Z,WYJ-e:D:^A-U_TmQC$\e'n+Y579BIJNE$%_ik`'Y\q8-kT2P5p=+H02W9 %k%mj"*tlG2g5CVNV#DpJqN)7bND"dgplH'FJX6@jnEm-.jsgL$+acfdQl>H\+lK^sL-kZ!\g#_O7Hr)GWY?k7YMN5X.8Yh'\Y?s\ %X5'"/HMUD_."i*;1!sH^Tb+qRWi->-Pog@lCS"A/d\9#NHq4P4O@XmgplH'^>q$g%iBorAacce"&3_?BAjhH16MQWRGksuo'Z,WY %n?2]+TFa:4"O^a7TFa:4KLsQ*%Y^8oK1UV\plH&EeN"3ML%+cAVQ&]ETFehdQ8u^@4'I]%n'>?rm92:>]NiQsIRSFq3W:tlX2*tM %gYllqOa7f>^?C:aHLF@k"S+I8)V!o2Q"Rqj*h"p@hH0@RTN4h+AsaB`7T.)G`_'Hb(V %H$IrNTQOj"M*n!3^*t#.%TJSsKbCI_'L<(;8tVc?3c"#K?_O_$a.auHs+GmGY><7=1"!\8.((?_[*Fs1)bH_+lB;q+M0n7D.H0i1 %gJLqJV33sqZ]-:'W"bE_*^WtUQ_dJsec:=h)-d=qP[Jok?#&.%j_UcT*GH$\bPkTZ5auENONiN6F$>k\laN!Hi^@RV06EPW1kL`_ %N7r`["AbkSWgo"!Z"Brl"$NqjJVHeSVc9OX"ZS!DqShj-%a(N&Pf;$PDtg<5qPDS0IrN!Sf?_1\!YS\7*M`/0ZPAG&_oID4..7bi %>3.TqdM'6XJ`VF:f#lA3fnNj6_R"0YID&on>Qq6]f)+e-NU3UOFr!uVOH^)q5mu3m,c(QJ*^NuK\`Qg_7A2ASC^]%W(5)?V$0i*k %o\PkmDh[)fcJ%B^U.,@>0mN.p2B`oF#?NUZpJ-PTY[`beGib8P/;0kJ`'GYB.M9@<'C'B:J/s9P;Uibf3sP-oY$n%*lkmBZMAd@? %a5FWe?(I)XFq!4hT[8c$Fqpcln_=i=]pn@n70(spGjf%<=$i+fkInd`GZ]K%(J_!Hi4T5:7mql5kkUR[8\_KVmhAc0O;-5lV[+1" %RcV3b7moaq*J=+3@baBQfJ.X>'K%Y]Nkp&IjHbT%3sP-o4n#c_(9P%%r`/;T?=qQ!.@?gEr)A!Fi6,mKM2KJN)!>8"8?T"OjSEY> %%^tNkUdSC.`hEP$aGI:;rEaYlFIgBG3ODuD?9'![UaHp!qX!(Nkp)@O#HK-a^^b#*NmM5+SS@O5,gp#ff9J4[cr2APO9p:& %TGj.8aFpslU.,@>0mN/KHBfGjKY;T^f,"p)\!m(09>7QhA*IFl4BX+U?iH'b-J3dL1k)7cDloq8_s@0UDSbZd^t+.K4G(0!2cnAj %(<4(LJd(98P>h7nr;MX-Qh`G`<5=.Pf2!Xou':qRZ-j81"UqdO$`fG-F_'fHE.YQuu,oKPcn.sc-$Hmd+6QtM#gjN]T$pc!C5qmeIJjSr=6JO6t%gi?.e-IIU %a]+]c$oD!2MCJe$k1_$Q]:m*.YsGKCE"PVugYi2I]%%cOo8k@'[#WOA#Y@&a_+o(uO":fj6OgV\Wm'e"W#;T&D;#_LerlX&;7@0, %cO5LDjl.GR->ae*eGMU#KVT/#!o1oh[:SRaG-tJlb(h-7q*%i7uC-+Wmm,d8*1WO3hhPNM1:B=W/s)8DQ/c\IGFBP@iGJA^N20TECBhdsOU"k$Y)8e]j(DoS,`aEg8& %nW4C(7jJ-KQ7G=9q@'_)Xd,E+r2>%Ud+5AGpM84ZBF %eh4[qlK.C3T_Wn=h-fu]9e7il9s+?sVfs/`-!PG8VftAe$)RXV5TdA*7^q!P.6hc3N-c#=eAb?IQ7euZ@rncl>ZT`bqPolGpE)K= %Vt;LO:W`3\fh34c%Gj*0(X]:i]OhN+pQYZ6Y2nU&j;*9rG;?4Odhi6^lNGQ!Qs)';Zqg+lNn&WA*65(X4BdFqH/mL+,]"E!(D4"] %,IVH0O3,AL.B7'`!dl`?Vc:HQ,uUe*Z#*I<]hiMaV?%(T.O:kMngQTO2C")[+k8e`@[eob)c/B1C))n05u4=bX[5o8&pY9GV%USU %&;Y20'd)NhmNP)`[7^2Ku,RaL;]7'bQdlCUnT@O[T&k=skhBCIYiF]X-Rh57-&[>K&(QTNs.B\f(,HGco*p--Qs8 %q?0dGp20tge-2XE:9/^#['QGbO542%hDeqfJHoibtR*%jDZ/>>L)MO35]mjgVhs'IJZif)['W>n8Ou& %U8#Yj2_06[F@4rA*5=jXCOh%nQRoqu'el1.K&V!Q>QML<+B5D'P_tn&.oNF0\,tU"i?\m$WuFLh-O]Eb"]3Ii9bu[M$@oa@QRoqu %'l\Fg"jQFrVKVI"*)%,=kIK_uVON68?1=$]ppgGsM[?!0+a"0ohJ9L/*HY23boShn:[$RDBkdn&X4Xs'P'g)Zcg?f-Eof%=r#)IX %kB9Bp4#SBMeD(OR!#JP#H-$-c>QJ)jEKUM#\H:uojdj+\ %9Ma=I_.EKJG/-$h!LN0mfR`3S!\QS!*S=4gaRa)$`b#%]WU%5N&sjVn5fJf-%NnLON9hP>lm"./BofMPTs\85MNMi_3p!gi:YgHZuV^h*D3>#nu]YcX0V9@_3&rStF&ZDhF3?j5Mp %@FK@ieC:f%A"mtr^8@4PGo)C^p,06iA8qr3i.4\Ge^h;o7gmG3M13%GKU1Jm$9WNjjh&M02KY$U]as!r[.5m'@TNMH4amnO*@^'6 %3G=+<(S9K)?eYs4]sEpgkN6Pg^49En`SAe'=7idZN[*Ya,u)/9iqn0eQ?mr8M_2`-@6GCgl,TE9pCP#dc4bFI`9$-V>o^LM,Dp9-T._5`khMs`l,M;lc8jE?C/:T\UUX),mJHjHl5CbfILa,]&,i&=]jbeF %]\-l$Z#tLR10:3dTXL\qpf1sE'VKTMi]\aJNHcn5FSr787Gq'&2iTd00aS;,RX9.NY<2aN5l4J9mDIj0H*Z10qAK3*ETQGj'uGq7 %]iV8/#-2k>bZn'3qt6lTAb#-2Y-SI4l3r0g,-^nKVtM[/m3hVp3E@_ZU+lloT@VdWW!2p7JR@m0+/_*O!h92p7f;MP`'ABE,'R=) %8/Jr2.&phBJqXT2,aPl/5\)Euo8q@r((j,uIB^/'J5$<9'">?57u&H>n7eAjSk`TYpSMTW$OZ^PQ"S)b[HjY8%-T^.'D4^f<^4EQ %6!EQIRUNn,1mcq8L[)2Fit,8;ZjL1'dZ]u>=55kqhts?aqV=_l)KG)>QYi?h<78nimUF#@@acn&Xef[t1i&?+D="h(bQj)^T_M@. %iA(OBBIbHirIruVf.W\+>oiCLf<&TP?:&\5rLlE?0P*j=>U%c4F'j5`J#MXF?ZVLnqJj)Zq^=*9 %L&BXs[sboUl?3LrGCE%c?ll8WCCOL##@I/pYV<@a]KQH`Xm:hmFOTLo\P[96<%52S>3c%7Qj16$P?:0oZ*MkXkDb28>&bA/0^52Z %r'V%5s9aU\@D/3F78/fUW'o3WiD[8L^kef/=Il>U_l:\_>;X]q8Q_MD(>\kP55PY]"/>X5(T(`NVMhM %4`/41m-)5@a#96-Oi!62>X=r04$H>HDsj"DA:9h[,+s2pT-$^ %K3hR/)S"UlXShdP\ZntGNSOEmIt$O*4H]O':O%",F@C'.kl(SR(#K^jF8+^E/)Qn95GE(=\>Zl\e#VD1G\u7XV@IHgi@5g@cIK/' %;_7RPNLeWL2MslnW72l;?C"8:[QRu&`P'CKlh,,-IF::89,:Tm+5+i4CsK!J/1l-PIqS)2a5[B[)kRki>[d-ghn1CDTOhZjBYMS5 %7pa]P;4=Lb81,.9-n&9(opB35d^P>/`P%HYCC( %WubKY$I^K#qT#!n(St,&2%f28MUa2XF5kTSMU:];-91fhWPBAbX&V]/F*jNdQr]p*^5:Ai,c(Q(,Vuh8$pf)>[0fL)!*+YMX6cRa %]7QX-5;@e5R0h_M#btCo5*_`*VmgGC:$lPs4Rd&"QVpuTh&#Rf&U<:,o.i/.F#`TCJWc+*@jF#V,+)"Iboe0@;:#ucU[`F>AeY)P %?U_>H0!)B7'#4_kmYI)FUe^&d^=4ptM6/Y5kCa.@NLYH;o":"T966#BP/,C7E)fNSPQZG)!pkp<;A'$K$-kDP0bPh'hM<_M)2n\6 %rSj_#E&&(*]HP/$#V+;A5OFV"Nf5/c55F2"Q&Sm.->o.7:./peA%djq>4%-,6(U^TtEh>r.(4%)'E:oNgA9Df4!]6Lmn %,%od4.Ztj>mNSV_dfhCptKh6p?p%4mr.?R]j].DXEu %*IQ;_D3:p2VFQ#sX/9OlN;1C[)2NA\;KE-?Q(co!!R7<0AuUtr$F?IjYp'](a-TpieK1G+O`W]JA*#crYrrd^M:-3<[Xd;!fF/jq(^[_mP8eRR<9M:%;Y0%S=h^WBJ2M*.kk^;!js;O4k^^^Yb)PgF(gddrm\4gVoh_W5Op%`p\\PC`][]^5=os4$*!9>'Vrs.Dm[;Pk![I2PZ>^`V$icOn^ %q/.c>E.[B!oC4G8JJ4R!4S2n^lRn@c6@,9ORhs&3Vl4Lhebek`C^t4Zb'@7^D\5L1n9rLeB+LA86)6XuS39=6OS1k=V(f`*B$/VK %N%D\jd`_!9#T$i3ksa,UFRf%>DpO'81^W0bpX*8A8XE5KP[:O5#H$CPQm7?o(2I*uds2iZ2V@VC$1]cXZH`R+1mmhbNR %b9subH:9LI,q8XYcFLbA^O$qm]/e+GNHd"h+`J8*[$[rm,,0G24jI(YpX\u[9!]TR)>eB@X=\jK+q[c":Vbm]hZ0@KlHQ*-4BfU" %F1D#LSWRUQY85-Ed%smckd3W%)9&1EgKuIVIue72BfF#hgiJKH3hE(k4`TT-#$:UjNbhRU;b4C5:ZL? %Z8mTSs/>-GUrC9gs/>-G.^(K6r/Za7_[2'li."_uT;a@E_>fZToH3GlRde(Z*Z=rI7K:2p/.DMJ7K9&"7ND>eMZ,DUi>CO'0g3$E %U8%Z1.8LfYO"(_1m$fEu+12Y[7)Ju&kWa%?M^<%u<%`K'`52JPkWe]F`52JPkeCd[bWbeD(&\BE'4LAp.f'[Q3J>6KW4.hq%jM;X %7n*HohM'T')#:-F#lgZos'/f_kjUedq@@9pEUZ1Bq@Bb`U>UMm)Z"A%a!qGoO,Ep8<.XO'.f)pQ$3-d'D4%%H$NF/nD>3uL2FbHq$"=@/'@+mEm9K]eG9.Bq7(Uc388@RA3Fa$hAe %UB-;2pn7f6L7FL%7oBQ#pi'Jc^F1Se0l'6g3Bo8NIC*ruppq2^f^_Y?VPdlW&QM2:Z//ZiQI$GlEMokJh+nY4&87'PXM=g6@.2-? %O>J1@R=GZX[[B&$=\:n;S2QS3a[DG,_/1^snXts03?h=hdCO)&VZpd\6VBSTCXYF(9:@<04>+5jbnO/!Qedd9OBp&HAO"n,P*N)H %;a[CT4PpGM]O20.U$JfXErui=h4297@]C %Oe[!fI&/+2\Ds._AsY'k\Ds._Pn[--9MM5-':m4_C">s*ejLlSNKWPERcjmMU[X[H8]F.GGkT$f3_b[[O=bPT)EG%Rin$K4.`frG %UX)LX,@DeDHTrupgnmWj0bUh6q18=TWK%]Fed3!VU'3W8FEZ&aSJYh,:j!A">0'2?G%)lKQ0?%Z%'`R3#:m22_H\HY+27:k9LYsh %K=%LS_1iGC@Yf/YK\VC":(5_gf433[SJ\0jUasS(m"A]b>Tp]:k7@$WZ[?l0#;u-in%lI%>FM?GPc87FO->US7i0hbl.dpV.nCGH %[QjoTChWE9XM7SS0lbY7!K3&["&26ih_1`(e4cg5ITaCe5`?=/c5+,N;2s1$RqZeeORdRn+@,7 %+43Z-Eq5gk'^*@or![o!/NaQ@d=?T@kZ;&4oo#;WSh'?Qaa2FCsZCF0u-\8?ZTSHn-i&MqXIL/.D2"aQl/i:1pMZ4AO/ %B8"H`p(qg?[[B0$XHJKfaq[pDjC7.T7.R#T]?n@L+i9!MP,61_6Y#LdE;@ib=9#p^3EsYD*(_6SEgc_&$iRA>A=egBRT_3/:BIgO[:*j<.<.25C"6ObCi#2O$'SD%XVG%H/(83`'"(;:EIPo %>63uq_#umm>8Ye&UQWY4q_L]7Ve&D-(6D91XQ+g;.3b<@Qokim9r=6(>nlk>2)Pq*SMh=6#)O^'*K:Th_JB04FWqoWF]>eqqG.gF:?4_b6+^ %QZ._H3kY)H-O)dF47L2I-)(,(s-i:%?tF0RS,Mttp0Ko[$QCn7. %1&,`2KL?fQ@Mk`S7%M]kLOW?_c,,OZhKTS6:CJfVBsD@VSoFTeA."MdEa-K21t%T,))c?@8Td?UrE6S?h2\s(%b%_;)h3!I),+I@[%LM,KH %+I@[%GETZl!4`gA38A!hgS%aI\EP*!(r8jo.])(DE@9-C+I@[%LVDD7>^0fW3;CKV8!JTIs'K">UT!tX %7LI]Ch;\@O^V"P`]^]_8=GYoeY0eemHCZd\'p_c!fc3;R$8J%XbGE3=cGe#,YV(sl98\tElXB'i5MI86V25?,mH642S)-/GX+N*V %FOW8SN<=f()JVB`n>g,ChPHmbIG].`[3e-g"$&Zc.Y-*kbECnK0"?KhBj).GbG6d\K2`,`8>7mU[[G$a %W0lZ8#&"5BLl/1uVe@$a'LW+*YKU'*/>?V9h?>!qihc->l?4VV^pm["[k"jc?.1HE(E1F)5q6K1_;b0EM;'=`^Zuh<.3T:B,1OQmZcLRu#-F15TJNL;ctP4'GN`rKC0:oQ`5S4PjiCO=3F9O\VX\aPOUp.XJ`#5T1Blbrf8rpH`+' %s,ncM&qtbYfcbq59eE;PGZ/b\Rp(\ACMT2Fl-/.!/H'(,lYiEt1,QE"/aU'2`6rT_IMJ,4j"$E%I"GA3PA7[@^m[?Vk@l703\*nD6U$d6)3KCHO48(o0IbB;,1q %GR`Mp$2*&/Ik6p(!d-m(Zd?&IoUglKeWScQ20)sl\+G-8I6@#lE?(+hc[)eYM1t\a\Of9SB)t#b,>^=05>+ka!d-m(Zd;Xm';ukU %T7sFs['4MHI[5>DMkB]5m:Xs-X.ScK5QA"?/UUpGrea:Mm>)2tMtQ8%J!&A[!ll=Lp:!!::]`d>3dtr%*i9G7JL0cs,V^k:'FVTl %A#FI,F#K[m<'p91nFNqr5(),V`DqHEG=EC#)MuH'WYgQ[3;l-qp>=3]rSJ0FQ5^0N*pf5M,,`7NZB?Os. %gg3J6q[k'C/<*=/EB6Z(6C^A3312SkZU:8Z8arcH6H9XfiY'Ef-R %JZanj'Ee^F@FY"kA!cND&9fUKRU5mR:JeZ/?4t5)`Q'iX`r>JBQ1*#-+&T.]\>Zl\e#QX=HsU[hg,^a+>E/)%PDs:":FVAu-*6U( %.=74">5Y_4VRQ9%Vt4og@1l %B0P^8-\Xpg+"$C8]p&Js]l:AI,(gbWq/*8*o>_3_$[7OQkEZ\6Zu`uOr4?A:>5C!tn:8K_g_UIu`%F4a3"cu]'3_f".`a,5/t %IpjQc0HQ@pHVdZCN6f+r]87%fI+`0U`Im#ETXIsJ&*U\K'un;0HSB*i,/O$kGRp*1Oa>7i@!oeX)[s83pF]5-AS=Mkq!q!07:d*= %oiS&3fKA$Wr]^+GkO7%sG2S'FY/sj'-+K&r'.:>hK$/JT7$_*W&JD;*1>TBj,SsI"_9251>eM)\.Ent'bf[=orb+)Yg@nl.0ImqV %7'7CQdhT?Je%.ol+H\"4nRmA5m+@/e.ljON+*1BL@PnK:=k7=SVWe%+t6]_YS0*N7%-A-C\!]chm'1eD\MkrD(`@1@[k7Y`fHVpQQ;c`-t3C;1k@KOHB(+?1i\\\ %OR=91mo9p6EiRTAB+lKUJ[k):3E2kk7C<&eUU[Cb88nU_fT]XUcB.,0/O6M=@+=n6oDIW=eDVXZ_N;g!.W(tbWccKAgcDS&M:9b) %hE6*7GtFieG!4^NC=`t,=mGJg\C1jlT#=+*7'KL%[WX@o7cEVG6!O@[(3%--)8`0X>Gdm;D&JOE4FC-I,.Egm\R3]Cui#k[VdQ9,%&R/:%[&P:$\,]N#\M;_>T;QC6P\Q\5H %K"8-F7&TTrUg;5NjIC[bQ,#"*>RL53*<2D%E%0Sg_ARMP_klkV"rrf!Ng?&]QL28?&h^RUIOI'T)t2llp@tDEqRg,doZO#!o(W+Z %?+H9s^-L6Dp\jRfrMA!W"*cIEG#(uG^j@60H]pQU7ds_Tm%0Ul+#kW*rtm'Gf@oPS*;',0BX,lc4Pcsfp@rhCL.hWGms+]nb9QON6-+"3B]!b`Q?fp_EBNbPINB"HX'%8@mE^^*i9.-)]K\4 %r(H5_o"G_/_\7B%-4s2e9u3ep?26-9HBGPS"hE.qUTbTbU(Z"cajf?+P?I[l>l:)-MTXi@S`KW %&=]0Q*WM\2)=#In&"K4VF,U-oU07`8`-F*>2oIak`]4XZ6X-Zsg7V9`5tZa>D^<`5H>4"41kZ6o'R91[eQHK\L.FmJY![X %cV>H._UQY+I"EJ;KVEK^9YGfmr:W<%_#bYi%:/(3PBn/Dp3$*uShu2@;;ge17 %MTS.<`BQ#0.OFM>WGpZPhME]\Gpu1Q4Y[\B(87[s'3"M1jilc`C7XYKj4;;gBG!@&V>L,R:es$0pr5\CEtM]&]9[nk(oor'Y&5u^ %ZM47B=Wn*^Njnn]q0LXqDV]3M0?ac(2na7))"b`u$s$&Q\rk@l*hYa23@[aS\nsO?nRW]'Neb@W`t>_7GQKfU;'!'E:ACV"Ztuq, %]-)9=5F9$2o%AXeY"EOf9d[W5Tt@T,e6@FVc_+qIjMn?#ghf&bC>$dM`@fhujrF;0`]W[bbJDr;X=[SI&Km7&,)dffcNb[X-P?N@e%B=1!2Ep`G0AOY3qrfA`6F`0(=*-Kg %P3B^o[lh%iM`dYe/,;iJOj@\#K,Q)BOjE:ZOKC.U:leb\kiKlT51_\E[di&L#:3OT1*8]Cj_*[,G3<%2bF#]Cuk2iD([F&>2>^Vm6=/G>TZ0EqW5VMo#^+l1Kdu]b*Ct)\[T!5JoR!$]m@CZJ%Bo0MSED4j.0aDq'Zn6 %Ni.@Rle"&(@OEUb'F<2k%WFj-Ck_8cSFf1SpZ'e=jIn'\8/:217iJC:8ot+^AGAhGefGW@1#1ljDW*5")Gd4DF,p^@D;?!PRdTIs %I??K(0Zt+tWaOaa9\hAN&Pb#3a:[DG1;X@=`q=_128gq;KG-D)mb@qjBL'Bb!_T62a!.1b\ipJ-2U0!XkiJGcRb$iFp#TB\Kl!.KSh9"S"pL %HlO6$;dD$qNJ^/XO"A"mVe)%e-s1lmUmL),chH.1*A'XN4g"Os3k?.V\*!#;nqoMQKrPjd(!G#Vd5$cVLH%-YU'&[,_,>$ur3L;+/2g.[JkXX$WH< %'^FahW0?oBAhS]).]=6R7%TaM'kjGGFA/dRBp!7FPsDumI$ %,3XWp`]:\l$(qY1:Zs4,YhinU3=e2Q;VQQW\8\/(Y/!+KJhB#gUM(rQp"fO2&+fXbOtpO!.=P:J`%]"BeJ^irO.:ul+E6`U4YLog %+F4o`RCdLfIV/oSrZ2%sD@\j+DeUh*0%-".:CPS)Q%+RB\<(t'R%G+h^JA'ah9444M1'(6jH7gaqLkrW,.dUYW,,&VoQ"3O/DjJn %BGc>sg"l8U5p1M.[Q-f!q5C"CS=GmnL-R#8(0]D'YAn^=%S14CL-?eQR[q>lT\%u9o>#?1JofT:5OK\7[XH]V05eAs.7`M"/:.pk %be@aBoXll2CJ?q"BlYc.]eIiCGo:7r,0'2J2*$?tW,?VS@f.nJ64iV&b7XbUMu?XZ/-,7d5KOWEo$5TC6S!Xca?'L`ho]a&W8U&-0goH)5%GO8[l*"__$L]*DX`TX,l^VcfpL@cN=\X8ZS*mAom81nL:,'.dE#h&VMH?+"m!O;ZnjPnm2 %[\!;0NpE,-bF@RB5.R%?!;:>OZ%1opmDDB+]pi?QC?P2'o@MPrU"a=0?^ZuqEt+!(`%:PKjM6n %dlPI.I;!bgg;D7[P,TG1kDQCNPF?j3^5]Tt]#T0>ibJ$OMgndYN;CiJP%VYuCjkk.hr$TlZ_H+qT6X@K6%d@./1(Q5oGKl6j(>l- %/n**K&UilR3%jhHHAce;T=bD=0c6WBR6MFS)gr!`.gl39(Oc(@TqW'cpL+-NL]25WT*Ou4=G<=P'C6eKKg*H([H9kZAl]9l4Shkd %1_CKc&&s\c,QN6Pfn58F&JdJ>#/7+*&PVGTJCK)2oG]W3E#f,,#PGHl0#CYi?uRqG:%Q2#&4QqCiEC_^[Y(')rf&`f31# %qdX13@7^#6]$Zg9>,ns!E[7to-bH>Fi.]@*UMq54\:dZhH`kR,(\c9F.1GJ\%=qBdY.&>X$Gk4Z%nAA8&]rNiGFK!fm(A=ej]HL2 %bBd54p!?Z0IdWnCl6/2u"R_rplR.9a8f](=GR30'B$mIWVUPV4qg;3*bkG(cT?(>&M>u2sRFJ?DQS,_i`mRJ2,)N1*I %VB]U:$nFM;o;l!H=U?Epn8gSINQb&TckD'(.MmlX9U00:EVR9tY!N*SABC,0:*S9EN":usG%S4J %@/&U)dJ_!;L/7He2a44IBT;5`hH99oO_2jG%W %NKa3[K:P&eQWiOmk8qkIC&M4WaY;Ff"0@e>isfYU;%1"$9?gu9Be5rJV3#frd)*q`P6;r01>aa2^&5%X62M0G6QJZM:&8#)[o$bK %E7GbdVBpu$lHE?#'DU6B>Drt7:N$jpK#OT!hh4(Cg=_o'ET%K^GUiB,>Y?^YEln"AMa'PHf>o>Q'\+SF]M8Hf<&0n0Uk7d\ZQh&i %@n"]'j+0h^4sF-WGuo!poZ@7RCoLVsi_MKtj<<\\g:VCpjca$?7M[;aS87O_c7:\K28gX#h./4uaSFon9,[%K7C6bl/e+;l$&+/LZmJm#R2LLGr5O/a^;5To&&N3J!7YH:&^4]!sqb_BL_r*_FJMjrDId]XXk+B'IY1pRHD(Uo/q %OM5-U,#KQ(F)eSpckfiJ\KW1dW>)M_(N4p-k?=C/j2DS(oor=># %^1kf>Z-Yud8i%!XA#_1o`'`o3hhFr%:\j5oO>+YnhhXVVn52%Ep`!)o)iDe\hj@!mR"(nibh0RI;&a+D?%e(DisH39pg[_[_EMK"A8=%AL$u1M*a?nDrbj^?neX'brPhopKPq9*dZ/l%,?T3;LobgE>o6PjW+Z:!IW]<71Ib.IA>1E %C>-pHIY@.W%4sY(?7V^.aSQ0C]*VdAE3b%qh'>"CbplJ@'A5e42AA@6*n'h?FX7p8+V;+k]dl+rbe-(]aQ2pN)P#S(r5a0#V*a0" %YcErrgdmU-LQC?j*AU`\Vn%T,eAKQ(h0&A/a,OKlTb;'8@]C#9TcV't5L_1H\R-D!L3gJeb2/JV%Hf?`I#/LHI%oMPaub65[[5$! %+?J)4g4"&`ORrbR2m&bIj]\)3""p_3C^QEg>?0rMhMs%C<<8Y3e%F?T]bX9Y]GSI2YUX;7da3Qpu<@mY"'bf>*WqA&&hZgDYp"!HAjIn;pDd;;KQoufl %@b'q6cF=E+eC>,uZ1+i@<`2)P8eZpBTXGPB9brKITE7.gZ8Z?OR;2mOPo#8PSd %=TcMP*E5;E7.CRLFAMuYi4'GTkb%u<@'#b[-U4a%=IT[,0F4,JRVK%&:8+,_6uoHJX-Pg*(-J,";WAcD:V+1k!hZr*:.k%D9SB5&+L_1K'%8ZB48 %IW#C>nCR;qN8"8U/?tQ&s/*Ud6.kE:X&V\:KHa[%Ga/UsWI%u:0^h?,<[$!XR*[HbX,rPQ;AOkl$;%4ieP_,NOb_d)8up<",@\%f %8ZA(6/Wj4jFA9I@"qb$mgdgMT.POfKiHP'j'dgRofgT7l"[02A@RfiB_n)l[c/BK,WUu3U[;/iZg1I?%b$u__S*"!]S33u"rR0Ktf@T2sk5VW1(WhQcGVerM %doegdHI-C^2%X6DMPEtB9Qb)b9:_;\PWJT[fK(lGq_S=UFI`@DU$K!Fa>%)MXaM$m)dMf].r`Yt^X2b$SqBHK:7=ib3QSslnP!KO %PkA7Na=2kZ.;1E=Es5<5;)Mqg:AMUQA)J'nP%6T2gg2s3%_2I8Ak$nd4E/G3S/1OCF#5(ciFFt,Jm$I["/her/^"1XpttQYPN778 %!iI0SPTc8;@c3JRNI(_b,Qpm$SZA.g\CsjX,>-mY8^;NK:,)oINV=AqIkBJb?"Od73(h9-.DD_.F8]th\s@YI*eLA,Kb?@fFCNbn %f1MDBObuFV?UJV[5n;_E/&-_-D(NCZi+;T %Q>/(F>a@=Ki=0sWKN[01L,[F`;H1gYeaTH7@4Z?1M[urn?pY$4rf"o$i*?M0o1kJN3U*>oOh#BZP*8XU(r6P8]4L'<&/!B?kO6=h %qL$O9]NY1#(d9W7!u;oWE<\,nCV2n9UGL@o!l=*7ZPY$Bau)%!W,G(%"HY8`Wc.O&2ij!.K=M="=4t4OeWS=Y1^DYGY9dQ@-%KT- %,DT+K]F1\@4gWs@,5BM[3eOBF&ZKP&4Ym_YDa`k/_-9TLhoP($3>4\bG.Q-]3mKkeY.(gqG]#OI6V?ZYqb9m&0B]q"2tBYFKG>E$ %Y*#8Y52A0?hNsO+@Np;q[U`BJaC"C`,uoLVG>.H.5Td+cSiGD/ZgX'PM2/37JKO3PRnq@\>[,SO$hZW^ %/t,:k"`)8Zhp!<1FpJ%mpBP;lT]XjiU:bGaV,%00JW7n`oF4R9UcBUsZ;PM&k(EfKE(7Lhn"@Ri*J-RO7tPf'W*aF[%T,rfX.lob %WXBn_'eS?J;7H%C*D:Fn %SULXFpN_G?+b"bJ,[\$$,ds:r9V62'$(\N6#stUW()Ymda*EX`.R01ku+hjc.-&`G<=OOphC)"mb3.Jj3G2acl?g=c-4YF%uK85eL<02=WOSN^7nEh"OHA#n,9tL!Fn!R %0k61-ni"),^'6G?$q?`8J5E#-H-5LuH(iJ'-eG>;\t7r5iaY.rEEWSc([i@rXY.J<:DtTEos)e0s4QY1dsHtPEFY]L;M;A]1E)VY %6-*c2[IVGLgK<3G]f*:ef@.a#b@(d,Y3#J&k,K''P^'m)5.gkAo.]u+X+rH)'"mU+DVaYGUSq0go7nc;KSp+>U;7IahmR`Eg.d&i %,:=D^2\:(_S$2YQ%M5P!RF)0,#NgL+O%q`Y^P)$3>S#ZCY\9]mdtqqJ*mK*2&"EqW)\*e`na\`D2sZmXgN*7A^GG*AeOh4Fikc\8 %C6I\`1HU5\QO)%rXKs_F>E"7Y(PNrdehKXG>SMXWJ"Qau5B;U3+,;Z=U.$[h">3Dl'I-!u0a'*XW]+s4SNh.O+`PQj+/@69>uA*/ %6+7]QXf,]N:bX^Ihm2p95:ZMas_]g"t(R&+:DjmehTgP>o5;<1Z%XP4ustG)>1LVoi`blK_u;G.+_Q %(3.0''iUHUpa"/emLF&YZO1^1%bOOfr7Ci1Nk&J`_OM7`M)U\Ml-&L5F+E$rc(MN;Lbi@OG-jca@WFAN9ZEWn/>a;F4$d"C:(e5C %P9jcp3Sb68Q']JN,Vdu4#ROX-:(e4P%SOrREo79j*lY'\9THSW;<;@D3R&uE<(b>CEfue4.8Nt[PLH0[3PBI=R%04o<_I.09MQ4a %U,$:7XekXe=\PDY/nnH^:(e3e*_=F_U/B2[AMO//;bLMC^W=Q,Ei*hQ4XMb=aXI9+jN:qPP*h=DQ^5VO&0'Pdai\(5NX+H1'Z4"ZHme,l@WmED;hNm.S(Y_dqGdpXl>O]KIn940S %/A.C\lW%Ku82"fuL2Z2\Y$9WS2bd:QID-bEY1*&pHT!AN^&\D.q>XjJBs$-=9s$M%%%s-8"Q<34GS%JbAH5=*nAh8r^O8?RFN,l- %`7YV!_SL)rOA.R1PW7B1E]n(*Ij?33.@$EoOIH@POk.a: %[&Y`[oGa3rPZHBLhm_5;-KP0f4heZ^+kJN:7,C#n^1HadQ3VB/8'qujQY[V'%StibB6r^49#q0ig&?c_K*U-'po(&;:@nMA$+V\_ %kIpSiPoX1TX869?I9lFs_,EKL'#cGcgXj5=KA<;'Xn-UicGsqi;nJJ[-m[DOk@<6=3P&SF*uO-i_V]uSW)\;ITh,KXNoV(]rX9^" %)BnourB,bYDFnc=)EDFI$KdL6j%r[l:mFc\M:DE^A8UQmDlC/'m9V[Z]i2K>!Hc"12EM$P6Rh^g<5?OA;Es!\hRD?C %VeBX.ltXDP>+9f2b`UUAKEQ7C6DMr$;n,%sg1N3-k"=#pVgLVHKL#UD%, %Sp?Accp;nKaog3>BU\2NK%h4-eMK:LVSQ"uU,=XLC(2Gq#//JFbo"[n;Z^TW,DQ=s&*Cf,fT[X^M.?3c=BeR;''GVDP;mgTQ+ciI %9B,_bHcm'nbCmB"J,lBk;DjZ?cT*o.-5`G:7b<54'b<8Y1jV'eM&.PJZPHY8RIGA %$@Mcbg4B\s+qgh,qO]@7EH%rdkumX#RRUQ>fAQ+o:d*Cp=HMb9ZYrNl^kn6=?8@2X:3M!NR+Y"RZQ$Ze[Hu`$(?g8jb9Bt(Srd)f %Kb7_Vbhe]COlX$d?_2Y=7nld\AM$B\`"4/o_`K*]W.SE"H:!VaE">K4^6C,#dF*;`C<>7\XrDAU5;[:B.LH%.BN,aOfhq!:#KpH^ %4XqA54"#Zn%sFtLcEB94l;+Jp@/0>@32H=3+)`*H]\WDe/+3@\r(OdqB*Wi$&\X`AY[2;=@6?,YlXA*P-_b?K^GYZ;!Y7Ct@]Mip %UM+2MYI.J)n,>Ru6/TIS!0[j,$"1f(Y6,7@"^hR2G<+=9(?f^YO#E>RnK_BOe.i=>9/.=ru'_$k4ka.cMBagp_t2Gd@smWu76.M"fR5B)gCBdHq/Cf@j-JIHG&A$q>GD;eb/"-,d",EhY6 %n;sBN3&%do/2Q#j\O@27Nod841>lIpH=GJC)7=n;T_(F>YH>X6K3q.qI(mQj@mRn_jVePR.1QEJ)9]Eok4*o.WOKW<9B`^R<]hL[7l$0/hpDf=>hS/le(\Gnnc8O5[kR"ld)"C55!%MCbrMjCFU(V@q[@>Y-5eC2b7D5f9+H;Lb %-h+/>I#i:4"TH+:cED>t=QT/iSE/\&nXN!Yj#QcN!'p;HL4'!M$ %$!\OTM$H4\5D0K1!4;PuW!%j(Lslg$4Spo1+hUCJiVF]m2["<+`UlOGT/tNnAaWdFl%_5u&+&u2lA($>)ft[>S8O.Jr.RqIk^J?Z %%n0ql`9E$7k=&95`$tYXJsFjsEDF'pZ]NTGEC?7ib3OgBh%45AL7OLCcU^l!:_NO@$,-gcnP'TW@7j'hA934%?o1&"2m"b$=_8fD %=)(Y:ht@,C9$d1bc=WZN*sPp;I)U'%WUOhGF0@kAQ':Mmo5e=2'/FKIgJ_'$$j"]Y-)7_]%/"f2=(VenJ2`F9ANL_r&<&r[Y=nX8 %Oujo3LEjJGlOV?_])hYn#DN6BM+S;8b:?j@$GkL:([9p'H+6]$-eQC,U=@#%@H,ckY&/qu8HPa6g4Nt">i@,SMM_Yd9C]L.mp]qs %o%!ij$,k9fE^frD?lDZCf8gkDLTV!o9ICBE#94?`Qqec$gYD$.*@g[`SX).s,B('<'"h`&k"h:IpXR<$L]V@]mqtalR#m!(Mr=RI=tQ.@?<\qFOSpJP+!r]'2/7UISM=h-YB2^&`0Am)8pZ3s??jVndpHS< %[>s$L@S&A4hHtm/Ml`.EVnWAJ='6uU:4ERn7qJO03pDDR^Fq,!e]A(s<-]pr:4ET@`+^[(iqc:f)+08QGoN%0`Vt@4`fMu-rplMJ %a@C!fldZ1"d:&H.a8I<*rZrb50"AY1)uY;5XLI*1%Zdd!^*Hb7&&KPCm+JQ*Lns'6/:tY^P57i7qW6ZAe5j:>%8$U:g@]nhl_h>u %$qe=]MpQ9A;R.h@nHmH`,pg1_M:>ATY0Jp!B"O4h>qHPC^hd)8i::Qd8.N/[`6VQVF`e,:\as@.e9u=7>k-"a`&f`m3H,c"tV;7NA4[B0olX\j`VB<"gcg/u*`_Z9>8YL65U4W>Kc[6*)V4[%samD7`MgO+9c8:@ZAarU9*:skgb3"M:= %L2'GX]CSj+T$gL,:e>B"52*[L]7uubOXL2tVi%]XRgB5uG-8]$!7J2!Q&!V=)6-$fC^`DpP/9Y!m>ZJ)=Eq\X.%Q>s?n0%XCa9>f %<9%HPCa:nX]#Os&fgop;C*m"q3ZEnW?tOAM-Dc:"C$^lUg+kL*]0PXb()*:Y^ep$pc6bZ=mOO+"bBeL3el\c#Za9BFb6@k(Haeg2 %T'^!mVWS`#p\W9>CGs?%c#'.uA]q%?X^g$CfiE7i3G@Fl!sck9J?`Bj7n[&W!ZX+RemsY.'9'BH\lnDe#]$"Da6#T1l$2E;+WZ]$ %@p?)EU$4@d%B>po;P>nYd+5AGpM2#k)r?:,L1=_DZ%93:Lgsr!igJ"CercL(^D.9_E^4OS9?JSanJ!hf.6C\[RZ"FMU:q:6hQ/P] %Wl<@:PBooWC2l'hgUd4F4bZrG5+ %B[u*i;tR^rIoeq97;`n(1qS]'O%`V,.pT*nd4@OAQ).Z3ai0EB9,JEF^MT5Q>oSl4CAT'1C)U*G.n/nj4D`D<+IXru@s8p-q0ZFOAn@`0o`_8#Ml<(fRVeh:@MR\>0@FHWg:mu;BKgO9TaHu59O %Zs'V5JbQS7\Bp>C0R[W":-1Q(+:$=A^5+<*u-6ZkjDH6hRjT %[H24;RrciBo2f532FqH=Fggi;g7Z2&/q;Cd]fK4nPJu(;:TD;A.Td#)X$2:Xb_],5#D(:'5)1)]e0IGcH4&m,O_:tkgZ-<=E5PUg %Tfm:p%QBp&&_c9bjD`R3DK42Cg>g3i_/h$ZiB[,*nofEk$ZFip*ckOJ+r9VQT?V+GKrs``CS; %9s?Ae8.ISbq^.K"5]XA#P*&k$!m0Du#\PQI*,]`g`A/,O1V/tk$7(Cr\akOK\?S*M@#cnQa,SX.B'(@rA13gs %X&dsREZAt/01dEV+WPn_Pkah*53TW"&7=9$2@!C2g7Y8qa8,scf':4G4[80H/U`6[/"dV?3=i6u1rE-%WlJ_.YP1neq!r<&\YYH$ %Nu:Y;G.-[,Mk,9q"\/%$E^\@G'U:)\I-\:HI-GouNk8"1^3Ngm*@epkP'HNYP?s+r7==p,QU2?mc8?+W^3n?:h.&4YQVVq$pHGAI %C7Pf?gRXDsdQ.>(&Q$c+8M6@'d2S/LI:S@oS>dq@[P1W-RDk%>'cL]<]D4\bY&g^bS8B@!%jHNk.Z&"/.\o!/]u/3DB-<`EVap04 %m7=ZB]AL?oBF6=Z\Y.oq/go8A0Kc?mMO3:8MP %Ym2=e-3@We6>IpZj06)gGVl=.OHZMr?gYnni"J44g&dsT6Nrpa:Ppo'SP=o>k=JP5Bt#ef_CAk_"n0=u`%!9D`/MF.`'&Ku5W>?i$c4ird>a'O!H3R?n,\-. %_(6,sn,_PBdQ\?NcGXP+G^nCX+a$(@:FsDFk/e4>"O'q%hQYfW&k-8%hKi=b(pTIDN2sZs6p&@ %R#to&i<.$4\g/VMJ08GLR9TGO5e+5l()%[*%8(u_;e!YH@37s(p]*V(!;kml5(L@iYG,9OhY-tW_I8[JCX8p,FTmiP&no"oC'95p %^R\h"*4/G+]u$o!)<2c%OK*GE:RU1goZFr_",M[FX\.%3R4 %&?O<[df";ne:CZu.od&#.`&9>B=+t*l"IK/=A_/X>(MM46C],udDYWMR]MrgRF6-gkb'i/JS^+"@)0?OhX.td0g1G@5-Q1]?r6Mm6^UM_rpG,@cVYF:1i7c([u1pa%3$8M*+bb3=DBdWhV\L\k`=qm#(^h1geC:B\"d8EjZ`*%Ep#a4RlWTQfRg'b85@;+fG\.`:B1,t1`9@D3oa='.-kSpTFitZ,AYuMPK`iHB2h:g-2ta&$Va_Re=5*!)oQ^"k+\'9Eja((OXkIoMQVt_!b05hV9n^eM# %2]mNkm^KqanCE00AZn%mUNsXap`0lidEicVFL&o-TX0^S1[Z6WH0dYMG>0%u.mLlSY8]AmV)).\Gq'.H?tk>aCkKk@\T,C,m9b2pobYY<%(N!PQ*[c>s%AX=r*]e^1.E+O2.u]4o8HpRb"\h%if<(*7S3TNn$m;qYDL %@p>_UYMa>V#A?UW+OOa&RA]j:>u/i"DkMlcI!0,h>*ku)Ua2@:b!+IM8oQn@j4HMACDrgYbU)5sRTU#ePTDI4C)NQ$4%.!2=bQo" %80JmIR3E@Sk$;r%!Zja3fBWnDs %9+'ZTnC(uBIFoE4B;Q#fO*eqDI]HXsq<4]j[C@r5ju[4Q89!Mfo3DoOeC)BcA*GG6k-_5%Ku9He6,00pfGjijXuQ,r/sM'Rk5O0' %Q/e3+9:d-j5bM:\aXFWef.s*Kl#G;,:,$'QT1X\;ZaGu4S"OgoqDKFM71]G"_0]`6GHDitq\D*&BU4sA$bajU?Dc=+D;UK'f7EoB %6U=\`4ujH=WiMsRCW/)mm0:P\88TCG/eTFn/'!2`R;BdC7`d+)lhHd#0Rmn$QB]PSmtA#D8dkpcQ`m2,%)<3)>l/XZ2:!klR2G,?F+O[Z3:m*s^iZZj9GDSh:G-+O8F^ai*'Nior5U0-]s7CepDFA0`@K_Vs_\#DCGj=mYD$ %)l@:(/#%:"oMc9NKsDPI'-0Gl4C++$\53sI>peR#;CFX,],\f="^"H3Te,&m7T`?#Te+=#6nFRns6W%tRdYZ5KsLKKj6&jATrcAN %r$fmUa?j#lK1[m^8J0h.-&F%7Sa^`h=No7g^s1>>m>ebiFP`TA_d=jq:_s(/R^C'qf&hOdA0L%5!p!R?U:Q_JY!B+s;nuBuA%GQ- %lOQ%:O.GSF[k\!.dW>+u5"h%BFigLq*J@R])d!=FW>[to.i(45j+q$^_q?'%8+a'-p!]3(>2m3N'Q8`e6;c-@A'CRPV+g"EO?*aK4/(745;/e%LTJ"oIF"7ooeA&+ZIp8??[PE\T %A^[&Ys)]b)s";uS\s8+bQ`T!g$gJ4!?*\YF/+b'ElB8Q9LXp!E?*\X;/ElpuFii?*1dVtp\n(1T=e)$8W(Y]Jja]i:eKnu=n?Cc4 %YtI!@(joW.;Y)^%Z/jO*a4OXpV-UK9_cE-MlW.96=-_u?(7"mH8;UL!l %iSE":hYS@"9e9"54(qVW:$7f5=W&BaZVn!_r415t>^`LN4b'-ioQUG&[H#m4m:#/('%+8I$d$rIG.H,k27M>$P[e%AG1(%+Cgb!esjE!T#KJKo"7$2#HL%8HI.q:Z+7H %eo0PsEPO9gl3i>T(kf^C]8>.X_(^6P?0S58ZFn8Q4A"[NIIS*7l)>S"A9mCHFoSDjpVsgrU:dQ)h=Y5GCXuZVoR`[Z.I!0g7>l)S %/PFlI4'nXDFN26s0CC+!kl-YDgk]![0$#aa2rY#Q(@tZW;'+RoQmU"7/B[S1\761p"cMqR]l,Hr4G3ed3P6Aec5>^I5_"NtY/P2P %QC>Hl)fZ0&,u9GCHWk,?eBZ1?i0R3d6\GCG)E(p^1Or:;ebS;7/\Q1pq,XY1%aaS?3ZCG"!t>ds?`P+E %:J&PdlKGBN(\n@4i0p8M,STMlgSBohfK^j"Ym+'ZV>OM>Y)BIuqG=e8KY,A/j^tDS_@&!_QT(0q,JP'\17?18HqVI(HBCmf9'5(5 %SbN*O?Fla'=jlA8:h$=Z%@i0.TXFc4[']W)6P[9U2ODtTgquB)nG&,>GZ"l>%HKl36,I&,C*5[]KZ5=q4:==n&CYrq!d/o"M&'EC %(7h(upZ(CDknX/_O:`7%!>]p3S^uj9\N3e!)e$Ps?t"0/:(rRT"Cu+2LfcospVqWi7/-d<8]Hk9"D$aM-2q1#WokHWEG@anrDFd& %ZN6Ka$,6hBW"A-WXd:B'4Y02eOF5B+U:7a^a]^_EK8g=lc>,8lWdU[Ua-P.3lW'mQ*,0Z>]1`8a)R3,---^BiA_ip7I %-keq2H#\60BelBq4;LZRnF$aD3L"4Q5SDEHHo*T,#Vj1aUi2!MO6p@9c %Mhr2C8[@8nG'qFU,=6''3sH/`7MZofNq3;!)4MPi*^(Ul;V]ZQZ\Qg2KWIqBiTrOm*LK5,iTqMi`KJgM]%k).S45a;2p.RnjVR0@2;h)tbK_Ai\l!(l["8I]!52V%ecq!_"B^_f.f@4\S0LQ<: %]&o"RK\47I+!K>gPplq,DaJg'[I%ohr=:9_5:1m"o=t-UT<1M][^7ba7non3bc[VaiT]S@gD#;R<^QXpU9"0=#UMH?hOp"%:teA( %=E,4qM4-i^K?dVQ..EddHMC`AIpTkWdiM?s7[hn=fRo2fA0ocPmLbI.2mV(W+U`4M6Cg'L7fcP95mkn7oReUQHC>/;pjs3)mmhpX %_g0de.D?o.Hkml6$LpiC)Pl:4'+eXp-4-2*`nUkucq/r[+s=mqpuj&7`Atr.!%EADj1MCSFcc1o.>_N&*)]S,i#ZB']Z@@(OFN3L %EDFKdj_Y7JA-^muTS'/4!h#!3L:Pp`FMaqLOmX:SmCRXWqM"I+/36=PaF]kShFKH?g@.X(UI7&]^7D4/Q,) %+_PH$O(521g<&5RY1arrVKE"uL0Y(e.oQ/=n=1KtLd&Ju./1)+C&uI]`-s.g?Q>**mC.!4IXQYifJ1@j$_]YMR2KJsKlCK?,;V0I %(E*jt&A"(#7[@!JV'MJ").Mc_,WV/S8^q5&VD\c!=\cd@U$k=o%)L,%1:!F%(BP%n`5ls+?HCbpNY5Ji_$fL4;P_BS$=4!WA]4En %$=:eE"cQ>$7DT?tF"o1$`6J`.=.bGQdS^:,niPSff3G$YGr9&(O*Q2`-Kj?b5:RZiX?jRNIZ#62OF %EeWou$>C+r!#JmgDNKcPVEKn@bnG$sY2fetHiY$YT&^'cHj=gdjp8MF!LKr0ARgJIGp,Oh58A4`/EYQKo0tFpnpOE`%)WTrnS.u+ %?cYBZ-oGAQKd-a$4tIkY\hf9BR8G_`?"HT>.>3a(@XJ]=J>SQDeTo:4B*=ie;Jr]'6%&k&PF";"r1tsc0 %d%.gG)0hha[&BV[CgIBq(M798SJO%Z1ms^SG$YHf`L*&:G$^!K<2!`TfQeW3AnQi\SPJj"@Cb"Pq4t!_SE-=9f %q4&_u:+%\u$E'D6FZOfq;GLPWA+To/Q!sA2F,lh7Hqn>qj6UmYniIbJQ,5qbT^P>\kN*"-XQF&Fc=V'G_>fLj`#N`>obmPF'T%<&]2q:0p+3oXote"EaF/FS8F:+<\CHnC6'Y7uqA( %3IcP8:j<3HqK`db"p3fM#>IZgDRn;B'ju6;$Jna'=2S^0QII[%bKtF1/Z#Pf^Wn`ibt4QLUpW;3*K`H*OBSl(4[Ek+F&/4_d#7u6 %@s9+f/XZA;fUW:G/'.<'_'fHbGIu<<(FLTBe))5'^HK5ZH[,SanFGo(]gqP;lgEXO?Ht^HE*"_LUTIk2X^5Gm81cJCDsGIbpQROK#*ceHHg9"B4"G;%fsE@]C3+hl]-o0hpD%s %aGN;@.=$]O]0BuI83]ACTr9RlBr]So?&iM4VU4ud$3Xu$0:W:t#_A-57196MaRppA.3dGL4&8f=2/[8uO%bAU!5_1FBfo<=`pTAOVqNH9\qGUbBKF-S)+OH!`I"g]LJkW4#--eJfQnP^;PFBpQ`]fF?@ %C@Ts)H8&t]ERN;?kPBnW<1.a]0D0'%!JjopJ.V*RhPgrA>C(Gddq-+^(k3bAdo\@5YS'0(r8N&@_3sg+>/E$N;2ed_WM8u-D4EBL %&'_[h\"d8EjZZFoE3&eL+<7I3REA9:1?H??Vdt=aLe%)hAsk-[qKH.\J@N(H'6;0RqfVOlm7fDU'<^d-^K@E9h_[uSY9ZmXpo7ir%-&*s+1+hoC6f4t3WLqCY\]J;4D=X$,(J3;_1j/C#9ESmUYZk_o0oH\p_! %)/O]7UMCU61#?QDn&Im)NQuZNpD@*+1QNmB"lIVNNAY/c-@3dN[Ft=\^Sr`Oo!iM9QVDV?@fCZ']Z4\`1grl.Cq#FIm:buJ`EEo[ %Q0!?b@M;27"TEI*g\VSH9Orqs=+[;nLDJ#653h-Qm-LdVBl %3VUl0^K>$R'oj0jWJ'V);r7$:lG5U!f"geQ];rOS[cF2A(8DbA]]NPSNE%H]6-AL6/qLo/L(3Hb(I7SXk?H^cGXB8s#;b@s[)S/s %Mg#FY`-gs#6LlBk&PN(B2flEiCLt\s(qsjg%?+4qS)gF]Uoq/I#?EEF6+YY:'1g;1mM)Jh`s&Qfphg.\Kg#9TtfuYlG.pJFK`c`O< %V'_PCQ&-X:#SA(uH@q]&$&=/G:ltW1%2FGUA-b75!cXuS1;lqg&g\D>D<4*7G18#[@Y1kBA6A\Lat=dZ&sZniFga%7Zi/sBGd#HJ %ZG^`VGHbueX-k.YZr7m/,WTn4"fDYb\m\2$[k+d'Q@+mr!/WeDW\uTH(tJ+bHaO[J=\E6>JK63_W1(iPLG:ARqf(;kcmn9nF`bIT %lY'@8VTKik#_"9lf`PW&E_RtH3%,s;4%="Nc8O1t0\1;im-RJc*OR"("9_I#SY?iF>ut+i_8K;Ncc0u?ILGB+/sAe6_o,jN!CqKC %:*uH%HoTa;.4DEkHQGr%l0Ud,?=OkI/ej1n52phV?!*-N):02SJ:PA/VK-`u>/^MjG!$j5SU9Z.MoE*lOEWr3iFK7%em&=R#U^:s %/j'43*6]FhfF\0H8=]C:f[5i5YV7YR8aH^^Ap2aHQIpV62.Eu]@I&05pMhn,]GM/R?*L%5k-4n\h%m,i/m(sUH:o,`F;17pFPrtU+JYT`3?fJ4!>$Rr %%>:P5O^4LT/0.J@$@6tAdSU],=,KaC;34X7Y:ge776sC7Eb%4gJrGj:_X,n2-NtB!AOM3LUF=23:[KRW'dIDb;&8p481?U03CH>e %6Ie0i!tspa10T1SEP.^<[ki]A$?P-9.V\SSoW0\VAZ.[W1/VrGaM3-=[kNSFU&t1-4cY;H9/%"o<4BJ2bcY2u`u=kbp@%P,cfc)7,bju3E$@CWkW6p\6+6?2u7a+kjtgcB=[^3"Na61ijTPZ)lD@/%*m6"">JE"D3d3\8eN %9u&Wa=3=5gCSm$=P@ZD[4Ru@lTedI_Q1IhpAUsb`#0k[I0OMl*N8!$BV16Vs?f;uYZed.%$RqTuX)D[d=7ABfhARZtl'!:^a1+Y4iLi@jWKjkY %WpP_V]H0&G;j\s#RQt.nquPhM>285e3]2c+]MKEi;'\7[OU?.9Y*3L)hh8CmLljsSAU9G+j;81Jn\E"2Sj5J6l.7%o:*g^re;eC7OpSnH<2%o[:DZgqad]2P].R!dkU,$[-h`J1jMXs-qEt%-mI5i60u$`XeSt2t?,N %i!6ti_rU5I7L?:(b9J#j3#g[MW92YqL+lZs60ldBQ?R,I]g!8a*IXBsb&tc&WZ`p:g'1e[n4Q7n5T[cTFu!cOFh`n7;^ps>l'KrT %)H_#:,$tE-al*jZ*/55)B]e<@!/hEt;eiJ+^Di6"-i#&QBGSfoU#U])_>B$pcn(QWgIK$DWi'1YoTfbD%DQ8;7=qVf9V;/$i(OD5 %K6>BAcDEl`oJj2/l0?L)^tc`Q0PfSNaA18o-Nu9t-;Wd0iW=Cq(LKP?9G(3Di^[2r!D2:S9!ajRn^IisK,M,kLcQ&[ZF51L=c.@*(Ga$s=D(22&bWAnVWV %fIn#'#cm\B+0Uf69?<"o2H#alo2^>5GZ1NB0Z,smD)!$X$Yoe7mO#g=?7Ih?;h+:O(Z*7s>sAiB&5\jX6O$sNE,Z1-_?d7)YD.p& %KFqL*;GZ>!ROLJISu9iO!tk?SApU&+k%*1&4N?04`F6U. %_?8Tt>oFcPL$(&;;tmsj$?_9[])TUD$hZc!:C0s'a3$)HD?QIaDD4N$bWclV5`1tR&K.GWhp`*5-Jlg@@#?U.0f/4-^_C.;,0A-k %M##(Z'UU*"b7i)78MWf'_T+GF3]@,;$f3=\P9@iFQR=U`nHC@BV@!j$id4BGShS,"V!)ZSiF0lRjYqlicg^JpJLO3g12Q(@gK+hn %R;jPpE3,-J5`2C7jT/:RORffP`G;lQ%8madR=H_V-X(r5;GYoFkoX;k<)*?0W_pE+YR@A@UE0VjKt<22I%*QCNQ.JL=f:"CIkY,2 %`@9eQFh3YG1/Xthp5%RJ\u-H[XY4S`IJ!"L/@krT.SBPKZ_:]C>V8eVjtYHOioc$0:cDpUY.gf%?)S^B:A80>am@4_4"l9L0kP$R %SJT^UIPteoSJQl>R?\Y10S'0(?]piGBP0^9o..UYKkFMPpigO?rHUC`&*?sO\i:OmKP,Ql:6Bbi]Ej3D(q<,B@-Af/\_)[E+e">b6PoZ2TJbC)]&`<1T-,r\ %1d%D)nZ:OM@'^n3]*!eDa,e3JP%p<@j\a:$a^T]VUqK<^,EjVle-`c>O\sHiAdA%)^(=9T8DX^Hl08fkHC,;$-<':lMn>-g-EcEC6>0sYJf]+"f4cH1$^=>H/cq,LMfHsM[I]\k2-Q0u+-4)]aTF158sN5/iO2O?(U-6V6k%)Q?[A=$GZXH9EHu9.#`S+HEUBD(j>>+/*);YOcLVBu;pR[7imcq+3!gOu %$1)Uj]?\I<;kdr(NRFXQag>ob;7]_$r^Emp#'Stt2V%[PZpqe%KU?0*H(f"PNRFX1)A;H=bnEf82Np\^jYM#do5=,MFF=+Q0p/IJ,YBZhGDrP;U(b]25r8dN6g%G^-ghCf;o6l'LCeg5QQa %\4nhQQ`=,5__dn!NY6.\M&n$H.)CqG:qV&W7h/)n`sF?$!'=7GNg%c7eba?-Yk5L?R9+onWUPo]Ro]mhS"LWGK&_O8Dh?hTS?[t' %o]t+s&g")u+VdRl@MPO)lZCY?C\585&&4-`DC!mCh[nbu^/tjf#iGT$gm\k:Hd*r2qG63&"Qs*h\YNPekiQ"-RG"FRe!@ql$CNo(:Yr-W1)+tKdAs_NsM(E=Wif/,/tg'omn8t^*k?N/9Xru>Amo696nS/\g"HjK^ihk,$#2E %,\g^Eq:dXBZ"&T&4fX3u,M&WAh/F5U2m]@/e&K@7jn;ap:#dm2=B(,O-_TXpe48f?iIcHn)IBNBoFBo61_Kb\M %Y4I`LN3O/$[(1HCqYF+)d2NsdrLhg.johb?\_):=D?]GiCeTP4o-%\><^%VDnK!*,kL;)9[M6R[u08.N&S1)L^(IBd>DOF;6&Dlh4ZdeoeX"e_qhTgJ/dbDlGCEpQ>$k)?$pLYl=*3`1U %B8_"&6s$!:F$L67HAC;jk!3#>D'.T'WZlhj[t!m=%G#=J06]ql_Ct6&>>*)\[2hBN7/?=YUka^aJK&A"1Tga_,_qdUOYI!!/:t+] %*PdCi>dSC"n2JO"Rl'8rbjQKATZVY2R'3pQ&Kro6qV?UiGMoWC>&q`j[%(u%d;@mhi%jIP'Bi:BV;4=nYghW'dS)YOW/^)?1'=$c %?A,numM$S:F;h-&Bo`)gUXd!j%s$uK1Q2&djW#i@\Tm1H#-X=k_[`D1X%b^AXt.#r!4o-JFQ_``U=EY1D(b'UC0gM+jQ2TABj+1^ %68l=3l'$\FmH#Yr8FW+c?S!*^$-"?=W^_)`&r]Uo]&8-9]^&@K91)$-"?T>Q`L06FckS&5"W?615UNKL2e5n[bT\b_f6`8rPiVXW]5rhk+'0 %*WGEc(ucP7m(.Y,,tQBg)7A"4or[N=o:-'iIGNm<67=-"4]Z0=nf*Tg-A3!W/9AF59OX@:rT&l5fT56M:\8pKMNU_uDr-rH5>RRm %Q$H>(ITU"u#UM^i31*M>!c%A3\bC>*VdkgPV2&FFa5Z"j!lqVFEUs$!Y>E&"2I1DQa^/hZOla!(7E/fnku,;`>%B<7N_M8jq*o8W %)DuQ-QT&X(?)&'LJsT'KD3-?MXBY04$2+a/:E`#Lu/L&)mH&Yi]"!ESOcR]HZ3()&2X*T %Y^3AGMVj6egs#-E/:Jh>Dg:H&^\EeM^1$q+.=QW7?)/4M&[sPA:(%WJ&^iU0(*\3sXriQGIY3hFFgg?XINq$;>^ZY42ZdE>G#X"e %N>VV%Dd4]M'K5!37f5_Hhjir.*5uhu,GJKQ@r#aIgF,\"O%NsX!R/Y42"tiWF%!R.-?/Ecg9mIn>5Ui\hi&m_hVpI\qW:W09c(Rp %j135-`FUH/8MVkR(.Jd"Q4mFGG5dj[f0"ijq+;_OTaMh#-l'+Y.On6RY8c<:3QBf=2@-a?NnRde@^A6RP5 %$Kn4_C':e:4"3%m.LpR\^9!Oq/2AG()h1.[T-sj)d:O"#JZ6JlS=VVl#(bJ&$Q(Bk#`LFW2dIDVGHD#l0P;?"3! %'Mtfc6=;_Nda`tZ&=AHlJ?bP.@/FotXDeSQctCP;H[`?&2,iTG1j$JI6IM4YX_'XL@0.7@.?PMA*J8m^fnS2u`d1#m\0GqnE0klj %dO:b%[%aA^lH6aT:MuI0Z8`fH=Ya^eLX:oEJ;JjkZ1OSL>icqHYFqC_,)oRpgB'rI(ko!pEf@NMHdXiW7b2KFp%CeBBOk/h%DA6RR!`,![7Z %G'\kZ0`9<=b$d"Y/20;V)[sV,%%Jb5@2RV1Uu2Xe8Mgjn+O&\<('MN/#h+&RJM7MM-h&>g+MnC&/24VGG*'j0>sAa_rqSmHbAIht %,)d\qgq84W>(hW"[>c7?#'clD[Z2D%l'7ak)1i&[-qOCNG-5-mY,rj@Z_Rgli768q7T_[adng8ASI-t&,*(l04A#6/U,Ue0gI4?5 %hp8JI?0;O$V$n:6X81;J7`u0TU$4lH&Op.[QQ)J;&Op.[d)-,3_MGT/pdtQT(dWe*;C)AVL??M9=ScW<-^aWpP7kVY#[cH3C7=&m %"l[XOTf4aA-jU/5%u2P=h]N4&7])&paPXIfC?R=;'A_ufV]+c:kGrgu93^o4S@[I(J"c*M@@^#A*N@5O`E<%\A]3#ZMZ$M9\7^#] %_Il9/E9@eW0]u#?Qo7f2qbg0L\Km19j$^O>_Cm)7`eeq[aQjKN0Q+mg5D@KOOUA;GFEp]laRq"KIFN"ba@P*gc>igSla_EVFuYgMFe_EVFu@(XcK-6cjQ@_6g1$VDl. %oXWf-J&#ReXo^D2o)jEI`RWb&(12QiU-!h)6BNkfPq3F2(fRm%\i3N,KQtWgZT-88;J6QSc<],4>hL/"ERKt4#%C7%ZYXN1o.kKW4]^,k(Ll`oAG5^AG!6<1/A)h% %7]b0(C`RHd4q>T=OngQ\m9sir@ct'C3LJ4R_e5[D0/eL#d98.VKECaJR'G(,-s"^k]+*L:-`Qh-X-KX$\)-X5k=lYI?WP(bH^A169f0OR#NX`fHX*64_=B^@jaa+'DRdX53:Q %qW)TIYPlkI!f=>n>^@'.:g'I"AL&MfglhdDNG/8VbC_$u"N.h6C'bpLm0ph4!h/u8Mq:ftX7)s!D5qAcVK]<$9-m4K\1.u;=(:LA%RT&+kKq.kFH?k\9aHY`)^elaEHhr1LSBP3.1Nn]mRSR'l! %s6O@?.6Z@fHX"T7\?e6+2`J&"g0->5=3\A*Z_l^hS/BiDRKlWgLIUd %bS9D'*.:'I[CqWabc;C_NcDA;5ZkFZuiCVp3Ihe.p':E+L=s %kF1/1is49YGiL/LV&c2P5i^H8$DIk%B\iX^hjUb;1M@N94O61`LFn^9TdPVGiMEB+(5IUrHua?3dmI*qd*.f7V0J;1cl'=UL+/rd %>*qX=&`Gbf5PL@"=)"iuqHou7'OQr2jhgi/'XSjX/$q"L(Sm][jp+iSG@c@T^*!UJol86,o)^AV=%7ilE)P/9"4$tVQLf\W^*!UI %A8X*?GG(4G_A$@=K!($aEa8?TaTJF8Je[%1^^6mJ&tW/op=gSX@'016/uX)s9hBr4Wp[,4#6n]"o#sLQ.D?o.3,plNW@P%,+^p6] %8=?4:7C-gB=%*X;D)KHk""9"1q,3$HdWG`6+)1C'2&N?+iu-Co0&^2^#?EiG6276R7jE:sf&VP9dEL?pb/;a?71U!k&H8N?j:Iu[ %POE'/EtDPG[o,_=#B3`e8[#)JljTnX!SkEMd)>GcZCj7QBCY=4)H@Q>e]Wr3i^DXJ\(aq=O7NIp/Z_Y,NRQ3tZ'Ps+J9\G,M8G,$G&`ATmWe%/JSIi1s,W3tZ'P?pt7OSVW>eSp_2o-Xn`4RSY2J %Yr`P0-PMCE$YRKnZdHn6g[:;LS"4X306b#A@BDi(2slq\Pe!#Q@=:\UVGpIule7[ggq>oad4G)DQqU)m39-TC."@K>;=$j\QM.7pu%'"XPDt!dj`@fFaL1 %^]&n8lqg.>8mr"L#!7u5"D6[I1gLAS@%NklG6DO<08*\c+YXjb7;.pWMSO'+Kq9)X#gAG-B/em@bPe4")W6_S(CWu3h0@H)^L/.Q %`$tF63;!fD"cqHRi7't8M'@'0?Z>9P0NL;Vs+42LrcaPSr,_mi;u\OYae&h`rW)7lq%I0>%>N\jr/!+Z#1KtCgkd_:"p6`I!$[Ap %8,cu&Ik)9J6A,q-Qm<%__?_%gSM:^ER$.`$q'oRYUO7nPs+E`o0FSI7Ot7H)&R:J`$nFeu@HP]c(5?6/B!j=NJmg8_-4GW;&G@Id %WWHTG#%;-;TJ.4;YGpW2'EuB.g9;3gp_%!<%;)Q4GS=Kg%0l`g!$Wt=[tbb37U/02/4:%XBsP?O#SBPQo%6@L>/]U61a,H@ALfpKC.,N(FUIG5Jbg&D_Lb)k4d8G.3o8\c1AQm %6T-[=(p^NZGrkfu;STDcEb!l4[,md)Ei< %jW!Q3%hmLV51o4GYC40_TW9f^U$kI^OZ'S7:f;*%b4\0CdOW]>*)\[2hBX7,sH/!p]bb>S<%r-)=HK4!8bQ %C.tESH>s_HF4a&m@IcA#?'-rjSBUF@m/JtNC:PS+kI'rorAJS8@77$_o/XDE>;L.:P]_;iRdic*YNW@5fbVOaQ)7edQdMn&5`\Md %m;rca_$g3Il.ub,8[\ul)YfF&C8:X)bWn?9?A,mJ?8@A?SQg1)h`oVW*q[[Z&-"i %GX&Nt?W5AV0;8j#Q4rZ'@?9X.4_uMiX``D*^6Tn_V5hM,DK[6@>T#Wm]YPBb^!,:RcJZkT]pt[NW?8*f7!+,m$10/j:kk`9c %C+O_@G/H&/_Waa&Kj=84laZhK(Zb,j>`p'^FIak$*E8Tb+I@$-3hH2bKWY\UeSp5F1I\IY;DhQCf9u8cR,JJf]$BsC(d0,1U$GC7 %lhYO.$=1D81Xf!X.<8^W6\_bA=X)JFFU8kqc88>O=jW,$l[b2aE)KcgK@pC-cugZh?n8i+6e@`8.j1OV\%.N:)X$QbPN7gFfh@Oo %Au7_4k^&[DEZM'JKaD$tRbD38$Pg6J"/qc-^YqN2RA>SAX2#^d^04'/Q&Kaad4R3fGMEr+WH;E1L^pC4f:TPNT\O\^R^mY`U%\q@ %A+tn/U,@=>f6-_#6t$L]Xc_luA9)6Oh %cR2$^C1e[olG>HAptb'=CPYp`h./7$\T"SIFLT.PLgkuMUdnfY?BXr %^UBB!f@/mMj_>`1E9MSh?.Ir%5&&NPLDR1=ra91d,=4NVRcik&AS([ZkqF?ciVcf\$ %1;]=Ff2n;^@(dV>g<@!DRp0qmlh]IsnQ$ORF`4EhT3Xhr\h8p(-R77#Hh_=QDZ&!lr,OV2lBG/Nq=/erC&[a-]Wnrm]^'0>fdh.C %%?6_$C,tNeiJs7DlE'LV..P`Gg<#q`R4M1#dU&jU$E[h$+"qVK$PY5RL!h@r$P_at"_@_g(+@7$'U8i8h[JFl&sWW6>G0o"H&\kV %/PuJ"8JH,As!CV@9qqDm8JDZ?``oFjHT0)tigI4<8JH@&O:'<;b1`@Ko&VAj>+e-O/h.7U^4#M#f:#3jBlQ._J)4$$(bL^6W=q]He_J\s4W^F,c^6<%=eIAI\s0Vtf@d#k+d5:6$s8H:AFd/o;'1o_*iSR9hicLJe[i;hb]&raD_DgGri&1< %ekg6&[I)*8W;mYS9RWY@!,WGlSs'=h!ST"c]cT7\(1?XcL@o&:eZC(7!X4$-MCcQ,6k.pI;o8Q^Z%7VJ3#S@$U]7DSZ7+`H!p'qkm[]R:\^.nD85(h:SpHYXRQT-)chEn.-$M:O,5_XH0nlk)4u5A[.KZUV\It^ %PZpAA=j4&uk7'(j/!Rf3RGQrm<4_=r"U('T)FW<@D0jCN[+>Ve+h$oKTVZh^LCt3f(Q-_RmG"1:T!T9?"tqq,X8R3bP16M>e;MdX %:Uuq)-j5`;eo_:K6uPuhG&@J7X),u-of6`gZIV_"2UJaYSsuh*$;G:"Cr-li.l+)XVS;<%<[^l3[Vq@5E*]?h>*2B..ntp'EePmK %,[%%QI]hOgRtIQh*A:SH19"hY(W!IZA5We@Qg(kXA5WeYHY?r?d7>kU'W.2tL*X/L-%IW$0++\4Vi,8r*2B._nf'0lkbB*!qd[1ZYjRXi\et'(gQP5@)C7--j-l7V:VOr:qo8LgJ,C/%R)G/It%GK0\.2_b?>gij5jBM(r(`S^3Hcj@ZZJ=cdmD %Qn&c#c]VfS[QZ77A[jafE[BB6/?4-taF';=4Gam0EYJDO6$iX,c)Z(eKX!npVcmo:]$=q'!uV=i#O!E3G3o"?_CnjXU@C%=dZ0Cf %dJie\0,'33CToa8U7[clYPJ#YKC6q+o3c0dSJRH"-Sr-B\Ia[KIi!^)+ZD'=V;R'So>8][Z1C;b>m68.-hkjcLeju>$1gJY`l]$Q %pW^#T$M0OAbRcih'L>%'^^D#SXC7&`kbQYt6EhdE2*UhI%gn^'FZ#CKitLR/E5nG>itI-QSqHP>o0VY9k$rdbr)ddQKjSmh3/gA@ %OcakgRYS?&4LeBOUoFkF=qHmP,o38k@ipEKNR08eI'VS)=Y1:%b-MFk %:`G4pMV:'.6BFOJTls2o+mn<08]dK0Fd:2>=BB-(^%n=oO10hLbdI5pgrdQjHej'bQ>THhn[R),&$nKtk/p,fXZ.(P/ie$6m(lLA %i5W[+pZ,lMM%9d'['Biu;rnViOa:Im6aV:e=G68/*#IJd\"2-q_m3A&75%e"*Jp-XEiS@B'K>'K7'D+RRhb,7O$]scFDEZh!3#)X9=qSG?B\_o<5QVZG>1ib2d^jmtpmZok??t7\< %7s"2W?St!Q9)jB*NCT?[^\*Y`YC$VY!.GL[=9uEGk.u'B/3*+AL+=tL+.hm]F7R.qb%OZ_+Ys=g)b[['kGDN"Ui$a%!+HFWR %a%uV&4?dq72HTDf!HHJ1#qLHTV@'[Aa%cs!.XiTb%U,&bLu2=hIj/GcTT_F]-QY_S7XT=Mm#)Fi&JLG7Nq!n"&J,3@q?2W3#`'^^ %&\enh#M:s9i\sZbZYfY<]EKK[_AJV"=bc`+gJuS6mkX*(.AVo^dJ9h\'V'g$QjE4$JTG3n%Olk=:G6,`K24f>LBorRGJOP_SIot= %;$@*oRYt*cW8:Pud/j"3-064#rfsMSdCjh)hAe"&R/.R1&388JP6#T>>iLcfo*]WDNsFnY$qKs@]q'Q%eE#Ct(]OW#AuEa0DbWba %d8#uToB`uA3CkoDh4'br%6]uHF`1Td2c!.$bHaSPk2:>Eo?k6[*E"3_?MZ'oMjLnTonMX?Y.?PFeJkH)q!-_K<,[j.`)l]qV0[4D %-Zd_LH)]ZIFc!&DZbu7ckl&%$FQlAsID>]ieUCc9khl\;P3n#8!Thp#bJ[Cj&'XX)bTOR9RjC8(d=Gjg3?,S2E#%n,$*T^ %nN*Oc#[++4G(#O!1bh"@JXm`MQJ,cAQeYW2NSjDu's3bEp<8fLgko=[5HgLmCAR<+TuNShf!23+%fEL+d-4(BGMQqGR2MM3$gN!, %XE4D%F)):gp4s!EKdbQ2)3gTf%EPHtrb>bY#ID?6P\=$],IBt,D>Pc:caBu$(pPh(F:3"o.ZPJ/TOCl="00nFZ`6=+7ZbFFuDn"?Bh2q %Hok,BaPG!%?16C16+0j`W-pF(-#hM)][AW;akBm!?Q5%[d_-U[')Vi,0>%L=61T3Eg*bCN?1csEp"&Hnc)3^Wqb;Z:QuMJq.[F7N %Tf@OWpOWriC)sc:?TPgGg[a%BPZ'WOleYYtDfGAN#PY*%:X@](\E:Sro]/lS;JkeKA&tV&0F,TCMNE3$qC_[s421<`Ti6gmg7pofT^1Xc\eWG% %JR^+&BTIbkE[BuGM"[S7=dJfA-4D"RT*:_g&*7+OT*7cULN7(^pV!kDPd?-*)!XDaN,nVG#KpPrOAX:Ek28dG %Us:B$%s*hCp5JS7b"]1[']rdNl-X..Z\LQV"O!62cC)"p''90AFXm:.2pB+/6p[/:c5u*Jl^.r2RX:r=U-tFc#&'U@i.:n,3Oj$T*\Mr^hF`&fm.CooE31e\&kX%e*H'AsBVL3l$cMImuH"\s"#nlj;d:baq\WSl"iOWDR;m %ZR;!TF^`NCB29q2rNV/:/`n;c\r:\'K^ulL'YKSW)Yp5E8JJh$.*tQaRmcd*M;f$m;$>J]Y(<4]6j<^-8"r@h4Ik6m_c"`I2;mjlr\b0;K'&/MoL/_K7LiRK\4W(]WqVR0@2;h*!DH/c'#N"a/b$2'VQ %U/+gkckZ"q+49D!BMGAF..=#C5s71EU'5aHF!m1g+ecQ@^JA+6^'Wnu)N&V+/jX4i=e33`G6q.TmP,bhXl-SrSM:_q]*,):8`6;T %>4&ZHgo1*m?9+o+[3SmGnLd+BU"+1r2I>fW]]NZ/#?A7[\@@hn\*d/Of_n:T:+*9Mk&ZFQ"&8W.9#uGZB7*.0cJ@S^-NAdQ&k8a9J['gljfr?E)"LK_C#sDKG'5>!jXmIb3l?932*W>oR %VC$Mo22&q6GkZtKm7#1c*_VSY[k_^!h*S18q).8N %WiDJ%^,+>"U*!/%PFsb'f %8SRg2f'@7AT!`I.<;H@aeIDXL-WbQ^[2R`^r'onH^6Jeqc9:B"<]d@Khsk$TY9Y[>,/shVS\%kq\+-Wr=jQ(Abo-3?X1jd9jMnrirEu4U"aZuEb;[c'n,[7!>P+aZI'MlhB8VZbnG;0Y!-(.0QXV4E#[PYZF %Ob]+D0A2_rP"\!)7$TdVKoV;Ji(cfh))1MC`BYE.AC/-;RYT).=hg[Xhs*l0Dd!J(QVg.]YW"c!$,g%9L9?G)-P2i)XIFl4TPArK %H^s'#_F,*#=W+5u+u1[3]sD*p+jCKiGD.5'T>:'hULM/V`]qmceu2 %T>.#uIH9,Yb4NAf]++]UOkf>rg[1s^$i4g-Sfmro?`VHe-U/Z!qHO#,^m_=NLk-!LrM&Uqt`m),&F/+:ZW)c!\6ucZ%DZ+j^Ap(J,C/#%t\jJJf&b#3WsaI,-P3,?/ArFqu'K %/);!h;Au(s;!>O\97t^YqkK:+-F:#90]!V1#%qSbU#0=W_)4;EFcL0Tp,BsM#*[r09,_(!SR/0M3.%=+V@1O'3-8'iZtXK&(7ZY. %97r_$`eC5)fs@q/1QW-+BlJ52*,'[eV8:ik.SLYQdbsIC3([KrS=KfgH[VX:hu[rW3MsXW&>rjf)G@BG1cYC+JNY;#4j1ZL8,":7 %H"P^F%drH+[4qi]Y700#.Q/^.Bj-1&7_Lcq/0Si:spL"AT&G9Kl6KqT<3p)1\J1P:G* %??u6R7%706h93]/e:h4/GkluV!,dnA(N;r.+dXi`"E.ggONSGZ6.5rqaQ3f>]P#ELONTS3>EV!50&MR3acQ\8.H7gRs*j/3DMn4+ %fMCW6\LbNr=#/sXAK,UIKFhIOb;XlScfaHo\\u#*8]^!$\BoGfKNpl(XUFKWb85+hjQDP>V=t$rOt=n>@KS6QCt\Y_Amn14;)I8WdE)'OMli;-a:,kLcQ;+&[;cM.N] %5G.FRR`o&QRK2bT*UC`aq6bmg8Ao(,%Q_Hra.$qLphfq549E#[+42TfqZ<=n]9c,amF363P6'HS3s].U%mZ8Sq$(e:`,DD.3GJOQ %7Jo(#l&?Io9bG,Lds/e2DMn4+[#TtpPf<1IB]^+8.#WQ`1F"(OAMGutT,3WDZ8d:PX)19@b'GPL\/3$Ig7t88Z/bN];h?A[$=_@@Z<1tkGP6ER1BVDMm4Xd[6(*=(!T0sI; %@LEb8Xqb(fCFZp7(/(d>J?U"lYHpZpltoq@Pc_A'PJ']VQX]BaVkknKIORe@$(YQ5:+ESW$Jt[=ZaXYf %DD;+(L#g"WlL)oc?\ZaXY4\"UX"-$q_[Iaj3c9A+BV]hP!/mEs+p %OM*e/H2BhM-#q/5p>UdJ-Pm^XjQ;0).2!Xdfu4&e"QL0e*fGnPK(4[Co0Fd"I.Hi,+Rf\V(-E.#0L##tq7.h5i.Q7`#UL=[3;3/B %KEA':F/"&"QL0Z(ug*CK(2DlrsL>oAa%-&crLX(!_Agd64(XZ%M*J'KG'5>E).Y_KG'5>$sd4NKG'5>cun=>gheZ'DR%Z6G9MbqpH_q;7Q=&G8.G6;:2.igrZ95M$J=SVR4u)a`39oA5<,ZHYS>LY>WSd"n:YhL_qdA6LQg2i1QRAm&D,U'#I4r^IA9[c(QFoU=Zc$Qu0p]>oh8GI`^[L+\?,43< %_-_IsJeA3J+PM=>5R@u:pltPECc+C"976@PGj61h&,"I"=ruC5_;WsDP/0,3>JltirnST4]b8;:jK4"Dks85,hm!@XkN27i4[&E< %Y.h(EaZC''\.CJ2%4G2(+Ai&d^Tq=$.2!;Y^Ogl]M,kGVONSo/4\!?.8&(:Z6oS[Q^L_m4E_Hk9Lm$(r85l<%>scB %F=ga7%BCaXlG`&p+en9,]Ld&==IB(h$hm^1pK%_=XG*^6U[U)`4&WP/\Yn+Q)i0FMJ"n5g;nK;^07R>SmQ'\J>O\MNc.@0S&P>[@ %/LY;RIjk@4*[J:PPA;/jP0L((/JW_pf;Rb %GMXF?a[$Hc:@>8D&Sd_\)!H1G&%=oS7.PSQS=on9^eWTk"5Q5#22n%J!=rJbgU30lrO#k\>.MPbeiZ(M6HEk!#NKGq))UoB_8lr] %(1H!Yc0XB=;@pAmsDcg^(\i%<'e);]`R][>7?bjabYi%<&J;Aj.*Cl\7=Lf=T4"E/Bf3%NFi'"lWA %2dMO]3PjJ/Hf_%ooAY,L1*OR+4ZHGoX!5g1pDj3tXhH'pMDW)\$bhKT0>9s9Y"80/)u!:,_.i#JpXneiYkdO5O$p508Vml[o1u7)%:pc6[G(W7=h;ITceIfi67nX'&b!t!2^i_c$5 %7h_g(a)a=],u5;pMZY\to_>[6?5s6r+QCOqG]=jNT:[VAil-JAVil*FJ6*f-Zm9V&)`1/CW0=E\!QF#d5m*]NU)Pp]1FTge,%:S/ %*`).(NueZ_V&:!G(:I=q:sGZE[YJMENu(DR;]k2"+"pqdIok'?K1=f7coOYL%;PA>/%6V.>3=F@\Q`1nT]Hp$P)_Nm$MjtG(S%bi %g5]Ce2$?fJ,P'.<\n$Z4Vi/-PT?7CP3VffGX)4$2+a$AX)7 %5MrMW+=&%s6orR5q;VNr@h4Ik6ouCci+aXqIsUT)PZ7Mk#@`DI@>V,AQS3]Z'8S*R@X-urg.^!no/FT+dAhkA=>=2 %0%t"fKDJ>S,0efert>0ahTX'p/ku`*n)mc5Y4G&/[5)F>YNAoq)Qh-Vl;7HrSgl@r8^Q1HiMPW*cuAXu8=\D-:V!p9CNJU(2=/Wo %AAQ0W+7.<4hCf@oI^6E]&PK!i[o$s!KW2tZg(_Q#mpiCi]1k/C]Q'OO)T#Guaiq132sYE\!\WSk_9HEfbd/s7Fo;)-U2+."Fj'8m %^CdVP.7!47Z6Ve`AG4oI35*1l.km#m(9D"%>E7242fW"hiq2p>KCUs@R^:0A:?p`Tl+\j?5N]7k[Ua!`>rI$-cIl54I`ZcdfQA.X %"F=$>BkJg;IlD@nA%#K+_tiDKn\qCY1Qpq-b*uaIHn&FRD_#bB8'M4**W/f2X7%Q=pauQR+@/_,lnme?l$Q=)!`H1$[8VRu&[eM@ %^\!i\!qTEcX&4!\:M6c-O6F\=F]4%qg]g-QgobFq)HEk*X!)#9^JA+6_*tAdA#CW@U.@.^lnlR4du.0Ma%fiqD*^UjO_[p=f/%=K %ggfph*Hj3"A(,E%]#iEpNi.T"7FCheeaaB;:FTHT3`QUgk'(K!Rd'1oK('KH;9p0_-$ %F>NVuN1W1T]c(jnP6[#/#iGnPqj'%W"M:6%rJ^(CY5.P:EU.&;4_iKR/^U.sQCFB,B5@?23ZQ^00iZTm`jbiq)LgK>V]&_[_PQ&53t4iXS$b^"^>:qK,bpo&5ESg4'@!Xj](nK)64.j&S[MOIYRWfof6L(]X^_-Gr\WCQ/P&Xer;D %/[Qk&04>dflPi2@B^AeW$r*RPS,GHAP5e\]L"2uTktNKGgM %3CA&KW"3/n^pjLQY)_r%0Ugq1Nb7)6sSD/$cSk@TL %<,PJ&*VH_H[RPA\3l:sopE`q9@UR)'6TA6YrP,7XHK@-@GBeBcR\ck?6EbICQg&WcgNOphi@E)4qe<1#0fB8H1aeU?*%%#1dqh[? %dJa$TDJ7=cR%TCU^8j/J4A1lo^tsEZfk0/u?H:NAGlj%/9D%=KD6@"mmsLcIqj61#UNRD^lY%`^<@.]BD69]_LTuSS202X1!!muh %)cYY\mB(RR10JlV]+B1&ICf>GPr3n_[cb*ah>G]%F7!)#dC5h.+)lP@cjMR^k2]j\G\;h?(.iTn'Xo4GjkeTtq;uke9 %IC?LEhGQI\mt\79=P''0MPp@GrRX&=Pln,$^b3TIiYPsc5E-BG#>He`o'CV1He:C9BW`BR]`21SF!@=o,0(%6iC'@T)m`p8^ED$8 %@hqWOLK\NKIEW'sk47Rf!'Tq!_SI]2@YR,fDP>nh%Y0oNGTm6WDggg51LUD=fTOGRi8GE%2XVK!B!:lC<9K)NakW!0'P;(uai %0ah5&;5hJ5kkM+kKNb*^&^[5;Io-tIACP'u(>'cBKj*iP\^%sG5qP!,OWlfmJl.Gc=eM5dTb``mFEsVsqt@9q9.+K-6!nj;4gi%7 %)NSIlp]/gPU/6d*;sClFC8ZO2;Jq5giAB&YXjY7gkqH( %c*)C^5GHd"Y`I,nM#PXT7_E#hd']hh-dO=.V:O?GFD^eu@8s\?le8-Gau4EK)ecAkQ#3Sg\i*,l=15C"g5Ho(8_HSsg(8.`E06)X.]_$So!X=cu,fA2;hVK%U95p)E36&6Y*?P.$o1!XgdRm/qZ`UOX\RHb)E+k3no1P.WTm %Hp*TT5&GU=_;\0?KrlQ;f\6l_M037'gPIp#7me2r_SW,`!D7@#+?jrLgJ+h %dmYD(U<0lIh8(p>ZZJ944B4nth,l:lau)-"icK-0VHJ:<(@83c7C.YC4KttKIH&*([LARK&;b#XQ?WBd$f7L'(m\QY`IVA?0eC0= %$C^fXlG?ein.\liNF2I)bLl_"XCF@0Q=,.F4o8J$(/KBjAR&"m0leOo`B'A>^B/`u@2KamW`fXKqXYQXPJ %/9jC8@0u't@(P:4Yir*kf$SKlMdJ3M3?g715,thq6b33o<$a.bmPG3)c57@P,sW3RPA6eZs(808RYFhlrA'g[4#C'Y$`P!=r2a!H %hc>q&[@nDB5VVMt$%H.L65I:;L%0t*8-O0_/P4U6i4Fck:W`d?%(]Umrj5FO*n7nsbe!&Z@`Zjg<]NLHC'EDbccr',anG %5HUGsg/qPY_WS;Z84N?4LrjA#9EH#me)mp]0-I1;"qjBUPE;:mRjJ3MV5TnBqjL+YF5$QbQ:s]o=dlXg;fA,_Ojcd^X2$HLh.U5g %T6WB6Va'3En0Wgs,L/7qfQo<@;[14;/a.poE$ddd.Q+!1ju?XJ1GR7$e^6b<8'BW;f*qMDIZ>Fr&^Un(g!GS^)i6_oQTKoT"dRR= %JkA+)/KQDqq9h[h7X'Kgcq!`(M=adfVZbq#g^1]fag7sWI\V*d3:K@%0;F)h2u"SiQQuc_g!C+6EFWpW2u"Si(Oh;4#@@W+_G4MY %Hp*f7\T*&"=8KIfYsU-N^h'K^GuS\X(2dbZq]hT6=4Pm\l]CBf_V)1)k;/5aV)'QZt2OV!j9^d,f#>PJq)odl8OQ %U_X,$"Nmm?XrBPG*7C6A`oQ[[i&L-ZC6$B0.]GQj3YJ@PLraL,b7LB5&qM:%h7C"@'#SZV^'kV??Z-,6q<9m`G!C!aNeiuE&tpA: %A;InJKDYmtOrV$0Lk6e%1DZQ,U1/ok]`o`Zp_7?SobLCA#'fTDI%aoDm'lPd0B]ot*Y!>j*Aq""cL^Sa^jCPl7l7uneV`A&!S'mM %Np(4XMg#Cpg1Kj=Q/fFCc.2-d/&N61Qc8Q[OmDI!r%rj]IVQ)JffN8K[=kpM@e8XSIa\//BCX!u %6M%@LNFf<;WKnU+GTdfGXo]-8ie:?R`ekM3YS&aT5;g?8QiV:Rq,9'p1#mh&BSdV4M)C`Sa0.`uOs<#4W![Xn)&)/jZ&"gJOf0MC %_..sn1Ufl-K?&Gm9/<[g4G]B0q+?,A:Gjm^';>A[JXFjZ`W\hmEQbe]:<[,<.`fG9cgOsH,KR]2'/Sc75Ga"QJO$l)RGPPQlflR] %o0VFn%N`6XTI9`;LAlKZdCnC`WW=\3D_S#CB;]\q8j:N[or%c`1H]JSqD(h=])hY+Jq%V:cKA8gkL)S\0.Bj5W*#NCmBhgZC`pj0?hgo3Q79;uDNlQT'i-q!/9o.NEq?3:6d[3gQi9%FuKKdJVWr&HIr_ %HWp>)YG3]J3RG#5rerpoBSJNC3itOk^;pkpA+QuJq,0lLN!4C&o:_I4n@em;$$Jh,m75CM'&7!Elpj/$"f7I2Dr+4eTnEul %mMpK?LY>DBXmaBII:TtTg%RQ0arfkZ?WIJp\=/o7ip.+TFO+l*KWn'NdHrh4SUB#(Fs7`<%AN] %'(4j9GU6+dP)&>IR$9SqhRlg+kdp94^"M#-:q]0\T=7>*g27)m/1"o804NcC-=&AT6C< %&*HfommrW;30/Z>8*G5lF<3_1:!ltZ=Ij5Fa,V5iW".;$U&Rfd[,XLeU@Wf(cfuJ:'.7qiAW5eVrSO'Imka/7>b:,MqSO(`LRl*15FB)$[J$El4V/_Bi5'5O! %U:48$7,Q@_RW_Sa!hE=C*a;gGV+W*h7O2FP`:*YD7\je6W*\%Y",';7nq7UsZlqS;VX'*/2^B?71mS,rPn>K=r'5G]12-WPck;Y4 %@A:O7aKIMg>g6Vur@LTHXkQ]+[;mA@N4RIWC(QP6dpr+RPO%-Y(B'%qcn&*a5LG5!M;(I[Nms'cFnCa^9rot+Ce8ZYdD]7O0JnDf %CJgBCGaK#Ch4E3j@o"-\/(N4"6AEToc)DqHYO(1I_H"Fa130ITj&&Sg`7YM3/1?RM?;j#'E^rW4$C0T^XTEcim)",H[e%)`.NG)t %le6hf&s4NU7Et&o['jN%&FHB0qF#_4ncM['T4d]RaC=s7CeA %>PH^ncpg[\mW&-oF?,Xn\Q1q0K?cmfcO]LRNSA[Ilm-USQ_m:,hTlXX<>1mXH/\"WJP %;QJAY:Ql=%!mN-m`eXM`O0K0E][J>P"L8e0k,2BoG#b4Vq8r7SV?I+HZO6HTBPYa %Hr?k:8e^KUd9B8cb-`6Pa@'HL,aeu`KTB*JHgP?jBp;-ls$7>=gt%F%5d's=H+j_eAkQAq6?FpgLN@^%Z"0eOYhNZH2bE&KPkfaV %/7h"0bX!V#<%?a``)D&EV4+WLdmH]X&j?s5[@rrq9&cRfmF%k,Y^,!mAn6W;D('j[-%%jZ*cU2hfFE>7-,ZZ4GuG77Ek<:Rp*/Q/P_b$ %S2h')a^cn^gdgut*a1.n*tbV/B;_D0IF-4o#-7I2X:0ugOjWR]im]g\k,jL>o4/_[C7nCGY\GPR7cgR0Wt0c.UFSu.irl?,j[">Q %=(9ogE\`[\3b)F+9ZHbM/U.^kYqg\RY;9@/&55qEnRAM8BP\g,;6dtMF`_pp'YdtLgqO4B6!Vp!FAY$6^oH2J&1-_=fF##U'p/$=TYbdb@LTi]UoS9F&c!d %7X;)h9[N?5Nd])IG-6;*P$^kPGD".AOPJj(?hrHek`4k!@dSRi65T[j,(#QhB\Y3.[:*$T84@NZls._r$aAm-ZWLH3o(&<-Qrkjb_APcGB5ne.'AEj;dm5 %K=[cOKUd[4>X4SZd3YW9hV$VYBX9O3*@R8/.CU9Ns5!JP*;A9)hgQZb$i^n09.3Im+]o35\DW=NZnPT[fSMFEM%k<(]Pu+0R4V:SORdZJ7c==?m9B=2`-_/YH/2icqKV9Z8Mu>W@]b4R==SfJ.PhHX/DIBqnPBG %c,%i[*c:baSZ+qer!J^*.rUSuLqf2/#UC1/)0`_17f0ek'f$MTK %D]:2-]m&E8GI^B%k*.E=Bf5#8%[5AMV+d%h2B10AGBssVNY`.q %iB5tKZIm2tpl'ReLPP>c^2)_!Eqc8n,am6T7Di&L^p)0KH#DG@P%\f#+0HC`$c_q+GFHjX%e2dme?pi$H/"+#jqYo.%]FS5SL %^Ur:a"D%(k7oP`]K".?jCU?5uoTIsDZgkYVZ]*bNo3LrnfS",Pr/+\%5HgN:rH'q6HnCiTf!.um#(KPgT[@[t,_*=A[*$;`i5EtU %N#0f$pRa7Np9$7d_4`7AKUf>,.;!D_mR#gMOf!Y)p#]a+:?tg9UbpJFEe")De69DTh<8-&2!g0fDGQGk.//;u;;CogSn?72:IF>G %?oWt!Em`DJ^q"]6ip+?B_:ESsr4B#QHFDn02?k)>L0/LMm<3\RYjr?r0hZlWj*S#,A(OqV^'BSSn@b]^9Q(]P)&3"i\WRk_5rO1M %q8)FLhP]>E>3_0\RBqlX.pK0qn82Zl"A]K8lfJ0!qp)UXQ*p!(cp8M1_:ZbnKJ>*hGFKKV/QC2G.-LWT1QjlcRZV45?Jg5+T3Nls %M6KuLcTQJVs6qmmU$E>/pPNAPlF2+Ojne#7DqS,%UTl+@WgTO'Nru^C?tW,74,K%frBSc3MG];flh(r8#5Lc)G)f0;:J;=gCi->! %Z.iJXXXft4pi">m::`BS9^"XOAL`LX@/!nERX9du/%tP\e1Nb>+dmm>VlZG"](s0,79=Mg\/b%81HlbR>0k@=42.7?VZppW5Y0mX %mbod(LRtZ;MktdRIVl5`:S.%efLl^\59:BDL=]k@-KCAY\4b><`WM0ADoT9i^VC/1(Z?J*=QO-uH"-=$CqZ?65DT)l!dfM$I95r*LjUN`-Jp*ig[KiAtH.t %,+Dfl8n^L)(aQT.bWk)g*S(PAV9]nVets"/(j#[Wa\$pn(1FtTWgkI?=V(9!ljQRd[T>Z++-?rT4SrHRhEclLNSc4po% %8F0U6qbJXu0ro?%F*T#N`jBeEEaLbj`n`q)f\GS/.I3B,WQE[eQ?eB,$#RJ\Db.(F\-U5mW'^A,?VU[ %IPHU#0MYWQj(%)]ENA@N%?\T7[&+=#sBd(BknV.[m1B2]lY!?#P]d`VXci@8.2QB*N7IZ]olQH=dA-6aKGiB6Qa(U*hehMb)?;AJNMbVNSLi:u!4N*2"1JeD+1G]V-5(NcXU;u(eqkU8?GrqWRo,68g[R*qXVZ]Y9@&EM,:_!rmLj8%:[m/ob[? %-q_2B4;P-O.rt>+58a+;QDbIler-9P$a#]q[9e'D'X_6]V-_N/*OF=TU=9P^T)eDN=5Re`A9iQ#_b.VX-dFYRh?tGCLlZ&O][pK% %foF=f7b6No1R*uQ$_O!#E:K.R]lN4W5;K]YH(XdLd.G>ZoqEl-P2b)>;3ZCcKTLGd?5."Ti#Ip%*[r%gZcnL@#[SJfb>[Z`^kdd\EgT-I8Fq7ft>J9dght(PH:D`H\M,NKTjQQ^md<'Mfo5oOf0N+;TPGcTukWT^Dl-eJ1<#1LQZ-lo`i]LM:pm2OfQbgH#aNEo7)Sg&]`V+DiC)JJoJS(pQ;+EUpSj.M= %>B<5e$mdnTMP*=kE0&CWQc/K;kpq8:6%AFuFQm%.FAEI=Vb?Il%uj>@l06'k-%1JK'Mm=k;FXSlk!3&]dTf<1+nY+kUUjPO.1;O) %_1g8"3'MMg1Bb&l$NRQb[JE18St43UI26$5X4k*,hmrs8$S-=A`pp8;Fj>fHomZPM*d`'$R7jY(b!DL"ccRZ2&B]adTc_m %"P^I4fhp0TZZB\#dVo:*L/[$=NY<;<\!9MaPT&oV/qh1F41h"j+l(lW)hU#']?B.,I65(9\@^+3$1.#QGB^TDD_49G1]L,?.!^[m %H2W[^U?$ft03m:_?,(QQ/.M'fS9VP::#;f8=W1>Lg5W^dSY<,9\"7oI\BCQJ2(W(^iBU8gEK@Am)l\6>,\HJt?*1*WI@UZg! %3A(I#^AAD#$[ih'QHP?LEoqlbkiM3ni>AL*$boLCC=jJG$2Agm$YC()!]@&RXPs:=0_DZapP!UE&b/3#G)H(geDrLRi@qo+sAkQfArNp(Jq(RW6J %=W>1#M$N67?1l^*BlD62]''7@+;*+o[D6#T[P+Ck %+AT$TL$d'LWY)AaMo,1Af!2`m?505Bs2/=GBe3l23$n`>lV6<-CIf9r:o]>o2'`SI+:EY/L<[kIc&2TIrQ+nX%1+F>dcSNb0`851 %I2JY3%)W-k=3bgqd:pkqL1)\c-3T(Vd^6qb4..p,Ok#RmJI&#UgJ5.6#7X/_jGKCA88'^LXu)!> %*#*cpcnA1+5.QDY-H)r2#NdP(pQ>[A)A:n"GN_>dpo%E:$%+L51_KG_lD>$p5:<"noH#2%a+iZ-n?E&:aG2_afd?NHn %Am/e;n!fth6^FXuf&NT3T5T@elb;?8i`/e!I7(`gL3iPV=,$*0a)/dMG/6=bZVXS!VqIAE`%j\0?r/@>)TIMp3WIO_&J]c70)+o. %:9O(2H5aC&!3Vdd;88ZE-$!\r,BPCga65s2;8KV^,@i(a5XOaP]#\+ZUI@IW;Lp9U9II"I(Q?BaB=?L(pI4sL!ICCP_grJM5 %4nE:eoBoQ/`R3X"ba5UXO^H.cmEADhirMl(1r/-\4Vm+LdM3)?5mn4"M(e,gq %d);W$Dp#i/JDiABcF*JibqV?NSR,d9I%JrUQVoN\&+NhV?;1;lGgZKJNIkI\Ze)OJ8OEV[F8rpuJeM3>+s?(R9c(^NpUf;D"G.jo %jsstRS8AO,/:@bs\+:@t`tMDDP=X\OC,WE.^FRXUA7>A(7FIa#P_\IqBJ\N?!@gZ*0Gk1uG!4!6L_Xo %jqY2"'j@1FlF]IWZpJ&t_Nl4gSfI3"GD'VLZRNP9Ymuh`k1b6/Cqcf1gZ=K6PlL@2ZiB_*#]nB,D'\XUh=Lk`6`bWRDNWP?j_m;VDX)i %JYIh;qsIa7a2UVclk8:<3h'?uO-Oc_guX_!'i(o+KU1M\WfkK=jo(`T6N@[5\ok'ShQOu!m6["7G]?e5DcCQs:mgHThT.2d*c'`) %`Ec?%kZuqcZ[gp0^;QMl>cqt^Z*WBuY@qlp=7"WnP1%RjYiTZP6I-$(_j7K397O]Y$sT!h]Df_ETQ5:lp@tPO %8,kH3ailnSJLt4&s%4j)RiTg-0LT!73BQ(b@/-!XVVA/.j<-JP&fBmo %=!82DS]C8WdC=DY/hb]X=ua)1%JB)"4JIh_#^K`7KC>1`MF'mp*MY@dP5^?UOG&^W(_-@FoM7.t;?;LH[j!(p7.>,W&.S81`_&92 %m,-6[?*18':Y3VMmbUq6UZ5f$9g'SfZq*Y!khdRT#/$ZsU\XF2!/_&U,"Q>o(O,nF(R)qt^I;`FoM`81(e/2'Nf[ZdN%lS<;N/W_ %2cF!;F?d_J?X&6+L7686%1Lb^O"e6CQaB%3^m21?(V*lo1kZJS9j@a:&,h!@A.-qQg78oXX.c6Sq_Nu0$h4i@HHse)rQtbpj@T'f_)eU,fPYje9,/s7d+lr %U46$k>`>0B"J(-O,qZZ-D4(]bo/YI0D^pB/IT9a=^$K&k+"ojnX\=Y05!ZW0o>>jp%h3.Ya(0HKq&uumI$<[*jG1)(@ZNL6]?0=[ %5,j=!%-Fr3nkD9c\I)bgYLmG?S2MI$pI[62^#1qQ#U9L$M$GCCN.Tt>`WHHK:lrd*'1SuMEU(FK^bgc>*hHdgD,Ws^Bd]dO1em5K %fD'br_58Yp!T;@\'b#*/$H&\N.hL]F8TI5R'U*7RgAD\`%kE+O)q$?dC+)7gC+$"KMN(JksR`OBO5Pk66X"V.:8lj4QI/Qs]0bh/*Mo%-$Y(#.UX?aPM %0-"VbH[/A-Hsf+^$59fS/&3eq\8O[aT:+&d^C\UCD6.D-]l[bL\SOi4%\b\p%a$VUK))sHTXLU"7A-@HW[,KZTdU5%2t.Q2'jUsNfW?Lht%TOU$9FYmo>%Z6X[QWk%)VZ#if@f2CtDn %1Y_=aGXTkN68r[8&mG)]abe7(d3Oi[c^p&qr&+=Wkpq6.7?W!VYqea(:]rT4246UriG@d*7e;n>iD/>;@^N/%(sPj6L1bt1f]fl1 %q_4u\4slm5`t0V^&"5-KCd&h55/=i.fR0bITBeQbNlae(h`Pa>*)/W'Q;"d4-fVMu263ILda.'nB_$_I$iFqeEjOg4c %`Lq(=q8MT:Ap`Q%=uec=3>X=a4!2hmjFa\(T?SaDaiDh8$eSjakI7+:hODp>'@Pi5?NGiBjQU&VKr8d5el@"64p_I`I*A-f&"?@` %T?5,e1C:[Ek,U"G(7MV\DWQ##I@5Ye*s!'3RXDuE8o'7sE$+n,12YOa%dq6OHs@^>C23(u]7Nl]f#GR5T9%5Ec,o&qe4YJ?@E[J!Z %op/]dS9mu+QCBW5Y@,bod_s3qitXK1^!@67(GSq!LAKa7P:FTbM"GhKb*\^OY\hOZnZS56f\XjZk,ES %YTZkJRFjje0R=JOLJ6*P^@%HGK#79onkBR+M@_tiY(dS.LCc?H@kgbC"AW`@&r-u@+5N=o`KLfUC^An,'Z>cg)/Q2:'#986OG;W5 %_Y=\ZL)>aP6MM,/L;7oI&0pAID]'03a-(1T$R'!eOi*"\,"WA?M#a"fL_SN40;p%G*fU=\,h5"@.>"0kFN27\,3JQNTPF*uWh%bi %^ct;k2GGd%WKY"Q2":Jr71>3k+0FuTJ`eGNdCCN %Y=B"`"#i8J'pk8A$a4&F+(a:?L9JLQ"q'G%%V_0]]^b8i2X_D8*,4\C2N\SJng%_B[C4=9S+,2/X %"MRrl(cc#>W*&uGM\<1DkJf0#lrjX^59fYkZ[OV0d"Us^JAbTs(teX1.7+dP421por!Y<#&c!a.R6hu?(GS>'Sn];b,8ZJL!aNhY %,8ZJL_G/q[0lf1$BsUS%Br?5dY,^+47H\n %E9XCNHiohr<0@pJ]UBN^K/43coN?4^W?kYTQF[rR1,re/Mr%8uDju\S8d+a)B( %Nb@TrV/:30hdSl7Xu2S!2S=?@Bj4hn9aL**V9ArG:'!&GM`=T^MEqs+K04/Sn-2l`"%^o_=5#)aF9eBtd4@WE-dTJG%QOO*37^8t %7aD)@:'$G9jT#EB*\RDINR!cm*nSM";]-:Uh1%,*OS$'2[^`X8n4lo^P'L.N %J^%]DR\XS1EBQA1l3G:K\uoWX>4Q[,N`N7="oQ$7]Z4o3Kh5tEgZOGoC=NoX1o'tSH_oZc?Th\2U!J.s(#8"flZ71h&,d3R,C2;[ %NgI0di]1h7g]2!q*<3o[Ie<90K#`a=UMFh@X.IZZ^X4pKcP>E]30kS*blaeeNjP"kNNU+1O;kr&CNMG0GcRf.OF$jUOj,Iq-.4a< %D]#grUa-;T&Bo`=IR0nY?!#$KX6*$Y+AS*=TbcdNe4?OWh3$u^>1O5ETGE=+`ca%bW'so=\&Xg.+#0^J?l#7jmtY*#`EF82684># %JTmh(nm1:K(4o]Kjn@&5QVmR@"&MY&(u.3P@i!FQLdE]SUX/XA"e_0CS1@@5jklCn&08.ibQ@^#.+CT?k.!!9&8EAU"e$`+Tb`5_ %TXUA_(1m-W&[d_T#Q5?DeC&:0.d59^NaaXtcncjQ[=kI(OXp5*SlRM2#=Bn$!83;M9Y?I@Ye9lqn.<4`XBXJDJH7:j%hW6j.kU*Ft)&$+33O6B`-\r&tBeID1lCTH[I[<9)uKFAY%)#I`I)gYi/etZ\[)a#c? %lVWYp11EBr\`OU;2LW.J=HDaa0IkFB,^!adY\oW%eS9H5IUY1gHqAhFB)RQ:-XD%#cKOoI)Du>(4?t#J^iXG-# %NS-/rl.J6UZ2E]\^(@nl'Z1[-m>h%GVg67DR>3O:%6P%YdHigh?M57Od=+HGN^OKrTXTkZYfNVKK@Q,h'rnHlbtN&3cmQb>^G20(]F6b>m5H`lq&"'1g2B*C=K1SE=R7sPn$e=;gKk(( %NqODo/Zf3sFL+1"2:3iK_)%8`<1O%R5>LpAfi)UsK$&3&[AWX-cKbN)S,V5):)hQKQ+_<^moNIqOp,Gj(7GE?A4O?j$]lQrguH\U %"Y)W-HRE]D!)d@sd8m,3D9P>QGTP8uGj$3DTioO9Sbudhb+l+]$iR$a]rm[65QJoeA3mOJ5FTQXA-(h`)pK!SnR-Obkn=T/gG1sL %#LR3#cA;ckZf(fX)8d*2Y66\4E,6B1WTGoZ#Acc80>A^Q*$Y]9q%[kGn6f@Mq%ZK`_ls:6/*_[+,=cBKnA0MJ'hOG'YW.cF+2.dFBY"Z(m\QY"nl=m\LRs#6@))\0eC-cS&C.l#mOIo/1s/JJ1Kt% %jM7u&o.,,&FF8fhQsY]#pH9C[@"(O_ref%+=PI8uCO[B&$Jst/^p!sA_CCZ#[9OVj=_@RT*4Q2t0J)1o^1gKeh^M@=:oj_]YgdhN %(oqm)'mu'2`@>@gV!C=Wi5_I/flqk=hu-pL]fn:/1Sib6ur1cqHqYM!h9EcBlg*RE6N#@.;b0C`\46l?J\uX!_kH[M1D*S!h',ZM99Pm %hSj3iZmDX9j-X,BZoN!sMh>^f-MG\R'\O!49G:k%-oFkD(pTMC4&`Z_erZC[65)YG'sF,ck;O\DOhk*+a_;u0#HVF0EnUdn,g"?g %)La\`jJ,B7V9sA<6M6Wq7$1O-s6^'>7%dH@(k[GRo/%u$j'f0b\/M+>!j]P=O,eE4S?C$,5bBP^fT#1 %HI>4>ZE^Rm2XmPcLUkJ$G$ds%+Q(.T]p/0A,+gNqS`Iois[>?P("@'j+>uptV.T^\^Ca_eaO44MGLs.k>J0V??/=HeKG'h*C %e)G^nJ.n!`&`#&1HE887qUe;BGi"6l9QpfjJs?_._mjpZ=;;t;(tD$ %*/>c5AV_Vb[lE-ShBETM?qE5JbMOoE)JHuL1(/,.,sUaA!Nh8aYGE3=;;duE8Y^UMoFD`t9KaRQonpUZ1b"a=rU`%(Dt%-anVYCIk]7ZrDo%1TlT-YC#\=Et_H82:td:Ip$H\s%h.GR-$VhYY)3b[bKO*B`DP)RH7O#7l+3)fr:r#7m6< %SU@9KK*U083t[=;f^1n&`!e\:@\^tgBA3V%1R8MgmLC9n^Itjl#7htiE0h$?K83.)hSdY.XO]09M:4G//>E_&Ao)=JhV!P:*B^,_ %#@,TL*'E]eC*rMM!!ZfC'"X-F1XB^81oGt`tU5H"PkV[GO1+ApkFh^IOTO[PXI\u^u!Z`6g0IX@VBJ'0e %"NmOCG.$k+,7bkQM@$DWHS"OVnor73EB6'm+T.&`j&MEkfdCI+L]CSeMh;4[\]4Zbg%#u2Z %'bN0P"t3pbF?N=!TE0q;!D*d8k4Ag<6#2t8-^Kb*5Q(G\D-V;Ml!J+/?b/8>?QO[X[&W\Dn[pKn4gNC$>k %iKOWO:^"M@1!Q9ogN:=Kn=0APna^@S3IF0m$C %,_:$B+8Jf-_!lBN+8Jf-V@M1\4.QnijH'%\;G5qrMeG=aTU$_VP`,L=5FFc#Qa61C-%re>F)X?aN4jo?l4Pd%F_*Vd/taq).A?D> %*Q?;RTq>f`9!;k5BGD9_BWZ(CKCh8rtPZjnsAf]Lu?Q8LD(_='!G?H@o0+^:H6VeXMT< %Gj=-:9]Ab=L?@PNh&FPCk$pEWmIYGH]m6R516S.un'5cPS4=I)\!9MaPT"p[E-OF^-n1#^%Q4N,`-E'`4#/1[\B^jWh\#3'1;u-C %J%aNn(p!%Z[E38>eR$DqVZrWg;/t>Q)<+GL(o$5M@d_Fc.2PKj!3`Blh3u?DpNC*+lulC@XP*GM,eok@N6D %dsC;aii`)-gXCiMCSp"'(WXI'5"sHa>(;PoEJdDK]fnBPF*pf1qiNPP"mfG=q[n.F:+!=fQ_tHOR,r@Y`W%I"^@OhnJ%EAol2(B> %?!l[ZLM47_f'EVR\j#aA2X<.0%PdPYB5Fn0BWSXGcaha?)4V+8c/SB4P0n]3Dk$EJH!"nu2RRK%SJufsEguMb(om>(-h/c-9UABN %KP;DNP%+qXf&Z$aUd%k4`D50<8d`!6>)Ni(J<7`:H"AR5?i'cMP3P=>rDq=PldX,#9bd`02-Tk"Qi)FFDCfsV])]$m^H-S-bn=u^V06W!a!sHL_9Ah*I#XlHpfWukZB\$"G"k_fa3'H^fnOY0-CEp![icD]'buIKotD6SA>`5pc2ICr$.bq^6(CC!2uJ!:lWm87d#<;LQmH[gg$[h;P#ju4 %&$lFtq8=84'$7q->!N13H,4-2h45KS$KF9>5@l@R@DZ\J+8BH:MT*hjA`VL %a197dhEX_7:+mdm"@.@a&0XZA!o@^ZADWFU?A#35-Z5F$%EMP=OTA*9._B!Dgt*i)bRe&j_BId*YU5$bn]#r2Fls\)USUJ60OOfe %6%/!+rA!25rFqZ-o6S)];]^6DXCL3+lmbj-*l`1:'Zn1bW:7/Gc_N`p[$j#dOH&aBiT]$?^QblK]T*$(c'BhdLr\Ctuc\ %Q6,\BDBu]WZKN9PPEu$c'\kg6h&OmHJ"4+'T)I=?YT%8i[>5mPiWa5).(%0V`17!gqc)90YaK[_Xr,\L0"m(\Lu%s)_;5@4>tXkX %X)A'tm87*BfWS`QC^qk]B6ZFacF,W`rB2O1QeUqKqdq@(6't'5R %Suh;tMh3QIo9f`dA8&4>2@oMG9o#VSoTlAT9:Vmf;U+$u)fJN=3Et5:.&Np.n&KDl4^H_cShABN#q]Sn[f&'ik>-bV](CCLOLRH&WTKnB'lc?A*j&*;4C-`HR63WMVcKDkNTk* %@"t^TS>YZpCLrsF])K6@VEIkIpM62WrW;MhO$[tXd9>9->]0lr^Sa#Bls.(]ZTNE/9Yk@-b=lSfCoEojUT11,5.\<8^r(PR^5KK! %b1FoRG!rOo@Jo-6)`oONQIX9[2tjRAbVnl!&f[C*hV2bBT"[C+?#Io* %[8N(1a)mud$^AR.3.[:*CKH\J*r[eKmOl"%DLWHEG8IFCYtj>nh,&Jcc9\!Be.'AEj;aE%U9ZUHQPAd67r+<_%6<%nC2OJZ%QWJF %(Rk?D$Gm"*>Nh#SLN?Egk7XkBEa3;C@qN9=3Ng#;[A7BE(cX/./.r\KTKit(N@m1e_jR5:!5?$oC7B4+cLGWu1/J'?06AS"%FhV[ %C5<5H^sGa+_[$\#^gj]*_h\]M^sJ"<41J>N3g.e9ROk0Gf)`QmjVIp2E02+0H'p\+@V_hPHC^Yi7p7[Q[OJ@k8s5T/"=)Jk8[M[a(BeU/tVl+1QNc,*Db#LYTM7#RUmu4hm?g9iarpu=URO%UP[\BCnT['h//lnG!U`;;3fAABif)! %mVW\O#"_>QX:=%5$ks]N7:+-,IZC!lb5Cijl0"/((YK$o!r?]),5iKD,7MSqLpetma1"?Mr/,1bdM:Tf`\0g9 %Q\-1OQXI)).6]KPl]56dKA+SB2Hmec@68H+XZr(]$p[&QGOtc]AYQs;J+&us6T1/t$Y\FO6b!MFWoa,e`<5ar$VQ3BmIT)X4dn12 %1jOLrqfIGX[]_3#)XaA-VC,4)RnG:b/QC]C;mE1C9ENfYX!O=]f$qfcmiqA8N0a=8?1a0W8^66QIZs7,r#(F-?RC22f*#l*I?O-B %bTH!C@c45e0[*):iY.Xa\)pKdB@OM^h$e/-K`*rL5FcU:?llp\hlDCT70CjHn.^;[Dj-I@DYgVagFQ>OBu`5"-hZW"?Y[h71I9e4 %q-7S7\683*I@_u>f,q2Rkt&4rU=@?PYn(JgEMS,jViO="h<"B*oi+156N>ldHdAh+WC1MP3B@@-_+o3cQElC,:2]3P'Jm2962Uq% %MVo?k/+(11[=qr!mbpGY?C)*95d9MH0_,Osa7mH#m@7%%&6\1\Kgt9egCfH]8"[-j[!;&qISd(7K'&c$-rsdR;RXXdP(s>-;f?k$pA>6_a.C[@Y@!bWr4-QB4e'lr8#D4X*'2>%,]O6,.`,7ss.g(_W"1aj\igqX)CZS#&3g1s/=RH$otR %T3TWO1ffD>/'P^)@]mYf?#m6,7lk-b\kFFCbq4/P@ZQd_kQ+(.dl+CXJ"5rlMh3QH1FGJqo%ReC//]Xtr*nbudVBWmgFk/?kN*Dj %9^O\3pH,pdC(fRm7Q#O;!BRt %/e*k/^l/!u7,0n1^fEs]I:2\hc.4TM27[gt.t4'B.5ja`j66WQXm,*`kNRlNAJ;o/A]O\B4C-k`0O7uD4C'o[dVs=`Hb,LOA_qo. %>Lr=U.Y%>DO:/:6ebN$4f@B#H3'.rE';*s]go5kpls/]CFH718&Uj"N!>1/rk5n\k;;Dt'kE9Gh5pG]$d*#oLkn7IgK"%,. %=d>bQbSt-7_]aCPR%MRMmksU[Jfqnsi_p--#Z\smV$[nAWc7YTu$Nr/Ggg/:N'%GURa5(;\A@f< %kW-L//S6Xa.L)/H!M,mPJl=OAM\*5"Y+C'b'trAf13HQ(Vn_$Jf?sT!]@NO\5uIg`1'9HI/8AuLRJ`Q6ap`AZ1Hi>pne"$YR6)T) %TiXlXiog<b(Vm(o0BuS7!-;c9'I;?ME>[W`mq-!_G2[=,jqn;ZplU72P %er.E=A^-$e=R/CaqnbE?nS5`cCgUf:E/[u(rt#reQ[44P6U8;3g)_k"ag#Wp-q_22N?#:U.q\Jt(DqmF+4sGL=mJLRl=FuOJ[JfV %k+c5VXnAF@V1GU!Auuk=WU=Q5%IRNR4Re1&Ff;.2-JdOY?g.^g^>&hd %p*R_YoqGhjB!/N)[9aQD?3Yk8;sQk\p4Ao';/bb]#_c %me63epB'.l`4oVpI,AHNf'TH8^,$[YIA^=)`Q"RApk.gFG6I?BY,+HNec-,ahH;(L=mdb\jUV,+Dfl8nIQT.d-RAL.J.<1q38LCSmELneM/t>B^rgk`=&"9XRELne%VF9UZB\>"7 %6nI,s7-(sn4^F@:V3X):(LR0\cdQIc?[P"BE)P_@]$(l5BHNhse"sZ9\W]O81fqN7:m,Ot@2rg6i'g: %"+BQA/4]?FtU<$qSFT-c8APSqq/Ft\Z_Jpj6iR%m-WEJ-b[sF*4cI*PmNYd92>l` %n*Gqumb17H&pG/'qLP2CI,&"@:(HXW@Wcn*H>deb4KSH8UZp`eC`a+M/''4Ng %guY43h$2.K[(+;GM/pZ$5])_o1nZT4'AS8pP[;iAYd\kWV*!iI=^f1Auul'm0d+A@b,j&P^<9=Mu>`AR$.Q'j;(V'L4fTVpFaDF %)A35_3Zr\1)W#sW%L*>I(Lak/KE3<3-\>`nOeX %0FV;e8JV`P0\Wblp2J>8,RbN#h=/]I4I]R"O-T;@>30cr*kOQL)GKphBSGE6CIkVck">(#?)`FH.BiXDB#ZtA&I*4Zbr+:J%"N.W %Nj6bXj3Eho.tI)gR32+V=Vj!EW\&l>'0V$I/dboe$h(nmM6NpKoYaoL2[_K.I&GY`O_\W!>:"s2W`s.>5L33"X^J5ak:o95L+Y?J %OBb.n`JLaYRL#ZngCC\!%>LGj@C_,G#1MH_(*]iJq,jTh9(Nj8bZ?Le"a;^4jsuhn,&J\)Et&HE-->.e%E[ilGC)a=)FCI_06CBT %)g\i$Rom:U(qXmd]uA\?B'`EZpM"q`QO^@KCoJtpSpJ?/-,eHtA9\1X#\+^`Ao9n!]+YujQgn#,82'Uu?"Yp9H0iES0Qt8bSB]b6 %`7X1DC*(jVQ%)G\oHeK9G$/'a1t`BONEmB&nqJbLiK^BnpS].nB^C?+Sqp&DK<^=WnX4J&"Hns8+\]_h*.1+C8ZOu"b\=5E&&-%9K7+uq/g84eX<+`P %]7_$59_Q`+Y)?dmQVXVN9Oh-6&e6;QQ_uS[ik_&B;qK"9fEKTZ:L+cQ]%6Wn]?ko1Q@A@VJ"e]Aeh %P9nnk3gjJtZG**tY"lE2*2YP[0Db`[&dD1"<`qaN,-k1]K?/DVYhH-]P.71I?TUZIIYn59&o=d;W4F`\0B$RfKR#02!f-j'%;@Y4-4u&*.Ce5Y#)95=$O`%']q+\74;7\k0m7kk^FPr%AAS*sUGFo458MV6$sOe-[%5eY=W3U"gZ9/)^R+*9bB/68>]3CJEG:"9!KqgMnG@ts?7Q/E7AAcLmcWD]@OJ-TOTiZ0LA/Dt!'i!BKANlRl'YSE) %gg0WOdWPeZlgnu7"hARH#8u)kF5OcGD5_+)F4GC"38:'>*\WuJCW2QFkBK2na^FGH\'Enp^RADMZ(<'6=!IfcjM`#<'*$(=5S1H! %ABqqHl=skE,C1@@SsPORjC"EmItUSYjk,cAK5+q%N%Bgg7\8`8#d$S9`Q79.LK>^aCQ@ung!^9[C%Ki"L$WN-P0BM!q"\(Mb;XJ! %X[sc3EB-aKV\T%b)$T.;ZD86#@l#OF=RumQdg?ObPUWet4g!)T*b^`Kna+Bf0_;V_a0R/6j*aS?m!/6D/j4R.^U&ho %A!a<[/MIPe:1G+$^^#"*`G"UA,O6P`CP+[[pb[.[U(0P,I)OBVP=^^*>gS2EiuJcYf_Dj.$B?8dhOY:qM03fl`WO+/'Y<3__edDR %5^P2<`^e=1i0jtoVm-W$(P^T;LnXA&VaPP,Z%^2QGi,$rnIZ_P`&YBnakXeil38));u[k5/f!2U99@bl.IUjGSQlu[?9qdD.lC"> %7BGlC:M"cjQ_e:ELc676*d<>r[56WFGHaP=GMuKU(%$f`g$ld%#81suM:)Nmoj4/)Gb'0j.IN(a%1as_BQ7,?Cj95G*)bQ,@r9]^ %>4>#DB%Z[^CLPQ$gTZrhI(i0'AM;@CWTrVk@\L,7JH'pg/Ce+)M8bPSX2NF\mKW[JU0"-6F[p2J84*XN"`H*rObOA&CSl[G)ek,j %c%dBVng(?_0TO9e&7:gM0Re@(D_/?fQ1&TAXt%,[r`hQ:k07o!/qcShBPQMi!RglJXac8gH#^3Bffpm#>r&K8SAO %^)Ue57r/Ze$@qEZ#jYKRg\!LfQdjqGo13>s!NIn#n+gM(g5 %Ap&7HM];gHfC=0c&8JlIU$$kW>[_U$2RK58n`g[&%-#Y[AI9'YoPVd$'j7Y#/__l[? %dZo)dOXhY:B'lo1>n:G/@sUIgKJG2-EX_mCOik>(Wk@g=M\A!>A[ql]*B,\5!JU7;ImF^W`H2iuT\((5TJJKY2Yl+3!UT7/(/^hq]_Rj3!V6?hD>m9OpO@<>UOGCP0)6La:H!0]=]P2fUOnKKH_RF;#2Q>?XofaEr6DlV$](P*N?W5SgUpjN2[A9tf-0FGPS3Z*r6]I<.t62eY`kee1pN9;%#[1JGIW %V-/iM/El#kJUl!QA=NmX<+&5D=Zd\nn[.Ga2?`qUFFUfNF:*]r]X%V&j`D2G %3cNY?Ojb0Y]/RP^q+t#/4?*iMZPaABZVbVgrB)a*s#Vt[i9@*QZJh(@J+9[/aG)&g:;sjE=UU;u(g<[R]0mI<95olnWBL\bYm\j] %F/9"-9X+u>7a\B@pYm$Zh3]I^,oMp9_)*5F>ZK=CrfgTNM5W5oFj) %:SmIT4fkDMGLBO(Q.Ln#RF;^&YrCU?<7`j".)ec_$dPu/[!=HK%ZU"t)OeYN-)U5Z^G71[nM%8);WhR`YsY;[=Eto)hB@*2'<'D) %eN#@X"RLVH`!PcY!N42ko;iOLL"T5)BtK5=/(AInX4>Fdf2B)^\`Ld\kf=r1SMqUnJDS@'Amr,:_;028)A8P,7Yp:5E$\kmie:A$ %IPM:3M.F1P[;[>b&7W55A;BQ,?0F^c\rgNCHjF.Ji*@dh%j>`p3:'''+bU;U2tHWS8I-D)^8\9I&As872T2T]ilQt;cO(=:%3L0s %C(/Qc>fRDHksgiTnKI>":BVb+5T3fX`C>hWam4ju]!:oS;=bs4VAo/5GaLBU9K/d7n$BJGom5S(b6`T&N1N %[3Ul?pXrjpVj8T1F3U!rdZHpQ](rf\OcC^C2'AbBM2_%fFX*n4M0(!dPU*=VM2XHX/?U:UFE\2oXnhHZ](\oAFMY`rk%%=@8`Z*T9h%HQP5OqJGd\k0IS&^/`O$mN\Q:L; %8\TNf>[*?s^Egpk>*?>VMsG%9^YCTY\8@Y%0d?a'OpJh@iMj1i^Rb924DG!SP?\9^@HqS""/V^oXm'6*^kZ8@NB*T$Zt5>>NRU`% %2CZiVBq(@,b_25=A':k8:p.OW[3Mchi)tV %+UU3'J!4Cc)BMd@?[H"JPMY&.pLMuOEg4E!_,-cE,#fjC;+kdca4YZ^`1'q^[bj&"3'o2#d6qTe:c+mpIsI83:s_W,bg2X^:g`L" %Qr:+BY4TODp4L=U]ln!R+#q%gT@E10'"Ca*[7BNTPWe]nfuiC"]ak%=[&MZ=U<+tq^ip@?mpo1%!$hoeOa?D[TPMfck*(*cG2PB6 %!VdS.EAAAD9+p(;3.G"*jL/Eme8*OLbpQ4&qa@mROe$s\&[J2ENo"l67i>HTLh]lC*As5P3Gi%1aFPlj)S"eH1?/B]i<<.i,:(&IPLXGIs:CHNu06]f/Sc&FD[g` %kl(XF`B$clEpM)\J/e89TuD)H7]C10*)H#qUHbJc3n\P]RsUYY\$]a]]BBZe^,UDC&9d^ %e?rH1Z)DZj'Y62Pr'DDOmA4Sk=-_?G,5\9bQEHO#cNm[,#=caoMfp?bHNlr@@gL9O%CXtl>/jEALA-nFV.IBX11-H:Y=M?M.:ls= %M<*:?7^,S1=!VD5@uf=F$\;m7i3DW-VO,>H0Re"Pl@Ic"`u;V7AA<].^4>/'![%(g.GDi_VJ*[5Z/;4< %)K*=+qdWU-2f\1C^.Ch"+b7BS7O0U"m5L3PSs$ml@?[WoDrTDf,jNsM3;+<&WEQDd]2% %T_2nGpNV,9`N;*!=Pe:5qi0K3BktCJ"8#MN\FV%s\%0-]=T`egm$coV=nGt/a>?QUUbiFW)*QM2lGZK30?HZ`R#MeWXsZ^k[!:/[ %$oEl^7'GXET+Z*2Djj+YDmG+Iaf.(sFurlJ\W38mDg@n8/4S2"+.C08AC8r9S7i\PM$LA&cBPo1A]l,GR=Y_\11sk_rMhL*`3o1#De^@H+njNl\H7>UHmHiJ(SI$k#A$?Mo\+-c]e#K)$-`a%V5!7eB,W %=G$>`SP+!P=*BK@Sa^Qbhn`N4h58T&#QsW-p1)GZk %QsY].pZYXcP0A\inQ1FPNfMk-;W>Qt"S4-s'udbg@7.U)pn62ldAk%lO&^"NKi-I"9_XiWka2-l(fjKE8nbs+33e>W;UJL8>d-i7 %Xetfl6Z6LdJC],^rgZCi(2u[Fj.S7E/.&p*I.\'I=n]W\K+ss4IJ0scCMTTWX.;e9#-7l&hD=:il/`%/2C+^p4 %NEdH]mkn-@)nFC'1_G'-,83M2,MITAKO9DoZiQq!SFMkREn[VPeEGp+P1)nR/Jp:Ac/D:d-]3cq6kKSs7+<7TF4pn_6-m9LS2Rr( %n@1JqKI.&]kN$QcCGRTUgQ6EQsos&O*Zj[OcYo?:':@d*&sAW:tD")H?gT<'b0Dg(F1_Pk4R\Y!=kR3W.ploX9=HKV&QgLg!Mmd!lV %R;Lhuo9I-FU[5rrYu@NLq]%:LrVqV`bicmsbjGk5RM92YL4@\(tjEHY#s[hH7`)WE9e33+3OT %Uk5`W-`dqKb^a`dLRR0mbTN,aLi:qnN>F;O]U4J,LNA$,AJ^B!K?$ubK-hmQ%N[s\R*%$32=n!A0$r#A9&K*[M3pU'R'7Hu&2TD1 %)8X.A:+?W+K0/E&3I#obF9S*-7:k6-M&AHR7uW)@lK&W@i$$#IegSOZn5p6X2_id.!t@@Fp.T):+3N^=e-D$Zsb% %Dm.M";P7O$Q8StDCCr_*`JsfOGsgO([irlQ*'A[GV=b02d#F?o-lM,9ZNF9e.SdJ$0/nAp3./M#AcSk;W.P;+$Zp>=5Y4UtSmeP2 %Jj.si=%cR!ld3W88Ama&W@?87^/8&FdoLM*BjWfE*ZRu"qkTe4AM]M.snW,3o55D]F/i.;e`G^&Q59S2=T0(*?bSI %i"d#lF5Vm]4`_+['7WtMJ%`5=^#"7?!\Lrr0VsP;Vf3^.I0`XAVu?*@4D[6"eB4@HMiYaLcGFGum,\#Bos-crNh[4ZKg-q&`C09n#-A6QmkYsX)uD-E.e!m*)jSP)[m'0ZOdg]&rNiGt/c@]VYljuaH\Z9h3DWdlPTX^4 %P2k5Vkbt?1]f]9D'!.DSlpl_4EeI?.4iY`qj@_)@)k!2oaHp)If7fRiaHp)Y4&[-mUDl]SF_kfLM&2(D/a6C@SErb[o-V,h\Clpj %OeGhh3.GZL\0Ptc,@>0lp[JF@O*FJoP\n/iW?oV`j'k4[UmBAOiFbB\`4Oj"=WRJ%?d&IG63t@EFH=]#F(4Saj>QaD?p:l%p$CuR %!Tj(J"ssKrYKu9pXK7SRS(!OipD%ern!%=g9#f#7H)1LAl/\V>VA;A,L.[GjR-dG6V %ju!96gi[N99Hq1s7W]*'3F4IsLWSTm_A'qt!Z]2SL`!13&[4\rN[p#cOk$pds*<'S1k:41SDDrU"4$l^h(["Z"mg)W(0q:`F %:K+V80if'Y]8>Qpa-\?u^4WHUDjK#LHtYigRBH-aIA>V@;TI,@GeV/s"hE2;Dfb+\>b:+"qnlHNguX7$+FPjHmTN;D[N)g#$[!>T %p5h[TjCh'!?2\,Keu&iJC\l?^+6;EHH36#<21NSO>\[t/$,UeE%iQmn:/;+PCHm+U8ZAI]63c2**,"gAN3:Jc?2K,_^AmHo"R,\! %Z6)'iqD^A77Fq.JbBV.-c`Ec;0fLS#hlBh&GK7sUD=fk.SC"UGlY7@6MbWe&NDm?(%aeK3IA1XmLMf'#Tg37d,nk'`?4b.B(;,Vt %%N?%PqY1qj.fH)f=`"TZ._3e;)\Vqb/4QH4bB/0sq[7tB`YuXs&jg/&5EK0+[=2n)$-UPtVehk"Q8U4gS\J=?lMWeGcJW^AD(IZK %l\D&o.@)KdK-_DtR^#j_R&o]628WD1>FSaAg\7MA$f^ZmKJ5/49sCEUFF$[SKErVJ:mq+fD<90M$ZGF%cHCC3n/K&Ca2>H>[3&Q/ %LjnUUm^4^?+$inM[bO)/:B(7j<52'kJ*eVh9m&6eb-p._6Be_rS?e,g)n[8HGKq5-$hfckqY0i/,JldW/rm\\i3(L0]lU[?d>.e- %n[J$keOMOrs8=bqcp@\\ko\#`PV+gH)q@6$"gD/6ca*&]WB)83"[aAP0[90l_.%%UHt([Y+1Ej,[@9Bt[!Fn(i3HeiWUss8V?dAr %o9_ZZS2(pDQWRKrW6tm&j)grd'\4-'&b_]uO8(LHJ%n\R`i]X!fS4@/Ghna94(qs1P9]QroIqi'n'u[c^&7ins,:-*Z^[YJQEX`: %m>"WM/$ILtlC`4G^s`BJ6f7:cAEC7hI]VCXL86Rr43e-nXZ&KC;JT$q$0&\?-USQ_c"d"LDA"P` %b+:d8h'A%C6&u?]d!p92?JE0'P:Mo3D'_]mTI8CV:=iBERF0.$HnfdoJOHn+%=3o9c0=cm;eK\9kg%tP`[?*,#G9MM8]dfHRCotm %XBaT!K+'=s0Qfu"_Vs]&(%>Nk9G\lt(%ad+pV-j-ZPek*rbe(9/p1lK?R#FqE!@89,TC[bhm,U4nJ2]N]FYF %p#:'KC@1FG[d_/Hp:("3BMfi))qI;h+2R]eaIq`K!.Gp1D$E-QKk3X:K4a;&!K3,DUMLZ'20cSFe4/OeR0.hoQ_?#D$(?6Cn'W3M %%hA9/#/@Y%[]hVBNdJoN<,kTG\Up:lRua`1W80,c%?p,H-][?,LB,n42n)Jlun;)P0'0Qi$=_H8_AJS %][Ih]LhMK&3sGTJ]l',j345q!APd2;N+Q.T;j6ia#Ygo)2UVOafl494-^dI"W%tOeJbtY3R1@IK;Y/&Er*lhI`*78fL^,uRVZ]^D %Q`6dp]`g&UR$`@36Ot<6RC[\2qr;d"?PISgRa378"[gi,AaeI%_%Kh93):?4$_"4NELs>$B>bU6`V"?O>eNF)g0j;Z:L"2V"pggf %5MSD-Ao!,%WW[UYnC(Asf7$4[,GiZ^&XU0^bO8ImYa8qmt]d-E`rCs%cgdhUfXLgAeQ9 %rNDKC?Rq>DVi.o;=aUb84^Gk:>%[DVW0Kr5V^o9BWO68Mo4%,@k`%S7W35o!lT)"rlhE6#^\p@;"k^@8Ve'*SS$&g:,qhFiI2CJk %fMFY25@)QqQd34]Hj(N%55$KV4.#i#?H87?k7N./>TEsq2B'SJ@'t&I18!FU?os_.>:nFOALJ]*gUST_ff4h)bM<>]#.-?5]"8>EYZ?5iC^oCk-GJn#h9"dNGO]j#l&@^XqBipH2\_mGF1fg@cjdrAj;_MC6!5*/FeNpd %E*)BaWSikZ8bQ/9`j9pCjFHHljM*aJJE4Fjm@1:hGiaECbis'Q<_\S^4BAO7(H]Y@5D?=HCL;>oQA_Mo5bDk^sEI;(U8N0G\fjMV:\$B%));B)#$X-8(+pn$`V'e,b8GZ;IlF)hK_M%%,Eg! %_)5/O*;IW/Xgq]j6=]q/JRcq=3$0#)"=%eLc.'0[Z)H5W5MK't_aH.`qgMMOXsKDN&/J2C$Vs+uV*GF@d@-^)70JPB2\@TUCab_LRt?1?I2t.sgGiEl&";`QoK"&=mKbkJ-T"J49lc:V7nmQ@ %E`tcUCqHJq-VjB_mFj+)aj9o[/ZEm_O+Ie(f*V5k)VHu[VlP%^j/7@f!Vmi@n;,mUuKn %g`3DDmX(e&K,TW`p_D3ML"5FJr,_jk;n<'_g@uE1p>sDTr(F7rIgWKBq&1/:G2^h2=`3,64RBEs<\HMFE+Lp3TV).&BQ7umdHb4j %f:iGUNt[&Ug;']%2(JFZ$T^-!WIEFpc1Cc5UkW-W]e7&AIX]j+Xul=KYPh4El/j7@H2**M@Tle-\]+1t0pN>/)q=\mH5)$m(CcYg %,2Rj=EK;@>K_t06qlb[eCLTkU=!p)6gZ(`4\341rZNgMai?Sa?0[+h>FC*H<\J[*,R/cDn7a>DJqQTD%DtZWEln<3i2\[VP^Z"(%Z9U^7n[":F#J9&)X2a=3Gd!Ff^e4p2>iF0@!&k7VGHcL[@P] %hnKUq$pDH$l<3<5QUt0_KE#^MS>BfLB)2ATJb[CKM!.pf)/r%,dpn![f9qlcIuY;c@JnIX]9)ZCq:)i8`jkg^>/kSIW7K %C"<=a1u-2!1)pFl>j)l6C\5KU'3Fqjl(&8B:Og!fXCk$eC1EoF!3YI5)V-XD^T6_J*r>XQLii!0a4'c:,<50MKc)4t=bna[pjod5 %IhRp'Q&mONqka$qpo`3EhqcN0<>5/)R7RNW%CYSJrPNIM$b(K%2LF]c0Qm#iHY)=8j/1."@nWEC=[!6Q%a=886,'1L"$9^B %eWYl&\+Eb&%d]c[6Z^TCG,9D3QJ*Wt0dJPok*1QUk+nCr %8raM\&Nu-ZSAk8>OD6p/8+64r%M).dc99sZld4*\F0Tg?gTSlpl,aS[!di$tp;_QqfKa2rZ4[gpM>GYFJ(r+]l@\9Nr)cj2&/Nn]oHSR:=4s6+&ebIY'cHW/34`%r=eRE0?FD0-0^?ZUNh=2;bI:R=5&5a81)Q%+YQl%1c1]=Q@'($FhE69[LR:RBpHa.5>MXLX4@$mh;W %)ohDil1pVJ)iF0-`U:$ggKi"Me)b7"&EN)=AE)m3l01gD@:e;F93W0`(M+nF&=15ZKi=K;qLn1Q^#0--:.ek[Wdr73hpfAqhRgZZEt["\j&im9Bi2'5ZipA4K4X&3H4(;^i2dg:>RQaaMuE)KuGB@;ine53\=Jk0Rt4Y"Ugd %].@\Fcd&ZnGLoU\Q.FbKS!8:]]D/nJ,WWB@bO+_<7C5npaeSTZgaN!V+F,9>[':drY_HbDA8)V)Kb5CGm]+ZHB`RF%`%".$>g;[& %1ZL*C%Q),`28`mFJjA%i@L&V`p+6A2W0?=PkI=oS@:ctXNbd"Bd;iK@9bTfDQTGF/+A`/-01cp!W'Q,EiWX'2QWM)W"?qATB"s_c %5RkIT,JJ^ITm>\rBK8Y+TE^-W7P^@@5Rfi+8.P/sepC$:7:^$m&HT9sYKrL]em(P&b'KMPiC+1)^sEI[0m`=hISE?(H(dfdZG"HK %oBIg9a5d%L2"qc;ku*AL]dlj%=1$felhs`2R`fJV?1D_=VmMi)!*Q8p%1NK\*-p%"Q9i[)cp!(sg[]86!3VXlHP?qsX"L[%ihCXiu^Fdq)8jmP6GeShBZR9O@W>P1p+/c^f<&rU![k-ls+0/BGD9_ %BWZ(CKCjOFT*6776&ZSUSLYg=&@SKE=2EX?j_O#d3MP-qFSt^hD" %cBWrO_[Tuj:4_(Z:1Vl2<[.K@C';/\+?;ZbZ\smV97gL*6I!!GMiYIX>\QKp?1H]UAjDh3#s;se4@P>o)01!gTE0%BZWWmkO)oLlVmeF^C"6jjm@k2G8\d5`P(B>hhb^nT)\O/SXcfC/a1UH'_phMrR.UKph%3kIC"6>^O]5Ej9RgqH:2( %#fHj\@-H_=jPh5ZiPI5Ki9TK0M\rCD5K(c050JiOpDYV %#O"Z`p!en6Dp9$.LnGW3^Na:+n:kP:E9PU$i!mrX$KI8Vi=4$_nks8*=.fppf?5@K&Z2crgeJ+*H;V2fd!(?*")DMqps^h=?\I(G %&?^srlfFgtF5"?9KjcZa7C7K:4#q2\(Ib=Ts01.j&W>cEm>7K`Et&EXLAf2FEX`XQ_c.FTiX"i]RAP&I?F$\:"Ul/WHZ %_sh;mNhIR4#,cSi%LhssY2p,10F3;F>UU$@UUd*s8,dSCDaIkL?C:DmH%@XX?W17\.1h4OHa)LM%1*,knVa&F6_+8$/8[Z/pr1KE %;b4'bcYa9V>XNQ1i/Cr;;u&N:Vu`P9@l<[WLp3cj*%qiia]4#0k2r%i?(i-[hF(HdbP)qNnWLQM^d`&gHeuo+NjmbL$15Gp(ul4A %Ya2PpTG(bCcfM1\WSb2@BPY8IHb=eGJ6GhA6Gb>Skh.G'YdEAMSq1(d!`[_YmfWiZTL272N>";5-'./97(?_5F, %\V>e3dX0j21LIu2(M#miau(HW(XD:[P\Wh0GtAd4-/$L"]KFM'p4ocW#\+[f06V+IS$?``2;4cYG2ZJ)Y]aHJ"cZh4N*X7. %0/$h%R;YZ^R2FW0A`glu-bXCG.'Kk'(d>qlBZIPa]7_$5BN*/c)7sd:8M!$n"Y#'`(qY0$Bj?X'_"%bb0)4OHWmh*C$O:1.,l>`h %3#]EQ4P6(098Kh\SM?&uJZd?hakUgqR,BC*/)A2fMlRj;]54GT&WC#8hM&pY-,S:[W%A`d:J;fgiXYHadmIEto=)nXJg@^gLu7]`)5R[Q:^[L?Z4256fJBc%d]k57kn7oX^P]6&uOm>.@R0$n?N2"RJk %4%g2H!:f#A%W-]K:?LY?\XL,Y3)`$#)S6Q0Z!4hn(q];7`G4cQ@dHEG`NQG&@p,.@#Mp8;`@U?/bDEAVi!g9Rf&>o\i0%PNkPZgoVAeiUB)X-5OZ-_k>3Y<&(]EO$ke<[[cMS<,Qp0DjgAL$o(nULt0_gSk^N"Z5qeARlWML="@+j=hhrlYY4Vd)!Xl^[I_FY3/gh2MH2X_*Q#X5Q %33hfXK\k!YH=GXIPl2kj!FED%S]TgKFgi\*duW0cPF4LreSlh1]/?"#B6(4hKNBLS'Han_O<,/b(NoEq]C8GP8KIYN-Bjs+CMP]o %c=CMT8_>`)2C>Ke5-BMYJt$:50D;H_,+pG0HKL7j5NJ>09&kq/F5 %MKpi]%HS,TUUIV9?c1rt\]8RshXdeim0?Z:>?E+UfB;(O7_-R1@86,_\(<(0Ob7qX&`b>:*RV233KPRl:6[*0W:q8g)>8uFX@C4% %:_I&nN/NgLZ!se(-J+bKX\b26o*X1"$B:9+VS#6.>%.8Ag*+]X_g,Hm1lXcTo"_knqi?6OZ!+[#Y'H%kU!Kau-7+s>Qk+U#kc]2X6N].S:RBkl+PN*sW4Zf5u3?E;&6(M9qpGkZP(VZ(83kP/DG/;]>lKmNZfEEbg@XcS2Z\qUhQR"B+`^^Gs7rL,J %f_C8rn[+ESbA*"LEVh]d1RUF*$(DhOWQ"Lo#q]X(orc7 %c&\-2:u(/qrtS;3c'@)%]2DWaq7"#/PA:F(@SO=LFk-A3g=e/bEtqU.Q1h3Eo&Pd(eu7:hTJ4d2X:]?oEM^RbZf1/0k`lU<'mKB2 %Xrs0,CG&\td'A+lA'0PX)fe<']4,EjA%"G"\1;_\]V4^!0(,GkD#(5NP0D=Xj_NHL-8F#Sm6Y<2:`3%Z5BjNi %8j2oiJc9HW=Dk6Q*e!E\<,KCTm9Htk'qoe'cml9nGVQ[Ph>]"1(s\.S(DoaVZK!A;L0odJ]"OP'%[$pa$q?X*miaCWM:&hWTIs%O %7ZYqncb@RI$BC&,H.`W&TN$e8o]usAdC>ZWL"P-Rpr-q!c_BjaJtF70^I?/&=@j2Mr[m-d6Joa47K^?MZbcVmXkD7ib4KdmN:-+. %,sOFCQI44RZ0=,%\bHu$r[i_4&:P5Rh]bSqHUS,6\&^!gX//&n,TW'ccbDp(>?39j-c7Vt_2u6*3[DTs(h:A<"fE2sgMbu\AB7L^ %!5N\tph^OOb_mUS1\]70X3kQqM\]Z?j4q"kM/klpi6 %qU=V_^[S-iRmo,Q`U_DJ+>7o;%'gsl278Sa_E>:!Z_ki'+OZ!_eZE0G,,!KSWgAKt>5n5AHUCLZg^j%u7NYs\E^[+k!AESZ6r.,_ %)fOm\$U+,Cpc1c9I0GclDT3=mIt*`jjQ0b_!8o=nF:$mO2E%pSkNH/@iisu!.?L!\5np5+R0'?R7Q4h&[rKfIS#^)%+E5i8g=*("afL.P8CpE@e]5osij6`KM\(<;Ig?ft78j[ldP)`R5L[MDa9"N]nT(h-puHAA',GR-[clPC(/KOFFZ#Vi9IET//25JoWb %n_t_Ml)k/)fHcl/kH5V>,0@JZGJ,sIQs_qY+C#U4`7G#ZNYu4p %&RUgA+5b.&g4pK0#hA5#S:A>"(t!k,!^OZ.4Dg<&KlX" %Y*]65l1"I/r8*JS?j@2k3f?@BS!.3<"r-sSf>Yg^-eGR%P#G;+g/tBt.%44u'@ue>?)'tn?-nbL?P-'.H:opqfMTT=TmP!(@+PW^ %<=AC%[(T+`nTB8)p7iVT]>s10]'4eKtmYb*J>+N`TO1%piF$^/ZS %\+TJn[s303>`e$n4\;r@JgCt,WYWGPBdsVY_f32@cNe?cYm<\i3X8Eo1N=ec@#F68JV_?0Q7']Ro"_H537$s'PXefaMFV9 %'P"A`d*"tRiE_Q+o'Zr88942m5'n*9q'G7bj'.TJ/NOn/P*ZBCI!jHA&mA^3'I9BYpl[POj0'2fGi2S`FEN_K]d,>Z>)UWYR7Z<[ %"\FR@0/R5^o^eiQlb"I?%C8@Qd,J8!Mc4:/FgP#,kZLBU?65-IE5iN+?$@tCkg6IClH17(EsLO+nk6J=PCGl]@hR9//+*R4%SkF< %($/\^jJYSS,!Oij321oOGHOUCghQ+M,5nf.8Rt>fo5qCqH]B\1_uD89ELO$VWCfH.RJqWD%.8Wj[5=BL@`mU7[H'aifb:;.#I@jn %b_@cFKUru@U1i.7nCm"epCFn`n&cb85oBmb$\1K,jp?SG^GuL)K*p<[niAVsqF@:i]XGCf*0Ji=J_/1c)A79(\iub-CQq4"\7_hkJgt&+\GtCQH9sdr_t4 %CV2Uo*I/ZK"3oGaJ]R4E@bGek1*b0ihO&lGd@Ns7i&-afp!q?I[d"fVNPuqCAq7D9W4:/c_&UcgL+?o8` %lg`C]JcLS.O[iCD2Hi$uH>9J:=JL\d`k&nJ8+_hUY)\&))@.g6?3&:Pe]f:ACbNcKPs:j5:"GgY,TRn7#_FmS=-XLSZG^Liek %%38>/@!O.O4#*M6SVfL9r";Y[LOMiqBe:YeWQ&g"4^DcB6nJPJ@$DoB[1LRAe6Mqf,)F/2QlsmfcVtL1=pS`V.h!Y;R8nW4fCT3U %D!VCbqXU))oNV69'FA9"Q%]\!,[aRN*MWal#_HE2am(6=tl!N:]G8!5D5[J^&f7DMsQK5dY@ %e3`$SOt7*NOD?5goX/HiCN1+R*R/`n*1]p>**o^]B4N$JtB7!gDcf+6pljT`ROq1:87_3bBCisdi)05`lse<5uE %e;KZMU<,VePr;2p8D!Pr,.]\>Nk(@L=4(cn\tNGJD&$>;Ztd(6+8%SHk^C-BUO %QI@]KeQ?$g8s6(%[EU%p84h7:\i01MNfbS-FNpr!2IPC:-V;ePg;I$SYbH5g=CKEhpIQ)=]gDZ)"]`t %]VK*YKk7L7misCl(R?p!1,3-u)!iWVai$ADe=YpM4"m"hY=K(B8/sB>C[M1RK)9QS2bmUl58Z'N%8LT?Vh5@q@bYhJo+GASUJ)X& %66,k3nQ,N%hDi5`,lp\>^70*L0#A^2eH*'E9?`Rg!Z>?luiUGlY[u94c=mIIM;ESg13+2>41qUW"iEYdtV8h\pF(@7cTT!8RR]M %P.Apj6ndmuZ63[4/t[=XGNC?Y7aOj41ko9AH7i)SN-ZHSn:(-EI;"p_XPl?bu=N#DOO<%L11COBNM,^S5pn`+N2(q%\"4EFDt$q%])fE(INCa3'L#@I[EQ %_4`CuP#r-NNHK4"<4'O3@9A-W'kNc%f_aWpq: %P+24-@&sE]0GRM:^4J&6!JD[uacD^>VOG)!l['h6/VFdlkg-.sAU:H;5,-[!+OcnhX.X%92X0>l(B:BeXE*m^="gWIZ*,9DP'LOP %0;JYq9>4NI$`QZPDlhs+^e$;"XQ"q5FN%O]esG4'+ZNS!T__*38Dp+i:&bUV%X`?O84jhsc\]eYRt7HSIq9ED;be:j0F^OPOIWa^ %8fN)7M9BTX(C/_8kjn5dBfks]M=@&U1T.?]hH^GbM;[ZWb%W(W&UM2c)f%kc3GmiH9!Yss2DTG`IU>oH)u6RY=.2?NZkhZK%]5'k %^/@Ks)aQ5ml4]K4`g-`K25cG\6th;e)g6a_"Bo5ejg5VgaP+VT4/\'C;pb2ob%^Io>B8&(gUeUc&ZBP8jg;;S.^5bSHeglY].iLl %^@di:%)$_\*$Q&tHC7l'OD>6l$![+U[C9c4q[6"h9%j=bo[7liP#S^p_a:rCF7GTK-:6<1'RYmm_3[;@g'3hLed)<8\JfEY9"I7q %^*o$*FZ`JdH\*pJ3c5+.CCgPRd?9R>?aO\jGP_menE#1,nE^M_?Ol:r^Vtf.Gm*WuJ6mn%iX3C>cjS+r[,82BE:[n'hiA'3$\^35$s_0N63gfCai]S!TM"Bk89054;G1YYi%5_(,I/=@KHW\V=N'\c((Um_ %Z030i#=Gld`=U_j0kQFon=*Su,(31Gaq<%8WmNsFK-R+%LbNIMiJ?'Q3$MO\Lsh>(dt<:e9+6h/P'W4X,GN.WOrT6%qL@j[k??n, %\F(+,+p'_8P*"2G&$JEW;RXQ):['8(I@,\0Ll_p5g#/5g1=&u5k*f>0[i4OU-h'OgVS\pW*P%RTb1n\K,B=a6RL6/MEm$lY/0iHGe %6HpF,daLYNg/M&!=^u/Af4GoeqKn)LVJVML-c>1i/8^lWXd;96$@X;ZV$AY5AnpG`9E2`X\8V:bAN7SMEW4f?hstZHgM:\l^ZoK\ %l56,"kKb(5^6G`!p="8:h=!#g,FMWeK2kH5"m>Rb`@<./ip'2LKN1R]%!L9cW>U9*N2"bj%0sIa&Mn+.%&.>:(?h,:cS#ng,HsGR %g4>UMi,OPjf]roen-g+U0uV:HGLZ*>&R1o\Fg.$@E+]6]oZ=?Y4QrRr&2W0dCp=JAn-!%%-@Y44[MY+B%Z)_AO0b[c89F>\`/Gne %_;e4nRZEiP\.\e(?0j#U_;gJ<[i+h2'G_idbNYK1lelc=)(XgmWR-c*TEC^/TS)EFTqGu:QOT_(5I8;7b^bmMQ@gROWUsH32_Fb` %>?oG1SMaG1^t#9=)hF8\9@p5T"G@;MI5(i.o#D"STGQhMR"8][r),KgTEhOZg=?8:2(QC/HuqsRlULJT0Vep_pl7m+*mRcQ3b!'T %^nB*XfTnr1,_J3;kf=Sj^ks!JZsB7HG!t@#,\Nh,3=-JJ\POk1U"XP3LM6H>V[m %cp?,Lr1JU,kNDF'W&[t*fqfMKK^=[+.aYF];k+18.0Va<^N_8NU_N#dP/(Yi*&t^)KO0Kq#J5:0H]lZiBS'@MS/n[4JN4-sn@.LIJC#=:R`iX'b>&hq<"?+?_(uhkD;5kl6Y)I3^@],M7EE\b.BSp!)SmAdKH\C(5 %!l(_bas=uU'M'f),4.mOK;$t.'js7Xdjg#SMT:WDV3\4\0erBs^j/ijBg2qmL=@Jf@FUJ#Z4UJ/$D`t%B)ado]5na6%B\MOm&&Bp/lJnYqn8VCBE93U":J*2^dfPRf:*.&=XE:9F).Gc=J\kZ?-09'S96&r %5]A(UR?$8IOi/`#O)M;S5qm/`1"![kB9ca"^*)5N8bE:&.'^?B(+,/HpD.=Cleou>Tt31Gl4'm(a`Oo`>kL.=J8;Y48!h&#P[J8A %"NfS0@rU.G1g.kDSO[eZOf9P_FrkLg>PP?F`kR"(*3-pCH_h7QqrZ3-VG=q[2A%8uFhX&sn+-j3Kn$8^So$]b@I%<-n*FYQA)]*R %l9_PJ&DUhRFqtiUr0\LH6+`X'G:b`G'Xf)Pa'JMqVq[s;1u\BOHuUJOP%[Ngs483*E@FA!^q[*^3o:1%`,V3WUOqi&g@`f8VUV$F %E<5bXhc]mW7Fu`H>PM"GpReVWT@C]n4pp$l[1oBZ8HiMKa6lSC-LX,*uH]CeI>['7,ma']oGKjL"JP*3kZ[:RP>nHPQh.E^JFEefS&V&_kqU*HrBY!5o@_i]aZ3#FGGtcJh3b3 %4A-8+Uu1ICK'W%;!Et;n,/-%E?.*0GrU!Kla!)UBZ@#jc#Z%F.9$2K:AijFu6_.1RuKi:cA21K$UsY^;'\?R(F[t %O&[=1"RAPWH2ke=l/gj&_I6Q"^/s2$e9TGgSss0^Vq5(C4(pdjbV*^t1]=H4_XRO=V?c`%jV'Gsre!.!7rLomh;pdIXkMrhcGnpN3-deAkFY4=&pQC*Rmm):.K,%**[`@n)`$Dh8da!ZYRf1 %P>_;\2Kd1!@N[X\O8RP`=o@l-DGA$*"qCL]_Z3H47\,bJ5.+)`md-oeZuSCG(]]0)?baL?]FE2Fe49a*Lajla3npA8\aJ$pT,&/L %TsEd:^ubMTn8W];)>sFHF9ZG(3U&"?M5<5o*oJ"Vqj=`1%q9hs%XY?^Q`mD_7-VC %n(asW=!'ALdP:o."UQ)O*s9O_<-gR/dtNX%;DT<+..ELhja*qmTShk7#Od5%W!r78KL:s*bk02)HAebcelcA[gG0p.IQ:Mk`Vii1 %^Ls8`1A'=thUuUXa'%q_AEr:u1W/1Im*nBXH#an;,a1mA0lgV;N[)8[ekZOMf!BPpNc/Qg;qomG#Z@42@Glm(^g4%qrRq- %F)+_BYEuBCB'K0e#nMU#j=pHu:h[#B'\'S#"D^OH%kuGF=lU.m!@J^jK]kEuYN>*fUQV`shIsTm>^oj*7$.?O9S-!+E:+hVH?Zb( %:MigtV[HcHgXRUrdks^k@%bFt4C-TNo3G($F7YlXm'!fK.@r/5\mR.!NTo\*e>^23_:&RV?Y3)1E'.F1%hfkja6i*u %8Mq=Fl*=2Ek](t)Sh>LCP8m@7i"t8[oKUsM1ouu'[PE^/FT$,nAO7d;^K.63>+,Ap<[PSZMpTTl_:++pQ+!_dSu4*CPt@pPMm8Q3 %0"lk%Gqo%0THuB0eJ3r)U2$gV5?14h"n85f&\UZ,SP/;J3@^IO/,?_XFndM0-cbY7%CL8:$Hj0tF(,i&.NmDn(!Y$8+-CY-oNQp- %(guP'W9L:lO06#b`b=NjfkUNC=Lt%2IZ'$==Lt'Hb-[LOk5l`4J6>mFS]c+=o(9p3)S*&@C?'3H47)@b/'#?og^Lb#e((_`mR#5- %_;?Qmh.9*MgpJITjP8H2UFJR?/7)Egkg&BuRB7J.l<\+< %g#glac5EZjQOohX(T]rH7oYd)3lg>kh`NGkkG]KCE^f0$D!,<$XAVI7\bYSb%+N)>.ho`p^fS4nRWK$c(o`')pnO>II>NLnGYEkq %?)`An(jZ3=+uN371VlZkeA0E=h8qE%EIBVMmbejfM;T7Wk>4*eP$/.^s@23guHe1=7>GK"`Cp$;Q<9jR6kPF %-5J0Oc,Grj;t8Yb^5hjW'4]!'+c*jM%3;mgKI_%n];_R7=9GbT1\R$3U7nFnnF:*.TMu:bWPc!t %)6BQ^h:tD2.JqVJ$kOFR742B9q73h#K4\'&_q?&(7jLF-Y0lY#(IkrReG"k9@)Jue:YZ.fJu^!0p_D9O7;#*h*EXkB %f06:0^Kb)1A&i'g8E]g6mJP*b+J'7%GrGD)s.EM._*4:`:]'*`Gi369]t85*L%"E>g]$I-ePke11g@iDXBbOAr6jhZ+!oYP.pCZ> %gZC`oPDRN$'4A)U:@U-&>hpkVOtUV?DE`BU9kD(V/pj?j*RB5)ms)X+QHBcu2U&)7jdm*"C\6Go+7+q*2.LudrmF6G\TN),DQ];C@=8NukfdlHo^8_>kJWV,5?HHZ9:$!;3*Y0NqN6u4]8r22DN)2SA$46d %pV3G-O+$4E%ApDt_k04Aj,6O"%B]KE"MqD9U]'n1j["+KM.,9%l]\R<=?Jjdh`!@qNKLFdRroT'RNpoa8+o6WFpAL+CO1Z(3`8-G9.A$ucCcY^/TFt[a>QS4,)]SjLC %\uK>K)ae$!PbO&t^o1&*NrsIQP9.]A]6+JI>j!d#ZAH3ENj='P)4ic[/&e>kk@cNtl]u^3Vu)YDRLo+gIC[;"Ni,o`a#iPhF04op5^+1P1]/sdsEi>[?n_?'(]u4"cZKdq(#sippA#[`_KsL9!MH$a#^7Hl&i]Mk!3Y %g=$e'Iu3=PJo%BBWsa9ci3Y+np2j$>d\M-!/4I&/Rb[+qX#S03^Vuq?Lfg6$dk=2+L-e%/PKjkkhZIe@/\e26W6ml3Vp"1IDi+%, %=j"CRru5fX"Z3)lA[MH0UOZ;XI2>g5lF(c),+qr'"/&XLlMKgKDEc6Cg(10+/kT^uURfTAnoGd*^s4fo8;+J)<(Na&3u?JaoM<$6mI%iN3L%fA#'Ul"%'J"6?0E?)G'8^^GK>@`CPNJR+F:W:(tO+S1.sTZLFSi#2n=baP[H>N$J/2cud+VhF6s[]anPMh?3/n>F#D3PUWc" %Y%`pJh8S!8i434oe.^c,D!a>c_:3Debr^1[+I4+Sg`c/_sA3W7-5pTG]mKE,i%O %^\o4WqD&0OSLGfO,Ee];AeIHt')0eW]'S\Ef=dHKcp]j+k1Lht4TC#,)4Ft>=W=*/RA*Fa9UU<:+UW!t@D_=I?`b,s$Of"QTN\OF %\hNF<<:@$T[9a9MYDHVFUXk?se-gFi3GZ;FCgRHNnCDpabHMgbXVX@((KrD9CV:QW]s)CEYL\WJnJ*9q0H(A;O,oP2b>[`G;!J4` %9lXs^Op1#c82'XVmISB#ojT?B!q2W2A9lU^XU%^gpZ0IE$fR:IXCQSh5QI@%BY.l&KM=gHRqCOGF]HVX4 %E#(:DbY*Ja98Qm8(!4p9[K)E3]L7(Wm+'N/fbEi<_CNB:QU?e2$f,=$X%T%^$]qm9mE"j?9k=i-nT7oj#;Q$,pJotnhlB:>p$I%lTmnU68^D=BS(I6RgMsB'gBWD`TM(VV/M#1IcEF^5D@Rm7JLn"\M<(UD;>)7Eu=[W>]=EbLKSP]X01F:GR9]D]Z_kIC80d]'.JN`m6gZ^\)HA+MELE-I_q %a)IQakO)5IgY]E&-?OEfEHf54E^"),K1`Y!K==c>`AB.tXAI'$niE7'/ %l2p,n8I=Z2mYYcLo#UoF^S"M-7%QM,Yj15XX>r9Rb8$T.!d0:;Eg9a0Y36jlU69&P!Wt;6oYMJi1'9B8nI#MJ_-jbf.8U+60A(oB %)Q83O3k?qa"#[_S]WqSr0_@]X^>(s_r4102/iQVEHAf`H?aM"SVaaY/gooiS,WFF?"u;q]DhB*JQ*1MR7?cL(s#+pj^c6Po2LclY>R^5,1@H1trgLk]Ml`2Bq"6pibhP,>NCkg7O"04f6V.4VsH %)D+[Z=t^(ZjtmppY4Vi4=>#_BHQJqHSgl#?f4;JNW:aW(IDIr[_>"bop8.91H84'd#d$f#@Bk:q(6ahqkV-D[^<+MTFS7]@SLcAE %csa_/MWW_XKBJ01nb('tS!OAtghg3b@$oE`a-:?V.dA4q0FYgM]5%SY:;IlP/drDq\Y?#Id@Dg)L/%?T8V(:eK]/>+-4IfD<)FsZ %0T7o?Z'#:.*!XVYRhq]4khJASb;8"+08q7VkOtXc>f2ZZ*^R>kcLk+@=&?LigO`\JqhEG,k9e&D1Z&`s^T*oTcdZ'V>n]AN>U&NH %DGKWuP[KXDMZ5_MF*a_EUrlF4)uBZo$ITi66AY$K>C(]4m>6!+NNajP2=*NWgmYB"Xm*NWg4 %li[l.['e0>pQ'0hif_)^6\bkejn;N-Yha[OpY?`HEZZ+L,j($1H_L1lfN^cfmq"Bob/lM_GV;_A-RIBkrOg4p20;_*X].Q0Y2T)j %]\_>d/djLZ3BhH+g(i)hAMeQG('9J$E$p"6>pdpMU^_mp/iJHNf@Yf.jQN"gOcaXlM']1Ll1k&mW!T`VK]2P8lH<:*b1OX?/crgD!\03Q!koP^7[*2DVUGtJc;W2L1S%WS]MJufO^d&QaKJDYm[*WYI.#\ %Z-0d4`4@RPAR35L0&af&F=1Rm+aq""94XO3=Gj@V;$6-q!fUEhko/+)"kP&nY"PFm$[-julFI*:].>TGWNJm%EO);C<[S8+:56IP %JEgZr`Q;.b(9'>To\tt]$q^3()i4e>D"`ck?q=neJ9LnUs,:-*2UU4GXKVXb6;K]tY#kIHD9t:]@)r@!dkKh@bHOQM/CtL.Jpq<=V*S1]e^Q&P,;HIV0R02\:^kZpbn9buQQ%'/K3C\!.tl9+'m2'CG3sH7D(`X:9iKhmJo=ahQqc6&'QA+lj:n=3TI:Y's``ZuD><1Rmhu:g14$lXsQP"Rg11eE#KY"07P= %CLl`,Jp=%o$c0\JO2r9&X-(Ld'Y9LGO%??AVUB!EF0W01(A5!RVTHV,-FFa0^BQut.^^04(F.rH2J+hPF3VVN$F,I2@UiX!\?`B:#"*/k@ptF`rUUlr)>(P@Db_G]LQ$?u.rq<%WE0]V7lQNK4sT %BBAa.K.d.Vp)$s_f%^e_O,6k"$I"0^(`KSGMiEc8)@u0R?On)KB`.MZ"UfAh[B]%I^r_jE==qCSh>G%IjBB1,:?CrO6\(6B9Rr>m %kns"p@,7h#F-W.2H>T!E$V)i;$E`]9o1"2[.$Zr25m,3U3++UpE< %\;NEf*\/GOMRt(^G*1B7\As7?[K>i"=JNrPf_W0R/DTB.]K?qr#Z-65Ii<7gPg89MJ"Y1bq^heGFjBeb*aeL7,Bi22QBd+/O;o>='B\m.t2ET>XgAl'd+ %eJ3r)i^Xb8BMhW:;I,E@/up(^Om6uX^GYRoYan\T]r%*93%EJ?`8KIg9;\q,jYc)(h.`V,d_JAN\nFK5jkD.5K\sY4(a!*c\<@$? %@Vp=V^RP7m(/XuGE*@WmCJ&%u:L:]._B!-:SYE6a:5iV#Rc2uNeVA==>rA92\I<0aZgb:OkhU?fS6gQ1:$A.?P9Lptfk_*+]?6:7YW2CQcW8=N24kd)U0lCq$TD;L3`s9fL<]n'7B6,:2Ald7^V)kXm2mrqgj%E#%YqbBUQ3M?N0Zq0FuY2 %VX*M_J6ph>P'c#8rA.hHpRD!+eQF8]*2@tm"*A&bRCAM:a63>EZ$M`#E6[1IjR66K__jmElWNX?r%O4BO:W%K4_,q\4Do6ajB-E8 %DHtb-RCBBbcX$Po?![_X7j[t3GUqq>N9e@(jjRdT:u/d`,bNDldueKUJYk,AG'Zhd=J.+eHAdWbKa!p^TZna6/^-0-ZUSoD\t<(k %32/l]S6fE6>$.dQ=f@.REKDZ)#o-ONQ4hT*O.Xp0(.b!\adLfFQlAYS$=N`T^?'-1@& %cF+0[-@4!IGemIS$Olt1_@"!Yk:"Cqi%Fg$d9"4#6pCh\/C7Sa7=U/kJX]%`pR'>HHKs\U8k]=@XCK*S^>_/-KJh!U()'a<`S\MV %;XbFb!cuj3!XcXC.ratd,HBZPYhmQN,7?!r$?UiEoZ7agfKT'o\cQs9)4ZcJ"*CPiFo>duMAqD4r#rHsg51ZM\Y65d#Mc^O>'_[q %2:/pa[^0l8m39b,&($F8n5iC+mhXmN/Ro?H&7>1X"rc^/;fd8"B3YH/SkH7-^&?l="ZVjhs-Etn@GO?h@%/:5DGSH_:\kVRQnsnd %Rj5FD,?SjLn=:.rgY=?rEXUCMlDi7u*1g:O&lMIpr$.@[&bR@A^H=B]X?(9-#j;JCjl@1q %8dBYldD0iBQ"4t0PchHO!Wp!Y%T@2j=YG_E$`)E/HM*G;bGd^_oZQebOWB_5d^;^9R1tVt.2WZ/dGmV>H@lfFF;>8C8t(6F?VE2@ %U.Xroq&k^Z(LqDoKmU'Y`*"BP*6]Z`\Zl2ZNdgh1):9ZT"$o?lsf0<+W`JK7*El\j/]/CuB6Dp+m^@X(uFV-GR'=0`&h %V8[qcd==n[EBKMXPRC#;mH^;^A(_e0q.-g"dEI2ck?>:i3:%aLd7R %`.0&l&br@q(74+6)0To[3ni-;If7$o$eI995Fm"\Y%b$66mgI:JNi+k(t@PQ(<83T*jmu#_8R`\W9(M(3ak)h8eu.b.#9.A('h1= %lOj`9GQhh*3]]B-;G`;G@*qf/K3:mEMAN[b%`G"U#I>gn/C[R"M,[",,TO+a(B6=)iFK%f0e''?RrKe\[@i^ucTeWm/do'H+!"OQ %A>'cO3eA)9(2@hCb9T;T#&8-3Ms5VRK3B8=ibg@aNEVj]\NADH1hq$5WP&Ne!OXnS`Cr1%5V7J[UD=*@-u(<_d[JKFApQ$l2 %QC74Vc1n5kj/I--5Oa>-)@3D)$RF6]?ku0gbGXK(T+Pg0WB['TeI;+`W/CqBGTGa7#euLYnI`rX[9R%WCtM^37'54cO8>noX*lo` %4@2njN^sY@3;u6se*k3ZY*m/c&`?3fiZkJe/>q+l<+Da]S[-NW*W\:7!V$a'_]pL2d"M1MFR8K&l^Bp33(4:8Nt<-L_2)InoPkD! %ReliOs3iY!CbI?j<]7\r.c;;(!q5_N;S_h!2sC/=k4FBTKDPn%QcT/ur5HLmP5b(NH'`,bs1n6Cmf1rRR;qCQR)k5ums=ifODtL0 %PbQrl45W!qrug>3T@Elrmf(D>q_-u)B#`Zrnp_eBDILLtG.WD,6Q();md]MF7Er>XlPBe_\pjLH7cTT%8RQCr+IZjQ8@%.`#TuPc %-_:0@jcYjGY^q>EYcA5q)FZ^3i[.eja"rqOR#W"KZ]&sdgZ+UN5?jQ`F6Mu'FqN`'hh:5\(sN[aZ=(TuMIm/?=eNfmO(NC7q(Rn@ %0q0Kmd4C4oGFULJ9sW!Y-N2$E=((,+_6D;^'jsI!0J)jig6L(1`N[_b'f]\I(`*+0DAIt\-)6s2$Ypbs6WSqqcEEm"ZKGV8)4"uc %`Jmg@c4k_^L!Hl(r'#[?.7I]JkkkeCaaSu`O3-Fn?6"EJUEq]_pX*N_LrHT_=B/f!hA=#4d.nE?(R*m*TdkkO\R,8H\I)TE(Pc>u %rKmkFL&N::.KTVZ$_:WjB1rTK6K_D]hOcJQa#jbK %E/H+`X,rDMUc664.Z*fCbRbaFa3]F6-K[A.+&WgdADKe9KYr@[i#6Q'_?"Tj)[V9%iCp_R`(2irRNUQCF`S[/QKA9D*\U=%1*hU- %!RUIZQ6@t^+Xnn*+]Wf<(./h"/$JCa-;d1(M%4ni&Zd[V7$1'4e13URJM`KL-OYeO#c*7kNmJh&F?.,$,*-,]u67#K,]'J[s&s"aU<=$k\1Vo5&Q*m#c^.3T1L(LEhlJL1F]$n"oj5SJG9QGOHn6kKMqUo4>> %#$H:tirfh<@g:^%XF?;!8!%L"mKl\)\gnT"^@;)4,k_*kFO$1k)3U;V)]$k;gZO(N1_F%G=hrWM*IOQG&_>%naYZ_&Zpp.XE&Y+X %n5R!7$GP^o,TRDd0ad^HY2aEh[?A:/kZ*W'j7P&0RL$K@,_.NioE+/\!r2=P01D^hYP":@b6P_.R4=rHQOeD9h\$6CAMt#[M/4Vf %(9)]t^QCrN/e?ll[AM_I^M;,%_TnC2.c.CbrEnAs:N7bNJJ?Me^CREP$k$&+]@#^CW_Lq)Ud5ds/i?RI`sQ,!ai]S!Ef\CnIYT0R %GZnmk+AF@M8)ug80LI\-a5SrjYqe_)b/4ep0gl`u6NijYp`.[<6fe9E-:;;nLuNGCXKQBO58K_5@V(?8cGIO4o3#serUkjoX"pecFJd`84J]KO!.D# %.7)O(rKajln`@h_FpF,^AVW_M>WBM2XTDO+26i%+Pd>g`?9emLKs)Q;'Bm>>G)^$L:n#6*q_r@Cah>ZN0H.gaF`Qu)Omo$q1cS&oG,F1 %O/Ik#_gXko9XnLQfm[&NdO)o%s4C*o %1(R0-5coG\P3M[\,$B0Z_0u=>\_Hp@a%e!D2LP\`&bFoBlPl4YguI@;)XI4lP]_>@j"UIk]*IQ-I$VVb0,K-E!bCq2AWe"g_aSe\ %k%hhBmD0sWD#?4ZkAENEcB$.uNP8WkK,lee)quV0="_Y?Xg?K!o8+LulW\UF2]Z"64fH15*/",(&/PN5$c*8#2O_C!0"f',+l93=GQHSqqL(qg=9#-^3HnCsII+&]eBeM. %Y.uq&I(Wa,[qWH+Xo%9_dCWp-H7/U?`B>u@lI!Pq(t+H'!5FllUSD9)9c$lDpRUOX*+Of/iI2lU@Y\ZLk26"'L1l?Dqj7O4l,d4*<(`=D7^/ZTfm:"5uH["\eaQaa,*c4j!9c4SBjG8kX-Qeq72k`?//a6(@qq.n5"Pm %mihUl=;ZElRf@1&@rFH6E0E,fIeDJ2U1?G]#>3.icKH7i-C&Dgqf$$.sr,4fZ %#>j'#R30P`2^Wp._hOP((MnK?p;;)JMnc=U4kSg;cf2]tT#?h7?9=WFB++g5do*C*r4+Xu6F.U\M!`[BO'^O!#FPZ5\p0!ne>T`Q %0(jS9Sb`CQS'qh5IKQRX_9P7()B"Hc0b,H_-6_WFDlPO"X&.8@LqoK(Vl4`Op,!dBe\!d[5"[XARG>o+j!aSA"9kK/dhoGj]Z8K!/fjr,I[r08UgR)ni %mg_HE+sPth]T0N7Od8!X/m37@rUeEH'Cb]9Jn9t2q6eUcqscG>:%Z<+Qb>lfHt.2]`X1EW#G(jsl)e[uq[YiO97_uHS9?pa]4;\u5QN;0ftT',]KC](7[YH(p7;Z%4qud%7B:>2rEo>6%K5/hh(#G( %2aC?3bG0^gb^`MeUVeXMqH/:!aYB?W0p:@X2Mfr,q=X#X=&7YRNr^P@)ER7kE7kp=4hMa:5\qWlP@(0eXi8!@guGKenlL41T?QtL %O5#G,i7q@\"eY9iLt#,V_<0MAo_.nbrN*li(@"+odJ?14gHm9:Z$:\jXDEuD-VpL!1eBFoKsJ.@ihnPT?RT\.RYTjup4]qN8%EX6 %o;lu0/oPoVJEkd$Xf/oN#*ZO.^XDe-S&o%7!LbN'Gqt+%E4,LbFa;s2L#qUZoEpcln.!Pp7>&q')E.?7T*\1_E<#dfRSO=S'JA?o %Wns=a5G1+;3eRGfYWSUVBX*09^2c\;qmfEg&=T=K7%r;6Z$B%(;M3?/>_D-V@%MjeDkfkXm<[goXR[F`(mr4]i>E3JEIuEV6 %j)VY'X!?I"Q>+Z94GO;mTS9:AKYqA9$M!mqSG#kIE&k)?FL]]r/`NXIRLT`!`l38s8NJCbN=0^8d/>QaoJp=aKdh1^_M[nF>j2/& %-.(T`V=U1cQcCm5hnn-BYim]KA4*`"]Sf;jQehm5&=STs3?9_Q&DCHqVPeTsFecZ8Zh+d)C=lo!hoY5(L[Fq$Pe\6qf"9Ja.Ybmg %R:7WGh(0-6_F7:\Q#MJ!R@=;q)FXu@"M;nY_hr5U2_c_uVhN"1XT:hS_2$>qoZkQ@d!uWW>%YES2jtP8ThiVb]e8i98Bu"bRBPf* %[FZ"$&0:a%k""=H]&#ZhN;&jeg:h-U(URfU?8oXnf*=:)(.eBpc.RMu:XlbeA'hV@E9*[,J@n6mfpXpSl=V>Tu[ %Ed-XBj7q%LUNY>`A*Bc'SHDdN%eb9?S^GDXZ<-@-$hac/`WfYK]/<[KWQEo' %F;6J/]3bO:&DTR+O2->4P'-bqa1oCcF>`DkAK*uqeW^$c!,9.Bhgi3cp,Xjp2.rr^@20DQ_(!VqYmLf:">o8Za!tk<+l!)ig[SbM %DY7EW!.;iX^B>_MRM^,Kl9Q?&M2cDWC-g\1CZ"$!-*T=:UZA:u!kfJA/%n-gXI;[U5s<$bb&MhJE+l?T3pEEkXV\-VZ^bbPA'`jKT4k %qgb7(X`j$OCmrueHW4DPF(t)*2d5>BD/aSYe"?V_nR;ne,jJeW)aZ)n]t'L'1---l"H'?k\)(S3*BP?7 %3o_90n,nHm'_oTI:N6R#^%=K>Y%=I0h9DI-k$$GY/V.gYN)Xbnb36bfPFkJiU'[EQ[)P0'f"Hraol8ID?=n^$B7p'3;EmD;B&30n %:Sm4]*h=pVq>R[N0TB\SJL^q.:Xp'lMk&]B2=Q9`d672hE9NpZRGR`L3b+)IP(n_Z^THa0qtmK,op)6.0(mLb;`c&kUt3dRAqiZX %?&=Oh^q\N&'X-rL@mp^"A#>8W3hDVbloj?$BDlq6C-??fn+_&aSN!<\X_]7I:U^VTS#tJ`?+Oo!+6V4P]K@iOcne!rAOLSpY-`Hj %.jLLHOfZ(!ei%XC3BT@(%NTMc`:rK"3cm\lbG.Ki#HHt2%Z"fp\`i<=F%q[lT8T9f@&_TmncX3c":44VQmZimQ@%s/>Ni!.$Y\dQ %XMJs:?bN";f`ne_M3eePK3%sT4,cr7JMotUDc%3]d:XZ6\lDGJVad0.=Tn10#&b+Adu!NE;H-\8&Wa7(EdQHO76Jj>==r4=75:?% %\GgTeVg++B_e#/aVdj]^6)'AFmXm-h")icjkRuajasO#r&CY(4Q1uJUGYLXa3?:5L*k %)kXNt

eina-1.7.10/doc/Makefile.am0000664000175000017500000000211412175475327012253 00000000000000MAINTAINERCLEANFILES = Makefile.in .PHONY: doc install-doc PACKAGE_DOCNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc if EFL_BUILD_DOC doc-clean: rm -rf html/ latex/ man/ xml/ $(top_builddir)/$(PACKAGE_DOCNAME).tar* doc-build: all $(efl_doxygen) cp img/* html/ cp img/* latex/ doc: doc-build rm -rf $(PACKAGE_DOCNAME).tar* mkdir -p $(PACKAGE_DOCNAME)/doc cp -R html/ latex/ man/ xml/ $(PACKAGE_DOCNAME)/doc tar cf $(PACKAGE_DOCNAME).tar $(PACKAGE_DOCNAME)/ bzip2 -9 $(PACKAGE_DOCNAME).tar rm -rf $(PACKAGE_DOCNAME)/ mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir) @echo "Documentation Package: doc/$(PACKAGE_DOCNAME).tar.bz2" @echo "Documentation HTML: doc/html" clean-local: doc-clean install-doc: doc-build install -d $(docdir) cp -R html latex man xml $(docdir) uninstall-local: rm -rf $(docdir)/html $(docdir)/latex $(docdir)/man $(docdir)/xml else doc: @echo "Documentation not built. Run ./configure --help" install-doc: doc endif EXTRA_DIST = $(srcdir)/Doxyfile.in \ $(wildcard $(srcdir)/img/*.*) \ $(srcdir)/e.css \ $(srcdir)/head.html \ $(srcdir)/foot.html eina-1.7.10/COPYING0000664000175000017500000006300212175475327010510 00000000000000Copyright notice for Eina: Copyright (C) 2008-2011 Jorge Luis Zapata and various contributors (see AUTHORS) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License. This library 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 Lesser General Public License for more details. Below is a copy of the GNU Lesser General Public License that is distributed along with this library. If you do not have a copy below, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, 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 and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, 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 library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete 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 distribute a copy of this License along with the Library. 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 Library or any portion of it, thus forming a work based on the Library, 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) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, 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 Library, 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 Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obliged to do so. If you do not wish to do so, delete this exception statement from your version. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you 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. If distribution of 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 satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be 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. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library 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. 9. 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 Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library 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 with this License. 11. 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 Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library 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 Library. 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. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library 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. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser 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 Library 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 Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, 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 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "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 LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. 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 LIBRARY 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 LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS eina-1.7.10/configure.ac0000664000175000017500000005002012247667355011743 00000000000000##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) m4_define([v_min], [7]) m4_define([v_mic], [10]) m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl ##-- When released, remove the dnl on the below line m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line dnl m4_define([relname], [ver-pre-svn-07]) dnl m4_define([v_rel], [-release relname]) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], [m4_define([v_ver], [v_maj.v_min.v_mic])]) m4_define([lt_cur], m4_eval(v_maj + v_min)) m4_define([lt_rev], v_mic) m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## AC_INIT([eina], [v_ver], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS([config.h]) AH_TOP([ #ifndef EFL_CONFIG_H__ #define EFL_CONFIG_H__ ]) AH_BOTTOM([ #endif /* EFL_CONFIG_H__ */ ]) AM_INIT_AUTOMAKE([1.6 dist-bzip2]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_GNU_SOURCE AC_SYS_LARGEFILE #lt_cv_deplibs_check_method='pass_all' AC_LIBTOOL_WIN32_DLL define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl AC_PROG_LIBTOOL ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_ifdef([v_rev], , [m4_define([v_rev], [0])]) m4_ifdef([v_rel], , [m4_define([v_rel], [])]) AC_DEFINE_UNQUOTED(VMAJ, [v_maj], [Major version]) AC_DEFINE_UNQUOTED(VMIN, [v_min], [Minor version]) AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version]) AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison]) version_info="lt_cur:lt_rev:lt_age" release_info="v_rel" AC_SUBST(version_info) AC_SUBST(release_info) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## VMAJ=v_maj AC_SUBST(VMAJ) ### Needed information AC_CANONICAL_BUILD AC_CANONICAL_HOST requirements_pc_eina="" have_wince="no" have_win32="no" case "$host_os" in mingw32ce*) have_win32="yes" have_wince="yes" MODULE_ARCH="$host_os-$host_cpu" MODULE_EXT=".dll" ;; mingw*) have_win32="yes" MODULE_ARCH="$host_os-$host_cpu-v_maj.v_min.v_mic" MODULE_EXT=".dll" ;; *) MODULE_ARCH="$host_os-$host_cpu-v_maj.v_min.v_mic" MODULE_EXT=".so" ;; esac AM_CONDITIONAL([EINA_HAVE_WINCE], [test "x$have_wince" = "xyes"]) AM_CONDITIONAL([EINA_HAVE_WIN32], [test "x$have_win32" = "xyes"]) AC_SUBST([MODULE_ARCH]) AC_DEFINE_UNQUOTED([MODULE_ARCH], ["${MODULE_ARCH}"], ["Module architecture"]) AC_DEFINE_UNQUOTED([SHARED_LIB_SUFFIX], ["${MODULE_EXT}"], [Suffix for shared objects]) EFL_CHECK_CPU_MMX([have_mmx="yes"], [have_mmx="no"]) EFL_CHECK_CPU_SSE([have_sse="yes"], [have_sse="no"]) EFL_CHECK_CPU_SSE2([have_sse2="yes"], [have_sse2="no"]) EFL_CHECK_CPU_ALTIVEC([have_altivec="yes"], [have_altivec="no"]) EFL_CHECK_THREADS if ! test "x${efl_have_threads}" = "xno" ; then EINA_CONFIGURE_HAVE_THREADS="#define EINA_HAVE_THREADS" fi AC_SUBST(EINA_CONFIGURE_HAVE_THREADS) AM_CONDITIONAL([EINA_HAVE_THREADS], [! test "x${efl_have_threads}" = "xno"]) if test "x${efl_have_debug_threads}" = "xyes"; then EINA_CONFIGURE_HAVE_DEBUG_THREADS="#define EINA_HAVE_DEBUG_THREADS" fi AC_SUBST(EINA_CONFIGURE_HAVE_DEBUG_THREADS) AM_CONDITIONAL([EINA_DEBUG_THREADS], [test "x${efl_have_debug_threads}" = "xyes"]) if ! test "x${efl_have_on_off_threads}" = "xno"; then EINA_CONFIGURE_HAVE_ON_OFF_THREADS="#define EINA_HAVE_ON_OFF_THREADS" fi AC_SUBST(EINA_CONFIGURE_HAVE_ON_OFF_THREADS) AM_CONDITIONAL([EINA_ON_OFF_THREADS], [! test "x${efl_have_on_off_threads}" = "xno"]) ### Additional options to configure # Magic debug AC_ARG_ENABLE([magic-debug], [AC_HELP_STRING([--disable-magic-debug], [disable magic debug of eina structure @<:@default=enabled@:>@])], [ if test "x${enableval}" = "xyes" ; then have_magic_debug="yes" else have_magic_debug="no" fi ], [have_magic_debug="yes"]) AC_MSG_CHECKING([whether magic debug is enable]) AC_MSG_RESULT([${have_magic_debug}]) if test "x${have_magic_debug}" = "xyes" ; then EINA_CONFIGURE_MAGIC_DEBUG="#define EINA_MAGIC_DEBUG" fi AC_SUBST(EINA_CONFIGURE_MAGIC_DEBUG) # Safety checks (avoid crashes on wrong api usage) AC_ARG_ENABLE(safety-checks, [AC_HELP_STRING([--disable-safety-checks], [disable safety checks for NULL pointers and like. @<:@default=enabled@:>@])], [ if test "x${enableval}" = "xyes" ; then have_safety_checks="yes" else have_safety_checks="no" fi ], [have_safety_checks="yes"]) AC_MSG_CHECKING(whether to do safety checking on api parameters) AC_MSG_RESULT($have_safety_checks) AM_CONDITIONAL(SAFETY_CHECKS, test "x$have_safety_checks" = "xyes") if test "x$have_safety_checks" = "xyes"; then AC_DEFINE(EINA_SAFETY_CHECKS, 1, [disable safety checks for NULL pointers and like.]) EINA_CONFIGURE_SAFETY_CHECKS="#define EINA_SAFETY_CHECKS" fi AC_SUBST(EINA_CONFIGURE_SAFETY_CHECKS) with_max_log_level="" AC_ARG_WITH(internal-maximum-log-level, [AC_HELP_STRING([--with-internal-maximum-log-level=NUMBER], [limit eina internal log level to the given number, any call to EINA_LOG() with values greater than this will be compiled out, ignoring runtime settings, but saving function calls.])], [ if test "x${withval}" != "xno"; then if echo "${withval}" | grep -E '^[[0-9]]+$' >/dev/null 2>/dev/null; then AC_MSG_NOTICE([ignoring any EINA_LOG() with level greater than ${withval}]) AC_DEFINE_UNQUOTED(EINA_LOG_LEVEL_MAXIMUM, ${withval}, [if set, logging is limited to this amount.]) with_max_log_level="${withval}" else AC_MSG_ERROR([--with-internal-maximum-log-level takes a decimal number, got "${withval}" instead.]) fi fi ], [:]) AC_ARG_ENABLE([amalgamation], [AC_HELP_STRING([--enable-amalgamation], [enable generation of one single file with all source code in it, helps compiler optimizations.])], [if test "x${enableval}" = "xyes"; then do_amalgamation="yes" else do_amalgamation="no" fi ], [do_amalgamation="no"] ) AM_CONDITIONAL(EINA_AMALGAMATION, test "x${do_amalgamation}" = "xyes") # Choose best memory pool AC_ARG_ENABLE([default-mempool], [AC_HELP_STRING([--enable-default-mempool], [Default memory allocator could be faster for some computer. @<:@default=disabled@:>@])], [ if test "x${enableval}" = "xyes"; then have_default_mempool="yes" else have_default_mempool="no" fi ], [have_default_mempool="no"] ) AC_MSG_CHECKING([whether to use default mempool allocator]) AC_MSG_RESULT([${have_default_mempool}]) if test "x${have_default_mempool}" = "xyes" ; then EINA_CONFIGURE_DEFAULT_MEMPOOL="#define EINA_DEFAULT_MEMPOOL" fi AC_SUBST(EINA_CONFIGURE_DEFAULT_MEMPOOL) # Report stringshare usage AC_ARG_ENABLE([stringshare-usage], [AC_HELP_STRING([--enable-stringshare-usage], [Report stringshare usage on stringshare shutdown. @<:@default=disabled@:>@])], [ if test "x${enableval}" = "xyes"; then have_stringshare_usage="yes" else have_stringshare_usage="no" fi ], [have_stringshare_usage="no"] ) AC_MSG_CHECKING([whether to report stringshare usage]) AC_MSG_RESULT([${have_stringshare_usage}]) if test "x${have_stringshare_usage}" = "xyes"; then AC_DEFINE(EINA_STRINGSHARE_USAGE, 1, [Report Eina stringshare usage pattern]) fi # Assert or fail. AC_ARG_ENABLE([assert], [AC_HELP_STRING([--enable-assert], [enable assert, @<:@default=no@:>@])], [ if test "x${enableval}" = "xyes" ; then prefer_assert="yes" else prefer_assert="no" fi ], [prefer_assert="no"]) # Check if we want to benchmark on real data enable_benchmark_e17="no" AC_ARG_ENABLE([e17], [AC_HELP_STRING([--enable-e17], [enable heavy benchmark @<:@default=no@:>@])], [ if test "x${enableval}" = "xyes" ; then enable_benchmark_e17="yes" else enable_benchmark_e17="no" fi ], [enable_benchmark_e17="no"]) AC_MSG_CHECKING([whether e17 real data benchmark are built]) AC_MSG_RESULT([${enable_benchmark_e17}]) AM_CONDITIONAL(EINA_ENABLE_BENCHMARK_E17, test "x${enable_benchmark_e17}" = "xyes") ### Checks for programs AC_PROG_CC #for src/tests... AC_PROG_CXX # pkg-config PKG_PROG_PKG_CONFIG # Check whether pkg-config supports Requires.private if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then pkgconfig_requires_private="Requires.private" else pkgconfig_requires_private="Requires" fi AC_SUBST(pkgconfig_requires_private) # doxygen program for documentation building EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"]) ### Checks for libraries ## Compatibility layers # Evil library for compilation on Windows EFL_EINA_BUILD="" case "$host_os" in mingw*) PKG_CHECK_EXISTS([evil >= 1.7.10]) AC_DEFINE([HAVE_EVIL], [1], [Set to 1 if Evil package is installed]) requirements_pc_eina="${requirements_pc_eina} evil" EFL_EINA_BUILD="-DEFL_EINA_BUILD" ;; esac AC_SUBST([EFL_EINA_BUILD]) # Escape library for compilation on Playstation 3 case "$host_vendor" in ps3*) PKG_CHECK_EXISTS([escape]) AC_DEFINE([HAVE_ESCAPE], [1], [Set to 1 if Escape package is installed]) requirements_pc_eina="${requirements_pc_eina} escape" ;; esac # Exotic library for copilation on Coyote PKG_CHECK_EXISTS([exotic], [ enable_exotic="yes" AC_DEFINE([HAVE_EXOTIC_H], [1], [Define to 1 if you have Exotic.]) EINA_CONFIGURE_HAVE_EXOTIC="#define EINA_HAVE_EXOTIC" requirements_pc_eina="exotic ${requirements_pc_eina}" ], [enable_exotic="no"]) AM_CONDITIONAL([EINA_HAVE_EXOTIC], [test "x${enable_exotic}" = "xyes"]) AC_SUBST([EINA_CONFIGURE_HAVE_EXOTIC]) if ! test "x${requirements_pc_eina}" = "x" ; then PKG_CHECK_MODULES([EINA], [${requirements_pc_eina}]) fi ## Options # Valgrind AC_ARG_ENABLE([valgrind], [AC_HELP_STRING([--enable-valgrind], [improve valgrind support by hinting it of our memory usages, having it to report proper mempool leaks.])], [ if test "x${enableval}" = "xyes" ; then want_valgrind="yes" else want_valgrind="no" fi ], [want_valgrind="auto"]) AC_MSG_CHECKING([whether to enable build with valgrind]) AC_MSG_RESULT([${want_valgrind}]) if test "x${want_valgrind}" = "xyes" || test "x${want_valgrind}" = "xauto"; then PKG_CHECK_MODULES([VALGRIND], [valgrind >= 2.4.0], [ have_valgrind="yes" requirements_pc_eina="valgrind ${requirements_pc_eina}" ], [ have_valgrind="no" AC_DEFINE([NVALGRIND], [1], [Valgrind support disabled]) if test "x${want_valgrind}" = "xyes"; then AC_MSG_ERROR([Valgrind >= 2.4.0 is required]) fi ]) else AC_DEFINE([NVALGRIND], [1], [Valgrind support disabled]) fi ## Modules # Check ememoa memory pool library AC_ARG_ENABLE([ememoa], [AC_HELP_STRING([--enable-ememoa], [build ememoa memory pool module @<:@default=yes@:>@])], [ if test "x${enableval}" = "xyes" ; then enable_ememoa="yes" else enable_ememoa="no" fi ], [enable_ememoa="yes"]) AC_MSG_CHECKING([whether to use ememoa for memory pool]) AC_MSG_RESULT([${enable_ememoa}]) if test "x${enable_ememoa}" = "xyes" ; then PKG_CHECK_MODULES([EMEMOA], [ememoa >= 0.0.26 ], [enable_ememoa="yes"], [enable_ememoa="no"]) fi ## Examples PKG_CHECK_MODULES([ECORE_EVAS], [ecore-evas ecore evas], [build_tiler_example="yes"], [build_tiler_example="no"]) AM_CONDITIONAL([BUILD_TILER_EXAMPLE], [test "x${build_tiler_example}" = "xyes"]) ### Checks for header files AC_HEADER_ASSERT AC_HEADER_TIME AC_HEADER_DIRENT AC_CHECK_HEADERS([unistd.h libgen.h inttypes.h stdint.h sys/types.h siginfo.h strings.h execinfo.h mcheck.h]) # sys/mman.h could be provided by evil/escape/exotic so we need to set CFLAGS accordingly CFLAGS_save="${CFLAGS}" CFLAGS="${CFLAGS} ${EINA_CFLAGS}" AC_CHECK_HEADERS([sys/mman.h]) CFLAGS="${CFLAGS_save}" if test "x${ac_cv_header_inttypes_h}" = "xyes" ; then EINA_CONFIGURE_HAVE_INTTYPES_H="#define EINA_HAVE_INTTYPES_H" AC_DEFINE([HAVE_INTTYPES_H], [1], [Define to 1 if you have the header file.]) fi AC_SUBST([EINA_CONFIGURE_HAVE_INTTYPES_H]) if test "x${ac_cv_header_inttypes_h}" = "xyes" ; then EINA_CONFIGURE_HAVE_STDINT_H="#define EINA_HAVE_STDINT_H" AC_DEFINE([HAVE_STDINT_H], [1], [Define to 1 if you have the header file.]) fi AC_SUBST([EINA_CONFIGURE_HAVE_STDINT_H]) ### Checks for types # wchar_t AC_CHECK_SIZEOF([wchar_t]) EINA_SIZEOF_WCHAR_T=$ac_cv_sizeof_wchar_t AC_SUBST([EINA_SIZEOF_WCHAR_T]) AC_CHECK_TYPES([siginfo_t], [], [], [[ #include #if HAVE_SIGINFO_H # include #endif ]]) # struct dirent AC_CHECK_TYPES([struct dirent], [have_dirent="yes"], [have_dirent="no"], [[ #include ]]) if test "x${have_dirent}" = "xyes" ; then EINA_CONFIGURE_HAVE_DIRENT_H="#define EINA_HAVE_DIRENT_H" AC_DEFINE([HAVE_DIRENT_H], [1], [Define to 1 if you have a valid header file.]) fi AC_SUBST([EINA_CONFIGURE_HAVE_DIRENT_H]) ### Checks for structures ### Checks for compiler characteristics AC_C_BIGENDIAN AC_C_INLINE AC_PROG_CC_STDC EFL_ATTRIBUTE_UNUSED m4_ifdef([v_mic], [ EFL_COMPILER_FLAG([-Wall]) EFL_COMPILER_FLAG([-W]) ]) EFL_COMPILER_FLAG([-Wshadow]) EFL_CHECK_PATH_MAX ### Checks for linker characteristics lt_enable_auto_import="" case "${host_os}" in mingw*) lt_enable_auto_import="-Wl,--enable-auto-import" ;; esac AC_SUBST([lt_enable_auto_import]) EFL_LINKER_FLAG([-fno-strict-aliasing]) ### Checks for library functions AC_FUNC_ALLOCA AC_CHECK_FUNCS([strlcpy openat fstatat fpathconf execvp backtrace backtrace_symbols malloc_usable_size mtrace]) EFL_CHECK_FUNCS([eina], [dirfd dlopen dladdr fnmatch iconv shm_open setxattr]) want_debug_malloc="no" AC_ARG_ENABLE([debug-malloc], [AC_HELP_STRING([--enable-debug-malloc], [enable debugging of malloc usage overhead in our allocator @<:@default=enabled@:>@])], [ if test "x${enableval}" = "xyes" ; then want_debug_malloc="yes" else want_debug_malloc="no" fi ], [want_debug_malloc="no"]) if test "x${ac_cv_func_malloc_usable_size}" = "xyes" && test "x${want_debug_malloc}" = "xyes"; then AC_DEFINE([EINA_DEBUG_MALLOC], [1], [Turn on debugging overhead in mempool]) fi AC_ARG_ENABLE([log], [AC_HELP_STRING([--disable-log], [disable Eina_Log infrastructure completly @<:@default=enabled@:>@])], [ if test "x${enableval}" = "xyes" ; then want_log="yes" else want_log="no" fi ], [want_log="yes"]) enable_log="no" if test "x${efl_func_fnmatch}" = "xyes" && test "x${want_log}" = "xyes" ; then enable_log="yes" fi AC_MSG_CHECKING([wether to build Eina_Log infrastructure]) AC_MSG_RESULT([${enable_log}]) if test "x${enable_log}" = "xyes"; then EINA_CONFIGURE_ENABLE_LOG="#define EINA_ENABLE_LOG" AC_DEFINE([HAVE_LOG], [1], [Define to 1 if we log support is on]) fi AC_SUBST([EINA_CONFIGURE_ENABLE_LOG]) ### Modules if test "x${have_default_mempool}" = "xyes" ; then enable_chained_pool="no" enable_pass_through="static" else enable_chained_pool="static" enable_pass_through="no" fi enable_one_big="static" EINA_CHECK_MODULE([chained-pool], [${enable_chained_pool}], [chained pool]) EINA_CHECK_MODULE([ememoa-fixed], [${enable_ememoa}], [ememoa fixed]) EINA_CHECK_MODULE([ememoa-unknown], [${enable_ememoa}], [ememoa unknown]) EINA_CHECK_MODULE([fixed-bitmap], [no], [fixed bitmap]) EINA_CHECK_MODULE([pass-through], [${enable_pass_through}], [pass through]) EINA_CHECK_MODULE([buddy], [no], [buddy]) EINA_CHECK_MODULE([one-big], [${enable_one_big}], [one big]) ### Make the debug preprocessor configurable ### Unit tests, coverage and benchmarking EFL_CHECK_TESTS([eina], [enable_tests="yes"], [enable_tests="no"]) EFL_CHECK_BENCHMARK([enable_benchmark="yes"], [enable_benchmark="no"]) EINA_BENCH_MODULE([glib], [${enable_benchmark}], [glib-2.0], [enable_benchmark_glib="yes"], [enable_benchmark_glib="no"]) if test -n "$CXX" && test "x$enable_benchmark" = "xyes" ; then AC_DEFINE_UNQUOTED([CITYHASH_BENCH], [1], [enable bench tests for google hash method]) fi AM_CONDITIONAL([CITYHASH_BENCH], [test -n "$CXX" && test "x$enable_benchmark" = "xyes"]) AC_SUBST([requirements_pc_eina]) AC_SUBST([requirements_libs_eina]) ### Build and install examples EFL_CHECK_BUILD_EXAMPLES([enable_build_examples="yes"], [enable_build_examples="no"]) EFL_CHECK_INSTALL_EXAMPLES([enable_install_examples="yes"], [enable_install_examples="no"]) AC_CONFIG_FILES([ Makefile eina.pc eina.spec doc/Makefile doc/Doxyfile src/Makefile src/include/Makefile src/include/eina_config.h src/lib/Makefile src/modules/Makefile src/modules/mp/Makefile src/modules/mp/chained_pool/Makefile src/modules/mp/ememoa_fixed/Makefile src/modules/mp/ememoa_unknown/Makefile src/modules/mp/pass_through/Makefile src/modules/mp/fixed_bitmap/Makefile src/modules/mp/buddy/Makefile src/modules/mp/one_big/Makefile src/tests/Makefile src/examples/Makefile ]) AC_OUTPUT ##################################################################### ## Info echo echo echo echo "------------------------------------------------------------------------" echo "$PACKAGE $VERSION" echo "------------------------------------------------------------------------" echo echo echo "Configuration Options Summary:" echo echo " Magic debug..........: ${have_magic_debug}" echo " Safety checks........: ${have_safety_checks}" echo " Maximum log level....: ${with_max_log_level}" echo " Report string usage..: ${have_stringshare_usage}" echo " Valgrind support.....: ${have_valgrind}" echo " Default mempool......: ${have_default_mempool}" echo " Log support..........: ${enable_log}" echo " Thread Support.......: ${efl_have_threads}" if test "${efl_have_threads}" = "POSIX" ; then echo " spinlock...........: ${efl_have_posix_threads_spinlock}" echo " debug usage........: ${efl_have_debug_threads}" echo " on/off support.....: ${efl_have_on_off_threads}" fi echo " Amalgamation.........: ${do_amalgamation}" echo " Iconv support........: ${efl_func_iconv}" echo " File dirfd...........: ${efl_func_dirfd}" echo " File xattr...........: ${efl_func_setxattr}" echo " shm_open.............: ${efl_func_shm_open}" echo echo " Documentation........: ${build_doc}" if test "x${build_doc}" = "xyes" ; then echo " Installation.......: make install-doc" fi echo " Tests................: ${enable_tests} (Coverage: ${efl_enable_coverage})" echo " Examples.............: ${enable_build_examples}" echo " Tiler Example........: ${build_tiler_example}" echo " Examples installed...: ${enable_install_examples}" echo " Benchmark............: ${enable_benchmark}" if test "x${enable_benchmark}" = "xyes" ; then echo " Glib...............: ${enable_benchmark_glib}" echo " E17 real data......: ${enable_benchmark_e17}" fi echo echo " CPU Specific Extensions:" echo " MMX................: ${have_mmx}" echo " SSE................: ${have_sse}" echo " SSE2...............: ${have_sse2}" echo " ALTIVEC............: ${have_altivec}" echo echo " Memory pools:" echo " Buddy..............: ${enable_buddy}" echo " Chained pool.......: ${enable_chained_pool}" echo " Ememoa fixed.......: ${enable_ememoa_fixed}" echo " Ememoa unknown.....: ${enable_ememoa_unknown}" echo " Fixed bitmap.......: ${enable_fixed_bitmap}" echo " One big............: ${enable_one_big}" echo " Pass through.......: ${enable_pass_through}" echo echo "Compilation............: make (or gmake)" echo " CPPFLAGS.............: $CPPFLAGS" echo " CFLAGS...............: $CFLAGS" echo " LDFLAGS..............: $LDFLAGS" echo echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')" echo " prefix...............: $prefix" echo EFL_FORM_VOLTRON eina-1.7.10/config.guess0000755000175000017500000013036112175500577011772 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2013 Free Software Foundation, Inc. timestamp='2013-06-10' # 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 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # 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 Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # # Please send patches with a ChangeLog entry to config-patches@gnu.org. 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 1992-2013 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 ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # 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 "$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 ; set_cc_for_build= ;' # 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_SYSTEM}" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval $set_cc_for_build cat <<-EOF > $dummy.c #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ;; esac # 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 tuples: *-*-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 ;; sh5el) machine=sh5le-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 -q __ELF__ 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 ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; 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'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; 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 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; 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 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; 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 ;; 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 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; 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 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # 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 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; 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 && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; 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 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????: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 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; 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 ;; *: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 if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi 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 ;; *:AIX:*:[4567]) 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 ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 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 eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 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 && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; 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 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; 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 ;; 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 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; 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 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *: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/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; 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 -q ld.so.1 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; or1k:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-${LIBC} exit ;; 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-unknown-linux-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-${LIBC} exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; 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 ;; 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 ;; 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 ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; 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 ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. 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 ;; 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 ;; 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 i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; 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 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 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; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' 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; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *: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 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; 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 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval $set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *: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 ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *: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 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac 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\n"); 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 && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # 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 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; 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: eina-1.7.10/ltmain.sh0000644000175000017500000105152212247700041011260 00000000000000 # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 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. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION=2.4.2 TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs 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 BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-warning|--no-warn) opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs 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 BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 eina-1.7.10/eina.pc0000664000175000017500000000065412247700050010701 00000000000000PACKAGE_TARNAME=eina prefix=/usr/local exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include docdir=${prefix}/share/doc/${PACKAGE_TARNAME} Name: Eina Description: A Library that implements fast data types and miscellaneous tools Requires.private: Version: 1.7.10 Libs: -L${libdir} -leina -lpthread Libs.private: -lpthread -ldl -ldl -lrt -lm Cflags: -I${includedir}/eina-1 -I${includedir}/eina-1/eina eina-1.7.10/ABOUT-NLS0000664000175000017500000000000012247700034010653 00000000000000eina-1.7.10/aclocal.m40000664000175000017500000120702512247700040011302 00000000000000# generated automatically by aclocal 1.13.4 -*- 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'.])]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # 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. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; powerpcle-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl 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(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_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 `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the 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. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # PKG_INSTALLDIR(DIRECTORY) # ------------------------- # Substitutes the variable pkgconfigdir as the location where a module # should install pkg-config .pc files. By default the directory is # $libdir/pkgconfig, but the default can be changed by passing # DIRECTORY. The user can override through the --with-pkgconfigdir # parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([pkgconfigdir], [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, [with_pkgconfigdir=]pkg_default) AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ]) dnl PKG_INSTALLDIR # PKG_NOARCH_INSTALLDIR(DIRECTORY) # ------------------------- # Substitutes the variable noarch_pkgconfigdir as the location where a # module should install arch-independent pkg-config .pc files. By # default the directory is $datadir/pkgconfig, but the default can be # changed by passing DIRECTORY. The user can override through the # --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([noarch-pkgconfigdir], [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, [with_noarch_pkgconfigdir=]pkg_default) AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ]) dnl PKG_NOARCH_INSTALLDIR # 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.13' 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.13.4], [], [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.13.4])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. # 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 ]) 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 ]) # 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])]) # 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([m4/eina/eina_bench.m4]) m4_include([m4/eina/eina_check.m4]) m4_include([m4/common/efl_attribute.m4]) m4_include([m4/common/efl_benchmark.m4]) m4_include([m4/common/efl_check_funcs.m4]) m4_include([m4/common/efl_compiler_flag.m4]) m4_include([m4/common/efl_cpu.m4]) m4_include([m4/common/efl_doxygen.m4]) m4_include([m4/common/efl_examples.m4]) m4_include([m4/common/efl_path_max.m4]) m4_include([m4/common/efl_tests.m4]) m4_include([m4/common/efl_threads.m4]) m4_include([m4/common/efl_voltron.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) eina-1.7.10/m4/0000775000175000017500000000000012247700050010034 500000000000000eina-1.7.10/m4/lt~obsolete.m40000644000175000017500000001375612175500574012613 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) eina-1.7.10/m4/common/0000775000175000017500000000000012247700050011324 500000000000000eina-1.7.10/m4/common/efl_voltron.m40000664000175000017500000002250512175475327014063 00000000000000dnl EFL_FORM_VOLTRON dnl Outputs ascii art of Voltron if terminal has enough columns dnl dnl ascii art was found at http://www.codeismylife.com/ascii_voltron/5239.html dnl and is the work of its original author. AC_DEFUN([EFL_FORM_VOLTRON], [ AC_ARG_ENABLE([voltron], [AC_HELP_STRING([--enable-voltron], [enable forming of voltron when all files combine @<:@default=no@:>@])], [ if test "x${enableval}" = "xyes" ; then have_voltron="yes" else have_voltron="no" fi ], [have_voltron="no"] ) if test "x$have_voltron" = "xyes" -a "x$do_amalgamation" = "xyes" -o "x${have_on_off_threads}" = "xyes"; then echo "//////////////////////////////////////////////////////////////////////////////////////////////////////////////////" echo "/////////////////////////////////////////////////////////////////////////////////////{#///////////////////////////" echo "/////////////////////////////////////////////////////////////////////////////////// EN3 xx&HWx////////////////////" echo "////////////////////////////////////////////////#{//xd3:& \/{:x////////////////////#WJNd_ HHNp#///////////////////" echo "///////////////////////////////////////////////\x WDMMM EDDzEQp&^x ^^_x #///////////&37z^xHHH7_///////////////////" echo "////////////////////////////////////////////////xPMMMMM LMMMLQQzzQDzH\{xx\{////////{x&H9@^&d^ {//////////////////" echo "///////////////////////////////////////////^JLE:PMMMQ9N^EDMMMMMMMLzJJ^ @&dx////////#dHdN^x{/{x {//////////////////" echo "//////////////////////////////////////////#LMMM EEE7p@H@NE777QMMMMMMM3H3_x/////////^HH3W^pH@x x///////////////////" echo "//////////////////////////////////////////#MMLN_^: {/:L&\{:@7EWWWzMMM3H3_x////{:x ^3dd3 HHNENd^{//////////////////" echo "//////////////////////////////////////////#WW7N^//////7Q:////{xHE93H3^^_ #////{H3H3JDdxx&H3Wz3:///////////////////" echo "//////////////////////////////////////////_E93 ///////{^#/#{{{{{{#x37dx77x////{Hp3pd _ xx_7H////////////////////" echo "#/////////////////////////////////////////#&MHd{////////#x^ ^&__ xxzMJH9P ////{xx\#\:x\:d@_://///////////////////" echo "3H #///////////////////////////////////////{pp^Jpx{///{ &&__^:{{:xxxx7MQNWpx///@x//{# xxx#///////////////////////#" echo "3HN7Hx{//////////////////////////////////////\xd NQd#x \# &x{/x3pHHH&#&PP&@zNxx##:{////////////////////////////{ ^" echo "HH{@37N_x{////////////////////////////////////x_//#zDxx x //# ^x#//#E9_P&p://////////////////////////////{\&:\\" echo "H@/JMJ799H_:{/////////////////////////////////{\/// L7_xx^#/\LMMMMM3MLN@Mp7 dW{\////////////////////////////{ #^H" echo "H^/PMMMD9773d^\{////////////////////////////////////dzWLp/{x7MMMMMEJMM7DMHD#^z&#//////////////////////////{x&\ dHH" echo "H^{MMMMMMLEN33Hd_://////////////////////////////////#WNMLzzPPLMMMLHMML^NNNQW93JdE_ //////////////////////#_ :@H3HH" echo "HdxWMMMMMMMMzWdHHpNH {/////////////////////////////{z99QEJDQJ7@EM3LMM37M9LHLMNL:^\{////////////////////{x_\_HHH&&x" echo "HH_^zMMMMMMMML7dHH39zN_\//////////////////////////{WQLHEENpDPDLHQMMPHMDEzNMLWJ///////////////////////#_x d3Hd^dHx" echo "/\@HH HLMMMMMMMM9 3HHHp9DJ&#////////////////////////xN_\LzPMMMLpPMMPdLMWLdMMNQ3/////////////////////{ ^x&dddd HHH " echo "//{ HH@ 9MMMMMMLxdHHHHH3HpEQN /////////////////////:PL\/QMMMLE3LMMp#JMJJ9JMM&M //////////////////{#\ _ ^^&:x##HHHx" echo "////:d3H_&PMMMMN&3HHHHHHHHHHWEJH\/////////////////{zMd//^EE {/xHEH&HMLHLHMMJpL#////////{#x _^^&WpHHHHH3HHNxHHxHHHx" echo "/////#_HHH^WMMP3L9HHHHHHHHHHHHHWE7_{//////////////7Mz{///:7EWNEzPL3LMWQWDMM_zN/{\x ^& zLMDpHp973HHHHHH3HH7x3H dHHx" echo "///////xHHH@_E&3D9N3H3HHHHHHHHHH3HW7dx///////////dMM ////#QJEEJJ9:Hp9dz^WdH_&d3p3HHHHdLQE3pNNHHHHHHHHH3HH9xHH &HHx" echo "////////#@3H3^ HHN3WpHHHHHHHHHHHHHHH33d #/////// MM7//{x@pppH__ME_MME@xH3Hzz3H33HHHH@7pHH33HHHHHHHHHHH3HH9xHH__HHx" echo "/////////{ HHHHHHHH333HHHHHHHHHHHHHHHHH33&x{///:Pz9HpWp@ :::{/pM^EMMML H3HELQ3H3HHHH_pHHHHHHHHHHHHHHHHHHp9\@d& HHx" echo "///////////:dHHHHHHHH33HHHHHHHHHHHHHHHHHHHHd^\\H33d_x::##{/{x_PDxMMMME&HHHHH99H3HHHd&HHHHHHHHHHHHHHHHHH9Wx&^ x HHx" echo "////////////{^HHHHHHHHHHHHHHHHHHHHHHHHHHH@&HN33@H77ppppppWW3&JMdHMMMMHHHHHHHHWHHHHH&3pWHHHHHHHHHH3HHHpz_ HHH3&xHHx" echo "//////////////xHHHHHHHHHHHHHHHHHHHH3H3@d3p3@x:\{/# HN73& xx DL\DMMML_HHHHHHHHpHHHpH7JHHHHHHH3p33d&_@d\ 3HHH3&:3Hx" echo "///////////////#&HHHHHHHHHHHHHHHHHHHH_H7^x\//#^ddH3^Nz@_&&&&_MN MMMMJ@H3HHHHH3p3H3pQQ3Hd@_^ xx ^@dH&\{x@HH3_\HHx" echo "////////////////{ HHHHHHHHHHHHHHH@ x{{z\/#^33d {Nz3:LPx&&&&^WMxNMMMM3HHH3N3Hp79zWH _ xx _@dHHHHHHHHHHH^#{xd_{#@Hx" echo "//////////////////\@HH3HHHHHH@^x#{: &&7_@ddH:7d@__&@Mp^&&&&xPz#LMMML&3HJMMzNH@^ ^&:@HHHHHHHHHHHHHHHHHHd&^{/////:Hx" echo "/////////////{{{/{/{^dHHHd^x#{\ &HHH W ^@&Q9 _^ _d3QL ^ xWMW#dJMMz@HJMEx\x^HHHHHdx&HHHHHHHd&^ xx\#{//////////#Hx" echo "/////////{x ^&:xEDW^ x#:## d^dH3HHHHxd_HHdMzHx# NMMM7x&dH_JLp7 {x\&@HHD@\:{#x ^HHHd&#x x\#{////////////////////{Hx" echo "//////{#x^^&&\ _D9^x\{{:^NQP3HHHHHH pxHHd9MMdxx EMMM _^@@PD3PMMLEQH@3W& &^ x##\##{/////////////////////////////{@x" echo "/////#:x^ @d:^^7N#{\ &HHWHH99HHHHHH:7 d&^LMM3^_dNpH_#^_3LEWMMMMMPddHpd:HHHH@ ^ x{#:////////////////////{x&////{x:" echo "////:x ^x W:^^HWx3dHHHH333H39HHHH3@&&xxx@J7@#:_@&&d : ELp9MMMMMz&H333#dHHH3H\///{:3x##{/{##{/{#\\\##### W_{////^x/" echo "//{ :x^ #E:^^&N\ELWHHH3dHHH3333HHH E\:xx__^_ d^EPML^dDPHDMMMMM7&H33N#&HHHHH /////{3//////////////////\3@{//////{//" echo "/{ xx{x{7_ ^^N^xJNzN3Hp@HHHH39HH3H J: ^ NEQ__^zMMM9dLJ3LMMMML3@HHH9\ H3HHH&{/////^ ////////////////\3d{///////////" echo "/x x///:9:^^p&x@3W3p3HHHpddd@H9HHH_Lx^ EMM7x&^MMMEEMWNMMMMMD@d3HH9 \HHHHHH //////7{//////////////#3H#/////////////" echo "\_:#///@ ^d3^xHH33N3@x ^&dH&@HHH M_^^MML&x_3QJWQLdzMMMMMJ_HH3HNd#@HHHHHHx/////:W/////////////{x #///////////////" echo "^&:///{p\^_W^x&HWH^x &_HHHHHHd HHH PNx9LQ7W_3N779d\WMMMMMW&HHH3WN{_HHHHHH3://///p ////////////////////////////////" echo "@dx////Ep3Np^\@_:^dHHHd^Hd_ :\xHH3&EP^3d@d3Hp7zLMQ_{ JMLd@HHHHpE:&HHHHHHHH\/////@{////////////////////////////////" echo "H@ :#//DLMM9_: :HHHHH@^x#/////#HHHd_NNNJPMMMMMMMMMMQ&{d_HHHHH3zx@HHHHHHHHH#&@@@@7@@dpdx{//////////////////////////" echo "dJx #//_E_d&&^::_d_x#//\///////&HHH_HPMMMMMMMMMMLJ7Wp@_HHHHHHz_ HHHHHHHHHHx7QzJE97^x{/////////////////////////////" echo "^z_ {/\{_9 ^{\#//////:///////xHHH3H&7MMMPJN3d__@HHHHHHH3HH73:HHHHHHHHHH ^ x#{@{///////////////////////////////" echo "^dD \{ x#^7^x\/////////x///////#HH33HHHd3d37pHH3HHHHHHHHHHHp7#dHHHHHHHH&_EMMMMMMMPz7d #///////////////////////////" echo "^^_73x ^ :xd^{/////////x////////_HHHHHH33NNWpp3HHHHHHHHHHHHE:^HHHHHH3H WMMMMMMMMDH7:\ JQ7d {//////////////////////" echo "^^@JzE^\x^ :\x{////////_///\_WJHxHHHHHHHHHHH3HHHHHHHHHHHHH9&xHHHHHHd 9MMMMMMMMLJ J//xQ\7LMMQpx///////////////////" echo " _3zLLLpx x{///////{_ zH9PP9H {{dHHHHHHHHHHHHHHHHHHHHHHHp9#dHHH3H@x^zMMMMMMMMMPJ d//93DMMMMMMMQH\////////////////" echo " x^NE9dxx x://///////#dNP_\/{^H79@pHHHHHHHHHHHHHHHHHHH3H3zx_HHHHHH_&DMMMMMMMMMMDE :/ 7QMMMMMMMMMMMJ&#/////////////" echo " @3pQMp^7N^x//////////// __7LMMMM JHHHHHHHHHHHHH3HHHHH3H9@ HHHHHHH&LMMMMMMMMMMMP7^#{EWMMMMMMMMMMMMMML7 {//////////" echo "^^^&HLWd7d {///////////#3LMMMMMMMHpJpHHHHHHHHHHH3JQJ7NDWE\HHHH3H@ QMMMMMMMMMMMMLp&##LMMMMMMMMMMMMMMMMMMPd{////////" echo "3WNNN7pH99Wd #/////////pHMMMMMMMMD N993HH3HHHHHHHH9LMMMLx@3HHHH_ JMMMMMMMMMMMMMMd@##MMMMMMMMMMMMMMMMMMMMMQ{///////" echo "MMMMM3ELMMMMLE@&@_x////EWMMMMMMMMM3JJpEN3HHHHHHHH7DDMMMH HHHHd ^NMMMMMMMMMMMMMMM_d{#MMMMMMMMMMMMMMMMMMMMM@////////" echo "MMMM7{DMMMMD3JMMMMDJ /#DzMMMMMMMMML^Qz7W9p3pWN7799zJE7d\x_HH@:_HMMMMMMMMMMMMMMMWx3{\MMMMMMMMMMMMMMMMMMMMD{////////" echo "MMML:HMMMM9@MMMLdHJEH{ PLMMMMMMMMMME&pNp^^_^ x ^^__ \#x{&&LMMMMMMMMMMMMMMMJ:p{\MMMMMMMMMMMMMMMMMMMM_/////////" echo "MMMW/7MMMM&LM3LdQz@JM33MMMMMMMMMMMMM&x _@dHHHHHHH@&_^ ^_ ^x:^LMMMMMMPQJ7Np333pW 3 xEDMMMMMMMMMMMMMMMMMJ//////////" echo "MML\/EMMMP3_xNpJMM3^&WzMPMMMMMMMMMMML3x^^^^_&dH3W7EzPPpx\x\\xd333H&_&@pEQPLMMQPM7E9LHd@@3ELMMMMMMMMMMMM //////////" echo "MM3//zMMMNW//QdMMM3 \#LQWMMMMMMMMDp@__&dd@@&__&&@dHpHd33 &x@33Hd@_^^^xMMMMMMM3pMx{HM x9/{\:@pNQMMMMMMMQ///////////" echo "MMH::PMMMW7{/P_MMM7^{xM7^MMMMMMD@@W&&dH3Hx_x:7DzJ97Np &H^&x_dHd@&&@d3WMMMMMMME&M WMMN/7{/WHzMLEWWNELMMW///////////" echo "_H_^^dNJzWH@/7HPMM@_/dD&@MMMLzp W@^7zE7pxHHN99EzQQ7_p9^H^_:&d&^ ^_&&MMMMMMMD M xMML#^x/{JMMMMMMMDW3Wx///////////" echo "Hz^x::xx{/{x^p3dMQx /7N H3@^_@#dW#:_d@@HHHHHH3NPN&NLMQ H & NN799997WWzMMMMMMMLxM^&LMM^{&/#LMMMMMMMMMMLN^#/////////" echo " x WpH@x\//////{@ { _^_@d^ ^__\dH MEH_d3HHHHHHN&3MMMMD H & H&&______ HMMMMMMMM P_3MMMN/&/#LMMMMMMMMMMMMML@////////" echo "\{xH7x::\////////\7MM9@_^_@HHd d_ MMM9@7HHd@NWHp^WMMMDx3 & 3dHW7EzDLMLLDQzJE9NxHxxp33_/x{/NMMMMMMMMMMMMMMP#///////" echo "# ^_ ^ ^x///////{9&MMJ^^^ ^_3xH_ MMM^73@_WQz93&@&@LLN_H __9WH&^ x:\#{\^&& {///{p//////////{x&WzLMMMMMMMMMH///////" echo "^^ 3^^^#///////H_LMME&@dHH@ _x3@xPMz&&_7MMMMLDJHx\ 3pd #{/////////{x@HH&\//////7{////{#////////{x&WzMMMMML#//////" echo ": :d^^^x/////// &PMMM&_dd@&^^ {^W7^p xxH@@&__37NNW7NH^:xxxx ^_&&@dHH&:////////p ////{^/////////////\&ELMM3//////" echo "{\:xxxx#//////{Hp77p@ x#////////#&& xx::\\:xxxx ^_&&&&&@@@&&&&_____x//////////##/////&////////////////{^NQ#/////" fi ]) eina-1.7.10/m4/common/efl_check_funcs.m40000664000175000017500000002574712175475327014646 00000000000000dnl Copyright (C) 2012 Vincent Torri dnl This code is public domain and can be freely used or copied. dnl Macros that check functions availability for the EFL: dnl dirfd dnl dladdr dnl dlopen dnl fnmatch dnl iconv dnl setxattr (an al.) dnl shm_open dnl _EFL_CHECK_FUNC_DIRFD is for internal use dnl _EFL_CHECK_FUNC_DIRFD(EFL, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) AC_DEFUN([_EFL_CHECK_FUNC_DIRFD], [ AC_LINK_IFELSE( [ AC_LANG_PROGRAM( [[ #ifdef HAVE_DIRENT_H # include #endif ]], [[ DIR *dirp; return dirfd(dirp); ]]) ], [_efl_have_fct="yes"], [_efl_have_fct="no"]) AS_IF([test "x${_efl_have_fct}" = "xyes"], [$2], [$3]) ]) dnl _EFL_CHECK_FUNC_DLADDR_PRIV is for internal use dnl _EFL_CHECK_FUNC_DLADDR_PRIV(EFL, LIB, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) AC_DEFUN([_EFL_CHECK_FUNC_DLADDR_PRIV], [ m4_pushdef([UPEFL], m4_translit([$1], [-a-z], [_A-Z]))dnl m4_pushdef([DOWNEFL], m4_translit([$1], [-A-Z], [_a-z]))dnl LIBS_save="${LIBS}" LIBS="${LIBS} $2" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #define _GNU_SOURCE #include ]], [[ int res = dladdr(0, 0); ]])], [ m4_defn([UPEFL])[]_LIBS="${m4_defn([UPEFL])[]_LIBS} $2" requirements_libs_[]m4_defn([DOWNEFL])="${requirements_libs_[]m4_defn([DOWNEFL])} $2" _efl_have_fct="yes" ], [_efl_have_fct="no"]) LIBS="${LIBS_save}" AS_IF([test "x${_efl_have_fct}" = "xyes"], [$3], [$4]) m4_popdef([DOWNEFL]) m4_popdef([UPEFL]) ]) dnl _EFL_CHECK_FUNC_DLADDR is for internal use dnl _EFL_CHECK_FUNC_DLADDR(EFL, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) AC_DEFUN([_EFL_CHECK_FUNC_DLADDR], [ m4_pushdef([UPEFL], m4_translit([$1], [-a-z], [_A-Z]))dnl m4_pushdef([DOWNEFL], m4_translit([$1], [-A-Z], [_a-z]))dnl case "$host_os" in mingw*) _efl_have_fct="yes" requirements_libs_[]m4_defn([DOWNEFL])="${requirements_libs_[]m4_defn([DOWNEFL])} -ldl" m4_defn([UPEFL])[]_LIBS="${m4_defn([UPEFL])[]_LIBS} -ldl" ;; *) _efl_have_fct="no" dnl Check is dladdr is in libc _EFL_CHECK_FUNC_DLADDR_PRIV([$1], [], [_efl_have_fct="yes"], [_efl_have_fct="no"]) dnl Check is dlopen is in libdl if test "x${_efl_have_fct}" = "xno" ; then _EFL_CHECK_FUNC_DLADDR_PRIV([$1], [-ldl], [_efl_have_fct="yes"], [_efl_have_fct="no"]) fi ;; esac AS_IF([test "x${_efl_have_fct}" = "xyes"], [$2], [$3]) m4_popdef([DOWNEFL]) m4_popdef([UPEFL]) ]) dnl _EFL_CHECK_FUNC_DLOPEN_PRIV is for internal use dnl _EFL_CHECK_FUNC_DLOPEN_PRIV(EFL, LIB, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) AC_DEFUN([_EFL_CHECK_FUNC_DLOPEN_PRIV], [ m4_pushdef([UPEFL], m4_translit([$1], [-a-z], [_A-Z]))dnl m4_pushdef([DOWNEFL], m4_translit([$1], [-A-Z], [_a-z]))dnl LIBS_save="${LIBS}" LIBS="${LIBS} $2" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include ]], [[ void *h = dlopen(0, 0); ]])], [ m4_defn([UPEFL])[]_LIBS="${m4_defn([UPEFL])[]_LIBS} $2" requirements_libs_[]m4_defn([DOWNEFL])="${requirements_libs_[]m4_defn([DOWNEFL])} $2" _efl_have_fct="yes" ], [_efl_have_fct="no"]) LIBS="${LIBS_save}" AS_IF([test "x${_efl_have_fct}" = "xyes"], [$3], [$4]) m4_popdef([DOWNEFL]) m4_popdef([UPEFL]) ]) dnl _EFL_CHECK_FUNC_DLOPEN is for internal use dnl _EFL_CHECK_FUNC_DLOPEN(EFL, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) AC_DEFUN([_EFL_CHECK_FUNC_DLOPEN], [ m4_pushdef([UPEFL], m4_translit([$1], [-a-z], [_A-Z]))dnl m4_pushdef([DOWNEFL], m4_translit([$1], [-A-Z], [_a-z]))dnl case "$host_os" in mingw*) _efl_have_fct="yes" requirements_libs_[]m4_defn([DOWNEFL])="${requirements_libs_[]m4_defn([DOWNEFL])} -ldl" m4_defn([UPEFL])[]_LIBS="${m4_defn([UPEFL])[]_LIBS} -ldl" ;; *) _efl_have_fct="no" dnl Check is dlopen is in libc _EFL_CHECK_FUNC_DLOPEN_PRIV([$1], [], [_efl_have_fct="yes"], [_efl_have_fct="no"]) dnl Check is dlopen is in libdl if test "x${_efl_have_fct}" = "xno" ; then _EFL_CHECK_FUNC_DLOPEN_PRIV([$1], [-ldl], [_efl_have_fct="yes"], [_efl_have_fct="no"]) fi ;; esac AS_IF([test "x${_efl_have_fct}" = "xyes"], [$2], [$3]) m4_popdef([DOWNEFL]) m4_popdef([UPEFL]) ]) dnl _EFL_CHECK_FUNC_FNMATCH_PRIV is for internal use dnl _EFL_CHECK_FUNC_FNMATCH_PRIV(EFL, LIB, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) AC_DEFUN([_EFL_CHECK_FUNC_FNMATCH_PRIV], [ m4_pushdef([UPEFL], m4_translit([$1], [-a-z], [_A-Z]))dnl m4_pushdef([DOWNEFL], m4_translit([$1], [-A-Z], [_a-z]))dnl LIBS_save="${LIBS}" LIBS="${LIBS} $2" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[ int g = fnmatch(NULL, NULL, 0); ]])], [ m4_defn([UPEFL])[]_LIBS="${m4_defn([UPEFL])[]_LIBS} $2" requirements_libs_[]m4_defn([DOWNEFL])="${requirements_libs_[]m4_defn([DOWNEFL])} $2" _efl_have_fct="yes" ], [_efl_have_fct="no"]) LIBS="${LIBS_save}" AS_IF([test "x${_efl_have_fct}" = "xyes"], [$3], [$4]) m4_popdef([DOWNEFL]) m4_popdef([UPEFL]) ]) dnl _EFL_CHECK_FUNC_FNMATCH is for internal use dnl _EFL_CHECK_FUNC_FNMATCH(EFL, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) AC_DEFUN([_EFL_CHECK_FUNC_FNMATCH], [ case "$host_os" in mingw*) _efl_have_fct="yes" ;; *) dnl Check is fnmatch is in libc _EFL_CHECK_FUNC_FNMATCH_PRIV([$1], [], [_efl_have_fct="yes"], [_efl_have_fct="no"]) dnl Check is fnmatch is in libfnmatch if test "x${_efl_have_fct}" = "xno" ; then _EFL_CHECK_FUNC_FNMATCH_PRIV([$1], [-lfnmatch], [_efl_have_fct="yes"], [_efl_have_fct="no"]) fi dnl Check is fnmatch is in libiberty if test "x${_efl_have_fct}" = "xno" ; then _EFL_CHECK_FUNC_FNMATCH_PRIV([$1], [-liberty], [_efl_have_fct="yes"], [_efl_have_fct="no"]) fi ;; esac AS_IF([test "x${_efl_have_fct}" = "xyes"], [$2], [$3]) ]) dnl _EFL_CHECK_FUNC_ICONV_PRIV is for internal use dnl _EFL_CHECK_FUNC_ICONV_PRIV(EFL, LIB, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) AC_DEFUN([_EFL_CHECK_FUNC_ICONV_PRIV], [ m4_pushdef([UPEFL], m4_translit([$1], [-a-z], [_A-Z]))dnl m4_pushdef([DOWNEFL], m4_translit([$1], [-A-Z], [_a-z]))dnl LIBS_save="${LIBS}" LIBS="${LIBS} $2" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[ iconv_t ic; size_t count = iconv(ic, NULL, NULL, NULL, NULL); ]])], [ m4_defn([UPEFL])[]_LIBS="${m4_defn([UPEFL])[]_LIBS} $2" requirements_libs_[]m4_defn([DOWNEFL])="${requirements_libs_[]m4_defn([DOWNEFL])} $2" _efl_have_fct="yes" ], [_efl_have_fct="no"]) LIBS="${LIBS_save}" AS_IF([test "x${_efl_have_fct}" = "xyes"], [$3], [$4]) m4_popdef([DOWNEFL]) m4_popdef([UPEFL]) ]) dnl _EFL_CHECK_FUNC_ICONV is for internal use dnl _EFL_CHECK_FUNC_ICONV(EFL, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) AC_DEFUN([_EFL_CHECK_FUNC_ICONV], [ AC_ARG_WITH([iconv-link], AC_HELP_STRING([--with-iconv-link=ICONV_LINK], [explicitly specify an iconv link option]), [ _efl_have_fct="yes" iconv_libs=${withval} ], [_efl_have_fct="no"]) AC_MSG_CHECKING([for explicit iconv link options]) if test "x${iconv_libs}" = "x" ; then AC_MSG_RESULT([no explicit iconv link option]) else AC_MSG_RESULT([${iconv_libs}]) fi dnl Check is iconv is in libc if test "x${_efl_have_fct}" = "xno" ; then _EFL_CHECK_FUNC_ICONV_PRIV([$1], [], [_efl_have_fct="yes"], [_efl_have_fct="no"]) fi dnl Check is iconv is in libiconv if test "x${_efl_have_fct}" = "xno" ; then _EFL_CHECK_FUNC_ICONV_PRIV([$1], [-liconv], [_efl_have_fct="yes"], [_efl_have_fct="no"]) fi dnl Check is iconv is in libiconv_plug if test "x${_efl_have_fct}" = "xno" ; then _EFL_CHECK_FUNC_ICONV_PRIV([$1], [-liconv_plug], [_efl_have_fct="yes"], [_efl_have_fct="no"]) fi AS_IF([test "x${_efl_have_fct}" = "xyes"], [$2], [$3]) ]) dnl _EFL_CHECK_FUNC_SETXATTR is for internal use dnl _EFL_CHECK_FUNC_SETXATTR(EFL, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) AC_DEFUN([_EFL_CHECK_FUNC_SETXATTR], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #include #include ]], [[ size_t tmp = listxattr("/", NULL, 0); tmp = getxattr("/", "user.ethumb.md5", NULL, 0); setxattr("/", "user.ethumb.md5", NULL, 0, 0); ]])], [_efl_have_fct="yes"], [_efl_have_fct="no"]) AS_IF([test "x${_efl_have_fct}" = "xyes"], [$2], [$3]) ]) dnl _EFL_CHECK_FUNC_SHM_OPEN_PRIV is for internal use dnl _EFL_CHECK_FUNC_SHM_OPEN_PRIV(EFL, LIB, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) AC_DEFUN([_EFL_CHECK_FUNC_SHM_OPEN_PRIV], [ m4_pushdef([UPEFL], m4_translit([$1], [-a-z], [_A-Z]))dnl m4_pushdef([DOWNEFL], m4_translit([$1], [-A-Z], [_a-z]))dnl LIBS_save="${LIBS}" LIBS="${LIBS} $2" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include /* For mode constants */ #include /* For O_* constants */ ]], [[ int fd; fd = shm_open("/dev/null", O_RDONLY, S_IRWXU | S_IRWXG | S_IRWXO); ]])], [ m4_defn([UPEFL])[]_LIBS="$m4_defn([UPEFL])[]_LIBS $2" requirements_libs_[]m4_defn([DOWNEFL])="${requirements_libs_[]m4_defn([DOWNEFL])} $2" _efl_have_fct="yes" ], [_efl_have_fct="no"]) LIBS="${LIBS_save}" AS_IF([test "x${_efl_have_fct}" = "xyes"], [$3], [$4]) m4_popdef([DOWNEFL]) m4_popdef([UPEFL]) ]) dnl _EFL_CHECK_FUNC_SHM_OPEN is for internal use dnl _EFL_CHECK_FUNC_SHM_OPEN(EFL, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) AC_DEFUN([_EFL_CHECK_FUNC_SHM_OPEN], [ _efl_have_fct="no" dnl Check is shm_open is in libc _EFL_CHECK_FUNC_SHM_OPEN_PRIV([$1], [], [_efl_have_fct="yes"], [_efl_have_fct="no"]) dnl Check is shm_open is in librt if test "x${_efl_have_fct}" = "xno" ; then _EFL_CHECK_FUNC_SHM_OPEN_PRIV([$1], [-lrt], [_efl_have_fct="yes"], [_efl_have_fct="no"]) fi AS_IF([test "x${_efl_have_fct}" = "xyes"], [$2], [$3]) ]) dnl Macro that checks function availability dnl dnl EFL_CHECK_FUNC(EFL, FUNCTION) dnl AC_SUBST : EFL_CFLAGS and EFL_LIBS (EFL being replaced by its value) dnl AC_DEFINE : EFL_HAVE_FUNCTION (FUNCTION being replaced by its value) dnl result in efl_func_function (function being replaced by its value) AC_DEFUN([EFL_CHECK_FUNC], [ m4_pushdef([UP], m4_translit([$2], [-a-z], [_A-Z]))dnl m4_pushdef([DOWN], m4_translit([$2], [-A-Z], [_a-z]))dnl m4_default([_EFL_CHECK_FUNC_]m4_defn([UP]))($1, [have_fct="yes"], [have_fct="no"]) if test "x$2" = "xsetxattr" ; then AC_MSG_CHECKING([for extended attributes]) else AC_MSG_CHECKING([for ]m4_defn([DOWN])) fi AC_MSG_RESULT([${have_fct}]) if test "x${have_fct}" = "xyes" ; then if test "x$2" = "xsetxattr" ; then AC_DEFINE([HAVE_XATTR], [1], [Define to 1 if you have the `listxattr', `setxattr' and `getxattr' functions.]) else AC_DEFINE([HAVE_]m4_defn([UP]), [1], [Define to 1 if you have the `]m4_defn([DOWN])[' function.]) fi fi efl_func_[]m4_defn([DOWN])="${have_fct}" m4_popdef([DOWN]) m4_popdef([UP]) ]) dnl Macro that iterates over a sequence of space separated functions dnl and that calls EFL_CHECK_FUNC() for each of these functions dnl dnl EFL_CHECK_FUNCS(EFL, FUNCTIONS) AC_DEFUN([EFL_CHECK_FUNCS], [ m4_foreach_w([fct], [$2], [EFL_CHECK_FUNC($1, m4_defn([fct]))]) ]) eina-1.7.10/m4/common/efl_cpu.m40000664000175000017500000002110212175475327013137 00000000000000dnl Copyright (C) 2008 Vincent Torri dnl That code is public domain and can be freely used or copied. dnl Macro that check if several ASM instruction sets are available or not. dnl Usage: EFL_CHECK_CPU_MMX([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl Add -mmmx to EFL_SIMD_FLAGS if the compiler supports it and call AC_SUBST(EFL_SIMD_FLAGS) dnl Define EFL_HAVE_MMX AC_DEFUN([EFL_CHECK_CPU_MMX], [ dnl configure option AC_ARG_ENABLE([cpu-mmx], [AC_HELP_STRING([--disable-cpu-mmx], [disable mmx code @<:@default=enabled@:>@])], [ if test "x${enableval}" = "xyes" ; then _efl_enable_cpu_mmx="yes" else _efl_enable_cpu_mmx="no" fi ], [_efl_enable_cpu_mmx="yes"]) AC_MSG_CHECKING([whether to build mmx code]) AC_MSG_RESULT([${_efl_enable_cpu_mmx}]) dnl check if the CPU is supporting MMX instruction sets _efl_build_cpu_mmx="no" if test "x${_efl_enable_cpu_mmx}" = "xyes" ; then case $host_cpu in i*86 | x86_64 | amd64) _efl_build_cpu_mmx="yes" ;; esac fi AC_MSG_CHECKING([whether mmx instructions set is available]) AC_MSG_RESULT([${_efl_build_cpu_mmx}]) dnl check if the compiler supports -mmmx if test "x${_efl_build_cpu_mmx}" = "xyes" ; then SAVE_CFLAGS=${CFLAGS} CFLAGS="-mmmx" AC_LANG_PUSH([C]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[]])], [ have_linker_option="yes" EFL_SIMD_FLAGS="${EFL_SIMD_FLAGS} -mmmx"], [have_linker_option="no"]) AC_LANG_POP([C]) CFLAGS=${SAVE_CFLAGS} AC_MSG_CHECKING([whether mmx linker option is supported]) AC_MSG_RESULT([${have_linker_option}]) fi AC_SUBST(EFL_SIMD_FLAGS) if test "x${_efl_build_cpu_mmx}" = "xyes" ; then AC_DEFINE([EFL_HAVE_MMX], [1], [Define to mention that MMX is supported]) fi AS_IF([test "x$_efl_build_cpu_mmx" = "xyes"], [$1], [$2]) ]) dnl Usage: EFL_CHECK_CPU_SSE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl Add -msse to EFL_SIMD_FLAGS if the compiler supports it and call AC_SUBST(EFL_SIMD_FLAGS) dnl Define EFL_HAVE_SSE AC_DEFUN([EFL_CHECK_CPU_SSE], [ dnl configure option AC_ARG_ENABLE([cpu-sse], [AC_HELP_STRING([--disable-cpu-sse], [disable sse code @<:@default=enabled@:>@])], [ if test "x${enableval}" = "xyes" ; then _efl_enable_cpu_sse="yes" else _efl_enable_cpu_sse="no" fi ], [_efl_enable_cpu_sse="yes"]) AC_MSG_CHECKING([whether to build sse code]) AC_MSG_RESULT([${_efl_enable_cpu_sse}]) dnl check if the CPU is supporting SSE instruction sets _efl_build_cpu_sse="no" if test "x${_efl_enable_cpu_sse}" = "xyes" ; then case $host_cpu in i*86 | x86_64 | amd64) _efl_build_cpu_sse="yes" ;; esac fi AC_MSG_CHECKING([whether sse instructions set is available]) AC_MSG_RESULT([${_efl_build_cpu_sse}]) dnl check if the compiler supports -msse if test "x${_efl_build_cpu_sse}" = "xyes" ; then SAVE_CFLAGS=${CFLAGS} CFLAGS="-msse" AC_LANG_PUSH([C]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[]]) ], [ have_linker_option="yes" EFL_SIMD_FLAGS="${EFL_SIMD_FLAGS} -msse" ], [have_linker_option="no"]) AC_LANG_POP([C]) CFLAGS=${SAVE_CFLAGS} AC_MSG_CHECKING([whether sse linker option is supported]) AC_MSG_RESULT([${have_linker_option}]) fi AC_SUBST(EFL_SIMD_FLAGS) if test "x${_efl_build_cpu_sse}" = "xyes" ; then AC_DEFINE([EFL_HAVE_SSE], [1], [Define to mention that SSE is supported]) fi AS_IF([test "x$_efl_build_cpu_sse" = "xyes"], [$1], [$2]) ]) dnl Usage: EFL_CHECK_CPU_SSE2([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl Add -msse2 to EFL_SIMD_FLAGS if the compiler supports it and call AC_SUBST(EFL_SIMD_FLAGS) dnl Define EFL_HAVE_SSE2 AC_DEFUN([EFL_CHECK_CPU_SSE2], [ dnl configure option AC_ARG_ENABLE([cpu-sse2], [AC_HELP_STRING([--disable-cpu-sse2], [disable sse2 code @<:@default=enabled@:>@])], [ if test "x${enableval}" = "xyes" ; then _efl_enable_cpu_sse2="yes" else _efl_enable_cpu_sse2="no" fi ], [_efl_enable_cpu_sse2="yes"]) AC_MSG_CHECKING([whether to build sse2 code]) AC_MSG_RESULT([${_efl_enable_cpu_sse2}]) dnl check if the CPU is supporting SSE2 instruction sets _efl_build_cpu_sse2="no" if test "x${_efl_enable_cpu_sse2}" = "xyes" ; then case $host_cpu in i*86 | x86_64 | amd64) _efl_build_cpu_sse2="yes" ;; esac fi AC_MSG_CHECKING([whether sse2 instructions set is available]) AC_MSG_RESULT([${_efl_build_cpu_sse2}]) dnl check if the compiler supports -msse2 if test "x${_efl_build_cpu_sse2}" = "xyes" ; then SAVE_CFLAGS=${CFLAGS} CFLAGS="-msse2" AC_LANG_PUSH([C]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[]]) ], [ have_linker_option="yes" EFL_SIMD_FLAGS="${EFL_SIMD_FLAGS} -msse2" ], [have_linker_option="no"]) AC_LANG_POP([C]) CFLAGS=${SAVE_CFLAGS} AC_MSG_CHECKING([whether sse2 linker option is supported]) AC_MSG_RESULT([${have_linker_option}]) fi AC_SUBST(EFL_SIMD_FLAGS) if test "x${_efl_build_cpu_sse2}" = "xyes" ; then AC_DEFINE([EFL_HAVE_SSE2], [1], [Define to mention that SSE2 is supported]) fi AS_IF([test "x$_efl_build_cpu_sse2" = "xyes"], [$1], [$2]) ]) dnl Usage: EFL_CHECK_CPU_ALTIVEC([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl Add -faltivec or -maltivec to EFL_SIMD_FLAGS if the compiler supports it and dnl call AC_SUBST(EFL_SIMD_FLAGS) dnl Define EFL_HAVE_ALTIVEC AC_DEFUN([EFL_CHECK_CPU_ALTIVEC], [ dnl configure option AC_ARG_ENABLE([cpu-altivec], [AC_HELP_STRING([--disable-cpu-altivec], [disable altivec code @<:@default=enabled@:>@])], [ if test "x${enableval}" = "xyes" ; then _efl_enable_cpu_altivec="yes" else _efl_enable_cpu_altivec="no" fi ], [_efl_enable_cpu_altivec="yes"] ) AC_MSG_CHECKING([whether to build altivec code]) AC_MSG_RESULT([${_efl_enable_cpu_altivec}]) dnl check if the CPU is supporting ALTIVEC instruction sets _efl_build_cpu_altivec="no" if test "x${_efl_enable_cpu_altivec}" = "xyes" ; then case $host_cpu in *power* | *ppc*) _efl_build_cpu_altivec="yes" ;; esac fi AC_MSG_CHECKING([whether altivec instructions set is available]) AC_MSG_RESULT([${_efl_build_cpu_altivec}]) dnl check if the compiler supports -faltivec or -maltivec and dnl if altivec.h is available. _efl_have_faltivec="no" if test "x${_efl_build_cpu_altivec}" = "xyes" ; then SAVE_CFLAGS=${CFLAGS} CFLAGS="-faltivec" AC_LANG_PUSH([C]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #include ]], [[]])], [_efl_have_faltivec="yes" _efl_altivec_flag="-faltivec"], [_efl_have_faltivec="no"]) if test "x${_efl_have_faltivec}" = "xno" ; then CFLAGS="-maltivec" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #include ]], [[]])], [_efl_have_faltivec="yes" _efl_altivec_flag="-maltivec"], [_efl_have_faltivec="no"]) fi AC_LANG_POP([C]) CFLAGS=${SAVE_CFLAGS} AC_MSG_CHECKING([whether altivec linker option is supported]) AC_MSG_RESULT([${_efl_have_faltivec}]) fi EFL_SIMD_FLAGS="${EFL_SIMD_FLAGS} ${_efl_altivec_flag}" AC_SUBST(EFL_SIMD_FLAGS) if test "x${_efl_have_faltivec}" = "xyes" ; then AC_DEFINE([EFL_HAVE_ALTIVEC], [1], [Define to mention that ALTIVEC is supported]) fi AS_IF([test "x$_efl_have_faltivec" = "xyes"], [$1], [$2]) ]) dnl Usage: EFL_CHECK_CPU_NEON([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl Add -mneon to EFL_SIMD_FLAGS if the compiler supports it and call AC_SUBST(EFL_SIMD_FLAGS) dnl Define EFL_HAVE_NEON AC_DEFUN([EFL_CHECK_CPU_NEON], [ dnl configure option AC_ARG_ENABLE([cpu-neon], [AC_HELP_STRING([--disable-cpu-neon], [disable neon code @<:@default=enabled@:>@])], [ if test "x${enableval}" = "xyes" ; then _efl_enable_cpu_neon="yes" else _efl_enable_cpu_neon="no" fi ], [_efl_enable_cpu_neon="yes"]) AC_MSG_CHECKING([whether to build neon code]) AC_MSG_RESULT([${_efl_enable_cpu_neon}]) dnl check if the CPU is supporting NEON instruction sets _efl_build_cpu_neon="no" if test "x${_efl_enable_cpu_neon}" = "xyes" ; then case $host_cpu in armv7*) _efl_build_cpu_neon="yes" ;; esac fi AC_MSG_CHECKING([whether neon instructions set is available]) AC_MSG_RESULT([${_efl_build_cpu_neon}]) if test "x${_efl_build_cpu_neon}" = "xyes" ; then AC_DEFINE([EFL_HAVE_NEON], [1], [Define to mention that NEON is supported]) fi AS_IF([test "x$_efl_build_cpu_neon" = "xyes"], [$1], [$2]) ]) dnl End of efl_cpu.m4 eina-1.7.10/m4/common/efl_tests.m40000664000175000017500000000365012175475327013522 00000000000000dnl Copyright (C) 2008-2012 Vincent Torri dnl That code is public domain and can be freely used or copied. dnl Macro that check if tests programs are wanted and if yes, if dnl the Check library is available. dnl the lcov program is available. dnl Usage: EFL_CHECK_TESTS(EFL[, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl Define the automake conditionnal EFL_ENABLE_TESTS AC_DEFUN([EFL_CHECK_TESTS], [ m4_pushdef([UPEFL], m4_translit([$1], [-a-z], [_A-Z]))dnl dnl configure option AC_ARG_ENABLE([tests], [AC_HELP_STRING([--enable-tests], [enable tests @<:@default=disabled@:>@])], [ if test "x${enableval}" = "xyes" ; then _efl_enable_tests="yes" else _efl_enable_tests="no" fi ], [_efl_enable_tests="no"]) AC_MSG_CHECKING([whether tests are built]) AC_MSG_RESULT([${_efl_enable_tests}]) AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if test "x${_efl_enable_tests}" = "xyes" ; then PKG_CHECK_MODULES([CHECK], [check >= 0.9.5], [dummy="yes"], [_efl_enable_tests="no"]) fi efl_enable_coverage="no" if test "x${_efl_enable_tests}" = "xyes" ; then AC_CHECK_PROG(have_lcov, [lcov], [yes], [no]) if test "x$have_lcov" = "xyes" ; then m4_defn([UPEFL])[]_CFLAGS="${m4_defn([UPEFL])[]_CFLAGS} -fprofile-arcs -ftest-coverage" m4_defn([UPEFL])[]_LIBS="${m4_defn([UPEFL])[]_LIBS} -lgcov" # remove any optimisation flag and force debug symbols if test "x${prefer_assert}" = "xno"; then m4_defn([UPEFL])[]_CFLAGS="${m4_defn([UPEFL])[]_CFLAGS} -DNDEBUG" else m4_defn([UPEFL])[]_CFLAGS="${m4_defn([UPEFL])[]_CFLAGS} -g -O0 -DDEBUG" fi efl_enable_coverage="yes" else AC_MSG_WARN([lcov is not found, disable profiling instrumentation]) fi fi AM_CONDITIONAL(EFL_ENABLE_TESTS, test "x${_efl_enable_tests}" = "xyes") AS_IF([test "x$_efl_enable_tests" = "xyes"], [$2], [$3]) m4_popdef([UPEFL]) ]) dnl End of efl_tests.m4 eina-1.7.10/m4/common/efl_doxygen.m40000664000175000017500000000524112175475327014033 00000000000000dnl Copyright (C) 2008 Vincent Torri dnl That code is public domain and can be freely used or copied. dnl Macro that check if doxygen is available or not. dnl EFL_CHECK_DOXYGEN([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl Test for the doxygen program dnl Defines efl_doxygen dnl Defines the automake conditionnal EFL_BUILD_DOC dnl AC_DEFUN([EFL_CHECK_DOXYGEN], [ dnl dnl Disable the build of the documentation dnl AC_ARG_ENABLE([doc], [AC_HELP_STRING( [--disable-doc], [Disable documentation build @<:@default=enabled@:>@])], [ if test "x${enableval}" = "xyes" ; then efl_enable_doc="yes" else efl_enable_doc="no" fi ], [efl_enable_doc="yes"]) AC_MSG_CHECKING([whether to build documentation]) AC_MSG_RESULT([${efl_enable_doc}]) if test "x${efl_enable_doc}" = "xyes" ; then dnl Specify the file name, without path efl_doxygen="doxygen" AC_ARG_WITH([doxygen], [AC_HELP_STRING( [--with-doxygen=FILE], [doxygen program to use @<:@default=doxygen@:>@])], dnl Check the given doxygen program. [efl_doxygen=${withval} AC_CHECK_PROG([efl_have_doxygen], [${efl_doxygen}], [yes], [no]) if test "x${efl_have_doxygen}" = "xno" ; then echo "WARNING:" echo "The doxygen program you specified:" echo "${efl_doxygen}" echo "was not found. Please check the path and make sure " echo "the program exists and is executable." AC_MSG_WARN([no doxygen detected. Documentation will not be built]) fi ], [AC_CHECK_PROG([efl_have_doxygen], [${efl_doxygen}], [yes], [no]) if test "x${efl_have_doxygen}" = "xno" ; then echo "WARNING:" echo "The doxygen program was not found in your execute path." echo "You may have doxygen installed somewhere not covered by your path." echo "" echo "If this is the case make sure you have the packages installed, AND" echo "that the doxygen program is in your execute path (see your" echo "shell manual page on setting the \$PATH environment variable), OR" echo "alternatively, specify the program to use with --with-doxygen." AC_MSG_WARN([no doxygen detected. Documentation will not be built]) fi ]) else efl_have_doxygen="no" fi dnl dnl Substitution dnl AC_SUBST([efl_doxygen]) if ! test "x${efl_have_doxygen}" = "xyes" ; then efl_enable_doc="no" fi AM_CONDITIONAL(EFL_BUILD_DOC, test "x${efl_have_doxygen}" = "xyes") AS_IF([test "x$efl_have_doxygen" = "xyes"], [$1], [$2]) ]) dnl End of efl_doxygen.m4 eina-1.7.10/m4/common/efl_benchmark.m40000664000175000017500000000164512175475327014314 00000000000000dnl Copyright (C) 2008 Vincent Torri dnl That code is public domain and can be freely used or copied. dnl Macro that check if benchmark support is wanted. dnl Usage: EFL_CHECK_BENCHMARK([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl Defines the automake conditionnal EFL_ENABLE_BENCHMARK AC_DEFUN([EFL_CHECK_BENCHMARK], [ dnl configure option AC_ARG_ENABLE([benchmark], [AC_HELP_STRING([--enable-benchmark], [enable benchmarking @<:@default=disabled@:>@])], [ if test "x${enableval}" = "xyes" ; then _efl_enable_benchmark="yes" else _efl_enable_benchmark="no" fi ], [_efl_enable_benchmark="no"]) AC_MSG_CHECKING([whether benchmark are built]) AC_MSG_RESULT([${_efl_enable_benchmark}]) AM_CONDITIONAL(EFL_ENABLE_BENCHMARK, test "x${_efl_enable_benchmark}" = "xyes") AS_IF([test "x$_efl_enable_benchmark" = "xyes"], [$1], [$2]) ]) dnl End of efl_benchmark.m4 eina-1.7.10/m4/common/efl_threads.m40000664000175000017500000001070512175475327014011 00000000000000dnl Copyright (C) 2010 Vincent Torri dnl rwlock code added by Mike Blumenkrantz dnl This code is public domain and can be freely used or copied. dnl Macro that check if POSIX or Win32 threads library is available or not. dnl Usage: EFL_CHECK_THREADS(ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]) dnl Call AC_SUBST(EFL_PTHREAD_CFLAGS) dnl Call AC_SUBST(EFL_PTHREAD_LIBS) dnl Defines EFL_HAVE_POSIX_THREADS or EFL_HAVE_WIN32_THREADS, and EFL_HAVE_THREADS AC_DEFUN([EFL_CHECK_THREADS], [ dnl Generic thread detection EFL_PTHREAD_CFLAGS="" EFL_PTHREAD_LIBS="" _efl_enable_posix_threads="no" _efl_have_posix_threads="no" _efl_have_win32_threads="no" case "$host_os" in mingw*) _efl_have_win32_threads="yes" AC_DEFINE([EFL_HAVE_WIN32_THREADS], [1], [Define to mention that Win32 threads are supported]) AC_DEFINE([EFL_HAVE_THREADS], [1], [Define to mention that POSIX or Win32 threads are supported]) ;; *) _efl_enable_posix_threads="yes" _efl_threads_cflags="-D_REENTRANT" _efl_threads_libs="-lpthread" ;; esac dnl check if the compiler supports POSIX threads if test "x${_efl_enable_posix_threads}" = "xyes" ; then SAVE_CFLAGS=${CFLAGS} CFLAGS="${CFLAGS} ${_efl_threads_cflags}" SAVE_LIBS=${LIBS} LIBS="${LIBS} ${_efl_threads_libs}" AC_LINK_IFELSE( [AC_LANG_PROGRAM([[ #include ]], [[ pthread_t id; id = pthread_self(); ]])], [ _efl_have_posix_threads="yes" AC_DEFINE([EFL_HAVE_POSIX_THREADS], [1], [Define to mention that POSIX threads are supported]) AC_DEFINE([EFL_HAVE_THREADS], [1], [Define to mention that POSIX or Win32 threads are supported]) EFL_PTHREAD_CFLAGS=${_efl_threads_cflags} EFL_PTHREAD_LIBS=${_efl_threads_libs} ], [_efl_have_posix_threads="no"]) CFLAGS=${SAVE_CFLAGS} LIBS=${SAVE_LIBS} fi AC_MSG_CHECKING([which threads API is used]) if test "x${_efl_have_posix_threads}" = "xyes" ; then efl_have_threads="POSIX" else if test "x${_efl_have_win32_threads}" = "xyes" ; then efl_have_threads="Windows" else efl_have_threads="no" fi fi AC_MSG_RESULT([${efl_have_threads}]) AC_SUBST(EFL_PTHREAD_CFLAGS) AC_SUBST(EFL_PTHREAD_LIBS) dnl check if the compiler supports pthreads spinlock efl_have_posix_threads_spinlock="no" if test "x${_efl_have_posix_threads}" = "xyes" ; then SAVE_CFLAGS=${CFLAGS} CFLAGS="${CFLAGS} ${EFL_PTHREAD_CFLAGS}" SAVE_LIBS=${LIBS} LIBS="${LIBS} ${EFL_PTHREAD_LIBS}" AC_LINK_IFELSE( [AC_LANG_PROGRAM([[ #include ]], [[ pthread_spinlock_t lock; int res; res = pthread_spin_init(&lock, PTHREAD_PROCESS_PRIVATE); ]])], [efl_have_posix_threads_spinlock="yes"], [efl_have_posix_threads_spinlock="no"]) CFLAGS=${SAVE_CFLAGS} LIBS=${SAVE_LIBS} fi AC_MSG_CHECKING([whether to build POSIX threads spinlock code]) AC_MSG_RESULT([${efl_have_posix_threads_spinlock}]) if test "x${efl_have_posix_threads_spinlock}" = "xyes" ; then AC_DEFINE([EFL_HAVE_POSIX_THREADS_SPINLOCK], [1], [Define to mention that POSIX threads spinlocks are supported]) fi dnl Check ON-OFF threads _efl_enable_on_off_threads="no" AC_ARG_ENABLE([on-off-threads], [AC_HELP_STRING([--enable-on-off-threads], [only turn this on if you know what you are doing, and do not complain if the world freeze])], [_efl_enable_on_off_threads="${enableval}"]) efl_have_on_off_threads="no" if test "x${_efl_have_posix_threads}" = "xyes" && test "x${_efl_enable_on_off_threads}" = "xyes"; then efl_have_on_off_threads="yes" AC_DEFINE([EFL_ON_OFF_THREADS], [1], [make it possible to disable all locks]) fi AC_MSG_CHECKING([whether to turn on/off threads lock on demand]) AC_MSG_RESULT([${efl_have_on_off_threads}]) dnl Check debug threads _efl_enable_debug_threads="no" AC_ARG_ENABLE([debug-threads], [AC_HELP_STRING([--enable-debug-threads], [disable assert when you forgot to call eina_threads_init])], [_efl_enable_debug_threads="${enableval}"]) efl_have_debug_threads="no" if test "x${_efl_have_posix_threads}" = "xyes" && test "x${_efl_enable_debug_threads}" = "xyes"; then efl_have_debug_threads="yes" AC_DEFINE([EFL_DEBUG_THREADS], [1], [Assert when forgot to call eina_threads_init]) fi AS_IF([test "x$_efl_have_posix_threads" = "xyes" || test "x$_efl_have_win32_threads" = "xyes"], [$1], [$2]) ]) eina-1.7.10/m4/common/efl_path_max.m40000664000175000017500000000152012175475327014153 00000000000000dnl Check for PATH_MAX in limits.h, and define a default value if not found dnl This is a workaround for systems not providing PATH_MAX, like GNU/Hurd dnl EFL_CHECK_PATH_MAX([DEFAULT_VALUE_IF_NOT_FOUND]) dnl dnl If PATH_MAX is not defined in , defines it dnl to DEFAULT_VALUE_IF_NOT_FOUND if it exists, or fallback dnl to using 4096 AC_DEFUN([EFL_CHECK_PATH_MAX], [ default_max=m4_default([$1], "4096") AC_LANG_PUSH([C]) AC_MSG_CHECKING([for PATH_MAX in limits.h]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include ]], [[ int i = PATH_MAX; ]])], [AC_MSG_RESULT([yes])], [ AC_DEFINE_UNQUOTED([PATH_MAX], [${default_max}], [default value since PATH_MAX is not defined]) AC_MSG_RESULT([no: using ${default_max}]) ]) AC_LANG_POP([C]) ]) dnl end of efl_path_max.m4 eina-1.7.10/m4/common/efl_compiler_flag.m40000664000175000017500000000236112175475327015161 00000000000000dnl Copyright (C) 2010 Vincent Torri dnl and Albin Tonnerre dnl That code is public domain and can be freely used or copied. dnl Macro that checks if a compiler flag is supported by the compiler. dnl Usage: EFL_COMPILER_FLAG(flag) dnl flag is added to CFLAGS if supported. AC_DEFUN([EFL_COMPILER_FLAG], [ CFLAGS_save="${CFLAGS}" CFLAGS="${CFLAGS} $1" AC_LANG_PUSH([C]) AC_MSG_CHECKING([whether the compiler supports $1]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]])], [have_flag="yes"], [have_flag="no"]) AC_MSG_RESULT([${have_flag}]) if test "x${have_flag}" = "xno" ; then CFLAGS="${CFLAGS_save}" fi AC_LANG_POP([C]) ]) dnl Macro that checks if a linker flag is supported by the compiler. dnl Usage: EFL_LINKER_FLAG(flag) dnl flag is added to LDFLAGS if supported (will be passed to ld anyway). AC_DEFUN([EFL_LINKER_FLAG], [ LDFLAGS_save="${LDFLAGS}" LDFLAGS="${LDFLAGS} $1" AC_LANG_PUSH([C]) AC_MSG_CHECKING([whether the compiler supports $1]) AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]])], [have_flag="yes"], [have_flag="no"]) AC_MSG_RESULT([${have_flag}]) if test "x${have_flag}" = "xno" ; then LDFLAGS="${LDFLAGS_save}" fi AC_LANG_POP([C]) ]) eina-1.7.10/m4/common/efl_examples.m40000664000175000017500000000351012175475327014171 00000000000000dnl Copyright (C) 2008 Vincent Torri dnl That code is public domain and can be freely used or copied. dnl Macro that check if building examples is wanted. dnl Usage: EFL_CHECK_BUILD_EXAMPLES([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl Defines the automake conditionnal EFL_ENABLE_BUILD_EXAMPLES AC_DEFUN([EFL_CHECK_BUILD_EXAMPLES], [ dnl configure option AC_ARG_ENABLE([build-examples], [AC_HELP_STRING([--enable-build-examples], [enable building examples @<:@default=disabled@:>@])], [ if test "x${enableval}" = "xyes" ; then _efl_enable_build_examples="yes" else _efl_enable_build_examples="no" fi ], [_efl_enable_build_examples="no"]) AC_MSG_CHECKING([whether examples are built]) AC_MSG_RESULT([${_efl_enable_build_examples}]) AM_CONDITIONAL(EFL_BUILD_EXAMPLES, test "x${_efl_enable_build_examples}" = "xyes") AS_IF([test "x$_efl_enable_build_examples" = "xyes"], [$1], [$2]) ]) dnl Macro that check if installing examples is wanted. dnl Usage: EFL_CHECK_INSTALL_EXAMPLES([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) dnl Defines the automake conditionnal EFL_ENABLE_INSTALL_EXAMPLES AC_DEFUN([EFL_CHECK_INSTALL_EXAMPLES], [ dnl configure option AC_ARG_ENABLE([install-examples], [AC_HELP_STRING([--enable-install-examples], [enable installing example source files @<:@default=disabled@:>@])], [ if test "x${enableval}" = "xyes" ; then _efl_enable_install_examples="yes" else _efl_enable_install_examples="no" fi ], [_efl_enable_install_examples="no"]) AC_MSG_CHECKING([whether examples are installed]) AC_MSG_RESULT([${_efl_enable_install_examples}]) AM_CONDITIONAL(EFL_INSTALL_EXAMPLES, test "x${_efl_enable_install_examples}" = "xyes") AS_IF([test "x$_efl_enable_install_examples" = "xyes"], [$1], [$2]) ]) dnl End of efl_examples.m4 eina-1.7.10/m4/common/efl_attribute.m40000664000175000017500000000306612175475327014364 00000000000000dnl Copyright (C) 2011 Vincent Torri dnl That code is public domain and can be freely used or copied. dnl Macros for checking if the compiler supports some __attribute__ uses dnl Usage: EFL_ATTRIBUTE_UNUSED dnl call AC_DEFINE for __UNUSED__ if __attribute__((unused)) is available AC_DEFUN([EFL_ATTRIBUTE_UNUSED], [ AC_MSG_CHECKING([for __attribute__ ((unused))]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ void foo(int x __attribute__ ((unused))) {} ]], [[ ]])], [have_attribute_unused="yes"], [have_attribute_unused="no"]) AC_MSG_RESULT([${have_attribute_unused}]) if test "x${have_attribute_unused}" = "xyes" ; then AC_DEFINE([__UNUSED__], [__attribute__ ((unused))], [Macro declaring a function argument to be unused.]) else AC_DEFINE([__UNUSED__], [], [__attribute__ ((unused)) is not supported.]) fi ]) dnl Usage: EFL_ATTRIBUTE_VECTOR dnl call AC_DEFINE for HAVE_GCC_ATTRIBUTE_VECTOR if __attribute__((vector)) is available AC_DEFUN([EFL_ATTRIBUTE_VECTOR], [ AC_MSG_CHECKING([for __attribute__ ((vector))]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ typedef int v4si __attribute__ ((vector_size (16))); ]], [[ if (sizeof(v4si) == 16) return 0; else return -1; ]])], [have_attribute_vector="yes"], [have_attribute_vector="no"]) AC_MSG_RESULT([${have_attribute_vector}]) if test "x${have_attribute_vector}" = "xyes" ; then AC_DEFINE([HAVE_GCC_ATTRIBUTE_VECTOR], [1], [Define to 1 if your compiler supports __attribute__ ((vector)).]) fi ]) dnl End of efl_attribute.m4 eina-1.7.10/m4/ltversion.m40000644000175000017500000000126212175500573012252 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # 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. # @configure_input@ # serial 3337 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.2]) m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) eina-1.7.10/m4/ltoptions.m40000644000175000017500000003007312175500573012262 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) eina-1.7.10/m4/ltsugar.m40000644000175000017500000001042412175500573011706 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) eina-1.7.10/m4/eina/0000775000175000017500000000000012247700050010750 500000000000000eina-1.7.10/m4/eina/eina_check.m40000664000175000017500000000243212175475327013224 00000000000000dnl use: EINA_CHECK_MODULE(foo-bar, have_dependency, description) AC_DEFUN([EINA_CHECK_MODULE], [ m4_pushdef([UP], m4_translit([$1], [-a-z], [_A-Z]))dnl m4_pushdef([DOWN], m4_translit([$1], [-A-Z], [_a-z]))dnl AC_ARG_ENABLE([mempool-$1], [AC_HELP_STRING([--enable-mempool-$1], [enable build of $3 @<:@default=$2@:>@])], [ if test "x${enableval}" = "xyes" ; then enable_module="yes" else if test "x${enableval}" = "xstatic" ; then enable_module="static" else enable_module="no" fi fi ], [enable_module=$2]) have_module="no" if test "x${enable_module}" = "xyes" || test "x${enable_module}" = "xstatic" ; then have_module="yes" fi AC_MSG_CHECKING([whether to enable $3 built]) AC_MSG_RESULT([${have_module}]) static_module="no" if test "x${enable_module}" = "xstatic" ; then static_module="yes" have_static_module="yes" AC_DEFINE(EINA_STATIC_BUILD_[]UP, 1, [Set to 1 if $2 is statically built]) fi if ! test "x${enable_module}" = "xno" ; then AC_DEFINE(EINA_BUILD_[]UP, 1, [Set to 1 if $2 is built]) fi AM_CONDITIONAL(EINA_BUILD_[]UP, [test "x${have_module}" = "xyes"]) AM_CONDITIONAL(EINA_STATIC_BUILD_[]UP, [test "x${static_module}" = "xyes"]) enable_[]DOWN=${enable_module} m4_popdef([UP]) m4_popdef([DOWN]) ]) eina-1.7.10/m4/eina/eina_bench.m40000664000175000017500000000155312175475327013231 00000000000000dnl use: EINA_BENCH_MODULE(foo-bar, have_bench, pkg_file [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) AC_DEFUN([EINA_BENCH_MODULE], [ m4_pushdef([UP], m4_translit([$1], [-a-z], [_A-Z]))dnl m4_pushdef([DOWN], m4_translit([$1], [-A-Z], [_a-z]))dnl want_module="$2" have_module="no" AC_ARG_ENABLE([$1], [AC_HELP_STRING([--disable-benchmark-$1], [disable benchmarking against ]DOWN[ @<:@default=yes@:>@])], [ if test "x${enableval}" = "xyes" ; then enable_module="yes" else enable_module="no" fi ], [enable_module="yes"]) if test "x${enable_module}" = "xyes" && test "x${want_module}" = "xyes"; then PKG_CHECK_MODULES([]UP[], [$3], [have_module="yes"], [have_module="no"]) fi AM_CONDITIONAL([EINA_HAVE_]UP[], [test "x${have_module}" = "xyes"]) AS_IF([test "x$have_module" = "xyes"], [$4], [$5]) m4_popdef([UP]) m4_popdef([DOWN]) ]) eina-1.7.10/depcomp0000755000175000017500000005601612175500577011033 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2013-05-30.07; # UTC # Copyright (C) 1999-2013 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} 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" # Avoid interferences from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## 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). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - 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 -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # 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. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then 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" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: eina-1.7.10/eina.spec.in0000664000175000017500000000264112175475327011654 00000000000000%{!?_rel:%{expand:%%global _rel 0.enl%{?dist}}} %define _missing_doc_files_terminate_build 0 Summary: Data Type Library Name: @PACKAGE@ Version: @VERSION@ Release: %{_rel} License: LGPLv2.1 Group: System Environment/Libraries Source: http://download.enlightenment.org/releases/%{name}-%{version}.tar.gz Packager: %{?_packager:%{_packager}}%{!?_packager:Michael Jennings } Vendor: %{?_vendorinfo:%{_vendorinfo}}%{!?_vendorinfo:The Enlightenment Project (http://www.enlightenment.org/)} Distribution: %{?_distribution:%{_distribution}}%{!?_distribution:%{_vendor}} URL: http://www.enlightenment.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-root %description Eina is a data type library. %package devel Summary: Eina headers, static libraries, documentation and test programs Group: System Environment/Libraries Requires: %{name} = %{version} %description devel Headers, static libraries, test programs and documentation for Eina %prep %setup -q %build %{configure} --prefix=%{_prefix} %{__make} %{?_smp_mflags} %{?mflags} %install %{__make} %{?mflags_install} DESTDIR=$RPM_BUILD_ROOT install %clean test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT %post /sbin/ldconfig %postun /sbin/ldconfig %files %defattr(-, root, root) %doc AUTHORS COPYING README %{_libdir}/*.so.* %files devel %defattr(-, root, root) %{_includedir}/* %{_libdir}/*.a %{_libdir}/*.so %{_libdir}/*.la %{_libdir}/pkgconfig/* %changelog eina-1.7.10/config.sub0000755000175000017500000010531512175500577011436 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2013 Free Software Foundation, Inc. timestamp='2013-04-24' # 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 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # 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 Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches with a ChangeLog entry to config-patches@gnu.org. # # 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. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # 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 1992-2013 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 ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # 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 ;; * ) 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-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) 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 | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -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 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -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/'` ;; -sco5v6*) # 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*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -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 \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 \ | or1k | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # 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-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # 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 ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; 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 ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; 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 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; 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*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 ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; 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 ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; 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 ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; 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 ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; 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 | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) 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-* | ppc64p7-*) 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 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; 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 ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; 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 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; 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 ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; 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 ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-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 ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) 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. -auroraux) os=-auroraux ;; -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* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* \ | -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* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -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* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # 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* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -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 ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -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 score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) 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 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or1k-*) 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 ;; *-haiku) os=-haiku ;; *-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 ;; -cnk*|-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 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: eina-1.7.10/AUTHORS0000664000175000017500000000223212176212161010505 00000000000000Jorge Luis "turran" Zapata Carsten Haitzler Corey "atmos" Donohoe Vincent "caro" Torri Gustavo Sverzut Barbieri Tilman Sauerbeck Cedric Bail Peter "pfritz" Wehrfritz Arnaud de Turckheim "quarium" Alexandre "diaxen" Becoulet Albin "Lutin" Tonnerre Andre Dieb Raphael Kubo da Costa Gustavo Chaves Fabiano Fidêncio Brett Nash Tom Hacohen Sebastian Dransfeld Myungjae Lee Youness Alaoui billiob (Boris Faure) Sung W. Park Guillaume Friloux Jonas M. Gastal Raphael Kubo da Costa Jérôme Pinot Mike Blumenkrantz Patryk Kaczmarek eina-1.7.10/Makefile.am0000664000175000017500000000451412175475327011514 00000000000000## Process this file with automake to produce Makefile.in ACLOCAL_AMFLAGS = -I m4 -I m4/common -I m4/eina SUBDIRS = src doc MAINTAINERCLEANFILES = \ Makefile.in \ aclocal.m4 \ config.guess \ config.h.in \ config.h.in~ \ config.sub \ configure \ depcomp \ install-sh \ ltconfig \ ltmain.sh \ missing \ $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz \ $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2 \ $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc.tar.bz2 \ m4/libtool.m4 \ m4/lt~obsolete.m4 \ m4/ltoptions.m4 \ m4/ltsugar.m4 \ m4/ltversion.m4 pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = eina.pc EXTRA_DIST = \ AUTHORS \ COPYING \ README \ $(pkgconfig_DATA) \ autogen.sh \ eina.pc.in \ eina.spec \ eina.spec.in \ m4/common/efl_attribute.m4 \ m4/common/efl_benchmark.m4 \ m4/common/efl_check_funcs.m4 \ m4/common/efl_compiler_flag.m4 \ m4/common/efl_cpu.m4 \ m4/common/efl_doxygen.m4 \ m4/common/efl_examples.m4 \ m4/common/efl_path_max.m4 \ m4/common/efl_tests.m4 \ m4/common/efl_threads.m4 \ m4/common/efl_voltron.m4 \ m4/eina/eina_bench.m4 \ m4/eina/eina_check.m4 .PHONY: doc install-doc benchmark # Documentation doc: @echo "entering doc/" @$(MAKE) -C doc doc install-doc: @echo "entering doc/" @$(MAKE) -C doc install-doc # Unit tests if EFL_ENABLE_TESTS lcov-reset: @rm -rf $(top_builddir)/coverage @find $(top_builddir) -name "*.gcda" -delete @lcov --zerocounters --directory $(top_builddir) lcov-report: @mkdir $(top_builddir)/coverage lcov --capture --compat-libtool --output-file $(top_builddir)/coverage/coverage.info --directory $(top_builddir) lcov --remove $(top_builddir)/coverage/coverage.info '*.h' --output-file $(top_builddir)/coverage/coverage.cleaned.info genhtml -t "$(PACKAGE_STRING)" -o $(top_builddir)/coverage/html $(top_builddir)/coverage/coverage.cleaned.info @echo "Coverage Report at $(top_builddir)/coverage/html" check-local: @$(MAKE) lcov-reset @./src/tests/eina_suite @$(MAKE) lcov-report else lcov-reset: @echo "reconfigure with --enable-tests" lcov-report: @echo "reconfigure with --enable-tests" check-local: @echo "reconfigure with --enable-tests" endif if EFL_ENABLE_BENCHMARK benchmark: @cd src && $(MAKE) benchmark @mkdir result || true @cd result && ../src/tests/eina_bench `date +%F_%s` else benchmark: @echo "reconfigure with --enable-benchmark" endif clean-local: @rm -rf coverage benchmark eina-1.7.10/autogen.sh0000775000175000017500000000207512175475327011461 00000000000000#!/bin/sh rm -rf autom4te.cache rm -f aclocal.m4 ltmain.sh touch README touch ABOUT-NLS echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 -I m4/common -I m4/eina || exit 1 echo "Running autoheader..." ; autoheader || exit 1 echo "Running autoconf..." ; autoconf || exit 1 echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1 echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1 W=0 rm -f config.cache-env.tmp echo "OLD_PARM=\"$@\"" >> config.cache-env.tmp echo "OLD_CFLAGS=\"$CFLAGS\"" >> config.cache-env.tmp echo "OLD_PATH=\"$PATH\"" >> config.cache-env.tmp echo "OLD_PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH\"" >> config.cache-env.tmp echo "OLD_LDFLAGS=\"$LDFLAGS\"" >> config.cache-env.tmp cmp config.cache-env.tmp config.cache-env >> /dev/null if [ $? -ne 0 ]; then W=1; fi if [ $W -ne 0 ]; then echo "Cleaning configure cache..."; rm -f config.cache config.cache-env mv config.cache-env.tmp config.cache-env else rm -f config.cache-env.tmp fi if [ -z "$NOCONFIGURE" ]; then ./configure -C "$@" fi